From 45e45c7a92b6d0c4a3f5fbc3f92a9454f723acc8 Mon Sep 17 00:00:00 2001 From: Mohammed <79150699+mrpalide@users.noreply.github.com> Date: Tue, 7 Mar 2023 01:17:12 +0330 Subject: [PATCH 01/62] risc-v build (#1513) * riscv and riscv64 build * remove riscv32 * fix name of archive on riscv64 --- .goreleaser-linux.yml | 130 +++++++++++++++++++++++++++++++++++++----- Makefile | 2 + 2 files changed, 117 insertions(+), 15 deletions(-) diff --git a/.goreleaser-linux.yml b/.goreleaser-linux.yml index dc432b2a6b..b5ad7fa3a2 100644 --- a/.goreleaser-linux.yml +++ b/.goreleaser-linux.yml @@ -69,6 +69,18 @@ builds: main: ./cmd/skywire-visor/ ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + - id: skywire-visor-riscv64 + binary: skywire-visor + goos: + - linux + goarch: + - riscv64 + env: + - CGO_ENABLED=1 + - CC=/home/runner/work/skywire/skywire/musl-data/riscv64-linux-musl-cross/bin/riscv64-linux-musl-gcc + main: ./cmd/skywire-visor/ + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + - id: skywire-cli-amd64 binary: skywire-cli goos: @@ -121,6 +133,18 @@ builds: main: ./cmd/skywire-cli/ ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + - id: skywire-cli-riscv64 + binary: skywire-cli + goos: + - linux + goarch: + - riscv64 + env: + - CGO_ENABLED=1 + - CC=/home/runner/work/skywire/skywire/musl-data/riscv64-linux-musl-cross/bin/riscv64-linux-musl-gcc + main: ./cmd/skywire-cli/ + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + - id: skychat-amd64 binary: apps/skychat goos: @@ -143,7 +167,7 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc main: ./cmd/apps/skychat/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: skychat-arm binary: apps/skychat @@ -157,7 +181,7 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/arm-linux-musleabi-cross/bin/arm-linux-musleabi-gcc main: ./cmd/apps/skychat/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: skychat-armhf binary: apps/skychat @@ -171,7 +195,19 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/arm-linux-musleabihf-cross/bin/arm-linux-musleabihf-gcc main: ./cmd/apps/skychat/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} + + - id: skychat-riscv64 + binary: skychat + goos: + - linux + goarch: + - riscv64 + env: + - CGO_ENABLED=1 + - CC=/home/runner/work/skywire/skywire/musl-data/riscv64-linux-musl-cross/bin/riscv64-linux-musl-gcc + main: ./cmd/apps/skychat/ + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: skysocks-amd64 binary: apps/skysocks @@ -195,7 +231,7 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc main: ./cmd/apps/skysocks/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: skysocks-arm binary: apps/skysocks @@ -209,7 +245,7 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/arm-linux-musleabi-cross/bin/arm-linux-musleabi-gcc main: ./cmd/apps/skysocks/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: skysocks-armhf binary: apps/skysocks @@ -223,7 +259,19 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/arm-linux-musleabihf-cross/bin/arm-linux-musleabihf-gcc main: ./cmd/apps/skysocks/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} + + - id: skysocks-riscv64 + binary: skysocks + goos: + - linux + goarch: + - riscv64 + env: + - CGO_ENABLED=1 + - CC=/home/runner/work/skywire/skywire/musl-data/riscv64-linux-musl-cross/bin/riscv64-linux-musl-gcc + main: ./cmd/apps/skysocks/ + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: skysocks-client-amd64 binary: apps/skysocks-client @@ -247,7 +295,7 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc main: ./cmd/apps/skysocks-client/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: skysocks-client-arm binary: apps/skysocks-client @@ -261,7 +309,7 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/arm-linux-musleabi-cross/bin/arm-linux-musleabi-gcc main: ./cmd/apps/skysocks-client/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: skysocks-client-armhf binary: apps/skysocks-client @@ -275,7 +323,19 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/arm-linux-musleabihf-cross/bin/arm-linux-musleabihf-gcc main: ./cmd/apps/skysocks-client/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} + + - id: skysocks-client-riscv64 + binary: skysocks-client + goos: + - linux + goarch: + - riscv64 + env: + - CGO_ENABLED=1 + - CC=/home/runner/work/skywire/skywire/musl-data/riscv64-linux-musl-cross/bin/riscv64-linux-musl-gcc + main: ./cmd/apps/skysocks-client/ + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: vpn-server-amd64 binary: apps/vpn-server @@ -299,7 +359,7 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc main: ./cmd/apps/vpn-server/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: vpn-server-arm binary: apps/vpn-server @@ -313,7 +373,7 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/arm-linux-musleabi-cross/bin/arm-linux-musleabi-gcc main: ./cmd/apps/vpn-server/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: vpn-server-armhf binary: apps/vpn-server @@ -327,7 +387,19 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/arm-linux-musleabihf-cross/bin/arm-linux-musleabihf-gcc main: ./cmd/apps/vpn-server/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} + + - id: vpn-server-riscv64 + binary: vpn-server + goos: + - linux + goarch: + - riscv64 + env: + - CGO_ENABLED=1 + - CC=/home/runner/work/skywire/skywire/musl-data/riscv64-linux-musl-cross/bin/riscv64-linux-musl-gcc + main: ./cmd/apps/vpn-server/ + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: vpn-client-amd64 binary: apps/vpn-client @@ -351,7 +423,7 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc main: ./cmd/apps/vpn-client/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: vpn-client-arm binary: apps/vpn-client @@ -365,7 +437,7 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/arm-linux-musleabi-cross/bin/arm-linux-musleabi-gcc main: ./cmd/apps/vpn-client/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} - id: vpn-client-armhf binary: apps/vpn-client @@ -379,7 +451,19 @@ builds: - CGO_ENABLED=1 - CC=/home/runner/work/skywire/skywire/musl-data/arm-linux-musleabihf-cross/bin/arm-linux-musleabihf-gcc main: ./cmd/apps/vpn-client/ - ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} -X github.com/skycoin/skywire/pkg/visor.BuildTag={{.Os}}_{{.Arch}} + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} + + - id: vpn-client-riscv64 + binary: vpn-client + goos: + - linux + goarch: + - riscv64 + env: + - CGO_ENABLED=1 + - CC=/home/runner/work/skywire/skywire/musl-data/riscv64-linux-musl-cross/bin/riscv64-linux-musl-gcc + main: ./cmd/apps/vpn-client/ + ldflags: -s -w -linkmode external -extldflags '-static' -buildid= -X github.com/skycoin/skywire-utilities/pkg/buildinfo.version=v{{.Version}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.commit={{.ShortCommit}} -X github.com/skycoin/skywire-utilities/pkg/buildinfo.date={{.Date}} archives: - id: amd64 @@ -446,6 +530,22 @@ archives: - vpn-server-armhf - vpn-client-armhf + - id: riscv64 + format: tar.gz + wrap_in_directory: false + name_template: 'skywire-v{{ .Version }}-{{ .Os }}-{{ .Arch }}' + files: + - dmsghttp-config.json + - skycoin.asc + builds: + - skywire-visor-riscv64 + - skywire-cli-riscv64 + - skysocks-riscv64 + - skysocks-client-riscv64 + - skychat-riscv64 + - vpn-server-riscv64 + - vpn-client-riscv64 + checksum: name_template: 'checksums.txt' snapshot: diff --git a/Makefile b/Makefile index 7e33ebf254..701d3f6bff 100644 --- a/Makefile +++ b/Makefile @@ -321,6 +321,8 @@ dep-github-release: tar -xzf arm-linux-musleabihf-cross.tgz -C ./musl-data && rm arm-linux-musleabihf-cross.tgz wget -c https://more.musl.cc/10/x86_64-linux-musl/x86_64-linux-musl-cross.tgz -O x86_64-linux-musl-cross.tgz tar -xzf x86_64-linux-musl-cross.tgz -C ./musl-data && rm x86_64-linux-musl-cross.tgz + wget -c https://more.musl.cc/10/x86_64-linux-musl/riscv64-linux-musl-cross.tgz -O riscv64-linux-musl-cross.tgz + tar -xzf riscv64-linux-musl-cross.tgz -C ./musl-data && rm riscv64-linux-musl-cross.tgz build-docker: ## Build docker image ./ci_scripts/docker-push.sh -t latest -b From 198f1c0ddaa9358a76750acabd794a4286dc82c3 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Fri, 10 Mar 2023 09:22:12 -0600 Subject: [PATCH 02/62] update readme (#1514) * update readme * update readme --- README.md | 736 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 492 insertions(+), 244 deletions(-) diff --git a/README.md b/README.md index 225402a3c6..f7871c984c 100644 --- a/README.md +++ b/README.md @@ -4,28 +4,33 @@ Skywire requires a Golang version of `1.16` or higher. # Skywire -* [Skywire](#skywire) * [Commands and Subcommands](#commands-and-subcommands) * [App documentation](#app-documentation) * [Installing Skywire](#installing-skywire) - * [Build Overview](#build-overview) * [Dependencies](#dependencies) - * [Runtime Deps](#runtime-deps) * [Build Deps](#build-deps) - * [Prepare](#prepare) - * [Build](#build) - * [Install](#install) - * [Skywire\-autoconfig](#skywire-autoconfig) - * [Package tree](#package-tree) - * [Build with make](#build-with-make) - * [Build docker image](#build-docker-image) + * [Runtime Deps](#runtime-deps) + * [Testing Deps](#testing-deps) + * [Testing](#testing) + * [Development](#development) * [Run from source](#run-from-source) - * [Files and folders created by skywire](#files-and-folders-created-by-skywire) - * [Configure Skywire](#configure-skywire) + * [Build docker image](#build-docker-image) + * [Files and folders created by skywire at runtime](#files-and-folders-created-by-skywire-at-runtime) + * [Skywire Configuration](#skywire-configuration) * [Expose hypervisorUI](#expose-hypervisorui) * [Add remote hypervisor](#add-remote-hypervisor) * [Run skywire\-visor](#run-skywire-visor) + * [Using Skywire forwarding \- http server over skywire](#using-skywire-forwarding---http-server-over-skywire) + * [Transport setup](#transport-setup) + * [Routing Rules](#routing-rules) * [Using the Skywire VPN](#using-the-skywire-vpn) + * [Using the Skywire SOCKS5 client](#using-the-skywire-socks5-client) + * [Package Build Overview](#package-build-overview) + * [Prepare \- path setup](#prepare---path-setup) + * [Build](#build) + * [Install](#install) + * [Skywire\-autoconfig](#skywire-autoconfig) + * [Package tree](#package-tree) * [Creating a GitHub release](#creating-a-github-release) * [How to create a GitHub release](#how-to-create-a-github-release) @@ -61,13 +66,432 @@ Pre-compiled resouces * [Debian Package Installation](github.com/skycoin/skywire/wiki/Skywire-Package-Installation) * [Binary Releases](https://github.com/skycoin/skywire/releases) -## Build Overview +## Dependencies + +### Build Deps + +* `golang` +* `git` (optional) + +basic setup of `go` is further described [here](https://github.com/skycoin/skycoin/blob/develop/INSTALLATION.md#setup-your-gopath) + +* `musl` and `kernel-headers-musl` or equivalent - _for static compilation_ + +For more information on static compilation, see [docs/static-builds.md](docs/static-builds.md). + +### Runtime Deps + +* ` glibc` or `libc6` _unless statically compiled_ + +### Testing Deps + +* `golangci-lint` +* `goimports-reviser` from github.com/incu6us/goimports-reviser/v2 +* `goimports` from golang.org/x/tools/cmd/goimports + +## Testing + +Before pushing commits to a pull request, its customary in case of edits to any of the golang source code to run the following: + +``` +make format check +``` + +`make check` will run `make test` as well. To explicitly run tests, use `make test` + +## Development + +To compile skywire directly from this repository for local testing and development + +``` +git clone https://github.com/skycoin/skywire +cd skywire +#for the latest commits, check out the develop branch +git checkout develop +make build +``` +`make build` builds the binaries and apps with `go build` + +`skywire-cli` and `skywire-visor` binaries will populate in the current directory; app binaries will populate the `apps` directory + +Build output: + +``` +├──skywire-cli +└─┬skywire-visor + └─┬apps + ├──skychat + ├──skysocks + ├──skysocks-client + ├──vpn-client + ├──vpn-server + └──skychat +``` + +'install' these executables to the `GOPATH` +``` +make install +``` + +To run skywire from this point, first generate a config + +``` +./skywire-cli config gen -birx +``` +`-b --bestproto` use the best protocol (dmsg | direct) to connect to the skywire production deployment +`-i --ishv` create a local hypervisor configuration +`-r --regen` regenerate a config which may already exist, retaining the keys +`-x --retainhv` retain any remote hypervisors which are set in the config + +The visor can then be started with +``` +sudo ./skywire-visor +``` + +__Note: root permissions are currently required for vpn client and server applications__ + +## Run from source + +Running from source as outlined in this section does not write the config to disk or explicitly compile any binaries. The config is piped from skywire-cli stdout to the visor stdin, and all are executed via `go run`. + +``` + git clone https://github.com/skycoin/skywire.git + cd skywire + #for the latest commits, check out the develop branch + git checkout develop + make run-source +``` + +## Build docker image +``` +$ ./ci_scripts/docker-push.sh -t $(git rev-parse --abbrev-ref HEAD) -b +``` + +## Files and folders created by skywire at runtime +note not all of these files will be created by default +``` +├──skywire-config.json +└─┬local +  ├── apps-pid.txt + ├── node-info.json + ├── node-info.sha + ├── reward.txt +  ├── skychat +  ├── skychat_log.db +  ├── skysocks +  ├── skysocks-client +  ├── skysocks-client_log.db +  ├── skysocks_log.db +  └── transport_logs +  ├── 2023-03-06.csv +  ├── 2023-03-07.csv +  ├── 2023-03-08.csv +  ├── 2023-03-09.csv +  └── 2023-03-10.csv +``` + +Some of these files are served via the [dmsghttp logserver](https://github.com/skycoin/skywire/wiki/DMSGHTTP-logserver) + +## Skywire Configuration + +The skywire visor requires a config file to run. This config is a json-formatted file produced by `skywire-cli config gen` + +The `skywire-autoconfig` script included with the skywire package handles config generation and updates for the user who has installed the package. + +Examples of config generation and command / flag documentation can be found in the [cmd/skywire-cli/README.md](cmd/skywire-cli/README.md) and [cmd/skywire-visor/README.md](cmd/skywire-visor/README.md) + +The most important flags are noted below + +### Expose hypervisorUI + +In order to expose the hypervisor UI, generate a config file with `--is-hypervisor` or `-i` flag: + +``` + skywire-cli config gen -i +``` + +Docker container will create config automatically for you. To run it manually: + +``` + docker run --rm -v :/opt/skywire \ + skycoin/skywire:test skywire-cli config gen -i +``` + +After starting up the visor, the UI will be exposed by default on `localhost:8000`. + +### Add remote hypervisor + +Every visor can be controlled by one or more hypervisors. To allow a hypervisor to access a visor, the PubKey of the +hypervisor needs to be specified in the configuration file. You can add a remote hypervisor to the config with: + +``` +skywire-cli config update --hypervisor-pks +``` +or +``` +skywire-cli config gen --hvpk +``` + +alternatively, this can be done with the skywire-autoconfg script +``` +skywire-autoconfig +``` + +Or from docker image: + +``` +docker run --rm -v :/opt/skywire \ + skycoin/skywire:test skywire-cli config update hypervisor-pks +``` + +Or from docker image:/* #nosec */ + +``` +docker run --rm -v :/opt/skywire \ + skycoin/skywire:latest skywire-cli update-config hypervisor-pks +``` + +## Run `skywire-visor` + +`skywire-visor` hosts apps and is an applications gateway to the Skywire network. + +`skywire-visor` requires a valid configuration to be provided. If you want to run a VPN client locally, run the visor +as `sudo`. + +``` + sudo skywire-visor -c skywire-config.json +``` +if the default `skywire-config.json` exists in the current dir, this can be shortened to +``` + sudo skywire-visor +``` + +Or from docker image: + +``` +# with custom config mounted on docker volume +docker run --rm -p 8000:8000 -v :/opt/skywire --name=skywire skycoin/skywire:test skywire-visor -c /opt/skywire/.json +# without custom config (config is automatically generated) +docker run --rm -p 8000:8000 --name=skywire skycoin/skywire:test skywire-visor +``` + +`skywire-visor` can be run on Windows. The setup requires additional setup steps that are specified +in [the docs](docs/windows-setup.md) if not using the windows .msi + +### Using Skywire forwarding - http server over skywire + +The skywire-cli subcommand `skywire-cli fwd` is used to register and connect to http servers over the skywire connection + +- [skywire forwarding](docs/skywire_forwarding.md) + +assuming that the local application you wish to forward is running on port `8080` +``` +skywire-cli fwd -p 8080 +``` + +list forwarded ports +``` +skywire-cli fwd -l +``` + +deregister a port / turn off forwarding +``` +skywire-cli fwd -d 8080 +``` + +To consume the skyfwd connection / reverse proxy back to localhost use `skywire-cli rev` +``` +skywire-cli rev -p 8080 -r 8080 -k +``` + +list existing connections +``` +skywire-cli rev -l +``` + +remove a configured connection +``` +skywire-cli rev -d +``` + +### Transport setup + +A Transport represents a bidirectional line of communication between two Skywire Visors +- [Transports](https://github.com/skycoin/skywire/wiki/Transports) + +Transports are automatically established when a client application connects to a server application. +Their creation is attempted in the following order: +- stcpr +- sudph +- dmsg + +Transports can be manually created. Existing suitable transports will be automatically used by client applications when they are started. + +To create a transport, first copy the public key of an online visor from the uptime tracker (or service discovery endpoints): +https://ut.skywire.skycoin.com/uptimes + +``` +skywire-cli visor tp add -t +``` + +view established transports +``` +skywire-cli visor tp ls +``` + +remove a transport +``` +skywire-cli visor tp rm +``` + +### Routing Rules + +In the current era of internet connectivity, certain direct connections between servers in different countries are throttled or may drop intermittently. It is advantageous, in these instances, to establish an indirect or multi-hop route. + +Establishing skywire routing rules brings the advantage of an anonymizing overlay to the connection. The intermediate visor handling a certain packet only knows the previous and next hop of that packet. All packets through skywire are of uniform size, stripped of their headers and fuzzed to appear no differently from noise. + +__disclaimer: this process is pending improvements & revisions!__ + +To create a route, first copy the public key of an online visor from the uptime tracker (or service discovery endpoints): +https://ut.skywire.skycoin.com/uptimes + +``` +skywire-cli visor route add-rule app $(skywire-cli visor pk) +``` + +to understand these arguments, observe the help menu for `skywire-cli visor route add-rule` +``` +Usage: + skywire-cli visor route add-rule app \ + \ + \ + \ + \ + \ + || [flags] + +Flags: + -i, --rid string route id + -l, --lpk string local public key + -m, --lpt string local port + -p, --rpk string remote pk + -q, --rpt string remote port + +Global Flags: + --keep-alive duration timeout for rule expiration (default 30s) +``` + + and are all just integers. it's suggested to create the first route with id 1, unless another route exists with that id + +the port numbers are similarly inconsequential. + +__note: the skywire router is pending refactorization__ + +### Using the Skywire VPN + +The following documentation exists for vpn server / client setup and usage: +- [Setup the Skywire VPN](https://github.com/skycoin/skywire/wiki/Skywire-VPN-Client) +- [Setup the Skywire VPN server](https://github.com/skycoin/skywire/wiki/Skywire-VPN-Server) +- [Package Installation Guide](https://github.com/skycoin/skywire/wiki/Skywire-Package-Installation) + +an example using the vpn with `skywire-cli` + +``` +skywire-cli vpn list +``` +this will query the service discovery for a list of vpn server public keys. +https://sd.skycoin.com/api/services?type=vpn + +sample output: +``` +02836f9a39e38120f338dbc98c96ee2b1ffd73420259d1fb134a2d0a15c8b66ceb | NL +0289a464f485ce9036f6267db10e5b6eaabd3972a25a7c2387f92b187d313aaf5e | GB +03cad59c029fc2394e564d0d328e35db17f79feee50c33980f3ab31869dc05217b | ID +02cf90f3b3001971cfb2b2df597200da525d359f4cf9828dca667ffe07f59f8225 | IT +03e540ddb3ac61385d6be64b38eeef806d8de9273d29d7eabb8daccaf4cee945ab | US +... +``` + +select a key and start the vpn with +``` +skywire-cli vpn start +``` + +view the status of the vpn +``` +skywire-cli vpn status +``` + +Check your ip address with ip.skywire.dev +__note: ip.skycoin.com will only show your real ip address, not the ip address of the vpn connection__ + +stop the vpn +``` +skywire-cli vpn stop +``` + +### Using the Skywire SOCKS5 client + + +The following wiki documentation exists on the SOCKS5 proxy +- [Skywire SOCKS5 Proxy User Guide](https://github.com/skycoin/skywire/wiki/Skywire-SOCKS5-Proxy-User-Guide) +- [SSH over SOCKS5 Proxy](https://github.com/skycoin/skywire/wiki/SSH-over-SOCKS5-Proxy) + +The main difference between the vpn and the socks5 proxy is that the proxy is configured __per application__ while the vpn wraps the connections for the whole machine + +The socks client usage (from `skywire-cli`) is similar to the vpn, though the `skywire-cli` subcommands and flags do not currently match from the one application to the other. This will be rectified. + +To use the SOCKS5 proxy client via `skywire-cli` + +first, select a public key with a running socks5 proxy server from the service discovery here: +[sd.skycoin.com/api/services?type=proxy](https://sd.skycoin.com/api/services?type=proxy) + +you can also filter by country code in the query, for example: +[sd.skycoin.com/api/services?type=proxy&country=US](https://sd.skycoin.com/api/services?type=proxy&country=US) + +start the socks5 client (starts on port 1080 by default) +``` +skywire-cli skysocksc start --pk +``` + +view the skysocks-client app status +``` +skywire-cli skysocksc status +``` + +The connection may be consumed in a web browser via direct proxy configuration in browsers which support it, or using such extensions as `foxyproxy`. + +The connection may also be consumed in the terminal by setting `ALL_PROXY` environmental variable, or via the specific method used by a certain application. + +For example, to use `curl` via the socks5 proxy connection: +``` +curl -Lx socks5h://127.0.0.1:1080 http://ip.skycoin.com/ | jq +``` + +examples of `ssh` over the socks5 proxy: + +using `openbsd-netcat` +``` + ssh user@host -p 22 -o "ProxyCommand=nc -X 5 -x 127.0.0.1:1080 %h %p" +``` + +using `ncat` from `nmap` +``` +ssh user@host -p 22 -o "ProxyCommand=ncat --proxy-type socks5 --proxy 127.0.0.1:1080 %h %p" +``` + +stop the socks5 proxy client +``` +skywire-cli skysocksc stop +``` + +## Package Build Overview A high-level overview of the process for building skywire from source and the paths and files which comprise the package-based installation is contained in the [PKGBUILD](https://github.com/skycoin/AUR/blob/main/skywire/PKGBUILD) -this and other build variants can be built into a package with a single command, using `yay` on archlinux +this and other build variants, including the debian packages, can be built into a package with a single command, using `yay` on archlinux -installing [skywire-bin](https://aur.archlinux.org/packages/skywire-bin) will install the release binaries provided by the release section of this repo +installing [skywire-bin](https://aur.archlinux.org/packages/skywire-bin) from the AUR will install the release binaries provided by the release section of this repo ``` yay -S skywire-bin ``` @@ -77,7 +501,7 @@ to build the debian packages using the release binaries yay --mflags " -p cc.deb.PKGBUILD " -S skywire-bin ``` -installing [skywire](https://aur.archlinux.org/packages/skywire) will compile binaries using the source archive for the latest version release +installing [skywire](https://aur.archlinux.org/packages/skywire) from the AUR will compile binaries using the source archive for the latest version release ``` yay -S skywire ``` @@ -87,21 +511,7 @@ build from git sources to the develop branch yay --mflags " -p git.PKGBUILD " -S skywire ``` -## Dependencies - -### Runtime Deps - -* ` glibc` or `libc6` _unless statically compiled_ - -### Build Deps - -* `golang` -* `git` (optional) -* `musl` and `kernel-headers-musl` or equivalent - _for static compilation_ - -For more information on static compilation, see [docs/static-builds.md](docs/static-builds.md). - -## Prepare +## Prepare - path setup The standard procedure for building software with `go` uses the `GOPATH` which is conventionally `$HOME/go` @@ -109,11 +519,9 @@ Software sources are cloned via `git` to a path such as `$HOME/go/src/github.com Optionally, the source archive of a versioned release is downloaded from the [release section](https://github.com/skycoin/skywire/releases) -The binaries which are compiled may optionally be placed in the `GOBIN` and then `GOBIN` may be added to the `PATH` in order that any binaries placed in the `GOBIN` will then appear as commands available to execute in the shell or terminal. +The binaries which are compiled may optionally be placed in the `GOBIN` and then `GOBIN` may be added to the `PATH` in order that any binaries placed in the `GOBIN` will then become available as commands available to execute in the shell or terminal. -basic setup of `go` is further described [here](https://github.com/skycoin/skycoin/blob/develop/INSTALLATION.md#setup-your-gopath) - -Such a setup is optional, but it is documented below, and other examples will refer to this +**This setup is optional** but it is documented below, and other examples will refer to this ``` mkdir -p "${HOME}/go/src/github.com/skycoin/" "${HOME}"/go/bin "${HOME}"/go/apps || true @@ -131,9 +539,8 @@ the code below is a rough approximation of `make install` which is used in the b export GOPATH="${HOME}/go" export GOBIN="${GOPATH}/bin" export _GOAPPS="${GOPATH}/apps" -export GOOS=linux -#use musl-gcc for static compilation -export CC=musl-gcc +#optionally, use musl-gcc for static compilation +#export CC=musl-gcc cd "${HOME}/go/src/github.com/skycoin/skywire" @@ -165,7 +572,7 @@ go build -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external ## Install -The installation paths for the skywire as present in the skywire package are detailed below +The installation paths for the skywire as present in the skywire linux packages are detailed below Note that `make install-system-linux` will place the binaries into the system where the package would install them, and is best used for quickly testing changes to ensure they work with the autoconfig script included with the package @@ -173,7 +580,7 @@ Note that `make install-system-linux` will place the binaries into the system wh #to install directly into the system, use "/" _pkgdir="/" -#use the appropriate systemd unit installation path for your linux distribution (i.e./etc/systemd/system on .deb distros +#use the appropriate systemd unit installation path for your linux distribution (i.e. etc/systemd/system for .deb distros) _systemddir="usr/lib/systemd/system" #the base path where skywire is installed @@ -198,22 +605,22 @@ mkdir -p "${_pkgdir}/${_systemddir}" mkdir -p "${_pkgdir}/${_dir}/local" # instal binaries - assumes nothing else was already in your GOBIN - install -Dm755 "${GOBIN}"/* "${_pkgdir}/${_skybin}/" + install -Dm755 "${GOBIN}"/* "${_pkgdir}/${_bin}/" #Symlink the binaries into the executable path -for _i in "${_pkgdir}/${_skybin}"/* ; do +for _i in "${_pkgdir}/${_bin}"/* ; do ln -rTsf "${_i}" "${_pkgdir}/usr/bin/${_i##*/}" done #install the app binaries install -Dm755 "${_GOAPPS}"/* "${_pkgdir}/${_skyapps}/" #it is not necessary to symlink these binaries to the executable path but may be useful for debugging -for _i in "${_pkgdir}/${_skyapps}"/* ; do +for _i in "${_pkgdir}/${_apps}"/* ; do ln -rTsf "${_i}" "${_pkgdir}/usr/bin/${_i##*/}" done #install the dmsghttp-config.json' -install -Dm644 "${HOME}"/go/src/${_pkggopath}/skywire/dmsghttp-config.json" "${_pkgdir}/${_skydir}/dmsghttp-config.json" +install -Dm644 "${HOME}"/go/src/${_pkggopath}/skywire/dmsghttp-config.json" "${_pkgdir}/${_dir}/dmsghttp-config.json" ``` Desktop integration, maintenance scripts, and systemd service files are included in the skywire package from the [skywire AUR](https://aur.archlinux.org/cgit/aur.git/tree/?h=skywire-bin) which is managed as a subtree from [github.com/skycoin/aur](https://github.com/skycoin/AUR/tree/main/skywire-bin) @@ -243,48 +650,58 @@ install -Dm644 "${srcdir}"/*.png "${_pkgdir}"/usr/share/icons/hicolor/48x48/apps * restarting the skywire process (via systemd) * printing helpful text for the user to know what is happening * generating configuration on boot (for skybian images / chroot installations of skywire) -* detecting environmental variables +* setting config defaults from environmental variables +* re-establishing skyfwd and skyrev connections (pending) for more information regarding this script and the skywire package installation, refer to [this wiki article](https://github.com/skycoin/AUR/wiki/skywire-bin) ### Package tree ``` / +├── etc +│   └── skel +│   └── .config +│   └── systemd +│   └── user +│   ├── skywire-autoconfig.service +│   └── skywire.service ├── opt -│ └── skywire -│ ├── apps -│ │ ├── skychat -│ │ ├── skysocks -│ │ ├── skysocks-client -│ │ ├── vpn-client -│ │ └── vpn-server -│ ├── bin -│ │ ├── skywire-cli -│ │ └── skywire-visor -│ ├── dmsghttp-config.json -│ ├── local -│ └── scripts -│ └── skywire-autoconfig +│   └── skywire +│   ├── apps +│   │   ├── skychat +│   │   ├── skysocks +│   │   ├── skysocks-client +│   │   ├── vpn-client +│   │   └── vpn-server +│   ├── bin +│   │   ├── skywire-cli +│   │   └── skywire-visor +│   ├── dmsghttp-config.json +│   ├── local +│   │   └── custom +│   ├── scripts +│   │   └── skywire-autoconfig +│   └── skycoin.asc └── usr ├── bin - │ ├── skychat -> ../../opt/skywire/apps/skychat - │ ├── skysocks -> ../../opt/skywire/apps/skysocks - │ ├── skysocks-client -> ../../opt/skywire/apps/skysocks-client - │ ├── skywire -> ../../opt/skywire/bin/skywire-visor - │ ├── skywire-autoconfig -> ../../opt/skywire/scripts/skywire-autoconfig - │ ├── skywire-cli -> ../../opt/skywire/bin/skywire-cli - │ ├── skywire-visor -> ../../opt/skywire/bin/skywire-visor - │ ├── vpn-client -> ../../opt/skywire/apps/vpn-client - │ └── vpn-server -> ../../opt/skywire/apps/vpn-server + │   ├── skychat -> ../../opt/skywire/apps/skychat + │   ├── skysocks -> ../../opt/skywire/apps/skysocks + │   ├── skysocks-client -> ../../opt/skywire/apps/skysocks-client + │   ├── skywire -> ../../opt/skywire/bin/skywire-visor + │   ├── skywire-autoconfig -> ../../opt/skywire/scripts/skywire-autoconfig + │   ├── skywire-cli -> ../../opt/skywire/bin/skywire-cli + │   ├── skywire-visor -> ../../opt/skywire/bin/skywire-visor + │   ├── vpn-client -> ../../opt/skywire/apps/vpn-client + │   └── vpn-server -> ../../opt/skywire/apps/vpn-server ├── lib - │ └── systemd - │ └── system - │ ├── skywire-autoconfig.service - │ ├── skywire.service + │   └── systemd + │   └── system + │   ├── skywire-autoconfig.service + │   └── skywire.service └── share ├── applications - │ ├── skywire.desktop - │ └── skywirevpn.desktop + │   ├── skywire.desktop + │   └── skywirevpn.desktop └── icons └── hicolor └── 48x48 @@ -292,177 +709,8 @@ for more information regarding this script and the skywire package installation, ├── skywire.png └── skywirevpn.png -17 directories, 24 files -``` - -## Build with make - -build the binaries and apps with `go build` -``` -make build -``` - -output tree - -``` -├──skywire-cli -└─┬skywire-visor - └─┬apps - ├──skychat - ├──skysocks - ├──skysocks-client - ├──vpn-client - ├──vpn-server - └──skychat -``` - -install these executables to the `GOPATH` -``` -make install -``` - - -## Build docker image -``` -$ ./ci_scripts/docker-push.sh -t $(git rev-parse --abbrev-ref HEAD) -b -``` - - -## Run from source - -Running from source as outlined here does not write the config to disk or explicitly compile any binaries. The config is piped from skywire-cli stdout to the visor stdin, and all are executed via `go run`. - +24 directories, 27 files ``` - mkdir -p $HOME/go/src/github.com/skycoin && cd $HOME/go/src/github.com/skycoin - git clone https://github.com/skycoin/skywire.git - cd skywire - make run-source -``` - -## Files and folders created by skywire - -``` -├──skywire-config.json -└─┬local - ├──skychat - ├──skysocks - ├──apps-pid.txt - ├──skychat_log.db - ├──reward.txt - ├──node-info.json - └─┬transport_logs - └──2022-11-12.csv -``` - -Some of these files are served via the [dmsghttp logserver](https://github.com/skycoin/skywire/wiki/DMSGHTTP-logserver) - -## Configure Skywire - -The skywire visor requires a config to run. This config is produced by `skywire-cli config gen` - -The skywire-autoconfig script included with the skywire package handles config generation and updates for the user - -Examples of config generation and command / flag documentation can be found in the [cmd/skywire-cli/README.md](cmd/skywire-cli/README.md) and [cmd/skywire-visor/README.md](cmd/skywire-visor/README.md) - -The most important flags are noted below - -### Expose hypervisorUI - -In order to expose the hypervisor UI, generate a config file with `--is-hypervisor` or `-i` flag: - -``` - skywire-cli config gen -i -``` - -Docker container will create config automatically for you, should you want to run it manually, you can do: - -``` - docker run --rm -v :/opt/skywire \ - skycoin/skywire:test skywire-cli config gen -i -``` - -Docker container will create config automatically for you, should you want to run it manually, you can do: - -``` -$ docker run --rm -v :/opt/skywire \ - skycoin/skywire:latest skywire-cli visor gen-config --is-hypervisor -``` - -After starting up the visor, the UI will be exposed by default on `localhost:8000`. - -### Add remote hypervisor - -Every visor can be controlled by one or more hypervisors. To allow a hypervisor to access a visor, the PubKey of the -hypervisor needs to be specified in the configuration file. You can add a remote hypervisor to the config with: - -``` -skywire-cli config update --hypervisor-pks -``` -or -``` -skywire-cli config gen --hvpk -``` - -alternatively, this can be done with the skywire-autoconfg script -``` -skywire-autoconfig -``` - -Or from docker image: - -``` -docker run --rm -v :/opt/skywire \ - skycoin/skywire:test skywire-cli config update hypervisor-pks -``` - -Or from docker image:/* #nosec */ - -``` -docker run --rm -v :/opt/skywire \ - skycoin/skywire:latest skywire-cli update-config hypervisor-pks -``` - -## Run `skywire-visor` - -`skywire-visor` hosts apps and is an applications gateway to the Skywire network. - -`skywire-visor` requires a valid configuration to be provided. If you want to run a VPN client locally, run the visor -as `sudo`. - -``` - sudo skywire-visor -c skywire-config.json -``` -if the default `skywire-config.json` exists in the current dir, this can be shortened to -``` - sudo skywire-visor -``` - -Or from docker image: - -``` -# with custom config mounted on docker volume -docker run --rm -p 8000:8000 -v :/opt/skywire --name=skywire skycoin/skywire:test skywire-visor -c /opt/skywire/.json -# without custom config (config is automatically generated) -docker run --rm -p 8000:8000 --name=skywire skycoin/skywire:test skywire-visor -``` - -`skywire-visor` can be run on Windows. The setup requires additional setup steps that are specified -in [the docs](docs/windows-setup.md). - -### Using Skywire forwarding for publishing http server over skynet - -The skywire-cli subcommand `skywire-cli fwd` is used to register and connect to http servers over the skynet - -- [skywire forwarding](docs/skywire_forwarding.md) - -### Using the Skywire VPN - -If you are interested in running the Skywire VPN as either a client or a server, please refer to the following guides: - -- [Setup the Skywire VPN](https://github.com/skycoin/skywire/wiki/Skywire-VPN-Client) -- [Setup the Skywire VPN server](https://github.com/skycoin/skywire/wiki/Skywire-VPN-Server) -- [Package Installation Guide](https://github.com/skycoin/skywire/wiki/Skywire-Package-Installation) - ## Creating a GitHub release From a4ac5bfde1dd33d91d23260813ad79080708f511 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Fri, 10 Mar 2023 10:50:43 -0600 Subject: [PATCH 03/62] update links to latest releases --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f7871c984c..08268b24fb 100644 --- a/README.md +++ b/README.md @@ -60,10 +60,10 @@ further documentation can be found in the [skywire wiki](https://github.com/skyc Pre-compiled resouces -* [Windows installer](https://github.com/skycoin/skywire/releases/download/v1.2.1/skywire-installer-v1.2.1-windows-amd64.msi) -* [MacOS amd64 package](https://github.com/skycoin/skywire/releases/download/v1.2.1/skywire-installer-v1.2.1-darwin-amd64.pkg) -* [MacOS m1 / arm64](https://github.com/skycoin/skywire/releases/download/v1.2.1/skywire-installer-v1.2.1-darwin-arm64.pkg) -* [Debian Package Installation](github.com/skycoin/skywire/wiki/Skywire-Package-Installation) +* [Windows installer](https://github.com/skycoin/skywire/releases/download/v1.3.6/skywire-installer-v1.3.6-windows-amd64.msi) +* [MacOS amd64 package](https://github.com/skycoin/skywire/releases/download/v1.3.6/skywire-installer-v1.3.6-darwin-amd64.pkg) +* [MacOS m1 / arm64](https://github.com/skycoin/skywire/releases/download/v1.3.6/skywire-installer-v1.3.6-darwin-arm64.pkg) +* [Debian Package Installation Guide](github.com/skycoin/skywire/wiki/Skywire-Package-Installation) * [Binary Releases](https://github.com/skycoin/skywire/releases) ## Dependencies From d8f8c91152748b35650476330ccff13232dcee67 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Fri, 10 Mar 2023 11:01:42 -0600 Subject: [PATCH 04/62] fix link in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 08268b24fb..873da61a70 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ Pre-compiled resouces * [Windows installer](https://github.com/skycoin/skywire/releases/download/v1.3.6/skywire-installer-v1.3.6-windows-amd64.msi) * [MacOS amd64 package](https://github.com/skycoin/skywire/releases/download/v1.3.6/skywire-installer-v1.3.6-darwin-amd64.pkg) * [MacOS m1 / arm64](https://github.com/skycoin/skywire/releases/download/v1.3.6/skywire-installer-v1.3.6-darwin-arm64.pkg) -* [Debian Package Installation Guide](github.com/skycoin/skywire/wiki/Skywire-Package-Installation) +* [Debian Package Installation Guide](https://github.com/skycoin/skywire/wiki/Skywire-Package-Installation) * [Binary Releases](https://github.com/skycoin/skywire/releases) ## Dependencies From d39eceadd06bf1478fbd5a10c0dd3620a11d7dab Mon Sep 17 00:00:00 2001 From: Mohammed Date: Tue, 14 Mar 2023 12:14:19 +0330 Subject: [PATCH 05/62] skip error on arm7 memory issue --- pkg/visor/visorconfig/values_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/visor/visorconfig/values_linux.go b/pkg/visor/visorconfig/values_linux.go index 8ca1095632..31b7c0263a 100644 --- a/pkg/visor/visorconfig/values_linux.go +++ b/pkg/visor/visorconfig/values_linux.go @@ -104,7 +104,7 @@ func SystemSurvey() (Survey, error) { return Survey{}, err } memory, err := ghw.Memory() - if err != nil { + if err != nil && err.Error() != "Could not determine total usable bytes of memory" { return Survey{}, err } for { From 12a0719564cefd45dbaddd675f13e5d99ddf202f Mon Sep 17 00:00:00 2001 From: Mohammed <79150699+mrpalide@users.noreply.github.com> Date: Thu, 16 Mar 2023 19:38:13 +0330 Subject: [PATCH 06/62] improve transport logic (#1519) * skip stopping on encrypted error * update skywire utilities * keep transport.manager module running till shutdown complete, actually no timeout --- go.mod | 2 +- go.sum | 2 ++ pkg/transport/network/client.go | 2 +- pkg/visor/visor.go | 5 +++++ .../skywire-utilities/pkg/logging/logger.go | 1 + .../skywire-utilities/pkg/skyenv/values.go | 20 +++++++++---------- vendor/modules.txt | 2 +- 7 files changed, 21 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index b5c17b6e2b..9a699a934e 100644 --- a/go.mod +++ b/go.mod @@ -50,7 +50,7 @@ require ( github.com/lib/pq v1.10.7 github.com/pterm/pterm v0.12.49 github.com/skycoin/dmsg v1.3.0-rc1.0.20230224131835-1c194ef9791e - github.com/skycoin/skywire-utilities v0.0.0-20230110132024-c5536ba8e22c + github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a github.com/skycoin/systray v1.10.0 github.com/spf13/pflag v1.0.5 github.com/zcalusic/sysinfo v0.9.5 diff --git a/go.sum b/go.sum index edd435e1aa..ccc5e05484 100644 --- a/go.sum +++ b/go.sum @@ -544,6 +544,8 @@ github.com/skycoin/skycoin v0.27.1 h1:HatxsRwVSPaV4qxH6290xPBmkH/HgiuAoY2qC+e8C9 github.com/skycoin/skycoin v0.27.1/go.mod h1:78nHjQzd8KG0jJJVL/j0xMmrihXi70ti63fh8vXScJw= github.com/skycoin/skywire-utilities v0.0.0-20230110132024-c5536ba8e22c h1:jYHyLwSyRVR/TmT4WWIGAeFX4FawGHA4Gaeic0zX3KI= github.com/skycoin/skywire-utilities v0.0.0-20230110132024-c5536ba8e22c/go.mod h1:X5H+fKC3rD11/sm4t9V2FWy/aet7OdEilaO2Ar3waXY= +github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a h1:hTqQ+8G/2Y+vd4qXoTbm7gfj+mjil2zDnGSS8i8V4LQ= +github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a/go.mod h1:X5H+fKC3rD11/sm4t9V2FWy/aet7OdEilaO2Ar3waXY= github.com/skycoin/systray v1.10.0 h1:fQZJHMylpVvfmOOTLvUssfyHVDoC8Idx6Ba2BlLEuGg= github.com/skycoin/systray v1.10.0/go.mod h1:/i17Eni5GxFiboIZceeamY5LktDSFFRCvd3fBMerQ+4= github.com/skycoin/yamux v0.0.0-20200803175205-571ceb89da9f h1:A5dEM1OE9YhN3LciZU9qPjo7fJ46JeHNi3JCroDkK0Y= diff --git a/pkg/transport/network/client.go b/pkg/transport/network/client.go index 4c75a07848..1604e75340 100644 --- a/pkg/transport/network/client.go +++ b/pkg/transport/network/client.go @@ -149,7 +149,7 @@ func (c *genericClient) acceptTransports(lis net.Listener) { c.log.Debugf("listening on addr: %v", c.connListener.Addr()) for { if err := c.acceptTransport(); err != nil { - if errors.Is(err, io.EOF) { + if errors.Is(err, io.EOF) || strings.Contains(err.Error(), "encrypt connection to") { continue // likely it's a dummy connection from service discovery } diff --git a/pkg/visor/visor.go b/pkg/visor/visor.go index 924cd96594..3649f58f91 100644 --- a/pkg/visor/visor.go +++ b/pkg/visor/visor.go @@ -474,6 +474,11 @@ func (v *Visor) Close() error { errCh := make(chan error, 1) t := time.NewTimer(moduleShutdownTimeout) + // should keep transport.manager shutdown continue till all transports delete there + if cl.src == "transport.manager" { + t = time.NewTimer(2 * time.Hour) + } + log := v.MasterLogger().PackageLogger(fmt.Sprintf("visor:shutdown:%s", cl.src)). WithField("func", fmt.Sprintf("[%d/%d]", i+1, len(v.closeStack))) log.Debug("Shutting down module...") diff --git a/vendor/github.com/skycoin/skywire-utilities/pkg/logging/logger.go b/vendor/github.com/skycoin/skywire-utilities/pkg/logging/logger.go index 95c92d99c4..5f2f3f13a4 100644 --- a/vendor/github.com/skycoin/skywire-utilities/pkg/logging/logger.go +++ b/vendor/github.com/skycoin/skywire-utilities/pkg/logging/logger.go @@ -43,6 +43,7 @@ func NewMasterLogger() *MasterLogger { ForceFormatting: true, DisableColors: false, ForceColors: false, + TimestampFormat: "2006-01-02T15:04:05.999999999Z07:00", }, Hooks: hooks, Level: logrus.DebugLevel, diff --git a/vendor/github.com/skycoin/skywire-utilities/pkg/skyenv/values.go b/vendor/github.com/skycoin/skywire-utilities/pkg/skyenv/values.go index ef73c08bdd..41298a161c 100644 --- a/vendor/github.com/skycoin/skywire-utilities/pkg/skyenv/values.go +++ b/vendor/github.com/skycoin/skywire-utilities/pkg/skyenv/values.go @@ -11,7 +11,7 @@ const ( UptimeTrackerAddr = "http://ut.skywire.skycoin.com" AddressResolverAddr = "http://ar.skywire.skycoin.com" SetupPK = "0324579f003e6b4048bae2def4365e634d8e0e3054a20fc7af49daf2a179658557" - NetworkMonitorPK = "0380ea88f0ad0aa4d93c330ba5f97aabca1d892190b94db69eee140b549d2817dd" + NetworkMonitorPK = "0380ea88f0ad0aa4d93c330ba5f97aabca1d892190b94db69eee140b549d2817dd,0283bddb4357e2c4de0d470032cd809966aec65ce57e1188143ab32c7b589b38b6,02f4e33b75307267229b0c3d679d08dd23374333f558288cfcb114311a52199358,02090f03cb26c71779b8327067e2e37314d2db3e31dfe4f8f3cdd8e088a98eb7ec" ) // Constants for testing deployment. @@ -24,20 +24,20 @@ const ( TestUptimeTrackerAddr = "http://ut.skywire.dev" TestAddressResolverAddr = "http://ar.skywire.dev" TestSetupPK = "026c2a3e92d6253c5abd71a42628db6fca9dd9aa037ab6f4e3a31108558dfd87cf" - TestNetworkMonitorPK = "0218905f5d9079bab0b62985a05bd162623b193e948e17e7b719133f2c60b92093,0218905f5d9079bab0b62985a05bd162623b193e948e17e7b719133f2c60b92093,0394b6e4bdb50977658013089523cc77a9c3af8d1a1581855b496b9ae3126deea0" + TestNetworkMonitorPK = "0218905f5d9079bab0b62985a05bd162623b193e948e17e7b719133f2c60b92093,0214456f6727b0dffacc3e4a9b331ff9bf7b7d97a9810c213772199f0f7ee59247,0394b6e4bdb50977658013089523cc77a9c3af8d1a1581855b496b9ae3126deea0,027f978ca206f00e052561b82a62e6405763f833779b1693fee9cc3c87caad26be" ) // GetStunServers gives back default Stun Servers func GetStunServers() []string { return []string{ - "192.46.224.108:3478", - "139.177.185.210:3478", - "139.162.17.54:3478", - "139.162.17.107:3478", - "139.162.17.156:3478", - "45.118.134.168:3478", - "139.177.185.180:3478", - "139.162.17.48:3478", + "139.162.12.30:3478", + "170.187.228.181:3478", + "172.104.161.184:3478", + "170.187.231.137:3478", + "143.42.74.91:3478", + "170.187.225.78:3478", + "143.42.78.123:3478", + "139.162.12.244:3478", } } diff --git a/vendor/modules.txt b/vendor/modules.txt index 31d911259a..325c6c0579 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -275,7 +275,7 @@ github.com/skycoin/skycoin/src/cipher/ripemd160 github.com/skycoin/skycoin/src/cipher/secp256k1-go github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2 github.com/skycoin/skycoin/src/util/logging -# github.com/skycoin/skywire-utilities v0.0.0-20230110132024-c5536ba8e22c +# github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a ## explicit; go 1.17 github.com/skycoin/skywire-utilities/pkg/buildinfo github.com/skycoin/skywire-utilities/pkg/cipher From 9e0594315731f26dfe3a92f80e1741440536ee2c Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Thu, 23 Mar 2023 09:01:58 -0500 Subject: [PATCH 07/62] Fix deps (dependabot) (#1521) * update go.mod - resolve Dependabot alert on golang.org/x/crypto - resolve Dependabot alert on golang.org/x/net - resolve Dependabot alert on golang.org/x/text * update vendor dir --- go.mod | 10 +- go.sum | 16 +- vendor/golang.org/x/crypto/AUTHORS | 3 - vendor/golang.org/x/crypto/CONTRIBUTORS | 3 - .../x/crypto/chacha20/chacha_generic.go | 4 +- .../x/crypto/chacha20/chacha_s390x.go | 1 + .../chacha20poly1305_amd64.go | 6 +- .../chacha20poly1305_generic.go | 6 +- .../x/crypto/curve25519/curve25519.go | 9 +- .../curve25519/internal/field/fe_amd64.go | 3 + .../{subtle/aliasing.go => alias/alias.go} | 5 +- .../alias_purego.go} | 5 +- .../x/crypto/internal/poly1305/sum_generic.go | 5 +- .../x/crypto/internal/poly1305/sum_s390x.go | 1 + vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go | 2 +- vendor/golang.org/x/crypto/salsa20/salsa20.go | 4 +- vendor/golang.org/x/crypto/sha3/doc.go | 12 +- vendor/golang.org/x/crypto/sha3/sha3.go | 2 +- vendor/golang.org/x/crypto/sha3/sha3_s390x.go | 2 + .../golang.org/x/net/bpf/vm_instructions.go | 4 +- vendor/golang.org/x/net/context/go17.go | 4 +- .../x/net/internal/socket/mmsghdr_unix.go | 18 +- .../x/net/internal/socket/msghdr_linux.go | 3 - .../x/net/internal/socket/rawconn_msg.go | 48 +- .../x/net/internal/socket/sys_stub.go | 6 +- .../x/net/internal/socket/sys_unix.go | 101 +- .../x/net/internal/socket/sys_windows.go | 7 +- .../x/net/internal/socket/sys_zos_s390x.go | 38 +- .../x/net/internal/socket/zsys_darwin_arm.go | 30 - ..._darwin_386.go => zsys_freebsd_riscv64.go} | 8 +- .../net/internal/socket/zsys_openbsd_ppc64.go | 30 + .../internal/socket/zsys_openbsd_riscv64.go | 30 + .../x/net/ipv4/zsys_freebsd_riscv64.go | 52 + vendor/golang.org/x/net/ipv6/dgramopt.go | 2 +- .../x/net/ipv6/zsys_freebsd_riscv64.go | 64 + vendor/golang.org/x/net/nettest/nettest.go | 46 +- vendor/golang.org/x/sys/cpu/cpu_arm64.go | 12 +- vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c | 1 + .../golang.org/x/sys/cpu/cpu_linux_arm64.go | 44 +- .../golang.org/x/sys/cpu/cpu_openbsd_arm64.go | 65 + .../golang.org/x/sys/cpu/cpu_openbsd_arm64.s | 11 + .../golang.org/x/sys/cpu/cpu_other_arm64.go | 4 +- .../golang.org/x/sys/cpu/cpu_other_ppc64x.go | 15 + vendor/golang.org/x/sys/cpu/endian_big.go | 11 + vendor/golang.org/x/sys/cpu/endian_little.go | 11 + vendor/golang.org/x/sys/cpu/parse.go | 43 + .../x/sys/cpu/proc_cpuinfo_linux.go | 54 + .../golang.org/x/sys/execabs/execabs_go119.go | 8 +- vendor/golang.org/x/sys/plan9/mkerrors.sh | 4 +- vendor/golang.org/x/sys/plan9/syscall.go | 10 +- vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s | 31 + vendor/golang.org/x/sys/unix/dirent.go | 4 +- vendor/golang.org/x/sys/unix/gccgo.go | 4 +- vendor/golang.org/x/sys/unix/gccgo_c.c | 4 +- vendor/golang.org/x/sys/unix/ioctl.go | 4 +- vendor/golang.org/x/sys/unix/ioctl_linux.go | 20 +- vendor/golang.org/x/sys/unix/mkall.sh | 49 +- vendor/golang.org/x/sys/unix/mkerrors.sh | 4 +- vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 14 + vendor/golang.org/x/sys/unix/str.go | 27 - vendor/golang.org/x/sys/unix/syscall.go | 10 +- vendor/golang.org/x/sys/unix/syscall_aix.go | 57 +- vendor/golang.org/x/sys/unix/syscall_bsd.go | 2 +- .../x/sys/unix/syscall_darwin.1_12.go | 32 - .../x/sys/unix/syscall_darwin.1_13.go | 108 - .../golang.org/x/sys/unix/syscall_darwin.go | 91 + .../x/sys/unix/syscall_dragonfly.go | 1 + .../golang.org/x/sys/unix/syscall_freebsd.go | 1 + .../x/sys/unix/syscall_freebsd_386.go | 9 +- .../x/sys/unix/syscall_freebsd_amd64.go | 9 +- .../x/sys/unix/syscall_freebsd_arm.go | 9 +- .../x/sys/unix/syscall_freebsd_arm64.go | 9 +- .../x/sys/unix/syscall_freebsd_riscv64.go | 9 +- vendor/golang.org/x/sys/unix/syscall_hurd.go | 22 + .../golang.org/x/sys/unix/syscall_hurd_386.go | 29 + .../golang.org/x/sys/unix/syscall_illumos.go | 106 - vendor/golang.org/x/sys/unix/syscall_linux.go | 97 +- .../x/sys/unix/syscall_linux_386.go | 4 - .../x/sys/unix/syscall_linux_amd64.go | 4 - .../x/sys/unix/syscall_linux_arm.go | 4 - .../x/sys/unix/syscall_linux_arm64.go | 4 - .../x/sys/unix/syscall_linux_loong64.go | 4 - .../x/sys/unix/syscall_linux_mips64x.go | 4 - .../x/sys/unix/syscall_linux_mipsx.go | 4 - .../x/sys/unix/syscall_linux_ppc.go | 4 - .../x/sys/unix/syscall_linux_ppc64x.go | 4 - .../x/sys/unix/syscall_linux_riscv64.go | 4 - .../x/sys/unix/syscall_linux_s390x.go | 4 - .../x/sys/unix/syscall_linux_sparc64.go | 4 - .../golang.org/x/sys/unix/syscall_netbsd.go | 15 + .../golang.org/x/sys/unix/syscall_openbsd.go | 1 + .../x/sys/unix/syscall_openbsd_libc.go | 27 + .../x/sys/unix/syscall_openbsd_ppc64.go | 42 + .../x/sys/unix/syscall_openbsd_riscv64.go | 42 + .../golang.org/x/sys/unix/syscall_solaris.go | 218 +- vendor/golang.org/x/sys/unix/syscall_unix.go | 77 +- .../golang.org/x/sys/unix/syscall_unix_gc.go | 6 +- .../x/sys/unix/syscall_zos_s390x.go | 173 +- vendor/golang.org/x/sys/unix/sysvshm_unix.go | 13 +- vendor/golang.org/x/sys/unix/timestruct.go | 2 +- vendor/golang.org/x/sys/unix/xattr_bsd.go | 104 +- vendor/golang.org/x/sys/unix/zerrors_linux.go | 30 +- .../x/sys/unix/zerrors_linux_386.go | 5 +- .../x/sys/unix/zerrors_linux_amd64.go | 5 +- .../x/sys/unix/zerrors_linux_arm.go | 5 +- .../x/sys/unix/zerrors_linux_arm64.go | 5 +- .../x/sys/unix/zerrors_linux_loong64.go | 5 +- .../x/sys/unix/zerrors_linux_mips.go | 5 +- .../x/sys/unix/zerrors_linux_mips64.go | 5 +- .../x/sys/unix/zerrors_linux_mips64le.go | 5 +- .../x/sys/unix/zerrors_linux_mipsle.go | 5 +- .../x/sys/unix/zerrors_linux_ppc.go | 5 +- .../x/sys/unix/zerrors_linux_ppc64.go | 5 +- .../x/sys/unix/zerrors_linux_ppc64le.go | 5 +- .../x/sys/unix/zerrors_linux_riscv64.go | 5 +- .../x/sys/unix/zerrors_linux_s390x.go | 5 +- .../x/sys/unix/zerrors_linux_sparc64.go | 5 +- .../x/sys/unix/zerrors_openbsd_386.go | 356 ++- .../x/sys/unix/zerrors_openbsd_amd64.go | 189 +- .../x/sys/unix/zerrors_openbsd_arm.go | 348 ++- .../x/sys/unix/zerrors_openbsd_arm64.go | 160 +- .../x/sys/unix/zerrors_openbsd_mips64.go | 95 +- .../x/sys/unix/zerrors_openbsd_ppc64.go | 1905 ++++++++++++++ .../x/sys/unix/zerrors_openbsd_riscv64.go | 1904 ++++++++++++++ .../x/sys/unix/zsyscall_darwin_amd64.1_13.go | 40 - .../x/sys/unix/zsyscall_darwin_amd64.1_13.s | 25 - .../x/sys/unix/zsyscall_darwin_amd64.go | 32 +- .../x/sys/unix/zsyscall_darwin_amd64.s | 23 +- .../x/sys/unix/zsyscall_darwin_arm64.1_13.go | 40 - .../x/sys/unix/zsyscall_darwin_arm64.1_13.s | 25 - .../x/sys/unix/zsyscall_darwin_arm64.go | 32 +- .../x/sys/unix/zsyscall_darwin_arm64.s | 23 +- .../x/sys/unix/zsyscall_dragonfly_amd64.go | 10 + .../x/sys/unix/zsyscall_freebsd_386.go | 10 + .../x/sys/unix/zsyscall_freebsd_amd64.go | 10 + .../x/sys/unix/zsyscall_freebsd_arm.go | 10 + .../x/sys/unix/zsyscall_freebsd_arm64.go | 10 + .../x/sys/unix/zsyscall_freebsd_riscv64.go | 10 + .../x/sys/unix/zsyscall_illumos_amd64.go | 28 +- .../golang.org/x/sys/unix/zsyscall_linux.go | 21 + .../x/sys/unix/zsyscall_linux_386.go | 40 - .../x/sys/unix/zsyscall_linux_amd64.go | 40 - .../x/sys/unix/zsyscall_linux_arm.go | 40 - .../x/sys/unix/zsyscall_linux_arm64.go | 40 - .../x/sys/unix/zsyscall_linux_loong64.go | 40 - .../x/sys/unix/zsyscall_linux_mips.go | 40 - .../x/sys/unix/zsyscall_linux_mips64.go | 40 - .../x/sys/unix/zsyscall_linux_mips64le.go | 40 - .../x/sys/unix/zsyscall_linux_mipsle.go | 40 - .../x/sys/unix/zsyscall_linux_ppc.go | 40 - .../x/sys/unix/zsyscall_linux_ppc64.go | 40 - .../x/sys/unix/zsyscall_linux_ppc64le.go | 40 - .../x/sys/unix/zsyscall_linux_riscv64.go | 40 - .../x/sys/unix/zsyscall_linux_s390x.go | 40 - .../x/sys/unix/zsyscall_linux_sparc64.go | 40 - .../x/sys/unix/zsyscall_netbsd_386.go | 10 + .../x/sys/unix/zsyscall_netbsd_amd64.go | 10 + .../x/sys/unix/zsyscall_netbsd_arm.go | 10 + .../x/sys/unix/zsyscall_netbsd_arm64.go | 10 + .../x/sys/unix/zsyscall_openbsd_386.go | 812 +++++- .../x/sys/unix/zsyscall_openbsd_386.s | 669 +++++ .../x/sys/unix/zsyscall_openbsd_amd64.go | 812 +++++- .../x/sys/unix/zsyscall_openbsd_amd64.s | 669 +++++ .../x/sys/unix/zsyscall_openbsd_arm.go | 812 +++++- .../x/sys/unix/zsyscall_openbsd_arm.s | 669 +++++ .../x/sys/unix/zsyscall_openbsd_arm64.go | 812 +++++- .../x/sys/unix/zsyscall_openbsd_arm64.s | 669 +++++ .../x/sys/unix/zsyscall_openbsd_mips64.go | 812 +++++- .../x/sys/unix/zsyscall_openbsd_mips64.s | 669 +++++ .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2235 +++++++++++++++++ .../x/sys/unix/zsyscall_openbsd_ppc64.s | 802 ++++++ .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2235 +++++++++++++++++ .../x/sys/unix/zsyscall_openbsd_riscv64.s | 669 +++++ .../x/sys/unix/zsyscall_solaris_amd64.go | 41 +- .../x/sys/unix/zsysctl_openbsd_386.go | 51 +- .../x/sys/unix/zsysctl_openbsd_amd64.go | 17 +- .../x/sys/unix/zsysctl_openbsd_arm.go | 51 +- .../x/sys/unix/zsysctl_openbsd_arm64.go | 11 +- .../x/sys/unix/zsysctl_openbsd_mips64.go | 3 +- .../x/sys/unix/zsysctl_openbsd_ppc64.go | 281 +++ .../x/sys/unix/zsysctl_openbsd_riscv64.go | 282 +++ .../x/sys/unix/zsysnum_linux_386.go | 2 +- .../x/sys/unix/zsysnum_linux_amd64.go | 2 +- .../x/sys/unix/zsysnum_linux_arm.go | 2 +- .../x/sys/unix/zsysnum_linux_arm64.go | 2 +- .../x/sys/unix/zsysnum_linux_loong64.go | 2 +- .../x/sys/unix/zsysnum_linux_mips.go | 2 +- .../x/sys/unix/zsysnum_linux_mips64.go | 2 +- .../x/sys/unix/zsysnum_linux_mips64le.go | 2 +- .../x/sys/unix/zsysnum_linux_mipsle.go | 2 +- .../x/sys/unix/zsysnum_linux_ppc.go | 2 +- .../x/sys/unix/zsysnum_linux_ppc64.go | 2 +- .../x/sys/unix/zsysnum_linux_ppc64le.go | 2 +- .../x/sys/unix/zsysnum_linux_riscv64.go | 2 +- .../x/sys/unix/zsysnum_linux_s390x.go | 2 +- .../x/sys/unix/zsysnum_linux_sparc64.go | 2 +- .../x/sys/unix/zsysnum_openbsd_386.go | 1 + .../x/sys/unix/zsysnum_openbsd_amd64.go | 1 + .../x/sys/unix/zsysnum_openbsd_arm.go | 1 + .../x/sys/unix/zsysnum_openbsd_arm64.go | 1 + .../x/sys/unix/zsysnum_openbsd_mips64.go | 1 + .../x/sys/unix/zsysnum_openbsd_ppc64.go | 218 ++ .../x/sys/unix/zsysnum_openbsd_riscv64.go | 219 ++ .../x/sys/unix/ztypes_freebsd_386.go | 17 +- .../x/sys/unix/ztypes_freebsd_amd64.go | 18 +- .../x/sys/unix/ztypes_freebsd_arm.go | 18 +- .../x/sys/unix/ztypes_freebsd_arm64.go | 18 +- .../x/sys/unix/ztypes_freebsd_riscv64.go | 18 +- .../x/sys/unix/ztypes_illumos_amd64.go | 42 - vendor/golang.org/x/sys/unix/ztypes_linux.go | 225 +- .../golang.org/x/sys/unix/ztypes_linux_386.go | 8 +- .../x/sys/unix/ztypes_linux_amd64.go | 8 +- .../golang.org/x/sys/unix/ztypes_linux_arm.go | 8 +- .../x/sys/unix/ztypes_linux_arm64.go | 8 +- .../x/sys/unix/ztypes_linux_loong64.go | 8 +- .../x/sys/unix/ztypes_linux_mips.go | 8 +- .../x/sys/unix/ztypes_linux_mips64.go | 8 +- .../x/sys/unix/ztypes_linux_mips64le.go | 8 +- .../x/sys/unix/ztypes_linux_mipsle.go | 8 +- .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 8 +- .../x/sys/unix/ztypes_linux_ppc64.go | 8 +- .../x/sys/unix/ztypes_linux_ppc64le.go | 8 +- .../x/sys/unix/ztypes_linux_riscv64.go | 8 +- .../x/sys/unix/ztypes_linux_s390x.go | 8 +- .../x/sys/unix/ztypes_linux_sparc64.go | 8 +- .../x/sys/unix/ztypes_netbsd_386.go | 84 + .../x/sys/unix/ztypes_netbsd_amd64.go | 84 + .../x/sys/unix/ztypes_netbsd_arm.go | 84 + .../x/sys/unix/ztypes_netbsd_arm64.go | 84 + .../x/sys/unix/ztypes_openbsd_386.go | 97 +- .../x/sys/unix/ztypes_openbsd_amd64.go | 33 +- .../x/sys/unix/ztypes_openbsd_arm.go | 9 +- .../x/sys/unix/ztypes_openbsd_arm64.go | 9 +- .../x/sys/unix/ztypes_openbsd_mips64.go | 9 +- .../x/sys/unix/ztypes_openbsd_ppc64.go | 571 +++++ .../x/sys/unix/ztypes_openbsd_riscv64.go | 571 +++++ .../x/sys/unix/ztypes_solaris_amd64.go | 35 + .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 11 +- .../x/sys/windows/setupapi_windows.go | 2 +- vendor/golang.org/x/sys/windows/syscall.go | 10 +- .../x/sys/windows/syscall_windows.go | 145 +- .../golang.org/x/sys/windows/types_windows.go | 45 + .../x/sys/windows/zsyscall_windows.go | 104 + vendor/golang.org/x/term/AUTHORS | 3 - vendor/golang.org/x/term/CONTRIBUTORS | 3 - vendor/golang.org/x/term/term.go | 10 +- vendor/golang.org/x/term/terminal.go | 3 +- vendor/golang.org/x/text/AUTHORS | 3 - vendor/golang.org/x/text/CONTRIBUTORS | 3 - vendor/golang.org/x/text/cases/trieval.go | 73 +- .../x/text/encoding/htmlindex/tables.go | 9 + .../text/encoding/internal/identifier/mib.go | 8 + .../x/text/encoding/simplifiedchinese/gbk.go | 6 +- .../internal/language/compact/language.go | 2 +- .../text/internal/language/compact/tables.go | 6 +- .../x/text/internal/language/language.go | 2 +- .../x/text/internal/language/lookup.go | 4 +- .../x/text/internal/language/parse.go | 24 +- .../x/text/internal/language/tables.go | 868 +++---- .../internal/utf8internal/utf8internal.go | 2 +- vendor/golang.org/x/text/language/doc.go | 44 +- vendor/golang.org/x/text/language/go1_1.go | 39 - vendor/golang.org/x/text/language/go1_2.go | 12 - vendor/golang.org/x/text/language/language.go | 2 +- vendor/golang.org/x/text/language/match.go | 2 +- vendor/golang.org/x/text/language/parse.go | 8 +- vendor/golang.org/x/text/language/tables.go | 18 +- vendor/golang.org/x/text/runes/runes.go | 2 +- .../x/text/unicode/norm/forminfo.go | 9 +- .../x/text/unicode/norm/normalize.go | 11 +- .../x/text/unicode/norm/tables13.0.0.go | 4 +- vendor/modules.txt | 12 +- 272 files changed, 23386 insertions(+), 3288 deletions(-) delete mode 100644 vendor/golang.org/x/crypto/AUTHORS delete mode 100644 vendor/golang.org/x/crypto/CONTRIBUTORS rename vendor/golang.org/x/crypto/internal/{subtle/aliasing.go => alias/alias.go} (84%) rename vendor/golang.org/x/crypto/internal/{subtle/aliasing_purego.go => alias/alias_purego.go} (86%) delete mode 100644 vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go rename vendor/golang.org/x/net/internal/socket/{zsys_darwin_386.go => zsys_freebsd_riscv64.go} (79%) create mode 100644 vendor/golang.org/x/net/internal/socket/zsys_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/net/internal/socket/zsys_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/net/ipv4/zsys_freebsd_riscv64.go create mode 100644 vendor/golang.org/x/net/ipv6/zsys_freebsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s create mode 100644 vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go create mode 100644 vendor/golang.org/x/sys/cpu/endian_big.go create mode 100644 vendor/golang.org/x/sys/cpu/endian_little.go create mode 100644 vendor/golang.org/x/sys/cpu/parse.go create mode 100644 vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go create mode 100644 vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s delete mode 100644 vendor/golang.org/x/sys/unix/str.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go delete mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_hurd.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_hurd_386.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go delete mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go delete mode 100644 vendor/golang.org/x/term/AUTHORS delete mode 100644 vendor/golang.org/x/term/CONTRIBUTORS delete mode 100644 vendor/golang.org/x/text/AUTHORS delete mode 100644 vendor/golang.org/x/text/CONTRIBUTORS delete mode 100644 vendor/golang.org/x/text/language/go1_1.go delete mode 100644 vendor/golang.org/x/text/language/go1_2.go diff --git a/go.mod b/go.mod index 9a699a934e..7bc2aad710 100644 --- a/go.mod +++ b/go.mod @@ -30,9 +30,9 @@ require ( github.com/toqueteos/webbrowser v1.2.0 github.com/xtaci/kcp-go v5.4.20+incompatible go.etcd.io/bbolt v1.3.6 - golang.org/x/net v0.0.0-20220722155237-a158d28d115b - golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect + golang.org/x/net v0.7.0 + golang.org/x/sys v0.5.0 + golang.org/x/term v0.5.0 // indirect golang.org/x/tools v0.1.12 // indirect golang.zx2c4.com/wireguard v0.0.0-20211012180210-dfd688b6aa7b nhooyr.io/websocket v1.8.2 // indirect @@ -99,9 +99,9 @@ require ( github.com/valyala/histogram v1.2.0 // indirect github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 // indirect - golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect + golang.org/x/crypto v0.1.0 // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/text v0.3.7 // indirect + golang.org/x/text v0.7.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect howett.net/plist v1.0.0 // indirect diff --git a/go.sum b/go.sum index ccc5e05484..b233227ada 100644 --- a/go.sum +++ b/go.sum @@ -542,7 +542,6 @@ github.com/skycoin/noise v0.0.0-20180327030543-2492fe189ae6 h1:1Nc5EBY6pjfw1kwW0 github.com/skycoin/noise v0.0.0-20180327030543-2492fe189ae6/go.mod h1:UXghlricA7J3aRD/k7p/zBObQfmBawwCxIVPVjz2Q3o= github.com/skycoin/skycoin v0.27.1 h1:HatxsRwVSPaV4qxH6290xPBmkH/HgiuAoY2qC+e8C9I= github.com/skycoin/skycoin v0.27.1/go.mod h1:78nHjQzd8KG0jJJVL/j0xMmrihXi70ti63fh8vXScJw= -github.com/skycoin/skywire-utilities v0.0.0-20230110132024-c5536ba8e22c h1:jYHyLwSyRVR/TmT4WWIGAeFX4FawGHA4Gaeic0zX3KI= github.com/skycoin/skywire-utilities v0.0.0-20230110132024-c5536ba8e22c/go.mod h1:X5H+fKC3rD11/sm4t9V2FWy/aet7OdEilaO2Ar3waXY= github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a h1:hTqQ+8G/2Y+vd4qXoTbm7gfj+mjil2zDnGSS8i8V4LQ= github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a/go.mod h1:X5H+fKC3rD11/sm4t9V2FWy/aet7OdEilaO2Ar3waXY= @@ -649,8 +648,9 @@ golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -742,8 +742,9 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -862,13 +863,15 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -877,8 +880,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/vendor/golang.org/x/crypto/AUTHORS b/vendor/golang.org/x/crypto/AUTHORS deleted file mode 100644 index 2b00ddba0d..0000000000 --- a/vendor/golang.org/x/crypto/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at https://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/crypto/CONTRIBUTORS b/vendor/golang.org/x/crypto/CONTRIBUTORS deleted file mode 100644 index 1fbd3e976f..0000000000 --- a/vendor/golang.org/x/crypto/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at https://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/crypto/chacha20/chacha_generic.go b/vendor/golang.org/x/crypto/chacha20/chacha_generic.go index a2ecf5c325..93eb5ae6de 100644 --- a/vendor/golang.org/x/crypto/chacha20/chacha_generic.go +++ b/vendor/golang.org/x/crypto/chacha20/chacha_generic.go @@ -12,7 +12,7 @@ import ( "errors" "math/bits" - "golang.org/x/crypto/internal/subtle" + "golang.org/x/crypto/internal/alias" ) const ( @@ -189,7 +189,7 @@ func (s *Cipher) XORKeyStream(dst, src []byte) { panic("chacha20: output smaller than input") } dst = dst[:len(src)] - if subtle.InexactOverlap(dst, src) { + if alias.InexactOverlap(dst, src) { panic("chacha20: invalid buffer overlap") } diff --git a/vendor/golang.org/x/crypto/chacha20/chacha_s390x.go b/vendor/golang.org/x/crypto/chacha20/chacha_s390x.go index c5898db465..4652247b8a 100644 --- a/vendor/golang.org/x/crypto/chacha20/chacha_s390x.go +++ b/vendor/golang.org/x/crypto/chacha20/chacha_s390x.go @@ -15,6 +15,7 @@ const bufSize = 256 // xorKeyStreamVX is an assembly implementation of XORKeyStream. It must only // be called when the vector facility is available. Implementation in asm_s390x.s. +// //go:noescape func xorKeyStreamVX(dst, src []byte, key *[8]uint32, nonce *[3]uint32, counter *uint32) diff --git a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.go b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.go index 25959b9a6e..0c408c5709 100644 --- a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.go +++ b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_amd64.go @@ -10,7 +10,7 @@ package chacha20poly1305 import ( "encoding/binary" - "golang.org/x/crypto/internal/subtle" + "golang.org/x/crypto/internal/alias" "golang.org/x/sys/cpu" ) @@ -56,7 +56,7 @@ func (c *chacha20poly1305) seal(dst, nonce, plaintext, additionalData []byte) [] setupState(&state, &c.key, nonce) ret, out := sliceForAppend(dst, len(plaintext)+16) - if subtle.InexactOverlap(out, plaintext) { + if alias.InexactOverlap(out, plaintext) { panic("chacha20poly1305: invalid buffer overlap") } chacha20Poly1305Seal(out[:], state[:], plaintext, additionalData) @@ -73,7 +73,7 @@ func (c *chacha20poly1305) open(dst, nonce, ciphertext, additionalData []byte) ( ciphertext = ciphertext[:len(ciphertext)-16] ret, out := sliceForAppend(dst, len(ciphertext)) - if subtle.InexactOverlap(out, ciphertext) { + if alias.InexactOverlap(out, ciphertext) { panic("chacha20poly1305: invalid buffer overlap") } if !chacha20Poly1305Open(out, state[:], ciphertext, additionalData) { diff --git a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_generic.go b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_generic.go index 96b2fd898b..6313898f0a 100644 --- a/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_generic.go +++ b/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_generic.go @@ -8,8 +8,8 @@ import ( "encoding/binary" "golang.org/x/crypto/chacha20" + "golang.org/x/crypto/internal/alias" "golang.org/x/crypto/internal/poly1305" - "golang.org/x/crypto/internal/subtle" ) func writeWithPadding(p *poly1305.MAC, b []byte) { @@ -30,7 +30,7 @@ func writeUint64(p *poly1305.MAC, n int) { func (c *chacha20poly1305) sealGeneric(dst, nonce, plaintext, additionalData []byte) []byte { ret, out := sliceForAppend(dst, len(plaintext)+poly1305.TagSize) ciphertext, tag := out[:len(plaintext)], out[len(plaintext):] - if subtle.InexactOverlap(out, plaintext) { + if alias.InexactOverlap(out, plaintext) { panic("chacha20poly1305: invalid buffer overlap") } @@ -66,7 +66,7 @@ func (c *chacha20poly1305) openGeneric(dst, nonce, ciphertext, additionalData [] writeUint64(p, len(ciphertext)) ret, out := sliceForAppend(dst, len(ciphertext)) - if subtle.InexactOverlap(out, ciphertext) { + if alias.InexactOverlap(out, ciphertext) { panic("chacha20poly1305: invalid buffer overlap") } if !p.Verify(tag) { diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519.go b/vendor/golang.org/x/crypto/curve25519/curve25519.go index cda3fdd354..bc62161d6e 100644 --- a/vendor/golang.org/x/crypto/curve25519/curve25519.go +++ b/vendor/golang.org/x/crypto/curve25519/curve25519.go @@ -9,7 +9,8 @@ package curve25519 // import "golang.org/x/crypto/curve25519" import ( "crypto/subtle" - "fmt" + "errors" + "strconv" "golang.org/x/crypto/curve25519/internal/field" ) @@ -124,10 +125,10 @@ func X25519(scalar, point []byte) ([]byte, error) { func x25519(dst *[32]byte, scalar, point []byte) ([]byte, error) { var in [32]byte if l := len(scalar); l != 32 { - return nil, fmt.Errorf("bad scalar length: %d, expected %d", l, 32) + return nil, errors.New("bad scalar length: " + strconv.Itoa(l) + ", expected 32") } if l := len(point); l != 32 { - return nil, fmt.Errorf("bad point length: %d, expected %d", l, 32) + return nil, errors.New("bad point length: " + strconv.Itoa(l) + ", expected 32") } copy(in[:], scalar) if &point[0] == &Basepoint[0] { @@ -138,7 +139,7 @@ func x25519(dst *[32]byte, scalar, point []byte) ([]byte, error) { copy(base[:], point) ScalarMult(dst, &in, &base) if subtle.ConstantTimeCompare(dst[:], zero[:]) == 1 { - return nil, fmt.Errorf("bad input point: low order point") + return nil, errors.New("bad input point: low order point") } } return dst[:], nil diff --git a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.go b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.go index 44dc8e8caf..edcf163c4e 100644 --- a/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.go +++ b/vendor/golang.org/x/crypto/curve25519/internal/field/fe_amd64.go @@ -1,13 +1,16 @@ // Code generated by command: go run fe_amd64_asm.go -out ../fe_amd64.s -stubs ../fe_amd64.go -pkg field. DO NOT EDIT. +//go:build amd64 && gc && !purego // +build amd64,gc,!purego package field // feMul sets out = a * b. It works like feMulGeneric. +// //go:noescape func feMul(out *Element, a *Element, b *Element) // feSquare sets out = a * a. It works like feSquareGeneric. +// //go:noescape func feSquare(out *Element, a *Element) diff --git a/vendor/golang.org/x/crypto/internal/subtle/aliasing.go b/vendor/golang.org/x/crypto/internal/alias/alias.go similarity index 84% rename from vendor/golang.org/x/crypto/internal/subtle/aliasing.go rename to vendor/golang.org/x/crypto/internal/alias/alias.go index 4fad24f8dc..69c17f822b 100644 --- a/vendor/golang.org/x/crypto/internal/subtle/aliasing.go +++ b/vendor/golang.org/x/crypto/internal/alias/alias.go @@ -5,9 +5,8 @@ //go:build !purego // +build !purego -// Package subtle implements functions that are often useful in cryptographic -// code but require careful thought to use correctly. -package subtle // import "golang.org/x/crypto/internal/subtle" +// Package alias implements memory aliasing tests. +package alias import "unsafe" diff --git a/vendor/golang.org/x/crypto/internal/subtle/aliasing_purego.go b/vendor/golang.org/x/crypto/internal/alias/alias_purego.go similarity index 86% rename from vendor/golang.org/x/crypto/internal/subtle/aliasing_purego.go rename to vendor/golang.org/x/crypto/internal/alias/alias_purego.go index 80ccbed2c0..4775b0a438 100644 --- a/vendor/golang.org/x/crypto/internal/subtle/aliasing_purego.go +++ b/vendor/golang.org/x/crypto/internal/alias/alias_purego.go @@ -5,9 +5,8 @@ //go:build purego // +build purego -// Package subtle implements functions that are often useful in cryptographic -// code but require careful thought to use correctly. -package subtle // import "golang.org/x/crypto/internal/subtle" +// Package alias implements memory aliasing tests. +package alias // This is the Google App Engine standard variant based on reflect // because the unsafe package and cgo are disallowed. diff --git a/vendor/golang.org/x/crypto/internal/poly1305/sum_generic.go b/vendor/golang.org/x/crypto/internal/poly1305/sum_generic.go index c942a65904..e041da5ea3 100644 --- a/vendor/golang.org/x/crypto/internal/poly1305/sum_generic.go +++ b/vendor/golang.org/x/crypto/internal/poly1305/sum_generic.go @@ -136,7 +136,7 @@ func shiftRightBy2(a uint128) uint128 { // updateGeneric absorbs msg into the state.h accumulator. For each chunk m of // 128 bits of message, it computes // -// h₊ = (h + m) * r mod 2¹³⁰ - 5 +// h₊ = (h + m) * r mod 2¹³⁰ - 5 // // If the msg length is not a multiple of TagSize, it assumes the last // incomplete chunk is the final one. @@ -278,8 +278,7 @@ const ( // finalize completes the modular reduction of h and computes // -// out = h + s mod 2¹²⁸ -// +// out = h + s mod 2¹²⁸ func finalize(out *[TagSize]byte, h *[3]uint64, s *[2]uint64) { h0, h1, h2 := h[0], h[1], h[2] diff --git a/vendor/golang.org/x/crypto/internal/poly1305/sum_s390x.go b/vendor/golang.org/x/crypto/internal/poly1305/sum_s390x.go index 62cc9f8470..ec95966889 100644 --- a/vendor/golang.org/x/crypto/internal/poly1305/sum_s390x.go +++ b/vendor/golang.org/x/crypto/internal/poly1305/sum_s390x.go @@ -14,6 +14,7 @@ import ( // updateVX is an assembly implementation of Poly1305 that uses vector // instructions. It must only be called if the vector facility (vx) is // available. +// //go:noescape func updateVX(state *macState, msg []byte) diff --git a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go index 593f653008..904b57e01d 100644 --- a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go +++ b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go @@ -32,7 +32,7 @@ import ( // can get a derived key for e.g. AES-256 (which needs a 32-byte key) by // doing: // -// dk := pbkdf2.Key([]byte("some password"), salt, 4096, 32, sha1.New) +// dk := pbkdf2.Key([]byte("some password"), salt, 4096, 32, sha1.New) // // Remember to get a good random salt. At least 8 bytes is recommended by the // RFC. diff --git a/vendor/golang.org/x/crypto/salsa20/salsa20.go b/vendor/golang.org/x/crypto/salsa20/salsa20.go index 6f9bb106ca..8f4f896c70 100644 --- a/vendor/golang.org/x/crypto/salsa20/salsa20.go +++ b/vendor/golang.org/x/crypto/salsa20/salsa20.go @@ -24,7 +24,7 @@ package salsa20 // import "golang.org/x/crypto/salsa20" // TODO(agl): implement XORKeyStream12 and XORKeyStream8 - the reduced round variants of Salsa20. import ( - "golang.org/x/crypto/internal/subtle" + "golang.org/x/crypto/internal/alias" "golang.org/x/crypto/salsa20/salsa" ) @@ -35,7 +35,7 @@ func XORKeyStream(out, in []byte, nonce []byte, key *[32]byte) { if len(out) < len(in) { panic("salsa20: output smaller than input") } - if subtle.InexactOverlap(out[:len(in)], in) { + if alias.InexactOverlap(out[:len(in)], in) { panic("salsa20: invalid buffer overlap") } diff --git a/vendor/golang.org/x/crypto/sha3/doc.go b/vendor/golang.org/x/crypto/sha3/doc.go index c2fef30aff..decd8cf9bf 100644 --- a/vendor/golang.org/x/crypto/sha3/doc.go +++ b/vendor/golang.org/x/crypto/sha3/doc.go @@ -8,8 +8,7 @@ // Both types of hash function use the "sponge" construction and the Keccak // permutation. For a detailed specification see http://keccak.noekeon.org/ // -// -// Guidance +// # Guidance // // If you aren't sure what function you need, use SHAKE256 with at least 64 // bytes of output. The SHAKE instances are faster than the SHA3 instances; @@ -19,8 +18,7 @@ // secret key to the input, hash with SHAKE256 and read at least 32 bytes of // output. // -// -// Security strengths +// # Security strengths // // The SHA3-x (x equals 224, 256, 384, or 512) functions have a security // strength against preimage attacks of x bits. Since they only produce "x" @@ -31,8 +29,7 @@ // is used. Requesting more than 64 or 32 bytes of output, respectively, does // not increase the collision-resistance of the SHAKE functions. // -// -// The sponge construction +// # The sponge construction // // A sponge builds a pseudo-random function from a public pseudo-random // permutation, by applying the permutation to a state of "rate + capacity" @@ -50,8 +47,7 @@ // Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means // that the security strength of a sponge instance is equal to (1600 - bitrate) / 2. // -// -// Recommendations +// # Recommendations // // The SHAKE functions are recommended for most new uses. They can produce // output of arbitrary length. SHAKE256, with an output length of at least diff --git a/vendor/golang.org/x/crypto/sha3/sha3.go b/vendor/golang.org/x/crypto/sha3/sha3.go index ba269a0730..fa182beb40 100644 --- a/vendor/golang.org/x/crypto/sha3/sha3.go +++ b/vendor/golang.org/x/crypto/sha3/sha3.go @@ -86,7 +86,7 @@ func (d *state) permute() { d.buf = d.storage.asBytes()[:0] keccakF1600(&d.a) case spongeSqueezing: - // If we're squeezing, we need to apply the permutatin before + // If we're squeezing, we need to apply the permutation before // copying more output. keccakF1600(&d.a) d.buf = d.storage.asBytes()[:d.rate] diff --git a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go b/vendor/golang.org/x/crypto/sha3/sha3_s390x.go index 4fcfc924ef..63a3edb4ce 100644 --- a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go +++ b/vendor/golang.org/x/crypto/sha3/sha3_s390x.go @@ -34,11 +34,13 @@ const ( // kimd is a wrapper for the 'compute intermediate message digest' instruction. // src must be a multiple of the rate for the given function code. +// //go:noescape func kimd(function code, chain *[200]byte, src []byte) // klmd is a wrapper for the 'compute last message digest' instruction. // src padding is handled by the instruction. +// //go:noescape func klmd(function code, chain *[200]byte, dst, src []byte) diff --git a/vendor/golang.org/x/net/bpf/vm_instructions.go b/vendor/golang.org/x/net/bpf/vm_instructions.go index cf8947c332..0aa307c061 100644 --- a/vendor/golang.org/x/net/bpf/vm_instructions.go +++ b/vendor/golang.org/x/net/bpf/vm_instructions.go @@ -94,7 +94,7 @@ func jumpIfCommon(cond JumpTest, skipTrue, skipFalse uint8, regA uint32, value u func loadAbsolute(ins LoadAbsolute, in []byte) (uint32, bool) { offset := int(ins.Off) - size := int(ins.Size) + size := ins.Size return loadCommon(in, offset, size) } @@ -121,7 +121,7 @@ func loadExtension(ins LoadExtension, in []byte) uint32 { func loadIndirect(ins LoadIndirect, in []byte, regX uint32) (uint32, bool) { offset := int(ins.Off) + int(regX) - size := int(ins.Size) + size := ins.Size return loadCommon(in, offset, size) } diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go index 0a54bdbcc6..2cb9c408f2 100644 --- a/vendor/golang.org/x/net/context/go17.go +++ b/vendor/golang.org/x/net/context/go17.go @@ -32,7 +32,7 @@ var DeadlineExceeded = context.DeadlineExceeded // call cancel as soon as the operations running in this Context complete. func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { ctx, f := context.WithCancel(parent) - return ctx, CancelFunc(f) + return ctx, f } // WithDeadline returns a copy of the parent context with the deadline adjusted @@ -46,7 +46,7 @@ func WithCancel(parent Context) (ctx Context, cancel CancelFunc) { // call cancel as soon as the operations running in this Context complete. func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { ctx, f := context.WithDeadline(parent, deadline) - return ctx, CancelFunc(f) + return ctx, f } // WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)). diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go index 0bfcf7afc6..41883c530c 100644 --- a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go +++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go @@ -172,7 +172,23 @@ type mmsgTmpsPool struct { } func (p *mmsgTmpsPool) Get() *mmsgTmps { - return p.p.Get().(*mmsgTmps) + m := p.p.Get().(*mmsgTmps) + // Clear fields up to the len (not the cap) of the slice, + // assuming that the previous caller only used that many elements. + for i := range m.packer.sockaddrs { + m.packer.sockaddrs[i] = 0 + } + m.packer.sockaddrs = m.packer.sockaddrs[:0] + for i := range m.packer.vs { + m.packer.vs[i] = iovec{} + } + m.packer.vs = m.packer.vs[:0] + for i := range m.packer.hs { + m.packer.hs[i].Len = 0 + m.packer.hs[i].Hdr = msghdr{} + } + m.packer.hs = m.packer.hs[:0] + return m } func (p *mmsgTmpsPool) Put(tmps *mmsgTmps) { diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux.go index c3c7cc4c83..5a38798cc0 100644 --- a/vendor/golang.org/x/net/internal/socket/msghdr_linux.go +++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux.go @@ -17,9 +17,6 @@ func (h *msghdr) pack(vs []iovec, bs [][]byte, oob []byte, sa []byte) { if sa != nil { h.Name = (*byte)(unsafe.Pointer(&sa[0])) h.Namelen = uint32(len(sa)) - } else { - h.Name = nil - h.Namelen = 0 } } diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go index ba53f564bb..f7d0b0d2b8 100644 --- a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go +++ b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go @@ -8,22 +8,21 @@ package socket import ( + "net" "os" ) func (c *Conn) recvMsg(m *Message, flags int) error { m.raceWrite() - var h msghdr - vs := make([]iovec, len(m.Buffers)) - var sa []byte - if c.network != "tcp" { - sa = make([]byte, sizeofSockaddrInet6) - } - h.pack(vs, m.Buffers, m.OOB, sa) - var operr error - var n int + var ( + operr error + n int + oobn int + recvflags int + from net.Addr + ) fn := func(s uintptr) bool { - n, operr = recvmsg(s, &h, flags) + n, oobn, recvflags, from, operr = recvmsg(s, m.Buffers, m.OOB, flags, c.network) return ioComplete(flags, operr) } if err := c.c.Read(fn); err != nil { @@ -32,34 +31,21 @@ func (c *Conn) recvMsg(m *Message, flags int) error { if operr != nil { return os.NewSyscallError("recvmsg", operr) } - if c.network != "tcp" { - var err error - m.Addr, err = parseInetAddr(sa[:], c.network) - if err != nil { - return err - } - } + m.Addr = from m.N = n - m.NN = h.controllen() - m.Flags = h.flags() + m.NN = oobn + m.Flags = recvflags return nil } func (c *Conn) sendMsg(m *Message, flags int) error { m.raceRead() - var h msghdr - vs := make([]iovec, len(m.Buffers)) - var sa []byte - if m.Addr != nil { - var a [sizeofSockaddrInet6]byte - n := marshalInetAddr(m.Addr, a[:]) - sa = a[:n] - } - h.pack(vs, m.Buffers, m.OOB, sa) - var operr error - var n int + var ( + operr error + n int + ) fn := func(s uintptr) bool { - n, operr = sendmsg(s, &h, flags) + n, operr = sendmsg(s, m.Buffers, m.OOB, m.Addr, flags) return ioComplete(flags, operr) } if err := c.c.Write(fn); err != nil { diff --git a/vendor/golang.org/x/net/internal/socket/sys_stub.go b/vendor/golang.org/x/net/internal/socket/sys_stub.go index 381e45e167..7cfb349c0c 100644 --- a/vendor/golang.org/x/net/internal/socket/sys_stub.go +++ b/vendor/golang.org/x/net/internal/socket/sys_stub.go @@ -36,11 +36,11 @@ func setsockopt(s uintptr, level, name int, b []byte) error { return errNotImplemented } -func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - return 0, errNotImplemented +func recvmsg(s uintptr, buffers [][]byte, oob []byte, flags int, network string) (n, oobn int, recvflags int, from net.Addr, err error) { + return 0, 0, 0, nil, errNotImplemented } -func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { +func sendmsg(s uintptr, buffers [][]byte, oob []byte, to net.Addr, flags int) (int, error) { return 0, errNotImplemented } diff --git a/vendor/golang.org/x/net/internal/socket/sys_unix.go b/vendor/golang.org/x/net/internal/socket/sys_unix.go index d203e2984c..de823932b9 100644 --- a/vendor/golang.org/x/net/internal/socket/sys_unix.go +++ b/vendor/golang.org/x/net/internal/socket/sys_unix.go @@ -8,8 +8,10 @@ package socket import ( - "syscall" + "net" "unsafe" + + "golang.org/x/sys/unix" ) //go:linkname syscall_getsockopt syscall.getsockopt @@ -18,12 +20,6 @@ func syscall_getsockopt(s, level, name int, val unsafe.Pointer, vallen *uint32) //go:linkname syscall_setsockopt syscall.setsockopt func syscall_setsockopt(s, level, name int, val unsafe.Pointer, vallen uintptr) error -//go:linkname syscall_recvmsg syscall.recvmsg -func syscall_recvmsg(s int, msg *syscall.Msghdr, flags int) (int, error) - -//go:linkname syscall_sendmsg syscall.sendmsg -func syscall_sendmsg(s int, msg *syscall.Msghdr, flags int) (int, error) - func getsockopt(s uintptr, level, name int, b []byte) (int, error) { l := uint32(len(b)) err := syscall_getsockopt(int(s), level, name, unsafe.Pointer(&b[0]), &l) @@ -34,10 +30,93 @@ func setsockopt(s uintptr, level, name int, b []byte) error { return syscall_setsockopt(int(s), level, name, unsafe.Pointer(&b[0]), uintptr(len(b))) } -func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - return syscall_recvmsg(int(s), (*syscall.Msghdr)(unsafe.Pointer(h)), flags) +func recvmsg(s uintptr, buffers [][]byte, oob []byte, flags int, network string) (n, oobn int, recvflags int, from net.Addr, err error) { + var unixFrom unix.Sockaddr + n, oobn, recvflags, unixFrom, err = unix.RecvmsgBuffers(int(s), buffers, oob, flags) + if unixFrom != nil { + from = sockaddrToAddr(unixFrom, network) + } + return } -func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { - return syscall_sendmsg(int(s), (*syscall.Msghdr)(unsafe.Pointer(h)), flags) +func sendmsg(s uintptr, buffers [][]byte, oob []byte, to net.Addr, flags int) (int, error) { + var unixTo unix.Sockaddr + if to != nil { + unixTo = addrToSockaddr(to) + } + return unix.SendmsgBuffers(int(s), buffers, oob, unixTo, flags) +} + +// addrToSockaddr converts a net.Addr to a unix.Sockaddr. +func addrToSockaddr(a net.Addr) unix.Sockaddr { + var ( + ip net.IP + port int + zone string + ) + switch a := a.(type) { + case *net.TCPAddr: + ip = a.IP + port = a.Port + zone = a.Zone + case *net.UDPAddr: + ip = a.IP + port = a.Port + zone = a.Zone + case *net.IPAddr: + ip = a.IP + zone = a.Zone + default: + return nil + } + + if ip4 := ip.To4(); ip4 != nil { + sa := unix.SockaddrInet4{Port: port} + copy(sa.Addr[:], ip4) + return &sa + } + + if ip6 := ip.To16(); ip6 != nil && ip.To4() == nil { + sa := unix.SockaddrInet6{Port: port} + copy(sa.Addr[:], ip6) + if zone != "" { + sa.ZoneId = uint32(zoneCache.index(zone)) + } + return &sa + } + + return nil +} + +// sockaddrToAddr converts a unix.Sockaddr to a net.Addr. +func sockaddrToAddr(sa unix.Sockaddr, network string) net.Addr { + var ( + ip net.IP + port int + zone string + ) + switch sa := sa.(type) { + case *unix.SockaddrInet4: + ip = make(net.IP, net.IPv4len) + copy(ip, sa.Addr[:]) + port = sa.Port + case *unix.SockaddrInet6: + ip = make(net.IP, net.IPv6len) + copy(ip, sa.Addr[:]) + port = sa.Port + if sa.ZoneId > 0 { + zone = zoneCache.name(int(sa.ZoneId)) + } + default: + return nil + } + + switch network { + case "tcp", "tcp4", "tcp6": + return &net.TCPAddr{IP: ip, Port: port, Zone: zone} + case "udp", "udp4", "udp6": + return &net.UDPAddr{IP: ip, Port: port, Zone: zone} + default: + return &net.IPAddr{IP: ip, Zone: zone} + } } diff --git a/vendor/golang.org/x/net/internal/socket/sys_windows.go b/vendor/golang.org/x/net/internal/socket/sys_windows.go index 2de0d68c61..b738b89ddd 100644 --- a/vendor/golang.org/x/net/internal/socket/sys_windows.go +++ b/vendor/golang.org/x/net/internal/socket/sys_windows.go @@ -5,6 +5,7 @@ package socket import ( + "net" "syscall" "unsafe" @@ -37,11 +38,11 @@ func setsockopt(s uintptr, level, name int, b []byte) error { return syscall.Setsockopt(syscall.Handle(s), int32(level), int32(name), (*byte)(unsafe.Pointer(&b[0])), int32(len(b))) } -func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - return 0, errNotImplemented +func recvmsg(s uintptr, buffers [][]byte, oob []byte, flags int, network string) (n, oobn int, recvflags int, from net.Addr, err error) { + return 0, 0, 0, nil, errNotImplemented } -func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { +func sendmsg(s uintptr, buffers [][]byte, oob []byte, to net.Addr, flags int) (int, error) { return 0, errNotImplemented } diff --git a/vendor/golang.org/x/net/internal/socket/sys_zos_s390x.go b/vendor/golang.org/x/net/internal/socket/sys_zos_s390x.go index 1e38b92232..eaa896cb57 100644 --- a/vendor/golang.org/x/net/internal/socket/sys_zos_s390x.go +++ b/vendor/golang.org/x/net/internal/socket/sys_zos_s390x.go @@ -5,6 +5,7 @@ package socket import ( + "net" "syscall" "unsafe" ) @@ -27,12 +28,39 @@ func setsockopt(s uintptr, level, name int, b []byte) error { return errnoErr(errno) } -func recvmsg(s uintptr, h *msghdr, flags int) (int, error) { - n, _, errno := syscall_syscall(syscall.SYS___RECVMSG_A, s, uintptr(unsafe.Pointer(h)), uintptr(flags)) - return int(n), errnoErr(errno) +func recvmsg(s uintptr, buffers [][]byte, oob []byte, flags int, network string) (n, oobn int, recvflags int, from net.Addr, err error) { + var h msghdr + vs := make([]iovec, len(buffers)) + var sa []byte + if network != "tcp" { + sa = make([]byte, sizeofSockaddrInet6) + } + h.pack(vs, buffers, oob, sa) + sn, _, errno := syscall_syscall(syscall.SYS___RECVMSG_A, s, uintptr(unsafe.Pointer(&h)), uintptr(flags)) + n = int(sn) + oobn = h.controllen() + recvflags = h.flags() + err = errnoErr(errno) + if network != "tcp" { + var err2 error + from, err2 = parseInetAddr(sa, network) + if err2 != nil && err == nil { + err = err2 + } + } + return } -func sendmsg(s uintptr, h *msghdr, flags int) (int, error) { - n, _, errno := syscall_syscall(syscall.SYS___SENDMSG_A, s, uintptr(unsafe.Pointer(h)), uintptr(flags)) +func sendmsg(s uintptr, buffers [][]byte, oob []byte, to net.Addr, flags int) (int, error) { + var h msghdr + vs := make([]iovec, len(buffers)) + var sa []byte + if to != nil { + var a [sizeofSockaddrInet6]byte + n := marshalInetAddr(to, a[:]) + sa = a[:n] + } + h.pack(vs, buffers, oob, sa) + n, _, errno := syscall_syscall(syscall.SYS___SENDMSG_A, s, uintptr(unsafe.Pointer(&h)), uintptr(flags)) return int(n), errnoErr(errno) } diff --git a/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go b/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go deleted file mode 100644 index 5acf6db6ea..0000000000 --- a/vendor/golang.org/x/net/internal/socket/zsys_darwin_arm.go +++ /dev/null @@ -1,30 +0,0 @@ -// Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs defs_darwin.go - -package socket - -type iovec struct { - Base *byte - Len uint32 -} - -type msghdr struct { - Name *byte - Namelen uint32 - Iov *iovec - Iovlen int32 - Control *byte - Controllen uint32 - Flags int32 -} - -type cmsghdr struct { - Len uint32 - Level int32 - Type int32 -} - -const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c -) diff --git a/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_riscv64.go similarity index 79% rename from vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go rename to vendor/golang.org/x/net/internal/socket/zsys_freebsd_riscv64.go index 5acf6db6ea..965c0b28b5 100644 --- a/vendor/golang.org/x/net/internal/socket/zsys_darwin_386.go +++ b/vendor/golang.org/x/net/internal/socket/zsys_freebsd_riscv64.go @@ -1,11 +1,11 @@ // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs defs_darwin.go +// cgo -godefs defs_freebsd.go package socket type iovec struct { Base *byte - Len uint32 + Len uint64 } type msghdr struct { @@ -25,6 +25,6 @@ type cmsghdr struct { } const ( - sizeofIovec = 0x8 - sizeofMsghdr = 0x1c + sizeofIovec = 0x10 + sizeofMsghdr = 0x30 ) diff --git a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_ppc64.go new file mode 100644 index 0000000000..cebde7634f --- /dev/null +++ b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_ppc64.go @@ -0,0 +1,30 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_openbsd.go + +package socket + +type iovec struct { + Base *byte + Len uint64 +} + +type msghdr struct { + Name *byte + Namelen uint32 + Iov *iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +const ( + sizeofIovec = 0x10 + sizeofMsghdr = 0x30 +) diff --git a/vendor/golang.org/x/net/internal/socket/zsys_openbsd_riscv64.go b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_riscv64.go new file mode 100644 index 0000000000..cebde7634f --- /dev/null +++ b/vendor/golang.org/x/net/internal/socket/zsys_openbsd_riscv64.go @@ -0,0 +1,30 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_openbsd.go + +package socket + +type iovec struct { + Base *byte + Len uint64 +} + +type msghdr struct { + Name *byte + Namelen uint32 + Iov *iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +const ( + sizeofIovec = 0x10 + sizeofMsghdr = 0x30 +) diff --git a/vendor/golang.org/x/net/ipv4/zsys_freebsd_riscv64.go b/vendor/golang.org/x/net/ipv4/zsys_freebsd_riscv64.go new file mode 100644 index 0000000000..0feb9a7536 --- /dev/null +++ b/vendor/golang.org/x/net/ipv4/zsys_freebsd_riscv64.go @@ -0,0 +1,52 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_freebsd.go + +package ipv4 + +const ( + sizeofSockaddrStorage = 0x80 + sizeofSockaddrInet = 0x10 + + sizeofIPMreq = 0x8 + sizeofIPMreqSource = 0xc + sizeofGroupReq = 0x88 + sizeofGroupSourceReq = 0x108 +) + +type sockaddrStorage struct { + Len uint8 + Family uint8 + X__ss_pad1 [6]uint8 + X__ss_align int64 + X__ss_pad2 [112]uint8 +} + +type sockaddrInet struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type ipMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type ipMreqSource struct { + Multiaddr [4]byte /* in_addr */ + Sourceaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type groupReq struct { + Interface uint32 + Group sockaddrStorage +} + +type groupSourceReq struct { + Interface uint32 + Group sockaddrStorage + Source sockaddrStorage +} diff --git a/vendor/golang.org/x/net/ipv6/dgramopt.go b/vendor/golang.org/x/net/ipv6/dgramopt.go index 1f422e71dc..846f0e1f9c 100644 --- a/vendor/golang.org/x/net/ipv6/dgramopt.go +++ b/vendor/golang.org/x/net/ipv6/dgramopt.go @@ -245,7 +245,7 @@ func (c *dgramOpt) Checksum() (on bool, offset int, err error) { return true, offset, nil } -// SetChecksum enables the kernel checksum processing. If on is ture, +// SetChecksum enables the kernel checksum processing. If on is true, // the offset should be an offset in bytes into the data of where the // checksum field is located. func (c *dgramOpt) SetChecksum(on bool, offset int) error { diff --git a/vendor/golang.org/x/net/ipv6/zsys_freebsd_riscv64.go b/vendor/golang.org/x/net/ipv6/zsys_freebsd_riscv64.go new file mode 100644 index 0000000000..5b39eb8dfd --- /dev/null +++ b/vendor/golang.org/x/net/ipv6/zsys_freebsd_riscv64.go @@ -0,0 +1,64 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_freebsd.go + +package ipv6 + +const ( + sizeofSockaddrStorage = 0x80 + sizeofSockaddrInet6 = 0x1c + sizeofInet6Pktinfo = 0x14 + sizeofIPv6Mtuinfo = 0x20 + + sizeofIPv6Mreq = 0x14 + sizeofGroupReq = 0x88 + sizeofGroupSourceReq = 0x108 + + sizeofICMPv6Filter = 0x20 +) + +type sockaddrStorage struct { + Len uint8 + Family uint8 + X__ss_pad1 [6]uint8 + X__ss_align int64 + X__ss_pad2 [112]uint8 +} + +type sockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type ipv6Mtuinfo struct { + Addr sockaddrInet6 + Mtu uint32 +} + +type ipv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type groupReq struct { + Interface uint32 + Group sockaddrStorage +} + +type groupSourceReq struct { + Interface uint32 + Group sockaddrStorage + Source sockaddrStorage +} + +type icmpv6Filter struct { + Filt [8]uint32 +} diff --git a/vendor/golang.org/x/net/nettest/nettest.go b/vendor/golang.org/x/net/nettest/nettest.go index ae5413b23d..510555ac28 100644 --- a/vendor/golang.org/x/net/nettest/nettest.go +++ b/vendor/golang.org/x/net/nettest/nettest.go @@ -20,11 +20,13 @@ import ( ) var ( - stackOnce sync.Once - ipv4Enabled bool - ipv6Enabled bool - unStrmDgramEnabled bool - rawSocketSess bool + stackOnce sync.Once + ipv4Enabled bool + canListenTCP4OnLoopback bool + ipv6Enabled bool + canListenTCP6OnLoopback bool + unStrmDgramEnabled bool + rawSocketSess bool aLongTimeAgo = time.Unix(233431200, 0) neverTimeout = time.Time{} @@ -34,13 +36,19 @@ var ( ) func probeStack() { + if _, err := RoutedInterface("ip4", net.FlagUp); err == nil { + ipv4Enabled = true + } if ln, err := net.Listen("tcp4", "127.0.0.1:0"); err == nil { ln.Close() - ipv4Enabled = true + canListenTCP4OnLoopback = true + } + if _, err := RoutedInterface("ip6", net.FlagUp); err == nil { + ipv6Enabled = true } if ln, err := net.Listen("tcp6", "[::1]:0"); err == nil { ln.Close() - ipv6Enabled = true + canListenTCP6OnLoopback = true } rawSocketSess = supportsRawSocket() switch runtime.GOOS { @@ -154,22 +162,23 @@ func TestableAddress(network, address string) bool { // The provided network must be "tcp", "tcp4", "tcp6", "unix" or // "unixpacket". func NewLocalListener(network string) (net.Listener, error) { + stackOnce.Do(probeStack) switch network { case "tcp": - if SupportsIPv4() { + if canListenTCP4OnLoopback { if ln, err := net.Listen("tcp4", "127.0.0.1:0"); err == nil { return ln, nil } } - if SupportsIPv6() { + if canListenTCP6OnLoopback { return net.Listen("tcp6", "[::1]:0") } case "tcp4": - if SupportsIPv4() { + if canListenTCP4OnLoopback { return net.Listen("tcp4", "127.0.0.1:0") } case "tcp6": - if SupportsIPv6() { + if canListenTCP6OnLoopback { return net.Listen("tcp6", "[::1]:0") } case "unix", "unixpacket": @@ -187,22 +196,23 @@ func NewLocalListener(network string) (net.Listener, error) { // // The provided network must be "udp", "udp4", "udp6" or "unixgram". func NewLocalPacketListener(network string) (net.PacketConn, error) { + stackOnce.Do(probeStack) switch network { case "udp": - if SupportsIPv4() { + if canListenTCP4OnLoopback { if c, err := net.ListenPacket("udp4", "127.0.0.1:0"); err == nil { return c, nil } } - if SupportsIPv6() { + if canListenTCP6OnLoopback { return net.ListenPacket("udp6", "[::1]:0") } case "udp4": - if SupportsIPv4() { + if canListenTCP4OnLoopback { return net.ListenPacket("udp4", "127.0.0.1:0") } case "udp6": - if SupportsIPv6() { + if canListenTCP6OnLoopback { return net.ListenPacket("udp6", "[::1]:0") } case "unixgram": @@ -218,7 +228,11 @@ func NewLocalPacketListener(network string) (net.PacketConn, error) { // LocalPath returns a local path that can be used for Unix-domain // protocol testing. func LocalPath() (string, error) { - f, err := ioutil.TempFile("", "go-nettest") + dir := "" + if runtime.GOOS == "darwin" { + dir = "/tmp" + } + f, err := ioutil.TempFile(dir, "go-nettest") if err != nil { return "", err } diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_arm64.go index 87dd5e3021..f3eb993bf2 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.go @@ -6,7 +6,10 @@ package cpu import "runtime" -const cacheLineSize = 64 +// cacheLineSize is used to prevent false sharing of cache lines. +// We choose 128 because Apple Silicon, a.k.a. M1, has 128-byte cache line size. +// It doesn't cost much and is much more future-proof. +const cacheLineSize = 128 func initOptions() { options = []option{ @@ -41,13 +44,10 @@ func archInit() { switch runtime.GOOS { case "freebsd": readARM64Registers() - case "linux", "netbsd": + case "linux", "netbsd", "openbsd": doinit() default: - // Most platforms don't seem to allow reading these registers. - // - // OpenBSD: - // See https://golang.org/issue/31746 + // Many platforms don't seem to allow reading these registers. setMinimalFeatures() } } diff --git a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c b/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c index a4605e6d12..6cc73109f5 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c +++ b/vendor/golang.org/x/sys/cpu/cpu_gccgo_x86.c @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build (386 || amd64 || amd64p32) && gccgo // +build 386 amd64 amd64p32 // +build gccgo diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go index 79a38a0b9b..a968b80fa6 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_arm64.go @@ -4,6 +4,11 @@ package cpu +import ( + "strings" + "syscall" +) + // HWCAP/HWCAP2 bits. These are exposed by Linux. const ( hwcap_FP = 1 << 0 @@ -32,10 +37,45 @@ const ( hwcap_ASIMDFHM = 1 << 23 ) +// linuxKernelCanEmulateCPUID reports whether we're running +// on Linux 4.11+. Ideally we'd like to ask the question about +// whether the current kernel contains +// https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=77c97b4ee21290f5f083173d957843b615abbff2 +// but the version number will have to do. +func linuxKernelCanEmulateCPUID() bool { + var un syscall.Utsname + syscall.Uname(&un) + var sb strings.Builder + for _, b := range un.Release[:] { + if b == 0 { + break + } + sb.WriteByte(byte(b)) + } + major, minor, _, ok := parseRelease(sb.String()) + return ok && (major > 4 || major == 4 && minor >= 11) +} + func doinit() { if err := readHWCAP(); err != nil { - // failed to read /proc/self/auxv, try reading registers directly - readARM64Registers() + // We failed to read /proc/self/auxv. This can happen if the binary has + // been given extra capabilities(7) with /bin/setcap. + // + // When this happens, we have two options. If the Linux kernel is new + // enough (4.11+), we can read the arm64 registers directly which'll + // trap into the kernel and then return back to userspace. + // + // But on older kernels, such as Linux 4.4.180 as used on many Synology + // devices, calling readARM64Registers (specifically getisar0) will + // cause a SIGILL and we'll die. So for older kernels, parse /proc/cpuinfo + // instead. + // + // See golang/go#57336. + if linuxKernelCanEmulateCPUID() { + readARM64Registers() + } else { + readLinuxProcCPUInfo() + } return } diff --git a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go new file mode 100644 index 0000000000..85b64d5ccb --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go @@ -0,0 +1,65 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cpu + +import ( + "syscall" + "unsafe" +) + +// Minimal copy of functionality from x/sys/unix so the cpu package can call +// sysctl without depending on x/sys/unix. + +const ( + // From OpenBSD's sys/sysctl.h. + _CTL_MACHDEP = 7 + + // From OpenBSD's machine/cpu.h. + _CPU_ID_AA64ISAR0 = 2 + _CPU_ID_AA64ISAR1 = 3 +) + +// Implemented in the runtime package (runtime/sys_openbsd3.go) +func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) + +//go:linkname syscall_syscall6 syscall.syscall6 + +func sysctl(mib []uint32, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + _, _, errno := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(unsafe.Pointer(&mib[0])), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if errno != 0 { + return errno + } + return nil +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +func sysctlUint64(mib []uint32) (uint64, bool) { + var out uint64 + nout := unsafe.Sizeof(out) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&out)), &nout, nil, 0); err != nil { + return 0, false + } + return out, true +} + +func doinit() { + setMinimalFeatures() + + // Get ID_AA64ISAR0 and ID_AA64ISAR1 from sysctl. + isar0, ok := sysctlUint64([]uint32{_CTL_MACHDEP, _CPU_ID_AA64ISAR0}) + if !ok { + return + } + isar1, ok := sysctlUint64([]uint32{_CTL_MACHDEP, _CPU_ID_AA64ISAR1}) + if !ok { + return + } + parseARM64SystemRegisters(isar0, isar1, 0) + + Initialized = true +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s new file mode 100644 index 0000000000..054ba05d60 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.s @@ -0,0 +1,11 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "textflag.h" + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) + +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go index f8c484f589..f3cde129b6 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !linux && !netbsd && arm64 -// +build !linux,!netbsd,arm64 +//go:build !linux && !netbsd && !openbsd && arm64 +// +build !linux,!netbsd,!openbsd,arm64 package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go new file mode 100644 index 0000000000..060d46b6ea --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_other_ppc64x.go @@ -0,0 +1,15 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !aix && !linux && (ppc64 || ppc64le) +// +build !aix +// +build !linux +// +build ppc64 ppc64le + +package cpu + +func archInit() { + PPC64.IsPOWER8 = true + Initialized = true +} diff --git a/vendor/golang.org/x/sys/cpu/endian_big.go b/vendor/golang.org/x/sys/cpu/endian_big.go new file mode 100644 index 0000000000..93ce03a346 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/endian_big.go @@ -0,0 +1,11 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 +// +build armbe arm64be m68k mips mips64 mips64p32 ppc ppc64 s390 s390x shbe sparc sparc64 + +package cpu + +// IsBigEndian records whether the GOARCH's byte order is big endian. +const IsBigEndian = true diff --git a/vendor/golang.org/x/sys/cpu/endian_little.go b/vendor/golang.org/x/sys/cpu/endian_little.go new file mode 100644 index 0000000000..fe545966b6 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/endian_little.go @@ -0,0 +1,11 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh +// +build 386 amd64 amd64p32 alpha arm arm64 loong64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh + +package cpu + +// IsBigEndian records whether the GOARCH's byte order is big endian. +const IsBigEndian = false diff --git a/vendor/golang.org/x/sys/cpu/parse.go b/vendor/golang.org/x/sys/cpu/parse.go new file mode 100644 index 0000000000..762b63d688 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/parse.go @@ -0,0 +1,43 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cpu + +import "strconv" + +// parseRelease parses a dot-separated version number. It follows the semver +// syntax, but allows the minor and patch versions to be elided. +// +// This is a copy of the Go runtime's parseRelease from +// https://golang.org/cl/209597. +func parseRelease(rel string) (major, minor, patch int, ok bool) { + // Strip anything after a dash or plus. + for i := 0; i < len(rel); i++ { + if rel[i] == '-' || rel[i] == '+' { + rel = rel[:i] + break + } + } + + next := func() (int, bool) { + for i := 0; i < len(rel); i++ { + if rel[i] == '.' { + ver, err := strconv.Atoi(rel[:i]) + rel = rel[i+1:] + return ver, err == nil + } + } + ver, err := strconv.Atoi(rel) + rel = "" + return ver, err == nil + } + if major, ok = next(); !ok || rel == "" { + return + } + if minor, ok = next(); !ok || rel == "" { + return + } + patch, ok = next() + return +} diff --git a/vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go b/vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go new file mode 100644 index 0000000000..d87bd6b3eb --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/proc_cpuinfo_linux.go @@ -0,0 +1,54 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && arm64 +// +build linux,arm64 + +package cpu + +import ( + "errors" + "io" + "os" + "strings" +) + +func readLinuxProcCPUInfo() error { + f, err := os.Open("/proc/cpuinfo") + if err != nil { + return err + } + defer f.Close() + + var buf [1 << 10]byte // enough for first CPU + n, err := io.ReadFull(f, buf[:]) + if err != nil && err != io.ErrUnexpectedEOF { + return err + } + in := string(buf[:n]) + const features = "\nFeatures : " + i := strings.Index(in, features) + if i == -1 { + return errors.New("no CPU features found") + } + in = in[i+len(features):] + if i := strings.Index(in, "\n"); i != -1 { + in = in[:i] + } + m := map[string]*bool{} + + initOptions() // need it early here; it's harmless to call twice + for _, o := range options { + m[o.Name] = o.Feature + } + // The EVTSTRM field has alias "evstrm" in Go, but Linux calls it "evtstrm". + m["evtstrm"] = &ARM64.HasEVTSTRM + + for _, f := range strings.Fields(in) { + if p, ok := m[f]; ok { + *p = true + } + } + return nil +} diff --git a/vendor/golang.org/x/sys/execabs/execabs_go119.go b/vendor/golang.org/x/sys/execabs/execabs_go119.go index 1e7a9ada0b..46c5b525e7 100644 --- a/vendor/golang.org/x/sys/execabs/execabs_go119.go +++ b/vendor/golang.org/x/sys/execabs/execabs_go119.go @@ -7,9 +7,11 @@ package execabs -import "strings" +import ( + "errors" + "os/exec" +) func isGo119ErrDot(err error) bool { - // TODO: return errors.Is(err, exec.ErrDot) - return strings.Contains(err.Error(), "current directory") + return errors.Is(err, exec.ErrDot) } diff --git a/vendor/golang.org/x/sys/plan9/mkerrors.sh b/vendor/golang.org/x/sys/plan9/mkerrors.sh index 85309c4a5b..526d04ab68 100644 --- a/vendor/golang.org/x/sys/plan9/mkerrors.sh +++ b/vendor/golang.org/x/sys/plan9/mkerrors.sh @@ -126,7 +126,7 @@ errors=$( signals=$( echo '#include ' | $CC -x c - -E -dM $ccflags | awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | - egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT)' | + grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT' | sort ) @@ -136,7 +136,7 @@ echo '#include ' | $CC -x c - -E -dM $ccflags | sort >_error.grep echo '#include ' | $CC -x c - -E -dM $ccflags | awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | - egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT)' | + grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT' | sort >_signal.grep echo '// mkerrors.sh' "$@" diff --git a/vendor/golang.org/x/sys/plan9/syscall.go b/vendor/golang.org/x/sys/plan9/syscall.go index a25223b8fd..67e5b0115c 100644 --- a/vendor/golang.org/x/sys/plan9/syscall.go +++ b/vendor/golang.org/x/sys/plan9/syscall.go @@ -29,8 +29,6 @@ import ( "bytes" "strings" "unsafe" - - "golang.org/x/sys/internal/unsafeheader" ) // ByteSliceFromString returns a NUL-terminated slice of bytes @@ -82,13 +80,7 @@ func BytePtrToString(p *byte) string { ptr = unsafe.Pointer(uintptr(ptr) + 1) } - var s []byte - h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) - h.Data = unsafe.Pointer(p) - h.Len = n - h.Cap = n - - return string(s) + return string(unsafe.Slice(p, n)) } // Single-word zero for use when we need a valid pointer to 0 bytes. diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s b/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s new file mode 100644 index 0000000000..e5b9a84899 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s @@ -0,0 +1,31 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin || freebsd || netbsd || openbsd) && gc +// +build darwin freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// +// System call support for ppc64, BSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go index e74e5eaa3b..2499f977b0 100644 --- a/vendor/golang.org/x/sys/unix/dirent.go +++ b/vendor/golang.org/x/sys/unix/dirent.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos package unix diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go index 0dee23222c..b06f52d748 100644 --- a/vendor/golang.org/x/sys/unix/gccgo.go +++ b/vendor/golang.org/x/sys/unix/gccgo.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build gccgo && !aix -// +build gccgo,!aix +//go:build gccgo && !aix && !hurd +// +build gccgo,!aix,!hurd package unix diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c index 2cb1fefac6..f98a1c542f 100644 --- a/vendor/golang.org/x/sys/unix/gccgo_c.c +++ b/vendor/golang.org/x/sys/unix/gccgo_c.c @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build gccgo -// +build !aix +//go:build gccgo && !aix && !hurd +// +build gccgo,!aix,!hurd #include #include diff --git a/vendor/golang.org/x/sys/unix/ioctl.go b/vendor/golang.org/x/sys/unix/ioctl.go index 6c7ad052e6..1c51b0ec2b 100644 --- a/vendor/golang.org/x/sys/unix/ioctl.go +++ b/vendor/golang.org/x/sys/unix/ioctl.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build aix || darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd || solaris +// +build aix darwin dragonfly freebsd hurd linux netbsd openbsd solaris package unix diff --git a/vendor/golang.org/x/sys/unix/ioctl_linux.go b/vendor/golang.org/x/sys/unix/ioctl_linux.go index 884430b810..0d12c0851a 100644 --- a/vendor/golang.org/x/sys/unix/ioctl_linux.go +++ b/vendor/golang.org/x/sys/unix/ioctl_linux.go @@ -4,9 +4,7 @@ package unix -import ( - "unsafe" -) +import "unsafe" // IoctlRetInt performs an ioctl operation specified by req on a device // associated with opened file descriptor fd, and returns a non-negative @@ -217,3 +215,19 @@ func IoctlKCMAttach(fd int, info KCMAttach) error { func IoctlKCMUnattach(fd int, info KCMUnattach) error { return ioctlPtr(fd, SIOCKCMUNATTACH, unsafe.Pointer(&info)) } + +// IoctlLoopGetStatus64 gets the status of the loop device associated with the +// file descriptor fd using the LOOP_GET_STATUS64 operation. +func IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) { + var value LoopInfo64 + if err := ioctlPtr(fd, LOOP_GET_STATUS64, unsafe.Pointer(&value)); err != nil { + return nil, err + } + return &value, nil +} + +// IoctlLoopSetStatus64 sets the status of the loop device associated with the +// file descriptor fd using the LOOP_SET_STATUS64 operation. +func IoctlLoopSetStatus64(fd int, value *LoopInfo64) error { + return ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value)) +} diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index dcef4de6f1..8e3947c368 100644 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -73,12 +73,12 @@ aix_ppc64) darwin_amd64) mkerrors="$mkerrors -m64" mktypes="GOARCH=$GOARCH go tool cgo -godefs" - mkasm="go run mkasm_darwin.go" + mkasm="go run mkasm.go" ;; darwin_arm64) mkerrors="$mkerrors -m64" mktypes="GOARCH=$GOARCH go tool cgo -godefs" - mkasm="go run mkasm_darwin.go" + mkasm="go run mkasm.go" ;; dragonfly_amd64) mkerrors="$mkerrors -m64" @@ -142,42 +142,60 @@ netbsd_arm64) mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; openbsd_386) + mkasm="go run mkasm.go" mkerrors="$mkerrors -m32" - mksyscall="go run mksyscall.go -l32 -openbsd" + mksyscall="go run mksyscall.go -l32 -openbsd -libc" mksysctl="go run mksysctl_openbsd.go" - mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; openbsd_amd64) + mkasm="go run mkasm.go" mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd" + mksyscall="go run mksyscall.go -openbsd -libc" mksysctl="go run mksysctl_openbsd.go" - mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; openbsd_arm) + mkasm="go run mkasm.go" mkerrors="$mkerrors" - mksyscall="go run mksyscall.go -l32 -openbsd -arm" + mksyscall="go run mksyscall.go -l32 -openbsd -arm -libc" mksysctl="go run mksysctl_openbsd.go" - mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; openbsd_arm64) + mkasm="go run mkasm.go" mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd" + mksyscall="go run mksyscall.go -openbsd -libc" mksysctl="go run mksysctl_openbsd.go" - mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; openbsd_mips64) + mkasm="go run mkasm.go" mkerrors="$mkerrors -m64" - mksyscall="go run mksyscall.go -openbsd" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +openbsd_ppc64) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +openbsd_riscv64) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" mksysctl="go run mksysctl_openbsd.go" - mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" @@ -214,11 +232,6 @@ esac if [ "$GOOSARCH" == "aix_ppc64" ]; then # aix/ppc64 script generates files instead of writing to stdin. echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ; - elif [ "$GOOS" == "darwin" ]; then - # 1.12 and later, syscalls via libSystem - echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; - # 1.13 and later, syscalls via libSystem (including syscallPtr) - echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go"; elif [ "$GOOS" == "illumos" ]; then # illumos code generation requires a --illumos switch echo "$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go"; @@ -232,5 +245,5 @@ esac if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; fi - if [ -n "$mkasm" ]; then echo "$mkasm $GOARCH"; fi + if [ -n "$mkasm" ]; then echo "$mkasm $GOOS $GOARCH"; fi ) | $run diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index 2ab44aa659..7456d9ddde 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -642,7 +642,7 @@ errors=$( signals=$( echo '#include ' | $CC -x c - -E -dM $ccflags | awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | - egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | + grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' | sort ) @@ -652,7 +652,7 @@ echo '#include ' | $CC -x c - -E -dM $ccflags | sort >_error.grep echo '#include ' | $CC -x c - -E -dM $ccflags | awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | - egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' | + grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' | sort >_signal.grep echo '// mkerrors.sh' "$@" diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go index 453a942c5d..3865943f6e 100644 --- a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go @@ -52,6 +52,20 @@ func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) { return msgs, nil } +// ParseOneSocketControlMessage parses a single socket control message from b, returning the message header, +// message data (a slice of b), and the remainder of b after that single message. +// When there are no remaining messages, len(remainder) == 0. +func ParseOneSocketControlMessage(b []byte) (hdr Cmsghdr, data []byte, remainder []byte, err error) { + h, dbuf, err := socketControlMessageHeaderAndData(b) + if err != nil { + return Cmsghdr{}, nil, nil, err + } + if i := cmsgAlignOf(int(h.Len)); i < len(b) { + remainder = b[i:] + } + return *h, dbuf, remainder, nil +} + func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) { h := (*Cmsghdr)(unsafe.Pointer(&b[0])) if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) { diff --git a/vendor/golang.org/x/sys/unix/str.go b/vendor/golang.org/x/sys/unix/str.go deleted file mode 100644 index 8ba89ed869..0000000000 --- a/vendor/golang.org/x/sys/unix/str.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - -package unix - -func itoa(val int) string { // do it here rather than with fmt to avoid dependency - if val < 0 { - return "-" + uitoa(uint(-val)) - } - return uitoa(uint(val)) -} - -func uitoa(val uint) string { - var buf [32]byte // big enough for int64 - i := len(buf) - 1 - for val >= 10 { - buf[i] = byte(val%10 + '0') - i-- - val /= 10 - } - buf[i] = byte(val + '0') - return string(buf[i:]) -} diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go index 649fa87405..63e8c83831 100644 --- a/vendor/golang.org/x/sys/unix/syscall.go +++ b/vendor/golang.org/x/sys/unix/syscall.go @@ -29,8 +29,6 @@ import ( "bytes" "strings" "unsafe" - - "golang.org/x/sys/internal/unsafeheader" ) // ByteSliceFromString returns a NUL-terminated slice of bytes @@ -82,13 +80,7 @@ func BytePtrToString(p *byte) string { ptr = unsafe.Pointer(uintptr(ptr) + 1) } - var s []byte - h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) - h.Data = unsafe.Pointer(p) - h.Len = n - h.Cap = n - - return string(s) + return string(unsafe.Slice(p, n)) } // Single-word zero for use when we need a valid pointer to 0 bytes. diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go index ac579c60fe..2db1b51e99 100644 --- a/vendor/golang.org/x/sys/unix/syscall_aix.go +++ b/vendor/golang.org/x/sys/unix/syscall_aix.go @@ -218,13 +218,62 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) { } func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { - // Recvmsg not implemented on AIX - return -1, -1, -1, ENOSYS + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if emptyIovecs(iov) { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = recvmsg(fd, &msg, flags); n == -1 { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + return } func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { - // SendmsgN not implemented on AIX - return -1, ENOSYS + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = uint32(salen) + var dummy byte + var empty bool + if len(oob) > 0 { + // send at least one normal byte + empty = emptyIovecs(iov) + if empty { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && empty { + n = 0 + } + return n, nil } func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go index c437fc5d7b..eda42671f1 100644 --- a/vendor/golang.org/x/sys/unix/syscall_bsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go @@ -363,7 +363,7 @@ func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Sockle var empty bool if len(oob) > 0 { // send at least one normal byte - empty := emptyIovecs(iov) + empty = emptyIovecs(iov) if empty { var iova [1]Iovec iova[0].Base = &dummy diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go deleted file mode 100644 index b0098607c7..0000000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build darwin && go1.12 && !go1.13 -// +build darwin,go1.12,!go1.13 - -package unix - -import ( - "unsafe" -) - -const _SYS_GETDIRENTRIES64 = 344 - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - // To implement this using libSystem we'd need syscall_syscallPtr for - // fdopendir. However, syscallPtr was only added in Go 1.13, so we fall - // back to raw syscalls for this func on Go 1.12. - var p unsafe.Pointer - if len(buf) > 0 { - p = unsafe.Pointer(&buf[0]) - } else { - p = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(_SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - return n, errnoErr(e1) - } - return n, nil -} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go deleted file mode 100644 index 1596426b1e..0000000000 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build darwin && go1.13 -// +build darwin,go1.13 - -package unix - -import ( - "unsafe" - - "golang.org/x/sys/internal/unsafeheader" -) - -//sys closedir(dir uintptr) (err error) -//sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) - -func fdopendir(fd int) (dir uintptr, err error) { - r0, _, e1 := syscall_syscallPtr(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0) - dir = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_fdopendir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib" - -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - // Simulate Getdirentries using fdopendir/readdir_r/closedir. - // We store the number of entries to skip in the seek - // offset of fd. See issue #31368. - // It's not the full required semantics, but should handle the case - // of calling Getdirentries or ReadDirent repeatedly. - // It won't handle assigning the results of lseek to *basep, or handle - // the directory being edited underfoot. - skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) - if err != nil { - return 0, err - } - - // We need to duplicate the incoming file descriptor - // because the caller expects to retain control of it, but - // fdopendir expects to take control of its argument. - // Just Dup'ing the file descriptor is not enough, as the - // result shares underlying state. Use Openat to make a really - // new file descriptor referring to the same directory. - fd2, err := Openat(fd, ".", O_RDONLY, 0) - if err != nil { - return 0, err - } - d, err := fdopendir(fd2) - if err != nil { - Close(fd2) - return 0, err - } - defer closedir(d) - - var cnt int64 - for { - var entry Dirent - var entryp *Dirent - e := readdir_r(d, &entry, &entryp) - if e != 0 { - return n, errnoErr(e) - } - if entryp == nil { - break - } - if skip > 0 { - skip-- - cnt++ - continue - } - - reclen := int(entry.Reclen) - if reclen > len(buf) { - // Not enough room. Return for now. - // The counter will let us know where we should start up again. - // Note: this strategy for suspending in the middle and - // restarting is O(n^2) in the length of the directory. Oh well. - break - } - - // Copy entry into return buffer. - var s []byte - hdr := (*unsafeheader.Slice)(unsafe.Pointer(&s)) - hdr.Data = unsafe.Pointer(&entry) - hdr.Cap = reclen - hdr.Len = reclen - copy(buf, s) - - buf = buf[reclen:] - n += reclen - cnt++ - } - // Set the seek offset of the input fd to record - // how many files we've already returned. - _, err = Seek(fd, cnt, 0 /* SEEK_SET */) - if err != nil { - return n, err - } - - return n, nil -} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index 4f87f16ea7..192b071b3d 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -19,6 +19,96 @@ import ( "unsafe" ) +//sys closedir(dir uintptr) (err error) +//sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) + +func fdopendir(fd int) (dir uintptr, err error) { + r0, _, e1 := syscall_syscallPtr(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0) + dir = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fdopendir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib" + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + // Simulate Getdirentries using fdopendir/readdir_r/closedir. + // We store the number of entries to skip in the seek + // offset of fd. See issue #31368. + // It's not the full required semantics, but should handle the case + // of calling Getdirentries or ReadDirent repeatedly. + // It won't handle assigning the results of lseek to *basep, or handle + // the directory being edited underfoot. + skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + return 0, err + } + + // We need to duplicate the incoming file descriptor + // because the caller expects to retain control of it, but + // fdopendir expects to take control of its argument. + // Just Dup'ing the file descriptor is not enough, as the + // result shares underlying state. Use Openat to make a really + // new file descriptor referring to the same directory. + fd2, err := Openat(fd, ".", O_RDONLY, 0) + if err != nil { + return 0, err + } + d, err := fdopendir(fd2) + if err != nil { + Close(fd2) + return 0, err + } + defer closedir(d) + + var cnt int64 + for { + var entry Dirent + var entryp *Dirent + e := readdir_r(d, &entry, &entryp) + if e != 0 { + return n, errnoErr(e) + } + if entryp == nil { + break + } + if skip > 0 { + skip-- + cnt++ + continue + } + + reclen := int(entry.Reclen) + if reclen > len(buf) { + // Not enough room. Return for now. + // The counter will let us know where we should start up again. + // Note: this strategy for suspending in the middle and + // restarting is O(n^2) in the length of the directory. Oh well. + break + } + + // Copy entry into return buffer. + s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen) + copy(buf, s) + + buf = buf[reclen:] + n += reclen + cnt++ + } + // Set the seek offset of the input fd to record + // how many files we've already returned. + _, err = Seek(fd, cnt, 0 /* SEEK_SET */) + if err != nil { + return n, err + } + + return n, nil +} + // SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. type SockaddrDatalink struct { Len uint8 @@ -140,6 +230,7 @@ func direntNamlen(buf []byte) (uint64, bool) { func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } +func PtraceDenyAttach() (err error) { return ptrace(PT_DENY_ATTACH, 0, 0, 0) } //sysnb pipe(p *[2]int32) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go index 61c0d0de15..a41111a794 100644 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go @@ -255,6 +255,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Chmod(path string, mode uint32) (err error) //sys Chown(path string, uid int, gid int) (err error) //sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go index de7c23e064..d50b9dc250 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -319,6 +319,7 @@ func PtraceSingleStep(pid int) (err error) { //sys Chmod(path string, mode uint32) (err error) //sys Chown(path string, uid int, gid int) (err error) //sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go index c3c4c698e0..6a91d471d0 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go @@ -60,8 +60,13 @@ func PtraceGetFsBase(pid int, fsbase *int64) (err error) { return ptrace(PT_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) } -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + Addr: uintptr(unsafe.Pointer(&out[0])), // TODO(#58351): this is not safe. + Len: uint32(countin), + } err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) return int(ioDesc.Len), err } diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go index 82be61a2f9..48110a0abb 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go @@ -60,8 +60,13 @@ func PtraceGetFsBase(pid int, fsbase *int64) (err error) { return ptrace(PT_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) } -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + Addr: uintptr(unsafe.Pointer(&out[0])), // TODO(#58351): this is not safe. + Len: uint64(countin), + } err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) return int(ioDesc.Len), err } diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go index cd58f1026c..52f1d4b75a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go @@ -56,8 +56,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + Addr: uintptr(unsafe.Pointer(&out[0])), // TODO(#58351): this is not safe. + Len: uint32(countin), + } err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) return int(ioDesc.Len), err } diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go index d6f538f9e0..5537ee4f2e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go @@ -56,8 +56,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + Addr: uintptr(unsafe.Pointer(&out[0])), // TODO(#58351): this is not safe. + Len: uint64(countin), + } err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) return int(ioDesc.Len), err } diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go index 8ea6e96100..164abd5d21 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go @@ -56,8 +56,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { - ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + Addr: uintptr(unsafe.Pointer(&out[0])), // TODO(#58351): this is not safe. + Len: uint64(countin), + } err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) return int(ioDesc.Len), err } diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd.go b/vendor/golang.org/x/sys/unix/syscall_hurd.go new file mode 100644 index 0000000000..4ffb64808d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_hurd.go @@ -0,0 +1,22 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build hurd +// +build hurd + +package unix + +/* +#include +int ioctl(int, unsigned long int, uintptr_t); +*/ +import "C" + +func ioctl(fd int, req uint, arg uintptr) (err error) { + r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg)) + if r0 == -1 && er != nil { + err = er + } + return +} diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd_386.go b/vendor/golang.org/x/sys/unix/syscall_hurd_386.go new file mode 100644 index 0000000000..7cf54a3e4f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_hurd_386.go @@ -0,0 +1,29 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build 386 && hurd +// +build 386,hurd + +package unix + +const ( + TIOCGETA = 0x62251713 +) + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go index e48244a9c9..87db5a6a8c 100644 --- a/vendor/golang.org/x/sys/unix/syscall_illumos.go +++ b/vendor/golang.org/x/sys/unix/syscall_illumos.go @@ -10,8 +10,6 @@ package unix import ( - "fmt" - "runtime" "unsafe" ) @@ -79,107 +77,3 @@ func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { } return } - -//sys putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) - -func Putmsg(fd int, cl []byte, data []byte, flags int) (err error) { - var clp, datap *strbuf - if len(cl) > 0 { - clp = &strbuf{ - Len: int32(len(cl)), - Buf: (*int8)(unsafe.Pointer(&cl[0])), - } - } - if len(data) > 0 { - datap = &strbuf{ - Len: int32(len(data)), - Buf: (*int8)(unsafe.Pointer(&data[0])), - } - } - return putmsg(fd, clp, datap, flags) -} - -//sys getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) - -func Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags int, err error) { - var clp, datap *strbuf - if len(cl) > 0 { - clp = &strbuf{ - Maxlen: int32(len(cl)), - Buf: (*int8)(unsafe.Pointer(&cl[0])), - } - } - if len(data) > 0 { - datap = &strbuf{ - Maxlen: int32(len(data)), - Buf: (*int8)(unsafe.Pointer(&data[0])), - } - } - - if err = getmsg(fd, clp, datap, &flags); err != nil { - return nil, nil, 0, err - } - - if len(cl) > 0 { - retCl = cl[:clp.Len] - } - if len(data) > 0 { - retData = data[:datap.Len] - } - return retCl, retData, flags, nil -} - -func IoctlSetIntRetInt(fd int, req uint, arg int) (int, error) { - return ioctlRet(fd, req, uintptr(arg)) -} - -func IoctlSetString(fd int, req uint, val string) error { - bs := make([]byte, len(val)+1) - copy(bs[:len(bs)-1], val) - err := ioctl(fd, req, uintptr(unsafe.Pointer(&bs[0]))) - runtime.KeepAlive(&bs[0]) - return err -} - -// Lifreq Helpers - -func (l *Lifreq) SetName(name string) error { - if len(name) >= len(l.Name) { - return fmt.Errorf("name cannot be more than %d characters", len(l.Name)-1) - } - for i := range name { - l.Name[i] = int8(name[i]) - } - return nil -} - -func (l *Lifreq) SetLifruInt(d int) { - *(*int)(unsafe.Pointer(&l.Lifru[0])) = d -} - -func (l *Lifreq) GetLifruInt() int { - return *(*int)(unsafe.Pointer(&l.Lifru[0])) -} - -func (l *Lifreq) SetLifruUint(d uint) { - *(*uint)(unsafe.Pointer(&l.Lifru[0])) = d -} - -func (l *Lifreq) GetLifruUint() uint { - return *(*uint)(unsafe.Pointer(&l.Lifru[0])) -} - -func IoctlLifreq(fd int, req uint, l *Lifreq) error { - return ioctl(fd, req, uintptr(unsafe.Pointer(l))) -} - -// Strioctl Helpers - -func (s *Strioctl) SetInt(i int) { - s.Len = int32(unsafe.Sizeof(i)) - s.Dp = (*int8)(unsafe.Pointer(&i)) -} - -func IoctlSetStrioctlRetInt(fd int, req uint, s *Strioctl) (int, error) { - return ioctlRet(fd, req, uintptr(unsafe.Pointer(s))) -} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 5e4a94f731..5443dddd48 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -13,6 +13,7 @@ package unix import ( "encoding/binary" + "strconv" "syscall" "time" "unsafe" @@ -233,7 +234,7 @@ func Futimesat(dirfd int, path string, tv []Timeval) error { func Futimes(fd int, tv []Timeval) (err error) { // Believe it or not, this is the best we can do on Linux // (and is what glibc does). - return Utimes("/proc/self/fd/"+itoa(fd), tv) + return Utimes("/proc/self/fd/"+strconv.Itoa(fd), tv) } const ImplementsGetwd = true @@ -1541,7 +1542,7 @@ func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Sockle var dummy byte var empty bool if len(oob) > 0 { - empty := emptyIovecs(iov) + empty = emptyIovecs(iov) if empty { var sockType int sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) @@ -1553,6 +1554,7 @@ func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Sockle var iova [1]Iovec iova[0].Base = &dummy iova[0].SetLen(1) + iov = iova[:] } } msg.Control = &oob[0] @@ -1798,6 +1800,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error) //sys Chdir(path string) (err error) //sys Chroot(path string) (err error) +//sys ClockAdjtime(clockid int32, buf *Timex) (state int, err error) //sys ClockGetres(clockid int32, res *Timespec) (err error) //sys ClockGettime(clockid int32, time *Timespec) (err error) //sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) @@ -1891,17 +1894,28 @@ func PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uint return int(ret), nil } -// issue 1435. -// On linux Setuid and Setgid only affects the current thread, not the process. -// This does not match what most callers expect so we must return an error -// here rather than letting the caller think that the call succeeded. - func Setuid(uid int) (err error) { - return EOPNOTSUPP + return syscall.Setuid(uid) +} + +func Setgid(gid int) (err error) { + return syscall.Setgid(gid) +} + +func Setreuid(ruid, euid int) (err error) { + return syscall.Setreuid(ruid, euid) +} + +func Setregid(rgid, egid int) (err error) { + return syscall.Setregid(rgid, egid) } -func Setgid(uid int) (err error) { - return EOPNOTSUPP +func Setresuid(ruid, euid, suid int) (err error) { + return syscall.Setresuid(ruid, euid, suid) +} + +func Setresgid(rgid, egid, sgid int) (err error) { + return syscall.Setresgid(rgid, egid, sgid) } // SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set. @@ -1960,36 +1974,46 @@ func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { //sys preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2 //sys pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2 -func bytes2iovec(bs [][]byte) []Iovec { - iovecs := make([]Iovec, len(bs)) - for i, b := range bs { - iovecs[i].SetLen(len(b)) +// minIovec is the size of the small initial allocation used by +// Readv, Writev, etc. +// +// This small allocation gets stack allocated, which lets the +// common use case of len(iovs) <= minIovs avoid more expensive +// heap allocations. +const minIovec = 8 + +// appendBytes converts bs to Iovecs and appends them to vecs. +func appendBytes(vecs []Iovec, bs [][]byte) []Iovec { + for _, b := range bs { + var v Iovec + v.SetLen(len(b)) if len(b) > 0 { - iovecs[i].Base = &b[0] + v.Base = &b[0] } else { - iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero)) + v.Base = (*byte)(unsafe.Pointer(&_zero)) } + vecs = append(vecs, v) } - return iovecs + return vecs } -// offs2lohi splits offs into its lower and upper unsigned long. On 64-bit -// systems, hi will always be 0. On 32-bit systems, offs will be split in half. -// preadv/pwritev chose this calling convention so they don't need to add a -// padding-register for alignment on ARM. +// offs2lohi splits offs into its low and high order bits. func offs2lohi(offs int64) (lo, hi uintptr) { - return uintptr(offs), uintptr(uint64(offs) >> SizeofLong) + const longBits = SizeofLong * 8 + return uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet } func Readv(fd int, iovs [][]byte) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) n, err = readv(fd, iovecs) readvRacedetect(iovecs, n, err) return n, err } func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) lo, hi := offs2lohi(offset) n, err = preadv(fd, iovecs, lo, hi) readvRacedetect(iovecs, n, err) @@ -1997,7 +2021,8 @@ func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { } func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) lo, hi := offs2lohi(offset) n, err = preadv2(fd, iovecs, lo, hi, flags) readvRacedetect(iovecs, n, err) @@ -2024,7 +2049,8 @@ func readvRacedetect(iovecs []Iovec, n int, err error) { } func Writev(fd int, iovs [][]byte) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) if raceenabled { raceReleaseMerge(unsafe.Pointer(&ioSync)) } @@ -2034,7 +2060,8 @@ func Writev(fd int, iovs [][]byte) (n int, err error) { } func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) if raceenabled { raceReleaseMerge(unsafe.Pointer(&ioSync)) } @@ -2045,7 +2072,8 @@ func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { } func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { - iovecs := bytes2iovec(iovs) + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) if raceenabled { raceReleaseMerge(unsafe.Pointer(&ioSync)) } @@ -2240,7 +2268,7 @@ func (fh *FileHandle) Bytes() []byte { if n == 0 { return nil } - return (*[1 << 30]byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type)) + 4))[:n:n] + return unsafe.Slice((*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type))+4)), n) } // NameToHandleAt wraps the name_to_handle_at system call; it obtains @@ -2356,6 +2384,16 @@ func Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) { return prev, nil } +//sysnb rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) = SYS_RT_SIGPROCMASK + +func PthreadSigmask(how int, set, oldset *Sigset_t) error { + if oldset != nil { + // Explicitly clear in case Sigset_t is larger than _C__NSIG. + *oldset = Sigset_t{} + } + return rtSigprocmask(how, set, oldset, _C__NSIG/8) +} + /* * Unimplemented */ @@ -2414,7 +2452,6 @@ func Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) { // RestartSyscall // RtSigaction // RtSigpending -// RtSigprocmask // RtSigqueueinfo // RtSigreturn // RtSigsuspend diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go index 518e476e6d..ff5b5899d6 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go @@ -41,10 +41,6 @@ func setTimeval(sec, usec int64) Timeval { //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 //sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 //sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 -//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 -//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 -//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32 //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 //sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go index f5e9d6bef1..9b27035329 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go @@ -46,11 +46,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys setfsgid(gid int) (prev int, err error) //sys setfsuid(uid int) (prev int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) //sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go index c1a7778f10..856ad1d635 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go @@ -62,10 +62,6 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { //sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT //sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 //sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 -//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 -//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 -//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32 //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go index d83e2c6571..6422704bc5 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go @@ -39,11 +39,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys setfsgid(gid int) (prev int, err error) //sys setfsuid(uid int) (prev int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) //sysnb setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go index 0b69c3eff9..59dab510e9 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go @@ -34,10 +34,6 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys setfsgid(gid int) (prev int, err error) //sys setfsuid(uid int) (prev int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go index 98a2660b91..bfef09a39e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -37,11 +37,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys setfsgid(gid int) (prev int, err error) //sys setfsuid(uid int) (prev int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) //sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) //sys Statfs(path string, buf *Statfs_t) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go index b8a18c0ad2..ab30250966 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go @@ -32,10 +32,6 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 //sys setfsgid(gid int) (prev int, err error) //sys setfsuid(uid int) (prev int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) //sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go index 4ed9e67c6d..eac1cf1acc 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go @@ -34,10 +34,6 @@ import ( //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 //sys setfsgid(gid int) (prev int, err error) //sys setfsuid(uid int) (prev int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go index db63d384c5..4df56616b8 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go @@ -34,11 +34,7 @@ package unix //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys setfsgid(gid int) (prev int, err error) //sys setfsuid(uid int) (prev int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) //sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) //sys Stat(path string, stat *Stat_t) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go index 925a748a39..5f4243dea2 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go @@ -38,11 +38,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys setfsgid(gid int) (prev int, err error) //sys setfsuid(uid int) (prev int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) //sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go index 6fcf277b0d..d0a7d40668 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go @@ -34,11 +34,7 @@ import ( //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys setfsgid(gid int) (prev int, err error) //sys setfsuid(uid int) (prev int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) //sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) //sys Stat(path string, stat *Stat_t) (err error) //sys Statfs(path string, buf *Statfs_t) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go index 02a45d9cc0..f5c793be26 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go @@ -31,11 +31,7 @@ package unix //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys setfsgid(gid int) (prev int, err error) //sys setfsuid(uid int) (prev int, err error) -//sysnb Setregid(rgid int, egid int) (err error) -//sysnb Setresgid(rgid int, egid int, sgid int) (err error) -//sysnb Setresuid(ruid int, euid int, suid int) (err error) //sysnb Setrlimit(resource int, rlim *Rlimit) (err error) -//sysnb Setreuid(ruid int, euid int) (err error) //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) //sys Stat(path string, stat *Stat_t) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index 666f0a1b33..35a3ad758f 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -110,6 +110,20 @@ func direntNamlen(buf []byte) (uint64, bool) { return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) } +func SysctlUvmexp(name string) (*Uvmexp, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofUvmexp) + var u Uvmexp + if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { + return nil, err + } + return &u, nil +} + func Pipe(p []int) (err error) { return Pipe2(p, 0) } @@ -245,6 +259,7 @@ func Statvfs(path string, buf *Statvfs_t) (err error) { //sys Chmod(path string, mode uint32) (err error) //sys Chown(path string, uid int, gid int) (err error) //sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go index 78daceb338..9b67b908e5 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -220,6 +220,7 @@ func Uname(uname *Utsname) error { //sys Chmod(path string, mode uint32) (err error) //sys Chown(path string, uid int, gid int) (err error) //sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) //sys Dup(fd int) (nfd int, err error) //sys Dup2(from int, to int) (err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go new file mode 100644 index 0000000000..04aa43f41b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go @@ -0,0 +1,27 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build openbsd +// +build openbsd + +package unix + +import _ "unsafe" + +// Implemented in the runtime package (runtime/sys_openbsd3.go) +func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) + +//go:linkname syscall_syscall syscall.syscall +//go:linkname syscall_syscall6 syscall.syscall6 +//go:linkname syscall_syscall10 syscall.syscall10 +//go:linkname syscall_rawSyscall syscall.rawSyscall +//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 + +func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) { + return syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, 0) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go new file mode 100644 index 0000000000..c2796139c0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go @@ -0,0 +1,42 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build ppc64 && openbsd +// +build ppc64,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/ppc64 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go new file mode 100644 index 0000000000..23199a7ff6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go @@ -0,0 +1,42 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build riscv64 && openbsd +// +build riscv64,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/riscv64 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index b5ec457cdc..07ac56109a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -590,6 +590,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Chmod(path string, mode uint32) (err error) //sys Chown(path string, uid int, gid int) (err error) //sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) //sys Close(fd int) (err error) //sys Creat(path string, mode uint32) (fd int, err error) //sys Dup(fd int) (nfd int, err error) @@ -750,8 +751,8 @@ type EventPort struct { // we should handle things gracefully. To do so, we need to keep an extra // reference to the cookie around until the event is processed // thus the otherwise seemingly extraneous "cookies" map - // The key of this map is a pointer to the corresponding &fCookie.cookie - cookies map[*interface{}]*fileObjCookie + // The key of this map is a pointer to the corresponding fCookie + cookies map[*fileObjCookie]struct{} } // PortEvent is an abstraction of the port_event C struct. @@ -778,7 +779,7 @@ func NewEventPort() (*EventPort, error) { port: port, fds: make(map[uintptr]*fileObjCookie), paths: make(map[string]*fileObjCookie), - cookies: make(map[*interface{}]*fileObjCookie), + cookies: make(map[*fileObjCookie]struct{}), } return e, nil } @@ -799,6 +800,7 @@ func (e *EventPort) Close() error { } e.fds = nil e.paths = nil + e.cookies = nil return nil } @@ -826,17 +828,16 @@ func (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, coo if _, found := e.paths[path]; found { return fmt.Errorf("%v is already associated with this Event Port", path) } - fobj, err := createFileObj(path, stat) + fCookie, err := createFileObjCookie(path, stat, cookie) if err != nil { return err } - fCookie := &fileObjCookie{fobj, cookie} - _, err = port_associate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(fobj)), events, (*byte)(unsafe.Pointer(&fCookie.cookie))) + _, err = port_associate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(fCookie.fobj)), events, (*byte)(unsafe.Pointer(fCookie))) if err != nil { return err } e.paths[path] = fCookie - e.cookies[&fCookie.cookie] = fCookie + e.cookies[fCookie] = struct{}{} return nil } @@ -858,7 +859,7 @@ func (e *EventPort) DissociatePath(path string) error { if err == nil { // dissociate was successful, safe to delete the cookie fCookie := e.paths[path] - delete(e.cookies, &fCookie.cookie) + delete(e.cookies, fCookie) } delete(e.paths, path) return err @@ -871,13 +872,16 @@ func (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) erro if _, found := e.fds[fd]; found { return fmt.Errorf("%v is already associated with this Event Port", fd) } - fCookie := &fileObjCookie{nil, cookie} - _, err := port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(&fCookie.cookie))) + fCookie, err := createFileObjCookie("", nil, cookie) + if err != nil { + return err + } + _, err = port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(fCookie))) if err != nil { return err } e.fds[fd] = fCookie - e.cookies[&fCookie.cookie] = fCookie + e.cookies[fCookie] = struct{}{} return nil } @@ -896,27 +900,31 @@ func (e *EventPort) DissociateFd(fd uintptr) error { if err == nil { // dissociate was successful, safe to delete the cookie fCookie := e.fds[fd] - delete(e.cookies, &fCookie.cookie) + delete(e.cookies, fCookie) } delete(e.fds, fd) return err } -func createFileObj(name string, stat os.FileInfo) (*fileObj, error) { - fobj := new(fileObj) - bs, err := ByteSliceFromString(name) - if err != nil { - return nil, err - } - fobj.Name = (*int8)(unsafe.Pointer(&bs[0])) - s := stat.Sys().(*syscall.Stat_t) - fobj.Atim.Sec = s.Atim.Sec - fobj.Atim.Nsec = s.Atim.Nsec - fobj.Mtim.Sec = s.Mtim.Sec - fobj.Mtim.Nsec = s.Mtim.Nsec - fobj.Ctim.Sec = s.Ctim.Sec - fobj.Ctim.Nsec = s.Ctim.Nsec - return fobj, nil +func createFileObjCookie(name string, stat os.FileInfo, cookie interface{}) (*fileObjCookie, error) { + fCookie := new(fileObjCookie) + fCookie.cookie = cookie + if name != "" && stat != nil { + fCookie.fobj = new(fileObj) + bs, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + fCookie.fobj.Name = (*int8)(unsafe.Pointer(&bs[0])) + s := stat.Sys().(*syscall.Stat_t) + fCookie.fobj.Atim.Sec = s.Atim.Sec + fCookie.fobj.Atim.Nsec = s.Atim.Nsec + fCookie.fobj.Mtim.Sec = s.Mtim.Sec + fCookie.fobj.Mtim.Nsec = s.Mtim.Nsec + fCookie.fobj.Ctim.Sec = s.Ctim.Sec + fCookie.fobj.Ctim.Nsec = s.Ctim.Nsec + } + return fCookie, nil } // GetOne wraps port_get(3c) and returns a single PortEvent. @@ -929,44 +937,50 @@ func (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) { p := new(PortEvent) e.mu.Lock() defer e.mu.Unlock() - e.peIntToExt(pe, p) + err = e.peIntToExt(pe, p) + if err != nil { + return nil, err + } return p, nil } // peIntToExt converts a cgo portEvent struct into the friendlier PortEvent // NOTE: Always call this function while holding the e.mu mutex -func (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) { +func (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) error { + if e.cookies == nil { + return fmt.Errorf("this EventPort is already closed") + } peExt.Events = peInt.Events peExt.Source = peInt.Source - cookie := (*interface{})(unsafe.Pointer(peInt.User)) - peExt.Cookie = *cookie + fCookie := (*fileObjCookie)(unsafe.Pointer(peInt.User)) + _, found := e.cookies[fCookie] + + if !found { + panic("unexpected event port address; may be due to kernel bug; see https://go.dev/issue/54254") + } + peExt.Cookie = fCookie.cookie + delete(e.cookies, fCookie) + switch peInt.Source { case PORT_SOURCE_FD: - delete(e.cookies, cookie) peExt.Fd = uintptr(peInt.Object) // Only remove the fds entry if it exists and this cookie matches if fobj, ok := e.fds[peExt.Fd]; ok { - if &fobj.cookie == cookie { + if fobj == fCookie { delete(e.fds, peExt.Fd) } } case PORT_SOURCE_FILE: - if fCookie, ok := e.cookies[cookie]; ok && uintptr(unsafe.Pointer(fCookie.fobj)) == uintptr(peInt.Object) { - // Use our stashed reference rather than using unsafe on what we got back - // the unsafe version would be (*fileObj)(unsafe.Pointer(uintptr(peInt.Object))) - peExt.fobj = fCookie.fobj - } else { - panic("mismanaged memory") - } - delete(e.cookies, cookie) + peExt.fobj = fCookie.fobj peExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name))) // Only remove the paths entry if it exists and this cookie matches if fobj, ok := e.paths[peExt.Path]; ok { - if &fobj.cookie == cookie { + if fobj == fCookie { delete(e.paths, peExt.Path) } } } + return nil } // Pending wraps port_getn(3c) and returns how many events are pending. @@ -990,7 +1004,7 @@ func (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) got := uint32(min) max := uint32(len(s)) var err error - ps := make([]portEvent, max, max) + ps := make([]portEvent, max) _, err = port_getn(e.port, &ps[0], max, &got, timeout) // got will be trustworthy with ETIME, but not any other error. if err != nil && err != ETIME { @@ -998,8 +1012,122 @@ func (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) } e.mu.Lock() defer e.mu.Unlock() + valid := 0 for i := 0; i < int(got); i++ { - e.peIntToExt(&ps[i], &s[i]) + err2 := e.peIntToExt(&ps[i], &s[i]) + if err2 != nil { + if valid == 0 && err == nil { + // If err2 is the only error and there are no valid events + // to return, return it to the caller. + err = err2 + } + break + } + valid = i + 1 + } + return valid, err +} + +//sys putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) + +func Putmsg(fd int, cl []byte, data []byte, flags int) (err error) { + var clp, datap *strbuf + if len(cl) > 0 { + clp = &strbuf{ + Len: int32(len(cl)), + Buf: (*int8)(unsafe.Pointer(&cl[0])), + } } - return int(got), err + if len(data) > 0 { + datap = &strbuf{ + Len: int32(len(data)), + Buf: (*int8)(unsafe.Pointer(&data[0])), + } + } + return putmsg(fd, clp, datap, flags) +} + +//sys getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) + +func Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags int, err error) { + var clp, datap *strbuf + if len(cl) > 0 { + clp = &strbuf{ + Maxlen: int32(len(cl)), + Buf: (*int8)(unsafe.Pointer(&cl[0])), + } + } + if len(data) > 0 { + datap = &strbuf{ + Maxlen: int32(len(data)), + Buf: (*int8)(unsafe.Pointer(&data[0])), + } + } + + if err = getmsg(fd, clp, datap, &flags); err != nil { + return nil, nil, 0, err + } + + if len(cl) > 0 { + retCl = cl[:clp.Len] + } + if len(data) > 0 { + retData = data[:datap.Len] + } + return retCl, retData, flags, nil +} + +func IoctlSetIntRetInt(fd int, req uint, arg int) (int, error) { + return ioctlRet(fd, req, uintptr(arg)) +} + +func IoctlSetString(fd int, req uint, val string) error { + bs := make([]byte, len(val)+1) + copy(bs[:len(bs)-1], val) + err := ioctl(fd, req, uintptr(unsafe.Pointer(&bs[0]))) + runtime.KeepAlive(&bs[0]) + return err +} + +// Lifreq Helpers + +func (l *Lifreq) SetName(name string) error { + if len(name) >= len(l.Name) { + return fmt.Errorf("name cannot be more than %d characters", len(l.Name)-1) + } + for i := range name { + l.Name[i] = int8(name[i]) + } + return nil +} + +func (l *Lifreq) SetLifruInt(d int) { + *(*int)(unsafe.Pointer(&l.Lifru[0])) = d +} + +func (l *Lifreq) GetLifruInt() int { + return *(*int)(unsafe.Pointer(&l.Lifru[0])) +} + +func (l *Lifreq) SetLifruUint(d uint) { + *(*uint)(unsafe.Pointer(&l.Lifru[0])) = d +} + +func (l *Lifreq) GetLifruUint() uint { + return *(*uint)(unsafe.Pointer(&l.Lifru[0])) +} + +func IoctlLifreq(fd int, req uint, l *Lifreq) error { + return ioctl(fd, req, uintptr(unsafe.Pointer(l))) +} + +// Strioctl Helpers + +func (s *Strioctl) SetInt(i int) { + s.Len = int32(unsafe.Sizeof(i)) + s.Dp = (*int8)(unsafe.Pointer(&i)) +} + +func IoctlSetStrioctlRetInt(fd int, req uint, s *Strioctl) (int, error) { + return ioctlRet(fd, req, uintptr(unsafe.Pointer(s))) } diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go index 1ff5060b51..00f0aa3758 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -13,8 +13,6 @@ import ( "sync" "syscall" "unsafe" - - "golang.org/x/sys/internal/unsafeheader" ) var ( @@ -117,11 +115,7 @@ func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (d } // Use unsafe to convert addr into a []byte. - var b []byte - hdr := (*unsafeheader.Slice)(unsafe.Pointer(&b)) - hdr.Data = unsafe.Pointer(addr) - hdr.Cap = length - hdr.Len = length + b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), length) // Register mapping in m and return it. p := &b[cap(b)-1] @@ -337,6 +331,19 @@ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { return } +// Recvmsg receives a message from a socket using the recvmsg system call. The +// received non-control data will be written to p, and any "out of band" +// control data will be written to oob. The flags are passed to recvmsg. +// +// The results are: +// - n is the number of non-control data bytes read into p +// - oobn is the number of control data bytes read into oob; this may be interpreted using [ParseSocketControlMessage] +// - recvflags is flags returned by recvmsg +// - from is the address of the sender +// +// If the underlying socket type is not SOCK_DGRAM, a received message +// containing oob data and a single '\0' of non-control data is treated as if +// the message contained only control data, i.e. n will be zero on return. func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { var iov [1]Iovec if len(p) > 0 { @@ -352,13 +359,9 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from return } -// RecvmsgBuffers receives a message from a socket using the recvmsg -// system call. The flags are passed to recvmsg. Any non-control data -// read is scattered into the buffers slices. The results are: -// - n is the number of non-control data read into bufs -// - oobn is the number of control data read into oob; this may be interpreted using [ParseSocketControlMessage] -// - recvflags is flags returned by recvmsg -// - from is the address of the sender +// RecvmsgBuffers receives a message from a socket using the recvmsg system +// call. This function is equivalent to Recvmsg, but non-control data read is +// scattered into the buffers slices. func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { iov := make([]Iovec, len(buffers)) for i := range buffers { @@ -377,11 +380,38 @@ func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn in return } +// Sendmsg sends a message on a socket to an address using the sendmsg system +// call. This function is equivalent to SendmsgN, but does not return the +// number of bytes actually sent. func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { _, err = SendmsgN(fd, p, oob, to, flags) return } +// SendmsgN sends a message on a socket to an address using the sendmsg system +// call. p contains the non-control data to send, and oob contains the "out of +// band" control data. The flags are passed to sendmsg. The number of +// non-control bytes actually written to the socket is returned. +// +// Some socket types do not support sending control data without accompanying +// non-control data. If p is empty, and oob contains control data, and the +// underlying socket type is not SOCK_DGRAM, p will be treated as containing a +// single '\0' and the return value will indicate zero bytes sent. +// +// The Go function Recvmsg, if called with an empty p and a non-empty oob, +// will read and ignore this additional '\0'. If the message is received by +// code that does not use Recvmsg, or that does not use Go at all, that code +// will need to be written to expect and ignore the additional '\0'. +// +// If you need to send non-empty oob with p actually empty, and if the +// underlying socket type supports it, you can do so via a raw system call as +// follows: +// +// msg := &unix.Msghdr{ +// Control: &oob[0], +// } +// msg.SetControllen(len(oob)) +// n, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags) func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { var iov [1]Iovec if len(p) > 0 { @@ -400,9 +430,8 @@ func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) } // SendmsgBuffers sends a message on a socket to an address using the sendmsg -// system call. The flags are passed to sendmsg. Any non-control data written -// is gathered from buffers. The function returns the number of bytes written -// to the socket. +// system call. This function is equivalent to SendmsgN, but the non-control +// data is gathered from buffers. func SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) { iov := make([]Iovec, len(buffers)) for i := range buffers { @@ -429,11 +458,15 @@ func Send(s int, buf []byte, flags int) (err error) { } func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { - ptr, n, err := to.sockaddr() - if err != nil { - return err + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return err + } } - return sendto(fd, p, flags, ptr, n) + return sendto(fd, p, flags, ptr, salen) } func SetsockoptByte(fd, level, opt int, value byte) (err error) { @@ -545,7 +578,7 @@ func Lutimes(path string, tv []Timeval) error { return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW) } -// emptyIovec reports whether there are no bytes in the slice of Iovec. +// emptyIovecs reports whether there are no bytes in the slice of Iovec. func emptyIovecs(iov []Iovec) bool { for i := range iov { if iov[i].Len > 0 { diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go index 5898e9a52b..b6919ca580 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go @@ -2,11 +2,9 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build (darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris) && gc && !ppc64le && !ppc64 -// +build darwin dragonfly freebsd linux netbsd openbsd solaris +//go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc +// +build darwin dragonfly freebsd linux,!ppc64,!ppc64le netbsd openbsd solaris // +build gc -// +build !ppc64le -// +build !ppc64 package unix diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go index f8616f454e..68b2f3e1cd 100644 --- a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go +++ b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go @@ -9,8 +9,10 @@ package unix import ( "bytes" + "fmt" "runtime" "sort" + "strings" "sync" "syscall" "unsafe" @@ -55,7 +57,13 @@ func (d *Dirent) NameString() string { if d == nil { return "" } - return string(d.Name[:d.Namlen]) + s := string(d.Name[:]) + idx := strings.IndexByte(s, 0) + if idx == -1 { + return s + } else { + return s[:idx] + } } func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { @@ -1230,6 +1238,14 @@ func Readdir(dir uintptr) (*Dirent, error) { return &ent, err } +func readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) { + r0, _, e1 := syscall_syscall(SYS___READDIR_R_A, dirp, uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + if int64(r0) == -1 { + err = errnoErr(Errno(e1)) + } + return +} + func Closedir(dir uintptr) error { _, _, e := syscall_syscall(SYS_CLOSEDIR, dir, 0, 0) if e != 0 { @@ -1821,3 +1837,158 @@ func Unmount(name string, mtm int) (err error) { } return err } + +func fdToPath(dirfd int) (path string, err error) { + var buffer [1024]byte + // w_ctrl() + ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4, + []uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))}) + if ret == 0 { + zb := bytes.IndexByte(buffer[:], 0) + if zb == -1 { + zb = len(buffer) + } + // __e2a_l() + runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, + []uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)}) + return string(buffer[:zb]), nil + } + // __errno() + errno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, + []uintptr{})))) + // __errno2() + errno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4, + []uintptr{})) + // strerror_r() + ret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4, + []uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024}) + if ret == 0 { + zb := bytes.IndexByte(buffer[:], 0) + if zb == -1 { + zb = len(buffer) + } + return "", fmt.Errorf("%s (errno2=0x%x)", buffer[:zb], errno2) + } else { + return "", fmt.Errorf("fdToPath errno %d (errno2=0x%x)", errno, errno2) + } +} + +func direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) { + var d Dirent + + d.Ino = uint64(dirent.Ino) + offset, err := Telldir(dir) + if err != nil { + return d, err + } + + d.Off = int64(offset) + s := string(bytes.Split(dirent.Name[:], []byte{0})[0]) + copy(d.Name[:], s) + + d.Reclen = uint16(24 + len(d.NameString())) + var st Stat_t + path = path + "/" + s + err = Lstat(path, &st) + if err != nil { + return d, err + } + + d.Type = uint8(st.Mode >> 24) + return d, err +} + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + // Simulation of Getdirentries port from the Darwin implementation. + // COMMENTS FROM DARWIN: + // It's not the full required semantics, but should handle the case + // of calling Getdirentries or ReadDirent repeatedly. + // It won't handle assigning the results of lseek to *basep, or handle + // the directory being edited underfoot. + + skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + return 0, err + } + + // Get path from fd to avoid unavailable call (fdopendir) + path, err := fdToPath(fd) + if err != nil { + return 0, err + } + d, err := Opendir(path) + if err != nil { + return 0, err + } + defer Closedir(d) + + var cnt int64 + for { + var entryLE direntLE + var entrypLE *direntLE + e := readdir_r(d, &entryLE, &entrypLE) + if e != nil { + return n, e + } + if entrypLE == nil { + break + } + if skip > 0 { + skip-- + cnt++ + continue + } + + // Dirent on zos has a different structure + entry, e := direntLeToDirentUnix(&entryLE, d, path) + if e != nil { + return n, e + } + + reclen := int(entry.Reclen) + if reclen > len(buf) { + // Not enough room. Return for now. + // The counter will let us know where we should start up again. + // Note: this strategy for suspending in the middle and + // restarting is O(n^2) in the length of the directory. Oh well. + break + } + + // Copy entry into return buffer. + s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen) + copy(buf, s) + + buf = buf[reclen:] + n += reclen + cnt++ + } + // Set the seek offset of the input fd to record + // how many files we've already returned. + _, err = Seek(fd, cnt, 0 /* SEEK_SET */) + if err != nil { + return n, err + } + + return n, nil +} + +func ReadDirent(fd int, buf []byte) (n int, err error) { + var base = (*uintptr)(unsafe.Pointer(new(uint64))) + return Getdirentries(fd, buf, base) +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false + } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true +} diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/vendor/golang.org/x/sys/unix/sysvshm_unix.go index 0bb4c8de55..5bb41d17bc 100644 --- a/vendor/golang.org/x/sys/unix/sysvshm_unix.go +++ b/vendor/golang.org/x/sys/unix/sysvshm_unix.go @@ -7,11 +7,7 @@ package unix -import ( - "unsafe" - - "golang.org/x/sys/internal/unsafeheader" -) +import "unsafe" // SysvShmAttach attaches the Sysv shared memory segment associated with the // shared memory identifier id. @@ -34,12 +30,7 @@ func SysvShmAttach(id int, addr uintptr, flag int) ([]byte, error) { } // Use unsafe to convert addr into a []byte. - // TODO: convert to unsafe.Slice once we can assume Go 1.17 - var b []byte - hdr := (*unsafeheader.Slice)(unsafe.Pointer(&b)) - hdr.Data = unsafe.Pointer(addr) - hdr.Cap = int(info.Segsz) - hdr.Len = int(info.Segsz) + b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), int(info.Segsz)) return b, nil } diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go index 3d89304055..616b1b2848 100644 --- a/vendor/golang.org/x/sys/unix/timestruct.go +++ b/vendor/golang.org/x/sys/unix/timestruct.go @@ -9,7 +9,7 @@ package unix import "time" -// TimespecToNSec returns the time stored in ts as nanoseconds. +// TimespecToNsec returns the time stored in ts as nanoseconds. func TimespecToNsec(ts Timespec) int64 { return ts.Nano() } // NsecToTimespec converts a number of nanoseconds into a Timespec. diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go index 25df1e3780..f5f8e9f366 100644 --- a/vendor/golang.org/x/sys/unix/xattr_bsd.go +++ b/vendor/golang.org/x/sys/unix/xattr_bsd.go @@ -36,9 +36,14 @@ func xattrnamespace(fullattr string) (ns int, attr string, err error) { func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) { if len(dest) > idx { return unsafe.Pointer(&dest[idx]) - } else { - return unsafe.Pointer(_zero) } + if dest != nil { + // extattr_get_file and extattr_list_file treat NULL differently from + // a non-NULL pointer of length zero. Preserve the property of nilness, + // even if we can't use dest directly. + return unsafe.Pointer(&_zero) + } + return nil } // FreeBSD and NetBSD implement their own syscalls to handle extended attributes @@ -160,13 +165,12 @@ func Lremovexattr(link string, attr string) (err error) { } func Listxattr(file string, dest []byte) (sz int, err error) { - d := initxattrdest(dest, 0) destsiz := len(dest) // FreeBSD won't allow you to list xattrs from multiple namespaces - s := 0 + s, pos := 0, 0 for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) + stmp, e := ListxattrNS(file, nsid, dest[pos:]) /* Errors accessing system attrs are ignored so that * we can implement the Linux-like behavior of omitting errors that @@ -175,66 +179,102 @@ func Listxattr(file string, dest []byte) (sz int, err error) { * Linux will still error if we ask for user attributes on a file that * we don't have read permissions on, so don't ignore those errors */ - if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } else if e != nil { + if e != nil { + if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } return s, e } s += stmp - destsiz -= s - if destsiz < 0 { - destsiz = 0 + pos = s + if pos > destsiz { + pos = destsiz } - d = initxattrdest(dest, s) } return s, nil } -func Flistxattr(fd int, dest []byte) (sz int, err error) { +func ListxattrNS(file string, nsid int, dest []byte) (sz int, err error) { d := initxattrdest(dest, 0) destsiz := len(dest) - s := 0 + s, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) + if e != nil { + return 0, err + } + + return s, nil +} + +func Flistxattr(fd int, dest []byte) (sz int, err error) { + destsiz := len(dest) + + s, pos := 0, 0 for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) - if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } else if e != nil { + stmp, e := FlistxattrNS(fd, nsid, dest[pos:]) + + if e != nil { + if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } return s, e } s += stmp - destsiz -= s - if destsiz < 0 { - destsiz = 0 + pos = s + if pos > destsiz { + pos = destsiz } - d = initxattrdest(dest, s) } return s, nil } -func Llistxattr(link string, dest []byte) (sz int, err error) { +func FlistxattrNS(fd int, nsid int, dest []byte) (sz int, err error) { d := initxattrdest(dest, 0) destsiz := len(dest) - s := 0 + s, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) + if e != nil { + return 0, err + } + + return s, nil +} + +func Llistxattr(link string, dest []byte) (sz int, err error) { + destsiz := len(dest) + + s, pos := 0, 0 for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { - stmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) - if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { - continue - } else if e != nil { + stmp, e := LlistxattrNS(link, nsid, dest[pos:]) + + if e != nil { + if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } return s, e } s += stmp - destsiz -= s - if destsiz < 0 { - destsiz = 0 + pos = s + if pos > destsiz { + pos = destsiz } - d = initxattrdest(dest, s) + } + + return s, nil +} + +func LlistxattrNS(link string, nsid int, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsiz := len(dest) + + s, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) + if e != nil { + return 0, err } return s, nil diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go index 785d693eb3..e174685adb 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -457,7 +457,6 @@ const ( B600 = 0x8 B75 = 0x2 B9600 = 0xd - BALLOON_KVM_MAGIC = 0x13661366 BDEVFS_MAGIC = 0x62646576 BINDERFS_SUPER_MAGIC = 0x6c6f6f70 BINFMTFS_MAGIC = 0x42494e4d @@ -563,6 +562,7 @@ const ( BUS_USB = 0x3 BUS_VIRTUAL = 0x6 CAN_BCM = 0x2 + CAN_BUS_OFF_THRESHOLD = 0x100 CAN_CTRLMODE_3_SAMPLES = 0x4 CAN_CTRLMODE_BERR_REPORTING = 0x10 CAN_CTRLMODE_CC_LEN8_DLC = 0x100 @@ -577,9 +577,12 @@ const ( CAN_EFF_FLAG = 0x80000000 CAN_EFF_ID_BITS = 0x1d CAN_EFF_MASK = 0x1fffffff + CAN_ERROR_PASSIVE_THRESHOLD = 0x80 + CAN_ERROR_WARNING_THRESHOLD = 0x60 CAN_ERR_ACK = 0x20 CAN_ERR_BUSERROR = 0x80 CAN_ERR_BUSOFF = 0x40 + CAN_ERR_CNT = 0x200 CAN_ERR_CRTL = 0x4 CAN_ERR_CRTL_ACTIVE = 0x40 CAN_ERR_CRTL_RX_OVERFLOW = 0x1 @@ -820,9 +823,9 @@ const ( DM_UUID_FLAG = 0x4000 DM_UUID_LEN = 0x81 DM_VERSION = 0xc138fd00 - DM_VERSION_EXTRA = "-ioctl (2022-02-22)" + DM_VERSION_EXTRA = "-ioctl (2022-07-28)" DM_VERSION_MAJOR = 0x4 - DM_VERSION_MINOR = 0x2e + DM_VERSION_MINOR = 0x2f DM_VERSION_PATCHLEVEL = 0x0 DT_BLK = 0x6 DT_CHR = 0x2 @@ -1049,6 +1052,7 @@ const ( ETH_P_CAIF = 0xf7 ETH_P_CAN = 0xc ETH_P_CANFD = 0xd + ETH_P_CANXL = 0xe ETH_P_CFM = 0x8902 ETH_P_CONTROL = 0x16 ETH_P_CUST = 0x6006 @@ -1060,6 +1064,7 @@ const ( ETH_P_DNA_RT = 0x6003 ETH_P_DSA = 0x1b ETH_P_DSA_8021Q = 0xdadb + ETH_P_DSA_A5PSW = 0xe001 ETH_P_ECONET = 0x18 ETH_P_EDSA = 0xdada ETH_P_ERSPAN = 0x88be @@ -1194,8 +1199,10 @@ const ( FAN_MARK_EVICTABLE = 0x200 FAN_MARK_FILESYSTEM = 0x100 FAN_MARK_FLUSH = 0x80 + FAN_MARK_IGNORE = 0x400 FAN_MARK_IGNORED_MASK = 0x20 FAN_MARK_IGNORED_SURV_MODIFY = 0x40 + FAN_MARK_IGNORE_SURV = 0x440 FAN_MARK_INODE = 0x0 FAN_MARK_MOUNT = 0x10 FAN_MARK_ONLYDIR = 0x8 @@ -1253,6 +1260,7 @@ const ( FSCRYPT_MODE_AES_128_CBC = 0x5 FSCRYPT_MODE_AES_128_CTS = 0x6 FSCRYPT_MODE_AES_256_CTS = 0x4 + FSCRYPT_MODE_AES_256_HCTR2 = 0xa FSCRYPT_MODE_AES_256_XTS = 0x1 FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2 FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3 @@ -1430,6 +1438,7 @@ const ( IFF_NOARP = 0x80 IFF_NOFILTER = 0x1000 IFF_NOTRAILERS = 0x20 + IFF_NO_CARRIER = 0x40 IFF_NO_PI = 0x1000 IFF_ONE_QUEUE = 0x2000 IFF_PERSIST = 0x800 @@ -1805,6 +1814,7 @@ const ( MADV_DONTDUMP = 0x10 MADV_DONTFORK = 0xa MADV_DONTNEED = 0x4 + MADV_DONTNEED_LOCKED = 0x18 MADV_FREE = 0x8 MADV_HUGEPAGE = 0xe MADV_HWPOISON = 0x64 @@ -1846,7 +1856,7 @@ const ( MFD_ALLOW_SEALING = 0x2 MFD_CLOEXEC = 0x1 MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = -0x78000000 + MFD_HUGE_16GB = 0x88000000 MFD_HUGE_16MB = 0x60000000 MFD_HUGE_1GB = 0x78000000 MFD_HUGE_1MB = 0x50000000 @@ -2212,6 +2222,11 @@ const ( PERF_AUX_FLAG_PARTIAL = 0x4 PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK = 0xff00 PERF_AUX_FLAG_TRUNCATED = 0x1 + PERF_BR_ARM64_DEBUG_DATA = 0x7 + PERF_BR_ARM64_DEBUG_EXIT = 0x5 + PERF_BR_ARM64_DEBUG_HALT = 0x4 + PERF_BR_ARM64_DEBUG_INST = 0x6 + PERF_BR_ARM64_FIQ = 0x3 PERF_FLAG_FD_CLOEXEC = 0x8 PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_OUTPUT = 0x2 @@ -2232,6 +2247,8 @@ const ( PERF_MEM_LOCK_NA = 0x1 PERF_MEM_LOCK_SHIFT = 0x18 PERF_MEM_LVLNUM_ANY_CACHE = 0xb + PERF_MEM_LVLNUM_CXL = 0x9 + PERF_MEM_LVLNUM_IO = 0xa PERF_MEM_LVLNUM_L1 = 0x1 PERF_MEM_LVLNUM_L2 = 0x2 PERF_MEM_LVLNUM_L3 = 0x3 @@ -2265,6 +2282,7 @@ const ( PERF_MEM_REMOTE_REMOTE = 0x1 PERF_MEM_REMOTE_SHIFT = 0x25 PERF_MEM_SNOOPX_FWD = 0x1 + PERF_MEM_SNOOPX_PEER = 0x2 PERF_MEM_SNOOPX_SHIFT = 0x26 PERF_MEM_SNOOP_HIT = 0x4 PERF_MEM_SNOOP_HITM = 0x10 @@ -2301,7 +2319,6 @@ const ( PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 PIPEFS_MAGIC = 0x50495045 - PPC_CMM_MAGIC = 0xc7571590 PPPIOCGNPMODE = 0xc008744c PPPIOCNEWUNIT = 0xc004743e PRIO_PGRP = 0x1 @@ -2999,6 +3016,7 @@ const ( STATX_BLOCKS = 0x400 STATX_BTIME = 0x800 STATX_CTIME = 0x80 + STATX_DIOALIGN = 0x2000 STATX_GID = 0x10 STATX_INO = 0x100 STATX_MNT_ID = 0x1000 @@ -3392,9 +3410,7 @@ const ( XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 XFS_SUPER_MAGIC = 0x58465342 - Z3FOLD_MAGIC = 0x33 ZONEFS_MAGIC = 0x5a4f4653 - ZSMALLOC_MAGIC = 0x58295829 _HIDIOCGRAWNAME_LEN = 0x80 _HIDIOCGRAWPHYS_LEN = 0x40 _HIDIOCGRAWUNIQ_LEN = 0x40 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index 274e2dabdf..a46df0f1e5 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -m32 +// mkerrors.sh -Wall -Werror -static -I/tmp/386/include -m32 // Code generated by the command above; see README.md. DO NOT EDIT. //go:build 386 && linux // +build 386,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go package unix @@ -133,6 +133,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc03c4d1a MEMREADOOB = 0xc00c4d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index 95b6eeedfe..6cd4a3ea9d 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -m64 +// mkerrors.sh -Wall -Werror -static -I/tmp/amd64/include -m64 // Code generated by the command above; see README.md. DO NOT EDIT. //go:build amd64 && linux // +build amd64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go package unix @@ -133,6 +133,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index 918cd130ec..c7ebee24df 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/arm/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build arm && linux // +build arm,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go package unix @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc00c4d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index 3907dc5a90..9d5352c3e4 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char +// mkerrors.sh -Wall -Werror -static -I/tmp/arm64/include -fsigned-char // Code generated by the command above; see README.md. DO NOT EDIT. //go:build arm64 && linux // +build arm64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go package unix @@ -134,6 +134,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go index 03d5c105a3..f26a164f4a 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/loong64/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build loong64 && linux // +build loong64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go package unix @@ -132,6 +132,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index bd794e0108..890bc3c9b7 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/mips/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mips && linux // +build mips,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go package unix @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc00c4d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 6c741b0547..549f26ac64 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/mips64/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mips64 && linux // +build mips64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go package unix @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index 807b8cd2a8..e0365e32c1 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/mips64le/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mips64le && linux // +build mips64le,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go package unix @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index a39e4f5c20..fdccce15ca 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/mipsle/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mipsle && linux // +build mipsle,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go package unix @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc00c4d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go index c0fcda86b4..b2205c83fa 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/ppc/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build ppc && linux // +build ppc,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go package unix @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc00c4d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index f3b72407aa..81aa5ad0f6 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build ppc64 && linux // +build ppc64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go package unix @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index 72f2a45d50..76807a1fd4 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64le/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build ppc64le && linux // +build ppc64le,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go package unix @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index 45b214b4d3..d4a5ab9e4e 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/riscv64/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build riscv64 && linux // +build riscv64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go package unix @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index 1897f207bb..66e65db951 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include -fsigned-char +// mkerrors.sh -Wall -Werror -static -I/tmp/s390x/include -fsigned-char // Code generated by the command above; see README.md. DO NOT EDIT. //go:build s390x && linux // +build s390x,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go package unix @@ -131,6 +131,7 @@ const ( MEMGETREGIONCOUNT = 0x80044d07 MEMISLOCKED = 0x80084d17 MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x40084d0c MEMUNLOCK = 0x40084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index 1fb7a3953a..f619252691 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -1,11 +1,11 @@ -// mkerrors.sh -Wall -Werror -static -I/tmp/include +// mkerrors.sh -Wall -Werror -static -I/tmp/sparc64/include // Code generated by the command above; see README.md. DO NOT EDIT. //go:build sparc64 && linux // +build sparc64,linux // Code generated by cmd/cgo -godefs; DO NOT EDIT. -// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go +// cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go package unix @@ -136,6 +136,7 @@ const ( MEMGETREGIONCOUNT = 0x40044d07 MEMISLOCKED = 0x40084d17 MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a MEMREADOOB = 0xc0104d04 MEMSETBADBLOCK = 0x80084d0c MEMUNLOCK = 0x80084d06 diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go index 6d56edc05a..af20e474b3 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go @@ -46,6 +46,7 @@ const ( AF_SNA = 0xb AF_UNIX = 0x1 AF_UNSPEC = 0x0 + ALTWERASE = 0x200 ARPHRD_ETHER = 0x1 ARPHRD_FRELAY = 0xf ARPHRD_IEEE1394 = 0x18 @@ -108,6 +109,15 @@ const ( BPF_DIRECTION_IN = 0x1 BPF_DIRECTION_OUT = 0x2 BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -136,6 +146,7 @@ const ( BPF_OR = 0x40 BPF_RELEASE = 0x30bb6 BPF_RET = 0x6 + BPF_RND = 0xc0 BPF_RSH = 0x70 BPF_ST = 0x2 BPF_STX = 0x3 @@ -147,6 +158,12 @@ const ( BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 CPUSTATES = 0x6 CP_IDLE = 0x5 CP_INTR = 0x4 @@ -170,7 +187,65 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0xc CTL_NET = 0x4 + DIOCADDQUEUE = 0xc100445d + DIOCADDRULE = 0xccc84404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xccc8441a + DIOCCLRIFFLAG = 0xc024445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0d04412 + DIOCCLRSTATUS = 0xc0244416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1084460 + DIOCGETQUEUE = 0xc100445f + DIOCGETQUEUES = 0xc100445e + DIOCGETRULE = 0xccc84407 + DIOCGETRULES = 0xccc84406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0084454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0084419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0244457 + DIOCKILLSRCNODES = 0xc068445b + DIOCKILLSTATES = 0xc0d04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc084444f DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0844450 + DIOCRADDADDRS = 0xc44c4443 + DIOCRADDTABLES = 0xc44c443d + DIOCRCLRADDRS = 0xc44c4442 + DIOCRCLRASTATS = 0xc44c4448 + DIOCRCLRTABLES = 0xc44c443c + DIOCRCLRTSTATS = 0xc44c4441 + DIOCRDELADDRS = 0xc44c4444 + DIOCRDELTABLES = 0xc44c443e + DIOCRGETADDRS = 0xc44c4446 + DIOCRGETASTATS = 0xc44c4447 + DIOCRGETTABLES = 0xc44c443f + DIOCRGETTSTATS = 0xc44c4440 + DIOCRINADEFINE = 0xc44c444d + DIOCRSETADDRS = 0xc44c4445 + DIOCRSETTFLAGS = 0xc44c444a + DIOCRTSTADDRS = 0xc44c4449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0244459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0244414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc00c4451 + DIOCXCOMMIT = 0xc00c4452 + DIOCXROLLBACK = 0xc00c4453 DLT_ARCNET = 0x7 DLT_ATM_RFC1483 = 0xb DLT_AX25 = 0x3 @@ -186,6 +261,7 @@ const ( DLT_LOOP = 0xc DLT_MPLS = 0xdb DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b DLT_PFLOG = 0x75 DLT_PFSYNC = 0x12 DLT_PPP = 0x9 @@ -196,6 +272,23 @@ const ( DLT_RAW = 0xe DLT_SLIP = 0x8 DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c DT_BLK = 0x6 DT_CHR = 0x2 DT_DIR = 0x4 @@ -215,6 +308,8 @@ const ( EMUL_ENABLED = 0x1 EMUL_NATIVE = 0x2 ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 ETHERMIN = 0x2e ETHERMTU = 0x5dc ETHERTYPE_8023 = 0x4 @@ -267,6 +362,7 @@ const ( ETHERTYPE_DN = 0x6003 ETHERTYPE_DOGFIGHT = 0x1989 ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e ETHERTYPE_ECMA = 0x803 ETHERTYPE_ENCRYPT = 0x803d ETHERTYPE_ES = 0x805d @@ -298,6 +394,7 @@ const ( ETHERTYPE_LLDP = 0x88cc ETHERTYPE_LOGICRAFT = 0x8148 ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 ETHERTYPE_MATRA = 0x807a ETHERTYPE_MAX = 0xffff ETHERTYPE_MERIT = 0x807c @@ -326,15 +423,17 @@ const ( ETHERTYPE_NCD = 0x8149 ETHERTYPE_NESTAR = 0x8006 ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 ETHERTYPE_NOVELL = 0x8138 ETHERTYPE_NS = 0x600 ETHERTYPE_NSAT = 0x601 ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f ETHERTYPE_NTRAILER = 0x10 ETHERTYPE_OS9 = 0x7007 ETHERTYPE_OS9NET = 0x7009 ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 ETHERTYPE_PCS = 0x4242 ETHERTYPE_PLANNING = 0x8044 ETHERTYPE_PPP = 0x880b @@ -409,28 +508,40 @@ const ( ETHER_CRC_POLY_LE = 0xedb88320 ETHER_HDR_LEN = 0xe ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b ETHER_MAX_LEN = 0x5ee ETHER_MIN_LEN = 0x40 ETHER_TYPE_LEN = 0x2 ETHER_VLAN_ENCAP_LEN = 0x4 EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x7 + EVFILT_SYSCOUNT = 0x9 EVFILT_TIMER = -0x7 EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 EV_ADD = 0x1 EV_CLEAR = 0x20 EV_DELETE = 0x2 EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 EV_ENABLE = 0x4 EV_EOF = 0x8000 EV_ERROR = 0x4000 EV_FLAG1 = 0x2000 EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTPROC = 0x800 @@ -443,6 +554,7 @@ const ( F_GETFL = 0x3 F_GETLK = 0x7 F_GETOWN = 0x5 + F_ISATTY = 0xb F_OK = 0x0 F_RDLCK = 0x1 F_SETFD = 0x2 @@ -460,7 +572,6 @@ const ( IEXTEN = 0x400 IFAN_ARRIVAL = 0x0 IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 IFF_ALLMULTI = 0x200 IFF_BROADCAST = 0x2 IFF_CANTCHANGE = 0x8e52 @@ -471,12 +582,12 @@ const ( IFF_LOOPBACK = 0x8 IFF_MULTICAST = 0x8000 IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 IFF_OACTIVE = 0x400 IFF_POINTOPOINT = 0x10 IFF_PROMISC = 0x100 IFF_RUNNING = 0x40 IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 IFF_UP = 0x1 IFNAMSIZ = 0x10 IFT_1822 = 0x2 @@ -605,6 +716,7 @@ const ( IFT_LINEGROUP = 0xd2 IFT_LOCALTALK = 0x2a IFT_LOOP = 0x18 + IFT_MBIM = 0xfa IFT_MEDIAMAILOVERIP = 0x8b IFT_MFSIGLINK = 0xa7 IFT_MIOX25 = 0x26 @@ -695,6 +807,7 @@ const ( IFT_VOICEOVERCABLE = 0xc6 IFT_VOICEOVERFRAMERELAY = 0x99 IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb IFT_X213 = 0x5d IFT_X25 = 0x5 IFT_X25DDN = 0x4 @@ -729,8 +842,6 @@ const ( IPPROTO_AH = 0x33 IPPROTO_CARP = 0x70 IPPROTO_DIVERT = 0x102 - IPPROTO_DIVERT_INIT = 0x2 - IPPROTO_DIVERT_RESP = 0x1 IPPROTO_DONE = 0x101 IPPROTO_DSTOPTS = 0x3c IPPROTO_EGP = 0x8 @@ -762,9 +873,11 @@ const ( IPPROTO_RAW = 0xff IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 IPV6_AUTH_LEVEL = 0x35 IPV6_AUTOFLOWLABEL = 0x3b IPV6_CHECKSUM = 0x1a @@ -787,6 +900,7 @@ const ( IPV6_LEAVE_GROUP = 0xd IPV6_MAXHLIM = 0xff IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 IPV6_MMTU = 0x500 IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 @@ -826,12 +940,12 @@ const ( IP_DEFAULT_MULTICAST_LOOP = 0x1 IP_DEFAULT_MULTICAST_TTL = 0x1 IP_DF = 0x4000 - IP_DIVERTFL = 0x1022 IP_DROP_MEMBERSHIP = 0xd IP_ESP_NETWORK_LEVEL = 0x16 IP_ESP_TRANS_LEVEL = 0x15 IP_HDRINCL = 0x2 IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 IP_IPSECFLOWINFO = 0x24 IP_IPSEC_LOCAL_AUTH = 0x1b IP_IPSEC_LOCAL_CRED = 0x19 @@ -865,10 +979,15 @@ const ( IP_RETOPTS = 0x8 IP_RF = 0x8000 IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 IP_TOS = 0x3 IP_TTL = 0x4 ISIG = 0x80 ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 IXANY = 0x800 IXOFF = 0x400 IXON = 0x200 @@ -900,10 +1019,11 @@ const ( MAP_INHERIT_COPY = 0x1 MAP_INHERIT_NONE = 0x2 MAP_INHERIT_SHARE = 0x0 - MAP_NOEXTEND = 0x100 - MAP_NORESERVE = 0x40 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 + MAP_RENAME = 0x0 MAP_SHARED = 0x1 MAP_STACK = 0x4000 MAP_TRYFIXED = 0x0 @@ -922,6 +1042,7 @@ const ( MNT_NOATIME = 0x8000 MNT_NODEV = 0x10 MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 MNT_NOSUID = 0x8 MNT_NOWAIT = 0x2 MNT_QUOTA = 0x2000 @@ -929,13 +1050,29 @@ const ( MNT_RELOAD = 0x40000 MNT_ROOTFS = 0x4000 MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 MNT_SYNCHRONOUS = 0x2 MNT_UPDATE = 0x10000 MNT_VISFLAGMASK = 0x400ffff MNT_WAIT = 0x1 MNT_WANTRDWR = 0x2000000 MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 MSG_CTRUNC = 0x20 MSG_DONTROUTE = 0x4 MSG_DONTWAIT = 0x80 @@ -946,6 +1083,7 @@ const ( MSG_PEEK = 0x2 MSG_TRUNC = 0x10 MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 MS_ASYNC = 0x1 MS_INVALIDATE = 0x4 MS_SYNC = 0x2 @@ -953,12 +1091,16 @@ const ( NET_RT_DUMP = 0x1 NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x6 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 NFDBITS = 0x20 NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 NOTE_CHILD = 0x4 NOTE_DELETE = 0x1 NOTE_EOF = 0x2 @@ -968,6 +1110,7 @@ const ( NOTE_FORK = 0x40000000 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 NOTE_PCTRLMASK = 0xf0000000 NOTE_PDATAMASK = 0xfffff NOTE_RENAME = 0x20 @@ -977,11 +1120,13 @@ const ( NOTE_TRUNCATE = 0x80 NOTE_WRITE = 0x2 OCRNL = 0x10 + OLCUC = 0x20 ONLCR = 0x2 ONLRET = 0x80 ONOCR = 0x40 ONOEOT = 0x8 OPOST = 0x1 + OXTABS = 0x4 O_ACCMODE = 0x3 O_APPEND = 0x8 O_ASYNC = 0x40 @@ -1015,7 +1160,6 @@ const ( PROT_NONE = 0x0 PROT_READ = 0x1 PROT_WRITE = 0x2 - PT_MASK = 0x3ff000 RLIMIT_CORE = 0x4 RLIMIT_CPU = 0x0 RLIMIT_DATA = 0x2 @@ -1027,19 +1171,25 @@ const ( RLIMIT_STACK = 0x3 RLIM_INFINITY = 0x7fffffffffffffff RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb RTAX_BRD = 0x7 + RTAX_DNS = 0xc RTAX_DST = 0x0 RTAX_GATEWAY = 0x1 RTAX_GENMASK = 0x3 RTAX_IFA = 0x5 RTAX_IFP = 0x4 RTAX_LABEL = 0xa - RTAX_MAX = 0xb + RTAX_MAX = 0xf RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe RTAX_SRC = 0x8 RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 RTA_BRD = 0x80 + RTA_DNS = 0x1000 RTA_DST = 0x1 RTA_GATEWAY = 0x2 RTA_GENMASK = 0x8 @@ -1047,49 +1197,57 @@ const ( RTA_IFP = 0x10 RTA_LABEL = 0x400 RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 RTA_SRC = 0x100 RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 RTF_CLONED = 0x10000 RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 RTF_DONE = 0x40 RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x10f808 + RTF_FMASK = 0x110fc08 RTF_GATEWAY = 0x2 RTF_HOST = 0x4 RTF_LLINFO = 0x400 - RTF_MASK = 0x80 + RTF_LOCAL = 0x200000 RTF_MODIFIED = 0x20 RTF_MPATH = 0x40000 RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 RTF_PERMANENT_ARP = 0x2000 RTF_PROTO1 = 0x8000 RTF_PROTO2 = 0x4000 RTF_PROTO3 = 0x2000 RTF_REJECT = 0x8 - RTF_SOURCE = 0x20000 RTF_STATIC = 0x800 - RTF_TUNNEL = 0x100000 RTF_UP = 0x1 RTF_USETRAILERS = 0x8000 - RTF_XRESOLVE = 0x200 + RTM_80211INFO = 0x15 RTM_ADD = 0x1 + RTM_BFD = 0x12 RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 RTM_DELADDR = 0xd RTM_DELETE = 0x2 RTM_DESYNC = 0x10 RTM_GET = 0x4 RTM_IFANNOUNCE = 0xf RTM_IFINFO = 0xe - RTM_LOCK = 0x8 + RTM_INVALIDATE = 0x11 RTM_LOSING = 0x5 RTM_MAXSIZE = 0x800 RTM_MISS = 0x7 RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 + RTM_SOURCE = 0x16 RTM_VERSION = 0x5 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 @@ -1099,67 +1257,74 @@ const ( RTV_RTTVAR = 0x80 RTV_SPIPE = 0x10 RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff RT_TABLEID_MAX = 0xff RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 RUSAGE_THREAD = 0x1 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 SIOCADDMULTI = 0x80206931 SIOCAIFADDR = 0x8040691a SIOCAIFGROUP = 0x80246987 - SIOCALIFADDR = 0x8218691c SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8054693c - SIOCBRDGADDS = 0x80546941 - SIOCBRDGARL = 0x806e694d + SIOCBRDGADD = 0x805c693c + SIOCBRDGADDL = 0x805c6949 + SIOCBRDGADDS = 0x805c6941 + SIOCBRDGARL = 0x808c694d SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8054693d - SIOCBRDGDELS = 0x80546942 - SIOCBRDGFLUSH = 0x80546948 - SIOCBRDGFRL = 0x806e694e + SIOCBRDGDEL = 0x805c693d + SIOCBRDGDELS = 0x805c6942 + SIOCBRDGFLUSH = 0x805c6948 + SIOCBRDGFRL = 0x808c694e SIOCBRDGGCACHE = 0xc0146941 SIOCBRDGGFD = 0xc0146952 SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc054693e + SIOCBRDGGIFFLGS = 0xc05c693e SIOCBRDGGMA = 0xc0146953 SIOCBRDGGPARAM = 0xc03c6958 SIOCBRDGGPRI = 0xc0146950 SIOCBRDGGRL = 0xc028694f - SIOCBRDGGSIFS = 0xc054693c SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0546942 + SIOCBRDGIFS = 0xc05c6942 SIOCBRDGRTS = 0xc0186943 SIOCBRDGSADDR = 0xc1286944 SIOCBRDGSCACHE = 0x80146940 SIOCBRDGSFD = 0x80146952 SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80546955 - SIOCBRDGSIFFLGS = 0x8054693f - SIOCBRDGSIFPRIO = 0x80546954 + SIOCBRDGSIFCOST = 0x805c6955 + SIOCBRDGSIFFLGS = 0x805c693f + SIOCBRDGSIFPRIO = 0x805c6954 + SIOCBRDGSIFPROT = 0x805c694a SIOCBRDGSMA = 0x80146953 SIOCBRDGSPRI = 0x80146950 SIOCBRDGSPROTO = 0x8014695a SIOCBRDGSTO = 0x80146945 SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 SIOCDELMULTI = 0x80206932 SIOCDIFADDR = 0x80206919 SIOCDIFGROUP = 0x80246989 + SIOCDIFPARENT = 0x802069b4 SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8218691e + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af SIOCGETKALIVE = 0xc01869a4 SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae SIOCGETPFLOW = 0xc02069fe SIOCGETPFSYNC = 0xc02069f8 SIOCGETSGCNT = 0xc0147534 SIOCGETVIFCNT = 0xc0147533 SIOCGETVLAN = 0xc0206990 - SIOCGHIWAT = 0x40047301 SIOCGIFADDR = 0xc0206921 - SIOCGIFASYNCMAP = 0xc020697c SIOCGIFBRDADDR = 0xc0206923 SIOCGIFCONF = 0xc0086924 SIOCGIFDATA = 0xc020691b @@ -1168,40 +1333,53 @@ const ( SIOCGIFFLAGS = 0xc0206911 SIOCGIFGATTR = 0xc024698b SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc024698d SIOCGIFGMEMB = 0xc024698a SIOCGIFGROUP = 0xc0246988 SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFMEDIA = 0xc0286936 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0386938 SIOCGIFMETRIC = 0xc0206917 SIOCGIFMTU = 0xc020697e SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 SIOCGIFPRIORITY = 0xc020699c - SIOCGIFPSRCADDR = 0xc0206947 SIOCGIFRDOMAIN = 0xc02069a0 SIOCGIFRTLABEL = 0xc0206983 - SIOCGIFTIMESLOT = 0xc0206986 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFADDR = 0xc218691d SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 SIOCGLIFPHYRTABLE = 0xc02069a2 SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac SIOCIFCREATE = 0x8020697a SIOCIFDESTROY = 0x80206979 SIOCIFGCLONERS = 0xc00c6978 SIOCSETKALIVE = 0x801869a3 SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad SIOCSETPFLOW = 0x802069fd SIOCSETPFSYNC = 0x802069f7 SIOCSETVLAN = 0x8020698f - SIOCSHIWAT = 0x80047300 SIOCSIFADDR = 0x8020690c - SIOCSIFASYNCMAP = 0x8020697d SIOCSIFBRDADDR = 0x80206913 SIOCSIFDESCR = 0x80206980 SIOCSIFDSTADDR = 0x8020690e @@ -1209,25 +1387,37 @@ const ( SIOCSIFGATTR = 0x8024698c SIOCSIFGENERIC = 0x80206939 SIOCSIFLLADDR = 0x8020691f - SIOCSIFMEDIA = 0xc0206935 + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 SIOCSIFMETRIC = 0x80206918 SIOCSIFMTU = 0x8020697f SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 SIOCSIFPRIORITY = 0x8020699b SIOCSIFRDOMAIN = 0x8020699f SIOCSIFRTLABEL = 0x80206982 - SIOCSIFTIMESLOT = 0x80206985 SIOCSIFXFLAGS = 0x8020699d SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 SIOCSLIFPHYRTABLE = 0x802069a1 SIOCSLIFPHYTTL = 0x802069a8 - SIOCSLOWAT = 0x80047302 SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 SOCK_RAW = 0x3 SOCK_RDM = 0x4 SOCK_SEQPACKET = 0x5 @@ -1238,6 +1428,7 @@ const ( SO_BINDANY = 0x1000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1245,6 +1436,7 @@ const ( SO_NETPROC = 0x1020 SO_OOBINLINE = 0x100 SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 SO_RCVBUF = 0x1002 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 @@ -1258,6 +1450,7 @@ const ( SO_TIMESTAMP = 0x800 SO_TYPE = 0x1008 SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 S_BLKSIZE = 0x200 S_IEXEC = 0x40 S_IFBLK = 0x6000 @@ -1287,9 +1480,24 @@ const ( S_IXOTH = 0x1 S_IXUSR = 0x40 TCIFLUSH = 0x1 + TCIOFF = 0x3 TCIOFLUSH = 0x3 + TCION = 0x4 TCOFLUSH = 0x2 - TCP_MAXBURST = 0x4 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 TCP_MAXSEG = 0x2 TCP_MAXWIN = 0xffff TCP_MAX_SACK = 0x3 @@ -1298,11 +1506,15 @@ const ( TCP_MSS = 0x200 TCP_NODELAY = 0x1 TCP_NOPUSH = 0x10 - TCP_NSTATES = 0xb + TCP_SACKHOLE_LIMIT = 0x80 TCP_SACK_ENABLE = 0x8 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d TIOCCONS = 0x80047462 TIOCDRAIN = 0x2000745e TIOCEXCL = 0x2000740d @@ -1357,17 +1569,21 @@ const ( TIOCSETAF = 0x802c7416 TIOCSETAW = 0x802c7415 TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c TIOCSFLAGS = 0x8004745c TIOCSIG = 0x8004745f TIOCSPGRP = 0x80047476 TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 + TIOCSTAT = 0x20007465 TIOCSTOP = 0x2000746f TIOCSTSTAMP = 0x8008745a TIOCSWINSZ = 0x80087467 TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 VDISCARD = 0xf VDSUSP = 0xb VEOF = 0x0 @@ -1378,6 +1594,19 @@ const ( VKILL = 0x5 VLNEXT = 0xe VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 VQUIT = 0x9 VREPRINT = 0x6 VSTART = 0xc @@ -1390,8 +1619,8 @@ const ( WCONTINUED = 0x8 WCOREFLAG = 0x80 WNOHANG = 0x1 - WSTOPPED = 0x7f WUNTRACED = 0x2 + XCASE = 0x1000000 ) // Errors @@ -1405,6 +1634,7 @@ const ( EALREADY = syscall.Errno(0x25) EAUTH = syscall.Errno(0x50) EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) EBADRPC = syscall.Errno(0x48) EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x58) @@ -1431,7 +1661,7 @@ const ( EIPSEC = syscall.Errno(0x52) EISCONN = syscall.Errno(0x38) EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5b) + ELAST = syscall.Errno(0x5f) ELOOP = syscall.Errno(0x3e) EMEDIUMTYPE = syscall.Errno(0x56) EMFILE = syscall.Errno(0x18) @@ -1459,12 +1689,14 @@ const ( ENOTCONN = syscall.Errno(0x39) ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) ENOTSOCK = syscall.Errno(0x26) ENOTSUP = syscall.Errno(0x5b) ENOTTY = syscall.Errno(0x19) ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x2d) EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x2e) EPIPE = syscall.Errno(0x20) @@ -1472,6 +1704,7 @@ const ( EPROCUNAVAIL = syscall.Errno(0x4c) EPROGMISMATCH = syscall.Errno(0x4b) EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) EPROTONOSUPPORT = syscall.Errno(0x2b) EPROTOTYPE = syscall.Errno(0x29) ERANGE = syscall.Errno(0x22) @@ -1568,7 +1801,7 @@ var errorList = [...]struct { {32, "EPIPE", "broken pipe"}, {33, "EDOM", "numerical argument out of domain"}, {34, "ERANGE", "result too large"}, - {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {35, "EAGAIN", "resource temporarily unavailable"}, {36, "EINPROGRESS", "operation now in progress"}, {37, "EALREADY", "operation already in progress"}, {38, "ENOTSOCK", "socket operation on non-socket"}, @@ -1624,7 +1857,11 @@ var errorList = [...]struct { {88, "ECANCELED", "operation canceled"}, {89, "EIDRM", "identifier removed"}, {90, "ENOMSG", "no message of desired type"}, - {91, "ELAST", "not supported"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, } // Signal table @@ -1638,7 +1875,7 @@ var signalList = [...]struct { {3, "SIGQUIT", "quit"}, {4, "SIGILL", "illegal instruction"}, {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, + {6, "SIGIOT", "abort trap"}, {7, "SIGEMT", "EMT trap"}, {8, "SIGFPE", "floating point exception"}, {9, "SIGKILL", "killed"}, @@ -1665,4 +1902,5 @@ var signalList = [...]struct { {30, "SIGUSR1", "user defined signal 1"}, {31, "SIGUSR2", "user defined signal 2"}, {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, } diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go index 25cb609481..6015fcb2bf 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go @@ -109,6 +109,15 @@ const ( BPF_DIRECTION_IN = 0x1 BPF_DIRECTION_OUT = 0x2 BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -137,6 +146,7 @@ const ( BPF_OR = 0x40 BPF_RELEASE = 0x30bb6 BPF_RET = 0x6 + BPF_RND = 0xc0 BPF_RSH = 0x70 BPF_ST = 0x2 BPF_STX = 0x3 @@ -177,7 +187,65 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0xc CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 DLT_ARCNET = 0x7 DLT_ATM_RFC1483 = 0xb DLT_AX25 = 0x3 @@ -240,6 +308,8 @@ const ( EMUL_ENABLED = 0x1 EMUL_NATIVE = 0x2 ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 ETHERMIN = 0x2e ETHERMTU = 0x5dc ETHERTYPE_8023 = 0x4 @@ -292,6 +362,7 @@ const ( ETHERTYPE_DN = 0x6003 ETHERTYPE_DOGFIGHT = 0x1989 ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e ETHERTYPE_ECMA = 0x803 ETHERTYPE_ENCRYPT = 0x803d ETHERTYPE_ES = 0x805d @@ -323,6 +394,7 @@ const ( ETHERTYPE_LLDP = 0x88cc ETHERTYPE_LOGICRAFT = 0x8148 ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 ETHERTYPE_MATRA = 0x807a ETHERTYPE_MAX = 0xffff ETHERTYPE_MERIT = 0x807c @@ -351,15 +423,17 @@ const ( ETHERTYPE_NCD = 0x8149 ETHERTYPE_NESTAR = 0x8006 ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 ETHERTYPE_NOVELL = 0x8138 ETHERTYPE_NS = 0x600 ETHERTYPE_NSAT = 0x601 ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f ETHERTYPE_NTRAILER = 0x10 ETHERTYPE_OS9 = 0x7007 ETHERTYPE_OS9NET = 0x7009 ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 ETHERTYPE_PCS = 0x4242 ETHERTYPE_PLANNING = 0x8044 ETHERTYPE_PPP = 0x880b @@ -441,10 +515,11 @@ const ( ETHER_VLAN_ENCAP_LEN = 0x4 EVFILT_AIO = -0x3 EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x8 + EVFILT_SYSCOUNT = 0x9 EVFILT_TIMER = -0x7 EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 @@ -466,7 +541,7 @@ const ( EV_FLAG1 = 0x2000 EV_ONESHOT = 0x10 EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTPROC = 0x800 @@ -732,6 +807,7 @@ const ( IFT_VOICEOVERCABLE = 0xc6 IFT_VOICEOVERFRAMERELAY = 0x99 IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb IFT_X213 = 0x5d IFT_X25 = 0x5 IFT_X25DDN = 0x4 @@ -797,9 +873,11 @@ const ( IPPROTO_RAW = 0xff IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 IPV6_AUTH_LEVEL = 0x35 IPV6_AUTOFLOWLABEL = 0x3b IPV6_CHECKSUM = 0x1a @@ -906,6 +984,9 @@ const ( IP_TTL = 0x4 ISIG = 0x80 ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 IUCLC = 0x1000 IXANY = 0x800 IXOFF = 0x400 @@ -970,12 +1051,26 @@ const ( MNT_ROOTFS = 0x4000 MNT_SOFTDEP = 0x4000000 MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 MNT_SYNCHRONOUS = 0x2 MNT_UPDATE = 0x10000 MNT_VISFLAGMASK = 0x400ffff MNT_WAIT = 0x1 MNT_WANTRDWR = 0x2000000 MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" MSG_BCAST = 0x100 MSG_CMSG_CLOEXEC = 0x800 MSG_CTRUNC = 0x20 @@ -988,6 +1083,7 @@ const ( MSG_PEEK = 0x2 MSG_TRUNC = 0x10 MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 MS_ASYNC = 0x1 MS_INVALIDATE = 0x4 MS_SYNC = 0x2 @@ -996,7 +1092,8 @@ const ( NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x7 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 NFDBITS = 0x20 @@ -1013,6 +1110,7 @@ const ( NOTE_FORK = 0x40000000 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 NOTE_PCTRLMASK = 0xf0000000 NOTE_PDATAMASK = 0xfffff NOTE_RENAME = 0x20 @@ -1130,9 +1228,11 @@ const ( RTF_STATIC = 0x800 RTF_UP = 0x1 RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 RTM_ADD = 0x1 RTM_BFD = 0x12 RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 RTM_DELADDR = 0xd RTM_DELETE = 0x2 RTM_DESYNC = 0x10 @@ -1140,7 +1240,6 @@ const ( RTM_IFANNOUNCE = 0xf RTM_IFINFO = 0xe RTM_INVALIDATE = 0x11 - RTM_LOCK = 0x8 RTM_LOSING = 0x5 RTM_MAXSIZE = 0x800 RTM_MISS = 0x7 @@ -1148,7 +1247,7 @@ const ( RTM_PROPOSAL = 0x13 RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 + RTM_SOURCE = 0x16 RTM_VERSION = 0x5 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 @@ -1166,6 +1265,9 @@ const ( RUSAGE_THREAD = 0x1 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1182,35 +1284,37 @@ const ( SIOCBRDGDELS = 0x80606942 SIOCBRDGFLUSH = 0x80606948 SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0186941 - SIOCBRDGGFD = 0xc0186952 - SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGMA = 0xc0146953 SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGPRI = 0xc0146950 SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0186946 + SIOCBRDGGTO = 0xc0146946 SIOCBRDGIFS = 0xc0606942 SIOCBRDGRTS = 0xc0206943 SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80186940 - SIOCBRDGSFD = 0x80186952 - SIOCBRDGSHT = 0x80186951 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 SIOCBRDGSIFCOST = 0x80606955 SIOCBRDGSIFFLGS = 0x8060693f SIOCBRDGSIFPRIO = 0x80606954 SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80186953 - SIOCBRDGSPRI = 0x80186950 - SIOCBRDGSPROTO = 0x8018695a - SIOCBRDGSTO = 0x80186945 - SIOCBRDGSTXHC = 0x80186959 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 SIOCDELMULTI = 0x80206932 SIOCDIFADDR = 0x80206919 SIOCDIFGROUP = 0x80286989 SIOCDIFPARENT = 0x802069b4 SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de SIOCDVNETID = 0x802069af SIOCGETKALIVE = 0xc01869a4 SIOCGETLABEL = 0x8020699a @@ -1229,6 +1333,7 @@ const ( SIOCGIFFLAGS = 0xc0206911 SIOCGIFGATTR = 0xc028698b SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d SIOCGIFGMEMB = 0xc028698a SIOCGIFGROUP = 0xc0286988 SIOCGIFHARDMTU = 0xc02069a5 @@ -1243,13 +1348,21 @@ const ( SIOCGIFRDOMAIN = 0xc02069a0 SIOCGIFRTLABEL = 0xc0206983 SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 SIOCGIFXFLAGS = 0xc020699e SIOCGLIFPHYADDR = 0xc218694b SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 SIOCGLIFPHYRTABLE = 0xc02069a2 SIOCGLIFPHYTTL = 0xc02069a9 SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 SIOCGUMBINFO = 0xc02069be SIOCGUMBPARAM = 0xc02069c0 SIOCGVH = 0xc02069f6 @@ -1287,19 +1400,20 @@ const ( SIOCSIFXFLAGS = 0x8020699d SIOCSLIFPHYADDR = 0x8218694a SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 SIOCSLIFPHYRTABLE = 0x802069a1 SIOCSLIFPHYTTL = 0x802069a8 SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 SIOCSUMBPARAM = 0x802069bf SIOCSVH = 0xc02069f5 SIOCSVNETFLOWID = 0x802069c3 SIOCSVNETID = 0x802069a6 - SIOCSWGDPID = 0xc018695b - SIOCSWGMAXFLOW = 0xc0186960 - SIOCSWGMAXGROUP = 0xc018695d - SIOCSWSDPID = 0x8018695c - SIOCSWSPORTNO = 0xc060695f SOCK_CLOEXEC = 0x8000 SOCK_DGRAM = 0x2 SOCK_DNS = 0x1000 @@ -1314,6 +1428,7 @@ const ( SO_BINDANY = 0x1000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1321,6 +1436,7 @@ const ( SO_NETPROC = 0x1020 SO_OOBINLINE = 0x100 SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 SO_RCVBUF = 0x1002 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 @@ -1370,7 +1486,18 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 - TCP_MAXBURST = 0x4 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 TCP_MAXSEG = 0x2 TCP_MAXWIN = 0xffff TCP_MAX_SACK = 0x3 @@ -1379,8 +1506,11 @@ const ( TCP_MSS = 0x200 TCP_NODELAY = 0x1 TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 TCP_SACK_ENABLE = 0x8 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 TIOCCHKVERAUTH = 0x2000741e @@ -1445,7 +1575,6 @@ const ( TIOCSPGRP = 0x80047476 TIOCSTART = 0x2000746e TIOCSTAT = 0x20007465 - TIOCSTI = 0x80017472 TIOCSTOP = 0x2000746f TIOCSTSTAMP = 0x8008745a TIOCSWINSZ = 0x80087467 @@ -1467,7 +1596,8 @@ const ( VMIN = 0x10 VM_ANONMIN = 0x7 VM_LOADAVG = 0x2 - VM_MAXID = 0xc + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd VM_MAXSLP = 0xa VM_METER = 0x1 VM_NKMEMPAGES = 0x6 @@ -1745,7 +1875,7 @@ var signalList = [...]struct { {3, "SIGQUIT", "quit"}, {4, "SIGILL", "illegal instruction"}, {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, + {6, "SIGIOT", "abort trap"}, {7, "SIGEMT", "EMT trap"}, {8, "SIGFPE", "floating point exception"}, {9, "SIGKILL", "killed"}, @@ -1772,4 +1902,5 @@ var signalList = [...]struct { {30, "SIGUSR1", "user defined signal 1"}, {31, "SIGUSR2", "user defined signal 2"}, {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, } diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go index aef6c08560..8d44955e44 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go @@ -46,6 +46,7 @@ const ( AF_SNA = 0xb AF_UNIX = 0x1 AF_UNSPEC = 0x0 + ALTWERASE = 0x200 ARPHRD_ETHER = 0x1 ARPHRD_FRELAY = 0xf ARPHRD_IEEE1394 = 0x18 @@ -82,7 +83,7 @@ const ( BIOCGFILDROP = 0x40044278 BIOCGHDRCMPLT = 0x40044274 BIOCGRSIG = 0x40044273 - BIOCGRTIMEOUT = 0x400c426e + BIOCGRTIMEOUT = 0x4010426e BIOCGSTATS = 0x4008426f BIOCIMMEDIATE = 0x80044270 BIOCLOCK = 0x20004276 @@ -96,7 +97,7 @@ const ( BIOCSFILDROP = 0x80044279 BIOCSHDRCMPLT = 0x80044275 BIOCSRSIG = 0x80044272 - BIOCSRTIMEOUT = 0x800c426d + BIOCSRTIMEOUT = 0x8010426d BIOCVERSION = 0x40044271 BPF_A = 0x10 BPF_ABS = 0x20 @@ -108,6 +109,15 @@ const ( BPF_DIRECTION_IN = 0x1 BPF_DIRECTION_OUT = 0x2 BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -136,6 +146,7 @@ const ( BPF_OR = 0x40 BPF_RELEASE = 0x30bb6 BPF_RET = 0x6 + BPF_RND = 0xc0 BPF_RSH = 0x70 BPF_ST = 0x2 BPF_STX = 0x3 @@ -147,6 +158,12 @@ const ( BRKINT = 0x2 CFLUSH = 0xf CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 CPUSTATES = 0x6 CP_IDLE = 0x5 CP_INTR = 0x4 @@ -170,7 +187,65 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0xc CTL_NET = 0x4 + DIOCADDQUEUE = 0xc100445d + DIOCADDRULE = 0xcce04404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcce0441a + DIOCCLRIFFLAG = 0xc024445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0d04412 + DIOCCLRSTATUS = 0xc0244416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1084460 + DIOCGETQUEUE = 0xc100445f + DIOCGETQUEUES = 0xc100445e + DIOCGETRULE = 0xcce04407 + DIOCGETRULES = 0xcce04406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0084454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0084419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0244457 + DIOCKILLSRCNODES = 0xc068445b + DIOCKILLSTATES = 0xc0d04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc44c4443 + DIOCRADDTABLES = 0xc44c443d + DIOCRCLRADDRS = 0xc44c4442 + DIOCRCLRASTATS = 0xc44c4448 + DIOCRCLRTABLES = 0xc44c443c + DIOCRCLRTSTATS = 0xc44c4441 + DIOCRDELADDRS = 0xc44c4444 + DIOCRDELTABLES = 0xc44c443e + DIOCRGETADDRS = 0xc44c4446 + DIOCRGETASTATS = 0xc44c4447 + DIOCRGETTABLES = 0xc44c443f + DIOCRGETTSTATS = 0xc44c4440 + DIOCRINADEFINE = 0xc44c444d + DIOCRSETADDRS = 0xc44c4445 + DIOCRSETTFLAGS = 0xc44c444a + DIOCRTSTADDRS = 0xc44c4449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0244459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0244414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc00c4451 + DIOCXCOMMIT = 0xc00c4452 + DIOCXROLLBACK = 0xc00c4453 DLT_ARCNET = 0x7 DLT_ATM_RFC1483 = 0xb DLT_AX25 = 0x3 @@ -186,6 +261,7 @@ const ( DLT_LOOP = 0xc DLT_MPLS = 0xdb DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b DLT_PFLOG = 0x75 DLT_PFSYNC = 0x12 DLT_PPP = 0x9 @@ -196,6 +272,23 @@ const ( DLT_RAW = 0xe DLT_SLIP = 0x8 DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c DT_BLK = 0x6 DT_CHR = 0x2 DT_DIR = 0x4 @@ -215,6 +308,8 @@ const ( EMUL_ENABLED = 0x1 EMUL_NATIVE = 0x2 ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 ETHERMIN = 0x2e ETHERMTU = 0x5dc ETHERTYPE_8023 = 0x4 @@ -267,6 +362,7 @@ const ( ETHERTYPE_DN = 0x6003 ETHERTYPE_DOGFIGHT = 0x1989 ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e ETHERTYPE_ECMA = 0x803 ETHERTYPE_ENCRYPT = 0x803d ETHERTYPE_ES = 0x805d @@ -298,6 +394,7 @@ const ( ETHERTYPE_LLDP = 0x88cc ETHERTYPE_LOGICRAFT = 0x8148 ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 ETHERTYPE_MATRA = 0x807a ETHERTYPE_MAX = 0xffff ETHERTYPE_MERIT = 0x807c @@ -326,15 +423,17 @@ const ( ETHERTYPE_NCD = 0x8149 ETHERTYPE_NESTAR = 0x8006 ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 ETHERTYPE_NOVELL = 0x8138 ETHERTYPE_NS = 0x600 ETHERTYPE_NSAT = 0x601 ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f ETHERTYPE_NTRAILER = 0x10 ETHERTYPE_OS9 = 0x7007 ETHERTYPE_OS9NET = 0x7009 ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 ETHERTYPE_PCS = 0x4242 ETHERTYPE_PLANNING = 0x8044 ETHERTYPE_PPP = 0x880b @@ -409,28 +508,40 @@ const ( ETHER_CRC_POLY_LE = 0xedb88320 ETHER_HDR_LEN = 0xe ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b ETHER_MAX_LEN = 0x5ee ETHER_MIN_LEN = 0x40 ETHER_TYPE_LEN = 0x2 ETHER_VLAN_ENCAP_LEN = 0x4 EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x7 + EVFILT_SYSCOUNT = 0x9 EVFILT_TIMER = -0x7 EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 EV_ADD = 0x1 EV_CLEAR = 0x20 EV_DELETE = 0x2 EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 EV_ENABLE = 0x4 EV_EOF = 0x8000 EV_ERROR = 0x4000 EV_FLAG1 = 0x2000 EV_ONESHOT = 0x10 - EV_SYSFLAGS = 0xf000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTPROC = 0x800 @@ -443,6 +554,8 @@ const ( F_GETFL = 0x3 F_GETLK = 0x7 F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 F_RDLCK = 0x1 F_SETFD = 0x2 F_SETFL = 0x4 @@ -459,7 +572,6 @@ const ( IEXTEN = 0x400 IFAN_ARRIVAL = 0x0 IFAN_DEPARTURE = 0x1 - IFA_ROUTE = 0x1 IFF_ALLMULTI = 0x200 IFF_BROADCAST = 0x2 IFF_CANTCHANGE = 0x8e52 @@ -470,12 +582,12 @@ const ( IFF_LOOPBACK = 0x8 IFF_MULTICAST = 0x8000 IFF_NOARP = 0x80 - IFF_NOTRAILERS = 0x20 IFF_OACTIVE = 0x400 IFF_POINTOPOINT = 0x10 IFF_PROMISC = 0x100 IFF_RUNNING = 0x40 IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 IFF_UP = 0x1 IFNAMSIZ = 0x10 IFT_1822 = 0x2 @@ -604,6 +716,7 @@ const ( IFT_LINEGROUP = 0xd2 IFT_LOCALTALK = 0x2a IFT_LOOP = 0x18 + IFT_MBIM = 0xfa IFT_MEDIAMAILOVERIP = 0x8b IFT_MFSIGLINK = 0xa7 IFT_MIOX25 = 0x26 @@ -694,6 +807,7 @@ const ( IFT_VOICEOVERCABLE = 0xc6 IFT_VOICEOVERFRAMERELAY = 0x99 IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb IFT_X213 = 0x5d IFT_X25 = 0x5 IFT_X25DDN = 0x4 @@ -728,8 +842,6 @@ const ( IPPROTO_AH = 0x33 IPPROTO_CARP = 0x70 IPPROTO_DIVERT = 0x102 - IPPROTO_DIVERT_INIT = 0x2 - IPPROTO_DIVERT_RESP = 0x1 IPPROTO_DONE = 0x101 IPPROTO_DSTOPTS = 0x3c IPPROTO_EGP = 0x8 @@ -761,9 +873,11 @@ const ( IPPROTO_RAW = 0xff IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 IPV6_AUTH_LEVEL = 0x35 IPV6_AUTOFLOWLABEL = 0x3b IPV6_CHECKSUM = 0x1a @@ -786,6 +900,7 @@ const ( IPV6_LEAVE_GROUP = 0xd IPV6_MAXHLIM = 0xff IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 IPV6_MMTU = 0x500 IPV6_MULTICAST_HOPS = 0xa IPV6_MULTICAST_IF = 0x9 @@ -825,12 +940,12 @@ const ( IP_DEFAULT_MULTICAST_LOOP = 0x1 IP_DEFAULT_MULTICAST_TTL = 0x1 IP_DF = 0x4000 - IP_DIVERTFL = 0x1022 IP_DROP_MEMBERSHIP = 0xd IP_ESP_NETWORK_LEVEL = 0x16 IP_ESP_TRANS_LEVEL = 0x15 IP_HDRINCL = 0x2 IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 IP_IPSECFLOWINFO = 0x24 IP_IPSEC_LOCAL_AUTH = 0x1b IP_IPSEC_LOCAL_CRED = 0x19 @@ -864,10 +979,15 @@ const ( IP_RETOPTS = 0x8 IP_RF = 0x8000 IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 IP_TOS = 0x3 IP_TTL = 0x4 ISIG = 0x80 ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 IXANY = 0x800 IXOFF = 0x400 IXON = 0x200 @@ -922,6 +1042,7 @@ const ( MNT_NOATIME = 0x8000 MNT_NODEV = 0x10 MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 MNT_NOSUID = 0x8 MNT_NOWAIT = 0x2 MNT_QUOTA = 0x2000 @@ -929,12 +1050,27 @@ const ( MNT_RELOAD = 0x40000 MNT_ROOTFS = 0x4000 MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 MNT_SYNCHRONOUS = 0x2 MNT_UPDATE = 0x10000 MNT_VISFLAGMASK = 0x400ffff MNT_WAIT = 0x1 MNT_WANTRDWR = 0x2000000 MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" MSG_BCAST = 0x100 MSG_CMSG_CLOEXEC = 0x800 MSG_CTRUNC = 0x20 @@ -947,6 +1083,7 @@ const ( MSG_PEEK = 0x2 MSG_TRUNC = 0x10 MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 MS_ASYNC = 0x1 MS_INVALIDATE = 0x4 MS_SYNC = 0x2 @@ -954,12 +1091,16 @@ const ( NET_RT_DUMP = 0x1 NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 - NET_RT_MAXID = 0x6 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 NFDBITS = 0x20 NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 NOTE_CHILD = 0x4 NOTE_DELETE = 0x1 NOTE_EOF = 0x2 @@ -969,6 +1110,7 @@ const ( NOTE_FORK = 0x40000000 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 NOTE_PCTRLMASK = 0xf0000000 NOTE_PDATAMASK = 0xfffff NOTE_RENAME = 0x20 @@ -978,11 +1120,13 @@ const ( NOTE_TRUNCATE = 0x80 NOTE_WRITE = 0x2 OCRNL = 0x10 + OLCUC = 0x20 ONLCR = 0x2 ONLRET = 0x80 ONOCR = 0x40 ONOEOT = 0x8 OPOST = 0x1 + OXTABS = 0x4 O_ACCMODE = 0x3 O_APPEND = 0x8 O_ASYNC = 0x40 @@ -1027,19 +1171,25 @@ const ( RLIMIT_STACK = 0x3 RLIM_INFINITY = 0x7fffffffffffffff RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb RTAX_BRD = 0x7 + RTAX_DNS = 0xc RTAX_DST = 0x0 RTAX_GATEWAY = 0x1 RTAX_GENMASK = 0x3 RTAX_IFA = 0x5 RTAX_IFP = 0x4 RTAX_LABEL = 0xa - RTAX_MAX = 0xb + RTAX_MAX = 0xf RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe RTAX_SRC = 0x8 RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 RTA_BRD = 0x80 + RTA_DNS = 0x1000 RTA_DST = 0x1 RTA_GATEWAY = 0x2 RTA_GENMASK = 0x8 @@ -1047,24 +1197,29 @@ const ( RTA_IFP = 0x10 RTA_LABEL = 0x400 RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 RTA_SRC = 0x100 RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 RTF_BLACKHOLE = 0x1000 RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 RTF_CLONED = 0x10000 RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 RTF_DONE = 0x40 RTF_DYNAMIC = 0x10 - RTF_FMASK = 0x70f808 + RTF_FMASK = 0x110fc08 RTF_GATEWAY = 0x2 RTF_HOST = 0x4 RTF_LLINFO = 0x400 RTF_LOCAL = 0x200000 - RTF_MASK = 0x80 RTF_MODIFIED = 0x20 RTF_MPATH = 0x40000 RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 RTF_PERMANENT_ARP = 0x2000 RTF_PROTO1 = 0x8000 RTF_PROTO2 = 0x4000 @@ -1073,23 +1228,26 @@ const ( RTF_STATIC = 0x800 RTF_UP = 0x1 RTF_USETRAILERS = 0x8000 - RTF_XRESOLVE = 0x200 + RTM_80211INFO = 0x15 RTM_ADD = 0x1 + RTM_BFD = 0x12 RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 RTM_DELADDR = 0xd RTM_DELETE = 0x2 RTM_DESYNC = 0x10 RTM_GET = 0x4 RTM_IFANNOUNCE = 0xf RTM_IFINFO = 0xe - RTM_LOCK = 0x8 + RTM_INVALIDATE = 0x11 RTM_LOSING = 0x5 RTM_MAXSIZE = 0x800 RTM_MISS = 0x7 RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 + RTM_SOURCE = 0x16 RTM_VERSION = 0x5 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 @@ -1099,67 +1257,74 @@ const ( RTV_RTTVAR = 0x80 RTV_SPIPE = 0x10 RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff RT_TABLEID_MAX = 0xff RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 RUSAGE_THREAD = 0x1 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 SIOCADDMULTI = 0x80206931 SIOCAIFADDR = 0x8040691a SIOCAIFGROUP = 0x80246987 - SIOCALIFADDR = 0x8218691c SIOCATMARK = 0x40047307 - SIOCBRDGADD = 0x8054693c - SIOCBRDGADDS = 0x80546941 - SIOCBRDGARL = 0x806e694d + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d SIOCBRDGDADDR = 0x81286947 - SIOCBRDGDEL = 0x8054693d - SIOCBRDGDELS = 0x80546942 - SIOCBRDGFLUSH = 0x80546948 - SIOCBRDGFRL = 0x806e694e + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e SIOCBRDGGCACHE = 0xc0146941 SIOCBRDGGFD = 0xc0146952 SIOCBRDGGHT = 0xc0146951 - SIOCBRDGGIFFLGS = 0xc054693e + SIOCBRDGGIFFLGS = 0xc060693e SIOCBRDGGMA = 0xc0146953 - SIOCBRDGGPARAM = 0xc03c6958 + SIOCBRDGGPARAM = 0xc0406958 SIOCBRDGGPRI = 0xc0146950 SIOCBRDGGRL = 0xc028694f - SIOCBRDGGSIFS = 0xc054693c SIOCBRDGGTO = 0xc0146946 - SIOCBRDGIFS = 0xc0546942 + SIOCBRDGIFS = 0xc0606942 SIOCBRDGRTS = 0xc0186943 SIOCBRDGSADDR = 0xc1286944 SIOCBRDGSCACHE = 0x80146940 SIOCBRDGSFD = 0x80146952 SIOCBRDGSHT = 0x80146951 - SIOCBRDGSIFCOST = 0x80546955 - SIOCBRDGSIFFLGS = 0x8054693f - SIOCBRDGSIFPRIO = 0x80546954 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a SIOCBRDGSMA = 0x80146953 SIOCBRDGSPRI = 0x80146950 SIOCBRDGSPROTO = 0x8014695a SIOCBRDGSTO = 0x80146945 SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 SIOCDELMULTI = 0x80206932 SIOCDIFADDR = 0x80206919 SIOCDIFGROUP = 0x80246989 + SIOCDIFPARENT = 0x802069b4 SIOCDIFPHYADDR = 0x80206949 - SIOCDLIFADDR = 0x8218691e + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af SIOCGETKALIVE = 0xc01869a4 SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae SIOCGETPFLOW = 0xc02069fe SIOCGETPFSYNC = 0xc02069f8 SIOCGETSGCNT = 0xc0147534 SIOCGETVIFCNT = 0xc0147533 SIOCGETVLAN = 0xc0206990 - SIOCGHIWAT = 0x40047301 SIOCGIFADDR = 0xc0206921 - SIOCGIFASYNCMAP = 0xc020697c SIOCGIFBRDADDR = 0xc0206923 SIOCGIFCONF = 0xc0086924 SIOCGIFDATA = 0xc020691b @@ -1168,41 +1333,53 @@ const ( SIOCGIFFLAGS = 0xc0206911 SIOCGIFGATTR = 0xc024698b SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc024698d SIOCGIFGMEMB = 0xc024698a SIOCGIFGROUP = 0xc0246988 SIOCGIFHARDMTU = 0xc02069a5 - SIOCGIFMEDIA = 0xc0286936 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0386938 SIOCGIFMETRIC = 0xc0206917 SIOCGIFMTU = 0xc020697e SIOCGIFNETMASK = 0xc0206925 - SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 SIOCGIFPRIORITY = 0xc020699c - SIOCGIFPSRCADDR = 0xc0206947 SIOCGIFRDOMAIN = 0xc02069a0 SIOCGIFRTLABEL = 0xc0206983 SIOCGIFRXR = 0x802069aa - SIOCGIFTIMESLOT = 0xc0206986 + SIOCGIFSFFPAGE = 0xc1126939 SIOCGIFXFLAGS = 0xc020699e - SIOCGLIFADDR = 0xc218691d SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 SIOCGLIFPHYRTABLE = 0xc02069a2 SIOCGLIFPHYTTL = 0xc02069a9 - SIOCGLOWAT = 0x40047303 SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac SIOCIFCREATE = 0x8020697a SIOCIFDESTROY = 0x80206979 SIOCIFGCLONERS = 0xc00c6978 SIOCSETKALIVE = 0x801869a3 SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad SIOCSETPFLOW = 0x802069fd SIOCSETPFSYNC = 0x802069f7 SIOCSETVLAN = 0x8020698f - SIOCSHIWAT = 0x80047300 SIOCSIFADDR = 0x8020690c - SIOCSIFASYNCMAP = 0x8020697d SIOCSIFBRDADDR = 0x80206913 SIOCSIFDESCR = 0x80206980 SIOCSIFDSTADDR = 0x8020690e @@ -1210,26 +1387,36 @@ const ( SIOCSIFGATTR = 0x8024698c SIOCSIFGENERIC = 0x80206939 SIOCSIFLLADDR = 0x8020691f - SIOCSIFMEDIA = 0xc0206935 + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 SIOCSIFMETRIC = 0x80206918 SIOCSIFMTU = 0x8020697f SIOCSIFNETMASK = 0x80206916 - SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 SIOCSIFPRIORITY = 0x8020699b SIOCSIFRDOMAIN = 0x8020699f SIOCSIFRTLABEL = 0x80206982 - SIOCSIFTIMESLOT = 0x80206985 SIOCSIFXFLAGS = 0x8020699d SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 SIOCSLIFPHYRTABLE = 0x802069a1 SIOCSLIFPHYTTL = 0x802069a8 - SIOCSLOWAT = 0x80047302 SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 SIOCSVNETID = 0x802069a6 SOCK_CLOEXEC = 0x8000 SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 SOCK_NONBLOCK = 0x4000 SOCK_RAW = 0x3 SOCK_RDM = 0x4 @@ -1241,6 +1428,7 @@ const ( SO_BINDANY = 0x1000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1248,6 +1436,7 @@ const ( SO_NETPROC = 0x1020 SO_OOBINLINE = 0x100 SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 SO_RCVBUF = 0x1002 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 @@ -1261,6 +1450,7 @@ const ( SO_TIMESTAMP = 0x800 SO_TYPE = 0x1008 SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 S_BLKSIZE = 0x200 S_IEXEC = 0x40 S_IFBLK = 0x6000 @@ -1290,9 +1480,24 @@ const ( S_IXOTH = 0x1 S_IXUSR = 0x40 TCIFLUSH = 0x1 + TCIOFF = 0x3 TCIOFLUSH = 0x3 + TCION = 0x4 TCOFLUSH = 0x2 - TCP_MAXBURST = 0x4 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 TCP_MAXSEG = 0x2 TCP_MAXWIN = 0xffff TCP_MAX_SACK = 0x3 @@ -1301,11 +1506,15 @@ const ( TCP_MSS = 0x200 TCP_NODELAY = 0x1 TCP_NOPUSH = 0x10 - TCP_NSTATES = 0xb + TCP_SACKHOLE_LIMIT = 0x80 TCP_SACK_ENABLE = 0x8 TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 TIOCCBRK = 0x2000747a TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d TIOCCONS = 0x80047462 TIOCDRAIN = 0x2000745e TIOCEXCL = 0x2000740d @@ -1321,7 +1530,7 @@ const ( TIOCGFLAGS = 0x4004745d TIOCGPGRP = 0x40047477 TIOCGSID = 0x40047463 - TIOCGTSTAMP = 0x400c745b + TIOCGTSTAMP = 0x4010745b TIOCGWINSZ = 0x40087468 TIOCMBIC = 0x8004746b TIOCMBIS = 0x8004746c @@ -1360,17 +1569,21 @@ const ( TIOCSETAF = 0x802c7416 TIOCSETAW = 0x802c7415 TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c TIOCSFLAGS = 0x8004745c TIOCSIG = 0x8004745f TIOCSPGRP = 0x80047476 TIOCSTART = 0x2000746e - TIOCSTAT = 0x80047465 - TIOCSTI = 0x80017472 + TIOCSTAT = 0x20007465 TIOCSTOP = 0x2000746f TIOCSTSTAMP = 0x8008745a TIOCSWINSZ = 0x80087467 TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 VDISCARD = 0xf VDSUSP = 0xb VEOF = 0x0 @@ -1381,6 +1594,19 @@ const ( VKILL = 0x5 VLNEXT = 0xe VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 VQUIT = 0x9 VREPRINT = 0x6 VSTART = 0xc @@ -1394,6 +1620,7 @@ const ( WCOREFLAG = 0x80 WNOHANG = 0x1 WUNTRACED = 0x2 + XCASE = 0x1000000 ) // Errors @@ -1407,6 +1634,7 @@ const ( EALREADY = syscall.Errno(0x25) EAUTH = syscall.Errno(0x50) EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) EBADRPC = syscall.Errno(0x48) EBUSY = syscall.Errno(0x10) ECANCELED = syscall.Errno(0x58) @@ -1433,7 +1661,7 @@ const ( EIPSEC = syscall.Errno(0x52) EISCONN = syscall.Errno(0x38) EISDIR = syscall.Errno(0x15) - ELAST = syscall.Errno(0x5b) + ELAST = syscall.Errno(0x5f) ELOOP = syscall.Errno(0x3e) EMEDIUMTYPE = syscall.Errno(0x56) EMFILE = syscall.Errno(0x18) @@ -1461,12 +1689,14 @@ const ( ENOTCONN = syscall.Errno(0x39) ENOTDIR = syscall.Errno(0x14) ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) ENOTSOCK = syscall.Errno(0x26) ENOTSUP = syscall.Errno(0x5b) ENOTTY = syscall.Errno(0x19) ENXIO = syscall.Errno(0x6) EOPNOTSUPP = syscall.Errno(0x2d) EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) EPERM = syscall.Errno(0x1) EPFNOSUPPORT = syscall.Errno(0x2e) EPIPE = syscall.Errno(0x20) @@ -1474,6 +1704,7 @@ const ( EPROCUNAVAIL = syscall.Errno(0x4c) EPROGMISMATCH = syscall.Errno(0x4b) EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) EPROTONOSUPPORT = syscall.Errno(0x2b) EPROTOTYPE = syscall.Errno(0x29) ERANGE = syscall.Errno(0x22) @@ -1570,7 +1801,7 @@ var errorList = [...]struct { {32, "EPIPE", "broken pipe"}, {33, "EDOM", "numerical argument out of domain"}, {34, "ERANGE", "result too large"}, - {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {35, "EAGAIN", "resource temporarily unavailable"}, {36, "EINPROGRESS", "operation now in progress"}, {37, "EALREADY", "operation already in progress"}, {38, "ENOTSOCK", "socket operation on non-socket"}, @@ -1626,7 +1857,11 @@ var errorList = [...]struct { {88, "ECANCELED", "operation canceled"}, {89, "EIDRM", "identifier removed"}, {90, "ENOMSG", "no message of desired type"}, - {91, "ELAST", "not supported"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, } // Signal table @@ -1640,7 +1875,7 @@ var signalList = [...]struct { {3, "SIGQUIT", "quit"}, {4, "SIGILL", "illegal instruction"}, {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, + {6, "SIGIOT", "abort trap"}, {7, "SIGEMT", "EMT trap"}, {8, "SIGFPE", "floating point exception"}, {9, "SIGKILL", "killed"}, @@ -1667,4 +1902,5 @@ var signalList = [...]struct { {30, "SIGUSR1", "user defined signal 1"}, {31, "SIGUSR2", "user defined signal 2"}, {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, } diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go index 90de7dfc33..ae16fe7542 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go @@ -112,6 +112,12 @@ const ( BPF_FILDROP_CAPTURE = 0x1 BPF_FILDROP_DROP = 0x2 BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -140,6 +146,7 @@ const ( BPF_OR = 0x40 BPF_RELEASE = 0x30bb6 BPF_RET = 0x6 + BPF_RND = 0xc0 BPF_RSH = 0x70 BPF_ST = 0x2 BPF_STX = 0x3 @@ -180,7 +187,65 @@ const ( CTL_KERN = 0x1 CTL_MAXNAME = 0xc CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 DLT_ARCNET = 0x7 DLT_ATM_RFC1483 = 0xb DLT_AX25 = 0x3 @@ -243,6 +308,8 @@ const ( EMUL_ENABLED = 0x1 EMUL_NATIVE = 0x2 ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 ETHERMIN = 0x2e ETHERMTU = 0x5dc ETHERTYPE_8023 = 0x4 @@ -295,6 +362,7 @@ const ( ETHERTYPE_DN = 0x6003 ETHERTYPE_DOGFIGHT = 0x1989 ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e ETHERTYPE_ECMA = 0x803 ETHERTYPE_ENCRYPT = 0x803d ETHERTYPE_ES = 0x805d @@ -326,6 +394,7 @@ const ( ETHERTYPE_LLDP = 0x88cc ETHERTYPE_LOGICRAFT = 0x8148 ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 ETHERTYPE_MATRA = 0x807a ETHERTYPE_MAX = 0xffff ETHERTYPE_MERIT = 0x807c @@ -354,15 +423,16 @@ const ( ETHERTYPE_NCD = 0x8149 ETHERTYPE_NESTAR = 0x8006 ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 ETHERTYPE_NOVELL = 0x8138 ETHERTYPE_NS = 0x600 ETHERTYPE_NSAT = 0x601 ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f ETHERTYPE_NTRAILER = 0x10 ETHERTYPE_OS9 = 0x7007 ETHERTYPE_OS9NET = 0x7009 ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e ETHERTYPE_PBB = 0x88e7 ETHERTYPE_PCS = 0x4242 ETHERTYPE_PLANNING = 0x8044 @@ -445,10 +515,11 @@ const ( ETHER_VLAN_ENCAP_LEN = 0x4 EVFILT_AIO = -0x3 EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x8 + EVFILT_SYSCOUNT = 0x9 EVFILT_TIMER = -0x7 EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 @@ -470,7 +541,7 @@ const ( EV_FLAG1 = 0x2000 EV_ONESHOT = 0x10 EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTPROC = 0x800 @@ -736,6 +807,7 @@ const ( IFT_VOICEOVERCABLE = 0xc6 IFT_VOICEOVERFRAMERELAY = 0x99 IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb IFT_X213 = 0x5d IFT_X25 = 0x5 IFT_X25DDN = 0x4 @@ -801,9 +873,11 @@ const ( IPPROTO_RAW = 0xff IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 IPV6_AUTH_LEVEL = 0x35 IPV6_AUTOFLOWLABEL = 0x3b IPV6_CHECKSUM = 0x1a @@ -910,6 +984,9 @@ const ( IP_TTL = 0x4 ISIG = 0x80 ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 IUCLC = 0x1000 IXANY = 0x800 IXOFF = 0x400 @@ -981,6 +1058,19 @@ const ( MNT_WAIT = 0x1 MNT_WANTRDWR = 0x2000000 MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" MSG_BCAST = 0x100 MSG_CMSG_CLOEXEC = 0x800 MSG_CTRUNC = 0x20 @@ -993,6 +1083,7 @@ const ( MSG_PEEK = 0x2 MSG_TRUNC = 0x10 MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 MS_ASYNC = 0x1 MS_INVALIDATE = 0x4 MS_SYNC = 0x2 @@ -1001,7 +1092,8 @@ const ( NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x7 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 NFDBITS = 0x20 @@ -1018,6 +1110,7 @@ const ( NOTE_FORK = 0x40000000 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 NOTE_PCTRLMASK = 0xf0000000 NOTE_PDATAMASK = 0xfffff NOTE_RENAME = 0x20 @@ -1154,7 +1247,7 @@ const ( RTM_PROPOSAL = 0x13 RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 + RTM_SOURCE = 0x16 RTM_VERSION = 0x5 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 @@ -1172,6 +1265,9 @@ const ( RUSAGE_THREAD = 0x1 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1188,30 +1284,30 @@ const ( SIOCBRDGDELS = 0x80606942 SIOCBRDGFLUSH = 0x80606948 SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0186941 - SIOCBRDGGFD = 0xc0186952 - SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGMA = 0xc0146953 SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGPRI = 0xc0146950 SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0186946 + SIOCBRDGGTO = 0xc0146946 SIOCBRDGIFS = 0xc0606942 SIOCBRDGRTS = 0xc0206943 SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80186940 - SIOCBRDGSFD = 0x80186952 - SIOCBRDGSHT = 0x80186951 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 SIOCBRDGSIFCOST = 0x80606955 SIOCBRDGSIFFLGS = 0x8060693f SIOCBRDGSIFPRIO = 0x80606954 SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80186953 - SIOCBRDGSPRI = 0x80186950 - SIOCBRDGSPROTO = 0x8018695a - SIOCBRDGSTO = 0x80186945 - SIOCBRDGSTXHC = 0x80186959 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 SIOCDELLABEL = 0x80206997 SIOCDELMULTI = 0x80206932 SIOCDIFADDR = 0x80206919 @@ -1264,6 +1360,7 @@ const ( SIOCGPWE3CTRLWORD = 0xc02069dc SIOCGPWE3FAT = 0xc02069dd SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db SIOCGSPPPPARAMS = 0xc0206994 SIOCGTXHPRIO = 0xc02069c6 SIOCGUMBINFO = 0xc02069be @@ -1310,17 +1407,13 @@ const ( SIOCSPWE3CTRLWORD = 0x802069dc SIOCSPWE3FAT = 0x802069dd SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db SIOCSSPPPPARAMS = 0x80206993 SIOCSTXHPRIO = 0x802069c5 SIOCSUMBPARAM = 0x802069bf SIOCSVH = 0xc02069f5 SIOCSVNETFLOWID = 0x802069c3 SIOCSVNETID = 0x802069a6 - SIOCSWGDPID = 0xc018695b - SIOCSWGMAXFLOW = 0xc0186960 - SIOCSWGMAXGROUP = 0xc018695d - SIOCSWSDPID = 0x8018695c - SIOCSWSPORTNO = 0xc060695f SOCK_CLOEXEC = 0x8000 SOCK_DGRAM = 0x2 SOCK_DNS = 0x1000 @@ -1335,6 +1428,7 @@ const ( SO_BINDANY = 0x1000 SO_BROADCAST = 0x20 SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 SO_DONTROUTE = 0x10 SO_ERROR = 0x1007 SO_KEEPALIVE = 0x8 @@ -1342,6 +1436,7 @@ const ( SO_NETPROC = 0x1020 SO_OOBINLINE = 0x100 SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 SO_RCVBUF = 0x1002 SO_RCVLOWAT = 0x1004 SO_RCVTIMEO = 0x1006 @@ -1391,7 +1486,18 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 - TCP_MAXBURST = 0x4 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 TCP_MAXSEG = 0x2 TCP_MAXWIN = 0xffff TCP_MAX_SACK = 0x3 @@ -1400,6 +1506,7 @@ const ( TCP_MSS = 0x200 TCP_NODELAY = 0x1 TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 TCP_SACK_ENABLE = 0x8 TCSAFLUSH = 0x2 TIMER_ABSTIME = 0x1 @@ -1768,7 +1875,7 @@ var signalList = [...]struct { {3, "SIGQUIT", "quit"}, {4, "SIGILL", "illegal instruction"}, {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, + {6, "SIGIOT", "abort trap"}, {7, "SIGEMT", "EMT trap"}, {8, "SIGFPE", "floating point exception"}, {9, "SIGKILL", "killed"}, @@ -1795,4 +1902,5 @@ var signalList = [...]struct { {30, "SIGUSR1", "user defined signal 1"}, {31, "SIGUSR2", "user defined signal 2"}, {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, } diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go index f1154ff56f..03d90fe355 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go @@ -112,6 +112,12 @@ const ( BPF_FILDROP_CAPTURE = 0x1 BPF_FILDROP_DROP = 0x2 BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 BPF_H = 0x8 BPF_IMM = 0x0 BPF_IND = 0x40 @@ -140,6 +146,7 @@ const ( BPF_OR = 0x40 BPF_RELEASE = 0x30bb6 BPF_RET = 0x6 + BPF_RND = 0xc0 BPF_RSH = 0x70 BPF_ST = 0x2 BPF_STX = 0x3 @@ -301,6 +308,8 @@ const ( EMUL_ENABLED = 0x1 EMUL_NATIVE = 0x2 ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 ETHERMIN = 0x2e ETHERMTU = 0x5dc ETHERTYPE_8023 = 0x4 @@ -353,6 +362,7 @@ const ( ETHERTYPE_DN = 0x6003 ETHERTYPE_DOGFIGHT = 0x1989 ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e ETHERTYPE_ECMA = 0x803 ETHERTYPE_ENCRYPT = 0x803d ETHERTYPE_ES = 0x805d @@ -413,15 +423,16 @@ const ( ETHERTYPE_NCD = 0x8149 ETHERTYPE_NESTAR = 0x8006 ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 ETHERTYPE_NOVELL = 0x8138 ETHERTYPE_NS = 0x600 ETHERTYPE_NSAT = 0x601 ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f ETHERTYPE_NTRAILER = 0x10 ETHERTYPE_OS9 = 0x7007 ETHERTYPE_OS9NET = 0x7009 ETHERTYPE_PACER = 0x80c6 - ETHERTYPE_PAE = 0x888e ETHERTYPE_PBB = 0x88e7 ETHERTYPE_PCS = 0x4242 ETHERTYPE_PLANNING = 0x8044 @@ -504,10 +515,11 @@ const ( ETHER_VLAN_ENCAP_LEN = 0x4 EVFILT_AIO = -0x3 EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 EVFILT_PROC = -0x5 EVFILT_READ = -0x1 EVFILT_SIGNAL = -0x6 - EVFILT_SYSCOUNT = 0x8 + EVFILT_SYSCOUNT = 0x9 EVFILT_TIMER = -0x7 EVFILT_VNODE = -0x4 EVFILT_WRITE = -0x2 @@ -529,7 +541,7 @@ const ( EV_FLAG1 = 0x2000 EV_ONESHOT = 0x10 EV_RECEIPT = 0x40 - EV_SYSFLAGS = 0xf000 + EV_SYSFLAGS = 0xf800 EXTA = 0x4b00 EXTB = 0x9600 EXTPROC = 0x800 @@ -795,6 +807,7 @@ const ( IFT_VOICEOVERCABLE = 0xc6 IFT_VOICEOVERFRAMERELAY = 0x99 IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb IFT_X213 = 0x5d IFT_X25 = 0x5 IFT_X25DDN = 0x4 @@ -860,6 +873,7 @@ const ( IPPROTO_RAW = 0xff IPPROTO_ROUTING = 0x2b IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 IPPROTO_TCP = 0x6 IPPROTO_TP = 0x1d IPPROTO_UDP = 0x11 @@ -970,6 +984,9 @@ const ( IP_TTL = 0x4 ISIG = 0x80 ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 IUCLC = 0x1000 IXANY = 0x800 IXOFF = 0x400 @@ -1041,6 +1058,19 @@ const ( MNT_WAIT = 0x1 MNT_WANTRDWR = 0x2000000 MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" MSG_BCAST = 0x100 MSG_CMSG_CLOEXEC = 0x800 MSG_CTRUNC = 0x20 @@ -1053,6 +1083,7 @@ const ( MSG_PEEK = 0x2 MSG_TRUNC = 0x10 MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 MS_ASYNC = 0x1 MS_INVALIDATE = 0x4 MS_SYNC = 0x2 @@ -1061,7 +1092,8 @@ const ( NET_RT_FLAGS = 0x2 NET_RT_IFLIST = 0x3 NET_RT_IFNAMES = 0x6 - NET_RT_MAXID = 0x7 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 NET_RT_STATS = 0x4 NET_RT_TABLE = 0x5 NFDBITS = 0x20 @@ -1078,6 +1110,7 @@ const ( NOTE_FORK = 0x40000000 NOTE_LINK = 0x10 NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 NOTE_PCTRLMASK = 0xf0000000 NOTE_PDATAMASK = 0xfffff NOTE_RENAME = 0x20 @@ -1214,7 +1247,7 @@ const ( RTM_PROPOSAL = 0x13 RTM_REDIRECT = 0x6 RTM_RESOLVE = 0xb - RTM_RTTUNIT = 0xf4240 + RTM_SOURCE = 0x16 RTM_VERSION = 0x5 RTV_EXPIRE = 0x4 RTV_HOPCOUNT = 0x2 @@ -1232,6 +1265,9 @@ const ( RUSAGE_THREAD = 0x1 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -1248,30 +1284,30 @@ const ( SIOCBRDGDELS = 0x80606942 SIOCBRDGFLUSH = 0x80606948 SIOCBRDGFRL = 0x808c694e - SIOCBRDGGCACHE = 0xc0186941 - SIOCBRDGGFD = 0xc0186952 - SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 SIOCBRDGGIFFLGS = 0xc060693e - SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGMA = 0xc0146953 SIOCBRDGGPARAM = 0xc0406958 - SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGPRI = 0xc0146950 SIOCBRDGGRL = 0xc030694f - SIOCBRDGGTO = 0xc0186946 + SIOCBRDGGTO = 0xc0146946 SIOCBRDGIFS = 0xc0606942 SIOCBRDGRTS = 0xc0206943 SIOCBRDGSADDR = 0xc1286944 - SIOCBRDGSCACHE = 0x80186940 - SIOCBRDGSFD = 0x80186952 - SIOCBRDGSHT = 0x80186951 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 SIOCBRDGSIFCOST = 0x80606955 SIOCBRDGSIFFLGS = 0x8060693f SIOCBRDGSIFPRIO = 0x80606954 SIOCBRDGSIFPROT = 0x8060694a - SIOCBRDGSMA = 0x80186953 - SIOCBRDGSPRI = 0x80186950 - SIOCBRDGSPROTO = 0x8018695a - SIOCBRDGSTO = 0x80186945 - SIOCBRDGSTXHC = 0x80186959 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 SIOCDELLABEL = 0x80206997 SIOCDELMULTI = 0x80206932 SIOCDIFADDR = 0x80206919 @@ -1378,11 +1414,6 @@ const ( SIOCSVH = 0xc02069f5 SIOCSVNETFLOWID = 0x802069c3 SIOCSVNETID = 0x802069a6 - SIOCSWGDPID = 0xc018695b - SIOCSWGMAXFLOW = 0xc0186960 - SIOCSWGMAXGROUP = 0xc018695d - SIOCSWSDPID = 0x8018695c - SIOCSWSPORTNO = 0xc060695f SOCK_CLOEXEC = 0x8000 SOCK_DGRAM = 0x2 SOCK_DNS = 0x1000 @@ -1455,7 +1486,18 @@ const ( TCOFLUSH = 0x2 TCOOFF = 0x1 TCOON = 0x2 - TCP_MAXBURST = 0x4 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 TCP_MAXSEG = 0x2 TCP_MAXWIN = 0xffff TCP_MAX_SACK = 0x3 @@ -1833,7 +1875,7 @@ var signalList = [...]struct { {3, "SIGQUIT", "quit"}, {4, "SIGILL", "illegal instruction"}, {5, "SIGTRAP", "trace/BPT trap"}, - {6, "SIGABRT", "abort trap"}, + {6, "SIGIOT", "abort trap"}, {7, "SIGEMT", "EMT trap"}, {8, "SIGFPE", "floating point exception"}, {9, "SIGKILL", "killed"}, @@ -1860,4 +1902,5 @@ var signalList = [...]struct { {30, "SIGUSR1", "user defined signal 1"}, {31, "SIGUSR2", "user defined signal 2"}, {32, "SIGTHR", "thread AST"}, + {81920, "SIGSTKSZ", "unknown signal"}, } diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go new file mode 100644 index 0000000000..8e2c51b1ee --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go @@ -0,0 +1,1905 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && openbsd +// +build ppc64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RND = 0xc0 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_SOURCE = 0x16 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go new file mode 100644 index 0000000000..13d403031e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go @@ -0,0 +1,1904 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && openbsd +// +build riscv64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RND = 0xc0 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_SOURCE = 0x16 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go deleted file mode 100644 index a06eb09324..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go +++ /dev/null @@ -1,40 +0,0 @@ -// go run mksyscall.go -tags darwin,amd64,go1.13 syscall_darwin.1_13.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build darwin && amd64 && go1.13 -// +build darwin,amd64,go1.13 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_closedir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { - r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - res = Errno(r0) - return -} - -var libc_readdir_r_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s deleted file mode 100644 index d6c3e25c01..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s +++ /dev/null @@ -1,25 +0,0 @@ -// go run mkasm_darwin.go amd64 -// Code generated by the command above; DO NOT EDIT. - -//go:build go1.13 -// +build go1.13 - -#include "textflag.h" - -TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) - -GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) - -TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) - -GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) - -TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) - -GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go index 467deed763..c2461c4967 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go @@ -1,8 +1,8 @@ -// go run mksyscall.go -tags darwin,amd64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go +// go run mksyscall.go -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. -//go:build darwin && amd64 && go1.12 -// +build darwin,amd64,go1.12 +//go:build darwin && amd64 +// +build darwin,amd64 package unix @@ -463,6 +463,32 @@ var libc_munlockall_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_closedir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +var libc_readdir_r_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func pipe(p *[2]int32) (err error) { _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s index 7e308a476d..95fe4c0eb9 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s @@ -1,11 +1,14 @@ -// go run mkasm_darwin.go amd64 +// go run mkasm.go darwin amd64 // Code generated by the command above; DO NOT EDIT. -//go:build go1.12 -// +build go1.12 - #include "textflag.h" +TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) + +GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) + TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgroups(SB) @@ -174,6 +177,18 @@ TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) +TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) + +GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) + +TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) + +GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) + TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pipe(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go deleted file mode 100644 index cec595d553..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go +++ /dev/null @@ -1,40 +0,0 @@ -// go run mksyscall.go -tags darwin,arm64,go1.13 syscall_darwin.1_13.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build darwin && arm64 && go1.13 -// +build darwin,arm64,go1.13 - -package unix - -import ( - "syscall" - "unsafe" -) - -var _ syscall.Errno - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func closedir(dir uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -var libc_closedir_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { - r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) - res = Errno(r0) - return -} - -var libc_readdir_r_trampoline_addr uintptr - -//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s deleted file mode 100644 index 357989722c..0000000000 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s +++ /dev/null @@ -1,25 +0,0 @@ -// go run mkasm_darwin.go arm64 -// Code generated by the command above; DO NOT EDIT. - -//go:build go1.13 -// +build go1.13 - -#include "textflag.h" - -TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) - -GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) - -TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) - -GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 -DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) - -TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) - -GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 -DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go index 35938d34ff..26a0fdc505 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go @@ -1,8 +1,8 @@ -// go run mksyscall.go -tags darwin,arm64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go +// go run mksyscall.go -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. -//go:build darwin && arm64 && go1.12 -// +build darwin,arm64,go1.12 +//go:build darwin && arm64 +// +build darwin,arm64 package unix @@ -463,6 +463,32 @@ var libc_munlockall_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_closedir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +var libc_readdir_r_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func pipe(p *[2]int32) (err error) { _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s index b09e5bb0e2..efa5b4c987 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s @@ -1,11 +1,14 @@ -// go run mkasm_darwin.go arm64 +// go run mkasm.go darwin arm64 // Code generated by the command above; DO NOT EDIT. -//go:build go1.12 -// +build go1.12 - #include "textflag.h" +TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) + +GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) + TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_getgroups(SB) @@ -174,6 +177,18 @@ TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) +TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) + +GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) + +TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) + +GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) + TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_pipe(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go index 1b6eedfa61..54749f9c5e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go @@ -552,6 +552,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go index 039c4aa06c..77479d4581 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go @@ -544,6 +544,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go index 0535d3cfdf..2e966d4d7a 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go @@ -544,6 +544,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go index 1018b52217..d65a7c0fa6 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go @@ -544,6 +544,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go index 3802f4b379..6f0b97c6db 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -544,6 +544,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go index 8a2db7da9f..e1c23b5272 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go @@ -544,6 +544,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go index af5cb064ec..b57c7050d7 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go @@ -15,25 +15,19 @@ import ( //go:cgo_import_dynamic libc_writev writev "libc.so" //go:cgo_import_dynamic libc_pwritev pwritev "libc.so" //go:cgo_import_dynamic libc_accept4 accept4 "libsocket.so" -//go:cgo_import_dynamic libc_putmsg putmsg "libc.so" -//go:cgo_import_dynamic libc_getmsg getmsg "libc.so" //go:linkname procreadv libc_readv //go:linkname procpreadv libc_preadv //go:linkname procwritev libc_writev //go:linkname procpwritev libc_pwritev //go:linkname procaccept4 libc_accept4 -//go:linkname procputmsg libc_putmsg -//go:linkname procgetmsg libc_getmsg var ( procreadv, procpreadv, procwritev, procpwritev, - procaccept4, - procputmsg, - procgetmsg syscallFunc + procaccept4 syscallFunc ) // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -106,23 +100,3 @@ func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, } return } - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(flags), 0, 0) - if e1 != 0 { - err = e1 - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go index bc4a275311..36ea3a55b7 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -537,6 +537,17 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockAdjtime(clockid int32, buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_CLOCK_ADJTIME, uintptr(clockid), uintptr(unsafe.Pointer(buf)), 0) + state = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ClockGetres(clockid int32, res *Timespec) (err error) { _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) if e1 != 0 { @@ -2151,3 +2162,13 @@ func setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) { + _, _, e1 := RawSyscall6(SYS_RT_SIGPROCMASK, uintptr(how), uintptr(unsafe.Pointer(set)), uintptr(unsafe.Pointer(oldset)), uintptr(sigsetsize), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go index 88af526b7e..c81b0ad477 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -287,46 +287,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) n = int(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go index 2a0c4aa6a6..2206bce7f4 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -334,36 +334,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { @@ -374,16 +344,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go index 4882bde3af..edf6b39f16 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -412,46 +412,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go index 9f8c24e434..190609f214 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -289,36 +289,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { @@ -329,16 +299,6 @@ func setrlimit(resource int, rlim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go index 523f2ba03e..806ffd1e12 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go @@ -223,46 +223,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go index d7d6f42441..5f984cbb1c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -248,46 +248,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go index 7f1f8e6533..46fc380a40 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -278,36 +278,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { @@ -318,16 +288,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go index f933d0f51a..cbd0d4dadb 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -278,36 +278,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { @@ -318,16 +288,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go index 297d0a9982..0c13d15f07 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -248,46 +248,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go index 2e32e7a449..e01432aed5 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go @@ -308,46 +308,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go index 3c53170464..13c7ee7baf 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -349,36 +349,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { @@ -389,16 +359,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go index a00c6744ec..02d0c0fd61 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -349,36 +349,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { @@ -389,16 +359,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go index 1239cc2de9..9fee3b1d23 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -269,36 +269,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { @@ -309,16 +279,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go index e0dabc6027..647bbfecd6 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -319,36 +319,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { @@ -359,16 +329,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) n = int64(r0) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go index 368623c0f2..ada057f891 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -329,36 +329,6 @@ func setfsuid(uid int) (prev int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Setrlimit(resource int, rlim *Rlimit) (err error) { _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) if e1 != 0 { @@ -369,16 +339,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Shutdown(fd int, how int) (err error) { _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go index 4af561a48d..79f7389963 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -521,6 +521,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go index 3b90e9448a..fb161f3a26 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -521,6 +521,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go index 890f4ccd13..4c8ac993a8 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -521,6 +521,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go index c79f071fc6..76dd8ec4fd 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -521,6 +521,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go index a057fc5d35..caeb807bd4 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -1,4 +1,4 @@ -// go run mksyscall.go -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go +// go run mksyscall.go -l32 -openbsd -libc -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build openbsd && 386 @@ -16,7 +16,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -24,20 +24,28 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -45,10 +53,14 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -56,30 +68,42 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -87,66 +111,94 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { @@ -156,7 +208,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -164,6 +216,10 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { @@ -173,17 +229,21 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -191,10 +251,14 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -202,10 +266,14 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -213,6 +281,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func utimes(path string, timeval *[2]Timeval) (err error) { @@ -221,27 +293,35 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -249,6 +329,10 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Madvise(b []byte, behav int) (err error) { @@ -258,13 +342,17 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlock(b []byte) (err error) { @@ -274,23 +362,31 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mprotect(b []byte, prot int) (err error) { @@ -300,13 +396,17 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Msync(b []byte, flags int) (err error) { @@ -316,13 +416,17 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlock(b []byte) (err error) { @@ -332,33 +436,45 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getdents(fd int, buf []byte) (n int, err error) { @@ -368,7 +484,7 @@ func Getdents(fd int, buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -376,6 +492,10 @@ func Getdents(fd int, buf []byte) (n int, err error) { return } +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getcwd(buf []byte) (n int, err error) { @@ -385,7 +505,7 @@ func Getcwd(buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -393,16 +513,24 @@ func Getcwd(buf []byte) (n int, err error) { return } +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { @@ -412,17 +540,21 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -430,6 +562,10 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, return } +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Access(path string, mode uint32) (err error) { @@ -438,23 +574,31 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chdir(path string) (err error) { @@ -463,13 +607,17 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chflags(path string, flags int) (err error) { @@ -478,13 +626,17 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chmod(path string, mode uint32) (err error) { @@ -493,13 +645,17 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chown(path string, uid int, gid int) (err error) { @@ -508,13 +664,17 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chroot(path string) (err error) { @@ -523,27 +683,49 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -551,33 +733,49 @@ func Dup(fd int) (nfd int, err error) { return } +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) return } +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -586,43 +784,59 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -631,23 +845,31 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { @@ -656,27 +878,35 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -684,16 +914,24 @@ func Fpathconf(fd int, name int) (val int, err error) { return } +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { @@ -702,71 +940,99 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), uintptr(length>>32)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) egid = int(r0) return } +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) gid = int(r0) return } +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -774,34 +1040,50 @@ func Getpgid(pid int) (pgid int, err error) { return } +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) pgrp = int(r0) return } +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) pid = int(r0) return } +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) ppid = int(r0) return } +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -809,20 +1091,28 @@ func Getpriority(which int, who int) (prio int, err error) { return } +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrtable() (rtable int, err error) { - r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) rtable = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -830,20 +1120,28 @@ func Getrtable() (rtable int, err error) { return } +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -851,46 +1149,66 @@ func Getsid(pid int) (sid int, err error) { return } +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) tainted = bool(r0 != 0) return } +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -898,6 +1216,10 @@ func Kqueue() (fd int, err error) { return } +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lchown(path string, uid int, gid int) (err error) { @@ -906,13 +1228,17 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Link(path string, link string) (err error) { @@ -926,13 +1252,17 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { @@ -946,23 +1276,31 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lstat(path string, stat *Stat_t) (err error) { @@ -971,13 +1309,17 @@ func Lstat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdir(path string, mode uint32) (err error) { @@ -986,13 +1328,17 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdirat(dirfd int, path string, mode uint32) (err error) { @@ -1001,13 +1347,17 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifo(path string, mode uint32) (err error) { @@ -1016,13 +1366,17 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifoat(dirfd int, path string, mode uint32) (err error) { @@ -1031,13 +1385,17 @@ func Mkfifoat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknod(path string, mode uint32, dev int) (err error) { @@ -1046,13 +1404,17 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { @@ -1061,23 +1423,31 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Open(path string, mode int, perm uint32) (fd int, err error) { @@ -1086,7 +1456,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1094,6 +1464,10 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { @@ -1102,7 +1476,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1110,6 +1484,10 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pathconf(path string, name int) (val int, err error) { @@ -1118,7 +1496,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1126,6 +1504,10 @@ func Pathconf(path string, name int) (val int, err error) { return } +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pread(fd int, p []byte, offset int64) (n int, err error) { @@ -1135,7 +1517,7 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1143,6 +1525,10 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pwrite(fd int, p []byte, offset int64) (n int, err error) { @@ -1152,7 +1538,7 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1160,6 +1546,10 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func read(fd int, p []byte) (n int, err error) { @@ -1169,7 +1559,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1177,6 +1567,10 @@ func read(fd int, p []byte) (n int, err error) { return } +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlink(path string, buf []byte) (n int, err error) { @@ -1191,7 +1585,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1199,6 +1593,10 @@ func Readlink(path string, buf []byte) (n int, err error) { return } +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { @@ -1213,7 +1611,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1221,6 +1619,10 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rename(from string, to string) (err error) { @@ -1234,13 +1636,17 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Renameat(fromfd int, from string, tofd int, to string) (err error) { @@ -1254,13 +1660,17 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Revoke(path string) (err error) { @@ -1269,13 +1679,17 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rmdir(path string) (err error) { @@ -1284,17 +1698,21 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + r0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) newoffset = int64(int64(r1)<<32 | int64(r0)) if e1 != 0 { err = errnoErr(e1) @@ -1302,10 +1720,14 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1313,36 +1735,52 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err return } +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setlogin(name string) (err error) { @@ -1351,97 +1789,133 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrtable(rtable int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1449,26 +1923,38 @@ func Setsid() (pid int, err error) { return } +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Stat(path string, stat *Stat_t) (err error) { @@ -1477,13 +1963,17 @@ func Stat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Statfs(path string, stat *Statfs_t) (err error) { @@ -1492,13 +1982,17 @@ func Statfs(path string, stat *Statfs_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlink(path string, link string) (err error) { @@ -1512,13 +2006,17 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { @@ -1532,23 +2030,31 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Truncate(path string, length int64) (err error) { @@ -1557,21 +2063,29 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) oldmask = int(r0) return } +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlink(path string) (err error) { @@ -1580,13 +2094,17 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlinkat(dirfd int, path string, flags int) (err error) { @@ -1595,13 +2113,17 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unmount(path string, flags int) (err error) { @@ -1610,13 +2132,17 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func write(fd int, p []byte) (n int, err error) { @@ -1626,7 +2152,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1634,10 +2160,14 @@ func write(fd int, p []byte) (n int, err error) { return } +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + r0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1645,20 +2175,28 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1669,7 +2207,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1685,9 +2223,13 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error if err != nil { return } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s new file mode 100644 index 0000000000..087444250c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd 386 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 +DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 +DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 +DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 +DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 +DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 +DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 +DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 +DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 +DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 +DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 +DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 +DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 +DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setrlimit_trampoline_addr(SB)/4, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 +DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 +DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go index 04db8fa2fe..a05e5f4fff 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -1,4 +1,4 @@ -// go run mksyscall.go -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go +// go run mksyscall.go -openbsd -libc -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build openbsd && amd64 @@ -16,7 +16,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -24,20 +24,28 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -45,10 +53,14 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -56,30 +68,42 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -87,66 +111,94 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { @@ -156,7 +208,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -164,6 +216,10 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { @@ -173,17 +229,21 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -191,10 +251,14 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -202,10 +266,14 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -213,6 +281,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func utimes(path string, timeval *[2]Timeval) (err error) { @@ -221,27 +293,35 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -249,6 +329,10 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Madvise(b []byte, behav int) (err error) { @@ -258,13 +342,17 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlock(b []byte) (err error) { @@ -274,23 +362,31 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mprotect(b []byte, prot int) (err error) { @@ -300,13 +396,17 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Msync(b []byte, flags int) (err error) { @@ -316,13 +416,17 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlock(b []byte) (err error) { @@ -332,33 +436,45 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getdents(fd int, buf []byte) (n int, err error) { @@ -368,7 +484,7 @@ func Getdents(fd int, buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -376,6 +492,10 @@ func Getdents(fd int, buf []byte) (n int, err error) { return } +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getcwd(buf []byte) (n int, err error) { @@ -385,7 +505,7 @@ func Getcwd(buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -393,16 +513,24 @@ func Getcwd(buf []byte) (n int, err error) { return } +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { @@ -412,17 +540,21 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -430,6 +562,10 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, return } +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Access(path string, mode uint32) (err error) { @@ -438,23 +574,31 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chdir(path string) (err error) { @@ -463,13 +607,17 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chflags(path string, flags int) (err error) { @@ -478,13 +626,17 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chmod(path string, mode uint32) (err error) { @@ -493,13 +645,17 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chown(path string, uid int, gid int) (err error) { @@ -508,13 +664,17 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chroot(path string) (err error) { @@ -523,27 +683,49 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -551,33 +733,49 @@ func Dup(fd int) (nfd int, err error) { return } +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) return } +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -586,43 +784,59 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -631,23 +845,31 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { @@ -656,27 +878,35 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -684,16 +914,24 @@ func Fpathconf(fd int, name int) (val int, err error) { return } +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { @@ -702,71 +940,99 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) egid = int(r0) return } +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) gid = int(r0) return } +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -774,34 +1040,50 @@ func Getpgid(pid int) (pgid int, err error) { return } +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) pgrp = int(r0) return } +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) pid = int(r0) return } +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) ppid = int(r0) return } +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -809,20 +1091,28 @@ func Getpriority(which int, who int) (prio int, err error) { return } +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrtable() (rtable int, err error) { - r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) rtable = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -830,20 +1120,28 @@ func Getrtable() (rtable int, err error) { return } +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -851,46 +1149,66 @@ func Getsid(pid int) (sid int, err error) { return } +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) tainted = bool(r0 != 0) return } +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -898,6 +1216,10 @@ func Kqueue() (fd int, err error) { return } +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lchown(path string, uid int, gid int) (err error) { @@ -906,13 +1228,17 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Link(path string, link string) (err error) { @@ -926,13 +1252,17 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { @@ -946,23 +1276,31 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lstat(path string, stat *Stat_t) (err error) { @@ -971,13 +1309,17 @@ func Lstat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdir(path string, mode uint32) (err error) { @@ -986,13 +1328,17 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdirat(dirfd int, path string, mode uint32) (err error) { @@ -1001,13 +1347,17 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifo(path string, mode uint32) (err error) { @@ -1016,13 +1366,17 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifoat(dirfd int, path string, mode uint32) (err error) { @@ -1031,13 +1385,17 @@ func Mkfifoat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknod(path string, mode uint32, dev int) (err error) { @@ -1046,13 +1404,17 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { @@ -1061,23 +1423,31 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Open(path string, mode int, perm uint32) (fd int, err error) { @@ -1086,7 +1456,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1094,6 +1464,10 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { @@ -1102,7 +1476,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1110,6 +1484,10 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pathconf(path string, name int) (val int, err error) { @@ -1118,7 +1496,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1126,6 +1504,10 @@ func Pathconf(path string, name int) (val int, err error) { return } +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pread(fd int, p []byte, offset int64) (n int, err error) { @@ -1135,7 +1517,7 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1143,6 +1525,10 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pwrite(fd int, p []byte, offset int64) (n int, err error) { @@ -1152,7 +1538,7 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1160,6 +1546,10 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func read(fd int, p []byte) (n int, err error) { @@ -1169,7 +1559,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1177,6 +1567,10 @@ func read(fd int, p []byte) (n int, err error) { return } +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlink(path string, buf []byte) (n int, err error) { @@ -1191,7 +1585,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1199,6 +1593,10 @@ func Readlink(path string, buf []byte) (n int, err error) { return } +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { @@ -1213,7 +1611,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1221,6 +1619,10 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rename(from string, to string) (err error) { @@ -1234,13 +1636,17 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Renameat(fromfd int, from string, tofd int, to string) (err error) { @@ -1254,13 +1660,17 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Revoke(path string) (err error) { @@ -1269,13 +1679,17 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rmdir(path string) (err error) { @@ -1284,17 +1698,21 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) newoffset = int64(r0) if e1 != 0 { err = errnoErr(e1) @@ -1302,10 +1720,14 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1313,36 +1735,52 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err return } +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setlogin(name string) (err error) { @@ -1351,97 +1789,133 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrtable(rtable int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1449,26 +1923,38 @@ func Setsid() (pid int, err error) { return } +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Stat(path string, stat *Stat_t) (err error) { @@ -1477,13 +1963,17 @@ func Stat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Statfs(path string, stat *Statfs_t) (err error) { @@ -1492,13 +1982,17 @@ func Statfs(path string, stat *Statfs_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlink(path string, link string) (err error) { @@ -1512,13 +2006,17 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { @@ -1532,23 +2030,31 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Truncate(path string, length int64) (err error) { @@ -1557,21 +2063,29 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) oldmask = int(r0) return } +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlink(path string) (err error) { @@ -1580,13 +2094,17 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlinkat(dirfd int, path string, flags int) (err error) { @@ -1595,13 +2113,17 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unmount(path string, flags int) (err error) { @@ -1610,13 +2132,17 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func write(fd int, p []byte) (n int, err error) { @@ -1626,7 +2152,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1634,10 +2160,14 @@ func write(fd int, p []byte) (n int, err error) { return } +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1645,20 +2175,28 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1669,7 +2207,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1685,9 +2223,13 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error if err != nil { return } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s new file mode 100644 index 0000000000..5782cd1084 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd amd64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go index 69f8030067..b2da8e50cc 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -1,4 +1,4 @@ -// go run mksyscall.go -l32 -openbsd -arm -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go +// go run mksyscall.go -l32 -openbsd -arm -libc -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build openbsd && arm @@ -16,7 +16,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -24,20 +24,28 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -45,10 +53,14 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -56,30 +68,42 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -87,66 +111,94 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { @@ -156,7 +208,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -164,6 +216,10 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { @@ -173,17 +229,21 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -191,10 +251,14 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -202,10 +266,14 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -213,6 +281,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func utimes(path string, timeval *[2]Timeval) (err error) { @@ -221,27 +293,35 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -249,6 +329,10 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Madvise(b []byte, behav int) (err error) { @@ -258,13 +342,17 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlock(b []byte) (err error) { @@ -274,23 +362,31 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mprotect(b []byte, prot int) (err error) { @@ -300,13 +396,17 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Msync(b []byte, flags int) (err error) { @@ -316,13 +416,17 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlock(b []byte) (err error) { @@ -332,33 +436,45 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getdents(fd int, buf []byte) (n int, err error) { @@ -368,7 +484,7 @@ func Getdents(fd int, buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -376,6 +492,10 @@ func Getdents(fd int, buf []byte) (n int, err error) { return } +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getcwd(buf []byte) (n int, err error) { @@ -385,7 +505,7 @@ func Getcwd(buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -393,16 +513,24 @@ func Getcwd(buf []byte) (n int, err error) { return } +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { @@ -412,17 +540,21 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -430,6 +562,10 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, return } +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Access(path string, mode uint32) (err error) { @@ -438,23 +574,31 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chdir(path string) (err error) { @@ -463,13 +607,17 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chflags(path string, flags int) (err error) { @@ -478,13 +626,17 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chmod(path string, mode uint32) (err error) { @@ -493,13 +645,17 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chown(path string, uid int, gid int) (err error) { @@ -508,13 +664,17 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chroot(path string) (err error) { @@ -523,27 +683,49 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -551,33 +733,49 @@ func Dup(fd int) (nfd int, err error) { return } +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) return } +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -586,43 +784,59 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -631,23 +845,31 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { @@ -656,27 +878,35 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -684,16 +914,24 @@ func Fpathconf(fd int, name int) (val int, err error) { return } +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { @@ -702,71 +940,99 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + _, _, e1 := syscall_syscall6(libc_ftruncate_trampoline_addr, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) egid = int(r0) return } +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) gid = int(r0) return } +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -774,34 +1040,50 @@ func Getpgid(pid int) (pgid int, err error) { return } +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) pgrp = int(r0) return } +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) pid = int(r0) return } +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) ppid = int(r0) return } +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -809,20 +1091,28 @@ func Getpriority(which int, who int) (prio int, err error) { return } +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrtable() (rtable int, err error) { - r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) rtable = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -830,20 +1120,28 @@ func Getrtable() (rtable int, err error) { return } +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -851,46 +1149,66 @@ func Getsid(pid int) (sid int, err error) { return } +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) tainted = bool(r0 != 0) return } +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -898,6 +1216,10 @@ func Kqueue() (fd int, err error) { return } +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lchown(path string, uid int, gid int) (err error) { @@ -906,13 +1228,17 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Link(path string, link string) (err error) { @@ -926,13 +1252,17 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { @@ -946,23 +1276,31 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lstat(path string, stat *Stat_t) (err error) { @@ -971,13 +1309,17 @@ func Lstat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdir(path string, mode uint32) (err error) { @@ -986,13 +1328,17 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdirat(dirfd int, path string, mode uint32) (err error) { @@ -1001,13 +1347,17 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifo(path string, mode uint32) (err error) { @@ -1016,13 +1366,17 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifoat(dirfd int, path string, mode uint32) (err error) { @@ -1031,13 +1385,17 @@ func Mkfifoat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknod(path string, mode uint32, dev int) (err error) { @@ -1046,13 +1404,17 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { @@ -1061,23 +1423,31 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Open(path string, mode int, perm uint32) (fd int, err error) { @@ -1086,7 +1456,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1094,6 +1464,10 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { @@ -1102,7 +1476,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1110,6 +1484,10 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pathconf(path string, name int) (val int, err error) { @@ -1118,7 +1496,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1126,6 +1504,10 @@ func Pathconf(path string, name int) (val int, err error) { return } +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pread(fd int, p []byte, offset int64) (n int, err error) { @@ -1135,7 +1517,7 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1143,6 +1525,10 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pwrite(fd int, p []byte, offset int64) (n int, err error) { @@ -1152,7 +1538,7 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1160,6 +1546,10 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func read(fd int, p []byte) (n int, err error) { @@ -1169,7 +1559,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1177,6 +1567,10 @@ func read(fd int, p []byte) (n int, err error) { return } +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlink(path string, buf []byte) (n int, err error) { @@ -1191,7 +1585,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1199,6 +1593,10 @@ func Readlink(path string, buf []byte) (n int, err error) { return } +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { @@ -1213,7 +1611,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1221,6 +1619,10 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rename(from string, to string) (err error) { @@ -1234,13 +1636,17 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Renameat(fromfd int, from string, tofd int, to string) (err error) { @@ -1254,13 +1660,17 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Revoke(path string) (err error) { @@ -1269,13 +1679,17 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rmdir(path string) (err error) { @@ -1284,17 +1698,21 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + r0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) newoffset = int64(int64(r1)<<32 | int64(r0)) if e1 != 0 { err = errnoErr(e1) @@ -1302,10 +1720,14 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1313,36 +1735,52 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err return } +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setlogin(name string) (err error) { @@ -1351,97 +1789,133 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrtable(rtable int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1449,26 +1923,38 @@ func Setsid() (pid int, err error) { return } +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Stat(path string, stat *Stat_t) (err error) { @@ -1477,13 +1963,17 @@ func Stat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Statfs(path string, stat *Statfs_t) (err error) { @@ -1492,13 +1982,17 @@ func Statfs(path string, stat *Statfs_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlink(path string, link string) (err error) { @@ -1512,13 +2006,17 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { @@ -1532,23 +2030,31 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Truncate(path string, length int64) (err error) { @@ -1557,21 +2063,29 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + _, _, e1 := syscall_syscall6(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) oldmask = int(r0) return } +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlink(path string) (err error) { @@ -1580,13 +2094,17 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlinkat(dirfd int, path string, flags int) (err error) { @@ -1595,13 +2113,17 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unmount(path string, flags int) (err error) { @@ -1610,13 +2132,17 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func write(fd int, p []byte) (n int, err error) { @@ -1626,7 +2152,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1634,10 +2160,14 @@ func write(fd int, p []byte) (n int, err error) { return } +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + r0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1645,20 +2175,28 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1669,7 +2207,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1685,9 +2223,13 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error if err != nil { return } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s new file mode 100644 index 0000000000..cf310420c9 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd arm +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 +DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 +DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 +DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 +DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 +DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 +DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 +DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 +DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 +DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 +DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 +DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 +DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 +DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setrlimit_trampoline_addr(SB)/4, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 +DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 +DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go index c96a505178..048b2655e6 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go @@ -1,4 +1,4 @@ -// go run mksyscall.go -openbsd -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go +// go run mksyscall.go -openbsd -libc -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build openbsd && arm64 @@ -16,7 +16,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -24,20 +24,28 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -45,10 +53,14 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -56,30 +68,42 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -87,66 +111,94 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { @@ -156,7 +208,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -164,6 +216,10 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { @@ -173,17 +229,21 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -191,10 +251,14 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -202,10 +266,14 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -213,6 +281,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func utimes(path string, timeval *[2]Timeval) (err error) { @@ -221,27 +293,35 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -249,6 +329,10 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Madvise(b []byte, behav int) (err error) { @@ -258,13 +342,17 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlock(b []byte) (err error) { @@ -274,23 +362,31 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mprotect(b []byte, prot int) (err error) { @@ -300,13 +396,17 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Msync(b []byte, flags int) (err error) { @@ -316,13 +416,17 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlock(b []byte) (err error) { @@ -332,33 +436,45 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getdents(fd int, buf []byte) (n int, err error) { @@ -368,7 +484,7 @@ func Getdents(fd int, buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -376,6 +492,10 @@ func Getdents(fd int, buf []byte) (n int, err error) { return } +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getcwd(buf []byte) (n int, err error) { @@ -385,7 +505,7 @@ func Getcwd(buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -393,16 +513,24 @@ func Getcwd(buf []byte) (n int, err error) { return } +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { @@ -412,17 +540,21 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -430,6 +562,10 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, return } +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Access(path string, mode uint32) (err error) { @@ -438,23 +574,31 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chdir(path string) (err error) { @@ -463,13 +607,17 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chflags(path string, flags int) (err error) { @@ -478,13 +626,17 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chmod(path string, mode uint32) (err error) { @@ -493,13 +645,17 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chown(path string, uid int, gid int) (err error) { @@ -508,13 +664,17 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chroot(path string) (err error) { @@ -523,27 +683,49 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -551,33 +733,49 @@ func Dup(fd int) (nfd int, err error) { return } +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) return } +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -586,43 +784,59 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -631,23 +845,31 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { @@ -656,27 +878,35 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -684,16 +914,24 @@ func Fpathconf(fd int, name int) (val int, err error) { return } +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { @@ -702,71 +940,99 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) egid = int(r0) return } +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) gid = int(r0) return } +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -774,34 +1040,50 @@ func Getpgid(pid int) (pgid int, err error) { return } +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) pgrp = int(r0) return } +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) pid = int(r0) return } +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) ppid = int(r0) return } +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -809,20 +1091,28 @@ func Getpriority(which int, who int) (prio int, err error) { return } +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrtable() (rtable int, err error) { - r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) rtable = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -830,20 +1120,28 @@ func Getrtable() (rtable int, err error) { return } +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -851,46 +1149,66 @@ func Getsid(pid int) (sid int, err error) { return } +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) tainted = bool(r0 != 0) return } +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -898,6 +1216,10 @@ func Kqueue() (fd int, err error) { return } +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lchown(path string, uid int, gid int) (err error) { @@ -906,13 +1228,17 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Link(path string, link string) (err error) { @@ -926,13 +1252,17 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { @@ -946,23 +1276,31 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lstat(path string, stat *Stat_t) (err error) { @@ -971,13 +1309,17 @@ func Lstat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdir(path string, mode uint32) (err error) { @@ -986,13 +1328,17 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdirat(dirfd int, path string, mode uint32) (err error) { @@ -1001,13 +1347,17 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifo(path string, mode uint32) (err error) { @@ -1016,13 +1366,17 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifoat(dirfd int, path string, mode uint32) (err error) { @@ -1031,13 +1385,17 @@ func Mkfifoat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknod(path string, mode uint32, dev int) (err error) { @@ -1046,13 +1404,17 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { @@ -1061,23 +1423,31 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Open(path string, mode int, perm uint32) (fd int, err error) { @@ -1086,7 +1456,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1094,6 +1464,10 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { @@ -1102,7 +1476,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1110,6 +1484,10 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pathconf(path string, name int) (val int, err error) { @@ -1118,7 +1496,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1126,6 +1504,10 @@ func Pathconf(path string, name int) (val int, err error) { return } +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pread(fd int, p []byte, offset int64) (n int, err error) { @@ -1135,7 +1517,7 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1143,6 +1525,10 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pwrite(fd int, p []byte, offset int64) (n int, err error) { @@ -1152,7 +1538,7 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1160,6 +1546,10 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func read(fd int, p []byte) (n int, err error) { @@ -1169,7 +1559,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1177,6 +1567,10 @@ func read(fd int, p []byte) (n int, err error) { return } +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlink(path string, buf []byte) (n int, err error) { @@ -1191,7 +1585,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1199,6 +1593,10 @@ func Readlink(path string, buf []byte) (n int, err error) { return } +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { @@ -1213,7 +1611,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1221,6 +1619,10 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rename(from string, to string) (err error) { @@ -1234,13 +1636,17 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Renameat(fromfd int, from string, tofd int, to string) (err error) { @@ -1254,13 +1660,17 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Revoke(path string) (err error) { @@ -1269,13 +1679,17 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rmdir(path string) (err error) { @@ -1284,17 +1698,21 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) newoffset = int64(r0) if e1 != 0 { err = errnoErr(e1) @@ -1302,10 +1720,14 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1313,36 +1735,52 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err return } +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setlogin(name string) (err error) { @@ -1351,97 +1789,133 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrtable(rtable int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1449,26 +1923,38 @@ func Setsid() (pid int, err error) { return } +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Stat(path string, stat *Stat_t) (err error) { @@ -1477,13 +1963,17 @@ func Stat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Statfs(path string, stat *Statfs_t) (err error) { @@ -1492,13 +1982,17 @@ func Statfs(path string, stat *Statfs_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlink(path string, link string) (err error) { @@ -1512,13 +2006,17 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { @@ -1532,23 +2030,31 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Truncate(path string, length int64) (err error) { @@ -1557,21 +2063,29 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) oldmask = int(r0) return } +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlink(path string) (err error) { @@ -1580,13 +2094,17 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlinkat(dirfd int, path string, flags int) (err error) { @@ -1595,13 +2113,17 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unmount(path string, flags int) (err error) { @@ -1610,13 +2132,17 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func write(fd int, p []byte) (n int, err error) { @@ -1626,7 +2152,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1634,10 +2160,14 @@ func write(fd int, p []byte) (n int, err error) { return } +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1645,20 +2175,28 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1669,7 +2207,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1685,9 +2223,13 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error if err != nil { return } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s new file mode 100644 index 0000000000..484bb42e0a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd arm64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go index 016d959bc6..6f33e37e72 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go @@ -1,4 +1,4 @@ -// go run mksyscall.go -openbsd -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go +// go run mksyscall.go -openbsd -libc -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build openbsd && mips64 @@ -16,7 +16,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -24,20 +24,28 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -45,10 +53,14 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -56,30 +68,42 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -87,66 +111,94 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { @@ -156,7 +208,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -164,6 +216,10 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { @@ -173,17 +229,21 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -191,10 +251,14 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -202,10 +266,14 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -213,6 +281,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func utimes(path string, timeval *[2]Timeval) (err error) { @@ -221,27 +293,35 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -249,6 +329,10 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Madvise(b []byte, behav int) (err error) { @@ -258,13 +342,17 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlock(b []byte) (err error) { @@ -274,23 +362,31 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mprotect(b []byte, prot int) (err error) { @@ -300,13 +396,17 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Msync(b []byte, flags int) (err error) { @@ -316,13 +416,17 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlock(b []byte) (err error) { @@ -332,33 +436,45 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getdents(fd int, buf []byte) (n int, err error) { @@ -368,7 +484,7 @@ func Getdents(fd int, buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -376,6 +492,10 @@ func Getdents(fd int, buf []byte) (n int, err error) { return } +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getcwd(buf []byte) (n int, err error) { @@ -385,7 +505,7 @@ func Getcwd(buf []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -393,16 +513,24 @@ func Getcwd(buf []byte) (n int, err error) { return } +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { @@ -412,17 +540,21 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -430,6 +562,10 @@ func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, return } +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Access(path string, mode uint32) (err error) { @@ -438,23 +574,31 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chdir(path string) (err error) { @@ -463,13 +607,17 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chflags(path string, flags int) (err error) { @@ -478,13 +626,17 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chmod(path string, mode uint32) (err error) { @@ -493,13 +645,17 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chown(path string, uid int, gid int) (err error) { @@ -508,13 +664,17 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chroot(path string) (err error) { @@ -523,27 +683,49 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -551,33 +733,49 @@ func Dup(fd int) (nfd int, err error) { return } +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup3(from int, to int, flags int) (err error) { - _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) return } +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -586,43 +784,59 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -631,23 +845,31 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { @@ -656,27 +878,35 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -684,16 +914,24 @@ func Fpathconf(fd int, name int) (val int, err error) { return } +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { @@ -702,71 +940,99 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) egid = int(r0) return } +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) gid = int(r0) return } +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -774,34 +1040,50 @@ func Getpgid(pid int) (pgid int, err error) { return } +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) pgrp = int(r0) return } +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) pid = int(r0) return } +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) ppid = int(r0) return } +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -809,20 +1091,28 @@ func Getpriority(which int, who int) (prio int, err error) { return } +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrtable() (rtable int, err error) { - r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) rtable = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -830,20 +1120,28 @@ func Getrtable() (rtable int, err error) { return } +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -851,46 +1149,66 @@ func Getsid(pid int) (sid int, err error) { return } +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) uid = int(r0) return } +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) tainted = bool(r0 != 0) return } +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -898,6 +1216,10 @@ func Kqueue() (fd int, err error) { return } +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lchown(path string, uid int, gid int) (err error) { @@ -906,13 +1228,17 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Link(path string, link string) (err error) { @@ -926,13 +1252,17 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { @@ -946,23 +1276,31 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lstat(path string, stat *Stat_t) (err error) { @@ -971,13 +1309,17 @@ func Lstat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdir(path string, mode uint32) (err error) { @@ -986,13 +1328,17 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdirat(dirfd int, path string, mode uint32) (err error) { @@ -1001,13 +1347,17 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifo(path string, mode uint32) (err error) { @@ -1016,13 +1366,17 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifoat(dirfd int, path string, mode uint32) (err error) { @@ -1031,13 +1385,17 @@ func Mkfifoat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknod(path string, mode uint32, dev int) (err error) { @@ -1046,13 +1404,17 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { @@ -1061,23 +1423,31 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Open(path string, mode int, perm uint32) (fd int, err error) { @@ -1086,7 +1456,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1094,6 +1464,10 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { @@ -1102,7 +1476,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1110,6 +1484,10 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pathconf(path string, name int) (val int, err error) { @@ -1118,7 +1496,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1126,6 +1504,10 @@ func Pathconf(path string, name int) (val int, err error) { return } +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pread(fd int, p []byte, offset int64) (n int, err error) { @@ -1135,7 +1517,7 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1143,6 +1525,10 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pwrite(fd int, p []byte, offset int64) (n int, err error) { @@ -1152,7 +1538,7 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1160,6 +1546,10 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { return } +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func read(fd int, p []byte) (n int, err error) { @@ -1169,7 +1559,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1177,6 +1567,10 @@ func read(fd int, p []byte) (n int, err error) { return } +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlink(path string, buf []byte) (n int, err error) { @@ -1191,7 +1585,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1199,6 +1593,10 @@ func Readlink(path string, buf []byte) (n int, err error) { return } +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { @@ -1213,7 +1611,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1221,6 +1619,10 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rename(from string, to string) (err error) { @@ -1234,13 +1636,17 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Renameat(fromfd int, from string, tofd int, to string) (err error) { @@ -1254,13 +1660,17 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Revoke(path string) (err error) { @@ -1269,13 +1679,17 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rmdir(path string) (err error) { @@ -1284,17 +1698,21 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) newoffset = int64(r0) if e1 != 0 { err = errnoErr(e1) @@ -1302,10 +1720,14 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { - r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1313,36 +1735,52 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err return } +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setlogin(name string) (err error) { @@ -1351,97 +1789,133 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresgid(rgid int, egid int, sgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setresuid(ruid int, euid int, suid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrtable(rtable int) (err error) { - _, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1449,26 +1923,38 @@ func Setsid() (pid int, err error) { return } +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Stat(path string, stat *Stat_t) (err error) { @@ -1477,13 +1963,17 @@ func Stat(path string, stat *Stat_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Statfs(path string, stat *Statfs_t) (err error) { @@ -1492,13 +1982,17 @@ func Statfs(path string, stat *Statfs_t) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlink(path string, link string) (err error) { @@ -1512,13 +2006,17 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { @@ -1532,23 +2030,31 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Truncate(path string, length int64) (err error) { @@ -1557,21 +2063,29 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) oldmask = int(r0) return } +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlink(path string) (err error) { @@ -1580,13 +2094,17 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlinkat(dirfd int, path string, flags int) (err error) { @@ -1595,13 +2113,17 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unmount(path string, flags int) (err error) { @@ -1610,13 +2132,17 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func write(fd int, p []byte) (n int, err error) { @@ -1626,7 +2152,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1634,10 +2160,14 @@ func write(fd int, p []byte) (n int, err error) { return } +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1645,20 +2175,28 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1669,7 +2207,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1685,9 +2223,13 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error if err != nil { return } - _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s new file mode 100644 index 0000000000..55af27263a --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd mips64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go new file mode 100644 index 0000000000..330cf7f7ac --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go @@ -0,0 +1,2235 @@ +// go run mksyscall.go -openbsd -libc -tags openbsd,ppc64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_ppc64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && ppc64 +// +build openbsd,ppc64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s new file mode 100644 index 0000000000..4028255b0d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s @@ -0,0 +1,802 @@ +// go run mkasm.go openbsd ppc64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getgroups(SB) + RET +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setgroups(SB) + RET +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_wait4(SB) + RET +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_accept(SB) + RET +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_bind(SB) + RET +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_connect(SB) + RET +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_socket(SB) + RET +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getsockopt(SB) + RET +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setsockopt(SB) + RET +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpeername(SB) + RET +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getsockname(SB) + RET +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_shutdown(SB) + RET +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_socketpair(SB) + RET +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_recvfrom(SB) + RET +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sendto(SB) + RET +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_recvmsg(SB) + RET +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sendmsg(SB) + RET +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_kevent(SB) + RET +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_utimes(SB) + RET +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_futimes(SB) + RET +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_poll(SB) + RET +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_madvise(SB) + RET +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mlock(SB) + RET +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mlockall(SB) + RET +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mprotect(SB) + RET +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_msync(SB) + RET +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_munlock(SB) + RET +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_munlockall(SB) + RET +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pipe2(SB) + RET +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getdents(SB) + RET +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getcwd(SB) + RET +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_ioctl(SB) + RET +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sysctl(SB) + RET +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_ppoll(SB) + RET +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_access(SB) + RET +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_adjtime(SB) + RET +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chdir(SB) + RET +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chflags(SB) + RET +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chmod(SB) + RET +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chown(SB) + RET +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chroot(SB) + RET +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_clock_gettime(SB) + RET +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_close(SB) + RET +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_dup(SB) + RET +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_dup2(SB) + RET +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_dup3(SB) + RET +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_exit(SB) + RET +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_faccessat(SB) + RET +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchdir(SB) + RET +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchflags(SB) + RET +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchmod(SB) + RET +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchmodat(SB) + RET +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchown(SB) + RET +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchownat(SB) + RET +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_flock(SB) + RET +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fpathconf(SB) + RET +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fstat(SB) + RET +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fstatat(SB) + RET +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fstatfs(SB) + RET +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fsync(SB) + RET +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_ftruncate(SB) + RET +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getegid(SB) + RET +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_geteuid(SB) + RET +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getgid(SB) + RET +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpgid(SB) + RET +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpgrp(SB) + RET +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpid(SB) + RET +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getppid(SB) + RET +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpriority(SB) + RET +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getrlimit(SB) + RET +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getrtable(SB) + RET +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getrusage(SB) + RET +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getsid(SB) + RET +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_gettimeofday(SB) + RET +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getuid(SB) + RET +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_issetugid(SB) + RET +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_kill(SB) + RET +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_kqueue(SB) + RET +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_lchown(SB) + RET +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_link(SB) + RET +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_linkat(SB) + RET +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_listen(SB) + RET +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_lstat(SB) + RET +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkdir(SB) + RET +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkdirat(SB) + RET +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkfifo(SB) + RET +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkfifoat(SB) + RET +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mknod(SB) + RET +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mknodat(SB) + RET +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_nanosleep(SB) + RET +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_open(SB) + RET +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_openat(SB) + RET +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pathconf(SB) + RET +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pread(SB) + RET +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pwrite(SB) + RET +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_read(SB) + RET +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_readlink(SB) + RET +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_readlinkat(SB) + RET +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_rename(SB) + RET +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_renameat(SB) + RET +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_revoke(SB) + RET +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_rmdir(SB) + RET +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_lseek(SB) + RET +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_select(SB) + RET +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setegid(SB) + RET +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_seteuid(SB) + RET +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setgid(SB) + RET +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setlogin(SB) + RET +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setpgid(SB) + RET +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setpriority(SB) + RET +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setregid(SB) + RET +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setreuid(SB) + RET +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setresgid(SB) + RET +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setresuid(SB) + RET +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setrlimit(SB) + RET +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setrtable(SB) + RET +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setsid(SB) + RET +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_settimeofday(SB) + RET +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setuid(SB) + RET +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_stat(SB) + RET +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_statfs(SB) + RET +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_symlink(SB) + RET +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_symlinkat(SB) + RET +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sync(SB) + RET +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_truncate(SB) + RET +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_umask(SB) + RET +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_unlink(SB) + RET +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_unlinkat(SB) + RET +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_unmount(SB) + RET +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_write(SB) + RET +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mmap(SB) + RET +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_munmap(SB) + RET +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_utimensat(SB) + RET +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go new file mode 100644 index 0000000000..5f24de0d9d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go @@ -0,0 +1,2235 @@ +// go run mksyscall.go -openbsd -libc -tags openbsd,riscv64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_riscv64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && riscv64 +// +build openbsd,riscv64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s new file mode 100644 index 0000000000..e1fbd4dfa8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd riscv64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go index fdf53f8daf..78d4a4240e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -38,6 +38,7 @@ import ( //go:cgo_import_dynamic libc_chmod chmod "libc.so" //go:cgo_import_dynamic libc_chown chown "libc.so" //go:cgo_import_dynamic libc_chroot chroot "libc.so" +//go:cgo_import_dynamic libc_clockgettime clockgettime "libc.so" //go:cgo_import_dynamic libc_close close "libc.so" //go:cgo_import_dynamic libc_creat creat "libc.so" //go:cgo_import_dynamic libc_dup dup "libc.so" @@ -147,6 +148,8 @@ import ( //go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" //go:cgo_import_dynamic libc_port_get port_get "libc.so" //go:cgo_import_dynamic libc_port_getn port_getn "libc.so" +//go:cgo_import_dynamic libc_putmsg putmsg "libc.so" +//go:cgo_import_dynamic libc_getmsg getmsg "libc.so" //go:linkname procpipe libc_pipe //go:linkname procpipe2 libc_pipe2 @@ -175,6 +178,7 @@ import ( //go:linkname procChmod libc_chmod //go:linkname procChown libc_chown //go:linkname procChroot libc_chroot +//go:linkname procClockGettime libc_clockgettime //go:linkname procClose libc_close //go:linkname procCreat libc_creat //go:linkname procDup libc_dup @@ -284,6 +288,8 @@ import ( //go:linkname procport_dissociate libc_port_dissociate //go:linkname procport_get libc_port_get //go:linkname procport_getn libc_port_getn +//go:linkname procputmsg libc_putmsg +//go:linkname procgetmsg libc_getmsg var ( procpipe, @@ -313,6 +319,7 @@ var ( procChmod, procChown, procChroot, + procClockGettime, procClose, procCreat, procDup, @@ -421,7 +428,9 @@ var ( procport_associate, procport_dissociate, procport_get, - procport_getn syscallFunc + procport_getn, + procputmsg, + procgetmsg syscallFunc ) // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -744,6 +753,16 @@ func Chroot(path string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0) if e1 != 0 { @@ -2065,3 +2084,23 @@ func port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Times } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(flags), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0) + if e1 != 0 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go index 9e9d0b2a9c..55e0484719 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go @@ -17,6 +17,7 @@ var sysctlMib = []mibentry{ {"ddb.max_line", []_C_int{9, 3}}, {"ddb.max_width", []_C_int{9, 2}}, {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, {"ddb.radix", []_C_int{9, 1}}, {"ddb.tab_stop_width", []_C_int{9, 4}}, {"ddb.trigger", []_C_int{9, 8}}, @@ -33,29 +34,37 @@ var sysctlMib = []mibentry{ {"hw.ncpufound", []_C_int{6, 21}}, {"hw.ncpuonline", []_C_int{6, 25}}, {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, {"hw.product", []_C_int{6, 15}}, {"hw.serialno", []_C_int{6, 17}}, {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, {"hw.usermem", []_C_int{6, 20}}, {"hw.uuid", []_C_int{6, 18}}, {"hw.vendor", []_C_int{6, 14}}, {"hw.version", []_C_int{6, 16}}, - {"kern.arandom", []_C_int{1, 37}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, {"kern.boottime", []_C_int{1, 21}}, {"kern.bufcachepercent", []_C_int{1, 72}}, {"kern.ccpu", []_C_int{1, 45}}, {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, {"kern.consdev", []_C_int{1, 75}}, {"kern.cp_time", []_C_int{1, 40}}, {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cryptodevallowsoft", []_C_int{1, 53}}, + {"kern.cpustats", []_C_int{1, 85}}, {"kern.domainname", []_C_int{1, 22}}, {"kern.file", []_C_int{1, 73}}, {"kern.forkstat", []_C_int{1, 42}}, {"kern.fscale", []_C_int{1, 46}}, {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, {"kern.hostid", []_C_int{1, 11}}, {"kern.hostname", []_C_int{1, 10}}, {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, @@ -78,17 +87,16 @@ var sysctlMib = []mibentry{ {"kern.ngroups", []_C_int{1, 18}}, {"kern.nosuidcoredump", []_C_int{1, 32}}, {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, {"kern.nthreads", []_C_int{1, 26}}, {"kern.numvnodes", []_C_int{1, 58}}, {"kern.osrelease", []_C_int{1, 2}}, {"kern.osrevision", []_C_int{1, 3}}, {"kern.ostype", []_C_int{1, 1}}, {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, {"kern.pool_debug", []_C_int{1, 77}}, {"kern.posix1version", []_C_int{1, 17}}, {"kern.proc", []_C_int{1, 66}}, - {"kern.random", []_C_int{1, 31}}, {"kern.rawpartition", []_C_int{1, 24}}, {"kern.saved_ids", []_C_int{1, 20}}, {"kern.securelevel", []_C_int{1, 9}}, @@ -106,21 +114,20 @@ var sysctlMib = []mibentry{ {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, {"kern.timecounter.tick", []_C_int{1, 69, 1}}, {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.tty.maxptys", []_C_int{1, 44, 6}}, - {"kern.tty.nptys", []_C_int{1, 44, 7}}, + {"kern.timeout_stats", []_C_int{1, 87}}, {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, {"kern.ttycount", []_C_int{1, 57}}, - {"kern.userasymcrypto", []_C_int{1, 60}}, - {"kern.usercrypto", []_C_int{1, 52}}, - {"kern.usermount", []_C_int{1, 30}}, + {"kern.utc_offset", []_C_int{1, 88}}, {"kern.version", []_C_int{1, 4}}, - {"kern.vnode", []_C_int{1, 13}}, + {"kern.video", []_C_int{1, 89}}, {"kern.watchdog.auto", []_C_int{1, 64, 2}}, {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, {"net.bpf.bufsize", []_C_int{4, 31, 1}}, {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, @@ -148,7 +155,9 @@ var sysctlMib = []mibentry{ {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, @@ -157,8 +166,10 @@ var sysctlMib = []mibentry{ {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, @@ -175,9 +186,7 @@ var sysctlMib = []mibentry{ {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}}, {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, @@ -191,6 +200,7 @@ var sysctlMib = []mibentry{ {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, @@ -198,9 +208,12 @@ var sysctlMib = []mibentry{ {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, @@ -213,13 +226,8 @@ var sysctlMib = []mibentry{ {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}}, {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}}, - {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}}, - {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}}, {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}}, {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, @@ -232,20 +240,19 @@ var sysctlMib = []mibentry{ {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}}, - {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}}, {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}}, {"net.key.sadb_dump", []_C_int{4, 30, 1}}, {"net.key.spd_dump", []_C_int{4, 30, 2}}, {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, @@ -254,12 +261,12 @@ var sysctlMib = []mibentry{ {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, {"net.mpls.ttl", []_C_int{4, 33, 2}}, {"net.pflow.stats", []_C_int{4, 34, 1}}, {"net.pipex.enable", []_C_int{4, 35, 1}}, {"vm.anonmin", []_C_int{2, 7}}, {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, {"vm.maxslp", []_C_int{2, 10}}, {"vm.nkmempages", []_C_int{2, 6}}, {"vm.psstrings", []_C_int{2, 3}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go index adecd09667..d2243cf83f 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go @@ -36,23 +36,29 @@ var sysctlMib = []mibentry{ {"hw.pagesize", []_C_int{6, 7}}, {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, {"hw.product", []_C_int{6, 15}}, {"hw.serialno", []_C_int{6, 17}}, {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, {"hw.usermem", []_C_int{6, 20}}, {"hw.uuid", []_C_int{6, 18}}, {"hw.vendor", []_C_int{6, 14}}, {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, {"kern.allowkmem", []_C_int{1, 52}}, {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, {"kern.boottime", []_C_int{1, 21}}, {"kern.bufcachepercent", []_C_int{1, 72}}, {"kern.ccpu", []_C_int{1, 45}}, {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, {"kern.consdev", []_C_int{1, 75}}, {"kern.cp_time", []_C_int{1, 40}}, {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.dnsjackport", []_C_int{1, 13}}, + {"kern.cpustats", []_C_int{1, 85}}, {"kern.domainname", []_C_int{1, 22}}, {"kern.file", []_C_int{1, 73}}, {"kern.forkstat", []_C_int{1, 42}}, @@ -81,13 +87,13 @@ var sysctlMib = []mibentry{ {"kern.ngroups", []_C_int{1, 18}}, {"kern.nosuidcoredump", []_C_int{1, 32}}, {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, {"kern.nthreads", []_C_int{1, 26}}, {"kern.numvnodes", []_C_int{1, 58}}, {"kern.osrelease", []_C_int{1, 2}}, {"kern.osrevision", []_C_int{1, 3}}, {"kern.ostype", []_C_int{1, 1}}, {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, {"kern.pool_debug", []_C_int{1, 77}}, {"kern.posix1version", []_C_int{1, 17}}, {"kern.proc", []_C_int{1, 66}}, @@ -108,15 +114,19 @@ var sysctlMib = []mibentry{ {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, {"kern.timecounter.tick", []_C_int{1, 69, 1}}, {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, {"kern.watchdog.auto", []_C_int{1, 64, 2}}, {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, {"kern.wxabort", []_C_int{1, 74}}, {"net.bpf.bufsize", []_C_int{4, 31, 1}}, {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, @@ -176,7 +186,6 @@ var sysctlMib = []mibentry{ {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, @@ -252,12 +261,12 @@ var sysctlMib = []mibentry{ {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, {"net.mpls.ttl", []_C_int{4, 33, 2}}, {"net.pflow.stats", []_C_int{4, 34, 1}}, {"net.pipex.enable", []_C_int{4, 35, 1}}, {"vm.anonmin", []_C_int{2, 7}}, {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, {"vm.maxslp", []_C_int{2, 10}}, {"vm.nkmempages", []_C_int{2, 6}}, {"vm.psstrings", []_C_int{2, 3}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go index 8ea52a4a18..82dc51bd8b 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go @@ -17,6 +17,7 @@ var sysctlMib = []mibentry{ {"ddb.max_line", []_C_int{9, 3}}, {"ddb.max_width", []_C_int{9, 2}}, {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, {"ddb.radix", []_C_int{9, 1}}, {"ddb.tab_stop_width", []_C_int{9, 4}}, {"ddb.trigger", []_C_int{9, 8}}, @@ -33,29 +34,37 @@ var sysctlMib = []mibentry{ {"hw.ncpufound", []_C_int{6, 21}}, {"hw.ncpuonline", []_C_int{6, 25}}, {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, {"hw.product", []_C_int{6, 15}}, {"hw.serialno", []_C_int{6, 17}}, {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, {"hw.usermem", []_C_int{6, 20}}, {"hw.uuid", []_C_int{6, 18}}, {"hw.vendor", []_C_int{6, 14}}, {"hw.version", []_C_int{6, 16}}, - {"kern.arandom", []_C_int{1, 37}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, {"kern.boottime", []_C_int{1, 21}}, {"kern.bufcachepercent", []_C_int{1, 72}}, {"kern.ccpu", []_C_int{1, 45}}, {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, {"kern.consdev", []_C_int{1, 75}}, {"kern.cp_time", []_C_int{1, 40}}, {"kern.cp_time2", []_C_int{1, 71}}, - {"kern.cryptodevallowsoft", []_C_int{1, 53}}, + {"kern.cpustats", []_C_int{1, 85}}, {"kern.domainname", []_C_int{1, 22}}, {"kern.file", []_C_int{1, 73}}, {"kern.forkstat", []_C_int{1, 42}}, {"kern.fscale", []_C_int{1, 46}}, {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, {"kern.hostid", []_C_int{1, 11}}, {"kern.hostname", []_C_int{1, 10}}, {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, @@ -78,17 +87,16 @@ var sysctlMib = []mibentry{ {"kern.ngroups", []_C_int{1, 18}}, {"kern.nosuidcoredump", []_C_int{1, 32}}, {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, {"kern.nthreads", []_C_int{1, 26}}, {"kern.numvnodes", []_C_int{1, 58}}, {"kern.osrelease", []_C_int{1, 2}}, {"kern.osrevision", []_C_int{1, 3}}, {"kern.ostype", []_C_int{1, 1}}, {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, {"kern.pool_debug", []_C_int{1, 77}}, {"kern.posix1version", []_C_int{1, 17}}, {"kern.proc", []_C_int{1, 66}}, - {"kern.random", []_C_int{1, 31}}, {"kern.rawpartition", []_C_int{1, 24}}, {"kern.saved_ids", []_C_int{1, 20}}, {"kern.securelevel", []_C_int{1, 9}}, @@ -106,21 +114,20 @@ var sysctlMib = []mibentry{ {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, {"kern.timecounter.tick", []_C_int{1, 69, 1}}, {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, - {"kern.tty.maxptys", []_C_int{1, 44, 6}}, - {"kern.tty.nptys", []_C_int{1, 44, 7}}, + {"kern.timeout_stats", []_C_int{1, 87}}, {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, {"kern.ttycount", []_C_int{1, 57}}, - {"kern.userasymcrypto", []_C_int{1, 60}}, - {"kern.usercrypto", []_C_int{1, 52}}, - {"kern.usermount", []_C_int{1, 30}}, + {"kern.utc_offset", []_C_int{1, 88}}, {"kern.version", []_C_int{1, 4}}, - {"kern.vnode", []_C_int{1, 13}}, + {"kern.video", []_C_int{1, 89}}, {"kern.watchdog.auto", []_C_int{1, 64, 2}}, {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, {"net.bpf.bufsize", []_C_int{4, 31, 1}}, {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, @@ -148,7 +155,9 @@ var sysctlMib = []mibentry{ {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, @@ -157,8 +166,10 @@ var sysctlMib = []mibentry{ {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, @@ -175,9 +186,7 @@ var sysctlMib = []mibentry{ {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, - {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}}, {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, @@ -191,6 +200,7 @@ var sysctlMib = []mibentry{ {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, @@ -198,9 +208,12 @@ var sysctlMib = []mibentry{ {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, @@ -213,13 +226,8 @@ var sysctlMib = []mibentry{ {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, - {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}}, {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, - {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}}, - {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}}, - {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}}, {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, - {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}}, {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, @@ -232,20 +240,19 @@ var sysctlMib = []mibentry{ {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, - {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}}, - {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}}, {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, - {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, - {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}}, {"net.key.sadb_dump", []_C_int{4, 30, 1}}, {"net.key.spd_dump", []_C_int{4, 30, 2}}, {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, @@ -254,12 +261,12 @@ var sysctlMib = []mibentry{ {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, {"net.mpls.ttl", []_C_int{4, 33, 2}}, {"net.pflow.stats", []_C_int{4, 34, 1}}, {"net.pipex.enable", []_C_int{4, 35, 1}}, {"vm.anonmin", []_C_int{2, 7}}, {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, {"vm.maxslp", []_C_int{2, 10}}, {"vm.nkmempages", []_C_int{2, 6}}, {"vm.psstrings", []_C_int{2, 3}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go index 154b57ae3e..cbdda1a4ae 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go @@ -36,6 +36,7 @@ var sysctlMib = []mibentry{ {"hw.pagesize", []_C_int{6, 7}}, {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, {"hw.product", []_C_int{6, 15}}, {"hw.serialno", []_C_int{6, 17}}, {"hw.setperf", []_C_int{6, 13}}, @@ -44,6 +45,7 @@ var sysctlMib = []mibentry{ {"hw.uuid", []_C_int{6, 18}}, {"hw.vendor", []_C_int{6, 14}}, {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, {"kern.allowkmem", []_C_int{1, 52}}, {"kern.argmax", []_C_int{1, 8}}, {"kern.audio", []_C_int{1, 84}}, @@ -51,6 +53,8 @@ var sysctlMib = []mibentry{ {"kern.bufcachepercent", []_C_int{1, 72}}, {"kern.ccpu", []_C_int{1, 45}}, {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, {"kern.consdev", []_C_int{1, 75}}, {"kern.cp_time", []_C_int{1, 40}}, {"kern.cp_time2", []_C_int{1, 71}}, @@ -83,13 +87,13 @@ var sysctlMib = []mibentry{ {"kern.ngroups", []_C_int{1, 18}}, {"kern.nosuidcoredump", []_C_int{1, 32}}, {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, {"kern.nthreads", []_C_int{1, 26}}, {"kern.numvnodes", []_C_int{1, 58}}, {"kern.osrelease", []_C_int{1, 2}}, {"kern.osrevision", []_C_int{1, 3}}, {"kern.ostype", []_C_int{1, 1}}, {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, {"kern.pool_debug", []_C_int{1, 77}}, {"kern.posix1version", []_C_int{1, 17}}, {"kern.proc", []_C_int{1, 66}}, @@ -110,13 +114,16 @@ var sysctlMib = []mibentry{ {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, {"kern.timecounter.tick", []_C_int{1, 69, 1}}, {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, {"kern.watchdog.auto", []_C_int{1, 64, 2}}, {"kern.watchdog.period", []_C_int{1, 64, 1}}, {"kern.witnesswatch", []_C_int{1, 53}}, @@ -179,7 +186,6 @@ var sysctlMib = []mibentry{ {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, - {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, @@ -255,7 +261,6 @@ var sysctlMib = []mibentry{ {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, - {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, {"net.mpls.ttl", []_C_int{4, 33, 2}}, {"net.pflow.stats", []_C_int{4, 34, 1}}, {"net.pipex.enable", []_C_int{4, 35, 1}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go index d96bb2ba4d..f55eae1a82 100644 --- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go @@ -36,6 +36,7 @@ var sysctlMib = []mibentry{ {"hw.pagesize", []_C_int{6, 7}}, {"hw.perfpolicy", []_C_int{6, 23}}, {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, {"hw.product", []_C_int{6, 15}}, {"hw.serialno", []_C_int{6, 17}}, {"hw.setperf", []_C_int{6, 13}}, @@ -86,7 +87,6 @@ var sysctlMib = []mibentry{ {"kern.ngroups", []_C_int{1, 18}}, {"kern.nosuidcoredump", []_C_int{1, 32}}, {"kern.nprocs", []_C_int{1, 47}}, - {"kern.nselcoll", []_C_int{1, 43}}, {"kern.nthreads", []_C_int{1, 26}}, {"kern.numvnodes", []_C_int{1, 58}}, {"kern.osrelease", []_C_int{1, 2}}, @@ -123,6 +123,7 @@ var sysctlMib = []mibentry{ {"kern.ttycount", []_C_int{1, 57}}, {"kern.utc_offset", []_C_int{1, 88}}, {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, {"kern.watchdog.auto", []_C_int{1, 64, 2}}, {"kern.watchdog.period", []_C_int{1, 64, 1}}, {"kern.witnesswatch", []_C_int{1, 53}}, diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go new file mode 100644 index 0000000000..e44054470b --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go @@ -0,0 +1,281 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build ppc64 && openbsd +// +build ppc64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go new file mode 100644 index 0000000000..a0db82fce2 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go @@ -0,0 +1,282 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build riscv64 && openbsd +// +build riscv64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go index 62192e1de2..c9c4ad0314 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/386/include -m32 /tmp/386/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build 386 && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go index 490aab5d21..12ff3417c5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/amd64/include -m64 /tmp/amd64/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build amd64 && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go index aca17b6fad..c3fb5e77ab 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm/include /tmp/arm/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build arm && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go index 54b4dfa547..358c847a40 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm64/include -fsigned-char /tmp/arm64/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build arm64 && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go index 44a764c991..81c4849b16 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/loong64/include /tmp/loong64/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build loong64 && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go index 65a99efc23..202a57e900 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips/include /tmp/mips/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mips && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go index 841c8a6682..1fbceb52d7 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64/include /tmp/mips64/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mips64 && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go index e26a7c7658..b4ffb7a207 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64le/include /tmp/mips64le/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mips64le && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go index 26447260a9..867985f9b4 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mipsle/include /tmp/mipsle/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mipsle && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go index 26aefc1869..a8cce69ede 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc/include /tmp/ppc/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build ppc && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go index 8d4cd9d99d..d44c5b39d7 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64/include /tmp/ppc64/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build ppc64 && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go index 3b405d1f82..4214dd9c03 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64le/include /tmp/ppc64le/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build ppc64le && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go index 3a9c96b288..3e594a8c09 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/riscv64/include /tmp/riscv64/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build riscv64 && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go index 8ffa66469e..7ea465204b 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/s390x/include -fsigned-char /tmp/s390x/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build s390x && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go index 6a39640e76..92f628ef4f 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -1,4 +1,4 @@ -// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/sparc64/include /tmp/sparc64/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. //go:build sparc64 && linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go index 817edbf95c..597733813e 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go @@ -6,6 +6,7 @@ package unix +// Deprecated: Use libc wrappers instead of direct syscalls. const ( SYS_EXIT = 1 // { void sys_exit(int rval); } SYS_FORK = 2 // { int sys_fork(void); } diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go index ea453614e6..16af291899 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go @@ -6,6 +6,7 @@ package unix +// Deprecated: Use libc wrappers instead of direct syscalls. const ( SYS_EXIT = 1 // { void sys_exit(int rval); } SYS_FORK = 2 // { int sys_fork(void); } diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go index 467971eed6..f59b18a977 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go @@ -6,6 +6,7 @@ package unix +// Deprecated: Use libc wrappers instead of direct syscalls. const ( SYS_EXIT = 1 // { void sys_exit(int rval); } SYS_FORK = 2 // { int sys_fork(void); } diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go index 32eec5ed56..721ef59103 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go @@ -6,6 +6,7 @@ package unix +// Deprecated: Use libc wrappers instead of direct syscalls. const ( SYS_EXIT = 1 // { void sys_exit(int rval); } SYS_FORK = 2 // { int sys_fork(void); } diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go index a37f773756..01c43a01fd 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go @@ -6,6 +6,7 @@ package unix +// Deprecated: Use libc wrappers instead of direct syscalls. const ( SYS_EXIT = 1 // { void sys_exit(int rval); } SYS_FORK = 2 // { int sys_fork(void); } diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go new file mode 100644 index 0000000000..f258cfa24e --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go @@ -0,0 +1,218 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && openbsd +// +build ppc64,openbsd + +package unix + +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go new file mode 100644 index 0000000000..07919e0ecc --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go @@ -0,0 +1,219 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && openbsd +// +build riscv64,openbsd + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go index dea0c9a607..d9c78cdcbc 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go @@ -294,7 +294,7 @@ type PtraceLwpInfoStruct struct { Flags int32 Sigmask Sigset_t Siglist Sigset_t - Siginfo __Siginfo + Siginfo __PtraceSiginfo Tdname [20]int8 Child_pid int32 Syscall_code uint32 @@ -312,6 +312,17 @@ type __Siginfo struct { Value [4]byte _ [32]byte } +type __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [4]byte + _ [32]byte +} type Sigset_t struct { Val [4]uint32 @@ -350,8 +361,8 @@ type FpExtendedPrecision struct{} type PtraceIoDesc struct { Op int32 - Offs *byte - Addr *byte + Offs uintptr + Addr uintptr Len uint32 } diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go index da0ea0d608..26991b1655 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go @@ -291,7 +291,7 @@ type PtraceLwpInfoStruct struct { Flags int32 Sigmask Sigset_t Siglist Sigset_t - Siginfo __Siginfo + Siginfo __PtraceSiginfo Tdname [20]int8 Child_pid int32 Syscall_code uint32 @@ -310,6 +310,18 @@ type __Siginfo struct { _ [40]byte } +type __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [8]byte + _ [40]byte +} + type Sigset_t struct { Val [4]uint32 } @@ -354,8 +366,8 @@ type FpExtendedPrecision struct{} type PtraceIoDesc struct { Op int32 - Offs *byte - Addr *byte + Offs uintptr + Addr uintptr Len uint64 } diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go index da8f740450..f8324e7e7f 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go @@ -293,7 +293,7 @@ type PtraceLwpInfoStruct struct { Flags int32 Sigmask Sigset_t Siglist Sigset_t - Siginfo __Siginfo + Siginfo __PtraceSiginfo Tdname [20]int8 Child_pid int32 Syscall_code uint32 @@ -312,6 +312,18 @@ type __Siginfo struct { _ [32]byte } +type __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [4]byte + _ [32]byte +} + type Sigset_t struct { Val [4]uint32 } @@ -337,8 +349,8 @@ type FpExtendedPrecision struct { type PtraceIoDesc struct { Op int32 - Offs *byte - Addr *byte + Offs uintptr + Addr uintptr Len uint32 } diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go index d69988e5e5..4220411f34 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -291,7 +291,7 @@ type PtraceLwpInfoStruct struct { Flags int32 Sigmask Sigset_t Siglist Sigset_t - Siginfo __Siginfo + Siginfo __PtraceSiginfo Tdname [20]int8 Child_pid int32 Syscall_code uint32 @@ -310,6 +310,18 @@ type __Siginfo struct { _ [40]byte } +type __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [8]byte + _ [40]byte +} + type Sigset_t struct { Val [4]uint32 } @@ -334,8 +346,8 @@ type FpExtendedPrecision struct{} type PtraceIoDesc struct { Op int32 - Offs *byte - Addr *byte + Offs uintptr + Addr uintptr Len uint64 } diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go index d6fd9e8838..0660fd45c7 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go @@ -291,7 +291,7 @@ type PtraceLwpInfoStruct struct { Flags int32 Sigmask Sigset_t Siglist Sigset_t - Siginfo __Siginfo + Siginfo __PtraceSiginfo Tdname [20]int8 Child_pid int32 Syscall_code uint32 @@ -310,6 +310,18 @@ type __Siginfo struct { _ [40]byte } +type __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [8]byte + _ [40]byte +} + type Sigset_t struct { Val [4]uint32 } @@ -335,8 +347,8 @@ type FpExtendedPrecision struct{} type PtraceIoDesc struct { Op int32 - Offs *byte - Addr *byte + Offs uintptr + Addr uintptr Len uint64 } diff --git a/vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go deleted file mode 100644 index 4c485261d6..0000000000 --- a/vendor/golang.org/x/sys/unix/ztypes_illumos_amd64.go +++ /dev/null @@ -1,42 +0,0 @@ -// cgo -godefs types_illumos.go | go run mkpost.go -// Code generated by the command above; see README.md. DO NOT EDIT. - -//go:build amd64 && illumos -// +build amd64,illumos - -package unix - -const ( - TUNNEWPPA = 0x540001 - TUNSETPPA = 0x540002 - - I_STR = 0x5308 - I_POP = 0x5303 - I_PUSH = 0x5302 - I_LINK = 0x530c - I_UNLINK = 0x530d - I_PLINK = 0x5316 - I_PUNLINK = 0x5317 - - IF_UNITSEL = -0x7ffb8cca -) - -type strbuf struct { - Maxlen int32 - Len int32 - Buf *int8 -} - -type Strioctl struct { - Cmd int32 - Timout int32 - Len int32 - Dp *int8 -} - -type Lifreq struct { - Name [32]int8 - Lifru1 [4]byte - Type uint32 - Lifru [336]byte -} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index 8698479875..7d9fc8f1c9 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -29,6 +29,41 @@ type Itimerval struct { Value Timeval } +const ( + ADJ_OFFSET = 0x1 + ADJ_FREQUENCY = 0x2 + ADJ_MAXERROR = 0x4 + ADJ_ESTERROR = 0x8 + ADJ_STATUS = 0x10 + ADJ_TIMECONST = 0x20 + ADJ_TAI = 0x80 + ADJ_SETOFFSET = 0x100 + ADJ_MICRO = 0x1000 + ADJ_NANO = 0x2000 + ADJ_TICK = 0x4000 + ADJ_OFFSET_SINGLESHOT = 0x8001 + ADJ_OFFSET_SS_READ = 0xa001 +) + +const ( + STA_PLL = 0x1 + STA_PPSFREQ = 0x2 + STA_PPSTIME = 0x4 + STA_FLL = 0x8 + STA_INS = 0x10 + STA_DEL = 0x20 + STA_UNSYNC = 0x40 + STA_FREQHOLD = 0x80 + STA_PPSSIGNAL = 0x100 + STA_PPSJITTER = 0x200 + STA_PPSWANDER = 0x400 + STA_PPSERROR = 0x800 + STA_CLOCKERR = 0x1000 + STA_NANO = 0x2000 + STA_MODE = 0x4000 + STA_CLK = 0x8000 +) + const ( TIME_OK = 0x0 TIME_INS = 0x1 @@ -53,29 +88,30 @@ type StatxTimestamp struct { } type Statx_t struct { - Mask uint32 - Blksize uint32 - Attributes uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Mode uint16 - _ [1]uint16 - Ino uint64 - Size uint64 - Blocks uint64 - Attributes_mask uint64 - Atime StatxTimestamp - Btime StatxTimestamp - Ctime StatxTimestamp - Mtime StatxTimestamp - Rdev_major uint32 - Rdev_minor uint32 - Dev_major uint32 - Dev_minor uint32 - Mnt_id uint64 - _ uint64 - _ [12]uint64 + Mask uint32 + Blksize uint32 + Attributes uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Mode uint16 + _ [1]uint16 + Ino uint64 + Size uint64 + Blocks uint64 + Attributes_mask uint64 + Atime StatxTimestamp + Btime StatxTimestamp + Ctime StatxTimestamp + Mtime StatxTimestamp + Rdev_major uint32 + Rdev_minor uint32 + Dev_major uint32 + Dev_minor uint32 + Mnt_id uint64 + Dio_mem_align uint32 + Dio_offset_align uint32 + _ [12]uint64 } type Fsid struct { @@ -945,6 +981,9 @@ type PerfEventAttr struct { Aux_watermark uint32 Sample_max_stack uint16 _ uint16 + Aux_sample_size uint32 + _ uint32 + Sig_data uint64 } type PerfEventMmapPage struct { @@ -1096,7 +1135,8 @@ const ( PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 0xf PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 0x10 PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 0x11 - PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x12 + PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 0x12 + PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x13 PERF_SAMPLE_BRANCH_USER = 0x1 PERF_SAMPLE_BRANCH_KERNEL = 0x2 PERF_SAMPLE_BRANCH_HV = 0x4 @@ -1115,7 +1155,8 @@ const ( PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 PERF_SAMPLE_BRANCH_HW_INDEX = 0x20000 - PERF_SAMPLE_BRANCH_MAX = 0x40000 + PERF_SAMPLE_BRANCH_PRIV_SAVE = 0x40000 + PERF_SAMPLE_BRANCH_MAX = 0x80000 PERF_BR_UNKNOWN = 0x0 PERF_BR_COND = 0x1 PERF_BR_UNCOND = 0x2 @@ -1129,7 +1170,10 @@ const ( PERF_BR_COND_RET = 0xa PERF_BR_ERET = 0xb PERF_BR_IRQ = 0xc - PERF_BR_MAX = 0xd + PERF_BR_SERROR = 0xd + PERF_BR_NO_TX = 0xe + PERF_BR_EXTEND_ABI = 0xf + PERF_BR_MAX = 0x10 PERF_SAMPLE_REGS_ABI_NONE = 0x0 PERF_SAMPLE_REGS_ABI_32 = 0x1 PERF_SAMPLE_REGS_ABI_64 = 0x2 @@ -1148,7 +1192,8 @@ const ( PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_ID = 0x4 PERF_FORMAT_GROUP = 0x8 - PERF_FORMAT_MAX = 0x10 + PERF_FORMAT_LOST = 0x10 + PERF_FORMAT_MAX = 0x20 PERF_IOC_FLAG_GROUP = 0x1 PERF_RECORD_MMAP = 0x1 PERF_RECORD_LOST = 0x2 @@ -1463,6 +1508,11 @@ const ( IFLA_ALT_IFNAME = 0x35 IFLA_PERM_ADDRESS = 0x36 IFLA_PROTO_DOWN_REASON = 0x37 + IFLA_PARENT_DEV_NAME = 0x38 + IFLA_PARENT_DEV_BUS_NAME = 0x39 + IFLA_GRO_MAX_SIZE = 0x3a + IFLA_TSO_MAX_SIZE = 0x3b + IFLA_TSO_MAX_SEGS = 0x3c IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 IFLA_PROTO_DOWN_REASON_MASK = 0x1 IFLA_PROTO_DOWN_REASON_VALUE = 0x2 @@ -2971,7 +3021,16 @@ const ( DEVLINK_CMD_TRAP_POLICER_NEW = 0x47 DEVLINK_CMD_TRAP_POLICER_DEL = 0x48 DEVLINK_CMD_HEALTH_REPORTER_TEST = 0x49 - DEVLINK_CMD_MAX = 0x51 + DEVLINK_CMD_RATE_GET = 0x4a + DEVLINK_CMD_RATE_SET = 0x4b + DEVLINK_CMD_RATE_NEW = 0x4c + DEVLINK_CMD_RATE_DEL = 0x4d + DEVLINK_CMD_LINECARD_GET = 0x4e + DEVLINK_CMD_LINECARD_SET = 0x4f + DEVLINK_CMD_LINECARD_NEW = 0x50 + DEVLINK_CMD_LINECARD_DEL = 0x51 + DEVLINK_CMD_SELFTESTS_GET = 0x52 + DEVLINK_CMD_MAX = 0x53 DEVLINK_PORT_TYPE_NOTSET = 0x0 DEVLINK_PORT_TYPE_AUTO = 0x1 DEVLINK_PORT_TYPE_ETH = 0x2 @@ -3200,7 +3259,13 @@ const ( DEVLINK_ATTR_RATE_NODE_NAME = 0xa8 DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 0xa9 DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 0xaa - DEVLINK_ATTR_MAX = 0xae + DEVLINK_ATTR_LINECARD_INDEX = 0xab + DEVLINK_ATTR_LINECARD_STATE = 0xac + DEVLINK_ATTR_LINECARD_TYPE = 0xad + DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 0xae + DEVLINK_ATTR_NESTED_DEVLINK = 0xaf + DEVLINK_ATTR_SELFTESTS = 0xb0 + DEVLINK_ATTR_MAX = 0xb0 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0 DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1 DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0 @@ -3309,7 +3374,8 @@ const ( LWTUNNEL_ENCAP_SEG6_LOCAL = 0x7 LWTUNNEL_ENCAP_RPL = 0x8 LWTUNNEL_ENCAP_IOAM6 = 0x9 - LWTUNNEL_ENCAP_MAX = 0x9 + LWTUNNEL_ENCAP_XFRM = 0xa + LWTUNNEL_ENCAP_MAX = 0xa MPLS_IPTUNNEL_UNSPEC = 0x0 MPLS_IPTUNNEL_DST = 0x1 @@ -3504,7 +3570,9 @@ const ( ETHTOOL_MSG_PHC_VCLOCKS_GET = 0x21 ETHTOOL_MSG_MODULE_GET = 0x22 ETHTOOL_MSG_MODULE_SET = 0x23 - ETHTOOL_MSG_USER_MAX = 0x23 + ETHTOOL_MSG_PSE_GET = 0x24 + ETHTOOL_MSG_PSE_SET = 0x25 + ETHTOOL_MSG_USER_MAX = 0x25 ETHTOOL_MSG_KERNEL_NONE = 0x0 ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 @@ -3542,7 +3610,8 @@ const ( ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 0x22 ETHTOOL_MSG_MODULE_GET_REPLY = 0x23 ETHTOOL_MSG_MODULE_NTF = 0x24 - ETHTOOL_MSG_KERNEL_MAX = 0x24 + ETHTOOL_MSG_PSE_GET_REPLY = 0x25 + ETHTOOL_MSG_KERNEL_MAX = 0x25 ETHTOOL_A_HEADER_UNSPEC = 0x0 ETHTOOL_A_HEADER_DEV_INDEX = 0x1 ETHTOOL_A_HEADER_DEV_NAME = 0x2 @@ -3601,7 +3670,8 @@ const ( ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7 ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8 ETHTOOL_A_LINKMODES_LANES = 0x9 - ETHTOOL_A_LINKMODES_MAX = 0x9 + ETHTOOL_A_LINKMODES_RATE_MATCHING = 0xa + ETHTOOL_A_LINKMODES_MAX = 0xa ETHTOOL_A_LINKSTATE_UNSPEC = 0x0 ETHTOOL_A_LINKSTATE_HEADER = 0x1 ETHTOOL_A_LINKSTATE_LINK = 0x2 @@ -4193,6 +4263,9 @@ const ( NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 0x1 NL80211_AC_VI = 0x1 NL80211_AC_VO = 0x0 + NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 0x1 + NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 0x2 + NL80211_AP_SME_SA_QUERY_OFFLOAD = 0x1 NL80211_ATTR_4ADDR = 0x53 NL80211_ATTR_ACK = 0x5c NL80211_ATTR_ACK_SIGNAL = 0x107 @@ -4201,6 +4274,7 @@ const ( NL80211_ATTR_AIRTIME_WEIGHT = 0x112 NL80211_ATTR_AKM_SUITES = 0x4c NL80211_ATTR_AP_ISOLATE = 0x60 + NL80211_ATTR_AP_SETTINGS_FLAGS = 0x135 NL80211_ATTR_AUTH_DATA = 0x9c NL80211_ATTR_AUTH_TYPE = 0x35 NL80211_ATTR_BANDS = 0xef @@ -4232,6 +4306,9 @@ const ( NL80211_ATTR_COALESCE_RULE_DELAY = 0x1 NL80211_ATTR_COALESCE_RULE_MAX = 0x3 NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 0x3 + NL80211_ATTR_COLOR_CHANGE_COLOR = 0x130 + NL80211_ATTR_COLOR_CHANGE_COUNT = 0x12f + NL80211_ATTR_COLOR_CHANGE_ELEMS = 0x131 NL80211_ATTR_CONN_FAILED_REASON = 0x9b NL80211_ATTR_CONTROL_PORT = 0x44 NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 0x66 @@ -4258,6 +4335,7 @@ const ( NL80211_ATTR_DEVICE_AP_SME = 0x8d NL80211_ATTR_DFS_CAC_TIME = 0x7 NL80211_ATTR_DFS_REGION = 0x92 + NL80211_ATTR_DISABLE_EHT = 0x137 NL80211_ATTR_DISABLE_HE = 0x12d NL80211_ATTR_DISABLE_HT = 0x93 NL80211_ATTR_DISABLE_VHT = 0xaf @@ -4265,6 +4343,8 @@ const ( NL80211_ATTR_DONT_WAIT_FOR_ACK = 0x8e NL80211_ATTR_DTIM_PERIOD = 0xd NL80211_ATTR_DURATION = 0x57 + NL80211_ATTR_EHT_CAPABILITY = 0x136 + NL80211_ATTR_EML_CAPABILITY = 0x13d NL80211_ATTR_EXT_CAPA = 0xa9 NL80211_ATTR_EXT_CAPA_MASK = 0xaa NL80211_ATTR_EXTERNAL_AUTH_ACTION = 0x104 @@ -4329,10 +4409,11 @@ const ( NL80211_ATTR_MAC_HINT = 0xc8 NL80211_ATTR_MAC_MASK = 0xd7 NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca - NL80211_ATTR_MAX = 0x137 + NL80211_ATTR_MAX = 0x140 NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 NL80211_ATTR_MAX_CSA_COUNTERS = 0xce NL80211_ATTR_MAX_MATCH_SETS = 0x85 + NL80211_ATTR_MAX_NUM_AKM_SUITES = 0x13c NL80211_ATTR_MAX_NUM_PMKIDS = 0x56 NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 0x2b NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 0xde @@ -4342,6 +4423,8 @@ const ( NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 0xdf NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 0xe0 NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 0x7c + NL80211_ATTR_MBSSID_CONFIG = 0x132 + NL80211_ATTR_MBSSID_ELEMS = 0x133 NL80211_ATTR_MCAST_RATE = 0x6b NL80211_ATTR_MDID = 0xb1 NL80211_ATTR_MEASUREMENT_DURATION = 0xeb @@ -4351,6 +4434,11 @@ const ( NL80211_ATTR_MESH_PEER_AID = 0xed NL80211_ATTR_MESH_SETUP = 0x70 NL80211_ATTR_MGMT_SUBTYPE = 0x29 + NL80211_ATTR_MLD_ADDR = 0x13a + NL80211_ATTR_MLD_CAPA_AND_OPS = 0x13e + NL80211_ATTR_MLO_LINK_ID = 0x139 + NL80211_ATTR_MLO_LINKS = 0x138 + NL80211_ATTR_MLO_SUPPORT = 0x13b NL80211_ATTR_MNTR_FLAGS = 0x17 NL80211_ATTR_MPATH_INFO = 0x1b NL80211_ATTR_MPATH_NEXT_HOP = 0x1a @@ -4363,6 +4451,7 @@ const ( NL80211_ATTR_NETNS_FD = 0xdb NL80211_ATTR_NOACK_MAP = 0x95 NL80211_ATTR_NSS = 0x106 + NL80211_ATTR_OBSS_COLOR_BITMAP = 0x12e NL80211_ATTR_OFFCHANNEL_TX_OK = 0x6c NL80211_ATTR_OPER_CLASS = 0xd6 NL80211_ATTR_OPMODE_NOTIF = 0xc2 @@ -4389,6 +4478,7 @@ const ( NL80211_ATTR_PROTOCOL_FEATURES = 0xad NL80211_ATTR_PS_STATE = 0x5d NL80211_ATTR_QOS_MAP = 0xc7 + NL80211_ATTR_RADAR_BACKGROUND = 0x134 NL80211_ATTR_RADAR_EVENT = 0xa8 NL80211_ATTR_REASON_CODE = 0x36 NL80211_ATTR_RECEIVE_MULTICAST = 0x121 @@ -4404,6 +4494,7 @@ const ( NL80211_ATTR_RESP_IE = 0x4e NL80211_ATTR_ROAM_SUPPORT = 0x83 NL80211_ATTR_RX_FRAME_TYPES = 0x64 + NL80211_ATTR_RX_HW_TIMESTAMP = 0x140 NL80211_ATTR_RXMGMT_FLAGS = 0xbc NL80211_ATTR_RX_SIGNAL_DBM = 0x97 NL80211_ATTR_S1G_CAPABILITY = 0x128 @@ -4476,6 +4567,7 @@ const ( NL80211_ATTR_TSID = 0xd2 NL80211_ATTR_TWT_RESPONDER = 0x116 NL80211_ATTR_TX_FRAME_TYPES = 0x63 + NL80211_ATTR_TX_HW_TIMESTAMP = 0x13f NL80211_ATTR_TX_NO_CCK_RATE = 0x87 NL80211_ATTR_TXQ_LIMIT = 0x10a NL80211_ATTR_TXQ_MEMORY_LIMIT = 0x10b @@ -4549,6 +4641,10 @@ const ( NL80211_BAND_ATTR_RATES = 0x2 NL80211_BAND_ATTR_VHT_CAPA = 0x8 NL80211_BAND_ATTR_VHT_MCS_SET = 0x7 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 0x8 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 0xa + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 0x9 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 0xb NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 0x6 NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 0x2 NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 0x4 @@ -4556,6 +4652,8 @@ const ( NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 0x5 NL80211_BAND_IFTYPE_ATTR_IFTYPES = 0x1 NL80211_BAND_IFTYPE_ATTR_MAX = 0xb + NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 0x7 + NL80211_BAND_LC = 0x5 NL80211_BAND_S1GHZ = 0x4 NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 0x2 NL80211_BITRATE_ATTR_MAX = 0x2 @@ -4576,7 +4674,9 @@ const ( NL80211_BSS_FREQUENCY_OFFSET = 0x14 NL80211_BSS_INFORMATION_ELEMENTS = 0x6 NL80211_BSS_LAST_SEEN_BOOTTIME = 0xf - NL80211_BSS_MAX = 0x14 + NL80211_BSS_MAX = 0x16 + NL80211_BSS_MLD_ADDR = 0x16 + NL80211_BSS_MLO_LINK_ID = 0x15 NL80211_BSS_PAD = 0x10 NL80211_BSS_PARENT_BSSID = 0x12 NL80211_BSS_PARENT_TSF = 0x11 @@ -4604,6 +4704,7 @@ const ( NL80211_CHAN_WIDTH_20 = 0x1 NL80211_CHAN_WIDTH_20_NOHT = 0x0 NL80211_CHAN_WIDTH_2 = 0x9 + NL80211_CHAN_WIDTH_320 = 0xd NL80211_CHAN_WIDTH_40 = 0x2 NL80211_CHAN_WIDTH_4 = 0xa NL80211_CHAN_WIDTH_5 = 0x6 @@ -4613,8 +4714,11 @@ const ( NL80211_CMD_ABORT_SCAN = 0x72 NL80211_CMD_ACTION = 0x3b NL80211_CMD_ACTION_TX_STATUS = 0x3c + NL80211_CMD_ADD_LINK = 0x94 + NL80211_CMD_ADD_LINK_STA = 0x96 NL80211_CMD_ADD_NAN_FUNCTION = 0x75 NL80211_CMD_ADD_TX_TS = 0x69 + NL80211_CMD_ASSOC_COMEBACK = 0x93 NL80211_CMD_ASSOCIATE = 0x26 NL80211_CMD_AUTHENTICATE = 0x25 NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 0x38 @@ -4622,6 +4726,10 @@ const ( NL80211_CMD_CHANNEL_SWITCH = 0x66 NL80211_CMD_CH_SWITCH_NOTIFY = 0x58 NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 0x6e + NL80211_CMD_COLOR_CHANGE_ABORTED = 0x90 + NL80211_CMD_COLOR_CHANGE_COMPLETED = 0x91 + NL80211_CMD_COLOR_CHANGE_REQUEST = 0x8e + NL80211_CMD_COLOR_CHANGE_STARTED = 0x8f NL80211_CMD_CONNECT = 0x2e NL80211_CMD_CONN_FAILED = 0x5b NL80211_CMD_CONTROL_PORT_FRAME = 0x81 @@ -4670,8 +4778,9 @@ const ( NL80211_CMD_LEAVE_IBSS = 0x2c NL80211_CMD_LEAVE_MESH = 0x45 NL80211_CMD_LEAVE_OCB = 0x6d - NL80211_CMD_MAX = 0x93 + NL80211_CMD_MAX = 0x98 NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 + NL80211_CMD_MODIFY_LINK_STA = 0x97 NL80211_CMD_NAN_MATCH = 0x78 NL80211_CMD_NEW_BEACON = 0xf NL80211_CMD_NEW_INTERFACE = 0x7 @@ -4684,6 +4793,7 @@ const ( NL80211_CMD_NEW_WIPHY = 0x3 NL80211_CMD_NOTIFY_CQM = 0x40 NL80211_CMD_NOTIFY_RADAR = 0x86 + NL80211_CMD_OBSS_COLOR_COLLISION = 0x8d NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 0x85 NL80211_CMD_PEER_MEASUREMENT_RESULT = 0x84 NL80211_CMD_PEER_MEASUREMENT_START = 0x83 @@ -4699,6 +4809,8 @@ const ( NL80211_CMD_REGISTER_FRAME = 0x3a NL80211_CMD_RELOAD_REGDB = 0x7e NL80211_CMD_REMAIN_ON_CHANNEL = 0x37 + NL80211_CMD_REMOVE_LINK = 0x95 + NL80211_CMD_REMOVE_LINK_STA = 0x98 NL80211_CMD_REQ_SET_REG = 0x1b NL80211_CMD_ROAM = 0x2f NL80211_CMD_SCAN_ABORTED = 0x23 @@ -4709,6 +4821,7 @@ const ( NL80211_CMD_SET_CHANNEL = 0x41 NL80211_CMD_SET_COALESCE = 0x65 NL80211_CMD_SET_CQM = 0x3f + NL80211_CMD_SET_FILS_AAD = 0x92 NL80211_CMD_SET_INTERFACE = 0x6 NL80211_CMD_SET_KEY = 0xa NL80211_CMD_SET_MAC_ACL = 0x5d @@ -4783,6 +4896,8 @@ const ( NL80211_EDMG_BW_CONFIG_MIN = 0x4 NL80211_EDMG_CHANNELS_MAX = 0x3c NL80211_EDMG_CHANNELS_MIN = 0x1 + NL80211_EHT_MAX_CAPABILITY_LEN = 0x33 + NL80211_EHT_MIN_CAPABILITY_LEN = 0xd NL80211_EXTERNAL_AUTH_ABORT = 0x1 NL80211_EXTERNAL_AUTH_START = 0x0 NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 0x32 @@ -4799,6 +4914,7 @@ const ( NL80211_EXT_FEATURE_BEACON_RATE_HT = 0x7 NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 0x6 NL80211_EXT_FEATURE_BEACON_RATE_VHT = 0x8 + NL80211_EXT_FEATURE_BSS_COLOR = 0x3a NL80211_EXT_FEATURE_BSS_PARENT_TSF = 0x4 NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 0x1f NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 0x2a @@ -4810,6 +4926,7 @@ const ( NL80211_EXT_FEATURE_DFS_OFFLOAD = 0x19 NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 0x20 NL80211_EXT_FEATURE_EXT_KEY_ID = 0x24 + NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 0x3b NL80211_EXT_FEATURE_FILS_DISCOVERY = 0x34 NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 0x11 NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 0xe @@ -4825,8 +4942,10 @@ const ( NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x14 NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 0x13 NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 0x31 + NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 0x3d NL80211_EXT_FEATURE_PROTECTED_TWT = 0x2b NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 0x39 + NL80211_EXT_FEATURE_RADAR_BACKGROUND = 0x3c NL80211_EXT_FEATURE_RRM = 0x1 NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 0x33 NL80211_EXT_FEATURE_SAE_OFFLOAD = 0x26 @@ -4898,7 +5017,9 @@ const ( NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc NL80211_FREQUENCY_ATTR_NO_20MHZ = 0x10 + NL80211_FREQUENCY_ATTR_NO_320MHZ = 0x1a NL80211_FREQUENCY_ATTR_NO_80MHZ = 0xb + NL80211_FREQUENCY_ATTR_NO_EHT = 0x1b NL80211_FREQUENCY_ATTR_NO_HE = 0x13 NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 0x9 NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 0xa @@ -4998,6 +5119,12 @@ const ( NL80211_MAX_SUPP_HT_RATES = 0x4d NL80211_MAX_SUPP_RATES = 0x20 NL80211_MAX_SUPP_REG_RULES = 0x80 + NL80211_MBSSID_CONFIG_ATTR_EMA = 0x5 + NL80211_MBSSID_CONFIG_ATTR_INDEX = 0x3 + NL80211_MBSSID_CONFIG_ATTR_MAX = 0x5 + NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 0x2 + NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 0x1 + NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 0x4 NL80211_MESHCONF_ATTR_MAX = 0x1f NL80211_MESHCONF_AUTO_OPEN_PLINKS = 0x7 NL80211_MESHCONF_AWAKE_WINDOW = 0x1b @@ -5160,6 +5287,7 @@ const ( NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0x0 NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 0x3 NL80211_PMSR_FTM_REQ_ATTR_ASAP = 0x1 + NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 0xd NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 0x5 NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 0x4 NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 0x6 @@ -5236,12 +5364,36 @@ const ( NL80211_RADAR_PRE_CAC_EXPIRED = 0x4 NL80211_RATE_INFO_10_MHZ_WIDTH = 0xb NL80211_RATE_INFO_160_MHZ_WIDTH = 0xa + NL80211_RATE_INFO_320_MHZ_WIDTH = 0x12 NL80211_RATE_INFO_40_MHZ_WIDTH = 0x3 NL80211_RATE_INFO_5_MHZ_WIDTH = 0xc NL80211_RATE_INFO_80_MHZ_WIDTH = 0x8 NL80211_RATE_INFO_80P80_MHZ_WIDTH = 0x9 NL80211_RATE_INFO_BITRATE32 = 0x5 NL80211_RATE_INFO_BITRATE = 0x1 + NL80211_RATE_INFO_EHT_GI_0_8 = 0x0 + NL80211_RATE_INFO_EHT_GI_1_6 = 0x1 + NL80211_RATE_INFO_EHT_GI_3_2 = 0x2 + NL80211_RATE_INFO_EHT_GI = 0x15 + NL80211_RATE_INFO_EHT_MCS = 0x13 + NL80211_RATE_INFO_EHT_NSS = 0x14 + NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 0x3 + NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 0x4 + NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 0x5 + NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0x0 + NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 0xb + NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 0xc + NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 0xd + NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 0xe + NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 0x6 + NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 0x7 + NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 0xf + NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 0x1 + NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 0x2 + NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 0x8 + NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 0x9 + NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 0xa + NL80211_RATE_INFO_EHT_RU_ALLOC = 0x16 NL80211_RATE_INFO_HE_1XLTF = 0x0 NL80211_RATE_INFO_HE_2XLTF = 0x1 NL80211_RATE_INFO_HE_4XLTF = 0x2 @@ -5284,6 +5436,7 @@ const ( NL80211_RRF_GO_CONCURRENT = 0x1000 NL80211_RRF_IR_CONCURRENT = 0x1000 NL80211_RRF_NO_160MHZ = 0x10000 + NL80211_RRF_NO_320MHZ = 0x40000 NL80211_RRF_NO_80MHZ = 0x8000 NL80211_RRF_NO_CCK = 0x2 NL80211_RRF_NO_HE = 0x20000 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index 7551af4831..89c516a29a 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/386/cgo -- -Wall -Werror -static -I/tmp/386/include -m32 linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build 386 && linux @@ -254,6 +254,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index 3e738ac0bb..62b4fb2699 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/amd64/cgo -- -Wall -Werror -static -I/tmp/amd64/include -m64 linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build amd64 && linux @@ -269,6 +269,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index 6183eef4a4..e86b35893e 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/arm/cgo -- -Wall -Werror -static -I/tmp/arm/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build arm && linux @@ -245,6 +245,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index 968cecb17e..6c6be4c911 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/arm64/cgo -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build arm64 && linux @@ -248,6 +248,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go index 8fe4c522a9..4982ea355a 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/loong64/cgo -- -Wall -Werror -static -I/tmp/loong64/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build loong64 && linux @@ -249,6 +249,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go index 11426a3010..173141a670 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/mips/cgo -- -Wall -Werror -static -I/tmp/mips/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mips && linux @@ -250,6 +250,12 @@ type Sigset_t struct { const _C__NSIG = 0x80 +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + type Siginfo struct { Signo int32 Code int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index ad1c3b3de5..93ae4c5167 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/mips64/cgo -- -Wall -Werror -static -I/tmp/mips64/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mips64 && linux @@ -251,6 +251,12 @@ type Sigset_t struct { const _C__NSIG = 0x80 +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + type Siginfo struct { Signo int32 Code int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index 15fd84e4dd..4e4e510ca5 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/mips64le/cgo -- -Wall -Werror -static -I/tmp/mips64le/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mips64le && linux @@ -251,6 +251,12 @@ type Sigset_t struct { const _C__NSIG = 0x80 +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + type Siginfo struct { Signo int32 Code int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go index 49c49825ab..3f5ba013d9 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/mipsle/cgo -- -Wall -Werror -static -I/tmp/mipsle/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build mipsle && linux @@ -250,6 +250,12 @@ type Sigset_t struct { const _C__NSIG = 0x80 +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + type Siginfo struct { Signo int32 Code int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go index cd36d0da26..71dfe7cdb4 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/ppc/cgo -- -Wall -Werror -static -I/tmp/ppc/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build ppc && linux @@ -257,6 +257,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index 8c6fce0395..3a2b7f0a66 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/ppc64/cgo -- -Wall -Werror -static -I/tmp/ppc64/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build ppc64 && linux @@ -258,6 +258,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index 20910f2ad7..a52d627563 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/ppc64le/cgo -- -Wall -Werror -static -I/tmp/ppc64le/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build ppc64le && linux @@ -258,6 +258,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index 71b7b3331d..dfc007d8a6 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/riscv64/cgo -- -Wall -Werror -static -I/tmp/riscv64/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build riscv64 && linux @@ -276,6 +276,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index 71184cc2cd..b53cb9103d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/s390x/cgo -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build s390x && linux @@ -271,6 +271,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go index 06156285d9..fe0aa35472 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -1,4 +1,4 @@ -// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// cgo -godefs -objdir=/tmp/sparc64/cgo -- -Wall -Werror -static -I/tmp/sparc64/include linux/types.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. //go:build sparc64 && linux @@ -253,6 +253,12 @@ type Sigset_t struct { const _C__NSIG = 0x41 +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x4 +) + type Siginfo struct { Signo int32 Errno int32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go index 2fd2060e61..9bc4c8f9d8 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go @@ -491,6 +491,90 @@ type Utsname struct { Machine [256]byte } +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + const SizeofClockinfo = 0x14 type Clockinfo struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go index 6a5a1a8ae5..bb05f655d2 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go @@ -499,6 +499,90 @@ type Utsname struct { Machine [256]byte } +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + const SizeofClockinfo = 0x14 type Clockinfo struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go index 84cc8d01e6..db40e3a19c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go @@ -496,6 +496,90 @@ type Utsname struct { Machine [256]byte } +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + const SizeofClockinfo = 0x14 type Clockinfo struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go index c844e7096f..11121151cc 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go @@ -499,6 +499,90 @@ type Utsname struct { Machine [256]byte } +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + const SizeofClockinfo = 0x14 type Clockinfo struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go index 2ed718ca06..26eba23b72 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go @@ -58,22 +58,22 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize uint32 - Flags uint32 - Gen uint32 - X__st_birthtim Timespec + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec } type Statfs_t struct { @@ -98,7 +98,7 @@ type Statfs_t struct { F_mntonname [90]byte F_mntfromname [90]byte F_mntfromspec [90]byte - Pad_cgo_0 [2]byte + _ [2]byte Mount_info [160]byte } @@ -111,13 +111,13 @@ type Flock_t struct { } type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - X__d_padding [4]uint8 - Name [256]int8 + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 } type Fsid struct { @@ -262,8 +262,8 @@ type FdSet struct { } const ( - SizeofIfMsghdr = 0xec - SizeofIfData = 0xd4 + SizeofIfMsghdr = 0xa0 + SizeofIfData = 0x88 SizeofIfaMsghdr = 0x18 SizeofIfAnnounceMsghdr = 0x1a SizeofRtMsghdr = 0x60 @@ -292,7 +292,7 @@ type IfData struct { Link_state uint8 Mtu uint32 Metric uint32 - Pad uint32 + Rdomain uint32 Baudrate uint64 Ipackets uint64 Ierrors uint64 @@ -304,10 +304,10 @@ type IfData struct { Imcasts uint64 Omcasts uint64 Iqdrops uint64 + Oqdrops uint64 Noproto uint64 Capabilities uint32 Lastchange Timeval - Mclpool [7]Mclpool } type IfaMsghdr struct { @@ -368,20 +368,12 @@ type RtMetrics struct { Pad uint32 } -type Mclpool struct { - Grown int32 - Alive uint16 - Hwm uint16 - Cwm uint16 - Lwm uint16 -} - const ( SizeofBpfVersion = 0x4 SizeofBpfStat = 0x8 SizeofBpfProgram = 0x8 SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 + SizeofBpfHdr = 0x18 ) type BpfVersion struct { @@ -407,11 +399,14 @@ type BpfInsn struct { } type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 } type BpfTimeval struct { @@ -488,7 +483,7 @@ type Uvmexp struct { Zeropages int32 Reserve_pagedaemon int32 Reserve_kernel int32 - Anonpages int32 + Unused01 int32 Vnodepages int32 Vtextpages int32 Freemin int32 @@ -507,8 +502,8 @@ type Uvmexp struct { Swpgonly int32 Nswget int32 Nanon int32 - Nanonneeded int32 - Nfreeanon int32 + Unused05 int32 + Unused06 int32 Faults int32 Traps int32 Intrs int32 @@ -516,8 +511,8 @@ type Uvmexp struct { Softs int32 Syscalls int32 Pageins int32 - Obsolete_swapins int32 - Obsolete_swapouts int32 + Unused07 int32 + Unused08 int32 Pgswapin int32 Pgswapout int32 Forks int32 @@ -525,7 +520,7 @@ type Uvmexp struct { Forks_sharevm int32 Pga_zerohit int32 Pga_zeromiss int32 - Zeroaborts int32 + Unused09 int32 Fltnoram int32 Fltnoanon int32 Fltnoamap int32 @@ -557,9 +552,9 @@ type Uvmexp struct { Pdpageouts int32 Pdpending int32 Pddeact int32 - Pdreanon int32 - Pdrevnode int32 - Pdrevtext int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 Fpswtch int32 Kmapent int32 } diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go index b4fb97ebe6..5a54798869 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go @@ -73,7 +73,6 @@ type Stat_t struct { Blksize int32 Flags uint32 Gen uint32 - _ [4]byte _ Timespec } @@ -81,7 +80,6 @@ type Statfs_t struct { F_flags uint32 F_bsize uint32 F_iosize uint32 - _ [4]byte F_blocks uint64 F_bfree uint64 F_bavail int64 @@ -200,10 +198,8 @@ type IPv6Mreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen uint32 - _ [4]byte Control *byte Controllen uint32 Flags int32 @@ -311,7 +307,6 @@ type IfData struct { Oqdrops uint64 Noproto uint64 Capabilities uint32 - _ [4]byte Lastchange Timeval } @@ -373,14 +368,12 @@ type RtMetrics struct { Pad uint32 } -type Mclpool struct{} - const ( SizeofBpfVersion = 0x4 SizeofBpfStat = 0x8 SizeofBpfProgram = 0x10 SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 + SizeofBpfHdr = 0x18 ) type BpfVersion struct { @@ -395,7 +388,6 @@ type BpfStat struct { type BpfProgram struct { Len uint32 - _ [4]byte Insns *BpfInsn } @@ -411,7 +403,10 @@ type BpfHdr struct { Caplen uint32 Datalen uint32 Hdrlen uint16 - _ [2]byte + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 } type BpfTimeval struct { @@ -488,7 +483,7 @@ type Uvmexp struct { Zeropages int32 Reserve_pagedaemon int32 Reserve_kernel int32 - Anonpages int32 + Unused01 int32 Vnodepages int32 Vtextpages int32 Freemin int32 @@ -507,8 +502,8 @@ type Uvmexp struct { Swpgonly int32 Nswget int32 Nanon int32 - Nanonneeded int32 - Nfreeanon int32 + Unused05 int32 + Unused06 int32 Faults int32 Traps int32 Intrs int32 @@ -516,8 +511,8 @@ type Uvmexp struct { Softs int32 Syscalls int32 Pageins int32 - Obsolete_swapins int32 - Obsolete_swapouts int32 + Unused07 int32 + Unused08 int32 Pgswapin int32 Pgswapout int32 Forks int32 @@ -525,7 +520,7 @@ type Uvmexp struct { Forks_sharevm int32 Pga_zerohit int32 Pga_zeromiss int32 - Zeroaborts int32 + Unused09 int32 Fltnoram int32 Fltnoanon int32 Fltnoamap int32 @@ -557,9 +552,9 @@ type Uvmexp struct { Pdpageouts int32 Pdpending int32 Pddeact int32 - Pdreanon int32 - Pdrevnode int32 - Pdrevtext int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 Fpswtch int32 Kmapent int32 } diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go index 2c4675040e..be58c4e1ff 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go @@ -375,14 +375,12 @@ type RtMetrics struct { Pad uint32 } -type Mclpool struct{} - const ( SizeofBpfVersion = 0x4 SizeofBpfStat = 0x8 SizeofBpfProgram = 0x8 SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 + SizeofBpfHdr = 0x18 ) type BpfVersion struct { @@ -412,7 +410,10 @@ type BpfHdr struct { Caplen uint32 Datalen uint32 Hdrlen uint16 - _ [2]byte + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 } type BpfTimeval struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go index ddee045147..52338266cb 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go @@ -368,14 +368,12 @@ type RtMetrics struct { Pad uint32 } -type Mclpool struct{} - const ( SizeofBpfVersion = 0x4 SizeofBpfStat = 0x8 SizeofBpfProgram = 0x10 SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 + SizeofBpfHdr = 0x18 ) type BpfVersion struct { @@ -405,7 +403,10 @@ type BpfHdr struct { Caplen uint32 Datalen uint32 Hdrlen uint16 - _ [2]byte + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 } type BpfTimeval struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go index eb13d4e8bf..605cfdb12b 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go @@ -368,14 +368,12 @@ type RtMetrics struct { Pad uint32 } -type Mclpool struct{} - const ( SizeofBpfVersion = 0x4 SizeofBpfStat = 0x8 SizeofBpfProgram = 0x10 SizeofBpfInsn = 0x8 - SizeofBpfHdr = 0x14 + SizeofBpfHdr = 0x18 ) type BpfVersion struct { @@ -405,7 +403,10 @@ type BpfHdr struct { Caplen uint32 Datalen uint32 Hdrlen uint16 - _ [2]byte + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 } type BpfTimeval struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go new file mode 100644 index 0000000000..d6724c0102 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go @@ -0,0 +1,571 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && openbsd +// +build ppc64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go new file mode 100644 index 0000000000..ddfd27a434 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go @@ -0,0 +1,571 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && openbsd +// +build riscv64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go index c1a9b83ad5..0400747c67 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go @@ -480,3 +480,38 @@ const ( MOUNTEDOVER = 0x40000000 FILE_EXCEPTION = 0x60000070 ) + +const ( + TUNNEWPPA = 0x540001 + TUNSETPPA = 0x540002 + + I_STR = 0x5308 + I_POP = 0x5303 + I_PUSH = 0x5302 + I_LINK = 0x530c + I_UNLINK = 0x530d + I_PLINK = 0x5316 + I_PUNLINK = 0x5317 + + IF_UNITSEL = -0x7ffb8cca +) + +type strbuf struct { + Maxlen int32 + Len int32 + Buf *int8 +} + +type Strioctl struct { + Cmd int32 + Timout int32 + Len int32 + Dp *int8 +} + +type Lifreq struct { + Name [32]int8 + Lifru1 [4]byte + Type uint32 + Lifru [336]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go index 4ab638cb94..aec1efcb30 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go @@ -339,7 +339,7 @@ type Statfs_t struct { Flags uint64 } -type Dirent struct { +type direntLE struct { Reclen uint16 Namlen uint16 Ino uint32 @@ -347,6 +347,15 @@ type Dirent struct { Name [256]byte } +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + type FdSet struct { Bits [64]int32 } diff --git a/vendor/golang.org/x/sys/windows/setupapi_windows.go b/vendor/golang.org/x/sys/windows/setupapi_windows.go index 14027da3f3..f8126482fa 100644 --- a/vendor/golang.org/x/sys/windows/setupapi_windows.go +++ b/vendor/golang.org/x/sys/windows/setupapi_windows.go @@ -296,7 +296,7 @@ const ( // Flag to indicate that the sorting from the INF file should be used. DI_INF_IS_SORTED DI_FLAGS = 0x00008000 - // Flag to indicate that only the the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched. + // Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched. DI_ENUMSINGLEINF DI_FLAGS = 0x00010000 // Flag that prevents ConfigMgr from removing/re-enumerating devices during device diff --git a/vendor/golang.org/x/sys/windows/syscall.go b/vendor/golang.org/x/sys/windows/syscall.go index 72074d582f..8732cdb957 100644 --- a/vendor/golang.org/x/sys/windows/syscall.go +++ b/vendor/golang.org/x/sys/windows/syscall.go @@ -30,8 +30,6 @@ import ( "strings" "syscall" "unsafe" - - "golang.org/x/sys/internal/unsafeheader" ) // ByteSliceFromString returns a NUL-terminated slice of bytes @@ -83,13 +81,7 @@ func BytePtrToString(p *byte) string { ptr = unsafe.Pointer(uintptr(ptr) + 1) } - var s []byte - h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) - h.Data = unsafe.Pointer(p) - h.Len = n - h.Cap = n - - return string(s) + return string(unsafe.Slice(p, n)) } // Single-word zero for use when we need a valid pointer to 0 bytes. diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index be3ec2bd46..41cb3c01fd 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -10,7 +10,6 @@ import ( errorspkg "errors" "fmt" "runtime" - "strings" "sync" "syscall" "time" @@ -87,22 +86,13 @@ func StringToUTF16(s string) []uint16 { // s, with a terminating NUL added. If s contains a NUL byte at any // location, it returns (nil, syscall.EINVAL). func UTF16FromString(s string) ([]uint16, error) { - if strings.IndexByte(s, 0) != -1 { - return nil, syscall.EINVAL - } - return utf16.Encode([]rune(s + "\x00")), nil + return syscall.UTF16FromString(s) } // UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, // with a terminating NUL and any bytes after the NUL removed. func UTF16ToString(s []uint16) string { - for i, v := range s { - if v == 0 { - s = s[:i] - break - } - } - return string(utf16.Decode(s)) + return syscall.UTF16ToString(s) } // StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead. @@ -138,13 +128,7 @@ func UTF16PtrToString(p *uint16) string { ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) } - var s []uint16 - h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) - h.Data = unsafe.Pointer(p) - h.Len = n - h.Cap = n - - return string(utf16.Decode(s)) + return string(utf16.Decode(unsafe.Slice(p, n))) } func Getpagesize() int { return 4096 } @@ -364,6 +348,16 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) //sys GetActiveProcessorCount(groupNumber uint16) (ret uint32) //sys GetMaximumProcessorCount(groupNumber uint16) (ret uint32) +//sys EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows +//sys EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows +//sys GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW +//sys GetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow +//sys GetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow +//sys IsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow +//sys IsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode +//sys IsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible +//sys GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo +//sys GetLargePageMinimum() (size uintptr) // Volume Management Functions //sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW @@ -417,6 +411,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation //sys GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW //sys GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW +//sys QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx // NT Native APIs //sys rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb @@ -438,6 +433,10 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable //sys RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable +// Desktop Window Manager API (Dwmapi) +//sys DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute +//sys DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute + // syscall interface implementation for other packages // GetCurrentProcess returns the handle for the current process. @@ -747,7 +746,7 @@ func Utimes(path string, tv []Timeval) (err error) { if e != nil { return e } - defer Close(h) + defer CloseHandle(h) a := NsecToFiletime(tv[0].Nanoseconds()) w := NsecToFiletime(tv[1].Nanoseconds()) return SetFileTime(h, nil, &a, &w) @@ -767,7 +766,7 @@ func UtimesNano(path string, ts []Timespec) (err error) { if e != nil { return e } - defer Close(h) + defer CloseHandle(h) a := NsecToFiletime(TimespecToNsec(ts[0])) w := NsecToFiletime(TimespecToNsec(ts[1])) return SetFileTime(h, nil, &a, &w) @@ -971,6 +970,32 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { return unsafe.Pointer(&sa.raw), sl, nil } +type RawSockaddrBth struct { + AddressFamily [2]byte + BtAddr [8]byte + ServiceClassId [16]byte + Port [4]byte +} + +type SockaddrBth struct { + BtAddr uint64 + ServiceClassId GUID + Port uint32 + + raw RawSockaddrBth +} + +func (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) { + family := AF_BTH + sa.raw = RawSockaddrBth{ + AddressFamily: *(*[2]byte)(unsafe.Pointer(&family)), + BtAddr: *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)), + Port: *(*[4]byte)(unsafe.Pointer(&sa.Port)), + ServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)), + } + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { switch rsa.Addr.Family { case AF_UNIX: @@ -1081,9 +1106,13 @@ func Shutdown(fd Handle, how int) (err error) { } func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { - rsa, l, err := to.sockaddr() - if err != nil { - return err + var rsa unsafe.Pointer + var l int32 + if to != nil { + rsa, l, err = to.sockaddr() + if err != nil { + return err + } } return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) } @@ -1707,3 +1736,71 @@ func LoadResourceData(module, resInfo Handle) (data []byte, err error) { h.Cap = int(size) return } + +// PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page. +type PSAPI_WORKING_SET_EX_BLOCK uint64 + +// Valid returns the validity of this page. +// If this bit is 1, the subsequent members are valid; otherwise they should be ignored. +func (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool { + return (b & 1) == 1 +} + +// ShareCount is the number of processes that share this page. The maximum value of this member is 7. +func (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 { + return b.intField(1, 3) +} + +// Win32Protection is the memory protection attributes of the page. For a list of values, see +// https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants +func (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 { + return b.intField(4, 11) +} + +// Shared returns the shared status of this page. +// If this bit is 1, the page can be shared. +func (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool { + return (b & (1 << 15)) == 1 +} + +// Node is the NUMA node. The maximum value of this member is 63. +func (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 { + return b.intField(16, 6) +} + +// Locked returns the locked status of this page. +// If this bit is 1, the virtual page is locked in physical memory. +func (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool { + return (b & (1 << 22)) == 1 +} + +// LargePage returns the large page status of this page. +// If this bit is 1, the page is a large page. +func (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool { + return (b & (1 << 23)) == 1 +} + +// Bad returns the bad status of this page. +// If this bit is 1, the page is has been reported as bad. +func (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool { + return (b & (1 << 31)) == 1 +} + +// intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union. +func (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 { + var mask PSAPI_WORKING_SET_EX_BLOCK + for pos := start; pos < start+length; pos++ { + mask |= (1 << pos) + } + + masked := b & mask + return uint64(masked >> start) +} + +// PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process. +type PSAPI_WORKING_SET_EX_INFORMATION struct { + // The virtual address. + VirtualAddress Pointer + // A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress. + VirtualAttributes PSAPI_WORKING_SET_EX_BLOCK +} diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index f9eaca528e..0c4add9741 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -3213,3 +3213,48 @@ type ModuleInfo struct { } const ALL_PROCESSOR_GROUPS = 0xFFFF + +type Rect struct { + Left int32 + Top int32 + Right int32 + Bottom int32 +} + +type GUIThreadInfo struct { + Size uint32 + Flags uint32 + Active HWND + Focus HWND + Capture HWND + MenuOwner HWND + MoveSize HWND + CaretHandle HWND + CaretRect Rect +} + +const ( + DWMWA_NCRENDERING_ENABLED = 1 + DWMWA_NCRENDERING_POLICY = 2 + DWMWA_TRANSITIONS_FORCEDISABLED = 3 + DWMWA_ALLOW_NCPAINT = 4 + DWMWA_CAPTION_BUTTON_BOUNDS = 5 + DWMWA_NONCLIENT_RTL_LAYOUT = 6 + DWMWA_FORCE_ICONIC_REPRESENTATION = 7 + DWMWA_FLIP3D_POLICY = 8 + DWMWA_EXTENDED_FRAME_BOUNDS = 9 + DWMWA_HAS_ICONIC_BITMAP = 10 + DWMWA_DISALLOW_PEEK = 11 + DWMWA_EXCLUDED_FROM_PEEK = 12 + DWMWA_CLOAK = 13 + DWMWA_CLOAKED = 14 + DWMWA_FREEZE_REPRESENTATION = 15 + DWMWA_PASSIVE_UPDATE_MODE = 16 + DWMWA_USE_HOSTBACKDROPBRUSH = 17 + DWMWA_USE_IMMERSIVE_DARK_MODE = 20 + DWMWA_WINDOW_CORNER_PREFERENCE = 33 + DWMWA_BORDER_COLOR = 34 + DWMWA_CAPTION_COLOR = 35 + DWMWA_TEXT_COLOR = 36 + DWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37 +) diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 678262cda1..ac60052e44 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -40,6 +40,7 @@ var ( modadvapi32 = NewLazySystemDLL("advapi32.dll") modcrypt32 = NewLazySystemDLL("crypt32.dll") moddnsapi = NewLazySystemDLL("dnsapi.dll") + moddwmapi = NewLazySystemDLL("dwmapi.dll") modiphlpapi = NewLazySystemDLL("iphlpapi.dll") modkernel32 = NewLazySystemDLL("kernel32.dll") modmswsock = NewLazySystemDLL("mswsock.dll") @@ -175,6 +176,8 @@ var ( procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") + procDwmGetWindowAttribute = moddwmapi.NewProc("DwmGetWindowAttribute") + procDwmSetWindowAttribute = moddwmapi.NewProc("DwmSetWindowAttribute") procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") @@ -249,6 +252,7 @@ var ( procGetFileType = modkernel32.NewProc("GetFileType") procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW") procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") + procGetLargePageMinimum = modkernel32.NewProc("GetLargePageMinimum") procGetLastError = modkernel32.NewProc("GetLastError") procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") @@ -408,6 +412,7 @@ var ( procGetModuleBaseNameW = modpsapi.NewProc("GetModuleBaseNameW") procGetModuleFileNameExW = modpsapi.NewProc("GetModuleFileNameExW") procGetModuleInformation = modpsapi.NewProc("GetModuleInformation") + procQueryWorkingSetEx = modpsapi.NewProc("QueryWorkingSetEx") procSubscribeServiceChangeNotifications = modsechost.NewProc("SubscribeServiceChangeNotifications") procUnsubscribeServiceChangeNotifications = modsechost.NewProc("UnsubscribeServiceChangeNotifications") procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") @@ -443,9 +448,18 @@ var ( procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") procSHGetKnownFolderPath = modshell32.NewProc("SHGetKnownFolderPath") procShellExecuteW = modshell32.NewProc("ShellExecuteW") + procEnumChildWindows = moduser32.NewProc("EnumChildWindows") + procEnumWindows = moduser32.NewProc("EnumWindows") procExitWindowsEx = moduser32.NewProc("ExitWindowsEx") + procGetClassNameW = moduser32.NewProc("GetClassNameW") + procGetDesktopWindow = moduser32.NewProc("GetDesktopWindow") + procGetForegroundWindow = moduser32.NewProc("GetForegroundWindow") + procGetGUIThreadInfo = moduser32.NewProc("GetGUIThreadInfo") procGetShellWindow = moduser32.NewProc("GetShellWindow") procGetWindowThreadProcessId = moduser32.NewProc("GetWindowThreadProcessId") + procIsWindow = moduser32.NewProc("IsWindow") + procIsWindowUnicode = moduser32.NewProc("IsWindowUnicode") + procIsWindowVisible = moduser32.NewProc("IsWindowVisible") procMessageBoxW = moduser32.NewProc("MessageBoxW") procCreateEnvironmentBlock = moduserenv.NewProc("CreateEnvironmentBlock") procDestroyEnvironmentBlock = moduserenv.NewProc("DestroyEnvironmentBlock") @@ -1524,6 +1538,22 @@ func DnsRecordListFree(rl *DNSRecord, freetype uint32) { return } +func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { + r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + +func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { + r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + if r0 != 0 { + ret = syscall.Errno(r0) + } + return +} + func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) if r0 != 0 { @@ -2151,6 +2181,12 @@ func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) ( return } +func GetLargePageMinimum() (size uintptr) { + r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0) + size = uintptr(r0) + return +} + func GetLastError() (lasterr error) { r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) if r0 != 0 { @@ -3504,6 +3540,14 @@ func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb return } +func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { + r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) { ret = procSubscribeServiceChangeNotifications.Find() if ret != nil { @@ -3793,6 +3837,19 @@ func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *ui return } +func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { + syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param)) + return +} + +func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { + r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func ExitWindowsEx(flags uint32, reason uint32) (err error) { r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) if r1 == 0 { @@ -3801,6 +3858,35 @@ func ExitWindowsEx(flags uint32, reason uint32) (err error) { return } +func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { + r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) + copied = int32(r0) + if copied == 0 { + err = errnoErr(e1) + } + return +} + +func GetDesktopWindow() (hwnd HWND) { + r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0) + hwnd = HWND(r0) + return +} + +func GetForegroundWindow() (hwnd HWND) { + r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0) + hwnd = HWND(r0) + return +} + +func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func GetShellWindow() (shellWindow HWND) { r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) shellWindow = HWND(r0) @@ -3816,6 +3902,24 @@ func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { return } +func IsWindow(hwnd HWND) (isWindow bool) { + r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0) + isWindow = r0 != 0 + return +} + +func IsWindowUnicode(hwnd HWND) (isUnicode bool) { + r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0) + isUnicode = r0 != 0 + return +} + +func IsWindowVisible(hwnd HWND) (isVisible bool) { + r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0) + isVisible = r0 != 0 + return +} + func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) ret = int32(r0) diff --git a/vendor/golang.org/x/term/AUTHORS b/vendor/golang.org/x/term/AUTHORS deleted file mode 100644 index 15167cd746..0000000000 --- a/vendor/golang.org/x/term/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/term/CONTRIBUTORS b/vendor/golang.org/x/term/CONTRIBUTORS deleted file mode 100644 index 1c4577e968..0000000000 --- a/vendor/golang.org/x/term/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/term/term.go b/vendor/golang.org/x/term/term.go index d592708808..1a40d10125 100644 --- a/vendor/golang.org/x/term/term.go +++ b/vendor/golang.org/x/term/term.go @@ -7,11 +7,11 @@ // // Putting a terminal into raw mode is the most common requirement: // -// oldState, err := term.MakeRaw(int(os.Stdin.Fd())) -// if err != nil { -// panic(err) -// } -// defer term.Restore(int(os.Stdin.Fd()), oldState) +// oldState, err := term.MakeRaw(int(os.Stdin.Fd())) +// if err != nil { +// panic(err) +// } +// defer term.Restore(int(os.Stdin.Fd()), oldState) // // Note that on non-Unix systems os.Stdin.Fd() may not be 0. package term diff --git a/vendor/golang.org/x/term/terminal.go b/vendor/golang.org/x/term/terminal.go index 535ab8257c..f636667fb0 100644 --- a/vendor/golang.org/x/term/terminal.go +++ b/vendor/golang.org/x/term/terminal.go @@ -233,7 +233,6 @@ func (t *Terminal) queue(data []rune) { t.outBuf = append(t.outBuf, []byte(string(data))...) } -var eraseUnderCursor = []rune{' ', keyEscape, '[', 'D'} var space = []rune{' '} func isPrintable(key rune) bool { @@ -935,7 +934,7 @@ func (s *stRingBuffer) Add(a string) { // next most recent, and so on. If such an element doesn't exist then ok is // false. func (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) { - if n >= s.size { + if n < 0 || n >= s.size { return "", false } index := s.head - n diff --git a/vendor/golang.org/x/text/AUTHORS b/vendor/golang.org/x/text/AUTHORS deleted file mode 100644 index 15167cd746..0000000000 --- a/vendor/golang.org/x/text/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/text/CONTRIBUTORS b/vendor/golang.org/x/text/CONTRIBUTORS deleted file mode 100644 index 1c4577e968..0000000000 --- a/vendor/golang.org/x/text/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/text/cases/trieval.go b/vendor/golang.org/x/text/cases/trieval.go index 99e0396288..4e4d13fe5d 100644 --- a/vendor/golang.org/x/text/cases/trieval.go +++ b/vendor/golang.org/x/text/cases/trieval.go @@ -14,19 +14,19 @@ package cases // // The per-rune values have the following format: // -// if (exception) { -// 15..4 unsigned exception index -// } else { -// 15..8 XOR pattern or index to XOR pattern for case mapping -// Only 13..8 are used for XOR patterns. -// 7 inverseFold (fold to upper, not to lower) -// 6 index: interpret the XOR pattern as an index -// or isMid if case mode is cIgnorableUncased. -// 5..4 CCC: zero (normal or break), above or other -// } -// 3 exception: interpret this value as an exception index -// (TODO: is this bit necessary? Probably implied from case mode.) -// 2..0 case mode +// if (exception) { +// 15..4 unsigned exception index +// } else { +// 15..8 XOR pattern or index to XOR pattern for case mapping +// Only 13..8 are used for XOR patterns. +// 7 inverseFold (fold to upper, not to lower) +// 6 index: interpret the XOR pattern as an index +// or isMid if case mode is cIgnorableUncased. +// 5..4 CCC: zero (normal or break), above or other +// } +// 3 exception: interpret this value as an exception index +// (TODO: is this bit necessary? Probably implied from case mode.) +// 2..0 case mode // // For the non-exceptional cases, a rune must be either uncased, lowercase or // uppercase. If the rune is cased, the XOR pattern maps either a lowercase @@ -128,37 +128,40 @@ const ( // The entry is pointed to by the exception index in an entry. It has the // following format: // -// Header -// byte 0: -// 7..6 unused -// 5..4 CCC type (same bits as entry) -// 3 unused -// 2..0 length of fold +// Header: // -// byte 1: -// 7..6 unused -// 5..3 length of 1st mapping of case type -// 2..0 length of 2nd mapping of case type +// byte 0: +// 7..6 unused +// 5..4 CCC type (same bits as entry) +// 3 unused +// 2..0 length of fold // -// case 1st 2nd -// lower -> upper, title -// upper -> lower, title -// title -> lower, upper +// byte 1: +// 7..6 unused +// 5..3 length of 1st mapping of case type +// 2..0 length of 2nd mapping of case type +// +// case 1st 2nd +// lower -> upper, title +// upper -> lower, title +// title -> lower, upper // // Lengths with the value 0x7 indicate no value and implies no change. // A length of 0 indicates a mapping to zero-length string. // // Body bytes: -// case folding bytes -// lowercase mapping bytes -// uppercase mapping bytes -// titlecase mapping bytes -// closure mapping bytes (for NFKC_Casefold). (TODO) +// +// case folding bytes +// lowercase mapping bytes +// uppercase mapping bytes +// titlecase mapping bytes +// closure mapping bytes (for NFKC_Casefold). (TODO) // // Fallbacks: -// missing fold -> lower -// missing title -> upper -// all missing -> original rune +// +// missing fold -> lower +// missing title -> upper +// all missing -> original rune // // exceptions starts with a dummy byte to enforce that there is no zero index // value. diff --git a/vendor/golang.org/x/text/encoding/htmlindex/tables.go b/vendor/golang.org/x/text/encoding/htmlindex/tables.go index f074e2c6da..9e6daa8965 100644 --- a/vendor/golang.org/x/text/encoding/htmlindex/tables.go +++ b/vendor/golang.org/x/text/encoding/htmlindex/tables.go @@ -93,8 +93,11 @@ var canonical = [numEncodings]string{ var nameMap = map[string]htmlEncoding{ "unicode-1-1-utf-8": utf8, + "unicode11utf8": utf8, + "unicode20utf8": utf8, "utf-8": utf8, "utf8": utf8, + "x-unicode20utf8": utf8, "866": ibm866, "cp866": ibm866, "csibm866": ibm866, @@ -307,7 +310,13 @@ var nameMap = map[string]htmlEncoding{ "iso-2022-cn-ext": replacement, "iso-2022-kr": replacement, "replacement": replacement, + "unicodefffe": utf16be, "utf-16be": utf16be, + "csunicode": utf16le, + "iso-10646-ucs-2": utf16le, + "ucs-2": utf16le, + "unicode": utf16le, + "unicodefeff": utf16le, "utf-16": utf16le, "utf-16le": utf16le, "x-user-defined": xUserDefined, diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go index fc7df1bc71..351fb86e29 100644 --- a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go +++ b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go @@ -905,6 +905,14 @@ const ( // https://www.unicode.org/notes/tn6/ BOCU1 MIB = 1020 + // UTF7IMAP is the MIB identifier with IANA name UTF-7-IMAP. + // + // Note: This charset is used to encode Unicode in IMAP mailbox names; + // see section 5.1.3 of rfc3501 . It should never be used + // outside this context. A name has been assigned so that charset processing + // implementations can refer to it in a consistent way. + UTF7IMAP MIB = 1021 + // Windows30Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.0-Latin-1. // // Extended ISO 8859-1 Latin-1 for Windows 3.0. diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go index b89c45b03d..0e0fabfd6b 100644 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go +++ b/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go @@ -55,6 +55,8 @@ loop: // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk // says to treat "gbk" as Code Page 936. + // GBK’s decoder is gb18030’s decoder. https://encoding.spec.whatwg.org/#gbk-decoder + // If byte is 0x80, return code point U+20AC. https://encoding.spec.whatwg.org/#gb18030-decoder case c0 == 0x80: r, size = '€', 1 @@ -180,7 +182,9 @@ func (e gbkEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk // says to treat "gbk" as Code Page 936. - if r == '€' { + // GBK’s encoder is gb18030’s encoder with its _is GBK_ set to true. https://encoding.spec.whatwg.org/#gbk-encoder + // If _is GBK_ is true and code point is U+20AC, return byte 0x80. https://encoding.spec.whatwg.org/#gb18030-encoder + if !e.gb18030 && r == '€' { r = 0x80 goto write1 } diff --git a/vendor/golang.org/x/text/internal/language/compact/language.go b/vendor/golang.org/x/text/internal/language/compact/language.go index 83816a72a8..8c1b6666fb 100644 --- a/vendor/golang.org/x/text/internal/language/compact/language.go +++ b/vendor/golang.org/x/text/internal/language/compact/language.go @@ -118,7 +118,7 @@ func (t Tag) Parent() Tag { return Tag{language: lang, locale: lang} } -// returns token t and the rest of the string. +// nextToken returns token t and the rest of the string. func nextToken(s string) (t, tail string) { p := strings.Index(s[1:], "-") if p == -1 { diff --git a/vendor/golang.org/x/text/internal/language/compact/tables.go b/vendor/golang.org/x/text/internal/language/compact/tables.go index fe7ad9ea7c..32af9de599 100644 --- a/vendor/golang.org/x/text/internal/language/compact/tables.go +++ b/vendor/golang.org/x/text/internal/language/compact/tables.go @@ -966,7 +966,7 @@ var coreTags = []language.CompactCoreInfo{ // 773 elements 0x3fd00000, 0x3fd00072, 0x3fd000da, 0x3fd0010c, 0x3ff00000, 0x3ff000d1, 0x40100000, 0x401000c3, 0x40200000, 0x4020004c, 0x40700000, 0x40800000, - 0x4085a000, 0x4085a0ba, 0x408e3000, 0x408e30ba, + 0x4085a000, 0x4085a0ba, 0x408e8000, 0x408e80ba, 0x40c00000, 0x40c000b3, 0x41200000, 0x41200111, 0x41600000, 0x4160010f, 0x41c00000, 0x41d00000, // Entry 280 - 29F @@ -994,7 +994,7 @@ var coreTags = []language.CompactCoreInfo{ // 773 elements 0x4ae00130, 0x4b400000, 0x4b400099, 0x4b4000e8, 0x4bc00000, 0x4bc05000, 0x4bc05024, 0x4bc20000, 0x4bc20137, 0x4bc5a000, 0x4bc5a137, 0x4be00000, - 0x4be5a000, 0x4be5a0b4, 0x4beeb000, 0x4beeb0b4, + 0x4be5a000, 0x4be5a0b4, 0x4bef1000, 0x4bef10b4, 0x4c000000, 0x4c300000, 0x4c30013e, 0x4c900000, // Entry 2E0 - 2FF 0x4c900001, 0x4cc00000, 0x4cc0012f, 0x4ce00000, @@ -1012,4 +1012,4 @@ var coreTags = []language.CompactCoreInfo{ // 773 elements const specialTagsStr string = "ca-ES-valencia en-US-u-va-posix" -// Total table size 3147 bytes (3KiB); checksum: BE816D44 +// Total table size 3147 bytes (3KiB); checksum: 6772C83C diff --git a/vendor/golang.org/x/text/internal/language/language.go b/vendor/golang.org/x/text/internal/language/language.go index 6105bc7fad..09d41c7367 100644 --- a/vendor/golang.org/x/text/internal/language/language.go +++ b/vendor/golang.org/x/text/internal/language/language.go @@ -409,7 +409,7 @@ func (t Tag) SetTypeForKey(key, value string) (Tag, error) { return t, nil } -// findKeyAndType returns the start and end position for the type corresponding +// findTypeForKey returns the start and end position for the type corresponding // to key or the point at which to insert the key-value pair if the type // wasn't found. The hasExt return value reports whether an -u extension was present. // Note: the extensions are typically very small and are likely to contain diff --git a/vendor/golang.org/x/text/internal/language/lookup.go b/vendor/golang.org/x/text/internal/language/lookup.go index 6294b81524..231b4fbdeb 100644 --- a/vendor/golang.org/x/text/internal/language/lookup.go +++ b/vendor/golang.org/x/text/internal/language/lookup.go @@ -50,7 +50,7 @@ func (id Language) Canonicalize() (Language, AliasType) { return normLang(id) } -// mapLang returns the mapped langID of id according to mapping m. +// normLang returns the mapped langID of id according to mapping m. func normLang(id Language) (Language, AliasType) { k := sort.Search(len(AliasMap), func(i int) bool { return AliasMap[i].From >= uint16(id) @@ -328,7 +328,7 @@ func (r Region) IsPrivateUse() bool { return r.typ()&iso3166UserAssigned != 0 } -type Script uint8 +type Script uint16 // getScriptID returns the script id for string s. It assumes that s // is of the format [A-Z][a-z]{3}. diff --git a/vendor/golang.org/x/text/internal/language/parse.go b/vendor/golang.org/x/text/internal/language/parse.go index 47ee0fed17..aad1e0acf7 100644 --- a/vendor/golang.org/x/text/internal/language/parse.go +++ b/vendor/golang.org/x/text/internal/language/parse.go @@ -270,7 +270,7 @@ func parse(scan *scanner, s string) (t Tag, err error) { } else if n >= 4 { return Und, ErrSyntax } else { // the usual case - t, end = parseTag(scan) + t, end = parseTag(scan, true) if n := len(scan.token); n == 1 { t.pExt = uint16(end) end = parseExtensions(scan) @@ -296,7 +296,8 @@ func parse(scan *scanner, s string) (t Tag, err error) { // parseTag parses language, script, region and variants. // It returns a Tag and the end position in the input that was parsed. -func parseTag(scan *scanner) (t Tag, end int) { +// If doNorm is true, then - will be normalized to . +func parseTag(scan *scanner, doNorm bool) (t Tag, end int) { var e error // TODO: set an error if an unknown lang, script or region is encountered. t.LangID, e = getLangID(scan.token) @@ -307,14 +308,17 @@ func parseTag(scan *scanner) (t Tag, end int) { for len(scan.token) == 3 && isAlpha(scan.token[0]) { // From http://tools.ietf.org/html/bcp47, - tags are equivalent // to a tag of the form . - lang, e := getLangID(scan.token) - if lang != 0 { - t.LangID = lang - copy(scan.b[langStart:], lang.String()) - scan.b[langStart+3] = '-' - scan.start = langStart + 4 + if doNorm { + lang, e := getLangID(scan.token) + if lang != 0 { + t.LangID = lang + langStr := lang.String() + copy(scan.b[langStart:], langStr) + scan.b[langStart+len(langStr)] = '-' + scan.start = langStart + len(langStr) + 1 + } + scan.gobble(e) } - scan.gobble(e) end = scan.scan() } if len(scan.token) == 4 && isAlpha(scan.token[0]) { @@ -559,7 +563,7 @@ func parseExtension(scan *scanner) int { case 't': // https://www.ietf.org/rfc/rfc6497.txt scan.scan() if n := len(scan.token); n >= 2 && n <= 3 && isAlpha(scan.token[1]) { - _, end = parseTag(scan) + _, end = parseTag(scan, false) scan.toLower(start, end) } for len(scan.token) == 2 && !isAlpha(scan.token[1]) { diff --git a/vendor/golang.org/x/text/internal/language/tables.go b/vendor/golang.org/x/text/internal/language/tables.go index a19480c5ba..fb6b58378b 100644 --- a/vendor/golang.org/x/text/internal/language/tables.go +++ b/vendor/golang.org/x/text/internal/language/tables.go @@ -7,9 +7,9 @@ import "golang.org/x/text/internal/tag" // CLDRVersion is the CLDR version from which the tables in this package are derived. const CLDRVersion = "32" -const NumLanguages = 8717 +const NumLanguages = 8752 -const NumScripts = 251 +const NumScripts = 258 const NumRegions = 357 @@ -121,9 +121,10 @@ const langPrivateEnd = 0x3179 // lang holds an alphabetically sorted list of ISO-639 language identifiers. // All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag. // For 2-byte language identifiers, the two successive bytes have the following meaning: -// - if the first letter of the 2- and 3-letter ISO codes are the same: -// the second and third letter of the 3-letter ISO code. -// - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3. +// - if the first letter of the 2- and 3-letter ISO codes are the same: +// the second and third letter of the 3-letter ISO code. +// - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3. +// // For 3-byte language identifiers the 4th byte is 0. const lang tag.Index = "" + // Size: 5324 bytes "---\x00aaaraai\x00aak\x00aau\x00abbkabi\x00abq\x00abr\x00abt\x00aby\x00a" + @@ -265,7 +266,7 @@ var langNoIndex = [2197]uint8{ 0xad, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x84, 0x62, 0xe9, 0xbf, 0xfd, 0xbf, 0xbf, 0xf7, 0xfd, 0x77, 0x0f, 0xff, 0xef, 0x6f, 0xff, 0xfb, 0xdf, 0xe2, - 0xc9, 0xf8, 0x7f, 0x7e, 0x4d, 0xb8, 0x0a, 0x6a, + 0xc9, 0xf8, 0x7f, 0x7e, 0x4d, 0xbc, 0x0a, 0x6a, 0x7c, 0xea, 0xe3, 0xfa, 0x7a, 0xbf, 0x67, 0xff, // Entry 40 - 7F 0xff, 0xff, 0xff, 0xdf, 0x2a, 0x54, 0x91, 0xc0, @@ -277,7 +278,7 @@ var langNoIndex = [2197]uint8{ 0xa8, 0xff, 0x1f, 0x67, 0x7d, 0xeb, 0xef, 0xce, 0xff, 0xff, 0x9f, 0xff, 0xb7, 0xef, 0xfe, 0xcf, // Entry 80 - BF - 0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x2f, 0xff, 0xff, + 0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x6f, 0xff, 0xff, 0xbb, 0xee, 0xf7, 0xbd, 0xdb, 0xff, 0x5f, 0xf7, 0xfd, 0xf2, 0xfd, 0xff, 0x5e, 0x2f, 0x3b, 0xba, 0x7e, 0xff, 0xff, 0xfe, 0xf7, 0xff, 0xdd, 0xff, @@ -290,15 +291,15 @@ var langNoIndex = [2197]uint8{ 0x1b, 0x14, 0x08, 0xf3, 0x2b, 0xe7, 0x17, 0x56, 0x05, 0x7d, 0x0e, 0x1c, 0x37, 0x7b, 0xf3, 0xef, 0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10, - 0xbc, 0x85, 0xaf, 0xdf, 0xff, 0xff, 0x73, 0x35, - 0x3e, 0x87, 0xc7, 0xdf, 0xff, 0x01, 0x81, 0x00, + 0xbc, 0x85, 0xaf, 0xdf, 0xff, 0xff, 0x7b, 0x35, + 0x3e, 0xc7, 0xc7, 0xdf, 0xff, 0x01, 0x81, 0x00, 0xb0, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x40, 0x00, 0x40, 0x92, 0x21, 0x50, 0xb1, 0x5d, // Entry 100 - 13F 0xfd, 0xdc, 0xbe, 0x5e, 0x00, 0x00, 0x02, 0x64, 0x0d, 0x19, 0x41, 0xdf, 0x79, 0x22, 0x00, 0x00, 0x00, 0x5e, 0x64, 0xdc, 0x24, 0xe5, 0xd9, 0xe3, - 0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x01, 0x0c, + 0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x41, 0x0c, 0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc7, 0x67, 0x5f, 0x56, 0x99, 0x5e, 0xb5, 0x6c, 0xaf, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xda, 0x56, @@ -309,9 +310,9 @@ var langNoIndex = [2197]uint8{ 0x0a, 0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x09, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x04, - 0x08, 0x00, 0x00, 0x04, 0x00, 0x80, 0x28, 0x04, + 0x08, 0x00, 0x00, 0x05, 0x00, 0x80, 0x28, 0x04, 0x00, 0x00, 0x40, 0xd5, 0x2d, 0x00, 0x64, 0x35, - 0x24, 0x52, 0xf4, 0xd4, 0xbd, 0x62, 0xc9, 0x03, + 0x24, 0x52, 0xf4, 0xd5, 0xbf, 0x62, 0xc9, 0x03, // Entry 180 - 1BF 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x13, 0x39, 0x01, 0xdd, 0x57, 0x98, @@ -333,20 +334,20 @@ var langNoIndex = [2197]uint8{ // Entry 200 - 23F 0xdf, 0xc3, 0x83, 0x82, 0xc0, 0xfb, 0x57, 0x27, 0xed, 0x55, 0xe7, 0x01, 0x00, 0x20, 0xb2, 0xc5, - 0xa4, 0x45, 0x25, 0x9b, 0x02, 0xdf, 0xe0, 0xdf, - 0x03, 0x44, 0x08, 0x90, 0x01, 0x04, 0x01, 0xe3, + 0xa4, 0x45, 0x25, 0x9b, 0x02, 0xdf, 0xe1, 0xdf, + 0x03, 0x44, 0x08, 0x90, 0x01, 0x04, 0x81, 0xe3, 0x92, 0x54, 0xdb, 0x28, 0xd3, 0x5f, 0xfe, 0x6d, 0x79, 0xed, 0x1c, 0x7d, 0x04, 0x08, 0x00, 0x01, 0x21, 0x12, 0x64, 0x5f, 0xdd, 0x0e, 0x85, 0x4f, 0x40, 0x40, 0x00, 0x04, 0xf1, 0xfd, 0x3d, 0x54, // Entry 240 - 27F 0xe8, 0x03, 0xb4, 0x27, 0x23, 0x0d, 0x00, 0x00, - 0x20, 0x7b, 0x78, 0x02, 0x05, 0x84, 0x00, 0xf0, + 0x20, 0x7b, 0x78, 0x02, 0x07, 0x84, 0x00, 0xf0, 0xbb, 0x7e, 0x5a, 0x00, 0x18, 0x04, 0x81, 0x00, 0x00, 0x00, 0x80, 0x10, 0x90, 0x1c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x04, 0x08, 0xa0, 0x70, 0xa5, 0x0c, 0x40, 0x00, 0x00, - 0x11, 0x24, 0x04, 0x68, 0x00, 0x20, 0x70, 0xff, + 0x91, 0x24, 0x04, 0x68, 0x00, 0x20, 0x70, 0xff, 0x7b, 0x7f, 0x70, 0x00, 0x05, 0x9b, 0xdd, 0x66, // Entry 280 - 2BF 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x05, @@ -365,12 +366,12 @@ var langNoIndex = [2197]uint8{ 0xa7, 0x81, 0x47, 0x97, 0xfb, 0x00, 0x10, 0x00, 0x08, 0x00, 0x80, 0x00, 0x40, 0x04, 0x00, 0x01, 0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x00, 0x08, - 0xd8, 0xeb, 0xf6, 0x39, 0xc4, 0x89, 0x12, 0x00, + 0xd8, 0xeb, 0xf6, 0x39, 0xc4, 0x8d, 0x12, 0x00, // Entry 300 - 33F 0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x04, 0x10, 0xd0, 0x9d, 0x95, 0x13, 0x04, 0x80, - 0x00, 0x01, 0xd0, 0x12, 0x40, 0x00, 0x10, 0xb0, + 0x00, 0x01, 0xd0, 0x16, 0x40, 0x00, 0x10, 0xb0, 0x10, 0x62, 0x4c, 0xd2, 0x02, 0x01, 0x4a, 0x00, 0x46, 0x04, 0x00, 0x08, 0x02, 0x00, 0x20, 0x80, 0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, @@ -397,9 +398,9 @@ var langNoIndex = [2197]uint8{ 0x02, 0x30, 0x9f, 0x7a, 0x16, 0xbd, 0x7f, 0x57, 0xf2, 0xff, 0x31, 0xff, 0xf2, 0x1e, 0x90, 0xf7, 0xf1, 0xf9, 0x45, 0x80, 0x01, 0x02, 0x00, 0x00, - 0x40, 0x54, 0x9f, 0x8a, 0xd9, 0xf9, 0x2e, 0x11, + 0x40, 0x54, 0x9f, 0x8a, 0xdb, 0xf9, 0x2e, 0x11, 0x86, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x40, 0x01, - 0x05, 0xd1, 0x50, 0x5c, 0x00, 0x00, 0x00, 0x10, + 0x05, 0xd1, 0x50, 0x5c, 0x00, 0x40, 0x00, 0x10, 0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2, 0xb9, 0xfd, 0xfc, 0xba, 0xfe, 0xef, 0xc7, 0xbe, // Entry 400 - 43F @@ -421,19 +422,19 @@ var langNoIndex = [2197]uint8{ 0xcd, 0xff, 0xfb, 0xff, 0xdf, 0xd7, 0xea, 0xff, 0xe5, 0x5f, 0x6d, 0x0f, 0xa7, 0x51, 0x06, 0xc4, // Entry 480 - 4BF - 0x13, 0x50, 0x5d, 0xaf, 0xa6, 0xff, 0x99, 0xfb, + 0x93, 0x50, 0x5d, 0xaf, 0xa6, 0xff, 0x99, 0xfb, 0x63, 0x1d, 0x53, 0xff, 0xef, 0xb7, 0x35, 0x20, 0x14, 0x00, 0x55, 0x51, 0x82, 0x65, 0xf5, 0x41, 0xe2, 0xff, 0xfc, 0xdf, 0x02, 0x05, 0xc5, 0x05, - 0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x04, + 0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x05, 0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x20, 0x05, 0x04, 0x01, 0x00, 0x00, - 0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xb1, + 0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xf1, // Entry 4C0 - 4FF - 0xfd, 0x47, 0x49, 0x06, 0x95, 0x06, 0x57, 0xed, - 0xfb, 0x4c, 0x1c, 0x6b, 0x83, 0x04, 0x62, 0x40, + 0xfd, 0x47, 0x69, 0x06, 0x95, 0x06, 0x57, 0xed, + 0xfb, 0x4d, 0x1c, 0x6b, 0x83, 0x04, 0x62, 0x40, 0x00, 0x11, 0x42, 0x00, 0x00, 0x00, 0x54, 0x83, - 0xb8, 0x4f, 0x10, 0x8c, 0x89, 0x46, 0xde, 0xf7, + 0xb8, 0x4f, 0x10, 0x8e, 0x89, 0x46, 0xde, 0xf7, 0x13, 0x31, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x00, 0x01, 0x00, 0x00, 0xf0, 0x5b, 0xf4, 0xbe, 0x3d, @@ -470,7 +471,7 @@ var langNoIndex = [2197]uint8{ 0xaa, 0x10, 0x5d, 0x98, 0x52, 0x00, 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x02, 0x02, 0x19, 0x00, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d, - 0x31, 0x00, 0x00, 0x00, 0x01, 0x10, 0x02, 0x20, + 0x31, 0x00, 0x00, 0x00, 0x01, 0x18, 0x02, 0x20, 0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x20, 0x00, 0x00, 0x1f, 0xdf, 0xd2, 0xb9, 0xff, 0xfd, 0x3f, 0x1f, 0x98, 0xcf, 0x9c, 0xff, 0xaf, 0x5f, 0xfe, @@ -479,9 +480,9 @@ var langNoIndex = [2197]uint8{ 0xb7, 0xf6, 0xfb, 0xb3, 0xc7, 0xff, 0x6f, 0xf1, 0x73, 0xb1, 0x7f, 0x9f, 0x7f, 0xbd, 0xfc, 0xb7, 0xee, 0x1c, 0xfa, 0xcb, 0xef, 0xdd, 0xf9, 0xbd, - 0x6e, 0xae, 0x55, 0xfd, 0x6e, 0x81, 0x76, 0x1f, + 0x6e, 0xae, 0x55, 0xfd, 0x6e, 0x81, 0x76, 0x9f, 0xd4, 0x77, 0xf5, 0x7d, 0xfb, 0xff, 0xeb, 0xfe, - 0xbe, 0x5f, 0x46, 0x1b, 0xe9, 0x5f, 0x50, 0x18, + 0xbe, 0x5f, 0x46, 0x5b, 0xe9, 0x5f, 0x50, 0x18, 0x02, 0xfa, 0xf7, 0x9d, 0x15, 0x97, 0x05, 0x0f, // Entry 640 - 67F 0x75, 0xc4, 0x7d, 0x81, 0x92, 0xf5, 0x57, 0x6c, @@ -495,14 +496,14 @@ var langNoIndex = [2197]uint8{ // Entry 680 - 6BF 0x97, 0x9d, 0xbf, 0x9f, 0xf7, 0xc7, 0xfd, 0x37, 0xce, 0x7f, 0x04, 0x1d, 0x73, 0x7f, 0xf8, 0xda, - 0x5d, 0xce, 0x7d, 0x06, 0xb9, 0xea, 0x69, 0xa0, + 0x5d, 0xce, 0x7d, 0x06, 0xb9, 0xea, 0x79, 0xa0, 0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x08, 0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x01, 0x06, 0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00, 0x04, 0x00, 0x10, 0xdc, 0x58, 0xd7, 0x0d, 0x0f, // Entry 6C0 - 6FF - 0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd1, 0x42, 0x08, + 0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd5, 0x42, 0x08, 0x40, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, 0x00, 0xdc, 0xfb, 0xcb, 0x0e, 0x58, 0x48, 0x41, 0x24, 0x20, 0x04, 0x00, 0x30, 0x12, 0x40, 0x00, @@ -513,7 +514,7 @@ var langNoIndex = [2197]uint8{ // Entry 700 - 73F 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x80, 0x86, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x01, - 0xdf, 0x18, 0x00, 0x00, 0x02, 0xf0, 0xfd, 0x79, + 0xff, 0x18, 0x02, 0x00, 0x02, 0xf0, 0xfd, 0x79, 0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x03, 0x00, 0x09, 0x20, 0x00, 0x00, 0x01, 0x00, @@ -525,7 +526,7 @@ var langNoIndex = [2197]uint8{ 0xcd, 0xf9, 0x5c, 0x00, 0x01, 0x00, 0x30, 0x04, 0x04, 0x55, 0x00, 0x01, 0x04, 0xf4, 0x3f, 0x4a, 0x01, 0x00, 0x00, 0xb0, 0x80, 0x20, 0x55, 0x75, - 0x97, 0x7c, 0x9f, 0x31, 0xcc, 0x68, 0xd1, 0x03, + 0x97, 0x7c, 0xdf, 0x31, 0xcc, 0x68, 0xd1, 0x03, 0xd5, 0x57, 0x27, 0x14, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0xf7, 0xcb, 0x1f, 0x14, 0x60, // Entry 780 - 7BF @@ -538,7 +539,7 @@ var langNoIndex = [2197]uint8{ 0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02, 0xff, 0xef, 0xff, 0x4b, 0x85, 0x53, 0xf4, 0xed, // Entry 7C0 - 7FF - 0xdd, 0xbf, 0x72, 0x1d, 0xc7, 0x0c, 0xd5, 0x42, + 0xdd, 0xbf, 0xf2, 0x5d, 0xc7, 0x0c, 0xd5, 0x42, 0xfc, 0xff, 0xf7, 0x1f, 0x00, 0x80, 0x40, 0x56, 0xcc, 0x16, 0x9e, 0xea, 0x35, 0x7d, 0xef, 0xff, 0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x4d, @@ -552,15 +553,15 @@ var langNoIndex = [2197]uint8{ 0x40, 0x9c, 0x44, 0xdf, 0xf5, 0x8f, 0x66, 0xb3, 0x55, 0x20, 0xd4, 0xc1, 0xd8, 0x30, 0x3d, 0x80, 0x00, 0x00, 0x00, 0x04, 0xd4, 0x11, 0xc5, 0x84, - 0x2e, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbd, 0x93, + 0x2f, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbd, 0x93, 0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10, 0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00, // Entry 840 - 87F - 0xf0, 0xfb, 0xfd, 0x7f, 0x05, 0x00, 0x12, 0x81, + 0xf0, 0xfb, 0xfd, 0x7f, 0x05, 0x00, 0x16, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28, 0x84, 0x00, 0x21, 0xc0, 0x23, 0x24, 0x00, 0x00, - 0x00, 0xcb, 0xe4, 0x3a, 0x42, 0x88, 0x14, 0xf1, + 0x00, 0xcb, 0xe4, 0x3a, 0x46, 0x88, 0x14, 0xf1, 0xef, 0xff, 0x7f, 0x12, 0x01, 0x01, 0x84, 0x50, 0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40, 0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1, @@ -582,8 +583,8 @@ var altLangIndex = [6]uint16{ } // AliasMap maps langIDs to their suggested replacements. -// Size: 704 bytes, 176 elements -var AliasMap = [176]FromTo{ +// Size: 716 bytes, 179 elements +var AliasMap = [179]FromTo{ 0: {From: 0x82, To: 0x88}, 1: {From: 0x187, To: 0x1ae}, 2: {From: 0x1f3, To: 0x1e1}, @@ -612,172 +613,176 @@ var AliasMap = [176]FromTo{ 25: {From: 0x80c, To: 0x5a}, 26: {From: 0x815, To: 0x8d}, 27: {From: 0x87e, To: 0x810}, - 28: {From: 0x8c3, To: 0xee3}, - 29: {From: 0x9ef, To: 0x331}, - 30: {From: 0xa36, To: 0x2c5}, - 31: {From: 0xa3d, To: 0xbf}, - 32: {From: 0xabe, To: 0x3322}, - 33: {From: 0xb38, To: 0x529}, - 34: {From: 0xb75, To: 0x265a}, - 35: {From: 0xb7e, To: 0xbc3}, - 36: {From: 0xb9b, To: 0x44e}, - 37: {From: 0xbbc, To: 0x4229}, - 38: {From: 0xbbf, To: 0x529}, - 39: {From: 0xbfe, To: 0x2da7}, - 40: {From: 0xc2e, To: 0x3181}, - 41: {From: 0xcb9, To: 0xf3}, - 42: {From: 0xd08, To: 0xfa}, - 43: {From: 0xdc8, To: 0x11a}, - 44: {From: 0xdd7, To: 0x32d}, - 45: {From: 0xdf8, To: 0xdfb}, - 46: {From: 0xdfe, To: 0x531}, - 47: {From: 0xe01, To: 0xdf3}, - 48: {From: 0xedf, To: 0x205a}, - 49: {From: 0xee9, To: 0x222e}, - 50: {From: 0xeee, To: 0x2e9a}, - 51: {From: 0xf39, To: 0x367}, - 52: {From: 0x10d0, To: 0x140}, - 53: {From: 0x1104, To: 0x2d0}, - 54: {From: 0x11a0, To: 0x1ec}, - 55: {From: 0x1279, To: 0x21}, - 56: {From: 0x1424, To: 0x15e}, - 57: {From: 0x1470, To: 0x14e}, - 58: {From: 0x151f, To: 0xd9b}, - 59: {From: 0x1523, To: 0x390}, - 60: {From: 0x1532, To: 0x19f}, - 61: {From: 0x1580, To: 0x210}, - 62: {From: 0x1583, To: 0x10d}, - 63: {From: 0x15a3, To: 0x3caf}, - 64: {From: 0x1630, To: 0x222e}, - 65: {From: 0x166a, To: 0x19b}, - 66: {From: 0x16c8, To: 0x136}, - 67: {From: 0x1700, To: 0x29f8}, - 68: {From: 0x1718, To: 0x194}, - 69: {From: 0x1727, To: 0xf3f}, - 70: {From: 0x177a, To: 0x178}, - 71: {From: 0x1809, To: 0x17b6}, - 72: {From: 0x1816, To: 0x18f3}, - 73: {From: 0x188a, To: 0x436}, - 74: {From: 0x1979, To: 0x1d01}, - 75: {From: 0x1a74, To: 0x2bb0}, - 76: {From: 0x1a8a, To: 0x1f8}, - 77: {From: 0x1b5a, To: 0x1fa}, - 78: {From: 0x1b86, To: 0x1515}, - 79: {From: 0x1d64, To: 0x2c9b}, - 80: {From: 0x2038, To: 0x37b1}, - 81: {From: 0x203d, To: 0x20dd}, - 82: {From: 0x205a, To: 0x30b}, - 83: {From: 0x20e3, To: 0x274}, - 84: {From: 0x20ee, To: 0x263}, - 85: {From: 0x20f2, To: 0x22d}, - 86: {From: 0x20f9, To: 0x256}, - 87: {From: 0x210f, To: 0x21eb}, - 88: {From: 0x2135, To: 0x27d}, - 89: {From: 0x2160, To: 0x913}, - 90: {From: 0x2199, To: 0x121}, - 91: {From: 0x21ce, To: 0x1561}, - 92: {From: 0x21e6, To: 0x504}, - 93: {From: 0x21f4, To: 0x49f}, - 94: {From: 0x21fb, To: 0x269}, - 95: {From: 0x222d, To: 0x121}, - 96: {From: 0x2237, To: 0x121}, - 97: {From: 0x2262, To: 0x92a}, - 98: {From: 0x2316, To: 0x3226}, - 99: {From: 0x236a, To: 0x2835}, - 100: {From: 0x2382, To: 0x3365}, - 101: {From: 0x2472, To: 0x2c7}, - 102: {From: 0x24e4, To: 0x2ff}, - 103: {From: 0x24f0, To: 0x2fa}, - 104: {From: 0x24fa, To: 0x31f}, - 105: {From: 0x2550, To: 0xb5b}, - 106: {From: 0x25a9, To: 0xe2}, - 107: {From: 0x263e, To: 0x2d0}, - 108: {From: 0x26c9, To: 0x26b4}, - 109: {From: 0x26f9, To: 0x3c8}, - 110: {From: 0x2727, To: 0x3caf}, - 111: {From: 0x2755, To: 0x6a4}, - 112: {From: 0x2765, To: 0x26b4}, - 113: {From: 0x2789, To: 0x4358}, - 114: {From: 0x27c9, To: 0x2001}, - 115: {From: 0x28ea, To: 0x27b1}, - 116: {From: 0x28ef, To: 0x2837}, - 117: {From: 0x2914, To: 0x351}, - 118: {From: 0x2986, To: 0x2da7}, - 119: {From: 0x29f0, To: 0x96b}, - 120: {From: 0x2b1a, To: 0x38d}, - 121: {From: 0x2bfc, To: 0x395}, - 122: {From: 0x2c3f, To: 0x3caf}, - 123: {From: 0x2cfc, To: 0x3be}, - 124: {From: 0x2d13, To: 0x597}, - 125: {From: 0x2d47, To: 0x148}, - 126: {From: 0x2d48, To: 0x148}, - 127: {From: 0x2dff, To: 0x2f1}, - 128: {From: 0x2e08, To: 0x19cc}, - 129: {From: 0x2e1a, To: 0x2d95}, - 130: {From: 0x2e21, To: 0x292}, - 131: {From: 0x2e54, To: 0x7d}, - 132: {From: 0x2e65, To: 0x2282}, - 133: {From: 0x2ea0, To: 0x2e9b}, - 134: {From: 0x2eef, To: 0x2ed7}, - 135: {From: 0x3193, To: 0x3c4}, - 136: {From: 0x3366, To: 0x338e}, - 137: {From: 0x342a, To: 0x3dc}, - 138: {From: 0x34ee, To: 0x18d0}, - 139: {From: 0x35c8, To: 0x2c9b}, - 140: {From: 0x35e6, To: 0x412}, - 141: {From: 0x3658, To: 0x246}, - 142: {From: 0x3676, To: 0x3f4}, - 143: {From: 0x36fd, To: 0x445}, - 144: {From: 0x37c0, To: 0x121}, - 145: {From: 0x3816, To: 0x38f2}, - 146: {From: 0x382a, To: 0x2b48}, - 147: {From: 0x382b, To: 0x2c9b}, - 148: {From: 0x382f, To: 0xa9}, - 149: {From: 0x3832, To: 0x3228}, - 150: {From: 0x386c, To: 0x39a6}, - 151: {From: 0x3892, To: 0x3fc0}, - 152: {From: 0x38a5, To: 0x39d7}, - 153: {From: 0x38b4, To: 0x1fa4}, - 154: {From: 0x38b5, To: 0x2e9a}, - 155: {From: 0x395c, To: 0x47e}, - 156: {From: 0x3b4e, To: 0xd91}, - 157: {From: 0x3b78, To: 0x137}, - 158: {From: 0x3c99, To: 0x4bc}, - 159: {From: 0x3fbd, To: 0x100}, - 160: {From: 0x4208, To: 0xa91}, - 161: {From: 0x42be, To: 0x573}, - 162: {From: 0x42f9, To: 0x3f60}, - 163: {From: 0x4378, To: 0x25a}, - 164: {From: 0x43b8, To: 0xe6c}, - 165: {From: 0x43cd, To: 0x10f}, - 166: {From: 0x44af, To: 0x3322}, - 167: {From: 0x44e3, To: 0x512}, - 168: {From: 0x45ca, To: 0x2409}, - 169: {From: 0x45dd, To: 0x26dc}, - 170: {From: 0x4610, To: 0x48ae}, - 171: {From: 0x46ae, To: 0x46a0}, - 172: {From: 0x473e, To: 0x4745}, - 173: {From: 0x4817, To: 0x3503}, - 174: {From: 0x4916, To: 0x31f}, - 175: {From: 0x49a7, To: 0x523}, + 28: {From: 0x8a8, To: 0x8b7}, + 29: {From: 0x8c3, To: 0xee3}, + 30: {From: 0x8fa, To: 0x1dc}, + 31: {From: 0x9ef, To: 0x331}, + 32: {From: 0xa36, To: 0x2c5}, + 33: {From: 0xa3d, To: 0xbf}, + 34: {From: 0xabe, To: 0x3322}, + 35: {From: 0xb38, To: 0x529}, + 36: {From: 0xb75, To: 0x265a}, + 37: {From: 0xb7e, To: 0xbc3}, + 38: {From: 0xb9b, To: 0x44e}, + 39: {From: 0xbbc, To: 0x4229}, + 40: {From: 0xbbf, To: 0x529}, + 41: {From: 0xbfe, To: 0x2da7}, + 42: {From: 0xc2e, To: 0x3181}, + 43: {From: 0xcb9, To: 0xf3}, + 44: {From: 0xd08, To: 0xfa}, + 45: {From: 0xdc8, To: 0x11a}, + 46: {From: 0xdd7, To: 0x32d}, + 47: {From: 0xdf8, To: 0xdfb}, + 48: {From: 0xdfe, To: 0x531}, + 49: {From: 0xe01, To: 0xdf3}, + 50: {From: 0xedf, To: 0x205a}, + 51: {From: 0xee9, To: 0x222e}, + 52: {From: 0xeee, To: 0x2e9a}, + 53: {From: 0xf39, To: 0x367}, + 54: {From: 0x10d0, To: 0x140}, + 55: {From: 0x1104, To: 0x2d0}, + 56: {From: 0x11a0, To: 0x1ec}, + 57: {From: 0x1279, To: 0x21}, + 58: {From: 0x1424, To: 0x15e}, + 59: {From: 0x1470, To: 0x14e}, + 60: {From: 0x151f, To: 0xd9b}, + 61: {From: 0x1523, To: 0x390}, + 62: {From: 0x1532, To: 0x19f}, + 63: {From: 0x1580, To: 0x210}, + 64: {From: 0x1583, To: 0x10d}, + 65: {From: 0x15a3, To: 0x3caf}, + 66: {From: 0x1630, To: 0x222e}, + 67: {From: 0x166a, To: 0x19b}, + 68: {From: 0x16c8, To: 0x136}, + 69: {From: 0x1700, To: 0x29f8}, + 70: {From: 0x1718, To: 0x194}, + 71: {From: 0x1727, To: 0xf3f}, + 72: {From: 0x177a, To: 0x178}, + 73: {From: 0x1809, To: 0x17b6}, + 74: {From: 0x1816, To: 0x18f3}, + 75: {From: 0x188a, To: 0x436}, + 76: {From: 0x1979, To: 0x1d01}, + 77: {From: 0x1a74, To: 0x2bb0}, + 78: {From: 0x1a8a, To: 0x1f8}, + 79: {From: 0x1b5a, To: 0x1fa}, + 80: {From: 0x1b86, To: 0x1515}, + 81: {From: 0x1d64, To: 0x2c9b}, + 82: {From: 0x2038, To: 0x37b1}, + 83: {From: 0x203d, To: 0x20dd}, + 84: {From: 0x205a, To: 0x30b}, + 85: {From: 0x20e3, To: 0x274}, + 86: {From: 0x20ee, To: 0x263}, + 87: {From: 0x20f2, To: 0x22d}, + 88: {From: 0x20f9, To: 0x256}, + 89: {From: 0x210f, To: 0x21eb}, + 90: {From: 0x2135, To: 0x27d}, + 91: {From: 0x2160, To: 0x913}, + 92: {From: 0x2199, To: 0x121}, + 93: {From: 0x21ce, To: 0x1561}, + 94: {From: 0x21e6, To: 0x504}, + 95: {From: 0x21f4, To: 0x49f}, + 96: {From: 0x21fb, To: 0x269}, + 97: {From: 0x222d, To: 0x121}, + 98: {From: 0x2237, To: 0x121}, + 99: {From: 0x2262, To: 0x92a}, + 100: {From: 0x2316, To: 0x3226}, + 101: {From: 0x236a, To: 0x2835}, + 102: {From: 0x2382, To: 0x3365}, + 103: {From: 0x2472, To: 0x2c7}, + 104: {From: 0x24e4, To: 0x2ff}, + 105: {From: 0x24f0, To: 0x2fa}, + 106: {From: 0x24fa, To: 0x31f}, + 107: {From: 0x2550, To: 0xb5b}, + 108: {From: 0x25a9, To: 0xe2}, + 109: {From: 0x263e, To: 0x2d0}, + 110: {From: 0x26c9, To: 0x26b4}, + 111: {From: 0x26f9, To: 0x3c8}, + 112: {From: 0x2727, To: 0x3caf}, + 113: {From: 0x2755, To: 0x6a4}, + 114: {From: 0x2765, To: 0x26b4}, + 115: {From: 0x2789, To: 0x4358}, + 116: {From: 0x27c9, To: 0x2001}, + 117: {From: 0x28ea, To: 0x27b1}, + 118: {From: 0x28ef, To: 0x2837}, + 119: {From: 0x2914, To: 0x351}, + 120: {From: 0x2986, To: 0x2da7}, + 121: {From: 0x29f0, To: 0x96b}, + 122: {From: 0x2b1a, To: 0x38d}, + 123: {From: 0x2bfc, To: 0x395}, + 124: {From: 0x2c3f, To: 0x3caf}, + 125: {From: 0x2ce1, To: 0x2201}, + 126: {From: 0x2cfc, To: 0x3be}, + 127: {From: 0x2d13, To: 0x597}, + 128: {From: 0x2d47, To: 0x148}, + 129: {From: 0x2d48, To: 0x148}, + 130: {From: 0x2dff, To: 0x2f1}, + 131: {From: 0x2e08, To: 0x19cc}, + 132: {From: 0x2e1a, To: 0x2d95}, + 133: {From: 0x2e21, To: 0x292}, + 134: {From: 0x2e54, To: 0x7d}, + 135: {From: 0x2e65, To: 0x2282}, + 136: {From: 0x2ea0, To: 0x2e9b}, + 137: {From: 0x2eef, To: 0x2ed7}, + 138: {From: 0x3193, To: 0x3c4}, + 139: {From: 0x3366, To: 0x338e}, + 140: {From: 0x342a, To: 0x3dc}, + 141: {From: 0x34ee, To: 0x18d0}, + 142: {From: 0x35c8, To: 0x2c9b}, + 143: {From: 0x35e6, To: 0x412}, + 144: {From: 0x3658, To: 0x246}, + 145: {From: 0x3676, To: 0x3f4}, + 146: {From: 0x36fd, To: 0x445}, + 147: {From: 0x37c0, To: 0x121}, + 148: {From: 0x3816, To: 0x38f2}, + 149: {From: 0x382a, To: 0x2b48}, + 150: {From: 0x382b, To: 0x2c9b}, + 151: {From: 0x382f, To: 0xa9}, + 152: {From: 0x3832, To: 0x3228}, + 153: {From: 0x386c, To: 0x39a6}, + 154: {From: 0x3892, To: 0x3fc0}, + 155: {From: 0x38a5, To: 0x39d7}, + 156: {From: 0x38b4, To: 0x1fa4}, + 157: {From: 0x38b5, To: 0x2e9a}, + 158: {From: 0x395c, To: 0x47e}, + 159: {From: 0x3b4e, To: 0xd91}, + 160: {From: 0x3b78, To: 0x137}, + 161: {From: 0x3c99, To: 0x4bc}, + 162: {From: 0x3fbd, To: 0x100}, + 163: {From: 0x4208, To: 0xa91}, + 164: {From: 0x42be, To: 0x573}, + 165: {From: 0x42f9, To: 0x3f60}, + 166: {From: 0x4378, To: 0x25a}, + 167: {From: 0x43b8, To: 0xe6c}, + 168: {From: 0x43cd, To: 0x10f}, + 169: {From: 0x44af, To: 0x3322}, + 170: {From: 0x44e3, To: 0x512}, + 171: {From: 0x45ca, To: 0x2409}, + 172: {From: 0x45dd, To: 0x26dc}, + 173: {From: 0x4610, To: 0x48ae}, + 174: {From: 0x46ae, To: 0x46a0}, + 175: {From: 0x473e, To: 0x4745}, + 176: {From: 0x4817, To: 0x3503}, + 177: {From: 0x4916, To: 0x31f}, + 178: {From: 0x49a7, To: 0x523}, } -// Size: 176 bytes, 176 elements -var AliasTypes = [176]AliasType{ +// Size: 179 bytes, 179 elements +var AliasTypes = [179]AliasType{ // Entry 0 - 3F 1, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 1, 2, - 1, 1, 2, 0, 0, 1, 0, 1, 2, 1, 1, 0, 0, 2, 1, 1, - 0, 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, - 0, 0, 0, 2, 1, 1, 1, 1, 2, 1, 0, 1, 1, 2, 2, 0, + 1, 1, 2, 0, 0, 1, 0, 1, 2, 1, 1, 0, 0, 0, 0, 2, + 1, 1, 0, 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1, + 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 1, 0, 1, 1, 2, // Entry 40 - 7F - 0, 1, 2, 0, 1, 0, 1, 1, 1, 1, 0, 0, 2, 1, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 1, 2, 2, 2, 0, 1, 1, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 2, 1, 1, + 2, 0, 0, 1, 2, 0, 1, 0, 1, 1, 1, 1, 0, 0, 2, 1, + 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 2, 0, 1, 1, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, // Entry 80 - BF - 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2, 1, 1, 1, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 2, - 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, + 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2, + 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, + 0, 1, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, + 0, 1, 1, } const ( @@ -785,17 +790,17 @@ const ( _Hani = 57 _Hans = 59 _Hant = 60 - _Qaaa = 143 - _Qaai = 151 - _Qabx = 192 - _Zinh = 245 - _Zyyy = 250 - _Zzzz = 251 + _Qaaa = 147 + _Qaai = 155 + _Qabx = 196 + _Zinh = 252 + _Zyyy = 257 + _Zzzz = 258 ) // script is an alphabetically sorted list of ISO 15924 codes. The index // of the script in the string, divided by 4, is the internal scriptID. -const script tag.Index = "" + // Size: 1012 bytes +const script tag.Index = "" + // Size: 1040 bytes "----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBhksBlisBopo" + "BrahBraiBugiBuhdCakmCansCariChamCherChrsCirtCoptCpmnCprtCyrlCyrsDevaDiak" + "DogrDsrtDuplEgydEgyhEgypElbaElymEthiGeokGeorGlagGongGonmGothGranGrekGujr" + @@ -803,14 +808,14 @@ const script tag.Index = "" + // Size: 1012 bytes "JavaJpanJurcKaliKanaKharKhmrKhojKitlKitsKndaKoreKpelKthiLanaLaooLatfLatg" + "LatnLekeLepcLimbLinaLinbLisuLomaLyciLydiMahjMakaMandManiMarcMayaMedfMend" + "MercMeroMlymModiMongMoonMrooMteiMultMymrNandNarbNbatNewaNkdbNkgbNkooNshu" + - "OgamOlckOrkhOryaOsgeOsmaPalmPaucPermPhagPhliPhlpPhlvPhnxPiqdPlrdPrtiQaaa" + - "QaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaamQaanQaaoQaapQaaqQaarQaas" + - "QaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabeQabfQabgQabhQabiQabjQabk" + - "QablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabwQabxRjngRohgRoroRunrSamr" + - "SaraSarbSaurSgnwShawShrdShuiSiddSindSinhSogdSogoSoraSoyoSundSyloSyrcSyre" + - "SyrjSyrnTagbTakrTaleTaluTamlTangTavtTeluTengTfngTglgThaaThaiTibtTirhToto" + - "UgarVaiiVispWaraWchoWoleXpeoXsuxYeziYiiiZanbZinhZmthZsyeZsymZxxxZyyyZzzz" + - "\xff\xff\xff\xff" + "OgamOlckOrkhOryaOsgeOsmaOugrPalmPaucPcunPelmPermPhagPhliPhlpPhlvPhnxPiqd" + + "PlrdPrtiPsinQaaaQaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaamQaanQaao" + + "QaapQaaqQaarQaasQaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabeQabfQabg" + + "QabhQabiQabjQabkQablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabwQabxRanj" + + "RjngRohgRoroRunrSamrSaraSarbSaurSgnwShawShrdShuiSiddSindSinhSogdSogoSora" + + "SoyoSundSyloSyrcSyreSyrjSyrnTagbTakrTaleTaluTamlTangTavtTeluTengTfngTglg" + + "ThaaThaiTibtTirhTnsaTotoUgarVaiiVispVithWaraWchoWoleXpeoXsuxYeziYiiiZanb" + + "ZinhZmthZsyeZsymZxxxZyyyZzzz\xff\xff\xff\xff" // suppressScript is an index from langID to the dominant script for that language, // if it exists. If a script is given, it should be suppressed from the language tag. @@ -858,7 +863,7 @@ var suppressScript = [1330]uint8{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe5, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x5a, 0x00, 0x5a, 0x00, // Entry 140 - 17F @@ -962,7 +967,7 @@ var suppressScript = [1330]uint8{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Entry 400 - 43F 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -972,10 +977,10 @@ var suppressScript = [1330]uint8{ // Entry 440 - 47F 0x00, 0x00, 0x00, 0x00, 0x5a, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe1, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x2c, + 0x00, 0xe6, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, // Entry 480 - 4BF @@ -1086,9 +1091,9 @@ var regionTypes = [358]uint8{ // regionISO holds a list of alphabetically sorted 2-letter ISO region codes. // Each 2-letter codes is followed by two bytes with the following meaning: -// - [A-Z}{2}: the first letter of the 2-letter code plus these two -// letters form the 3-letter ISO code. -// - 0, n: index into altRegionISO3. +// - [A-Z}{2}: the first letter of the 2-letter code plus these two +// letters form the 3-letter ISO code. +// - 0, n: index into altRegionISO3. const regionISO tag.Index = "" + // Size: 1308 bytes "AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA" + "AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN" + @@ -1206,7 +1211,9 @@ var m49 = [358]int16{ // m49Index gives indexes into fromM49 based on the three most significant bits // of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in -// fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]] +// +// fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]] +// // for an entry where the first 7 bits match the 7 lsb of the UN.M49 code. // The region code is stored in the 9 lsb of the indexed value. // Size: 18 bytes, 9 elements @@ -1268,117 +1275,118 @@ var fromM49 = [333]uint16{ 0xc759, 0xc95a, 0xcb5b, 0xcd5c, 0xcf65, } -// Size: 1995 bytes +// Size: 2014 bytes var variantIndex = map[string]uint8{ "1606nict": 0x0, "1694acad": 0x1, "1901": 0x2, "1959acad": 0x3, - "1994": 0x60, + "1994": 0x61, "1996": 0x4, "abl1943": 0x5, "akuapem": 0x6, - "alalc97": 0x62, + "alalc97": 0x63, "aluku": 0x7, "ao1990": 0x8, "aranes": 0x9, "arevela": 0xa, "arevmda": 0xb, - "asante": 0xc, - "auvern": 0xd, - "baku1926": 0xe, - "balanka": 0xf, - "barla": 0x10, - "basiceng": 0x11, - "bauddha": 0x12, - "biscayan": 0x13, - "biske": 0x5b, - "bohoric": 0x14, - "boont": 0x15, - "bornholm": 0x16, - "cisaup": 0x17, - "colb1945": 0x18, - "cornu": 0x19, - "creiss": 0x1a, - "dajnko": 0x1b, - "ekavsk": 0x1c, - "emodeng": 0x1d, - "fonipa": 0x63, - "fonkirsh": 0x64, - "fonnapa": 0x65, - "fonupa": 0x66, - "fonxsamp": 0x67, - "gascon": 0x1e, - "grclass": 0x1f, - "grital": 0x20, - "grmistr": 0x21, - "hepburn": 0x22, - "heploc": 0x61, - "hognorsk": 0x23, - "hsistemo": 0x24, - "ijekavsk": 0x25, - "itihasa": 0x26, - "ivanchov": 0x27, - "jauer": 0x28, - "jyutping": 0x29, - "kkcor": 0x2a, - "kociewie": 0x2b, - "kscor": 0x2c, - "laukika": 0x2d, - "lemosin": 0x2e, - "lengadoc": 0x2f, - "lipaw": 0x5c, - "luna1918": 0x30, - "metelko": 0x31, - "monoton": 0x32, - "ndyuka": 0x33, - "nedis": 0x34, - "newfound": 0x35, - "nicard": 0x36, - "njiva": 0x5d, - "nulik": 0x37, - "osojs": 0x5e, - "oxendict": 0x38, - "pahawh2": 0x39, - "pahawh3": 0x3a, - "pahawh4": 0x3b, - "pamaka": 0x3c, - "peano": 0x3d, - "petr1708": 0x3e, - "pinyin": 0x3f, - "polyton": 0x40, - "provenc": 0x41, - "puter": 0x42, - "rigik": 0x43, - "rozaj": 0x44, - "rumgr": 0x45, - "scotland": 0x46, - "scouse": 0x47, - "simple": 0x68, - "solba": 0x5f, - "sotav": 0x48, - "spanglis": 0x49, - "surmiran": 0x4a, - "sursilv": 0x4b, - "sutsilv": 0x4c, - "tarask": 0x4d, - "tongyong": 0x4e, - "tunumiit": 0x4f, - "uccor": 0x50, - "ucrcor": 0x51, - "ulster": 0x52, - "unifon": 0x53, - "vaidika": 0x54, - "valencia": 0x55, - "vallader": 0x56, - "vecdruka": 0x57, - "vivaraup": 0x58, - "wadegile": 0x59, - "xsistemo": 0x5a, + "arkaika": 0xc, + "asante": 0xd, + "auvern": 0xe, + "baku1926": 0xf, + "balanka": 0x10, + "barla": 0x11, + "basiceng": 0x12, + "bauddha": 0x13, + "biscayan": 0x14, + "biske": 0x5c, + "bohoric": 0x15, + "boont": 0x16, + "bornholm": 0x17, + "cisaup": 0x18, + "colb1945": 0x19, + "cornu": 0x1a, + "creiss": 0x1b, + "dajnko": 0x1c, + "ekavsk": 0x1d, + "emodeng": 0x1e, + "fonipa": 0x64, + "fonkirsh": 0x65, + "fonnapa": 0x66, + "fonupa": 0x67, + "fonxsamp": 0x68, + "gascon": 0x1f, + "grclass": 0x20, + "grital": 0x21, + "grmistr": 0x22, + "hepburn": 0x23, + "heploc": 0x62, + "hognorsk": 0x24, + "hsistemo": 0x25, + "ijekavsk": 0x26, + "itihasa": 0x27, + "ivanchov": 0x28, + "jauer": 0x29, + "jyutping": 0x2a, + "kkcor": 0x2b, + "kociewie": 0x2c, + "kscor": 0x2d, + "laukika": 0x2e, + "lemosin": 0x2f, + "lengadoc": 0x30, + "lipaw": 0x5d, + "luna1918": 0x31, + "metelko": 0x32, + "monoton": 0x33, + "ndyuka": 0x34, + "nedis": 0x35, + "newfound": 0x36, + "nicard": 0x37, + "njiva": 0x5e, + "nulik": 0x38, + "osojs": 0x5f, + "oxendict": 0x39, + "pahawh2": 0x3a, + "pahawh3": 0x3b, + "pahawh4": 0x3c, + "pamaka": 0x3d, + "peano": 0x3e, + "petr1708": 0x3f, + "pinyin": 0x40, + "polyton": 0x41, + "provenc": 0x42, + "puter": 0x43, + "rigik": 0x44, + "rozaj": 0x45, + "rumgr": 0x46, + "scotland": 0x47, + "scouse": 0x48, + "simple": 0x69, + "solba": 0x60, + "sotav": 0x49, + "spanglis": 0x4a, + "surmiran": 0x4b, + "sursilv": 0x4c, + "sutsilv": 0x4d, + "tarask": 0x4e, + "tongyong": 0x4f, + "tunumiit": 0x50, + "uccor": 0x51, + "ucrcor": 0x52, + "ulster": 0x53, + "unifon": 0x54, + "vaidika": 0x55, + "valencia": 0x56, + "vallader": 0x57, + "vecdruka": 0x58, + "vivaraup": 0x59, + "wadegile": 0x5a, + "xsistemo": 0x5b, } // variantNumSpecialized is the number of specialized variants in variants. -const variantNumSpecialized = 98 +const variantNumSpecialized = 99 // nRegionGroups is the number of region groups. const nRegionGroups = 33 @@ -1390,8 +1398,8 @@ type likelyLangRegion struct { // likelyScript is a lookup table, indexed by scriptID, for the most likely // languages and regions given a script. -// Size: 1012 bytes, 253 elements -var likelyScript = [253]likelyLangRegion{ +// Size: 1040 bytes, 260 elements +var likelyScript = [260]likelyLangRegion{ 1: {lang: 0x14e, region: 0x84}, 3: {lang: 0x2a2, region: 0x106}, 4: {lang: 0x1f, region: 0x99}, @@ -1489,57 +1497,57 @@ var likelyScript = [253]likelyLangRegion{ 129: {lang: 0x395, region: 0x99}, 130: {lang: 0x399, region: 0x135}, 131: {lang: 0x429, region: 0x115}, - 132: {lang: 0x3b, region: 0x11c}, - 133: {lang: 0xfd, region: 0xc4}, - 134: {lang: 0x27d, region: 0x106}, - 135: {lang: 0x2c9, region: 0x53}, - 136: {lang: 0x39f, region: 0x9c}, - 137: {lang: 0x39f, region: 0x53}, - 139: {lang: 0x3ad, region: 0xb0}, - 141: {lang: 0x1c6, region: 0x53}, - 142: {lang: 0x4fd, region: 0x9c}, - 193: {lang: 0x3cb, region: 0x95}, - 196: {lang: 0x372, region: 0x10c}, - 197: {lang: 0x420, region: 0x97}, - 199: {lang: 0x4ff, region: 0x15e}, - 200: {lang: 0x3f0, region: 0x99}, - 201: {lang: 0x45, region: 0x135}, - 202: {lang: 0x139, region: 0x7b}, - 203: {lang: 0x3e9, region: 0x99}, - 205: {lang: 0x3e9, region: 0x99}, - 206: {lang: 0x3fa, region: 0x99}, - 207: {lang: 0x40c, region: 0xb3}, - 210: {lang: 0x433, region: 0x99}, - 211: {lang: 0xef, region: 0xc5}, - 212: {lang: 0x43e, region: 0x95}, - 213: {lang: 0x44d, region: 0x35}, - 214: {lang: 0x44e, region: 0x9b}, - 218: {lang: 0x45a, region: 0xe7}, - 219: {lang: 0x11a, region: 0x99}, - 220: {lang: 0x45e, region: 0x53}, - 221: {lang: 0x232, region: 0x53}, - 222: {lang: 0x450, region: 0x99}, - 223: {lang: 0x4a5, region: 0x53}, - 224: {lang: 0x9f, region: 0x13e}, - 225: {lang: 0x461, region: 0x99}, - 227: {lang: 0x528, region: 0xba}, - 228: {lang: 0x153, region: 0xe7}, - 229: {lang: 0x128, region: 0xcd}, - 230: {lang: 0x46b, region: 0x123}, - 231: {lang: 0xa9, region: 0x53}, - 232: {lang: 0x2ce, region: 0x99}, - 234: {lang: 0x4ad, region: 0x11c}, - 235: {lang: 0x4be, region: 0xb4}, - 237: {lang: 0x1ce, region: 0x99}, - 240: {lang: 0x3a9, region: 0x9c}, - 241: {lang: 0x22, region: 0x9b}, - 243: {lang: 0x1ea, region: 0x53}, - 244: {lang: 0xef, region: 0xc5}, + 133: {lang: 0x3b, region: 0x11c}, + 134: {lang: 0xfd, region: 0xc4}, + 137: {lang: 0x27d, region: 0x106}, + 138: {lang: 0x2c9, region: 0x53}, + 139: {lang: 0x39f, region: 0x9c}, + 140: {lang: 0x39f, region: 0x53}, + 142: {lang: 0x3ad, region: 0xb0}, + 144: {lang: 0x1c6, region: 0x53}, + 145: {lang: 0x4fd, region: 0x9c}, + 198: {lang: 0x3cb, region: 0x95}, + 201: {lang: 0x372, region: 0x10c}, + 202: {lang: 0x420, region: 0x97}, + 204: {lang: 0x4ff, region: 0x15e}, + 205: {lang: 0x3f0, region: 0x99}, + 206: {lang: 0x45, region: 0x135}, + 207: {lang: 0x139, region: 0x7b}, + 208: {lang: 0x3e9, region: 0x99}, + 210: {lang: 0x3e9, region: 0x99}, + 211: {lang: 0x3fa, region: 0x99}, + 212: {lang: 0x40c, region: 0xb3}, + 215: {lang: 0x433, region: 0x99}, + 216: {lang: 0xef, region: 0xc5}, + 217: {lang: 0x43e, region: 0x95}, + 218: {lang: 0x44d, region: 0x35}, + 219: {lang: 0x44e, region: 0x9b}, + 223: {lang: 0x45a, region: 0xe7}, + 224: {lang: 0x11a, region: 0x99}, + 225: {lang: 0x45e, region: 0x53}, + 226: {lang: 0x232, region: 0x53}, + 227: {lang: 0x450, region: 0x99}, + 228: {lang: 0x4a5, region: 0x53}, + 229: {lang: 0x9f, region: 0x13e}, + 230: {lang: 0x461, region: 0x99}, + 232: {lang: 0x528, region: 0xba}, + 233: {lang: 0x153, region: 0xe7}, + 234: {lang: 0x128, region: 0xcd}, + 235: {lang: 0x46b, region: 0x123}, + 236: {lang: 0xa9, region: 0x53}, + 237: {lang: 0x2ce, region: 0x99}, + 240: {lang: 0x4ad, region: 0x11c}, + 241: {lang: 0x4be, region: 0xb4}, + 244: {lang: 0x1ce, region: 0x99}, + 247: {lang: 0x3a9, region: 0x9c}, + 248: {lang: 0x22, region: 0x9b}, + 250: {lang: 0x1ea, region: 0x53}, + 251: {lang: 0xef, region: 0xc5}, } type likelyScriptRegion struct { region uint16 - script uint8 + script uint16 flags uint8 } @@ -1547,7 +1555,7 @@ type likelyScriptRegion struct { // scripts and regions given incomplete information. If more entries exist for a // given language, region and script are the index and size respectively // of the list in likelyLangList. -// Size: 5320 bytes, 1330 elements +// Size: 7980 bytes, 1330 elements var likelyLang = [1330]likelyScriptRegion{ 0: {region: 0x135, script: 0x5a, flags: 0x0}, 1: {region: 0x6f, script: 0x5a, flags: 0x0}, @@ -1583,7 +1591,7 @@ var likelyLang = [1330]likelyScriptRegion{ 31: {region: 0x99, script: 0x4, flags: 0x0}, 32: {region: 0x165, script: 0x5a, flags: 0x0}, 33: {region: 0x80, script: 0x5a, flags: 0x0}, - 34: {region: 0x9b, script: 0xf1, flags: 0x0}, + 34: {region: 0x9b, script: 0xf8, flags: 0x0}, 35: {region: 0x165, script: 0x5a, flags: 0x0}, 36: {region: 0x165, script: 0x5a, flags: 0x0}, 37: {region: 0x14d, script: 0x5a, flags: 0x0}, @@ -1616,7 +1624,7 @@ var likelyLang = [1330]likelyScriptRegion{ 66: {region: 0x6b, script: 0x5, flags: 0x0}, 67: {region: 0x99, script: 0xe, flags: 0x0}, 68: {region: 0x12f, script: 0x5a, flags: 0x0}, - 69: {region: 0x135, script: 0xc9, flags: 0x0}, + 69: {region: 0x135, script: 0xce, flags: 0x0}, 70: {region: 0x165, script: 0x5a, flags: 0x0}, 71: {region: 0x165, script: 0x5a, flags: 0x0}, 72: {region: 0x6e, script: 0x5a, flags: 0x0}, @@ -1670,7 +1678,7 @@ var likelyLang = [1330]likelyScriptRegion{ 120: {region: 0x165, script: 0x5a, flags: 0x0}, 121: {region: 0x12f, script: 0x5a, flags: 0x0}, 122: {region: 0x52, script: 0x5a, flags: 0x0}, - 123: {region: 0x99, script: 0xde, flags: 0x0}, + 123: {region: 0x99, script: 0xe3, flags: 0x0}, 124: {region: 0xe8, script: 0x5, flags: 0x0}, 125: {region: 0x99, script: 0x22, flags: 0x0}, 126: {region: 0x38, script: 0x20, flags: 0x0}, @@ -1705,7 +1713,7 @@ var likelyLang = [1330]likelyScriptRegion{ 156: {region: 0x165, script: 0x5a, flags: 0x0}, 157: {region: 0xe7, script: 0x5a, flags: 0x0}, 158: {region: 0x165, script: 0x5a, flags: 0x0}, - 159: {region: 0x13e, script: 0xe0, flags: 0x0}, + 159: {region: 0x13e, script: 0xe5, flags: 0x0}, 160: {region: 0xc3, script: 0x5a, flags: 0x0}, 161: {region: 0x165, script: 0x5a, flags: 0x0}, 162: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -1715,7 +1723,7 @@ var likelyLang = [1330]likelyScriptRegion{ 166: {region: 0x165, script: 0x5a, flags: 0x0}, 167: {region: 0x165, script: 0x5a, flags: 0x0}, 168: {region: 0x165, script: 0x5a, flags: 0x0}, - 169: {region: 0x53, script: 0xe7, flags: 0x0}, + 169: {region: 0x53, script: 0xec, flags: 0x0}, 170: {region: 0x165, script: 0x5a, flags: 0x0}, 171: {region: 0x165, script: 0x5a, flags: 0x0}, 172: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -1785,7 +1793,7 @@ var likelyLang = [1330]likelyScriptRegion{ 236: {region: 0x165, script: 0x5a, flags: 0x0}, 237: {region: 0x165, script: 0x5a, flags: 0x0}, 238: {region: 0x165, script: 0x5a, flags: 0x0}, - 239: {region: 0xc5, script: 0xd3, flags: 0x0}, + 239: {region: 0xc5, script: 0xd8, flags: 0x0}, 240: {region: 0x78, script: 0x5a, flags: 0x0}, 241: {region: 0x6b, script: 0x1d, flags: 0x0}, 242: {region: 0xe7, script: 0x5a, flags: 0x0}, @@ -1799,7 +1807,7 @@ var likelyLang = [1330]likelyScriptRegion{ 250: {region: 0x5e, script: 0x5a, flags: 0x0}, 251: {region: 0xe9, script: 0x5a, flags: 0x0}, 252: {region: 0x49, script: 0x17, flags: 0x0}, - 253: {region: 0xc4, script: 0x85, flags: 0x0}, + 253: {region: 0xc4, script: 0x86, flags: 0x0}, 254: {region: 0x8, script: 0x2, flags: 0x1}, 255: {region: 0x106, script: 0x20, flags: 0x0}, 256: {region: 0x7b, script: 0x5a, flags: 0x0}, @@ -1842,12 +1850,12 @@ var likelyLang = [1330]likelyScriptRegion{ 293: {region: 0x165, script: 0x5a, flags: 0x0}, 294: {region: 0x165, script: 0x5a, flags: 0x0}, 295: {region: 0x165, script: 0x5a, flags: 0x0}, - 296: {region: 0xcd, script: 0xe5, flags: 0x0}, + 296: {region: 0xcd, script: 0xea, flags: 0x0}, 297: {region: 0x165, script: 0x5a, flags: 0x0}, 298: {region: 0x165, script: 0x5a, flags: 0x0}, 299: {region: 0x114, script: 0x5a, flags: 0x0}, 300: {region: 0x37, script: 0x5a, flags: 0x0}, - 301: {region: 0x43, script: 0xe7, flags: 0x0}, + 301: {region: 0x43, script: 0xec, flags: 0x0}, 302: {region: 0x165, script: 0x5a, flags: 0x0}, 303: {region: 0xa4, script: 0x5a, flags: 0x0}, 304: {region: 0x80, script: 0x5a, flags: 0x0}, @@ -1957,7 +1965,7 @@ var likelyLang = [1330]likelyScriptRegion{ 408: {region: 0x165, script: 0x2c, flags: 0x0}, 409: {region: 0x165, script: 0x5a, flags: 0x0}, 410: {region: 0x99, script: 0x22, flags: 0x0}, - 411: {region: 0x99, script: 0xe1, flags: 0x0}, + 411: {region: 0x99, script: 0xe6, flags: 0x0}, 412: {region: 0x95, script: 0x5a, flags: 0x0}, 413: {region: 0xd9, script: 0x5a, flags: 0x0}, 414: {region: 0x130, script: 0x32, flags: 0x0}, @@ -2000,7 +2008,7 @@ var likelyLang = [1330]likelyScriptRegion{ 451: {region: 0xe7, script: 0x5a, flags: 0x0}, 452: {region: 0x165, script: 0x5a, flags: 0x0}, 453: {region: 0x12b, script: 0x40, flags: 0x0}, - 454: {region: 0x53, script: 0x8d, flags: 0x0}, + 454: {region: 0x53, script: 0x90, flags: 0x0}, 455: {region: 0x165, script: 0x5a, flags: 0x0}, 456: {region: 0xe8, script: 0x5, flags: 0x0}, 457: {region: 0x99, script: 0x22, flags: 0x0}, @@ -2035,7 +2043,7 @@ var likelyLang = [1330]likelyScriptRegion{ 487: {region: 0xd6, script: 0x5a, flags: 0x0}, 488: {region: 0x165, script: 0x5a, flags: 0x0}, 489: {region: 0x165, script: 0x5a, flags: 0x0}, - 490: {region: 0x53, script: 0xf3, flags: 0x0}, + 490: {region: 0x53, script: 0xfa, flags: 0x0}, 491: {region: 0x165, script: 0x5a, flags: 0x0}, 492: {region: 0x135, script: 0x5a, flags: 0x0}, 493: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -2095,7 +2103,7 @@ var likelyLang = [1330]likelyScriptRegion{ 547: {region: 0x12f, script: 0x5a, flags: 0x0}, 548: {region: 0x122, script: 0x5, flags: 0x0}, 549: {region: 0x165, script: 0x5a, flags: 0x0}, - 550: {region: 0x123, script: 0xe6, flags: 0x0}, + 550: {region: 0x123, script: 0xeb, flags: 0x0}, 551: {region: 0x5a, script: 0x5a, flags: 0x0}, 552: {region: 0x52, script: 0x5a, flags: 0x0}, 553: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -2107,7 +2115,7 @@ var likelyLang = [1330]likelyScriptRegion{ 559: {region: 0x165, script: 0x5a, flags: 0x0}, 560: {region: 0x41, script: 0x5a, flags: 0x0}, 561: {region: 0x99, script: 0x5a, flags: 0x0}, - 562: {region: 0x53, script: 0xdd, flags: 0x0}, + 562: {region: 0x53, script: 0xe2, flags: 0x0}, 563: {region: 0x99, script: 0x22, flags: 0x0}, 564: {region: 0xc3, script: 0x5a, flags: 0x0}, 565: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -2191,7 +2199,7 @@ var likelyLang = [1330]likelyScriptRegion{ 643: {region: 0x165, script: 0x5a, flags: 0x0}, 644: {region: 0x165, script: 0x5a, flags: 0x0}, 645: {region: 0x165, script: 0x2c, flags: 0x0}, - 646: {region: 0x123, script: 0xe6, flags: 0x0}, + 646: {region: 0x123, script: 0xeb, flags: 0x0}, 647: {region: 0xe8, script: 0x5, flags: 0x0}, 648: {region: 0x165, script: 0x5a, flags: 0x0}, 649: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -2211,7 +2219,7 @@ var likelyLang = [1330]likelyScriptRegion{ 663: {region: 0x165, script: 0x5a, flags: 0x0}, 664: {region: 0x95, script: 0x5a, flags: 0x0}, 665: {region: 0x165, script: 0x5a, flags: 0x0}, - 666: {region: 0x53, script: 0xe6, flags: 0x0}, + 666: {region: 0x53, script: 0xeb, flags: 0x0}, 667: {region: 0x165, script: 0x5a, flags: 0x0}, 668: {region: 0x165, script: 0x5a, flags: 0x0}, 669: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -2235,7 +2243,7 @@ var likelyLang = [1330]likelyScriptRegion{ 687: {region: 0x135, script: 0x5a, flags: 0x0}, 688: {region: 0x165, script: 0x5a, flags: 0x0}, 689: {region: 0x165, script: 0x5a, flags: 0x0}, - 690: {region: 0x99, script: 0xe1, flags: 0x0}, + 690: {region: 0x99, script: 0xe6, flags: 0x0}, 691: {region: 0x9e, script: 0x5a, flags: 0x0}, 692: {region: 0x165, script: 0x5a, flags: 0x0}, 693: {region: 0x4b, script: 0x5a, flags: 0x0}, @@ -2257,7 +2265,7 @@ var likelyLang = [1330]likelyScriptRegion{ 709: {region: 0xa4, script: 0x5a, flags: 0x0}, 710: {region: 0x9c, script: 0x5, flags: 0x0}, 711: {region: 0xb8, script: 0x5a, flags: 0x0}, - 712: {region: 0x123, script: 0xe6, flags: 0x0}, + 712: {region: 0x123, script: 0xeb, flags: 0x0}, 713: {region: 0x53, script: 0x3b, flags: 0x0}, 714: {region: 0x12b, script: 0x5a, flags: 0x0}, 715: {region: 0x95, script: 0x5a, flags: 0x0}, @@ -2424,7 +2432,7 @@ var likelyLang = [1330]likelyScriptRegion{ 879: {region: 0xda, script: 0x5a, flags: 0x0}, 880: {region: 0x123, script: 0x56, flags: 0x0}, 881: {region: 0x99, script: 0x22, flags: 0x0}, - 882: {region: 0x10c, script: 0xc4, flags: 0x0}, + 882: {region: 0x10c, script: 0xc9, flags: 0x0}, 883: {region: 0x165, script: 0x5a, flags: 0x0}, 884: {region: 0x165, script: 0x5a, flags: 0x0}, 885: {region: 0x84, script: 0x7c, flags: 0x0}, @@ -2478,11 +2486,11 @@ var likelyLang = [1330]likelyScriptRegion{ 934: {region: 0x135, script: 0x5a, flags: 0x0}, 935: {region: 0x49, script: 0x5a, flags: 0x0}, 936: {region: 0x165, script: 0x5a, flags: 0x0}, - 937: {region: 0x9c, script: 0xf0, flags: 0x0}, + 937: {region: 0x9c, script: 0xf7, flags: 0x0}, 938: {region: 0x165, script: 0x5a, flags: 0x0}, 939: {region: 0x60, script: 0x5a, flags: 0x0}, 940: {region: 0x165, script: 0x5, flags: 0x0}, - 941: {region: 0xb0, script: 0x8b, flags: 0x0}, + 941: {region: 0xb0, script: 0x8e, flags: 0x0}, 943: {region: 0x165, script: 0x5a, flags: 0x0}, 944: {region: 0x165, script: 0x5a, flags: 0x0}, 945: {region: 0x99, script: 0x12, flags: 0x0}, @@ -2548,7 +2556,7 @@ var likelyLang = [1330]likelyScriptRegion{ 1005: {region: 0x95, script: 0x5a, flags: 0x0}, 1006: {region: 0x99, script: 0x5a, flags: 0x0}, 1007: {region: 0x114, script: 0x5a, flags: 0x0}, - 1008: {region: 0x99, script: 0xc8, flags: 0x0}, + 1008: {region: 0x99, script: 0xcd, flags: 0x0}, 1009: {region: 0x165, script: 0x5a, flags: 0x0}, 1010: {region: 0x165, script: 0x5a, flags: 0x0}, 1011: {region: 0x12f, script: 0x5a, flags: 0x0}, @@ -2571,11 +2579,11 @@ var likelyLang = [1330]likelyScriptRegion{ 1028: {region: 0xb6, script: 0x5a, flags: 0x0}, 1029: {region: 0x165, script: 0x2c, flags: 0x0}, 1030: {region: 0x165, script: 0x5a, flags: 0x0}, - 1032: {region: 0xba, script: 0xe3, flags: 0x0}, + 1032: {region: 0xba, script: 0xe8, flags: 0x0}, 1033: {region: 0x165, script: 0x5a, flags: 0x0}, 1034: {region: 0xc4, script: 0x75, flags: 0x0}, 1035: {region: 0x165, script: 0x5, flags: 0x0}, - 1036: {region: 0xb3, script: 0xcf, flags: 0x0}, + 1036: {region: 0xb3, script: 0xd4, flags: 0x0}, 1037: {region: 0x6f, script: 0x5a, flags: 0x0}, 1038: {region: 0x165, script: 0x5a, flags: 0x0}, 1039: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -2594,7 +2602,7 @@ var likelyLang = [1330]likelyScriptRegion{ 1052: {region: 0x10c, script: 0x5a, flags: 0x0}, 1054: {region: 0x10c, script: 0x5a, flags: 0x0}, 1055: {region: 0x72, script: 0x5a, flags: 0x0}, - 1056: {region: 0x97, script: 0xc5, flags: 0x0}, + 1056: {region: 0x97, script: 0xca, flags: 0x0}, 1057: {region: 0x165, script: 0x5a, flags: 0x0}, 1058: {region: 0x72, script: 0x5a, flags: 0x0}, 1059: {region: 0x164, script: 0x5a, flags: 0x0}, @@ -2606,14 +2614,14 @@ var likelyLang = [1330]likelyScriptRegion{ 1065: {region: 0x115, script: 0x5a, flags: 0x0}, 1066: {region: 0x165, script: 0x5a, flags: 0x0}, 1067: {region: 0x165, script: 0x5a, flags: 0x0}, - 1068: {region: 0x123, script: 0xe6, flags: 0x0}, + 1068: {region: 0x123, script: 0xeb, flags: 0x0}, 1069: {region: 0x165, script: 0x5a, flags: 0x0}, 1070: {region: 0x165, script: 0x5a, flags: 0x0}, 1071: {region: 0x165, script: 0x5a, flags: 0x0}, 1072: {region: 0x165, script: 0x5a, flags: 0x0}, 1073: {region: 0x27, script: 0x5a, flags: 0x0}, 1074: {region: 0x37, script: 0x5, flags: 0x1}, - 1075: {region: 0x99, script: 0xd2, flags: 0x0}, + 1075: {region: 0x99, script: 0xd7, flags: 0x0}, 1076: {region: 0x116, script: 0x5a, flags: 0x0}, 1077: {region: 0x114, script: 0x5a, flags: 0x0}, 1078: {region: 0x99, script: 0x22, flags: 0x0}, @@ -2640,9 +2648,9 @@ var likelyLang = [1330]likelyScriptRegion{ 1099: {region: 0x95, script: 0x5a, flags: 0x0}, 1100: {region: 0x165, script: 0x5a, flags: 0x0}, 1101: {region: 0x35, script: 0xe, flags: 0x0}, - 1102: {region: 0x9b, script: 0xd6, flags: 0x0}, + 1102: {region: 0x9b, script: 0xdb, flags: 0x0}, 1103: {region: 0xe9, script: 0x5a, flags: 0x0}, - 1104: {region: 0x99, script: 0xde, flags: 0x0}, + 1104: {region: 0x99, script: 0xe3, flags: 0x0}, 1105: {region: 0xdb, script: 0x22, flags: 0x0}, 1106: {region: 0x165, script: 0x5a, flags: 0x0}, 1107: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -2656,10 +2664,10 @@ var likelyLang = [1330]likelyScriptRegion{ 1115: {region: 0x165, script: 0x5a, flags: 0x0}, 1116: {region: 0x165, script: 0x5a, flags: 0x0}, 1117: {region: 0x99, script: 0x52, flags: 0x0}, - 1118: {region: 0x53, script: 0xdc, flags: 0x0}, + 1118: {region: 0x53, script: 0xe1, flags: 0x0}, 1119: {region: 0xdb, script: 0x22, flags: 0x0}, 1120: {region: 0xdb, script: 0x22, flags: 0x0}, - 1121: {region: 0x99, script: 0xe1, flags: 0x0}, + 1121: {region: 0x99, script: 0xe6, flags: 0x0}, 1122: {region: 0x165, script: 0x5a, flags: 0x0}, 1123: {region: 0x112, script: 0x5a, flags: 0x0}, 1124: {region: 0x131, script: 0x5a, flags: 0x0}, @@ -2669,7 +2677,7 @@ var likelyLang = [1330]likelyScriptRegion{ 1128: {region: 0x165, script: 0x5a, flags: 0x0}, 1129: {region: 0x165, script: 0x5a, flags: 0x0}, 1130: {region: 0x165, script: 0x5a, flags: 0x0}, - 1131: {region: 0x123, script: 0xe6, flags: 0x0}, + 1131: {region: 0x123, script: 0xeb, flags: 0x0}, 1132: {region: 0xdb, script: 0x22, flags: 0x0}, 1133: {region: 0xdb, script: 0x22, flags: 0x0}, 1134: {region: 0xdb, script: 0x22, flags: 0x0}, @@ -2708,14 +2716,14 @@ var likelyLang = [1330]likelyScriptRegion{ 1167: {region: 0x87, script: 0x34, flags: 0x0}, 1168: {region: 0xdb, script: 0x22, flags: 0x0}, 1169: {region: 0xe7, script: 0x5a, flags: 0x0}, - 1170: {region: 0x43, script: 0xe7, flags: 0x0}, + 1170: {region: 0x43, script: 0xec, flags: 0x0}, 1171: {region: 0x165, script: 0x5a, flags: 0x0}, 1172: {region: 0x106, script: 0x20, flags: 0x0}, 1173: {region: 0x165, script: 0x5a, flags: 0x0}, 1174: {region: 0x165, script: 0x5a, flags: 0x0}, 1175: {region: 0x131, script: 0x5a, flags: 0x0}, 1176: {region: 0x165, script: 0x5a, flags: 0x0}, - 1177: {region: 0x123, script: 0xe6, flags: 0x0}, + 1177: {region: 0x123, script: 0xeb, flags: 0x0}, 1178: {region: 0x32, script: 0x5a, flags: 0x0}, 1179: {region: 0x165, script: 0x5a, flags: 0x0}, 1180: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -2726,7 +2734,7 @@ var likelyLang = [1330]likelyScriptRegion{ 1185: {region: 0x165, script: 0x5a, flags: 0x0}, 1187: {region: 0x165, script: 0x5a, flags: 0x0}, 1188: {region: 0xd4, script: 0x5a, flags: 0x0}, - 1189: {region: 0x53, script: 0xdf, flags: 0x0}, + 1189: {region: 0x53, script: 0xe4, flags: 0x0}, 1190: {region: 0xe5, script: 0x5a, flags: 0x0}, 1191: {region: 0x165, script: 0x5a, flags: 0x0}, 1192: {region: 0x106, script: 0x20, flags: 0x0}, @@ -2734,7 +2742,7 @@ var likelyLang = [1330]likelyScriptRegion{ 1194: {region: 0x165, script: 0x5a, flags: 0x0}, 1195: {region: 0x106, script: 0x20, flags: 0x0}, 1196: {region: 0x3f, script: 0x4, flags: 0x1}, - 1197: {region: 0x11c, script: 0xea, flags: 0x0}, + 1197: {region: 0x11c, script: 0xf0, flags: 0x0}, 1198: {region: 0x130, script: 0x20, flags: 0x0}, 1199: {region: 0x75, script: 0x5a, flags: 0x0}, 1200: {region: 0x2a, script: 0x5a, flags: 0x0}, @@ -2750,7 +2758,7 @@ var likelyLang = [1330]likelyScriptRegion{ 1211: {region: 0x165, script: 0x5a, flags: 0x0}, 1212: {region: 0x46, script: 0x4, flags: 0x1}, 1213: {region: 0x165, script: 0x5a, flags: 0x0}, - 1214: {region: 0xb4, script: 0xeb, flags: 0x0}, + 1214: {region: 0xb4, script: 0xf1, flags: 0x0}, 1215: {region: 0x165, script: 0x5a, flags: 0x0}, 1216: {region: 0x161, script: 0x5a, flags: 0x0}, 1217: {region: 0x9e, script: 0x5a, flags: 0x0}, @@ -2773,7 +2781,7 @@ var likelyLang = [1330]likelyScriptRegion{ 1234: {region: 0x165, script: 0x5a, flags: 0x0}, 1235: {region: 0xe7, script: 0x5a, flags: 0x0}, 1236: {region: 0x2f, script: 0x5a, flags: 0x0}, - 1237: {region: 0x99, script: 0xe1, flags: 0x0}, + 1237: {region: 0x99, script: 0xe6, flags: 0x0}, 1238: {region: 0x99, script: 0x22, flags: 0x0}, 1239: {region: 0x165, script: 0x5a, flags: 0x0}, 1240: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -2813,9 +2821,9 @@ var likelyLang = [1330]likelyScriptRegion{ 1274: {region: 0x99, script: 0x22, flags: 0x0}, 1275: {region: 0x131, script: 0x5a, flags: 0x0}, 1276: {region: 0x165, script: 0x5a, flags: 0x0}, - 1277: {region: 0x9c, script: 0x8e, flags: 0x0}, + 1277: {region: 0x9c, script: 0x91, flags: 0x0}, 1278: {region: 0x165, script: 0x5a, flags: 0x0}, - 1279: {region: 0x15e, script: 0xc7, flags: 0x0}, + 1279: {region: 0x15e, script: 0xcc, flags: 0x0}, 1280: {region: 0x165, script: 0x5a, flags: 0x0}, 1281: {region: 0x165, script: 0x5a, flags: 0x0}, 1282: {region: 0xdb, script: 0x22, flags: 0x0}, @@ -2855,7 +2863,7 @@ var likelyLang = [1330]likelyScriptRegion{ 1316: {region: 0x10b, script: 0x5a, flags: 0x0}, 1318: {region: 0xa8, script: 0x5, flags: 0x0}, 1319: {region: 0xd9, script: 0x5a, flags: 0x0}, - 1320: {region: 0xba, script: 0xe3, flags: 0x0}, + 1320: {region: 0xba, script: 0xe8, flags: 0x0}, 1321: {region: 0x4d, script: 0x14, flags: 0x1}, 1322: {region: 0x53, script: 0x7d, flags: 0x0}, 1323: {region: 0x165, script: 0x5a, flags: 0x0}, @@ -2867,11 +2875,11 @@ var likelyLang = [1330]likelyScriptRegion{ } // likelyLangList holds lists info associated with likelyLang. -// Size: 388 bytes, 97 elements +// Size: 582 bytes, 97 elements var likelyLangList = [97]likelyScriptRegion{ 0: {region: 0x9c, script: 0x7, flags: 0x0}, 1: {region: 0xa1, script: 0x78, flags: 0x2}, - 2: {region: 0x11c, script: 0x84, flags: 0x2}, + 2: {region: 0x11c, script: 0x85, flags: 0x2}, 3: {region: 0x32, script: 0x5a, flags: 0x0}, 4: {region: 0x9b, script: 0x5, flags: 0x4}, 5: {region: 0x9c, script: 0x5, flags: 0x4}, @@ -2880,7 +2888,7 @@ var likelyLangList = [97]likelyScriptRegion{ 8: {region: 0x106, script: 0x20, flags: 0x0}, 9: {region: 0x38, script: 0x2f, flags: 0x2}, 10: {region: 0x135, script: 0x5a, flags: 0x0}, - 11: {region: 0x7b, script: 0xca, flags: 0x2}, + 11: {region: 0x7b, script: 0xcf, flags: 0x2}, 12: {region: 0x114, script: 0x5a, flags: 0x0}, 13: {region: 0x84, script: 0x1, flags: 0x2}, 14: {region: 0x5d, script: 0x1f, flags: 0x0}, @@ -2916,14 +2924,14 @@ var likelyLangList = [97]likelyScriptRegion{ 44: {region: 0x99, script: 0x36, flags: 0x0}, 45: {region: 0xe8, script: 0x5, flags: 0x4}, 46: {region: 0xe8, script: 0x5, flags: 0x2}, - 47: {region: 0x9c, script: 0x88, flags: 0x0}, - 48: {region: 0x53, script: 0x89, flags: 0x2}, - 49: {region: 0xba, script: 0xe3, flags: 0x0}, + 47: {region: 0x9c, script: 0x8b, flags: 0x0}, + 48: {region: 0x53, script: 0x8c, flags: 0x2}, + 49: {region: 0xba, script: 0xe8, flags: 0x0}, 50: {region: 0xd9, script: 0x5a, flags: 0x4}, 51: {region: 0xe8, script: 0x5, flags: 0x0}, 52: {region: 0x99, script: 0x22, flags: 0x2}, 53: {region: 0x99, script: 0x4f, flags: 0x2}, - 54: {region: 0x99, script: 0xce, flags: 0x2}, + 54: {region: 0x99, script: 0xd3, flags: 0x2}, 55: {region: 0x105, script: 0x20, flags: 0x0}, 56: {region: 0xbd, script: 0x5a, flags: 0x4}, 57: {region: 0x104, script: 0x5a, flags: 0x4}, @@ -2970,7 +2978,7 @@ var likelyLangList = [97]likelyScriptRegion{ type likelyLangScript struct { lang uint16 - script uint8 + script uint16 flags uint8 } @@ -2979,7 +2987,7 @@ type likelyLangScript struct { // for a given regionID, lang and script are the index and size respectively // of the list in likelyRegionList. // TODO: exclude containers and user-definable regions from the list. -// Size: 1432 bytes, 358 elements +// Size: 2148 bytes, 358 elements var likelyRegion = [358]likelyLangScript{ 34: {lang: 0xd7, script: 0x5a, flags: 0x0}, 35: {lang: 0x3a, script: 0x5, flags: 0x0}, @@ -3086,7 +3094,7 @@ var likelyRegion = [358]likelyLangScript{ 175: {lang: 0x27, script: 0x2, flags: 0x1}, 176: {lang: 0x3a, script: 0x5, flags: 0x0}, 178: {lang: 0x10d, script: 0x5a, flags: 0x0}, - 179: {lang: 0x40c, script: 0xcf, flags: 0x0}, + 179: {lang: 0x40c, script: 0xd4, flags: 0x0}, 181: {lang: 0x43b, script: 0x5a, flags: 0x0}, 182: {lang: 0x2c0, script: 0x5a, flags: 0x0}, 183: {lang: 0x15e, script: 0x5a, flags: 0x0}, @@ -3107,7 +3115,7 @@ var likelyRegion = [358]likelyLangScript{ 201: {lang: 0x35, script: 0x2, flags: 0x1}, 203: {lang: 0x320, script: 0x5a, flags: 0x0}, 204: {lang: 0x37, script: 0x3, flags: 0x1}, - 205: {lang: 0x128, script: 0xe5, flags: 0x0}, + 205: {lang: 0x128, script: 0xea, flags: 0x0}, 207: {lang: 0x13e, script: 0x5a, flags: 0x0}, 208: {lang: 0x31f, script: 0x5a, flags: 0x0}, 209: {lang: 0x3c0, script: 0x5a, flags: 0x0}, @@ -3185,7 +3193,7 @@ var likelyRegion = [358]likelyLangScript{ } // likelyRegionList holds lists info associated with likelyRegion. -// Size: 372 bytes, 93 elements +// Size: 558 bytes, 93 elements var likelyRegionList = [93]likelyLangScript{ 0: {lang: 0x148, script: 0x5, flags: 0x0}, 1: {lang: 0x476, script: 0x5a, flags: 0x0}, @@ -3195,12 +3203,12 @@ var likelyRegionList = [93]likelyLangScript{ 5: {lang: 0x274, script: 0x5a, flags: 0x0}, 6: {lang: 0xb7, script: 0x5a, flags: 0x0}, 7: {lang: 0x432, script: 0x20, flags: 0x0}, - 8: {lang: 0x12d, script: 0xe7, flags: 0x0}, + 8: {lang: 0x12d, script: 0xec, flags: 0x0}, 9: {lang: 0x351, script: 0x22, flags: 0x0}, 10: {lang: 0x529, script: 0x3b, flags: 0x0}, 11: {lang: 0x4ac, script: 0x5, flags: 0x0}, 12: {lang: 0x523, script: 0x5a, flags: 0x0}, - 13: {lang: 0x29a, script: 0xe6, flags: 0x0}, + 13: {lang: 0x29a, script: 0xeb, flags: 0x0}, 14: {lang: 0x136, script: 0x34, flags: 0x0}, 15: {lang: 0x48a, script: 0x5a, flags: 0x0}, 16: {lang: 0x3a, script: 0x5, flags: 0x0}, @@ -3223,11 +3231,11 @@ var likelyRegionList = [93]likelyLangScript{ 33: {lang: 0x476, script: 0x5a, flags: 0x0}, 34: {lang: 0x24a, script: 0x4e, flags: 0x0}, 35: {lang: 0xe6, script: 0x5, flags: 0x0}, - 36: {lang: 0x226, script: 0xe6, flags: 0x0}, + 36: {lang: 0x226, script: 0xeb, flags: 0x0}, 37: {lang: 0x3a, script: 0x5, flags: 0x0}, 38: {lang: 0x15e, script: 0x5a, flags: 0x0}, 39: {lang: 0x2b8, script: 0x57, flags: 0x0}, - 40: {lang: 0x226, script: 0xe6, flags: 0x0}, + 40: {lang: 0x226, script: 0xeb, flags: 0x0}, 41: {lang: 0x3a, script: 0x5, flags: 0x0}, 42: {lang: 0x15e, script: 0x5a, flags: 0x0}, 43: {lang: 0x3dc, script: 0x5a, flags: 0x0}, @@ -3260,7 +3268,7 @@ var likelyRegionList = [93]likelyLangScript{ 70: {lang: 0x15e, script: 0x5a, flags: 0x0}, 71: {lang: 0x15e, script: 0x5a, flags: 0x0}, 72: {lang: 0x35, script: 0x5, flags: 0x0}, - 73: {lang: 0x46b, script: 0xe6, flags: 0x0}, + 73: {lang: 0x46b, script: 0xeb, flags: 0x0}, 74: {lang: 0x2ec, script: 0x5, flags: 0x0}, 75: {lang: 0x30f, script: 0x75, flags: 0x0}, 76: {lang: 0x467, script: 0x20, flags: 0x0}, @@ -3285,7 +3293,7 @@ var likelyRegionList = [93]likelyLangScript{ type likelyTag struct { lang uint16 region uint16 - script uint8 + script uint16 } // Size: 198 bytes, 33 elements @@ -3446,8 +3454,8 @@ var regionInclusionNext = [73]uint8{ type parentRel struct { lang uint16 - script uint8 - maxScript uint8 + script uint16 + maxScript uint16 toRegion uint16 fromRegion []uint16 } @@ -3461,4 +3469,4 @@ var parents = [5]parentRel{ 4: {lang: 0x529, script: 0x3c, maxScript: 0x3c, toRegion: 0x8d, fromRegion: []uint16{0xc6}}, } -// Total table size 26398 bytes (25KiB); checksum: 1C859EA7 +// Total table size 30244 bytes (29KiB); checksum: B6B15F30 diff --git a/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go b/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go index 575cea8707..e5c53b1b3e 100644 --- a/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go +++ b/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go @@ -74,7 +74,7 @@ type AcceptRange struct { // AcceptRanges is a slice of AcceptRange values. For a given byte sequence b // -// AcceptRanges[First[b[0]]>>AcceptShift] +// AcceptRanges[First[b[0]]>>AcceptShift] // // will give the value of AcceptRange for the multi-byte UTF-8 sequence starting // at b[0]. diff --git a/vendor/golang.org/x/text/language/doc.go b/vendor/golang.org/x/text/language/doc.go index 8afecd50e1..212b77c906 100644 --- a/vendor/golang.org/x/text/language/doc.go +++ b/vendor/golang.org/x/text/language/doc.go @@ -10,18 +10,17 @@ // and provides the user with the best experience // (see https://blog.golang.org/matchlang). // -// -// Matching preferred against supported languages +// # Matching preferred against supported languages // // A Matcher for an application that supports English, Australian English, // Danish, and standard Mandarin can be created as follows: // -// var matcher = language.NewMatcher([]language.Tag{ -// language.English, // The first language is used as fallback. -// language.MustParse("en-AU"), -// language.Danish, -// language.Chinese, -// }) +// var matcher = language.NewMatcher([]language.Tag{ +// language.English, // The first language is used as fallback. +// language.MustParse("en-AU"), +// language.Danish, +// language.Chinese, +// }) // // This list of supported languages is typically implied by the languages for // which there exists translations of the user interface. @@ -30,14 +29,14 @@ // language tags. // The MatchString finds best matches for such strings: // -// handler(w http.ResponseWriter, r *http.Request) { -// lang, _ := r.Cookie("lang") -// accept := r.Header.Get("Accept-Language") -// tag, _ := language.MatchStrings(matcher, lang.String(), accept) +// handler(w http.ResponseWriter, r *http.Request) { +// lang, _ := r.Cookie("lang") +// accept := r.Header.Get("Accept-Language") +// tag, _ := language.MatchStrings(matcher, lang.String(), accept) // -// // tag should now be used for the initialization of any -// // locale-specific service. -// } +// // tag should now be used for the initialization of any +// // locale-specific service. +// } // // The Matcher's Match method can be used to match Tags directly. // @@ -48,8 +47,7 @@ // For instance, it will know that a reader of Bokmål Danish can read Norwegian // and will know that Cantonese ("yue") is a good match for "zh-HK". // -// -// Using match results +// # Using match results // // To guarantee a consistent user experience to the user it is important to // use the same language tag for the selection of any locale-specific services. @@ -58,9 +56,9 @@ // More subtly confusing is using the wrong sorting order or casing // algorithm for a certain language. // -// All the packages in x/text that provide locale-specific services -// (e.g. collate, cases) should be initialized with the tag that was -// obtained at the start of an interaction with the user. +// All the packages in x/text that provide locale-specific services +// (e.g. collate, cases) should be initialized with the tag that was +// obtained at the start of an interaction with the user. // // Note that Tag that is returned by Match and MatchString may differ from any // of the supported languages, as it may contain carried over settings from @@ -70,8 +68,7 @@ // Match and MatchString both return the index of the matched supported tag // to simplify associating such data with the matched tag. // -// -// Canonicalization +// # Canonicalization // // If one uses the Matcher to compare languages one does not need to // worry about canonicalization. @@ -92,10 +89,9 @@ // equivalence relations. The CanonType type can be used to alter the // canonicalization form. // -// References +// # References // // BCP 47 - Tags for Identifying Languages http://tools.ietf.org/html/bcp47 -// package language // import "golang.org/x/text/language" // TODO: explanation on how to match languages for your own locale-specific diff --git a/vendor/golang.org/x/text/language/go1_1.go b/vendor/golang.org/x/text/language/go1_1.go deleted file mode 100644 index c7435583b5..0000000000 --- a/vendor/golang.org/x/text/language/go1_1.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.2 -// +build !go1.2 - -package language - -import "sort" - -func sortStable(s sort.Interface) { - ss := stableSort{ - s: s, - pos: make([]int, s.Len()), - } - for i := range ss.pos { - ss.pos[i] = i - } - sort.Sort(&ss) -} - -type stableSort struct { - s sort.Interface - pos []int -} - -func (s *stableSort) Len() int { - return len(s.pos) -} - -func (s *stableSort) Less(i, j int) bool { - return s.s.Less(i, j) || !s.s.Less(j, i) && s.pos[i] < s.pos[j] -} - -func (s *stableSort) Swap(i, j int) { - s.s.Swap(i, j) - s.pos[i], s.pos[j] = s.pos[j], s.pos[i] -} diff --git a/vendor/golang.org/x/text/language/go1_2.go b/vendor/golang.org/x/text/language/go1_2.go deleted file mode 100644 index 77aaaa299e..0000000000 --- a/vendor/golang.org/x/text/language/go1_2.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.2 -// +build go1.2 - -package language - -import "sort" - -var sortStable = sort.Stable diff --git a/vendor/golang.org/x/text/language/language.go b/vendor/golang.org/x/text/language/language.go index 289b3a36d5..4d9c661212 100644 --- a/vendor/golang.org/x/text/language/language.go +++ b/vendor/golang.org/x/text/language/language.go @@ -344,7 +344,7 @@ func (t Tag) Parent() Tag { return Tag(compact.Tag(t).Parent()) } -// returns token t and the rest of the string. +// nextToken returns token t and the rest of the string. func nextToken(s string) (t, tail string) { p := strings.Index(s[1:], "-") if p == -1 { diff --git a/vendor/golang.org/x/text/language/match.go b/vendor/golang.org/x/text/language/match.go index f734921349..ee45f49474 100644 --- a/vendor/golang.org/x/text/language/match.go +++ b/vendor/golang.org/x/text/language/match.go @@ -545,7 +545,7 @@ type bestMatch struct { // match as the preferred match. // // If pin is true and have and tag are a strong match, it will henceforth only -// consider matches for this language. This corresponds to the nothing that most +// consider matches for this language. This corresponds to the idea that most // users have a strong preference for the first defined language. A user can // still prefer a second language over a dialect of the preferred language by // explicitly specifying dialects, e.g. "en, nl, en-GB". In this case pin should diff --git a/vendor/golang.org/x/text/language/parse.go b/vendor/golang.org/x/text/language/parse.go index 59b0410080..4d57222e77 100644 --- a/vendor/golang.org/x/text/language/parse.go +++ b/vendor/golang.org/x/text/language/parse.go @@ -6,6 +6,7 @@ package language import ( "errors" + "sort" "strconv" "strings" @@ -147,6 +148,7 @@ func update(b *language.Builder, part ...interface{}) (err error) { } var errInvalidWeight = errors.New("ParseAcceptLanguage: invalid weight") +var errTagListTooLarge = errors.New("tag list exceeds max length") // ParseAcceptLanguage parses the contents of an Accept-Language header as // defined in http://www.ietf.org/rfc/rfc2616.txt and returns a list of Tags and @@ -164,6 +166,10 @@ func ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error) { } }() + if strings.Count(s, "-") > 1000 { + return nil, nil, errTagListTooLarge + } + var entry string for s != "" { if entry, s = split(s, ','); entry == "" { @@ -201,7 +207,7 @@ func ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error) { tag = append(tag, t) q = append(q, float32(w)) } - sortStable(&tagSort{tag, q}) + sort.Stable(&tagSort{tag, q}) return tag, q, nil } diff --git a/vendor/golang.org/x/text/language/tables.go b/vendor/golang.org/x/text/language/tables.go index 96b57f610a..34a732b699 100644 --- a/vendor/golang.org/x/text/language/tables.go +++ b/vendor/golang.org/x/text/language/tables.go @@ -39,12 +39,12 @@ const ( _Hani = 57 _Hans = 59 _Hant = 60 - _Qaaa = 143 - _Qaai = 151 - _Qabx = 192 - _Zinh = 245 - _Zyyy = 250 - _Zzzz = 251 + _Qaaa = 147 + _Qaai = 155 + _Qabx = 196 + _Zinh = 252 + _Zyyy = 257 + _Zzzz = 258 ) var regionToGroups = []uint8{ // 358 elements @@ -265,9 +265,9 @@ var matchScript = []scriptIntelligibility{ // 26 elements 13: {wantLang: 0x39d, haveLang: 0x139, wantScript: 0x36, haveScript: 0x5a, distance: 0xa}, 14: {wantLang: 0x3be, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa}, 15: {wantLang: 0x3fa, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa}, - 16: {wantLang: 0x40c, haveLang: 0x139, wantScript: 0xcf, haveScript: 0x5a, distance: 0xa}, - 17: {wantLang: 0x450, haveLang: 0x139, wantScript: 0xde, haveScript: 0x5a, distance: 0xa}, - 18: {wantLang: 0x461, haveLang: 0x139, wantScript: 0xe1, haveScript: 0x5a, distance: 0xa}, + 16: {wantLang: 0x40c, haveLang: 0x139, wantScript: 0xd4, haveScript: 0x5a, distance: 0xa}, + 17: {wantLang: 0x450, haveLang: 0x139, wantScript: 0xe3, haveScript: 0x5a, distance: 0xa}, + 18: {wantLang: 0x461, haveLang: 0x139, wantScript: 0xe6, haveScript: 0x5a, distance: 0xa}, 19: {wantLang: 0x46f, haveLang: 0x139, wantScript: 0x2c, haveScript: 0x5a, distance: 0xa}, 20: {wantLang: 0x476, haveLang: 0x3e2, wantScript: 0x5a, haveScript: 0x20, distance: 0xa}, 21: {wantLang: 0x4b4, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa}, diff --git a/vendor/golang.org/x/text/runes/runes.go b/vendor/golang.org/x/text/runes/runes.go index 71933696f5..930e87fedb 100644 --- a/vendor/golang.org/x/text/runes/runes.go +++ b/vendor/golang.org/x/text/runes/runes.go @@ -33,7 +33,7 @@ func In(rt *unicode.RangeTable) Set { return setFunc(func(r rune) bool { return unicode.Is(rt, r) }) } -// In creates a Set with a Contains method that returns true for all runes not +// NotIn creates a Set with a Contains method that returns true for all runes not // in the given RangeTable. func NotIn(rt *unicode.RangeTable) Set { return setFunc(func(r rune) bool { return !unicode.Is(rt, r) }) diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go index 526c7033ac..d69ccb4f97 100644 --- a/vendor/golang.org/x/text/unicode/norm/forminfo.go +++ b/vendor/golang.org/x/text/unicode/norm/forminfo.go @@ -110,10 +110,11 @@ func (p Properties) BoundaryAfter() bool { } // We pack quick check data in 4 bits: -// 5: Combines forward (0 == false, 1 == true) -// 4..3: NFC_QC Yes(00), No (10), or Maybe (11) -// 2: NFD_QC Yes (0) or No (1). No also means there is a decomposition. -// 1..0: Number of trailing non-starters. +// +// 5: Combines forward (0 == false, 1 == true) +// 4..3: NFC_QC Yes(00), No (10), or Maybe (11) +// 2: NFD_QC Yes (0) or No (1). No also means there is a decomposition. +// 1..0: Number of trailing non-starters. // // When all 4 bits are zero, the character is inert, meaning it is never // influenced by normalization. diff --git a/vendor/golang.org/x/text/unicode/norm/normalize.go b/vendor/golang.org/x/text/unicode/norm/normalize.go index 95efcf26e8..4747ad07a8 100644 --- a/vendor/golang.org/x/text/unicode/norm/normalize.go +++ b/vendor/golang.org/x/text/unicode/norm/normalize.go @@ -18,16 +18,17 @@ import ( // A Form denotes a canonical representation of Unicode code points. // The Unicode-defined normalization and equivalence forms are: // -// NFC Unicode Normalization Form C -// NFD Unicode Normalization Form D -// NFKC Unicode Normalization Form KC -// NFKD Unicode Normalization Form KD +// NFC Unicode Normalization Form C +// NFD Unicode Normalization Form D +// NFKC Unicode Normalization Form KC +// NFKD Unicode Normalization Form KD // // For a Form f, this documentation uses the notation f(x) to mean // the bytes or string x converted to the given form. // A position n in x is called a boundary if conversion to the form can // proceed independently on both sides: -// f(x) == append(f(x[0:n]), f(x[n:])...) +// +// f(x) == append(f(x[0:n]), f(x[n:])...) // // References: https://unicode.org/reports/tr15/ and // https://unicode.org/notes/tn5/. diff --git a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go index 96a130d30e..9115ef257e 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go @@ -7315,7 +7315,7 @@ const recompMapPacked = "" + "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E - "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F + "\x00v\x03#\x00\x00\x1e\x7f" + // 0x00760323: 0x00001E7F "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80 "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81 "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82 @@ -7342,7 +7342,7 @@ const recompMapPacked = "" + "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97 "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98 "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99 - "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B + "\x01\x7f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0 "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1 "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2 diff --git a/vendor/modules.txt b/vendor/modules.txt index 325c6c0579..0b7adc4459 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -353,7 +353,7 @@ github.com/zcalusic/sysinfo/cpuid # go.etcd.io/bbolt v1.3.6 ## explicit; go 1.12 go.etcd.io/bbolt -# golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 +# golang.org/x/crypto v0.1.0 ## explicit; go 1.17 golang.org/x/crypto/blake2b golang.org/x/crypto/blake2s @@ -364,8 +364,8 @@ golang.org/x/crypto/chacha20poly1305 golang.org/x/crypto/curve25519 golang.org/x/crypto/curve25519/internal/field golang.org/x/crypto/hkdf +golang.org/x/crypto/internal/alias golang.org/x/crypto/internal/poly1305 -golang.org/x/crypto/internal/subtle golang.org/x/crypto/pbkdf2 golang.org/x/crypto/salsa20 golang.org/x/crypto/salsa20/salsa @@ -377,7 +377,7 @@ golang.org/x/crypto/xtea # golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 ## explicit; go 1.17 golang.org/x/mod/semver -# golang.org/x/net v0.0.0-20220722155237-a158d28d115b +# golang.org/x/net v0.7.0 ## explicit; go 1.17 golang.org/x/net/bpf golang.org/x/net/context @@ -391,7 +391,7 @@ golang.org/x/net/proxy # golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde ## explicit golang.org/x/sync/errgroup -# golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f +# golang.org/x/sys v0.5.0 ## explicit; go 1.17 golang.org/x/sys/cpu golang.org/x/sys/execabs @@ -400,10 +400,10 @@ golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry -# golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 +# golang.org/x/term v0.5.0 ## explicit; go 1.17 golang.org/x/term -# golang.org/x/text v0.3.7 +# golang.org/x/text v0.7.0 ## explicit; go 1.17 golang.org/x/text/cases golang.org/x/text/encoding From d2ad5bcecbd6208ab83f0e49eb8e7635aff584c8 Mon Sep 17 00:00:00 2001 From: Erson Pereira <38801159+ersonp@users.noreply.github.com> Date: Thu, 23 Mar 2023 21:24:36 +0530 Subject: [PATCH 08/62] Change build path of binaries to build folder (#1516) * Change the build directory to /build * Update new binary path in readme * Update new binary path in package installer script * Update gitignore to use add build folder * Update readme * Update dockerfile * Update skyenv * Add make rules This commit adds the rules unfix-systray-vendor and bin-fix. This content of the rule bin is moved to bin-fix and the rule unfix-systray-vendor reverts the changes made by fix-systray-vendor. The rule bin now only uses fix-systray-vendor bin-fix unfix-systray-vendor as dependencies in that order. * Fix make rule install-system-linux * Revert AppBinPath * Revert Readme change * Update readme * New makefile rule This commit adds two new rules to the makefile bin1 and bin-root-path. bin1 is used to build the binaries in root. The bin path is also now stored in a vairable called BUILD_PATH. * Add apps to gitignore * Fix target specific BUILD_PATH var * Add appveyor config for deploy * change config default for AppBinPath to ./build/apps from ./apps * make format test * fix makefile comments / improve 'make help' --------- Co-authored-by: Moses Narrow <36607567+0pcom@users.noreply.github.com> --- .appveyor.yml | 36 ++++++ .gitignore | 1 + Makefile | 149 +++++++++++----------- README.md | 1 + cmd/apps/skychat/README.md | 3 +- cmd/apps/skysocks/README.md | 5 +- cmd/apps/vpn-client/README.md | 3 +- cmd/apps/vpn-server/README.md | 3 +- docker/images/visor/Dockerfile | 10 +- example/example-client-app/README.md | 3 +- example/example-server-app/README.md | 1 + pkg/skyenv/skyenv.go | 2 +- scripts/deb_installer/package_deb.sh | 14 +- scripts/mac_installer/create_installer.sh | 4 +- 14 files changed, 140 insertions(+), 95 deletions(-) create mode 100644 .appveyor.yml diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 0000000000..9ddcbeae76 --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,36 @@ +version: "{build}" + +environment: + matrix: + # For regular jobs, such as push, pr and etc. + - job_name: Deploy + appveyor_build_worker_image: ubuntu2004 + +for: + - # Docker Deploy (Master) + skip_tags: true + build: off + matrix: + only: + - job_name: DockerDeployMaster + branches: + only: + - master + before_deploy: + - ./ci_scripts/docker-push.sh -t master -p + deploy_script: + - echo "Master Docker Push Complete!" + + - # Docker Deploy (Develop) + skip_tags: true + build: off + matrix: + only: + - job_name: DockerDeployDevelop + branches: + only: + - develop + before_deploy: + - ./ci_scripts/docker-push.sh -t develop -p + deploy_script: + - echo "Develop Docker Push Complete!" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 6d4e623ca7..42ffea73ae 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ .vscode/ /skywire.json +/build/ /apps/ /skywire/ /local/* diff --git a/Makefile b/Makefile index 701d3f6bff..b24e6ff3ae 100644 --- a/Makefile +++ b/Makefile @@ -72,6 +72,7 @@ ifneq (,$(findstring 64,$(GOARCH))) endif BUILDINFO_PATH := $(SKYWIRE_UTILITIES_BASE)/pkg/buildinfo +BUILD_PATH := ./build/ BUILDINFO_VERSION := -X $(BUILDINFO_PATH).version=$(VERSION) BUILDINFO_DATE := -X $(BUILDINFO_PATH).date=$(DATE) @@ -102,6 +103,10 @@ check-windows: lint-windows test-windows ## Run linters and tests on appveyor wi build: host-apps bin ## Install dependencies, build apps and binaries. `go build` with ${OPTS} +build1: BUILD_PATH = ./ + +build1: build ## Install dependencies, build apps and binaries in root folder. `go build` with ${OPTS} + build-windows: host-apps-windows bin-windows ## Install dependencies, build apps and binaries. `go build` with ${OPTS} build-windows-appveyor: host-apps-windows-appveyor bin-windows-appveyor ## Install dependencies, build apps and binaries. `go build` with ${OPTS} for AppVeyor image @@ -114,14 +119,14 @@ build-example: host-apps example-apps bin ## Build apps, example apps and binari installer: mac-installer ## Builds MacOS installer for skywire-visor -install-system-linux: build # Workaround for debugging linux package installation - sudo install -Dm755 skywire-cli /opt/skywire/bin/ - sudo install -Dm755 skywire-visor /opt/skywire/bin/ - sudo install -Dm755 apps/vpn-server /opt/skywire/apps/ - sudo install -Dm755 apps/vpn-client /opt/skywire/apps/ - sudo install -Dm755 apps/skysocks-client /opt/skywire/apps/ - sudo install -Dm755 apps/skysocks /opt/skywire/apps/ - sudo install -Dm755 apps/skychat /opt/skywire/apps/ +install-system-linux: build ## Install apps and binaries over those provided by the linux package - linux package must be installed first! + sudo install -Dm755 $(BUILD_PATH)skywire-cli /opt/skywire/bin/ + sudo install -Dm755 $(BUILD_PATH)skywire-visor /opt/skywire/bin/ + sudo install -Dm755 $(BUILD_PATH)apps/vpn-server /opt/skywire/apps/ + sudo install -Dm755 $(BUILD_PATH)apps/vpn-client /opt/skywire/apps/ + sudo install -Dm755 $(BUILD_PATH)apps/skysocks-client /opt/skywire/apps/ + sudo install -Dm755 $(BUILD_PATH)apps/skysocks /opt/skywire/apps/ + sudo install -Dm755 $(BUILD_PATH)apps/skychat /opt/skywire/apps/ install-generate: ## Installs required execs for go generate. ${OPTS} go install github.com/mjibson/esc @@ -131,12 +136,10 @@ generate: ## Generate mocks and config README's go generate ./... clean: ## Clean project: remove created binaries and apps - -rm -rf ./apps - -rm -f ./skywire-visor ./skywire-cli ./setup-node + -rm -f ./build clean-windows: ## Clean project: remove created binaries and apps - powershell -Command Remove-Item -Path ./apps -Force -Recurse - powershell -Command Remove-Item -Path .\skywire-visor.exe,.\skywire-cli.exe,.\setup-node.exe -Force + powershell -Command Remove-Item -Path ./build -Force -Recurse install: ## Install `skywire-visor`, `skywire-cli`, `setup-node` ${OPTS} go install ${BUILD_OPTS} ./cmd/skywire-visor ./cmd/skywire-cli ./cmd/setup-node @@ -188,33 +191,33 @@ format-windows: tidy ## Formats the code. Must have goimports and goimports-revi dep: tidy ## Sorts dependencies ${OPTS} go mod vendor -v -snapshot: +snapshot: ## goreleaser --snapshot --skip-publish --rm-dist goreleaser --snapshot --skip-publish --rm-dist -snapshot-linux: +snapshot-linux: ## goreleaser --snapshot --config .goreleaser-linux.yml --skip-publish --rm-dist goreleaser --snapshot --config .goreleaser-linux.yml --skip-publish --rm-dist snapshot-clean: ## Cleans snapshot / release rm -rf ./dist host-apps: ## Build app - test -d apps && rm -r apps || true - mkdir -p ./apps - ${OPTS} go build ${BUILD_OPTS} -o ./apps/ ./cmd/apps/skychat - ${OPTS} go build ${BUILD_OPTS} -o ./apps/ ./cmd/apps/skysocks - ${OPTS} go build ${BUILD_OPTS} -o ./apps/ ./cmd/apps/skysocks-client - ${OPTS} go build ${BUILD_OPTS} -o ./apps/ ./cmd/apps/vpn-server - ${OPTS} go build ${BUILD_OPTS} -o ./apps/ ./cmd/apps/vpn-client + test -d $(BUILD_PATH) && rm -r $(BUILD_PATH) || true + mkdir -p $(BUILD_PATH)apps + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/skychat + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks-client + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-server + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-client example-apps: ## Build example apps - ${OPTS} go build ${BUILD_OPTS} -o ./apps/ ./example/example-client-app - ${OPTS} go build ${BUILD_OPTS} -o ./apps/ ./example/example-server-app + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./example/example-client-app + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./example/example-server-app -host-apps-windows: +host-apps-windows: ## build apps on windows powershell -Command new-item .\apps -itemtype directory -force powershell 'Get-ChildItem .\cmd\apps | % { ${OPTS} go build ${BUILD_OPTS} -o ./apps $$_.FullName }' -host-apps-windows-appveyor: +host-apps-windows-appveyor: ## build apps on windows. `go build` with ${OPTS} for AppVeyor image powershell -Command new-item .\apps -itemtype directory -force powershell 'Get-ChildItem .\cmd\apps | % { ${OPTS} go build -o ./apps $$_.FullName }' @@ -222,41 +225,48 @@ host-apps-windows-appveyor: host-apps-static: ## Build app test -d apps && rm -r apps || true mkdir -p ./apps - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./apps/ ./cmd/apps/skychat - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./apps/ ./cmd/apps/skysocks - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./apps/ ./cmd/apps/skysocks-client - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./apps/ ./cmd/apps/vpn-server - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./apps/ ./cmd/apps/vpn-client + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/skychat + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks-client + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-server + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-client host-apps-deploy: ## Build app test -d apps && rm -r apps || true mkdir -p ./apps - ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o ./apps/ ./cmd/apps/skychat - ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o ./apps/ ./cmd/apps/skysocks - ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o ./apps/ ./cmd/apps/skysocks-client - ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o ./apps/ ./cmd/apps/vpn-server - ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o ./apps/ ./cmd/apps/vpn-client + ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/skychat + ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks + ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks-client + ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-server + ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-client host-apps-race: ## Build app test -d apps && rm -r apps || true mkdir -p ./apps - CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o ./apps/ ./cmd/apps/skychat - CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o ./apps/ ./cmd/apps/skysocks - CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o ./apps/ ./cmd/apps/skysocks-client - CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o ./apps/ ./cmd/apps/vpn-server - CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o ./apps/ ./cmd/apps/vpn-client + CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/skychat + CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks + CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks-client + CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-server + CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-client # Bin -bin: fix-systray-vendor ## Build `skywire-visor`, `skywire-cli` - ${OPTS} go build ${BUILD_OPTS} -o ./ ./cmd/skywire-visor - ${OPTS} go build ${BUILD_OPTS} -o ./ ./cmd/skywire-cli - ${OPTS} go build ${BUILD_OPTS} -o ./ ./cmd/setup-node +bin: fix-systray-vendor bin-fix unfix-systray-vendor + +bin-fix: ## Build `skywire-visor`, `skywire-cli` + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH) ./cmd/skywire-visor + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH) ./cmd/skywire-cli + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH) ./cmd/setup-node fix-systray-vendor: @if [ $(UNAME_S) = "Linux" ]; then\ sed -i '/go conn.handleCall(msg)/c\conn.handleCall(msg)' ./vendor/github.com/godbus/dbus/v5/conn.go ;\ fi +unfix-systray-vendor: + @if [ $(UNAME_S) = "Linux" ]; then\ + sed -i '/conn.handleCall(msg)/c\ go conn.handleCall(msg)' ./vendor/github.com/godbus/dbus/v5/conn.go ;\ + fi + bin-windows: ## Build `skywire-visor`, `skywire-cli` powershell 'Get-ChildItem .\cmd | % { ${OPTS} go build ${BUILD_OPTS} -o ./ $$_.FullName }' @@ -265,15 +275,15 @@ bin-windows-appveyor: ## Build `skywire-visor`, `skywire-cli` # Static Bin bin-static: ## Build `skywire-visor`, `skywire-cli` - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./skywire-visor ./cmd/skywire-visor - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./skywire-cli ./cmd/skywire-cli - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./setup-node ./cmd/setup-node + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)skywire-visor ./cmd/skywire-visor + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)skywire-cli ./cmd/skywire-cli + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)setup-node ./cmd/setup-node # Static Bin without Systray bin-static-wos: ## Build `skywire-visor`, `skywire-cli` - ${STATIC_OPTS} go build -tags withoutsystray -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./skywire-visor ./cmd/skywire-visor - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./skywire-cli ./cmd/skywire-cli - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o ./setup-node ./cmd/setup-node + ${STATIC_OPTS} go build -tags withoutsystray -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)skywire-visor ./cmd/skywire-visor + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)skywire-cli ./cmd/skywire-cli + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)setup-node ./cmd/setup-node build-deploy: host-apps-deploy ## Build for deployment Docker images ${OPTS} go build -tags netgo ${BUILD_OPTS_DEPLOY} -o /release/skywire-visor ./cmd/skywire-visor @@ -332,7 +342,7 @@ install-deps-ui: ## Install the UI dependencies cd $(MANAGER_UI_DIR) && npm ci run: ## Run skywire visor with skywire-config.json, and start a browser if running a hypervisor - ./skywire-visor -bc ./skywire-config.json + $(BUILD_PATH)skywire-visor -bc ./skywire-config.json ## Prepare to run skywire from source, without compiling binaries prepare: @@ -346,44 +356,35 @@ prepare: chmod +x ./apps/* sudo echo "sudo cache" -## Run skywire from source, without compiling binaries - requires skywire cloned -run-source: prepare +run-source: prepare ## Run skywire from source, without compiling binaries go run ./cmd/skywire-cli/skywire-cli.go config gen -in | sudo go run ./cmd/skywire-visor/skywire-visor.go -n || true -## Run skywire from source, with vpn server enabled -run-systray: prepare +run-systray: prepare ## Run skywire from source, with vpn server enabled go run ./cmd/skywire-cli/skywire-cli.go config gen -ni | sudo go run ./cmd/skywire-visor/skywire-visor.go -n --systray || true -## Run skywire from source, without compiling binaries - requires skywire cloned -run-vpnsrv: prepare + +run-vpnsrv: prepare ## Run skywire from source, without compiling binaries go run ./cmd/skywire-cli/skywire-cli.go config gen -in --servevpn | sudo go run ./cmd/skywire-visor/skywire-visor.go -n || true -## Run skywire from source with test endpoints -run-source-test: prepare +run-source-test: prepare ## Run skywire from source with test endpoints go run ./cmd/skywire-cli/skywire-cli.go config gen -nit | sudo go run ./cmd/skywire-visor/skywire-visor.go -n || true -## Run skywire from source, with vpn server enabled -run-vpnsrv-test: prepare +run-vpnsrv-test: prepare ## Run skywire from source, with vpn server enabled go run ./cmd/skywire-cli/skywire-cli.go config gen -nit --servevpn | sudo go run ./cmd/skywire-visor/skywire-visor.go -n || true -## Run skywire from source, with vpn server enabled -run-systray-test: prepare +run-systray-test: prepare ## Run skywire from source, with vpn server enabled go run ./cmd/skywire-cli/skywire-cli.go config gen -nit | sudo go run ./cmd/skywire-visor/skywire-visor.go --systray -nb || true -## Run skywire from source with dmsghttp config -run-source-dmsghttp: prepare +run-source-dmsghttp: prepare ## Run skywire from source with dmsghttp config go run ./cmd/skywire-cli/skywire-cli.go config gen -din | sudo go run ./cmd/skywire-visor/skywire-visor.go -nb || true -## Run skywire from source with dmsghttp config and vpn server -run-vpnsrv-dmsghttp: prepare +run-vpnsrv-dmsghttp: prepare ## Run skywire from source with dmsghttp config and vpn server go run ./cmd/skywire-cli/skywire-cli.go config gen -din --servevpn | sudo go run ./cmd/skywire-visor/skywire-visor.go -nb || true -## Run skywire from source with dmsghttp config and test endpoints -run-source-dmsghttp-test: prepare +run-source-dmsghttp-test: prepare ## Run skywire from source with dmsghttp config and test endpoints go run ./cmd/skywire-cli/skywire-cli.go config gen -dint | sudo go run ./cmd/skywire-visor/skywire-visor.go -nb || true -## Run skywire from source with dmsghttp config, vpn server, and test endpoints -run-vpnsrv-dmsghttp-test: prepare +run-vpnsrv-dmsghttp-test: prepare ## Run skywire from source with dmsghttp config, vpn server, and test endpoints go run ./cmd/skywire-cli/skywire-cli.go config gen -dint --servevpn | sudo go run ./cmd/skywire-visor/skywire-visor.go -nb || true lint-ui: ## Lint the UI code @@ -423,10 +424,10 @@ mac-installer-release: mac-installer ## Upload created signed and notarized appl gh release upload --repo skycoin/skywire ${GITHUB_TAG} ./skywire-installer-${GITHUB_TAG}-darwin-amd64.pkg gh release upload --repo skycoin/skywire ${GITHUB_TAG} ./skywire-installer-${GITHUB_TAG}-darwin-arm64.pkg -win-installer-latest: +win-installer-latest: ## Build the windows .msi (installer) latest version @powershell '.\scripts\win_installer\script.ps1 latest' -win-installer: +win-installer: ## Build the windows .msi (installer) custom version @powershell '.\scripts\win_installer\script.ps1 $(CUSTOM_VERSION)' windows-installer-release: @@ -435,7 +436,7 @@ windows-installer-release: gh release upload --repo skycoin/skywire ${GITHUB_TAG} ./skywire-installer-${GITHUB_TAG}-windows-amd64.msi gh release upload --repo skycoin/skywire ${GITHUB_TAG} ./skywire-installer-${GITHUB_TAG}-windows-386.msi -help: +help: ## `make help` menu @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' help-windows: ## Display help for windows diff --git a/README.md b/README.md index 873da61a70..93cdd11ecb 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ To run skywire from this point, first generate a config The visor can then be started with ``` +cd ./build sudo ./skywire-visor ``` diff --git a/cmd/apps/skychat/README.md b/cmd/apps/skychat/README.md index 043b2ca650..4a64bc5f9c 100644 --- a/cmd/apps/skychat/README.md +++ b/cmd/apps/skychat/README.md @@ -44,7 +44,8 @@ Create 2 visor config files: Compile binaries and start 2 visors: ```bash -$ go build -o apps/skychat.v1.0 ./cmd/apps/skychat +$ go build -o ./build/apps/skychat.v1.0 ./cmd/apps/skychat +$ cd ./build $ ./skywire-visor skywire1.json $ ./skywire-visor skywire2.json ``` diff --git a/cmd/apps/skysocks/README.md b/cmd/apps/skysocks/README.md index f69f0e60a9..b140cf6b3f 100644 --- a/cmd/apps/skysocks/README.md +++ b/cmd/apps/skysocks/README.md @@ -47,8 +47,9 @@ Create 2 visor config files: Compile binaries and start 2 visors: ```sh -$ go build -o apps/skysocks.v1.0 ./cmd/apps/skysocks -$ go build -o apps/skysocks-client.v1.0 ./cmd/apps/skysocks-client +$ go build -o ./build/apps/skysocks.v1.0 ./cmd/apps/skysocks +$ go build -o ./build/apps/skysocks-client.v1.0 ./cmd/apps/skysocks-client +$ cd ./build $ ./skywire-visor skywire1.json $ ./skywire-visor skywire2.json ``` diff --git a/cmd/apps/vpn-client/README.md b/cmd/apps/vpn-client/README.md index f2b4514391..2889c1672d 100644 --- a/cmd/apps/vpn-client/README.md +++ b/cmd/apps/vpn-client/README.md @@ -30,7 +30,8 @@ Full config of the client should look like this: Compile app binary and start a visor: ```sh -$ go build -o apps/vpn-client ./cmd/apps/vpn-client +$ go build -o ./build/apps/vpn-client ./cmd/apps/vpn-client +$ cd ./build $ ./skywire-visor skywire-config.json ``` diff --git a/cmd/apps/vpn-server/README.md b/cmd/apps/vpn-server/README.md index b2391e615f..a0f1429542 100644 --- a/cmd/apps/vpn-server/README.md +++ b/cmd/apps/vpn-server/README.md @@ -30,6 +30,7 @@ Full config of the server should look like this: Compile app binary and start a visor: ```sh -$ go build -o apps/vpn-server ./cmd/apps/vpn-server +$ go build -o ./build/apps/vpn-server ./cmd/apps/vpn-server +$ cd ./build $ ./skywire-visor skywire-config.json ``` \ No newline at end of file diff --git a/docker/images/visor/Dockerfile b/docker/images/visor/Dockerfile index b4c5b77a13..46b112d559 100644 --- a/docker/images/visor/Dockerfile +++ b/docker/images/visor/Dockerfile @@ -16,11 +16,11 @@ RUN apk add --no-cache make git && \ sh -c /skywire/docker/images/visor/install-preq.sh && \ make build-deploy && \ mkdir -p /apps && \ - cp ./apps/vpn-server /apps/ && \ - cp ./apps/vpn-client /apps/ && \ - cp ./apps/skysocks /apps/ && \ - cp ./apps/skysocks-client /apps/ && \ - cp ./apps/skychat /apps/ + cp ./build/apps/vpn-server /apps/ && \ + cp ./build/apps/vpn-client /apps/ && \ + cp ./build/apps/skysocks /apps/ && \ + cp ./build/apps/skysocks-client /apps/ && \ + cp ./build/apps/skychat /apps/ ## Resulting image FROM ${base} as visor-runner diff --git a/example/example-client-app/README.md b/example/example-client-app/README.md index fb949cc52f..67919fd5cb 100644 --- a/example/example-client-app/README.md +++ b/example/example-client-app/README.md @@ -17,6 +17,7 @@ Compile app binary and start a visor: ```sh $ make build-example +$ cd ./build $ ./skywire-visor skywire-config.json ``` @@ -28,7 +29,7 @@ $ ./skywire-cli visor app register -a example-client-app Run the app with the `example-server-app` addr and the generated proc key ```sh -$ ./apps/example-client-app -addr : -procAddr 01cd10e65d88494481c50a1bb0659af2 +$ ./build/apps/example-client-app -addr : -procAddr 01cd10e65d88494481c50a1bb0659af2 ``` Deregister app after stopping the `example-client-app` diff --git a/example/example-server-app/README.md b/example/example-server-app/README.md index 7cd5d664cc..0c8f21a30c 100644 --- a/example/example-server-app/README.md +++ b/example/example-server-app/README.md @@ -19,6 +19,7 @@ Compile app binaries, update config with `example-server-app` and start a visor: ```sh $ make build-example +$ cd ./build $ ./skywire-cli config gen -irm $ ./skywire-visor skywire-config.json ``` \ No newline at end of file diff --git a/pkg/skyenv/skyenv.go b/pkg/skyenv/skyenv.go index 4be52f5222..27306b6335 100644 --- a/pkg/skyenv/skyenv.go +++ b/pkg/skyenv/skyenv.go @@ -78,7 +78,7 @@ const ( AppSrvAddr = "localhost:5505" // AppSrvAddr ... ServiceDiscUpdateInterval = time.Minute // ServiceDiscUpdateInterval ... - AppBinPath = "./apps" // AppBinPath ... + AppBinPath = "./build/apps" // AppBinPath ... LogLevel = "info" // LogLevel ... // Routing constants diff --git a/scripts/deb_installer/package_deb.sh b/scripts/deb_installer/package_deb.sh index 51374fad6f..cd01480aa4 100755 --- a/scripts/deb_installer/package_deb.sh +++ b/scripts/deb_installer/package_deb.sh @@ -104,14 +104,14 @@ function pack_deb { cd ./packages mkdir "./$REPONAME-$VER" - cp ../skywire-visor "./$REPONAME-$VER/" - cp ../skywire-cli "./$REPONAME-$VER/" + cp ../build/skywire-visor "./$REPONAME-$VER/" + cp ../build/skywire-cli "./$REPONAME-$VER/" mkdir "./$REPONAME-$VER/apps" - cp ../apps/skychat "./$REPONAME-$VER/apps/" - cp ../apps/skysocks "./$REPONAME-$VER/apps/" - cp ../apps/skysocks-client "./$REPONAME-$VER/apps/" - cp ../apps/vpn-client "./$REPONAME-$VER/apps/" - cp ../apps/vpn-server "./$REPONAME-$VER/apps/" + cp ../build/apps/skychat "./$REPONAME-$VER/apps/" + cp ../build/apps/skysocks "./$REPONAME-$VER/apps/" + cp ../build/apps/skysocks-client "./$REPONAME-$VER/apps/" + cp ../build/apps/vpn-client "./$REPONAME-$VER/apps/" + cp ../build/apps/vpn-server "./$REPONAME-$VER/apps/" cd "./$REPONAME-$VER" diff --git a/scripts/mac_installer/create_installer.sh b/scripts/mac_installer/create_installer.sh index 04fe8e1a2a..9de4cee20b 100755 --- a/scripts/mac_installer/create_installer.sh +++ b/scripts/mac_installer/create_installer.sh @@ -71,9 +71,9 @@ function build_installer() { cp ${mac_script_dir}/Entitlements.plist ${installer_build_dir}/entitlements.plist cp ${mac_script_dir}/icon.icns ${installer_package_dir}/Contents/Resources/icon.icns - mv ./skywire-visor ${installer_package_dir}/Contents/MacOS/skywire-visor + mv ./build/skywire-visor ${installer_package_dir}/Contents/MacOS/skywire-visor mv ./skywire-cli ${installer_package_dir}/Contents/MacOS/skywire-cli - mv ./apps/vpn-client ${installer_package_dir}/Contents/MacOS/apps/vpn-client + mv ./build/apps/vpn-client ${installer_package_dir}/Contents/MacOS/apps/vpn-client cp ./dmsghttp-config.json ${installer_package_dir}/Contents/MacOS/dmsghttp-config.json cp ./skycoin.asc ${installer_package_dir}/Contents/MacOS/skycoin.asc From 7db839a29f534e3ace1a138711efe6bbe75297c6 Mon Sep 17 00:00:00 2001 From: Mohammed <79150699+mrpalide@users.noreply.github.com> Date: Thu, 23 Mar 2023 20:29:33 +0330 Subject: [PATCH 09/62] improve logging (#1507) * add store log file (use 3rd party lib lfshook) * add --force-color flag to change formatter of logs * fix /runtime-logs missing logs * fix app logs * fix test fail * fix since query on logs * update skywire@utilities * fix name on skywire.log * change logfile lib, add max size 1mb * change customdmsghttppath to dmsghttp_server_path --------- Co-authored-by: Moses Narrow <36607567+0pcom@users.noreply.github.com> --- go.mod | 2 + go.sum | 4 + pkg/app/appcommon/log_store.go | 3 +- pkg/app/appcommon/proc_config.go | 21 +- pkg/app/appserver/proc.go | 81 ++- pkg/app/appserver/proc_manager.go | 29 +- pkg/app/appserver/proc_manager_test.go | 12 +- pkg/visor/cmd.go | 7 +- pkg/visor/init.go | 4 +- pkg/visor/visor.go | 108 +++- pkg/visor/visorconfig/config.go | 6 +- pkg/visor/visorconfig/v1.go | 2 +- .../github.com/orandin/lumberjackrus/LICENSE | 21 + .../orandin/lumberjackrus/README.md | 56 ++ .../orandin/lumberjackrus/lumberjackrus.go | 104 ++++ .../natefinch/lumberjack.v2/.gitignore | 23 + .../natefinch/lumberjack.v2/.travis.yml | 11 + .../gopkg.in/natefinch/lumberjack.v2/LICENSE | 21 + .../natefinch/lumberjack.v2/README.md | 179 ++++++ .../gopkg.in/natefinch/lumberjack.v2/chown.go | 11 + .../natefinch/lumberjack.v2/chown_linux.go | 19 + .../natefinch/lumberjack.v2/lumberjack.go | 541 ++++++++++++++++++ vendor/modules.txt | 6 + 23 files changed, 1230 insertions(+), 41 deletions(-) create mode 100644 vendor/github.com/orandin/lumberjackrus/LICENSE create mode 100644 vendor/github.com/orandin/lumberjackrus/README.md create mode 100644 vendor/github.com/orandin/lumberjackrus/lumberjackrus.go create mode 100644 vendor/gopkg.in/natefinch/lumberjack.v2/.gitignore create mode 100644 vendor/gopkg.in/natefinch/lumberjack.v2/.travis.yml create mode 100644 vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE create mode 100644 vendor/gopkg.in/natefinch/lumberjack.v2/README.md create mode 100644 vendor/gopkg.in/natefinch/lumberjack.v2/chown.go create mode 100644 vendor/gopkg.in/natefinch/lumberjack.v2/chown_linux.go create mode 100644 vendor/gopkg.in/natefinch/lumberjack.v2/lumberjack.go diff --git a/go.mod b/go.mod index 7bc2aad710..69ee4e5aeb 100644 --- a/go.mod +++ b/go.mod @@ -48,6 +48,7 @@ require ( github.com/james-barrow/golang-ipc v0.0.0-20210227130457-95e7cc81f5e2 github.com/jaypipes/ghw v0.10.0 github.com/lib/pq v1.10.7 + github.com/orandin/lumberjackrus v1.0.1 github.com/pterm/pterm v0.12.49 github.com/skycoin/dmsg v1.3.0-rc1.0.20230224131835-1c194ef9791e github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a @@ -102,6 +103,7 @@ require ( golang.org/x/crypto v0.1.0 // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/text v0.7.0 // indirect + gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect howett.net/plist v1.0.0 // indirect diff --git a/go.sum b/go.sum index b233227ada..80592ad77a 100644 --- a/go.sum +++ b/go.sum @@ -458,6 +458,8 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= +github.com/orandin/lumberjackrus v1.0.1 h1:7ysDQ0MHD79zIFN9/EiDHjUcgopNi5ehtxFDy8rUkWo= +github.com/orandin/lumberjackrus v1.0.1/go.mod h1:xYLt6H8W93pKnQgUQaxsApS0Eb4BwHLOkxk5DVzf5H0= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= @@ -1121,6 +1123,8 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v1 v1.0.0-20140924161607-9f9df34309c0/go.mod h1:WDnlLJ4WF5VGsH/HVa3CI79GS0ol3YnhVnKP89i0kNg= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/pkg/app/appcommon/log_store.go b/pkg/app/appcommon/log_store.go index 8b7f8af8df..ccb93d085e 100644 --- a/pkg/app/appcommon/log_store.go +++ b/pkg/app/appcommon/log_store.go @@ -215,8 +215,7 @@ func (l *bBoltLogStore) Fire(entry *log.Entry) error { }() // time in RFC3339Nano is between the bytes 1 and 36. This will change if other time layout is in use - t := p[1 : 1+len(timeLayout)] - + t := strings.Split(strings.Split(strings.Split(p, " ")[0], "]")[0], "[")[2] err = db.Update(func(tx *bbolt.Tx) error { b := tx.Bucket(l.bucket) return b.Put([]byte(t), []byte(str)) diff --git a/pkg/app/appcommon/proc_config.go b/pkg/app/appcommon/proc_config.go index 23cdb0014c..fa7e1ee52c 100644 --- a/pkg/app/appcommon/proc_config.go +++ b/pkg/app/appcommon/proc_config.go @@ -70,16 +70,17 @@ type ProcID uint16 // ProcConfig defines configuration parameters for `Proc`. type ProcConfig struct { - AppName string `json:"app_name"` - AppSrvAddr string `json:"app_server_addr"` - ProcKey ProcKey `json:"proc_key"` - ProcArgs []string `json:"proc_args"` - ProcEnvs []string `json:"proc_envs"` // Additional env variables. Will be overwritten if they conflict with skywire-app specific envs. - ProcWorkDir string `json:"proc_work_dir"` - VisorPK cipher.PubKey `json:"visor_pk"` - RoutingPort routing.Port `json:"routing_port"` - BinaryLoc string `json:"binary_loc"` - LogDBLoc string `json:"log_db_loc"` + AppName string `json:"app_name"` + AppSrvAddr string `json:"app_server_addr"` + ProcKey ProcKey `json:"proc_key"` + ProcArgs []string `json:"proc_args"` + ProcEnvs []string `json:"proc_envs"` // Additional env variables. Will be overwritten if they conflict with skywire-app specific envs. + ProcWorkDir string `json:"proc_work_dir"` + VisorPK cipher.PubKey `json:"visor_pk"` + RoutingPort routing.Port `json:"routing_port"` + BinaryLoc string `json:"binary_loc"` + LogDBLoc string `json:"log_db_loc"` + LogStorePath string `json:"log_store_path"` } // ProcConfigFromEnv obtains a ProcConfig from the associated env variable, returning an error if any. diff --git a/pkg/app/appserver/proc.go b/pkg/app/appserver/proc.go index 79e982f87a..cd6d0d0b08 100644 --- a/pkg/app/appserver/proc.go +++ b/pkg/app/appserver/proc.go @@ -16,6 +16,7 @@ import ( "time" ipc "github.com/james-barrow/golang-ipc" + "github.com/orandin/lumberjackrus" "github.com/sirupsen/logrus" "github.com/skycoin/skywire-utilities/pkg/logging" @@ -80,7 +81,7 @@ type Proc struct { // NewProc constructs `Proc`. func NewProc(mLog *logging.MasterLogger, conf appcommon.ProcConfig, disc appdisc.Updater, m ProcManager, - appName string) *Proc { + appName, logStorePath string) *Proc { if mLog == nil { mLog = logging.NewMasterLogger() } @@ -96,8 +97,14 @@ func NewProc(mLog *logging.MasterLogger, conf appcommon.ProcConfig, disc appdisc var appLogDB appcommon.LogStore var appLog *logging.MasterLogger var stderr io.ReadCloser + procLogger := mLog if conf.LogDBLoc != "" { appLog, appLogDB = appcommon.NewProcLogger(conf, mLog) + procLogger = appLog + if logStorePath != "" { + storeLog(appLog, logStorePath) + } + cmd.Stdout = appLog.WithField("_module", moduleName).WithField("func", "(STDOUT)").WriterLevel(logrus.DebugLevel) // we read the Stderr pipe in order to filter some false positive app errors @@ -109,7 +116,7 @@ func NewProc(mLog *logging.MasterLogger, conf appcommon.ProcConfig, disc appdisc p := &Proc{ disc: disc, conf: conf, - log: mLog.PackageLogger(moduleName), + log: procLogger.PackageLogger(moduleName), logDB: appLogDB, cmd: cmd, connCh: make(chan struct{}, 1), @@ -468,3 +475,73 @@ func (p *Proc) ConnectionsSummary() []ConnectionSummary { return summaries } + +func storeLog(log *logging.MasterLogger, localPath string) { + hook, _ := lumberjackrus.NewHook( //nolint + &lumberjackrus.LogFile{ + Filename: localPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.TraceLevel, + &logging.TextFormatter{ + DisableColors: true, + FullTimestamp: true, + ForceFormatting: true, + }, + &lumberjackrus.LogFileOpts{ + logrus.InfoLevel: &lumberjackrus.LogFile{ + Filename: localPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.WarnLevel: &lumberjackrus.LogFile{ + Filename: localPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.TraceLevel: &lumberjackrus.LogFile{ + Filename: localPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.ErrorLevel: &lumberjackrus.LogFile{ + Filename: localPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.DebugLevel: &lumberjackrus.LogFile{ + Filename: localPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.FatalLevel: &lumberjackrus.LogFile{ + Filename: localPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + }, + ) + log.Hooks.Add(hook) +} diff --git a/pkg/app/appserver/proc_manager.go b/pkg/app/appserver/proc_manager.go index efeab9038a..357dde3bb5 100644 --- a/pkg/app/appserver/proc_manager.go +++ b/pkg/app/appserver/proc_manager.go @@ -73,10 +73,12 @@ type procManager struct { mx sync.RWMutex done chan struct{} + + logStorePath string } // NewProcManager constructs `ProcManager`. -func NewProcManager(mLog *logging.MasterLogger, discF *appdisc.Factory, eb *appevent.Broadcaster, addr string) (ProcManager, error) { +func NewProcManager(mLog *logging.MasterLogger, discF *appdisc.Factory, eb *appevent.Broadcaster, addr, logStorePath string) (ProcManager, error) { if mLog == nil { mLog = logging.NewMasterLogger() } @@ -93,16 +95,17 @@ func NewProcManager(mLog *logging.MasterLogger, discF *appdisc.Factory, eb *appe } procM := &procManager{ - mLog: mLog, - log: mLog.PackageLogger("proc_manager"), - lis: lis, - conns: make(map[string]net.Conn), - discF: discF, - procs: make(map[string]*Proc), - procsByKey: make(map[appcommon.ProcKey]*Proc), - errors: make(map[string]string), - eb: eb, - done: make(chan struct{}), + mLog: mLog, + log: mLog.PackageLogger("proc_manager"), + lis: lis, + conns: make(map[string]net.Conn), + discF: discF, + procs: make(map[string]*Proc), + procsByKey: make(map[appcommon.ProcKey]*Proc), + errors: make(map[string]string), + eb: eb, + done: make(chan struct{}), + logStorePath: logStorePath, } procM.connsWG.Add(1) @@ -207,7 +210,7 @@ func (m *procManager) Start(conf appcommon.ProcConfig) (appcommon.ProcID, error) Debug("No app discovery associated with app.") } - proc := NewProc(m.mLog, conf, disc, m, conf.AppName) + proc := NewProc(nil, conf, disc, m, conf.AppName, m.logStorePath) m.procs[conf.AppName] = proc m.procsByKey[conf.ProcKey] = proc @@ -253,7 +256,7 @@ func (m *procManager) Register(conf appcommon.ProcConfig) (appcommon.ProcKey, er Debug("No app discovery associated with app.") } - proc := NewProc(m.mLog, conf, disc, m, conf.AppName) + proc := NewProc(nil, conf, disc, m, conf.AppName, m.logStorePath) m.procs[conf.AppName] = proc m.procsByKey[conf.ProcKey] = proc go func() { diff --git a/pkg/app/appserver/proc_manager_test.go b/pkg/app/appserver/proc_manager_test.go index dae0e1bf28..5aeefa507d 100644 --- a/pkg/app/appserver/proc_manager_test.go +++ b/pkg/app/appserver/proc_manager_test.go @@ -12,7 +12,7 @@ import ( ) func TestProcManager_ProcByName(t *testing.T) { - mI, err := NewProcManager(nil, nil, nil, ":0") + mI, err := NewProcManager(nil, nil, nil, ":0", "") require.NoError(t, err) m, ok := mI.(*procManager) @@ -32,7 +32,7 @@ func TestProcManager_ProcByName(t *testing.T) { } func TestProcManager_Range(t *testing.T) { - mI, err := NewProcManager(nil, nil, nil, ":0") + mI, err := NewProcManager(nil, nil, nil, ":0", "") require.NoError(t, err) m, ok := mI.(*procManager) @@ -61,7 +61,7 @@ func TestProcManager_Range(t *testing.T) { } func TestProcManager_Pop(t *testing.T) { - mI, err := NewProcManager(nil, nil, nil, ":0") + mI, err := NewProcManager(nil, nil, nil, ":0", "") require.NoError(t, err) m, ok := mI.(*procManager) @@ -84,7 +84,7 @@ func TestProcManager_Pop(t *testing.T) { } func TestProcManager_SetDetailedStatus(t *testing.T) { - mI, err := NewProcManager(nil, nil, nil, ":0") + mI, err := NewProcManager(nil, nil, nil, ":0", "") require.NoError(t, err) m, ok := mI.(*procManager) @@ -109,7 +109,7 @@ func TestProcManager_SetDetailedStatus(t *testing.T) { } func TestProcManager_DetailedStatus(t *testing.T) { - mI, err := NewProcManager(nil, nil, nil, ":0") + mI, err := NewProcManager(nil, nil, nil, ":0", "") require.NoError(t, err) m, ok := mI.(*procManager) @@ -132,7 +132,7 @@ func TestProcManager_DetailedStatus(t *testing.T) { } func TestProcManager_RegisterAndDeregister(t *testing.T) { - mI, err := NewProcManager(nil, nil, nil, ":0") + mI, err := NewProcManager(nil, nil, nil, ":0", "") require.NoError(t, err) m, ok := mI.(*procManager) diff --git a/pkg/visor/cmd.go b/pkg/visor/cmd.go index 50da50d396..5afa98f134 100644 --- a/pkg/visor/cmd.go +++ b/pkg/visor/cmd.go @@ -55,6 +55,8 @@ var ( visorBuildInfo *buildinfo.Info dmsgServer string rawSurvey bool + isStoreLog bool + isForceColor bool ) func init() { @@ -130,8 +132,11 @@ func init() { hiddenflags = append(hiddenflags, "completion") RootCmd.Flags().BoolVar(&rawSurvey, "raw-survey", false, "survey will generate and store decrypted if pass this flag") hiddenflags = append(hiddenflags, "raw-survey") + RootCmd.Flags().BoolVarP(&isStoreLog, "store-log", "l", false, "store all logs to file") + hiddenflags = append(hiddenflags, "store-log") + RootCmd.Flags().BoolVar(&isForceColor, "force-color", false, "set force coler true in loggers") + hiddenflags = append(hiddenflags, "force-color") RootCmd.Flags().BoolVar(&all, "all", false, "show all flags") - for _, j := range hiddenflags { RootCmd.Flags().MarkHidden(j) //nolint } diff --git a/pkg/visor/init.go b/pkg/visor/init.go index 159448e66d..5b6bdf8966 100644 --- a/pkg/visor/init.go +++ b/pkg/visor/init.go @@ -388,7 +388,7 @@ func initDmsgHTTPLogServer(ctx context.Context, v *Visor, log *logging.Logger) e printLog = true } - lsAPI := logserver.New(logger, v.conf.Transport.LogStore.Location, v.conf.LocalPath, v.conf.CustomDmsgHTTPPath, printLog) + lsAPI := logserver.New(logger, v.conf.Transport.LogStore.Location, v.conf.LocalPath, v.conf.DmsgHTTPServerPath, printLog) lis, err := dmsgC.Listen(visorconfig.DmsgHTTPPort) if err != nil { @@ -1007,7 +1007,7 @@ func initLauncher(ctx context.Context, v *Visor, log *logging.Logger) error { conf := v.conf.Launcher // Prepare proc manager. - procM, err := appserver.NewProcManager(v.MasterLogger(), &v.serviceDisc, v.ebc, conf.ServerAddr) + procM, err := appserver.NewProcManager(v.MasterLogger(), &v.serviceDisc, v.ebc, conf.ServerAddr, v.conf.LocalPath) if err != nil { err := fmt.Errorf("failed to start proc_manager: %w", err) return err diff --git a/pkg/visor/visor.go b/pkg/visor/visor.go index 3649f58f91..bf6c898870 100644 --- a/pkg/visor/visor.go +++ b/pkg/visor/visor.go @@ -13,6 +13,8 @@ import ( "sync" "time" + "github.com/orandin/lumberjackrus" + "github.com/sirupsen/logrus" dmsgdisc "github.com/skycoin/dmsg/pkg/disc" "github.com/skycoin/dmsg/pkg/dmsg" "github.com/toqueteos/webbrowser" @@ -116,6 +118,8 @@ type Visor struct { pingPcktSize int rawSurvey bool + + logStorePath string } // todo: consider moving module closing to the module system @@ -163,6 +167,8 @@ func run(conf *visorconfig.V1) error { conf = initConfig() } + conf.MasterLogger().AddHook(hook) + if disableHypervisorPKs { conf.Hypervisors = []cipher.PubKey{} } @@ -237,6 +243,11 @@ func NewVisor(ctx context.Context, conf *visorconfig.V1) (*Visor, bool) { if conf == nil { conf = initConfig() } + + if isForceColor { + setForceColor(conf) + } + v := &Visor{ log: conf.MasterLogger().PackageLogger("visor"), conf: conf, @@ -260,10 +271,14 @@ func NewVisor(ctx context.Context, conf *visorconfig.V1) (*Visor, bool) { v.conf.MasterLogger().SetLevel(logLvl) } + v.startedAt = time.Now() + if isStoreLog { + storeLog(conf) + v.logStorePath = conf.LocalPath + } log := v.MasterLogger().PackageLogger("visor:startup") log.WithField("public_key", conf.PK). Info("Begin startup.") - v.startedAt = time.Now() ctx = context.WithValue(ctx, visorKey, v) v.runtimeErrors = make(chan error) ctx = context.WithValue(ctx, runtimeErrsKey, v.runtimeErrors) @@ -539,3 +554,94 @@ func initUI() *fs.FS { return &uiFS } + +func storeLog(conf *visorconfig.V1) { + hook, _ := lumberjackrus.NewHook( //nolint + &lumberjackrus.LogFile{ + Filename: conf.LocalPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.TraceLevel, + &logging.TextFormatter{ + DisableColors: true, + FullTimestamp: true, + ForceFormatting: true, + }, + &lumberjackrus.LogFileOpts{ + logrus.InfoLevel: &lumberjackrus.LogFile{ + Filename: conf.LocalPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.WarnLevel: &lumberjackrus.LogFile{ + Filename: conf.LocalPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.TraceLevel: &lumberjackrus.LogFile{ + Filename: conf.LocalPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.ErrorLevel: &lumberjackrus.LogFile{ + Filename: conf.LocalPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.DebugLevel: &lumberjackrus.LogFile{ + Filename: conf.LocalPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.FatalLevel: &lumberjackrus.LogFile{ + Filename: conf.LocalPath + "/log/skywire.log", + MaxSize: 1, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + }, + ) + mLog.Hooks.Add(hook) + conf.MasterLogger().Hooks.Add(hook) +} + +func setForceColor(conf *visorconfig.V1) { + conf.MasterLogger().SetFormatter(&logging.TextFormatter{ + FullTimestamp: true, + AlwaysQuoteStrings: true, + QuoteEmptyFields: true, + ForceFormatting: true, + DisableColors: false, + ForceColors: true, + }) + + mLog.SetFormatter(&logging.TextFormatter{ + FullTimestamp: true, + AlwaysQuoteStrings: true, + QuoteEmptyFields: true, + ForceFormatting: true, + DisableColors: false, + ForceColors: true, + }) +} diff --git a/pkg/visor/visorconfig/config.go b/pkg/visor/visorconfig/config.go index 34ef5be1bf..ac34164f69 100644 --- a/pkg/visor/visorconfig/config.go +++ b/pkg/visor/visorconfig/config.go @@ -92,7 +92,7 @@ func MakeBaseConfig(common *Common, testEnv bool, dmsgHTTP bool, services *Servi conf.CLIAddr = RPCAddr conf.LogLevel = LogLevel conf.LocalPath = LocalPath - conf.CustomDmsgHTTPPath = LocalPath + "/" + Custom + conf.DmsgHTTPServerPath = LocalPath + "/" + Custom conf.StunServers = services.StunServers //utilenv.GetStunServers() conf.ShutdownTimeout = DefaultTimeout conf.RestartCheckDelay = Duration(restart.DefaultCheckDelay) @@ -202,7 +202,7 @@ func MakeDefaultConfig(log *logging.MasterLogger, sk *cipher.SecKey, usrEnv bool if pkgEnv { pkgConfig := PackageConfig() conf.LocalPath = pkgConfig.LocalPath - conf.CustomDmsgHTTPPath = pkgConfig.LocalPath + "/" + Custom + conf.DmsgHTTPServerPath = pkgConfig.LocalPath + "/" + Custom conf.Launcher.BinPath = pkgConfig.LauncherBinPath conf.Transport.LogStore.Location = pkgConfig.LocalPath + "/" + TpLogStore if conf.Hypervisor != nil { @@ -213,7 +213,7 @@ func MakeDefaultConfig(log *logging.MasterLogger, sk *cipher.SecKey, usrEnv bool if usrEnv { usrConfig := UserConfig() conf.LocalPath = usrConfig.LocalPath - conf.CustomDmsgHTTPPath = usrConfig.LocalPath + "/" + Custom + conf.DmsgHTTPServerPath = usrConfig.LocalPath + "/" + Custom conf.Launcher.BinPath = usrConfig.LauncherBinPath conf.Transport.LogStore.Location = usrConfig.LocalPath + "/" + TpLogStore if conf.Hypervisor != nil { diff --git a/pkg/visor/visorconfig/v1.go b/pkg/visor/visorconfig/v1.go index 7a2f5bbc1b..35cdab5798 100644 --- a/pkg/visor/visorconfig/v1.go +++ b/pkg/visor/visorconfig/v1.go @@ -32,7 +32,7 @@ type V1 struct { LogLevel string `json:"log_level"` LocalPath string `json:"local_path"` - CustomDmsgHTTPPath string `json:"custom_dmsg_http_path"` + DmsgHTTPServerPath string `json:"dmsghttp_server_path"` StunServers []string `json:"stun_servers"` ShutdownTimeout Duration `json:"shutdown_timeout,omitempty"` // time value, examples: 10s, 1m, etc RestartCheckDelay Duration `json:"restart_check_delay,omitempty"` // time value, examples: 10s, 1m, etc diff --git a/vendor/github.com/orandin/lumberjackrus/LICENSE b/vendor/github.com/orandin/lumberjackrus/LICENSE new file mode 100644 index 0000000000..ab3c93cfd8 --- /dev/null +++ b/vendor/github.com/orandin/lumberjackrus/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Simon Delberghe + +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. \ No newline at end of file diff --git a/vendor/github.com/orandin/lumberjackrus/README.md b/vendor/github.com/orandin/lumberjackrus/README.md new file mode 100644 index 0000000000..bd53f7c4ac --- /dev/null +++ b/vendor/github.com/orandin/lumberjackrus/README.md @@ -0,0 +1,56 @@ +# lumberjackrus | local filesystem hook for Logrus + +## Example + +```golang +package main + +import ( + "github.com/sirupsen/logrus" + "github.com/orandin/lumberjackrus" +) + +func init() { + logrus.SetFormatter(&logrus.TextFormatter{}) + logrus.SetLevel(logrus.DebugLevel) + + hook, err := lumberjackrus.NewHook( + &lumberjackrus.LogFile{ + Filename: "/tmp/general.log", + MaxSize: 100, + MaxBackups: 1, + MaxAge: 1, + Compress: false, + LocalTime: false, + }, + logrus.InfoLevel, + &logrus.TextFormatter{}, + &lumberjackrus.LogFileOpts{ + logrus.InfoLevel: &lumberjackrus.LogFile{ + Filename: "/tmp/info.log", + }, + logrus.ErrorLevel: &lumberjackrus.LogFile{ + Filename: "/tmp/error.log", + MaxSize: 100, // optional + MaxBackups: 1, // optional + MaxAge: 1, // optional + Compress: false, // optional + LocalTime: false, // optional + }, + }, + ) + + if err != nil { + panic(err) + } + + logrus.AddHook(hook) +} + +func main() { + logrus.Debug("Debug message") // It is not written to a file (because debug level < minLevel) + logrus.Info("Info message") // Written in /tmp/info.log + logrus.Warn("Warn message") // Written in /tmp/general.log + logrus.Error("Error message") // Written in /tmp/error.log +} +``` diff --git a/vendor/github.com/orandin/lumberjackrus/lumberjackrus.go b/vendor/github.com/orandin/lumberjackrus/lumberjackrus.go new file mode 100644 index 0000000000..492b4b3f93 --- /dev/null +++ b/vendor/github.com/orandin/lumberjackrus/lumberjackrus.go @@ -0,0 +1,104 @@ +package lumberjackrus + +import ( + "github.com/sirupsen/logrus" + "gopkg.in/natefinch/lumberjack.v2" + "fmt" +) + +type LogFile struct { + // Filename is the file to write logs to. Backup log files will be retained in the same directory. + // It uses -lumberjack.log in os.TempDir() if empty. + Filename string `json:"filename" yaml:"filename"` + + // MaxSize is the maximum size in megabytes of the log file before it gets rotated. It defaults to 100 megabytes. + MaxSize int `json:"maxsize" yaml:"maxsize"` + + // MaxAge is the maximum number of days to retain old log files based on the timestamp encoded in their filename. + // Note that a day is defined as 24 hours and may not exactly correspond to calendar days due to daylight savings, + // leap seconds, etc. The default is not to remove old log files based on age. + MaxAge int `json:"maxage" yaml:"maxage"` + + // MaxBackups is the maximum number of old log files to retain. The default is to retain all old log files (though + // MaxAge may still cause them to get deleted.) + MaxBackups int `json:"maxbackups" yaml:"maxbackups"` + + // LocalTime determines if the time used for formatting the timestamps in backup files is the computer's local time. + // The default is to use UTC time. + LocalTime bool `json:"localtime" yaml:"localtime"` + + // Compress determines if the rotated log files should be compressed using gzip. + Compress bool `json:"compress" yaml:"compress"` +} + +type LogFileOpts map[logrus.Level]*LogFile + +type Hook struct { + defaultLogger *lumberjack.Logger + formatter logrus.Formatter + minLevel logrus.Level + loggerByLevel map[logrus.Level]*lumberjack.Logger +} + +func NewHook(defaultLogger *LogFile, minLevel logrus.Level, formatter logrus.Formatter, opts *LogFileOpts) (*Hook, error) { + + if defaultLogger == nil { + return nil, fmt.Errorf("default logger cannot be nil") + } + + hook := Hook{ + defaultLogger: &lumberjack.Logger{ + Filename: defaultLogger.Filename, + MaxSize: defaultLogger.MaxSize, + MaxBackups: defaultLogger.MaxBackups, + MaxAge: defaultLogger.MaxAge, + Compress: defaultLogger.Compress, + LocalTime: defaultLogger.LocalTime, + }, + minLevel: minLevel, + formatter: formatter, + loggerByLevel: make(map[logrus.Level]*lumberjack.Logger), + } + + if opts != nil { + + maxLevel := len(hook.Levels()) + for level, config := range *opts { + + if maxLevel <= int(level) { + continue + } + + hook.loggerByLevel[level] = &lumberjack.Logger{ + Filename: config.Filename, + MaxSize: config.MaxSize, + MaxBackups: config.MaxBackups, + MaxAge: config.MaxAge, + Compress: config.Compress, + LocalTime: config.LocalTime, + } + } + } + + return &hook, nil +} + +func (hook *Hook) Fire(entry *logrus.Entry) error { + + msg, err := hook.formatter.Format(entry) + if err != nil { + return err + } + + if logger, ok := hook.loggerByLevel[entry.Level]; ok { + _, err = logger.Write([]byte(msg)) + } else { + _, err = hook.defaultLogger.Write([]byte(msg)) + } + + return err +} + +func (hook *Hook) Levels() []logrus.Level { + return logrus.AllLevels[:hook.minLevel+1] +} diff --git a/vendor/gopkg.in/natefinch/lumberjack.v2/.gitignore b/vendor/gopkg.in/natefinch/lumberjack.v2/.gitignore new file mode 100644 index 0000000000..836562412f --- /dev/null +++ b/vendor/gopkg.in/natefinch/lumberjack.v2/.gitignore @@ -0,0 +1,23 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test diff --git a/vendor/gopkg.in/natefinch/lumberjack.v2/.travis.yml b/vendor/gopkg.in/natefinch/lumberjack.v2/.travis.yml new file mode 100644 index 0000000000..21166f5c7d --- /dev/null +++ b/vendor/gopkg.in/natefinch/lumberjack.v2/.travis.yml @@ -0,0 +1,11 @@ +language: go + +go: + - tip + - 1.15.x + - 1.14.x + - 1.13.x + - 1.12.x + +env: + - GO111MODULE=on diff --git a/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE b/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE new file mode 100644 index 0000000000..c3d4cc307d --- /dev/null +++ b/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Nate Finch + +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. \ No newline at end of file diff --git a/vendor/gopkg.in/natefinch/lumberjack.v2/README.md b/vendor/gopkg.in/natefinch/lumberjack.v2/README.md new file mode 100644 index 0000000000..060eae52a2 --- /dev/null +++ b/vendor/gopkg.in/natefinch/lumberjack.v2/README.md @@ -0,0 +1,179 @@ +# lumberjack [![GoDoc](https://godoc.org/gopkg.in/natefinch/lumberjack.v2?status.png)](https://godoc.org/gopkg.in/natefinch/lumberjack.v2) [![Build Status](https://travis-ci.org/natefinch/lumberjack.svg?branch=v2.0)](https://travis-ci.org/natefinch/lumberjack) [![Build status](https://ci.appveyor.com/api/projects/status/00gchpxtg4gkrt5d)](https://ci.appveyor.com/project/natefinch/lumberjack) [![Coverage Status](https://coveralls.io/repos/natefinch/lumberjack/badge.svg?branch=v2.0)](https://coveralls.io/r/natefinch/lumberjack?branch=v2.0) + +### Lumberjack is a Go package for writing logs to rolling files. + +Package lumberjack provides a rolling logger. + +Note that this is v2.0 of lumberjack, and should be imported using gopkg.in +thusly: + + import "gopkg.in/natefinch/lumberjack.v2" + +The package name remains simply lumberjack, and the code resides at +https://github.com/natefinch/lumberjack under the v2.0 branch. + +Lumberjack is intended to be one part of a logging infrastructure. +It is not an all-in-one solution, but instead is a pluggable +component at the bottom of the logging stack that simply controls the files +to which logs are written. + +Lumberjack plays well with any logging package that can write to an +io.Writer, including the standard library's log package. + +Lumberjack assumes that only one process is writing to the output files. +Using the same lumberjack configuration from multiple processes on the same +machine will result in improper behavior. + + +**Example** + +To use lumberjack with the standard library's log package, just pass it into the SetOutput function when your application starts. + +Code: + +```go +log.SetOutput(&lumberjack.Logger{ + Filename: "/var/log/myapp/foo.log", + MaxSize: 500, // megabytes + MaxBackups: 3, + MaxAge: 28, //days + Compress: true, // disabled by default +}) +``` + + + +## type Logger +``` go +type Logger struct { + // Filename is the file to write logs to. Backup log files will be retained + // in the same directory. It uses -lumberjack.log in + // os.TempDir() if empty. + Filename string `json:"filename" yaml:"filename"` + + // MaxSize is the maximum size in megabytes of the log file before it gets + // rotated. It defaults to 100 megabytes. + MaxSize int `json:"maxsize" yaml:"maxsize"` + + // MaxAge is the maximum number of days to retain old log files based on the + // timestamp encoded in their filename. Note that a day is defined as 24 + // hours and may not exactly correspond to calendar days due to daylight + // savings, leap seconds, etc. The default is not to remove old log files + // based on age. + MaxAge int `json:"maxage" yaml:"maxage"` + + // MaxBackups is the maximum number of old log files to retain. The default + // is to retain all old log files (though MaxAge may still cause them to get + // deleted.) + MaxBackups int `json:"maxbackups" yaml:"maxbackups"` + + // LocalTime determines if the time used for formatting the timestamps in + // backup files is the computer's local time. The default is to use UTC + // time. + LocalTime bool `json:"localtime" yaml:"localtime"` + + // Compress determines if the rotated log files should be compressed + // using gzip. The default is not to perform compression. + Compress bool `json:"compress" yaml:"compress"` + // contains filtered or unexported fields +} +``` +Logger is an io.WriteCloser that writes to the specified filename. + +Logger opens or creates the logfile on first Write. If the file exists and +is less than MaxSize megabytes, lumberjack will open and append to that file. +If the file exists and its size is >= MaxSize megabytes, the file is renamed +by putting the current time in a timestamp in the name immediately before the +file's extension (or the end of the filename if there's no extension). A new +log file is then created using original filename. + +Whenever a write would cause the current log file exceed MaxSize megabytes, +the current file is closed, renamed, and a new log file created with the +original name. Thus, the filename you give Logger is always the "current" log +file. + +Backups use the log file name given to Logger, in the form `name-timestamp.ext` +where name is the filename without the extension, timestamp is the time at which +the log was rotated formatted with the time.Time format of +`2006-01-02T15-04-05.000` and the extension is the original extension. For +example, if your Logger.Filename is `/var/log/foo/server.log`, a backup created +at 6:30pm on Nov 11 2016 would use the filename +`/var/log/foo/server-2016-11-04T18-30-00.000.log` + +### Cleaning Up Old Log Files +Whenever a new logfile gets created, old log files may be deleted. The most +recent files according to the encoded timestamp will be retained, up to a +number equal to MaxBackups (or all of them if MaxBackups is 0). Any files +with an encoded timestamp older than MaxAge days are deleted, regardless of +MaxBackups. Note that the time encoded in the timestamp is the rotation +time, which may differ from the last time that file was written to. + +If MaxBackups and MaxAge are both 0, no old log files will be deleted. + + + + + + + + + + + +### func (\*Logger) Close +``` go +func (l *Logger) Close() error +``` +Close implements io.Closer, and closes the current logfile. + + + +### func (\*Logger) Rotate +``` go +func (l *Logger) Rotate() error +``` +Rotate causes Logger to close the existing log file and immediately create a +new one. This is a helper function for applications that want to initiate +rotations outside of the normal rotation rules, such as in response to +SIGHUP. After rotating, this initiates a cleanup of old log files according +to the normal rules. + +**Example** + +Example of how to rotate in response to SIGHUP. + +Code: + +```go +l := &lumberjack.Logger{} +log.SetOutput(l) +c := make(chan os.Signal, 1) +signal.Notify(c, syscall.SIGHUP) + +go func() { + for { + <-c + l.Rotate() + } +}() +``` + +### func (\*Logger) Write +``` go +func (l *Logger) Write(p []byte) (n int, err error) +``` +Write implements io.Writer. If a write would cause the log file to be larger +than MaxSize, the file is closed, renamed to include a timestamp of the +current time, and a new log file is created using the original log file name. +If the length of the write is greater than MaxSize, an error is returned. + + + + + + + + + +- - - +Generated by [godoc2md](http://godoc.org/github.com/davecheney/godoc2md) diff --git a/vendor/gopkg.in/natefinch/lumberjack.v2/chown.go b/vendor/gopkg.in/natefinch/lumberjack.v2/chown.go new file mode 100644 index 0000000000..11d0669723 --- /dev/null +++ b/vendor/gopkg.in/natefinch/lumberjack.v2/chown.go @@ -0,0 +1,11 @@ +// +build !linux + +package lumberjack + +import ( + "os" +) + +func chown(_ string, _ os.FileInfo) error { + return nil +} diff --git a/vendor/gopkg.in/natefinch/lumberjack.v2/chown_linux.go b/vendor/gopkg.in/natefinch/lumberjack.v2/chown_linux.go new file mode 100644 index 0000000000..465f569270 --- /dev/null +++ b/vendor/gopkg.in/natefinch/lumberjack.v2/chown_linux.go @@ -0,0 +1,19 @@ +package lumberjack + +import ( + "os" + "syscall" +) + +// osChown is a var so we can mock it out during tests. +var osChown = os.Chown + +func chown(name string, info os.FileInfo) error { + f, err := os.OpenFile(name, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, info.Mode()) + if err != nil { + return err + } + f.Close() + stat := info.Sys().(*syscall.Stat_t) + return osChown(name, int(stat.Uid), int(stat.Gid)) +} diff --git a/vendor/gopkg.in/natefinch/lumberjack.v2/lumberjack.go b/vendor/gopkg.in/natefinch/lumberjack.v2/lumberjack.go new file mode 100644 index 0000000000..3447cdc056 --- /dev/null +++ b/vendor/gopkg.in/natefinch/lumberjack.v2/lumberjack.go @@ -0,0 +1,541 @@ +// Package lumberjack provides a rolling logger. +// +// Note that this is v2.0 of lumberjack, and should be imported using gopkg.in +// thusly: +// +// import "gopkg.in/natefinch/lumberjack.v2" +// +// The package name remains simply lumberjack, and the code resides at +// https://github.com/natefinch/lumberjack under the v2.0 branch. +// +// Lumberjack is intended to be one part of a logging infrastructure. +// It is not an all-in-one solution, but instead is a pluggable +// component at the bottom of the logging stack that simply controls the files +// to which logs are written. +// +// Lumberjack plays well with any logging package that can write to an +// io.Writer, including the standard library's log package. +// +// Lumberjack assumes that only one process is writing to the output files. +// Using the same lumberjack configuration from multiple processes on the same +// machine will result in improper behavior. +package lumberjack + +import ( + "compress/gzip" + "errors" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "sort" + "strings" + "sync" + "time" +) + +const ( + backupTimeFormat = "2006-01-02T15-04-05.000" + compressSuffix = ".gz" + defaultMaxSize = 100 +) + +// ensure we always implement io.WriteCloser +var _ io.WriteCloser = (*Logger)(nil) + +// Logger is an io.WriteCloser that writes to the specified filename. +// +// Logger opens or creates the logfile on first Write. If the file exists and +// is less than MaxSize megabytes, lumberjack will open and append to that file. +// If the file exists and its size is >= MaxSize megabytes, the file is renamed +// by putting the current time in a timestamp in the name immediately before the +// file's extension (or the end of the filename if there's no extension). A new +// log file is then created using original filename. +// +// Whenever a write would cause the current log file exceed MaxSize megabytes, +// the current file is closed, renamed, and a new log file created with the +// original name. Thus, the filename you give Logger is always the "current" log +// file. +// +// Backups use the log file name given to Logger, in the form +// `name-timestamp.ext` where name is the filename without the extension, +// timestamp is the time at which the log was rotated formatted with the +// time.Time format of `2006-01-02T15-04-05.000` and the extension is the +// original extension. For example, if your Logger.Filename is +// `/var/log/foo/server.log`, a backup created at 6:30pm on Nov 11 2016 would +// use the filename `/var/log/foo/server-2016-11-04T18-30-00.000.log` +// +// Cleaning Up Old Log Files +// +// Whenever a new logfile gets created, old log files may be deleted. The most +// recent files according to the encoded timestamp will be retained, up to a +// number equal to MaxBackups (or all of them if MaxBackups is 0). Any files +// with an encoded timestamp older than MaxAge days are deleted, regardless of +// MaxBackups. Note that the time encoded in the timestamp is the rotation +// time, which may differ from the last time that file was written to. +// +// If MaxBackups and MaxAge are both 0, no old log files will be deleted. +type Logger struct { + // Filename is the file to write logs to. Backup log files will be retained + // in the same directory. It uses -lumberjack.log in + // os.TempDir() if empty. + Filename string `json:"filename" yaml:"filename"` + + // MaxSize is the maximum size in megabytes of the log file before it gets + // rotated. It defaults to 100 megabytes. + MaxSize int `json:"maxsize" yaml:"maxsize"` + + // MaxAge is the maximum number of days to retain old log files based on the + // timestamp encoded in their filename. Note that a day is defined as 24 + // hours and may not exactly correspond to calendar days due to daylight + // savings, leap seconds, etc. The default is not to remove old log files + // based on age. + MaxAge int `json:"maxage" yaml:"maxage"` + + // MaxBackups is the maximum number of old log files to retain. The default + // is to retain all old log files (though MaxAge may still cause them to get + // deleted.) + MaxBackups int `json:"maxbackups" yaml:"maxbackups"` + + // LocalTime determines if the time used for formatting the timestamps in + // backup files is the computer's local time. The default is to use UTC + // time. + LocalTime bool `json:"localtime" yaml:"localtime"` + + // Compress determines if the rotated log files should be compressed + // using gzip. The default is not to perform compression. + Compress bool `json:"compress" yaml:"compress"` + + size int64 + file *os.File + mu sync.Mutex + + millCh chan bool + startMill sync.Once +} + +var ( + // currentTime exists so it can be mocked out by tests. + currentTime = time.Now + + // os_Stat exists so it can be mocked out by tests. + osStat = os.Stat + + // megabyte is the conversion factor between MaxSize and bytes. It is a + // variable so tests can mock it out and not need to write megabytes of data + // to disk. + megabyte = 1024 * 1024 +) + +// Write implements io.Writer. If a write would cause the log file to be larger +// than MaxSize, the file is closed, renamed to include a timestamp of the +// current time, and a new log file is created using the original log file name. +// If the length of the write is greater than MaxSize, an error is returned. +func (l *Logger) Write(p []byte) (n int, err error) { + l.mu.Lock() + defer l.mu.Unlock() + + writeLen := int64(len(p)) + if writeLen > l.max() { + return 0, fmt.Errorf( + "write length %d exceeds maximum file size %d", writeLen, l.max(), + ) + } + + if l.file == nil { + if err = l.openExistingOrNew(len(p)); err != nil { + return 0, err + } + } + + if l.size+writeLen > l.max() { + if err := l.rotate(); err != nil { + return 0, err + } + } + + n, err = l.file.Write(p) + l.size += int64(n) + + return n, err +} + +// Close implements io.Closer, and closes the current logfile. +func (l *Logger) Close() error { + l.mu.Lock() + defer l.mu.Unlock() + return l.close() +} + +// close closes the file if it is open. +func (l *Logger) close() error { + if l.file == nil { + return nil + } + err := l.file.Close() + l.file = nil + return err +} + +// Rotate causes Logger to close the existing log file and immediately create a +// new one. This is a helper function for applications that want to initiate +// rotations outside of the normal rotation rules, such as in response to +// SIGHUP. After rotating, this initiates compression and removal of old log +// files according to the configuration. +func (l *Logger) Rotate() error { + l.mu.Lock() + defer l.mu.Unlock() + return l.rotate() +} + +// rotate closes the current file, moves it aside with a timestamp in the name, +// (if it exists), opens a new file with the original filename, and then runs +// post-rotation processing and removal. +func (l *Logger) rotate() error { + if err := l.close(); err != nil { + return err + } + if err := l.openNew(); err != nil { + return err + } + l.mill() + return nil +} + +// openNew opens a new log file for writing, moving any old log file out of the +// way. This methods assumes the file has already been closed. +func (l *Logger) openNew() error { + err := os.MkdirAll(l.dir(), 0755) + if err != nil { + return fmt.Errorf("can't make directories for new logfile: %s", err) + } + + name := l.filename() + mode := os.FileMode(0600) + info, err := osStat(name) + if err == nil { + // Copy the mode off the old logfile. + mode = info.Mode() + // move the existing file + newname := backupName(name, l.LocalTime) + if err := os.Rename(name, newname); err != nil { + return fmt.Errorf("can't rename log file: %s", err) + } + + // this is a no-op anywhere but linux + if err := chown(name, info); err != nil { + return err + } + } + + // we use truncate here because this should only get called when we've moved + // the file ourselves. if someone else creates the file in the meantime, + // just wipe out the contents. + f, err := os.OpenFile(name, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, mode) + if err != nil { + return fmt.Errorf("can't open new logfile: %s", err) + } + l.file = f + l.size = 0 + return nil +} + +// backupName creates a new filename from the given name, inserting a timestamp +// between the filename and the extension, using the local time if requested +// (otherwise UTC). +func backupName(name string, local bool) string { + dir := filepath.Dir(name) + filename := filepath.Base(name) + ext := filepath.Ext(filename) + prefix := filename[:len(filename)-len(ext)] + t := currentTime() + if !local { + t = t.UTC() + } + + timestamp := t.Format(backupTimeFormat) + return filepath.Join(dir, fmt.Sprintf("%s-%s%s", prefix, timestamp, ext)) +} + +// openExistingOrNew opens the logfile if it exists and if the current write +// would not put it over MaxSize. If there is no such file or the write would +// put it over the MaxSize, a new file is created. +func (l *Logger) openExistingOrNew(writeLen int) error { + l.mill() + + filename := l.filename() + info, err := osStat(filename) + if os.IsNotExist(err) { + return l.openNew() + } + if err != nil { + return fmt.Errorf("error getting log file info: %s", err) + } + + if info.Size()+int64(writeLen) >= l.max() { + return l.rotate() + } + + file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, 0644) + if err != nil { + // if we fail to open the old log file for some reason, just ignore + // it and open a new log file. + return l.openNew() + } + l.file = file + l.size = info.Size() + return nil +} + +// filename generates the name of the logfile from the current time. +func (l *Logger) filename() string { + if l.Filename != "" { + return l.Filename + } + name := filepath.Base(os.Args[0]) + "-lumberjack.log" + return filepath.Join(os.TempDir(), name) +} + +// millRunOnce performs compression and removal of stale log files. +// Log files are compressed if enabled via configuration and old log +// files are removed, keeping at most l.MaxBackups files, as long as +// none of them are older than MaxAge. +func (l *Logger) millRunOnce() error { + if l.MaxBackups == 0 && l.MaxAge == 0 && !l.Compress { + return nil + } + + files, err := l.oldLogFiles() + if err != nil { + return err + } + + var compress, remove []logInfo + + if l.MaxBackups > 0 && l.MaxBackups < len(files) { + preserved := make(map[string]bool) + var remaining []logInfo + for _, f := range files { + // Only count the uncompressed log file or the + // compressed log file, not both. + fn := f.Name() + if strings.HasSuffix(fn, compressSuffix) { + fn = fn[:len(fn)-len(compressSuffix)] + } + preserved[fn] = true + + if len(preserved) > l.MaxBackups { + remove = append(remove, f) + } else { + remaining = append(remaining, f) + } + } + files = remaining + } + if l.MaxAge > 0 { + diff := time.Duration(int64(24*time.Hour) * int64(l.MaxAge)) + cutoff := currentTime().Add(-1 * diff) + + var remaining []logInfo + for _, f := range files { + if f.timestamp.Before(cutoff) { + remove = append(remove, f) + } else { + remaining = append(remaining, f) + } + } + files = remaining + } + + if l.Compress { + for _, f := range files { + if !strings.HasSuffix(f.Name(), compressSuffix) { + compress = append(compress, f) + } + } + } + + for _, f := range remove { + errRemove := os.Remove(filepath.Join(l.dir(), f.Name())) + if err == nil && errRemove != nil { + err = errRemove + } + } + for _, f := range compress { + fn := filepath.Join(l.dir(), f.Name()) + errCompress := compressLogFile(fn, fn+compressSuffix) + if err == nil && errCompress != nil { + err = errCompress + } + } + + return err +} + +// millRun runs in a goroutine to manage post-rotation compression and removal +// of old log files. +func (l *Logger) millRun() { + for range l.millCh { + // what am I going to do, log this? + _ = l.millRunOnce() + } +} + +// mill performs post-rotation compression and removal of stale log files, +// starting the mill goroutine if necessary. +func (l *Logger) mill() { + l.startMill.Do(func() { + l.millCh = make(chan bool, 1) + go l.millRun() + }) + select { + case l.millCh <- true: + default: + } +} + +// oldLogFiles returns the list of backup log files stored in the same +// directory as the current log file, sorted by ModTime +func (l *Logger) oldLogFiles() ([]logInfo, error) { + files, err := ioutil.ReadDir(l.dir()) + if err != nil { + return nil, fmt.Errorf("can't read log file directory: %s", err) + } + logFiles := []logInfo{} + + prefix, ext := l.prefixAndExt() + + for _, f := range files { + if f.IsDir() { + continue + } + if t, err := l.timeFromName(f.Name(), prefix, ext); err == nil { + logFiles = append(logFiles, logInfo{t, f}) + continue + } + if t, err := l.timeFromName(f.Name(), prefix, ext+compressSuffix); err == nil { + logFiles = append(logFiles, logInfo{t, f}) + continue + } + // error parsing means that the suffix at the end was not generated + // by lumberjack, and therefore it's not a backup file. + } + + sort.Sort(byFormatTime(logFiles)) + + return logFiles, nil +} + +// timeFromName extracts the formatted time from the filename by stripping off +// the filename's prefix and extension. This prevents someone's filename from +// confusing time.parse. +func (l *Logger) timeFromName(filename, prefix, ext string) (time.Time, error) { + if !strings.HasPrefix(filename, prefix) { + return time.Time{}, errors.New("mismatched prefix") + } + if !strings.HasSuffix(filename, ext) { + return time.Time{}, errors.New("mismatched extension") + } + ts := filename[len(prefix) : len(filename)-len(ext)] + return time.Parse(backupTimeFormat, ts) +} + +// max returns the maximum size in bytes of log files before rolling. +func (l *Logger) max() int64 { + if l.MaxSize == 0 { + return int64(defaultMaxSize * megabyte) + } + return int64(l.MaxSize) * int64(megabyte) +} + +// dir returns the directory for the current filename. +func (l *Logger) dir() string { + return filepath.Dir(l.filename()) +} + +// prefixAndExt returns the filename part and extension part from the Logger's +// filename. +func (l *Logger) prefixAndExt() (prefix, ext string) { + filename := filepath.Base(l.filename()) + ext = filepath.Ext(filename) + prefix = filename[:len(filename)-len(ext)] + "-" + return prefix, ext +} + +// compressLogFile compresses the given log file, removing the +// uncompressed log file if successful. +func compressLogFile(src, dst string) (err error) { + f, err := os.Open(src) + if err != nil { + return fmt.Errorf("failed to open log file: %v", err) + } + defer f.Close() + + fi, err := osStat(src) + if err != nil { + return fmt.Errorf("failed to stat log file: %v", err) + } + + if err := chown(dst, fi); err != nil { + return fmt.Errorf("failed to chown compressed log file: %v", err) + } + + // If this file already exists, we presume it was created by + // a previous attempt to compress the log file. + gzf, err := os.OpenFile(dst, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, fi.Mode()) + if err != nil { + return fmt.Errorf("failed to open compressed log file: %v", err) + } + defer gzf.Close() + + gz := gzip.NewWriter(gzf) + + defer func() { + if err != nil { + os.Remove(dst) + err = fmt.Errorf("failed to compress log file: %v", err) + } + }() + + if _, err := io.Copy(gz, f); err != nil { + return err + } + if err := gz.Close(); err != nil { + return err + } + if err := gzf.Close(); err != nil { + return err + } + + if err := f.Close(); err != nil { + return err + } + if err := os.Remove(src); err != nil { + return err + } + + return nil +} + +// logInfo is a convenience struct to return the filename and its embedded +// timestamp. +type logInfo struct { + timestamp time.Time + os.FileInfo +} + +// byFormatTime sorts by newest time formatted in the name. +type byFormatTime []logInfo + +func (b byFormatTime) Less(i, j int) bool { + return b[i].timestamp.After(b[j].timestamp) +} + +func (b byFormatTime) Swap(i, j int) { + b[i], b[j] = b[j], b[i] +} + +func (b byFormatTime) Len() int { + return len(b) +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 0b7adc4459..f35a43983a 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -226,6 +226,9 @@ github.com/modern-go/concurrent # github.com/modern-go/reflect2 v1.0.2 ## explicit; go 1.12 github.com/modern-go/reflect2 +# github.com/orandin/lumberjackrus v1.0.1 +## explicit +github.com/orandin/lumberjackrus # github.com/pkg/errors v0.9.1 ## explicit github.com/pkg/errors @@ -446,6 +449,9 @@ golang.zx2c4.com/wireguard/rwcancel golang.zx2c4.com/wireguard/tun golang.zx2c4.com/wireguard/tun/wintun golang.zx2c4.com/wireguard/tun/wintun/memmod +# gopkg.in/natefinch/lumberjack.v2 v2.2.1 +## explicit; go 1.13 +gopkg.in/natefinch/lumberjack.v2 # gopkg.in/yaml.v2 v2.4.0 ## explicit; go 1.15 gopkg.in/yaml.v2 From e56c93f31376a64a6ae8c5d235ed9adb8e485c91 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Thu, 23 Mar 2023 12:50:01 -0500 Subject: [PATCH 10/62] Cli refactor (#1515) * move constants from visorconfig to skyenv package * small changes on skywire-cli rtfind to print help on no arguments or use the local / running visor's public key as the first argument if one argument is given * change skywire-cli skysocksc to skywire-cli proxy * small changes on skywire-cli mdisc * add proxy list command, add related rpc methods * small changes to proxy subcommands * add skywire-cli ut subcommand to query uptime tracker * add skyenv files and cmd/skywire-cli/commands/ut/ * improve skywire-cli proxy and skywire-cli vpn subcommands * improve skywire-cli ut subcommand with flags * improve skywire-cli ut subcommand. Check uptime for single PK, return a count of online visors * add flag to specify alternative uptime tracker to skywire-cli ut command * fix skywire-cli ut command * fix various errors indicated by CI * fix build constraints for skyenv package * temporary fix for survey error on windows & mac * fix imports * fix survey logic for mac and windows * remove build constraints for survey * fix package comments for survey --- cmd/skywire-cli/commands/config/auto.go | 3 +- cmd/skywire-cli/commands/mdisc/root.go | 38 ++- cmd/skywire-cli/commands/proxy/proxy.go | 225 ++++++++++++++++++ cmd/skywire-cli/commands/proxy/root.go | 24 ++ cmd/skywire-cli/commands/root.go | 4 +- cmd/skywire-cli/commands/rtfind/root.go | 63 ++++- cmd/skywire-cli/commands/skysocksc/root.go | 12 - .../commands/skysocksc/skysocksc.go | 122 ---------- cmd/skywire-cli/commands/ut/root.go | 133 +++++++++++ cmd/skywire-cli/commands/visor/transports.go | 4 +- cmd/skywire-cli/commands/vpn/root.go | 12 +- cmd/skywire-cli/commands/vpn/vvpn.go | 171 ++++++------- cmd/skywire-cli/commands/vpn/vvpnui.go | 98 ++++++++ go.mod | 1 - go.sum | 2 - pkg/skyenv/skyenv.go | 12 +- pkg/skyenv/skyenv_darwin.go | 34 +++ pkg/skyenv/skyenv_linux.go | 31 +++ pkg/skyenv/skyenv_windows.go | 34 +++ pkg/visor/api.go | 22 ++ pkg/visor/rpc.go | 16 +- pkg/visor/rpc_client.go | 17 +- pkg/visor/visorconfig/survey.go | 1 + pkg/visor/visorconfig/values.go | 30 ++- pkg/visor/visorconfig/values_darwin.go | 53 +---- pkg/visor/visorconfig/values_linux.go | 58 +---- pkg/visor/visorconfig/values_windows.go | 53 +---- vendor/modules.txt | 3 - vendor/periph.io/x/periph/AUTHORS | 15 -- vendor/periph.io/x/periph/CONTRIBUTORS | 41 ---- vendor/periph.io/x/periph/LICENSE | 202 ---------------- .../periph.io/x/periph/host/distro/devtree.go | 84 ------- .../periph.io/x/periph/host/distro/distro.go | 189 --------------- .../x/periph/host/distro/distro_arm.go | 7 - .../x/periph/host/distro/distro_arm64.go | 9 - .../x/periph/host/distro/distro_linux.go | 7 - .../x/periph/host/distro/distro_nonarm.go | 9 - .../x/periph/host/distro/distro_nonlinux.go | 9 - 38 files changed, 859 insertions(+), 989 deletions(-) create mode 100644 cmd/skywire-cli/commands/proxy/proxy.go create mode 100644 cmd/skywire-cli/commands/proxy/root.go delete mode 100644 cmd/skywire-cli/commands/skysocksc/root.go delete mode 100644 cmd/skywire-cli/commands/skysocksc/skysocksc.go create mode 100644 cmd/skywire-cli/commands/ut/root.go create mode 100644 cmd/skywire-cli/commands/vpn/vvpnui.go create mode 100644 pkg/skyenv/skyenv_darwin.go create mode 100644 pkg/skyenv/skyenv_linux.go create mode 100644 pkg/skyenv/skyenv_windows.go delete mode 100644 vendor/periph.io/x/periph/AUTHORS delete mode 100644 vendor/periph.io/x/periph/CONTRIBUTORS delete mode 100644 vendor/periph.io/x/periph/LICENSE delete mode 100644 vendor/periph.io/x/periph/host/distro/devtree.go delete mode 100644 vendor/periph.io/x/periph/host/distro/distro.go delete mode 100644 vendor/periph.io/x/periph/host/distro/distro_arm.go delete mode 100644 vendor/periph.io/x/periph/host/distro/distro_arm64.go delete mode 100644 vendor/periph.io/x/periph/host/distro/distro_linux.go delete mode 100644 vendor/periph.io/x/periph/host/distro/distro_nonarm.go delete mode 100644 vendor/periph.io/x/periph/host/distro/distro_nonlinux.go diff --git a/cmd/skywire-cli/commands/config/auto.go b/cmd/skywire-cli/commands/config/auto.go index fd6ada13fd..1ddaf4beca 100644 --- a/cmd/skywire-cli/commands/config/auto.go +++ b/cmd/skywire-cli/commands/config/auto.go @@ -1,5 +1,4 @@ -//go:build linux -// +build linux +//go:build exclude // Package cliconfig cmd/skywire-cli/commands/config/auto.go package cliconfig diff --git a/cmd/skywire-cli/commands/mdisc/root.go b/cmd/skywire-cli/commands/mdisc/root.go index b630369df9..4add3a9357 100644 --- a/cmd/skywire-cli/commands/mdisc/root.go +++ b/cmd/skywire-cli/commands/mdisc/root.go @@ -21,6 +21,8 @@ import ( ) var mdAddr string + +// var allEntries bool var masterLogger = logging.NewMasterLogger() var packageLogger = masterLogger.PackageLogger("mdisc:disc") @@ -29,7 +31,8 @@ func init() { entryCmd, availableServersCmd, ) - entryCmd.PersistentFlags().StringVar(&mdAddr, "addr", utilenv.DmsgDiscAddr, "address of DMSG discovery server\n") + entryCmd.PersistentFlags().StringVarP(&mdAddr, "addr", "a", "", "DMSG discovery server address\n"+utilenv.DmsgDiscAddr) + // entryCmd.PersistentFlags().BoolVarP(&allEntries, "entries", "e", "", "get all entries") availableServersCmd.PersistentFlags().StringVar(&mdAddr, "addr", utilenv.DmsgDiscAddr, "address of DMSG discovery server\n") var helpflag bool RootCmd.Flags().BoolVarP(&helpflag, "help", "h", false, "help for "+RootCmd.Use) @@ -45,17 +48,30 @@ var RootCmd = &cobra.Command{ var entryCmd = &cobra.Command{ Use: "entry ", Short: "Fetch an entry", - Args: cobra.MinimumNArgs(1), + // Args: cobra.MinimumNArgs(1), Run: func(cmd *cobra.Command, args []string) { - ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) - defer cancel() - pk := internal.ParsePK(cmd.Flags(), "visor-public-key", args[0]) - - masterLogger.SetLevel(logrus.InfoLevel) - - entry, err := disc.NewHTTP(mdAddr, &http.Client{}, packageLogger).Entry(ctx, pk) - internal.Catch(cmd.Flags(), err) - internal.PrintOutput(cmd.Flags(), entry, fmt.Sprintln(entry)) + //print help on no args + if len(args) == 0 { + cmd.Help() //nolint + } else { + if mdAddr == "" { + mdAddr = utilenv.DmsgDiscAddr + } + ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) + defer cancel() + pk := internal.ParsePK(cmd.Flags(), "visor-public-key", args[0]) + + masterLogger.SetLevel(logrus.InfoLevel) + + //TODO: fetch all entries + // if allEntries { + // entries, err := disc.NewHTTP(mdAddr, &http.Client{}, packageLogger).AvailableServers(ctx) + // } + + entry, err := disc.NewHTTP(mdAddr, &http.Client{}, packageLogger).Entry(ctx, pk) + internal.Catch(cmd.Flags(), err) + internal.PrintOutput(cmd.Flags(), entry, fmt.Sprintln(entry)) + } }, } diff --git a/cmd/skywire-cli/commands/proxy/proxy.go b/cmd/skywire-cli/commands/proxy/proxy.go new file mode 100644 index 0000000000..df7b4484f6 --- /dev/null +++ b/cmd/skywire-cli/commands/proxy/proxy.go @@ -0,0 +1,225 @@ +// Package skysocksc cmd/skywire-cli/commands/skysocksc/skysocks.go +package skysocksc + +import ( + "bytes" + "fmt" + "math/rand" + "os" + "strings" + "text/tabwriter" + "time" + + "github.com/spf13/cobra" + + "github.com/skycoin/skywire-utilities/pkg/buildinfo" + clirpc "github.com/skycoin/skywire/cmd/skywire-cli/commands/rpc" + "github.com/skycoin/skywire/cmd/skywire-cli/internal" + "github.com/skycoin/skywire/pkg/app/appserver" + "github.com/skycoin/skywire/pkg/servicedisc" +) + +func init() { + RootCmd.PersistentFlags().StringVar(&clirpc.Addr, "rpc", "localhost:3435", "RPC server address") + RootCmd.AddCommand( + proxyStartCmd, + proxyStopCmd, + proxyStatusCmd, + proxyListCmd, + ) + version := buildinfo.Version() + if version == "unknown" { + version = "" + } + proxyStartCmd.Flags().StringVarP(&pk, "pk", "k", "", "server public key") + proxyListCmd.Flags().StringVarP(&pk, "pk", "k", "", "check proxy service discovery for public key") + proxyListCmd.Flags().IntVarP(&count, "num", "n", 0, "number of results to return") + proxyListCmd.Flags().BoolVarP(&isUnFiltered, "unfilter", "u", false, "provide unfiltered results") + proxyListCmd.Flags().StringVarP(&ver, "ver", "v", version, "filter results by version") + proxyListCmd.Flags().StringVarP(&country, "country", "c", "", "filter results by country") + proxyListCmd.Flags().BoolVarP(&isStats, "stats", "s", false, "return only a count of the results") +} + +var proxyStartCmd = &cobra.Command{ + Use: "start", + Short: "start the proxy client", + // Args: cobra.MinimumNArgs(0), + Run: func(cmd *cobra.Command, args []string) { + //check that a valid public key is provided + err := pubkey.Set(pk) + if err != nil { + if len(args) > 0 { + err := pubkey.Set(args[0]) + if err != nil { + internal.PrintFatalError(cmd.Flags(), err) + } + } else { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Invalid or missing public key")) + } + } + //connect to RPC + rpcClient, err := clirpc.Client(cmd.Flags()) + if err != nil { + os.Exit(1) + } + //TODO: implement operational timeout + internal.Catch(cmd.Flags(), rpcClient.StartSkysocksClient(pubkey.String())) + internal.PrintOutput(cmd.Flags(), nil, "Starting.") + startProcess := true + for startProcess { + time.Sleep(time.Second * 1) + internal.PrintOutput(cmd.Flags(), nil, ".") + states, err := rpcClient.Apps() + internal.Catch(cmd.Flags(), err) + + type output struct { + AppError string `json:"app_error,omitempty"` + } + + for _, state := range states { + if state.Name == "skysocks-client" { + if state.Status == appserver.AppStatusRunning { + startProcess = false + internal.PrintOutput(cmd.Flags(), nil, fmt.Sprintln("\nRunning!")) + } + if state.Status == appserver.AppStatusErrored { + startProcess = false + out := output{ + AppError: state.DetailedStatus, + } + internal.PrintOutput(cmd.Flags(), out, fmt.Sprintln("\nError! > "+state.DetailedStatus)) + } + } + } + } + }, +} + +var proxyStopCmd = &cobra.Command{ + Use: "stop", + Short: "stop the proxy client", + Run: func(cmd *cobra.Command, args []string) { + rpcClient, err := clirpc.Client(cmd.Flags()) + if err != nil { + os.Exit(1) + } + internal.Catch(cmd.Flags(), rpcClient.StopSkysocksClient()) + internal.PrintOutput(cmd.Flags(), "OK", fmt.Sprintln("OK")) + }, +} + +var proxyStatusCmd = &cobra.Command{ + Use: "status", + Short: "proxy client(s) status", + Run: func(cmd *cobra.Command, args []string) { + //TODO: check status of multiple clients + rpcClient, err := clirpc.Client(cmd.Flags()) + if err != nil { + os.Exit(1) + } + states, err := rpcClient.Apps() + internal.Catch(cmd.Flags(), err) + + var b bytes.Buffer + w := tabwriter.NewWriter(&b, 0, 0, 5, ' ', tabwriter.TabIndent) + internal.Catch(cmd.Flags(), err) + type appState struct { + Status string `json:"status"` + } + var jsonAppStatus appState + for _, state := range states { + if state.Name == "skysocks-client" { + + status := "stopped" + if state.Status == appserver.AppStatusRunning { + status = "running" + } + if state.Status == appserver.AppStatusErrored { + status = "errored" + } + jsonAppStatus = appState{ + Status: status, + } + _, err = fmt.Fprintf(w, "%s\n", status) + internal.Catch(cmd.Flags(), err) + } + } + internal.Catch(cmd.Flags(), w.Flush()) + internal.PrintOutput(cmd.Flags(), jsonAppStatus, b.String()) + }, +} + +var proxyListCmd = &cobra.Command{ + Use: "list", + Short: "List servers", + Long: "List proxy servers from service discovery\n http://sd.skycoin.com/api/services?type=proxy\n http://sd.skycoin.com/api/services?type=vpn&country=US", + Run: func(cmd *cobra.Command, args []string) { + if pk != "" { + err := pubkey.Set(pk) + if err != nil { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Invalid or missing public key")) + } + } + rpcClient, err := clirpc.Client(cmd.Flags()) + if err != nil { + internal.PrintFatalRPCError(cmd.Flags(), err) + } + if isUnFiltered { + ver = "" + country = "" + } + servers, err := rpcClient.ProxyServers(ver, country) + if err != nil { + internal.PrintFatalRPCError(cmd.Flags(), err) + } + if len(servers) == 0 { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("No Servers found")) + } + if isStats { + internal.PrintOutput(cmd.Flags(), fmt.Sprintf("%d Servers\n", len(servers)), fmt.Sprintf("%d Servers\n", len(servers))) + } else { + var msg string + var results []string + limit := len(servers) + if count > 0 && count < limit { + limit = count + } + if pk != "" { + for _, server := range servers { + if strings.Replace(server.Addr.String(), ":44", "", 1) == pk { + results = append(results, server.Addr.String()) + } + } + } else { + for _, server := range servers { + results = append(results, server.Addr.String()) + } + } + rand.Shuffle(len(results), func(i, j int) { + results[i], results[j] = results[j], results[i] + }) + for i := 0; i < limit && i < len(results); i++ { + msg += strings.Replace(results[i], ":44", "", 1) + if server := findServerByPK(servers, results[i]); server != nil && server.Geo != nil { + if server.Geo.Country != "" { + msg += fmt.Sprintf(" | %s\n", server.Geo.Country) + } else { + msg += "\n" + } + } else { + msg += "\n" + } + } + internal.PrintOutput(cmd.Flags(), servers, msg) + } + }, +} + +func findServerByPK(servers []servicedisc.Service, addr string) *servicedisc.Service { + for _, server := range servers { + if server.Addr.String() == addr { + return &server + } + } + return nil +} diff --git a/cmd/skywire-cli/commands/proxy/root.go b/cmd/skywire-cli/commands/proxy/root.go new file mode 100644 index 0000000000..ed11f18c48 --- /dev/null +++ b/cmd/skywire-cli/commands/proxy/root.go @@ -0,0 +1,24 @@ +// Package skysocksc root.go +package skysocksc + +import ( + "github.com/spf13/cobra" + + "github.com/skycoin/skywire-utilities/pkg/cipher" +) + +var ( + isUnFiltered bool + ver string + country string + isStats bool + pubkey cipher.PubKey + pk string + count int +) + +// RootCmd contains commands that interact with the skywire-visor +var RootCmd = &cobra.Command{ + Use: "proxy", + Short: "Skysocks client", +} diff --git a/cmd/skywire-cli/commands/root.go b/cmd/skywire-cli/commands/root.go index 57dd9328f8..716ca4ff61 100644 --- a/cmd/skywire-cli/commands/root.go +++ b/cmd/skywire-cli/commands/root.go @@ -18,12 +18,13 @@ import ( clidmsgpty "github.com/skycoin/skywire/cmd/skywire-cli/commands/dmsgpty" clilog "github.com/skycoin/skywire/cmd/skywire-cli/commands/log" climdisc "github.com/skycoin/skywire/cmd/skywire-cli/commands/mdisc" + cliskysocksc "github.com/skycoin/skywire/cmd/skywire-cli/commands/proxy" clireward "github.com/skycoin/skywire/cmd/skywire-cli/commands/reward" clirtfind "github.com/skycoin/skywire/cmd/skywire-cli/commands/rtfind" cliskyfwd "github.com/skycoin/skywire/cmd/skywire-cli/commands/skyfwd" cliskyrev "github.com/skycoin/skywire/cmd/skywire-cli/commands/skyrev" - cliskysocksc "github.com/skycoin/skywire/cmd/skywire-cli/commands/skysocksc" clisurvey "github.com/skycoin/skywire/cmd/skywire-cli/commands/survey" + cliut "github.com/skycoin/skywire/cmd/skywire-cli/commands/ut" clivisor "github.com/skycoin/skywire/cmd/skywire-cli/commands/visor" clivpn "github.com/skycoin/skywire/cmd/skywire-cli/commands/vpn" "github.com/skycoin/skywire/cmd/skywire-cli/internal" @@ -181,6 +182,7 @@ func init() { clidmsgpty.RootCmd, clivisor.RootCmd, clivpn.RootCmd, + cliut.RootCmd, cliskyfwd.RootCmd, cliskyrev.RootCmd, clireward.RootCmd, diff --git a/cmd/skywire-cli/commands/rtfind/root.go b/cmd/skywire-cli/commands/rtfind/root.go index c0418e4377..86873eaca2 100644 --- a/cmd/skywire-cli/commands/rtfind/root.go +++ b/cmd/skywire-cli/commands/rtfind/root.go @@ -4,6 +4,7 @@ package clirtfind import ( "fmt" "net/http" + "os" "time" "github.com/spf13/cobra" @@ -11,21 +12,25 @@ import ( "github.com/skycoin/skywire-utilities/pkg/cipher" utilenv "github.com/skycoin/skywire-utilities/pkg/skyenv" + clirpc "github.com/skycoin/skywire/cmd/skywire-cli/commands/rpc" "github.com/skycoin/skywire/cmd/skywire-cli/internal" "github.com/skycoin/skywire/pkg/routefinder/rfclient" "github.com/skycoin/skywire/pkg/routing" + "github.com/skycoin/skywire/pkg/skyenv" + "github.com/skycoin/skywire/pkg/visor/visorconfig" ) var frAddr string var frMinHops, frMaxHops uint16 var timeout time.Duration +var skywireconfig string func init() { RootCmd.Flags().SortFlags = false - RootCmd.Flags().Uint16VarP(&frMinHops, "min-hops", "n", 1, "minimum hops") - RootCmd.Flags().Uint16VarP(&frMaxHops, "max-hops", "x", 1000, "maximum hops") + RootCmd.Flags().Uint16VarP(&frMinHops, "min", "n", 1, "minimum hops") + RootCmd.Flags().Uint16VarP(&frMaxHops, "max", "x", 1000, "maximum hops") RootCmd.Flags().DurationVarP(&timeout, "timeout", "t", 10*time.Second, "request timeout") - RootCmd.Flags().StringVarP(&frAddr, "addr", "a", utilenv.RouteFinderAddr, "route finder service address\n") + RootCmd.Flags().StringVarP(&frAddr, "addr", "a", "", "route finder service address\n"+utilenv.RouteFinderAddr) var helpflag bool RootCmd.Flags().BoolVarP(&helpflag, "help", "h", false, "help for "+RootCmd.Use) RootCmd.Flags().MarkHidden("help") //nolint @@ -33,13 +38,56 @@ func init() { // RootCmd is the command that queries the route finder. var RootCmd = &cobra.Command{ - Use: "rtfind ", + Use: "rtfind | ", Short: "Query the Route Finder", - Args: cobra.MinimumNArgs(2), + Long: `Query the Route Finder +Assumes the local visor public key as an argument if only one argument is given`, + // Args: cobra.MinimumNArgs(2), Run: func(cmd *cobra.Command, args []string) { - rfc := rfclient.NewHTTP(frAddr, timeout, &http.Client{}, nil) - var srcPK, dstPK cipher.PubKey + var pk string + //print the help menu if no arguments + if len(args) == 0 { + cmd.Help() //nolint + os.Exit(0) + } + //set the routefinder address. It's not used as the default value to fix the display of the help command + if frAddr == "" { + frAddr = utilenv.RouteFinderAddr + } + //assume the local public key as the first argument if only 1 argument is given ; resize args array to 2 and move the first argument to the second one + if len(args) == 1 { + rpcClient, err := clirpc.Client(cmd.Flags()) + if err == nil { + overview, err := rpcClient.Overview() + if err == nil { + pk = overview.PubKey.String() + } + } + if err != nil { + //visor is not running, try to get pk from config + _, err := os.Stat(skyenv.SkywirePath + "/" + skyenv.ConfigJSON) + if err == nil { + //default to using the package config + skywireconfig = skyenv.SkywirePath + "/" + skyenv.ConfigJSON + } else { + //check for default config in current dir + _, err := os.Stat(skyenv.ConfigName) + if err == nil { + //use skywire-config.json in current dir + skywireconfig = skyenv.ConfigName + } + } + conf, err := visorconfig.ReadFile(skywireconfig) + if err != nil { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Failed to read config: %v", err)) + } + pk = conf.PK.Hex() + } + args = append(args[:1], args[0:]...) + copy(args, []string{pk}) + } + rfc := rfclient.NewHTTP(frAddr, timeout, &http.Client{}, nil) internal.Catch(cmd.Flags(), srcPK.Set(args[0])) internal.Catch(cmd.Flags(), dstPK.Set(args[1])) forward := [2]cipher.PubKey{srcPK, dstPK} @@ -48,7 +96,6 @@ var RootCmd = &cobra.Command{ routes, err := rfc.FindRoutes(ctx, []routing.PathEdges{forward, backward}, &rfclient.RouteOptions{MinHops: frMinHops, MaxHops: frMaxHops}) internal.Catch(cmd.Flags(), err) - output := fmt.Sprintf("forward: %v\n reverse: %v", routes[forward][0], routes[backward][0]) outputJSON := struct { Forward []routing.Hop `json:"forward"` diff --git a/cmd/skywire-cli/commands/skysocksc/root.go b/cmd/skywire-cli/commands/skysocksc/root.go deleted file mode 100644 index ecdb76e73d..0000000000 --- a/cmd/skywire-cli/commands/skysocksc/root.go +++ /dev/null @@ -1,12 +0,0 @@ -// Package skysocksc root.go -package skysocksc - -import ( - "github.com/spf13/cobra" -) - -// RootCmd contains commands that interact with the skywire-visor -var RootCmd = &cobra.Command{ - Use: "skysocksc", - Short: "controls for Skysocks client", -} diff --git a/cmd/skywire-cli/commands/skysocksc/skysocksc.go b/cmd/skywire-cli/commands/skysocksc/skysocksc.go deleted file mode 100644 index 5a35d034f3..0000000000 --- a/cmd/skywire-cli/commands/skysocksc/skysocksc.go +++ /dev/null @@ -1,122 +0,0 @@ -// Package skysocksc cmd/skywire-cli/commands/skysocksc/skysocks.go -package skysocksc - -import ( - "bytes" - "fmt" - "os" - "text/tabwriter" - "time" - - "github.com/spf13/cobra" - - clirpc "github.com/skycoin/skywire/cmd/skywire-cli/commands/rpc" - "github.com/skycoin/skywire/cmd/skywire-cli/internal" - "github.com/skycoin/skywire/pkg/app/appserver" -) - -var pk string - -func init() { - RootCmd.PersistentFlags().StringVar(&clirpc.Addr, "rpc", "localhost:3435", "RPC server address") - RootCmd.AddCommand( - skysockscStartCmd, - skysockscStopCmd, - skysockscStatusCmd, - ) - skysockscStartCmd.Flags().StringVar(&pk, "pk", "", "skysocks server public key") -} - -var skysockscStartCmd = &cobra.Command{ - Use: "start", - Short: "start the skysocks-client", - Args: cobra.MinimumNArgs(0), - Run: func(cmd *cobra.Command, args []string) { - rpcClient, err := clirpc.Client(cmd.Flags()) - if err != nil { - os.Exit(1) - } - internal.Catch(cmd.Flags(), rpcClient.StartSkysocksClient(pk)) - internal.PrintOutput(cmd.Flags(), nil, "Starting.") - startProcess := true - for startProcess { - time.Sleep(time.Second * 1) - internal.PrintOutput(cmd.Flags(), nil, ".") - states, err := rpcClient.Apps() - internal.Catch(cmd.Flags(), err) - - type output struct { - AppError string `json:"app_error,omitempty"` - } - - for _, state := range states { - if state.Name == "skysocks-client" { - if state.Status == appserver.AppStatusRunning { - startProcess = false - internal.PrintOutput(cmd.Flags(), nil, fmt.Sprintln("\nRunning!")) - } - if state.Status == appserver.AppStatusErrored { - startProcess = false - out := output{ - AppError: state.DetailedStatus, - } - internal.PrintOutput(cmd.Flags(), out, fmt.Sprintln("\nError! > "+state.DetailedStatus)) - } - } - } - } - }, -} - -var skysockscStopCmd = &cobra.Command{ - Use: "stop", - Short: "stop the skysocks-client", - Run: func(cmd *cobra.Command, _ []string) { - rpcClient, err := clirpc.Client(cmd.Flags()) - if err != nil { - os.Exit(1) - } - internal.Catch(cmd.Flags(), rpcClient.StopSkysocksClient()) - internal.PrintOutput(cmd.Flags(), "OK", fmt.Sprintln("OK")) - }, -} - -var skysockscStatusCmd = &cobra.Command{ - Use: "status", - Short: "skysocks-client status", - Run: func(cmd *cobra.Command, _ []string) { - rpcClient, err := clirpc.Client(cmd.Flags()) - if err != nil { - os.Exit(1) - } - states, err := rpcClient.Apps() - internal.Catch(cmd.Flags(), err) - - var b bytes.Buffer - w := tabwriter.NewWriter(&b, 0, 0, 5, ' ', tabwriter.TabIndent) - internal.Catch(cmd.Flags(), err) - type appState struct { - Status string `json:"status"` - } - var jsonAppStatus appState - for _, state := range states { - if state.Name == "skysocks-client" { - - status := "stopped" - if state.Status == appserver.AppStatusRunning { - status = "running" - } - if state.Status == appserver.AppStatusErrored { - status = "errored" - } - jsonAppStatus = appState{ - Status: status, - } - _, err = fmt.Fprintf(w, "%s\n", status) - internal.Catch(cmd.Flags(), err) - } - } - internal.Catch(cmd.Flags(), w.Flush()) - internal.PrintOutput(cmd.Flags(), jsonAppStatus, b.String()) - }, -} diff --git a/cmd/skywire-cli/commands/ut/root.go b/cmd/skywire-cli/commands/ut/root.go new file mode 100644 index 0000000000..c6586c3898 --- /dev/null +++ b/cmd/skywire-cli/commands/ut/root.go @@ -0,0 +1,133 @@ +// Package cliut cmd/skywire-cli/ut/root.go +package cliut + +import ( + "encoding/json" + "fmt" + "io" + "log" + "net/http" + "os" + "strconv" + "time" + + "github.com/spf13/cobra" + + "github.com/skycoin/skywire-utilities/pkg/cipher" + "github.com/skycoin/skywire/cmd/skywire-cli/internal" +) + +var ( + pubkey cipher.PubKey + pk string + thisPk string + online bool + isStats bool + url string +) + +var minUT int + +func init() { + RootCmd.Flags().StringVarP(&pk, "pk", "k", "", "check uptime for the specified key") + RootCmd.Flags().BoolVarP(&online, "on", "o", false, "list currently online visors") + RootCmd.Flags().BoolVarP(&isStats, "stats", "s", false, "count the number of results") + RootCmd.Flags().IntVarP(&minUT, "min", "n", 75, "list visors meeting minimum uptime") + RootCmd.Flags().StringVarP(&url, "url", "u", "", "specify alternative uptime tracker url\ndefault: http://ut.skywire.skycoin.com/uptimes?v=v2") +} + +// RootCmd contains commands that interact with the skywire-visor +var RootCmd = &cobra.Command{ + Use: "ut", + Short: "query uptime tracker", + Long: "query uptime tracker\n Check local visor daily uptime percent with:\n skywire-cli ut -k $(skywire-cli visor pk)", + Run: func(cmd *cobra.Command, _ []string) { + if url == "" { + url = "http://ut.skywire.skycoin.com/uptimes?v=v2" + } + now := time.Now() + if pk != "" { + err := pubkey.Set(pk) + if err != nil { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Invalid or missing public key")) + } else { + url += "&visors=" + pubkey.String() + } + } + utClient := http.Client{ + Timeout: time.Second * 15, // Timeout after 15 seconds + } + + req, err := http.NewRequest(http.MethodGet, url, nil) + if err != nil { + log.Fatal(err) + } + + res, getErr := utClient.Do(req) + if getErr != nil { + log.Fatal(getErr) + } + + if res.Body != nil { + defer res.Body.Close() //nolint: errcheck + } + + body, readErr := io.ReadAll(res.Body) + if readErr != nil { + log.Fatal(readErr) + } + + startDate := time.Date(now.Year(), now.Month(), -1, 0, 0, 0, 0, now.Location()).Format("2006-01-02") + endDate := time.Date(now.Year(), now.Month()+1, 1, 0, 0, 0, 0, now.Location()).Add(-1 * time.Second).Format("2006-01-02") + uts := uptimes{} + jsonErr := json.Unmarshal(body, &uts) + if jsonErr != nil { + log.Fatal(jsonErr) + } + var msg []string + for _, j := range uts { + thisPk = j.Pk + if online { + if j.On { + msg = append(msg, fmt.Sprintf(thisPk+"\n")) + } + } else { + selectedDaily(j.Daily, startDate, endDate) + } + } + if online { + if isStats { + internal.PrintOutput(cmd.Flags(), fmt.Sprintf("%d visors online\n", len(msg)), fmt.Sprintf("%d visors online\n", len(msg))) + os.Exit(0) + } + for _, i := range msg { + internal.PrintOutput(cmd.Flags(), i, i) + } + } + }, +} + +func selectedDaily(data map[string]string, startDate, endDate string) { + for date, uptime := range data { + if date >= startDate && date <= endDate { + utfloat, err := strconv.ParseFloat(uptime, 64) + if err != nil { + log.Fatal(err) + } + if utfloat >= float64(minUT) { + fmt.Print(thisPk) + fmt.Print(" ") + fmt.Println(date, uptime) + } + } + } +} + +type uptimes []struct { + Pk string `json:"pk"` + Up int `json:"up"` + Down int `json:"down"` + Pct float64 `json:"pct"` + On bool `json:"on"` + Daily map[string]string `json:"daily,omitempty"` +} diff --git a/cmd/skywire-cli/commands/visor/transports.go b/cmd/skywire-cli/commands/visor/transports.go index 5d1a37c30a..b1b25a9ae3 100644 --- a/cmd/skywire-cli/commands/visor/transports.go +++ b/cmd/skywire-cli/commands/visor/transports.go @@ -53,7 +53,9 @@ var tpCmd = &cobra.Command{ Each Transport is represented as a unique 16 byte (128 bit) UUID value called the Transport ID and has a Transport Type that identifies - a specific implementation of the Transport.`, + a specific implementation of the Transport. + + Types: stcp stcpr sudph dmsg`, } var lsTypesCmd = &cobra.Command{ diff --git a/cmd/skywire-cli/commands/vpn/root.go b/cmd/skywire-cli/commands/vpn/root.go index 1e1c576952..85dd497bc7 100644 --- a/cmd/skywire-cli/commands/vpn/root.go +++ b/cmd/skywire-cli/commands/vpn/root.go @@ -3,6 +3,9 @@ package clivpn import ( "github.com/spf13/cobra" + + "github.com/skycoin/skywire-utilities/pkg/cipher" + clirpc "github.com/skycoin/skywire/cmd/skywire-cli/commands/rpc" ) var ( @@ -12,10 +15,17 @@ var ( ver string country string isStats bool + pubkey cipher.PubKey + pk string + count int ) +func init() { + RootCmd.PersistentFlags().StringVar(&clirpc.Addr, "rpc", "localhost:3435", "RPC server address") +} + // RootCmd contains commands that interact with the skywire-visor var RootCmd = &cobra.Command{ Use: "vpn", - Short: "controls for VPN client", + Short: "VPN client", } diff --git a/cmd/skywire-cli/commands/vpn/vvpn.go b/cmd/skywire-cli/commands/vpn/vvpn.go index 7bd0fb787e..dd9012dc9b 100644 --- a/cmd/skywire-cli/commands/vpn/vvpn.go +++ b/cmd/skywire-cli/commands/vpn/vvpn.go @@ -4,119 +4,52 @@ package clivpn import ( "bytes" "fmt" + "math/rand" "os" "strings" "text/tabwriter" "time" "github.com/spf13/cobra" - "github.com/toqueteos/webbrowser" "github.com/skycoin/skywire-utilities/pkg/buildinfo" - "github.com/skycoin/skywire-utilities/pkg/cipher" clirpc "github.com/skycoin/skywire/cmd/skywire-cli/commands/rpc" - clivisor "github.com/skycoin/skywire/cmd/skywire-cli/commands/visor" "github.com/skycoin/skywire/cmd/skywire-cli/internal" "github.com/skycoin/skywire/pkg/app/appserver" + "github.com/skycoin/skywire/pkg/servicedisc" "github.com/skycoin/skywire/pkg/visor" - "github.com/skycoin/skywire/pkg/visor/visorconfig" ) func init() { - RootCmd.PersistentFlags().StringVar(&clirpc.Addr, "rpc", "localhost:3435", "RPC server address") RootCmd.AddCommand( - vpnListCmd, - vpnUICmd, - vpnURLCmd, vpnStartCmd, vpnStopCmd, vpnStatusCmd, + vpnListCmd, ) version := buildinfo.Version() if version == "unknown" { version = "" } - vpnUICmd.Flags().BoolVarP(&isPkg, "pkg", "p", false, "use package config path") - vpnUICmd.Flags().StringVarP(&path, "config", "c", "", "config path") - vpnURLCmd.Flags().BoolVarP(&isPkg, "pkg", "p", false, "use package config path") - vpnURLCmd.Flags().StringVarP(&path, "config", "c", "", "config path") - vpnListCmd.Flags().BoolVarP(&isUnFiltered, "nofilter", "n", false, "provide unfiltered results") + vpnStartCmd.Flags().StringVarP(&pk, "pk", "k", "", "server public key") + vpnListCmd.Flags().StringVarP(&pk, "pk", "k", "", "check proxy service discovery for public key") + vpnListCmd.Flags().IntVarP(&count, "num", "n", 0, "number of results to return") + vpnListCmd.Flags().BoolVarP(&isUnFiltered, "unfilter", "u", false, "provide unfiltered results") vpnListCmd.Flags().StringVarP(&ver, "ver", "v", version, "filter results by version") vpnListCmd.Flags().StringVarP(&country, "country", "c", "", "filter results by country") vpnListCmd.Flags().BoolVarP(&isStats, "stats", "s", false, "return only a count of the results") } -var vpnUICmd = &cobra.Command{ - Use: "ui", - Short: "Open VPN UI in default browser", - Run: func(cmd *cobra.Command, _ []string) { - var url string - if isPkg { - path = visorconfig.SkywireConfig() - } - if path != "" { - conf, err := visorconfig.ReadFile(path) - if err != nil { - internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Failed to read in config: %v", err)) - } - url = fmt.Sprintf("http://127.0.0.1%s/#/vpn/%s/", clivisor.HypervisorPort(cmd.Flags()), conf.PK.Hex()) - } else { - rpcClient, err := clirpc.Client(cmd.Flags()) - if err != nil { - os.Exit(1) - } - overview, err := rpcClient.Overview() - if err != nil { - internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Failed to connect; is skywire running?: %v", err)) - } - url = fmt.Sprintf("http://127.0.0.1%s/#/vpn/%s/", clivisor.HypervisorPort(cmd.Flags()), overview.PubKey.Hex()) - } - if err := webbrowser.Open(url); err != nil { - internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Failed to open VPN UI in browser:: %v", err)) - } - }, -} - -var vpnURLCmd = &cobra.Command{ - Use: "url", - Short: "Show VPN UI URL", - Run: func(cmd *cobra.Command, _ []string) { - var url string - if isPkg { - path = visorconfig.SkywireConfig() - } - if path != "" { - conf, err := visorconfig.ReadFile(path) - if err != nil { - internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Failed to read in config: %v", err)) - } - url = fmt.Sprintf("http://127.0.0.1%s/#/vpn/%s/", clivisor.HypervisorPort(cmd.Flags()), conf.PK.Hex()) - } else { - rpcClient, err := clirpc.Client(cmd.Flags()) - if err != nil { - os.Exit(1) - } - overview, err := rpcClient.Overview() +var vpnListCmd = &cobra.Command{ + Use: "list", + Short: "List servers", + Run: func(cmd *cobra.Command, args []string) { + if pk != "" { + err := pubkey.Set(pk) if err != nil { - internal.PrintFatalRPCError(cmd.Flags(), err) + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Invalid or missing public key")) } - url = fmt.Sprintf("http://127.0.0.1%s/#/vpn/%s/", clivisor.HypervisorPort(cmd.Flags()), overview.PubKey.Hex()) - } - - output := struct { - URL string `json:"url"` - }{ - URL: url, } - - internal.PrintOutput(cmd.Flags(), output, fmt.Sprintln(url)) - }, -} - -var vpnListCmd = &cobra.Command{ - Use: "list", - Short: "List public VPN servers", - Run: func(cmd *cobra.Command, _ []string) { rpcClient, err := clirpc.Client(cmd.Flags()) if err != nil { internal.PrintFatalRPCError(cmd.Flags(), err) @@ -130,39 +63,81 @@ var vpnListCmd = &cobra.Command{ internal.PrintFatalRPCError(cmd.Flags(), err) } if len(servers) == 0 { - internal.PrintFatalError(cmd.Flags(), fmt.Errorf("No VPN Servers found")) + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("No Servers found")) } if isStats { - internal.PrintFatalError(cmd.Flags(), fmt.Errorf("%d VPN Servers", len(servers))) - } - - var msg string - for _, i := range servers { - msg += strings.Replace(i.Addr.String(), ":44", "", 1) - if i.Geo != nil { - msg += fmt.Sprintf(" | %s\n", i.Geo.Country) + internal.PrintOutput(cmd.Flags(), fmt.Sprintf("%d Servers\n", len(servers)), fmt.Sprintf("%d Servers\n", len(servers))) + } else { + var msg string + var results []string + limit := len(servers) + if count > 0 && count < limit { + limit = count + } + if pk != "" { + for _, server := range servers { + if strings.Replace(server.Addr.String(), ":3", "", 1) == pk { + results = append(results, server.Addr.String()) + } + } } else { - msg += "\n" + for _, server := range servers { + results = append(results, server.Addr.String()) + } } + rand.Shuffle(len(results), func(i, j int) { + results[i], results[j] = results[j], results[i] + }) + for i := 0; i < limit && i < len(results); i++ { + msg += strings.Replace(results[i], ":3", "", 1) + if server := findServerByPK(servers, results[i]); server != nil && server.Geo != nil { + if server.Geo.Country != "" { + msg += fmt.Sprintf(" | %s\n", server.Geo.Country) + } else { + msg += "\n" + } + } else { + msg += "\n" + } + } + internal.PrintOutput(cmd.Flags(), servers, msg) } - - internal.PrintOutput(cmd.Flags(), servers, msg) }, } +func findServerByPK(servers []servicedisc.Service, addr string) *servicedisc.Service { + for _, server := range servers { + if server.Addr.String() == addr { + return &server + } + } + return nil +} + var vpnStartCmd = &cobra.Command{ Use: "start ", Short: "start the vpn for ", - Args: cobra.MinimumNArgs(1), + // Args: cobra.MinimumNArgs(1), Run: func(cmd *cobra.Command, args []string) { - - var pk cipher.PubKey - internal.Catch(cmd.Flags(), pk.Set(args[0])) + //check that a valid public key is provided + err := pubkey.Set(pk) + if err != nil { + if len(args) > 0 { + err := pubkey.Set(args[0]) + if err != nil { + internal.PrintFatalError(cmd.Flags(), err) + } + } else { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Invalid or missing public key")) + } + } + //connect to RPC + internal.Catch(cmd.Flags(), pubkey.Set(args[0])) rpcClient, err := clirpc.Client(cmd.Flags()) if err != nil { os.Exit(1) } - internal.Catch(cmd.Flags(), rpcClient.StartVPNClient(pk)) + internal.Catch(cmd.Flags(), rpcClient.StartVPNClient(pubkey)) internal.PrintOutput(cmd.Flags(), nil, "Starting.") startProcess := true for startProcess { diff --git a/cmd/skywire-cli/commands/vpn/vvpnui.go b/cmd/skywire-cli/commands/vpn/vvpnui.go new file mode 100644 index 0000000000..bc26f794a5 --- /dev/null +++ b/cmd/skywire-cli/commands/vpn/vvpnui.go @@ -0,0 +1,98 @@ +// Package clivpn cmd/skywire-cli/commands/vpn/vvpn.go +package clivpn + +import ( + "fmt" + "os" + + "github.com/spf13/cobra" + "github.com/toqueteos/webbrowser" + + "github.com/skycoin/skywire-utilities/pkg/buildinfo" + clirpc "github.com/skycoin/skywire/cmd/skywire-cli/commands/rpc" + clivisor "github.com/skycoin/skywire/cmd/skywire-cli/commands/visor" + "github.com/skycoin/skywire/cmd/skywire-cli/internal" + "github.com/skycoin/skywire/pkg/visor/visorconfig" +) + +func init() { + RootCmd.AddCommand( + vpnUICmd, + vpnURLCmd, + ) + version := buildinfo.Version() + if version == "unknown" { + version = "" //nolint + } + vpnUICmd.Flags().BoolVarP(&isPkg, "pkg", "p", false, "use package config path: "+visorconfig.SkywirePath) + vpnUICmd.Flags().StringVarP(&path, "config", "c", "", "config path") + vpnURLCmd.Flags().BoolVarP(&isPkg, "pkg", "p", false, "use package config path: "+visorconfig.SkywirePath) + vpnURLCmd.Flags().StringVarP(&path, "config", "c", "", "config path") +} + +var vpnUICmd = &cobra.Command{ + Use: "ui", + Short: "Open VPN UI in default browser", + Run: func(cmd *cobra.Command, _ []string) { + var url string + if isPkg { + path = visorconfig.SkywireConfig() + } + if path != "" { + conf, err := visorconfig.ReadFile(path) + if err != nil { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Failed to read in config: %v", err)) + } + url = fmt.Sprintf("http://127.0.0.1%s/#/vpn/%s/", clivisor.HypervisorPort(cmd.Flags()), conf.PK.Hex()) + } else { + rpcClient, err := clirpc.Client(cmd.Flags()) + if err != nil { + os.Exit(1) + } + overview, err := rpcClient.Overview() + if err != nil { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Failed to connect; is skywire running?: %v", err)) + } + url = fmt.Sprintf("http://127.0.0.1%s/#/vpn/%s/", clivisor.HypervisorPort(cmd.Flags()), overview.PubKey.Hex()) + } + if err := webbrowser.Open(url); err != nil { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Failed to open VPN UI in browser:: %v", err)) + } + }, +} + +var vpnURLCmd = &cobra.Command{ + Use: "url", + Short: "Show VPN UI URL", + Run: func(cmd *cobra.Command, _ []string) { + var url string + if isPkg { + path = visorconfig.SkywireConfig() + } + if path != "" { + conf, err := visorconfig.ReadFile(path) + if err != nil { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Failed to read in config: %v", err)) + } + url = fmt.Sprintf("http://127.0.0.1%s/#/vpn/%s/", clivisor.HypervisorPort(cmd.Flags()), conf.PK.Hex()) + } else { + rpcClient, err := clirpc.Client(cmd.Flags()) + if err != nil { + os.Exit(1) + } + overview, err := rpcClient.Overview() + if err != nil { + internal.PrintFatalRPCError(cmd.Flags(), err) + } + url = fmt.Sprintf("http://127.0.0.1%s/#/vpn/%s/", clivisor.HypervisorPort(cmd.Flags()), overview.PubKey.Hex()) + } + + output := struct { + URL string `json:"url"` + }{ + URL: url, + } + + internal.PrintOutput(cmd.Flags(), output, fmt.Sprintln(url)) + }, +} diff --git a/go.mod b/go.mod index 69ee4e5aeb..d543ceb581 100644 --- a/go.mod +++ b/go.mod @@ -56,7 +56,6 @@ require ( github.com/spf13/pflag v1.0.5 github.com/zcalusic/sysinfo v0.9.5 golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde - periph.io/x/periph v3.6.8+incompatible ) require ( diff --git a/go.sum b/go.sum index 80592ad77a..57278f32cd 100644 --- a/go.sum +++ b/go.sum @@ -1153,8 +1153,6 @@ howett.net/plist v1.0.0 h1:7CrbWYbPPO/PyNy38b2EB/+gYbjCe2DXBxgtOOZbSQM= howett.net/plist v1.0.0/go.mod h1:lqaXoTrLY4hg8tnEzNru53gicrbv7rrk+2xJA/7hw9g= nhooyr.io/websocket v1.8.2 h1:LwdzfyyOZKtVFoXay6A39Acu03KmidSZ3YUUvPa13PA= nhooyr.io/websocket v1.8.2/go.mod h1:LiqdCg1Cu7TPWxEvPjPa0TGYxCsy4pHNTN9gGluwBpQ= -periph.io/x/periph v3.6.8+incompatible h1:lki0ie6wHtvlilXhIkabdCUQMpb5QN4Fx33yNQdqnaA= -periph.io/x/periph v3.6.8+incompatible/go.mod h1:EWr+FCIU2dBWz5/wSWeiIUJTriYv9v2j2ENBmgYyy7Y= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/pkg/skyenv/skyenv.go b/pkg/skyenv/skyenv.go index 27306b6335..5aa156fd0b 100644 --- a/pkg/skyenv/skyenv.go +++ b/pkg/skyenv/skyenv.go @@ -114,9 +114,19 @@ const ( NodeInfoSha256 string = "node-info.sha" ) +// SkywireConfig returns the full path to the package config +func SkywireConfig() string { + return SkywirePath + "/" + ConfigJSON +} + +// SkyEnvs returns the full path to the environmental variable file +func SkyEnvs() string { + return SkyenvFilePath + "/" + SkyenvFile +} + // PkgConfig struct contains paths specific to the installation type PkgConfig struct { - LauncherBinPath `json:"launcher"` + LauncherBinPath string `json:"launcher"` LocalPath string `json:"local_path"` Hypervisor `json:"hypervisor"` // TLSCertFile string `json:"tls_cert_file"` diff --git a/pkg/skyenv/skyenv_darwin.go b/pkg/skyenv/skyenv_darwin.go new file mode 100644 index 0000000000..7517a32bfe --- /dev/null +++ b/pkg/skyenv/skyenv_darwin.go @@ -0,0 +1,34 @@ +//go:build darwin +// +build darwin + +// Package skyenv defines variables and constants +package skyenv + +const ( + //OS detection at runtime + OS = "mac" + // SkywirePath is the path to the installation folder. + SkywirePath = "/Library/Application Support/Skywire" + // ConfigJSON is the config name generated by the script included with the installation on mac + ConfigJSON = "skywire-config.json" + + //TODO: @mrpalide set this correctly for macos. it shouldn't be in the installed path + + // SkyenvFilePath is the path to the SkyenvFile + SkyenvFilePath = "/Library/Application Support/Skywire" + // SkyenvFile contains environmental variables which are detected by `skywire-autoconfig` / `skywire-cli config auto` to set default or persistent values + SkyenvFile = "skyenv.sh" +) + +// PackageConfig contains installation paths (for mac) +func PackageConfig() PkgConfig { + pkgConfig := PkgConfig{ + LauncherBinPath: "/Applications/Skywire.app/Contents/MacOS/apps", + LocalPath: "/Library/Application Support/Skywire/local", + Hypervisor: Hypervisor{ + DbPath: "/Library/Application Support/Skywire/users.db", + EnableAuth: true, + }, + } + return pkgConfig +} diff --git a/pkg/skyenv/skyenv_linux.go b/pkg/skyenv/skyenv_linux.go new file mode 100644 index 0000000000..a352aaeea6 --- /dev/null +++ b/pkg/skyenv/skyenv_linux.go @@ -0,0 +1,31 @@ +//go:build linux +// +build linux + +// Package skyenv defines variables and constants +package skyenv + +const ( + //OS detection at runtime + OS = "linux" + // SkywirePath is the path to the installation folder for the linux packages. + SkywirePath = "/opt/skywire" + // ConfigJSON is the config name generated by the skywire-autocofig script in the linux packages + ConfigJSON = "skywire.json" + // SkyenvFilePath is the path to the SkyenvFile + SkyenvFilePath = "/etc/profile.d" + // SkyenvFile contains environmental variables which are detected by `skywire-autoconfig` / `skywire-cli config auto` to set default or persistent values + SkyenvFile = "skyenv.sh" +) + +// PackageConfig contains installation paths (for linux) +func PackageConfig() PkgConfig { + pkgConfig := PkgConfig{ + LauncherBinPath: "/opt/skywire/apps", + LocalPath: "/opt/skywire/local", + Hypervisor: Hypervisor{ + DbPath: "/opt/skywire/users.db", + EnableAuth: true, + }, + } + return pkgConfig +} diff --git a/pkg/skyenv/skyenv_windows.go b/pkg/skyenv/skyenv_windows.go new file mode 100644 index 0000000000..8ac6adf91f --- /dev/null +++ b/pkg/skyenv/skyenv_windows.go @@ -0,0 +1,34 @@ +//go:build windows +// +build windows + +// Package skyenv defines variables and constants +package skyenv + +const ( + //OS detection at runtime + OS = "win" + // SkywirePath is the path to the installation folder for the .msi + SkywirePath = "C:/Program Files/Skywire" + // ConfigJSON is the config name generated by the batch file included with the windows .msi + ConfigJSON = "skywire-config.json" + + //TODO: @mrpalide set this correctly for windows. it shouldn't be in the installed path + + // SkyenvFilePath is the path to the SkyenvFile + SkyenvFilePath = "C:/Program Files/Skywire" + // SkyenvFile contains environmental variables which are detected by `skywire-autoconfig` / `skywire-cli config auto` to set default or persistent values + SkyenvFile = "skyenv.bat" +) + +// PackageConfig contains installation paths (for windows) +func PackageConfig() PkgConfig { + pkgConfig := PkgConfig{ + LauncherBinPath: "C:/Program Files/Skywire/apps", + LocalPath: "C:/Program Files/Skywire/local", + Hypervisor: Hypervisor{ + DbPath: "C:/Program Files/Skywire/users.db", + EnableAuth: true, + }, + } + return pkgConfig +} diff --git a/pkg/visor/api.go b/pkg/visor/api.go index 95fa3bb4cc..03f812ebb8 100644 --- a/pkg/visor/api.go +++ b/pkg/visor/api.go @@ -89,6 +89,7 @@ type API interface { //skysocks-client controls StartSkysocksClient(pk string) error StopSkysocksClient() error + ProxyServers(version, country string) ([]servicedisc.Service, error) //transports TransportTypes() ([]string, error) @@ -916,6 +917,27 @@ func (v *Visor) VPNServers(version, country string) ([]servicedisc.Service, erro return vpnServers, nil } +// ProxyServers gets available public VPN server from service discovery URL +func (v *Visor) ProxyServers(version, country string) ([]servicedisc.Service, error) { + log := logging.MustGetLogger("proxyservers") + vLog := logging.NewMasterLogger() + vLog.SetLevel(logrus.InfoLevel) + + sdClient := servicedisc.NewClient(log, vLog, servicedisc.Config{ + Type: servicedisc.ServiceTypeProxy, + PK: v.conf.PK, + SK: v.conf.SK, + DiscAddr: v.conf.Launcher.ServiceDisc, + DisplayNodeIP: v.conf.Launcher.DisplayNodeIP, + }, &http.Client{Timeout: time.Duration(20) * time.Second}, "") + proxyServers, err := sdClient.Services(context.Background(), 0, version, country) + if err != nil { + v.log.Error("Error getting public vpn servers: ", err) + return nil, err + } + return proxyServers, nil +} + // PublicVisors gets available public public visors from service discovery URL func (v *Visor) PublicVisors(version, country string) ([]servicedisc.Service, error) { log := logging.MustGetLogger("public_visors") diff --git a/pkg/visor/rpc.go b/pkg/visor/rpc.go index 5be8726979..2c008a16ae 100644 --- a/pkg/visor/rpc.go +++ b/pkg/visor/rpc.go @@ -635,14 +635,14 @@ func (r *RPC) SetPublicAutoconnect(pAc *bool, _ *struct{}) (err error) { return err } -// FilterVPNServersIn is input for VPNServers -type FilterVPNServersIn struct { +// FilterServersIn is input for VPNServers and ProxyServers +type FilterServersIn struct { Version string Country string } // VPNServers gets available public VPN server from service discovery URL -func (r *RPC) VPNServers(vc *FilterVPNServersIn, out *[]servicedisc.Service) (err error) { +func (r *RPC) VPNServers(vc *FilterServersIn, out *[]servicedisc.Service) (err error) { defer rpcutil.LogCall(r.log, "VPNServers", nil)(out, &err) vpnServers, err := r.visor.VPNServers(vc.Version, vc.Country) if vpnServers != nil { @@ -651,6 +651,16 @@ func (r *RPC) VPNServers(vc *FilterVPNServersIn, out *[]servicedisc.Service) (er return err } +// ProxyServers gets available socks5 proxy servers from service discovery URL +func (r *RPC) ProxyServers(vc *FilterServersIn, out *[]servicedisc.Service) (err error) { + defer rpcutil.LogCall(r.log, "ProxyServers", nil)(out, &err) + proxyServers, err := r.visor.ProxyServers(vc.Version, vc.Country) + if proxyServers != nil { + *out = proxyServers + } + return err +} + // RemoteVisors return connected remote visors func (r *RPC) RemoteVisors(_ *struct{}, out *[]string) (err error) { defer rpcutil.LogCall(r.log, "RemoteVisor", nil)(out, &err) diff --git a/pkg/visor/rpc_client.go b/pkg/visor/rpc_client.go index 92771da9ec..2c0f5c170f 100644 --- a/pkg/visor/rpc_client.go +++ b/pkg/visor/rpc_client.go @@ -489,7 +489,17 @@ type StatusMessage struct { // VPNServers calls VPNServers. func (rc *rpcClient) VPNServers(version, country string) ([]servicedisc.Service, error) { output := []servicedisc.Service{} - err := rc.Call("VPNServers", &FilterVPNServersIn{ // nolint + err := rc.Call("VPNServers", &FilterServersIn{ // nolint + Version: version, + Country: country, + }, &output) + return output, err +} + +// ProxyServers calls ProxyServers. +func (rc *rpcClient) ProxyServers(version, country string) ([]servicedisc.Service, error) { + output := []servicedisc.Service{} + err := rc.Call("ProxyServers", &FilterServersIn{ // nolint Version: version, Country: country, }, &output) @@ -1219,6 +1229,11 @@ func (mc *mockRPCClient) VPNServers(_, _ string) ([]servicedisc.Service, error) return []servicedisc.Service{}, nil } +// ProxyServers implements API +func (mc *mockRPCClient) ProxyServers(_, _ string) ([]servicedisc.Service, error) { + return []servicedisc.Service{}, nil +} + // RemoteVisors implements API func (mc *mockRPCClient) RemoteVisors() ([]string, error) { return []string{}, nil diff --git a/pkg/visor/visorconfig/survey.go b/pkg/visor/visorconfig/survey.go index c86c2aef73..c1a1b6cecb 100644 --- a/pkg/visor/visorconfig/survey.go +++ b/pkg/visor/visorconfig/survey.go @@ -1,3 +1,4 @@ +// Package visorconfig pkg/visor/visorconfig/survey.go package visorconfig import ( diff --git a/pkg/visor/visorconfig/values.go b/pkg/visor/visorconfig/values.go index bedc17370a..21ebca578f 100644 --- a/pkg/visor/visorconfig/values.go +++ b/pkg/visor/visorconfig/values.go @@ -22,6 +22,17 @@ import ( ) var ( + //OS detection at runtime + OS = skyenv.OS + // SkywirePath is the path to the installation folder for the linux packages. + SkywirePath = skyenv.SkywirePath + // ConfigJSON is the config name generated by the skywire-autocofig script in the linux packages + ConfigJSON = skyenv.ConfigJSON + // SkyenvFilePath is the path to the SkyenvFile + SkyenvFilePath = skyenv.SkyenvFilePath + // SkyenvFile contains environmental variables which are detected by `skywire-autoconfig` / `skywire-cli config auto` to set default or persistent values + SkyenvFile = skyenv.SkyenvFile + // config file constants // ConfigName is the default config name. Updated by setting config file path. @@ -138,6 +149,11 @@ var ( RewardFile = skyenv.RewardFile ) +// SkywireConfig returns the full path to the package config +func SkywireConfig() string { + return SkywirePath + "/" + ConfigJSON +} + // PkgConfig struct contains paths specific to the linux packages type PkgConfig struct { LauncherBinPath string `json:"launcher"` @@ -199,9 +215,9 @@ func HomePath() string { } // Config returns either UserConfig or PackageConfig based on permissions -func Config() PkgConfig { +func Config() skyenv.PkgConfig { if IsRoot() { - return PackageConfig() + return skyenv.PackageConfig() } return UserConfig() } @@ -304,3 +320,13 @@ var ( // VisorConfigFile will contain the path to the visor's config or `stdin` to denote that the config was read from STDIN VisorConfigFile string ) + +// PackageConfig returns the package-specific config paths +func PackageConfig() skyenv.PkgConfig { + return skyenv.PackageConfig() +} + +// UpdateCommand returns the commands which are run when the update button is clicked in the ui +func UpdateCommand() []string { + return []string{`echo "not implemented"`} +} diff --git a/pkg/visor/visorconfig/values_darwin.go b/pkg/visor/visorconfig/values_darwin.go index 1941314acd..cee5345b25 100644 --- a/pkg/visor/visorconfig/values_darwin.go +++ b/pkg/visor/visorconfig/values_darwin.go @@ -10,53 +10,15 @@ import ( "github.com/jaypipes/ghw" "github.com/skycoin/skywire-utilities/pkg/cipher" + "github.com/skycoin/skywire/pkg/skyenv" ) -const ( - //OS detection at runtime - OS = "mac" - // SkywirePath is the path to the installation folder. - SkywirePath = "/Library/Application Support/Skywire" - // ConfigJSON is the config name generated by the script included with the installation on mac - ConfigJSON = "skywire-config.json" - - //TODO: @mrpalide set this correctly for macos. it shouldn't be in the installed path - - // SkyenvFilePath is the path to the SkyenvFile - SkyenvFilePath = "/Library/Application Support/Skywire" - // SkyenvFile contains environmental variables which are detected by `skywire-autoconfig` / `skywire-cli config auto` to set default or persistent values - SkyenvFile = "skyenv.sh" -) - -// SkywireConfig returns the full path to the package config -func SkywireConfig() string { - return SkywirePath + "/" + ConfigJSON -} - -// SkyEnvs returns the full path to the environmental variable file -func SkyEnvs() string { - return SkyenvFilePath + "/" + SkyenvFile -} - -// PackageConfig contains installation paths (for mac) -func PackageConfig() PkgConfig { - pkgConfig := PkgConfig{ - LauncherBinPath: "/Applications/Skywire.app/Contents/MacOS/apps", - LocalPath: "/Library/Application Support/Skywire/local", - Hypervisor: Hypervisor{ - DbPath: "/Library/Application Support/Skywire/users.db", - EnableAuth: true, - }, - } - return pkgConfig -} - -// UserConfig contains installation paths (for mac) -func UserConfig() PkgConfig { - usrConfig := PkgConfig{ +// UserConfig contains installation paths for running skywire as the user +func UserConfig() skyenv.PkgConfig { + usrConfig := skyenv.PkgConfig{ LauncherBinPath: "/Applications/Skywire.app/Contents/MacOS/apps", LocalPath: HomePath() + "/.skywire/local", - Hypervisor: Hypervisor{ + Hypervisor: skyenv.Hypervisor{ DbPath: HomePath() + "/.skywire/users.db", EnableAuth: true, }, @@ -64,11 +26,6 @@ func UserConfig() PkgConfig { return usrConfig } -// UpdateCommand returns the commands which are run when the update button is clicked in the ui -func UpdateCommand() []string { - return []string{`echo "update not implemented for macOS. Download a new version from the release section here: https://github.com/skycoin/skywire/releases"`} -} - // Survey system hardware survey struct type Survey struct { PubKey cipher.PubKey `json:"public_key,omitempty"` diff --git a/pkg/visor/visorconfig/values_linux.go b/pkg/visor/visorconfig/values_linux.go index 31b7c0263a..39f61f1d0d 100644 --- a/pkg/visor/visorconfig/values_linux.go +++ b/pkg/visor/visorconfig/values_linux.go @@ -10,53 +10,17 @@ import ( "github.com/google/uuid" "github.com/jaypipes/ghw" "github.com/zcalusic/sysinfo" - "periph.io/x/periph/host/distro" "github.com/skycoin/skywire-utilities/pkg/cipher" + "github.com/skycoin/skywire/pkg/skyenv" ) -const ( - //OS detection at runtime - OS = "linux" - // SkywirePath is the path to the installation folder for the linux packages. - SkywirePath = "/opt/skywire" - // ConfigJSON is the config name generated by the skywire-autocofig script in the linux packages - ConfigJSON = "skywire.json" - // SkyenvFilePath is the path to the SkyenvFile - SkyenvFilePath = "/etc/profile.d" - // SkyenvFile contains environmental variables which are detected by `skywire-autoconfig` / `skywire-cli config auto` to set default or persistent values - SkyenvFile = "skyenv.sh" -) - -// SkywireConfig returns the full path to the package config -func SkywireConfig() string { - return SkywirePath + "/" + ConfigJSON -} - -// SkyEnvs returns the full path to the environmental variable file -func SkyEnvs() string { - return SkyenvFilePath + "/" + SkyenvFile -} - -// PackageConfig contains installation paths (for linux) -func PackageConfig() PkgConfig { - pkgConfig := PkgConfig{ - LauncherBinPath: "/opt/skywire/apps", - LocalPath: "/opt/skywire/local", - Hypervisor: Hypervisor{ - DbPath: "/opt/skywire/users.db", - EnableAuth: true, - }, - } - return pkgConfig -} - -// UserConfig contains installation paths (for linux) -func UserConfig() PkgConfig { - usrConfig := PkgConfig{ +// UserConfig contains installation paths for running skywire as the user +func UserConfig() skyenv.PkgConfig { + usrConfig := skyenv.PkgConfig{ LauncherBinPath: "/opt/skywire/apps", LocalPath: HomePath() + "/.skywire/local", - Hypervisor: Hypervisor{ + Hypervisor: skyenv.Hypervisor{ DbPath: HomePath() + "/.skywire/users.db", EnableAuth: true, }, @@ -64,16 +28,6 @@ func UserConfig() PkgConfig { return usrConfig } -// UpdateCommand returns the commands which are run when the update button is clicked in the ui -func UpdateCommand() []string { - if distro.IsArmbian() || distro.IsDebian() || distro.IsRaspbian() || distro.IsUbuntu() { - //enabling install-skyire.service and rebooting is required to avoid interrupting an update when the running visor is stopped - //install-skywire.service is provided by the skybian package and calls install-skywire.sh - return []string{`systemctl enable install-skywire.service && systemctl reboot || echo -e "Resource unavailable.\nPlease update manually as specified here:\nhttps://github.com/skycoin/skywire/wiki/Skywire-Package-Installation"`} - } - return []string{`echo -e "Update not implemented for this linux distro.\nPlease update skywire the same way you installed it."`} -} - // Survey system hardware survey struct type Survey struct { Timestamp time.Time `json:"timestamp"` @@ -104,7 +58,7 @@ func SystemSurvey() (Survey, error) { return Survey{}, err } memory, err := ghw.Memory() - if err != nil && err.Error() != "Could not determine total usable bytes of memory" { + if err != nil { return Survey{}, err } for { diff --git a/pkg/visor/visorconfig/values_windows.go b/pkg/visor/visorconfig/values_windows.go index 0ec094c07f..7528799f8d 100644 --- a/pkg/visor/visorconfig/values_windows.go +++ b/pkg/visor/visorconfig/values_windows.go @@ -10,53 +10,15 @@ import ( "github.com/jaypipes/ghw" "github.com/skycoin/skywire-utilities/pkg/cipher" + "github.com/skycoin/skywire/pkg/skyenv" ) -const ( - //OS detection at runtime - OS = "win" - // SkywirePath is the path to the installation folder for the .msi - SkywirePath = "C:/Program Files/Skywire" - // ConfigJSON is the config name generated by the batch file included with the windows .msi - ConfigJSON = "skywire-config.json" - - //TODO: @mrpalide set this correctly for windows. it shouldn't be in the installed path - - // SkyenvFilePath is the path to the SkyenvFile - SkyenvFilePath = "C:/Program Files/Skywire" - // SkyenvFile contains environmental variables which are detected by `skywire-autoconfig` / `skywire-cli config auto` to set default or persistent values - SkyenvFile = "skyenv.bat" -) - -// SkywireConfig returns the full path to the package config -func SkywireConfig() string { - return SkywirePath + "/" + ConfigJSON -} - -// SkyEnvs returns the full path to the environmental variable file -func SkyEnvs() string { - return SkyenvFilePath + "/" + SkyenvFile -} - -// PackageConfig contains installation paths (for windows) -func PackageConfig() PkgConfig { - pkgConfig := PkgConfig{ - LauncherBinPath: "C:/Program Files/Skywire/apps", - LocalPath: "C:/Program Files/Skywire/local", - Hypervisor: Hypervisor{ - DbPath: "C:/Program Files/Skywire/users.db", - EnableAuth: true, - }, - } - return pkgConfig -} - -// UserConfig contains installation paths (for windows) -func UserConfig() PkgConfig { - usrConfig := PkgConfig{ +// UserConfig contains installation paths for running skywire as the user +func UserConfig() skyenv.PkgConfig { + usrConfig := skyenv.PkgConfig{ LauncherBinPath: "C:/Program Files/Skywire/apps", LocalPath: HomePath() + "/.skywire/local", - Hypervisor: Hypervisor{ + Hypervisor: skyenv.Hypervisor{ DbPath: HomePath() + "/.skywire/users.db", EnableAuth: true, }, @@ -64,11 +26,6 @@ func UserConfig() PkgConfig { return usrConfig } -// UpdateCommand returns the commands which are run when the update button is clicked in the ui -func UpdateCommand() []string { - return []string{`echo "Update not implemented for windows. Download a new version from the release section here: https://github.com/skycoin/skywire/releases"`} -} - // Survey system hardware survey struct type Survey struct { PubKey cipher.PubKey `json:"public_key,omitempty"` diff --git a/vendor/modules.txt b/vendor/modules.txt index f35a43983a..2d9854c0e7 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -468,6 +468,3 @@ nhooyr.io/websocket/internal/bpool nhooyr.io/websocket/internal/errd nhooyr.io/websocket/internal/wsjs nhooyr.io/websocket/internal/xsync -# periph.io/x/periph v3.6.8+incompatible -## explicit -periph.io/x/periph/host/distro diff --git a/vendor/periph.io/x/periph/AUTHORS b/vendor/periph.io/x/periph/AUTHORS deleted file mode 100644 index e8ff861edc..0000000000 --- a/vendor/periph.io/x/periph/AUTHORS +++ /dev/null @@ -1,15 +0,0 @@ -# This is the list of The Periph Authors for copyright purposes. -# -# This does not necessarily list everyone who has contributed code, since in -# some cases, their employer may be the copyright holder. To see the full list -# of contributors, see the revision history in source control. -Cássio Botaro -Fractal Industries, Inc -Google Inc. -Josh Gardiner -Matt Aimonetti -Max Ekman -Rifiniti, Inc -Stephan Sperber -Thorsten von Eicken - diff --git a/vendor/periph.io/x/periph/CONTRIBUTORS b/vendor/periph.io/x/periph/CONTRIBUTORS deleted file mode 100644 index 2e86a9bcbc..0000000000 --- a/vendor/periph.io/x/periph/CONTRIBUTORS +++ /dev/null @@ -1,41 +0,0 @@ -# This is the official list of people who can contribute -# (and typically have contributed) code to the periph repository. -# The AUTHORS file lists the copyright holders; this file -# lists people. For example, Google employees are listed here -# but not in AUTHORS, because Google holds the copyright. -# -# Names should be added to this file only after verifying that -# the individual or the individual's organization has agreed to -# the appropriate Contributor License Agreement, found here: -# -# https://cla.developers.google.com/ -# -# When adding J Random Contributor's name to this file, -# either J's name or J's organization's name should be -# added to the AUTHORS file, depending on whether the -# individual or corporate CLA was used. - -# Names should be added to this file like so: -# Individual's name -# Individual's name -# -# An entry with multiple email addresses specifies that the -# first address should be used in the submit logs and -# that the other addresses should be recognized as the -# same person when interacting with Gerrit. - -# Please keep the list sorted. - -Cássio Botaro -Eugene Dzhurynsky -Hidetoshi Shimokawa -John Maguire -Josh Gardiner -Marc-Antoine Ruel -Matt Aimonetti -Max Ekman -Matias Insaurralde -Seán C McCord -Stephan Sperber -Thorsten von Eicken - diff --git a/vendor/periph.io/x/periph/LICENSE b/vendor/periph.io/x/periph/LICENSE deleted file mode 100644 index d645695673..0000000000 --- a/vendor/periph.io/x/periph/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/periph.io/x/periph/host/distro/devtree.go b/vendor/periph.io/x/periph/host/distro/devtree.go deleted file mode 100644 index e8c2da4389..0000000000 --- a/vendor/periph.io/x/periph/host/distro/devtree.go +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2016 The Periph Authors. All rights reserved. -// Use of this source code is governed under the Apache License, Version 2.0 -// that can be found in the LICENSE file. - -package distro - -import ( - "encoding/binary" - "io/ioutil" -) - -// DTModel returns platform model info from the Linux device tree (/proc/device-tree/model), and -// returns "unknown" on non-linux systems or if the file is missing. -func DTModel() string { - mu.Lock() - defer mu.Unlock() - - if dtModel == "" { - dtModel = "" - if isLinux { - dtModel = makeDTModelLinux() - } - } - return dtModel -} - -// DTCompatible returns platform compatibility info from the Linux device tree -// (/proc/device-tree/compatible), and returns []{"unknown"} on non-linux systems or if the file is -// missing. -func DTCompatible() []string { - mu.Lock() - defer mu.Unlock() - - if dtCompatible == nil { - dtCompatible = []string{} - if isLinux { - dtCompatible = makeDTCompatible() - } - } - return dtCompatible -} - -// DTRevision returns the device revision (e.g. a02082 for the Raspberry Pi 3) -// from the Linux device tree, or 0 if the file is missing or malformed. -func DTRevision() uint32 { - mu.Lock() - defer mu.Unlock() - - if dtRevisionRead { - return dtRevision - } - dtRevisionRead = true - if b, _ := ioutil.ReadFile("/proc/device-tree/system/linux,revision"); len(b) >= 4 { - dtRevision = binary.BigEndian.Uint32(b[:4]) - } - return dtRevision -} - -// - -var ( - dtModel string // cached /proc/device-tree/model - dtCompatible []string // cached /proc/device-tree/compatible - dtRevision uint32 // cached /proc/device-tree/system/linux,revision - dtRevisionRead bool -) - -func makeDTModelLinux() string { - // Read model from device tree. - if bytes, err := readFile("/proc/device-tree/model"); err == nil { - if model := splitNull(bytes); len(model) > 0 { - return model[0] - } - } - return "" -} - -func makeDTCompatible() []string { - // Read compatible from device tree. - if bytes, err := readFile("/proc/device-tree/compatible"); err == nil { - return splitNull(bytes) - } - return []string{} -} diff --git a/vendor/periph.io/x/periph/host/distro/distro.go b/vendor/periph.io/x/periph/host/distro/distro.go deleted file mode 100644 index 96e49dfbf9..0000000000 --- a/vendor/periph.io/x/periph/host/distro/distro.go +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright 2016 The Periph Authors. All rights reserved. -// Use of this source code is governed under the Apache License, Version 2.0 -// that can be found in the LICENSE file. - -// Package distro implements common functionality to auto-detect features on -// the host; generally about linux distributions. -// -// Most of the functions exported as in the form IsFoo() where Foo is a linux -// distribution. -package distro - -import ( - "io/ioutil" - "os" - "strconv" - "strings" - "sync" - "unicode" -) - -// IsArmbian returns true if running on a Armbian distribution. -// -// http://www.armbian.com/ -func IsArmbian() bool { - if isArm && isLinux { - // Armbian presents itself as debian in /etc/os-release so OSRelease() - // cannot be used.. - _, err := os.Stat("/etc/armbian.txt") - return err == nil - } - return false -} - -// IsDebian returns true if running on an Debian derived distribution. -// -// This function returns true on both Armbian, Raspbian and Ubuntu. -// -// https://debian.org/ -func IsDebian() bool { - if isLinux { - // http://0pointer.de/public/systemd-man/os-release.html#ID_LIKE= - if OSRelease()["ID"] == "debian" { - return true - } - for _, part := range strings.Split(OSRelease()["ID_LIKE"], " ") { - if part == "debian" { - return true - } - } - } - return false -} - -// IsRaspbian returns true if running on a Raspbian distribution. -// -// https://raspbian.org/ -func IsRaspbian() bool { - if isArm && isLinux { - return OSRelease()["ID"] == "raspbian" - } - return false -} - -// IsUbuntu returns true if running on an Ubuntu derived distribution. -// -// https://ubuntu.com/ -func IsUbuntu() bool { - if isLinux { - return OSRelease()["ID"] == "ubuntu" - } - return false -} - -// OSRelease returns parsed data from /etc/os-release. -// -// For more information, see -// http://0pointer.de/public/systemd-man/os-release.html -func OSRelease() map[string]string { - if isLinux { - return makeOSReleaseLinux() - } - return osRelease -} - -// CPU - -// CPUInfo returns parsed data from /proc/cpuinfo. -func CPUInfo() map[string]string { - if isLinux { - return makeCPUInfoLinux() - } - return cpuInfo -} - -// - -var ( - mu sync.Mutex - cpuInfo map[string]string - osRelease map[string]string - readFile = ioutil.ReadFile -) - -func splitSemiColon(content string) map[string]string { - // Strictly speaking this format isn't ok, there can be multiple group. - out := map[string]string{} - for _, line := range strings.Split(content, "\n") { - parts := strings.SplitN(line, ":", 2) - if len(parts) != 2 { - continue - } - // This format may have space around the ':'. - key := strings.TrimRightFunc(parts[0], unicode.IsSpace) - if len(key) == 0 || key[0] == '#' { - continue - } - // Ignore duplicate keys. - // TODO(maruel): Keep them all. - if _, ok := out[key]; !ok { - // Trim on both side, trailing space was observed on "Features" value. - out[key] = strings.TrimFunc(parts[1], unicode.IsSpace) - } - } - return out -} - -func splitStrict(content string) map[string]string { - out := map[string]string{} - for _, line := range strings.Split(content, "\n") { - parts := strings.SplitN(line, "=", 2) - if len(parts) != 2 { - continue - } - key := parts[0] - if len(key) == 0 || key[0] == '#' { - continue - } - // Overwrite previous key. - value := parts[1] - if len(value) > 2 && value[0] == '"' && value[len(value)-1] == '"' { - // Not exactly 100% right but #closeenough. See for more details - // https://www.freedesktop.org/software/systemd/man/os-release.html - var err error - value, err = strconv.Unquote(value) - if err != nil { - continue - } - } - out[key] = value - } - return out -} - -// splitNull returns the null-terminated strings in the data -func splitNull(data []byte) []string { - ss := strings.Split(string(data), "\x00") - // The last string is typically null-terminated, so remove empty string - // from end of array. - if len(ss) > 0 && len(ss[len(ss)-1]) == 0 { - ss = ss[:len(ss)-1] - } - return ss -} - -func makeCPUInfoLinux() map[string]string { - mu.Lock() - defer mu.Unlock() - if cpuInfo == nil { - cpuInfo = map[string]string{} - if bytes, err := readFile("/proc/cpuinfo"); err == nil { - cpuInfo = splitSemiColon(string(bytes)) - } - } - return cpuInfo -} - -func makeOSReleaseLinux() map[string]string { - mu.Lock() - defer mu.Unlock() - if osRelease == nil { - // This file may not exist on older distros. Send a PR if you want to have - // a specific fallback. - osRelease = map[string]string{} - if bytes, err := readFile("/etc/os-release"); err == nil { - osRelease = splitStrict(string(bytes)) - } - } - return osRelease -} diff --git a/vendor/periph.io/x/periph/host/distro/distro_arm.go b/vendor/periph.io/x/periph/host/distro/distro_arm.go deleted file mode 100644 index 90a23351f0..0000000000 --- a/vendor/periph.io/x/periph/host/distro/distro_arm.go +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2016 The Periph Authors. All rights reserved. -// Use of this source code is governed under the Apache License, Version 2.0 -// that can be found in the LICENSE file. - -package distro - -const isArm = true diff --git a/vendor/periph.io/x/periph/host/distro/distro_arm64.go b/vendor/periph.io/x/periph/host/distro/distro_arm64.go deleted file mode 100644 index d5734bc040..0000000000 --- a/vendor/periph.io/x/periph/host/distro/distro_arm64.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2016 The Periph Authors. All rights reserved. -// Use of this source code is governed under the Apache License, Version 2.0 -// that can be found in the LICENSE file. - -// +build arm64 - -package distro - -const isArm = true diff --git a/vendor/periph.io/x/periph/host/distro/distro_linux.go b/vendor/periph.io/x/periph/host/distro/distro_linux.go deleted file mode 100644 index 7679a8fd84..0000000000 --- a/vendor/periph.io/x/periph/host/distro/distro_linux.go +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2016 The Periph Authors. All rights reserved. -// Use of this source code is governed under the Apache License, Version 2.0 -// that can be found in the LICENSE file. - -package distro - -const isLinux = true diff --git a/vendor/periph.io/x/periph/host/distro/distro_nonarm.go b/vendor/periph.io/x/periph/host/distro/distro_nonarm.go deleted file mode 100644 index 075cad554c..0000000000 --- a/vendor/periph.io/x/periph/host/distro/distro_nonarm.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2016 The Periph Authors. All rights reserved. -// Use of this source code is governed under the Apache License, Version 2.0 -// that can be found in the LICENSE file. - -// +build !arm,!arm64 - -package distro - -const isArm = false diff --git a/vendor/periph.io/x/periph/host/distro/distro_nonlinux.go b/vendor/periph.io/x/periph/host/distro/distro_nonlinux.go deleted file mode 100644 index 7fd1599e08..0000000000 --- a/vendor/periph.io/x/periph/host/distro/distro_nonlinux.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2016 The Periph Authors. All rights reserved. -// Use of this source code is governed under the Apache License, Version 2.0 -// that can be found in the LICENSE file. - -// +build !linux - -package distro - -const isLinux = false From 465d4e928304e543003c101e76541a67c4ec6e1a Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Thu, 23 Mar 2023 13:07:43 -0500 Subject: [PATCH 11/62] update changelog --- CHANGELOG.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c233e24ab5..ef952fa263 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,30 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. updates may be generated with `scripts/changelog.sh ` +## 1.3.7 +- Fix deps (dependabot) [#1521](https://github.com/skycoin/skywire/pull/1521) +- improve transport logic [#1519](https://github.com/skycoin/skywire/pull/1519) +- survey issue arm7 hotfix [#1518](https://github.com/skycoin/skywire/pull/1518) +- Change build path of binaries to build folder [#1516](https://github.com/skycoin/skywire/pull/1516) +- Cli refactor [#1515](https://github.com/skycoin/skywire/pull/1515) +- update readme [#1514](https://github.com/skycoin/skywire/pull/1514) +- risc-v build [#1513](https://github.com/skycoin/skywire/pull/1513) +- Bump golang.org/x/text from 0.3.7 to 0.3.8 [#1511](https://github.com/skycoin/skywire/pull/1511) +- Bump golang.org/x/net from 0.0.0-20220722155237-a158d28d115b to 0.7.0 [#1510](https://github.com/skycoin/skywire/pull/1510) +- Bump golang.org/x/crypto from 0.0.0-20210921155107-089bfa567519 to 0.1.0 [#1509](https://github.com/skycoin/skywire/pull/1509) + +## 1.3.6 +- Hot fix on Launcher panic [#1508](https://github.com/skycoin/skywire/pull/1508) +- improve logging [#1507](https://github.com/skycoin/skywire/pull/1507) +- Fix appL nil [#1506](https://github.com/skycoin/skywire/pull/1506) +- fix docker login [#1503](https://github.com/skycoin/skywire/pull/1503) + ## 1.3.5 +- build UI for v1.3.5 [#1502](https://github.com/skycoin/skywire/pull/1502) +- remove `exec` and `profile` [#1501](https://github.com/skycoin/skywire/pull/1501) +- Update change log for patch release [#1500](https://github.com/skycoin/skywire/pull/1500) +- Remove the basic terminal from the UI [#1499](https://github.com/skycoin/skywire/pull/1499) +- Improvements for the UI code [#1498](https://github.com/skycoin/skywire/pull/1498) - log collection size limit | improve survey logic [#1496](https://github.com/skycoin/skywire/pull/1496) - Custom Apps [#1495](https://github.com/skycoin/skywire/pull/1495) - improve survey logic [#1489](https://github.com/skycoin/skywire/pull/1489) From a93af59bc96a6247c4ccfab8097b5c2202785c41 Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Thu, 30 Mar 2023 05:10:40 +0330 Subject: [PATCH 12/62] disable warnings on get ghw values --- pkg/visor/visorconfig/values_darwin.go | 2 +- pkg/visor/visorconfig/values_linux.go | 6 +++--- pkg/visor/visorconfig/values_windows.go | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pkg/visor/visorconfig/values_darwin.go b/pkg/visor/visorconfig/values_darwin.go index cee5345b25..c08e2c0104 100644 --- a/pkg/visor/visorconfig/values_darwin.go +++ b/pkg/visor/visorconfig/values_darwin.go @@ -41,7 +41,7 @@ type Survey struct { // SystemSurvey returns system survey func SystemSurvey() (Survey, error) { - disks, err := ghw.Block() + disks, err := ghw.Block(ghw.WithDisableWarnings()) if err != nil { return Survey{}, err } diff --git a/pkg/visor/visorconfig/values_linux.go b/pkg/visor/visorconfig/values_linux.go index 39f61f1d0d..ef7aeabdfa 100644 --- a/pkg/visor/visorconfig/values_linux.go +++ b/pkg/visor/visorconfig/values_linux.go @@ -49,15 +49,15 @@ type Survey struct { func SystemSurvey() (Survey, error) { var si sysinfo.SysInfo si.GetSysInfo() - disks, err := ghw.Block() + disks, err := ghw.Block(ghw.WithDisableWarnings()) if err != nil { return Survey{}, err } - product, err := ghw.Product() + product, err := ghw.Product(ghw.WithDisableWarnings()) if err != nil { return Survey{}, err } - memory, err := ghw.Memory() + memory, err := ghw.Memory(ghw.WithDisableWarnings()) if err != nil { return Survey{}, err } diff --git a/pkg/visor/visorconfig/values_windows.go b/pkg/visor/visorconfig/values_windows.go index 7528799f8d..0cd63c17fd 100644 --- a/pkg/visor/visorconfig/values_windows.go +++ b/pkg/visor/visorconfig/values_windows.go @@ -43,15 +43,15 @@ type Survey struct { // SystemSurvey returns system survey func SystemSurvey() (Survey, error) { - disks, err := ghw.Block() + disks, err := ghw.Block(ghw.WithDisableWarnings()) if err != nil { return Survey{}, err } - product, err := ghw.Product() + product, err := ghw.Product(ghw.WithDisableWarnings()) if err != nil { return Survey{}, err } - memory, err := ghw.Memory() + memory, err := ghw.Memory(ghw.WithDisableWarnings()) if err != nil { return Survey{}, err } From ab6389586c4ef8acee934c3c77b5c81c04bf97b9 Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Thu, 30 Mar 2023 05:10:59 +0330 Subject: [PATCH 13/62] improve log_store logic | fix timestamps issue there --- pkg/app/appcommon/log_store.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/app/appcommon/log_store.go b/pkg/app/appcommon/log_store.go index ccb93d085e..88b732c922 100644 --- a/pkg/app/appcommon/log_store.go +++ b/pkg/app/appcommon/log_store.go @@ -38,7 +38,7 @@ func NewProcLogger(conf ProcConfig, mLog *logging.MasterLogger) (log *logging.Ma // TimestampFromLog is an utility function for retrieving the timestamp from a log. This function should be modified // if the time layout is changed func TimestampFromLog(log string) string { - return log[1 : 1+len(timeLayout)] + return strings.Split(log[1:1+len(timeLayout)], "]")[0] } // LogStore stores logs from apps, for later consumption from the hypervisor @@ -215,7 +215,7 @@ func (l *bBoltLogStore) Fire(entry *log.Entry) error { }() // time in RFC3339Nano is between the bytes 1 and 36. This will change if other time layout is in use - t := strings.Split(strings.Split(strings.Split(p, " ")[0], "]")[0], "[")[2] + t := strings.Split(str[1:1+len(timeLayout)], "]")[0] err = db.Update(func(tx *bbolt.Tx) error { b := tx.Bucket(l.bucket) return b.Put([]byte(t), []byte(str)) From 143c79986b7af49e2d37ff24949b9adfe8f29c0c Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Thu, 30 Mar 2023 21:26:45 +0330 Subject: [PATCH 14/62] test --- .goreleaser-linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.goreleaser-linux.yml b/.goreleaser-linux.yml index b5ad7fa3a2..7e252f882c 100644 --- a/.goreleaser-linux.yml +++ b/.goreleaser-linux.yml @@ -6,7 +6,7 @@ release: # Default is extracted from the origin remote URL or empty if its private hosted. # Note: it can only be one: either github or gitlab or gitea github: - owner: skycoin + owner: mrpalide name: skywire #prerelease: true From 08da6484e50316ca32f355a10bc97db658893695 Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Sat, 1 Apr 2023 13:21:06 +0330 Subject: [PATCH 15/62] fix mac installer script --- scripts/mac_installer/create_installer.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mac_installer/create_installer.sh b/scripts/mac_installer/create_installer.sh index 9de4cee20b..04fe8e1a2a 100755 --- a/scripts/mac_installer/create_installer.sh +++ b/scripts/mac_installer/create_installer.sh @@ -71,9 +71,9 @@ function build_installer() { cp ${mac_script_dir}/Entitlements.plist ${installer_build_dir}/entitlements.plist cp ${mac_script_dir}/icon.icns ${installer_package_dir}/Contents/Resources/icon.icns - mv ./build/skywire-visor ${installer_package_dir}/Contents/MacOS/skywire-visor + mv ./skywire-visor ${installer_package_dir}/Contents/MacOS/skywire-visor mv ./skywire-cli ${installer_package_dir}/Contents/MacOS/skywire-cli - mv ./build/apps/vpn-client ${installer_package_dir}/Contents/MacOS/apps/vpn-client + mv ./apps/vpn-client ${installer_package_dir}/Contents/MacOS/apps/vpn-client cp ./dmsghttp-config.json ${installer_package_dir}/Contents/MacOS/dmsghttp-config.json cp ./skycoin.asc ${installer_package_dir}/Contents/MacOS/skycoin.asc From 031b08003f215764a71fff33b4c53c347c3e7e3b Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Sat, 1 Apr 2023 13:24:55 +0330 Subject: [PATCH 16/62] revert test changes --- .goreleaser-linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.goreleaser-linux.yml b/.goreleaser-linux.yml index 7e252f882c..b5ad7fa3a2 100644 --- a/.goreleaser-linux.yml +++ b/.goreleaser-linux.yml @@ -6,7 +6,7 @@ release: # Default is extracted from the origin remote URL or empty if its private hosted. # Note: it can only be one: either github or gitlab or gitea github: - owner: mrpalide + owner: skycoin name: skywire #prerelease: true From 61ef74f3d471beb183d06f55b0ae0c7dca546931 Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Mon, 3 Apr 2023 01:30:45 +0330 Subject: [PATCH 17/62] fix armv7 issue --- pkg/visor/visorconfig/values_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/visor/visorconfig/values_linux.go b/pkg/visor/visorconfig/values_linux.go index ef7aeabdfa..84afd0b38b 100644 --- a/pkg/visor/visorconfig/values_linux.go +++ b/pkg/visor/visorconfig/values_linux.go @@ -58,7 +58,7 @@ func SystemSurvey() (Survey, error) { return Survey{}, err } memory, err := ghw.Memory(ghw.WithDisableWarnings()) - if err != nil { + if err != nil && !strings.Contains(err, "Could not determine total usable bytes of memory") { return Survey{}, err } for { From 71081484ff1cc88e875d20a6e7849df9b849b5ca Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Mon, 3 Apr 2023 01:32:52 +0330 Subject: [PATCH 18/62] fix import missed --- pkg/visor/visorconfig/values_linux.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/visor/visorconfig/values_linux.go b/pkg/visor/visorconfig/values_linux.go index 84afd0b38b..50d5037657 100644 --- a/pkg/visor/visorconfig/values_linux.go +++ b/pkg/visor/visorconfig/values_linux.go @@ -5,6 +5,7 @@ package visorconfig import ( "runtime" + "string" "time" "github.com/google/uuid" From 884992ad82ee8a964c2a36e598d5bc6cd53244a8 Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Mon, 3 Apr 2023 01:33:23 +0330 Subject: [PATCH 19/62] fix import missed --- pkg/visor/visorconfig/values_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/visor/visorconfig/values_linux.go b/pkg/visor/visorconfig/values_linux.go index 50d5037657..bf3c508289 100644 --- a/pkg/visor/visorconfig/values_linux.go +++ b/pkg/visor/visorconfig/values_linux.go @@ -5,7 +5,7 @@ package visorconfig import ( "runtime" - "string" + "strings" "time" "github.com/google/uuid" From 502e7bc1d25b5edb5a307f0ecfa96b58a8a5f19e Mon Sep 17 00:00:00 2001 From: MohammadReza Palide Date: Mon, 3 Apr 2023 01:33:58 +0330 Subject: [PATCH 20/62] fix error string --- pkg/visor/visorconfig/values_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/visor/visorconfig/values_linux.go b/pkg/visor/visorconfig/values_linux.go index bf3c508289..cc9388501e 100644 --- a/pkg/visor/visorconfig/values_linux.go +++ b/pkg/visor/visorconfig/values_linux.go @@ -59,7 +59,7 @@ func SystemSurvey() (Survey, error) { return Survey{}, err } memory, err := ghw.Memory(ghw.WithDisableWarnings()) - if err != nil && !strings.Contains(err, "Could not determine total usable bytes of memory") { + if err != nil && !strings.Contains(err.Error(), "Could not determine total usable bytes of memory") { return Survey{}, err } for { From 20bf07ef484933d6de6e1da4bae0d6a8c20d4b35 Mon Sep 17 00:00:00 2001 From: Mohammed <79150699+mrpalide@users.noreply.github.com> Date: Tue, 4 Apr 2023 02:13:55 +0330 Subject: [PATCH 21/62] change bin_path to apps instead build/apps (#1526) --- pkg/skyenv/skyenv.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/skyenv/skyenv.go b/pkg/skyenv/skyenv.go index 5aa156fd0b..246613d9f6 100644 --- a/pkg/skyenv/skyenv.go +++ b/pkg/skyenv/skyenv.go @@ -78,7 +78,7 @@ const ( AppSrvAddr = "localhost:5505" // AppSrvAddr ... ServiceDiscUpdateInterval = time.Minute // ServiceDiscUpdateInterval ... - AppBinPath = "./build/apps" // AppBinPath ... + AppBinPath = "./apps" // AppBinPath ... LogLevel = "info" // LogLevel ... // Routing constants From 0106d9e4119c6d60c59df09da057a63c2fde40ed Mon Sep 17 00:00:00 2001 From: Senyoret1 <34079003+Senyoret1@users.noreply.github.com> Date: Sat, 15 Apr 2023 19:26:46 -0400 Subject: [PATCH 22/62] Logs UI (#1528) --- .../skywire-manager-src/src/app/app.module.ts | 2 + .../pages/node/actions/node-actions-helper.ts | 10 +- .../node-logs/node-logs.component.html | 90 +++++ .../node-logs/node-logs.component.scss | 117 ++++++ .../actions/node-logs/node-logs.component.ts | 368 ++++++++++++++++++ .../node-info-content.component.html | 7 +- .../node-info-content.component.ts | 11 + .../src/app/services/node.service.ts | 7 + .../src/assets/i18n/en.json | 18 + .../src/assets/i18n/es.json | 18 + .../src/assets/i18n/es_base.json | 18 + 11 files changed, 664 insertions(+), 2 deletions(-) create mode 100644 static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.html create mode 100644 static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.scss create mode 100644 static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.ts diff --git a/static/skywire-manager-src/src/app/app.module.ts b/static/skywire-manager-src/src/app/app.module.ts index c29d77eaf9..36fc082746 100644 --- a/static/skywire-manager-src/src/app/app.module.ts +++ b/static/skywire-manager-src/src/app/app.module.ts @@ -100,6 +100,7 @@ import { VpnDnsConfigComponent } from './components/vpn/layout/vpn-dns-config/vp import { RewardsAddressComponent } from './components/pages/node/node-info/node-info-content/rewards-address-config/rewards-address-config.component'; import { BulkRewardAddressChangerComponent } from './components/layout/bulk-reward-address-changer/bulk-reward-address-changer.component'; import { UserAppSettingsComponent } from './components/pages/node/apps/node-apps/user-app-settings/user-app-settings.component'; +import { NodeLogsComponent } from './components/pages/node/actions/node-logs/node-logs.component'; const globalRippleConfig: RippleGlobalOptions = { disabled: true, @@ -176,6 +177,7 @@ const globalRippleConfig: RippleGlobalOptions = { RewardsAddressComponent, BulkRewardAddressChangerComponent, UserAppSettingsComponent, + NodeLogsComponent, ], imports: [ BrowserModule, diff --git a/static/skywire-manager-src/src/app/components/pages/node/actions/node-actions-helper.ts b/static/skywire-manager-src/src/app/components/pages/node/actions/node-actions-helper.ts index 959dce1092..b57e44e88e 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/actions/node-actions-helper.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/actions/node-actions-helper.ts @@ -13,6 +13,7 @@ import { processServiceError } from 'src/app/utils/errors'; import { SelectableOption, SelectOptionComponent } from 'src/app/components/layout/select-option/select-option.component'; import { MenuOptionData } from 'src/app/components/layout/top-bar/top-bar.component'; import { StorageService } from 'src/app/services/storage.service'; +import { NodeLogsComponent } from './node-logs/node-logs.component'; /** * Helper object for managing the options shown in the menu while in the node details page. @@ -134,7 +135,7 @@ export class NodeActionsHelper { } else if (actionName === 'update') { this.update(); } else if (actionName === 'logs') { - window.open(window.location.origin + '/api/visors/' + nodePk + '/runtime-logs', '_blank'); + this.runtimeLogs(); } else if (actionName === 'reboot') { this.reboot(); } else if (actionName === null) { @@ -220,6 +221,13 @@ export class NodeActionsHelper { window.open(protocol + '//' + hostname + '/pty/' + this.currentNodeKey, '_blank', 'noopener noreferrer'); } + /** + * Opens the modal window for checking the runtime logs of a node. + */ + runtimeLogs() { + NodeLogsComponent.openDialog(this.dialog); + } + back() { if (!this.showingFullList) { this.router.navigate(['nodes']); diff --git a/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.html b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.html new file mode 100644 index 0000000000..a708bdb66a --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.html @@ -0,0 +1,90 @@ + + +
+
+
+ {{ 'node.logs.selected-filter' | translate }} + {{ ('node.logs.' + levelDetails.get(currentMinimumLevel).levelFilterName) | translate }} +
+
+ {{ 'node.logs.filter-ignored' | translate:{number: logEntries.length - filteredLogEntries.length} }} +
+
+
+
+ + + +
+ + {{ 'node.logs.view-rest' | translate:{number: totalLogs} }} + +
+ + + +
+ + + {{ entry.time }} + + + {{ levelDetails.get(entry.level).name }} + + [ + + {{ entry.func }} + + + {{ entry._module }} + + ]: + + {{ entry.msg }} + + + + + + {{ extra.name }} + + + ="{{ extra.value }}" + + +
+
+ + +
+ + + {{ 'node.logs.view-all' | translate }} + + + {{ 'node.logs.view-rest' | translate:{number: totalLogs} }} + + +
+ + +
+ {{ 'node.logs.no-logs' | translate }} +
+ +
+ {{ 'node.logs.no-logs-for-filter' | translate }} +
+ + + + +
+
+ refresh + {{ ('refresh-button.' + elapsedTime.translationVarName) | translate:{time: elapsedTime.elapsedTime} }} +
+
+
+
+ diff --git a/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.scss b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.scss new file mode 100644 index 0000000000..a74a96c7ae --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.scss @@ -0,0 +1,117 @@ +@import "variables"; + +.filter-area { + margin-left: -$mat-dialog-padding; + margin-right: -$mat-dialog-padding; + font-size: $font-size-smaller; + color: $light-gray; + background-color: #d9deeb; + cursor: pointer; + + &:hover { + background-color: darken(#d9deeb, 3%); + } + + .filter-content { + padding: 10px $mat-dialog-padding; + text-align: center; + + .actual-value { + color: $black; + } + + .small { + font-size: $font-size-mini-plus; + } + } + + .filter-margin { + height: 1px; + background-color: $modal-separator; + margin: 0 12px; + } +} + +.log-entry { + margin-top: 15px; + word-break: break-word; + + .transparent { + color: $lighter-gray; + } +} + +.log-entry:first-of-type { + margin-top: 0px; +} + +.log-entry:last-of-type { + margin-bottom: $mat-dialog-padding; +} + +.log-empty-msg { + text-align: center; +} + +.view-raw-link { + color: $blue-medium; +} + +.update-button { + display: flex; + justify-content: center; + cursor: pointer; + + mat-icon { + position: relative; + top: 5px; + margin-right: 5px; + } + + .update-time { + text-align: center; + font-size: $font-size-mini; + color: $black; + margin: 0 5px; + } +} + +.panic-level-color { + color: #ff0000; +} + +.fatal-level-color { + color: #ff0000; +} + +.error-level-color { + color: #d10000; +} + +.warning-level-color { + color: #e27505; +} + +.info-level-color { + color: #0d9519; +} + +.debug-level-color { + color: #0065ff; +} + +.trace-level-color { + color: #468cf5; +} + +.unknown-level-color { + color: #e27505; +} + +.module-color { + color: #a119fc; +} + +.extra-data-color { + color: #ad8021; +} diff --git a/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.ts b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.ts new file mode 100644 index 0000000000..31e123341e --- /dev/null +++ b/static/skywire-manager-src/src/app/components/pages/node/actions/node-logs/node-logs.component.ts @@ -0,0 +1,368 @@ +import { Component, OnInit, OnDestroy, ViewChild, ElementRef, NgZone } from '@angular/core'; +import { MatDialogConfig, MatDialog, MatDialogRef } from '@angular/material/dialog'; +import { Subscription, of, timer } from 'rxjs'; +import { delay, mergeMap } from 'rxjs/operators'; + +import { AppConfig } from 'src/app/app.config'; +import { OperationError } from 'src/app/utils/operation-error'; +import { processServiceError } from 'src/app/utils/errors'; +import { NodeService } from 'src/app/services/node.service'; +import { NodeComponent } from '../../node.component'; +import { environment } from 'src/environments/environment'; +import TimeUtils, { ElapsedTime } from 'src/app/utils/timeUtils'; +import { SnackbarService } from 'src/app/services/snackbar.service'; +import { SelectOptionComponent, SelectableOption } from 'src/app/components/layout/select-option/select-option.component'; + +/** + * Importance levels of the log entries. + */ +enum Level { + PanicLevel, + FatalLevel, + ErrorLevel, + WarnLevel, + InfoLevel, + DebugLevel, + TraceLevel, + Unknown, +} + +/** + * Properties of the importance levels. + */ +class LevelDetails { + // Name to show on the log entries list for the importance level. + name: string; + // CSS class for showing the name of the level. + colorClass: string; + // Translatable var for showing the name of a filter which shows entries of this level or more. + levelFilterName: string; + // Numeric importance of the leve. + importance: number; +} + +/** + * Represents a log entry. + */ +class LogEntry { + // Date and hour. + time: string; + // Importance level. + level: Level; + // Log msg. + msg: string; + // Function that originated the msg. + func: string; + // Module that originated the msg. + _module: string; + // Collection of extra key value pairs that form part of the log entry. + extra: LogEntryExtraValue[] = []; +} + +/** + * Unknown key value pairs that can be part of an log entry. + */ +class LogEntryExtraValue { + name: string; + value: string; +} + +/** + * Modal window for showing the runtime logs of a node. + */ +@Component({ + selector: 'app-node-logs', + templateUrl: './node-logs.component.html', + styleUrls: ['./node-logs.component.scss'], +}) +export class NodeLogsComponent implements OnInit, OnDestroy { + @ViewChild('content') content: ElementRef; + + // Map with the properties of each possible log entry importance level. + levelDetails: Map = new Map([ + [Level.PanicLevel, + {name: 'PANIC', colorClass: 'panic-level-color', levelFilterName: 'filter-panic', importance: 8 } + ], + [Level.FatalLevel, + {name: 'FATAL', colorClass: 'fatal-level-color', levelFilterName: 'filter-faltal', importance: 7 } + ], + [Level.ErrorLevel, + {name: 'ERROR', colorClass: 'error-level-color', levelFilterName: 'filter-error', importance: 6 } + ], + [Level.WarnLevel, + {name: 'WARNING', colorClass: 'warning-level-color', levelFilterName: 'filter-warning', importance: 5 } + ], + [Level.InfoLevel, + {name: 'INFO', colorClass: 'info-level-color', levelFilterName: 'filter-info', importance: 4 } + ], + [Level.DebugLevel, + {name: 'DEBUG', colorClass: 'debug-level-color', levelFilterName: 'filter-debug', importance: 3 } + ], + [Level.TraceLevel, + {name: 'TRACE', colorClass: 'trace-level-color', levelFilterName: 'filter-all', importance: 2 } + ], + [Level.Unknown, + {name: 'UNKNOWN LOG', colorClass: 'unknown-level-color', levelFilterName: 'filter-all', importance: 1 } + ] + ]); + + // Current minimum importanmce level used as filter. + currentMinimumLevel = Level.Unknown; + + loading = true; + // Moment in which the data was loaded. + LoadingMoment = 0; + // How much time has passed since the data was loaded. + elapsedTime: ElapsedTime; + + // How many entries the modal window can show, to avoid performance problems. + maxElementsPerPage = 1000; + + // All logs entries obtained from the back-end. + logEntries: LogEntry[] = []; + // Logs entries shown on the UI. + filteredLogEntries: LogEntry[] = []; + // If not all logs entries ontained from the backend are being shown. + hasMoreLogMessages = false; + // How many log entries were obtained from the backend. + totalLogs = 0; + + /** + * Allows to show an error msg in the snack bar only the first time there is an error + * getting the data, and not all the automatic attemps. + */ + private shouldShowError = true; + + private subscription: Subscription; + private timeUpdateSubscription: Subscription; + + /** + * Opens the modal window. Please use this function instead of opening the window "by hand". + */ + public static openDialog(dialog: MatDialog): MatDialogRef { + const config = new MatDialogConfig(); + config.autoFocus = false; + config.width = AppConfig.largeModalWidth; + + return dialog.open(NodeLogsComponent, config); + } + + constructor( + public dialogRef: MatDialogRef, + private nodeService: NodeService, + private snackbarService: SnackbarService, + private ngZone: NgZone, + private dialog: MatDialog + ) { } + + ngOnInit() { + this.loadData(0); + } + + ngOnDestroy(): void { + this.removeSubscription(); + this.removeTimeSubscription(); + } + + // Shows the modal window for selecting the minimum importance level to use as filter. + showFilters() { + const options: SelectableOption[] = [ + { icon: '', label: 'node.logs.filter-all' }, + { icon: '', label: 'node.logs.filter-debug' }, + { icon: '', label: 'node.logs.filter-info' }, + { icon: '', label: 'node.logs.filter-warning' }, + { icon: '', label: 'node.logs.filter-error' }, + { icon: '', label: 'node.logs.filter-faltal' }, + { icon: '', label: 'node.logs.filter-panic' } + ]; + + const optionTypes: Level[] = [ + Level.Unknown, + Level.DebugLevel, + Level.InfoLevel, + Level.WarnLevel, + Level.ErrorLevel, + Level.FatalLevel, + Level.PanicLevel + ]; + + // Put the check mark on the currently selected option. + for (let i = 0; i <= optionTypes.length; i++) { + if (this.currentMinimumLevel === optionTypes[i]) { + options[i].icon = 'check'; + } + } + + SelectOptionComponent.openDialog(this.dialog, options, 'node.logs.filter-title').afterClosed().subscribe((selectedOption: number) => { + // Use the selected option and update the filtered entries list. + this.currentMinimumLevel = optionTypes[selectedOption - 1]; + this.filter(); + }); + } + + /** + * Gets the logs from the back-end. + * @param delayMilliseconds Delay before getting the data, for retries after errors.. + */ + loadData(delayMilliseconds: number) { + this.removeSubscription(); + + this.loading = true; + this.subscription = of(1).pipe( + // Wait the delay. + delay(delayMilliseconds), + // Load the data. The node pk is obtained from the currently openned node page. + mergeMap(() => this.nodeService.getRuntimeLogs(NodeComponent.getCurrentNodeKey())) + ).subscribe( + (log) => this.onLogsReceived(log), + (err: OperationError) => this.onLogsError(err) + ); + } + + private removeSubscription() { + if (this.subscription) { + this.subscription.unsubscribe(); + } + } + + private removeTimeSubscription() { + if (this.timeUpdateSubscription) { + this.timeUpdateSubscription.unsubscribe(); + } + } + + private onLogsReceived(logs: any[]) { + let amount = 0; + this.totalLogs = logs.length; + // Check if the modal window can show all the entries. + this.hasMoreLogMessages = this.totalLogs - this.maxElementsPerPage > 0; + + logs.forEach(e => { + // Save all the basic data. + const entry = new LogEntry(); + entry.time = e.time; + entry._module = e._module; + entry.msg = e.msg; + entry.func = e.func; + + // Save the importance level. + const receivewdLevel = e.level ? (e.level as string).toLowerCase() : ''; + if (receivewdLevel.includes('panic')) { + entry.level = Level.PanicLevel; + } else if (receivewdLevel.includes('fatal')) { + entry.level = Level.FatalLevel; + } else if (receivewdLevel.includes('error')) { + entry.level = Level.ErrorLevel; + } else if (receivewdLevel.includes('warn')) { + entry.level = Level.WarnLevel; + } else if (receivewdLevel.includes('info')) { + entry.level = Level.InfoLevel; + } else if (receivewdLevel.includes('debug')) { + entry.level = Level.DebugLevel; + } else if (receivewdLevel.includes('trace')) { + entry.level = Level.TraceLevel; + } else { + entry.level = Level.Unknown; + } + + // Format the current_backoff value, if any. + if (e.current_backoff) { + const seg = Math.floor(e.current_backoff / 1000000000); + const min = Math.floor(seg / 60); + const segs = Math.floor(seg % 60); + if (min ) { + entry.extra.push({name: 'current_backoff', value: min + 'm' + segs + 's'}); + } else { + entry.extra.push({name: 'current_backoff', value: segs + 's'}); + } + } + + // Save the error msg, is any. + if (e.error) { + entry.extra.push({name: 'error', value: e.error}); + } + + // List with the properties that should not be considered as unknown extra properties. + const knownProperties = new Set(); + knownProperties.add('time'); + knownProperties.add('_module'); + knownProperties.add('msg'); + knownProperties.add('func'); + knownProperties.add('level'); + knownProperties.add('current_backoff'); + knownProperties.add('error'); + knownProperties.add('log_line'); + + // Save the unknow extra properties. + for(const key in e) { + if (!knownProperties.has(key)) { + entry.extra.push({name: key, value: e[key]}); + } + } + + // Add to the list. + if (this.totalLogs - amount <= this.maxElementsPerPage) { + this.logEntries.push(entry); + } + + amount += 1; + }); + + this.loading = false; + this.LoadingMoment = Date.now(); + + this.startUpdatingTime(); + + this.filter(); + } + + // Removes all the entries that do not meet the filter criteria. + private filter() { + this.filteredLogEntries = []; + + const minimumimportance = this.levelDetails.get(this.currentMinimumLevel).importance; + + this.logEntries.forEach(e => { + const importance = this.levelDetails.get(e.level).importance; + if (minimumimportance <= importance) { + this.filteredLogEntries.push(e); + } + }); + + // Scroll to the bottom. Use a timer to wait for the UI to be updated. + setTimeout(() => { + (this.content.nativeElement as HTMLElement).scrollTop = (this.content.nativeElement as HTMLElement).scrollHeight; + }); + } + + // Updates the text which says how much time has passed since the data was loaded. It does it + // periodically. + startUpdatingTime() { + this.elapsedTime = TimeUtils.getElapsedTime(Math.floor((Date.now() - this.LoadingMoment) / 1000)); + + this.removeTimeSubscription(); + this.timeUpdateSubscription = timer(5000, 5000).subscribe(() => this.ngZone.run(() => { + this.elapsedTime = TimeUtils.getElapsedTime(Math.floor((Date.now() - this.LoadingMoment) / 1000)); + })); + } + + // Returns the URL with the raw log data. + getFullLogsUrl(): string { + const apiPrefix = !environment.production && location.protocol.indexOf('http:') !== -1 ? 'http-api' : 'api'; + + return window.location.origin + '/' + apiPrefix + '/visors/' + NodeComponent.getCurrentNodeKey() + '/runtime-logs';; + } + + private onLogsError(err: OperationError) { + err = processServiceError(err); + + // Show an error msg if it has not be done before during the current attempt to obtain the data. + if (this.shouldShowError) { + this.snackbarService.showError('common.loading-error', null, true, err); + this.shouldShowError = false; + } + + // Retry after a small delay. + this.loadData(AppConfig.connectionRetryDelay); + } +} diff --git a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.html b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.html index 2db343a131..d7a24e1b9f 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.html +++ b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.html @@ -27,7 +27,12 @@ {{ 'node.details.node-info.dmsg-server' | translate }} - + + + + + {{ 'node.details.node-info.no-dmsg-server' | translate }} + {{ 'node.details.node-info.ping' | translate }} diff --git a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.ts b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.ts index 1cf6565179..113efdcb85 100644 --- a/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/node/node-info/node-info-content/node-info-content.component.ts @@ -103,6 +103,17 @@ export class NodeInfoContentComponent implements OnDestroy { }); } + /** + * Returns if the node is connected to a valid DMSG server PK. + */ + hasDmsgServer() { + if (!this.node || this.node.dmsgServerPk.replace(/0/g, '').length === 0) { + return false; + } + + return true; + } + /** * Enables or disables the transport.public_autoconnect setting. */ diff --git a/static/skywire-manager-src/src/app/services/node.service.ts b/static/skywire-manager-src/src/app/services/node.service.ts index 492ffe2d30..2daca7966b 100644 --- a/static/skywire-manager-src/src/app/services/node.service.ts +++ b/static/skywire-manager-src/src/app/services/node.service.ts @@ -332,6 +332,13 @@ export class NodeService { return this.apiService.get(`visors/${nodeKey}/reward`); } + /** + * Gets the runtime logs of the node. + */ + getRuntimeLogs(nodeKey: string) { + return this.apiService.get(`visors/${nodeKey}/runtime-logs`); + } + /** * Removes the rewards address of the node. */ diff --git a/static/skywire-manager-src/src/assets/i18n/en.json b/static/skywire-manager-src/src/assets/i18n/en.json index bd20dd68d7..79aa6c8329 100644 --- a/static/skywire-manager-src/src/assets/i18n/en.json +++ b/static/skywire-manager-src/src/assets/i18n/en.json @@ -87,6 +87,23 @@ "node": { "title": "Visor details", "not-found": "Visor not found.", + "logs" : { + "title": "Runtime Logs", + "no-logs": "No runtime logs were found for this visor.", + "no-logs-for-filter": "No runtime logs matches the selected filter.", + "view-all": "View all logs in raw format >", + "view-rest": "View all {{ number }} elements in raw format >", + "selected-filter": "Showing:", + "filter-ignored": "The filter excluded {{ number }} entries", + "filter-title": "Filter", + "filter-all": "All logs", + "filter-debug": "Debug or more important", + "filter-info": "Info or more important", + "filter-warning": "Warning or more important", + "filter-error": "Error or more important", + "filter-faltal": "Faltal or more important", + "filter-panic": "Panic" + }, "statuses": { "online": "Online", "online-tooltip": "The visor is online.", @@ -108,6 +125,7 @@ "public-ip": "Public IP:", "ip": "IP:", "dmsg-server": "DMSG server:", + "no-dmsg-server": "Not connected", "ping": "Ping:", "node-version": "Visor version:", "build-type": "Build type:", diff --git a/static/skywire-manager-src/src/assets/i18n/es.json b/static/skywire-manager-src/src/assets/i18n/es.json index 22dd8e965a..27dd44541f 100644 --- a/static/skywire-manager-src/src/assets/i18n/es.json +++ b/static/skywire-manager-src/src/assets/i18n/es.json @@ -87,6 +87,23 @@ "node": { "title": "Detalles del visor", "not-found": "Visor no encontrado.", + "logs" : { + "title": "Registros de operación", + "no-logs": "No se encontraron registros de operación para este visor.", + "no-logs-for-filter": "No hay registros de operación que coincidan con el filtro seleccionado.", + "view-all": "Ver todos los registros en formato original >", + "view-rest": "Ver los {{ number }} elementos en formato original >", + "selected-filter": "Mostrando:", + "filter-ignored": "En filtro excluyó {{ number }} registros", + "filter-title": "Filtro", + "filter-all": "Todos los registros", + "filter-debug": "Debug o más importante", + "filter-info": "Info o más importante", + "filter-warning": "Warning o más importante", + "filter-error": "Error o más importante", + "filter-faltal": "Faltal o más importante", + "filter-panic": "Panic" + }, "statuses": { "online": "Online", "online-tooltip": "El visor se encuentra online.", @@ -108,6 +125,7 @@ "public-ip": "IP pública:", "ip": "IP:", "dmsg-server": "Servidor DMSG:", + "no-dmsg-server": "No connectado", "ping": "Ping:", "node-version": "Versión del visor:", "build-type": "Tipo de build:", diff --git a/static/skywire-manager-src/src/assets/i18n/es_base.json b/static/skywire-manager-src/src/assets/i18n/es_base.json index c22f858f3d..8c853eda94 100644 --- a/static/skywire-manager-src/src/assets/i18n/es_base.json +++ b/static/skywire-manager-src/src/assets/i18n/es_base.json @@ -87,6 +87,23 @@ "node": { "title": "Visor details", "not-found": "Visor not found.", + "logs" : { + "title": "Runtime Logs", + "no-logs": "No runtime logs were found for this visor.", + "no-logs-for-filter": "No runtime logs matches the selected filter.", + "view-all": "View all logs in raw format >", + "view-rest": "View all {{ number }} elements in raw format >", + "selected-filter": "Showing:", + "filter-ignored": "The filter excluded {{ number }} entries", + "filter-title": "Filter", + "filter-all": "All logs", + "filter-debug": "Debug or more important", + "filter-info": "Info or more important", + "filter-warning": "Warning or more important", + "filter-error": "Error or more important", + "filter-faltal": "Faltal or more important", + "filter-panic": "Panic" + }, "statuses": { "online": "Online", "online-tooltip": "The visor is online.", @@ -108,6 +125,7 @@ "public-ip": "Public IP:", "ip": "IP:", "dmsg-server": "DMSG server:", + "no-dmsg-server": "Not connected", "ping": "Ping:", "node-version": "Visor version:", "build-type": "Build type:", From 0db5137bd1a27014ce905c038359bfc3dbc43b3f Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Sat, 15 Apr 2023 19:18:42 -0500 Subject: [PATCH 23/62] rebuild UI (#1530) --- pkg/visor/static/268.35663b722cee380a.js | 1 + pkg/visor/static/268.c7fec9c243c2618c.js | 1 - pkg/visor/static/502.30b5c9a96853e2a7.js | 1 - pkg/visor/static/502.58e896e8ce0ed015.js | 1 + pkg/visor/static/974.9e3a712842f1432f.js | 1 - pkg/visor/static/974.c5a367fdf75808a3.js | 1 + pkg/visor/static/assets/i18n/en.json | 18 ++++++++++++++++++ pkg/visor/static/assets/i18n/es.json | 18 ++++++++++++++++++ pkg/visor/static/assets/i18n/es_base.json | 18 ++++++++++++++++++ pkg/visor/static/index.html | 2 +- pkg/visor/static/main.2875ec8f84204886.js | 1 - pkg/visor/static/main.f5df9adb8fff5a09.js | 1 + ...8c37ca75.js => runtime.812580d833aad179.js} | 2 +- static/skywire-manager-src/dist/index.html | 2 +- 14 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 pkg/visor/static/268.35663b722cee380a.js delete mode 100644 pkg/visor/static/268.c7fec9c243c2618c.js delete mode 100644 pkg/visor/static/502.30b5c9a96853e2a7.js create mode 100644 pkg/visor/static/502.58e896e8ce0ed015.js delete mode 100644 pkg/visor/static/974.9e3a712842f1432f.js create mode 100644 pkg/visor/static/974.c5a367fdf75808a3.js delete mode 100644 pkg/visor/static/main.2875ec8f84204886.js create mode 100644 pkg/visor/static/main.f5df9adb8fff5a09.js rename pkg/visor/static/{runtime.5630953d8c37ca75.js => runtime.812580d833aad179.js} (61%) diff --git a/pkg/visor/static/268.35663b722cee380a.js b/pkg/visor/static/268.35663b722cee380a.js new file mode 100644 index 0000000000..feb2a5ff3d --- /dev/null +++ b/pkg/visor/static/268.35663b722cee380a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[268],{4268:e=>{e.exports=JSON.parse('{"common":{"save":"Guardar","cancel":"Cancelar","downloaded":"Recibido","uploaded":"Enviado","loading-error":"Hubo un error obteniendo los datos. Reintentando...","operation-error":"Hubo un error al intentar completar la operaci\xf3n.","no-connection-error":"No hay conexi\xf3n a Internet o conexi\xf3n con el hipervisor.","error":"Error:","refreshed":"Datos refrescados.","options":"Opciones","logout":"Cerrar sesi\xf3n","logout-error":"Error cerrando la sesi\xf3n.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"S\xed","no":"No","unknown":"Desconocido","close":"Cerrar","window-size-error":"La ventana es demasiado estrecha para el contenido."},"labeled-element":{"edit-label":"Editar etiqueta","remove-label":"Remover etiqueta","go-to-settings":"Ir a la configuraci\xf3n","copy":"Copiar","remove-label-confirmation":"\xbfRealmente desea eliminar la etiqueta?","unnamed-element":"Sin nombre","unnamed-local-visor":"Visor local","local-element":"Local","tooltip":"Haga clic para copiar la entrada o cambiar la etiqueta","tooltip-with-text":"{{ text }} (Haga clic para copiar la entrada o cambiar la etiqueta)"},"labels":{"title":"Etiquetas","info":"Etiquetas que ha introducido para identificar f\xe1cilmente visores, transportes y otros elementos, en lugar de tener que leer identificadores generados por una m\xe1quina.","list-title":"Lista de etiquetas","label":"Etiqueta","id":"ID del elemento","type":"Tipo","delete-confirmation":"\xbfSeguro que desea borrar la etiqueta?","delete-selected-confirmation":"\xbfSeguro que desea borrar las etiquetas seleccionados?","delete":"Borrar etiqueta","deleted":"Operaci\xf3n de borrado completada.","empty":"No hay etiquetas guardadas.","empty-with-filter":"Ninguna etiqueta coincide con los criterios de filtrado seleccionados.","filter-dialog":{"label":"La etiqueta debe contener","id":"El id debe contener","type":"El tipo debe ser","type-options":{"any":"Cualquiera","visor":"Visor","dmsg-server":"Servidor DMSG","transport":"Transporte"}}},"filters":{"filter-action":"Filtrar","filter-info":"Lista de filtros.","press-to-remove":"(Presione para remover los filtros)","remove-confirmation":"\xbfSeguro que desea remover los filtros?"},"tables":{"title":"Ordenar por","sorting-title":"Ordenado por:","sort-by-value":"Valor","sort-by-label":"Etiqueta","label":"(etiqueta)","inverted-order":"(invertido)"},"start":{"title":"Inicio","loading-error":"Hubo un error obteniendo los datos iniciales. Reintentando..."},"node":{"title":"Detalles del visor","not-found":"Visor no encontrado.","logs":{"title":"Registros de operaci\xf3n","no-logs":"No se encontraron registros de operaci\xf3n para este visor.","no-logs-for-filter":"No hay registros de operaci\xf3n que coincidan con el filtro seleccionado.","view-all":"Ver todos los registros en formato original >","view-rest":"Ver los {{ number }} elementos en formato original >","selected-filter":"Mostrando:","filter-ignored":"En filtro excluy\xf3 {{ number }} registros","filter-title":"Filtro","filter-all":"Todos los registros","filter-debug":"Debug o m\xe1s importante","filter-info":"Info o m\xe1s importante","filter-warning":"Warning o m\xe1s importante","filter-error":"Error o m\xe1s importante","filter-faltal":"Faltal o m\xe1s importante","filter-panic":"Panic"},"statuses":{"online":"Online","online-tooltip":"El visor se encuentra online.","connecting":"Conectando","connecting-tooltip":"El visor se encuentra online, pero todav\xeda est\xe1 conectando con el uptime tracker.","unknown":"Desconocido","unknown-tooltip":"El visor se encuentra online, pero no ha sido posible determinar si est\xe1 conectado con el uptime tracker.","partially-online":"Online con problemas","partially-online-tooltip":"El visor se encuentra online, pero desconectado del uptime tracker.","offline":"Offline","offline-tooltip":"El visor se encuentra offline."},"details":{"node-info":{"title":"Informaci\xf3n del visor","label":"Etiqueta:","public-key":"Llave p\xfablica:","symmetic-nat":"NAT sim\xe9trica:","public-ip":"IP p\xfablica:","ip":"IP:","dmsg-server":"Servidor DMSG:","no-dmsg-server":"No connectado","ping":"Ping:","node-version":"Versi\xf3n del visor:","build-type":"Tipo de build:","skybian-version":"Versi\xf3n de Skybian:","unknown-build":"Desconocido","time":{"title":"Tiempo online:","seconds":"unos segundos","minute":"1 minuto","minutes":"{{ time }} minutos","hour":"1 hora","hours":"{{ time }} horas","day":"1 d\xeda","days":"{{ time }} d\xedas","week":"1 semana","weeks":"{{ time }} semanas"}},"rewards-info":{"title":"Informaci\xf3n de Recompensas","rewards-address":"Direcci\xf3n de recompensas:","not-registered":"No registrado","not-registered-info":"No ha especificado una direcci\xf3n de Skycoin para recibir recompensas para este visor. Si quiere registrar el visor para recibir recompensas, presione el bot\xf3n \\"Establecer direcci\xf3n\\" e introduzca la una direcci\xf3n de Skycoin.","open-in-explorer":"Abrir en el explorador de blockchain","set-address-button":"Establecer direcci\xf3n","change-address-button":"Cambiar direcci\xf3n"},"transports-info":{"title":"Informaci\xf3n de Transportes","autoconnect":"Autoconectar:","autoconnect-info":"Al activarse, el visor crear\xe1 autom\xe1ticamente los transportes necesarios cuando se solicite la conexi\xf3n a un visor p\xfablico. Al desactivarse, los transportes deber\xe1n ser creados antes de poder establecer la conexi\xf3n.","enabled":"Activado","disabled":"Desactivado","enable-button":"Activar","disable-button":"Desactivar","enable-confirmation":"\xbfSeguro que desea activar la funci\xf3n de autoconectar?","disable-confirmation":"\xbfSeguro que desea desactivar la funci\xf3n de autoconectar?","enable-done":"La funci\xf3n de autoconectar ha sido activada.","disable-done":"La funci\xf3n de autoconectar ha sido desactivada."},"router-info":{"title":"Informaci\xf3n del Enrutador","min-hops":"Saltos m\xednimos:","max-hops":"Saltos m\xe1ximos:","change-config-button":"Cambiar configuraci\xf3n"},"node-health":{"title":"Informaci\xf3n de Salud","status":"Estatus:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Datos de tr\xe1fico"},"tabs":{"info":"Info","apps":"Apps","routing":"Enrutamiento"},"error-load":"Hubo un error al intentar refrescar los datos. Reintentando..."},"rewards-address-config":{"title":"Configuraci\xf3n de direcci\xf3n de recompensas","info":"Aqu\xed usted puede establecer la direcci\xf3n de Skycoin a la que quiere que se env\xeden las recompensas. Si deja la direcci\xf3n vac\xeda, el registro ser\xe1 eliminado y el visor no recibir\xe1 recompensas.","more-info-link":"(M\xe1s informaci\xf3n acerca del sistema de recompensas)","address":"Direcci\xf3n ","address-error":"Por favor, coloque una direcci\xf3n Skycoin valida.","save-config-button":"Guardar configuraci\xf3n","done":"Cambios guardados.","empty-warning":"La direcci\xf3n est\xe1 vac\xeda, as\xed que el registro ser\xe1 eliminado y no recibir\xe1 recompensas. \xbfRealmente desea continuar?"},"router-config":{"title":"Configuraci\xf3n del Enrutador","info":"Aqu\xed podr\xe1 configurar cuantos saltos la conexi\xf3n deber\xe1 realizar a trav\xe9s de otros visores de Skywire antes de alcanzar el destino final. NOTA: los cambios no afectar\xe1n a las rutas ya existentes.","min-hops":"Saltos m\xednimos","min-hops-error":"Por favor, coloque un n\xfamero valido.","save-config-button":"Guardar configuraci\xf3n","done":"Cambios guardados."},"nodes":{"title":"Lista de visores","dmsg-title":"DMSG","modify-rewards-all":"Cambiar direcci\xf3n de recompensas","update-all":"Actualizar todos los visores online","hypervisor":"Hypervisor","state":"Estado","state-tooltip":"Estado actual","label":"Etiqueta","key":"Llave","dmsg-server":"Servidor DMSG","ping":"Ping","hypervisor-info":"Este visor es el Hypervisor actual.","copy-key":"Copiar llave","copy-dmsg":"Copiar llave DMSG","copy-data":"Copiar datos","view-node":"Ver visor","delete-node":"Remover visor","delete-all-offline":"Remover todos los visores offline","error-load":"Hubo un error al intentar refrescar la lista. Reintentando...","empty":"No hay ning\xfan visor conectado a este hypervisor.","empty-with-filter":"Ningun visor coincide con los criterios de filtrado seleccionados.","delete-node-confirmation":"\xbfSeguro que desea remover el visor de la lista?","delete-all-offline-confirmation":"\xbfSeguro que desea remover todos los visores offline de la lista?","delete-all-filtered-offline-confirmation":"Todos los visores offline que satisfagan los criterios de filtrado actuales ser\xe1n removidos de la lista. \xbfSeguro que desea continuar?","deleted":"Visor removido.","deleted-singular":"1 visor offline removido.","deleted-plural":"{{ number }} visores offline removidos.","no-visors-to-update":"No hay visores para actualizar.","no-visors-to-modify":"No hay visores para modificar.","filter-dialog":{"online":"El visor debe estar","label":"La etiqueta debe contener","key":"La llave debe contener","dmsg":"La llave del servidor DMSG debe contener","online-options":{"any":"Online u offline","online":"Online","offline":"Offline"}}},"bulk-rewards":{"title":"Cambiar direcci\xf3n de recompensas","info":"Introduzca la direcci\xf3n de Skycoin donde desea recibir las recompensas. La direcci\xf3n ser\xe1 establecida en todos los visores seleccionados. Si deja la direcci\xf3n vac\xeda, el registro ser\xe1 eliminado y los visores no recibir\xe1n recompensas. Tambi\xe9n puede colocar la direcci\xf3n de recompensas de cada visor individualmente usando la opci\xf3n en la pantalla de detalles del visor.","more-info-link":"(M\xe1s informaci\xf3n acerca del sistema de recompensas)","address":"Nueva direcci\xf3n","select-visors":"Visores a modificar:","current-address":"Direcci\xf3n actual:","not-registered":"Ninguna (no registrado para recompensas).","checking":"Consultando...","error-checking":"Error consultando:","processing":"Procesando...","error-processing":"Error realizando el cambio:","done":"Cambio realizado.","perform-changes":"Aplicar cambios","empty-warning":"La direcci\xf3n est\xe1 vac\xeda, as\xed que los registros ser\xe1n eliminados y no recibir\xe1 recompensas. \xbfRealmente desea continuar?"},"edit-label":{"label":"Etiqueta","done":"Etiqueta guardada.","label-removed-warning":"La etiqueta fue removida."},"settings":{"title":"Configuraci\xf3n","checking-auth":"Revisando configuraci\xf3n de autenticaci\xf3n.","password":{"initial-config-help":"Use esta opci\xf3n para establecer la contrase\xf1a inicial. Despu\xe9s de establecer una contrase\xf1a no es posible usar esta opci\xf3n para modificarla.","help":"Opciones para cambiar la contrase\xf1a.","old-password":"Contrase\xf1a actual","new-password":"Nueva contrase\xf1a","repeat-password":"Repita la contrase\xf1a","password-changed":"Contrase\xf1a cambiada.","error-changing":"Error cambiando la contrase\xf1a.","initial-config":{"title":"Establecer contrase\xf1a inicial","password":"Contrase\xf1a","repeat-password":"Repita la contrase\xf1a","set-password":"Establecer contrase\xf1a","done":"Contrase\xf1a establecida. Por favor \xfasela para acceder al sistema.","error":"Error. Por favor aseg\xfarese de que no hubiese establecido la contrase\xf1a anteriormente."},"errors":{"bad-old-password":"La contrase\xf1a actual introducida no es correcta.","old-password-required":"La contrase\xf1a actual es requerida.","new-password-error":"La contrase\xf1a debe tener entre 6 y 64 caracteres.","passwords-not-match":"Las contrase\xf1as no coinciden.","default-password":"No utilice la contrase\xf1a por defecto (1234)."}},"updater-config":{"open-link":"Mostrar la configuraci\xf3n del actualizador","open-confirmation":"La configuraci\xf3n del actualizador es s\xf3lo para usuarios experimentados. Seguro que desea continuar?","help":"Utilice este formulario para modificar la configuraci\xf3n que utilizar\xe1 el actualizador. Se ignorar\xe1n todos los campos vac\xedos. La configuraci\xf3n se utilizar\xe1 para todas las operaciones de actualizaci\xf3n, sin importar qu\xe9 elemento se est\xe9 actualizando, as\xed que por favor tenga cuidado.","channel":"Canal","version":"Versi\xf3n","archive-url":"URL del archivo","checksum-url":"URL del checksum","not-saved":"Los cambios a\xfan no se han guardado.","save":"Guardar cambios","remove-settings":"Remover la configuraci\xf3n","saved":"Las configuracion personalizada ha sido guardada.","removed":"Las configuracion personalizada ha sido removida.","save-confirmation":"\xbfSeguro que desea aplicar la configuraci\xf3n personalizada?","remove-confirmation":"\xbfSeguro que desea remover la configuraci\xf3n personalizada?"},"change-password":"Cambiar contrase\xf1a","refresh-rate":"Frecuencia de refrescado","refresh-rate-help":"Tiempo que el sistema espera para actualizar autom\xe1ticamente los datos.","refresh-rate-confirmation":"Frecuencia de refrescado cambiada.","seconds":"segundos"},"login":{"password":"Contrase\xf1a","incorrect-password":"Contrase\xf1a incorrecta.","initial-config":"Configurar lanzamiento inicial"},"actions":{"menu":{"terminal":"Terminal","config":"Configuraci\xf3n","update":"Actualizar","reboot":"Reiniciar","logs":"Ver logs"},"reboot":{"confirmation":"\xbfSeguro que desea reiniciar el visor?","done":"El visor se est\xe1 reiniciando."},"update":{"confirmation":"Una terminal ser\xe1 abierta en una nueva pesta\xf1a y el proceso de actualizaci\xf3n iniciar\xe1 autom\xe1ticamente. \xbfDesea continuar?"},"terminal-options":{"full":"Terminal completa","simple":"Terminal simple"},"terminal":{"title":"Terminal","input-start":"Terminal de Skywire para {{address}}","error":"Error inesperado mientras se intentaba ejecutar el comando."}},"update":{"title":"Actualizar","error-title":"Error","processing":"Buscando actualizaciones...","no-update":"No hay ninguna actualizaci\xf3n para el visor. La versi\xf3n instalada actualmente es:","no-updates":"No se encontraron nuevas actualizaciones.","already-updating":"Algunos visores ya est\xe1n siendo actualizandos:","with-error":"No fue posible verificar los siguientes visores:","update-available":"Las siguientes actualizaciones fueron encontradas:","update-available-singular":"Las siguientes actualizaciones para 1 visor fueron encontradas:","update-available-plural":"Las siguientes actualizaciones para {{ number }} visores fueron encontradas:","update-available-additional-singular":"Las siguientes actualizaciones adicionales para 1 visor fueron encontradas:","update-available-additional-plural":"Las siguientes actualizaciones adicionales para {{ number }} visores fueron encontradas:","update-instructions":"Haga clic en el bot\xf3n \'Instalar actualizaciones\' para continuar.","updating":"La operaci\xf3n de actualizaci\xf3n se ha iniciado, puede abrir esta ventana nuevamente para verificar el progreso:","version-change":"De {{ currentVersion }} a {{ newVersion }}","selected-channel":"Canal seleccionado:","downloaded-file-name-prefix":"Descargando: ","speed-prefix":"Velocidad: ","time-downloading-prefix":"Tiempo descargando: ","time-left-prefix":"Tiempo aprox. faltante: ","starting":"Preparando para actualizar","finished":"Conexi\xf3n de estado terminada","install":"Instalar actualizaciones"},"update-all":{"title":"Actualizar","updatable-list-text":"Por favor, presione los botones de los visores que desea actualizar. Una terminal ser\xe1 abierta en una nueva pesta\xf1a por cada visor y el proceso de actualizaci\xf3n iniciar\xe1 autom\xe1ticamente.","non-updatable-list-text":"Los siguientes visores no pueden ser actualizados v\xeda la terminal:","update-button":"Actualizar"},"apps":{"log":{"title":"Log","empty":"No hay mensajes de log para el rango de fecha seleccionado.","filter-button":"Mostrando s\xf3lo logs generados desde:","view-all":"Ver todas las {{ totalLogs }} entradas","filter":{"title":"Filtro","filter":"Mostrar s\xf3lo logs generados desde","7-days":"Los \xfaltimos 7 d\xedas","1-month":"Los \xfaltimos 30 d\xedas","3-months":"Los \xfaltimos 3 meses","6-months":"Los \xfaltimos 6 meses","1-year":"El \xfaltimo a\xf1o","all":"mostrar todos"}},"apps-list":{"title":"Aplicaciones","title-official":"Aplicaciones Oficiales","title-user":"Aplicaciones de Usuario","list-title":"Lista de aplicaciones","app-name":"Nombre","port":"Puerto","state":"Estado","state-tooltip":"Estado actual","auto-start":"Autoinicio","empty-official":"El visor no tiene ninguna aplicaci\xf3n oficial.","empty-user":"El visor no tiene ninguna aplicaci\xf3n de usuario.","empty-with-filter":"Ninguna app coincide con los criterios de filtrado seleccionados.","disable-autostart":"Deshabilitar autoinicio","enable-autostart":"Habilitar autoinicio","autostart-disabled":"Autoinicio deshabilitado","autostart-enabled":"Autoinicio habilitado","unavailable-logs-error":"No es posible mostrar los logs mientras la aplicaci\xf3n no se est\xe1 ejecutando.","filter-dialog":{"state":"El estado debe ser","name":"El nombre debe contener","port":"El puerto debe contener","autostart":"El autoinicio debe estar","state-options":{"any":"Iniciada o detenida","running":"Iniciada","stopped":"Detenida"},"autostart-options":{"any":"Activado or desactivado","enabled":"Activado","disabled":"Desactivado"}}},"user-app-settings":{"title":"{{ name }} (Configuraci\xf3n)","info":"Aqu\xed puede editar la configuraci\xf3n de la app como pares nombre-valor. Por favor, revise la documentaci\xf3n de la aplicaci\xf3n para ver cu\xe1les configuraciones y valores soporta esta app.","name":"Nombre {{ number }}","value":"Valor {{ number }}","remove":"Remover","add":"Agregar configuraci\xf3n","save":"Guardar","invalid-confirmation":"Una o m\xe1s configuraciones no tienen nombre y ser\xe1n ignoradas. \xbfDesea continuar?","empty-confirmation":"La lista de configuraci\xf3n est\xe1 vac\xeda. \xbfRealmente desea continuar?","changes-made":"Los cambios han sido realizados."},"vpn-socks-server-settings":{"socks-title":"Configuraci\xf3n de Skysocks","vpn-title":"Configuraci\xf3n de VPN-Server","new-password":"Nueva contrase\xf1a (dejar en blanco para eliminar la contrase\xf1a)","repeat-password":"Repita la contrase\xf1a","netifc":"Interfaz de red predeterminada (opcional)","passwords-not-match":"Las contrase\xf1as no coinciden.","secure-mode-check":"Usar modo seguro","secure-mode-info":"Cuando est\xe1 activo, el servidor no permite SSH con los clientes y no permite ning\xfan tr\xe1fico de clientes VPN a la red local del servidor.","save":"Guardar","remove-passowrd-confirmation":"Ha dejado el campo de contrase\xf1a vac\xedo. \xbfSeguro que desea eliminar la contrase\xf1a?","change-passowrd-confirmation":"\xbfSeguro que desea cambiar la contrase\xf1a?","changes-made":"Los cambios han sido realizados."},"vpn-socks-client-settings":{"socks-title":"Configuraci\xf3n de Skysocks-Client","vpn-title":"Configuraci\xf3n de VPN-Client","discovery-tab":"Buscar","remote-visor-tab":"Introducir manualmente","settings-tab":"Configuracion","history-tab":"Historial","use":"Usar estos datos","change-note":"Cambiar nota","remove-entry":"Remover entrada","note":"Nota:","note-entered-manually":"Introducido manualmente","note-obtained":"Obtenido del servicio de descubrimiento","key":"Llave:","port":"Puerto:","location":"Ubicaci\xf3n:","state-available":"Disponible","state-offline":"Offline","public-key":"Llave p\xfablica del visor remoto","password":"Contrase\xf1a","password-history-warning":"Nota: la contrase\xf1a no se guardar\xe1 en el historial.","copy-pk-info":"Copiar la llave p\xfablica.","copied-pk-info":"La llave p\xfablica ha sido copiada.","copy-pk-error":"Hubo un problema al intentar cambiar la llave p\xfablica.","no-elements":"Actualmente no hay elementos para mostrar. Por favor, int\xe9ntelo de nuevo m\xe1s tarde.","no-elements-for-filters":"No hay elementos que cumplan los criterios de filtro.","no-filter":"No se ha seleccionado ning\xfan filtro","click-to-change":"Haga clic para cambiar","remote-key-length-error":"La llave p\xfablica debe tener 66 caracteres.","remote-key-chars-error":"La llave p\xfablica s\xf3lo debe contener caracteres hexadecimales.","save":"Guardar","remove-from-history-confirmation":"\xbfSeguro de que desea eliminar la entrada del historial?","change-key-confirmation":"\xbfSeguro que desea cambiar la llave p\xfablica del visor remoto?","changes-made":"Los cambios han sido realizados.","no-history":"Esta pesta\xf1a mostrar\xe1 las \xfaltimas {{ number }} llaves p\xfablicas usadas.","default-note-warning":"La nota por defecto ha sido utilizada.","pagination-info":"{{ currentElementsRange }} de {{ totalElements }}","dns":"Direcci\xf3n IP del servidor DNS personalizado","dns-error":"Valor inv\xe1lido.","killswitch-check":"Activar killswitch","killswitch-info":"Cuando est\xe1 activo, todas las conexiones de red se desactivar\xe1n si la aplicaci\xf3n se est\xe1 ejecutando pero la protecci\xf3n VPN est\xe1 interrumpida (por errores temporales o cualquier otro problema). Esto evita fugas de datos.","settings-changed-alert":"Los cambios a\xfan no se han guardado.","save-settings":"Guardar configuracion","change-note-dialog":{"title":"Cambiar Nota","note":"Nota"},"password-dialog":{"title":"Introducir Contrase\xf1a","password":"Contrase\xf1a","info":"Se le solicita una contrase\xf1a porque una contrase\xf1a fue utilizada cuando se cre\xf3 la entrada seleccionada, pero no fue guardada por razones de seguridad. Puede dejar la contrase\xf1a vac\xeda si es necesario.","continue-button":"Continuar"},"filter-dialog":{"title":"Filtros","country":"El pa\xeds debe ser","any-country":"Cualquiera","location":"La ubicaci\xf3n debe contener","pub-key":"La llave p\xfablica debe contener","apply":"Aplicar"}},"stop-app":"Detener","start-app":"Iniciar","view-logs":"Ver logs","settings":"Configuraci\xf3n","open":"Abrir","error":"Se produjo un error y no fue posible realizar la operaci\xf3n.","stop-confirmation":"\xbfSeguro que desea detener la aplicaci\xf3n?","stop-selected-confirmation":"\xbfSeguro que desea detener las aplicaciones seleccionadas?","disable-autostart-confirmation":"\xbfSeguro que desea deshabilitar el autoinicio de la aplicaci\xf3n?","enable-autostart-confirmation":"\xbfSeguro que desea habilitar el autoinicio de la aplicaci\xf3n?","disable-autostart-selected-confirmation":"\xbfSeguro que desea deshabilitar el autoinicio de las aplicaciones seleccionadas?","enable-autostart-selected-confirmation":"\xbfSeguro que desea habilitar el autoinicio de las aplicaciones seleccionadas?","operation-completed":"Operaci\xf3n completada.","operation-unnecessary":"La selecci\xf3n ya tiene la configuraci\xf3n solicitada.","status-running":"Corriendo","status-connecting":"Conectando","status-stopped":"Detenida","status-failed":"Finaliz\xf3 con el siguiente error: {{ error }}","status-running-tooltip":"La aplicaci\xf3n est\xe1 actualmente corriendo","status-connecting-tooltip":"La aplicaci\xf3n est\xe1 actualmente conectando","status-stopped-tooltip":"La aplicaci\xf3n est\xe1 actualmente detenida","status-failed-tooltip":"La app finaliz\xf3 con el siguiente error: {{ error }}"},"transports":{"title":"Transportes","info":"Conexiones que tiene con visores remotos de Skywire, para permitir que las aplicaciones Skywire locales se comuniquen con las aplicaciones que se ejecutan en esos visores remotos.","list-title":"Lista de transportes","offline":"Offline","persistent":"Persistente","persistent-tooltip":"Transportes persistentes, los cuales son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","persistent-transport-tooltip":"Este transporte es persistente, as\xed que es creado autom\xe1ticamente al iniciar el visor y es recreado autom\xe1ticamente en caso de desconexi\xf3n.","persistent-transport-button-tooltip":"Este transporte es persistente, as\xed que es creado autom\xe1ticamente al iniciar el visor y es recreado autom\xe1ticamente en caso de desconexi\xf3n. Presione aqu\xed para volverlo no persistente.","non-persistent-transport-button-tooltip":"Presione aqu\xed para volver persistente el transporte. Los transportes persistentes son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","make-persistent":"Volver persistente","make-non-persistent":"Volver no persistente","make-selected-persistent":"Volver persistentes los seleccionados","make-selected-non-persistent":"Volver no persistentes los seleccionados","changes-made":"Cambios hechos.","no-changes-needed":"Ning\xfan cambio fue necesario.","id":"ID","remote-node":"Remoto","type":"Tipo","create":"Crear transporte","make-persistent-confirmation":"\xbfSeguro que desea volver persistente el transporte?","make-non-persistent-confirmation":"\xbfSeguro que desea volver no persistente el transporte?","make-selected-persistent-confirmation":"\xbfSeguro que desea volver persistentes los transportes seleccionados?","make-selected-non-persistent-confirmation":"\xbfSeguro que desea volver no persistentes los transportes seleccionados?","make-offline-non-persistent-confirmation":"\xbfSeguro que desea volver no persistente el transporte? No seguir\xe1 siendo mostrado en la lista mientras se encuentre offline.","delete-confirmation":"\xbfSeguro que desea borrar el transporte?","delete-persistent-confirmation":"Este transporte es persistente, as\xed que puede ser recreado poco despu\xe9s de ser borrado. \xbfSeguro que desea borrarlo?","delete-selected-confirmation":"\xbfSeguro que desea borrar los transportes seleccionados?","delete":"Borrar transporte","deleted":"Operaci\xf3n de borrado completada.","empty":"El visor no tiene ning\xfan transporte.","empty-with-filter":"Ningun transporte coincide con los criterios de filtrado seleccionados.","details":{"title":"Detalles","basic":{"title":"Informaci\xf3n b\xe1sica","persistent":"Persistente:","id":"ID:","local-pk":"Llave p\xfablica local:","remote-pk":"Llave p\xfablica remota:","type":"Tipo:"},"data":{"title":"Transmisi\xf3n de datos","uploaded":"Datos enviados:","downloaded":"Datos recibidos:"}},"dialog":{"remote-key":"Llave p\xfablica remota","label":"Nombre del transporte (opcional)","transport-type":"Tipo de transporte","make-persistent":"Hacer persistente","persistent-tooltip":"Los transportes persistentes son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","only-persistent-created":"El transporte persistente fue creado, pero podr\xeda no haber sido activado.","success":"Transporte creado.","success-without-label":"El transporte fue creado, pero no fue posible guardar la etiqueta.","errors":{"remote-key-length-error":"La llave p\xfablica remota debe tener 66 caracteres.","remote-key-chars-error":"La llave p\xfablica remota s\xf3lo debe contener caracteres hexadecimales.","transport-type-error":"El tipo de transporte es requerido."}},"filter-dialog":{"persistent":"El transporte debe ser","id":"El id debe contener","remote-node":"La llave remota debe contener","persistent-options":{"any":"Cualquiera","persistent":"Persistente","non-persistent":"No persistente"}}},"routes":{"title":"Rutas","info":"Caminos utilizados para llegar a los visores remotos con los que se han establecido transportes. Las rutas se generan autom\xe1ticamente seg\xfan sea necesario.","list-title":"Lista de rutas","key":"Llave","type":"Tipo","source":"Inicio","destination":"Destino","delete-confirmation":"\xbfSeguro que desea borrar la ruta?","delete-selected-confirmation":"\xbfSeguro que desea borrar las rutas seleccionadas?","delete":"Borrar ruta","deleted":"Operaci\xf3n de borrado completada.","empty":"El visor no tiene ninguna ruta.","empty-with-filter":"Ninguna ruta coincide con los criterios de filtrado seleccionados.","details":{"title":"Detalles","basic":{"title":"Informaci\xf3n b\xe1sica","key":"Llave:","rule":"Regla:"},"summary":{"title":"Resumen de regla","keep-alive":"Keep alive:","type":"Tipo de regla:","key-route-id":"ID de la llave de la ruta:"},"specific-fields-titles":{"app":"Campos de applicaci\xf3n","forward":"Campos de reenv\xedo","intermediary-forward":"Campos de reenv\xedo intermedio"},"specific-fields":{"route-id":"ID de la siguiente ruta:","transport-id":"ID del siguiente transporte:","destination-pk":"Llave p\xfablica de destino:","source-pk":"Llave p\xfablica de origen:","destination-port":"Puerto de destino:","source-port":"Puerto de origen:"}},"filter-dialog":{"key":"La llave debe contener","type":"El tipo debe ser","source":"El inicio debe contener","destination":"El destino debe contener","any-type-option":"Cualquiera"}},"copy":{"tooltip":"Presione para copiar","tooltip-with-text":"{{ text }} (Presione para copiar)","copied":"\xa1Copiado!"},"selection":{"select-all":"Seleccionar todo","unselect-all":"Deseleccionar todo","delete-all":"Borrar los elementos seleccionados","start-all":"Iniciar las apps seleccionadas","stop-all":"Detener las apps seleccionadas","enable-autostart-all":"Habilitar el autoinicio de las apps seleccionadas","disable-autostart-all":"Deshabilitar el autoinicio de las apps seleccionadas"},"refresh-button":{"seconds":"Refrescado hace unos segundos","minute":"Refrescado hace un minuto","minutes":"Refrescado hace {{ time }} minutos","hour":"Refrescado hace una hora","hours":"Refrescado hace {{ time }} horas","day":"Refrescado hace un d\xeda","days":"Refrescado hace {{ time }} d\xedas","week":"Refrescado hace una semana","weeks":"Refrescado hace {{ time }} semanas","error-tooltip":"Hubo un error al intentar refrescar los datos. Reintentando autom\xe1ticamente cada {{ time }} segundos..."},"view-all-link":{"label":"Ver todos los {{ number }} elementos"},"paginator":{"first":"Primera","last":"\xdaltima","total":"Total: {{ number }} p\xe1ginas","select-page-title":"Seleccionar p\xe1gina"},"confirmation":{"header-text":"Confirmaci\xf3n","confirm-button":"S\xed","cancel-button":"No","close":"Cerrar","error-header-text":"Error","done-header-text":"Hecho"},"language":{"title":"Seleccionar lenguaje"},"tabs-window":{"title":"Cambiar pesta\xf1a"},"vpn":{"title":"Panel de Control de VPN","start":"Inicio","servers":"Servidores","settings":"Configuracion","unnamed":"Sin nombre","starting-blocked-server-error":"No se puede conectar con el servidor seleccionado porque se ha agregado a la lista de servidores bloqueados.","unexpedted-error":"Se produjo un error inesperado y no se pudo completar la operaci\xf3n.","remote-access-title":"Parece que est\xe1 accediendo al sistema de manera remota","remote-access-text":"Esta aplicaci\xf3n s\xf3lo permite administrar la protecci\xf3n VPN del dispositivo en el que fue instalada. Los cambios hechos con ella no afectar\xe1n a dispositivos remotos como el que parece estar usando. Tambi\xe9n es posible que los datos de IP que se muestren sean incorrectos.","server-change":{"busy-error":"El sistema est\xe1 ocupado. Por favor, espere.","backend-error":"No fue posible cambiar el servidor. Por favor, aseg\xfarese de que la clave p\xfablica sea correcta y de que la aplicaci\xf3n VPN se est\xe9 ejecutando.","already-selected-warning":"El servidor seleccionado ya est\xe1 siendo utilizando.","change-server-while-connected-confirmation":"La protecci\xf3n VPN se interrumpir\xe1 mientras se cambia el servidor y algunos datos pueden transmitirse sin protecci\xf3n durante el proceso. \xbfDesea continuar?","start-same-server-confirmation":"Ya hab\xeda seleccionado ese servidor. \xbfDesea conectarte a \xe9l?"},"error-page":{"text":"La aplicaci\xf3n de cliente VPN no est\xe1 disponible.","more-info":"No fue posible conectarse a la aplicaci\xf3n cliente VPN. Esto puede deberse a un error de configuraci\xf3n, un problema inesperado con el visor o porque utiliz\xf3 una clave p\xfablica no v\xe1lida en la URL.","text-pk":"Configuraci\xf3n inv\xe1lida.","more-info-pk":"La aplicaci\xf3n no puede ser iniciada porque no ha especificado la clave p\xfablica del visor.","text-storage":"Error al guardar los datos.","more-info-storage":"Ha habido un conflicto al intentar guardar los datos y la aplicaci\xf3n se ha cerrado para prevenir errores. Esto puede suceder si abre la aplicaci\xf3n en m\xe1s de una pesta\xf1a o ventana.","text-pk-change":"Operaci\xf3n inv\xe1lida.","more-info-pk-change":"Por favor, utilice esta aplicaci\xf3n para administrar s\xf3lo un cliente VPN."},"connection-info":{"state-title":"El estado de tu conexi\xf3n es actualmente:","state-connecting":"Conectando","state-connecting-info":"Se est\xe1 activando la protecci\xf3n VPN.","state-connected":"Conectado","state-connected-info":"La protecci\xf3n VPN est\xe1 activada.","state-disconnecting":"Desconectando","state-disconnecting-info":"Se est\xe1 desactivando la protecci\xf3n VPN.","state-reconnecting":"Reconectando","state-reconnecting-info":"Se est\xe1 restaurando la protecci\xf3n de VPN.","state-disconnected":"Desconectado","state-disconnected-info":"La protecci\xf3n VPN est\xe1 desactivada.","state-info":"Estado actual de la conexi\xf3n.","latency-info":"Latencia actual.","upload-info":"Velocidad de subida.","download-info":"Velocidad de descarga."},"connection-error":{"text":"Error de conexi\xf3n","info":"Problema conectando con la app vpn. Algunos datos mostrados podr\xedan estar desactualizados."},"status-page":{"start-title":"Iniciar VPN","no-server":"\xa1Ning\xfan servidor seleccionado!","disconnect":"Desconectar","last-error":"\xdaltimo error:","unknown-error":"Error desconocido.","disconnect-confirmation":"\xbfRealmente desea detener la protecci\xf3n VPN?","upload-info":"Estad\xedsticas de datos subidos.","download-info":"Estad\xedsticas de datos descargados.","latency-info":"Estad\xedsticas de latencia.","total-data-label":"total","problem-connecting-error":"No fue posible conectarse al servidor. El servidor puede no ser v\xe1lido o estar temporalmente inactivo.","problem-starting-error":"No fue posible iniciar la VPN. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","problem-stopping-error":"No fue posible detener la VPN. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","generic-problem-error":"No fue posible realizar la operaci\xf3n. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","select-server-warning":"Por favor, seleccione un servidor primero.","data":{"ip":"Direcci\xf3n IP:","ip-problem-info":"Hubo un problema al intentar obtener la IP. Por favor, verif\xedquela utilizando un servicio externo.","ip-country-problem-info":"Hubo un problema al intentar obtener el pa\xeds. Por favor, verif\xedquelo utilizando un servicio externo.","ip-refresh-info":"Refrescar","ip-refresh-time-warning":"Por favor, espere {{ seconds }} segundo(s) antes de refrescar los datos.","ip-refresh-loading-warning":"Por favor, espere a que finalice la operaci\xf3n anterior.","country":"Pa\xeds:","server":"Servidor:","server-note":"Nota del servidor:","original-server-note":"Nota original del servidor:","local-pk":"Llave p\xfablica del visor local:","remote-pk":"Llave p\xfablica del visor remoto:","unavailable":"No disponible"}},"server-options":{"tooltip":"Opciones","connect-without-password":"Conectarse sin contrase\xf1a","connect-without-password-confirmation":"La conexi\xf3n se realizar\xe1 sin la contrase\xf1a. \xbfSeguro que desea continuar?","connect-using-password":"Conectarse usando una contrase\xf1a","connect-using-another-password":"Conectarse usando otra contrase\xf1a","edit-name":"Nombre personalizado","edit-label":"Nota personalizada","make-favorite":"Hacer favorito","make-favorite-confirmation":"\xbfRealmente desea marcar este servidor como favorito? Se eliminar\xe1 de la lista de bloqueados.","make-favorite-done":"Agregado a la lista de favoritos.","remove-from-favorites":"Quitar de favoritos","remove-from-favorites-done":"Eliminado de la lista de favoritos.","block":"Bloquear servidor","block-done":"Agregado a la lista de bloqueados.","block-confirmation":"\xbfRealmente desea bloquear este servidor? Se eliminar\xe1 de la lista de favoritos.","block-selected-confirmation":"\xbfRealmente desea bloquear el servidor actualmente seleccionado? Se cerrar\xe1n todas las conexiones.","block-selected-favorite-confirmation":"\xbfRealmente desea bloquear el servidor actualmente seleccionado? Se cerrar\xe1n todas las conexiones y se eliminar\xe1 de la lista de favoritos.","unblock":"Desbloquear servidor","unblock-done":"Eliminado de la lista de bloqueados.","remove-from-history":"Quitar del historial","remove-from-history-confirmation":"\xbfRealmente desea quitar del historial el servidor?","remove-from-history-done":"Eliminado del historial.","edit-value":{"name-title":"Nombre Personalizado","note-title":"Nota Personalizada","name-label":"Nombre personalizado","note-label":"Nota personalizada","apply-button":"Aplicar","changes-made-confirmation":"Se ha realizado el cambio."}},"server-conditions":{"selected-info":"Este es el servidor actualmente seleccionado.","blocked-info":"Este servidor est\xe1 en la lista de bloqueados.","favorite-info":"Este servidor est\xe1 en la lista de favoritos.","history-info":"Este servidor est\xe1 en el historial de servidores.","has-password-info":"Se estableci\xf3 una contrase\xf1a para conectarse con este servidor."},"server-list":{"date-small-table-label":"Fecha","date-info":"\xdaltima vez en la que us\xf3 este servidor.","country-small-table-label":"Pa\xeds","country-info":"Pa\xeds donde se encuentra el servidor.","name-small-table-label":"Nombre","location-small-table-label":"Ubicaci\xf3n","public-key-small-table-label":"Lp","public-key-info":"Llave p\xfablica del servidor.","congestion-rating-small-table-label":"Calificaci\xf3n de congesti\xf3n","congestion-rating-info":"Calificaci\xf3n del servidor relacionada con lo congestionado que suele estar.","congestion-small-table-label":"Congesti\xf3n","congestion-info":"Congesti\xf3n actual del servidor.","latency-rating-small-table-label":"Calificaci\xf3n de latencia","latency-rating-info":"Calificaci\xf3n del servidor relacionada con la latencia que suele tener.","latency-small-table-label":"Latencia","latency-info":"Latencia actual del servidor.","hops-small-table-label":"Saltos","hops-info":"Cu\xe1ntos saltos se necesitan para conectarse con el servidor.","note-small-table-label":"Nota","note-info":"Nota acerca del servidor.","gold-rating-info":"Oro","silver-rating-info":"Plata","bronze-rating-info":"Bronce","notes-info":"Nota personalizada: {{ custom }} - Nota original: {{ original }}","empty-discovery":"Actualmente no hay servidores VPN para mostrar. Por favor, int\xe9ntelo de nuevo m\xe1s tarde.","empty-history":"No hay historial que mostrar.","empty-favorites":"No hay servidores favoritos para mostrar.","empty-blocked":"No hay servidores bloqueados para mostrar.","empty-with-filter":"Ning\xfan servidor VPN coincide con los criterios de filtrado seleccionados.","add-manually-info":"Agregar el servidor manualmente.","current-filters":"Filtros actuales (presione para eliminar)","none":"Ninguno","unknown":"Desconocido","tabs":{"public":"P\xfablicos","history":"Historial","favorites":"Favoritos","blocked":"Bloqueados"},"add-server-dialog":{"title":"Ingresar manualmente","pk-label":"Llave p\xfablica del servidor","password-label":"Contrase\xf1a del servidor (si tiene)","name-label":"Nombre del servidor (opcional)","note-label":"Nota personal (opcional)","pk-length-error":"La llave p\xfablica debe tener 66 caracteres.","pk-chars-error":"La llave p\xfablica s\xf3lo debe contener caracteres hexadecimales.","use-server-button":"Usar servidor"},"password-dialog":{"title":"Introducir Contrase\xf1a","password-if-any-label":"Contrase\xf1a del servidor (si tiene)","password-label":"Contrase\xf1a del servidor","continue-button":"Continuar"},"filter-dialog":{"country":"El pa\xeds debe ser","name":"El nombre debe contener","location":"La ubicaci\xf3n debe contener","public-key":"La llave p\xfablica debe contener","congestion-rating":"La calificaci\xf3n de congesti\xf3n debe ser","latency-rating":"La calificaci\xf3n de latencia debe ser","rating-options":{"any":"Cualquiera","gold":"Oro","silver":"Plata","bronze":"Bronce"},"country-options":{"any":"Cualquiera"}}},"settings-page":{"setting-small-table-label":"Ajuste","value-small-table-label":"Valor","killswitch":"Killswitch","killswitch-info":"Cuando est\xe1 activo, todas las conexiones de red se desactivar\xe1n si la aplicaci\xf3n se est\xe1 ejecutando pero la protecci\xf3n VPN es interrumpida (por errores temporales o cualquier otro problema). Esto evita fugas de datos.","get-ip":"Obtener informaci\xf3n de IP","get-ip-info":"Cuando est\xe1 activa, la aplicaci\xf3n utilizar\xe1 servicios externos para obtener informaci\xf3n sobre la IP actual.","data-units":"Unidades de datos","data-units-info":"Permite seleccionar las unidades que se utilizar\xe1n para mostrar las estad\xedsticas de transmisi\xf3n de datos.","minimum-hops":"Saltos m\xednimos","minimum-hops-info":"Permite configurar la cantidad m\xednima de saltos que la conexi\xf3n deber\xe1 realizar a trav\xe9s de otros visores de Skywire antes de alcanzar el destino final.","dns":"Servidor DNS personalizado","dns-info":"Permite usar un servidor DNS personalizado, lo que podr\xeda mejorar la privacidad y prevenir que algunos sitios sean bloqueados por el servidor DNS por defecto de su proveedor.","setting-none":"Ninguno","setting-on":"Encendido","setting-off":"Apagado","working-warning":"El sistema est\xe1 ocupado. Por favor, espere a que finalice la operaci\xf3n anterior.","change-while-connected-confirmation":"La protecci\xf3n VPN se interrumpir\xe1 mientras se realiza el cambio. \xbfDesea continuar?","data-units-modal":{"title":"Unidades de Datos","only-bits":"Bits para todas las estad\xedsticas","only-bytes":"Bytes para todas las estad\xedsticas","bits-speed-and-bytes-volume":"Bits para velocidad y bytes para volumen (predeterminado)"}},"dns-config":{"title":"Servidor DNS personalizado","ip":"Direcci\xf3n IP del servidor DNS personalizado","save-config-button":"Guardar configuraci\xf3n","done":"Cambios guardados."}}}')}}]); \ No newline at end of file diff --git a/pkg/visor/static/268.c7fec9c243c2618c.js b/pkg/visor/static/268.c7fec9c243c2618c.js deleted file mode 100644 index 8a94bdca84..0000000000 --- a/pkg/visor/static/268.c7fec9c243c2618c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[268],{4268:e=>{e.exports=JSON.parse('{"common":{"save":"Guardar","cancel":"Cancelar","downloaded":"Recibido","uploaded":"Enviado","loading-error":"Hubo un error obteniendo los datos. Reintentando...","operation-error":"Hubo un error al intentar completar la operaci\xf3n.","no-connection-error":"No hay conexi\xf3n a Internet o conexi\xf3n con el hipervisor.","error":"Error:","refreshed":"Datos refrescados.","options":"Opciones","logout":"Cerrar sesi\xf3n","logout-error":"Error cerrando la sesi\xf3n.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"S\xed","no":"No","unknown":"Desconocido","close":"Cerrar","window-size-error":"La ventana es demasiado estrecha para el contenido."},"labeled-element":{"edit-label":"Editar etiqueta","remove-label":"Remover etiqueta","go-to-settings":"Ir a la configuraci\xf3n","copy":"Copiar","remove-label-confirmation":"\xbfRealmente desea eliminar la etiqueta?","unnamed-element":"Sin nombre","unnamed-local-visor":"Visor local","local-element":"Local","tooltip":"Haga clic para copiar la entrada o cambiar la etiqueta","tooltip-with-text":"{{ text }} (Haga clic para copiar la entrada o cambiar la etiqueta)"},"labels":{"title":"Etiquetas","info":"Etiquetas que ha introducido para identificar f\xe1cilmente visores, transportes y otros elementos, en lugar de tener que leer identificadores generados por una m\xe1quina.","list-title":"Lista de etiquetas","label":"Etiqueta","id":"ID del elemento","type":"Tipo","delete-confirmation":"\xbfSeguro que desea borrar la etiqueta?","delete-selected-confirmation":"\xbfSeguro que desea borrar las etiquetas seleccionados?","delete":"Borrar etiqueta","deleted":"Operaci\xf3n de borrado completada.","empty":"No hay etiquetas guardadas.","empty-with-filter":"Ninguna etiqueta coincide con los criterios de filtrado seleccionados.","filter-dialog":{"label":"La etiqueta debe contener","id":"El id debe contener","type":"El tipo debe ser","type-options":{"any":"Cualquiera","visor":"Visor","dmsg-server":"Servidor DMSG","transport":"Transporte"}}},"filters":{"filter-action":"Filtrar","filter-info":"Lista de filtros.","press-to-remove":"(Presione para remover los filtros)","remove-confirmation":"\xbfSeguro que desea remover los filtros?"},"tables":{"title":"Ordenar por","sorting-title":"Ordenado por:","sort-by-value":"Valor","sort-by-label":"Etiqueta","label":"(etiqueta)","inverted-order":"(invertido)"},"start":{"title":"Inicio","loading-error":"Hubo un error obteniendo los datos iniciales. Reintentando..."},"node":{"title":"Detalles del visor","not-found":"Visor no encontrado.","statuses":{"online":"Online","online-tooltip":"El visor se encuentra online.","connecting":"Conectando","connecting-tooltip":"El visor se encuentra online, pero todav\xeda est\xe1 conectando con el uptime tracker.","unknown":"Desconocido","unknown-tooltip":"El visor se encuentra online, pero no ha sido posible determinar si est\xe1 conectado con el uptime tracker.","partially-online":"Online con problemas","partially-online-tooltip":"El visor se encuentra online, pero desconectado del uptime tracker.","offline":"Offline","offline-tooltip":"El visor se encuentra offline."},"details":{"node-info":{"title":"Informaci\xf3n del visor","label":"Etiqueta:","public-key":"Llave p\xfablica:","symmetic-nat":"NAT sim\xe9trica:","public-ip":"IP p\xfablica:","ip":"IP:","dmsg-server":"Servidor DMSG:","ping":"Ping:","node-version":"Versi\xf3n del visor:","build-type":"Tipo de build:","skybian-version":"Versi\xf3n de Skybian:","unknown-build":"Desconocido","time":{"title":"Tiempo online:","seconds":"unos segundos","minute":"1 minuto","minutes":"{{ time }} minutos","hour":"1 hora","hours":"{{ time }} horas","day":"1 d\xeda","days":"{{ time }} d\xedas","week":"1 semana","weeks":"{{ time }} semanas"}},"rewards-info":{"title":"Informaci\xf3n de Recompensas","rewards-address":"Direcci\xf3n de recompensas:","not-registered":"No registrado","not-registered-info":"No ha especificado una direcci\xf3n de Skycoin para recibir recompensas para este visor. Si quiere registrar el visor para recibir recompensas, presione el bot\xf3n \\"Establecer direcci\xf3n\\" e introduzca la una direcci\xf3n de Skycoin.","open-in-explorer":"Abrir en el explorador de blockchain","set-address-button":"Establecer direcci\xf3n","change-address-button":"Cambiar direcci\xf3n"},"transports-info":{"title":"Informaci\xf3n de Transportes","autoconnect":"Autoconectar:","autoconnect-info":"Al activarse, el visor crear\xe1 autom\xe1ticamente los transportes necesarios cuando se solicite la conexi\xf3n a un visor p\xfablico. Al desactivarse, los transportes deber\xe1n ser creados antes de poder establecer la conexi\xf3n.","enabled":"Activado","disabled":"Desactivado","enable-button":"Activar","disable-button":"Desactivar","enable-confirmation":"\xbfSeguro que desea activar la funci\xf3n de autoconectar?","disable-confirmation":"\xbfSeguro que desea desactivar la funci\xf3n de autoconectar?","enable-done":"La funci\xf3n de autoconectar ha sido activada.","disable-done":"La funci\xf3n de autoconectar ha sido desactivada."},"router-info":{"title":"Informaci\xf3n del Enrutador","min-hops":"Saltos m\xednimos:","max-hops":"Saltos m\xe1ximos:","change-config-button":"Cambiar configuraci\xf3n"},"node-health":{"title":"Informaci\xf3n de Salud","status":"Estatus:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Datos de tr\xe1fico"},"tabs":{"info":"Info","apps":"Apps","routing":"Enrutamiento"},"error-load":"Hubo un error al intentar refrescar los datos. Reintentando..."},"rewards-address-config":{"title":"Configuraci\xf3n de direcci\xf3n de recompensas","info":"Aqu\xed usted puede establecer la direcci\xf3n de Skycoin a la que quiere que se env\xeden las recompensas. Si deja la direcci\xf3n vac\xeda, el registro ser\xe1 eliminado y el visor no recibir\xe1 recompensas.","more-info-link":"(M\xe1s informaci\xf3n acerca del sistema de recompensas)","address":"Direcci\xf3n ","address-error":"Por favor, coloque una direcci\xf3n Skycoin valida.","save-config-button":"Guardar configuraci\xf3n","done":"Cambios guardados.","empty-warning":"La direcci\xf3n est\xe1 vac\xeda, as\xed que el registro ser\xe1 eliminado y no recibir\xe1 recompensas. \xbfRealmente desea continuar?"},"router-config":{"title":"Configuraci\xf3n del Enrutador","info":"Aqu\xed podr\xe1 configurar cuantos saltos la conexi\xf3n deber\xe1 realizar a trav\xe9s de otros visores de Skywire antes de alcanzar el destino final. NOTA: los cambios no afectar\xe1n a las rutas ya existentes.","min-hops":"Saltos m\xednimos","min-hops-error":"Por favor, coloque un n\xfamero valido.","save-config-button":"Guardar configuraci\xf3n","done":"Cambios guardados."},"nodes":{"title":"Lista de visores","dmsg-title":"DMSG","modify-rewards-all":"Cambiar direcci\xf3n de recompensas","update-all":"Actualizar todos los visores online","hypervisor":"Hypervisor","state":"Estado","state-tooltip":"Estado actual","label":"Etiqueta","key":"Llave","dmsg-server":"Servidor DMSG","ping":"Ping","hypervisor-info":"Este visor es el Hypervisor actual.","copy-key":"Copiar llave","copy-dmsg":"Copiar llave DMSG","copy-data":"Copiar datos","view-node":"Ver visor","delete-node":"Remover visor","delete-all-offline":"Remover todos los visores offline","error-load":"Hubo un error al intentar refrescar la lista. Reintentando...","empty":"No hay ning\xfan visor conectado a este hypervisor.","empty-with-filter":"Ningun visor coincide con los criterios de filtrado seleccionados.","delete-node-confirmation":"\xbfSeguro que desea remover el visor de la lista?","delete-all-offline-confirmation":"\xbfSeguro que desea remover todos los visores offline de la lista?","delete-all-filtered-offline-confirmation":"Todos los visores offline que satisfagan los criterios de filtrado actuales ser\xe1n removidos de la lista. \xbfSeguro que desea continuar?","deleted":"Visor removido.","deleted-singular":"1 visor offline removido.","deleted-plural":"{{ number }} visores offline removidos.","no-visors-to-update":"No hay visores para actualizar.","no-visors-to-modify":"No hay visores para modificar.","filter-dialog":{"online":"El visor debe estar","label":"La etiqueta debe contener","key":"La llave debe contener","dmsg":"La llave del servidor DMSG debe contener","online-options":{"any":"Online u offline","online":"Online","offline":"Offline"}}},"bulk-rewards":{"title":"Cambiar direcci\xf3n de recompensas","info":"Introduzca la direcci\xf3n de Skycoin donde desea recibir las recompensas. La direcci\xf3n ser\xe1 establecida en todos los visores seleccionados. Si deja la direcci\xf3n vac\xeda, el registro ser\xe1 eliminado y los visores no recibir\xe1n recompensas. Tambi\xe9n puede colocar la direcci\xf3n de recompensas de cada visor individualmente usando la opci\xf3n en la pantalla de detalles del visor.","more-info-link":"(M\xe1s informaci\xf3n acerca del sistema de recompensas)","address":"Nueva direcci\xf3n","select-visors":"Visores a modificar:","current-address":"Direcci\xf3n actual:","not-registered":"Ninguna (no registrado para recompensas).","checking":"Consultando...","error-checking":"Error consultando:","processing":"Procesando...","error-processing":"Error realizando el cambio:","done":"Cambio realizado.","perform-changes":"Aplicar cambios","empty-warning":"La direcci\xf3n est\xe1 vac\xeda, as\xed que los registros ser\xe1n eliminados y no recibir\xe1 recompensas. \xbfRealmente desea continuar?"},"edit-label":{"label":"Etiqueta","done":"Etiqueta guardada.","label-removed-warning":"La etiqueta fue removida."},"settings":{"title":"Configuraci\xf3n","checking-auth":"Revisando configuraci\xf3n de autenticaci\xf3n.","password":{"initial-config-help":"Use esta opci\xf3n para establecer la contrase\xf1a inicial. Despu\xe9s de establecer una contrase\xf1a no es posible usar esta opci\xf3n para modificarla.","help":"Opciones para cambiar la contrase\xf1a.","old-password":"Contrase\xf1a actual","new-password":"Nueva contrase\xf1a","repeat-password":"Repita la contrase\xf1a","password-changed":"Contrase\xf1a cambiada.","error-changing":"Error cambiando la contrase\xf1a.","initial-config":{"title":"Establecer contrase\xf1a inicial","password":"Contrase\xf1a","repeat-password":"Repita la contrase\xf1a","set-password":"Establecer contrase\xf1a","done":"Contrase\xf1a establecida. Por favor \xfasela para acceder al sistema.","error":"Error. Por favor aseg\xfarese de que no hubiese establecido la contrase\xf1a anteriormente."},"errors":{"bad-old-password":"La contrase\xf1a actual introducida no es correcta.","old-password-required":"La contrase\xf1a actual es requerida.","new-password-error":"La contrase\xf1a debe tener entre 6 y 64 caracteres.","passwords-not-match":"Las contrase\xf1as no coinciden.","default-password":"No utilice la contrase\xf1a por defecto (1234)."}},"updater-config":{"open-link":"Mostrar la configuraci\xf3n del actualizador","open-confirmation":"La configuraci\xf3n del actualizador es s\xf3lo para usuarios experimentados. Seguro que desea continuar?","help":"Utilice este formulario para modificar la configuraci\xf3n que utilizar\xe1 el actualizador. Se ignorar\xe1n todos los campos vac\xedos. La configuraci\xf3n se utilizar\xe1 para todas las operaciones de actualizaci\xf3n, sin importar qu\xe9 elemento se est\xe9 actualizando, as\xed que por favor tenga cuidado.","channel":"Canal","version":"Versi\xf3n","archive-url":"URL del archivo","checksum-url":"URL del checksum","not-saved":"Los cambios a\xfan no se han guardado.","save":"Guardar cambios","remove-settings":"Remover la configuraci\xf3n","saved":"Las configuracion personalizada ha sido guardada.","removed":"Las configuracion personalizada ha sido removida.","save-confirmation":"\xbfSeguro que desea aplicar la configuraci\xf3n personalizada?","remove-confirmation":"\xbfSeguro que desea remover la configuraci\xf3n personalizada?"},"change-password":"Cambiar contrase\xf1a","refresh-rate":"Frecuencia de refrescado","refresh-rate-help":"Tiempo que el sistema espera para actualizar autom\xe1ticamente los datos.","refresh-rate-confirmation":"Frecuencia de refrescado cambiada.","seconds":"segundos"},"login":{"password":"Contrase\xf1a","incorrect-password":"Contrase\xf1a incorrecta.","initial-config":"Configurar lanzamiento inicial"},"actions":{"menu":{"terminal":"Terminal","config":"Configuraci\xf3n","update":"Actualizar","reboot":"Reiniciar","logs":"Ver logs"},"reboot":{"confirmation":"\xbfSeguro que desea reiniciar el visor?","done":"El visor se est\xe1 reiniciando."},"update":{"confirmation":"Una terminal ser\xe1 abierta en una nueva pesta\xf1a y el proceso de actualizaci\xf3n iniciar\xe1 autom\xe1ticamente. \xbfDesea continuar?"},"terminal-options":{"full":"Terminal completa","simple":"Terminal simple"},"terminal":{"title":"Terminal","input-start":"Terminal de Skywire para {{address}}","error":"Error inesperado mientras se intentaba ejecutar el comando."}},"update":{"title":"Actualizar","error-title":"Error","processing":"Buscando actualizaciones...","no-update":"No hay ninguna actualizaci\xf3n para el visor. La versi\xf3n instalada actualmente es:","no-updates":"No se encontraron nuevas actualizaciones.","already-updating":"Algunos visores ya est\xe1n siendo actualizandos:","with-error":"No fue posible verificar los siguientes visores:","update-available":"Las siguientes actualizaciones fueron encontradas:","update-available-singular":"Las siguientes actualizaciones para 1 visor fueron encontradas:","update-available-plural":"Las siguientes actualizaciones para {{ number }} visores fueron encontradas:","update-available-additional-singular":"Las siguientes actualizaciones adicionales para 1 visor fueron encontradas:","update-available-additional-plural":"Las siguientes actualizaciones adicionales para {{ number }} visores fueron encontradas:","update-instructions":"Haga clic en el bot\xf3n \'Instalar actualizaciones\' para continuar.","updating":"La operaci\xf3n de actualizaci\xf3n se ha iniciado, puede abrir esta ventana nuevamente para verificar el progreso:","version-change":"De {{ currentVersion }} a {{ newVersion }}","selected-channel":"Canal seleccionado:","downloaded-file-name-prefix":"Descargando: ","speed-prefix":"Velocidad: ","time-downloading-prefix":"Tiempo descargando: ","time-left-prefix":"Tiempo aprox. faltante: ","starting":"Preparando para actualizar","finished":"Conexi\xf3n de estado terminada","install":"Instalar actualizaciones"},"update-all":{"title":"Actualizar","updatable-list-text":"Por favor, presione los botones de los visores que desea actualizar. Una terminal ser\xe1 abierta en una nueva pesta\xf1a por cada visor y el proceso de actualizaci\xf3n iniciar\xe1 autom\xe1ticamente.","non-updatable-list-text":"Los siguientes visores no pueden ser actualizados v\xeda la terminal:","update-button":"Actualizar"},"apps":{"log":{"title":"Log","empty":"No hay mensajes de log para el rango de fecha seleccionado.","filter-button":"Mostrando s\xf3lo logs generados desde:","view-all":"Ver todas las {{ totalLogs }} entradas","filter":{"title":"Filtro","filter":"Mostrar s\xf3lo logs generados desde","7-days":"Los \xfaltimos 7 d\xedas","1-month":"Los \xfaltimos 30 d\xedas","3-months":"Los \xfaltimos 3 meses","6-months":"Los \xfaltimos 6 meses","1-year":"El \xfaltimo a\xf1o","all":"mostrar todos"}},"apps-list":{"title":"Aplicaciones","title-official":"Aplicaciones Oficiales","title-user":"Aplicaciones de Usuario","list-title":"Lista de aplicaciones","app-name":"Nombre","port":"Puerto","state":"Estado","state-tooltip":"Estado actual","auto-start":"Autoinicio","empty-official":"El visor no tiene ninguna aplicaci\xf3n oficial.","empty-user":"El visor no tiene ninguna aplicaci\xf3n de usuario.","empty-with-filter":"Ninguna app coincide con los criterios de filtrado seleccionados.","disable-autostart":"Deshabilitar autoinicio","enable-autostart":"Habilitar autoinicio","autostart-disabled":"Autoinicio deshabilitado","autostart-enabled":"Autoinicio habilitado","unavailable-logs-error":"No es posible mostrar los logs mientras la aplicaci\xf3n no se est\xe1 ejecutando.","filter-dialog":{"state":"El estado debe ser","name":"El nombre debe contener","port":"El puerto debe contener","autostart":"El autoinicio debe estar","state-options":{"any":"Iniciada o detenida","running":"Iniciada","stopped":"Detenida"},"autostart-options":{"any":"Activado or desactivado","enabled":"Activado","disabled":"Desactivado"}}},"user-app-settings":{"title":"{{ name }} (Configuraci\xf3n)","info":"Aqu\xed puede editar la configuraci\xf3n de la app como pares nombre-valor. Por favor, revise la documentaci\xf3n de la aplicaci\xf3n para ver cu\xe1les configuraciones y valores soporta esta app.","name":"Nombre {{ number }}","value":"Valor {{ number }}","remove":"Remover","add":"Agregar configuraci\xf3n","save":"Guardar","invalid-confirmation":"Una o m\xe1s configuraciones no tienen nombre y ser\xe1n ignoradas. \xbfDesea continuar?","empty-confirmation":"La lista de configuraci\xf3n est\xe1 vac\xeda. \xbfRealmente desea continuar?","changes-made":"Los cambios han sido realizados."},"vpn-socks-server-settings":{"socks-title":"Configuraci\xf3n de Skysocks","vpn-title":"Configuraci\xf3n de VPN-Server","new-password":"Nueva contrase\xf1a (dejar en blanco para eliminar la contrase\xf1a)","repeat-password":"Repita la contrase\xf1a","netifc":"Interfaz de red predeterminada (opcional)","passwords-not-match":"Las contrase\xf1as no coinciden.","secure-mode-check":"Usar modo seguro","secure-mode-info":"Cuando est\xe1 activo, el servidor no permite SSH con los clientes y no permite ning\xfan tr\xe1fico de clientes VPN a la red local del servidor.","save":"Guardar","remove-passowrd-confirmation":"Ha dejado el campo de contrase\xf1a vac\xedo. \xbfSeguro que desea eliminar la contrase\xf1a?","change-passowrd-confirmation":"\xbfSeguro que desea cambiar la contrase\xf1a?","changes-made":"Los cambios han sido realizados."},"vpn-socks-client-settings":{"socks-title":"Configuraci\xf3n de Skysocks-Client","vpn-title":"Configuraci\xf3n de VPN-Client","discovery-tab":"Buscar","remote-visor-tab":"Introducir manualmente","settings-tab":"Configuracion","history-tab":"Historial","use":"Usar estos datos","change-note":"Cambiar nota","remove-entry":"Remover entrada","note":"Nota:","note-entered-manually":"Introducido manualmente","note-obtained":"Obtenido del servicio de descubrimiento","key":"Llave:","port":"Puerto:","location":"Ubicaci\xf3n:","state-available":"Disponible","state-offline":"Offline","public-key":"Llave p\xfablica del visor remoto","password":"Contrase\xf1a","password-history-warning":"Nota: la contrase\xf1a no se guardar\xe1 en el historial.","copy-pk-info":"Copiar la llave p\xfablica.","copied-pk-info":"La llave p\xfablica ha sido copiada.","copy-pk-error":"Hubo un problema al intentar cambiar la llave p\xfablica.","no-elements":"Actualmente no hay elementos para mostrar. Por favor, int\xe9ntelo de nuevo m\xe1s tarde.","no-elements-for-filters":"No hay elementos que cumplan los criterios de filtro.","no-filter":"No se ha seleccionado ning\xfan filtro","click-to-change":"Haga clic para cambiar","remote-key-length-error":"La llave p\xfablica debe tener 66 caracteres.","remote-key-chars-error":"La llave p\xfablica s\xf3lo debe contener caracteres hexadecimales.","save":"Guardar","remove-from-history-confirmation":"\xbfSeguro de que desea eliminar la entrada del historial?","change-key-confirmation":"\xbfSeguro que desea cambiar la llave p\xfablica del visor remoto?","changes-made":"Los cambios han sido realizados.","no-history":"Esta pesta\xf1a mostrar\xe1 las \xfaltimas {{ number }} llaves p\xfablicas usadas.","default-note-warning":"La nota por defecto ha sido utilizada.","pagination-info":"{{ currentElementsRange }} de {{ totalElements }}","dns":"Direcci\xf3n IP del servidor DNS personalizado","dns-error":"Valor inv\xe1lido.","killswitch-check":"Activar killswitch","killswitch-info":"Cuando est\xe1 activo, todas las conexiones de red se desactivar\xe1n si la aplicaci\xf3n se est\xe1 ejecutando pero la protecci\xf3n VPN est\xe1 interrumpida (por errores temporales o cualquier otro problema). Esto evita fugas de datos.","settings-changed-alert":"Los cambios a\xfan no se han guardado.","save-settings":"Guardar configuracion","change-note-dialog":{"title":"Cambiar Nota","note":"Nota"},"password-dialog":{"title":"Introducir Contrase\xf1a","password":"Contrase\xf1a","info":"Se le solicita una contrase\xf1a porque una contrase\xf1a fue utilizada cuando se cre\xf3 la entrada seleccionada, pero no fue guardada por razones de seguridad. Puede dejar la contrase\xf1a vac\xeda si es necesario.","continue-button":"Continuar"},"filter-dialog":{"title":"Filtros","country":"El pa\xeds debe ser","any-country":"Cualquiera","location":"La ubicaci\xf3n debe contener","pub-key":"La llave p\xfablica debe contener","apply":"Aplicar"}},"stop-app":"Detener","start-app":"Iniciar","view-logs":"Ver logs","settings":"Configuraci\xf3n","open":"Abrir","error":"Se produjo un error y no fue posible realizar la operaci\xf3n.","stop-confirmation":"\xbfSeguro que desea detener la aplicaci\xf3n?","stop-selected-confirmation":"\xbfSeguro que desea detener las aplicaciones seleccionadas?","disable-autostart-confirmation":"\xbfSeguro que desea deshabilitar el autoinicio de la aplicaci\xf3n?","enable-autostart-confirmation":"\xbfSeguro que desea habilitar el autoinicio de la aplicaci\xf3n?","disable-autostart-selected-confirmation":"\xbfSeguro que desea deshabilitar el autoinicio de las aplicaciones seleccionadas?","enable-autostart-selected-confirmation":"\xbfSeguro que desea habilitar el autoinicio de las aplicaciones seleccionadas?","operation-completed":"Operaci\xf3n completada.","operation-unnecessary":"La selecci\xf3n ya tiene la configuraci\xf3n solicitada.","status-running":"Corriendo","status-connecting":"Conectando","status-stopped":"Detenida","status-failed":"Finaliz\xf3 con el siguiente error: {{ error }}","status-running-tooltip":"La aplicaci\xf3n est\xe1 actualmente corriendo","status-connecting-tooltip":"La aplicaci\xf3n est\xe1 actualmente conectando","status-stopped-tooltip":"La aplicaci\xf3n est\xe1 actualmente detenida","status-failed-tooltip":"La app finaliz\xf3 con el siguiente error: {{ error }}"},"transports":{"title":"Transportes","info":"Conexiones que tiene con visores remotos de Skywire, para permitir que las aplicaciones Skywire locales se comuniquen con las aplicaciones que se ejecutan en esos visores remotos.","list-title":"Lista de transportes","offline":"Offline","persistent":"Persistente","persistent-tooltip":"Transportes persistentes, los cuales son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","persistent-transport-tooltip":"Este transporte es persistente, as\xed que es creado autom\xe1ticamente al iniciar el visor y es recreado autom\xe1ticamente en caso de desconexi\xf3n.","persistent-transport-button-tooltip":"Este transporte es persistente, as\xed que es creado autom\xe1ticamente al iniciar el visor y es recreado autom\xe1ticamente en caso de desconexi\xf3n. Presione aqu\xed para volverlo no persistente.","non-persistent-transport-button-tooltip":"Presione aqu\xed para volver persistente el transporte. Los transportes persistentes son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","make-persistent":"Volver persistente","make-non-persistent":"Volver no persistente","make-selected-persistent":"Volver persistentes los seleccionados","make-selected-non-persistent":"Volver no persistentes los seleccionados","changes-made":"Cambios hechos.","no-changes-needed":"Ning\xfan cambio fue necesario.","id":"ID","remote-node":"Remoto","type":"Tipo","create":"Crear transporte","make-persistent-confirmation":"\xbfSeguro que desea volver persistente el transporte?","make-non-persistent-confirmation":"\xbfSeguro que desea volver no persistente el transporte?","make-selected-persistent-confirmation":"\xbfSeguro que desea volver persistentes los transportes seleccionados?","make-selected-non-persistent-confirmation":"\xbfSeguro que desea volver no persistentes los transportes seleccionados?","make-offline-non-persistent-confirmation":"\xbfSeguro que desea volver no persistente el transporte? No seguir\xe1 siendo mostrado en la lista mientras se encuentre offline.","delete-confirmation":"\xbfSeguro que desea borrar el transporte?","delete-persistent-confirmation":"Este transporte es persistente, as\xed que puede ser recreado poco despu\xe9s de ser borrado. \xbfSeguro que desea borrarlo?","delete-selected-confirmation":"\xbfSeguro que desea borrar los transportes seleccionados?","delete":"Borrar transporte","deleted":"Operaci\xf3n de borrado completada.","empty":"El visor no tiene ning\xfan transporte.","empty-with-filter":"Ningun transporte coincide con los criterios de filtrado seleccionados.","details":{"title":"Detalles","basic":{"title":"Informaci\xf3n b\xe1sica","persistent":"Persistente:","id":"ID:","local-pk":"Llave p\xfablica local:","remote-pk":"Llave p\xfablica remota:","type":"Tipo:"},"data":{"title":"Transmisi\xf3n de datos","uploaded":"Datos enviados:","downloaded":"Datos recibidos:"}},"dialog":{"remote-key":"Llave p\xfablica remota","label":"Nombre del transporte (opcional)","transport-type":"Tipo de transporte","make-persistent":"Hacer persistente","persistent-tooltip":"Los transportes persistentes son creados autom\xe1ticamente al iniciar el visor y son recreados autom\xe1ticamente en caso de desconexi\xf3n.","only-persistent-created":"El transporte persistente fue creado, pero podr\xeda no haber sido activado.","success":"Transporte creado.","success-without-label":"El transporte fue creado, pero no fue posible guardar la etiqueta.","errors":{"remote-key-length-error":"La llave p\xfablica remota debe tener 66 caracteres.","remote-key-chars-error":"La llave p\xfablica remota s\xf3lo debe contener caracteres hexadecimales.","transport-type-error":"El tipo de transporte es requerido."}},"filter-dialog":{"persistent":"El transporte debe ser","id":"El id debe contener","remote-node":"La llave remota debe contener","persistent-options":{"any":"Cualquiera","persistent":"Persistente","non-persistent":"No persistente"}}},"routes":{"title":"Rutas","info":"Caminos utilizados para llegar a los visores remotos con los que se han establecido transportes. Las rutas se generan autom\xe1ticamente seg\xfan sea necesario.","list-title":"Lista de rutas","key":"Llave","type":"Tipo","source":"Inicio","destination":"Destino","delete-confirmation":"\xbfSeguro que desea borrar la ruta?","delete-selected-confirmation":"\xbfSeguro que desea borrar las rutas seleccionadas?","delete":"Borrar ruta","deleted":"Operaci\xf3n de borrado completada.","empty":"El visor no tiene ninguna ruta.","empty-with-filter":"Ninguna ruta coincide con los criterios de filtrado seleccionados.","details":{"title":"Detalles","basic":{"title":"Informaci\xf3n b\xe1sica","key":"Llave:","rule":"Regla:"},"summary":{"title":"Resumen de regla","keep-alive":"Keep alive:","type":"Tipo de regla:","key-route-id":"ID de la llave de la ruta:"},"specific-fields-titles":{"app":"Campos de applicaci\xf3n","forward":"Campos de reenv\xedo","intermediary-forward":"Campos de reenv\xedo intermedio"},"specific-fields":{"route-id":"ID de la siguiente ruta:","transport-id":"ID del siguiente transporte:","destination-pk":"Llave p\xfablica de destino:","source-pk":"Llave p\xfablica de origen:","destination-port":"Puerto de destino:","source-port":"Puerto de origen:"}},"filter-dialog":{"key":"La llave debe contener","type":"El tipo debe ser","source":"El inicio debe contener","destination":"El destino debe contener","any-type-option":"Cualquiera"}},"copy":{"tooltip":"Presione para copiar","tooltip-with-text":"{{ text }} (Presione para copiar)","copied":"\xa1Copiado!"},"selection":{"select-all":"Seleccionar todo","unselect-all":"Deseleccionar todo","delete-all":"Borrar los elementos seleccionados","start-all":"Iniciar las apps seleccionadas","stop-all":"Detener las apps seleccionadas","enable-autostart-all":"Habilitar el autoinicio de las apps seleccionadas","disable-autostart-all":"Deshabilitar el autoinicio de las apps seleccionadas"},"refresh-button":{"seconds":"Refrescado hace unos segundos","minute":"Refrescado hace un minuto","minutes":"Refrescado hace {{ time }} minutos","hour":"Refrescado hace una hora","hours":"Refrescado hace {{ time }} horas","day":"Refrescado hace un d\xeda","days":"Refrescado hace {{ time }} d\xedas","week":"Refrescado hace una semana","weeks":"Refrescado hace {{ time }} semanas","error-tooltip":"Hubo un error al intentar refrescar los datos. Reintentando autom\xe1ticamente cada {{ time }} segundos..."},"view-all-link":{"label":"Ver todos los {{ number }} elementos"},"paginator":{"first":"Primera","last":"\xdaltima","total":"Total: {{ number }} p\xe1ginas","select-page-title":"Seleccionar p\xe1gina"},"confirmation":{"header-text":"Confirmaci\xf3n","confirm-button":"S\xed","cancel-button":"No","close":"Cerrar","error-header-text":"Error","done-header-text":"Hecho"},"language":{"title":"Seleccionar lenguaje"},"tabs-window":{"title":"Cambiar pesta\xf1a"},"vpn":{"title":"Panel de Control de VPN","start":"Inicio","servers":"Servidores","settings":"Configuracion","unnamed":"Sin nombre","starting-blocked-server-error":"No se puede conectar con el servidor seleccionado porque se ha agregado a la lista de servidores bloqueados.","unexpedted-error":"Se produjo un error inesperado y no se pudo completar la operaci\xf3n.","remote-access-title":"Parece que est\xe1 accediendo al sistema de manera remota","remote-access-text":"Esta aplicaci\xf3n s\xf3lo permite administrar la protecci\xf3n VPN del dispositivo en el que fue instalada. Los cambios hechos con ella no afectar\xe1n a dispositivos remotos como el que parece estar usando. Tambi\xe9n es posible que los datos de IP que se muestren sean incorrectos.","server-change":{"busy-error":"El sistema est\xe1 ocupado. Por favor, espere.","backend-error":"No fue posible cambiar el servidor. Por favor, aseg\xfarese de que la clave p\xfablica sea correcta y de que la aplicaci\xf3n VPN se est\xe9 ejecutando.","already-selected-warning":"El servidor seleccionado ya est\xe1 siendo utilizando.","change-server-while-connected-confirmation":"La protecci\xf3n VPN se interrumpir\xe1 mientras se cambia el servidor y algunos datos pueden transmitirse sin protecci\xf3n durante el proceso. \xbfDesea continuar?","start-same-server-confirmation":"Ya hab\xeda seleccionado ese servidor. \xbfDesea conectarte a \xe9l?"},"error-page":{"text":"La aplicaci\xf3n de cliente VPN no est\xe1 disponible.","more-info":"No fue posible conectarse a la aplicaci\xf3n cliente VPN. Esto puede deberse a un error de configuraci\xf3n, un problema inesperado con el visor o porque utiliz\xf3 una clave p\xfablica no v\xe1lida en la URL.","text-pk":"Configuraci\xf3n inv\xe1lida.","more-info-pk":"La aplicaci\xf3n no puede ser iniciada porque no ha especificado la clave p\xfablica del visor.","text-storage":"Error al guardar los datos.","more-info-storage":"Ha habido un conflicto al intentar guardar los datos y la aplicaci\xf3n se ha cerrado para prevenir errores. Esto puede suceder si abre la aplicaci\xf3n en m\xe1s de una pesta\xf1a o ventana.","text-pk-change":"Operaci\xf3n inv\xe1lida.","more-info-pk-change":"Por favor, utilice esta aplicaci\xf3n para administrar s\xf3lo un cliente VPN."},"connection-info":{"state-title":"El estado de tu conexi\xf3n es actualmente:","state-connecting":"Conectando","state-connecting-info":"Se est\xe1 activando la protecci\xf3n VPN.","state-connected":"Conectado","state-connected-info":"La protecci\xf3n VPN est\xe1 activada.","state-disconnecting":"Desconectando","state-disconnecting-info":"Se est\xe1 desactivando la protecci\xf3n VPN.","state-reconnecting":"Reconectando","state-reconnecting-info":"Se est\xe1 restaurando la protecci\xf3n de VPN.","state-disconnected":"Desconectado","state-disconnected-info":"La protecci\xf3n VPN est\xe1 desactivada.","state-info":"Estado actual de la conexi\xf3n.","latency-info":"Latencia actual.","upload-info":"Velocidad de subida.","download-info":"Velocidad de descarga."},"connection-error":{"text":"Error de conexi\xf3n","info":"Problema conectando con la app vpn. Algunos datos mostrados podr\xedan estar desactualizados."},"status-page":{"start-title":"Iniciar VPN","no-server":"\xa1Ning\xfan servidor seleccionado!","disconnect":"Desconectar","last-error":"\xdaltimo error:","unknown-error":"Error desconocido.","disconnect-confirmation":"\xbfRealmente desea detener la protecci\xf3n VPN?","upload-info":"Estad\xedsticas de datos subidos.","download-info":"Estad\xedsticas de datos descargados.","latency-info":"Estad\xedsticas de latencia.","total-data-label":"total","problem-connecting-error":"No fue posible conectarse al servidor. El servidor puede no ser v\xe1lido o estar temporalmente inactivo.","problem-starting-error":"No fue posible iniciar la VPN. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","problem-stopping-error":"No fue posible detener la VPN. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","generic-problem-error":"No fue posible realizar la operaci\xf3n. Por favor, aseg\xfarese de que la aplicaci\xf3n base de cliente VPN est\xe9 ejecutandose.","select-server-warning":"Por favor, seleccione un servidor primero.","data":{"ip":"Direcci\xf3n IP:","ip-problem-info":"Hubo un problema al intentar obtener la IP. Por favor, verif\xedquela utilizando un servicio externo.","ip-country-problem-info":"Hubo un problema al intentar obtener el pa\xeds. Por favor, verif\xedquelo utilizando un servicio externo.","ip-refresh-info":"Refrescar","ip-refresh-time-warning":"Por favor, espere {{ seconds }} segundo(s) antes de refrescar los datos.","ip-refresh-loading-warning":"Por favor, espere a que finalice la operaci\xf3n anterior.","country":"Pa\xeds:","server":"Servidor:","server-note":"Nota del servidor:","original-server-note":"Nota original del servidor:","local-pk":"Llave p\xfablica del visor local:","remote-pk":"Llave p\xfablica del visor remoto:","unavailable":"No disponible"}},"server-options":{"tooltip":"Opciones","connect-without-password":"Conectarse sin contrase\xf1a","connect-without-password-confirmation":"La conexi\xf3n se realizar\xe1 sin la contrase\xf1a. \xbfSeguro que desea continuar?","connect-using-password":"Conectarse usando una contrase\xf1a","connect-using-another-password":"Conectarse usando otra contrase\xf1a","edit-name":"Nombre personalizado","edit-label":"Nota personalizada","make-favorite":"Hacer favorito","make-favorite-confirmation":"\xbfRealmente desea marcar este servidor como favorito? Se eliminar\xe1 de la lista de bloqueados.","make-favorite-done":"Agregado a la lista de favoritos.","remove-from-favorites":"Quitar de favoritos","remove-from-favorites-done":"Eliminado de la lista de favoritos.","block":"Bloquear servidor","block-done":"Agregado a la lista de bloqueados.","block-confirmation":"\xbfRealmente desea bloquear este servidor? Se eliminar\xe1 de la lista de favoritos.","block-selected-confirmation":"\xbfRealmente desea bloquear el servidor actualmente seleccionado? Se cerrar\xe1n todas las conexiones.","block-selected-favorite-confirmation":"\xbfRealmente desea bloquear el servidor actualmente seleccionado? Se cerrar\xe1n todas las conexiones y se eliminar\xe1 de la lista de favoritos.","unblock":"Desbloquear servidor","unblock-done":"Eliminado de la lista de bloqueados.","remove-from-history":"Quitar del historial","remove-from-history-confirmation":"\xbfRealmente desea quitar del historial el servidor?","remove-from-history-done":"Eliminado del historial.","edit-value":{"name-title":"Nombre Personalizado","note-title":"Nota Personalizada","name-label":"Nombre personalizado","note-label":"Nota personalizada","apply-button":"Aplicar","changes-made-confirmation":"Se ha realizado el cambio."}},"server-conditions":{"selected-info":"Este es el servidor actualmente seleccionado.","blocked-info":"Este servidor est\xe1 en la lista de bloqueados.","favorite-info":"Este servidor est\xe1 en la lista de favoritos.","history-info":"Este servidor est\xe1 en el historial de servidores.","has-password-info":"Se estableci\xf3 una contrase\xf1a para conectarse con este servidor."},"server-list":{"date-small-table-label":"Fecha","date-info":"\xdaltima vez en la que us\xf3 este servidor.","country-small-table-label":"Pa\xeds","country-info":"Pa\xeds donde se encuentra el servidor.","name-small-table-label":"Nombre","location-small-table-label":"Ubicaci\xf3n","public-key-small-table-label":"Lp","public-key-info":"Llave p\xfablica del servidor.","congestion-rating-small-table-label":"Calificaci\xf3n de congesti\xf3n","congestion-rating-info":"Calificaci\xf3n del servidor relacionada con lo congestionado que suele estar.","congestion-small-table-label":"Congesti\xf3n","congestion-info":"Congesti\xf3n actual del servidor.","latency-rating-small-table-label":"Calificaci\xf3n de latencia","latency-rating-info":"Calificaci\xf3n del servidor relacionada con la latencia que suele tener.","latency-small-table-label":"Latencia","latency-info":"Latencia actual del servidor.","hops-small-table-label":"Saltos","hops-info":"Cu\xe1ntos saltos se necesitan para conectarse con el servidor.","note-small-table-label":"Nota","note-info":"Nota acerca del servidor.","gold-rating-info":"Oro","silver-rating-info":"Plata","bronze-rating-info":"Bronce","notes-info":"Nota personalizada: {{ custom }} - Nota original: {{ original }}","empty-discovery":"Actualmente no hay servidores VPN para mostrar. Por favor, int\xe9ntelo de nuevo m\xe1s tarde.","empty-history":"No hay historial que mostrar.","empty-favorites":"No hay servidores favoritos para mostrar.","empty-blocked":"No hay servidores bloqueados para mostrar.","empty-with-filter":"Ning\xfan servidor VPN coincide con los criterios de filtrado seleccionados.","add-manually-info":"Agregar el servidor manualmente.","current-filters":"Filtros actuales (presione para eliminar)","none":"Ninguno","unknown":"Desconocido","tabs":{"public":"P\xfablicos","history":"Historial","favorites":"Favoritos","blocked":"Bloqueados"},"add-server-dialog":{"title":"Ingresar manualmente","pk-label":"Llave p\xfablica del servidor","password-label":"Contrase\xf1a del servidor (si tiene)","name-label":"Nombre del servidor (opcional)","note-label":"Nota personal (opcional)","pk-length-error":"La llave p\xfablica debe tener 66 caracteres.","pk-chars-error":"La llave p\xfablica s\xf3lo debe contener caracteres hexadecimales.","use-server-button":"Usar servidor"},"password-dialog":{"title":"Introducir Contrase\xf1a","password-if-any-label":"Contrase\xf1a del servidor (si tiene)","password-label":"Contrase\xf1a del servidor","continue-button":"Continuar"},"filter-dialog":{"country":"El pa\xeds debe ser","name":"El nombre debe contener","location":"La ubicaci\xf3n debe contener","public-key":"La llave p\xfablica debe contener","congestion-rating":"La calificaci\xf3n de congesti\xf3n debe ser","latency-rating":"La calificaci\xf3n de latencia debe ser","rating-options":{"any":"Cualquiera","gold":"Oro","silver":"Plata","bronze":"Bronce"},"country-options":{"any":"Cualquiera"}}},"settings-page":{"setting-small-table-label":"Ajuste","value-small-table-label":"Valor","killswitch":"Killswitch","killswitch-info":"Cuando est\xe1 activo, todas las conexiones de red se desactivar\xe1n si la aplicaci\xf3n se est\xe1 ejecutando pero la protecci\xf3n VPN es interrumpida (por errores temporales o cualquier otro problema). Esto evita fugas de datos.","get-ip":"Obtener informaci\xf3n de IP","get-ip-info":"Cuando est\xe1 activa, la aplicaci\xf3n utilizar\xe1 servicios externos para obtener informaci\xf3n sobre la IP actual.","data-units":"Unidades de datos","data-units-info":"Permite seleccionar las unidades que se utilizar\xe1n para mostrar las estad\xedsticas de transmisi\xf3n de datos.","minimum-hops":"Saltos m\xednimos","minimum-hops-info":"Permite configurar la cantidad m\xednima de saltos que la conexi\xf3n deber\xe1 realizar a trav\xe9s de otros visores de Skywire antes de alcanzar el destino final.","dns":"Servidor DNS personalizado","dns-info":"Permite usar un servidor DNS personalizado, lo que podr\xeda mejorar la privacidad y prevenir que algunos sitios sean bloqueados por el servidor DNS por defecto de su proveedor.","setting-none":"Ninguno","setting-on":"Encendido","setting-off":"Apagado","working-warning":"El sistema est\xe1 ocupado. Por favor, espere a que finalice la operaci\xf3n anterior.","change-while-connected-confirmation":"La protecci\xf3n VPN se interrumpir\xe1 mientras se realiza el cambio. \xbfDesea continuar?","data-units-modal":{"title":"Unidades de Datos","only-bits":"Bits para todas las estad\xedsticas","only-bytes":"Bytes para todas las estad\xedsticas","bits-speed-and-bytes-volume":"Bits para velocidad y bytes para volumen (predeterminado)"}},"dns-config":{"title":"Servidor DNS personalizado","ip":"Direcci\xf3n IP del servidor DNS personalizado","save-config-button":"Guardar configuraci\xf3n","done":"Cambios guardados."}}}')}}]); \ No newline at end of file diff --git a/pkg/visor/static/502.30b5c9a96853e2a7.js b/pkg/visor/static/502.30b5c9a96853e2a7.js deleted file mode 100644 index 4c3c253d0b..0000000000 --- a/pkg/visor/static/502.30b5c9a96853e2a7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[502],{502:e=>{e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","go-to-settings":"Go to settings","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start","loading-error":"An error occurred while getting the initial data. Retrying..."},"node":{"title":"Visor details","not-found":"Visor not found.","statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-server":"DMSG server:","ping":"Ping:","node-version":"Visor version:","build-type":"Build type:","skybian-version":"Skybian version:","unknown-build":"Unknown","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"rewards-info":{"title":"Reward Info","rewards-address":"Reward address:","not-registered":"Not registered","not-registered-info":"You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \\"Set address\\" button and set a Skycoin address.","open-in-explorer":"Open in blockchain explorer","set-address-button":"Set address","change-address-button":"Change address"},"transports-info":{"title":"Transports Info","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled."},"router-info":{"title":"Router Info","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health Info","uptime-tracker":"Uptime tracker:","connected":"Connected","disconnected":"Disconnected"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"rewards-address-config":{"title":"Reward Address Configuration","info":"Here you can set to which Skycoin address you want the rewards to be sent. If you leave the address empty, the registration will be deleted and the visor will not receive rewards.","more-info-link":"(More info about the reward system)","address":"Address","address-error":"Please enter a valid Skycoin address.","save-config-button":"Save configuration","done":"Changes saved.","empty-warning":"The address in empty, so the registration will be deleted and no rewards will be received. Do you really want to continue?"},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","min-hops-error":"Please enter a valid number.","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","modify-rewards-all":"Change rewards address","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","no-visors-to-modify":"There are no visors to modify.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"bulk-rewards":{"title":"Change reward address","info":"Enter the Skycoin address where you want to receive the rewards. The address will be set on all the selected visors. If you leave the address empty, the registration will be deleted and the visors will not receive rewards. You can also set the reward address of each node individually using the option on the visor details page.","more-info-link":"(More info about the reward system)","address":"New address","select-visors":"Visors to alter:","current-address":"Current address:","not-registered":"None (not registered on the reward program).","checking":"Checking...","error-checking":"Error checking:","processing":"Processing...","error-processing":"Error making the change:","done":"Change done.","perform-changes":"Perform changes","empty-warning":"The address in empty, so the registrations will be deleted and no rewards will be received. Do you really want to continue?"},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","checking-auth":"Checking authentication settings.","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot","logs":"View logs"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","view-all":"View all {{ totalLogs }} entries","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","title-official":"Official Applications","title-user":"User Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty-official":"This visor doesn\'t have any official applications.","empty-user":"This visor doesn\'t have any user applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"user-app-settings":{"title":"{{ name }} (Settings)","info":"Here you can edit the app settings as name-value pairs. Please check the application docs to see which settings and values are supported by this app.","name":"Name {{ number }}","value":"Value {{ number }}","remove":"Remove","add":"Add setting","save":"Save","invalid-confirmation":"One or more settings do not have a name and will be ignored. Do you want to continue?","empty-confirmation":"The settings list is empty. Do you really want to continue?","changes-made":"The changes have been made."},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","netifc":"Default network interface (optional)","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","dns":"Custom DNS server IP address","dns-error":"Invalid value.","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","dns":"Custom DNS server","dns-info":"Allows to use a custom DNS server, which could improve privacy and prevent sites from being blocked by the default DNS server of your ISP.","setting-none":"None","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}},"dns-config":{"title":"Custom DNS server","ip":"Custom DNS server IP address","save-config-button":"Save configuration","done":"Changes saved."}}}')}}]); \ No newline at end of file diff --git a/pkg/visor/static/502.58e896e8ce0ed015.js b/pkg/visor/static/502.58e896e8ce0ed015.js new file mode 100644 index 0000000000..d27ff511f4 --- /dev/null +++ b/pkg/visor/static/502.58e896e8ce0ed015.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[502],{502:e=>{e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","go-to-settings":"Go to settings","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start","loading-error":"An error occurred while getting the initial data. Retrying..."},"node":{"title":"Visor details","not-found":"Visor not found.","logs":{"title":"Runtime Logs","no-logs":"No runtime logs were found for this visor.","no-logs-for-filter":"No runtime logs matches the selected filter.","view-all":"View all logs in raw format >","view-rest":"View all {{ number }} elements in raw format >","selected-filter":"Showing:","filter-ignored":"The filter excluded {{ number }} entries","filter-title":"Filter","filter-all":"All logs","filter-debug":"Debug or more important","filter-info":"Info or more important","filter-warning":"Warning or more important","filter-error":"Error or more important","filter-faltal":"Faltal or more important","filter-panic":"Panic"},"statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-server":"DMSG server:","no-dmsg-server":"Not connected","ping":"Ping:","node-version":"Visor version:","build-type":"Build type:","skybian-version":"Skybian version:","unknown-build":"Unknown","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"rewards-info":{"title":"Reward Info","rewards-address":"Reward address:","not-registered":"Not registered","not-registered-info":"You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \\"Set address\\" button and set a Skycoin address.","open-in-explorer":"Open in blockchain explorer","set-address-button":"Set address","change-address-button":"Change address"},"transports-info":{"title":"Transports Info","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled."},"router-info":{"title":"Router Info","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health Info","uptime-tracker":"Uptime tracker:","connected":"Connected","disconnected":"Disconnected"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"rewards-address-config":{"title":"Reward Address Configuration","info":"Here you can set to which Skycoin address you want the rewards to be sent. If you leave the address empty, the registration will be deleted and the visor will not receive rewards.","more-info-link":"(More info about the reward system)","address":"Address","address-error":"Please enter a valid Skycoin address.","save-config-button":"Save configuration","done":"Changes saved.","empty-warning":"The address in empty, so the registration will be deleted and no rewards will be received. Do you really want to continue?"},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","min-hops-error":"Please enter a valid number.","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","modify-rewards-all":"Change rewards address","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","no-visors-to-modify":"There are no visors to modify.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"bulk-rewards":{"title":"Change reward address","info":"Enter the Skycoin address where you want to receive the rewards. The address will be set on all the selected visors. If you leave the address empty, the registration will be deleted and the visors will not receive rewards. You can also set the reward address of each node individually using the option on the visor details page.","more-info-link":"(More info about the reward system)","address":"New address","select-visors":"Visors to alter:","current-address":"Current address:","not-registered":"None (not registered on the reward program).","checking":"Checking...","error-checking":"Error checking:","processing":"Processing...","error-processing":"Error making the change:","done":"Change done.","perform-changes":"Perform changes","empty-warning":"The address in empty, so the registrations will be deleted and no rewards will be received. Do you really want to continue?"},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","checking-auth":"Checking authentication settings.","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot","logs":"View logs"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","view-all":"View all {{ totalLogs }} entries","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","title-official":"Official Applications","title-user":"User Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty-official":"This visor doesn\'t have any official applications.","empty-user":"This visor doesn\'t have any user applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"user-app-settings":{"title":"{{ name }} (Settings)","info":"Here you can edit the app settings as name-value pairs. Please check the application docs to see which settings and values are supported by this app.","name":"Name {{ number }}","value":"Value {{ number }}","remove":"Remove","add":"Add setting","save":"Save","invalid-confirmation":"One or more settings do not have a name and will be ignored. Do you want to continue?","empty-confirmation":"The settings list is empty. Do you really want to continue?","changes-made":"The changes have been made."},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","netifc":"Default network interface (optional)","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","dns":"Custom DNS server IP address","dns-error":"Invalid value.","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","dns":"Custom DNS server","dns-info":"Allows to use a custom DNS server, which could improve privacy and prevent sites from being blocked by the default DNS server of your ISP.","setting-none":"None","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}},"dns-config":{"title":"Custom DNS server","ip":"Custom DNS server IP address","save-config-button":"Save configuration","done":"Changes saved."}}}')}}]); \ No newline at end of file diff --git a/pkg/visor/static/974.9e3a712842f1432f.js b/pkg/visor/static/974.9e3a712842f1432f.js deleted file mode 100644 index 1cfc1568f7..0000000000 --- a/pkg/visor/static/974.9e3a712842f1432f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[974],{3974:e=>{e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","go-to-settings":"Go to settings","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start","loading-error":"An error occurred while getting the initial data. Retrying..."},"node":{"title":"Visor details","not-found":"Visor not found.","statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-server":"DMSG server:","ping":"Ping:","node-version":"Visor version:","build-type":"Build type:","skybian-version":"Skybian version:","unknown-build":"Unknown","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"rewards-info":{"title":"Reward Info","rewards-address":"Reward address:","not-registered":"Not registered","not-registered-info":"You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \\"Set address\\" button and set a Skycoin address.","open-in-explorer":"Open in blockchain explorer","set-address-button":"Set address","change-address-button":"Change address"},"transports-info":{"title":"Transports Info","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled."},"router-info":{"title":"Router Info","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health Info","status":"Status:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"rewards-address-config":{"title":"Reward Address Configuration","info":"Here you can set to which Skycoin address you want the rewards to be sent. If you leave the address empty, the registration will be deleted and the visor will not receive rewards.","more-info-link":"(More info about the reward system)","address":"Address","address-error":"Please enter a valid Skycoin address.","save-config-button":"Save configuration","done":"Changes saved.","empty-warning":"The address in empty, so the registrations will be deleted and no rewards will be received. Do you really want to continue?"},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","min-hops-error":"Please enter a valid number.","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","modify-rewards-all":"Change rewards address","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","no-visors-to-modify":"There are no visors to modify.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"bulk-rewards":{"title":"Change reward address","info":"Enter the Skycoin address where you want to receive the rewards. The address will be set on all the selected visors. If you leave the address empty, the registration will be deleted and the visors will not receive rewards. You can also set the reward address of each node individually using the option on the visor details page.","more-info-link":"(More info about the reward system)","address":"New address","select-visors":"Visors to alter:","current-address":"Current address:","not-registered":"None (not registered on the reward program).","checking":"Checking...","error-checking":"Error checking:","processing":"Processing...","error-processing":"Error making the change:","done":"Change done.","perform-changes":"Perform changes","empty-warning":"The address in empty, so the registration will be deleted and no rewards will be received. Do you really want to continue?"},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","checking-auth":"Checking authentication settings.","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot","logs":"View logs"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","view-all":"View all {{ totalLogs }} entries","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","title-official":"Official Applications","title-user":"User Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty-official":"This visor doesn\'t have any official applications.","empty-user":"This visor doesn\'t have any user applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"user-app-settings":{"title":"{{ name }} (Settings)","info":"Here you can edit the app settings as name-value pairs. Please check the application docs to see which settings and values are supported by this app.","name":"Name {{ number }}","value":"Value {{ number }}","remove":"Remove","add":"Add setting","save":"Save","invalid-confirmation":"One or more settings do not have a name and will be ignored. Do you want to continue?","empty-confirmation":"The settings list is empty. Do you really want to continue?","changes-made":"The changes have been made."},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","netifc":"Default network interface (optional)","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","dns":"Custom DNS server IP address","dns-error":"Invalid value.","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","dns":"Custom DNS server","dns-info":"Allows to use a custom DNS server, which could improve privacy and prevent sites from being blocked by the default DNS server of your ISP.","setting-none":"None","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}},"dns-config":{"title":"Custom DNS server","ip":"Custom DNS server IP address","save-config-button":"Save configuration","done":"Changes saved."}}}')}}]); \ No newline at end of file diff --git a/pkg/visor/static/974.c5a367fdf75808a3.js b/pkg/visor/static/974.c5a367fdf75808a3.js new file mode 100644 index 0000000000..849078c64a --- /dev/null +++ b/pkg/visor/static/974.c5a367fdf75808a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[974],{3974:e=>{e.exports=JSON.parse('{"common":{"save":"Save","cancel":"Cancel","downloaded":"Downloaded","uploaded":"Uploaded","loading-error":"There was an error getting the data. Retrying...","operation-error":"There was an error trying to complete the operation.","no-connection-error":"There is no internet connection or connection to the Hypervisor.","error":"Error:","refreshed":"Data refreshed.","options":"Options","logout":"Logout","logout-error":"Error logging out.","logout-confirmation":"Are you sure you want to log out?","time-in-ms":"{{ time }}ms.","time-in-segs":"{{ time }}s.","ok":"Ok","yes":"Yes","no":"No","unknown":"Unknown","close":"Close","window-size-error":"The window is too narrow for the content."},"labeled-element":{"edit-label":"Edit label","remove-label":"Remove label","go-to-settings":"Go to settings","copy":"Copy","remove-label-confirmation":"Do you really want to remove the label?","unnamed-element":"Unnamed","unnamed-local-visor":"Local visor","local-element":"Local","tooltip":"Click to copy the entry or change the label","tooltip-with-text":"{{ text }} (Click to copy the entry or change the label)"},"labels":{"title":"Labels","info":"Labels you have entered to easily identify visors, transports and other elements, instead of having to read machine generated identifiers.","list-title":"Label list","label":"Label","id":"Element ID","type":"Type","delete-confirmation":"Are you sure you want to delete the label?","delete-selected-confirmation":"Are you sure you want to delete the selected labels?","delete":"Delete label","deleted":"Delete operation completed.","empty":"There aren\'t any saved labels.","empty-with-filter":"No label matches the selected filtering criteria.","filter-dialog":{"label":"The label must contain","id":"The id must contain","type":"The type must be","type-options":{"any":"Any","visor":"Visor","dmsg-server":"DMSG server","transport":"Transport"}}},"filters":{"filter-action":"Filter","filter-info":"Filter list.","press-to-remove":"(Press to remove the filters)","remove-confirmation":"Are you sure you want to remove the filters?"},"tables":{"title":"Order by","sorting-title":"Ordered by:","sort-by-value":"Value","sort-by-label":"Label","label":"(label)","inverted-order":"(inverted)"},"start":{"title":"Start","loading-error":"An error occurred while getting the initial data. Retrying..."},"node":{"title":"Visor details","not-found":"Visor not found.","logs":{"title":"Runtime Logs","no-logs":"No runtime logs were found for this visor.","no-logs-for-filter":"No runtime logs matches the selected filter.","view-all":"View all logs in raw format >","view-rest":"View all {{ number }} elements in raw format >","selected-filter":"Showing:","filter-ignored":"The filter excluded {{ number }} entries","filter-title":"Filter","filter-all":"All logs","filter-debug":"Debug or more important","filter-info":"Info or more important","filter-warning":"Warning or more important","filter-error":"Error or more important","filter-faltal":"Faltal or more important","filter-panic":"Panic"},"statuses":{"online":"Online","online-tooltip":"The visor is online.","connecting":"Connecting","connecting-tooltip":"The visor is online, but still connecting to the uptime tracker.","unknown":"Unknown","unknown-tooltip":"The visor is online, but it has not been possible to determine if it is connected to the uptime tracker.","partially-online":"Online with problems","partially-online-tooltip":"The visor is online, but disconnected from the uptime tracker.","offline":"Offline","offline-tooltip":"The visor is offline."},"details":{"node-info":{"title":"Visor Info","label":"Label:","public-key":"Public key:","symmetic-nat":"Symmetic NAT:","public-ip":"Public IP:","ip":"IP:","dmsg-server":"DMSG server:","no-dmsg-server":"Not connected","ping":"Ping:","node-version":"Visor version:","build-type":"Build type:","skybian-version":"Skybian version:","unknown-build":"Unknown","time":{"title":"Time online:","seconds":"a few seconds","minute":"1 minute","minutes":"{{ time }} minutes","hour":"1 hour","hours":"{{ time }} hours","day":"1 day","days":"{{ time }} days","week":"1 week","weeks":"{{ time }} weeks"}},"rewards-info":{"title":"Reward Info","rewards-address":"Reward address:","not-registered":"Not registered","not-registered-info":"You have not specified a Skycoin address for receiving rewards for this visor. If you want to register the visor for receiving rewards, press the \\"Set address\\" button and set a Skycoin address.","open-in-explorer":"Open in blockchain explorer","set-address-button":"Set address","change-address-button":"Change address"},"transports-info":{"title":"Transports Info","autoconnect":"Autoconnect:","autoconnect-info":"When enabled, the visor will automatically create the transports needed when a connection to a public visor is requested. If disabled, the transports will have to be created before being able to make the connection.","enabled":"Enabled","disabled":"Disabled","enable-button":"Enable","disable-button":"Disable","enable-confirmation":"Are you sure you want to enable the autoconnect feature?","disable-confirmation":"Are you sure you want to disable the autoconnect feature?","enable-done":"The autoconnect feature has been enabled.","disable-done":"The autoconnect feature has been disabled."},"router-info":{"title":"Router Info","min-hops":"Min hops:","max-hops":"Max hops:","change-config-button":"Change configuration"},"node-health":{"title":"Health Info","status":"Status:","transport-discovery":"Transport discovery:","route-finder":"Route finder:","setup-node":"Setup node:","uptime-tracker":"Uptime tracker:","address-resolver":"Address resolver:","element-offline":"Offline"},"node-traffic-data":"Traffic data"},"tabs":{"info":"Info","apps":"Apps","routing":"Routing"},"error-load":"An error occurred while refreshing the data. Retrying..."},"rewards-address-config":{"title":"Reward Address Configuration","info":"Here you can set to which Skycoin address you want the rewards to be sent. If you leave the address empty, the registration will be deleted and the visor will not receive rewards.","more-info-link":"(More info about the reward system)","address":"Address","address-error":"Please enter a valid Skycoin address.","save-config-button":"Save configuration","done":"Changes saved.","empty-warning":"The address in empty, so the registrations will be deleted and no rewards will be received. Do you really want to continue?"},"router-config":{"title":"Router Configuration","info":"Here you can configure how many hops the connections must pass through other Skywire visors before reaching the final destination. NOTE: the changes will not affect the existing routes.","min-hops":"Min hops","min-hops-error":"Please enter a valid number.","save-config-button":"Save configuration","done":"Changes saved."},"nodes":{"title":"Visor list","dmsg-title":"DMSG","modify-rewards-all":"Change rewards address","update-all":"Update all online visors","hypervisor":"Hypervisor","state":"State","state-tooltip":"Current state","label":"Label","key":"Key","dmsg-server":"DMSG server","ping":"Ping","hypervisor-info":"This visor is the current Hypervisor.","copy-key":"Copy key","copy-dmsg":"Copy DMSG server key","copy-data":"Copy data","view-node":"View visor","delete-node":"Remove visor","delete-all-offline":"Remove all offline visors","error-load":"An error occurred while refreshing the list. Retrying...","empty":"There aren\'t any visors connected to this hypervisor.","empty-with-filter":"No visor matches the selected filtering criteria.","delete-node-confirmation":"Are you sure you want to remove the visor from the list?","delete-all-offline-confirmation":"Are you sure you want to remove all offline visors from the list?","delete-all-filtered-offline-confirmation":"All offline visors satisfying the current filtering criteria will be removed from the list. Are you sure you want to continue?","deleted":"Visor removed.","deleted-singular":"1 offline visor removed.","deleted-plural":"{{ number }} offline visors removed.","no-visors-to-update":"There are no visors to update.","no-visors-to-modify":"There are no visors to modify.","filter-dialog":{"online":"The visor must be","label":"The label must contain","key":"The public key must contain","dmsg":"The DMSG server key must contain","online-options":{"any":"Online or offline","online":"Online","offline":"Offline"}}},"bulk-rewards":{"title":"Change reward address","info":"Enter the Skycoin address where you want to receive the rewards. The address will be set on all the selected visors. If you leave the address empty, the registration will be deleted and the visors will not receive rewards. You can also set the reward address of each node individually using the option on the visor details page.","more-info-link":"(More info about the reward system)","address":"New address","select-visors":"Visors to alter:","current-address":"Current address:","not-registered":"None (not registered on the reward program).","checking":"Checking...","error-checking":"Error checking:","processing":"Processing...","error-processing":"Error making the change:","done":"Change done.","perform-changes":"Perform changes","empty-warning":"The address in empty, so the registration will be deleted and no rewards will be received. Do you really want to continue?"},"edit-label":{"label":"Label","done":"Label saved.","label-removed-warning":"The label was removed."},"settings":{"title":"Settings","checking-auth":"Checking authentication settings.","password":{"initial-config-help":"Use this option for setting the initial password. After a password has been set, it is not possible to use this option to modify it.","help":"Options for changing your password.","old-password":"Old password","new-password":"New password","repeat-password":"Repeat password","password-changed":"Password changed.","error-changing":"Error changing password.","initial-config":{"title":"Set initial password","password":"Password","repeat-password":"Repeat password","set-password":"Set password","done":"Password set. Please use it to access the system.","error":"Error. Please make sure you have not already set the password."},"errors":{"bad-old-password":"The provided old password is not correct.","old-password-required":"Old password is required.","new-password-error":"Password must be 6-64 characters long.","passwords-not-match":"Passwords do not match.","default-password":"Don\'t use the default password (1234)."}},"updater-config":{"open-link":"Show updater settings","open-confirmation":"The updater settings are for experienced users only. Are you sure you want to continue?","help":"Use this form for overriding the settings that will be used by the updater. All empty fields will be ignored. The settings will be used for all updating operations, no mater which element is being updated, so please be careful.","channel":"Channel","version":"Version","archive-url":"Archive URL","checksum-url":"Checksum URL","not-saved":"The changes have not been saved yet.","save":"Save changes","remove-settings":"Remove the settings","saved":"The custom settings have been saved.","removed":"The custom settings have been removed.","save-confirmation":"Are you sure you want to apply the custom settings?","remove-confirmation":"Are you sure you want to remove the custom settings?"},"change-password":"Change password","refresh-rate":"Refresh rate","refresh-rate-help":"Time the system waits to update the data automatically.","refresh-rate-confirmation":"Refresh rate changed.","seconds":"seconds"},"login":{"password":"Password","incorrect-password":"Incorrect password.","initial-config":"Configure initial launch"},"actions":{"menu":{"terminal":"Terminal","config":"Configuration","update":"Update","reboot":"Reboot","logs":"View logs"},"reboot":{"confirmation":"Are you sure you want to reboot the visor?","done":"The visor is restarting."},"update":{"confirmation":"A terminal will be opened in a new tab and the update procedure will be started automatically. Do you want to continue?"},"terminal-options":{"full":"Full terminal","simple":"Simple terminal"},"terminal":{"title":"Terminal","input-start":"Skywire terminal for {{address}}","error":"Unexpected error while trying to execute the command."}},"update":{"title":"Update","error-title":"Error","processing":"Looking for updates...","no-update":"There is no update for the visor. The currently installed version is:","no-updates":"No new updates were found.","already-updating":"Some visors are already being updated:","with-error":"It was not possible to check the following visors:","update-available":"The following updates were found:","update-available-singular":"The following updates for 1 visor were found:","update-available-plural":"The following updates for {{ number }} visors were found:","update-available-additional-singular":"The following additional updates for 1 visor were found:","update-available-additional-plural":"The following additional updates for {{ number }} visors were found:","update-instructions":"Click the \'Install updates\' button to continue.","updating":"The update operation has been started, you can open this window again for checking the progress:","version-change":"From {{ currentVersion }} to {{ newVersion }}","selected-channel":"Selected channel:","downloaded-file-name-prefix":"Downloading: ","speed-prefix":"Speed: ","time-downloading-prefix":"Time downloading: ","time-left-prefix":"Aprox. time left: ","starting":"Preparing to update","finished":"Status connection finished","install":"Install updates"},"update-all":{"title":"Update","updatable-list-text":"Please press the buttons of the visors you want to update. A terminal will be opened in a new tab for each visor and the update procedure will be started automatically.","non-updatable-list-text":"The following visors can not be updated via the terminal:","update-button":"Update"},"apps":{"log":{"title":"Log","empty":"There are no log messages for the selected time range.","filter-button":"Only showing logs generated since:","view-all":"View all {{ totalLogs }} entries","filter":{"title":"Filter","filter":"Only show logs generated since","7-days":"The last 7 days","1-month":"The last 30 days","3-months":"The last 3 months","6-months":"The last 6 months","1-year":"The last year","all":"Show all"}},"apps-list":{"title":"Applications","title-official":"Official Applications","title-user":"User Applications","list-title":"Application list","app-name":"Name","port":"Port","state":"State","state-tooltip":"Current state","auto-start":"Auto start","empty-official":"This visor doesn\'t have any official applications.","empty-user":"This visor doesn\'t have any user applications.","empty-with-filter":"No app matches the selected filtering criteria.","disable-autostart":"Disable autostart","enable-autostart":"Enable autostart","autostart-disabled":"Autostart disabled","autostart-enabled":"Autostart enabled","unavailable-logs-error":"Unable to show the logs while the app is not running.","filter-dialog":{"state":"The state must be","name":"The name must contain","port":"The port must contain","autostart":"The autostart must be","state-options":{"any":"Running or stopped","running":"Running","stopped":"Stopped"},"autostart-options":{"any":"Enabled or disabled","enabled":"Enabled","disabled":"Disabled"}}},"user-app-settings":{"title":"{{ name }} (Settings)","info":"Here you can edit the app settings as name-value pairs. Please check the application docs to see which settings and values are supported by this app.","name":"Name {{ number }}","value":"Value {{ number }}","remove":"Remove","add":"Add setting","save":"Save","invalid-confirmation":"One or more settings do not have a name and will be ignored. Do you want to continue?","empty-confirmation":"The settings list is empty. Do you really want to continue?","changes-made":"The changes have been made."},"vpn-socks-server-settings":{"socks-title":"Skysocks Settings","vpn-title":"VPN-Server Settings","new-password":"New password (Leave empty to remove the password)","repeat-password":"Repeat password","netifc":"Default network interface (optional)","passwords-not-match":"Passwords do not match.","secure-mode-check":"Use secure mode","secure-mode-info":"When active, the server doesn\'t allow client/server SSH and doesn\'t allow any traffic from VPN clients to the server local network.","save":"Save","remove-passowrd-confirmation":"You left the password field empty. Are you sure you want to remove the password?","change-passowrd-confirmation":"Are you sure you want to change the password?","changes-made":"The changes have been made."},"vpn-socks-client-settings":{"socks-title":"Skysocks-Client Settings","vpn-title":"VPN-Client Settings","discovery-tab":"Search","remote-visor-tab":"Enter manually","history-tab":"History","settings-tab":"Settings","use":"Use this data","change-note":"Change note","remove-entry":"Remove entry","note":"Note:","note-entered-manually":"Entered manually","note-obtained":"Obtained from the discovery service","key":"Key:","port":"Port:","location":"Location:","state-available":"Available","state-offline":"Offline","public-key":"Remote visor public key","password":"Password","password-history-warning":"Note: the password will not be saved in the history.","copy-pk-info":"Copy public key.","copied-pk-info":"The public key has been copied.","copy-pk-error":"There was a problem copying the public key.","no-elements":"Currently there are no elements to show. Please try again later.","no-elements-for-filters":"There are no elements that meet the filter criteria.","no-filter":"No filter has been selected","click-to-change":"Click to change","remote-key-length-error":"The public key must be 66 characters long.","remote-key-chars-error":"The public key must only contain hexadecimal characters.","save":"Save","remove-from-history-confirmation":"Are you sure you want to remove the entry from the history?","change-key-confirmation":"Are you sure you want to change the remote visor public key?","changes-made":"The changes have been made.","no-history":"This tab will show the last {{ number }} public keys used.","default-note-warning":"The default note has been used.","pagination-info":"{{ currentElementsRange }} of {{ totalElements }}","dns":"Custom DNS server IP address","dns-error":"Invalid value.","killswitch-check":"Activate killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","settings-changed-alert":" The changes have not been saved yet.","save-settings":"Save settings","change-note-dialog":{"title":"Change Note","note":"Note"},"password-dialog":{"title":"Enter Password","password":"Password","info":"You are being asked for a password because a password was set when the selected entry was created, but the it was not saved for security reasons. You can leave the password empty if needed.","continue-button":"Continue"},"filter-dialog":{"title":"Filters","country":"The country must be","any-country":"Any","location":"The location must contain","pub-key":"The public key must contain","apply":"Apply"}},"stop-app":"Stop","start-app":"Start","view-logs":"View logs","settings":"Settings","open":"Open","error":"An error has occured and it was not possible to perform the operation.","stop-confirmation":"Are you sure you want to stop the app?","stop-selected-confirmation":"Are you sure you want to stop the selected apps?","disable-autostart-confirmation":"Are you sure you want to disable autostart for the app?","enable-autostart-confirmation":"Are you sure you want to enable autostart for the app?","disable-autostart-selected-confirmation":"Are you sure you want to disable autostart for the selected apps?","enable-autostart-selected-confirmation":"Are you sure you want to enable autostart for the selected apps?","operation-completed":"Operation completed.","operation-unnecessary":"The selection already has the requested setting.","status-running":"Running","status-connecting":"Connecting","status-stopped":"Stopped","status-failed":"Ended with the following error: {{ error }}","status-running-tooltip":"App is currently running","status-connecting-tooltip":"App is currently connecting","status-stopped-tooltip":"App is currently stopped","status-failed-tooltip":"The app finished with the following error: {{ error }}"},"transports":{"title":"Transports","info":"Connections you have with remote Skywire visors, to allow local Skywire apps to communicate with apps running on those remote visors.","list-title":"Transport list","offline":"Offline","persistent":"Persistent","persistent-tooltip":"Persistent transports, which are created automatically when the visor is turned on and are automatically recreated in case of disconnection.","persistent-transport-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection.","persistent-transport-button-tooltip":"This transport is persistent, so it is created automatically when the visor is turned on and automatically recreated in case of disconnection. Press to make non-persistent.","non-persistent-transport-button-tooltip":"Press to make this transport persistent. Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","make-persistent":"Make persistent","make-non-persistent":"Make non-persistent","make-selected-persistent":"Make all selected persistent","make-selected-non-persistent":"Make all selected non-persistent","changes-made":"Changes made.","no-changes-needed":"No changes were needed.","id":"ID","remote-node":"Remote","type":"Type","create":"Create transport","make-persistent-confirmation":"Are you sure you want to make the transport persistent?","make-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent?","make-selected-persistent-confirmation":"Are you sure you want to make the selected transports persistent?","make-selected-non-persistent-confirmation":"Are you sure you want to make the selected transports non-persistent?","make-offline-non-persistent-confirmation":"Are you sure you want to make the transport non-persistent? It will not be shown in the list while offline anymore.","delete-confirmation":"Are you sure you want to delete the transport?","delete-persistent-confirmation":"This transport is persistent, so it may be recreated shortly after deletion. Are you sure you want to delete it?","delete-selected-confirmation":"Are you sure you want to delete the selected transports?","delete":"Delete transport","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any transports.","empty-with-filter":"No transport matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","persistent":"Persistent:","id":"ID:","local-pk":"Local public key:","remote-pk":"Remote public key:","type":"Type:"},"data":{"title":"Data transmission","uploaded":"Uploaded data:","downloaded":"Downloaded data:"}},"dialog":{"remote-key":"Remote public key","label":"Identification name (optional)","transport-type":"Transport type","make-persistent":"Make persistent","persistent-tooltip":"Persistent transports are created automatically when the visor is turned on and automatically recreated in case of disconnection.","only-persistent-created":"The persistent transport was created, but it may have not been activated.","success":"Transport created.","success-without-label":"The transport was created, but it was not possible to save the label.","errors":{"remote-key-length-error":"The remote public key must be 66 characters long.","remote-key-chars-error":"The remote public key must only contain hexadecimal characters.","transport-type-error":"The transport type is required."}},"filter-dialog":{"persistent":"The transport must be","id":"The id must contain","remote-node":"The remote key must contain","persistent-options":{"any":"Any","persistent":"Persistent","non-persistent":"Non-persistent"}}},"routes":{"title":"Routes","info":"Paths used to reach the remote visors to which transports have been established. Routes are automatically generated as needed.","list-title":"Route list","key":"Key","type":"Type","source":"Source","destination":"Destination","delete-confirmation":"Are you sure you want to delete the route?","delete-selected-confirmation":"Are you sure you want to delete the selected routes?","delete":"Delete route","deleted":"Delete operation completed.","empty":"Visor doesn\'t have any routes.","empty-with-filter":"No route matches the selected filtering criteria.","details":{"title":"Details","basic":{"title":"Basic info","key":"Key:","rule":"Rule:"},"summary":{"title":"Rule summary","keep-alive":"Keep alive:","type":"Rule type:","key-route-id":"Key route ID:"},"specific-fields-titles":{"app":"App fields","forward":"Forward fields","intermediary-forward":"Intermediary forward fields"},"specific-fields":{"route-id":"Next route ID:","transport-id":"Next transport ID:","destination-pk":"Destination public key:","source-pk":"Source public key:","destination-port":"Destination port:","source-port":"Source port:"}},"filter-dialog":{"key":"The key must contain","type":"The type must be","source":"The source must contain","destination":"The destination must contain","any-type-option":"Any"}},"copy":{"tooltip":"Click to copy","tooltip-with-text":"{{ text }} (Click to copy)","copied":"Copied!"},"selection":{"select-all":"Select all","unselect-all":"Unselect all","delete-all":"Delete all selected elements","start-all":"Start all selected apps","stop-all":"Stop all selected apps","enable-autostart-all":"Enable autostart for all selected apps","disable-autostart-all":"Disable autostart for all selected apps"},"refresh-button":{"seconds":"Updated a few seconds ago","minute":"Updated 1 minute ago","minutes":"Updated {{ time }} minutes ago","hour":"Updated 1 hour ago","hours":"Updated {{ time }} hours ago","day":"Updated 1 day ago","days":"Updated {{ time }} days ago","week":"Updated 1 week ago","weeks":"Updated {{ time }} weeks ago","error-tooltip":"There was an error updating the data. Retrying automatically every {{ time }} seconds..."},"view-all-link":{"label":"View all {{ number }} elements"},"paginator":{"first":"First","last":"Last","total":"Total: {{ number }} pages","select-page-title":"Select page"},"confirmation":{"header-text":"Confirmation","confirm-button":"Yes","cancel-button":"No","close":"Close","error-header-text":"Error","done-header-text":"Done"},"language":{"title":"Select language"},"tabs-window":{"title":"Change tab"},"vpn":{"title":"VPN Control Panel","start":"Start","servers":"Servers","settings":"Settings","unnamed":"Unnamed","starting-blocked-server-error":"Unable to connect to the selected server because it has been added to the blocked servers list.","unexpedted-error":"An unexpected error occurred and the operation could not be completed.","remote-access-title":"It appears that you are accessing the system remotely","remote-access-text":"This application only allows you to manage the VPN protection of the device on which it was installed. Changes made with it will not affect remote devices like the one you seem to be using. Also, the displayed IP data may be incorrect.","server-change":{"busy-error":"The system is busy. Please wait.","backend-error":"It was not possible to change the server. Please make sure the public key is correct and the VPN app is running.","already-selected-warning":"The selected server is already being used.","change-server-while-connected-confirmation":"The VPN protection will be interrupted while changing the server and some data may be transmitted unprotected during the process. Do you want to continue?","start-same-server-confirmation":"You had already selected that server. Do you want to connect to it?"},"error-page":{"text":"The VPN client app is not available.","more-info":"It was not possible to connect to the VPN client app. This may be due to a configuration error, an unexpected problem with the visor or because you used an invalid public key in the URL.","text-pk":"Invalid configuration.","more-info-pk":"The application cannot be started because you have not specified the visor public key.","text-storage":"Error saving data.","more-info-storage":"There has been a conflict when trying to save the data and the application has been closed to prevent errors. This could happen if you open the application in more than one tab or window.","text-pk-change":"Invalid operation.","more-info-pk-change":"Please use this application to manage only one VPN client."},"connection-info":{"state-title":"Your connection is currently:","state-connecting":"Connecting","state-connecting-info":"The VPN protection is being activated.","state-connected":"Connected","state-connected-info":"The VPN protection is on.","state-disconnecting":"Disconnecting","state-disconnecting-info":"The VPN protection is being deactivated.","state-reconnecting":"Reconnecting","state-reconnecting-info":"The VPN protection is being restored.","state-disconnected":"Disconnected","state-disconnected-info":"The VPN protection is off.","state-info":"Current connection status.","latency-info":"Current latency.","upload-info":"Upload speed.","download-info":"Download speed."},"connection-error":{"text":"Connection error","info":"Problem connecting with the vpn app. Some data being displayed could be outdated."},"status-page":{"start-title":"Start VPN","no-server":"No server selected!","disconnect":"Disconnect","last-error":"Last error:","unknown-error":"Unknown error.","disconnect-confirmation":"Are you sure you want to stop the VPN protection?","upload-info":"Uploaded data stats.","download-info":"Downloaded data stats.","latency-info":"Latency stats.","total-data-label":"total","problem-connecting-error":"It was not possible to connect to the server. The server may be invalid or temporarily down.","problem-starting-error":"It was not possible to start the VPN. Please make sure the base VPN client app is running.","problem-stopping-error":"It was not possible to stop the VPN. Please make sure the base VPN client app is running.","generic-problem-error":"It was not possible to perform the operation. Please make sure the base VPN client app is running.","select-server-warning":"Please select a server first.","data":{"ip":"IP address:","ip-problem-info":"There was a problem trying to get the IP. Please verify it using an external service.","ip-country-problem-info":"There was a problem trying to get the country. Please verify it using an external service.","ip-refresh-info":"Refresh","ip-refresh-time-warning":"Please wait {{ seconds }} second(s) before refreshing the data.","ip-refresh-loading-warning":"Please wait for the previous operation to finish.","country":"Country:","server":"Server:","server-note":"Server note:","original-server-note":"Original server note:","local-pk":"Local visor public key:","remote-pk":"Remote visor public key:","unavailable":"Unavailable"}},"server-options":{"tooltip":"Options","connect-without-password":"Connect without password","connect-without-password-confirmation":"The connection will be made without the password. Are you sure you want to continue?","connect-using-password":"Connect using a password","connect-using-another-password":"Connect using another password","edit-name":"Custom name","edit-label":"Custom note","make-favorite":"Make favorite","make-favorite-confirmation":"Are you sure you want to mark this server as favorite? It will be removed from the blocked list.","make-favorite-done":"Added to the favorites list.","remove-from-favorites":"Remove from favorites","remove-from-favorites-done":"Removed from the favorites list.","block":"Block server","block-done":"Added to the blocked list.","block-confirmation":"Are you sure you want to block this server? It will be removed from the favorites list.","block-selected-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed.","block-selected-favorite-confirmation":"Are you sure you want to block the currently selected server? All connections will be closed and it will be removed from the favorites list.","unblock":"Unblock server","unblock-done":"Removed from the blocked list.","remove-from-history":"Remove from history","remove-from-history-confirmation":"Are you sure you want to remove this server from the history?","remove-from-history-done":"Removed from history.","edit-value":{"name-title":"Custom Name","note-title":"Custom Note","name-label":"Custom name","note-label":"Custom note","apply-button":"Apply","changes-made-confirmation":"The change has been made."}},"server-conditions":{"selected-info":"This is the currently selected server.","blocked-info":"This server is in the blocked list.","favorite-info":"This server is in the favorites list.","history-info":"This server is in the server history.","has-password-info":"A password was set for connecting with this server."},"server-list":{"date-small-table-label":"Date","date-info":"Last time you used this server.","country-small-table-label":"Country","country-info":"Country where the server is located.","name-small-table-label":"Name","location-small-table-label":"Location","public-key-small-table-label":"Pk","public-key-info":"Server public key.","congestion-rating-small-table-label":"Congestion rating","congestion-rating-info":"Rating of the server related to how congested it tends to be.","congestion-small-table-label":"Congestion","congestion-info":"Current server congestion.","latency-rating-small-table-label":"Latency rating","latency-rating-info":"Rating of the server related to how much latency it tends to have.","latency-small-table-label":"Latency","latency-info":"Current server latency.","hops-small-table-label":"Hops","hops-info":"How many hops are needed for connecting with the server.","note-small-table-label":"Note","note-info":"Note about the server.","gold-rating-info":"Gold","silver-rating-info":"Silver","bronze-rating-info":"Bronze","notes-info":"Custom note: {{ custom }} - Original note: {{ original }}","empty-discovery":"Currently there are no VPN servers to show. Please try again later.","empty-history":"There is no history to show.","empty-favorites":"There are no favorite servers to show.","empty-blocked":"There are no blocked servers to show.","empty-with-filter":"No VPN server matches the selected filtering criteria.","add-manually-info":"Add server manually.","current-filters":"Current filters (press to remove)","none":"None","unknown":"Unknown","tabs":{"public":"Public","history":"History","favorites":"Favorites","blocked":"Blocked"},"add-server-dialog":{"title":"Enter manually","pk-label":"Server public key","password-label":"Server password (if any)","name-label":"Server name (optional)","note-label":"Personal note (optional)","pk-length-error":"The public key must be 66 characters long.","pk-chars-error":"The public key must only contain hexadecimal characters.","use-server-button":"Use server"},"password-dialog":{"title":"Enter Password","password-if-any-label":"Server password (if any)","password-label":"Server password","continue-button":"Continue"},"filter-dialog":{"country":"The country must be","name":"The name must contain","location":"The location must contain","public-key":"The public key must contain","congestion-rating":"The congestion rating must be","latency-rating":"The latency rating must be","rating-options":{"any":"Any","gold":"Gold","silver":"Silver","bronze":"Bronze"},"country-options":{"any":"Any"}}},"settings-page":{"setting-small-table-label":"Setting","value-small-table-label":"Value","killswitch":"Killswitch","killswitch-info":"When active, all network connections will be disabled if the app is running but the VPN protection is interrupted (for temporary errors or any other problem). This avoids data leaks.","get-ip":"Get IP info","get-ip-info":"When active, the application will use external services to obtain information about the current IP.","data-units":"Data units","data-units-info":"Allows to select the units that will be used to display the data transmission statistics.","minimum-hops":"Minimum hops","minimum-hops-info":"Allows to set the minimum number of hops the connections must pass through other Skywire visors before reaching the final destination.","dns":"Custom DNS server","dns-info":"Allows to use a custom DNS server, which could improve privacy and prevent sites from being blocked by the default DNS server of your ISP.","setting-none":"None","setting-on":"On","setting-off":"Off","working-warning":"The system is busy. Please wait for the previous operation to finish.","change-while-connected-confirmation":"The VPN protection will be interrupted while changing the setting. Do you want to continue?","data-units-modal":{"title":"Data Units","only-bits":"Bits for all stats","only-bytes":"Bytes for all stats","bits-speed-and-bytes-volume":"Bits for speed and bytes for volume (default)"}},"dns-config":{"title":"Custom DNS server","ip":"Custom DNS server IP address","save-config-button":"Save configuration","done":"Changes saved."}}}')}}]); \ No newline at end of file diff --git a/pkg/visor/static/assets/i18n/en.json b/pkg/visor/static/assets/i18n/en.json index bd20dd68d7..79aa6c8329 100644 --- a/pkg/visor/static/assets/i18n/en.json +++ b/pkg/visor/static/assets/i18n/en.json @@ -87,6 +87,23 @@ "node": { "title": "Visor details", "not-found": "Visor not found.", + "logs" : { + "title": "Runtime Logs", + "no-logs": "No runtime logs were found for this visor.", + "no-logs-for-filter": "No runtime logs matches the selected filter.", + "view-all": "View all logs in raw format >", + "view-rest": "View all {{ number }} elements in raw format >", + "selected-filter": "Showing:", + "filter-ignored": "The filter excluded {{ number }} entries", + "filter-title": "Filter", + "filter-all": "All logs", + "filter-debug": "Debug or more important", + "filter-info": "Info or more important", + "filter-warning": "Warning or more important", + "filter-error": "Error or more important", + "filter-faltal": "Faltal or more important", + "filter-panic": "Panic" + }, "statuses": { "online": "Online", "online-tooltip": "The visor is online.", @@ -108,6 +125,7 @@ "public-ip": "Public IP:", "ip": "IP:", "dmsg-server": "DMSG server:", + "no-dmsg-server": "Not connected", "ping": "Ping:", "node-version": "Visor version:", "build-type": "Build type:", diff --git a/pkg/visor/static/assets/i18n/es.json b/pkg/visor/static/assets/i18n/es.json index 22dd8e965a..27dd44541f 100644 --- a/pkg/visor/static/assets/i18n/es.json +++ b/pkg/visor/static/assets/i18n/es.json @@ -87,6 +87,23 @@ "node": { "title": "Detalles del visor", "not-found": "Visor no encontrado.", + "logs" : { + "title": "Registros de operación", + "no-logs": "No se encontraron registros de operación para este visor.", + "no-logs-for-filter": "No hay registros de operación que coincidan con el filtro seleccionado.", + "view-all": "Ver todos los registros en formato original >", + "view-rest": "Ver los {{ number }} elementos en formato original >", + "selected-filter": "Mostrando:", + "filter-ignored": "En filtro excluyó {{ number }} registros", + "filter-title": "Filtro", + "filter-all": "Todos los registros", + "filter-debug": "Debug o más importante", + "filter-info": "Info o más importante", + "filter-warning": "Warning o más importante", + "filter-error": "Error o más importante", + "filter-faltal": "Faltal o más importante", + "filter-panic": "Panic" + }, "statuses": { "online": "Online", "online-tooltip": "El visor se encuentra online.", @@ -108,6 +125,7 @@ "public-ip": "IP pública:", "ip": "IP:", "dmsg-server": "Servidor DMSG:", + "no-dmsg-server": "No connectado", "ping": "Ping:", "node-version": "Versión del visor:", "build-type": "Tipo de build:", diff --git a/pkg/visor/static/assets/i18n/es_base.json b/pkg/visor/static/assets/i18n/es_base.json index c22f858f3d..8c853eda94 100644 --- a/pkg/visor/static/assets/i18n/es_base.json +++ b/pkg/visor/static/assets/i18n/es_base.json @@ -87,6 +87,23 @@ "node": { "title": "Visor details", "not-found": "Visor not found.", + "logs" : { + "title": "Runtime Logs", + "no-logs": "No runtime logs were found for this visor.", + "no-logs-for-filter": "No runtime logs matches the selected filter.", + "view-all": "View all logs in raw format >", + "view-rest": "View all {{ number }} elements in raw format >", + "selected-filter": "Showing:", + "filter-ignored": "The filter excluded {{ number }} entries", + "filter-title": "Filter", + "filter-all": "All logs", + "filter-debug": "Debug or more important", + "filter-info": "Info or more important", + "filter-warning": "Warning or more important", + "filter-error": "Error or more important", + "filter-faltal": "Faltal or more important", + "filter-panic": "Panic" + }, "statuses": { "online": "Online", "online-tooltip": "The visor is online.", @@ -108,6 +125,7 @@ "public-ip": "Public IP:", "ip": "IP:", "dmsg-server": "DMSG server:", + "no-dmsg-server": "Not connected", "ping": "Ping:", "node-version": "Visor version:", "build-type": "Build type:", diff --git a/pkg/visor/static/index.html b/pkg/visor/static/index.html index f395162adf..fdf833939f 100644 --- a/pkg/visor/static/index.html +++ b/pkg/visor/static/index.html @@ -9,6 +9,6 @@
- + \ No newline at end of file diff --git a/pkg/visor/static/main.2875ec8f84204886.js b/pkg/visor/static/main.2875ec8f84204886.js deleted file mode 100644 index ffc9aba2d6..0000000000 --- a/pkg/visor/static/main.2875ec8f84204886.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[179],{9019:(ue,ge,N)=>{"use strict";function O(n){return"function"==typeof n}let _=!1;const u={Promise:void 0,set useDeprecatedSynchronousErrorHandling(n){if(n){const t=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+t.stack)}else _&&console.log("RxJS: Back to a better error behavior. Thank you. <3");_=n},get useDeprecatedSynchronousErrorHandling(){return _}};function f(n){setTimeout(()=>{throw n},0)}const h={closed:!0,next(n){},error(n){if(u.useDeprecatedSynchronousErrorHandling)throw n;f(n)},complete(){}},y=Array.isArray||(n=>n&&"number"==typeof n.length);function p(n){return null!==n&&"object"==typeof n}const x=(()=>{function n(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((e,i)=>`${i+1}) ${e.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t,this}return n.prototype=Object.create(Error.prototype),n})();class T{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:e,_ctorUnsubscribe:i,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,e instanceof T)e.remove(this);else if(null!==e)for(let a=0;at.concat(e instanceof x?e.errors:e),[])}T.EMPTY=((n=new T).closed=!0,n);const k="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class A extends T{constructor(t,e,i){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=h;break;case 1:if(!t){this.destination=h;break}if("object"==typeof t){t instanceof A?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new U(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new U(this,t,e,i)}}[k](){return this}static create(t,e,i){const o=new A(t,e,i);return o.syncErrorThrowable=!1,o}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class U extends A{constructor(t,e,i,o){super(),this._parentSubscriber=t;let s,a=this;O(e)?s=e:e&&(s=e.next,i=e.error,o=e.complete,e!==h&&(a=Object.create(e),O(a.unsubscribe)&&this.add(a.unsubscribe.bind(a)),a.unsubscribe=this.unsubscribe.bind(this))),this._context=a,this._next=s,this._error=i,this._complete=o}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;u.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:i}=u;if(this._error)i&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)i?(e.syncErrorValue=t,e.syncErrorThrown=!0):f(t),this.unsubscribe();else{if(this.unsubscribe(),i)throw t;f(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);u.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(i){if(this.unsubscribe(),u.useDeprecatedSynchronousErrorHandling)throw i;f(i)}}__tryOrSetError(t,e,i){if(!u.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,i)}catch(o){return u.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=o,t.syncErrorThrown=!0,!0):(f(o),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const ie="function"==typeof Symbol&&Symbol.observable||"@@observable";function ve(n){return n}function Z(...n){return Q(n)}function Q(n){return 0===n.length?ve:1===n.length?n[0]:function(e){return n.reduce((i,o)=>o(i),e)}}let ce=(()=>{class n{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}subscribe(e,i,o){const{operator:s}=this,a=function K(n,t,e){if(n){if(n instanceof A)return n;if(n[k])return n[k]()}return n||t||e?new A(n,t,e):new A(h)}(e,i,o);if(a.add(s?s.call(a,this.source):this.source||u.useDeprecatedSynchronousErrorHandling&&!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a)),u.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a}_trySubscribe(e){try{return this._subscribe(e)}catch(i){u.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=i),function H(n){for(;n;){const{closed:t,destination:e,isStopped:i}=n;if(t||i)return!1;n=e&&e instanceof A?e:null}return!0}(e)?e.error(i):console.warn(i)}}forEach(e,i){return new(i=G(i))((o,s)=>{let a;a=this.subscribe(l=>{try{e(l)}catch(c){s(c),a&&a.unsubscribe()}},s,o)})}_subscribe(e){const{source:i}=this;return i&&i.subscribe(e)}[ie](){return this}pipe(...e){return 0===e.length?this:Q(e)(this)}toPromise(e){return new(e=G(e))((i,o)=>{let s;this.subscribe(a=>s=a,a=>o(a),()=>i(s))})}}return n.create=t=>new n(t),n})();function G(n){if(n||(n=u.Promise||Promise),!n)throw new Error("no Promise impl found");return n}const ee=(()=>{function n(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return n.prototype=Object.create(Error.prototype),n})();class ae extends T{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const i=e.indexOf(this.subscriber);-1!==i&&e.splice(i,1)}}class le extends A{constructor(t){super(t),this.destination=t}}let X=(()=>{class n extends ce{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[k](){return new le(this)}lift(e){const i=new Te(this,this);return i.operator=e,i}next(e){if(this.closed)throw new ee;if(!this.isStopped){const{observers:i}=this,o=i.length,s=i.slice();for(let a=0;anew Te(t,e),n})();class Te extends X{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):T.EMPTY}}function Se(n){return n&&"function"==typeof n.schedule}function Ce(n,t){return function(i){if("function"!=typeof n)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return i.lift(new He(n,t))}}class He{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new et(t,this.project,this.thisArg))}}class et extends A{constructor(t,e,i){super(t),this.project=e,this.count=0,this.thisArg=i||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(i){return void this.destination.error(i)}this.destination.next(e)}}const ot=n=>t=>{for(let e=0,i=n.length;en&&"number"==typeof n.length&&"function"!=typeof n;function Ti(n){return!!n&&"function"!=typeof n.subscribe&&"function"==typeof n.then}const Li=n=>{if(n&&"function"==typeof n[ie])return(n=>t=>{const e=n[ie]();if("function"!=typeof e.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return e.subscribe(t)})(n);if(Ue(n))return ot(n);if(Ti(n))return(n=>t=>(n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,f),t))(n);if(n&&"function"==typeof n[en])return(n=>t=>{const e=n[en]();for(;;){let i;try{i=e.next()}catch(o){return t.error(o),t}if(i.done){t.complete();break}if(t.next(i.value),t.closed)break}return"function"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t})(n);{const e=`You provided ${p(n)?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(e)}};function W(n,t){return new ce(e=>{const i=new T;let o=0;return i.add(t.schedule(function(){o!==n.length?(e.next(n[o++]),e.closed||i.add(this.schedule())):e.complete()})),i})}function de(n,t){return t?function he(n,t){if(null!=n){if(function ne(n){return n&&"function"==typeof n[ie]}(n))return function rr(n,t){return new ce(e=>{const i=new T;return i.add(t.schedule(()=>{const o=n[ie]();i.add(o.subscribe({next(s){i.add(t.schedule(()=>e.next(s)))},error(s){i.add(t.schedule(()=>e.error(s)))},complete(){i.add(t.schedule(()=>e.complete()))}}))})),i})}(n,t);if(Ti(n))return function Ze(n,t){return new ce(e=>{const i=new T;return i.add(t.schedule(()=>n.then(o=>{i.add(t.schedule(()=>{e.next(o),i.add(t.schedule(()=>e.complete()))}))},o=>{i.add(t.schedule(()=>e.error(o)))}))),i})}(n,t);if(Ue(n))return W(n,t);if(function pe(n){return n&&"function"==typeof n[en]}(n)||"string"==typeof n)return function re(n,t){if(!n)throw new Error("Iterable cannot be null");return new ce(e=>{const i=new T;let o;return i.add(()=>{o&&"function"==typeof o.return&&o.return()}),i.add(t.schedule(()=>{o=n[en](),i.add(t.schedule(function(){if(e.closed)return;let s,a;try{const l=o.next();s=l.value,a=l.done}catch(l){return void e.error(l)}a?e.complete():(e.next(s),this.schedule())}))})),i})}(n,t)}throw new TypeError((null!==n&&typeof n||n)+" is not observable")}(n,t):n instanceof ce?n:new ce(Li(n))}class be extends A{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class Me extends A{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function Ee(n,t){if(t.closed)return;if(n instanceof ce)return n.subscribe(t);let e;try{e=Li(n)(t)}catch(i){t.error(i)}return e}function Ne(n,t,e=Number.POSITIVE_INFINITY){return"function"==typeof t?i=>i.pipe(Ne((o,s)=>de(n(o,s)).pipe(Ce((a,l)=>t(o,a,s,l))),e)):("number"==typeof t&&(e=t),i=>i.lift(new ut(n,e)))}class ut{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new _t(t,this.project,this.concurrent))}}class _t extends Me{constructor(t,e,i=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function on(n=Number.POSITIVE_INFINITY){return Ne(ve,n)}function Ln(n,t){return t?W(n,t):new ce(ot(n))}function vt(...n){let t=Number.POSITIVE_INFINITY,e=null,i=n[n.length-1];return Se(i)?(e=n.pop(),n.length>1&&"number"==typeof n[n.length-1]&&(t=n.pop())):"number"==typeof i&&(t=n.pop()),null===e&&1===n.length&&n[0]instanceof ce?n[0]:on(t)(Ln(n,e))}function jt(){return function(t){return t.lift(new jn(t))}}class jn{constructor(t){this.connectable=t}call(t,e){const{connectable:i}=this;i._refCount++;const o=new ri(t,i),s=e.subscribe(o);return o.closed||(o.connection=i.connect()),s}}class ri extends A{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:i}=this,o=t._connection;this.connection=null,o&&(!i||o===i)&&o.unsubscribe()}}class Gr extends ce{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new T,t.add(this.source.subscribe(new Ei(this.getSubject(),this))),t.closed&&(this._connection=null,t=T.EMPTY)),t}refCount(){return jt()(this)}}const ko=(()=>{const n=Gr.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:n._subscribe},_isComplete:{value:n._isComplete,writable:!0},getSubject:{value:n.getSubject},connect:{value:n.connect},refCount:{value:n.refCount}}})();class Ei extends le{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}class En{constructor(t,e){this.subjectFactory=t,this.selector=e}call(t,e){const{selector:i}=this,o=this.subjectFactory(),s=i(o).subscribe(t);return s.add(e.subscribe(o)),s}}function Fu(){return new X}function wa(){return n=>jt()(function oi(n,t){return function(i){let o;if(o="function"==typeof n?n:function(){return n},"function"==typeof t)return i.lift(new En(o,t));const s=Object.create(i,ko);return s.source=i,s.subjectFactory=o,s}}(Fu)(n))}function In(n){for(let t in n)if(n[t]===In)return t;throw Error("Could not find renamed property on target object.")}function xa(n,t){for(const e in t)t.hasOwnProperty(e)&&!n.hasOwnProperty(e)&&(n[e]=t[e])}function Pn(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(Pn).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const t=n.toString();if(null==t)return""+t;const e=t.indexOf("\n");return-1===e?t:t.substring(0,e)}function Ca(n,t){return null==n||""===n?null===t?"":t:null==t||""===t?n:n+" "+t}const Bg=In({__forward_ref__:In});function sn(n){return n.__forward_ref__=sn,n.toString=function(){return Pn(this())},n}function yt(n){return gt(n)?n():n}function gt(n){return"function"==typeof n&&n.hasOwnProperty(Bg)&&n.__forward_ref__===sn}function Ru(n){return n&&!!n.\u0275providers}const So="https://g.co/ng/security#xss";class Fe extends Error{constructor(t,e){super(function kn(n,t){return`NG0${Math.abs(n)}${t?": "+t.trim():""}`}(t,e)),this.code=t}}function kt(n){return"string"==typeof n?n:null==n?"":String(n)}function si(n,t){throw new Fe(-201,!1)}function qr(n,t){null==n&&function gn(n,t,e,i){throw new Error(`ASSERTION ERROR: ${n}`+(null==i?"":` [Expected=> ${e} ${i} ${t} <=Actual]`))}(t,n,null,"!=")}function Ye(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function At(n){return{providers:n.providers||[],imports:n.imports||[]}}function Pc(n){return gp(n,Oc)||gp(n,Mp)}function gp(n,t){return n.hasOwnProperty(t)?n[t]:null}function yp(n){return n&&(n.hasOwnProperty(Hu)||n.hasOwnProperty(zg))?n[Hu]:null}const Oc=In({\u0275prov:In}),Hu=In({\u0275inj:In}),Mp=In({ngInjectableDef:In}),zg=In({ngInjectorDef:In});var Mt=(()=>((Mt=Mt||{})[Mt.Default=0]="Default",Mt[Mt.Host=1]="Host",Mt[Mt.Self=2]="Self",Mt[Mt.SkipSelf=4]="SkipSelf",Mt[Mt.Optional=8]="Optional",Mt))();let Vu;function dr(n){const t=Vu;return Vu=n,t}function ju(n,t,e){const i=Pc(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&Mt.Optional?null:void 0!==t?t:void si(Pn(n))}const dn=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),gl={},zu="__NG_DI_FLAG__",Fc="ngTempTokenPath",Wg=/\n/gm,wp="__source";let Sa;function Da(n){const t=Sa;return Sa=n,t}function Gg(n,t=Mt.Default){if(void 0===Sa)throw new Fe(-203,!1);return null===Sa?ju(n,void 0,t):Sa.get(n,t&Mt.Optional?null:void 0,t)}function we(n,t=Mt.Default){return(function _l(){return Vu}()||Gg)(yt(n),t)}function Lt(n,t=Mt.Default){return we(n,Rc(t))}function Rc(n){return typeof n>"u"||"number"==typeof n?n:0|(n.optional&&8)|(n.host&&1)|(n.self&&2)|(n.skipSelf&&4)}function Uu(n){const t=[];for(let e=0;e((so=so||{})[so.OnPush=0]="OnPush",so[so.Default=1]="Default",so))(),Rr=(()=>(function(n){n[n.Emulated=0]="Emulated",n[n.None=2]="None",n[n.ShadowDom=3]="ShadowDom"}(Rr||(Rr={})),Rr))();const jo={},un=[],vl=In({\u0275cmp:In}),Wu=In({\u0275dir:In}),$u=In({\u0275pipe:In}),kp=In({\u0275mod:In}),zo=In({\u0275fac:In}),Ta=In({__NG_ELEMENT_ID__:In});let Ii=0;function qe(n){return us(()=>{const e=!0===n.standalone,i={},o={type:n.type,providersResolver:null,decls:n.decls,vars:n.vars,factory:null,template:n.template||null,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:i,inputs:null,outputs:null,exportAs:n.exportAs||null,onPush:n.changeDetection===so.OnPush,directiveDefs:null,pipeDefs:null,standalone:e,dependencies:e&&n.dependencies||null,getStandaloneInjector:null,selectors:n.selectors||un,viewQuery:n.viewQuery||null,features:n.features||null,data:n.data||{},encapsulation:n.encapsulation||Rr.Emulated,id:"c"+Ii++,styles:n.styles||un,_:null,setInput:null,schemas:n.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},s=n.dependencies,a=n.features;return o.inputs=Nc(n.inputs,i),o.outputs=Nc(n.outputs),a&&a.forEach(l=>l(o)),o.directiveDefs=s?()=>("function"==typeof s?s():s).map(Gu).filter(Sp):null,o.pipeDefs=s?()=>("function"==typeof s?s():s).map(Mi).filter(Sp):null,o})}function Bs(n,t,e){const i=n.\u0275cmp;i.directiveDefs=()=>("function"==typeof t?t():t).map(Gu),i.pipeDefs=()=>("function"==typeof e?e():e).map(Mi)}function Gu(n){return bn(n)||Hi(n)}function Sp(n){return null!==n}function Et(n){return us(()=>({type:n.type,bootstrap:n.bootstrap||un,declarations:n.declarations||un,imports:n.imports||un,exports:n.exports||un,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null}))}function Nc(n,t){if(null==n)return jo;const e={};for(const i in n)if(n.hasOwnProperty(i)){let o=n[i],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),e[o]=i,t&&(t[o]=s)}return e}const Ke=qe;function Qn(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,standalone:!0===n.standalone,onDestroy:n.type.prototype.ngOnDestroy||null}}function bn(n){return n[vl]||null}function Hi(n){return n[Wu]||null}function Mi(n){return n[$u]||null}function ur(n,t){const e=n[kp]||null;if(!e&&!0===t)throw new Error(`Type ${Pn(n)} does not have '\u0275mod' property.`);return e}function Nr(n){return Array.isArray(n)&&"object"==typeof n[1]}function fr(n){return Array.isArray(n)&&!0===n[1]}function Ku(n){return 0!=(4&n.flags)}function wl(n){return n.componentOffset>-1}function zc(n){return 1==(1&n.flags)}function Sr(n){return null!==n.template}function Zu(n){return 0!=(256&n[2])}function Yr(n,t){return n.hasOwnProperty(zo)?n[zo]:null}class Fp{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function Gi(){return Qu}function Qu(n){return n.type.prototype.ngOnChanges&&(n.setInput=Qg),Rp}function Rp(){const n=Yp(this),t=n?.current;if(t){const e=n.previous;if(e===jo)n.previous=t;else for(let i in t)e[i]=t[i];n.current=null,this.ngOnChanges(t)}}function Qg(n,t,e,i){const o=this.declaredInputs[e],s=Yp(n)||function Jg(n,t){return n[Np]=t}(n,{previous:jo,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[o];a[o]=new Fp(c&&c.currentValue,t,l===jo),n[i]=t}Gi.ngInherit=!0;const Np="__ngSimpleChanges__";function Yp(n){return n[Np]||null}function qi(n){for(;Array.isArray(n);)n=n[0];return n}function Uc(n,t){return qi(t[n])}function pr(n,t){return qi(t[n.index])}function Vp(n,t){return n.data[t]}function Pa(n,t){return n[t]}function Br(n,t){const e=t[n];return Nr(e)?e:e[0]}function Wc(n){return 64==(64&n[2])}function hs(n,t){return null==t?null:n[t]}function eh(n){n[18]=0}function $c(n,t){n[5]+=t;let e=n,i=n[3];for(;null!==i&&(1===t&&1===e[5]||-1===t&&0===e[5]);)i[5]+=t,e=i,i=i[3]}const It={lFrame:qp(null),bindingsEnabled:!0};function zp(){return It.bindingsEnabled}function ze(){return It.lFrame.lView}function nn(){return It.lFrame.tView}function Pe(n){return It.lFrame.contextLView=n,n[8]}function Oe(n){return It.lFrame.contextLView=null,n}function wi(){let n=Up();for(;null!==n&&64===n.type;)n=n.parent;return n}function Up(){return It.lFrame.currentTNode}function Eo(n,t){const e=It.lFrame;e.currentTNode=n,e.isParent=t}function th(){return It.lFrame.isParent}function Gc(){It.lFrame.isParent=!1}function mr(){const n=It.lFrame;let t=n.bindingRootIndex;return-1===t&&(t=n.bindingRootIndex=n.tView.bindingStartIndex),t}function Hr(){return It.lFrame.bindingIndex++}function Go(n){const t=It.lFrame,e=t.bindingIndex;return t.bindingIndex=t.bindingIndex+n,e}function hb(n,t){const e=It.lFrame;e.bindingIndex=e.bindingRootIndex=n,ih(t)}function ih(n){It.lFrame.currentDirectiveIndex=n}function rh(n){const t=It.lFrame.currentDirectiveIndex;return-1===t?null:n[t]}function oh(){return It.lFrame.currentQueryIndex}function Sn(n){It.lFrame.currentQueryIndex=n}function qc(n){const t=n[1];return 2===t.type?t.declTNode:1===t.type?n[6]:null}function sh(n,t,e){if(e&Mt.SkipSelf){let o=t,s=n;for(;!(o=o.parent,null!==o||e&Mt.Host||(o=qc(s),null===o||(s=s[15],10&o.type))););if(null===o)return!1;t=o,n=s}const i=It.lFrame=Gp();return i.currentTNode=t,i.lView=n,!0}function Cl(n){const t=Gp(),e=n[1];It.lFrame=t,t.currentTNode=e.firstChild,t.lView=n,t.tView=e,t.contextLView=n,t.bindingIndex=e.bindingStartIndex,t.inI18n=!1}function Gp(){const n=It.lFrame,t=null===n?null:n.child;return null===t?qp(n):t}function qp(n){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:n,child:null,inI18n:!1};return null!==n&&(n.child=t),t}function Kp(){const n=It.lFrame;return It.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const Zp=Kp;function ah(){const n=Kp();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function ar(){return It.lFrame.selectedIndex}function Us(n){It.lFrame.selectedIndex=n}function Jn(){const n=It.lFrame;return Vp(n.tView,n.selectedIndex)}function fs(){It.lFrame.currentNamespace="svg"}function kl(){!function lh(){It.lFrame.currentNamespace=null}()}function ao(n,t){for(let e=t.directiveStart,i=t.directiveEnd;e=i)break}else t[c]<0&&(n[18]+=65536),(l>11>16&&(3&n[2])===t){n[2]+=2048;try{s.call(l)}finally{}}}else try{s.call(l)}finally{}}class Sl{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function uh(n,t,e){let i=0;for(;it){a=s-1;break}}}for(;s>16}(n),i=t;for(;e>0;)i=i[15],e--;return i}let hh=!0;function Jc(n){const t=hh;return hh=n,t}let an=0;const m={};function V(n,t){const e=se(n,t);if(-1!==e)return e;const i=t[1];i.firstCreatePass&&(n.injectorIndex=t.length,$(i.data,n),$(t,null),$(i.blueprint,null));const o=Le(n,t),s=n.injectorIndex;if(lo(o)){const a=Xc(o),l=Qc(o,t),c=l[1].data;for(let M=0;M<8;M++)t[s+M]=l[a+M]|c[a+M]}return t[s+8]=o,s}function $(n,t){n.push(0,0,0,0,0,0,0,0,t)}function se(n,t){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===t[n.injectorIndex+8]?-1:n.injectorIndex}function Le(n,t){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let e=0,i=null,o=t;for(;null!==o;){if(i=PM(o),null===i)return-1;if(e++,o=o[15],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function je(n,t,e){!function E(n,t,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(Ta)&&(i=e[Ta]),null==i&&(i=e[Ta]=an++);const o=255&i;t.data[n+(o>>5)]|=1<=0?255&t:gP:t}(e);if("function"==typeof s){if(!sh(t,n,i))return i&Mt.Host?rn(o,0,i):pi(t,e,i,o);try{const a=s(i);if(null!=a||i&Mt.Optional)return a;si()}finally{Zp()}}else if("number"==typeof s){let a=null,l=se(n,t),c=-1,M=i&Mt.Host?t[16][6]:null;for((-1===l||i&Mt.SkipSelf)&&(c=-1===l?Le(n,t):t[l+8],-1!==c&&IM(i,!1)?(a=t[1],l=Xc(c),t=Qc(c,t)):l=-1);-1!==l;){const P=t[1];if(td(s,l,P.data)){const Y=Ll(l,t,e,a,i,M);if(Y!==m)return Y}c=t[l+8],-1!==c&&IM(i,t[1].data[l+8]===M)&&td(s,l,t)?(a=P,l=Xc(c),t=Qc(c,t)):l=-1}}return o}function Ll(n,t,e,i,o,s){const a=t[1],l=a.data[n+8],P=ed(l,a,e,null==i?wl(l)&&hh:i!=a&&0!=(3&l.type),o&Mt.Host&&s===l);return null!==P?ps(t,a,P,l):m}function ed(n,t,e,i,o){const s=n.providerIndexes,a=t.data,l=1048575&s,c=n.directiveStart,P=s>>20,q=o?l+P:n.directiveEnd;for(let te=i?l:l+P;te=c&&fe.type===e)return te}if(o){const te=a[c];if(te&&Sr(te)&&te.type===e)return c}return null}function ps(n,t,e,i){let o=n[e];const s=t.data;if(function bb(n){return n instanceof Sl}(o)){const a=o;a.resolving&&function oo(n,t){const e=t?`. Dependency path: ${t.join(" > ")} > ${n}`:"";throw new Fe(-200,`Circular dependency in DI detected for ${n}${e}`)}(function _n(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():kt(n)}(s[e]));const l=Jc(a.canSeeViewProviders);a.resolving=!0;const c=a.injectImpl?dr(a.injectImpl):null;sh(n,i,Mt.Default);try{o=n[e]=a.factory(void 0,s,n,i),t.firstCreatePass&&e>=i.directiveStart&&function _b(n,t,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:s}=t.type.prototype;if(i){const a=Qu(t);(e.preOrderHooks||(e.preOrderHooks=[])).push(n,a),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,a)}o&&(e.preOrderHooks||(e.preOrderHooks=[])).push(0-n,o),s&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n,s),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,s))}(e,s[e],t)}finally{null!==c&&dr(c),Jc(l),a.resolving=!1,Zp()}}return o}function td(n,t,e){return!!(e[t+(n>>5)]&1<{const t=n.prototype.constructor,e=t[zo]||xb(t),i=Object.prototype;let o=Object.getPrototypeOf(n.prototype).constructor;for(;o&&o!==i;){const s=o[zo]||xb(o);if(s&&s!==e)return s;o=Object.getPrototypeOf(o)}return s=>new s})}function xb(n){return gt(n)?()=>{const t=xb(yt(n));return t&&t()}:Yr(n)}function PM(n){const t=n[1],e=t.type;return 2===e?t.declTNode:1===e?n[6]:null}function Ra(n){return function Yt(n,t){if("class"===t)return n.classes;if("style"===t)return n.styles;const e=n.attrs;if(e){const i=e.length;let o=0;for(;o{const i=function Cb(n){return function(...e){if(n){const i=n(...e);for(const o in i)this[o]=i[o]}}}(t);function o(...s){if(this instanceof o)return i.apply(this,s),this;const a=new o(...s);return l.annotation=a,l;function l(c,M,P){const Y=c.hasOwnProperty(rd)?c[rd]:Object.defineProperty(c,rd,{value:[]})[rd];for(;Y.length<=P;)Y.push(null);return(Y[P]=Y[P]||[]).push(a),c}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=n,o.annotationCls=o,o})}class Be{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=Ye({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function El(n,t){n.forEach(e=>Array.isArray(e)?El(e,t):t(e))}function AM(n,t,e){t>=n.length?n.push(e):n.splice(t,0,e)}function tm(n,t){return t>=n.length-1?n.pop():n.splice(t,1)[0]}function mh(n,t){const e=[];for(let i=0;i=0?n[1|i]=e:(i=~i,function wP(n,t,e,i){let o=n.length;if(o==t)n.push(e,i);else if(1===o)n.push(i,n[0]),n[0]=e;else{for(o--,n.push(n[o-1],n[o]);o>t;)n[o]=n[o-2],o--;n[t]=e,n[t+1]=i}}(n,i,t,e)),i}function Sb(n,t){const e=ad(n,t);if(e>=0)return n[1|e]}function ad(n,t){return function FM(n,t,e){let i=0,o=n.length>>e;for(;o!==i;){const s=i+(o-i>>1),a=n[s<t?o=s:i=s+1}return~(o<({token:n})),-1),$s=bl(sd("Optional"),8),ld=bl(sd("SkipSelf"),4);var Zr=(()=>((Zr=Zr||{})[Zr.Important=1]="Important",Zr[Zr.DashCase=2]="DashCase",Zr))();const Ib=new Map;let UP=0;const Ob="__ngContext__";function Dr(n,t){Nr(t)?(n[Ob]=t[20],function $P(n){Ib.set(n[20],n)}(t)):n[Ob]=t}function Fb(n,t){return undefined(n,t)}function vh(n){const t=n[3];return fr(t)?t[3]:t}function Rb(n){return tw(n[13])}function Nb(n){return tw(n[4])}function tw(n){for(;null!==n&&!fr(n);)n=n[4];return n}function dd(n,t,e,i,o){if(null!=i){let s,a=!1;fr(i)?s=i:Nr(i)&&(a=!0,i=i[0]);const l=qi(i);0===n&&null!==e?null==o?aw(t,e,l):Il(t,e,l,o||null,!0):1===n&&null!==e?Il(t,e,l,o||null,!0):2===n?function Ub(n,t,e){const i=sm(n,t);i&&function hO(n,t,e,i){n.removeChild(t,e,i)}(n,i,t,e)}(t,l,a):3===n&&t.destroyNode(l),null!=s&&function mO(n,t,e,i,o){const s=e[7];s!==qi(e)&&dd(t,n,i,s,o);for(let l=10;l0&&(n[e-1][4]=i[4]);const s=tm(n,10+t);!function rO(n,t){yh(n,t,t[11],2,null,null),t[0]=null,t[6]=null}(i[1],i);const a=s[19];null!==a&&a.detachView(s[1]),i[3]=null,i[4]=null,i[2]&=-65}return i}function rw(n,t){if(!(128&t[2])){const e=t[11];e.destroyNode&&yh(n,t,e,3,null,null),function aO(n){let t=n[13];if(!t)return Vb(n[1],n);for(;t;){let e=null;if(Nr(t))e=t[13];else{const i=t[10];i&&(e=i)}if(!e){for(;t&&!t[4]&&t!==n;)Nr(t)&&Vb(t[1],t),t=t[3];null===t&&(t=n),Nr(t)&&Vb(t[1],t),e=t&&t[4]}t=e}}(t)}}function Vb(n,t){if(!(128&t[2])){t[2]&=-65,t[2]|=128,function uO(n,t){let e;if(null!=n&&null!=(e=n.destroyHooks))for(let i=0;i=0?i[o=a]():i[o=-a].unsubscribe(),s+=2}else{const a=i[o=e[s+1]];e[s].call(a)}if(null!==i){for(let s=o+1;s-1){const{encapsulation:s}=n.data[i.directiveStart+o];if(s===Rr.None||s===Rr.Emulated)return null}return pr(i,e)}}(n,t.parent,e)}function Il(n,t,e,i,o){n.insertBefore(t,e,i,o)}function aw(n,t,e){n.appendChild(t,e)}function lw(n,t,e,i,o){null!==i?Il(n,t,e,i,o):aw(n,t,e)}function sm(n,t){return n.parentNode(t)}function cw(n,t,e){return uw(n,t,e)}let cm,Gb,dm,uw=function dw(n,t,e){return 40&n.type?pr(n,e):null};function am(n,t,e,i){const o=ow(n,i,t),s=t[11],l=cw(i.parent||t[6],i,t);if(null!=o)if(Array.isArray(e))for(let c=0;cn,createScript:n=>n,createScriptURL:n=>n})}catch{}return cm}()?.createHTML(n)||n}function yw(n){return function qb(){if(void 0===dm&&(dm=null,dn.trustedTypes))try{dm=dn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return dm}()?.createScriptURL(n)||n}class Ol{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${So})`}}class wO extends Ol{getTypeName(){return"HTML"}}class xO extends Ol{getTypeName(){return"Style"}}class CO extends Ol{getTypeName(){return"Script"}}class kO extends Ol{getTypeName(){return"URL"}}class SO extends Ol{getTypeName(){return"ResourceURL"}}function uo(n){return n instanceof Ol?n.changingThisBreaksApplicationSecurity:n}function ms(n,t){const e=function DO(n){return n instanceof Ol&&n.getTypeName()||null}(n);if(null!=e&&e!==t){if("ResourceURL"===e&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${e} (see ${So})`)}return e===t}class OO{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const e=(new window.DOMParser).parseFromString(Pl(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch{return null}}}class AO{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const e=this.inertDocument.createElement("html");this.inertDocument.appendChild(e);const i=this.inertDocument.createElement("body");e.appendChild(i)}}getInertBodyElement(t){const e=this.inertDocument.createElement("template");if("content"in e)return e.innerHTML=Pl(t),e;const i=this.inertDocument.createElement("body");return i.innerHTML=Pl(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(i),i}stripCustomNsAttrs(t){const e=t.attributes;for(let o=e.length-1;0"),!0}endElement(t){const e=t.nodeName.toLowerCase();Kb.hasOwnProperty(e)&&!ww.hasOwnProperty(e)&&(this.buf.push(""))}chars(t){this.buf.push(Sw(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return e}}const BO=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,HO=/([^\#-~ |!])/g;function Sw(n){return n.replace(/&/g,"&").replace(BO,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(HO,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let hm;function Dw(n,t){let e=null;try{hm=hm||function Mw(n){const t=new AO(n);return function FO(){try{return!!(new window.DOMParser).parseFromString(Pl(""),"text/html")}catch{return!1}}()?new OO(t):t}(n);let i=t?String(t):"";e=hm.getInertBodyElement(i);let o=5,s=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=s,s=e.innerHTML,e=hm.getInertBodyElement(i)}while(i!==s);return Pl((new YO).sanitizeChildren(Xb(e)||e))}finally{if(e){const i=Xb(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function Xb(n){return"content"in n&&function VO(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var wn=(()=>((wn=wn||{})[wn.NONE=0]="NONE",wn[wn.HTML=1]="HTML",wn[wn.STYLE=2]="STYLE",wn[wn.SCRIPT=3]="SCRIPT",wn[wn.URL=4]="URL",wn[wn.RESOURCE_URL=5]="RESOURCE_URL",wn))();function _s(n){const t=wh();return t?t.sanitize(wn.URL,n)||"":ms(n,"URL")?uo(n):um(kt(n))}function Tw(n){const t=wh();if(t)return yw(t.sanitize(wn.RESOURCE_URL,n)||"");if(ms(n,"ResourceURL"))return yw(uo(n));throw new Fe(904,!1)}function wh(){const n=ze();return n&&n[12]}const fm=new Be("ENVIRONMENT_INITIALIZER"),Ew=new Be("INJECTOR",-1),Iw=new Be("INJECTOR_DEF_TYPES");class Pw{get(t,e=gl){if(e===gl){const i=new Error(`NullInjectorError: No provider for ${Pn(t)}!`);throw i.name="NullInjectorError",i}return e}}function KO(...n){return{\u0275providers:Ow(0,n),\u0275fromNgModule:!0}}function Ow(n,...t){const e=[],i=new Set;let o;return El(t,s=>{const a=s;Qb(a,e,[],i)&&(o||(o=[]),o.push(a))}),void 0!==o&&Aw(o,e),e}function Aw(n,t){for(let e=0;e{t.push(s)})}}function Qb(n,t,e,i){if(!(n=yt(n)))return!1;let o=null,s=yp(n);const a=!s&&bn(n);if(s||a){if(a&&!a.standalone)return!1;o=n}else{const c=n.ngModule;if(s=yp(c),!s)return!1;o=c}const l=i.has(o);if(a){if(l)return!1;if(i.add(o),a.dependencies){const c="function"==typeof a.dependencies?a.dependencies():a.dependencies;for(const M of c)Qb(M,t,e,i)}}else{if(!s)return!1;{if(null!=s.imports&&!l){let M;i.add(o);try{El(s.imports,P=>{Qb(P,t,e,i)&&(M||(M=[]),M.push(P))})}finally{}void 0!==M&&Aw(M,t)}if(!l){const M=Yr(o)||(()=>new o);t.push({provide:o,useFactory:M,deps:un},{provide:Iw,useValue:o,multi:!0},{provide:fm,useValue:()=>we(o),multi:!0})}const c=s.providers;null==c||l||Jb(c,P=>{t.push(P)})}}return o!==n&&void 0!==n.providers}function Jb(n,t){for(let e of n)Ru(e)&&(e=e.\u0275providers),Array.isArray(e)?Jb(e,t):t(e)}const ZO=In({provide:String,useValue:In});function ev(n){return null!==n&&"object"==typeof n&&ZO in n}function Al(n){return"function"==typeof n}const tv=new Be("Set Injector scope."),pm={},QO={};let nv;function mm(){return void 0===nv&&(nv=new Pw),nv}class gs{}class Nw extends gs{constructor(t,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,rv(t,a=>this.processProvider(a)),this.records.set(Ew,ud(void 0,this)),o.has("environment")&&this.records.set(gs,ud(void 0,this));const s=this.records.get(tv);null!=s&&"string"==typeof s.value&&this.scopes.add(s.value),this.injectorDefTypes=new Set(this.get(Iw.multi,un,Mt.Self))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const t of this._ngOnDestroyHooks)t.ngOnDestroy();for(const t of this._onDestroyHooks)t()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(t){this._onDestroyHooks.push(t)}runInContext(t){this.assertNotDestroyed();const e=Da(this),i=dr(void 0);try{return t()}finally{Da(e),dr(i)}}get(t,e=gl,i=Mt.Default){this.assertNotDestroyed(),i=Rc(i);const o=Da(this),s=dr(void 0);try{if(!(i&Mt.SkipSelf)){let l=this.records.get(t);if(void 0===l){const c=function iA(n){return"function"==typeof n||"object"==typeof n&&n instanceof Be}(t)&&Pc(t);l=c&&this.injectableDefInScope(c)?ud(iv(t),pm):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(i&Mt.Self?mm():this.parent).get(t,e=i&Mt.Optional&&e===gl?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[Fc]=a[Fc]||[]).unshift(Pn(t)),o)throw a;return function Kg(n,t,e,i){const o=n[Fc];throw t[wp]&&o.unshift(t[wp]),n.message=function Zg(n,t,e,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.slice(2):n;let o=Pn(t);if(Array.isArray(t))o=t.map(Pn).join(" -> ");else if("object"==typeof t){let s=[];for(let a in t)if(t.hasOwnProperty(a)){let l=t[a];s.push(a+":"+("string"==typeof l?JSON.stringify(l):Pn(l)))}o=`{${s.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${n.replace(Wg,"\n ")}`}("\n"+n.message,o,e,i),n.ngTokenPath=o,n[Fc]=null,n}(a,t,"R3InjectorError",this.source)}throw a}finally{dr(s),Da(o)}}resolveInjectorInitializers(){const t=Da(this),e=dr(void 0);try{const i=this.get(fm.multi,un,Mt.Self);for(const o of i)o()}finally{Da(t),dr(e)}}toString(){const t=[],e=this.records;for(const i of e.keys())t.push(Pn(i));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Fe(205,!1)}processProvider(t){let e=Al(t=yt(t))?t:yt(t&&t.provide);const i=function eA(n){return ev(n)?ud(void 0,n.useValue):ud(Yw(n),pm)}(t);if(Al(t)||!0!==t.multi)this.records.get(e);else{let o=this.records.get(e);o||(o=ud(void 0,pm,!0),o.factory=()=>Uu(o.multi),this.records.set(e,o)),e=t,o.multi.push(t)}this.records.set(e,i)}hydrate(t,e){return e.value===pm&&(e.value=QO,e.value=e.factory()),"object"==typeof e.value&&e.value&&function nA(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}injectableDefInScope(t){if(!t.providedIn)return!1;const e=yt(t.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}}function iv(n){const t=Pc(n),e=null!==t?t.factory:Yr(n);if(null!==e)return e;if(n instanceof Be)throw new Fe(204,!1);if(n instanceof Function)return function JO(n){const t=n.length;if(t>0)throw mh(t,"?"),new Fe(204,!1);const e=function bp(n){const t=n&&(n[Oc]||n[Mp]);if(t){const e=function vp(n){if(n.hasOwnProperty("name"))return n.name;const t=(""+n).match(/^function\s*([^\s(]+)/);return null===t?"":t[1]}(n);return console.warn(`DEPRECATED: DI is instantiating a token "${e}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${e}" class.`),t}return null}(n);return null!==e?()=>e.factory(n):()=>new n}(n);throw new Fe(204,!1)}function Yw(n,t,e){let i;if(Al(n)){const o=yt(n);return Yr(o)||iv(o)}if(ev(n))i=()=>yt(n.useValue);else if(function Rw(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...Uu(n.deps||[]));else if(function Fw(n){return!(!n||!n.useExisting)}(n))i=()=>we(yt(n.useExisting));else{const o=yt(n&&(n.useClass||n.provide));if(!function tA(n){return!!n.deps}(n))return Yr(o)||iv(o);i=()=>new o(...Uu(n.deps))}return i}function ud(n,t,e=!1){return{factory:n,value:t,multi:e?[]:void 0}}function rv(n,t){for(const e of n)Array.isArray(e)?rv(e,t):e&&Ru(e)?rv(e.\u0275providers,t):t(e)}class rA{}class Bw{}class sA{resolveComponentFactory(t){throw function oA(n){const t=Error(`No component factory found for ${Pn(n)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=n,t}(t)}}let Na=(()=>{class n{}return n.NULL=new sA,n})();function aA(){return hd(wi(),ze())}function hd(n,t){return new bt(pr(n,t))}let bt=(()=>{class n{constructor(e){this.nativeElement=e}}return n.__NG_ELEMENT_ID__=aA,n})();function lA(n){return n instanceof bt?n.nativeElement:n}class xh{}let qs=(()=>{class n{}return n.__NG_ELEMENT_ID__=()=>function cA(){const n=ze(),e=Br(wi().index,n);return(Nr(e)?e:n)[11]}(),n})(),dA=(()=>{class n{}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:()=>null}),n})();class Fl{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const uA=new Fl("15.0.4"),ov={};function av(n){return n.ngOriginalError}class Ks{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t);this._console.error("ERROR",t),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(t){let e=t&&av(t);for(;e&&av(e);)e=av(e);return e||null}}function Vw(n){return n.ownerDocument.defaultView}function Zs(n){return n instanceof Function?n():n}function zw(n,t,e){let i=n.length;for(;;){const o=n.indexOf(t,e);if(-1===o)return o;if(0===o||n.charCodeAt(o-1)<=32){const s=t.length;if(o+s===i||n.charCodeAt(o+s)<=32)return o}e=o+1}}const Uw="ng-template";function MA(n,t,e){let i=0;for(;is?"":o[Y+1].toLowerCase();const te=8&i?q:null;if(te&&-1!==zw(te,M,0)||2&i&&M!==q){if(Zo(i))return!1;a=!0}}}}else{if(!a&&!Zo(i)&&!Zo(c))return!1;if(a&&Zo(c))continue;a=!1,i=c|1&i}}return Zo(i)||a}function Zo(n){return 0==(1&n)}function CA(n,t,e,i){if(null===t)return-1;let o=0;if(i||!e){let s=!1;for(;o-1)for(e++;e0?'="'+l+'"':"")+"]"}else 8&i?o+="."+a:4&i&&(o+=" "+a);else""!==o&&!Zo(a)&&(t+=Gw(s,o),o=""),i=a,s=s||!Zo(i);e++}return""!==o&&(t+=Gw(s,o)),t}const Ft={};function d(n){qw(nn(),ze(),ar()+n,!1)}function qw(n,t,e,i){if(!i)if(3==(3&t[2])){const s=n.preOrderCheckHooks;null!==s&&Kc(t,s,e)}else{const s=n.preOrderHooks;null!==s&&Zc(t,s,0,e)}Us(e)}function Qw(n,t=null,e=null,i){const o=Jw(n,t,e,i);return o.resolveInjectorInitializers(),o}function Jw(n,t=null,e=null,i,o=new Set){const s=[e||un,KO(n)];return i=i||("object"==typeof n?void 0:Pn(n)),new Nw(s,t||mm(),i||null,o)}let mi=(()=>{class n{static create(e,i){if(Array.isArray(e))return Qw({name:""},i,e,"");{const o=e.name??"";return Qw({name:o},e.parent,e.providers,o)}}}return n.THROW_IF_NOT_FOUND=gl,n.NULL=new Pw,n.\u0275prov=Ye({token:n,providedIn:"any",factory:()=>we(Ew)}),n.__NG_ELEMENT_ID__=-1,n})();function F(n,t=Mt.Default){const e=ze();return null===e?we(n,t):Vr(wi(),e,yt(n),t)}function Ya(){throw new Error("invalid")}function sx(n,t){const e=n.contentQueries;if(null!==e)for(let i=0;i22&&qw(n,t,22,!1),e(i,o)}finally{Us(s)}}function pv(n,t,e){if(Ku(t)){const o=t.directiveEnd;for(let s=t.directiveStart;s0;){const e=n[--t];if("number"==typeof e&&e<0)return e}return 0})(a)!=l&&a.push(l),a.push(e,i,s)}}(n,t,i,Ch(n,e,o.hostVars,Ft),o)}function bs(n,t,e,i,o,s){const a=pr(n,t);!function yv(n,t,e,i,o,s,a){if(null==s)n.removeAttribute(t,o,e);else{const l=null==a?kt(s):a(s,i||"",o);n.setAttribute(t,o,l,e)}}(t[11],a,s,n.value,e,i,o)}function mF(n,t,e,i,o,s){const a=s[t];if(null!==a){const l=i.setInput;for(let c=0;c0&&Mv(e)}}function Mv(n){for(let i=Rb(n);null!==i;i=Nb(i))for(let o=10;o0&&Mv(s)}const e=n[1].components;if(null!==e)for(let i=0;i0&&Mv(o)}}function yF(n,t){const e=Br(t,n),i=e[1];(function MF(n,t){for(let e=t.length;e-1&&(Hb(t,i),tm(e,i))}this._attachedToViewContainer=!1}rw(this._lView[1],this._lView)}onDestroy(t){cx(this._lView[1],this._lView,null,t)}markForCheck(){wv(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){ym(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Fe(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function sO(n,t){yh(n,t,t[11],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new Fe(902,!1);this._appRef=t}}class wF extends kh{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;ym(t[1],t,t[8],!1)}checkNoChanges(){}get context(){return null}}class yx extends Na{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=bn(t);return new Sh(e,this.ngModule)}}function Mx(n){const t=[];for(let e in n)n.hasOwnProperty(e)&&t.push({propName:n[e],templateName:e});return t}class CF{constructor(t,e){this.injector=t,this.parentInjector=e}get(t,e,i){i=Rc(i);const o=this.injector.get(t,ov,i);return o!==ov||e===ov?o:this.parentInjector.get(t,e,i)}}class Sh extends Bw{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=function EA(n){return n.map(LA).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return Mx(this.componentDef.inputs)}get outputs(){return Mx(this.componentDef.outputs)}create(t,e,i,o){let s=(o=o||this.ngModule)instanceof gs?o:o?.injector;s&&null!==this.componentDef.getStandaloneInjector&&(s=this.componentDef.getStandaloneInjector(s)||s);const a=s?new CF(t,s):t,l=a.get(xh,null);if(null===l)throw new Fe(407,!1);const c=a.get(dA,null),M=l.createRenderer(null,this.componentDef),P=this.componentDef.selectors[0][0]||"div",Y=i?function eF(n,t,e){return n.selectRootElement(t,e===Rr.ShadowDom)}(M,i,this.componentDef.encapsulation):Bb(M,P,function xF(n){const t=n.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(P)),q=this.componentDef.onPush?288:272,te=gv(0,null,null,1,0,null,null,null,null,null),fe=gm(null,te,null,q,null,null,l,M,c,a,null);let ke,Ie;Cl(fe);try{const Re=this.componentDef;let Xe,Ae=null;Re.findHostDirectiveDefs?(Xe=[],Ae=new Map,Re.findHostDirectiveDefs(Re,Xe,Ae),Xe.push(Re)):Xe=[Re];const ct=function SF(n,t){const e=n[1];return n[22]=t,md(e,22,2,"#host",null)}(fe,Y),pn=function DF(n,t,e,i,o,s,a,l){const c=o[1];!function TF(n,t,e,i){for(const o of n)t.mergedAttrs=Dl(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&(Mm(t,t.mergedAttrs,!0),null!==e&&_w(i,e,t))}(i,n,t,a);const M=s.createRenderer(t,e),P=gm(o,lx(e),null,e.onPush?32:16,o[n.index],n,s,M,l||null,null,null);return c.firstCreatePass&&vv(c,n,i.length-1),vm(o,P),o[n.index]=P}(ct,Y,Re,Xe,fe,l,M);Ie=Vp(te,22),Y&&function EF(n,t,e,i){if(i)uh(n,e,["ng-version",uA.full]);else{const{attrs:o,classes:s}=function IA(n){const t=[],e=[];let i=1,o=2;for(;i0&&mw(n,e,s.join(" "))}}(M,Re,Y,i),void 0!==e&&function IF(n,t,e){const i=n.projection=[];for(let o=0;o=0;i--){const o=n[i];o.hostVars=t+=o.hostVars,o.hostAttrs=Dl(o.hostAttrs,e=Dl(e,o.hostAttrs))}}(i)}function kv(n){return n===jo?{}:n===un?[]:n}function AF(n,t){const e=n.viewQuery;n.viewQuery=e?(i,o)=>{t(i,o),e(i,o)}:t}function FF(n,t){const e=n.contentQueries;n.contentQueries=e?(i,o,s)=>{t(i,o,s),e(i,o,s)}:t}function RF(n,t){const e=n.hostBindings;n.hostBindings=e?(i,o)=>{t(i,o),e(i,o)}:t}let xm=null;function Rl(){if(!xm){const n=dn.Symbol;if(n&&n.iterator)xm=n.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;ea(qi(ct[i.index])):i.index;let Ae=null;if(!a&&l&&(Ae=function ZF(n,t,e,i){const o=n.cleanup;if(null!=o)for(let s=0;sc?l[c]:null}"string"==typeof a&&(s+=2)}return null}(n,t,o,i.index)),null!==Ae)(Ae.__ngLastListenerFn__||Ae).__ngNextListenerFn__=s,Ae.__ngLastListenerFn__=s,q=!1;else{s=Yx(i,t,P,s,!1);const ct=e.listen(Ie,o,s);Y.push(s,ct),M&&M.push(o,Xe,Re,Re+1)}}else s=Yx(i,t,P,s,!1);const te=i.outputs;let fe;if(q&&null!==te&&(fe=te[o])){const ke=fe.length;if(ke)for(let Ie=0;Ie-1?Br(n.index,t):t);let c=Nx(t,0,i,a),M=s.__ngNextListenerFn__;for(;M;)c=Nx(t,0,M,a)&&c,M=M.__ngNextListenerFn__;return o&&!1===c&&(a.preventDefault(),a.returnValue=!1),c}}function z(n=1){return function qo(n){return(It.lFrame.contextLView=function fb(n,t){for(;n>0;)t=t[15],n--;return t}(n,It.lFrame.contextLView))[8]}(n)}function XF(n,t){let e=null;const i=function kA(n){const t=n.attrs;if(null!=t){const e=t.indexOf(5);if(0==(1&e))return t[e+1]}return null}(n);for(let o=0;o>17&32767}function Iv(n){return 2|n}function Yl(n){return(131068&n)>>2}function Pv(n,t){return-131069&n|t<<2}function Ov(n){return 1|n}function Gx(n,t,e,i,o){const s=n[e+1],a=null===t;let l=i?Ba(s):Yl(s),c=!1;for(;0!==l&&(!1===c||a);){const P=n[l+1];iR(n[l],t)&&(c=!0,n[l+1]=i?Ov(P):Iv(P)),l=i?Ba(P):Yl(P)}c&&(n[e+1]=i?Iv(s):Ov(s))}function iR(n,t){return null===n||null==t||(Array.isArray(n)?n[1]:n)===t||!(!Array.isArray(n)||"string"!=typeof t)&&ad(n,t)>=0}const Zi={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function qx(n){return n.substring(Zi.key,Zi.keyEnd)}function rR(n){return n.substring(Zi.value,Zi.valueEnd)}function Kx(n,t){const e=Zi.textEnd;return e===t?-1:(t=Zi.keyEnd=function aR(n,t,e){for(;t32;)t++;return t}(n,Zi.key=t,e),kd(n,t,e))}function Zx(n,t){const e=Zi.textEnd;let i=Zi.key=kd(n,t,e);return e===i?-1:(i=Zi.keyEnd=function lR(n,t,e){let i;for(;t=65&&(-33&i)<=90||i>=48&&i<=57);)t++;return t}(n,i,e),i=Qx(n,i,e),i=Zi.value=kd(n,i,e),i=Zi.valueEnd=function cR(n,t,e){let i=-1,o=-1,s=-1,a=t,l=a;for(;a32&&(l=a),s=o,o=i,i=-33&c}return l}(n,i,e),Qx(n,i,e))}function Xx(n){Zi.key=0,Zi.keyEnd=0,Zi.value=0,Zi.valueEnd=0,Zi.textEnd=n.length}function kd(n,t,e){for(;t=0;e=Zx(t,e))nC(n,qx(t),rR(t))}function fo(n){Jo(co,ys,n,!0)}function ys(n,t){for(let e=function oR(n){return Xx(n),Kx(n,kd(n,0,Zi.textEnd))}(t);e>=0;e=Kx(t,e))co(n,qx(t),!0)}function Qo(n,t,e,i){const o=ze(),s=nn(),a=Go(2);s.firstUpdatePass&&tC(s,n,a,i),t!==Ft&&Tr(o,a,t)&&iC(s,s.data[ar()],o,o[11],n,o[a+1]=function gR(n,t){return null==n||("string"==typeof t?n+=t:"object"==typeof n&&(n=Pn(uo(n)))),n}(t,e),i,a)}function Jo(n,t,e,i){const o=nn(),s=Go(2);o.firstUpdatePass&&tC(o,null,s,i);const a=ze();if(e!==Ft&&Tr(a,s,e)){const l=o.data[ar()];if(oC(l,i)&&!eC(o,s)){let c=i?l.classesWithoutHost:l.stylesWithoutHost;null!==c&&(e=Ca(c,e||"")),Dv(o,l,a,e,i)}else!function _R(n,t,e,i,o,s,a,l){o===Ft&&(o=un);let c=0,M=0,P=0=n.expandoStartIndex}function tC(n,t,e,i){const o=n.data;if(null===o[e+1]){const s=o[ar()],a=eC(n,e);oC(s,i)&&null===t&&!a&&(t=!1),t=function uR(n,t,e,i){const o=rh(n);let s=i?t.residualClasses:t.residualStyles;if(null===o)0===(i?t.classBindings:t.styleBindings)&&(e=Eh(e=Av(null,n,t,e,i),t.attrs,i),s=null);else{const a=t.directiveStylingLast;if(-1===a||n[a]!==o)if(e=Av(o,n,t,e,i),null===s){let c=function hR(n,t,e){const i=e?t.classBindings:t.styleBindings;if(0!==Yl(i))return n[Ba(i)]}(n,t,i);void 0!==c&&Array.isArray(c)&&(c=Av(null,n,t,c[1],i),c=Eh(c,t.attrs,i),function fR(n,t,e,i){n[Ba(e?t.classBindings:t.styleBindings)]=i}(n,t,i,c))}else s=function pR(n,t,e){let i;const o=t.directiveEnd;for(let s=1+t.directiveStylingLast;s0)&&(M=!0)}else P=e;if(o)if(0!==c){const q=Ba(n[l+1]);n[i+1]=km(q,l),0!==q&&(n[q+1]=Pv(n[q+1],i)),n[l+1]=function JF(n,t){return 131071&n|t<<17}(n[l+1],i)}else n[i+1]=km(l,0),0!==l&&(n[l+1]=Pv(n[l+1],i)),l=i;else n[i+1]=km(c,0),0===l?l=i:n[c+1]=Pv(n[c+1],i),c=i;M&&(n[i+1]=Iv(n[i+1])),Gx(n,P,i,!0),Gx(n,P,i,!1),function nR(n,t,e,i,o){const s=o?n.residualClasses:n.residualStyles;null!=s&&"string"==typeof t&&ad(s,t)>=0&&(e[i+1]=Ov(e[i+1]))}(t,P,n,i,s),a=km(l,c),s?t.classBindings=a:t.styleBindings=a}(o,s,t,e,a,i)}}function Av(n,t,e,i,o){let s=null;const a=e.directiveEnd;let l=e.directiveStylingLast;for(-1===l?l=e.directiveStart:l++;l0;){const c=n[o],M=Array.isArray(c),P=M?c[1]:c,Y=null===P;let q=e[o+1];q===Ft&&(q=Y?un:void 0);let te=Y?Sb(q,i):P===i?q:void 0;if(M&&!Sm(te)&&(te=Sb(c,i)),Sm(te)&&(l=te,a))return l;const fe=n[o+1];o=a?Ba(fe):Yl(fe)}if(null!==t){let c=s?t.residualClasses:t.residualStyles;null!=c&&(l=Sb(c,i))}return l}function Sm(n){return void 0!==n}function oC(n,t){return 0!=(n.flags&(t?8:16))}function I(n,t=""){const e=ze(),i=nn(),o=n+22,s=i.firstCreatePass?md(i,o,1,t,null):i.data[o],a=e[o]=function Yb(n,t){return n.createText(t)}(e[11],t);am(i,e,a,s),Eo(s,!1)}function oe(n){return me("",n,""),oe}function me(n,t,e){const i=ze(),o=gd(i,n,t,e);return o!==Ft&&Xs(i,ar(),o),me}function po(n,t,e,i,o){const s=ze(),a=bd(s,n,t,e,i,o);return a!==Ft&&Xs(s,ar(),a),po}function Qs(n,t,e){const i=ze();return Tr(i,Hr(),t)&&ho(nn(),Jn(),i,n,t,i[11],e,!0),Qs}function Fv(n,t,e){const i=ze();if(Tr(i,Hr(),t)){const s=nn(),a=Jn();ho(s,a,i,n,t,bx(rh(s.data),a,i),e,!0)}return Fv}const Bl=void 0;var RR=["en",[["a","p"],["AM","PM"],Bl],[["AM","PM"],Bl,Bl],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Bl,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Bl,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Bl,"{1} 'at' {0}",Bl],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function FR(n){const e=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let Sd={};function jr(n){const t=function NR(n){return n.toLowerCase().replace(/_/g,"-")}(n);let e=CC(t);if(e)return e;const i=t.split("-")[0];if(e=CC(i),e)return e;if("en"===i)return RR;throw new Fe(701,!1)}function CC(n){return n in Sd||(Sd[n]=dn.ng&&dn.ng.common&&dn.ng.common.locales&&dn.ng.common.locales[n]),Sd[n]}var at=(()=>((at=at||{})[at.LocaleId=0]="LocaleId",at[at.DayPeriodsFormat=1]="DayPeriodsFormat",at[at.DayPeriodsStandalone=2]="DayPeriodsStandalone",at[at.DaysFormat=3]="DaysFormat",at[at.DaysStandalone=4]="DaysStandalone",at[at.MonthsFormat=5]="MonthsFormat",at[at.MonthsStandalone=6]="MonthsStandalone",at[at.Eras=7]="Eras",at[at.FirstDayOfWeek=8]="FirstDayOfWeek",at[at.WeekendRange=9]="WeekendRange",at[at.DateFormat=10]="DateFormat",at[at.TimeFormat=11]="TimeFormat",at[at.DateTimeFormat=12]="DateTimeFormat",at[at.NumberSymbols=13]="NumberSymbols",at[at.NumberFormats=14]="NumberFormats",at[at.CurrencyCode=15]="CurrencyCode",at[at.CurrencySymbol=16]="CurrencySymbol",at[at.CurrencyName=17]="CurrencyName",at[at.Currencies=18]="Currencies",at[at.Directionality=19]="Directionality",at[at.PluralCase=20]="PluralCase",at[at.ExtraData=21]="ExtraData",at))();const Dd="en-US";let kC=Dd;function Yv(n,t,e,i,o){if(n=yt(n),Array.isArray(n))for(let s=0;s>20;if(Al(n)||!n.multi){const te=new Sl(c,o,F),fe=Hv(l,t,o?P:P+q,Y);-1===fe?(je(V(M,a),s,l),Bv(s,n,t.length),t.push(l),M.directiveStart++,M.directiveEnd++,o&&(M.providerIndexes+=1048576),e.push(te),a.push(te)):(e[fe]=te,a[fe]=te)}else{const te=Hv(l,t,P+q,Y),fe=Hv(l,t,P,P+q),ke=te>=0&&e[te],Ie=fe>=0&&e[fe];if(o&&!Ie||!o&&!ke){je(V(M,a),s,l);const Re=function F3(n,t,e,i,o){const s=new Sl(n,e,F);return s.multi=[],s.index=t,s.componentProviders=0,ZC(s,o,i&&!e),s}(o?A3:O3,e.length,o,i,c);!o&&Ie&&(e[fe].providerFactory=Re),Bv(s,n,t.length,0),t.push(l),M.directiveStart++,M.directiveEnd++,o&&(M.providerIndexes+=1048576),e.push(Re),a.push(Re)}else Bv(s,n,te>-1?te:fe,ZC(e[o?fe:te],c,!o&&i));!o&&i&&Ie&&e[fe].componentProviders++}}}function Bv(n,t,e,i){const o=Al(t),s=function XO(n){return!!n.useClass}(t);if(o||s){const c=(s?yt(t.useClass):t).prototype.ngOnDestroy;if(c){const M=n.destroyHooks||(n.destroyHooks=[]);if(!o&&t.multi){const P=M.indexOf(e);-1===P?M.push(e,[i,c]):M[P+1].push(i,c)}else M.push(e,c)}}}function ZC(n,t,e){return e&&n.componentProviders++,n.multi.push(t)-1}function Hv(n,t,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function P3(n,t,e){const i=nn();if(i.firstCreatePass){const o=Sr(n);Yv(e,i.data,i.blueprint,o,!0),Yv(t,i.data,i.blueprint,o,!1)}}(i,o?o(n):n,t)}}class Td{}class XC{}class QC extends Td{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new yx(this);const i=ur(t);this._bootstrapComponents=Zs(i.bootstrap),this._r3Injector=Jw(t,e,[{provide:Td,useValue:this},{provide:Na,useValue:this.componentFactoryResolver}],Pn(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class jv extends XC{constructor(t){super(),this.moduleType=t}create(t){return new QC(this.moduleType,t)}}class N3 extends Td{constructor(t,e,i){super(),this.componentFactoryResolver=new yx(this),this.instance=null;const o=new Nw([...t,{provide:Td,useValue:this},{provide:Na,useValue:this.componentFactoryResolver}],e||mm(),i,new Set(["environment"]));this.injector=o,o.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}function Im(n,t,e=null){return new N3(n,t,e).injector}let Y3=(()=>{class n{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e.id)){const i=Ow(0,e.type),o=i.length>0?Im([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e.id,o)}return this.cachedInjectors.get(e.id)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}}return n.\u0275prov=Ye({token:n,providedIn:"environment",factory:()=>new n(we(gs))}),n})();function zv(n){n.getStandaloneInjector=t=>t.get(Y3).getOrCreateStandaloneInjector(n)}function Un(n,t,e){const i=mr()+n,o=ze();return o[i]===Ft?vs(o,i,e?t.call(e):t()):function Th(n,t){return n[t]}(o,i)}function Ve(n,t,e,i){return ok(ze(),mr(),n,t,e,i)}function ln(n,t,e,i,o){return sk(ze(),mr(),n,t,e,i,o)}function Rh(n,t){const e=n[t];return e===Ft?void 0:e}function ok(n,t,e,i,o,s){const a=t+e;return Tr(n,a,o)?vs(n,a+1,s?i.call(s,o):i(o)):Rh(n,a+1)}function sk(n,t,e,i,o,s,a){const l=t+e;return Nl(n,l,o,s)?vs(n,l+2,a?i.call(a,o,s):i(o,s)):Rh(n,l+2)}function R(n,t){const e=nn();let i;const o=n+22;e.firstCreatePass?(i=function eN(n,t){if(t)for(let e=t.length-1;e>=0;e--){const i=t[e];if(n===i.name)return i}}(t,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(o,i.onDestroy)):i=e.data[o];const s=i.factory||(i.factory=Yr(i.type)),a=dr(F);try{const l=Jc(!1),c=s();return Jc(l),function GF(n,t,e,i){e>=n.data.length&&(n.data[e]=null,n.blueprint[e]=null),t[e]=i}(e,ze(),o,c),c}finally{dr(a)}}function B(n,t,e){const i=n+22,o=ze(),s=Pa(o,i);return Nh(o,i)?ok(o,mr(),t,s.transform,e,s):s.transform(e)}function Pt(n,t,e,i){const o=n+22,s=ze(),a=Pa(s,o);return Nh(s,o)?sk(s,mr(),t,a.transform,e,i,a):a.transform(e,i)}function Nh(n,t){return n[1].data[t].pure}function Wv(n){return t=>{setTimeout(n,void 0,t)}}const ht=class rN extends X{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,i){let o=t,s=e||(()=>null),a=i;if(t&&"object"==typeof t){const c=t;o=c.next?.bind(c),s=c.error?.bind(c),a=c.complete?.bind(c)}this.__isAsync&&(s=Wv(s),o&&(o=Wv(o)),a&&(a=Wv(a)));const l=super.subscribe({next:o,error:s,complete:a});return t instanceof T&&t.add(l),l}};function oN(){return this._results[Rl()]()}class Hl{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=Rl(),i=Hl.prototype;i[e]||(i[e]=oN)}get changes(){return this._changes||(this._changes=new ht)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){const i=this;i.dirty=!1;const o=function Io(n){return n.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function yP(n,t,e){if(n.length!==t.length)return!1;for(let i=0;i{class n{}return n.__NG_ELEMENT_ID__=lN,n})();const sN=lr,aN=class extends sN{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}createEmbeddedView(t,e){const i=this._declarationTContainer.tViews,o=gm(this._declarationLView,i,t,16,null,i.declTNode,null,null,null,null,e||null);o[17]=this._declarationLView[this._declarationTContainer.index];const a=this._declarationLView[19];return null!==a&&(o[19]=a.createEmbeddedView(i)),fv(i,o,t),new kh(o)}};function lN(){return Pm(wi(),ze())}function Pm(n,t){return 4&n.type?new aN(t,n,hd(n,t)):null}let Xi=(()=>{class n{}return n.__NG_ELEMENT_ID__=cN,n})();function cN(){return hk(wi(),ze())}const dN=Xi,dk=class extends dN{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return hd(this._hostTNode,this._hostLView)}get injector(){return new nd(this._hostTNode,this._hostLView)}get parentInjector(){const t=Le(this._hostTNode,this._hostLView);if(lo(t)){const e=Qc(t,this._hostLView),i=Xc(t);return new nd(e[1].data[i+8],e)}return new nd(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=uk(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,e,i){let o,s;"number"==typeof i?o=i:null!=i&&(o=i.index,s=i.injector);const a=t.createEmbeddedView(e||{},s);return this.insert(a,o),a}createComponent(t,e,i,o,s){const a=t&&!function ph(n){return"function"==typeof n}(t);let l;if(a)l=e;else{const Y=e||{};l=Y.index,i=Y.injector,o=Y.projectableNodes,s=Y.environmentInjector||Y.ngModuleRef}const c=a?t:new Sh(bn(t)),M=i||this.parentInjector;if(!s&&null==c.ngModule){const q=(a?M:this.parentInjector).get(gs,null);q&&(s=q)}const P=c.create(M,o,void 0,s);return this.insert(P.hostView,l),P}insert(t,e){const i=t._lView,o=i[1];if(function rb(n){return fr(n[3])}(i)){const P=this.indexOf(t);if(-1!==P)this.detach(P);else{const Y=i[3],q=new dk(Y,Y[6],Y[3]);q.detach(q.indexOf(t))}}const s=this._adjustIndex(e),a=this._lContainer;!function lO(n,t,e,i){const o=10+i,s=e.length;i>0&&(e[o-1][4]=t),i0)i.push(a[l/2]);else{const M=s[l+1],P=t[-c];for(let Y=10;Y{class n{constructor(e){this.appInits=e,this.resolve=Am,this.reject=Am,this.initialized=!1,this.done=!1,this.donePromise=new Promise((i,o)=>{this.resolve=i,this.reject=o})}runInitializers(){if(this.initialized)return;const e=[],i=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{s.subscribe({complete:l,error:c})});e.push(a)}}Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}}return n.\u0275fac=function(e){return new(e||n)(we(Fm,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Id=new Be("AppId",{providedIn:"root",factory:function Rk(){return`${ny()}${ny()}${ny()}`}});function ny(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Nk=new Be("Platform Initializer"),Nm=new Be("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),Yk=new Be("appBootstrapListener"),Vi=new Be("AnimationModuleType");let RN=(()=>{class n{log(e){console.log(e)}warn(e){console.warn(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})();const ws=new Be("LocaleId",{providedIn:"root",factory:()=>Lt(ws,Mt.Optional|Mt.SkipSelf)||function NN(){return typeof $localize<"u"&&$localize.locale||Dd}()});class BN{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}let Bk=(()=>{class n{compileModuleSync(e){return new jv(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),s=Zs(ur(e).declarations).reduce((a,l)=>{const c=bn(l);return c&&a.push(new Sh(c)),a},[]);return new BN(i,s)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const jN=(()=>Promise.resolve(0))();function iy(n){typeof Zone>"u"?jN.then(()=>{n&&n.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",n)}class pt{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ht(!1),this.onMicrotaskEmpty=new ht(!1),this.onStable=new ht(!1),this.onError=new ht(!1),typeof Zone>"u")throw new Fe(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function zN(){let n=dn.requestAnimationFrame,t=dn.cancelAnimationFrame;if(typeof Zone<"u"&&n&&t){const e=n[Zone.__symbol__("OriginalDelegate")];e&&(n=e);const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function $N(n){const t=()=>{!function WN(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(dn,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,oy(n),n.isCheckStableRunning=!0,ry(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),oy(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,s,a,l)=>{try{return jk(n),e.invokeTask(o,s,a,l)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||n.shouldCoalesceRunChangeDetection)&&t(),zk(n)}},onInvoke:(e,i,o,s,a,l,c)=>{try{return jk(n),e.invoke(o,s,a,l,c)}finally{n.shouldCoalesceRunChangeDetection&&t(),zk(n)}},onHasTask:(e,i,o,s)=>{e.hasTask(o,s),i===o&&("microTask"==s.change?(n._hasPendingMicrotasks=s.microTask,oy(n),ry(n)):"macroTask"==s.change&&(n.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,i,o,s)=>(e.handleError(o,s),n.runOutsideAngular(()=>n.onError.emit(s)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!pt.isInAngularZone())throw new Fe(909,!1)}static assertNotInAngularZone(){if(pt.isInAngularZone())throw new Fe(909,!1)}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,o){const s=this._inner,a=s.scheduleEventTask("NgZoneEvent: "+o,t,UN,Am,Am);try{return s.runTask(a,e,i)}finally{s.cancelTask(a)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const UN={};function ry(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function oy(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function jk(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function zk(n){n._nesting--,ry(n)}class GN{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ht,this.onMicrotaskEmpty=new ht,this.onStable=new ht,this.onError=new ht}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,o){return t.apply(e,i)}}const Uk=new Be(""),Ym=new Be("");let ly,sy=(()=>{class n{constructor(e,i,o){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,ly||(function qN(n){ly=n}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{pt.assertNotInAngularZone(),iy(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())iy(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==s),e(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:e,timeoutId:s,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}}return n.\u0275fac=function(e){return new(e||n)(we(pt),we(ay),we(Ym))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),ay=(()=>{class n{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return ly?.findTestabilityInTree(this,e,i)??null}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})(),Va=null;const Wk=new Be("AllowMultipleToken"),cy=new Be("PlatformDestroyListeners");class $k{constructor(t,e){this.name=t,this.token=e}}function qk(n,t,e=[]){const i=`Platform: ${t}`,o=new Be(i);return(s=[])=>{let a=dy();if(!a||a.injector.get(Wk,!1)){const l=[...e,...s,{provide:o,useValue:!0}];n?n(l):function XN(n){if(Va&&!Va.get(Wk,!1))throw new Fe(400,!1);Va=n;const t=n.get(Zk);(function Gk(n){const t=n.get(Nk,null);t&&t.forEach(e=>e())})(n)}(function Kk(n=[],t){return mi.create({name:t,providers:[{provide:tv,useValue:"platform"},{provide:cy,useValue:new Set([()=>Va=null])},...n]})}(l,i))}return function JN(n){const t=dy();if(!t)throw new Fe(401,!1);return t}()}}function dy(){return Va?.get(Zk)??null}let Zk=(()=>{class n{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function Qk(n,t){let e;return e="noop"===n?new GN:("zone.js"===n?void 0:n)||new pt(t),e}(i?.ngZone,function Xk(n){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!n||!n.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!n||!n.ngZoneRunCoalescing)||!1}}(i)),s=[{provide:pt,useValue:o}];return o.run(()=>{const a=mi.create({providers:s,parent:this.injector,name:e.moduleType.name}),l=e.create(a),c=l.injector.get(Ks,null);if(!c)throw new Fe(402,!1);return o.runOutsideAngular(()=>{const M=o.onError.subscribe({next:P=>{c.handleError(P)}});l.onDestroy(()=>{Bm(this._modules,l),M.unsubscribe()})}),function Jk(n,t,e){try{const i=e();return Lh(i)?i.catch(o=>{throw t.runOutsideAngular(()=>n.handleError(o)),o}):i}catch(i){throw t.runOutsideAngular(()=>n.handleError(i)),i}}(c,o,()=>{const M=l.injector.get(Rm);return M.runInitializers(),M.donePromise.then(()=>(function SC(n){qr(n,"Expected localeId to be defined"),"string"==typeof n&&(kC=n.toLowerCase().replace(/_/g,"-"))}(l.injector.get(ws,Dd)||Dd),this._moduleDoBootstrap(l),l))})})}bootstrapModule(e,i=[]){const o=eS({},i);return function KN(n,t,e){const i=new jv(e);return Promise.resolve(i)}(0,0,e).then(s=>this.bootstrapModuleFactory(s,o))}_moduleDoBootstrap(e){const i=e.injector.get(Pd);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new Fe(403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Fe(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(cy,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return n.\u0275fac=function(e){return new(e||n)(we(mi))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})();function eS(n,t){return Array.isArray(t)?t.reduce(eS,n):{...n,...t}}let Pd=(()=>{class n{constructor(e,i,o){this._zone=e,this._injector=i,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const s=new ce(l=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{l.next(this._stable),l.complete()})}),a=new ce(l=>{let c;this._zone.runOutsideAngular(()=>{c=this._zone.onStable.subscribe(()=>{pt.assertNotInAngularZone(),iy(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,l.next(!0))})})});const M=this._zone.onUnstable.subscribe(()=>{pt.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{l.next(!1)}))});return()=>{c.unsubscribe(),M.unsubscribe()}});this.isStable=vt(s,a.pipe(wa()))}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof Bw;if(!this._injector.get(Rm).done)throw!o&&function Ea(n){const t=bn(n)||Hi(n)||Mi(n);return null!==t&&t.standalone}(e),new Fe(405,false);let a;a=o?e:this._injector.get(Na).resolveComponentFactory(e),this.componentTypes.push(a.componentType);const l=function ZN(n){return n.isBoundToModule}(a)?void 0:this._injector.get(Td),M=a.create(mi.NULL,[],i||a.selector,l),P=M.location.nativeElement,Y=M.injector.get(Uk,null);return Y?.registerApplication(P),M.onDestroy(()=>{this.detachView(M.hostView),Bm(this.components,M),Y?.unregisterApplication(P)}),this._loadComponent(M),M}tick(){if(this._runningTick)throw new Fe(101,!1);try{this._runningTick=!0;for(let e of this._views)e.detectChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;Bm(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(Yk,[]);i.push(...this._bootstrapListeners),i.forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>Bm(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new Fe(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return n.\u0275fac=function(e){return new(e||n)(we(pt),we(gs),we(Ks))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function Bm(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}let di=(()=>{class n{}return n.__NG_ELEMENT_ID__=t4,n})();function t4(n){return function n4(n,t,e){if(wl(n)&&!e){const i=Br(n.index,t);return new kh(i,i)}return 47&n.type?new kh(t[16],t):null}(wi(),ze(),16==(16&n))}class oS{constructor(){}supports(t){return Dh(t)}create(t){return new c4(t)}}const l4=(n,t)=>t;class c4{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||l4}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,i=this._removalsHead,o=0,s=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(o,l),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,l,a,o)),Object.is(e.item,l)||this._addIdentityChange(e,l)):(e=this._mismatch(e,l,a,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,i,o){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,o)):t=this._addAfter(new d4(e,i),s,o),t}_verifyReinsertion(t,e,i,o){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?t=this._reinsertAfter(s,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const o=t._prevRemoved,s=t._nextRemoved;return null===o?this._removalsHead=s:o._nextRemoved=s,null===s?this._removalsTail=o:s._prevRemoved=o,this._insertAfter(t,e,i),this._addToMoves(t,i),t}_moveAfter(t,e,i){return this._unlink(t),this._insertAfter(t,e,i),this._addToMoves(t,i),t}_addAfter(t,e,i){return this._insertAfter(t,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,i){const o=null===e?this._itHead:e._next;return t._next=o,t._prev=e,null===o?this._itTail=t:o._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new sS),this._linkedRecords.put(t),t.currentIndex=i,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,i=t._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new sS),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class d4{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class u4{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,t))return i;return null}remove(t){const e=t._prevDup,i=t._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class sS{constructor(){this.map=new Map}put(t){const e=t.trackById;let i=this.map.get(e);i||(i=new u4,this.map.set(e,i)),i.add(t)}get(t,e){const o=this.map.get(t);return o?o.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function aS(n,t,e){const i=n.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const s=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,s)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const o=this._records.get(t);this._maybeAddToChanges(o,e);const s=o._prev,a=o._next;return s&&(s._next=a),a&&(a._prev=s),o._next=null,o._prev=null,o}const i=new f4(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class f4{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function cS(){return new Bh([new oS])}let Bh=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||cS()),deps:[[n,new ld,new $s]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new Fe(901,!1)}}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:cS}),n})();function dS(){return new Hh([new lS])}let Hh=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||dS()),deps:[[n,new ld,new $s]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new Fe(901,!1)}}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:dS}),n})();const _4=qk(null,"core",[]);let g4=(()=>{class n{constructor(e){}}return n.\u0275fac=function(e){return new(e||n)(we(Pd))},n.\u0275mod=Et({type:n}),n.\u0275inj=At({}),n})();function Od(n){return"boolean"==typeof n?n:null!=n&&"false"!==n}let my=null;function xs(){return my}class y4{}const St=new Be("DocumentToken");let _y=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return function M4(){return we(uS)}()},providedIn:"platform"}),n})();const w4=new Be("Location Initialized");let uS=(()=>{class n extends _y{constructor(e){super(),this._doc=e,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return xs().getBaseHref(this._doc)}onPopState(e){const i=xs().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=xs().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(e){this.location.pathname=e}pushState(e,i,o){hS()?this._history.pushState(e,i,o):this.location.hash=o}replaceState(e,i,o){hS()?this._history.replaceState(e,i,o):this.location.hash=o}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}}return n.\u0275fac=function(e){return new(e||n)(we(St))},n.\u0275prov=Ye({token:n,factory:function(){return function x4(){return new uS(we(St))}()},providedIn:"platform"}),n})();function hS(){return!!window.history.pushState}function gy(n,t){if(0==n.length)return t;if(0==t.length)return n;let e=0;return n.endsWith("/")&&e++,t.startsWith("/")&&e++,2==e?n+t.substring(1):1==e?n+t:n+"/"+t}function fS(n){const t=n.match(/#|\?|$/),e=t&&t.index||n.length;return n.slice(0,e-("/"===n[e-1]?1:0))+n.slice(e)}function ea(n){return n&&"?"!==n[0]?"?"+n:n}let jl=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Lt(mS)},providedIn:"root"}),n})();const pS=new Be("appBaseHref");let mS=(()=>{class n extends jl{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??Lt(St).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return gy(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+ea(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,s){const a=this.prepareExternalUrl(o+ea(s));this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,s){const a=this.prepareExternalUrl(o+ea(s));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return n.\u0275fac=function(e){return new(e||n)(we(_y),we(pS,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),C4=(()=>{class n extends jl{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){let i=this._platformLocation.hash;return null==i&&(i="#"),i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=gy(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,s){let a=this.prepareExternalUrl(o+ea(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,s){let a=this.prepareExternalUrl(o+ea(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return n.\u0275fac=function(e){return new(e||n)(we(_y),we(pS,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Vh=(()=>{class n{constructor(e){this._subject=new ht,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function D4(n){if(new RegExp("^(https?:)?//").test(n)){const[,e]=n.split(/\/\/[^\/]+/);return e}return n}(fS(_S(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+ea(i))}normalize(e){return n.stripTrailingSlash(function S4(n,t){return n&&t.startsWith(n)?t.substring(n.length):t}(this._basePath,_S(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+ea(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+ea(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)})),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}}return n.normalizeQueryParams=ea,n.joinWithSlash=gy,n.stripTrailingSlash=fS,n.\u0275fac=function(e){return new(e||n)(we(jl))},n.\u0275prov=Ye({token:n,factory:function(){return function k4(){return new Vh(we(jl))}()},providedIn:"root"}),n})();function _S(n){return n.replace(/\/index.html$/,"")}var Pi=(()=>((Pi=Pi||{})[Pi.Format=0]="Format",Pi[Pi.Standalone=1]="Standalone",Pi))(),Zt=(()=>((Zt=Zt||{})[Zt.Narrow=0]="Narrow",Zt[Zt.Abbreviated=1]="Abbreviated",Zt[Zt.Wide=2]="Wide",Zt[Zt.Short=3]="Short",Zt))(),_i=(()=>((_i=_i||{})[_i.Short=0]="Short",_i[_i.Medium=1]="Medium",_i[_i.Long=2]="Long",_i[_i.Full=3]="Full",_i))(),xt=(()=>((xt=xt||{})[xt.Decimal=0]="Decimal",xt[xt.Group=1]="Group",xt[xt.List=2]="List",xt[xt.PercentSign=3]="PercentSign",xt[xt.PlusSign=4]="PlusSign",xt[xt.MinusSign=5]="MinusSign",xt[xt.Exponential=6]="Exponential",xt[xt.SuperscriptingExponent=7]="SuperscriptingExponent",xt[xt.PerMille=8]="PerMille",xt[xt.Infinity=9]="Infinity",xt[xt.NaN=10]="NaN",xt[xt.TimeSeparator=11]="TimeSeparator",xt[xt.CurrencyDecimal=12]="CurrencyDecimal",xt[xt.CurrencyGroup=13]="CurrencyGroup",xt))();function jm(n,t){return Ao(jr(n)[at.DateFormat],t)}function zm(n,t){return Ao(jr(n)[at.TimeFormat],t)}function Um(n,t){return Ao(jr(n)[at.DateTimeFormat],t)}function Oo(n,t){const e=jr(n),i=e[at.NumberSymbols][t];if(typeof i>"u"){if(t===xt.CurrencyDecimal)return e[at.NumberSymbols][xt.Decimal];if(t===xt.CurrencyGroup)return e[at.NumberSymbols][xt.Group]}return i}function bS(n){if(!n[at.ExtraData])throw new Error(`Missing extra locale data for the locale "${n[at.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Ao(n,t){for(let e=t;e>-1;e--)if(typeof n[e]<"u")return n[e];throw new Error("Locale data API: locale data undefined")}function vy(n){const[t,e]=n.split(":");return{hours:+t,minutes:+e}}const H4=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,jh={},V4=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var Ji=(()=>((Ji=Ji||{})[Ji.Short=0]="Short",Ji[Ji.ShortGMT=1]="ShortGMT",Ji[Ji.Long=2]="Long",Ji[Ji.Extended=3]="Extended",Ji))(),Dt=(()=>((Dt=Dt||{})[Dt.FullYear=0]="FullYear",Dt[Dt.Month=1]="Month",Dt[Dt.Date=2]="Date",Dt[Dt.Hours=3]="Hours",Dt[Dt.Minutes=4]="Minutes",Dt[Dt.Seconds=5]="Seconds",Dt[Dt.FractionalSeconds=6]="FractionalSeconds",Dt[Dt.Day=7]="Day",Dt))(),zt=(()=>((zt=zt||{})[zt.DayPeriods=0]="DayPeriods",zt[zt.Days=1]="Days",zt[zt.Months=2]="Months",zt[zt.Eras=3]="Eras",zt))();function vS(n,t,e,i){let o=function Z4(n){if(wS(n))return n;if("number"==typeof n&&!isNaN(n))return new Date(n);if("string"==typeof n){if(n=n.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(n)){const[o,s=1,a=1]=n.split("-").map(l=>+l);return Wm(o,s-1,a)}const e=parseFloat(n);if(!isNaN(n-e))return new Date(e);let i;if(i=n.match(H4))return function X4(n){const t=new Date(0);let e=0,i=0;const o=n[8]?t.setUTCFullYear:t.setFullYear,s=n[8]?t.setUTCHours:t.setHours;n[9]&&(e=Number(n[9]+n[10]),i=Number(n[9]+n[11])),o.call(t,Number(n[1]),Number(n[2])-1,Number(n[3]));const a=Number(n[4]||0)-e,l=Number(n[5]||0)-i,c=Number(n[6]||0),M=Math.floor(1e3*parseFloat("0."+(n[7]||0)));return s.call(t,a,l,c,M),t}(i)}const t=new Date(n);if(!wS(t))throw new Error(`Unable to convert "${n}" into a date`);return t}(n);t=ta(e,t)||t;let l,a=[];for(;t;){if(l=V4.exec(t),!l){a.push(t);break}{a=a.concat(l.slice(1));const P=a.pop();if(!P)break;t=P}}let c=o.getTimezoneOffset();i&&(c=MS(i,c),o=function K4(n,t,e){const i=e?-1:1,o=n.getTimezoneOffset();return function q4(n,t){return(n=new Date(n.getTime())).setMinutes(n.getMinutes()+t),n}(n,i*(MS(t,o)-o))}(o,i,!0));let M="";return a.forEach(P=>{const Y=function G4(n){if(My[n])return My[n];let t;switch(n){case"G":case"GG":case"GGG":t=qn(zt.Eras,Zt.Abbreviated);break;case"GGGG":t=qn(zt.Eras,Zt.Wide);break;case"GGGGG":t=qn(zt.Eras,Zt.Narrow);break;case"y":t=zi(Dt.FullYear,1,0,!1,!0);break;case"yy":t=zi(Dt.FullYear,2,0,!0,!0);break;case"yyy":t=zi(Dt.FullYear,3,0,!1,!0);break;case"yyyy":t=zi(Dt.FullYear,4,0,!1,!0);break;case"Y":t=Km(1);break;case"YY":t=Km(2,!0);break;case"YYY":t=Km(3);break;case"YYYY":t=Km(4);break;case"M":case"L":t=zi(Dt.Month,1,1);break;case"MM":case"LL":t=zi(Dt.Month,2,1);break;case"MMM":t=qn(zt.Months,Zt.Abbreviated);break;case"MMMM":t=qn(zt.Months,Zt.Wide);break;case"MMMMM":t=qn(zt.Months,Zt.Narrow);break;case"LLL":t=qn(zt.Months,Zt.Abbreviated,Pi.Standalone);break;case"LLLL":t=qn(zt.Months,Zt.Wide,Pi.Standalone);break;case"LLLLL":t=qn(zt.Months,Zt.Narrow,Pi.Standalone);break;case"w":t=yy(1);break;case"ww":t=yy(2);break;case"W":t=yy(1,!0);break;case"d":t=zi(Dt.Date,1);break;case"dd":t=zi(Dt.Date,2);break;case"c":case"cc":t=zi(Dt.Day,1);break;case"ccc":t=qn(zt.Days,Zt.Abbreviated,Pi.Standalone);break;case"cccc":t=qn(zt.Days,Zt.Wide,Pi.Standalone);break;case"ccccc":t=qn(zt.Days,Zt.Narrow,Pi.Standalone);break;case"cccccc":t=qn(zt.Days,Zt.Short,Pi.Standalone);break;case"E":case"EE":case"EEE":t=qn(zt.Days,Zt.Abbreviated);break;case"EEEE":t=qn(zt.Days,Zt.Wide);break;case"EEEEE":t=qn(zt.Days,Zt.Narrow);break;case"EEEEEE":t=qn(zt.Days,Zt.Short);break;case"a":case"aa":case"aaa":t=qn(zt.DayPeriods,Zt.Abbreviated);break;case"aaaa":t=qn(zt.DayPeriods,Zt.Wide);break;case"aaaaa":t=qn(zt.DayPeriods,Zt.Narrow);break;case"b":case"bb":case"bbb":t=qn(zt.DayPeriods,Zt.Abbreviated,Pi.Standalone,!0);break;case"bbbb":t=qn(zt.DayPeriods,Zt.Wide,Pi.Standalone,!0);break;case"bbbbb":t=qn(zt.DayPeriods,Zt.Narrow,Pi.Standalone,!0);break;case"B":case"BB":case"BBB":t=qn(zt.DayPeriods,Zt.Abbreviated,Pi.Format,!0);break;case"BBBB":t=qn(zt.DayPeriods,Zt.Wide,Pi.Format,!0);break;case"BBBBB":t=qn(zt.DayPeriods,Zt.Narrow,Pi.Format,!0);break;case"h":t=zi(Dt.Hours,1,-12);break;case"hh":t=zi(Dt.Hours,2,-12);break;case"H":t=zi(Dt.Hours,1);break;case"HH":t=zi(Dt.Hours,2);break;case"m":t=zi(Dt.Minutes,1);break;case"mm":t=zi(Dt.Minutes,2);break;case"s":t=zi(Dt.Seconds,1);break;case"ss":t=zi(Dt.Seconds,2);break;case"S":t=zi(Dt.FractionalSeconds,1);break;case"SS":t=zi(Dt.FractionalSeconds,2);break;case"SSS":t=zi(Dt.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=Gm(Ji.Short);break;case"ZZZZZ":t=Gm(Ji.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=Gm(Ji.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=Gm(Ji.Long);break;default:return null}return My[n]=t,t}(P);M+=Y?Y(o,e,c):"''"===P?"'":P.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),M}function Wm(n,t,e){const i=new Date(0);return i.setFullYear(n,t,e),i.setHours(0,0,0),i}function ta(n,t){const e=function T4(n){return jr(n)[at.LocaleId]}(n);if(jh[e]=jh[e]||{},jh[e][t])return jh[e][t];let i="";switch(t){case"shortDate":i=jm(n,_i.Short);break;case"mediumDate":i=jm(n,_i.Medium);break;case"longDate":i=jm(n,_i.Long);break;case"fullDate":i=jm(n,_i.Full);break;case"shortTime":i=zm(n,_i.Short);break;case"mediumTime":i=zm(n,_i.Medium);break;case"longTime":i=zm(n,_i.Long);break;case"fullTime":i=zm(n,_i.Full);break;case"short":const o=ta(n,"shortTime"),s=ta(n,"shortDate");i=$m(Um(n,_i.Short),[o,s]);break;case"medium":const a=ta(n,"mediumTime"),l=ta(n,"mediumDate");i=$m(Um(n,_i.Medium),[a,l]);break;case"long":const c=ta(n,"longTime"),M=ta(n,"longDate");i=$m(Um(n,_i.Long),[c,M]);break;case"full":const P=ta(n,"fullTime"),Y=ta(n,"fullDate");i=$m(Um(n,_i.Full),[P,Y])}return i&&(jh[e][t]=i),i}function $m(n,t){return t&&(n=n.replace(/\{([^}]+)}/g,function(e,i){return null!=t&&i in t?t[i]:e})),n}function ts(n,t,e="-",i,o){let s="";(n<0||o&&n<=0)&&(o?n=1-n:(n=-n,s=e));let a=String(n);for(;a.length0||l>-e)&&(l+=e),n===Dt.Hours)0===l&&-12===e&&(l=12);else if(n===Dt.FractionalSeconds)return function j4(n,t){return ts(n,3).substring(0,t)}(l,t);const c=Oo(a,xt.MinusSign);return ts(l,t,c,i,o)}}function qn(n,t,e=Pi.Format,i=!1){return function(o,s){return function U4(n,t,e,i,o,s){switch(e){case zt.Months:return function I4(n,t,e){const i=jr(n),s=Ao([i[at.MonthsFormat],i[at.MonthsStandalone]],t);return Ao(s,e)}(t,o,i)[n.getMonth()];case zt.Days:return function E4(n,t,e){const i=jr(n),s=Ao([i[at.DaysFormat],i[at.DaysStandalone]],t);return Ao(s,e)}(t,o,i)[n.getDay()];case zt.DayPeriods:const a=n.getHours(),l=n.getMinutes();if(s){const M=function F4(n){const t=jr(n);return bS(t),(t[at.ExtraData][2]||[]).map(i=>"string"==typeof i?vy(i):[vy(i[0]),vy(i[1])])}(t),P=function R4(n,t,e){const i=jr(n);bS(i);const s=Ao([i[at.ExtraData][0],i[at.ExtraData][1]],t)||[];return Ao(s,e)||[]}(t,o,i),Y=M.findIndex(q=>{if(Array.isArray(q)){const[te,fe]=q,ke=a>=te.hours&&l>=te.minutes,Ie=a0?Math.floor(o/60):Math.ceil(o/60);switch(n){case Ji.Short:return(o>=0?"+":"")+ts(a,2,s)+ts(Math.abs(o%60),2,s);case Ji.ShortGMT:return"GMT"+(o>=0?"+":"")+ts(a,1,s);case Ji.Long:return"GMT"+(o>=0?"+":"")+ts(a,2,s)+":"+ts(Math.abs(o%60),2,s);case Ji.Extended:return 0===i?"Z":(o>=0?"+":"")+ts(a,2,s)+":"+ts(Math.abs(o%60),2,s);default:throw new Error(`Unknown zone width "${n}"`)}}}function yS(n){return Wm(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay()))}function yy(n,t=!1){return function(e,i){let o;if(t){const s=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,a=e.getDate();o=1+Math.floor((a+s)/7)}else{const s=yS(e),a=function $4(n){const t=Wm(n,0,1).getDay();return Wm(n,0,1+(t<=4?4:11)-t)}(s.getFullYear()),l=s.getTime()-a.getTime();o=1+Math.round(l/6048e5)}return ts(o,n,Oo(i,xt.MinusSign))}}function Km(n,t=!1){return function(e,i){return ts(yS(e).getFullYear(),n,Oo(i,xt.MinusSign),t)}}const My={};function MS(n,t){n=n.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+n)/6e4;return isNaN(e)?t:e}function wS(n){return n instanceof Date&&!isNaN(n.valueOf())}function SS(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[o,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===t)return decodeURIComponent(s)}return null}let On=(()=>{class n{constructor(e,i,o,s){this._iterableDiffers=e,this._keyValueDiffers=i,this._ngEl=o,this._renderer=s,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(Dh(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){const e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}}_applyKeyValueChanges(e){e.forEachAddedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachChangedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachRemovedItem(i=>{i.previousValue&&this._toggleClass(i.key,!1)})}_applyIterableChanges(e){e.forEachAddedItem(i=>{if("string"!=typeof i.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${Pn(i.item)}`);this._toggleClass(i.item,!0)}),e.forEachRemovedItem(i=>this._toggleClass(i.item,!1))}_applyClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!0)):Object.keys(e).forEach(i=>this._toggleClass(i,!!e[i])))}_removeClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!1)):Object.keys(e).forEach(i=>this._toggleClass(i,!1)))}_toggleClass(e,i){(e=e.trim())&&e.split(/\s+/g).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return n.\u0275fac=function(e){return new(e||n)(F(Bh),F(Hh),F(bt),F(qs))},n.\u0275dir=Ke({type:n,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),n})();class u5{constructor(t,e,i,o){this.$implicit=t,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let Ci=(()=>{class n{constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,s,a)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new u5(o.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===s?void 0:s);else if(null!==s){const l=i.get(s);i.move(l,a),LS(l,o)}});for(let o=0,s=i.length;o{LS(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(F(Xi),F(lr),F(Bh))},n.\u0275dir=Ke({type:n,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),n})();function LS(n,t){n.context.$implicit=t.item}let Ot=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new f5,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){ES("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){ES("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(F(Xi),F(lr))},n.\u0275dir=Ke({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),n})();class f5{constructor(){this.$implicit=null,this.ngIf=null}}function ES(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${Pn(t)}'.`)}class Dy{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let Uh=(()=>{class n{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(e)}_matchCase(e){const i=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews&&e!==this._defaultUsed){this._defaultUsed=e;for(let i=0;i{class n{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new Dy(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return n.\u0275fac=function(e){return new(e||n)(F(Xi),F(lr),F(Uh,9))},n.\u0275dir=Ke({type:n,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0}),n})(),IS=(()=>{class n{constructor(e,i,o){o._addDefault(new Dy(e,i))}}return n.\u0275fac=function(e){return new(e||n)(F(Xi),F(lr),F(Uh,9))},n.\u0275dir=Ke({type:n,selectors:[["","ngSwitchDefault",""]],standalone:!0}),n})(),Ad=(()=>{class n{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(e.ngTemplateOutlet||e.ngTemplateOutletInjector){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),this.ngTemplateOutlet){const{ngTemplateOutlet:o,ngTemplateOutletContext:s,ngTemplateOutletInjector:a}=this;this._viewRef=i.createEmbeddedView(o,s,a?{injector:a}:void 0)}else this._viewRef=null}else this._viewRef&&e.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return n.\u0275fac=function(e){return new(e||n)(F(Xi))},n.\u0275dir=Ke({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[Gi]}),n})();const S5=new Be("DATE_PIPE_DEFAULT_TIMEZONE"),D5=new Be("DATE_PIPE_DEFAULT_OPTIONS");let OS=(()=>{class n{constructor(e,i,o){this.locale=e,this.defaultTimezone=i,this.defaultOptions=o}transform(e,i,o,s){if(null==e||""===e||e!=e)return null;try{return vS(e,i??this.defaultOptions?.dateFormat??"mediumDate",s||this.locale,o??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(a){throw function ns(n,t){return new Fe(2100,!1)}()}}}return n.\u0275fac=function(e){return new(e||n)(F(ws,16),F(S5,24),F(D5,24))},n.\u0275pipe=Qn({name:"date",type:n,pure:!0,standalone:!0}),n})(),na=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({}),n})();const FS="browser";let j5=(()=>{class n{}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:()=>new z5(we(St),window)}),n})();class z5{constructor(t,e){this.document=t,this.window=e,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(t){this.supportsScrolling()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(!this.supportsScrolling())return;const e=function U5(n,t){const e=n.getElementById(t)||n.getElementsByName(t)[0];if(e)return e;if("function"==typeof n.createTreeWalker&&n.body&&(n.body.createShadowRoot||n.body.attachShadow)){const i=n.createTreeWalker(n.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const s=o.shadowRoot;if(s){const a=s.getElementById(t)||s.querySelector(`[name="${t}"]`);if(a)return a}o=i.nextNode()}}return null}(this.document,t);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}}scrollToElement(t){const e=t.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(i-s[0],o-s[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const t=RS(this.window.history)||RS(Object.getPrototypeOf(this.window.history));return!(!t||!t.writable&&!t.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function RS(n){return Object.getOwnPropertyDescriptor(n,"scrollRestoration")}class NS{}class gY extends y4{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Oy extends gY{static makeCurrent(){!function v4(n){my||(my=n)}(new Oy)}onAndCancel(t,e,i){return t.addEventListener(e,i,!1),()=>{t.removeEventListener(e,i,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=function bY(){return $h=$h||document.querySelector("base"),$h?$h.getAttribute("href"):null}();return null==e?null:function vY(n){Qm=Qm||document.createElement("a"),Qm.setAttribute("href",n);const t=Qm.pathname;return"/"===t.charAt(0)?t:`/${t}`}(e)}resetBaseElement(){$h=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return SS(document.cookie,t)}}let Qm,$h=null;const zS=new Be("TRANSITION_ID"),MY=[{provide:Fm,useFactory:function yY(n,t,e){return()=>{e.get(Rm).donePromise.then(()=>{const i=xs(),o=t.querySelectorAll(`style[ng-transition="${n}"]`);for(let s=0;s{class n{build(){return new XMLHttpRequest}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const Jm=new Be("EventManagerPlugins");let e_=(()=>{class n{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>o.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}addGlobalEventListener(e,i,o){return this._findPluginFor(i).addGlobalEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){const i=this._eventNameToPlugin.get(e);if(i)return i;const o=this._plugins;for(let s=0;s{class n{constructor(){this._stylesSet=new Set}addStyles(e){const i=new Set;e.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),i.add(o))}),this.onStylesAdded(i)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Gh=(()=>{class n extends WS{constructor(e){super(),this._doc=e,this._hostNodes=new Map,this._hostNodes.set(e.head,[])}_addStylesToHost(e,i,o){e.forEach(s=>{const a=this._doc.createElement("style");a.textContent=s,o.push(i.appendChild(a))})}addHost(e){const i=[];this._addStylesToHost(this._stylesSet,e,i),this._hostNodes.set(e,i)}removeHost(e){const i=this._hostNodes.get(e);i&&i.forEach($S),this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach((i,o)=>{this._addStylesToHost(e,o,i)})}ngOnDestroy(){this._hostNodes.forEach(e=>e.forEach($S))}}return n.\u0275fac=function(e){return new(e||n)(we(St))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function $S(n){xs().remove(n)}const Ay={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},Fy=/%COMP%/g;function Ry(n,t){return t.flat(100).map(e=>e.replace(Fy,n))}function KS(n){return t=>{if("__ngUnwrap__"===t)return n;!1===n(t)&&(t.preventDefault(),t.returnValue=!1)}}let t_=(()=>{class n{constructor(e,i,o){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Ny(e)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;switch(i.encapsulation){case Rr.Emulated:{let o=this.rendererByCompId.get(i.id);return o||(o=new LY(this.eventManager,this.sharedStylesHost,i,this.appId),this.rendererByCompId.set(i.id,o)),o.applyToHost(e),o}case 1:case Rr.ShadowDom:return new EY(this.eventManager,this.sharedStylesHost,e,i);default:if(!this.rendererByCompId.has(i.id)){const o=Ry(i.id,i.styles);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(i.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return n.\u0275fac=function(e){return new(e||n)(we(e_),we(Gh),we(Id))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class Ny{constructor(t){this.eventManager=t,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,e){return e?document.createElementNS(Ay[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){(XS(t)?t.content:t).appendChild(e)}insertBefore(t,e,i){t&&(XS(t)?t.content:t).insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?document.querySelector(t):t;if(!i)throw new Error(`The selector "${t}" did not match any elements`);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,o){if(o){e=o+":"+e;const s=Ay[o];s?t.setAttributeNS(s,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const o=Ay[i];o?t.removeAttributeNS(o,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,o){o&(Zr.DashCase|Zr.Important)?t.style.setProperty(e,i,o&Zr.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&Zr.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){t[e]=i}setValue(t,e){t.nodeValue=e}listen(t,e,i){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,KS(i)):this.eventManager.addEventListener(t,e,KS(i))}}function XS(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class LY extends Ny{constructor(t,e,i,o){super(t),this.component=i;const s=Ry(o+"-"+i.id,i.styles);e.addStyles(s),this.contentAttr=function SY(n){return"_ngcontent-%COMP%".replace(Fy,n)}(o+"-"+i.id),this.hostAttr=function DY(n){return"_nghost-%COMP%".replace(Fy,n)}(o+"-"+i.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}class EY extends Ny{constructor(t,e,i,o){super(t),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=Ry(o.id,o.styles);for(let a=0;a{class n extends US{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}}return n.\u0275fac=function(e){return new(e||n)(we(St))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const QS=["alt","control","meta","shift"],PY={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},OY={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let AY=(()=>{class n extends US{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,o){const s=n.parseEventName(i),a=n.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>xs().onAndCancel(e,s.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const s=n._normalizeKey(i.pop());let a="",l=i.indexOf("code");if(l>-1&&(i.splice(l,1),a="code."),QS.forEach(M=>{const P=i.indexOf(M);P>-1&&(i.splice(P,1),a+=M+".")}),a+=s,0!=i.length||0===s.length)return null;const c={};return c.domEventName=o,c.fullKey=a,c}static matchEventFullKeyCode(e,i){let o=PY[e.key]||e.key,s="";return i.indexOf("code.")>-1&&(o=e.code,s="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),QS.forEach(a=>{a!==o&&(0,OY[a])(e)&&(s+=a+".")}),s+=o,s===i)}static eventCallback(e,i,o){return s=>{n.matchEventFullKeyCode(s,e)&&o.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}}return n.\u0275fac=function(e){return new(e||n)(we(St))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const eD=[{provide:Nm,useValue:FS},{provide:Nk,useValue:function FY(){Oy.makeCurrent()},multi:!0},{provide:St,useFactory:function NY(){return function MO(n){Gb=n}(document),document},deps:[]}],YY=qk(_4,"browser",eD),tD=new Be(""),nD=[{provide:Ym,useClass:class wY{addToWindow(t){dn.getAngularTestability=(i,o=!0)=>{const s=t.findTestabilityInTree(i,o);if(null==s)throw new Error("Could not find testability for element.");return s},dn.getAllAngularTestabilities=()=>t.getAllTestabilities(),dn.getAllAngularRootElements=()=>t.getAllRootElements(),dn.frameworkStabilizers||(dn.frameworkStabilizers=[]),dn.frameworkStabilizers.push(i=>{const o=dn.getAllAngularTestabilities();let s=o.length,a=!1;const l=function(c){a=a||c,s--,0==s&&i(a)};o.forEach(function(c){c.whenStable(l)})})}findTestabilityInTree(t,e,i){return null==e?null:t.getTestability(e)??(i?xs().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null)}},deps:[]},{provide:Uk,useClass:sy,deps:[pt,ay,Ym]},{provide:sy,useClass:sy,deps:[pt,ay,Ym]}],iD=[{provide:tv,useValue:"root"},{provide:Ks,useFactory:function RY(){return new Ks},deps:[]},{provide:Jm,useClass:IY,multi:!0,deps:[St,pt,Nm]},{provide:Jm,useClass:AY,multi:!0,deps:[St]},{provide:t_,useClass:t_,deps:[e_,Gh,Id]},{provide:xh,useExisting:t_},{provide:WS,useExisting:Gh},{provide:Gh,useClass:Gh,deps:[St]},{provide:e_,useClass:e_,deps:[Jm,pt]},{provide:NS,useClass:xY,deps:[]},[]];let rD=(()=>{class n{constructor(e){}static withServerTransition(e){return{ngModule:n,providers:[{provide:Id,useValue:e.appId},{provide:zS,useExisting:Id},MY]}}}return n.\u0275fac=function(e){return new(e||n)(we(tD,12))},n.\u0275mod=Et({type:n}),n.\u0275inj=At({providers:[...iD,...nD],imports:[na,g4]}),n})(),oD=(()=>{class n{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}}return n.\u0275fac=function(e){return new(e||n)(we(St))},n.\u0275prov=Ye({token:n,factory:function(e){let i=null;return i=e?new e:function HY(){return new oD(we(St))}(),i},providedIn:"root"}),n})();typeof window<"u"&&window;let Hy=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(e){let i=null;return i=e?new(e||n):we(lD),i},providedIn:"root"}),n})(),lD=(()=>{class n extends Hy{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case wn.NONE:return i;case wn.HTML:return ms(i,"HTML")?uo(i):Dw(this._doc,String(i)).toString();case wn.STYLE:return ms(i,"Style")?uo(i):i;case wn.SCRIPT:if(ms(i,"Script"))return uo(i);throw new Error("unsafe value used in a script context");case wn.URL:return ms(i,"URL")?uo(i):um(String(i));case wn.RESOURCE_URL:if(ms(i,"ResourceURL"))return uo(i);throw new Error(`unsafe value used in a resource URL context (see ${So})`);default:throw new Error(`Unexpected SecurityContext ${e} (see ${So})`)}}bypassSecurityTrustHtml(e){return function TO(n){return new wO(n)}(e)}bypassSecurityTrustStyle(e){return function LO(n){return new xO(n)}(e)}bypassSecurityTrustScript(e){return function EO(n){return new CO(n)}(e)}bypassSecurityTrustUrl(e){return function IO(n){return new kO(n)}(e)}bypassSecurityTrustResourceUrl(e){return function PO(n){return new SO(n)}(e)}}return n.\u0275fac=function(e){return new(e||n)(we(St))},n.\u0275prov=Ye({token:n,factory:function(e){let i=null;return i=e?new e:function GY(n){return new lD(n.get(St))}(we(mi)),i},providedIn:"root"}),n})();class cD{}class qY{}const ia="*";function ra(n,t){return{type:7,name:n,definitions:t,options:{}}}function Ur(n,t=null){return{type:4,styles:t,timings:n}}function uD(n,t=null){return{type:2,steps:n,options:t}}function Kn(n){return{type:6,styles:n,offset:null}}function mo(n,t,e){return{type:0,name:n,styles:t,options:e}}function Lr(n,t,e=null){return{type:1,expr:n,animation:t,options:e}}function Vy(n=null){return{type:9,options:n}}function jy(n,t,e=null){return{type:11,selector:n,animation:t,options:e}}function hD(n){Promise.resolve().then(n)}class qh{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){hD(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class fD{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,o=0;const s=this.players.length;0==s?hD(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++o==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,l)=>Math.max(a,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const t=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function pD(n){return new Fe(3e3,!1)}function LB(){return typeof window<"u"&&typeof window.document<"u"}function Uy(){return typeof process<"u"&&"[object process]"==={}.toString.call(process)}function za(n){switch(n.length){case 0:return new qh;case 1:return n[0];default:return new fD(n)}}function mD(n,t,e,i,o=new Map,s=new Map){const a=[],l=[];let c=-1,M=null;if(i.forEach(P=>{const Y=P.get("offset"),q=Y==c,te=q&&M||new Map;P.forEach((fe,ke)=>{let Ie=ke,Re=fe;if("offset"!==ke)switch(Ie=t.normalizePropertyName(Ie,a),Re){case"!":Re=o.get(ke);break;case ia:Re=s.get(ke);break;default:Re=t.normalizeStyleValue(ke,Ie,Re,a)}te.set(Ie,Re)}),q||l.push(te),M=te,c=Y}),a.length)throw function gB(n){return new Fe(3502,!1)}();return l}function Wy(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&$y(e,"start",n)));break;case"done":n.onDone(()=>i(e&&$y(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&$y(e,"destroy",n)))}}function $y(n,t,e){const s=Gy(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,e.totalTime??n.totalTime,!!e.disabled),a=n._data;return null!=a&&(s._data=a),s}function Gy(n,t,e,i,o="",s=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:o,totalTime:s,disabled:!!a}}function _o(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function _D(n){const t=n.indexOf(":");return[n.substring(1,t),n.slice(t+1)]}let qy=(n,t)=>!1,gD=(n,t,e)=>[],bD=null;function Ky(n){const t=n.parentNode||n.host;return t===bD?null:t}(Uy()||typeof Element<"u")&&(LB()?(bD=(()=>document.documentElement)(),qy=(n,t)=>{for(;t;){if(t===n)return!0;t=Ky(t)}return!1}):qy=(n,t)=>n.contains(t),gD=(n,t,e)=>{if(e)return Array.from(n.querySelectorAll(t));const i=n.querySelector(t);return i?[i]:[]});let zl=null,vD=!1;const yD=qy,MD=gD;let wD=(()=>{class n{validateStyleProperty(e){return function IB(n){zl||(zl=function PB(){return typeof document<"u"?document.body:null}()||{},vD=!!zl.style&&"WebkitAppearance"in zl.style);let t=!0;return zl.style&&!function EB(n){return"ebkit"==n.substring(1,6)}(n)&&(t=n in zl.style,!t&&vD&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in zl.style)),t}(e)}matchesElement(e,i){return!1}containsElement(e,i){return yD(e,i)}getParentElement(e){return Ky(e)}query(e,i,o){return MD(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,s,a,l=[],c){return new qh(o,s)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Zy=(()=>{class n{}return n.NOOP=new wD,n})();const Xy="ng-enter",n_="ng-leave",i_="ng-trigger",r_=".ng-trigger",CD="ng-animating",Qy=".ng-animating";function oa(n){if("number"==typeof n)return n;const t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:Jy(parseFloat(t[1]),t[2])}function Jy(n,t){return"s"===t?1e3*n:n}function o_(n,t,e){return n.hasOwnProperty("duration")?n:function FB(n,t,e){let o,s=0,a="";if("string"==typeof n){const l=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===l)return t.push(pD()),{duration:0,delay:0,easing:""};o=Jy(parseFloat(l[1]),l[2]);const c=l[3];null!=c&&(s=Jy(parseFloat(c),l[4]));const M=l[5];M&&(a=M)}else o=n;if(!e){let l=!1,c=t.length;o<0&&(t.push(function KY(){return new Fe(3100,!1)}()),l=!0),s<0&&(t.push(function ZY(){return new Fe(3101,!1)}()),l=!0),l&&t.splice(c,0,pD())}return{duration:o,delay:s,easing:a}}(n,t,e)}function Kh(n,t={}){return Object.keys(n).forEach(e=>{t[e]=n[e]}),t}function kD(n){const t=new Map;return Object.keys(n).forEach(e=>{t.set(e,n[e])}),t}function Ua(n,t=new Map,e){if(e)for(let[i,o]of e)t.set(i,o);for(let[i,o]of n)t.set(i,o);return t}function DD(n,t,e){return e?t+":"+e+";":""}function TD(n){let t="";for(let e=0;e{const s=t0(o);e&&!e.has(o)&&e.set(o,n.style[s]),n.style[s]=i}),Uy()&&TD(n))}function Ul(n,t){n.style&&(t.forEach((e,i)=>{const o=t0(i);n.style[o]=""}),Uy()&&TD(n))}function Zh(n){return Array.isArray(n)?1==n.length?n[0]:uD(n):n}const e0=new RegExp("{{\\s*(.+?)\\s*}}","g");function LD(n){let t=[];if("string"==typeof n){let e;for(;e=e0.exec(n);)t.push(e[1]);e0.lastIndex=0}return t}function Xh(n,t,e){const i=n.toString(),o=i.replace(e0,(s,a)=>{let l=t[a];return null==l&&(e.push(function QY(n){return new Fe(3003,!1)}()),l=""),l.toString()});return o==i?n:o}function s_(n){const t=[];let e=n.next();for(;!e.done;)t.push(e.value),e=n.next();return t}const YB=/-+([a-z0-9])/g;function t0(n){return n.replace(YB,(...t)=>t[1].toUpperCase())}function BB(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function go(n,t,e){switch(t.type){case 7:return n.visitTrigger(t,e);case 0:return n.visitState(t,e);case 1:return n.visitTransition(t,e);case 2:return n.visitSequence(t,e);case 3:return n.visitGroup(t,e);case 4:return n.visitAnimate(t,e);case 5:return n.visitKeyframes(t,e);case 6:return n.visitStyle(t,e);case 8:return n.visitReference(t,e);case 9:return n.visitAnimateChild(t,e);case 10:return n.visitAnimateRef(t,e);case 11:return n.visitQuery(t,e);case 12:return n.visitStagger(t,e);default:throw function JY(n){return new Fe(3004,!1)}()}}function ED(n,t){return window.getComputedStyle(n)[t]}function WB(n,t){const e=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function $B(n,t,e){if(":"==n[0]){const c=function GB(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(n,e);if("function"==typeof c)return void t.push(c);n=c}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function hB(n){return new Fe(3015,!1)}()),t;const o=i[1],s=i[2],a=i[3];t.push(ID(o,a));"<"==s[0]&&!("*"==o&&"*"==a)&&t.push(ID(a,o))}(i,e,t)):e.push(n),e}const d_=new Set(["true","1"]),u_=new Set(["false","0"]);function ID(n,t){const e=d_.has(n)||u_.has(n),i=d_.has(t)||u_.has(t);return(o,s)=>{let a="*"==n||n==o,l="*"==t||t==s;return!a&&e&&"boolean"==typeof o&&(a=o?d_.has(n):u_.has(n)),!l&&i&&"boolean"==typeof s&&(l=s?d_.has(t):u_.has(t)),a&&l}}const qB=new RegExp("s*:selfs*,?","g");function n0(n,t,e,i){return new KB(n).build(t,e,i)}class KB{constructor(t){this._driver=t}build(t,e,i){const o=new QB(e);return this._resetContextStyleTimingState(o),go(this,Zh(t),o)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles=new Map,t.collectedStyles.set("",new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,o=e.depCount=0;const s=[],a=[];return"@"==t.name.charAt(0)&&e.errors.push(function tB(){return new Fe(3006,!1)}()),t.definitions.forEach(l=>{if(this._resetContextStyleTimingState(e),0==l.type){const c=l,M=c.name;M.toString().split(/\s*,\s*/).forEach(P=>{c.name=P,s.push(this.visitState(c,e))}),c.name=M}else if(1==l.type){const c=this.visitTransition(l,e);i+=c.queryCount,o+=c.depCount,a.push(c)}else e.errors.push(function nB(){return new Fe(3007,!1)}())}),{type:7,name:t.name,states:s,transitions:a,queryCount:i,depCount:o,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),o=t.options&&t.options.params||null;if(i.containsDynamicStyles){const s=new Set,a=o||{};i.styles.forEach(l=>{l instanceof Map&&l.forEach(c=>{LD(c).forEach(M=>{a.hasOwnProperty(M)||s.add(M)})})}),s.size&&(s_(s.values()),e.errors.push(function iB(n,t){return new Fe(3008,!1)}()))}return{type:0,name:t.name,style:i,options:o?{params:o}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=go(this,Zh(t.animation),e);return{type:1,matchers:WB(t.expr,e.errors),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Wl(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map(i=>go(this,i,e)),options:Wl(t.options)}}visitGroup(t,e){const i=e.currentTime;let o=0;const s=t.steps.map(a=>{e.currentTime=i;const l=go(this,a,e);return o=Math.max(o,e.currentTime),l});return e.currentTime=o,{type:3,steps:s,options:Wl(t.options)}}visitAnimate(t,e){const i=function eH(n,t){if(n.hasOwnProperty("duration"))return n;if("number"==typeof n)return r0(o_(n,t).duration,0,"");const e=n;if(e.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=r0(0,0,"");return s.dynamic=!0,s.strValue=e,s}const o=o_(e,t);return r0(o.duration,o.delay,o.easing)}(t.timings,e.errors);e.currentAnimateTimings=i;let o,s=t.styles?t.styles:Kn({});if(5==s.type)o=this.visitKeyframes(s,e);else{let a=t.styles,l=!1;if(!a){l=!0;const M={};i.easing&&(M.easing=i.easing),a=Kn(M)}e.currentTime+=i.duration+i.delay;const c=this.visitStyle(a,e);c.isEmptyStep=l,o=c}return e.currentAnimateTimings=null,{type:4,timings:i,style:o,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[],o=Array.isArray(t.styles)?t.styles:[t.styles];for(let l of o)"string"==typeof l?l===ia?i.push(l):e.errors.push(new Fe(3002,!1)):i.push(kD(l));let s=!1,a=null;return i.forEach(l=>{if(l instanceof Map&&(l.has("easing")&&(a=l.get("easing"),l.delete("easing")),!s))for(let c of l.values())if(c.toString().indexOf("{{")>=0){s=!0;break}}),{type:6,styles:i,easing:a,offset:t.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let o=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(a=>{"string"!=typeof a&&a.forEach((l,c)=>{const M=e.collectedStyles.get(e.currentQuerySelector),P=M.get(c);let Y=!0;P&&(s!=o&&s>=P.startTime&&o<=P.endTime&&(e.errors.push(function oB(n,t,e,i,o){return new Fe(3010,!1)}()),Y=!1),s=P.startTime),Y&&M.set(c,{startTime:s,endTime:o}),e.options&&function NB(n,t,e){const i=t.params||{},o=LD(n);o.length&&o.forEach(s=>{i.hasOwnProperty(s)||e.push(function XY(n){return new Fe(3001,!1)}())})}(l,e.options,e.errors)})})}visitKeyframes(t,e){const i={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function sB(){return new Fe(3011,!1)}()),i;let s=0;const a=[];let l=!1,c=!1,M=0;const P=t.steps.map(Re=>{const Xe=this._makeStyleAst(Re,e);let Ae=null!=Xe.offset?Xe.offset:function JB(n){if("string"==typeof n)return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){const e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}(Xe.styles),ct=0;return null!=Ae&&(s++,ct=Xe.offset=Ae),c=c||ct<0||ct>1,l=l||ct0&&s{const Ae=q>0?Xe==te?1:q*Xe:a[Xe],ct=Ae*Ie;e.currentTime=fe+ke.delay+ct,ke.duration=ct,this._validateStyleAst(Re,e),Re.offset=Ae,i.styles.push(Re)}),i}visitReference(t,e){return{type:8,animation:go(this,Zh(t.animation),e),options:Wl(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:Wl(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:Wl(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,o=t.options||{};e.queryCount++,e.currentQuery=t;const[s,a]=function ZB(n){const t=!!n.split(/\s*,\s*/).find(e=>":self"==e);return t&&(n=n.replace(qB,"")),n=n.replace(/@\*/g,r_).replace(/@\w+/g,e=>r_+"-"+e.slice(1)).replace(/:animating/g,Qy),[n,t]}(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,_o(e.collectedStyles,e.currentQuerySelector,new Map);const l=go(this,Zh(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:11,selector:s,limit:o.limit||0,optional:!!o.optional,includeSelf:a,animation:l,originalSelector:t.selector,options:Wl(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(function dB(){return new Fe(3013,!1)}());const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:o_(t.timings,e.errors,!0);return{type:12,animation:go(this,Zh(t.animation),e),timings:i,options:null}}}class QB{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Wl(n){return n?(n=Kh(n)).params&&(n.params=function XB(n){return n?Kh(n):null}(n.params)):n={},n}function r0(n,t,e){return{duration:n,delay:t,easing:e}}function o0(n,t,e,i,o,s,a=null,l=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:o,delay:s,totalTime:o+s,easing:a,subTimeline:l}}class h_{constructor(){this._map=new Map}get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const iH=new RegExp(":enter","g"),oH=new RegExp(":leave","g");function s0(n,t,e,i,o,s=new Map,a=new Map,l,c,M=[]){return(new sH).buildKeyframes(n,t,e,i,o,s,a,l,c,M)}class sH{buildKeyframes(t,e,i,o,s,a,l,c,M,P=[]){M=M||new h_;const Y=new a0(t,e,M,o,s,P,[]);Y.options=c;const q=c.delay?oa(c.delay):0;Y.currentTimeline.delayNextStep(q),Y.currentTimeline.setStyles([a],null,Y.errors,c),go(this,i,Y);const te=Y.timelines.filter(fe=>fe.containsAnimation());if(te.length&&l.size){let fe;for(let ke=te.length-1;ke>=0;ke--){const Ie=te[ke];if(Ie.element===e){fe=Ie;break}}fe&&!fe.allowOnlyTimelineStyles()&&fe.setStyles([l],null,Y.errors,c)}return te.length?te.map(fe=>fe.buildKeyframes()):[o0(e,[],[],[],0,q,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(t.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,o,o.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(const o of t){const s=o?.delay;if(s){const a="number"==typeof s?s:oa(Xh(s,o?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime;const a=null!=i.duration?oa(i.duration):null,l=null!=i.delay?oa(i.delay):null;return 0!==a&&t.forEach(c=>{const M=e.appendInstructionToTimeline(c,a,l);s=Math.max(s,M.duration+M.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),go(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let o=e;const s=t.options;if(s&&(s.params||s.delay)&&(o=e.createSubContext(s),o.transformIntoNewTimeline(),null!=s.delay)){6==o.previousNode.type&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=f_);const a=oa(s.delay);o.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>go(this,a,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let o=e.currentTimeline.currentTime;const s=t.options&&t.options.delay?oa(t.options.delay):0;t.steps.forEach(a=>{const l=e.createSubContext(t.options);s&&l.delayNextStep(s),go(this,a,l),o=Math.max(o,l.currentTimeline.currentTime),i.push(l.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(o),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return o_(e.params?Xh(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const s=t.style;5==s.type?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const s=o&&o.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,s=i.duration,l=e.createSubContext().currentTimeline;l.easing=i.easing,t.styles.forEach(c=>{l.forwardTime((c.offset||0)*s),l.setStyles(c.styles,c.easing,e.errors,e.options),l.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(l),e.transformIntoNewTimeline(o+s),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,o=t.options||{},s=o.delay?oa(o.delay):0;s&&(6===e.previousNode.type||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=f_);let a=i;const l=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=l.length;let c=null;l.forEach((M,P)=>{e.currentQueryIndex=P;const Y=e.createSubContext(t.options,M);s&&Y.delayNextStep(s),M===e.element&&(c=Y.currentTimeline),go(this,t.animation,Y),Y.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,Y.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),c&&(e.currentTimeline.mergeTimelineCollectedStyles(c),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,o=e.currentTimeline,s=t.timings,a=Math.abs(s.duration),l=a*(e.currentQueryTotal-1);let c=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":c=l-c;break;case"full":c=i.currentStaggerTime}const P=e.currentTimeline;c&&P.delayNextStep(c);const Y=P.currentTime;go(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=o.currentTime-Y+(o.startTime-i.currentTimeline.startTime)}}const f_={};class a0{constructor(t,e,i,o,s,a,l,c){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=s,this.errors=a,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=f_,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=c||new p_(this._driver,e,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let o=this.options;null!=i.duration&&(o.duration=oa(i.duration)),null!=i.delay&&(o.delay=oa(i.delay));const s=i.params;if(s){let a=o.params;a||(a=this.options.params={}),Object.keys(s).forEach(l=>{(!e||!a.hasOwnProperty(l))&&(a[l]=Xh(s[l],a,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return t}createSubContext(t=null,e,i){const o=e||this.element,s=new a0(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=f_,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const o={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new aH(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,o,t.stretchStartingKeyframe);return this.timelines.push(s),o}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,o,s,a){let l=[];if(o&&l.push(this.element),t.length>0){t=(t=t.replace(iH,"."+this._enterClassName)).replace(oH,"."+this._leaveClassName);let M=this._driver.query(this.element,t,1!=i);0!==i&&(M=i<0?M.slice(M.length+i,M.length):M.slice(0,i)),l.push(...M)}return!s&&0==l.length&&a.push(function uB(n){return new Fe(3014,!1)}()),l}}class p_{constructor(t,e,i,o){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new p_(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||ia),this._currentKeyframe.set(e,ia);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,o){e&&this._previousKeyframe.set("easing",e);const s=o&&o.params||{},a=function lH(n,t){const e=new Map;let i;return n.forEach(o=>{if("*"===o){i=i||t.keys();for(let s of i)e.set(s,ia)}else Ua(o,e)}),e}(t,this._globalTimelineStyles);for(let[l,c]of a){const M=Xh(c,s,i);this._pendingStyles.set(l,M),this._localTimelineStyles.has(l)||this._backFill.set(l,this._globalTimelineStyles.get(l)??ia),this._updateStyle(l,M)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((l,c)=>{const M=Ua(l,new Map,this._backFill);M.forEach((P,Y)=>{"!"===P?t.add(Y):P===ia&&e.add(Y)}),i||M.set("offset",c/this.duration),o.push(M)});const s=t.size?s_(t.values()):[],a=e.size?s_(e.values()):[];if(i){const l=o[0],c=new Map(l);l.set("offset",0),c.set("offset",1),o=[l,c]}return o0(this.element,o,s,a,this.duration,this.startTime,this.easing,!1)}}class aH extends p_{constructor(t,e,i,o,s,a,l=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=s,this._stretchStartingKeyframe=l,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const s=[],a=i+e,l=e/a,c=Ua(t[0]);c.set("offset",0),s.push(c);const M=Ua(t[0]);M.set("offset",AD(l)),s.push(M);const P=t.length-1;for(let Y=1;Y<=P;Y++){let q=Ua(t[Y]);const te=q.get("offset");q.set("offset",AD((e+te*i)/a)),s.push(q)}i=a,e=0,o="",t=s}return o0(this.element,t,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function AD(n,t=3){const e=Math.pow(10,t-1);return Math.round(n*e)/e}class l0{}const cH=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class dH extends l0{normalizePropertyName(t,e){return t0(t)}normalizeStyleValue(t,e,i,o){let s="";const a=i.toString().trim();if(cH.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const l=i.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&0==l[1].length&&o.push(function eB(n,t){return new Fe(3005,!1)}())}return a+s}}function FD(n,t,e,i,o,s,a,l,c,M,P,Y,q){return{type:0,element:n,triggerName:t,isRemovalTransition:o,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:l,queriedElements:c,preStyleProps:M,postStyleProps:P,totalTime:Y,errors:q}}const c0={};class RD{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,o){return function uH(n,t,e,i,o){return n.some(s=>s(t,e,i,o))}(this.ast.matchers,t,e,i,o)}buildStyles(t,e,i){let o=this._stateStyles.get("*");return void 0!==t&&(o=this._stateStyles.get(t?.toString())||o),o?o.buildStyles(e,i):new Map}build(t,e,i,o,s,a,l,c,M,P){const Y=[],q=this.ast.options&&this.ast.options.params||c0,fe=this.buildStyles(i,l&&l.params||c0,Y),ke=c&&c.params||c0,Ie=this.buildStyles(o,ke,Y),Re=new Set,Xe=new Map,Ae=new Map,ct="void"===o,pn={params:hH(ke,q),delay:this.ast.options?.delay},Mn=P?[]:s0(t,e,this.ast.animation,s,a,fe,Ie,pn,M,Y);let Ar=0;if(Mn.forEach(ya=>{Ar=Math.max(ya.duration+ya.delay,Ar)}),Y.length)return FD(e,this._triggerName,i,o,ct,fe,Ie,[],[],Xe,Ae,Ar,Y);Mn.forEach(ya=>{const Ma=ya.element,fP=_o(Xe,Ma,new Set);ya.preStyleProps.forEach(Lc=>fP.add(Lc));const mp=_o(Ae,Ma,new Set);ya.postStyleProps.forEach(Lc=>mp.add(Lc)),Ma!==e&&Re.add(Ma)});const va=s_(Re.values());return FD(e,this._triggerName,i,o,ct,fe,Ie,Mn,va,Xe,Ae,Ar)}}function hH(n,t){const e=Kh(t);for(const i in n)n.hasOwnProperty(i)&&null!=n[i]&&(e[i]=n[i]);return e}class fH{constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){const i=new Map,o=Kh(this.defaultParams);return Object.keys(t).forEach(s=>{const a=t[s];null!==a&&(o[s]=a)}),this.styles.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,l)=>{a&&(a=Xh(a,o,e));const c=this.normalizer.normalizePropertyName(l,e);a=this.normalizer.normalizeStyleValue(l,c,a,e),i.set(l,a)})}),i}}class mH{constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new fH(o.style,o.options&&o.options.params||{},i))}),ND(this.states,"true","1"),ND(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new RD(t,o,this.states))}),this.fallbackTransition=function _H(n,t,e){return new RD(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[(a,l)=>!0],options:null,queryCount:0,depCount:0},t)}(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,o){return this.transitionFactories.find(a=>a.match(t,e,i,o))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function ND(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}const gH=new h_;class bH{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(t,e){const i=[],s=n0(this._driver,e,i,[]);if(i.length)throw function bB(n){return new Fe(3503,!1)}();this._animations.set(t,s)}_buildPlayer(t,e,i){const o=t.element,s=mD(0,this._normalizer,0,t.keyframes,e,i);return this._driver.animate(o,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const o=[],s=this._animations.get(t);let a;const l=new Map;if(s?(a=s0(this._driver,e,s,Xy,n_,new Map,new Map,i,gH,o),a.forEach(P=>{const Y=_o(l,P.element,new Map);P.postStyleProps.forEach(q=>Y.set(q,null))})):(o.push(function vB(){return new Fe(3300,!1)}()),a=[]),o.length)throw function yB(n){return new Fe(3504,!1)}();l.forEach((P,Y)=>{P.forEach((q,te)=>{P.set(te,this._driver.computeStyle(Y,te,ia))})});const M=za(a.map(P=>{const Y=l.get(P.element);return this._buildPlayer(P,new Map,Y)}));return this._playersById.set(t,M),M.onDestroy(()=>this.destroy(t)),this.players.push(M),M}destroy(t){const e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById.get(t);if(!e)throw function MB(n){return new Fe(3301,!1)}();return e}listen(t,e,i,o){const s=Gy(e,"","","");return Wy(this._getPlayer(t),i,s,o),()=>{}}command(t,e,i,o){if("register"==i)return void this.register(t,o[0]);if("create"==i)return void this.create(t,e,o[0]||{});const s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(t)}}}const YD="ng-animate-queued",d0="ng-animate-disabled",xH=[],BD={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},CH={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Fo="__ng_removed";class u0{constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=function TH(n){return n??null}(i?t.value:t),i){const s=Kh(t);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const Qh="void",h0=new u0(Qh);class kH{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,Ro(e,this._hostClassName)}listen(t,e,i,o){if(!this._triggers.has(e))throw function wB(n,t){return new Fe(3302,!1)}();if(null==i||0==i.length)throw function xB(n){return new Fe(3303,!1)}();if(!function LH(n){return"start"==n||"done"==n}(i))throw function CB(n,t){return new Fe(3400,!1)}();const s=_o(this._elementListeners,t,[]),a={name:e,phase:i,callback:o};s.push(a);const l=_o(this._engine.statesByElement,t,new Map);return l.has(e)||(Ro(t,i_),Ro(t,i_+"-"+e),l.set(e,h0)),()=>{this._engine.afterFlush(()=>{const c=s.indexOf(a);c>=0&&s.splice(c,1),this._triggers.has(e)||l.delete(e)})}}register(t,e){return!this._triggers.has(t)&&(this._triggers.set(t,e),!0)}_getTrigger(t){const e=this._triggers.get(t);if(!e)throw function kB(n){return new Fe(3401,!1)}();return e}trigger(t,e,i,o=!0){const s=this._getTrigger(e),a=new f0(this.id,e,t);let l=this._engine.statesByElement.get(t);l||(Ro(t,i_),Ro(t,i_+"-"+e),this._engine.statesByElement.set(t,l=new Map));let c=l.get(e);const M=new u0(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&c&&M.absorbOptions(c.options),l.set(e,M),c||(c=h0),M.value!==Qh&&c.value===M.value){if(!function PH(n,t){const e=Object.keys(n),i=Object.keys(t);if(e.length!=i.length)return!1;for(let o=0;o{Ul(t,Ie),Cs(t,Re)})}return}const q=_o(this._engine.playersByElement,t,[]);q.forEach(ke=>{ke.namespaceId==this.id&&ke.triggerName==e&&ke.queued&&ke.destroy()});let te=s.matchTransition(c.value,M.value,t,M.params),fe=!1;if(!te){if(!o)return;te=s.fallbackTransition,fe=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:te,fromState:c,toState:M,player:a,isFallbackTransition:fe}),fe||(Ro(t,YD),a.onStart(()=>{Fd(t,YD)})),a.onDone(()=>{let ke=this.players.indexOf(a);ke>=0&&this.players.splice(ke,1);const Ie=this._engine.playersByElement.get(t);if(Ie){let Re=Ie.indexOf(a);Re>=0&&Ie.splice(Re,1)}}),this.players.push(a),q.push(a),a}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,r_,!0);i.forEach(o=>{if(o[Fo])return;const s=this._engine.fetchNamespacesByElement(o);s.size?s.forEach(a=>a.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(t,e,i,o){const s=this._engine.statesByElement.get(t),a=new Map;if(s){const l=[];if(s.forEach((c,M)=>{if(a.set(M,c.value),this._triggers.has(M)){const P=this.trigger(t,M,Qh,o);P&&l.push(P)}}),l.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&za(l).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const o=new Set;e.forEach(s=>{const a=s.name;if(o.has(a))return;o.add(a);const c=this._triggers.get(a).fallbackTransition,M=i.get(a)||h0,P=new u0(Qh),Y=new f0(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:c,fromState:M,toState:P,player:Y,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let o=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)o=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(t),o)i.markElementAsRemoved(this.id,t,!1,e);else{const s=t[Fo];(!s||s===BD)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Ro(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const s=i.element,a=this._elementListeners.get(s);a&&a.forEach(l=>{if(l.name==i.triggerName){const c=Gy(s,i.triggerName,i.fromState.value,i.toState.value);c._data=t,Wy(i.player,l.phase,c,l.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const s=i.transition.ast.depCount,a=o.transition.ast.depCount;return 0==s||0==a?s-a:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(i=>i.element===t)||e,e}}class SH{constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,s)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){const i=new kH(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,l=this.driver.getParentElement(e);for(;l;){const c=o.get(l);if(c){const M=i.indexOf(c);i.splice(M+1,0,t),a=!0;break}l=this.driver.getParentElement(l)}a||i.unshift(t)}else i.push(t);return o.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let o=this._namespaceLookup[t];o&&o.register(e,i)&&this.totalAnimations++}destroy(t,e){if(!t)return;const i=this._fetchNamespace(t);this.afterFlush(()=>{this.namespacesByHostElement.delete(i.hostElement),delete this._namespaceLookup[t];const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1)}),this.afterFlushAnimationsDone(()=>i.destroy(e))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i)for(let o of i.values())if(o.namespaceId){const s=this._fetchNamespace(o.namespaceId);s&&e.add(s)}return e}trigger(t,e,i,o){if(m_(e)){const s=this._fetchNamespace(t);if(s)return s.trigger(e,i,o),!0}return!1}insertNode(t,e,i,o){if(!m_(e))return;const s=e[Fo];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(t){const a=this._fetchNamespace(t);a&&a.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Ro(t,d0)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Fd(t,d0))}removeNode(t,e,i,o){if(m_(e)){const s=t?this._fetchNamespace(t):null;if(s?s.removeNode(e,o):this.markElementAsRemoved(t,e,!1,o),i){const a=this.namespacesByHostElement.get(e);a&&a.id!==t&&a.removeNode(e,o)}}else this._onRemovalComplete(e,o)}markElementAsRemoved(t,e,i,o,s){this.collectedLeaveElements.push(e),e[Fo]={namespaceId:t,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,o,s){return m_(e)?this._fetchNamespace(t).listen(e,i,o,s):()=>{}}_buildInstruction(t,e,i,o,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,o,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,r_,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,Qy,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return za(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t[Fo];if(e&&e.setForRemoval){if(t[Fo]=BD,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(d0)&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?za(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(t){throw function SB(n){return new Fe(3402,!1)}()}_flushAnimations(t,e){const i=new h_,o=[],s=new Map,a=[],l=new Map,c=new Map,M=new Map,P=new Set;this.disabledNodes.forEach(mt=>{P.add(mt);const wt=this.driver.query(mt,".ng-animate-queued",!0);for(let Tt=0;Tt{const Tt=Xy+ke++;fe.set(wt,Tt),mt.forEach(mn=>Ro(mn,Tt))});const Ie=[],Re=new Set,Xe=new Set;for(let mt=0;mtRe.add(mn)):Xe.add(wt))}const Ae=new Map,ct=jD(q,Array.from(Re));ct.forEach((mt,wt)=>{const Tt=n_+ke++;Ae.set(wt,Tt),mt.forEach(mn=>Ro(mn,Tt))}),t.push(()=>{te.forEach((mt,wt)=>{const Tt=fe.get(wt);mt.forEach(mn=>Fd(mn,Tt))}),ct.forEach((mt,wt)=>{const Tt=Ae.get(wt);mt.forEach(mn=>Fd(mn,Tt))}),Ie.forEach(mt=>{this.processLeaveNode(mt)})});const pn=[],Mn=[];for(let mt=this._namespaceList.length-1;mt>=0;mt--)this._namespaceList[mt].drainQueuedTransitions(e).forEach(Tt=>{const mn=Tt.player,cr=Tt.element;if(pn.push(mn),this.collectedEnterElements.length){const Fr=cr[Fo];if(Fr&&Fr.setForMove){if(Fr.previousTriggersValues&&Fr.previousTriggersValues.has(Tt.triggerName)){const Ec=Fr.previousTriggersValues.get(Tt.triggerName),Vo=this.statesByElement.get(Tt.element);if(Vo&&Vo.has(Tt.triggerName)){const Yg=Vo.get(Tt.triggerName);Yg.value=Ec,Vo.set(Tt.triggerName,Yg)}}return void mn.destroy()}}const Ns=!Y||!this.driver.containsElement(Y,cr),Co=Ae.get(cr),ml=fe.get(cr),bi=this._buildInstruction(Tt,i,ml,Co,Ns);if(bi.errors&&bi.errors.length)return void Mn.push(bi);if(Ns)return mn.onStart(()=>Ul(cr,bi.fromStyles)),mn.onDestroy(()=>Cs(cr,bi.toStyles)),void o.push(mn);if(Tt.isFallbackTransition)return mn.onStart(()=>Ul(cr,bi.fromStyles)),mn.onDestroy(()=>Cs(cr,bi.toStyles)),void o.push(mn);const _P=[];bi.timelines.forEach(Fr=>{Fr.stretchStartingKeyframe=!0,this.disabledNodes.has(Fr.element)||_P.push(Fr)}),bi.timelines=_P,i.append(cr,bi.timelines),a.push({instruction:bi,player:mn,element:cr}),bi.queriedElements.forEach(Fr=>_o(l,Fr,[]).push(mn)),bi.preStyleProps.forEach((Fr,Ec)=>{if(Fr.size){let Vo=c.get(Ec);Vo||c.set(Ec,Vo=new Set),Fr.forEach((Yg,iM)=>Vo.add(iM))}}),bi.postStyleProps.forEach((Fr,Ec)=>{let Vo=M.get(Ec);Vo||M.set(Ec,Vo=new Set),Fr.forEach((Yg,iM)=>Vo.add(iM))})});if(Mn.length){const mt=[];Mn.forEach(wt=>{mt.push(function DB(n,t){return new Fe(3505,!1)}())}),pn.forEach(wt=>wt.destroy()),this.reportError(mt)}const Ar=new Map,va=new Map;a.forEach(mt=>{const wt=mt.element;i.has(wt)&&(va.set(wt,wt),this._beforeAnimationBuild(mt.player.namespaceId,mt.instruction,Ar))}),o.forEach(mt=>{const wt=mt.element;this._getPreviousPlayers(wt,!1,mt.namespaceId,mt.triggerName,null).forEach(mn=>{_o(Ar,wt,[]).push(mn),mn.destroy()})});const ya=Ie.filter(mt=>UD(mt,c,M)),Ma=new Map;VD(Ma,this.driver,Xe,M,ia).forEach(mt=>{UD(mt,c,M)&&ya.push(mt)});const mp=new Map;te.forEach((mt,wt)=>{VD(mp,this.driver,new Set(mt),c,"!")}),ya.forEach(mt=>{const wt=Ma.get(mt),Tt=mp.get(mt);Ma.set(mt,new Map([...Array.from(wt?.entries()??[]),...Array.from(Tt?.entries()??[])]))});const Lc=[],pP=[],mP={};a.forEach(mt=>{const{element:wt,player:Tt,instruction:mn}=mt;if(i.has(wt)){if(P.has(wt))return Tt.onDestroy(()=>Cs(wt,mn.toStyles)),Tt.disabled=!0,Tt.overrideTotalTime(mn.totalTime),void o.push(Tt);let cr=mP;if(va.size>1){let Co=wt;const ml=[];for(;Co=Co.parentNode;){const bi=va.get(Co);if(bi){cr=bi;break}ml.push(Co)}ml.forEach(bi=>va.set(bi,cr))}const Ns=this._buildAnimation(Tt.namespaceId,mn,Ar,s,mp,Ma);if(Tt.setRealPlayer(Ns),cr===mP)Lc.push(Tt);else{const Co=this.playersByElement.get(cr);Co&&Co.length&&(Tt.parentPlayer=za(Co)),o.push(Tt)}}else Ul(wt,mn.fromStyles),Tt.onDestroy(()=>Cs(wt,mn.toStyles)),pP.push(Tt),P.has(wt)&&o.push(Tt)}),pP.forEach(mt=>{const wt=s.get(mt.element);if(wt&&wt.length){const Tt=za(wt);mt.setRealPlayer(Tt)}}),o.forEach(mt=>{mt.parentPlayer?mt.syncPlayerEvents(mt.parentPlayer):mt.destroy()});for(let mt=0;mt!Ns.destroyed);cr.length?EH(this,wt,cr):this.processLeaveNode(wt)}return Ie.length=0,Lc.forEach(mt=>{this.players.push(mt),mt.onDone(()=>{mt.destroy();const wt=this.players.indexOf(mt);this.players.splice(wt,1)}),mt.play()}),Lc}elementContainsData(t,e){let i=!1;const o=e[Fo];return o&&o.setForRemoval&&(i=!0),this.playersByElement.has(e)&&(i=!0),this.playersByQueriedElement.has(e)&&(i=!0),this.statesByElement.has(e)&&(i=!0),this._fetchNamespace(t).elementContainsData(e)||i}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,o,s){let a=[];if(e){const l=this.playersByQueriedElement.get(t);l&&(a=l)}else{const l=this.playersByElement.get(t);if(l){const c=!s||s==Qh;l.forEach(M=>{M.queued||!c&&M.triggerName!=o||a.push(M)})}}return(i||o)&&(a=a.filter(l=>!(i&&i!=l.namespaceId||o&&o!=l.triggerName))),a}_beforeAnimationBuild(t,e,i){const s=e.element,a=e.isRemovalTransition?void 0:t,l=e.isRemovalTransition?void 0:e.triggerName;for(const c of e.timelines){const M=c.element,P=M!==s,Y=_o(i,M,[]);this._getPreviousPlayers(M,P,a,l,e.toState).forEach(te=>{const fe=te.getRealPlayer();fe.beforeDestroy&&fe.beforeDestroy(),te.destroy(),Y.push(te)})}Ul(s,e.fromStyles)}_buildAnimation(t,e,i,o,s,a){const l=e.triggerName,c=e.element,M=[],P=new Set,Y=new Set,q=e.timelines.map(fe=>{const ke=fe.element;P.add(ke);const Ie=ke[Fo];if(Ie&&Ie.removedBeforeQueried)return new qh(fe.duration,fe.delay);const Re=ke!==c,Xe=function IH(n){const t=[];return zD(n,t),t}((i.get(ke)||xH).map(Ar=>Ar.getRealPlayer())).filter(Ar=>!!Ar.element&&Ar.element===ke),Ae=s.get(ke),ct=a.get(ke),pn=mD(0,this._normalizer,0,fe.keyframes,Ae,ct),Mn=this._buildPlayer(fe,pn,Xe);if(fe.subTimeline&&o&&Y.add(ke),Re){const Ar=new f0(t,l,ke);Ar.setRealPlayer(Mn),M.push(Ar)}return Mn});M.forEach(fe=>{_o(this.playersByQueriedElement,fe.element,[]).push(fe),fe.onDone(()=>function DH(n,t,e){let i=n.get(t);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&n.delete(t)}return i}(this.playersByQueriedElement,fe.element,fe))}),P.forEach(fe=>Ro(fe,CD));const te=za(q);return te.onDestroy(()=>{P.forEach(fe=>Fd(fe,CD)),Cs(c,e.toStyles)}),Y.forEach(fe=>{_o(o,fe,[]).push(te)}),te}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new qh(t.duration,t.delay)}}class f0{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new qh,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>Wy(t,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){_o(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function m_(n){return n&&1===n.nodeType}function HD(n,t){const e=n.style.display;return n.style.display=t??"none",e}function VD(n,t,e,i,o){const s=[];e.forEach(c=>s.push(HD(c)));const a=[];i.forEach((c,M)=>{const P=new Map;c.forEach(Y=>{const q=t.computeStyle(M,Y,o);P.set(Y,q),(!q||0==q.length)&&(M[Fo]=CH,a.push(M))}),n.set(M,P)});let l=0;return e.forEach(c=>HD(c,s[l++])),a}function jD(n,t){const e=new Map;if(n.forEach(l=>e.set(l,[])),0==t.length)return e;const o=new Set(t),s=new Map;function a(l){if(!l)return 1;let c=s.get(l);if(c)return c;const M=l.parentNode;return c=e.has(M)?M:o.has(M)?1:a(M),s.set(l,c),c}return t.forEach(l=>{const c=a(l);1!==c&&e.get(c).push(l)}),e}function Ro(n,t){n.classList?.add(t)}function Fd(n,t){n.classList?.remove(t)}function EH(n,t,e){za(e).onDone(()=>n.processLeaveNode(t))}function zD(n,t){for(let e=0;eo.add(s)):t.set(n,i),e.delete(n),!0}class __{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,s)=>{},this._transitionEngine=new SH(t,e,i),this._timelineEngine=new bH(t,e,i),this._transitionEngine.onRemovalComplete=(o,s)=>this.onRemovalComplete(o,s)}registerTrigger(t,e,i,o,s){const a=t+"-"+o;let l=this._triggerCache[a];if(!l){const c=[],P=n0(this._driver,s,c,[]);if(c.length)throw function _B(n,t){return new Fe(3404,!1)}();l=function pH(n,t,e){return new mH(n,t,e)}(o,P,this._normalizer),this._triggerCache[a]=l}this._transitionEngine.registerTrigger(e,o,l)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,o){this._transitionEngine.insertNode(t,e,i,o)}onRemove(t,e,i,o){this._transitionEngine.removeNode(t,e,o||!1,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,o){if("@"==i.charAt(0)){const[s,a]=_D(i);this._timelineEngine.command(s,e,a,o)}else this._transitionEngine.trigger(t,e,i,o)}listen(t,e,i,o,s){if("@"==i.charAt(0)){const[a,l]=_D(i);return this._timelineEngine.listen(a,e,l,s)}return this._transitionEngine.listen(t,e,i,o,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}let AH=(()=>{class n{constructor(e,i,o){this._element=e,this._startStyles=i,this._endStyles=o,this._state=0;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&Cs(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Cs(this._element,this._initialStyles),this._endStyles&&(Cs(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(Ul(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Ul(this._element,this._endStyles),this._endStyles=null),Cs(this._element,this._initialStyles),this._state=3)}}return n.initialStylesByElement=new WeakMap,n})();function p0(n){let t=null;return n.forEach((e,i)=>{(function FH(n){return"display"===n||"position"===n})(i)&&(t=t||new Map,t.set(i,e))}),t}class WD{constructor(t,e,i,o){this.element=t,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:new Map,this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(t){const e=[];return t.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(t,e,i){return t.animate(this._convertKeyframesToObject(e),i)}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&t.set(o,this._finished?i:ED(this.element,o))}),this.currentSnapshot=t}triggerCallback(t){const e="start"===t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class RH{validateStyleProperty(t){return!0}validateAnimatableStyleProperty(t){return!0}matchesElement(t,e){return!1}containsElement(t,e){return yD(t,e)}getParentElement(t){return Ky(t)}query(t,e,i){return MD(t,e,i)}computeStyle(t,e,i){return window.getComputedStyle(t)[e]}animate(t,e,i,o,s,a=[]){const c={duration:i,delay:o,fill:0==o?"both":"forwards"};s&&(c.easing=s);const M=new Map,P=a.filter(te=>te instanceof WD);(function HB(n,t){return 0===n||0===t})(i,o)&&P.forEach(te=>{te.currentSnapshot.forEach((fe,ke)=>M.set(ke,fe))});let Y=function RB(n){return n.length?n[0]instanceof Map?n:n.map(t=>kD(t)):[]}(e).map(te=>Ua(te));Y=function VB(n,t,e){if(e.size&&t.length){let i=t[0],o=[];if(e.forEach((s,a)=>{i.has(a)||o.push(a),i.set(a,s)}),o.length)for(let s=1;sa.set(l,ED(n,l)))}}return t}(t,Y,M);const q=function OH(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=p0(t[0]),t.length>1&&(i=p0(t[t.length-1]))):t instanceof Map&&(e=p0(t)),e||i?new AH(n,e,i):null}(t,Y);return new WD(t,Y,c,q)}}let NH=(()=>{class n extends cD{constructor(e,i){super(),this._nextAnimationId=0,this._renderer=e.createRenderer(i.body,{id:"0",encapsulation:Rr.None,styles:[],data:{animation:[]}})}build(e){const i=this._nextAnimationId.toString();this._nextAnimationId++;const o=Array.isArray(e)?uD(e):e;return $D(this._renderer,null,i,"register",[o]),new YH(i,this._renderer)}}return n.\u0275fac=function(e){return new(e||n)(we(xh),we(St))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class YH extends qY{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new BH(this._id,t,e||{},this._renderer)}}class BH{constructor(t,e,i,o){this.id=t,this.element=e,this._renderer=o,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return $D(this._renderer,this.element,this.id,t,e)}onDone(t){this._listen("done",t)}onStart(t){this._listen("start",t)}onDestroy(t){this._listen("destroy",t)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(t){this._command("setPosition",t)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function $D(n,t,e,i,o){return n.setProperty(t,`@@${e}:${i}`,o)}const GD="@.disabled";let HH=(()=>{class n{constructor(e,i,o){this.delegate=e,this.engine=i,this._zone=o,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),i.onRemovalComplete=(s,a)=>{const l=a?.parentNode(s);l&&a.removeChild(l,s)}}createRenderer(e,i){const s=this.delegate.createRenderer(e,i);if(!(e&&i&&i.data&&i.data.animation)){let P=this._rendererCache.get(s);return P||(P=new qD("",s,this.engine,()=>this._rendererCache.delete(s)),this._rendererCache.set(s,P)),P}const a=i.id,l=i.id+"-"+this._currentId;this._currentId++,this.engine.register(l,e);const c=P=>{Array.isArray(P)?P.forEach(c):this.engine.registerTrigger(a,l,e,P.name,P)};return i.data.animation.forEach(c),new VH(this,l,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(e,i,o){e>=0&&ei(o)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[a,l]=s;a(l)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([i,o]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return n.\u0275fac=function(e){return new(e||n)(we(xh),we(__),we(pt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class qD{constructor(t,e,i,o){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=o,this.destroyNode=this.delegate.destroyNode?s=>e.destroyNode(s):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy(),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,o=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,o)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate,i)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,o){this.delegate.setAttribute(t,e,i,o)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,o){this.delegate.setStyle(t,e,i,o)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){"@"==e.charAt(0)&&e==GD?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class VH extends qD{constructor(t,e,i,o,s){super(e,i,o,s),this.factory=t,this.namespaceId=e}setProperty(t,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==GD?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if("@"==e.charAt(0)){const o=function jH(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(t);let s=e.slice(1),a="";return"@"!=s.charAt(0)&&([s,a]=function zH(n){const t=n.indexOf(".");return[n.substring(0,t),n.slice(t+1)]}(s)),this.engine.listen(this.namespaceId,o,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(t,e,i)}}let UH=(()=>{class n extends __{constructor(e,i,o,s){super(e.body,i,o)}ngOnDestroy(){this.flush()}}return n.\u0275fac=function(e){return new(e||n)(we(St),we(Zy),we(l0),we(Pd))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const KD=[{provide:cD,useClass:NH},{provide:l0,useFactory:function WH(){return new dH}},{provide:__,useClass:UH},{provide:xh,useFactory:function $H(n,t,e){return new HH(n,t,e)},deps:[t_,__,pt]}],m0=[{provide:Zy,useFactory:()=>new RH},{provide:Vi,useValue:"BrowserAnimations"},...KD],ZD=[{provide:Zy,useClass:wD},{provide:Vi,useValue:"NoopAnimations"},...KD];let GH=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?ZD:m0}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({providers:m0,imports:[rD]}),n})();function We(...n){let t=n[n.length-1];return Se(t)?(n.pop(),W(n,t)):Ln(n)}function Wa(n,t){return Ne(n,t,1)}function ki(n,t){return function(i){return i.lift(new qH(n,t))}}class qH{constructor(t,e){this.predicate=t,this.thisArg=e}call(t,e){return e.subscribe(new KH(t,this.predicate,this.thisArg))}}class KH extends A{constructor(t,e,i){super(t),this.predicate=e,this.thisArg=i,this.count=0}_next(t){let e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(i){return void this.destination.error(i)}e&&this.destination.next(t)}}class b_{}class _0{}class ks{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),s=o.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(o,s),this.headers.has(s)?this.headers.get(s).push(a):this.headers.set(s,[a])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let i=t[e];const o=e.toLowerCase();"string"==typeof i&&(i=[i]),i.length>0&&(this.headers.set(o,i),this.maybeSetNormalizedName(e,o))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof ks?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new ks;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof ks?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const o=("a"===t.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const s=t.value;if(s){let a=this.headers.get(e);if(!a)return;a=a.filter(l=>-1===s.indexOf(l)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class ZH{encodeKey(t){return XD(t)}encodeValue(t){return XD(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const QH=/%(\d[a-f0-9])/gi,JH={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function XD(n){return encodeURIComponent(n).replace(QH,(t,e)=>JH[e]??t)}function v_(n){return`${n}`}class $a{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new ZH,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function XH(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(o=>{const s=o.indexOf("="),[a,l]=-1==s?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,s)),t.decodeValue(o.slice(s+1))],c=e.get(a)||[];c.push(l),e.set(a,c)}),e}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e],o=Array.isArray(i)?i.map(v_):[v_(i)];this.map.set(e,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const o=t[i];Array.isArray(o)?o.forEach(s=>{e.push({param:i,value:s,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new $a({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(v_(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let i=this.map.get(t.param)||[];const o=i.indexOf(v_(t.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class eV{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function QD(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function JD(n){return typeof Blob<"u"&&n instanceof Blob}function eT(n){return typeof FormData<"u"&&n instanceof FormData}class Jh{constructor(t,e,i,o){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function tV(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,s=o):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params)),this.headers||(this.headers=new ks),this.context||(this.context=new eV),this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const l=e.indexOf("?");this.urlWithParams=e+(-1===l?"?":lY.set(q,t.setHeaders[q]),c)),t.setParams&&(M=Object.keys(t.setParams).reduce((Y,q)=>Y.set(q,t.setParams[q]),M)),new Jh(e,i,s,{params:M,headers:c,context:P,reportProgress:l,responseType:o,withCredentials:a})}}var Ui=(()=>((Ui=Ui||{})[Ui.Sent=0]="Sent",Ui[Ui.UploadProgress=1]="UploadProgress",Ui[Ui.ResponseHeader=2]="ResponseHeader",Ui[Ui.DownloadProgress=3]="DownloadProgress",Ui[Ui.Response=4]="Response",Ui[Ui.User=5]="User",Ui))();class g0{constructor(t,e=200,i="OK"){this.headers=t.headers||new ks,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class b0 extends g0{constructor(t={}){super(t),this.type=Ui.ResponseHeader}clone(t={}){return new b0({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class y_ extends g0{constructor(t={}){super(t),this.type=Ui.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new y_({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class tT extends g0{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function v0(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials}}let $l=(()=>{class n{constructor(e){this.handler=e}request(e,i,o={}){let s;if(e instanceof Jh)s=e;else{let c,M;c=o.headers instanceof ks?o.headers:new ks(o.headers),o.params&&(M=o.params instanceof $a?o.params:new $a({fromObject:o.params})),s=new Jh(e,i,void 0!==o.body?o.body:null,{headers:c,context:o.context,params:M,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials})}const a=We(s).pipe(Wa(c=>this.handler.handle(c)));if(e instanceof Jh||"events"===o.observe)return a;const l=a.pipe(ki(c=>c instanceof y_));switch(o.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(Ce(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return l.pipe(Ce(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return l.pipe(Ce(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return l.pipe(Ce(c=>c.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new $a).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,v0(o,i))}post(e,i,o={}){return this.request("POST",e,v0(o,i))}put(e,i,o={}){return this.request("PUT",e,v0(o,i))}}return n.\u0275fac=function(e){return new(e||n)(we(b_))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function nT(n,t){return t(n)}function iV(n,t){return(e,i)=>t.intercept(e,{handle:o=>n(o,i)})}const oV=new Be("HTTP_INTERCEPTORS"),ef=new Be("HTTP_INTERCEPTOR_FNS");function sV(){let n=null;return(t,e)=>(null===n&&(n=(Lt(oV,{optional:!0})??[]).reduceRight(iV,nT)),n(t,e))}let iT=(()=>{class n extends b_{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null}handle(e){if(null===this.chain){const i=Array.from(new Set(this.injector.get(ef)));this.chain=i.reduceRight((o,s)=>function rV(n,t,e){return(i,o)=>e.runInContext(()=>t(i,s=>n(s,o)))}(o,s,this.injector),nT)}return this.chain(e,i=>this.backend.handle(i))}}return n.\u0275fac=function(e){return new(e||n)(we(_0),we(gs))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const dV=/^\)\]\}',?\n/;let oT=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new ce(i=>{const o=this.xhrFactory.build();if(o.open(e.method,e.urlWithParams),e.withCredentials&&(o.withCredentials=!0),e.headers.forEach((te,fe)=>o.setRequestHeader(te,fe.join(","))),e.headers.has("Accept")||o.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const te=e.detectContentTypeHeader();null!==te&&o.setRequestHeader("Content-Type",te)}if(e.responseType){const te=e.responseType.toLowerCase();o.responseType="json"!==te?te:"text"}const s=e.serializeBody();let a=null;const l=()=>{if(null!==a)return a;const te=o.statusText||"OK",fe=new ks(o.getAllResponseHeaders()),ke=function uV(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(o)||e.url;return a=new b0({headers:fe,status:o.status,statusText:te,url:ke}),a},c=()=>{let{headers:te,status:fe,statusText:ke,url:Ie}=l(),Re=null;204!==fe&&(Re=typeof o.response>"u"?o.responseText:o.response),0===fe&&(fe=Re?200:0);let Xe=fe>=200&&fe<300;if("json"===e.responseType&&"string"==typeof Re){const Ae=Re;Re=Re.replace(dV,"");try{Re=""!==Re?JSON.parse(Re):null}catch(ct){Re=Ae,Xe&&(Xe=!1,Re={error:ct,text:Re})}}Xe?(i.next(new y_({body:Re,headers:te,status:fe,statusText:ke,url:Ie||void 0})),i.complete()):i.error(new tT({error:Re,headers:te,status:fe,statusText:ke,url:Ie||void 0}))},M=te=>{const{url:fe}=l(),ke=new tT({error:te,status:o.status||0,statusText:o.statusText||"Unknown Error",url:fe||void 0});i.error(ke)};let P=!1;const Y=te=>{P||(i.next(l()),P=!0);let fe={type:Ui.DownloadProgress,loaded:te.loaded};te.lengthComputable&&(fe.total=te.total),"text"===e.responseType&&!!o.responseText&&(fe.partialText=o.responseText),i.next(fe)},q=te=>{let fe={type:Ui.UploadProgress,loaded:te.loaded};te.lengthComputable&&(fe.total=te.total),i.next(fe)};return o.addEventListener("load",c),o.addEventListener("error",M),o.addEventListener("timeout",M),o.addEventListener("abort",M),e.reportProgress&&(o.addEventListener("progress",Y),null!==s&&o.upload&&o.upload.addEventListener("progress",q)),o.send(s),i.next({type:Ui.Sent}),()=>{o.removeEventListener("error",M),o.removeEventListener("abort",M),o.removeEventListener("load",c),o.removeEventListener("timeout",M),e.reportProgress&&(o.removeEventListener("progress",Y),null!==s&&o.upload&&o.upload.removeEventListener("progress",q)),o.readyState!==o.DONE&&o.abort()}})}}return n.\u0275fac=function(e){return new(e||n)(we(NS))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const y0=new Be("XSRF_ENABLED"),sT="XSRF-TOKEN",aT=new Be("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>sT}),lT="X-XSRF-TOKEN",cT=new Be("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>lT});class dT{}let hV=(()=>{class n{constructor(e,i,o){this.doc=e,this.platform=i,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=SS(e,this.cookieName),this.lastCookieString=e),this.lastToken}}return n.\u0275fac=function(e){return new(e||n)(we(St),we(Nm),we(aT))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function fV(n,t){const e=n.url.toLowerCase();if(!Lt(y0)||"GET"===n.method||"HEAD"===n.method||e.startsWith("http://")||e.startsWith("https://"))return t(n);const i=Lt(dT).getToken(),o=Lt(cT);return null!=i&&!n.headers.has(o)&&(n=n.clone({headers:n.headers.set(o,i)})),t(n)}var Oi=(()=>((Oi=Oi||{})[Oi.Interceptors=0]="Interceptors",Oi[Oi.LegacyInterceptors=1]="LegacyInterceptors",Oi[Oi.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",Oi[Oi.NoXsrfProtection=3]="NoXsrfProtection",Oi[Oi.JsonpSupport=4]="JsonpSupport",Oi[Oi.RequestsMadeViaParent=5]="RequestsMadeViaParent",Oi))();function Rd(n,t){return{\u0275kind:n,\u0275providers:t}}function pV(...n){const t=[$l,oT,iT,{provide:b_,useExisting:iT},{provide:_0,useExisting:oT},{provide:ef,useValue:fV,multi:!0},{provide:y0,useValue:!0},{provide:dT,useClass:hV}];for(const e of n)t.push(...e.\u0275providers);return function qO(n){return{\u0275providers:n}}(t)}const uT=new Be("LEGACY_INTERCEPTOR_FN");function _V({cookieName:n,headerName:t}){const e=[];return void 0!==n&&e.push({provide:aT,useValue:n}),void 0!==t&&e.push({provide:cT,useValue:t}),Rd(Oi.CustomXsrfConfiguration,e)}let gV=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({providers:[pV(Rd(Oi.LegacyInterceptors,[{provide:uT,useFactory:sV},{provide:ef,useExisting:uT,multi:!0}]),_V({cookieName:sT,headerName:lT}))]}),n})();class Er extends X{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return e&&!e.closed&&t.next(this._value),e}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new ee;return this._value}next(t){super.next(this._value=t)}}const M_=(()=>{function n(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return n.prototype=Object.create(Error.prototype),n})();class bV extends A{notifyNext(t,e,i,o,s){this.destination.next(e)}notifyError(t,e){this.destination.error(t)}notifyComplete(t){this.destination.complete()}}class vV extends A{constructor(t,e,i){super(),this.parent=t,this.outerValue=e,this.outerIndex=i,this.index=0}_next(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)}_error(t){this.parent.notifyError(t,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}function yV(n,t,e,i,o=new vV(n,e,i)){if(!o.closed)return t instanceof ce?t.subscribe(o):Li(t)(o)}const hT={};function M0(...n){let t,e;return Se(n[n.length-1])&&(e=n.pop()),"function"==typeof n[n.length-1]&&(t=n.pop()),1===n.length&&y(n[0])&&(n=n[0]),Ln(n,e).lift(new MV(t))}class MV{constructor(t){this.resultSelector=t}call(t,e){return e.subscribe(new wV(t,this.resultSelector))}}class wV extends bV{constructor(t,e){super(t),this.resultSelector=e,this.active=0,this.values=[],this.observables=[]}_next(t){this.values.push(hT),this.observables.push(t)}_complete(){const t=this.observables,e=t.length;if(0===e)this.destination.complete();else{this.active=e,this.toRespond=e;for(let i=0;in.complete());function w_(n){return n?function CV(n){return new ce(t=>n.schedule(()=>t.complete()))}(n):Ga}function tf(n){return new ce(t=>{let e;try{e=n()}catch(o){return void t.error(o)}return(e?de(e):w_()).subscribe(t)})}function Ir(n,t){return new ce(t?e=>t.schedule(kV,0,{error:n,subscriber:e}):e=>e.error(n))}function kV({error:n,subscriber:t}){t.error(n)}function gr(n,t){return"function"==typeof t?e=>e.pipe(gr((i,o)=>de(n(i,o)).pipe(Ce((s,a)=>t(i,s,o,a))))):e=>e.lift(new SV(n))}class SV{constructor(t){this.project=t}call(t,e){return e.subscribe(new DV(t,this.project))}}class DV extends Me{constructor(t,e){super(t),this.project=e,this.index=0}_next(t){let e;const i=this.index++;try{e=this.project(t,i)}catch(o){return void this.destination.error(o)}this._innerSub(e)}_innerSub(t){const e=this.innerSubscription;e&&e.unsubscribe();const i=new be(this),o=this.destination;o.add(i),this.innerSubscription=Ee(t,i),this.innerSubscription!==i&&o.add(this.innerSubscription)}_complete(){const{innerSubscription:t}=this;(!t||t.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(t){this.destination.next(t)}}const fT=(()=>{function n(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return n.prototype=Object.create(Error.prototype),n})();function ei(n){return t=>0===n?w_():t.lift(new TV(n))}class TV{constructor(t){if(this.total=t,this.total<0)throw new fT}call(t,e){return e.subscribe(new LV(t,this.total))}}class LV extends A{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){const e=this.total,i=++this.count;i<=e&&(this.destination.next(t),i===e&&(this.destination.complete(),this.unsubscribe()))}}function bo(...n){const t=n[n.length-1];return Se(t)?(n.pop(),e=>Gl(n,e,t)):e=>Gl(n,e)}function nf(n=null){return t=>t.lift(new EV(n))}class EV{constructor(t){this.defaultValue=t}call(t,e){return e.subscribe(new IV(t,this.defaultValue))}}class IV extends A{constructor(t,e){super(t),this.defaultValue=e,this.isEmpty=!0}_next(t){this.isEmpty=!1,this.destination.next(t)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}function pT(n=AV){return t=>t.lift(new PV(n))}class PV{constructor(t){this.errorFactory=t}call(t,e){return e.subscribe(new OV(t,this.errorFactory))}}class OV extends A{constructor(t,e){super(t),this.errorFactory=e,this.hasValue=!1}_next(t){this.hasValue=!0,this.destination.next(t)}_complete(){if(this.hasValue)return this.destination.complete();{let t;try{t=this.errorFactory()}catch(e){t=e}this.destination.error(t)}}}function AV(){return new M_}function qa(n,t){const e=arguments.length>=2;return i=>i.pipe(n?ki((o,s)=>n(o,s,i)):ve,ei(1),e?nf(t):pT(()=>new M_))}function Ka(){}function ui(n,t,e){return function(o){return o.lift(new FV(n,t,e))}}class FV{constructor(t,e,i){this.nextOrObserver=t,this.error=e,this.complete=i}call(t,e){return e.subscribe(new RV(t,this.nextOrObserver,this.error,this.complete))}}class RV extends A{constructor(t,e,i,o){super(t),this._tapNext=Ka,this._tapError=Ka,this._tapComplete=Ka,this._tapError=i||Ka,this._tapComplete=o||Ka,O(e)?(this._context=this,this._tapNext=e):e&&(this._context=e,this._tapNext=e.next||Ka,this._tapError=e.error||Ka,this._tapComplete=e.complete||Ka)}_next(t){try{this._tapNext.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.next(t)}_error(t){try{this._tapError.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.error(t)}_complete(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()}}function Jr(n){return function(e){const i=new NV(n),o=e.lift(i);return i.caught=o}}class NV{constructor(t){this.selector=t}call(t,e){return e.subscribe(new YV(t,this.selector,this.caught))}}class YV extends Me{constructor(t,e,i){super(t),this.selector=e,this.caught=i}error(t){if(!this.isStopped){let e;try{e=this.selector(t,this.caught)}catch(s){return void super.error(s)}this._unsubscribeAndRecycle();const i=new be(this);this.add(i);const o=Ee(e,i);o!==i&&this.add(o)}}}function x_(n,t){let e=!1;return arguments.length>=2&&(e=!0),function(o){return o.lift(new BV(n,t,e))}}class BV{constructor(t,e,i=!1){this.accumulator=t,this.seed=e,this.hasSeed=i}call(t,e){return e.subscribe(new HV(t,this.accumulator,this.seed,this.hasSeed))}}class HV extends A{constructor(t,e,i,o){super(t),this.accumulator=e,this._seed=i,this.hasSeed=o,this.index=0}get seed(){return this._seed}set seed(t){this.hasSeed=!0,this._seed=t}_next(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)}_tryNext(t){const e=this.index++;let i;try{i=this.accumulator(this.seed,t,e)}catch(o){this.destination.error(o)}this.seed=i,this.destination.next(i)}}function rf(n){return function(e){return 0===n?w_():e.lift(new VV(n))}}class VV{constructor(t){if(this.total=t,this.total<0)throw new fT}call(t,e){return e.subscribe(new jV(t,this.total))}}class jV extends A{constructor(t,e){super(t),this.total=e,this.ring=new Array,this.count=0}_next(t){const e=this.ring,i=this.total,o=this.count++;e.length0){const i=this.count>=this.total?this.total:this.count,o=this.ring;for(let s=0;s=2;return i=>i.pipe(n?ki((o,s)=>n(o,s,i)):ve,rf(1),e?nf(t):pT(()=>new M_))}function _T(n,t=!1){return e=>e.lift(new zV(n,t))}class zV{constructor(t,e){this.predicate=t,this.inclusive=e}call(t,e){return e.subscribe(new UV(t,this.predicate,this.inclusive))}}class UV extends A{constructor(t,e,i){super(t),this.predicate=e,this.inclusive=i,this.index=0}_next(t){const e=this.destination;let i;try{i=this.predicate(t,this.index++)}catch(o){return void e.error(o)}this.nextOrComplete(t,i)}nextOrComplete(t,e){const i=this.destination;Boolean(e)?i.next(t):(this.inclusive&&i.next(t),i.complete())}}class $V{constructor(t){this.value=t}call(t,e){return e.subscribe(new GV(t,this.value))}}class GV extends A{constructor(t,e){super(t),this.value=e}_next(t){this.destination.next(this.value)}}function C_(n){return t=>t.lift(new qV(n))}class qV{constructor(t){this.callback=t}call(t,e){return e.subscribe(new KV(t,this.callback))}}class KV extends A{constructor(t,e){super(t),this.add(new T(e))}}const $t="primary",sf=Symbol("RouteTitle");class ZV{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function Nd(n){return new ZV(n)}function XV(n,t,e){const i=e.path.split("/");if(i.length>n.length||"full"===e.pathMatch&&(t.hasChildren()||i.lengthi[s]===o)}return n===t}function bT(n){return Array.prototype.concat.apply([],n)}function vT(n){return n.length>0?n[n.length-1]:null}function br(n,t){for(const e in n)n.hasOwnProperty(e)&&t(n[e],e)}function Za(n){return Tv(n)?n:Lh(n)?de(Promise.resolve(n)):We(n)}const k_=!1,JV={exact:function wT(n,t,e){if(!Kl(n.segments,t.segments)||!S_(n.segments,t.segments,e)||n.numberOfChildren!==t.numberOfChildren)return!1;for(const i in t.children)if(!n.children[i]||!wT(n.children[i],t.children[i],e))return!1;return!0},subset:xT},yT={exact:function e8(n,t){return Ss(n,t)},subset:function t8(n,t){return Object.keys(t).length<=Object.keys(n).length&&Object.keys(t).every(e=>gT(n[e],t[e]))},ignored:()=>!0};function MT(n,t,e){return JV[e.paths](n.root,t.root,e.matrixParams)&&yT[e.queryParams](n.queryParams,t.queryParams)&&!("exact"===e.fragment&&n.fragment!==t.fragment)}function xT(n,t,e){return CT(n,t,t.segments,e)}function CT(n,t,e,i){if(n.segments.length>e.length){const o=n.segments.slice(0,e.length);return!(!Kl(o,e)||t.hasChildren()||!S_(o,e,i))}if(n.segments.length===e.length){if(!Kl(n.segments,e)||!S_(n.segments,e,i))return!1;for(const o in t.children)if(!n.children[o]||!xT(n.children[o],t.children[o],i))return!1;return!0}{const o=e.slice(0,n.segments.length),s=e.slice(n.segments.length);return!!(Kl(n.segments,o)&&S_(n.segments,o,i)&&n.children[$t])&&CT(n.children[$t],t,s,i)}}function S_(n,t,e){return t.every((i,o)=>yT[e](n[o].parameters,i.parameters))}class ql{constructor(t=new qt([],{}),e={},i=null){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Nd(this.queryParams)),this._queryParamMap}toString(){return r8.serialize(this)}}class qt{constructor(t,e){this.segments=t,this.children=e,this.parent=null,br(e,(i,o)=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return D_(this)}}class af{constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=Nd(this.parameters)),this._parameterMap}toString(){return DT(this)}}function Kl(n,t){return n.length===t.length&&n.every((e,i)=>e.path===t[i].path)}let lf=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return new w0},providedIn:"root"}),n})();class w0{parse(t){const e=new f8(t);return new ql(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){const e=`/${cf(t.root,!0)}`,i=function a8(n){const t=Object.keys(n).map(e=>{const i=n[e];return Array.isArray(i)?i.map(o=>`${T_(e)}=${T_(o)}`).join("&"):`${T_(e)}=${T_(i)}`}).filter(e=>!!e);return t.length?`?${t.join("&")}`:""}(t.queryParams),o="string"==typeof t.fragment?`#${function o8(n){return encodeURI(n)}(t.fragment)}`:"";return`${e}${i}${o}`}}const r8=new w0;function D_(n){return n.segments.map(t=>DT(t)).join("/")}function cf(n,t){if(!n.hasChildren())return D_(n);if(t){const e=n.children[$t]?cf(n.children[$t],!1):"",i=[];return br(n.children,(o,s)=>{s!==$t&&i.push(`${s}:${cf(o,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function i8(n,t){let e=[];return br(n.children,(i,o)=>{o===$t&&(e=e.concat(t(i,o)))}),br(n.children,(i,o)=>{o!==$t&&(e=e.concat(t(i,o)))}),e}(n,(i,o)=>o===$t?[cf(n.children[$t],!1)]:[`${o}:${cf(i,!1)}`]);return 1===Object.keys(n.children).length&&null!=n.children[$t]?`${D_(n)}/${e[0]}`:`${D_(n)}/(${e.join("//")})`}}function kT(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function T_(n){return kT(n).replace(/%3B/gi,";")}function x0(n){return kT(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function L_(n){return decodeURIComponent(n)}function ST(n){return L_(n.replace(/\+/g,"%20"))}function DT(n){return`${x0(n.path)}${function s8(n){return Object.keys(n).map(t=>`;${x0(t)}=${x0(n[t])}`).join("")}(n.parameters)}`}const l8=/^[^\/()?;=#]+/;function E_(n){const t=n.match(l8);return t?t[0]:""}const c8=/^[^=?&#]+/,u8=/^[^&#]+/;class f8{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new qt([],{}):new qt([],this.parseChildren())}parseQueryParams(){const t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(i[$t]=new qt(t,e)),i}parseSegment(){const t=E_(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Fe(4009,k_);return this.capture(t),new af(L_(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const e=E_(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=E_(this.remaining);o&&(i=o,this.capture(i))}t[L_(e)]=L_(i)}parseQueryParam(t){const e=function d8(n){const t=n.match(c8);return t?t[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const a=function h8(n){const t=n.match(u8);return t?t[0]:""}(this.remaining);a&&(i=a,this.capture(i))}const o=ST(e),s=ST(i);if(t.hasOwnProperty(o)){let a=t[o];Array.isArray(a)||(a=[a],t[o]=a),a.push(s)}else t[o]=s}parseParens(t){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=E_(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new Fe(4010,k_);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):t&&(s=$t);const a=this.parseChildren();e[s]=1===Object.keys(a).length?a[$t]:new qt([],a),this.consumeOptional("//")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)}capture(t){if(!this.consumeOptional(t))throw new Fe(4011,k_)}}function C0(n){return n.segments.length>0?new qt([],{[$t]:n}):n}function I_(n){const t={};for(const i of Object.keys(n.children)){const s=I_(n.children[i]);(s.segments.length>0||s.hasChildren())&&(t[i]=s)}return function p8(n){if(1===n.numberOfChildren&&n.children[$t]){const t=n.children[$t];return new qt(n.segments.concat(t.segments),t.children)}return n}(new qt(n.segments,t))}function Zl(n){return n instanceof ql}function g8(n,t,e,i,o){if(0===e.length)return Yd(t.root,t.root,t.root,i,o);const s=function ET(n){if("string"==typeof n[0]&&1===n.length&&"/"===n[0])return new LT(!0,0,n);let t=0,e=!1;const i=n.reduce((o,s,a)=>{if("object"==typeof s&&null!=s){if(s.outlets){const l={};return br(s.outlets,(c,M)=>{l[M]="string"==typeof c?c.split("/"):c}),[...o,{outlets:l}]}if(s.segmentPath)return[...o,s.segmentPath]}return"string"!=typeof s?[...o,s]:0===a?(s.split("/").forEach((l,c)=>{0==c&&"."===l||(0==c&&""===l?e=!0:".."===l?t++:""!=l&&o.push(l))}),o):[...o,s]},[]);return new LT(e,t,i)}(e);return s.toRoot()?Yd(t.root,t.root,new qt([],{}),i,o):function a(c){const M=function v8(n,t,e,i){if(n.isAbsolute)return new Bd(t.root,!0,0);if(-1===i)return new Bd(e,e===t.root,0);return function IT(n,t,e){let i=n,o=t,s=e;for(;s>o;){if(s-=o,i=i.parent,!i)throw new Fe(4005,!1);o=i.segments.length}return new Bd(i,!1,o-s)}(e,i+(df(n.commands[0])?0:1),n.numberOfDoubleDots)}(s,t,n.snapshot?._urlSegment,c),P=M.processChildren?hf(M.segmentGroup,M.index,s.commands):S0(M.segmentGroup,M.index,s.commands);return Yd(t.root,M.segmentGroup,P,i,o)}(n.snapshot?._lastPathIndex)}function df(n){return"object"==typeof n&&null!=n&&!n.outlets&&!n.segmentPath}function uf(n){return"object"==typeof n&&null!=n&&n.outlets}function Yd(n,t,e,i,o){let a,s={};i&&br(i,(c,M)=>{s[M]=Array.isArray(c)?c.map(P=>`${P}`):`${c}`}),a=n===t?e:TT(n,t,e);const l=C0(I_(a));return new ql(l,s,o)}function TT(n,t,e){const i={};return br(n.children,(o,s)=>{i[s]=o===t?e:TT(o,t,e)}),new qt(n.segments,i)}class LT{constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&df(i[0]))throw new Fe(4003,!1);const o=i.find(uf);if(o&&o!==vT(i))throw new Fe(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Bd{constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}}function S0(n,t,e){if(n||(n=new qt([],{})),0===n.segments.length&&n.hasChildren())return hf(n,t,e);const i=function M8(n,t,e){let i=0,o=t;const s={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return s;const a=n.segments[o],l=e[i];if(uf(l))break;const c=`${l}`,M=i0&&void 0===c)break;if(c&&M&&"object"==typeof M&&void 0===M.outlets){if(!OT(c,M,a))return s;i+=2}else{if(!OT(c,{},a))return s;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(n,t,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndex{"string"==typeof s&&(s=[s]),null!==s&&(o[a]=S0(n.children[a],t,s))}),br(n.children,(s,a)=>{void 0===i[a]&&(o[a]=s)}),new qt(n.segments,o)}}function D0(n,t,e){const i=n.segments.slice(0,t);let o=0;for(;o{"string"==typeof e&&(e=[e]),null!==e&&(t[i]=D0(new qt([],{}),0,e))}),t}function PT(n){const t={};return br(n,(e,i)=>t[i]=`${e}`),t}function OT(n,t,e){return n==e.path&&Ss(t,e.parameters)}class sa{constructor(t,e){this.id=t,this.url=e}}class T0 extends sa{constructor(t,e,i="imperative",o=null){super(t,e),this.type=0,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Xa extends sa{constructor(t,e,i){super(t,e),this.urlAfterRedirects=i,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class P_ extends sa{constructor(t,e,i,o){super(t,e),this.reason=i,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class AT extends sa{constructor(t,e,i,o){super(t,e),this.error=i,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class x8 extends sa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class C8 extends sa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class k8 extends sa{constructor(t,e,i,o,s){super(t,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=s,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class S8 extends sa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class D8 extends sa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class T8{constructor(t){this.route=t,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class L8{constructor(t){this.route=t,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class E8{constructor(t){this.snapshot=t,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class I8{constructor(t){this.snapshot=t,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class P8{constructor(t){this.snapshot=t,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class O8{constructor(t){this.snapshot=t,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class FT{constructor(t,e,i){this.routerEvent=t,this.position=e,this.anchor=i,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}let F8=(()=>{class n{createUrlTree(e,i,o,s,a,l){return g8(e||i.root,o,s,a,l)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),R8=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(t){return F8.\u0275fac(t)},providedIn:"root"}),n})();class RT{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){const e=L0(t,this._root);return e?e.children.map(i=>i.value):[]}firstChild(t){const e=L0(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){const e=E0(t,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return E0(t,this._root).map(e=>e.value)}}function L0(n,t){if(n===t.value)return t;for(const e of t.children){const i=L0(n,e);if(i)return i}return null}function E0(n,t){if(n===t.value)return[t];for(const e of t.children){const i=E0(n,e);if(i.length)return i.unshift(t),i}return[]}class aa{constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}}function Hd(n){const t={};return n&&n.children.forEach(e=>t[e.value.outlet]=e),t}class NT extends RT{constructor(t,e){super(t),this.snapshot=e,I0(this,t)}toString(){return this.snapshot.toString()}}function YT(n,t){const e=function N8(n,t){const a=new O_([],{},{},"",{},$t,t,null,n.root,-1,{});return new HT("",new aa(a,[]))}(n,t),i=new Er([new af("",{})]),o=new Er({}),s=new Er({}),a=new Er({}),l=new Er(""),c=new vr(i,o,a,l,s,$t,t,e.root);return c.snapshot=e.root,new NT(new aa(c,[]),e)}class vr{constructor(t,e,i,o,s,a,l,c){this.url=t,this.params=e,this.queryParams=i,this.fragment=o,this.data=s,this.outlet=a,this.component=l,this.title=this.data?.pipe(Ce(M=>M[sf]))??We(void 0),this._futureSnapshot=c}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(Ce(t=>Nd(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Ce(t=>Nd(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function BT(n,t="emptyOnly"){const e=n.pathFromRoot;let i=0;if("always"!==t)for(i=e.length-1;i>=1;){const o=e[i],s=e[i-1];if(o.routeConfig&&""===o.routeConfig.path)i--;else{if(s.component)break;i--}}return function Y8(n){return n.reduce((t,e)=>({params:{...t.params,...e.params},data:{...t.data,...e.data},resolve:{...e.data,...t.resolve,...e.routeConfig?.data,...e._resolvedData}}),{params:{},data:{},resolve:{}})}(e.slice(i))}class O_{constructor(t,e,i,o,s,a,l,c,M,P,Y){this.url=t,this.params=e,this.queryParams=i,this.fragment=o,this.data=s,this.outlet=a,this.component=l,this.routeConfig=c,this._urlSegment=M,this._lastPathIndex=P,this._resolve=Y}get title(){return this.data?.[sf]}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=Nd(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Nd(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class HT extends RT{constructor(t,e){super(e),this.url=t,I0(this,e)}toString(){return VT(this._root)}}function I0(n,t){t.value._routerState=n,t.children.forEach(e=>I0(n,e))}function VT(n){const t=n.children.length>0?` { ${n.children.map(VT).join(", ")} } `:"";return`${n.value}${t}`}function P0(n){if(n.snapshot){const t=n.snapshot,e=n._futureSnapshot;n.snapshot=e,Ss(t.queryParams,e.queryParams)||n.queryParams.next(e.queryParams),t.fragment!==e.fragment&&n.fragment.next(e.fragment),Ss(t.params,e.params)||n.params.next(e.params),function QV(n,t){if(n.length!==t.length)return!1;for(let e=0;eSs(e.parameters,t[i].parameters))}(n.url,t.url);return e&&!(!n.parent!=!t.parent)&&(!n.parent||O0(n.parent,t.parent))}function ff(n,t,e){if(e&&n.shouldReuseRoute(t.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=t.value;const o=function H8(n,t,e){return t.children.map(i=>{for(const o of e.children)if(n.shouldReuseRoute(i.value,o.value.snapshot))return ff(n,i,o);return ff(n,i)})}(n,t,e);return new aa(i,o)}{if(n.shouldAttach(t.value)){const s=n.retrieve(t.value);if(null!==s){const a=s.route;return a.value._futureSnapshot=t.value,a.children=t.children.map(l=>ff(n,l)),a}}const i=function V8(n){return new vr(new Er(n.url),new Er(n.params),new Er(n.queryParams),new Er(n.fragment),new Er(n.data),n.outlet,n.component,n)}(t.value),o=t.children.map(s=>ff(n,s));return new aa(i,o)}}const A0="ngNavigationCancelingError";function jT(n,t){const{redirectTo:e,navigationBehaviorOptions:i}=Zl(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=zT(!1,0,t);return o.url=e,o.navigationBehaviorOptions=i,o}function zT(n,t,e){const i=new Error("NavigationCancelingError: "+(n||""));return i[A0]=!0,i.cancellationCode=t,e&&(i.url=e),i}function UT(n){return WT(n)&&Zl(n.url)}function WT(n){return n&&n[A0]}class j8{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.injector=null,this.children=new pf,this.attachRef=null}}let pf=(()=>{class n{constructor(){this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new j8,this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const A_=!1;let F_=(()=>{class n{constructor(){this.activated=null,this._activatedRoute=null,this.name=$t,this.activateEvents=new ht,this.deactivateEvents=new ht,this.attachEvents=new ht,this.detachEvents=new ht,this.parentContexts=Lt(pf),this.location=Lt(Xi),this.changeDetector=Lt(di),this.environmentInjector=Lt(gs)}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Fe(4012,A_);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Fe(4012,A_);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Fe(4012,A_);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new Fe(4013,A_);this._activatedRoute=e;const o=this.location,a=e.snapshot.component,l=this.parentContexts.getOrCreateContext(this.name).children,c=new z8(e,l,o.injector);if(i&&function U8(n){return!!n.resolveComponentFactory}(i)){const M=i.resolveComponentFactory(a);this.activated=o.createComponent(M,o.length,c)}else this.activated=o.createComponent(a,{index:o.length,injector:c,environmentInjector:i??this.environmentInjector});this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[Gi]}),n})();class z8{constructor(t,e,i){this.route=t,this.childContexts=e,this.parent=i}get(t,e){return t===vr?this.route:t===pf?this.childContexts:this.parent.get(t,e)}}let F0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=qe({type:n,selectors:[["ng-component"]],standalone:!0,features:[zv],decls:1,vars:0,template:function(e,i){1&e&&xe(0,"router-outlet")},dependencies:[F_],encapsulation:2}),n})();function $T(n,t){return n.providers&&!n._injector&&(n._injector=Im(n.providers,t,`Route: ${n.path}`)),n._injector??t}function N0(n){const t=n.children&&n.children.map(N0),e=t?{...n,children:t}:{...n};return!e.component&&!e.loadComponent&&(t||e.loadChildren)&&e.outlet&&e.outlet!==$t&&(e.component=F0),e}function No(n){return n.outlet||$t}function GT(n,t){const e=n.filter(i=>No(i)===t);return e.push(...n.filter(i=>No(i)!==t)),e}function mf(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let t=n.parent;t;t=t.parent){const e=t.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class K8{constructor(t,e,i,o){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=o}activate(t){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),P0(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){const o=Hd(e);t.children.forEach(s=>{const a=s.value.outlet;this.deactivateRoutes(s,o[a],i),delete o[a]}),br(o,(s,a)=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(t,e,i){const o=t.value,s=e?e.value:null;if(o===s)if(o.component){const a=i.getContext(o.outlet);a&&this.deactivateChildRoutes(t,e,a.children)}else this.deactivateChildRoutes(t,e,i);else s&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){const i=e.getContext(t.value.outlet),o=i&&t.value.component?i.children:e,s=Hd(t);for(const a of Object.keys(s))this.deactivateRouteAndItsChildren(s[a],o);if(i&&i.outlet){const a=i.outlet.detach(),l=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:a,route:t,contexts:l})}}deactivateRouteAndOutlet(t,e){const i=e.getContext(t.value.outlet),o=i&&t.value.component?i.children:e,s=Hd(t);for(const a of Object.keys(s))this.deactivateRouteAndItsChildren(s[a],o);i&&i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated(),i.attachRef=null,i.resolver=null,i.route=null)}activateChildRoutes(t,e,i){const o=Hd(e);t.children.forEach(s=>{this.activateRoutes(s,o[s.value.outlet],i),this.forwardEvent(new O8(s.value.snapshot))}),t.children.length&&this.forwardEvent(new I8(t.value.snapshot))}activateRoutes(t,e,i){const o=t.value,s=e?e.value:null;if(P0(o),o===s)if(o.component){const a=i.getOrCreateContext(o.outlet);this.activateChildRoutes(t,e,a.children)}else this.activateChildRoutes(t,e,i);else if(o.component){const a=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const l=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),a.children.onOutletReAttached(l.contexts),a.attachRef=l.componentRef,a.route=l.route.value,a.outlet&&a.outlet.attach(l.componentRef,l.route.value),P0(l.route.value),this.activateChildRoutes(t,null,a.children)}else{const l=mf(o.snapshot),c=l?.get(Na)??null;a.attachRef=null,a.route=o,a.resolver=c,a.injector=l,a.outlet&&a.outlet.activateWith(o,a.injector),this.activateChildRoutes(t,null,a.children)}}else this.activateChildRoutes(t,null,i)}}class qT{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class R_{constructor(t,e){this.component=t,this.route=e}}function Z8(n,t,e){const i=n._root;return _f(i,t?t._root:null,e,[i.value])}function Vd(n,t){const e=Symbol(),i=t.get(n,e);return i===e?"function"!=typeof n||function jg(n){return null!==Pc(n)}(n)?t.get(n):n:i}function _f(n,t,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const s=Hd(t);return n.children.forEach(a=>{(function Q8(n,t,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const s=n.value,a=t?t.value:null,l=e?e.getContext(n.value.outlet):null;if(a&&s.routeConfig===a.routeConfig){const c=function J8(n,t,e){if("function"==typeof e)return e(n,t);switch(e){case"pathParamsChange":return!Kl(n.url,t.url);case"pathParamsOrQueryParamsChange":return!Kl(n.url,t.url)||!Ss(n.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!O0(n,t)||!Ss(n.queryParams,t.queryParams);default:return!O0(n,t)}}(a,s,s.routeConfig.runGuardsAndResolvers);c?o.canActivateChecks.push(new qT(i)):(s.data=a.data,s._resolvedData=a._resolvedData),_f(n,t,s.component?l?l.children:null:e,i,o),c&&l&&l.outlet&&l.outlet.isActivated&&o.canDeactivateChecks.push(new R_(l.outlet.component,a))}else a&&gf(t,l,o),o.canActivateChecks.push(new qT(i)),_f(n,null,s.component?l?l.children:null:e,i,o)})(a,s[a.value.outlet],e,i.concat([a.value]),o),delete s[a.value.outlet]}),br(s,(a,l)=>gf(a,e.getContext(l),o)),o}function gf(n,t,e){const i=Hd(n),o=n.value;br(i,(s,a)=>{gf(s,o.component?t?t.children.getContext(a):null:t,e)}),e.canDeactivateChecks.push(new R_(o.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,o))}function bf(n){return"function"==typeof n}function Y0(n){return n instanceof M_||"EmptyError"===n?.name}const N_=Symbol("INITIAL_VALUE");function jd(){return gr(n=>M0(n.map(t=>t.pipe(ei(1),bo(N_)))).pipe(Ce(t=>{for(const e of t)if(!0!==e){if(e===N_)return N_;if(!1===e||e instanceof ql)return e}return!0}),ki(t=>t!==N_),ei(1)))}function KT(n){return Z(ui(t=>{if(Zl(t))throw jT(0,t)}),Ce(t=>!0===t))}const B0={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function ZT(n,t,e,i,o){const s=H0(n,t,e);return s.matched?function _6(n,t,e,i){const o=t.canMatch;return o&&0!==o.length?We(o.map(a=>{const l=Vd(a,n);return Za(function o6(n){return n&&bf(n.canMatch)}(l)?l.canMatch(t,e):n.runInContext(()=>l(t,e)))})).pipe(jd(),KT()):We(!0)}(i=$T(t,i),t,e).pipe(Ce(a=>!0===a?s:{...B0})):We(s)}function H0(n,t,e){if(""===t.path)return"full"===t.pathMatch&&(n.hasChildren()||e.length>0)?{...B0}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(t.matcher||XV)(e,n,t);if(!o)return{...B0};const s={};br(o.posParams,(l,c)=>{s[c]=l.path});const a=o.consumed.length>0?{...s,...o.consumed[o.consumed.length-1].parameters}:s;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:a,positionalParamSegments:o.posParams??{}}}function Y_(n,t,e,i){if(e.length>0&&function v6(n,t,e){return e.some(i=>B_(n,t,i)&&No(i)!==$t)}(n,e,i)){const s=new qt(t,function b6(n,t,e,i){const o={};o[$t]=i,i._sourceSegment=n,i._segmentIndexShift=t.length;for(const s of e)if(""===s.path&&No(s)!==$t){const a=new qt([],{});a._sourceSegment=n,a._segmentIndexShift=t.length,o[No(s)]=a}return o}(n,t,i,new qt(e,n.children)));return s._sourceSegment=n,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:[]}}if(0===e.length&&function y6(n,t,e){return e.some(i=>B_(n,t,i))}(n,e,i)){const s=new qt(n.segments,function g6(n,t,e,i,o){const s={};for(const a of i)if(B_(n,e,a)&&!o[No(a)]){const l=new qt([],{});l._sourceSegment=n,l._segmentIndexShift=t.length,s[No(a)]=l}return{...o,...s}}(n,t,e,i,n.children));return s._sourceSegment=n,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:e}}const o=new qt(n.segments,n.children);return o._sourceSegment=n,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:e}}function B_(n,t,e){return(!(n.hasChildren()||t.length>0)||"full"!==e.pathMatch)&&""===e.path}function XT(n,t,e,i){return!!(No(n)===i||i!==$t&&B_(t,e,n))&&("**"===n.path||H0(t,n,e).matched)}function QT(n,t,e){return 0===t.length&&!n.children[e]}const H_=!1;class V_{constructor(t){this.segmentGroup=t||null}}class JT{constructor(t){this.urlTree=t}}function vf(n){return Ir(new V_(n))}function e2(n){return Ir(new JT(n))}class C6{constructor(t,e,i,o,s){this.injector=t,this.configLoader=e,this.urlSerializer=i,this.urlTree=o,this.config=s,this.allowRedirects=!0}apply(){const t=Y_(this.urlTree.root,[],[],this.config).segmentGroup,e=new qt(t.segments,t.children);return this.expandSegmentGroup(this.injector,this.config,e,$t).pipe(Ce(s=>this.createUrlTree(I_(s),this.urlTree.queryParams,this.urlTree.fragment))).pipe(Jr(s=>{if(s instanceof JT)return this.allowRedirects=!1,this.match(s.urlTree);throw s instanceof V_?this.noMatchError(s):s}))}match(t){return this.expandSegmentGroup(this.injector,this.config,t.root,$t).pipe(Ce(o=>this.createUrlTree(I_(o),t.queryParams,t.fragment))).pipe(Jr(o=>{throw o instanceof V_?this.noMatchError(o):o}))}noMatchError(t){return new Fe(4002,H_)}createUrlTree(t,e,i){const o=C0(t);return new ql(o,e,i)}expandSegmentGroup(t,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.expandChildren(t,e,i).pipe(Ce(s=>new qt([],s))):this.expandSegment(t,i,e,i.segments,o,!0)}expandChildren(t,e,i){const o=[];for(const s of Object.keys(i.children))"primary"===s?o.unshift(s):o.push(s);return de(o).pipe(Wa(s=>{const a=i.children[s],l=GT(e,s);return this.expandSegmentGroup(t,l,a,s).pipe(Ce(c=>({segment:c,outlet:s})))}),x_((s,a)=>(s[a.outlet]=a.segment,s),{}),mT())}expandSegment(t,e,i,o,s,a){return de(i).pipe(Wa(l=>this.expandSegmentAgainstRoute(t,e,i,l,o,s,a).pipe(Jr(M=>{if(M instanceof V_)return We(null);throw M}))),qa(l=>!!l),Jr((l,c)=>{if(Y0(l))return QT(e,o,s)?We(new qt([],{})):vf(e);throw l}))}expandSegmentAgainstRoute(t,e,i,o,s,a,l){return XT(o,e,s,a)?void 0===o.redirectTo?this.matchSegmentAgainstRoute(t,e,o,s,a):l&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a):vf(e):vf(e)}expandSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,i,o,a):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,e,i,o){const s=this.applyRedirectCommands([],i.redirectTo,{});return i.redirectTo.startsWith("/")?e2(s):this.lineralizeSegments(i,s).pipe(Ne(a=>{const l=new qt(a,{});return this.expandSegment(t,l,e,a,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a){const{matched:l,consumedSegments:c,remainingSegments:M,positionalParamSegments:P}=H0(e,o,s);if(!l)return vf(e);const Y=this.applyRedirectCommands(c,o.redirectTo,P);return o.redirectTo.startsWith("/")?e2(Y):this.lineralizeSegments(o,Y).pipe(Ne(q=>this.expandSegment(t,e,i,q.concat(M),a,!1)))}matchSegmentAgainstRoute(t,e,i,o,s){return"**"===i.path?(t=$T(i,t),i.loadChildren?(i._loadedRoutes?We({routes:i._loadedRoutes,injector:i._loadedInjector}):this.configLoader.loadChildren(t,i)).pipe(Ce(l=>(i._loadedRoutes=l.routes,i._loadedInjector=l.injector,new qt(o,{})))):We(new qt(o,{}))):ZT(e,i,o,t).pipe(gr(({matched:a,consumedSegments:l,remainingSegments:c})=>a?this.getChildConfig(t=i._injector??t,i,o).pipe(Ne(P=>{const Y=P.injector??t,q=P.routes,{segmentGroup:te,slicedSegments:fe}=Y_(e,l,c,q),ke=new qt(te.segments,te.children);if(0===fe.length&&ke.hasChildren())return this.expandChildren(Y,q,ke).pipe(Ce(Ae=>new qt(l,Ae)));if(0===q.length&&0===fe.length)return We(new qt(l,{}));const Ie=No(i)===s;return this.expandSegment(Y,ke,q,fe,Ie?$t:s,!0).pipe(Ce(Xe=>new qt(l.concat(Xe.segments),Xe.children)))})):vf(e)))}getChildConfig(t,e,i){return e.children?We({routes:e.children,injector:t}):e.loadChildren?void 0!==e._loadedRoutes?We({routes:e._loadedRoutes,injector:e._loadedInjector}):function m6(n,t,e,i){const o=t.canLoad;return void 0===o||0===o.length?We(!0):We(o.map(a=>{const l=Vd(a,n);return Za(function t6(n){return n&&bf(n.canLoad)}(l)?l.canLoad(t,e):n.runInContext(()=>l(t,e)))})).pipe(jd(),KT())}(t,e,i).pipe(Ne(o=>o?this.configLoader.loadChildren(t,e).pipe(ui(s=>{e._loadedRoutes=s.routes,e._loadedInjector=s.injector})):function w6(n){return Ir(zT(H_,3))}())):We({routes:[],injector:t})}lineralizeSegments(t,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return We(i);if(o.numberOfChildren>1||!o.children[$t])return Ir(new Fe(4e3,H_));o=o.children[$t]}}applyRedirectCommands(t,e,i){return this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),t,i)}applyRedirectCreateUrlTree(t,e,i,o){const s=this.createSegmentGroup(t,e.root,i,o);return new ql(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){const i={};return br(t,(o,s)=>{if("string"==typeof o&&o.startsWith(":")){const l=o.substring(1);i[s]=e[l]}else i[s]=o}),i}createSegmentGroup(t,e,i,o){const s=this.createSegments(t,e.segments,i,o);let a={};return br(e.children,(l,c)=>{a[c]=this.createSegmentGroup(t,l,i,o)}),new qt(s,a)}createSegments(t,e,i,o){return e.map(s=>s.path.startsWith(":")?this.findPosParam(t,s,o):this.findOrReturn(s,i))}findPosParam(t,e,i){const o=i[e.path.substring(1)];if(!o)throw new Fe(4001,H_);return o}findOrReturn(t,e){let i=0;for(const o of e){if(o.path===t.path)return e.splice(i),o;i++}return t}}class S6{}class L6{constructor(t,e,i,o,s,a,l){this.injector=t,this.rootComponentType=e,this.config=i,this.urlTree=o,this.url=s,this.paramsInheritanceStrategy=a,this.urlSerializer=l}recognize(){const t=Y_(this.urlTree.root,[],[],this.config.filter(e=>void 0===e.redirectTo)).segmentGroup;return this.processSegmentGroup(this.injector,this.config,t,$t).pipe(Ce(e=>{if(null===e)return null;const i=new O_([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},$t,this.rootComponentType,null,this.urlTree.root,-1,{}),o=new aa(i,e),s=new HT(this.url,o);return this.inheritParamsAndData(s._root),s}))}inheritParamsAndData(t){const e=t.value,i=BT(e,this.paramsInheritanceStrategy);e.params=Object.freeze(i.params),e.data=Object.freeze(i.data),t.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(t,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.processChildren(t,e,i):this.processSegment(t,e,i,i.segments,o)}processChildren(t,e,i){return de(Object.keys(i.children)).pipe(Wa(o=>{const s=i.children[o],a=GT(e,o);return this.processSegmentGroup(t,a,s,o)}),x_((o,s)=>o&&s?(o.push(...s),o):null),_T(o=>null!==o),nf(null),mT(),Ce(o=>{if(null===o)return null;const s=n2(o);return function E6(n){n.sort((t,e)=>t.value.outlet===$t?-1:e.value.outlet===$t?1:t.value.outlet.localeCompare(e.value.outlet))}(s),s}))}processSegment(t,e,i,o,s){return de(e).pipe(Wa(a=>this.processSegmentAgainstRoute(a._injector??t,a,i,o,s)),qa(a=>!!a),Jr(a=>{if(Y0(a))return QT(i,o,s)?We([]):We(null);throw a}))}processSegmentAgainstRoute(t,e,i,o,s){if(e.redirectTo||!XT(e,i,o,s))return We(null);let a;if("**"===e.path){const l=o.length>0?vT(o).parameters:{},c=o2(i)+o.length;a=We({snapshot:new O_(o,l,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,s2(e),No(e),e.component??e._loadedComponent??null,e,r2(i),c,a2(e)),consumedSegments:[],remainingSegments:[]})}else a=ZT(i,e,o,t).pipe(Ce(({matched:l,consumedSegments:c,remainingSegments:M,parameters:P})=>{if(!l)return null;const Y=o2(i)+c.length;return{snapshot:new O_(c,P,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,s2(e),No(e),e.component??e._loadedComponent??null,e,r2(i),Y,a2(e)),consumedSegments:c,remainingSegments:M}}));return a.pipe(gr(l=>{if(null===l)return We(null);const{snapshot:c,consumedSegments:M,remainingSegments:P}=l;t=e._injector??t;const Y=e._loadedInjector??t,q=function I6(n){return n.children?n.children:n.loadChildren?n._loadedRoutes:[]}(e),{segmentGroup:te,slicedSegments:fe}=Y_(i,M,P,q.filter(Ie=>void 0===Ie.redirectTo));if(0===fe.length&&te.hasChildren())return this.processChildren(Y,q,te).pipe(Ce(Ie=>null===Ie?null:[new aa(c,Ie)]));if(0===q.length&&0===fe.length)return We([new aa(c,[])]);const ke=No(e)===s;return this.processSegment(Y,q,te,fe,ke?$t:s).pipe(Ce(Ie=>null===Ie?null:[new aa(c,Ie)]))}))}}function P6(n){const t=n.value.routeConfig;return t&&""===t.path&&void 0===t.redirectTo}function n2(n){const t=[],e=new Set;for(const i of n){if(!P6(i)){t.push(i);continue}const o=t.find(s=>i.value.routeConfig===s.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):t.push(i)}for(const i of e){const o=n2(i.children);t.push(new aa(i.value,o))}return t.filter(i=>!e.has(i))}function r2(n){let t=n;for(;t._sourceSegment;)t=t._sourceSegment;return t}function o2(n){let t=n,e=t._segmentIndexShift??0;for(;t._sourceSegment;)t=t._sourceSegment,e+=t._segmentIndexShift??0;return e-1}function s2(n){return n.data||{}}function a2(n){return n.resolve||{}}function l2(n){return"string"==typeof n.title||null===n.title}function V0(n){return gr(t=>{const e=n(t);return e?de(e).pipe(Ce(()=>t)):We(t)})}const zd=new Be("ROUTES");let j0=(()=>{class n{constructor(e,i){this.injector=e,this.compiler=i,this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return We(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=Za(e.loadComponent()).pipe(Ce(d2),ui(s=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=s}),C_(()=>{this.componentLoaders.delete(e)})),o=new Gr(i,()=>new X).pipe(jt());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return We({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const s=this.loadModuleFactoryOrRoutes(i.loadChildren).pipe(Ce(l=>{this.onLoadEndListener&&this.onLoadEndListener(i);let c,M,P=!1;Array.isArray(l)?M=l:(c=l.create(e).injector,M=bT(c.get(zd,[],Mt.Self|Mt.Optional)));return{routes:M.map(N0),injector:c}}),C_(()=>{this.childrenLoaders.delete(i)})),a=new Gr(s,()=>new X).pipe(jt());return this.childrenLoaders.set(i,a),a}loadModuleFactoryOrRoutes(e){return Za(e()).pipe(Ce(d2),Ne(o=>o instanceof XC||Array.isArray(o)?We(o):de(this.compiler.compileModuleAsync(o))))}}return n.\u0275fac=function(e){return new(e||n)(we(mi),we(Bk))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function d2(n){return function V6(n){return n&&"object"==typeof n&&"default"in n}(n)?n.default:n}let z0=(()=>{class n{constructor(){this.currentNavigation=null,this.lastSuccessfulNavigation=null,this.events=new X,this.configLoader=Lt(j0),this.environmentInjector=Lt(gs),this.urlSerializer=Lt(lf),this.rootContexts=Lt(pf),this.navigationId=0,this.configLoader.onLoadEndListener=o=>this.events.next(new L8(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new T8(o))}get hasRequestedNavigation(){return 0!==this.navigationId}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e){return this.transitions=new Er({id:0,targetPageId:0,currentUrlTree:e.currentUrlTree,currentRawUrl:e.currentUrlTree,extractedUrl:e.urlHandlingStrategy.extract(e.currentUrlTree),urlAfterRedirects:e.urlHandlingStrategy.extract(e.currentUrlTree),rawUrl:e.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:e.routerState.snapshot,targetSnapshot:null,currentRouterState:e.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(ki(i=>0!==i.id),Ce(i=>({...i,extractedUrl:e.urlHandlingStrategy.extract(i.rawUrl)})),gr(i=>{let o=!1,s=!1;return We(i).pipe(ui(a=>{this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),gr(a=>{const l=e.browserUrlTree.toString(),c=!e.navigated||a.extractedUrl.toString()!==l||l!==e.currentUrlTree.toString();if(("reload"===e.onSameUrlNavigation||c)&&e.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return h2(a.source)&&(e.browserUrlTree=a.extractedUrl),We(a).pipe(gr(P=>{const Y=this.transitions?.getValue();return this.events.next(new T0(P.id,this.urlSerializer.serialize(P.extractedUrl),P.source,P.restoredState)),Y!==this.transitions?.getValue()?Ga:Promise.resolve(P)}),function k6(n,t,e,i){return gr(o=>function x6(n,t,e,i,o){return new C6(n,t,e,i,o).apply()}(n,t,e,o.extractedUrl,i).pipe(Ce(s=>({...o,urlAfterRedirects:s}))))}(this.environmentInjector,this.configLoader,this.urlSerializer,e.config),ui(P=>{this.currentNavigation={...this.currentNavigation,finalUrl:P.urlAfterRedirects},i.urlAfterRedirects=P.urlAfterRedirects}),function A6(n,t,e,i,o){return Ne(s=>function T6(n,t,e,i,o,s,a="emptyOnly"){return new L6(n,t,e,i,o,a,s).recognize().pipe(gr(l=>null===l?function D6(n){return new ce(t=>t.error(n))}(new S6):We(l)))}(n,t,e,s.urlAfterRedirects,i.serialize(s.urlAfterRedirects),i,o).pipe(Ce(a=>({...s,targetSnapshot:a}))))}(this.environmentInjector,e.rootComponentType,e.config,this.urlSerializer,e.paramsInheritanceStrategy),ui(P=>{if(i.targetSnapshot=P.targetSnapshot,"eager"===e.urlUpdateStrategy){if(!P.extras.skipLocationChange){const q=e.urlHandlingStrategy.merge(P.urlAfterRedirects,P.rawUrl);e.setBrowserUrl(q,P)}e.browserUrlTree=P.urlAfterRedirects}const Y=new x8(P.id,this.urlSerializer.serialize(P.extractedUrl),this.urlSerializer.serialize(P.urlAfterRedirects),P.targetSnapshot);this.events.next(Y)}));if(c&&e.rawUrlTree&&e.urlHandlingStrategy.shouldProcessUrl(e.rawUrlTree)){const{id:Y,extractedUrl:q,source:te,restoredState:fe,extras:ke}=a,Ie=new T0(Y,this.urlSerializer.serialize(q),te,fe);this.events.next(Ie);const Re=YT(q,e.rootComponentType).snapshot;return We(i={...a,targetSnapshot:Re,urlAfterRedirects:q,extras:{...ke,skipLocationChange:!1,replaceUrl:!1}})}return e.rawUrlTree=a.rawUrl,a.resolve(null),Ga}),ui(a=>{const l=new C8(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(l)}),Ce(a=>i={...a,guards:Z8(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),function a6(n,t){return Ne(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:s,canDeactivateChecks:a}}=e;return 0===a.length&&0===s.length?We({...e,guardsResult:!0}):function l6(n,t,e,i){return de(n).pipe(Ne(o=>function p6(n,t,e,i,o){const s=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return s&&0!==s.length?We(s.map(l=>{const c=mf(t)??o,M=Vd(l,c);return Za(function r6(n){return n&&bf(n.canDeactivate)}(M)?M.canDeactivate(n,t,e,i):c.runInContext(()=>M(n,t,e,i))).pipe(qa())})).pipe(jd()):We(!0)}(o.component,o.route,e,t,i)),qa(o=>!0!==o,!0))}(a,i,o,n).pipe(Ne(l=>l&&function e6(n){return"boolean"==typeof n}(l)?function c6(n,t,e,i){return de(t).pipe(Wa(o=>Gl(function u6(n,t){return null!==n&&t&&t(new E8(n)),We(!0)}(o.route.parent,i),function d6(n,t){return null!==n&&t&&t(new P8(n)),We(!0)}(o.route,i),function f6(n,t,e){const i=t[t.length-1],s=t.slice(0,t.length-1).reverse().map(a=>function X8(n){const t=n.routeConfig?n.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:n,guards:t}:null}(a)).filter(a=>null!==a).map(a=>tf(()=>We(a.guards.map(c=>{const M=mf(a.node)??e,P=Vd(c,M);return Za(function i6(n){return n&&bf(n.canActivateChild)}(P)?P.canActivateChild(i,n):M.runInContext(()=>P(i,n))).pipe(qa())})).pipe(jd())));return We(s).pipe(jd())}(n,o.path,e),function h6(n,t,e){const i=t.routeConfig?t.routeConfig.canActivate:null;if(!i||0===i.length)return We(!0);const o=i.map(s=>tf(()=>{const a=mf(t)??e,l=Vd(s,a);return Za(function n6(n){return n&&bf(n.canActivate)}(l)?l.canActivate(t,n):a.runInContext(()=>l(t,n))).pipe(qa())}));return We(o).pipe(jd())}(n,o.route,e))),qa(o=>!0!==o,!0))}(i,s,n,t):We(l)),Ce(l=>({...e,guardsResult:l})))})}(this.environmentInjector,a=>this.events.next(a)),ui(a=>{if(i.guardsResult=a.guardsResult,Zl(a.guardsResult))throw jT(0,a.guardsResult);const l=new k8(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.events.next(l)}),ki(a=>!!a.guardsResult||(e.restoreHistory(a),this.cancelNavigationTransition(a,"",3,e),!1)),V0(a=>{if(a.guards.canActivateChecks.length)return We(a).pipe(ui(l=>{const c=new S8(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(c)}),gr(l=>{let c=!1;return We(l).pipe(function F6(n,t){return Ne(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return We(e);let s=0;return de(o).pipe(Wa(a=>function R6(n,t,e,i){const o=n.routeConfig,s=n._resolve;return void 0!==o?.title&&!l2(o)&&(s[sf]=o.title),function N6(n,t,e,i){const o=function Y6(n){return[...Object.keys(n),...Object.getOwnPropertySymbols(n)]}(n);if(0===o.length)return We({});const s={};return de(o).pipe(Ne(a=>function B6(n,t,e,i){const o=mf(t)??i,s=Vd(n,o);return Za(s.resolve?s.resolve(t,e):o.runInContext(()=>s(t,e)))}(n[a],t,e,i).pipe(qa(),ui(l=>{s[a]=l}))),rf(1),function WV(n){return t=>t.lift(new $V(n))}(s),Jr(a=>Y0(a)?Ga:Ir(a)))}(s,n,t,i).pipe(Ce(a=>(n._resolvedData=a,n.data=BT(n,e).resolve,o&&l2(o)&&(n.data[sf]=o.title),null)))}(a.route,i,n,t)),ui(()=>s++),rf(1),Ne(a=>s===o.length?We(e):Ga))})}(e.paramsInheritanceStrategy,this.environmentInjector),ui({next:()=>c=!0,complete:()=>{c||(e.restoreHistory(l),this.cancelNavigationTransition(l,"",2,e))}}))}),ui(l=>{const c=new D8(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(c)}))}),V0(a=>{const l=c=>{const M=[];c.routeConfig?.loadComponent&&!c.routeConfig._loadedComponent&&M.push(this.configLoader.loadComponent(c.routeConfig).pipe(ui(P=>{c.component=P}),Ce(()=>{})));for(const P of c.children)M.push(...l(P));return M};return M0(l(a.targetSnapshot.root)).pipe(nf(),ei(1))}),V0(()=>e.afterPreactivation()),Ce(a=>{const l=function B8(n,t,e){const i=ff(n,t._root,e?e._root:void 0);return new NT(i,t)}(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return i={...a,targetRouterState:l}}),ui(a=>{e.currentUrlTree=a.urlAfterRedirects,e.rawUrlTree=e.urlHandlingStrategy.merge(a.urlAfterRedirects,a.rawUrl),e.routerState=a.targetRouterState,"deferred"===e.urlUpdateStrategy&&(a.extras.skipLocationChange||e.setBrowserUrl(e.rawUrlTree,a),e.browserUrlTree=a.urlAfterRedirects)}),((n,t,e)=>Ce(i=>(new K8(t,i.targetRouterState,i.currentRouterState,e).activate(n),i)))(this.rootContexts,e.routeReuseStrategy,a=>this.events.next(a)),ui({next:a=>{o=!0,this.lastSuccessfulNavigation=this.currentNavigation,e.navigated=!0,this.events.next(new Xa(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(e.currentUrlTree))),e.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0)},complete:()=>{o=!0}}),C_(()=>{o||s||this.cancelNavigationTransition(i,"",1,e),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),Jr(a=>{if(s=!0,WT(a)){UT(a)||(e.navigated=!0,e.restoreHistory(i,!0));const l=new P_(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode);if(this.events.next(l),UT(a)){const c=e.urlHandlingStrategy.merge(a.url,e.rawUrlTree),M={skipLocationChange:i.extras.skipLocationChange,replaceUrl:"eager"===e.urlUpdateStrategy||h2(i.source)};e.scheduleNavigation(c,"imperative",null,M,{resolve:i.resolve,reject:i.reject,promise:i.promise})}else i.resolve(!1)}else{e.restoreHistory(i,!0);const l=new AT(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);this.events.next(l);try{i.resolve(e.errorHandler(a))}catch(c){i.reject(c)}}return Ga}))}))}cancelNavigationTransition(e,i,o,s){const a=new P_(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(a),e.resolve(!1)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function h2(n){return"imperative"!==n}let f2=(()=>{class n{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(s=>s.outlet===$t);return i}getResolvedTitleForRoute(e){return e.data[sf]}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Lt(j6)},providedIn:"root"}),n})(),j6=(()=>{class n extends f2{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}}return n.\u0275fac=function(e){return new(e||n)(we(oD))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),p2=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Lt(U6)},providedIn:"root"}),n})();class z6{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}}let U6=(()=>{class n extends z6{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const j_=new Be("",{providedIn:"root",factory:()=>({})});let $6=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Lt(G6)},providedIn:"root"}),n})(),G6=(()=>{class n{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function q6(n){throw n}function K6(n,t,e){return t.parse("/")}const Z6={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},X6={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Xt=(()=>{class n{constructor(){this.disposed=!1,this.currentPageId=0,this.console=Lt(RN),this.isNgZoneEnabled=!1,this.options=Lt(j_,{optional:!0})||{},this.errorHandler=this.options.errorHandler||q6,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||K6,this.navigated=!1,this.lastSuccessfulId=-1,this.afterPreactivation=()=>We(void 0),this.urlHandlingStrategy=Lt($6),this.routeReuseStrategy=Lt(p2),this.urlCreationStrategy=Lt(R8),this.titleStrategy=Lt(f2),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=bT(Lt(zd,{optional:!0})??[]),this.navigationTransitions=Lt(z0),this.urlSerializer=Lt(lf),this.location=Lt(Vh),this.rootComponentType=null,this.isNgZoneEnabled=Lt(pt)instanceof pt&&pt.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new ql,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=YT(this.currentUrlTree,this.rootComponentType),this.navigationTransitions.setupNavigations(this).subscribe(e=>{this.lastSuccessfulId=e.id,this.currentPageId=e.targetPageId},e=>{this.console.warn(`Unhandled Navigation Error: ${e}`)})}get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return this.location.getState()?.\u0275routerPageId}get events(){return this.navigationTransitions.events}resetRootComponentType(e){this.rootComponentType=e,this.routerState.root.component=this.rootComponentType}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(e=>{const i="popstate"===e.type?"popstate":"hashchange";"popstate"===i&&setTimeout(()=>{const o={replaceUrl:!0},s=e.state?.navigationId?e.state:null;if(e.state){const l={...e.state};delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(o.state=l)}const a=this.parseUrl(e.url);this.scheduleNavigation(a,i,s,o)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}resetConfig(e){this.config=e.map(N0),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(e,i={}){const{relativeTo:o,queryParams:s,fragment:a,queryParamsHandling:l,preserveFragment:c}=i,M=c?this.currentUrlTree.fragment:a;let P=null;switch(l){case"merge":P={...this.currentUrlTree.queryParams,...s};break;case"preserve":P=this.currentUrlTree.queryParams;break;default:P=s||null}return null!==P&&(P=this.removeEmptyProps(P)),this.urlCreationStrategy.createUrlTree(o,this.routerState,this.currentUrlTree,e,P,M??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Zl(e)?e:this.parseUrl(e),s=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(s,"imperative",null,i)}navigate(e,i={skipLocationChange:!1}){return function Q6(n){for(let t=0;t{const s=e[o];return null!=s&&(i[o]=s),i},{})}scheduleNavigation(e,i,o,s,a){if(this.disposed)return Promise.resolve(!1);let l,c,M,P;return a?(l=a.resolve,c=a.reject,M=a.promise):M=new Promise((Y,q)=>{l=Y,c=q}),"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(o=this.location.getState()),P=o&&o.\u0275routerPageId?o.\u0275routerPageId:s.replaceUrl||s.skipLocationChange?this.browserPageId??0:(this.browserPageId??0)+1):P=0,this.navigationTransitions.handleNavigationRequest({targetPageId:P,source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:s,resolve:l,reject:c,promise:M,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),M.catch(Y=>Promise.reject(Y))}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e),s={...i.extras.state,...this.generateNgRouterState(i.id,i.targetPageId)};this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl?this.location.replaceState(o,"",s):this.location.go(o,"",s)}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const o=this.currentPageId-e.targetPageId;"popstate"!==e.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==this.getCurrentNavigation()?.finalUrl||0===o?this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===o&&(this.resetState(e),this.browserUrlTree=e.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(o)}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=e.currentRouterState,this.currentUrlTree=e.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),Qa=(()=>{class n{constructor(e,i,o,s,a,l){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=s,this.el=a,this.locationStrategy=l,this._preserveFragment=!1,this._skipLocationChange=!1,this._replaceUrl=!1,this.href=null,this.commands=null,this.onChanges=new X;const c=a.nativeElement.tagName;this.isAnchorElement="A"===c||"AREA"===c,this.isAnchorElement?this.subscription=e.events.subscribe(M=>{M instanceof Xa&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}set preserveFragment(e){this._preserveFragment=Od(e)}get preserveFragment(){return this._preserveFragment}set skipLocationChange(e){this._skipLocationChange=Od(e)}get skipLocationChange(){return this._skipLocationChange}set replaceUrl(e){this._replaceUrl=Od(e)}get replaceUrl(){return this._replaceUrl}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,s,a){return!!(null===this.urlTree||this.isAnchorElement&&(0!==e||i||o||s||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(this.urlTree,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){this.href=null!==this.urlTree&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null;const e=null===this.href?null:function Lw(n,t,e){return function GO(n,t){return"src"===t&&("embed"===n||"frame"===n||"iframe"===n||"media"===n||"script"===n)||"href"===t&&("base"===n||"link"===n)?Tw:_s}(t,e)(n)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",e)}applyAttributeValue(e,i){const o=this.renderer,s=this.el.nativeElement;null!==i?o.setAttribute(s,e,i):o.removeAttribute(s,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}}return n.\u0275fac=function(e){return new(e||n)(F(Xt),F(vr),Ra("tabindex"),F(qs),F(bt),F(jl))},n.\u0275dir=Ke({type:n,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(e,i){1&e&&ye("click",function(s){return i.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),2&e&&Ut("target",i.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",relativeTo:"relativeTo",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",routerLink:"routerLink"},standalone:!0,features:[Gi]}),n})();class _2{}let tj=(()=>{class n{constructor(e,i,o,s,a){this.router=e,this.injector=o,this.preloadingStrategy=s,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(ki(e=>e instanceof Xa),Wa(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const s of i){s.providers&&!s._injector&&(s._injector=Im(s.providers,e,`Route: ${s.path}`));const a=s._injector??e,l=s._loadedInjector??a;s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent?o.push(this.preloadConfig(a,s)):(s.children||s._loadedRoutes)&&o.push(this.processRoutes(l,s.children??s._loadedRoutes))}return de(o).pipe(on())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):We(null);const s=o.pipe(Ne(a=>null===a?We(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));return i.loadComponent&&!i._loadedComponent?de([s,this.loader.loadComponent(i)]).pipe(on()):s})}}return n.\u0275fac=function(e){return new(e||n)(we(Xt),we(Bk),we(gs),we(_2),we(j0))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const U0=new Be("");let g2=(()=>{class n{constructor(e,i,o,s,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=s,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration=a.scrollPositionRestoration||"disabled",a.anchorScrolling=a.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof T0?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Xa&&(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof FT&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new FT(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}}return n.\u0275fac=function(e){Ya()},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function Wd(n,t){return{\u0275kind:n,\u0275providers:t}}function v2(){const n=Lt(mi);return t=>{const e=n.get(Pd);if(t!==e.components[0])return;const i=n.get(Xt),o=n.get(y2);1===n.get($0)&&i.initialNavigation(),n.get(M2,null,Mt.Optional)?.setUpPreloading(),n.get(U0,null,Mt.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.unsubscribe())}}const y2=new Be("",{factory:()=>new X}),$0=new Be("",{providedIn:"root",factory:()=>1});const M2=new Be("");function sj(n){return Wd(0,[{provide:M2,useExisting:tj},{provide:_2,useExisting:n}])}const w2=new Be("ROUTER_FORROOT_GUARD"),aj=[Vh,{provide:lf,useClass:w0},Xt,pf,{provide:vr,useFactory:function b2(n){return n.routerState.root},deps:[Xt]},j0,[]];function lj(){return new $k("Router",Xt)}let x2=(()=>{class n{constructor(e){}static forRoot(e,i){return{ngModule:n,providers:[aj,[],{provide:zd,multi:!0,useValue:e},{provide:w2,useFactory:hj,deps:[[Xt,new $s,new ld]]},{provide:j_,useValue:i||{}},i?.useHash?{provide:jl,useClass:C4}:{provide:jl,useClass:mS},{provide:U0,useFactory:()=>{const n=Lt(j5),t=Lt(pt),e=Lt(j_),i=Lt(z0),o=Lt(lf);return e.scrollOffset&&n.setOffset(e.scrollOffset),new g2(o,i,n,t,e)}},i?.preloadingStrategy?sj(i.preloadingStrategy).\u0275providers:[],{provide:$k,multi:!0,useFactory:lj},i?.initialNavigation?fj(i):[],[{provide:C2,useFactory:v2},{provide:Yk,multi:!0,useExisting:C2}]]}}static forChild(e){return{ngModule:n,providers:[{provide:zd,multi:!0,useValue:e}]}}}return n.\u0275fac=function(e){return new(e||n)(we(w2,8))},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[F0]}),n})();function hj(n){return"guarded"}function fj(n){return["disabled"===n.initialNavigation?Wd(3,[{provide:Fm,multi:!0,useFactory:()=>{const t=Lt(Xt);return()=>{t.setUpLocationChangeListener()}}},{provide:$0,useValue:2}]).\u0275providers:[],"enabledBlocking"===n.initialNavigation?Wd(2,[{provide:$0,useValue:0},{provide:Fm,multi:!0,deps:[mi],useFactory:t=>{const e=t.get(w4,Promise.resolve());return()=>e.then(()=>new Promise(o=>{const s=t.get(Xt),a=t.get(y2);(function i(o){t.get(Xt).events.pipe(ki(a=>a instanceof Xa||a instanceof P_||a instanceof AT),Ce(a=>a instanceof Xa||a instanceof P_&&(0===a.code||1===a.code)&&null),ki(a=>null!==a),ei(1)).subscribe(()=>{o()})})(()=>{o(!0)}),s.afterPreactivation=()=>(o(!0),a.closed?We(void 0):a),s.initialNavigation()}))}}]).\u0275providers:[]]}const C2=new Be("");class mj extends T{constructor(t,e){super()}schedule(t,e=0){return this}}class z_ extends mj{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){if(this.closed)return this;this.state=t;const i=this.id,o=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(o,i,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(o,this.id,e),this}requestAsyncId(t,e,i=0){return setInterval(t.flush.bind(t,this),i)}recycleAsyncId(t,e,i=0){if(null!==i&&this.delay===i&&!1===this.pending)return e;clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(t,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let o,i=!1;try{this.work(t)}catch(s){i=!0,o=!!s&&s||new Error(s)}if(i)return this.unsubscribe(),o}_unsubscribe(){const t=this.id,e=this.scheduler,i=e.actions,o=i.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==o&&i.splice(o,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null}}let k2=(()=>{class n{constructor(e,i=n.now){this.SchedulerAction=e,this.now=i}schedule(e,i=0,o){return new this.SchedulerAction(this,e).schedule(o,i)}}return n.now=()=>Date.now(),n})();class is extends k2{constructor(t,e=k2.now){super(t,()=>is.delegate&&is.delegate!==this?is.delegate.now():e()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(t,e=0,i){return is.delegate&&is.delegate!==this?is.delegate.schedule(t,e,i):super.schedule(t,e,i)}flush(t){const{actions:e}=this;if(this.active)return void e.push(t);let i;this.active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}}const $d=new is(z_);class eo{constructor(t,e,i){this.kind=t,this.value=e,this.error=i,this.hasValue="N"===t}observe(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}}do(t,e,i){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return i&&i()}}accept(t,e,i){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,i)}toObservable(){switch(this.kind){case"N":return We(this.value);case"E":return Ir(this.error);case"C":return w_()}throw new Error("unexpected notification kind value")}static createNext(t){return typeof t<"u"?new eo("N",t):eo.undefinedValueNotification}static createError(t){return new eo("E",void 0,t)}static createComplete(){return eo.completeNotification}}function Ai(n,t=$d){const i=function _j(n){return n instanceof Date&&!isNaN(+n)}(n)?+n-t.now():Math.abs(n);return o=>o.lift(new gj(i,t))}eo.completeNotification=new eo("C"),eo.undefinedValueNotification=new eo("N",void 0);class gj{constructor(t,e){this.delay=t,this.scheduler=e}call(t,e){return e.subscribe(new G0(t,this.delay,this.scheduler))}}class G0 extends A{constructor(t,e,i){super(t),this.delay=e,this.scheduler=i,this.queue=[],this.active=!1,this.errored=!1}static dispatch(t){const e=t.source,i=e.queue,o=t.scheduler,s=t.destination;for(;i.length>0&&i[0].time-o.now()<=0;)i.shift().notification.observe(s);if(i.length>0){const a=Math.max(0,i[0].time-o.now());this.schedule(t,a)}else this.unsubscribe(),e.active=!1}_schedule(t){this.active=!0,this.destination.add(t.schedule(G0.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))}scheduleNotification(t){if(!0===this.errored)return;const e=this.scheduler,i=new bj(e.now()+this.delay,t);this.queue.push(i),!1===this.active&&this._schedule(e)}_next(t){this.scheduleNotification(eo.createNext(t))}_error(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()}_complete(){this.scheduleNotification(eo.createComplete()),this.unsubscribe()}}class bj{constructor(t,e){this.time=t,this.notification=e}}var Gd=(()=>(function(n){n.NoConnection="NoConnection",n.Unknown="Unknown"}(Gd||(Gd={})),Gd))();class vj{}const S2="common.operation-error";function Qt(n){if(n&&n.type&&!n.srcElement)return n;const t=new vj;if(t.originalError=n,!n||"string"==typeof n)return t.originalServerErrorMsg=n||"",t.translatableErrorMsg=n||S2,t.type=Gd.Unknown,t;t.originalServerErrorMsg=function Mj(n){if(n){if("string"==typeof n._body)return n._body;if(n.originalServerErrorMsg&&"string"==typeof n.originalServerErrorMsg)return n.originalServerErrorMsg;if(n.error&&"string"==typeof n.error)return n.error;if(n.error&&n.error.error&&n.error.error.message)return n.error.error.message;if(n.error&&n.error.error&&"string"==typeof n.error.error)return n.error.error;if(n.message)return n.message;if(n._body&&n._body.error)return n._body.error;try{return JSON.parse(n._body).error}catch{}}return null}(n);return null!=n.status&&(0===n.status||504===n.status)&&(t.type=Gd.NoConnection,t.translatableErrorMsg="common.no-connection-error"),t.type||(t.type=Gd.Unknown,t.translatableErrorMsg=t.originalServerErrorMsg?function yj(n){if(!n||0===n.length)return n;if(-1!==n.indexOf('"error":'))try{n=JSON.parse(n).error}catch{}if(n.startsWith("400")||n.startsWith("403")){const e=n.split(" - ",2);n=2===e.length?e[1]:n}const t=(n=n.trim()).substr(0,1);return t.toUpperCase()!==t&&(n=t.toUpperCase()+n.substr(1,n.length-1)),!n.endsWith(".")&&!n.endsWith(",")&&!n.endsWith(":")&&!n.endsWith(";")&&!n.endsWith("?")&&!n.endsWith("!")&&(n+="."),n}(t.originalServerErrorMsg):S2),t}const Cj=new class xj extends is{}(class wj extends z_{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}schedule(t,e=0){return e>0?super.schedule(t,e):(this.delay=e,this.state=t,this.scheduler.flush(this),this)}execute(t,e){return e>0||this.closed?super.execute(t,e):this._execute(t,e)}requestAsyncId(t,e,i=0){return null!==i&&i>0||null===i&&this.delay>0?super.requestAsyncId(t,e,i):t.flush(this)}});class U_ extends A{constructor(t,e,i=0){super(t),this.scheduler=e,this.delay=i}static dispatch(t){const{notification:e,destination:i}=t;e.observe(i),this.unsubscribe()}scheduleMessage(t){this.destination.add(this.scheduler.schedule(U_.dispatch,this.delay,new Sj(t,this.destination)))}_next(t){this.scheduleMessage(eo.createNext(t))}_error(t){this.scheduleMessage(eo.createError(t)),this.unsubscribe()}_complete(){this.scheduleMessage(eo.createComplete()),this.unsubscribe()}}class Sj{constructor(t,e){this.notification=t,this.destination=e}}class Yo extends X{constructor(t=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,i){super(),this.scheduler=i,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=t<1?1:t,this._windowTime=e<1?1:e,e===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(t){if(!this.isStopped){const e=this._events;e.push(t),e.length>this._bufferSize&&e.shift()}super.next(t)}nextTimeWindow(t){this.isStopped||(this._events.push(new Dj(this._getNow(),t)),this._trimBufferThenGetEvents()),super.next(t)}_subscribe(t){const e=this._infiniteTimeWindow,i=e?this._events:this._trimBufferThenGetEvents(),o=this.scheduler,s=i.length;let a;if(this.closed)throw new ee;if(this.isStopped||this.hasError?a=T.EMPTY:(this.observers.push(t),a=new ae(this,t)),o&&t.add(t=new U_(t,o)),e)for(let l=0;le&&(a=Math.max(a,s-e)),a>0&&o.splice(0,a),o}}class Dj{constructor(t,e){this.time=t,this.value=e}}const W_="refreshSeconds",$_="labelsData",G_="localNodesData",D2="nodesData";var yr=(()=>(function(n){n.Node="nd",n.Transport="tp",n.DmsgServer="ds"}(yr||(yr={})),yr))();class ti{constructor(){this.currentRefreshTimeSubject=new Yo(1),this.savedLocalNodes=new Map,this.savedLabels=new Map,this.savedVisibleLocalNodes=new Set}initialize(t){this.storage=localStorage,this.hypervisorPk=t,this.migrateDataToHvStorage(),this.currentRefreshTime=parseInt(this.getDataForHv(W_),10)||10,this.currentRefreshTimeSubject.next(this.currentRefreshTime),this.getSavedLocalNodes().forEach(o=>{this.savedLocalNodes.set(o.publicKey,o),o.hidden||this.savedVisibleLocalNodes.add(o.publicKey)}),this.getSavedLabels().forEach(o=>this.savedLabels.set(o.id,o)),this.loadLegacyNodeData();const e=[];this.savedLocalNodes.forEach(o=>e.push(o));const i=[];this.savedLabels.forEach(o=>i.push(o)),this.saveLocalNodes(e),this.saveLabels(i)}getDataForHv(t){return this.storage.getItem(this.hypervisorPk+t)}setDataForHv(t,e){return this.storage.setItem(this.hypervisorPk+t,e)}migrateDataToHvStorage(){const t=this.storage.getItem(W_);if(t){const o=parseInt(t,10)||10;this.setRefreshTime(o),this.storage.removeItem(W_)}const e=this.storage.getItem(G_);if(e){const o=JSON.parse(e)||[];this.saveLocalNodes(o),this.storage.removeItem(G_)}const i=this.storage.getItem($_);if(i){const o=JSON.parse(i)||[];this.saveLabels(o),this.storage.removeItem($_)}}loadLegacyNodeData(){const t=JSON.parse(this.storage.getItem(D2))||[];if(t.length>0){const e=this.getSavedLocalNodes(),i=this.getSavedLabels();t.forEach(o=>{e.push({publicKey:o.publicKey,hidden:o.deleted,ip:null}),this.savedLocalNodes.set(o.publicKey,e[e.length-1]),o.deleted||this.savedVisibleLocalNodes.add(o.publicKey),i.push({id:o.publicKey,identifiedElementType:yr.Node,label:o.label}),this.savedLabels.set(o.publicKey,i[i.length-1])}),this.saveLocalNodes(e),this.saveLabels(i),this.storage.removeItem(D2)}}setRefreshTime(t){this.setDataForHv(W_,t.toString()),this.currentRefreshTime=t,this.currentRefreshTimeSubject.next(this.currentRefreshTime)}getRefreshTimeObservable(){return this.currentRefreshTimeSubject.asObservable()}getRefreshTime(){return this.currentRefreshTime}includeVisibleLocalNodes(t,e){this.changeLocalNodesHiddenProperty(t,e,!1)}setLocalNodesAsHidden(t,e){this.changeLocalNodesHiddenProperty(t,e,!0)}changeLocalNodesHiddenProperty(t,e,i){if(t.length!==e.length)throw new Error("Invalid params");const o=new Map,s=new Map;t.forEach((c,M)=>{o.set(c,e[M]),s.set(c,e[M])});let a=!1;const l=this.getSavedLocalNodes();l.forEach(c=>{o.has(c.publicKey)&&(s.has(c.publicKey)&&s.delete(c.publicKey),c.ip!==o.get(c.publicKey)&&(c.ip=o.get(c.publicKey),a=!0,this.savedLocalNodes.set(c.publicKey,c)),c.hidden!==i&&(c.hidden=i,a=!0,this.savedLocalNodes.set(c.publicKey,c),i?this.savedVisibleLocalNodes.delete(c.publicKey):this.savedVisibleLocalNodes.add(c.publicKey)))}),s.forEach((c,M)=>{a=!0;const P={publicKey:M,hidden:i,ip:c};l.push(P),this.savedLocalNodes.set(M,P),i?this.savedVisibleLocalNodes.delete(M):this.savedVisibleLocalNodes.add(M)}),a&&this.saveLocalNodes(l)}getSavedLocalNodes(){return JSON.parse(this.getDataForHv(G_))||[]}getSavedVisibleLocalNodes(){return this.savedVisibleLocalNodes}saveLocalNodes(t){this.setDataForHv(G_,JSON.stringify(t))}getSavedLabels(){return JSON.parse(this.getDataForHv($_))||[]}saveLabels(t){this.setDataForHv($_,JSON.stringify(t))}saveLabel(t,e,i){if(e){let o=!1;const s=this.getSavedLabels().map(a=>(a.id===t&&a.identifiedElementType===i&&(o=!0,a.label=e,this.savedLabels.set(a.id,{label:a.label,id:a.id,identifiedElementType:a.identifiedElementType})),a));if(o)this.saveLabels(s);else{const a={label:e,id:t,identifiedElementType:i};s.push(a),this.savedLabels.set(t,a),this.saveLabels(s)}}else{this.savedLabels.has(t)&&this.savedLabels.delete(t);let o=!1;const s=this.getSavedLabels().filter(a=>a.id!==t||(o=!0,!1));o&&this.saveLabels(s)}}getDefaultLabel(t){return t?t.ip?t.ip:t.localPk.substr(0,8):""}getLabelInfo(t){return this.savedLabels.has(t)?this.savedLabels.get(t):null}}function hn(n){return null!=n&&"false"!=`${n}`}function vo(n,t=0){return function Tj(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):t}function q_(n){return Array.isArray(n)?n:[n]}function Wi(n){return null==n?"":"string"==typeof n?n:`${n}px`}function la(n){return n instanceof bt?n.nativeElement:n}function qd(n,t,e,i){return O(e)&&(i=e,e=void 0),i?qd(n,t,e).pipe(Ce(o=>y(o)?i(...o):i(o))):new ce(o=>{T2(n,t,function s(a){o.next(arguments.length>1?Array.prototype.slice.call(arguments):a)},o,e)})}function T2(n,t,e,i,o){let s;if(function Ij(n){return n&&"function"==typeof n.addEventListener&&"function"==typeof n.removeEventListener}(n)){const a=n;n.addEventListener(t,e,o),s=()=>a.removeEventListener(t,e,o)}else if(function Ej(n){return n&&"function"==typeof n.on&&"function"==typeof n.off}(n)){const a=n;n.on(t,e),s=()=>a.off(t,e)}else if(function Lj(n){return n&&"function"==typeof n.addListener&&"function"==typeof n.removeListener}(n)){const a=n;n.addListener(t,e),s=()=>a.removeListener(t,e)}else{if(!n||!n.length)throw new TypeError("Invalid event target");for(let a=0,l=n.length;a0?super.requestAsyncId(t,e,i):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame(()=>t.flush(null))))}recycleAsyncId(t,e,i=0){if(null!==i&&i>0||null===i&&this.delay>0)return super.recycleAsyncId(t,e,i);0===t.actions.length&&(cancelAnimationFrame(e),t.scheduled=void 0)}});let Fj=1;const Rj=Promise.resolve(),K_={};function L2(n){return n in K_&&(delete K_[n],!0)}const E2={setImmediate(n){const t=Fj++;return K_[t]=!0,Rj.then(()=>L2(t)&&n()),t},clearImmediate(n){L2(n)}},q0=new class Yj extends is{flush(t){this.active=!0,this.scheduled=void 0;const{actions:e}=this;let i,o=-1,s=e.length;t=t||e.shift();do{if(i=t.execute(t.state,t.delay))break}while(++o0?super.requestAsyncId(t,e,i):(t.actions.push(this),t.scheduled||(t.scheduled=E2.setImmediate(t.flush.bind(t,null))))}recycleAsyncId(t,e,i=0){if(null!==i&&i>0||null===i&&this.delay>0)return super.recycleAsyncId(t,e,i);0===t.actions.length&&(E2.clearImmediate(e),t.scheduled=void 0)}});class Hj{constructor(t){this.durationSelector=t}call(t,e){return e.subscribe(new Vj(t,this.durationSelector))}}class Vj extends Me{constructor(t,e){super(t),this.durationSelector=e,this.hasValue=!1}_next(t){if(this.value=t,this.hasValue=!0,!this.throttled){let e;try{const{durationSelector:o}=this;e=o(t)}catch(o){return this.destination.error(o)}const i=Ee(e,new be(this));!i||i.closed?this.clearThrottle():this.add(this.throttled=i)}}clearThrottle(){const{value:t,hasValue:e,throttled:i}=this;i&&(this.remove(i),this.throttled=void 0,i.unsubscribe()),e&&(this.value=void 0,this.hasValue=!1,this.destination.next(t))}notifyNext(){this.clearThrottle()}notifyComplete(){this.clearThrottle()}}function K0(n){return!y(n)&&n-parseFloat(n)+1>=0}function Z_(n=0,t,e){let i=-1;return K0(t)?i=Number(t)<1?1:Number(t):Se(t)&&(e=t),Se(e)||(e=$d),new ce(o=>{const s=K0(n)?n:+n-e.now();return e.schedule(jj,s,{index:0,period:i,subscriber:o})})}function jj(n){const{index:t,period:e,subscriber:i}=n;if(i.next(t),!i.closed){if(-1===e)return i.complete();n.index=t+1,this.schedule(n,e)}}function Z0(n,t=$d){return function Bj(n){return function(e){return e.lift(new Hj(n))}}(()=>Z_(n,t))}function xn(n){return t=>t.lift(new zj(n))}class zj{constructor(t){this.notifier=t}call(t,e){const i=new Uj(t),o=Ee(this.notifier,new be(i));return o&&!i.seenValue?(i.add(o),e.subscribe(i)):i}}class Uj extends Me{constructor(t){super(t),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}let X0;try{X0=typeof Intl<"u"&&Intl.v8BreakIterator}catch{X0=!1}let Kd,hi=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function V5(n){return n===FS}(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!X0)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return n.\u0275fac=function(e){return new(e||n)(we(Nm))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const I2=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function P2(){if(Kd)return Kd;if("object"!=typeof document||!document)return Kd=new Set(I2),Kd;let n=document.createElement("input");return Kd=new Set(I2.filter(t=>(n.setAttribute("type",t),n.type===t))),Kd}let Mf,X_,Xl,Q0;function Ja(n){return function Wj(){if(null==Mf&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Mf=!0}))}finally{Mf=Mf||!1}return Mf}()?n:!!n.capture}function O2(){if(null==Xl){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Xl=!1,Xl;if("scrollBehavior"in document.documentElement.style)Xl=!0;else{const n=Element.prototype.scrollTo;Xl=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return Xl}function wf(){if("object"!=typeof document||!document)return 0;if(null==X_){const n=document.createElement("div"),t=n.style;n.dir="rtl",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",n.appendChild(e),document.body.appendChild(n),X_=0,0===n.scrollLeft&&(n.scrollLeft=1,X_=0===n.scrollLeft?1:2),n.remove()}return X_}function J0(){let n=typeof document<"u"&&document?document.activeElement:null;for(;n&&n.shadowRoot;){const t=n.shadowRoot.activeElement;if(t===n)break;n=t}return n}function el(n){return n.composedPath?n.composedPath()[0]:n.target}function e1(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const qj=new Be("cdk-dir-doc",{providedIn:"root",factory:function Kj(){return Lt(St)}}),Zj=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Pr=(()=>{class n{constructor(e){if(this.value="ltr",this.change=new ht,e){const o=e.documentElement?e.documentElement.dir:null;this.value=function Xj(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?Zj.test(navigator.language)?"rtl":"ltr":"rtl"===t?"rtl":"ltr"}((e.body?e.body.dir:null)||o||"ltr")}}ngOnDestroy(){this.change.complete()}}return n.\u0275fac=function(e){return new(e||n)(we(qj,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),xf=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({}),n})();const Qj=["contentWrapper"],Jj=["*"],e7=new Be("VIRTUAL_SCROLL_STRATEGY");let Cf=(()=>{class n{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new X,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new ce(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(Z0(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):We()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(ki(s=>!s||o.indexOf(s)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=la(i),s=e.getElementRef().nativeElement;do{if(o==s)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>qd(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return n.\u0275fac=function(e){return new(e||n)(we(pt),we(hi),we(St,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),A2=(()=>{class n{constructor(e,i,o,s){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=o,this.dir=s,this._destroyed=new X,this._elementScrolled=new ce(a=>this.ngZone.runOutsideAngular(()=>qd(this.elementRef.nativeElement,"scroll").pipe(xn(this._destroyed)).subscribe(a)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,o=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=o?e.end:e.start),null==e.right&&(e.right=o?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),o&&0!=wf()?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),2==wf()?e.left=e.right:1==wf()&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;O2()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",o="right",s=this.elementRef.nativeElement;if("top"==e)return s.scrollTop;if("bottom"==e)return s.scrollHeight-s.clientHeight-s.scrollTop;const a=this.dir&&"rtl"==this.dir.value;return"start"==e?e=a?o:i:"end"==e&&(e=a?i:o),a&&2==wf()?e==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:a&&1==wf()?e==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:e==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Cf),F(pt),F(Pr,8))},n.\u0275dir=Ke({type:n,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0}),n})(),Ql=(()=>{class n{constructor(e,i,o){this._platform=e,this._change=new X,this._changeListener=s=>{this._change.next(s)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,s=o.getBoundingClientRect();return{top:-s.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-s.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(Z0(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}}return n.\u0275fac=function(e){return new(e||n)(we(hi),we(pt),we(St,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const F2=new Be("VIRTUAL_SCROLLABLE");let i7=(()=>{class n extends A2{constructor(e,i,o,s){super(e,i,o,s)}measureViewportSize(e){const i=this.elementRef.nativeElement;return"horizontal"===e?i.clientWidth:i.clientHeight}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Cf),F(pt),F(Pr,8))},n.\u0275dir=Ke({type:n,features:[dt]}),n})();const o7=typeof requestAnimationFrame<"u"?Aj:q0;let s7=(()=>{class n extends i7{constructor(e,i,o,s,a,l,c,M){super(e,l,o,a),this.elementRef=e,this._changeDetectorRef=i,this._scrollStrategy=s,this.scrollable=M,this._platform=Lt(hi),this._detachedSubject=new X,this._renderedRangeSubject=new X,this._orientation="vertical",this._appendOnly=!1,this.scrolledIndexChange=new ce(P=>this._scrollStrategy.scrolledIndexChange.subscribe(Y=>Promise.resolve().then(()=>this.ngZone.run(()=>P.next(Y))))),this.renderedRangeStream=this._renderedRangeSubject,this._totalContentSize=0,this._totalContentWidth="",this._totalContentHeight="",this._renderedRange={start:0,end:0},this._dataLength=0,this._viewportSize=0,this._renderedContentOffset=0,this._renderedContentOffsetNeedsRewrite=!1,this._isChangeDetectionPending=!1,this._runAfterChangeDetection=[],this._viewportChanges=T.EMPTY,this._viewportChanges=c.change().subscribe(()=>{this.checkViewportSize()}),this.scrollable||(this.elementRef.nativeElement.classList.add("cdk-virtual-scrollable"),this.scrollable=this)}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this._calculateSpacerSize())}get appendOnly(){return this._appendOnly}set appendOnly(e){this._appendOnly=hn(e)}ngOnInit(){!this._platform.isBrowser||(this.scrollable===this&&super.ngOnInit(),this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._measureViewportSize(),this._scrollStrategy.attach(this),this.scrollable.elementScrolled().pipe(bo(null),Z0(0,o7)).subscribe(()=>this._scrollStrategy.onContentScrolled()),this._markChangeDetectionNeeded()})))}ngOnDestroy(){this.detach(),this._scrollStrategy.detach(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._viewportChanges.unsubscribe(),super.ngOnDestroy()}attach(e){this.ngZone.runOutsideAngular(()=>{this._forOf=e,this._forOf.dataStream.pipe(xn(this._detachedSubject)).subscribe(i=>{const o=i.length;o!==this._dataLength&&(this._dataLength=o,this._scrollStrategy.onDataLengthChanged()),this._doChangeDetection()})})}detach(){this._forOf=null,this._detachedSubject.next()}getDataLength(){return this._dataLength}getViewportSize(){return this._viewportSize}getRenderedRange(){return this._renderedRange}measureBoundingClientRectWithScrollOffset(e){return this.getElementRef().nativeElement.getBoundingClientRect()[e]}setTotalContentSize(e){this._totalContentSize!==e&&(this._totalContentSize=e,this._calculateSpacerSize(),this._markChangeDetectionNeeded())}setRenderedRange(e){(function r7(n,t){return n.start==t.start&&n.end==t.end})(this._renderedRange,e)||(this.appendOnly&&(e={start:0,end:Math.max(this._renderedRange.end,e.end)}),this._renderedRangeSubject.next(this._renderedRange=e),this._markChangeDetectionNeeded(()=>this._scrollStrategy.onContentRendered()))}getOffsetToRenderedContentStart(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset}setRenderedContentOffset(e,i="to-start"){e=this.appendOnly&&"to-start"===i?0:e;const s="horizontal"==this.orientation,a=s?"X":"Y";let c=`translate${a}(${Number((s&&this.dir&&"rtl"==this.dir.value?-1:1)*e)}px)`;this._renderedContentOffset=e,"to-end"===i&&(c+=` translate${a}(-100%)`,this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=c&&(this._renderedContentTransform=c,this._markChangeDetectionNeeded(()=>{this._renderedContentOffsetNeedsRewrite?(this._renderedContentOffset-=this.measureRenderedContentSize(),this._renderedContentOffsetNeedsRewrite=!1,this.setRenderedContentOffset(this._renderedContentOffset)):this._scrollStrategy.onRenderedOffsetChanged()}))}scrollToOffset(e,i="auto"){const o={behavior:i};"horizontal"===this.orientation?o.start=e:o.top=e,this.scrollable.scrollTo(o)}scrollToIndex(e,i="auto"){this._scrollStrategy.scrollToIndex(e,i)}measureScrollOffset(e){let i;return i=this.scrollable==this?o=>super.measureScrollOffset(o):o=>this.scrollable.measureScrollOffset(o),Math.max(0,i(e??("horizontal"===this.orientation?"start":"top"))-this.measureViewportOffset())}measureViewportOffset(e){let i;const o="left",s="right",a="rtl"==this.dir?.value;i="start"==e?a?s:o:"end"==e?a?o:s:e||("horizontal"===this.orientation?"left":"top");const l=this.scrollable.measureBoundingClientRectWithScrollOffset(i);return this.elementRef.nativeElement.getBoundingClientRect()[i]-l}measureRenderedContentSize(){const e=this._contentWrapper.nativeElement;return"horizontal"===this.orientation?e.offsetWidth:e.offsetHeight}measureRangeSize(e){return this._forOf?this._forOf.measureRangeSize(e,this.orientation):0}checkViewportSize(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()}_measureViewportSize(){this._viewportSize=this.scrollable.measureViewportSize(this.orientation)}_markChangeDetectionNeeded(e){e&&this._runAfterChangeDetection.push(e),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._doChangeDetection()})))}_doChangeDetection(){this._isChangeDetectionPending=!1,this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,this.ngZone.run(()=>this._changeDetectorRef.markForCheck());const e=this._runAfterChangeDetection;this._runAfterChangeDetection=[];for(const i of e)i()}_calculateSpacerSize(){this._totalContentHeight="horizontal"===this.orientation?"":`${this._totalContentSize}px`,this._totalContentWidth="horizontal"===this.orientation?`${this._totalContentSize}px`:""}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(di),F(pt),F(e7,8),F(Pr,8),F(Cf),F(Ql),F(F2,8))},n.\u0275cmp=qe({type:n,selectors:[["cdk-virtual-scroll-viewport"]],viewQuery:function(e,i){if(1&e&&ft(Qj,7),2&e){let o;nt(o=it())&&(i._contentWrapper=o.first)}},hostAttrs:[1,"cdk-virtual-scroll-viewport"],hostVars:4,hostBindings:function(e,i){2&e&&Gt("cdk-virtual-scroll-orientation-horizontal","horizontal"===i.orientation)("cdk-virtual-scroll-orientation-vertical","horizontal"!==i.orientation)},inputs:{orientation:"orientation",appendOnly:"appendOnly"},outputs:{scrolledIndexChange:"scrolledIndexChange"},standalone:!0,features:[Kt([{provide:A2,useFactory:(t,e)=>t||e,deps:[[new $s,new im(F2)],n]}]),dt,zv],ngContentSelectors:Jj,decls:4,vars:4,consts:[[1,"cdk-virtual-scroll-content-wrapper"],["contentWrapper",""],[1,"cdk-virtual-scroll-spacer"]],template:function(e,i){1&e&&(_r(),D(0,"div",0,1),vn(2),C(),xe(3,"div",2)),2&e&&(d(3),Ha("width",i._totalContentWidth)("height",i._totalContentHeight))},styles:["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"],encapsulation:2,changeDetection:0}),n})(),kf=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({}),n})(),R2=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[xf,kf,s7,xf,kf]}),n})();class t1{attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t&&(this._attachedHost=null,t.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class Zd extends t1{constructor(t,e,i,o,s){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=s}}class Jl extends t1{constructor(t,e,i,o){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class a7 extends t1{constructor(t){super(),this.element=t instanceof bt?t.nativeElement:t}}class Q_{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof Zd?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof Jl?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof a7?(this._attachedPortal=t,this.attachDomPortal(t)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class l7 extends Q_{constructor(t,e,i,o,s){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=a=>{const l=a.element,c=this._document.createComment("dom-portal");l.parentNode.insertBefore(c,l),this.outletElement.appendChild(l),this._attachedPortal=a,super.setDisposeFn(()=>{c.parentNode&&c.parentNode.replaceChild(l,c)})},this._document=s}attachComponentPortal(t){const i=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);let o;return t.viewContainerRef?(o=t.viewContainerRef.createComponent(i,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector,t.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(t.injector||this._defaultInjector||mi.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=t,o}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=t,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}let c7=(()=>{class n extends Jl{constructor(e,i){super(e,i)}}return n.\u0275fac=function(e){return new(e||n)(F(lr),F(Xi))},n.\u0275dir=Ke({type:n,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[dt]}),n})(),tl=(()=>{class n extends Q_{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new ht,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");s.setAttachedHost(this),a.parentNode.insertBefore(l,a),this._getRootNode().appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,s=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),a=i.createComponent(s,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=e,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}}return n.\u0275fac=function(e){return new(e||n)(F(Na),F(Xi),F(St))},n.\u0275dir=Ke({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[dt]}),n})(),Xd=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({}),n})();function Ds(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}const Y2=O2();class x7{constructor(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=Wi(-this._previousScrollPosition.left),t.style.top=Wi(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const t=this._document.documentElement,i=t.style,o=this._document.body.style,s=i.scrollBehavior||"",a=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),Y2&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),Y2&&(i.scrollBehavior=s,o.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class C7{constructor(t,e,i,o){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(t){this._overlayRef=t}enable(){if(this._scrollSubscription)return;const t=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class B2{enable(){}disable(){}attach(){}}function n1(n,t){return t.some(e=>n.bottome.bottom||n.righte.right)}function H2(n,t){return t.some(e=>n.tope.bottom||n.lefte.right)}class k7{constructor(t,e,i,o){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(t){this._overlayRef=t}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();n1(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let S7=(()=>{class n{constructor(e,i,o,s){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new B2,this.close=a=>new C7(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new x7(this._viewportRuler,this._document),this.reposition=a=>new k7(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=s}}return n.\u0275fac=function(e){return new(e||n)(we(Cf),we(Ql),we(pt),we(St))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class Lf{constructor(t){if(this.scrollStrategy=new B2,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t){const e=Object.keys(t);for(const i of e)void 0!==t[i]&&(this[i]=t[i])}}}class D7{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let V2=(()=>{class n{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}}return n.\u0275fac=function(e){return new(e||n)(we(St))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),T7=(()=>{class n extends V2{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const s=this._attachedOverlays;for(let a=s.length-1;a>-1;a--)if(s[a]._keydownEvents.observers.length>0){const l=s[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>l.next(o)):l.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return n.\u0275fac=function(e){return new(e||n)(we(St),we(pt,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),L7=(()=>{class n extends V2{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=el(s)},this._clickListener=s=>{const a=el(s),l="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const c=this._attachedOverlays.slice();for(let M=c.length-1;M>-1;M--){const P=c[M];if(P._outsidePointerEvents.observers.length<1||!P.hasAttached())continue;if(P.overlayElement.contains(a)||P.overlayElement.contains(l))break;const Y=P._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>Y.next(s)):Y.next(s)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}}return n.\u0275fac=function(e){return new(e||n)(we(St),we(hi),we(pt,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),ig=(()=>{class n{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||e1()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(Y),this._backdropTransitionendHandler=Y=>{this._disposeBackdrop(Y.target)},this._keydownEvents=new X,this._outsidePointerEvents=new X,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(ei(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){const t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config={...this._config,...t},this._updateElementSize()}setDirection(t){this._config={...this._config,direction:t},this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){const t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const t=this._pane.style;t.width=Wi(this._config.width),t.height=Wi(this._config.height),t.minWidth=Wi(this._config.minWidth),t.minHeight=Wi(this._config.minHeight),t.maxWidth=Wi(this._config.maxWidth),t.maxHeight=Wi(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){const t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const t=this._backdropElement;if(t){if(this._animationsDisabled)return void this._disposeBackdrop(t);t.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{t.addEventListener("transitionend",this._backdropTransitionendHandler)}),t.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(t)},500))}}_toggleClasses(t,e,i){const o=q_(e||[]).filter(s=>!!s);o.length&&(i?t.classList.add(...o):t.classList.remove(...o))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const t=this._ngZone.onStable.pipe(xn(vt(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){const t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}_disposeBackdrop(t){t&&(t.removeEventListener("click",this._backdropClickHandler),t.removeEventListener("transitionend",this._backdropTransitionendHandler),t.remove(),this._backdropElement===t&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const j2="cdk-overlay-connected-position-bounding-box",E7=/([A-Za-z%]+)$/;class I7{constructor(t,e,i,o,s){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=s,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new X,this._resizeSubscription=T.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}get positions(){return this._preferredPositions}attach(t){this._validatePositions(),t.hostElement.classList.add(j2),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,s=[];let a;for(let l of this._preferredPositions){let c=this._getOriginPoint(t,o,l),M=this._getOverlayPoint(c,e,l),P=this._getOverlayFit(M,e,i,l);if(P.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(l,c);this._canFitWithFlexibleDimensions(P,M,i)?s.push({position:l,origin:c,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(c,l)}):(!a||a.overlayFit.visibleAreac&&(c=P,l=M)}return this._isPushed=!1,void this._applyPosition(l.position,l.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&ec(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(j2),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let o,s;if("center"==i.originX)o=t.left+t.width/2;else{const a=this._isRtl()?t.right:t.left,l=this._isRtl()?t.left:t.right;o="start"==i.originX?a:l}return e.left<0&&(o-=e.left),s="center"==i.originY?t.top+t.height/2:"top"==i.originY?t.top:t.bottom,e.top<0&&(s-=e.top),{x:o,y:s}}_getOverlayPoint(t,e,i){let o,s;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,s="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+o,y:t.y+s}}_getOverlayFit(t,e,i,o){const s=U2(e);let{x:a,y:l}=t,c=this._getOffset(o,"x"),M=this._getOffset(o,"y");c&&(a+=c),M&&(l+=M);let q=0-l,te=l+s.height-i.height,fe=this._subtractOverflows(s.width,0-a,a+s.width-i.width),ke=this._subtractOverflows(s.height,q,te),Ie=fe*ke;return{visibleArea:Ie,isCompletelyWithinViewport:s.width*s.height===Ie,fitsInViewportVertically:ke===s.height,fitsInViewportHorizontally:fe==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,s=i.right-e.x,a=z2(this._overlayRef.getConfig().minHeight),l=z2(this._overlayRef.getConfig().minWidth),M=t.fitsInViewportHorizontally||null!=l&&l<=s;return(t.fitsInViewportVertically||null!=a&&a<=o)&&M}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};const o=U2(e),s=this._viewportRect,a=Math.max(t.x+o.width-s.width,0),l=Math.max(t.y+o.height-s.height,0),c=Math.max(s.top-i.top-t.y,0),M=Math.max(s.left-i.left-t.x,0);let P=0,Y=0;return P=o.width<=s.width?M||-a:t.xfe&&!this._isInitialRender&&!this._growAfterOpen&&(a=t.y-fe/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)q=i.width-t.x+this._viewportMargin,P=t.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)Y=t.x,P=i.right-t.x;else{const te=Math.min(i.right-t.x+i.left,t.x),fe=this._lastBoundingBoxSize.width;P=2*te,Y=t.x-te,P>fe&&!this._isInitialRender&&!this._growAfterOpen&&(Y=t.x-fe/2)}return{top:a,left:Y,bottom:l,right:q,width:P,height:s}}_setBoundingBoxStyles(t,e){const i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;o.height=Wi(i.height),o.top=Wi(i.top),o.bottom=Wi(i.bottom),o.width=Wi(i.width),o.left=Wi(i.left),o.right=Wi(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",s&&(o.maxHeight=Wi(s)),a&&(o.maxWidth=Wi(a))}this._lastBoundingBoxSize=i,ec(this._boundingBox.style,o)}_resetBoundingBoxStyles(){ec(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){ec(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},o=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(o){const P=this._viewportRuler.getViewportScrollPosition();ec(i,this._getExactOverlayY(e,t,P)),ec(i,this._getExactOverlayX(e,t,P))}else i.position="static";let l="",c=this._getOffset(e,"x"),M=this._getOffset(e,"y");c&&(l+=`translateX(${c}px) `),M&&(l+=`translateY(${M}px)`),i.transform=l.trim(),a.maxHeight&&(o?i.maxHeight=Wi(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(o?i.maxWidth=Wi(a.maxWidth):s&&(i.maxWidth="")),ec(this._pane.style,i)}_getExactOverlayY(t,e,i){let o={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===t.overlayY?o.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":o.top=Wi(s.y),o}_getExactOverlayX(t,e,i){let a,o={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),a=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===a?o.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":o.left=Wi(s.x),o}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:H2(t,i),isOriginOutsideView:n1(t,i),isOverlayClipped:H2(e,i),isOverlayOutsideView:n1(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,o)=>i-Math.max(o,0),t)}_getNarrowedViewportRect(){const t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return"x"===e?null==t.offsetX?this._offsetX:t.offsetX:null==t.offsetY?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&q_(t).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){const t=this._origin;if(t instanceof bt)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();const e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}}function ec(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function z2(n){if("number"!=typeof n&&null!=n){const[t,e]=n.split(E7);return e&&"px"!==e?null:parseFloat(t)}return n||null}function U2(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const W2="cdk-global-overlay-wrapper";class P7{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(t){const e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(W2),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:s,maxWidth:a,maxHeight:l}=i,c=!("100%"!==o&&"100vw"!==o||a&&"100%"!==a&&"100vw"!==a),M=!("100%"!==s&&"100vh"!==s||l&&"100%"!==l&&"100vh"!==l),P=this._xPosition,Y=this._xOffset,q="rtl"===this._overlayRef.getConfig().direction;let te="",fe="",ke="";c?ke="flex-start":"center"===P?(ke="center",q?fe=Y:te=Y):q?"left"===P||"end"===P?(ke="flex-end",te=Y):("right"===P||"start"===P)&&(ke="flex-start",fe=Y):"left"===P||"start"===P?(ke="flex-start",te=Y):("right"===P||"end"===P)&&(ke="flex-end",fe=Y),t.position=this._cssPosition,t.marginLeft=c?"0":te,t.marginTop=M?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=c?"0":fe,e.justifyContent=ke,e.alignItems=M?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(W2),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let O7=(()=>{class n{constructor(e,i,o,s){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=s}global(){return new P7}flexibleConnectedTo(e){return new I7(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return n.\u0275fac=function(e){return new(e||n)(we(Ql),we(St),we(hi),we(ig))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),A7=0,to=(()=>{class n{constructor(e,i,o,s,a,l,c,M,P,Y,q,te){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=s,this._keyboardDispatcher=a,this._injector=l,this._ngZone=c,this._document=M,this._directionality=P,this._location=Y,this._outsideClickDispatcher=q,this._animationsModuleType=te}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),s=this._createPortalOutlet(o),a=new Lf(e);return a.direction=a.direction||this._directionality.value,new Ef(s,i,o,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+A7++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Pd)),new l7(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return n.\u0275fac=function(e){return new(e||n)(we(S7),we(ig),we(Na),we(O7),we(T7),we(mi),we(pt),we(St),we(Pr),we(Vh),we(L7),we(Vi,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const F7=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],$2=new Be("cdk-connected-overlay-scroll-strategy");let r1=(()=>{class n{constructor(e){this.elementRef=e}}return n.\u0275fac=function(e){return new(e||n)(F(bt))},n.\u0275dir=Ke({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),n})(),G2=(()=>{class n{constructor(e,i,o,s,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=T.EMPTY,this._attachSubscription=T.EMPTY,this._detachSubscription=T.EMPTY,this._positionSubscription=T.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new ht,this.positionChange=new ht,this.attach=new ht,this.detach=new ht,this.overlayKeydown=new ht,this.overlayOutsideClick=new ht,this._templatePortal=new Jl(i,o),this._scrollStrategyFactory=s,this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=hn(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=hn(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=hn(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=hn(e)}get push(){return this._push}set push(e){this._push=hn(e)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=F7);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!Ds(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Lf({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof r1?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(_T(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(to),F(lr),F(Xi),F($2),F(Pr,8))},n.\u0275dir=Ke({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:["cdkConnectedOverlayOrigin","origin"],positions:["cdkConnectedOverlayPositions","positions"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Gi]}),n})();const N7={provide:$2,deps:[to],useFactory:function R7(n){return()=>n.scrollStrategies.reposition()}};let Qd=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({providers:[to,N7],imports:[xf,Xd,R2,R2]}),n})();function o1(n,t=$d){return e=>e.lift(new Y7(n,t))}class Y7{constructor(t,e){this.dueTime=t,this.scheduler=e}call(t,e){return e.subscribe(new B7(t,this.dueTime,this.scheduler))}}class B7 extends A{constructor(t,e,i){super(t),this.dueTime=e,this.scheduler=i,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}_next(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(H7,this.dueTime,this))}_complete(){this.debouncedNext(),this.destination.complete()}debouncedNext(){if(this.clearDebounce(),this.hasValue){const{lastValue:t}=this;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}}clearDebounce(){const t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)}}function H7(n){n.debouncedNext()}function s1(n){return t=>t.lift(new V7(n))}class V7{constructor(t){this.total=t}call(t,e){return e.subscribe(new j7(t,this.total))}}class j7 extends A{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){++this.count>this.total&&this.destination.next(t)}}function a1(n,t){return e=>e.lift(new z7(n,t))}class z7{constructor(t,e){this.compare=t,this.keySelector=e}call(t,e){return e.subscribe(new U7(t,this.compare,this.keySelector))}}class U7 extends A{constructor(t,e,i){super(t),this.keySelector=i,this.hasKey=!1,"function"==typeof e&&(this.compare=e)}compare(t,e){return t===e}_next(t){let e;try{const{keySelector:o}=this;e=o?o(t):t}catch(o){return this.destination.error(o)}let i=!1;if(this.hasKey)try{const{compare:o}=this;i=o(this.key,e)}catch(o){return this.destination.error(o)}else this.hasKey=!0;i||(this.key=e,this.destination.next(t))}}let q2=(()=>{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),W7=(()=>{class n{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=la(e);return new ce(o=>{const a=this._observeElement(i).subscribe(o);return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new X,o=this._mutationObserverFactory.create(s=>i.next(s));o&&o.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:o,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:o}=this._observedElements.get(e);i&&i.disconnect(),o.complete(),this._observedElements.delete(e)}}}return n.\u0275fac=function(e){return new(e||n)(we(q2))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),K2=(()=>{class n{constructor(e,i,o){this._contentObserver=e,this._elementRef=i,this._ngZone=o,this.event=new ht,this._disabled=!1,this._currentSubscription=null}get disabled(){return this._disabled}set disabled(e){this._disabled=hn(e),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=vo(e),this._subscribe()}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(o1(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(W7),F(bt),F(pt))},n.\u0275dir=Ke({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]}),n})(),l1=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({providers:[q2]}),n})();const Z2=new Set;let Jd,$7=(()=>{class n{constructor(e){this._platform=e,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):q7}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function G7(n){if(!Z2.has(n))try{Jd||(Jd=document.createElement("style"),Jd.setAttribute("type","text/css"),document.head.appendChild(Jd)),Jd.sheet&&(Jd.sheet.insertRule(`@media ${n} {body{ }}`,0),Z2.add(n))}catch(t){console.error(t)}}(e),this._matchMedia(e)}}return n.\u0275fac=function(e){return new(e||n)(we(hi))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function q7(n){return{matches:"all"===n||""===n,media:n,addListener:()=>{},removeListener:()=>{}}}let c1=(()=>{class n{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new X}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return X2(q_(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let s=M0(X2(q_(e)).map(a=>this._registerQuery(a).observable));return s=Gl(s.pipe(ei(1)),s.pipe(s1(1),o1(0))),s.pipe(Ce(a=>{const l={matches:!1,breakpoints:{}};return a.forEach(({matches:c,query:M})=>{l.matches=l.matches||c,l.breakpoints[M]=c}),l}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),s={observable:new ce(a=>{const l=c=>this._zone.run(()=>a.next(c));return i.addListener(l),()=>{i.removeListener(l)}}).pipe(bo(i),Ce(({matches:a})=>({query:e,matches:a})),xn(this._destroySubject)),mql:i};return this._queries.set(e,s),s}}return n.\u0275fac=function(e){return new(e||n)(we($7),we(pt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function X2(n){return n.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}function rg(n,t){return(n.getAttribute(t)||"").match(/\S+/g)||[]}const J2="cdk-describedby-message",og="cdk-describedby-host";let d1=0,Q7=(()=>{class n{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+d1++,this._document=e,this._id=Lt(Id)+"-"+d1++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const s=u1(i,o);"string"!=typeof i?(eL(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,o),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,o){if(!i||!this._isElementNode(e))return;const s=u1(i,o);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),"string"==typeof i){const a=this._messageRegistry.get(s);a&&0===a.referenceCount&&this._deleteMessageElement(s)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${og}="${this._id}"]`);for(let i=0;i0!=o.indexOf(J2));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);(function Z7(n,t,e){const i=rg(n,t);i.some(o=>o.trim()==e.trim())||(i.push(e.trim()),n.setAttribute(t,i.join(" ")))})(e,"aria-describedby",o.messageElement.id),e.setAttribute(og,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,function X7(n,t,e){const o=rg(n,t).filter(s=>s!=e.trim());o.length?n.setAttribute(t,o.join(" ")):n.removeAttribute(t)}(e,"aria-describedby",o.messageElement.id),e.removeAttribute(og)}_isElementDescribedByMessage(e,i){const o=rg(e,"aria-describedby"),s=this._messageRegistry.get(i),a=s&&s.messageElement.id;return!!a&&-1!=o.indexOf(a)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const o=null==i?"":`${i}`.trim(),s=e.getAttribute("aria-label");return!(!o||s&&s.trim()===o)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}}return n.\u0275fac=function(e){return new(e||n)(we(St),we(hi))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function u1(n,t){return"string"==typeof n?`${t||""}/${n}`:n}function eL(n,t){n.id||(n.id=`${J2}-${t}-${d1++}`)}class tL{constructor(t){this._items=t,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new X,this._typeaheadSubscription=T.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=e=>e.disabled,this._pressedLetters=[],this.tabOut=new X,this.change=new X,t instanceof Hl&&(this._itemChangesSubscription=t.changes.subscribe(e=>{if(this._activeItem){const o=e.toArray().indexOf(this._activeItem);o>-1&&o!==this._activeItemIndex&&(this._activeItemIndex=o)}}))}skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(ui(e=>this._pressedLetters.push(e)),o1(t),ki(()=>this._pressedLetters.length>0),Ce(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!t[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const s=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(s=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],t.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(t){const e=this._getItemsArray(),i="number"==typeof t?t:e.indexOf(t);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(t){this._wrap?this._setActiveInWrapMode(t):this._setActiveInDefaultMode(t)}_setActiveInWrapMode(t){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+t*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(t){this._setActiveItemByIndex(this._activeItemIndex+t,t)}_setActiveItemByIndex(t,e){const i=this._getItemsArray();if(i[t]){for(;this._skipPredicateFn(i[t]);)if(!i[t+=e])return;this.setActiveItem(t)}}_getItemsArray(){return this._items instanceof Hl?this._items.toArray():this._items}}class J7 extends tL{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}}class nL extends tL{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}}let sg=(()=>{class n{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function t9(n){return!!(n.offsetWidth||n.offsetHeight||"function"==typeof n.getClientRects&&n.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function e9(n){try{return n.frameElement}catch{return null}}(function c9(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}(e));if(i&&(-1===rL(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),s=rL(e);return e.hasAttribute("contenteditable")?-1!==s:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function a9(n){let t=n.nodeName.toLowerCase(),e="input"===t&&n.type;return"text"===e||"password"===e||"select"===t||"textarea"===t}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==s:"video"===o?-1!==s&&(null!==s||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function l9(n){return!function i9(n){return function o9(n){return"input"==n.nodeName.toLowerCase()}(n)&&"hidden"==n.type}(n)&&(function n9(n){let t=n.nodeName.toLowerCase();return"input"===t||"select"===t||"button"===t||"textarea"===t}(n)||function r9(n){return function s9(n){return"a"==n.nodeName.toLowerCase()}(n)&&n.hasAttribute("href")}(n)||n.hasAttribute("contenteditable")||iL(n))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}}return n.\u0275fac=function(e){return new(e||n)(we(hi))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function iL(n){if(!n.hasAttribute("tabindex")||void 0===n.tabIndex)return!1;let t=n.getAttribute("tabindex");return!(!t||isNaN(parseInt(t,10)))}function rL(n){if(!iL(n))return null;const t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}class d9{constructor(t,e,i,o,s=!1){this._element=t,this._checker=e,this._ngZone=i,this._document=o,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,s||this.attachAnchors()}get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}destroy(){const t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){const e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return"start"==t?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(t),!!i}return e.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){const e=this._getRegionBoundary("start");return e&&e.focus(t),!!e}focusLastTabbableElement(t){const e=this._getRegionBoundary("end");return e&&e.focus(t),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;const e=t.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._ngZone.isStable?t():this._ngZone.onStable.pipe(ei(1)).subscribe(t)}}let h1=(()=>{class n{constructor(e,i,o){this._checker=e,this._ngZone=i,this._document=o}create(e,i=!1){return new d9(e,this._checker,this._ngZone,this._document,i)}}return n.\u0275fac=function(e){return new(e||n)(we(sg),we(pt),we(St))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function f1(n){return 0===n.buttons||0===n.offsetX&&0===n.offsetY}function p1(n){const t=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!(!t||-1!==t.identifier||null!=t.radiusX&&1!==t.radiusX||null!=t.radiusY&&1!==t.radiusY)}const u9=new Be("cdk-input-modality-detector-options"),h9={ignoreKeys:[18,17,224,91,16]},eu=Ja({passive:!0,capture:!0});let f9=(()=>{class n{constructor(e,i,o,s){this._platform=e,this._mostRecentTarget=null,this._modality=new Er(null),this._lastTouchMs=0,this._onKeydown=a=>{this._options?.ignoreKeys?.some(l=>l===a.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=el(a))},this._onMousedown=a=>{Date.now()-this._lastTouchMs<650||(this._modality.next(f1(a)?"keyboard":"mouse"),this._mostRecentTarget=el(a))},this._onTouchstart=a=>{p1(a)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=el(a))},this._options={...h9,...s},this.modalityDetected=this._modality.pipe(s1(1)),this.modalityChanged=this.modalityDetected.pipe(a1()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,eu),o.addEventListener("mousedown",this._onMousedown,eu),o.addEventListener("touchstart",this._onTouchstart,eu)})}get mostRecentModality(){return this._modality.value}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,eu),document.removeEventListener("mousedown",this._onMousedown,eu),document.removeEventListener("touchstart",this._onTouchstart,eu))}}return n.\u0275fac=function(e){return new(e||n)(we(hi),we(pt),we(St),we(u9,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const p9=new Be("liveAnnouncerElement",{providedIn:"root",factory:function m9(){return null}}),_9=new Be("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let g9=0,m1=(()=>{class n{constructor(e,i,o,s){this._ngZone=i,this._defaultOptions=s,this._document=o,this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let s,a;return 1===i.length&&"number"==typeof i[0]?a=i[0]:[s,a]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=o&&o.politeness?o.politeness:"polite"),null==a&&o&&(a=o.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(l=>this._currentResolve=l)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof a&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),o=this._document.createElement("div");for(let s=0;s .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class n{constructor(e,i,o,s,a){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new X,this._rootNodeFocusAndBlurListener=l=>{for(let M=el(l);M;M=M.parentElement)"focus"===l.type?this._onFocus(l,M):this._onBlur(l,M)},this._document=s,this._detectionMode=a?.detectionMode||0}monitor(e,i=!1){const o=la(e);if(!this._platform.isBrowser||1!==o.nodeType)return We(null);const s=function Gj(n){if(function $j(){if(null==Q0){const n=typeof document<"u"?document.head:null;Q0=!(!n||!n.createShadowRoot&&!n.attachShadow)}return Q0}()){const t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}(o)||this._getDocument(),a=this._elementInfo.get(o);if(a)return i&&(a.checkChildren=!0),a.subject;const l={checkChildren:i,subject:new X,rootNode:s};return this._elementInfo.set(o,l),this._registerGlobalListeners(l),l.subject}stopMonitoring(e){const i=la(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const s=la(e);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([l,c])=>this._originChanged(l,i,c)):(this._setOrigin(i),"function"==typeof s.focus&&s.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return 1===this._detectionMode||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),s=el(e);!o||!o.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,ag),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,ag)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(xn(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,ag),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,ag),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,s)=>{(s===e||o.checkChildren&&s.contains(e))&&i.push([s,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const s=e.labels;if(s)for(let a=0;a{class n{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new ht}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(nl))},n.\u0275dir=Ke({type:n,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]}),n})();const sL="cdk-high-contrast-black-on-white",aL="cdk-high-contrast-white-on-black",_1="cdk-high-contrast-active";let lL=(()=>{class n{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=Lt(c1).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,s=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return 2;case"rgb(255,255,255)":case"rgb(255,250,239)":return 1}return 0}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(_1,sL,aL),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?e.add(_1,sL):2===i&&e.add(_1,aL)}}}return n.\u0275fac=function(e){return new(e||n)(we(hi),we(St))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),g1=(()=>{class n{constructor(e){e._applyBodyHighContrastModeCssClasses()}}return n.\u0275fac=function(e){return new(e||n)(we(lL))},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[l1]}),n})();var tc_OPEN="mdc-dialog--open",cL_DIALOG_ANIMATION_CLOSE_TIME_MS=(["textarea",".mdc-menu .mdc-list-item",".mdc-menu .mdc-deprecated-list-item"].join(", "),75);function y9(n,t){}class lg{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0}}let dL=(()=>{class n extends Q_{constructor(e,i,o,s,a,l,c,M){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=s,this._interactivityChecker=a,this._ngZone=l,this._overlayRef=c,this._focusMonitor=M,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this.attachDomPortal=P=>{this._portalOutlet.hasAttached();const Y=this._portalOutlet.attachDomPortal(P);return this._contentAttached(),Y},this._ariaLabelledBy=this._config.ariaLabelledBy||null,this._document=o}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const o=J0(),s=this._elementRef.nativeElement;(!o||o===this._document.body||o===s||s.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=J0();return e===i||e.contains(i)}_initializeFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=J0())}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(h1),F(St,8),F(lg),F(sg),F(pt),F(Ef),F(nl))},n.\u0275cmp=qe({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(e,i){if(1&e&&ft(tl,7),2&e){let o;nt(o=it())&&(i._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(e,i){2&e&&Ut("id",i._config.id||null)("role",i._config.role)("aria-modal",i._config.ariaModal)("aria-labelledby",i._config.ariaLabel?null:i._ariaLabelledBy)("aria-label",i._config.ariaLabel)("aria-describedby",i._config.ariaDescribedBy||null)},features:[dt],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(e,i){1&e&&j(0,y9,0,0,"ng-template",0)},dependencies:[tl],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2}),n})();class b1{constructor(t,e){this.overlayRef=t,this.config=e,this.closed=new X,this.disableClose=e.disableClose,this.backdropClick=t.backdropClick(),this.keydownEvents=t.keydownEvents(),this.outsidePointerEvents=t.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!Ds(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})})}close(t,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this.overlayRef.dispose(),i.next(t),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(t="",e=""){return this.overlayRef.updateSize({width:t,height:e}),this}addPanelClass(t){return this.overlayRef.addPanelClass(t),this}removePanelClass(t){return this.overlayRef.removePanelClass(t),this}}const uL=new Be("DialogScrollStrategy"),M9=new Be("DialogData"),w9=new Be("DefaultDialogConfig"),C9={provide:uL,deps:[to],useFactory:function x9(n){return()=>n.scrollStrategies.block()}};let k9=0,hL=(()=>{class n{constructor(e,i,o,s,a,l){this._overlay=e,this._injector=i,this._defaultOptions=o,this._parentDialog=s,this._overlayContainer=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new X,this._afterOpenedAtThisLevel=new X,this._ariaHiddenElements=new Map,this.afterAllClosed=tf(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(bo(void 0))),this._scrollStrategy=l}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}open(e,i){(i={...this._defaultOptions||new lg,...i}).id=i.id||"cdk-dialog-"+k9++,i.id&&this.getDialogById(i.id);const s=this._getOverlayConfig(i),a=this._overlay.create(s),l=new b1(a,i),c=this._attachContainer(a,l,i);return l.containerInstance=c,this._attachDialogContent(e,l,c,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(l),l.closed.subscribe(()=>this._removeOpenDialog(l,!0)),this.afterOpened.next(l),l}closeAll(){v1(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){v1(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),v1(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Lf({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const s=o.injector||o.viewContainerRef?.injector,a=[{provide:lg,useValue:o},{provide:b1,useValue:i},{provide:Ef,useValue:e}];let l;o.container?"function"==typeof o.container?l=o.container:(l=o.container.type,a.push(...o.container.providers(o))):l=dL;const c=new Zd(l,o.viewContainerRef,mi.create({parent:s||this._injector,providers:a}),o.componentFactoryResolver);return e.attach(c).instance}_attachDialogContent(e,i,o,s){if(e instanceof lr){const a=this._createInjector(s,i,o,void 0);let l={$implicit:s.data,dialogRef:i};s.templateContext&&(l={...l,..."function"==typeof s.templateContext?s.templateContext():s.templateContext}),o.attachTemplatePortal(new Jl(e,null,l,a))}else{const a=this._createInjector(s,i,o,this._injector),l=o.attachComponentPortal(new Zd(e,s.viewContainerRef,a,s.componentFactoryResolver));i.componentInstance=l.instance}}_createInjector(e,i,o,s){const a=e.injector||e.viewContainerRef?.injector,l=[{provide:M9,useValue:e.data},{provide:b1,useValue:i}];return e.providers&&("function"==typeof e.providers?l.push(...e.providers(i,e,o)):l.push(...e.providers)),e.direction&&(!a||!a.get(Pr,null,{optional:!0}))&&l.push({provide:Pr,useValue:{value:e.direction,change:We()}}),mi.create({parent:a||s,providers:l})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((s,a)=>{s?a.setAttribute("aria-hidden",s):a.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let o=i.length-1;o>-1;o--){const s=i[o];s!==e&&"SCRIPT"!==s.nodeName&&"STYLE"!==s.nodeName&&!s.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(s,s.getAttribute("aria-hidden")),s.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}}return n.\u0275fac=function(e){return new(e||n)(we(to),we(mi),we(w9,8),we(n,12),we(ig),we(uL))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function v1(n,t){let e=n.length;for(;e--;)t(n[e])}let S9=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({providers:[hL,C9],imports:[Qd,Xd,g1,Xd]}),n})();const D9=["text"];function T9(n,t){if(1&n&&xe(0,"mat-pseudo-checkbox",5),2&n){const e=z();w("state",e.selected?"checked":"unchecked")("disabled",e.disabled)}}function L9(n,t){if(1&n&&(D(0,"span",6),I(1),C()),2&n){const e=z();d(1),me("(",e.group.label,")")}}const E9=[[["mat-icon"]],"*"],I9=["mat-icon","*"],O9=new Be("mat-sanity-checks",{providedIn:"root",factory:function P9(){return!0}});let Hn=(()=>{class n{constructor(e,i,o){this._sanityChecks=i,this._document=o,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!e1()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}}return n.\u0275fac=function(e){return new(e||n)(we(lL),we(O9,8),we(St))},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[xf,xf]}),n})();function tu(n){return class extends n{constructor(...t){super(...t),this._disabled=!1}get disabled(){return this._disabled}set disabled(t){this._disabled=hn(t)}}}function If(n,t){return class extends n{constructor(...e){super(...e),this.defaultColor=t,this.color=t}get color(){return this._color}set color(e){const i=e||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}}}function Pf(n){return class extends n{constructor(...t){super(...t),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=hn(t)}}}function mL(n,t=0){return class extends n{constructor(...e){super(...e),this._tabIndex=t,this.defaultTabIndex=t}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(e){this._tabIndex=null!=e?vo(e):this.defaultTabIndex}}}function _L(n){return class extends n{constructor(...t){super(...t),this.errorState=!1}updateErrorState(){const t=this.errorState,s=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);s!==t&&(this.errorState=s,this.stateChanges.next())}}}let F9=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.dirty||i&&i.submitted))}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),y1=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class R9{constructor(t,e,i,o=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const gL=Ja({passive:!0,capture:!0});class N9{constructor(){this._events=new Map,this._delegateEventHandler=t=>{const e=el(t);e&&this._events.get(t.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(s=>s.handleEvent(t))})}}addHandler(t,e,i,o){const s=this._events.get(e);if(s){const a=s.get(i);a?a.add(o):s.set(i,new Set([o]))}else this._events.set(e,new Map([[i,new Set([o])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,gL)})}removeHandler(t,e,i){const o=this._events.get(t);if(!o)return;const s=o.get(e);!s||(s.delete(i),0===s.size&&o.delete(e),0===o.size&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,gL)))}}const bL={enterDuration:225,exitDuration:150},vL=Ja({passive:!0,capture:!0}),yL=["mousedown","touchstart"],ML=["mouseup","mouseleave","touchend","touchcancel"];class Af{constructor(t,e,i,o){this._target=t,this._ngZone=e,this._platform=o,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,o.isBrowser&&(this._containerElement=la(i))}fadeInRipple(t,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s={...bL,...i.animation};i.centered&&(t=o.left+o.width/2,e=o.top+o.height/2);const a=i.radius||function B9(n,t,e){const i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),o=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+o*o)}(t,e,o),l=t-o.left,c=e-o.top,M=s.enterDuration,P=document.createElement("div");P.classList.add("mat-ripple-element"),P.style.left=l-a+"px",P.style.top=c-a+"px",P.style.height=2*a+"px",P.style.width=2*a+"px",null!=i.color&&(P.style.backgroundColor=i.color),P.style.transitionDuration=`${M}ms`,this._containerElement.appendChild(P);const Y=window.getComputedStyle(P),te=Y.transitionDuration,fe="none"===Y.transitionProperty||"0s"===te||"0s, 0s"===te||0===o.width&&0===o.height,ke=new R9(this,P,i,fe);P.style.transform="scale3d(1, 1, 1)",ke.state=0,i.persistent||(this._mostRecentTransientRipple=ke);let Ie=null;return!fe&&(M||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const Re=()=>this._finishRippleTransition(ke),Xe=()=>this._destroyRipple(ke);P.addEventListener("transitionend",Re),P.addEventListener("transitioncancel",Xe),Ie={onTransitionEnd:Re,onTransitionCancel:Xe}}),this._activeRipples.set(ke,Ie),(fe||!M)&&this._finishRippleTransition(ke),ke}fadeOutRipple(t){if(2===t.state||3===t.state)return;const e=t.element,i={...bL,...t.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=2,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){const e=la(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,yL.forEach(i=>{Af._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(t){"mousedown"===t.type?this._onMousedown(t):"touchstart"===t.type?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{ML.forEach(e=>{this._triggerElement.addEventListener(e,this,vL)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){0===t.state?this._startFadeOutTransition(t):2===t.state&&this._destroyRipple(t)}_startFadeOutTransition(t){const e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=1,!i&&(!e||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){const e=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=3,null!==e&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel)),t.element.remove()}_onMousedown(t){const e=f1(t),i=this._lastTouchStartEvent&&Date.now(){!t.config.persistent&&(1===t.state||t.config.terminateOnPointerUp&&0===t.state)&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const t=this._triggerElement;t&&(yL.forEach(e=>Af._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&ML.forEach(e=>t.removeEventListener(e,this,vL)))}}Af._eventManager=new N9;const wL=new Be("mat-ripple-global-options");let Ts=(()=>{class n{constructor(e,i,o,s,a){this._elementRef=e,this._animationMode=a,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new Af(this,i,e,o)}get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,o){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...o}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt),F(hi),F(wL,8),F(Vi,8))},n.\u0275dir=Ke({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(e,i){2&e&&Gt("mat-ripple-unbounded",i.unbounded)},inputs:{color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],radius:["matRippleRadius","radius"],animation:["matRippleAnimation","animation"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"]},exportAs:["matRipple"]}),n})(),Ff=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[Hn,Hn]}),n})(),H9=(()=>{class n{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1}}return n.\u0275fac=function(e){return new(e||n)(F(Vi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:8,hostBindings:function(e,i){2&e&&Gt("mat-pseudo-checkbox-indeterminate","indeterminate"===i.state)("mat-pseudo-checkbox-checked","checked"===i.state)("mat-pseudo-checkbox-disabled",i.disabled)("_mat-animation-noopable","NoopAnimations"===i._animationMode)},inputs:{state:"state",disabled:"disabled"},decls:0,vars:0,template:function(e,i){},styles:['.mat-pseudo-checkbox{border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}.mat-pseudo-checkbox-checked::after{top:2.7px;width:10px;height:4px}'],encapsulation:2,changeDetection:0}),n})(),V9=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[Hn]}),n})();const xL=new Be("MAT_OPTION_PARENT_COMPONENT"),CL=new Be("MatOptgroup");let j9=0;class z9{constructor(t,e=!1){this.source=t,this.isUserInput=e}}let U9=(()=>{class n{constructor(e,i,o,s){this._element=e,this._changeDetectorRef=i,this._parent=o,this.group=s,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+j9++,this.onSelectionChange=new ht,this._stateChanges=new X}get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=hn(e)}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}deselect(){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}focus(e,i){const o=this._getHostElement();"function"==typeof o.focus&&o.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!Ds(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getAriaSelected(){return this.selected||!this.multiple&&null}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new z9(this,e))}}return n.\u0275fac=function(e){Ya()},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(D9,7),2&e){let o;nt(o=it())&&(i._text=o.first)}},inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}}),n})(),nu=(()=>{class n extends U9{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(di),F(xL,8),F(CL,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-mdc-option","mat-mdc-focus-indicator","mdc-list-item"],hostVars:12,hostBindings:function(e,i){1&e&&ye("click",function(){return i._selectViaInteraction()})("keydown",function(s){return i._handleKeydown(s)}),2&e&&(Qs("id",i.id),Ut("tabindex",i._getTabIndex())("aria-selected",i._getAriaSelected())("aria-disabled",i.disabled.toString()),Gt("mdc-list-item--selected",i.selected)("mat-mdc-option-multiple",i.multiple)("mat-mdc-option-active",i.active)("mdc-list-item--disabled",i.disabled))},exportAs:["matOption"],features:[dt],ngContentSelectors:I9,decls:7,vars:4,consts:[["class","mat-mdc-option-pseudo-checkbox",3,"state","disabled",4,"ngIf"],[1,"mdc-list-item__primary-text"],["text",""],["class","cdk-visually-hidden",4,"ngIf"],["mat-ripple","",1,"mat-mdc-option-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-mdc-option-pseudo-checkbox",3,"state","disabled"],[1,"cdk-visually-hidden"]],template:function(e,i){1&e&&(_r(E9),j(0,T9,1,2,"mat-pseudo-checkbox",0),vn(1),D(2,"span",1,2),vn(4,1),C(),j(5,L9,2,1,"span",3),xe(6,"div",4)),2&e&&(w("ngIf",i.multiple),d(5),w("ngIf",i.group&&i.group._inert),d(1),w("matRippleTrigger",i._getHostElement())("matRippleDisabled",i.disabled||i.disableRipple))},dependencies:[Ts,Ot,H9],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option.mdc-list-item{align-items:center}.mat-mdc-option.mdc-list-item--disabled{opacity:.38;cursor:default}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox{margin-right:0;margin-left:16px}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-active::before{content:""}'],encapsulation:2,changeDetection:0}),n})(),kL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[Ff,na,Hn,V9]}),n})();function G9(n,t){}class An{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}let q9=(()=>{class n extends dL{constructor(e,i,o,s,a,l,c,M){super(e,i,o,s,a,l,c,M),this._animationStateChanged=new ht}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(h1),F(St,8),F(An),F(sg),F(pt),F(Ef),F(nl))},n.\u0275cmp=qe({type:n,selectors:[["ng-component"]],features:[dt],decls:0,vars:0,template:function(e,i){},encapsulation:2}),n})();const SL="--mat-dialog-transition-duration";function DL(n){return null==n?null:"number"==typeof n?n:n.endsWith("ms")?vo(n.substring(0,n.length-2)):n.endsWith("s")?1e3*vo(n.substring(0,n.length-1)):"0"===n?0:null}let K9=(()=>{class n extends q9{constructor(e,i,o,s,a,l,c,M,P){super(e,i,o,s,a,l,c,P),this._animationMode=M,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._hostElement=this._elementRef.nativeElement,this._openAnimationDuration=this._animationsEnabled?DL(this._config.enterAnimationDuration)??150:0,this._closeAnimationDuration=this._animationsEnabled?DL(this._config.exitAnimationDuration)??cL_DIALOG_ANIMATION_CLOSE_TIME_MS:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._openAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._closeAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._openAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(SL,`${this._openAnimationDuration}ms`),this._hostElement.classList.add("mdc-dialog--opening"),this._hostElement.classList.add(tc_OPEN),this._waitForAnimationToComplete(this._openAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(tc_OPEN),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._closeAnimationDuration}),this._hostElement.classList.remove(tc_OPEN),this._animationsEnabled?(this._hostElement.style.setProperty(SL,`${this._openAnimationDuration}ms`),this._hostElement.classList.add("mdc-dialog--closing"),this._waitForAnimationToComplete(this._closeAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_clearAnimationClasses(){this._hostElement.classList.remove("mdc-dialog--opening"),this._hostElement.classList.remove("mdc-dialog--closing")}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(h1),F(St,8),F(An),F(sg),F(pt),F(Ef),F(Vi,8),F(nl))},n.\u0275cmp=qe({type:n,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:8,hostBindings:function(e,i){2&e&&(Qs("id",i._config.id),Ut("aria-modal",i._config.ariaModal)("role",i._config.role)("aria-labelledby",i._config.ariaLabel?null:i._ariaLabelledBy)("aria-label",i._config.ariaLabel)("aria-describedby",i._config.ariaDescribedBy||null),Gt("_mat-animation-noopable",!i._animationsEnabled))},features:[dt],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),j(2,G9,0,0,"ng-template",2),C()())},dependencies:[tl],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;transform:scale(0.8);opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{transform:none;opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{display:block;width:100%;height:100%}.mat-mdc-dialog-container{outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, var(--mdc-shape-medium, 4px))}.mat-mdc-dialog-container.mdc-dialog--scrollable .mdc-dialog__title,.mat-mdc-dialog-container.mdc-dialog--scrollable .mdc-dialog__actions,.mat-mdc-dialog-container.mdc-dialog--scrollable.mdc-dialog-scroll-divider-footer .mdc-dialog__actions{border-color:var(--mdc-dialog-with-divider-divider-color, black)}.mat-mdc-dialog-container.mdc-dialog--scrollable .mdc-dialog__title{border-bottom-color:var(--mdc-dialog-with-divider-divider-color, black)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, "Arial");line-height:var(--mdc-dialog-subhead-line-height, 14px);font-size:var(--mdc-dialog-subhead-size, 14px);font-weight:var(--mdc-dialog-subhead-weight, 500);letter-spacing:var(--mdc-dialog-subhead-tracking, 1px)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, black)}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, "Arial");line-height:var(--mdc-dialog-supporting-text-line-height, 14px);font-size:var(--mdc-dialog-supporting-text-size, 14px);font-weight:var(--mdc-dialog-supporting-text-weight, 500);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 1px)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, black)}.mat-mdc-dialog-container .mdc-dialog__container{transition-duration:var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container{transition:none}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-actions{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2}),n})();class Vn{constructor(t,e,i){this._ref=t,this._containerInstance=i,this._afterOpened=new X,this._beforeClosed=new X,this._state=0,this.disableClose=e.disableClose,this.id=t.id,i._animationStateChanged.pipe(ki(o=>"opened"===o.state),ei(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(ki(o=>"closed"===o.state),ei(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),vt(this.backdropClick(),this.keydownEvents().pipe(ki(o=>27===o.keyCode&&!this.disableClose&&!Ds(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),TL(this,"keydown"===o.type?"keyboard":"mouse"))})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(ki(e=>"closing"===e.state),ei(1)).subscribe(e=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(t){let e=this._ref.config.positionStrategy;return t&&(t.left||t.right)?t.left?e.left(t.left):e.right(t.right):e.centerHorizontally(),t&&(t.top||t.bottom)?t.top?e.top(t.top):e.bottom(t.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(t="",e=""){return this._ref.updateSize(t,e),this}addPanelClass(t){return this._ref.addPanelClass(t),this}removePanelClass(t){return this._ref.removePanelClass(t),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function TL(n,t,e){return n._closeInteractionType=t,n.close(e)}const Si=new Be("MatMdcDialogData"),LL=new Be("mat-mdc-dialog-default-options"),EL=new Be("mat-mdc-dialog-scroll-strategy"),X9={provide:EL,deps:[to],useFactory:function Z9(n){return()=>n.scrollStrategies.block()}};let Q9=0,J9=(()=>{class n{constructor(e,i,o,s,a,l,c,M,P,Y){this._overlay=e,this._defaultOptions=o,this._parentDialog=s,this._dialogRefConstructor=c,this._dialogContainerType=M,this._dialogDataToken=P,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new X,this._afterOpenedAtThisLevel=new X,this._idPrefix="mat-dialog-",this.dialogConfigClass=An,this.afterAllClosed=tf(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(bo(void 0))),this._scrollStrategy=l,this._dialog=i.get(hL)}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}open(e,i){let o;(i={...this._defaultOptions||new An,...i}).id=i.id||`${this._idPrefix}${Q9++}`,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const s=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:lg,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(a,l,c)=>(o=new this._dialogRefConstructor(a,i,c),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:c},{provide:this._dialogDataToken,useValue:l.data},{provide:this._dialogRefConstructor,useValue:o}])});return o.componentInstance=s.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{const a=this.openDialogs.indexOf(o);a>-1&&(this.openDialogs.splice(a,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}}return n.\u0275fac=function(e){Ya()},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Fn=(()=>{class n extends J9{constructor(e,i,o,s,a,l,c,M){super(e,i,s,l,c,a,Vn,K9,Si,M),this._idPrefix="mat-mdc-dialog-"}}return n.\u0275fac=function(e){return new(e||n)(we(to),we(mi),we(Vh,8),we(LL,8),we(EL),we(n,12),we(ig),we(Vi,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),ez=0,tz=(()=>{class n{constructor(e,i,o){this.dialogRef=e,this._elementRef=i,this._dialog=o,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=PL(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){TL(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}}return n.\u0275fac=function(e){return new(e||n)(F(Vn,8),F(bt),F(Fn))},n.\u0275dir=Ke({type:n,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(e,i){1&e&&ye("click",function(s){return i._onButtonClick(s)}),2&e&&Ut("aria-label",i.ariaLabel||null)("type",i.type)},inputs:{ariaLabel:["aria-label","ariaLabel"],type:"type",dialogResult:["mat-dialog-close","dialogResult"],_matDialogClose:["matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[Gi]}),n})(),nz=(()=>{class n{constructor(e,i,o){this._dialogRef=e,this._elementRef=i,this._dialog=o,this.id="mat-mdc-dialog-title-"+ez++}ngOnInit(){this._dialogRef||(this._dialogRef=PL(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{const e=this._dialogRef._containerInstance;e&&!e._ariaLabelledBy&&(e._ariaLabelledBy=this.id)})}}return n.\u0275fac=function(e){return new(e||n)(F(Vn,8),F(bt),F(Fn))},n.\u0275dir=Ke({type:n,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(e,i){2&e&&Qs("id",i.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]}),n})(),IL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"]}),n})();function PL(n,t){let e=n.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?t.find(i=>i.id===e.id):null}let iz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({providers:[Fn,X9],imports:[S9,Qd,Xd,Hn,Hn]}),n})();const AL=["mat-button",""],FL=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],RL=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],NL=".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}",oz=["mat-icon-button",""],sz=["*"],az=[{selector:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{selector:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{selector:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{selector:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{selector:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{selector:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{selector:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],lz=If(tu(Pf(class{constructor(n){this._elementRef=n}})));let M1=(()=>{class n extends lz{constructor(e,i,o,s){super(e),this._platform=i,this._ngZone=o,this._animationMode=s,this._focusMonitor=Lt(nl),this._isFab=!1;const a=e.nativeElement.classList;for(const l of az)this._hasHostAttributes(l.selector)&&l.mdcClasses.forEach(c=>{a.add(c)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_hasHostAttributes(...e){return e.some(i=>this._elementRef.nativeElement.hasAttribute(i))}_isRippleDisabled(){return this.disableRipple||this.disabled}}return n.\u0275fac=function(e){Ya()},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(Ts,5),2&e){let o;nt(o=it())&&(i.ripple=o.first)}},features:[dt]}),n})(),dz=(()=>{class n extends M1{constructor(e,i,o,s){super(e,i,o,s),this._haltDisabledEvents=a=>{this.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}}ngOnInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("click",this._haltDisabledEvents)})}ngOnDestroy(){super.ngOnDestroy(),this._elementRef.nativeElement.removeEventListener("click",this._haltDisabledEvents)}}return n.\u0275fac=function(e){Ya()},n.\u0275dir=Ke({type:n,features:[dt]}),n})(),Wr=(()=>{class n extends M1{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(hi),F(pt),F(Vi,8))},n.\u0275cmp=qe({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:7,hostBindings:function(e,i){2&e&&(Ut("disabled",i.disabled||null),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[dt],attrs:AL,ngContentSelectors:RL,decls:8,vars:6,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],["matRipple","",1,"mat-mdc-button-ripple",3,"matRippleDisabled","matRippleTrigger"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(_r(FL),xe(0,"span",0),vn(1),D(2,"span",1),vn(3,1),C(),vn(4,2),xe(5,"span",2)(6,"span",3)(7,"span",4)),2&e&&(Gt("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab),d(6),w("matRippleDisabled",i._isRippleDisabled())("matRippleTrigger",i._elementRef.nativeElement))},dependencies:[Ts],styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0}),n})(),uz=(()=>{class n extends dz{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(hi),F(pt),F(Vi,8))},n.\u0275cmp=qe({type:n,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostVars:9,hostBindings:function(e,i){2&e&&(Ut("disabled",i.disabled||null)("tabindex",i.disabled?-1:i.tabIndex)("aria-disabled",i.disabled.toString()),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[dt],attrs:AL,ngContentSelectors:RL,decls:8,vars:6,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],["matRipple","",1,"mat-mdc-button-ripple",3,"matRippleDisabled","matRippleTrigger"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(_r(FL),xe(0,"span",0),vn(1),D(2,"span",1),vn(3,1),C(),vn(4,2),xe(5,"span",2)(6,"span",3)(7,"span",4)),2&e&&(Gt("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab),d(6),w("matRippleDisabled",i._isRippleDisabled())("matRippleTrigger",i._elementRef.nativeElement))},dependencies:[Ts],styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',NL],encapsulation:2,changeDetection:0}),n})(),il=(()=>{class n extends M1{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(hi),F(pt),F(Vi,8))},n.\u0275cmp=qe({type:n,selectors:[["button","mat-icon-button",""]],hostVars:7,hostBindings:function(e,i){2&e&&(Ut("disabled",i.disabled||null),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[dt],attrs:oz,ngContentSelectors:sz,decls:5,vars:3,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-mdc-focus-indicator"],["matRipple","",1,"mat-mdc-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(_r(),xe(0,"span",0),vn(1),xe(2,"span",1)(3,"span",2)(4,"span",3)),2&e&&(d(3),w("matRippleDisabled",i._isRippleDisabled())("matRippleCentered",!0)("matRippleTrigger",i._elementRef.nativeElement))},dependencies:[Ts],styles:['.mdc-icon-button{font-size:24px;width:48px;height:48px;padding:12px}.mdc-icon-button .mdc-icon-button__focus-ring{max-height:48px;max-width:48px}.mdc-icon-button.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-icon-button.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mdc-icon-button svg,.mdc-icon-button img{width:24px;height:24px}.mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size, 48px);width:var(--mdc-icon-button-state-layer-size, 48px);color:var(--mdc-icon-button-icon-color, inherit);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity, 0.38)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color, #000)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',NL],encapsulation:2,changeDetection:0}),n})(),YL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[Hn,Ff,Hn]}),n})();function fz(n,t){if(1&n){const e=tt();D(0,"div",2)(1,"button",3),ye("click",function(){return Pe(e),Oe(z().action())}),I(2),C()()}if(2&n){const e=z();d(2),me(" ",e.data.action," ")}}const pz=["label"];function mz(n,t){}const _z=Math.pow(2,31)-1;class cg{constructor(t,e){this._overlayRef=e,this._afterDismissed=new X,this._afterOpened=new X,this._onAction=new X,this._dismissedByAction=!1,this.containerInstance=t,t._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(t){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(t,_z))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}const w1=new Be("MatSnackBarData");class dg{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}let gz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]}),n})(),bz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]}),n})(),vz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]}),n})(),yz=(()=>{class n{constructor(e,i){this.snackBarRef=e,this.data=i}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}}return n.\u0275fac=function(e){return new(e||n)(F(cg),F(w1))},n.\u0275cmp=qe({type:n,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions","",4,"ngIf"],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(e,i){1&e&&(D(0,"div",0),I(1),C(),j(2,fz,3,1,"div",1)),2&e&&(d(1),me(" ",i.data.message,"\n"),d(1),w("ngIf",i.hasAction))},dependencies:[Ot,Wr,gz,bz,vz],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0}),n})();const Mz={snackBarState:ra("state",[mo("void, hidden",Kn({transform:"scale(0.8)",opacity:0})),mo("visible",Kn({transform:"scale(1)",opacity:1})),Lr("* => visible",Ur("150ms cubic-bezier(0, 0, 0.2, 1)")),Lr("* => void, * => hidden",Ur("75ms cubic-bezier(0.4, 0.0, 1, 1)",Kn({opacity:0})))])};let wz=(()=>{class n extends Q_{constructor(e,i,o,s,a){super(),this._ngZone=e,this._elementRef=i,this._changeDetectorRef=o,this._platform=s,this.snackBarConfig=a,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new X,this._onExit=new X,this._onEnter=new X,this._animationState="void",this.attachDomPortal=l=>{this._assertNotAttached();const c=this._portalOutlet.attachDomPortal(l);return this._afterPortalAttached(),c},this._live="assertive"!==a.politeness||a.announcementMessage?"off"===a.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),i}attachTemplatePortal(e){this._assertNotAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),i}onAnimationEnd(e){const{fromState:i,toState:o}=e;if(("void"===o&&"void"!==i||"hidden"===o)&&this._completeExit(),"visible"===o){const s=this._onEnter;this._ngZone.run(()=>{s.next(),s.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe(ei(1)).subscribe(()=>{this._ngZone.run(()=>{this._onExit.next(),this._onExit.complete()})})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(o=>e.classList.add(o)):e.classList.add(i))}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const e=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(e&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&e.contains(document.activeElement)&&(o=document.activeElement),e.removeAttribute("aria-hidden"),i.appendChild(e),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}}return n.\u0275fac=function(e){return new(e||n)(F(pt),F(bt),F(di),F(hi),F(dg))},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(tl,7),2&e){let o;nt(o=it())&&(i._portalOutlet=o.first)}},features:[dt]}),n})(),xz=(()=>{class n extends wz{_afterPortalAttached(){super._afterPortalAttached();const e=this._label.nativeElement,i="mdc-snackbar__label";e.classList.toggle(i,!e.querySelector(`.${i}`))}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275cmp=qe({type:n,selectors:[["mat-snack-bar-container"]],viewQuery:function(e,i){if(1&e&&ft(pz,7),2&e){let o;nt(o=it())&&(i._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container","mdc-snackbar--open"],hostVars:1,hostBindings:function(e,i){1&e&&Lv("@state.done",function(s){return i.onAnimationEnd(s)}),2&e&&Fv("@state",i._animationState)},features:[dt],decls:6,vars:2,consts:[[1,"mdc-snackbar__surface"],[1,"mat-mdc-snack-bar-label"],["label",""],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1,2)(3,"div",3),j(4,mz,0,0,"ng-template",4),C(),xe(5,"div"),C()()),2&e&&(d(5),Ut("aria-live",i._live)("role",i._role))},dependencies:[tl],styles:['.mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__dismiss .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-snack-bar-container .mdc-snackbar__dismiss svg,.mat-mdc-snack-bar-container .mdc-snackbar__dismiss img{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color, inherit)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color, inherit)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size, inherit);font-family:var(--mdc-snackbar-supporting-text-font, inherit);font-weight:var(--mdc-snackbar-supporting-text-weight, inherit);line-height:var(--mdc-snackbar-supporting-text-line-height, inherit)}.cdk-high-contrast-active .mat-mdc-snack-bar-container{border:solid 1px}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-mdc-snack-bar-button-color, transparent);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}'],encapsulation:2,data:{animation:[Mz.snackBarState]}}),n})(),BL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[Qd,Xd,na,YL,Hn,Hn]}),n})();const x1=new Be("mat-snack-bar-default-options",{providedIn:"root",factory:function Cz(){return new dg}});let kz=(()=>{class n{constructor(e,i,o,s,a,l){this._overlay=e,this._live=i,this._injector=o,this._breakpointObserver=s,this._parentSnackBar=a,this._defaultConfig=l,this._snackBarRefAtThisLevel=null}get _openedSnackBarRef(){const e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}openFromComponent(e,i){return this._attach(e,i)}openFromTemplate(e,i){return this._attach(e,i)}open(e,i="",o){const s={...this._defaultConfig,...o};return s.data={message:e,action:i},s.announcementMessage===e&&(s.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,s)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,i){const s=mi.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:dg,useValue:i}]}),a=new Zd(this.snackBarContainerComponent,i.viewContainerRef,s),l=e.attach(a);return l.instance.snackBarConfig=i,l.instance}_attach(e,i){const o={...new dg,...this._defaultConfig,...i},s=this._createOverlay(o),a=this._attachSnackBarContainer(s,o),l=new cg(a,s);if(e instanceof lr){const c=new Jl(e,null,{$implicit:o.data,snackBarRef:l});l.instance=a.attachTemplatePortal(c)}else{const c=this._createInjector(o,l),M=new Zd(e,void 0,c),P=a.attachComponentPortal(M);l.instance=P.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(xn(s.detachments())).subscribe(c=>{s.overlayElement.classList.toggle(this.handsetCssClass,c.matches)}),o.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(l,o),this._openedSnackBarRef=l,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration))}_createOverlay(e){const i=new Lf;i.direction=e.direction;let o=this._overlay.position().global();const s="rtl"===e.direction,a="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!s||"end"===e.horizontalPosition&&s,l=!a&&"center"!==e.horizontalPosition;return a?o.left("0"):l?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}_createInjector(e,i){return mi.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:cg,useValue:i},{provide:w1,useValue:e.data}]})}}return n.\u0275fac=function(e){return new(e||n)(we(to),we(m1),we(mi),we(c1),we(n,12),we(x1))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Sz=(()=>{class n extends kz{constructor(e,i,o,s,a,l){super(e,i,o,s,a,l),this.simpleSnackBarComponent=yz,this.snackBarContainerComponent=xz,this.handsetCssClass="mat-mdc-snack-bar-handset"}}return n.\u0275fac=function(e){return new(e||n)(we(to),we(m1),we(mi),we(c1),we(n,12),we(x1))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:BL}),n})();function HL(...n){if(1===n.length){const t=n[0];if(y(t))return ug(t,null);if(p(t)&&Object.getPrototypeOf(t)===Object.prototype){const e=Object.keys(t);return ug(e.map(i=>t[i]),e)}}if("function"==typeof n[n.length-1]){const t=n.pop();return ug(n=1===n.length&&y(n[0])?n[0]:n,null).pipe(Ce(e=>t(...e)))}return ug(n,null)}function ug(n,t){return new ce(e=>{const i=n.length;if(0===i)return void e.complete();const o=new Array(i);let s=0,a=0;for(let l=0;l{M||(M=!0,a++),o[l]=P},error:P=>e.error(P),complete:()=>{s++,(s===i||!M)&&(a===i&&e.next(t?t.reduce((P,Y,q)=>(P[Y]=o[q],P),{}):o),e.complete())}}))}})}const Dz=["*"];let hg;function Rf(n){return function Tz(){if(void 0===hg&&(hg=null,typeof window<"u")){const n=window;void 0!==n.trustedTypes&&(hg=n.trustedTypes.createPolicy("angular#components",{createHTML:t=>t}))}return hg}()?.createHTML(n)||n}function VL(n){return Error(`Unable to find icon with the name "${n}"`)}function jL(n){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${n}".`)}function zL(n){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${n}".`)}class nc{constructor(t,e,i){this.url=t,this.svgText=e,this.options=i}}let fg=(()=>{class n{constructor(e,i,o,s){this._httpClient=e,this._sanitizer=i,this._errorHandler=s,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=o}addSvgIcon(e,i,o){return this.addSvgIconInNamespace("",e,i,o)}addSvgIconLiteral(e,i,o){return this.addSvgIconLiteralInNamespace("",e,i,o)}addSvgIconInNamespace(e,i,o,s){return this._addSvgIconConfig(e,i,new nc(o,null,s))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,s){const a=this._sanitizer.sanitize(wn.HTML,o);if(!a)throw zL(o);const l=Rf(a);return this._addSvgIconConfig(e,i,new nc("",l,s))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,o){return this._addSvgIconSetConfig(e,new nc(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const s=this._sanitizer.sanitize(wn.HTML,i);if(!s)throw zL(i);const a=Rf(s);return this._addSvgIconSetConfig(e,new nc("",a,o))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){const i=this._sanitizer.sanitize(wn.RESOURCE_URL,e);if(!i)throw jL(e);const o=this._cachedIconsByUrl.get(i);return o?We(pg(o)):this._loadSvgIconFromConfig(new nc(e,null)).pipe(ui(s=>this._cachedIconsByUrl.set(i,s)),Ce(s=>pg(s)))}getNamedSvgIcon(e,i=""){const o=UL(i,e);let s=this._svgIconConfigs.get(o);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(i,e),s)return this._svgIconConfigs.set(o,s),this._getSvgFromConfig(s);const a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):Ir(VL(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?We(pg(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(Ce(i=>pg(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?We(o):HL(i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Jr(l=>{const M=`Loading icon set URL: ${this._sanitizer.sanitize(wn.RESOURCE_URL,a.url)} failed: ${l.message}`;return this._errorHandler.handleError(new Error(M)),We(null)})))).pipe(Ce(()=>{const a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw VL(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let o=i.length-1;o>=0;o--){const s=i[o];if(s.svgText&&s.svgText.toString().indexOf(e)>-1){const a=this._svgElementFromConfig(s),l=this._extractSvgIconFromSet(a,e,s.options);if(l)return l}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(ui(i=>e.svgText=i),Ce(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?We(null):this._fetchIcon(e).pipe(ui(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const s=e.querySelector(`[id="${i}"]`);if(!s)return null;const a=s.cloneNode(!0);if(a.removeAttribute("id"),"svg"===a.nodeName.toLowerCase())return this._setSvgAttributes(a,o);if("symbol"===a.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(a),o);const l=this._svgElementFromString(Rf(""));return l.appendChild(a),this._setSvgAttributes(l,o)}_svgElementFromString(e){const i=this._document.createElement("DIV");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}_toSvgElement(e){const i=this._svgElementFromString(Rf("")),o=e.attributes;for(let s=0;sRf(M)),C_(()=>this._inProgressUrlFetches.delete(a)),wa());return this._inProgressUrlFetches.set(a,c),c}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(UL(e,i),o),this}_addSvgIconSetConfig(e,i){const o=this._iconSetConfigs.get(e);return o?o.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){const i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let o=0;ot?t.pathname+t.search:""}}}),WL=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],Rz=WL.map(n=>`[${n}]`).join(", "),Nz=/^url\(['"]?#(.*?)['"]?\)$/;let Cn=(()=>{class n extends Pz{constructor(e,i,o,s,a,l){super(e),this._iconRegistry=i,this._location=s,this._errorHandler=a,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=T.EMPTY,l&&(l.color&&(this.color=this.defaultColor=l.color),l.fontSet&&(this.fontSet=l.fontSet)),o||e.nativeElement.setAttribute("aria-hidden","true")}get inline(){return this._inline}set inline(e){this._inline=hn(e)}get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_splitIconName(e){if(!e)return["",""];const i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const e=this._elementsWithExternalReferences;if(e&&e.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){const e=this._elementRef.nativeElement;let i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const o=e.childNodes[i];(1!==o.nodeType||"svg"===o.nodeName.toLowerCase())&&o.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(o=>o.length>0);this._previousFontSetClass.forEach(o=>e.classList.remove(o)),i.forEach(o=>e.classList.add(o)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return"string"==typeof e?e.trim().split(" ")[0]:e}_prependPathToReferences(e){const i=this._elementsWithExternalReferences;i&&i.forEach((o,s)=>{o.forEach(a=>{s.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(Rz),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s{const l=i[s],c=l.getAttribute(a),M=c?c.match(Nz):null;if(M){let P=o.get(l);P||(P=[],o.set(l,P)),P.push({name:a,value:M[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){const[i,o]=this._splitIconName(e);i&&(this._svgNamespace=i),o&&(this._svgName=o),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(o,i).pipe(ei(1)).subscribe(s=>this._setSvgElement(s),s=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${s.message}`))})}}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(fg),Ra("aria-hidden"),F(Az),F(Ks),F(Oz,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(e,i){2&e&&(Ut("data-mat-icon-type",i._usingFontIcon()?"font":"svg")("data-mat-icon-name",i._svgName||i.fontIcon)("data-mat-icon-namespace",i._svgNamespace||i.fontSet)("fontIcon",i._usingFontIcon()?i.fontIcon:null),Gt("mat-icon-inline",i.inline)("mat-icon-no-color","primary"!==i.color&&"accent"!==i.color&&"warn"!==i.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[dt],ngContentSelectors:Dz,decls:1,vars:0,template:function(e,i){1&e&&(_r(),vn(0))},styles:[".mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0}),n})(),Yz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[Hn,Hn]}),n})();function Hz(n,t,e){return 0===e?[t]:(n.push(t),n)}class Nf{}let $L=(()=>{class n extends Nf{getTranslation(e){return We({})}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class C1{}let GL=(()=>{class n{handle(e){return e.key}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class mg{}let qL=(()=>{class n extends mg{compile(e,i){return e}compileTranslations(e,i){return e}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function Yf(n,t){if(n===t)return!0;if(null===n||null===t)return!1;if(n!=n&&t!=t)return!0;let o,s,a,e=typeof n;if(e==typeof t&&"object"==e){if(!Array.isArray(n)){if(Array.isArray(t))return!1;for(s in a=Object.create(null),n){if(!Yf(n[s],t[s]))return!1;a[s]=!0}for(s in t)if(!(s in a)&&typeof t[s]<"u")return!1;return!0}if(!Array.isArray(t))return!1;if((o=n.length)==t.length){for(s=0;s{k1(t[i])?i in n?e[i]=KL(n[i],t[i]):Object.assign(e,{[i]:t[i]}):Object.assign(e,{[i]:t[i]})}),e}class _g{}let ZL=(()=>{class n extends _g{constructor(){super(...arguments),this.templateMatcher=/{{\s?([^{}\s]*)\s?}}/g}interpolate(e,i){let o;return o="string"==typeof e?this.interpolateString(e,i):"function"==typeof e?this.interpolateFunction(e,i):e,o}getValue(e,i){let o=i.split(".");i="";do{i+=o.shift(),!rs(e)||!rs(e[i])||"object"!=typeof e[i]&&o.length?o.length?i+=".":e=void 0:(e=e[i],i="")}while(o.length);return e}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(o,s)=>{let a=this.getValue(i,s);return rs(a)?a:o}):e}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class XL{constructor(){this.currentLang=this.defaultLang,this.translations={},this.langs=[],this.onTranslationChange=new ht,this.onLangChange=new ht,this.onDefaultLangChange=new ht}}const S1=new Be("USE_STORE"),D1=new Be("USE_DEFAULT_LANG");let no=(()=>{class n{constructor(e,i,o,s,a,l=!0,c=!1){this.store=e,this.currentLoader=i,this.compiler=o,this.parser=s,this.missingTranslationHandler=a,this.useDefaultLang=l,this.isolate=c,this.pending=!1,this._onTranslationChange=new ht,this._onLangChange=new ht,this._onDefaultLangChange=new ht,this._langs=[],this._translations={},this._translationRequests={}}get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(e){this.isolate?this._defaultLang=e:this.store.defaultLang=e}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(e){this.isolate?this._currentLang=e:this.store.currentLang=e}get langs(){return this.isolate?this._langs:this.store.langs}set langs(e){this.isolate?this._langs=e:this.store.langs=e}get translations(){return this.isolate?this._translations:this.store.translations}set translations(e){this.isolate?this._translations=e:this.store.translations=e}setDefaultLang(e){if(e===this.defaultLang)return;let i=this.retrieveTranslations(e);typeof i<"u"?(this.defaultLang||(this.defaultLang=e),i.pipe(ei(1)).subscribe(o=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(e===this.currentLang)return We(this.translations[e]);let i=this.retrieveTranslations(e);return typeof i<"u"?(this.currentLang||(this.currentLang=e),i.pipe(ei(1)).subscribe(o=>{this.changeLang(e)}),i):(this.changeLang(e),We(this.translations[e]))}retrieveTranslations(e){let i;return typeof this.translations[e]>"u"&&(this._translationRequests[e]=this._translationRequests[e]||this.getTranslation(e),i=this._translationRequests[e]),i}getTranslation(e){return this.pending=!0,this.loadingTranslations=this.currentLoader.getTranslation(e).pipe(wa()),this.loadingTranslations.pipe(ei(1)).subscribe(i=>{this.translations[e]=this.compiler.compileTranslations(i,e),this.updateLangs(),this.pending=!1},i=>{this.pending=!1}),this.loadingTranslations}setTranslation(e,i,o=!1){i=this.compiler.compileTranslations(i,e),this.translations[e]=o&&this.translations[e]?KL(this.translations[e],i):i,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){e.forEach(i=>{-1===this.langs.indexOf(i)&&this.langs.push(i)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(e,i,o){let s;if(i instanceof Array){let a={},l=!1;for(let c of i)a[c]=this.getParsedResult(e,c,o),"function"==typeof a[c].subscribe&&(l=!0);if(l){let c;for(let M of i){let P="function"==typeof a[M].subscribe?a[M]:We(a[M]);c=typeof c>"u"?P:vt(c,P)}return c.pipe(function Vz(){return function Bz(n,t){return arguments.length>=2?function(i){return Z(x_(n,t),rf(1),nf(t))(i)}:function(i){return Z(x_((o,s,a)=>n(o,s,a+1)),rf(1))(i)}}(Hz,[])}(),Ce(M=>{let P={};return M.forEach((Y,q)=>{P[i[q]]=Y}),P}))}return a}if(e&&(s=this.parser.interpolate(this.parser.getValue(e,i),o)),typeof s>"u"&&this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(s=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],i),o)),typeof s>"u"){let a={key:i,translateService:this};typeof o<"u"&&(a.interpolateParams=o),s=this.missingTranslationHandler.handle(a)}return typeof s<"u"?s:i}get(e,i){if(!rs(e)||!e.length)throw new Error('Parameter "key" required');if(this.pending)return ce.create(o=>{let s=l=>{o.next(l),o.complete()},a=l=>{o.error(l)};this.loadingTranslations.subscribe(l=>{"function"==typeof(l=this.getParsedResult(this.compiler.compileTranslations(l,this.currentLang),e,i)).subscribe?l.subscribe(s,a):s(l)},a)});{let o=this.getParsedResult(this.translations[this.currentLang],e,i);return"function"==typeof o.subscribe?o:We(o)}}stream(e,i){if(!rs(e)||!e.length)throw new Error('Parameter "key" required');return Gl(this.get(e,i),this.onLangChange.pipe(gr(o=>{const s=this.getParsedResult(o.translations,e,i);return"function"==typeof s.subscribe?s:We(s)})))}instant(e,i){if(!rs(e)||!e.length)throw new Error('Parameter "key" required');let o=this.getParsedResult(this.translations[this.currentLang],e,i);if(typeof o.subscribe<"u"){if(e instanceof Array){let s={};return e.forEach((a,l)=>{s[e[l]]=e[l]}),s}return e}return o}set(e,i,o=this.currentLang){this.translations[o][e]=this.compiler.compile(i,o),this.updateLangs(),this.onTranslationChange.emit({lang:o,translations:this.translations[o]})}changeLang(e){this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang||this.changeDefaultLang(e)}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.getTranslation(e)}resetLang(e){this._translationRequests[e]=void 0,this.translations[e]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let e=window.navigator.languages?window.navigator.languages[0]:null;return e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,-1!==e.indexOf("-")&&(e=e.split("-")[0]),-1!==e.indexOf("_")&&(e=e.split("_")[0]),e}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let e=window.navigator.languages?window.navigator.languages[0]:null;return e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,e}}return n.\u0275fac=function(e){return new(e||n)(we(XL),we(Nf),we(mg),we(_g),we(C1),we(D1),we(S1))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Ct=(()=>{class n{constructor(e,i){this.translate=e,this._ref=i,this.value=""}updateValue(e,i,o){let s=a=>{this.value=void 0!==a?a:e,this.lastKey=e,this._ref.markForCheck()};if(o){let a=this.translate.getParsedResult(o,e,i);"function"==typeof a.subscribe?a.subscribe(s):s(a)}this.translate.get(e,i).subscribe(s)}transform(e,...i){if(!e||0===e.length)return e;if(Yf(e,this.lastKey)&&Yf(i,this.lastParams))return this.value;let o;if(rs(i[0])&&i.length)if("string"==typeof i[0]&&i[0].length){let s=i[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{o=JSON.parse(s)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${i[0]}`)}}else"object"==typeof i[0]&&!Array.isArray(i[0])&&(o=i[0]);return this.lastKey=e,this.lastParams=i,this.updateValue(e,o),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(s=>{this.lastKey&&s.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(e,o,s.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(s=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o,s.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}}return n.\u0275fac=function(e){return new(e||n)(F(no,16),F(di,16))},n.\u0275pipe=Qn({name:"translate",type:n,pure:!1}),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),QL=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:Nf,useClass:$L},e.compiler||{provide:mg,useClass:qL},e.parser||{provide:_g,useClass:ZL},e.missingTranslationHandler||{provide:C1,useClass:GL},XL,{provide:S1,useValue:e.isolate},{provide:D1,useValue:e.useDefaultLang},no]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:Nf,useClass:$L},e.compiler||{provide:mg,useClass:qL},e.parser||{provide:_g,useClass:ZL},e.missingTranslationHandler||{provide:C1,useClass:GL},{provide:S1,useValue:e.isolate},{provide:D1,useValue:e.useDefaultLang},no]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({}),n})();function jz(n,t){if(1&n&&(D(0,"div",5)(1,"mat-icon",6),I(2),C()()),2&n){const e=z();d(1),w("inline",!0),d(1),oe(e.config.icon)}}function zz(n,t){if(1&n&&(D(0,"div",7),I(1),R(2,"translate"),R(3,"translate"),C()),2&n){const e=z();d(1),po(" ",B(2,2,"common.error")," ",Pt(3,4,e.config.smallText,e.config.smallTextTranslationParams)," ")}}var iu=(()=>(function(n){n.Error="error",n.Done="done",n.Warning="warning"}(iu||(iu={})),iu))(),ru=(()=>(function(n){n.Red="red-background",n.Green="green-background",n.Yellow="yellow-background"}(ru||(ru={})),ru))();class Bf{constructor(t,e){this.snackbarRef=e,this.config=t}close(){this.snackbarRef.dismiss()}}Bf.\u0275fac=function(t){return new(t||Bf)(F(w1),F(cg))},Bf.\u0275cmp=qe({type:Bf,selectors:[["app-snack-bar"]],decls:9,vars:8,consts:[["class","icon-container",4,"ngIf"],[1,"text-container"],["class","second-line",4,"ngIf"],[1,"close-button-separator"],[1,"close-button",3,"click"],[1,"icon-container"],[3,"inline"],[1,"second-line"]],template:function(t,e){1&t&&(D(0,"div"),j(1,jz,3,2,"div",0),D(2,"div",1),I(3),R(4,"translate"),j(5,zz,4,7,"div",2),C(),xe(6,"div",3),D(7,"mat-icon",4),ye("click",function(){return e.close()}),I(8,"close"),C()()),2&t&&(fo("main-container "+e.config.color),d(1),w("ngIf",e.config.icon),d(2),me(" ",Pt(4,5,e.config.text,e.config.textTranslationParams)," "),d(2),w("ngIf",e.config.smallText))},dependencies:[Ot,Cn,Ct],styles:['.cursor-pointer[_ngcontent-%COMP%], .close-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.main-container[_ngcontent-%COMP%]{width:100%;display:flex;color:#fff;padding:15px;border-radius:5px}.red-background[_ngcontent-%COMP%]{background-color:#ea0606}.green-background[_ngcontent-%COMP%]{background-color:#1fb11f}.yellow-background[_ngcontent-%COMP%]{background-color:#f90}.icon-container[_ngcontent-%COMP%]{margin-right:10px;position:relative;top:1px}.text-container[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;font-size:1rem;word-break:break-word}.text-container[_ngcontent-%COMP%] .second-line[_ngcontent-%COMP%]{font-size:.8rem;opacity:.9}.close-button-separator[_ngcontent-%COMP%]{width:1px;margin-right:10px;background-color:#0000004d}.close-button[_ngcontent-%COMP%]{opacity:.7}.close-button[_ngcontent-%COMP%]:hover{opacity:1}mat-icon[_ngcontent-%COMP%]{position:relative;top:1px;-webkit-user-select:none;user-select:none}']});class cn{constructor(t){this.snackBar=t,this.lastWasTemporaryError=!1}showError(t,e=null,i=!1,o=null,s=null){t=Qt(t),o=o?Qt(o):null,this.lastWasTemporaryError=i,this.show(t.translatableErrorMsg,e,o?o.translatableErrorMsg:null,s,iu.Error,ru.Red,15e3)}showWarning(t,e=null){this.lastWasTemporaryError=!1,this.show(t,e,null,null,iu.Warning,ru.Yellow,15e3)}showDone(t,e=null){this.lastWasTemporaryError=!1,this.show(t,e,null,null,iu.Done,ru.Green,5e3)}closeCurrent(){this.snackBar.dismiss()}closeCurrentIfTemporaryError(){this.lastWasTemporaryError&&this.snackBar.dismiss()}show(t,e,i,o,s,a,l){this.snackBar.openFromComponent(Bf,{duration:l,panelClass:"snackbar-container",data:{text:t,textTranslationParams:e,smallText:i,smallTextTranslationParams:o,icon:s,color:a}})}}cn.\u0275fac=function(t){return new(t||cn)(we(Sz))},cn.\u0275prov=Ye({token:cn,factory:cn.\u0275fac,providedIn:"root"});const Ht={maxShortListElements:5,maxFullListElements:40,connectionRetryDelay:5e3,languages:[{code:"en",name:"English",iconName:"en.png"},{code:"es",name:"Espa\xf1ol",iconName:"es.png"},{code:"de",name:"Deutsch",iconName:"de.png"},{code:"pt",name:"Portugu\xeas (Brazil)",iconName:"pt.png"}],defaultLanguage:"en",smallModalWidth:"480px",mediumModalWidth:"640px",largeModalWidth:"900px",vpn:{hardcodedIpWhileDeveloping:!1}};class Uz{constructor(t){Object.assign(this,t)}}class ca{constructor(t){this.translate=t,this.currentLanguage=new Yo(1),this.languages=new Yo(1),this.storageKey="lang",this.languagesInternal=[],this.settingsLoaded=!1}loadLanguageSettings(){if(this.settingsLoaded)return;this.settingsLoaded=!0;const t=[];Ht.languages.forEach(e=>{const i=new Uz(e);this.languagesInternal.push(i),t.push(i.code)}),this.languages.next(this.languagesInternal),this.translate.addLangs(t),this.translate.setDefaultLang(Ht.defaultLanguage),this.translate.onLangChange.subscribe(e=>this.onLanguageChanged(e)),this.loadCurrentLanguage()}changeLanguage(t){this.translate.use(t)}onLanguageChanged(t){this.currentLanguage.next(this.languagesInternal.find(e=>e.code===t.lang)),localStorage.setItem(this.storageKey,t.lang)}loadCurrentLanguage(){let t=localStorage.getItem(this.storageKey);t=t||Ht.defaultLanguage,setTimeout(()=>this.translate.use(t),16)}}ca.\u0275fac=function(t){return new(t||ca)(we(no))},ca.\u0275prov=Ye({token:ca,factory:ca.\u0275fac,providedIn:"root"});const Wz={url:"",deserializer:n=>JSON.parse(n.data),serializer:n=>JSON.stringify(n)};class T1 extends Te{constructor(t,e){if(super(),t instanceof ce)this.destination=e,this.source=t;else{const i=this._config=Object.assign({},Wz);if(this._output=new X,"string"==typeof t)i.url=t;else for(let o in t)t.hasOwnProperty(o)&&(i[o]=t[o]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new Yo}}lift(t){const e=new T1(this._config,this.destination);return e.operator=t,e.source=this,e}_resetState(){this._socket=null,this.source||(this.destination=new Yo),this._output=new X}multiplex(t,e,i){const o=this;return new ce(s=>{try{o.next(t())}catch(l){s.error(l)}const a=o.subscribe(l=>{try{i(l)&&s.next(l)}catch(c){s.error(c)}},l=>s.error(l),()=>s.complete());return()=>{try{o.next(e())}catch(l){s.error(l)}a.unsubscribe()}})}_connectSocket(){const{WebSocketCtor:t,protocol:e,url:i,binaryType:o}=this._config,s=this._output;let a=null;try{a=e?new t(i,e):new t(i),this._socket=a,o&&(this._socket.binaryType=o)}catch(c){return void s.error(c)}const l=new T(()=>{this._socket=null,a&&1===a.readyState&&a.close()});a.onopen=c=>{const{_socket:M}=this;if(!M)return a.close(),void this._resetState();const{openObserver:P}=this._config;P&&P.next(c);const Y=this.destination;this.destination=A.create(q=>{if(1===a.readyState)try{const{serializer:te}=this._config;a.send(te(q))}catch(te){this.destination.error(te)}},q=>{const{closingObserver:te}=this._config;te&&te.next(void 0),q&&q.code?a.close(q.code,q.reason):s.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),this._resetState()},()=>{const{closingObserver:q}=this._config;q&&q.next(void 0),a.close(),this._resetState()}),Y&&Y instanceof Yo&&l.add(Y.subscribe(this.destination))},a.onerror=c=>{this._resetState(),s.error(c)},a.onclose=c=>{this._resetState();const{closeObserver:M}=this._config;M&&M.next(c),c.wasClean?s.complete():s.error(c)},a.onmessage=c=>{try{const{deserializer:M}=this._config;s.next(M(c))}catch(M){s.error(M)}}}_subscribe(t){const{source:e}=this;return e?e.subscribe(t):(this._socket||this._connectSocket(),this._output.subscribe(t),t.add(()=>{const{_socket:i}=this;0===this._output.observers.length&&(i&&1===i.readyState&&i.close(),this._resetState())}),t)}unsubscribe(){const{_socket:t}=this;t&&1===t.readyState&&t.close(),this._resetState(),super.unsubscribe()}}var ou=(()=>(function(n){n.Json="json",n.Text="text"}(ou||(ou={})),ou))(),su=(()=>(function(n){n.Json="json"}(su||(su={})),su))();class ic{constructor(t){this.responseType=ou.Json,this.requestType=su.Json,this.ignoreAuth=!1,Object.assign(this,t)}}class yo{constructor(t,e,i){this.http=t,this.router=e,this.ngZone=i,this.apiPrefix="api/",this.wsApiPrefix="api/"}get(t,e=null){return this.request("GET",t,{},e)}post(t,e={},i=null){return this.request("POST",t,e,i)}put(t,e={},i=null){return this.request("PUT",t,e,i)}delete(t,e=null){return this.request("DELETE",t,{},e)}ws(t,e={}){const s=function Gz(n){return new T1(n)}((location.protocol.startsWith("https")?"wss://":"ws://")+location.host+"/"+this.wsApiPrefix+t);return s.next(e),s}request(t,e,i,o){return i=i||{},o=o||new ic,e.startsWith("/")&&(e=e.substr(1,e.length-1)),this.http.request(t,this.apiPrefix+e,{...this.getRequestOptions(o),responseType:o.responseType,withCredentials:!0,body:this.getPostBody(i,o)}).pipe(Ce(s=>this.successHandler(s)),Jr(s=>this.errorHandler(s,o)))}getRequestOptions(t){const e={};return e.headers=new ks,t.requestType===su.Json&&(e.headers=e.headers.append("Content-Type","application/json")),e}getPostBody(t,e){if(e.requestType===su.Json)return JSON.stringify(t);const i=new FormData;return Object.keys(t).forEach(o=>i.append(o,t[o])),i}successHandler(t){if("string"==typeof t&&"manager token is null"===t)throw new Error(t);return t}errorHandler(t,e){if(!e.ignoreAuth){if(401===t.status){const i=e.vpnKeyForAuth?["vpnlogin",e.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(i,{replaceUrl:!0}))}if(t.error&&"string"==typeof t.error&&t.error.includes("change password")){const i=e.vpnKeyForAuth?["vpnlogin",e.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(i,{replaceUrl:!0}))}}return Ir(Qt(t))}}yo.\u0275fac=function(t){return new(t||yo)(we($l),we(Xt),we(pt))},yo.\u0275prov=Ye({token:yo,factory:yo.\u0275fac,providedIn:"root"});const qz=["determinateSpinner"];function Kz(n,t){if(1&n&&(fs(),D(0,"svg",11),xe(1,"circle",12),C()),2&n){const e=z();Ut("viewBox",e._viewBox()),d(1),Ha("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Ut("r",e._circleRadius())}}const Zz=If(class{constructor(n){this._elementRef=n}},"primary"),Xz=new Be("mat-progress-spinner-default-options",{providedIn:"root",factory:function Qz(){return{diameter:JL}}}),JL=100;let rc=(()=>{class n extends Zz{constructor(e,i,o){super(e),this.mode="mat-spinner"===this._elementRef.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",this._value=0,this._diameter=JL,this._noopAnimations="NoopAnimations"===i&&!!o&&!o._forceAnimations,o&&(o.color&&(this.color=this.defaultColor=o.color),o.diameter&&(this.diameter=o.diameter),o.strokeWidth&&(this.strokeWidth=o.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,vo(e)))}get diameter(){return this._diameter}set diameter(e){this._diameter=vo(e)}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=vo(e)}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Vi,8),F(Xz))},n.\u0275cmp=qe({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(e,i){if(1&e&&ft(qz,5),2&e){let o;nt(o=it())&&(i._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:12,hostBindings:function(e,i){2&e&&(Ut("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===i.mode?i.value:null)("mode",i.mode),Ha("width",i.diameter,"px")("height",i.diameter,"px"),Gt("_mat-animation-noopable",i._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===i.mode))},inputs:{color:"color",mode:"mode",value:"value",diameter:"diameter",strokeWidth:"strokeWidth"},exportAs:["matProgressSpinner"],features:[dt],decls:14,vars:11,consts:[["circle",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["determinateSpinner",""],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(e,i){if(1&e&&(j(0,Kz,2,8,"ng-template",null,0,Ms),D(2,"div",1,2),fs(),D(4,"svg",3),xe(5,"circle",4),C()(),kl(),D(6,"div",5)(7,"div",6)(8,"div",7),Xo(9,8),C(),D(10,"div",9),Xo(11,8),C(),D(12,"div",10),Xo(13,8),C()()()),2&e){const o=li(1);d(4),Ut("viewBox",i._viewBox()),d(1),Ha("stroke-dasharray",i._strokeCircumference(),"px")("stroke-dashoffset",i._strokeDashOffset(),"px")("stroke-width",i._circleStrokeWidth(),"%"),Ut("r",i._circleRadius()),d(4),w("ngTemplateOutlet",o),d(2),w("ngTemplateOutlet",o),d(2),w("ngTemplateOutlet",o)}},dependencies:[Ad],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, transparent)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0}),n})(),eU=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[na,Hn]}),n})();const tU=function(n){return{"white-theme":n}};class io{constructor(){this.showWhite=!0}}function nU(n,t){1&n&&(D(0,"div",5)(1,"div"),xe(2,"img",6),D(3,"div"),I(4),R(5,"translate"),C()()()),2&n&&(d(4),oe(B(5,1,"common.window-size-error")))}function iU(n,t){1&n&&xe(0,"router-outlet")}function rU(n,t){1&n&&xe(0,"app-loading-indicator",7)}io.\u0275fac=function(t){return new(t||io)},io.\u0275cmp=qe({type:io,selectors:[["app-loading-indicator"]],inputs:{showWhite:"showWhite"},decls:2,vars:4,consts:[[1,"container",3,"ngClass"],[3,"diameter"]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"mat-spinner",1),C()),2&t&&(w("ngClass",Ve(2,tU,e.showWhite)),d(1),w("diameter",50))},dependencies:[On,rc],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex}.container[_ngcontent-%COMP%]{width:100%;align-self:center;display:flex;flex-direction:column;align-items:center}.container[_ngcontent-%COMP%] > mat-spinner[_ngcontent-%COMP%]{opacity:.5}"]});const oU=function(n){return{background:n}};class da{constructor(t,e,i,o,s,a){this.storage=t,this.snackbarService=o,this.languageService=s,this.apiService=a,this.inVpnClient=!1,this.inLoginPage=!1,this.hypervisorPkObtained=!1,this.pkErrorShown=!1,this.pkErrorsFound=0,da.currentInstance=this,i.afterOpened.subscribe(()=>o.closeCurrent()),e.events.subscribe(l=>{l instanceof Xa&&(o.closeCurrent(),i.closeAll(),window.scrollTo(0,0))}),i.afterAllClosed.subscribe(()=>o.closeCurrentIfTemporaryError()),e.events.subscribe(l=>{if(this.inVpnClient=e.url.includes("/vpn/")||e.url.includes("vpnlogin"),l.url){const c=this.inLoginPage;this.inLoginPage=l.url.includes("login"),c&&!this.inLoginPage&&!this.hypervisorPkObtained&&this.checkHypervisorPk(0)}e.url.length>2&&(document.title=this.inVpnClient?"Skywire VPN":"Skywire Manager")}),this.languageService.loadLanguageSettings(),this.checkHypervisorPk(0)}processLoginDone(){this.inLoginPage=!1,this.hypervisorPkObtained||this.checkHypervisorPk(0)}checkHypervisorPk(t){this.obtainPkSubscription&&this.obtainPkSubscription.unsubscribe(),this.obtainPkSubscription=We(1).pipe(Ai(t),Ne(()=>this.apiService.get("about"))).subscribe(e=>{e.public_key?(this.finishStartup(e.public_key),this.hypervisorPkObtained=!0):(this.pkErrorShown||(this.snackbarService.showError("start.loading-error",null,!0),this.pkErrorShown=!0),this.checkHypervisorPk(1e3))},e=>{if(this.pkErrorsFound+=1,this.pkErrorsFound>4&&!this.pkErrorShown){const i=Qt(e);this.snackbarService.showError("start.loading-error",null,!0,i),this.pkErrorShown=!0}this.inLoginPage||this.checkHypervisorPk(1e3)})}finishStartup(t){this.storage.initialize(t)}}da.\u0275fac=function(t){return new(t||da)(F(ti),F(Xt),F(Fn),F(cn),F(ca),F(yo))},da.\u0275cmp=qe({type:da,selectors:[["app-root"]],decls:5,vars:6,consts:[["class","size-alert d-md-none",4,"ngIf"],[1,"flex-1","content","container-fluid"],[3,"ngClass"],[4,"ngIf"],["class","h-100",4,"ngIf"],[1,"size-alert","d-md-none"],["src","assets/img/size-alert.png"],[1,"h-100"]],template:function(t,e){1&t&&(j(0,nU,6,3,"div",0),D(1,"div",1),xe(2,"div",2),j(3,iU,1,0,"router-outlet",3),j(4,rU,1,0,"app-loading-indicator",4),C()),2&t&&(w("ngIf",e.inVpnClient),d(2),w("ngClass",Ve(4,oU,e.inVpnClient)),d(1),w("ngIf",e.hypervisorPkObtained||e.inLoginPage),d(1),w("ngIf",!e.hypervisorPkObtained&&!e.inLoginPage))},dependencies:[On,Ot,F_,io,Ct],styles:[".size-alert[_ngcontent-%COMP%]{background-color:#000000d9;position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#fff}.size-alert[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin:0 40px;max-width:400px}[_nghost-%COMP%]{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;height:100%}.content[_ngcontent-%COMP%]{padding:20px!important}.background[_ngcontent-%COMP%]{background-image:url(/assets/img/map.png);background-size:cover;background-position:center;opacity:.1;width:100%;height:100%;top:0;left:0;position:fixed}"]});class Ls{constructor(t){this.router=t,this.forceFailInternal=!1}set forceFail(t){this.forceFailInternal=t}canActivate(t,e){return this.checkIfCanActivate()}canActivateChild(t,e){return this.checkIfCanActivate()}checkIfCanActivate(){return this.forceFailInternal?(this.router.navigate(["login"],{replaceUrl:!0}),We(!1)):We(!0)}}Ls.\u0275fac=function(t){return new(t||Ls)(we(Xt))},Ls.\u0275prov=Ye({token:Ls,factory:Ls.\u0275fac,providedIn:"root"});var Es=(()=>(function(n){n[n.AuthDisabled=0]="AuthDisabled",n[n.Logged=1]="Logged",n[n.NotLogged=2]="NotLogged"}(Es||(Es={})),Es))();class Is{constructor(t,e,i){this.apiService=t,this.translateService=e,this.authGuardService=i}login(t){return this.apiService.post("login",{username:"admin",password:t},new ic({ignoreAuth:!0})).pipe(ui(e=>{if(!0!==e)throw new Error;this.authGuardService.forceFail=!1}))}checkLogin(){return this.apiService.get("user",new ic({ignoreAuth:!0})).pipe(Ce(t=>t.username?Es.Logged:Es.AuthDisabled),Jr(t=>(t=Qt(t)).originalError&&401===t.originalError.status?(this.authGuardService.forceFail=!0,We(Es.NotLogged)):Ir(t)))}logout(){return this.apiService.post("logout",{}).pipe(ui(t=>{if(!0!==t)throw new Error;this.authGuardService.forceFail=!0}))}changePassword(t,e){return this.apiService.post("change-password",{old_password:t,new_password:e},new ic({responseType:ou.Text,ignoreAuth:!0})).pipe(Ce(i=>{if("string"==typeof i&&"true"===i.trim())return!0;throw"Please do not change the default password."===i?new Error(this.translateService.instant("settings.password.errors.default-password")):new Error(this.translateService.instant("common.operation-error"))}),Jr(i=>((i=Qt(i)).originalError&&401===i.originalError.status&&(i.translatableErrorMsg="settings.password.errors.bad-old-password"),Ir(i))))}initialConfig(t){return this.apiService.post("create-account",{username:"admin",password:t},new ic({responseType:ou.Text,ignoreAuth:!0})).pipe(Ce(e=>{if("string"==typeof e&&"true"===e.trim())return!0;throw new Error(e)}),Jr(e=>((e=Qt(e)).originalError&&500===e.originalError.status&&(e.translatableErrorMsg="settings.password.initial-config.error"),Ir(e))))}}Is.\u0275fac=function(t){return new(t||Is)(we(yo),we(no),we(Ls))},Is.\u0275prov=Ye({token:Is,factory:Is.\u0275fac,providedIn:"root"});class Hf{constructor(t,e){this.authService=t,this.router=e}ngOnInit(){this.verificationSubscription=this.authService.checkLogin().subscribe(t=>{this.router.navigate(t!==Es.NotLogged?["nodes"]:["login"],{replaceUrl:!0})},()=>{this.router.navigate(["nodes"],{replaceUrl:!0})})}ngOnDestroy(){this.verificationSubscription.unsubscribe()}}Hf.\u0275fac=function(t){return new(t||Hf)(F(Is),F(Xt))},Hf.\u0275cmp=qe({type:Hf,selectors:[["app-start"]],decls:2,vars:0,consts:[[1,"h-100","w-100"]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"app-loading-indicator"),C())},dependencies:[io]});let eE=(()=>{class n{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}}return n.\u0275fac=function(e){return new(e||n)(F(qs),F(bt))},n.\u0275dir=Ke({type:n}),n})(),oc=(()=>{class n extends eE{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,features:[dt]}),n})();const os=new Be("NgValueAccessor"),aU={provide:os,useExisting:sn(()=>Fi),multi:!0},cU=new Be("CompositionEventMode");let Fi=(()=>{class n extends eE{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function lU(){const n=xs()?xs().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}}return n.\u0275fac=function(e){return new(e||n)(F(qs),F(bt),F(cU,8))},n.\u0275dir=Ke({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(e,i){1&e&&ye("input",function(s){return i._handleInput(s.target.value)})("blur",function(){return i.onTouched()})("compositionstart",function(){return i._compositionStart()})("compositionend",function(s){return i._compositionEnd(s.target.value)})},features:[Kt([aU]),dt]}),n})();function rl(n){return null==n||("string"==typeof n||Array.isArray(n))&&0===n.length}function nE(n){return null!=n&&"number"==typeof n.length}const Mr=new Be("NgValidators"),ol=new Be("NgAsyncValidators"),uU=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[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])?)*$/;class Vt{static min(t){return function iE(n){return t=>{if(rl(t.value)||rl(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e{if(rl(t.value)||rl(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}(t)}static required(t){return function oE(n){return rl(n.value)?{required:!0}:null}(t)}static requiredTrue(t){return function sE(n){return!0===n.value?null:{required:!0}}(t)}static email(t){return function aE(n){return rl(n.value)||uU.test(n.value)?null:{email:!0}}(t)}static minLength(t){return function lE(n){return t=>rl(t.value)||!nE(t.value)?null:t.value.length{if(rl(i.value))return null;const o=i.value;return t.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(t)}static nullValidator(t){return null}static compose(t){return _E(t)}static composeAsync(t){return gE(t)}}function cE(n){return t=>nE(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}function bg(n){return null}function uE(n){return null!=n}function hE(n){return Lh(n)?de(n):n}function fE(n){let t={};return n.forEach(e=>{t=null!=e?{...t,...e}:t}),0===Object.keys(t).length?null:t}function pE(n,t){return t.map(e=>e(n))}function mE(n){return n.map(t=>function hU(n){return!n.validate}(t)?t:e=>t.validate(e))}function _E(n){if(!n)return null;const t=n.filter(uE);return 0==t.length?null:function(e){return fE(pE(e,t))}}function L1(n){return null!=n?_E(mE(n)):null}function gE(n){if(!n)return null;const t=n.filter(uE);return 0==t.length?null:function(e){return HL(pE(e,t).map(hE)).pipe(Ce(fE))}}function E1(n){return null!=n?gE(mE(n)):null}function bE(n,t){return null===n?[t]:Array.isArray(n)?[...n,t]:[n,t]}function vE(n){return n._rawValidators}function yE(n){return n._rawAsyncValidators}function I1(n){return n?Array.isArray(n)?n:[n]:[]}function vg(n,t){return Array.isArray(n)?n.includes(t):n===t}function ME(n,t){const e=I1(t);return I1(n).forEach(o=>{vg(e,o)||e.push(o)}),e}function wE(n,t){return I1(t).filter(e=>!vg(n,e))}class xE{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=L1(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=E1(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}class $r extends xE{get formDirective(){return null}get path(){return null}}class Ps extends xE{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class CE{constructor(t){this._cd=t}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let Ri=(()=>{class n extends CE{constructor(e){super(e)}}return n.\u0275fac=function(e){return new(e||n)(F(Ps,2))},n.\u0275dir=Ke({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,i){2&e&&Gt("ng-untouched",i.isUntouched)("ng-touched",i.isTouched)("ng-pristine",i.isPristine)("ng-dirty",i.isDirty)("ng-valid",i.isValid)("ng-invalid",i.isInvalid)("ng-pending",i.isPending)},features:[dt]}),n})(),Ni=(()=>{class n extends CE{constructor(e){super(e)}}return n.\u0275fac=function(e){return new(e||n)(F($r,10))},n.\u0275dir=Ke({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(e,i){2&e&&Gt("ng-untouched",i.isUntouched)("ng-touched",i.isTouched)("ng-pristine",i.isPristine)("ng-dirty",i.isDirty)("ng-valid",i.isValid)("ng-invalid",i.isInvalid)("ng-pending",i.isPending)("ng-submitted",i.isSubmitted)},features:[dt]}),n})();const Vf="VALID",Mg="INVALID",au="PENDING",jf="DISABLED";function F1(n){return(wg(n)?n.validators:n)||null}function R1(n,t){return(wg(t)?t.asyncValidators:n)||null}function wg(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}function SE(n,t,e){const i=n.controls;if(!(t?Object.keys(i):i).length)throw new Fe(1e3,"");if(!i[e])throw new Fe(1001,"")}function DE(n,t,e){n._forEachChild((i,o)=>{if(void 0===e[o])throw new Fe(1002,"")})}class xg{constructor(t,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===Vf}get invalid(){return this.status===Mg}get pending(){return this.status==au}get disabled(){return this.status===jf}get enabled(){return this.status!==jf}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(ME(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(ME(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(wE(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(wE(t,this._rawAsyncValidators))}hasValidator(t){return vg(this._rawValidators,t)}hasAsyncValidator(t){return vg(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=au,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=jf,this.errors=null,this._forEachChild(i=>{i.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=Vf,this._forEachChild(i=>{i.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Vf||this.status===au)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?jf:Vf}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=au,this._hasOwnPendingAsyncValidator=!0;const e=hE(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){let e=t;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(t,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new ht,this.statusChanges=new ht}_calculateStatus(){return this._allControlsDisabled()?jf:this.errors?Mg:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(au)?au:this._anyControlsHaveStatus(Mg)?Mg:Vf}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){wg(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=function vU(n){return Array.isArray(n)?L1(n):n||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function yU(n){return Array.isArray(n)?E1(n):n||null}(this._rawAsyncValidators)}}class lu extends xg{constructor(t,e,i){super(F1(e),R1(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){DE(this,0,t),Object.keys(t).forEach(i=>{SE(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(Object.keys(t).forEach(i=>{const o=this.controls[i];o&&o.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,o)=>{i.reset(t[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((o,s)=>{i=e(i,o,s)}),i}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}}const TE=lu;class LE extends lu{}const cu=new Be("CallSetDisabledState",{providedIn:"root",factory:()=>Cg}),Cg="always";function kg(n,t){return[...t.path,n]}function zf(n,t,e=Cg){N1(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||"always"===e)&&t.valueAccessor.setDisabledState?.(n.disabled),function wU(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&EE(n,t)})}(n,t),function CU(n,t){const e=(i,o)=>{t.valueAccessor.writeValue(i),o&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}(n,t),function xU(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&EE(n,t),"submit"!==n.updateOn&&n.markAsTouched()})}(n,t),function MU(n,t){if(t.valueAccessor.setDisabledState){const e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}(n,t)}function Sg(n,t,e=!0){const i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),Tg(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function Dg(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function N1(n,t){const e=vE(n);null!==t.validator?n.setValidators(bE(e,t.validator)):"function"==typeof e&&n.setValidators([e]);const i=yE(n);null!==t.asyncValidator?n.setAsyncValidators(bE(i,t.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const o=()=>n.updateValueAndValidity();Dg(t._rawValidators,o),Dg(t._rawAsyncValidators,o)}function Tg(n,t){let e=!1;if(null!==n){if(null!==t.validator){const o=vE(n);if(Array.isArray(o)&&o.length>0){const s=o.filter(a=>a!==t.validator);s.length!==o.length&&(e=!0,n.setValidators(s))}}if(null!==t.asyncValidator){const o=yE(n);if(Array.isArray(o)&&o.length>0){const s=o.filter(a=>a!==t.asyncValidator);s.length!==o.length&&(e=!0,n.setAsyncValidators(s))}}}const i=()=>{};return Dg(t._rawValidators,i),Dg(t._rawAsyncValidators,i),e}function EE(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function IE(n,t){N1(n,t)}function PE(n,t){n._syncPendingControls(),t.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}const LU={provide:$r,useExisting:sn(()=>Wf)},Uf=(()=>Promise.resolve())();let Wf=(()=>{class n extends $r{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new ht,this.form=new lu({},L1(e),E1(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){Uf.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),zf(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){Uf.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){Uf.then(()=>{const i=this._findContainer(e.path),o=new lu({});IE(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){Uf.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){Uf.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,PE(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}}return n.\u0275fac=function(e){return new(e||n)(F(Mr,10),F(ol,10),F(cu,8))},n.\u0275dir=Ke({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(e,i){1&e&&ye("submit",function(s){return i.onSubmit(s)})("reset",function(){return i.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Kt([LU]),dt]}),n})();function OE(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function AE(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}const du=class extends xg{constructor(t=null,e,i){super(F1(e),R1(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),wg(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=AE(t)?t.value:t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){OE(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){OE(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){AE(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},Lg=du;let FE=(()=>{class n extends $r{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return kg(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,features:[dt]}),n})(),Yi=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),n})(),HE=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({}),n})();const V1=new Be("NgModelWithFormControlWarning"),YU={provide:$r,useExisting:sn(()=>ni)};let ni=(()=>{class n extends $r{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new ht,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Tg(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return zf(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Sg(e.control||null,e,!1),function TU(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,PE(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(Sg(i||null,e),(n=>n instanceof du)(o)&&(zf(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);IE(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function kU(n,t){return Tg(n,t)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){N1(this.form,this),this._oldForm&&Tg(this._oldForm,this)}_checkFormPresent(){}}return n.\u0275fac=function(e){return new(e||n)(F(Mr,10),F(ol,10),F(cu,8))},n.\u0275dir=Ke({type:n,selectors:[["","formGroup",""]],hostBindings:function(e,i){1&e&&ye("submit",function(s){return i.onSubmit(s)})("reset",function(){return i.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Kt([YU]),dt,Gi]}),n})();const BU={provide:$r,useExisting:sn(()=>$f)};let $f=(()=>{class n extends FE{constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){UE(this._parent)}}return n.\u0275fac=function(e){return new(e||n)(F($r,13),F(Mr,10),F(ol,10))},n.\u0275dir=Ke({type:n,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[Kt([BU]),dt]}),n})();const HU={provide:$r,useExisting:sn(()=>Gf)};let Gf=(()=>{class n extends $r{constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return kg(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){UE(this._parent)}}return n.\u0275fac=function(e){return new(e||n)(F($r,13),F(Mr,10),F(ol,10))},n.\u0275dir=Ke({type:n,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[Kt([HU]),dt]}),n})();function UE(n){return!(n instanceof $f||n instanceof ni||n instanceof Gf)}const VU={provide:Ps,useExisting:sn(()=>Di)};let Di=(()=>{class n extends Ps{constructor(e,i,o,s,a){super(),this._ngModelWarningConfig=a,this._added=!1,this.update=new ht,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=function H1(n,t){if(!t)return null;let e,i,o;return Array.isArray(t),t.forEach(s=>{s.constructor===Fi?e=s:function DU(n){return Object.getPrototypeOf(n.constructor)===oc}(s)?i=s:o=s}),o||i||e||null}(0,s)}set isDisabled(e){}ngOnChanges(e){this._added||this._setUpControl(),function B1(n,t){if(!n.hasOwnProperty("model"))return!1;const e=n.model;return!!e.isFirstChange()||!Object.is(t,e.currentValue)}(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return kg(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}}return n._ngModelWarningSentOnce=!1,n.\u0275fac=function(e){return new(e||n)(F($r,13),F(Mr,10),F(ol,10),F(os,10),F(V1,8))},n.\u0275dir=Ke({type:n,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[Kt([VU]),dt,Gi]}),n})();let sc=(()=>{class n{constructor(){this._validator=bg}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):bg,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,features:[Gi]}),n})();const eW={provide:Mr,useExisting:sn(()=>wr),multi:!0};let wr=(()=>{class n extends sc{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>function GE(n){return"number"==typeof n?n:parseInt(n,10)}(e),this.createValidator=e=>cE(e)}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(e,i){2&e&&Ut("maxlength",i._enabled?i.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Kt([eW]),dt]}),n})(),eI=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[HE]}),n})(),nW=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:cu,useValue:e.callSetDisabledState??Cg}]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[eI]}),n})(),$1=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:V1,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:cu,useValue:e.callSetDisabledState??Cg}]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[eI]}),n})();class tI extends xg{constructor(t,e,i){super(F1(e),R1(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(t){return this.controls[this._adjustIndex(t)]}push(t,e={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){let i=this._adjustIndex(t);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){let o=this._adjustIndex(t);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){DE(this,0,t),t.forEach((i,o)=>{SE(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(t.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,o)=>{i.reset(t[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(const t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){return this.at(t)??null}}function nI(n){return!!n&&(void 0!==n.asyncValidators||void 0!==n.validators||void 0!==n.updateOn)}let iI=(()=>{class n{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new n;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let s={};return nI(i)?s=i:null!==i&&(s.validators=i.validator,s.asyncValidators=i.asyncValidator),new lu(o,s)}record(e,i=null){const o=this._reduceControls(e);return new LE(o,i)}control(e,i,o){let s={};return this.useNonNullable?(nI(i)?s=i:(s.validators=i,s.asyncValidators=o),new du(e,{...s,nonNullable:!0})):new du(e,i,o)}array(e,i,o){const s=e.map(a=>this._createControl(a));return new tI(s,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof du||e instanceof xg?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:$1}),n})(),xr=(()=>{class n extends iI{group(e,i=null){return super.group(e,i)}control(e,i,o){return super.control(e,i,o)}array(e,i,o){return super.array(e,i,o)}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:$1}),n})();const iW=["matFormFieldNotchedOutline",""],rW=["*"],oW=["textField"],sW=["iconPrefixContainer"],aW=["textPrefixContainer"];function lW(n,t){1&n&&xe(0,"span",19)}function cW(n,t){if(1&n){const e=tt();D(0,"label",17),ye("cdkObserveContent",function(){return Pe(e),Oe(z(2)._refreshOutlineNotchWidth())}),vn(1,1),j(2,lW,1,0,"span",18),C()}if(2&n){const e=z(2);w("floating",e._shouldLabelFloat())("cdkObserveContentDisabled",!e._hasOutline())("id",e._labelId),Ut("for",e._control.id)("aria-owns",e._control.id),d(2),w("ngIf",!e.hideRequiredMarker&&e._control.required)}}function dW(n,t){1&n&&j(0,cW,3,6,"label",16),2&n&&w("ngIf",z()._hasFloatingLabel())}function uW(n,t){1&n&&xe(0,"div",20)}function hW(n,t){}function fW(n,t){1&n&&j(0,hW,0,0,"ng-template",22),2&n&&(z(2),w("ngTemplateOutlet",li(1)))}function pW(n,t){if(1&n&&(D(0,"div",21),j(1,fW,1,1,"ng-template",9),C()),2&n){const e=z();w("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat())("matFormFieldNotchedOutlineLabelWidth",e._labelWidth),d(1),w("ngIf",!e._forceDisplayInfixLabel())}}function mW(n,t){1&n&&(D(0,"div",23,24),vn(2,2),C())}function _W(n,t){1&n&&(D(0,"div",25,26),vn(2,3),C())}function gW(n,t){}function bW(n,t){1&n&&j(0,gW,0,0,"ng-template",22),2&n&&(z(),w("ngTemplateOutlet",li(1)))}function vW(n,t){1&n&&(D(0,"div",27),vn(1,4),C())}function yW(n,t){1&n&&(D(0,"div",28),vn(1,5),C())}function MW(n,t){1&n&&xe(0,"div",29)}function wW(n,t){1&n&&(D(0,"div",30),vn(1,6),C()),2&n&&w("@transitionMessages",z()._subscriptAnimationState)}function xW(n,t){if(1&n&&(D(0,"mat-hint",34),I(1),C()),2&n){const e=z(2);w("id",e._hintLabelId),d(1),oe(e.hintLabel)}}function CW(n,t){if(1&n&&(D(0,"div",31),j(1,xW,2,2,"mat-hint",32),vn(2,7),xe(3,"div",33),vn(4,8),C()),2&n){const e=z();w("@transitionMessages",e._subscriptAnimationState),d(1),w("ngIf",e.hintLabel)}}const kW=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],SW=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];let rI=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["mat-label"]]}),n})(),DW=0;const oI=new Be("MatError");let sl=(()=>{class n{constructor(e,i){this.id="mat-mdc-error-"+DW++,e||i.nativeElement.setAttribute("aria-live","polite")}}return n.\u0275fac=function(e){return new(e||n)(Ra("aria-live"),F(bt))},n.\u0275dir=Ke({type:n,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(e,i){2&e&&Qs("id",i.id)},inputs:{id:"id"},features:[Kt([{provide:oI,useExisting:n}])]}),n})(),TW=0,sI=(()=>{class n{constructor(){this.align="start",this.id="mat-mdc-hint-"+TW++}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(e,i){2&e&&(Qs("id",i.id),Ut("align",null),Gt("mat-mdc-form-field-hint-end","end"===i.align))},inputs:{align:"align",id:"id"}}),n})();const LW=new Be("MatPrefix"),EW=new Be("MatSuffix");let aI=(()=>{class n{constructor(e){this._elementRef=e,this.floating=!1}getWidth(){return function IW(n){if(null!==n.offsetParent)return n.scrollWidth;const e=n.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}}return n.\u0275fac=function(e){return new(e||n)(F(bt))},n.\u0275dir=Ke({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(e,i){2&e&&Gt("mdc-floating-label--float-above",i.floating)},inputs:{floating:"floating"}}),n})();const lI="mdc-line-ripple--active",Eg="mdc-line-ripple--deactivating";let cI=(()=>{class n{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=o=>{const s=this._elementRef.nativeElement.classList,a=s.contains(Eg);"opacity"===o.propertyName&&a&&s.remove(lI,Eg)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(Eg),e.add(lI)}deactivate(){this._elementRef.nativeElement.classList.add(Eg)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt))},n.\u0275dir=Ke({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]}),n})(),dI=(()=>{class n{constructor(e,i){this._elementRef=e,this._ngZone=i,this.labelWidth=0,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_getNotchWidth(){return this.open?this.labelWidth>0?`calc(${this.labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:"0px":null}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt))},n.\u0275cmp=qe({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(e,i){2&e&&Gt("mdc-notched-outline--notched",i.open)},inputs:{labelWidth:["matFormFieldNotchedOutlineLabelWidth","labelWidth"],open:["matFormFieldNotchedOutlineOpen","open"]},attrs:iW,ngContentSelectors:rW,decls:4,vars:2,consts:[[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],[1,"mdc-notched-outline__trailing"]],template:function(e,i){1&e&&(_r(),xe(0,"div",0),D(1,"div",1),vn(2),C(),xe(3,"div",2)),2&e&&(d(1),Ha("width",i._getNotchWidth()))},encapsulation:2,changeDetection:0}),n})();const PW={transitionMessages:ra("transitionMessages",[mo("enter",Kn({opacity:1,transform:"translateY(0%)"})),Lr("void => enter",[Kn({opacity:0,transform:"translateY(-5px)"}),Ur("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let G1=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n}),n})();const q1=new Be("MatFormField"),OW=new Be("MAT_FORM_FIELD_DEFAULT_OPTIONS");let uI=0,tr=(()=>{class n{constructor(e,i,o,s,a,l,c,M){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=s,this._platform=a,this._defaults=l,this._animationMode=c,this._document=M,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+uI++,this._hintLabelId="mat-mdc-hint-"+uI++,this._subscriptAnimationState="",this._labelWidth=0,this._destroyed=new X,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,l&&(l.appearance&&(this.appearance=l.appearance),this._hideRequiredMarker=Boolean(l?.hideRequiredMarker),l.color&&(this.color=l.color))}get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=hn(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._refreshOutlineNotchWidth(),this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}ngAfterViewInit(){this._updateFocusState(),this._refreshOutlineNotchWidth(),this._document?.fonts?.ready?this._document.fonts.ready.then(()=>{this._refreshOutlineNotchWidth(),this._changeDetectorRef.markForCheck()}):setTimeout(()=>this._refreshOutlineNotchWidth(),100),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(xn(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),vt(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(xn(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(xn(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||(this._labelWidth=this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(s=>"start"===s.align):null,o=this._hintChildren?this._hintChildren.find(s=>"end"===s.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),o&&e.push(o.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,o=this._textPrefixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=o?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${s+a}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(di),F(pt),F(Pr),F(hi),F(OW,8),F(Vi,8),F(St))},n.\u0275cmp=qe({type:n,selectors:[["mat-form-field"]],contentQueries:function(e,i,o){if(1&e&&(Qi(o,rI,5),Qi(o,rI,7),Qi(o,G1,5),Qi(o,LW,5),Qi(o,EW,5),Qi(o,oI,5),Qi(o,sI,5)),2&e){let s;nt(s=it())&&(i._labelChildNonStatic=s.first),nt(s=it())&&(i._labelChildStatic=s.first),nt(s=it())&&(i._formFieldControl=s.first),nt(s=it())&&(i._prefixChildren=s),nt(s=it())&&(i._suffixChildren=s),nt(s=it())&&(i._errorChildren=s),nt(s=it())&&(i._hintChildren=s)}},viewQuery:function(e,i){if(1&e&&(ft(oW,5),ft(sW,5),ft(aW,5),ft(aI,5),ft(dI,5),ft(cI,5)),2&e){let o;nt(o=it())&&(i._textField=o.first),nt(o=it())&&(i._iconPrefixContainer=o.first),nt(o=it())&&(i._textPrefixContainer=o.first),nt(o=it())&&(i._floatingLabel=o.first),nt(o=it())&&(i._notchedOutline=o.first),nt(o=it())&&(i._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(e,i){2&e&&Gt("mat-mdc-form-field-label-always-float",i._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",i._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",i._hasIconSuffix)("mat-form-field-invalid",i._control.errorState)("mat-form-field-disabled",i._control.disabled)("mat-form-field-autofilled",i._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===i._animationMode)("mat-form-field-appearance-fill","fill"==i.appearance)("mat-form-field-appearance-outline","outline"==i.appearance)("mat-form-field-hide-placeholder",i._hasFloatingLabel()&&!i._shouldLabelFloat())("mat-focused",i._control.focused)("mat-primary","accent"!==i.color&&"warn"!==i.color)("mat-accent","accent"===i.color)("mat-warn","warn"===i.color)("ng-untouched",i._shouldForward("untouched"))("ng-touched",i._shouldForward("touched"))("ng-pristine",i._shouldForward("pristine"))("ng-dirty",i._shouldForward("dirty"))("ng-valid",i._shouldForward("valid"))("ng-invalid",i._shouldForward("invalid"))("ng-pending",i._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[Kt([{provide:q1,useExisting:n}])],ngContentSelectors:SW,decls:18,vars:23,consts:[["labelTemplate",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],["textField",""],["class","mat-mdc-form-field-focus-overlay",4,"ngIf"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen","matFormFieldNotchedOutlineLabelWidth",4,"ngIf"],["class","mat-mdc-form-field-icon-prefix",4,"ngIf"],["class","mat-mdc-form-field-text-prefix",4,"ngIf"],[1,"mat-mdc-form-field-infix"],[3,"ngIf"],["class","mat-mdc-form-field-text-suffix",4,"ngIf"],["class","mat-mdc-form-field-icon-suffix",4,"ngIf"],["matFormFieldLineRipple","",4,"ngIf"],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align",3,"ngSwitch"],["class","mat-mdc-form-field-error-wrapper",4,"ngSwitchCase"],["class","mat-mdc-form-field-hint-wrapper",4,"ngSwitchCase"],["matFormFieldFloatingLabel","",3,"floating","cdkObserveContentDisabled","id","cdkObserveContent",4,"ngIf"],["matFormFieldFloatingLabel","",3,"floating","cdkObserveContentDisabled","id","cdkObserveContent"],["aria-hidden","true","class","mat-mdc-form-field-required-marker mdc-floating-label--required",4,"ngIf"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-focus-overlay"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen","matFormFieldNotchedOutlineLabelWidth"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-icon-prefix"],["iconPrefixContainer",""],[1,"mat-mdc-form-field-text-prefix"],["textPrefixContainer",""],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id",4,"ngIf"],[1,"mat-mdc-form-field-hint-spacer"],[3,"id"]],template:function(e,i){1&e&&(_r(kW),j(0,dW,1,1,"ng-template",null,0,Ms),D(2,"div",1,2),ye("click",function(s){return i._control.onContainerClick&&i._control.onContainerClick(s)}),j(4,uW,1,0,"div",3),D(5,"div",4),j(6,pW,2,3,"div",5),j(7,mW,3,0,"div",6),j(8,_W,3,0,"div",7),D(9,"div",8),j(10,bW,1,1,"ng-template",9),vn(11),C(),j(12,vW,2,0,"div",10),j(13,yW,2,0,"div",11),C(),j(14,MW,1,0,"div",12),C(),D(15,"div",13),j(16,wW,2,1,"div",14),j(17,CW,5,2,"div",15),C()),2&e&&(d(2),Gt("mdc-text-field--filled",!i._hasOutline())("mdc-text-field--outlined",i._hasOutline())("mdc-text-field--no-label",!i._hasFloatingLabel())("mdc-text-field--disabled",i._control.disabled)("mdc-text-field--invalid",i._control.errorState),d(2),w("ngIf",!i._hasOutline()&&!i._control.disabled),d(2),w("ngIf",i._hasOutline()),d(1),w("ngIf",i._hasIconPrefix),d(1),w("ngIf",i._hasTextPrefix),d(2),w("ngIf",!i._hasOutline()||i._forceDisplayInfixLabel()),d(2),w("ngIf",i._hasTextSuffix),d(1),w("ngIf",i._hasIconSuffix),d(1),w("ngIf",!i._hasOutline()),d(1),Gt("mat-mdc-form-field-subscript-dynamic-size","dynamic"===i.subscriptSizing),w("ngSwitch",i._getDisplayedMessages()),d(1),w("ngSwitchCase","error"),d(1),w("ngSwitchCase","hint"))},dependencies:[Ot,Ad,Uh,Ty,K2,sI,aI,dI,cI],styles:['.mdc-text-field{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required::after,.mdc-floating-label--required[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;border-top:1px solid;border-bottom:1px solid;pointer-events:none}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid;flex-grow:1}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{flex:0 0 auto;width:auto;max-width:calc(100% - 12px * 2)}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{line-height:normal;pointer-events:all}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0 - 0%)) translateY(-10.25px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-10.25px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-10.25px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-10.25px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0 - 0%)) translateY(-24.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-24.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-24.75px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-24.75px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0 - 32px)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - 32px)) translateY(-34.75px) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0 - -32px)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - -32px)) translateY(-34.75px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0 - 0%)) translateY(-106%) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-106%) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-106%) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-106%) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}'],encapsulation:2,data:{animation:[PW.transitionMessages]},changeDetection:0}),n})(),Ig=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[Hn,na,l1,Hn]}),n})();const pI=Ja({passive:!0});let RW=(()=>{class n{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return Ga;const i=la(e),o=this._monitoredElements.get(i);if(o)return o.subject;const s=new X,a="cdk-text-field-autofilled",l=c=>{"cdk-text-field-autofill-start"!==c.animationName||i.classList.contains(a)?"cdk-text-field-autofill-end"===c.animationName&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>s.next({target:c.target,isAutofilled:!1}))):(i.classList.add(a),this._ngZone.run(()=>s.next({target:c.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",l,pI),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:s,unlisten:()=>{i.removeEventListener("animationstart",l,pI)}}),s}stopMonitoring(e){const i=la(e),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}}return n.\u0275fac=function(e){return new(e||n)(we(hi),we(pt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),NW=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({}),n})();const YW=new Be("MAT_INPUT_VALUE_ACCESSOR"),BW=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let HW=0;const VW=_L(class{constructor(n,t,e,i){this._defaultErrorStateMatcher=n,this._parentForm=t,this._parentFormGroup=e,this.ngControl=i,this.stateChanges=new X}});let Cr=(()=>{class n extends VW{constructor(e,i,o,s,a,l,c,M,P,Y){super(l,s,a,o),this._elementRef=e,this._platform=i,this._autofillMonitor=M,this._formField=Y,this._uid="mat-input-"+HW++,this.focused=!1,this.stateChanges=new X,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(fe=>P2().has(fe)),this._iOSKeyupListener=fe=>{const ke=fe.target;!ke.value&&0===ke.selectionStart&&0===ke.selectionEnd&&(ke.setSelectionRange(1,1),ke.setSelectionRange(0,0))};const q=this._elementRef.nativeElement,te=q.nodeName.toLowerCase();this._inputValueAccessor=c||q,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&P.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===te,this._isTextarea="textarea"===te,this._isInFormField=!!Y,this._isNativeSelect&&(this.controlType=q.multiple?"mat-native-select-multiple":"mat-native-select")}get disabled(){return this._disabled}set disabled(e){this._disabled=hn(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(Vt.required)??!1}set required(e){this._required=hn(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&P2().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=hn(e)}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){BW.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(hi),F(Ps,10),F(Wf,8),F(ni,8),F(y1),F(YW,10),F(RW),F(pt),F(q1,8))},n.\u0275dir=Ke({type:n,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(e,i){1&e&&ye("focus",function(){return i._focusChanged(!0)})("blur",function(){return i._focusChanged(!1)})("input",function(){return i._onInput()}),2&e&&(Qs("id",i.id)("disabled",i.disabled)("required",i.required),Ut("name",i.name||null)("readonly",i.readonly&&!i._isNativeSelect||null)("aria-invalid",i.empty&&i.required?null:i.errorState)("aria-required",i.required)("id",i.id),Gt("mat-input-server",i._isServer)("mat-mdc-form-field-textarea-control",i._isInFormField&&i._isTextarea)("mat-mdc-form-field-input-control",i._isInFormField)("mdc-text-field__input",i._isInFormField)("mat-mdc-native-select-inline",i._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[Kt([{provide:G1,useExisting:n}]),dt,Gi]}),n})(),jW=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[Hn,Ig,Ig,NW,Hn]}),n})();const zW=["tooltip"],mI=new Be("mat-tooltip-scroll-strategy"),$W={provide:mI,deps:[to],useFactory:function WW(n){return()=>n.scrollStrategies.reposition({scrollThrottle:20})}},qW=new Be("mat-tooltip-default-options",{providedIn:"root",factory:function GW(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),_I="tooltip-panel",gI=Ja({passive:!0});let e$=(()=>{class n{constructor(e,i,o,s,a,l,c,M,P,Y,q,te){this._overlay=e,this._elementRef=i,this._scrollDispatcher=o,this._viewContainerRef=s,this._ngZone=a,this._platform=l,this._ariaDescriber=c,this._focusMonitor=M,this._dir=Y,this._defaultOptions=q,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this._showDelay=this._defaultOptions.showDelay,this._hideDelay=this._defaultOptions.hideDelay,this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new X,this._scrollStrategy=P,this._document=te,q&&(q.position&&(this.position=q.position),q.positionAtOrigin&&(this.positionAtOrigin=q.positionAtOrigin),q.touchGestures&&(this.touchGestures=q.touchGestures)),Y.change.pipe(xn(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})}get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=hn(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=hn(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=vo(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=vo(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(xn(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,o])=>{e.removeEventListener(i,o,gI)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const o=this._createOverlay(i);this._detach(),this._portal=this._portal||new Zd(this._tooltipComponent,this._viewContainerRef);const s=this._tooltipInstance=o.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(xn(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof bt)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),o=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(xn(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${_I}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(xn(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(xn(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(xn(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&27===s.keyCode&&!Ds(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,o=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset({...o.main,...s.main}),this._addOffset({...o.fallback,...s.fallback})])}_addOffset(e){return e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i||"below"==i?o={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={originX:"end",originY:"center"});const{x:s,y:a}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:s,originY:a}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i?o={overlayX:"center",overlayY:"bottom"}:"below"==i?o={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={overlayX:"start",overlayY:"center"});const{x:s,y:a}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:s,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(ei(1),xn(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:o,originY:s}=e;let a;if(a="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===s?"above":"below",a!==this._currentPosition){const l=this._overlayRef;if(l){const c=`${this._cssClassPrefix}-${_I}-`;l.removePanelClass(c+this._currentPosition),l.addPanelClass(c+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,o),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const o=i.relatedTarget;(!o||!this._overlayRef?.overlayElement.contains(o))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,o])=>{this._elementRef.nativeElement.addEventListener(i,o,gI)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,o=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),("on"===e||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}}return n.\u0275fac=function(e){Ya()},n.\u0275dir=Ke({type:n,inputs:{position:["matTooltipPosition","position"],positionAtOrigin:["matTooltipPositionAtOrigin","positionAtOrigin"],disabled:["matTooltipDisabled","disabled"],showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]}}),n})(),gi=(()=>{class n extends e${constructor(e,i,o,s,a,l,c,M,P,Y,q,te){super(e,i,o,s,a,l,c,M,P,Y,q,te),this._tooltipComponent=n$,this._cssClassPrefix="mat-mdc",this._viewportMargin=8}_addOffset(e){const o=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=o?-8:8:"end"===e.originX&&(e.offsetX=o?8:-8),e}}return n.\u0275fac=function(e){return new(e||n)(F(to),F(bt),F(Cf),F(Xi),F(pt),F(hi),F(Q7),F(nl),F(mI),F(Pr,8),F(qW,8),F(St))},n.\u0275dir=Ke({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],exportAs:["matTooltip"],features:[dt]}),n})(),t$=(()=>{class n{constructor(e,i){this._changeDetectorRef=e,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new X,this._animationsDisabled="NoopAnimations"===i}show(e){clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){clearTimeout(this._showTimeoutId),clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,o=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(e?s:o),i.classList.add(e?o:s),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const a=getComputedStyle(i);("0s"===a.getPropertyValue("animation-duration")||"none"===a.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}}return n.\u0275fac=function(e){return new(e||n)(F(di),F(Vi,8))},n.\u0275dir=Ke({type:n}),n})(),n$=(()=>{class n extends t${constructor(e,i,o){super(e,o),this._elementRef=i,this._isMultiline=!1,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide"}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}}return n.\u0275fac=function(e){return new(e||n)(F(di),F(bt),F(Vi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(e,i){if(1&e&&ft(zW,7),2&e){let o;nt(o=it())&&(i._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(e,i){1&e&&ye("mouseleave",function(s){return i._handleMouseLeave(s)}),2&e&&Ha("zoom",i.isVisible()?1:null)},features:[dt],decls:4,vars:4,consts:[[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"ngClass","animationend"],["tooltip",""],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(e,i){1&e&&(D(0,"div",0,1),ye("animationend",function(s){return i._handleAnimationEnd(s)}),D(2,"div",2),I(3),C()()),2&e&&(Gt("mdc-tooltip--multiline",i._isMultiline),w("ngClass",i.tooltipClass),d(3),oe(i.message))},dependencies:[On],styles:['.mdc-tooltip__surface{word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color, #fff)}.mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape, var(--mdc-shape-small, 4px))}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape, var(--mdc-shape-small, 4px))}.mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color, #000)}.mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font, inherit);font-size:var(--mdc-plain-tooltip-supporting-text-size, inherit);font-weight:var(--mdc-plain-tooltip-supporting-text-weight, inherit);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, inherit)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:-8px;right:-8px;bottom:-8px;left:-8px;z-index:-1;position:absolute}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0}),n})(),i$=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({providers:[$W],imports:[g1,na,Qd,Hn,Hn,kf]}),n})();const r$=["button1"],o$=["button2"];function s$(n,t){1&n&&xe(0,"mat-spinner",5),2&n&&w("diameter",z().loadingSize)}function a$(n,t){1&n&&(D(0,"mat-icon"),I(1,"error_outline"),C())}const l$=function(n){return{"for-dark-background":n}};var ua=(()=>(function(n){n[n.Normal=0]="Normal",n[n.Error=1]="Error",n[n.Loading=2]="Loading"}(ua||(ua={})),ua))();class ii{constructor(){this.forDarkBackground=!1,this.disabled=!1,this.color="",this.loadingSize=20,this.action=new ht,this.state=ua.Normal,this.buttonStates=ua}ngOnDestroy(){this.action.complete()}click(){this.disabled||(this.reset(),this.action.emit())}reset(t=!0){this.state=ua.Normal,t&&(this.disabled=!1)}focus(){this.button1&&this.button1.focus(),this.button2&&this.button2.focus()}showEnabled(){this.disabled=!1}showDisabled(){this.disabled=!0}showLoading(t=!0){this.state=ua.Loading,t&&(this.disabled=!0)}showError(t=!0){this.state=ua.Error,t&&(this.disabled=!1)}get isLoading(){return this.state===ua.Loading}}ii.\u0275fac=function(t){return new(t||ii)},ii.\u0275cmp=qe({type:ii,selectors:[["app-button"]],viewQuery:function(t,e){if(1&t&&(ft(r$,5),ft(o$,5)),2&t){let i;nt(i=it())&&(e.button1=i.first),nt(i=it())&&(e.button2=i.first)}},inputs:{forDarkBackground:"forDarkBackground",disabled:"disabled",color:"color",loadingSize:"loadingSize"},outputs:{action:"action"},ngContentSelectors:["*"],decls:6,vars:7,consts:[["mat-raised-button","",3,"disabled","color","ngClass","click"],["button2",""],[1,"d-flex"],[3,"diameter",4,"ngIf"],[4,"ngIf"],[3,"diameter"]],template:function(t,e){1&t&&(_r(),D(0,"button",0,1),ye("click",function(){return e.click()}),D(2,"div",2),j(3,s$,1,1,"mat-spinner",3),j(4,a$,2,0,"mat-icon",4),vn(5),C()()),2&t&&(w("disabled",e.disabled)("color",e.color)("ngClass",Ve(5,l$,e.forDarkBackground)),d(3),w("ngIf",e.state===e.buttonStates.Loading),d(1),w("ngIf",e.state===e.buttonStates.Error))},dependencies:[On,Ot,Wr,Cn,rc],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px}button[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}mat-icon[_ngcontent-%COMP%], mat-spinner[_ngcontent-%COMP%]{display:inline-block;margin-right:15px}.for-dark-background[_ngcontent-%COMP%]:disabled{background-color:#000!important;color:#fff!important;opacity:.3}"]});const d$=["button"],u$=["firstInput"],h$=function(n){return{"element-disabled":n}};function f$(n,t){if(1&n&&(D(0,"mat-form-field",12)(1,"div",5)(2,"label",6),I(3),R(4,"translate"),C(),xe(5,"input",13),C(),D(6,"mat-error")(7,"span"),I(8),R(9,"translate"),C()()()),2&n){const e=z();w("ngClass",Ve(7,h$,e.working)),d(3),oe(B(4,3,"settings.password.old-password")),d(5),oe(B(9,5,"settings.password.errors.old-password-required"))}}const p$=function(n){return{"rounded-elevated-box":n}},bI=function(n,t){return{"white-form-field":n,"element-disabled":t}},m$=function(n,t){return{"mt-2 app-button":n,"float-right":t}};class uu{constructor(t,e,i,o){this.authService=t,this.router=e,this.snackbarService=i,this.dialog=o,this.workingState=new ht,this.forInitialConfig=!1}ngOnInit(){this.form=new TE({oldPassword:new Lg("",this.forInitialConfig?null:Vt.required),newPassword:new Lg("",Vt.compose([Vt.required,Vt.minLength(6),Vt.maxLength(64)])),newPasswordConfirmation:new Lg("",[Vt.required,this.validatePasswords.bind(this)])}),this.formSubscription=this.form.controls.newPassword.valueChanges.subscribe(()=>this.form.controls.newPasswordConfirmation.updateValueAndValidity())}ngAfterViewInit(){this.forInitialConfig&&setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe(),this.formSubscription.unsubscribe()}get working(){return!!this.button&&this.button.isLoading}changePassword(){this.form.valid&&!this.button.disabled&&(this.button.showLoading(),this.workingState.next(!0),this.subscription=this.forInitialConfig?this.authService.initialConfig(this.form.get("newPassword").value).subscribe(()=>{this.dialog.closeAll(),this.snackbarService.showDone("settings.password.initial-config.done"),this.workingState.next(!1)},t=>{this.button.showError(),t=Qt(t),this.snackbarService.showError(t,null,!0),this.workingState.next(!1)}):this.authService.changePassword(this.form.get("oldPassword").value,this.form.get("newPassword").value).subscribe(()=>{this.router.navigate(["nodes"]),this.snackbarService.showDone("settings.password.password-changed"),this.workingState.next(!1)},t=>{this.button.showError(),t=Qt(t),this.snackbarService.showError(t),this.workingState.next(!1)}))}validatePasswords(){return this.form&&this.form.get("newPassword").value!==this.form.get("newPasswordConfirmation").value?{invalid:!0}:null}}function _$(n,t){1&n&&(D(0,"button",5)(1,"mat-icon"),I(2,"close"),C()())}function g$(n,t){1&n&&Xo(0)}uu.\u0275fac=function(t){return new(t||uu)(F(Is),F(Xt),F(cn),F(Fn))},uu.\u0275cmp=qe({type:uu,selectors:[["app-password"]],viewQuery:function(t,e){if(1&t&&(ft(d$,5),ft(u$,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},inputs:{forInitialConfig:"forInitialConfig"},outputs:{workingState:"workingState"},decls:33,vars:40,consts:[[3,"ngClass"],[1,"box-internal-container","overflow"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],["class","white-form-field",3,"ngClass",4,"ngIf"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","formControlName","newPassword","maxlength","64","matInput",""],["firstInput",""],["type","password","formControlName","newPasswordConfirmation","maxlength","64","matInput",""],["color","primary",3,"ngClass","disabled","forDarkBackground","action"],["button",""],[1,"white-form-field",3,"ngClass"],["type","password","formControlName","oldPassword","maxlength","64","matInput",""]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div")(3,"mat-icon",2),R(4,"translate"),I(5," help "),C()(),D(6,"form",3),j(7,f$,10,9,"mat-form-field",4),D(8,"mat-form-field",0)(9,"div",5)(10,"label",6),I(11),R(12,"translate"),C(),xe(13,"input",7,8),C(),D(15,"mat-error")(16,"span"),I(17),R(18,"translate"),C()()(),D(19,"mat-form-field",0)(20,"div",5)(21,"label",6),I(22),R(23,"translate"),C(),xe(24,"input",9),C(),D(25,"mat-error")(26,"span"),I(27),R(28,"translate"),C()()(),D(29,"app-button",10,11),ye("action",function(){return e.changePassword()}),I(31),R(32,"translate"),C()()()()),2&t&&(w("ngClass",Ve(29,p$,!e.forInitialConfig)),d(2),fo((e.forInitialConfig?"":"white-")+"form-help-icon-container"),d(1),w("inline",!0)("matTooltip",B(4,17,e.forInitialConfig?"settings.password.initial-config-help":"settings.password.help")),d(3),w("formGroup",e.form),d(1),w("ngIf",!e.forInitialConfig),d(1),w("ngClass",ln(31,bI,!e.forInitialConfig,e.working)),d(3),oe(B(12,19,e.forInitialConfig?"settings.password.initial-config.password":"settings.password.new-password")),d(6),oe(B(18,21,"settings.password.errors.new-password-error")),d(2),w("ngClass",ln(34,bI,!e.forInitialConfig,e.working)),d(3),oe(B(23,23,e.forInitialConfig?"settings.password.initial-config.repeat-password":"settings.password.repeat-password")),d(5),oe(B(28,25,"settings.password.errors.passwords-not-match")),d(2),w("ngClass",ln(37,m$,!e.forInitialConfig,e.forInitialConfig))("disabled",!e.form.valid)("forDarkBackground",!e.forInitialConfig),d(2),me(" ",B(32,27,e.forInitialConfig?"settings.password.initial-config.set-password":"settings.change-password")," "))},dependencies:[On,Ot,Yi,Fi,Ri,Ni,wr,ni,Di,tr,sl,Cr,Cn,gi,ii,Ct],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}app-button[_ngcontent-%COMP%]{float:right;margin-right:32px}"]});const vI=function(n){return{"content-margin":n}};function b$(n,t){if(1&n&&(D(0,"mat-dialog-content",6),j(1,g$,1,0,"ng-container",7),C()),2&n){const e=z(),i=li(8);w("ngClass",Ve(2,vI,e.includeVerticalMargins)),d(1),w("ngTemplateOutlet",i)}}function v$(n,t){1&n&&Xo(0)}function y$(n,t){if(1&n&&(D(0,"div",6),j(1,v$,1,0,"ng-container",7),C()),2&n){const e=z(),i=li(8);w("ngClass",Ve(2,vI,e.includeVerticalMargins)),d(1),w("ngTemplateOutlet",i)}}function M$(n,t){1&n&&vn(0)}class Rn{constructor(t){this.matDialog=t,this.includeScrollableArea=!0,this.includeVerticalMargins=!0}set dialog(t){t.disableClose=!0,this.dialogInternal=t}onKeyUp(){this.closePopup()}closePopup(){this.disableDismiss||this.matDialog.openDialogs[this.matDialog.openDialogs.length-1].id===this.dialogInternal.id&&this.dialogInternal.close()}}Rn.\u0275fac=function(t){return new(t||Rn)(F(Fn))},Rn.\u0275cmp=qe({type:Rn,selectors:[["app-dialog"]],hostBindings:function(t,e){1&t&&ye("keyup.esc",function(){return e.onKeyUp()},0,Vw)},inputs:{headline:"headline",disableDismiss:"disableDismiss",includeScrollableArea:"includeScrollableArea",includeVerticalMargins:"includeVerticalMargins",dialog:"dialog"},ngContentSelectors:["*"],decls:9,vars:4,consts:[["mat-dialog-title","",1,"header"],["mat-dialog-close","","mat-icon-button","","class","grey-button-background",4,"ngIf"],[1,"header-separator"],[3,"ngClass",4,"ngIf"],["contentTemplate",""],["mat-dialog-close","","mat-icon-button","",1,"grey-button-background"],[3,"ngClass"],[4,"ngTemplateOutlet"]],template:function(t,e){1&t&&(_r(),D(0,"div",0)(1,"span"),I(2),C(),j(3,_$,3,0,"button",1),C(),xe(4,"div",2),j(5,b$,2,4,"mat-dialog-content",3),j(6,y$,2,4,"div",3),j(7,M$,1,0,"ng-template",null,4,Ms)),2&t&&(d(2),oe(e.headline),d(1),w("ngIf",!e.disableDismiss),d(2),w("ngIf",e.includeScrollableArea),d(1),w("ngIf",!e.includeScrollableArea))},dependencies:[On,Ot,Ad,tz,nz,IL,il,Cn],styles:['.cursor-pointer[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}[_nghost-%COMP%]{color:#202226}.header[_ngcontent-%COMP%]{margin:-24px -24px 0;color:#215f9e;padding:0 14px 0 24px;font-size:1rem;text-transform:uppercase;font-weight:700;display:flex;align-items:center}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-grow:1}@media (max-width: 767px){.header[_ngcontent-%COMP%]{padding:0 2px 0 24px}}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:1rem;margin:18px 0}.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{color:#a6b2b2;width:32px;height:32px;line-height:20px;margin-left:10px;padding:0}@media (max-width: 767px){.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{width:46px;height:46px}}.header-separator[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin-left:-12px;margin-right:-12px}.content-margin[_ngcontent-%COMP%]{padding-top:18px;padding-bottom:24px!important}']});class ac{constructor(t){this.dialogRef=t,this.disableDismiss=!1}static openDialog(t){const e=new An;return e.autoFocus=!1,e.width=Ht.smallModalWidth,t.open(ac,e)}}function x$(n,t){if(1&n){const e=tt();D(0,"button",3),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().closePopup(s))}),xe(1,"img",4),D(2,"div",5),I(3),C()()}if(2&n){const e=t.$implicit;d(1),w("src","assets/img/lang/"+e.iconName,_s),d(2),oe(e.name)}}ac.\u0275fac=function(t){return new(t||ac)(F(Vn))},ac.\u0275cmp=qe({type:ac,selectors:[["app-initial-setup"]],decls:3,vars:6,consts:[[3,"headline","dialog","disableDismiss"],[3,"forInitialConfig","workingState"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"app-password",1),ye("workingState",function(o){return e.disableDismiss=o}),C()()),2&t&&(w("headline",B(1,4,"settings.password.initial-config.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),d(2),w("forInitialConfig",!0))},dependencies:[uu,Rn,Ct]});class al{constructor(t,e){this.dialogRef=t,this.languageService=e,this.languages=[]}static openDialog(t){const e=new An;return e.autoFocus=!1,e.width=Ht.mediumModalWidth,t.open(al,e)}ngOnInit(){this.subscription=this.languageService.languages.subscribe(t=>{this.languages=t})}ngOnDestroy(){this.subscription.unsubscribe()}closePopup(t=null){t&&this.languageService.changeLanguage(t.code),this.dialogRef.close()}}function C$(n,t){1&n&&xe(0,"img",2),2&n&&w("src","assets/img/lang/"+z().language.iconName,_s)}al.\u0275fac=function(t){return new(t||al)(F(Vn),F(ca))},al.\u0275cmp=qe({type:al,selectors:[["app-select-language"]],decls:4,vars:5,consts:[[3,"headline","dialog"],[1,"options-container"],["mat-button","","color","accent","class","grey-button-background",3,"click",4,"ngFor","ngForOf"],["mat-button","","color","accent",1,"grey-button-background",3,"click"],[3,"src"],[1,"label"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),j(3,x$,4,2,"button",2),C()()),2&t&&(w("headline",B(1,3,"language.title"))("dialog",e.dialogRef),d(3),w("ngForOf",e.languages))},dependencies:[Ci,Wr,Rn,Ct],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.options-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:118px;height:auto!important;margin:20px;font-size:.7rem;line-height:unset;padding:0!important;color:unset}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .mdc-button__label{width:100%}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:90px;font-size:.6rem;margin:6px}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:64px;height:64px;margin:10px 0}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:48px;height:48px;margin:7px 0}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:#202226!important;background-color:#ffffff40;padding:4px 10px}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{padding:4px 5px}}"]});class qf{constructor(t,e){this.languageService=t,this.dialog=e}ngOnInit(){this.subscription=this.languageService.currentLanguage.subscribe(t=>{this.language=t})}ngOnDestroy(){this.subscription.unsubscribe()}openLanguageWindow(){al.openDialog(this.dialog)}}qf.\u0275fac=function(t){return new(t||qf)(F(ca),F(Fn))},qf.\u0275cmp=qe({type:qf,selectors:[["app-lang-button"]],decls:3,vars:4,consts:[["mat-button","",1,"lang-button","subtle-transparent-button",3,"matTooltip","click"],["class","flag",3,"src",4,"ngIf"],[1,"flag",3,"src"]],template:function(t,e){1&t&&(D(0,"button",0),ye("click",function(){return e.openLanguageWindow()}),R(1,"translate"),j(2,C$,1,1,"img",1),C()),2&t&&(w("matTooltip",B(1,2,"language.title")),d(2),w("ngIf",e.language))},dependencies:[Ot,Wr,gi,Ct],styles:[".lang-button[_ngcontent-%COMP%]{height:40px;background-color:#f8f9f9;border-radius:100%;padding:0;line-height:1;padding:0!important}.lang-button[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{width:20px;height:20px}"]});const k$=function(n){return{"element-disabled":n}};class hu{constructor(t,e,i,o,s){this.authService=t,this.router=e,this.snackbarService=i,this.dialog=o,this.route=s,this.loading=!1,this.isForVpn=!1,this.vpnKey=""}ngOnInit(){this.routeSubscription=this.route.paramMap.subscribe(t=>{this.vpnKey=t.get("key"),this.isForVpn=-1!==window.location.href.indexOf("vpnlogin"),this.verificationSubscription=this.authService.checkLogin().subscribe(e=>{e!==Es.NotLogged&&(da.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})}))})}),this.form=new TE({password:new Lg("",Vt.required)})}ngOnDestroy(){this.loginSubscription&&this.loginSubscription.unsubscribe(),this.verificationSubscription.unsubscribe(),this.routeSubscription.unsubscribe()}login(){!this.form.valid||this.loading||(this.loading=!0,this.loginSubscription=this.authService.login(this.form.get("password").value).subscribe(()=>this.onLoginSuccess(),t=>this.onLoginError(t)))}configure(){ac.openDialog(this.dialog)}onLoginSuccess(){da.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})})}onLoginError(t){t=Qt(t),this.loading=!1,this.snackbarService.showError(t.originalError&&401===t.originalError.status?"login.incorrect-password":t.translatableErrorMsg)}}hu.\u0275fac=function(t){return new(t||hu)(F(Is),F(Xt),F(cn),F(Fn),F(vr))},hu.\u0275cmp=qe({type:hu,selectors:[["app-login"]],decls:14,vars:11,consts:[[1,"w-100","h-100","d-flex","justify-content-center"],[1,"row","main-container"],["src","/assets/img/logo-v.png",1,"logo"],[1,"mt-5",3,"formGroup"],[1,"login-input",3,"ngClass"],["type","password","formControlName","password","autocomplete","off",3,"placeholder","keydown.enter"],[3,"disabled","click"],[1,"config-link",3,"click"]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"app-lang-button"),D(2,"div",1),xe(3,"img",2),D(4,"form",3)(5,"div",4)(6,"input",5),ye("keydown.enter",function(){return e.login()}),R(7,"translate"),C(),D(8,"button",6),ye("click",function(){return e.login()}),D(9,"mat-icon"),I(10,"chevron_right"),C()()()(),D(11,"div",7),ye("click",function(){return e.configure()}),I(12),R(13,"translate"),C()()()),2&t&&(d(4),w("formGroup",e.form),d(1),w("ngClass",Ve(9,k$,e.loading)),d(1),w("placeholder",B(7,5,"login.password")),d(2),w("disabled",!e.form.valid||e.loading),d(4),oe(B(13,7,"login.initial-config")))},dependencies:[On,Yi,Fi,Ri,Ni,ni,Di,Cn,qf,Ct],styles:['.cursor-pointer[_ngcontent-%COMP%], .config-link[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}app-lang-button[_ngcontent-%COMP%]{position:fixed;right:10px;top:10px;z-index:10}.main-container[_ngcontent-%COMP%]{z-index:1;height:100%;flex-direction:column;align-items:center;justify-content:center}.logo[_ngcontent-%COMP%]{width:170px}.login-input[_ngcontent-%COMP%]{height:35px;width:300px;overflow:hidden;border-radius:10px;box-shadow:0 3px 8px #0000001a,0 6px 20px #0000001a;display:flex}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]{background:#fff;width:calc(100% - 35px);height:100%;font-size:.875rem;border:none;padding-left:10px;padding-right:10px}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]:focus{outline:none}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#fff;color:#202226;width:35px;height:35px;line-height:35px;border:none;display:flex;cursor:pointer;align-items:center}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{color:#777}.config-link[_ngcontent-%COMP%]{color:#f8f9f9;font-size:.7rem;margin-top:20px}']});var K1=N(9774),Pg=N.n(K1);class Z1{}class S${}var ss=(()=>(function(n){n.Connecting="connecting",n.Unhealthy="unhealthy",n.Healthy="healthy"}(ss||(ss={})),ss))(),ha=(()=>(function(n){n.UseCustomSettings="updaterUseCustomSettings",n.Channel="updaterChannel",n.Version="updaterVersion",n.ArchiveURL="updaterArchiveURL",n.ChecksumsURL="updaterChecksumsURL"}(ha||(ha={})),ha))();class Mo{constructor(t,e){this.apiService=t,this.storageService=e}getNodes(){let t=[];return this.apiService.get("visors-summary").pipe(Ce(e=>{e&&e.forEach(l=>{const c=new Z1;c.online=l.online,c.localPk=l.overview.local_pk,c.version=l.overview.build_info.version,c.autoconnectTransports=l.public_autoconnect,c.buildTag=l.build_tag?l.build_tag:"",c.rewardsAddress=l.reward_address,c.ip=l.overview&&l.overview.local_ip&&l.overview.local_ip.trim()?l.overview.local_ip:null;const M=this.storageService.getLabelInfo(c.localPk);if(c.label=M&&M.label?M.label:this.storageService.getDefaultLabel(c),!c.online)return c.dmsgServerPk="",c.roundTripPing="",void t.push(c);c.health={servicesHealth:l.health.services_health},c.dmsgServerPk=l.dmsg_stats.server_public_key,c.roundTripPing=this.nsToMs(l.dmsg_stats.round_trip),c.isHypervisor=l.is_hypervisor,t.push(c)});const i=new Map,o=[],s=[];t.forEach(l=>{i.set(l.localPk,l),l.online&&(o.push(l.localPk),s.push(l.ip))}),this.storageService.includeVisibleLocalNodes(o,s);const a=[];return this.storageService.getSavedLocalNodes().forEach(l=>{if(!i.has(l.publicKey)&&!l.hidden){const c=new Z1;c.localPk=l.publicKey;const M=this.storageService.getLabelInfo(l.publicKey);c.label=M&&M.label?M.label:this.storageService.getDefaultLabel(c),c.online=!1,c.dmsgServerPk="",c.roundTripPing="",a.push(c)}i.has(l.publicKey)&&!i.get(l.publicKey).online&&l.hidden&&i.delete(l.publicKey)}),t=[],i.forEach(l=>t.push(l)),t=t.concat(a),t}))}nsToMs(t){let e=new(Pg())(t).dividedBy(1e6);return e=e.isLessThan(10)?e.decimalPlaces(2):e.decimalPlaces(0),e.toString(10)}getNode(t){return this.apiService.get(`visors/${t}/summary`).pipe(Ce(e=>{const i=new Z1;i.localPk=e.overview.local_pk,i.version=e.overview.build_info.version,i.secondsOnline=Math.floor(Number.parseFloat(e.uptime)),i.minHops=e.min_hops,i.buildTag=e.build_tag,i.skybianBuildVersion=e.skybian_build_version,i.isSymmeticNat=e.overview.is_symmetic_nat,i.publicIp=e.overview.public_ip,i.autoconnectTransports=e.public_autoconnect,i.rewardsAddress=e.reward_address,i.ip=e.overview.local_ip&&e.overview.local_ip.trim()?e.overview.local_ip:null;const o=this.storageService.getLabelInfo(i.localPk);i.label=o&&o.label?o.label:this.storageService.getDefaultLabel(i),i.health={servicesHealth:e.health.services_health},i.transports=[],e.overview.transports&&e.overview.transports.forEach(a=>{i.transports.push({id:a.id,localPk:a.local_pk,remotePk:a.remote_pk,type:a.type,recv:a.log.recv,sent:a.log.sent})}),i.persistentTransports=[],e.persistent_transports&&e.persistent_transports.forEach(a=>{i.persistentTransports.push({pk:a.pk,type:a.type})}),i.routes=[],e.routes&&e.routes.forEach(a=>{i.routes.push({key:a.key,rule:a.rule}),a.rule_summary&&(i.routes[i.routes.length-1].ruleSummary={keepAlive:a.rule_summary.keep_alive,ruleType:a.rule_summary.rule_type,keyRouteId:a.rule_summary.key_route_id},a.rule_summary.app_fields&&a.rule_summary.app_fields.route_descriptor&&(i.routes[i.routes.length-1].appFields={routeDescriptor:{dstPk:a.rule_summary.app_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.app_fields.route_descriptor.dst_port,srcPk:a.rule_summary.app_fields.route_descriptor.src_pk,srcPort:a.rule_summary.app_fields.route_descriptor.src_port}}),a.rule_summary.forward_fields&&(i.routes[i.routes.length-1].forwardFields={nextRid:a.rule_summary.forward_fields.next_rid,nextTid:a.rule_summary.forward_fields.next_tid},a.rule_summary.forward_fields.route_descriptor&&(i.routes[i.routes.length-1].forwardFields.routeDescriptor={dstPk:a.rule_summary.forward_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.forward_fields.route_descriptor.dst_port,srcPk:a.rule_summary.forward_fields.route_descriptor.src_pk,srcPort:a.rule_summary.forward_fields.route_descriptor.src_port})),a.rule_summary.intermediary_forward_fields&&(i.routes[i.routes.length-1].intermediaryForwardFields={nextRid:a.rule_summary.intermediary_forward_fields.next_rid,nextTid:a.rule_summary.intermediary_forward_fields.next_tid}))}),i.apps=[],e.overview.apps&&e.overview.apps.forEach(a=>{i.apps.push({name:a.name,status:a.status,port:a.port,autostart:a.auto_start,detailedStatus:a.detailed_status,args:a.args})});let s=!1;return e.dmsg_stats&&(i.dmsgServerPk=e.dmsg_stats.server_public_key,i.roundTripPing=this.nsToMs(e.dmsg_stats.round_trip),s=!0),s||(i.dmsgServerPk="-",i.roundTripPing="-1"),i}))}setRewardsAddress(t,e){return this.apiService.put(`visors/${t}/reward`,{reward_address:e})}getRewardsAddress(t){return this.apiService.get(`visors/${t}/reward`)}deleteRewardsAddress(t){return this.apiService.delete(`visors/${t}/reward`)}reboot(t){return this.apiService.post(`visors/${t}/restart`)}checkIfUpdating(t){return this.apiService.get(`visors/${t}/update/ws/running`)}checkUpdate(t){let e="stable";return e=localStorage.getItem(ha.Channel)||e,this.apiService.get(`visors/${t}/update/available/${e}`)}update(t){const e={channel:"stable"};if(localStorage.getItem(ha.UseCustomSettings)){const o=localStorage.getItem(ha.Channel);o&&(e.channel=o);const s=localStorage.getItem(ha.Version);s&&(e.version=s);const a=localStorage.getItem(ha.ArchiveURL);a&&(e.archive_url=a);const l=localStorage.getItem(ha.ChecksumsURL);l&&(e.checksums_url=l)}return this.apiService.ws(`visors/${t}/update/ws`,e)}}Mo.\u0275fac=function(t){return new(t||Mo)(we(yo),we(ti))},Mo.\u0275prov=Ye({token:Mo,factory:Mo.\u0275fac,providedIn:"root"});const D$=["firstInput"];class fa{constructor(t,e,i,o,s){this.dialogRef=t,this.data=e,this.formBuilder=i,this.storageService=o,this.snackbarService=s}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.smallModalWidth,t.open(fa,i)}ngOnInit(){this.form=this.formBuilder.group({label:[this.data.label]})}ngAfterViewInit(){setTimeout(()=>this.firstInput.nativeElement.focus())}save(){const t=this.form.get("label").value.trim();t!==this.data.label?(this.storageService.saveLabel(this.data.id,t,this.data.identifiedElementType),t?this.snackbarService.showDone("edit-label.done"):this.snackbarService.showWarning("edit-label.label-removed-warning"),this.dialogRef.close(!0)):this.dialogRef.close()}}fa.\u0275fac=function(t){return new(t||fa)(F(Vn),F(Si),F(xr),F(ti),F(cn))},fa.\u0275cmp=qe({type:fa,selectors:[["app-edit-label"]],viewQuery:function(t,e){if(1&t&&ft(D$,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","label","maxlength","66","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return e.save()}),I(11),R(12,"translate"),C()()),2&t&&(w("headline",B(1,5,"labeled-element.edit-label"))("dialog",e.dialogRef),d(2),w("formGroup",e.form),d(4),oe(B(7,7,"edit-label.label")),d(5),oe(B(12,9,"common.save")))},dependencies:[Yi,Fi,Ri,Ni,wr,ni,Di,tr,Cr,ii,Rn,Ct]});const T$=["cancelButton"],L$=["confirmButton"];function E$(n,t){if(1&n&&(D(0,"div"),I(1),R(2,"translate"),C()),2&n){const e=t.$implicit;d(1),me(" - ",B(2,1,e)," ")}}function I$(n,t){if(1&n&&(D(0,"div",8),j(1,E$,3,3,"div",9),C()),2&n){const e=z();d(1),w("ngForOf",e.state!==e.confirmationStates.Done?e.data.list:e.doneList)}}function P$(n,t){if(1&n&&(D(0,"div",1),I(1),R(2,"translate"),C()),2&n){const e=z();d(1),me(" ",B(2,1,e.data.lowerText)," ")}}function O$(n,t){if(1&n){const e=tt();D(0,"app-button",10,11),ye("action",function(){return Pe(e),Oe(z().closeModal())}),I(2),R(3,"translate"),C()}if(2&n){const e=z();d(2),me(" ",B(3,1,e.data.cancelButtonText)," ")}}var ll=(()=>(function(n){n.Asking="Asking",n.Processing="Processing",n.Done="Done"}(ll||(ll={})),ll))();class Kf{constructor(t,e){this.dialogRef=t,this.data=e,this.disableDismiss=!1,this.state=ll.Asking,this.confirmationStates=ll,this.operationAccepted=new ht,this.disableDismiss=!!e.disableDismiss,this.dialogRef.disableClose=this.disableDismiss}ngAfterViewInit(){this.data.cancelButtonText?setTimeout(()=>this.cancelButton.focus()):setTimeout(()=>this.confirmButton.focus())}ngOnDestroy(){this.operationAccepted.complete()}closeModal(){this.dialogRef.close()}sendOperationAcceptedEvent(){this.operationAccepted.emit()}showAsking(t){t&&(this.data=t),this.state=ll.Asking,this.confirmButton.reset(),this.disableDismiss=!1,this.dialogRef.disableClose=this.disableDismiss,this.cancelButton&&this.cancelButton.showEnabled()}showProcessing(){this.state=ll.Processing,this.disableDismiss=!0,this.confirmButton.showLoading(),this.cancelButton&&this.cancelButton.showDisabled()}showDone(t,e,i=null){this.doneTitle=t||this.data.headerText,this.doneText=e,this.doneList=i,this.confirmButton.reset(),setTimeout(()=>this.confirmButton.focus()),this.state=ll.Done,this.dialogRef.disableClose=!1,this.disableDismiss=!1}}Kf.\u0275fac=function(t){return new(t||Kf)(F(Vn),F(Si))},Kf.\u0275cmp=qe({type:Kf,selectors:[["app-confirmation"]],viewQuery:function(t,e){if(1&t&&(ft(T$,5),ft(L$,5)),2&t){let i;nt(i=it())&&(e.cancelButton=i.first),nt(i=it())&&(e.confirmButton=i.first)}},outputs:{operationAccepted:"operationAccepted"},decls:13,vars:14,consts:[[3,"headline","dialog","disableDismiss"],[1,"text-container"],["class","list-container",4,"ngIf"],["class","text-container",4,"ngIf"],[1,"buttons"],["color","accent",3,"action",4,"ngIf"],["color","primary",3,"action"],["confirmButton",""],[1,"list-container"],[4,"ngFor","ngForOf"],["color","accent",3,"action"],["cancelButton",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),I(3),R(4,"translate"),C(),j(5,I$,2,1,"div",2),j(6,P$,3,3,"div",3),D(7,"div",4),j(8,O$,4,3,"app-button",5),D(9,"app-button",6,7),ye("action",function(){return e.state===e.confirmationStates.Asking?e.sendOperationAcceptedEvent():e.closeModal()}),I(11),R(12,"translate"),C()()()),2&t&&(w("headline",B(1,8,e.state!==e.confirmationStates.Done?e.data.headerText:e.doneTitle))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),d(3),me(" ",B(4,10,e.state!==e.confirmationStates.Done?e.data.text:e.doneText)," "),d(2),w("ngIf",e.data.list&&e.state!==e.confirmationStates.Done||e.doneList&&e.state===e.confirmationStates.Done),d(1),w("ngIf",e.data.lowerText&&e.state!==e.confirmationStates.Done),d(2),w("ngIf",e.data.cancelButtonText&&e.state!==e.confirmationStates.Done),d(3),me(" ",B(12,12,e.state!==e.confirmationStates.Done?e.data.confirmButtonText:"confirmation.close")," "))},dependencies:[Ci,Ot,ii,Rn,Ct],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]});class Wt{static createConfirmationDialog(t,e){const i={text:e,headerText:"confirmation.header-text",confirmButtonText:"confirmation.confirm-button",cancelButtonText:"confirmation.cancel-button",disableDismiss:!1},o=new An;return o.data=i,o.autoFocus=!1,o.width=Ht.smallModalWidth,t.open(Kf,o)}static checkIfTagIsUpdatable(t){return!(null==t||t.toUpperCase()==="Windows".toUpperCase()||t.toUpperCase()==="Win".toUpperCase()||t.toUpperCase()==="Mac".toUpperCase()||t.toUpperCase()==="Macos".toUpperCase()||t.toUpperCase()==="Mac OS".toUpperCase()||t.toUpperCase()==="Darwin".toUpperCase())}static checkIfTagCanOpenterminal(t){return!(null==t||t.toUpperCase()==="Windows".toUpperCase()||t.toUpperCase()==="Win".toUpperCase())}static checkIfIpValidOrEmpty(t){if(!t)return!0;const e=t.split(".");if(4!==e.length)return!1;for(const i of e){const o=Number.parseInt(i,10);if(isNaN(o)||o+""!==i||o<0||o>255)return!1}return!0}}function A$(n,t){if(1&n&&(D(0,"mat-icon",6),I(1),C()),2&n){const e=z().$implicit;w("inline",!0),d(1),oe(e.icon)}}function F$(n,t){if(1&n){const e=tt();D(0,"div",2)(1,"button",3),ye("click",function(){const s=Pe(e).index;return Oe(z().closePopup(s+1))}),D(2,"div",4),j(3,A$,2,2,"mat-icon",5),D(4,"span"),I(5),R(6,"translate"),C()()()()}if(2&n){const e=t.$implicit;d(3),w("ngIf",e.icon),d(2),oe(B(6,2,e.label))}}class $i{constructor(t,e){this.data=t,this.dialogRef=e}static openDialog(t,e,i){const o=new An;return o.data={options:e,title:i},o.autoFocus=!1,o.width=Ht.smallModalWidth,t.open($i,o)}closePopup(t){this.dialogRef.close(t)}}$i.\u0275fac=function(t){return new(t||$i)(F(Si),F(Vn))},$i.\u0275cmp=qe({type:$i,selectors:[["app-select-option"]],decls:3,vars:6,consts:[[3,"headline","dialog","includeVerticalMargins"],["class","options-list-button-container",4,"ngFor","ngForOf"],[1,"options-list-button-container"],["mat-button","",1,"grey-button-background",3,"click"],[1,"internal-container"],["class","icon",3,"inline",4,"ngIf"],[1,"icon",3,"inline"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),j(2,F$,7,4,"div",1),C()),2&t&&(w("headline",B(1,4,e.data.title))("dialog",e.dialogRef)("includeVerticalMargins",!1),d(2),w("ngForOf",e.data.options))},dependencies:[Ci,Ot,Wr,Cn,Rn,Ct],styles:[".icon[_ngcontent-%COMP%]{font-size:14px;width:14px;line-height:1}.grey-button-background[_ngcontent-%COMP%]{justify-content:left!important;min-height:45px}"]});var Zn=(()=>(function(n){n.TextInput="TextInput",n.Select="Select"}(Zn||(Zn={})),Zn))();class Os{constructor(t){this.dom=t}copy(t){let e=null,i=!1;try{e=this.dom.createElement("textarea"),e.style.height="0px",e.style.left="-100px",e.style.opacity="0",e.style.position="fixed",e.style.top="-100px",e.style.width="0px",this.dom.body.appendChild(e),e.value=t,e.select(),this.dom.execCommand("copy"),i=!0}finally{e&&e.parentNode&&e.parentNode.removeChild(e)}return i}}function Y$(n,t){if(1&n&&($e(0),D(1,"span",2),I(2),C(),Ge()),2&n){const e=z();d(2),oe(e.shortText)}}function B$(n,t){if(1&n&&($e(0),D(1,"span"),I(2),C(),Ge()),2&n){const e=z();d(2),oe(e.text)}}Os.\u0275fac=function(t){return new(t||Os)(we(St))},Os.\u0275prov=Ye({token:Os,factory:Os.\u0275fac});const H$=function(){return{"tooltip-word-break":!0}};class fu{constructor(){this.short=!1,this.showTooltip=!0,this.shortTextLength=5}get shortText(){if(this.text.length>2*this.shortTextLength){const t=this.text.length;return`${this.text.slice(0,this.shortTextLength)}...${this.text.slice(t-this.shortTextLength,t)}`}return this.text}}function V$(n,t){if(1&n&&(D(0,"span"),I(1),R(2,"translate"),C()),2&n){const e=z();d(1),me(" ",B(2,1,e.labelComponents.prefix)," ")}}function j$(n,t){if(1&n&&(D(0,"span"),I(1),C()),2&n){const e=z();d(1),me(" ",e.labelComponents.prefixSeparator," ")}}function z$(n,t){if(1&n&&(D(0,"span"),I(1),C()),2&n){const e=z();d(1),me(" ",e.labelComponents.label," ")}}function U$(n,t){if(1&n&&(D(0,"span"),I(1),R(2,"translate"),C()),2&n){const e=z();d(1),me(" ",B(2,1,e.labelComponents.translatableLabel)," ")}}fu.\u0275fac=function(t){return new(t||fu)},fu.\u0275cmp=qe({type:fu,selectors:[["app-truncated-text"]],inputs:{short:"short",showTooltip:"showTooltip",text:"text",shortTextLength:"shortTextLength"},decls:3,vars:5,consts:[[1,"wrapper",3,"matTooltip","matTooltipClass"],[4,"ngIf"],[1,"nowrap"]],template:function(t,e){1&t&&(D(0,"div",0),j(1,Y$,3,1,"ng-container",1),j(2,B$,3,1,"ng-container",1),C()),2&t&&(w("matTooltip",e.short&&e.showTooltip?e.text:"")("matTooltipClass",Un(4,H$)),d(1),w("ngIf",e.short),d(1),w("ngIf",!e.short))},dependencies:[Ot,gi],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.nowrap[_ngcontent-%COMP%]{white-space:nowrap}.wrapper[_ngcontent-%COMP%]{display:inline}']});const W$=function(n){return{text:n}},$$=function(){return{"tooltip-word-break":!0}};class G${constructor(){this.prefix="",this.prefixSeparator="",this.label="",this.translatableLabel=""}}class Or{constructor(t,e,i,o,s){this.dialog=t,this.storageService=e,this.clipboardService=i,this.snackbarService=o,this.router=s,this.short=!1,this.shortTextLength=5,this.elementType=yr.Node,this.labelEdited=new ht}set id(t){this.idInternal=t,this.labelComponents=Or.getLabelComponents(this.storageService,this.id)}get id(){return this.idInternal?this.idInternal:""}static getLabelComponents(t,e){let i;i=!!t.getSavedVisibleLocalNodes().has(e);const o=new G$;return o.labelInfo=t.getLabelInfo(e),o.labelInfo&&o.labelInfo.label?(i&&(o.prefix="labeled-element.local-element",o.prefixSeparator=" - "),o.label=o.labelInfo.label):t.getSavedVisibleLocalNodes().has(e)?o.prefix="labeled-element.unnamed-local-visor":o.translatableLabel="labeled-element.unnamed-element",o}static getCompleteLabel(t,e,i){const o=Or.getLabelComponents(t,i);return(o.prefix?e.instant(o.prefix):"")+o.prefixSeparator+o.label+(o.translatableLabel?e.instant(o.translatableLabel):"")}ngOnDestroy(){this.labelEdited.complete()}processClick(){const t=[{icon:"filter_none",label:"labeled-element.copy"},{icon:"edit",label:"labeled-element.edit-label"}];this.labelComponents.labelInfo&&t.push({icon:"close",label:"labeled-element.remove-label"}),t.push({icon:"settings",label:"labeled-element.go-to-settings"}),$i.openDialog(this.dialog,t,"common.options").afterClosed().subscribe(e=>{if(1===e)this.clipboardService.copy(this.id)&&this.snackbarService.showDone("copy.copied");else if(e>2)if(3===e&&this.labelComponents.labelInfo){const i=Wt.createConfirmationDialog(this.dialog,"labeled-element.remove-label-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.storageService.saveLabel(this.id,null,this.elementType),this.snackbarService.showDone("edit-label.label-removed-warning"),this.labelEdited.emit()})}else this.router.navigate(["/settings"]);else if(2===e){let i=this.labelComponents.labelInfo;i||(i={id:this.id,label:"",identifiedElementType:this.elementType}),fa.openDialog(this.dialog,i).afterClosed().subscribe(o=>{o&&this.labelEdited.emit()})}})}}Or.\u0275fac=function(t){return new(t||Or)(F(Fn),F(ti),F(Os),F(cn),F(Xt))},Or.\u0275cmp=qe({type:Or,selectors:[["app-labeled-element-text"]],inputs:{id:"id",short:"short",shortTextLength:"shortTextLength",elementType:"elementType"},outputs:{labelEdited:"labelEdited"},decls:12,vars:17,consts:[[1,"wrapper","highlight-internal-icon",3,"matTooltip","matTooltipClass","click"],[1,"label"],[4,"ngIf"],[3,"short","showTooltip","shortTextLength","text"],[3,"inline"]],template:function(t,e){1&t&&(D(0,"div",0),ye("click",function(o){return o.stopPropagation(),o.preventDefault(),e.processClick()}),R(1,"translate"),D(2,"span",1),j(3,V$,3,3,"span",2),j(4,j$,2,1,"span",2),j(5,z$,2,1,"span",2),j(6,U$,3,3,"span",2),C(),xe(7,"br")(8,"app-truncated-text",3),I(9," \xa0"),D(10,"mat-icon",4),I(11,"settings"),C()()),2&t&&(w("matTooltip",Pt(1,11,e.short?"labeled-element.tooltip-with-text":"labeled-element.tooltip",Ve(14,W$,e.id)))("matTooltipClass",Un(16,$$)),d(3),w("ngIf",e.labelComponents&&e.labelComponents.prefix),d(1),w("ngIf",e.labelComponents&&e.labelComponents.prefixSeparator),d(1),w("ngIf",e.labelComponents&&e.labelComponents.label),d(1),w("ngIf",e.labelComponents&&e.labelComponents.translatableLabel),d(2),w("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.id),d(2),w("inline",!0))},dependencies:[Ot,Cn,gi,fu,Ct],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.8rem;-webkit-user-select:none;user-select:none}.label[_ngcontent-%COMP%]{opacity:.7;font-size:.8rem}']});class Nn{constructor(t,e,i,o){this.properties=t,this.label=e,this.sortingMode=i,this.labelProperties=o}get id(){return this.properties.join("")}}var Jt=(()=>(function(n){n.Text="Text",n.Number="Number",n.NumberReversed="NumberReversed",n.Boolean="Boolean"}(Jt||(Jt={})),Jt))();class pu{constructor(t,e,i,o,s,a){this.dialog=t,this.translateService=e,this.storageService=i,this.sortReverse=!1,this.sortByLabel=!1,this.tieBreakerColumnIndex=null,this.columnStorageKeyPrefix="col_",this.orderStorageKeyPrefix="order_",this.labelStorageKeyPrefix="label_",this.dataUpdatedSubject=new X,this.sortableColumns=o,this.id=a,this.defaultColumnIndex=s,this.sortBy=o[s];const l=this.storageService.getDataForHv(this.columnStorageKeyPrefix+a);if(l){const c=o.find(M=>M.id===l);c&&(this.sortBy=c)}this.sortReverse="true"===this.storageService.getDataForHv(this.orderStorageKeyPrefix+a),this.sortByLabel="true"===this.storageService.getDataForHv(this.labelStorageKeyPrefix+a)}get sortingArrow(){return this.sortReverse?"keyboard_arrow_up":"keyboard_arrow_down"}get currentSortingColumn(){return this.sortBy}get sortingInReverseOrder(){return this.sortReverse}get dataSorted(){return this.dataUpdatedSubject.asObservable()}get currentlySortingByLabel(){return this.sortByLabel}dispose(){this.dataUpdatedSubject.complete()}setTieBreakerColumnIndex(t){this.tieBreakerColumnIndex=t}setData(t){this.data=t,this.sortData()}changeSortingOrder(t){if(this.sortBy===t||t.labelProperties)if(t.labelProperties){const e=[{label:this.translateService.instant("tables.sort-by-value")},{label:this.translateService.instant("tables.sort-by-value")+" "+this.translateService.instant("tables.inverted-order")},{label:this.translateService.instant("tables.sort-by-label")},{label:this.translateService.instant("tables.sort-by-label")+" "+this.translateService.instant("tables.inverted-order")}];$i.openDialog(this.dialog,e,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(t,i>2,i%2==0)})}else this.sortReverse=!this.sortReverse,this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.sortData();else this.changeSortingParams(t,!1,!1)}changeSortingParams(t,e,i){this.sortBy=t,this.sortByLabel=e,this.sortReverse=i,this.storageService.setDataForHv(this.columnStorageKeyPrefix+this.id,t.id),this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.storageService.setDataForHv(this.labelStorageKeyPrefix+this.id,String(this.sortByLabel)),this.sortData()}openSortingOrderModal(){const t=[],e=[];this.sortableColumns.forEach(i=>{const o=this.translateService.instant(i.label);t.push({label:o}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!1}),t.push({label:o+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!1}),i.labelProperties&&(t.push({label:o+" "+this.translateService.instant("tables.label")}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!0}),t.push({label:o+" "+this.translateService.instant("tables.label")+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!0}))}),$i.openDialog(this.dialog,t,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(e[i-1].sortBy,e[i-1].sortByLabel,e[i-1].sortReverse)})}sortData(){this.data&&(this.data.sort((t,e)=>{let i=this.getSortResponse(this.sortBy,t,e,!0);return 0===i&&null!==this.tieBreakerColumnIndex&&this.sortableColumns[this.tieBreakerColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.tieBreakerColumnIndex],t,e,!1)),0===i&&this.sortableColumns[this.defaultColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.defaultColumnIndex],t,e,!1)),i}),this.dataUpdatedSubject.next())}getSortResponse(t,e,i,o){let a=e,l=i;(this.sortByLabel&&o&&t.labelProperties?t.labelProperties:t.properties).forEach(P=>{a=a[P],l=l[P]});const c=this.sortByLabel&&o?Jt.Text:t.sortingMode;let M=0;return c===Jt.Text?M=this.sortReverse?l.localeCompare(a):a.localeCompare(l):c===Jt.NumberReversed?M=this.sortReverse?a-l:l-a:c===Jt.Number?M=this.sortReverse?l-a:a-l:c===Jt.Boolean&&(a&&!l?M=-1:!a&&l&&(M=1),M*=this.sortReverse?-1:1),M}}class q${constructor(t=!1,e,i=!0,o){this._multiple=t,this._emitChanges=i,this.compareWith=o,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new X,e&&e.length&&(t?e.forEach(s=>this._markSelected(s)):this._markSelected(e[0]),this._selectedToEmit.length=0)}get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...t){this._verifyValueAssignment(t);const e=this.selected,i=new Set(t);t.forEach(s=>this._markSelected(s)),e.filter(s=>!i.has(s)).forEach(s=>this._unmarkSelected(s));const o=this._hasQueuedChanges();return this._emitChangeEvent(),o}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();const e=this._hasQueuedChanges();return t&&this._emitChangeEvent(),e}isSelected(t){if(this.compareWith){for(const e of this._selection)if(this.compareWith(e,t))return!0;return!1}return this._selection.has(t)}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}}const K$=["trigger"],Z$=["panel"];function X$(n,t){if(1&n&&(D(0,"span",10),I(1),C()),2&n){const e=z();d(1),oe(e.placeholder)}}function Q$(n,t){if(1&n&&(D(0,"span",14),I(1),C()),2&n){const e=z(2);d(1),oe(e.triggerValue)}}function J$(n,t){1&n&&vn(0,0,["*ngSwitchCase","true"])}function eG(n,t){1&n&&(D(0,"span",11),j(1,Q$,2,1,"span",12),j(2,J$,1,0,"ng-content",13),C()),2&n&&(w("ngSwitch",!!z().customTrigger),d(2),w("ngSwitchCase",!0))}function tG(n,t){if(1&n){const e=tt();fs(),kl(),D(0,"div",15,16),ye("@transformPanel.done",function(o){return Pe(e),Oe(z()._panelDoneAnimatingStream.next(o.toState))})("keydown",function(o){return Pe(e),Oe(z()._handleKeydown(o))}),vn(2,1),C()}if(2&n){const e=z();(function fC(n,t,e){Jo(co,ys,gd(ze(),n,t,e),!0)})("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),w("ngClass",e.panelClass)("@transformPanel","showing"),Ut("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const nG=[[["mat-select-trigger"]],"*"],iG=["mat-select-trigger","*"],rG={transformPanelWrap:ra("transformPanelWrap",[Lr("* => void",jy("@transformPanel",[Vy()],{optional:!0}))]),transformPanel:ra("transformPanel",[mo("void",Kn({opacity:0,transform:"scale(1, 0.8)"})),Lr("void => showing",Ur("120ms cubic-bezier(0, 0, 0.2, 1)",Kn({opacity:1,transform:"scale(1, 1)"}))),Lr("* => void",Ur("100ms linear",Kn({opacity:0})))])};let yI=0;const MI=new Be("mat-select-scroll-strategy"),sG=new Be("MAT_SELECT_CONFIG"),aG={provide:MI,deps:[to],useFactory:function oG(n){return()=>n.scrollStrategies.reposition()}},wI=new Be("MatSelectTrigger");class lG{constructor(t,e){this.source=t,this.value=e}}const cG=Pf(mL(tu(_L(class{constructor(n,t,e,i,o){this._elementRef=n,this._defaultErrorStateMatcher=t,this._parentForm=e,this._parentFormGroup=i,this.ngControl=o,this.stateChanges=new X}}))));let dG=(()=>{class n extends cG{constructor(e,i,o,s,a,l,c,M,P,Y,q,te,fe,ke){super(a,s,c,M,Y),this._viewportRuler=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=l,this._parentFormField=P,this._liveAnnouncer=fe,this._defaultOptions=ke,this._panelOpen=!1,this._compareWith=(Ie,Re)=>Ie===Re,this._uid="mat-select-"+yI++,this._triggerAriaLabelledBy=null,this._destroy=new X,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+yI++,this._panelDoneAnimatingStream=new X,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.optionSelectionChanges=tf(()=>{const Ie=this.options;return Ie?Ie.changes.pipe(bo(Ie),gr(()=>vt(...Ie.map(Re=>Re.onSelectionChange)))):this._ngZone.onStable.pipe(ei(1),gr(()=>this.optionSelectionChanges))}),this.openedChange=new ht,this._openedStream=this.openedChange.pipe(ki(Ie=>Ie),Ce(()=>{})),this._closedStream=this.openedChange.pipe(ki(Ie=>!Ie),Ce(()=>{})),this.selectionChange=new ht,this.valueChange=new ht,this.ngControl&&(this.ngControl.valueAccessor=this),null!=ke?.typeaheadDebounceInterval&&(this._typeaheadDebounceInterval=ke.typeaheadDebounceInterval),this._scrollStrategyFactory=te,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(q)||0,this.id=this.id}get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(Vt.required)??!1}set required(e){this._required=hn(e),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=hn(e)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(e){this._disableOptionCentering=hn(e)}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(e){this._typeaheadDebounceInterval=vo(e)}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}ngOnInit(){this._selectionModel=new q$(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(a1(),xn(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe(xn(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(bo(null),xn(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const o=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?o.setAttribute("aria-labelledby",e):o.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,o=40===i||38===i||37===i||39===i,s=13===i||32===i,a=this._keyManager;if(!a.isTyping()&&s&&!Ds(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const l=this.selected;a.onKeydown(e);const c=this.selected;c&&l!==c&&this._liveAnnouncer.announce(c.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,s=40===o||38===o,a=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(a||13!==o&&32!==o||!i.activeItem||Ds(e))if(!a&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const l=this.options.some(c=>!c.disabled&&!c.selected);this.options.forEach(c=>{c.disabled||(l?c.select():c.deselect())})}else{const l=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==l&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(ei(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this._selectionModel.selected.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(o=>{if(this._selectionModel.isSelected(o))return!1;try{return null!=o.value&&this._compareWith(o.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_initKeyManager(){this._keyManager=new J7(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=vt(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(xn(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),vt(...this.options.map(i=>i._stateChanges)).pipe(xn(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(o!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),o!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,o)=>this.sortComparator?this.sortComparator(i,o,e):e.indexOf(i)-e.indexOf(o)),this.stateChanges.next()}}_propagateChanges(e){let i=null;i=this.multiple?this.selected.map(o=>o.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){this._keyManager&&(this.empty?this._keyManager.setFirstItemActive():this._keyManager.setActiveItem(this._selectionModel.selected[0]))}_canOpen(){return!this._panelOpen&&!this.disabled&&this.options?.length>0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}}return n.\u0275fac=function(e){return new(e||n)(F(Ql),F(di),F(pt),F(y1),F(bt),F(Pr,8),F(Wf,8),F(ni,8),F(q1,8),F(Ps,10),Ra("tabindex"),F(MI),F(m1),F(sG,8))},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&(ft(K$,5),ft(Z$,5),ft(G2,5)),2&e){let o;nt(o=it())&&(i.trigger=o.first),nt(o=it())&&(i.panel=o.first),nt(o=it())&&(i._overlayDir=o.first)}},inputs:{userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[dt,Gi]}),n})(),uG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["mat-select-trigger"]],features:[Kt([{provide:wI,useExisting:n}])]}),n})(),Zf=(()=>{class n extends dG{constructor(){super(...arguments),this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}]}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe(xn(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(),this._changeDetectorRef.detectChanges())})}ngAfterViewInit(){this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin())}open(){this._overlayWidth=this._getOverlayWidth(),super.open(),this.stateChanges.next()}close(){super.close(),this.stateChanges.next()}_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,s=function W9(n,t,e){if(e.length){let i=t.toArray(),o=e.toArray(),s=0;for(let a=0;ae+i?Math.max(0,n-i+t):e}(a.offsetTop,a.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new lG(this,e)}_getOverlayWidth(){return(this._preferredOverlayOrigin instanceof r1?this._preferredOverlayOrigin.elementRef:this._preferredOverlayOrigin||this._elementRef).nativeElement.getBoundingClientRect().width}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275cmp=qe({type:n,selectors:[["mat-select"]],contentQueries:function(e,i,o){if(1&e&&(Qi(o,wI,5),Qi(o,nu,5),Qi(o,CL,5)),2&e){let s;nt(s=it())&&(i.customTrigger=s.first),nt(s=it())&&(i.options=s),nt(s=it())&&(i.optionGroups=s)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(e,i){1&e&&ye("keydown",function(s){return i._handleKeydown(s)})("focus",function(){return i._onFocus()})("blur",function(){return i._onBlur()}),2&e&&(Ut("id",i.id)("tabindex",i.tabIndex)("aria-controls",i.panelOpen?i.id+"-panel":null)("aria-expanded",i.panelOpen)("aria-label",i.ariaLabel||null)("aria-required",i.required.toString())("aria-disabled",i.disabled.toString())("aria-invalid",i.errorState)("aria-activedescendant",i._getAriaActiveDescendant()),Gt("mat-mdc-select-disabled",i.disabled)("mat-mdc-select-invalid",i.errorState)("mat-mdc-select-required",i.required)("mat-mdc-select-empty",i.empty)("mat-mdc-select-multiple",i.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matSelect"],features:[Kt([{provide:G1,useExisting:n},{provide:xL,useExisting:n}]),dt],ngContentSelectors:iG,decls:11,vars:11,consts:[["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],[1,"mat-mdc-select-value",3,"ngSwitch"],["class","mat-mdc-select-placeholder mat-mdc-select-min-line",4,"ngSwitchCase"],["class","mat-mdc-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","backdropClick","attach","detach"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text",3,"ngSwitch"],["class","mat-mdc-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(e,i){if(1&e&&(_r(nG),D(0,"div",0,1),ye("click",function(){return i.toggle()}),D(3,"div",2),j(4,X$,2,1,"span",3),j(5,eG,3,2,"span",4),C(),D(6,"div",5)(7,"div",6),fs(),D(8,"svg",7),xe(9,"path",8),C()()()(),j(10,tG,3,9,"ng-template",9),ye("backdropClick",function(){return i.close()})("attach",function(){return i._onAttached()})("detach",function(){return i.close()})),2&e){const o=li(1);Ut("aria-owns",i.panelOpen?i.id+"-panel":null),d(3),w("ngSwitch",i.empty),Ut("id",i._valueId),d(1),w("ngSwitchCase",!0),d(1),w("ngSwitchCase",!1),d(5),w("cdkConnectedOverlayPanelClass",i._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",i._scrollStrategy)("cdkConnectedOverlayOrigin",i._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",i.panelOpen)("cdkConnectedOverlayPositions",i._positions)("cdkConnectedOverlayWidth",i._overlayWidth)}},dependencies:[On,Uh,Ty,IS,G2,r1],styles:['.mdc-menu-surface{display:none;position:absolute;box-sizing:border-box;max-width:calc(100vw - 32px);max-width:var(--mdc-menu-max-width, calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:var(--mdc-menu-max-height, calc(100vh - 32px));margin:0;padding:0;transform:scale(1);transform-origin:top left;opacity:0;overflow:auto;will-change:transform,opacity;z-index:8;border-radius:4px;border-radius:var(--mdc-shape-medium, 4px);transform-origin-left:top left;transform-origin-right:top right}.mdc-menu-surface:focus{outline:none}.mdc-menu-surface--animating-open{display:inline-block;transform:scale(0.8);opacity:0}.mdc-menu-surface--open{display:inline-block;transform:scale(1);opacity:1}.mdc-menu-surface--animating-closed{display:inline-block;opacity:0}[dir=rtl] .mdc-menu-surface,.mdc-menu-surface[dir=rtl]{transform-origin-left:top right;transform-origin-right:top left}.mdc-menu-surface--anchor{position:relative;overflow:visible}.mdc-menu-surface--fixed{position:fixed}.mdc-menu-surface--fullwidth{width:100%}.mat-mdc-select{display:inline-block;width:100%;outline:none}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}.mdc-menu-surface.mat-mdc-select-panel{width:100%;max-height:275px;position:static;outline:0;margin:0;padding:8px 0;list-style-type:none}.mdc-menu-surface.mat-mdc-select-panel:focus{outline:none}.cdk-high-contrast-active .mdc-menu-surface.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) .mdc-menu-surface.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above .mdc-menu-surface.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}'],encapsulation:2,data:{animation:[rG.transformPanel]},changeDetection:0}),n})(),hG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({providers:[aG],imports:[na,Qd,kL,Hn,kf,Ig,kL,Hn]}),n})();function fG(n,t){if(1&n&&xe(0,"input",9),2&n){const e=z().$implicit;w("formControlName",e.keyNameInFiltersObject)("maxlength",e.maxlength)}}function pG(n,t){if(1&n&&(D(0,"div",14),xe(1,"div",15),C()),2&n){const e=z().$implicit,i=z(2).$implicit;ci("background-image: url('"+i.printableLabelGeneralSettings.defaultImage+"'); width: "+i.printableLabelGeneralSettings.imageWidth+"px; height: "+i.printableLabelGeneralSettings.imageHeight+"px;"),d(1),ci("background-image: url('"+e.image+"');")}}function mG(n,t){if(1&n&&(D(0,"mat-option",12),j(1,pG,2,4,"div",13),I(2),R(3,"translate"),C()),2&n){const e=t.$implicit,i=z(2).$implicit;w("value",e.value),d(1),w("ngIf",i.printableLabelGeneralSettings&&e.image),d(1),me(" ",B(3,3,e.label)," ")}}function _G(n,t){if(1&n&&(D(0,"mat-select",10),j(1,mG,4,5,"mat-option",11),C()),2&n){const e=z().$implicit;w("formControlName",e.keyNameInFiltersObject),d(1),w("ngForOf",e.printableLabelsForValues)}}function gG(n,t){if(1&n&&($e(0),D(1,"mat-form-field")(2,"div",5)(3,"label",6),I(4),R(5,"translate"),C(),j(6,fG,1,2,"input",7),j(7,_G,2,2,"mat-select",8),C()(),Ge()),2&n){const e=t.$implicit,i=z();d(4),oe(B(5,3,e.filterName)),d(2),w("ngIf",e.type===i.filterFieldTypes.TextInput),d(1),w("ngIf",e.type===i.filterFieldTypes.Select)}}class lc{constructor(t,e,i){this.data=t,this.dialogRef=e,this.formBuilder=i,this.filterFieldTypes=Zn}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.smallModalWidth,t.open(lc,i)}ngOnInit(){const t={};this.data.filterPropertiesList.forEach(e=>{t[e.keyNameInFiltersObject]=[this.data.currentFilters[e.keyNameInFiltersObject]]}),this.form=this.formBuilder.group(t)}apply(){const t={};this.data.filterPropertiesList.forEach(e=>{t[e.keyNameInFiltersObject]=this.form.get(e.keyNameInFiltersObject).value.trim()}),this.dialogRef.close(t)}}lc.\u0275fac=function(t){return new(t||lc)(F(Si),F(Vn),F(xr))},lc.\u0275cmp=qe({type:lc,selectors:[["app-filters-selection"]],decls:8,vars:9,consts:[[3,"headline","dialog"],[3,"formGroup"],[4,"ngFor","ngForOf"],["color","primary",1,"float-right",3,"action"],["button",""],[1,"field-container"],["for","remoteKey",1,"field-label"],["matInput","",3,"formControlName","maxlength",4,"ngIf"],[3,"formControlName",4,"ngIf"],["matInput","",3,"formControlName","maxlength"],[3,"formControlName"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["class","image-container",3,"style",4,"ngIf"],[1,"image-container"],[1,"image"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1),j(3,gG,8,5,"ng-container",2),C(),D(4,"app-button",3,4),ye("action",function(){return e.apply()}),I(6),R(7,"translate"),C()()),2&t&&(w("headline",B(1,5,"filters.filter-action"))("dialog",e.dialogRef),d(2),w("formGroup",e.form),d(1),w("ngForOf",e.data.filterPropertiesList),d(3),me(" ",B(7,7,"common.ok")," "))},dependencies:[Ci,Ot,Yi,Fi,Ri,Ni,wr,ni,Di,tr,Cr,Zf,nu,ii,Rn,Ct],styles:[".image-container[_ngcontent-%COMP%]{display:inline-block;background-size:contain;margin-right:5px}.image-container[_ngcontent-%COMP%] .image[_ngcontent-%COMP%]{background-size:contain;width:100%;height:100%}"]});class mu{constructor(t,e,i,o,s){this.dialog=t,this.route=e,this.router=i,this.currentFiltersTextsInternal=[],this.dataUpdatedSubject=new X,this.filterPropertiesList=o,this.currentFilters={},this.filterPropertiesList.forEach(a=>{a.keyNameInFiltersObject=s+"_"+a.keyNameInElementsArray,this.currentFilters[a.keyNameInFiltersObject]=""}),this.navigationsSubscription=this.route.queryParamMap.subscribe(a=>{Object.keys(this.currentFilters).forEach(l=>{a.has(l)&&(this.currentFilters[l]=a.get(l))}),this.currentUrlQueryParamsInternal={},a.keys.forEach(l=>{this.currentUrlQueryParamsInternal[l]=a.get(l)}),this.filter()})}get currentFiltersTexts(){return this.currentFiltersTextsInternal}get currentUrlQueryParams(){return this.currentUrlQueryParamsInternal}get dataFiltered(){return this.dataUpdatedSubject.asObservable()}dispose(){this.dataUpdatedSubject.complete(),this.navigationsSubscription.unsubscribe()}setData(t){this.data=t,this.filter()}removeFilters(){const t=Wt.createConfirmationDialog(this.dialog,"filters.remove-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.router.navigate([],{queryParams:{}})})}changeFilters(){lc.openDialog(this.dialog,{filterPropertiesList:this.filterPropertiesList,currentFilters:this.currentFilters}).afterClosed().subscribe(e=>{e&&this.router.navigate([],{queryParams:e})})}filter(){if(this.data){let t,e=!1;Object.keys(this.currentFilters).forEach(i=>{this.currentFilters[i]&&(e=!0)}),e?(t=function R$(n,t,e){if(n){const i=[];return Object.keys(t).forEach(s=>{if(t[s])for(const a of e)if(a.keyNameInFiltersObject===s){i.push(a);break}}),n.filter(s=>{let a=!0;return i.forEach(l=>{const c=String(s[l.keyNameInElementsArray]).toLowerCase().includes(t[l.keyNameInFiltersObject].toLowerCase()),M=l.secondaryKeyNameInElementsArray&&String(s[l.secondaryKeyNameInElementsArray]).toLowerCase().includes(t[l.keyNameInFiltersObject].toLowerCase());!c&&!M&&(a=!1)}),a})}return null}(this.data,this.currentFilters,this.filterPropertiesList),this.updateCurrentFilters()):(t=this.data,this.updateCurrentFilters()),this.dataUpdatedSubject.next(t)}}updateCurrentFilters(){this.currentFiltersTextsInternal=function N$(n,t){const e=[];return t.forEach(i=>{if(n[i.keyNameInFiltersObject]){let o,s;i.printableLabelsForValues&&i.printableLabelsForValues.forEach(a=>{a.value===n[i.keyNameInFiltersObject]&&(s=a.label)}),s||(o=n[i.keyNameInFiltersObject]),e.push({filterName:i.filterName,translatableValue:s,value:o})}}),e}(this.currentFilters,this.filterPropertiesList)}}function bG(n,t){if(1&n){const e=tt();D(0,"div",5)(1,"div",6)(2,"div",7),I(3),C(),D(4,"div",8),I(5),C()(),D(6,"div",9)(7,"app-button",10),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).openTerminal(s.key))}),I(8),R(9,"translate"),C()()()}if(2&n){const e=t.$implicit;d(3),oe(e.label),d(2),oe(e.version),d(3),me(" ",B(9,3,"update-all.update-button")," ")}}function vG(n,t){if(1&n&&($e(0),D(1,"div",2),I(2),R(3,"translate"),C(),D(4,"div",3),j(5,bG,10,5,"div",4),C(),Ge()),2&n){const e=z();d(2),me(" ",B(3,2,"update-all.updatable-list-text")," "),d(3),w("ngForOf",e.updatableNodes)}}function yG(n,t){if(1&n&&(D(0,"div",8),I(1),C()),2&n){const e=z().$implicit;d(1),oe(e.tag)}}function MG(n,t){if(1&n&&(D(0,"div",5)(1,"div",6)(2,"div",7),I(3),C(),D(4,"div",8),I(5),C(),j(6,yG,2,1,"div",11),C()()),2&n){const e=t.$implicit;d(3),oe(e.label),d(2),oe(e.version),d(1),w("ngIf",e.tag)}}function wG(n,t){if(1&n&&($e(0),D(1,"div",2),I(2),R(3,"translate"),C(),D(4,"div",3),j(5,MG,7,3,"div",4),C(),Ge()),2&n){const e=z();d(2),me(" ",B(3,2,"update-all.non-updatable-list-text")," "),d(3),w("ngForOf",e.nonUpdatableNodes)}}class cc{constructor(t,e){this.dialogRef=t,this.updatableNodes=e[0],this.nonUpdatableNodes=e[1]}static openDialog(t,e,i){const o=new An;return o.data=[e,i],o.autoFocus=!1,o.width=Ht.smallModalWidth,t.open(cc,o)}openTerminal(t){const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+t+"?commands=update","_blank","noopener noreferrer")}}cc.\u0275fac=function(t){return new(t||cc)(F(Vn),F(Si))},cc.\u0275cmp=qe({type:cc,selectors:[["app-update-all"]],decls:4,vars:6,consts:[[3,"headline","dialog"],[4,"ngIf"],[1,"text-container"],[1,"list-container"],["class","list-element",4,"ngFor","ngForOf"],[1,"list-element"],[1,"left-part"],[1,"name"],[1,"version"],[1,"right-part"],["color","primary",3,"click"],["class","version",4,"ngIf"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),j(2,vG,6,4,"ng-container",1),j(3,wG,6,4,"ng-container",1),C()),2&t&&(w("headline",B(1,4,"update-all.title"))("dialog",e.dialogRef),d(2),w("ngIf",e.updatableNodes&&e.updatableNodes.length>0),d(1),w("ngIf",e.nonUpdatableNodes&&e.nonUpdatableNodes.length>0))},dependencies:[Ci,Ot,ii,Rn,Ct],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex;margin-bottom:10px}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1;align-self:center;margin-right:10px;min-width:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 575px){.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:.7rem}}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:.7rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-part[_ngcontent-%COMP%]{flex-basis:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{color:#777}"]});const xG=["input"],CG=["label"],kG=["*"],SG=new Be("mat-checkbox-default-options",{providedIn:"root",factory:xI});function xI(){return{color:"accent",clickAction:"check-indeterminate"}}const DG={provide:os,useExisting:sn(()=>pa),multi:!0};class TG{}let LG=0;const CI=xI(),EG=mL(If(Pf(tu(class{constructor(n){this._elementRef=n}}))));let IG=(()=>{class n extends EG{constructor(e,i,o,s,a,l,c){super(i),this._changeDetectorRef=o,this._ngZone=s,this._animationMode=l,this._options=c,this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new ht,this.indeterminateChange=new ht,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||CI,this.color=this.defaultColor=this._options.color||CI.color,this.tabIndex=parseInt(a)||0,this.id=this._uniqueId=`${e}${++LG}`}get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(e){this._required=hn(e)}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){const i=hn(e);i!=this.checked&&(this._checked=i,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){const i=hn(e);i!==this.disabled&&(this._disabled=i,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=hn(e),i&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_getAriaChecked(){return this.checked?"true":this.indeterminate?"mixed":"false"}_transitionCheckState(e){let i=this._currentCheckState,o=this._getAnimationTargetElement();if(i!==e&&o&&(this._currentAnimationClass&&o.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){o.classList.add(this._currentAnimationClass);const s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{o.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case 0:if(1===i)return this._animationClasses.uncheckedToChecked;if(3==i)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case 2:return 1===i?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case 1:return 2===i?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case 3:return 1===i?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}}return n.\u0275fac=function(e){Ya()},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&(ft(xG,5),ft(CG,5),ft(Ts,5)),2&e){let o;nt(o=it())&&(i._inputElement=o.first),nt(o=it())&&(i._labelElement=o.first),nt(o=it())&&(i.ripple=o.first)}},inputs:{ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},features:[dt]}),n})(),pa=(()=>{class n extends IG{constructor(e,i,o,s,a,l){super("mat-mdc-checkbox-",e,i,o,s,a,l),this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"}}focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new TG;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_onInputClick(){super._handleInputClick()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(di),F(pt),Ra("tabindex"),F(Vi,8),F(SG,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-checkbox"]],hostAttrs:[1,"mat-mdc-checkbox"],hostVars:12,hostBindings:function(e,i){2&e&&(Qs("id",i.id),Ut("tabindex",null)("aria-label",null)("aria-labelledby",null),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mdc-checkbox--disabled",i.disabled)("mat-mdc-checkbox-disabled",i.disabled)("mat-mdc-checkbox-checked",i.checked))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matCheckbox"],features:[Kt([DG]),dt],ngContentSelectors:kG,decls:15,vars:19,consts:[[1,"mdc-form-field",3,"click"],[1,"mdc-checkbox"],["checkbox",""],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"checked","disabled","id","required","tabIndex","blur","click","change"],["input",""],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[3,"for"],["label",""]],template:function(e,i){if(1&e&&(_r(),D(0,"div",0),ye("click",function(s){return i._preventBubblingFromLabel(s)}),D(1,"div",1,2)(3,"div",3),ye("click",function(){return i._onInputClick()}),C(),D(4,"input",4,5),ye("blur",function(){return i._onBlur()})("click",function(){return i._onInputClick()})("change",function(s){return i._onInteractionEvent(s)}),C(),xe(6,"div",6),D(7,"div",7),fs(),D(8,"svg",8),xe(9,"path",9),C(),kl(),xe(10,"div",10),C(),xe(11,"div",11),C(),D(12,"label",12,13),vn(14),C()()),2&e){const o=li(2);Gt("mdc-form-field--align-end","before"==i.labelPosition),d(4),Gt("mdc-checkbox--selected",i.checked),w("checked",i.checked)("disabled",i.disabled)("id",i.inputId)("required",i.required)("tabIndex",i.tabIndex),Ut("aria-checked",i._getAriaChecked())("aria-label",i.ariaLabel||null)("aria-labelledby",i.ariaLabelledby)("aria-describedby",i.ariaDescribedby)("name",i.name)("value",i.value),d(7),w("matRippleTrigger",o)("matRippleDisabled",i.disableRipple||i.disabled)("matRippleCentered",!0),d(1),w("for",i.inputId)}},dependencies:[Ts],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size, 48px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);width:var(--mdc-checkbox-state-layer-size, 48px);height:var(--mdc-checkbox-state-layer-size, 48px)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, rgba(0, 0, 0, 0.38));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color, rgba(0, 0, 0, 0.38))}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px)}.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:not([disabled])~.mdc-checkbox__ripple{opacity:.04;transform:scale(1);transition:opacity 80ms 0 cubic-bezier(0, 0, 0.2, 1),transform 80ms 0 cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:not([disabled]):focus~.mdc-checkbox__ripple{opacity:.16}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__native-control:focus:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, black)}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0}),n})(),kI=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({}),n})(),AG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[Hn,Ff,kI,Hn,kI]}),n})();const FG=["button"];function RG(n,t){1&n&&(D(0,"span",22),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"bulk-rewards.checking"),""))}function NG(n,t){if(1&n&&(D(0,"span",23)(1,"span"),I(2),R(3,"translate"),C(),D(4,"span"),I(5),R(6,"translate"),C()()),2&n){const e=z(2).$implicit;d(2),me(" ",B(3,2,"bulk-rewards.error-checking"),""),d(3),me(" ",B(6,4,e.operationError),"")}}function YG(n,t){if(1&n&&(D(0,"span"),I(1),C()),2&n){const e=z(2).$implicit;d(1),me(" ",e.currentAddress,"")}}function BG(n,t){1&n&&(D(0,"span"),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"bulk-rewards.not-registered"),""))}function HG(n,t){if(1&n&&($e(0,15),D(1,"mat-checkbox",16)(2,"div")(3,"div",17),I(4),C(),D(5,"div",18)(6,"span",19),I(7),R(8,"translate"),C(),j(9,RG,3,3,"span",20),j(10,NG,7,6,"span",21),j(11,YG,2,1,"span",12),j(12,BG,3,3,"span",12),C()()(),Ge()),2&n){const e=z(),o=e.$implicit;w("formGroupName",e.index),d(4),me(" ",o.label," "),d(3),oe(B(8,7,"bulk-rewards.current-address")),d(2),w("ngIf",null===o.currentAddress&&!o.operationError),d(1),w("ngIf",o.operationError),d(1),w("ngIf",o.currentAddress&&!o.operationError),d(1),w("ngIf",""===o.currentAddress&&!o.operationError)}}function VG(n,t){1&n&&(D(0,"span",22),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"bulk-rewards.processing"),""))}function jG(n,t){if(1&n&&(D(0,"span",23)(1,"span"),I(2),R(3,"translate"),C(),D(4,"span"),I(5),R(6,"translate"),C()()),2&n){const e=z(2).$implicit;d(2),me(" ",B(3,2,"bulk-rewards.error-processing"),""),d(3),me(" ",B(6,4,e.operationError),"")}}function zG(n,t){1&n&&(D(0,"span",28),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"bulk-rewards.done"),""))}function UG(n,t){if(1&n&&($e(0),D(1,"div",24),I(2,"-"),C(),D(3,"div",25),I(4),D(5,"div",26),j(6,VG,3,3,"span",20),j(7,jG,7,6,"span",21),j(8,zG,3,3,"span",27),C()(),Ge()),2&n){const e=z().$implicit;d(4),me(" ",e.label," "),d(2),w("ngIf",e.processing&&!e.operationError),d(1),w("ngIf",e.operationError),d(1),w("ngIf",!e.processing&&!e.operationError)}}const WG=function(n){return{"element-margin":n}};function $G(n,t){if(1&n&&(D(0,"div",13),j(1,HG,13,9,"ng-container",14),j(2,UG,9,4,"ng-container",12),C()),2&n){const e=z();w("ngClass",Ve(3,WG,e.processingStarted)),d(1),w("ngIf",!e.processingStarted),d(1),w("ngIf",e.processingStarted)}}function GG(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"bulk-rewards.perform-changes")))}function qG(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"common.close")))}const KG=function(n){return{"element-disabled":n}};class dc{constructor(t,e,i,o,s){this.dialogRef=t,this.data=e,this.nodeService=i,this.formBuilder=o,this.dialog=s,this.processingStarted=!1,this.processingFinished=!1,this.currentlyProcessed=0,this.form=o.group({address:["",Vt.compose([Vt.minLength(20),Vt.maxLength(40)])],nodes:o.array([])}),e.nodes.forEach(a=>{const l=this.formBuilder.group({selected:[!0]});this.form.get("nodes").push(l)}),this.startChecking()}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.smallModalWidth,t.open(dc,i)}formValid(){if(!this.processingStarted){if(!this.form.valid)return!1;let t=0;return this.form.get("nodes").controls.forEach((e,i)=>{e.get("selected")?.value&&(t+=1)}),t>0}return!0}get disableDismiss(){return this.processingStarted&&!this.processingFinished}startChecking(){this.nodesToEdit=[],this.data.nodes.forEach(t=>{this.nodesToEdit.push({key:t.key,label:t.label,currentAddress:null,operationError:"",processing:!1})}),this.operationSubscriptions=[],this.nodesToEdit.forEach((t,e)=>{this.operationSubscriptions.push(this.nodeService.getRewardsAddress(t.key).subscribe(i=>{this.nodesToEdit[e].currentAddress=i},i=>{this.nodesToEdit[e].operationError=i.translatableErrorMsg?i.translatableErrorMsg:i.originalServerErrorMsg}))})}checkBeforeProcessing(){if(this.form.valid)if(this.form.get("address").value)this.startProcessing();else{const e=Wt.createConfirmationDialog(this.dialog,"bulk-rewards.empty-warning");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.startProcessing()})}}startProcessing(){this.processingStarted=!0,this.button.showLoading(),this.closeoperationSubscriptions();const t=[];this.form.get("nodes").controls.forEach((i,o)=>{i.get("selected")?.value&&(this.nodesToEdit[o].operationError="",this.nodesToEdit[o].processing=!0,t.push(this.nodesToEdit[o]))}),this.nodesToEdit=t;const e=this.form.get("address").value;this.form.get("address").disable(),this.currentlyProcessed=0,this.operationSubscriptions=[],this.nodesToEdit.forEach((i,o)=>{let s=this.nodeService.setRewardsAddress(i.key,e);e||(s=this.nodeService.deleteRewardsAddress(i.key)),this.operationSubscriptions.push(We(0).pipe(Ai(100),Ne(()=>s)).subscribe(a=>{this.nodesToEdit[o].processing=!1,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())},a=>{this.nodesToEdit[o].processing=!1,this.nodesToEdit[o].operationError=a.translatableErrorMsg?a.translatableErrorMsg:a.originalServerErrorMsg,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())}))})}ngOnDestroy(){this.closeoperationSubscriptions()}closeoperationSubscriptions(){this.operationSubscriptions&&this.operationSubscriptions.forEach(t=>t.unsubscribe())}closeModal(){this.dialogRef.close()}}dc.\u0275fac=function(t){return new(t||dc)(F(Vn),F(Si),F(Mo),F(xr),F(Fn))},dc.\u0275cmp=qe({type:dc,selectors:[["app-bulk-reward-address-changer"]],viewQuery:function(t,e){if(1&t&&ft(FG,5),2&t){let i;nt(i=it())&&(e.button=i.first)}},decls:30,vars:28,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"text-container"],["href","https://github.com/skycoin/skywire/blob/master/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","40","matInput","",3,"ngClass"],["formArrayName","nodes",1,"list-container"],["class","list-element",3,"ngClass",4,"ngFor","ngForOf"],[1,"buttons"],["type","mat-raised-button","color","primary",3,"disabled","action"],["button",""],[4,"ngIf"],[1,"list-element",3,"ngClass"],[3,"formGroupName",4,"ngIf"],[3,"formGroupName"],["color","primary","formControlName","selected"],[1,"contents"],[1,"address","contents"],[1,"address-label"],["class","blinking",4,"ngIf"],["class","red-text",4,"ngIf"],[1,"blinking"],[1,"red-text"],[1,"left-area"],[1,"right-area","contents"],[1,"address"],["class","green-text",4,"ngIf"],[1,"green-text"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"div",2)(4,"span"),I(5),R(6,"translate"),C(),D(7,"a",3),I(8),R(9,"translate"),C()(),D(10,"mat-form-field")(11,"div",4)(12,"label",5),I(13),R(14,"translate"),C(),xe(15,"input",6),C(),D(16,"mat-error")(17,"span"),I(18),R(19,"translate"),C()()(),D(20,"div",2),I(21),R(22,"translate"),C(),D(23,"div",7),j(24,$G,3,5,"div",8),C()(),D(25,"div",9)(26,"app-button",10,11),ye("action",function(){return e.processingStarted?e.closeModal():e.checkBeforeProcessing()}),j(28,GG,3,3,"ng-container",12),j(29,qG,3,3,"ng-container",12),C()()()),2&t&&(w("headline",B(1,14,"bulk-rewards.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),d(2),w("formGroup",e.form),d(3),me("",B(6,16,"bulk-rewards.info")," "),d(3),me(" ",B(9,18,"bulk-rewards.more-info-link")," "),d(5),oe(B(14,20,"rewards-address-config.address")),d(2),w("ngClass",Ve(26,KG,e.processingStarted)),d(3),oe(B(19,22,"rewards-address-config.address-error")),d(3),me(" ",B(22,24,"bulk-rewards.select-visors")," "),d(3),w("ngForOf",e.nodesToEdit),d(2),w("disabled",!e.formValid()),d(2),w("ngIf",!e.processingStarted),d(1),w("ngIf",e.processingStarted))},dependencies:[On,Ci,Ot,Yi,Fi,Ri,Ni,wr,ni,Di,$f,Gf,tr,sl,Cr,pa,ii,Rn,Ct],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}mat-form-field[_ngcontent-%COMP%]{margin-top:10px}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.list-container[_ngcontent-%COMP%] .element-margin[_ngcontent-%COMP%]{margin:15px 0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-area[_ngcontent-%COMP%]{width:12px;flex-grow:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-area[_ngcontent-%COMP%]{flex-grow:1}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .contents[_ngcontent-%COMP%]{white-space:normal;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%]{font-size:.7rem;color:#777}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%] .address-label[_ngcontent-%COMP%]{opacity:.7}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]});class ZG{}class _u{constructor(t,e){this.storageService=t,this.nodeService=e,this.dataSubject=new Er(null),this.lastEmitedData=new ZG,this.firstCallToGetDataMade=!1,this.storageService.getRefreshTimeObservable().subscribe(i=>{this.dataRefreshDelay=1e3*i,this.forceRefresh()})}startRequestingData(){return this.firstCallToGetDataMade||this.getData(0),this.dataSubject.asObservable()}getData(t){this.firstCallToGetDataMade=!0,this.updateSubscription&&this.updateSubscription.unsubscribe(),this.updateSubscription=We(1).pipe(Ai(t),ui(()=>{this.lastEmitedData.updating=!0,this.dataSubject.next(this.lastEmitedData)}),Ai(120),Ne(()=>this.nodeService.getNodes())).subscribe(e=>{this.lastEmitedData={data:e,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(this.dataRefreshDelay)},e=>{e=Qt(e),this.lastEmitedData={data:this.lastEmitedData.data,error:e,momentOfLastCorrectUpdate:this.lastEmitedData.momentOfLastCorrectUpdate,updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(Ht.connectionRetryDelay)})}forceRefresh(){this.getData(0)}}_u.\u0275fac=function(t){return new(t||_u)(we(ti),we(Mo))},_u.\u0275prov=Ye({token:_u,factory:_u.\u0275fac,providedIn:"root"});const XG=["mat-menu-item",""];function QG(n,t){1&n&&(fs(),D(0,"svg",3),xe(1,"polygon",4),C())}const JG=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],eq=["mat-icon, [matMenuItemIcon]","*"];function tq(n,t){if(1&n){const e=tt();D(0,"div",0),ye("keydown",function(o){return Pe(e),Oe(z()._handleKeydown(o))})("click",function(){return Pe(e),Oe(z().closed.emit("click"))})("@transformMenu.start",function(o){return Pe(e),Oe(z()._onAnimationStart(o))})("@transformMenu.done",function(o){return Pe(e),Oe(z()._onAnimationDone(o))}),D(1,"div",1),vn(2),C()()}if(2&n){const e=z();w("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),Ut("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const nq=["*"],X1=new Be("MAT_MENU_PANEL"),iq=Pf(tu(class{}));let ma=(()=>{class n extends iq{constructor(e,i,o,s,a){super(),this._elementRef=e,this._document=i,this._focusMonitor=o,this._parentMenu=s,this._changeDetectorRef=a,this.role="menuitem",this._hovered=new X,this._focused=new X,this._highlighted=!1,this._triggersSubmenu=!1,s?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o enter",Ur("120ms cubic-bezier(0, 0, 0.2, 1)",Kn({opacity:1,transform:"scale(1)"}))),Lr("* => void",Ur("100ms 25ms linear",Kn({opacity:0})))]),fadeInItems:ra("fadeInItems",[mo("showing",Kn({opacity:1})),Lr("void => *",[Kn({opacity:0}),Ur("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let oq=0;const SI=new Be("mat-menu-default-options",{providedIn:"root",factory:function sq(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let Xf=(()=>{class n{constructor(e,i,o,s){this._elementRef=e,this._ngZone=i,this._defaultOptions=o,this._changeDetectorRef=s,this._xPosition=this._defaultOptions.xPosition,this._yPosition=this._defaultOptions.yPosition,this._directDescendantItems=new Hl,this._classList={},this._panelAnimationState="void",this._animationDone=new X,this.overlayPanelClass=this._defaultOptions.overlayPanelClass||"",this.backdropClass=this._defaultOptions.backdropClass,this._overlapTrigger=this._defaultOptions.overlapTrigger,this._hasBackdrop=this._defaultOptions.hasBackdrop,this.closed=new ht,this.close=this.closed,this.panelId="mat-menu-panel-"+oq++}get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(e){this._overlapTrigger=hn(e)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=hn(e)}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(o=>{this._classList[o]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(o=>{this._classList[o]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new nL(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(bo(this._directDescendantItems),gr(e=>vt(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const o=e.toArray(),s=Math.max(0,Math.min(o.length-1,i.activeItemIndex||0));o[s]&&!o[s].disabled?i.setActiveItem(s):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(bo(this._directDescendantItems),gr(i=>vt(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:Ds(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&o.setFocusOrigin("keyboard"),void o.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(ei(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),o=`${this._elevationPrefix}${i}`,s=Object.keys(this._classList).find(a=>a.startsWith(this._elevationPrefix));(!s||s===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[o]=!0,this._previousElevation=o)}setPositionClasses(e=this.xPosition,i=this.yPosition){const o=this._classList;o["mat-menu-before"]="before"===e,o["mat-menu-after"]="after"===e,o["mat-menu-above"]="above"===i,o["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(bo(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt),F(SI),F(di))},n.\u0275dir=Ke({type:n,contentQueries:function(e,i,o){if(1&e&&(Qi(o,rq,5),Qi(o,ma,5),Qi(o,ma,4)),2&e){let s;nt(s=it())&&(i.lazyContent=s.first),nt(s=it())&&(i._allItems=s),nt(s=it())&&(i.items=s)}},viewQuery:function(e,i){if(1&e&&ft(lr,5),2&e){let o;nt(o=it())&&(i.templateRef=o.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:["class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}}),n})(),gu=(()=>{class n extends Xf{constructor(e,i,o,s){super(e,i,o,s),this._elevationPrefix="mat-elevation-z",this._baseElevation=8}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt),F(SI),F(di))},n.\u0275cmp=qe({type:n,selectors:[["mat-menu"]],hostVars:3,hostBindings:function(e,i){2&e&&Ut("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[Kt([{provide:X1,useExisting:n}]),dt],ngContentSelectors:nq,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mdc-menu-surface","mdc-menu-surface--open","mat-mdc-elevation-specific",3,"id","ngClass","keydown","click"],[1,"mat-mdc-menu-content","mdc-list"]],template:function(e,i){1&e&&(_r(),j(0,tq,3,6,"ng-template"))},dependencies:[On],styles:['.mdc-menu-surface{display:none;position:absolute;box-sizing:border-box;max-width:var(--mdc-menu-max-width, calc(100vw - 32px));max-height:var(--mdc-menu-max-height, calc(100vh - 32px));margin:0;padding:0;transform:scale(1);transform-origin:top left;opacity:0;overflow:auto;will-change:transform,opacity;z-index:8;border-radius:var(--mdc-shape-medium, 4px);transform-origin-left:top left;transform-origin-right:top right}.mdc-menu-surface:focus{outline:none}.mdc-menu-surface--animating-open{display:inline-block;transform:scale(0.8);opacity:0}.mdc-menu-surface--open{display:inline-block;transform:scale(1);opacity:1}.mdc-menu-surface--animating-closed{display:inline-block;opacity:0}[dir=rtl] .mdc-menu-surface,.mdc-menu-surface[dir=rtl]{transform-origin-left:top right;transform-origin-right:top left}.mdc-menu-surface--anchor{position:relative;overflow:visible}.mdc-menu-surface--fixed{position:fixed}.mdc-menu-surface--fullwidth{width:100%}mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-panel.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item.mdc-list-item{align-items:center}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item .mdc-list-item__primary-text{white-space:normal}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[Og.transformMenu,Og.fadeInItems]},changeDetection:0}),n})();const DI=new Be("mat-menu-scroll-strategy"),lq={provide:DI,deps:[to],useFactory:function aq(n){return()=>n.scrollStrategies.reposition()}},TI=Ja({passive:!0});let cq=(()=>{class n{constructor(e,i,o,s,a,l,c,M,P){this._overlay=e,this._element=i,this._viewContainerRef=o,this._menuItemInstance=l,this._dir=c,this._focusMonitor=M,this._ngZone=P,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=T.EMPTY,this._hoverSubscription=T.EMPTY,this._menuCloseSubscription=T.EMPTY,this._handleTouchStart=Y=>{p1(Y)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new ht,this.onMenuOpen=this.menuOpened,this.menuClosed=new ht,this.onMenuClose=this.menuClosed,this._scrollStrategy=s,this._parentMaterialMenu=a instanceof Xf?a:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,TI)}get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,TI),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),o=i.getConfig(),s=o.positionStrategy;this._setPosition(e,s),o.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof Xf&&(e._startAnimation(),e._directDescendantItems.changes.pipe(xn(e.close)).subscribe(()=>{s.withLockedPosition(!1).reapplyLastPosition(),s.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof Xf?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(ki(o=>"void"===o.toState),ei(1),xn(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,o=e.parentMenu;for(;o;)i++,o=o.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e)}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new Lf({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{const s="start"===o.connectionPair.overlayX?"after":"before",a="top"===o.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(s,a)):e.setPositionClasses(s,a)})}_setPosition(e,i){let[o,s]="before"===e.xPosition?["end","start"]:["start","end"],[a,l]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[c,M]=[a,l],[P,Y]=[o,s],q=0;if(this.triggersSubmenu()){if(Y=o="before"===e.xPosition?"start":"end",s=P="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const te=this._parentMaterialMenu.items.first;this._parentInnerPadding=te?te._getHostElement().offsetTop:0}q="bottom"===a?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(c="top"===a?"bottom":"top",M="top"===l?"bottom":"top");i.withPositions([{originX:o,originY:c,overlayX:P,overlayY:a,offsetY:q},{originX:s,originY:c,overlayX:Y,overlayY:a,offsetY:q},{originX:o,originY:M,overlayX:P,overlayY:l,offsetY:-q},{originX:s,originY:M,overlayX:Y,overlayY:l,offsetY:-q}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return vt(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:We(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(ki(a=>a!==this._menuItemInstance),ki(()=>this._menuOpen)):We(),i)}_handleMousedown(e){f1(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(ki(e=>e===this._menuItemInstance&&!e.disabled),Ai(0,q0)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof Xf&&this.menu._isAnimating?this.menu._animationDone.pipe(ei(1),Ai(0,q0),xn(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new Jl(e.templateRef,this._viewContainerRef)),this._portal}}return n.\u0275fac=function(e){return new(e||n)(F(to),F(bt),F(Xi),F(DI),F(X1,8),F(ma,10),F(Pr,8),F(nl),F(pt))},n.\u0275dir=Ke({type:n,hostVars:3,hostBindings:function(e,i){1&e&&ye("click",function(s){return i._handleClick(s)})("mousedown",function(s){return i._handleMousedown(s)})("keydown",function(s){return i._handleKeydown(s)}),2&e&&Ut("aria-haspopup",i.menu?"menu":null)("aria-expanded",i.menuOpen)("aria-controls",i.menuOpen?i.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:["mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:["matMenuTriggerFor","menu"],menuData:["matMenuTriggerData","menuData"],restoreFocus:["matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}}),n})(),bu=(()=>{class n extends cq{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],exportAs:["matMenuTrigger"],features:[dt]}),n})(),dq=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({providers:[lq],imports:[na,Ff,Hn,Qd,kf,Hn]}),n})();const LI=function(){return["1"]};function uq(n,t){if(1&n&&(D(0,"a",10)(1,"mat-icon",11),I(2,"chevron_left"),C(),I(3),R(4,"translate"),C()),2&n){const e=z();w("routerLink",e.linkParts.concat(Un(6,LI)))("queryParams",e.queryParams),d(1),w("inline",!0),d(2),me(" ",B(4,4,"paginator.first")," ")}}function hq(n,t){if(1&n&&(D(0,"a",12)(1,"mat-icon",11),I(2,"chevron_left"),C(),D(3,"span",13),I(4),R(5,"translate"),C()()),2&n){const e=z();w("routerLink",e.linkParts.concat(Un(6,LI)))("queryParams",e.queryParams),d(1),w("inline",!0),d(3),oe(B(5,4,"paginator.first"))}}const cl=function(n){return[n]};function fq(n,t){if(1&n&&(D(0,"a",10)(1,"div")(2,"mat-icon",11),I(3,"chevron_left"),C()()()),2&n){const e=z();w("routerLink",e.linkParts.concat(Ve(3,cl,(e.currentPage-1).toString())))("queryParams",e.queryParams),d(2),w("inline",!0)}}function pq(n,t){if(1&n&&(D(0,"a",10),I(1),C()),2&n){const e=z();w("routerLink",e.linkParts.concat(Ve(3,cl,(e.currentPage-2).toString())))("queryParams",e.queryParams),d(1),oe(e.currentPage-2)}}function mq(n,t){if(1&n&&(D(0,"a",14),I(1),C()),2&n){const e=z();w("routerLink",e.linkParts.concat(Ve(3,cl,(e.currentPage-1).toString())))("queryParams",e.queryParams),d(1),oe(e.currentPage-1)}}function _q(n,t){if(1&n&&(D(0,"a",14),I(1),C()),2&n){const e=z();w("routerLink",e.linkParts.concat(Ve(3,cl,(e.currentPage+1).toString())))("queryParams",e.queryParams),d(1),oe(e.currentPage+1)}}function gq(n,t){if(1&n&&(D(0,"a",10),I(1),C()),2&n){const e=z();w("routerLink",e.linkParts.concat(Ve(3,cl,(e.currentPage+2).toString())))("queryParams",e.queryParams),d(1),oe(e.currentPage+2)}}function bq(n,t){if(1&n&&(D(0,"a",10)(1,"div")(2,"mat-icon",11),I(3,"chevron_right"),C()()()),2&n){const e=z();w("routerLink",e.linkParts.concat(Ve(3,cl,(e.currentPage+1).toString())))("queryParams",e.queryParams),d(2),w("inline",!0)}}function vq(n,t){if(1&n&&(D(0,"a",10),I(1),R(2,"translate"),D(3,"mat-icon",11),I(4,"chevron_right"),C()()),2&n){const e=z();w("routerLink",e.linkParts.concat(Ve(6,cl,e.numberOfPages.toString())))("queryParams",e.queryParams),d(1),me(" ",B(2,4,"paginator.last")," "),d(2),w("inline",!0)}}function yq(n,t){if(1&n&&(D(0,"a",12)(1,"mat-icon",11),I(2,"chevron_right"),C(),D(3,"span",13),I(4),R(5,"translate"),C()()),2&n){const e=z();w("routerLink",e.linkParts.concat(Ve(6,cl,e.numberOfPages.toString())))("queryParams",e.queryParams),d(1),w("inline",!0),d(3),oe(B(5,4,"paginator.last"))}}const EI=function(n){return{number:n}};function Mq(n,t){if(1&n&&(D(0,"div",15),I(1),R(2,"translate"),C()),2&n){const e=z();d(1),oe(Pt(2,1,"paginator.total",Ve(4,EI,e.numberOfPages)))}}function wq(n,t){if(1&n&&(D(0,"div",16),I(1),R(2,"translate"),C()),2&n){const e=z();d(1),oe(Pt(2,1,"paginator.total",Ve(4,EI,e.numberOfPages)))}}class As{constructor(t,e){this.dialog=t,this.router=e,this.linkParts=[""],this.queryParams={}}openSelectionDialog(){const t=[];for(let e=1;e<=this.numberOfPages;e++)t.push({label:e.toString()});$i.openDialog(this.dialog,t,"paginator.select-page-title").afterClosed().subscribe(e=>{e&&this.router.navigate(this.linkParts.concat([e.toString()]),{queryParams:this.queryParams})})}}function Qf(n){return t=>t.lift(new xq(n,t))}As.\u0275fac=function(t){return new(t||As)(F(Fn),F(Xt))},As.\u0275cmp=qe({type:As,selectors:[["app-paginator"]],inputs:{currentPage:"currentPage",numberOfPages:"numberOfPages",linkParts:"linkParts",queryParams:"queryParams"},decls:21,vars:13,consts:[[1,"main-container"],[1,"d-inline-block","small-rounded-elevated-box","mt-3"],[1,"d-flex"],[1,"responsive-height","d-md-none"],["class","d-none d-md-flex",3,"routerLink","queryParams",4,"ngIf"],["class","d-flex d-md-none flex-column",3,"routerLink","queryParams",4,"ngIf"],[3,"routerLink","queryParams",4,"ngIf"],[1,"selected",3,"click"],["class","d-none d-md-block total-pages",4,"ngIf"],["class","d-block d-md-none total-pages",4,"ngIf"],[1,"d-none","d-md-flex",3,"routerLink","queryParams"],[3,"inline"],[1,"d-flex","d-md-none","flex-column",3,"routerLink","queryParams"],[1,"label"],[3,"routerLink","queryParams"],[1,"d-none","d-md-block","total-pages"],[1,"d-block","d-md-none","total-pages"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3),I(4,"\xa0"),xe(5,"br"),I(6,"\xa0"),C(),j(7,uq,5,7,"a",4),j(8,hq,6,7,"a",5),j(9,fq,4,5,"a",4),j(10,pq,2,5,"a",4),j(11,mq,2,5,"a",6),D(12,"a",7),ye("click",function(){return e.openSelectionDialog()}),I(13),C(),j(14,_q,2,5,"a",6),j(15,gq,2,5,"a",4),j(16,bq,4,5,"a",4),j(17,vq,5,8,"a",4),j(18,yq,6,8,"a",5),C()(),j(19,Mq,3,6,"div",8),j(20,wq,3,6,"div",9),C()),2&t&&(d(7),w("ngIf",e.currentPage>3),d(1),w("ngIf",e.currentPage>2),d(1),w("ngIf",e.currentPage>1),d(1),w("ngIf",e.currentPage>2),d(1),w("ngIf",e.currentPage>1),d(2),oe(e.currentPage),d(1),w("ngIf",e.currentPage3),d(1),w("ngIf",e.numberOfPages>2))},dependencies:[Ot,Qa,Cn,Ct],styles:[".main-container[_ngcontent-%COMP%]{text-align:right}.main-container[_ngcontent-%COMP%] .responsive-height[_ngcontent-%COMP%]{padding:10px 0;width:0px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:10px;border-right:rgba(255,255,255,.15) solid 1px;border-left:rgba(255,255,255,.15) solid 1px;min-width:40px;text-align:center;color:#f8f9f980;text-decoration:none;display:flex;align-items:center;justify-content:center}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.2)}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.7rem}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{color:#f8f9f9;background:rgba(0,0,0,.36);padding:10px 20px;cursor:pointer}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.6)}.main-container[_ngcontent-%COMP%] .total-pages[_ngcontent-%COMP%]{font-size:.6rem;margin-top:-3px;margin-right:4px}"]});class xq{constructor(t,e){this.notifier=t,this.source=e}call(t,e){return e.subscribe(new Cq(t,this.notifier,this.source))}}class Cq extends Me{constructor(t,e,i){super(t),this.notifier=e,this.source=i}error(t){if(!this.isStopped){let e=this.errors,i=this.retries,o=this.retriesSubscription;if(i)this.errors=void 0,this.retriesSubscription=void 0;else{e=new X;try{const{notifier:s}=this;i=s(e)}catch(s){return super.error(s)}o=Ee(i,new be(this))}this._unsubscribeAndRecycle(),this.errors=e,this.retries=i,this.retriesSubscription=o,e.next(t)}}_unsubscribe(){const{errors:t,retriesSubscription:e}=this;t&&(t.unsubscribe(),this.errors=void 0),e&&(e.unsubscribe(),this.retriesSubscription=void 0),this.retries=void 0}notifyNext(){const{_unsubscribe:t}=this;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=t,this.source.subscribe(this)}}class wo{constructor(t){this.apiService=t}changeAppState(t,e,i){return this.apiService.put(`visors/${t}/apps/${encodeURIComponent(e)}`,{status:i?1:0})}changeAppAutostart(t,e,i){return this.changeAppSettings(t,e,{autostart:i})}changeAppSettings(t,e,i){return this.apiService.put(`visors/${t}/apps/${encodeURIComponent(e)}`,i)}getLogMessages(t,e,i){const s=vS(-1!==i?Date.now()-864e5*i:0,"yyyy-MM-ddTHH:mm:ssZZZZZ","en-US");return this.apiService.get(this.getLogMessagesUrl(t,e)+`?since=${s}`).pipe(Ce(a=>a.logs))}getLogMessagesUrl(t,e){return`visors/${t}/apps/${encodeURIComponent(e)}/logs`}}wo.\u0275fac=function(t){return new(t||wo)(we(yo))},wo.\u0275prov=Ye({token:wo,factory:wo.\u0275fac,providedIn:"root"});var Wn=(()=>(function(n){n.None="None",n.Favorite="Favorite",n.Blocked="Blocked"}(Wn||(Wn={})),Wn))(),ro=(()=>(function(n){n.BitsSpeedAndBytesVolume="BitsSpeedAndBytesVolume",n.OnlyBytes="OnlyBytes",n.OnlyBits="OnlyBits"}(ro||(ro={})),ro))();class Bo{constructor(t,e){this.router=t,this.storageService=e,this.maxHistoryElements=30,this.savedServersStorageKey="VpnServers",this.checkIpSettingStorageKey="VpnGetIp",this.dataUnitsSettingStorageKey="VpnDataUnits",this.serversMap=new Map,this.savedDataVersion=0,this.currentServerSubject=new Yo(1),this.historySubject=new Yo(1),this.favoritesSubject=new Yo(1),this.blockedSubject=new Yo(1)}initialize(){this.migrateDataToHvStorage(),this.serversMap=new Map;const t=this.storageService.getDataForHv(this.savedServersStorageKey);if(t){const e=JSON.parse(t);e.serverList.forEach(i=>{this.serversMap.set(i.pk,i)}),this.savedDataVersion=e.version,e.selectedServerPk&&this.updateCurrentServerPk(e.selectedServerPk)}this.launchListEvents()}migrateDataToHvStorage(){const t=localStorage.getItem(this.savedServersStorageKey);t&&(this.storageService.setDataForHv(this.savedServersStorageKey,t),localStorage.removeItem(this.savedServersStorageKey));const e=localStorage.getItem(this.checkIpSettingStorageKey);e&&(this.storageService.setDataForHv(this.checkIpSettingStorageKey,e),localStorage.removeItem(this.checkIpSettingStorageKey));const i=localStorage.getItem(this.dataUnitsSettingStorageKey);i&&(this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,i),localStorage.removeItem(this.dataUnitsSettingStorageKey))}get currentServer(){return this.serversMap.get(this.currentServerPk)}get currentServerObservable(){return this.currentServerSubject.asObservable()}get history(){return this.historySubject.asObservable()}get favorites(){return this.favoritesSubject.asObservable()}get blocked(){return this.blockedSubject.asObservable()}getSavedVersion(t,e){return e&&this.checkIfDataWasChanged(),this.serversMap.get(t)}getCheckIpSetting(){const t=this.storageService.getDataForHv(this.checkIpSettingStorageKey);return null==t||"false"!==t}setCheckIpSetting(t){this.storageService.setDataForHv(this.checkIpSettingStorageKey,t?"true":"false")}getDataUnitsSetting(){return this.storageService.getDataForHv(this.dataUnitsSettingStorageKey)??ro.BitsSpeedAndBytesVolume}setDataUnitsSetting(t){this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,t)}updateFromDiscovery(t){this.checkIfDataWasChanged(),t.forEach(e=>{if(this.serversMap.has(e.pk)){const i=this.serversMap.get(e.pk);i.countryCode=e.countryCode,i.name=e.name,i.location=e.location,i.note=e.note}}),this.saveData()}updateServer(t){this.serversMap.set(t.pk,t),this.cleanServers(),this.saveData()}processFromDiscovery(t){this.checkIfDataWasChanged();const e=this.serversMap.get(t.pk);return e?(e.countryCode=t.countryCode,e.name=t.name,e.location=t.location,e.note=t.note,this.saveData(),e):{countryCode:t.countryCode,name:t.name,customName:null,pk:t.pk,lastUsed:0,inHistory:!1,flag:Wn.None,location:t.location,personalNote:null,note:t.note,enteredManually:!1,usedWithPassword:!1}}processFromManual(t){this.checkIfDataWasChanged();const e=this.serversMap.get(t.pk);return e?(e.customName=t.name,e.personalNote=t.note,e.enteredManually=!0,this.saveData(),e):{countryCode:"zz",name:"",customName:t.name,pk:t.pk,lastUsed:0,inHistory:!1,flag:Wn.None,location:"",personalNote:t.note,note:"",enteredManually:!0,usedWithPassword:!1}}changeFlag(t,e){this.checkIfDataWasChanged();const i=this.serversMap.get(t.pk);i&&(t=i),t.flag!==e&&(t.flag=e,this.serversMap.has(t.pk)||this.serversMap.set(t.pk,t),this.cleanServers(),this.saveData())}removeFromHistory(t){this.checkIfDataWasChanged();const e=this.serversMap.get(t);!e||!e.inHistory||(e.inHistory=!1,this.cleanServers(),this.saveData())}modifyCurrentServer(t){this.checkIfDataWasChanged(),t.pk!==this.currentServerPk&&(this.serversMap.has(t.pk)||this.serversMap.set(t.pk,t),this.updateCurrentServerPk(t.pk),this.cleanServers(),this.saveData())}compareCurrentServer(t){if(this.checkIfDataWasChanged(),t){if(!this.currentServerPk||this.currentServerPk!==t){if(this.currentServerPk=t,!this.serversMap.get(t)){const i=this.processFromManual({pk:t});this.serversMap.set(i.pk,i),this.cleanServers()}this.saveData(),this.currentServerSubject.next(this.currentServer)}}else this.currentServerPk&&(this.currentServerPk=null,this.saveData(),this.currentServerSubject.next(this.currentServer))}updateHistory(){this.checkIfDataWasChanged(),this.currentServer.lastUsed=Date.now(),this.currentServer.inHistory=!0;let t=[];this.serversMap.forEach(i=>{i.inHistory&&t.push(i)}),t=t.sort((i,o)=>o.lastUsed-i.lastUsed);let e=0;t.forEach(i=>{e{!e.inHistory&&e.flag===Wn.None&&e.pk!==this.currentServerPk&&!e.customName&&!e.personalNote&&t.push(e.pk)}),t.forEach(e=>{this.serversMap.delete(e)})}saveData(){let t=0;const e=this.storageService.getDataForHv(this.savedServersStorageKey);if(e&&(t=JSON.parse(e).version),t!==this.savedDataVersion)return void this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"storage"}});this.savedDataVersion+=1;const i={version:this.savedDataVersion,serverList:Array.from(this.serversMap.values()),selectedServerPk:this.currentServerPk},o=JSON.stringify(i);this.storageService.setDataForHv(this.savedServersStorageKey,o),this.launchListEvents()}checkIfDataWasChanged(){let t=0;const e=this.storageService.getDataForHv(this.savedServersStorageKey);e&&(t=JSON.parse(e).version),t!==this.savedDataVersion&&this.initialize()}launchListEvents(){const t=[],e=[],i=[];this.serversMap.forEach(o=>{o.inHistory&&t.push(o),o.flag===Wn.Favorite&&e.push(o),o.flag===Wn.Blocked&&i.push(o)}),this.historySubject.next(t),this.favoritesSubject.next(e),this.blockedSubject.next(i)}updateCurrentServerPk(t){this.currentServerPk=t,this.currentServerSubject.next(this.currentServer)}}Bo.\u0275fac=function(t){return new(t||Bo)(we(Xt),we(ti))},Bo.\u0275prov=Ye({token:Bo,factory:Bo.\u0275fac,providedIn:"root"});var yn=(()=>(function(n){n.Stopped="stopped",n.Connecting="Connecting",n.Running="Running",n.ShuttingDown="Shutting down",n.Reconnecting="Connection failed, reconnecting"}(yn||(yn={})),yn))();class kq{constructor(){this.updateDate=Date.now()}}class Sq{}class Dq{constructor(){this.latency=0,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.connectionDuration=0,this.error=""}}var nr=(()=>(function(n){n[n.PerformingInitialCheck=1]="PerformingInitialCheck",n[n.Off=10]="Off",n[n.Starting=20]="Starting",n[n.Running=100]="Running",n[n.Disconnecting=200]="Disconnecting"}(nr||(nr={})),nr))(),xo=(()=>(function(n){n[n.Busy=1]="Busy",n[n.Ok=2]="Ok",n[n.MustStop=3]="MustStop",n[n.SamePkRunning=4]="SamePkRunning",n[n.SamePkStopped=5]="SamePkStopped"}(xo||(xo={})),xo))();class Ho{constructor(t,e,i,o,s,a,l){this.apiService=t,this.appsService=e,this.router=i,this.vpnSavedDataService=o,this.http=s,this.snackbarService=a,this.translateService=l,this.vpnClientAppName="vpn-client",this.standardWaitTime=2e3,this.stateSubject=new Er(null),this.errorSubject=new Er(!1),this.working=!0,this.requestedServer=null,this.requestedPassword=null,this.updatesStopped=!1,this.currentEventData=new kq,this.currentEventData.busy=!0,this.lastServiceState=nr.PerformingInitialCheck}initialize(t){t&&(this.nodeKey?t!==this.nodeKey?this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"pkChange"}}):this.updatesStopped&&(this.updatesStopped=!1,this.updateData()):(this.nodeKey=t,this.vpnSavedDataService.initialize(),this.updateData()))}get backendState(){return this.stateSubject.asObservable()}get errorsConnecting(){return this.errorSubject.asObservable()}updateData(){this.continuallyUpdateData(0)}start(){return!this.working&&this.lastServiceState<20&&(this.changeAppState(!0),!0)}stop(){return!this.working&&this.lastServiceState>=20&&this.lastServiceState<200&&(this.changeAppState(!1),!0)}getIpData(){return this.http.request("GET",window.location.protocol+"//ip.skycoin.com/").pipe(Qf(t=>Gl(t.pipe(Ai(this.standardWaitTime),ei(4)),Ir(""))),Ce(t=>{let e="";e=t&&t.ip_address?t.ip_address:this.translateService.instant("common.unknown");let i="";return i=t&&t.country_name?t.country_name:this.translateService.instant("common.unknown"),[e,i]}))}changeServerUsingHistory(t,e){return this.requestedServer=t,this.requestedPassword=e,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerUsingDiscovery(t,e){return this.requestedServer=this.vpnSavedDataService.processFromDiscovery(t),this.requestedPassword=e,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerManually(t,e){return this.requestedServer=this.vpnSavedDataService.processFromManual(t),this.requestedPassword=e,this.updateRequestedServerPasswordSetting(),this.changeServer()}updateRequestedServerPasswordSetting(){this.requestedServer.usedWithPassword=!!this.requestedPassword&&""!==this.requestedPassword;const t=this.vpnSavedDataService.getSavedVersion(this.requestedServer.pk,!0);t&&(t.usedWithPassword=this.requestedServer.usedWithPassword,this.vpnSavedDataService.updateServer(t))}changeServer(){return!this.working&&(this.stop()||this.processServerChange(),!0)}checkNewPk(t){return this.working?xo.Busy:this.lastServiceState!==nr.Off?t===this.vpnSavedDataService.currentServer.pk?xo.SamePkRunning:xo.MustStop:this.vpnSavedDataService.currentServer&&t===this.vpnSavedDataService.currentServer.pk?xo.SamePkStopped:xo.Ok}processServerChange(){this.dataSubscription&&this.dataSubscription.unsubscribe();const t={pk:this.requestedServer.pk};t.passcode=this.requestedPassword?this.requestedPassword:"",this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,t).subscribe(()=>{this.vpnSavedDataService.modifyCurrentServer(this.requestedServer),this.requestedServer=null,this.requestedPassword=null,this.working=!1,this.start()},e=>{e=Qt(e),this.snackbarService.showError("vpn.server-change.backend-error",null,!1,e.originalServerErrorMsg),this.working=!1,this.requestedServer=null,this.requestedPassword=null,this.sendUpdate(),this.updateData()})}changeAppState(t){if(this.working)return;this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate();const e={status:1};t?(this.lastServiceState=nr.Starting,this.connectionHistoryPk=null):(this.lastServiceState=nr.Disconnecting,e.status=0),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,e).pipe(Jr(i=>this.getVpnClientState().pipe(Ne(o=>{if(o){if(t&&o.running)return We(!0);if(!t&&!o.running)return We(!0)}return Ir(i)}))),Qf(i=>Gl(i.pipe(Ai(this.standardWaitTime),ei(3)),i.pipe(Ne(o=>Ir(o)))))).subscribe(i=>{this.working=!1;const o=this.processAppData(i);this.lastServiceState=o.running?nr.Running:nr.Off,this.currentEventData.vpnClientAppData=o,this.currentEventData.updateDate=Date.now(),this.sendUpdate(),this.updateData(),!t&&this.requestedServer&&this.processServerChange()},i=>{i=Qt(i),this.snackbarService.showError(this.lastServiceState===nr.Starting?"vpn.status-page.problem-starting-error":this.lastServiceState===nr.Disconnecting?"vpn.status-page.problem-stopping-error":"vpn.status-page.generic-problem-error",null,!1,i.originalServerErrorMsg),this.working=!1,this.sendUpdate(),this.updateData()})}continuallyUpdateData(t){if(this.working&&this.lastServiceState!==nr.PerformingInitialCheck)return;this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe();let e=0;this.continuousUpdateSubscription=We(0).pipe(Ai(t),Ne(()=>this.getVpnClientState()),Qf(i=>i.pipe(Ne(o=>(this.errorSubject.next(!0),(o=Qt(o)).originalError&&o.originalError.status&&401===o.originalError.status?Ir(o):this.lastServiceState!==nr.PerformingInitialCheck||e<4?(e+=1,We(o).pipe(Ai(this.standardWaitTime))):Ir(o)))))).subscribe(i=>{i?(this.errorSubject.next(!1),this.lastServiceState===nr.PerformingInitialCheck&&(this.working=!1),this.vpnSavedDataService.compareCurrentServer(i.serverPk),this.lastServiceState=i.running?nr.Running:nr.Off,this.currentEventData.vpnClientAppData=i,this.currentEventData.updateDate=Date.now(),this.sendUpdate()):this.lastServiceState===nr.PerformingInitialCheck&&(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null,this.updatesStopped=!0),this.continuallyUpdateData(this.standardWaitTime)},i=>{(i=Qt(i)).originalError&&i.originalError.status&&401===i.originalError.status||(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null),this.updatesStopped=!0})}stopContinuallyUpdatingData(){this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe()}getVpnClientState(){let t;const e=new ic;return e.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/summary`,e).pipe(Ne(i=>{let o;if(i&&i.overview&&i.overview.apps&&i.overview.apps.length>0&&i.overview.apps.forEach(s=>{s.name===this.vpnClientAppName&&(o=s)}),o&&(t=this.processAppData(o)),t.minHops=i.min_hops?i.min_hops:0,t&&t.running){const s=new ic;return s.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/apps/${this.vpnClientAppName}/connections`,s)}return We(null)}),Ce(i=>{if(i&&i.length>0){const o=new Dq;i.forEach(s=>{o.latency+=s.latency/i.length,o.uploadSpeed+=s.upload_speed/i.length,o.downloadSpeed+=s.download_speed/i.length,o.totalUploaded+=s.bandwidth_sent,o.totalDownloaded+=s.bandwidth_received,s.error&&(o.error=s.error),s.connection_duration>o.connectionDuration&&(o.connectionDuration=s.connection_duration)}),(!this.connectionHistoryPk||this.connectionHistoryPk!==t.serverPk)&&(this.connectionHistoryPk=t.serverPk,this.uploadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.downloadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0]),o.latency=Math.round(o.latency),o.uploadSpeed=Math.round(o.uploadSpeed),o.downloadSpeed=Math.round(o.downloadSpeed),o.totalUploaded=Math.round(o.totalUploaded),o.totalDownloaded=Math.round(o.totalDownloaded),this.uploadSpeedHistory.splice(0,1),this.uploadSpeedHistory.push(o.uploadSpeed),o.uploadSpeedHistory=this.uploadSpeedHistory,this.downloadSpeedHistory.splice(0,1),this.downloadSpeedHistory.push(o.downloadSpeed),o.downloadSpeedHistory=this.downloadSpeedHistory,this.latencyHistory.splice(0,1),this.latencyHistory.push(o.latency),o.latencyHistory=this.latencyHistory,t.connectionData=o}return t}))}processAppData(t){const e=new Sq;if(e.running=0!==t.status&&2!==t.status,e.connectionDuration=t.connection_duration,e.appState=yn.Stopped,e.running?t.detailed_status===yn.Connecting||3===t.status?e.appState=yn.Connecting:t.detailed_status===yn.Running?e.appState=yn.Running:t.detailed_status===yn.ShuttingDown?e.appState=yn.ShuttingDown:t.detailed_status===yn.Reconnecting&&(e.appState=yn.Reconnecting):2===t.status&&(e.lastErrorMsg=t.detailed_status,e.lastErrorMsg||(e.lastErrorMsg=this.translateService.instant("vpn.status-page.unknown-error"))),e.killswitch=!1,t.args&&t.args.length>0)for(let i=0;ithis.firstInput.nativeElement.focus())}process(){let t=this.vpnSavedDataService.getSavedVersion(this.data.server.pk,!0);t=t||this.data.server;const e=this.form.get("value").value;e!==(this.data.editName?this.data.server.customName:this.data.server.personalNote)?(this.data.editName?t.customName=e:t.personalNote=e,this.vpnSavedDataService.updateServer(t),this.snackbarService.showDone("vpn.server-options.edit-value.changes-made-confirmation"),this.dialogRef.close(!0)):this.dialogRef.close()}}uc.\u0275fac=function(t){return new(t||uc)(F(Vn),F(Si),F(xr),F(cn),F(Bo))},uc.\u0275cmp=qe({type:uc,selectors:[["app-edit-vpn-server-value"]],viewQuery:function(t,e){if(1&t&&ft(Tq,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","value","maxlength","100","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return e.process()}),I(11),R(12,"translate"),C()()),2&t&&(w("headline",B(1,5,"vpn.server-options.edit-value."+(e.data.editName?"name":"note")+"-title"))("dialog",e.dialogRef),d(2),w("formGroup",e.form),d(4),oe(B(7,7,"vpn.server-options.edit-value."+(e.data.editName?"name":"note")+"-label")),d(5),me(" ",B(12,9,"vpn.server-options.edit-value.apply-button")," "))},dependencies:[Yi,Fi,Ri,Ni,wr,ni,Di,tr,Cr,ii,Rn,Ct]});const Lq=["firstInput"];class dl{constructor(t,e,i){this.dialogRef=t,this.data=e,this.formBuilder=i}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.mediumModalWidth,t.open(dl,i)}ngOnInit(){this.form=this.formBuilder.group({password:["",this.data?void 0:Vt.required]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){this.dialogRef.close("-"+this.form.get("password").value)}}dl.\u0275fac=function(t){return new(t||dl)(F(Vn),F(Si),F(xr))},dl.\u0275cmp=qe({type:dl,selectors:[["app-enter-vpn-server-password"]],viewQuery:function(t,e){if(1&t&&ft(Lq,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:12,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","password","type","password","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return e.process()}),I(11),R(12,"translate"),C()()),2&t&&(w("headline",B(1,6,"vpn.server-list.password-dialog.title"))("dialog",e.dialogRef),d(2),w("formGroup",e.form),d(4),oe(B(7,8,"vpn.server-list.password-dialog.password"+(e.data?"-if-any":"")+"-label")),d(4),w("disabled",!e.form.valid),d(1),me(" ",B(12,10,"vpn.server-list.password-dialog.continue-button")," "))},dependencies:[Yi,Fi,Ri,Ni,ni,Di,tr,Cr,ii,Rn,Ct]});class fn{static changeCurrentPk(t){this.currentPk=t}static setDefaultTabForServerList(t){sessionStorage.setItem(fn.serverListTabStorageKey,t)}static get vpnTabsData(){const t=sessionStorage.getItem(fn.serverListTabStorageKey);return[{icon:"power_settings_new",label:"vpn.start",linkParts:["/vpn",this.currentPk,"status"]},{icon:"list",label:"vpn.servers",linkParts:t?["/vpn",this.currentPk,"servers",t,"1"]:["/vpn",this.currentPk,"servers"]},{icon:"settings",label:"vpn.settings",linkParts:["/vpn",this.currentPk,"settings"]}]}static getLatencyValueString(t){return t<1e3?"time-in-ms":"time-in-segs"}static getPrintableLatency(t){return t<1e3?t+"":(t/1e3).toFixed(1)}static processServerChange(t,e,i,o,s,a,l,c,M,P,Y){let q;if(c&&(M||P)||M&&(c||P)||P&&(c||M))throw new Error("Invalid call");if(c)q=c.pk;else if(M)q=M.pk;else{if(!P)throw new Error("Invalid call");q=P.pk}const te=i.getSavedVersion(q,!0),fe=te&&(Y||te.usedWithPassword),ke=e.checkNewPk(q);if(ke!==xo.Busy)if(ke!==xo.SamePkRunning||fe)if(ke===xo.MustStop||ke===xo.SamePkRunning&&fe){const Ie=Wt.createConfirmationDialog(s,"vpn.server-change.change-server-while-connected-confirmation");Ie.componentInstance.operationAccepted.subscribe(()=>{Ie.componentInstance.closeModal(),c?e.changeServerUsingHistory(c,Y):M?e.changeServerUsingDiscovery(M,Y):P&&e.changeServerManually(P,Y),fn.redirectAfterServerChange(t,a,l)})}else if(ke!==xo.SamePkStopped||fe)c?e.changeServerUsingHistory(c,Y):M?e.changeServerUsingDiscovery(M,Y):P&&e.changeServerManually(P,Y),fn.redirectAfterServerChange(t,a,l);else{const Ie=Wt.createConfirmationDialog(s,"vpn.server-change.start-same-server-confirmation");Ie.componentInstance.operationAccepted.subscribe(()=>{Ie.componentInstance.closeModal(),P&&te&&i.processFromManual(P),e.start(),fn.redirectAfterServerChange(t,a,l)})}else o.showWarning("vpn.server-change.already-selected-warning");else o.showError("vpn.server-change.busy-error")}static redirectAfterServerChange(t,e,i){e&&e.close(),t.navigate(["vpn",i,"status"])}static openServerOptions(t,e,i,o,s,a){const l=[],c=[];return t.usedWithPassword?(l.push({icon:"lock_open",label:"vpn.server-options.connect-without-password"}),c.push(201),l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-another-password"}),c.push(202)):t.enteredManually&&(l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-password"}),c.push(202)),l.push({icon:"edit",label:"vpn.server-options.edit-name"}),c.push(101),l.push({icon:"subject",label:"vpn.server-options.edit-label"}),c.push(102),(!t||t.flag!==Wn.Favorite)&&(l.push({icon:"star",label:"vpn.server-options.make-favorite"}),c.push(1)),t&&t.flag===Wn.Favorite&&(l.push({icon:"star_outline",label:"vpn.server-options.remove-from-favorites"}),c.push(-1)),(!t||t.flag!==Wn.Blocked)&&(l.push({icon:"pan_tool",label:"vpn.server-options.block"}),c.push(2)),t&&t.flag===Wn.Blocked&&(l.push({icon:"thumb_up",label:"vpn.server-options.unblock"}),c.push(-2)),t&&t.inHistory&&(l.push({icon:"delete",label:"vpn.server-options.remove-from-history"}),c.push(-3)),$i.openDialog(a,l,"common.options").afterClosed().pipe(Ne(M=>{if(M){const P=i.getSavedVersion(t.pk,!0);if(t=P||t,c[M-=1]>200){if(201===c[M]){let Y=!1;const q=Wt.createConfirmationDialog(a,"vpn.server-options.connect-without-password-confirmation");return q.componentInstance.operationAccepted.subscribe(()=>{Y=!0,fn.processServerChange(e,o,i,s,a,null,fn.currentPk,t,null,null,null),q.componentInstance.closeModal()}),q.afterClosed().pipe(Ce(()=>Y))}return dl.openDialog(a,!1).afterClosed().pipe(Ce(Y=>!(!Y||"-"===Y||(fn.processServerChange(e,o,i,s,a,null,fn.currentPk,t,null,null,Y.substr(1)),0))))}if(c[M]>100)return uc.openDialog(a,{editName:101===c[M],server:t}).afterClosed();if(1===c[M])return fn.makeFavorite(t,i,s,a);if(-1===c[M])return i.changeFlag(t,Wn.None),s.showDone("vpn.server-options.remove-from-favorites-done"),We(!0);if(2===c[M])return fn.blockServer(t,i,o,s,a);if(-2===c[M])return i.changeFlag(t,Wn.None),s.showDone("vpn.server-options.unblock-done"),We(!0);if(-3===c[M])return fn.removeFromHistory(t,i,s,a)}return We(!1)}))}static removeFromHistory(t,e,i,o){let s=!1;const a=Wt.createConfirmationDialog(o,"vpn.server-options.remove-from-history-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,e.removeFromHistory(t.pk),i.showDone("vpn.server-options.remove-from-history-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(Ce(()=>s))}static makeFavorite(t,e,i,o){if(t.flag!==Wn.Blocked)return e.changeFlag(t,Wn.Favorite),i.showDone("vpn.server-options.make-favorite-done"),We(!0);let s=!1;const a=Wt.createConfirmationDialog(o,"vpn.server-options.make-favorite-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,e.changeFlag(t,Wn.Favorite),i.showDone("vpn.server-options.make-favorite-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(Ce(()=>s))}static blockServer(t,e,i,o,s){if(t.flag!==Wn.Favorite&&(!e.currentServer||e.currentServer.pk!==t.pk))return e.changeFlag(t,Wn.Blocked),o.showDone("vpn.server-options.block-done"),We(!0);let a=!1;const l=e.currentServer&&e.currentServer.pk===t.pk;let c;c=t.flag!==Wn.Favorite?"vpn.server-options.block-selected-confirmation":l?"vpn.server-options.block-selected-favorite-confirmation":"vpn.server-options.block-confirmation";const M=Wt.createConfirmationDialog(s,c);return M.componentInstance.operationAccepted.subscribe(()=>{a=!0,e.changeFlag(t,Wn.Blocked),o.showDone("vpn.server-options.block-done"),l&&i.stop(),M.componentInstance.closeModal()}),M.afterClosed().pipe(Ce(()=>a))}}fn.serverListTabStorageKey="ServerListTab",fn.currentPk="";var _a=(()=>(function(n){n[n.Seconds=0]="Seconds",n[n.Minutes=1]="Minutes",n[n.Hours=2]="Hours",n[n.Days=3]="Days",n[n.Weeks=4]="Weeks"}(_a||(_a={})),_a))();class Eq{}class II{static getElapsedTime(t){const e=new Eq;e.timeRepresentation=_a.Seconds,e.totalMinutes=Math.floor(t/60).toString(),e.translationVarName="second";let i=1;t>=60&&t<3600?(e.timeRepresentation=_a.Minutes,i=60,e.translationVarName="minute"):t>=3600&&t<86400?(e.timeRepresentation=_a.Hours,i=3600,e.translationVarName="hour"):t>=86400&&t<604800?(e.timeRepresentation=_a.Days,i=86400,e.translationVarName="day"):t>=604800&&(e.timeRepresentation=_a.Weeks,i=604800,e.translationVarName="week");const o=Math.floor(t/i);return e.elapsedTime=o.toString(),(e.timeRepresentation===_a.Seconds||o>1)&&(e.translationVarName=e.translationVarName+"s"),e}}function Iq(n,t){1&n&&xe(0,"mat-spinner",6),2&n&&w("diameter",14)}function Pq(n,t){1&n&&xe(0,"mat-spinner",7),2&n&&w("diameter",18)}function Oq(n,t){1&n&&(D(0,"mat-icon",10),I(1,"refresh"),C()),2&n&&w("inline",!0)}function Aq(n,t){1&n&&(D(0,"mat-icon",11),I(1,"warning"),C()),2&n&&w("inline",!0)}function Fq(n,t){if(1&n&&($e(0),j(1,Oq,2,1,"mat-icon",8),j(2,Aq,2,1,"mat-icon",9),Ge()),2&n){const e=z();d(1),w("ngIf",!e.showAlert),d(1),w("ngIf",e.showAlert)}}const PI=function(n){return{time:n}};function Rq(n,t){if(1&n&&(D(0,"span",12),I(1),R(2,"translate"),C()),2&n){const e=z();d(1),oe(Pt(2,1,"refresh-button."+e.elapsedTime.translationVarName,Ve(4,PI,e.elapsedTime.elapsedTime)))}}const Nq=function(n){return{"grey-button-background":n}};class Jf{constructor(){this.refeshRate=-1}set secondsSinceLastUpdate(t){this.elapsedTime=II.getElapsedTime(t)}}Jf.\u0275fac=function(t){return new(t||Jf)},Jf.\u0275cmp=qe({type:Jf,selectors:[["app-refresh-button"]],inputs:{secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate"},decls:7,vars:14,consts:[["mat-button","",1,"time-button","subtle-transparent-button","white-theme",3,"disabled","ngClass","matTooltip"],[1,"internal-container"],["class","icon d-none d-md-inline-block",3,"diameter",4,"ngIf"],["class","icon d-md-none",3,"diameter",4,"ngIf"],[4,"ngIf"],["class","d-none d-md-inline",4,"ngIf"],[1,"icon","d-none","d-md-inline-block",3,"diameter"],[1,"icon","d-md-none",3,"diameter"],["class","icon",3,"inline",4,"ngIf"],["class","icon alert",3,"inline",4,"ngIf"],[1,"icon",3,"inline"],[1,"icon","alert",3,"inline"],[1,"d-none","d-md-inline"]],template:function(t,e){1&t&&(D(0,"button",0),R(1,"translate"),D(2,"div",1),j(3,Iq,1,1,"mat-spinner",2),j(4,Pq,1,1,"mat-spinner",3),j(5,Fq,3,2,"ng-container",4),j(6,Rq,3,6,"span",5),C()()),2&t&&(w("disabled",e.showLoading)("ngClass",Ve(10,Nq,!e.showLoading))("matTooltip",e.showAlert?Pt(1,7,"refresh-button.error-tooltip",Ve(12,PI,e.refeshRate)):""),d(3),w("ngIf",e.showLoading),d(1),w("ngIf",e.showLoading),d(1),w("ngIf",!e.showLoading),d(1),w("ngIf",e.elapsedTime))},dependencies:[On,Ot,Wr,Cn,gi,rc,Ct],styles:[".time-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;height:40px}.time-button[disabled][_ngcontent-%COMP%]{opacity:.7!important;color:#f8f9f9}.time-button[disabled][_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.7}.time-button[_ngcontent-%COMP%] .internal-container[_ngcontent-%COMP%]{display:flex;align-items:center}.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:16px;margin-right:5px;opacity:.5;display:inline-block}@media (max-width: 767px){.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:22px;margin-right:0;opacity:.75}}.time-button[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%]{color:orange;opacity:1}.time-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.6rem}"]});class ir{transform(t,e){let o,i=!0;e?e.showPerSecond?e.useBits?(o=ir.measurementsPerSecInBits,i=!1):o=ir.measurementsPerSec:e.useBits?(o=ir.accumulatedMeasurementsInBits,i=!1):o=ir.accumulatedMeasurements:o=ir.accumulatedMeasurements;let s=new K1.BigNumber(t);i||(s=s.multipliedBy(8));let a=o[0],l=0;for(;s.dividedBy(1024).isGreaterThan(1);)s=s.dividedBy(1024),l+=1,a=o[l];let c="";return(!e||!!e.showValue)&&(c=e&&e.limitDecimals?new K1.BigNumber(s).decimalPlaces(1).toString():s.toFixed(2)),(!e||!!e.showValue&&!!e.showUnit)&&(c+=" "),(!e||!!e.showUnit)&&(c+=a),c}}function Yq(n,t){if(1&n){const e=tt();D(0,"button",23),ye("click",function(){return Pe(e),Oe(z().requestAction(null))}),D(1,"mat-icon"),I(2,"chevron_left"),C()()}}function Bq(n,t){1&n&&($e(0),xe(1,"img",24),Ge())}function Hq(n,t){if(1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n){const e=z();d(1),me(" ",B(2,1,e.titleParts[e.titleParts.length-1])," ")}}ir.accumulatedMeasurements=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],ir.measurementsPerSec=["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"],ir.accumulatedMeasurementsInBits=["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"],ir.measurementsPerSecInBits=["b/s","Kb/s","Mb/s","Gb/s","Tb/s","Pb/s","Eb/s","Zb/s","Yb/s"],ir.\u0275fac=function(t){return new(t||ir)},ir.\u0275pipe=Qn({name:"autoScale",type:ir,pure:!0});const Vq=function(n){return{transparent:n}};function jq(n,t){if(1&n){const e=tt();$e(0),D(1,"div",26),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).requestAction(s.actionName))}),D(2,"mat-icon",27),I(3),C(),I(4),R(5,"translate"),C(),Ge()}if(2&n){const e=t.$implicit;d(1),w("disabled",e.disabled),d(1),w("ngClass",Ve(6,Vq,e.disabled)),d(1),oe(e.icon),d(1),me(" ",B(5,4,e.name)," ")}}function zq(n,t){1&n&&xe(0,"div",28)}function Uq(n,t){if(1&n&&($e(0),j(1,jq,6,8,"ng-container",25),j(2,zq,1,0,"div",9),Ge()),2&n){const e=z();d(1),w("ngForOf",e.optionsData),d(1),w("ngIf",e.returnText)}}function Wq(n,t){1&n&&xe(0,"div",28)}function $q(n,t){1&n&&xe(0,"img",31),2&n&&w("src","assets/img/lang/"+z(2).language.iconName,_s)}function Gq(n,t){if(1&n){const e=tt();D(0,"div",29),ye("click",function(){return Pe(e),Oe(z().openLanguageWindow())}),j(1,$q,1,1,"img",30),I(2),R(3,"translate"),C()}if(2&n){const e=z();d(1),w("ngIf",e.language),d(1),me(" ",B(3,2,e.language?e.language.name:"")," ")}}function qq(n,t){if(1&n){const e=tt();D(0,"div",32)(1,"a",33),ye("click",function(){return Pe(e),Oe(z().requestAction(null))}),R(2,"translate"),D(3,"mat-icon",34),I(4,"chevron_left"),C()()()}if(2&n){const e=z();d(1),w("matTooltip",B(2,2,e.returnText)),d(2),w("inline",!0)}}function Kq(n,t){if(1&n&&(D(0,"span",35),I(1),R(2,"translate"),C()),2&n){const e=z();d(1),me(" ",B(2,1,e.titleParts[e.titleParts.length-1])," ")}}function Zq(n,t){1&n&&xe(0,"img",36)}const Xq=function(n,t){return{"d-lg-none":n,"d-none d-md-inline-block":t}},OI=function(n,t){return{"mouse-disabled":n,"grey-button-background":t}};function Qq(n,t){if(1&n&&(D(0,"div",27)(1,"a",37)(2,"mat-icon",34),I(3),C(),D(4,"span"),I(5),R(6,"translate"),C()()()),2&n){const e=t.$implicit,i=t.index,o=z();w("ngClass",ln(9,Xq,e.onlyIfLessThanLg,1!==o.tabsData.length)),d(1),w("disabled",i===o.selectedTabIndex)("routerLink",e.linkParts)("ngClass",ln(12,OI,o.disableMouse,!o.disableMouse&&i!==o.selectedTabIndex)),d(1),w("inline",!0),d(1),oe(e.icon),d(2),oe(B(6,7,e.label))}}const Jq=function(n){return{"d-none":n}};function eK(n,t){if(1&n){const e=tt();D(0,"div",38)(1,"button",39),ye("click",function(){return Pe(e),Oe(z().openTabSelector())}),D(2,"div",40)(3,"mat-icon",34),I(4),C(),D(5,"span"),I(6),R(7,"translate"),C(),D(8,"mat-icon",34),I(9,"keyboard_arrow_down"),C()()()()}if(2&n){const e=z();w("ngClass",Ve(8,Jq,1===e.tabsData.length)),d(1),w("ngClass",ln(10,OI,e.disableMouse,!e.disableMouse)),d(2),w("inline",!0),d(1),oe(e.tabsData[e.selectedTabIndex].icon),d(2),oe(B(7,6,e.tabsData[e.selectedTabIndex].label)),d(2),w("inline",!0)}}function tK(n,t){if(1&n){const e=tt();D(0,"app-refresh-button",45),ye("click",function(){return Pe(e),Oe(z(2).sendRefreshEvent())}),C()}if(2&n){const e=z(2);w("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.showLoading)("showAlert",e.showAlert)("refeshRate",e.refeshRate)}}function nK(n,t){if(1&n&&(D(0,"div",41),j(1,tK,1,4,"app-refresh-button",42),D(2,"button",43)(3,"div",44)(4,"mat-icon",34),I(5,"menu"),C()()()()),2&n){const e=z(),i=li(12);d(1),w("ngIf",e.showUpdateButton),d(1),w("matMenuTriggerFor",i),d(2),w("inline",!0)}}function iK(n,t){if(1&n){const e=tt();D(0,"div",53)(1,"div",54),ye("click",function(){return Pe(e),Oe(z(2).openLanguageWindow())}),xe(2,"img",55),I(3),R(4,"translate"),C()()}if(2&n){const e=z(2);d(2),w("src","assets/img/lang/"+e.language.iconName,_s),d(1),me(" ",B(4,2,e.language?e.language.name:"")," ")}}function rK(n,t){1&n&&(D(0,"div",56),R(1,"translate"),D(2,"mat-icon",34),I(3,"warning"),C(),I(4),R(5,"translate"),C()),2&n&&(w("matTooltip",B(1,3,"vpn.connection-error.info")),d(2),w("inline",!0),d(2),me(" ",B(5,5,"vpn.connection-error.text")," "))}function oK(n,t){1&n&&(D(0,"div",63)(1,"mat-icon",61),I(2,"brightness_1"),C()()),2&n&&(d(1),w("inline",!0))}const sK=function(n,t){return{"animation-container":n,"d-none":t}},aK=function(n){return{time:n}},AI=function(n){return{showValue:!0,showUnit:!0,showPerSecond:!0,useBits:n}};function lK(n,t){if(1&n&&(D(0,"table",57)(1,"tr")(2,"td",58),R(3,"translate"),D(4,"div",27)(5,"div",59)(6,"div",60)(7,"mat-icon",61),I(8,"brightness_1"),C(),I(9),R(10,"translate"),C()()(),j(11,oK,3,1,"div",62),D(12,"mat-icon",61),I(13,"brightness_1"),C(),I(14),R(15,"translate"),C(),D(16,"td",58),R(17,"translate"),D(18,"mat-icon",34),I(19,"swap_horiz"),C(),I(20),R(21,"translate"),C()(),D(22,"tr")(23,"td",58),R(24,"translate"),D(25,"mat-icon",34),I(26,"arrow_upward"),C(),I(27),R(28,"autoScale"),C(),D(29,"td",58),R(30,"translate"),D(31,"mat-icon",34),I(32,"arrow_downward"),C(),I(33),R(34,"autoScale"),C()()()),2&n){const e=z(2);d(2),fo(e.vpnData.stateClass+" state-td"),w("matTooltip",B(3,18,e.vpnData.state+"-info")),d(2),w("ngClass",ln(39,sK,e.showVpnStateAnimation,!e.showVpnStateAnimation)),d(3),w("inline",!0),d(2),me(" ",B(10,20,e.vpnData.state)," "),d(2),w("ngIf",e.showVpnStateAnimatedDot),d(1),w("inline",!0),d(2),me(" ",B(15,22,e.vpnData.state)," "),d(2),w("matTooltip",B(17,24,"vpn.connection-info.latency-info")),d(2),w("inline",!0),d(2),me(" ",Pt(21,26,"common."+e.getLatencyValueString(e.vpnData.latency),Ve(42,aK,e.getPrintableLatency(e.vpnData.latency)))," "),d(3),w("matTooltip",B(24,29,"vpn.connection-info.upload-info")),d(2),w("inline",!0),d(2),me(" ",Pt(28,31,e.vpnData.uploadSpeed,Ve(44,AI,e.showVpnDataStatsInBits))," "),d(2),w("matTooltip",B(30,34,"vpn.connection-info.download-info")),d(2),w("inline",!0),d(2),me(" ",Pt(34,36,e.vpnData.downloadSpeed,Ve(46,AI,e.showVpnDataStatsInBits))," ")}}function cK(n,t){1&n&&xe(0,"mat-spinner",64),2&n&&w("diameter",20)}function dK(n,t){if(1&n&&(D(0,"div")(1,"div",46),j(2,iK,5,4,"div",47),xe(3,"div",48),j(4,rK,6,7,"div",49),C(),D(5,"div",50),j(6,lK,35,48,"table",51),j(7,cK,1,1,"mat-spinner",52),C()()),2&n){const e=z();d(2),w("ngIf",!e.hideLanguageButton&&e.language),d(2),w("ngIf",e.errorsConnectingToVpn),d(2),w("ngIf",e.vpnData),d(1),w("ngIf",!e.vpnData)}}function uK(n,t){1&n&&(D(0,"div",65)(1,"div",66)(2,"mat-icon",34),I(3,"error_outline"),C(),I(4),R(5,"translate"),C(),D(6,"div",67),I(7),R(8,"translate"),C()()),2&n&&(d(2),w("inline",!0),d(2),me(" ",B(5,3,"vpn.remote-access-title")," "),d(3),me(" ",B(8,5,"vpn.remote-access-text")," "))}const FI=function(n,t){return{"d-lg-none":n,"d-none":t}},hK=function(n){return{"normal-height":n}},fK=function(n,t){return{"d-none d-lg-flex":n,"d-flex":t}};class as{constructor(t,e,i,o,s){this.languageService=t,this.dialog=e,this.router=i,this.vpnClientService=o,this.vpnSavedDataService=s,this.disableMouse=!1,this.selectedTabIndex=0,this.refeshRate=-1,this.showUpdateButton=!0,this.localVpnKeyInternal="",this.refreshRequested=new ht,this.optionSelected=new ht,this.hideLanguageButton=!0,this.showVpnInfo=!1,this.initialVpnStateObtained=!1,this.lastVpnState="",this.showVpnStateAnimation=!1,this.showVpnStateAnimatedDot=!0,this.showVpnDataStatsInBits=!0,this.remoteAccess=!1,this.errorsConnectingToVpn=!1,this.langSubscriptionsGroup=[]}set localVpnKey(t){this.localVpnKeyInternal=t,t?this.startGettingVpnInfo():this.stopGettingVpnInfo()}ngOnInit(){this.langSubscriptionsGroup.push(this.languageService.currentLanguage.subscribe(e=>{this.language=e})),this.langSubscriptionsGroup.push(this.languageService.languages.subscribe(e=>{this.hideLanguageButton=!(e.length>1)}));const t=window.location.hostname;!t.toLowerCase().includes("localhost")&&!t.toLowerCase().includes("127.0.0.1")&&(this.remoteAccess=!0)}ngOnDestroy(){this.langSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.refreshRequested.complete(),this.optionSelected.complete(),this.stopGettingVpnInfo()}startGettingVpnInfo(){this.showVpnInfo=!0,this.vpnClientService.initialize(this.localVpnKeyInternal),this.updateVpnDataStatsUnit(),this.vpnDataSubscription=this.vpnClientService.backendState.subscribe(t=>{t&&(this.vpnData={state:"",stateClass:"",latency:t.vpnClientAppData.connectionData?t.vpnClientAppData.connectionData.latency:0,downloadSpeed:t.vpnClientAppData.connectionData?t.vpnClientAppData.connectionData.downloadSpeed:0,uploadSpeed:t.vpnClientAppData.connectionData?t.vpnClientAppData.connectionData.uploadSpeed:0},t.vpnClientAppData.appState===yn.Stopped?(this.vpnData.state="vpn.connection-info.state-disconnected",this.vpnData.stateClass="red-clear-text"):t.vpnClientAppData.appState===yn.Connecting?(this.vpnData.state="vpn.connection-info.state-connecting",this.vpnData.stateClass="yellow-clear-text"):t.vpnClientAppData.appState===yn.Running?(this.vpnData.state="vpn.connection-info.state-connected",this.vpnData.stateClass="green-clear-text"):t.vpnClientAppData.appState===yn.ShuttingDown?(this.vpnData.state="vpn.connection-info.state-disconnecting",this.vpnData.stateClass="yellow-clear-text"):t.vpnClientAppData.appState===yn.Reconnecting&&(this.vpnData.state="vpn.connection-info.state-reconnecting",this.vpnData.stateClass="yellow-clear-text"),this.initialVpnStateObtained?this.lastVpnState!==this.vpnData.state&&(this.lastVpnState=this.vpnData.state,this.showVpnStateAnimation=!1,this.showVpnStateChangeAnimationSubscription&&this.showVpnStateChangeAnimationSubscription.unsubscribe(),this.showVpnStateChangeAnimationSubscription=We(0).pipe(Ai(1)).subscribe(()=>this.showVpnStateAnimation=!0)):(this.initialVpnStateObtained=!0,this.lastVpnState=this.vpnData.state),this.showVpnStateAnimatedDot=!1,this.showVpnStateAnimatedDotSubscription&&this.showVpnStateAnimatedDotSubscription.unsubscribe(),this.showVpnStateAnimatedDotSubscription=We(0).pipe(Ai(1)).subscribe(()=>this.showVpnStateAnimatedDot=!0))}),this.errorsConnectingToVpnSubscription=this.vpnClientService.errorsConnecting.subscribe(t=>{this.errorsConnectingToVpn=t})}stopGettingVpnInfo(){this.showVpnInfo=!1,this.vpnDataSubscription&&this.vpnDataSubscription.unsubscribe(),this.errorsConnectingToVpnSubscription&&this.errorsConnectingToVpnSubscription.unsubscribe()}getLatencyValueString(t){return fn.getLatencyValueString(t)}getPrintableLatency(t){return fn.getPrintableLatency(t)}requestAction(t){this.optionSelected.emit(t)}openLanguageWindow(){al.openDialog(this.dialog)}sendRefreshEvent(){this.refreshRequested.emit()}openTabSelector(){const t=[];this.tabsData.forEach(e=>{t.push({label:e.label,icon:e.icon})}),$i.openDialog(this.dialog,t,"tabs-window.title").afterClosed().subscribe(e=>{e&&(e-=1)!==this.selectedTabIndex&&this.router.navigate(this.tabsData[e].linkParts)})}updateVpnDataStatsUnit(){const t=this.vpnSavedDataService.getDataUnitsSetting();this.showVpnDataStatsInBits=t===ro.BitsSpeedAndBytesVolume||t===ro.OnlyBits}}as.\u0275fac=function(t){return new(t||as)(F(ca),F(Fn),F(Xt),F(Ho),F(Bo))},as.\u0275cmp=qe({type:as,selectors:[["app-top-bar"]],inputs:{disableMouse:"disableMouse",titleParts:"titleParts",tabsData:"tabsData",selectedTabIndex:"selectedTabIndex",optionsData:"optionsData",returnText:"returnText",secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate",showUpdateButton:"showUpdateButton",localVpnKey:"localVpnKey"},outputs:{refreshRequested:"refreshRequested",optionSelected:"optionSelected"},decls:29,vars:31,consts:[[1,"top-bar",3,"ngClass"],[1,"button-container"],["mat-icon-button","","class","transparent-button",3,"click",4,"ngIf"],[1,"logo-container"],[4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"matMenuTriggerFor"],[1,"top-bar-margin",3,"ngClass"],[3,"overlapTrigger"],["menu","matMenu"],["class","menu-separator",4,"ngIf"],["mat-menu-item","",3,"click",4,"ngIf"],[1,"main-container",3,"ngClass"],[1,"main-area"],[1,"title",3,"ngClass"],["class","return-container",4,"ngIf"],["class","title-text",4,"ngIf"],["class","title-image","src","./assets/img/logo-vpn.png",4,"ngIf"],[1,"lower-container"],[3,"ngClass",4,"ngFor","ngForOf"],["class","d-md-none",3,"ngClass",4,"ngIf"],[1,"blank-space"],["class","right-container",4,"ngIf"],["class","remote-vpn-alert-container",4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"click"],["src","/assets/img/logo-s.png"],[4,"ngFor","ngForOf"],["mat-menu-item","",3,"disabled","click"],[3,"ngClass"],[1,"menu-separator"],["mat-menu-item","",3,"click"],["class","flag",3,"src",4,"ngIf"],[1,"flag",3,"src"],[1,"return-container"],[1,"return-button","transparent-button",3,"matTooltip","click"],[3,"inline"],[1,"title-text"],["src","./assets/img/logo-vpn.png",1,"title-image"],["mat-button","",1,"tab-button","white-theme",3,"disabled","routerLink","ngClass"],[1,"d-md-none",3,"ngClass"],["mat-button","",1,"tab-button","select-tab-button","white-theme",3,"ngClass","click"],[1,"d-flex"],[1,"right-container"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate","click",4,"ngIf"],["mat-button","",1,"menu-button","subtle-transparent-button","d-none","d-lg-block",3,"matMenuTriggerFor"],[1,"icon-container"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate","click"],[1,"top-text-vpn-container"],["class","languaje-button-vpn",4,"ngIf"],[1,"elements-separator"],["class","connection-error-msg-vpn blinking",3,"matTooltip",4,"ngIf"],[1,"vpn-info","vpn-dark-box-radius"],["cellspacing","0","cellpadding","0",4,"ngIf"],[3,"diameter",4,"ngIf"],[1,"languaje-button-vpn"],[1,"text-container",3,"click"],[1,"language-flag",3,"src"],[1,"connection-error-msg-vpn","blinking",3,"matTooltip"],["cellspacing","0","cellpadding","0"],[3,"matTooltip"],[1,"internal-animation-container"],[1,"animation-area"],[1,"state-icon",3,"inline"],["class","aminated-state-icon-container",4,"ngIf"],[1,"aminated-state-icon-container"],[3,"diameter"],[1,"remote-vpn-alert-container"],[1,"top-line"],[1,"bottom-line"]],template:function(t,e){if(1&t&&(D(0,"div",0)(1,"div",1),j(2,Yq,3,0,"button",2),C(),D(3,"div",3),j(4,Bq,2,0,"ng-container",4),j(5,Hq,3,3,"ng-container",4),C(),D(6,"div",1)(7,"button",5)(8,"mat-icon"),I(9,"menu"),C()()()(),xe(10,"div",6),D(11,"mat-menu",7,8),j(13,Uq,3,2,"ng-container",4),j(14,Wq,1,0,"div",9),j(15,Gq,4,4,"div",10),C(),D(16,"div",11)(17,"div",12)(18,"div",13),j(19,qq,5,4,"div",14),j(20,Kq,3,3,"span",15),j(21,Zq,1,0,"img",16),C(),D(22,"div",17),j(23,Qq,7,15,"div",18),j(24,eK,10,13,"div",19),xe(25,"div",20),j(26,nK,6,3,"div",21),C()(),j(27,dK,8,4,"div",4),C(),j(28,uK,9,7,"div",22)),2&t){const i=li(12);w("ngClass",ln(20,FI,!e.showVpnInfo,e.showVpnInfo)),d(2),w("ngIf",e.returnText),d(2),w("ngIf",!e.titleParts||e.titleParts.length<2),d(1),w("ngIf",e.titleParts&&e.titleParts.length>=2),d(2),w("matMenuTriggerFor",i),d(3),w("ngClass",ln(23,FI,!e.showVpnInfo,e.showVpnInfo)),d(1),w("overlapTrigger",!1),d(2),w("ngIf",e.optionsData&&e.optionsData.length>=1),d(1),w("ngIf",!e.hideLanguageButton&&e.optionsData&&e.optionsData.length>=1),d(1),w("ngIf",!e.hideLanguageButton),d(1),w("ngClass",Ve(26,hK,!e.showVpnInfo)),d(2),w("ngClass",ln(28,fK,!e.showVpnInfo,e.showVpnInfo)),d(1),w("ngIf",e.returnText),d(1),w("ngIf",!e.showVpnInfo),d(1),w("ngIf",e.showVpnInfo),d(2),w("ngForOf",e.tabsData),d(1),w("ngIf",e.tabsData&&e.tabsData[e.selectedTabIndex]),d(2),w("ngIf",!e.showVpnInfo),d(1),w("ngIf",e.showVpnInfo),d(1),w("ngIf",e.showVpnInfo&&e.remoteAccess)}},dependencies:[On,Ci,Ot,Qa,uz,Wr,il,Cn,gi,gu,ma,bu,rc,Jf,Ct,ir],styles:["@media (max-width: 991px){.normal-height[_ngcontent-%COMP%]{height:55px!important}}.main-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:10px;margin-bottom:-5px;height:100px;display:flex}.main-container[_ngcontent-%COMP%] .main-area[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.875rem;margin-bottom:15px;margin-left:5px;flex-direction:row;align-items:center}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-text[_ngcontent-%COMP%]{z-index:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-image[_ngcontent-%COMP%]{width:124px;height:21px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%]{width:30px;position:relative;top:2px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%] .return-button[_ngcontent-%COMP%]{line-height:1;font-size:25px;position:relative;top:2px;width:100%;margin-right:4px;cursor:pointer}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%]{display:flex}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .blank-space[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;opacity:.5;margin-right:2px;text-decoration:none;height:40px;display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]:hover{opacity:.75}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[disabled][_ngcontent-%COMP%]{opacity:1!important;color:#f8f9f9;background:rgba(0,0,0,.7)!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{margin-right:2px;opacity:.75;font-size:18px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1rem;margin:0 4px;position:relative;top:-1px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]{opacity:.75!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]:hover{opacity:1!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%]{display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] app-refresh-button[_ngcontent-%COMP%]{align-self:flex-end}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%]{height:32px;width:32px;min-width:0px!important;background-color:#f8f9f9;border-radius:100%;padding:0!important;line-height:normal;color:#929292;font-size:20px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{display:flex;place-content:center}.menu-separator[_ngcontent-%COMP%]{width:100%;height:1px;background-color:#0000001f}.flag[_ngcontent-%COMP%]{width:24px;margin-right:16px}.transparent[_ngcontent-%COMP%]{opacity:.5}.top-bar[_ngcontent-%COMP%]{position:fixed;z-index:10;width:100%;height:56px;background-color:#f8f9f9;top:0;left:0;right:0;color:#202226;display:flex}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{flex-grow:1;display:flex;justify-content:center;align-items:center}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%]{flex-shrink:0;width:56px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:56px;height:56px}.top-bar-margin[_ngcontent-%COMP%]{margin-top:56px;flex-shrink:0}.vpn-info[_ngcontent-%COMP%]{font-size:.7rem;background:rgba(0,0,0,.7);padding:15px 20px;align-self:center}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] .state-td[_ngcontent-%COMP%]{font-weight:700}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 0;min-width:90px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:3px;font-size:12px;position:relative;top:1px;-webkit-user-select:none;user-select:none;width:auto;line-height:1}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{transform:scale(.75)}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{height:auto;animation:_ngcontent-%COMP%_state-icon-animation 1s linear 1}@keyframes _ngcontent-%COMP%_state-icon-animation{0%{transform:perspective(1px) scale(1);opacity:.8}to{transform:scale(2);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%]{width:200px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%] .animation-area[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_state-animation 1s linear 1;opacity:0}@keyframes _ngcontent-%COMP%_state-animation{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{padding-right:30px}.vpn-info[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.top-text-vpn-container[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;font-size:.6rem}.top-text-vpn-container[_ngcontent-%COMP%] .connection-error-msg-vpn[_ngcontent-%COMP%]{margin:-5px 5px 5px 10px;color:orange}.top-text-vpn-container[_ngcontent-%COMP%] .elements-separator[_ngcontent-%COMP%]{flex-grow:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%]{margin:-5px 10px 5px 0}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{cursor:pointer;display:inline;opacity:.8}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]:hover{opacity:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .language-flag[_ngcontent-%COMP%]{width:11px;height:11px;margin-right:2px}.remote-vpn-alert-container[_ngcontent-%COMP%]{background-color:#da3439;margin:0 -21px;padding:10px 20px 15px;text-align:center}.remote-vpn-alert-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:14px}.remote-vpn-alert-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:1.25rem}.remote-vpn-alert-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.8rem}"]});const RI=function(){return["start.title"]};function pK(n,t){if(1&n&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3),C(),xe(3,"app-loading-indicator",4),C()),2&n){const e=z();d(2),w("titleParts",Un(4,RI))("tabsData",e.tabsData)("selectedTabIndex",e.showDmsgInfo?1:0)("showUpdateButton",!1)}}function mK(n,t){if(1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n){const e=z().$implicit;d(1),oe(B(2,1,e.translatableValue))}}function _K(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z().$implicit;d(1),oe(e.value)}}function gK(n,t){if(1&n&&(D(0,"div",23)(1,"span"),I(2),R(3,"translate"),C(),j(4,mK,3,3,"ng-container",24),j(5,_K,2,1,"ng-container",24),C()),2&n){const e=t.$implicit;d(2),me("",B(3,3,e.filterName),": "),d(2),w("ngIf",e.translatableValue),d(1),w("ngIf",e.value)}}function bK(n,t){if(1&n){const e=tt();D(0,"div",20),ye("click",function(){return Pe(e),Oe(z(2).dataFilterer.removeFilters())}),j(1,gK,6,5,"div",21),D(2,"div",22),I(3),R(4,"translate"),C()()}if(2&n){const e=z(2);d(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),d(2),oe(B(4,2,"filters.press-to-remove"))}}function vK(n,t){if(1&n){const e=tt();D(0,"mat-icon",25),ye("click",function(){return Pe(e),Oe(z(2).dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&n&&w("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function yK(n,t){1&n&&(D(0,"mat-icon",26),I(1,"more_horiz"),C()),2&n&&(z(),w("matMenuTriggerFor",li(12)))}const NI=function(){return["/nodes","list"]},YI=function(){return["/nodes","dmsg"]};function MK(n,t){if(1&n&&xe(0,"app-paginator",27),2&n){const e=z(2);w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showDmsgInfo?Un(5,YI):Un(4,NI))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function wK(n,t){if(1&n&&(D(0,"mat-icon",42),I(1),C()),2&n){const e=z(4);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function xK(n,t){if(1&n&&(D(0,"mat-icon",42),I(1),C()),2&n){const e=z(4);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function CK(n,t){if(1&n&&(D(0,"mat-icon",42),I(1),C()),2&n){const e=z(4);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function kK(n,t){if(1&n&&(D(0,"mat-icon",42),I(1),C()),2&n){const e=z(4);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function SK(n,t){1&n&&($e(0),I(1,"*"),Ge())}function DK(n,t){if(1&n&&($e(0),D(1,"mat-icon",42),I(2),C(),j(3,SK,2,0,"ng-container",24),Ge()),2&n){const e=z(5);d(1),w("inline",!0),d(1),oe(e.dataSorter.sortingArrow),d(1),w("ngIf",e.dataSorter.currentlySortingByLabel)}}function TK(n,t){if(1&n){const e=tt();D(0,"th",38),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.dmsgServerSortData))}),I(1),R(2,"translate"),j(3,DK,4,3,"ng-container",24),C()}if(2&n){const e=z(4);d(1),me(" ",B(2,2,"nodes.dmsg-server")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.dmsgServerSortData)}}function LK(n,t){if(1&n&&(D(0,"mat-icon",42),I(1),C()),2&n){const e=z(5);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function EK(n,t){if(1&n){const e=tt();D(0,"th",38),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.pingSortData))}),I(1),R(2,"translate"),j(3,LK,2,2,"mat-icon",35),C()}if(2&n){const e=z(4);d(1),me(" ",B(2,2,"nodes.ping")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.pingSortData)}}function IK(n,t){1&n&&(D(0,"mat-icon",49),R(1,"translate"),I(2,"star"),C()),2&n&&w("inline",!0)("matTooltip",B(1,2,"nodes.hypervisor-info"))}function PK(n,t){if(1&n){const e=tt();D(0,"app-labeled-element-text",51),ye("labelEdited",function(){return Pe(e),Oe(z(6).forceDataRefresh())}),C()}if(2&n){const e=z(2).$implicit,i=z(4);Dn("id",e.dmsgServerPk),w("short",!0)("elementType",i.labeledElementTypes.DmsgServer)}}function OK(n,t){if(1&n&&(D(0,"td"),j(1,PK,1,3,"app-labeled-element-text",50),C()),2&n){const e=z().$implicit;d(1),w("ngIf",e.dmsgServerPk)}}const BI=function(n){return{time:n}};function AK(n,t){if(1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n){const e=z(2).$implicit;d(1),me(" ",Pt(2,1,"common.time-in-ms",Ve(4,BI,e.roundTripPing))," ")}}function FK(n,t){if(1&n&&(D(0,"td"),j(1,AK,3,6,"ng-container",24),C()),2&n){const e=z().$implicit;d(1),w("ngIf",e.dmsgServerPk)}}function RK(n,t){1&n&&(D(0,"button",52),R(1,"translate"),D(2,"mat-icon",42),I(3,"chevron_right"),C()()),2&n&&(w("matTooltip",B(1,2,"nodes.view-node")),d(2),w("inline",!0))}function NK(n,t){if(1&n){const e=tt();D(0,"button",46),ye("click",function(o){Pe(e);const s=z().$implicit,a=z(4);return o.stopPropagation(),o.preventDefault(),Oe(a.deleteNode(s))}),R(1,"translate"),D(2,"mat-icon"),I(3,"close"),C()()}2&n&&w("matTooltip",B(1,1,"nodes.delete-node"))}const YK=function(n,t){return{"click-effect":n,"non-selectable":t}},HI=function(n){return["/nodes",n]};function BK(n,t){if(1&n){const e=tt();D(0,"a",43)(1,"td"),j(2,IK,3,4,"mat-icon",44),C(),D(3,"td"),xe(4,"span",45),R(5,"translate"),C(),D(6,"td"),I(7),C(),D(8,"td"),I(9),C(),j(10,OK,2,1,"td",24),j(11,FK,2,1,"td",24),D(12,"td",40)(13,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.copyToClipboard(a))}),R(14,"translate"),D(15,"mat-icon",42),I(16,"filter_none"),C()(),D(17,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.showEditLabelDialog(a))}),R(18,"translate"),D(19,"mat-icon",42),I(20,"short_text"),C()(),j(21,RK,4,4,"button",47),j(22,NK,4,3,"button",48),C()()}if(2&n){const e=t.$implicit,i=z(4);w("ngClass",ln(22,YK,e.online,!e.online))("routerLink",e.online?Ve(25,HI,e.localPk):null),d(2),w("ngIf",e.isHypervisor),d(2),fo(i.nodeStatusClass(e,!0)),w("matTooltip",B(5,16,i.nodeStatusText(e,!0))),d(3),me(" ",e.label," "),d(2),me(" ",e.localPk," "),d(1),w("ngIf",i.showDmsgInfo),d(1),w("ngIf",i.showDmsgInfo),d(2),w("matTooltip",B(14,18,i.showDmsgInfo?"nodes.copy-data":"nodes.copy-key")),d(2),w("inline",!0),d(2),w("matTooltip",B(18,20,"labeled-element.edit-label")),d(2),w("inline",!0),d(2),w("ngIf",e.online),d(1),w("ngIf",!e.online)}}function HK(n,t){if(1&n){const e=tt();D(0,"table",32)(1,"tr")(2,"th",33),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),R(3,"translate"),D(4,"mat-icon",34),I(5,"star_outline"),C(),j(6,wK,2,2,"mat-icon",35),C(),D(7,"th",33),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.stateSortData))}),R(8,"translate"),xe(9,"span",36),j(10,xK,2,2,"mat-icon",35),C(),D(11,"th",37),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.labelSortData))}),I(12),R(13,"translate"),j(14,CK,2,2,"mat-icon",35),C(),D(15,"th",38),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.keySortData))}),I(16),R(17,"translate"),j(18,kK,2,2,"mat-icon",35),C(),j(19,TK,4,4,"th",39),j(20,EK,4,4,"th",39),xe(21,"th",40),C(),j(22,BK,23,27,"a",41),C()}if(2&n){const e=z(3);d(2),w("matTooltip",B(3,11,"nodes.hypervisor")),d(4),w("ngIf",e.dataSorter.currentSortingColumn===e.hypervisorSortData),d(1),w("matTooltip",B(8,13,"nodes.state-tooltip")),d(3),w("ngIf",e.dataSorter.currentSortingColumn===e.stateSortData),d(2),me(" ",B(13,15,"nodes.label")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.labelSortData),d(2),me(" ",B(17,17,"nodes.key")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.keySortData),d(1),w("ngIf",e.showDmsgInfo),d(1),w("ngIf",e.showDmsgInfo),d(2),w("ngForOf",e.dataSource)}}function VK(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"tables.label")))}function jK(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"tables.inverted-order")))}function zK(n,t){1&n&&(D(0,"div",62)(1,"mat-icon",67),I(2,"star"),C(),I(3,"\xa0 "),D(4,"span",68),I(5),R(6,"translate"),C()()),2&n&&(d(1),w("inline",!0),d(4),oe(B(6,2,"nodes.hypervisor")))}function UK(n,t){if(1&n){const e=tt();D(0,"div",63)(1,"span",9),I(2),R(3,"translate"),C(),I(4,": "),D(5,"app-labeled-element-text",69),ye("labelEdited",function(){return Pe(e),Oe(z(5).forceDataRefresh())}),C()()}if(2&n){const e=z().$implicit,i=z(4);d(2),oe(B(3,3,"nodes.dmsg-server")),d(3),Dn("id",e.dmsgServerPk),w("elementType",i.labeledElementTypes.DmsgServer)}}function WK(n,t){if(1&n&&(D(0,"div",62)(1,"span",9),I(2),R(3,"translate"),C(),I(4),R(5,"translate"),C()),2&n){const e=z().$implicit;d(2),oe(B(3,2,"nodes.ping")),d(2),me(": ",Pt(5,4,"common.time-in-ms",Ve(7,BI,e.roundTripPing))," ")}}const $K=function(n){return{"selectable click-effect":n}};function GK(n,t){if(1&n){const e=tt();D(0,"a",59)(1,"tr",60)(2,"td",60)(3,"div",55)(4,"div",56),j(5,zK,7,4,"div",61),D(6,"div",62)(7,"span",9),I(8),R(9,"translate"),C(),I(10,": "),D(11,"span"),I(12),R(13,"translate"),C()(),D(14,"div",62)(15,"span",9),I(16),R(17,"translate"),C(),I(18),C(),D(19,"div",63)(20,"span",9),I(21),R(22,"translate"),C(),I(23),C(),j(24,UK,6,5,"div",64),j(25,WK,6,9,"div",61),C(),xe(26,"div",65),D(27,"div",57)(28,"button",66),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.showOptionsDialog(a))}),R(29,"translate"),D(30,"mat-icon"),I(31),C()()()()()()()}if(2&n){const e=t.$implicit,i=z(4);w("ngClass",Ve(25,$K,e.online))("routerLink",e.online?Ve(27,HI,e.localPk):null),d(5),w("ngIf",e.isHypervisor),d(3),oe(B(9,15,"nodes.state")),d(3),fo(i.nodeStatusClass(e,!1)+" title"),d(1),oe(B(13,17,i.nodeStatusText(e,!1))),d(4),oe(B(17,19,"nodes.label")),d(2),me(": ",e.label," "),d(3),oe(B(22,21,"nodes.key")),d(2),me(": ",e.localPk," "),d(1),w("ngIf",i.showDmsgInfo),d(1),w("ngIf",i.showDmsgInfo),d(3),w("matTooltip",B(29,23,"common.options")),d(3),oe("add")}}function qK(n,t){if(1&n){const e=tt();D(0,"table",53)(1,"tr",54),ye("click",function(){return Pe(e),Oe(z(3).dataSorter.openSortingOrderModal())}),D(2,"td")(3,"div",55)(4,"div",56)(5,"div",9),I(6),R(7,"translate"),C(),D(8,"div"),I(9),R(10,"translate"),j(11,VK,3,3,"ng-container",24),j(12,jK,3,3,"ng-container",24),C()(),D(13,"div",57)(14,"mat-icon",42),I(15,"keyboard_arrow_down"),C()()()()(),j(16,GK,32,29,"a",58),C()}if(2&n){const e=z(3);d(6),oe(B(7,6,"tables.sorting-title")),d(3),me("",B(10,8,e.dataSorter.currentSortingColumn.label)," "),d(2),w("ngIf",e.dataSorter.currentlySortingByLabel),d(1),w("ngIf",e.dataSorter.sortingInReverseOrder),d(2),w("inline",!0),d(2),w("ngForOf",e.dataSource)}}function KK(n,t){if(1&n&&(D(0,"div",28)(1,"div",29),j(2,HK,23,19,"table",30),j(3,qK,17,10,"table",31),C()()),2&n){const e=z(2);d(2),w("ngIf",e.dataSource.length>0),d(1),w("ngIf",e.dataSource.length>0)}}function ZK(n,t){if(1&n&&xe(0,"app-paginator",27),2&n){const e=z(2);w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showDmsgInfo?Un(5,YI):Un(4,NI))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function XK(n,t){1&n&&(D(0,"span",73),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"nodes.empty")))}function QK(n,t){1&n&&(D(0,"span",73),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"nodes.empty-with-filter")))}function JK(n,t){if(1&n&&(D(0,"div",28)(1,"div",70)(2,"mat-icon",71),I(3,"warning"),C(),j(4,XK,3,3,"span",72),j(5,QK,3,3,"span",72),C()()),2&n){const e=z(2);d(2),w("inline",!0),d(2),w("ngIf",0===e.allNodes.length),d(1),w("ngIf",0!==e.allNodes.length)}}const eZ=function(n){return{"paginator-icons-fixer":n}};function tZ(n,t){if(1&n){const e=tt();D(0,"div",5)(1,"div",6)(2,"app-top-bar",7),ye("refreshRequested",function(){return Pe(e),Oe(z().forceDataRefresh(!0))})("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))}),C()(),D(3,"div",6)(4,"div",8)(5,"div",9),j(6,bK,5,4,"div",10),C(),D(7,"div",11)(8,"div",12),j(9,vK,3,4,"mat-icon",13),j(10,yK,2,1,"mat-icon",14),D(11,"mat-menu",15,16)(13,"div",17),ye("click",function(){return Pe(e),Oe(z().removeOffline())}),I(14),R(15,"translate"),C()()(),j(16,MK,1,6,"app-paginator",18),C()(),j(17,KK,4,2,"div",19),j(18,ZK,1,6,"app-paginator",18),j(19,JK,6,3,"div",19),C()()}if(2&n){const e=z();d(2),w("titleParts",Un(21,RI))("tabsData",e.tabsData)("selectedTabIndex",e.showDmsgInfo?1:0)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.options),d(2),w("ngClass",Ve(22,eZ,e.numberOfPages>1)),d(2),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),d(3),w("ngIf",e.allNodes&&e.allNodes.length>0),d(1),w("ngIf",e.dataSource.length>0),d(1),w("overlapTrigger",!1),d(2),Dn("disabled",!e.hasOfflineNodes),d(1),me(" ",B(15,19,"nodes.delete-all-offline")," "),d(2),w("ngIf",e.numberOfPages>1),d(1),w("ngIf",0!==e.dataSource.length),d(1),w("ngIf",e.numberOfPages>1),d(1),w("ngIf",0===e.dataSource.length)}}class vu{constructor(t,e,i,o,s,a,l,c,M,P,Y){this.nodeService=t,this.multipleNodeDataService=e,this.router=i,this.dialog=o,this.authService=s,this.storageService=a,this.ngZone=l,this.snackbarService=c,this.clipboardService=M,this.translateService=P,this.nodesListId="nl",this.dmsgListId="dl",this.hypervisorSortData=new Nn(["isHypervisor"],"nodes.hypervisor",Jt.Boolean),this.stateSortData=new Nn(["online"],"nodes.state",Jt.Boolean),this.labelSortData=new Nn(["label"],"nodes.label",Jt.Text),this.keySortData=new Nn(["localPk"],"nodes.key",Jt.Text),this.dmsgServerSortData=new Nn(["dmsgServerPk"],"nodes.dmsg-server",Jt.Text,["dmsgServerPk_label"]),this.pingSortData=new Nn(["roundTripPing"],"nodes.ping",Jt.Number),this.loading=!0,this.tabsData=[],this.options=[],this.showDmsgInfo=!1,this.canLogOut=!0,this.hasOfflineNodes=!1,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"nodes.filter-dialog.online",keyNameInElementsArray:"online",type:Zn.Select,printableLabelsForValues:[{value:"",label:"nodes.filter-dialog.online-options.any"},{value:"true",label:"nodes.filter-dialog.online-options.online"},{value:"false",label:"nodes.filter-dialog.online-options.offline"}]},{filterName:"nodes.filter-dialog.label",keyNameInElementsArray:"label",type:Zn.TextInput,maxlength:100},{filterName:"nodes.filter-dialog.key",keyNameInElementsArray:"localPk",type:Zn.TextInput,maxlength:66},{filterName:"nodes.filter-dialog.dmsg",keyNameInElementsArray:"dmsgServerPk",secondaryKeyNameInElementsArray:"dmsgServerPk_label",type:Zn.TextInput,maxlength:66}],this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.labeledElementTypes=yr,this.updateOptionsMenu(),this.authVerificationSubscription=this.authService.checkLogin().subscribe(te=>{this.canLogOut=te!==Es.AuthDisabled,this.updateOptionsMenu()}),this.showDmsgInfo=-1!==this.router.url.indexOf("dmsg"),this.showDmsgInfo||this.filterProperties.splice(this.filterProperties.length-1);const q=[this.hypervisorSortData,this.stateSortData,this.labelSortData,this.keySortData];this.showDmsgInfo&&(q.push(this.dmsgServerSortData),q.push(this.pingSortData)),this.dataSorter=new pu(this.dialog,this.translateService,this.storageService,q,3,this.showDmsgInfo?this.dmsgListId:this.nodesListId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new mu(this.dialog,Y,this.router,this.filterProperties,this.showDmsgInfo?this.dmsgListId:this.nodesListId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(te=>{this.filteredNodes=te,this.hasOfflineNodes=!1,this.filteredNodes.forEach(fe=>{fe.online||(this.hasOfflineNodes=!0)}),this.dataSorter.setData(this.filteredNodes)}),this.navigationsSubscription=Y.paramMap.subscribe(te=>{if(te.has("page")){let fe=Number.parseInt(te.get("page"),10);(isNaN(fe)||fe<1)&&(fe=1),this.currentPageInUrl=fe,this.recalculateElementsToShow()}}),this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"language",label:"nodes.dmsg-title",linkParts:["/nodes","dmsg"]},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.multipleNodeDataService.forceRefresh()})}updateOptionsMenu(){this.options=[],this.options.push({name:"nodes.modify-rewards-all",actionName:"modifyRewardsAll",icon:"edit"}),this.canLogOut&&this.options.push({name:"common.logout",actionName:"logout",icon:"power_settings_new"})}ngOnInit(){this.startGettingData(),this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=Z_(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))})}ngOnDestroy(){this.authVerificationSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.languageSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}performAction(t){"logout"===t?this.logout():"updateAll"===t?this.updateAll():"modifyRewardsAll"===t&&this.changeRewardsToAll()}nodeStatusClass(t,e){return t.online?t.health&&t.health.servicesHealth===ss.Unhealthy?e?"dot-yellow blinking":"yellow-text":t.health&&t.health.servicesHealth===ss.Healthy?e?"dot-green":"green-text":e?"dot-outline-gray":"":e?"dot-red":"red-text"}nodeStatusText(t,e){return t.online?t.health&&t.health.servicesHealth===ss.Healthy?"node.statuses.online"+(e?"-tooltip":""):t.health&&t.health.servicesHealth===ss.Unhealthy?"node.statuses.partially-online"+(e?"-tooltip":""):t.health&&t.health.servicesHealth===ss.Connecting?"node.statuses.connecting"+(e?"-tooltip":""):"node.statuses.unknown"+(e?"-tooltip":""):"node.statuses.offline"+(e?"-tooltip":"")}forceDataRefresh(t=!1){t&&(this.lastUpdateRequestedManually=!0),this.multipleNodeDataService.forceRefresh()}startGettingData(){this.ngZone.runOutsideAngular(()=>{this.dataSubscription=this.multipleNodeDataService.startRequestingData().subscribe(t=>{this.ngZone.run(()=>{this.updating=!t||t.updating,t&&!t.updating&&(t.data&&!t.error?(this.allNodes=t.data,this.showDmsgInfo&&this.allNodes.forEach(e=>{e.dmsgServerPk_label=Or.getCompleteLabel(this.storageService,this.translateService,e.dmsgServerPk)}),this.dataFilterer.setData(this.allNodes),this.loading=!1,this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=t.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-t.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)):t.error&&(this.errorsUpdating||this.snackbarService.showError(this.loading?"common.loading-error":"nodes.error-load",null,!0,t.error),this.errorsUpdating=!0))})})})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredNodes){const t=Ht.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredNodes.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.nodesToShow=this.filteredNodes.slice(e,e+t)}else this.nodesToShow=null;this.nodesToShow&&(this.dataSource=this.nodesToShow)}logout(){const t=Wt.createConfirmationDialog(this.dialog,"common.logout-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}updateAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-update");const t=[],e=[];this.dataSource.forEach(i=>{if(i.online){const o={key:i.localPk,label:i.label,version:i.version,tag:i.buildTag};Wt.checkIfTagIsUpdatable(i.buildTag)?t.push(o):e.push(o)}}),cc.openDialog(this.dialog,t,e)}changeRewardsToAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-modify");const t=[];this.dataSource.forEach(i=>{i.online&&t.push({key:i.localPk,label:i.label})}),dc.openDialog(this.dialog,{nodes:t})}recursivelyUpdateWallets(t,e,i=0){return this.nodeService.update(t[t.length-1]).pipe(Jr(()=>We(null)),Ne(o=>(o&&o.updated&&!o.error?this.snackbarService.showDone(this.translateService.instant("nodes.update.done",{name:e[e.length-1]})):(this.snackbarService.showError(this.translateService.instant("nodes.update.update-error",{name:e[e.length-1]})),i+=1),t.pop(),e.pop(),t.length>=1?this.recursivelyUpdateWallets(t,e,i):We(i))))}showOptionsDialog(t){const e=[{icon:"filter_none",label:"nodes.copy-key"}];this.showDmsgInfo&&e.push({icon:"filter_none",label:"nodes.copy-dmsg"}),e.push({icon:"short_text",label:"labeled-element.edit-label"}),t.online||e.push({icon:"close",label:"nodes.delete-node"}),$i.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{1===i?this.copySpecificTextToClipboard(t.localPk):this.showDmsgInfo?2===i?this.copySpecificTextToClipboard(t.dmsgServerPk):3===i?this.showEditLabelDialog(t):4===i&&this.deleteNode(t):2===i?this.showEditLabelDialog(t):3===i&&this.deleteNode(t)})}copyToClipboard(t){this.showDmsgInfo?$i.openDialog(this.dialog,[{icon:"filter_none",label:"nodes.key"},{icon:"filter_none",label:"nodes.dmsg-server"}],"common.options").afterClosed().subscribe(i=>{1===i?this.copySpecificTextToClipboard(t.localPk):2===i&&this.copySpecificTextToClipboard(t.dmsgServerPk)}):this.copySpecificTextToClipboard(t.localPk)}copySpecificTextToClipboard(t){this.clipboardService.copy(t)&&this.snackbarService.showDone("copy.copied")}showEditLabelDialog(t){let e=this.storageService.getLabelInfo(t.localPk);e||(e={id:t.localPk,label:"",identifiedElementType:yr.Node}),fa.openDialog(this.dialog,e).afterClosed().subscribe(i=>{i&&this.forceDataRefresh()})}deleteNode(t){const e=Wt.createConfirmationDialog(this.dialog,"nodes.delete-node-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.storageService.setLocalNodesAsHidden([t.localPk],[t.ip]),this.forceDataRefresh(),this.snackbarService.showDone("nodes.deleted")})}removeOffline(){let t="nodes.delete-all-offline-confirmation";this.dataFilterer.currentFiltersTexts&&this.dataFilterer.currentFiltersTexts.length>0&&(t="nodes.delete-all-filtered-offline-confirmation");const e=Wt.createConfirmationDialog(this.dialog,t);e.componentInstance.operationAccepted.subscribe(()=>{e.close();const i=[],o=[];this.filteredNodes.forEach(s=>{s.online||(i.push(s.localPk),o.push(s.ip))}),i.length>0&&(this.storageService.setLocalNodesAsHidden(i,o),this.forceDataRefresh(),1===i.length?this.snackbarService.showDone("nodes.deleted-singular"):this.snackbarService.showDone("nodes.deleted-plural",{number:i.length}))})}}vu.\u0275fac=function(t){return new(t||vu)(F(Mo),F(_u),F(Xt),F(Fn),F(Is),F(ti),F(pt),F(cn),F(Os),F(no),F(vr))},vu.\u0275cmp=qe({type:vu,selectors:[["app-node-list"]],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"h-100"],[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","refreshRequested","optionSelected"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow","full-node-list-margins"],["class","responsive-table-translucid d-none d-md-table","cellspacing","0","cellpadding","0",4,"ngIf"],["class","responsive-table-translucid d-md-none nowrap","cellspacing","0","cellpadding","0",4,"ngIf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"sortable-column","small-column",3,"matTooltip","click"],[1,"hypervisor-icon","grey-text"],[3,"inline",4,"ngIf"],[1,"dot-outline-gray"],[1,"sortable-column","labels",3,"click"],[1,"sortable-column",3,"click"],["class","sortable-column",3,"click",4,"ngIf"],[1,"actions"],["class","selectable link-row",3,"ngClass","routerLink",4,"ngFor","ngForOf"],[3,"inline"],[1,"selectable","link-row",3,"ngClass","routerLink"],["class","hypervisor-icon",3,"inline","matTooltip",4,"ngIf"],[3,"matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip","click"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip",4,"ngIf"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip","click",4,"ngIf"],[1,"hypervisor-icon",3,"inline","matTooltip"],["shortTextLength","4",3,"short","id","elementType","labelEdited",4,"ngIf"],["shortTextLength","4",3,"short","id","elementType","labelEdited"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none","nowrap"],[1,"selectable","click-effect",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],["class","link-row",3,"ngClass","routerLink",4,"ngFor","ngForOf"],[1,"link-row",3,"ngClass","routerLink"],[1,"d-block"],["class","list-row",4,"ngIf"],[1,"list-row"],[1,"list-row","long-content"],["class","list-row long-content",4,"ngIf"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[1,"hypervisor-icon",3,"inline"],[1,"yellow-clear-text","title"],[3,"id","elementType","labelEdited"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(j(0,pK,4,5,"div",0),j(1,tZ,20,24,"div",1)),2&t&&(w("ngIf",e.loading),d(1),w("ngIf",!e.loading))},dependencies:[On,Ci,Ot,Qa,Wr,il,Cn,gi,gu,ma,bu,io,As,as,Or,Ct],styles:[".labels[_ngcontent-%COMP%]{width:15%}.actions[_ngcontent-%COMP%]{text-align:right;width:120px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.hypervisor-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;position:relative;top:2px;margin-left:2px;color:#d48b05}.small-column[_ngcontent-%COMP%]{width:1px}.non-selectable[_ngcontent-%COMP%]{cursor:not-allowed}"]});class VI{constructor(t,e){this.canBeUpdated=!1,this.canBeRestarted=!1,this.canOpenTerminal=!1,this.options=[],this.dialog=t.get(Fn),this.router=t.get(Xt),this.snackbarService=t.get(cn),this.nodeService=t.get(Mo),this.storageService=t.get(ti),this.showingFullList=e,this.returnButtonText=e?"node.title":"nodes.title",this.updateOptions()}updateOptions(){this.options=[],this.canOpenTerminal&&this.options.push({name:"actions.menu.terminal",actionName:"terminal",icon:"laptop"}),this.options.push({name:"actions.menu.logs",actionName:"logs",icon:"subject"}),this.canBeRestarted&&this.options.push({name:"actions.menu.reboot",actionName:"reboot",icon:"rotate_right"})}setCurrentNode(t){this.currentNode=t,Wt.checkIfTagIsUpdatable(t.buildTag)?(this.canBeUpdated=!0,this.canBeRestarted=!0):(this.canBeUpdated=!1,this.canBeRestarted=!1),this.canOpenTerminal=Wt.checkIfTagCanOpenterminal(t.buildTag),this.updateOptions()}setCurrentNodeKey(t){this.currentNodeKey=t}performAction(t,e){"terminal"===t?this.terminal():"update"===t?this.update():"logs"===t?window.open(window.location.origin+"/api/visors/"+e+"/runtime-logs","_blank"):"reboot"===t?this.reboot():null===t&&this.back()}dispose(){this.rebootSubscription&&this.rebootSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe()}reboot(){const t=Wt.createConfirmationDialog(this.dialog,"actions.reboot.confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing(),this.rebootSubscription=this.nodeService.reboot(this.currentNodeKey).subscribe(()=>{this.snackbarService.showDone("actions.reboot.done"),t.close()},e=>{e=Qt(e),t.componentInstance.showDone("confirmation.error-header-text",e.translatableErrorMsg)})})}update(){const t=Wt.createConfirmationDialog(this.dialog,"actions.update.confirmation");t.componentInstance.operationAccepted.subscribe(()=>{const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+this.currentNodeKey+"?commands=update","_blank","noopener noreferrer"),t.close()})}terminal(){const t=window.location.protocol,e=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(t+"//"+e+"/pty/"+this.currentNodeKey,"_blank","noopener noreferrer")}back(){this.router.navigate(this.showingFullList?["nodes",this.currentNodeKey]:["nodes"])}}class nZ{constructor(){this.trafficData=new iZ}}class iZ{constructor(){this.totalSent=0,this.totalReceived=0,this.sentHistory=[],this.receivedHistory=[]}}class rZ{constructor(){this.lastEmitedData=new nZ,this.dataSubject=new Er(null),this.whenUpdateWasScheduled=0,this.stopRequestedDate=-1}}class yu{constructor(t,e){this.storageService=t,this.nodeService=e,this.maxTrafficHistorySlots=10,this.expirationTime=6e4,this.nodesMap=new Map,this.storageService.getRefreshTimeObservable().subscribe(i=>{this.dataRefreshDelay=1e3*i,this.nodesMap.forEach(o=>{this.forceSpecificNodeRefresh(o.pk)})}),this.checkForExpired()}checkForExpired(){We(1).pipe(Ai(5e3)).subscribe(()=>{try{this.nodesMap.forEach(t=>{this.finishIfExpired(t)})}catch{}this.checkForExpired()})}startRequestingData(t){let e=this.nodesMap.get(t);return e?e.stopRequestedDate=-1:(e=new rZ,e.pk=t,this.nodesMap.set(t,e),this.startDataSubscription(0,e)),e.dataSubject.asObservable()}stopRequestingSpecificNode(t){const e=this.nodesMap.get(t);e&&(e.stopRequestedDate=Date.now())}startDataSubscription(t,e){e.updateSubscription&&e.updateSubscription.unsubscribe(),e.updateSubscription=We(1).pipe(Ai(t),ui(()=>{e.lastEmitedData.updating=!0,e.dataSubject.next(e.lastEmitedData)}),Ai(120),Ne(()=>this.nodeService.getNode(e.pk))).subscribe(i=>{this.updateTrafficData(i.transports,e.lastEmitedData.trafficData,e.whenUpdateWasScheduled);let o=this.calculateRemainingTime(e.whenUpdateWasScheduled);o<1e3&&(e.whenUpdateWasScheduled=Date.now(),o=this.dataRefreshDelay),e.lastEmitedData={data:i,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1,trafficData:e.lastEmitedData.trafficData},e.dataSubject.next(e.lastEmitedData),this.startDataSubscription(o,e)},i=>{i=Qt(i),e.lastEmitedData={data:e.lastEmitedData.data,error:i,momentOfLastCorrectUpdate:e.lastEmitedData.momentOfLastCorrectUpdate,updating:!1,trafficData:e.lastEmitedData.trafficData},e.dataSubject.next(e.lastEmitedData),i.originalError&&400===i.originalError.status?(e.dataSubject.complete(),e.updateSubscription.unsubscribe(),this.nodesMap.delete(e.pk)):this.startDataSubscription(Ht.connectionRetryDelay,e)})}calculateRemainingTime(t){if(t<1)return 0;let e=this.dataRefreshDelay-(Date.now()-t);return e<0&&(e=0),e}updateTrafficData(t,e,i){if(e.totalSent=0,e.totalReceived=0,t&&t.length>0&&(e.totalSent=t.reduce((o,s)=>o+s.sent,0),e.totalReceived=t.reduce((o,s)=>o+s.recv,0)),0===e.sentHistory.length)for(let o=0;othis.maxTrafficHistorySlots&&(s=this.maxTrafficHistorySlots),0===s)e.sentHistory[e.sentHistory.length-1]=e.totalSent,e.receivedHistory[e.receivedHistory.length-1]=e.totalReceived;else for(let a=0;athis.maxTrafficHistorySlots&&(e.sentHistory.splice(0,e.sentHistory.length-this.maxTrafficHistorySlots),e.receivedHistory.splice(0,e.receivedHistory.length-this.maxTrafficHistorySlots))}}forceSpecificNodeRefresh(t){const e=this.nodesMap.get(t);e&&this.startDataSubscription(0,e)}finishIfExpired(t){t.stopRequestedDate>0&&Date.now()-t.stopRequestedDate>this.expirationTime&&(t.dataSubject.complete(),t.updateSubscription.unsubscribe(),this.nodesMap.delete(t.pk))}}function oZ(n,t){1&n&&xe(0,"app-loading-indicator")}function sZ(n,t){1&n&&(D(0,"div",6)(1,"div")(2,"mat-icon",7),I(3,"error"),C(),I(4),R(5,"translate"),C()()),2&n&&(d(2),w("inline",!0),d(2),me(" ",B(5,2,"node.not-found")," "))}function aZ(n,t){if(1&n){const e=tt();D(0,"div",2)(1,"div")(2,"app-top-bar",3),ye("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))}),C()(),j(3,oZ,1,0,"app-loading-indicator",4),j(4,sZ,6,4,"div",5),C()}if(2&n){const e=z();d(2),w("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("showUpdateButton",!1)("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),d(1),w("ngIf",!e.notFound),d(1),w("ngIf",e.notFound)}}function lZ(n,t){if(1&n&&xe(0,"app-node-info-content",15),2&n){const e=z(2);w("nodeInfo",e.node)("trafficData",e.trafficData)}}yu.\u0275fac=function(t){return new(t||yu)(we(ti),we(Mo))},yu.\u0275prov=Ye({token:yu,factory:yu.\u0275fac,providedIn:"root"});const cZ=function(n,t){return{"main-area":n,"full-size-main-area":t}},dZ=function(n){return{"d-none":n}};function uZ(n,t){if(1&n){const e=tt();D(0,"div",8)(1,"div",9)(2,"app-top-bar",10),ye("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))})("refreshRequested",function(){return Pe(e),Oe(z().forceDataRefresh(!0))}),C()(),D(3,"div",9)(4,"div",11)(5,"div",12),xe(6,"router-outlet"),C()(),D(7,"div",13),j(8,lZ,1,2,"app-node-info-content",14),C()()()}if(2&n){const e=z();d(2),w("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),d(2),w("ngClass",ln(12,cZ,!e.showingInfo&&!e.showingFullList,e.showingInfo||e.showingFullList)),d(3),w("ngClass",Ve(15,dZ,e.showingInfo||e.showingFullList)),d(1),w("ngIf",!e.showingInfo&&!e.showingFullList)}}class Je{constructor(t,e,i,o,s,a,l){this.storageService=t,this.singleNodeDataService=e,this.route=i,this.ngZone=o,this.snackbarService=s,this.injector=a,this.notFound=!1,this.titleParts=[],this.tabsData=[],this.selectedTabIndex=-1,this.showingInfo=!1,this.showingFullList=!1,this.initialRouteEventFired=!1,this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,Je.nodeSubject=new Yo(1),Je.trafficDataSubject=new Yo(1),Je.currentInstanceInternal=this,this.navigationsSubscription=l.events.subscribe(c=>{c.urlAfterRedirects&&(this.lastUrl=c.urlAfterRedirects,this.processRouteUpdate(),this.initialRouteEventFired=!0)})}static refreshCurrentDisplayedData(){Je.currentInstanceInternal&&Je.currentInstanceInternal.forceDataRefresh(!1)}static getCurrentNodeKey(){return Je.currentNodeKey}static get currentNode(){return Je.nodeSubject.asObservable()}static get currentTrafficData(){return Je.trafficDataSubject.asObservable()}ngOnInit(){this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=Z_(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),this.initSubscription=We(0).pipe(Ai(500)).subscribe(()=>{this.initialRouteEventFired||(this.lastUrl=window.location.href,this.processRouteUpdate())})}processRouteUpdate(){Je.currentNodeKey=this.route.snapshot.params.key,this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNodeKey(Je.currentNodeKey),this.updateTabBar(),this.navigationsSubscription.unsubscribe(),this.startGettingData()}updateTabBar(){if(this.lastUrl&&(this.lastUrl.includes("/info")||this.lastUrl.includes("/routing")||this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")))this.titleParts=["nodes.title","node.title"],this.tabsData=[{icon:"info",label:"node.tabs.info",onlyIfLessThanLg:!0,linkParts:Je.currentNodeKey?["/nodes",Je.currentNodeKey,"info"]:null},{icon:"shuffle",label:"node.tabs.routing",linkParts:Je.currentNodeKey?["/nodes",Je.currentNodeKey,"routing"]:null},{icon:"apps",label:"node.tabs.apps",linkParts:Je.currentNodeKey?["/nodes",Je.currentNodeKey,"apps"]:null}],this.selectedTabIndex=1,this.showingInfo=!1,this.lastUrl.includes("/info")&&(this.selectedTabIndex=0,this.showingInfo=!0),this.lastUrl.includes("/apps")&&(this.selectedTabIndex=2),this.showingFullList=!1,this.nodeActionsHelper=new VI(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(Je.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);else if(this.lastUrl&&(this.lastUrl.includes("/transports")||this.lastUrl.includes("/routes")||this.lastUrl.includes("/apps-list"))){this.showingFullList=!0,this.showingInfo=!1,this.nodeActionsHelper=new VI(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(Je.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);let t="transports";this.lastUrl.includes("/routes")?t="routes":this.lastUrl.includes("/apps-list")&&(t="apps.apps-list"),this.titleParts=["nodes.title","node.title",t+".title"],this.tabsData=[{icon:"view_headline",label:t+".list-title",linkParts:[]}],this.selectedTabIndex=0}else this.titleParts=[],this.tabsData=[]}performAction(t){this.nodeActionsHelper.performAction(t,Je.currentNodeKey)}forceDataRefresh(t=!1){t&&(this.lastUpdateRequestedManually=!0),this.singleNodeDataService.forceSpecificNodeRefresh(Je.currentNodeKey)}startGettingData(){this.ngZone.runOutsideAngular(()=>{this.dataSubscription=this.singleNodeDataService.startRequestingData(Je.currentNodeKey).subscribe(t=>{this.ngZone.run(()=>{if(this.updating=!t||t.updating,t&&!t.updating)if(t.data&&!t.error)this.node=t.data,this.trafficData=t.trafficData,Je.nodeSubject.next(this.node),Je.trafficDataSubject.next(this.trafficData),this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNode(this.node),this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=t.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-t.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1);else if(t.error){if(t.error.originalError&&400===t.error.originalError.status)return void(this.notFound=!0);this.errorsUpdating||this.snackbarService.showError(this.node?"node.error-load":"common.loading-error",null,!0,t.error),this.errorsUpdating=!0}})})})}ngOnDestroy(){this.singleNodeDataService.stopRequestingSpecificNode(Je.currentNodeKey),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.initSubscription.unsubscribe(),Je.currentInstanceInternal=void 0,Je.currentNodeKey=void 0,Je.nodeSubject.complete(),Je.nodeSubject=void 0,Je.trafficDataSubject.complete(),Je.trafficDataSubject=void 0,this.nodeActionsHelper.dispose()}}function hZ(n,t){if(1&n&&(D(0,"mat-option",10),I(1),R(2,"translate"),C()),2&n){const e=t.$implicit;Dn("value",e),d(1),po(" ",e," ",B(2,3,"settings.seconds")," ")}}Je.\u0275fac=function(t){return new(t||Je)(F(ti),F(yu),F(vr),F(pt),F(cn),F(mi),F(Xt))},Je.\u0275cmp=qe({type:Je,selectors:[["app-node"]],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","returnText","optionSelected"],[4,"ngIf"],["class","w-100 h-100 d-flex not-found-label",4,"ngIf"],[1,"w-100","h-100","d-flex","not-found-label"],[3,"inline"],[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","returnText","optionSelected","refreshRequested"],[3,"ngClass"],[1,"d-flex","flex-column","h-100"],[1,"right-bar",3,"ngClass"],[3,"nodeInfo","trafficData",4,"ngIf"],[3,"nodeInfo","trafficData"]],template:function(t,e){1&t&&(j(0,aZ,5,8,"div",0),j(1,uZ,9,17,"div",1)),2&t&&(w("ngIf",!e.node),d(1),w("ngIf",e.node))},styles:[".not-found-label[_ngcontent-%COMP%]{align-items:center;justify-content:center;font-size:1rem;position:relative}.not-found-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;font-size:22px;opacity:.5;margin-right:3px}.full-size-main-area[_ngcontent-%COMP%], .main-area[_ngcontent-%COMP%]{width:100%}@media (min-width: 992px){.main-area[_ngcontent-%COMP%]{width:73%;padding-right:20px;float:left}}.right-bar[_ngcontent-%COMP%]{width:27%;float:right;display:none}@media (min-width: 992px){.right-bar[_ngcontent-%COMP%]{display:block;width:27%;float:right}}"]});class ep{constructor(t,e,i){this.formBuilder=t,this.storageService=e,this.snackbarService=i,this.timesList=["3","5","10","15","30","60","90","150","300"]}ngOnInit(){this.form=this.formBuilder.group({refreshRate:[this.storageService.getRefreshTime().toString()]}),this.subscription=this.form.get("refreshRate").valueChanges.subscribe(t=>{this.storageService.setRefreshTime(t),this.snackbarService.showDone("settings.refresh-rate-confirmation")})}ngOnDestroy(){this.subscription.unsubscribe()}}ep.\u0275fac=function(t){return new(t||ep)(F(xr),F(ti),F(cn))},ep.\u0275cmp=qe({type:ep,selectors:[["app-refresh-rate"]],decls:14,vars:9,consts:[[1,"rounded-elevated-box"],[1,"box-internal-container","overflow"],[1,"white-form-help-icon-container"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","refreshRate"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon",3),R(4,"translate"),I(5," help "),C()(),D(6,"form",4)(7,"mat-form-field",5)(8,"div",6)(9,"label",7),I(10),R(11,"translate"),C(),D(12,"mat-select",8),j(13,hZ,3,5,"mat-option",9),C()()()()()()),2&t&&(d(3),w("inline",!0)("matTooltip",B(4,5,"settings.refresh-rate-help")),d(3),w("formGroup",e.form),d(4),oe(B(11,7,"settings.refresh-rate")),d(3),w("ngForOf",e.timesList))},dependencies:[Ci,Yi,Ri,Ni,ni,Di,tr,Cn,gi,Zf,nu,Ct],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}mat-form-field[_ngcontent-%COMP%] .mat-mdc-form-field-bottom-align{margin-bottom:0!important}"]});const fZ=function(n){return{number:n}};class ul{constructor(){this.numberOfElements=0,this.linkParts=[""],this.queryParams={}}}function pZ(n,t){1&n&&(D(0,"span",14),I(1),R(2,"translate"),D(3,"mat-icon",15),R(4,"translate"),I(5,"help"),C()()),2&n&&(d(1),me(" ",B(2,3,"labels.title")," "),d(2),w("inline",!0)("matTooltip",B(4,5,"labels.info")))}function mZ(n,t){if(1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n){const e=z().$implicit;d(1),oe(B(2,1,e.translatableValue))}}function _Z(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z().$implicit;d(1),oe(e.value)}}function gZ(n,t){if(1&n&&(D(0,"div",19)(1,"span"),I(2),R(3,"translate"),C(),j(4,mZ,3,3,"ng-container",20),j(5,_Z,2,1,"ng-container",20),C()),2&n){const e=t.$implicit;d(2),me("",B(3,3,e.filterName),": "),d(2),w("ngIf",e.translatableValue),d(1),w("ngIf",e.value)}}function bZ(n,t){if(1&n){const e=tt();D(0,"div",16),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),j(1,gZ,6,5,"div",17),D(2,"div",18),I(3),R(4,"translate"),C()()}if(2&n){const e=z();d(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),d(2),oe(B(4,2,"filters.press-to-remove"))}}function vZ(n,t){if(1&n){const e=tt();D(0,"mat-icon",21),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&n&&w("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function yZ(n,t){if(1&n&&(D(0,"mat-icon",22),I(1,"more_horiz"),C()),2&n){z();const e=li(9);w("inline",!0)("matMenuTriggerFor",e)}}ul.\u0275fac=function(t){return new(t||ul)},ul.\u0275cmp=qe({type:ul,selectors:[["app-view-all-link"]],inputs:{numberOfElements:"numberOfElements",linkParts:"linkParts",queryParams:"queryParams"},decls:6,vars:9,consts:[[1,"main-container"],[3,"routerLink","queryParams"],[3,"inline"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"a",1),I(2),R(3,"translate"),D(4,"mat-icon",2),I(5,"chevron_right"),C()()()),2&t&&(d(1),w("routerLink",e.linkParts)("queryParams",e.queryParams),d(1),me(" ",Pt(3,4,"view-all-link.label",Ve(7,fZ,e.numberOfElements))," "),d(2),w("inline",!0))},dependencies:[Qa,Cn,Ct],styles:[".main-container[_ngcontent-%COMP%]{padding-top:20px;margin-bottom:4px;text-align:right;font-size:.875rem}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.main-container[_ngcontent-%COMP%]{margin:0;padding:16px}}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}"]});const Q1=function(){return["/settings","labels"]};function MZ(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Un(4,Q1))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function wZ(n,t){if(1&n&&(D(0,"mat-icon",36),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function xZ(n,t){if(1&n&&(D(0,"mat-icon",36),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function CZ(n,t){if(1&n&&(D(0,"mat-icon",36),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function kZ(n,t){if(1&n){const e=tt();D(0,"tr")(1,"td",38)(2,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),I(4),C(),D(5,"td"),I(6),C(),D(7,"td"),I(8),R(9,"translate"),C(),D(10,"td",29)(11,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).delete(s.id))}),R(12,"translate"),D(13,"mat-icon",36),I(14,"close"),C()()()()}if(2&n){const e=t.$implicit,i=z(2);d(2),w("checked",i.selections.get(e.id)),d(2),me(" ",e.label," "),d(2),me(" ",e.id," "),d(2),po(" ",i.getLabelTypeIdentification(e)[0]," - ",B(9,7,i.getLabelTypeIdentification(e)[1])," "),d(3),w("matTooltip",B(12,9,"labels.delete")),d(2),w("inline",!0)}}function SZ(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"tables.label")))}function DZ(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"tables.inverted-order")))}function TZ(n,t){if(1&n){const e=tt();D(0,"tr")(1,"td")(2,"div",33)(3,"div",41)(4,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",34)(6,"div",42)(7,"span",1),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",43)(12,"span",1),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",42)(17,"span",1),I(18),R(19,"translate"),C(),I(20),R(21,"translate"),C()(),xe(22,"div",44),D(23,"div",35)(24,"button",45),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(25,"translate"),D(26,"mat-icon"),I(27),C()()()()()()}if(2&n){const e=t.$implicit,i=z(2);d(4),w("checked",i.selections.get(e.id)),d(4),oe(B(9,10,"labels.label")),d(2),me(": ",e.label," "),d(3),oe(B(14,12,"labels.id")),d(2),me(": ",e.id," "),d(3),oe(B(19,14,"labels.type")),d(2),po(": ",i.getLabelTypeIdentification(e)[0]," - ",B(21,16,i.getLabelTypeIdentification(e)[1])," "),d(4),w("matTooltip",B(25,18,"common.options")),d(3),oe("add")}}function LZ(n,t){if(1&n&&xe(0,"app-view-all-link",46),2&n){const e=z(2);w("numberOfElements",e.filteredLabels.length)("linkParts",Un(3,Q1))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const EZ=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},IZ=function(n){return{"d-lg-none d-xl-table":n}},PZ=function(n){return{"d-lg-table d-xl-none":n}};function OZ(n,t){if(1&n){const e=tt();D(0,"div",24)(1,"div",25)(2,"table",26)(3,"tr"),xe(4,"th"),D(5,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.labelSortData))}),I(6),R(7,"translate"),j(8,wZ,2,2,"mat-icon",28),C(),D(9,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.idSortData))}),I(10),R(11,"translate"),j(12,xZ,2,2,"mat-icon",28),C(),D(13,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),I(14),R(15,"translate"),j(16,CZ,2,2,"mat-icon",28),C(),xe(17,"th",29),C(),j(18,kZ,15,11,"tr",30),C(),D(19,"table",31)(20,"tr",32),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(21,"td")(22,"div",33)(23,"div",34)(24,"div",1),I(25),R(26,"translate"),C(),D(27,"div"),I(28),R(29,"translate"),j(30,SZ,3,3,"ng-container",20),j(31,DZ,3,3,"ng-container",20),C()(),D(32,"div",35)(33,"mat-icon",36),I(34,"keyboard_arrow_down"),C()()()()(),j(35,TZ,28,20,"tr",30),C(),j(36,LZ,1,4,"app-view-all-link",37),C()()}if(2&n){const e=z();d(1),w("ngClass",ln(27,EZ,e.showShortList_,!e.showShortList_)),d(1),w("ngClass",Ve(30,IZ,e.showShortList_)),d(4),me(" ",B(7,17,"labels.label")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.labelSortData),d(2),me(" ",B(11,19,"labels.id")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.idSortData),d(2),me(" ",B(15,21,"labels.type")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),d(2),w("ngForOf",e.dataSource),d(1),w("ngClass",Ve(32,PZ,e.showShortList_)),d(6),oe(B(26,23,"tables.sorting-title")),d(3),me("",B(29,25,e.dataSorter.currentSortingColumn.label)," "),d(2),w("ngIf",e.dataSorter.currentlySortingByLabel),d(1),w("ngIf",e.dataSorter.sortingInReverseOrder),d(2),w("inline",!0),d(2),w("ngForOf",e.dataSource),d(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function AZ(n,t){1&n&&(D(0,"span",50),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"labels.empty")))}function FZ(n,t){1&n&&(D(0,"span",50),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"labels.empty-with-filter")))}function RZ(n,t){if(1&n&&(D(0,"div",24)(1,"div",47)(2,"mat-icon",48),I(3,"warning"),C(),j(4,AZ,3,3,"span",49),j(5,FZ,3,3,"span",49),C()()),2&n){const e=z();d(2),w("inline",!0),d(2),w("ngIf",0===e.allLabels.length),d(1),w("ngIf",0!==e.allLabels.length)}}function NZ(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Un(4,Q1))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const YZ=function(n){return{"paginator-icons-fixer":n}};class Mu{constructor(t,e,i,o,s,a){this.dialog=t,this.route=e,this.router=i,this.snackbarService=o,this.translateService=s,this.storageService=a,this.listId="ll",this.labelSortData=new Nn(["label"],"labels.label",Jt.Text),this.idSortData=new Nn(["id"],"labels.id",Jt.Text),this.typeSortData=new Nn(["identifiedElementType_sort"],"labels.type",Jt.Text),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"labels.filter-dialog.label",keyNameInElementsArray:"label",type:Zn.TextInput,maxlength:100},{filterName:"labels.filter-dialog.id",keyNameInElementsArray:"id",type:Zn.TextInput,maxlength:66},{filterName:"labels.filter-dialog.type",keyNameInElementsArray:"identifiedElementType",type:Zn.Select,printableLabelsForValues:[{value:"",label:"labels.filter-dialog.type-options.any"},{value:yr.Node,label:"labels.filter-dialog.type-options.visor"},{value:yr.DmsgServer,label:"labels.filter-dialog.type-options.dmsg-server"},{value:yr.Transport,label:"labels.filter-dialog.type-options.transport"}]}],this.dataSorter=new pu(this.dialog,this.translateService,this.storageService,[this.labelSortData,this.idSortData,this.typeSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new mu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(c=>{this.filteredLabels=c,this.dataSorter.setData(this.filteredLabels)}),this.loadData(),this.navigationsSubscription=this.route.paramMap.subscribe(c=>{if(c.has("page")){let M=Number.parseInt(c.get("page"),10);(isNaN(M)||M<1)&&(M=1),this.currentPageInUrl=M,this.recalculateElementsToShow()}})}set showShortList(t){this.showShortList_=t,this.dataSorter.setData(this.filteredLabels)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}loadData(){this.allLabels=this.storageService.getSavedLabels(),this.allLabels.forEach(t=>{t.identifiedElementType_sort=this.getLabelTypeIdentification(t)[0]}),this.dataFilterer.setData(this.allLabels)}getLabelTypeIdentification(t){return t.identifiedElementType===yr.Node?["1","labels.filter-dialog.type-options.visor"]:t.identifiedElementType===yr.DmsgServer?["2","labels.filter-dialog.type-options.dmsg-server"]:t.identifiedElementType===yr.Transport?["3","labels.filter-dialog.type-options.transport"]:void 0}changeSelection(t){this.selections.get(t.id)?this.selections.set(t.id,!1):this.selections.set(t.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let t=!1;return this.selections.forEach(e=>{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}deleteSelected(){const t=Wt.createConfirmationDialog(this.dialog,"labels.delete-selected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.close(),this.selections.forEach((e,i)=>{e&&this.storageService.saveLabel(i,"",null)}),this.snackbarService.showDone("labels.deleted"),this.loadData()})}showOptionsDialog(t){$i.openDialog(this.dialog,[{icon:"close",label:"labels.delete"}],"common.options").afterClosed().subscribe(i=>{1===i&&this.delete(t.id)})}delete(t){const e=Wt.createConfirmationDialog(this.dialog,"labels.delete-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.storageService.saveLabel(t,"",null),this.snackbarService.showDone("labels.deleted"),this.loadData()})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredLabels){const t=this.showShortList_?Ht.maxShortListElements:Ht.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredLabels.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.labelsToShow=this.filteredLabels.slice(e,e+t);const o=new Map;this.labelsToShow.forEach(a=>{o.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{o.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.labelsToShow=null,this.selections=new Map;this.dataSource=this.labelsToShow}}function BZ(n,t){1&n&&xe(0,"app-password")}function HZ(n,t){1&n&&(D(0,"div",8),xe(1,"mat-spinner",9),I(2),R(3,"translate"),C()),2&n&&(d(1),w("diameter",11),d(1),me(" ",B(3,2,"settings.checking-auth")," "))}Mu.\u0275fac=function(t){return new(t||Mu)(F(Fn),F(vr),F(Xt),F(cn),F(no),F(ti))},Mu.\u0275cmp=qe({type:Mu,selectors:[["app-label-list"]],inputs:{showShortList:"showShortList"},decls:23,vars:22,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"inline","matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"inline","matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline",4,"ngIf"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),j(2,pZ,6,7,"span",2),j(3,bZ,5,4,"div",3),C(),D(4,"div",4)(5,"div",5),j(6,vZ,3,4,"mat-icon",6),j(7,yZ,2,2,"mat-icon",7),D(8,"mat-menu",8,9)(10,"div",10),ye("click",function(){return e.changeAllSelections(!0)}),I(11),R(12,"translate"),C(),D(13,"div",10),ye("click",function(){return e.changeAllSelections(!1)}),I(14),R(15,"translate"),C(),D(16,"div",11),ye("click",function(){return e.deleteSelected()}),I(17),R(18,"translate"),C()()(),j(19,MZ,1,5,"app-paginator",12),C()(),j(20,OZ,37,34,"div",13),j(21,RZ,6,3,"div",13),j(22,NZ,1,5,"app-paginator",12)),2&t&&(w("ngClass",Ve(20,YZ,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),d(2),w("ngIf",e.showShortList_),d(1),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),d(3),w("ngIf",e.allLabels&&e.allLabels.length>0),d(1),w("ngIf",e.dataSource&&e.dataSource.length>0),d(1),w("overlapTrigger",!1),d(3),me(" ",B(12,14,"selection.select-all")," "),d(3),me(" ",B(15,16,"selection.unselect-all")," "),d(2),Dn("disabled",!e.hasSelectedElements()),d(1),me(" ",B(18,18,"selection.delete-all")," "),d(2),w("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),d(1),w("ngIf",e.dataSource&&e.dataSource.length>0),d(1),w("ngIf",!e.dataSource||0===e.dataSource.length),d(1),w("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[On,Ci,Ot,Wr,il,Cn,gi,gu,ma,bu,pa,ul,As,Ct],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]});const VZ=function(){return["start.title"]};class tp{constructor(t,e,i,o){this.authService=t,this.router=e,this.snackbarService=i,this.dialog=o,this.tabsData=[],this.options=[],this.waitBeforeShowingLoading=!0,this.authChecked=!1,this.authActive=!1,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"language",label:"nodes.dmsg-title",linkParts:["/nodes","dmsg"]},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.updateOptionsMenu()}ngOnInit(){setTimeout(()=>{this.waitBeforeShowingLoading=!1},500),this.checkAuth(0)}checkAuth(t){this.authSubscription=We(1).pipe(Ai(t),Ne(()=>this.authService.checkLogin())).subscribe(e=>{this.authChecked=!0,this.authActive=e===Es.Logged,this.updateOptionsMenu()},()=>{this.checkAuth(15e3)})}ngOnDestroy(){this.authSubscription.unsubscribe()}updateOptionsMenu(){this.options=[],this.authActive&&(this.options=[{name:"common.logout",actionName:"logout",icon:"power_settings_new"}])}performAction(t){"logout"===t&&this.logout()}logout(){const t=Wt.createConfirmationDialog(this.dialog,"common.logout-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}}tp.\u0275fac=function(t){return new(t||tp)(F(Is),F(Xt),F(cn),F(Fn))},tp.\u0275cmp=qe({type:tp,selectors:[["app-settings"]],decls:8,vars:9,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","optionSelected"],[1,"content","col-12","mt-4.5"],[1,"d-block","mb-4"],[4,"ngIf"],["class","white-theme checking-container",4,"ngIf"],[3,"showShortList"],[1,"white-theme","checking-container"],[3,"diameter"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"app-top-bar",2),ye("optionSelected",function(o){return e.performAction(o)}),C()(),D(3,"div",3),xe(4,"app-refresh-rate",4),j(5,BZ,1,0,"app-password",5),j(6,HZ,4,4,"div",6),xe(7,"app-label-list",7),C()()),2&t&&(d(2),w("titleParts",Un(8,VZ))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("optionsData",e.options),d(3),w("ngIf",e.authChecked&&e.authActive),d(1),w("ngIf",!e.authChecked&&!e.waitBeforeShowingLoading),d(1),w("showShortList",!0))},dependencies:[Ot,rc,uu,ep,as,Mu,Ct],styles:[".checking-container[_ngcontent-%COMP%]{font-size:10px;opacity:.5}.checking-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block}.show-link[_ngcontent-%COMP%]{cursor:pointer;font-size:.8rem}"]});class hl{constructor(t){this.apiService=t}create(t,e,i){const o={remote_pk:e};return i&&(o.transport_type=i),this.apiService.post(`visors/${t}/transports`,o)}delete(t,e){return this.apiService.delete(`visors/${t}/transports/${e}`)}savePersistentTransportsData(t,e){return this.apiService.put(`visors/${t}/persistent-transports`,e)}getPersistentTransports(t){return this.apiService.get(`visors/${t}/persistent-transports`)}types(t){return this.apiService.get(`visors/${t}/transport-types`)}changeAutoconnectSetting(t,e){const i={};return i.public_autoconnect=e,this.apiService.put(`visors/${t}/public-autoconnect`,i)}}hl.\u0275fac=function(t){return new(t||hl)(we(yo))},hl.\u0275prov=Ye({token:hl,factory:hl.\u0275fac,providedIn:"root"});const jZ=["button"],zZ=["firstInput"];function UZ(n,t){1&n&&xe(0,"app-loading-indicator",5),2&n&&w("showWhite",!1)}function WZ(n,t){1&n&&($e(0),D(1,"span"),I(2),R(3,"translate"),C(),Ge()),2&n&&(d(2),oe(B(3,1,"transports.dialog.errors.remote-key-length-error")))}function $Z(n,t){1&n&&(D(0,"span"),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"transports.dialog.errors.remote-key-chars-error")))}function GZ(n,t){if(1&n&&(D(0,"mat-option",19),I(1),C()),2&n){const e=t.$implicit;w("value",e),d(1),oe(e)}}const Ag=function(n){return{"element-disabled":n}};function qZ(n,t){if(1&n){const e=tt();D(0,"form",6)(1,"mat-form-field",7)(2,"div",8)(3,"label",9),I(4),R(5,"translate"),C(),xe(6,"input",10,11),C(),D(8,"mat-error"),j(9,WZ,4,3,"ng-container",12),C(),j(10,$Z,3,3,"ng-template",null,13,Ms),C(),D(12,"mat-form-field",7)(13,"div",8)(14,"label",9),I(15),R(16,"translate"),C(),xe(17,"input",14),C()(),D(18,"mat-form-field",7)(19,"div",8)(20,"label",9),I(21),R(22,"translate"),C(),D(23,"mat-select",15),j(24,GZ,2,2,"mat-option",16),C()(),D(25,"mat-error")(26,"span"),I(27),R(28,"translate"),C()()(),D(29,"mat-checkbox",17),ye("change",function(o){return Pe(e),Oe(z().setMakePersistent(o))}),I(30),R(31,"translate"),D(32,"mat-icon",18),R(33,"translate"),I(34,"help"),C()()()}if(2&n){const e=li(11),i=z();w("formGroup",i.form),d(1),w("ngClass",Ve(28,Ag,i.disableDismiss)),d(3),oe(B(5,16,"transports.dialog.remote-key")),d(5),w("ngIf",!i.form.get("remoteKey").hasError("pattern"))("ngIfElse",e),d(3),w("ngClass",Ve(30,Ag,i.disableDismiss)),d(3),oe(B(16,18,"transports.dialog.label")),d(3),w("ngClass",Ve(32,Ag,i.disableDismiss)),d(3),oe(B(22,20,"transports.dialog.transport-type")),d(3),w("ngForOf",i.types),d(3),oe(B(28,22,"transports.dialog.errors.transport-type-error")),d(2),w("checked",i.makePersistent)("ngClass",Ve(34,Ag,i.disableDismiss)),d(1),me(" ",B(31,24,"transports.dialog.make-persistent")," "),d(2),w("inline",!0)("matTooltip",B(33,26,"transports.dialog.persistent-tooltip"))}}class hc{constructor(t,e,i,o,s,a){this.transportService=t,this.formBuilder=e,this.dialogRef=i,this.snackbarService=o,this.storageService=s,this.nodeService=a,this.makePersistent=!1,this.shouldShowError=!0}static openDialog(t){const e=new An;return e.autoFocus=!1,e.width=Ht.mediumModalWidth,t.open(hc,e)}ngOnInit(){this.form=this.formBuilder.group({remoteKey:["",Vt.compose([Vt.required,Vt.minLength(66),Vt.maxLength(66),Vt.pattern("^[0-9a-fA-F]+$")])],label:[""],type:["",Vt.required]}),this.loadData(0)}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setMakePersistent(t){this.makePersistent=!!t.checked}create(){if(!this.form.valid||this.button.disabled)return;this.button.showLoading();const t=this.form.get("remoteKey").value,e=this.form.get("type").value,i=this.form.get("label").value;if(this.makePersistent){const o=this.transportService.getPersistentTransports(Je.getCurrentNodeKey());this.operationSubscription=o.subscribe(s=>{const a=s||[];let l=!1;a.forEach(c=>{c.pk.toUpperCase()===t.toUpperCase()&&c.type.toUpperCase()===e.toUpperCase()&&(l=!0)}),l?this.createTransport(t,e,i,!0):this.createPersistent(a,t,e,i)},s=>{this.onError(s)})}else this.createTransport(t,e,i,!1)}createPersistent(t,e,i,o){t.push({pk:e,type:i}),this.operationSubscription=this.transportService.savePersistentTransportsData(Je.getCurrentNodeKey(),t).subscribe(()=>{this.createTransport(e,i,o,!0)},s=>{this.onError(s)})}createTransport(t,e,i,o){this.operationSubscription=this.transportService.create(Je.getCurrentNodeKey(),t,e).subscribe(s=>{let a=!1;i&&(s&&s.id?this.storageService.saveLabel(s.id,i,yr.Transport):a=!0),Je.refreshCurrentDisplayedData(),this.dialogRef.close(),a?this.snackbarService.showWarning("transports.dialog.success-without-label"):this.snackbarService.showDone("transports.dialog.success")},s=>{o?(Je.refreshCurrentDisplayedData(),this.dialogRef.close(),this.snackbarService.showWarning("transports.dialog.only-persistent-created")):this.onError(s)})}onError(t){this.button.showError(),t=Qt(t),this.snackbarService.showError(t)}loadData(t){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=We(1).pipe(Ai(t),Ne(()=>this.transportService.types(Je.getCurrentNodeKey()))).subscribe(e=>{e.sort((o,s)=>"stcp"===o.toLowerCase()?1:"stcp"===s.toLowerCase()?-1:o.localeCompare(s));let i=e.findIndex(o=>"dmsg"===o.toLowerCase());i=-1!==i?i:0,this.types=e,this.form.get("type").setValue(e[i]),this.snackbarService.closeCurrentIfTemporaryError(),setTimeout(()=>this.firstInput.nativeElement.focus())},e=>{e=Qt(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(Ht.connectionRetryDelay)})}}function KZ(n,t){1&n&&($e(0),I(1),R(2,"translate"),D(3,"mat-icon",6),R(4,"translate"),I(5,"help"),C(),Ge()),2&n&&(d(1),me(" ",B(2,3,"common.yes")," "),d(2),w("inline",!0)("matTooltip",B(4,5,"transports.persistent-transport-tooltip")))}function ZZ(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"common.no")))}hc.\u0275fac=function(t){return new(t||hc)(F(hl),F(xr),F(Vn),F(cn),F(ti),F(Mo))},hc.\u0275cmp=qe({type:hc,selectors:[["app-create-transport"]],viewQuery:function(t,e){if(1&t&&(ft(jZ,5),ft(zZ,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:8,vars:11,consts:[[3,"headline","dialog","disableDismiss"],[3,"showWhite",4,"ngIf"],[3,"formGroup",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],[3,"showWhite"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","remoteKey","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],["formControlName","label","maxlength","66","matInput",""],["formControlName","type"],[3,"value",4,"ngFor","ngForOf"],["color","primary",3,"checked","ngClass","change"],[1,"help-icon",3,"inline","matTooltip"],[3,"value"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),j(2,UZ,1,1,"app-loading-indicator",1),j(3,qZ,35,36,"form",2),D(4,"app-button",3,4),ye("action",function(){return e.create()}),I(6),R(7,"translate"),C()()),2&t&&(w("headline",B(1,7,"transports.create"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),d(2),w("ngIf",!e.types),d(1),w("ngIf",e.types),d(1),w("disabled",!e.form.valid),d(2),me(" ",B(7,9,"transports.create")," "))},dependencies:[On,Ci,Ot,Yi,Fi,Ri,Ni,wr,ni,Di,tr,sl,Cr,Cn,gi,Zf,nu,pa,ii,Rn,io,Ct],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]});class fc{constructor(t,e){this.data=t,this.dialogRef=e}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.largeModalWidth,t.open(fc,i)}}function XZ(n,t){1&n&&(D(0,"span",15),I(1),R(2,"translate"),D(3,"mat-icon",16),R(4,"translate"),I(5,"help"),C()()),2&n&&(d(1),me(" ",B(2,3,"transports.title")," "),d(2),w("inline",!0)("matTooltip",B(4,5,"transports.info")))}function QZ(n,t){if(1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n){const e=z().$implicit;d(1),oe(B(2,1,e.translatableValue))}}function JZ(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z().$implicit;d(1),oe(e.value)}}function eX(n,t){if(1&n&&(D(0,"div",20)(1,"span"),I(2),R(3,"translate"),C(),j(4,QZ,3,3,"ng-container",21),j(5,JZ,2,1,"ng-container",21),C()),2&n){const e=t.$implicit;d(2),me("",B(3,3,e.filterName),": "),d(2),w("ngIf",e.translatableValue),d(1),w("ngIf",e.value)}}function tX(n,t){if(1&n){const e=tt();D(0,"div",17),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),j(1,eX,6,5,"div",18),D(2,"div",19),I(3),R(4,"translate"),C()()}if(2&n){const e=z();d(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),d(2),oe(B(4,2,"filters.press-to-remove"))}}function nX(n,t){if(1&n){const e=tt();D(0,"mat-icon",22),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),I(1,"filter_list"),C()}2&n&&w("inline",!0)}function iX(n,t){if(1&n&&(D(0,"mat-icon",23),I(1,"more_horiz"),C()),2&n){z();const e=li(11);w("inline",!0)("matMenuTriggerFor",e)}}fc.\u0275fac=function(t){return new(t||fc)(F(Si),F(Vn))},fc.\u0275cmp=qe({type:fc,selectors:[["app-transport-details"]],decls:51,vars:45,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[4,"ngIf"],[1,"title"],[1,"help-icon","d-none","d-md-inline",3,"inline","matTooltip"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div")(3,"div",1)(4,"mat-icon",2),I(5,"list"),C(),I(6),R(7,"translate"),C(),D(8,"div",3)(9,"span"),I(10),R(11,"translate"),C(),j(12,KZ,6,7,"ng-container",4),j(13,ZZ,3,3,"ng-container",4),C(),D(14,"div",3)(15,"span"),I(16),R(17,"translate"),C(),I(18),C(),D(19,"div",3)(20,"span"),I(21),R(22,"translate"),C(),I(23),C(),D(24,"div",3)(25,"span"),I(26),R(27,"translate"),C(),I(28),C(),D(29,"div",3)(30,"span"),I(31),R(32,"translate"),C(),I(33),C(),D(34,"div",5)(35,"mat-icon",2),I(36,"import_export"),C(),I(37),R(38,"translate"),C(),D(39,"div",3)(40,"span"),I(41),R(42,"translate"),C(),I(43),R(44,"autoScale"),C(),D(45,"div",3)(46,"span"),I(47),R(48,"translate"),C(),I(49),R(50,"autoScale"),C()()()),2&t&&(w("headline",B(1,21,"transports.details.title"))("dialog",e.dialogRef),d(4),w("inline",!0),d(2),me("",B(7,23,"transports.details.basic.title")," "),d(4),oe(B(11,25,"transports.details.basic.persistent")),d(2),w("ngIf",e.data.isPersistent),d(1),w("ngIf",!e.data.isPersistent),d(3),oe(B(17,27,"transports.details.basic.id")),d(2),me(" ",e.data.id," "),d(3),oe(B(22,29,"transports.details.basic.local-pk")),d(2),me(" ",e.data.localPk," "),d(3),oe(B(27,31,"transports.details.basic.remote-pk")),d(2),me(" ",e.data.remotePk," "),d(3),oe(B(32,33,"transports.details.basic.type")),d(2),me(" ",e.data.type," "),d(2),w("inline",!0),d(2),me("",B(38,35,"transports.details.data.title")," "),d(4),oe(B(42,37,"transports.details.data.uploaded")),d(2),me(" ",B(44,39,e.data.sent)," "),d(4),oe(B(48,41,"transports.details.data.downloaded")),d(2),me(" ",B(50,43,e.data.recv)," "))},dependencies:[Ot,Cn,gi,Rn,Ct,ir],styles:[".help-icon[_ngcontent-%COMP%]{opacity:.5;font-size:14px;cursor:default}"]});const J1=function(n){return["/nodes",n,"transports"]};function rX(n,t){if(1&n&&xe(0,"app-paginator",24),2&n){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Ve(4,J1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function oX(n,t){if(1&n&&(D(0,"mat-icon",39),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function sX(n,t){1&n&&($e(0),I(1,"*"),Ge())}function aX(n,t){if(1&n&&($e(0),D(1,"mat-icon",39),I(2),C(),j(3,sX,2,0,"ng-container",21),Ge()),2&n){const e=z(2);d(1),w("inline",!0),d(1),oe(e.dataSorter.sortingArrow),d(1),w("ngIf",e.dataSorter.currentlySortingByLabel)}}function lX(n,t){1&n&&($e(0),I(1,"*"),Ge())}function cX(n,t){if(1&n&&($e(0),D(1,"mat-icon",39),I(2),C(),j(3,lX,2,0,"ng-container",21),Ge()),2&n){const e=z(2);d(1),w("inline",!0),d(1),oe(e.dataSorter.sortingArrow),d(1),w("ngIf",e.dataSorter.currentlySortingByLabel)}}function dX(n,t){if(1&n&&(D(0,"mat-icon",39),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function uX(n,t){if(1&n&&(D(0,"mat-icon",39),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function hX(n,t){if(1&n&&(D(0,"mat-icon",39),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function fX(n,t){if(1&n){const e=tt();D(0,"button",48),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).changeIfPersistent([o],!1))}),R(1,"translate"),D(2,"mat-icon",49),I(3,"star"),C()()}2&n&&(w("matTooltip",B(1,2,"transports.persistent-transport-button-tooltip")),d(2),w("inline",!0))}function pX(n,t){if(1&n){const e=tt();D(0,"button",48),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).changeIfPersistent([o],!0))}),R(1,"translate"),D(2,"mat-icon",50),I(3,"star_outline"),C()()}2&n&&(w("matTooltip",B(1,2,"transports.non-persistent-transport-button-tooltip")),d(2),w("inline",!0))}function mX(n,t){1&n&&(D(0,"span"),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"transports.offline")))}function _X(n,t){if(1&n){const e=tt();D(0,"td")(1,"app-labeled-element-text",51),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C(),j(2,mX,3,3,"span",21),C()}if(2&n){const e=z().$implicit,i=z(2);d(1),Dn("id",e.id),w("short",!0)("elementType",i.labeledElementTypes.Transport),d(1),w("ngIf",e.notFound)}}function gX(n,t){1&n&&(D(0,"td"),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"transports.offline")," "))}function bX(n,t){if(1&n&&(D(0,"td"),I(1),R(2,"autoScale"),C()),2&n){const e=z().$implicit;d(1),me(" ",B(2,1,e.sent)," ")}}function vX(n,t){if(1&n&&(D(0,"td"),I(1),R(2,"autoScale"),C()),2&n){const e=z().$implicit;d(1),me(" ",B(2,1,e.recv)," ")}}function yX(n,t){1&n&&(D(0,"td"),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"transports.offline")," "))}function MX(n,t){1&n&&(D(0,"td"),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"transports.offline")," "))}function wX(n,t){if(1&n){const e=tt();D(0,"button",52),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).details(o))}),R(1,"translate"),D(2,"mat-icon",39),I(3,"visibility"),C()()}2&n&&(w("matTooltip",B(1,2,"transports.details.title")),d(2),w("inline",!0))}function xX(n,t){if(1&n){const e=tt();D(0,"button",52),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).delete(o))}),R(1,"translate"),D(2,"mat-icon",39),I(3,"close"),C()()}2&n&&(w("matTooltip",B(1,2,"transports.delete")),d(2),w("inline",!0))}const jI=function(n){return{offline:n}};function CX(n,t){if(1&n){const e=tt();D(0,"tr",42)(1,"td",43)(2,"mat-checkbox",44),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),j(4,fX,4,4,"button",45),j(5,pX,4,4,"button",45),C(),j(6,_X,3,4,"td",21),j(7,gX,3,3,"td",21),D(8,"td")(9,"app-labeled-element-text",46),ye("labelEdited",function(){return Pe(e),Oe(z(2).refreshData())}),C()(),D(10,"td"),I(11),C(),j(12,bX,3,3,"td",21),j(13,vX,3,3,"td",21),j(14,yX,3,3,"td",21),j(15,MX,3,3,"td",21),D(16,"td",32),j(17,wX,4,4,"button",47),j(18,xX,4,4,"button",47),C()()}if(2&n){const e=t.$implicit,i=z(2);w("ngClass",Ve(15,jI,e.notFound)),d(2),w("checked",i.selections.get(e.id)),d(2),w("ngIf",e.isPersistent),d(1),w("ngIf",!e.isPersistent),d(1),w("ngIf",!e.notFound),d(1),w("ngIf",e.notFound),d(2),Dn("id",e.remotePk),w("short",!0),d(2),me(" ",e.type," "),d(1),w("ngIf",!e.notFound),d(1),w("ngIf",!e.notFound),d(1),w("ngIf",e.notFound),d(1),w("ngIf",e.notFound),d(2),w("ngIf",!e.notFound),d(1),w("ngIf",!e.notFound)}}function kX(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"tables.label")))}function SX(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"tables.inverted-order")))}function DX(n,t){1&n&&(D(0,"div",59)(1,"div",59)(2,"mat-icon",62),I(3,"star"),C(),I(4,"\xa0 "),D(5,"span",63),I(6),R(7,"translate"),C()()()),2&n&&(d(2),w("inline",!0),d(4),oe(B(7,2,"transports.persistent")))}function TX(n,t){if(1&n){const e=tt();D(0,"app-labeled-element-text",64),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()}if(2&n){const e=z().$implicit,i=z(2);Dn("id",e.id),w("elementType",i.labeledElementTypes.Transport)}}function LX(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"transports.offline")))}function EX(n,t){if(1&n&&($e(0),I(1),R(2,"autoScale"),Ge()),2&n){const e=z().$implicit;d(1),oe(B(2,1,e.sent))}}function IX(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"transports.offline")))}function PX(n,t){if(1&n&&($e(0),I(1),R(2,"autoScale"),Ge()),2&n){const e=z().$implicit;d(1),oe(B(2,1,e.recv))}}function OX(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"transports.offline")))}function AX(n,t){if(1&n){const e=tt();D(0,"tr")(1,"td")(2,"div",53)(3,"div",54)(4,"mat-checkbox",44),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",37),j(6,DX,8,4,"div",55),D(7,"div",56)(8,"span",1),I(9),R(10,"translate"),C(),I(11,": "),j(12,TX,1,2,"app-labeled-element-text",57),j(13,LX,3,3,"ng-container",21),C(),D(14,"div",56)(15,"span",1),I(16),R(17,"translate"),C(),I(18,": "),D(19,"app-labeled-element-text",58),ye("labelEdited",function(){return Pe(e),Oe(z(2).refreshData())}),C()(),D(20,"div",59)(21,"span",1),I(22),R(23,"translate"),C(),I(24),C(),D(25,"div",59)(26,"span",1),I(27),R(28,"translate"),C(),I(29,": "),j(30,EX,3,3,"ng-container",21),j(31,IX,3,3,"ng-container",21),C(),D(32,"div",59)(33,"span",1),I(34),R(35,"translate"),C(),I(36,": "),j(37,PX,3,3,"ng-container",21),j(38,OX,3,3,"ng-container",21),C()(),xe(39,"div",60),D(40,"div",38)(41,"button",61),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(42,"translate"),D(43,"mat-icon"),I(44),C()()()()()()}if(2&n){const e=t.$implicit,i=z(2);d(2),w("ngClass",Ve(30,jI,e.notFound)),d(2),w("checked",i.selections.get(e.id)),d(2),w("ngIf",e.isPersistent),d(3),oe(B(10,18,"transports.id")),d(3),w("ngIf",!e.notFound),d(1),w("ngIf",e.notFound),d(3),oe(B(17,20,"transports.remote-node")),d(3),Dn("id",e.remotePk),d(3),oe(B(23,22,"transports.type")),d(2),me(": ",e.type," "),d(3),oe(B(28,24,"common.uploaded")),d(3),w("ngIf",!e.notFound),d(1),w("ngIf",e.notFound),d(3),oe(B(35,26,"common.downloaded")),d(3),w("ngIf",!e.notFound),d(1),w("ngIf",e.notFound),d(3),w("matTooltip",B(42,28,"common.options")),d(3),oe("add")}}function FX(n,t){if(1&n&&xe(0,"app-view-all-link",65),2&n){const e=z(2);w("numberOfElements",e.filteredTransports.length)("linkParts",Ve(3,J1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const RX=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},NX=function(n){return{"d-lg-none d-xl-table":n}},YX=function(n){return{"d-lg-table d-xl-none":n}};function BX(n,t){if(1&n){const e=tt();D(0,"div",25)(1,"div",26)(2,"table",27)(3,"tr"),xe(4,"th"),D(5,"th",28),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.persistentSortData))}),R(6,"translate"),D(7,"mat-icon",29),I(8,"star_outline"),C(),j(9,oX,2,2,"mat-icon",30),C(),D(10,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.idSortData))}),I(11),R(12,"translate"),j(13,aX,4,3,"ng-container",21),C(),D(14,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.remotePkSortData))}),I(15),R(16,"translate"),j(17,cX,4,3,"ng-container",21),C(),D(18,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),I(19),R(20,"translate"),j(21,dX,2,2,"mat-icon",30),C(),D(22,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.uploadedSortData))}),I(23),R(24,"translate"),j(25,uX,2,2,"mat-icon",30),C(),D(26,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.downloadedSortData))}),I(27),R(28,"translate"),j(29,hX,2,2,"mat-icon",30),C(),xe(30,"th",32),C(),j(31,CX,19,17,"tr",33),C(),D(32,"table",34)(33,"tr",35),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(34,"td")(35,"div",36)(36,"div",37)(37,"div",1),I(38),R(39,"translate"),C(),D(40,"div"),I(41),R(42,"translate"),j(43,kX,3,3,"ng-container",21),j(44,SX,3,3,"ng-container",21),C()(),D(45,"div",38)(46,"mat-icon",39),I(47,"keyboard_arrow_down"),C()()()()(),j(48,AX,45,32,"tr",40),C(),j(49,FX,1,5,"app-view-all-link",41),C()()}if(2&n){const e=z();d(1),w("ngClass",ln(39,RX,e.showShortList_,!e.showShortList_)),d(1),w("ngClass",Ve(42,NX,e.showShortList_)),d(3),w("matTooltip",B(6,23,"transports.persistent-tooltip")),d(4),w("ngIf",e.dataSorter.currentSortingColumn===e.persistentSortData),d(2),me(" ",B(12,25,"transports.id")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.idSortData),d(2),me(" ",B(16,27,"transports.remote-node")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.remotePkSortData),d(2),me(" ",B(20,29,"transports.type")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),d(2),me(" ",B(24,31,"common.uploaded")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.uploadedSortData),d(2),me(" ",B(28,33,"common.downloaded")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.downloadedSortData),d(2),w("ngForOf",e.dataSource),d(1),w("ngClass",Ve(44,YX,e.showShortList_)),d(6),oe(B(39,35,"tables.sorting-title")),d(3),me("",B(42,37,e.dataSorter.currentSortingColumn.label)," "),d(2),w("ngIf",e.dataSorter.currentlySortingByLabel),d(1),w("ngIf",e.dataSorter.sortingInReverseOrder),d(2),w("inline",!0),d(2),w("ngForOf",e.dataSource),d(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function HX(n,t){1&n&&(D(0,"span",69),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"transports.empty")))}function VX(n,t){1&n&&(D(0,"span",69),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"transports.empty-with-filter")))}function jX(n,t){if(1&n&&(D(0,"div",25)(1,"div",66)(2,"mat-icon",67),I(3,"warning"),C(),j(4,HX,3,3,"span",68),j(5,VX,3,3,"span",68),C()()),2&n){const e=z();d(2),w("inline",!0),d(2),w("ngIf",0===e.allTransports.length),d(1),w("ngIf",0!==e.allTransports.length)}}function zX(n,t){if(1&n&&xe(0,"app-paginator",24),2&n){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Ve(4,J1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const UX=function(n){return{"paginator-icons-fixer":n}};class wu{constructor(t,e,i,o,s,a,l,c){this.dialog=t,this.transportService=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.nodeService=c,this.listId="tr",this.persistentSortData=new Nn(["isPersistent"],"transports.persistent",Jt.Boolean),this.idSortData=new Nn(["id"],"transports.id",Jt.Text,["id_label"]),this.remotePkSortData=new Nn(["remotePk"],"transports.remote-node",Jt.Text,["remote_pk_label"]),this.typeSortData=new Nn(["type"],"transports.type",Jt.Text),this.uploadedSortData=new Nn(["sent"],"common.uploaded",Jt.NumberReversed),this.downloadedSortData=new Nn(["recv"],"common.downloaded",Jt.NumberReversed),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"transports.filter-dialog.persistent",keyNameInElementsArray:"isPersistent",type:Zn.Select,printableLabelsForValues:[{value:"",label:"transports.filter-dialog.persistent-options.any"},{value:"true",label:"transports.filter-dialog.persistent-options.persistent"},{value:"false",label:"transports.filter-dialog.persistent-options.non-persistent"}]},{filterName:"transports.filter-dialog.id",keyNameInElementsArray:"id",secondaryKeyNameInElementsArray:"id_label",type:Zn.TextInput,maxlength:36},{filterName:"transports.filter-dialog.remote-node",keyNameInElementsArray:"remotePk",secondaryKeyNameInElementsArray:"remote_pk_label",type:Zn.TextInput,maxlength:66}],this.labeledElementTypes=yr,this.operationSubscriptionsGroup=[],this.dataSorter=new pu(this.dialog,this.translateService,this.storageService,[this.persistentSortData,this.idSortData,this.remotePkSortData,this.typeSortData,this.uploadedSortData,this.downloadedSortData],1,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new mu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(P=>{this.filteredTransports=P,this.dataSorter.setData(this.filteredTransports)}),this.navigationsSubscription=this.route.paramMap.subscribe(P=>{if(P.has("page")){let Y=Number.parseInt(P.get("page"),10);(isNaN(Y)||Y<1)&&(Y=1),this.currentPageInUrl=Y,this.recalculateElementsToShow()}}),this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.node=this.currentNode})}set showShortList(t){this.showShortList_=t,this.dataSorter.setData(this.filteredTransports)}set node(t){this.currentNode=t,this.allTransports=t.transports,this.nodePK=t.localPk;const e=new Map;t.persistentTransports.forEach(i=>e.set(this.getPersistentTransportID(i.pk,i.type),i)),this.allTransports.forEach(i=>{e.has(this.getPersistentTransportID(i.remotePk,i.type))?(i.isPersistent=!0,e.delete(this.getPersistentTransportID(i.remotePk,i.type))):i.isPersistent=!1}),e.forEach((i,o)=>{this.allTransports.push({id:this.getPersistentTransportID(i.pk,i.type),localPk:t.localPk,remotePk:i.pk,type:i.type,recv:0,sent:0,isPersistent:!0,notFound:!0})}),this.allTransports.forEach(i=>{i.id_label=Or.getCompleteLabel(this.storageService,this.translateService,i.id),i.remote_pk_label=Or.getCompleteLabel(this.storageService,this.translateService,i.remotePk)}),this.dataFilterer.setData(this.allTransports)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.languageSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose(),this.persistentTransportSubscription&&this.persistentTransportSubscription.unsubscribe()}changeSelection(t){this.selections.get(t.id)?this.selections.set(t.id,!1):this.selections.set(t.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let t=!1;return this.selections.forEach(e=>{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}deleteSelected(){const t=Wt.createConfirmationDialog(this.dialog,"transports.delete-selected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing();const e=[];this.selections.forEach((i,o)=>{i&&e.push(o)}),this.deleteRecursively(e,t)})}create(){hc.openDialog(this.dialog)}showOptionsDialog(t){const e=[];e.push(t.isPersistent?{icon:"star_outline",label:"transports.make-non-persistent"}:{icon:"star",label:"transports.make-persistent"}),t.notFound||(e.push({icon:"visibility",label:"transports.details.title"}),e.push({icon:"close",label:"transports.delete"})),$i.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{1===i?this.changeIfPersistent([t],!t.isPersistent):2===i?this.details(t):3===i&&this.delete(t)})}changeIfPersistentOfSelected(t){const e=[];this.allTransports.forEach(i=>{this.selections.has(i.id)&&this.selections.get(i.id)&&e.push(i)}),this.changeIfPersistent(e,t)}changeIfPersistent(t,e){if(t.length<1)return;let i="transports.";i+=1===t.length?e?"make-persistent-confirmation":"make"+(t[0].notFound?"-offline":"")+"-non-persistent-confirmation":e?"make-selected-persistent-confirmation":"make-selected-non-persistent-confirmation";const o=Wt.createConfirmationDialog(this.dialog,i);o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.persistentTransportSubscription=this.transportService.getPersistentTransports(this.nodePK).subscribe(s=>{const a=s||[];let l=!1;const c=new Map;if(t.forEach(M=>c.set(this.getPersistentTransportID(M.remotePk,M.type),M)),e)a.forEach(M=>{c.has(this.getPersistentTransportID(M.pk,M.type))&&c.delete(this.getPersistentTransportID(M.pk,M.type))}),l=0===c.size,l||c.forEach(M=>{a.push({pk:M.remotePk,type:M.type})});else{l=!0;for(let M=0;M{o.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.changes-made")},M=>{M=Qt(M),o.componentInstance.showDone("confirmation.error-header-text",M.translatableErrorMsg)})},s=>{s=Qt(s),o.componentInstance.showDone("confirmation.error-header-text",s.translatableErrorMsg)})})}details(t){fc.openDialog(this.dialog,t)}delete(t){const i=Wt.createConfirmationDialog(this.dialog,"transports.delete-"+(t.isPersistent?"persistent-":"")+"confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(t.id).subscribe(()=>{i.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")},o=>{o=Qt(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))})}refreshData(){Je.refreshCurrentDisplayedData()}getPersistentTransportID(t,e){return t.toUpperCase()+e.toUpperCase()}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredTransports){const t=this.showShortList_?Ht.maxShortListElements:Ht.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredTransports.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.transportsToShow=this.filteredTransports.slice(e,e+t);const o=new Map;this.transportsToShow.forEach(a=>{o.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{o.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.transportsToShow=null,this.selections=new Map;this.dataSource=this.transportsToShow}startDeleting(t){return this.transportService.delete(Je.getCurrentNodeKey(),t)}deleteRecursively(t,e){this.operationSubscriptionsGroup.push(this.startDeleting(t[t.length-1]).subscribe(()=>{t.pop(),0===t.length?(e.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")):this.deleteRecursively(t,e)},i=>{Je.refreshCurrentDisplayedData(),i=Qt(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)}))}}function WX(n,t){1&n&&(D(0,"div",5)(1,"mat-icon",2),I(2,"settings"),C(),I(3),R(4,"translate"),C()),2&n&&(d(1),w("inline",!0),d(2),me("",B(4,2,"routes.details.specific-fields-titles.app")," "))}function $X(n,t){1&n&&(D(0,"div",5)(1,"mat-icon",2),I(2,"swap_horiz"),C(),I(3),R(4,"translate"),C()),2&n&&(d(1),w("inline",!0),d(2),me("",B(4,2,"routes.details.specific-fields-titles.forward")," "))}function GX(n,t){1&n&&(D(0,"div",5)(1,"mat-icon",2),I(2,"arrow_forward"),C(),I(3),R(4,"translate"),C()),2&n&&(d(1),w("inline",!0),d(2),me("",B(4,2,"routes.details.specific-fields-titles.intermediary-forward")," "))}function qX(n,t){if(1&n&&(D(0,"div")(1,"div",3)(2,"span"),I(3),R(4,"translate"),C(),I(5),C(),D(6,"div",3)(7,"span"),I(8),R(9,"translate"),C(),I(10),C()()),2&n){const e=z(2);d(3),oe(B(4,5,"routes.details.specific-fields.route-id")),d(2),me(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextRid:e.routeRule.intermediaryForwardFields.nextRid," "),d(3),oe(B(9,7,"routes.details.specific-fields.transport-id")),d(2),po(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid," ",e.getLabel(e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid)," ")}}function KX(n,t){if(1&n&&(D(0,"div")(1,"div",3)(2,"span"),I(3),R(4,"translate"),C(),I(5),C(),D(6,"div",3)(7,"span"),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",3)(12,"span"),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",3)(17,"span"),I(18),R(19,"translate"),C(),I(20),C()()),2&n){const e=z(2);d(3),oe(B(4,10,"routes.details.specific-fields.destination-pk")),d(2),po(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk)," "),d(3),oe(B(9,12,"routes.details.specific-fields.source-pk")),d(2),po(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk)," "),d(3),oe(B(14,14,"routes.details.specific-fields.destination-port")),d(2),me(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPort:e.routeRule.forwardFields.routeDescriptor.dstPort," "),d(3),oe(B(19,16,"routes.details.specific-fields.source-port")),d(2),me(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPort:e.routeRule.forwardFields.routeDescriptor.srcPort," ")}}function ZX(n,t){if(1&n&&(D(0,"div")(1,"div",5)(2,"mat-icon",2),I(3,"list"),C(),I(4),R(5,"translate"),C(),D(6,"div",3)(7,"span"),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",3)(12,"span"),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",3)(17,"span"),I(18),R(19,"translate"),C(),I(20),C(),j(21,WX,5,4,"div",6),j(22,$X,5,4,"div",6),j(23,GX,5,4,"div",6),j(24,qX,11,9,"div",4),j(25,KX,21,18,"div",4),C()),2&n){const e=z();d(2),w("inline",!0),d(2),me("",B(5,13,"routes.details.summary.title")," "),d(4),oe(B(9,15,"routes.details.summary.keep-alive")),d(2),me(" ",e.routeRule.ruleSummary.keepAlive," "),d(3),oe(B(14,17,"routes.details.summary.type")),d(2),me(" ",e.getRuleTypeName(e.routeRule.ruleSummary.ruleType)," "),d(3),oe(B(19,19,"routes.details.summary.key-route-id")),d(2),me(" ",e.routeRule.ruleSummary.keyRouteId," "),d(1),w("ngIf",e.routeRule.appFields),d(1),w("ngIf",e.routeRule.forwardFields),d(1),w("ngIf",e.routeRule.intermediaryForwardFields),d(1),w("ngIf",e.routeRule.forwardFields||e.routeRule.intermediaryForwardFields),d(1),w("ngIf",e.routeRule.appFields&&e.routeRule.appFields.routeDescriptor||e.routeRule.forwardFields&&e.routeRule.forwardFields.routeDescriptor)}}wu.\u0275fac=function(t){return new(t||wu)(F(Fn),F(hl),F(vr),F(Xt),F(cn),F(no),F(ti),F(Mo))},wu.\u0275cmp=qe({type:wu,selectors:[["app-transport-list"]],inputs:{showShortList:"showShortList",node:"node"},decls:31,vars:31,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],[3,"inline","click"],["class","small-icon",3,"inline","click",4,"ngIf"],[3,"inline","matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","click"],[3,"inline","matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column","small-column",3,"matTooltip","click"],[1,"persistent-icon","grey-text"],[3,"inline",4,"ngIf"],[1,"sortable-column",3,"click"],[1,"actions"],[3,"ngClass",4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[4,"ngFor","ngForOf"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[3,"ngClass"],[1,"selection-col"],[3,"checked","change"],["mat-button","","class","action-button subtle-transparent-button",3,"matTooltip","click",4,"ngIf"],["shortTextLength","4",3,"short","id","labelEdited"],["mat-button","","class","action-button transparent-button",3,"matTooltip","click",4,"ngIf"],["mat-button","",1,"action-button","subtle-transparent-button",3,"matTooltip","click"],[1,"persistent-icon","default-cursor",3,"inline"],[1,"persistent-icon","grey-text",3,"inline"],["shortTextLength","4",3,"short","id","elementType","labelEdited"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],[1,"list-item-container",3,"ngClass"],[1,"check-part"],["class","list-row",4,"ngIf"],[1,"list-row","long-content"],[3,"id","elementType","labelEdited",4,"ngIf"],[3,"id","labelEdited"],[1,"list-row"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[1,"persistent-icon",3,"inline"],[1,"yellow-clear-text","title"],[3,"id","elementType","labelEdited"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),j(2,XZ,6,7,"span",2),j(3,tX,5,4,"div",3),C(),D(4,"div",4)(5,"div",5)(6,"mat-icon",6),ye("click",function(){return e.create()}),I(7,"add"),C(),j(8,nX,2,1,"mat-icon",7),j(9,iX,2,2,"mat-icon",8),D(10,"mat-menu",9,10)(12,"div",11),ye("click",function(){return e.changeAllSelections(!0)}),I(13),R(14,"translate"),C(),D(15,"div",11),ye("click",function(){return e.changeAllSelections(!1)}),I(16),R(17,"translate"),C(),D(18,"div",12),ye("click",function(){return e.changeIfPersistentOfSelected(!0)}),I(19),R(20,"translate"),C(),D(21,"div",12),ye("click",function(){return e.changeIfPersistentOfSelected(!1)}),I(22),R(23,"translate"),C(),D(24,"div",12),ye("click",function(){return e.deleteSelected()}),I(25),R(26,"translate"),C()()(),j(27,rX,1,6,"app-paginator",13),C()(),j(28,BX,50,46,"div",14),j(29,jX,6,3,"div",14),j(30,zX,1,6,"app-paginator",13)),2&t&&(w("ngClass",Ve(29,UX,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),d(2),w("ngIf",e.showShortList_),d(1),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),d(3),w("inline",!0),d(2),w("ngIf",e.allTransports&&e.allTransports.length>0),d(1),w("ngIf",e.dataSource&&e.dataSource.length>0),d(1),w("overlapTrigger",!1),d(3),me(" ",B(14,19,"selection.select-all")," "),d(3),me(" ",B(17,21,"selection.unselect-all")," "),d(2),Dn("disabled",!e.hasSelectedElements()),d(1),me(" ",B(20,23,"transports.make-selected-persistent")," "),d(2),Dn("disabled",!e.hasSelectedElements()),d(1),me(" ",B(23,25,"transports.make-selected-non-persistent")," "),d(2),Dn("disabled",!e.hasSelectedElements()),d(1),me(" ",B(26,27,"selection.delete-all")," "),d(2),w("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),d(1),w("ngIf",e.dataSource&&e.dataSource.length>0),d(1),w("ngIf",!e.dataSource||0===e.dataSource.length),d(1),w("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[On,Ci,Ot,Wr,il,Cn,gi,gu,ma,bu,pa,ul,As,Or,Ct,ir],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.small-column[_ngcontent-%COMP%]{width:1px;text-align:center}.persistent-icon[_ngcontent-%COMP%]{font-size:14px!important;color:#d48b05}.offline[_ngcontent-%COMP%]{opacity:.35}"]});class pc{constructor(t,e,i){this.dialogRef=e,this.storageService=i,this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Intermediary forward"]]),this.routeRule=t}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.largeModalWidth,t.open(pc,i)}getRuleTypeName(t){return this.ruleTypes.has(t)?this.ruleTypes.get(t):t.toString()}closePopup(){this.dialogRef.close()}getLabel(t){const e=this.storageService.getLabelInfo(t);return e?" ("+e.label+")":""}}pc.\u0275fac=function(t){return new(t||pc)(F(Si),F(Vn),F(ti))},pc.\u0275cmp=qe({type:pc,selectors:[["app-route-details"]],decls:19,vars:17,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[4,"ngIf"],[1,"title"],["class","title",4,"ngIf"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div")(3,"div",1)(4,"mat-icon",2),I(5,"list"),C(),I(6),R(7,"translate"),C(),D(8,"div",3)(9,"span"),I(10),R(11,"translate"),C(),I(12),C(),D(13,"div",3)(14,"span"),I(15),R(16,"translate"),C(),I(17),C(),j(18,ZX,26,21,"div",4),C()()),2&t&&(w("headline",B(1,9,"routes.details.title"))("dialog",e.dialogRef),d(4),w("inline",!0),d(2),me("",B(7,11,"routes.details.basic.title")," "),d(4),oe(B(11,13,"routes.details.basic.key")),d(2),me(" ",e.routeRule.key," "),d(3),oe(B(16,15,"routes.details.basic.rule")),d(2),me(" ",e.routeRule.rule," "),d(1),w("ngIf",e.routeRule.ruleSummary))},dependencies:[Ot,Cn,Rn,Ct]});class mc{constructor(t){this.apiService=t}get(t,e){return this.apiService.get(`visors/${t}/routes/${e}`)}delete(t,e){return this.apiService.delete(`visors/${t}/routes/${e}`)}setMinHops(t,e){return this.apiService.post(`visors/${t}/min-hops`,{min_hops:e})}}function XX(n,t){1&n&&(D(0,"span",14),I(1),R(2,"translate"),D(3,"mat-icon",15),R(4,"translate"),I(5,"help"),C()()),2&n&&(d(1),me(" ",B(2,3,"routes.title")," "),d(2),w("inline",!0)("matTooltip",B(4,5,"routes.info")))}function QX(n,t){if(1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n){const e=z().$implicit;d(1),oe(B(2,1,e.translatableValue))}}function JX(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z().$implicit;d(1),oe(e.value)}}function eQ(n,t){if(1&n&&(D(0,"div",19)(1,"span"),I(2),R(3,"translate"),C(),j(4,QX,3,3,"ng-container",20),j(5,JX,2,1,"ng-container",20),C()),2&n){const e=t.$implicit;d(2),me("",B(3,3,e.filterName),": "),d(2),w("ngIf",e.translatableValue),d(1),w("ngIf",e.value)}}function tQ(n,t){if(1&n){const e=tt();D(0,"div",16),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),j(1,eQ,6,5,"div",17),D(2,"div",18),I(3),R(4,"translate"),C()()}if(2&n){const e=z();d(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),d(2),oe(B(4,2,"filters.press-to-remove"))}}function nQ(n,t){if(1&n){const e=tt();D(0,"mat-icon",21),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&n&&w("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function iQ(n,t){1&n&&(D(0,"mat-icon",22),I(1,"more_horiz"),C()),2&n&&(z(),w("matMenuTriggerFor",li(9)))}mc.\u0275fac=function(t){return new(t||mc)(we(yo))},mc.\u0275prov=Ye({token:mc,factory:mc.\u0275fac,providedIn:"root"});const eM=function(n){return["/nodes",n,"routes"]};function rQ(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Ve(4,eM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function oQ(n,t){if(1&n&&(D(0,"mat-icon",36),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function sQ(n,t){if(1&n&&(D(0,"mat-icon",36),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function aQ(n,t){if(1&n&&(D(0,"mat-icon",36),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function lQ(n,t){if(1&n&&(D(0,"mat-icon",36),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function cQ(n,t){if(1&n){const e=tt();$e(0),D(1,"td")(2,"app-labeled-element-text",41),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),D(3,"td")(4,"app-labeled-element-text",41),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),Ge()}if(2&n){const e=z().$implicit,i=z(2);d(2),Dn("id",e.src),w("short",!0)("elementType",i.labeledElementTypes.Node),d(2),Dn("id",e.dst),w("short",!0)("elementType",i.labeledElementTypes.Node)}}function dQ(n,t){if(1&n){const e=tt();$e(0),D(1,"td"),I(2,"---"),C(),D(3,"td")(4,"app-labeled-element-text",42),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),Ge()}if(2&n){const e=z().$implicit,i=z(2);d(4),Dn("id",e.dst),w("short",!0)("elementType",i.labeledElementTypes.Transport)}}function uQ(n,t){1&n&&($e(0),D(1,"td"),I(2,"---"),C(),D(3,"td"),I(4,"---"),C(),Ge())}function hQ(n,t){if(1&n){const e=tt();D(0,"tr")(1,"td",38)(2,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),I(4),C(),D(5,"td"),I(6),C(),j(7,cQ,5,6,"ng-container",20),j(8,dQ,5,3,"ng-container",20),j(9,uQ,5,0,"ng-container",20),D(10,"td",29)(11,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).details(s))}),R(12,"translate"),D(13,"mat-icon",36),I(14,"visibility"),C()(),D(15,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).delete(s.key))}),R(16,"translate"),D(17,"mat-icon",36),I(18,"close"),C()()()()}if(2&n){const e=t.$implicit,i=z(2);d(2),w("checked",i.selections.get(e.key)),d(2),me(" ",e.key," "),d(2),me(" ",i.getTypeName(e.type)," "),d(1),w("ngIf",e.appFields||e.forwardFields),d(1),w("ngIf",!e.appFields&&!e.forwardFields&&e.intermediaryForwardFields),d(1),w("ngIf",!e.appFields&&!e.forwardFields&&!e.intermediaryForwardFields),d(2),w("matTooltip",B(12,10,"routes.details.title")),d(2),w("inline",!0),d(2),w("matTooltip",B(16,12,"routes.delete")),d(2),w("inline",!0)}}function fQ(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"tables.label")))}function pQ(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"tables.inverted-order")))}function mQ(n,t){if(1&n){const e=tt();$e(0),D(1,"div",44)(2,"span",1),I(3),R(4,"translate"),C(),I(5,": "),D(6,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),D(7,"div",44)(8,"span",1),I(9),R(10,"translate"),C(),I(11,": "),D(12,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),Ge()}if(2&n){const e=z().$implicit,i=z(2);d(3),oe(B(4,6,"routes.source")),d(3),Dn("id",e.src),w("elementType",i.labeledElementTypes.Node),d(3),oe(B(10,8,"routes.destination")),d(3),Dn("id",e.dst),w("elementType",i.labeledElementTypes.Node)}}function _Q(n,t){if(1&n){const e=tt();$e(0),D(1,"div",44)(2,"span",1),I(3),R(4,"translate"),C(),I(5,": --- "),C(),D(6,"div",44)(7,"span",1),I(8),R(9,"translate"),C(),I(10,": "),D(11,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),Ge()}if(2&n){const e=z().$implicit,i=z(2);d(3),oe(B(4,4,"routes.source")),d(5),oe(B(9,6,"routes.destination")),d(3),Dn("id",e.dst),w("elementType",i.labeledElementTypes.Transport)}}function gQ(n,t){1&n&&($e(0),D(1,"div",44)(2,"span",1),I(3),R(4,"translate"),C(),I(5,": --- "),C(),D(6,"div",44)(7,"span",1),I(8),R(9,"translate"),C(),I(10,": --- "),C(),Ge()),2&n&&(d(3),oe(B(4,2,"routes.source")),d(5),oe(B(9,4,"routes.destination")))}function bQ(n,t){if(1&n){const e=tt();D(0,"tr")(1,"td")(2,"div",33)(3,"div",43)(4,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",34)(6,"div",44)(7,"span",1),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",44)(12,"span",1),I(13),R(14,"translate"),C(),I(15),C(),j(16,mQ,13,10,"ng-container",20),j(17,_Q,12,8,"ng-container",20),j(18,gQ,11,6,"ng-container",20),C(),xe(19,"div",45),D(20,"div",35)(21,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(22,"translate"),D(23,"mat-icon"),I(24),C()()()()()()}if(2&n){const e=t.$implicit,i=z(2);d(4),w("checked",i.selections.get(e.key)),d(4),oe(B(9,10,"routes.key")),d(2),me(": ",e.key," "),d(3),oe(B(14,12,"routes.type")),d(2),me(": ",i.getTypeName(e.type)," "),d(1),w("ngIf",e.appFields||e.forwardFields),d(1),w("ngIf",!e.appFields&&!e.forwardFields&&e.intermediaryForwardFields),d(1),w("ngIf",!e.appFields&&!e.forwardFields&&!e.intermediaryForwardFields),d(3),w("matTooltip",B(22,14,"common.options")),d(3),oe("add")}}function vQ(n,t){if(1&n&&xe(0,"app-view-all-link",48),2&n){const e=z(2);w("numberOfElements",e.filteredRoutes.length)("linkParts",Ve(3,eM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const yQ=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},MQ=function(n){return{"d-lg-none d-xl-table":n}},wQ=function(n){return{"d-lg-table d-xl-none":n}};function xQ(n,t){if(1&n){const e=tt();D(0,"div",24)(1,"div",25)(2,"table",26)(3,"tr"),xe(4,"th"),D(5,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.keySortData))}),I(6),R(7,"translate"),j(8,oQ,2,2,"mat-icon",28),C(),D(9,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),I(10),R(11,"translate"),j(12,sQ,2,2,"mat-icon",28),C(),D(13,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.sourceSortData))}),I(14),R(15,"translate"),j(16,aQ,2,2,"mat-icon",28),C(),D(17,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.destinationSortData))}),I(18),R(19,"translate"),j(20,lQ,2,2,"mat-icon",28),C(),xe(21,"th",29),C(),j(22,hQ,19,14,"tr",30),C(),D(23,"table",31)(24,"tr",32),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(25,"td")(26,"div",33)(27,"div",34)(28,"div",1),I(29),R(30,"translate"),C(),D(31,"div"),I(32),R(33,"translate"),j(34,fQ,3,3,"ng-container",20),j(35,pQ,3,3,"ng-container",20),C()(),D(36,"div",35)(37,"mat-icon",36),I(38,"keyboard_arrow_down"),C()()()()(),j(39,bQ,25,16,"tr",30),C(),j(40,vQ,1,5,"app-view-all-link",37),C()()}if(2&n){const e=z();d(1),w("ngClass",ln(31,yQ,e.showShortList_,!e.showShortList_)),d(1),w("ngClass",Ve(34,MQ,e.showShortList_)),d(4),me(" ",B(7,19,"routes.key")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.keySortData),d(2),me(" ",B(11,21,"routes.type")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),d(2),me(" ",B(15,23,"routes.source")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.sourceSortData),d(2),me(" ",B(19,25,"routes.destination")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.destinationSortData),d(2),w("ngForOf",e.dataSource),d(1),w("ngClass",Ve(36,wQ,e.showShortList_)),d(6),oe(B(30,27,"tables.sorting-title")),d(3),me("",B(33,29,e.dataSorter.currentSortingColumn.label)," "),d(2),w("ngIf",e.dataSorter.currentlySortingByLabel),d(1),w("ngIf",e.dataSorter.sortingInReverseOrder),d(2),w("inline",!0),d(2),w("ngForOf",e.dataSource),d(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function CQ(n,t){1&n&&(D(0,"span",52),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"routes.empty")))}function kQ(n,t){1&n&&(D(0,"span",52),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"routes.empty-with-filter")))}function SQ(n,t){if(1&n&&(D(0,"div",24)(1,"div",49)(2,"mat-icon",50),I(3,"warning"),C(),j(4,CQ,3,3,"span",51),j(5,kQ,3,3,"span",51),C()()),2&n){const e=z();d(2),w("inline",!0),d(2),w("ngIf",0===e.allRoutes.length),d(1),w("ngIf",0!==e.allRoutes.length)}}function DQ(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Ve(4,eM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const TQ=function(n){return{"paginator-icons-fixer":n}};class xu{constructor(t,e,i,o,s,a,l){this.routeService=t,this.dialog=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listId="rl",this.keySortData=new Nn(["key"],"routes.key",Jt.Number),this.typeSortData=new Nn(["type"],"routes.type",Jt.Number),this.sourceSortData=new Nn(["src"],"routes.source",Jt.Text,["src_label"]),this.destinationSortData=new Nn(["dst"],"routes.destination",Jt.Text,["dst_label"]),this.labeledElementTypes=yr,this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"routes.filter-dialog.key",keyNameInElementsArray:"key",type:Zn.TextInput,maxlength:8},{filterName:"routes.filter-dialog.source",keyNameInElementsArray:"src",secondaryKeyNameInElementsArray:"src_label",type:Zn.TextInput,maxlength:66},{filterName:"routes.filter-dialog.destination",keyNameInElementsArray:"dst",secondaryKeyNameInElementsArray:"dst_label",type:Zn.TextInput,maxlength:66}],this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Int. forward"]]),this.operationSubscriptionsGroup=[],this.dataSorter=new pu(this.dialog,this.translateService,this.storageService,[this.keySortData,this.typeSortData,this.sourceSortData,this.destinationSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()});const M={filterName:"routes.filter-dialog.type",keyNameInElementsArray:"type",type:Zn.Select,printableLabelsForValues:[{value:"",label:"routes.filter-dialog.any-type-option"}]};this.ruleTypes.forEach((P,Y)=>{M.printableLabelsForValues.push({value:Y+"",label:P})}),this.filterProperties=[M].concat(this.filterProperties),this.dataFilterer=new mu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(P=>{this.filteredRoutes=P,this.dataSorter.setData(this.filteredRoutes)}),this.navigationsSubscription=this.route.paramMap.subscribe(P=>{if(P.has("page")){let Y=Number.parseInt(P.get("page"),10);(isNaN(Y)||Y<1)&&(Y=1),this.currentPageInUrl=Y,this.recalculateElementsToShow()}})}set showShortList(t){this.showShortList_=t,this.dataSorter.setData(this.filteredRoutes)}set routes(t){this.allRoutes=t,this.allRoutes.forEach(e=>{if(e.type=e.ruleSummary.ruleType||0===e.ruleSummary.ruleType?e.ruleSummary.ruleType:"",e.appFields||e.forwardFields){const i=e.appFields?e.appFields.routeDescriptor:e.forwardFields.routeDescriptor;e.src=i.srcPk,e.src_label=Or.getCompleteLabel(this.storageService,this.translateService,e.src),e.dst=i.dstPk,e.dst_label=Or.getCompleteLabel(this.storageService,this.translateService,e.dst)}else e.intermediaryForwardFields?(e.src="",e.src_label="",e.dst=e.intermediaryForwardFields.nextTid,e.dst_label=Or.getCompleteLabel(this.storageService,this.translateService,e.dst)):(e.src="",e.src_label="",e.dst="",e.dst_label="")}),this.dataFilterer.setData(this.allRoutes)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}refreshData(){Je.refreshCurrentDisplayedData()}getTypeName(t){return this.ruleTypes.has(t)?this.ruleTypes.get(t):"Unknown"}changeSelection(t){this.selections.get(t.key)?this.selections.set(t.key,!1):this.selections.set(t.key,!0)}hasSelectedElements(){if(!this.selections)return!1;let t=!1;return this.selections.forEach(e=>{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}deleteSelected(){const t=Wt.createConfirmationDialog(this.dialog,"routes.delete-selected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing();const e=[];this.selections.forEach((i,o)=>{i&&e.push(o)}),this.deleteRecursively(e,t)})}showOptionsDialog(t){$i.openDialog(this.dialog,[{icon:"visibility",label:"routes.details.title"},{icon:"close",label:"routes.delete"}],"common.options").afterClosed().subscribe(i=>{1===i?this.details(t):2===i&&this.delete(t.key)})}details(t){pc.openDialog(this.dialog,t)}delete(t){const e=Wt.createConfirmationDialog(this.dialog,"routes.delete-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(t).subscribe(()=>{e.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")},i=>{i=Qt(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)}))})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredRoutes){const t=this.showShortList_?Ht.maxShortListElements:Ht.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredRoutes.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.routesToShow=this.filteredRoutes.slice(e,e+t);const o=new Map;this.routesToShow.forEach(a=>{o.set(a.key,!0),this.selections.has(a.key)||this.selections.set(a.key,!1)});const s=[];this.selections.forEach((a,l)=>{o.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.routesToShow=null,this.selections=new Map;this.dataSource=this.routesToShow}startDeleting(t){return this.routeService.delete(Je.getCurrentNodeKey(),t.toString())}deleteRecursively(t,e){this.operationSubscriptionsGroup.push(this.startDeleting(t[t.length-1]).subscribe(()=>{t.pop(),0===t.length?(e.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")):this.deleteRecursively(t,e)},i=>{Je.refreshCurrentDisplayedData(),i=Qt(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)}))}}xu.\u0275fac=function(t){return new(t||xu)(F(mc),F(Fn),F(vr),F(Xt),F(cn),F(no),F(ti))},xu.\u0275cmp=qe({type:xu,selectors:[["app-route-list"]],inputs:{nodePK:"nodePK",showShortList:"showShortList",routes:"routes"},decls:23,vars:22,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline",4,"ngIf"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],["shortTextLength","7",3,"short","id","elementType","labelEdited"],["shortTextLength","5",3,"short","id","elementType","labelEdited"],[1,"check-part"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[3,"id","elementType","labelEdited"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),j(2,XX,6,7,"span",2),j(3,tQ,5,4,"div",3),C(),D(4,"div",4)(5,"div",5),j(6,nQ,3,4,"mat-icon",6),j(7,iQ,2,1,"mat-icon",7),D(8,"mat-menu",8,9)(10,"div",10),ye("click",function(){return e.changeAllSelections(!0)}),I(11),R(12,"translate"),C(),D(13,"div",10),ye("click",function(){return e.changeAllSelections(!1)}),I(14),R(15,"translate"),C(),D(16,"div",11),ye("click",function(){return e.deleteSelected()}),I(17),R(18,"translate"),C()()(),j(19,rQ,1,6,"app-paginator",12),C()(),j(20,xQ,41,38,"div",13),j(21,SQ,6,3,"div",13),j(22,DQ,1,6,"app-paginator",12)),2&t&&(w("ngClass",Ve(20,TQ,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),d(2),w("ngIf",e.showShortList_),d(1),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),d(3),w("ngIf",e.allRoutes&&e.allRoutes.length>0),d(1),w("ngIf",e.dataSource&&e.dataSource.length>0),d(1),w("overlapTrigger",!1),d(3),me(" ",B(12,14,"selection.select-all")," "),d(3),me(" ",B(15,16,"selection.unselect-all")," "),d(2),Dn("disabled",!e.hasSelectedElements()),d(1),me(" ",B(18,18,"selection.delete-all")," "),d(2),w("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),d(1),w("ngIf",e.dataSource&&e.dataSource.length>0),d(1),w("ngIf",!e.dataSource||0===e.dataSource.length),d(1),w("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[On,Ci,Ot,Wr,il,Cn,gi,gu,ma,bu,pa,ul,As,Or,Ct],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]});class np{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.node=t,this.routes=t.routes})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function LQ(n,t){if(1&n&&(D(0,"mat-option",6),I(1),R(2,"translate"),C()),2&n){const e=t.$implicit;w("value",e.days),d(1),oe(B(2,2,e.text))}}np.\u0275fac=function(t){return new(t||np)},np.\u0275cmp=qe({type:np,selectors:[["app-routing"]],decls:2,vars:5,consts:[[3,"node","showShortList"],[3,"routes","showShortList","nodePK"]],template:function(t,e){1&t&&xe(0,"app-transport-list",0)(1,"app-route-list",1),2&t&&(w("node",e.node)("showShortList",!0),d(1),w("routes",e.routes)("showShortList",!0)("nodePK",e.nodePK))},dependencies:[wu,xu]});class _c{constructor(t,e,i){this.data=t,this.dialogRef=e,this.formBuilder=i}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.smallModalWidth,t.open(_c,i)}ngOnInit(){this.filters=[{text:"apps.log.filter.7-days",days:7},{text:"apps.log.filter.1-month",days:30},{text:"apps.log.filter.3-months",days:90},{text:"apps.log.filter.6-months",days:180},{text:"apps.log.filter.1-year",days:365},{text:"apps.log.filter.all",days:-1}],this.form=this.formBuilder.group({filter:[this.data.days]}),this.formSubscription=this.form.get("filter").valueChanges.subscribe(t=>{this.dialogRef.close(this.filters.find(e=>e.days===t))})}ngOnDestroy(){this.formSubscription.unsubscribe()}}_c.\u0275fac=function(t){return new(t||_c)(F(Si),F(Vn),F(xr))},_c.\u0275cmp=qe({type:_c,selectors:[["app-log-filter"]],decls:10,vars:9,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","filter"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),D(8,"mat-select",4),j(9,LQ,3,4,"mat-option",5),C()()()()()),2&t&&(w("headline",B(1,5,"apps.log.filter.title"))("dialog",e.dialogRef),d(2),w("formGroup",e.form),d(4),oe(B(7,7,"apps.log.filter.filter")),d(3),w("ngForOf",e.filters))},dependencies:[Ci,Yi,Ri,Ni,ni,Di,tr,Zf,nu,Rn,Ct],styles:["mat-form-field[_ngcontent-%COMP%]{margin-bottom:-24px}"]});const EQ=["content"],IQ=function(n){return{totalLogs:n}};function PQ(n,t){if(1&n&&(D(0,"app-button",10)(1,"div",11),I(2),R(3,"translate"),C()()),2&n){const e=z();d(2),me(" ",Pt(3,1,"apps.log.view-all",Ve(4,IQ,e.totalLogs))," ")}}function OQ(n,t){if(1&n&&(D(0,"div",12)(1,"span",3),I(2),C(),I(3),C()),2&n){const e=t.$implicit;d(2),me(" ",e.time," "),d(1),me(" ",e.msg," ")}}function AQ(n,t){1&n&&(D(0,"div",13),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"apps.log.empty")," "))}function FQ(n,t){1&n&&xe(0,"app-loading-indicator",14),2&n&&w("showWhite",!1)}class gc{constructor(t,e,i,o,s,a){this.data=t,this.dialogRef=e,this.appsService=i,this.dialog=o,this.snackbarService=s,this.apiService=a,this.logMessages=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.loading=!1,this.currentFilter={text:"apps.log.filter.7-days",days:7},this.shouldShowError=!0}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.largeModalWidth,t.open(gc,i)}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription()}filter(){_c.openDialog(this.dialog,this.currentFilter).afterClosed().subscribe(t=>{t&&(this.currentFilter=t,this.logMessages=[],this.loadData(0))})}getLogsUrl(){return"/"+this.apiService.apiPrefix+this.appsService.getLogMessagesUrl(Je.getCurrentNodeKey(),this.data.name)}loadData(t){this.removeSubscription(),this.loading=!0,this.subscription=We(1).pipe(Ai(t),Ne(()=>this.appsService.getLogMessages(Je.getCurrentNodeKey(),this.data.name,this.currentFilter.days))).subscribe(e=>this.onLogsReceived(e),e=>this.onLogsError(e))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}onLogsReceived(t=[]){this.loading=!1,this.shouldShowError=!0,this.snackbarService.closeCurrentIfTemporaryError();let e=0;this.hasMoreLogMessages=!1,this.totalLogs=t.length,t.forEach(i=>{if(e<5e3){const o=i.startsWith("[")?0:-1,s=-1!==o?i.indexOf("]"):-1;this.logMessages.push(-1!==o&&-1!==s?{time:i.substr(o,s+1),msg:i.substr(s+1)}:{time:"",msg:i})}else this.hasMoreLogMessages=!0;e+=1}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}onLogsError(t){t=Qt(t),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,t),this.shouldShowError=!1),this.loadData(Ht.connectionRetryDelay)}}gc.\u0275fac=function(t){return new(t||gc)(F(Si),F(Vn),F(wo),F(Fn),F(cn),F(yo))},gc.\u0275cmp=qe({type:gc,selectors:[["app-log"]],viewQuery:function(t,e){if(1&t&&ft(EQ,5),2&t){let i;nt(i=it())&&(e.content=i.first)}},decls:18,vars:17,consts:[[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"filter-link-container"],[1,"filter-link","subtle-transparent-button",3,"click"],[1,"transparent"],["content",""],["target","_blank",3,"href"],["class","full-logs-button","color","primary",4,"ngIf"],["class","app-log-message",4,"ngFor","ngForOf"],["class","app-log-empty mt-3",4,"ngIf"],[3,"showWhite",4,"ngIf"],["color","primary",1,"full-logs-button"],[1,"text-container"],[1,"app-log-message"],[1,"app-log-empty","mt-3"],[3,"showWhite"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1)(3,"div",2),ye("click",function(){return e.filter()}),D(4,"span",3),I(5),R(6,"translate"),C(),I(7,"\xa0 "),D(8,"span"),I(9),R(10,"translate"),C()()(),D(11,"mat-dialog-content",null,4)(13,"a",5),j(14,PQ,4,6,"app-button",6),C(),j(15,OQ,4,2,"div",7),j(16,AQ,3,3,"div",8),j(17,FQ,1,1,"app-loading-indicator",9),C()()),2&t&&(w("headline",B(1,11,"apps.log.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",e.dialogRef),d(5),oe(B(6,13,"apps.log.filter-button")),d(4),oe(B(10,15,e.currentFilter.text)),d(4),w("href",e.getLogsUrl(),_s),d(1),w("ngIf",e.hasMoreLogMessages),d(1),w("ngForOf",e.logMessages),d(1),w("ngIf",!(e.loading||e.logMessages&&0!==e.logMessages.length)),d(1),w("ngIf",e.loading))},dependencies:[Ci,Ot,IL,ii,Rn,io,Ct],styles:[".mat-mdc-dialog-content[_ngcontent-%COMP%]{font-size:.875rem}.app-log-message[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.app-log-message[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.app-log-message[_ngcontent-%COMP%]:first-of-type{margin-top:0}.app-log-message[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.filter-link-container[_ngcontent-%COMP%]{text-align:center;margin:15px 0}.filter-link-container[_ngcontent-%COMP%] .filter-link[_ngcontent-%COMP%]{display:inline-block;background:#F8F9F9;padding:5px 10px;border-radius:1000px;font-size:.875rem;text-align:center;color:#215f9e;cursor:pointer}.filter-link-container[_ngcontent-%COMP%] .filter-link[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#215f9e80}.full-logs-button[_ngcontent-%COMP%] button{width:100%!important;display:block;text-align:center;margin-bottom:15px}.full-logs-button[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%}"]});const RQ=["button"],NQ=["firstInput"],Fg=function(n){return{"element-disabled":n}};function YQ(n,t){if(1&n&&(D(0,"mat-form-field",2)(1,"div",3)(2,"label",4),I(3),R(4,"translate"),C(),xe(5,"input",12),C()()),2&n){const e=z();w("ngClass",Ve(4,Fg,e.disableDismiss)),d(3),oe(B(4,2,"apps.vpn-socks-server-settings.netifc"))}}function BQ(n,t){if(1&n){const e=tt();D(0,"div",13)(1,"mat-checkbox",14),ye("change",function(o){return Pe(e),Oe(z().setSecureMode(o))}),I(2),R(3,"translate"),D(4,"mat-icon",15),R(5,"translate"),I(6,"help"),C()()()}if(2&n){const e=z();d(1),w("checked",e.secureMode)("ngClass",Ve(9,Fg,e.disableDismiss)),d(1),me(" ",B(3,5,"apps.vpn-socks-server-settings.secure-mode-check")," "),d(2),w("inline",!0)("matTooltip",B(5,7,"apps.vpn-socks-server-settings.secure-mode-info"))}}class bc{constructor(t,e,i,o,s,a){this.data=t,this.appsService=e,this.formBuilder=i,this.dialogRef=o,this.snackbarService=s,this.dialog=a,this.configuringVpn=!1,this.secureMode=!1,-1!==t.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.mediumModalWidth,t.open(bc,i)}ngOnInit(){if(this.form=this.formBuilder.group({password:[""],passwordConfirmation:["",this.validatePasswords.bind(this)],netifc:[""]}),this.formSubscription=this.form.get("password").valueChanges.subscribe(()=>{this.form.get("passwordConfirmation").updateValueAndValidity()}),this.data.args&&this.data.args.length>0)for(let t=0;tthis.firstInput.nativeElement.focus())}ngOnDestroy(){this.formSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setSecureMode(t){this.button.disabled||(this.secureMode=!!t.checked)}saveChanges(){if(!this.form.valid||this.button.disabled)return;const t=this.form.get("password").value?"apps.vpn-socks-server-settings.change-passowrd-confirmation":"apps.vpn-socks-server-settings.remove-passowrd-confirmation",e=Wt.createConfirmationDialog(this.dialog,t);e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.continueSavingChanges()})}continueSavingChanges(){this.button.showLoading();const t={passcode:this.form.get("password").value};this.configuringVpn&&(t.secure=this.secureMode,t.netifc=this.form.get("netifc").value),this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,t).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-server-settings.changes-made"),this.dialogRef.close()}onError(t){this.button.showError(),t=Qt(t),this.snackbarService.showError(t)}validatePasswords(){return this.form&&this.form.get("password").value!==this.form.get("passwordConfirmation").value?{invalid:!0}:null}}bc.\u0275fac=function(t){return new(t||bc)(F(Si),F(wo),F(xr),F(Vn),F(cn),F(Fn))},bc.\u0275cmp=qe({type:bc,selectors:[["app-skysocks-settings"]],viewQuery:function(t,e){if(1&t&&(ft(RQ,5),ft(NQ,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:27,vars:27,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],["firstInput",""],["id","passwordConfirmation","type","password","formControlName","passwordConfirmation","maxlength","100","matInput",""],[3,"ngClass",4,"ngIf"],["class","main-theme settings-option",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["id","netifc","type","text","formControlName","netifc","matInput",""],[1,"main-theme","settings-option"],["color","primary",3,"checked","ngClass","change"],[1,"help-icon",3,"inline","matTooltip"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field",2)(4,"div",3)(5,"label",4),I(6),R(7,"translate"),C(),xe(8,"input",5,6),C()(),D(10,"mat-form-field",2)(11,"div",3)(12,"label",4),I(13),R(14,"translate"),C(),xe(15,"input",7,6),C(),D(17,"mat-error")(18,"span"),I(19),R(20,"translate"),C()()(),j(21,YQ,6,6,"mat-form-field",8),j(22,BQ,7,11,"div",9),C(),D(23,"app-button",10,11),ye("action",function(){return e.saveChanges()}),I(25),R(26,"translate"),C()()),2&t&&(w("headline",B(1,13,"apps.vpn-socks-server-settings."+(e.configuringVpn?"vpn-title":"socks-title")))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),d(2),w("formGroup",e.form),d(1),w("ngClass",Ve(23,Fg,e.disableDismiss)),d(3),oe(B(7,15,"apps.vpn-socks-server-settings.new-password")),d(4),w("ngClass",Ve(25,Fg,e.disableDismiss)),d(3),oe(B(14,17,"apps.vpn-socks-server-settings.repeat-password")),d(6),oe(B(20,19,"apps.vpn-socks-server-settings.passwords-not-match")),d(2),w("ngIf",e.configuringVpn),d(1),w("ngIf",e.configuringVpn),d(1),w("disabled",!e.form.valid),d(2),me(" ",B(26,21,"apps.vpn-socks-server-settings.save")," "))},dependencies:[On,Ot,Yi,Fi,Ri,Ni,wr,ni,Di,tr,sl,Cr,Cn,gi,pa,ii,Rn,Ct],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]});const HQ=["firstInput"];class vc{constructor(t,e,i){this.dialogRef=t,this.data=e,this.formBuilder=i}static openDialog(t,e){const i=new An;return i.data=e||"",i.autoFocus=!1,i.width=Ht.smallModalWidth,t.open(vc,i)}ngOnInit(){this.form=this.formBuilder.group({note:[this.data]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const t=this.form.get("note").value.trim();this.dialogRef.close("-"+t)}}vc.\u0275fac=function(t){return new(t||vc)(F(Vn),F(Si),F(xr))},vc.\u0275cmp=qe({type:vc,selectors:[["app-edit-skysocks-client-note"]],viewQuery:function(t,e){if(1&t&&ft(HQ,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","note","maxlength","100","matInput",""],["firstInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return e.finish()}),I(11),R(12,"translate"),C()()),2&t&&(w("headline",B(1,5,"apps.vpn-socks-client-settings.change-note-dialog.title"))("dialog",e.dialogRef),d(2),w("formGroup",e.form),d(4),oe(B(7,7,"apps.vpn-socks-client-settings.change-note-dialog.note")),d(5),oe(B(12,9,"common.save")))},dependencies:[Yi,Fi,Ri,Ni,wr,ni,Di,tr,Cr,ii,Rn,Ct]});const ga={AF:"Afghanistan",AX:"Aland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (North)",KR:"Korea (South)",XK:"Kosovo",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Laos",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libyan Arab Jamahiriya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",AN:"Netherlands Antilles",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestinian Territory, Occupied",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",ME:"Montenegro",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown"};function VQ(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z().$implicit,i=z(2);d(1),oe(i.completeCountriesList[e.toUpperCase()])}}function jQ(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z().$implicit;d(1),oe(e.toUpperCase())}}function zQ(n,t){if(1&n&&(D(0,"mat-option",10)(1,"div",12),xe(2,"div"),C(),j(3,VQ,2,1,"ng-container",2),j(4,jQ,2,1,"ng-container",2),C()),2&n){const e=t.$implicit,i=z(2);w("value",e.toUpperCase()),d(2),ci("background-image: url('assets/img/flags/"+e.toLocaleLowerCase()+".png');"),d(1),w("ngIf",i.completeCountriesList[e.toUpperCase()]),d(1),w("ngIf",!i.completeCountriesList[e.toUpperCase()])}}function UQ(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),me(" ",B(2,1,"apps.vpn-socks-client-settings.filter-dialog.any-country")," "))}function WQ(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z(3);d(1),oe(e.completeCountriesList[e.form.get("country").value])}}function $Q(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z(3);d(1),oe(e.form.get("country").value)}}function GQ(n,t){if(1&n&&($e(0),D(1,"div",12),xe(2,"div"),C(),j(3,WQ,2,1,"ng-container",2),j(4,$Q,2,1,"ng-container",2),Ge()),2&n){const e=z(2);d(2),ci("background-image: url('assets/img/flags/"+e.form.get("country").value.toLocaleLowerCase()+".png');"),d(1),w("ngIf",e.completeCountriesList[e.form.get("country").value]),d(1),w("ngIf",!e.completeCountriesList[e.form.get("country").value])}}function qQ(n,t){if(1&n&&(D(0,"mat-form-field")(1,"div",3)(2,"label",4),I(3),R(4,"translate"),C(),D(5,"mat-select",9)(6,"mat-option",10),I(7),R(8,"translate"),C(),j(9,zQ,5,5,"mat-option",11),D(10,"mat-select-trigger"),j(11,UQ,3,3,"ng-container",2),j(12,GQ,5,4,"ng-container",2),C()()()()),2&n){const e=z();d(3),oe(B(4,6,"apps.vpn-socks-client-settings.filter-dialog.country")),d(3),w("value","-"),d(1),oe(B(8,8,"apps.vpn-socks-client-settings.filter-dialog.any-country")),d(2),w("ngForOf",e.data.availableCountries),d(2),w("ngIf","-"===e.form.get("country").value),d(1),w("ngIf","-"!==e.form.get("country").value)}}class zI{constructor(){this.country="",this.location="",this.key=""}}class yc{constructor(t,e,i){this.data=t,this.dialogRef=e,this.formBuilder=i,this.completeCountriesList=ga}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.smallModalWidth,t.open(yc,i)}ngOnInit(){this.form=this.formBuilder.group({country:[this.data.currentFilters.country?this.data.currentFilters.country:"-"],"location-text":[this.data.currentFilters.location],"key-text":[this.data.currentFilters.key]})}apply(){const t=new zI;let e=this.form.get("country").value.trim();"-"===e&&(e=""),t.country=e,t.location=this.form.get("location-text").value.trim(),t.key=this.form.get("key-text").value.trim(),this.dialogRef.close(t)}}yc.\u0275fac=function(t){return new(t||yc)(F(Si),F(Vn),F(xr))},yc.\u0275cmp=qe({type:yc,selectors:[["app-skysocks-client-filter"]],decls:20,vars:15,consts:[[3,"headline","dialog"],[3,"formGroup"],[4,"ngIf"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","location-text","maxlength","100","matInput",""],["formControlName","key-text","maxlength","66","matInput",""],["type","mat-raised-button","color","primary",1,"float-right",3,"action"],["button",""],["formControlName","country","id","country"],[3,"value"],[3,"value",4,"ngFor","ngForOf"],[1,"flag-container"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1),j(3,qQ,13,10,"mat-form-field",2),D(4,"mat-form-field")(5,"div",3)(6,"label",4),I(7),R(8,"translate"),C(),xe(9,"input",5),C()(),D(10,"mat-form-field")(11,"div",3)(12,"label",4),I(13),R(14,"translate"),C(),xe(15,"input",6),C()()(),D(16,"app-button",7,8),ye("action",function(){return e.apply()}),I(18),R(19,"translate"),C()()),2&t&&(w("headline",B(1,7,"apps.vpn-socks-client-settings.filter-dialog.title"))("dialog",e.dialogRef),d(2),w("formGroup",e.form),d(1),w("ngIf",e.data.availableCountries.length>0),d(4),oe(B(8,9,"apps.vpn-socks-client-settings.filter-dialog.location")),d(6),oe(B(14,11,"apps.vpn-socks-client-settings.filter-dialog.pub-key")),d(5),me(" ",B(19,13,"apps.vpn-socks-client-settings.filter-dialog.apply")," "))},dependencies:[Ci,Ot,Yi,Fi,Ri,Ni,wr,ni,Di,tr,Cr,Zf,uG,nu,ii,Rn,Ct]});const KQ=["firstInput"];class Mc{constructor(t,e){this.dialogRef=t,this.formBuilder=e}static openDialog(t){const e=new An;return e.autoFocus=!1,e.width=Ht.smallModalWidth,t.open(Mc,e)}ngOnInit(){this.form=this.formBuilder.group({password:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const t=this.form.get("password").value;this.dialogRef.close("-"+t)}}Mc.\u0275fac=function(t){return new(t||Mc)(F(Vn),F(xr))},Mc.\u0275cmp=qe({type:Mc,selectors:[["app-skysocks-client-password"]],viewQuery:function(t,e){if(1&t&&ft(KQ,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:16,vars:14,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"info"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","id","password","formControlName","password","maxlength","100","matInput",""],["firstInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"div",2),I(4),R(5,"translate"),C(),D(6,"mat-form-field")(7,"div",3)(8,"label",4),I(9),R(10,"translate"),C(),xe(11,"input",5,6),C()()(),D(13,"app-button",7),ye("action",function(){return e.finish()}),I(14),R(15,"translate"),C()()),2&t&&(w("headline",B(1,6,"apps.vpn-socks-client-settings.password-dialog.title"))("dialog",e.dialogRef),d(2),w("formGroup",e.form),d(2),oe(B(5,8,"apps.vpn-socks-client-settings.password-dialog.info")),d(5),oe(B(10,10,"apps.vpn-socks-client-settings.password-dialog.password")),d(5),me(" ",B(15,12,"apps.vpn-socks-client-settings.password-dialog.continue-button")," "))},dependencies:[Yi,Fi,Ri,Ni,wr,ni,Di,tr,Cr,ii,Rn,Ct],styles:[".info[_ngcontent-%COMP%]{font-size:.7rem;margin-bottom:15px}"]});class Cu{constructor(t){this.http=t,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type="}getServices(t){const e=[];return this.http.get(this.discoveryServiceUrl+(t?"proxy":"vpn")).pipe(Qf(i=>i.pipe(Ai(4e3))),Ce(i=>(i||(i=[]),i.forEach(o=>{const s=new S$,a=o.address.split(":");2===a.length&&(s.address=o.address,s.pk=a[0],s.port=a[1],s.location="",o.geo&&(o.geo.country&&(s.country=o.geo.country,s.location+=ga[o.geo.country.toUpperCase()]?ga[o.geo.country.toUpperCase()]:o.geo.country),o.geo.region&&o.geo.country&&(s.location+=", "),o.geo.region&&(s.region=o.geo.region,s.location+=s.region)),e.push(s))}),e)))}}function ZQ(n,t){}Cu.\u0275fac=function(t){return new(t||Cu)(we($l))},Cu.\u0275prov=Ye({token:Cu,factory:Cu.\u0275fac,providedIn:"root"});const XQ=function(n){return{animationDuration:n}},QQ=function(n,t){return{value:n,params:t}};function JQ(n,t){1&n&&vn(0)}const UI=["*"],eJ=["tabListContainer"],tJ=["tabList"],nJ=["tabListInner"],iJ=["nextPaginator"],rJ=["previousPaginator"],oJ=["tabBodyWrapper"],sJ=["tabHeader"];function aJ(n,t){}function lJ(n,t){1&n&&j(0,aJ,0,0,"ng-template",14),2&n&&w("cdkPortalOutlet",z().$implicit.templateLabel)}function cJ(n,t){1&n&&I(0),2&n&&oe(z().$implicit.textLabel)}function dJ(n,t){if(1&n){const e=tt();D(0,"div",6,7),ye("click",function(){const o=Pe(e),s=o.$implicit,a=o.index,l=z(),c=li(1);return Oe(l._handleClick(s,c,a))})("cdkFocusChange",function(o){const a=Pe(e).index;return Oe(z()._tabFocusChanged(o,a))}),xe(2,"span",8)(3,"div",9),D(4,"span",10)(5,"span",11),j(6,lJ,1,1,"ng-template",12),j(7,cJ,1,1,"ng-template",null,13,Ms),C()()()}if(2&n){const e=t.$implicit,i=t.index,o=li(1),s=li(8),a=z();Gt("mdc-tab--active",a.selectedIndex===i),w("id",a._getTabLabelId(i))("ngClass",e.labelClass)("disabled",e.disabled)("fitInkBarToContent",a.fitInkBarToContent),Ut("tabIndex",a._getTabIndex(e,i))("aria-posinset",i+1)("aria-setsize",a._tabs.length)("aria-controls",a._getTabContentId(i))("aria-selected",a.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),d(3),w("matRippleTrigger",o)("matRippleDisabled",e.disabled||a.disableRipple),d(3),w("ngIf",e.templateLabel)("ngIfElse",s)}}function uJ(n,t){if(1&n){const e=tt();D(0,"mat-tab-body",15),ye("_onCentered",function(){return Pe(e),Oe(z()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return Pe(e),Oe(z()._setTabBodyWrapperHeight(o))}),C()}if(2&n){const e=t.$implicit,i=t.index,o=z();Gt("mat-mdc-tab-body-active",o.selectedIndex===i),w("id",o._getTabContentId(i))("ngClass",e.bodyClass)("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Ut("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(i))}}const hJ={translateTab:ra("translateTab",[mo("center, void, left-origin-center, right-origin-center",Kn({transform:"none"})),mo("left",Kn({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),mo("right",Kn({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Lr("* => left, * => right, left => center, right => center",Ur("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Lr("void => left-origin-center",[Kn({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Ur("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Lr("void => right-origin-center",[Kn({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Ur("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let fJ=(()=>{class n extends tl{constructor(e,i,o,s){super(e,i,s),this._host=o,this._centeringSub=T.EMPTY,this._leavingSub=T.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(bo(this._host._isCenterPosition(this._host._position))).subscribe(e=>{e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(Na),F(Xi),F(sn(()=>WI)),F(St))},n.\u0275dir=Ke({type:n,selectors:[["","matTabBodyHost",""]],features:[dt]}),n})(),pJ=(()=>{class n{constructor(e,i,o){this._elementRef=e,this._dir=i,this._dirChangeSubscription=T.EMPTY,this._translateTabComplete=new X,this._onCentering=new ht,this._beforeCentering=new ht,this._afterLeavingCenter=new ht,this._onCentered=new ht(!0),this.animationDuration="500ms",this.preserveContent=!1,i&&(this._dirChangeSubscription=i.change.subscribe(s=>{this._computePositionAnimationState(s),o.markForCheck()})),this._translateTabComplete.pipe(a1((s,a)=>s.fromState===a.fromState&&s.toState===a.toState)).subscribe(s=>{this._isCenterPosition(s.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(s.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}set position(e){this._positionIndex=e,this._computePositionAnimationState()}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){const i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e}_computePositionAnimationState(e=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center"}_computePositionFromOrigin(e){const i=this._getLayoutDirection();return"ltr"==i&&e<=0||"rtl"==i&&e>0?"left-origin-center":"right-origin-center"}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Pr,8),F(di))},n.\u0275dir=Ke({type:n,inputs:{_content:["content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}}),n})(),WI=(()=>{class n extends pJ{constructor(e,i,o){super(e,i,o)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Pr,8),F(di))},n.\u0275cmp=qe({type:n,selectors:[["mat-tab-body"]],viewQuery:function(e,i){if(1&e&&ft(tl,5),2&e){let o;nt(o=it())&&(i._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],features:[dt],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-mdc-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(e,i){1&e&&(D(0,"div",0,1),ye("@translateTab.start",function(s){return i._onTranslateTabStarted(s)})("@translateTab.done",function(s){return i._translateTabComplete.next(s)}),j(2,ZQ,0,0,"ng-template",2),C()),2&e&&w("@translateTab",ln(3,QQ,i._position,Ve(1,XQ,i.animationDuration)))},dependencies:[fJ],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[hJ.translateTab]}}),n})();const mJ=new Be("MatTabContent");let _J=(()=>{class n{constructor(e){this.template=e}}return n.\u0275fac=function(e){return new(e||n)(F(lr))},n.\u0275dir=Ke({type:n,selectors:[["","matTabContent",""]],features:[Kt([{provide:mJ,useExisting:n}])]}),n})();const gJ=new Be("MatTabLabel"),$I=new Be("MAT_TAB");let bJ=(()=>{class n extends c7{constructor(e,i,o){super(e,i),this._closestTab=o}}return n.\u0275fac=function(e){return new(e||n)(F(lr),F(Xi),F($I,8))},n.\u0275dir=Ke({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[Kt([{provide:gJ,useExisting:n}]),dt]}),n})();const tM="mdc-tab-indicator--active",GI="mdc-tab-indicator--no-transition";class vJ{constructor(t){this._items=t}hide(){this._items.forEach(t=>t.deactivateInkBar())}alignToElement(t){const e=this._items.find(o=>o.elementRef.nativeElement===t),i=this._currentItem;if(i?.deactivateInkBar(),e){const o=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(o),this._currentItem=e}}}function yJ(n){return class extends n{constructor(...t){super(...t),this._fitToContent=!1}get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(t){const e=hn(t);this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(t){const e=this.elementRef.nativeElement;if(!t||!e.getBoundingClientRect||!this._inkBarContentElement)return void e.classList.add(tM);const i=e.getBoundingClientRect(),o=t.width/i.width,s=t.left-i.left;e.classList.add(GI),this._inkBarContentElement.style.setProperty("transform",`translateX(${s}px) scaleX(${o})`),e.getBoundingClientRect(),e.classList.remove(GI),e.classList.add(tM),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this.elementRef.nativeElement.classList.remove(tM)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const t=this.elementRef.nativeElement.ownerDocument||document;this._inkBarElement=t.createElement("span"),this._inkBarContentElement=t.createElement("span"),this._inkBarElement.className="mdc-tab-indicator",this._inkBarContentElement.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",this._inkBarElement.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this.elementRef.nativeElement.querySelector(".mdc-tab__content"):this.elementRef.nativeElement).appendChild(this._inkBarElement)}}}const wJ=tu(class{}),xJ=yJ((()=>{class n extends wJ{constructor(e){super(),this.elementRef=e}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}}return n.\u0275fac=function(e){return new(e||n)(F(bt))},n.\u0275dir=Ke({type:n,features:[dt]}),n})());let qI=(()=>{class n extends xJ{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(e,i){2&e&&(Ut("aria-disabled",!!i.disabled),Gt("mat-mdc-tab-disabled",i.disabled))},inputs:{disabled:"disabled",fitInkBarToContent:"fitInkBarToContent"},features:[dt]}),n})();const CJ=tu(class{}),KI=new Be("MAT_TAB_GROUP");let kJ=(()=>{class n extends CJ{constructor(e,i){super(),this._viewContainerRef=e,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new X,this.position=null,this.origin=null,this.isActive=!1}get content(){return this._contentPortal}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Jl(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}}return n.\u0275fac=function(e){return new(e||n)(F(Xi),F(KI,8))},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(lr,7),2&e){let o;nt(o=it())&&(i._implicitContent=o.first)}},inputs:{textLabel:["label","textLabel"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},features:[dt,Gi]}),n})(),ZI=(()=>{class n extends kJ{get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275cmp=qe({type:n,selectors:[["mat-tab"]],contentQueries:function(e,i,o){if(1&e&&(Qi(o,_J,7,lr),Qi(o,bJ,5)),2&e){let s;nt(s=it())&&(i._explicitContent=s.first),nt(s=it())&&(i.templateLabel=s.first)}},inputs:{disabled:"disabled"},exportAs:["matTab"],features:[Kt([{provide:$I,useExisting:n}]),dt],ngContentSelectors:UI,decls:1,vars:0,template:function(e,i){1&e&&(_r(),j(0,JQ,1,0,"ng-template"))},encapsulation:2}),n})();const XI=Ja({passive:!0});let TJ=(()=>{class n{constructor(e,i,o,s,a,l,c){this._elementRef=e,this._changeDetectorRef=i,this._viewportRuler=o,this._dir=s,this._ngZone=a,this._platform=l,this._animationMode=c,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new X,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new X,this._disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new ht,this.indexFocused=new ht,a.runOutsideAngular(()=>{qd(e.nativeElement,"mouseleave").pipe(xn(this._destroyed)).subscribe(()=>{this._stopInterval()})})}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=hn(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){e=vo(e),this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}ngAfterViewInit(){qd(this._previousPaginator.nativeElement,"touchstart",XI).pipe(xn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),qd(this._nextPaginator.nativeElement,"touchstart",XI).pipe(xn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const e=this._dir?this._dir.change:We("ltr"),i=this._viewportRuler.change(150),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new nL(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap(),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe(ei(1)).subscribe(o),vt(e,i,this._items.changes,this._itemsResized()).pipe(xn(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(s=>{this.indexFocused.emit(s),this._setTabFocus(s)})}_itemsResized(){return"function"!=typeof ResizeObserver?Ga:this._items.changes.pipe(bo(this._items),gr(e=>new ce(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(s=>i.next(s));return e.forEach(s=>o.observe(s.elementRef.nativeElement)),()=>{o.disconnect()}}))),s1(1),ki(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!Ds(e))switch(e.keyCode){case 13:case 32:this.focusIndex!==this.selectedIndex&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e));break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){const e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){if(!this._items)return!0;const i=this._items?this._items.toArray()[e]:null;return!!i&&!i.disabled}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const e=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){return this._scrollTo(this._scrollDistance+("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;const i=this._items?this._items.toArray()[e]:null;if(!i)return;const o=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:a}=i.elementRef.nativeElement;let l,c;"ltr"==this._getLayoutDirection()?(l=s,c=l+a):(c=this._tabListInner.nativeElement.offsetWidth-s,l=c-a);const M=this.scrollDistance,P=this.scrollDistance+o;lP&&(this.scrollDistance+=c-P+60)}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const e=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),Z_(650,100).pipe(xn(vt(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:o,distance:s}=this._scrollHeader(e);(0===s||s>=o)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(di),F(Ql),F(Pr,8),F(pt),F(hi),F(Vi,8))},n.\u0275dir=Ke({type:n,inputs:{disablePagination:"disablePagination"}}),n})(),LJ=(()=>{class n extends TJ{constructor(e,i,o,s,a,l,c){super(e,i,o,s,a,l,c),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=hn(e)}_itemSelected(e){e.preventDefault()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(di),F(Ql),F(Pr,8),F(pt),F(hi),F(Vi,8))},n.\u0275dir=Ke({type:n,inputs:{disableRipple:"disableRipple"},features:[dt]}),n})(),EJ=(()=>{class n extends LJ{constructor(e,i,o,s,a,l,c){super(e,i,o,s,a,l,c)}ngAfterContentInit(){this._inkBar=new vJ(this._items),super.ngAfterContentInit()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(di),F(Ql),F(Pr,8),F(pt),F(hi),F(Vi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-tab-header"]],contentQueries:function(e,i,o){if(1&e&&Qi(o,qI,4),2&e){let s;nt(s=it())&&(i._items=s)}},viewQuery:function(e,i){if(1&e&&(ft(eJ,7),ft(tJ,7),ft(nJ,7),ft(iJ,5),ft(rJ,5)),2&e){let o;nt(o=it())&&(i._tabListContainer=o.first),nt(o=it())&&(i._tabList=o.first),nt(o=it())&&(i._tabListInner=o.first),nt(o=it())&&(i._nextPaginator=o.first),nt(o=it())&&(i._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(e,i){2&e&&Gt("mat-mdc-tab-header-pagination-controls-enabled",i._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==i._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[dt],ngContentSelectors:UI,decls:13,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-mdc-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(e,i){1&e&&(_r(),D(0,"button",0,1),ye("click",function(){return i._handlePaginatorClick("before")})("mousedown",function(s){return i._handlePaginatorPress("before",s)})("touchend",function(){return i._stopInterval()}),xe(2,"div",2),C(),D(3,"div",3,4),ye("keydown",function(s){return i._handleKeydown(s)}),D(5,"div",5,6),ye("cdkObserveContent",function(){return i._onContentChanges()}),D(7,"div",7,8),vn(9),C()()(),D(10,"button",9,10),ye("mousedown",function(s){return i._handlePaginatorPress("after",s)})("click",function(){return i._handlePaginatorClick("after")})("touchend",function(){return i._stopInterval()}),xe(12,"div",2),C()),2&e&&(Gt("mat-mdc-tab-header-pagination-disabled",i._disableScrollBefore),w("matRippleDisabled",i._disableScrollBefore||i.disableRipple)("disabled",i._disableScrollBefore||null),d(3),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode),d(7),Gt("mat-mdc-tab-header-pagination-disabled",i._disableScrollAfter),w("matRippleDisabled",i._disableScrollAfter||i.disableRipple)("disabled",i._disableScrollAfter||null))},dependencies:[Ts,K2],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"],encapsulation:2}),n})();const JI=new Be("MAT_TABS_CONFIG");let IJ=0;const PJ=If(Pf(class{constructor(n){this._elementRef=n}}),"primary");let OJ=(()=>{class n extends PJ{constructor(e,i,o,s){super(e),this._changeDetectorRef=i,this._animationMode=s,this._tabs=new Hl,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=T.EMPTY,this._tabLabelSubscription=T.EMPTY,this._dynamicHeight=!1,this._selectedIndex=null,this.headerPosition="above",this._disablePagination=!1,this._preserveContent=!1,this.selectedIndexChange=new ht,this.focusChange=new ht,this.animationDone=new ht,this.selectedTabChange=new ht(!0),this._groupId=IJ++,this.animationDuration=o&&o.animationDuration?o.animationDuration:"500ms",this.disablePagination=!(!o||null==o.disablePagination)&&o.disablePagination,this.dynamicHeight=!(!o||null==o.dynamicHeight)&&o.dynamicHeight,this.contentTabIndex=o?.contentTabIndex??null,this.preserveContent=!!o?.preserveContent}get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(e){this._dynamicHeight=hn(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=vo(e,null)}get animationDuration(){return this._animationDuration}set animationDuration(e){this._animationDuration=/^\d+$/.test(e+"")?e+"ms":e}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=vo(e,null)}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=hn(e)}get preserveContent(){return this._preserveContent}set preserveContent(e){this._preserveContent=hn(e)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){const i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}ngAfterContentChecked(){const e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));const o=this._tabBodyWrapper.nativeElement;o.style.minHeight=o.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((o,s)=>o.isActive=s===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,o)=>{i.position=o-e,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){const i=this._tabs.toArray();let o;for(let s=0;s{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(bo(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){const i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){const i=new FJ;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=vt(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`mat-tab-label-${this._groupId}-${e}`}_getTabContentId(e){return`mat-tab-content-${this._groupId}-${e}`}_setTabBodyWrapperHeight(e){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){const e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,o){e.disabled||(this.selectedIndex=i.focusIndex=o)}_getTabIndex(e,i){return e.disabled?null:i===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(e,i){e&&"mouse"!==e&&"touch"!==e&&(this._tabHeader.focusIndex=i)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(di),F(JI,8),F(Vi,8))},n.\u0275dir=Ke({type:n,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",preserveContent:"preserveContent",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[dt]}),n})(),AJ=(()=>{class n extends OJ{constructor(e,i,o,s){super(e,i,o,s),this._fitInkBarToContent=!1,this._stretchTabs=!0,this.fitInkBarToContent=!(!o||null==o.fitInkBarToContent)&&o.fitInkBarToContent}get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=hn(e),this._changeDetectorRef.markForCheck()}get stretchTabs(){return this._stretchTabs}set stretchTabs(e){this._stretchTabs=hn(e)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(di),F(JI,8),F(Vi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-tab-group"]],contentQueries:function(e,i,o){if(1&e&&Qi(o,ZI,5),2&e){let s;nt(s=it())&&(i._allTabs=s)}},viewQuery:function(e,i){if(1&e&&(ft(oJ,5),ft(sJ,5)),2&e){let o;nt(o=it())&&(i._tabBodyWrapper=o.first),nt(o=it())&&(i._tabHeader=o.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:6,hostBindings:function(e,i){2&e&&Gt("mat-mdc-tab-group-dynamic-height",i.dynamicHeight)("mat-mdc-tab-group-inverted-header","below"===i.headerPosition)("mat-mdc-tab-group-stretch-tabs",i.stretchTabs)},inputs:{color:"color",disableRipple:"disableRipple",fitInkBarToContent:"fitInkBarToContent",stretchTabs:["mat-stretch-tabs","stretchTabs"]},exportAs:["matTabGroup"],features:[Kt([{provide:KI,useExisting:n}]),dt],decls:6,vars:6,consts:[[3,"selectedIndex","disableRipple","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mdc-tab mat-mdc-tab mat-mdc-focus-indicator","role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",3,"id","mdc-tab--active","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-mdc-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-mdc-tab-body-active","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-mdc-focus-indicator",3,"id","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange"],["tabNode",""],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering"]],template:function(e,i){1&e&&(D(0,"mat-tab-header",0,1),ye("indexFocused",function(s){return i._focusChanged(s)})("selectFocusedIndex",function(s){return i.selectedIndex=s}),j(2,dJ,9,17,"div",2),C(),D(3,"div",3,4),j(5,uJ,1,11,"mat-tab-body",5),C()),2&e&&(w("selectedIndex",i.selectedIndex||0)("disableRipple",i.disableRipple),d(2),w("ngForOf",i._tabs),d(1),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode),d(2),w("ngForOf",i._tabs))},dependencies:[On,Ci,Ot,tl,Ts,v9,WI,qI,EJ],styles:['.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-tab.mdc-tab{height:48px;flex-grow:0}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none}.mat-mdc-tab .mdc-tab__text-label{display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab-indicator__content--underline,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2}),n})();class FJ{}let RJ=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[na,Hn,Xd,Ff,l1,g1,Hn]}),n})();const NJ=["button"],YJ=["settingsButton"],BJ=["firstInput"];function HJ(n,t){1&n&&($e(0),D(1,"span"),I(2),R(3,"translate"),C(),Ge()),2&n&&(d(2),oe(B(3,1,"apps.vpn-socks-client-settings.remote-key-length-error")))}function VJ(n,t){1&n&&(D(0,"span"),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"apps.vpn-socks-client-settings.remote-key-chars-error")))}const wc=function(n){return{"element-disabled":n}};function jJ(n,t){if(1&n&&(D(0,"mat-form-field",3)(1,"div",4)(2,"label",5),I(3),R(4,"translate"),C(),xe(5,"input",20),C()()),2&n){const e=z();w("ngClass",Ve(4,wc,e.disableDismiss)),d(3),oe(B(4,2,"apps.vpn-socks-client-settings.password"))}}function zJ(n,t){1&n&&(D(0,"div",21)(1,"mat-icon",22),I(2,"warning"),C(),I(3),R(4,"translate"),C()),2&n&&(d(1),w("inline",!0),d(2),me(" ",B(4,2,"apps.vpn-socks-client-settings.password-history-warning")," "))}function UJ(n,t){1&n&&xe(0,"app-loading-indicator",23),2&n&&w("showWhite",!1)}function WJ(n,t){1&n&&(D(0,"div",24)(1,"mat-icon",22),I(2,"error"),C(),I(3),R(4,"translate"),C()),2&n&&(d(1),w("inline",!0),d(2),me(" ",B(4,2,"apps.vpn-socks-client-settings.no-elements")," "))}function $J(n,t){1&n&&(D(0,"div",31),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"apps.vpn-socks-client-settings.no-filter")," "))}function GJ(n,t){if(1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n){const e=z().$implicit;d(1),oe(B(2,1,e[1]))}}function qJ(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z().$implicit;d(1),oe(e[2])}}function KJ(n,t){if(1&n&&(D(0,"div",31)(1,"span"),I(2),R(3,"translate"),C(),j(4,GJ,3,3,"ng-container",16),j(5,qJ,2,1,"ng-container",16),C()),2&n){const e=t.$implicit;d(2),me("",B(3,3,e[0])," "),d(2),w("ngIf",e[1]),d(1),w("ngIf",e[2])}}function ZJ(n,t){1&n&&(D(0,"div",24)(1,"mat-icon",22),I(2,"error"),C(),I(3),R(4,"translate"),C()),2&n&&(d(1),w("inline",!0),d(2),me(" ",B(4,2,"apps.vpn-socks-client-settings.no-elements-for-filters")," "))}const eP=function(n){return{highlighted:n}};function XJ(n,t){if(1&n&&($e(0),D(1,"span",3),I(2),C(),Ge()),2&n){const e=t.$implicit,i=t.index;d(1),w("ngClass",Ve(2,eP,i%2!=0)),d(1),oe(e)}}function QJ(n,t){if(1&n&&($e(0),D(1,"div",38),xe(2,"div"),C(),Ge()),2&n){const e=z(2).$implicit;d(2),ci("background-image: url('assets/img/flags/"+e.country.toLocaleLowerCase()+".png');")}}function JJ(n,t){if(1&n&&($e(0),D(1,"span",3),I(2),C(),Ge()),2&n){const e=t.$implicit,i=t.index;d(1),w("ngClass",Ve(2,eP,i%2!=0)),d(1),oe(e)}}function eee(n,t){if(1&n&&(D(0,"div",31)(1,"span"),I(2),R(3,"translate"),C(),D(4,"span"),I(5,"\xa0 "),j(6,QJ,3,2,"ng-container",16),j(7,JJ,3,4,"ng-container",35),C()()),2&n){const e=z().$implicit,i=z(2);d(2),oe(B(3,3,"apps.vpn-socks-client-settings.location")),d(4),w("ngIf",e.country),d(1),w("ngForOf",i.getHighlightedTextParts(e.location,i.currentFilters.location))}}function tee(n,t){if(1&n){const e=tt();D(0,"div",32)(1,"button",33),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).saveChanges(s.pk,null,!1,s.location))}),D(2,"div",34)(3,"div",31)(4,"span"),I(5),R(6,"translate"),C(),D(7,"span"),I(8,"\xa0"),j(9,XJ,3,4,"ng-container",35),C()(),j(10,eee,8,5,"div",28),C()(),D(11,"button",36),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).copyPk(s.pk))}),R(12,"translate"),D(13,"mat-icon",37),I(14,"filter_none"),C()()()}if(2&n){const e=t.$implicit,i=z(2);d(1),w("ngClass",Ve(10,wc,i.disableDismiss)),d(4),oe(B(6,6,"apps.vpn-socks-client-settings.key")),d(4),w("ngForOf",i.getHighlightedTextParts(e.pk,i.currentFilters.key)),d(1),w("ngIf",e.location),d(1),w("matTooltip",B(12,8,"apps.vpn-socks-client-settings.copy-pk-info")),d(2),w("inline",!0)}}function nee(n,t){if(1&n){const e=tt();$e(0),D(1,"button",25),ye("click",function(){return Pe(e),Oe(z().changeFilters())}),D(2,"div",26)(3,"div",27)(4,"mat-icon",22),I(5,"filter_list"),C()(),D(6,"div"),j(7,$J,3,3,"div",28),j(8,KJ,6,5,"div",29),D(9,"div",30),I(10),R(11,"translate"),C()()()(),j(12,ZJ,5,4,"div",15),j(13,tee,15,12,"div",18),Ge()}if(2&n){const e=z();d(4),w("inline",!0),d(3),w("ngIf",0===e.currentFiltersTexts.length),d(1),w("ngForOf",e.currentFiltersTexts),d(2),oe(B(11,6,"apps.vpn-socks-client-settings.click-to-change")),d(2),w("ngIf",0===e.filteredProxiesFromDiscovery.length),d(1),w("ngForOf",e.proxiesFromDiscoveryToShow)}}const iee=function(n,t){return{currentElementsRange:n,totalElements:t}};function ree(n,t){if(1&n){const e=tt();D(0,"div",39)(1,"span"),I(2),R(3,"translate"),C(),D(4,"button",40),ye("click",function(){return Pe(e),Oe(z().goToPreviousPage())}),D(5,"mat-icon"),I(6,"chevron_left"),C()(),D(7,"button",40),ye("click",function(){return Pe(e),Oe(z().goToNextPage())}),D(8,"mat-icon"),I(9,"chevron_right"),C()()()}if(2&n){const e=z();d(2),oe(Pt(3,1,"apps.vpn-socks-client-settings.pagination-info",ln(4,iee,e.currentRange,e.filteredProxiesFromDiscovery.length)))}}const oee=function(n){return{number:n}};function see(n,t){if(1&n&&(D(0,"div")(1,"div",24)(2,"mat-icon",22),I(3,"error"),C(),I(4),R(5,"translate"),C()()),2&n){const e=z();d(2),w("inline",!0),d(2),me(" ",Pt(5,2,"apps.vpn-socks-client-settings.no-history",Ve(5,oee,e.maxHistoryElements))," ")}}function aee(n,t){1&n&&Xo(0)}function lee(n,t){1&n&&Xo(0)}function cee(n,t){if(1&n&&($e(0),D(1,"span"),I(2),C(),Ge()),2&n){const e=z(2).$implicit;d(2),me(" ",e.note,"")}}function dee(n,t){1&n&&($e(0),D(1,"span"),I(2),R(3,"translate"),C(),Ge()),2&n&&(d(2),me(" ",B(3,1,"apps.vpn-socks-client-settings.note-entered-manually"),""))}function uee(n,t){if(1&n&&($e(0),D(1,"span"),I(2),C(),Ge()),2&n){const e=z(4).$implicit;d(2),me(" (",e.location,")")}}function hee(n,t){if(1&n&&($e(0),D(1,"span"),I(2),R(3,"translate"),C(),j(4,uee,3,1,"ng-container",16),Ge()),2&n){const e=z(3).$implicit;d(2),me(" ",B(3,2,"apps.vpn-socks-client-settings.note-obtained"),""),d(2),w("ngIf",e.location)}}function fee(n,t){if(1&n&&($e(0),j(1,dee,4,3,"ng-container",16),j(2,hee,5,4,"ng-container",16),Ge()),2&n){const e=z(2).$implicit;d(1),w("ngIf",e.enteredManually),d(1),w("ngIf",!e.enteredManually)}}function pee(n,t){if(1&n&&(D(0,"div",46)(1,"div",47)(2,"div",31)(3,"span"),I(4),R(5,"translate"),C(),D(6,"span"),I(7),C()(),D(8,"div",31)(9,"span"),I(10),R(11,"translate"),C(),j(12,cee,3,1,"ng-container",16),j(13,fee,3,2,"ng-container",16),C()(),D(14,"div",48)(15,"div",49)(16,"mat-icon",22),I(17,"add"),C()()()()),2&n){const e=z().$implicit;d(4),oe(B(5,6,"apps.vpn-socks-client-settings.key")),d(3),me(" ",e.key,""),d(3),oe(B(11,8,"apps.vpn-socks-client-settings.note")),d(2),w("ngIf",e.note),d(1),w("ngIf",!e.note),d(3),w("inline",!0)}}function mee(n,t){if(1&n){const e=tt();D(0,"div",32)(1,"button",41),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().useFromHistory(s))}),j(2,aee,1,0,"ng-container",42),C(),D(3,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().changeNote(s))}),R(4,"translate"),D(5,"mat-icon",37),I(6,"edit"),C()(),D(7,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().removeFromHistory(s.key))}),R(8,"translate"),D(9,"mat-icon",37),I(10,"close"),C()(),D(11,"button",44),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().openHistoryOptions(s))}),j(12,lee,1,0,"ng-container",42),C(),j(13,pee,18,10,"ng-template",null,45,Ms),C()}if(2&n){const e=li(14),i=z();d(1),w("ngClass",Ve(12,wc,i.disableDismiss)),d(1),w("ngTemplateOutlet",e),d(1),w("matTooltip",B(4,8,"apps.vpn-socks-client-settings.change-note")),d(2),w("inline",!0),d(2),w("matTooltip",B(8,10,"apps.vpn-socks-client-settings.remove-entry")),d(2),w("inline",!0),d(2),w("ngClass",Ve(14,wc,i.disableDismiss)),d(1),w("ngTemplateOutlet",e)}}function _ee(n,t){1&n&&($e(0),D(1,"span"),I(2),R(3,"translate"),C(),Ge()),2&n&&(d(2),oe(B(3,1,"apps.vpn-socks-client-settings.dns-error")))}function gee(n,t){1&n&&(D(0,"div",56)(1,"mat-icon",22),I(2,"warning"),C(),I(3),R(4,"translate"),C()),2&n&&(d(1),w("inline",!0),d(2),me(" ",B(4,2,"apps.vpn-socks-client-settings.settings-changed-alert")," "))}function bee(n,t){if(1&n){const e=tt();D(0,"mat-tab",1),R(1,"translate"),D(2,"form",2)(3,"mat-form-field",3)(4,"div",4)(5,"label",5),I(6),R(7,"translate"),C(),xe(8,"input",50),C(),D(9,"mat-error"),j(10,_ee,4,3,"ng-container",16),C()(),D(11,"div",51)(12,"mat-checkbox",52),I(13),R(14,"translate"),D(15,"mat-icon",53),R(16,"translate"),I(17,"help"),C()()(),j(18,gee,5,4,"div",54),D(19,"app-button",12,55),ye("action",function(){return Pe(e),Oe(z().saveSettings())}),I(21),R(22,"translate"),C()()()}if(2&n){const e=z();w("label",B(1,12,"apps.vpn-socks-client-settings.settings-tab")),d(2),w("formGroup",e.settingsForm),d(1),w("ngClass",Ve(22,wc,e.disableDismiss)),d(3),oe(B(7,14,"apps.vpn-socks-client-settings.dns")),d(4),w("ngIf",!e.settingsForm.get("dns").valid),d(2),w("ngClass",Ve(24,wc,e.disableDismiss)),d(1),me(" ",B(14,16,"apps.vpn-socks-client-settings.killswitch-check")," "),d(2),w("inline",!0)("matTooltip",B(16,18,"apps.vpn-socks-client-settings.killswitch-info")),d(3),w("ngIf",e.settingsChanged),d(1),w("disabled",!e.settingsForm.valid||!e.settingsChanged||e.working),d(2),me(" ",B(22,20,"apps.vpn-socks-client-settings.save-settings")," ")}}class xc{constructor(t,e,i,o,s,a,l,c,M){this.data=t,this.dialogRef=e,this.appsService=i,this.formBuilder=o,this.snackbarService=s,this.dialog=a,this.proxyDiscoveryService=l,this.clipboardService=c,this.storageService=M,this.socksHistoryStorageKey="SkysocksClientHistory_",this.vpnHistoryStorageKey="VpnClientHistory_",this.maxHistoryElements=10,this.maxElementsPerPage=10,this.countriesFromDiscovery=new Set,this.loadingFromDiscovery=!0,this.numberOfPages=1,this.currentPage=1,this.currentRange="1 - 1",this.currentFilters=new zI,this.currentFiltersTexts=[],this.configuringVpn=!1,this.initialKillswitchSetting=!1,this.initialDnsSetting="",this.working=!1,-1!==t.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.largeModalWidth,t.open(xc,i)}ngOnInit(){this.migrateDataToHvStorage(),this.discoverySubscription=this.proxyDiscoveryService.getServices(!this.configuringVpn).subscribe(i=>{this.proxiesFromDiscovery=i,this.proxiesFromDiscovery.forEach(o=>{o.country&&this.countriesFromDiscovery.add(o.country.toUpperCase())}),this.filterProxies(),this.loadingFromDiscovery=!1});const t=this.storageService.getDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey);this.history=t?JSON.parse(t):[];let e="";if(this.data.args&&this.data.args.length>0)for(let i=0;ithis.firstInput.nativeElement.focus())}ngOnDestroy(){this.discoverySubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}migrateDataToHvStorage(){const t=localStorage.getItem(this.socksHistoryStorageKey);t&&(this.storageService.setDataForHv(this.socksHistoryStorageKey,t),localStorage.removeItem(this.socksHistoryStorageKey));const e=localStorage.getItem(this.vpnHistoryStorageKey);e&&(this.storageService.setDataForHv(this.vpnHistoryStorageKey,e),localStorage.removeItem(this.vpnHistoryStorageKey))}get disableDismiss(){return this.button&&this.button.isLoading||this.settingsButton&&this.settingsButton.isLoading}validateIp(){if(this.settingsForm){const t=this.settingsForm.get("dns").value;return Wt.checkIfIpValidOrEmpty(t)?null:{invalid:!0}}return null}get settingsChanged(){return this.initialKillswitchSetting!==this.settingsForm.get("killswitch").value||this.initialDnsSetting!==this.settingsForm.get("dns").value}changeFilters(){const t=[];this.countriesFromDiscovery.forEach(i=>t.push(i)),yc.openDialog(this.dialog,{currentFilters:this.currentFilters,availableCountries:t}).afterClosed().subscribe(i=>{i&&(this.currentFilters=i,this.filterProxies())})}getHighlightedTextParts(t,e){if(!e)return[t];const i=t.toLowerCase(),o=e.toLowerCase();let s=!0,a=0;const l=[];for(;s;){const c=i.indexOf(o,a);-1===c?s=!1:(l.push(t.substring(a,c)),l.push(t.substring(c,c+e.length)),a=c+e.length)}return l.push(t.substring(a)),l}filterProxies(){this.filteredProxiesFromDiscovery=this.currentFilters.country||this.currentFilters.location||this.currentFilters.key?this.proxiesFromDiscovery.filter(t=>!(this.currentFilters.country&&(!t.country||!t.country.toUpperCase().includes(this.currentFilters.country.toUpperCase()))||this.currentFilters.location&&!t.location.toLowerCase().includes(this.currentFilters.location.toLowerCase())||this.currentFilters.key&&!t.address.toLowerCase().includes(this.currentFilters.key.toLowerCase()))):this.proxiesFromDiscovery,this.updateCurrentFilters(),this.updatePagination()}updateCurrentFilters(){if(this.currentFiltersTexts=[],this.currentFilters.country){const t=ga[this.currentFilters.country.toUpperCase()]?ga[this.currentFilters.country.toUpperCase()]:this.currentFilters.country.toUpperCase();this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.country","",t])}this.currentFilters.location&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.location","",this.currentFilters.location]),this.currentFilters.key&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.pub-key","",this.currentFilters.key])}updatePagination(){this.currentPage=1,this.numberOfPages=Math.ceil(this.filteredProxiesFromDiscovery.length/this.maxElementsPerPage),this.showCurrentPage()}goToNextPage(){this.currentPage>=this.numberOfPages||(this.currentPage+=1,this.showCurrentPage())}goToPreviousPage(){this.currentPage<=1||(this.currentPage-=1,this.showCurrentPage())}showCurrentPage(){this.proxiesFromDiscoveryToShow=this.filteredProxiesFromDiscovery.slice((this.currentPage-1)*this.maxElementsPerPage,this.currentPage*this.maxElementsPerPage),this.currentRange=(this.currentPage-1)*this.maxElementsPerPage+1+" - ",this.currentRange+=this.currentPage{1===i?this.useFromHistory(t):2===i?this.changeNote(t):3===i&&this.removeFromHistory(t.key)})}removeFromHistory(t){const i=Wt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.remove-from-history-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{this.history=this.history.filter(s=>s.key!==t);const o=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,o),i.close()})}changeNote(t){vc.openDialog(this.dialog,t.note).afterClosed().subscribe(e=>{if(e){e=e.substr(1,e.length-1),this.history.forEach(o=>{o.key===t.key&&(o.note=e)});const i=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,i),e?this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"):this.snackbarService.showWarning("apps.vpn-socks-client-settings.default-note-warning")}})}useFromHistory(t){t.hasPassword?Mc.openDialog(this.dialog).afterClosed().subscribe(e=>{e&&(e=e.substr(1,e.length-1),this.saveChanges(t.key,e,t.enteredManually,t.location,t.note))}):this.saveChanges(t.key,null,t.enteredManually,t.location,t.note)}saveChanges(t=null,e=null,i=null,o=null,s=null){if(!this.form.valid&&!t||this.working)return;i=!t||i,e=t?e:this.form.get("password").value,t=t||this.form.get("pk").value;const l=Wt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.change-key-confirmation");l.componentInstance.operationAccepted.subscribe(()=>{l.close(),this.continueSavingChanges(t,e,i,o,s)})}saveSettings(){if(this.working)return;const t={killswitch:this.settingsForm.get("killswitch").value,dns:this.settingsForm.get("dns").value};this.settingsButton.showLoading(!1),this.button.showLoading(!1),this.working=!0,this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,t).subscribe(()=>{this.initialKillswitchSetting=t.killswitch,this.initialDnsSetting=t.dns,this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.settingsButton.reset(!1),this.button.reset(!1),Je.refreshCurrentDisplayedData()},e=>{this.working=!1,this.settingsButton.showError(!1),this.button.reset(!1),e=Qt(e),this.snackbarService.showError(e)})}copyPk(t){this.clipboardService.copy(t)?this.snackbarService.showDone("apps.vpn-socks-client-settings.copied-pk-info"):this.snackbarService.showError("apps.vpn-socks-client-settings.copy-pk-error")}continueSavingChanges(t,e,i,o,s){if(this.working)return;this.button.showLoading(!1),this.settingsButton&&this.settingsButton.showLoading(!1),this.working=!0;const a={pk:t};this.configuringVpn&&(a.passcode=e||""),this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,a).subscribe(()=>this.onServerDataChangeSuccess(t,!!e,i,o,s),l=>this.onServerDataChangeError(l))}onServerDataChangeSuccess(t,e,i,o,s){this.history=this.history.filter(c=>c.key!==t);const a={key:t,enteredManually:i};if(e&&(a.hasPassword=e),o&&(a.location=o),s&&(a.note=s),this.history=[a].concat(this.history),this.history.length>this.maxHistoryElements){const c=this.history.length-this.maxHistoryElements;this.history.splice(this.history.length-c,c)}this.form.get("pk").setValue(t);const l=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,l),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.button.reset(!1),this.settingsButton&&this.settingsButton.reset(!1)}onServerDataChangeError(t){this.working=!1,this.button.showError(!1),this.settingsButton&&this.settingsButton.reset(!1),t=Qt(t),this.snackbarService.showError(t)}}xc.\u0275fac=function(t){return new(t||xc)(F(Si),F(Vn),F(wo),F(xr),F(cn),F(Fn),F(Cu),F(Os),F(ti))},xc.\u0275cmp=qe({type:xc,selectors:[["app-skysocks-client-settings"]],viewQuery:function(t,e){if(1&t&&(ft(NJ,5),ft(YJ,5),ft(BJ,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.settingsButton=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:34,vars:36,consts:[[3,"headline","dialog","disableDismiss"],[3,"label"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","pk","formControlName","pk","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],[3,"ngClass",4,"ngIf"],["class","password-history-warning",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["class","loading-indicator",3,"showWhite",4,"ngIf"],["class","info-text",4,"ngIf"],[4,"ngIf"],["class","paginator",4,"ngIf"],["class","d-flex",4,"ngFor","ngForOf"],[3,"label",4,"ngIf"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],[1,"password-history-warning"],[3,"inline"],[1,"loading-indicator",3,"showWhite"],[1,"info-text"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click"],[1,"filter-button-content"],[1,"icon-area"],["class","item",4,"ngIf"],["class","item",4,"ngFor","ngForOf"],[1,"blue-part"],[1,"item"],[1,"d-flex"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"ngClass","click"],[1,"button-content"],[4,"ngFor","ngForOf"],["mat-button","",1,"list-button","grey-button-background",3,"matTooltip","click"],[1,"option-button-icon",3,"inline"],[1,"flag-container"],[1,"paginator"],["mat-icon-button","",1,"hard-grey-button-background",3,"click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-none","d-md-inline",3,"ngClass","click"],[4,"ngTemplateOutlet"],["mat-button","",1,"list-button","grey-button-background","d-none","d-md-inline",3,"matTooltip","click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-md-none",3,"ngClass","click"],["content",""],[1,"button-content","d-flex"],[1,"full-size-area"],[1,"options-container"],[1,"small-button","d-md-none"],["formControlName","dns","maxlength","15","matInput",""],[1,"main-theme","settings-option"],["color","primary","formControlName","killswitch",3,"ngClass"],[1,"help-icon",3,"inline","matTooltip"],["class","settings-changed-warning",4,"ngIf"],["settingsButton",""],[1,"settings-changed-warning"]],template:function(t,e){if(1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"mat-tab-group")(3,"mat-tab",1),R(4,"translate"),D(5,"form",2)(6,"mat-form-field",3)(7,"div",4)(8,"label",5),I(9),R(10,"translate"),C(),xe(11,"input",6,7),C(),D(13,"mat-error"),j(14,HJ,4,3,"ng-container",8),C(),j(15,VJ,3,3,"ng-template",null,9,Ms),C(),j(17,jJ,6,6,"mat-form-field",10),j(18,zJ,5,4,"div",11),D(19,"app-button",12,13),ye("action",function(){return e.saveChanges()}),I(21),R(22,"translate"),C()()(),D(23,"mat-tab",1),R(24,"translate"),j(25,UJ,1,1,"app-loading-indicator",14),j(26,WJ,5,4,"div",15),j(27,nee,14,8,"ng-container",16),j(28,ree,10,7,"div",17),C(),D(29,"mat-tab",1),R(30,"translate"),j(31,see,6,7,"div",16),j(32,mee,15,16,"div",18),C(),j(33,bee,23,26,"mat-tab",19),C()()),2&t){const i=li(16);w("headline",B(1,22,"apps.vpn-socks-client-settings."+(e.configuringVpn?"vpn-title":"socks-title")))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),d(3),w("label",B(4,24,"apps.vpn-socks-client-settings.remote-visor-tab")),d(2),w("formGroup",e.form),d(1),w("ngClass",Ve(34,wc,e.disableDismiss)),d(3),oe(B(10,26,"apps.vpn-socks-client-settings.public-key")),d(5),w("ngIf",!e.form.get("pk").hasError("pattern"))("ngIfElse",i),d(3),w("ngIf",e.configuringVpn),d(1),w("ngIf",e.form&&e.form.get("password").value),d(1),w("disabled",!e.form.valid||e.working),d(2),me(" ",B(22,28,"apps.vpn-socks-client-settings.save")," "),d(2),w("label",B(24,30,"apps.vpn-socks-client-settings.discovery-tab")),d(2),w("ngIf",e.loadingFromDiscovery),d(1),w("ngIf",!e.loadingFromDiscovery&&0===e.proxiesFromDiscovery.length),d(1),w("ngIf",!e.loadingFromDiscovery&&e.proxiesFromDiscovery.length>0),d(1),w("ngIf",e.numberOfPages>1),d(1),w("label",B(30,32,"apps.vpn-socks-client-settings.history-tab")),d(2),w("ngIf",0===e.history.length),d(1),w("ngForOf",e.history),d(1),w("ngIf",e.configuringVpn)}},dependencies:[On,Ci,Ot,Ad,Yi,Fi,Ri,Ni,wr,ni,Di,tr,sl,Cr,ZI,AJ,Wr,il,Cn,gi,pa,ii,Rn,io,Ct],styles:["mat-tab-header{border-bottom:solid 1px rgba(0,0,0,.12)}form[_ngcontent-%COMP%]{margin-top:15px}.info-text[_ngcontent-%COMP%]{margin-top:20px;margin-bottom:2px;text-align:center;color:#202226}.info-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.loading-indicator[_ngcontent-%COMP%]{height:100px}.password-history-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative;top:-5px}.list-button[_ngcontent-%COMP%]{border-bottom:solid 1px rgba(0,0,0,.12);height:auto;justify-content:left}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%]{padding:15px 0;white-space:normal;line-height:1.3;color:#202226;text-align:left;display:flex;font-size:.8rem;word-break:break-word}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .icon-area[_ngcontent-%COMP%]{font-size:20px;margin-right:15px;color:#999;opacity:.4;align-self:center}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{margin:4px 0}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .blue-part[_ngcontent-%COMP%]{color:#215f9e}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%]{text-align:left;padding:15px 0;white-space:normal}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .full-size-area[_ngcontent-%COMP%]{flex-grow:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{line-height:1.3;margin:4px 0;font-size:.8rem;color:#202226;word-break:break-all}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{background-color:#ff0}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%]{flex-shrink:0;margin-left:5px;text-align:right;line-height:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%] .small-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:14px;font-size:14px;margin-left:5px}.list-button[_ngcontent-%COMP%] .option-button-icon[_ngcontent-%COMP%]{font-size:14px;margin:0!important;overflow:visible!important}.paginator[_ngcontent-%COMP%]{float:right;margin-top:15px;display:flex;align-items:center}@media (max-width: 767px){.paginator[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.7rem}}.paginator[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:5px;display:flex}.settings-option[_ngcontent-%COMP%]{margin-top:20px}.settings-option[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}.settings-changed-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative}"]});const vee=["button"],tP=function(n){return{"element-disabled":n}},nP=function(n){return{number:n}};function yee(n,t){if(1&n){const e=tt();$e(0,7),D(1,"div",8)(2,"mat-form-field",9)(3,"div",10)(4,"label",11),I(5),R(6,"translate"),C(),xe(7,"input",12),C()(),D(8,"mat-form-field",9)(9,"div",10)(10,"label",13),I(11),R(12,"translate"),C(),xe(13,"input",14),C()(),D(14,"button",15),ye("click",function(){const s=Pe(e).index;return Oe(z().removeSetting(s))}),R(15,"translate"),D(16,"mat-icon",16),I(17,"close"),C()()(),Ge()}if(2&n){const e=t.index,i=z();d(1),w("formGroupName",e),d(1),w("ngClass",Ve(15,tP,i.disableDismiss)),d(3),oe(Pt(6,7,"apps.user-app-settings.name",Ve(17,nP,e+1))),d(3),w("ngClass",Ve(19,tP,i.disableDismiss)),d(3),oe(Pt(12,10,"apps.user-app-settings.value",Ve(21,nP,e+1))),d(3),w("matTooltip",B(15,13,"apps.user-app-settings.remove")),d(2),w("inline",!0)}}const Mee=function(n){return{name:n}};class Cc{constructor(t,e,i,o,s,a){this.data=t,this.appsService=e,this.formBuilder=i,this.dialogRef=o,this.snackbarService=s,this.dialog=a,this.appName="",this.appName=t.name}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.mediumModalWidth,t.open(Cc,i)}ngOnInit(){if(this.form=this.formBuilder.group({settings:this.formBuilder.array([])}),this.data.args&&this.data.args.length>0)for(let t=0;t{let s=o.get("name").value,a=o.get("value").value;s=s&&s.trim(),a=a&&a.trim(),s?(i[s]=a,e+=1):t=!0}),t||0===e){const s=Wt.createConfirmationDialog(this.dialog,"apps.user-app-settings."+(0===e?"empty-confirmation":"invalid-confirmation"));s.componentInstance.operationAccepted.subscribe(()=>{s.close(),this.continueSavingChanges(i)})}else this.continueSavingChanges(i)}continueSavingChanges(t){this.button.showLoading();const e={custom_setting:t};this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,e).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.user-app-settings.changes-made"),this.dialogRef.close()}onError(t){this.button.showError(),t=Qt(t),this.snackbarService.showError(t)}}function wee(n,t){1&n&&(D(0,"span",14),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"apps.apps-list.title-official")))}function xee(n,t){1&n&&(D(0,"span",14),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"apps.apps-list.title-user")))}function Cee(n,t){if(1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n){const e=z().$implicit;d(1),oe(B(2,1,e.translatableValue))}}function kee(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z().$implicit;d(1),oe(e.value)}}function See(n,t){if(1&n&&(D(0,"div",18)(1,"span"),I(2),R(3,"translate"),C(),j(4,Cee,3,3,"ng-container",19),j(5,kee,2,1,"ng-container",19),C()),2&n){const e=t.$implicit;d(2),me("",B(3,3,e.filterName),": "),d(2),w("ngIf",e.translatableValue),d(1),w("ngIf",e.value)}}function Dee(n,t){if(1&n){const e=tt();D(0,"div",15),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),j(1,See,6,5,"div",16),D(2,"div",17),I(3),R(4,"translate"),C()()}if(2&n){const e=z();d(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),d(2),oe(B(4,2,"filters.press-to-remove"))}}function Tee(n,t){if(1&n){const e=tt();D(0,"mat-icon",20),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&n&&w("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function Lee(n,t){1&n&&(D(0,"mat-icon",21),I(1,"more_horiz"),C()),2&n&&(z(),w("matMenuTriggerFor",li(10)))}Cc.\u0275fac=function(t){return new(t||Cc)(F(Si),F(wo),F(xr),F(Vn),F(cn),F(Fn))},Cc.\u0275cmp=qe({type:Cc,selectors:[["app-user-app-settings"]],viewQuery:function(t,e){if(1&t&&ft(vee,5),2&t){let i;nt(i=it())&&(e.button=i.first)}},decls:15,vars:20,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup"],["formArrayName","settings",4,"ngFor","ngForOf"],[1,"add-setting",3,"click"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["formArrayName","settings"],[1,"settings-row",3,"formGroupName"],[3,"ngClass"],[1,"field-container"],["for","name",1,"field-label"],["id","name","formControlName","name","matInput",""],["for","value",1,"field-label"],["id","value","formControlName","value","matInput",""],["mat-button","",1,"transparent-button",3,"matTooltip","click"],[3,"inline"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),I(3),R(4,"translate"),C(),D(5,"form",2),j(6,yee,18,23,"ng-container",3),C(),D(7,"div")(8,"a",4),ye("click",function(){return e.addSetting()}),I(9),R(10,"translate"),C()(),D(11,"app-button",5,6),ye("action",function(){return e.saveChanges()}),I(13),R(14,"translate"),C()()),2&t&&(w("headline",Pt(1,9,"apps.user-app-settings.title",Ve(18,Mee,e.appName)))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),d(3),oe(B(4,12,"apps.user-app-settings.info")),d(2),w("formGroup",e.form),d(1),w("ngForOf",e.settingsControls),d(3),me("+ ",B(10,14,"apps.user-app-settings.add"),""),d(2),w("disabled",!e.form.valid),d(2),me(" ",B(14,16,"apps.user-app-settings.save")," "))},dependencies:[On,Ci,Yi,Fi,Ri,Ni,ni,Di,$f,Gf,tr,Cr,Wr,Cn,gi,ii,Rn,Ct],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}.settings-row[_ngcontent-%COMP%]{display:flex}mat-form-field[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px}button[_ngcontent-%COMP%]{flex-shrink:0;width:50px;padding:0!important;align-self:center;border-radius:10px}button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0!important}.add-setting[_ngcontent-%COMP%]{color:#215f9e!important;cursor:pointer}"]});const iP=function(n,t){return["/nodes",n,"apps-list",t]};function Eee(n,t){if(1&n&&xe(0,"app-paginator",22),2&n){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",ln(4,iP,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Iee(n,t){if(1&n&&(D(0,"mat-icon",37),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function Pee(n,t){if(1&n&&(D(0,"mat-icon",37),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function Oee(n,t){if(1&n&&(D(0,"mat-icon",37),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function Aee(n,t){if(1&n&&(D(0,"mat-icon",37),I(1),C()),2&n){const e=z(2);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function Fee(n,t){if(1&n&&(xe(0,"i",46),R(1,"translate")),2&n){const e=z().$implicit,i=z(2);fo(i.getStateClass(e)),w("matTooltip",B(1,3,i.getStateTooltip(e)))}}const rP=function(n){return{error:n}};function Ree(n,t){if(1&n&&(D(0,"mat-icon",47),R(1,"translate"),I(2,"warning"),C()),2&n){const e=z().$implicit;w("inline",!0)("matTooltip",Pt(1,2,"apps.status-failed-tooltip",Ve(5,rP,e.detailedStatus?e.detailedStatus:"")))}}function Nee(n,t){if(1&n&&(D(0,"a",48)(1,"button",49),R(2,"translate"),D(3,"mat-icon",37),I(4,"open_in_browser"),C()()()),2&n){const e=z().$implicit;w("href",z(2).getLink(e),_s),d(1),w("matTooltip",B(2,3,"apps.open")),d(2),w("inline",!0)}}function Yee(n,t){if(1&n){const e=tt();D(0,"button",43),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).config(o))}),R(1,"translate"),D(2,"mat-icon",37),I(3,"settings"),C()()}2&n&&(w("matTooltip",B(1,2,"apps.settings")),d(2),w("inline",!0))}function Bee(n,t){if(1&n){const e=tt();D(0,"tr")(1,"td",39)(2,"mat-checkbox",40),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),j(4,Fee,2,5,"i",41),j(5,Ree,3,7,"mat-icon",42),C(),D(6,"td"),I(7),C(),D(8,"td"),I(9),C(),D(10,"td")(11,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).changeAppAutostart(s))}),R(12,"translate"),D(13,"mat-icon",37),I(14),C()()(),D(15,"td",30),j(16,Nee,5,5,"a",44),j(17,Yee,4,4,"button",45),D(18,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).viewLogs(s))}),R(19,"translate"),D(20,"mat-icon",37),I(21,"list"),C()(),D(22,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).changeAppState(s))}),R(23,"translate"),D(24,"mat-icon",37),I(25),C()()()()}if(2&n){const e=t.$implicit,i=z(2);d(2),w("checked",i.selections.get(e.name)),d(2),w("ngIf",2!==e.status),d(1),w("ngIf",2===e.status),d(2),me(" ",e.name," "),d(2),me(" ",e.port," "),d(2),w("matTooltip",B(12,15,e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart")),d(2),w("inline",!0),d(1),oe(e.autostart?"done":"close"),d(2),w("ngIf",i.getLink(e)),d(1),w("ngIf",!i.appsWithoutConfig.has(e.name)),d(1),w("matTooltip",B(19,17,"apps.view-logs")),d(2),w("inline",!0),d(2),w("matTooltip",B(23,19,"apps."+(0===e.status||2===e.status?"start-app":"stop-app"))),d(2),w("inline",!0),d(1),oe(0===e.status||2===e.status?"play_arrow":"stop")}}function Hee(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"tables.label")))}function Vee(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"tables.inverted-order")))}function jee(n,t){if(1&n&&(D(0,"a",55),ye("click",function(i){return i.stopPropagation()}),D(1,"button",56),R(2,"translate"),D(3,"mat-icon"),I(4,"open_in_browser"),C()()()),2&n){const e=z().$implicit;w("href",z(2).getLink(e),_s),d(1),w("matTooltip",B(2,2,"apps.open"))}}function zee(n,t){if(1&n){const e=tt();D(0,"tr")(1,"td")(2,"div",34)(3,"div",50)(4,"mat-checkbox",40),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",35)(6,"div",51)(7,"span",1),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",51)(12,"span",1),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",51)(17,"span",1),I(18),R(19,"translate"),C(),I(20,": "),D(21,"span"),I(22),R(23,"translate"),C()(),D(24,"div",51)(25,"span",1),I(26),R(27,"translate"),C(),I(28,": "),D(29,"span"),I(30),R(31,"translate"),C()()(),xe(32,"div",52),D(33,"div",36),j(34,jee,5,4,"a",53),D(35,"button",54),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(36,"translate"),D(37,"mat-icon"),I(38),C()()()()()()}if(2&n){const e=t.$implicit,i=z(2);d(4),w("checked",i.selections.get(e.name)),d(4),oe(B(9,16,"apps.apps-list.app-name")),d(2),me(": ",e.name," "),d(3),oe(B(14,18,"apps.apps-list.port")),d(2),me(": ",e.port," "),d(3),oe(B(19,20,"apps.apps-list.state")),d(3),fo(i.getSmallScreenStateClass(e)+" title"),d(1),me(" ",Pt(23,22,i.getSmallScreenStateTextVar(e),Ve(31,rP,e.detailedStatus?e.detailedStatus:""))," "),d(4),oe(B(27,25,"apps.apps-list.auto-start")),d(3),fo((e.autostart?"green-clear-text":"red-clear-text")+" title"),d(1),me(" ",B(31,27,e.autostart?"apps.apps-list.autostart-enabled":"apps.apps-list.autostart-disabled")," "),d(4),w("ngIf",i.getLink(e)),d(1),w("matTooltip",B(36,29,"common.options")),d(3),oe("add")}}const Uee=function(n,t){return["/nodes",n,"apps-list",t,"1"]};function Wee(n,t){if(1&n&&xe(0,"app-view-all-link",57),2&n){const e=z(2);w("numberOfElements",e.filteredApps.length)("linkParts",ln(3,Uee,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const $ee=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},Gee=function(n){return{"d-lg-none d-xl-table":n}},qee=function(n){return{"d-lg-table d-xl-none":n}};function Kee(n,t){if(1&n){const e=tt();D(0,"div",23)(1,"div",24)(2,"table",25)(3,"tr"),xe(4,"th"),D(5,"th",26),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.stateSortData))}),R(6,"translate"),xe(7,"span",27),j(8,Iee,2,2,"mat-icon",28),C(),D(9,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.nameSortData))}),I(10),R(11,"translate"),j(12,Pee,2,2,"mat-icon",28),C(),D(13,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.portSortData))}),I(14),R(15,"translate"),j(16,Oee,2,2,"mat-icon",28),C(),D(17,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.autoStartSortData))}),I(18),R(19,"translate"),j(20,Aee,2,2,"mat-icon",28),C(),xe(21,"th",30),C(),j(22,Bee,26,21,"tr",31),C(),D(23,"table",32)(24,"tr",33),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(25,"td")(26,"div",34)(27,"div",35)(28,"div",1),I(29),R(30,"translate"),C(),D(31,"div"),I(32),R(33,"translate"),j(34,Hee,3,3,"ng-container",19),j(35,Vee,3,3,"ng-container",19),C()(),D(36,"div",36)(37,"mat-icon",37),I(38,"keyboard_arrow_down"),C()()()()(),j(39,zee,39,33,"tr",31),C(),j(40,Wee,1,6,"app-view-all-link",38),C()()}if(2&n){const e=z();d(1),w("ngClass",ln(31,$ee,e.showShortList_,!e.showShortList_)),d(1),w("ngClass",Ve(34,Gee,e.showShortList_)),d(3),w("matTooltip",B(6,19,"apps.apps-list.state-tooltip")),d(3),w("ngIf",e.dataSorter.currentSortingColumn===e.stateSortData),d(2),me(" ",B(11,21,"apps.apps-list.app-name")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.nameSortData),d(2),me(" ",B(15,23,"apps.apps-list.port")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.portSortData),d(2),me(" ",B(19,25,"apps.apps-list.auto-start")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.autoStartSortData),d(2),w("ngForOf",e.dataSource),d(1),w("ngClass",Ve(36,qee,e.showShortList_)),d(6),oe(B(30,27,"tables.sorting-title")),d(3),me("",B(33,29,e.dataSorter.currentSortingColumn.label)," "),d(2),w("ngIf",e.dataSorter.currentlySortingByLabel),d(1),w("ngIf",e.dataSorter.sortingInReverseOrder),d(2),w("inline",!0),d(2),w("ngForOf",e.dataSource),d(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function Zee(n,t){1&n&&(D(0,"span",61),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"apps.apps-list.empty-official")))}function Xee(n,t){1&n&&(D(0,"span",61),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"apps.apps-list.empty-user")))}function Qee(n,t){1&n&&(D(0,"span",61),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"apps.apps-list.empty-with-filter")))}function Jee(n,t){if(1&n&&(D(0,"div",23)(1,"div",58)(2,"mat-icon",59),I(3,"warning"),C(),j(4,Zee,3,3,"span",60),j(5,Xee,3,3,"span",60),j(6,Qee,3,3,"span",60),C()()),2&n){const e=z();d(2),w("inline",!0),d(2),w("ngIf",0===e.allAppsForType.length&&e.showOfficialApps),d(1),w("ngIf",0===e.allAppsForType.length&&!e.showOfficialApps),d(1),w("ngIf",0!==e.allAppsForType.length)}}function ete(n,t){if(1&n&&xe(0,"app-paginator",22),2&n){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",ln(4,iP,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const tte=function(n){return{"paginator-icons-fixer":n}};class ku{constructor(t,e,i,o,s,a,l){this.appsService=t,this.dialog=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listIdForOfficialApps="op",this.listIdForUserApps="up",this.officialAppsList=new Set(["skychat","skysocks","skysocks-client","vpn-client","vpn-server"]),this.showOfficialApps=!0,this.stateSortData=new Nn(["status"],"apps.apps-list.state",Jt.NumberReversed),this.nameSortData=new Nn(["name"],"apps.apps-list.app-name",Jt.Text),this.portSortData=new Nn(["port"],"apps.apps-list.port",Jt.Number),this.autoStartSortData=new Nn(["autostart"],"apps.apps-list.auto-start",Jt.Boolean),this.selections=new Map,this.appsWithoutConfig=new Set(["skychat"]),this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"apps.apps-list.filter-dialog.state",keyNameInElementsArray:"status",type:Zn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.state-options.any"},{value:"1",label:"apps.apps-list.filter-dialog.state-options.running"},{value:"0",label:"apps.apps-list.filter-dialog.state-options.stopped"}]},{filterName:"apps.apps-list.filter-dialog.name",keyNameInElementsArray:"name",type:Zn.TextInput,maxlength:50},{filterName:"apps.apps-list.filter-dialog.port",keyNameInElementsArray:"port",type:Zn.TextInput,maxlength:8},{filterName:"apps.apps-list.filter-dialog.autostart",keyNameInElementsArray:"autostart",type:Zn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.autostart-options.any"},{value:"true",label:"apps.apps-list.filter-dialog.autostart-options.enabled"},{value:"false",label:"apps.apps-list.filter-dialog.autostart-options.disabled"}]}],this.refreshAgain=!1,this.operationSubscriptionsGroup=[],this.navigationsSubscription=this.route.paramMap.subscribe(c=>{if(c.has("showOfficialApps")&&(this.showOfficialApps=c.get("showOfficialApps").toUpperCase()==="true".toUpperCase()),c.has("page")){let M=Number.parseInt(c.get("page"),10);(isNaN(M)||M<1)&&(M=1),this.currentPageInUrl=M,this.recalculateElementsToShow()}})}set showShortList(t){this.showShortList_=t,this.dataSorter&&this.dataSorter.setData(this.filteredApps)}set apps(t){this.allApps=t||[],this.allApps&&(this.allAppsForType=[],this.allApps.forEach(e=>{(this.showOfficialApps&&this.officialAppsList.has(e.name)||!this.showOfficialApps&&!this.officialAppsList.has(e.name))&&this.allAppsForType.push(e)}),this.dataFilterer&&this.dataFilterer.setData(this.allAppsForType))}ngOnInit(){const t=this.showOfficialApps?this.listIdForOfficialApps:this.listIdForUserApps;this.dataSorter=new pu(this.dialog,this.translateService,this.storageService,[this.stateSortData,this.nameSortData,this.portSortData,this.autoStartSortData],1,t),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataSorter&&this.dataSorter.setData(this.filteredApps),this.dataFilterer=new mu(this.dialog,this.route,this.router,this.filterProperties,t),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(i=>{this.filteredApps=i,this.dataSorter.setData(this.filteredApps)}),this.allAppsForType&&this.dataFilterer.setData(this.allAppsForType)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}getLink(t){if("skychat"===t.name.toLocaleLowerCase()&&this.nodeIp&&0!==t.status&&2!==t.status){let e="8001";if(t.args)for(let i=0;i{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}changeStateOfSelected(t){const e=[];if(this.selections.forEach((i,o)=>{i&&(t&&(0===this.appsMap.get(o).status||2===this.appsMap.get(o).status)||!t&&0!==this.appsMap.get(o).status&&2!==this.appsMap.get(o).status)&&e.push(o)}),t)this.changeAppsValRecursively(e,!1,t);else{const i=Wt.createConfirmationDialog(this.dialog,"apps.stop-selected-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeAppsValRecursively(e,!1,t,i)})}}changeAutostartOfSelected(t){const e=[];this.selections.forEach((o,s)=>{o&&(t&&!this.appsMap.get(s).autostart||!t&&this.appsMap.get(s).autostart)&&e.push(s)});const i=Wt.createConfirmationDialog(this.dialog,t?"apps.enable-autostart-selected-confirmation":"apps.disable-autostart-selected-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeAppsValRecursively(e,!0,t,i)})}showOptionsDialog(t){const e=[{icon:"list",label:"apps.view-logs"},{icon:0===t.status||2===t.status?"play_arrow":"stop",label:"apps."+(0===t.status||2===t.status?"start-app":"stop-app")},{icon:t.autostart?"close":"done",label:t.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart"}];this.appsWithoutConfig.has(t.name)||e.push({icon:"settings",label:"apps.settings"}),$i.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{1===i?this.viewLogs(t):2===i?this.changeAppState(t):3===i?this.changeAppAutostart(t):4===i&&this.config(t)})}changeAppState(t){if(0===t.status||2===t.status)this.changeSingleAppVal(this.startChangingAppState(t.name,!0));else{const e=Wt.createConfirmationDialog(this.dialog,"apps.stop-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppState(t.name,!1),e)})}}changeAppAutostart(t){const e=Wt.createConfirmationDialog(this.dialog,t.autostart?"apps.disable-autostart-confirmation":"apps.enable-autostart-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppAutostart(t.name,!t.autostart),e)})}changeSingleAppVal(t,e=null){this.operationSubscriptionsGroup.push(t.subscribe(()=>{e&&e.close(),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")},i=>{i=Qt(i),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),e?e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg):this.snackbarService.showError(i)}))}viewLogs(t){0!==t.status&&2!==t.status?gc.openDialog(this.dialog,t):this.snackbarService.showError("apps.apps-list.unavailable-logs-error")}config(t){"skysocks"===t.name||"vpn-server"===t.name?bc.openDialog(this.dialog,t):"skysocks-client"===t.name||"vpn-client"===t.name?xc.openDialog(this.dialog,t):"skychat"===t.name?this.snackbarService.showError("apps.error"):Cc.openDialog(this.dialog,t)}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredApps){const t=this.showShortList_?Ht.maxShortListElements:Ht.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredApps.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.appsToShow=this.filteredApps.slice(e,e+t),this.appsMap=new Map,this.appsToShow.forEach(s=>{this.appsMap.set(s.name,s),this.selections.has(s.name)||this.selections.set(s.name,!1)});const o=[];this.selections.forEach((s,a)=>{this.appsMap.has(a)||o.push(a)}),o.forEach(s=>{this.selections.delete(s)})}else this.appsToShow=null,this.selections=new Map;this.dataSource=this.appsToShow,this.refreshAgain&&(this.refreshAgain=!1,setTimeout(()=>Je.refreshCurrentDisplayedData(),2e3))}startChangingAppState(t,e){return this.appsService.changeAppState(Je.getCurrentNodeKey(),t,e).pipe(Ce(i=>(null!=i.status&&this.dataSource.forEach(o=>{o.name===t&&(o.status=i.status,o.detailedStatus=i.detailed_status)}),i)))}startChangingAppAutostart(t,e){return this.appsService.changeAppAutostart(Je.getCurrentNodeKey(),t,e)}changeAppsValRecursively(t,e,i,o=null){if(!t||0===t.length)return setTimeout(()=>Je.refreshCurrentDisplayedData(),50),this.snackbarService.showWarning("apps.operation-unnecessary"),void(o&&o.close());let s;s=e?this.startChangingAppAutostart(t[t.length-1],i):this.startChangingAppState(t[t.length-1],i),this.operationSubscriptionsGroup.push(s.subscribe(()=>{t.pop(),0===t.length?(o&&o.close(),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")):this.changeAppsValRecursively(t,e,i,o)},a=>{a=Qt(a),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),o?o.componentInstance.showDone("confirmation.error-header-text",a.translatableErrorMsg):this.snackbarService.showError(a)}))}}ku.\u0275fac=function(t){return new(t||ku)(F(wo),F(Fn),F(vr),F(Xt),F(cn),F(no),F(ti))},ku.\u0275cmp=qe({type:ku,selectors:[["app-node-app-list"]],inputs:{nodePK:"nodePK",nodeIp:"nodeIp",showOfficialApps:"showOfficialApps",showShortList:"showShortList",apps:"apps"},decls:33,vars:35,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"matTooltip","click"],[1,"dot-outline-white"],[3,"inline",4,"ngIf"],[1,"sortable-column",3,"click"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],[3,"class","matTooltip",4,"ngIf"],["class","red-text",3,"inline","matTooltip",4,"ngIf"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip","click"],["target","_blank","rel","noreferrer nofollow noopener","class","skychat-link",3,"href",4,"ngIf"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip","click",4,"ngIf"],[3,"matTooltip"],[1,"red-text",3,"inline","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[1,"check-part"],[1,"list-row"],[1,"margin-part"],["target","_blank","rel","noreferrer nofollow noopener","class","skychat-link",3,"href","click",4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href","click"],["mat-icon-button","",1,"transparent-button",3,"matTooltip"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),j(2,wee,3,3,"span",2),j(3,xee,3,3,"span",2),j(4,Dee,5,4,"div",3),C(),D(5,"div",4)(6,"div",5),j(7,Tee,3,4,"mat-icon",6),j(8,Lee,2,1,"mat-icon",7),D(9,"mat-menu",8,9)(11,"div",10),ye("click",function(){return e.changeAllSelections(!0)}),I(12),R(13,"translate"),C(),D(14,"div",10),ye("click",function(){return e.changeAllSelections(!1)}),I(15),R(16,"translate"),C(),D(17,"div",11),ye("click",function(){return e.changeStateOfSelected(!0)}),I(18),R(19,"translate"),C(),D(20,"div",11),ye("click",function(){return e.changeStateOfSelected(!1)}),I(21),R(22,"translate"),C(),D(23,"div",11),ye("click",function(){return e.changeAutostartOfSelected(!0)}),I(24),R(25,"translate"),C(),D(26,"div",11),ye("click",function(){return e.changeAutostartOfSelected(!1)}),I(27),R(28,"translate"),C()()(),j(29,Eee,1,7,"app-paginator",12),C()(),j(30,Kee,41,38,"div",13),j(31,Jee,7,4,"div",13),j(32,ete,1,7,"app-paginator",12)),2&t&&(w("ngClass",Ve(33,tte,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),d(2),w("ngIf",e.showShortList_&&e.showOfficialApps),d(1),w("ngIf",e.showShortList_&&!e.showOfficialApps),d(1),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),d(3),w("ngIf",e.allAppsForType&&e.allAppsForType.length>0),d(1),w("ngIf",e.dataSource&&e.dataSource.length>0),d(1),w("overlapTrigger",!1),d(3),me(" ",B(13,21,"selection.select-all")," "),d(3),me(" ",B(16,23,"selection.unselect-all")," "),d(2),Dn("disabled",!e.hasSelectedElements()),d(1),me(" ",B(19,25,"selection.start-all")," "),d(2),Dn("disabled",!e.hasSelectedElements()),d(1),me(" ",B(22,27,"selection.stop-all")," "),d(2),Dn("disabled",!e.hasSelectedElements()),d(1),me(" ",B(25,29,"selection.enable-autostart-all")," "),d(2),Dn("disabled",!e.hasSelectedElements()),d(1),me(" ",B(28,31,"selection.disable-autostart-all")," "),d(2),w("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),d(1),w("ngIf",e.dataSource&&e.dataSource.length>0),d(1),w("ngIf",!e.dataSource||0===e.dataSource.length),d(1),w("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[On,Ci,Ot,Wr,il,Cn,gi,gu,ma,bu,pa,ul,As,Ct],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:150px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.skychat-link[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.skychat-link[_ngcontent-%COMP%] .big-action-button[_ngcontent-%COMP%]{margin-right:5px}"]});class ip{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.apps=t.apps,this.nodeIp=t.ip})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function nte(n,t){1&n&&xe(0,"app-transport-list",1),2&n&&w("node",z().node)("showShortList",!1)}ip.\u0275fac=function(t){return new(t||ip)},ip.\u0275cmp=qe({type:ip,selectors:[["app-apps"]],decls:2,vars:10,consts:[[3,"showOfficialApps","apps","showShortList","nodePK","nodeIp"]],template:function(t,e){1&t&&xe(0,"app-node-app-list",0)(1,"app-node-app-list",0),2&t&&(w("showOfficialApps",!0)("apps",e.apps)("showShortList",!0)("nodePK",e.nodePK)("nodeIp",e.nodeIp),d(1),w("showOfficialApps",!1)("apps",e.apps)("showShortList",!0)("nodePK",e.nodePK)("nodeIp",e.nodeIp))},dependencies:[ku]});class rp{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>this.node=t)}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function ite(n,t){if(1&n&&xe(0,"app-route-list",1),2&n){const e=z();w("routes",e.routes)("showShortList",!1)("nodePK",e.nodePK)}}rp.\u0275fac=function(t){return new(t||rp)},rp.\u0275cmp=qe({type:rp,selectors:[["app-all-transports"]],decls:1,vars:1,consts:[[3,"node","showShortList",4,"ngIf"],[3,"node","showShortList"]],template:function(t,e){1&t&&j(0,nte,1,2,"app-transport-list",0),2&t&&w("ngIf",e.node)},dependencies:[Ot,wu]});class op{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.routes=t.routes})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function rte(n,t){if(1&n&&xe(0,"app-node-app-list",1),2&n){const e=z();w("apps",e.apps)("showShortList",!1)("nodePK",e.nodePK)}}op.\u0275fac=function(t){return new(t||op)},op.\u0275cmp=qe({type:op,selectors:[["app-all-routes"]],decls:1,vars:1,consts:[[3,"routes","showShortList","nodePK",4,"ngIf"],[3,"routes","showShortList","nodePK"]],template:function(t,e){1&t&&j(0,ite,1,3,"app-route-list",0),2&t&&w("ngIf",e.routes)},dependencies:[Ot,xu]});class sp{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.apps=t.apps})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}sp.\u0275fac=function(t){return new(t||sp)},sp.\u0275cmp=qe({type:sp,selectors:[["app-all-apps"]],decls:1,vars:1,consts:[[3,"apps","showShortList","nodePK",4,"ngIf"],[3,"apps","showShortList","nodePK"]],template:function(t,e){1&t&&j(0,rte,1,3,"app-node-app-list",0),2&t&&w("ngIf",e.apps)},dependencies:[Ot,ku]});const ote=["button"],ste=["firstInput"],ate=function(n){return{"element-disabled":n}};class fl{constructor(t,e,i,o,s){this.dialogRef=t,this.data=e,this.formBuilder=i,this.snackbarService=o,this.routeService=s}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.smallModalWidth,t.open(fl,i)}ngOnInit(){this.form=this.formBuilder.group({min:[this.data.minHops,Vt.compose([Vt.required,Vt.maxLength(3),Vt.pattern("^[0-9]+$")])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.routeService.setMinHops(this.data.nodePk,Number.parseInt(this.form.get("min").value,10)).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(t){this.dialogRef.close(!0),this.snackbarService.showDone("router-config.done")}onError(t){this.button.showError(),this.operationSubscription=null,t=Qt(t),this.snackbarService.showError(t)}}fl.\u0275fac=function(t){return new(t||fl)(F(Vn),F(Si),F(xr),F(cn),F(mc))},fl.\u0275cmp=qe({type:fl,selectors:[["app-router-config"]],viewQuery:function(t,e){if(1&t&&(ft(ote,5),ft(ste,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:21,vars:22,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","min","maxlength","3","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),I(3),R(4,"translate"),C(),D(5,"form",2)(6,"mat-form-field")(7,"div",3)(8,"label",4),I(9),R(10,"translate"),C(),xe(11,"input",5,6),C(),D(13,"mat-error")(14,"span"),I(15),R(16,"translate"),C()()()(),D(17,"app-button",7,8),ye("action",function(){return e.save()}),I(19),R(20,"translate"),C()()),2&t&&(w("headline",B(1,10,"router-config.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),d(3),oe(B(4,12,"router-config.info")),d(2),w("formGroup",e.form)("ngClass",Ve(20,ate,e.disableDismiss)),d(4),oe(B(10,14,"router-config.min-hops")),d(6),oe(B(16,16,"router-config.min-hops-error")),d(2),w("disabled",!e.form.valid),d(2),me(" ",B(20,18,"router-config.save-config-button")," "))},dependencies:[On,Yi,Fi,Ri,Ni,wr,ni,Di,tr,sl,Cr,ii,Rn,Ct],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]});const lte=["button"],cte=["firstInput"],dte=function(n){return{"element-disabled":n}};class kc{constructor(t,e,i,o,s,a){this.dialogRef=t,this.data=e,this.formBuilder=i,this.snackbarService=o,this.nodeService=s,this.dialog=a}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.smallModalWidth,t.open(kc,i)}ngOnInit(){this.form=this.formBuilder.group({address:[this.data.currentAddress,Vt.compose([Vt.minLength(20),Vt.maxLength(40)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}startSaving(){if(this.form.valid&&!this.operationSubscription)if(this.form.get("address").value)this.finishSaving();else{const e=Wt.createConfirmationDialog(this.dialog,"rewards-address-config.empty-warning");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishSaving()})}}finishSaving(){this.button.showLoading();const t=this.form.get("address").value;let e=this.nodeService.setRewardsAddress(this.data.nodePk,t);t||(e=this.nodeService.deleteRewardsAddress(this.data.nodePk)),this.operationSubscription=e.subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(t){this.dialogRef.close(!0),this.snackbarService.showDone("rewards-address-config.done")}onError(t){this.button.showError(),this.operationSubscription=null,t=Qt(t),this.snackbarService.showError(t)}}kc.\u0275fac=function(t){return new(t||kc)(F(Vn),F(Si),F(xr),F(cn),F(Mo),F(Fn))},kc.\u0275cmp=qe({type:kc,selectors:[["app-rewards-address-config"]],viewQuery:function(t,e){if(1&t&&(ft(lte,5),ft(cte,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:25,vars:25,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],["href","https://github.com/skycoin/skywire/blob/master/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","40","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1)(3,"span"),I(4),R(5,"translate"),C(),D(6,"a",2),I(7),R(8,"translate"),C()(),D(9,"form",3)(10,"mat-form-field")(11,"div",4)(12,"label",5),I(13),R(14,"translate"),C(),xe(15,"input",6,7),C(),D(17,"mat-error")(18,"span"),I(19),R(20,"translate"),C()()()(),D(21,"app-button",8,9),ye("action",function(){return e.startSaving()}),I(23),R(24,"translate"),C()()),2&t&&(w("headline",B(1,11,"rewards-address-config.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),d(4),me("",B(5,13,"rewards-address-config.info")," "),d(3),me(" ",B(8,15,"rewards-address-config.more-info-link")," "),d(2),w("formGroup",e.form)("ngClass",Ve(23,dte,e.disableDismiss)),d(4),oe(B(14,17,"rewards-address-config.address")),d(6),oe(B(20,19,"rewards-address-config.address-error")),d(2),w("disabled",!e.form.valid),d(2),me(" ",B(24,21,"rewards-address-config.save-config-button")," "))},dependencies:[On,Yi,Fi,Ri,Ni,wr,ni,Di,tr,sl,Cr,ii,Rn,Ct],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]});class ap{constructor(t){this.clipboardService=t,this.copyEvent=new ht,this.errorEvent=new ht,this.value=""}ngOnDestroy(){this.copyEvent.complete(),this.errorEvent.complete()}copyToClipboard(){this.clipboardService.copy(this.value)?this.copyEvent.emit(this.value):this.errorEvent.emit()}}function ute(n,t){if(1&n&&($e(0),xe(1,"app-truncated-text",3),D(2,"mat-icon",4),I(3,"filter_none"),C(),Ge()),2&n){const e=z();d(1),w("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.text),d(1),w("inline",!0)}}function hte(n,t){if(1&n&&(D(0,"div",5)(1,"div",6),I(2),C(),D(3,"mat-icon",4),I(4,"filter_none"),C()()),2&n){const e=z();d(2),oe(e.text),d(1),w("inline",!0)}}ap.\u0275fac=function(t){return new(t||ap)(F(Os))},ap.\u0275dir=Ke({type:ap,selectors:[["","clipboard",""]],hostBindings:function(t,e){1&t&&ye("click",function(){return e.copyToClipboard()})},inputs:{value:["clipboard","value"]},outputs:{copyEvent:"copyEvent",errorEvent:"errorEvent"}});const fte=function(n){return{text:n}},pte=function(){return{"tooltip-word-break":!0}};class Sc{constructor(t){this.snackbarService=t,this.short=!1,this.shortSimple=!1,this.shortTextLength=5}onCopyToClipboardClicked(){this.snackbarService.showDone("copy.copied")}}Sc.\u0275fac=function(t){return new(t||Sc)(F(cn))},Sc.\u0275cmp=qe({type:Sc,selectors:[["app-copy-to-clipboard-text"]],inputs:{text:"text",short:"short",shortSimple:"shortSimple",shortTextLength:"shortTextLength"},decls:4,vars:11,consts:[[1,"wrapper","highlight-internal-icon",3,"clipboard","matTooltip","matTooltipClass","copyEvent"],[4,"ngIf"],["class","d-flex",4,"ngIf"],[1,"text-margin",3,"short","showTooltip","shortTextLength","text"],[3,"inline"],[1,"d-flex"],[1,"single-line","text-margin"]],template:function(t,e){1&t&&(D(0,"div",0),ye("copyEvent",function(){return e.onCopyToClipboardClicked()}),R(1,"translate"),j(2,ute,4,5,"ng-container",1),j(3,hte,5,2,"div",2),C()),2&t&&(w("clipboard",e.text)("matTooltip",Pt(1,5,e.short||e.shortSimple?"copy.tooltip-with-text":"copy.tooltip",Ve(8,fte,e.text)))("matTooltipClass",Un(10,pte)),d(2),w("ngIf",!e.shortSimple),d(1),w("ngIf",e.shortSimple))},dependencies:[Ot,Cn,gi,ap,fu,Ct],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] .text-margin[_ngcontent-%COMP%]{margin-right:5px}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.6rem;-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline!important}']});var mte=N(6149);const _te=["chart"];class Fs{constructor(t){this.height=100,this.animated=!1,this.min=void 0,this.max=void 0,this.differ=t.find([]).create(null)}ngAfterViewInit(){this.chart=new mte.Chart(this.chartElement.nativeElement,{type:"line",data:{labels:Array.from(Array(this.data.length).keys()),datasets:[{data:this.data,backgroundColor:["rgba(10, 15, 22, 0.4)"],borderColor:["rgba(10, 15, 22, 0.4)"],borderWidth:1}]},options:{maintainAspectRatio:!1,events:[],legend:{display:!1},tooltips:{enabled:!1},scales:{yAxes:[{display:!1,ticks:{suggestedMin:0}}],xAxes:[{display:!1}]},elements:{point:{radius:0}},layout:{padding:{left:0,right:0,top:Fs.topInternalMargin,bottom:0}}}}),void 0!==this.min&&void 0!==this.max&&(this.updateMinAndMax(),this.chart.update(0))}ngDoCheck(){this.differ.diff(this.data)&&this.chart&&(void 0!==this.min&&void 0!==this.max&&this.updateMinAndMax(),this.animated?this.chart.update():this.chart.update(0))}ngOnDestroy(){this.chart&&this.chart.destroy()}updateMinAndMax(){this.chart.options.scales={yAxes:[{display:!1,ticks:{min:this.min,max:this.max}}],xAxes:[{display:!1}]}}}Fs.topInternalMargin=5,Fs.\u0275fac=function(t){return new(t||Fs)(F(Bh))},Fs.\u0275cmp=qe({type:Fs,selectors:[["app-line-chart"]],viewQuery:function(t,e){if(1&t&&ft(_te,5),2&t){let i;nt(i=it())&&(e.chartElement=i.first)}},inputs:{data:"data",height:"height",animated:"animated",min:"min",max:"max"},decls:3,vars:2,consts:[[1,"chart-container"],["chart",""]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"canvas",null,1),C()),2&t&&ci("height: "+e.height+"px;")},styles:[".chart-container[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden;border-radius:10px}"]});const oP=function(){return{showValue:!0}},sP=function(){return{showUnit:!0}};function gte(n,t){if(1&n&&(D(0,"div",1),xe(1,"app-line-chart",2),D(2,"div",3)(3,"span",4),I(4),R(5,"translate"),C(),D(6,"span",5)(7,"span",6),I(8),R(9,"autoScale"),C(),D(10,"span",7),I(11),R(12,"autoScale"),C()()()()),2&n){const e=z();d(1),w("data",e.trafficData.sentHistory),d(3),oe(B(5,4,"common.uploaded")),d(4),oe(Pt(9,6,e.trafficData.totalSent,Un(12,oP))),d(3),oe(Pt(12,9,e.trafficData.totalSent,Un(13,sP)))}}function bte(n,t){if(1&n&&(D(0,"div",1),xe(1,"app-line-chart",2),D(2,"div",3)(3,"span",4),I(4),R(5,"translate"),C(),D(6,"span",5)(7,"span",6),I(8),R(9,"autoScale"),C(),D(10,"span",7),I(11),R(12,"autoScale"),C()()()()),2&n){const e=z();d(1),w("data",e.trafficData.receivedHistory),d(3),oe(B(5,4,"common.downloaded")),d(4),oe(Pt(9,6,e.trafficData.totalReceived,Un(12,oP))),d(3),oe(Pt(12,9,e.trafficData.totalReceived,Un(13,sP)))}}class lp{}function vte(n,t){if(1&n&&(D(0,"span",4)(1,"span",5),I(2),R(3,"translate"),C(),xe(4,"app-copy-to-clipboard-text",9),C()),2&n){const e=z(2);d(2),me("",B(3,2,"node.details.node-info.public-ip")," "),d(2),Dn("text",e.node.publicIp)}}function yte(n,t){if(1&n&&(D(0,"span",4)(1,"span",5),I(2),R(3,"translate"),C(),xe(4,"app-copy-to-clipboard-text",9),C()),2&n){const e=z(2);d(2),me("",B(3,2,"node.details.node-info.ip")," "),d(2),Dn("text",e.node.ip)}}function Mte(n,t){if(1&n&&(D(0,"span",4)(1,"span",5),I(2),R(3,"translate"),C(),I(4),C()),2&n){const e=z(2);d(2),me("",B(3,2,"node.details.node-info.skybian-version")," "),d(2),me(" ",e.node.skybianBuildVersion," ")}}lp.\u0275fac=function(t){return new(t||lp)},lp.\u0275cmp=qe({type:lp,selectors:[["app-charts"]],inputs:{trafficData:"trafficData"},decls:2,vars:2,consts:[["class","small-rounded-elevated-box chart",4,"ngIf"],[1,"small-rounded-elevated-box","chart"],[3,"data"],[1,"info"],[1,"text"],[1,"rate"],[1,"value"],[1,"unit"]],template:function(t,e){1&t&&(j(0,gte,13,14,"div",0),j(1,bte,13,14,"div",0)),2&t&&(w("ngIf",e.trafficData),d(1),w("ngIf",e.trafficData))},dependencies:[Ot,Fs,Ct,ir],styles:[".chart[_ngcontent-%COMP%]{position:relative;margin-bottom:20px}.chart[_ngcontent-%COMP%]:last-child{margin-bottom:10px}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;display:flex;justify-content:space-between;align-items:flex-end;padding:10px;width:100%}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#f8f9f9}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.text[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .unit[_ngcontent-%COMP%]{font-size:.8rem;padding-left:5px}"]});const nM=function(n){return{time:n}};function wte(n,t){if(1&n&&(D(0,"mat-icon",16),R(1,"translate"),I(2," info "),C()),2&n){const e=z(2);w("inline",!0)("matTooltip",Pt(1,2,"node.details.node-info.time.minutes",Ve(5,nM,e.timeOnline.totalMinutes)))}}function xte(n,t){if(1&n&&($e(0),xe(1,"app-copy-to-clipboard-text",18),D(2,"a",19)(3,"mat-icon",20),R(4,"translate"),I(5," open_in_browser "),C()(),Ge()),2&n){const e=z(2);d(1),Dn("text",e.node.rewardsAddress),d(1),w("href","https://explorer.skycoin.com/app/address/"+e.node.rewardsAddress,_s),d(1),w("inline",!0)("matTooltip",B(4,4,"node.details.rewards-info.open-in-explorer"))}}function Cte(n,t){1&n&&($e(0),I(1),R(2,"translate"),D(3,"mat-icon",16),R(4,"translate"),I(5,"info"),C(),Ge()),2&n&&(d(1),me(" ",B(2,3,"node.details.rewards-info.not-registered")," "),d(2),w("inline",!0)("matTooltip",B(4,5,"node.details.rewards-info.not-registered-info")))}function kte(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),me(" ",B(2,1,"node.details.rewards-info.change-address-button")," "))}function Ste(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),me(" ",B(2,1,"node.details.rewards-info.set-address-button")," "))}function Dte(n,t){if(1&n){const e=tt();D(0,"div",1)(1,"div",2)(2,"span",3),I(3),R(4,"translate"),C(),D(5,"span",4)(6,"span",5),I(7),R(8,"translate"),C(),D(9,"span",6),ye("click",function(){return Pe(e),Oe(z().showEditLabelDialog())}),D(10,"span",7),I(11),C(),D(12,"mat-icon",8),I(13,"edit"),C()()(),D(14,"span",4)(15,"span",5),I(16),R(17,"translate"),C(),xe(18,"app-copy-to-clipboard-text",9),C(),D(19,"span",4)(20,"span",5),I(21),R(22,"translate"),C(),I(23),R(24,"translate"),C(),j(25,vte,5,4,"span",10),j(26,yte,5,4,"span",10),D(27,"span",4)(28,"span",5),I(29),R(30,"translate"),C(),xe(31,"app-copy-to-clipboard-text",9),C(),D(32,"span",4)(33,"span",5),I(34),R(35,"translate"),C(),I(36),R(37,"translate"),C(),D(38,"span",4)(39,"span",5),I(40),R(41,"translate"),C(),I(42),R(43,"translate"),C(),D(44,"span",4)(45,"span",5),I(46),R(47,"translate"),C(),I(48),R(49,"translate"),C(),j(50,Mte,5,4,"span",10),D(51,"span",4)(52,"span",5),I(53),R(54,"translate"),C(),I(55),R(56,"translate"),j(57,wte,3,7,"mat-icon",11),C()(),xe(58,"div",12),D(59,"div",2)(60,"span",3),I(61),R(62,"translate"),C(),D(63,"span",4)(64,"span",5),I(65),R(66,"translate"),C(),j(67,xte,6,6,"ng-container",13),j(68,Cte,6,7,"ng-container",13),C(),D(69,"div",14)(70,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeRewardsAddressConfig())}),j(71,kte,3,3,"ng-container",13),j(72,Ste,3,3,"ng-container",13),C()()(),xe(73,"div",12),D(74,"div",2)(75,"span",3),I(76),R(77,"translate"),C(),D(78,"span",4)(79,"span",5),I(80),R(81,"translate"),C(),I(82),R(83,"translate"),D(84,"mat-icon",16),R(85,"translate"),I(86,"info"),C()(),D(87,"div",14)(88,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeTransportsConfig())}),I(89),R(90,"translate"),C()()(),xe(91,"div",12),D(92,"div",2)(93,"span",3),I(94),R(95,"translate"),C(),D(96,"span",4)(97,"span",5),I(98),R(99,"translate"),C(),I(100),C(),D(101,"div",14)(102,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeRouterConfig())}),I(103),R(104,"translate"),C()()(),xe(105,"div",12),D(106,"div",2)(107,"span",3),I(108),R(109,"translate"),C(),D(110,"span",4)(111,"span",5),I(112),R(113,"translate"),C(),xe(114,"i"),I(115),R(116,"translate"),C()(),xe(117,"div",12),D(118,"div",2)(119,"span",3),I(120),R(121,"translate"),C(),xe(122,"app-charts",17),C()()}if(2&n){const e=z();d(3),oe(B(4,48,"node.details.node-info.title")),d(4),me("",B(8,50,"node.details.node-info.label")," "),d(4),oe(e.node.label),d(1),w("inline",!0),d(4),me("",B(17,52,"node.details.node-info.public-key")," "),d(2),Dn("text",e.node.localPk),d(3),me("",B(22,54,"node.details.node-info.symmetic-nat")," "),d(2),me(" ",B(24,56,e.node.isSymmeticNat?"common.yes":"common.no")," "),d(2),w("ngIf",!e.node.isSymmeticNat),d(1),w("ngIf",e.node.ip),d(3),me("",B(30,58,"node.details.node-info.dmsg-server")," "),d(2),Dn("text",e.node.dmsgServerPk),d(3),me("",B(35,60,"node.details.node-info.ping")," "),d(2),me(" ",Pt(37,62,"common.time-in-ms",Ve(106,nM,e.node.roundTripPing))," "),d(4),me("",B(41,65,"node.details.node-info.node-version")," "),d(2),me(" ",e.node.version?e.node.version:B(43,67,"common.unknown")," "),d(4),me("",B(47,69,"node.details.node-info.build-type")," "),d(2),me(" ",e.node.buildTag?e.node.buildTag:B(49,71,"node.details.node-info.unknown-build")," "),d(2),w("ngIf",e.node.skybianBuildVersion),d(3),me("",B(54,73,"node.details.node-info.time.title")," "),d(2),me(" ",Pt(56,75,"node.details.node-info.time."+e.timeOnline.translationVarName,Ve(108,nM,e.timeOnline.elapsedTime))," "),d(2),w("ngIf",e.timeOnline.totalMinutes>60),d(4),oe(B(62,78,"node.details.rewards-info.title")),d(4),me("",B(66,80,"node.details.rewards-info.rewards-address")," "),d(2),w("ngIf",e.node.rewardsAddress),d(1),w("ngIf",!e.node.rewardsAddress),d(2),w("forDarkBackground",!0),d(1),w("ngIf",e.node.rewardsAddress),d(1),w("ngIf",!e.node.rewardsAddress),d(4),oe(B(77,82,"node.details.transports-info.title")),d(4),me("",B(81,84,"node.details.transports-info.autoconnect")," "),d(2),me(" ",B(83,86,"node.details.transports-info."+(e.node.autoconnectTransports?"enabled":"disabled"))," "),d(2),w("inline",!0)("matTooltip",B(85,88,"node.details.transports-info.autoconnect-info")),d(4),w("forDarkBackground",!0),d(1),me(" ",B(90,90,"node.details.transports-info."+(e.node.autoconnectTransports?"disable":"enable")+"-button")," "),d(5),oe(B(95,92,"node.details.router-info.title")),d(4),me("",B(99,94,"node.details.router-info.min-hops")," "),d(2),me(" ",e.node.minHops," "),d(2),w("forDarkBackground",!0),d(1),me(" ",B(104,96,"node.details.router-info.change-config-button")," "),d(5),me("",B(109,98,"node.details.node-health.title")," "),d(4),oe(B(113,100,"node.details.node-health.uptime-tracker")),d(2),fo(e.nodeHealthClass),d(1),me(" ",B(116,102,e.nodeHealthText)," "),d(5),oe(B(121,104,"node.details.node-traffic-data")),d(2),w("trafficData",e.trafficData)}}class Su{constructor(t,e,i,o){this.dialog=t,this.storageService=e,this.transportService=i,this.snackbarService=o}set nodeInfo(t){this.node=t,this.timeOnline=II.getElapsedTime(t.secondsOnline),t.health&&t.health.servicesHealth===ss.Healthy?(this.nodeHealthText="node.statuses.online",this.nodeHealthClass="dot-green"):t.health&&t.health.servicesHealth===ss.Unhealthy?(this.nodeHealthText="node.statuses.partially-online",this.nodeHealthClass="dot-yellow blinking"):t.health&&t.health.servicesHealth===ss.Connecting?(this.nodeHealthText="node.statuses.connecting",this.nodeHealthClass="dot-outline-gray"):(this.nodeHealthText="node.statuses.unknown",this.nodeHealthClass="dot-outline-gray")}ngOnDestroy(){this.autoconnectSubscription&&this.autoconnectSubscription.unsubscribe()}showEditLabelDialog(){let t=this.storageService.getLabelInfo(this.node.localPk);t||(t={id:this.node.localPk,label:"",identifiedElementType:yr.Node}),fa.openDialog(this.dialog,t).afterClosed().subscribe(e=>{e&&Je.refreshCurrentDisplayedData()})}changeRewardsAddressConfig(){kc.openDialog(this.dialog,{nodePk:this.node.localPk,currentAddress:this.node.rewardsAddress}).afterClosed().subscribe(e=>{e&&Je.refreshCurrentDisplayedData()})}changeRouterConfig(){fl.openDialog(this.dialog,{nodePk:this.node.localPk,minHops:this.node.minHops}).afterClosed().subscribe(e=>{e&&Je.refreshCurrentDisplayedData()})}changeTransportsConfig(){const t=Wt.createConfirmationDialog(this.dialog,this.node.autoconnectTransports?"node.details.transports-info.disable-confirmation":"node.details.transports-info.enable-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing();const e=this.transportService.changeAutoconnectSetting(this.node.localPk,!this.node.autoconnectTransports);this.autoconnectSubscription=e.subscribe(()=>{t.close(),this.snackbarService.showDone(this.node.autoconnectTransports?"node.details.transports-info.disable-done":"node.details.transports-info.enable-done"),Je.refreshCurrentDisplayedData()},i=>{i=Qt(i),t.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)})})}}Su.\u0275fac=function(t){return new(t||Su)(F(Fn),F(ti),F(hl),F(cn))},Su.\u0275cmp=qe({type:Su,selectors:[["app-node-info-content"]],inputs:{nodeInfo:"nodeInfo",trafficData:"trafficData"},decls:1,vars:1,consts:[["class","font-smaller d-flex flex-column mt-4.5",4,"ngIf"],[1,"font-smaller","d-flex","flex-column","mt-4.5"],[1,"d-flex","flex-column"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"highlight-internal-icon",3,"click"],[1,"text-with-small-right-margin"],[1,"edit-icon",3,"inline"],[3,"text"],["class","info-line",4,"ngIf"],[3,"inline","matTooltip",4,"ngIf"],[1,"separator"],[4,"ngIf"],[1,"config-button-container"],["color","primary",3,"forDarkBackground","action"],[3,"inline","matTooltip"],[1,"d-flex","flex-column","justify-content-end","mt-3",3,"trafficData"],[1,"text-with-right-margin",3,"text"],["target","_blank","rel","noreferrer nofollow noopener",3,"href"],[1,"link-icon","transparent-button",3,"inline","matTooltip"]],template:function(t,e){1&t&&j(0,Dte,123,110,"div",0),2&t&&w("ngIf",e.node)},dependencies:[Ot,Cn,gi,Sc,ii,lp,Ct],styles:[".section-title[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;text-transform:uppercase}.info-line[_ngcontent-%COMP%]{word-break:break-word;margin-top:7px}.info-line[_ngcontent-%COMP%] .text-with-right-margin[_ngcontent-%COMP%]{margin-right:5px}.info-line[_ngcontent-%COMP%] .text-with-small-right-margin[_ngcontent-%COMP%]{margin-right:3px}.info-line[_ngcontent-%COMP%] .link-icon[_ngcontent-%COMP%]{font-size:20px;line-height:1;color:#fff!important;cursor:pointer}.info-line[_ngcontent-%COMP%] .edit-icon[_ngcontent-%COMP%]{display:inline!important}.info-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px;-webkit-user-select:none;user-select:none}.info-line[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:7px}.info-line[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{opacity:.75}.separator[_ngcontent-%COMP%]{width:100%;height:0px;margin:1rem 0;border-top:1px solid rgba(255,255,255,.15)}.config-button-container[_ngcontent-%COMP%]{margin-top:10px;margin-left:-4px}"]});class cp{ngOnInit(){this.nodeSubscription=Je.currentNode.subscribe(t=>{this.node=t}),this.trafficDataSubscription=Je.currentTrafficData.subscribe(t=>{this.trafficData=t})}ngOnDestroy(){this.nodeSubscription.unsubscribe(),this.trafficDataSubscription.unsubscribe()}}cp.\u0275fac=function(t){return new(t||cp)},cp.\u0275cmp=qe({type:cp,selectors:[["app-node-info"]],decls:1,vars:2,consts:[[3,"nodeInfo","trafficData"]],template:function(t,e){1&t&&xe(0,"app-node-info-content",0),2&t&&w("nodeInfo",e.node)("trafficData",e.trafficData)},dependencies:[Su]});const Tte=function(){return["settings.title","labels.title"]};class dp{constructor(t){this.router=t,this.tabsData=[],this.returnButtonText="settings.title",this.tabsData=[{icon:"view_headline",label:"labels.list-title",linkParts:[]}]}performAction(t){null===t&&this.router.navigate(["settings"])}}dp.\u0275fac=function(t){return new(t||dp)(F(Xt))},dp.\u0275cmp=qe({type:dp,selectors:[["app-all-labels"]],decls:5,vars:6,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","showUpdateButton","returnText","optionSelected"],[1,"content","col-12"],[3,"showShortList"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"app-top-bar",2),ye("optionSelected",function(o){return e.performAction(o)}),C()(),D(3,"div",3),xe(4,"app-label-list",4),C()()),2&t&&(d(2),w("titleParts",Un(5,Tte))("tabsData",e.tabsData)("showUpdateButton",!1)("returnText",e.returnButtonText),d(2),w("showShortList",!1))},dependencies:[as,Mu]});const Lte=["firstInput"];function Ete(n,t){1&n&&($e(0),D(1,"span"),I(2),R(3,"translate"),C(),Ge()),2&n&&(d(2),oe(B(3,1,"vpn.server-list.add-server-dialog.pk-length-error")))}function Ite(n,t){1&n&&(D(0,"span"),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"vpn.server-list.add-server-dialog.pk-chars-error")))}class Dc{constructor(t,e,i,o,s,a,l,c){this.dialogRef=t,this.data=e,this.formBuilder=i,this.dialog=o,this.router=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=c}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.mediumModalWidth,t.open(Dc,i)}ngOnInit(){this.form=this.formBuilder.group({pk:["",Vt.compose([Vt.required,Vt.minLength(66),Vt.maxLength(66),Vt.pattern("^[0-9a-fA-F]+$")])],password:[""],name:[""],note:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){if(!this.form.valid)return;const t={pk:this.form.get("pk").value,name:this.form.get("name").value,note:this.form.get("note").value};fn.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,this.dialogRef,this.data,null,null,t,this.form.get("password").value)}}Dc.\u0275fac=function(t){return new(t||Dc)(F(Vn),F(Si),F(xr),F(Fn),F(Xt),F(Ho),F(Bo),F(cn))},Dc.\u0275cmp=qe({type:Dc,selectors:[["app-add-vpn-server"]],viewQuery:function(t,e){if(1&t&&ft(Lte,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:35,vars:23,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","pk","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],["formControlName","password","type","password","matInput",""],["formControlName","name","maxlength","100","matInput",""],["formControlName","note","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"disabled","action"]],template:function(t,e){if(1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C(),D(10,"mat-error"),j(11,Ete,4,3,"ng-container",6),C(),j(12,Ite,3,3,"ng-template",null,7,Ms),C(),D(14,"mat-form-field")(15,"div",2)(16,"label",3),I(17),R(18,"translate"),C(),xe(19,"input",8),C()(),D(20,"mat-form-field")(21,"div",2)(22,"label",3),I(23),R(24,"translate"),C(),xe(25,"input",9),C()(),D(26,"mat-form-field")(27,"div",2)(28,"label",3),I(29),R(30,"translate"),C(),xe(31,"input",10),C()()(),D(32,"app-button",11),ye("action",function(){return e.process()}),I(33),R(34,"translate"),C()()),2&t){const i=li(13);w("headline",B(1,11,"vpn.server-list.add-server-dialog.title"))("dialog",e.dialogRef),d(2),w("formGroup",e.form),d(4),oe(B(7,13,"vpn.server-list.add-server-dialog.pk-label")),d(5),w("ngIf",!e.form.get("pk").hasError("pattern"))("ngIfElse",i),d(6),oe(B(18,15,"vpn.server-list.add-server-dialog.password-label")),d(6),oe(B(24,17,"vpn.server-list.add-server-dialog.name-label")),d(6),oe(B(30,19,"vpn.server-list.add-server-dialog.note-label")),d(3),w("disabled",!e.form.valid),d(1),me(" ",B(34,21,"vpn.server-list.add-server-dialog.use-server-button")," ")}},dependencies:[Ot,Yi,Fi,Ri,Ni,wr,ni,Di,tr,sl,Cr,ii,Rn,Ct]});class Pte{constructor(){this.countryCode="ZZ"}}class Du{constructor(t){this.http=t,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type=vpn"}getServers(){return this.servers?We(this.servers):this.http.get(this.discoveryServiceUrl).pipe(Qf(t=>t.pipe(Ai(4e3))),Ce(t=>{const e=[];return t.forEach(i=>{const o=new Pte,s=i.address.split(":");2===s.length&&(o.pk=s[0],o.location="",i.geo&&(i.geo.country&&(o.countryCode=i.geo.country),i.geo.region&&(o.location=i.geo.region)),o.name=s[0],o.note="",e.push(o))}),this.servers=e,e}))}}function Ote(n,t){1&n&&Xo(0)}Du.\u0275fac=function(t){return new(t||Du)(we($l))},Du.\u0275prov=Ye({token:Du,factory:Du.\u0275fac,providedIn:"root"});const aP=function(){return["vpn.title"]};function Ate(n,t){if(1&n&&(D(0,"div",3)(1,"div",4),xe(2,"app-top-bar",5),D(3,"div",6)(4,"div",7)(5,"div",8),j(6,Ote,1,0,"ng-container",9),C()()()(),xe(7,"app-loading-indicator",10),C()),2&n){const e=z(),i=li(2);d(2),w("titleParts",Un(6,aP))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(4),w("ngTemplateOutlet",i)}}function Fte(n,t){1&n&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&n&&(d(2),oe(B(3,1,"vpn.server-list.tabs.public")))}const Rg=function(n,t){return["/vpn",n,"servers",t,1]};function Rte(n,t){if(1&n&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&n){const e=z(2);w("routerLink",ln(4,Rg,e.currentLocalPk,e.lists.Public)),d(2),oe(B(3,2,"vpn.server-list.tabs.public"))}}function Nte(n,t){1&n&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&n&&(d(2),oe(B(3,1,"vpn.server-list.tabs.history")))}function Yte(n,t){if(1&n&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&n){const e=z(2);w("routerLink",ln(4,Rg,e.currentLocalPk,e.lists.History)),d(2),oe(B(3,2,"vpn.server-list.tabs.history"))}}function Bte(n,t){1&n&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&n&&(d(2),oe(B(3,1,"vpn.server-list.tabs.favorites")))}function Hte(n,t){if(1&n&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&n){const e=z(2);w("routerLink",ln(4,Rg,e.currentLocalPk,e.lists.Favorites)),d(2),oe(B(3,2,"vpn.server-list.tabs.favorites"))}}function Vte(n,t){1&n&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&n&&(d(2),oe(B(3,1,"vpn.server-list.tabs.blocked")))}function jte(n,t){if(1&n&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&n){const e=z(2);w("routerLink",ln(4,Rg,e.currentLocalPk,e.lists.Blocked)),d(2),oe(B(3,2,"vpn.server-list.tabs.blocked"))}}function zte(n,t){1&n&&xe(0,"br")}function Ute(n,t){if(1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n){const e=z().$implicit;d(1),oe(B(2,1,e.translatableValue))}}function Wte(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z().$implicit;d(1),oe(e.value)}}function $te(n,t){if(1&n&&(D(0,"div",28)(1,"span"),I(2),R(3,"translate"),C(),j(4,Ute,3,3,"ng-container",21),j(5,Wte,2,1,"ng-container",21),C()),2&n){const e=t.$implicit;d(2),me("",B(3,3,e.filterName),": "),d(2),w("ngIf",e.translatableValue),d(1),w("ngIf",e.value)}}function Gte(n,t){if(1&n){const e=tt();D(0,"div",25),ye("click",function(){return Pe(e),Oe(z(3).dataFilterer.removeFilters())}),D(1,"div",26)(2,"mat-icon",19),I(3,"search"),C(),I(4),R(5,"translate"),C(),j(6,$te,6,5,"div",27),C()}if(2&n){const e=z(3);d(2),w("inline",!0),d(2),me(" ",B(5,3,"vpn.server-list.current-filters"),""),d(2),w("ngForOf",e.dataFilterer.currentFiltersTexts)}}function qte(n,t){if(1&n&&($e(0),j(1,zte,1,0,"br",21),j(2,Gte,7,5,"div",24),Ge()),2&n){const e=z(2);d(1),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),d(1),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0)}}const Kte=function(n){return{deactivated:n}};function Zte(n,t){if(1&n){const e=tt();D(0,"div",11)(1,"div",12)(2,"div",13)(3,"div",14),j(4,Fte,4,3,"div",15),j(5,Rte,4,7,"a",16),j(6,Nte,4,3,"div",15),j(7,Yte,4,7,"a",16),j(8,Bte,4,3,"div",15),j(9,Hte,4,7,"a",16),j(10,Vte,4,3,"div",15),j(11,jte,4,7,"a",16),C()()()(),D(12,"div",17)(13,"div",12)(14,"div",13)(15,"div",14)(16,"div",18),ye("click",function(){Pe(e);const o=z();return Oe(o.dataFilterer?o.dataFilterer.changeFilters():null)}),R(17,"translate"),D(18,"span")(19,"mat-icon",19),I(20,"search"),C()()()()()()(),D(21,"div",20)(22,"div",12)(23,"div",13)(24,"div",14)(25,"div",18),ye("click",function(){return Pe(e),Oe(z().enterManually())}),R(26,"translate"),D(27,"span")(28,"mat-icon",19),I(29,"add"),C()()()()()()(),j(30,qte,3,2,"ng-container",21)}if(2&n){const e=z();d(4),w("ngIf",e.currentList===e.lists.Public),d(1),w("ngIf",e.currentList!==e.lists.Public),d(1),w("ngIf",e.currentList===e.lists.History),d(1),w("ngIf",e.currentList!==e.lists.History),d(1),w("ngIf",e.currentList===e.lists.Favorites),d(1),w("ngIf",e.currentList!==e.lists.Favorites),d(1),w("ngIf",e.currentList===e.lists.Blocked),d(1),w("ngIf",e.currentList!==e.lists.Blocked),d(1),w("ngClass",Ve(18,Kte,e.loading)),d(4),w("matTooltip",B(17,14,"filters.filter-info")),d(3),w("inline",!0),d(6),w("matTooltip",B(26,16,"vpn.server-list.add-manually-info")),d(3),w("inline",!0),d(2),w("ngIf",e.dataFilterer)}}function Xte(n,t){1&n&&Xo(0)}function Qte(n,t){if(1&n&&(D(0,"mat-icon",19),I(1),C()),2&n){const e=z(5);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function Jte(n,t){if(1&n){const e=tt();D(0,"th",50),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.dateSortData))}),R(1,"translate"),D(2,"div",43)(3,"div",44),I(4),R(5,"translate"),C(),j(6,Qte,2,2,"mat-icon",41),C()()}if(2&n){const e=z(4);w("matTooltip",B(1,3,"vpn.server-list.date-info")),d(4),me(" ",B(5,5,"vpn.server-list.date-small-table-label")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.dateSortData)}}function ene(n,t){if(1&n&&(D(0,"mat-icon",19),I(1),C()),2&n){const e=z(4);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function tne(n,t){if(1&n&&(D(0,"mat-icon",19),I(1),C()),2&n){const e=z(4);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function nne(n,t){if(1&n&&(D(0,"mat-icon",19),I(1),C()),2&n){const e=z(4);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function ine(n,t){if(1&n&&(D(0,"mat-icon",19),I(1),C()),2&n){const e=z(4);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function rne(n,t){if(1&n&&(D(0,"mat-icon",19),I(1),C()),2&n){const e=z(4);w("inline",!0),d(1),oe(e.dataSorter.sortingArrow)}}function one(n,t){if(1&n&&(D(0,"td",64),I(1),R(2,"date"),C()),2&n){const e=z().$implicit;d(1),me(" ",Pt(2,1,e.lastUsed,"yyyy/MM/dd, H:mm a")," ")}}function sne(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z().$implicit;d(1),me(" ",e.location," ")}}function ane(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),me(" ",B(2,1,"vpn.server-list.unknown")," "))}const lne=function(n,t){return{custom:n,original:t}};function cne(n,t){if(1&n&&(D(0,"mat-icon",65),ye("click",function(i){return i.stopPropagation()}),R(1,"translate"),I(2,"info_outline"),C()),2&n){const e=z().$implicit,i=z(4);w("inline",!0)("matTooltip",Pt(1,2,i.getNoteVar(e),ln(5,lne,e.personalNote,e.note)))}}const dne=function(n){return{"selectable click-effect":n}};function une(n,t){if(1&n){const e=tt();D(0,"tr",51),ye("click",function(){const s=Pe(e).$implicit,a=z(4);return Oe(a.currentList!==a.lists.Blocked?a.selectServer(s):null)}),j(1,one,3,4,"td",52),D(2,"td",53)(3,"div",54),xe(4,"div",55),C()(),D(5,"td",56),xe(6,"app-vpn-server-name",57),C(),D(7,"td",58),j(8,sne,2,1,"ng-container",21),j(9,ane,3,3,"ng-container",21),C(),D(10,"td",59)(11,"app-copy-to-clipboard-text",60),ye("click",function(o){return o.stopPropagation()}),C()(),D(12,"td",61),j(13,cne,3,8,"mat-icon",62),C(),D(14,"td",48)(15,"button",63),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),Oe(l.openOptions(a))}),R(16,"translate"),D(17,"mat-icon",19),I(18,"settings"),C()()()()}if(2&n){const e=t.$implicit,i=z(4);w("ngClass",Ve(23,dne,i.currentList!==i.lists.Blocked)),d(1),w("ngIf",i.currentList===i.lists.History),d(3),ci("background-image: url('assets/img/big-flags/"+e.countryCode.toLocaleLowerCase()+".png');"),w("matTooltip",i.getCountryName(e.countryCode)),d(2),w("isCurrentServer",i.currentServer&&e.pk===i.currentServer.pk)("isFavorite",e.flag===i.serverFlags.Favorite&&i.currentList!==i.lists.Favorites)("isBlocked",e.flag===i.serverFlags.Blocked&&i.currentList!==i.lists.Blocked)("isInHistory",e.inHistory&&i.currentList!==i.lists.History)("hasPassword",e.usedWithPassword)("name",e.name)("pk",e.pk)("customName",e.customName)("defaultName","vpn.server-list.none"),d(2),w("ngIf",e.location),d(1),w("ngIf",!e.location),d(2),w("shortSimple",!0)("text",e.pk),d(2),w("ngIf",e.note||e.personalNote),d(2),w("matTooltip",B(16,21,"vpn.server-options.tooltip")),d(2),w("inline",!0)}}const hne=function(n,t){return{"public-pk-column":n,"history-pk-column":t}};function fne(n,t){if(1&n){const e=tt();D(0,"table",38)(1,"tr"),j(2,Jte,7,7,"th",39),D(3,"th",40),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.countrySortData))}),R(4,"translate"),D(5,"mat-icon",19),I(6,"flag"),C(),j(7,ene,2,2,"mat-icon",41),C(),D(8,"th",42),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.nameSortData))}),D(9,"div",43)(10,"div",44),I(11),R(12,"translate"),C(),j(13,tne,2,2,"mat-icon",41),C()(),D(14,"th",45),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.locationSortData))}),D(15,"div",43)(16,"div",44),I(17),R(18,"translate"),C(),j(19,nne,2,2,"mat-icon",41),C()(),D(20,"th",46),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.pkSortData))}),R(21,"translate"),D(22,"div",43)(23,"div",44),I(24),R(25,"translate"),C(),j(26,ine,2,2,"mat-icon",41),C()(),D(27,"th",47),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.noteSortData))}),R(28,"translate"),D(29,"div",43)(30,"mat-icon",19),I(31,"info_outline"),C(),j(32,rne,2,2,"mat-icon",41),C()(),xe(33,"th",48),C(),j(34,une,19,25,"tr",49),C()}if(2&n){const e=z(3);d(2),w("ngIf",e.currentList===e.lists.History),d(1),w("matTooltip",B(4,16,"vpn.server-list.country-info")),d(2),w("inline",!0),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.countrySortData),d(4),me(" ",B(12,18,"vpn.server-list.name-small-table-label")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.nameSortData),d(4),me(" ",B(18,20,"vpn.server-list.location-small-table-label")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.locationSortData),d(1),w("ngClass",ln(28,hne,e.currentList===e.lists.Public,e.currentList===e.lists.History))("matTooltip",B(21,22,"vpn.server-list.public-key-info")),d(4),me(" ",B(25,24,"vpn.server-list.public-key-small-table-label")," "),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.pkSortData),d(1),w("matTooltip",B(28,26,"vpn.server-list.note-info")),d(3),w("inline",!0),d(2),w("ngIf",e.dataSorter.currentSortingColumn===e.noteSortData),d(2),w("ngForOf",e.dataSource)}}function pne(n,t){if(1&n&&(D(0,"div",35)(1,"div",36),j(2,fne,35,31,"table",37),C()()),2&n){const e=z(2);d(2),w("ngIf",e.dataSource.length>0)}}const mne=function(n,t){return["/vpn",n,"servers",t]};function _ne(n,t){if(1&n&&xe(0,"app-paginator",66),2&n){const e=z(2);w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",ln(4,mne,e.currentLocalPk,e.currentList))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function gne(n,t){1&n&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"vpn.server-list.empty-discovery")))}function bne(n,t){1&n&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"vpn.server-list.empty-history")))}function vne(n,t){1&n&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"vpn.server-list.empty-favorites")))}function yne(n,t){1&n&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"vpn.server-list.empty-blocked")))}function Mne(n,t){1&n&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&n&&(d(1),oe(B(2,1,"vpn.server-list.empty-with-filter")))}function wne(n,t){if(1&n&&(D(0,"div",35)(1,"div",67)(2,"mat-icon",68),I(3,"warning"),C(),j(4,gne,3,3,"span",69),j(5,bne,3,3,"span",69),j(6,vne,3,3,"span",69),j(7,yne,3,3,"span",69),j(8,Mne,3,3,"span",69),C()()),2&n){const e=z(2);d(2),w("inline",!0),d(2),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.Public),d(1),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.History),d(1),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.Favorites),d(1),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.Blocked),d(1),w("ngIf",0!==e.allServers.length)}}const xne=function(n){return{"mb-3":n}};function Cne(n,t){if(1&n&&(D(0,"div",29)(1,"div",30),xe(2,"app-top-bar",5),C(),D(3,"div",31)(4,"div",7)(5,"div",32),j(6,Xte,1,0,"ng-container",9),C(),j(7,pne,3,1,"div",33),j(8,_ne,1,7,"app-paginator",34),j(9,wne,9,6,"div",33),C()()()),2&n){const e=z(),i=li(2);d(2),w("titleParts",Un(10,aP))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(3),w("ngClass",Ve(11,xne,!e.dataFilterer.currentFiltersTexts||e.dataFilterer.currentFiltersTexts.length<1)),d(1),w("ngTemplateOutlet",i),d(1),w("ngIf",0!==e.dataSource.length),d(1),w("ngIf",e.numberOfPages>1),d(1),w("ngIf",0===e.dataSource.length)}}var Bi=(()=>(function(n){n.Public="public",n.History="history",n.Favorites="favorites",n.Blocked="blocked"}(Bi||(Bi={})),Bi))();class Tu{constructor(t,e,i,o,s,a,l,c,M){this.dialog=t,this.router=e,this.translateService=i,this.route=o,this.vpnClientDiscoveryService=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=c,this.storageService=M,this.maxFullListElements=50,this.dateSortData=new Nn(["lastUsed"],"vpn.server-list.date-small-table-label",Jt.NumberReversed),this.countrySortData=new Nn(["countryName"],"vpn.server-list.country-small-table-label",Jt.Text),this.nameSortData=new Nn(["name"],"vpn.server-list.name-small-table-label",Jt.Text),this.locationSortData=new Nn(["location"],"vpn.server-list.location-small-table-label",Jt.Text),this.pkSortData=new Nn(["pk"],"vpn.server-list.public-key-small-table-label",Jt.Text),this.noteSortData=new Nn(["note"],"vpn.server-list.note-small-table-label",Jt.Text),this.loading=!0,this.loadingBackendData=!0,this.tabsData=fn.vpnTabsData,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.currentList=Bi.Public,this.vpnRunning=!1,this.serverFlags=Wn,this.lists=Bi,this.initialLoadStarted=!1,this.navigationsSubscription=o.paramMap.subscribe(P=>{if(P.has("type")?P.get("type")===Bi.Favorites?(this.currentList=Bi.Favorites,this.listId="vfs"):P.get("type")===Bi.Blocked?(this.currentList=Bi.Blocked,this.listId="vbs"):P.get("type")===Bi.History?(this.currentList=Bi.History,this.listId="vhs"):(this.currentList=Bi.Public,this.listId="vps"):(this.currentList=Bi.Public,this.listId="vps"),fn.setDefaultTabForServerList(this.currentList),P.has("key")&&(this.currentLocalPk=P.get("key"),fn.changeCurrentPk(this.currentLocalPk),this.tabsData=fn.vpnTabsData),P.has("page")){let Y=Number.parseInt(P.get("page"),10);(isNaN(Y)||Y<1)&&(Y=1),this.currentPageInUrl=Y,this.recalculateElementsToShow()}this.initialLoadStarted||(this.initialLoadStarted=!0,this.loadData())}),this.currentServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(P=>this.currentServer=P),this.backendDataSubscription=this.vpnClientService.backendState.subscribe(P=>{P&&(this.loadingBackendData=!1,this.vpnRunning=P.vpnClientAppData.running)})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.currentServerSubscription.unsubscribe(),this.backendDataSubscription.unsubscribe(),this.dataSortedSubscription&&this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription&&this.dataFiltererSubscription.unsubscribe(),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataFilterer&&this.dataFilterer.dispose(),this.dataSorter&&this.dataSorter.dispose()}enterManually(){Dc.openDialog(this.dialog,this.currentLocalPk)}getNoteVar(t){return t.note&&t.personalNote?"vpn.server-list.notes-info":!t.note&&t.personalNote?t.personalNote:t.note}selectServer(t){const e=this.vpnSavedDataService.getSavedVersion(t.pk,!0);if(this.snackbarService.closeCurrentIfTemporaryError(),e&&e.flag===Wn.Blocked)this.snackbarService.showError("vpn.starting-blocked-server-error",{},!0);else{if(this.currentServer&&this.currentServer.pk===t.pk){if(this.vpnRunning)this.snackbarService.showWarning("vpn.server-change.already-selected-warning");else{const i=Wt.createConfirmationDialog(this.dialog,"vpn.server-change.start-same-server-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.vpnClientService.start(),fn.redirectAfterServerChange(this.router,null,this.currentLocalPk)})}return}if(e&&e.usedWithPassword)return void dl.openDialog(this.dialog,!0).afterClosed().subscribe(i=>{i&&this.makeServerChange(t,"-"===i?null:i.substr(1))});this.makeServerChange(t,null)}}makeServerChange(t,e){fn.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,null,this.currentLocalPk,t.originalLocalData,t.originalDiscoveryData,null,e)}openOptions(t){let e=this.vpnSavedDataService.getSavedVersion(t.pk,!0);e||(e=this.vpnSavedDataService.processFromDiscovery(t.originalDiscoveryData)),e?fn.openServerOptions(e,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe(i=>{i&&this.processAllServers()}):this.snackbarService.showError("vpn.unexpedted-error")}loadData(){if(this.currentList===Bi.Public)this.dataSubscription=this.vpnClientDiscoveryService.getServers().subscribe(t=>{this.allServers=t.map(e=>({countryCode:e.countryCode,countryName:this.getCountryName(e.countryCode),name:e.name,customName:null,location:e.location,pk:e.pk,note:e.note,personalNote:null,originalDiscoveryData:e})),this.vpnSavedDataService.updateFromDiscovery(t),this.loading=!1,this.processAllServers()});else{let t;t=this.currentList===Bi.History?this.vpnSavedDataService.history:this.currentList===Bi.Favorites?this.vpnSavedDataService.favorites:this.vpnSavedDataService.blocked,this.dataSubscription=t.subscribe(e=>{const i=[];e.forEach(o=>{i.push({countryCode:o.countryCode,countryName:this.getCountryName(o.countryCode),name:o.name,customName:null,location:o.location,pk:o.pk,note:o.note,personalNote:null,lastUsed:o.lastUsed,inHistory:o.inHistory,flag:o.flag,originalLocalData:o})}),this.allServers=i,this.loading=!1,this.processAllServers()})}}processAllServers(){this.fillFilterPropertiesArray();const t=new Set;this.allServers.forEach((c,M)=>{t.add(c.countryCode);const P=this.vpnSavedDataService.getSavedVersion(c.pk,0===M);c.customName=P?P.customName:null,c.personalNote=P?P.personalNote:null,c.inHistory=!!P&&P.inHistory,c.flag=P?P.flag:Wn.None,c.enteredManually=!!P&&P.enteredManually,c.usedWithPassword=!!P&&P.usedWithPassword});let e=[];t.forEach(c=>{e.push({label:this.getCountryName(c),value:c,image:"/assets/img/big-flags/"+c.toLowerCase()+".png"})}),e.sort((c,M)=>c.label.localeCompare(M.label)),e=[{label:"vpn.server-list.filter-dialog.country-options.any",value:""}].concat(e),this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.country",keyNameInElementsArray:"countryCode",type:Zn.Select,printableLabelsForValues:e,printableLabelGeneralSettings:{defaultImage:"/assets/img/big-flags/unknown.png",imageWidth:20,imageHeight:15}}].concat(this.filterProperties);const o=[];let s,a,l;this.currentList===Bi.Public?(o.push(this.countrySortData),o.push(this.nameSortData),o.push(this.locationSortData),o.push(this.pkSortData),o.push(this.noteSortData),s=0,a=1):(this.currentList===Bi.History&&o.push(this.dateSortData),o.push(this.countrySortData),o.push(this.nameSortData),o.push(this.locationSortData),o.push(this.pkSortData),o.push(this.noteSortData),s=this.currentList===Bi.History?0:1,a=this.currentList===Bi.History?2:3),this.dataSorter=new pu(this.dialog,this.translateService,this.storageService,o,s,this.listId),this.dataSorter.setTieBreakerColumnIndex(a),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new mu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(c=>{this.filteredServers=c,this.dataSorter.setData(this.filteredServers)}),l=this.currentList===Bi.Public?this.allServers.filter(c=>c.flag!==Wn.Blocked):this.allServers,this.dataFilterer.setData(l)}fillFilterPropertiesArray(){this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.name",keyNameInElementsArray:"name",secondaryKeyNameInElementsArray:"customName",type:Zn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.location",keyNameInElementsArray:"location",type:Zn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.public-key",keyNameInElementsArray:"pk",type:Zn.TextInput,maxlength:100}]}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredServers){const t=this.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredServers.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.serversToShow=this.filteredServers.slice(e,e+t)}else this.serversToShow=null;this.dataSource=this.serversToShow}getCountryName(t){return ga[t.toUpperCase()]?ga[t.toUpperCase()]:t}}function Sne(n){const{subscriber:t,counter:e,period:i}=n;t.next(e),this.schedule({subscriber:t,counter:e+1,period:i},i)}Tu.\u0275fac=function(t){return new(t||Tu)(F(Fn),F(Xt),F(no),F(vr),F(Du),F(Ho),F(Bo),F(cn),F(ti))},Tu.\u0275cmp=qe({type:Tu,selectors:[["app-vpn-server-list"]],decls:4,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["topPart",""],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[1,"loading-top-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"main-container"],[1,"width-limiter"],[1,"center-container","mt-4.5"],[4,"ngTemplateOutlet"],[1,"h-100","loading-indicator"],[1,"option-bar-container"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","allow-overflow"],[1,"option-bar"],["class","text-option selected",4,"ngIf"],["class","text-option",3,"routerLink",4,"ngIf"],[1,"option-bar-container","option-bar-margin",3,"ngClass"],[1,"icon-option",3,"matTooltip","click"],[3,"inline"],[1,"option-bar-container","option-bar-margin"],[4,"ngIf"],[1,"text-option","selected"],[1,"text-option",3,"routerLink"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"transparent-50"],["class","item",4,"ngFor","ngForOf"],[1,"item"],[1,"row"],[1,"col-12"],[1,"col-12","vpn-table-container"],[1,"center-container","mt-4.5",3,"ngClass"],["class","rounded-elevated-box",4,"ngIf"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["class","responsive-table-translucid d-none d-md-table","cellspacing","0","cellpadding","0",4,"ngIf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],["class","sortable-column date-column click-effect",3,"matTooltip","click",4,"ngIf"],[1,"sortable-column","flag-column","center","click-effect",3,"matTooltip","click"],[3,"inline",4,"ngIf"],[1,"sortable-column","name-column","click-effect",3,"click"],[1,"header-container"],[1,"header-text"],[1,"sortable-column","location-column","click-effect",3,"click"],[1,"sortable-column","pk-column","click-effect",3,"ngClass","matTooltip","click"],[1,"sortable-column","note-column","center","click-effect",3,"matTooltip","click"],[1,"actions"],[3,"ngClass","click",4,"ngFor","ngForOf"],[1,"sortable-column","date-column","click-effect",3,"matTooltip","click"],[3,"ngClass","click"],["class","date-column",4,"ngIf"],[1,"flag-column","icon-fixer"],[1,"flag"],[3,"matTooltip"],[1,"name-column"],[3,"isCurrentServer","isFavorite","isBlocked","isInHistory","hasPassword","name","pk","customName","defaultName"],[1,"location-column"],[1,"pk-column","history-pk-column"],[1,"d-inline-block","w-100",3,"shortSimple","text","click"],[1,"center","note-column"],["class","note-icon",3,"inline","matTooltip","click",4,"ngIf"],["mat-button","",1,"big-action-button","transparent-button","vpn-small-button",3,"matTooltip","click"],[1,"date-column"],[1,"note-icon",3,"inline","matTooltip","click"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(j(0,Ate,8,7,"div",0),j(1,Zte,31,20,"ng-template",null,1,Ms),j(3,Cne,10,13,"div",2)),2&t&&(w("ngIf",e.loading||e.loadingBackendData),d(3),w("ngIf",!e.loading&&!e.loadingBackendData))},styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .note-column[_ngcontent-%COMP%], .pk-column[_ngcontent-%COMP%], .location-column[_ngcontent-%COMP%], .name-column[_ngcontent-%COMP%], .date-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.center-container[_ngcontent-%COMP%]{text-align:center}.center-container[_ngcontent-%COMP%] app-paginator[_ngcontent-%COMP%]{display:inline-block}.loading-top-container[_ngcontent-%COMP%]{z-index:1}.loading-indicator[_ngcontent-%COMP%]{padding-top:30px;padding-bottom:20px}.deactivated[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}.option-bar-container[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .allow-overflow[_ngcontent-%COMP%]{overflow:visible}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%]{display:flex;margin:-17px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{height:55px;line-height:55px;cursor:pointer;color:#fff;text-decoration:none;-webkit-user-select:none;user-select:none}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover, .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.2)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%]{transform:scale(.95)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .text-option[_ngcontent-%COMP%]{padding:0 40px;font-size:1rem}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .icon-option[_ngcontent-%COMP%]{width:55px;font-size:24px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:rgba(0,0,0,.36);cursor:unset!important}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.6)}.option-bar-margin[_ngcontent-%COMP%]{margin-left:10px}.filter-label[_ngcontent-%COMP%]{font-size:.7rem;display:inline-block;padding:5px 10px;margin-bottom:7px}.filter-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}table[_ngcontent-%COMP%]{width:100%}tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 5px!important;font-size:12px!important;font-weight:400!important}tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding-left:5px!important;padding-right:5px!important}.date-column[_ngcontent-%COMP%]{width:150px}.name-column[_ngcontent-%COMP%]{max-width:0;width:20%}.location-column[_ngcontent-%COMP%]{max-width:0;min-width:72px}.pk-column[_ngcontent-%COMP%]{max-width:0;width:25%}.history-pk-column[_ngcontent-%COMP%]{width:20%!important}.icon-fixer[_ngcontent-%COMP%]{line-height:0px}.note-column[_ngcontent-%COMP%]{max-width:0;width:3%;min-width:60px}.note-column[_ngcontent-%COMP%] .note-icon[_ngcontent-%COMP%]{opacity:.55;font-size:16px!important;display:inline}.flag-column[_ngcontent-%COMP%]{width:1px;line-height:0px}.actions[_ngcontent-%COMP%]{width:1px}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}.flag[_ngcontent-%COMP%]{width:20px;height:15px;display:inline-block;margin-right:5px;background-image:url(/assets/img/big-flags/unknown.png);background-size:contain}.flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.center[_ngcontent-%COMP%]{text-align:center}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]});const up=function(n,t){return{"small-text-icon":n,"big-text-icon":t}};function Dne(n,t){if(1&n&&(D(0,"mat-icon",4),R(1,"translate"),I(2,"done"),C()),2&n){const e=z();w("ngClass",ln(5,up,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.selected-info"))}}function Tne(n,t){if(1&n&&(D(0,"mat-icon",5),R(1,"translate"),I(2,"clear"),C()),2&n){const e=z();w("ngClass",ln(5,up,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.blocked-info"))}}function Lne(n,t){if(1&n&&(D(0,"mat-icon",6),R(1,"translate"),I(2,"star"),C()),2&n){const e=z();w("ngClass",ln(5,up,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.favorite-info"))}}function Ene(n,t){if(1&n&&(D(0,"mat-icon",4),R(1,"translate"),I(2,"history"),C()),2&n){const e=z();w("ngClass",ln(5,up,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.history-info"))}}function Ine(n,t){if(1&n&&(D(0,"mat-icon",4),R(1,"translate"),I(2,"lock_outlined"),C()),2&n){const e=z();w("ngClass",ln(5,up,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.has-password-info"))}}function Pne(n,t){if(1&n&&($e(0),I(1),D(2,"mat-icon",7),I(3,"fiber_manual_record"),C(),I(4),Ge()),2&n){const e=z();d(1),me(" ",e.customName," "),d(1),w("inline",!0),d(2),me(" ",e.name,"\n")}}function One(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z();d(1),oe(e.customName)}}function Ane(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z();d(1),oe(e.name)}}function Fne(n,t){if(1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n){const e=z();d(1),oe(B(2,1,e.defaultName))}}class Lu{constructor(){this.isCurrentServer=!1,this.isFavorite=!1,this.isBlocked=!1,this.isInHistory=!1,this.hasPassword=!1,this.name="",this.customName="",this.pk="",this.defaultName="",this.adjustIconsForBigText=!1}}Lu.\u0275fac=function(t){return new(t||Lu)},Lu.\u0275cmp=qe({type:Lu,selectors:[["app-vpn-server-name"]],inputs:{isCurrentServer:"isCurrentServer",isFavorite:"isFavorite",isBlocked:"isBlocked",isInHistory:"isInHistory",hasPassword:"hasPassword",name:"name",customName:"customName",pk:"pk",defaultName:"defaultName",adjustIconsForBigText:"adjustIconsForBigText"},decls:9,vars:9,consts:[["class","server-condition-icon",3,"ngClass","inline","matTooltip",4,"ngIf"],["class","server-condition-icon red-clear-text",3,"ngClass","inline","matTooltip",4,"ngIf"],["class","server-condition-icon yellow-clear-text",3,"ngClass","inline","matTooltip",4,"ngIf"],[4,"ngIf"],[1,"server-condition-icon",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","red-clear-text",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","yellow-clear-text",3,"ngClass","inline","matTooltip"],[1,"name-separator",3,"inline"]],template:function(t,e){1&t&&(j(0,Dne,3,8,"mat-icon",0),j(1,Tne,3,8,"mat-icon",1),j(2,Lne,3,8,"mat-icon",2),j(3,Ene,3,8,"mat-icon",0),j(4,Ine,3,8,"mat-icon",0),j(5,Pne,5,3,"ng-container",3),j(6,One,2,1,"ng-container",3),j(7,Ane,2,1,"ng-container",3),j(8,Fne,3,3,"ng-container",3)),2&t&&(w("ngIf",e.isCurrentServer),d(1),w("ngIf",e.isBlocked),d(1),w("ngIf",e.isFavorite),d(1),w("ngIf",e.isInHistory),d(1),w("ngIf",e.hasPassword),d(1),w("ngIf",e.customName&&e.name&&(!e.pk||e.name!==e.pk)),d(1),w("ngIf",(!e.name||e.pk&&e.name===e.pk)&&e.customName),d(1),w("ngIf",e.name&&(!e.pk||e.name!==e.pk)&&!e.customName),d(1),w("ngIf",(!e.name||e.pk&&e.name===e.pk)&&!e.customName))},dependencies:[On,Ot,Cn,gi,Ct],styles:[".server-condition-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;margin-right:3px;position:relative;width:14px!important;-webkit-user-select:none;user-select:none;cursor:default}.small-text-icon[_ngcontent-%COMP%]{top:2px}.big-text-icon[_ngcontent-%COMP%]{top:0}.name-separator[_ngcontent-%COMP%]{display:inline!important;font-size:8px!important;opacity:.5!important}"]});const lP=function(){return["vpn.title"]};function Rne(n,t){if(1&n&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3),C(),xe(3,"app-loading-indicator"),C()),2&n){const e=z();d(2),w("titleParts",Un(5,lP))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function Nne(n,t){1&n&&xe(0,"mat-spinner",32),2&n&&w("diameter",40)}function Yne(n,t){1&n&&(D(0,"mat-icon",33),I(1,"power_settings_new"),C()),2&n&&w("inline",!0)}function Bne(n,t){if(1&n){const e=tt();$e(0),D(1,"div",34),xe(2,"div",35),C(),D(3,"div",36)(4,"div",37),xe(5,"app-vpn-server-name",38),C(),D(6,"div",39),xe(7,"app-copy-to-clipboard-text",40),C()(),D(8,"div",41),xe(9,"div"),C(),D(10,"div",42)(11,"mat-icon",43),ye("click",function(){return Pe(e),Oe(z(3).openServerOptions())}),R(12,"translate"),I(13,"settings"),C()(),Ge()}if(2&n){const e=z(3);d(2),ci("background-image: url('assets/img/big-flags/"+e.currentRemoteServer.countryCode.toLocaleLowerCase()+".png');"),w("matTooltip",e.getCountryName(e.currentRemoteServer.countryCode)),d(3),w("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),d(2),w("shortSimple",!0)("text",e.currentRemoteServer.pk),d(4),w("inline",!0)("matTooltip",B(12,13,"vpn.server-options.tooltip"))}}function Hne(n,t){1&n&&($e(0),D(1,"div",44),I(2),R(3,"translate"),C(),Ge()),2&n&&(d(2),oe(B(3,1,"vpn.status-page.no-server")))}const Vne=function(n,t){return{custom:n,original:t}};function jne(n,t){if(1&n&&(D(0,"div",45)(1,"mat-icon",33),I(2,"info_outline"),C(),I(3),R(4,"translate"),C()),2&n){const e=z(3);d(1),w("inline",!0),d(2),me(" ",Pt(4,2,e.getNoteVar(),ln(5,Vne,e.currentRemoteServer.personalNote,e.currentRemoteServer.note))," ")}}function zne(n,t){if(1&n&&(D(0,"div",46)(1,"mat-icon",33),I(2,"cancel"),C(),I(3),R(4,"translate"),C()),2&n){const e=z(3);d(1),w("inline",!0),d(2),po(" ",B(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.lastErrorMsg," ")}}const cP=function(n){return{"disabled-button":n}};function Une(n,t){if(1&n){const e=tt();D(0,"div",22)(1,"div",11)(2,"div",13),I(3),R(4,"translate"),C(),D(5,"div")(6,"div",23),ye("click",function(){return Pe(e),Oe(z(2).start())}),D(7,"div",24),xe(8,"div",25),C(),D(9,"div",24),xe(10,"div",26),C(),j(11,Nne,1,1,"mat-spinner",27),j(12,Yne,2,1,"mat-icon",28),C()(),D(13,"div",29),j(14,Bne,14,15,"ng-container",18),j(15,Hne,4,3,"ng-container",18),C(),D(16,"div"),j(17,jne,5,8,"div",30),C(),D(18,"div"),j(19,zne,5,5,"div",31),C()()()}if(2&n){const e=z(2);d(3),oe(B(4,8,"vpn.status-page.start-title")),d(3),w("ngClass",Ve(10,cP,e.showBusy)),d(5),w("ngIf",e.showBusy),d(1),w("ngIf",!e.showBusy),d(2),w("ngIf",e.currentRemoteServer),d(1),w("ngIf",!e.currentRemoteServer),d(2),w("ngIf",e.currentRemoteServer&&(e.currentRemoteServer.note||e.currentRemoteServer.personalNote)),d(2),w("ngIf",e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.lastErrorMsg)}}function Wne(n,t){if(1&n&&(D(0,"div",77)(1,"mat-icon",33),I(2,"cancel"),C(),I(3),R(4,"translate"),C()),2&n){const e=z(3);d(1),w("inline",!0),d(2),po(" ",B(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.connectionData.error," ")}}function $ne(n,t){1&n&&(D(0,"div"),xe(1,"mat-spinner",32),C()),2&n&&(d(1),w("diameter",24))}function Gne(n,t){1&n&&(D(0,"mat-icon",33),I(1,"power_settings_new"),C()),2&n&&w("inline",!0)}const Eu=function(n){return{showValue:!0,showUnit:!0,showPerSecond:!0,limitDecimals:!0,useBits:n}},dP=function(n){return{showValue:!0,showUnit:!0,showPerSecond:!0,useBits:n}},uP=function(n){return{showValue:!0,showUnit:!0,useBits:n}},Ng=function(n){return{time:n}};function qne(n,t){if(1&n){const e=tt();D(0,"div",47)(1,"div",11)(2,"div",48)(3,"div",49)(4,"mat-icon",33),I(5,"timer"),C(),D(6,"span"),I(7),C()()(),D(8,"div",50),I(9),R(10,"translate"),C(),D(11,"div",51)(12,"div",52),I(13),R(14,"translate"),C(),xe(15,"div"),C(),D(16,"div",53),I(17),R(18,"translate"),C(),j(19,Wne,5,5,"div",54),D(20,"div",55)(21,"div",56),R(22,"translate"),D(23,"div",57),xe(24,"app-line-chart",58),C(),D(25,"div",59)(26,"div",60)(27,"div",61),I(28),R(29,"autoScale"),C(),xe(30,"div",62),C()(),D(31,"div",59)(32,"div",63)(33,"div",61),I(34),R(35,"autoScale"),C(),xe(36,"div",62),C()(),D(37,"div",59)(38,"div",64)(39,"div",61),I(40),R(41,"autoScale"),C()()(),D(42,"div",65)(43,"mat-icon",66),I(44,"keyboard_backspace"),C(),D(45,"div",67),I(46),R(47,"autoScale"),C(),D(48,"div",68),I(49),R(50,"autoScale"),R(51,"translate"),C()()(),D(52,"div",56),R(53,"translate"),D(54,"div",57),xe(55,"app-line-chart",58),C(),D(56,"div",69)(57,"div",60)(58,"div",61),I(59),R(60,"autoScale"),C(),xe(61,"div",62),C()(),D(62,"div",59)(63,"div",63)(64,"div",61),I(65),R(66,"autoScale"),C(),xe(67,"div",62),C()(),D(68,"div",59)(69,"div",64)(70,"div",61),I(71),R(72,"autoScale"),C()()(),D(73,"div",65)(74,"mat-icon",70),I(75,"keyboard_backspace"),C(),D(76,"div",67),I(77),R(78,"autoScale"),C(),D(79,"div",68),I(80),R(81,"autoScale"),R(82,"translate"),C()()()(),D(83,"div",71)(84,"div",72),R(85,"translate"),D(86,"div",57),xe(87,"app-line-chart",73),C(),D(88,"div",69)(89,"div",60)(90,"div",61),I(91),R(92,"translate"),C(),xe(93,"div",62),C()(),D(94,"div",59)(95,"div",63)(96,"div",61),I(97),R(98,"translate"),C(),xe(99,"div",62),C()(),D(100,"div",59)(101,"div",64)(102,"div",61),I(103),R(104,"translate"),C()()(),D(105,"div",65)(106,"mat-icon",33),I(107,"swap_horiz"),C(),D(108,"div"),I(109),R(110,"translate"),C()()()(),D(111,"div",74),ye("click",function(){return Pe(e),Oe(z(2).stop())}),D(112,"div",75)(113,"div",76),j(114,$ne,2,1,"div",18),j(115,Gne,2,1,"mat-icon",28),D(116,"span"),I(117),R(118,"translate"),C()()()()()()}if(2&n){const e=z(2);d(4),w("inline",!0),d(3),oe(e.connectionTimeString),d(2),oe(B(10,58,"vpn.connection-info.state-title")),d(4),oe(B(14,60,e.currentStateText)),d(2),fo("state-line "+e.currentStateLineClass),d(2),oe(B(18,62,e.currentStateText+"-info")),d(2),w("ngIf",e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.connectionData&&e.backendState.vpnClientAppData.connectionData.error),d(2),w("matTooltip",B(22,64,"vpn.status-page.upload-info")),d(3),w("animated",!1)("data",e.sentHistory)("min",e.minUploadInGraph)("max",e.maxUploadInGraph),d(4),me(" ",Pt(29,66,e.maxUploadInGraph,Ve(118,Eu,e.showSpeedsInBits))," "),d(2),ci("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),me(" ",Pt(35,69,e.midUploadInGraph,Ve(120,Eu,e.showSpeedsInBits))," "),d(2),ci("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),me(" ",Pt(41,72,e.minUploadInGraph,Ve(122,Eu,e.showSpeedsInBits))," "),d(3),w("inline",!0),d(3),oe(Pt(47,75,e.uploadSpeed,Ve(124,dP,e.showSpeedsInBits))),d(3),po(" ",Pt(50,78,e.totalUploaded,Ve(126,uP,e.showTotalsInBits))," ",B(51,81,"vpn.status-page.total-data-label")," "),d(3),w("matTooltip",B(53,83,"vpn.status-page.download-info")),d(3),w("animated",!1)("data",e.receivedHistory)("min",e.minDownloadInGraph)("max",e.maxDownloadInGraph),d(4),me(" ",Pt(60,85,e.maxDownloadInGraph,Ve(128,Eu,e.showSpeedsInBits))," "),d(2),ci("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),me(" ",Pt(66,88,e.midDownloadInGraph,Ve(130,Eu,e.showSpeedsInBits))," "),d(2),ci("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),me(" ",Pt(72,91,e.minDownloadInGraph,Ve(132,Eu,e.showSpeedsInBits))," "),d(3),w("inline",!0),d(3),oe(Pt(78,94,e.downloadSpeed,Ve(134,dP,e.showSpeedsInBits))),d(3),po(" ",Pt(81,97,e.totalDownloaded,Ve(136,uP,e.showTotalsInBits))," ",B(82,100,"vpn.status-page.total-data-label")," "),d(4),w("matTooltip",B(85,102,"vpn.status-page.latency-info")),d(3),w("animated",!1)("data",e.latencyHistory)("min",e.minLatencyInGraph)("max",e.maxLatencyInGraph),d(4),me(" ",Pt(92,104,"common."+e.getLatencyValueString(e.maxLatencyInGraph),Ve(138,Ng,e.getPrintableLatency(e.maxLatencyInGraph)))," "),d(2),ci("margin-top: "+e.graphsTopInternalMargin+"px;"),d(4),me(" ",Pt(98,107,"common."+e.getLatencyValueString(e.midLatencyInGraph),Ve(140,Ng,e.getPrintableLatency(e.midLatencyInGraph)))," "),d(2),ci("margin-top: "+e.graphsTopInternalMargin/2+"px;"),d(4),me(" ",Pt(104,110,"common."+e.getLatencyValueString(e.minLatencyInGraph),Ve(142,Ng,e.getPrintableLatency(e.minLatencyInGraph)))," "),d(3),w("inline",!0),d(3),oe(Pt(110,113,"common."+e.getLatencyValueString(e.latency),Ve(144,Ng,e.getPrintableLatency(e.latency)))),d(2),w("ngClass",Ve(146,cP,e.showBusy)),d(3),w("ngIf",e.showBusy),d(1),w("ngIf",!e.showBusy),d(2),oe(B(118,116,"vpn.status-page.disconnect"))}}function Kne(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z(3);d(1),oe(e.currentIp)}}function Zne(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"common.unknown")))}function Xne(n,t){1&n&&xe(0,"mat-spinner",32),2&n&&w("diameter",20)}function Qne(n,t){1&n&&(D(0,"mat-icon",81),R(1,"translate"),I(2,"warning"),C()),2&n&&w("inline",!0)("matTooltip",B(1,2,"vpn.status-page.data.ip-problem-info"))}function Jne(n,t){if(1&n){const e=tt();D(0,"mat-icon",82),ye("click",function(){return Pe(e),Oe(z(3).getIp())}),R(1,"translate"),I(2,"refresh"),C()}2&n&&w("inline",!0)("matTooltip",B(1,2,"vpn.status-page.data.ip-refresh-info"))}function eie(n,t){if(1&n&&(D(0,"div",78),j(1,Kne,2,1,"ng-container",18),j(2,Zne,3,3,"ng-container",18),j(3,Xne,1,1,"mat-spinner",27),j(4,Qne,3,4,"mat-icon",79),j(5,Jne,3,4,"mat-icon",80),C()),2&n){const e=z(2);d(1),w("ngIf",e.currentIp),d(1),w("ngIf",!e.currentIp&&!e.loadingCurrentIp),d(1),w("ngIf",e.loadingCurrentIp),d(1),w("ngIf",e.problemGettingIp),d(1),w("ngIf",!e.loadingCurrentIp)}}function tie(n,t){1&n&&(D(0,"div",78),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"vpn.status-page.data.unavailable")," "))}function nie(n,t){if(1&n&&($e(0),I(1),Ge()),2&n){const e=z(3);d(1),oe(e.ipCountry)}}function iie(n,t){1&n&&($e(0),I(1),R(2,"translate"),Ge()),2&n&&(d(1),oe(B(2,1,"common.unknown")))}function rie(n,t){1&n&&xe(0,"mat-spinner",32),2&n&&w("diameter",20)}function oie(n,t){1&n&&(D(0,"mat-icon",81),R(1,"translate"),I(2,"warning"),C()),2&n&&w("inline",!0)("matTooltip",B(1,2,"vpn.status-page.data.ip-country-problem-info"))}function sie(n,t){if(1&n&&(D(0,"div",78),j(1,nie,2,1,"ng-container",18),j(2,iie,3,3,"ng-container",18),j(3,rie,1,1,"mat-spinner",27),j(4,oie,3,4,"mat-icon",79),C()),2&n){const e=z(2);d(1),w("ngIf",e.ipCountry),d(1),w("ngIf",!e.ipCountry&&!e.loadingCurrentIp),d(1),w("ngIf",e.loadingCurrentIp),d(1),w("ngIf",e.problemGettingIp)}}function aie(n,t){1&n&&(D(0,"div",78),I(1),R(2,"translate"),C()),2&n&&(d(1),me(" ",B(2,1,"vpn.status-page.data.unavailable")," "))}function lie(n,t){if(1&n){const e=tt();D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",78),xe(5,"app-vpn-server-name",83),D(6,"mat-icon",82),ye("click",function(){return Pe(e),Oe(z(2).openServerOptions())}),R(7,"translate"),I(8,"settings"),C()()()}if(2&n){const e=z(2);d(2),oe(B(3,10,"vpn.status-page.data.server")),d(3),w("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("adjustIconsForBigText",!0)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),d(1),w("inline",!0)("matTooltip",B(7,12,"vpn.server-options.tooltip"))}}function cie(n,t){1&n&&xe(0,"div",15)}function die(n,t){if(1&n&&(D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",20),I(5),C()()),2&n){const e=z(2);d(2),oe(B(3,2,"vpn.status-page.data.server-note")),d(3),me(" ",e.currentRemoteServer.personalNote," ")}}function uie(n,t){1&n&&xe(0,"div",15)}function hie(n,t){if(1&n&&(D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",20),I(5),C()()),2&n){const e=z(2);d(2),oe(B(3,2,"vpn.status-page.data."+(e.currentRemoteServer.personalNote?"original-":"")+"server-note")),d(3),me(" ",e.currentRemoteServer.note," ")}}function fie(n,t){1&n&&xe(0,"div",15)}function pie(n,t){if(1&n&&(D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",20),xe(5,"app-copy-to-clipboard-text",21),C()()),2&n){const e=z(2);d(2),oe(B(3,2,"vpn.status-page.data.remote-pk")),d(3),w("text",e.currentRemoteServer.pk)}}function mie(n,t){1&n&&xe(0,"div",15)}function _ie(n,t){if(1&n&&(D(0,"div",4)(1,"div",5)(2,"div",6),xe(3,"app-top-bar",3),C()(),D(4,"div",7),j(5,Une,20,12,"div",8),j(6,qne,119,148,"div",9),D(7,"div",10)(8,"div",11)(9,"div",12)(10,"div")(11,"div",13),I(12),R(13,"translate"),C(),j(14,eie,6,5,"div",14),j(15,tie,3,3,"div",14),C(),xe(16,"div",15),D(17,"div")(18,"div",13),I(19),R(20,"translate"),C(),j(21,sie,5,4,"div",14),j(22,aie,3,3,"div",14),C(),xe(23,"div",16)(24,"div",17)(25,"div",16),j(26,lie,9,14,"div",18),j(27,cie,1,0,"div",19),j(28,die,6,4,"div",18),j(29,uie,1,0,"div",19),j(30,hie,6,4,"div",18),j(31,fie,1,0,"div",19),j(32,pie,6,4,"div",18),j(33,mie,1,0,"div",19),D(34,"div")(35,"div",13),I(36),R(37,"translate"),C(),D(38,"div",20),xe(39,"app-copy-to-clipboard-text",21),C()()()()()()()),2&n){const e=z();d(3),w("titleParts",Un(29,lP))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(2),w("ngIf",!e.showStarted),d(1),w("ngIf",e.showStarted),d(6),oe(B(13,23,"vpn.status-page.data.ip")),d(2),w("ngIf",e.ipInfoAllowed),d(1),w("ngIf",!e.ipInfoAllowed),d(4),oe(B(20,25,"vpn.status-page.data.country")),d(2),w("ngIf",e.ipInfoAllowed),d(1),w("ngIf",!e.ipInfoAllowed),d(4),w("ngIf",e.showStarted&&e.currentRemoteServer),d(1),w("ngIf",e.showStarted&&e.currentRemoteServer),d(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote),d(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote),d(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note),d(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note),d(1),w("ngIf",e.showStarted&&e.currentRemoteServer),d(1),w("ngIf",e.showStarted&&e.currentRemoteServer),d(3),oe(B(37,27,"vpn.status-page.data.local-pk")),d(3),w("text",e.currentLocalPk)}}class hp{constructor(t,e,i,o,s,a,l){this.vpnClientService=t,this.vpnSavedDataService=e,this.snackbarService=i,this.translateService=o,this.route=s,this.dialog=a,this.router=l,this.tabsData=fn.vpnTabsData,this.sentHistory=[0,0,0,0,0,0,0,0,0,0],this.receivedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0],this.minUploadInGraph=0,this.midUploadInGraph=0,this.maxUploadInGraph=0,this.minDownloadInGraph=0,this.midDownloadInGraph=0,this.maxDownloadInGraph=0,this.minLatencyInGraph=0,this.midLatencyInGraph=0,this.maxLatencyInGraph=0,this.graphsTopInternalMargin=Fs.topInternalMargin,this.connectionTimeString="00:00:00",this.calculatedSegs=-1,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0,this.showSpeedsInBits=!0,this.showTotalsInBits=!1,this.loading=!0,this.showStartedLastValue=!1,this.showStarted=!1,this.lastAppState=null,this.showBusy=!1,this.stopRequested=!1,this.loadingCurrentIp=!0,this.problemGettingIp=!1,this.lastIpRefresDate=0,this.serverFlags=Wn,this.ipInfoAllowed=this.vpnSavedDataService.getCheckIpSetting();const c=this.vpnSavedDataService.getDataUnitsSetting();c===ro.OnlyBits?(this.showSpeedsInBits=!0,this.showTotalsInBits=!0):c===ro.OnlyBytes?(this.showSpeedsInBits=!1,this.showTotalsInBits=!1):(this.showSpeedsInBits=!0,this.showTotalsInBits=!1)}ngOnInit(){this.navigationsSubscription=this.route.paramMap.subscribe(t=>{t.has("key")&&(this.currentLocalPk=t.get("key"),fn.changeCurrentPk(this.currentLocalPk),this.tabsData=fn.vpnTabsData),setTimeout(()=>this.navigationsSubscription.unsubscribe()),this.dataSubscription=this.vpnClientService.backendState.subscribe(e=>{if(e&&e.serviceState!==nr.PerformingInitialCheck){const i=!this.backendState;if(this.backendState=e,(i||this.lastAppState===yn.Running&&e.vpnClientAppData.appState!==yn.Running||this.lastAppState!==yn.Running&&e.vpnClientAppData.appState===yn.Running)&&this.getIp(!0),this.showStarted=e.vpnClientAppData.running||e.vpnClientAppData.appState!==yn.Stopped,this.showStartedLastValue!==this.showStarted){for(let o=0;o<10;o++)this.receivedHistory[o]=0,this.sentHistory[o]=0,this.latencyHistory[o]=0;this.updateGraphLimits(),this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0}if(this.lastAppState=e.vpnClientAppData.appState,this.showStartedLastValue=this.showStarted,this.stopRequested?this.showStarted||(this.stopRequested=!1,this.showBusy=e.busy):this.showBusy=e.busy,e.vpnClientAppData.connectionData){for(let o=0;o<10;o++)this.receivedHistory[o]=e.vpnClientAppData.connectionData.downloadSpeedHistory[o],this.sentHistory[o]=e.vpnClientAppData.connectionData.uploadSpeedHistory[o],this.latencyHistory[o]=e.vpnClientAppData.connectionData.latencyHistory[o];this.updateGraphLimits(),this.uploadSpeed=e.vpnClientAppData.connectionData.uploadSpeed,this.downloadSpeed=e.vpnClientAppData.connectionData.downloadSpeed,this.totalUploaded=e.vpnClientAppData.connectionData.totalUploaded,this.totalDownloaded=e.vpnClientAppData.connectionData.totalDownloaded,this.latency=e.vpnClientAppData.connectionData.latency}e.vpnClientAppData.running&&e.vpnClientAppData.appState===yn.Running&&e.vpnClientAppData.connectionData&&e.vpnClientAppData.connectionData.connectionDuration?(-1===this.calculatedSegs||e.vpnClientAppData.connectionData.connectionDuration>this.calculatedSegs+2||e.vpnClientAppData.connectionData.connectionDuration(e.add(t.schedule(Sne,n,{subscriber:e,counter:0,period:n})),e))}(1e3).subscribe(()=>{this.calculatedSegs+=1,this.refreshConnectionTimeString()})):this.timeUpdateSubscription&&(this.timeUpdateSubscription.unsubscribe(),this.timeUpdateSubscription=null,this.calculatedSegs=-1,this.connectionTimeString="00:00:00"),this.loading=!1}}),this.currentRemoteServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(e=>{this.currentRemoteServer=e})})}refreshConnectionTimeString(){const t=this.calculatedSegs%60,e=Math.floor(this.calculatedSegs/60),i=e%60,o=Math.floor(e/60);this.connectionTimeString=String(o).padStart(2,"0")+":"+String(i).padStart(2,"0")+":"+String(t).padStart(2,"0")}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.currentRemoteServerSubscription.unsubscribe(),this.closeOperationSubscription(),this.ipSubscription&&this.ipSubscription.unsubscribe(),this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}start(){if(!this.currentRemoteServer)return this.router.navigate(["vpn",this.currentLocalPk,"servers"]),void setTimeout(()=>this.snackbarService.showWarning("vpn.status-page.select-server-warning"),100);this.currentRemoteServer.flag!==Wn.Blocked?(this.showBusy=!0,this.vpnClientService.start()):this.snackbarService.showError("vpn.starting-blocked-server-error")}stop(){if(!this.backendState.vpnClientAppData.killswitch)return void this.finishStoppingVpn();const t=Wt.createConfirmationDialog(this.dialog,"vpn.status-page.disconnect-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.finishStoppingVpn()})}finishStoppingVpn(){this.stopRequested=!0,this.showBusy=!0,this.vpnClientService.stop()}openServerOptions(){fn.openServerOptions(this.currentRemoteServer,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe()}getCountryName(t){return ga[t.toUpperCase()]?ga[t.toUpperCase()]:t}getNoteVar(){return this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?"vpn.server-list.notes-info":!this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?this.currentRemoteServer.personalNote:this.currentRemoteServer.note}getLatencyValueString(t){return fn.getLatencyValueString(t)}getPrintableLatency(t){return fn.getPrintableLatency(t)}get currentStateText(){return this.backendState.vpnClientAppData.appState===yn.Stopped?"vpn.connection-info.state-disconnected":this.backendState.vpnClientAppData.appState===yn.Connecting?"vpn.connection-info.state-connecting":this.backendState.vpnClientAppData.appState===yn.Running?"vpn.connection-info.state-connected":this.backendState.vpnClientAppData.appState===yn.ShuttingDown?"vpn.connection-info.state-disconnecting":this.backendState.vpnClientAppData.appState===yn.Reconnecting?"vpn.connection-info.state-reconnecting":void 0}get currentStateLineClass(){return this.backendState.vpnClientAppData.appState===yn.Stopped?"red-line":this.backendState.vpnClientAppData.appState===yn.Connecting?"yellow-line":this.backendState.vpnClientAppData.appState===yn.Running?"green-line":"yellow-line"}closeOperationSubscription(){this.operationSubscription&&this.operationSubscription.unsubscribe()}updateGraphLimits(){const t=this.calculateGraphLimits(this.sentHistory);this.minUploadInGraph=t[0],this.midUploadInGraph=t[1],this.maxUploadInGraph=t[2];const e=this.calculateGraphLimits(this.receivedHistory);this.minDownloadInGraph=e[0],this.midDownloadInGraph=e[1],this.maxDownloadInGraph=e[2];const i=this.calculateGraphLimits(this.latencyHistory);this.minLatencyInGraph=i[0],this.midLatencyInGraph=i[1],this.maxLatencyInGraph=i[2]}calculateGraphLimits(t){let i=0,o=0;return t.forEach(s=>{s>i&&(i=s)}),0===i&&(i+=1),o=new(Pg())(i).minus(0).dividedBy(2).plus(0).decimalPlaces(1).toNumber(),[0,o,i]}getIp(t=!1){if(this.ipInfoAllowed){if(!t){if(this.loadingCurrentIp)return void this.snackbarService.showWarning("vpn.status-page.data.ip-refresh-loading-warning");const e=1e4;if(Date.now()-this.lastIpRefresDate{this.loadingCurrentIp=!1,this.lastIpRefresDate=Date.now(),e?(this.problemGettingIp=!1,this.currentIp=e[0],this.ipCountry=e[1]):this.problemGettingIp=!0},()=>{this.lastIpRefresDate=Date.now(),this.loadingCurrentIp=!1,this.problemGettingIp=!1})}}}hp.\u0275fac=function(t){return new(t||hp)(F(Ho),F(Bo),F(cn),F(no),F(vr),F(Fn),F(Xt))},hp.\u0275cmp=qe({type:hp,selectors:[["app-vpn-status"]],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","general-container",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"general-container"],[1,"row"],[1,"col-12"],[1,"row","flex-1"],["class","col-7 column left-area",4,"ngIf"],["class","col-7 column left-area-connected",4,"ngIf"],[1,"col-5","column","right-area"],[1,"column-container"],[1,"content-area"],[1,"title"],["class","big-text",4,"ngIf"],[1,"margin"],[1,"big-margin"],[1,"separator"],[4,"ngIf"],["class","margin",4,"ngIf"],[1,"small-text"],[3,"text"],[1,"col-7","column","left-area"],[1,"start-button",3,"ngClass","click"],[1,"start-button-img-container"],[1,"start-button-img"],[1,"start-button-img","animated-button"],[3,"diameter",4,"ngIf"],[3,"inline",4,"ngIf"],[1,"current-server"],["class","lower-text current-server-note",4,"ngIf"],["class","lower-text last-error",4,"ngIf"],[3,"diameter"],[3,"inline"],[1,"flag"],[3,"matTooltip"],[1,"text-container"],[1,"top-line"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","name","pk","customName"],[1,"bottom-line"],[3,"shortSimple","text"],[1,"icon-button-separator"],[1,"icon-button"],[1,"transparent-button","vpn-small-button",3,"inline","matTooltip","click"],[1,"none"],[1,"lower-text","current-server-note"],[1,"lower-text","last-error"],[1,"col-7","column","left-area-connected"],[1,"time-container"],[1,"time-content"],[1,"state-title"],[1,"d-inline-block"],[1,"state-text"],[1,"state-explanation"],["class","last-connected-error",4,"ngIf"],[1,"data-container"],[1,"rounded-elevated-box","data-box","big-box",3,"matTooltip"],[1,"chart-container"],["height","140","color","#00000080",3,"animated","data","min","max"],[1,"chart-label"],[1,"label-container","label-top"],[1,"label"],[1,"line"],[1,"label-container","label-mid"],[1,"label-container","label-bottom"],[1,"content"],[1,"upload",3,"inline"],[1,"speed"],[1,"total"],[1,"chart-label","top-chart-label"],[1,"download",3,"inline"],[1,"latency-container"],[1,"rounded-elevated-box","data-box","small-box",3,"matTooltip"],["height","50","color","#00000080",3,"animated","data","min","max"],[1,"disconnect-button",3,"ngClass","click"],[1,"disconnect-button-container"],[1,"d-inline-flex"],[1,"last-connected-error"],[1,"big-text"],["class","small-icon blinking",3,"inline","matTooltip",4,"ngIf"],["class","big-icon transparent-button vpn-small-button",3,"inline","matTooltip","click",4,"ngIf"],[1,"small-icon","blinking",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"inline","matTooltip","click"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","adjustIconsForBigText","name","pk","customName"]],template:function(t,e){1&t&&(j(0,Rne,4,6,"div",0),j(1,_ie,40,30,"div",1)),2&t&&(w("ngIf",e.loading),d(1),w("ngIf",!e.loading))},dependencies:[On,Ot,Cn,gi,rc,Sc,Fs,io,as,Lu,Ct,ir],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.general-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.column[_ngcontent-%COMP%]{height:100%;display:flex;align-items:center;padding-top:40px;padding-bottom:20px}.column[_ngcontent-%COMP%] .column-container[_ngcontent-%COMP%]{width:100%;text-align:center}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%]{background:rgba(0,0,0,.7);border-radius:100px;font-size:.8rem;padding:8px 15px;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%]{color:#bbb}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:top}.left-area-connected[_ngcontent-%COMP%] .state-title[_ngcontent-%COMP%]{font-size:1rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .state-text[_ngcontent-%COMP%]{font-size:2rem;text-transform:uppercase}.left-area-connected[_ngcontent-%COMP%] .state-line[_ngcontent-%COMP%]{height:1px;width:100%;margin-bottom:5px}.left-area-connected[_ngcontent-%COMP%] .green-line[_ngcontent-%COMP%]{background-color:#2ecc54}.left-area-connected[_ngcontent-%COMP%] .yellow-line[_ngcontent-%COMP%]{background-color:#d48b05}.left-area-connected[_ngcontent-%COMP%] .red-line[_ngcontent-%COMP%]{background-color:#da3439}.left-area-connected[_ngcontent-%COMP%] .state-explanation[_ngcontent-%COMP%]{font-size:.7rem}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%]{margin-top:15px;font-size:.8rem;color:#ff393f}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .data-container[_ngcontent-%COMP%]{margin-top:20px}.left-area-connected[_ngcontent-%COMP%] .latency-container[_ngcontent-%COMP%]{margin-bottom:20px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%]{cursor:default;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{height:0px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%]{height:0px;text-align:left}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{position:relative;top:-3px;left:-3px;display:flex;margin-right:-6px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.6rem;margin-left:5px;opacity:.2}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:1px;width:10px;background-color:#fff;flex-grow:1;opacity:.1;margin-left:10px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-top[_ngcontent-%COMP%]{align-items:flex-start}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-mid[_ngcontent-%COMP%]{align-items:center}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-bottom[_ngcontent-%COMP%]{align-items:flex-end;position:relative;top:-6px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%]{width:170px;height:140px;margin:5px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:170px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{width:170px;height:140px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:20px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:25px;transform:rotate(-90deg);width:40px;height:40px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .download[_ngcontent-%COMP%]{transform:rotate(-90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .upload[_ngcontent-%COMP%]{transform:rotate(90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .speed[_ngcontent-%COMP%]{font-size:.875rem}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .total[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:140px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%]{width:352px;height:50px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:352px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:100%;font-size:.875rem;position:relative}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;height:25px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:50px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]{background:linear-gradient(#940000,#7b0000) no-repeat!important;box-shadow:5px 5px 7px #00000080;width:352px;font-size:24px;display:inline-block;border-radius:10px;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:hover{background:linear-gradient(#a10000,#900000) no-repeat!important}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:active{transform:scale(.98);box-shadow:0 0 7px #00000080}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%]{background-image:url(/assets/img/background-pattern.png);padding:12px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;position:relative;top:4px;margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{position:relative;top:-2px;line-height:1.7}.left-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;text-align:center;text-transform:uppercase}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]{text-align:center;margin:10px 0;cursor:pointer;display:inline-block;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:active mat-icon[_ngcontent-%COMP%]{transform:scale(.9)}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover .start-button-img-container[_ngcontent-%COMP%]{opacity:1}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{text-shadow:0px 0px 5px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%]{width:0px;height:0px;opacity:.7}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .start-button-img[_ngcontent-%COMP%]{display:inline-block;background-image:url(/assets/img/start-button.png);background-size:contain;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .animated-button[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_button-animation 4s linear infinite;pointer-events:none}@keyframes _ngcontent-%COMP%_button-animation{0%{transform:scale(1.5);opacity:0}25%{transform:scale(1);opacity:.8}50%{transform:scale(1.5);opacity:0}to{transform:scale(1.5);opacity:0}}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{line-height:140px;font-size:50px;-webkit-user-select:none;user-select:none;text-shadow:0px 0px 2px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin-top:50px;opacity:.5}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%]{display:inline-flex;background:rgba(0,0,0,.7);border-radius:10px;padding:10px 15px;max-width:280px;text-align:left}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{background-image:url(/assets/img/big-flags/unknown.png);width:20px;height:15px;background-size:contain;align-self:center;flex-shrink:0;margin-right:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{overflow:hidden}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.7rem;color:#bbb}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%]{display:flex;align-items:center}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:1px;height:30px;background:rgba(255,255,255,.15);margin-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{font-size:22px;line-height:1;display:flex;align-items:center;padding-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%]{display:inline-block;max-width:280px;margin-top:10px}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area[_ngcontent-%COMP%] .current-server-note[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area[_ngcontent-%COMP%] .last-error[_ngcontent-%COMP%]{font-size:.8rem;color:#ff393f}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%]{background:rgba(61,103,162,.1490196078);padding:30px;text-align:left;max-width:420px;opacity:.95}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%]{font-size:1.25rem;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:5px;position:relative;top:2px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .small-icon[_ngcontent-%COMP%]{color:#d48b05;opacity:.7;font-size:.875rem;cursor:default;margin-left:5px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .big-icon[_ngcontent-%COMP%]{font-size:1.125rem;margin-left:5px;position:relative;top:2px;line-height:1}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .small-text[_ngcontent-%COMP%]{font-size:.7rem;margin-top:1px;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .margin[_ngcontent-%COMP%]{height:12px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-margin[_ngcontent-%COMP%]{height:15px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:1px;width:100%;background:rgba(255,255,255,.15)}.disabled-button[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}"]});class pl{constructor(t){this.router=t}set lastError(t){this.lastErrorInternal=t}canActivate(t,e){return this.checkIfCanActivate()}canActivateChild(t,e){return this.checkIfCanActivate()}checkIfCanActivate(){return this.lastErrorInternal?(this.router.navigate(["vpn","unavailable"],{queryParams:{problem:this.lastErrorInternal}}),We(!1)):We(!0)}}pl.\u0275fac=function(t){return new(t||pl)(we(Xt))},pl.\u0275prov=Ye({token:pl,factory:pl.\u0275fac,providedIn:"root"});var Rs=(()=>(function(n){n.UnableToConnectWithTheVpnClientApp="unavailable",n.NoLocalVisorPkProvided="pk",n.InvalidStorageState="storage",n.LocalVisorPkChangedDuringUsage="pkChange"}(Rs||(Rs={})),Rs))();class fp{constructor(t,e,i){this.route=t,this.vpnAuthGuardService=e,this.vpnClientService=i,this.problem=null,this.navigationsSubscription=this.route.queryParamMap.subscribe(o=>{this.problem=o.get("problem"),this.problem||(this.problem=Rs.UnableToConnectWithTheVpnClientApp),this.vpnAuthGuardService.lastError=this.problem,this.vpnClientService.stopContinuallyUpdatingData(),setTimeout(()=>this.navigationsSubscription.unsubscribe())})}getTitle(){return this.problem===Rs.NoLocalVisorPkProvided?"vpn.error-page.text-pk":this.problem===Rs.InvalidStorageState?"vpn.error-page.text-storage":this.problem===Rs.LocalVisorPkChangedDuringUsage?"vpn.error-page.text-pk-change":"vpn.error-page.text"}getInfo(){return this.problem===Rs.NoLocalVisorPkProvided?"vpn.error-page.more-info-pk":this.problem===Rs.InvalidStorageState?"vpn.error-page.more-info-storage":this.problem===Rs.LocalVisorPkChangedDuringUsage?"vpn.error-page.more-info-pk-change":"vpn.error-page.more-info"}}fp.\u0275fac=function(t){return new(t||fp)(F(vr),F(pl),F(Ho))},fp.\u0275cmp=qe({type:fp,selectors:[["app-vpn-error"]],decls:12,vars:7,consts:[[1,"main-container"],[1,"text-container"],[1,"inner-container"],[1,"error-icon"],[3,"inline"],[1,"more-info"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"mat-icon",4),I(5,"error_outline"),C()(),D(6,"div"),I(7),R(8,"translate"),C(),D(9,"div",5),I(10),R(11,"translate"),C()()()()),2&t&&(d(4),w("inline",!0),d(3),oe(B(8,3,e.getTitle())),d(3),oe(B(11,5,e.getInfo())))},dependencies:[Cn,Ct],styles:[".main-container[_ngcontent-%COMP%]{height:100%;display:flex}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%;align-self:center;text-align:center}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%]{max-width:550px;display:inline-block;font-size:1.25rem}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:80px}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .more-info[_ngcontent-%COMP%]{font-size:.8rem;opacity:.75;margin-top:10px}"]});const gie=["button"],bie=["firstInput"];class Tc{constructor(t,e,i,o,s,a){this.dialogRef=t,this.data=e,this.formBuilder=i,this.snackbarService=o,this.appsService=s,this.vpnClientService=a}static openDialog(t,e){const i=new An;return i.data=e,i.autoFocus=!1,i.width=Ht.smallModalWidth,t.open(Tc,i)}ngOnInit(){this.form=this.formBuilder.group({ip:[this.data.ip,Vt.compose([Vt.maxLength(15),this.validateIp.bind(this)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}validateIp(){if(this.form){const t=this.form.get("ip").value;return Wt.checkIfIpValidOrEmpty(t)?null:{invalid:!0}}return null}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.appsService.changeAppSettings(this.data.nodePk,this.vpnClientService.vpnClientAppName,{dns:this.form.get("ip").value}).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(t){this.dialogRef.close(!0),this.snackbarService.showDone("vpn.dns-config.done")}onError(t){this.button.showError(),this.operationSubscription=null,t=Qt(t),this.snackbarService.showError(t)}}Tc.\u0275fac=function(t){return new(t||Tc)(F(Vn),F(Si),F(iI),F(cn),F(wo),F(Ho))},Tc.\u0275cmp=qe({type:Tc,selectors:[["app-vpn-dns-config"]],viewQuery:function(t,e){if(1&t&&(ft(gie,5),ft(bie,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:14,vars:11,consts:[[3,"headline"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","ip","maxlength","15","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6,7),ye("action",function(){return e.save()}),I(12),R(13,"translate"),C()()),2&t&&(w("headline",B(1,5,"vpn.dns-config.title")),d(2),w("formGroup",e.form),d(4),oe(B(7,7,"vpn.dns-config.ip")),d(4),w("disabled",!e.form.valid),d(2),me(" ",B(13,9,"vpn.dns-config.save-config-button")," "))},dependencies:[Yi,Fi,Ri,Ni,wr,ni,Di,tr,Cr,ii,Rn,Ct]});const vie=["topBarLoading"],yie=["topBarLoaded"],hP=function(){return["vpn.title"]};function Mie(n,t){if(1&n&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3,4),C(),xe(4,"app-loading-indicator",5),C()),2&n){const e=z();d(2),w("titleParts",Un(5,hP))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function wie(n,t){1&n&&xe(0,"mat-spinner",20),2&n&&w("diameter",12)}function xie(n,t){if(1&n){const e=tt();D(0,"div",6)(1,"div",7),xe(2,"app-top-bar",3,8),C(),D(4,"div",9)(5,"div",10)(6,"div",11)(7,"div",12)(8,"table",13)(9,"tr")(10,"th",14)(11,"div",15)(12,"div",16),I(13),R(14,"translate"),C()()(),D(15,"th",14),I(16),R(17,"translate"),C()(),D(18,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeKillswitchOption())}),D(19,"td",14)(20,"div"),I(21),R(22,"translate"),D(23,"mat-icon",18),R(24,"translate"),I(25,"help"),C()()(),D(26,"td",14),xe(27,"span"),I(28),R(29,"translate"),j(30,wie,1,1,"mat-spinner",19),C()(),D(31,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeGetIpOption())}),D(32,"td",14)(33,"div"),I(34),R(35,"translate"),D(36,"mat-icon",18),R(37,"translate"),I(38,"help"),C()()(),D(39,"td",14),xe(40,"span"),I(41),R(42,"translate"),C()(),D(43,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeDataUnits())}),D(44,"td",14)(45,"div"),I(46),R(47,"translate"),D(48,"mat-icon",18),R(49,"translate"),I(50,"help"),C()()(),D(51,"td",14),I(52),R(53,"translate"),C()(),D(54,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeHops())}),D(55,"td",14)(56,"div"),I(57),R(58,"translate"),D(59,"mat-icon",18),R(60,"translate"),I(61,"help"),C()()(),D(62,"td",14),I(63),C()(),D(64,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeDns())}),D(65,"td",14)(66,"div"),I(67),R(68,"translate"),D(69,"mat-icon",18),R(70,"translate"),I(71,"help"),C()()(),D(72,"td",14),I(73),R(74,"translate"),C()()()()()()()()}if(2&n){const e=z();d(2),w("titleParts",Un(64,hP))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),d(11),me(" ",B(14,32,"vpn.settings-page.setting-small-table-label")," "),d(3),me(" ",B(17,34,"vpn.settings-page.value-small-table-label")," "),d(5),me(" ",B(22,36,"vpn.settings-page.killswitch")," "),d(2),w("inline",!0)("matTooltip",B(24,38,"vpn.settings-page.killswitch-info")),d(4),fo(e.getStatusClass(e.backendData.vpnClientAppData.killswitch)),d(1),me(" ",B(29,40,e.getStatusText(e.backendData.vpnClientAppData.killswitch))," "),d(2),w("ngIf",e.working===e.workingOptions.Killswitch),d(4),me(" ",B(35,42,"vpn.settings-page.get-ip")," "),d(2),w("inline",!0)("matTooltip",B(37,44,"vpn.settings-page.get-ip-info")),d(4),fo(e.getStatusClass(e.getIpOption)),d(1),me(" ",B(42,46,e.getStatusText(e.getIpOption))," "),d(5),me(" ",B(47,48,"vpn.settings-page.data-units")," "),d(2),w("inline",!0)("matTooltip",B(49,50,"vpn.settings-page.data-units-info")),d(4),me(" ",B(53,52,e.getUnitsOptionText(e.dataUnitsOption))," "),d(5),me(" ",B(58,54,"vpn.settings-page.minimum-hops")," "),d(2),w("inline",!0)("matTooltip",B(60,56,"vpn.settings-page.minimum-hops-info")),d(4),me(" ",e.backendData.vpnClientAppData.minHops," "),d(4),me(" ",B(68,58,"vpn.settings-page.dns")," "),d(2),w("inline",!0)("matTooltip",B(70,60,"vpn.settings-page.dns-info")),d(4),me(" ",e.backendData.vpnClientAppData.dns?e.backendData.vpnClientAppData.dns:B(74,62,"vpn.settings-page.setting-none")," ")}}var ba=(()=>(function(n){n[n.None=0]="None",n[n.Killswitch=1]="Killswitch"}(ba||(ba={})),ba))();class pp{constructor(t,e,i,o,s,a){this.vpnClientService=t,this.snackbarService=e,this.appsService=i,this.vpnSavedDataService=o,this.dialog=s,this.loading=!0,this.tabsData=fn.vpnTabsData,this.working=ba.None,this.workingOptions=ba,this.navigationsSubscription=a.paramMap.subscribe(l=>{l.has("key")&&(this.currentLocalPk=l.get("key"),fn.changeCurrentPk(this.currentLocalPk),this.tabsData=fn.vpnTabsData)}),this.dataSubscription=this.vpnClientService.backendState.subscribe(l=>{l&&l.serviceState!==nr.PerformingInitialCheck&&(this.backendData=l,this.loading=!1)}),this.getIpOption=this.vpnSavedDataService.getCheckIpSetting(),this.dataUnitsOption=this.vpnSavedDataService.getDataUnitsSetting()}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}getStatusClass(t){return!0===t?"dot-green":"dot-red"}getStatusText(t){return!0===t?"vpn.settings-page.setting-on":"vpn.settings-page.setting-off"}getUnitsOptionText(t){switch(t){case ro.OnlyBits:return"vpn.settings-page.data-units-modal.only-bits";case ro.OnlyBytes:return"vpn.settings-page.data-units-modal.only-bytes";default:return"vpn.settings-page.data-units-modal.bits-speed-and-bytes-volume"}}changeKillswitchOption(){if(this.working===ba.None)if(this.backendData.vpnClientAppData.running){const t=Wt.createConfirmationDialog(this.dialog,"vpn.settings-page.change-while-connected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.finishChangingKillswitchOption()})}else this.finishChangingKillswitchOption();else this.snackbarService.showWarning("vpn.settings-page.working-warning")}finishChangingKillswitchOption(){this.working=ba.Killswitch,this.operationSubscription=this.appsService.changeAppSettings(this.currentLocalPk,this.vpnClientService.vpnClientAppName,{killswitch:!this.backendData.vpnClientAppData.killswitch}).subscribe(()=>{this.working=ba.None,this.vpnClientService.updateData()},t=>{this.working=ba.None,t=Qt(t),this.snackbarService.showError(t)})}changeGetIpOption(){this.getIpOption=!this.getIpOption,this.vpnSavedDataService.setCheckIpSetting(this.getIpOption)}changeDataUnits(){const t=[],e=[];Object.keys(ro).forEach(i=>{const o={label:this.getUnitsOptionText(ro[i])};this.dataUnitsOption===ro[i]&&(o.icon="done"),t.push(o),e.push(ro[i])}),$i.openDialog(this.dialog,t,"vpn.settings-page.data-units-modal.title").afterClosed().subscribe(i=>{i&&(this.dataUnitsOption=e[i-1],this.vpnSavedDataService.setDataUnitsSetting(this.dataUnitsOption),this.topBarLoading&&this.topBarLoading.updateVpnDataStatsUnit(),this.topBarLoaded&&this.topBarLoaded.updateVpnDataStatsUnit())})}changeHops(){fl.openDialog(this.dialog,{nodePk:this.currentLocalPk,minHops:this.backendData.vpnClientAppData.minHops}).afterClosed().subscribe()}changeDns(){Tc.openDialog(this.dialog,{nodePk:this.currentLocalPk,ip:this.backendData.vpnClientAppData.dns}).afterClosed().subscribe()}}pp.\u0275fac=function(t){return new(t||pp)(F(Ho),F(cn),F(wo),F(Bo),F(Fn),F(vr))},pp.\u0275cmp=qe({type:pp,selectors:[["app-vpn-settings-list"]],viewQuery:function(t,e){if(1&t&&(ft(vie,5),ft(yie,5)),2&t){let i;nt(i=it())&&(e.topBarLoading=i.first),nt(i=it())&&(e.topBarLoaded=i.first)}},decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],["topBarLoading",""],[1,"h-100"],[1,"row"],[1,"col-12"],["topBarLoaded",""],[1,"col-12","mt-4.5","vpn-table-container"],[1,"width-limiter"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"data-column"],[1,"header-container"],[1,"header-text"],[1,"selectable",3,"click"],[1,"help-icon",3,"inline","matTooltip"],[3,"diameter",4,"ngIf"],[3,"diameter"]],template:function(t,e){1&t&&(j(0,Mie,5,6,"div",0),j(1,xie,75,65,"div",1)),2&t&&(w("ngIf",e.loading),d(1),w("ngIf",!e.loading))},dependencies:[Ot,Cn,gi,rc,io,as,Ct],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .data-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:7px!important;padding-bottom:7px!important;font-size:12px!important;font-weight:400!important}.data-column[_ngcontent-%COMP%]{max-width:0;width:50%}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:2px;position:relative;top:2px}mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}"]});const Cie=[{path:"",component:Hf},{path:"login",component:hu},{path:"nodes",canActivate:[Ls],canActivateChild:[Ls],children:[{path:"",redirectTo:"list/1",pathMatch:"full"},{path:"list",redirectTo:"list/1",pathMatch:"full"},{path:"list/:page",component:vu},{path:"dmsg",redirectTo:"dmsg/1",pathMatch:"full"},{path:"dmsg/:page",component:vu},{path:":key",component:Je,children:[{path:"",redirectTo:"routing",pathMatch:"full"},{path:"info",component:cp},{path:"routing",component:np},{path:"apps",component:ip},{path:"transports",redirectTo:"transports/1",pathMatch:"full"},{path:"transports/:page",component:rp},{path:"routes",redirectTo:"routes/1",pathMatch:"full"},{path:"routes/:page",component:op},{path:"apps-list/:showOfficialApps/:page",component:sp}]}]},{path:"settings",canActivate:[Ls],canActivateChild:[Ls],children:[{path:"",component:tp},{path:"labels",redirectTo:"labels/1",pathMatch:"full"},{path:"labels/:page",component:dp}]},{path:"vpnlogin/:key",component:hu},{path:"vpn",canActivate:[pl],canActivateChild:[pl],children:[{path:"unavailable",component:fp},{path:":key",children:[{path:"status",component:hp},{path:"servers",redirectTo:"servers/public/1",pathMatch:"full"},{path:"servers/:type/:page",component:Tu},{path:"settings",component:pp},{path:"**",redirectTo:"status"}]},{path:"**",redirectTo:"/vpn/unavailable?problem=pk"}]},{path:"**",redirectTo:""}];class Iu{}Iu.\u0275fac=function(t){return new(t||Iu)},Iu.\u0275mod=Et({type:Iu}),Iu.\u0275inj=At({imports:[x2.forRoot(Cie,{useHash:!0}),x2]});let Sie=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Et({type:n}),n.\u0275inj=At({imports:[Hn]}),n})();class Pu{}Pu.\u0275fac=function(t){return new(t||Pu)},Pu.\u0275mod=Et({type:Pu}),Pu.\u0275inj=At({imports:[QL.forRoot({loader:{provide:Nf,useClass:class Die{getTranslation(t){return de(N(6297)(`./${t}.json`))}}}}),QL]});class Ou{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return!1}}Ou.\u0275fac=function(t){return new(t||Ou)},Ou.\u0275prov=Ye({token:Ou,factory:Ou.\u0275fac});class Au{}Au.\u0275fac=function(t){return new(t||Au)},Au.\u0275mod=Et({type:Au,bootstrap:[da]}),Au.\u0275inj=At({providers:[Os,{provide:x1,useValue:{duration:3e3,verticalPosition:"top"}},{provide:LL,useValue:{width:"600px",hasBackdrop:!0}},{provide:y1,useClass:F9},{provide:p2,useClass:Ou},{provide:wL,useValue:{disabled:!0}}],imports:[rD,GH,$1,gV,Iu,Pu,BL,iz,Ig,jW,RJ,YL,Yz,i$,dq,nW,Sie,hG,eU,AG]}),Bs(Je,[On,Ot,F_,Cn,io,as,Su],[Ct]),Bs(Tu,[On,Ci,Ot,Ad,Qa,Wr,Cn,gi,Sc,io,As,as,Lu],[OS,Ct]),YY().bootstrapModule(Au).catch(n=>console.log(n))},9774:function(ue,ge,N){var O;!function(_){"use strict";var u,f=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,h=Math.ceil,y=Math.floor,p="[BigNumber Error] ",v=p+"Number primitive has more than 15 significant digits: ",x=1e14,T=14,S=9007199254740991,k=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],L=1e7,A=1e9;function H(J){var ee=0|J;return J>0||J===ee?ee:ee-1}function K(J){for(var ee,ae,le=1,X=J.length,Te=J[0]+"";leet^ae?1:-1;for(Ce=(He=X.length)<(et=Te.length)?He:et,Se=0;SeTe[Se]^ae?1:-1;return He==et?0:He>et^ae?1:-1}function ve(J,ee,ae,le){if(Jae||J!==(J<0?h(J):y(J)))throw Error(p+(le||"Argument")+("number"==typeof J?Jae?" out of range: ":" not an integer: ":" not a primitive number: ")+J)}function Z(J){return"[object Array]"==Object.prototype.toString.call(J)}function Q(J){var ee=J.c.length-1;return H(J.e/T)==ee&&J.c[ee]%2!=0}function ce(J,ee){return(J.length>1?J.charAt(0)+"."+J.slice(1):J)+(ee<0?"e":"e+")+ee}function G(J,ee,ae){var le,X;if(ee<0){for(X=ae+".";++ee;X+=ae);J=X+J}else if(++ee>(le=J.length)){for(X=ae,ee-=le;--ee;X+=ae);J+=X}else ee=10;be/=10,de++);return Ee.e=de,void(Ee.c=[W])}De=W+""}else{if(!f.test(De=W+""))return le(Ee,De,_e);Ee.s=45==De.charCodeAt(0)?(De=De.slice(1),-1):1}(de=De.indexOf("."))>-1&&(De=De.replace(".","")),(be=De.search(/e/i))>0?(de<0&&(de=be),de+=+De.slice(be+1),De=De.substring(0,be)):de<0&&(de=De.length)}else{if(ve(re,2,Yn.length,"Base"),De=W+"",10==re)return Ze(Ee=new Ue(W instanceof Ue?W:De),Se+Ee.e+1,Ce);if(_e="number"==typeof W){if(0*W!=0)return le(Ee,De,_e,re);if(Ee.s=1/W<0?(De=De.slice(1),-1):1,Ue.DEBUG&&De.replace(/^0\.0*|\./,"").length>15)throw Error(v+W);_e=!1}else Ee.s=45===De.charCodeAt(0)?(De=De.slice(1),-1):1;for(ne=Yn.slice(0,re),de=be=0,Me=De.length;bede){de=Me;continue}}else if(!he&&(De==De.toUpperCase()&&(De=De.toLowerCase())||De==De.toLowerCase()&&(De=De.toUpperCase()))){he=!0,be=-1,de=0;continue}return le(Ee,W+"",_e,re)}(de=(De=ae(De,re,10,Ee.s)).indexOf("."))>-1?De=De.replace(".",""):de=De.length}for(be=0;48===De.charCodeAt(be);be++);for(Me=De.length;48===De.charCodeAt(--Me););if(De=De.slice(be,++Me)){if(Me-=be,_e&&Ue.DEBUG&&Me>15&&(W>S||W!==y(W)))throw Error(v+Ee.s*W);if((de=de-be-1)>st)Ee.c=Ee.e=null;else if(de_e){if(--re>0)for(Me+=".";re--;Me+="0");}else if((re+=de-_e)>0)for(de+1==_e&&(Me+=".");re--;Me+="0");return W.s<0&&he?"-"+Me:Me}function Li(W,re){var ne,pe,he=0;for(Z(W[0])&&(W=W[0]),ne=new Ue(W[0]);++he=10;he/=10,pe++);return(ne=pe+ne*T-1)>st?W.c=W.e=null:ne=10;_e/=10,he++);if((de=re-he)<0)de+=T,Ee=(Me=Ne[De=0])/ut[he-(be=re)-1]%10|0;else if((De=h((de+1)/T))>=Ne.length){if(!pe)break e;for(;Ne.length<=De;Ne.push(0));Me=Ee=0,he=1,be=(de%=T)-T+1}else{for(Me=_e=Ne[De],he=1;_e>=10;_e/=10,he++);Ee=(be=(de%=T)-T+he)<0?0:Me/ut[he-be-1]%10|0}if(pe=pe||re<0||null!=Ne[De+1]||(be<0?Me:Me%ut[he-be-1]),pe=ne<4?(Ee||pe)&&(0==ne||ne==(W.s<0?3:2)):Ee>5||5==Ee&&(4==ne||pe||6==ne&&(de>0?be>0?Me/ut[he-be]:0:Ne[De-1])%10&1||ne==(W.s<0?8:7)),re<1||!Ne[0])return Ne.length=0,pe?(Ne[0]=ut[(T-(re-=W.e+1)%T)%T],W.e=-re||0):Ne[0]=W.e=0,W;if(0==de?(Ne.length=De,_e=1,De--):(Ne.length=De+1,_e=ut[T-de],Ne[De]=be>0?y(Me/ut[he-be]%ut[be])*_e:0),pe)for(;;){if(0==De){for(de=1,be=Ne[0];be>=10;be/=10,de++);for(be=Ne[0]+=_e,_e=1;be>=10;be/=10,_e++);de!=_e&&(W.e++,Ne[0]==x&&(Ne[0]=1));break}if(Ne[De]+=_e,Ne[De]!=x)break;Ne[De--]=0,_e=1}for(de=Ne.length;0===Ne[--de];Ne.pop());}W.e>st?W.c=W.e=null:W.e>>11))>=9e15?(he=crypto.getRandomValues(new Uint32Array(2)),pe[Me]=he[0],pe[Me+1]=he[1]):(De.push(_e%1e14),Me+=2);Me=be/2}else{if(!crypto.randomBytes)throw Rt=!1,Error(p+"crypto unavailable");for(pe=crypto.randomBytes(be*=7);Me=9e15?crypto.randomBytes(7).copy(pe,Me):(De.push(_e%1e14),Me+=7);Me=be/7}if(!Rt)for(;Me=10;_e/=10,Me++);Mehe-1&&(null==_e[be+1]&&(_e[be+1]=0),_e[be+1]+=_e[be]/he|0,_e[be]%=he)}return _e.reverse()}return function(ne,pe,he,de,be){var _e,Me,De,Ee,Ne,ut,_t,rt,on=ne.indexOf("."),Ln=Se,vt=Ce;for(on>=0&&(Ee=$n,$n=0,ne=ne.replace(".",""),ut=(rt=new Ue(pe)).pow(ne.length-on),$n=Ee,rt.c=re(G(K(ut.c),ut.e,"0"),10,he,W),rt.e=rt.c.length),De=Ee=(_t=re(ne,pe,he,be?(_e=Yn,W):(_e=W,Yn))).length;0==_t[--Ee];_t.pop());if(!_t[0])return _e.charAt(0);if(on<0?--De:(ut.c=_t,ut.e=De,ut.s=de,_t=(ut=ee(ut,rt,Ln,vt,he)).c,Ne=ut.r,De=ut.e),on=_t[Me=De+Ln+1],Ee=he/2,Ne=Ne||Me<0||null!=_t[Me+1],Ne=vt<4?(null!=on||Ne)&&(0==vt||vt==(ut.s<0?3:2)):on>Ee||on==Ee&&(4==vt||Ne||6==vt&&1&_t[Me-1]||vt==(ut.s<0?8:7)),Me<1||!_t[0])ne=Ne?G(_e.charAt(1),-Ln,_e.charAt(0)):_e.charAt(0);else{if(_t.length=Me,Ne)for(--he;++_t[--Me]>he;)_t[Me]=0,Me||(++De,_t=[1].concat(_t));for(Ee=_t.length;!_t[--Ee];);for(on=0,ne="";on<=Ee;ne+=_e.charAt(_t[on++]));ne=G(ne,De,_e.charAt(0))}return ne}}(),ee=function(){function W(pe,he,de){var be,_e,Me,De,Ee=0,Ne=pe.length,ut=he%L,_t=he/L|0;for(pe=pe.slice();Ne--;)Ee=((_e=ut*(Me=pe[Ne]%L)+(be=_t*Me+(De=pe[Ne]/L|0)*ut)%L*L+Ee)/de|0)+(be/L|0)+_t*De,pe[Ne]=_e%de;return Ee&&(pe=[Ee].concat(pe)),pe}function re(pe,he,de,be){var _e,Me;if(de!=be)Me=de>be?1:-1;else for(_e=Me=0;_ehe[_e]?1:-1;break}return Me}function ne(pe,he,de,be){for(var _e=0;de--;)pe[de]-=_e,pe[de]=(_e=pe[de]1;pe.splice(0,1));}return function(pe,he,de,be,_e){var Me,De,Ee,Ne,ut,_t,rt,on,Ln,vt,jt,jn,ri,Gr,ko,Ei,tn,vi=pe.s==he.s?1:-1,oi=pe.c,En=he.c;if(!(oi&&oi[0]&&En&&En[0]))return new Ue(pe.s&&he.s&&(oi?!En||oi[0]!=En[0]:En)?oi&&0==oi[0]||!En?0*vi:vi/0:NaN);for(Ln=(on=new Ue(vi)).c=[],vi=de+(De=pe.e-he.e)+1,_e||(_e=x,De=H(pe.e/T)-H(he.e/T),vi=vi/T|0),Ee=0;En[Ee]==(oi[Ee]||0);Ee++);if(En[Ee]>(oi[Ee]||0)&&De--,vi<0)Ln.push(1),Ne=!0;else{for(Gr=oi.length,Ei=En.length,Ee=0,vi+=2,(ut=y(_e/(En[0]+1)))>1&&(En=W(En,ut,_e),oi=W(oi,ut,_e),Ei=En.length,Gr=oi.length),ri=Ei,jt=(vt=oi.slice(0,Ei)).length;jt=_e/2&&ko++;do{if(ut=0,(Me=re(En,vt,Ei,jt))<0){if(jn=vt[0],Ei!=jt&&(jn=jn*_e+(vt[1]||0)),(ut=y(jn/ko))>1)for(ut>=_e&&(ut=_e-1),rt=(_t=W(En,ut,_e)).length,jt=vt.length;1==re(_t,vt,rt,jt);)ut--,ne(_t,Ei=10;vi/=10,Ee++);Ze(on,de+(on.e=Ee+De*T-1)+1,be,Ne)}else on.e=De,on.r=+Ne;return on}}(),le=function(){var W=/^(-?)0([xbo])(?=\w[\w.]*$)/i,re=/^([^.]+)\.$/,ne=/^\.([^.]+)$/,pe=/^-?(Infinity|NaN)$/,he=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(de,be,_e,Me){var De,Ee=_e?be:be.replace(he,"");if(pe.test(Ee))de.s=isNaN(Ee)?null:Ee<0?-1:1,de.c=de.e=null;else{if(!_e&&(Ee=Ee.replace(W,function(Ne,ut,_t){return De="x"==(_t=_t.toLowerCase())?16:"b"==_t?2:8,Me&&Me!=De?Ne:ut}),Me&&(De=Me,Ee=Ee.replace(re,"$1").replace(ne,"0.$1")),be!=Ee))return new Ue(Ee,De);if(Ue.DEBUG)throw Error(p+"Not a"+(Me?" base "+Me:"")+" number: "+be);de.c=de.e=de.s=null}}}(),X.absoluteValue=X.abs=function(){var W=new Ue(this);return W.s<0&&(W.s=1),W},X.comparedTo=function(W,re){return ie(this,new Ue(W,re))},X.decimalPlaces=X.dp=function(W,re){var ne,pe,he;if(null!=W)return ve(W,0,A),null==re?re=Ce:ve(re,0,8),Ze(new Ue(this),W+this.e+1,re);if(!(ne=this.c))return null;if(pe=((he=ne.length-1)-H(this.e/T))*T,he=ne[he])for(;he%10==0;he/=10,pe--);return pe<0&&(pe=0),pe},X.dividedBy=X.div=function(W,re){return ee(this,new Ue(W,re),Se,Ce)},X.dividedToIntegerBy=X.idiv=function(W,re){return ee(this,new Ue(W,re),0,1)},X.exponentiatedBy=X.pow=function(W,re){var ne,pe,he,be,_e,Me,De,Ee=this;if((W=new Ue(W)).c&&!W.isInteger())throw Error(p+"Exponent not an integer: "+W);if(null!=re&&(re=new Ue(re)),be=W.e>14,!Ee.c||!Ee.c[0]||1==Ee.c[0]&&!Ee.e&&1==Ee.c.length||!W.c||!W.c[0])return De=new Ue(Math.pow(+Ee.valueOf(),be?2-Q(W):+W)),re?De.mod(re):De;if(_e=W.s<0,re){if(re.c?!re.c[0]:!re.s)return new Ue(NaN);(pe=!_e&&Ee.isInteger()&&re.isInteger())&&(Ee=Ee.mod(re))}else{if(W.e>9&&(Ee.e>0||Ee.e<-1||(0==Ee.e?Ee.c[0]>1||be&&Ee.c[1]>=24e7:Ee.c[0]<8e13||be&&Ee.c[0]<=9999975e7)))return he=Ee.s<0&&Q(W)?-0:0,Ee.e>-1&&(he=1/he),new Ue(_e?1/he:he);$n&&(he=h($n/T+2))}for(be?(ne=new Ue(.5),Me=Q(W)):Me=W%2,_e&&(W.s=1),De=new Ue(Te);;){if(Me){if(!(De=De.times(Ee)).c)break;he?De.c.length>he&&(De.c.length=he):pe&&(De=De.mod(re))}if(be){if(Ze(W=W.times(ne),W.e+1,1),!W.c[0])break;be=W.e>14,Me=Q(W)}else{if(!(W=y(W/2)))break;Me=W%2}Ee=Ee.times(Ee),he?Ee.c&&Ee.c.length>he&&(Ee.c.length=he):pe&&(Ee=Ee.mod(re))}return pe?De:(_e&&(De=Te.div(De)),re?De.mod(re):he?Ze(De,$n,Ce,void 0):De)},X.integerValue=function(W){var re=new Ue(this);return null==W?W=Ce:ve(W,0,8),Ze(re,re.e+1,W)},X.isEqualTo=X.eq=function(W,re){return 0===ie(this,new Ue(W,re))},X.isFinite=function(){return!!this.c},X.isGreaterThan=X.gt=function(W,re){return ie(this,new Ue(W,re))>0},X.isGreaterThanOrEqualTo=X.gte=function(W,re){return 1===(re=ie(this,new Ue(W,re)))||0===re},X.isInteger=function(){return!!this.c&&H(this.e/T)>this.c.length-2},X.isLessThan=X.lt=function(W,re){return ie(this,new Ue(W,re))<0},X.isLessThanOrEqualTo=X.lte=function(W,re){return-1===(re=ie(this,new Ue(W,re)))||0===re},X.isNaN=function(){return!this.s},X.isNegative=function(){return this.s<0},X.isPositive=function(){return this.s>0},X.isZero=function(){return!!this.c&&0==this.c[0]},X.minus=function(W,re){var ne,pe,he,de,be=this,_e=be.s;if(re=(W=new Ue(W,re)).s,!_e||!re)return new Ue(NaN);if(_e!=re)return W.s=-re,be.plus(W);var Me=be.e/T,De=W.e/T,Ee=be.c,Ne=W.c;if(!Me||!De){if(!Ee||!Ne)return Ee?(W.s=-re,W):new Ue(Ne?be:NaN);if(!Ee[0]||!Ne[0])return Ne[0]?(W.s=-re,W):new Ue(Ee[0]?be:3==Ce?-0:0)}if(Me=H(Me),De=H(De),Ee=Ee.slice(),_e=Me-De){for((de=_e<0)?(_e=-_e,he=Ee):(De=Me,he=Ne),he.reverse(),re=_e;re--;he.push(0));he.reverse()}else for(pe=(de=(_e=Ee.length)<(re=Ne.length))?_e:re,_e=re=0;re0)for(;re--;Ee[ne++]=0);for(re=x-1;pe>_e;){if(Ee[--pe]=0;){for(ne=0,ut=jn[he]%Ln,_t=jn[he]/Ln|0,de=he+(be=Me);de>he;)ne=((De=ut*(De=jt[--be]%Ln)+(_e=_t*De+(Ee=jt[be]/Ln|0)*ut)%Ln*Ln+rt[de]+ne)/on|0)+(_e/Ln|0)+_t*Ee,rt[de--]=De%on;rt[de]=ne}return ne?++pe:rt.splice(0,1),rr(W,rt,pe)},X.negated=function(){var W=new Ue(this);return W.s=-W.s||null,W},X.plus=function(W,re){var ne,pe=this,he=pe.s;if(re=(W=new Ue(W,re)).s,!he||!re)return new Ue(NaN);if(he!=re)return W.s=-re,pe.minus(W);var de=pe.e/T,be=W.e/T,_e=pe.c,Me=W.c;if(!de||!be){if(!_e||!Me)return new Ue(he/0);if(!_e[0]||!Me[0])return Me[0]?W:new Ue(_e[0]?pe:0*he)}if(de=H(de),be=H(be),_e=_e.slice(),he=de-be){for(he>0?(be=de,ne=Me):(he=-he,ne=_e),ne.reverse();he--;ne.push(0));ne.reverse()}for((he=_e.length)-(re=Me.length)<0&&(ne=Me,Me=_e,_e=ne,re=he),he=0;re;)he=(_e[--re]=_e[re]+Me[re]+he)/x|0,_e[re]=x===_e[re]?0:_e[re]%x;return he&&(_e=[he].concat(_e),++be),rr(W,_e,be)},X.precision=X.sd=function(W,re){var ne,pe,he;if(null!=W&&W!==!!W)return ve(W,1,A),null==re?re=Ce:ve(re,0,8),Ze(new Ue(this),W,re);if(!(ne=this.c))return null;if(pe=(he=ne.length-1)*T+1,he=ne[he]){for(;he%10==0;he/=10,pe--);for(he=ne[0];he>=10;he/=10,pe++);}return W&&this.e+1>pe&&(pe=this.e+1),pe},X.shiftedBy=function(W){return ve(W,-S,S),this.times("1e"+W)},X.squareRoot=X.sqrt=function(){var W,re,ne,pe,he,de=this,be=de.c,_e=de.s,Me=de.e,De=Se+4,Ee=new Ue("0.5");if(1!==_e||!be||!be[0])return new Ue(!_e||_e<0&&(!be||be[0])?NaN:be?de:1/0);if(0==(_e=Math.sqrt(+de))||_e==1/0?(((re=K(be)).length+Me)%2==0&&(re+="0"),_e=Math.sqrt(re),Me=H((Me+1)/2)-(Me<0||Me%2),ne=new Ue(re=_e==1/0?"1e"+Me:(re=_e.toExponential()).slice(0,re.indexOf("e")+1)+Me)):ne=new Ue(_e+""),ne.c[0])for((_e=(Me=ne.e)+De)<3&&(_e=0);;)if(ne=Ee.times((he=ne).plus(ee(de,he,De,1))),K(he.c).slice(0,_e)===(re=K(ne.c)).slice(0,_e)){if(ne.e0&&ut>0){for(Me=Ne.substr(0,pe=ut%de||de);pe0&&(Me+=_e+Ne.slice(pe)),Ee&&(Me="-"+Me)}ne=De?Me+Tn.decimalSeparator+((be=+Tn.fractionGroupSize)?De.replace(new RegExp("\\d{"+be+"}\\B","g"),"$&"+Tn.fractionGroupSeparator):De):Me}return ne},X.toFraction=function(W){var re,ne,pe,he,de,be,_e,Me,De,Ee,Ne,ut,_t=this,rt=_t.c;if(null!=W&&(!(Me=new Ue(W)).isInteger()&&(Me.c||1!==Me.s)||Me.lt(Te)))throw Error(p+"Argument "+(Me.isInteger()?"out of range: ":"not an integer: ")+W);if(!rt)return _t.toString();for(ne=new Ue(Te),Ee=pe=new Ue(Te),he=De=new Ue(Te),ut=K(rt),be=ne.e=ut.length-_t.e-1,ne.c[0]=k[(_e=be%T)<0?T+_e:_e],W=!W||Me.comparedTo(ne)>0?be>0?ne:Ee:Me,_e=st,st=1/0,Me=new Ue(ut),De.c[0]=0;Ne=ee(Me,ne,0,1),1!=(de=pe.plus(Ne.times(he))).comparedTo(W);)pe=he,he=de,Ee=De.plus(Ne.times(de=Ee)),De=de,ne=Me.minus(Ne.times(de=ne)),Me=de;return de=ee(W.minus(pe),he,0,1),De=De.plus(de.times(Ee)),pe=pe.plus(de.times(he)),De.s=Ee.s=_t.s,re=ee(Ee,he,be*=2,Ce).minus(_t).abs().comparedTo(ee(De,pe,be,Ce).minus(_t).abs())<1?[Ee.toString(),he.toString()]:[De.toString(),pe.toString()],st=_e,re},X.toNumber=function(){return+this},X.toPrecision=function(W,re){return null!=W&&ve(W,1,A),Ti(this,W,re,2)},X.toString=function(W){var re,pe=this.s,he=this.e;return null===he?pe?(re="Infinity",pe<0&&(re="-"+re)):re="NaN":(re=K(this.c),null==W?re=he<=He||he>=et?ce(re,he):G(re,he,"0"):(ve(W,2,Yn.length,"Base"),re=ae(G(re,he,"0"),10,W,pe,!0)),pe<0&&this.c[0]&&(re="-"+re)),re},X.valueOf=X.toJSON=function(){var W,ne=this.e;return null===ne?this.toString():(W=K(this.c),W=ne<=He||ne>=et?ce(W,ne):G(W,ne,"0"),this.s<0?"-"+W:W)},X._isBigNumber=!0,null!=J&&Ue.set(J),Ue}(),u.default=u.BigNumber=u,void 0!==(O=function(){return u}.call(ge,N,ge,ue))&&(ue.exports=O)}()},6149:(ue,ge,N)=>{var O=N(5979)();O.helpers=N(3305),N(3533)(O),O.defaults=N(9800),O.Element=N(8839),O.elements=N(9931),O.Interaction=N(2814),O.layouts=N(2294),O.platform=N(8244),O.plugins=N(2445),O.Ticks=N(8347),N(8103)(O),N(1047)(O),N(7897)(O),N(5464)(O),N(6308)(O),N(480)(O),N(8351)(O),N(4977)(O),N(1704)(O),N(1486)(O),N(8726)(O),N(4215)(O),N(2690)(O),N(4033)(O),N(787)(O),N(6769)(O),N(6580)(O),N(4657)(O),N(1895)(O),N(6038)(O),N(2898)(O),N(3414)(O),N(6667)(O),N(402)(O),N(846)(O),N(9377)(O);var _=N(6747);for(var u in _)_.hasOwnProperty(u)&&O.plugins.register(_[u]);O.platform.initialize(),ue.exports=O,typeof window<"u"&&(window.Chart=O),O.Legend=_.legend._element,O.Title=_.title._element,O.pluginService=O.plugins,O.PluginBase=O.Element.extend({}),O.canvasHelpers=O.helpers.canvas,O.layoutService=O.layouts},6038:ue=>{"use strict";ue.exports=function(ge){ge.Bar=function(N,O){return O.type="bar",new ge(N,O)}}},2898:ue=>{"use strict";ue.exports=function(ge){ge.Bubble=function(N,O){return O.type="bubble",new ge(N,O)}}},3414:ue=>{"use strict";ue.exports=function(ge){ge.Doughnut=function(N,O){return O.type="doughnut",new ge(N,O)}}},6667:ue=>{"use strict";ue.exports=function(ge){ge.Line=function(N,O){return O.type="line",new ge(N,O)}}},402:ue=>{"use strict";ue.exports=function(ge){ge.PolarArea=function(N,O){return O.type="polarArea",new ge(N,O)}}},846:ue=>{"use strict";ue.exports=function(ge){ge.Radar=function(N,O){return O.type="radar",new ge(N,O)}}},9377:ue=>{"use strict";ue.exports=function(ge){ge.Scatter=function(N,O){return O.type="scatter",new ge(N,O)}}},2690:(ue,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),O._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(p,v){var x="";return p.length>0&&(p[0].yLabel?x=p[0].yLabel:v.labels.length>0&&p[0].index0?Math.min(x,k-S):x,S=k;return x}(x,U):-1,{min:ie,pixels:U,start:L,end:A,stackCount:T,scale:x}},calculateBarValuePixels:function(v,x){var ve,Z,Q,ce,G,J,T=this,S=T.chart,k=T.getMeta(),L=T.getValueScale(),A=S.data.datasets,U=L.getRightValue(A[v].data[x]),H=L.options.stacked,K=k.stack,ie=0;if(H||void 0===H&&void 0!==K)for(ve=0;ve=0&&Q>0)&&(ie+=Q));return ce=L.getPixelForValue(ie),{size:J=((G=L.getPixelForValue(ie+U))-ce)/2,base:ce,head:G,center:G+J/2}},calculateBarIndexPixels:function(v,x,T){var k=T.scale.options,L="flex"===k.barThickness?function y(p,v,x){var T=v.pixels,S=T[p],k=p>0?T[p-1]:null,L=p{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(f,h){return(h.datasets[f.datasetIndex].label||"")+": ("+f.xLabel+", "+f.yLabel+", "+h.datasets[f.datasetIndex].data[f.index].r+")"}}}}),ue.exports=function(f){f.controllers.bubble=f.DatasetController.extend({dataElementType:_.Point,update:function(h){var y=this,p=y.getMeta();u.each(p.data,function(x,T){y.updateElement(x,T,h)})},updateElement:function(h,y,p){var v=this,x=v.getMeta(),T=h.custom||{},S=v.getScaleForId(x.xAxisID),k=v.getScaleForId(x.yAxisID),L=v._resolveElementOptions(h,y),A=v.getDataset().data[y],U=v.index,H=p?S.getPixelForDecimal(.5):S.getPixelForValue("object"==typeof A?A:NaN,y,U),K=p?k.getBasePixel():k.getPixelForValue(A,y,U);h._xScale=S,h._yScale=k,h._options=L,h._datasetIndex=U,h._index=y,h._model={backgroundColor:L.backgroundColor,borderColor:L.borderColor,borderWidth:L.borderWidth,hitRadius:L.hitRadius,pointStyle:L.pointStyle,radius:p?0:L.radius,skip:T.skip||isNaN(H)||isNaN(K),x:H,y:K},h.pivot()},setHoverStyle:function(h){var y=h._model,p=h._options;y.backgroundColor=u.valueOrDefault(p.hoverBackgroundColor,u.getHoverColor(p.backgroundColor)),y.borderColor=u.valueOrDefault(p.hoverBorderColor,u.getHoverColor(p.borderColor)),y.borderWidth=u.valueOrDefault(p.hoverBorderWidth,p.borderWidth),y.radius=p.radius+p.hoverRadius},removeHoverStyle:function(h){var y=h._model,p=h._options;y.backgroundColor=p.backgroundColor,y.borderColor=p.borderColor,y.borderWidth=p.borderWidth,y.radius=p.radius},_resolveElementOptions:function(h,y){var H,K,ie,p=this,v=p.chart,T=v.data.datasets[p.index],S=h.custom||{},k=v.options.elements.point,L=u.options.resolve,A=T.data[y],U={},ve={chart:v,dataIndex:y,dataset:T,datasetIndex:p.index},Z=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle"];for(H=0,K=Z.length;H{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(f){var h=[];h.push('
    ');var y=f.data,p=y.datasets,v=y.labels;if(p.length)for(var x=0;x'),v[x]&&h.push(v[x]),h.push("");return h.push("
"),h.join("")},legend:{labels:{generateLabels:function(f){var h=f.data;return h.labels.length&&h.datasets.length?h.labels.map(function(y,p){var v=f.getDatasetMeta(0),x=h.datasets[0],T=v.data[p],S=T&&T.custom||{},k=u.valueAtIndexOrDefault,L=f.options.elements.arc;return{text:y,fillStyle:S.backgroundColor?S.backgroundColor:k(x.backgroundColor,p,L.backgroundColor),strokeStyle:S.borderColor?S.borderColor:k(x.borderColor,p,L.borderColor),lineWidth:S.borderWidth?S.borderWidth:k(x.borderWidth,p,L.borderWidth),hidden:isNaN(x.data[p])||v.data[p].hidden,index:p}}):[]}},onClick:function(f,h){var v,x,T,y=h.index,p=this.chart;for(v=0,x=(p.data.datasets||[]).length;v=Math.PI?-1:ie<-Math.PI?1:0))+K,Z={x:Math.cos(ie),y:Math.sin(ie)},Q={x:Math.cos(ve),y:Math.sin(ve)},ce=ie<=0&&ve>=0||ie<=2*Math.PI&&2*Math.PI<=ve,G=ie<=.5*Math.PI&&.5*Math.PI<=ve||ie<=2.5*Math.PI&&2.5*Math.PI<=ve,J=ie<=-Math.PI&&-Math.PI<=ve||ie<=Math.PI&&Math.PI<=ve,ee=ie<=.5*-Math.PI&&.5*-Math.PI<=ve||ie<=1.5*Math.PI&&1.5*Math.PI<=ve,ae=H/100,le={x:J?-1:Math.min(Z.x*(Z.x<0?1:ae),Q.x*(Q.x<0?1:ae)),y:ee?-1:Math.min(Z.y*(Z.y<0?1:ae),Q.y*(Q.y<0?1:ae))},X={x:ce?1:Math.max(Z.x*(Z.x>0?1:ae),Q.x*(Q.x>0?1:ae)),y:G?1:Math.max(Z.y*(Z.y>0?1:ae),Q.y*(Q.y>0?1:ae))},Te={width:.5*(X.x-le.x),height:.5*(X.y-le.y)};L=Math.min(S/Te.width,k/Te.height),A={x:-.5*(X.x+le.x),y:-.5*(X.y+le.y)}}p.borderWidth=y.getMaxBorderWidth(U.data),p.outerRadius=Math.max((L-p.borderWidth)/2,0),p.innerRadius=Math.max(H?p.outerRadius/100*H:0,0),p.radiusLength=(p.outerRadius-p.innerRadius)/p.getVisibleDatasetCount(),p.offsetX=A.x*p.outerRadius,p.offsetY=A.y*p.outerRadius,U.total=y.calculateTotal(),y.outerRadius=p.outerRadius-p.radiusLength*y.getRingIndex(y.index),y.innerRadius=Math.max(y.outerRadius-p.radiusLength,0),u.each(U.data,function(Se,Ce){y.updateElement(Se,Ce,h)})},updateElement:function(h,y,p){var v=this,x=v.chart,T=x.chartArea,S=x.options,k=S.animation,L=(T.left+T.right)/2,A=(T.top+T.bottom)/2,U=S.rotation,H=S.rotation,K=v.getDataset(),ie=p&&k.animateRotate||h.hidden?0:v.calculateCircumference(K.data[y])*(S.circumference/(2*Math.PI));u.extend(h,{_datasetIndex:v.index,_index:y,_model:{x:L+x.offsetX,y:A+x.offsetY,startAngle:U,endAngle:H,circumference:ie,outerRadius:p&&k.animateScale?0:v.outerRadius,innerRadius:p&&k.animateScale?0:v.innerRadius,label:(0,u.valueAtIndexOrDefault)(K.label,y,x.data.labels[y])}});var ce=h._model;this.removeHoverStyle(h),(!p||!k.animateRotate)&&(ce.startAngle=0===y?S.rotation:v.getMeta().data[y-1]._model.endAngle,ce.endAngle=ce.startAngle+ce.circumference),h.pivot()},removeHoverStyle:function(h){f.DatasetController.prototype.removeHoverStyle.call(this,h,this.chart.options.elements.arc)},calculateTotal:function(){var v,h=this.getDataset(),y=this.getMeta(),p=0;return u.each(y.data,function(x,T){v=h.data[T],!isNaN(v)&&!x.hidden&&(p+=Math.abs(v))}),p},calculateCircumference:function(h){var y=this.getMeta().total;return y>0&&!isNaN(h)?2*Math.PI*(Math.abs(h)/y):0},getMaxBorderWidth:function(h){for(var x,T,y=0,p=this.index,v=h.length,S=0;S(y=(x=h[S]._model?h[S]._model.borderWidth:0)>y?x:y)?T:y;return y}})}},6769:(ue,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),ue.exports=function(f){function h(y,p){return u.valueOrDefault(y.showLine,p.showLines)}f.controllers.line=f.DatasetController.extend({datasetElementType:_.Line,dataElementType:_.Point,update:function(y){var A,U,H,p=this,v=p.getMeta(),x=v.dataset,T=v.data||[],S=p.chart.options,k=S.elements.line,L=p.getScaleForId(v.yAxisID),K=p.getDataset(),ie=h(K,S);for(ie&&(H=x.custom||{},void 0!==K.tension&&void 0===K.lineTension&&(K.lineTension=K.tension),x._scale=L,x._datasetIndex=p.index,x._children=T,x._model={spanGaps:K.spanGaps?K.spanGaps:S.spanGaps,tension:H.tension?H.tension:u.valueOrDefault(K.lineTension,k.tension),backgroundColor:H.backgroundColor?H.backgroundColor:K.backgroundColor||k.backgroundColor,borderWidth:H.borderWidth?H.borderWidth:K.borderWidth||k.borderWidth,borderColor:H.borderColor?H.borderColor:K.borderColor||k.borderColor,borderCapStyle:H.borderCapStyle?H.borderCapStyle:K.borderCapStyle||k.borderCapStyle,borderDash:H.borderDash?H.borderDash:K.borderDash||k.borderDash,borderDashOffset:H.borderDashOffset?H.borderDashOffset:K.borderDashOffset||k.borderDashOffset,borderJoinStyle:H.borderJoinStyle?H.borderJoinStyle:K.borderJoinStyle||k.borderJoinStyle,fill:H.fill?H.fill:void 0!==K.fill?K.fill:k.fill,steppedLine:H.steppedLine?H.steppedLine:u.valueOrDefault(K.steppedLine,k.stepped),cubicInterpolationMode:H.cubicInterpolationMode?H.cubicInterpolationMode:u.valueOrDefault(K.cubicInterpolationMode,k.cubicInterpolationMode)},x.pivot()),A=0,U=T.length;A{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(f){var h=[];h.push('
    ');var y=f.data,p=y.datasets,v=y.labels;if(p.length)for(var x=0;x'),v[x]&&h.push(v[x]),h.push("");return h.push("
"),h.join("")},legend:{labels:{generateLabels:function(f){var h=f.data;return h.labels.length&&h.datasets.length?h.labels.map(function(y,p){var v=f.getDatasetMeta(0),x=h.datasets[0],S=v.data[p].custom||{},k=u.valueAtIndexOrDefault,L=f.options.elements.arc;return{text:y,fillStyle:S.backgroundColor?S.backgroundColor:k(x.backgroundColor,p,L.backgroundColor),strokeStyle:S.borderColor?S.borderColor:k(x.borderColor,p,L.borderColor),lineWidth:S.borderWidth?S.borderWidth:k(x.borderWidth,p,L.borderWidth),hidden:isNaN(x.data[p])||v.data[p].hidden,index:p}}):[]}},onClick:function(f,h){var v,x,T,y=h.index,p=this.chart;for(v=0,x=(p.data.datasets||[]).length;v0&&!isNaN(h)?2*Math.PI/y:0}})}},4657:(ue,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),ue.exports=function(f){f.controllers.radar=f.DatasetController.extend({datasetElementType:_.Line,dataElementType:_.Point,linkScales:u.noop,update:function(h){var y=this,p=y.getMeta(),x=p.data,T=p.dataset.custom||{},S=y.getDataset(),k=y.chart.options.elements.line,L=y.chart.scale;void 0!==S.tension&&void 0===S.lineTension&&(S.lineTension=S.tension),u.extend(p.dataset,{_datasetIndex:y.index,_scale:L,_children:x,_loop:!0,_model:{tension:T.tension?T.tension:u.valueOrDefault(S.lineTension,k.tension),backgroundColor:T.backgroundColor?T.backgroundColor:S.backgroundColor||k.backgroundColor,borderWidth:T.borderWidth?T.borderWidth:S.borderWidth||k.borderWidth,borderColor:T.borderColor?T.borderColor:S.borderColor||k.borderColor,fill:T.fill?T.fill:void 0!==S.fill?S.fill:k.fill,borderCapStyle:T.borderCapStyle?T.borderCapStyle:S.borderCapStyle||k.borderCapStyle,borderDash:T.borderDash?T.borderDash:S.borderDash||k.borderDash,borderDashOffset:T.borderDashOffset?T.borderDashOffset:S.borderDashOffset||k.borderDashOffset,borderJoinStyle:T.borderJoinStyle?T.borderJoinStyle:S.borderJoinStyle||k.borderJoinStyle}}),p.dataset.pivot(),u.each(x,function(A,U){y.updateElement(A,U,h)},y),y.updateBezierControlPoints()},updateElement:function(h,y,p){var v=this,x=h.custom||{},T=v.getDataset(),S=v.chart.scale,k=v.chart.options.elements.point,L=S.getPointPositionForValue(y,T.data[y]);void 0!==T.radius&&void 0===T.pointRadius&&(T.pointRadius=T.radius),void 0!==T.hitRadius&&void 0===T.pointHitRadius&&(T.pointHitRadius=T.hitRadius),u.extend(h,{_datasetIndex:v.index,_index:y,_scale:S,_model:{x:p?S.xCenter:L.x,y:p?S.yCenter:L.y,tension:x.tension?x.tension:u.valueOrDefault(T.lineTension,v.chart.options.elements.line.tension),radius:x.radius?x.radius:u.valueAtIndexOrDefault(T.pointRadius,y,k.radius),backgroundColor:x.backgroundColor?x.backgroundColor:u.valueAtIndexOrDefault(T.pointBackgroundColor,y,k.backgroundColor),borderColor:x.borderColor?x.borderColor:u.valueAtIndexOrDefault(T.pointBorderColor,y,k.borderColor),borderWidth:x.borderWidth?x.borderWidth:u.valueAtIndexOrDefault(T.pointBorderWidth,y,k.borderWidth),pointStyle:x.pointStyle?x.pointStyle:u.valueAtIndexOrDefault(T.pointStyle,y,k.pointStyle),hitRadius:x.hitRadius?x.hitRadius:u.valueAtIndexOrDefault(T.pointHitRadius,y,k.hitRadius)}}),h._model.skip=x.skip?x.skip:isNaN(h._model.x)||isNaN(h._model.y)},updateBezierControlPoints:function(){var h=this.chart.chartArea,y=this.getMeta();u.each(y.data,function(p,v){var x=p._model,T=u.splineCurve(u.previousItem(y.data,v,!0)._model,x,u.nextItem(y.data,v,!0)._model,x.tension);x.controlPointPreviousX=Math.max(Math.min(T.previous.x,h.right),h.left),x.controlPointPreviousY=Math.max(Math.min(T.previous.y,h.bottom),h.top),x.controlPointNextX=Math.max(Math.min(T.next.x,h.right),h.left),x.controlPointNextY=Math.max(Math.min(T.next.y,h.bottom),h.top),p.pivot()})},setHoverStyle:function(h){var y=this.chart.data.datasets[h._datasetIndex],p=h.custom||{},v=h._index,x=h._model;x.radius=p.hoverRadius?p.hoverRadius:u.valueAtIndexOrDefault(y.pointHoverRadius,v,this.chart.options.elements.point.hoverRadius),x.backgroundColor=p.hoverBackgroundColor?p.hoverBackgroundColor:u.valueAtIndexOrDefault(y.pointHoverBackgroundColor,v,u.getHoverColor(x.backgroundColor)),x.borderColor=p.hoverBorderColor?p.hoverBorderColor:u.valueAtIndexOrDefault(y.pointHoverBorderColor,v,u.getHoverColor(x.borderColor)),x.borderWidth=p.hoverBorderWidth?p.hoverBorderWidth:u.valueAtIndexOrDefault(y.pointHoverBorderWidth,v,x.borderWidth)},removeHoverStyle:function(h){var y=this.chart.data.datasets[h._datasetIndex],p=h.custom||{},v=h._index,x=h._model,T=this.chart.options.elements.point;x.radius=p.radius?p.radius:u.valueAtIndexOrDefault(y.pointRadius,v,T.radius),x.backgroundColor=p.backgroundColor?p.backgroundColor:u.valueAtIndexOrDefault(y.pointBackgroundColor,v,T.backgroundColor),x.borderColor=p.borderColor?p.borderColor:u.valueAtIndexOrDefault(y.pointBorderColor,v,T.borderColor),x.borderWidth=p.borderWidth?p.borderWidth:u.valueAtIndexOrDefault(y.pointBorderWidth,v,T.borderWidth)}})}},1895:(ue,ge,N)=>{"use strict";N(9800)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(_){return"("+_.xLabel+", "+_.yLabel+")"}}}}),ue.exports=function(_){_.controllers.scatter=_.controllers.line}},8103:(ue,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305);O._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:u.noop,onComplete:u.noop}}),ue.exports=function(f){f.Animation=_.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),f.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(h,y,p,v){var T,S,x=this.animations;for(y.chart=h,v||(h.animating=!0),T=0,S=x.length;T1&&(p=Math.floor(h.dropFrames),h.dropFrames=h.dropFrames%1),h.advance(1+p);var v=Date.now();h.dropFrames+=(v-y)/h.frameDuration,h.animations.length>0&&h.requestAnimationFrame()},advance:function(h){for(var p,v,y=this.animations,x=0;x=p.numSteps?(u.callback(p.onAnimationComplete,[p],v),v.animating=!1,y.splice(x,1)):++x}},Object.defineProperty(f.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(f.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(h){this.chart=h}})}},1047:(ue,ge,N)=>{"use strict";var O=N(9800),_=N(3305),u=N(2814),f=N(2294),h=N(8244),y=N(2445);ue.exports=function(p){function x(S){var k=S.options;_.each(S.scales,function(L){f.removeBox(S,L)}),k=_.configMerge(p.defaults.global,p.defaults[S.config.type],k),S.options=S.config.options=k,S.ensureScalesHaveIDs(),S.buildOrUpdateScales(),S.tooltip._options=k.tooltips,S.tooltip.initialize()}function T(S){return"top"===S||"bottom"===S}p.types={},p.instances={},p.controllers={},_.extend(p.prototype,{construct:function(S,k){var L=this;k=function v(S){var k=(S=S||{}).data=S.data||{};return k.datasets=k.datasets||[],k.labels=k.labels||[],S.options=_.configMerge(O.global,O[S.type],S.options||{}),S}(k);var A=h.acquireContext(S,k),U=A&&A.canvas,H=U&&U.height,K=U&&U.width;L.id=_.uid(),L.ctx=A,L.canvas=U,L.config=k,L.width=K,L.height=H,L.aspectRatio=H?K/H:null,L.options=k.options,L._bufferedRender=!1,L.chart=L,L.controller=L,p.instances[L.id]=L,Object.defineProperty(L,"data",{get:function(){return L.config.data},set:function(ie){L.config.data=ie}}),A&&U?(L.initialize(),L.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var S=this;return y.notify(S,"beforeInit"),_.retinaScale(S,S.options.devicePixelRatio),S.bindEvents(),S.options.responsive&&S.resize(!0),S.ensureScalesHaveIDs(),S.buildOrUpdateScales(),S.initToolTip(),y.notify(S,"afterInit"),S},clear:function(){return _.canvas.clear(this),this},stop:function(){return p.animationService.cancelAnimation(this),this},resize:function(S){var k=this,L=k.options,A=k.canvas,U=L.maintainAspectRatio&&k.aspectRatio||null,H=Math.max(0,Math.floor(_.getMaximumWidth(A))),K=Math.max(0,Math.floor(U?H/U:_.getMaximumHeight(A)));if((k.width!==H||k.height!==K)&&(A.width=k.width=H,A.height=k.height=K,A.style.width=H+"px",A.style.height=K+"px",_.retinaScale(k,L.devicePixelRatio),!S)){var ie={width:H,height:K};y.notify(k,"resize",[ie]),k.options.onResize&&k.options.onResize(k,ie),k.stop(),k.update(k.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var S=this.options,k=S.scales||{},L=S.scale;_.each(k.xAxes,function(A,U){A.id=A.id||"x-axis-"+U}),_.each(k.yAxes,function(A,U){A.id=A.id||"y-axis-"+U}),L&&(L.id=L.id||"scale")},buildOrUpdateScales:function(){var S=this,k=S.options,L=S.scales||{},A=[],U=Object.keys(L).reduce(function(H,K){return H[K]=!1,H},{});k.scales&&(A=A.concat((k.scales.xAxes||[]).map(function(H){return{options:H,dtype:"category",dposition:"bottom"}}),(k.scales.yAxes||[]).map(function(H){return{options:H,dtype:"linear",dposition:"left"}}))),k.scale&&A.push({options:k.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),_.each(A,function(H){var K=H.options,ie=K.id,ve=_.valueOrDefault(K.type,H.dtype);T(K.position)!==T(H.dposition)&&(K.position=H.dposition),U[ie]=!0;var Z=null;if(ie in L&&L[ie].type===ve)(Z=L[ie]).options=K,Z.ctx=S.ctx,Z.chart=S;else{var Q=p.scaleService.getScaleConstructor(ve);if(!Q)return;Z=new Q({id:ie,type:ve,options:K,ctx:S.ctx,chart:S}),L[Z.id]=Z}Z.mergeTicksOptions(),H.isDefault&&(S.scale=Z)}),_.each(U,function(H,K){H||delete L[K]}),S.scales=L,p.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var S=this,k=[],L=[];return _.each(S.data.datasets,function(A,U){var H=S.getDatasetMeta(U),K=A.type||S.config.type;if(H.type&&H.type!==K&&(S.destroyDatasetMeta(U),H=S.getDatasetMeta(U)),H.type=K,k.push(H.type),H.controller)H.controller.updateIndex(U),H.controller.linkScales();else{var ie=p.controllers[H.type];if(void 0===ie)throw new Error('"'+H.type+'" is not a chart type.');H.controller=new ie(S,U),L.push(H.controller)}},S),L},resetElements:function(){var S=this;_.each(S.data.datasets,function(k,L){S.getDatasetMeta(L).controller.reset()},S)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(S){var k=this;if((!S||"object"!=typeof S)&&(S={duration:S,lazy:arguments[1]}),x(k),y._invalidate(k),!1!==y.notify(k,"beforeUpdate")){k.tooltip._data=k.data;var L=k.buildOrUpdateControllers();_.each(k.data.datasets,function(A,U){k.getDatasetMeta(U).controller.buildOrUpdateElements()},k),k.updateLayout(),k.options.animation&&k.options.animation.duration&&_.each(L,function(A){A.reset()}),k.updateDatasets(),k.tooltip.initialize(),k.lastActive=[],y.notify(k,"afterUpdate"),k._bufferedRender?k._bufferedRequest={duration:S.duration,easing:S.easing,lazy:S.lazy}:k.render(S)}},updateLayout:function(){var S=this;!1!==y.notify(S,"beforeLayout")&&(f.update(this,this.width,this.height),y.notify(S,"afterScaleUpdate"),y.notify(S,"afterLayout"))},updateDatasets:function(){var S=this;if(!1!==y.notify(S,"beforeDatasetsUpdate")){for(var k=0,L=S.data.datasets.length;k"u"&&0!==U.duration)){var K=new p.Animation({numSteps:(L||U.duration)/16.66,easing:S.easing||U.easing,render:function(ie,ve){var Q=ve.currentStep,ce=Q/ve.numSteps;ie.draw((0,_.easing.effects[ve.easing])(ce),ce,Q)},onAnimationProgress:U.onProgress,onAnimationComplete:H});p.animationService.addAnimation(k,K,L,A)}else k.draw(),H(new p.Animation({numSteps:0,chart:k}));return k}},draw:function(S){var k=this;k.clear(),_.isNullOrUndef(S)&&(S=1),k.transition(S),!1!==y.notify(k,"beforeDraw",[S])&&(_.each(k.boxes,function(L){L.draw(k.chartArea)},k),k.scale&&k.scale.draw(),k.drawDatasets(S),k._drawTooltip(S),y.notify(k,"afterDraw",[S]))},transition:function(S){for(var k=this,L=0,A=(k.data.datasets||[]).length;L=0;--L)k.isDatasetVisible(L)&&k.drawDataset(L,S);y.notify(k,"afterDatasetsDraw",[S])}},drawDataset:function(S,k){var L=this,A=L.getDatasetMeta(S),U={meta:A,index:S,easingValue:k};!1!==y.notify(L,"beforeDatasetDraw",[U])&&(A.controller.draw(k),y.notify(L,"afterDatasetDraw",[U]))},_drawTooltip:function(S){var k=this,L=k.tooltip,A={tooltip:L,easingValue:S};!1!==y.notify(k,"beforeTooltipDraw",[A])&&(L.draw(),y.notify(k,"afterTooltipDraw",[A]))},getElementAtEvent:function(S){return u.modes.single(this,S)},getElementsAtEvent:function(S){return u.modes.label(this,S,{intersect:!0})},getElementsAtXAxis:function(S){return u.modes["x-axis"](this,S,{intersect:!0})},getElementsAtEventForMode:function(S,k,L){var A=u.modes[k];return"function"==typeof A?A(this,S,L):[]},getDatasetAtEvent:function(S){return u.modes.dataset(this,S,{intersect:!0})},getDatasetMeta:function(S){var k=this,L=k.data.datasets[S];L._meta||(L._meta={});var A=L._meta[k.id];return A||(A=L._meta[k.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),A},getVisibleDatasetCount:function(){for(var S=0,k=0,L=this.data.datasets.length;k{"use strict";var O=N(3305);ue.exports=function(_){var u=["push","pop","shift","splice","unshift"];function h(y,p){var v=y._chartjs;if(v){var x=v.listeners,T=x.indexOf(p);-1!==T&&x.splice(T,1),!(x.length>0)&&(u.forEach(function(S){delete y[S]}),delete y._chartjs)}}_.DatasetController=function(y,p){this.initialize(y,p)},O.extend(_.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(y,p){var v=this;v.chart=y,v.index=p,v.linkScales(),v.addElements()},updateIndex:function(y){this.index=y},linkScales:function(){var y=this,p=y.getMeta(),v=y.getDataset();(null===p.xAxisID||!(p.xAxisID in y.chart.scales))&&(p.xAxisID=v.xAxisID||y.chart.options.scales.xAxes[0].id),(null===p.yAxisID||!(p.yAxisID in y.chart.scales))&&(p.yAxisID=v.yAxisID||y.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(y){return this.chart.scales[y]},reset:function(){this.update(!0)},destroy:function(){this._data&&h(this._data,this)},createMetaDataset:function(){var y=this,p=y.datasetElementType;return p&&new p({_chart:y.chart,_datasetIndex:y.index})},createMetaData:function(y){var p=this,v=p.dataElementType;return v&&new v({_chart:p.chart,_datasetIndex:p.index,_index:y})},addElements:function(){var T,S,y=this,p=y.getMeta(),v=y.getDataset().data||[],x=p.data;for(T=0,S=v.length;Tx&&y.insertElements(x,T-x)},insertElements:function(y,p){for(var v=0;v{"use strict";var O=N(3305);ue.exports={_set:function(_,u){return O.merge(this[_]||(this[_]={}),u)}}},8839:(ue,ge,N)=>{"use strict";var O=N(7726),_=N(3305),f=function(h){_.extend(this,h),this.initialize.apply(this,arguments)};_.extend(f.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var h=this;return h._view||(h._view=_.clone(h._model)),h._start={},h},transition:function(h){var y=this,p=y._model,v=y._start,x=y._view;return p&&1!==h?(x||(x=y._view={}),v||(v=y._start={}),function u(h,y,p,v){var T,S,k,L,A,U,H,K,ie,x=Object.keys(p);for(T=0,S=x.length;T{"use strict";var O=N(7726),_=N(9800),u=N(3305);ue.exports=function(f){function h(v,x,T){var S;return"string"==typeof v?(S=parseInt(v,10),-1!==v.indexOf("%")&&(S=S/100*x.parentNode[T])):S=v,S}function y(v){return null!=v&&"none"!==v}function p(v,x,T){var S=document.defaultView,k=v.parentNode,L=S.getComputedStyle(v)[x],A=S.getComputedStyle(k)[x],U=y(L),H=y(A),K=Number.POSITIVE_INFINITY;return U||H?Math.min(U?h(L,v,T):K,H?h(A,k,T):K):"none"}u.configMerge=function(){return u.merge(u.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(v,x,T,S){var k=x[v]||{},L=T[v];"scales"===v?x[v]=u.scaleMerge(k,L):"scale"===v?x[v]=u.merge(k,[f.scaleService.getScaleDefaults(L.type),L]):u._merger(v,x,T,S)}})},u.scaleMerge=function(){return u.merge(u.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(v,x,T,S){if("xAxes"===v||"yAxes"===v){var L,A,U,k=T[v].length;for(x[v]||(x[v]=[]),L=0;L=x[v].length&&x[v].push({}),u.merge(x[v][L],!x[v][L].type||U.type&&U.type!==x[v][L].type?[f.scaleService.getScaleDefaults(A),U]:U)}else u._merger(v,x,T,S)}})},u.where=function(v,x){if(u.isArray(v)&&Array.prototype.filter)return v.filter(x);var T=[];return u.each(v,function(S){x(S)&&T.push(S)}),T},u.findIndex=Array.prototype.findIndex?function(v,x,T){return v.findIndex(x,T)}:function(v,x,T){T=void 0===T?v:T;for(var S=0,k=v.length;S=0;S--){var k=v[S];if(x(k))return k}},u.isNumber=function(v){return!isNaN(parseFloat(v))&&isFinite(v)},u.almostEquals=function(v,x,T){return Math.abs(v-x)v},u.max=function(v){return v.reduce(function(x,T){return isNaN(T)?x:Math.max(x,T)},Number.NEGATIVE_INFINITY)},u.min=function(v){return v.reduce(function(x,T){return isNaN(T)?x:Math.min(x,T)},Number.POSITIVE_INFINITY)},u.sign=Math.sign?function(v){return Math.sign(v)}:function(v){return 0==(v=+v)||isNaN(v)?v:v>0?1:-1},u.log10=Math.log10?function(v){return Math.log10(v)}:function(v){var x=Math.log(v)*Math.LOG10E,T=Math.round(x);return v===Math.pow(10,T)?T:x},u.toRadians=function(v){return v*(Math.PI/180)},u.toDegrees=function(v){return v*(180/Math.PI)},u.getAngleFromPoint=function(v,x){var T=x.x-v.x,S=x.y-v.y,k=Math.sqrt(T*T+S*S),L=Math.atan2(S,T);return L<-.5*Math.PI&&(L+=2*Math.PI),{angle:L,distance:k}},u.distanceBetweenPoints=function(v,x){return Math.sqrt(Math.pow(x.x-v.x,2)+Math.pow(x.y-v.y,2))},u.aliasPixel=function(v){return v%2==0?0:.5},u.splineCurve=function(v,x,T,S){var k=v.skip?x:v,L=x,A=T.skip?x:T,U=Math.sqrt(Math.pow(L.x-k.x,2)+Math.pow(L.y-k.y,2)),H=Math.sqrt(Math.pow(A.x-L.x,2)+Math.pow(A.y-L.y,2)),K=U/(U+H),ie=H/(U+H),ve=S*(K=isNaN(K)?0:K),Z=S*(ie=isNaN(ie)?0:ie);return{previous:{x:L.x-ve*(A.x-k.x),y:L.y-ve*(A.y-k.y)},next:{x:L.x+Z*(A.x-k.x),y:L.y+Z*(A.y-k.y)}}},u.EPSILON=Number.EPSILON||1e-14,u.splineCurveMonotone=function(v){var S,k,L,A,H,K,ie,ve,Z,x=(v||[]).map(function(Q){return{model:Q._model,deltaK:0,mK:0}}),T=x.length;for(S=0;S0?x[S-1]:null,(A=S0?x[S-1]:null)&&!k.model.skip&&(L.model.controlPointPreviousX=L.model.x-(Z=(L.model.x-k.model.x)/3),L.model.controlPointPreviousY=L.model.y-Z*L.mK),A&&!A.model.skip&&(L.model.controlPointNextX=L.model.x+(Z=(A.model.x-L.model.x)/3),L.model.controlPointNextY=L.model.y+Z*L.mK))},u.nextItem=function(v,x,T){return T?x>=v.length-1?v[0]:v[x+1]:x>=v.length-1?v[v.length-1]:v[x+1]},u.previousItem=function(v,x,T){return T?x<=0?v[v.length-1]:v[x-1]:x<=0?v[0]:v[x-1]},u.niceNum=function(v,x){var T=Math.floor(u.log10(v)),S=v/Math.pow(10,T);return(x?S<1.5?1:S<3?2:S<7?5:10:S<=1?1:S<=2?2:S<=5?5:10)*Math.pow(10,T)},u.requestAnimFrame=typeof window>"u"?function(v){v()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(v){return window.setTimeout(v,1e3/60)},u.getRelativePosition=function(v,x){var T,S,k=v.originalEvent||v,L=v.currentTarget||v.srcElement,A=L.getBoundingClientRect(),U=k.touches;U&&U.length>0?(T=U[0].clientX,S=U[0].clientY):(T=k.clientX,S=k.clientY);var H=parseFloat(u.getStyle(L,"padding-left")),K=parseFloat(u.getStyle(L,"padding-top")),ie=parseFloat(u.getStyle(L,"padding-right")),ve=parseFloat(u.getStyle(L,"padding-bottom")),Q=A.bottom-A.top-K-ve;return{x:T=Math.round((T-A.left-H)/(A.right-A.left-H-ie)*L.width/x.currentDevicePixelRatio),y:S=Math.round((S-A.top-K)/Q*L.height/x.currentDevicePixelRatio)}},u.getConstraintWidth=function(v){return p(v,"max-width","clientWidth")},u.getConstraintHeight=function(v){return p(v,"max-height","clientHeight")},u.getMaximumWidth=function(v){var x=v.parentNode;if(!x)return v.clientWidth;var T=parseInt(u.getStyle(x,"padding-left"),10),S=parseInt(u.getStyle(x,"padding-right"),10),k=x.clientWidth-T-S,L=u.getConstraintWidth(v);return isNaN(L)?k:Math.min(k,L)},u.getMaximumHeight=function(v){var x=v.parentNode;if(!x)return v.clientHeight;var T=parseInt(u.getStyle(x,"padding-top"),10),S=parseInt(u.getStyle(x,"padding-bottom"),10),k=x.clientHeight-T-S,L=u.getConstraintHeight(v);return isNaN(L)?k:Math.min(k,L)},u.getStyle=function(v,x){return v.currentStyle?v.currentStyle[x]:document.defaultView.getComputedStyle(v,null).getPropertyValue(x)},u.retinaScale=function(v,x){var T=v.currentDevicePixelRatio=x||window.devicePixelRatio||1;if(1!==T){var S=v.canvas,k=v.height,L=v.width;S.height=k*T,S.width=L*T,v.ctx.scale(T,T),!S.style.height&&!S.style.width&&(S.style.height=k+"px",S.style.width=L+"px")}},u.fontString=function(v,x,T){return x+" "+v+"px "+T},u.longestText=function(v,x,T,S){var k=(S=S||{}).data=S.data||{},L=S.garbageCollect=S.garbageCollect||[];S.font!==x&&(k=S.data={},L=S.garbageCollect=[],S.font=x),v.font=x;var A=0;u.each(T,function(K){null!=K&&!0!==u.isArray(K)?A=u.measureText(v,k,L,A,K):u.isArray(K)&&u.each(K,function(ie){null!=ie&&!u.isArray(ie)&&(A=u.measureText(v,k,L,A,ie))})});var U=L.length/2;if(U>T.length){for(var H=0;HS&&(S=L),S},u.numberOfLabelLines=function(v){var x=1;return u.each(v,function(T){u.isArray(T)&&T.length>x&&(x=T.length)}),x},u.color=O?function(v){return v instanceof CanvasGradient&&(v=_.global.defaultColor),O(v)}:function(v){return console.error("Color.js not found!"),v},u.getHoverColor=function(v){return v instanceof CanvasPattern?v:u.color(v).saturate(.5).darken(.1).rgbString()}}},2814:(ue,ge,N)=>{"use strict";var O=N(3305);function _(v,x){return v.native?{x:v.x,y:v.y}:O.getRelativePosition(v,x)}function u(v,x){var S,k,L,A,U;for(k=0,A=v.data.datasets.length;k0&&(L=v.getDatasetMeta(L[0]._datasetIndex).data),L},"x-axis":function(v,x){return p(v,x,{intersect:!1})},point:function(v,x){return f(v,_(x,v))},nearest:function(v,x,T){var S=_(x,v);T.axis=T.axis||"xy";var k=y(T.axis),L=h(v,S,T.intersect,k);return L.length>1&&L.sort(function(A,U){var ie=A.getArea()-U.getArea();return 0===ie&&(ie=A._datasetIndex-U._datasetIndex),ie}),L.slice(0,1)},x:function(v,x,T){var S=_(x,v),k=[],L=!1;return u(v,function(A){A.inXRange(S.x)&&k.push(A),A.inRange(S.x,S.y)&&(L=!0)}),T.intersect&&!L&&(k=[]),k},y:function(v,x,T){var S=_(x,v),k=[],L=!1;return u(v,function(A){A.inYRange(S.y)&&k.push(A),A.inRange(S.x,S.y)&&(L=!0)}),T.intersect&&!L&&(k=[]),k}}}},5979:(ue,ge,N)=>{"use strict";N(9800)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),ue.exports=function(){var _=function(u,f){return this.construct(u,f),this};return _.Chart=_,_}},2294:(ue,ge,N)=>{"use strict";var O=N(3305);function _(f,h){return O.where(f,function(y){return y.position===h})}function u(f,h){f.forEach(function(y,p){return y._tmpIndex_=p,y}),f.sort(function(y,p){var v=h?p:y,x=h?y:p;return v.weight===x.weight?v._tmpIndex_-x._tmpIndex_:v.weight-x.weight}),f.forEach(function(y){delete y._tmpIndex_})}ue.exports={defaults:{},addBox:function(f,h){f.boxes||(f.boxes=[]),h.fullWidth=h.fullWidth||!1,h.position=h.position||"top",h.weight=h.weight||0,f.boxes.push(h)},removeBox:function(f,h){var y=f.boxes?f.boxes.indexOf(h):-1;-1!==y&&f.boxes.splice(y,1)},configure:function(f,h,y){for(var T,p=["fullWidth","position","weight"],v=p.length,x=0;x{"use strict";var O=N(9800),_=N(3305);O._set("global",{plugins:{}}),ue.exports={_plugins:[],_cacheId:0,register:function(u){var f=this._plugins;[].concat(u).forEach(function(h){-1===f.indexOf(h)&&f.push(h)}),this._cacheId++},unregister:function(u){var f=this._plugins;[].concat(u).forEach(function(h){var y=f.indexOf(h);-1!==y&&f.splice(y,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(u,f,h){var v,x,T,S,k,y=this.descriptors(u),p=y.length;for(v=0;v{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=N(8347);function h(p){var x,T,v=[];for(x=0,T=p.length;x"u"&&(S.minor[k]=S[k]),typeof S.major[k]>"u"&&(S.major[k]=S[k]))},beforeUpdate:function(){u.callback(this.options.beforeUpdate,[this])},update:function(S,k,L){var U,H,K,ie,ve,Z,A=this;for(A.beforeUpdate(),A.maxWidth=S,A.maxHeight=k,A.margins=u.extend({left:0,right:0,top:0,bottom:0},L),A.longestTextCache=A.longestTextCache||{},A.beforeSetDimensions(),A.setDimensions(),A.afterSetDimensions(),A.beforeDataLimits(),A.determineDataLimits(),A.afterDataLimits(),A.beforeBuildTicks(),ve=A.buildTicks()||[],A.afterBuildTicks(),A.beforeTickToLabelConversion(),K=A.convertTicksToLabels(ve)||A.ticks,A.afterTickToLabelConversion(),A.ticks=K,U=0,H=K.length;UQ&&HS.maxHeight){H--;break}H++,ie=ve*K}S.labelRotation=H},afterCalculateTickRotation:function(){u.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){u.callback(this.options.beforeFit,[this])},fit:function(){var S=this,k=S.minSize={width:0,height:0},L=h(S._ticks),A=S.options,U=A.ticks,H=A.scaleLabel,K=A.gridLines,ie=A.display,ve=S.isHorizontal(),Z=x(U),Q=A.gridLines.tickMarkLength;if(k.width=ve?S.isFullWidth()?S.maxWidth-S.margins.left-S.margins.right:S.maxWidth:ie&&K.drawTicks?Q:0,k.height=ve?ie&&K.drawTicks?Q:0:S.maxHeight,H.display&&ie){var J=T(H)+u.options.toPadding(H.padding).height;ve?k.height+=J:k.width+=J}if(U.display&&ie){var ee=u.longestText(S.ctx,Z.font,L,S.longestTextCache),ae=u.numberOfLabelLines(L),le=.5*Z.size,X=S.options.ticks.padding;if(ve){S.longestLabelWidth=ee;var Te=u.toRadians(S.labelRotation),Se=Math.cos(Te),Ce=Math.sin(Te);k.height=Math.min(S.maxHeight,k.height+(Ce*ee+Z.size*ae+le*(ae-1)+le)+X),S.ctx.font=Z.font;var et=v(S.ctx,L[0],Z.font),ot=v(S.ctx,L[L.length-1],Z.font);0!==S.labelRotation?(S.paddingLeft="bottom"===A.position?Se*et+3:Se*le+3,S.paddingRight="bottom"===A.position?Se*le+3:Se*ot+3):(S.paddingLeft=et/2+3,S.paddingRight=ot/2+3)}else U.mirror?ee=0:ee+=X+le,k.width=Math.min(S.maxWidth,k.width+ee),S.paddingTop=Z.size/2,S.paddingBottom=Z.size/2}S.handleMargins(),S.width=k.width,S.height=k.height},handleMargins:function(){var S=this;S.margins&&(S.paddingLeft=Math.max(S.paddingLeft-S.margins.left,0),S.paddingTop=Math.max(S.paddingTop-S.margins.top,0),S.paddingRight=Math.max(S.paddingRight-S.margins.right,0),S.paddingBottom=Math.max(S.paddingBottom-S.margins.bottom,0))},afterFit:function(){u.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(S){if(u.isNullOrUndef(S))return NaN;if("number"==typeof S&&!isFinite(S))return NaN;if(S)if(this.isHorizontal()){if(void 0!==S.x)return this.getRightValue(S.x)}else if(void 0!==S.y)return this.getRightValue(S.y);return S},getLabelForIndex:u.noop,getPixelForValue:u.noop,getValueForPixel:u.noop,getPixelForTick:function(S){var k=this,L=k.options.offset;if(k.isHorizontal()){var U=(k.width-(k.paddingLeft+k.paddingRight))/Math.max(k._ticks.length-(L?0:1),1),H=U*S+k.paddingLeft;return L&&(H+=U/2),k.left+Math.round(H)+(k.isFullWidth()?k.margins.left:0)}return k.top+S*((k.height-(k.paddingTop+k.paddingBottom))/(k._ticks.length-1))},getPixelForDecimal:function(S){var k=this;return k.isHorizontal()?k.left+Math.round((k.width-(k.paddingLeft+k.paddingRight))*S+k.paddingLeft)+(k.isFullWidth()?k.margins.left:0):k.top+S*k.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var S=this,k=S.min,L=S.max;return S.beginAtZero?0:k<0&&L<0?L:k>0&&L>0?k:0},_autoSkip:function(S){var k,Q,ce,J,L=this,A=L.isHorizontal(),U=L.options.ticks.minor,H=S.length,K=u.toRadians(L.labelRotation),ie=Math.cos(K),ve=L.longestLabelWidth*ie,Z=[];for(U.maxTicksLimit&&(J=U.maxTicksLimit),A&&(k=!1,(ve+U.autoSkipPadding)*H>L.width-(L.paddingLeft+L.paddingRight)&&(k=1+Math.floor((ve+U.autoSkipPadding)*H/(L.width-(L.paddingLeft+L.paddingRight)))),J&&H>J&&(k=Math.max(k,Math.floor(H/J)))),Q=0;Q1&&Q%k>0||Q%k==0&&Q+k>=H)&&Q!==H-1&&delete ce.label,Z.push(ce);return Z},draw:function(S){var k=this,L=k.options;if(L.display){var A=k.ctx,U=O.global,H=L.ticks.minor,K=L.ticks.major||H,ie=L.gridLines,ve=L.scaleLabel,Z=0!==k.labelRotation,Q=k.isHorizontal(),ce=H.autoSkip?k._autoSkip(k.getTicks()):k.getTicks(),G=u.valueOrDefault(H.fontColor,U.defaultFontColor),J=x(H),ee=u.valueOrDefault(K.fontColor,U.defaultFontColor),ae=x(K),le=ie.drawTicks?ie.tickMarkLength:0,X=u.valueOrDefault(ve.fontColor,U.defaultFontColor),Te=x(ve),Se=u.options.toPadding(ve.padding),Ce=u.toRadians(k.labelRotation),He=[],et=k.options.gridLines.lineWidth,ot="right"===L.position?k.right:k.right-et-le,st="right"===L.position?k.right+le:k.right,Rt="bottom"===L.position?k.top+et:k.bottom-le-et,en="bottom"===L.position?k.top+et+le:k.bottom+et;if(u.each(ce,function(ne,pe){if(!u.isNullOrUndef(ne.label)){var de,be,_e,Me,he=ne.label;pe===k.zeroLineIndex&&L.offset===ie.offsetGridLines?(de=ie.zeroLineWidth,be=ie.zeroLineColor,_e=ie.zeroLineBorderDash,Me=ie.zeroLineBorderDashOffset):(de=u.valueAtIndexOrDefault(ie.lineWidth,pe),be=u.valueAtIndexOrDefault(ie.color,pe),_e=u.valueOrDefault(ie.borderDash,U.borderDash),Me=u.valueOrDefault(ie.borderDashOffset,U.borderDashOffset));var De,Ee,Ne,ut,_t,rt,on,Ln,vt,jt,jn="middle",ri="middle",Gr=H.padding;if(Q){var ko=le+Gr;"bottom"===L.position?(ri=Z?"middle":"top",jn=Z?"right":"center",jt=k.top+ko):(ri=Z?"middle":"bottom",jn=Z?"left":"center",jt=k.bottom-ko);var Ei=y(k,pe,ie.offsetGridLines&&ce.length>1);Ei1);oi{"use strict";var O=N(9800),_=N(3305),u=N(2294);ue.exports=function(f){f.scaleService={constructors:{},defaults:{},registerScaleType:function(h,y,p){this.constructors[h]=y,this.defaults[h]=_.clone(p)},getScaleConstructor:function(h){return this.constructors.hasOwnProperty(h)?this.constructors[h]:void 0},getScaleDefaults:function(h){return this.defaults.hasOwnProperty(h)?_.merge({},[O.scale,this.defaults[h]]):{}},updateScaleDefaults:function(h,y){var p=this;p.defaults.hasOwnProperty(h)&&(p.defaults[h]=_.extend(p.defaults[h],y))},addScalesToLayout:function(h){_.each(h.scales,function(y){y.fullWidth=y.options.fullWidth,y.position=y.options.position,y.weight=y.options.weight,u.addBox(h,y)})}}}},8347:(ue,ge,N)=>{"use strict";var O=N(3305);ue.exports={formatters:{values:function(_){return O.isArray(_)?_:""+_},linear:function(_,u,f){var h=f.length>3?f[2]-f[1]:f[1]-f[0];Math.abs(h)>1&&_!==Math.floor(_)&&(h=_-Math.floor(_));var y=O.log10(Math.abs(h)),p="";if(0!==_){var v=-1*Math.floor(y);v=Math.max(Math.min(v,20),0),p=_.toFixed(v)}else p="0";return p},logarithmic:function(_,u,f){var h=_/Math.pow(10,Math.floor(O.log10(_)));return 0===_?"0":1===h||2===h||5===h||0===u||u===f.length-1?_.toExponential():""}}}},480:(ue,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305);O._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:u.noop,title:function(f,h){var y="",p=h.labels,v=p?p.length:0;if(f.length>0){var x=f[0];x.xLabel?y=x.xLabel:v>0&&x.indexU.height-L.height&&(ie="bottom");var ve,Z,Q,ce,G,J=(H.left+H.right)/2,ee=(H.top+H.bottom)/2;"center"===ie?(ve=function(le){return le<=J},Z=function(le){return le>J}):(ve=function(le){return le<=L.width/2},Z=function(le){return le>=U.width-L.width/2}),Q=function(le){return le+L.width+A.caretSize+A.caretPadding>U.width},ce=function(le){return le-L.width-A.caretSize-A.caretPadding<0},G=function(le){return le<=ee?"top":"bottom"},ve(A.x)?(K="left",Q(A.x)&&(K="center",ie=G(A.y))):Z(A.x)&&(K="right",ce(A.x)&&(K="center",ie=G(A.y)));var ae=k._options;return{xAlign:ae.xAlign?ae.xAlign:K,yAlign:ae.yAlign?ae.yAlign:ie}}(this,Q),Z=function S(k,L,A,U){var H=k.x,K=k.y,ve=k.caretPadding,Q=A.xAlign,ce=A.yAlign,G=k.caretSize+ve,J=k.cornerRadius+ve;return"right"===Q?H-=L.width:"center"===Q&&((H-=L.width/2)+L.width>U.width&&(H=U.width-L.width),H<0&&(H=0)),"top"===ce?K+=G:K-="bottom"===ce?L.height+G:L.height/2,"center"===ce?"left"===Q?H+=G:"right"===Q&&(H-=G):"left"===Q?H-=J:"right"===Q&&(H+=J),{x:H,y:K}}(H,Q,ve,L._chart)}else H.opacity=0;return H.xAlign=ve.xAlign,H.yAlign=ve.yAlign,H.x=Z.x,H.y=Z.y,H.width=Q.width,H.height=Q.height,H.caretX=ce.x,H.caretY=ce.y,L._model=H,k&&A.custom&&A.custom.call(L,H),L},drawCaret:function(k,L){var A=this._chart.ctx,H=this.getCaretPosition(k,L,this._view);A.lineTo(H.x1,H.y1),A.lineTo(H.x2,H.y2),A.lineTo(H.x3,H.y3)},getCaretPosition:function(k,L,A){var U,H,K,ie,ve,Z,Q=A.caretSize,ce=A.cornerRadius,G=A.xAlign,J=A.yAlign,ee=k.x,ae=k.y,le=L.width,X=L.height;if("center"===J)ve=ae+X/2,"left"===G?(H=(U=ee)-Q,K=U,ie=ve+Q,Z=ve-Q):(H=(U=ee+le)+Q,K=U,ie=ve-Q,Z=ve+Q);else if("left"===G?(U=(H=ee+ce+Q)-Q,K=H+Q):"right"===G?(U=(H=ee+le-ce-Q)-Q,K=H+Q):(U=(H=A.caretX)-Q,K=H+Q),"top"===J)ve=(ie=ae)-Q,Z=ie;else{ve=(ie=ae+X)+Q,Z=ie;var Te=K;K=U,U=Te}return{x1:U,x2:H,x3:K,y1:ie,y2:ve,y3:Z}},drawTitle:function(k,L,A,U){var H=L.title;if(H.length){A.textAlign=L._titleAlign,A.textBaseline="top";var ve,Z,K=L.titleFontSize,ie=L.titleSpacing;for(A.fillStyle=h(L.titleFontColor,U),A.font=u.fontString(K,L._titleFontStyle,L._titleFontFamily),ve=0,Z=H.length;ve0&&A.stroke()},draw:function(){var k=this._chart.ctx,L=this._view;if(0!==L.opacity){var A={width:L.width,height:L.height},U={x:L.x,y:L.y},H=Math.abs(L.opacity<.001)?0:L.opacity;this._options.enabled&&(L.title.length||L.beforeBody.length||L.body.length||L.afterBody.length||L.footer.length)&&(this.drawBackground(U,L,k,A,H),U.x+=L.xPadding,U.y+=L.yPadding,this.drawTitle(U,L,k,H),this.drawBody(U,L,k,H),this.drawFooter(U,L,k,H))}},handleEvent:function(k){var U,L=this,A=L._options;return L._lastActive=L._lastActive||[],L._active="mouseout"===k.type?[]:L._chart.getElementsAtEventForMode(k,A.mode,A),(U=!u.arrayEquals(L._active,L._lastActive))&&(L._lastActive=L._active,(A.enabled||A.custom)&&(L._eventPosition={x:k.x,y:k.y},L.update(!0),L.pivot())),U}}),f.Tooltip.positioners={average:function(k){if(!k.length)return!1;var L,A,U=0,H=0,K=0;for(L=0,A=k.length;L{"use strict";var O=N(9800),_=N(8839),u=N(3305);O._set("global",{elements:{arc:{backgroundColor:O.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),ue.exports=_.extend({inLabelRange:function(f){var h=this._view;return!!h&&Math.pow(f-h.x,2)S;)v-=2*Math.PI;for(;v=T&&v<=S&&x>=y.innerRadius&&x<=y.outerRadius}return!1},getCenterPoint:function(){var f=this._view,h=(f.startAngle+f.endAngle)/2,y=(f.innerRadius+f.outerRadius)/2;return{x:f.x+Math.cos(h)*y,y:f.y+Math.sin(h)*y}},getArea:function(){var f=this._view;return Math.PI*((f.endAngle-f.startAngle)/(2*Math.PI))*(Math.pow(f.outerRadius,2)-Math.pow(f.innerRadius,2))},tooltipPosition:function(){var f=this._view,h=f.startAngle+(f.endAngle-f.startAngle)/2,y=(f.outerRadius-f.innerRadius)/2+f.innerRadius;return{x:f.x+Math.cos(h)*y,y:f.y+Math.sin(h)*y}},draw:function(){var f=this._chart.ctx,h=this._view,y=h.startAngle,p=h.endAngle;f.beginPath(),f.arc(h.x,h.y,h.outerRadius,y,p),f.arc(h.x,h.y,h.innerRadius,p,y,!0),f.closePath(),f.strokeStyle=h.borderColor,f.lineWidth=h.borderWidth,f.fillStyle=h.backgroundColor,f.fill(),f.lineJoin="bevel",h.borderWidth&&f.stroke()}})},3819:(ue,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=O.global;O._set("global",{elements:{line:{tension:.4,backgroundColor:f.defaultColor,borderWidth:3,borderColor:f.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),ue.exports=_.extend({draw:function(){var k,L,A,U,h=this,y=h._view,p=h._chart.ctx,v=y.spanGaps,x=h._children.slice(),T=f.elements.line,S=-1;for(h._loop&&x.length&&x.push(x[0]),p.save(),p.lineCap=y.borderCapStyle||T.borderCapStyle,p.setLineDash&&p.setLineDash(y.borderDash||T.borderDash),p.lineDashOffset=y.borderDashOffset||T.borderDashOffset,p.lineJoin=y.borderJoinStyle||T.borderJoinStyle,p.lineWidth=y.borderWidth||T.borderWidth,p.strokeStyle=y.borderColor||f.defaultColor,p.beginPath(),S=-1,k=0;k{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=O.global.defaultColor;function h(p){var v=this._view;return!!v&&Math.abs(p-v.x){"use strict";var O=N(9800),_=N(8839);function u(h){return void 0!==h._view.width}function f(h){var p,v,x,T,y=h._view;if(u(h)){var S=y.width/2;p=y.x-S,v=y.x+S,x=Math.min(y.y,y.base),T=Math.max(y.y,y.base)}else{var k=y.height/2;p=Math.min(y.x,y.base),v=Math.max(y.x,y.base),x=y.y-k,T=y.y+k}return{left:p,top:x,right:v,bottom:T}}O._set("global",{elements:{rectangle:{backgroundColor:O.global.defaultColor,borderColor:O.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),ue.exports=_.extend({draw:function(){var p,v,x,T,S,k,L,h=this._chart.ctx,y=this._view,A=y.borderWidth;if(y.horizontal?(x=y.y-y.height/2,T=y.y+y.height/2,S=(v=y.x)>(p=y.base)?1:-1,k=1,L=y.borderSkipped||"left"):(p=y.x-y.width/2,v=y.x+y.width/2,S=1,k=(T=y.base)>(x=y.y)?1:-1,L=y.borderSkipped||"bottom"),A){var U=Math.min(Math.abs(p-v),Math.abs(x-T)),H=(A=A>U?U:A)/2,K=p+("left"!==L?H*S:0),ie=v+("right"!==L?-H*S:0),ve=x+("top"!==L?H*k:0),Z=T+("bottom"!==L?-H*k:0);K!==ie&&(x=ve,T=Z),ve!==Z&&(p=K,v=ie)}h.beginPath(),h.fillStyle=y.backgroundColor,h.strokeStyle=y.borderColor,h.lineWidth=A;var Q=[[p,T],[p,x],[v,x],[v,T]],G=["bottom","left","top","right"].indexOf(L,0);function J(le){return Q[(G+le)%4]}-1===G&&(G=0);var ee=J(0);h.moveTo(ee[0],ee[1]);for(var ae=1;ae<4;ae++)ee=J(ae),h.lineTo(ee[0],ee[1]);h.fill(),A&&h.stroke()},height:function(){var h=this._view;return h.base-h.y},inRange:function(h,y){var p=!1;if(this._view){var v=f(this);p=h>=v.left&&h<=v.right&&y>=v.top&&y<=v.bottom}return p},inLabelRange:function(h,y){var p=this;if(!p._view)return!1;var x=f(p);return u(p)?h>=x.left&&h<=x.right:y>=x.top&&y<=x.bottom},inXRange:function(h){var y=f(this);return h>=y.left&&h<=y.right},inYRange:function(h){var y=f(this);return h>=y.top&&h<=y.bottom},getCenterPoint:function(){var y,p,h=this._view;return u(this)?(y=h.x,p=(h.y+h.base)/2):(y=(h.x+h.base)/2,p=h.y),{x:y,y:p}},getArea:function(){var h=this._view;return h.width*Math.abs(h.y-h.base)},tooltipPosition:function(){var h=this._view;return{x:h.x,y:h.y}}})},9931:(ue,ge,N)=>{"use strict";ue.exports={},ue.exports.Arc=N(280),ue.exports.Line=N(3819),ue.exports.Point=N(4674),ue.exports.Rectangle=N(8667)},2397:(ue,ge,N)=>{"use strict";var O=N(4396),_=ue.exports={clear:function(u){u.ctx.clearRect(0,0,u.width,u.height)},roundedRect:function(u,f,h,y,p,v){if(v){var x=Math.min(v,y/2),T=Math.min(v,p/2);u.moveTo(f+x,h),u.lineTo(f+y-x,h),u.quadraticCurveTo(f+y,h,f+y,h+T),u.lineTo(f+y,h+p-T),u.quadraticCurveTo(f+y,h+p,f+y-x,h+p),u.lineTo(f+x,h+p),u.quadraticCurveTo(f,h+p,f,h+p-T),u.lineTo(f,h+T),u.quadraticCurveTo(f,h,f+x,h)}else u.rect(f,h,y,p)},drawPoint:function(u,f,h,y,p){var v,x,T,S,k,L;if(!f||"object"!=typeof f||"[object HTMLImageElement]"!==(v=f.toString())&&"[object HTMLCanvasElement]"!==v){if(!(isNaN(h)||h<=0)){switch(f){default:u.beginPath(),u.arc(y,p,h,0,2*Math.PI),u.closePath(),u.fill();break;case"triangle":u.beginPath(),k=(x=3*h/Math.sqrt(3))*Math.sqrt(3)/2,u.moveTo(y-x/2,p+k/3),u.lineTo(y+x/2,p+k/3),u.lineTo(y,p-2*k/3),u.closePath(),u.fill();break;case"rect":L=1/Math.SQRT2*h,u.beginPath(),u.fillRect(y-L,p-L,2*L,2*L),u.strokeRect(y-L,p-L,2*L,2*L);break;case"rectRounded":var A=h/Math.SQRT2,U=y-A,H=p-A,K=Math.SQRT2*h;u.beginPath(),this.roundedRect(u,U,H,K,K,h/2),u.closePath(),u.fill();break;case"rectRot":L=1/Math.SQRT2*h,u.beginPath(),u.moveTo(y-L,p),u.lineTo(y,p+L),u.lineTo(y+L,p),u.lineTo(y,p-L),u.closePath(),u.fill();break;case"cross":u.beginPath(),u.moveTo(y,p+h),u.lineTo(y,p-h),u.moveTo(y-h,p),u.lineTo(y+h,p),u.closePath();break;case"crossRot":u.beginPath(),T=Math.cos(Math.PI/4)*h,S=Math.sin(Math.PI/4)*h,u.moveTo(y-T,p-S),u.lineTo(y+T,p+S),u.moveTo(y-T,p+S),u.lineTo(y+T,p-S),u.closePath();break;case"star":u.beginPath(),u.moveTo(y,p+h),u.lineTo(y,p-h),u.moveTo(y-h,p),u.lineTo(y+h,p),T=Math.cos(Math.PI/4)*h,S=Math.sin(Math.PI/4)*h,u.moveTo(y-T,p-S),u.lineTo(y+T,p+S),u.moveTo(y-T,p+S),u.lineTo(y+T,p-S),u.closePath();break;case"line":u.beginPath(),u.moveTo(y-h,p),u.lineTo(y+h,p),u.closePath();break;case"dash":u.beginPath(),u.moveTo(y,p),u.lineTo(y+h,p),u.closePath()}u.stroke()}}else u.drawImage(f,y-f.width/2,p-f.height/2,f.width,f.height)},clipArea:function(u,f){u.save(),u.beginPath(),u.rect(f.left,f.top,f.right-f.left,f.bottom-f.top),u.clip()},unclipArea:function(u){u.restore()},lineTo:function(u,f,h,y){if(h.steppedLine)return"after"===h.steppedLine&&!y||"after"!==h.steppedLine&&y?u.lineTo(f.x,h.y):u.lineTo(h.x,f.y),void u.lineTo(h.x,h.y);h.tension?u.bezierCurveTo(y?f.controlPointPreviousX:f.controlPointNextX,y?f.controlPointPreviousY:f.controlPointNextY,y?h.controlPointNextX:h.controlPointPreviousX,y?h.controlPointNextY:h.controlPointPreviousY,h.x,h.y):u.lineTo(h.x,h.y)}};O.clear=_.clear,O.drawRoundedRectangle=function(u){u.beginPath(),_.roundedRect.apply(_,arguments),u.closePath()}},4396:ue=>{"use strict";var N,ge={noop:function(){},uid:(N=0,function(){return N++}),isNullOrUndef:function(N){return null===N||typeof N>"u"},isArray:Array.isArray?Array.isArray:function(N){return"[object Array]"===Object.prototype.toString.call(N)},isObject:function(N){return null!==N&&"[object Object]"===Object.prototype.toString.call(N)},valueOrDefault:function(N,O){return typeof N>"u"?O:N},valueAtIndexOrDefault:function(N,O,_){return ge.valueOrDefault(ge.isArray(N)?N[O]:N,_)},callback:function(N,O,_){if(N&&"function"==typeof N.call)return N.apply(_,O)},each:function(N,O,_,u){var f,h,y;if(ge.isArray(N))if(h=N.length,u)for(f=h-1;f>=0;f--)O.call(_,N[f],f);else for(f=0;f{"use strict";var O=N(4396),_={linear:function(u){return u},easeInQuad:function(u){return u*u},easeOutQuad:function(u){return-u*(u-2)},easeInOutQuad:function(u){return(u/=.5)<1?.5*u*u:-.5*(--u*(u-2)-1)},easeInCubic:function(u){return u*u*u},easeOutCubic:function(u){return(u-=1)*u*u+1},easeInOutCubic:function(u){return(u/=.5)<1?.5*u*u*u:.5*((u-=2)*u*u+2)},easeInQuart:function(u){return u*u*u*u},easeOutQuart:function(u){return-((u-=1)*u*u*u-1)},easeInOutQuart:function(u){return(u/=.5)<1?.5*u*u*u*u:-.5*((u-=2)*u*u*u-2)},easeInQuint:function(u){return u*u*u*u*u},easeOutQuint:function(u){return(u-=1)*u*u*u*u+1},easeInOutQuint:function(u){return(u/=.5)<1?.5*u*u*u*u*u:.5*((u-=2)*u*u*u*u+2)},easeInSine:function(u){return 1-Math.cos(u*(Math.PI/2))},easeOutSine:function(u){return Math.sin(u*(Math.PI/2))},easeInOutSine:function(u){return-.5*(Math.cos(Math.PI*u)-1)},easeInExpo:function(u){return 0===u?0:Math.pow(2,10*(u-1))},easeOutExpo:function(u){return 1===u?1:1-Math.pow(2,-10*u)},easeInOutExpo:function(u){return 0===u?0:1===u?1:(u/=.5)<1?.5*Math.pow(2,10*(u-1)):.5*(2-Math.pow(2,-10*--u))},easeInCirc:function(u){return u>=1?u:-(Math.sqrt(1-u*u)-1)},easeOutCirc:function(u){return Math.sqrt(1-(u-=1)*u)},easeInOutCirc:function(u){return(u/=.5)<1?-.5*(Math.sqrt(1-u*u)-1):.5*(Math.sqrt(1-(u-=2)*u)+1)},easeInElastic:function(u){var f=1.70158,h=0,y=1;return 0===u?0:1===u?1:(h||(h=.3),y<1?(y=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/y),-y*Math.pow(2,10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h))},easeOutElastic:function(u){var f=1.70158,h=0,y=1;return 0===u?0:1===u?1:(h||(h=.3),y<1?(y=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/y),y*Math.pow(2,-10*u)*Math.sin((u-f)*(2*Math.PI)/h)+1)},easeInOutElastic:function(u){var f=1.70158,h=0,y=1;return 0===u?0:2==(u/=.5)?1:(h||(h=.45),y<1?(y=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/y),u<1?y*Math.pow(2,10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h)*-.5:y*Math.pow(2,-10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h)*.5+1)},easeInBack:function(u){var f=1.70158;return u*u*((f+1)*u-f)},easeOutBack:function(u){var f=1.70158;return(u-=1)*u*((f+1)*u+f)+1},easeInOutBack:function(u){var f=1.70158;return(u/=.5)<1?u*u*((1+(f*=1.525))*u-f)*.5:.5*((u-=2)*u*((1+(f*=1.525))*u+f)+2)},easeInBounce:function(u){return 1-_.easeOutBounce(1-u)},easeOutBounce:function(u){return u<1/2.75?7.5625*u*u:u<2/2.75?7.5625*(u-=1.5/2.75)*u+.75:u<2.5/2.75?7.5625*(u-=2.25/2.75)*u+.9375:7.5625*(u-=2.625/2.75)*u+.984375},easeInOutBounce:function(u){return u<.5?.5*_.easeInBounce(2*u):.5*_.easeOutBounce(2*u-1)+.5}};ue.exports={effects:_},O.easingEffects=_},5347:(ue,ge,N)=>{"use strict";var O=N(4396);ue.exports={toLineHeight:function(_,u){var f=(""+_).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!f||"normal"===f[1])return 1.2*u;switch(_=+f[2],f[3]){case"px":return _;case"%":_/=100}return u*_},toPadding:function(_){var u,f,h,y;return O.isObject(_)?(u=+_.top||0,f=+_.right||0,h=+_.bottom||0,y=+_.left||0):u=f=h=y=+_||0,{top:u,right:f,bottom:h,left:y,height:u+h,width:y+f}},resolve:function(_,u,f){var h,y,p;for(h=0,y=_.length;h{"use strict";ue.exports=N(4396),ue.exports.easing=N(4317),ue.exports.canvas=N(2397),ue.exports.options=N(5347)},1607:ue=>{ue.exports={acquireContext:function(ge){return ge&&ge.canvas&&(ge=ge.canvas),ge&&ge.getContext("2d")||null}}},8005:(ue,ge,N)=>{"use strict";var O=N(3305),_="$chartjs",u="chartjs-",f=u+"render-monitor",h=u+"render-animation",y=["animationstart","webkitAnimationStart"],p={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function v(G,J){var ee=O.getStyle(G,J),ae=ee&&ee.match(/^(\d+)(\.\d+)?px$/);return ae?Number(ae[1]):void 0}var S=!!function(){var G=!1;try{var J=Object.defineProperty({},"passive",{get:function(){G=!0}});window.addEventListener("e",null,J)}catch{}return G}()&&{passive:!0};function k(G,J,ee){G.addEventListener(J,ee,S)}function L(G,J,ee){G.removeEventListener(J,ee,S)}function A(G,J,ee,ae,le){return{type:G,chart:J,native:le||null,x:void 0!==ee?ee:null,y:void 0!==ae?ae:null}}ue.exports={_enabled:typeof window<"u"&&typeof document<"u",initialize:function(){var G="from{opacity:0.99}to{opacity:1}";!function ce(G,J){var ee=G._style||document.createElement("style");G._style||(G._style=ee,J="/* Chart.js */\n"+J,ee.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(ee)),ee.appendChild(document.createTextNode(J))}(this,"@-webkit-keyframes "+h+"{"+G+"}@keyframes "+h+"{"+G+"}."+f+"{-webkit-animation:"+h+" 0.001s;animation:"+h+" 0.001s;}")},acquireContext:function(G,J){"string"==typeof G?G=document.getElementById(G):G.length&&(G=G[0]),G&&G.canvas&&(G=G.canvas);var ee=G&&G.getContext&&G.getContext("2d");return ee&&ee.canvas===G?(function x(G,J){var ee=G.style,ae=G.getAttribute("height"),le=G.getAttribute("width");if(G[_]={initial:{height:ae,width:le,style:{display:ee.display,height:ee.height,width:ee.width}}},ee.display=ee.display||"block",null===le||""===le){var X=v(G,"width");void 0!==X&&(G.width=X)}if(null===ae||""===ae)if(""===G.style.height)G.height=G.width/(J.options.aspectRatio||2);else{var Te=v(G,"height");void 0!==X&&(G.height=Te)}}(G,J),ee):null},releaseContext:function(G){var J=G.canvas;if(J[_]){var ee=J[_].initial;["height","width"].forEach(function(ae){var le=ee[ae];O.isNullOrUndef(le)?J.removeAttribute(ae):J.setAttribute(ae,le)}),O.each(ee.style||{},function(ae,le){J.style[le]=ae}),J.width=J.width,delete J[_]}},addEventListener:function(G,J,ee){var ae=G.canvas;if("resize"!==J){var le=ee[_]||(ee[_]={}),Te=(le.proxies||(le.proxies={}))[G.id+"_"+J]=function(Se){ee(function U(G,J){var ee=p[G.type]||G.type,ae=O.getRelativePosition(G,J);return A(ee,J,ae.x,ae.y,G)}(Se,G))};k(ae,J,Te)}else!function Z(G,J,ee){var ae=G[_]||(G[_]={}),le=ae.resizer=function K(G){var J=document.createElement("div"),ee=u+"size-monitor",ae=1e6,le="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";J.style.cssText=le,J.className=ee,J.innerHTML='
';var X=J.childNodes[0],Te=J.childNodes[1];J._reset=function(){X.scrollLeft=ae,X.scrollTop=ae,Te.scrollLeft=ae,Te.scrollTop=ae};var Se=function(){J._reset(),G()};return k(X,"scroll",Se.bind(X,"expand")),k(Te,"scroll",Se.bind(Te,"shrink")),J}(function H(G,J){var ee=!1,ae=[];return function(){ae=Array.prototype.slice.call(arguments),J=J||this,ee||(ee=!0,O.requestAnimFrame.call(window,function(){ee=!1,G.apply(J,ae)}))}}(function(){if(ae.resizer)return J(A("resize",ee))}));!function ie(G,J){var ee=G[_]||(G[_]={}),ae=ee.renderProxy=function(le){le.animationName===h&&J()};O.each(y,function(le){k(G,le,ae)}),ee.reflow=!!G.offsetParent,G.classList.add(f)}(G,function(){if(ae.resizer){var X=G.parentNode;X&&X!==le.parentNode&&X.insertBefore(le,X.firstChild),le._reset()}})}(ae,ee,G)},removeEventListener:function(G,J,ee){var ae=G.canvas;if("resize"!==J){var Te=((ee[_]||{}).proxies||{})[G.id+"_"+J];!Te||L(ae,J,Te)}else!function Q(G){var J=G[_]||{},ee=J.resizer;delete J.resizer,function ve(G){var J=G[_]||{},ee=J.renderProxy;ee&&(O.each(y,function(ae){L(G,ae,ee)}),delete J.renderProxy),G.classList.remove(f)}(G),ee&&ee.parentNode&&ee.parentNode.removeChild(ee)}(ae)}},O.addEvent=k,O.removeEvent=L},8244:(ue,ge,N)=>{"use strict";var O=N(3305),_=N(1607),u=N(8005);ue.exports=O.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},u._enabled?u:_)},6747:(ue,ge,N)=>{"use strict";ue.exports={},ue.exports.filler=N(6579),ue.exports.legend=N(2230),ue.exports.title=N(7412)},6579:(ue,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("global",{plugins:{filler:{propagate:!0}}});var f={dataset:function(k){var L=k.fill,A=k.chart,U=A.getDatasetMeta(L),K=U&&A.isDatasetVisible(L)&&U.dataset._children||[],ie=K.length||0;return ie?function(ve,Z){return Z=A)&&K;switch(H){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return H;default:return!1}}function y(k){var K,L=k.el._model||{},A=k.el._scale||{},U=k.fill,H=null;if(isFinite(U))return null;if("start"===U?H=void 0===L.scaleBottom?A.bottom:L.scaleBottom:"end"===U?H=void 0===L.scaleTop?A.top:L.scaleTop:void 0!==L.scaleZero?H=L.scaleZero:A.getBasePosition?H=A.getBasePosition():A.getBasePixel&&(H=A.getBasePixel()),null!=H){if(void 0!==H.x&&void 0!==H.y)return H;if("number"==typeof H&&isFinite(H))return{x:(K=A.isHorizontal())?H:null,y:K?null:H}}return null}function p(k,L,A){var ie,H=k[L].fill,K=[L];if(!A)return H;for(;!1!==H&&-1===K.indexOf(H);){if(!isFinite(H))return H;if(!(ie=k[H]))return!1;if(ie.visible)return H;K.push(H),H=ie.fill}return!1}function v(k){var L=k.fill,A="dataset";return!1===L?null:(isFinite(L)||(A="boundary"),f[A](k))}function x(k){return k&&!k.skip}function T(k,L,A,U,H){var K;if(U&&H){for(k.moveTo(L[0].x,L[0].y),K=1;K0;--K)u.canvas.lineTo(k,A[K],A[K-1],!0)}}ue.exports={id:"filler",afterDatasetsUpdate:function(k,L){var K,ie,ve,Z,A=(k.data.datasets||[]).length,U=L.propagate,H=[];for(ie=0;ie{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=N(2294),h=u.noop;function y(x,T){return x.usePointStyle?T*Math.SQRT2:x.boxWidth}O._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(x,T){var S=T.datasetIndex,k=this.chart,L=k.getDatasetMeta(S);L.hidden=null===L.hidden?!k.data.datasets[S].hidden:null,k.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(x){var T=x.data;return u.isArray(T.datasets)?T.datasets.map(function(S,k){return{text:S.label,fillStyle:u.isArray(S.backgroundColor)?S.backgroundColor[0]:S.backgroundColor,hidden:!x.isDatasetVisible(k),lineCap:S.borderCapStyle,lineDash:S.borderDash,lineDashOffset:S.borderDashOffset,lineJoin:S.borderJoinStyle,lineWidth:S.borderWidth,strokeStyle:S.borderColor,pointStyle:S.pointStyle,datasetIndex:k}},this):[]}}},legendCallback:function(x){var T=[];T.push('
    ');for(var S=0;S'),x.data.datasets[S].label&&T.push(x.data.datasets[S].label),T.push("");return T.push("
"),T.join("")}});var p=_.extend({initialize:function(x){u.extend(this,x),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:h,update:function(x,T,S){var k=this;return k.beforeUpdate(),k.maxWidth=x,k.maxHeight=T,k.margins=S,k.beforeSetDimensions(),k.setDimensions(),k.afterSetDimensions(),k.beforeBuildLabels(),k.buildLabels(),k.afterBuildLabels(),k.beforeFit(),k.fit(),k.afterFit(),k.afterUpdate(),k.minSize},afterUpdate:h,beforeSetDimensions:h,setDimensions:function(){var x=this;x.isHorizontal()?(x.width=x.maxWidth,x.left=0,x.right=x.width):(x.height=x.maxHeight,x.top=0,x.bottom=x.height),x.paddingLeft=0,x.paddingTop=0,x.paddingRight=0,x.paddingBottom=0,x.minSize={width:0,height:0}},afterSetDimensions:h,beforeBuildLabels:h,buildLabels:function(){var x=this,T=x.options.labels||{},S=u.callback(T.generateLabels,[x.chart],x)||[];T.filter&&(S=S.filter(function(k){return T.filter(k,x.chart.data)})),x.options.reverse&&S.reverse(),x.legendItems=S},afterBuildLabels:h,beforeFit:h,fit:function(){var x=this,T=x.options,S=T.labels,k=T.display,L=x.ctx,A=O.global,U=u.valueOrDefault,H=U(S.fontSize,A.defaultFontSize),K=U(S.fontStyle,A.defaultFontStyle),ie=U(S.fontFamily,A.defaultFontFamily),ve=u.fontString(H,K,ie),Z=x.legendHitBoxes=[],Q=x.minSize,ce=x.isHorizontal();if(ce?(Q.width=x.maxWidth,Q.height=k?10:0):(Q.width=k?10:0,Q.height=x.maxHeight),k)if(L.font=ve,ce){var G=x.lineWidths=[0],J=x.legendItems.length?H+S.padding:0;L.textAlign="left",L.textBaseline="top",u.each(x.legendItems,function(Ce,He){var ot=y(S,H)+H/2+L.measureText(Ce.text).width;G[G.length-1]+ot+S.padding>=x.width&&(J+=H+S.padding,G[G.length]=x.left),Z[He]={left:0,top:0,width:ot,height:H},G[G.length-1]+=ot+S.padding}),Q.height+=J}else{var ee=S.padding,ae=x.columnWidths=[],le=S.padding,X=0,Te=0,Se=H+ee;u.each(x.legendItems,function(Ce,He){var ot=y(S,H)+H/2+L.measureText(Ce.text).width;Te+Se>Q.height&&(le+=X+S.padding,ae.push(X),X=0,Te=0),X=Math.max(X,ot),Te+=Se,Z[He]={left:0,top:0,width:ot,height:H}}),le+=X,ae.push(X),Q.width+=le}x.width=Q.width,x.height=Q.height},afterFit:h,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var x=this,T=x.options,S=T.labels,k=O.global,L=k.elements.line,A=x.width,U=x.lineWidths;if(T.display){var G,H=x.ctx,K=u.valueOrDefault,ie=K(S.fontColor,k.defaultFontColor),ve=K(S.fontSize,k.defaultFontSize),Z=K(S.fontStyle,k.defaultFontStyle),Q=K(S.fontFamily,k.defaultFontFamily),ce=u.fontString(ve,Z,Q);H.textAlign="left",H.textBaseline="middle",H.lineWidth=.5,H.strokeStyle=ie,H.fillStyle=ie,H.font=ce;var J=y(S,ve),ee=x.legendHitBoxes,X=x.isHorizontal();G=X?{x:x.left+(A-U[0])/2,y:x.top+S.padding,line:0}:{x:x.left+S.padding,y:x.top+S.padding,line:0};var Te=ve+S.padding;u.each(x.legendItems,function(Se,Ce){var He=H.measureText(Se.text).width,et=J+ve/2+He,ot=G.x,st=G.y;X?ot+et>=A&&(st=G.y+=Te,G.line++,ot=G.x=x.left+(A-U[G.line])/2):st+Te>x.bottom&&(ot=G.x=ot+x.columnWidths[G.line]+S.padding,st=G.y=x.top+S.padding,G.line++),function(Se,Ce,He){if(!(isNaN(J)||J<=0)){H.save(),H.fillStyle=K(He.fillStyle,k.defaultColor),H.lineCap=K(He.lineCap,L.borderCapStyle),H.lineDashOffset=K(He.lineDashOffset,L.borderDashOffset),H.lineJoin=K(He.lineJoin,L.borderJoinStyle),H.lineWidth=K(He.lineWidth,L.borderWidth),H.strokeStyle=K(He.strokeStyle,k.defaultColor);var et=0===K(He.lineWidth,L.borderWidth);if(H.setLineDash&&H.setLineDash(K(He.lineDash,L.borderDash)),T.labels&&T.labels.usePointStyle){var ot=ve*Math.SQRT2/2,st=ot/Math.SQRT2;u.canvas.drawPoint(H,He.pointStyle,ot,Se+st,Ce+st)}else et||H.strokeRect(Se,Ce,J,ve),H.fillRect(Se,Ce,J,ve);H.restore()}}(ot,st,Se),ee[Ce].left=ot,ee[Ce].top=st,function(Se,Ce,He,et){var ot=ve/2,st=J+ot+Se,Rt=Ce+ot;H.fillText(He.text,st,Rt),He.hidden&&(H.beginPath(),H.lineWidth=2,H.moveTo(st,Rt),H.lineTo(st+et,Rt),H.stroke())}(ot,st,Se,He),X?G.x+=et+S.padding:G.y+=Te})}},handleEvent:function(x){var T=this,S=T.options,k="mouseup"===x.type?"click":x.type,L=!1;if("mousemove"===k){if(!S.onHover)return}else{if("click"!==k)return;if(!S.onClick)return}var A=x.x,U=x.y;if(A>=T.left&&A<=T.right&&U>=T.top&&U<=T.bottom)for(var H=T.legendHitBoxes,K=0;K=ie.left&&A<=ie.left+ie.width&&U>=ie.top&&U<=ie.top+ie.height){if("click"===k){S.onClick.call(T,x.native,T.legendItems[K]),L=!0;break}if("mousemove"===k){S.onHover.call(T,x.native,T.legendItems[K]),L=!0;break}}}return L}});function v(x,T){var S=new p({ctx:x.ctx,options:T,chart:x});f.configure(x,S,T),f.addBox(x,S),x.legend=S}ue.exports={id:"legend",_element:p,beforeInit:function(x){var T=x.options.legend;T&&v(x,T)},beforeUpdate:function(x){var T=x.options.legend,S=x.legend;T?(u.mergeIf(T,O.global.legend),S?(f.configure(x,S,T),S.options=T):v(x,T)):S&&(f.removeBox(x,S),delete x.legend)},afterEvent:function(x,T){var S=x.legend;S&&S.handleEvent(T)}}},7412:(ue,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=N(2294),h=u.noop;O._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var y=_.extend({initialize:function(v){u.extend(this,v),this.legendHitBoxes=[]},beforeUpdate:h,update:function(v,x,T){var S=this;return S.beforeUpdate(),S.maxWidth=v,S.maxHeight=x,S.margins=T,S.beforeSetDimensions(),S.setDimensions(),S.afterSetDimensions(),S.beforeBuildLabels(),S.buildLabels(),S.afterBuildLabels(),S.beforeFit(),S.fit(),S.afterFit(),S.afterUpdate(),S.minSize},afterUpdate:h,beforeSetDimensions:h,setDimensions:function(){var v=this;v.isHorizontal()?(v.width=v.maxWidth,v.left=0,v.right=v.width):(v.height=v.maxHeight,v.top=0,v.bottom=v.height),v.paddingLeft=0,v.paddingTop=0,v.paddingRight=0,v.paddingBottom=0,v.minSize={width:0,height:0}},afterSetDimensions:h,beforeBuildLabels:h,buildLabels:h,afterBuildLabels:h,beforeFit:h,fit:function(){var v=this,T=v.options,S=T.display,k=(0,u.valueOrDefault)(T.fontSize,O.global.defaultFontSize),L=v.minSize,A=u.isArray(T.text)?T.text.length:1,U=u.options.toLineHeight(T.lineHeight,k),H=S?A*U+2*T.padding:0;v.isHorizontal()?(L.width=v.maxWidth,L.height=H):(L.width=H,L.height=v.maxHeight),v.width=L.width,v.height=L.height},afterFit:h,isHorizontal:function(){var v=this.options.position;return"top"===v||"bottom"===v},draw:function(){var v=this,x=v.ctx,T=u.valueOrDefault,S=v.options,k=O.global;if(S.display){var J,ee,ae,L=T(S.fontSize,k.defaultFontSize),A=T(S.fontStyle,k.defaultFontStyle),U=T(S.fontFamily,k.defaultFontFamily),H=u.fontString(L,A,U),K=u.options.toLineHeight(S.lineHeight,L),ie=K/2+S.padding,ve=0,Z=v.top,Q=v.left,ce=v.bottom,G=v.right;x.fillStyle=T(S.fontColor,k.defaultFontColor),x.font=H,v.isHorizontal()?(ee=Q+(G-Q)/2,ae=Z+ie,J=G-Q):(ee="left"===S.position?Q+ie:G-ie,ae=Z+(ce-Z)/2,J=ce-Z,ve=Math.PI*("left"===S.position?-.5:.5)),x.save(),x.translate(ee,ae),x.rotate(ve),x.textAlign="center",x.textBaseline="middle";var le=S.text;if(u.isArray(le))for(var X=0,Te=0;Te{"use strict";ue.exports=function(ge){var O=ge.Scale.extend({getLabels:function(){var _=this.chart.data;return this.options.labels||(this.isHorizontal()?_.xLabels:_.yLabels)||_.labels},determineDataLimits:function(){var f,_=this,u=_.getLabels();_.minIndex=0,_.maxIndex=u.length-1,void 0!==_.options.ticks.min&&(f=u.indexOf(_.options.ticks.min),_.minIndex=-1!==f?f:_.minIndex),void 0!==_.options.ticks.max&&(f=u.indexOf(_.options.ticks.max),_.maxIndex=-1!==f?f:_.maxIndex),_.min=u[_.minIndex],_.max=u[_.maxIndex]},buildTicks:function(){var _=this,u=_.getLabels();_.ticks=0===_.minIndex&&_.maxIndex===u.length-1?u:u.slice(_.minIndex,_.maxIndex+1)},getLabelForIndex:function(_,u){var f=this,h=f.chart.data,y=f.isHorizontal();return h.yLabels&&!y?f.getRightValue(h.datasets[u].data[_]):f.ticks[_-f.minIndex]},getPixelForValue:function(_,u){var p,f=this,h=f.options.offset,y=Math.max(f.maxIndex+1-f.minIndex-(h?0:1),1);if(null!=_&&(p=f.isHorizontal()?_.x:_.y),void 0!==p||void 0!==_&&isNaN(u)){var x=f.getLabels().indexOf(_=p||_);u=-1!==x?x:u}if(f.isHorizontal()){var T=f.width/y,S=T*(u-f.minIndex);return h&&(S+=T/2),f.left+Math.round(S)}var k=f.height/y,L=k*(u-f.minIndex);return h&&(L+=k/2),f.top+Math.round(L)},getPixelForTick:function(_){return this.getPixelForValue(this.ticks[_],_+this.minIndex,null)},getValueForPixel:function(_){var u=this,f=u.options.offset,y=Math.max(u._ticks.length-(f?0:1),1),p=u.isHorizontal(),v=(p?u.width:u.height)/y;return _-=p?u.left:u.top,f&&(_-=v/2),(_<=0?0:Math.round(_/v))+u.minIndex},getBasePixel:function(){return this.bottom}});ge.scaleService.registerScaleType("category",O,{position:"bottom"})}},1704:(ue,ge,N)=>{"use strict";var O=N(9800),_=N(3305),u=N(8347);ue.exports=function(f){var h={position:"left",ticks:{callback:u.formatters.linear}},y=f.LinearScaleBase.extend({determineDataLimits:function(){var p=this,v=p.options,x=p.chart,S=x.data.datasets,k=p.isHorizontal();function U(ie){return k?ie.xAxisID===p.id:ie.yAxisID===p.id}p.min=null,p.max=null;var H=v.stacked;if(void 0===H&&_.each(S,function(ie,ve){if(!H){var Z=x.getDatasetMeta(ve);x.isDatasetVisible(ve)&&U(Z)&&void 0!==Z.stack&&(H=!0)}}),v.stacked||H){var K={};_.each(S,function(ie,ve){var Z=x.getDatasetMeta(ve),Q=[Z.type,void 0===v.stacked&&void 0===Z.stack?ve:"",Z.stack].join(".");void 0===K[Q]&&(K[Q]={positiveValues:[],negativeValues:[]});var ce=K[Q].positiveValues,G=K[Q].negativeValues;x.isDatasetVisible(ve)&&U(Z)&&_.each(ie.data,function(J,ee){var ae=+p.getRightValue(J);isNaN(ae)||Z.data[ee].hidden||(ce[ee]=ce[ee]||0,G[ee]=G[ee]||0,v.relativePoints?ce[ee]=100:ae<0?G[ee]+=ae:ce[ee]+=ae)})}),_.each(K,function(ie){var ve=ie.positiveValues.concat(ie.negativeValues),Z=_.min(ve),Q=_.max(ve);p.min=null===p.min?Z:Math.min(p.min,Z),p.max=null===p.max?Q:Math.max(p.max,Q)})}else _.each(S,function(ie,ve){var Z=x.getDatasetMeta(ve);x.isDatasetVisible(ve)&&U(Z)&&_.each(ie.data,function(Q,ce){var G=+p.getRightValue(Q);isNaN(G)||Z.data[ce].hidden||((null===p.min||Gp.max)&&(p.max=G))})});p.min=isFinite(p.min)&&!isNaN(p.min)?p.min:0,p.max=isFinite(p.max)&&!isNaN(p.max)?p.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var p,v=this,x=v.options.ticks;if(v.isHorizontal())p=Math.min(x.maxTicksLimit?x.maxTicksLimit:11,Math.ceil(v.width/50));else{var T=_.valueOrDefault(x.fontSize,O.global.defaultFontSize);p=Math.min(x.maxTicksLimit?x.maxTicksLimit:11,Math.ceil(v.height/(2*T)))}return p},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(p,v){return+this.getRightValue(this.chart.data.datasets[v].data[p])},getPixelForValue:function(p){var v=this,x=v.start,T=+v.getRightValue(p),k=v.end-x;return v.isHorizontal()?v.left+v.width/k*(T-x):v.bottom-v.height/k*(T-x)},getValueForPixel:function(p){var v=this,x=v.isHorizontal();return v.start+(x?p-v.left:v.bottom-p)/(x?v.width:v.height)*(v.end-v.start)},getPixelForTick:function(p){return this.getPixelForValue(this.ticksAsNumbers[p])}});f.scaleService.registerScaleType("linear",y,h)}},8351:(ue,ge,N)=>{"use strict";var O=N(3305);ue.exports=function(u){var f=O.noop;u.LinearScaleBase=u.Scale.extend({getRightValue:function(h){return"string"==typeof h?+h:u.Scale.prototype.getRightValue.call(this,h)},handleTickRangeOptions:function(){var h=this,p=h.options.ticks;if(p.beginAtZero){var v=O.sign(h.min),x=O.sign(h.max);v<0&&x<0?h.max=0:v>0&&x>0&&(h.min=0)}var T=void 0!==p.min||void 0!==p.suggestedMin,S=void 0!==p.max||void 0!==p.suggestedMax;void 0!==p.min?h.min=p.min:void 0!==p.suggestedMin&&(h.min=null===h.min?p.suggestedMin:Math.min(h.min,p.suggestedMin)),void 0!==p.max?h.max=p.max:void 0!==p.suggestedMax&&(h.max=null===h.max?p.suggestedMax:Math.max(h.max,p.suggestedMax)),T!==S&&h.min>=h.max&&(T?h.max=h.min+1:h.min=h.max-1),h.min===h.max&&(h.max++,p.beginAtZero||h.min--)},getTickLimit:f,handleDirectionalChanges:f,buildTicks:function(){var h=this,p=h.options.ticks,v=h.getTickLimit(),x={maxTicks:v=Math.max(2,v),min:p.min,max:p.max,stepSize:O.valueOrDefault(p.fixedStepSize,p.stepSize)},T=h.ticks=function _(u,f){var y,h=[];if(u.stepSize&&u.stepSize>0)y=u.stepSize;else{var p=O.niceNum(f.max-f.min,!1);y=O.niceNum(p/(u.maxTicks-1),!0)}var v=Math.floor(f.min/y)*y,x=Math.ceil(f.max/y)*y;u.min&&u.max&&u.stepSize&&O.almostWhole((u.max-u.min)/u.stepSize,y/1e3)&&(v=u.min,x=u.max);var T=(x-v)/y;T=O.almostEquals(T,Math.round(T),y/1e3)?Math.round(T):Math.ceil(T);var S=1;y<1&&(S=Math.pow(10,y.toString().length-2),v=Math.round(v*S)/S,x=Math.round(x*S)/S),h.push(void 0!==u.min?u.min:v);for(var k=1;k{"use strict";var O=N(3305),_=N(8347);ue.exports=function(f){var h={position:"left",ticks:{callback:_.formatters.logarithmic}},y=f.Scale.extend({determineDataLimits:function(){var p=this,v=p.options,x=p.chart,S=x.data.datasets,k=p.isHorizontal();function L(H){return k?H.xAxisID===p.id:H.yAxisID===p.id}p.min=null,p.max=null,p.minNotZero=null;var A=v.stacked;if(void 0===A&&O.each(S,function(H,K){if(!A){var ie=x.getDatasetMeta(K);x.isDatasetVisible(K)&&L(ie)&&void 0!==ie.stack&&(A=!0)}}),v.stacked||A){var U={};O.each(S,function(H,K){var ie=x.getDatasetMeta(K),ve=[ie.type,void 0===v.stacked&&void 0===ie.stack?K:"",ie.stack].join(".");x.isDatasetVisible(K)&&L(ie)&&(void 0===U[ve]&&(U[ve]=[]),O.each(H.data,function(Z,Q){var ce=U[ve],G=+p.getRightValue(Z);isNaN(G)||ie.data[Q].hidden||G<0||(ce[Q]=ce[Q]||0,ce[Q]+=G)}))}),O.each(U,function(H){if(H.length>0){var K=O.min(H),ie=O.max(H);p.min=null===p.min?K:Math.min(p.min,K),p.max=null===p.max?ie:Math.max(p.max,ie)}})}else O.each(S,function(H,K){var ie=x.getDatasetMeta(K);x.isDatasetVisible(K)&&L(ie)&&O.each(H.data,function(ve,Z){var Q=+p.getRightValue(ve);isNaN(Q)||ie.data[Z].hidden||Q<0||((null===p.min||Qp.max)&&(p.max=Q),0!==Q&&(null===p.minNotZero||Q0?p.min:p.max<1?Math.pow(10,Math.floor(O.log10(p.max))):1)},buildTicks:function(){var p=this,x=p.options.ticks,T=!p.isHorizontal(),k=p.ticks=function u(f,h){var S,k,y=[],p=O.valueOrDefault,v=p(f.min,Math.pow(10,Math.floor(O.log10(h.min)))),x=Math.floor(O.log10(h.max)),T=Math.ceil(h.max/Math.pow(10,x));0===v?(S=Math.floor(O.log10(h.minNotZero)),k=Math.floor(h.minNotZero/Math.pow(10,S)),y.push(v),v=k*Math.pow(10,S)):(S=Math.floor(O.log10(v)),k=Math.floor(v/Math.pow(10,S)));var L=S<0?Math.pow(10,Math.abs(S)):1;do{y.push(v),10==++k&&(k=1,L=++S>=0?1:L),v=Math.round(k*Math.pow(10,S)*L)/L}while(S{"use strict";var O=N(9800),_=N(3305),u=N(8347);ue.exports=function(f){var h=O.global,y={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:u.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(Z){return Z}}};function p(Z){var Q=Z.options;return Q.angleLines.display||Q.pointLabels.display?Z.chart.data.labels.length:0}function v(Z){var Q=Z.options.pointLabels,ce=_.valueOrDefault(Q.fontSize,h.defaultFontSize),G=_.valueOrDefault(Q.fontStyle,h.defaultFontStyle),J=_.valueOrDefault(Q.fontFamily,h.defaultFontFamily);return{size:ce,style:G,family:J,font:_.fontString(ce,G,J)}}function x(Z,Q,ce){return _.isArray(ce)?{w:_.longestText(Z,Z.font,ce),h:ce.length*Q+1.5*(ce.length-1)*Q}:{w:Z.measureText(ce).width,h:Q}}function T(Z,Q,ce,G,J){return Z===G||Z===J?{start:Q-ce/2,end:Q+ce/2}:ZJ?{start:Q-ce-5,end:Q}:{start:Q,end:Q+ce+5}}function L(Z){return 0===Z||180===Z?"center":Z<180?"left":"right"}function A(Z,Q,ce,G){if(_.isArray(Q))for(var J=ce.y,ee=1.5*G,ae=0;ae270||Z<90)&&(ce.y-=Q.h)}function ie(Z){return _.isNumber(Z)?Z:0}var ve=f.LinearScaleBase.extend({setDimensions:function(){var Z=this,Q=Z.options,ce=Q.ticks;Z.width=Z.maxWidth,Z.height=Z.maxHeight,Z.xCenter=Math.round(Z.width/2),Z.yCenter=Math.round(Z.height/2);var G=_.min([Z.height,Z.width]),J=_.valueOrDefault(ce.fontSize,h.defaultFontSize);Z.drawingArea=Q.display?G/2-(J/2+ce.backdropPaddingY):G/2},determineDataLimits:function(){var Z=this,Q=Z.chart,ce=Number.POSITIVE_INFINITY,G=Number.NEGATIVE_INFINITY;_.each(Q.data.datasets,function(J,ee){if(Q.isDatasetVisible(ee)){var ae=Q.getDatasetMeta(ee);_.each(J.data,function(le,X){var Te=+Z.getRightValue(le);isNaN(Te)||ae.data[X].hidden||(ce=Math.min(Te,ce),G=Math.max(Te,G))})}}),Z.min=ce===Number.POSITIVE_INFINITY?0:ce,Z.max=G===Number.NEGATIVE_INFINITY?0:G,Z.handleTickRangeOptions()},getTickLimit:function(){var Z=this.options.ticks,Q=_.valueOrDefault(Z.fontSize,h.defaultFontSize);return Math.min(Z.maxTicksLimit?Z.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*Q)))},convertTicksToLabels:function(){var Z=this;f.LinearScaleBase.prototype.convertTicksToLabels.call(Z),Z.pointLabels=Z.chart.data.labels.map(Z.options.pointLabels.callback,Z)},getLabelForIndex:function(Z,Q){return+this.getRightValue(this.chart.data.datasets[Q].data[Z])},fit:function(){this.options.pointLabels.display?function S(Z){var ee,ae,le,Q=v(Z),ce=Math.min(Z.height/2,Z.width/2),G={r:Z.width,l:0,t:Z.height,b:0},J={};Z.ctx.font=Q.font,Z._pointLabelSizes=[];var X=p(Z);for(ee=0;eeG.r&&(G.r=Ce.end,J.r=Te),He.startG.b&&(G.b=He.end,J.b=Te)}Z.setReductions(ce,G,J)}(this):function k(Z){var Q=Math.min(Z.height/2,Z.width/2);Z.drawingArea=Math.round(Q),Z.setCenterPoint(0,0,0,0)}(this)},setReductions:function(Z,Q,ce){var G=this,J=Q.l/Math.sin(ce.l),ee=Math.max(Q.r-G.width,0)/Math.sin(ce.r),ae=-Q.t/Math.cos(ce.t),le=-Math.max(Q.b-G.height,0)/Math.cos(ce.b);J=ie(J),ee=ie(ee),ae=ie(ae),le=ie(le),G.drawingArea=Math.min(Math.round(Z-(J+ee)/2),Math.round(Z-(ae+le)/2)),G.setCenterPoint(J,ee,ae,le)},setCenterPoint:function(Z,Q,ce,G){var J=this,le=ce+J.drawingArea,X=J.height-G-J.drawingArea;J.xCenter=Math.round((Z+J.drawingArea+(J.width-Q-J.drawingArea))/2+J.left),J.yCenter=Math.round((le+X)/2+J.top)},getIndexAngle:function(Z){return Z*(2*Math.PI/p(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(Z){var Q=this;if(null===Z)return 0;var ce=Q.drawingArea/(Q.max-Q.min);return Q.options.ticks.reverse?(Q.max-Z)*ce:(Z-Q.min)*ce},getPointPosition:function(Z,Q){var G=this.getIndexAngle(Z)-Math.PI/2;return{x:Math.round(Math.cos(G)*Q)+this.xCenter,y:Math.round(Math.sin(G)*Q)+this.yCenter}},getPointPositionForValue:function(Z,Q){return this.getPointPosition(Z,this.getDistanceFromCenterForValue(Q))},getBasePosition:function(){var Z=this,Q=Z.min,ce=Z.max;return Z.getPointPositionForValue(0,Z.beginAtZero?0:Q<0&&ce<0?ce:Q>0&&ce>0?Q:0)},draw:function(){var Z=this,Q=Z.options,ce=Q.gridLines,G=Q.ticks,J=_.valueOrDefault;if(Q.display){var ee=Z.ctx,ae=this.getIndexAngle(0),le=J(G.fontSize,h.defaultFontSize),X=J(G.fontStyle,h.defaultFontStyle),Te=J(G.fontFamily,h.defaultFontFamily),Se=_.fontString(le,X,Te);_.each(Z.ticks,function(Ce,He){if(He>0||G.reverse){var et=Z.getDistanceFromCenterForValue(Z.ticksAsNumbers[He]);if(ce.display&&0!==He&&function K(Z,Q,ce,G){var J=Z.ctx;if(J.strokeStyle=_.valueAtIndexOrDefault(Q.color,G-1),J.lineWidth=_.valueAtIndexOrDefault(Q.lineWidth,G-1),Z.options.gridLines.circular)J.beginPath(),J.arc(Z.xCenter,Z.yCenter,ce,0,2*Math.PI),J.closePath(),J.stroke();else{var ee=p(Z);if(0===ee)return;J.beginPath();var ae=Z.getPointPosition(0,ce);J.moveTo(ae.x,ae.y);for(var le=1;le=0;le--){if(G.display){var X=Z.getPointPosition(le,ee);Q.beginPath(),Q.moveTo(Z.xCenter,Z.yCenter),Q.lineTo(X.x,X.y),Q.stroke(),Q.closePath()}if(J.display){var Te=Z.getPointPosition(le,ee+5),Se=_.valueAtIndexOrDefault(J.fontColor,le,h.defaultFontColor);Q.font=ae.font,Q.fillStyle=Se;var Ce=Z.getIndexAngle(le),He=_.toDegrees(Ce);Q.textAlign=L(He),U(He,Z._pointLabelSizes[le],Te),A(Q,Z.pointLabels[le]||"",Te,ae.size)}}}(Z)}}});f.scaleService.registerScaleType("radialLinear",ve,y)}},4215:(ue,ge,N)=>{"use strict";var O=N(5439);O="function"==typeof O?O:window.moment;var _=N(9800),u=N(3305),f=Number.MIN_SAFE_INTEGER||-9007199254740991,h=Number.MAX_SAFE_INTEGER||9007199254740991,y={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},p=Object.keys(y);function v(G,J){return G-J}function x(G){var ae,le,X,J={},ee=[];for(ae=0,le=G.length;ae=0&&ae<=le;){if(Se=G[X=ae+le>>1],!(Te=G[X-1]||null))return{lo:null,hi:Se};if(Se[J]ee))return{lo:Te,hi:Se};le=X-1}}return{lo:Se,hi:null}}(G,J,ee),X=le.lo?le.hi?le.lo:G[G.length-2]:G[0],Te=le.lo?le.hi?le.hi:G[G.length-1]:G[1],Se=Te[J]-X[J];return X[ae]+(Te[ae]-X[ae])*(Se?(ee-X[J])/Se:0)}function L(G,J){var ee=J.parser,ae=J.parser||J.format;return"function"==typeof ee?ee(G):"string"==typeof G&&"string"==typeof ae?O(G,ae):(G instanceof O||(G=O(G)),G.isValid()?G:"function"==typeof ae?ae(G):G)}function A(G,J){if(u.isNullOrUndef(G))return null;var ee=J.options.time,ae=L(J.getRightValue(G),ee);return ae.isValid()?(ee.round&&ae.startOf(ee.round),ae.valueOf()):null}function ie(G){for(var J=p.indexOf(G)+1,ee=p.length;J=le&&st<=X&&He.push(st);return ae.min=le,ae.max=X,ae._unit=Se.unit||function K(G,J,ee,ae){var Te,Se,le=O.duration(O(ae).diff(O(ee)));for(Te=p.length-1;Te>=p.indexOf(J);Te--)if(y[Se=p[Te]].common&&le.as(Se)>=G.length)return Se;return p[J?p.indexOf(J):0]}(He,Se.minUnit,ae.min,ae.max),ae._majorUnit=ie(ae._unit),ae._table=function T(G,J,ee,ae){if("linear"===ae||!G.length)return[{time:J,pos:0},{time:ee,pos:1}];var Te,Se,Ce,He,et,le=[],X=[J];for(Te=0,Se=G.length;TeJ&&He1?J[1]:ae,"pos")-k(G,"time",Ce,"pos"))/2),le.time.max||(Ce=J.length>1?J[J.length-2]:ee,Te=(k(G,"time",J[J.length-1],"pos")-k(G,"time",Ce,"pos"))/2)),{left:X,right:Te}}(ae._table,He,le,X,Te),ae._labelFormat=function ce(G,J){var ee,ae,le,X=G.length;for(ee=0;ee=0&&ae0?He:1}});G.scaleService.registerScaleType("time",ee,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},3207:(ue,ge,N)=>{var O=N(9914);function _(Q){if(Q){var le=[0,0,0],X=1,Te=Q.match(/^#([a-fA-F0-9]{3})$/i);if(Te){Te=Te[1];for(var Se=0;Se{var O=N(7227),_=N(3207),u=function(f){return f instanceof u?f:this instanceof u?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof f?(h=_.getRgba(f))?this.setValues("rgb",h):(h=_.getHsla(f))?this.setValues("hsl",h):(h=_.getHwb(f))&&this.setValues("hwb",h):"object"==typeof f&&(void 0!==(h=f).r||void 0!==h.red?this.setValues("rgb",h):void 0!==h.l||void 0!==h.lightness?this.setValues("hsl",h):void 0!==h.v||void 0!==h.value?this.setValues("hsv",h):void 0!==h.w||void 0!==h.whiteness?this.setValues("hwb",h):(void 0!==h.c||void 0!==h.cyan)&&this.setValues("cmyk",h)))):new u(f);var h};u.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var f=this.values;return 1!==f.alpha?f.hwb.concat([f.alpha]):f.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var f=this.values;return f.rgb.concat([f.alpha])},hslaArray:function(){var f=this.values;return f.hsl.concat([f.alpha])},alpha:function(f){return void 0===f?this.values.alpha:(this.setValues("alpha",f),this)},red:function(f){return this.setChannel("rgb",0,f)},green:function(f){return this.setChannel("rgb",1,f)},blue:function(f){return this.setChannel("rgb",2,f)},hue:function(f){return f&&(f=(f%=360)<0?360+f:f),this.setChannel("hsl",0,f)},saturation:function(f){return this.setChannel("hsl",1,f)},lightness:function(f){return this.setChannel("hsl",2,f)},saturationv:function(f){return this.setChannel("hsv",1,f)},whiteness:function(f){return this.setChannel("hwb",1,f)},blackness:function(f){return this.setChannel("hwb",2,f)},value:function(f){return this.setChannel("hsv",2,f)},cyan:function(f){return this.setChannel("cmyk",0,f)},magenta:function(f){return this.setChannel("cmyk",1,f)},yellow:function(f){return this.setChannel("cmyk",2,f)},black:function(f){return this.setChannel("cmyk",3,f)},hexString:function(){return _.hexString(this.values.rgb)},rgbString:function(){return _.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return _.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return _.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return _.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return _.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return _.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return _.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var f=this.values.rgb;return f[0]<<16|f[1]<<8|f[2]},luminosity:function(){for(var f=this.values.rgb,h=[],y=0;yy?(h+.05)/(y+.05):(y+.05)/(h+.05)},level:function(f){var h=this.contrast(f);return h>=7.1?"AAA":h>=4.5?"AA":""},dark:function(){var f=this.values.rgb;return(299*f[0]+587*f[1]+114*f[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var f=[],h=0;h<3;h++)f[h]=255-this.values.rgb[h];return this.setValues("rgb",f),this},lighten:function(f){var h=this.values.hsl;return h[2]+=h[2]*f,this.setValues("hsl",h),this},darken:function(f){var h=this.values.hsl;return h[2]-=h[2]*f,this.setValues("hsl",h),this},saturate:function(f){var h=this.values.hsl;return h[1]+=h[1]*f,this.setValues("hsl",h),this},desaturate:function(f){var h=this.values.hsl;return h[1]-=h[1]*f,this.setValues("hsl",h),this},whiten:function(f){var h=this.values.hwb;return h[1]+=h[1]*f,this.setValues("hwb",h),this},blacken:function(f){var h=this.values.hwb;return h[2]+=h[2]*f,this.setValues("hwb",h),this},greyscale:function(){var f=this.values.rgb,h=.3*f[0]+.59*f[1]+.11*f[2];return this.setValues("rgb",[h,h,h]),this},clearer:function(f){var h=this.values.alpha;return this.setValues("alpha",h-h*f),this},opaquer:function(f){var h=this.values.alpha;return this.setValues("alpha",h+h*f),this},rotate:function(f){var h=this.values.hsl,y=(h[0]+f)%360;return h[0]=y<0?360+y:y,this.setValues("hsl",h),this},mix:function(f,h){var y=this,p=f,v=void 0===h?.5:h,x=2*v-1,T=y.alpha()-p.alpha(),S=((x*T==-1?x:(x+T)/(1+x*T))+1)/2,k=1-S;return this.rgb(S*y.red()+k*p.red(),S*y.green()+k*p.green(),S*y.blue()+k*p.blue()).alpha(y.alpha()*v+p.alpha()*(1-v))},toJSON:function(){return this.rgb()},clone:function(){var p,v,f=new u,h=this.values,y=f.values;for(var x in h)h.hasOwnProperty(x)&&("[object Array]"===(v={}.toString.call(p=h[x]))?y[x]=p.slice(0):"[object Number]"===v?y[x]=p:console.error("unexpected color value:",p));return f}},u.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},u.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},u.prototype.getValues=function(f){for(var h=this.values,y={},p=0;p{function ge(W){var _e,De,re=W[0]/255,ne=W[1]/255,pe=W[2]/255,he=Math.min(re,ne,pe),de=Math.max(re,ne,pe),be=de-he;return de==he?_e=0:re==de?_e=(ne-pe)/be:ne==de?_e=2+(pe-re)/be:pe==de&&(_e=4+(re-ne)/be),(_e=Math.min(60*_e,360))<0&&(_e+=360),De=(he+de)/2,[_e,100*(de==he?0:De<=.5?be/(de+he):be/(2-de-he)),100*De]}function N(W){var _e,Me,re=W[0],ne=W[1],pe=W[2],he=Math.min(re,ne,pe),de=Math.max(re,ne,pe),be=de-he;return Me=0==de?0:be/de*1e3/10,de==he?_e=0:re==de?_e=(ne-pe)/be:ne==de?_e=2+(pe-re)/be:pe==de&&(_e=4+(re-ne)/be),(_e=Math.min(60*_e,360))<0&&(_e+=360),[_e,Me,de/255*1e3/10]}function O(W){var re=W[0],ne=W[1],de=W[2];return[ge(W)[0],1/255*Math.min(re,Math.min(ne,de))*100,100*(de=1-1/255*Math.max(re,Math.max(ne,de)))]}function _(W){var _e,re=W[0]/255,ne=W[1]/255,pe=W[2]/255;return[100*((1-re-(_e=Math.min(1-re,1-ne,1-pe)))/(1-_e)||0),100*((1-ne-_e)/(1-_e)||0),100*((1-pe-_e)/(1-_e)||0),100*_e]}function u(W){return rr[JSON.stringify(W)]}function f(W){var re=W[0]/255,ne=W[1]/255,pe=W[2]/255;return[100*(.4124*(re=re>.04045?Math.pow((re+.055)/1.055,2.4):re/12.92)+.3576*(ne=ne>.04045?Math.pow((ne+.055)/1.055,2.4):ne/12.92)+.1805*(pe=pe>.04045?Math.pow((pe+.055)/1.055,2.4):pe/12.92)),100*(.2126*re+.7152*ne+.0722*pe),100*(.0193*re+.1192*ne+.9505*pe)]}function h(W){var re=f(W),ne=re[0],pe=re[1],he=re[2];return pe/=100,he/=108.883,ne=(ne/=95.047)>.008856?Math.pow(ne,1/3):7.787*ne+16/116,[116*(pe=pe>.008856?Math.pow(pe,1/3):7.787*pe+16/116)-16,500*(ne-pe),200*(pe-(he=he>.008856?Math.pow(he,1/3):7.787*he+16/116))]}function p(W){var he,de,be,_e,Me,re=W[0]/360,ne=W[1]/100,pe=W[2]/100;if(0==ne)return[Me=255*pe,Me,Me];he=2*pe-(de=pe<.5?pe*(1+ne):pe+ne-pe*ne),_e=[0,0,0];for(var De=0;De<3;De++)(be=re+1/3*-(De-1))<0&&be++,be>1&&be--,_e[De]=255*(Me=6*be<1?he+6*(de-he)*be:2*be<1?de:3*be<2?he+(de-he)*(2/3-be)*6:he);return _e}function k(W){var re=W[0]/60,ne=W[1]/100,Me=W[2]/100,pe=Math.floor(re)%6,he=re-Math.floor(re),de=255*Me*(1-ne),be=255*Me*(1-ne*he),_e=255*Me*(1-ne*(1-he));switch(Me*=255,pe){case 0:return[Me,_e,de];case 1:return[be,Me,de];case 2:return[de,Me,_e];case 3:return[de,be,Me];case 4:return[_e,de,Me];case 5:return[Me,de,be]}}function K(W){var de,be,_e,Me,re=W[0]/360,ne=W[1]/100,pe=W[2]/100,he=ne+pe;switch(he>1&&(ne/=he,pe/=he),_e=6*re-(de=Math.floor(6*re)),0!=(1&de)&&(_e=1-_e),Me=ne+_e*((be=1-pe)-ne),de){default:case 6:case 0:r=be,g=Me,b=ne;break;case 1:r=Me,g=be,b=ne;break;case 2:r=ne,g=be,b=Me;break;case 3:r=ne,g=Me,b=be;break;case 4:r=Me,g=ne,b=be;break;case 5:r=be,g=ne,b=Me}return[255*r,255*g,255*b]}function ce(W){var ne=W[1]/100,pe=W[2]/100,he=W[3]/100;return[255*(1-Math.min(1,W[0]/100*(1-he)+he)),255*(1-Math.min(1,ne*(1-he)+he)),255*(1-Math.min(1,pe*(1-he)+he))]}function le(W){var he,de,be,re=W[0]/100,ne=W[1]/100,pe=W[2]/100;return de=-.9689*re+1.8758*ne+.0415*pe,be=.0557*re+-.204*ne+1.057*pe,he=(he=3.2406*re+-1.5372*ne+-.4986*pe)>.0031308?1.055*Math.pow(he,1/2.4)-.055:he*=12.92,de=de>.0031308?1.055*Math.pow(de,1/2.4)-.055:de*=12.92,be=be>.0031308?1.055*Math.pow(be,1/2.4)-.055:be*=12.92,[255*(he=Math.min(Math.max(0,he),1)),255*(de=Math.min(Math.max(0,de),1)),255*(be=Math.min(Math.max(0,be),1))]}function X(W){var re=W[0],ne=W[1],pe=W[2];return ne/=100,pe/=108.883,re=(re/=95.047)>.008856?Math.pow(re,1/3):7.787*re+16/116,[116*(ne=ne>.008856?Math.pow(ne,1/3):7.787*ne+16/116)-16,500*(re-ne),200*(ne-(pe=pe>.008856?Math.pow(pe,1/3):7.787*pe+16/116))]}function Se(W){var he,de,be,_e,re=W[0],ne=W[1],pe=W[2];return re<=8?_e=(de=100*re/903.3)/100*7.787+16/116:(de=100*Math.pow((re+16)/116,3),_e=Math.pow(de/100,1/3)),[he=he/95.047<=.008856?he=95.047*(ne/500+_e-16/116)/7.787:95.047*Math.pow(ne/500+_e,3),de,be=be/108.883<=.008859?be=108.883*(_e-pe/200-16/116)/7.787:108.883*Math.pow(_e-pe/200,3)]}function Ce(W){var de,re=W[0],ne=W[1],pe=W[2];return(de=360*Math.atan2(pe,ne)/2/Math.PI)<0&&(de+=360),[re,Math.sqrt(ne*ne+pe*pe),de]}function He(W){return le(Se(W))}function et(W){var be,ne=W[1];return be=W[2]/360*2*Math.PI,[W[0],ne*Math.cos(be),ne*Math.sin(be)]}function Rt(W){return Li[W]}ue.exports={rgb2hsl:ge,rgb2hsv:N,rgb2hwb:O,rgb2cmyk:_,rgb2keyword:u,rgb2xyz:f,rgb2lab:h,rgb2lch:function y(W){return Ce(h(W))},hsl2rgb:p,hsl2hsv:function v(W){var ne=W[1]/100,pe=W[2]/100;return 0===pe?[0,0,0]:[W[0],2*(ne*=(pe*=2)<=1?pe:2-pe)/(pe+ne)*100,(pe+ne)/2*100]},hsl2hwb:function x(W){return O(p(W))},hsl2cmyk:function T(W){return _(p(W))},hsl2keyword:function S(W){return u(p(W))},hsv2rgb:k,hsv2hsl:function L(W){var he,de,ne=W[1]/100,pe=W[2]/100;return he=ne*pe,[W[0],100*(he=(he/=(de=(2-ne)*pe)<=1?de:2-de)||0),100*(de/=2)]},hsv2hwb:function A(W){return O(k(W))},hsv2cmyk:function U(W){return _(k(W))},hsv2keyword:function H(W){return u(k(W))},hwb2rgb:K,hwb2hsl:function ie(W){return ge(K(W))},hwb2hsv:function ve(W){return N(K(W))},hwb2cmyk:function Z(W){return _(K(W))},hwb2keyword:function Q(W){return u(K(W))},cmyk2rgb:ce,cmyk2hsl:function G(W){return ge(ce(W))},cmyk2hsv:function J(W){return N(ce(W))},cmyk2hwb:function ee(W){return O(ce(W))},cmyk2keyword:function ae(W){return u(ce(W))},keyword2rgb:Rt,keyword2hsl:function en(W){return ge(Rt(W))},keyword2hsv:function $n(W){return N(Rt(W))},keyword2hwb:function Tn(W){return O(Rt(W))},keyword2cmyk:function Yn(W){return _(Rt(W))},keyword2lab:function Ue(W){return h(Rt(W))},keyword2xyz:function Ti(W){return f(Rt(W))},xyz2rgb:le,xyz2lab:X,xyz2lch:function Te(W){return Ce(X(W))},lab2xyz:Se,lab2rgb:He,lab2lch:Ce,lch2lab:et,lch2xyz:function ot(W){return Se(et(W))},lch2rgb:function st(W){return He(et(W))}};var Li={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},rr={};for(var Ze in Li)rr[JSON.stringify(Li[Ze])]=Ze},7227:(ue,ge,N)=>{var O=N(4126),_=function(){return new p};for(var u in O){_[u+"Raw"]=function(v){return function(x){return"number"==typeof x&&(x=Array.prototype.slice.call(arguments)),O[v](x)}}(u);var f=/(\w+)2(\w+)/.exec(u),h=f[1],y=f[2];(_[h]=_[h]||{})[y]=_[u]=function(v){return function(x){"number"==typeof x&&(x=Array.prototype.slice.call(arguments));var T=O[v](x);if("string"==typeof T||void 0===T)return T;for(var S=0;S{ue.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},7088:function(ue,ge,N){!function(O){"use strict";O.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(u){return/^nm$/i.test(u)},meridiem:function(u,f,h){return u<12?h?"vm":"VM":h?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(u){return u+(1===u||8===u||u>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},2502:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ar-dz",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:4}})}(N(5439))},128:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}})}(N(5439))},4519:function(ue,ge,N){!function(O){"use strict";var _={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},u=function(v){return 0===v?0:1===v?1:2===v?2:v%100>=3&&v%100<=10?3:v%100>=11?4:5},f={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},h=function(v){return function(x,T,S,k){var L=u(x),A=f[v][u(x)];return 2===L&&(A=A[T?0:1]),A.replace(/%d/i,x)}},y=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];O.defineLocale("ar-ly",{months:y,monthsShort:y,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(v){return"\u0645"===v},meridiem:function(v,x,T){return v<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:h("s"),ss:h("s"),m:h("m"),mm:h("m"),h:h("h"),hh:h("h"),d:h("d"),dd:h("d"),M:h("M"),MM:h("M"),y:h("y"),yy:h("y")},preparse:function(v){return v.replace(/\u060c/g,",")},postformat:function(v){return v.replace(/\d/g,function(x){return _[x]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(N(5439))},5443:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:6,doy:12}})}(N(5439))},7642:function(ue,ge,N){!function(O){"use strict";var _={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},u={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};O.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(h){return"\u0645"===h},meridiem:function(h,y,p){return h<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(h){return h.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(y){return u[y]}).replace(/\u060c/g,",")},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(N(5439))},8592:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}(N(5439))},7038:function(ue,ge,N){!function(O){"use strict";var _={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},u={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},f=function(x){return 0===x?0:1===x?1:2===x?2:x%100>=3&&x%100<=10?3:x%100>=11?4:5},h={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},y=function(x){return function(T,S,k,L){var A=f(T),U=h[x][f(T)];return 2===A&&(U=U[S?0:1]),U.replace(/%d/i,T)}},p=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];O.defineLocale("ar",{months:p,monthsShort:p,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(x){return"\u0645"===x},meridiem:function(x,T,S){return x<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:y("s"),ss:y("s"),m:y("m"),mm:y("m"),h:y("h"),hh:y("h"),d:y("d"),dd:y("d"),M:y("M"),MM:y("M"),y:y("y"),yy:y("y")},preparse:function(x){return x.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(T){return u[T]}).replace(/\u060c/g,",")},postformat:function(x){return x.replace(/\d/g,function(T){return _[T]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(N(5439))},1213:function(ue,ge,N){!function(O){"use strict";var _={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};O.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"birne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(f){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(f)},meridiem:function(f,h,y){return f<4?"gec\u0259":f<12?"s\u0259h\u0259r":f<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(f){if(0===f)return f+"-\u0131nc\u0131";var h=f%10;return f+(_[h]||_[f%100-h]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},9191:function(ue,ge,N){!function(O){"use strict";function u(h,y,p){return"m"===p?y?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===p?y?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":h+" "+function _(h,y){var p=h.split("_");return y%10==1&&y%100!=11?p[0]:y%10>=2&&y%10<=4&&(y%100<10||y%100>=20)?p[1]:p[2]}({ss:y?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:y?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:y?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[p],+h)}O.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:u,mm:u,h:u,hh:u,d:"\u0434\u0437\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(h){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(h)},meridiem:function(h,y,p){return h<4?"\u043d\u043e\u0447\u044b":h<12?"\u0440\u0430\u043d\u0456\u0446\u044b":h<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(h,y){switch(y){case"M":case"d":case"DDD":case"w":case"W":return h%10!=2&&h%10!=3||h%100==12||h%100==13?h+"-\u044b":h+"-\u0456";case"D":return h+"-\u0433\u0430";default:return h}},week:{dow:1,doy:7}})}(N(5439))},322:function(ue,ge,N){!function(O){"use strict";O.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u043d\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(u){var f=u%10,h=u%100;return 0===u?u+"-\u0435\u0432":0===h?u+"-\u0435\u043d":h>10&&h<20?u+"-\u0442\u0438":1===f?u+"-\u0432\u0438":2===f?u+"-\u0440\u0438":7===f||8===f?u+"-\u043c\u0438":u+"-\u0442\u0438"},week:{dow:1,doy:7}})}(N(5439))},8042:function(ue,ge,N){!function(O){"use strict";O.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(N(5439))},9620:function(ue,ge,N){!function(O){"use strict";var _={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},u={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};O.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(h){return h.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u09b0\u09be\u09a4"===y&&h>=4||"\u09a6\u09c1\u09aa\u09c1\u09b0"===y&&h<5||"\u09ac\u09bf\u0995\u09be\u09b2"===y?h+12:h},meridiem:function(h,y,p){return h<4?"\u09b0\u09be\u09a4":h<10?"\u09b8\u0995\u09be\u09b2":h<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":h<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(N(5439))},9645:function(ue,ge,N){!function(O){"use strict";var _={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},u={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};O.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(h){return h.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===y&&h>=4||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===y&&h<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===y?h+12:h},meridiem:function(h,y,p){return h<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":h<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":h<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":h<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}})}(N(5439))},5020:function(ue,ge,N){!function(O){"use strict";function _(v,x,T){return v+" "+function h(v,x){return 2===x?function y(v){var x={m:"v",b:"v",d:"z"};return void 0===x[v.charAt(0)]?v:x[v.charAt(0)]+v.substring(1)}(v):v}({mm:"munutenn",MM:"miz",dd:"devezh"}[T],v)}function f(v){return v>9?f(v%10):v}O.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:_,h:"un eur",hh:"%d eur",d:"un devezh",dd:_,M:"ur miz",MM:_,y:"ur bloaz",yy:function u(v){switch(f(v)){case 1:case 3:case 4:case 5:case 9:return v+" bloaz";default:return v+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(v){return v+(1===v?"a\xf1":"vet")},week:{dow:1,doy:4}})}(N(5439))},4792:function(ue,ge,N){!function(O){"use strict";function _(f,h,y){var p=f+" ";switch(y){case"ss":return p+(1===f?"sekunda":2===f||3===f||4===f?"sekunde":"sekundi");case"m":return h?"jedna minuta":"jedne minute";case"mm":return p+(1===f?"minuta":2===f||3===f||4===f?"minute":"minuta");case"h":return h?"jedan sat":"jednog sata";case"hh":return p+(1===f?"sat":2===f||3===f||4===f?"sata":"sati");case"dd":return p+(1===f?"dan":"dana");case"MM":return p+(1===f?"mjesec":2===f||3===f||4===f?"mjeseca":"mjeseci");case"yy":return p+(1===f?"godina":2===f||3===f||4===f?"godine":"godina")}}O.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:_,m:_,mm:_,h:_,hh:_,d:"dan",dd:_,M:"mjesec",MM:_,y:"godinu",yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},7980:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(u,f){var h=1===u?"r":2===u?"n":3===u?"r":4===u?"t":"\xe8";return("w"===f||"W"===f)&&(h="a"),u+h},week:{dow:1,doy:4}})}(N(5439))},7322:function(ue,ge,N){!function(O){"use strict";var _="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),u="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_");function f(p){return p>1&&p<5&&1!=~~(p/10)}function h(p,v,x,T){var S=p+" ";switch(x){case"s":return v||T?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return v||T?S+(f(p)?"sekundy":"sekund"):S+"sekundami";case"m":return v?"minuta":T?"minutu":"minutou";case"mm":return v||T?S+(f(p)?"minuty":"minut"):S+"minutami";case"h":return v?"hodina":T?"hodinu":"hodinou";case"hh":return v||T?S+(f(p)?"hodiny":"hodin"):S+"hodinami";case"d":return v||T?"den":"dnem";case"dd":return v||T?S+(f(p)?"dny":"dn\xed"):S+"dny";case"M":return v||T?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return v||T?S+(f(p)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):S+"m\u011bs\xedci";case"y":return v||T?"rok":"rokem";case"yy":return v||T?S+(f(p)?"roky":"let"):S+"lety"}}O.defineLocale("cs",{months:_,monthsShort:u,monthsParse:function(p,v){var x,T=[];for(x=0;x<12;x++)T[x]=new RegExp("^"+p[x]+"$|^"+v[x]+"$","i");return T}(_,u),shortMonthsParse:function(p){var v,x=[];for(v=0;v<12;v++)x[v]=new RegExp("^"+p[v]+"$","i");return x}(u),longMonthsParse:function(p){var v,x=[];for(v=0;v<12;v++)x[v]=new RegExp("^"+p[v]+"$","i");return x}(_),weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},365:function(ue,ge,N){!function(O){"use strict";O.defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(u){return u+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(u)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(u)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}})}(N(5439))},2092:function(ue,ge,N){!function(O){"use strict";O.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(u){var h="";return u>20?h=40===u||50===u||60===u||80===u||100===u?"fed":"ain":u>0&&(h=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][u]),u+h},week:{dow:1,doy:4}})}(N(5439))},7387:function(ue,ge,N){!function(O){"use strict";O.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},9459:function(ue,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?v[y][0]:v[y][1]}O.defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:_,mm:"%d Minuten",h:_,hh:"%d Stunden",d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3694:function(ue,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?v[y][0]:v[y][1]}O.defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:_,mm:"%d Minuten",h:_,hh:"%d Stunden",d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},4307:function(ue,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?v[y][0]:v[y][1]}O.defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:_,mm:"%d Minuten",h:_,hh:"%d Stunden",d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},9659:function(ue,ge,N){!function(O){"use strict";var _=["\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9","\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9","\u0789\u07a7\u0783\u07a8\u0797\u07aa","\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa","\u0789\u07ad","\u0796\u07ab\u0782\u07b0","\u0796\u07aa\u078d\u07a6\u0787\u07a8","\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa","\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa","\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa"],u=["\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6","\u0780\u07af\u0789\u07a6","\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6","\u0784\u07aa\u078b\u07a6","\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8","\u0780\u07aa\u0786\u07aa\u0783\u07aa","\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa"];O.defineLocale("dv",{months:_,monthsShort:_,weekdays:u,weekdaysShort:u,weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(h){return"\u0789\u078a"===h},meridiem:function(h,y,p){return h<12?"\u0789\u0786":"\u0789\u078a"},calendar:{sameDay:"[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT",nextDay:"[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT",nextWeek:"dddd LT",lastDay:"[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT",lastWeek:"[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT",sameElse:"L"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",ss:"d% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:7,doy:12}})}(N(5439))},3460:function(ue,ge,N){!function(O){"use strict";O.defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(f,h){return f?"string"==typeof h&&/D/.test(h.substring(0,h.indexOf("MMMM")))?this._monthsGenitiveEl[f.month()]:this._monthsNominativeEl[f.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(f,h,y){return f>11?y?"\u03bc\u03bc":"\u039c\u039c":y?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(f){return"\u03bc"===(f+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){return 6===this.day()?"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT":"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"},sameElse:"L"},calendar:function(f,h){var y=this._calendarEl[f],p=h&&h.hours();return function _(f){return f instanceof Function||"[object Function]"===Object.prototype.toString.call(f)}(y)&&(y=y.apply(h)),y.replace("{}",p%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}})}(N(5439))},4369:function(ue,ge,N){!function(O){"use strict";O.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},530:function(ue,ge,N){!function(O){"use strict";O.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")}})}(N(5439))},9998:function(ue,ge,N){!function(O){"use strict";O.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},3391:function(ue,ge,N){!function(O){"use strict";O.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},5414:function(ue,ge,N){!function(O){"use strict";O.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")}})}(N(5439))},1248:function(ue,ge,N){!function(O){"use strict";O.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},4530:function(ue,ge,N){!function(O){"use strict";O.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(u){return"p"===u.charAt(0).toLowerCase()},meridiem:function(u,f,h){return u>11?h?"p.t.m.":"P.T.M.":h?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(N(5439))},8944:function(ue,ge,N){!function(O){"use strict";var _="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),f=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],h=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;O.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},3609:function(ue,ge,N){!function(O){"use strict";var _="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");O.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(h,y){return h?/-MMM-/.test(y)?u[h.month()]:_[h.month()]:_},monthsParseExact:!0,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"MMMM [de] D [de] YYYY",LLL:"MMMM [de] D [de] YYYY h:mm A",LLLL:"dddd, MMMM [de] D [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:6}})}(N(5439))},6866:function(ue,ge,N){!function(O){"use strict";var _="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),f=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],h=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;O.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},6725:function(ue,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],ss:[f+"sekundi",f+"sekundit"],m:["\xfche minuti","\xfcks minut"],mm:[f+" minuti",f+" minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:[f+" tunni",f+" tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:[f+" kuu",f+" kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:[f+" aasta",f+" aastat"]};return h?v[y][2]?v[y][2]:v[y][1]:p?v[y][0]:v[y][1]}O.defineLocale("et",{months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[T\xe4na,] LT",nextDay:"[Homme,] LT",nextWeek:"[J\xe4rgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:"%d p\xe4eva",M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},7931:function(ue,ge,N){!function(O){"use strict";O.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6417:function(ue,ge,N){!function(O){"use strict";var _={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},u={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};O.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(h){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(h)},meridiem:function(h,y,p){return h<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"\u062b\u0627\u0646\u06cc\u0647 d%",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/[\u06f0-\u06f9]/g,function(y){return u[y]}).replace(/\u060c/g,",")},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}})}(N(5439))},944:function(ue,ge,N){!function(O){"use strict";var _="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),u=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",_[7],_[8],_[9]];function f(p,v,x,T){var S="";switch(x){case"s":return T?"muutaman sekunnin":"muutama sekunti";case"ss":return T?"sekunnin":"sekuntia";case"m":return T?"minuutin":"minuutti";case"mm":S=T?"minuutin":"minuuttia";break;case"h":return T?"tunnin":"tunti";case"hh":S=T?"tunnin":"tuntia";break;case"d":return T?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":S=T?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return T?"kuukauden":"kuukausi";case"MM":S=T?"kuukauden":"kuukautta";break;case"y":return T?"vuoden":"vuosi";case"yy":S=T?"vuoden":"vuotta"}return function h(p,v){return p<10?v?u[p]:_[p]:p}(p,T)+" "+S}O.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:f,ss:f,m:f,mm:f,h:f,hh:f,d:f,dd:f,M:f,MM:f,y:f,yy:f},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},5867:function(ue,ge,N){!function(O){"use strict";O.defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minutt",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0i",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},6848:function(ue,ge,N){!function(O){"use strict";O.defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(u,f){switch(f){default:case"M":case"Q":case"D":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}}})}(N(5439))},7773:function(ue,ge,N){!function(O){"use strict";O.defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(u,f){switch(f){default:case"M":case"Q":case"D":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}},week:{dow:1,doy:4}})}(N(5439))},1636:function(ue,ge,N){!function(O){"use strict";O.defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(u,f){switch(f){case"D":return u+(1===u?"er":"");default:case"M":case"Q":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}},week:{dow:1,doy:4}})}(N(5439))},4940:function(ue,ge,N){!function(O){"use strict";var _="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),u="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");O.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(h,y){return h?/-MMM-/.test(y)?u[h.month()]:_[h.month()]:_},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(h){return h+(1===h||8===h||h>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},6924:function(ue,ge,N){!function(O){"use strict";O.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(v){return v+(1===v?"d":v%10==2?"na":"mh")},week:{dow:1,doy:4}})}(N(5439))},6398:function(ue,ge,N){!function(O){"use strict";O.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(u){return 0===u.indexOf("un")?"n"+u:"en "+u},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},2545:function(ue,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={s:["thodde secondanim","thodde second"],ss:[f+" secondanim",f+" second"],m:["eka mintan","ek minute"],mm:[f+" mintanim",f+" mintam"],h:["eka horan","ek hor"],hh:[f+" horanim",f+" horam"],d:["eka disan","ek dis"],dd:[f+" disanim",f+" dis"],M:["eka mhoinean","ek mhoino"],MM:[f+" mhoineanim",f+" mhoine"],y:["eka vorsan","ek voros"],yy:[f+" vorsanim",f+" vorsam"]};return h?v[y][0]:v[y][1]}O.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(f,h){return"D"===h?f+"er":f},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(f,h){return 12===f&&(f=0),"rati"===h?f<4?f:f+12:"sokalli"===h?f:"donparam"===h?f>12?f:f+12:"sanje"===h?f+12:void 0},meridiem:function(f,h,y){return f<4?"rati":f<12?"sokalli":f<16?"donparam":f<20?"sanje":"rati"}})}(N(5439))},2641:function(ue,ge,N){!function(O){"use strict";var _={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},u={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};O.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(h){return h.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0ab0\u0abe\u0aa4"===y?h<4?h:h+12:"\u0ab8\u0ab5\u0abe\u0ab0"===y?h:"\u0aac\u0aaa\u0acb\u0ab0"===y?h>=10?h:h+12:"\u0ab8\u0abe\u0a82\u0a9c"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0ab0\u0abe\u0aa4":h<10?"\u0ab8\u0ab5\u0abe\u0ab0":h<17?"\u0aac\u0aaa\u0acb\u0ab0":h<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}})}(N(5439))},7536:function(ue,ge,N){!function(O){"use strict";O.defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(u){return 2===u?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":u+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(u){return 2===u?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":u+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(u){return 2===u?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":u+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(u){return 2===u?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":u%10==0&&10!==u?u+" \u05e9\u05e0\u05d4":u+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(u){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(u)},meridiem:function(u,f,h){return u<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":u<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":u<12?h?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":u<18?h?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}})}(N(5439))},6335:function(ue,ge,N){!function(O){"use strict";var _={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};O.defineLocale("hi",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0930\u093e\u0924"===y?h<4?h:h+12:"\u0938\u0941\u092c\u0939"===y?h:"\u0926\u094b\u092a\u0939\u0930"===y?h>=10?h:h+12:"\u0936\u093e\u092e"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0930\u093e\u0924":h<10?"\u0938\u0941\u092c\u0939":h<17?"\u0926\u094b\u092a\u0939\u0930":h<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}})}(N(5439))},7458:function(ue,ge,N){!function(O){"use strict";function _(f,h,y){var p=f+" ";switch(y){case"ss":return p+(1===f?"sekunda":2===f||3===f||4===f?"sekunde":"sekundi");case"m":return h?"jedna minuta":"jedne minute";case"mm":return p+(1===f?"minuta":2===f||3===f||4===f?"minute":"minuta");case"h":return h?"jedan sat":"jednog sata";case"hh":return p+(1===f?"sat":2===f||3===f||4===f?"sata":"sati");case"dd":return p+(1===f?"dan":"dana");case"MM":return p+(1===f?"mjesec":2===f||3===f||4===f?"mjeseca":"mjeseci");case"yy":return p+(1===f?"godina":2===f||3===f||4===f?"godine":"godina")}}O.defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:_,m:_,mm:_,h:_,hh:_,d:"dan",dd:_,M:"mjesec",MM:_,y:"godinu",yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6540:function(ue,ge,N){!function(O){"use strict";var _="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function u(y,p,v,x){var T=y;switch(v){case"s":return x||p?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return T+(x||p)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(x||p?" perc":" perce");case"mm":return T+(x||p?" perc":" perce");case"h":return"egy"+(x||p?" \xf3ra":" \xf3r\xe1ja");case"hh":return T+(x||p?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(x||p?" nap":" napja");case"dd":return T+(x||p?" nap":" napja");case"M":return"egy"+(x||p?" h\xf3nap":" h\xf3napja");case"MM":return T+(x||p?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(x||p?" \xe9v":" \xe9ve");case"yy":return T+(x||p?" \xe9v":" \xe9ve")}return""}function f(y){return(y?"":"[m\xfalt] ")+"["+_[this.day()]+"] LT[-kor]"}O.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(y){return"u"===y.charAt(1).toLowerCase()},meridiem:function(y,p,v){return y<12?!0===v?"de":"DE":!0===v?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return f.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return f.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:u,ss:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},5283:function(ue,ge,N){!function(O){"use strict";O.defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(u){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(u)},meridiem:function(u){return u<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":u<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":u<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(u,f){switch(f){case"DDD":case"w":case"W":case"DDDo":return 1===u?u+"-\u056b\u0576":u+"-\u0580\u0564";default:return u}},week:{dow:1,doy:7}})}(N(5439))},8780:function(ue,ge,N){!function(O){"use strict";O.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"siang"===f?u>=11?u:u+12:"sore"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"siang":u<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},4205:function(ue,ge,N){!function(O){"use strict";function _(h){return h%100==11||h%10!=1}function u(h,y,p,v){var x=h+" ";switch(p){case"s":return y||v?"nokkrar sek\xfandur":"nokkrum sek\xfandum";case"ss":return _(h)?x+(y||v?"sek\xfandur":"sek\xfandum"):x+"sek\xfanda";case"m":return y?"m\xedn\xfata":"m\xedn\xfatu";case"mm":return _(h)?x+(y||v?"m\xedn\xfatur":"m\xedn\xfatum"):y?x+"m\xedn\xfata":x+"m\xedn\xfatu";case"hh":return _(h)?x+(y||v?"klukkustundir":"klukkustundum"):x+"klukkustund";case"d":return y?"dagur":v?"dag":"degi";case"dd":return _(h)?y?x+"dagar":x+(v?"daga":"d\xf6gum"):y?x+"dagur":x+(v?"dag":"degi");case"M":return y?"m\xe1nu\xf0ur":v?"m\xe1nu\xf0":"m\xe1nu\xf0i";case"MM":return _(h)?y?x+"m\xe1nu\xf0ir":x+(v?"m\xe1nu\xf0i":"m\xe1nu\xf0um"):y?x+"m\xe1nu\xf0ur":x+(v?"m\xe1nu\xf0":"m\xe1nu\xf0i");case"y":return y||v?"\xe1r":"\xe1ri";case"yy":return _(h)?x+(y||v?"\xe1r":"\xe1rum"):x+(y||v?"\xe1r":"\xe1ri")}}O.defineLocale("is",{months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[\xed dag kl.] LT",nextDay:"[\xe1 morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xed g\xe6r kl.] LT",lastWeek:"[s\xed\xf0asta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:u,ss:u,m:u,mm:u,h:"klukkustund",hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},4211:function(ue,ge,N){!function(O){"use strict";O.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(u){return(/^[0-9].+$/.test(u)?"tra":"in")+" "+u},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},1003:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ja",{months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(u){return"\u5348\u5f8c"===u},meridiem:function(u,f,h){return u<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:function(u){return u.week()=11?u:u+12:"sonten"===f||"ndalu"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"enjing":u<15?"siyang":u<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(N(5439))},851:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ka",{months:{standalone:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),format:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1".split("_")},monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(u){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(u)?u.replace(/\u10d8$/,"\u10e8\u10d8"):u+"\u10e8\u10d8"},past:function(u){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(u)?u.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(u)?u.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):void 0},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(u){return 0===u?u:1===u?u+"-\u10da\u10d8":u<20||u<=100&&u%20==0||u%100==0?"\u10db\u10d4-"+u:u+"-\u10d4"},week:{dow:1,doy:7}})}(N(5439))},6074:function(ue,ge,N){!function(O){"use strict";var _={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};O.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(f){return f+(_[f]||_[f%10]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},3343:function(ue,ge,N){!function(O){"use strict";var _={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},u={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};O.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(h){return"\u179b\u17d2\u1784\u17b6\u1785"===h},meridiem:function(h,y,p){return h<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(h){return h.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},week:{dow:1,doy:4}})}(N(5439))},4799:function(ue,ge,N){!function(O){"use strict";var _={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},u={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};O.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(h){return h.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===y?h<4?h:h+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===y?h:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===y?h>=10?h:h+12:"\u0cb8\u0c82\u0c9c\u0cc6"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":h<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":h<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":h<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(h){return h+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}})}(N(5439))},3549:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ko",{months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\uc77c";case"M":return u+"\uc6d4";case"w":case"W":return u+"\uc8fc";default:return u}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(u){return"\uc624\ud6c4"===u},meridiem:function(u,f,h){return u<12?"\uc624\uc804":"\uc624\ud6c4"}})}(N(5439))},3125:function(ue,ge,N){!function(O){"use strict";var _={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};O.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u0435 \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(f){return f+(_[f]||_[f%10]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},9586:function(ue,ge,N){!function(O){"use strict";function _(p,v,x,T){var S={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return v?S[x][0]:S[x][1]}function h(p){if(p=parseInt(p,10),isNaN(p))return!1;if(p<0)return!0;if(p<10)return 4<=p&&p<=7;if(p<100){var v=p%10;return h(0===v?p/10:v)}if(p<1e4){for(;p>=10;)p/=10;return h(p)}return h(p/=1e3)}O.defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function u(p){return h(p.substr(0,p.indexOf(" ")))?"a "+p:"an "+p},past:function f(p){return h(p.substr(0,p.indexOf(" ")))?"viru "+p:"virun "+p},s:"e puer Sekonnen",ss:"%d Sekonnen",m:_,mm:"%d Minutten",h:_,hh:"%d Stonnen",d:_,dd:"%d Deeg",M:_,MM:"%d M\xe9int",y:_,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},2349:function(ue,ge,N){!function(O){"use strict";O.defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(u){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===u},meridiem:function(u,f,h){return u<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(u){return"\u0e97\u0eb5\u0ec8"+u}})}(N(5439))},2400:function(ue,ge,N){!function(O){"use strict";var _={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function f(x,T,S,k){return T?y(S)[0]:k?y(S)[1]:y(S)[2]}function h(x){return x%10==0||x>10&&x<20}function y(x){return _[x].split("_")}function p(x,T,S,k){var L=x+" ";return 1===x?L+f(0,T,S[0],k):T?L+(h(x)?y(S)[1]:y(S)[0]):k?L+y(S)[1]:L+(h(x)?y(S)[1]:y(S)[2])}O.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function u(x,T,S,k){return T?"kelios sekund\u0117s":k?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:p,m:f,mm:p,h:f,hh:p,d:f,dd:p,M:f,MM:p,y:f,yy:p},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(x){return x+"-oji"},week:{dow:1,doy:4}})}(N(5439))},9991:function(ue,ge,N){!function(O){"use strict";var _={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function u(v,x,T){return T?x%10==1&&x%100!=11?v[2]:v[3]:x%10==1&&x%100!=11?v[0]:v[1]}function f(v,x,T){return v+" "+u(_[T],v,x)}function h(v,x,T){return u(_[T],v,x)}O.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function y(v,x){return x?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:f,m:h,mm:f,h,hh:f,d:h,dd:f,M:h,MM:f,y:h,yy:f},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8477:function(ue,ge,N){!function(O){"use strict";var _={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,y){var p=_.words[y];return 1===y.length?h?p[0]:p[1]:f+" "+_.correctGrammaticalCase(f,p)}};O.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:_.translate,m:_.translate,mm:_.translate,h:_.translate,hh:_.translate,d:"dan",dd:_.translate,M:"mjesec",MM:_.translate,y:"godinu",yy:_.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},5118:function(ue,ge,N){!function(O){"use strict";O.defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},5943:function(ue,ge,N){!function(O){"use strict";O.defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(u){var f=u%10,h=u%100;return 0===u?u+"-\u0435\u0432":0===h?u+"-\u0435\u043d":h>10&&h<20?u+"-\u0442\u0438":1===f?u+"-\u0432\u0438":2===f?u+"-\u0440\u0438":7===f||8===f?u+"-\u043c\u0438":u+"-\u0442\u0438"},week:{dow:1,doy:7}})}(N(5439))},3849:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ml",{months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),monthsParseExact:!0,weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),longDateFormat:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},calendar:{sameDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT",nextDay:"[\u0d28\u0d3e\u0d33\u0d46] LT",nextWeek:"dddd, LT",lastDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT",lastWeek:"[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",ss:"%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(u,f){return 12===u&&(u=0),"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"===f&&u>=4||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===f||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===f?u+12:u},meridiem:function(u,f,h){return u<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":u<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":u<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":u<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}})}(N(5439))},1977:function(ue,ge,N){!function(O){"use strict";function _(f,h,y,p){switch(y){case"s":return h?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return f+(h?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return f+(h?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return f+(h?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return f+(h?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return f+(h?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return f+(h?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return f}}O.defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(f){return"\u04ae\u0425"===f},meridiem:function(f,h,y){return f<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(f,h){switch(h){case"d":case"D":case"DDD":return f+" \u04e9\u0434\u04e9\u0440";default:return f}}})}(N(5439))},6184:function(ue,ge,N){!function(O){"use strict";var _={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function f(y,p,v,x){var T="";if(p)switch(v){case"s":T="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":T="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":T="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":T="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":T="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":T="%d \u0924\u093e\u0938";break;case"d":T="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":T="%d \u0926\u093f\u0935\u0938";break;case"M":T="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":T="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":T="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":T="%d \u0935\u0930\u094d\u0937\u0947"}else switch(v){case"s":T="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":T="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":T="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":T="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":T="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":T="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":T="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":T="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":T="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":T="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":T="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":T="%d \u0935\u0930\u094d\u0937\u093e\u0902"}return T.replace(/%d/i,y)}O.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:f,ss:f,m:f,mm:f,h:f,hh:f,d:f,dd:f,M:f,MM:f,y:f,yy:f},preparse:function(y){return y.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(p){return u[p]})},postformat:function(y){return y.replace(/\d/g,function(p){return _[p]})},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(y,p){return 12===y&&(y=0),"\u0930\u093e\u0924\u094d\u0930\u0940"===p?y<4?y:y+12:"\u0938\u0915\u093e\u0933\u0940"===p?y:"\u0926\u0941\u092a\u093e\u0930\u0940"===p?y>=10?y:y+12:"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===p?y+12:void 0},meridiem:function(y,p,v){return y<4?"\u0930\u093e\u0924\u094d\u0930\u0940":y<10?"\u0938\u0915\u093e\u0933\u0940":y<17?"\u0926\u0941\u092a\u093e\u0930\u0940":y<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}})}(N(5439))},4524:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"tengahari"===f?u>=11?u:u+12:"petang"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"tengahari":u<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},485:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"tengahari"===f?u>=11?u:u+12:"petang"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"tengahari":u<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},6681:function(ue,ge,N){!function(O){"use strict";O.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[G\u0127ada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-biera\u0127 fil-]LT",lastWeek:"dddd [li g\u0127adda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},2024:function(ue,ge,N){!function(O){"use strict";var _={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},u={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};O.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(h){return h.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},week:{dow:1,doy:4}})}(N(5439))},2688:function(ue,ge,N){!function(O){"use strict";O.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8914:function(ue,ge,N){!function(O){"use strict";var _={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};O.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0930\u093e\u0924\u093f"===y?h<4?h:h+12:"\u092c\u093f\u0939\u093e\u0928"===y?h:"\u0926\u093f\u0909\u0901\u0938\u094b"===y?h>=10?h:h+12:"\u0938\u093e\u0901\u091d"===y?h+12:void 0},meridiem:function(h,y,p){return h<3?"\u0930\u093e\u0924\u093f":h<12?"\u092c\u093f\u0939\u093e\u0928":h<16?"\u0926\u093f\u0909\u0901\u0938\u094b":h<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}})}(N(5439))},2272:function(ue,ge,N){!function(O){"use strict";var _="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),u="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),f=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],h=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;O.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(p){return p+(1===p||8===p||p>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},1758:function(ue,ge,N){!function(O){"use strict";var _="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),u="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),f=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],h=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;O.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(p){return p+(1===p||8===p||p>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},1510:function(ue,ge,N){!function(O){"use strict";O.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},7944:function(ue,ge,N){!function(O){"use strict";var _={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},u={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};O.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(h){return h.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0a30\u0a3e\u0a24"===y?h<4?h:h+12:"\u0a38\u0a35\u0a47\u0a30"===y?h:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===y?h>=10?h:h+12:"\u0a38\u0a3c\u0a3e\u0a2e"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0a30\u0a3e\u0a24":h<10?"\u0a38\u0a35\u0a47\u0a30":h<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":h<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}})}(N(5439))},1605:function(ue,ge,N){!function(O){"use strict";var _="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),u="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function f(p){return p%10<5&&p%10>1&&~~(p/10)%10!=1}function h(p,v,x){var T=p+" ";switch(x){case"ss":return T+(f(p)?"sekundy":"sekund");case"m":return v?"minuta":"minut\u0119";case"mm":return T+(f(p)?"minuty":"minut");case"h":return v?"godzina":"godzin\u0119";case"hh":return T+(f(p)?"godziny":"godzin");case"MM":return T+(f(p)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return T+(f(p)?"lata":"lat")}}O.defineLocale("pl",{months:function(p,v){return p?""===v?"("+u[p.month()]+"|"+_[p.month()]+")":/D MMMM/.test(v)?u[p.month()]:_[p.month()]:_},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:h,m:h,mm:h,h,hh:h,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:h,y:"rok",yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3840:function(ue,ge,N){!function(O){"use strict";O.defineLocale("pt-br",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"})}(N(5439))},4225:function(ue,ge,N){!function(O){"use strict";O.defineLocale("pt",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},5128:function(ue,ge,N){!function(O){"use strict";function _(f,h,y){var v=" ";return(f%100>=20||f>=100&&f%100==0)&&(v=" de "),f+v+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[y]}O.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:_,m:"un minut",mm:_,h:"o or\u0103",hh:_,d:"o zi",dd:_,M:"o lun\u0103",MM:_,y:"un an",yy:_},week:{dow:1,doy:7}})}(N(5439))},5127:function(ue,ge,N){!function(O){"use strict";function u(y,p,v){return"m"===v?p?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":y+" "+function _(y,p){var v=y.split("_");return p%10==1&&p%100!=11?v[0]:p%10>=2&&p%10<=4&&(p%100<10||p%100>=20)?v[1]:v[2]}({ss:p?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:p?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[v],+y)}var f=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];O.defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:f,longMonthsParse:f,shortMonthsParse:f,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(y){if(y.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(y){if(y.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:u,m:u,mm:u,h:"\u0447\u0430\u0441",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(y){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(y)},meridiem:function(y,p,v){return y<4?"\u043d\u043e\u0447\u0438":y<12?"\u0443\u0442\u0440\u0430":y<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(y,p){switch(p){case"M":case"d":case"DDD":return y+"-\u0439";case"D":return y+"-\u0433\u043e";case"w":case"W":return y+"-\u044f";default:return y}},week:{dow:1,doy:4}})}(N(5439))},2525:function(ue,ge,N){!function(O){"use strict";var _=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],u=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];O.defineLocale("sd",{months:_,monthsShort:_,weekdays:u,weekdaysShort:u,weekdaysMin:u,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(h){return"\u0634\u0627\u0645"===h},meridiem:function(h,y,p){return h<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(N(5439))},9893:function(ue,ge,N){!function(O){"use strict";O.defineLocale("se",{months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3123:function(ue,ge,N){!function(O){"use strict";O.defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(u){return u+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(u){return"\u0db4.\u0dc0."===u||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===u},meridiem:function(u,f,h){return u>11?h?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":h?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}})}(N(5439))},9635:function(ue,ge,N){!function(O){"use strict";var _="janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),u="jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_");function f(p){return p>1&&p<5}function h(p,v,x,T){var S=p+" ";switch(x){case"s":return v||T?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return v||T?S+(f(p)?"sekundy":"sek\xfand"):S+"sekundami";case"m":return v?"min\xfata":T?"min\xfatu":"min\xfatou";case"mm":return v||T?S+(f(p)?"min\xfaty":"min\xfat"):S+"min\xfatami";case"h":return v?"hodina":T?"hodinu":"hodinou";case"hh":return v||T?S+(f(p)?"hodiny":"hod\xedn"):S+"hodinami";case"d":return v||T?"de\u0148":"d\u0148om";case"dd":return v||T?S+(f(p)?"dni":"dn\xed"):S+"d\u0148ami";case"M":return v||T?"mesiac":"mesiacom";case"MM":return v||T?S+(f(p)?"mesiace":"mesiacov"):S+"mesiacmi";case"y":return v||T?"rok":"rokom";case"yy":return v||T?S+(f(p)?"roky":"rokov"):S+"rokmi"}}O.defineLocale("sk",{months:_,monthsShort:u,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:case 4:case 5:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8106:function(ue,ge,N){!function(O){"use strict";function _(f,h,y,p){var v=f+" ";switch(y){case"s":return h||p?"nekaj sekund":"nekaj sekundami";case"ss":return v+(1===f?h?"sekundo":"sekundi":2===f?h||p?"sekundi":"sekundah":f<5?h||p?"sekunde":"sekundah":"sekund");case"m":return h?"ena minuta":"eno minuto";case"mm":return v+(1===f?h?"minuta":"minuto":2===f?h||p?"minuti":"minutama":f<5?h||p?"minute":"minutami":h||p?"minut":"minutami");case"h":return h?"ena ura":"eno uro";case"hh":return v+(1===f?h?"ura":"uro":2===f?h||p?"uri":"urama":f<5?h||p?"ure":"urami":h||p?"ur":"urami");case"d":return h||p?"en dan":"enim dnem";case"dd":return v+(1===f?h||p?"dan":"dnem":2===f?h||p?"dni":"dnevoma":h||p?"dni":"dnevi");case"M":return h||p?"en mesec":"enim mesecem";case"MM":return v+(1===f?h||p?"mesec":"mesecem":2===f?h||p?"meseca":"mesecema":f<5?h||p?"mesece":"meseci":h||p?"mesecev":"meseci");case"y":return h||p?"eno leto":"enim letom";case"yy":return v+(1===f?h||p?"leto":"letom":2===f?h||p?"leti":"letoma":f<5?h||p?"leta":"leti":h||p?"let":"leti")}}O.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},8799:function(ue,ge,N){!function(O){"use strict";O.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(u){return"M"===u.charAt(0)},meridiem:function(u,f,h){return u<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},2872:function(ue,ge,N){!function(O){"use strict";var _={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,y){var p=_.words[y];return 1===y.length?h?p[0]:p[1]:f+" "+_.correctGrammaticalCase(f,p)}};O.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:_.translate,m:_.translate,mm:_.translate,h:_.translate,hh:_.translate,d:"\u0434\u0430\u043d",dd:_.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:_.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:_.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},7949:function(ue,ge,N){!function(O){"use strict";var _={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,y){var p=_.words[y];return 1===y.length?h?p[0]:p[1]:f+" "+_.correctGrammaticalCase(f,p)}};O.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:_.translate,m:_.translate,mm:_.translate,h:_.translate,hh:_.translate,d:"dan",dd:_.translate,M:"mesec",MM:_.translate,y:"godinu",yy:_.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6167:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(u,f,h){return u<11?"ekuseni":u<15?"emini":u<19?"entsambama":"ebusuku"},meridiemHour:function(u,f){return 12===u&&(u=0),"ekuseni"===f?u:"emini"===f?u>=11?u:u+12:"entsambama"===f||"ebusuku"===f?0===u?0:u+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(N(5439))},9713:function(ue,ge,N){!function(O){"use strict";O.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"e":1===f||2===f?"a":"e")},week:{dow:1,doy:4}})}(N(5439))},1982:function(ue,ge,N){!function(O){"use strict";O.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(N(5439))},2732:function(ue,ge,N){!function(O){"use strict";var _={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},u={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};O.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(h){return h+"\u0bb5\u0ba4\u0bc1"},preparse:function(h){return h.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(h,y,p){return h<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":h<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":h<10?" \u0b95\u0bbe\u0bb2\u0bc8":h<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":h<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":h<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(h,y){return 12===h&&(h=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===y?h<2?h:h+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===y||"\u0b95\u0bbe\u0bb2\u0bc8"===y||"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===y&&h>=10?h:h+12},week:{dow:0,doy:6}})}(N(5439))},3636:function(ue,ge,N){!function(O){"use strict";O.defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===f?u<4?u:u+12:"\u0c09\u0c26\u0c2f\u0c02"===f?u:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===f?u>=10?u:u+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===f?u+12:void 0},meridiem:function(u,f,h){return u<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":u<10?"\u0c09\u0c26\u0c2f\u0c02":u<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":u<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}})}(N(5439))},2115:function(ue,ge,N){!function(O){"use strict";O.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},9801:function(ue,ge,N){!function(O){"use strict";var _={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};O.defineLocale("tg",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(f,h){return 12===f&&(f=0),"\u0448\u0430\u0431"===h?f<4?f:f+12:"\u0441\u0443\u0431\u04b3"===h?f:"\u0440\u04ef\u0437"===h?f>=11?f:f+12:"\u0431\u0435\u0433\u043e\u04b3"===h?f+12:void 0},meridiem:function(f,h,y){return f<4?"\u0448\u0430\u0431":f<11?"\u0441\u0443\u0431\u04b3":f<16?"\u0440\u04ef\u0437":f<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(f){return f+(_[f]||_[f%10]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},2868:function(ue,ge,N){!function(O){"use strict";O.defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(u){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===u},meridiem:function(u,f,h){return u<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}})}(N(5439))},2360:function(ue,ge,N){!function(O){"use strict";O.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(u){return u},week:{dow:1,doy:4}})}(N(5439))},6645:function(ue,ge,N){!function(O){"use strict";var _="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function h(v,x,T,S){var k=function y(v){var x=Math.floor(v%1e3/100),T=Math.floor(v%100/10),S=v%10,k="";return x>0&&(k+=_[x]+"vatlh"),T>0&&(k+=(""!==k?" ":"")+_[T]+"maH"),S>0&&(k+=(""!==k?" ":"")+_[S]),""===k?"pagh":k}(v);switch(T){case"ss":return k+" lup";case"mm":return k+" tup";case"hh":return k+" rep";case"dd":return k+" jaj";case"MM":return k+" jar";case"yy":return k+" DIS"}}O.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function u(v){var x=v;return-1!==v.indexOf("jaj")?x.slice(0,-3)+"leS":-1!==v.indexOf("jar")?x.slice(0,-3)+"waQ":-1!==v.indexOf("DIS")?x.slice(0,-3)+"nem":x+" pIq"},past:function f(v){var x=v;return-1!==v.indexOf("jaj")?x.slice(0,-3)+"Hu\u2019":-1!==v.indexOf("jar")?x.slice(0,-3)+"wen":-1!==v.indexOf("DIS")?x.slice(0,-3)+"ben":x+" ret"},s:"puS lup",ss:h,m:"wa\u2019 tup",mm:h,h:"wa\u2019 rep",hh:h,d:"wa\u2019 jaj",dd:h,M:"wa\u2019 jar",MM:h,y:"wa\u2019 DIS",yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8374:function(ue,ge,N){!function(O){"use strict";var _={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};O.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(f,h){switch(h){case"d":case"D":case"Do":case"DD":return f;default:if(0===f)return f+"'\u0131nc\u0131";var y=f%10;return f+(_[y]||_[f%100-y]||_[f>=100?100:null])}},week:{dow:1,doy:7}})}(N(5439))},256:function(ue,ge,N){!function(O){"use strict";function u(f,h,y,p){var v={s:["viensas secunds","'iensas secunds"],ss:[f+" secunds",f+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[f+" m\xeduts",f+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[f+" \xfeoras",f+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[f+" ziuas",f+" ziuas"],M:["'n mes","'iens mes"],MM:[f+" mesen",f+" mesen"],y:["'n ar","'iens ar"],yy:[f+" ars",f+" ars"]};return p||h?v[y][0]:v[y][1]}O.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(f){return"d'o"===f.toLowerCase()},meridiem:function(f,h,y){return f>11?y?"d'o":"D'O":y?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:u,ss:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},1631:function(ue,ge,N){!function(O){"use strict";O.defineLocale("tzm-latn",{months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(N(5439))},1595:function(ue,ge,N){!function(O){"use strict";O.defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}})}(N(5439))},6050:function(ue,ge,N){!function(O){"use strict";O.defineLocale("ug-cn",{months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5"===f||"\u0633\u06d5\u06be\u06d5\u0631"===f||"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646"===f?u:"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646"===f||"\u0643\u06d5\u0686"===f?u+12:u>=11?u:u+12},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":y<900?"\u0633\u06d5\u06be\u06d5\u0631":y<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":y<1230?"\u0686\u06c8\u0634":y<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return u+"-\u06be\u06d5\u067e\u062a\u06d5";default:return u}},preparse:function(u){return u.replace(/\u060c/g,",")},postformat:function(u){return u.replace(/,/g,"\u060c")},week:{dow:1,doy:7}})}(N(5439))},5610:function(ue,ge,N){!function(O){"use strict";function u(p,v,x){return"m"===x?v?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===x?v?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":p+" "+function _(p,v){var x=p.split("_");return v%10==1&&v%100!=11?x[0]:v%10>=2&&v%10<=4&&(v%100<10||v%100>=20)?x[1]:x[2]}({ss:v?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:v?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:v?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[x],+p)}function h(p){return function(){return p+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}O.defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function f(p,v){var x={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return p?x[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(v)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(v)?"genitive":"nominative"][p.day()]:x.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:h("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:h("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:h("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:h("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return h("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return h("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:u,m:u,mm:u,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:u,y:"\u0440\u0456\u043a",yy:u},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(p){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(p)},meridiem:function(p,v,x){return p<4?"\u043d\u043e\u0447\u0456":p<12?"\u0440\u0430\u043d\u043a\u0443":p<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(p,v){switch(v){case"M":case"d":case"DDD":case"w":case"W":return p+"-\u0439";case"D":return p+"-\u0433\u043e";default:return p}},week:{dow:1,doy:7}})}(N(5439))},6077:function(ue,ge,N){!function(O){"use strict";var _=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],u=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];O.defineLocale("ur",{months:_,monthsShort:_,weekdays:u,weekdaysShort:u,weekdaysMin:u,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(h){return"\u0634\u0627\u0645"===h},meridiem:function(h,y,p){return h<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(N(5439))},2207:function(ue,ge,N){!function(O){"use strict";O.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(N(5439))},2862:function(ue,ge,N){!function(O){"use strict";O.defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}})}(N(5439))},8093:function(ue,ge,N){!function(O){"use strict";O.defineLocale("vi",{months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(u){return/^ch$/i.test(u)},meridiem:function(u,f,h){return u<12?h?"sa":"SA":h?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tu\u1ea7n t\u1edbi l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tu\u1ea7n r\u1ed3i l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(u){return u},week:{dow:1,doy:4}})}(N(5439))},5590:function(ue,ge,N){!function(O){"use strict";O.defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},9058:function(ue,ge,N){!function(O){"use strict";O.defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}})}(N(5439))},7908:function(ue,ge,N){!function(O){"use strict";O.defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:u>=11?u:u+12},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u51cc\u6668":y<900?"\u65e9\u4e0a":y<1130?"\u4e0a\u5348":y<1230?"\u4e2d\u5348":y<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u5468";default:return u}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}})}(N(5439))},8867:function(ue,ge,N){!function(O){"use strict";O.defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e2d\u5348"===f?u>=11?u:u+12:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:void 0},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u51cc\u6668":y<900?"\u65e9\u4e0a":y<1130?"\u4e0a\u5348":y<1230?"\u4e2d\u5348":y<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u9031";default:return u}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(N(5439))},3291:function(ue,ge,N){!function(O){"use strict";O.defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e2d\u5348"===f?u>=11?u:u+12:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:void 0},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u51cc\u6668":y<900?"\u65e9\u4e0a":y<1130?"\u4e0a\u5348":y<1230?"\u4e2d\u5348":y<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u9031";default:return u}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(N(5439))},5439:function(ue,ge,N){(ue=N.nmd(ue)).exports=function(){"use strict";var O,H;function _(){return O.apply(null,arguments)}function f(m){return m instanceof Array||"[object Array]"===Object.prototype.toString.call(m)}function h(m){return null!=m&&"[object Object]"===Object.prototype.toString.call(m)}function p(m){return void 0===m}function v(m){return"number"==typeof m||"[object Number]"===Object.prototype.toString.call(m)}function x(m){return m instanceof Date||"[object Date]"===Object.prototype.toString.call(m)}function T(m,E){var $,V=[];for($=0;$>>0,$=0;$0)for(V=0;V=0?V?"+":"":"-")+Math.pow(10,Math.max(0,E-$.length)).toString().substr(1)+$}var Ee=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Ne=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ut={},_t={};function rt(m,E,V,$){var se=$;"string"==typeof $&&(se=function(){return this[$]()}),m&&(_t[m]=se),E&&(_t[E[0]]=function(){return De(se.apply(this,arguments),E[1],E[2])}),V&&(_t[V]=function(){return this.localeData().ordinal(se.apply(this,arguments),m)})}function on(m){return m.match(/\[[\s\S]/)?m.replace(/^\[|\]$/g,""):m.replace(/\\/g,"")}function vt(m,E){return m.isValid()?(E=jt(E,m.localeData()),ut[E]=ut[E]||function Ln(m){var V,$,E=m.match(Ee);for(V=0,$=E.length;V<$;V++)E[V]=_t[E[V]]?_t[E[V]]:on(E[V]);return function(se){var je,Le="";for(je=0;je<$;je++)Le+=Ce(E[je])?E[je].call(se,m):E[je];return Le}}(E),ut[E](m)):m.localeData().invalidDate()}function jt(m,E){var V=5;function $(se){return E.longDateFormat(se)||se}for(Ne.lastIndex=0;V>=0&&Ne.test(m);)m=m.replace(Ne,$),Ne.lastIndex=0,V-=1;return m}var jn=/\d/,ri=/\d\d/,Gr=/\d{3}/,ko=/\d{4}/,Ei=/[+-]?\d{6}/,tn=/\d\d?/,vi=/\d\d\d\d?/,oi=/\d\d\d\d\d\d?/,En=/\d{1,3}/,Fu=/\d{1,4}/,wa=/[+-]?\d{1,6}/,In=/\d+/,xa=/[+-]?\d+/,Pn=/Z|[+-]\d\d:?\d\d/gi,Ca=/Z|[+-]\d\d(?::?\d\d)?/gi,sn=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,yt={};function gt(m,E,V){yt[m]=Ce(E)?E:function($,se){return $&&V?V:E}}function Ru(m,E){return S(yt,m)?yt[m](E._strict,E._locale):new RegExp(function rM(m){return So(m.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(E,V,$,se,Le){return V||$||se||Le}))}(m))}function So(m){return m.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Fe={};function kn(m,E){var V,$=E;for("string"==typeof m&&(m=[m]),v(E)&&($=function(se,Le){Le[E]=ee(se)}),V=0;V68?1900:2e3)};var yi,Hg=ka("FullYear",!0);function ka(m,E){return function(V){return null!=V?(_p(this,m,V),_.updateOffset(this,E),this):Yu(this,m)}}function Yu(m,E){return m.isValid()?m._d["get"+(m._isUTC?"UTC":"")+E]():NaN}function _p(m,E,V){m.isValid()&&!isNaN(V)&&("FullYear"===E&&Nu(m.year())&&1===m.month()&&29===m.date()?m._d["set"+(m._isUTC?"UTC":"")+E](V,m.month(),Bu(V,m.month())):m._d["set"+(m._isUTC?"UTC":"")+E](V))}function Bu(m,E){if(isNaN(m)||isNaN(E))return NaN;var V=function gn(m,E){return(m%E+E)%E}(E,12);return m+=(E-V)/12,1===V?Nu(m)?29:28:31-V%7%2}yi=Array.prototype.indexOf?Array.prototype.indexOf:function(m){var E;for(E=0;E=0&&isFinite(Yt.getFullYear())&&Yt.setFullYear(m),Yt}function _l(m){var E=new Date(Date.UTC.apply(null,arguments));return m<100&&m>=0&&isFinite(E.getUTCFullYear())&&E.setUTCFullYear(m),E}function dr(m,E,V){var $=7+E-V;return-(7+_l(m,0,$).getUTCDay()-E)%7+$-1}function ju(m,E,V,$,se){var rn,pi,Yt=1+7*(E-1)+(7+V-$)%7+dr(m,$,se);return Yt<=0?pi=Ic(rn=m-1)+Yt:Yt>Ic(m)?(rn=m+1,pi=Yt-Ic(m)):(rn=m,pi=Yt),{year:rn,dayOfYear:pi}}function Ac(m,E,V){var Le,je,$=dr(m.year(),E,V),se=Math.floor((m.dayOfYear()-$-1)/7)+1;return se<1?Le=se+dn(je=m.year()-1,E,V):se>dn(m.year(),E,V)?(Le=se-dn(m.year(),E,V),je=m.year()+1):(je=m.year(),Le=se),{week:Le,year:je}}function dn(m,E,V){var $=dr(m,E,V),se=dr(m+1,E,V);return(Ic(m)-$+se)/7}rt("w",["ww",2],"wo","week"),rt("W",["WW",2],"Wo","isoWeek"),pe("week","w"),pe("isoWeek","W"),_e("week",5),_e("isoWeek",5),gt("w",tn),gt("ww",tn,ri),gt("W",tn),gt("WW",tn,ri),kt(["w","ww","W","WW"],function(m,E,V,$){E[$.substr(0,1)]=ee(m)});rt("d",0,"do","day"),rt("dd",0,0,function(m){return this.localeData().weekdaysMin(this,m)}),rt("ddd",0,0,function(m){return this.localeData().weekdaysShort(this,m)}),rt("dddd",0,0,function(m){return this.localeData().weekdays(this,m)}),rt("e",0,0,"weekday"),rt("E",0,0,"isoWeekday"),pe("day","d"),pe("weekday","e"),pe("isoWeekday","E"),_e("day",11),_e("weekday",11),_e("isoWeekday",11),gt("d",tn),gt("e",tn),gt("E",tn),gt("dd",function(m,E){return E.weekdaysMinRegex(m)}),gt("ddd",function(m,E){return E.weekdaysShortRegex(m)}),gt("dddd",function(m,E){return E.weekdaysRegex(m)}),kt(["dd","ddd","dddd"],function(m,E,V,$){var se=V._locale.weekdaysParse(m,$,V._strict);null!=se?E.d=se:U(V).invalidWeekday=m}),kt(["d","e","E"],function(m,E,V,$){E[$]=ee(m)});var $g="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Sa="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var Gg="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function xp(m,E,V){var $,se,Le,je=m.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],$=0;$<7;++$)Le=L([2e3,1]).day($),this._minWeekdaysParse[$]=this.weekdaysMin(Le,"").toLocaleLowerCase(),this._shortWeekdaysParse[$]=this.weekdaysShort(Le,"").toLocaleLowerCase(),this._weekdaysParse[$]=this.weekdays(Le,"").toLocaleLowerCase();return V?"dddd"===E?-1!==(se=yi.call(this._weekdaysParse,je))?se:null:"ddd"===E?-1!==(se=yi.call(this._shortWeekdaysParse,je))?se:null:-1!==(se=yi.call(this._minWeekdaysParse,je))?se:null:"dddd"===E?-1!==(se=yi.call(this._weekdaysParse,je))||-1!==(se=yi.call(this._shortWeekdaysParse,je))||-1!==(se=yi.call(this._minWeekdaysParse,je))?se:null:"ddd"===E?-1!==(se=yi.call(this._shortWeekdaysParse,je))||-1!==(se=yi.call(this._weekdaysParse,je))||-1!==(se=yi.call(this._minWeekdaysParse,je))?se:null:-1!==(se=yi.call(this._minWeekdaysParse,je))||-1!==(se=yi.call(this._weekdaysParse,je))||-1!==(se=yi.call(this._shortWeekdaysParse,je))?se:null}var qg=sn;var Zg=sn;var so=sn;function Cp(){function m(Vr,Fa){return Fa.length-Vr.length}var Le,je,Yt,rn,pi,E=[],V=[],$=[],se=[];for(Le=0;Le<7;Le++)je=L([2e3,1]).day(Le),Yt=this.weekdaysMin(je,""),rn=this.weekdaysShort(je,""),pi=this.weekdays(je,""),E.push(Yt),V.push(rn),$.push(pi),se.push(Yt),se.push(rn),se.push(pi);for(E.sort(m),V.sort(m),$.sort(m),se.sort(m),Le=0;Le<7;Le++)V[Le]=So(V[Le]),$[Le]=So($[Le]),se[Le]=So(se[Le]);this._weekdaysRegex=new RegExp("^("+se.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+$.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+V.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+E.join("|")+")","i")}function Rr(){return this.hours()%12||12}function un(m,E){rt(m,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),E)})}function vl(m,E){return E._meridiemParse}rt("H",["HH",2],0,"hour"),rt("h",["hh",2],0,Rr),rt("k",["kk",2],0,function jo(){return this.hours()||24}),rt("hmm",0,0,function(){return""+Rr.apply(this)+De(this.minutes(),2)}),rt("hmmss",0,0,function(){return""+Rr.apply(this)+De(this.minutes(),2)+De(this.seconds(),2)}),rt("Hmm",0,0,function(){return""+this.hours()+De(this.minutes(),2)}),rt("Hmmss",0,0,function(){return""+this.hours()+De(this.minutes(),2)+De(this.seconds(),2)}),un("a",!0),un("A",!1),pe("hour","h"),_e("hour",13),gt("a",vl),gt("A",vl),gt("H",tn),gt("h",tn),gt("k",tn),gt("HH",tn,ri),gt("hh",tn,ri),gt("kk",tn,ri),gt("hmm",vi),gt("hmmss",oi),gt("Hmm",vi),gt("Hmmss",oi),kn(["H","HH"],3),kn(["k","kk"],function(m,E,V){var $=ee(m);E[3]=24===$?0:$}),kn(["a","A"],function(m,E,V){V._isPm=V._locale.isPM(m),V._meridiem=m}),kn(["h","hh"],function(m,E,V){E[3]=ee(m),U(V).bigHour=!0}),kn("hmm",function(m,E,V){var $=m.length-2;E[3]=ee(m.substr(0,$)),E[4]=ee(m.substr($)),U(V).bigHour=!0}),kn("hmmss",function(m,E,V){var $=m.length-4,se=m.length-2;E[3]=ee(m.substr(0,$)),E[4]=ee(m.substr($,2)),E[5]=ee(m.substr(se)),U(V).bigHour=!0}),kn("Hmm",function(m,E,V){var $=m.length-2;E[3]=ee(m.substr(0,$)),E[4]=ee(m.substr($))}),kn("Hmmss",function(m,E,V){var $=m.length-4,se=m.length-2;E[3]=ee(m.substr(0,$)),E[4]=ee(m.substr($,2)),E[5]=ee(m.substr(se))});var Bs,zo=ka("Hours",!0),Ta={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ye,monthsShort:At,week:{dow:0,doy:6},weekdays:$g,weekdaysMin:Gg,weekdaysShort:Sa,meridiemParse:/[ap]\.?m?\.?/i},Ii={},qe={};function Gu(m){return m&&m.toLowerCase().replace("_","-")}function Et(m){var E=null;if(!Ii[m]&&ue&&ue.exports)try{E=Bs._abbr,N(6700)("./"+m),La(E)}catch{}return Ii[m]}function La(m,E){var V;return m&&((V=p(E)?Qn(m):Nc(m,E))?Bs=V:typeof console<"u"&&console.warn&&console.warn("Locale "+m+" not found. Did you forget to load it?")),Bs._abbr}function Nc(m,E){if(null!==E){var V,$=Ta;if(E.abbr=m,null!=Ii[m])Se("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),$=Ii[m]._config;else if(null!=E.parentLocale)if(null!=Ii[E.parentLocale])$=Ii[E.parentLocale]._config;else{if(null==(V=Et(E.parentLocale)))return qe[E.parentLocale]||(qe[E.parentLocale]=[]),qe[E.parentLocale].push({name:m,config:E}),null;$=V._config}return Ii[m]=new ot(et($,E)),qe[m]&&qe[m].forEach(function(se){Nc(se.name,se.config)}),La(m),Ii[m]}return delete Ii[m],null}function Qn(m){var E;if(m&&m._locale&&m._locale._abbr&&(m=m._locale._abbr),!m)return Bs;if(!f(m)){if(E=Et(m))return E;m=[m]}return function Sp(m){for(var V,$,se,Le,E=0;E0;){if(se=Et(Le.slice(0,V).join("-")))return se;if($&&$.length>=V&&ae(Le,$,!0)>=V-1)break;V--}E++}return Bs}(m)}function Hi(m){var E,V=m._a;return V&&-2===U(m).overflow&&(E=V[1]<0||V[1]>11?1:V[2]<1||V[2]>Bu(V[0],V[1])?2:V[3]<0||V[3]>24||24===V[3]&&(0!==V[4]||0!==V[5]||0!==V[6])?3:V[4]<0||V[4]>59?4:V[5]<0||V[5]>59?5:V[6]<0||V[6]>999?6:-1,U(m)._overflowDayOfYear&&(E<0||E>2)&&(E=2),U(m)._overflowWeeks&&-1===E&&(E=7),U(m)._overflowWeekday&&-1===E&&(E=8),U(m).overflow=E),m}function Mi(m,E,V){return m??E??V}function ur(m){var E,V,se,Le,je,$=[];if(!m._d){for(se=function Ea(m){var E=new Date(_.now());return m._useUTC?[E.getUTCFullYear(),E.getUTCMonth(),E.getUTCDate()]:[E.getFullYear(),E.getMonth(),E.getDate()]}(m),m._w&&null==m._a[2]&&null==m._a[1]&&function Uo(m){var E,V,$,se,Le,je,Yt,rn;if(null!=(E=m._w).GG||null!=E.W||null!=E.E)Le=1,je=4,V=Mi(E.GG,m._a[0],Ac(Gn(),1,4).year),$=Mi(E.W,1),((se=Mi(E.E,1))<1||se>7)&&(rn=!0);else{Le=m._locale._week.dow,je=m._locale._week.doy;var pi=Ac(Gn(),Le,je);V=Mi(E.gg,m._a[0],pi.year),$=Mi(E.w,pi.week),null!=E.d?((se=E.d)<0||se>6)&&(rn=!0):null!=E.e?(se=E.e+Le,(E.e<0||E.e>6)&&(rn=!0)):se=Le}$<1||$>dn(V,Le,je)?U(m)._overflowWeeks=!0:null!=rn?U(m)._overflowWeekday=!0:(Yt=ju(V,$,se,Le,je),m._a[0]=Yt.year,m._dayOfYear=Yt.dayOfYear)}(m),null!=m._dayOfYear&&(je=Mi(m._a[0],se[0]),(m._dayOfYear>Ic(je)||0===m._dayOfYear)&&(U(m)._overflowDayOfYear=!0),V=_l(je,0,m._dayOfYear),m._a[1]=V.getUTCMonth(),m._a[2]=V.getUTCDate()),E=0;E<3&&null==m._a[E];++E)m._a[E]=$[E]=se[E];for(;E<7;E++)m._a[E]=$[E]=null==m._a[E]?2===E?1:0:m._a[E];24===m._a[3]&&0===m._a[4]&&0===m._a[5]&&0===m._a[6]&&(m._nextDay=!0,m._a[3]=0),m._d=(m._useUTC?_l:Vu).apply(null,$),Le=m._useUTC?m._d.getUTCDay():m._d.getDay(),null!=m._tzm&&m._d.setUTCMinutes(m._d.getUTCMinutes()-m._tzm),m._nextDay&&(m._a[3]=24),m._w&&typeof m._w.d<"u"&&m._w.d!==Le&&(U(m).weekdayMismatch=!0)}}var lt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Nt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ai=/Z|[+-]\d\d(?::?\d\d)?/,kr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Wo=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],or=/^\/?Date\((\-?\d+)/i;function Hs(m){var E,V,Le,je,Yt,rn,$=m._i,se=lt.exec($)||Nt.exec($);if(se){for(U(m).iso=!0,E=0,V=kr.length;E0&&U(m).unusedInput.push(je),E=E.slice(E.indexOf($)+$.length),rn+=$.length),_t[Le]?($?U(m).empty=!1:U(m).unusedTokens.push(Le),_n(Le,$,m)):m._strict&&!$&&U(m).unusedTokens.push(Le);U(m).charsLeftOver=Yt-rn,E.length>0&&U(m).unusedInput.push(E),m._a[3]<=12&&!0===U(m).bigHour&&m._a[3]>0&&(U(m).bigHour=void 0),U(m).parsedDateParts=m._a.slice(0),U(m).meridiem=m._meridiem,m._a[3]=function Ia(m,E,V){var $;return null==V?E:null!=m.meridiemHour?m.meridiemHour(E,V):(null!=m.isPM&&(($=m.isPM(V))&&E<12&&(E+=12),!$&&12===E&&(E=0)),E)}(m._locale,m._a[3],m._meridiem),ur(m),Hi(m)}else Vs(m);else Hs(m)}function Bn(m){var E=m._i,V=m._f;return m._locale=m._locale||Qn(m._l),null===E||void 0===V&&""===E?ie({nullInput:!0}):("string"==typeof E&&(m._i=E=m._locale.preparse(E)),G(E)?new ce(Hi(E)):(x(E)?m._d=E:f(V)?function To(m){var E,V,$,se,Le;if(0===m._f.length)return U(m).invalidFormat=!0,void(m._d=new Date(NaN));for(se=0;sethis?this:m:ie()});function zs(m,E){var V,$;if(1===E.length&&f(E[0])&&(E=E[0]),!E.length)return Gn();for(V=E[0],$=1;$(Le=dn(m,$,se))&&(E=Le),db.call(this,m,E,V,$,se))}function db(m,E,V,$,se){var Le=ju(m,E,V,$,se),je=_l(Le.year,0,Le.dayOfYear);return this.year(je.getUTCFullYear()),this.month(je.getUTCMonth()),this.date(je.getUTCDate()),this}rt(0,["gg",2],0,function(){return this.weekYear()%100}),rt(0,["GG",2],0,function(){return this.isoWeekYear()%100}),wi("gggg","weekYear"),wi("ggggg","weekYear"),wi("GGGG","isoWeekYear"),wi("GGGGG","isoWeekYear"),pe("weekYear","gg"),pe("isoWeekYear","GG"),_e("weekYear",1),_e("isoWeekYear",1),gt("G",xa),gt("g",xa),gt("GG",tn,ri),gt("gg",tn,ri),gt("GGGG",Fu,ko),gt("gggg",Fu,ko),gt("GGGGG",wa,Ei),gt("ggggg",wa,Ei),kt(["gggg","ggggg","GGGG","GGGGG"],function(m,E,V,$){E[$.substr(0,2)]=ee(m)}),kt(["gg","GG"],function(m,E,V,$){E[$]=_.parseTwoDigitYear(m)}),rt("Q",0,"Qo","quarter"),pe("quarter","Q"),_e("quarter",7),gt("Q",jn),kn("Q",function(m,E){E[1]=3*(ee(m)-1)}),rt("D",["DD",2],"Do","date"),pe("date","D"),_e("date",9),gt("D",tn),gt("DD",tn,ri),gt("Do",function(m,E){return m?E._dayOfMonthOrdinalParse||E._ordinalParse:E._dayOfMonthOrdinalParseLenient}),kn(["D","DD"],2),kn("Do",function(m,E){E[2]=ee(m.match(tn)[0])});var nh=ka("Date",!0);rt("DDD",["DDDD",3],"DDDo","dayOfYear"),pe("dayOfYear","DDD"),_e("dayOfYear",4),gt("DDD",En),gt("DDDD",Gr),kn(["DDD","DDDD"],function(m,E,V){V._dayOfYear=ee(m)}),rt("m",["mm",2],0,"minute"),pe("minute","m"),_e("minute",14),gt("m",tn),gt("mm",tn,ri),kn(["m","mm"],4);var $o=ka("Minutes",!1);rt("s",["ss",2],0,"second"),pe("second","s"),_e("second",15),gt("s",tn),gt("ss",tn,ri),kn(["s","ss"],5);var Hr,Wp=ka("Seconds",!1);for(rt("S",0,0,function(){return~~(this.millisecond()/100)}),rt(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),rt(0,["SSS",3],0,"millisecond"),rt(0,["SSSS",4],0,function(){return 10*this.millisecond()}),rt(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),rt(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),rt(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),rt(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),rt(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),pe("millisecond","ms"),_e("millisecond",16),gt("S",En,jn),gt("SS",En,ri),gt("SSS",En,Gr),Hr="SSSS";Hr.length<=9;Hr+="S")gt(Hr,In);function Go(m,E){E[6]=ee(1e3*("0."+m))}for(Hr="S";Hr.length<=9;Hr+="S")kn(Hr,Go);var ub=ka("Milliseconds",!1);rt("z",0,0,"zoneAbbr"),rt("zz",0,0,"zoneName");var Qe=ce.prototype;function oh(m){return m}Qe.add=Qg,Qe.calendar=function Jg(m,E){var V=m||Gn(),$=Pp(V,this).startOf("day"),se=_.calendarFormat(this,$)||"sameElse",Le=E&&(Ce(E[se])?E[se].call(this,V):E[se]);return this.format(Le||this.localeData().calendar(se,this,Gn(V)))},Qe.clone=function Ju(){return new ce(this)},Qe.diff=function Uc(m,E,V){var $,se,Le;if(!this.isValid())return NaN;if(!($=Pp(m,this)).isValid())return NaN;switch(se=6e4*($.utcOffset()-this.utcOffset()),E=he(E)){case"year":Le=pr(this,$)/12;break;case"month":Le=pr(this,$);break;case"quarter":Le=pr(this,$)/3;break;case"second":Le=(this-$)/1e3;break;case"minute":Le=(this-$)/6e4;break;case"hour":Le=(this-$)/36e5;break;case"day":Le=(this-$-se)/864e5;break;case"week":Le=(this-$-se)/6048e5;break;default:Le=this-$}return V?Le:J(Le)},Qe.endOf=function SM(m){return void 0===(m=he(m))||"millisecond"===m?this:("date"===m&&(m="day"),this.startOf(m).add(1,"isoWeek"===m?"week":m).subtract(1,"ms"))},Qe.format=function Br(m){m||(m=this.isUtc()?_.defaultFormatUtc:_.defaultFormat);var E=vt(this,m);return this.localeData().postformat(E)},Qe.from=function ib(m,E){return this.isValid()&&(G(m)&&m.isValid()||Gn(m).isValid())?Lo({to:this,from:m}).locale(this.locale()).humanize(!E):this.localeData().invalidDate()},Qe.fromNow=function Wc(m){return this.from(Gn(),m)},Qe.to=function rb(m,E){return this.isValid()&&(G(m)&&m.isValid()||Gn(m).isValid())?Lo({from:this,to:m}).locale(this.locale()).humanize(!E):this.localeData().invalidDate()},Qe.toNow=function hs(m){return this.to(Gn(),m)},Qe.get=function aM(m){return Ce(this[m=he(m)])?this[m]():this},Qe.invalidAt=function Pe(){return U(this).overflow},Qe.isAfter=function eb(m,E){var V=G(m)?m:Gn(m);return!(!this.isValid()||!V.isValid())&&("millisecond"===(E=he(p(E)?"millisecond":E))?this.valueOf()>V.valueOf():V.valueOf()9999?vt(V,E?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Ce(Date.prototype.toISOString)?E?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",vt(V,"Z")):vt(V,E?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Qe.inspect=function Pa(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var m="moment",E="";this.isLocal()||(m=0===this.utcOffset()?"moment.utc":"moment.parseZone",E="Z");var V="["+m+'("]',$=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";return this.format(V+$+"-MM-DD[T]HH:mm:ss.SSS"+E+'[")]')},Qe.toJSON=function cb(){return this.isValid()?this.toISOString():null},Qe.toString=function nb(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Qe.unix=function sb(){return Math.floor(this.valueOf()/1e3)},Qe.valueOf=function ob(){return this._d.valueOf()-6e4*(this._offset||0)},Qe.creationData=function Oe(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Qe.year=Hg,Qe.isLeapYear=function sM(){return Nu(this.year())},Qe.weekYear=function Up(m){return Gc.call(this,m,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Qe.isoWeekYear=function xl(m){return Gc.call(this,m,this.isoWeek(),this.isoWeekday(),1,4)},Qe.quarter=Qe.quarters=function DM(m){return null==m?Math.ceil((this.month()+1)/3):this.month(3*(m-1)+this.month()%3)},Qe.month=vp,Qe.daysInMonth=function yp(){return Bu(this.year(),this.month())},Qe.week=Qe.weeks=function zu(m){var E=this.localeData().week(this);return null==m?E:this.add(7*(m-E),"d")},Qe.isoWeek=Qe.isoWeeks=function Fc(m){var E=Ac(this,1,4).week;return null==m?E:this.add(7*(m-E),"d")},Qe.weeksInYear=function th(){var m=this.localeData()._week;return dn(this.year(),m.dow,m.doy)},Qe.isoWeeksInYear=function Eo(){return dn(this.year(),1,4)},Qe.date=nh,Qe.day=Qe.days=function Rc(m){if(!this.isValid())return null!=m?this:NaN;var E=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=m?(m=function Ug(m,E){return"string"!=typeof m?m:isNaN(m)?"number"==typeof(m=E.weekdaysParse(m))?m:null:parseInt(m,10)}(m,this.localeData()),this.add(m-E,"d")):E},Qe.weekday=function Uu(m){if(!this.isValid())return null!=m?this:NaN;var E=(this.day()+7-this.localeData()._week.dow)%7;return null==m?E:this.add(m-E,"d")},Qe.isoWeekday=function bl(m){if(!this.isValid())return null!=m?this:NaN;if(null!=m){var E=function Wg(m,E){return"string"==typeof m?E.weekdaysParse(m)%7||7:isNaN(m)?null:m}(m,this.localeData());return this.day(this.day()%7?E:E-7)}return this.day()||7},Qe.dayOfYear=function mr(m){var E=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==m?E:this.add(m-E,"d")},Qe.hour=Qe.hours=zo,Qe.minute=Qe.minutes=$o,Qe.second=Qe.seconds=Wp,Qe.millisecond=Qe.milliseconds=ub,Qe.utcOffset=function mM(m,E,V){var se,$=this._offset||0;if(!this.isValid())return null!=m?this:NaN;if(null!=m){if("string"==typeof m){if(null===(m=Ip(Ca,m)))return this}else Math.abs(m)<16&&!V&&(m*=60);return!this._isUTC&&E&&(se=Op(this)),this._offset=m,this._isUTC=!0,null!=se&&this.add(se,"m"),$!==m&&(!E||this._changeInProgress?Rp(this,Lo(m-$,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,_.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?$:Op(this)},Qe.utc=function gM(m){return this.utcOffset(0,m)},Qe.local=function bM(m){return this._isUTC&&(this.utcOffset(0,m),this._isUTC=!1,m&&this.subtract(Op(this),"m")),this},Qe.parseZone=function vM(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var m=Ip(Pn,this._i);null!=m?this.utcOffset(m):this.utcOffset(0,!0)}return this},Qe.hasAlignedHourOffset=function yM(m){return!!this.isValid()&&(m=m?Gn(m).utcOffset():0,(this.utcOffset()-m)%60==0)},Qe.isDST=function MM(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Qe.isLocal=function xM(){return!!this.isValid()&&!this._isUTC},Qe.isUtcOffset=function Ap(){return!!this.isValid()&&this._isUTC},Qe.isUtc=Xu,Qe.isUTC=Xu,Qe.zoneAbbr=function $p(){return this._isUTC?"UTC":""},Qe.zoneName=function hb(){return this._isUTC?"Coordinated Universal Time":""},Qe.dates=X("dates accessor is deprecated. Use date instead.",nh),Qe.months=X("months accessor is deprecated. Use month instead",vp),Qe.years=X("years accessor is deprecated. Use year instead",Hg),Qe.zone=X("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function _M(m,E){return null!=m?("string"!=typeof m&&(m=-m),this.utcOffset(m,E),this):-this.utcOffset()}),Qe.isDSTShifted=X("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function wM(){if(!p(this._isDSTShifted))return this._isDSTShifted;var m={};if(Z(m,this),(m=Bn(m))._a){var E=m._isUTC?L(m._a):Gn(m._a);this._isDSTShifted=this.isValid()&&ae(m._a,E.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var Sn=ot.prototype;function qc(m,E,V,$){var se=Qn(),Le=L().set($,E);return se[V](Le,m)}function sh(m,E,V){if(v(m)&&(E=m,m=void 0),m=m||"",null!=E)return qc(m,E,V,"month");var $,se=[];for($=0;$<12;$++)se[$]=qc(m,$,V,"month");return se}function Cl(m,E,V,$){"boolean"==typeof m?(v(E)&&(V=E,E=void 0),E=E||""):(V=E=m,m=!1,v(E)&&(V=E,E=void 0),E=E||"");var se=Qn(),Le=m?se._week.dow:0;if(null!=V)return qc(E,(V+Le)%7,$,"day");var je,Yt=[];for(je=0;je<7;je++)Yt[je]=qc(E,(je+Le)%7,$,"day");return Yt}Sn.calendar=function en(m,E,V){var $=this._calendar[m]||this._calendar.sameElse;return Ce($)?$.call(E,V):$},Sn.longDateFormat=function Tn(m){var E=this._longDateFormat[m],V=this._longDateFormat[m.toUpperCase()];return E||!V?E:(this._longDateFormat[m]=V.replace(/MMMM|MM|DD|dddd/g,function($){return $.slice(1)}),this._longDateFormat[m])},Sn.invalidDate=function Ue(){return this._invalidDate},Sn.ordinal=function rr(m){return this._ordinal.replace("%d",m)},Sn.preparse=oh,Sn.postformat=oh,Sn.relativeTime=function W(m,E,V,$){var se=this._relativeTime[V];return Ce(se)?se(m,E,V,$):se.replace(/%d/i,m)},Sn.pastFuture=function re(m,E){var V=this._relativeTime[m>0?"future":"past"];return Ce(V)?V(E):V.replace(/%s/i,E)},Sn.set=function He(m){var E,V;for(V in m)Ce(E=m[V])?this[V]=E:this["_"+V]=E;this._config=m,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Sn.months=function lM(m,E){return m?f(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||Vg).test(E)?"format":"standalone"][m.month()]:f(this._months)?this._months:this._months.standalone},Sn.monthsShort=function Pc(m,E){return m?f(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[Vg.test(E)?"format":"standalone"][m.month()]:f(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Sn.monthsParse=function gp(m,E,V){var $,se,Le;if(this._monthsParseExact)return jg.call(this,m,E,V);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),$=0;$<12;$++){if(se=L([2e3,$]),V&&!this._longMonthsParse[$]&&(this._longMonthsParse[$]=new RegExp("^"+this.months(se,"").replace(".","")+"$","i"),this._shortMonthsParse[$]=new RegExp("^"+this.monthsShort(se,"").replace(".","")+"$","i")),!V&&!this._monthsParse[$]&&(Le="^"+this.months(se,"")+"|^"+this.monthsShort(se,""),this._monthsParse[$]=new RegExp(Le.replace(".",""),"i")),V&&"MMMM"===E&&this._longMonthsParse[$].test(m))return $;if(V&&"MMM"===E&&this._shortMonthsParse[$].test(m))return $;if(!V&&this._monthsParse[$].test(m))return $}},Sn.monthsRegex=function zg(m){return this._monthsParseExact?(S(this,"_monthsRegex")||Mt.call(this),m?this._monthsStrictRegex:this._monthsRegex):(S(this,"_monthsRegex")||(this._monthsRegex=Mp),this._monthsStrictRegex&&m?this._monthsStrictRegex:this._monthsRegex)},Sn.monthsShortRegex=function Hu(m){return this._monthsParseExact?(S(this,"_monthsRegex")||Mt.call(this),m?this._monthsShortStrictRegex:this._monthsShortRegex):(S(this,"_monthsShortRegex")||(this._monthsShortRegex=Oc),this._monthsShortStrictRegex&&m?this._monthsShortStrictRegex:this._monthsShortRegex)},Sn.week=function cM(m){return Ac(m,this._week.dow,this._week.doy).week},Sn.firstDayOfYear=function gl(){return this._week.doy},Sn.firstDayOfWeek=function uM(){return this._week.dow},Sn.weekdays=function wp(m,E){return m?f(this._weekdays)?this._weekdays[m.day()]:this._weekdays[this._weekdays.isFormat.test(E)?"format":"standalone"][m.day()]:f(this._weekdays)?this._weekdays:this._weekdays.standalone},Sn.weekdaysMin=function we(m){return m?this._weekdaysMin[m.day()]:this._weekdaysMin},Sn.weekdaysShort=function Da(m){return m?this._weekdaysShort[m.day()]:this._weekdaysShort},Sn.weekdaysParse=function Lt(m,E,V){var $,se,Le;if(this._weekdaysParseExact)return xp.call(this,m,E,V);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),$=0;$<7;$++){if(se=L([2e3,1]).day($),V&&!this._fullWeekdaysParse[$]&&(this._fullWeekdaysParse[$]=new RegExp("^"+this.weekdays(se,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[$]=new RegExp("^"+this.weekdaysShort(se,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[$]=new RegExp("^"+this.weekdaysMin(se,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[$]||(Le="^"+this.weekdays(se,"")+"|^"+this.weekdaysShort(se,"")+"|^"+this.weekdaysMin(se,""),this._weekdaysParse[$]=new RegExp(Le.replace(".",""),"i")),V&&"dddd"===E&&this._fullWeekdaysParse[$].test(m))return $;if(V&&"ddd"===E&&this._shortWeekdaysParse[$].test(m))return $;if(V&&"dd"===E&&this._minWeekdaysParse[$].test(m))return $;if(!V&&this._weekdaysParse[$].test(m))return $}},Sn.weekdaysRegex=function Kg(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||Cp.call(this),m?this._weekdaysStrictRegex:this._weekdaysRegex):(S(this,"_weekdaysRegex")||(this._weekdaysRegex=qg),this._weekdaysStrictRegex&&m?this._weekdaysStrictRegex:this._weekdaysRegex)},Sn.weekdaysShortRegex=function us(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||Cp.call(this),m?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(S(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Zg),this._weekdaysShortStrictRegex&&m?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Sn.weekdaysMinRegex=function hM(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||Cp.call(this),m?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(S(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=so),this._weekdaysMinStrictRegex&&m?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Sn.isPM=function Wu(m){return"p"===(m+"").toLowerCase().charAt(0)},Sn.meridiem=function kp(m,E,V){return m>11?V?"pm":"PM":V?"am":"AM"},La("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(m){var E=m%10;return m+(1===ee(m%100/10)?"th":1===E?"st":2===E?"nd":3===E?"rd":"th")}}),_.lang=X("moment.lang is deprecated. Use moment.locale instead.",La),_.langData=X("moment.langData is deprecated. Use moment.localeData instead.",Qn);var qo=Math.abs;function ar(m,E,V,$){var se=Lo(E,V);return m._milliseconds+=$*se._milliseconds,m._days+=$*se._days,m._months+=$*se._months,m._bubble()}function fs(m){return m<0?Math.floor(m):Math.ceil(m)}function kl(m){return 4800*m/146097}function lh(m){return 146097*m/4800}function ao(m){return function(){return this.as(m)}}var Kc=ao("ms"),Zc=ao("s"),ch=ao("m"),Xp=ao("h"),gb=ao("d"),Oa=ao("w"),Sl=ao("M"),bb=ao("y");function Aa(m){return function(){return this.isValid()?this._data[m]:NaN}}var vb=Aa("milliseconds"),yb=Aa("seconds"),LM=Aa("minutes"),EM=Aa("hours"),uh=Aa("days"),Qp=Aa("months"),Jp=Aa("years");var Ko=Math.round,lo={ss:44,s:45,m:45,h:22,d:26,M:11};function Xc(m,E,V,$,se){return se.relativeTime(E||1,!!V,m,$)}var em=Math.abs;function Ws(m){return(m>0)-(m<0)||+m}function Tl(){if(!this.isValid())return this.localeData().invalidDate();var $,se,m=em(this._milliseconds)/1e3,E=em(this._days),V=em(this._months);$=J(m/60),se=J($/60),m%=60,$%=60;var je=J(V/12),Yt=V%=12,rn=E,pi=se,Vr=$,Fa=m?m.toFixed(3).replace(/\.?0+$/,""):"",Ll=this.asSeconds();if(!Ll)return"P0D";var ed=Ll<0?"-":"",ps=Ws(this._months)!==Ws(Ll)?"-":"",wb=Ws(this._days)!==Ws(Ll)?"-":"",td=Ws(this._milliseconds)!==Ws(Ll)?"-":"";return ed+"P"+(je?ps+je+"Y":"")+(Yt?ps+Yt+"M":"")+(rn?wb+rn+"D":"")+(pi||Vr||Fa?"T":"")+(pi?td+pi+"H":"")+(Vr?td+Vr+"M":"")+(Fa?td+Fa+"S":"")}var an=Sr.prototype;return an.isValid=function wl(){return this._isValid},an.abs=function fb(){var m=this._data;return this._milliseconds=qo(this._milliseconds),this._days=qo(this._days),this._months=qo(this._months),m.milliseconds=qo(m.milliseconds),m.seconds=qo(m.seconds),m.minutes=qo(m.minutes),m.hours=qo(m.hours),m.months=qo(m.months),m.years=qo(m.years),this},an.add=function Us(m,E){return ar(this,m,E,1)},an.subtract=function Jn(m,E){return ar(this,m,E,-1)},an.as=function mb(m){if(!this.isValid())return NaN;var E,V,$=this._milliseconds;if("month"===(m=he(m))||"year"===m)return V=this._months+kl(E=this._days+$/864e5),"month"===m?V:V/12;switch(E=this._days+Math.round(lh(this._months)),m){case"week":return E/7+$/6048e5;case"day":return E+$/864e5;case"hour":return 24*E+$/36e5;case"minute":return 1440*E+$/6e4;case"second":return 86400*E+$/1e3;case"millisecond":return Math.floor(864e5*E)+$;default:throw new Error("Unknown unit "+m)}},an.asMilliseconds=Kc,an.asSeconds=Zc,an.asMinutes=ch,an.asHours=Xp,an.asDays=gb,an.asWeeks=Oa,an.asMonths=Sl,an.asYears=bb,an.valueOf=function _b(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*ee(this._months/12):NaN},an._bubble=function pb(){var se,Le,je,Yt,rn,m=this._milliseconds,E=this._days,V=this._months,$=this._data;return m>=0&&E>=0&&V>=0||m<=0&&E<=0&&V<=0||(m+=864e5*fs(lh(V)+E),E=0,V=0),$.milliseconds=m%1e3,se=J(m/1e3),$.seconds=se%60,Le=J(se/60),$.minutes=Le%60,je=J(Le/60),$.hours=je%24,E+=J(je/24),V+=rn=J(kl(E)),E-=fs(lh(rn)),Yt=J(V/12),V%=12,$.days=E,$.months=V,$.years=Yt,this},an.clone=function TM(){return Lo(this)},an.get=function dh(m){return m=he(m),this.isValid()?this[m+"s"]():NaN},an.milliseconds=vb,an.seconds=yb,an.minutes=LM,an.hours=EM,an.days=uh,an.weeks=function Dl(){return J(this.days()/7)},an.months=Qp,an.years=Jp,an.humanize=function Jc(m){if(!this.isValid())return this.localeData().invalidDate();var E=this.localeData(),V=function Mb(m,E,V){var $=Lo(m).abs(),se=Ko($.as("s")),Le=Ko($.as("m")),je=Ko($.as("h")),Yt=Ko($.as("d")),rn=Ko($.as("M")),pi=Ko($.as("y")),Vr=se<=lo.ss&&["s",se]||se0,Vr[4]=V,Xc.apply(null,Vr)}(this,!m,E);return m&&(V=E.pastFuture(+this,V)),E.postformat(V)},an.toISOString=Tl,an.toString=Tl,an.toJSON=Tl,an.locale=eh,an.localeData=It,an.toIsoString=X("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Tl),an.lang=$c,rt("X",0,0,"unix"),rt("x",0,0,"valueOf"),gt("x",xa),gt("X",/[+-]?\d+(\.\d{1,3})?/),kn("X",function(m,E,V){V._d=new Date(1e3*parseFloat(m,10))}),kn("x",function(m,E,V){V._d=new Date(ee(m))}),_.version="2.22.2",function u(m){O=m}(Gn),_.fn=Qe,_.min=function hr(){return zs("isBefore",[].slice.call(arguments,0))},_.max=function pM(){return zs("isAfter",[].slice.call(arguments,0))},_.now=function(){return Date.now?Date.now():+new Date},_.utc=L,_.unix=function ih(m){return Gn(1e3*m)},_.months=function Gp(m,E){return sh(m,E,"months")},_.isDate=x,_.locale=La,_.invalid=ie,_.duration=Lo,_.isMoment=G,_.weekdays=function Kp(m,E,V){return Cl(m,E,V,"weekdays")},_.parseZone=function rh(){return Gn.apply(null,arguments).parseZone()},_.localeData=Qn,_.isDuration=Zu,_.monthsShort=function qp(m,E){return sh(m,E,"monthsShort")},_.weekdaysMin=function ah(m,E,V){return Cl(m,E,V,"weekdaysMin")},_.defineLocale=Nc,_.updateLocale=function Ke(m,E){if(null!=E){var V,$,se=Ta;null!=($=Et(m))&&(se=$._config),(V=new ot(E=et(se,E))).parentLocale=Ii[m],Ii[m]=V,La(m)}else null!=Ii[m]&&(null!=Ii[m].parentLocale?Ii[m]=Ii[m].parentLocale:null!=Ii[m]&&delete Ii[m]);return Ii[m]},_.locales=function bn(){return st(Ii)},_.weekdaysShort=function Zp(m,E,V){return Cl(m,E,V,"weekdaysShort")},_.normalizeUnits=he,_.relativeTimeRounding=function Qc(m){return void 0===m?Ko:"function"==typeof m&&(Ko=m,!0)},_.relativeTimeThreshold=function hh(m,E){return void 0!==lo[m]&&(void 0===E?lo[m]:(lo[m]=E,"s"===m&&(lo.ss=E-1),!0))},_.calendarFormat=function Yp(m,E){var V=m.diff(E,"days",!0);return V<-6?"sameElse":V<-1?"lastWeek":V<0?"lastDay":V<1?"sameDay":V<2?"nextDay":V<7?"nextWeek":"sameElse"},_.prototype=Qe,_.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},_}()},6700:(ue,ge,N)=>{var O={"./af":7088,"./af.js":7088,"./ar":7038,"./ar-dz":2502,"./ar-dz.js":2502,"./ar-kw":128,"./ar-kw.js":128,"./ar-ly":4519,"./ar-ly.js":4519,"./ar-ma":5443,"./ar-ma.js":5443,"./ar-sa":7642,"./ar-sa.js":7642,"./ar-tn":8592,"./ar-tn.js":8592,"./ar.js":7038,"./az":1213,"./az.js":1213,"./be":9191,"./be.js":9191,"./bg":322,"./bg.js":322,"./bm":8042,"./bm.js":8042,"./bn":9620,"./bn.js":9620,"./bo":9645,"./bo.js":9645,"./br":5020,"./br.js":5020,"./bs":4792,"./bs.js":4792,"./ca":7980,"./ca.js":7980,"./cs":7322,"./cs.js":7322,"./cv":365,"./cv.js":365,"./cy":2092,"./cy.js":2092,"./da":7387,"./da.js":7387,"./de":4307,"./de-at":9459,"./de-at.js":9459,"./de-ch":3694,"./de-ch.js":3694,"./de.js":4307,"./dv":9659,"./dv.js":9659,"./el":3460,"./el.js":3460,"./en-au":4369,"./en-au.js":4369,"./en-ca":530,"./en-ca.js":530,"./en-gb":9998,"./en-gb.js":9998,"./en-ie":3391,"./en-ie.js":3391,"./en-il":5414,"./en-il.js":5414,"./en-nz":1248,"./en-nz.js":1248,"./eo":4530,"./eo.js":4530,"./es":6866,"./es-do":8944,"./es-do.js":8944,"./es-us":3609,"./es-us.js":3609,"./es.js":6866,"./et":6725,"./et.js":6725,"./eu":7931,"./eu.js":7931,"./fa":6417,"./fa.js":6417,"./fi":944,"./fi.js":944,"./fo":5867,"./fo.js":5867,"./fr":1636,"./fr-ca":6848,"./fr-ca.js":6848,"./fr-ch":7773,"./fr-ch.js":7773,"./fr.js":1636,"./fy":4940,"./fy.js":4940,"./gd":6924,"./gd.js":6924,"./gl":6398,"./gl.js":6398,"./gom-latn":2545,"./gom-latn.js":2545,"./gu":2641,"./gu.js":2641,"./he":7536,"./he.js":7536,"./hi":6335,"./hi.js":6335,"./hr":7458,"./hr.js":7458,"./hu":6540,"./hu.js":6540,"./hy-am":5283,"./hy-am.js":5283,"./id":8780,"./id.js":8780,"./is":4205,"./is.js":4205,"./it":4211,"./it.js":4211,"./ja":1003,"./ja.js":1003,"./jv":420,"./jv.js":420,"./ka":851,"./ka.js":851,"./kk":6074,"./kk.js":6074,"./km":3343,"./km.js":3343,"./kn":4799,"./kn.js":4799,"./ko":3549,"./ko.js":3549,"./ky":3125,"./ky.js":3125,"./lb":9586,"./lb.js":9586,"./lo":2349,"./lo.js":2349,"./lt":2400,"./lt.js":2400,"./lv":9991,"./lv.js":9991,"./me":8477,"./me.js":8477,"./mi":5118,"./mi.js":5118,"./mk":5943,"./mk.js":5943,"./ml":3849,"./ml.js":3849,"./mn":1977,"./mn.js":1977,"./mr":6184,"./mr.js":6184,"./ms":485,"./ms-my":4524,"./ms-my.js":4524,"./ms.js":485,"./mt":6681,"./mt.js":6681,"./my":2024,"./my.js":2024,"./nb":2688,"./nb.js":2688,"./ne":8914,"./ne.js":8914,"./nl":1758,"./nl-be":2272,"./nl-be.js":2272,"./nl.js":1758,"./nn":1510,"./nn.js":1510,"./pa-in":7944,"./pa-in.js":7944,"./pl":1605,"./pl.js":1605,"./pt":4225,"./pt-br":3840,"./pt-br.js":3840,"./pt.js":4225,"./ro":5128,"./ro.js":5128,"./ru":5127,"./ru.js":5127,"./sd":2525,"./sd.js":2525,"./se":9893,"./se.js":9893,"./si":3123,"./si.js":3123,"./sk":9635,"./sk.js":9635,"./sl":8106,"./sl.js":8106,"./sq":8799,"./sq.js":8799,"./sr":7949,"./sr-cyrl":2872,"./sr-cyrl.js":2872,"./sr.js":7949,"./ss":6167,"./ss.js":6167,"./sv":9713,"./sv.js":9713,"./sw":1982,"./sw.js":1982,"./ta":2732,"./ta.js":2732,"./te":3636,"./te.js":3636,"./tet":2115,"./tet.js":2115,"./tg":9801,"./tg.js":9801,"./th":2868,"./th.js":2868,"./tl-ph":2360,"./tl-ph.js":2360,"./tlh":6645,"./tlh.js":6645,"./tr":8374,"./tr.js":8374,"./tzl":256,"./tzl.js":256,"./tzm":1595,"./tzm-latn":1631,"./tzm-latn.js":1631,"./tzm.js":1595,"./ug-cn":6050,"./ug-cn.js":6050,"./uk":5610,"./uk.js":5610,"./ur":6077,"./ur.js":6077,"./uz":2862,"./uz-latn":2207,"./uz-latn.js":2207,"./uz.js":2862,"./vi":8093,"./vi.js":8093,"./x-pseudo":5590,"./x-pseudo.js":5590,"./yo":9058,"./yo.js":9058,"./zh-cn":7908,"./zh-cn.js":7908,"./zh-hk":8867,"./zh-hk.js":8867,"./zh-tw":3291,"./zh-tw.js":3291};function _(f){var h=u(f);return N(h)}function u(f){if(!N.o(O,f)){var h=new Error("Cannot find module '"+f+"'");throw h.code="MODULE_NOT_FOUND",h}return O[f]}_.keys=function(){return Object.keys(O)},_.resolve=u,ue.exports=_,_.id=6700},6297:(ue,ge,N)=>{var O={"./de.json":[3634,634],"./de_base.json":[3431,431],"./en.json":[502,502],"./es.json":[4268,268],"./es_base.json":[3974,974],"./pt.json":[5733,733],"./pt_base.json":[7048,48]};function _(u){if(!N.o(O,u))return Promise.resolve().then(()=>{var y=new Error("Cannot find module '"+u+"'");throw y.code="MODULE_NOT_FOUND",y});var f=O[u],h=f[0];return N.e(f[1]).then(()=>N.t(h,19))}_.keys=()=>Object.keys(O),_.id=6297,ue.exports=_}},ue=>{ue(ue.s=9019)}]); \ No newline at end of file diff --git a/pkg/visor/static/main.f5df9adb8fff5a09.js b/pkg/visor/static/main.f5df9adb8fff5a09.js new file mode 100644 index 0000000000..9a6f49599c --- /dev/null +++ b/pkg/visor/static/main.f5df9adb8fff5a09.js @@ -0,0 +1 @@ +(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[179],{2632:(he,ge,N)=>{"use strict";function O(n){return"function"==typeof n}let _=!1;const u={Promise:void 0,set useDeprecatedSynchronousErrorHandling(n){if(n){const t=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+t.stack)}else _&&console.log("RxJS: Back to a better error behavior. Thank you. <3");_=n},get useDeprecatedSynchronousErrorHandling(){return _}};function f(n){setTimeout(()=>{throw n},0)}const h={closed:!0,next(n){},error(n){if(u.useDeprecatedSynchronousErrorHandling)throw n;f(n)},complete(){}},y=Array.isArray||(n=>n&&"number"==typeof n.length);function p(n){return null!==n&&"object"==typeof n}const C=(()=>{function n(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((e,i)=>`${i+1}) ${e.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t,this}return n.prototype=Object.create(Error.prototype),n})();class T{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:e,_ctorUnsubscribe:i,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,e instanceof T)e.remove(this);else if(null!==e)for(let a=0;at.concat(e instanceof C?e.errors:e),[])}T.EMPTY=((n=new T).closed=!0,n);const k="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class A extends T{constructor(t,e,i){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=h;break;case 1:if(!t){this.destination=h;break}if("object"==typeof t){t instanceof A?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new U(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new U(this,t,e,i)}}[k](){return this}static create(t,e,i){const o=new A(t,e,i);return o.syncErrorThrowable=!1,o}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class U extends A{constructor(t,e,i,o){super(),this._parentSubscriber=t;let s,a=this;O(e)?s=e:e&&(s=e.next,i=e.error,o=e.complete,e!==h&&(a=Object.create(e),O(a.unsubscribe)&&this.add(a.unsubscribe.bind(a)),a.unsubscribe=this.unsubscribe.bind(this))),this._context=a,this._next=s,this._error=i,this._complete=o}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;u.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:i}=u;if(this._error)i&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)i?(e.syncErrorValue=t,e.syncErrorThrown=!0):f(t),this.unsubscribe();else{if(this.unsubscribe(),i)throw t;f(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);u.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(i){if(this.unsubscribe(),u.useDeprecatedSynchronousErrorHandling)throw i;f(i)}}__tryOrSetError(t,e,i){if(!u.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,i)}catch(o){return u.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=o,t.syncErrorThrown=!0,!0):(f(o),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const ie="function"==typeof Symbol&&Symbol.observable||"@@observable";function ve(n){return n}function Z(...n){return Q(n)}function Q(n){return 0===n.length?ve:1===n.length?n[0]:function(e){return n.reduce((i,o)=>o(i),e)}}let de=(()=>{class n{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}subscribe(e,i,o){const{operator:s}=this,a=function K(n,t,e){if(n){if(n instanceof A)return n;if(n[k])return n[k]()}return n||t||e?new A(n,t,e):new A(h)}(e,i,o);if(a.add(s?s.call(a,this.source):this.source||u.useDeprecatedSynchronousErrorHandling&&!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a)),u.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a}_trySubscribe(e){try{return this._subscribe(e)}catch(i){u.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=i),function H(n){for(;n;){const{closed:t,destination:e,isStopped:i}=n;if(t||i)return!1;n=e&&e instanceof A?e:null}return!0}(e)?e.error(i):console.warn(i)}}forEach(e,i){return new(i=G(i))((o,s)=>{let a;a=this.subscribe(l=>{try{e(l)}catch(d){s(d),a&&a.unsubscribe()}},s,o)})}_subscribe(e){const{source:i}=this;return i&&i.subscribe(e)}[ie](){return this}pipe(...e){return 0===e.length?this:Q(e)(this)}toPromise(e){return new(e=G(e))((i,o)=>{let s;this.subscribe(a=>s=a,a=>o(a),()=>i(s))})}}return n.create=t=>new n(t),n})();function G(n){if(n||(n=u.Promise||Promise),!n)throw new Error("no Promise impl found");return n}const ee=(()=>{function n(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return n.prototype=Object.create(Error.prototype),n})();class ae extends T{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const i=e.indexOf(this.subscriber);-1!==i&&e.splice(i,1)}}class le extends A{constructor(t){super(t),this.destination=t}}let X=(()=>{class n extends de{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[k](){return new le(this)}lift(e){const i=new Te(this,this);return i.operator=e,i}next(e){if(this.closed)throw new ee;if(!this.isStopped){const{observers:i}=this,o=i.length,s=i.slice();for(let a=0;anew Te(t,e),n})();class Te extends X{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):T.EMPTY}}function Se(n){return n&&"function"==typeof n.schedule}function Ce(n,t){return function(i){if("function"!=typeof n)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return i.lift(new Ve(n,t))}}class Ve{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new tt(t,this.project,this.thisArg))}}class tt extends A{constructor(t,e,i){super(t),this.project=e,this.count=0,this.thisArg=i||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(i){return void this.destination.error(i)}this.destination.next(e)}}const ot=n=>t=>{for(let e=0,i=n.length;en&&"number"==typeof n.length&&"function"!=typeof n;function Ei(n){return!!n&&"function"!=typeof n.subscribe&&"function"==typeof n.then}const Ii=n=>{if(n&&"function"==typeof n[ie])return(n=>t=>{const e=n[ie]();if("function"!=typeof e.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return e.subscribe(t)})(n);if($e(n))return ot(n);if(Ei(n))return(n=>t=>(n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,f),t))(n);if(n&&"function"==typeof n[en])return(n=>t=>{const e=n[en]();for(;;){let i;try{i=e.next()}catch(o){return t.error(o),t}if(i.done){t.complete();break}if(t.next(i.value),t.closed)break}return"function"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t})(n);{const e=`You provided ${p(n)?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(e)}};function W(n,t){return new de(e=>{const i=new T;let o=0;return i.add(t.schedule(function(){o!==n.length?(e.next(n[o++]),e.closed||i.add(this.schedule())):e.complete()})),i})}function ue(n,t){return t?function fe(n,t){if(null!=n){if(function ne(n){return n&&"function"==typeof n[ie]}(n))return function or(n,t){return new de(e=>{const i=new T;return i.add(t.schedule(()=>{const o=n[ie]();i.add(o.subscribe({next(s){i.add(t.schedule(()=>e.next(s)))},error(s){i.add(t.schedule(()=>e.error(s)))},complete(){i.add(t.schedule(()=>e.complete()))}}))})),i})}(n,t);if(Ei(n))return function Ze(n,t){return new de(e=>{const i=new T;return i.add(t.schedule(()=>n.then(o=>{i.add(t.schedule(()=>{e.next(o),i.add(t.schedule(()=>e.complete()))}))},o=>{i.add(t.schedule(()=>e.error(o)))}))),i})}(n,t);if($e(n))return W(n,t);if(function me(n){return n&&"function"==typeof n[en]}(n)||"string"==typeof n)return function re(n,t){if(!n)throw new Error("Iterable cannot be null");return new de(e=>{const i=new T;let o;return i.add(()=>{o&&"function"==typeof o.return&&o.return()}),i.add(t.schedule(()=>{o=n[en](),i.add(t.schedule(function(){if(e.closed)return;let s,a;try{const l=o.next();s=l.value,a=l.done}catch(l){return void e.error(l)}a?e.complete():(e.next(s),this.schedule())}))})),i})}(n,t)}throw new TypeError((null!==n&&typeof n||n)+" is not observable")}(n,t):n instanceof de?n:new de(Ii(n))}class be extends A{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class Me extends A{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function Ee(n,t){if(t.closed)return;if(n instanceof de)return n.subscribe(t);let e;try{e=Ii(n)(t)}catch(i){t.error(i)}return e}function Ne(n,t,e=Number.POSITIVE_INFINITY){return"function"==typeof t?i=>i.pipe(Ne((o,s)=>ue(n(o,s)).pipe(Ce((a,l)=>t(o,a,s,l))),e)):("number"==typeof t&&(e=t),i=>i.lift(new ut(n,e)))}class ut{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new _t(t,this.project,this.concurrent))}}class _t extends Me{constructor(t,e,i=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function sn(n=Number.POSITIVE_INFINITY){return Ne(ve,n)}function Pn(n,t){return t?W(n,t):new de(ot(n))}function vt(...n){let t=Number.POSITIVE_INFINITY,e=null,i=n[n.length-1];return Se(i)?(e=n.pop(),n.length>1&&"number"==typeof n[n.length-1]&&(t=n.pop())):"number"==typeof i&&(t=n.pop()),null===e&&1===n.length&&n[0]instanceof de?n[0]:sn(t)(Pn(n,e))}function jt(){return function(t){return t.lift(new jn(t))}}class jn{constructor(t){this.connectable=t}call(t,e){const{connectable:i}=this;i._refCount++;const o=new oi(t,i),s=e.subscribe(o);return o.closed||(o.connection=i.connect()),s}}class oi extends A{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:i}=this,o=t._connection;this.connection=null,o&&(!i||o===i)&&o.unsubscribe()}}class Kr extends de{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new T,t.add(this.source.subscribe(new Pi(this.getSubject(),this))),t.closed&&(this._connection=null,t=T.EMPTY)),t}refCount(){return jt()(this)}}const So=(()=>{const n=Kr.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:n._subscribe},_isComplete:{value:n._isComplete,writable:!0},getSubject:{value:n.getSubject},connect:{value:n.connect},refCount:{value:n.refCount}}})();class Pi extends le{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}class On{constructor(t,e){this.subjectFactory=t,this.selector=e}call(t,e){const{selector:i}=this,o=this.subjectFactory(),s=i(o).subscribe(t);return s.add(e.subscribe(o)),s}}function Nu(){return new X}function xa(){return n=>jt()(function si(n,t){return function(i){let o;if(o="function"==typeof n?n:function(){return n},"function"==typeof t)return i.lift(new On(o,t));const s=Object.create(i,So);return s.source=i,s.subjectFactory=o,s}}(Nu)(n))}function An(n){for(let t in n)if(n[t]===An)return t;throw Error("Could not find renamed property on target object.")}function Ca(n,t){for(const e in t)t.hasOwnProperty(e)&&!n.hasOwnProperty(e)&&(n[e]=t[e])}function Fn(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(Fn).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const t=n.toString();if(null==t)return""+t;const e=t.indexOf("\n");return-1===e?t:t.substring(0,e)}function ka(n,t){return null==n||""===n?null===t?"":t:null==t||""===t?n:n+" "+t}const jg=An({__forward_ref__:An});function an(n){return n.__forward_ref__=an,n.toString=function(){return Fn(this())},n}function yt(n){return gt(n)?n():n}function gt(n){return"function"==typeof n&&n.hasOwnProperty(jg)&&n.__forward_ref__===an}function Yu(n){return n&&!!n.\u0275providers}const Do="https://g.co/ng/security#xss";class Fe extends Error{constructor(t,e){super(function kn(n,t){return`NG0${Math.abs(n)}${t?": "+t.trim():""}`}(t,e)),this.code=t}}function St(n){return"string"==typeof n?n:null==n?"":String(n)}function ai(n,t){throw new Fe(-201,!1)}function Zr(n,t){null==n&&function gn(n,t,e,i){throw new Error(`ASSERTION ERROR: ${n}`+(null==i?"":` [Expected=> ${e} ${i} ${t} <=Actual]`))}(t,n,null,"!=")}function Ye(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function At(n){return{providers:n.providers||[],imports:n.imports||[]}}function Ac(n){return Mp(n,Fc)||Mp(n,kp)}function Mp(n,t){return n.hasOwnProperty(t)?n[t]:null}function Cp(n){return n&&(n.hasOwnProperty(ju)||n.hasOwnProperty($g))?n[ju]:null}const Fc=An({\u0275prov:An}),ju=An({\u0275inj:An}),kp=An({ngInjectableDef:An}),$g=An({ngInjectorDef:An});var Mt=(()=>((Mt=Mt||{})[Mt.Default=0]="Default",Mt[Mt.Host=1]="Host",Mt[Mt.Self=2]="Self",Mt[Mt.SkipSelf=4]="SkipSelf",Mt[Mt.Optional=8]="Optional",Mt))();let zu;function ur(n){const t=zu;return zu=n,t}function Uu(n,t,e){const i=Ac(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&Mt.Optional?null:void 0!==t?t:void ai(Fn(n))}const dn=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),bl={},Wu="__NG_DI_FLAG__",Nc="ngTempTokenPath",qg=/\n/gm,Sp="__source";let Da;function Ta(n){const t=Da;return Da=n,t}function Zg(n,t=Mt.Default){if(void 0===Da)throw new Fe(-203,!1);return null===Da?Uu(n,void 0,t):Da.get(n,t&Mt.Optional?null:void 0,t)}function we(n,t=Mt.Default){return(function gl(){return zu}()||Zg)(yt(n),t)}function Et(n,t=Mt.Default){return we(n,Yc(t))}function Yc(n){return typeof n>"u"||"number"==typeof n?n:0|(n.optional&&8)|(n.host&&1)|(n.self&&2)|(n.skipSelf&&4)}function $u(n){const t=[];for(let e=0;e((co=co||{})[co.OnPush=0]="OnPush",co[co.Default=1]="Default",co))(),Nr=(()=>(function(n){n[n.Emulated=0]="Emulated",n[n.None=2]="None",n[n.ShadowDom=3]="ShadowDom"}(Nr||(Nr={})),Nr))();const Uo={},un=[],yl=An({\u0275cmp:An}),Gu=An({\u0275dir:An}),qu=An({\u0275pipe:An}),Lp=An({\u0275mod:An}),Wo=An({\u0275fac:An}),La=An({__NG_ELEMENT_ID__:An});let Oi=0;function qe(n){return fs(()=>{const e=!0===n.standalone,i={},o={type:n.type,providersResolver:null,decls:n.decls,vars:n.vars,factory:null,template:n.template||null,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:i,inputs:null,outputs:null,exportAs:n.exportAs||null,onPush:n.changeDetection===co.OnPush,directiveDefs:null,pipeDefs:null,standalone:e,dependencies:e&&n.dependencies||null,getStandaloneInjector:null,selectors:n.selectors||un,viewQuery:n.viewQuery||null,features:n.features||null,data:n.data||{},encapsulation:n.encapsulation||Nr.Emulated,id:"c"+Oi++,styles:n.styles||un,_:null,setInput:null,schemas:n.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},s=n.dependencies,a=n.features;return o.inputs=Bc(n.inputs,i),o.outputs=Bc(n.outputs),a&&a.forEach(l=>l(o)),o.directiveDefs=s?()=>("function"==typeof s?s():s).map(Ku).filter(Ep):null,o.pipeDefs=s?()=>("function"==typeof s?s():s).map(xi).filter(Ep):null,o})}function Hs(n,t,e){const i=n.\u0275cmp;i.directiveDefs=()=>("function"==typeof t?t():t).map(Ku),i.pipeDefs=()=>("function"==typeof e?e():e).map(xi)}function Ku(n){return bn(n)||ji(n)}function Ep(n){return null!==n}function Pt(n){return fs(()=>({type:n.type,bootstrap:n.bootstrap||un,declarations:n.declarations||un,imports:n.imports||un,exports:n.exports||un,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null}))}function Bc(n,t){if(null==n)return Uo;const e={};for(const i in n)if(n.hasOwnProperty(i)){let o=n[i],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),e[o]=i,t&&(t[o]=s)}return e}const Ke=qe;function Jn(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,standalone:!0===n.standalone,onDestroy:n.type.prototype.ngOnDestroy||null}}function bn(n){return n[yl]||null}function ji(n){return n[Gu]||null}function xi(n){return n[qu]||null}function hr(n,t){const e=n[Lp]||null;if(!e&&!0===t)throw new Error(`Type ${Fn(n)} does not have '\u0275mod' property.`);return e}function Yr(n){return Array.isArray(n)&&"object"==typeof n[1]}function pr(n){return Array.isArray(n)&&!0===n[1]}function Xu(n){return 0!=(4&n.flags)}function xl(n){return n.componentOffset>-1}function Wc(n){return 1==(1&n.flags)}function Dr(n){return null!==n.template}function Qu(n){return 0!=(256&n[2])}function Br(n,t){return n.hasOwnProperty(Wo)?n[Wo]:null}class Bp{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function qi(){return eh}function eh(n){return n.type.prototype.ngOnChanges&&(n.setInput=tb),Hp}function Hp(){const n=jp(this),t=n?.current;if(t){const e=n.previous;if(e===Uo)n.previous=t;else for(let i in t)e[i]=t[i];n.current=null,this.ngOnChanges(t)}}function tb(n,t,e,i){const o=this.declaredInputs[e],s=jp(n)||function nb(n,t){return n[Vp]=t}(n,{previous:Uo,current:null}),a=s.current||(s.current={}),l=s.previous,d=l[o];a[o]=new Bp(d&&d.currentValue,t,l===Uo),n[i]=t}qi.ngInherit=!0;const Vp="__ngSimpleChanges__";function jp(n){return n[Vp]||null}function Ki(n){for(;Array.isArray(n);)n=n[0];return n}function $c(n,t){return Ki(t[n])}function mr(n,t){return Ki(t[n.index])}function Wp(n,t){return n.data[t]}function Oa(n,t){return n[t]}function Hr(n,t){const e=t[n];return Yr(e)?e:e[0]}function Gc(n){return 64==(64&n[2])}function ps(n,t){return null==t?null:n[t]}function nh(n){n[18]=0}function qc(n,t){n[5]+=t;let e=n,i=n[3];for(;null!==i&&(1===t&&1===e[5]||-1===t&&0===e[5]);)i[5]+=t,e=i,i=i[3]}const Ot={lFrame:Qp(null),bindingsEnabled:!0};function Gp(){return Ot.bindingsEnabled}function ze(){return Ot.lFrame.lView}function nn(){return Ot.lFrame.tView}function Pe(n){return Ot.lFrame.contextLView=n,n[8]}function Oe(n){return Ot.lFrame.contextLView=null,n}function Ci(){let n=qp();for(;null!==n&&64===n.type;)n=n.parent;return n}function qp(){return Ot.lFrame.currentTNode}function Io(n,t){const e=Ot.lFrame;e.currentTNode=n,e.isParent=t}function ih(){return Ot.lFrame.isParent}function Kc(){Ot.lFrame.isParent=!1}function _r(){const n=Ot.lFrame;let t=n.bindingRootIndex;return-1===t&&(t=n.bindingRootIndex=n.tView.bindingStartIndex),t}function Vr(){return Ot.lFrame.bindingIndex++}function Ko(n){const t=Ot.lFrame,e=t.bindingIndex;return t.bindingIndex=t.bindingIndex+n,e}function mb(n,t){const e=Ot.lFrame;e.bindingIndex=e.bindingRootIndex=n,oh(t)}function oh(n){Ot.lFrame.currentDirectiveIndex=n}function sh(n){const t=Ot.lFrame.currentDirectiveIndex;return-1===t?null:n[t]}function ah(){return Ot.lFrame.currentQueryIndex}function Sn(n){Ot.lFrame.currentQueryIndex=n}function Zc(n){const t=n[1];return 2===t.type?t.declTNode:1===t.type?n[6]:null}function lh(n,t,e){if(e&Mt.SkipSelf){let o=t,s=n;for(;!(o=o.parent,null!==o||e&Mt.Host||(o=Zc(s),null===o||(s=s[15],10&o.type))););if(null===o)return!1;t=o,n=s}const i=Ot.lFrame=Xp();return i.currentTNode=t,i.lView=n,!0}function kl(n){const t=Xp(),e=n[1];Ot.lFrame=t,t.currentTNode=e.firstChild,t.lView=n,t.tView=e,t.contextLView=n,t.bindingIndex=e.bindingStartIndex,t.inI18n=!1}function Xp(){const n=Ot.lFrame,t=null===n?null:n.child;return null===t?Qp(n):t}function Qp(n){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:n,child:null,inI18n:!1};return null!==n&&(n.child=t),t}function Jp(){const n=Ot.lFrame;return Ot.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const em=Jp;function ch(){const n=Jp();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function lr(){return Ot.lFrame.selectedIndex}function Ws(n){Ot.lFrame.selectedIndex=n}function ei(){const n=Ot.lFrame;return Wp(n.tView,n.selectedIndex)}function ms(){Ot.lFrame.currentNamespace="svg"}function Sl(){!function dh(){Ot.lFrame.currentNamespace=null}()}function uo(n,t){for(let e=t.directiveStart,i=t.directiveEnd;e=i)break}else t[d]<0&&(n[18]+=65536),(l>11>16&&(3&n[2])===t){n[2]+=2048;try{s.call(l)}finally{}}}else try{s.call(l)}finally{}}class Dl{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function fh(n,t,e){let i=0;for(;it){a=s-1;break}}}for(;s>16}(n),i=t;for(;e>0;)i=i[15],e--;return i}let ph=!0;function td(n){const t=ph;return ph=n,t}let ln=0;const m={};function j(n,t){const e=se(n,t);if(-1!==e)return e;const i=t[1];i.firstCreatePass&&(n.injectorIndex=t.length,$(i.data,n),$(t,null),$(i.blueprint,null));const o=Le(n,t),s=n.injectorIndex;if(ho(o)){const a=Jc(o),l=ed(o,t),d=l[1].data;for(let w=0;w<8;w++)t[s+w]=l[a+w]|d[a+w]}return t[s+8]=o,s}function $(n,t){n.push(0,0,0,0,0,0,0,0,t)}function se(n,t){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===t[n.injectorIndex+8]?-1:n.injectorIndex}function Le(n,t){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let e=0,i=null,o=t;for(;null!==o;){if(i=NM(o),null===i)return-1;if(e++,o=o[15],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function je(n,t,e){!function I(n,t,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(La)&&(i=e[La]),null==i&&(i=e[La]=ln++);const o=255&i;t.data[n+(o>>5)]|=1<=0?255&t:yP:t}(e);if("function"==typeof s){if(!lh(t,n,i))return i&Mt.Host?rn(o,0,i):mi(t,e,i,o);try{const a=s(i);if(null!=a||i&Mt.Optional)return a;ai()}finally{em()}}else if("number"==typeof s){let a=null,l=se(n,t),d=-1,w=i&Mt.Host?t[16][6]:null;for((-1===l||i&Mt.SkipSelf)&&(d=-1===l?Le(n,t):t[l+8],-1!==d&&RM(i,!1)?(a=t[1],l=Jc(d),t=ed(d,t)):l=-1);-1!==l;){const P=t[1];if(id(s,l,P.data)){const Y=El(l,t,e,a,i,w);if(Y!==m)return Y}d=t[l+8],-1!==d&&RM(i,t[1].data[l+8]===w)&&id(s,l,t)?(a=P,l=Jc(d),t=ed(d,t)):l=-1}}return o}function El(n,t,e,i,o,s){const a=t[1],l=a.data[n+8],P=nd(l,a,e,null==i?xl(l)&&ph:i!=a&&0!=(3&l.type),o&Mt.Host&&s===l);return null!==P?_s(t,a,P,l):m}function nd(n,t,e,i,o){const s=n.providerIndexes,a=t.data,l=1048575&s,d=n.directiveStart,P=s>>20,q=o?l+P:n.directiveEnd;for(let te=i?l:l+P;te=d&&pe.type===e)return te}if(o){const te=a[d];if(te&&Dr(te)&&te.type===e)return d}return null}function _s(n,t,e,i){let o=n[e];const s=t.data;if(function Mb(n){return n instanceof Dl}(o)){const a=o;a.resolving&&function lo(n,t){const e=t?`. Dependency path: ${t.join(" > ")} > ${n}`:"";throw new Fe(-200,`Circular dependency in DI detected for ${n}${e}`)}(function _n(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():St(n)}(s[e]));const l=td(a.canSeeViewProviders);a.resolving=!0;const d=a.injectImpl?ur(a.injectImpl):null;lh(n,i,Mt.Default);try{o=n[e]=a.factory(void 0,s,n,i),t.firstCreatePass&&e>=i.directiveStart&&function vb(n,t,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:s}=t.type.prototype;if(i){const a=eh(t);(e.preOrderHooks||(e.preOrderHooks=[])).push(n,a),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,a)}o&&(e.preOrderHooks||(e.preOrderHooks=[])).push(0-n,o),s&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n,s),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,s))}(e,s[e],t)}finally{null!==d&&ur(d),td(l),a.resolving=!1,em()}}return o}function id(n,t,e){return!!(e[t+(n>>5)]&1<{const t=n.prototype.constructor,e=t[Wo]||Sb(t),i=Object.prototype;let o=Object.getPrototypeOf(n.prototype).constructor;for(;o&&o!==i;){const s=o[Wo]||Sb(o);if(s&&s!==e)return s;o=Object.getPrototypeOf(o)}return s=>new s})}function Sb(n){return gt(n)?()=>{const t=Sb(yt(n));return t&&t()}:Br(n)}function NM(n){const t=n[1],e=t.type;return 2===e?t.declTNode:1===e?n[6]:null}function Na(n){return function Bt(n,t){if("class"===t)return n.classes;if("style"===t)return n.styles;const e=n.attrs;if(e){const i=e.length;let o=0;for(;o{const i=function Db(n){return function(...e){if(n){const i=n(...e);for(const o in i)this[o]=i[o]}}}(t);function o(...s){if(this instanceof o)return i.apply(this,s),this;const a=new o(...s);return l.annotation=a,l;function l(d,w,P){const Y=d.hasOwnProperty(sd)?d[sd]:Object.defineProperty(d,sd,{value:[]})[sd];for(;Y.length<=P;)Y.push(null);return(Y[P]=Y[P]||[]).push(a),d}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=n,o.annotationCls=o,o})}class He{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=Ye({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function Il(n,t){n.forEach(e=>Array.isArray(e)?Il(e,t):t(e))}function BM(n,t,e){t>=n.length?n.push(e):n.splice(t,0,e)}function om(n,t){return t>=n.length-1?n.pop():n.splice(t,1)[0]}function gh(n,t){const e=[];for(let i=0;i=0?n[1|i]=e:(i=~i,function kP(n,t,e,i){let o=n.length;if(o==t)n.push(e,i);else if(1===o)n.push(i,n[0]),n[0]=e;else{for(o--,n.push(n[o-1],n[o]);o>t;)n[o]=n[o-2],o--;n[t]=e,n[t+1]=i}}(n,i,t,e)),i}function Lb(n,t){const e=cd(n,t);if(e>=0)return n[1|e]}function cd(n,t){return function HM(n,t,e){let i=0,o=n.length>>e;for(;o!==i;){const s=i+(o-i>>1),a=n[s<t?o=s:i=s+1}return~(o<({token:n})),-1),Gs=vl(ld("Optional"),8),dd=vl(ld("SkipSelf"),4);var Qr=(()=>((Qr=Qr||{})[Qr.Important=1]="Important",Qr[Qr.DashCase=2]="DashCase",Qr))();const Ab=new Map;let GP=0;const Rb="__ngContext__";function Tr(n,t){Yr(t)?(n[Rb]=t[20],function KP(n){Ab.set(n[20],n)}(t)):n[Rb]=t}function Yb(n,t){return undefined(n,t)}function Mh(n){const t=n[3];return pr(t)?t[3]:t}function Bb(n){return sw(n[13])}function Hb(n){return sw(n[4])}function sw(n){for(;null!==n&&!pr(n);)n=n[4];return n}function hd(n,t,e,i,o){if(null!=i){let s,a=!1;pr(i)?s=i:Yr(i)&&(a=!0,i=i[0]);const l=Ki(i);0===n&&null!==e?null==o?hw(t,e,l):Pl(t,e,l,o||null,!0):1===n&&null!==e?Pl(t,e,l,o||null,!0):2===n?function Gb(n,t,e){const i=dm(n,t);i&&function mO(n,t,e,i){n.removeChild(t,e,i)}(n,i,t,e)}(t,l,a):3===n&&t.destroyNode(l),null!=s&&function bO(n,t,e,i,o){const s=e[7];s!==Ki(e)&&hd(t,n,i,s,o);for(let l=10;l0&&(n[e-1][4]=i[4]);const s=om(n,10+t);!function aO(n,t){wh(n,t,t[11],2,null,null),t[0]=null,t[6]=null}(i[1],i);const a=s[19];null!==a&&a.detachView(s[1]),i[3]=null,i[4]=null,i[2]&=-65}return i}function cw(n,t){if(!(128&t[2])){const e=t[11];e.destroyNode&&wh(n,t,e,3,null,null),function dO(n){let t=n[13];if(!t)return Ub(n[1],n);for(;t;){let e=null;if(Yr(t))e=t[13];else{const i=t[10];i&&(e=i)}if(!e){for(;t&&!t[4]&&t!==n;)Yr(t)&&Ub(t[1],t),t=t[3];null===t&&(t=n),Yr(t)&&Ub(t[1],t),e=t&&t[4]}t=e}}(t)}}function Ub(n,t){if(!(128&t[2])){t[2]&=-65,t[2]|=128,function pO(n,t){let e;if(null!=n&&null!=(e=n.destroyHooks))for(let i=0;i=0?i[o=a]():i[o=-a].unsubscribe(),s+=2}else{const a=i[o=e[s+1]];e[s].call(a)}if(null!==i){for(let s=o+1;s-1){const{encapsulation:s}=n.data[i.directiveStart+o];if(s===Nr.None||s===Nr.Emulated)return null}return mr(i,e)}}(n,t.parent,e)}function Pl(n,t,e,i,o){n.insertBefore(t,e,i,o)}function hw(n,t,e){n.appendChild(t,e)}function fw(n,t,e,i,o){null!==i?Pl(n,t,e,i,o):hw(n,t,e)}function dm(n,t){return n.parentNode(t)}function pw(n,t,e){return _w(n,t,e)}let fm,Zb,pm,_w=function mw(n,t,e){return 40&n.type?mr(n,e):null};function um(n,t,e,i){const o=dw(n,i,t),s=t[11],l=pw(i.parent||t[6],i,t);if(null!=o)if(Array.isArray(e))for(let d=0;dn,createScript:n=>n,createScriptURL:n=>n})}catch{}return fm}()?.createHTML(n)||n}function kw(n){return function Xb(){if(void 0===pm&&(pm=null,dn.trustedTypes))try{pm=dn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return pm}()?.createScriptURL(n)||n}class Al{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Do})`}}class kO extends Al{getTypeName(){return"HTML"}}class SO extends Al{getTypeName(){return"Style"}}class DO extends Al{getTypeName(){return"Script"}}class TO extends Al{getTypeName(){return"URL"}}class LO extends Al{getTypeName(){return"ResourceURL"}}function po(n){return n instanceof Al?n.changingThisBreaksApplicationSecurity:n}function gs(n,t){const e=function EO(n){return n instanceof Al&&n.getTypeName()||null}(n);if(null!=e&&e!==t){if("ResourceURL"===e&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${e} (see ${Do})`)}return e===t}class RO{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const e=(new window.DOMParser).parseFromString(Ol(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch{return null}}}class NO{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const e=this.inertDocument.createElement("html");this.inertDocument.appendChild(e);const i=this.inertDocument.createElement("body");e.appendChild(i)}}getInertBodyElement(t){const e=this.inertDocument.createElement("template");if("content"in e)return e.innerHTML=Ol(t),e;const i=this.inertDocument.createElement("body");return i.innerHTML=Ol(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(i),i}stripCustomNsAttrs(t){const e=t.attributes;for(let o=e.length-1;0"),!0}endElement(t){const e=t.nodeName.toLowerCase();Qb.hasOwnProperty(e)&&!Dw.hasOwnProperty(e)&&(this.buf.push(""))}chars(t){this.buf.push(Iw(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return e}}const jO=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,zO=/([^\#-~ |!])/g;function Iw(n){return n.replace(/&/g,"&").replace(jO,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(zO,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let _m;function Pw(n,t){let e=null;try{_m=_m||function Sw(n){const t=new NO(n);return function YO(){try{return!!(new window.DOMParser).parseFromString(Ol(""),"text/html")}catch{return!1}}()?new RO(t):t}(n);let i=t?String(t):"";e=_m.getInertBodyElement(i);let o=5,s=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=s,s=e.innerHTML,e=_m.getInertBodyElement(i)}while(i!==s);return Ol((new VO).sanitizeChildren(ev(e)||e))}finally{if(e){const i=ev(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function ev(n){return"content"in n&&function UO(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var xn=(()=>((xn=xn||{})[xn.NONE=0]="NONE",xn[xn.HTML=1]="HTML",xn[xn.STYLE=2]="STYLE",xn[xn.SCRIPT=3]="SCRIPT",xn[xn.URL=4]="URL",xn[xn.RESOURCE_URL=5]="RESOURCE_URL",xn))();function Oo(n){const t=Ch();return t?t.sanitize(xn.URL,n)||"":gs(n,"URL")?po(n):mm(St(n))}function Ow(n){const t=Ch();if(t)return kw(t.sanitize(xn.RESOURCE_URL,n)||"");if(gs(n,"ResourceURL"))return kw(po(n));throw new Fe(904,!1)}function Ch(){const n=ze();return n&&n[12]}const gm=new He("ENVIRONMENT_INITIALIZER"),Fw=new He("INJECTOR",-1),Rw=new He("INJECTOR_DEF_TYPES");class Nw{get(t,e=bl){if(e===bl){const i=new Error(`NullInjectorError: No provider for ${Fn(t)}!`);throw i.name="NullInjectorError",i}return e}}function QO(...n){return{\u0275providers:Yw(0,n),\u0275fromNgModule:!0}}function Yw(n,...t){const e=[],i=new Set;let o;return Il(t,s=>{const a=s;tv(a,e,[],i)&&(o||(o=[]),o.push(a))}),void 0!==o&&Bw(o,e),e}function Bw(n,t){for(let e=0;e{t.push(s)})}}function tv(n,t,e,i){if(!(n=yt(n)))return!1;let o=null,s=Cp(n);const a=!s&&bn(n);if(s||a){if(a&&!a.standalone)return!1;o=n}else{const d=n.ngModule;if(s=Cp(d),!s)return!1;o=d}const l=i.has(o);if(a){if(l)return!1;if(i.add(o),a.dependencies){const d="function"==typeof a.dependencies?a.dependencies():a.dependencies;for(const w of d)tv(w,t,e,i)}}else{if(!s)return!1;{if(null!=s.imports&&!l){let w;i.add(o);try{Il(s.imports,P=>{tv(P,t,e,i)&&(w||(w=[]),w.push(P))})}finally{}void 0!==w&&Bw(w,t)}if(!l){const w=Br(o)||(()=>new o);t.push({provide:o,useFactory:w,deps:un},{provide:Rw,useValue:o,multi:!0},{provide:gm,useValue:()=>we(o),multi:!0})}const d=s.providers;null==d||l||nv(d,P=>{t.push(P)})}}return o!==n&&void 0!==n.providers}function nv(n,t){for(let e of n)Yu(e)&&(e=e.\u0275providers),Array.isArray(e)?nv(e,t):t(e)}const JO=An({provide:String,useValue:An});function iv(n){return null!==n&&"object"==typeof n&&JO in n}function Fl(n){return"function"==typeof n}const rv=new He("Set Injector scope."),bm={},tA={};let ov;function vm(){return void 0===ov&&(ov=new Nw),ov}class bs{}class jw extends bs{constructor(t,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,av(t,a=>this.processProvider(a)),this.records.set(Fw,fd(void 0,this)),o.has("environment")&&this.records.set(bs,fd(void 0,this));const s=this.records.get(rv);null!=s&&"string"==typeof s.value&&this.scopes.add(s.value),this.injectorDefTypes=new Set(this.get(Rw.multi,un,Mt.Self))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const t of this._ngOnDestroyHooks)t.ngOnDestroy();for(const t of this._onDestroyHooks)t()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(t){this._onDestroyHooks.push(t)}runInContext(t){this.assertNotDestroyed();const e=Ta(this),i=ur(void 0);try{return t()}finally{Ta(e),ur(i)}}get(t,e=bl,i=Mt.Default){this.assertNotDestroyed(),i=Yc(i);const o=Ta(this),s=ur(void 0);try{if(!(i&Mt.SkipSelf)){let l=this.records.get(t);if(void 0===l){const d=function sA(n){return"function"==typeof n||"object"==typeof n&&n instanceof He}(t)&&Ac(t);l=d&&this.injectableDefInScope(d)?fd(sv(t),bm):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(i&Mt.Self?vm():this.parent).get(t,e=i&Mt.Optional&&e===bl?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[Nc]=a[Nc]||[]).unshift(Fn(t)),o)throw a;return function Qg(n,t,e,i){const o=n[Nc];throw t[Sp]&&o.unshift(t[Sp]),n.message=function Jg(n,t,e,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.slice(2):n;let o=Fn(t);if(Array.isArray(t))o=t.map(Fn).join(" -> ");else if("object"==typeof t){let s=[];for(let a in t)if(t.hasOwnProperty(a)){let l=t[a];s.push(a+":"+("string"==typeof l?JSON.stringify(l):Fn(l)))}o=`{${s.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${n.replace(qg,"\n ")}`}("\n"+n.message,o,e,i),n.ngTokenPath=o,n[Nc]=null,n}(a,t,"R3InjectorError",this.source)}throw a}finally{ur(s),Ta(o)}}resolveInjectorInitializers(){const t=Ta(this),e=ur(void 0);try{const i=this.get(gm.multi,un,Mt.Self);for(const o of i)o()}finally{Ta(t),ur(e)}}toString(){const t=[],e=this.records;for(const i of e.keys())t.push(Fn(i));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Fe(205,!1)}processProvider(t){let e=Fl(t=yt(t))?t:yt(t&&t.provide);const i=function iA(n){return iv(n)?fd(void 0,n.useValue):fd(zw(n),bm)}(t);if(Fl(t)||!0!==t.multi)this.records.get(e);else{let o=this.records.get(e);o||(o=fd(void 0,bm,!0),o.factory=()=>$u(o.multi),this.records.set(e,o)),e=t,o.multi.push(t)}this.records.set(e,i)}hydrate(t,e){return e.value===bm&&(e.value=tA,e.value=e.factory()),"object"==typeof e.value&&e.value&&function oA(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}injectableDefInScope(t){if(!t.providedIn)return!1;const e=yt(t.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}}function sv(n){const t=Ac(n),e=null!==t?t.factory:Br(n);if(null!==e)return e;if(n instanceof He)throw new Fe(204,!1);if(n instanceof Function)return function nA(n){const t=n.length;if(t>0)throw gh(t,"?"),new Fe(204,!1);const e=function wp(n){const t=n&&(n[Fc]||n[kp]);if(t){const e=function xp(n){if(n.hasOwnProperty("name"))return n.name;const t=(""+n).match(/^function\s*([^\s(]+)/);return null===t?"":t[1]}(n);return console.warn(`DEPRECATED: DI is instantiating a token "${e}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${e}" class.`),t}return null}(n);return null!==e?()=>e.factory(n):()=>new n}(n);throw new Fe(204,!1)}function zw(n,t,e){let i;if(Fl(n)){const o=yt(n);return Br(o)||sv(o)}if(iv(n))i=()=>yt(n.useValue);else if(function Vw(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...$u(n.deps||[]));else if(function Hw(n){return!(!n||!n.useExisting)}(n))i=()=>we(yt(n.useExisting));else{const o=yt(n&&(n.useClass||n.provide));if(!function rA(n){return!!n.deps}(n))return Br(o)||sv(o);i=()=>new o(...$u(n.deps))}return i}function fd(n,t,e=!1){return{factory:n,value:t,multi:e?[]:void 0}}function av(n,t){for(const e of n)Array.isArray(e)?av(e,t):e&&Yu(e)?av(e.\u0275providers,t):t(e)}class aA{}class Uw{}class cA{resolveComponentFactory(t){throw function lA(n){const t=Error(`No component factory found for ${Fn(n)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=n,t}(t)}}let Ya=(()=>{class n{}return n.NULL=new cA,n})();function dA(){return pd(Ci(),ze())}function pd(n,t){return new bt(mr(n,t))}let bt=(()=>{class n{constructor(e){this.nativeElement=e}}return n.__NG_ELEMENT_ID__=dA,n})();function uA(n){return n instanceof bt?n.nativeElement:n}class kh{}let Ks=(()=>{class n{}return n.__NG_ELEMENT_ID__=()=>function hA(){const n=ze(),e=Hr(Ci().index,n);return(Yr(e)?e:n)[11]}(),n})(),fA=(()=>{class n{}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:()=>null}),n})();class Rl{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const pA=new Rl("15.0.4"),lv={};function dv(n){return n.ngOriginalError}class Zs{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t);this._console.error("ERROR",t),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(t){let e=t&&dv(t);for(;e&&dv(e);)e=dv(e);return e||null}}function $w(n){return n.ownerDocument.defaultView}function Xs(n){return n instanceof Function?n():n}function qw(n,t,e){let i=n.length;for(;;){const o=n.indexOf(t,e);if(-1===o)return o;if(0===o||n.charCodeAt(o-1)<=32){const s=t.length;if(o+s===i||n.charCodeAt(o+s)<=32)return o}e=o+1}}const Kw="ng-template";function CA(n,t,e){let i=0;for(;is?"":o[Y+1].toLowerCase();const te=8&i?q:null;if(te&&-1!==qw(te,w,0)||2&i&&w!==q){if(Qo(i))return!1;a=!0}}}}else{if(!a&&!Qo(i)&&!Qo(d))return!1;if(a&&Qo(d))continue;a=!1,i=d|1&i}}return Qo(i)||a}function Qo(n){return 0==(1&n)}function DA(n,t,e,i){if(null===t)return-1;let o=0;if(i||!e){let s=!1;for(;o-1)for(e++;e0?'="'+l+'"':"")+"]"}else 8&i?o+="."+a:4&i&&(o+=" "+a);else""!==o&&!Qo(a)&&(t+=Qw(s,o),o=""),i=a,s=s||!Qo(i);e++}return""!==o&&(t+=Qw(s,o)),t}const Ft={};function c(n){Jw(nn(),ze(),lr()+n,!1)}function Jw(n,t,e,i){if(!i)if(3==(3&t[2])){const s=n.preOrderCheckHooks;null!==s&&Xc(t,s,e)}else{const s=n.preOrderHooks;null!==s&&Qc(t,s,0,e)}Ws(e)}function ix(n,t=null,e=null,i){const o=rx(n,t,e,i);return o.resolveInjectorInitializers(),o}function rx(n,t=null,e=null,i,o=new Set){const s=[e||un,QO(n)];return i=i||("object"==typeof n?void 0:Fn(n)),new jw(s,t||vm(),i||null,o)}let _i=(()=>{class n{static create(e,i){if(Array.isArray(e))return ix({name:""},i,e,"");{const o=e.name??"";return ix({name:o},e.parent,e.providers,o)}}}return n.THROW_IF_NOT_FOUND=bl,n.NULL=new Nw,n.\u0275prov=Ye({token:n,providedIn:"any",factory:()=>we(Fw)}),n.__NG_ELEMENT_ID__=-1,n})();function F(n,t=Mt.Default){const e=ze();return null===e?we(n,t):jr(Ci(),e,yt(n),t)}function Ba(){throw new Error("invalid")}function ux(n,t){const e=n.contentQueries;if(null!==e)for(let i=0;i22&&Jw(n,t,22,!1),e(i,o)}finally{Ws(s)}}function gv(n,t,e){if(Xu(t)){const o=t.directiveEnd;for(let s=t.directiveStart;s0;){const e=n[--t];if("number"==typeof e&&e<0)return e}return 0})(a)!=l&&a.push(l),a.push(e,i,s)}}(n,t,i,Sh(n,e,o.hostVars,Ft),o)}function vs(n,t,e,i,o,s){const a=mr(n,t);!function xv(n,t,e,i,o,s,a){if(null==s)n.removeAttribute(t,o,e);else{const l=null==a?St(s):a(s,i||"",o);n.setAttribute(t,o,l,e)}}(t[11],a,s,n.value,e,i,o)}function bF(n,t,e,i,o,s){const a=s[t];if(null!==a){const l=i.setInput;for(let d=0;d0&&Cv(e)}}function Cv(n){for(let i=Bb(n);null!==i;i=Hb(i))for(let o=10;o0&&Cv(s)}const e=n[1].components;if(null!==e)for(let i=0;i0&&Cv(o)}}function xF(n,t){const e=Hr(t,n),i=e[1];(function CF(n,t){for(let e=t.length;e-1&&(zb(t,i),om(e,i))}this._attachedToViewContainer=!1}cw(this._lView[1],this._lView)}onDestroy(t){px(this._lView[1],this._lView,null,t)}markForCheck(){kv(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){Cm(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Fe(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function cO(n,t){wh(n,t,t[11],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new Fe(902,!1);this._appRef=t}}class kF extends Dh{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;Cm(t[1],t,t[8],!1)}checkNoChanges(){}get context(){return null}}class kx extends Ya{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=bn(t);return new Th(e,this.ngModule)}}function Sx(n){const t=[];for(let e in n)n.hasOwnProperty(e)&&t.push({propName:n[e],templateName:e});return t}class DF{constructor(t,e){this.injector=t,this.parentInjector=e}get(t,e,i){i=Yc(i);const o=this.injector.get(t,lv,i);return o!==lv||e===lv?o:this.parentInjector.get(t,e,i)}}class Th extends Uw{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=function OA(n){return n.map(PA).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return Sx(this.componentDef.inputs)}get outputs(){return Sx(this.componentDef.outputs)}create(t,e,i,o){let s=(o=o||this.ngModule)instanceof bs?o:o?.injector;s&&null!==this.componentDef.getStandaloneInjector&&(s=this.componentDef.getStandaloneInjector(s)||s);const a=s?new DF(t,s):t,l=a.get(kh,null);if(null===l)throw new Fe(407,!1);const d=a.get(fA,null),w=l.createRenderer(null,this.componentDef),P=this.componentDef.selectors[0][0]||"div",Y=i?function iF(n,t,e){return n.selectRootElement(t,e===Nr.ShadowDom)}(w,i,this.componentDef.encapsulation):jb(w,P,function SF(n){const t=n.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(P)),q=this.componentDef.onPush?288:272,te=yv(0,null,null,1,0,null,null,null,null,null),pe=Mm(null,te,null,q,null,null,l,w,d,a,null);let ke,Ie;kl(pe);try{const Re=this.componentDef;let Xe,Ae=null;Re.findHostDirectiveDefs?(Xe=[],Ae=new Map,Re.findHostDirectiveDefs(Re,Xe,Ae),Xe.push(Re)):Xe=[Re];const ct=function LF(n,t){const e=n[1];return n[22]=t,gd(e,22,2,"#host",null)}(pe,Y),pn=function EF(n,t,e,i,o,s,a,l){const d=o[1];!function IF(n,t,e,i){for(const o of n)t.mergedAttrs=Tl(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&(km(t,t.mergedAttrs,!0),null!==e&&Mw(i,e,t))}(i,n,t,a);const w=s.createRenderer(t,e),P=Mm(o,fx(e),null,e.onPush?32:16,o[n.index],n,s,w,l||null,null,null);return d.firstCreatePass&&wv(d,n,i.length-1),xm(o,P),o[n.index]=P}(ct,Y,Re,Xe,pe,l,w);Ie=Wp(te,22),Y&&function OF(n,t,e,i){if(i)fh(n,e,["ng-version",pA.full]);else{const{attrs:o,classes:s}=function AA(n){const t=[],e=[];let i=1,o=2;for(;i0&&yw(n,e,s.join(" "))}}(w,Re,Y,i),void 0!==e&&function AF(n,t,e){const i=n.projection=[];for(let o=0;o=0;i--){const o=n[i];o.hostVars=t+=o.hostVars,o.hostAttrs=Tl(o.hostAttrs,e=Tl(e,o.hostAttrs))}}(i)}function Tv(n){return n===Uo?{}:n===un?[]:n}function NF(n,t){const e=n.viewQuery;n.viewQuery=e?(i,o)=>{t(i,o),e(i,o)}:t}function YF(n,t){const e=n.contentQueries;n.contentQueries=e?(i,o,s)=>{t(i,o,s),e(i,o,s)}:t}function BF(n,t){const e=n.hostBindings;n.hostBindings=e?(i,o)=>{t(i,o),e(i,o)}:t}let Dm=null;function Nl(){if(!Dm){const n=dn.Symbol;if(n&&n.iterator)Dm=n.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;ea(Ki(ct[i.index])):i.index;let Ae=null;if(!a&&l&&(Ae=function JF(n,t,e,i){const o=n.cleanup;if(null!=o)for(let s=0;sd?l[d]:null}"string"==typeof a&&(s+=2)}return null}(n,t,o,i.index)),null!==Ae)(Ae.__ngLastListenerFn__||Ae).__ngNextListenerFn__=s,Ae.__ngLastListenerFn__=s,q=!1;else{s=zx(i,t,P,s,!1);const ct=e.listen(Ie,o,s);Y.push(s,ct),w&&w.push(o,Xe,Re,Re+1)}}else s=zx(i,t,P,s,!1);const te=i.outputs;let pe;if(q&&null!==te&&(pe=te[o])){const ke=pe.length;if(ke)for(let Ie=0;Ie-1?Hr(n.index,t):t);let d=jx(t,0,i,a),w=s.__ngNextListenerFn__;for(;w;)d=jx(t,0,w,a)&&d,w=w.__ngNextListenerFn__;return o&&!1===d&&(a.preventDefault(),a.returnValue=!1),d}}function z(n=1){return function Zo(n){return(Ot.lFrame.contextLView=function _b(n,t){for(;n>0;)t=t[15],n--;return t}(n,Ot.lFrame.contextLView))[8]}(n)}function eR(n,t){let e=null;const i=function TA(n){const t=n.attrs;if(null!=t){const e=t.indexOf(5);if(0==(1&e))return t[e+1]}return null}(n);for(let o=0;o>17&32767}function Av(n){return 2|n}function Bl(n){return(131068&n)>>2}function Fv(n,t){return-131069&n|t<<2}function Rv(n){return 1|n}function Qx(n,t,e,i,o){const s=n[e+1],a=null===t;let l=i?Ha(s):Bl(s),d=!1;for(;0!==l&&(!1===d||a);){const P=n[l+1];sR(n[l],t)&&(d=!0,n[l+1]=i?Rv(P):Av(P)),l=i?Ha(P):Bl(P)}d&&(n[e+1]=i?Av(s):Rv(s))}function sR(n,t){return null===n||null==t||(Array.isArray(n)?n[1]:n)===t||!(!Array.isArray(n)||"string"!=typeof t)&&cd(n,t)>=0}const Xi={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Jx(n){return n.substring(Xi.key,Xi.keyEnd)}function aR(n){return n.substring(Xi.value,Xi.valueEnd)}function eC(n,t){const e=Xi.textEnd;return e===t?-1:(t=Xi.keyEnd=function dR(n,t,e){for(;t32;)t++;return t}(n,Xi.key=t,e),Dd(n,t,e))}function tC(n,t){const e=Xi.textEnd;let i=Xi.key=Dd(n,t,e);return e===i?-1:(i=Xi.keyEnd=function uR(n,t,e){let i;for(;t=65&&(-33&i)<=90||i>=48&&i<=57);)t++;return t}(n,i,e),i=iC(n,i,e),i=Xi.value=Dd(n,i,e),i=Xi.valueEnd=function hR(n,t,e){let i=-1,o=-1,s=-1,a=t,l=a;for(;a32&&(l=a),s=o,o=i,i=-33&d}return l}(n,i,e),iC(n,i,e))}function nC(n){Xi.key=0,Xi.keyEnd=0,Xi.value=0,Xi.valueEnd=0,Xi.textEnd=n.length}function Dd(n,t,e){for(;t=0;e=tC(t,e))aC(n,Jx(t),aR(t))}function eo(n){ts(fo,Ms,n,!0)}function Ms(n,t){for(let e=function lR(n){return nC(n),eC(n,Dd(n,0,Xi.textEnd))}(t);e>=0;e=eC(t,e))fo(n,Jx(t),!0)}function es(n,t,e,i){const o=ze(),s=nn(),a=Ko(2);s.firstUpdatePass&&sC(s,n,a,i),t!==Ft&&Lr(o,a,t)&&lC(s,s.data[lr()],o,o[11],n,o[a+1]=function yR(n,t){return null==n||("string"==typeof t?n+=t:"object"==typeof n&&(n=Fn(po(n)))),n}(t,e),i,a)}function ts(n,t,e,i){const o=nn(),s=Ko(2);o.firstUpdatePass&&sC(o,null,s,i);const a=ze();if(e!==Ft&&Lr(a,s,e)){const l=o.data[lr()];if(dC(l,i)&&!oC(o,s)){let d=i?l.classesWithoutHost:l.stylesWithoutHost;null!==d&&(e=ka(d,e||"")),Ev(o,l,a,e,i)}else!function vR(n,t,e,i,o,s,a,l){o===Ft&&(o=un);let d=0,w=0,P=0=n.expandoStartIndex}function sC(n,t,e,i){const o=n.data;if(null===o[e+1]){const s=o[lr()],a=oC(n,e);dC(s,i)&&null===t&&!a&&(t=!1),t=function pR(n,t,e,i){const o=sh(n);let s=i?t.residualClasses:t.residualStyles;if(null===o)0===(i?t.classBindings:t.styleBindings)&&(e=Ph(e=Nv(null,n,t,e,i),t.attrs,i),s=null);else{const a=t.directiveStylingLast;if(-1===a||n[a]!==o)if(e=Nv(o,n,t,e,i),null===s){let d=function mR(n,t,e){const i=e?t.classBindings:t.styleBindings;if(0!==Bl(i))return n[Ha(i)]}(n,t,i);void 0!==d&&Array.isArray(d)&&(d=Nv(null,n,t,d[1],i),d=Ph(d,t.attrs,i),function _R(n,t,e,i){n[Ha(e?t.classBindings:t.styleBindings)]=i}(n,t,i,d))}else s=function gR(n,t,e){let i;const o=t.directiveEnd;for(let s=1+t.directiveStylingLast;s0)&&(w=!0)}else P=e;if(o)if(0!==d){const q=Ha(n[l+1]);n[i+1]=Lm(q,l),0!==q&&(n[q+1]=Fv(n[q+1],i)),n[l+1]=function nR(n,t){return 131071&n|t<<17}(n[l+1],i)}else n[i+1]=Lm(l,0),0!==l&&(n[l+1]=Fv(n[l+1],i)),l=i;else n[i+1]=Lm(d,0),0===l?l=i:n[d+1]=Fv(n[d+1],i),d=i;w&&(n[i+1]=Av(n[i+1])),Qx(n,P,i,!0),Qx(n,P,i,!1),function oR(n,t,e,i,o){const s=o?n.residualClasses:n.residualStyles;null!=s&&"string"==typeof t&&cd(s,t)>=0&&(e[i+1]=Rv(e[i+1]))}(t,P,n,i,s),a=Lm(l,d),s?t.classBindings=a:t.styleBindings=a}(o,s,t,e,a,i)}}function Nv(n,t,e,i,o){let s=null;const a=e.directiveEnd;let l=e.directiveStylingLast;for(-1===l?l=e.directiveStart:l++;l0;){const d=n[o],w=Array.isArray(d),P=w?d[1]:d,Y=null===P;let q=e[o+1];q===Ft&&(q=Y?un:void 0);let te=Y?Lb(q,i):P===i?q:void 0;if(w&&!Em(te)&&(te=Lb(d,i)),Em(te)&&(l=te,a))return l;const pe=n[o+1];o=a?Ha(pe):Bl(pe)}if(null!==t){let d=s?t.residualClasses:t.residualStyles;null!=d&&(l=Lb(d,i))}return l}function Em(n){return void 0!==n}function dC(n,t){return 0!=(n.flags&(t?8:16))}function E(n,t=""){const e=ze(),i=nn(),o=n+22,s=i.firstCreatePass?gd(i,o,1,t,null):i.data[o],a=e[o]=function Vb(n,t){return n.createText(t)}(e[11],t);um(i,e,a,s),Io(s,!1)}function oe(n){return ce("",n,""),oe}function ce(n,t,e){const i=ze(),o=vd(i,n,t,e);return o!==Ft&&Qs(i,lr(),o),ce}function _o(n,t,e,i,o){const s=ze(),a=yd(s,n,t,e,i,o);return a!==Ft&&Qs(s,lr(),a),_o}function Js(n,t,e){const i=ze();return Lr(i,Vr(),t)&&mo(nn(),ei(),i,n,t,i[11],e,!0),Js}function Yv(n,t,e){const i=ze();if(Lr(i,Vr(),t)){const s=nn(),a=ei();mo(s,a,i,n,t,xx(sh(s.data),a,i),e,!0)}return Yv}const Hl=void 0;var BR=["en",[["a","p"],["AM","PM"],Hl],[["AM","PM"],Hl,Hl],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Hl,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Hl,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Hl,"{1} 'at' {0}",Hl],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function YR(n){const e=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let Td={};function zr(n){const t=function HR(n){return n.toLowerCase().replace(/_/g,"-")}(n);let e=LC(t);if(e)return e;const i=t.split("-")[0];if(e=LC(i),e)return e;if("en"===i)return BR;throw new Fe(701,!1)}function LC(n){return n in Td||(Td[n]=dn.ng&&dn.ng.common&&dn.ng.common.locales&&dn.ng.common.locales[n]),Td[n]}var at=(()=>((at=at||{})[at.LocaleId=0]="LocaleId",at[at.DayPeriodsFormat=1]="DayPeriodsFormat",at[at.DayPeriodsStandalone=2]="DayPeriodsStandalone",at[at.DaysFormat=3]="DaysFormat",at[at.DaysStandalone=4]="DaysStandalone",at[at.MonthsFormat=5]="MonthsFormat",at[at.MonthsStandalone=6]="MonthsStandalone",at[at.Eras=7]="Eras",at[at.FirstDayOfWeek=8]="FirstDayOfWeek",at[at.WeekendRange=9]="WeekendRange",at[at.DateFormat=10]="DateFormat",at[at.TimeFormat=11]="TimeFormat",at[at.DateTimeFormat=12]="DateTimeFormat",at[at.NumberSymbols=13]="NumberSymbols",at[at.NumberFormats=14]="NumberFormats",at[at.CurrencyCode=15]="CurrencyCode",at[at.CurrencySymbol=16]="CurrencySymbol",at[at.CurrencyName=17]="CurrencyName",at[at.Currencies=18]="Currencies",at[at.Directionality=19]="Directionality",at[at.PluralCase=20]="PluralCase",at[at.ExtraData=21]="ExtraData",at))();const Ld="en-US";let EC=Ld;function Vv(n,t,e,i,o){if(n=yt(n),Array.isArray(n))for(let s=0;s>20;if(Fl(n)||!n.multi){const te=new Dl(d,o,F),pe=zv(l,t,o?P:P+q,Y);-1===pe?(je(j(w,a),s,l),jv(s,n,t.length),t.push(l),w.directiveStart++,w.directiveEnd++,o&&(w.providerIndexes+=1048576),e.push(te),a.push(te)):(e[pe]=te,a[pe]=te)}else{const te=zv(l,t,P+q,Y),pe=zv(l,t,P,P+q),ke=te>=0&&e[te],Ie=pe>=0&&e[pe];if(o&&!Ie||!o&&!ke){je(j(w,a),s,l);const Re=function Y3(n,t,e,i,o){const s=new Dl(n,e,F);return s.multi=[],s.index=t,s.componentProviders=0,tk(s,o,i&&!e),s}(o?N3:R3,e.length,o,i,d);!o&&Ie&&(e[pe].providerFactory=Re),jv(s,n,t.length,0),t.push(l),w.directiveStart++,w.directiveEnd++,o&&(w.providerIndexes+=1048576),e.push(Re),a.push(Re)}else jv(s,n,te>-1?te:pe,tk(e[o?pe:te],d,!o&&i));!o&&i&&Ie&&e[pe].componentProviders++}}}function jv(n,t,e,i){const o=Fl(t),s=function eA(n){return!!n.useClass}(t);if(o||s){const d=(s?yt(t.useClass):t).prototype.ngOnDestroy;if(d){const w=n.destroyHooks||(n.destroyHooks=[]);if(!o&&t.multi){const P=w.indexOf(e);-1===P?w.push(e,[i,d]):w[P+1].push(i,d)}else w.push(e,d)}}}function tk(n,t,e){return e&&n.componentProviders++,n.multi.push(t)-1}function zv(n,t,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function F3(n,t,e){const i=nn();if(i.firstCreatePass){const o=Dr(n);Vv(e,i.data,i.blueprint,o,!0),Vv(t,i.data,i.blueprint,o,!1)}}(i,o?o(n):n,t)}}class Ed{}class nk{}class ik extends Ed{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new kx(this);const i=hr(t);this._bootstrapComponents=Xs(i.bootstrap),this._r3Injector=rx(t,e,[{provide:Ed,useValue:this},{provide:Ya,useValue:this.componentFactoryResolver}],Fn(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Wv extends nk{constructor(t){super(),this.moduleType=t}create(t){return new ik(this.moduleType,t)}}class H3 extends Ed{constructor(t,e,i){super(),this.componentFactoryResolver=new kx(this),this.instance=null;const o=new jw([...t,{provide:Ed,useValue:this},{provide:Ya,useValue:this.componentFactoryResolver}],e||vm(),i,new Set(["environment"]));this.injector=o,o.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}function Fm(n,t,e=null){return new H3(n,t,e).injector}let V3=(()=>{class n{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e.id)){const i=Yw(0,e.type),o=i.length>0?Fm([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e.id,o)}return this.cachedInjectors.get(e.id)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}}return n.\u0275prov=Ye({token:n,providedIn:"environment",factory:()=>new n(we(bs))}),n})();function $v(n){n.getStandaloneInjector=t=>t.get(V3).getOrCreateStandaloneInjector(n)}function Un(n,t,e){const i=_r()+n,o=ze();return o[i]===Ft?ys(o,i,e?t.call(e):t()):function Eh(n,t){return n[t]}(o,i)}function Be(n,t,e,i){return dk(ze(),_r(),n,t,e,i)}function cn(n,t,e,i,o){return uk(ze(),_r(),n,t,e,i,o)}function Yh(n,t){const e=n[t];return e===Ft?void 0:e}function dk(n,t,e,i,o,s){const a=t+e;return Lr(n,a,o)?ys(n,a+1,s?i.call(s,o):i(o)):Yh(n,a+1)}function uk(n,t,e,i,o,s,a){const l=t+e;return Yl(n,l,o,s)?ys(n,l+2,a?i.call(a,o,s):i(o,s)):Yh(n,l+2)}function R(n,t){const e=nn();let i;const o=n+22;e.firstCreatePass?(i=function iN(n,t){if(t)for(let e=t.length-1;e>=0;e--){const i=t[e];if(n===i.name)return i}}(t,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(o,i.onDestroy)):i=e.data[o];const s=i.factory||(i.factory=Br(i.type)),a=ur(F);try{const l=td(!1),d=s();return td(l),function ZF(n,t,e,i){e>=n.data.length&&(n.data[e]=null,n.blueprint[e]=null),t[e]=i}(e,ze(),o,d),d}finally{ur(a)}}function B(n,t,e){const i=n+22,o=ze(),s=Oa(o,i);return Bh(o,i)?dk(o,_r(),t,s.transform,e,s):s.transform(e)}function Ct(n,t,e,i){const o=n+22,s=ze(),a=Oa(s,o);return Bh(s,o)?uk(s,_r(),t,a.transform,e,i,a):a.transform(e,i)}function Bh(n,t){return n[1].data[t].pure}function qv(n){return t=>{setTimeout(n,void 0,t)}}const ht=class aN extends X{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,i){let o=t,s=e||(()=>null),a=i;if(t&&"object"==typeof t){const d=t;o=d.next?.bind(d),s=d.error?.bind(d),a=d.complete?.bind(d)}this.__isAsync&&(s=qv(s),o&&(o=qv(o)),a&&(a=qv(a)));const l=super.subscribe({next:o,error:s,complete:a});return t instanceof T&&t.add(l),l}};function lN(){return this._results[Nl()]()}class Vl{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=Nl(),i=Vl.prototype;i[e]||(i[e]=lN)}get changes(){return this._changes||(this._changes=new ht)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){const i=this;i.dirty=!1;const o=function Po(n){return n.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function xP(n,t,e){if(n.length!==t.length)return!1;for(let i=0;i{class n{}return n.__NG_ELEMENT_ID__=uN,n})();const cN=cr,dN=class extends cN{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}createEmbeddedView(t,e){const i=this._declarationTContainer.tViews,o=Mm(this._declarationLView,i,t,16,null,i.declTNode,null,null,null,null,e||null);o[17]=this._declarationLView[this._declarationTContainer.index];const a=this._declarationLView[19];return null!==a&&(o[19]=a.createEmbeddedView(i)),_v(i,o,t),new Dh(o)}};function uN(){return Rm(Ci(),ze())}function Rm(n,t){return 4&n.type?new dN(t,n,pd(n,t)):null}let Qi=(()=>{class n{}return n.__NG_ELEMENT_ID__=hN,n})();function hN(){return gk(Ci(),ze())}const fN=Qi,mk=class extends fN{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return pd(this._hostTNode,this._hostLView)}get injector(){return new rd(this._hostTNode,this._hostLView)}get parentInjector(){const t=Le(this._hostTNode,this._hostLView);if(ho(t)){const e=ed(t,this._hostLView),i=Jc(t);return new rd(e[1].data[i+8],e)}return new rd(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=_k(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,e,i){let o,s;"number"==typeof i?o=i:null!=i&&(o=i.index,s=i.injector);const a=t.createEmbeddedView(e||{},s);return this.insert(a,o),a}createComponent(t,e,i,o,s){const a=t&&!function _h(n){return"function"==typeof n}(t);let l;if(a)l=e;else{const Y=e||{};l=Y.index,i=Y.injector,o=Y.projectableNodes,s=Y.environmentInjector||Y.ngModuleRef}const d=a?t:new Th(bn(t)),w=i||this.parentInjector;if(!s&&null==d.ngModule){const q=(a?w:this.parentInjector).get(bs,null);q&&(s=q)}const P=d.create(w,o,void 0,s);return this.insert(P.hostView,l),P}insert(t,e){const i=t._lView,o=i[1];if(function ab(n){return pr(n[3])}(i)){const P=this.indexOf(t);if(-1!==P)this.detach(P);else{const Y=i[3],q=new mk(Y,Y[6],Y[3]);q.detach(q.indexOf(t))}}const s=this._adjustIndex(e),a=this._lContainer;!function uO(n,t,e,i){const o=10+i,s=e.length;i>0&&(e[o-1][4]=t),i0)i.push(a[l/2]);else{const w=s[l+1],P=t[-d];for(let Y=10;Y{class n{constructor(e){this.appInits=e,this.resolve=Ym,this.reject=Ym,this.initialized=!1,this.done=!1,this.donePromise=new Promise((i,o)=>{this.resolve=i,this.reject=o})}runInitializers(){if(this.initialized)return;const e=[],i=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{s.subscribe({complete:l,error:d})});e.push(a)}}Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}}return n.\u0275fac=function(e){return new(e||n)(we(Bm,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Od=new He("AppId",{providedIn:"root",factory:function Vk(){return`${oy()}${oy()}${oy()}`}});function oy(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const jk=new He("Platform Initializer"),Vm=new He("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),zk=new He("appBootstrapListener"),zi=new He("AnimationModuleType");let BN=(()=>{class n{log(e){console.log(e)}warn(e){console.warn(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})();const xs=new He("LocaleId",{providedIn:"root",factory:()=>Et(xs,Mt.Optional|Mt.SkipSelf)||function HN(){return typeof $localize<"u"&&$localize.locale||Ld}()});class jN{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}let Uk=(()=>{class n{compileModuleSync(e){return new Wv(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),s=Xs(hr(e).declarations).reduce((a,l)=>{const d=bn(l);return d&&a.push(new Th(d)),a},[]);return new jN(i,s)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const WN=(()=>Promise.resolve(0))();function sy(n){typeof Zone>"u"?WN.then(()=>{n&&n.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",n)}class pt{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ht(!1),this.onMicrotaskEmpty=new ht(!1),this.onStable=new ht(!1),this.onError=new ht(!1),typeof Zone>"u")throw new Fe(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function $N(){let n=dn.requestAnimationFrame,t=dn.cancelAnimationFrame;if(typeof Zone<"u"&&n&&t){const e=n[Zone.__symbol__("OriginalDelegate")];e&&(n=e);const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function KN(n){const t=()=>{!function qN(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(dn,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,ly(n),n.isCheckStableRunning=!0,ay(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),ly(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,s,a,l)=>{try{return Gk(n),e.invokeTask(o,s,a,l)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||n.shouldCoalesceRunChangeDetection)&&t(),qk(n)}},onInvoke:(e,i,o,s,a,l,d)=>{try{return Gk(n),e.invoke(o,s,a,l,d)}finally{n.shouldCoalesceRunChangeDetection&&t(),qk(n)}},onHasTask:(e,i,o,s)=>{e.hasTask(o,s),i===o&&("microTask"==s.change?(n._hasPendingMicrotasks=s.microTask,ly(n),ay(n)):"macroTask"==s.change&&(n.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,i,o,s)=>(e.handleError(o,s),n.runOutsideAngular(()=>n.onError.emit(s)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!pt.isInAngularZone())throw new Fe(909,!1)}static assertNotInAngularZone(){if(pt.isInAngularZone())throw new Fe(909,!1)}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,o){const s=this._inner,a=s.scheduleEventTask("NgZoneEvent: "+o,t,GN,Ym,Ym);try{return s.runTask(a,e,i)}finally{s.cancelTask(a)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const GN={};function ay(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function ly(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function Gk(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function qk(n){n._nesting--,ay(n)}class ZN{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ht,this.onMicrotaskEmpty=new ht,this.onStable=new ht,this.onError=new ht}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,o){return t.apply(e,i)}}const Kk=new He(""),jm=new He("");let uy,cy=(()=>{class n{constructor(e,i,o){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,uy||(function XN(n){uy=n}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{pt.assertNotInAngularZone(),sy(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())sy(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==s),e(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:e,timeoutId:s,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}}return n.\u0275fac=function(e){return new(e||n)(we(pt),we(dy),we(jm))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),dy=(()=>{class n{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return uy?.findTestabilityInTree(this,e,i)??null}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})(),ja=null;const Zk=new He("AllowMultipleToken"),hy=new He("PlatformDestroyListeners");class Xk{constructor(t,e){this.name=t,this.token=e}}function Jk(n,t,e=[]){const i=`Platform: ${t}`,o=new He(i);return(s=[])=>{let a=fy();if(!a||a.injector.get(Zk,!1)){const l=[...e,...s,{provide:o,useValue:!0}];n?n(l):function e4(n){if(ja&&!ja.get(Zk,!1))throw new Fe(400,!1);ja=n;const t=n.get(tS);(function Qk(n){const t=n.get(jk,null);t&&t.forEach(e=>e())})(n)}(function eS(n=[],t){return _i.create({name:t,providers:[{provide:rv,useValue:"platform"},{provide:hy,useValue:new Set([()=>ja=null])},...n]})}(l,i))}return function n4(n){const t=fy();if(!t)throw new Fe(401,!1);return t}()}}function fy(){return ja?.get(tS)??null}let tS=(()=>{class n{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function iS(n,t){let e;return e="noop"===n?new ZN:("zone.js"===n?void 0:n)||new pt(t),e}(i?.ngZone,function nS(n){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!n||!n.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!n||!n.ngZoneRunCoalescing)||!1}}(i)),s=[{provide:pt,useValue:o}];return o.run(()=>{const a=_i.create({providers:s,parent:this.injector,name:e.moduleType.name}),l=e.create(a),d=l.injector.get(Zs,null);if(!d)throw new Fe(402,!1);return o.runOutsideAngular(()=>{const w=o.onError.subscribe({next:P=>{d.handleError(P)}});l.onDestroy(()=>{zm(this._modules,l),w.unsubscribe()})}),function rS(n,t,e){try{const i=e();return Ih(i)?i.catch(o=>{throw t.runOutsideAngular(()=>n.handleError(o)),o}):i}catch(i){throw t.runOutsideAngular(()=>n.handleError(i)),i}}(d,o,()=>{const w=l.injector.get(Hm);return w.runInitializers(),w.donePromise.then(()=>(function IC(n){Zr(n,"Expected localeId to be defined"),"string"==typeof n&&(EC=n.toLowerCase().replace(/_/g,"-"))}(l.injector.get(xs,Ld)||Ld),this._moduleDoBootstrap(l),l))})})}bootstrapModule(e,i=[]){const o=oS({},i);return function QN(n,t,e){const i=new Wv(e);return Promise.resolve(i)}(0,0,e).then(s=>this.bootstrapModuleFactory(s,o))}_moduleDoBootstrap(e){const i=e.injector.get(Ad);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new Fe(403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Fe(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(hy,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return n.\u0275fac=function(e){return new(e||n)(we(_i))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})();function oS(n,t){return Array.isArray(t)?t.reduce(oS,n):{...n,...t}}let Ad=(()=>{class n{constructor(e,i,o){this._zone=e,this._injector=i,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const s=new de(l=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{l.next(this._stable),l.complete()})}),a=new de(l=>{let d;this._zone.runOutsideAngular(()=>{d=this._zone.onStable.subscribe(()=>{pt.assertNotInAngularZone(),sy(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,l.next(!0))})})});const w=this._zone.onUnstable.subscribe(()=>{pt.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{l.next(!1)}))});return()=>{d.unsubscribe(),w.unsubscribe()}});this.isStable=vt(s,a.pipe(xa()))}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof Uw;if(!this._injector.get(Hm).done)throw!o&&function Ia(n){const t=bn(n)||ji(n)||xi(n);return null!==t&&t.standalone}(e),new Fe(405,false);let a;a=o?e:this._injector.get(Ya).resolveComponentFactory(e),this.componentTypes.push(a.componentType);const l=function JN(n){return n.isBoundToModule}(a)?void 0:this._injector.get(Ed),w=a.create(_i.NULL,[],i||a.selector,l),P=w.location.nativeElement,Y=w.injector.get(Kk,null);return Y?.registerApplication(P),w.onDestroy(()=>{this.detachView(w.hostView),zm(this.components,w),Y?.unregisterApplication(P)}),this._loadComponent(w),w}tick(){if(this._runningTick)throw new Fe(101,!1);try{this._runningTick=!0;for(let e of this._views)e.detectChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;zm(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(zk,[]);i.push(...this._bootstrapListeners),i.forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>zm(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new Fe(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return n.\u0275fac=function(e){return new(e||n)(we(pt),we(bs),we(Zs))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function zm(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}let ui=(()=>{class n{}return n.__NG_ELEMENT_ID__=o4,n})();function o4(n){return function s4(n,t,e){if(xl(n)&&!e){const i=Hr(n.index,t);return new Dh(i,i)}return 47&n.type?new Dh(t[16],t):null}(Ci(),ze(),16==(16&n))}class dS{constructor(){}supports(t){return Lh(t)}create(t){return new h4(t)}}const u4=(n,t)=>t;class h4{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||u4}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,i=this._removalsHead,o=0,s=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(o,l),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,l,a,o)),Object.is(e.item,l)||this._addIdentityChange(e,l)):(e=this._mismatch(e,l,a,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,i,o){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,o)):t=this._addAfter(new f4(e,i),s,o),t}_verifyReinsertion(t,e,i,o){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?t=this._reinsertAfter(s,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const o=t._prevRemoved,s=t._nextRemoved;return null===o?this._removalsHead=s:o._nextRemoved=s,null===s?this._removalsTail=o:s._prevRemoved=o,this._insertAfter(t,e,i),this._addToMoves(t,i),t}_moveAfter(t,e,i){return this._unlink(t),this._insertAfter(t,e,i),this._addToMoves(t,i),t}_addAfter(t,e,i){return this._insertAfter(t,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,i){const o=null===e?this._itHead:e._next;return t._next=o,t._prev=e,null===o?this._itTail=t:o._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new uS),this._linkedRecords.put(t),t.currentIndex=i,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,i=t._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new uS),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class f4{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class p4{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,t))return i;return null}remove(t){const e=t._prevDup,i=t._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class uS{constructor(){this.map=new Map}put(t){const e=t.trackById;let i=this.map.get(e);i||(i=new p4,this.map.set(e,i)),i.add(t)}get(t,e){const o=this.map.get(t);return o?o.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function hS(n,t,e){const i=n.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const s=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,s)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const o=this._records.get(t);this._maybeAddToChanges(o,e);const s=o._prev,a=o._next;return s&&(s._next=a),a&&(a._prev=s),o._next=null,o._prev=null,o}const i=new _4(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class _4{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function pS(){return new Vh([new dS])}let Vh=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||pS()),deps:[[n,new dd,new Gs]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new Fe(901,!1)}}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:pS}),n})();function mS(){return new jh([new fS])}let jh=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||mS()),deps:[[n,new dd,new Gs]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new Fe(901,!1)}}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:mS}),n})();const v4=Jk(null,"core",[]);let y4=(()=>{class n{constructor(e){}}return n.\u0275fac=function(e){return new(e||n)(we(Ad))},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();function Fd(n){return"boolean"==typeof n?n:null!=n&&"false"!==n}let by=null;function Cs(){return by}class x4{}const Dt=new He("DocumentToken");let vy=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return function C4(){return we(_S)}()},providedIn:"platform"}),n})();const k4=new He("Location Initialized");let _S=(()=>{class n extends vy{constructor(e){super(),this._doc=e,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Cs().getBaseHref(this._doc)}onPopState(e){const i=Cs().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Cs().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(e){this.location.pathname=e}pushState(e,i,o){gS()?this._history.pushState(e,i,o):this.location.hash=o}replaceState(e,i,o){gS()?this._history.replaceState(e,i,o):this.location.hash=o}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:function(){return function S4(){return new _S(we(Dt))}()},providedIn:"platform"}),n})();function gS(){return!!window.history.pushState}function yy(n,t){if(0==n.length)return t;if(0==t.length)return n;let e=0;return n.endsWith("/")&&e++,t.startsWith("/")&&e++,2==e?n+t.substring(1):1==e?n+t:n+"/"+t}function bS(n){const t=n.match(/#|\?|$/),e=t&&t.index||n.length;return n.slice(0,e-("/"===n[e-1]?1:0))+n.slice(e)}function ta(n){return n&&"?"!==n[0]?"?"+n:n}let zl=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Et(yS)},providedIn:"root"}),n})();const vS=new He("appBaseHref");let yS=(()=>{class n extends zl{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??Et(Dt).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return yy(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+ta(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,s){const a=this.prepareExternalUrl(o+ta(s));this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,s){const a=this.prepareExternalUrl(o+ta(s));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return n.\u0275fac=function(e){return new(e||n)(we(vy),we(vS,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),D4=(()=>{class n extends zl{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){let i=this._platformLocation.hash;return null==i&&(i="#"),i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=yy(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,s){let a=this.prepareExternalUrl(o+ta(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,s){let a=this.prepareExternalUrl(o+ta(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return n.\u0275fac=function(e){return new(e||n)(we(vy),we(vS,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),zh=(()=>{class n{constructor(e){this._subject=new ht,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function E4(n){if(new RegExp("^(https?:)?//").test(n)){const[,e]=n.split(/\/\/[^\/]+/);return e}return n}(bS(MS(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+ta(i))}normalize(e){return n.stripTrailingSlash(function L4(n,t){return n&&t.startsWith(n)?t.substring(n.length):t}(this._basePath,MS(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+ta(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+ta(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)})),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}}return n.normalizeQueryParams=ta,n.joinWithSlash=yy,n.stripTrailingSlash=bS,n.\u0275fac=function(e){return new(e||n)(we(zl))},n.\u0275prov=Ye({token:n,factory:function(){return function T4(){return new zh(we(zl))}()},providedIn:"root"}),n})();function MS(n){return n.replace(/\/index.html$/,"")}var Ai=(()=>((Ai=Ai||{})[Ai.Format=0]="Format",Ai[Ai.Standalone=1]="Standalone",Ai))(),Xt=(()=>((Xt=Xt||{})[Xt.Narrow=0]="Narrow",Xt[Xt.Abbreviated=1]="Abbreviated",Xt[Xt.Wide=2]="Wide",Xt[Xt.Short=3]="Short",Xt))(),gi=(()=>((gi=gi||{})[gi.Short=0]="Short",gi[gi.Medium=1]="Medium",gi[gi.Long=2]="Long",gi[gi.Full=3]="Full",gi))(),kt=(()=>((kt=kt||{})[kt.Decimal=0]="Decimal",kt[kt.Group=1]="Group",kt[kt.List=2]="List",kt[kt.PercentSign=3]="PercentSign",kt[kt.PlusSign=4]="PlusSign",kt[kt.MinusSign=5]="MinusSign",kt[kt.Exponential=6]="Exponential",kt[kt.SuperscriptingExponent=7]="SuperscriptingExponent",kt[kt.PerMille=8]="PerMille",kt[kt.Infinity=9]="Infinity",kt[kt.NaN=10]="NaN",kt[kt.TimeSeparator=11]="TimeSeparator",kt[kt.CurrencyDecimal=12]="CurrencyDecimal",kt[kt.CurrencyGroup=13]="CurrencyGroup",kt))();function $m(n,t){return Ro(zr(n)[at.DateFormat],t)}function Gm(n,t){return Ro(zr(n)[at.TimeFormat],t)}function qm(n,t){return Ro(zr(n)[at.DateTimeFormat],t)}function Fo(n,t){const e=zr(n),i=e[at.NumberSymbols][t];if(typeof i>"u"){if(t===kt.CurrencyDecimal)return e[at.NumberSymbols][kt.Decimal];if(t===kt.CurrencyGroup)return e[at.NumberSymbols][kt.Group]}return i}function xS(n){if(!n[at.ExtraData])throw new Error(`Missing extra locale data for the locale "${n[at.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Ro(n,t){for(let e=t;e>-1;e--)if(typeof n[e]<"u")return n[e];throw new Error("Locale data API: locale data undefined")}function wy(n){const[t,e]=n.split(":");return{hours:+t,minutes:+e}}const z4=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Uh={},U4=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var er=(()=>((er=er||{})[er.Short=0]="Short",er[er.ShortGMT=1]="ShortGMT",er[er.Long=2]="Long",er[er.Extended=3]="Extended",er))(),Tt=(()=>((Tt=Tt||{})[Tt.FullYear=0]="FullYear",Tt[Tt.Month=1]="Month",Tt[Tt.Date=2]="Date",Tt[Tt.Hours=3]="Hours",Tt[Tt.Minutes=4]="Minutes",Tt[Tt.Seconds=5]="Seconds",Tt[Tt.FractionalSeconds=6]="FractionalSeconds",Tt[Tt.Day=7]="Day",Tt))(),zt=(()=>((zt=zt||{})[zt.DayPeriods=0]="DayPeriods",zt[zt.Days=1]="Days",zt[zt.Months=2]="Months",zt[zt.Eras=3]="Eras",zt))();function CS(n,t,e,i){let o=function J4(n){if(DS(n))return n;if("number"==typeof n&&!isNaN(n))return new Date(n);if("string"==typeof n){if(n=n.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(n)){const[o,s=1,a=1]=n.split("-").map(l=>+l);return Km(o,s-1,a)}const e=parseFloat(n);if(!isNaN(n-e))return new Date(e);let i;if(i=n.match(z4))return function e5(n){const t=new Date(0);let e=0,i=0;const o=n[8]?t.setUTCFullYear:t.setFullYear,s=n[8]?t.setUTCHours:t.setHours;n[9]&&(e=Number(n[9]+n[10]),i=Number(n[9]+n[11])),o.call(t,Number(n[1]),Number(n[2])-1,Number(n[3]));const a=Number(n[4]||0)-e,l=Number(n[5]||0)-i,d=Number(n[6]||0),w=Math.floor(1e3*parseFloat("0."+(n[7]||0)));return s.call(t,a,l,d,w),t}(i)}const t=new Date(n);if(!DS(t))throw new Error(`Unable to convert "${n}" into a date`);return t}(n);t=na(e,t)||t;let l,a=[];for(;t;){if(l=U4.exec(t),!l){a.push(t);break}{a=a.concat(l.slice(1));const P=a.pop();if(!P)break;t=P}}let d=o.getTimezoneOffset();i&&(d=SS(i,d),o=function Q4(n,t,e){const i=e?-1:1,o=n.getTimezoneOffset();return function X4(n,t){return(n=new Date(n.getTime())).setMinutes(n.getMinutes()+t),n}(n,i*(SS(t,o)-o))}(o,i,!0));let w="";return a.forEach(P=>{const Y=function Z4(n){if(Cy[n])return Cy[n];let t;switch(n){case"G":case"GG":case"GGG":t=Kn(zt.Eras,Xt.Abbreviated);break;case"GGGG":t=Kn(zt.Eras,Xt.Wide);break;case"GGGGG":t=Kn(zt.Eras,Xt.Narrow);break;case"y":t=Wi(Tt.FullYear,1,0,!1,!0);break;case"yy":t=Wi(Tt.FullYear,2,0,!0,!0);break;case"yyy":t=Wi(Tt.FullYear,3,0,!1,!0);break;case"yyyy":t=Wi(Tt.FullYear,4,0,!1,!0);break;case"Y":t=Jm(1);break;case"YY":t=Jm(2,!0);break;case"YYY":t=Jm(3);break;case"YYYY":t=Jm(4);break;case"M":case"L":t=Wi(Tt.Month,1,1);break;case"MM":case"LL":t=Wi(Tt.Month,2,1);break;case"MMM":t=Kn(zt.Months,Xt.Abbreviated);break;case"MMMM":t=Kn(zt.Months,Xt.Wide);break;case"MMMMM":t=Kn(zt.Months,Xt.Narrow);break;case"LLL":t=Kn(zt.Months,Xt.Abbreviated,Ai.Standalone);break;case"LLLL":t=Kn(zt.Months,Xt.Wide,Ai.Standalone);break;case"LLLLL":t=Kn(zt.Months,Xt.Narrow,Ai.Standalone);break;case"w":t=xy(1);break;case"ww":t=xy(2);break;case"W":t=xy(1,!0);break;case"d":t=Wi(Tt.Date,1);break;case"dd":t=Wi(Tt.Date,2);break;case"c":case"cc":t=Wi(Tt.Day,1);break;case"ccc":t=Kn(zt.Days,Xt.Abbreviated,Ai.Standalone);break;case"cccc":t=Kn(zt.Days,Xt.Wide,Ai.Standalone);break;case"ccccc":t=Kn(zt.Days,Xt.Narrow,Ai.Standalone);break;case"cccccc":t=Kn(zt.Days,Xt.Short,Ai.Standalone);break;case"E":case"EE":case"EEE":t=Kn(zt.Days,Xt.Abbreviated);break;case"EEEE":t=Kn(zt.Days,Xt.Wide);break;case"EEEEE":t=Kn(zt.Days,Xt.Narrow);break;case"EEEEEE":t=Kn(zt.Days,Xt.Short);break;case"a":case"aa":case"aaa":t=Kn(zt.DayPeriods,Xt.Abbreviated);break;case"aaaa":t=Kn(zt.DayPeriods,Xt.Wide);break;case"aaaaa":t=Kn(zt.DayPeriods,Xt.Narrow);break;case"b":case"bb":case"bbb":t=Kn(zt.DayPeriods,Xt.Abbreviated,Ai.Standalone,!0);break;case"bbbb":t=Kn(zt.DayPeriods,Xt.Wide,Ai.Standalone,!0);break;case"bbbbb":t=Kn(zt.DayPeriods,Xt.Narrow,Ai.Standalone,!0);break;case"B":case"BB":case"BBB":t=Kn(zt.DayPeriods,Xt.Abbreviated,Ai.Format,!0);break;case"BBBB":t=Kn(zt.DayPeriods,Xt.Wide,Ai.Format,!0);break;case"BBBBB":t=Kn(zt.DayPeriods,Xt.Narrow,Ai.Format,!0);break;case"h":t=Wi(Tt.Hours,1,-12);break;case"hh":t=Wi(Tt.Hours,2,-12);break;case"H":t=Wi(Tt.Hours,1);break;case"HH":t=Wi(Tt.Hours,2);break;case"m":t=Wi(Tt.Minutes,1);break;case"mm":t=Wi(Tt.Minutes,2);break;case"s":t=Wi(Tt.Seconds,1);break;case"ss":t=Wi(Tt.Seconds,2);break;case"S":t=Wi(Tt.FractionalSeconds,1);break;case"SS":t=Wi(Tt.FractionalSeconds,2);break;case"SSS":t=Wi(Tt.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=Xm(er.Short);break;case"ZZZZZ":t=Xm(er.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=Xm(er.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=Xm(er.Long);break;default:return null}return Cy[n]=t,t}(P);w+=Y?Y(o,e,d):"''"===P?"'":P.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),w}function Km(n,t,e){const i=new Date(0);return i.setFullYear(n,t,e),i.setHours(0,0,0),i}function na(n,t){const e=function I4(n){return zr(n)[at.LocaleId]}(n);if(Uh[e]=Uh[e]||{},Uh[e][t])return Uh[e][t];let i="";switch(t){case"shortDate":i=$m(n,gi.Short);break;case"mediumDate":i=$m(n,gi.Medium);break;case"longDate":i=$m(n,gi.Long);break;case"fullDate":i=$m(n,gi.Full);break;case"shortTime":i=Gm(n,gi.Short);break;case"mediumTime":i=Gm(n,gi.Medium);break;case"longTime":i=Gm(n,gi.Long);break;case"fullTime":i=Gm(n,gi.Full);break;case"short":const o=na(n,"shortTime"),s=na(n,"shortDate");i=Zm(qm(n,gi.Short),[o,s]);break;case"medium":const a=na(n,"mediumTime"),l=na(n,"mediumDate");i=Zm(qm(n,gi.Medium),[a,l]);break;case"long":const d=na(n,"longTime"),w=na(n,"longDate");i=Zm(qm(n,gi.Long),[d,w]);break;case"full":const P=na(n,"fullTime"),Y=na(n,"fullDate");i=Zm(qm(n,gi.Full),[P,Y])}return i&&(Uh[e][t]=i),i}function Zm(n,t){return t&&(n=n.replace(/\{([^}]+)}/g,function(e,i){return null!=t&&i in t?t[i]:e})),n}function is(n,t,e="-",i,o){let s="";(n<0||o&&n<=0)&&(o?n=1-n:(n=-n,s=e));let a=String(n);for(;a.length0||l>-e)&&(l+=e),n===Tt.Hours)0===l&&-12===e&&(l=12);else if(n===Tt.FractionalSeconds)return function W4(n,t){return is(n,3).substring(0,t)}(l,t);const d=Fo(a,kt.MinusSign);return is(l,t,d,i,o)}}function Kn(n,t,e=Ai.Format,i=!1){return function(o,s){return function G4(n,t,e,i,o,s){switch(e){case zt.Months:return function A4(n,t,e){const i=zr(n),s=Ro([i[at.MonthsFormat],i[at.MonthsStandalone]],t);return Ro(s,e)}(t,o,i)[n.getMonth()];case zt.Days:return function O4(n,t,e){const i=zr(n),s=Ro([i[at.DaysFormat],i[at.DaysStandalone]],t);return Ro(s,e)}(t,o,i)[n.getDay()];case zt.DayPeriods:const a=n.getHours(),l=n.getMinutes();if(s){const w=function Y4(n){const t=zr(n);return xS(t),(t[at.ExtraData][2]||[]).map(i=>"string"==typeof i?wy(i):[wy(i[0]),wy(i[1])])}(t),P=function B4(n,t,e){const i=zr(n);xS(i);const s=Ro([i[at.ExtraData][0],i[at.ExtraData][1]],t)||[];return Ro(s,e)||[]}(t,o,i),Y=w.findIndex(q=>{if(Array.isArray(q)){const[te,pe]=q,ke=a>=te.hours&&l>=te.minutes,Ie=a0?Math.floor(o/60):Math.ceil(o/60);switch(n){case er.Short:return(o>=0?"+":"")+is(a,2,s)+is(Math.abs(o%60),2,s);case er.ShortGMT:return"GMT"+(o>=0?"+":"")+is(a,1,s);case er.Long:return"GMT"+(o>=0?"+":"")+is(a,2,s)+":"+is(Math.abs(o%60),2,s);case er.Extended:return 0===i?"Z":(o>=0?"+":"")+is(a,2,s)+":"+is(Math.abs(o%60),2,s);default:throw new Error(`Unknown zone width "${n}"`)}}}function kS(n){return Km(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay()))}function xy(n,t=!1){return function(e,i){let o;if(t){const s=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,a=e.getDate();o=1+Math.floor((a+s)/7)}else{const s=kS(e),a=function K4(n){const t=Km(n,0,1).getDay();return Km(n,0,1+(t<=4?4:11)-t)}(s.getFullYear()),l=s.getTime()-a.getTime();o=1+Math.round(l/6048e5)}return is(o,n,Fo(i,kt.MinusSign))}}function Jm(n,t=!1){return function(e,i){return is(kS(e).getFullYear(),n,Fo(i,kt.MinusSign),t)}}const Cy={};function SS(n,t){n=n.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+n)/6e4;return isNaN(e)?t:e}function DS(n){return n instanceof Date&&!isNaN(n.valueOf())}function IS(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[o,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===t)return decodeURIComponent(s)}return null}let Rn=(()=>{class n{constructor(e,i,o,s){this._iterableDiffers=e,this._keyValueDiffers=i,this._ngEl=o,this._renderer=s,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(Lh(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){const e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}}_applyKeyValueChanges(e){e.forEachAddedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachChangedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachRemovedItem(i=>{i.previousValue&&this._toggleClass(i.key,!1)})}_applyIterableChanges(e){e.forEachAddedItem(i=>{if("string"!=typeof i.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${Fn(i.item)}`);this._toggleClass(i.item,!0)}),e.forEachRemovedItem(i=>this._toggleClass(i.item,!1))}_applyClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!0)):Object.keys(e).forEach(i=>this._toggleClass(i,!!e[i])))}_removeClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!1)):Object.keys(e).forEach(i=>this._toggleClass(i,!1)))}_toggleClass(e,i){(e=e.trim())&&e.split(/\s+/g).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return n.\u0275fac=function(e){return new(e||n)(F(Vh),F(jh),F(bt),F(Ks))},n.\u0275dir=Ke({type:n,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),n})();class p5{constructor(t,e,i,o){this.$implicit=t,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let bi=(()=>{class n{constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,s,a)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new p5(o.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===s?void 0:s);else if(null!==s){const l=i.get(s);i.move(l,a),AS(l,o)}});for(let o=0,s=i.length;o{AS(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(F(Qi),F(cr),F(Vh))},n.\u0275dir=Ke({type:n,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),n})();function AS(n,t){n.context.$implicit=t.item}let It=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new _5,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){FS("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){FS("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(F(Qi),F(cr))},n.\u0275dir=Ke({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),n})();class _5{constructor(){this.$implicit=null,this.ngIf=null}}function FS(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${Fn(t)}'.`)}class Ey{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let $h=(()=>{class n{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(e)}_matchCase(e){const i=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews&&e!==this._defaultUsed){this._defaultUsed=e;for(let i=0;i{class n{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new Ey(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return n.\u0275fac=function(e){return new(e||n)(F(Qi),F(cr),F($h,9))},n.\u0275dir=Ke({type:n,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0}),n})(),RS=(()=>{class n{constructor(e,i,o){o._addDefault(new Ey(e,i))}}return n.\u0275fac=function(e){return new(e||n)(F(Qi),F(cr),F($h,9))},n.\u0275dir=Ke({type:n,selectors:[["","ngSwitchDefault",""]],standalone:!0}),n})(),Rd=(()=>{class n{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(e.ngTemplateOutlet||e.ngTemplateOutletInjector){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),this.ngTemplateOutlet){const{ngTemplateOutlet:o,ngTemplateOutletContext:s,ngTemplateOutletInjector:a}=this;this._viewRef=i.createEmbeddedView(o,s,a?{injector:a}:void 0)}else this._viewRef=null}else this._viewRef&&e.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return n.\u0275fac=function(e){return new(e||n)(F(Qi))},n.\u0275dir=Ke({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[qi]}),n})();const L5=new He("DATE_PIPE_DEFAULT_TIMEZONE"),E5=new He("DATE_PIPE_DEFAULT_OPTIONS");let YS=(()=>{class n{constructor(e,i,o){this.locale=e,this.defaultTimezone=i,this.defaultOptions=o}transform(e,i,o,s){if(null==e||""===e||e!=e)return null;try{return CS(e,i??this.defaultOptions?.dateFormat??"mediumDate",s||this.locale,o??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(a){throw function rs(n,t){return new Fe(2100,!1)}()}}}return n.\u0275fac=function(e){return new(e||n)(F(xs,16),F(L5,24),F(E5,24))},n.\u0275pipe=Jn({name:"date",type:n,pure:!0,standalone:!0}),n})(),ia=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();const HS="browser";let W5=(()=>{class n{}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:()=>new $5(we(Dt),window)}),n})();class $5{constructor(t,e){this.document=t,this.window=e,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(t){this.supportsScrolling()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(!this.supportsScrolling())return;const e=function G5(n,t){const e=n.getElementById(t)||n.getElementsByName(t)[0];if(e)return e;if("function"==typeof n.createTreeWalker&&n.body&&(n.body.createShadowRoot||n.body.attachShadow)){const i=n.createTreeWalker(n.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const s=o.shadowRoot;if(s){const a=s.getElementById(t)||s.querySelector(`[name="${t}"]`);if(a)return a}o=i.nextNode()}}return null}(this.document,t);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}}scrollToElement(t){const e=t.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(i-s[0],o-s[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const t=VS(this.window.history)||VS(Object.getPrototypeOf(this.window.history));return!(!t||!t.writable&&!t.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function VS(n){return Object.getOwnPropertyDescriptor(n,"scrollRestoration")}class jS{}class yY extends x4{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Ry extends yY{static makeCurrent(){!function w4(n){by||(by=n)}(new Ry)}onAndCancel(t,e,i){return t.addEventListener(e,i,!1),()=>{t.removeEventListener(e,i,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=function MY(){return qh=qh||document.querySelector("base"),qh?qh.getAttribute("href"):null}();return null==e?null:function wY(n){n_=n_||document.createElement("a"),n_.setAttribute("href",n);const t=n_.pathname;return"/"===t.charAt(0)?t:`/${t}`}(e)}resetBaseElement(){qh=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return IS(document.cookie,t)}}let n_,qh=null;const qS=new He("TRANSITION_ID"),CY=[{provide:Bm,useFactory:function xY(n,t,e){return()=>{e.get(Hm).donePromise.then(()=>{const i=Cs(),o=t.querySelectorAll(`style[ng-transition="${n}"]`);for(let s=0;s{class n{build(){return new XMLHttpRequest}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const i_=new He("EventManagerPlugins");let r_=(()=>{class n{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>o.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}addGlobalEventListener(e,i,o){return this._findPluginFor(i).addGlobalEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){const i=this._eventNameToPlugin.get(e);if(i)return i;const o=this._plugins;for(let s=0;s{class n{constructor(){this._stylesSet=new Set}addStyles(e){const i=new Set;e.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),i.add(o))}),this.onStylesAdded(i)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Kh=(()=>{class n extends ZS{constructor(e){super(),this._doc=e,this._hostNodes=new Map,this._hostNodes.set(e.head,[])}_addStylesToHost(e,i,o){e.forEach(s=>{const a=this._doc.createElement("style");a.textContent=s,o.push(i.appendChild(a))})}addHost(e){const i=[];this._addStylesToHost(this._stylesSet,e,i),this._hostNodes.set(e,i)}removeHost(e){const i=this._hostNodes.get(e);i&&i.forEach(XS),this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach((i,o)=>{this._addStylesToHost(e,o,i)})}ngOnDestroy(){this._hostNodes.forEach(e=>e.forEach(XS))}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function XS(n){Cs().remove(n)}const Ny={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},Yy=/%COMP%/g;function By(n,t){return t.flat(100).map(e=>e.replace(Yy,n))}function eD(n){return t=>{if("__ngUnwrap__"===t)return n;!1===n(t)&&(t.preventDefault(),t.returnValue=!1)}}let o_=(()=>{class n{constructor(e,i,o){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Hy(e)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;switch(i.encapsulation){case Nr.Emulated:{let o=this.rendererByCompId.get(i.id);return o||(o=new PY(this.eventManager,this.sharedStylesHost,i,this.appId),this.rendererByCompId.set(i.id,o)),o.applyToHost(e),o}case 1:case Nr.ShadowDom:return new OY(this.eventManager,this.sharedStylesHost,e,i);default:if(!this.rendererByCompId.has(i.id)){const o=By(i.id,i.styles);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(i.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return n.\u0275fac=function(e){return new(e||n)(we(r_),we(Kh),we(Od))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class Hy{constructor(t){this.eventManager=t,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,e){return e?document.createElementNS(Ny[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){(nD(t)?t.content:t).appendChild(e)}insertBefore(t,e,i){t&&(nD(t)?t.content:t).insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?document.querySelector(t):t;if(!i)throw new Error(`The selector "${t}" did not match any elements`);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,o){if(o){e=o+":"+e;const s=Ny[o];s?t.setAttributeNS(s,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const o=Ny[i];o?t.removeAttributeNS(o,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,o){o&(Qr.DashCase|Qr.Important)?t.style.setProperty(e,i,o&Qr.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&Qr.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){t[e]=i}setValue(t,e){t.nodeValue=e}listen(t,e,i){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,eD(i)):this.eventManager.addEventListener(t,e,eD(i))}}function nD(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class PY extends Hy{constructor(t,e,i,o){super(t),this.component=i;const s=By(o+"-"+i.id,i.styles);e.addStyles(s),this.contentAttr=function LY(n){return"_ngcontent-%COMP%".replace(Yy,n)}(o+"-"+i.id),this.hostAttr=function EY(n){return"_nghost-%COMP%".replace(Yy,n)}(o+"-"+i.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}class OY extends Hy{constructor(t,e,i,o){super(t),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=By(o.id,o.styles);for(let a=0;a{class n extends KS{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const iD=["alt","control","meta","shift"],FY={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},RY={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let NY=(()=>{class n extends KS{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,o){const s=n.parseEventName(i),a=n.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Cs().onAndCancel(e,s.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const s=n._normalizeKey(i.pop());let a="",l=i.indexOf("code");if(l>-1&&(i.splice(l,1),a="code."),iD.forEach(w=>{const P=i.indexOf(w);P>-1&&(i.splice(P,1),a+=w+".")}),a+=s,0!=i.length||0===s.length)return null;const d={};return d.domEventName=o,d.fullKey=a,d}static matchEventFullKeyCode(e,i){let o=FY[e.key]||e.key,s="";return i.indexOf("code.")>-1&&(o=e.code,s="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),iD.forEach(a=>{a!==o&&(0,RY[a])(e)&&(s+=a+".")}),s+=o,s===i)}static eventCallback(e,i,o){return s=>{n.matchEventFullKeyCode(s,e)&&o.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const oD=[{provide:Vm,useValue:HS},{provide:jk,useValue:function YY(){Ry.makeCurrent()},multi:!0},{provide:Dt,useFactory:function HY(){return function CO(n){Zb=n}(document),document},deps:[]}],VY=Jk(v4,"browser",oD),sD=new He(""),aD=[{provide:jm,useClass:class kY{addToWindow(t){dn.getAngularTestability=(i,o=!0)=>{const s=t.findTestabilityInTree(i,o);if(null==s)throw new Error("Could not find testability for element.");return s},dn.getAllAngularTestabilities=()=>t.getAllTestabilities(),dn.getAllAngularRootElements=()=>t.getAllRootElements(),dn.frameworkStabilizers||(dn.frameworkStabilizers=[]),dn.frameworkStabilizers.push(i=>{const o=dn.getAllAngularTestabilities();let s=o.length,a=!1;const l=function(d){a=a||d,s--,0==s&&i(a)};o.forEach(function(d){d.whenStable(l)})})}findTestabilityInTree(t,e,i){return null==e?null:t.getTestability(e)??(i?Cs().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null)}},deps:[]},{provide:Kk,useClass:cy,deps:[pt,dy,jm]},{provide:cy,useClass:cy,deps:[pt,dy,jm]}],lD=[{provide:rv,useValue:"root"},{provide:Zs,useFactory:function BY(){return new Zs},deps:[]},{provide:i_,useClass:AY,multi:!0,deps:[Dt,pt,Vm]},{provide:i_,useClass:NY,multi:!0,deps:[Dt]},{provide:o_,useClass:o_,deps:[r_,Kh,Od]},{provide:kh,useExisting:o_},{provide:ZS,useExisting:Kh},{provide:Kh,useClass:Kh,deps:[Dt]},{provide:r_,useClass:r_,deps:[i_,pt]},{provide:jS,useClass:SY,deps:[]},[]];let cD=(()=>{class n{constructor(e){}static withServerTransition(e){return{ngModule:n,providers:[{provide:Od,useValue:e.appId},{provide:qS,useExisting:Od},CY]}}}return n.\u0275fac=function(e){return new(e||n)(we(sD,12))},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[...lD,...aD],imports:[ia,y4]}),n})(),dD=(()=>{class n{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:function(e){let i=null;return i=e?new e:function zY(){return new dD(we(Dt))}(),i},providedIn:"root"}),n})();typeof window<"u"&&window;let zy=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(e){let i=null;return i=e?new(e||n):we(fD),i},providedIn:"root"}),n})(),fD=(()=>{class n extends zy{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case xn.NONE:return i;case xn.HTML:return gs(i,"HTML")?po(i):Pw(this._doc,String(i)).toString();case xn.STYLE:return gs(i,"Style")?po(i):i;case xn.SCRIPT:if(gs(i,"Script"))return po(i);throw new Error("unsafe value used in a script context");case xn.URL:return gs(i,"URL")?po(i):mm(String(i));case xn.RESOURCE_URL:if(gs(i,"ResourceURL"))return po(i);throw new Error(`unsafe value used in a resource URL context (see ${Do})`);default:throw new Error(`Unexpected SecurityContext ${e} (see ${Do})`)}}bypassSecurityTrustHtml(e){return function IO(n){return new kO(n)}(e)}bypassSecurityTrustStyle(e){return function PO(n){return new SO(n)}(e)}bypassSecurityTrustScript(e){return function OO(n){return new DO(n)}(e)}bypassSecurityTrustUrl(e){return function AO(n){return new TO(n)}(e)}bypassSecurityTrustResourceUrl(e){return function FO(n){return new LO(n)}(e)}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:function(e){let i=null;return i=e?new e:function ZY(n){return new fD(n.get(Dt))}(we(_i)),i},providedIn:"root"}),n})();class pD{}class XY{}const ra="*";function oa(n,t){return{type:7,name:n,definitions:t,options:{}}}function Wr(n,t=null){return{type:4,styles:t,timings:n}}function _D(n,t=null){return{type:2,steps:n,options:t}}function Zn(n){return{type:6,styles:n,offset:null}}function go(n,t,e){return{type:0,name:n,styles:t,options:e}}function Er(n,t,e=null){return{type:1,expr:n,animation:t,options:e}}function Uy(n=null){return{type:9,options:n}}function Wy(n,t,e=null){return{type:11,selector:n,animation:t,options:e}}function gD(n){Promise.resolve().then(n)}class Zh{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){gD(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class bD{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,o=0;const s=this.players.length;0==s?gD(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++o==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,l)=>Math.max(a,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const t=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function vD(n){return new Fe(3e3,!1)}function PB(){return typeof window<"u"&&typeof window.document<"u"}function Gy(){return typeof process<"u"&&"[object process]"==={}.toString.call(process)}function Ua(n){switch(n.length){case 0:return new Zh;case 1:return n[0];default:return new bD(n)}}function yD(n,t,e,i,o=new Map,s=new Map){const a=[],l=[];let d=-1,w=null;if(i.forEach(P=>{const Y=P.get("offset"),q=Y==d,te=q&&w||new Map;P.forEach((pe,ke)=>{let Ie=ke,Re=pe;if("offset"!==ke)switch(Ie=t.normalizePropertyName(Ie,a),Re){case"!":Re=o.get(ke);break;case ra:Re=s.get(ke);break;default:Re=t.normalizeStyleValue(ke,Ie,Re,a)}te.set(Ie,Re)}),q||l.push(te),w=te,d=Y}),a.length)throw function yB(n){return new Fe(3502,!1)}();return l}function qy(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&Ky(e,"start",n)));break;case"done":n.onDone(()=>i(e&&Ky(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&Ky(e,"destroy",n)))}}function Ky(n,t,e){const s=Zy(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,e.totalTime??n.totalTime,!!e.disabled),a=n._data;return null!=a&&(s._data=a),s}function Zy(n,t,e,i,o="",s=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:o,totalTime:s,disabled:!!a}}function bo(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function MD(n){const t=n.indexOf(":");return[n.substring(1,t),n.slice(t+1)]}let Xy=(n,t)=>!1,wD=(n,t,e)=>[],xD=null;function Qy(n){const t=n.parentNode||n.host;return t===xD?null:t}(Gy()||typeof Element<"u")&&(PB()?(xD=(()=>document.documentElement)(),Xy=(n,t)=>{for(;t;){if(t===n)return!0;t=Qy(t)}return!1}):Xy=(n,t)=>n.contains(t),wD=(n,t,e)=>{if(e)return Array.from(n.querySelectorAll(t));const i=n.querySelector(t);return i?[i]:[]});let Ul=null,CD=!1;const kD=Xy,SD=wD;let DD=(()=>{class n{validateStyleProperty(e){return function AB(n){Ul||(Ul=function FB(){return typeof document<"u"?document.body:null}()||{},CD=!!Ul.style&&"WebkitAppearance"in Ul.style);let t=!0;return Ul.style&&!function OB(n){return"ebkit"==n.substring(1,6)}(n)&&(t=n in Ul.style,!t&&CD&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in Ul.style)),t}(e)}matchesElement(e,i){return!1}containsElement(e,i){return kD(e,i)}getParentElement(e){return Qy(e)}query(e,i,o){return SD(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,s,a,l=[],d){return new Zh(o,s)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Jy=(()=>{class n{}return n.NOOP=new DD,n})();const e0="ng-enter",s_="ng-leave",a_="ng-trigger",l_=".ng-trigger",LD="ng-animating",t0=".ng-animating";function sa(n){if("number"==typeof n)return n;const t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:n0(parseFloat(t[1]),t[2])}function n0(n,t){return"s"===t?1e3*n:n}function c_(n,t,e){return n.hasOwnProperty("duration")?n:function YB(n,t,e){let o,s=0,a="";if("string"==typeof n){const l=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===l)return t.push(vD()),{duration:0,delay:0,easing:""};o=n0(parseFloat(l[1]),l[2]);const d=l[3];null!=d&&(s=n0(parseFloat(d),l[4]));const w=l[5];w&&(a=w)}else o=n;if(!e){let l=!1,d=t.length;o<0&&(t.push(function QY(){return new Fe(3100,!1)}()),l=!0),s<0&&(t.push(function JY(){return new Fe(3101,!1)}()),l=!0),l&&t.splice(d,0,vD())}return{duration:o,delay:s,easing:a}}(n,t,e)}function Xh(n,t={}){return Object.keys(n).forEach(e=>{t[e]=n[e]}),t}function ED(n){const t=new Map;return Object.keys(n).forEach(e=>{t.set(e,n[e])}),t}function Wa(n,t=new Map,e){if(e)for(let[i,o]of e)t.set(i,o);for(let[i,o]of n)t.set(i,o);return t}function PD(n,t,e){return e?t+":"+e+";":""}function OD(n){let t="";for(let e=0;e{const s=o0(o);e&&!e.has(o)&&e.set(o,n.style[s]),n.style[s]=i}),Gy()&&OD(n))}function Wl(n,t){n.style&&(t.forEach((e,i)=>{const o=o0(i);n.style[o]=""}),Gy()&&OD(n))}function Qh(n){return Array.isArray(n)?1==n.length?n[0]:_D(n):n}const r0=new RegExp("{{\\s*(.+?)\\s*}}","g");function AD(n){let t=[];if("string"==typeof n){let e;for(;e=r0.exec(n);)t.push(e[1]);r0.lastIndex=0}return t}function Jh(n,t,e){const i=n.toString(),o=i.replace(r0,(s,a)=>{let l=t[a];return null==l&&(e.push(function tB(n){return new Fe(3003,!1)}()),l=""),l.toString()});return o==i?n:o}function d_(n){const t=[];let e=n.next();for(;!e.done;)t.push(e.value),e=n.next();return t}const VB=/-+([a-z0-9])/g;function o0(n){return n.replace(VB,(...t)=>t[1].toUpperCase())}function jB(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function vo(n,t,e){switch(t.type){case 7:return n.visitTrigger(t,e);case 0:return n.visitState(t,e);case 1:return n.visitTransition(t,e);case 2:return n.visitSequence(t,e);case 3:return n.visitGroup(t,e);case 4:return n.visitAnimate(t,e);case 5:return n.visitKeyframes(t,e);case 6:return n.visitStyle(t,e);case 8:return n.visitReference(t,e);case 9:return n.visitAnimateChild(t,e);case 10:return n.visitAnimateRef(t,e);case 11:return n.visitQuery(t,e);case 12:return n.visitStagger(t,e);default:throw function nB(n){return new Fe(3004,!1)}()}}function FD(n,t){return window.getComputedStyle(n)[t]}function qB(n,t){const e=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function KB(n,t,e){if(":"==n[0]){const d=function ZB(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(n,e);if("function"==typeof d)return void t.push(d);n=d}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function mB(n){return new Fe(3015,!1)}()),t;const o=i[1],s=i[2],a=i[3];t.push(RD(o,a));"<"==s[0]&&!("*"==o&&"*"==a)&&t.push(RD(a,o))}(i,e,t)):e.push(n),e}const p_=new Set(["true","1"]),m_=new Set(["false","0"]);function RD(n,t){const e=p_.has(n)||m_.has(n),i=p_.has(t)||m_.has(t);return(o,s)=>{let a="*"==n||n==o,l="*"==t||t==s;return!a&&e&&"boolean"==typeof o&&(a=o?p_.has(n):m_.has(n)),!l&&i&&"boolean"==typeof s&&(l=s?p_.has(t):m_.has(t)),a&&l}}const XB=new RegExp("s*:selfs*,?","g");function s0(n,t,e,i){return new QB(n).build(t,e,i)}class QB{constructor(t){this._driver=t}build(t,e,i){const o=new tH(e);return this._resetContextStyleTimingState(o),vo(this,Qh(t),o)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles=new Map,t.collectedStyles.set("",new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,o=e.depCount=0;const s=[],a=[];return"@"==t.name.charAt(0)&&e.errors.push(function rB(){return new Fe(3006,!1)}()),t.definitions.forEach(l=>{if(this._resetContextStyleTimingState(e),0==l.type){const d=l,w=d.name;w.toString().split(/\s*,\s*/).forEach(P=>{d.name=P,s.push(this.visitState(d,e))}),d.name=w}else if(1==l.type){const d=this.visitTransition(l,e);i+=d.queryCount,o+=d.depCount,a.push(d)}else e.errors.push(function oB(){return new Fe(3007,!1)}())}),{type:7,name:t.name,states:s,transitions:a,queryCount:i,depCount:o,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),o=t.options&&t.options.params||null;if(i.containsDynamicStyles){const s=new Set,a=o||{};i.styles.forEach(l=>{l instanceof Map&&l.forEach(d=>{AD(d).forEach(w=>{a.hasOwnProperty(w)||s.add(w)})})}),s.size&&(d_(s.values()),e.errors.push(function sB(n,t){return new Fe(3008,!1)}()))}return{type:0,name:t.name,style:i,options:o?{params:o}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=vo(this,Qh(t.animation),e);return{type:1,matchers:qB(t.expr,e.errors),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:$l(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map(i=>vo(this,i,e)),options:$l(t.options)}}visitGroup(t,e){const i=e.currentTime;let o=0;const s=t.steps.map(a=>{e.currentTime=i;const l=vo(this,a,e);return o=Math.max(o,e.currentTime),l});return e.currentTime=o,{type:3,steps:s,options:$l(t.options)}}visitAnimate(t,e){const i=function iH(n,t){if(n.hasOwnProperty("duration"))return n;if("number"==typeof n)return a0(c_(n,t).duration,0,"");const e=n;if(e.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=a0(0,0,"");return s.dynamic=!0,s.strValue=e,s}const o=c_(e,t);return a0(o.duration,o.delay,o.easing)}(t.timings,e.errors);e.currentAnimateTimings=i;let o,s=t.styles?t.styles:Zn({});if(5==s.type)o=this.visitKeyframes(s,e);else{let a=t.styles,l=!1;if(!a){l=!0;const w={};i.easing&&(w.easing=i.easing),a=Zn(w)}e.currentTime+=i.duration+i.delay;const d=this.visitStyle(a,e);d.isEmptyStep=l,o=d}return e.currentAnimateTimings=null,{type:4,timings:i,style:o,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[],o=Array.isArray(t.styles)?t.styles:[t.styles];for(let l of o)"string"==typeof l?l===ra?i.push(l):e.errors.push(new Fe(3002,!1)):i.push(ED(l));let s=!1,a=null;return i.forEach(l=>{if(l instanceof Map&&(l.has("easing")&&(a=l.get("easing"),l.delete("easing")),!s))for(let d of l.values())if(d.toString().indexOf("{{")>=0){s=!0;break}}),{type:6,styles:i,easing:a,offset:t.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let o=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(a=>{"string"!=typeof a&&a.forEach((l,d)=>{const w=e.collectedStyles.get(e.currentQuerySelector),P=w.get(d);let Y=!0;P&&(s!=o&&s>=P.startTime&&o<=P.endTime&&(e.errors.push(function lB(n,t,e,i,o){return new Fe(3010,!1)}()),Y=!1),s=P.startTime),Y&&w.set(d,{startTime:s,endTime:o}),e.options&&function HB(n,t,e){const i=t.params||{},o=AD(n);o.length&&o.forEach(s=>{i.hasOwnProperty(s)||e.push(function eB(n){return new Fe(3001,!1)}())})}(l,e.options,e.errors)})})}visitKeyframes(t,e){const i={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function cB(){return new Fe(3011,!1)}()),i;let s=0;const a=[];let l=!1,d=!1,w=0;const P=t.steps.map(Re=>{const Xe=this._makeStyleAst(Re,e);let Ae=null!=Xe.offset?Xe.offset:function nH(n){if("string"==typeof n)return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){const e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}(Xe.styles),ct=0;return null!=Ae&&(s++,ct=Xe.offset=Ae),d=d||ct<0||ct>1,l=l||ct0&&s{const Ae=q>0?Xe==te?1:q*Xe:a[Xe],ct=Ae*Ie;e.currentTime=pe+ke.delay+ct,ke.duration=ct,this._validateStyleAst(Re,e),Re.offset=Ae,i.styles.push(Re)}),i}visitReference(t,e){return{type:8,animation:vo(this,Qh(t.animation),e),options:$l(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:$l(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:$l(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,o=t.options||{};e.queryCount++,e.currentQuery=t;const[s,a]=function JB(n){const t=!!n.split(/\s*,\s*/).find(e=>":self"==e);return t&&(n=n.replace(XB,"")),n=n.replace(/@\*/g,l_).replace(/@\w+/g,e=>l_+"-"+e.slice(1)).replace(/:animating/g,t0),[n,t]}(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,bo(e.collectedStyles,e.currentQuerySelector,new Map);const l=vo(this,Qh(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:11,selector:s,limit:o.limit||0,optional:!!o.optional,includeSelf:a,animation:l,originalSelector:t.selector,options:$l(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(function fB(){return new Fe(3013,!1)}());const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:c_(t.timings,e.errors,!0);return{type:12,animation:vo(this,Qh(t.animation),e),timings:i,options:null}}}class tH{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function $l(n){return n?(n=Xh(n)).params&&(n.params=function eH(n){return n?Xh(n):null}(n.params)):n={},n}function a0(n,t,e){return{duration:n,delay:t,easing:e}}function l0(n,t,e,i,o,s,a=null,l=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:o,delay:s,totalTime:o+s,easing:a,subTimeline:l}}class __{constructor(){this._map=new Map}get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const sH=new RegExp(":enter","g"),lH=new RegExp(":leave","g");function c0(n,t,e,i,o,s=new Map,a=new Map,l,d,w=[]){return(new cH).buildKeyframes(n,t,e,i,o,s,a,l,d,w)}class cH{buildKeyframes(t,e,i,o,s,a,l,d,w,P=[]){w=w||new __;const Y=new d0(t,e,w,o,s,P,[]);Y.options=d;const q=d.delay?sa(d.delay):0;Y.currentTimeline.delayNextStep(q),Y.currentTimeline.setStyles([a],null,Y.errors,d),vo(this,i,Y);const te=Y.timelines.filter(pe=>pe.containsAnimation());if(te.length&&l.size){let pe;for(let ke=te.length-1;ke>=0;ke--){const Ie=te[ke];if(Ie.element===e){pe=Ie;break}}pe&&!pe.allowOnlyTimelineStyles()&&pe.setStyles([l],null,Y.errors,d)}return te.length?te.map(pe=>pe.buildKeyframes()):[l0(e,[],[],[],0,q,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(t.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,o,o.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(const o of t){const s=o?.delay;if(s){const a="number"==typeof s?s:sa(Jh(s,o?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime;const a=null!=i.duration?sa(i.duration):null,l=null!=i.delay?sa(i.delay):null;return 0!==a&&t.forEach(d=>{const w=e.appendInstructionToTimeline(d,a,l);s=Math.max(s,w.duration+w.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),vo(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let o=e;const s=t.options;if(s&&(s.params||s.delay)&&(o=e.createSubContext(s),o.transformIntoNewTimeline(),null!=s.delay)){6==o.previousNode.type&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=g_);const a=sa(s.delay);o.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>vo(this,a,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let o=e.currentTimeline.currentTime;const s=t.options&&t.options.delay?sa(t.options.delay):0;t.steps.forEach(a=>{const l=e.createSubContext(t.options);s&&l.delayNextStep(s),vo(this,a,l),o=Math.max(o,l.currentTimeline.currentTime),i.push(l.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(o),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return c_(e.params?Jh(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const s=t.style;5==s.type?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const s=o&&o.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,s=i.duration,l=e.createSubContext().currentTimeline;l.easing=i.easing,t.styles.forEach(d=>{l.forwardTime((d.offset||0)*s),l.setStyles(d.styles,d.easing,e.errors,e.options),l.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(l),e.transformIntoNewTimeline(o+s),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,o=t.options||{},s=o.delay?sa(o.delay):0;s&&(6===e.previousNode.type||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=g_);let a=i;const l=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=l.length;let d=null;l.forEach((w,P)=>{e.currentQueryIndex=P;const Y=e.createSubContext(t.options,w);s&&Y.delayNextStep(s),w===e.element&&(d=Y.currentTimeline),vo(this,t.animation,Y),Y.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,Y.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),d&&(e.currentTimeline.mergeTimelineCollectedStyles(d),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,o=e.currentTimeline,s=t.timings,a=Math.abs(s.duration),l=a*(e.currentQueryTotal-1);let d=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":d=l-d;break;case"full":d=i.currentStaggerTime}const P=e.currentTimeline;d&&P.delayNextStep(d);const Y=P.currentTime;vo(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=o.currentTime-Y+(o.startTime-i.currentTimeline.startTime)}}const g_={};class d0{constructor(t,e,i,o,s,a,l,d){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=s,this.errors=a,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=g_,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=d||new b_(this._driver,e,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let o=this.options;null!=i.duration&&(o.duration=sa(i.duration)),null!=i.delay&&(o.delay=sa(i.delay));const s=i.params;if(s){let a=o.params;a||(a=this.options.params={}),Object.keys(s).forEach(l=>{(!e||!a.hasOwnProperty(l))&&(a[l]=Jh(s[l],a,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return t}createSubContext(t=null,e,i){const o=e||this.element,s=new d0(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=g_,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const o={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new dH(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,o,t.stretchStartingKeyframe);return this.timelines.push(s),o}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,o,s,a){let l=[];if(o&&l.push(this.element),t.length>0){t=(t=t.replace(sH,"."+this._enterClassName)).replace(lH,"."+this._leaveClassName);let w=this._driver.query(this.element,t,1!=i);0!==i&&(w=i<0?w.slice(w.length+i,w.length):w.slice(0,i)),l.push(...w)}return!s&&0==l.length&&a.push(function pB(n){return new Fe(3014,!1)}()),l}}class b_{constructor(t,e,i,o){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new b_(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||ra),this._currentKeyframe.set(e,ra);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,o){e&&this._previousKeyframe.set("easing",e);const s=o&&o.params||{},a=function uH(n,t){const e=new Map;let i;return n.forEach(o=>{if("*"===o){i=i||t.keys();for(let s of i)e.set(s,ra)}else Wa(o,e)}),e}(t,this._globalTimelineStyles);for(let[l,d]of a){const w=Jh(d,s,i);this._pendingStyles.set(l,w),this._localTimelineStyles.has(l)||this._backFill.set(l,this._globalTimelineStyles.get(l)??ra),this._updateStyle(l,w)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((l,d)=>{const w=Wa(l,new Map,this._backFill);w.forEach((P,Y)=>{"!"===P?t.add(Y):P===ra&&e.add(Y)}),i||w.set("offset",d/this.duration),o.push(w)});const s=t.size?d_(t.values()):[],a=e.size?d_(e.values()):[];if(i){const l=o[0],d=new Map(l);l.set("offset",0),d.set("offset",1),o=[l,d]}return l0(this.element,o,s,a,this.duration,this.startTime,this.easing,!1)}}class dH extends b_{constructor(t,e,i,o,s,a,l=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=s,this._stretchStartingKeyframe=l,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const s=[],a=i+e,l=e/a,d=Wa(t[0]);d.set("offset",0),s.push(d);const w=Wa(t[0]);w.set("offset",BD(l)),s.push(w);const P=t.length-1;for(let Y=1;Y<=P;Y++){let q=Wa(t[Y]);const te=q.get("offset");q.set("offset",BD((e+te*i)/a)),s.push(q)}i=a,e=0,o="",t=s}return l0(this.element,t,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function BD(n,t=3){const e=Math.pow(10,t-1);return Math.round(n*e)/e}class u0{}const hH=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class fH extends u0{normalizePropertyName(t,e){return o0(t)}normalizeStyleValue(t,e,i,o){let s="";const a=i.toString().trim();if(hH.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const l=i.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&0==l[1].length&&o.push(function iB(n,t){return new Fe(3005,!1)}())}return a+s}}function HD(n,t,e,i,o,s,a,l,d,w,P,Y,q){return{type:0,element:n,triggerName:t,isRemovalTransition:o,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:l,queriedElements:d,preStyleProps:w,postStyleProps:P,totalTime:Y,errors:q}}const h0={};class VD{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,o){return function pH(n,t,e,i,o){return n.some(s=>s(t,e,i,o))}(this.ast.matchers,t,e,i,o)}buildStyles(t,e,i){let o=this._stateStyles.get("*");return void 0!==t&&(o=this._stateStyles.get(t?.toString())||o),o?o.buildStyles(e,i):new Map}build(t,e,i,o,s,a,l,d,w,P){const Y=[],q=this.ast.options&&this.ast.options.params||h0,pe=this.buildStyles(i,l&&l.params||h0,Y),ke=d&&d.params||h0,Ie=this.buildStyles(o,ke,Y),Re=new Set,Xe=new Map,Ae=new Map,ct="void"===o,pn={params:mH(ke,q),delay:this.ast.options?.delay},wn=P?[]:c0(t,e,this.ast.animation,s,a,pe,Ie,pn,w,Y);let Fr=0;if(wn.forEach(Ma=>{Fr=Math.max(Ma.duration+Ma.delay,Fr)}),Y.length)return HD(e,this._triggerName,i,o,ct,pe,Ie,[],[],Xe,Ae,Fr,Y);wn.forEach(Ma=>{const wa=Ma.element,_P=bo(Xe,wa,new Set);Ma.preStyleProps.forEach(Ic=>_P.add(Ic));const vp=bo(Ae,wa,new Set);Ma.postStyleProps.forEach(Ic=>vp.add(Ic)),wa!==e&&Re.add(wa)});const ya=d_(Re.values());return HD(e,this._triggerName,i,o,ct,pe,Ie,wn,ya,Xe,Ae,Fr)}}function mH(n,t){const e=Xh(t);for(const i in n)n.hasOwnProperty(i)&&null!=n[i]&&(e[i]=n[i]);return e}class _H{constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){const i=new Map,o=Xh(this.defaultParams);return Object.keys(t).forEach(s=>{const a=t[s];null!==a&&(o[s]=a)}),this.styles.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,l)=>{a&&(a=Jh(a,o,e));const d=this.normalizer.normalizePropertyName(l,e);a=this.normalizer.normalizeStyleValue(l,d,a,e),i.set(l,a)})}),i}}class bH{constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new _H(o.style,o.options&&o.options.params||{},i))}),jD(this.states,"true","1"),jD(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new VD(t,o,this.states))}),this.fallbackTransition=function vH(n,t,e){return new VD(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[(a,l)=>!0],options:null,queryCount:0,depCount:0},t)}(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,o){return this.transitionFactories.find(a=>a.match(t,e,i,o))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function jD(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}const yH=new __;class MH{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(t,e){const i=[],s=s0(this._driver,e,i,[]);if(i.length)throw function MB(n){return new Fe(3503,!1)}();this._animations.set(t,s)}_buildPlayer(t,e,i){const o=t.element,s=yD(0,this._normalizer,0,t.keyframes,e,i);return this._driver.animate(o,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const o=[],s=this._animations.get(t);let a;const l=new Map;if(s?(a=c0(this._driver,e,s,e0,s_,new Map,new Map,i,yH,o),a.forEach(P=>{const Y=bo(l,P.element,new Map);P.postStyleProps.forEach(q=>Y.set(q,null))})):(o.push(function wB(){return new Fe(3300,!1)}()),a=[]),o.length)throw function xB(n){return new Fe(3504,!1)}();l.forEach((P,Y)=>{P.forEach((q,te)=>{P.set(te,this._driver.computeStyle(Y,te,ra))})});const w=Ua(a.map(P=>{const Y=l.get(P.element);return this._buildPlayer(P,new Map,Y)}));return this._playersById.set(t,w),w.onDestroy(()=>this.destroy(t)),this.players.push(w),w}destroy(t){const e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById.get(t);if(!e)throw function CB(n){return new Fe(3301,!1)}();return e}listen(t,e,i,o){const s=Zy(e,"","","");return qy(this._getPlayer(t),i,s,o),()=>{}}command(t,e,i,o){if("register"==i)return void this.register(t,o[0]);if("create"==i)return void this.create(t,e,o[0]||{});const s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(t)}}}const zD="ng-animate-queued",f0="ng-animate-disabled",SH=[],UD={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},DH={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},No="__ng_removed";class p0{constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=function IH(n){return n??null}(i?t.value:t),i){const s=Xh(t);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const ef="void",m0=new p0(ef);class TH{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,Yo(e,this._hostClassName)}listen(t,e,i,o){if(!this._triggers.has(e))throw function kB(n,t){return new Fe(3302,!1)}();if(null==i||0==i.length)throw function SB(n){return new Fe(3303,!1)}();if(!function PH(n){return"start"==n||"done"==n}(i))throw function DB(n,t){return new Fe(3400,!1)}();const s=bo(this._elementListeners,t,[]),a={name:e,phase:i,callback:o};s.push(a);const l=bo(this._engine.statesByElement,t,new Map);return l.has(e)||(Yo(t,a_),Yo(t,a_+"-"+e),l.set(e,m0)),()=>{this._engine.afterFlush(()=>{const d=s.indexOf(a);d>=0&&s.splice(d,1),this._triggers.has(e)||l.delete(e)})}}register(t,e){return!this._triggers.has(t)&&(this._triggers.set(t,e),!0)}_getTrigger(t){const e=this._triggers.get(t);if(!e)throw function TB(n){return new Fe(3401,!1)}();return e}trigger(t,e,i,o=!0){const s=this._getTrigger(e),a=new _0(this.id,e,t);let l=this._engine.statesByElement.get(t);l||(Yo(t,a_),Yo(t,a_+"-"+e),this._engine.statesByElement.set(t,l=new Map));let d=l.get(e);const w=new p0(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&d&&w.absorbOptions(d.options),l.set(e,w),d||(d=m0),w.value!==ef&&d.value===w.value){if(!function FH(n,t){const e=Object.keys(n),i=Object.keys(t);if(e.length!=i.length)return!1;for(let o=0;o{Wl(t,Ie),ks(t,Re)})}return}const q=bo(this._engine.playersByElement,t,[]);q.forEach(ke=>{ke.namespaceId==this.id&&ke.triggerName==e&&ke.queued&&ke.destroy()});let te=s.matchTransition(d.value,w.value,t,w.params),pe=!1;if(!te){if(!o)return;te=s.fallbackTransition,pe=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:te,fromState:d,toState:w,player:a,isFallbackTransition:pe}),pe||(Yo(t,zD),a.onStart(()=>{Nd(t,zD)})),a.onDone(()=>{let ke=this.players.indexOf(a);ke>=0&&this.players.splice(ke,1);const Ie=this._engine.playersByElement.get(t);if(Ie){let Re=Ie.indexOf(a);Re>=0&&Ie.splice(Re,1)}}),this.players.push(a),q.push(a),a}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,l_,!0);i.forEach(o=>{if(o[No])return;const s=this._engine.fetchNamespacesByElement(o);s.size?s.forEach(a=>a.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(t,e,i,o){const s=this._engine.statesByElement.get(t),a=new Map;if(s){const l=[];if(s.forEach((d,w)=>{if(a.set(w,d.value),this._triggers.has(w)){const P=this.trigger(t,w,ef,o);P&&l.push(P)}}),l.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&Ua(l).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const o=new Set;e.forEach(s=>{const a=s.name;if(o.has(a))return;o.add(a);const d=this._triggers.get(a).fallbackTransition,w=i.get(a)||m0,P=new p0(ef),Y=new _0(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:d,fromState:w,toState:P,player:Y,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let o=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)o=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(t),o)i.markElementAsRemoved(this.id,t,!1,e);else{const s=t[No];(!s||s===UD)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Yo(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const s=i.element,a=this._elementListeners.get(s);a&&a.forEach(l=>{if(l.name==i.triggerName){const d=Zy(s,i.triggerName,i.fromState.value,i.toState.value);d._data=t,qy(i.player,l.phase,d,l.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const s=i.transition.ast.depCount,a=o.transition.ast.depCount;return 0==s||0==a?s-a:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(i=>i.element===t)||e,e}}class LH{constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,s)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){const i=new TH(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,l=this.driver.getParentElement(e);for(;l;){const d=o.get(l);if(d){const w=i.indexOf(d);i.splice(w+1,0,t),a=!0;break}l=this.driver.getParentElement(l)}a||i.unshift(t)}else i.push(t);return o.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let o=this._namespaceLookup[t];o&&o.register(e,i)&&this.totalAnimations++}destroy(t,e){if(!t)return;const i=this._fetchNamespace(t);this.afterFlush(()=>{this.namespacesByHostElement.delete(i.hostElement),delete this._namespaceLookup[t];const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1)}),this.afterFlushAnimationsDone(()=>i.destroy(e))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i)for(let o of i.values())if(o.namespaceId){const s=this._fetchNamespace(o.namespaceId);s&&e.add(s)}return e}trigger(t,e,i,o){if(v_(e)){const s=this._fetchNamespace(t);if(s)return s.trigger(e,i,o),!0}return!1}insertNode(t,e,i,o){if(!v_(e))return;const s=e[No];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(t){const a=this._fetchNamespace(t);a&&a.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Yo(t,f0)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Nd(t,f0))}removeNode(t,e,i,o){if(v_(e)){const s=t?this._fetchNamespace(t):null;if(s?s.removeNode(e,o):this.markElementAsRemoved(t,e,!1,o),i){const a=this.namespacesByHostElement.get(e);a&&a.id!==t&&a.removeNode(e,o)}}else this._onRemovalComplete(e,o)}markElementAsRemoved(t,e,i,o,s){this.collectedLeaveElements.push(e),e[No]={namespaceId:t,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,o,s){return v_(e)?this._fetchNamespace(t).listen(e,i,o,s):()=>{}}_buildInstruction(t,e,i,o,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,o,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,l_,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,t0,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return Ua(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t[No];if(e&&e.setForRemoval){if(t[No]=UD,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(f0)&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?Ua(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(t){throw function LB(n){return new Fe(3402,!1)}()}_flushAnimations(t,e){const i=new __,o=[],s=new Map,a=[],l=new Map,d=new Map,w=new Map,P=new Set;this.disabledNodes.forEach(mt=>{P.add(mt);const wt=this.driver.query(mt,".ng-animate-queued",!0);for(let Lt=0;Lt{const Lt=e0+ke++;pe.set(wt,Lt),mt.forEach(mn=>Yo(mn,Lt))});const Ie=[],Re=new Set,Xe=new Set;for(let mt=0;mtRe.add(mn)):Xe.add(wt))}const Ae=new Map,ct=GD(q,Array.from(Re));ct.forEach((mt,wt)=>{const Lt=s_+ke++;Ae.set(wt,Lt),mt.forEach(mn=>Yo(mn,Lt))}),t.push(()=>{te.forEach((mt,wt)=>{const Lt=pe.get(wt);mt.forEach(mn=>Nd(mn,Lt))}),ct.forEach((mt,wt)=>{const Lt=Ae.get(wt);mt.forEach(mn=>Nd(mn,Lt))}),Ie.forEach(mt=>{this.processLeaveNode(mt)})});const pn=[],wn=[];for(let mt=this._namespaceList.length-1;mt>=0;mt--)this._namespaceList[mt].drainQueuedTransitions(e).forEach(Lt=>{const mn=Lt.player,dr=Lt.element;if(pn.push(mn),this.collectedEnterElements.length){const Rr=dr[No];if(Rr&&Rr.setForMove){if(Rr.previousTriggersValues&&Rr.previousTriggersValues.has(Lt.triggerName)){const Pc=Rr.previousTriggersValues.get(Lt.triggerName),zo=this.statesByElement.get(Lt.element);if(zo&&zo.has(Lt.triggerName)){const Vg=zo.get(Lt.triggerName);Vg.value=Pc,zo.set(Lt.triggerName,Vg)}}return void mn.destroy()}}const Ys=!Y||!this.driver.containsElement(Y,dr),ko=Ae.get(dr),_l=pe.get(dr),yi=this._buildInstruction(Lt,i,_l,ko,Ys);if(yi.errors&&yi.errors.length)return void wn.push(yi);if(Ys)return mn.onStart(()=>Wl(dr,yi.fromStyles)),mn.onDestroy(()=>ks(dr,yi.toStyles)),void o.push(mn);if(Lt.isFallbackTransition)return mn.onStart(()=>Wl(dr,yi.fromStyles)),mn.onDestroy(()=>ks(dr,yi.toStyles)),void o.push(mn);const vP=[];yi.timelines.forEach(Rr=>{Rr.stretchStartingKeyframe=!0,this.disabledNodes.has(Rr.element)||vP.push(Rr)}),yi.timelines=vP,i.append(dr,yi.timelines),a.push({instruction:yi,player:mn,element:dr}),yi.queriedElements.forEach(Rr=>bo(l,Rr,[]).push(mn)),yi.preStyleProps.forEach((Rr,Pc)=>{if(Rr.size){let zo=d.get(Pc);zo||d.set(Pc,zo=new Set),Rr.forEach((Vg,lM)=>zo.add(lM))}}),yi.postStyleProps.forEach((Rr,Pc)=>{let zo=w.get(Pc);zo||w.set(Pc,zo=new Set),Rr.forEach((Vg,lM)=>zo.add(lM))})});if(wn.length){const mt=[];wn.forEach(wt=>{mt.push(function EB(n,t){return new Fe(3505,!1)}())}),pn.forEach(wt=>wt.destroy()),this.reportError(mt)}const Fr=new Map,ya=new Map;a.forEach(mt=>{const wt=mt.element;i.has(wt)&&(ya.set(wt,wt),this._beforeAnimationBuild(mt.player.namespaceId,mt.instruction,Fr))}),o.forEach(mt=>{const wt=mt.element;this._getPreviousPlayers(wt,!1,mt.namespaceId,mt.triggerName,null).forEach(mn=>{bo(Fr,wt,[]).push(mn),mn.destroy()})});const Ma=Ie.filter(mt=>KD(mt,d,w)),wa=new Map;$D(wa,this.driver,Xe,w,ra).forEach(mt=>{KD(mt,d,w)&&Ma.push(mt)});const vp=new Map;te.forEach((mt,wt)=>{$D(vp,this.driver,new Set(mt),d,"!")}),Ma.forEach(mt=>{const wt=wa.get(mt),Lt=vp.get(mt);wa.set(mt,new Map([...Array.from(wt?.entries()??[]),...Array.from(Lt?.entries()??[])]))});const Ic=[],gP=[],bP={};a.forEach(mt=>{const{element:wt,player:Lt,instruction:mn}=mt;if(i.has(wt)){if(P.has(wt))return Lt.onDestroy(()=>ks(wt,mn.toStyles)),Lt.disabled=!0,Lt.overrideTotalTime(mn.totalTime),void o.push(Lt);let dr=bP;if(ya.size>1){let ko=wt;const _l=[];for(;ko=ko.parentNode;){const yi=ya.get(ko);if(yi){dr=yi;break}_l.push(ko)}_l.forEach(yi=>ya.set(yi,dr))}const Ys=this._buildAnimation(Lt.namespaceId,mn,Fr,s,vp,wa);if(Lt.setRealPlayer(Ys),dr===bP)Ic.push(Lt);else{const ko=this.playersByElement.get(dr);ko&&ko.length&&(Lt.parentPlayer=Ua(ko)),o.push(Lt)}}else Wl(wt,mn.fromStyles),Lt.onDestroy(()=>ks(wt,mn.toStyles)),gP.push(Lt),P.has(wt)&&o.push(Lt)}),gP.forEach(mt=>{const wt=s.get(mt.element);if(wt&&wt.length){const Lt=Ua(wt);mt.setRealPlayer(Lt)}}),o.forEach(mt=>{mt.parentPlayer?mt.syncPlayerEvents(mt.parentPlayer):mt.destroy()});for(let mt=0;mt!Ys.destroyed);dr.length?OH(this,wt,dr):this.processLeaveNode(wt)}return Ie.length=0,Ic.forEach(mt=>{this.players.push(mt),mt.onDone(()=>{mt.destroy();const wt=this.players.indexOf(mt);this.players.splice(wt,1)}),mt.play()}),Ic}elementContainsData(t,e){let i=!1;const o=e[No];return o&&o.setForRemoval&&(i=!0),this.playersByElement.has(e)&&(i=!0),this.playersByQueriedElement.has(e)&&(i=!0),this.statesByElement.has(e)&&(i=!0),this._fetchNamespace(t).elementContainsData(e)||i}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,o,s){let a=[];if(e){const l=this.playersByQueriedElement.get(t);l&&(a=l)}else{const l=this.playersByElement.get(t);if(l){const d=!s||s==ef;l.forEach(w=>{w.queued||!d&&w.triggerName!=o||a.push(w)})}}return(i||o)&&(a=a.filter(l=>!(i&&i!=l.namespaceId||o&&o!=l.triggerName))),a}_beforeAnimationBuild(t,e,i){const s=e.element,a=e.isRemovalTransition?void 0:t,l=e.isRemovalTransition?void 0:e.triggerName;for(const d of e.timelines){const w=d.element,P=w!==s,Y=bo(i,w,[]);this._getPreviousPlayers(w,P,a,l,e.toState).forEach(te=>{const pe=te.getRealPlayer();pe.beforeDestroy&&pe.beforeDestroy(),te.destroy(),Y.push(te)})}Wl(s,e.fromStyles)}_buildAnimation(t,e,i,o,s,a){const l=e.triggerName,d=e.element,w=[],P=new Set,Y=new Set,q=e.timelines.map(pe=>{const ke=pe.element;P.add(ke);const Ie=ke[No];if(Ie&&Ie.removedBeforeQueried)return new Zh(pe.duration,pe.delay);const Re=ke!==d,Xe=function AH(n){const t=[];return qD(n,t),t}((i.get(ke)||SH).map(Fr=>Fr.getRealPlayer())).filter(Fr=>!!Fr.element&&Fr.element===ke),Ae=s.get(ke),ct=a.get(ke),pn=yD(0,this._normalizer,0,pe.keyframes,Ae,ct),wn=this._buildPlayer(pe,pn,Xe);if(pe.subTimeline&&o&&Y.add(ke),Re){const Fr=new _0(t,l,ke);Fr.setRealPlayer(wn),w.push(Fr)}return wn});w.forEach(pe=>{bo(this.playersByQueriedElement,pe.element,[]).push(pe),pe.onDone(()=>function EH(n,t,e){let i=n.get(t);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&n.delete(t)}return i}(this.playersByQueriedElement,pe.element,pe))}),P.forEach(pe=>Yo(pe,LD));const te=Ua(q);return te.onDestroy(()=>{P.forEach(pe=>Nd(pe,LD)),ks(d,e.toStyles)}),Y.forEach(pe=>{bo(o,pe,[]).push(te)}),te}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new Zh(t.duration,t.delay)}}class _0{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new Zh,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>qy(t,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){bo(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function v_(n){return n&&1===n.nodeType}function WD(n,t){const e=n.style.display;return n.style.display=t??"none",e}function $D(n,t,e,i,o){const s=[];e.forEach(d=>s.push(WD(d)));const a=[];i.forEach((d,w)=>{const P=new Map;d.forEach(Y=>{const q=t.computeStyle(w,Y,o);P.set(Y,q),(!q||0==q.length)&&(w[No]=DH,a.push(w))}),n.set(w,P)});let l=0;return e.forEach(d=>WD(d,s[l++])),a}function GD(n,t){const e=new Map;if(n.forEach(l=>e.set(l,[])),0==t.length)return e;const o=new Set(t),s=new Map;function a(l){if(!l)return 1;let d=s.get(l);if(d)return d;const w=l.parentNode;return d=e.has(w)?w:o.has(w)?1:a(w),s.set(l,d),d}return t.forEach(l=>{const d=a(l);1!==d&&e.get(d).push(l)}),e}function Yo(n,t){n.classList?.add(t)}function Nd(n,t){n.classList?.remove(t)}function OH(n,t,e){Ua(e).onDone(()=>n.processLeaveNode(t))}function qD(n,t){for(let e=0;eo.add(s)):t.set(n,i),e.delete(n),!0}class y_{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,s)=>{},this._transitionEngine=new LH(t,e,i),this._timelineEngine=new MH(t,e,i),this._transitionEngine.onRemovalComplete=(o,s)=>this.onRemovalComplete(o,s)}registerTrigger(t,e,i,o,s){const a=t+"-"+o;let l=this._triggerCache[a];if(!l){const d=[],P=s0(this._driver,s,d,[]);if(d.length)throw function vB(n,t){return new Fe(3404,!1)}();l=function gH(n,t,e){return new bH(n,t,e)}(o,P,this._normalizer),this._triggerCache[a]=l}this._transitionEngine.registerTrigger(e,o,l)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,o){this._transitionEngine.insertNode(t,e,i,o)}onRemove(t,e,i,o){this._transitionEngine.removeNode(t,e,o||!1,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,o){if("@"==i.charAt(0)){const[s,a]=MD(i);this._timelineEngine.command(s,e,a,o)}else this._transitionEngine.trigger(t,e,i,o)}listen(t,e,i,o,s){if("@"==i.charAt(0)){const[a,l]=MD(i);return this._timelineEngine.listen(a,e,l,s)}return this._transitionEngine.listen(t,e,i,o,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}let NH=(()=>{class n{constructor(e,i,o){this._element=e,this._startStyles=i,this._endStyles=o,this._state=0;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&ks(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(ks(this._element,this._initialStyles),this._endStyles&&(ks(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(Wl(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Wl(this._element,this._endStyles),this._endStyles=null),ks(this._element,this._initialStyles),this._state=3)}}return n.initialStylesByElement=new WeakMap,n})();function g0(n){let t=null;return n.forEach((e,i)=>{(function YH(n){return"display"===n||"position"===n})(i)&&(t=t||new Map,t.set(i,e))}),t}class ZD{constructor(t,e,i,o){this.element=t,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:new Map,this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(t){const e=[];return t.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(t,e,i){return t.animate(this._convertKeyframesToObject(e),i)}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&t.set(o,this._finished?i:FD(this.element,o))}),this.currentSnapshot=t}triggerCallback(t){const e="start"===t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class BH{validateStyleProperty(t){return!0}validateAnimatableStyleProperty(t){return!0}matchesElement(t,e){return!1}containsElement(t,e){return kD(t,e)}getParentElement(t){return Qy(t)}query(t,e,i){return SD(t,e,i)}computeStyle(t,e,i){return window.getComputedStyle(t)[e]}animate(t,e,i,o,s,a=[]){const d={duration:i,delay:o,fill:0==o?"both":"forwards"};s&&(d.easing=s);const w=new Map,P=a.filter(te=>te instanceof ZD);(function zB(n,t){return 0===n||0===t})(i,o)&&P.forEach(te=>{te.currentSnapshot.forEach((pe,ke)=>w.set(ke,pe))});let Y=function BB(n){return n.length?n[0]instanceof Map?n:n.map(t=>ED(t)):[]}(e).map(te=>Wa(te));Y=function UB(n,t,e){if(e.size&&t.length){let i=t[0],o=[];if(e.forEach((s,a)=>{i.has(a)||o.push(a),i.set(a,s)}),o.length)for(let s=1;sa.set(l,FD(n,l)))}}return t}(t,Y,w);const q=function RH(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=g0(t[0]),t.length>1&&(i=g0(t[t.length-1]))):t instanceof Map&&(e=g0(t)),e||i?new NH(n,e,i):null}(t,Y);return new ZD(t,Y,d,q)}}let HH=(()=>{class n extends pD{constructor(e,i){super(),this._nextAnimationId=0,this._renderer=e.createRenderer(i.body,{id:"0",encapsulation:Nr.None,styles:[],data:{animation:[]}})}build(e){const i=this._nextAnimationId.toString();this._nextAnimationId++;const o=Array.isArray(e)?_D(e):e;return XD(this._renderer,null,i,"register",[o]),new VH(i,this._renderer)}}return n.\u0275fac=function(e){return new(e||n)(we(kh),we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class VH extends XY{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new jH(this._id,t,e||{},this._renderer)}}class jH{constructor(t,e,i,o){this.id=t,this.element=e,this._renderer=o,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return XD(this._renderer,this.element,this.id,t,e)}onDone(t){this._listen("done",t)}onStart(t){this._listen("start",t)}onDestroy(t){this._listen("destroy",t)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(t){this._command("setPosition",t)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function XD(n,t,e,i,o){return n.setProperty(t,`@@${e}:${i}`,o)}const QD="@.disabled";let zH=(()=>{class n{constructor(e,i,o){this.delegate=e,this.engine=i,this._zone=o,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),i.onRemovalComplete=(s,a)=>{const l=a?.parentNode(s);l&&a.removeChild(l,s)}}createRenderer(e,i){const s=this.delegate.createRenderer(e,i);if(!(e&&i&&i.data&&i.data.animation)){let P=this._rendererCache.get(s);return P||(P=new JD("",s,this.engine,()=>this._rendererCache.delete(s)),this._rendererCache.set(s,P)),P}const a=i.id,l=i.id+"-"+this._currentId;this._currentId++,this.engine.register(l,e);const d=P=>{Array.isArray(P)?P.forEach(d):this.engine.registerTrigger(a,l,e,P.name,P)};return i.data.animation.forEach(d),new UH(this,l,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(e,i,o){e>=0&&ei(o)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[a,l]=s;a(l)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([i,o]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return n.\u0275fac=function(e){return new(e||n)(we(kh),we(y_),we(pt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class JD{constructor(t,e,i,o){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=o,this.destroyNode=this.delegate.destroyNode?s=>e.destroyNode(s):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy(),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,o=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,o)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate,i)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,o){this.delegate.setAttribute(t,e,i,o)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,o){this.delegate.setStyle(t,e,i,o)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){"@"==e.charAt(0)&&e==QD?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class UH extends JD{constructor(t,e,i,o,s){super(e,i,o,s),this.factory=t,this.namespaceId=e}setProperty(t,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==QD?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if("@"==e.charAt(0)){const o=function WH(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(t);let s=e.slice(1),a="";return"@"!=s.charAt(0)&&([s,a]=function $H(n){const t=n.indexOf(".");return[n.substring(0,t),n.slice(t+1)]}(s)),this.engine.listen(this.namespaceId,o,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(t,e,i)}}let GH=(()=>{class n extends y_{constructor(e,i,o,s){super(e.body,i,o)}ngOnDestroy(){this.flush()}}return n.\u0275fac=function(e){return new(e||n)(we(Dt),we(Jy),we(u0),we(Ad))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const eT=[{provide:pD,useClass:HH},{provide:u0,useFactory:function qH(){return new fH}},{provide:y_,useClass:GH},{provide:kh,useFactory:function KH(n,t,e){return new zH(n,t,e)},deps:[o_,y_,pt]}],b0=[{provide:Jy,useFactory:()=>new BH},{provide:zi,useValue:"BrowserAnimations"},...eT],tT=[{provide:Jy,useClass:DD},{provide:zi,useValue:"NoopAnimations"},...eT];let ZH=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?tT:b0}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:b0,imports:[cD]}),n})();function Ge(...n){let t=n[n.length-1];return Se(t)?(n.pop(),W(n,t)):Pn(n)}function $a(n,t){return Ne(n,t,1)}function Si(n,t){return function(i){return i.lift(new XH(n,t))}}class XH{constructor(t,e){this.predicate=t,this.thisArg=e}call(t,e){return e.subscribe(new QH(t,this.predicate,this.thisArg))}}class QH extends A{constructor(t,e,i){super(t),this.predicate=e,this.thisArg=i,this.count=0}_next(t){let e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(i){return void this.destination.error(i)}e&&this.destination.next(t)}}class w_{}class v0{}class Ss{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),s=o.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(o,s),this.headers.has(s)?this.headers.get(s).push(a):this.headers.set(s,[a])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let i=t[e];const o=e.toLowerCase();"string"==typeof i&&(i=[i]),i.length>0&&(this.headers.set(o,i),this.maybeSetNormalizedName(e,o))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof Ss?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new Ss;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Ss?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const o=("a"===t.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const s=t.value;if(s){let a=this.headers.get(e);if(!a)return;a=a.filter(l=>-1===s.indexOf(l)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class JH{encodeKey(t){return nT(t)}encodeValue(t){return nT(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const tV=/%(\d[a-f0-9])/gi,nV={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function nT(n){return encodeURIComponent(n).replace(tV,(t,e)=>nV[e]??t)}function x_(n){return`${n}`}class Ga{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new JH,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function eV(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(o=>{const s=o.indexOf("="),[a,l]=-1==s?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,s)),t.decodeValue(o.slice(s+1))],d=e.get(a)||[];d.push(l),e.set(a,d)}),e}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e],o=Array.isArray(i)?i.map(x_):[x_(i)];this.map.set(e,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const o=t[i];Array.isArray(o)?o.forEach(s=>{e.push({param:i,value:s,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new Ga({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(x_(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let i=this.map.get(t.param)||[];const o=i.indexOf(x_(t.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class iV{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function iT(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function rT(n){return typeof Blob<"u"&&n instanceof Blob}function oT(n){return typeof FormData<"u"&&n instanceof FormData}class tf{constructor(t,e,i,o){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function rV(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,s=o):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params)),this.headers||(this.headers=new Ss),this.context||(this.context=new iV),this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const l=e.indexOf("?");this.urlWithParams=e+(-1===l?"?":lY.set(q,t.setHeaders[q]),d)),t.setParams&&(w=Object.keys(t.setParams).reduce((Y,q)=>Y.set(q,t.setParams[q]),w)),new tf(e,i,s,{params:w,headers:d,context:P,reportProgress:l,responseType:o,withCredentials:a})}}var $i=(()=>(($i=$i||{})[$i.Sent=0]="Sent",$i[$i.UploadProgress=1]="UploadProgress",$i[$i.ResponseHeader=2]="ResponseHeader",$i[$i.DownloadProgress=3]="DownloadProgress",$i[$i.Response=4]="Response",$i[$i.User=5]="User",$i))();class y0{constructor(t,e=200,i="OK"){this.headers=t.headers||new Ss,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class M0 extends y0{constructor(t={}){super(t),this.type=$i.ResponseHeader}clone(t={}){return new M0({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class C_ extends y0{constructor(t={}){super(t),this.type=$i.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new C_({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class sT extends y0{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function w0(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials}}let Gl=(()=>{class n{constructor(e){this.handler=e}request(e,i,o={}){let s;if(e instanceof tf)s=e;else{let d,w;d=o.headers instanceof Ss?o.headers:new Ss(o.headers),o.params&&(w=o.params instanceof Ga?o.params:new Ga({fromObject:o.params})),s=new tf(e,i,void 0!==o.body?o.body:null,{headers:d,context:o.context,params:w,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials})}const a=Ge(s).pipe($a(d=>this.handler.handle(d)));if(e instanceof tf||"events"===o.observe)return a;const l=a.pipe(Si(d=>d instanceof C_));switch(o.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(Ce(d=>{if(null!==d.body&&!(d.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return d.body}));case"blob":return l.pipe(Ce(d=>{if(null!==d.body&&!(d.body instanceof Blob))throw new Error("Response is not a Blob.");return d.body}));case"text":return l.pipe(Ce(d=>{if(null!==d.body&&"string"!=typeof d.body)throw new Error("Response is not a string.");return d.body}));default:return l.pipe(Ce(d=>d.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new Ga).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,w0(o,i))}post(e,i,o={}){return this.request("POST",e,w0(o,i))}put(e,i,o={}){return this.request("PUT",e,w0(o,i))}}return n.\u0275fac=function(e){return new(e||n)(we(w_))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function aT(n,t){return t(n)}function sV(n,t){return(e,i)=>t.intercept(e,{handle:o=>n(o,i)})}const lV=new He("HTTP_INTERCEPTORS"),nf=new He("HTTP_INTERCEPTOR_FNS");function cV(){let n=null;return(t,e)=>(null===n&&(n=(Et(lV,{optional:!0})??[]).reduceRight(sV,aT)),n(t,e))}let lT=(()=>{class n extends w_{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null}handle(e){if(null===this.chain){const i=Array.from(new Set(this.injector.get(nf)));this.chain=i.reduceRight((o,s)=>function aV(n,t,e){return(i,o)=>e.runInContext(()=>t(i,s=>n(s,o)))}(o,s,this.injector),aT)}return this.chain(e,i=>this.backend.handle(i))}}return n.\u0275fac=function(e){return new(e||n)(we(v0),we(bs))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const fV=/^\)\]\}',?\n/;let dT=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new de(i=>{const o=this.xhrFactory.build();if(o.open(e.method,e.urlWithParams),e.withCredentials&&(o.withCredentials=!0),e.headers.forEach((te,pe)=>o.setRequestHeader(te,pe.join(","))),e.headers.has("Accept")||o.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const te=e.detectContentTypeHeader();null!==te&&o.setRequestHeader("Content-Type",te)}if(e.responseType){const te=e.responseType.toLowerCase();o.responseType="json"!==te?te:"text"}const s=e.serializeBody();let a=null;const l=()=>{if(null!==a)return a;const te=o.statusText||"OK",pe=new Ss(o.getAllResponseHeaders()),ke=function pV(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(o)||e.url;return a=new M0({headers:pe,status:o.status,statusText:te,url:ke}),a},d=()=>{let{headers:te,status:pe,statusText:ke,url:Ie}=l(),Re=null;204!==pe&&(Re=typeof o.response>"u"?o.responseText:o.response),0===pe&&(pe=Re?200:0);let Xe=pe>=200&&pe<300;if("json"===e.responseType&&"string"==typeof Re){const Ae=Re;Re=Re.replace(fV,"");try{Re=""!==Re?JSON.parse(Re):null}catch(ct){Re=Ae,Xe&&(Xe=!1,Re={error:ct,text:Re})}}Xe?(i.next(new C_({body:Re,headers:te,status:pe,statusText:ke,url:Ie||void 0})),i.complete()):i.error(new sT({error:Re,headers:te,status:pe,statusText:ke,url:Ie||void 0}))},w=te=>{const{url:pe}=l(),ke=new sT({error:te,status:o.status||0,statusText:o.statusText||"Unknown Error",url:pe||void 0});i.error(ke)};let P=!1;const Y=te=>{P||(i.next(l()),P=!0);let pe={type:$i.DownloadProgress,loaded:te.loaded};te.lengthComputable&&(pe.total=te.total),"text"===e.responseType&&!!o.responseText&&(pe.partialText=o.responseText),i.next(pe)},q=te=>{let pe={type:$i.UploadProgress,loaded:te.loaded};te.lengthComputable&&(pe.total=te.total),i.next(pe)};return o.addEventListener("load",d),o.addEventListener("error",w),o.addEventListener("timeout",w),o.addEventListener("abort",w),e.reportProgress&&(o.addEventListener("progress",Y),null!==s&&o.upload&&o.upload.addEventListener("progress",q)),o.send(s),i.next({type:$i.Sent}),()=>{o.removeEventListener("error",w),o.removeEventListener("abort",w),o.removeEventListener("load",d),o.removeEventListener("timeout",w),e.reportProgress&&(o.removeEventListener("progress",Y),null!==s&&o.upload&&o.upload.removeEventListener("progress",q)),o.readyState!==o.DONE&&o.abort()}})}}return n.\u0275fac=function(e){return new(e||n)(we(jS))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const x0=new He("XSRF_ENABLED"),uT="XSRF-TOKEN",hT=new He("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>uT}),fT="X-XSRF-TOKEN",pT=new He("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>fT});class mT{}let mV=(()=>{class n{constructor(e,i,o){this.doc=e,this.platform=i,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=IS(e,this.cookieName),this.lastCookieString=e),this.lastToken}}return n.\u0275fac=function(e){return new(e||n)(we(Dt),we(Vm),we(hT))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function _V(n,t){const e=n.url.toLowerCase();if(!Et(x0)||"GET"===n.method||"HEAD"===n.method||e.startsWith("http://")||e.startsWith("https://"))return t(n);const i=Et(mT).getToken(),o=Et(pT);return null!=i&&!n.headers.has(o)&&(n=n.clone({headers:n.headers.set(o,i)})),t(n)}var Fi=(()=>((Fi=Fi||{})[Fi.Interceptors=0]="Interceptors",Fi[Fi.LegacyInterceptors=1]="LegacyInterceptors",Fi[Fi.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",Fi[Fi.NoXsrfProtection=3]="NoXsrfProtection",Fi[Fi.JsonpSupport=4]="JsonpSupport",Fi[Fi.RequestsMadeViaParent=5]="RequestsMadeViaParent",Fi))();function Yd(n,t){return{\u0275kind:n,\u0275providers:t}}function gV(...n){const t=[Gl,dT,lT,{provide:w_,useExisting:lT},{provide:v0,useExisting:dT},{provide:nf,useValue:_V,multi:!0},{provide:x0,useValue:!0},{provide:mT,useClass:mV}];for(const e of n)t.push(...e.\u0275providers);return function XO(n){return{\u0275providers:n}}(t)}const _T=new He("LEGACY_INTERCEPTOR_FN");function vV({cookieName:n,headerName:t}){const e=[];return void 0!==n&&e.push({provide:hT,useValue:n}),void 0!==t&&e.push({provide:pT,useValue:t}),Yd(Fi.CustomXsrfConfiguration,e)}let yV=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[gV(Yd(Fi.LegacyInterceptors,[{provide:_T,useFactory:cV},{provide:nf,useExisting:_T,multi:!0}]),vV({cookieName:uT,headerName:fT}))]}),n})();class Ir extends X{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return e&&!e.closed&&t.next(this._value),e}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new ee;return this._value}next(t){super.next(this._value=t)}}const k_=(()=>{function n(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return n.prototype=Object.create(Error.prototype),n})();class MV extends A{notifyNext(t,e,i,o,s){this.destination.next(e)}notifyError(t,e){this.destination.error(t)}notifyComplete(t){this.destination.complete()}}class wV extends A{constructor(t,e,i){super(),this.parent=t,this.outerValue=e,this.outerIndex=i,this.index=0}_next(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)}_error(t){this.parent.notifyError(t,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}function xV(n,t,e,i,o=new wV(n,e,i)){if(!o.closed)return t instanceof de?t.subscribe(o):Ii(t)(o)}const gT={};function C0(...n){let t,e;return Se(n[n.length-1])&&(e=n.pop()),"function"==typeof n[n.length-1]&&(t=n.pop()),1===n.length&&y(n[0])&&(n=n[0]),Pn(n,e).lift(new CV(t))}class CV{constructor(t){this.resultSelector=t}call(t,e){return e.subscribe(new kV(t,this.resultSelector))}}class kV extends MV{constructor(t,e){super(t),this.resultSelector=e,this.active=0,this.values=[],this.observables=[]}_next(t){this.values.push(gT),this.observables.push(t)}_complete(){const t=this.observables,e=t.length;if(0===e)this.destination.complete();else{this.active=e,this.toRespond=e;for(let i=0;in.complete());function S_(n){return n?function DV(n){return new de(t=>n.schedule(()=>t.complete()))}(n):qa}function rf(n){return new de(t=>{let e;try{e=n()}catch(o){return void t.error(o)}return(e?ue(e):S_()).subscribe(t)})}function Pr(n,t){return new de(t?e=>t.schedule(TV,0,{error:n,subscriber:e}):e=>e.error(n))}function TV({error:n,subscriber:t}){t.error(n)}function br(n,t){return"function"==typeof t?e=>e.pipe(br((i,o)=>ue(n(i,o)).pipe(Ce((s,a)=>t(i,s,o,a))))):e=>e.lift(new LV(n))}class LV{constructor(t){this.project=t}call(t,e){return e.subscribe(new EV(t,this.project))}}class EV extends Me{constructor(t,e){super(t),this.project=e,this.index=0}_next(t){let e;const i=this.index++;try{e=this.project(t,i)}catch(o){return void this.destination.error(o)}this._innerSub(e)}_innerSub(t){const e=this.innerSubscription;e&&e.unsubscribe();const i=new be(this),o=this.destination;o.add(i),this.innerSubscription=Ee(t,i),this.innerSubscription!==i&&o.add(this.innerSubscription)}_complete(){const{innerSubscription:t}=this;(!t||t.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(t){this.destination.next(t)}}const bT=(()=>{function n(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return n.prototype=Object.create(Error.prototype),n})();function ti(n){return t=>0===n?S_():t.lift(new IV(n))}class IV{constructor(t){if(this.total=t,this.total<0)throw new bT}call(t,e){return e.subscribe(new PV(t,this.total))}}class PV extends A{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){const e=this.total,i=++this.count;i<=e&&(this.destination.next(t),i===e&&(this.destination.complete(),this.unsubscribe()))}}function yo(...n){const t=n[n.length-1];return Se(t)?(n.pop(),e=>ql(n,e,t)):e=>ql(n,e)}function sf(n=null){return t=>t.lift(new OV(n))}class OV{constructor(t){this.defaultValue=t}call(t,e){return e.subscribe(new AV(t,this.defaultValue))}}class AV extends A{constructor(t,e){super(t),this.defaultValue=e,this.isEmpty=!0}_next(t){this.isEmpty=!1,this.destination.next(t)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}function vT(n=NV){return t=>t.lift(new FV(n))}class FV{constructor(t){this.errorFactory=t}call(t,e){return e.subscribe(new RV(t,this.errorFactory))}}class RV extends A{constructor(t,e){super(t),this.errorFactory=e,this.hasValue=!1}_next(t){this.hasValue=!0,this.destination.next(t)}_complete(){if(this.hasValue)return this.destination.complete();{let t;try{t=this.errorFactory()}catch(e){t=e}this.destination.error(t)}}}function NV(){return new k_}function Ka(n,t){const e=arguments.length>=2;return i=>i.pipe(n?Si((o,s)=>n(o,s,i)):ve,ti(1),e?sf(t):vT(()=>new k_))}function Za(){}function hi(n,t,e){return function(o){return o.lift(new YV(n,t,e))}}class YV{constructor(t,e,i){this.nextOrObserver=t,this.error=e,this.complete=i}call(t,e){return e.subscribe(new BV(t,this.nextOrObserver,this.error,this.complete))}}class BV extends A{constructor(t,e,i,o){super(t),this._tapNext=Za,this._tapError=Za,this._tapComplete=Za,this._tapError=i||Za,this._tapComplete=o||Za,O(e)?(this._context=this,this._tapNext=e):e&&(this._context=e,this._tapNext=e.next||Za,this._tapError=e.error||Za,this._tapComplete=e.complete||Za)}_next(t){try{this._tapNext.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.next(t)}_error(t){try{this._tapError.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.error(t)}_complete(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()}}function no(n){return function(e){const i=new HV(n),o=e.lift(i);return i.caught=o}}class HV{constructor(t){this.selector=t}call(t,e){return e.subscribe(new VV(t,this.selector,this.caught))}}class VV extends Me{constructor(t,e,i){super(t),this.selector=e,this.caught=i}error(t){if(!this.isStopped){let e;try{e=this.selector(t,this.caught)}catch(s){return void super.error(s)}this._unsubscribeAndRecycle();const i=new be(this);this.add(i);const o=Ee(e,i);o!==i&&this.add(o)}}}function D_(n,t){let e=!1;return arguments.length>=2&&(e=!0),function(o){return o.lift(new jV(n,t,e))}}class jV{constructor(t,e,i=!1){this.accumulator=t,this.seed=e,this.hasSeed=i}call(t,e){return e.subscribe(new zV(t,this.accumulator,this.seed,this.hasSeed))}}class zV extends A{constructor(t,e,i,o){super(t),this.accumulator=e,this._seed=i,this.hasSeed=o,this.index=0}get seed(){return this._seed}set seed(t){this.hasSeed=!0,this._seed=t}_next(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)}_tryNext(t){const e=this.index++;let i;try{i=this.accumulator(this.seed,t,e)}catch(o){this.destination.error(o)}this.seed=i,this.destination.next(i)}}function af(n){return function(e){return 0===n?S_():e.lift(new UV(n))}}class UV{constructor(t){if(this.total=t,this.total<0)throw new bT}call(t,e){return e.subscribe(new WV(t,this.total))}}class WV extends A{constructor(t,e){super(t),this.total=e,this.ring=new Array,this.count=0}_next(t){const e=this.ring,i=this.total,o=this.count++;e.length0){const i=this.count>=this.total?this.total:this.count,o=this.ring;for(let s=0;s=2;return i=>i.pipe(n?Si((o,s)=>n(o,s,i)):ve,af(1),e?sf(t):vT(()=>new k_))}function MT(n,t=!1){return e=>e.lift(new $V(n,t))}class $V{constructor(t,e){this.predicate=t,this.inclusive=e}call(t,e){return e.subscribe(new GV(t,this.predicate,this.inclusive))}}class GV extends A{constructor(t,e,i){super(t),this.predicate=e,this.inclusive=i,this.index=0}_next(t){const e=this.destination;let i;try{i=this.predicate(t,this.index++)}catch(o){return void e.error(o)}this.nextOrComplete(t,i)}nextOrComplete(t,e){const i=this.destination;Boolean(e)?i.next(t):(this.inclusive&&i.next(t),i.complete())}}class KV{constructor(t){this.value=t}call(t,e){return e.subscribe(new ZV(t,this.value))}}class ZV extends A{constructor(t,e){super(t),this.value=e}_next(t){this.destination.next(this.value)}}function T_(n){return t=>t.lift(new XV(n))}class XV{constructor(t){this.callback=t}call(t,e){return e.subscribe(new QV(t,this.callback))}}class QV extends A{constructor(t,e){super(t),this.add(new T(e))}}const $t="primary",lf=Symbol("RouteTitle");class JV{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function Bd(n){return new JV(n)}function e8(n,t,e){const i=e.path.split("/");if(i.length>n.length||"full"===e.pathMatch&&(t.hasChildren()||i.lengthi[s]===o)}return n===t}function xT(n){return Array.prototype.concat.apply([],n)}function CT(n){return n.length>0?n[n.length-1]:null}function vr(n,t){for(const e in n)n.hasOwnProperty(e)&&t(n[e],e)}function Xa(n){return Iv(n)?n:Ih(n)?ue(Promise.resolve(n)):Ge(n)}const L_=!1,n8={exact:function DT(n,t,e){if(!Zl(n.segments,t.segments)||!E_(n.segments,t.segments,e)||n.numberOfChildren!==t.numberOfChildren)return!1;for(const i in t.children)if(!n.children[i]||!DT(n.children[i],t.children[i],e))return!1;return!0},subset:TT},kT={exact:function i8(n,t){return Ds(n,t)},subset:function r8(n,t){return Object.keys(t).length<=Object.keys(n).length&&Object.keys(t).every(e=>wT(n[e],t[e]))},ignored:()=>!0};function ST(n,t,e){return n8[e.paths](n.root,t.root,e.matrixParams)&&kT[e.queryParams](n.queryParams,t.queryParams)&&!("exact"===e.fragment&&n.fragment!==t.fragment)}function TT(n,t,e){return LT(n,t,t.segments,e)}function LT(n,t,e,i){if(n.segments.length>e.length){const o=n.segments.slice(0,e.length);return!(!Zl(o,e)||t.hasChildren()||!E_(o,e,i))}if(n.segments.length===e.length){if(!Zl(n.segments,e)||!E_(n.segments,e,i))return!1;for(const o in t.children)if(!n.children[o]||!TT(n.children[o],t.children[o],i))return!1;return!0}{const o=e.slice(0,n.segments.length),s=e.slice(n.segments.length);return!!(Zl(n.segments,o)&&E_(n.segments,o,i)&&n.children[$t])&<(n.children[$t],t,s,i)}}function E_(n,t,e){return t.every((i,o)=>kT[e](n[o].parameters,i.parameters))}class Kl{constructor(t=new qt([],{}),e={},i=null){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Bd(this.queryParams)),this._queryParamMap}toString(){return a8.serialize(this)}}class qt{constructor(t,e){this.segments=t,this.children=e,this.parent=null,vr(e,(i,o)=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return I_(this)}}class cf{constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=Bd(this.parameters)),this._parameterMap}toString(){return PT(this)}}function Zl(n,t){return n.length===t.length&&n.every((e,i)=>e.path===t[i].path)}let df=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return new k0},providedIn:"root"}),n})();class k0{parse(t){const e=new _8(t);return new Kl(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){const e=`/${uf(t.root,!0)}`,i=function d8(n){const t=Object.keys(n).map(e=>{const i=n[e];return Array.isArray(i)?i.map(o=>`${P_(e)}=${P_(o)}`).join("&"):`${P_(e)}=${P_(i)}`}).filter(e=>!!e);return t.length?`?${t.join("&")}`:""}(t.queryParams),o="string"==typeof t.fragment?`#${function l8(n){return encodeURI(n)}(t.fragment)}`:"";return`${e}${i}${o}`}}const a8=new k0;function I_(n){return n.segments.map(t=>PT(t)).join("/")}function uf(n,t){if(!n.hasChildren())return I_(n);if(t){const e=n.children[$t]?uf(n.children[$t],!1):"",i=[];return vr(n.children,(o,s)=>{s!==$t&&i.push(`${s}:${uf(o,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function s8(n,t){let e=[];return vr(n.children,(i,o)=>{o===$t&&(e=e.concat(t(i,o)))}),vr(n.children,(i,o)=>{o!==$t&&(e=e.concat(t(i,o)))}),e}(n,(i,o)=>o===$t?[uf(n.children[$t],!1)]:[`${o}:${uf(i,!1)}`]);return 1===Object.keys(n.children).length&&null!=n.children[$t]?`${I_(n)}/${e[0]}`:`${I_(n)}/(${e.join("//")})`}}function ET(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function P_(n){return ET(n).replace(/%3B/gi,";")}function S0(n){return ET(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function O_(n){return decodeURIComponent(n)}function IT(n){return O_(n.replace(/\+/g,"%20"))}function PT(n){return`${S0(n.path)}${function c8(n){return Object.keys(n).map(t=>`;${S0(t)}=${S0(n[t])}`).join("")}(n.parameters)}`}const u8=/^[^\/()?;=#]+/;function A_(n){const t=n.match(u8);return t?t[0]:""}const h8=/^[^=?&#]+/,p8=/^[^&#]+/;class _8{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new qt([],{}):new qt([],this.parseChildren())}parseQueryParams(){const t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(i[$t]=new qt(t,e)),i}parseSegment(){const t=A_(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Fe(4009,L_);return this.capture(t),new cf(O_(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const e=A_(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=A_(this.remaining);o&&(i=o,this.capture(i))}t[O_(e)]=O_(i)}parseQueryParam(t){const e=function f8(n){const t=n.match(h8);return t?t[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const a=function m8(n){const t=n.match(p8);return t?t[0]:""}(this.remaining);a&&(i=a,this.capture(i))}const o=IT(e),s=IT(i);if(t.hasOwnProperty(o)){let a=t[o];Array.isArray(a)||(a=[a],t[o]=a),a.push(s)}else t[o]=s}parseParens(t){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=A_(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new Fe(4010,L_);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):t&&(s=$t);const a=this.parseChildren();e[s]=1===Object.keys(a).length?a[$t]:new qt([],a),this.consumeOptional("//")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)}capture(t){if(!this.consumeOptional(t))throw new Fe(4011,L_)}}function D0(n){return n.segments.length>0?new qt([],{[$t]:n}):n}function F_(n){const t={};for(const i of Object.keys(n.children)){const s=F_(n.children[i]);(s.segments.length>0||s.hasChildren())&&(t[i]=s)}return function g8(n){if(1===n.numberOfChildren&&n.children[$t]){const t=n.children[$t];return new qt(n.segments.concat(t.segments),t.children)}return n}(new qt(n.segments,t))}function Xl(n){return n instanceof Kl}function y8(n,t,e,i,o){if(0===e.length)return Hd(t.root,t.root,t.root,i,o);const s=function FT(n){if("string"==typeof n[0]&&1===n.length&&"/"===n[0])return new AT(!0,0,n);let t=0,e=!1;const i=n.reduce((o,s,a)=>{if("object"==typeof s&&null!=s){if(s.outlets){const l={};return vr(s.outlets,(d,w)=>{l[w]="string"==typeof d?d.split("/"):d}),[...o,{outlets:l}]}if(s.segmentPath)return[...o,s.segmentPath]}return"string"!=typeof s?[...o,s]:0===a?(s.split("/").forEach((l,d)=>{0==d&&"."===l||(0==d&&""===l?e=!0:".."===l?t++:""!=l&&o.push(l))}),o):[...o,s]},[]);return new AT(e,t,i)}(e);return s.toRoot()?Hd(t.root,t.root,new qt([],{}),i,o):function a(d){const w=function w8(n,t,e,i){if(n.isAbsolute)return new Vd(t.root,!0,0);if(-1===i)return new Vd(e,e===t.root,0);return function RT(n,t,e){let i=n,o=t,s=e;for(;s>o;){if(s-=o,i=i.parent,!i)throw new Fe(4005,!1);o=i.segments.length}return new Vd(i,!1,o-s)}(e,i+(hf(n.commands[0])?0:1),n.numberOfDoubleDots)}(s,t,n.snapshot?._urlSegment,d),P=w.processChildren?pf(w.segmentGroup,w.index,s.commands):L0(w.segmentGroup,w.index,s.commands);return Hd(t.root,w.segmentGroup,P,i,o)}(n.snapshot?._lastPathIndex)}function hf(n){return"object"==typeof n&&null!=n&&!n.outlets&&!n.segmentPath}function ff(n){return"object"==typeof n&&null!=n&&n.outlets}function Hd(n,t,e,i,o){let a,s={};i&&vr(i,(d,w)=>{s[w]=Array.isArray(d)?d.map(P=>`${P}`):`${d}`}),a=n===t?e:OT(n,t,e);const l=D0(F_(a));return new Kl(l,s,o)}function OT(n,t,e){const i={};return vr(n.children,(o,s)=>{i[s]=o===t?e:OT(o,t,e)}),new qt(n.segments,i)}class AT{constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&hf(i[0]))throw new Fe(4003,!1);const o=i.find(ff);if(o&&o!==CT(i))throw new Fe(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Vd{constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}}function L0(n,t,e){if(n||(n=new qt([],{})),0===n.segments.length&&n.hasChildren())return pf(n,t,e);const i=function C8(n,t,e){let i=0,o=t;const s={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return s;const a=n.segments[o],l=e[i];if(ff(l))break;const d=`${l}`,w=i0&&void 0===d)break;if(d&&w&&"object"==typeof w&&void 0===w.outlets){if(!YT(d,w,a))return s;i+=2}else{if(!YT(d,{},a))return s;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(n,t,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndex{"string"==typeof s&&(s=[s]),null!==s&&(o[a]=L0(n.children[a],t,s))}),vr(n.children,(s,a)=>{void 0===i[a]&&(o[a]=s)}),new qt(n.segments,o)}}function E0(n,t,e){const i=n.segments.slice(0,t);let o=0;for(;o{"string"==typeof e&&(e=[e]),null!==e&&(t[i]=E0(new qt([],{}),0,e))}),t}function NT(n){const t={};return vr(n,(e,i)=>t[i]=`${e}`),t}function YT(n,t,e){return n==e.path&&Ds(t,e.parameters)}class aa{constructor(t,e){this.id=t,this.url=e}}class I0 extends aa{constructor(t,e,i="imperative",o=null){super(t,e),this.type=0,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Qa extends aa{constructor(t,e,i){super(t,e),this.urlAfterRedirects=i,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class R_ extends aa{constructor(t,e,i,o){super(t,e),this.reason=i,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class BT extends aa{constructor(t,e,i,o){super(t,e),this.error=i,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class S8 extends aa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class D8 extends aa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class T8 extends aa{constructor(t,e,i,o,s){super(t,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=s,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class L8 extends aa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class E8 extends aa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class I8{constructor(t){this.route=t,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class P8{constructor(t){this.route=t,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class O8{constructor(t){this.snapshot=t,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class A8{constructor(t){this.snapshot=t,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class F8{constructor(t){this.snapshot=t,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class R8{constructor(t){this.snapshot=t,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class HT{constructor(t,e,i){this.routerEvent=t,this.position=e,this.anchor=i,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}let Y8=(()=>{class n{createUrlTree(e,i,o,s,a,l){return y8(e||i.root,o,s,a,l)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),B8=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(t){return Y8.\u0275fac(t)},providedIn:"root"}),n})();class VT{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){const e=P0(t,this._root);return e?e.children.map(i=>i.value):[]}firstChild(t){const e=P0(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){const e=O0(t,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return O0(t,this._root).map(e=>e.value)}}function P0(n,t){if(n===t.value)return t;for(const e of t.children){const i=P0(n,e);if(i)return i}return null}function O0(n,t){if(n===t.value)return[t];for(const e of t.children){const i=O0(n,e);if(i.length)return i.unshift(t),i}return[]}class la{constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}}function jd(n){const t={};return n&&n.children.forEach(e=>t[e.value.outlet]=e),t}class jT extends VT{constructor(t,e){super(t),this.snapshot=e,A0(this,t)}toString(){return this.snapshot.toString()}}function zT(n,t){const e=function H8(n,t){const a=new N_([],{},{},"",{},$t,t,null,n.root,-1,{});return new WT("",new la(a,[]))}(n,t),i=new Ir([new cf("",{})]),o=new Ir({}),s=new Ir({}),a=new Ir({}),l=new Ir(""),d=new yr(i,o,a,l,s,$t,t,e.root);return d.snapshot=e.root,new jT(new la(d,[]),e)}class yr{constructor(t,e,i,o,s,a,l,d){this.url=t,this.params=e,this.queryParams=i,this.fragment=o,this.data=s,this.outlet=a,this.component=l,this.title=this.data?.pipe(Ce(w=>w[lf]))??Ge(void 0),this._futureSnapshot=d}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(Ce(t=>Bd(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Ce(t=>Bd(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function UT(n,t="emptyOnly"){const e=n.pathFromRoot;let i=0;if("always"!==t)for(i=e.length-1;i>=1;){const o=e[i],s=e[i-1];if(o.routeConfig&&""===o.routeConfig.path)i--;else{if(s.component)break;i--}}return function V8(n){return n.reduce((t,e)=>({params:{...t.params,...e.params},data:{...t.data,...e.data},resolve:{...e.data,...t.resolve,...e.routeConfig?.data,...e._resolvedData}}),{params:{},data:{},resolve:{}})}(e.slice(i))}class N_{constructor(t,e,i,o,s,a,l,d,w,P,Y){this.url=t,this.params=e,this.queryParams=i,this.fragment=o,this.data=s,this.outlet=a,this.component=l,this.routeConfig=d,this._urlSegment=w,this._lastPathIndex=P,this._resolve=Y}get title(){return this.data?.[lf]}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=Bd(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Bd(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class WT extends VT{constructor(t,e){super(e),this.url=t,A0(this,e)}toString(){return $T(this._root)}}function A0(n,t){t.value._routerState=n,t.children.forEach(e=>A0(n,e))}function $T(n){const t=n.children.length>0?` { ${n.children.map($T).join(", ")} } `:"";return`${n.value}${t}`}function F0(n){if(n.snapshot){const t=n.snapshot,e=n._futureSnapshot;n.snapshot=e,Ds(t.queryParams,e.queryParams)||n.queryParams.next(e.queryParams),t.fragment!==e.fragment&&n.fragment.next(e.fragment),Ds(t.params,e.params)||n.params.next(e.params),function t8(n,t){if(n.length!==t.length)return!1;for(let e=0;eDs(e.parameters,t[i].parameters))}(n.url,t.url);return e&&!(!n.parent!=!t.parent)&&(!n.parent||R0(n.parent,t.parent))}function mf(n,t,e){if(e&&n.shouldReuseRoute(t.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=t.value;const o=function z8(n,t,e){return t.children.map(i=>{for(const o of e.children)if(n.shouldReuseRoute(i.value,o.value.snapshot))return mf(n,i,o);return mf(n,i)})}(n,t,e);return new la(i,o)}{if(n.shouldAttach(t.value)){const s=n.retrieve(t.value);if(null!==s){const a=s.route;return a.value._futureSnapshot=t.value,a.children=t.children.map(l=>mf(n,l)),a}}const i=function U8(n){return new yr(new Ir(n.url),new Ir(n.params),new Ir(n.queryParams),new Ir(n.fragment),new Ir(n.data),n.outlet,n.component,n)}(t.value),o=t.children.map(s=>mf(n,s));return new la(i,o)}}const N0="ngNavigationCancelingError";function GT(n,t){const{redirectTo:e,navigationBehaviorOptions:i}=Xl(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=qT(!1,0,t);return o.url=e,o.navigationBehaviorOptions=i,o}function qT(n,t,e){const i=new Error("NavigationCancelingError: "+(n||""));return i[N0]=!0,i.cancellationCode=t,e&&(i.url=e),i}function KT(n){return ZT(n)&&Xl(n.url)}function ZT(n){return n&&n[N0]}class W8{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.injector=null,this.children=new _f,this.attachRef=null}}let _f=(()=>{class n{constructor(){this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new W8,this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Y_=!1;let B_=(()=>{class n{constructor(){this.activated=null,this._activatedRoute=null,this.name=$t,this.activateEvents=new ht,this.deactivateEvents=new ht,this.attachEvents=new ht,this.detachEvents=new ht,this.parentContexts=Et(_f),this.location=Et(Qi),this.changeDetector=Et(ui),this.environmentInjector=Et(bs)}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Fe(4012,Y_);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Fe(4012,Y_);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Fe(4012,Y_);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new Fe(4013,Y_);this._activatedRoute=e;const o=this.location,a=e.snapshot.component,l=this.parentContexts.getOrCreateContext(this.name).children,d=new $8(e,l,o.injector);if(i&&function G8(n){return!!n.resolveComponentFactory}(i)){const w=i.resolveComponentFactory(a);this.activated=o.createComponent(w,o.length,d)}else this.activated=o.createComponent(a,{index:o.length,injector:d,environmentInjector:i??this.environmentInjector});this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[qi]}),n})();class $8{constructor(t,e,i){this.route=t,this.childContexts=e,this.parent=i}get(t,e){return t===yr?this.route:t===_f?this.childContexts:this.parent.get(t,e)}}let Y0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=qe({type:n,selectors:[["ng-component"]],standalone:!0,features:[$v],decls:1,vars:0,template:function(e,i){1&e&&xe(0,"router-outlet")},dependencies:[B_],encapsulation:2}),n})();function XT(n,t){return n.providers&&!n._injector&&(n._injector=Fm(n.providers,t,`Route: ${n.path}`)),n._injector??t}function H0(n){const t=n.children&&n.children.map(H0),e=t?{...n,children:t}:{...n};return!e.component&&!e.loadComponent&&(t||e.loadChildren)&&e.outlet&&e.outlet!==$t&&(e.component=Y0),e}function Bo(n){return n.outlet||$t}function QT(n,t){const e=n.filter(i=>Bo(i)===t);return e.push(...n.filter(i=>Bo(i)!==t)),e}function gf(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let t=n.parent;t;t=t.parent){const e=t.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class Q8{constructor(t,e,i,o){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=o}activate(t){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),F0(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){const o=jd(e);t.children.forEach(s=>{const a=s.value.outlet;this.deactivateRoutes(s,o[a],i),delete o[a]}),vr(o,(s,a)=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(t,e,i){const o=t.value,s=e?e.value:null;if(o===s)if(o.component){const a=i.getContext(o.outlet);a&&this.deactivateChildRoutes(t,e,a.children)}else this.deactivateChildRoutes(t,e,i);else s&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){const i=e.getContext(t.value.outlet),o=i&&t.value.component?i.children:e,s=jd(t);for(const a of Object.keys(s))this.deactivateRouteAndItsChildren(s[a],o);if(i&&i.outlet){const a=i.outlet.detach(),l=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:a,route:t,contexts:l})}}deactivateRouteAndOutlet(t,e){const i=e.getContext(t.value.outlet),o=i&&t.value.component?i.children:e,s=jd(t);for(const a of Object.keys(s))this.deactivateRouteAndItsChildren(s[a],o);i&&i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated(),i.attachRef=null,i.resolver=null,i.route=null)}activateChildRoutes(t,e,i){const o=jd(e);t.children.forEach(s=>{this.activateRoutes(s,o[s.value.outlet],i),this.forwardEvent(new R8(s.value.snapshot))}),t.children.length&&this.forwardEvent(new A8(t.value.snapshot))}activateRoutes(t,e,i){const o=t.value,s=e?e.value:null;if(F0(o),o===s)if(o.component){const a=i.getOrCreateContext(o.outlet);this.activateChildRoutes(t,e,a.children)}else this.activateChildRoutes(t,e,i);else if(o.component){const a=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const l=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),a.children.onOutletReAttached(l.contexts),a.attachRef=l.componentRef,a.route=l.route.value,a.outlet&&a.outlet.attach(l.componentRef,l.route.value),F0(l.route.value),this.activateChildRoutes(t,null,a.children)}else{const l=gf(o.snapshot),d=l?.get(Ya)??null;a.attachRef=null,a.route=o,a.resolver=d,a.injector=l,a.outlet&&a.outlet.activateWith(o,a.injector),this.activateChildRoutes(t,null,a.children)}}else this.activateChildRoutes(t,null,i)}}class JT{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class H_{constructor(t,e){this.component=t,this.route=e}}function J8(n,t,e){const i=n._root;return bf(i,t?t._root:null,e,[i.value])}function zd(n,t){const e=Symbol(),i=t.get(n,e);return i===e?"function"!=typeof n||function Wg(n){return null!==Ac(n)}(n)?t.get(n):n:i}function bf(n,t,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const s=jd(t);return n.children.forEach(a=>{(function t6(n,t,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const s=n.value,a=t?t.value:null,l=e?e.getContext(n.value.outlet):null;if(a&&s.routeConfig===a.routeConfig){const d=function n6(n,t,e){if("function"==typeof e)return e(n,t);switch(e){case"pathParamsChange":return!Zl(n.url,t.url);case"pathParamsOrQueryParamsChange":return!Zl(n.url,t.url)||!Ds(n.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!R0(n,t)||!Ds(n.queryParams,t.queryParams);default:return!R0(n,t)}}(a,s,s.routeConfig.runGuardsAndResolvers);d?o.canActivateChecks.push(new JT(i)):(s.data=a.data,s._resolvedData=a._resolvedData),bf(n,t,s.component?l?l.children:null:e,i,o),d&&l&&l.outlet&&l.outlet.isActivated&&o.canDeactivateChecks.push(new H_(l.outlet.component,a))}else a&&vf(t,l,o),o.canActivateChecks.push(new JT(i)),bf(n,null,s.component?l?l.children:null:e,i,o)})(a,s[a.value.outlet],e,i.concat([a.value]),o),delete s[a.value.outlet]}),vr(s,(a,l)=>vf(a,e.getContext(l),o)),o}function vf(n,t,e){const i=jd(n),o=n.value;vr(i,(s,a)=>{vf(s,o.component?t?t.children.getContext(a):null:t,e)}),e.canDeactivateChecks.push(new H_(o.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,o))}function yf(n){return"function"==typeof n}function V0(n){return n instanceof k_||"EmptyError"===n?.name}const V_=Symbol("INITIAL_VALUE");function Ud(){return br(n=>C0(n.map(t=>t.pipe(ti(1),yo(V_)))).pipe(Ce(t=>{for(const e of t)if(!0!==e){if(e===V_)return V_;if(!1===e||e instanceof Kl)return e}return!0}),Si(t=>t!==V_),ti(1)))}function e2(n){return Z(hi(t=>{if(Xl(t))throw GT(0,t)}),Ce(t=>!0===t))}const j0={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function t2(n,t,e,i,o){const s=z0(n,t,e);return s.matched?function v6(n,t,e,i){const o=t.canMatch;return o&&0!==o.length?Ge(o.map(a=>{const l=zd(a,n);return Xa(function l6(n){return n&&yf(n.canMatch)}(l)?l.canMatch(t,e):n.runInContext(()=>l(t,e)))})).pipe(Ud(),e2()):Ge(!0)}(i=XT(t,i),t,e).pipe(Ce(a=>!0===a?s:{...j0})):Ge(s)}function z0(n,t,e){if(""===t.path)return"full"===t.pathMatch&&(n.hasChildren()||e.length>0)?{...j0}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(t.matcher||e8)(e,n,t);if(!o)return{...j0};const s={};vr(o.posParams,(l,d)=>{s[d]=l.path});const a=o.consumed.length>0?{...s,...o.consumed[o.consumed.length-1].parameters}:s;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:a,positionalParamSegments:o.posParams??{}}}function j_(n,t,e,i){if(e.length>0&&function w6(n,t,e){return e.some(i=>z_(n,t,i)&&Bo(i)!==$t)}(n,e,i)){const s=new qt(t,function M6(n,t,e,i){const o={};o[$t]=i,i._sourceSegment=n,i._segmentIndexShift=t.length;for(const s of e)if(""===s.path&&Bo(s)!==$t){const a=new qt([],{});a._sourceSegment=n,a._segmentIndexShift=t.length,o[Bo(s)]=a}return o}(n,t,i,new qt(e,n.children)));return s._sourceSegment=n,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:[]}}if(0===e.length&&function x6(n,t,e){return e.some(i=>z_(n,t,i))}(n,e,i)){const s=new qt(n.segments,function y6(n,t,e,i,o){const s={};for(const a of i)if(z_(n,e,a)&&!o[Bo(a)]){const l=new qt([],{});l._sourceSegment=n,l._segmentIndexShift=t.length,s[Bo(a)]=l}return{...o,...s}}(n,t,e,i,n.children));return s._sourceSegment=n,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:e}}const o=new qt(n.segments,n.children);return o._sourceSegment=n,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:e}}function z_(n,t,e){return(!(n.hasChildren()||t.length>0)||"full"!==e.pathMatch)&&""===e.path}function n2(n,t,e,i){return!!(Bo(n)===i||i!==$t&&z_(t,e,n))&&("**"===n.path||z0(t,n,e).matched)}function r2(n,t,e){return 0===t.length&&!n.children[e]}const U_=!1;class W_{constructor(t){this.segmentGroup=t||null}}class o2{constructor(t){this.urlTree=t}}function Mf(n){return Pr(new W_(n))}function s2(n){return Pr(new o2(n))}class D6{constructor(t,e,i,o,s){this.injector=t,this.configLoader=e,this.urlSerializer=i,this.urlTree=o,this.config=s,this.allowRedirects=!0}apply(){const t=j_(this.urlTree.root,[],[],this.config).segmentGroup,e=new qt(t.segments,t.children);return this.expandSegmentGroup(this.injector,this.config,e,$t).pipe(Ce(s=>this.createUrlTree(F_(s),this.urlTree.queryParams,this.urlTree.fragment))).pipe(no(s=>{if(s instanceof o2)return this.allowRedirects=!1,this.match(s.urlTree);throw s instanceof W_?this.noMatchError(s):s}))}match(t){return this.expandSegmentGroup(this.injector,this.config,t.root,$t).pipe(Ce(o=>this.createUrlTree(F_(o),t.queryParams,t.fragment))).pipe(no(o=>{throw o instanceof W_?this.noMatchError(o):o}))}noMatchError(t){return new Fe(4002,U_)}createUrlTree(t,e,i){const o=D0(t);return new Kl(o,e,i)}expandSegmentGroup(t,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.expandChildren(t,e,i).pipe(Ce(s=>new qt([],s))):this.expandSegment(t,i,e,i.segments,o,!0)}expandChildren(t,e,i){const o=[];for(const s of Object.keys(i.children))"primary"===s?o.unshift(s):o.push(s);return ue(o).pipe($a(s=>{const a=i.children[s],l=QT(e,s);return this.expandSegmentGroup(t,l,a,s).pipe(Ce(d=>({segment:d,outlet:s})))}),D_((s,a)=>(s[a.outlet]=a.segment,s),{}),yT())}expandSegment(t,e,i,o,s,a){return ue(i).pipe($a(l=>this.expandSegmentAgainstRoute(t,e,i,l,o,s,a).pipe(no(w=>{if(w instanceof W_)return Ge(null);throw w}))),Ka(l=>!!l),no((l,d)=>{if(V0(l))return r2(e,o,s)?Ge(new qt([],{})):Mf(e);throw l}))}expandSegmentAgainstRoute(t,e,i,o,s,a,l){return n2(o,e,s,a)?void 0===o.redirectTo?this.matchSegmentAgainstRoute(t,e,o,s,a):l&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a):Mf(e):Mf(e)}expandSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,i,o,a):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,e,i,o){const s=this.applyRedirectCommands([],i.redirectTo,{});return i.redirectTo.startsWith("/")?s2(s):this.lineralizeSegments(i,s).pipe(Ne(a=>{const l=new qt(a,{});return this.expandSegment(t,l,e,a,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a){const{matched:l,consumedSegments:d,remainingSegments:w,positionalParamSegments:P}=z0(e,o,s);if(!l)return Mf(e);const Y=this.applyRedirectCommands(d,o.redirectTo,P);return o.redirectTo.startsWith("/")?s2(Y):this.lineralizeSegments(o,Y).pipe(Ne(q=>this.expandSegment(t,e,i,q.concat(w),a,!1)))}matchSegmentAgainstRoute(t,e,i,o,s){return"**"===i.path?(t=XT(i,t),i.loadChildren?(i._loadedRoutes?Ge({routes:i._loadedRoutes,injector:i._loadedInjector}):this.configLoader.loadChildren(t,i)).pipe(Ce(l=>(i._loadedRoutes=l.routes,i._loadedInjector=l.injector,new qt(o,{})))):Ge(new qt(o,{}))):t2(e,i,o,t).pipe(br(({matched:a,consumedSegments:l,remainingSegments:d})=>a?this.getChildConfig(t=i._injector??t,i,o).pipe(Ne(P=>{const Y=P.injector??t,q=P.routes,{segmentGroup:te,slicedSegments:pe}=j_(e,l,d,q),ke=new qt(te.segments,te.children);if(0===pe.length&&ke.hasChildren())return this.expandChildren(Y,q,ke).pipe(Ce(Ae=>new qt(l,Ae)));if(0===q.length&&0===pe.length)return Ge(new qt(l,{}));const Ie=Bo(i)===s;return this.expandSegment(Y,ke,q,pe,Ie?$t:s,!0).pipe(Ce(Xe=>new qt(l.concat(Xe.segments),Xe.children)))})):Mf(e)))}getChildConfig(t,e,i){return e.children?Ge({routes:e.children,injector:t}):e.loadChildren?void 0!==e._loadedRoutes?Ge({routes:e._loadedRoutes,injector:e._loadedInjector}):function b6(n,t,e,i){const o=t.canLoad;return void 0===o||0===o.length?Ge(!0):Ge(o.map(a=>{const l=zd(a,n);return Xa(function r6(n){return n&&yf(n.canLoad)}(l)?l.canLoad(t,e):n.runInContext(()=>l(t,e)))})).pipe(Ud(),e2())}(t,e,i).pipe(Ne(o=>o?this.configLoader.loadChildren(t,e).pipe(hi(s=>{e._loadedRoutes=s.routes,e._loadedInjector=s.injector})):function k6(n){return Pr(qT(U_,3))}())):Ge({routes:[],injector:t})}lineralizeSegments(t,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return Ge(i);if(o.numberOfChildren>1||!o.children[$t])return Pr(new Fe(4e3,U_));o=o.children[$t]}}applyRedirectCommands(t,e,i){return this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),t,i)}applyRedirectCreateUrlTree(t,e,i,o){const s=this.createSegmentGroup(t,e.root,i,o);return new Kl(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){const i={};return vr(t,(o,s)=>{if("string"==typeof o&&o.startsWith(":")){const l=o.substring(1);i[s]=e[l]}else i[s]=o}),i}createSegmentGroup(t,e,i,o){const s=this.createSegments(t,e.segments,i,o);let a={};return vr(e.children,(l,d)=>{a[d]=this.createSegmentGroup(t,l,i,o)}),new qt(s,a)}createSegments(t,e,i,o){return e.map(s=>s.path.startsWith(":")?this.findPosParam(t,s,o):this.findOrReturn(s,i))}findPosParam(t,e,i){const o=i[e.path.substring(1)];if(!o)throw new Fe(4001,U_);return o}findOrReturn(t,e){let i=0;for(const o of e){if(o.path===t.path)return e.splice(i),o;i++}return t}}class L6{}class P6{constructor(t,e,i,o,s,a,l){this.injector=t,this.rootComponentType=e,this.config=i,this.urlTree=o,this.url=s,this.paramsInheritanceStrategy=a,this.urlSerializer=l}recognize(){const t=j_(this.urlTree.root,[],[],this.config.filter(e=>void 0===e.redirectTo)).segmentGroup;return this.processSegmentGroup(this.injector,this.config,t,$t).pipe(Ce(e=>{if(null===e)return null;const i=new N_([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},$t,this.rootComponentType,null,this.urlTree.root,-1,{}),o=new la(i,e),s=new WT(this.url,o);return this.inheritParamsAndData(s._root),s}))}inheritParamsAndData(t){const e=t.value,i=UT(e,this.paramsInheritanceStrategy);e.params=Object.freeze(i.params),e.data=Object.freeze(i.data),t.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(t,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.processChildren(t,e,i):this.processSegment(t,e,i,i.segments,o)}processChildren(t,e,i){return ue(Object.keys(i.children)).pipe($a(o=>{const s=i.children[o],a=QT(e,o);return this.processSegmentGroup(t,a,s,o)}),D_((o,s)=>o&&s?(o.push(...s),o):null),MT(o=>null!==o),sf(null),yT(),Ce(o=>{if(null===o)return null;const s=l2(o);return function O6(n){n.sort((t,e)=>t.value.outlet===$t?-1:e.value.outlet===$t?1:t.value.outlet.localeCompare(e.value.outlet))}(s),s}))}processSegment(t,e,i,o,s){return ue(e).pipe($a(a=>this.processSegmentAgainstRoute(a._injector??t,a,i,o,s)),Ka(a=>!!a),no(a=>{if(V0(a))return r2(i,o,s)?Ge([]):Ge(null);throw a}))}processSegmentAgainstRoute(t,e,i,o,s){if(e.redirectTo||!n2(e,i,o,s))return Ge(null);let a;if("**"===e.path){const l=o.length>0?CT(o).parameters:{},d=d2(i)+o.length;a=Ge({snapshot:new N_(o,l,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,u2(e),Bo(e),e.component??e._loadedComponent??null,e,c2(i),d,h2(e)),consumedSegments:[],remainingSegments:[]})}else a=t2(i,e,o,t).pipe(Ce(({matched:l,consumedSegments:d,remainingSegments:w,parameters:P})=>{if(!l)return null;const Y=d2(i)+d.length;return{snapshot:new N_(d,P,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,u2(e),Bo(e),e.component??e._loadedComponent??null,e,c2(i),Y,h2(e)),consumedSegments:d,remainingSegments:w}}));return a.pipe(br(l=>{if(null===l)return Ge(null);const{snapshot:d,consumedSegments:w,remainingSegments:P}=l;t=e._injector??t;const Y=e._loadedInjector??t,q=function A6(n){return n.children?n.children:n.loadChildren?n._loadedRoutes:[]}(e),{segmentGroup:te,slicedSegments:pe}=j_(i,w,P,q.filter(Ie=>void 0===Ie.redirectTo));if(0===pe.length&&te.hasChildren())return this.processChildren(Y,q,te).pipe(Ce(Ie=>null===Ie?null:[new la(d,Ie)]));if(0===q.length&&0===pe.length)return Ge([new la(d,[])]);const ke=Bo(e)===s;return this.processSegment(Y,q,te,pe,ke?$t:s).pipe(Ce(Ie=>null===Ie?null:[new la(d,Ie)]))}))}}function F6(n){const t=n.value.routeConfig;return t&&""===t.path&&void 0===t.redirectTo}function l2(n){const t=[],e=new Set;for(const i of n){if(!F6(i)){t.push(i);continue}const o=t.find(s=>i.value.routeConfig===s.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):t.push(i)}for(const i of e){const o=l2(i.children);t.push(new la(i.value,o))}return t.filter(i=>!e.has(i))}function c2(n){let t=n;for(;t._sourceSegment;)t=t._sourceSegment;return t}function d2(n){let t=n,e=t._segmentIndexShift??0;for(;t._sourceSegment;)t=t._sourceSegment,e+=t._segmentIndexShift??0;return e-1}function u2(n){return n.data||{}}function h2(n){return n.resolve||{}}function f2(n){return"string"==typeof n.title||null===n.title}function U0(n){return br(t=>{const e=n(t);return e?ue(e).pipe(Ce(()=>t)):Ge(t)})}const Wd=new He("ROUTES");let W0=(()=>{class n{constructor(e,i){this.injector=e,this.compiler=i,this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return Ge(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=Xa(e.loadComponent()).pipe(Ce(m2),hi(s=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=s}),T_(()=>{this.componentLoaders.delete(e)})),o=new Kr(i,()=>new X).pipe(jt());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Ge({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const s=this.loadModuleFactoryOrRoutes(i.loadChildren).pipe(Ce(l=>{this.onLoadEndListener&&this.onLoadEndListener(i);let d,w,P=!1;Array.isArray(l)?w=l:(d=l.create(e).injector,w=xT(d.get(Wd,[],Mt.Self|Mt.Optional)));return{routes:w.map(H0),injector:d}}),T_(()=>{this.childrenLoaders.delete(i)})),a=new Kr(s,()=>new X).pipe(jt());return this.childrenLoaders.set(i,a),a}loadModuleFactoryOrRoutes(e){return Xa(e()).pipe(Ce(m2),Ne(o=>o instanceof nk||Array.isArray(o)?Ge(o):ue(this.compiler.compileModuleAsync(o))))}}return n.\u0275fac=function(e){return new(e||n)(we(_i),we(Uk))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function m2(n){return function U6(n){return n&&"object"==typeof n&&"default"in n}(n)?n.default:n}let $0=(()=>{class n{constructor(){this.currentNavigation=null,this.lastSuccessfulNavigation=null,this.events=new X,this.configLoader=Et(W0),this.environmentInjector=Et(bs),this.urlSerializer=Et(df),this.rootContexts=Et(_f),this.navigationId=0,this.configLoader.onLoadEndListener=o=>this.events.next(new P8(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new I8(o))}get hasRequestedNavigation(){return 0!==this.navigationId}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e){return this.transitions=new Ir({id:0,targetPageId:0,currentUrlTree:e.currentUrlTree,currentRawUrl:e.currentUrlTree,extractedUrl:e.urlHandlingStrategy.extract(e.currentUrlTree),urlAfterRedirects:e.urlHandlingStrategy.extract(e.currentUrlTree),rawUrl:e.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:e.routerState.snapshot,targetSnapshot:null,currentRouterState:e.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(Si(i=>0!==i.id),Ce(i=>({...i,extractedUrl:e.urlHandlingStrategy.extract(i.rawUrl)})),br(i=>{let o=!1,s=!1;return Ge(i).pipe(hi(a=>{this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),br(a=>{const l=e.browserUrlTree.toString(),d=!e.navigated||a.extractedUrl.toString()!==l||l!==e.currentUrlTree.toString();if(("reload"===e.onSameUrlNavigation||d)&&e.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return g2(a.source)&&(e.browserUrlTree=a.extractedUrl),Ge(a).pipe(br(P=>{const Y=this.transitions?.getValue();return this.events.next(new I0(P.id,this.urlSerializer.serialize(P.extractedUrl),P.source,P.restoredState)),Y!==this.transitions?.getValue()?qa:Promise.resolve(P)}),function T6(n,t,e,i){return br(o=>function S6(n,t,e,i,o){return new D6(n,t,e,i,o).apply()}(n,t,e,o.extractedUrl,i).pipe(Ce(s=>({...o,urlAfterRedirects:s}))))}(this.environmentInjector,this.configLoader,this.urlSerializer,e.config),hi(P=>{this.currentNavigation={...this.currentNavigation,finalUrl:P.urlAfterRedirects},i.urlAfterRedirects=P.urlAfterRedirects}),function N6(n,t,e,i,o){return Ne(s=>function I6(n,t,e,i,o,s,a="emptyOnly"){return new P6(n,t,e,i,o,a,s).recognize().pipe(br(l=>null===l?function E6(n){return new de(t=>t.error(n))}(new L6):Ge(l)))}(n,t,e,s.urlAfterRedirects,i.serialize(s.urlAfterRedirects),i,o).pipe(Ce(a=>({...s,targetSnapshot:a}))))}(this.environmentInjector,e.rootComponentType,e.config,this.urlSerializer,e.paramsInheritanceStrategy),hi(P=>{if(i.targetSnapshot=P.targetSnapshot,"eager"===e.urlUpdateStrategy){if(!P.extras.skipLocationChange){const q=e.urlHandlingStrategy.merge(P.urlAfterRedirects,P.rawUrl);e.setBrowserUrl(q,P)}e.browserUrlTree=P.urlAfterRedirects}const Y=new S8(P.id,this.urlSerializer.serialize(P.extractedUrl),this.urlSerializer.serialize(P.urlAfterRedirects),P.targetSnapshot);this.events.next(Y)}));if(d&&e.rawUrlTree&&e.urlHandlingStrategy.shouldProcessUrl(e.rawUrlTree)){const{id:Y,extractedUrl:q,source:te,restoredState:pe,extras:ke}=a,Ie=new I0(Y,this.urlSerializer.serialize(q),te,pe);this.events.next(Ie);const Re=zT(q,e.rootComponentType).snapshot;return Ge(i={...a,targetSnapshot:Re,urlAfterRedirects:q,extras:{...ke,skipLocationChange:!1,replaceUrl:!1}})}return e.rawUrlTree=a.rawUrl,a.resolve(null),qa}),hi(a=>{const l=new D8(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(l)}),Ce(a=>i={...a,guards:J8(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),function d6(n,t){return Ne(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:s,canDeactivateChecks:a}}=e;return 0===a.length&&0===s.length?Ge({...e,guardsResult:!0}):function u6(n,t,e,i){return ue(n).pipe(Ne(o=>function g6(n,t,e,i,o){const s=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return s&&0!==s.length?Ge(s.map(l=>{const d=gf(t)??o,w=zd(l,d);return Xa(function a6(n){return n&&yf(n.canDeactivate)}(w)?w.canDeactivate(n,t,e,i):d.runInContext(()=>w(n,t,e,i))).pipe(Ka())})).pipe(Ud()):Ge(!0)}(o.component,o.route,e,t,i)),Ka(o=>!0!==o,!0))}(a,i,o,n).pipe(Ne(l=>l&&function i6(n){return"boolean"==typeof n}(l)?function h6(n,t,e,i){return ue(t).pipe($a(o=>ql(function p6(n,t){return null!==n&&t&&t(new O8(n)),Ge(!0)}(o.route.parent,i),function f6(n,t){return null!==n&&t&&t(new F8(n)),Ge(!0)}(o.route,i),function _6(n,t,e){const i=t[t.length-1],s=t.slice(0,t.length-1).reverse().map(a=>function e6(n){const t=n.routeConfig?n.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:n,guards:t}:null}(a)).filter(a=>null!==a).map(a=>rf(()=>Ge(a.guards.map(d=>{const w=gf(a.node)??e,P=zd(d,w);return Xa(function s6(n){return n&&yf(n.canActivateChild)}(P)?P.canActivateChild(i,n):w.runInContext(()=>P(i,n))).pipe(Ka())})).pipe(Ud())));return Ge(s).pipe(Ud())}(n,o.path,e),function m6(n,t,e){const i=t.routeConfig?t.routeConfig.canActivate:null;if(!i||0===i.length)return Ge(!0);const o=i.map(s=>rf(()=>{const a=gf(t)??e,l=zd(s,a);return Xa(function o6(n){return n&&yf(n.canActivate)}(l)?l.canActivate(t,n):a.runInContext(()=>l(t,n))).pipe(Ka())}));return Ge(o).pipe(Ud())}(n,o.route,e))),Ka(o=>!0!==o,!0))}(i,s,n,t):Ge(l)),Ce(l=>({...e,guardsResult:l})))})}(this.environmentInjector,a=>this.events.next(a)),hi(a=>{if(i.guardsResult=a.guardsResult,Xl(a.guardsResult))throw GT(0,a.guardsResult);const l=new T8(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.events.next(l)}),Si(a=>!!a.guardsResult||(e.restoreHistory(a),this.cancelNavigationTransition(a,"",3,e),!1)),U0(a=>{if(a.guards.canActivateChecks.length)return Ge(a).pipe(hi(l=>{const d=new L8(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(d)}),br(l=>{let d=!1;return Ge(l).pipe(function Y6(n,t){return Ne(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return Ge(e);let s=0;return ue(o).pipe($a(a=>function B6(n,t,e,i){const o=n.routeConfig,s=n._resolve;return void 0!==o?.title&&!f2(o)&&(s[lf]=o.title),function H6(n,t,e,i){const o=function V6(n){return[...Object.keys(n),...Object.getOwnPropertySymbols(n)]}(n);if(0===o.length)return Ge({});const s={};return ue(o).pipe(Ne(a=>function j6(n,t,e,i){const o=gf(t)??i,s=zd(n,o);return Xa(s.resolve?s.resolve(t,e):o.runInContext(()=>s(t,e)))}(n[a],t,e,i).pipe(Ka(),hi(l=>{s[a]=l}))),af(1),function qV(n){return t=>t.lift(new KV(n))}(s),no(a=>V0(a)?qa:Pr(a)))}(s,n,t,i).pipe(Ce(a=>(n._resolvedData=a,n.data=UT(n,e).resolve,o&&f2(o)&&(n.data[lf]=o.title),null)))}(a.route,i,n,t)),hi(()=>s++),af(1),Ne(a=>s===o.length?Ge(e):qa))})}(e.paramsInheritanceStrategy,this.environmentInjector),hi({next:()=>d=!0,complete:()=>{d||(e.restoreHistory(l),this.cancelNavigationTransition(l,"",2,e))}}))}),hi(l=>{const d=new E8(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(d)}))}),U0(a=>{const l=d=>{const w=[];d.routeConfig?.loadComponent&&!d.routeConfig._loadedComponent&&w.push(this.configLoader.loadComponent(d.routeConfig).pipe(hi(P=>{d.component=P}),Ce(()=>{})));for(const P of d.children)w.push(...l(P));return w};return C0(l(a.targetSnapshot.root)).pipe(sf(),ti(1))}),U0(()=>e.afterPreactivation()),Ce(a=>{const l=function j8(n,t,e){const i=mf(n,t._root,e?e._root:void 0);return new jT(i,t)}(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return i={...a,targetRouterState:l}}),hi(a=>{e.currentUrlTree=a.urlAfterRedirects,e.rawUrlTree=e.urlHandlingStrategy.merge(a.urlAfterRedirects,a.rawUrl),e.routerState=a.targetRouterState,"deferred"===e.urlUpdateStrategy&&(a.extras.skipLocationChange||e.setBrowserUrl(e.rawUrlTree,a),e.browserUrlTree=a.urlAfterRedirects)}),((n,t,e)=>Ce(i=>(new Q8(t,i.targetRouterState,i.currentRouterState,e).activate(n),i)))(this.rootContexts,e.routeReuseStrategy,a=>this.events.next(a)),hi({next:a=>{o=!0,this.lastSuccessfulNavigation=this.currentNavigation,e.navigated=!0,this.events.next(new Qa(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(e.currentUrlTree))),e.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0)},complete:()=>{o=!0}}),T_(()=>{o||s||this.cancelNavigationTransition(i,"",1,e),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),no(a=>{if(s=!0,ZT(a)){KT(a)||(e.navigated=!0,e.restoreHistory(i,!0));const l=new R_(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode);if(this.events.next(l),KT(a)){const d=e.urlHandlingStrategy.merge(a.url,e.rawUrlTree),w={skipLocationChange:i.extras.skipLocationChange,replaceUrl:"eager"===e.urlUpdateStrategy||g2(i.source)};e.scheduleNavigation(d,"imperative",null,w,{resolve:i.resolve,reject:i.reject,promise:i.promise})}else i.resolve(!1)}else{e.restoreHistory(i,!0);const l=new BT(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);this.events.next(l);try{i.resolve(e.errorHandler(a))}catch(d){i.reject(d)}}return qa}))}))}cancelNavigationTransition(e,i,o,s){const a=new R_(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(a),e.resolve(!1)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function g2(n){return"imperative"!==n}let b2=(()=>{class n{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(s=>s.outlet===$t);return i}getResolvedTitleForRoute(e){return e.data[lf]}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Et(W6)},providedIn:"root"}),n})(),W6=(()=>{class n extends b2{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}}return n.\u0275fac=function(e){return new(e||n)(we(dD))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),v2=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Et(G6)},providedIn:"root"}),n})();class $6{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}}let G6=(()=>{class n extends $6{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const $_=new He("",{providedIn:"root",factory:()=>({})});let K6=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Et(Z6)},providedIn:"root"}),n})(),Z6=(()=>{class n{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function X6(n){throw n}function Q6(n,t,e){return t.parse("/")}const J6={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},ej={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Qt=(()=>{class n{constructor(){this.disposed=!1,this.currentPageId=0,this.console=Et(BN),this.isNgZoneEnabled=!1,this.options=Et($_,{optional:!0})||{},this.errorHandler=this.options.errorHandler||X6,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||Q6,this.navigated=!1,this.lastSuccessfulId=-1,this.afterPreactivation=()=>Ge(void 0),this.urlHandlingStrategy=Et(K6),this.routeReuseStrategy=Et(v2),this.urlCreationStrategy=Et(B8),this.titleStrategy=Et(b2),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=xT(Et(Wd,{optional:!0})??[]),this.navigationTransitions=Et($0),this.urlSerializer=Et(df),this.location=Et(zh),this.rootComponentType=null,this.isNgZoneEnabled=Et(pt)instanceof pt&&pt.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new Kl,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=zT(this.currentUrlTree,this.rootComponentType),this.navigationTransitions.setupNavigations(this).subscribe(e=>{this.lastSuccessfulId=e.id,this.currentPageId=e.targetPageId},e=>{this.console.warn(`Unhandled Navigation Error: ${e}`)})}get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return this.location.getState()?.\u0275routerPageId}get events(){return this.navigationTransitions.events}resetRootComponentType(e){this.rootComponentType=e,this.routerState.root.component=this.rootComponentType}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(e=>{const i="popstate"===e.type?"popstate":"hashchange";"popstate"===i&&setTimeout(()=>{const o={replaceUrl:!0},s=e.state?.navigationId?e.state:null;if(e.state){const l={...e.state};delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(o.state=l)}const a=this.parseUrl(e.url);this.scheduleNavigation(a,i,s,o)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}resetConfig(e){this.config=e.map(H0),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(e,i={}){const{relativeTo:o,queryParams:s,fragment:a,queryParamsHandling:l,preserveFragment:d}=i,w=d?this.currentUrlTree.fragment:a;let P=null;switch(l){case"merge":P={...this.currentUrlTree.queryParams,...s};break;case"preserve":P=this.currentUrlTree.queryParams;break;default:P=s||null}return null!==P&&(P=this.removeEmptyProps(P)),this.urlCreationStrategy.createUrlTree(o,this.routerState,this.currentUrlTree,e,P,w??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Xl(e)?e:this.parseUrl(e),s=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(s,"imperative",null,i)}navigate(e,i={skipLocationChange:!1}){return function tj(n){for(let t=0;t{const s=e[o];return null!=s&&(i[o]=s),i},{})}scheduleNavigation(e,i,o,s,a){if(this.disposed)return Promise.resolve(!1);let l,d,w,P;return a?(l=a.resolve,d=a.reject,w=a.promise):w=new Promise((Y,q)=>{l=Y,d=q}),"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(o=this.location.getState()),P=o&&o.\u0275routerPageId?o.\u0275routerPageId:s.replaceUrl||s.skipLocationChange?this.browserPageId??0:(this.browserPageId??0)+1):P=0,this.navigationTransitions.handleNavigationRequest({targetPageId:P,source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:s,resolve:l,reject:d,promise:w,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),w.catch(Y=>Promise.reject(Y))}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e),s={...i.extras.state,...this.generateNgRouterState(i.id,i.targetPageId)};this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl?this.location.replaceState(o,"",s):this.location.go(o,"",s)}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const o=this.currentPageId-e.targetPageId;"popstate"!==e.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==this.getCurrentNavigation()?.finalUrl||0===o?this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===o&&(this.resetState(e),this.browserUrlTree=e.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(o)}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=e.currentRouterState,this.currentUrlTree=e.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),Ja=(()=>{class n{constructor(e,i,o,s,a,l){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=s,this.el=a,this.locationStrategy=l,this._preserveFragment=!1,this._skipLocationChange=!1,this._replaceUrl=!1,this.href=null,this.commands=null,this.onChanges=new X;const d=a.nativeElement.tagName;this.isAnchorElement="A"===d||"AREA"===d,this.isAnchorElement?this.subscription=e.events.subscribe(w=>{w instanceof Qa&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}set preserveFragment(e){this._preserveFragment=Fd(e)}get preserveFragment(){return this._preserveFragment}set skipLocationChange(e){this._skipLocationChange=Fd(e)}get skipLocationChange(){return this._skipLocationChange}set replaceUrl(e){this._replaceUrl=Fd(e)}get replaceUrl(){return this._replaceUrl}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,s,a){return!!(null===this.urlTree||this.isAnchorElement&&(0!==e||i||o||s||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(this.urlTree,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){this.href=null!==this.urlTree&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null;const e=null===this.href?null:function Aw(n,t,e){return function ZO(n,t){return"src"===t&&("embed"===n||"frame"===n||"iframe"===n||"media"===n||"script"===n)||"href"===t&&("base"===n||"link"===n)?Ow:Oo}(t,e)(n)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",e)}applyAttributeValue(e,i){const o=this.renderer,s=this.el.nativeElement;null!==i?o.setAttribute(s,e,i):o.removeAttribute(s,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}}return n.\u0275fac=function(e){return new(e||n)(F(Qt),F(yr),Na("tabindex"),F(Ks),F(bt),F(zl))},n.\u0275dir=Ke({type:n,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(e,i){1&e&&ye("click",function(s){return i.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),2&e&&Ut("target",i.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",relativeTo:"relativeTo",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",routerLink:"routerLink"},standalone:!0,features:[qi]}),n})();class M2{}let rj=(()=>{class n{constructor(e,i,o,s,a){this.router=e,this.injector=o,this.preloadingStrategy=s,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(Si(e=>e instanceof Qa),$a(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const s of i){s.providers&&!s._injector&&(s._injector=Fm(s.providers,e,`Route: ${s.path}`));const a=s._injector??e,l=s._loadedInjector??a;s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent?o.push(this.preloadConfig(a,s)):(s.children||s._loadedRoutes)&&o.push(this.processRoutes(l,s.children??s._loadedRoutes))}return ue(o).pipe(sn())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):Ge(null);const s=o.pipe(Ne(a=>null===a?Ge(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));return i.loadComponent&&!i._loadedComponent?ue([s,this.loader.loadComponent(i)]).pipe(sn()):s})}}return n.\u0275fac=function(e){return new(e||n)(we(Qt),we(Uk),we(bs),we(M2),we(W0))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const G0=new He("");let w2=(()=>{class n{constructor(e,i,o,s,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=s,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration=a.scrollPositionRestoration||"disabled",a.anchorScrolling=a.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof I0?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Qa&&(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof HT&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new HT(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}}return n.\u0275fac=function(e){Ba()},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function Gd(n,t){return{\u0275kind:n,\u0275providers:t}}function C2(){const n=Et(_i);return t=>{const e=n.get(Ad);if(t!==e.components[0])return;const i=n.get(Qt),o=n.get(k2);1===n.get(K0)&&i.initialNavigation(),n.get(S2,null,Mt.Optional)?.setUpPreloading(),n.get(G0,null,Mt.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.unsubscribe())}}const k2=new He("",{factory:()=>new X}),K0=new He("",{providedIn:"root",factory:()=>1});const S2=new He("");function cj(n){return Gd(0,[{provide:S2,useExisting:rj},{provide:M2,useExisting:n}])}const D2=new He("ROUTER_FORROOT_GUARD"),dj=[zh,{provide:df,useClass:k0},Qt,_f,{provide:yr,useFactory:function x2(n){return n.routerState.root},deps:[Qt]},W0,[]];function uj(){return new Xk("Router",Qt)}let T2=(()=>{class n{constructor(e){}static forRoot(e,i){return{ngModule:n,providers:[dj,[],{provide:Wd,multi:!0,useValue:e},{provide:D2,useFactory:mj,deps:[[Qt,new Gs,new dd]]},{provide:$_,useValue:i||{}},i?.useHash?{provide:zl,useClass:D4}:{provide:zl,useClass:yS},{provide:G0,useFactory:()=>{const n=Et(W5),t=Et(pt),e=Et($_),i=Et($0),o=Et(df);return e.scrollOffset&&n.setOffset(e.scrollOffset),new w2(o,i,n,t,e)}},i?.preloadingStrategy?cj(i.preloadingStrategy).\u0275providers:[],{provide:Xk,multi:!0,useFactory:uj},i?.initialNavigation?_j(i):[],[{provide:L2,useFactory:C2},{provide:zk,multi:!0,useExisting:L2}]]}}static forChild(e){return{ngModule:n,providers:[{provide:Wd,multi:!0,useValue:e}]}}}return n.\u0275fac=function(e){return new(e||n)(we(D2,8))},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Y0]}),n})();function mj(n){return"guarded"}function _j(n){return["disabled"===n.initialNavigation?Gd(3,[{provide:Bm,multi:!0,useFactory:()=>{const t=Et(Qt);return()=>{t.setUpLocationChangeListener()}}},{provide:K0,useValue:2}]).\u0275providers:[],"enabledBlocking"===n.initialNavigation?Gd(2,[{provide:K0,useValue:0},{provide:Bm,multi:!0,deps:[_i],useFactory:t=>{const e=t.get(k4,Promise.resolve());return()=>e.then(()=>new Promise(o=>{const s=t.get(Qt),a=t.get(k2);(function i(o){t.get(Qt).events.pipe(Si(a=>a instanceof Qa||a instanceof R_||a instanceof BT),Ce(a=>a instanceof Qa||a instanceof R_&&(0===a.code||1===a.code)&&null),Si(a=>null!==a),ti(1)).subscribe(()=>{o()})})(()=>{o(!0)}),s.afterPreactivation=()=>(o(!0),a.closed?Ge(void 0):a),s.initialNavigation()}))}}]).\u0275providers:[]]}const L2=new He("");class bj extends T{constructor(t,e){super()}schedule(t,e=0){return this}}class G_ extends bj{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){if(this.closed)return this;this.state=t;const i=this.id,o=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(o,i,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(o,this.id,e),this}requestAsyncId(t,e,i=0){return setInterval(t.flush.bind(t,this),i)}recycleAsyncId(t,e,i=0){if(null!==i&&this.delay===i&&!1===this.pending)return e;clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(t,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let o,i=!1;try{this.work(t)}catch(s){i=!0,o=!!s&&s||new Error(s)}if(i)return this.unsubscribe(),o}_unsubscribe(){const t=this.id,e=this.scheduler,i=e.actions,o=i.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==o&&i.splice(o,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null}}let E2=(()=>{class n{constructor(e,i=n.now){this.SchedulerAction=e,this.now=i}schedule(e,i=0,o){return new this.SchedulerAction(this,e).schedule(o,i)}}return n.now=()=>Date.now(),n})();class os extends E2{constructor(t,e=E2.now){super(t,()=>os.delegate&&os.delegate!==this?os.delegate.now():e()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(t,e=0,i){return os.delegate&&os.delegate!==this?os.delegate.schedule(t,e,i):super.schedule(t,e,i)}flush(t){const{actions:e}=this;if(this.active)return void e.push(t);let i;this.active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}}const qd=new os(G_);class io{constructor(t,e,i){this.kind=t,this.value=e,this.error=i,this.hasValue="N"===t}observe(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}}do(t,e,i){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return i&&i()}}accept(t,e,i){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,i)}toObservable(){switch(this.kind){case"N":return Ge(this.value);case"E":return Pr(this.error);case"C":return S_()}throw new Error("unexpected notification kind value")}static createNext(t){return typeof t<"u"?new io("N",t):io.undefinedValueNotification}static createError(t){return new io("E",void 0,t)}static createComplete(){return io.completeNotification}}function Di(n,t=qd){const i=function vj(n){return n instanceof Date&&!isNaN(+n)}(n)?+n-t.now():Math.abs(n);return o=>o.lift(new yj(i,t))}io.completeNotification=new io("C"),io.undefinedValueNotification=new io("N",void 0);class yj{constructor(t,e){this.delay=t,this.scheduler=e}call(t,e){return e.subscribe(new Z0(t,this.delay,this.scheduler))}}class Z0 extends A{constructor(t,e,i){super(t),this.delay=e,this.scheduler=i,this.queue=[],this.active=!1,this.errored=!1}static dispatch(t){const e=t.source,i=e.queue,o=t.scheduler,s=t.destination;for(;i.length>0&&i[0].time-o.now()<=0;)i.shift().notification.observe(s);if(i.length>0){const a=Math.max(0,i[0].time-o.now());this.schedule(t,a)}else this.unsubscribe(),e.active=!1}_schedule(t){this.active=!0,this.destination.add(t.schedule(Z0.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))}scheduleNotification(t){if(!0===this.errored)return;const e=this.scheduler,i=new Mj(e.now()+this.delay,t);this.queue.push(i),!1===this.active&&this._schedule(e)}_next(t){this.scheduleNotification(io.createNext(t))}_error(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()}_complete(){this.scheduleNotification(io.createComplete()),this.unsubscribe()}}class Mj{constructor(t,e){this.time=t,this.notification=e}}var Kd=(()=>(function(n){n.NoConnection="NoConnection",n.Unknown="Unknown"}(Kd||(Kd={})),Kd))();class wj{}const I2="common.operation-error";function Kt(n){if(n&&n.type&&!n.srcElement)return n;const t=new wj;if(t.originalError=n,!n||"string"==typeof n)return t.originalServerErrorMsg=n||"",t.translatableErrorMsg=n||I2,t.type=Kd.Unknown,t;t.originalServerErrorMsg=function Cj(n){if(n){if("string"==typeof n._body)return n._body;if(n.originalServerErrorMsg&&"string"==typeof n.originalServerErrorMsg)return n.originalServerErrorMsg;if(n.error&&"string"==typeof n.error)return n.error;if(n.error&&n.error.error&&n.error.error.message)return n.error.error.message;if(n.error&&n.error.error&&"string"==typeof n.error.error)return n.error.error;if(n.message)return n.message;if(n._body&&n._body.error)return n._body.error;try{return JSON.parse(n._body).error}catch{}}return null}(n);return null!=n.status&&(0===n.status||504===n.status)&&(t.type=Kd.NoConnection,t.translatableErrorMsg="common.no-connection-error"),t.type||(t.type=Kd.Unknown,t.translatableErrorMsg=t.originalServerErrorMsg?function xj(n){if(!n||0===n.length)return n;if(-1!==n.indexOf('"error":'))try{n=JSON.parse(n).error}catch{}if(n.startsWith("400")||n.startsWith("403")){const e=n.split(" - ",2);n=2===e.length?e[1]:n}const t=(n=n.trim()).substr(0,1);return t.toUpperCase()!==t&&(n=t.toUpperCase()+n.substr(1,n.length-1)),!n.endsWith(".")&&!n.endsWith(",")&&!n.endsWith(":")&&!n.endsWith(";")&&!n.endsWith("?")&&!n.endsWith("!")&&(n+="."),n}(t.originalServerErrorMsg):I2),t}const Dj=new class Sj extends os{}(class kj extends G_{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}schedule(t,e=0){return e>0?super.schedule(t,e):(this.delay=e,this.state=t,this.scheduler.flush(this),this)}execute(t,e){return e>0||this.closed?super.execute(t,e):this._execute(t,e)}requestAsyncId(t,e,i=0){return null!==i&&i>0||null===i&&this.delay>0?super.requestAsyncId(t,e,i):t.flush(this)}});class q_ extends A{constructor(t,e,i=0){super(t),this.scheduler=e,this.delay=i}static dispatch(t){const{notification:e,destination:i}=t;e.observe(i),this.unsubscribe()}scheduleMessage(t){this.destination.add(this.scheduler.schedule(q_.dispatch,this.delay,new Lj(t,this.destination)))}_next(t){this.scheduleMessage(io.createNext(t))}_error(t){this.scheduleMessage(io.createError(t)),this.unsubscribe()}_complete(){this.scheduleMessage(io.createComplete()),this.unsubscribe()}}class Lj{constructor(t,e){this.notification=t,this.destination=e}}class Ho extends X{constructor(t=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,i){super(),this.scheduler=i,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=t<1?1:t,this._windowTime=e<1?1:e,e===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(t){if(!this.isStopped){const e=this._events;e.push(t),e.length>this._bufferSize&&e.shift()}super.next(t)}nextTimeWindow(t){this.isStopped||(this._events.push(new Ej(this._getNow(),t)),this._trimBufferThenGetEvents()),super.next(t)}_subscribe(t){const e=this._infiniteTimeWindow,i=e?this._events:this._trimBufferThenGetEvents(),o=this.scheduler,s=i.length;let a;if(this.closed)throw new ee;if(this.isStopped||this.hasError?a=T.EMPTY:(this.observers.push(t),a=new ae(this,t)),o&&t.add(t=new q_(t,o)),e)for(let l=0;le&&(a=Math.max(a,s-e)),a>0&&o.splice(0,a),o}}class Ej{constructor(t,e){this.time=t,this.value=e}}const K_="refreshSeconds",Z_="labelsData",X_="localNodesData",P2="nodesData";var Mr=(()=>(function(n){n.Node="nd",n.Transport="tp",n.DmsgServer="ds"}(Mr||(Mr={})),Mr))();class ni{constructor(){this.currentRefreshTimeSubject=new Ho(1),this.savedLocalNodes=new Map,this.savedLabels=new Map,this.savedVisibleLocalNodes=new Set}initialize(t){this.storage=localStorage,this.hypervisorPk=t,this.migrateDataToHvStorage(),this.currentRefreshTime=parseInt(this.getDataForHv(K_),10)||10,this.currentRefreshTimeSubject.next(this.currentRefreshTime),this.getSavedLocalNodes().forEach(o=>{this.savedLocalNodes.set(o.publicKey,o),o.hidden||this.savedVisibleLocalNodes.add(o.publicKey)}),this.getSavedLabels().forEach(o=>this.savedLabels.set(o.id,o)),this.loadLegacyNodeData();const e=[];this.savedLocalNodes.forEach(o=>e.push(o));const i=[];this.savedLabels.forEach(o=>i.push(o)),this.saveLocalNodes(e),this.saveLabels(i)}getDataForHv(t){return this.storage.getItem(this.hypervisorPk+t)}setDataForHv(t,e){return this.storage.setItem(this.hypervisorPk+t,e)}migrateDataToHvStorage(){const t=this.storage.getItem(K_);if(t){const o=parseInt(t,10)||10;this.setRefreshTime(o),this.storage.removeItem(K_)}const e=this.storage.getItem(X_);if(e){const o=JSON.parse(e)||[];this.saveLocalNodes(o),this.storage.removeItem(X_)}const i=this.storage.getItem(Z_);if(i){const o=JSON.parse(i)||[];this.saveLabels(o),this.storage.removeItem(Z_)}}loadLegacyNodeData(){const t=JSON.parse(this.storage.getItem(P2))||[];if(t.length>0){const e=this.getSavedLocalNodes(),i=this.getSavedLabels();t.forEach(o=>{e.push({publicKey:o.publicKey,hidden:o.deleted,ip:null}),this.savedLocalNodes.set(o.publicKey,e[e.length-1]),o.deleted||this.savedVisibleLocalNodes.add(o.publicKey),i.push({id:o.publicKey,identifiedElementType:Mr.Node,label:o.label}),this.savedLabels.set(o.publicKey,i[i.length-1])}),this.saveLocalNodes(e),this.saveLabels(i),this.storage.removeItem(P2)}}setRefreshTime(t){this.setDataForHv(K_,t.toString()),this.currentRefreshTime=t,this.currentRefreshTimeSubject.next(this.currentRefreshTime)}getRefreshTimeObservable(){return this.currentRefreshTimeSubject.asObservable()}getRefreshTime(){return this.currentRefreshTime}includeVisibleLocalNodes(t,e){this.changeLocalNodesHiddenProperty(t,e,!1)}setLocalNodesAsHidden(t,e){this.changeLocalNodesHiddenProperty(t,e,!0)}changeLocalNodesHiddenProperty(t,e,i){if(t.length!==e.length)throw new Error("Invalid params");const o=new Map,s=new Map;t.forEach((d,w)=>{o.set(d,e[w]),s.set(d,e[w])});let a=!1;const l=this.getSavedLocalNodes();l.forEach(d=>{o.has(d.publicKey)&&(s.has(d.publicKey)&&s.delete(d.publicKey),d.ip!==o.get(d.publicKey)&&(d.ip=o.get(d.publicKey),a=!0,this.savedLocalNodes.set(d.publicKey,d)),d.hidden!==i&&(d.hidden=i,a=!0,this.savedLocalNodes.set(d.publicKey,d),i?this.savedVisibleLocalNodes.delete(d.publicKey):this.savedVisibleLocalNodes.add(d.publicKey)))}),s.forEach((d,w)=>{a=!0;const P={publicKey:w,hidden:i,ip:d};l.push(P),this.savedLocalNodes.set(w,P),i?this.savedVisibleLocalNodes.delete(w):this.savedVisibleLocalNodes.add(w)}),a&&this.saveLocalNodes(l)}getSavedLocalNodes(){return JSON.parse(this.getDataForHv(X_))||[]}getSavedVisibleLocalNodes(){return this.savedVisibleLocalNodes}saveLocalNodes(t){this.setDataForHv(X_,JSON.stringify(t))}getSavedLabels(){return JSON.parse(this.getDataForHv(Z_))||[]}saveLabels(t){this.setDataForHv(Z_,JSON.stringify(t))}saveLabel(t,e,i){if(e){let o=!1;const s=this.getSavedLabels().map(a=>(a.id===t&&a.identifiedElementType===i&&(o=!0,a.label=e,this.savedLabels.set(a.id,{label:a.label,id:a.id,identifiedElementType:a.identifiedElementType})),a));if(o)this.saveLabels(s);else{const a={label:e,id:t,identifiedElementType:i};s.push(a),this.savedLabels.set(t,a),this.saveLabels(s)}}else{this.savedLabels.has(t)&&this.savedLabels.delete(t);let o=!1;const s=this.getSavedLabels().filter(a=>a.id!==t||(o=!0,!1));o&&this.saveLabels(s)}}getDefaultLabel(t){return t?t.ip?t.ip:t.localPk.substr(0,8):""}getLabelInfo(t){return this.savedLabels.has(t)?this.savedLabels.get(t):null}}function hn(n){return null!=n&&"false"!=`${n}`}function Mo(n,t=0){return function Ij(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):t}function Q_(n){return Array.isArray(n)?n:[n]}function Gi(n){return null==n?"":"string"==typeof n?n:`${n}px`}function ca(n){return n instanceof bt?n.nativeElement:n}function Zd(n,t,e,i){return O(e)&&(i=e,e=void 0),i?Zd(n,t,e).pipe(Ce(o=>y(o)?i(...o):i(o))):new de(o=>{O2(n,t,function s(a){o.next(arguments.length>1?Array.prototype.slice.call(arguments):a)},o,e)})}function O2(n,t,e,i,o){let s;if(function Aj(n){return n&&"function"==typeof n.addEventListener&&"function"==typeof n.removeEventListener}(n)){const a=n;n.addEventListener(t,e,o),s=()=>a.removeEventListener(t,e,o)}else if(function Oj(n){return n&&"function"==typeof n.on&&"function"==typeof n.off}(n)){const a=n;n.on(t,e),s=()=>a.off(t,e)}else if(function Pj(n){return n&&"function"==typeof n.addListener&&"function"==typeof n.removeListener}(n)){const a=n;n.addListener(t,e),s=()=>a.removeListener(t,e)}else{if(!n||!n.length)throw new TypeError("Invalid event target");for(let a=0,l=n.length;a0?super.requestAsyncId(t,e,i):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame(()=>t.flush(null))))}recycleAsyncId(t,e,i=0){if(null!==i&&i>0||null===i&&this.delay>0)return super.recycleAsyncId(t,e,i);0===t.actions.length&&(cancelAnimationFrame(e),t.scheduled=void 0)}});let Yj=1;const Bj=Promise.resolve(),J_={};function A2(n){return n in J_&&(delete J_[n],!0)}const F2={setImmediate(n){const t=Yj++;return J_[t]=!0,Bj.then(()=>A2(t)&&n()),t},clearImmediate(n){A2(n)}},X0=new class Vj extends os{flush(t){this.active=!0,this.scheduled=void 0;const{actions:e}=this;let i,o=-1,s=e.length;t=t||e.shift();do{if(i=t.execute(t.state,t.delay))break}while(++o0?super.requestAsyncId(t,e,i):(t.actions.push(this),t.scheduled||(t.scheduled=F2.setImmediate(t.flush.bind(t,null))))}recycleAsyncId(t,e,i=0){if(null!==i&&i>0||null===i&&this.delay>0)return super.recycleAsyncId(t,e,i);0===t.actions.length&&(F2.clearImmediate(e),t.scheduled=void 0)}});class zj{constructor(t){this.durationSelector=t}call(t,e){return e.subscribe(new Uj(t,this.durationSelector))}}class Uj extends Me{constructor(t,e){super(t),this.durationSelector=e,this.hasValue=!1}_next(t){if(this.value=t,this.hasValue=!0,!this.throttled){let e;try{const{durationSelector:o}=this;e=o(t)}catch(o){return this.destination.error(o)}const i=Ee(e,new be(this));!i||i.closed?this.clearThrottle():this.add(this.throttled=i)}}clearThrottle(){const{value:t,hasValue:e,throttled:i}=this;i&&(this.remove(i),this.throttled=void 0,i.unsubscribe()),e&&(this.value=void 0,this.hasValue=!1,this.destination.next(t))}notifyNext(){this.clearThrottle()}notifyComplete(){this.clearThrottle()}}function Q0(n){return!y(n)&&n-parseFloat(n)+1>=0}function xf(n=0,t,e){let i=-1;return Q0(t)?i=Number(t)<1?1:Number(t):Se(t)&&(e=t),Se(e)||(e=qd),new de(o=>{const s=Q0(n)?n:+n-e.now();return e.schedule(Wj,s,{index:0,period:i,subscriber:o})})}function Wj(n){const{index:t,period:e,subscriber:i}=n;if(i.next(t),!i.closed){if(-1===e)return i.complete();n.index=t+1,this.schedule(n,e)}}function J0(n,t=qd){return function jj(n){return function(e){return e.lift(new zj(n))}}(()=>xf(n,t))}function Cn(n){return t=>t.lift(new $j(n))}class $j{constructor(t){this.notifier=t}call(t,e){const i=new Gj(t),o=Ee(this.notifier,new be(i));return o&&!i.seenValue?(i.add(o),e.subscribe(i)):i}}class Gj extends Me{constructor(t){super(t),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}let e1;try{e1=typeof Intl<"u"&&Intl.v8BreakIterator}catch{e1=!1}let Xd,fi=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function U5(n){return n===HS}(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!e1)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return n.\u0275fac=function(e){return new(e||n)(we(Vm))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const R2=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function N2(){if(Xd)return Xd;if("object"!=typeof document||!document)return Xd=new Set(R2),Xd;let n=document.createElement("input");return Xd=new Set(R2.filter(t=>(n.setAttribute("type",t),n.type===t))),Xd}let Cf,eg,Ql,t1;function el(n){return function qj(){if(null==Cf&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Cf=!0}))}finally{Cf=Cf||!1}return Cf}()?n:!!n.capture}function Y2(){if(null==Ql){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Ql=!1,Ql;if("scrollBehavior"in document.documentElement.style)Ql=!0;else{const n=Element.prototype.scrollTo;Ql=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return Ql}function kf(){if("object"!=typeof document||!document)return 0;if(null==eg){const n=document.createElement("div"),t=n.style;n.dir="rtl",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",n.appendChild(e),document.body.appendChild(n),eg=0,0===n.scrollLeft&&(n.scrollLeft=1,eg=0===n.scrollLeft?1:2),n.remove()}return eg}function n1(){let n=typeof document<"u"&&document?document.activeElement:null;for(;n&&n.shadowRoot;){const t=n.shadowRoot.activeElement;if(t===n)break;n=t}return n}function tl(n){return n.composedPath?n.composedPath()[0]:n.target}function r1(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const Xj=new He("cdk-dir-doc",{providedIn:"root",factory:function Qj(){return Et(Dt)}}),Jj=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Or=(()=>{class n{constructor(e){if(this.value="ltr",this.change=new ht,e){const o=e.documentElement?e.documentElement.dir:null;this.value=function e7(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?Jj.test(navigator.language)?"rtl":"ltr":"rtl"===t?"rtl":"ltr"}((e.body?e.body.dir:null)||o||"ltr")}}ngOnDestroy(){this.change.complete()}}return n.\u0275fac=function(e){return new(e||n)(we(Xj,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),Sf=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();const t7=["contentWrapper"],n7=["*"],i7=new He("VIRTUAL_SCROLL_STRATEGY");let Df=(()=>{class n{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new X,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new de(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(J0(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):Ge()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(Si(s=>!s||o.indexOf(s)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=ca(i),s=e.getElementRef().nativeElement;do{if(o==s)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>Zd(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return n.\u0275fac=function(e){return new(e||n)(we(pt),we(fi),we(Dt,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),B2=(()=>{class n{constructor(e,i,o,s){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=o,this.dir=s,this._destroyed=new X,this._elementScrolled=new de(a=>this.ngZone.runOutsideAngular(()=>Zd(this.elementRef.nativeElement,"scroll").pipe(Cn(this._destroyed)).subscribe(a)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,o=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=o?e.end:e.start),null==e.right&&(e.right=o?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),o&&0!=kf()?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),2==kf()?e.left=e.right:1==kf()&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;Y2()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",o="right",s=this.elementRef.nativeElement;if("top"==e)return s.scrollTop;if("bottom"==e)return s.scrollHeight-s.clientHeight-s.scrollTop;const a=this.dir&&"rtl"==this.dir.value;return"start"==e?e=a?o:i:"end"==e&&(e=a?i:o),a&&2==kf()?e==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:a&&1==kf()?e==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:e==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Df),F(pt),F(Or,8))},n.\u0275dir=Ke({type:n,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0}),n})(),Jl=(()=>{class n{constructor(e,i,o){this._platform=e,this._change=new X,this._changeListener=s=>{this._change.next(s)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,s=o.getBoundingClientRect();return{top:-s.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-s.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(J0(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}}return n.\u0275fac=function(e){return new(e||n)(we(fi),we(pt),we(Dt,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const H2=new He("VIRTUAL_SCROLLABLE");let s7=(()=>{class n extends B2{constructor(e,i,o,s){super(e,i,o,s)}measureViewportSize(e){const i=this.elementRef.nativeElement;return"horizontal"===e?i.clientWidth:i.clientHeight}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Df),F(pt),F(Or,8))},n.\u0275dir=Ke({type:n,features:[dt]}),n})();const l7=typeof requestAnimationFrame<"u"?Nj:X0;let c7=(()=>{class n extends s7{constructor(e,i,o,s,a,l,d,w){super(e,l,o,a),this.elementRef=e,this._changeDetectorRef=i,this._scrollStrategy=s,this.scrollable=w,this._platform=Et(fi),this._detachedSubject=new X,this._renderedRangeSubject=new X,this._orientation="vertical",this._appendOnly=!1,this.scrolledIndexChange=new de(P=>this._scrollStrategy.scrolledIndexChange.subscribe(Y=>Promise.resolve().then(()=>this.ngZone.run(()=>P.next(Y))))),this.renderedRangeStream=this._renderedRangeSubject,this._totalContentSize=0,this._totalContentWidth="",this._totalContentHeight="",this._renderedRange={start:0,end:0},this._dataLength=0,this._viewportSize=0,this._renderedContentOffset=0,this._renderedContentOffsetNeedsRewrite=!1,this._isChangeDetectionPending=!1,this._runAfterChangeDetection=[],this._viewportChanges=T.EMPTY,this._viewportChanges=d.change().subscribe(()=>{this.checkViewportSize()}),this.scrollable||(this.elementRef.nativeElement.classList.add("cdk-virtual-scrollable"),this.scrollable=this)}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this._calculateSpacerSize())}get appendOnly(){return this._appendOnly}set appendOnly(e){this._appendOnly=hn(e)}ngOnInit(){!this._platform.isBrowser||(this.scrollable===this&&super.ngOnInit(),this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._measureViewportSize(),this._scrollStrategy.attach(this),this.scrollable.elementScrolled().pipe(yo(null),J0(0,l7)).subscribe(()=>this._scrollStrategy.onContentScrolled()),this._markChangeDetectionNeeded()})))}ngOnDestroy(){this.detach(),this._scrollStrategy.detach(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._viewportChanges.unsubscribe(),super.ngOnDestroy()}attach(e){this.ngZone.runOutsideAngular(()=>{this._forOf=e,this._forOf.dataStream.pipe(Cn(this._detachedSubject)).subscribe(i=>{const o=i.length;o!==this._dataLength&&(this._dataLength=o,this._scrollStrategy.onDataLengthChanged()),this._doChangeDetection()})})}detach(){this._forOf=null,this._detachedSubject.next()}getDataLength(){return this._dataLength}getViewportSize(){return this._viewportSize}getRenderedRange(){return this._renderedRange}measureBoundingClientRectWithScrollOffset(e){return this.getElementRef().nativeElement.getBoundingClientRect()[e]}setTotalContentSize(e){this._totalContentSize!==e&&(this._totalContentSize=e,this._calculateSpacerSize(),this._markChangeDetectionNeeded())}setRenderedRange(e){(function a7(n,t){return n.start==t.start&&n.end==t.end})(this._renderedRange,e)||(this.appendOnly&&(e={start:0,end:Math.max(this._renderedRange.end,e.end)}),this._renderedRangeSubject.next(this._renderedRange=e),this._markChangeDetectionNeeded(()=>this._scrollStrategy.onContentRendered()))}getOffsetToRenderedContentStart(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset}setRenderedContentOffset(e,i="to-start"){e=this.appendOnly&&"to-start"===i?0:e;const s="horizontal"==this.orientation,a=s?"X":"Y";let d=`translate${a}(${Number((s&&this.dir&&"rtl"==this.dir.value?-1:1)*e)}px)`;this._renderedContentOffset=e,"to-end"===i&&(d+=` translate${a}(-100%)`,this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=d&&(this._renderedContentTransform=d,this._markChangeDetectionNeeded(()=>{this._renderedContentOffsetNeedsRewrite?(this._renderedContentOffset-=this.measureRenderedContentSize(),this._renderedContentOffsetNeedsRewrite=!1,this.setRenderedContentOffset(this._renderedContentOffset)):this._scrollStrategy.onRenderedOffsetChanged()}))}scrollToOffset(e,i="auto"){const o={behavior:i};"horizontal"===this.orientation?o.start=e:o.top=e,this.scrollable.scrollTo(o)}scrollToIndex(e,i="auto"){this._scrollStrategy.scrollToIndex(e,i)}measureScrollOffset(e){let i;return i=this.scrollable==this?o=>super.measureScrollOffset(o):o=>this.scrollable.measureScrollOffset(o),Math.max(0,i(e??("horizontal"===this.orientation?"start":"top"))-this.measureViewportOffset())}measureViewportOffset(e){let i;const o="left",s="right",a="rtl"==this.dir?.value;i="start"==e?a?s:o:"end"==e?a?o:s:e||("horizontal"===this.orientation?"left":"top");const l=this.scrollable.measureBoundingClientRectWithScrollOffset(i);return this.elementRef.nativeElement.getBoundingClientRect()[i]-l}measureRenderedContentSize(){const e=this._contentWrapper.nativeElement;return"horizontal"===this.orientation?e.offsetWidth:e.offsetHeight}measureRangeSize(e){return this._forOf?this._forOf.measureRangeSize(e,this.orientation):0}checkViewportSize(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()}_measureViewportSize(){this._viewportSize=this.scrollable.measureViewportSize(this.orientation)}_markChangeDetectionNeeded(e){e&&this._runAfterChangeDetection.push(e),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._doChangeDetection()})))}_doChangeDetection(){this._isChangeDetectionPending=!1,this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,this.ngZone.run(()=>this._changeDetectorRef.markForCheck());const e=this._runAfterChangeDetection;this._runAfterChangeDetection=[];for(const i of e)i()}_calculateSpacerSize(){this._totalContentHeight="horizontal"===this.orientation?"":`${this._totalContentSize}px`,this._totalContentWidth="horizontal"===this.orientation?`${this._totalContentSize}px`:""}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(pt),F(i7,8),F(Or,8),F(Df),F(Jl),F(H2,8))},n.\u0275cmp=qe({type:n,selectors:[["cdk-virtual-scroll-viewport"]],viewQuery:function(e,i){if(1&e&&ft(t7,7),2&e){let o;nt(o=it())&&(i._contentWrapper=o.first)}},hostAttrs:[1,"cdk-virtual-scroll-viewport"],hostVars:4,hostBindings:function(e,i){2&e&&Gt("cdk-virtual-scroll-orientation-horizontal","horizontal"===i.orientation)("cdk-virtual-scroll-orientation-vertical","horizontal"!==i.orientation)},inputs:{orientation:"orientation",appendOnly:"appendOnly"},outputs:{scrolledIndexChange:"scrolledIndexChange"},standalone:!0,features:[Zt([{provide:B2,useFactory:(t,e)=>t||e,deps:[[new Gs,new am(H2)],n]}]),dt,$v],ngContentSelectors:n7,decls:4,vars:4,consts:[[1,"cdk-virtual-scroll-content-wrapper"],["contentWrapper",""],[1,"cdk-virtual-scroll-spacer"]],template:function(e,i){1&e&&(gr(),D(0,"div",0,1),vn(2),x(),xe(3,"div",2)),2&e&&(c(3),Va("width",i._totalContentWidth)("height",i._totalContentHeight))},styles:["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"],encapsulation:2,changeDetection:0}),n})(),Tf=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})(),V2=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Sf,Tf,c7,Sf,Tf]}),n})();class o1{attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t&&(this._attachedHost=null,t.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class Qd extends o1{constructor(t,e,i,o,s){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=s}}class ec extends o1{constructor(t,e,i,o){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class d7 extends o1{constructor(t){super(),this.element=t instanceof bt?t.nativeElement:t}}class tg{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof Qd?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof ec?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof d7?(this._attachedPortal=t,this.attachDomPortal(t)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class u7 extends tg{constructor(t,e,i,o,s){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=a=>{const l=a.element,d=this._document.createComment("dom-portal");l.parentNode.insertBefore(d,l),this.outletElement.appendChild(l),this._attachedPortal=a,super.setDisposeFn(()=>{d.parentNode&&d.parentNode.replaceChild(l,d)})},this._document=s}attachComponentPortal(t){const i=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);let o;return t.viewContainerRef?(o=t.viewContainerRef.createComponent(i,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector,t.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(t.injector||this._defaultInjector||_i.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=t,o}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=t,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}let h7=(()=>{class n extends ec{constructor(e,i){super(e,i)}}return n.\u0275fac=function(e){return new(e||n)(F(cr),F(Qi))},n.\u0275dir=Ke({type:n,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[dt]}),n})(),nl=(()=>{class n extends tg{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new ht,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");s.setAttachedHost(this),a.parentNode.insertBefore(l,a),this._getRootNode().appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,s=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),a=i.createComponent(s,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=e,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}}return n.\u0275fac=function(e){return new(e||n)(F(Ya),F(Qi),F(Dt))},n.\u0275dir=Ke({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[dt]}),n})(),Jd=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();function Ts(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}const z2=Y2();class S7{constructor(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=Gi(-this._previousScrollPosition.left),t.style.top=Gi(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const t=this._document.documentElement,i=t.style,o=this._document.body.style,s=i.scrollBehavior||"",a=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),z2&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),z2&&(i.scrollBehavior=s,o.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class D7{constructor(t,e,i,o){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(t){this._overlayRef=t}enable(){if(this._scrollSubscription)return;const t=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class U2{enable(){}disable(){}attach(){}}function s1(n,t){return t.some(e=>n.bottome.bottom||n.righte.right)}function W2(n,t){return t.some(e=>n.tope.bottom||n.lefte.right)}class T7{constructor(t,e,i,o){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(t){this._overlayRef=t}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();s1(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let L7=(()=>{class n{constructor(e,i,o,s){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new U2,this.close=a=>new D7(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new S7(this._viewportRuler,this._document),this.reposition=a=>new T7(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=s}}return n.\u0275fac=function(e){return new(e||n)(we(Df),we(Jl),we(pt),we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class Pf{constructor(t){if(this.scrollStrategy=new U2,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t){const e=Object.keys(t);for(const i of e)void 0!==t[i]&&(this[i]=t[i])}}}class E7{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let $2=(()=>{class n{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),I7=(()=>{class n extends $2{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const s=this._attachedOverlays;for(let a=s.length-1;a>-1;a--)if(s[a]._keydownEvents.observers.length>0){const l=s[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>l.next(o)):l.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return n.\u0275fac=function(e){return new(e||n)(we(Dt),we(pt,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),P7=(()=>{class n extends $2{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=tl(s)},this._clickListener=s=>{const a=tl(s),l="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const d=this._attachedOverlays.slice();for(let w=d.length-1;w>-1;w--){const P=d[w];if(P._outsidePointerEvents.observers.length<1||!P.hasAttached())continue;if(P.overlayElement.contains(a)||P.overlayElement.contains(l))break;const Y=P._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>Y.next(s)):Y.next(s)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}}return n.\u0275fac=function(e){return new(e||n)(we(Dt),we(fi),we(pt,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),sg=(()=>{class n{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||r1()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(Y),this._backdropTransitionendHandler=Y=>{this._disposeBackdrop(Y.target)},this._keydownEvents=new X,this._outsidePointerEvents=new X,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(ti(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){const t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config={...this._config,...t},this._updateElementSize()}setDirection(t){this._config={...this._config,direction:t},this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){const t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const t=this._pane.style;t.width=Gi(this._config.width),t.height=Gi(this._config.height),t.minWidth=Gi(this._config.minWidth),t.minHeight=Gi(this._config.minHeight),t.maxWidth=Gi(this._config.maxWidth),t.maxHeight=Gi(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){const t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const t=this._backdropElement;if(t){if(this._animationsDisabled)return void this._disposeBackdrop(t);t.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{t.addEventListener("transitionend",this._backdropTransitionendHandler)}),t.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(t)},500))}}_toggleClasses(t,e,i){const o=Q_(e||[]).filter(s=>!!s);o.length&&(i?t.classList.add(...o):t.classList.remove(...o))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const t=this._ngZone.onStable.pipe(Cn(vt(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){const t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}_disposeBackdrop(t){t&&(t.removeEventListener("click",this._backdropClickHandler),t.removeEventListener("transitionend",this._backdropTransitionendHandler),t.remove(),this._backdropElement===t&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const G2="cdk-overlay-connected-position-bounding-box",O7=/([A-Za-z%]+)$/;class A7{constructor(t,e,i,o,s){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=s,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new X,this._resizeSubscription=T.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}get positions(){return this._preferredPositions}attach(t){this._validatePositions(),t.hostElement.classList.add(G2),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,s=[];let a;for(let l of this._preferredPositions){let d=this._getOriginPoint(t,o,l),w=this._getOverlayPoint(d,e,l),P=this._getOverlayFit(w,e,i,l);if(P.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(l,d);this._canFitWithFlexibleDimensions(P,w,i)?s.push({position:l,origin:d,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(d,l)}):(!a||a.overlayFit.visibleAread&&(d=P,l=w)}return this._isPushed=!1,void this._applyPosition(l.position,l.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&tc(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(G2),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let o,s;if("center"==i.originX)o=t.left+t.width/2;else{const a=this._isRtl()?t.right:t.left,l=this._isRtl()?t.left:t.right;o="start"==i.originX?a:l}return e.left<0&&(o-=e.left),s="center"==i.originY?t.top+t.height/2:"top"==i.originY?t.top:t.bottom,e.top<0&&(s-=e.top),{x:o,y:s}}_getOverlayPoint(t,e,i){let o,s;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,s="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+o,y:t.y+s}}_getOverlayFit(t,e,i,o){const s=K2(e);let{x:a,y:l}=t,d=this._getOffset(o,"x"),w=this._getOffset(o,"y");d&&(a+=d),w&&(l+=w);let q=0-l,te=l+s.height-i.height,pe=this._subtractOverflows(s.width,0-a,a+s.width-i.width),ke=this._subtractOverflows(s.height,q,te),Ie=pe*ke;return{visibleArea:Ie,isCompletelyWithinViewport:s.width*s.height===Ie,fitsInViewportVertically:ke===s.height,fitsInViewportHorizontally:pe==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,s=i.right-e.x,a=q2(this._overlayRef.getConfig().minHeight),l=q2(this._overlayRef.getConfig().minWidth),w=t.fitsInViewportHorizontally||null!=l&&l<=s;return(t.fitsInViewportVertically||null!=a&&a<=o)&&w}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};const o=K2(e),s=this._viewportRect,a=Math.max(t.x+o.width-s.width,0),l=Math.max(t.y+o.height-s.height,0),d=Math.max(s.top-i.top-t.y,0),w=Math.max(s.left-i.left-t.x,0);let P=0,Y=0;return P=o.width<=s.width?w||-a:t.xpe&&!this._isInitialRender&&!this._growAfterOpen&&(a=t.y-pe/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)q=i.width-t.x+this._viewportMargin,P=t.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)Y=t.x,P=i.right-t.x;else{const te=Math.min(i.right-t.x+i.left,t.x),pe=this._lastBoundingBoxSize.width;P=2*te,Y=t.x-te,P>pe&&!this._isInitialRender&&!this._growAfterOpen&&(Y=t.x-pe/2)}return{top:a,left:Y,bottom:l,right:q,width:P,height:s}}_setBoundingBoxStyles(t,e){const i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;o.height=Gi(i.height),o.top=Gi(i.top),o.bottom=Gi(i.bottom),o.width=Gi(i.width),o.left=Gi(i.left),o.right=Gi(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",s&&(o.maxHeight=Gi(s)),a&&(o.maxWidth=Gi(a))}this._lastBoundingBoxSize=i,tc(this._boundingBox.style,o)}_resetBoundingBoxStyles(){tc(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){tc(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},o=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(o){const P=this._viewportRuler.getViewportScrollPosition();tc(i,this._getExactOverlayY(e,t,P)),tc(i,this._getExactOverlayX(e,t,P))}else i.position="static";let l="",d=this._getOffset(e,"x"),w=this._getOffset(e,"y");d&&(l+=`translateX(${d}px) `),w&&(l+=`translateY(${w}px)`),i.transform=l.trim(),a.maxHeight&&(o?i.maxHeight=Gi(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(o?i.maxWidth=Gi(a.maxWidth):s&&(i.maxWidth="")),tc(this._pane.style,i)}_getExactOverlayY(t,e,i){let o={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===t.overlayY?o.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":o.top=Gi(s.y),o}_getExactOverlayX(t,e,i){let a,o={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),a=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===a?o.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":o.left=Gi(s.x),o}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:W2(t,i),isOriginOutsideView:s1(t,i),isOverlayClipped:W2(e,i),isOverlayOutsideView:s1(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,o)=>i-Math.max(o,0),t)}_getNarrowedViewportRect(){const t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return"x"===e?null==t.offsetX?this._offsetX:t.offsetX:null==t.offsetY?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&Q_(t).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){const t=this._origin;if(t instanceof bt)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();const e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}}function tc(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function q2(n){if("number"!=typeof n&&null!=n){const[t,e]=n.split(O7);return e&&"px"!==e?null:parseFloat(t)}return n||null}function K2(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const Z2="cdk-global-overlay-wrapper";class F7{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(t){const e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(Z2),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:s,maxWidth:a,maxHeight:l}=i,d=!("100%"!==o&&"100vw"!==o||a&&"100%"!==a&&"100vw"!==a),w=!("100%"!==s&&"100vh"!==s||l&&"100%"!==l&&"100vh"!==l),P=this._xPosition,Y=this._xOffset,q="rtl"===this._overlayRef.getConfig().direction;let te="",pe="",ke="";d?ke="flex-start":"center"===P?(ke="center",q?pe=Y:te=Y):q?"left"===P||"end"===P?(ke="flex-end",te=Y):("right"===P||"start"===P)&&(ke="flex-start",pe=Y):"left"===P||"start"===P?(ke="flex-start",te=Y):("right"===P||"end"===P)&&(ke="flex-end",pe=Y),t.position=this._cssPosition,t.marginLeft=d?"0":te,t.marginTop=w?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=d?"0":pe,e.justifyContent=ke,e.alignItems=w?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(Z2),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let R7=(()=>{class n{constructor(e,i,o,s){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=s}global(){return new F7}flexibleConnectedTo(e){return new A7(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return n.\u0275fac=function(e){return new(e||n)(we(Jl),we(Dt),we(fi),we(sg))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),N7=0,ro=(()=>{class n{constructor(e,i,o,s,a,l,d,w,P,Y,q,te){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=s,this._keyboardDispatcher=a,this._injector=l,this._ngZone=d,this._document=w,this._directionality=P,this._location=Y,this._outsideClickDispatcher=q,this._animationsModuleType=te}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),s=this._createPortalOutlet(o),a=new Pf(e);return a.direction=a.direction||this._directionality.value,new Of(s,i,o,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+N7++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Ad)),new u7(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return n.\u0275fac=function(e){return new(e||n)(we(L7),we(sg),we(Ya),we(R7),we(I7),we(_i),we(pt),we(Dt),we(Or),we(zh),we(P7),we(zi,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Y7=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],X2=new He("cdk-connected-overlay-scroll-strategy");let a1=(()=>{class n{constructor(e){this.elementRef=e}}return n.\u0275fac=function(e){return new(e||n)(F(bt))},n.\u0275dir=Ke({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),n})(),Q2=(()=>{class n{constructor(e,i,o,s,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=T.EMPTY,this._attachSubscription=T.EMPTY,this._detachSubscription=T.EMPTY,this._positionSubscription=T.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new ht,this.positionChange=new ht,this.attach=new ht,this.detach=new ht,this.overlayKeydown=new ht,this.overlayOutsideClick=new ht,this._templatePortal=new ec(i,o),this._scrollStrategyFactory=s,this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=hn(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=hn(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=hn(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=hn(e)}get push(){return this._push}set push(e){this._push=hn(e)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=Y7);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!Ts(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Pf({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof a1?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(MT(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(ro),F(cr),F(Qi),F(X2),F(Or,8))},n.\u0275dir=Ke({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:["cdkConnectedOverlayOrigin","origin"],positions:["cdkConnectedOverlayPositions","positions"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[qi]}),n})();const H7={provide:X2,deps:[ro],useFactory:function B7(n){return()=>n.scrollStrategies.reposition()}};let eu=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[ro,H7],imports:[Sf,Jd,V2,V2]}),n})();function l1(n,t=qd){return e=>e.lift(new V7(n,t))}class V7{constructor(t,e){this.dueTime=t,this.scheduler=e}call(t,e){return e.subscribe(new j7(t,this.dueTime,this.scheduler))}}class j7 extends A{constructor(t,e,i){super(t),this.dueTime=e,this.scheduler=i,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}_next(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(z7,this.dueTime,this))}_complete(){this.debouncedNext(),this.destination.complete()}debouncedNext(){if(this.clearDebounce(),this.hasValue){const{lastValue:t}=this;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}}clearDebounce(){const t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)}}function z7(n){n.debouncedNext()}function c1(n){return t=>t.lift(new U7(n))}class U7{constructor(t){this.total=t}call(t,e){return e.subscribe(new W7(t,this.total))}}class W7 extends A{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){++this.count>this.total&&this.destination.next(t)}}function d1(n,t){return e=>e.lift(new $7(n,t))}class $7{constructor(t,e){this.compare=t,this.keySelector=e}call(t,e){return e.subscribe(new G7(t,this.compare,this.keySelector))}}class G7 extends A{constructor(t,e,i){super(t),this.keySelector=i,this.hasKey=!1,"function"==typeof e&&(this.compare=e)}compare(t,e){return t===e}_next(t){let e;try{const{keySelector:o}=this;e=o?o(t):t}catch(o){return this.destination.error(o)}let i=!1;if(this.hasKey)try{const{compare:o}=this;i=o(this.key,e)}catch(o){return this.destination.error(o)}else this.hasKey=!0;i||(this.key=e,this.destination.next(t))}}let J2=(()=>{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),q7=(()=>{class n{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=ca(e);return new de(o=>{const a=this._observeElement(i).subscribe(o);return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new X,o=this._mutationObserverFactory.create(s=>i.next(s));o&&o.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:o,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:o}=this._observedElements.get(e);i&&i.disconnect(),o.complete(),this._observedElements.delete(e)}}}return n.\u0275fac=function(e){return new(e||n)(we(J2))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),eL=(()=>{class n{constructor(e,i,o){this._contentObserver=e,this._elementRef=i,this._ngZone=o,this.event=new ht,this._disabled=!1,this._currentSubscription=null}get disabled(){return this._disabled}set disabled(e){this._disabled=hn(e),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=Mo(e),this._subscribe()}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(l1(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(q7),F(bt),F(pt))},n.\u0275dir=Ke({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]}),n})(),u1=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[J2]}),n})();const tL=new Set;let tu,K7=(()=>{class n{constructor(e){this._platform=e,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):X7}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function Z7(n){if(!tL.has(n))try{tu||(tu=document.createElement("style"),tu.setAttribute("type","text/css"),document.head.appendChild(tu)),tu.sheet&&(tu.sheet.insertRule(`@media ${n} {body{ }}`,0),tL.add(n))}catch(t){console.error(t)}}(e),this._matchMedia(e)}}return n.\u0275fac=function(e){return new(e||n)(we(fi))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function X7(n){return{matches:"all"===n||""===n,media:n,addListener:()=>{},removeListener:()=>{}}}let h1=(()=>{class n{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new X}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return nL(Q_(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let s=C0(nL(Q_(e)).map(a=>this._registerQuery(a).observable));return s=ql(s.pipe(ti(1)),s.pipe(c1(1),l1(0))),s.pipe(Ce(a=>{const l={matches:!1,breakpoints:{}};return a.forEach(({matches:d,query:w})=>{l.matches=l.matches||d,l.breakpoints[w]=d}),l}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),s={observable:new de(a=>{const l=d=>this._zone.run(()=>a.next(d));return i.addListener(l),()=>{i.removeListener(l)}}).pipe(yo(i),Ce(({matches:a})=>({query:e,matches:a})),Cn(this._destroySubject)),mql:i};return this._queries.set(e,s),s}}return n.\u0275fac=function(e){return new(e||n)(we(K7),we(pt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function nL(n){return n.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}function ag(n,t){return(n.getAttribute(t)||"").match(/\S+/g)||[]}const rL="cdk-describedby-message",lg="cdk-describedby-host";let f1=0,t9=(()=>{class n{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+f1++,this._document=e,this._id=Et(Od)+"-"+f1++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const s=p1(i,o);"string"!=typeof i?(oL(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,o),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,o){if(!i||!this._isElementNode(e))return;const s=p1(i,o);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),"string"==typeof i){const a=this._messageRegistry.get(s);a&&0===a.referenceCount&&this._deleteMessageElement(s)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${lg}="${this._id}"]`);for(let i=0;i0!=o.indexOf(rL));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);(function J7(n,t,e){const i=ag(n,t);i.some(o=>o.trim()==e.trim())||(i.push(e.trim()),n.setAttribute(t,i.join(" ")))})(e,"aria-describedby",o.messageElement.id),e.setAttribute(lg,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,function e9(n,t,e){const o=ag(n,t).filter(s=>s!=e.trim());o.length?n.setAttribute(t,o.join(" ")):n.removeAttribute(t)}(e,"aria-describedby",o.messageElement.id),e.removeAttribute(lg)}_isElementDescribedByMessage(e,i){const o=ag(e,"aria-describedby"),s=this._messageRegistry.get(i),a=s&&s.messageElement.id;return!!a&&-1!=o.indexOf(a)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const o=null==i?"":`${i}`.trim(),s=e.getAttribute("aria-label");return!(!o||s&&s.trim()===o)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}}return n.\u0275fac=function(e){return new(e||n)(we(Dt),we(fi))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function p1(n,t){return"string"==typeof n?`${t||""}/${n}`:n}function oL(n,t){n.id||(n.id=`${rL}-${t}-${f1++}`)}class sL{constructor(t){this._items=t,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new X,this._typeaheadSubscription=T.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=e=>e.disabled,this._pressedLetters=[],this.tabOut=new X,this.change=new X,t instanceof Vl&&(this._itemChangesSubscription=t.changes.subscribe(e=>{if(this._activeItem){const o=e.toArray().indexOf(this._activeItem);o>-1&&o!==this._activeItemIndex&&(this._activeItemIndex=o)}}))}skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(hi(e=>this._pressedLetters.push(e)),l1(t),Si(()=>this._pressedLetters.length>0),Ce(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!t[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const s=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(s=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],t.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(t){const e=this._getItemsArray(),i="number"==typeof t?t:e.indexOf(t);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(t){this._wrap?this._setActiveInWrapMode(t):this._setActiveInDefaultMode(t)}_setActiveInWrapMode(t){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+t*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(t){this._setActiveItemByIndex(this._activeItemIndex+t,t)}_setActiveItemByIndex(t,e){const i=this._getItemsArray();if(i[t]){for(;this._skipPredicateFn(i[t]);)if(!i[t+=e])return;this.setActiveItem(t)}}_getItemsArray(){return this._items instanceof Vl?this._items.toArray():this._items}}class n9 extends sL{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}}class aL extends sL{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}}let cg=(()=>{class n{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function r9(n){return!!(n.offsetWidth||n.offsetHeight||"function"==typeof n.getClientRects&&n.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function i9(n){try{return n.frameElement}catch{return null}}(function h9(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}(e));if(i&&(-1===cL(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),s=cL(e);return e.hasAttribute("contenteditable")?-1!==s:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function d9(n){let t=n.nodeName.toLowerCase(),e="input"===t&&n.type;return"text"===e||"password"===e||"select"===t||"textarea"===t}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==s:"video"===o?-1!==s&&(null!==s||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function u9(n){return!function s9(n){return function l9(n){return"input"==n.nodeName.toLowerCase()}(n)&&"hidden"==n.type}(n)&&(function o9(n){let t=n.nodeName.toLowerCase();return"input"===t||"select"===t||"button"===t||"textarea"===t}(n)||function a9(n){return function c9(n){return"a"==n.nodeName.toLowerCase()}(n)&&n.hasAttribute("href")}(n)||n.hasAttribute("contenteditable")||lL(n))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}}return n.\u0275fac=function(e){return new(e||n)(we(fi))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function lL(n){if(!n.hasAttribute("tabindex")||void 0===n.tabIndex)return!1;let t=n.getAttribute("tabindex");return!(!t||isNaN(parseInt(t,10)))}function cL(n){if(!lL(n))return null;const t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}class f9{constructor(t,e,i,o,s=!1){this._element=t,this._checker=e,this._ngZone=i,this._document=o,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,s||this.attachAnchors()}get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}destroy(){const t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){const e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return"start"==t?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(t),!!i}return e.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){const e=this._getRegionBoundary("start");return e&&e.focus(t),!!e}focusLastTabbableElement(t){const e=this._getRegionBoundary("end");return e&&e.focus(t),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;const e=t.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._ngZone.isStable?t():this._ngZone.onStable.pipe(ti(1)).subscribe(t)}}let m1=(()=>{class n{constructor(e,i,o){this._checker=e,this._ngZone=i,this._document=o}create(e,i=!1){return new f9(e,this._checker,this._ngZone,this._document,i)}}return n.\u0275fac=function(e){return new(e||n)(we(cg),we(pt),we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function _1(n){return 0===n.buttons||0===n.offsetX&&0===n.offsetY}function g1(n){const t=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!(!t||-1!==t.identifier||null!=t.radiusX&&1!==t.radiusX||null!=t.radiusY&&1!==t.radiusY)}const p9=new He("cdk-input-modality-detector-options"),m9={ignoreKeys:[18,17,224,91,16]},nu=el({passive:!0,capture:!0});let _9=(()=>{class n{constructor(e,i,o,s){this._platform=e,this._mostRecentTarget=null,this._modality=new Ir(null),this._lastTouchMs=0,this._onKeydown=a=>{this._options?.ignoreKeys?.some(l=>l===a.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=tl(a))},this._onMousedown=a=>{Date.now()-this._lastTouchMs<650||(this._modality.next(_1(a)?"keyboard":"mouse"),this._mostRecentTarget=tl(a))},this._onTouchstart=a=>{g1(a)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=tl(a))},this._options={...m9,...s},this.modalityDetected=this._modality.pipe(c1(1)),this.modalityChanged=this.modalityDetected.pipe(d1()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,nu),o.addEventListener("mousedown",this._onMousedown,nu),o.addEventListener("touchstart",this._onTouchstart,nu)})}get mostRecentModality(){return this._modality.value}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,nu),document.removeEventListener("mousedown",this._onMousedown,nu),document.removeEventListener("touchstart",this._onTouchstart,nu))}}return n.\u0275fac=function(e){return new(e||n)(we(fi),we(pt),we(Dt),we(p9,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const g9=new He("liveAnnouncerElement",{providedIn:"root",factory:function b9(){return null}}),v9=new He("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let y9=0,b1=(()=>{class n{constructor(e,i,o,s){this._ngZone=i,this._defaultOptions=s,this._document=o,this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let s,a;return 1===i.length&&"number"==typeof i[0]?a=i[0]:[s,a]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=o&&o.politeness?o.politeness:"polite"),null==a&&o&&(a=o.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(l=>this._currentResolve=l)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof a&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),o=this._document.createElement("div");for(let s=0;s .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class n{constructor(e,i,o,s,a){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new X,this._rootNodeFocusAndBlurListener=l=>{for(let w=tl(l);w;w=w.parentElement)"focus"===l.type?this._onFocus(l,w):this._onBlur(l,w)},this._document=s,this._detectionMode=a?.detectionMode||0}monitor(e,i=!1){const o=ca(e);if(!this._platform.isBrowser||1!==o.nodeType)return Ge(null);const s=function Zj(n){if(function Kj(){if(null==t1){const n=typeof document<"u"?document.head:null;t1=!(!n||!n.createShadowRoot&&!n.attachShadow)}return t1}()){const t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}(o)||this._getDocument(),a=this._elementInfo.get(o);if(a)return i&&(a.checkChildren=!0),a.subject;const l={checkChildren:i,subject:new X,rootNode:s};return this._elementInfo.set(o,l),this._registerGlobalListeners(l),l.subject}stopMonitoring(e){const i=ca(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const s=ca(e);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([l,d])=>this._originChanged(l,i,d)):(this._setOrigin(i),"function"==typeof s.focus&&s.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return 1===this._detectionMode||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),s=tl(e);!o||!o.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,dg),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,dg)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Cn(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,dg),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,dg),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,s)=>{(s===e||o.checkChildren&&s.contains(e))&&i.push([s,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const s=e.labels;if(s)for(let a=0;a{class n{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new ht}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(il))},n.\u0275dir=Ke({type:n,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]}),n})();const uL="cdk-high-contrast-black-on-white",hL="cdk-high-contrast-white-on-black",v1="cdk-high-contrast-active";let fL=(()=>{class n{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=Et(h1).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,s=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return 2;case"rgb(255,255,255)":case"rgb(255,250,239)":return 1}return 0}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(v1,uL,hL),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?e.add(v1,uL):2===i&&e.add(v1,hL)}}}return n.\u0275fac=function(e){return new(e||n)(we(fi),we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),y1=(()=>{class n{constructor(e){e._applyBodyHighContrastModeCssClasses()}}return n.\u0275fac=function(e){return new(e||n)(we(fL))},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[u1]}),n})();var nc_OPEN="mdc-dialog--open",pL_DIALOG_ANIMATION_CLOSE_TIME_MS=(["textarea",".mdc-menu .mdc-list-item",".mdc-menu .mdc-deprecated-list-item"].join(", "),75);function x9(n,t){}class ug{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0}}let mL=(()=>{class n extends tg{constructor(e,i,o,s,a,l,d,w){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=s,this._interactivityChecker=a,this._ngZone=l,this._overlayRef=d,this._focusMonitor=w,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this.attachDomPortal=P=>{this._portalOutlet.hasAttached();const Y=this._portalOutlet.attachDomPortal(P);return this._contentAttached(),Y},this._ariaLabelledBy=this._config.ariaLabelledBy||null,this._document=o}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const o=n1(),s=this._elementRef.nativeElement;(!o||o===this._document.body||o===s||s.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=n1();return e===i||e.contains(i)}_initializeFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=n1())}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(m1),F(Dt,8),F(ug),F(cg),F(pt),F(Of),F(il))},n.\u0275cmp=qe({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(e,i){if(1&e&&ft(nl,7),2&e){let o;nt(o=it())&&(i._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(e,i){2&e&&Ut("id",i._config.id||null)("role",i._config.role)("aria-modal",i._config.ariaModal)("aria-labelledby",i._config.ariaLabel?null:i._ariaLabelledBy)("aria-label",i._config.ariaLabel)("aria-describedby",i._config.ariaDescribedBy||null)},features:[dt],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(e,i){1&e&&V(0,x9,0,0,"ng-template",0)},dependencies:[nl],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2}),n})();class M1{constructor(t,e){this.overlayRef=t,this.config=e,this.closed=new X,this.disableClose=e.disableClose,this.backdropClick=t.backdropClick(),this.keydownEvents=t.keydownEvents(),this.outsidePointerEvents=t.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!Ts(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})})}close(t,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this.overlayRef.dispose(),i.next(t),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(t="",e=""){return this.overlayRef.updateSize({width:t,height:e}),this}addPanelClass(t){return this.overlayRef.addPanelClass(t),this}removePanelClass(t){return this.overlayRef.removePanelClass(t),this}}const _L=new He("DialogScrollStrategy"),C9=new He("DialogData"),k9=new He("DefaultDialogConfig"),D9={provide:_L,deps:[ro],useFactory:function S9(n){return()=>n.scrollStrategies.block()}};let T9=0,gL=(()=>{class n{constructor(e,i,o,s,a,l){this._overlay=e,this._injector=i,this._defaultOptions=o,this._parentDialog=s,this._overlayContainer=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new X,this._afterOpenedAtThisLevel=new X,this._ariaHiddenElements=new Map,this.afterAllClosed=rf(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(yo(void 0))),this._scrollStrategy=l}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}open(e,i){(i={...this._defaultOptions||new ug,...i}).id=i.id||"cdk-dialog-"+T9++,i.id&&this.getDialogById(i.id);const s=this._getOverlayConfig(i),a=this._overlay.create(s),l=new M1(a,i),d=this._attachContainer(a,l,i);return l.containerInstance=d,this._attachDialogContent(e,l,d,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(l),l.closed.subscribe(()=>this._removeOpenDialog(l,!0)),this.afterOpened.next(l),l}closeAll(){w1(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){w1(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),w1(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Pf({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const s=o.injector||o.viewContainerRef?.injector,a=[{provide:ug,useValue:o},{provide:M1,useValue:i},{provide:Of,useValue:e}];let l;o.container?"function"==typeof o.container?l=o.container:(l=o.container.type,a.push(...o.container.providers(o))):l=mL;const d=new Qd(l,o.viewContainerRef,_i.create({parent:s||this._injector,providers:a}),o.componentFactoryResolver);return e.attach(d).instance}_attachDialogContent(e,i,o,s){if(e instanceof cr){const a=this._createInjector(s,i,o,void 0);let l={$implicit:s.data,dialogRef:i};s.templateContext&&(l={...l,..."function"==typeof s.templateContext?s.templateContext():s.templateContext}),o.attachTemplatePortal(new ec(e,null,l,a))}else{const a=this._createInjector(s,i,o,this._injector),l=o.attachComponentPortal(new Qd(e,s.viewContainerRef,a,s.componentFactoryResolver));i.componentInstance=l.instance}}_createInjector(e,i,o,s){const a=e.injector||e.viewContainerRef?.injector,l=[{provide:C9,useValue:e.data},{provide:M1,useValue:i}];return e.providers&&("function"==typeof e.providers?l.push(...e.providers(i,e,o)):l.push(...e.providers)),e.direction&&(!a||!a.get(Or,null,{optional:!0}))&&l.push({provide:Or,useValue:{value:e.direction,change:Ge()}}),_i.create({parent:a||s,providers:l})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((s,a)=>{s?a.setAttribute("aria-hidden",s):a.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let o=i.length-1;o>-1;o--){const s=i[o];s!==e&&"SCRIPT"!==s.nodeName&&"STYLE"!==s.nodeName&&!s.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(s,s.getAttribute("aria-hidden")),s.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}}return n.\u0275fac=function(e){return new(e||n)(we(ro),we(_i),we(k9,8),we(n,12),we(sg),we(_L))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function w1(n,t){let e=n.length;for(;e--;)t(n[e])}let L9=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[gL,D9],imports:[eu,Jd,y1,Jd]}),n})();const E9=["text"];function I9(n,t){if(1&n&&xe(0,"mat-pseudo-checkbox",5),2&n){const e=z();M("state",e.selected?"checked":"unchecked")("disabled",e.disabled)}}function P9(n,t){if(1&n&&(D(0,"span",6),E(1),x()),2&n){const e=z();c(1),ce("(",e.group.label,")")}}const O9=[[["mat-icon"]],"*"],A9=["mat-icon","*"],R9=new He("mat-sanity-checks",{providedIn:"root",factory:function F9(){return!0}});let Vn=(()=>{class n{constructor(e,i,o){this._sanityChecks=i,this._document=o,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!r1()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}}return n.\u0275fac=function(e){return new(e||n)(we(fL),we(R9,8),we(Dt))},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Sf,Sf]}),n})();function iu(n){return class extends n{constructor(...t){super(...t),this._disabled=!1}get disabled(){return this._disabled}set disabled(t){this._disabled=hn(t)}}}function Af(n,t){return class extends n{constructor(...e){super(...e),this.defaultColor=t,this.color=t}get color(){return this._color}set color(e){const i=e||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}}}function Ff(n){return class extends n{constructor(...t){super(...t),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=hn(t)}}}function yL(n,t=0){return class extends n{constructor(...e){super(...e),this._tabIndex=t,this.defaultTabIndex=t}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(e){this._tabIndex=null!=e?Mo(e):this.defaultTabIndex}}}function ML(n){return class extends n{constructor(...t){super(...t),this.errorState=!1}updateErrorState(){const t=this.errorState,s=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);s!==t&&(this.errorState=s,this.stateChanges.next())}}}let Y9=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.dirty||i&&i.submitted))}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),x1=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class B9{constructor(t,e,i,o=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const wL=el({passive:!0,capture:!0});class H9{constructor(){this._events=new Map,this._delegateEventHandler=t=>{const e=tl(t);e&&this._events.get(t.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(s=>s.handleEvent(t))})}}addHandler(t,e,i,o){const s=this._events.get(e);if(s){const a=s.get(i);a?a.add(o):s.set(i,new Set([o]))}else this._events.set(e,new Map([[i,new Set([o])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,wL)})}removeHandler(t,e,i){const o=this._events.get(t);if(!o)return;const s=o.get(e);!s||(s.delete(i),0===s.size&&o.delete(e),0===o.size&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,wL)))}}const xL={enterDuration:225,exitDuration:150},CL=el({passive:!0,capture:!0}),kL=["mousedown","touchstart"],SL=["mouseup","mouseleave","touchend","touchcancel"];class Nf{constructor(t,e,i,o){this._target=t,this._ngZone=e,this._platform=o,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,o.isBrowser&&(this._containerElement=ca(i))}fadeInRipple(t,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s={...xL,...i.animation};i.centered&&(t=o.left+o.width/2,e=o.top+o.height/2);const a=i.radius||function j9(n,t,e){const i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),o=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+o*o)}(t,e,o),l=t-o.left,d=e-o.top,w=s.enterDuration,P=document.createElement("div");P.classList.add("mat-ripple-element"),P.style.left=l-a+"px",P.style.top=d-a+"px",P.style.height=2*a+"px",P.style.width=2*a+"px",null!=i.color&&(P.style.backgroundColor=i.color),P.style.transitionDuration=`${w}ms`,this._containerElement.appendChild(P);const Y=window.getComputedStyle(P),te=Y.transitionDuration,pe="none"===Y.transitionProperty||"0s"===te||"0s, 0s"===te||0===o.width&&0===o.height,ke=new B9(this,P,i,pe);P.style.transform="scale3d(1, 1, 1)",ke.state=0,i.persistent||(this._mostRecentTransientRipple=ke);let Ie=null;return!pe&&(w||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const Re=()=>this._finishRippleTransition(ke),Xe=()=>this._destroyRipple(ke);P.addEventListener("transitionend",Re),P.addEventListener("transitioncancel",Xe),Ie={onTransitionEnd:Re,onTransitionCancel:Xe}}),this._activeRipples.set(ke,Ie),(pe||!w)&&this._finishRippleTransition(ke),ke}fadeOutRipple(t){if(2===t.state||3===t.state)return;const e=t.element,i={...xL,...t.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=2,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){const e=ca(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,kL.forEach(i=>{Nf._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(t){"mousedown"===t.type?this._onMousedown(t):"touchstart"===t.type?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{SL.forEach(e=>{this._triggerElement.addEventListener(e,this,CL)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){0===t.state?this._startFadeOutTransition(t):2===t.state&&this._destroyRipple(t)}_startFadeOutTransition(t){const e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=1,!i&&(!e||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){const e=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=3,null!==e&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel)),t.element.remove()}_onMousedown(t){const e=_1(t),i=this._lastTouchStartEvent&&Date.now(){!t.config.persistent&&(1===t.state||t.config.terminateOnPointerUp&&0===t.state)&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const t=this._triggerElement;t&&(kL.forEach(e=>Nf._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&SL.forEach(e=>t.removeEventListener(e,this,CL)))}}Nf._eventManager=new H9;const DL=new He("mat-ripple-global-options");let Ls=(()=>{class n{constructor(e,i,o,s,a){this._elementRef=e,this._animationMode=a,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new Nf(this,i,e,o)}get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,o){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...o}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt),F(fi),F(DL,8),F(zi,8))},n.\u0275dir=Ke({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(e,i){2&e&&Gt("mat-ripple-unbounded",i.unbounded)},inputs:{color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],radius:["matRippleRadius","radius"],animation:["matRippleAnimation","animation"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"]},exportAs:["matRipple"]}),n})(),Yf=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,Vn]}),n})(),z9=(()=>{class n{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1}}return n.\u0275fac=function(e){return new(e||n)(F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:8,hostBindings:function(e,i){2&e&&Gt("mat-pseudo-checkbox-indeterminate","indeterminate"===i.state)("mat-pseudo-checkbox-checked","checked"===i.state)("mat-pseudo-checkbox-disabled",i.disabled)("_mat-animation-noopable","NoopAnimations"===i._animationMode)},inputs:{state:"state",disabled:"disabled"},decls:0,vars:0,template:function(e,i){},styles:['.mat-pseudo-checkbox{border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}.mat-pseudo-checkbox-checked::after{top:2.7px;width:10px;height:4px}'],encapsulation:2,changeDetection:0}),n})(),U9=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn]}),n})();const TL=new He("MAT_OPTION_PARENT_COMPONENT"),LL=new He("MatOptgroup");let W9=0;class $9{constructor(t,e=!1){this.source=t,this.isUserInput=e}}let G9=(()=>{class n{constructor(e,i,o,s){this._element=e,this._changeDetectorRef=i,this._parent=o,this.group=s,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+W9++,this.onSelectionChange=new ht,this._stateChanges=new X}get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=hn(e)}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}deselect(){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}focus(e,i){const o=this._getHostElement();"function"==typeof o.focus&&o.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!Ts(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getAriaSelected(){return this.selected||!this.multiple&&null}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new $9(this,e))}}return n.\u0275fac=function(e){Ba()},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(E9,7),2&e){let o;nt(o=it())&&(i._text=o.first)}},inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}}),n})(),ru=(()=>{class n extends G9{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(TL,8),F(LL,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-mdc-option","mat-mdc-focus-indicator","mdc-list-item"],hostVars:12,hostBindings:function(e,i){1&e&&ye("click",function(){return i._selectViaInteraction()})("keydown",function(s){return i._handleKeydown(s)}),2&e&&(Js("id",i.id),Ut("tabindex",i._getTabIndex())("aria-selected",i._getAriaSelected())("aria-disabled",i.disabled.toString()),Gt("mdc-list-item--selected",i.selected)("mat-mdc-option-multiple",i.multiple)("mat-mdc-option-active",i.active)("mdc-list-item--disabled",i.disabled))},exportAs:["matOption"],features:[dt],ngContentSelectors:A9,decls:7,vars:4,consts:[["class","mat-mdc-option-pseudo-checkbox",3,"state","disabled",4,"ngIf"],[1,"mdc-list-item__primary-text"],["text",""],["class","cdk-visually-hidden",4,"ngIf"],["mat-ripple","",1,"mat-mdc-option-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-mdc-option-pseudo-checkbox",3,"state","disabled"],[1,"cdk-visually-hidden"]],template:function(e,i){1&e&&(gr(O9),V(0,I9,1,2,"mat-pseudo-checkbox",0),vn(1),D(2,"span",1,2),vn(4,1),x(),V(5,P9,2,1,"span",3),xe(6,"div",4)),2&e&&(M("ngIf",i.multiple),c(5),M("ngIf",i.group&&i.group._inert),c(1),M("matRippleTrigger",i._getHostElement())("matRippleDisabled",i.disabled||i.disableRipple))},dependencies:[Ls,It,z9],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option.mdc-list-item{align-items:center}.mat-mdc-option.mdc-list-item--disabled{opacity:.38;cursor:default}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox{margin-right:0;margin-left:16px}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-active::before{content:""}'],encapsulation:2,changeDetection:0}),n})(),EL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Yf,ia,Vn,U9]}),n})();function Z9(n,t){}class Tn{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}let X9=(()=>{class n extends mL{constructor(e,i,o,s,a,l,d,w){super(e,i,o,s,a,l,d,w),this._animationStateChanged=new ht}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(m1),F(Dt,8),F(Tn),F(cg),F(pt),F(Of),F(il))},n.\u0275cmp=qe({type:n,selectors:[["ng-component"]],features:[dt],decls:0,vars:0,template:function(e,i){},encapsulation:2}),n})();const IL="--mat-dialog-transition-duration";function PL(n){return null==n?null:"number"==typeof n?n:n.endsWith("ms")?Mo(n.substring(0,n.length-2)):n.endsWith("s")?1e3*Mo(n.substring(0,n.length-1)):"0"===n?0:null}let Q9=(()=>{class n extends X9{constructor(e,i,o,s,a,l,d,w,P){super(e,i,o,s,a,l,d,P),this._animationMode=w,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._hostElement=this._elementRef.nativeElement,this._openAnimationDuration=this._animationsEnabled?PL(this._config.enterAnimationDuration)??150:0,this._closeAnimationDuration=this._animationsEnabled?PL(this._config.exitAnimationDuration)??pL_DIALOG_ANIMATION_CLOSE_TIME_MS:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._openAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._closeAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._openAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(IL,`${this._openAnimationDuration}ms`),this._hostElement.classList.add("mdc-dialog--opening"),this._hostElement.classList.add(nc_OPEN),this._waitForAnimationToComplete(this._openAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(nc_OPEN),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._closeAnimationDuration}),this._hostElement.classList.remove(nc_OPEN),this._animationsEnabled?(this._hostElement.style.setProperty(IL,`${this._openAnimationDuration}ms`),this._hostElement.classList.add("mdc-dialog--closing"),this._waitForAnimationToComplete(this._closeAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_clearAnimationClasses(){this._hostElement.classList.remove("mdc-dialog--opening"),this._hostElement.classList.remove("mdc-dialog--closing")}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(m1),F(Dt,8),F(Tn),F(cg),F(pt),F(Of),F(zi,8),F(il))},n.\u0275cmp=qe({type:n,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:8,hostBindings:function(e,i){2&e&&(Js("id",i._config.id),Ut("aria-modal",i._config.ariaModal)("role",i._config.role)("aria-labelledby",i._config.ariaLabel?null:i._ariaLabelledBy)("aria-label",i._config.ariaLabel)("aria-describedby",i._config.ariaDescribedBy||null),Gt("_mat-animation-noopable",!i._animationsEnabled))},features:[dt],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,Z9,0,0,"ng-template",2),x()())},dependencies:[nl],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;transform:scale(0.8);opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{transform:none;opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{display:block;width:100%;height:100%}.mat-mdc-dialog-container{outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, var(--mdc-shape-medium, 4px))}.mat-mdc-dialog-container.mdc-dialog--scrollable .mdc-dialog__title,.mat-mdc-dialog-container.mdc-dialog--scrollable .mdc-dialog__actions,.mat-mdc-dialog-container.mdc-dialog--scrollable.mdc-dialog-scroll-divider-footer .mdc-dialog__actions{border-color:var(--mdc-dialog-with-divider-divider-color, black)}.mat-mdc-dialog-container.mdc-dialog--scrollable .mdc-dialog__title{border-bottom-color:var(--mdc-dialog-with-divider-divider-color, black)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, "Arial");line-height:var(--mdc-dialog-subhead-line-height, 14px);font-size:var(--mdc-dialog-subhead-size, 14px);font-weight:var(--mdc-dialog-subhead-weight, 500);letter-spacing:var(--mdc-dialog-subhead-tracking, 1px)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, black)}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, "Arial");line-height:var(--mdc-dialog-supporting-text-line-height, 14px);font-size:var(--mdc-dialog-supporting-text-size, 14px);font-weight:var(--mdc-dialog-supporting-text-weight, 500);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 1px)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, black)}.mat-mdc-dialog-container .mdc-dialog__container{transition-duration:var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container{transition:none}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-actions{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2}),n})();class Nn{constructor(t,e,i){this._ref=t,this._containerInstance=i,this._afterOpened=new X,this._beforeClosed=new X,this._state=0,this.disableClose=e.disableClose,this.id=t.id,i._animationStateChanged.pipe(Si(o=>"opened"===o.state),ti(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(Si(o=>"closed"===o.state),ti(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),vt(this.backdropClick(),this.keydownEvents().pipe(Si(o=>27===o.keyCode&&!this.disableClose&&!Ts(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),OL(this,"keydown"===o.type?"keyboard":"mouse"))})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(Si(e=>"closing"===e.state),ti(1)).subscribe(e=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(t){let e=this._ref.config.positionStrategy;return t&&(t.left||t.right)?t.left?e.left(t.left):e.right(t.right):e.centerHorizontally(),t&&(t.top||t.bottom)?t.top?e.top(t.top):e.bottom(t.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(t="",e=""){return this._ref.updateSize(t,e),this}addPanelClass(t){return this._ref.addPanelClass(t),this}removePanelClass(t){return this._ref.removePanelClass(t),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function OL(n,t,e){return n._closeInteractionType=t,n.close(e)}const Ti=new He("MatMdcDialogData"),AL=new He("mat-mdc-dialog-default-options"),FL=new He("mat-mdc-dialog-scroll-strategy"),ez={provide:FL,deps:[ro],useFactory:function J9(n){return()=>n.scrollStrategies.block()}};let tz=0,nz=(()=>{class n{constructor(e,i,o,s,a,l,d,w,P,Y){this._overlay=e,this._defaultOptions=o,this._parentDialog=s,this._dialogRefConstructor=d,this._dialogContainerType=w,this._dialogDataToken=P,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new X,this._afterOpenedAtThisLevel=new X,this._idPrefix="mat-dialog-",this.dialogConfigClass=Tn,this.afterAllClosed=rf(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(yo(void 0))),this._scrollStrategy=l,this._dialog=i.get(gL)}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}open(e,i){let o;(i={...this._defaultOptions||new Tn,...i}).id=i.id||`${this._idPrefix}${tz++}`,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const s=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:ug,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(a,l,d)=>(o=new this._dialogRefConstructor(a,i,d),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:d},{provide:this._dialogDataToken,useValue:l.data},{provide:this._dialogRefConstructor,useValue:o}])});return o.componentInstance=s.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{const a=this.openDialogs.indexOf(o);a>-1&&(this.openDialogs.splice(a,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}}return n.\u0275fac=function(e){Ba()},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Ln=(()=>{class n extends nz{constructor(e,i,o,s,a,l,d,w){super(e,i,s,l,d,a,Nn,Q9,Ti,w),this._idPrefix="mat-mdc-dialog-"}}return n.\u0275fac=function(e){return new(e||n)(we(ro),we(_i),we(zh,8),we(AL,8),we(FL),we(n,12),we(sg),we(zi,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),iz=0,rz=(()=>{class n{constructor(e,i,o){this.dialogRef=e,this._elementRef=i,this._dialog=o,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=RL(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){OL(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}}return n.\u0275fac=function(e){return new(e||n)(F(Nn,8),F(bt),F(Ln))},n.\u0275dir=Ke({type:n,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(e,i){1&e&&ye("click",function(s){return i._onButtonClick(s)}),2&e&&Ut("aria-label",i.ariaLabel||null)("type",i.type)},inputs:{ariaLabel:["aria-label","ariaLabel"],type:"type",dialogResult:["mat-dialog-close","dialogResult"],_matDialogClose:["matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[qi]}),n})(),oz=(()=>{class n{constructor(e,i,o){this._dialogRef=e,this._elementRef=i,this._dialog=o,this.id="mat-mdc-dialog-title-"+iz++}ngOnInit(){this._dialogRef||(this._dialogRef=RL(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{const e=this._dialogRef._containerInstance;e&&!e._ariaLabelledBy&&(e._ariaLabelledBy=this.id)})}}return n.\u0275fac=function(e){return new(e||n)(F(Nn,8),F(bt),F(Ln))},n.\u0275dir=Ke({type:n,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(e,i){2&e&&Js("id",i.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]}),n})(),C1=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"]}),n})();function RL(n,t){let e=n.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?t.find(i=>i.id===e.id):null}let sz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[Ln,ez],imports:[L9,eu,Jd,Vn,Vn]}),n})();const YL=["mat-button",""],BL=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],HL=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],VL=".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}",lz=["mat-icon-button",""],cz=["*"],dz=[{selector:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{selector:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{selector:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{selector:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{selector:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{selector:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{selector:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],uz=Af(iu(Ff(class{constructor(n){this._elementRef=n}})));let k1=(()=>{class n extends uz{constructor(e,i,o,s){super(e),this._platform=i,this._ngZone=o,this._animationMode=s,this._focusMonitor=Et(il),this._isFab=!1;const a=e.nativeElement.classList;for(const l of dz)this._hasHostAttributes(l.selector)&&l.mdcClasses.forEach(d=>{a.add(d)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_hasHostAttributes(...e){return e.some(i=>this._elementRef.nativeElement.hasAttribute(i))}_isRippleDisabled(){return this.disableRipple||this.disabled}}return n.\u0275fac=function(e){Ba()},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(Ls,5),2&e){let o;nt(o=it())&&(i.ripple=o.first)}},features:[dt]}),n})(),fz=(()=>{class n extends k1{constructor(e,i,o,s){super(e,i,o,s),this._haltDisabledEvents=a=>{this.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}}ngOnInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("click",this._haltDisabledEvents)})}ngOnDestroy(){super.ngOnDestroy(),this._elementRef.nativeElement.removeEventListener("click",this._haltDisabledEvents)}}return n.\u0275fac=function(e){Ba()},n.\u0275dir=Ke({type:n,features:[dt]}),n})(),$r=(()=>{class n extends k1{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(fi),F(pt),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:7,hostBindings:function(e,i){2&e&&(Ut("disabled",i.disabled||null),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[dt],attrs:YL,ngContentSelectors:HL,decls:8,vars:6,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],["matRipple","",1,"mat-mdc-button-ripple",3,"matRippleDisabled","matRippleTrigger"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(gr(BL),xe(0,"span",0),vn(1),D(2,"span",1),vn(3,1),x(),vn(4,2),xe(5,"span",2)(6,"span",3)(7,"span",4)),2&e&&(Gt("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab),c(6),M("matRippleDisabled",i._isRippleDisabled())("matRippleTrigger",i._elementRef.nativeElement))},dependencies:[Ls],styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0}),n})(),pz=(()=>{class n extends fz{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(fi),F(pt),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostVars:9,hostBindings:function(e,i){2&e&&(Ut("disabled",i.disabled||null)("tabindex",i.disabled?-1:i.tabIndex)("aria-disabled",i.disabled.toString()),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[dt],attrs:YL,ngContentSelectors:HL,decls:8,vars:6,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],["matRipple","",1,"mat-mdc-button-ripple",3,"matRippleDisabled","matRippleTrigger"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(gr(BL),xe(0,"span",0),vn(1),D(2,"span",1),vn(3,1),x(),vn(4,2),xe(5,"span",2)(6,"span",3)(7,"span",4)),2&e&&(Gt("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab),c(6),M("matRippleDisabled",i._isRippleDisabled())("matRippleTrigger",i._elementRef.nativeElement))},dependencies:[Ls],styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',VL],encapsulation:2,changeDetection:0}),n})(),rl=(()=>{class n extends k1{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(fi),F(pt),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["button","mat-icon-button",""]],hostVars:7,hostBindings:function(e,i){2&e&&(Ut("disabled",i.disabled||null),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[dt],attrs:lz,ngContentSelectors:cz,decls:5,vars:3,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-mdc-focus-indicator"],["matRipple","",1,"mat-mdc-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(gr(),xe(0,"span",0),vn(1),xe(2,"span",1)(3,"span",2)(4,"span",3)),2&e&&(c(3),M("matRippleDisabled",i._isRippleDisabled())("matRippleCentered",!0)("matRippleTrigger",i._elementRef.nativeElement))},dependencies:[Ls],styles:['.mdc-icon-button{font-size:24px;width:48px;height:48px;padding:12px}.mdc-icon-button .mdc-icon-button__focus-ring{max-height:48px;max-width:48px}.mdc-icon-button.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-icon-button.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mdc-icon-button svg,.mdc-icon-button img{width:24px;height:24px}.mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size, 48px);width:var(--mdc-icon-button-state-layer-size, 48px);color:var(--mdc-icon-button-icon-color, inherit);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity, 0.38)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color, #000)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',VL],encapsulation:2,changeDetection:0}),n})(),jL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,Yf,Vn]}),n})();function _z(n,t){if(1&n){const e=et();D(0,"div",2)(1,"button",3),ye("click",function(){return Pe(e),Oe(z().action())}),E(2),x()()}if(2&n){const e=z();c(2),ce(" ",e.data.action," ")}}const gz=["label"];function bz(n,t){}const vz=Math.pow(2,31)-1;class hg{constructor(t,e){this._overlayRef=e,this._afterDismissed=new X,this._afterOpened=new X,this._onAction=new X,this._dismissedByAction=!1,this.containerInstance=t,t._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(t){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(t,vz))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}const S1=new He("MatSnackBarData");class fg{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}let yz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]}),n})(),Mz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]}),n})(),wz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]}),n})(),xz=(()=>{class n{constructor(e,i){this.snackBarRef=e,this.data=i}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}}return n.\u0275fac=function(e){return new(e||n)(F(hg),F(S1))},n.\u0275cmp=qe({type:n,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions","",4,"ngIf"],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(e,i){1&e&&(D(0,"div",0),E(1),x(),V(2,_z,3,1,"div",1)),2&e&&(c(1),ce(" ",i.data.message,"\n"),c(1),M("ngIf",i.hasAction))},dependencies:[It,$r,yz,Mz,wz],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0}),n})();const Cz={snackBarState:oa("state",[go("void, hidden",Zn({transform:"scale(0.8)",opacity:0})),go("visible",Zn({transform:"scale(1)",opacity:1})),Er("* => visible",Wr("150ms cubic-bezier(0, 0, 0.2, 1)")),Er("* => void, * => hidden",Wr("75ms cubic-bezier(0.4, 0.0, 1, 1)",Zn({opacity:0})))])};let kz=(()=>{class n extends tg{constructor(e,i,o,s,a){super(),this._ngZone=e,this._elementRef=i,this._changeDetectorRef=o,this._platform=s,this.snackBarConfig=a,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new X,this._onExit=new X,this._onEnter=new X,this._animationState="void",this.attachDomPortal=l=>{this._assertNotAttached();const d=this._portalOutlet.attachDomPortal(l);return this._afterPortalAttached(),d},this._live="assertive"!==a.politeness||a.announcementMessage?"off"===a.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),i}attachTemplatePortal(e){this._assertNotAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),i}onAnimationEnd(e){const{fromState:i,toState:o}=e;if(("void"===o&&"void"!==i||"hidden"===o)&&this._completeExit(),"visible"===o){const s=this._onEnter;this._ngZone.run(()=>{s.next(),s.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe(ti(1)).subscribe(()=>{this._ngZone.run(()=>{this._onExit.next(),this._onExit.complete()})})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(o=>e.classList.add(o)):e.classList.add(i))}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const e=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(e&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&e.contains(document.activeElement)&&(o=document.activeElement),e.removeAttribute("aria-hidden"),i.appendChild(e),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}}return n.\u0275fac=function(e){return new(e||n)(F(pt),F(bt),F(ui),F(fi),F(fg))},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(nl,7),2&e){let o;nt(o=it())&&(i._portalOutlet=o.first)}},features:[dt]}),n})(),Sz=(()=>{class n extends kz{_afterPortalAttached(){super._afterPortalAttached();const e=this._label.nativeElement,i="mdc-snackbar__label";e.classList.toggle(i,!e.querySelector(`.${i}`))}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275cmp=qe({type:n,selectors:[["mat-snack-bar-container"]],viewQuery:function(e,i){if(1&e&&ft(gz,7),2&e){let o;nt(o=it())&&(i._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container","mdc-snackbar--open"],hostVars:1,hostBindings:function(e,i){1&e&&Pv("@state.done",function(s){return i.onAnimationEnd(s)}),2&e&&Yv("@state",i._animationState)},features:[dt],decls:6,vars:2,consts:[[1,"mdc-snackbar__surface"],[1,"mat-mdc-snack-bar-label"],["label",""],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1,2)(3,"div",3),V(4,bz,0,0,"ng-template",4),x(),xe(5,"div"),x()()),2&e&&(c(5),Ut("aria-live",i._live)("role",i._role))},dependencies:[nl],styles:['.mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__dismiss .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-snack-bar-container .mdc-snackbar__dismiss svg,.mat-mdc-snack-bar-container .mdc-snackbar__dismiss img{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color, inherit)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color, inherit)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size, inherit);font-family:var(--mdc-snackbar-supporting-text-font, inherit);font-weight:var(--mdc-snackbar-supporting-text-weight, inherit);line-height:var(--mdc-snackbar-supporting-text-line-height, inherit)}.cdk-high-contrast-active .mat-mdc-snack-bar-container{border:solid 1px}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-mdc-snack-bar-button-color, transparent);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}'],encapsulation:2,data:{animation:[Cz.snackBarState]}}),n})(),zL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[eu,Jd,ia,jL,Vn,Vn]}),n})();const D1=new He("mat-snack-bar-default-options",{providedIn:"root",factory:function Dz(){return new fg}});let Tz=(()=>{class n{constructor(e,i,o,s,a,l){this._overlay=e,this._live=i,this._injector=o,this._breakpointObserver=s,this._parentSnackBar=a,this._defaultConfig=l,this._snackBarRefAtThisLevel=null}get _openedSnackBarRef(){const e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}openFromComponent(e,i){return this._attach(e,i)}openFromTemplate(e,i){return this._attach(e,i)}open(e,i="",o){const s={...this._defaultConfig,...o};return s.data={message:e,action:i},s.announcementMessage===e&&(s.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,s)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,i){const s=_i.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:fg,useValue:i}]}),a=new Qd(this.snackBarContainerComponent,i.viewContainerRef,s),l=e.attach(a);return l.instance.snackBarConfig=i,l.instance}_attach(e,i){const o={...new fg,...this._defaultConfig,...i},s=this._createOverlay(o),a=this._attachSnackBarContainer(s,o),l=new hg(a,s);if(e instanceof cr){const d=new ec(e,null,{$implicit:o.data,snackBarRef:l});l.instance=a.attachTemplatePortal(d)}else{const d=this._createInjector(o,l),w=new Qd(e,void 0,d),P=a.attachComponentPortal(w);l.instance=P.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(Cn(s.detachments())).subscribe(d=>{s.overlayElement.classList.toggle(this.handsetCssClass,d.matches)}),o.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(l,o),this._openedSnackBarRef=l,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration))}_createOverlay(e){const i=new Pf;i.direction=e.direction;let o=this._overlay.position().global();const s="rtl"===e.direction,a="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!s||"end"===e.horizontalPosition&&s,l=!a&&"center"!==e.horizontalPosition;return a?o.left("0"):l?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}_createInjector(e,i){return _i.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:hg,useValue:i},{provide:S1,useValue:e.data}]})}}return n.\u0275fac=function(e){return new(e||n)(we(ro),we(b1),we(_i),we(h1),we(n,12),we(D1))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Lz=(()=>{class n extends Tz{constructor(e,i,o,s,a,l){super(e,i,o,s,a,l),this.simpleSnackBarComponent=xz,this.snackBarContainerComponent=Sz,this.handsetCssClass="mat-mdc-snack-bar-handset"}}return n.\u0275fac=function(e){return new(e||n)(we(ro),we(b1),we(_i),we(h1),we(n,12),we(D1))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:zL}),n})();function UL(...n){if(1===n.length){const t=n[0];if(y(t))return pg(t,null);if(p(t)&&Object.getPrototypeOf(t)===Object.prototype){const e=Object.keys(t);return pg(e.map(i=>t[i]),e)}}if("function"==typeof n[n.length-1]){const t=n.pop();return pg(n=1===n.length&&y(n[0])?n[0]:n,null).pipe(Ce(e=>t(...e)))}return pg(n,null)}function pg(n,t){return new de(e=>{const i=n.length;if(0===i)return void e.complete();const o=new Array(i);let s=0,a=0;for(let l=0;l{w||(w=!0,a++),o[l]=P},error:P=>e.error(P),complete:()=>{s++,(s===i||!w)&&(a===i&&e.next(t?t.reduce((P,Y,q)=>(P[Y]=o[q],P),{}):o),e.complete())}}))}})}const Ez=["*"];let mg;function Bf(n){return function Iz(){if(void 0===mg&&(mg=null,typeof window<"u")){const n=window;void 0!==n.trustedTypes&&(mg=n.trustedTypes.createPolicy("angular#components",{createHTML:t=>t}))}return mg}()?.createHTML(n)||n}function WL(n){return Error(`Unable to find icon with the name "${n}"`)}function $L(n){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${n}".`)}function GL(n){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${n}".`)}class ic{constructor(t,e,i){this.url=t,this.svgText=e,this.options=i}}let _g=(()=>{class n{constructor(e,i,o,s){this._httpClient=e,this._sanitizer=i,this._errorHandler=s,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=o}addSvgIcon(e,i,o){return this.addSvgIconInNamespace("",e,i,o)}addSvgIconLiteral(e,i,o){return this.addSvgIconLiteralInNamespace("",e,i,o)}addSvgIconInNamespace(e,i,o,s){return this._addSvgIconConfig(e,i,new ic(o,null,s))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,s){const a=this._sanitizer.sanitize(xn.HTML,o);if(!a)throw GL(o);const l=Bf(a);return this._addSvgIconConfig(e,i,new ic("",l,s))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,o){return this._addSvgIconSetConfig(e,new ic(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const s=this._sanitizer.sanitize(xn.HTML,i);if(!s)throw GL(i);const a=Bf(s);return this._addSvgIconSetConfig(e,new ic("",a,o))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){const i=this._sanitizer.sanitize(xn.RESOURCE_URL,e);if(!i)throw $L(e);const o=this._cachedIconsByUrl.get(i);return o?Ge(gg(o)):this._loadSvgIconFromConfig(new ic(e,null)).pipe(hi(s=>this._cachedIconsByUrl.set(i,s)),Ce(s=>gg(s)))}getNamedSvgIcon(e,i=""){const o=qL(i,e);let s=this._svgIconConfigs.get(o);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(i,e),s)return this._svgIconConfigs.set(o,s),this._getSvgFromConfig(s);const a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):Pr(WL(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?Ge(gg(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(Ce(i=>gg(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?Ge(o):UL(i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(no(l=>{const w=`Loading icon set URL: ${this._sanitizer.sanitize(xn.RESOURCE_URL,a.url)} failed: ${l.message}`;return this._errorHandler.handleError(new Error(w)),Ge(null)})))).pipe(Ce(()=>{const a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw WL(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let o=i.length-1;o>=0;o--){const s=i[o];if(s.svgText&&s.svgText.toString().indexOf(e)>-1){const a=this._svgElementFromConfig(s),l=this._extractSvgIconFromSet(a,e,s.options);if(l)return l}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(hi(i=>e.svgText=i),Ce(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?Ge(null):this._fetchIcon(e).pipe(hi(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const s=e.querySelector(`[id="${i}"]`);if(!s)return null;const a=s.cloneNode(!0);if(a.removeAttribute("id"),"svg"===a.nodeName.toLowerCase())return this._setSvgAttributes(a,o);if("symbol"===a.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(a),o);const l=this._svgElementFromString(Bf(""));return l.appendChild(a),this._setSvgAttributes(l,o)}_svgElementFromString(e){const i=this._document.createElement("DIV");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}_toSvgElement(e){const i=this._svgElementFromString(Bf("")),o=e.attributes;for(let s=0;sBf(w)),T_(()=>this._inProgressUrlFetches.delete(a)),xa());return this._inProgressUrlFetches.set(a,d),d}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(qL(e,i),o),this}_addSvgIconSetConfig(e,i){const o=this._iconSetConfigs.get(e);return o?o.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){const i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let o=0;ot?t.pathname+t.search:""}}}),KL=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],Bz=KL.map(n=>`[${n}]`).join(", "),Hz=/^url\(['"]?#(.*?)['"]?\)$/;let yn=(()=>{class n extends Fz{constructor(e,i,o,s,a,l){super(e),this._iconRegistry=i,this._location=s,this._errorHandler=a,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=T.EMPTY,l&&(l.color&&(this.color=this.defaultColor=l.color),l.fontSet&&(this.fontSet=l.fontSet)),o||e.nativeElement.setAttribute("aria-hidden","true")}get inline(){return this._inline}set inline(e){this._inline=hn(e)}get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_splitIconName(e){if(!e)return["",""];const i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const e=this._elementsWithExternalReferences;if(e&&e.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){const e=this._elementRef.nativeElement;let i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const o=e.childNodes[i];(1!==o.nodeType||"svg"===o.nodeName.toLowerCase())&&o.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(o=>o.length>0);this._previousFontSetClass.forEach(o=>e.classList.remove(o)),i.forEach(o=>e.classList.add(o)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return"string"==typeof e?e.trim().split(" ")[0]:e}_prependPathToReferences(e){const i=this._elementsWithExternalReferences;i&&i.forEach((o,s)=>{o.forEach(a=>{s.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(Bz),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s{const l=i[s],d=l.getAttribute(a),w=d?d.match(Hz):null;if(w){let P=o.get(l);P||(P=[],o.set(l,P)),P.push({name:a,value:w[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){const[i,o]=this._splitIconName(e);i&&(this._svgNamespace=i),o&&(this._svgName=o),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(o,i).pipe(ti(1)).subscribe(s=>this._setSvgElement(s),s=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${s.message}`))})}}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(_g),Na("aria-hidden"),F(Nz),F(Zs),F(Rz,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(e,i){2&e&&(Ut("data-mat-icon-type",i._usingFontIcon()?"font":"svg")("data-mat-icon-name",i._svgName||i.fontIcon)("data-mat-icon-namespace",i._svgNamespace||i.fontSet)("fontIcon",i._usingFontIcon()?i.fontIcon:null),Gt("mat-icon-inline",i.inline)("mat-icon-no-color","primary"!==i.color&&"accent"!==i.color&&"warn"!==i.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[dt],ngContentSelectors:Ez,decls:1,vars:0,template:function(e,i){1&e&&(gr(),vn(0))},styles:[".mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0}),n})(),Vz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,Vn]}),n})();function zz(n,t,e){return 0===e?[t]:(n.push(t),n)}class Hf{}let ZL=(()=>{class n extends Hf{getTranslation(e){return Ge({})}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class T1{}let XL=(()=>{class n{handle(e){return e.key}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class bg{}let QL=(()=>{class n extends bg{compile(e,i){return e}compileTranslations(e,i){return e}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function Vf(n,t){if(n===t)return!0;if(null===n||null===t)return!1;if(n!=n&&t!=t)return!0;let o,s,a,e=typeof n;if(e==typeof t&&"object"==e){if(!Array.isArray(n)){if(Array.isArray(t))return!1;for(s in a=Object.create(null),n){if(!Vf(n[s],t[s]))return!1;a[s]=!0}for(s in t)if(!(s in a)&&typeof t[s]<"u")return!1;return!0}if(!Array.isArray(t))return!1;if((o=n.length)==t.length){for(s=0;s{L1(t[i])?i in n?e[i]=JL(n[i],t[i]):Object.assign(e,{[i]:t[i]}):Object.assign(e,{[i]:t[i]})}),e}class vg{}let eE=(()=>{class n extends vg{constructor(){super(...arguments),this.templateMatcher=/{{\s?([^{}\s]*)\s?}}/g}interpolate(e,i){let o;return o="string"==typeof e?this.interpolateString(e,i):"function"==typeof e?this.interpolateFunction(e,i):e,o}getValue(e,i){let o=i.split(".");i="";do{i+=o.shift(),!ss(e)||!ss(e[i])||"object"!=typeof e[i]&&o.length?o.length?i+=".":e=void 0:(e=e[i],i="")}while(o.length);return e}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(o,s)=>{let a=this.getValue(i,s);return ss(a)?a:o}):e}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class tE{constructor(){this.currentLang=this.defaultLang,this.translations={},this.langs=[],this.onTranslationChange=new ht,this.onLangChange=new ht,this.onDefaultLangChange=new ht}}const E1=new He("USE_STORE"),I1=new He("USE_DEFAULT_LANG");let oo=(()=>{class n{constructor(e,i,o,s,a,l=!0,d=!1){this.store=e,this.currentLoader=i,this.compiler=o,this.parser=s,this.missingTranslationHandler=a,this.useDefaultLang=l,this.isolate=d,this.pending=!1,this._onTranslationChange=new ht,this._onLangChange=new ht,this._onDefaultLangChange=new ht,this._langs=[],this._translations={},this._translationRequests={}}get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(e){this.isolate?this._defaultLang=e:this.store.defaultLang=e}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(e){this.isolate?this._currentLang=e:this.store.currentLang=e}get langs(){return this.isolate?this._langs:this.store.langs}set langs(e){this.isolate?this._langs=e:this.store.langs=e}get translations(){return this.isolate?this._translations:this.store.translations}set translations(e){this.isolate?this._translations=e:this.store.translations=e}setDefaultLang(e){if(e===this.defaultLang)return;let i=this.retrieveTranslations(e);typeof i<"u"?(this.defaultLang||(this.defaultLang=e),i.pipe(ti(1)).subscribe(o=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(e===this.currentLang)return Ge(this.translations[e]);let i=this.retrieveTranslations(e);return typeof i<"u"?(this.currentLang||(this.currentLang=e),i.pipe(ti(1)).subscribe(o=>{this.changeLang(e)}),i):(this.changeLang(e),Ge(this.translations[e]))}retrieveTranslations(e){let i;return typeof this.translations[e]>"u"&&(this._translationRequests[e]=this._translationRequests[e]||this.getTranslation(e),i=this._translationRequests[e]),i}getTranslation(e){return this.pending=!0,this.loadingTranslations=this.currentLoader.getTranslation(e).pipe(xa()),this.loadingTranslations.pipe(ti(1)).subscribe(i=>{this.translations[e]=this.compiler.compileTranslations(i,e),this.updateLangs(),this.pending=!1},i=>{this.pending=!1}),this.loadingTranslations}setTranslation(e,i,o=!1){i=this.compiler.compileTranslations(i,e),this.translations[e]=o&&this.translations[e]?JL(this.translations[e],i):i,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){e.forEach(i=>{-1===this.langs.indexOf(i)&&this.langs.push(i)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(e,i,o){let s;if(i instanceof Array){let a={},l=!1;for(let d of i)a[d]=this.getParsedResult(e,d,o),"function"==typeof a[d].subscribe&&(l=!0);if(l){let d;for(let w of i){let P="function"==typeof a[w].subscribe?a[w]:Ge(a[w]);d=typeof d>"u"?P:vt(d,P)}return d.pipe(function Uz(){return function jz(n,t){return arguments.length>=2?function(i){return Z(D_(n,t),af(1),sf(t))(i)}:function(i){return Z(D_((o,s,a)=>n(o,s,a+1)),af(1))(i)}}(zz,[])}(),Ce(w=>{let P={};return w.forEach((Y,q)=>{P[i[q]]=Y}),P}))}return a}if(e&&(s=this.parser.interpolate(this.parser.getValue(e,i),o)),typeof s>"u"&&this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(s=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],i),o)),typeof s>"u"){let a={key:i,translateService:this};typeof o<"u"&&(a.interpolateParams=o),s=this.missingTranslationHandler.handle(a)}return typeof s<"u"?s:i}get(e,i){if(!ss(e)||!e.length)throw new Error('Parameter "key" required');if(this.pending)return de.create(o=>{let s=l=>{o.next(l),o.complete()},a=l=>{o.error(l)};this.loadingTranslations.subscribe(l=>{"function"==typeof(l=this.getParsedResult(this.compiler.compileTranslations(l,this.currentLang),e,i)).subscribe?l.subscribe(s,a):s(l)},a)});{let o=this.getParsedResult(this.translations[this.currentLang],e,i);return"function"==typeof o.subscribe?o:Ge(o)}}stream(e,i){if(!ss(e)||!e.length)throw new Error('Parameter "key" required');return ql(this.get(e,i),this.onLangChange.pipe(br(o=>{const s=this.getParsedResult(o.translations,e,i);return"function"==typeof s.subscribe?s:Ge(s)})))}instant(e,i){if(!ss(e)||!e.length)throw new Error('Parameter "key" required');let o=this.getParsedResult(this.translations[this.currentLang],e,i);if(typeof o.subscribe<"u"){if(e instanceof Array){let s={};return e.forEach((a,l)=>{s[e[l]]=e[l]}),s}return e}return o}set(e,i,o=this.currentLang){this.translations[o][e]=this.compiler.compile(i,o),this.updateLangs(),this.onTranslationChange.emit({lang:o,translations:this.translations[o]})}changeLang(e){this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang||this.changeDefaultLang(e)}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.getTranslation(e)}resetLang(e){this._translationRequests[e]=void 0,this.translations[e]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let e=window.navigator.languages?window.navigator.languages[0]:null;return e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,-1!==e.indexOf("-")&&(e=e.split("-")[0]),-1!==e.indexOf("_")&&(e=e.split("_")[0]),e}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let e=window.navigator.languages?window.navigator.languages[0]:null;return e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,e}}return n.\u0275fac=function(e){return new(e||n)(we(tE),we(Hf),we(bg),we(vg),we(T1),we(I1),we(E1))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),xt=(()=>{class n{constructor(e,i){this.translate=e,this._ref=i,this.value=""}updateValue(e,i,o){let s=a=>{this.value=void 0!==a?a:e,this.lastKey=e,this._ref.markForCheck()};if(o){let a=this.translate.getParsedResult(o,e,i);"function"==typeof a.subscribe?a.subscribe(s):s(a)}this.translate.get(e,i).subscribe(s)}transform(e,...i){if(!e||0===e.length)return e;if(Vf(e,this.lastKey)&&Vf(i,this.lastParams))return this.value;let o;if(ss(i[0])&&i.length)if("string"==typeof i[0]&&i[0].length){let s=i[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{o=JSON.parse(s)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${i[0]}`)}}else"object"==typeof i[0]&&!Array.isArray(i[0])&&(o=i[0]);return this.lastKey=e,this.lastParams=i,this.updateValue(e,o),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(s=>{this.lastKey&&s.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(e,o,s.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(s=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o,s.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}}return n.\u0275fac=function(e){return new(e||n)(F(oo,16),F(ui,16))},n.\u0275pipe=Jn({name:"translate",type:n,pure:!1}),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),nE=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:Hf,useClass:ZL},e.compiler||{provide:bg,useClass:QL},e.parser||{provide:vg,useClass:eE},e.missingTranslationHandler||{provide:T1,useClass:XL},tE,{provide:E1,useValue:e.isolate},{provide:I1,useValue:e.useDefaultLang},oo]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:Hf,useClass:ZL},e.compiler||{provide:bg,useClass:QL},e.parser||{provide:vg,useClass:eE},e.missingTranslationHandler||{provide:T1,useClass:XL},{provide:E1,useValue:e.isolate},{provide:I1,useValue:e.useDefaultLang},oo]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();function Wz(n,t){if(1&n&&(D(0,"div",5)(1,"mat-icon",6),E(2),x()()),2&n){const e=z();c(1),M("inline",!0),c(1),oe(e.config.icon)}}function $z(n,t){if(1&n&&(D(0,"div",7),E(1),R(2,"translate"),R(3,"translate"),x()),2&n){const e=z();c(1),_o(" ",B(2,2,"common.error")," ",Ct(3,4,e.config.smallText,e.config.smallTextTranslationParams)," ")}}var ou=(()=>(function(n){n.Error="error",n.Done="done",n.Warning="warning"}(ou||(ou={})),ou))(),su=(()=>(function(n){n.Red="red-background",n.Green="green-background",n.Yellow="yellow-background"}(su||(su={})),su))();class jf{constructor(t,e){this.snackbarRef=e,this.config=t}close(){this.snackbarRef.dismiss()}}jf.\u0275fac=function(t){return new(t||jf)(F(S1),F(hg))},jf.\u0275cmp=qe({type:jf,selectors:[["app-snack-bar"]],decls:9,vars:8,consts:[["class","icon-container",4,"ngIf"],[1,"text-container"],["class","second-line",4,"ngIf"],[1,"close-button-separator"],[1,"close-button",3,"click"],[1,"icon-container"],[3,"inline"],[1,"second-line"]],template:function(t,e){1&t&&(D(0,"div"),V(1,Wz,3,2,"div",0),D(2,"div",1),E(3),R(4,"translate"),V(5,$z,4,7,"div",2),x(),xe(6,"div",3),D(7,"mat-icon",4),ye("click",function(){return e.close()}),E(8,"close"),x()()),2&t&&(eo("main-container "+e.config.color),c(1),M("ngIf",e.config.icon),c(2),ce(" ",Ct(4,5,e.config.text,e.config.textTranslationParams)," "),c(2),M("ngIf",e.config.smallText))},dependencies:[It,yn,xt],styles:['.cursor-pointer[_ngcontent-%COMP%], .close-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.main-container[_ngcontent-%COMP%]{width:100%;display:flex;color:#fff;padding:15px;border-radius:5px}.red-background[_ngcontent-%COMP%]{background-color:#ea0606}.green-background[_ngcontent-%COMP%]{background-color:#1fb11f}.yellow-background[_ngcontent-%COMP%]{background-color:#f90}.icon-container[_ngcontent-%COMP%]{margin-right:10px;position:relative;top:1px}.text-container[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;font-size:1rem;word-break:break-word}.text-container[_ngcontent-%COMP%] .second-line[_ngcontent-%COMP%]{font-size:.8rem;opacity:.9}.close-button-separator[_ngcontent-%COMP%]{width:1px;margin-right:10px;background-color:#0000004d}.close-button[_ngcontent-%COMP%]{opacity:.7}.close-button[_ngcontent-%COMP%]:hover{opacity:1}mat-icon[_ngcontent-%COMP%]{position:relative;top:1px;-webkit-user-select:none;user-select:none}']});class on{constructor(t){this.snackBar=t,this.lastWasTemporaryError=!1}showError(t,e=null,i=!1,o=null,s=null){t=Kt(t),o=o?Kt(o):null,this.lastWasTemporaryError=i,this.show(t.translatableErrorMsg,e,o?o.translatableErrorMsg:null,s,ou.Error,su.Red,15e3)}showWarning(t,e=null){this.lastWasTemporaryError=!1,this.show(t,e,null,null,ou.Warning,su.Yellow,15e3)}showDone(t,e=null){this.lastWasTemporaryError=!1,this.show(t,e,null,null,ou.Done,su.Green,5e3)}closeCurrent(){this.snackBar.dismiss()}closeCurrentIfTemporaryError(){this.lastWasTemporaryError&&this.snackBar.dismiss()}show(t,e,i,o,s,a,l){this.snackBar.openFromComponent(jf,{duration:l,panelClass:"snackbar-container",data:{text:t,textTranslationParams:e,smallText:i,smallTextTranslationParams:o,icon:s,color:a}})}}on.\u0275fac=function(t){return new(t||on)(we(Lz))},on.\u0275prov=Ye({token:on,factory:on.\u0275fac,providedIn:"root"});const Rt={maxShortListElements:5,maxFullListElements:40,connectionRetryDelay:5e3,languages:[{code:"en",name:"English",iconName:"en.png"},{code:"es",name:"Espa\xf1ol",iconName:"es.png"},{code:"de",name:"Deutsch",iconName:"de.png"},{code:"pt",name:"Portugu\xeas (Brazil)",iconName:"pt.png"}],defaultLanguage:"en",smallModalWidth:"480px",mediumModalWidth:"640px",largeModalWidth:"900px",vpn:{hardcodedIpWhileDeveloping:!1}};class Gz{constructor(t){Object.assign(this,t)}}class da{constructor(t){this.translate=t,this.currentLanguage=new Ho(1),this.languages=new Ho(1),this.storageKey="lang",this.languagesInternal=[],this.settingsLoaded=!1}loadLanguageSettings(){if(this.settingsLoaded)return;this.settingsLoaded=!0;const t=[];Rt.languages.forEach(e=>{const i=new Gz(e);this.languagesInternal.push(i),t.push(i.code)}),this.languages.next(this.languagesInternal),this.translate.addLangs(t),this.translate.setDefaultLang(Rt.defaultLanguage),this.translate.onLangChange.subscribe(e=>this.onLanguageChanged(e)),this.loadCurrentLanguage()}changeLanguage(t){this.translate.use(t)}onLanguageChanged(t){this.currentLanguage.next(this.languagesInternal.find(e=>e.code===t.lang)),localStorage.setItem(this.storageKey,t.lang)}loadCurrentLanguage(){let t=localStorage.getItem(this.storageKey);t=t||Rt.defaultLanguage,setTimeout(()=>this.translate.use(t),16)}}da.\u0275fac=function(t){return new(t||da)(we(oo))},da.\u0275prov=Ye({token:da,factory:da.\u0275fac,providedIn:"root"});const qz={url:"",deserializer:n=>JSON.parse(n.data),serializer:n=>JSON.stringify(n)};class P1 extends Te{constructor(t,e){if(super(),t instanceof de)this.destination=e,this.source=t;else{const i=this._config=Object.assign({},qz);if(this._output=new X,"string"==typeof t)i.url=t;else for(let o in t)t.hasOwnProperty(o)&&(i[o]=t[o]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new Ho}}lift(t){const e=new P1(this._config,this.destination);return e.operator=t,e.source=this,e}_resetState(){this._socket=null,this.source||(this.destination=new Ho),this._output=new X}multiplex(t,e,i){const o=this;return new de(s=>{try{o.next(t())}catch(l){s.error(l)}const a=o.subscribe(l=>{try{i(l)&&s.next(l)}catch(d){s.error(d)}},l=>s.error(l),()=>s.complete());return()=>{try{o.next(e())}catch(l){s.error(l)}a.unsubscribe()}})}_connectSocket(){const{WebSocketCtor:t,protocol:e,url:i,binaryType:o}=this._config,s=this._output;let a=null;try{a=e?new t(i,e):new t(i),this._socket=a,o&&(this._socket.binaryType=o)}catch(d){return void s.error(d)}const l=new T(()=>{this._socket=null,a&&1===a.readyState&&a.close()});a.onopen=d=>{const{_socket:w}=this;if(!w)return a.close(),void this._resetState();const{openObserver:P}=this._config;P&&P.next(d);const Y=this.destination;this.destination=A.create(q=>{if(1===a.readyState)try{const{serializer:te}=this._config;a.send(te(q))}catch(te){this.destination.error(te)}},q=>{const{closingObserver:te}=this._config;te&&te.next(void 0),q&&q.code?a.close(q.code,q.reason):s.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),this._resetState()},()=>{const{closingObserver:q}=this._config;q&&q.next(void 0),a.close(),this._resetState()}),Y&&Y instanceof Ho&&l.add(Y.subscribe(this.destination))},a.onerror=d=>{this._resetState(),s.error(d)},a.onclose=d=>{this._resetState();const{closeObserver:w}=this._config;w&&w.next(d),d.wasClean?s.complete():s.error(d)},a.onmessage=d=>{try{const{deserializer:w}=this._config;s.next(w(d))}catch(w){s.error(w)}}}_subscribe(t){const{source:e}=this;return e?e.subscribe(t):(this._socket||this._connectSocket(),this._output.subscribe(t),t.add(()=>{const{_socket:i}=this;0===this._output.observers.length&&(i&&1===i.readyState&&i.close(),this._resetState())}),t)}unsubscribe(){const{_socket:t}=this;t&&1===t.readyState&&t.close(),this._resetState(),super.unsubscribe()}}var au=(()=>(function(n){n.Json="json",n.Text="text"}(au||(au={})),au))(),lu=(()=>(function(n){n.Json="json"}(lu||(lu={})),lu))();class rc{constructor(t){this.responseType=au.Json,this.requestType=lu.Json,this.ignoreAuth=!1,Object.assign(this,t)}}class wo{constructor(t,e,i){this.http=t,this.router=e,this.ngZone=i,this.apiPrefix="api/",this.wsApiPrefix="api/"}get(t,e=null){return this.request("GET",t,{},e)}post(t,e={},i=null){return this.request("POST",t,e,i)}put(t,e={},i=null){return this.request("PUT",t,e,i)}delete(t,e=null){return this.request("DELETE",t,{},e)}ws(t,e={}){const s=function Zz(n){return new P1(n)}((location.protocol.startsWith("https")?"wss://":"ws://")+location.host+"/"+this.wsApiPrefix+t);return s.next(e),s}request(t,e,i,o){return i=i||{},o=o||new rc,e.startsWith("/")&&(e=e.substr(1,e.length-1)),this.http.request(t,this.apiPrefix+e,{...this.getRequestOptions(o),responseType:o.responseType,withCredentials:!0,body:this.getPostBody(i,o)}).pipe(Ce(s=>this.successHandler(s)),no(s=>this.errorHandler(s,o)))}getRequestOptions(t){const e={};return e.headers=new Ss,t.requestType===lu.Json&&(e.headers=e.headers.append("Content-Type","application/json")),e}getPostBody(t,e){if(e.requestType===lu.Json)return JSON.stringify(t);const i=new FormData;return Object.keys(t).forEach(o=>i.append(o,t[o])),i}successHandler(t){if("string"==typeof t&&"manager token is null"===t)throw new Error(t);return t}errorHandler(t,e){if(!e.ignoreAuth){if(401===t.status){const i=e.vpnKeyForAuth?["vpnlogin",e.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(i,{replaceUrl:!0}))}if(t.error&&"string"==typeof t.error&&t.error.includes("change password")){const i=e.vpnKeyForAuth?["vpnlogin",e.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(i,{replaceUrl:!0}))}}return Pr(Kt(t))}}wo.\u0275fac=function(t){return new(t||wo)(we(Gl),we(Qt),we(pt))},wo.\u0275prov=Ye({token:wo,factory:wo.\u0275fac,providedIn:"root"});const Xz=["determinateSpinner"];function Qz(n,t){if(1&n&&(ms(),D(0,"svg",11),xe(1,"circle",12),x()),2&n){const e=z();Ut("viewBox",e._viewBox()),c(1),Va("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Ut("r",e._circleRadius())}}const Jz=Af(class{constructor(n){this._elementRef=n}},"primary"),eU=new He("mat-progress-spinner-default-options",{providedIn:"root",factory:function tU(){return{diameter:iE}}}),iE=100;let oc=(()=>{class n extends Jz{constructor(e,i,o){super(e),this.mode="mat-spinner"===this._elementRef.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",this._value=0,this._diameter=iE,this._noopAnimations="NoopAnimations"===i&&!!o&&!o._forceAnimations,o&&(o.color&&(this.color=this.defaultColor=o.color),o.diameter&&(this.diameter=o.diameter),o.strokeWidth&&(this.strokeWidth=o.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,Mo(e)))}get diameter(){return this._diameter}set diameter(e){this._diameter=Mo(e)}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=Mo(e)}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(zi,8),F(eU))},n.\u0275cmp=qe({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(e,i){if(1&e&&ft(Xz,5),2&e){let o;nt(o=it())&&(i._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:12,hostBindings:function(e,i){2&e&&(Ut("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===i.mode?i.value:null)("mode",i.mode),Va("width",i.diameter,"px")("height",i.diameter,"px"),Gt("_mat-animation-noopable",i._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===i.mode))},inputs:{color:"color",mode:"mode",value:"value",diameter:"diameter",strokeWidth:"strokeWidth"},exportAs:["matProgressSpinner"],features:[dt],decls:14,vars:11,consts:[["circle",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["determinateSpinner",""],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(e,i){if(1&e&&(V(0,Qz,2,8,"ng-template",null,0,ws),D(2,"div",1,2),ms(),D(4,"svg",3),xe(5,"circle",4),x()(),Sl(),D(6,"div",5)(7,"div",6)(8,"div",7),Jo(9,8),x(),D(10,"div",9),Jo(11,8),x(),D(12,"div",10),Jo(13,8),x()()()),2&e){const o=ci(1);c(4),Ut("viewBox",i._viewBox()),c(1),Va("stroke-dasharray",i._strokeCircumference(),"px")("stroke-dashoffset",i._strokeDashOffset(),"px")("stroke-width",i._circleStrokeWidth(),"%"),Ut("r",i._circleRadius()),c(4),M("ngTemplateOutlet",o),c(2),M("ngTemplateOutlet",o),c(2),M("ngTemplateOutlet",o)}},dependencies:[Rd],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, transparent)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0}),n})(),iU=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[ia,Vn]}),n})();const rU=function(n){return{"white-theme":n}};class Gr{constructor(){this.showWhite=!0}}function oU(n,t){1&n&&(D(0,"div",5)(1,"div"),xe(2,"img",6),D(3,"div"),E(4),R(5,"translate"),x()()()),2&n&&(c(4),oe(B(5,1,"common.window-size-error")))}function sU(n,t){1&n&&xe(0,"router-outlet")}function aU(n,t){1&n&&xe(0,"app-loading-indicator",7)}Gr.\u0275fac=function(t){return new(t||Gr)},Gr.\u0275cmp=qe({type:Gr,selectors:[["app-loading-indicator"]],inputs:{showWhite:"showWhite"},decls:2,vars:4,consts:[[1,"container",3,"ngClass"],[3,"diameter"]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"mat-spinner",1),x()),2&t&&(M("ngClass",Be(2,rU,e.showWhite)),c(1),M("diameter",50))},dependencies:[Rn,oc],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex}.container[_ngcontent-%COMP%]{width:100%;align-self:center;display:flex;flex-direction:column;align-items:center}.container[_ngcontent-%COMP%] > mat-spinner[_ngcontent-%COMP%]{opacity:.5}"]});const lU=function(n){return{background:n}};class ua{constructor(t,e,i,o,s,a){this.storage=t,this.snackbarService=o,this.languageService=s,this.apiService=a,this.inVpnClient=!1,this.inLoginPage=!1,this.hypervisorPkObtained=!1,this.pkErrorShown=!1,this.pkErrorsFound=0,ua.currentInstance=this,i.afterOpened.subscribe(()=>o.closeCurrent()),e.events.subscribe(l=>{l instanceof Qa&&(o.closeCurrent(),i.closeAll(),window.scrollTo(0,0))}),i.afterAllClosed.subscribe(()=>o.closeCurrentIfTemporaryError()),e.events.subscribe(l=>{if(this.inVpnClient=e.url.includes("/vpn/")||e.url.includes("vpnlogin"),l.url){const d=this.inLoginPage;this.inLoginPage=l.url.includes("login"),d&&!this.inLoginPage&&!this.hypervisorPkObtained&&this.checkHypervisorPk(0)}e.url.length>2&&(document.title=this.inVpnClient?"Skywire VPN":"Skywire Manager")}),this.languageService.loadLanguageSettings(),this.checkHypervisorPk(0)}processLoginDone(){this.inLoginPage=!1,this.hypervisorPkObtained||this.checkHypervisorPk(0)}checkHypervisorPk(t){this.obtainPkSubscription&&this.obtainPkSubscription.unsubscribe(),this.obtainPkSubscription=Ge(1).pipe(Di(t),Ne(()=>this.apiService.get("about"))).subscribe(e=>{e.public_key?(this.finishStartup(e.public_key),this.hypervisorPkObtained=!0):(this.pkErrorShown||(this.snackbarService.showError("start.loading-error",null,!0),this.pkErrorShown=!0),this.checkHypervisorPk(1e3))},e=>{if(this.pkErrorsFound+=1,this.pkErrorsFound>4&&!this.pkErrorShown){const i=Kt(e);this.snackbarService.showError("start.loading-error",null,!0,i),this.pkErrorShown=!0}this.inLoginPage||this.checkHypervisorPk(1e3)})}finishStartup(t){this.storage.initialize(t)}}ua.\u0275fac=function(t){return new(t||ua)(F(ni),F(Qt),F(Ln),F(on),F(da),F(wo))},ua.\u0275cmp=qe({type:ua,selectors:[["app-root"]],decls:5,vars:6,consts:[["class","size-alert d-md-none",4,"ngIf"],[1,"flex-1","content","container-fluid"],[3,"ngClass"],[4,"ngIf"],["class","h-100",4,"ngIf"],[1,"size-alert","d-md-none"],["src","assets/img/size-alert.png"],[1,"h-100"]],template:function(t,e){1&t&&(V(0,oU,6,3,"div",0),D(1,"div",1),xe(2,"div",2),V(3,sU,1,0,"router-outlet",3),V(4,aU,1,0,"app-loading-indicator",4),x()),2&t&&(M("ngIf",e.inVpnClient),c(2),M("ngClass",Be(4,lU,e.inVpnClient)),c(1),M("ngIf",e.hypervisorPkObtained||e.inLoginPage),c(1),M("ngIf",!e.hypervisorPkObtained&&!e.inLoginPage))},dependencies:[Rn,It,B_,Gr,xt],styles:[".size-alert[_ngcontent-%COMP%]{background-color:#000000d9;position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#fff}.size-alert[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin:0 40px;max-width:400px}[_nghost-%COMP%]{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;height:100%}.content[_ngcontent-%COMP%]{padding:20px!important}.background[_ngcontent-%COMP%]{background-image:url(/assets/img/map.png);background-size:cover;background-position:center;opacity:.1;width:100%;height:100%;top:0;left:0;position:fixed}"]});class Es{constructor(t){this.router=t,this.forceFailInternal=!1}set forceFail(t){this.forceFailInternal=t}canActivate(t,e){return this.checkIfCanActivate()}canActivateChild(t,e){return this.checkIfCanActivate()}checkIfCanActivate(){return this.forceFailInternal?(this.router.navigate(["login"],{replaceUrl:!0}),Ge(!1)):Ge(!0)}}Es.\u0275fac=function(t){return new(t||Es)(we(Qt))},Es.\u0275prov=Ye({token:Es,factory:Es.\u0275fac,providedIn:"root"});var Is=(()=>(function(n){n[n.AuthDisabled=0]="AuthDisabled",n[n.Logged=1]="Logged",n[n.NotLogged=2]="NotLogged"}(Is||(Is={})),Is))();class Ps{constructor(t,e,i){this.apiService=t,this.translateService=e,this.authGuardService=i}login(t){return this.apiService.post("login",{username:"admin",password:t},new rc({ignoreAuth:!0})).pipe(hi(e=>{if(!0!==e)throw new Error;this.authGuardService.forceFail=!1}))}checkLogin(){return this.apiService.get("user",new rc({ignoreAuth:!0})).pipe(Ce(t=>t.username?Is.Logged:Is.AuthDisabled),no(t=>(t=Kt(t)).originalError&&401===t.originalError.status?(this.authGuardService.forceFail=!0,Ge(Is.NotLogged)):Pr(t)))}logout(){return this.apiService.post("logout",{}).pipe(hi(t=>{if(!0!==t)throw new Error;this.authGuardService.forceFail=!0}))}changePassword(t,e){return this.apiService.post("change-password",{old_password:t,new_password:e},new rc({responseType:au.Text,ignoreAuth:!0})).pipe(Ce(i=>{if("string"==typeof i&&"true"===i.trim())return!0;throw"Please do not change the default password."===i?new Error(this.translateService.instant("settings.password.errors.default-password")):new Error(this.translateService.instant("common.operation-error"))}),no(i=>((i=Kt(i)).originalError&&401===i.originalError.status&&(i.translatableErrorMsg="settings.password.errors.bad-old-password"),Pr(i))))}initialConfig(t){return this.apiService.post("create-account",{username:"admin",password:t},new rc({responseType:au.Text,ignoreAuth:!0})).pipe(Ce(e=>{if("string"==typeof e&&"true"===e.trim())return!0;throw new Error(e)}),no(e=>((e=Kt(e)).originalError&&500===e.originalError.status&&(e.translatableErrorMsg="settings.password.initial-config.error"),Pr(e))))}}Ps.\u0275fac=function(t){return new(t||Ps)(we(wo),we(oo),we(Es))},Ps.\u0275prov=Ye({token:Ps,factory:Ps.\u0275fac,providedIn:"root"});class Uf{constructor(t,e){this.authService=t,this.router=e}ngOnInit(){this.verificationSubscription=this.authService.checkLogin().subscribe(t=>{this.router.navigate(t!==Is.NotLogged?["nodes"]:["login"],{replaceUrl:!0})},()=>{this.router.navigate(["nodes"],{replaceUrl:!0})})}ngOnDestroy(){this.verificationSubscription.unsubscribe()}}Uf.\u0275fac=function(t){return new(t||Uf)(F(Ps),F(Qt))},Uf.\u0275cmp=qe({type:Uf,selectors:[["app-start"]],decls:2,vars:0,consts:[[1,"h-100","w-100"]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"app-loading-indicator"),x())},dependencies:[Gr]});let rE=(()=>{class n{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}}return n.\u0275fac=function(e){return new(e||n)(F(Ks),F(bt))},n.\u0275dir=Ke({type:n}),n})(),sc=(()=>{class n extends rE{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,features:[dt]}),n})();const as=new He("NgValueAccessor"),dU={provide:as,useExisting:an(()=>Ri),multi:!0},hU=new He("CompositionEventMode");let Ri=(()=>{class n extends rE{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function uU(){const n=Cs()?Cs().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}}return n.\u0275fac=function(e){return new(e||n)(F(Ks),F(bt),F(hU,8))},n.\u0275dir=Ke({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(e,i){1&e&&ye("input",function(s){return i._handleInput(s.target.value)})("blur",function(){return i.onTouched()})("compositionstart",function(){return i._compositionStart()})("compositionend",function(s){return i._compositionEnd(s.target.value)})},features:[Zt([dU]),dt]}),n})();function ol(n){return null==n||("string"==typeof n||Array.isArray(n))&&0===n.length}function sE(n){return null!=n&&"number"==typeof n.length}const wr=new He("NgValidators"),sl=new He("NgAsyncValidators"),pU=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[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])?)*$/;class Vt{static min(t){return function aE(n){return t=>{if(ol(t.value)||ol(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e{if(ol(t.value)||ol(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}(t)}static required(t){return function cE(n){return ol(n.value)?{required:!0}:null}(t)}static requiredTrue(t){return function dE(n){return!0===n.value?null:{required:!0}}(t)}static email(t){return function uE(n){return ol(n.value)||pU.test(n.value)?null:{email:!0}}(t)}static minLength(t){return function hE(n){return t=>ol(t.value)||!sE(t.value)?null:t.value.length{if(ol(i.value))return null;const o=i.value;return t.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(t)}static nullValidator(t){return null}static compose(t){return yE(t)}static composeAsync(t){return ME(t)}}function fE(n){return t=>sE(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}function yg(n){return null}function mE(n){return null!=n}function _E(n){return Ih(n)?ue(n):n}function gE(n){let t={};return n.forEach(e=>{t=null!=e?{...t,...e}:t}),0===Object.keys(t).length?null:t}function bE(n,t){return t.map(e=>e(n))}function vE(n){return n.map(t=>function mU(n){return!n.validate}(t)?t:e=>t.validate(e))}function yE(n){if(!n)return null;const t=n.filter(mE);return 0==t.length?null:function(e){return gE(bE(e,t))}}function O1(n){return null!=n?yE(vE(n)):null}function ME(n){if(!n)return null;const t=n.filter(mE);return 0==t.length?null:function(e){return UL(bE(e,t).map(_E)).pipe(Ce(gE))}}function A1(n){return null!=n?ME(vE(n)):null}function wE(n,t){return null===n?[t]:Array.isArray(n)?[...n,t]:[n,t]}function xE(n){return n._rawValidators}function CE(n){return n._rawAsyncValidators}function F1(n){return n?Array.isArray(n)?n:[n]:[]}function Mg(n,t){return Array.isArray(n)?n.includes(t):n===t}function kE(n,t){const e=F1(t);return F1(n).forEach(o=>{Mg(e,o)||e.push(o)}),e}function SE(n,t){return F1(t).filter(e=>!Mg(n,e))}class DE{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=O1(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=A1(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}class qr extends DE{get formDirective(){return null}get path(){return null}}class Os extends DE{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class TE{constructor(t){this._cd=t}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let Ni=(()=>{class n extends TE{constructor(e){super(e)}}return n.\u0275fac=function(e){return new(e||n)(F(Os,2))},n.\u0275dir=Ke({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,i){2&e&&Gt("ng-untouched",i.isUntouched)("ng-touched",i.isTouched)("ng-pristine",i.isPristine)("ng-dirty",i.isDirty)("ng-valid",i.isValid)("ng-invalid",i.isInvalid)("ng-pending",i.isPending)},features:[dt]}),n})(),Yi=(()=>{class n extends TE{constructor(e){super(e)}}return n.\u0275fac=function(e){return new(e||n)(F(qr,10))},n.\u0275dir=Ke({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(e,i){2&e&&Gt("ng-untouched",i.isUntouched)("ng-touched",i.isTouched)("ng-pristine",i.isPristine)("ng-dirty",i.isDirty)("ng-valid",i.isValid)("ng-invalid",i.isInvalid)("ng-pending",i.isPending)("ng-submitted",i.isSubmitted)},features:[dt]}),n})();const Wf="VALID",xg="INVALID",cu="PENDING",$f="DISABLED";function B1(n){return(Cg(n)?n.validators:n)||null}function H1(n,t){return(Cg(t)?t.asyncValidators:n)||null}function Cg(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}function EE(n,t,e){const i=n.controls;if(!(t?Object.keys(i):i).length)throw new Fe(1e3,"");if(!i[e])throw new Fe(1001,"")}function IE(n,t,e){n._forEachChild((i,o)=>{if(void 0===e[o])throw new Fe(1002,"")})}class kg{constructor(t,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===Wf}get invalid(){return this.status===xg}get pending(){return this.status==cu}get disabled(){return this.status===$f}get enabled(){return this.status!==$f}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(kE(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(kE(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(SE(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(SE(t,this._rawAsyncValidators))}hasValidator(t){return Mg(this._rawValidators,t)}hasAsyncValidator(t){return Mg(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=cu,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=$f,this.errors=null,this._forEachChild(i=>{i.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=Wf,this._forEachChild(i=>{i.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Wf||this.status===cu)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?$f:Wf}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=cu,this._hasOwnPendingAsyncValidator=!0;const e=_E(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){let e=t;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(t,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new ht,this.statusChanges=new ht}_calculateStatus(){return this._allControlsDisabled()?$f:this.errors?xg:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(cu)?cu:this._anyControlsHaveStatus(xg)?xg:Wf}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){Cg(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=function wU(n){return Array.isArray(n)?O1(n):n||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function xU(n){return Array.isArray(n)?A1(n):n||null}(this._rawAsyncValidators)}}class du extends kg{constructor(t,e,i){super(B1(e),H1(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){IE(this,0,t),Object.keys(t).forEach(i=>{EE(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(Object.keys(t).forEach(i=>{const o=this.controls[i];o&&o.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,o)=>{i.reset(t[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((o,s)=>{i=e(i,o,s)}),i}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}}const PE=du;class OE extends du{}const uu=new He("CallSetDisabledState",{providedIn:"root",factory:()=>Sg}),Sg="always";function Dg(n,t){return[...t.path,n]}function Gf(n,t,e=Sg){V1(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||"always"===e)&&t.valueAccessor.setDisabledState?.(n.disabled),function kU(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&AE(n,t)})}(n,t),function DU(n,t){const e=(i,o)=>{t.valueAccessor.writeValue(i),o&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}(n,t),function SU(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&AE(n,t),"submit"!==n.updateOn&&n.markAsTouched()})}(n,t),function CU(n,t){if(t.valueAccessor.setDisabledState){const e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}(n,t)}function Tg(n,t,e=!0){const i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),Eg(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function Lg(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function V1(n,t){const e=xE(n);null!==t.validator?n.setValidators(wE(e,t.validator)):"function"==typeof e&&n.setValidators([e]);const i=CE(n);null!==t.asyncValidator?n.setAsyncValidators(wE(i,t.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const o=()=>n.updateValueAndValidity();Lg(t._rawValidators,o),Lg(t._rawAsyncValidators,o)}function Eg(n,t){let e=!1;if(null!==n){if(null!==t.validator){const o=xE(n);if(Array.isArray(o)&&o.length>0){const s=o.filter(a=>a!==t.validator);s.length!==o.length&&(e=!0,n.setValidators(s))}}if(null!==t.asyncValidator){const o=CE(n);if(Array.isArray(o)&&o.length>0){const s=o.filter(a=>a!==t.asyncValidator);s.length!==o.length&&(e=!0,n.setAsyncValidators(s))}}}const i=()=>{};return Lg(t._rawValidators,i),Lg(t._rawAsyncValidators,i),e}function AE(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function FE(n,t){V1(n,t)}function RE(n,t){n._syncPendingControls(),t.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}const PU={provide:qr,useExisting:an(()=>Kf)},qf=(()=>Promise.resolve())();let Kf=(()=>{class n extends qr{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new ht,this.form=new du({},O1(e),A1(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){qf.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Gf(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){qf.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){qf.then(()=>{const i=this._findContainer(e.path),o=new du({});FE(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){qf.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){qf.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,RE(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}}return n.\u0275fac=function(e){return new(e||n)(F(wr,10),F(sl,10),F(uu,8))},n.\u0275dir=Ke({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(e,i){1&e&&ye("submit",function(s){return i.onSubmit(s)})("reset",function(){return i.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Zt([PU]),dt]}),n})();function NE(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function YE(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}const hu=class extends kg{constructor(t=null,e,i){super(B1(e),H1(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Cg(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=YE(t)?t.value:t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){NE(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){NE(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){YE(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},Ig=hu;let BE=(()=>{class n extends qr{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Dg(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,features:[dt]}),n})(),Bi=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),n})(),UE=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();const W1=new He("NgModelWithFormControlWarning"),VU={provide:qr,useExisting:an(()=>ii)};let ii=(()=>{class n extends qr{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new ht,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Eg(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Gf(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Tg(e.control||null,e,!1),function IU(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,RE(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(Tg(i||null,e),(n=>n instanceof hu)(o)&&(Gf(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);FE(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function TU(n,t){return Eg(n,t)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){V1(this.form,this),this._oldForm&&Eg(this._oldForm,this)}_checkFormPresent(){}}return n.\u0275fac=function(e){return new(e||n)(F(wr,10),F(sl,10),F(uu,8))},n.\u0275dir=Ke({type:n,selectors:[["","formGroup",""]],hostBindings:function(e,i){1&e&&ye("submit",function(s){return i.onSubmit(s)})("reset",function(){return i.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Zt([VU]),dt,qi]}),n})();const jU={provide:qr,useExisting:an(()=>Zf)};let Zf=(()=>{class n extends BE{constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){qE(this._parent)}}return n.\u0275fac=function(e){return new(e||n)(F(qr,13),F(wr,10),F(sl,10))},n.\u0275dir=Ke({type:n,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[Zt([jU]),dt]}),n})();const zU={provide:qr,useExisting:an(()=>Xf)};let Xf=(()=>{class n extends qr{constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Dg(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){qE(this._parent)}}return n.\u0275fac=function(e){return new(e||n)(F(qr,13),F(wr,10),F(sl,10))},n.\u0275dir=Ke({type:n,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[Zt([zU]),dt]}),n})();function qE(n){return!(n instanceof Zf||n instanceof ii||n instanceof Xf)}const UU={provide:Os,useExisting:an(()=>Li)};let Li=(()=>{class n extends Os{constructor(e,i,o,s,a){super(),this._ngModelWarningConfig=a,this._added=!1,this.update=new ht,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=function U1(n,t){if(!t)return null;let e,i,o;return Array.isArray(t),t.forEach(s=>{s.constructor===Ri?e=s:function EU(n){return Object.getPrototypeOf(n.constructor)===sc}(s)?i=s:o=s}),o||i||e||null}(0,s)}set isDisabled(e){}ngOnChanges(e){this._added||this._setUpControl(),function z1(n,t){if(!n.hasOwnProperty("model"))return!1;const e=n.model;return!!e.isFirstChange()||!Object.is(t,e.currentValue)}(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Dg(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}}return n._ngModelWarningSentOnce=!1,n.\u0275fac=function(e){return new(e||n)(F(qr,13),F(wr,10),F(sl,10),F(as,10),F(W1,8))},n.\u0275dir=Ke({type:n,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[Zt([UU]),dt,qi]}),n})();let ac=(()=>{class n{constructor(){this._validator=yg}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):yg,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,features:[qi]}),n})();const iW={provide:wr,useExisting:an(()=>xr),multi:!0};let xr=(()=>{class n extends ac{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>function XE(n){return"number"==typeof n?n:parseInt(n,10)}(e),this.createValidator=e=>fE(e)}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(e,i){2&e&&Ut("maxlength",i._enabled?i.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Zt([iW]),dt]}),n})(),rI=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[UE]}),n})(),oW=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:uu,useValue:e.callSetDisabledState??Sg}]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[rI]}),n})(),Z1=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:W1,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:uu,useValue:e.callSetDisabledState??Sg}]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[rI]}),n})();class oI extends kg{constructor(t,e,i){super(B1(e),H1(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(t){return this.controls[this._adjustIndex(t)]}push(t,e={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){let i=this._adjustIndex(t);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){let o=this._adjustIndex(t);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){IE(this,0,t),t.forEach((i,o)=>{EE(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(t.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,o)=>{i.reset(t[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(const t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){return this.at(t)??null}}function sI(n){return!!n&&(void 0!==n.asyncValidators||void 0!==n.validators||void 0!==n.updateOn)}let aI=(()=>{class n{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new n;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let s={};return sI(i)?s=i:null!==i&&(s.validators=i.validator,s.asyncValidators=i.asyncValidator),new du(o,s)}record(e,i=null){const o=this._reduceControls(e);return new OE(o,i)}control(e,i,o){let s={};return this.useNonNullable?(sI(i)?s=i:(s.validators=i,s.asyncValidators=o),new hu(e,{...s,nonNullable:!0})):new hu(e,i,o)}array(e,i,o){const s=e.map(a=>this._createControl(a));return new oI(s,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof hu||e instanceof kg?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:Z1}),n})(),Cr=(()=>{class n extends aI{group(e,i=null){return super.group(e,i)}control(e,i,o){return super.control(e,i,o)}array(e,i,o){return super.array(e,i,o)}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:Z1}),n})();const sW=["matFormFieldNotchedOutline",""],aW=["*"],lW=["textField"],cW=["iconPrefixContainer"],dW=["textPrefixContainer"];function uW(n,t){1&n&&xe(0,"span",19)}function hW(n,t){if(1&n){const e=et();D(0,"label",17),ye("cdkObserveContent",function(){return Pe(e),Oe(z(2)._refreshOutlineNotchWidth())}),vn(1,1),V(2,uW,1,0,"span",18),x()}if(2&n){const e=z(2);M("floating",e._shouldLabelFloat())("cdkObserveContentDisabled",!e._hasOutline())("id",e._labelId),Ut("for",e._control.id)("aria-owns",e._control.id),c(2),M("ngIf",!e.hideRequiredMarker&&e._control.required)}}function fW(n,t){1&n&&V(0,hW,3,6,"label",16),2&n&&M("ngIf",z()._hasFloatingLabel())}function pW(n,t){1&n&&xe(0,"div",20)}function mW(n,t){}function _W(n,t){1&n&&V(0,mW,0,0,"ng-template",22),2&n&&(z(2),M("ngTemplateOutlet",ci(1)))}function gW(n,t){if(1&n&&(D(0,"div",21),V(1,_W,1,1,"ng-template",9),x()),2&n){const e=z();M("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat())("matFormFieldNotchedOutlineLabelWidth",e._labelWidth),c(1),M("ngIf",!e._forceDisplayInfixLabel())}}function bW(n,t){1&n&&(D(0,"div",23,24),vn(2,2),x())}function vW(n,t){1&n&&(D(0,"div",25,26),vn(2,3),x())}function yW(n,t){}function MW(n,t){1&n&&V(0,yW,0,0,"ng-template",22),2&n&&(z(),M("ngTemplateOutlet",ci(1)))}function wW(n,t){1&n&&(D(0,"div",27),vn(1,4),x())}function xW(n,t){1&n&&(D(0,"div",28),vn(1,5),x())}function CW(n,t){1&n&&xe(0,"div",29)}function kW(n,t){1&n&&(D(0,"div",30),vn(1,6),x()),2&n&&M("@transitionMessages",z()._subscriptAnimationState)}function SW(n,t){if(1&n&&(D(0,"mat-hint",34),E(1),x()),2&n){const e=z(2);M("id",e._hintLabelId),c(1),oe(e.hintLabel)}}function DW(n,t){if(1&n&&(D(0,"div",31),V(1,SW,2,2,"mat-hint",32),vn(2,7),xe(3,"div",33),vn(4,8),x()),2&n){const e=z();M("@transitionMessages",e._subscriptAnimationState),c(1),M("ngIf",e.hintLabel)}}const TW=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],LW=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];let lI=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["mat-label"]]}),n})(),EW=0;const cI=new He("MatError");let al=(()=>{class n{constructor(e,i){this.id="mat-mdc-error-"+EW++,e||i.nativeElement.setAttribute("aria-live","polite")}}return n.\u0275fac=function(e){return new(e||n)(Na("aria-live"),F(bt))},n.\u0275dir=Ke({type:n,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(e,i){2&e&&Js("id",i.id)},inputs:{id:"id"},features:[Zt([{provide:cI,useExisting:n}])]}),n})(),IW=0,dI=(()=>{class n{constructor(){this.align="start",this.id="mat-mdc-hint-"+IW++}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(e,i){2&e&&(Js("id",i.id),Ut("align",null),Gt("mat-mdc-form-field-hint-end","end"===i.align))},inputs:{align:"align",id:"id"}}),n})();const PW=new He("MatPrefix"),OW=new He("MatSuffix");let uI=(()=>{class n{constructor(e){this._elementRef=e,this.floating=!1}getWidth(){return function AW(n){if(null!==n.offsetParent)return n.scrollWidth;const e=n.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}}return n.\u0275fac=function(e){return new(e||n)(F(bt))},n.\u0275dir=Ke({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(e,i){2&e&&Gt("mdc-floating-label--float-above",i.floating)},inputs:{floating:"floating"}}),n})();const hI="mdc-line-ripple--active",Pg="mdc-line-ripple--deactivating";let fI=(()=>{class n{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=o=>{const s=this._elementRef.nativeElement.classList,a=s.contains(Pg);"opacity"===o.propertyName&&a&&s.remove(hI,Pg)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(Pg),e.add(hI)}deactivate(){this._elementRef.nativeElement.classList.add(Pg)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt))},n.\u0275dir=Ke({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]}),n})(),pI=(()=>{class n{constructor(e,i){this._elementRef=e,this._ngZone=i,this.labelWidth=0,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_getNotchWidth(){return this.open?this.labelWidth>0?`calc(${this.labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:"0px":null}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt))},n.\u0275cmp=qe({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(e,i){2&e&&Gt("mdc-notched-outline--notched",i.open)},inputs:{labelWidth:["matFormFieldNotchedOutlineLabelWidth","labelWidth"],open:["matFormFieldNotchedOutlineOpen","open"]},attrs:sW,ngContentSelectors:aW,decls:4,vars:2,consts:[[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],[1,"mdc-notched-outline__trailing"]],template:function(e,i){1&e&&(gr(),xe(0,"div",0),D(1,"div",1),vn(2),x(),xe(3,"div",2)),2&e&&(c(1),Va("width",i._getNotchWidth()))},encapsulation:2,changeDetection:0}),n})();const FW={transitionMessages:oa("transitionMessages",[go("enter",Zn({opacity:1,transform:"translateY(0%)"})),Er("void => enter",[Zn({opacity:0,transform:"translateY(-5px)"}),Wr("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let X1=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n}),n})();const Q1=new He("MatFormField"),RW=new He("MAT_FORM_FIELD_DEFAULT_OPTIONS");let mI=0,nr=(()=>{class n{constructor(e,i,o,s,a,l,d,w){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=s,this._platform=a,this._defaults=l,this._animationMode=d,this._document=w,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+mI++,this._hintLabelId="mat-mdc-hint-"+mI++,this._subscriptAnimationState="",this._labelWidth=0,this._destroyed=new X,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,l&&(l.appearance&&(this.appearance=l.appearance),this._hideRequiredMarker=Boolean(l?.hideRequiredMarker),l.color&&(this.color=l.color))}get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=hn(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._refreshOutlineNotchWidth(),this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}ngAfterViewInit(){this._updateFocusState(),this._refreshOutlineNotchWidth(),this._document?.fonts?.ready?this._document.fonts.ready.then(()=>{this._refreshOutlineNotchWidth(),this._changeDetectorRef.markForCheck()}):setTimeout(()=>this._refreshOutlineNotchWidth(),100),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(Cn(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),vt(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(Cn(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(Cn(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||(this._labelWidth=this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(s=>"start"===s.align):null,o=this._hintChildren?this._hintChildren.find(s=>"end"===s.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),o&&e.push(o.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,o=this._textPrefixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=o?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${s+a}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(pt),F(Or),F(fi),F(RW,8),F(zi,8),F(Dt))},n.\u0275cmp=qe({type:n,selectors:[["mat-form-field"]],contentQueries:function(e,i,o){if(1&e&&(Ji(o,lI,5),Ji(o,lI,7),Ji(o,X1,5),Ji(o,PW,5),Ji(o,OW,5),Ji(o,cI,5),Ji(o,dI,5)),2&e){let s;nt(s=it())&&(i._labelChildNonStatic=s.first),nt(s=it())&&(i._labelChildStatic=s.first),nt(s=it())&&(i._formFieldControl=s.first),nt(s=it())&&(i._prefixChildren=s),nt(s=it())&&(i._suffixChildren=s),nt(s=it())&&(i._errorChildren=s),nt(s=it())&&(i._hintChildren=s)}},viewQuery:function(e,i){if(1&e&&(ft(lW,5),ft(cW,5),ft(dW,5),ft(uI,5),ft(pI,5),ft(fI,5)),2&e){let o;nt(o=it())&&(i._textField=o.first),nt(o=it())&&(i._iconPrefixContainer=o.first),nt(o=it())&&(i._textPrefixContainer=o.first),nt(o=it())&&(i._floatingLabel=o.first),nt(o=it())&&(i._notchedOutline=o.first),nt(o=it())&&(i._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(e,i){2&e&&Gt("mat-mdc-form-field-label-always-float",i._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",i._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",i._hasIconSuffix)("mat-form-field-invalid",i._control.errorState)("mat-form-field-disabled",i._control.disabled)("mat-form-field-autofilled",i._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===i._animationMode)("mat-form-field-appearance-fill","fill"==i.appearance)("mat-form-field-appearance-outline","outline"==i.appearance)("mat-form-field-hide-placeholder",i._hasFloatingLabel()&&!i._shouldLabelFloat())("mat-focused",i._control.focused)("mat-primary","accent"!==i.color&&"warn"!==i.color)("mat-accent","accent"===i.color)("mat-warn","warn"===i.color)("ng-untouched",i._shouldForward("untouched"))("ng-touched",i._shouldForward("touched"))("ng-pristine",i._shouldForward("pristine"))("ng-dirty",i._shouldForward("dirty"))("ng-valid",i._shouldForward("valid"))("ng-invalid",i._shouldForward("invalid"))("ng-pending",i._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[Zt([{provide:Q1,useExisting:n}])],ngContentSelectors:LW,decls:18,vars:23,consts:[["labelTemplate",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],["textField",""],["class","mat-mdc-form-field-focus-overlay",4,"ngIf"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen","matFormFieldNotchedOutlineLabelWidth",4,"ngIf"],["class","mat-mdc-form-field-icon-prefix",4,"ngIf"],["class","mat-mdc-form-field-text-prefix",4,"ngIf"],[1,"mat-mdc-form-field-infix"],[3,"ngIf"],["class","mat-mdc-form-field-text-suffix",4,"ngIf"],["class","mat-mdc-form-field-icon-suffix",4,"ngIf"],["matFormFieldLineRipple","",4,"ngIf"],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align",3,"ngSwitch"],["class","mat-mdc-form-field-error-wrapper",4,"ngSwitchCase"],["class","mat-mdc-form-field-hint-wrapper",4,"ngSwitchCase"],["matFormFieldFloatingLabel","",3,"floating","cdkObserveContentDisabled","id","cdkObserveContent",4,"ngIf"],["matFormFieldFloatingLabel","",3,"floating","cdkObserveContentDisabled","id","cdkObserveContent"],["aria-hidden","true","class","mat-mdc-form-field-required-marker mdc-floating-label--required",4,"ngIf"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-focus-overlay"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen","matFormFieldNotchedOutlineLabelWidth"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-icon-prefix"],["iconPrefixContainer",""],[1,"mat-mdc-form-field-text-prefix"],["textPrefixContainer",""],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id",4,"ngIf"],[1,"mat-mdc-form-field-hint-spacer"],[3,"id"]],template:function(e,i){1&e&&(gr(TW),V(0,fW,1,1,"ng-template",null,0,ws),D(2,"div",1,2),ye("click",function(s){return i._control.onContainerClick&&i._control.onContainerClick(s)}),V(4,pW,1,0,"div",3),D(5,"div",4),V(6,gW,2,3,"div",5),V(7,bW,3,0,"div",6),V(8,vW,3,0,"div",7),D(9,"div",8),V(10,MW,1,1,"ng-template",9),vn(11),x(),V(12,wW,2,0,"div",10),V(13,xW,2,0,"div",11),x(),V(14,CW,1,0,"div",12),x(),D(15,"div",13),V(16,kW,2,1,"div",14),V(17,DW,5,2,"div",15),x()),2&e&&(c(2),Gt("mdc-text-field--filled",!i._hasOutline())("mdc-text-field--outlined",i._hasOutline())("mdc-text-field--no-label",!i._hasFloatingLabel())("mdc-text-field--disabled",i._control.disabled)("mdc-text-field--invalid",i._control.errorState),c(2),M("ngIf",!i._hasOutline()&&!i._control.disabled),c(2),M("ngIf",i._hasOutline()),c(1),M("ngIf",i._hasIconPrefix),c(1),M("ngIf",i._hasTextPrefix),c(2),M("ngIf",!i._hasOutline()||i._forceDisplayInfixLabel()),c(2),M("ngIf",i._hasTextSuffix),c(1),M("ngIf",i._hasIconSuffix),c(1),M("ngIf",!i._hasOutline()),c(1),Gt("mat-mdc-form-field-subscript-dynamic-size","dynamic"===i.subscriptSizing),M("ngSwitch",i._getDisplayedMessages()),c(1),M("ngSwitchCase","error"),c(1),M("ngSwitchCase","hint"))},dependencies:[It,Rd,$h,Iy,eL,dI,uI,pI,fI],styles:['.mdc-text-field{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required::after,.mdc-floating-label--required[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;border-top:1px solid;border-bottom:1px solid;pointer-events:none}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid;flex-grow:1}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{flex:0 0 auto;width:auto;max-width:calc(100% - 12px * 2)}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{line-height:normal;pointer-events:all}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0 - 0%)) translateY(-10.25px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-10.25px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-10.25px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-10.25px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0 - 0%)) translateY(-24.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-24.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-24.75px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-24.75px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0 - 32px)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - 32px)) translateY(-34.75px) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0 - -32px)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - -32px)) translateY(-34.75px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0 - 0%)) translateY(-106%) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-106%) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-106%) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-106%) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}'],encapsulation:2,data:{animation:[FW.transitionMessages]},changeDetection:0}),n})(),Og=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,ia,u1,Vn]}),n})();const bI=el({passive:!0});let BW=(()=>{class n{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return qa;const i=ca(e),o=this._monitoredElements.get(i);if(o)return o.subject;const s=new X,a="cdk-text-field-autofilled",l=d=>{"cdk-text-field-autofill-start"!==d.animationName||i.classList.contains(a)?"cdk-text-field-autofill-end"===d.animationName&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>s.next({target:d.target,isAutofilled:!1}))):(i.classList.add(a),this._ngZone.run(()=>s.next({target:d.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",l,bI),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:s,unlisten:()=>{i.removeEventListener("animationstart",l,bI)}}),s}stopMonitoring(e){const i=ca(e),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}}return n.\u0275fac=function(e){return new(e||n)(we(fi),we(pt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),HW=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();const VW=new He("MAT_INPUT_VALUE_ACCESSOR"),jW=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let zW=0;const UW=ML(class{constructor(n,t,e,i){this._defaultErrorStateMatcher=n,this._parentForm=t,this._parentFormGroup=e,this.ngControl=i,this.stateChanges=new X}});let kr=(()=>{class n extends UW{constructor(e,i,o,s,a,l,d,w,P,Y){super(l,s,a,o),this._elementRef=e,this._platform=i,this._autofillMonitor=w,this._formField=Y,this._uid="mat-input-"+zW++,this.focused=!1,this.stateChanges=new X,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(pe=>N2().has(pe)),this._iOSKeyupListener=pe=>{const ke=pe.target;!ke.value&&0===ke.selectionStart&&0===ke.selectionEnd&&(ke.setSelectionRange(1,1),ke.setSelectionRange(0,0))};const q=this._elementRef.nativeElement,te=q.nodeName.toLowerCase();this._inputValueAccessor=d||q,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&P.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===te,this._isTextarea="textarea"===te,this._isInFormField=!!Y,this._isNativeSelect&&(this.controlType=q.multiple?"mat-native-select-multiple":"mat-native-select")}get disabled(){return this._disabled}set disabled(e){this._disabled=hn(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(Vt.required)??!1}set required(e){this._required=hn(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&N2().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=hn(e)}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){jW.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(fi),F(Os,10),F(Kf,8),F(ii,8),F(x1),F(VW,10),F(BW),F(pt),F(Q1,8))},n.\u0275dir=Ke({type:n,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(e,i){1&e&&ye("focus",function(){return i._focusChanged(!0)})("blur",function(){return i._focusChanged(!1)})("input",function(){return i._onInput()}),2&e&&(Js("id",i.id)("disabled",i.disabled)("required",i.required),Ut("name",i.name||null)("readonly",i.readonly&&!i._isNativeSelect||null)("aria-invalid",i.empty&&i.required?null:i.errorState)("aria-required",i.required)("id",i.id),Gt("mat-input-server",i._isServer)("mat-mdc-form-field-textarea-control",i._isInFormField&&i._isTextarea)("mat-mdc-form-field-input-control",i._isInFormField)("mdc-text-field__input",i._isInFormField)("mat-mdc-native-select-inline",i._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[Zt([{provide:X1,useExisting:n}]),dt,qi]}),n})(),WW=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,Og,Og,HW,Vn]}),n})();const $W=["tooltip"],vI=new He("mat-tooltip-scroll-strategy"),KW={provide:vI,deps:[ro],useFactory:function qW(n){return()=>n.scrollStrategies.reposition({scrollThrottle:20})}},XW=new He("mat-tooltip-default-options",{providedIn:"root",factory:function ZW(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),yI="tooltip-panel",MI=el({passive:!0});let i$=(()=>{class n{constructor(e,i,o,s,a,l,d,w,P,Y,q,te){this._overlay=e,this._elementRef=i,this._scrollDispatcher=o,this._viewContainerRef=s,this._ngZone=a,this._platform=l,this._ariaDescriber=d,this._focusMonitor=w,this._dir=Y,this._defaultOptions=q,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this._showDelay=this._defaultOptions.showDelay,this._hideDelay=this._defaultOptions.hideDelay,this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new X,this._scrollStrategy=P,this._document=te,q&&(q.position&&(this.position=q.position),q.positionAtOrigin&&(this.positionAtOrigin=q.positionAtOrigin),q.touchGestures&&(this.touchGestures=q.touchGestures)),Y.change.pipe(Cn(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})}get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=hn(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=hn(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=Mo(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=Mo(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(Cn(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,o])=>{e.removeEventListener(i,o,MI)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const o=this._createOverlay(i);this._detach(),this._portal=this._portal||new Qd(this._tooltipComponent,this._viewContainerRef);const s=this._tooltipInstance=o.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(Cn(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof bt)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),o=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(Cn(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${yI}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(Cn(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(Cn(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(Cn(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&27===s.keyCode&&!Ts(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,o=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset({...o.main,...s.main}),this._addOffset({...o.fallback,...s.fallback})])}_addOffset(e){return e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i||"below"==i?o={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={originX:"end",originY:"center"});const{x:s,y:a}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:s,originY:a}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i?o={overlayX:"center",overlayY:"bottom"}:"below"==i?o={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={overlayX:"start",overlayY:"center"});const{x:s,y:a}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:s,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(ti(1),Cn(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:o,originY:s}=e;let a;if(a="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===s?"above":"below",a!==this._currentPosition){const l=this._overlayRef;if(l){const d=`${this._cssClassPrefix}-${yI}-`;l.removePanelClass(d+this._currentPosition),l.addPanelClass(d+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,o),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const o=i.relatedTarget;(!o||!this._overlayRef?.overlayElement.contains(o))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,o])=>{this._elementRef.nativeElement.addEventListener(i,o,MI)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,o=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),("on"===e||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}}return n.\u0275fac=function(e){Ba()},n.\u0275dir=Ke({type:n,inputs:{position:["matTooltipPosition","position"],positionAtOrigin:["matTooltipPositionAtOrigin","positionAtOrigin"],disabled:["matTooltipDisabled","disabled"],showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]}}),n})(),vi=(()=>{class n extends i${constructor(e,i,o,s,a,l,d,w,P,Y,q,te){super(e,i,o,s,a,l,d,w,P,Y,q,te),this._tooltipComponent=o$,this._cssClassPrefix="mat-mdc",this._viewportMargin=8}_addOffset(e){const o=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=o?-8:8:"end"===e.originX&&(e.offsetX=o?8:-8),e}}return n.\u0275fac=function(e){return new(e||n)(F(ro),F(bt),F(Df),F(Qi),F(pt),F(fi),F(t9),F(il),F(vI),F(Or,8),F(XW,8),F(Dt))},n.\u0275dir=Ke({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],exportAs:["matTooltip"],features:[dt]}),n})(),r$=(()=>{class n{constructor(e,i){this._changeDetectorRef=e,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new X,this._animationsDisabled="NoopAnimations"===i}show(e){clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){clearTimeout(this._showTimeoutId),clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,o=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(e?s:o),i.classList.add(e?o:s),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const a=getComputedStyle(i);("0s"===a.getPropertyValue("animation-duration")||"none"===a.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}}return n.\u0275fac=function(e){return new(e||n)(F(ui),F(zi,8))},n.\u0275dir=Ke({type:n}),n})(),o$=(()=>{class n extends r${constructor(e,i,o){super(e,o),this._elementRef=i,this._isMultiline=!1,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide"}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}}return n.\u0275fac=function(e){return new(e||n)(F(ui),F(bt),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(e,i){if(1&e&&ft($W,7),2&e){let o;nt(o=it())&&(i._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(e,i){1&e&&ye("mouseleave",function(s){return i._handleMouseLeave(s)}),2&e&&Va("zoom",i.isVisible()?1:null)},features:[dt],decls:4,vars:4,consts:[[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"ngClass","animationend"],["tooltip",""],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(e,i){1&e&&(D(0,"div",0,1),ye("animationend",function(s){return i._handleAnimationEnd(s)}),D(2,"div",2),E(3),x()()),2&e&&(Gt("mdc-tooltip--multiline",i._isMultiline),M("ngClass",i.tooltipClass),c(3),oe(i.message))},dependencies:[Rn],styles:['.mdc-tooltip__surface{word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color, #fff)}.mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape, var(--mdc-shape-small, 4px))}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape, var(--mdc-shape-small, 4px))}.mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color, #000)}.mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font, inherit);font-size:var(--mdc-plain-tooltip-supporting-text-size, inherit);font-weight:var(--mdc-plain-tooltip-supporting-text-weight, inherit);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, inherit)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:-8px;right:-8px;bottom:-8px;left:-8px;z-index:-1;position:absolute}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0}),n})(),s$=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[KW],imports:[y1,ia,eu,Vn,Vn,Tf]}),n})();const a$=["button1"],l$=["button2"];function c$(n,t){1&n&&xe(0,"mat-spinner",5),2&n&&M("diameter",z().loadingSize)}function d$(n,t){1&n&&(D(0,"mat-icon"),E(1,"error_outline"),x())}const u$=function(n){return{"for-dark-background":n}};var ha=(()=>(function(n){n[n.Normal=0]="Normal",n[n.Error=1]="Error",n[n.Loading=2]="Loading"}(ha||(ha={})),ha))();class ri{constructor(){this.forDarkBackground=!1,this.disabled=!1,this.color="",this.loadingSize=20,this.action=new ht,this.state=ha.Normal,this.buttonStates=ha}ngOnDestroy(){this.action.complete()}click(){this.disabled||(this.reset(),this.action.emit())}reset(t=!0){this.state=ha.Normal,t&&(this.disabled=!1)}focus(){this.button1&&this.button1.focus(),this.button2&&this.button2.focus()}showEnabled(){this.disabled=!1}showDisabled(){this.disabled=!0}showLoading(t=!0){this.state=ha.Loading,t&&(this.disabled=!0)}showError(t=!0){this.state=ha.Error,t&&(this.disabled=!1)}get isLoading(){return this.state===ha.Loading}}ri.\u0275fac=function(t){return new(t||ri)},ri.\u0275cmp=qe({type:ri,selectors:[["app-button"]],viewQuery:function(t,e){if(1&t&&(ft(a$,5),ft(l$,5)),2&t){let i;nt(i=it())&&(e.button1=i.first),nt(i=it())&&(e.button2=i.first)}},inputs:{forDarkBackground:"forDarkBackground",disabled:"disabled",color:"color",loadingSize:"loadingSize"},outputs:{action:"action"},ngContentSelectors:["*"],decls:6,vars:7,consts:[["mat-raised-button","",3,"disabled","color","ngClass","click"],["button2",""],[1,"d-flex"],[3,"diameter",4,"ngIf"],[4,"ngIf"],[3,"diameter"]],template:function(t,e){1&t&&(gr(),D(0,"button",0,1),ye("click",function(){return e.click()}),D(2,"div",2),V(3,c$,1,1,"mat-spinner",3),V(4,d$,2,0,"mat-icon",4),vn(5),x()()),2&t&&(M("disabled",e.disabled)("color",e.color)("ngClass",Be(5,u$,e.forDarkBackground)),c(3),M("ngIf",e.state===e.buttonStates.Loading),c(1),M("ngIf",e.state===e.buttonStates.Error))},dependencies:[Rn,It,$r,yn,oc],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px}button[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}mat-icon[_ngcontent-%COMP%], mat-spinner[_ngcontent-%COMP%]{display:inline-block;margin-right:15px}.for-dark-background[_ngcontent-%COMP%]:disabled{background-color:#000!important;color:#fff!important;opacity:.3}"]});const f$=["button"],p$=["firstInput"],m$=function(n){return{"element-disabled":n}};function _$(n,t){if(1&n&&(D(0,"mat-form-field",12)(1,"div",5)(2,"label",6),E(3),R(4,"translate"),x(),xe(5,"input",13),x(),D(6,"mat-error")(7,"span"),E(8),R(9,"translate"),x()()()),2&n){const e=z();M("ngClass",Be(7,m$,e.working)),c(3),oe(B(4,3,"settings.password.old-password")),c(5),oe(B(9,5,"settings.password.errors.old-password-required"))}}const g$=function(n){return{"rounded-elevated-box":n}},wI=function(n,t){return{"white-form-field":n,"element-disabled":t}},b$=function(n,t){return{"mt-2 app-button":n,"float-right":t}};class fu{constructor(t,e,i,o){this.authService=t,this.router=e,this.snackbarService=i,this.dialog=o,this.workingState=new ht,this.forInitialConfig=!1}ngOnInit(){this.form=new PE({oldPassword:new Ig("",this.forInitialConfig?null:Vt.required),newPassword:new Ig("",Vt.compose([Vt.required,Vt.minLength(6),Vt.maxLength(64)])),newPasswordConfirmation:new Ig("",[Vt.required,this.validatePasswords.bind(this)])}),this.formSubscription=this.form.controls.newPassword.valueChanges.subscribe(()=>this.form.controls.newPasswordConfirmation.updateValueAndValidity())}ngAfterViewInit(){this.forInitialConfig&&setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe(),this.formSubscription.unsubscribe()}get working(){return!!this.button&&this.button.isLoading}changePassword(){this.form.valid&&!this.button.disabled&&(this.button.showLoading(),this.workingState.next(!0),this.subscription=this.forInitialConfig?this.authService.initialConfig(this.form.get("newPassword").value).subscribe(()=>{this.dialog.closeAll(),this.snackbarService.showDone("settings.password.initial-config.done"),this.workingState.next(!1)},t=>{this.button.showError(),t=Kt(t),this.snackbarService.showError(t,null,!0),this.workingState.next(!1)}):this.authService.changePassword(this.form.get("oldPassword").value,this.form.get("newPassword").value).subscribe(()=>{this.router.navigate(["nodes"]),this.snackbarService.showDone("settings.password.password-changed"),this.workingState.next(!1)},t=>{this.button.showError(),t=Kt(t),this.snackbarService.showError(t),this.workingState.next(!1)}))}validatePasswords(){return this.form&&this.form.get("newPassword").value!==this.form.get("newPasswordConfirmation").value?{invalid:!0}:null}}function v$(n,t){1&n&&(D(0,"button",5)(1,"mat-icon"),E(2,"close"),x()())}function y$(n,t){1&n&&Jo(0)}fu.\u0275fac=function(t){return new(t||fu)(F(Ps),F(Qt),F(on),F(Ln))},fu.\u0275cmp=qe({type:fu,selectors:[["app-password"]],viewQuery:function(t,e){if(1&t&&(ft(f$,5),ft(p$,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},inputs:{forInitialConfig:"forInitialConfig"},outputs:{workingState:"workingState"},decls:33,vars:40,consts:[[3,"ngClass"],[1,"box-internal-container","overflow"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],["class","white-form-field",3,"ngClass",4,"ngIf"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","formControlName","newPassword","maxlength","64","matInput",""],["firstInput",""],["type","password","formControlName","newPasswordConfirmation","maxlength","64","matInput",""],["color","primary",3,"ngClass","disabled","forDarkBackground","action"],["button",""],[1,"white-form-field",3,"ngClass"],["type","password","formControlName","oldPassword","maxlength","64","matInput",""]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div")(3,"mat-icon",2),R(4,"translate"),E(5," help "),x()(),D(6,"form",3),V(7,_$,10,9,"mat-form-field",4),D(8,"mat-form-field",0)(9,"div",5)(10,"label",6),E(11),R(12,"translate"),x(),xe(13,"input",7,8),x(),D(15,"mat-error")(16,"span"),E(17),R(18,"translate"),x()()(),D(19,"mat-form-field",0)(20,"div",5)(21,"label",6),E(22),R(23,"translate"),x(),xe(24,"input",9),x(),D(25,"mat-error")(26,"span"),E(27),R(28,"translate"),x()()(),D(29,"app-button",10,11),ye("action",function(){return e.changePassword()}),E(31),R(32,"translate"),x()()()()),2&t&&(M("ngClass",Be(29,g$,!e.forInitialConfig)),c(2),eo((e.forInitialConfig?"":"white-")+"form-help-icon-container"),c(1),M("inline",!0)("matTooltip",B(4,17,e.forInitialConfig?"settings.password.initial-config-help":"settings.password.help")),c(3),M("formGroup",e.form),c(1),M("ngIf",!e.forInitialConfig),c(1),M("ngClass",cn(31,wI,!e.forInitialConfig,e.working)),c(3),oe(B(12,19,e.forInitialConfig?"settings.password.initial-config.password":"settings.password.new-password")),c(6),oe(B(18,21,"settings.password.errors.new-password-error")),c(2),M("ngClass",cn(34,wI,!e.forInitialConfig,e.working)),c(3),oe(B(23,23,e.forInitialConfig?"settings.password.initial-config.repeat-password":"settings.password.repeat-password")),c(5),oe(B(28,25,"settings.password.errors.passwords-not-match")),c(2),M("ngClass",cn(37,b$,!e.forInitialConfig,e.forInitialConfig))("disabled",!e.form.valid)("forDarkBackground",!e.forInitialConfig),c(2),ce(" ",B(32,27,e.forInitialConfig?"settings.password.initial-config.set-password":"settings.change-password")," "))},dependencies:[Rn,It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,yn,vi,ri,xt],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}app-button[_ngcontent-%COMP%]{float:right;margin-right:32px}"]});const xI=function(n){return{"content-margin":n}};function M$(n,t){if(1&n&&(D(0,"mat-dialog-content",6),V(1,y$,1,0,"ng-container",7),x()),2&n){const e=z(),i=ci(8);M("ngClass",Be(2,xI,e.includeVerticalMargins)),c(1),M("ngTemplateOutlet",i)}}function w$(n,t){1&n&&Jo(0)}function x$(n,t){if(1&n&&(D(0,"div",6),V(1,w$,1,0,"ng-container",7),x()),2&n){const e=z(),i=ci(8);M("ngClass",Be(2,xI,e.includeVerticalMargins)),c(1),M("ngTemplateOutlet",i)}}function C$(n,t){1&n&&vn(0)}class En{constructor(t){this.matDialog=t,this.includeScrollableArea=!0,this.includeVerticalMargins=!0}set dialog(t){t.disableClose=!0,this.dialogInternal=t}onKeyUp(){this.closePopup()}closePopup(){this.disableDismiss||this.matDialog.openDialogs[this.matDialog.openDialogs.length-1].id===this.dialogInternal.id&&this.dialogInternal.close()}}En.\u0275fac=function(t){return new(t||En)(F(Ln))},En.\u0275cmp=qe({type:En,selectors:[["app-dialog"]],hostBindings:function(t,e){1&t&&ye("keyup.esc",function(){return e.onKeyUp()},0,$w)},inputs:{headline:"headline",disableDismiss:"disableDismiss",includeScrollableArea:"includeScrollableArea",includeVerticalMargins:"includeVerticalMargins",dialog:"dialog"},ngContentSelectors:["*"],decls:9,vars:4,consts:[["mat-dialog-title","",1,"header"],["mat-dialog-close","","mat-icon-button","","class","grey-button-background",4,"ngIf"],[1,"header-separator"],[3,"ngClass",4,"ngIf"],["contentTemplate",""],["mat-dialog-close","","mat-icon-button","",1,"grey-button-background"],[3,"ngClass"],[4,"ngTemplateOutlet"]],template:function(t,e){1&t&&(gr(),D(0,"div",0)(1,"span"),E(2),x(),V(3,v$,3,0,"button",1),x(),xe(4,"div",2),V(5,M$,2,4,"mat-dialog-content",3),V(6,x$,2,4,"div",3),V(7,C$,1,0,"ng-template",null,4,ws)),2&t&&(c(2),oe(e.headline),c(1),M("ngIf",!e.disableDismiss),c(2),M("ngIf",e.includeScrollableArea),c(1),M("ngIf",!e.includeScrollableArea))},dependencies:[Rn,It,Rd,rz,oz,C1,rl,yn],styles:['.cursor-pointer[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}[_nghost-%COMP%]{color:#202226}.header[_ngcontent-%COMP%]{margin:-24px -24px 0;color:#215f9e;padding:0 14px 0 24px;font-size:1rem;text-transform:uppercase;font-weight:700;display:flex;align-items:center}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-grow:1}@media (max-width: 767px){.header[_ngcontent-%COMP%]{padding:0 2px 0 24px}}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:1rem;margin:18px 0}.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{color:#a6b2b2;width:32px;height:32px;line-height:20px;margin-left:10px;padding:0}@media (max-width: 767px){.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{width:46px;height:46px}}.header-separator[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin-left:-12px;margin-right:-12px}.content-margin[_ngcontent-%COMP%]{padding-top:18px;padding-bottom:24px!important}']});class lc{constructor(t){this.dialogRef=t,this.disableDismiss=!1}static openDialog(t){const e=new Tn;return e.autoFocus=!1,e.width=Rt.smallModalWidth,t.open(lc,e)}}function S$(n,t){if(1&n){const e=et();D(0,"button",3),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().closePopup(s))}),xe(1,"img",4),D(2,"div",5),E(3),x()()}if(2&n){const e=t.$implicit;c(1),M("src","assets/img/lang/"+e.iconName,Oo),c(2),oe(e.name)}}lc.\u0275fac=function(t){return new(t||lc)(F(Nn))},lc.\u0275cmp=qe({type:lc,selectors:[["app-initial-setup"]],decls:3,vars:6,consts:[[3,"headline","dialog","disableDismiss"],[3,"forInitialConfig","workingState"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"app-password",1),ye("workingState",function(o){return e.disableDismiss=o}),x()()),2&t&&(M("headline",B(1,4,"settings.password.initial-config.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(2),M("forInitialConfig",!0))},dependencies:[fu,En,xt]});class ll{constructor(t,e){this.dialogRef=t,this.languageService=e,this.languages=[]}static openDialog(t){const e=new Tn;return e.autoFocus=!1,e.width=Rt.mediumModalWidth,t.open(ll,e)}ngOnInit(){this.subscription=this.languageService.languages.subscribe(t=>{this.languages=t})}ngOnDestroy(){this.subscription.unsubscribe()}closePopup(t=null){t&&this.languageService.changeLanguage(t.code),this.dialogRef.close()}}function D$(n,t){1&n&&xe(0,"img",2),2&n&&M("src","assets/img/lang/"+z().language.iconName,Oo)}ll.\u0275fac=function(t){return new(t||ll)(F(Nn),F(da))},ll.\u0275cmp=qe({type:ll,selectors:[["app-select-language"]],decls:4,vars:5,consts:[[3,"headline","dialog"],[1,"options-container"],["mat-button","","color","accent","class","grey-button-background",3,"click",4,"ngFor","ngForOf"],["mat-button","","color","accent",1,"grey-button-background",3,"click"],[3,"src"],[1,"label"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),V(3,S$,4,2,"button",2),x()()),2&t&&(M("headline",B(1,3,"language.title"))("dialog",e.dialogRef),c(3),M("ngForOf",e.languages))},dependencies:[bi,$r,En,xt],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.options-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:118px;height:auto!important;margin:20px;font-size:.7rem;line-height:unset;padding:0!important;color:unset}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .mdc-button__label{width:100%}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:90px;font-size:.6rem;margin:6px}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:64px;height:64px;margin:10px 0}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:48px;height:48px;margin:7px 0}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:#202226!important;background-color:#ffffff40;padding:4px 10px}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{padding:4px 5px}}"]});class Qf{constructor(t,e){this.languageService=t,this.dialog=e}ngOnInit(){this.subscription=this.languageService.currentLanguage.subscribe(t=>{this.language=t})}ngOnDestroy(){this.subscription.unsubscribe()}openLanguageWindow(){ll.openDialog(this.dialog)}}Qf.\u0275fac=function(t){return new(t||Qf)(F(da),F(Ln))},Qf.\u0275cmp=qe({type:Qf,selectors:[["app-lang-button"]],decls:3,vars:4,consts:[["mat-button","",1,"lang-button","subtle-transparent-button",3,"matTooltip","click"],["class","flag",3,"src",4,"ngIf"],[1,"flag",3,"src"]],template:function(t,e){1&t&&(D(0,"button",0),ye("click",function(){return e.openLanguageWindow()}),R(1,"translate"),V(2,D$,1,1,"img",1),x()),2&t&&(M("matTooltip",B(1,2,"language.title")),c(2),M("ngIf",e.language))},dependencies:[It,$r,vi,xt],styles:[".lang-button[_ngcontent-%COMP%]{height:40px;background-color:#f8f9f9;border-radius:100%;padding:0;line-height:1;padding:0!important}.lang-button[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{width:20px;height:20px}"]});const T$=function(n){return{"element-disabled":n}};class pu{constructor(t,e,i,o,s){this.authService=t,this.router=e,this.snackbarService=i,this.dialog=o,this.route=s,this.loading=!1,this.isForVpn=!1,this.vpnKey=""}ngOnInit(){this.routeSubscription=this.route.paramMap.subscribe(t=>{this.vpnKey=t.get("key"),this.isForVpn=-1!==window.location.href.indexOf("vpnlogin"),this.verificationSubscription=this.authService.checkLogin().subscribe(e=>{e!==Is.NotLogged&&(ua.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})}))})}),this.form=new PE({password:new Ig("",Vt.required)})}ngOnDestroy(){this.loginSubscription&&this.loginSubscription.unsubscribe(),this.verificationSubscription.unsubscribe(),this.routeSubscription.unsubscribe()}login(){!this.form.valid||this.loading||(this.loading=!0,this.loginSubscription=this.authService.login(this.form.get("password").value).subscribe(()=>this.onLoginSuccess(),t=>this.onLoginError(t)))}configure(){lc.openDialog(this.dialog)}onLoginSuccess(){ua.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})})}onLoginError(t){t=Kt(t),this.loading=!1,this.snackbarService.showError(t.originalError&&401===t.originalError.status?"login.incorrect-password":t.translatableErrorMsg)}}pu.\u0275fac=function(t){return new(t||pu)(F(Ps),F(Qt),F(on),F(Ln),F(yr))},pu.\u0275cmp=qe({type:pu,selectors:[["app-login"]],decls:14,vars:11,consts:[[1,"w-100","h-100","d-flex","justify-content-center"],[1,"row","main-container"],["src","/assets/img/logo-v.png",1,"logo"],[1,"mt-5",3,"formGroup"],[1,"login-input",3,"ngClass"],["type","password","formControlName","password","autocomplete","off",3,"placeholder","keydown.enter"],[3,"disabled","click"],[1,"config-link",3,"click"]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"app-lang-button"),D(2,"div",1),xe(3,"img",2),D(4,"form",3)(5,"div",4)(6,"input",5),ye("keydown.enter",function(){return e.login()}),R(7,"translate"),x(),D(8,"button",6),ye("click",function(){return e.login()}),D(9,"mat-icon"),E(10,"chevron_right"),x()()()(),D(11,"div",7),ye("click",function(){return e.configure()}),E(12),R(13,"translate"),x()()()),2&t&&(c(4),M("formGroup",e.form),c(1),M("ngClass",Be(9,T$,e.loading)),c(1),M("placeholder",B(7,5,"login.password")),c(2),M("disabled",!e.form.valid||e.loading),c(4),oe(B(13,7,"login.initial-config")))},dependencies:[Rn,Bi,Ri,Ni,Yi,ii,Li,yn,Qf,xt],styles:['.cursor-pointer[_ngcontent-%COMP%], .config-link[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}app-lang-button[_ngcontent-%COMP%]{position:fixed;right:10px;top:10px;z-index:10}.main-container[_ngcontent-%COMP%]{z-index:1;height:100%;flex-direction:column;align-items:center;justify-content:center}.logo[_ngcontent-%COMP%]{width:170px}.login-input[_ngcontent-%COMP%]{height:35px;width:300px;overflow:hidden;border-radius:10px;box-shadow:0 3px 8px #0000001a,0 6px 20px #0000001a;display:flex}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]{background:#fff;width:calc(100% - 35px);height:100%;font-size:.875rem;border:none;padding-left:10px;padding-right:10px}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]:focus{outline:none}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#fff;color:#202226;width:35px;height:35px;line-height:35px;border:none;display:flex;cursor:pointer;align-items:center}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{color:#777}.config-link[_ngcontent-%COMP%]{color:#f8f9f9;font-size:.7rem;margin-top:20px}']});var J1=N(9774),Ag=N.n(J1);class eM{}class L${}var ls=(()=>(function(n){n.Connecting="connecting",n.Unhealthy="unhealthy",n.Healthy="healthy"}(ls||(ls={})),ls))(),fa=(()=>(function(n){n.UseCustomSettings="updaterUseCustomSettings",n.Channel="updaterChannel",n.Version="updaterVersion",n.ArchiveURL="updaterArchiveURL",n.ChecksumsURL="updaterChecksumsURL"}(fa||(fa={})),fa))();class so{constructor(t,e){this.apiService=t,this.storageService=e}getNodes(){let t=[];return this.apiService.get("visors-summary").pipe(Ce(e=>{e&&e.forEach(l=>{const d=new eM;d.online=l.online,d.localPk=l.overview.local_pk,d.version=l.overview.build_info.version,d.autoconnectTransports=l.public_autoconnect,d.buildTag=l.build_tag?l.build_tag:"",d.rewardsAddress=l.reward_address,d.ip=l.overview&&l.overview.local_ip&&l.overview.local_ip.trim()?l.overview.local_ip:null;const w=this.storageService.getLabelInfo(d.localPk);if(d.label=w&&w.label?w.label:this.storageService.getDefaultLabel(d),!d.online)return d.dmsgServerPk="",d.roundTripPing="",void t.push(d);d.health={servicesHealth:l.health.services_health},d.dmsgServerPk=l.dmsg_stats.server_public_key,d.roundTripPing=this.nsToMs(l.dmsg_stats.round_trip),d.isHypervisor=l.is_hypervisor,t.push(d)});const i=new Map,o=[],s=[];t.forEach(l=>{i.set(l.localPk,l),l.online&&(o.push(l.localPk),s.push(l.ip))}),this.storageService.includeVisibleLocalNodes(o,s);const a=[];return this.storageService.getSavedLocalNodes().forEach(l=>{if(!i.has(l.publicKey)&&!l.hidden){const d=new eM;d.localPk=l.publicKey;const w=this.storageService.getLabelInfo(l.publicKey);d.label=w&&w.label?w.label:this.storageService.getDefaultLabel(d),d.online=!1,d.dmsgServerPk="",d.roundTripPing="",a.push(d)}i.has(l.publicKey)&&!i.get(l.publicKey).online&&l.hidden&&i.delete(l.publicKey)}),t=[],i.forEach(l=>t.push(l)),t=t.concat(a),t}))}nsToMs(t){let e=new(Ag())(t).dividedBy(1e6);return e=e.isLessThan(10)?e.decimalPlaces(2):e.decimalPlaces(0),e.toString(10)}getNode(t){return this.apiService.get(`visors/${t}/summary`).pipe(Ce(e=>{const i=new eM;i.localPk=e.overview.local_pk,i.version=e.overview.build_info.version,i.secondsOnline=Math.floor(Number.parseFloat(e.uptime)),i.minHops=e.min_hops,i.buildTag=e.build_tag,i.skybianBuildVersion=e.skybian_build_version,i.isSymmeticNat=e.overview.is_symmetic_nat,i.publicIp=e.overview.public_ip,i.autoconnectTransports=e.public_autoconnect,i.rewardsAddress=e.reward_address,i.ip=e.overview.local_ip&&e.overview.local_ip.trim()?e.overview.local_ip:null;const o=this.storageService.getLabelInfo(i.localPk);i.label=o&&o.label?o.label:this.storageService.getDefaultLabel(i),i.health={servicesHealth:e.health.services_health},i.transports=[],e.overview.transports&&e.overview.transports.forEach(a=>{i.transports.push({id:a.id,localPk:a.local_pk,remotePk:a.remote_pk,type:a.type,recv:a.log.recv,sent:a.log.sent})}),i.persistentTransports=[],e.persistent_transports&&e.persistent_transports.forEach(a=>{i.persistentTransports.push({pk:a.pk,type:a.type})}),i.routes=[],e.routes&&e.routes.forEach(a=>{i.routes.push({key:a.key,rule:a.rule}),a.rule_summary&&(i.routes[i.routes.length-1].ruleSummary={keepAlive:a.rule_summary.keep_alive,ruleType:a.rule_summary.rule_type,keyRouteId:a.rule_summary.key_route_id},a.rule_summary.app_fields&&a.rule_summary.app_fields.route_descriptor&&(i.routes[i.routes.length-1].appFields={routeDescriptor:{dstPk:a.rule_summary.app_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.app_fields.route_descriptor.dst_port,srcPk:a.rule_summary.app_fields.route_descriptor.src_pk,srcPort:a.rule_summary.app_fields.route_descriptor.src_port}}),a.rule_summary.forward_fields&&(i.routes[i.routes.length-1].forwardFields={nextRid:a.rule_summary.forward_fields.next_rid,nextTid:a.rule_summary.forward_fields.next_tid},a.rule_summary.forward_fields.route_descriptor&&(i.routes[i.routes.length-1].forwardFields.routeDescriptor={dstPk:a.rule_summary.forward_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.forward_fields.route_descriptor.dst_port,srcPk:a.rule_summary.forward_fields.route_descriptor.src_pk,srcPort:a.rule_summary.forward_fields.route_descriptor.src_port})),a.rule_summary.intermediary_forward_fields&&(i.routes[i.routes.length-1].intermediaryForwardFields={nextRid:a.rule_summary.intermediary_forward_fields.next_rid,nextTid:a.rule_summary.intermediary_forward_fields.next_tid}))}),i.apps=[],e.overview.apps&&e.overview.apps.forEach(a=>{i.apps.push({name:a.name,status:a.status,port:a.port,autostart:a.auto_start,detailedStatus:a.detailed_status,args:a.args})});let s=!1;return e.dmsg_stats&&(i.dmsgServerPk=e.dmsg_stats.server_public_key,i.roundTripPing=this.nsToMs(e.dmsg_stats.round_trip),s=!0),s||(i.dmsgServerPk="-",i.roundTripPing="-1"),i}))}setRewardsAddress(t,e){return this.apiService.put(`visors/${t}/reward`,{reward_address:e})}getRewardsAddress(t){return this.apiService.get(`visors/${t}/reward`)}getRuntimeLogs(t){return this.apiService.get(`visors/${t}/runtime-logs`)}deleteRewardsAddress(t){return this.apiService.delete(`visors/${t}/reward`)}reboot(t){return this.apiService.post(`visors/${t}/restart`)}checkIfUpdating(t){return this.apiService.get(`visors/${t}/update/ws/running`)}checkUpdate(t){let e="stable";return e=localStorage.getItem(fa.Channel)||e,this.apiService.get(`visors/${t}/update/available/${e}`)}update(t){const e={channel:"stable"};if(localStorage.getItem(fa.UseCustomSettings)){const o=localStorage.getItem(fa.Channel);o&&(e.channel=o);const s=localStorage.getItem(fa.Version);s&&(e.version=s);const a=localStorage.getItem(fa.ArchiveURL);a&&(e.archive_url=a);const l=localStorage.getItem(fa.ChecksumsURL);l&&(e.checksums_url=l)}return this.apiService.ws(`visors/${t}/update/ws`,e)}}so.\u0275fac=function(t){return new(t||so)(we(wo),we(ni))},so.\u0275prov=Ye({token:so,factory:so.\u0275fac,providedIn:"root"});const E$=["firstInput"];class pa{constructor(t,e,i,o,s){this.dialogRef=t,this.data=e,this.formBuilder=i,this.storageService=o,this.snackbarService=s}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(pa,i)}ngOnInit(){this.form=this.formBuilder.group({label:[this.data.label]})}ngAfterViewInit(){setTimeout(()=>this.firstInput.nativeElement.focus())}save(){const t=this.form.get("label").value.trim();t!==this.data.label?(this.storageService.saveLabel(this.data.id,t,this.data.identifiedElementType),t?this.snackbarService.showDone("edit-label.done"):this.snackbarService.showWarning("edit-label.label-removed-warning"),this.dialogRef.close(!0)):this.dialogRef.close()}}pa.\u0275fac=function(t){return new(t||pa)(F(Nn),F(Ti),F(Cr),F(ni),F(on))},pa.\u0275cmp=qe({type:pa,selectors:[["app-edit-label"]],viewQuery:function(t,e){if(1&t&&ft(E$,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","label","maxlength","66","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x()()(),D(10,"app-button",6),ye("action",function(){return e.save()}),E(11),R(12,"translate"),x()()),2&t&&(M("headline",B(1,5,"labeled-element.edit-label"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,7,"edit-label.label")),c(5),oe(B(12,9,"common.save")))},dependencies:[Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ri,En,xt]});const I$=["cancelButton"],P$=["confirmButton"];function O$(n,t){if(1&n&&(D(0,"div"),E(1),R(2,"translate"),x()),2&n){const e=t.$implicit;c(1),ce(" - ",B(2,1,e)," ")}}function A$(n,t){if(1&n&&(D(0,"div",8),V(1,O$,3,3,"div",9),x()),2&n){const e=z();c(1),M("ngForOf",e.state!==e.confirmationStates.Done?e.data.list:e.doneList)}}function F$(n,t){if(1&n&&(D(0,"div",1),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),ce(" ",B(2,1,e.data.lowerText)," ")}}function R$(n,t){if(1&n){const e=et();D(0,"app-button",10,11),ye("action",function(){return Pe(e),Oe(z().closeModal())}),E(2),R(3,"translate"),x()}if(2&n){const e=z();c(2),ce(" ",B(3,1,e.data.cancelButtonText)," ")}}var cl=(()=>(function(n){n.Asking="Asking",n.Processing="Processing",n.Done="Done"}(cl||(cl={})),cl))();class Jf{constructor(t,e){this.dialogRef=t,this.data=e,this.disableDismiss=!1,this.state=cl.Asking,this.confirmationStates=cl,this.operationAccepted=new ht,this.disableDismiss=!!e.disableDismiss,this.dialogRef.disableClose=this.disableDismiss}ngAfterViewInit(){this.data.cancelButtonText?setTimeout(()=>this.cancelButton.focus()):setTimeout(()=>this.confirmButton.focus())}ngOnDestroy(){this.operationAccepted.complete()}closeModal(){this.dialogRef.close()}sendOperationAcceptedEvent(){this.operationAccepted.emit()}showAsking(t){t&&(this.data=t),this.state=cl.Asking,this.confirmButton.reset(),this.disableDismiss=!1,this.dialogRef.disableClose=this.disableDismiss,this.cancelButton&&this.cancelButton.showEnabled()}showProcessing(){this.state=cl.Processing,this.disableDismiss=!0,this.confirmButton.showLoading(),this.cancelButton&&this.cancelButton.showDisabled()}showDone(t,e,i=null){this.doneTitle=t||this.data.headerText,this.doneText=e,this.doneList=i,this.confirmButton.reset(),setTimeout(()=>this.confirmButton.focus()),this.state=cl.Done,this.dialogRef.disableClose=!1,this.disableDismiss=!1}}Jf.\u0275fac=function(t){return new(t||Jf)(F(Nn),F(Ti))},Jf.\u0275cmp=qe({type:Jf,selectors:[["app-confirmation"]],viewQuery:function(t,e){if(1&t&&(ft(I$,5),ft(P$,5)),2&t){let i;nt(i=it())&&(e.cancelButton=i.first),nt(i=it())&&(e.confirmButton=i.first)}},outputs:{operationAccepted:"operationAccepted"},decls:13,vars:14,consts:[[3,"headline","dialog","disableDismiss"],[1,"text-container"],["class","list-container",4,"ngIf"],["class","text-container",4,"ngIf"],[1,"buttons"],["color","accent",3,"action",4,"ngIf"],["color","primary",3,"action"],["confirmButton",""],[1,"list-container"],[4,"ngFor","ngForOf"],["color","accent",3,"action"],["cancelButton",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),E(3),R(4,"translate"),x(),V(5,A$,2,1,"div",2),V(6,F$,3,3,"div",3),D(7,"div",4),V(8,R$,4,3,"app-button",5),D(9,"app-button",6,7),ye("action",function(){return e.state===e.confirmationStates.Asking?e.sendOperationAcceptedEvent():e.closeModal()}),E(11),R(12,"translate"),x()()()),2&t&&(M("headline",B(1,8,e.state!==e.confirmationStates.Done?e.data.headerText:e.doneTitle))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(3),ce(" ",B(4,10,e.state!==e.confirmationStates.Done?e.data.text:e.doneText)," "),c(2),M("ngIf",e.data.list&&e.state!==e.confirmationStates.Done||e.doneList&&e.state===e.confirmationStates.Done),c(1),M("ngIf",e.data.lowerText&&e.state!==e.confirmationStates.Done),c(2),M("ngIf",e.data.cancelButtonText&&e.state!==e.confirmationStates.Done),c(3),ce(" ",B(12,12,e.state!==e.confirmationStates.Done?e.data.confirmButtonText:"confirmation.close")," "))},dependencies:[bi,It,ri,En,xt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]});class Wt{static createConfirmationDialog(t,e){const i={text:e,headerText:"confirmation.header-text",confirmButtonText:"confirmation.confirm-button",cancelButtonText:"confirmation.cancel-button",disableDismiss:!1},o=new Tn;return o.data=i,o.autoFocus=!1,o.width=Rt.smallModalWidth,t.open(Jf,o)}static checkIfTagIsUpdatable(t){return!(null==t||t.toUpperCase()==="Windows".toUpperCase()||t.toUpperCase()==="Win".toUpperCase()||t.toUpperCase()==="Mac".toUpperCase()||t.toUpperCase()==="Macos".toUpperCase()||t.toUpperCase()==="Mac OS".toUpperCase()||t.toUpperCase()==="Darwin".toUpperCase())}static checkIfTagCanOpenterminal(t){return!(null==t||t.toUpperCase()==="Windows".toUpperCase()||t.toUpperCase()==="Win".toUpperCase())}static checkIfIpValidOrEmpty(t){if(!t)return!0;const e=t.split(".");if(4!==e.length)return!1;for(const i of e){const o=Number.parseInt(i,10);if(isNaN(o)||o+""!==i||o<0||o>255)return!1}return!0}}function N$(n,t){if(1&n&&(D(0,"mat-icon",6),E(1),x()),2&n){const e=z().$implicit;M("inline",!0),c(1),oe(e.icon)}}function Y$(n,t){if(1&n){const e=et();D(0,"div",2)(1,"button",3),ye("click",function(){const s=Pe(e).index;return Oe(z().closePopup(s+1))}),D(2,"div",4),V(3,N$,2,2,"mat-icon",5),D(4,"span"),E(5),R(6,"translate"),x()()()()}if(2&n){const e=t.$implicit;c(3),M("ngIf",e.icon),c(2),oe(B(6,2,e.label))}}class Hi{constructor(t,e){this.data=t,this.dialogRef=e}static openDialog(t,e,i){const o=new Tn;return o.data={options:e,title:i},o.autoFocus=!1,o.width=Rt.smallModalWidth,t.open(Hi,o)}closePopup(t){this.dialogRef.close(t)}}Hi.\u0275fac=function(t){return new(t||Hi)(F(Ti),F(Nn))},Hi.\u0275cmp=qe({type:Hi,selectors:[["app-select-option"]],decls:3,vars:6,consts:[[3,"headline","dialog","includeVerticalMargins"],["class","options-list-button-container",4,"ngFor","ngForOf"],[1,"options-list-button-container"],["mat-button","",1,"grey-button-background",3,"click"],[1,"internal-container"],["class","icon",3,"inline",4,"ngIf"],[1,"icon",3,"inline"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),V(2,Y$,7,4,"div",1),x()),2&t&&(M("headline",B(1,4,e.data.title))("dialog",e.dialogRef)("includeVerticalMargins",!1),c(2),M("ngForOf",e.data.options))},dependencies:[bi,It,$r,yn,En,xt],styles:[".icon[_ngcontent-%COMP%]{font-size:14px;width:14px;line-height:1}.grey-button-background[_ngcontent-%COMP%]{justify-content:left!important;min-height:45px}"]});var Xn=(()=>(function(n){n.TextInput="TextInput",n.Select="Select"}(Xn||(Xn={})),Xn))();class As{constructor(t){this.dom=t}copy(t){let e=null,i=!1;try{e=this.dom.createElement("textarea"),e.style.height="0px",e.style.left="-100px",e.style.opacity="0",e.style.position="fixed",e.style.top="-100px",e.style.width="0px",this.dom.body.appendChild(e),e.value=t,e.select(),this.dom.execCommand("copy"),i=!0}finally{e&&e.parentNode&&e.parentNode.removeChild(e)}return i}}function V$(n,t){if(1&n&&(Ue(0),D(1,"span",2),E(2),x(),We()),2&n){const e=z();c(2),oe(e.shortText)}}function j$(n,t){if(1&n&&(Ue(0),D(1,"span"),E(2),x(),We()),2&n){const e=z();c(2),oe(e.text)}}As.\u0275fac=function(t){return new(t||As)(we(Dt))},As.\u0275prov=Ye({token:As,factory:As.\u0275fac});const z$=function(){return{"tooltip-word-break":!0}};class mu{constructor(){this.short=!1,this.showTooltip=!0,this.shortTextLength=5}get shortText(){if(this.text.length>2*this.shortTextLength){const t=this.text.length;return`${this.text.slice(0,this.shortTextLength)}...${this.text.slice(t-this.shortTextLength,t)}`}return this.text}}function U$(n,t){if(1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),ce(" ",B(2,1,e.labelComponents.prefix)," ")}}function W$(n,t){if(1&n&&(D(0,"span"),E(1),x()),2&n){const e=z();c(1),ce(" ",e.labelComponents.prefixSeparator," ")}}function $$(n,t){if(1&n&&(D(0,"span"),E(1),x()),2&n){const e=z();c(1),ce(" ",e.labelComponents.label," ")}}function G$(n,t){if(1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),ce(" ",B(2,1,e.labelComponents.translatableLabel)," ")}}mu.\u0275fac=function(t){return new(t||mu)},mu.\u0275cmp=qe({type:mu,selectors:[["app-truncated-text"]],inputs:{short:"short",showTooltip:"showTooltip",text:"text",shortTextLength:"shortTextLength"},decls:3,vars:5,consts:[[1,"wrapper",3,"matTooltip","matTooltipClass"],[4,"ngIf"],[1,"nowrap"]],template:function(t,e){1&t&&(D(0,"div",0),V(1,V$,3,1,"ng-container",1),V(2,j$,3,1,"ng-container",1),x()),2&t&&(M("matTooltip",e.short&&e.showTooltip?e.text:"")("matTooltipClass",Un(4,z$)),c(1),M("ngIf",e.short),c(1),M("ngIf",!e.short))},dependencies:[It,vi],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.nowrap[_ngcontent-%COMP%]{white-space:nowrap}.wrapper[_ngcontent-%COMP%]{display:inline}']});const q$=function(n){return{text:n}},K$=function(){return{"tooltip-word-break":!0}};class Z${constructor(){this.prefix="",this.prefixSeparator="",this.label="",this.translatableLabel=""}}class Ar{constructor(t,e,i,o,s){this.dialog=t,this.storageService=e,this.clipboardService=i,this.snackbarService=o,this.router=s,this.short=!1,this.shortTextLength=5,this.elementType=Mr.Node,this.labelEdited=new ht}set id(t){this.idInternal=t,this.labelComponents=Ar.getLabelComponents(this.storageService,this.id)}get id(){return this.idInternal?this.idInternal:""}static getLabelComponents(t,e){let i;i=!!t.getSavedVisibleLocalNodes().has(e);const o=new Z$;return o.labelInfo=t.getLabelInfo(e),o.labelInfo&&o.labelInfo.label?(i&&(o.prefix="labeled-element.local-element",o.prefixSeparator=" - "),o.label=o.labelInfo.label):t.getSavedVisibleLocalNodes().has(e)?o.prefix="labeled-element.unnamed-local-visor":o.translatableLabel="labeled-element.unnamed-element",o}static getCompleteLabel(t,e,i){const o=Ar.getLabelComponents(t,i);return(o.prefix?e.instant(o.prefix):"")+o.prefixSeparator+o.label+(o.translatableLabel?e.instant(o.translatableLabel):"")}ngOnDestroy(){this.labelEdited.complete()}processClick(){const t=[{icon:"filter_none",label:"labeled-element.copy"},{icon:"edit",label:"labeled-element.edit-label"}];this.labelComponents.labelInfo&&t.push({icon:"close",label:"labeled-element.remove-label"}),t.push({icon:"settings",label:"labeled-element.go-to-settings"}),Hi.openDialog(this.dialog,t,"common.options").afterClosed().subscribe(e=>{if(1===e)this.clipboardService.copy(this.id)&&this.snackbarService.showDone("copy.copied");else if(e>2)if(3===e&&this.labelComponents.labelInfo){const i=Wt.createConfirmationDialog(this.dialog,"labeled-element.remove-label-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.storageService.saveLabel(this.id,null,this.elementType),this.snackbarService.showDone("edit-label.label-removed-warning"),this.labelEdited.emit()})}else this.router.navigate(["/settings"]);else if(2===e){let i=this.labelComponents.labelInfo;i||(i={id:this.id,label:"",identifiedElementType:this.elementType}),pa.openDialog(this.dialog,i).afterClosed().subscribe(o=>{o&&this.labelEdited.emit()})}})}}Ar.\u0275fac=function(t){return new(t||Ar)(F(Ln),F(ni),F(As),F(on),F(Qt))},Ar.\u0275cmp=qe({type:Ar,selectors:[["app-labeled-element-text"]],inputs:{id:"id",short:"short",shortTextLength:"shortTextLength",elementType:"elementType"},outputs:{labelEdited:"labelEdited"},decls:12,vars:17,consts:[[1,"wrapper","highlight-internal-icon",3,"matTooltip","matTooltipClass","click"],[1,"label"],[4,"ngIf"],[3,"short","showTooltip","shortTextLength","text"],[3,"inline"]],template:function(t,e){1&t&&(D(0,"div",0),ye("click",function(o){return o.stopPropagation(),o.preventDefault(),e.processClick()}),R(1,"translate"),D(2,"span",1),V(3,U$,3,3,"span",2),V(4,W$,2,1,"span",2),V(5,$$,2,1,"span",2),V(6,G$,3,3,"span",2),x(),xe(7,"br")(8,"app-truncated-text",3),E(9," \xa0"),D(10,"mat-icon",4),E(11,"settings"),x()()),2&t&&(M("matTooltip",Ct(1,11,e.short?"labeled-element.tooltip-with-text":"labeled-element.tooltip",Be(14,q$,e.id)))("matTooltipClass",Un(16,K$)),c(3),M("ngIf",e.labelComponents&&e.labelComponents.prefix),c(1),M("ngIf",e.labelComponents&&e.labelComponents.prefixSeparator),c(1),M("ngIf",e.labelComponents&&e.labelComponents.label),c(1),M("ngIf",e.labelComponents&&e.labelComponents.translatableLabel),c(2),M("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.id),c(2),M("inline",!0))},dependencies:[It,yn,vi,mu,xt],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.8rem;-webkit-user-select:none;user-select:none}.label[_ngcontent-%COMP%]{opacity:.7;font-size:.8rem}']});class Yn{constructor(t,e,i,o){this.properties=t,this.label=e,this.sortingMode=i,this.labelProperties=o}get id(){return this.properties.join("")}}var Jt=(()=>(function(n){n.Text="Text",n.Number="Number",n.NumberReversed="NumberReversed",n.Boolean="Boolean"}(Jt||(Jt={})),Jt))();class _u{constructor(t,e,i,o,s,a){this.dialog=t,this.translateService=e,this.storageService=i,this.sortReverse=!1,this.sortByLabel=!1,this.tieBreakerColumnIndex=null,this.columnStorageKeyPrefix="col_",this.orderStorageKeyPrefix="order_",this.labelStorageKeyPrefix="label_",this.dataUpdatedSubject=new X,this.sortableColumns=o,this.id=a,this.defaultColumnIndex=s,this.sortBy=o[s];const l=this.storageService.getDataForHv(this.columnStorageKeyPrefix+a);if(l){const d=o.find(w=>w.id===l);d&&(this.sortBy=d)}this.sortReverse="true"===this.storageService.getDataForHv(this.orderStorageKeyPrefix+a),this.sortByLabel="true"===this.storageService.getDataForHv(this.labelStorageKeyPrefix+a)}get sortingArrow(){return this.sortReverse?"keyboard_arrow_up":"keyboard_arrow_down"}get currentSortingColumn(){return this.sortBy}get sortingInReverseOrder(){return this.sortReverse}get dataSorted(){return this.dataUpdatedSubject.asObservable()}get currentlySortingByLabel(){return this.sortByLabel}dispose(){this.dataUpdatedSubject.complete()}setTieBreakerColumnIndex(t){this.tieBreakerColumnIndex=t}setData(t){this.data=t,this.sortData()}changeSortingOrder(t){if(this.sortBy===t||t.labelProperties)if(t.labelProperties){const e=[{label:this.translateService.instant("tables.sort-by-value")},{label:this.translateService.instant("tables.sort-by-value")+" "+this.translateService.instant("tables.inverted-order")},{label:this.translateService.instant("tables.sort-by-label")},{label:this.translateService.instant("tables.sort-by-label")+" "+this.translateService.instant("tables.inverted-order")}];Hi.openDialog(this.dialog,e,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(t,i>2,i%2==0)})}else this.sortReverse=!this.sortReverse,this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.sortData();else this.changeSortingParams(t,!1,!1)}changeSortingParams(t,e,i){this.sortBy=t,this.sortByLabel=e,this.sortReverse=i,this.storageService.setDataForHv(this.columnStorageKeyPrefix+this.id,t.id),this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.storageService.setDataForHv(this.labelStorageKeyPrefix+this.id,String(this.sortByLabel)),this.sortData()}openSortingOrderModal(){const t=[],e=[];this.sortableColumns.forEach(i=>{const o=this.translateService.instant(i.label);t.push({label:o}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!1}),t.push({label:o+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!1}),i.labelProperties&&(t.push({label:o+" "+this.translateService.instant("tables.label")}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!0}),t.push({label:o+" "+this.translateService.instant("tables.label")+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!0}))}),Hi.openDialog(this.dialog,t,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(e[i-1].sortBy,e[i-1].sortByLabel,e[i-1].sortReverse)})}sortData(){this.data&&(this.data.sort((t,e)=>{let i=this.getSortResponse(this.sortBy,t,e,!0);return 0===i&&null!==this.tieBreakerColumnIndex&&this.sortableColumns[this.tieBreakerColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.tieBreakerColumnIndex],t,e,!1)),0===i&&this.sortableColumns[this.defaultColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.defaultColumnIndex],t,e,!1)),i}),this.dataUpdatedSubject.next())}getSortResponse(t,e,i,o){let a=e,l=i;(this.sortByLabel&&o&&t.labelProperties?t.labelProperties:t.properties).forEach(P=>{a=a[P],l=l[P]});const d=this.sortByLabel&&o?Jt.Text:t.sortingMode;let w=0;return d===Jt.Text?w=this.sortReverse?l.localeCompare(a):a.localeCompare(l):d===Jt.NumberReversed?w=this.sortReverse?a-l:l-a:d===Jt.Number?w=this.sortReverse?l-a:a-l:d===Jt.Boolean&&(a&&!l?w=-1:!a&&l&&(w=1),w*=this.sortReverse?-1:1),w}}class X${constructor(t=!1,e,i=!0,o){this._multiple=t,this._emitChanges=i,this.compareWith=o,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new X,e&&e.length&&(t?e.forEach(s=>this._markSelected(s)):this._markSelected(e[0]),this._selectedToEmit.length=0)}get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...t){this._verifyValueAssignment(t);const e=this.selected,i=new Set(t);t.forEach(s=>this._markSelected(s)),e.filter(s=>!i.has(s)).forEach(s=>this._unmarkSelected(s));const o=this._hasQueuedChanges();return this._emitChangeEvent(),o}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();const e=this._hasQueuedChanges();return t&&this._emitChangeEvent(),e}isSelected(t){if(this.compareWith){for(const e of this._selection)if(this.compareWith(e,t))return!0;return!1}return this._selection.has(t)}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}}const Q$=["trigger"],J$=["panel"];function eG(n,t){if(1&n&&(D(0,"span",10),E(1),x()),2&n){const e=z();c(1),oe(e.placeholder)}}function tG(n,t){if(1&n&&(D(0,"span",14),E(1),x()),2&n){const e=z(2);c(1),oe(e.triggerValue)}}function nG(n,t){1&n&&vn(0,0,["*ngSwitchCase","true"])}function iG(n,t){1&n&&(D(0,"span",11),V(1,tG,2,1,"span",12),V(2,nG,1,0,"ng-content",13),x()),2&n&&(M("ngSwitch",!!z().customTrigger),c(2),M("ngSwitchCase",!0))}function rG(n,t){if(1&n){const e=et();ms(),Sl(),D(0,"div",15,16),ye("@transformPanel.done",function(o){return Pe(e),Oe(z()._panelDoneAnimatingStream.next(o.toState))})("keydown",function(o){return Pe(e),Oe(z()._handleKeydown(o))}),vn(2,1),x()}if(2&n){const e=z();(function bC(n,t,e){ts(fo,Ms,vd(ze(),n,t,e),!0)})("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),M("ngClass",e.panelClass)("@transformPanel","showing"),Ut("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const oG=[[["mat-select-trigger"]],"*"],sG=["mat-select-trigger","*"],aG={transformPanelWrap:oa("transformPanelWrap",[Er("* => void",Wy("@transformPanel",[Uy()],{optional:!0}))]),transformPanel:oa("transformPanel",[go("void",Zn({opacity:0,transform:"scale(1, 0.8)"})),Er("void => showing",Wr("120ms cubic-bezier(0, 0, 0.2, 1)",Zn({opacity:1,transform:"scale(1, 1)"}))),Er("* => void",Wr("100ms linear",Zn({opacity:0})))])};let CI=0;const kI=new He("mat-select-scroll-strategy"),cG=new He("MAT_SELECT_CONFIG"),dG={provide:kI,deps:[ro],useFactory:function lG(n){return()=>n.scrollStrategies.reposition()}},SI=new He("MatSelectTrigger");class uG{constructor(t,e){this.source=t,this.value=e}}const hG=Ff(yL(iu(ML(class{constructor(n,t,e,i,o){this._elementRef=n,this._defaultErrorStateMatcher=t,this._parentForm=e,this._parentFormGroup=i,this.ngControl=o,this.stateChanges=new X}}))));let fG=(()=>{class n extends hG{constructor(e,i,o,s,a,l,d,w,P,Y,q,te,pe,ke){super(a,s,d,w,Y),this._viewportRuler=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=l,this._parentFormField=P,this._liveAnnouncer=pe,this._defaultOptions=ke,this._panelOpen=!1,this._compareWith=(Ie,Re)=>Ie===Re,this._uid="mat-select-"+CI++,this._triggerAriaLabelledBy=null,this._destroy=new X,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+CI++,this._panelDoneAnimatingStream=new X,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.optionSelectionChanges=rf(()=>{const Ie=this.options;return Ie?Ie.changes.pipe(yo(Ie),br(()=>vt(...Ie.map(Re=>Re.onSelectionChange)))):this._ngZone.onStable.pipe(ti(1),br(()=>this.optionSelectionChanges))}),this.openedChange=new ht,this._openedStream=this.openedChange.pipe(Si(Ie=>Ie),Ce(()=>{})),this._closedStream=this.openedChange.pipe(Si(Ie=>!Ie),Ce(()=>{})),this.selectionChange=new ht,this.valueChange=new ht,this.ngControl&&(this.ngControl.valueAccessor=this),null!=ke?.typeaheadDebounceInterval&&(this._typeaheadDebounceInterval=ke.typeaheadDebounceInterval),this._scrollStrategyFactory=te,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(q)||0,this.id=this.id}get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(Vt.required)??!1}set required(e){this._required=hn(e),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=hn(e)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(e){this._disableOptionCentering=hn(e)}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(e){this._typeaheadDebounceInterval=Mo(e)}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}ngOnInit(){this._selectionModel=new X$(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(d1(),Cn(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe(Cn(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(yo(null),Cn(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const o=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?o.setAttribute("aria-labelledby",e):o.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,o=40===i||38===i||37===i||39===i,s=13===i||32===i,a=this._keyManager;if(!a.isTyping()&&s&&!Ts(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const l=this.selected;a.onKeydown(e);const d=this.selected;d&&l!==d&&this._liveAnnouncer.announce(d.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,s=40===o||38===o,a=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(a||13!==o&&32!==o||!i.activeItem||Ts(e))if(!a&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const l=this.options.some(d=>!d.disabled&&!d.selected);this.options.forEach(d=>{d.disabled||(l?d.select():d.deselect())})}else{const l=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==l&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(ti(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this._selectionModel.selected.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(o=>{if(this._selectionModel.isSelected(o))return!1;try{return null!=o.value&&this._compareWith(o.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_initKeyManager(){this._keyManager=new n9(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=vt(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(Cn(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),vt(...this.options.map(i=>i._stateChanges)).pipe(Cn(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(o!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),o!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,o)=>this.sortComparator?this.sortComparator(i,o,e):e.indexOf(i)-e.indexOf(o)),this.stateChanges.next()}}_propagateChanges(e){let i=null;i=this.multiple?this.selected.map(o=>o.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){this._keyManager&&(this.empty?this._keyManager.setFirstItemActive():this._keyManager.setActiveItem(this._selectionModel.selected[0]))}_canOpen(){return!this._panelOpen&&!this.disabled&&this.options?.length>0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}}return n.\u0275fac=function(e){return new(e||n)(F(Jl),F(ui),F(pt),F(x1),F(bt),F(Or,8),F(Kf,8),F(ii,8),F(Q1,8),F(Os,10),Na("tabindex"),F(kI),F(b1),F(cG,8))},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&(ft(Q$,5),ft(J$,5),ft(Q2,5)),2&e){let o;nt(o=it())&&(i.trigger=o.first),nt(o=it())&&(i.panel=o.first),nt(o=it())&&(i._overlayDir=o.first)}},inputs:{userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[dt,qi]}),n})(),pG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["mat-select-trigger"]],features:[Zt([{provide:SI,useExisting:n}])]}),n})(),ep=(()=>{class n extends fG{constructor(){super(...arguments),this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}]}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe(Cn(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(),this._changeDetectorRef.detectChanges())})}ngAfterViewInit(){this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin())}open(){this._overlayWidth=this._getOverlayWidth(),super.open(),this.stateChanges.next()}close(){super.close(),this.stateChanges.next()}_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,s=function q9(n,t,e){if(e.length){let i=t.toArray(),o=e.toArray(),s=0;for(let a=0;ae+i?Math.max(0,n-i+t):e}(a.offsetTop,a.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new uG(this,e)}_getOverlayWidth(){return(this._preferredOverlayOrigin instanceof a1?this._preferredOverlayOrigin.elementRef:this._preferredOverlayOrigin||this._elementRef).nativeElement.getBoundingClientRect().width}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275cmp=qe({type:n,selectors:[["mat-select"]],contentQueries:function(e,i,o){if(1&e&&(Ji(o,SI,5),Ji(o,ru,5),Ji(o,LL,5)),2&e){let s;nt(s=it())&&(i.customTrigger=s.first),nt(s=it())&&(i.options=s),nt(s=it())&&(i.optionGroups=s)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(e,i){1&e&&ye("keydown",function(s){return i._handleKeydown(s)})("focus",function(){return i._onFocus()})("blur",function(){return i._onBlur()}),2&e&&(Ut("id",i.id)("tabindex",i.tabIndex)("aria-controls",i.panelOpen?i.id+"-panel":null)("aria-expanded",i.panelOpen)("aria-label",i.ariaLabel||null)("aria-required",i.required.toString())("aria-disabled",i.disabled.toString())("aria-invalid",i.errorState)("aria-activedescendant",i._getAriaActiveDescendant()),Gt("mat-mdc-select-disabled",i.disabled)("mat-mdc-select-invalid",i.errorState)("mat-mdc-select-required",i.required)("mat-mdc-select-empty",i.empty)("mat-mdc-select-multiple",i.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matSelect"],features:[Zt([{provide:X1,useExisting:n},{provide:TL,useExisting:n}]),dt],ngContentSelectors:sG,decls:11,vars:11,consts:[["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],[1,"mat-mdc-select-value",3,"ngSwitch"],["class","mat-mdc-select-placeholder mat-mdc-select-min-line",4,"ngSwitchCase"],["class","mat-mdc-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","backdropClick","attach","detach"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text",3,"ngSwitch"],["class","mat-mdc-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(e,i){if(1&e&&(gr(oG),D(0,"div",0,1),ye("click",function(){return i.toggle()}),D(3,"div",2),V(4,eG,2,1,"span",3),V(5,iG,3,2,"span",4),x(),D(6,"div",5)(7,"div",6),ms(),D(8,"svg",7),xe(9,"path",8),x()()()(),V(10,rG,3,9,"ng-template",9),ye("backdropClick",function(){return i.close()})("attach",function(){return i._onAttached()})("detach",function(){return i.close()})),2&e){const o=ci(1);Ut("aria-owns",i.panelOpen?i.id+"-panel":null),c(3),M("ngSwitch",i.empty),Ut("id",i._valueId),c(1),M("ngSwitchCase",!0),c(1),M("ngSwitchCase",!1),c(5),M("cdkConnectedOverlayPanelClass",i._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",i._scrollStrategy)("cdkConnectedOverlayOrigin",i._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",i.panelOpen)("cdkConnectedOverlayPositions",i._positions)("cdkConnectedOverlayWidth",i._overlayWidth)}},dependencies:[Rn,$h,Iy,RS,Q2,a1],styles:['.mdc-menu-surface{display:none;position:absolute;box-sizing:border-box;max-width:calc(100vw - 32px);max-width:var(--mdc-menu-max-width, calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:var(--mdc-menu-max-height, calc(100vh - 32px));margin:0;padding:0;transform:scale(1);transform-origin:top left;opacity:0;overflow:auto;will-change:transform,opacity;z-index:8;border-radius:4px;border-radius:var(--mdc-shape-medium, 4px);transform-origin-left:top left;transform-origin-right:top right}.mdc-menu-surface:focus{outline:none}.mdc-menu-surface--animating-open{display:inline-block;transform:scale(0.8);opacity:0}.mdc-menu-surface--open{display:inline-block;transform:scale(1);opacity:1}.mdc-menu-surface--animating-closed{display:inline-block;opacity:0}[dir=rtl] .mdc-menu-surface,.mdc-menu-surface[dir=rtl]{transform-origin-left:top right;transform-origin-right:top left}.mdc-menu-surface--anchor{position:relative;overflow:visible}.mdc-menu-surface--fixed{position:fixed}.mdc-menu-surface--fullwidth{width:100%}.mat-mdc-select{display:inline-block;width:100%;outline:none}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}.mdc-menu-surface.mat-mdc-select-panel{width:100%;max-height:275px;position:static;outline:0;margin:0;padding:8px 0;list-style-type:none}.mdc-menu-surface.mat-mdc-select-panel:focus{outline:none}.cdk-high-contrast-active .mdc-menu-surface.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) .mdc-menu-surface.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above .mdc-menu-surface.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}'],encapsulation:2,data:{animation:[aG.transformPanel]},changeDetection:0}),n})(),mG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[dG],imports:[ia,eu,EL,Vn,Tf,Og,EL,Vn]}),n})();function _G(n,t){if(1&n&&xe(0,"input",9),2&n){const e=z().$implicit;M("formControlName",e.keyNameInFiltersObject)("maxlength",e.maxlength)}}function gG(n,t){if(1&n&&(D(0,"div",14),xe(1,"div",15),x()),2&n){const e=z().$implicit,i=z(2).$implicit;di("background-image: url('"+i.printableLabelGeneralSettings.defaultImage+"'); width: "+i.printableLabelGeneralSettings.imageWidth+"px; height: "+i.printableLabelGeneralSettings.imageHeight+"px;"),c(1),di("background-image: url('"+e.image+"');")}}function bG(n,t){if(1&n&&(D(0,"mat-option",12),V(1,gG,2,4,"div",13),E(2),R(3,"translate"),x()),2&n){const e=t.$implicit,i=z(2).$implicit;M("value",e.value),c(1),M("ngIf",i.printableLabelGeneralSettings&&e.image),c(1),ce(" ",B(3,3,e.label)," ")}}function vG(n,t){if(1&n&&(D(0,"mat-select",10),V(1,bG,4,5,"mat-option",11),x()),2&n){const e=z().$implicit;M("formControlName",e.keyNameInFiltersObject),c(1),M("ngForOf",e.printableLabelsForValues)}}function yG(n,t){if(1&n&&(Ue(0),D(1,"mat-form-field")(2,"div",5)(3,"label",6),E(4),R(5,"translate"),x(),V(6,_G,1,2,"input",7),V(7,vG,2,2,"mat-select",8),x()(),We()),2&n){const e=t.$implicit,i=z();c(4),oe(B(5,3,e.filterName)),c(2),M("ngIf",e.type===i.filterFieldTypes.TextInput),c(1),M("ngIf",e.type===i.filterFieldTypes.Select)}}class cc{constructor(t,e,i){this.data=t,this.dialogRef=e,this.formBuilder=i,this.filterFieldTypes=Xn}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(cc,i)}ngOnInit(){const t={};this.data.filterPropertiesList.forEach(e=>{t[e.keyNameInFiltersObject]=[this.data.currentFilters[e.keyNameInFiltersObject]]}),this.form=this.formBuilder.group(t)}apply(){const t={};this.data.filterPropertiesList.forEach(e=>{t[e.keyNameInFiltersObject]=this.form.get(e.keyNameInFiltersObject).value.trim()}),this.dialogRef.close(t)}}cc.\u0275fac=function(t){return new(t||cc)(F(Ti),F(Nn),F(Cr))},cc.\u0275cmp=qe({type:cc,selectors:[["app-filters-selection"]],decls:8,vars:9,consts:[[3,"headline","dialog"],[3,"formGroup"],[4,"ngFor","ngForOf"],["color","primary",1,"float-right",3,"action"],["button",""],[1,"field-container"],["for","remoteKey",1,"field-label"],["matInput","",3,"formControlName","maxlength",4,"ngIf"],[3,"formControlName",4,"ngIf"],["matInput","",3,"formControlName","maxlength"],[3,"formControlName"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["class","image-container",3,"style",4,"ngIf"],[1,"image-container"],[1,"image"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1),V(3,yG,8,5,"ng-container",2),x(),D(4,"app-button",3,4),ye("action",function(){return e.apply()}),E(6),R(7,"translate"),x()()),2&t&&(M("headline",B(1,5,"filters.filter-action"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(1),M("ngForOf",e.data.filterPropertiesList),c(3),ce(" ",B(7,7,"common.ok")," "))},dependencies:[bi,It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ep,ru,ri,En,xt],styles:[".image-container[_ngcontent-%COMP%]{display:inline-block;background-size:contain;margin-right:5px}.image-container[_ngcontent-%COMP%] .image[_ngcontent-%COMP%]{background-size:contain;width:100%;height:100%}"]});class gu{constructor(t,e,i,o,s){this.dialog=t,this.route=e,this.router=i,this.currentFiltersTextsInternal=[],this.dataUpdatedSubject=new X,this.filterPropertiesList=o,this.currentFilters={},this.filterPropertiesList.forEach(a=>{a.keyNameInFiltersObject=s+"_"+a.keyNameInElementsArray,this.currentFilters[a.keyNameInFiltersObject]=""}),this.navigationsSubscription=this.route.queryParamMap.subscribe(a=>{Object.keys(this.currentFilters).forEach(l=>{a.has(l)&&(this.currentFilters[l]=a.get(l))}),this.currentUrlQueryParamsInternal={},a.keys.forEach(l=>{this.currentUrlQueryParamsInternal[l]=a.get(l)}),this.filter()})}get currentFiltersTexts(){return this.currentFiltersTextsInternal}get currentUrlQueryParams(){return this.currentUrlQueryParamsInternal}get dataFiltered(){return this.dataUpdatedSubject.asObservable()}dispose(){this.dataUpdatedSubject.complete(),this.navigationsSubscription.unsubscribe()}setData(t){this.data=t,this.filter()}removeFilters(){const t=Wt.createConfirmationDialog(this.dialog,"filters.remove-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.router.navigate([],{queryParams:{}})})}changeFilters(){cc.openDialog(this.dialog,{filterPropertiesList:this.filterPropertiesList,currentFilters:this.currentFilters}).afterClosed().subscribe(e=>{e&&this.router.navigate([],{queryParams:e})})}filter(){if(this.data){let t,e=!1;Object.keys(this.currentFilters).forEach(i=>{this.currentFilters[i]&&(e=!0)}),e?(t=function B$(n,t,e){if(n){const i=[];return Object.keys(t).forEach(s=>{if(t[s])for(const a of e)if(a.keyNameInFiltersObject===s){i.push(a);break}}),n.filter(s=>{let a=!0;return i.forEach(l=>{const d=String(s[l.keyNameInElementsArray]).toLowerCase().includes(t[l.keyNameInFiltersObject].toLowerCase()),w=l.secondaryKeyNameInElementsArray&&String(s[l.secondaryKeyNameInElementsArray]).toLowerCase().includes(t[l.keyNameInFiltersObject].toLowerCase());!d&&!w&&(a=!1)}),a})}return null}(this.data,this.currentFilters,this.filterPropertiesList),this.updateCurrentFilters()):(t=this.data,this.updateCurrentFilters()),this.dataUpdatedSubject.next(t)}}updateCurrentFilters(){this.currentFiltersTextsInternal=function H$(n,t){const e=[];return t.forEach(i=>{if(n[i.keyNameInFiltersObject]){let o,s;i.printableLabelsForValues&&i.printableLabelsForValues.forEach(a=>{a.value===n[i.keyNameInFiltersObject]&&(s=a.label)}),s||(o=n[i.keyNameInFiltersObject]),e.push({filterName:i.filterName,translatableValue:s,value:o})}}),e}(this.currentFilters,this.filterPropertiesList)}}function MG(n,t){if(1&n){const e=et();D(0,"div",5)(1,"div",6)(2,"div",7),E(3),x(),D(4,"div",8),E(5),x()(),D(6,"div",9)(7,"app-button",10),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).openTerminal(s.key))}),E(8),R(9,"translate"),x()()()}if(2&n){const e=t.$implicit;c(3),oe(e.label),c(2),oe(e.version),c(3),ce(" ",B(9,3,"update-all.update-button")," ")}}function wG(n,t){if(1&n&&(Ue(0),D(1,"div",2),E(2),R(3,"translate"),x(),D(4,"div",3),V(5,MG,10,5,"div",4),x(),We()),2&n){const e=z();c(2),ce(" ",B(3,2,"update-all.updatable-list-text")," "),c(3),M("ngForOf",e.updatableNodes)}}function xG(n,t){if(1&n&&(D(0,"div",8),E(1),x()),2&n){const e=z().$implicit;c(1),oe(e.tag)}}function CG(n,t){if(1&n&&(D(0,"div",5)(1,"div",6)(2,"div",7),E(3),x(),D(4,"div",8),E(5),x(),V(6,xG,2,1,"div",11),x()()),2&n){const e=t.$implicit;c(3),oe(e.label),c(2),oe(e.version),c(1),M("ngIf",e.tag)}}function kG(n,t){if(1&n&&(Ue(0),D(1,"div",2),E(2),R(3,"translate"),x(),D(4,"div",3),V(5,CG,7,3,"div",4),x(),We()),2&n){const e=z();c(2),ce(" ",B(3,2,"update-all.non-updatable-list-text")," "),c(3),M("ngForOf",e.nonUpdatableNodes)}}class dc{constructor(t,e){this.dialogRef=t,this.updatableNodes=e[0],this.nonUpdatableNodes=e[1]}static openDialog(t,e,i){const o=new Tn;return o.data=[e,i],o.autoFocus=!1,o.width=Rt.smallModalWidth,t.open(dc,o)}openTerminal(t){const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+t+"?commands=update","_blank","noopener noreferrer")}}dc.\u0275fac=function(t){return new(t||dc)(F(Nn),F(Ti))},dc.\u0275cmp=qe({type:dc,selectors:[["app-update-all"]],decls:4,vars:6,consts:[[3,"headline","dialog"],[4,"ngIf"],[1,"text-container"],[1,"list-container"],["class","list-element",4,"ngFor","ngForOf"],[1,"list-element"],[1,"left-part"],[1,"name"],[1,"version"],[1,"right-part"],["color","primary",3,"click"],["class","version",4,"ngIf"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),V(2,wG,6,4,"ng-container",1),V(3,kG,6,4,"ng-container",1),x()),2&t&&(M("headline",B(1,4,"update-all.title"))("dialog",e.dialogRef),c(2),M("ngIf",e.updatableNodes&&e.updatableNodes.length>0),c(1),M("ngIf",e.nonUpdatableNodes&&e.nonUpdatableNodes.length>0))},dependencies:[bi,It,ri,En,xt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex;margin-bottom:10px}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1;align-self:center;margin-right:10px;min-width:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 575px){.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:.7rem}}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:.7rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-part[_ngcontent-%COMP%]{flex-basis:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{color:#777}"]});const SG=["input"],DG=["label"],TG=["*"],LG=new He("mat-checkbox-default-options",{providedIn:"root",factory:DI});function DI(){return{color:"accent",clickAction:"check-indeterminate"}}const EG={provide:as,useExisting:an(()=>ma),multi:!0};class IG{}let PG=0;const TI=DI(),OG=yL(Af(Ff(iu(class{constructor(n){this._elementRef=n}}))));let AG=(()=>{class n extends OG{constructor(e,i,o,s,a,l,d){super(i),this._changeDetectorRef=o,this._ngZone=s,this._animationMode=l,this._options=d,this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new ht,this.indeterminateChange=new ht,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||TI,this.color=this.defaultColor=this._options.color||TI.color,this.tabIndex=parseInt(a)||0,this.id=this._uniqueId=`${e}${++PG}`}get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(e){this._required=hn(e)}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){const i=hn(e);i!=this.checked&&(this._checked=i,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){const i=hn(e);i!==this.disabled&&(this._disabled=i,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=hn(e),i&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_getAriaChecked(){return this.checked?"true":this.indeterminate?"mixed":"false"}_transitionCheckState(e){let i=this._currentCheckState,o=this._getAnimationTargetElement();if(i!==e&&o&&(this._currentAnimationClass&&o.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){o.classList.add(this._currentAnimationClass);const s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{o.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case 0:if(1===i)return this._animationClasses.uncheckedToChecked;if(3==i)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case 2:return 1===i?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case 1:return 2===i?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case 3:return 1===i?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}}return n.\u0275fac=function(e){Ba()},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&(ft(SG,5),ft(DG,5),ft(Ls,5)),2&e){let o;nt(o=it())&&(i._inputElement=o.first),nt(o=it())&&(i._labelElement=o.first),nt(o=it())&&(i.ripple=o.first)}},inputs:{ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},features:[dt]}),n})(),ma=(()=>{class n extends AG{constructor(e,i,o,s,a,l){super("mat-mdc-checkbox-",e,i,o,s,a,l),this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"}}focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new IG;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_onInputClick(){super._handleInputClick()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(pt),Na("tabindex"),F(zi,8),F(LG,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-checkbox"]],hostAttrs:[1,"mat-mdc-checkbox"],hostVars:12,hostBindings:function(e,i){2&e&&(Js("id",i.id),Ut("tabindex",null)("aria-label",null)("aria-labelledby",null),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mdc-checkbox--disabled",i.disabled)("mat-mdc-checkbox-disabled",i.disabled)("mat-mdc-checkbox-checked",i.checked))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matCheckbox"],features:[Zt([EG]),dt],ngContentSelectors:TG,decls:15,vars:19,consts:[[1,"mdc-form-field",3,"click"],[1,"mdc-checkbox"],["checkbox",""],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"checked","disabled","id","required","tabIndex","blur","click","change"],["input",""],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[3,"for"],["label",""]],template:function(e,i){if(1&e&&(gr(),D(0,"div",0),ye("click",function(s){return i._preventBubblingFromLabel(s)}),D(1,"div",1,2)(3,"div",3),ye("click",function(){return i._onInputClick()}),x(),D(4,"input",4,5),ye("blur",function(){return i._onBlur()})("click",function(){return i._onInputClick()})("change",function(s){return i._onInteractionEvent(s)}),x(),xe(6,"div",6),D(7,"div",7),ms(),D(8,"svg",8),xe(9,"path",9),x(),Sl(),xe(10,"div",10),x(),xe(11,"div",11),x(),D(12,"label",12,13),vn(14),x()()),2&e){const o=ci(2);Gt("mdc-form-field--align-end","before"==i.labelPosition),c(4),Gt("mdc-checkbox--selected",i.checked),M("checked",i.checked)("disabled",i.disabled)("id",i.inputId)("required",i.required)("tabIndex",i.tabIndex),Ut("aria-checked",i._getAriaChecked())("aria-label",i.ariaLabel||null)("aria-labelledby",i.ariaLabelledby)("aria-describedby",i.ariaDescribedby)("name",i.name)("value",i.value),c(7),M("matRippleTrigger",o)("matRippleDisabled",i.disableRipple||i.disabled)("matRippleCentered",!0),c(1),M("for",i.inputId)}},dependencies:[Ls],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size, 48px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);width:var(--mdc-checkbox-state-layer-size, 48px);height:var(--mdc-checkbox-state-layer-size, 48px)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, rgba(0, 0, 0, 0.38));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color, rgba(0, 0, 0, 0.38))}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px)}.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:not([disabled])~.mdc-checkbox__ripple{opacity:.04;transform:scale(1);transition:opacity 80ms 0 cubic-bezier(0, 0, 0.2, 1),transform 80ms 0 cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:not([disabled]):focus~.mdc-checkbox__ripple{opacity:.16}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__native-control:focus:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, black)}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0}),n})(),LI=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})(),NG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,Yf,LI,Vn,LI]}),n})();const YG=["button"];function BG(n,t){1&n&&(D(0,"span",22),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"bulk-rewards.checking"),""))}function HG(n,t){if(1&n&&(D(0,"span",23)(1,"span"),E(2),R(3,"translate"),x(),D(4,"span"),E(5),R(6,"translate"),x()()),2&n){const e=z(2).$implicit;c(2),ce(" ",B(3,2,"bulk-rewards.error-checking"),""),c(3),ce(" ",B(6,4,e.operationError),"")}}function VG(n,t){if(1&n&&(D(0,"span"),E(1),x()),2&n){const e=z(2).$implicit;c(1),ce(" ",e.currentAddress,"")}}function jG(n,t){1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"bulk-rewards.not-registered"),""))}function zG(n,t){if(1&n&&(Ue(0,15),D(1,"mat-checkbox",16)(2,"div")(3,"div",17),E(4),x(),D(5,"div",18)(6,"span",19),E(7),R(8,"translate"),x(),V(9,BG,3,3,"span",20),V(10,HG,7,6,"span",21),V(11,VG,2,1,"span",12),V(12,jG,3,3,"span",12),x()()(),We()),2&n){const e=z(),o=e.$implicit;M("formGroupName",e.index),c(4),ce(" ",o.label," "),c(3),oe(B(8,7,"bulk-rewards.current-address")),c(2),M("ngIf",null===o.currentAddress&&!o.operationError),c(1),M("ngIf",o.operationError),c(1),M("ngIf",o.currentAddress&&!o.operationError),c(1),M("ngIf",""===o.currentAddress&&!o.operationError)}}function UG(n,t){1&n&&(D(0,"span",22),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"bulk-rewards.processing"),""))}function WG(n,t){if(1&n&&(D(0,"span",23)(1,"span"),E(2),R(3,"translate"),x(),D(4,"span"),E(5),R(6,"translate"),x()()),2&n){const e=z(2).$implicit;c(2),ce(" ",B(3,2,"bulk-rewards.error-processing"),""),c(3),ce(" ",B(6,4,e.operationError),"")}}function $G(n,t){1&n&&(D(0,"span",28),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"bulk-rewards.done"),""))}function GG(n,t){if(1&n&&(Ue(0),D(1,"div",24),E(2,"-"),x(),D(3,"div",25),E(4),D(5,"div",26),V(6,UG,3,3,"span",20),V(7,WG,7,6,"span",21),V(8,$G,3,3,"span",27),x()(),We()),2&n){const e=z().$implicit;c(4),ce(" ",e.label," "),c(2),M("ngIf",e.processing&&!e.operationError),c(1),M("ngIf",e.operationError),c(1),M("ngIf",!e.processing&&!e.operationError)}}const qG=function(n){return{"element-margin":n}};function KG(n,t){if(1&n&&(D(0,"div",13),V(1,zG,13,9,"ng-container",14),V(2,GG,9,4,"ng-container",12),x()),2&n){const e=z();M("ngClass",Be(3,qG,e.processingStarted)),c(1),M("ngIf",!e.processingStarted),c(1),M("ngIf",e.processingStarted)}}function ZG(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"bulk-rewards.perform-changes")))}function XG(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"common.close")))}const QG=function(n){return{"element-disabled":n}};class uc{constructor(t,e,i,o,s){this.dialogRef=t,this.data=e,this.nodeService=i,this.formBuilder=o,this.dialog=s,this.processingStarted=!1,this.processingFinished=!1,this.currentlyProcessed=0,this.form=o.group({address:["",Vt.compose([Vt.minLength(20),Vt.maxLength(40)])],nodes:o.array([])}),e.nodes.forEach(a=>{const l=this.formBuilder.group({selected:[!0]});this.form.get("nodes").push(l)}),this.startChecking()}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(uc,i)}formValid(){if(!this.processingStarted){if(!this.form.valid)return!1;let t=0;return this.form.get("nodes").controls.forEach((e,i)=>{e.get("selected")?.value&&(t+=1)}),t>0}return!0}get disableDismiss(){return this.processingStarted&&!this.processingFinished}startChecking(){this.nodesToEdit=[],this.data.nodes.forEach(t=>{this.nodesToEdit.push({key:t.key,label:t.label,currentAddress:null,operationError:"",processing:!1})}),this.operationSubscriptions=[],this.nodesToEdit.forEach((t,e)=>{this.operationSubscriptions.push(this.nodeService.getRewardsAddress(t.key).subscribe(i=>{this.nodesToEdit[e].currentAddress=i},i=>{this.nodesToEdit[e].operationError=i.translatableErrorMsg?i.translatableErrorMsg:i.originalServerErrorMsg}))})}checkBeforeProcessing(){if(this.form.valid)if(this.form.get("address").value)this.startProcessing();else{const e=Wt.createConfirmationDialog(this.dialog,"bulk-rewards.empty-warning");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.startProcessing()})}}startProcessing(){this.processingStarted=!0,this.button.showLoading(),this.closeoperationSubscriptions();const t=[];this.form.get("nodes").controls.forEach((i,o)=>{i.get("selected")?.value&&(this.nodesToEdit[o].operationError="",this.nodesToEdit[o].processing=!0,t.push(this.nodesToEdit[o]))}),this.nodesToEdit=t;const e=this.form.get("address").value;this.form.get("address").disable(),this.currentlyProcessed=0,this.operationSubscriptions=[],this.nodesToEdit.forEach((i,o)=>{let s=this.nodeService.setRewardsAddress(i.key,e);e||(s=this.nodeService.deleteRewardsAddress(i.key)),this.operationSubscriptions.push(Ge(0).pipe(Di(100),Ne(()=>s)).subscribe(a=>{this.nodesToEdit[o].processing=!1,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())},a=>{this.nodesToEdit[o].processing=!1,this.nodesToEdit[o].operationError=a.translatableErrorMsg?a.translatableErrorMsg:a.originalServerErrorMsg,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())}))})}ngOnDestroy(){this.closeoperationSubscriptions()}closeoperationSubscriptions(){this.operationSubscriptions&&this.operationSubscriptions.forEach(t=>t.unsubscribe())}closeModal(){this.dialogRef.close()}}uc.\u0275fac=function(t){return new(t||uc)(F(Nn),F(Ti),F(so),F(Cr),F(Ln))},uc.\u0275cmp=qe({type:uc,selectors:[["app-bulk-reward-address-changer"]],viewQuery:function(t,e){if(1&t&&ft(YG,5),2&t){let i;nt(i=it())&&(e.button=i.first)}},decls:30,vars:28,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"text-container"],["href","https://github.com/skycoin/skywire/blob/master/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","40","matInput","",3,"ngClass"],["formArrayName","nodes",1,"list-container"],["class","list-element",3,"ngClass",4,"ngFor","ngForOf"],[1,"buttons"],["type","mat-raised-button","color","primary",3,"disabled","action"],["button",""],[4,"ngIf"],[1,"list-element",3,"ngClass"],[3,"formGroupName",4,"ngIf"],[3,"formGroupName"],["color","primary","formControlName","selected"],[1,"contents"],[1,"address","contents"],[1,"address-label"],["class","blinking",4,"ngIf"],["class","red-text",4,"ngIf"],[1,"blinking"],[1,"red-text"],[1,"left-area"],[1,"right-area","contents"],[1,"address"],["class","green-text",4,"ngIf"],[1,"green-text"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"div",2)(4,"span"),E(5),R(6,"translate"),x(),D(7,"a",3),E(8),R(9,"translate"),x()(),D(10,"mat-form-field")(11,"div",4)(12,"label",5),E(13),R(14,"translate"),x(),xe(15,"input",6),x(),D(16,"mat-error")(17,"span"),E(18),R(19,"translate"),x()()(),D(20,"div",2),E(21),R(22,"translate"),x(),D(23,"div",7),V(24,KG,3,5,"div",8),x()(),D(25,"div",9)(26,"app-button",10,11),ye("action",function(){return e.processingStarted?e.closeModal():e.checkBeforeProcessing()}),V(28,ZG,3,3,"ng-container",12),V(29,XG,3,3,"ng-container",12),x()()()),2&t&&(M("headline",B(1,14,"bulk-rewards.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(2),M("formGroup",e.form),c(3),ce("",B(6,16,"bulk-rewards.info")," "),c(3),ce(" ",B(9,18,"bulk-rewards.more-info-link")," "),c(5),oe(B(14,20,"rewards-address-config.address")),c(2),M("ngClass",Be(26,QG,e.processingStarted)),c(3),oe(B(19,22,"rewards-address-config.address-error")),c(3),ce(" ",B(22,24,"bulk-rewards.select-visors")," "),c(3),M("ngForOf",e.nodesToEdit),c(2),M("disabled",!e.formValid()),c(2),M("ngIf",!e.processingStarted),c(1),M("ngIf",e.processingStarted))},dependencies:[Rn,bi,It,Bi,Ri,Ni,Yi,xr,ii,Li,Zf,Xf,nr,al,kr,ma,ri,En,xt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}mat-form-field[_ngcontent-%COMP%]{margin-top:10px}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.list-container[_ngcontent-%COMP%] .element-margin[_ngcontent-%COMP%]{margin:15px 0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-area[_ngcontent-%COMP%]{width:12px;flex-grow:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-area[_ngcontent-%COMP%]{flex-grow:1}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .contents[_ngcontent-%COMP%]{white-space:normal;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%]{font-size:.7rem;color:#777}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%] .address-label[_ngcontent-%COMP%]{opacity:.7}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]});class JG{}class bu{constructor(t,e){this.storageService=t,this.nodeService=e,this.dataSubject=new Ir(null),this.lastEmitedData=new JG,this.firstCallToGetDataMade=!1,this.storageService.getRefreshTimeObservable().subscribe(i=>{this.dataRefreshDelay=1e3*i,this.forceRefresh()})}startRequestingData(){return this.firstCallToGetDataMade||this.getData(0),this.dataSubject.asObservable()}getData(t){this.firstCallToGetDataMade=!0,this.updateSubscription&&this.updateSubscription.unsubscribe(),this.updateSubscription=Ge(1).pipe(Di(t),hi(()=>{this.lastEmitedData.updating=!0,this.dataSubject.next(this.lastEmitedData)}),Di(120),Ne(()=>this.nodeService.getNodes())).subscribe(e=>{this.lastEmitedData={data:e,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(this.dataRefreshDelay)},e=>{e=Kt(e),this.lastEmitedData={data:this.lastEmitedData.data,error:e,momentOfLastCorrectUpdate:this.lastEmitedData.momentOfLastCorrectUpdate,updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(Rt.connectionRetryDelay)})}forceRefresh(){this.getData(0)}}bu.\u0275fac=function(t){return new(t||bu)(we(ni),we(so))},bu.\u0275prov=Ye({token:bu,factory:bu.\u0275fac,providedIn:"root"});const eq=["mat-menu-item",""];function tq(n,t){1&n&&(ms(),D(0,"svg",3),xe(1,"polygon",4),x())}const nq=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],iq=["mat-icon, [matMenuItemIcon]","*"];function rq(n,t){if(1&n){const e=et();D(0,"div",0),ye("keydown",function(o){return Pe(e),Oe(z()._handleKeydown(o))})("click",function(){return Pe(e),Oe(z().closed.emit("click"))})("@transformMenu.start",function(o){return Pe(e),Oe(z()._onAnimationStart(o))})("@transformMenu.done",function(o){return Pe(e),Oe(z()._onAnimationDone(o))}),D(1,"div",1),vn(2),x()()}if(2&n){const e=z();M("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),Ut("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const oq=["*"],tM=new He("MAT_MENU_PANEL"),sq=Ff(iu(class{}));let _a=(()=>{class n extends sq{constructor(e,i,o,s,a){super(),this._elementRef=e,this._document=i,this._focusMonitor=o,this._parentMenu=s,this._changeDetectorRef=a,this.role="menuitem",this._hovered=new X,this._focused=new X,this._highlighted=!1,this._triggersSubmenu=!1,s?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o enter",Wr("120ms cubic-bezier(0, 0, 0.2, 1)",Zn({opacity:1,transform:"scale(1)"}))),Er("* => void",Wr("100ms 25ms linear",Zn({opacity:0})))]),fadeInItems:oa("fadeInItems",[go("showing",Zn({opacity:1})),Er("void => *",[Zn({opacity:0}),Wr("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let lq=0;const EI=new He("mat-menu-default-options",{providedIn:"root",factory:function cq(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let tp=(()=>{class n{constructor(e,i,o,s){this._elementRef=e,this._ngZone=i,this._defaultOptions=o,this._changeDetectorRef=s,this._xPosition=this._defaultOptions.xPosition,this._yPosition=this._defaultOptions.yPosition,this._directDescendantItems=new Vl,this._classList={},this._panelAnimationState="void",this._animationDone=new X,this.overlayPanelClass=this._defaultOptions.overlayPanelClass||"",this.backdropClass=this._defaultOptions.backdropClass,this._overlapTrigger=this._defaultOptions.overlapTrigger,this._hasBackdrop=this._defaultOptions.hasBackdrop,this.closed=new ht,this.close=this.closed,this.panelId="mat-menu-panel-"+lq++}get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(e){this._overlapTrigger=hn(e)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=hn(e)}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(o=>{this._classList[o]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(o=>{this._classList[o]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new aL(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(yo(this._directDescendantItems),br(e=>vt(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const o=e.toArray(),s=Math.max(0,Math.min(o.length-1,i.activeItemIndex||0));o[s]&&!o[s].disabled?i.setActiveItem(s):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(yo(this._directDescendantItems),br(i=>vt(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:Ts(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&o.setFocusOrigin("keyboard"),void o.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(ti(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),o=`${this._elevationPrefix}${i}`,s=Object.keys(this._classList).find(a=>a.startsWith(this._elevationPrefix));(!s||s===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[o]=!0,this._previousElevation=o)}setPositionClasses(e=this.xPosition,i=this.yPosition){const o=this._classList;o["mat-menu-before"]="before"===e,o["mat-menu-after"]="after"===e,o["mat-menu-above"]="above"===i,o["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(yo(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt),F(EI),F(ui))},n.\u0275dir=Ke({type:n,contentQueries:function(e,i,o){if(1&e&&(Ji(o,aq,5),Ji(o,_a,5),Ji(o,_a,4)),2&e){let s;nt(s=it())&&(i.lazyContent=s.first),nt(s=it())&&(i._allItems=s),nt(s=it())&&(i.items=s)}},viewQuery:function(e,i){if(1&e&&ft(cr,5),2&e){let o;nt(o=it())&&(i.templateRef=o.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:["class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}}),n})(),vu=(()=>{class n extends tp{constructor(e,i,o,s){super(e,i,o,s),this._elevationPrefix="mat-elevation-z",this._baseElevation=8}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt),F(EI),F(ui))},n.\u0275cmp=qe({type:n,selectors:[["mat-menu"]],hostVars:3,hostBindings:function(e,i){2&e&&Ut("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[Zt([{provide:tM,useExisting:n}]),dt],ngContentSelectors:oq,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mdc-menu-surface","mdc-menu-surface--open","mat-mdc-elevation-specific",3,"id","ngClass","keydown","click"],[1,"mat-mdc-menu-content","mdc-list"]],template:function(e,i){1&e&&(gr(),V(0,rq,3,6,"ng-template"))},dependencies:[Rn],styles:['.mdc-menu-surface{display:none;position:absolute;box-sizing:border-box;max-width:var(--mdc-menu-max-width, calc(100vw - 32px));max-height:var(--mdc-menu-max-height, calc(100vh - 32px));margin:0;padding:0;transform:scale(1);transform-origin:top left;opacity:0;overflow:auto;will-change:transform,opacity;z-index:8;border-radius:var(--mdc-shape-medium, 4px);transform-origin-left:top left;transform-origin-right:top right}.mdc-menu-surface:focus{outline:none}.mdc-menu-surface--animating-open{display:inline-block;transform:scale(0.8);opacity:0}.mdc-menu-surface--open{display:inline-block;transform:scale(1);opacity:1}.mdc-menu-surface--animating-closed{display:inline-block;opacity:0}[dir=rtl] .mdc-menu-surface,.mdc-menu-surface[dir=rtl]{transform-origin-left:top right;transform-origin-right:top left}.mdc-menu-surface--anchor{position:relative;overflow:visible}.mdc-menu-surface--fixed{position:fixed}.mdc-menu-surface--fullwidth{width:100%}mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-panel.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item.mdc-list-item{align-items:center}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item .mdc-list-item__primary-text{white-space:normal}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[Fg.transformMenu,Fg.fadeInItems]},changeDetection:0}),n})();const II=new He("mat-menu-scroll-strategy"),uq={provide:II,deps:[ro],useFactory:function dq(n){return()=>n.scrollStrategies.reposition()}},PI=el({passive:!0});let hq=(()=>{class n{constructor(e,i,o,s,a,l,d,w,P){this._overlay=e,this._element=i,this._viewContainerRef=o,this._menuItemInstance=l,this._dir=d,this._focusMonitor=w,this._ngZone=P,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=T.EMPTY,this._hoverSubscription=T.EMPTY,this._menuCloseSubscription=T.EMPTY,this._handleTouchStart=Y=>{g1(Y)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new ht,this.onMenuOpen=this.menuOpened,this.menuClosed=new ht,this.onMenuClose=this.menuClosed,this._scrollStrategy=s,this._parentMaterialMenu=a instanceof tp?a:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,PI)}get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,PI),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),o=i.getConfig(),s=o.positionStrategy;this._setPosition(e,s),o.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof tp&&(e._startAnimation(),e._directDescendantItems.changes.pipe(Cn(e.close)).subscribe(()=>{s.withLockedPosition(!1).reapplyLastPosition(),s.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof tp?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(Si(o=>"void"===o.toState),ti(1),Cn(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,o=e.parentMenu;for(;o;)i++,o=o.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e)}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new Pf({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{const s="start"===o.connectionPair.overlayX?"after":"before",a="top"===o.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(s,a)):e.setPositionClasses(s,a)})}_setPosition(e,i){let[o,s]="before"===e.xPosition?["end","start"]:["start","end"],[a,l]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[d,w]=[a,l],[P,Y]=[o,s],q=0;if(this.triggersSubmenu()){if(Y=o="before"===e.xPosition?"start":"end",s=P="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const te=this._parentMaterialMenu.items.first;this._parentInnerPadding=te?te._getHostElement().offsetTop:0}q="bottom"===a?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(d="top"===a?"bottom":"top",w="top"===l?"bottom":"top");i.withPositions([{originX:o,originY:d,overlayX:P,overlayY:a,offsetY:q},{originX:s,originY:d,overlayX:Y,overlayY:a,offsetY:q},{originX:o,originY:w,overlayX:P,overlayY:l,offsetY:-q},{originX:s,originY:w,overlayX:Y,overlayY:l,offsetY:-q}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return vt(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:Ge(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Si(a=>a!==this._menuItemInstance),Si(()=>this._menuOpen)):Ge(),i)}_handleMousedown(e){_1(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(Si(e=>e===this._menuItemInstance&&!e.disabled),Di(0,X0)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof tp&&this.menu._isAnimating?this.menu._animationDone.pipe(ti(1),Di(0,X0),Cn(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new ec(e.templateRef,this._viewContainerRef)),this._portal}}return n.\u0275fac=function(e){return new(e||n)(F(ro),F(bt),F(Qi),F(II),F(tM,8),F(_a,10),F(Or,8),F(il),F(pt))},n.\u0275dir=Ke({type:n,hostVars:3,hostBindings:function(e,i){1&e&&ye("click",function(s){return i._handleClick(s)})("mousedown",function(s){return i._handleMousedown(s)})("keydown",function(s){return i._handleKeydown(s)}),2&e&&Ut("aria-haspopup",i.menu?"menu":null)("aria-expanded",i.menuOpen)("aria-controls",i.menuOpen?i.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:["mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:["matMenuTriggerFor","menu"],menuData:["matMenuTriggerData","menuData"],restoreFocus:["matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}}),n})(),yu=(()=>{class n extends hq{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],exportAs:["matMenuTrigger"],features:[dt]}),n})(),fq=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[uq],imports:[ia,Yf,Vn,eu,Tf,Vn]}),n})();const OI=function(){return["1"]};function pq(n,t){if(1&n&&(D(0,"a",10)(1,"mat-icon",11),E(2,"chevron_left"),x(),E(3),R(4,"translate"),x()),2&n){const e=z();M("routerLink",e.linkParts.concat(Un(6,OI)))("queryParams",e.queryParams),c(1),M("inline",!0),c(2),ce(" ",B(4,4,"paginator.first")," ")}}function mq(n,t){if(1&n&&(D(0,"a",12)(1,"mat-icon",11),E(2,"chevron_left"),x(),D(3,"span",13),E(4),R(5,"translate"),x()()),2&n){const e=z();M("routerLink",e.linkParts.concat(Un(6,OI)))("queryParams",e.queryParams),c(1),M("inline",!0),c(3),oe(B(5,4,"paginator.first"))}}const dl=function(n){return[n]};function _q(n,t){if(1&n&&(D(0,"a",10)(1,"div")(2,"mat-icon",11),E(3,"chevron_left"),x()()()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage-1).toString())))("queryParams",e.queryParams),c(2),M("inline",!0)}}function gq(n,t){if(1&n&&(D(0,"a",10),E(1),x()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage-2).toString())))("queryParams",e.queryParams),c(1),oe(e.currentPage-2)}}function bq(n,t){if(1&n&&(D(0,"a",14),E(1),x()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage-1).toString())))("queryParams",e.queryParams),c(1),oe(e.currentPage-1)}}function vq(n,t){if(1&n&&(D(0,"a",14),E(1),x()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage+1).toString())))("queryParams",e.queryParams),c(1),oe(e.currentPage+1)}}function yq(n,t){if(1&n&&(D(0,"a",10),E(1),x()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage+2).toString())))("queryParams",e.queryParams),c(1),oe(e.currentPage+2)}}function Mq(n,t){if(1&n&&(D(0,"a",10)(1,"div")(2,"mat-icon",11),E(3,"chevron_right"),x()()()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage+1).toString())))("queryParams",e.queryParams),c(2),M("inline",!0)}}function wq(n,t){if(1&n&&(D(0,"a",10),E(1),R(2,"translate"),D(3,"mat-icon",11),E(4,"chevron_right"),x()()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(6,dl,e.numberOfPages.toString())))("queryParams",e.queryParams),c(1),ce(" ",B(2,4,"paginator.last")," "),c(2),M("inline",!0)}}function xq(n,t){if(1&n&&(D(0,"a",12)(1,"mat-icon",11),E(2,"chevron_right"),x(),D(3,"span",13),E(4),R(5,"translate"),x()()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(6,dl,e.numberOfPages.toString())))("queryParams",e.queryParams),c(1),M("inline",!0),c(3),oe(B(5,4,"paginator.last"))}}const AI=function(n){return{number:n}};function Cq(n,t){if(1&n&&(D(0,"div",15),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),oe(Ct(2,1,"paginator.total",Be(4,AI,e.numberOfPages)))}}function kq(n,t){if(1&n&&(D(0,"div",16),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),oe(Ct(2,1,"paginator.total",Be(4,AI,e.numberOfPages)))}}class Fs{constructor(t,e){this.dialog=t,this.router=e,this.linkParts=[""],this.queryParams={}}openSelectionDialog(){const t=[];for(let e=1;e<=this.numberOfPages;e++)t.push({label:e.toString()});Hi.openDialog(this.dialog,t,"paginator.select-page-title").afterClosed().subscribe(e=>{e&&this.router.navigate(this.linkParts.concat([e.toString()]),{queryParams:this.queryParams})})}}function np(n){return t=>t.lift(new Sq(n,t))}Fs.\u0275fac=function(t){return new(t||Fs)(F(Ln),F(Qt))},Fs.\u0275cmp=qe({type:Fs,selectors:[["app-paginator"]],inputs:{currentPage:"currentPage",numberOfPages:"numberOfPages",linkParts:"linkParts",queryParams:"queryParams"},decls:21,vars:13,consts:[[1,"main-container"],[1,"d-inline-block","small-rounded-elevated-box","mt-3"],[1,"d-flex"],[1,"responsive-height","d-md-none"],["class","d-none d-md-flex",3,"routerLink","queryParams",4,"ngIf"],["class","d-flex d-md-none flex-column",3,"routerLink","queryParams",4,"ngIf"],[3,"routerLink","queryParams",4,"ngIf"],[1,"selected",3,"click"],["class","d-none d-md-block total-pages",4,"ngIf"],["class","d-block d-md-none total-pages",4,"ngIf"],[1,"d-none","d-md-flex",3,"routerLink","queryParams"],[3,"inline"],[1,"d-flex","d-md-none","flex-column",3,"routerLink","queryParams"],[1,"label"],[3,"routerLink","queryParams"],[1,"d-none","d-md-block","total-pages"],[1,"d-block","d-md-none","total-pages"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3),E(4,"\xa0"),xe(5,"br"),E(6,"\xa0"),x(),V(7,pq,5,7,"a",4),V(8,mq,6,7,"a",5),V(9,_q,4,5,"a",4),V(10,gq,2,5,"a",4),V(11,bq,2,5,"a",6),D(12,"a",7),ye("click",function(){return e.openSelectionDialog()}),E(13),x(),V(14,vq,2,5,"a",6),V(15,yq,2,5,"a",4),V(16,Mq,4,5,"a",4),V(17,wq,5,8,"a",4),V(18,xq,6,8,"a",5),x()(),V(19,Cq,3,6,"div",8),V(20,kq,3,6,"div",9),x()),2&t&&(c(7),M("ngIf",e.currentPage>3),c(1),M("ngIf",e.currentPage>2),c(1),M("ngIf",e.currentPage>1),c(1),M("ngIf",e.currentPage>2),c(1),M("ngIf",e.currentPage>1),c(2),oe(e.currentPage),c(1),M("ngIf",e.currentPage3),c(1),M("ngIf",e.numberOfPages>2))},dependencies:[It,Ja,yn,xt],styles:[".main-container[_ngcontent-%COMP%]{text-align:right}.main-container[_ngcontent-%COMP%] .responsive-height[_ngcontent-%COMP%]{padding:10px 0;width:0px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:10px;border-right:rgba(255,255,255,.15) solid 1px;border-left:rgba(255,255,255,.15) solid 1px;min-width:40px;text-align:center;color:#f8f9f980;text-decoration:none;display:flex;align-items:center;justify-content:center}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.2)}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.7rem}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{color:#f8f9f9;background:rgba(0,0,0,.36);padding:10px 20px;cursor:pointer}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.6)}.main-container[_ngcontent-%COMP%] .total-pages[_ngcontent-%COMP%]{font-size:.6rem;margin-top:-3px;margin-right:4px}"]});class Sq{constructor(t,e){this.notifier=t,this.source=e}call(t,e){return e.subscribe(new Dq(t,this.notifier,this.source))}}class Dq extends Me{constructor(t,e,i){super(t),this.notifier=e,this.source=i}error(t){if(!this.isStopped){let e=this.errors,i=this.retries,o=this.retriesSubscription;if(i)this.errors=void 0,this.retriesSubscription=void 0;else{e=new X;try{const{notifier:s}=this;i=s(e)}catch(s){return super.error(s)}o=Ee(i,new be(this))}this._unsubscribeAndRecycle(),this.errors=e,this.retries=i,this.retriesSubscription=o,e.next(t)}}_unsubscribe(){const{errors:t,retriesSubscription:e}=this;t&&(t.unsubscribe(),this.errors=void 0),e&&(e.unsubscribe(),this.retriesSubscription=void 0),this.retries=void 0}notifyNext(){const{_unsubscribe:t}=this;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=t,this.source.subscribe(this)}}class xo{constructor(t){this.apiService=t}changeAppState(t,e,i){return this.apiService.put(`visors/${t}/apps/${encodeURIComponent(e)}`,{status:i?1:0})}changeAppAutostart(t,e,i){return this.changeAppSettings(t,e,{autostart:i})}changeAppSettings(t,e,i){return this.apiService.put(`visors/${t}/apps/${encodeURIComponent(e)}`,i)}getLogMessages(t,e,i){const s=CS(-1!==i?Date.now()-864e5*i:0,"yyyy-MM-ddTHH:mm:ssZZZZZ","en-US");return this.apiService.get(this.getLogMessagesUrl(t,e)+`?since=${s}`).pipe(Ce(a=>a.logs))}getLogMessagesUrl(t,e){return`visors/${t}/apps/${encodeURIComponent(e)}/logs`}}xo.\u0275fac=function(t){return new(t||xo)(we(wo))},xo.\u0275prov=Ye({token:xo,factory:xo.\u0275fac,providedIn:"root"});var Wn=(()=>(function(n){n.None="None",n.Favorite="Favorite",n.Blocked="Blocked"}(Wn||(Wn={})),Wn))(),ao=(()=>(function(n){n.BitsSpeedAndBytesVolume="BitsSpeedAndBytesVolume",n.OnlyBytes="OnlyBytes",n.OnlyBits="OnlyBits"}(ao||(ao={})),ao))();class Vo{constructor(t,e){this.router=t,this.storageService=e,this.maxHistoryElements=30,this.savedServersStorageKey="VpnServers",this.checkIpSettingStorageKey="VpnGetIp",this.dataUnitsSettingStorageKey="VpnDataUnits",this.serversMap=new Map,this.savedDataVersion=0,this.currentServerSubject=new Ho(1),this.historySubject=new Ho(1),this.favoritesSubject=new Ho(1),this.blockedSubject=new Ho(1)}initialize(){this.migrateDataToHvStorage(),this.serversMap=new Map;const t=this.storageService.getDataForHv(this.savedServersStorageKey);if(t){const e=JSON.parse(t);e.serverList.forEach(i=>{this.serversMap.set(i.pk,i)}),this.savedDataVersion=e.version,e.selectedServerPk&&this.updateCurrentServerPk(e.selectedServerPk)}this.launchListEvents()}migrateDataToHvStorage(){const t=localStorage.getItem(this.savedServersStorageKey);t&&(this.storageService.setDataForHv(this.savedServersStorageKey,t),localStorage.removeItem(this.savedServersStorageKey));const e=localStorage.getItem(this.checkIpSettingStorageKey);e&&(this.storageService.setDataForHv(this.checkIpSettingStorageKey,e),localStorage.removeItem(this.checkIpSettingStorageKey));const i=localStorage.getItem(this.dataUnitsSettingStorageKey);i&&(this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,i),localStorage.removeItem(this.dataUnitsSettingStorageKey))}get currentServer(){return this.serversMap.get(this.currentServerPk)}get currentServerObservable(){return this.currentServerSubject.asObservable()}get history(){return this.historySubject.asObservable()}get favorites(){return this.favoritesSubject.asObservable()}get blocked(){return this.blockedSubject.asObservable()}getSavedVersion(t,e){return e&&this.checkIfDataWasChanged(),this.serversMap.get(t)}getCheckIpSetting(){const t=this.storageService.getDataForHv(this.checkIpSettingStorageKey);return null==t||"false"!==t}setCheckIpSetting(t){this.storageService.setDataForHv(this.checkIpSettingStorageKey,t?"true":"false")}getDataUnitsSetting(){return this.storageService.getDataForHv(this.dataUnitsSettingStorageKey)??ao.BitsSpeedAndBytesVolume}setDataUnitsSetting(t){this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,t)}updateFromDiscovery(t){this.checkIfDataWasChanged(),t.forEach(e=>{if(this.serversMap.has(e.pk)){const i=this.serversMap.get(e.pk);i.countryCode=e.countryCode,i.name=e.name,i.location=e.location,i.note=e.note}}),this.saveData()}updateServer(t){this.serversMap.set(t.pk,t),this.cleanServers(),this.saveData()}processFromDiscovery(t){this.checkIfDataWasChanged();const e=this.serversMap.get(t.pk);return e?(e.countryCode=t.countryCode,e.name=t.name,e.location=t.location,e.note=t.note,this.saveData(),e):{countryCode:t.countryCode,name:t.name,customName:null,pk:t.pk,lastUsed:0,inHistory:!1,flag:Wn.None,location:t.location,personalNote:null,note:t.note,enteredManually:!1,usedWithPassword:!1}}processFromManual(t){this.checkIfDataWasChanged();const e=this.serversMap.get(t.pk);return e?(e.customName=t.name,e.personalNote=t.note,e.enteredManually=!0,this.saveData(),e):{countryCode:"zz",name:"",customName:t.name,pk:t.pk,lastUsed:0,inHistory:!1,flag:Wn.None,location:"",personalNote:t.note,note:"",enteredManually:!0,usedWithPassword:!1}}changeFlag(t,e){this.checkIfDataWasChanged();const i=this.serversMap.get(t.pk);i&&(t=i),t.flag!==e&&(t.flag=e,this.serversMap.has(t.pk)||this.serversMap.set(t.pk,t),this.cleanServers(),this.saveData())}removeFromHistory(t){this.checkIfDataWasChanged();const e=this.serversMap.get(t);!e||!e.inHistory||(e.inHistory=!1,this.cleanServers(),this.saveData())}modifyCurrentServer(t){this.checkIfDataWasChanged(),t.pk!==this.currentServerPk&&(this.serversMap.has(t.pk)||this.serversMap.set(t.pk,t),this.updateCurrentServerPk(t.pk),this.cleanServers(),this.saveData())}compareCurrentServer(t){if(this.checkIfDataWasChanged(),t){if(!this.currentServerPk||this.currentServerPk!==t){if(this.currentServerPk=t,!this.serversMap.get(t)){const i=this.processFromManual({pk:t});this.serversMap.set(i.pk,i),this.cleanServers()}this.saveData(),this.currentServerSubject.next(this.currentServer)}}else this.currentServerPk&&(this.currentServerPk=null,this.saveData(),this.currentServerSubject.next(this.currentServer))}updateHistory(){this.checkIfDataWasChanged(),this.currentServer.lastUsed=Date.now(),this.currentServer.inHistory=!0;let t=[];this.serversMap.forEach(i=>{i.inHistory&&t.push(i)}),t=t.sort((i,o)=>o.lastUsed-i.lastUsed);let e=0;t.forEach(i=>{e{!e.inHistory&&e.flag===Wn.None&&e.pk!==this.currentServerPk&&!e.customName&&!e.personalNote&&t.push(e.pk)}),t.forEach(e=>{this.serversMap.delete(e)})}saveData(){let t=0;const e=this.storageService.getDataForHv(this.savedServersStorageKey);if(e&&(t=JSON.parse(e).version),t!==this.savedDataVersion)return void this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"storage"}});this.savedDataVersion+=1;const i={version:this.savedDataVersion,serverList:Array.from(this.serversMap.values()),selectedServerPk:this.currentServerPk},o=JSON.stringify(i);this.storageService.setDataForHv(this.savedServersStorageKey,o),this.launchListEvents()}checkIfDataWasChanged(){let t=0;const e=this.storageService.getDataForHv(this.savedServersStorageKey);e&&(t=JSON.parse(e).version),t!==this.savedDataVersion&&this.initialize()}launchListEvents(){const t=[],e=[],i=[];this.serversMap.forEach(o=>{o.inHistory&&t.push(o),o.flag===Wn.Favorite&&e.push(o),o.flag===Wn.Blocked&&i.push(o)}),this.historySubject.next(t),this.favoritesSubject.next(e),this.blockedSubject.next(i)}updateCurrentServerPk(t){this.currentServerPk=t,this.currentServerSubject.next(this.currentServer)}}Vo.\u0275fac=function(t){return new(t||Vo)(we(Qt),we(ni))},Vo.\u0275prov=Ye({token:Vo,factory:Vo.\u0275fac,providedIn:"root"});var Mn=(()=>(function(n){n.Stopped="stopped",n.Connecting="Connecting",n.Running="Running",n.ShuttingDown="Shutting down",n.Reconnecting="Connection failed, reconnecting"}(Mn||(Mn={})),Mn))();class Tq{constructor(){this.updateDate=Date.now()}}class Lq{}class Eq{constructor(){this.latency=0,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.connectionDuration=0,this.error=""}}var ir=(()=>(function(n){n[n.PerformingInitialCheck=1]="PerformingInitialCheck",n[n.Off=10]="Off",n[n.Starting=20]="Starting",n[n.Running=100]="Running",n[n.Disconnecting=200]="Disconnecting"}(ir||(ir={})),ir))(),Co=(()=>(function(n){n[n.Busy=1]="Busy",n[n.Ok=2]="Ok",n[n.MustStop=3]="MustStop",n[n.SamePkRunning=4]="SamePkRunning",n[n.SamePkStopped=5]="SamePkStopped"}(Co||(Co={})),Co))();class jo{constructor(t,e,i,o,s,a,l){this.apiService=t,this.appsService=e,this.router=i,this.vpnSavedDataService=o,this.http=s,this.snackbarService=a,this.translateService=l,this.vpnClientAppName="vpn-client",this.standardWaitTime=2e3,this.stateSubject=new Ir(null),this.errorSubject=new Ir(!1),this.working=!0,this.requestedServer=null,this.requestedPassword=null,this.updatesStopped=!1,this.currentEventData=new Tq,this.currentEventData.busy=!0,this.lastServiceState=ir.PerformingInitialCheck}initialize(t){t&&(this.nodeKey?t!==this.nodeKey?this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"pkChange"}}):this.updatesStopped&&(this.updatesStopped=!1,this.updateData()):(this.nodeKey=t,this.vpnSavedDataService.initialize(),this.updateData()))}get backendState(){return this.stateSubject.asObservable()}get errorsConnecting(){return this.errorSubject.asObservable()}updateData(){this.continuallyUpdateData(0)}start(){return!this.working&&this.lastServiceState<20&&(this.changeAppState(!0),!0)}stop(){return!this.working&&this.lastServiceState>=20&&this.lastServiceState<200&&(this.changeAppState(!1),!0)}getIpData(){return this.http.request("GET",window.location.protocol+"//ip.skycoin.com/").pipe(np(t=>ql(t.pipe(Di(this.standardWaitTime),ti(4)),Pr(""))),Ce(t=>{let e="";e=t&&t.ip_address?t.ip_address:this.translateService.instant("common.unknown");let i="";return i=t&&t.country_name?t.country_name:this.translateService.instant("common.unknown"),[e,i]}))}changeServerUsingHistory(t,e){return this.requestedServer=t,this.requestedPassword=e,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerUsingDiscovery(t,e){return this.requestedServer=this.vpnSavedDataService.processFromDiscovery(t),this.requestedPassword=e,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerManually(t,e){return this.requestedServer=this.vpnSavedDataService.processFromManual(t),this.requestedPassword=e,this.updateRequestedServerPasswordSetting(),this.changeServer()}updateRequestedServerPasswordSetting(){this.requestedServer.usedWithPassword=!!this.requestedPassword&&""!==this.requestedPassword;const t=this.vpnSavedDataService.getSavedVersion(this.requestedServer.pk,!0);t&&(t.usedWithPassword=this.requestedServer.usedWithPassword,this.vpnSavedDataService.updateServer(t))}changeServer(){return!this.working&&(this.stop()||this.processServerChange(),!0)}checkNewPk(t){return this.working?Co.Busy:this.lastServiceState!==ir.Off?t===this.vpnSavedDataService.currentServer.pk?Co.SamePkRunning:Co.MustStop:this.vpnSavedDataService.currentServer&&t===this.vpnSavedDataService.currentServer.pk?Co.SamePkStopped:Co.Ok}processServerChange(){this.dataSubscription&&this.dataSubscription.unsubscribe();const t={pk:this.requestedServer.pk};t.passcode=this.requestedPassword?this.requestedPassword:"",this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,t).subscribe(()=>{this.vpnSavedDataService.modifyCurrentServer(this.requestedServer),this.requestedServer=null,this.requestedPassword=null,this.working=!1,this.start()},e=>{e=Kt(e),this.snackbarService.showError("vpn.server-change.backend-error",null,!1,e.originalServerErrorMsg),this.working=!1,this.requestedServer=null,this.requestedPassword=null,this.sendUpdate(),this.updateData()})}changeAppState(t){if(this.working)return;this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate();const e={status:1};t?(this.lastServiceState=ir.Starting,this.connectionHistoryPk=null):(this.lastServiceState=ir.Disconnecting,e.status=0),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,e).pipe(no(i=>this.getVpnClientState().pipe(Ne(o=>{if(o){if(t&&o.running)return Ge(!0);if(!t&&!o.running)return Ge(!0)}return Pr(i)}))),np(i=>ql(i.pipe(Di(this.standardWaitTime),ti(3)),i.pipe(Ne(o=>Pr(o)))))).subscribe(i=>{this.working=!1;const o=this.processAppData(i);this.lastServiceState=o.running?ir.Running:ir.Off,this.currentEventData.vpnClientAppData=o,this.currentEventData.updateDate=Date.now(),this.sendUpdate(),this.updateData(),!t&&this.requestedServer&&this.processServerChange()},i=>{i=Kt(i),this.snackbarService.showError(this.lastServiceState===ir.Starting?"vpn.status-page.problem-starting-error":this.lastServiceState===ir.Disconnecting?"vpn.status-page.problem-stopping-error":"vpn.status-page.generic-problem-error",null,!1,i.originalServerErrorMsg),this.working=!1,this.sendUpdate(),this.updateData()})}continuallyUpdateData(t){if(this.working&&this.lastServiceState!==ir.PerformingInitialCheck)return;this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe();let e=0;this.continuousUpdateSubscription=Ge(0).pipe(Di(t),Ne(()=>this.getVpnClientState()),np(i=>i.pipe(Ne(o=>(this.errorSubject.next(!0),(o=Kt(o)).originalError&&o.originalError.status&&401===o.originalError.status?Pr(o):this.lastServiceState!==ir.PerformingInitialCheck||e<4?(e+=1,Ge(o).pipe(Di(this.standardWaitTime))):Pr(o)))))).subscribe(i=>{i?(this.errorSubject.next(!1),this.lastServiceState===ir.PerformingInitialCheck&&(this.working=!1),this.vpnSavedDataService.compareCurrentServer(i.serverPk),this.lastServiceState=i.running?ir.Running:ir.Off,this.currentEventData.vpnClientAppData=i,this.currentEventData.updateDate=Date.now(),this.sendUpdate()):this.lastServiceState===ir.PerformingInitialCheck&&(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null,this.updatesStopped=!0),this.continuallyUpdateData(this.standardWaitTime)},i=>{(i=Kt(i)).originalError&&i.originalError.status&&401===i.originalError.status||(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null),this.updatesStopped=!0})}stopContinuallyUpdatingData(){this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe()}getVpnClientState(){let t;const e=new rc;return e.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/summary`,e).pipe(Ne(i=>{let o;if(i&&i.overview&&i.overview.apps&&i.overview.apps.length>0&&i.overview.apps.forEach(s=>{s.name===this.vpnClientAppName&&(o=s)}),o&&(t=this.processAppData(o)),t.minHops=i.min_hops?i.min_hops:0,t&&t.running){const s=new rc;return s.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/apps/${this.vpnClientAppName}/connections`,s)}return Ge(null)}),Ce(i=>{if(i&&i.length>0){const o=new Eq;i.forEach(s=>{o.latency+=s.latency/i.length,o.uploadSpeed+=s.upload_speed/i.length,o.downloadSpeed+=s.download_speed/i.length,o.totalUploaded+=s.bandwidth_sent,o.totalDownloaded+=s.bandwidth_received,s.error&&(o.error=s.error),s.connection_duration>o.connectionDuration&&(o.connectionDuration=s.connection_duration)}),(!this.connectionHistoryPk||this.connectionHistoryPk!==t.serverPk)&&(this.connectionHistoryPk=t.serverPk,this.uploadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.downloadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0]),o.latency=Math.round(o.latency),o.uploadSpeed=Math.round(o.uploadSpeed),o.downloadSpeed=Math.round(o.downloadSpeed),o.totalUploaded=Math.round(o.totalUploaded),o.totalDownloaded=Math.round(o.totalDownloaded),this.uploadSpeedHistory.splice(0,1),this.uploadSpeedHistory.push(o.uploadSpeed),o.uploadSpeedHistory=this.uploadSpeedHistory,this.downloadSpeedHistory.splice(0,1),this.downloadSpeedHistory.push(o.downloadSpeed),o.downloadSpeedHistory=this.downloadSpeedHistory,this.latencyHistory.splice(0,1),this.latencyHistory.push(o.latency),o.latencyHistory=this.latencyHistory,t.connectionData=o}return t}))}processAppData(t){const e=new Lq;if(e.running=0!==t.status&&2!==t.status,e.connectionDuration=t.connection_duration,e.appState=Mn.Stopped,e.running?t.detailed_status===Mn.Connecting||3===t.status?e.appState=Mn.Connecting:t.detailed_status===Mn.Running?e.appState=Mn.Running:t.detailed_status===Mn.ShuttingDown?e.appState=Mn.ShuttingDown:t.detailed_status===Mn.Reconnecting&&(e.appState=Mn.Reconnecting):2===t.status&&(e.lastErrorMsg=t.detailed_status,e.lastErrorMsg||(e.lastErrorMsg=this.translateService.instant("vpn.status-page.unknown-error"))),e.killswitch=!1,t.args&&t.args.length>0)for(let i=0;ithis.firstInput.nativeElement.focus())}process(){let t=this.vpnSavedDataService.getSavedVersion(this.data.server.pk,!0);t=t||this.data.server;const e=this.form.get("value").value;e!==(this.data.editName?this.data.server.customName:this.data.server.personalNote)?(this.data.editName?t.customName=e:t.personalNote=e,this.vpnSavedDataService.updateServer(t),this.snackbarService.showDone("vpn.server-options.edit-value.changes-made-confirmation"),this.dialogRef.close(!0)):this.dialogRef.close()}}hc.\u0275fac=function(t){return new(t||hc)(F(Nn),F(Ti),F(Cr),F(on),F(Vo))},hc.\u0275cmp=qe({type:hc,selectors:[["app-edit-vpn-server-value"]],viewQuery:function(t,e){if(1&t&&ft(Iq,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","value","maxlength","100","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x()()(),D(10,"app-button",6),ye("action",function(){return e.process()}),E(11),R(12,"translate"),x()()),2&t&&(M("headline",B(1,5,"vpn.server-options.edit-value."+(e.data.editName?"name":"note")+"-title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,7,"vpn.server-options.edit-value."+(e.data.editName?"name":"note")+"-label")),c(5),ce(" ",B(12,9,"vpn.server-options.edit-value.apply-button")," "))},dependencies:[Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ri,En,xt]});const Pq=["firstInput"];class ul{constructor(t,e,i){this.dialogRef=t,this.data=e,this.formBuilder=i}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.mediumModalWidth,t.open(ul,i)}ngOnInit(){this.form=this.formBuilder.group({password:["",this.data?void 0:Vt.required]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){this.dialogRef.close("-"+this.form.get("password").value)}}ul.\u0275fac=function(t){return new(t||ul)(F(Nn),F(Ti),F(Cr))},ul.\u0275cmp=qe({type:ul,selectors:[["app-enter-vpn-server-password"]],viewQuery:function(t,e){if(1&t&&ft(Pq,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:12,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","password","type","password","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x()()(),D(10,"app-button",6),ye("action",function(){return e.process()}),E(11),R(12,"translate"),x()()),2&t&&(M("headline",B(1,6,"vpn.server-list.password-dialog.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,8,"vpn.server-list.password-dialog.password"+(e.data?"-if-any":"")+"-label")),c(4),M("disabled",!e.form.valid),c(1),ce(" ",B(12,10,"vpn.server-list.password-dialog.continue-button")," "))},dependencies:[Bi,Ri,Ni,Yi,ii,Li,nr,kr,ri,En,xt]});class fn{static changeCurrentPk(t){this.currentPk=t}static setDefaultTabForServerList(t){sessionStorage.setItem(fn.serverListTabStorageKey,t)}static get vpnTabsData(){const t=sessionStorage.getItem(fn.serverListTabStorageKey);return[{icon:"power_settings_new",label:"vpn.start",linkParts:["/vpn",this.currentPk,"status"]},{icon:"list",label:"vpn.servers",linkParts:t?["/vpn",this.currentPk,"servers",t,"1"]:["/vpn",this.currentPk,"servers"]},{icon:"settings",label:"vpn.settings",linkParts:["/vpn",this.currentPk,"settings"]}]}static getLatencyValueString(t){return t<1e3?"time-in-ms":"time-in-segs"}static getPrintableLatency(t){return t<1e3?t+"":(t/1e3).toFixed(1)}static processServerChange(t,e,i,o,s,a,l,d,w,P,Y){let q;if(d&&(w||P)||w&&(d||P)||P&&(d||w))throw new Error("Invalid call");if(d)q=d.pk;else if(w)q=w.pk;else{if(!P)throw new Error("Invalid call");q=P.pk}const te=i.getSavedVersion(q,!0),pe=te&&(Y||te.usedWithPassword),ke=e.checkNewPk(q);if(ke!==Co.Busy)if(ke!==Co.SamePkRunning||pe)if(ke===Co.MustStop||ke===Co.SamePkRunning&&pe){const Ie=Wt.createConfirmationDialog(s,"vpn.server-change.change-server-while-connected-confirmation");Ie.componentInstance.operationAccepted.subscribe(()=>{Ie.componentInstance.closeModal(),d?e.changeServerUsingHistory(d,Y):w?e.changeServerUsingDiscovery(w,Y):P&&e.changeServerManually(P,Y),fn.redirectAfterServerChange(t,a,l)})}else if(ke!==Co.SamePkStopped||pe)d?e.changeServerUsingHistory(d,Y):w?e.changeServerUsingDiscovery(w,Y):P&&e.changeServerManually(P,Y),fn.redirectAfterServerChange(t,a,l);else{const Ie=Wt.createConfirmationDialog(s,"vpn.server-change.start-same-server-confirmation");Ie.componentInstance.operationAccepted.subscribe(()=>{Ie.componentInstance.closeModal(),P&&te&&i.processFromManual(P),e.start(),fn.redirectAfterServerChange(t,a,l)})}else o.showWarning("vpn.server-change.already-selected-warning");else o.showError("vpn.server-change.busy-error")}static redirectAfterServerChange(t,e,i){e&&e.close(),t.navigate(["vpn",i,"status"])}static openServerOptions(t,e,i,o,s,a){const l=[],d=[];return t.usedWithPassword?(l.push({icon:"lock_open",label:"vpn.server-options.connect-without-password"}),d.push(201),l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-another-password"}),d.push(202)):t.enteredManually&&(l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-password"}),d.push(202)),l.push({icon:"edit",label:"vpn.server-options.edit-name"}),d.push(101),l.push({icon:"subject",label:"vpn.server-options.edit-label"}),d.push(102),(!t||t.flag!==Wn.Favorite)&&(l.push({icon:"star",label:"vpn.server-options.make-favorite"}),d.push(1)),t&&t.flag===Wn.Favorite&&(l.push({icon:"star_outline",label:"vpn.server-options.remove-from-favorites"}),d.push(-1)),(!t||t.flag!==Wn.Blocked)&&(l.push({icon:"pan_tool",label:"vpn.server-options.block"}),d.push(2)),t&&t.flag===Wn.Blocked&&(l.push({icon:"thumb_up",label:"vpn.server-options.unblock"}),d.push(-2)),t&&t.inHistory&&(l.push({icon:"delete",label:"vpn.server-options.remove-from-history"}),d.push(-3)),Hi.openDialog(a,l,"common.options").afterClosed().pipe(Ne(w=>{if(w){const P=i.getSavedVersion(t.pk,!0);if(t=P||t,d[w-=1]>200){if(201===d[w]){let Y=!1;const q=Wt.createConfirmationDialog(a,"vpn.server-options.connect-without-password-confirmation");return q.componentInstance.operationAccepted.subscribe(()=>{Y=!0,fn.processServerChange(e,o,i,s,a,null,fn.currentPk,t,null,null,null),q.componentInstance.closeModal()}),q.afterClosed().pipe(Ce(()=>Y))}return ul.openDialog(a,!1).afterClosed().pipe(Ce(Y=>!(!Y||"-"===Y||(fn.processServerChange(e,o,i,s,a,null,fn.currentPk,t,null,null,Y.substr(1)),0))))}if(d[w]>100)return hc.openDialog(a,{editName:101===d[w],server:t}).afterClosed();if(1===d[w])return fn.makeFavorite(t,i,s,a);if(-1===d[w])return i.changeFlag(t,Wn.None),s.showDone("vpn.server-options.remove-from-favorites-done"),Ge(!0);if(2===d[w])return fn.blockServer(t,i,o,s,a);if(-2===d[w])return i.changeFlag(t,Wn.None),s.showDone("vpn.server-options.unblock-done"),Ge(!0);if(-3===d[w])return fn.removeFromHistory(t,i,s,a)}return Ge(!1)}))}static removeFromHistory(t,e,i,o){let s=!1;const a=Wt.createConfirmationDialog(o,"vpn.server-options.remove-from-history-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,e.removeFromHistory(t.pk),i.showDone("vpn.server-options.remove-from-history-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(Ce(()=>s))}static makeFavorite(t,e,i,o){if(t.flag!==Wn.Blocked)return e.changeFlag(t,Wn.Favorite),i.showDone("vpn.server-options.make-favorite-done"),Ge(!0);let s=!1;const a=Wt.createConfirmationDialog(o,"vpn.server-options.make-favorite-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,e.changeFlag(t,Wn.Favorite),i.showDone("vpn.server-options.make-favorite-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(Ce(()=>s))}static blockServer(t,e,i,o,s){if(t.flag!==Wn.Favorite&&(!e.currentServer||e.currentServer.pk!==t.pk))return e.changeFlag(t,Wn.Blocked),o.showDone("vpn.server-options.block-done"),Ge(!0);let a=!1;const l=e.currentServer&&e.currentServer.pk===t.pk;let d;d=t.flag!==Wn.Favorite?"vpn.server-options.block-selected-confirmation":l?"vpn.server-options.block-selected-favorite-confirmation":"vpn.server-options.block-confirmation";const w=Wt.createConfirmationDialog(s,d);return w.componentInstance.operationAccepted.subscribe(()=>{a=!0,e.changeFlag(t,Wn.Blocked),o.showDone("vpn.server-options.block-done"),l&&i.stop(),w.componentInstance.closeModal()}),w.afterClosed().pipe(Ce(()=>a))}}fn.serverListTabStorageKey="ServerListTab",fn.currentPk="";var ga=(()=>(function(n){n[n.Seconds=0]="Seconds",n[n.Minutes=1]="Minutes",n[n.Hours=2]="Hours",n[n.Days=3]="Days",n[n.Weeks=4]="Weeks"}(ga||(ga={})),ga))();class Oq{}class Rg{static getElapsedTime(t){const e=new Oq;e.timeRepresentation=ga.Seconds,e.totalMinutes=Math.floor(t/60).toString(),e.translationVarName="second";let i=1;t>=60&&t<3600?(e.timeRepresentation=ga.Minutes,i=60,e.translationVarName="minute"):t>=3600&&t<86400?(e.timeRepresentation=ga.Hours,i=3600,e.translationVarName="hour"):t>=86400&&t<604800?(e.timeRepresentation=ga.Days,i=86400,e.translationVarName="day"):t>=604800&&(e.timeRepresentation=ga.Weeks,i=604800,e.translationVarName="week");const o=Math.floor(t/i);return e.elapsedTime=o.toString(),(e.timeRepresentation===ga.Seconds||o>1)&&(e.translationVarName=e.translationVarName+"s"),e}}function Aq(n,t){1&n&&xe(0,"mat-spinner",6),2&n&&M("diameter",14)}function Fq(n,t){1&n&&xe(0,"mat-spinner",7),2&n&&M("diameter",18)}function Rq(n,t){1&n&&(D(0,"mat-icon",10),E(1,"refresh"),x()),2&n&&M("inline",!0)}function Nq(n,t){1&n&&(D(0,"mat-icon",11),E(1,"warning"),x()),2&n&&M("inline",!0)}function Yq(n,t){if(1&n&&(Ue(0),V(1,Rq,2,1,"mat-icon",8),V(2,Nq,2,1,"mat-icon",9),We()),2&n){const e=z();c(1),M("ngIf",!e.showAlert),c(1),M("ngIf",e.showAlert)}}const FI=function(n){return{time:n}};function Bq(n,t){if(1&n&&(D(0,"span",12),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),oe(Ct(2,1,"refresh-button."+e.elapsedTime.translationVarName,Be(4,FI,e.elapsedTime.elapsedTime)))}}const Hq=function(n){return{"grey-button-background":n}};class ip{constructor(){this.refeshRate=-1}set secondsSinceLastUpdate(t){this.elapsedTime=Rg.getElapsedTime(t)}}ip.\u0275fac=function(t){return new(t||ip)},ip.\u0275cmp=qe({type:ip,selectors:[["app-refresh-button"]],inputs:{secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate"},decls:7,vars:14,consts:[["mat-button","",1,"time-button","subtle-transparent-button","white-theme",3,"disabled","ngClass","matTooltip"],[1,"internal-container"],["class","icon d-none d-md-inline-block",3,"diameter",4,"ngIf"],["class","icon d-md-none",3,"diameter",4,"ngIf"],[4,"ngIf"],["class","d-none d-md-inline",4,"ngIf"],[1,"icon","d-none","d-md-inline-block",3,"diameter"],[1,"icon","d-md-none",3,"diameter"],["class","icon",3,"inline",4,"ngIf"],["class","icon alert",3,"inline",4,"ngIf"],[1,"icon",3,"inline"],[1,"icon","alert",3,"inline"],[1,"d-none","d-md-inline"]],template:function(t,e){1&t&&(D(0,"button",0),R(1,"translate"),D(2,"div",1),V(3,Aq,1,1,"mat-spinner",2),V(4,Fq,1,1,"mat-spinner",3),V(5,Yq,3,2,"ng-container",4),V(6,Bq,3,6,"span",5),x()()),2&t&&(M("disabled",e.showLoading)("ngClass",Be(10,Hq,!e.showLoading))("matTooltip",e.showAlert?Ct(1,7,"refresh-button.error-tooltip",Be(12,FI,e.refeshRate)):""),c(3),M("ngIf",e.showLoading),c(1),M("ngIf",e.showLoading),c(1),M("ngIf",!e.showLoading),c(1),M("ngIf",e.elapsedTime))},dependencies:[Rn,It,$r,yn,vi,oc,xt],styles:[".time-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;height:40px}.time-button[disabled][_ngcontent-%COMP%]{opacity:.7!important;color:#f8f9f9}.time-button[disabled][_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.7}.time-button[_ngcontent-%COMP%] .internal-container[_ngcontent-%COMP%]{display:flex;align-items:center}.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:16px;margin-right:5px;opacity:.5;display:inline-block}@media (max-width: 767px){.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:22px;margin-right:0;opacity:.75}}.time-button[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%]{color:orange;opacity:1}.time-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.6rem}"]});class rr{transform(t,e){let o,i=!0;e?e.showPerSecond?e.useBits?(o=rr.measurementsPerSecInBits,i=!1):o=rr.measurementsPerSec:e.useBits?(o=rr.accumulatedMeasurementsInBits,i=!1):o=rr.accumulatedMeasurements:o=rr.accumulatedMeasurements;let s=new J1.BigNumber(t);i||(s=s.multipliedBy(8));let a=o[0],l=0;for(;s.dividedBy(1024).isGreaterThan(1);)s=s.dividedBy(1024),l+=1,a=o[l];let d="";return(!e||!!e.showValue)&&(d=e&&e.limitDecimals?new J1.BigNumber(s).decimalPlaces(1).toString():s.toFixed(2)),(!e||!!e.showValue&&!!e.showUnit)&&(d+=" "),(!e||!!e.showUnit)&&(d+=a),d}}function Vq(n,t){if(1&n){const e=et();D(0,"button",23),ye("click",function(){return Pe(e),Oe(z().requestAction(null))}),D(1,"mat-icon"),E(2,"chevron_left"),x()()}}function jq(n,t){1&n&&(Ue(0),xe(1,"img",24),We())}function zq(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z();c(1),ce(" ",B(2,1,e.titleParts[e.titleParts.length-1])," ")}}rr.accumulatedMeasurements=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],rr.measurementsPerSec=["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"],rr.accumulatedMeasurementsInBits=["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"],rr.measurementsPerSecInBits=["b/s","Kb/s","Mb/s","Gb/s","Tb/s","Pb/s","Eb/s","Zb/s","Yb/s"],rr.\u0275fac=function(t){return new(t||rr)},rr.\u0275pipe=Jn({name:"autoScale",type:rr,pure:!0});const Uq=function(n){return{transparent:n}};function Wq(n,t){if(1&n){const e=et();Ue(0),D(1,"div",26),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).requestAction(s.actionName))}),D(2,"mat-icon",27),E(3),x(),E(4),R(5,"translate"),x(),We()}if(2&n){const e=t.$implicit;c(1),M("disabled",e.disabled),c(1),M("ngClass",Be(6,Uq,e.disabled)),c(1),oe(e.icon),c(1),ce(" ",B(5,4,e.name)," ")}}function $q(n,t){1&n&&xe(0,"div",28)}function Gq(n,t){if(1&n&&(Ue(0),V(1,Wq,6,8,"ng-container",25),V(2,$q,1,0,"div",9),We()),2&n){const e=z();c(1),M("ngForOf",e.optionsData),c(1),M("ngIf",e.returnText)}}function qq(n,t){1&n&&xe(0,"div",28)}function Kq(n,t){1&n&&xe(0,"img",31),2&n&&M("src","assets/img/lang/"+z(2).language.iconName,Oo)}function Zq(n,t){if(1&n){const e=et();D(0,"div",29),ye("click",function(){return Pe(e),Oe(z().openLanguageWindow())}),V(1,Kq,1,1,"img",30),E(2),R(3,"translate"),x()}if(2&n){const e=z();c(1),M("ngIf",e.language),c(1),ce(" ",B(3,2,e.language?e.language.name:"")," ")}}function Xq(n,t){if(1&n){const e=et();D(0,"div",32)(1,"a",33),ye("click",function(){return Pe(e),Oe(z().requestAction(null))}),R(2,"translate"),D(3,"mat-icon",34),E(4,"chevron_left"),x()()()}if(2&n){const e=z();c(1),M("matTooltip",B(2,2,e.returnText)),c(2),M("inline",!0)}}function Qq(n,t){if(1&n&&(D(0,"span",35),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),ce(" ",B(2,1,e.titleParts[e.titleParts.length-1])," ")}}function Jq(n,t){1&n&&xe(0,"img",36)}const eK=function(n,t){return{"d-lg-none":n,"d-none d-md-inline-block":t}},RI=function(n,t){return{"mouse-disabled":n,"grey-button-background":t}};function tK(n,t){if(1&n&&(D(0,"div",27)(1,"a",37)(2,"mat-icon",34),E(3),x(),D(4,"span"),E(5),R(6,"translate"),x()()()),2&n){const e=t.$implicit,i=t.index,o=z();M("ngClass",cn(9,eK,e.onlyIfLessThanLg,1!==o.tabsData.length)),c(1),M("disabled",i===o.selectedTabIndex)("routerLink",e.linkParts)("ngClass",cn(12,RI,o.disableMouse,!o.disableMouse&&i!==o.selectedTabIndex)),c(1),M("inline",!0),c(1),oe(e.icon),c(2),oe(B(6,7,e.label))}}const nK=function(n){return{"d-none":n}};function iK(n,t){if(1&n){const e=et();D(0,"div",38)(1,"button",39),ye("click",function(){return Pe(e),Oe(z().openTabSelector())}),D(2,"div",40)(3,"mat-icon",34),E(4),x(),D(5,"span"),E(6),R(7,"translate"),x(),D(8,"mat-icon",34),E(9,"keyboard_arrow_down"),x()()()()}if(2&n){const e=z();M("ngClass",Be(8,nK,1===e.tabsData.length)),c(1),M("ngClass",cn(10,RI,e.disableMouse,!e.disableMouse)),c(2),M("inline",!0),c(1),oe(e.tabsData[e.selectedTabIndex].icon),c(2),oe(B(7,6,e.tabsData[e.selectedTabIndex].label)),c(2),M("inline",!0)}}function rK(n,t){if(1&n){const e=et();D(0,"app-refresh-button",45),ye("click",function(){return Pe(e),Oe(z(2).sendRefreshEvent())}),x()}if(2&n){const e=z(2);M("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.showLoading)("showAlert",e.showAlert)("refeshRate",e.refeshRate)}}function oK(n,t){if(1&n&&(D(0,"div",41),V(1,rK,1,4,"app-refresh-button",42),D(2,"button",43)(3,"div",44)(4,"mat-icon",34),E(5,"menu"),x()()()()),2&n){const e=z(),i=ci(12);c(1),M("ngIf",e.showUpdateButton),c(1),M("matMenuTriggerFor",i),c(2),M("inline",!0)}}function sK(n,t){if(1&n){const e=et();D(0,"div",53)(1,"div",54),ye("click",function(){return Pe(e),Oe(z(2).openLanguageWindow())}),xe(2,"img",55),E(3),R(4,"translate"),x()()}if(2&n){const e=z(2);c(2),M("src","assets/img/lang/"+e.language.iconName,Oo),c(1),ce(" ",B(4,2,e.language?e.language.name:"")," ")}}function aK(n,t){1&n&&(D(0,"div",56),R(1,"translate"),D(2,"mat-icon",34),E(3,"warning"),x(),E(4),R(5,"translate"),x()),2&n&&(M("matTooltip",B(1,3,"vpn.connection-error.info")),c(2),M("inline",!0),c(2),ce(" ",B(5,5,"vpn.connection-error.text")," "))}function lK(n,t){1&n&&(D(0,"div",63)(1,"mat-icon",61),E(2,"brightness_1"),x()()),2&n&&(c(1),M("inline",!0))}const cK=function(n,t){return{"animation-container":n,"d-none":t}},dK=function(n){return{time:n}},NI=function(n){return{showValue:!0,showUnit:!0,showPerSecond:!0,useBits:n}};function uK(n,t){if(1&n&&(D(0,"table",57)(1,"tr")(2,"td",58),R(3,"translate"),D(4,"div",27)(5,"div",59)(6,"div",60)(7,"mat-icon",61),E(8,"brightness_1"),x(),E(9),R(10,"translate"),x()()(),V(11,lK,3,1,"div",62),D(12,"mat-icon",61),E(13,"brightness_1"),x(),E(14),R(15,"translate"),x(),D(16,"td",58),R(17,"translate"),D(18,"mat-icon",34),E(19,"swap_horiz"),x(),E(20),R(21,"translate"),x()(),D(22,"tr")(23,"td",58),R(24,"translate"),D(25,"mat-icon",34),E(26,"arrow_upward"),x(),E(27),R(28,"autoScale"),x(),D(29,"td",58),R(30,"translate"),D(31,"mat-icon",34),E(32,"arrow_downward"),x(),E(33),R(34,"autoScale"),x()()()),2&n){const e=z(2);c(2),eo(e.vpnData.stateClass+" state-td"),M("matTooltip",B(3,18,e.vpnData.state+"-info")),c(2),M("ngClass",cn(39,cK,e.showVpnStateAnimation,!e.showVpnStateAnimation)),c(3),M("inline",!0),c(2),ce(" ",B(10,20,e.vpnData.state)," "),c(2),M("ngIf",e.showVpnStateAnimatedDot),c(1),M("inline",!0),c(2),ce(" ",B(15,22,e.vpnData.state)," "),c(2),M("matTooltip",B(17,24,"vpn.connection-info.latency-info")),c(2),M("inline",!0),c(2),ce(" ",Ct(21,26,"common."+e.getLatencyValueString(e.vpnData.latency),Be(42,dK,e.getPrintableLatency(e.vpnData.latency)))," "),c(3),M("matTooltip",B(24,29,"vpn.connection-info.upload-info")),c(2),M("inline",!0),c(2),ce(" ",Ct(28,31,e.vpnData.uploadSpeed,Be(44,NI,e.showVpnDataStatsInBits))," "),c(2),M("matTooltip",B(30,34,"vpn.connection-info.download-info")),c(2),M("inline",!0),c(2),ce(" ",Ct(34,36,e.vpnData.downloadSpeed,Be(46,NI,e.showVpnDataStatsInBits))," ")}}function hK(n,t){1&n&&xe(0,"mat-spinner",64),2&n&&M("diameter",20)}function fK(n,t){if(1&n&&(D(0,"div")(1,"div",46),V(2,sK,5,4,"div",47),xe(3,"div",48),V(4,aK,6,7,"div",49),x(),D(5,"div",50),V(6,uK,35,48,"table",51),V(7,hK,1,1,"mat-spinner",52),x()()),2&n){const e=z();c(2),M("ngIf",!e.hideLanguageButton&&e.language),c(2),M("ngIf",e.errorsConnectingToVpn),c(2),M("ngIf",e.vpnData),c(1),M("ngIf",!e.vpnData)}}function pK(n,t){1&n&&(D(0,"div",65)(1,"div",66)(2,"mat-icon",34),E(3,"error_outline"),x(),E(4),R(5,"translate"),x(),D(6,"div",67),E(7),R(8,"translate"),x()()),2&n&&(c(2),M("inline",!0),c(2),ce(" ",B(5,3,"vpn.remote-access-title")," "),c(3),ce(" ",B(8,5,"vpn.remote-access-text")," "))}const YI=function(n,t){return{"d-lg-none":n,"d-none":t}},mK=function(n){return{"normal-height":n}},_K=function(n,t){return{"d-none d-lg-flex":n,"d-flex":t}};class cs{constructor(t,e,i,o,s){this.languageService=t,this.dialog=e,this.router=i,this.vpnClientService=o,this.vpnSavedDataService=s,this.disableMouse=!1,this.selectedTabIndex=0,this.refeshRate=-1,this.showUpdateButton=!0,this.localVpnKeyInternal="",this.refreshRequested=new ht,this.optionSelected=new ht,this.hideLanguageButton=!0,this.showVpnInfo=!1,this.initialVpnStateObtained=!1,this.lastVpnState="",this.showVpnStateAnimation=!1,this.showVpnStateAnimatedDot=!0,this.showVpnDataStatsInBits=!0,this.remoteAccess=!1,this.errorsConnectingToVpn=!1,this.langSubscriptionsGroup=[]}set localVpnKey(t){this.localVpnKeyInternal=t,t?this.startGettingVpnInfo():this.stopGettingVpnInfo()}ngOnInit(){this.langSubscriptionsGroup.push(this.languageService.currentLanguage.subscribe(e=>{this.language=e})),this.langSubscriptionsGroup.push(this.languageService.languages.subscribe(e=>{this.hideLanguageButton=!(e.length>1)}));const t=window.location.hostname;!t.toLowerCase().includes("localhost")&&!t.toLowerCase().includes("127.0.0.1")&&(this.remoteAccess=!0)}ngOnDestroy(){this.langSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.refreshRequested.complete(),this.optionSelected.complete(),this.stopGettingVpnInfo()}startGettingVpnInfo(){this.showVpnInfo=!0,this.vpnClientService.initialize(this.localVpnKeyInternal),this.updateVpnDataStatsUnit(),this.vpnDataSubscription=this.vpnClientService.backendState.subscribe(t=>{t&&(this.vpnData={state:"",stateClass:"",latency:t.vpnClientAppData.connectionData?t.vpnClientAppData.connectionData.latency:0,downloadSpeed:t.vpnClientAppData.connectionData?t.vpnClientAppData.connectionData.downloadSpeed:0,uploadSpeed:t.vpnClientAppData.connectionData?t.vpnClientAppData.connectionData.uploadSpeed:0},t.vpnClientAppData.appState===Mn.Stopped?(this.vpnData.state="vpn.connection-info.state-disconnected",this.vpnData.stateClass="red-clear-text"):t.vpnClientAppData.appState===Mn.Connecting?(this.vpnData.state="vpn.connection-info.state-connecting",this.vpnData.stateClass="yellow-clear-text"):t.vpnClientAppData.appState===Mn.Running?(this.vpnData.state="vpn.connection-info.state-connected",this.vpnData.stateClass="green-clear-text"):t.vpnClientAppData.appState===Mn.ShuttingDown?(this.vpnData.state="vpn.connection-info.state-disconnecting",this.vpnData.stateClass="yellow-clear-text"):t.vpnClientAppData.appState===Mn.Reconnecting&&(this.vpnData.state="vpn.connection-info.state-reconnecting",this.vpnData.stateClass="yellow-clear-text"),this.initialVpnStateObtained?this.lastVpnState!==this.vpnData.state&&(this.lastVpnState=this.vpnData.state,this.showVpnStateAnimation=!1,this.showVpnStateChangeAnimationSubscription&&this.showVpnStateChangeAnimationSubscription.unsubscribe(),this.showVpnStateChangeAnimationSubscription=Ge(0).pipe(Di(1)).subscribe(()=>this.showVpnStateAnimation=!0)):(this.initialVpnStateObtained=!0,this.lastVpnState=this.vpnData.state),this.showVpnStateAnimatedDot=!1,this.showVpnStateAnimatedDotSubscription&&this.showVpnStateAnimatedDotSubscription.unsubscribe(),this.showVpnStateAnimatedDotSubscription=Ge(0).pipe(Di(1)).subscribe(()=>this.showVpnStateAnimatedDot=!0))}),this.errorsConnectingToVpnSubscription=this.vpnClientService.errorsConnecting.subscribe(t=>{this.errorsConnectingToVpn=t})}stopGettingVpnInfo(){this.showVpnInfo=!1,this.vpnDataSubscription&&this.vpnDataSubscription.unsubscribe(),this.errorsConnectingToVpnSubscription&&this.errorsConnectingToVpnSubscription.unsubscribe()}getLatencyValueString(t){return fn.getLatencyValueString(t)}getPrintableLatency(t){return fn.getPrintableLatency(t)}requestAction(t){this.optionSelected.emit(t)}openLanguageWindow(){ll.openDialog(this.dialog)}sendRefreshEvent(){this.refreshRequested.emit()}openTabSelector(){const t=[];this.tabsData.forEach(e=>{t.push({label:e.label,icon:e.icon})}),Hi.openDialog(this.dialog,t,"tabs-window.title").afterClosed().subscribe(e=>{e&&(e-=1)!==this.selectedTabIndex&&this.router.navigate(this.tabsData[e].linkParts)})}updateVpnDataStatsUnit(){const t=this.vpnSavedDataService.getDataUnitsSetting();this.showVpnDataStatsInBits=t===ao.BitsSpeedAndBytesVolume||t===ao.OnlyBits}}cs.\u0275fac=function(t){return new(t||cs)(F(da),F(Ln),F(Qt),F(jo),F(Vo))},cs.\u0275cmp=qe({type:cs,selectors:[["app-top-bar"]],inputs:{disableMouse:"disableMouse",titleParts:"titleParts",tabsData:"tabsData",selectedTabIndex:"selectedTabIndex",optionsData:"optionsData",returnText:"returnText",secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate",showUpdateButton:"showUpdateButton",localVpnKey:"localVpnKey"},outputs:{refreshRequested:"refreshRequested",optionSelected:"optionSelected"},decls:29,vars:31,consts:[[1,"top-bar",3,"ngClass"],[1,"button-container"],["mat-icon-button","","class","transparent-button",3,"click",4,"ngIf"],[1,"logo-container"],[4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"matMenuTriggerFor"],[1,"top-bar-margin",3,"ngClass"],[3,"overlapTrigger"],["menu","matMenu"],["class","menu-separator",4,"ngIf"],["mat-menu-item","",3,"click",4,"ngIf"],[1,"main-container",3,"ngClass"],[1,"main-area"],[1,"title",3,"ngClass"],["class","return-container",4,"ngIf"],["class","title-text",4,"ngIf"],["class","title-image","src","./assets/img/logo-vpn.png",4,"ngIf"],[1,"lower-container"],[3,"ngClass",4,"ngFor","ngForOf"],["class","d-md-none",3,"ngClass",4,"ngIf"],[1,"blank-space"],["class","right-container",4,"ngIf"],["class","remote-vpn-alert-container",4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"click"],["src","/assets/img/logo-s.png"],[4,"ngFor","ngForOf"],["mat-menu-item","",3,"disabled","click"],[3,"ngClass"],[1,"menu-separator"],["mat-menu-item","",3,"click"],["class","flag",3,"src",4,"ngIf"],[1,"flag",3,"src"],[1,"return-container"],[1,"return-button","transparent-button",3,"matTooltip","click"],[3,"inline"],[1,"title-text"],["src","./assets/img/logo-vpn.png",1,"title-image"],["mat-button","",1,"tab-button","white-theme",3,"disabled","routerLink","ngClass"],[1,"d-md-none",3,"ngClass"],["mat-button","",1,"tab-button","select-tab-button","white-theme",3,"ngClass","click"],[1,"d-flex"],[1,"right-container"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate","click",4,"ngIf"],["mat-button","",1,"menu-button","subtle-transparent-button","d-none","d-lg-block",3,"matMenuTriggerFor"],[1,"icon-container"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate","click"],[1,"top-text-vpn-container"],["class","languaje-button-vpn",4,"ngIf"],[1,"elements-separator"],["class","connection-error-msg-vpn blinking",3,"matTooltip",4,"ngIf"],[1,"vpn-info","vpn-dark-box-radius"],["cellspacing","0","cellpadding","0",4,"ngIf"],[3,"diameter",4,"ngIf"],[1,"languaje-button-vpn"],[1,"text-container",3,"click"],[1,"language-flag",3,"src"],[1,"connection-error-msg-vpn","blinking",3,"matTooltip"],["cellspacing","0","cellpadding","0"],[3,"matTooltip"],[1,"internal-animation-container"],[1,"animation-area"],[1,"state-icon",3,"inline"],["class","aminated-state-icon-container",4,"ngIf"],[1,"aminated-state-icon-container"],[3,"diameter"],[1,"remote-vpn-alert-container"],[1,"top-line"],[1,"bottom-line"]],template:function(t,e){if(1&t&&(D(0,"div",0)(1,"div",1),V(2,Vq,3,0,"button",2),x(),D(3,"div",3),V(4,jq,2,0,"ng-container",4),V(5,zq,3,3,"ng-container",4),x(),D(6,"div",1)(7,"button",5)(8,"mat-icon"),E(9,"menu"),x()()()(),xe(10,"div",6),D(11,"mat-menu",7,8),V(13,Gq,3,2,"ng-container",4),V(14,qq,1,0,"div",9),V(15,Zq,4,4,"div",10),x(),D(16,"div",11)(17,"div",12)(18,"div",13),V(19,Xq,5,4,"div",14),V(20,Qq,3,3,"span",15),V(21,Jq,1,0,"img",16),x(),D(22,"div",17),V(23,tK,7,15,"div",18),V(24,iK,10,13,"div",19),xe(25,"div",20),V(26,oK,6,3,"div",21),x()(),V(27,fK,8,4,"div",4),x(),V(28,pK,9,7,"div",22)),2&t){const i=ci(12);M("ngClass",cn(20,YI,!e.showVpnInfo,e.showVpnInfo)),c(2),M("ngIf",e.returnText),c(2),M("ngIf",!e.titleParts||e.titleParts.length<2),c(1),M("ngIf",e.titleParts&&e.titleParts.length>=2),c(2),M("matMenuTriggerFor",i),c(3),M("ngClass",cn(23,YI,!e.showVpnInfo,e.showVpnInfo)),c(1),M("overlapTrigger",!1),c(2),M("ngIf",e.optionsData&&e.optionsData.length>=1),c(1),M("ngIf",!e.hideLanguageButton&&e.optionsData&&e.optionsData.length>=1),c(1),M("ngIf",!e.hideLanguageButton),c(1),M("ngClass",Be(26,mK,!e.showVpnInfo)),c(2),M("ngClass",cn(28,_K,!e.showVpnInfo,e.showVpnInfo)),c(1),M("ngIf",e.returnText),c(1),M("ngIf",!e.showVpnInfo),c(1),M("ngIf",e.showVpnInfo),c(2),M("ngForOf",e.tabsData),c(1),M("ngIf",e.tabsData&&e.tabsData[e.selectedTabIndex]),c(2),M("ngIf",!e.showVpnInfo),c(1),M("ngIf",e.showVpnInfo),c(1),M("ngIf",e.showVpnInfo&&e.remoteAccess)}},dependencies:[Rn,bi,It,Ja,pz,$r,rl,yn,vi,vu,_a,yu,oc,ip,xt,rr],styles:["@media (max-width: 991px){.normal-height[_ngcontent-%COMP%]{height:55px!important}}.main-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:10px;margin-bottom:-5px;height:100px;display:flex}.main-container[_ngcontent-%COMP%] .main-area[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.875rem;margin-bottom:15px;margin-left:5px;flex-direction:row;align-items:center}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-text[_ngcontent-%COMP%]{z-index:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-image[_ngcontent-%COMP%]{width:124px;height:21px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%]{width:30px;position:relative;top:2px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%] .return-button[_ngcontent-%COMP%]{line-height:1;font-size:25px;position:relative;top:2px;width:100%;margin-right:4px;cursor:pointer}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%]{display:flex}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .blank-space[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;opacity:.5;margin-right:2px;text-decoration:none;height:40px;display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]:hover{opacity:.75}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[disabled][_ngcontent-%COMP%]{opacity:1!important;color:#f8f9f9;background:rgba(0,0,0,.7)!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{margin-right:2px;opacity:.75;font-size:18px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1rem;margin:0 4px;position:relative;top:-1px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]{opacity:.75!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]:hover{opacity:1!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%]{display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] app-refresh-button[_ngcontent-%COMP%]{align-self:flex-end}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%]{height:32px;width:32px;min-width:0px!important;background-color:#f8f9f9;border-radius:100%;padding:0!important;line-height:normal;color:#929292;font-size:20px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{display:flex;place-content:center}.menu-separator[_ngcontent-%COMP%]{width:100%;height:1px;background-color:#0000001f}.flag[_ngcontent-%COMP%]{width:24px;margin-right:16px}.transparent[_ngcontent-%COMP%]{opacity:.5}.top-bar[_ngcontent-%COMP%]{position:fixed;z-index:10;width:100%;height:56px;background-color:#f8f9f9;top:0;left:0;right:0;color:#202226;display:flex}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{flex-grow:1;display:flex;justify-content:center;align-items:center}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%]{flex-shrink:0;width:56px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:56px;height:56px}.top-bar-margin[_ngcontent-%COMP%]{margin-top:56px;flex-shrink:0}.vpn-info[_ngcontent-%COMP%]{font-size:.7rem;background:rgba(0,0,0,.7);padding:15px 20px;align-self:center}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] .state-td[_ngcontent-%COMP%]{font-weight:700}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 0;min-width:90px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:3px;font-size:12px;position:relative;top:1px;-webkit-user-select:none;user-select:none;width:auto;line-height:1}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{transform:scale(.75)}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{height:auto;animation:_ngcontent-%COMP%_state-icon-animation 1s linear 1}@keyframes _ngcontent-%COMP%_state-icon-animation{0%{transform:perspective(1px) scale(1);opacity:.8}to{transform:scale(2);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%]{width:200px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%] .animation-area[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_state-animation 1s linear 1;opacity:0}@keyframes _ngcontent-%COMP%_state-animation{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{padding-right:30px}.vpn-info[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.top-text-vpn-container[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;font-size:.6rem}.top-text-vpn-container[_ngcontent-%COMP%] .connection-error-msg-vpn[_ngcontent-%COMP%]{margin:-5px 5px 5px 10px;color:orange}.top-text-vpn-container[_ngcontent-%COMP%] .elements-separator[_ngcontent-%COMP%]{flex-grow:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%]{margin:-5px 10px 5px 0}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{cursor:pointer;display:inline;opacity:.8}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]:hover{opacity:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .language-flag[_ngcontent-%COMP%]{width:11px;height:11px;margin-right:2px}.remote-vpn-alert-container[_ngcontent-%COMP%]{background-color:#da3439;margin:0 -21px;padding:10px 20px 15px;text-align:center}.remote-vpn-alert-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:14px}.remote-vpn-alert-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:1.25rem}.remote-vpn-alert-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.8rem}"]});const BI=function(){return["start.title"]};function gK(n,t){if(1&n&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3),x(),xe(3,"app-loading-indicator",4),x()),2&n){const e=z();c(2),M("titleParts",Un(4,BI))("tabsData",e.tabsData)("selectedTabIndex",e.showDmsgInfo?1:0)("showUpdateButton",!1)}}function bK(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function vK(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function yK(n,t){if(1&n&&(D(0,"div",23)(1,"span"),E(2),R(3,"translate"),x(),V(4,bK,3,3,"ng-container",24),V(5,vK,2,1,"ng-container",24),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function MK(n,t){if(1&n){const e=et();D(0,"div",20),ye("click",function(){return Pe(e),Oe(z(2).dataFilterer.removeFilters())}),V(1,yK,6,5,"div",21),D(2,"div",22),E(3),R(4,"translate"),x()()}if(2&n){const e=z(2);c(1),M("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),oe(B(4,2,"filters.press-to-remove"))}}function wK(n,t){if(1&n){const e=et();D(0,"mat-icon",25),ye("click",function(){return Pe(e),Oe(z(2).dataFilterer.changeFilters())}),R(1,"translate"),E(2,"filter_list"),x()}2&n&&M("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function xK(n,t){1&n&&(D(0,"mat-icon",26),E(1,"more_horiz"),x()),2&n&&(z(),M("matMenuTriggerFor",ci(12)))}const HI=function(){return["/nodes","list"]},VI=function(){return["/nodes","dmsg"]};function CK(n,t){if(1&n&&xe(0,"app-paginator",27),2&n){const e=z(2);M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showDmsgInfo?Un(5,VI):Un(4,HI))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function kK(n,t){if(1&n&&(D(0,"mat-icon",42),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function SK(n,t){if(1&n&&(D(0,"mat-icon",42),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function DK(n,t){if(1&n&&(D(0,"mat-icon",42),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function TK(n,t){if(1&n&&(D(0,"mat-icon",42),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function LK(n,t){1&n&&(Ue(0),E(1,"*"),We())}function EK(n,t){if(1&n&&(Ue(0),D(1,"mat-icon",42),E(2),x(),V(3,LK,2,0,"ng-container",24),We()),2&n){const e=z(5);c(1),M("inline",!0),c(1),oe(e.dataSorter.sortingArrow),c(1),M("ngIf",e.dataSorter.currentlySortingByLabel)}}function IK(n,t){if(1&n){const e=et();D(0,"th",38),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.dmsgServerSortData))}),E(1),R(2,"translate"),V(3,EK,4,3,"ng-container",24),x()}if(2&n){const e=z(4);c(1),ce(" ",B(2,2,"nodes.dmsg-server")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.dmsgServerSortData)}}function PK(n,t){if(1&n&&(D(0,"mat-icon",42),E(1),x()),2&n){const e=z(5);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function OK(n,t){if(1&n){const e=et();D(0,"th",38),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.pingSortData))}),E(1),R(2,"translate"),V(3,PK,2,2,"mat-icon",35),x()}if(2&n){const e=z(4);c(1),ce(" ",B(2,2,"nodes.ping")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.pingSortData)}}function AK(n,t){1&n&&(D(0,"mat-icon",49),R(1,"translate"),E(2,"star"),x()),2&n&&M("inline",!0)("matTooltip",B(1,2,"nodes.hypervisor-info"))}function FK(n,t){if(1&n){const e=et();D(0,"app-labeled-element-text",51),ye("labelEdited",function(){return Pe(e),Oe(z(6).forceDataRefresh())}),x()}if(2&n){const e=z(2).$implicit,i=z(4);Dn("id",e.dmsgServerPk),M("short",!0)("elementType",i.labeledElementTypes.DmsgServer)}}function RK(n,t){if(1&n&&(D(0,"td"),V(1,FK,1,3,"app-labeled-element-text",50),x()),2&n){const e=z().$implicit;c(1),M("ngIf",e.dmsgServerPk)}}const jI=function(n){return{time:n}};function NK(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z(2).$implicit;c(1),ce(" ",Ct(2,1,"common.time-in-ms",Be(4,jI,e.roundTripPing))," ")}}function YK(n,t){if(1&n&&(D(0,"td"),V(1,NK,3,6,"ng-container",24),x()),2&n){const e=z().$implicit;c(1),M("ngIf",e.dmsgServerPk)}}function BK(n,t){1&n&&(D(0,"button",52),R(1,"translate"),D(2,"mat-icon",42),E(3,"chevron_right"),x()()),2&n&&(M("matTooltip",B(1,2,"nodes.view-node")),c(2),M("inline",!0))}function HK(n,t){if(1&n){const e=et();D(0,"button",46),ye("click",function(o){Pe(e);const s=z().$implicit,a=z(4);return o.stopPropagation(),o.preventDefault(),Oe(a.deleteNode(s))}),R(1,"translate"),D(2,"mat-icon"),E(3,"close"),x()()}2&n&&M("matTooltip",B(1,1,"nodes.delete-node"))}const VK=function(n,t){return{"click-effect":n,"non-selectable":t}},zI=function(n){return["/nodes",n]};function jK(n,t){if(1&n){const e=et();D(0,"a",43)(1,"td"),V(2,AK,3,4,"mat-icon",44),x(),D(3,"td"),xe(4,"span",45),R(5,"translate"),x(),D(6,"td"),E(7),x(),D(8,"td"),E(9),x(),V(10,RK,2,1,"td",24),V(11,YK,2,1,"td",24),D(12,"td",40)(13,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.copyToClipboard(a))}),R(14,"translate"),D(15,"mat-icon",42),E(16,"filter_none"),x()(),D(17,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.showEditLabelDialog(a))}),R(18,"translate"),D(19,"mat-icon",42),E(20,"short_text"),x()(),V(21,BK,4,4,"button",47),V(22,HK,4,3,"button",48),x()()}if(2&n){const e=t.$implicit,i=z(4);M("ngClass",cn(22,VK,e.online,!e.online))("routerLink",e.online?Be(25,zI,e.localPk):null),c(2),M("ngIf",e.isHypervisor),c(2),eo(i.nodeStatusClass(e,!0)),M("matTooltip",B(5,16,i.nodeStatusText(e,!0))),c(3),ce(" ",e.label," "),c(2),ce(" ",e.localPk," "),c(1),M("ngIf",i.showDmsgInfo),c(1),M("ngIf",i.showDmsgInfo),c(2),M("matTooltip",B(14,18,i.showDmsgInfo?"nodes.copy-data":"nodes.copy-key")),c(2),M("inline",!0),c(2),M("matTooltip",B(18,20,"labeled-element.edit-label")),c(2),M("inline",!0),c(2),M("ngIf",e.online),c(1),M("ngIf",!e.online)}}function zK(n,t){if(1&n){const e=et();D(0,"table",32)(1,"tr")(2,"th",33),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),R(3,"translate"),D(4,"mat-icon",34),E(5,"star_outline"),x(),V(6,kK,2,2,"mat-icon",35),x(),D(7,"th",33),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.stateSortData))}),R(8,"translate"),xe(9,"span",36),V(10,SK,2,2,"mat-icon",35),x(),D(11,"th",37),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.labelSortData))}),E(12),R(13,"translate"),V(14,DK,2,2,"mat-icon",35),x(),D(15,"th",38),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.keySortData))}),E(16),R(17,"translate"),V(18,TK,2,2,"mat-icon",35),x(),V(19,IK,4,4,"th",39),V(20,OK,4,4,"th",39),xe(21,"th",40),x(),V(22,jK,23,27,"a",41),x()}if(2&n){const e=z(3);c(2),M("matTooltip",B(3,11,"nodes.hypervisor")),c(4),M("ngIf",e.dataSorter.currentSortingColumn===e.hypervisorSortData),c(1),M("matTooltip",B(8,13,"nodes.state-tooltip")),c(3),M("ngIf",e.dataSorter.currentSortingColumn===e.stateSortData),c(2),ce(" ",B(13,15,"nodes.label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.labelSortData),c(2),ce(" ",B(17,17,"nodes.key")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.keySortData),c(1),M("ngIf",e.showDmsgInfo),c(1),M("ngIf",e.showDmsgInfo),c(2),M("ngForOf",e.dataSource)}}function UK(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.label")))}function WK(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.inverted-order")))}function $K(n,t){1&n&&(D(0,"div",62)(1,"mat-icon",67),E(2,"star"),x(),E(3,"\xa0 "),D(4,"span",68),E(5),R(6,"translate"),x()()),2&n&&(c(1),M("inline",!0),c(4),oe(B(6,2,"nodes.hypervisor")))}function GK(n,t){if(1&n){const e=et();D(0,"div",63)(1,"span",9),E(2),R(3,"translate"),x(),E(4,": "),D(5,"app-labeled-element-text",69),ye("labelEdited",function(){return Pe(e),Oe(z(5).forceDataRefresh())}),x()()}if(2&n){const e=z().$implicit,i=z(4);c(2),oe(B(3,3,"nodes.dmsg-server")),c(3),Dn("id",e.dmsgServerPk),M("elementType",i.labeledElementTypes.DmsgServer)}}function qK(n,t){if(1&n&&(D(0,"div",62)(1,"span",9),E(2),R(3,"translate"),x(),E(4),R(5,"translate"),x()),2&n){const e=z().$implicit;c(2),oe(B(3,2,"nodes.ping")),c(2),ce(": ",Ct(5,4,"common.time-in-ms",Be(7,jI,e.roundTripPing))," ")}}const KK=function(n){return{"selectable click-effect":n}};function ZK(n,t){if(1&n){const e=et();D(0,"a",59)(1,"tr",60)(2,"td",60)(3,"div",55)(4,"div",56),V(5,$K,7,4,"div",61),D(6,"div",62)(7,"span",9),E(8),R(9,"translate"),x(),E(10,": "),D(11,"span"),E(12),R(13,"translate"),x()(),D(14,"div",62)(15,"span",9),E(16),R(17,"translate"),x(),E(18),x(),D(19,"div",63)(20,"span",9),E(21),R(22,"translate"),x(),E(23),x(),V(24,GK,6,5,"div",64),V(25,qK,6,9,"div",61),x(),xe(26,"div",65),D(27,"div",57)(28,"button",66),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.showOptionsDialog(a))}),R(29,"translate"),D(30,"mat-icon"),E(31),x()()()()()()()}if(2&n){const e=t.$implicit,i=z(4);M("ngClass",Be(25,KK,e.online))("routerLink",e.online?Be(27,zI,e.localPk):null),c(5),M("ngIf",e.isHypervisor),c(3),oe(B(9,15,"nodes.state")),c(3),eo(i.nodeStatusClass(e,!1)+" title"),c(1),oe(B(13,17,i.nodeStatusText(e,!1))),c(4),oe(B(17,19,"nodes.label")),c(2),ce(": ",e.label," "),c(3),oe(B(22,21,"nodes.key")),c(2),ce(": ",e.localPk," "),c(1),M("ngIf",i.showDmsgInfo),c(1),M("ngIf",i.showDmsgInfo),c(3),M("matTooltip",B(29,23,"common.options")),c(3),oe("add")}}function XK(n,t){if(1&n){const e=et();D(0,"table",53)(1,"tr",54),ye("click",function(){return Pe(e),Oe(z(3).dataSorter.openSortingOrderModal())}),D(2,"td")(3,"div",55)(4,"div",56)(5,"div",9),E(6),R(7,"translate"),x(),D(8,"div"),E(9),R(10,"translate"),V(11,UK,3,3,"ng-container",24),V(12,WK,3,3,"ng-container",24),x()(),D(13,"div",57)(14,"mat-icon",42),E(15,"keyboard_arrow_down"),x()()()()(),V(16,ZK,32,29,"a",58),x()}if(2&n){const e=z(3);c(6),oe(B(7,6,"tables.sorting-title")),c(3),ce("",B(10,8,e.dataSorter.currentSortingColumn.label)," "),c(2),M("ngIf",e.dataSorter.currentlySortingByLabel),c(1),M("ngIf",e.dataSorter.sortingInReverseOrder),c(2),M("inline",!0),c(2),M("ngForOf",e.dataSource)}}function QK(n,t){if(1&n&&(D(0,"div",28)(1,"div",29),V(2,zK,23,19,"table",30),V(3,XK,17,10,"table",31),x()()),2&n){const e=z(2);c(2),M("ngIf",e.dataSource.length>0),c(1),M("ngIf",e.dataSource.length>0)}}function JK(n,t){if(1&n&&xe(0,"app-paginator",27),2&n){const e=z(2);M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showDmsgInfo?Un(5,VI):Un(4,HI))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function eZ(n,t){1&n&&(D(0,"span",73),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"nodes.empty")))}function tZ(n,t){1&n&&(D(0,"span",73),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"nodes.empty-with-filter")))}function nZ(n,t){if(1&n&&(D(0,"div",28)(1,"div",70)(2,"mat-icon",71),E(3,"warning"),x(),V(4,eZ,3,3,"span",72),V(5,tZ,3,3,"span",72),x()()),2&n){const e=z(2);c(2),M("inline",!0),c(2),M("ngIf",0===e.allNodes.length),c(1),M("ngIf",0!==e.allNodes.length)}}const iZ=function(n){return{"paginator-icons-fixer":n}};function rZ(n,t){if(1&n){const e=et();D(0,"div",5)(1,"div",6)(2,"app-top-bar",7),ye("refreshRequested",function(){return Pe(e),Oe(z().forceDataRefresh(!0))})("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))}),x()(),D(3,"div",6)(4,"div",8)(5,"div",9),V(6,MK,5,4,"div",10),x(),D(7,"div",11)(8,"div",12),V(9,wK,3,4,"mat-icon",13),V(10,xK,2,1,"mat-icon",14),D(11,"mat-menu",15,16)(13,"div",17),ye("click",function(){return Pe(e),Oe(z().removeOffline())}),E(14),R(15,"translate"),x()()(),V(16,CK,1,6,"app-paginator",18),x()(),V(17,QK,4,2,"div",19),V(18,JK,1,6,"app-paginator",18),V(19,nZ,6,3,"div",19),x()()}if(2&n){const e=z();c(2),M("titleParts",Un(21,BI))("tabsData",e.tabsData)("selectedTabIndex",e.showDmsgInfo?1:0)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.options),c(2),M("ngClass",Be(22,iZ,e.numberOfPages>1)),c(2),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),M("ngIf",e.allNodes&&e.allNodes.length>0),c(1),M("ngIf",e.dataSource.length>0),c(1),M("overlapTrigger",!1),c(2),Dn("disabled",!e.hasOfflineNodes),c(1),ce(" ",B(15,19,"nodes.delete-all-offline")," "),c(2),M("ngIf",e.numberOfPages>1),c(1),M("ngIf",0!==e.dataSource.length),c(1),M("ngIf",e.numberOfPages>1),c(1),M("ngIf",0===e.dataSource.length)}}class Mu{constructor(t,e,i,o,s,a,l,d,w,P,Y){this.nodeService=t,this.multipleNodeDataService=e,this.router=i,this.dialog=o,this.authService=s,this.storageService=a,this.ngZone=l,this.snackbarService=d,this.clipboardService=w,this.translateService=P,this.nodesListId="nl",this.dmsgListId="dl",this.hypervisorSortData=new Yn(["isHypervisor"],"nodes.hypervisor",Jt.Boolean),this.stateSortData=new Yn(["online"],"nodes.state",Jt.Boolean),this.labelSortData=new Yn(["label"],"nodes.label",Jt.Text),this.keySortData=new Yn(["localPk"],"nodes.key",Jt.Text),this.dmsgServerSortData=new Yn(["dmsgServerPk"],"nodes.dmsg-server",Jt.Text,["dmsgServerPk_label"]),this.pingSortData=new Yn(["roundTripPing"],"nodes.ping",Jt.Number),this.loading=!0,this.tabsData=[],this.options=[],this.showDmsgInfo=!1,this.canLogOut=!0,this.hasOfflineNodes=!1,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"nodes.filter-dialog.online",keyNameInElementsArray:"online",type:Xn.Select,printableLabelsForValues:[{value:"",label:"nodes.filter-dialog.online-options.any"},{value:"true",label:"nodes.filter-dialog.online-options.online"},{value:"false",label:"nodes.filter-dialog.online-options.offline"}]},{filterName:"nodes.filter-dialog.label",keyNameInElementsArray:"label",type:Xn.TextInput,maxlength:100},{filterName:"nodes.filter-dialog.key",keyNameInElementsArray:"localPk",type:Xn.TextInput,maxlength:66},{filterName:"nodes.filter-dialog.dmsg",keyNameInElementsArray:"dmsgServerPk",secondaryKeyNameInElementsArray:"dmsgServerPk_label",type:Xn.TextInput,maxlength:66}],this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.labeledElementTypes=Mr,this.updateOptionsMenu(),this.authVerificationSubscription=this.authService.checkLogin().subscribe(te=>{this.canLogOut=te!==Is.AuthDisabled,this.updateOptionsMenu()}),this.showDmsgInfo=-1!==this.router.url.indexOf("dmsg"),this.showDmsgInfo||this.filterProperties.splice(this.filterProperties.length-1);const q=[this.hypervisorSortData,this.stateSortData,this.labelSortData,this.keySortData];this.showDmsgInfo&&(q.push(this.dmsgServerSortData),q.push(this.pingSortData)),this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,q,3,this.showDmsgInfo?this.dmsgListId:this.nodesListId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new gu(this.dialog,Y,this.router,this.filterProperties,this.showDmsgInfo?this.dmsgListId:this.nodesListId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(te=>{this.filteredNodes=te,this.hasOfflineNodes=!1,this.filteredNodes.forEach(pe=>{pe.online||(this.hasOfflineNodes=!0)}),this.dataSorter.setData(this.filteredNodes)}),this.navigationsSubscription=Y.paramMap.subscribe(te=>{if(te.has("page")){let pe=Number.parseInt(te.get("page"),10);(isNaN(pe)||pe<1)&&(pe=1),this.currentPageInUrl=pe,this.recalculateElementsToShow()}}),this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"language",label:"nodes.dmsg-title",linkParts:["/nodes","dmsg"]},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.multipleNodeDataService.forceRefresh()})}updateOptionsMenu(){this.options=[],this.options.push({name:"nodes.modify-rewards-all",actionName:"modifyRewardsAll",icon:"edit"}),this.canLogOut&&this.options.push({name:"common.logout",actionName:"logout",icon:"power_settings_new"})}ngOnInit(){this.startGettingData(),this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=xf(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))})}ngOnDestroy(){this.authVerificationSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.languageSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}performAction(t){"logout"===t?this.logout():"updateAll"===t?this.updateAll():"modifyRewardsAll"===t&&this.changeRewardsToAll()}nodeStatusClass(t,e){return t.online?t.health&&t.health.servicesHealth===ls.Unhealthy?e?"dot-yellow blinking":"yellow-text":t.health&&t.health.servicesHealth===ls.Healthy?e?"dot-green":"green-text":e?"dot-outline-gray":"":e?"dot-red":"red-text"}nodeStatusText(t,e){return t.online?t.health&&t.health.servicesHealth===ls.Healthy?"node.statuses.online"+(e?"-tooltip":""):t.health&&t.health.servicesHealth===ls.Unhealthy?"node.statuses.partially-online"+(e?"-tooltip":""):t.health&&t.health.servicesHealth===ls.Connecting?"node.statuses.connecting"+(e?"-tooltip":""):"node.statuses.unknown"+(e?"-tooltip":""):"node.statuses.offline"+(e?"-tooltip":"")}forceDataRefresh(t=!1){t&&(this.lastUpdateRequestedManually=!0),this.multipleNodeDataService.forceRefresh()}startGettingData(){this.ngZone.runOutsideAngular(()=>{this.dataSubscription=this.multipleNodeDataService.startRequestingData().subscribe(t=>{this.ngZone.run(()=>{this.updating=!t||t.updating,t&&!t.updating&&(t.data&&!t.error?(this.allNodes=t.data,this.showDmsgInfo&&this.allNodes.forEach(e=>{e.dmsgServerPk_label=Ar.getCompleteLabel(this.storageService,this.translateService,e.dmsgServerPk)}),this.dataFilterer.setData(this.allNodes),this.loading=!1,this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=t.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-t.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)):t.error&&(this.errorsUpdating||this.snackbarService.showError(this.loading?"common.loading-error":"nodes.error-load",null,!0,t.error),this.errorsUpdating=!0))})})})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredNodes){const t=Rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredNodes.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.nodesToShow=this.filteredNodes.slice(e,e+t)}else this.nodesToShow=null;this.nodesToShow&&(this.dataSource=this.nodesToShow)}logout(){const t=Wt.createConfirmationDialog(this.dialog,"common.logout-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}updateAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-update");const t=[],e=[];this.dataSource.forEach(i=>{if(i.online){const o={key:i.localPk,label:i.label,version:i.version,tag:i.buildTag};Wt.checkIfTagIsUpdatable(i.buildTag)?t.push(o):e.push(o)}}),dc.openDialog(this.dialog,t,e)}changeRewardsToAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-modify");const t=[];this.dataSource.forEach(i=>{i.online&&t.push({key:i.localPk,label:i.label})}),uc.openDialog(this.dialog,{nodes:t})}recursivelyUpdateWallets(t,e,i=0){return this.nodeService.update(t[t.length-1]).pipe(no(()=>Ge(null)),Ne(o=>(o&&o.updated&&!o.error?this.snackbarService.showDone(this.translateService.instant("nodes.update.done",{name:e[e.length-1]})):(this.snackbarService.showError(this.translateService.instant("nodes.update.update-error",{name:e[e.length-1]})),i+=1),t.pop(),e.pop(),t.length>=1?this.recursivelyUpdateWallets(t,e,i):Ge(i))))}showOptionsDialog(t){const e=[{icon:"filter_none",label:"nodes.copy-key"}];this.showDmsgInfo&&e.push({icon:"filter_none",label:"nodes.copy-dmsg"}),e.push({icon:"short_text",label:"labeled-element.edit-label"}),t.online||e.push({icon:"close",label:"nodes.delete-node"}),Hi.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{1===i?this.copySpecificTextToClipboard(t.localPk):this.showDmsgInfo?2===i?this.copySpecificTextToClipboard(t.dmsgServerPk):3===i?this.showEditLabelDialog(t):4===i&&this.deleteNode(t):2===i?this.showEditLabelDialog(t):3===i&&this.deleteNode(t)})}copyToClipboard(t){this.showDmsgInfo?Hi.openDialog(this.dialog,[{icon:"filter_none",label:"nodes.key"},{icon:"filter_none",label:"nodes.dmsg-server"}],"common.options").afterClosed().subscribe(i=>{1===i?this.copySpecificTextToClipboard(t.localPk):2===i&&this.copySpecificTextToClipboard(t.dmsgServerPk)}):this.copySpecificTextToClipboard(t.localPk)}copySpecificTextToClipboard(t){this.clipboardService.copy(t)&&this.snackbarService.showDone("copy.copied")}showEditLabelDialog(t){let e=this.storageService.getLabelInfo(t.localPk);e||(e={id:t.localPk,label:"",identifiedElementType:Mr.Node}),pa.openDialog(this.dialog,e).afterClosed().subscribe(i=>{i&&this.forceDataRefresh()})}deleteNode(t){const e=Wt.createConfirmationDialog(this.dialog,"nodes.delete-node-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.storageService.setLocalNodesAsHidden([t.localPk],[t.ip]),this.forceDataRefresh(),this.snackbarService.showDone("nodes.deleted")})}removeOffline(){let t="nodes.delete-all-offline-confirmation";this.dataFilterer.currentFiltersTexts&&this.dataFilterer.currentFiltersTexts.length>0&&(t="nodes.delete-all-filtered-offline-confirmation");const e=Wt.createConfirmationDialog(this.dialog,t);e.componentInstance.operationAccepted.subscribe(()=>{e.close();const i=[],o=[];this.filteredNodes.forEach(s=>{s.online||(i.push(s.localPk),o.push(s.ip))}),i.length>0&&(this.storageService.setLocalNodesAsHidden(i,o),this.forceDataRefresh(),1===i.length?this.snackbarService.showDone("nodes.deleted-singular"):this.snackbarService.showDone("nodes.deleted-plural",{number:i.length}))})}}Mu.\u0275fac=function(t){return new(t||Mu)(F(so),F(bu),F(Qt),F(Ln),F(Ps),F(ni),F(pt),F(on),F(As),F(oo),F(yr))},Mu.\u0275cmp=qe({type:Mu,selectors:[["app-node-list"]],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"h-100"],[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","refreshRequested","optionSelected"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow","full-node-list-margins"],["class","responsive-table-translucid d-none d-md-table","cellspacing","0","cellpadding","0",4,"ngIf"],["class","responsive-table-translucid d-md-none nowrap","cellspacing","0","cellpadding","0",4,"ngIf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"sortable-column","small-column",3,"matTooltip","click"],[1,"hypervisor-icon","grey-text"],[3,"inline",4,"ngIf"],[1,"dot-outline-gray"],[1,"sortable-column","labels",3,"click"],[1,"sortable-column",3,"click"],["class","sortable-column",3,"click",4,"ngIf"],[1,"actions"],["class","selectable link-row",3,"ngClass","routerLink",4,"ngFor","ngForOf"],[3,"inline"],[1,"selectable","link-row",3,"ngClass","routerLink"],["class","hypervisor-icon",3,"inline","matTooltip",4,"ngIf"],[3,"matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip","click"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip",4,"ngIf"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip","click",4,"ngIf"],[1,"hypervisor-icon",3,"inline","matTooltip"],["shortTextLength","4",3,"short","id","elementType","labelEdited",4,"ngIf"],["shortTextLength","4",3,"short","id","elementType","labelEdited"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none","nowrap"],[1,"selectable","click-effect",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],["class","link-row",3,"ngClass","routerLink",4,"ngFor","ngForOf"],[1,"link-row",3,"ngClass","routerLink"],[1,"d-block"],["class","list-row",4,"ngIf"],[1,"list-row"],[1,"list-row","long-content"],["class","list-row long-content",4,"ngIf"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[1,"hypervisor-icon",3,"inline"],[1,"yellow-clear-text","title"],[3,"id","elementType","labelEdited"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(V(0,gK,4,5,"div",0),V(1,rZ,20,24,"div",1)),2&t&&(M("ngIf",e.loading),c(1),M("ngIf",!e.loading))},dependencies:[Rn,bi,It,Ja,$r,rl,yn,vi,vu,_a,yu,Gr,Fs,cs,Ar,xt],styles:[".labels[_ngcontent-%COMP%]{width:15%}.actions[_ngcontent-%COMP%]{text-align:right;width:120px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.hypervisor-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;position:relative;top:2px;margin-left:2px;color:#d48b05}.small-column[_ngcontent-%COMP%]{width:1px}.non-selectable[_ngcontent-%COMP%]{cursor:not-allowed}"]});const oZ=["content"],nM=function(n){return{number:n}};function sZ(n,t){if(1&n&&(D(0,"div",14),E(1),R(2,"translate"),x()),2&n){const e=z(2);c(1),ce(" ",Ct(2,1,"node.logs.filter-ignored",Be(4,nM,e.logEntries.length-e.filteredLogEntries.length))," ")}}function aZ(n,t){if(1&n){const e=et();D(0,"div",9),ye("click",function(){return Pe(e),Oe(z().showFilters())}),D(1,"div",10)(2,"div")(3,"span"),E(4),R(5,"translate"),x(),D(6,"span",11),E(7),R(8,"translate"),x()(),V(9,sZ,3,6,"div",12),x(),xe(10,"div",13),x()}if(2&n){const e=z();c(4),ce("",B(5,3,"node.logs.selected-filter")," "),c(3),oe(B(8,5,"node.logs."+e.levelDetails.get(e.currentMinimumLevel).levelFilterName)),c(2),M("ngIf",e.logEntries.length>e.filteredLogEntries.length)}}function lZ(n,t){if(1&n&&(D(0,"div",15)(1,"a",16),E(2),R(3,"translate"),x()()),2&n){const e=z();c(1),M("href",e.getFullLogsUrl(),Oo),c(1),ce(" ",Ct(3,2,"node.logs.view-rest",Be(5,nM,e.totalLogs))," ")}}function cZ(n,t){1&n&&(Ue(0),E(1,":"),We())}function dZ(n,t){if(1&n&&(D(0,"span"),E(1),x()),2&n){const e=z().$implicit;c(1),ce(" ",e.msg," ")}}function uZ(n,t){if(1&n&&(Ue(0),D(1,"span",21),E(2),x(),D(3,"span"),E(4),x(),We()),2&n){const e=t.$implicit;c(2),ce(" ",e.name," "),c(2),ce(' ="',e.value,'" ')}}function hZ(n,t){if(1&n&&(D(0,"div",15)(1,"span",18),E(2),x(),D(3,"span"),E(4),x(),E(5," [ "),D(6,"span",18),E(7),x(),D(8,"span",19),E(9),x(),E(10," ]"),V(11,cZ,2,0,"ng-container",4),V(12,dZ,2,1,"span",4),V(13,uZ,5,2,"ng-container",20),x()),2&n){const e=t.$implicit,i=z(2);c(2),ce(" ",e.time," "),c(1),eo(i.levelDetails.get(e.level).colorClass),c(1),ce(" ",i.levelDetails.get(e.level).name," "),c(3),ce(" ",e.func," "),c(2),ce(" ",e._module," "),c(2),M("ngIf",e.msg),c(1),M("ngIf",e.msg),c(1),M("ngForOf",e.extra)}}function fZ(n,t){if(1&n&&(Ue(0),V(1,hZ,14,9,"div",17),We()),2&n){const e=z();c(1),M("ngForOf",e.filteredLogEntries)}}function pZ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"node.logs.view-all")," "))}function mZ(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z(2);c(1),ce(" ",Ct(2,1,"node.logs.view-rest",Be(4,nM,e.totalLogs))," ")}}function _Z(n,t){if(1&n&&(D(0,"div",15)(1,"a",16),V(2,pZ,3,3,"ng-container",4),V(3,mZ,3,6,"ng-container",4),x()()),2&n){const e=z();c(1),M("href",e.getFullLogsUrl(),Oo),c(1),M("ngIf",!e.hasMoreLogMessages),c(1),M("ngIf",e.hasMoreLogMessages)}}function gZ(n,t){1&n&&(D(0,"div",22),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"node.logs.no-logs")," "))}function bZ(n,t){1&n&&(D(0,"div",22),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"node.logs.no-logs-for-filter")," "))}function vZ(n,t){1&n&&xe(0,"app-loading-indicator",23),2&n&&M("showWhite",!1)}function yZ(n,t){1&n&&(D(0,"mat-icon",26),E(1,"refresh"),x()),2&n&&M("inline",!0)}const MZ=function(n){return{time:n}};function wZ(n,t){if(1&n&&(D(0,"div",24),V(1,yZ,2,1,"mat-icon",25),D(2,"span"),E(3),R(4,"translate"),x()()),2&n){const e=z();c(1),M("ngIf",!e.showAlert),c(2),oe(Ct(4,2,"refresh-button."+e.elapsedTime.translationVarName,Be(5,MZ,e.elapsedTime.elapsedTime)))}}var $n=(()=>(function(n){n[n.PanicLevel=0]="PanicLevel",n[n.FatalLevel=1]="FatalLevel",n[n.ErrorLevel=2]="ErrorLevel",n[n.WarnLevel=3]="WarnLevel",n[n.InfoLevel=4]="InfoLevel",n[n.DebugLevel=5]="DebugLevel",n[n.TraceLevel=6]="TraceLevel",n[n.Unknown=7]="Unknown"}($n||($n={})),$n))();class xZ{constructor(){this.extra=[]}}class fc{constructor(t,e,i,o,s){this.dialogRef=t,this.nodeService=e,this.snackbarService=i,this.ngZone=o,this.dialog=s,this.levelDetails=new Map([[$n.PanicLevel,{name:"PANIC",colorClass:"panic-level-color",levelFilterName:"filter-panic",importance:8}],[$n.FatalLevel,{name:"FATAL",colorClass:"fatal-level-color",levelFilterName:"filter-faltal",importance:7}],[$n.ErrorLevel,{name:"ERROR",colorClass:"error-level-color",levelFilterName:"filter-error",importance:6}],[$n.WarnLevel,{name:"WARNING",colorClass:"warning-level-color",levelFilterName:"filter-warning",importance:5}],[$n.InfoLevel,{name:"INFO",colorClass:"info-level-color",levelFilterName:"filter-info",importance:4}],[$n.DebugLevel,{name:"DEBUG",colorClass:"debug-level-color",levelFilterName:"filter-debug",importance:3}],[$n.TraceLevel,{name:"TRACE",colorClass:"trace-level-color",levelFilterName:"filter-all",importance:2}],[$n.Unknown,{name:"UNKNOWN LOG",colorClass:"unknown-level-color",levelFilterName:"filter-all",importance:1}]]),this.currentMinimumLevel=$n.Unknown,this.loading=!0,this.LoadingMoment=0,this.maxElementsPerPage=1e3,this.logEntries=[],this.filteredLogEntries=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.shouldShowError=!0}static openDialog(t){const e=new Tn;return e.autoFocus=!1,e.width=Rt.largeModalWidth,t.open(fc,e)}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription(),this.removeTimeSubscription()}showFilters(){const t=[{icon:"",label:"node.logs.filter-all"},{icon:"",label:"node.logs.filter-debug"},{icon:"",label:"node.logs.filter-info"},{icon:"",label:"node.logs.filter-warning"},{icon:"",label:"node.logs.filter-error"},{icon:"",label:"node.logs.filter-faltal"},{icon:"",label:"node.logs.filter-panic"}],e=[$n.Unknown,$n.DebugLevel,$n.InfoLevel,$n.WarnLevel,$n.ErrorLevel,$n.FatalLevel,$n.PanicLevel];for(let i=0;i<=e.length;i++)this.currentMinimumLevel===e[i]&&(t[i].icon="check");Hi.openDialog(this.dialog,t,"node.logs.filter-title").afterClosed().subscribe(i=>{this.currentMinimumLevel=e[i-1],this.filter()})}loadData(t){this.removeSubscription(),this.loading=!0,this.subscription=Ge(1).pipe(Di(t),Ne(()=>this.nodeService.getRuntimeLogs(Je.getCurrentNodeKey()))).subscribe(e=>this.onLogsReceived(e),e=>this.onLogsError(e))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}removeTimeSubscription(){this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}onLogsReceived(t){let e=0;this.totalLogs=t.length,this.hasMoreLogMessages=this.totalLogs-this.maxElementsPerPage>0,t.forEach(i=>{const o=new xZ;o.time=i.time,o._module=i._module,o.msg=i.msg,o.func=i.func;const s=i.level?i.level.toLowerCase():"";if(o.level=s.includes("panic")?$n.PanicLevel:s.includes("fatal")?$n.FatalLevel:s.includes("error")?$n.ErrorLevel:s.includes("warn")?$n.WarnLevel:s.includes("info")?$n.InfoLevel:s.includes("debug")?$n.DebugLevel:s.includes("trace")?$n.TraceLevel:$n.Unknown,i.current_backoff){const l=Math.floor(i.current_backoff/1e9),d=Math.floor(l/60),w=Math.floor(l%60);o.extra.push(d?{name:"current_backoff",value:d+"m"+w+"s"}:{name:"current_backoff",value:w+"s"})}i.error&&o.extra.push({name:"error",value:i.error});const a=new Set;a.add("time"),a.add("_module"),a.add("msg"),a.add("func"),a.add("level"),a.add("current_backoff"),a.add("error"),a.add("log_line");for(const l in i)a.has(l)||o.extra.push({name:l,value:i[l]});this.totalLogs-e<=this.maxElementsPerPage&&this.logEntries.push(o),e+=1}),this.loading=!1,this.LoadingMoment=Date.now(),this.startUpdatingTime(),this.filter()}filter(){this.filteredLogEntries=[];const t=this.levelDetails.get(this.currentMinimumLevel).importance;this.logEntries.forEach(e=>{const i=this.levelDetails.get(e.level).importance;t<=i&&this.filteredLogEntries.push(e)}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}startUpdatingTime(){this.elapsedTime=Rg.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3)),this.removeTimeSubscription(),this.timeUpdateSubscription=xf(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.elapsedTime=Rg.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3))}))}getFullLogsUrl(){return window.location.origin+"/api/visors/"+Je.getCurrentNodeKey()+"/runtime-logs"}onLogsError(t){t=Kt(t),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,t),this.shouldShowError=!1),this.loadData(Rt.connectionRetryDelay)}}fc.\u0275fac=function(t){return new(t||fc)(F(Nn),F(so),F(on),F(pt),F(Ln))},fc.\u0275cmp=qe({type:fc,selectors:[["app-node-logs"]],viewQuery:function(t,e){if(1&t&&ft(oZ,5),2&t){let i;nt(i=it())&&(e.content=i.first)}},decls:13,vars:14,consts:[[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],["class","filter-area",3,"click",4,"ngIf"],["content",""],["class","log-entry",4,"ngIf"],[4,"ngIf"],["class","log-empty-msg",4,"ngIf"],[3,"showWhite",4,"ngIf"],[1,"update-button","subtle-transparent-button",3,"click"],["class","update-time",4,"ngIf"],[1,"filter-area",3,"click"],[1,"filter-content"],[1,"actual-value"],["class","small",4,"ngIf"],[1,"filter-margin"],[1,"small"],[1,"log-entry"],["target","_blank",1,"view-raw-link",3,"href"],["class","log-entry",4,"ngFor","ngForOf"],[1,"transparent"],[1,"module-color"],[4,"ngFor","ngForOf"],[1,"extra-data-color"],[1,"log-empty-msg"],[3,"showWhite"],[1,"update-time"],["class","icon",3,"inline",4,"ngIf"],[1,"icon",3,"inline"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),V(2,aZ,11,7,"div",1),D(3,"mat-dialog-content",null,2),V(5,lZ,4,7,"div",3),V(6,fZ,2,1,"ng-container",4),V(7,_Z,4,3,"div",3),V(8,gZ,3,3,"div",5),V(9,bZ,3,3,"div",5),V(10,vZ,1,1,"app-loading-indicator",6),D(11,"div",7),ye("click",function(){return e.loadData(0)}),V(12,wZ,5,7,"div",8),x()()()),2&t&&(M("headline",B(1,12,"node.logs.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",e.dialogRef),c(2),M("ngIf",!e.loading&&e.logEntries&&e.logEntries.length>0),c(3),M("ngIf",!e.loading&&e.hasMoreLogMessages),c(1),M("ngIf",!e.loading),c(1),M("ngIf",!e.loading&&e.logEntries&&e.logEntries.length>0),c(1),M("ngIf",!(e.loading||e.logEntries&&0!==e.logEntries.length)),c(1),M("ngIf",!e.loading&&e.logEntries&&e.logEntries.length>0&&e.filteredLogEntries.length<1),c(1),M("ngIf",e.loading),c(2),M("ngIf",!e.loading))},dependencies:[bi,It,C1,yn,En,Gr,xt],styles:[".filter-area[_ngcontent-%COMP%]{margin-left:-24px;margin-right:-24px;font-size:.8rem;color:#777;background-color:#d9deeb;cursor:pointer}.filter-area[_ngcontent-%COMP%]:hover{background-color:#cfd5e6}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%]{padding:10px 24px;text-align:center}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:.6rem}.filter-area[_ngcontent-%COMP%] .filter-margin[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin:0 12px}.log-entry[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.log-entry[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.log-entry[_ngcontent-%COMP%]:first-of-type{margin-top:0}.log-entry[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.log-empty-msg[_ngcontent-%COMP%]{text-align:center}.view-raw-link[_ngcontent-%COMP%]{color:#215f9e}.update-button[_ngcontent-%COMP%]{display:flex;justify-content:center;cursor:pointer}.update-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;margin-right:5px}.update-button[_ngcontent-%COMP%] .update-time[_ngcontent-%COMP%]{text-align:center;font-size:.7rem;color:#202226;margin:0 5px}.panic-level-color[_ngcontent-%COMP%], .fatal-level-color[_ngcontent-%COMP%]{color:red}.error-level-color[_ngcontent-%COMP%]{color:#d10000}.warning-level-color[_ngcontent-%COMP%]{color:#e27505}.info-level-color[_ngcontent-%COMP%]{color:#0d9519}.debug-level-color[_ngcontent-%COMP%]{color:#0065ff}.trace-level-color[_ngcontent-%COMP%]{color:#468cf5}.unknown-level-color[_ngcontent-%COMP%]{color:#e27505}.module-color[_ngcontent-%COMP%]{color:#a119fc}.extra-data-color[_ngcontent-%COMP%]{color:#ad8021}"]});class UI{constructor(t,e){this.canBeUpdated=!1,this.canBeRestarted=!1,this.canOpenTerminal=!1,this.options=[],this.dialog=t.get(Ln),this.router=t.get(Qt),this.snackbarService=t.get(on),this.nodeService=t.get(so),this.storageService=t.get(ni),this.showingFullList=e,this.returnButtonText=e?"node.title":"nodes.title",this.updateOptions()}updateOptions(){this.options=[],this.canOpenTerminal&&this.options.push({name:"actions.menu.terminal",actionName:"terminal",icon:"laptop"}),this.options.push({name:"actions.menu.logs",actionName:"logs",icon:"subject"}),this.canBeRestarted&&this.options.push({name:"actions.menu.reboot",actionName:"reboot",icon:"rotate_right"})}setCurrentNode(t){this.currentNode=t,Wt.checkIfTagIsUpdatable(t.buildTag)?(this.canBeUpdated=!0,this.canBeRestarted=!0):(this.canBeUpdated=!1,this.canBeRestarted=!1),this.canOpenTerminal=Wt.checkIfTagCanOpenterminal(t.buildTag),this.updateOptions()}setCurrentNodeKey(t){this.currentNodeKey=t}performAction(t,e){"terminal"===t?this.terminal():"update"===t?this.update():"logs"===t?this.runtimeLogs():"reboot"===t?this.reboot():null===t&&this.back()}dispose(){this.rebootSubscription&&this.rebootSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe()}reboot(){const t=Wt.createConfirmationDialog(this.dialog,"actions.reboot.confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing(),this.rebootSubscription=this.nodeService.reboot(this.currentNodeKey).subscribe(()=>{this.snackbarService.showDone("actions.reboot.done"),t.close()},e=>{e=Kt(e),t.componentInstance.showDone("confirmation.error-header-text",e.translatableErrorMsg)})})}update(){const t=Wt.createConfirmationDialog(this.dialog,"actions.update.confirmation");t.componentInstance.operationAccepted.subscribe(()=>{const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+this.currentNodeKey+"?commands=update","_blank","noopener noreferrer"),t.close()})}terminal(){const t=window.location.protocol,e=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(t+"//"+e+"/pty/"+this.currentNodeKey,"_blank","noopener noreferrer")}runtimeLogs(){fc.openDialog(this.dialog)}back(){this.router.navigate(this.showingFullList?["nodes",this.currentNodeKey]:["nodes"])}}class CZ{constructor(){this.trafficData=new kZ}}class kZ{constructor(){this.totalSent=0,this.totalReceived=0,this.sentHistory=[],this.receivedHistory=[]}}class SZ{constructor(){this.lastEmitedData=new CZ,this.dataSubject=new Ir(null),this.whenUpdateWasScheduled=0,this.stopRequestedDate=-1}}class wu{constructor(t,e){this.storageService=t,this.nodeService=e,this.maxTrafficHistorySlots=10,this.expirationTime=6e4,this.nodesMap=new Map,this.storageService.getRefreshTimeObservable().subscribe(i=>{this.dataRefreshDelay=1e3*i,this.nodesMap.forEach(o=>{this.forceSpecificNodeRefresh(o.pk)})}),this.checkForExpired()}checkForExpired(){Ge(1).pipe(Di(5e3)).subscribe(()=>{try{this.nodesMap.forEach(t=>{this.finishIfExpired(t)})}catch{}this.checkForExpired()})}startRequestingData(t){let e=this.nodesMap.get(t);return e?e.stopRequestedDate=-1:(e=new SZ,e.pk=t,this.nodesMap.set(t,e),this.startDataSubscription(0,e)),e.dataSubject.asObservable()}stopRequestingSpecificNode(t){const e=this.nodesMap.get(t);e&&(e.stopRequestedDate=Date.now())}startDataSubscription(t,e){e.updateSubscription&&e.updateSubscription.unsubscribe(),e.updateSubscription=Ge(1).pipe(Di(t),hi(()=>{e.lastEmitedData.updating=!0,e.dataSubject.next(e.lastEmitedData)}),Di(120),Ne(()=>this.nodeService.getNode(e.pk))).subscribe(i=>{this.updateTrafficData(i.transports,e.lastEmitedData.trafficData,e.whenUpdateWasScheduled);let o=this.calculateRemainingTime(e.whenUpdateWasScheduled);o<1e3&&(e.whenUpdateWasScheduled=Date.now(),o=this.dataRefreshDelay),e.lastEmitedData={data:i,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1,trafficData:e.lastEmitedData.trafficData},e.dataSubject.next(e.lastEmitedData),this.startDataSubscription(o,e)},i=>{i=Kt(i),e.lastEmitedData={data:e.lastEmitedData.data,error:i,momentOfLastCorrectUpdate:e.lastEmitedData.momentOfLastCorrectUpdate,updating:!1,trafficData:e.lastEmitedData.trafficData},e.dataSubject.next(e.lastEmitedData),i.originalError&&400===i.originalError.status?(e.dataSubject.complete(),e.updateSubscription.unsubscribe(),this.nodesMap.delete(e.pk)):this.startDataSubscription(Rt.connectionRetryDelay,e)})}calculateRemainingTime(t){if(t<1)return 0;let e=this.dataRefreshDelay-(Date.now()-t);return e<0&&(e=0),e}updateTrafficData(t,e,i){if(e.totalSent=0,e.totalReceived=0,t&&t.length>0&&(e.totalSent=t.reduce((o,s)=>o+s.sent,0),e.totalReceived=t.reduce((o,s)=>o+s.recv,0)),0===e.sentHistory.length)for(let o=0;othis.maxTrafficHistorySlots&&(s=this.maxTrafficHistorySlots),0===s)e.sentHistory[e.sentHistory.length-1]=e.totalSent,e.receivedHistory[e.receivedHistory.length-1]=e.totalReceived;else for(let a=0;athis.maxTrafficHistorySlots&&(e.sentHistory.splice(0,e.sentHistory.length-this.maxTrafficHistorySlots),e.receivedHistory.splice(0,e.receivedHistory.length-this.maxTrafficHistorySlots))}}forceSpecificNodeRefresh(t){const e=this.nodesMap.get(t);e&&this.startDataSubscription(0,e)}finishIfExpired(t){t.stopRequestedDate>0&&Date.now()-t.stopRequestedDate>this.expirationTime&&(t.dataSubject.complete(),t.updateSubscription.unsubscribe(),this.nodesMap.delete(t.pk))}}function DZ(n,t){1&n&&xe(0,"app-loading-indicator")}function TZ(n,t){1&n&&(D(0,"div",6)(1,"div")(2,"mat-icon",7),E(3,"error"),x(),E(4),R(5,"translate"),x()()),2&n&&(c(2),M("inline",!0),c(2),ce(" ",B(5,2,"node.not-found")," "))}function LZ(n,t){if(1&n){const e=et();D(0,"div",2)(1,"div")(2,"app-top-bar",3),ye("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))}),x()(),V(3,DZ,1,0,"app-loading-indicator",4),V(4,TZ,6,4,"div",5),x()}if(2&n){const e=z();c(2),M("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("showUpdateButton",!1)("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),c(1),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound)}}function EZ(n,t){if(1&n&&xe(0,"app-node-info-content",15),2&n){const e=z(2);M("nodeInfo",e.node)("trafficData",e.trafficData)}}wu.\u0275fac=function(t){return new(t||wu)(we(ni),we(so))},wu.\u0275prov=Ye({token:wu,factory:wu.\u0275fac,providedIn:"root"});const IZ=function(n,t){return{"main-area":n,"full-size-main-area":t}},PZ=function(n){return{"d-none":n}};function OZ(n,t){if(1&n){const e=et();D(0,"div",8)(1,"div",9)(2,"app-top-bar",10),ye("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))})("refreshRequested",function(){return Pe(e),Oe(z().forceDataRefresh(!0))}),x()(),D(3,"div",9)(4,"div",11)(5,"div",12),xe(6,"router-outlet"),x()(),D(7,"div",13),V(8,EZ,1,2,"app-node-info-content",14),x()()()}if(2&n){const e=z();c(2),M("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),c(2),M("ngClass",cn(12,IZ,!e.showingInfo&&!e.showingFullList,e.showingInfo||e.showingFullList)),c(3),M("ngClass",Be(15,PZ,e.showingInfo||e.showingFullList)),c(1),M("ngIf",!e.showingInfo&&!e.showingFullList)}}class Je{constructor(t,e,i,o,s,a,l){this.storageService=t,this.singleNodeDataService=e,this.route=i,this.ngZone=o,this.snackbarService=s,this.injector=a,this.notFound=!1,this.titleParts=[],this.tabsData=[],this.selectedTabIndex=-1,this.showingInfo=!1,this.showingFullList=!1,this.initialRouteEventFired=!1,this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,Je.nodeSubject=new Ho(1),Je.trafficDataSubject=new Ho(1),Je.currentInstanceInternal=this,this.navigationsSubscription=l.events.subscribe(d=>{d.urlAfterRedirects&&(this.lastUrl=d.urlAfterRedirects,this.processRouteUpdate(),this.initialRouteEventFired=!0)})}static refreshCurrentDisplayedData(){Je.currentInstanceInternal&&Je.currentInstanceInternal.forceDataRefresh(!1)}static getCurrentNodeKey(){return Je.currentNodeKey}static get currentNode(){return Je.nodeSubject.asObservable()}static get currentTrafficData(){return Je.trafficDataSubject.asObservable()}ngOnInit(){this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=xf(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),this.initSubscription=Ge(0).pipe(Di(500)).subscribe(()=>{this.initialRouteEventFired||(this.lastUrl=window.location.href,this.processRouteUpdate())})}processRouteUpdate(){Je.currentNodeKey=this.route.snapshot.params.key,this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNodeKey(Je.currentNodeKey),this.updateTabBar(),this.navigationsSubscription.unsubscribe(),this.startGettingData()}updateTabBar(){if(this.lastUrl&&(this.lastUrl.includes("/info")||this.lastUrl.includes("/routing")||this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")))this.titleParts=["nodes.title","node.title"],this.tabsData=[{icon:"info",label:"node.tabs.info",onlyIfLessThanLg:!0,linkParts:Je.currentNodeKey?["/nodes",Je.currentNodeKey,"info"]:null},{icon:"shuffle",label:"node.tabs.routing",linkParts:Je.currentNodeKey?["/nodes",Je.currentNodeKey,"routing"]:null},{icon:"apps",label:"node.tabs.apps",linkParts:Je.currentNodeKey?["/nodes",Je.currentNodeKey,"apps"]:null}],this.selectedTabIndex=1,this.showingInfo=!1,this.lastUrl.includes("/info")&&(this.selectedTabIndex=0,this.showingInfo=!0),this.lastUrl.includes("/apps")&&(this.selectedTabIndex=2),this.showingFullList=!1,this.nodeActionsHelper=new UI(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(Je.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);else if(this.lastUrl&&(this.lastUrl.includes("/transports")||this.lastUrl.includes("/routes")||this.lastUrl.includes("/apps-list"))){this.showingFullList=!0,this.showingInfo=!1,this.nodeActionsHelper=new UI(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(Je.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);let t="transports";this.lastUrl.includes("/routes")?t="routes":this.lastUrl.includes("/apps-list")&&(t="apps.apps-list"),this.titleParts=["nodes.title","node.title",t+".title"],this.tabsData=[{icon:"view_headline",label:t+".list-title",linkParts:[]}],this.selectedTabIndex=0}else this.titleParts=[],this.tabsData=[]}performAction(t){this.nodeActionsHelper.performAction(t,Je.currentNodeKey)}forceDataRefresh(t=!1){t&&(this.lastUpdateRequestedManually=!0),this.singleNodeDataService.forceSpecificNodeRefresh(Je.currentNodeKey)}startGettingData(){this.ngZone.runOutsideAngular(()=>{this.dataSubscription=this.singleNodeDataService.startRequestingData(Je.currentNodeKey).subscribe(t=>{this.ngZone.run(()=>{if(this.updating=!t||t.updating,t&&!t.updating)if(t.data&&!t.error)this.node=t.data,this.trafficData=t.trafficData,Je.nodeSubject.next(this.node),Je.trafficDataSubject.next(this.trafficData),this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNode(this.node),this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=t.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-t.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1);else if(t.error){if(t.error.originalError&&400===t.error.originalError.status)return void(this.notFound=!0);this.errorsUpdating||this.snackbarService.showError(this.node?"node.error-load":"common.loading-error",null,!0,t.error),this.errorsUpdating=!0}})})})}ngOnDestroy(){this.singleNodeDataService.stopRequestingSpecificNode(Je.currentNodeKey),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.initSubscription.unsubscribe(),Je.currentInstanceInternal=void 0,Je.currentNodeKey=void 0,Je.nodeSubject.complete(),Je.nodeSubject=void 0,Je.trafficDataSubject.complete(),Je.trafficDataSubject=void 0,this.nodeActionsHelper.dispose()}}function AZ(n,t){if(1&n&&(D(0,"mat-option",10),E(1),R(2,"translate"),x()),2&n){const e=t.$implicit;Dn("value",e),c(1),_o(" ",e," ",B(2,3,"settings.seconds")," ")}}Je.\u0275fac=function(t){return new(t||Je)(F(ni),F(wu),F(yr),F(pt),F(on),F(_i),F(Qt))},Je.\u0275cmp=qe({type:Je,selectors:[["app-node"]],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","returnText","optionSelected"],[4,"ngIf"],["class","w-100 h-100 d-flex not-found-label",4,"ngIf"],[1,"w-100","h-100","d-flex","not-found-label"],[3,"inline"],[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","returnText","optionSelected","refreshRequested"],[3,"ngClass"],[1,"d-flex","flex-column","h-100"],[1,"right-bar",3,"ngClass"],[3,"nodeInfo","trafficData",4,"ngIf"],[3,"nodeInfo","trafficData"]],template:function(t,e){1&t&&(V(0,LZ,5,8,"div",0),V(1,OZ,9,17,"div",1)),2&t&&(M("ngIf",!e.node),c(1),M("ngIf",e.node))},styles:[".not-found-label[_ngcontent-%COMP%]{align-items:center;justify-content:center;font-size:1rem;position:relative}.not-found-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;font-size:22px;opacity:.5;margin-right:3px}.full-size-main-area[_ngcontent-%COMP%], .main-area[_ngcontent-%COMP%]{width:100%}@media (min-width: 992px){.main-area[_ngcontent-%COMP%]{width:73%;padding-right:20px;float:left}}.right-bar[_ngcontent-%COMP%]{width:27%;float:right;display:none}@media (min-width: 992px){.right-bar[_ngcontent-%COMP%]{display:block;width:27%;float:right}}"]});class rp{constructor(t,e,i){this.formBuilder=t,this.storageService=e,this.snackbarService=i,this.timesList=["3","5","10","15","30","60","90","150","300"]}ngOnInit(){this.form=this.formBuilder.group({refreshRate:[this.storageService.getRefreshTime().toString()]}),this.subscription=this.form.get("refreshRate").valueChanges.subscribe(t=>{this.storageService.setRefreshTime(t),this.snackbarService.showDone("settings.refresh-rate-confirmation")})}ngOnDestroy(){this.subscription.unsubscribe()}}rp.\u0275fac=function(t){return new(t||rp)(F(Cr),F(ni),F(on))},rp.\u0275cmp=qe({type:rp,selectors:[["app-refresh-rate"]],decls:14,vars:9,consts:[[1,"rounded-elevated-box"],[1,"box-internal-container","overflow"],[1,"white-form-help-icon-container"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","refreshRate"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon",3),R(4,"translate"),E(5," help "),x()(),D(6,"form",4)(7,"mat-form-field",5)(8,"div",6)(9,"label",7),E(10),R(11,"translate"),x(),D(12,"mat-select",8),V(13,AZ,3,5,"mat-option",9),x()()()()()()),2&t&&(c(3),M("inline",!0)("matTooltip",B(4,5,"settings.refresh-rate-help")),c(3),M("formGroup",e.form),c(4),oe(B(11,7,"settings.refresh-rate")),c(3),M("ngForOf",e.timesList))},dependencies:[bi,Bi,Ni,Yi,ii,Li,nr,yn,vi,ep,ru,xt],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}mat-form-field[_ngcontent-%COMP%] .mat-mdc-form-field-bottom-align{margin-bottom:0!important}"]});const FZ=function(n){return{number:n}};class hl{constructor(){this.numberOfElements=0,this.linkParts=[""],this.queryParams={}}}function RZ(n,t){1&n&&(D(0,"span",14),E(1),R(2,"translate"),D(3,"mat-icon",15),R(4,"translate"),E(5,"help"),x()()),2&n&&(c(1),ce(" ",B(2,3,"labels.title")," "),c(2),M("inline",!0)("matTooltip",B(4,5,"labels.info")))}function NZ(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function YZ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function BZ(n,t){if(1&n&&(D(0,"div",19)(1,"span"),E(2),R(3,"translate"),x(),V(4,NZ,3,3,"ng-container",20),V(5,YZ,2,1,"ng-container",20),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function HZ(n,t){if(1&n){const e=et();D(0,"div",16),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,BZ,6,5,"div",17),D(2,"div",18),E(3),R(4,"translate"),x()()}if(2&n){const e=z();c(1),M("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),oe(B(4,2,"filters.press-to-remove"))}}function VZ(n,t){if(1&n){const e=et();D(0,"mat-icon",21),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),E(2,"filter_list"),x()}2&n&&M("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function jZ(n,t){if(1&n&&(D(0,"mat-icon",22),E(1,"more_horiz"),x()),2&n){z();const e=ci(9);M("inline",!0)("matMenuTriggerFor",e)}}hl.\u0275fac=function(t){return new(t||hl)},hl.\u0275cmp=qe({type:hl,selectors:[["app-view-all-link"]],inputs:{numberOfElements:"numberOfElements",linkParts:"linkParts",queryParams:"queryParams"},decls:6,vars:9,consts:[[1,"main-container"],[3,"routerLink","queryParams"],[3,"inline"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"a",1),E(2),R(3,"translate"),D(4,"mat-icon",2),E(5,"chevron_right"),x()()()),2&t&&(c(1),M("routerLink",e.linkParts)("queryParams",e.queryParams),c(1),ce(" ",Ct(3,4,"view-all-link.label",Be(7,FZ,e.numberOfElements))," "),c(2),M("inline",!0))},dependencies:[Ja,yn,xt],styles:[".main-container[_ngcontent-%COMP%]{padding-top:20px;margin-bottom:4px;text-align:right;font-size:.875rem}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.main-container[_ngcontent-%COMP%]{margin:0;padding:16px}}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}"]});const iM=function(){return["/settings","labels"]};function zZ(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Un(4,iM))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function UZ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function WZ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function $Z(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function GZ(n,t){if(1&n){const e=et();D(0,"tr")(1,"td",38)(2,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(3,"td"),E(4),x(),D(5,"td"),E(6),x(),D(7,"td"),E(8),R(9,"translate"),x(),D(10,"td",29)(11,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).delete(s.id))}),R(12,"translate"),D(13,"mat-icon",36),E(14,"close"),x()()()()}if(2&n){const e=t.$implicit,i=z(2);c(2),M("checked",i.selections.get(e.id)),c(2),ce(" ",e.label," "),c(2),ce(" ",e.id," "),c(2),_o(" ",i.getLabelTypeIdentification(e)[0]," - ",B(9,7,i.getLabelTypeIdentification(e)[1])," "),c(3),M("matTooltip",B(12,9,"labels.delete")),c(2),M("inline",!0)}}function qZ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.label")))}function KZ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.inverted-order")))}function ZZ(n,t){if(1&n){const e=et();D(0,"tr")(1,"td")(2,"div",33)(3,"div",41)(4,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(5,"div",34)(6,"div",42)(7,"span",1),E(8),R(9,"translate"),x(),E(10),x(),D(11,"div",43)(12,"span",1),E(13),R(14,"translate"),x(),E(15),x(),D(16,"div",42)(17,"span",1),E(18),R(19,"translate"),x(),E(20),R(21,"translate"),x()(),xe(22,"div",44),D(23,"div",35)(24,"button",45),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(25,"translate"),D(26,"mat-icon"),E(27),x()()()()()()}if(2&n){const e=t.$implicit,i=z(2);c(4),M("checked",i.selections.get(e.id)),c(4),oe(B(9,10,"labels.label")),c(2),ce(": ",e.label," "),c(3),oe(B(14,12,"labels.id")),c(2),ce(": ",e.id," "),c(3),oe(B(19,14,"labels.type")),c(2),_o(": ",i.getLabelTypeIdentification(e)[0]," - ",B(21,16,i.getLabelTypeIdentification(e)[1])," "),c(4),M("matTooltip",B(25,18,"common.options")),c(3),oe("add")}}function XZ(n,t){if(1&n&&xe(0,"app-view-all-link",46),2&n){const e=z(2);M("numberOfElements",e.filteredLabels.length)("linkParts",Un(3,iM))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const QZ=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},JZ=function(n){return{"d-lg-none d-xl-table":n}},eX=function(n){return{"d-lg-table d-xl-none":n}};function tX(n,t){if(1&n){const e=et();D(0,"div",24)(1,"div",25)(2,"table",26)(3,"tr"),xe(4,"th"),D(5,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.labelSortData))}),E(6),R(7,"translate"),V(8,UZ,2,2,"mat-icon",28),x(),D(9,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.idSortData))}),E(10),R(11,"translate"),V(12,WZ,2,2,"mat-icon",28),x(),D(13,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),E(14),R(15,"translate"),V(16,$Z,2,2,"mat-icon",28),x(),xe(17,"th",29),x(),V(18,GZ,15,11,"tr",30),x(),D(19,"table",31)(20,"tr",32),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(21,"td")(22,"div",33)(23,"div",34)(24,"div",1),E(25),R(26,"translate"),x(),D(27,"div"),E(28),R(29,"translate"),V(30,qZ,3,3,"ng-container",20),V(31,KZ,3,3,"ng-container",20),x()(),D(32,"div",35)(33,"mat-icon",36),E(34,"keyboard_arrow_down"),x()()()()(),V(35,ZZ,28,20,"tr",30),x(),V(36,XZ,1,4,"app-view-all-link",37),x()()}if(2&n){const e=z();c(1),M("ngClass",cn(27,QZ,e.showShortList_,!e.showShortList_)),c(1),M("ngClass",Be(30,JZ,e.showShortList_)),c(4),ce(" ",B(7,17,"labels.label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.labelSortData),c(2),ce(" ",B(11,19,"labels.id")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.idSortData),c(2),ce(" ",B(15,21,"labels.type")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),M("ngForOf",e.dataSource),c(1),M("ngClass",Be(32,eX,e.showShortList_)),c(6),oe(B(26,23,"tables.sorting-title")),c(3),ce("",B(29,25,e.dataSorter.currentSortingColumn.label)," "),c(2),M("ngIf",e.dataSorter.currentlySortingByLabel),c(1),M("ngIf",e.dataSorter.sortingInReverseOrder),c(2),M("inline",!0),c(2),M("ngForOf",e.dataSource),c(1),M("ngIf",e.showShortList_&&e.numberOfPages>1)}}function nX(n,t){1&n&&(D(0,"span",50),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"labels.empty")))}function iX(n,t){1&n&&(D(0,"span",50),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"labels.empty-with-filter")))}function rX(n,t){if(1&n&&(D(0,"div",24)(1,"div",47)(2,"mat-icon",48),E(3,"warning"),x(),V(4,nX,3,3,"span",49),V(5,iX,3,3,"span",49),x()()),2&n){const e=z();c(2),M("inline",!0),c(2),M("ngIf",0===e.allLabels.length),c(1),M("ngIf",0!==e.allLabels.length)}}function oX(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Un(4,iM))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const sX=function(n){return{"paginator-icons-fixer":n}};class xu{constructor(t,e,i,o,s,a){this.dialog=t,this.route=e,this.router=i,this.snackbarService=o,this.translateService=s,this.storageService=a,this.listId="ll",this.labelSortData=new Yn(["label"],"labels.label",Jt.Text),this.idSortData=new Yn(["id"],"labels.id",Jt.Text),this.typeSortData=new Yn(["identifiedElementType_sort"],"labels.type",Jt.Text),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"labels.filter-dialog.label",keyNameInElementsArray:"label",type:Xn.TextInput,maxlength:100},{filterName:"labels.filter-dialog.id",keyNameInElementsArray:"id",type:Xn.TextInput,maxlength:66},{filterName:"labels.filter-dialog.type",keyNameInElementsArray:"identifiedElementType",type:Xn.Select,printableLabelsForValues:[{value:"",label:"labels.filter-dialog.type-options.any"},{value:Mr.Node,label:"labels.filter-dialog.type-options.visor"},{value:Mr.DmsgServer,label:"labels.filter-dialog.type-options.dmsg-server"},{value:Mr.Transport,label:"labels.filter-dialog.type-options.transport"}]}],this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,[this.labelSortData,this.idSortData,this.typeSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new gu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(d=>{this.filteredLabels=d,this.dataSorter.setData(this.filteredLabels)}),this.loadData(),this.navigationsSubscription=this.route.paramMap.subscribe(d=>{if(d.has("page")){let w=Number.parseInt(d.get("page"),10);(isNaN(w)||w<1)&&(w=1),this.currentPageInUrl=w,this.recalculateElementsToShow()}})}set showShortList(t){this.showShortList_=t,this.dataSorter.setData(this.filteredLabels)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}loadData(){this.allLabels=this.storageService.getSavedLabels(),this.allLabels.forEach(t=>{t.identifiedElementType_sort=this.getLabelTypeIdentification(t)[0]}),this.dataFilterer.setData(this.allLabels)}getLabelTypeIdentification(t){return t.identifiedElementType===Mr.Node?["1","labels.filter-dialog.type-options.visor"]:t.identifiedElementType===Mr.DmsgServer?["2","labels.filter-dialog.type-options.dmsg-server"]:t.identifiedElementType===Mr.Transport?["3","labels.filter-dialog.type-options.transport"]:void 0}changeSelection(t){this.selections.get(t.id)?this.selections.set(t.id,!1):this.selections.set(t.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let t=!1;return this.selections.forEach(e=>{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}deleteSelected(){const t=Wt.createConfirmationDialog(this.dialog,"labels.delete-selected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.close(),this.selections.forEach((e,i)=>{e&&this.storageService.saveLabel(i,"",null)}),this.snackbarService.showDone("labels.deleted"),this.loadData()})}showOptionsDialog(t){Hi.openDialog(this.dialog,[{icon:"close",label:"labels.delete"}],"common.options").afterClosed().subscribe(i=>{1===i&&this.delete(t.id)})}delete(t){const e=Wt.createConfirmationDialog(this.dialog,"labels.delete-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.storageService.saveLabel(t,"",null),this.snackbarService.showDone("labels.deleted"),this.loadData()})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredLabels){const t=this.showShortList_?Rt.maxShortListElements:Rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredLabels.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.labelsToShow=this.filteredLabels.slice(e,e+t);const o=new Map;this.labelsToShow.forEach(a=>{o.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{o.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.labelsToShow=null,this.selections=new Map;this.dataSource=this.labelsToShow}}function aX(n,t){1&n&&xe(0,"app-password")}function lX(n,t){1&n&&(D(0,"div",8),xe(1,"mat-spinner",9),E(2),R(3,"translate"),x()),2&n&&(c(1),M("diameter",11),c(1),ce(" ",B(3,2,"settings.checking-auth")," "))}xu.\u0275fac=function(t){return new(t||xu)(F(Ln),F(yr),F(Qt),F(on),F(oo),F(ni))},xu.\u0275cmp=qe({type:xu,selectors:[["app-label-list"]],inputs:{showShortList:"showShortList"},decls:23,vars:22,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"inline","matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"inline","matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline",4,"ngIf"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),V(2,RZ,6,7,"span",2),V(3,HZ,5,4,"div",3),x(),D(4,"div",4)(5,"div",5),V(6,VZ,3,4,"mat-icon",6),V(7,jZ,2,2,"mat-icon",7),D(8,"mat-menu",8,9)(10,"div",10),ye("click",function(){return e.changeAllSelections(!0)}),E(11),R(12,"translate"),x(),D(13,"div",10),ye("click",function(){return e.changeAllSelections(!1)}),E(14),R(15,"translate"),x(),D(16,"div",11),ye("click",function(){return e.deleteSelected()}),E(17),R(18,"translate"),x()()(),V(19,zZ,1,5,"app-paginator",12),x()(),V(20,tX,37,34,"div",13),V(21,rX,6,3,"div",13),V(22,oX,1,5,"app-paginator",12)),2&t&&(M("ngClass",Be(20,sX,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),c(2),M("ngIf",e.showShortList_),c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),M("ngIf",e.allLabels&&e.allLabels.length>0),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("overlapTrigger",!1),c(3),ce(" ",B(12,14,"selection.select-all")," "),c(3),ce(" ",B(15,16,"selection.unselect-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(18,18,"selection.delete-all")," "),c(2),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("ngIf",!e.dataSource||0===e.dataSource.length),c(1),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[Rn,bi,It,$r,rl,yn,vi,vu,_a,yu,ma,hl,Fs,xt],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]});const cX=function(){return["start.title"]};class op{constructor(t,e,i,o){this.authService=t,this.router=e,this.snackbarService=i,this.dialog=o,this.tabsData=[],this.options=[],this.waitBeforeShowingLoading=!0,this.authChecked=!1,this.authActive=!1,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"language",label:"nodes.dmsg-title",linkParts:["/nodes","dmsg"]},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.updateOptionsMenu()}ngOnInit(){setTimeout(()=>{this.waitBeforeShowingLoading=!1},500),this.checkAuth(0)}checkAuth(t){this.authSubscription=Ge(1).pipe(Di(t),Ne(()=>this.authService.checkLogin())).subscribe(e=>{this.authChecked=!0,this.authActive=e===Is.Logged,this.updateOptionsMenu()},()=>{this.checkAuth(15e3)})}ngOnDestroy(){this.authSubscription.unsubscribe()}updateOptionsMenu(){this.options=[],this.authActive&&(this.options=[{name:"common.logout",actionName:"logout",icon:"power_settings_new"}])}performAction(t){"logout"===t&&this.logout()}logout(){const t=Wt.createConfirmationDialog(this.dialog,"common.logout-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}}op.\u0275fac=function(t){return new(t||op)(F(Ps),F(Qt),F(on),F(Ln))},op.\u0275cmp=qe({type:op,selectors:[["app-settings"]],decls:8,vars:9,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","optionSelected"],[1,"content","col-12","mt-4.5"],[1,"d-block","mb-4"],[4,"ngIf"],["class","white-theme checking-container",4,"ngIf"],[3,"showShortList"],[1,"white-theme","checking-container"],[3,"diameter"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"app-top-bar",2),ye("optionSelected",function(o){return e.performAction(o)}),x()(),D(3,"div",3),xe(4,"app-refresh-rate",4),V(5,aX,1,0,"app-password",5),V(6,lX,4,4,"div",6),xe(7,"app-label-list",7),x()()),2&t&&(c(2),M("titleParts",Un(8,cX))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("optionsData",e.options),c(3),M("ngIf",e.authChecked&&e.authActive),c(1),M("ngIf",!e.authChecked&&!e.waitBeforeShowingLoading),c(1),M("showShortList",!0))},dependencies:[It,oc,fu,rp,cs,xu,xt],styles:[".checking-container[_ngcontent-%COMP%]{font-size:10px;opacity:.5}.checking-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block}.show-link[_ngcontent-%COMP%]{cursor:pointer;font-size:.8rem}"]});class fl{constructor(t){this.apiService=t}create(t,e,i){const o={remote_pk:e};return i&&(o.transport_type=i),this.apiService.post(`visors/${t}/transports`,o)}delete(t,e){return this.apiService.delete(`visors/${t}/transports/${e}`)}savePersistentTransportsData(t,e){return this.apiService.put(`visors/${t}/persistent-transports`,e)}getPersistentTransports(t){return this.apiService.get(`visors/${t}/persistent-transports`)}types(t){return this.apiService.get(`visors/${t}/transport-types`)}changeAutoconnectSetting(t,e){const i={};return i.public_autoconnect=e,this.apiService.put(`visors/${t}/public-autoconnect`,i)}}fl.\u0275fac=function(t){return new(t||fl)(we(wo))},fl.\u0275prov=Ye({token:fl,factory:fl.\u0275fac,providedIn:"root"});const dX=["button"],uX=["firstInput"];function hX(n,t){1&n&&xe(0,"app-loading-indicator",5),2&n&&M("showWhite",!1)}function fX(n,t){1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),oe(B(3,1,"transports.dialog.errors.remote-key-length-error")))}function pX(n,t){1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"transports.dialog.errors.remote-key-chars-error")))}function mX(n,t){if(1&n&&(D(0,"mat-option",19),E(1),x()),2&n){const e=t.$implicit;M("value",e),c(1),oe(e)}}const Ng=function(n){return{"element-disabled":n}};function _X(n,t){if(1&n){const e=et();D(0,"form",6)(1,"mat-form-field",7)(2,"div",8)(3,"label",9),E(4),R(5,"translate"),x(),xe(6,"input",10,11),x(),D(8,"mat-error"),V(9,fX,4,3,"ng-container",12),x(),V(10,pX,3,3,"ng-template",null,13,ws),x(),D(12,"mat-form-field",7)(13,"div",8)(14,"label",9),E(15),R(16,"translate"),x(),xe(17,"input",14),x()(),D(18,"mat-form-field",7)(19,"div",8)(20,"label",9),E(21),R(22,"translate"),x(),D(23,"mat-select",15),V(24,mX,2,2,"mat-option",16),x()(),D(25,"mat-error")(26,"span"),E(27),R(28,"translate"),x()()(),D(29,"mat-checkbox",17),ye("change",function(o){return Pe(e),Oe(z().setMakePersistent(o))}),E(30),R(31,"translate"),D(32,"mat-icon",18),R(33,"translate"),E(34,"help"),x()()()}if(2&n){const e=ci(11),i=z();M("formGroup",i.form),c(1),M("ngClass",Be(28,Ng,i.disableDismiss)),c(3),oe(B(5,16,"transports.dialog.remote-key")),c(5),M("ngIf",!i.form.get("remoteKey").hasError("pattern"))("ngIfElse",e),c(3),M("ngClass",Be(30,Ng,i.disableDismiss)),c(3),oe(B(16,18,"transports.dialog.label")),c(3),M("ngClass",Be(32,Ng,i.disableDismiss)),c(3),oe(B(22,20,"transports.dialog.transport-type")),c(3),M("ngForOf",i.types),c(3),oe(B(28,22,"transports.dialog.errors.transport-type-error")),c(2),M("checked",i.makePersistent)("ngClass",Be(34,Ng,i.disableDismiss)),c(1),ce(" ",B(31,24,"transports.dialog.make-persistent")," "),c(2),M("inline",!0)("matTooltip",B(33,26,"transports.dialog.persistent-tooltip"))}}class pc{constructor(t,e,i,o,s,a){this.transportService=t,this.formBuilder=e,this.dialogRef=i,this.snackbarService=o,this.storageService=s,this.nodeService=a,this.makePersistent=!1,this.shouldShowError=!0}static openDialog(t){const e=new Tn;return e.autoFocus=!1,e.width=Rt.mediumModalWidth,t.open(pc,e)}ngOnInit(){this.form=this.formBuilder.group({remoteKey:["",Vt.compose([Vt.required,Vt.minLength(66),Vt.maxLength(66),Vt.pattern("^[0-9a-fA-F]+$")])],label:[""],type:["",Vt.required]}),this.loadData(0)}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setMakePersistent(t){this.makePersistent=!!t.checked}create(){if(!this.form.valid||this.button.disabled)return;this.button.showLoading();const t=this.form.get("remoteKey").value,e=this.form.get("type").value,i=this.form.get("label").value;if(this.makePersistent){const o=this.transportService.getPersistentTransports(Je.getCurrentNodeKey());this.operationSubscription=o.subscribe(s=>{const a=s||[];let l=!1;a.forEach(d=>{d.pk.toUpperCase()===t.toUpperCase()&&d.type.toUpperCase()===e.toUpperCase()&&(l=!0)}),l?this.createTransport(t,e,i,!0):this.createPersistent(a,t,e,i)},s=>{this.onError(s)})}else this.createTransport(t,e,i,!1)}createPersistent(t,e,i,o){t.push({pk:e,type:i}),this.operationSubscription=this.transportService.savePersistentTransportsData(Je.getCurrentNodeKey(),t).subscribe(()=>{this.createTransport(e,i,o,!0)},s=>{this.onError(s)})}createTransport(t,e,i,o){this.operationSubscription=this.transportService.create(Je.getCurrentNodeKey(),t,e).subscribe(s=>{let a=!1;i&&(s&&s.id?this.storageService.saveLabel(s.id,i,Mr.Transport):a=!0),Je.refreshCurrentDisplayedData(),this.dialogRef.close(),a?this.snackbarService.showWarning("transports.dialog.success-without-label"):this.snackbarService.showDone("transports.dialog.success")},s=>{o?(Je.refreshCurrentDisplayedData(),this.dialogRef.close(),this.snackbarService.showWarning("transports.dialog.only-persistent-created")):this.onError(s)})}onError(t){this.button.showError(),t=Kt(t),this.snackbarService.showError(t)}loadData(t){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=Ge(1).pipe(Di(t),Ne(()=>this.transportService.types(Je.getCurrentNodeKey()))).subscribe(e=>{e.sort((o,s)=>"stcp"===o.toLowerCase()?1:"stcp"===s.toLowerCase()?-1:o.localeCompare(s));let i=e.findIndex(o=>"dmsg"===o.toLowerCase());i=-1!==i?i:0,this.types=e,this.form.get("type").setValue(e[i]),this.snackbarService.closeCurrentIfTemporaryError(),setTimeout(()=>this.firstInput.nativeElement.focus())},e=>{e=Kt(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(Rt.connectionRetryDelay)})}}function gX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),D(3,"mat-icon",6),R(4,"translate"),E(5,"help"),x(),We()),2&n&&(c(1),ce(" ",B(2,3,"common.yes")," "),c(2),M("inline",!0)("matTooltip",B(4,5,"transports.persistent-transport-tooltip")))}function bX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"common.no")))}pc.\u0275fac=function(t){return new(t||pc)(F(fl),F(Cr),F(Nn),F(on),F(ni),F(so))},pc.\u0275cmp=qe({type:pc,selectors:[["app-create-transport"]],viewQuery:function(t,e){if(1&t&&(ft(dX,5),ft(uX,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:8,vars:11,consts:[[3,"headline","dialog","disableDismiss"],[3,"showWhite",4,"ngIf"],[3,"formGroup",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],[3,"showWhite"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","remoteKey","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],["formControlName","label","maxlength","66","matInput",""],["formControlName","type"],[3,"value",4,"ngFor","ngForOf"],["color","primary",3,"checked","ngClass","change"],[1,"help-icon",3,"inline","matTooltip"],[3,"value"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),V(2,hX,1,1,"app-loading-indicator",1),V(3,_X,35,36,"form",2),D(4,"app-button",3,4),ye("action",function(){return e.create()}),E(6),R(7,"translate"),x()()),2&t&&(M("headline",B(1,7,"transports.create"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(2),M("ngIf",!e.types),c(1),M("ngIf",e.types),c(1),M("disabled",!e.form.valid),c(2),ce(" ",B(7,9,"transports.create")," "))},dependencies:[Rn,bi,It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,yn,vi,ep,ru,ma,ri,En,Gr,xt],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]});class mc{constructor(t,e){this.data=t,this.dialogRef=e}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.largeModalWidth,t.open(mc,i)}}function vX(n,t){1&n&&(D(0,"span",15),E(1),R(2,"translate"),D(3,"mat-icon",16),R(4,"translate"),E(5,"help"),x()()),2&n&&(c(1),ce(" ",B(2,3,"transports.title")," "),c(2),M("inline",!0)("matTooltip",B(4,5,"transports.info")))}function yX(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function MX(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function wX(n,t){if(1&n&&(D(0,"div",20)(1,"span"),E(2),R(3,"translate"),x(),V(4,yX,3,3,"ng-container",21),V(5,MX,2,1,"ng-container",21),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function xX(n,t){if(1&n){const e=et();D(0,"div",17),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,wX,6,5,"div",18),D(2,"div",19),E(3),R(4,"translate"),x()()}if(2&n){const e=z();c(1),M("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),oe(B(4,2,"filters.press-to-remove"))}}function CX(n,t){if(1&n){const e=et();D(0,"mat-icon",22),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),E(1,"filter_list"),x()}2&n&&M("inline",!0)}function kX(n,t){if(1&n&&(D(0,"mat-icon",23),E(1,"more_horiz"),x()),2&n){z();const e=ci(11);M("inline",!0)("matMenuTriggerFor",e)}}mc.\u0275fac=function(t){return new(t||mc)(F(Ti),F(Nn))},mc.\u0275cmp=qe({type:mc,selectors:[["app-transport-details"]],decls:51,vars:45,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[4,"ngIf"],[1,"title"],[1,"help-icon","d-none","d-md-inline",3,"inline","matTooltip"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div")(3,"div",1)(4,"mat-icon",2),E(5,"list"),x(),E(6),R(7,"translate"),x(),D(8,"div",3)(9,"span"),E(10),R(11,"translate"),x(),V(12,gX,6,7,"ng-container",4),V(13,bX,3,3,"ng-container",4),x(),D(14,"div",3)(15,"span"),E(16),R(17,"translate"),x(),E(18),x(),D(19,"div",3)(20,"span"),E(21),R(22,"translate"),x(),E(23),x(),D(24,"div",3)(25,"span"),E(26),R(27,"translate"),x(),E(28),x(),D(29,"div",3)(30,"span"),E(31),R(32,"translate"),x(),E(33),x(),D(34,"div",5)(35,"mat-icon",2),E(36,"import_export"),x(),E(37),R(38,"translate"),x(),D(39,"div",3)(40,"span"),E(41),R(42,"translate"),x(),E(43),R(44,"autoScale"),x(),D(45,"div",3)(46,"span"),E(47),R(48,"translate"),x(),E(49),R(50,"autoScale"),x()()()),2&t&&(M("headline",B(1,21,"transports.details.title"))("dialog",e.dialogRef),c(4),M("inline",!0),c(2),ce("",B(7,23,"transports.details.basic.title")," "),c(4),oe(B(11,25,"transports.details.basic.persistent")),c(2),M("ngIf",e.data.isPersistent),c(1),M("ngIf",!e.data.isPersistent),c(3),oe(B(17,27,"transports.details.basic.id")),c(2),ce(" ",e.data.id," "),c(3),oe(B(22,29,"transports.details.basic.local-pk")),c(2),ce(" ",e.data.localPk," "),c(3),oe(B(27,31,"transports.details.basic.remote-pk")),c(2),ce(" ",e.data.remotePk," "),c(3),oe(B(32,33,"transports.details.basic.type")),c(2),ce(" ",e.data.type," "),c(2),M("inline",!0),c(2),ce("",B(38,35,"transports.details.data.title")," "),c(4),oe(B(42,37,"transports.details.data.uploaded")),c(2),ce(" ",B(44,39,e.data.sent)," "),c(4),oe(B(48,41,"transports.details.data.downloaded")),c(2),ce(" ",B(50,43,e.data.recv)," "))},dependencies:[It,yn,vi,En,xt,rr],styles:[".help-icon[_ngcontent-%COMP%]{opacity:.5;font-size:14px;cursor:default}"]});const rM=function(n){return["/nodes",n,"transports"]};function SX(n,t){if(1&n&&xe(0,"app-paginator",24),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Be(4,rM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function DX(n,t){if(1&n&&(D(0,"mat-icon",39),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function TX(n,t){1&n&&(Ue(0),E(1,"*"),We())}function LX(n,t){if(1&n&&(Ue(0),D(1,"mat-icon",39),E(2),x(),V(3,TX,2,0,"ng-container",21),We()),2&n){const e=z(2);c(1),M("inline",!0),c(1),oe(e.dataSorter.sortingArrow),c(1),M("ngIf",e.dataSorter.currentlySortingByLabel)}}function EX(n,t){1&n&&(Ue(0),E(1,"*"),We())}function IX(n,t){if(1&n&&(Ue(0),D(1,"mat-icon",39),E(2),x(),V(3,EX,2,0,"ng-container",21),We()),2&n){const e=z(2);c(1),M("inline",!0),c(1),oe(e.dataSorter.sortingArrow),c(1),M("ngIf",e.dataSorter.currentlySortingByLabel)}}function PX(n,t){if(1&n&&(D(0,"mat-icon",39),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function OX(n,t){if(1&n&&(D(0,"mat-icon",39),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function AX(n,t){if(1&n&&(D(0,"mat-icon",39),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function FX(n,t){if(1&n){const e=et();D(0,"button",48),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).changeIfPersistent([o],!1))}),R(1,"translate"),D(2,"mat-icon",49),E(3,"star"),x()()}2&n&&(M("matTooltip",B(1,2,"transports.persistent-transport-button-tooltip")),c(2),M("inline",!0))}function RX(n,t){if(1&n){const e=et();D(0,"button",48),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).changeIfPersistent([o],!0))}),R(1,"translate"),D(2,"mat-icon",50),E(3,"star_outline"),x()()}2&n&&(M("matTooltip",B(1,2,"transports.non-persistent-transport-button-tooltip")),c(2),M("inline",!0))}function NX(n,t){1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"transports.offline")))}function YX(n,t){if(1&n){const e=et();D(0,"td")(1,"app-labeled-element-text",51),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x(),V(2,NX,3,3,"span",21),x()}if(2&n){const e=z().$implicit,i=z(2);c(1),Dn("id",e.id),M("short",!0)("elementType",i.labeledElementTypes.Transport),c(1),M("ngIf",e.notFound)}}function BX(n,t){1&n&&(D(0,"td"),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"transports.offline")," "))}function HX(n,t){if(1&n&&(D(0,"td"),E(1),R(2,"autoScale"),x()),2&n){const e=z().$implicit;c(1),ce(" ",B(2,1,e.sent)," ")}}function VX(n,t){if(1&n&&(D(0,"td"),E(1),R(2,"autoScale"),x()),2&n){const e=z().$implicit;c(1),ce(" ",B(2,1,e.recv)," ")}}function jX(n,t){1&n&&(D(0,"td"),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"transports.offline")," "))}function zX(n,t){1&n&&(D(0,"td"),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"transports.offline")," "))}function UX(n,t){if(1&n){const e=et();D(0,"button",52),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).details(o))}),R(1,"translate"),D(2,"mat-icon",39),E(3,"visibility"),x()()}2&n&&(M("matTooltip",B(1,2,"transports.details.title")),c(2),M("inline",!0))}function WX(n,t){if(1&n){const e=et();D(0,"button",52),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).delete(o))}),R(1,"translate"),D(2,"mat-icon",39),E(3,"close"),x()()}2&n&&(M("matTooltip",B(1,2,"transports.delete")),c(2),M("inline",!0))}const WI=function(n){return{offline:n}};function $X(n,t){if(1&n){const e=et();D(0,"tr",42)(1,"td",43)(2,"mat-checkbox",44),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(3,"td"),V(4,FX,4,4,"button",45),V(5,RX,4,4,"button",45),x(),V(6,YX,3,4,"td",21),V(7,BX,3,3,"td",21),D(8,"td")(9,"app-labeled-element-text",46),ye("labelEdited",function(){return Pe(e),Oe(z(2).refreshData())}),x()(),D(10,"td"),E(11),x(),V(12,HX,3,3,"td",21),V(13,VX,3,3,"td",21),V(14,jX,3,3,"td",21),V(15,zX,3,3,"td",21),D(16,"td",32),V(17,UX,4,4,"button",47),V(18,WX,4,4,"button",47),x()()}if(2&n){const e=t.$implicit,i=z(2);M("ngClass",Be(15,WI,e.notFound)),c(2),M("checked",i.selections.get(e.id)),c(2),M("ngIf",e.isPersistent),c(1),M("ngIf",!e.isPersistent),c(1),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound),c(2),Dn("id",e.remotePk),M("short",!0),c(2),ce(" ",e.type," "),c(1),M("ngIf",!e.notFound),c(1),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound),c(1),M("ngIf",e.notFound),c(2),M("ngIf",!e.notFound),c(1),M("ngIf",!e.notFound)}}function GX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.label")))}function qX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.inverted-order")))}function KX(n,t){1&n&&(D(0,"div",59)(1,"div",59)(2,"mat-icon",62),E(3,"star"),x(),E(4,"\xa0 "),D(5,"span",63),E(6),R(7,"translate"),x()()()),2&n&&(c(2),M("inline",!0),c(4),oe(B(7,2,"transports.persistent")))}function ZX(n,t){if(1&n){const e=et();D(0,"app-labeled-element-text",64),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()}if(2&n){const e=z().$implicit,i=z(2);Dn("id",e.id),M("elementType",i.labeledElementTypes.Transport)}}function XX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"transports.offline")))}function QX(n,t){if(1&n&&(Ue(0),E(1),R(2,"autoScale"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.sent))}}function JX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"transports.offline")))}function eQ(n,t){if(1&n&&(Ue(0),E(1),R(2,"autoScale"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.recv))}}function tQ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"transports.offline")))}function nQ(n,t){if(1&n){const e=et();D(0,"tr")(1,"td")(2,"div",53)(3,"div",54)(4,"mat-checkbox",44),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(5,"div",37),V(6,KX,8,4,"div",55),D(7,"div",56)(8,"span",1),E(9),R(10,"translate"),x(),E(11,": "),V(12,ZX,1,2,"app-labeled-element-text",57),V(13,XX,3,3,"ng-container",21),x(),D(14,"div",56)(15,"span",1),E(16),R(17,"translate"),x(),E(18,": "),D(19,"app-labeled-element-text",58),ye("labelEdited",function(){return Pe(e),Oe(z(2).refreshData())}),x()(),D(20,"div",59)(21,"span",1),E(22),R(23,"translate"),x(),E(24),x(),D(25,"div",59)(26,"span",1),E(27),R(28,"translate"),x(),E(29,": "),V(30,QX,3,3,"ng-container",21),V(31,JX,3,3,"ng-container",21),x(),D(32,"div",59)(33,"span",1),E(34),R(35,"translate"),x(),E(36,": "),V(37,eQ,3,3,"ng-container",21),V(38,tQ,3,3,"ng-container",21),x()(),xe(39,"div",60),D(40,"div",38)(41,"button",61),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(42,"translate"),D(43,"mat-icon"),E(44),x()()()()()()}if(2&n){const e=t.$implicit,i=z(2);c(2),M("ngClass",Be(30,WI,e.notFound)),c(2),M("checked",i.selections.get(e.id)),c(2),M("ngIf",e.isPersistent),c(3),oe(B(10,18,"transports.id")),c(3),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound),c(3),oe(B(17,20,"transports.remote-node")),c(3),Dn("id",e.remotePk),c(3),oe(B(23,22,"transports.type")),c(2),ce(": ",e.type," "),c(3),oe(B(28,24,"common.uploaded")),c(3),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound),c(3),oe(B(35,26,"common.downloaded")),c(3),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound),c(3),M("matTooltip",B(42,28,"common.options")),c(3),oe("add")}}function iQ(n,t){if(1&n&&xe(0,"app-view-all-link",65),2&n){const e=z(2);M("numberOfElements",e.filteredTransports.length)("linkParts",Be(3,rM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const rQ=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},oQ=function(n){return{"d-lg-none d-xl-table":n}},sQ=function(n){return{"d-lg-table d-xl-none":n}};function aQ(n,t){if(1&n){const e=et();D(0,"div",25)(1,"div",26)(2,"table",27)(3,"tr"),xe(4,"th"),D(5,"th",28),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.persistentSortData))}),R(6,"translate"),D(7,"mat-icon",29),E(8,"star_outline"),x(),V(9,DX,2,2,"mat-icon",30),x(),D(10,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.idSortData))}),E(11),R(12,"translate"),V(13,LX,4,3,"ng-container",21),x(),D(14,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.remotePkSortData))}),E(15),R(16,"translate"),V(17,IX,4,3,"ng-container",21),x(),D(18,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),E(19),R(20,"translate"),V(21,PX,2,2,"mat-icon",30),x(),D(22,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.uploadedSortData))}),E(23),R(24,"translate"),V(25,OX,2,2,"mat-icon",30),x(),D(26,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.downloadedSortData))}),E(27),R(28,"translate"),V(29,AX,2,2,"mat-icon",30),x(),xe(30,"th",32),x(),V(31,$X,19,17,"tr",33),x(),D(32,"table",34)(33,"tr",35),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(34,"td")(35,"div",36)(36,"div",37)(37,"div",1),E(38),R(39,"translate"),x(),D(40,"div"),E(41),R(42,"translate"),V(43,GX,3,3,"ng-container",21),V(44,qX,3,3,"ng-container",21),x()(),D(45,"div",38)(46,"mat-icon",39),E(47,"keyboard_arrow_down"),x()()()()(),V(48,nQ,45,32,"tr",40),x(),V(49,iQ,1,5,"app-view-all-link",41),x()()}if(2&n){const e=z();c(1),M("ngClass",cn(39,rQ,e.showShortList_,!e.showShortList_)),c(1),M("ngClass",Be(42,oQ,e.showShortList_)),c(3),M("matTooltip",B(6,23,"transports.persistent-tooltip")),c(4),M("ngIf",e.dataSorter.currentSortingColumn===e.persistentSortData),c(2),ce(" ",B(12,25,"transports.id")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.idSortData),c(2),ce(" ",B(16,27,"transports.remote-node")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.remotePkSortData),c(2),ce(" ",B(20,29,"transports.type")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),ce(" ",B(24,31,"common.uploaded")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.uploadedSortData),c(2),ce(" ",B(28,33,"common.downloaded")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.downloadedSortData),c(2),M("ngForOf",e.dataSource),c(1),M("ngClass",Be(44,sQ,e.showShortList_)),c(6),oe(B(39,35,"tables.sorting-title")),c(3),ce("",B(42,37,e.dataSorter.currentSortingColumn.label)," "),c(2),M("ngIf",e.dataSorter.currentlySortingByLabel),c(1),M("ngIf",e.dataSorter.sortingInReverseOrder),c(2),M("inline",!0),c(2),M("ngForOf",e.dataSource),c(1),M("ngIf",e.showShortList_&&e.numberOfPages>1)}}function lQ(n,t){1&n&&(D(0,"span",69),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"transports.empty")))}function cQ(n,t){1&n&&(D(0,"span",69),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"transports.empty-with-filter")))}function dQ(n,t){if(1&n&&(D(0,"div",25)(1,"div",66)(2,"mat-icon",67),E(3,"warning"),x(),V(4,lQ,3,3,"span",68),V(5,cQ,3,3,"span",68),x()()),2&n){const e=z();c(2),M("inline",!0),c(2),M("ngIf",0===e.allTransports.length),c(1),M("ngIf",0!==e.allTransports.length)}}function uQ(n,t){if(1&n&&xe(0,"app-paginator",24),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Be(4,rM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const hQ=function(n){return{"paginator-icons-fixer":n}};class Cu{constructor(t,e,i,o,s,a,l,d){this.dialog=t,this.transportService=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.nodeService=d,this.listId="tr",this.persistentSortData=new Yn(["isPersistent"],"transports.persistent",Jt.Boolean),this.idSortData=new Yn(["id"],"transports.id",Jt.Text,["id_label"]),this.remotePkSortData=new Yn(["remotePk"],"transports.remote-node",Jt.Text,["remote_pk_label"]),this.typeSortData=new Yn(["type"],"transports.type",Jt.Text),this.uploadedSortData=new Yn(["sent"],"common.uploaded",Jt.NumberReversed),this.downloadedSortData=new Yn(["recv"],"common.downloaded",Jt.NumberReversed),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"transports.filter-dialog.persistent",keyNameInElementsArray:"isPersistent",type:Xn.Select,printableLabelsForValues:[{value:"",label:"transports.filter-dialog.persistent-options.any"},{value:"true",label:"transports.filter-dialog.persistent-options.persistent"},{value:"false",label:"transports.filter-dialog.persistent-options.non-persistent"}]},{filterName:"transports.filter-dialog.id",keyNameInElementsArray:"id",secondaryKeyNameInElementsArray:"id_label",type:Xn.TextInput,maxlength:36},{filterName:"transports.filter-dialog.remote-node",keyNameInElementsArray:"remotePk",secondaryKeyNameInElementsArray:"remote_pk_label",type:Xn.TextInput,maxlength:66}],this.labeledElementTypes=Mr,this.operationSubscriptionsGroup=[],this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,[this.persistentSortData,this.idSortData,this.remotePkSortData,this.typeSortData,this.uploadedSortData,this.downloadedSortData],1,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new gu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(P=>{this.filteredTransports=P,this.dataSorter.setData(this.filteredTransports)}),this.navigationsSubscription=this.route.paramMap.subscribe(P=>{if(P.has("page")){let Y=Number.parseInt(P.get("page"),10);(isNaN(Y)||Y<1)&&(Y=1),this.currentPageInUrl=Y,this.recalculateElementsToShow()}}),this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.node=this.currentNode})}set showShortList(t){this.showShortList_=t,this.dataSorter.setData(this.filteredTransports)}set node(t){this.currentNode=t,this.allTransports=t.transports,this.nodePK=t.localPk;const e=new Map;t.persistentTransports.forEach(i=>e.set(this.getPersistentTransportID(i.pk,i.type),i)),this.allTransports.forEach(i=>{e.has(this.getPersistentTransportID(i.remotePk,i.type))?(i.isPersistent=!0,e.delete(this.getPersistentTransportID(i.remotePk,i.type))):i.isPersistent=!1}),e.forEach((i,o)=>{this.allTransports.push({id:this.getPersistentTransportID(i.pk,i.type),localPk:t.localPk,remotePk:i.pk,type:i.type,recv:0,sent:0,isPersistent:!0,notFound:!0})}),this.allTransports.forEach(i=>{i.id_label=Ar.getCompleteLabel(this.storageService,this.translateService,i.id),i.remote_pk_label=Ar.getCompleteLabel(this.storageService,this.translateService,i.remotePk)}),this.dataFilterer.setData(this.allTransports)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.languageSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose(),this.persistentTransportSubscription&&this.persistentTransportSubscription.unsubscribe()}changeSelection(t){this.selections.get(t.id)?this.selections.set(t.id,!1):this.selections.set(t.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let t=!1;return this.selections.forEach(e=>{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}deleteSelected(){const t=Wt.createConfirmationDialog(this.dialog,"transports.delete-selected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing();const e=[];this.selections.forEach((i,o)=>{i&&e.push(o)}),this.deleteRecursively(e,t)})}create(){pc.openDialog(this.dialog)}showOptionsDialog(t){const e=[];e.push(t.isPersistent?{icon:"star_outline",label:"transports.make-non-persistent"}:{icon:"star",label:"transports.make-persistent"}),t.notFound||(e.push({icon:"visibility",label:"transports.details.title"}),e.push({icon:"close",label:"transports.delete"})),Hi.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{1===i?this.changeIfPersistent([t],!t.isPersistent):2===i?this.details(t):3===i&&this.delete(t)})}changeIfPersistentOfSelected(t){const e=[];this.allTransports.forEach(i=>{this.selections.has(i.id)&&this.selections.get(i.id)&&e.push(i)}),this.changeIfPersistent(e,t)}changeIfPersistent(t,e){if(t.length<1)return;let i="transports.";i+=1===t.length?e?"make-persistent-confirmation":"make"+(t[0].notFound?"-offline":"")+"-non-persistent-confirmation":e?"make-selected-persistent-confirmation":"make-selected-non-persistent-confirmation";const o=Wt.createConfirmationDialog(this.dialog,i);o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.persistentTransportSubscription=this.transportService.getPersistentTransports(this.nodePK).subscribe(s=>{const a=s||[];let l=!1;const d=new Map;if(t.forEach(w=>d.set(this.getPersistentTransportID(w.remotePk,w.type),w)),e)a.forEach(w=>{d.has(this.getPersistentTransportID(w.pk,w.type))&&d.delete(this.getPersistentTransportID(w.pk,w.type))}),l=0===d.size,l||d.forEach(w=>{a.push({pk:w.remotePk,type:w.type})});else{l=!0;for(let w=0;w{o.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.changes-made")},w=>{w=Kt(w),o.componentInstance.showDone("confirmation.error-header-text",w.translatableErrorMsg)})},s=>{s=Kt(s),o.componentInstance.showDone("confirmation.error-header-text",s.translatableErrorMsg)})})}details(t){mc.openDialog(this.dialog,t)}delete(t){const i=Wt.createConfirmationDialog(this.dialog,"transports.delete-"+(t.isPersistent?"persistent-":"")+"confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(t.id).subscribe(()=>{i.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")},o=>{o=Kt(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))})}refreshData(){Je.refreshCurrentDisplayedData()}getPersistentTransportID(t,e){return t.toUpperCase()+e.toUpperCase()}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredTransports){const t=this.showShortList_?Rt.maxShortListElements:Rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredTransports.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.transportsToShow=this.filteredTransports.slice(e,e+t);const o=new Map;this.transportsToShow.forEach(a=>{o.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{o.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.transportsToShow=null,this.selections=new Map;this.dataSource=this.transportsToShow}startDeleting(t){return this.transportService.delete(Je.getCurrentNodeKey(),t)}deleteRecursively(t,e){this.operationSubscriptionsGroup.push(this.startDeleting(t[t.length-1]).subscribe(()=>{t.pop(),0===t.length?(e.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")):this.deleteRecursively(t,e)},i=>{Je.refreshCurrentDisplayedData(),i=Kt(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)}))}}function fQ(n,t){1&n&&(D(0,"div",5)(1,"mat-icon",2),E(2,"settings"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce("",B(4,2,"routes.details.specific-fields-titles.app")," "))}function pQ(n,t){1&n&&(D(0,"div",5)(1,"mat-icon",2),E(2,"swap_horiz"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce("",B(4,2,"routes.details.specific-fields-titles.forward")," "))}function mQ(n,t){1&n&&(D(0,"div",5)(1,"mat-icon",2),E(2,"arrow_forward"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce("",B(4,2,"routes.details.specific-fields-titles.intermediary-forward")," "))}function _Q(n,t){if(1&n&&(D(0,"div")(1,"div",3)(2,"span"),E(3),R(4,"translate"),x(),E(5),x(),D(6,"div",3)(7,"span"),E(8),R(9,"translate"),x(),E(10),x()()),2&n){const e=z(2);c(3),oe(B(4,5,"routes.details.specific-fields.route-id")),c(2),ce(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextRid:e.routeRule.intermediaryForwardFields.nextRid," "),c(3),oe(B(9,7,"routes.details.specific-fields.transport-id")),c(2),_o(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid," ",e.getLabel(e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid)," ")}}function gQ(n,t){if(1&n&&(D(0,"div")(1,"div",3)(2,"span"),E(3),R(4,"translate"),x(),E(5),x(),D(6,"div",3)(7,"span"),E(8),R(9,"translate"),x(),E(10),x(),D(11,"div",3)(12,"span"),E(13),R(14,"translate"),x(),E(15),x(),D(16,"div",3)(17,"span"),E(18),R(19,"translate"),x(),E(20),x()()),2&n){const e=z(2);c(3),oe(B(4,10,"routes.details.specific-fields.destination-pk")),c(2),_o(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk)," "),c(3),oe(B(9,12,"routes.details.specific-fields.source-pk")),c(2),_o(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk)," "),c(3),oe(B(14,14,"routes.details.specific-fields.destination-port")),c(2),ce(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPort:e.routeRule.forwardFields.routeDescriptor.dstPort," "),c(3),oe(B(19,16,"routes.details.specific-fields.source-port")),c(2),ce(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPort:e.routeRule.forwardFields.routeDescriptor.srcPort," ")}}function bQ(n,t){if(1&n&&(D(0,"div")(1,"div",5)(2,"mat-icon",2),E(3,"list"),x(),E(4),R(5,"translate"),x(),D(6,"div",3)(7,"span"),E(8),R(9,"translate"),x(),E(10),x(),D(11,"div",3)(12,"span"),E(13),R(14,"translate"),x(),E(15),x(),D(16,"div",3)(17,"span"),E(18),R(19,"translate"),x(),E(20),x(),V(21,fQ,5,4,"div",6),V(22,pQ,5,4,"div",6),V(23,mQ,5,4,"div",6),V(24,_Q,11,9,"div",4),V(25,gQ,21,18,"div",4),x()),2&n){const e=z();c(2),M("inline",!0),c(2),ce("",B(5,13,"routes.details.summary.title")," "),c(4),oe(B(9,15,"routes.details.summary.keep-alive")),c(2),ce(" ",e.routeRule.ruleSummary.keepAlive," "),c(3),oe(B(14,17,"routes.details.summary.type")),c(2),ce(" ",e.getRuleTypeName(e.routeRule.ruleSummary.ruleType)," "),c(3),oe(B(19,19,"routes.details.summary.key-route-id")),c(2),ce(" ",e.routeRule.ruleSummary.keyRouteId," "),c(1),M("ngIf",e.routeRule.appFields),c(1),M("ngIf",e.routeRule.forwardFields),c(1),M("ngIf",e.routeRule.intermediaryForwardFields),c(1),M("ngIf",e.routeRule.forwardFields||e.routeRule.intermediaryForwardFields),c(1),M("ngIf",e.routeRule.appFields&&e.routeRule.appFields.routeDescriptor||e.routeRule.forwardFields&&e.routeRule.forwardFields.routeDescriptor)}}Cu.\u0275fac=function(t){return new(t||Cu)(F(Ln),F(fl),F(yr),F(Qt),F(on),F(oo),F(ni),F(so))},Cu.\u0275cmp=qe({type:Cu,selectors:[["app-transport-list"]],inputs:{showShortList:"showShortList",node:"node"},decls:31,vars:31,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],[3,"inline","click"],["class","small-icon",3,"inline","click",4,"ngIf"],[3,"inline","matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","click"],[3,"inline","matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column","small-column",3,"matTooltip","click"],[1,"persistent-icon","grey-text"],[3,"inline",4,"ngIf"],[1,"sortable-column",3,"click"],[1,"actions"],[3,"ngClass",4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[4,"ngFor","ngForOf"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[3,"ngClass"],[1,"selection-col"],[3,"checked","change"],["mat-button","","class","action-button subtle-transparent-button",3,"matTooltip","click",4,"ngIf"],["shortTextLength","4",3,"short","id","labelEdited"],["mat-button","","class","action-button transparent-button",3,"matTooltip","click",4,"ngIf"],["mat-button","",1,"action-button","subtle-transparent-button",3,"matTooltip","click"],[1,"persistent-icon","default-cursor",3,"inline"],[1,"persistent-icon","grey-text",3,"inline"],["shortTextLength","4",3,"short","id","elementType","labelEdited"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],[1,"list-item-container",3,"ngClass"],[1,"check-part"],["class","list-row",4,"ngIf"],[1,"list-row","long-content"],[3,"id","elementType","labelEdited",4,"ngIf"],[3,"id","labelEdited"],[1,"list-row"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[1,"persistent-icon",3,"inline"],[1,"yellow-clear-text","title"],[3,"id","elementType","labelEdited"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),V(2,vX,6,7,"span",2),V(3,xX,5,4,"div",3),x(),D(4,"div",4)(5,"div",5)(6,"mat-icon",6),ye("click",function(){return e.create()}),E(7,"add"),x(),V(8,CX,2,1,"mat-icon",7),V(9,kX,2,2,"mat-icon",8),D(10,"mat-menu",9,10)(12,"div",11),ye("click",function(){return e.changeAllSelections(!0)}),E(13),R(14,"translate"),x(),D(15,"div",11),ye("click",function(){return e.changeAllSelections(!1)}),E(16),R(17,"translate"),x(),D(18,"div",12),ye("click",function(){return e.changeIfPersistentOfSelected(!0)}),E(19),R(20,"translate"),x(),D(21,"div",12),ye("click",function(){return e.changeIfPersistentOfSelected(!1)}),E(22),R(23,"translate"),x(),D(24,"div",12),ye("click",function(){return e.deleteSelected()}),E(25),R(26,"translate"),x()()(),V(27,SX,1,6,"app-paginator",13),x()(),V(28,aQ,50,46,"div",14),V(29,dQ,6,3,"div",14),V(30,uQ,1,6,"app-paginator",13)),2&t&&(M("ngClass",Be(29,hQ,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),c(2),M("ngIf",e.showShortList_),c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),M("inline",!0),c(2),M("ngIf",e.allTransports&&e.allTransports.length>0),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("overlapTrigger",!1),c(3),ce(" ",B(14,19,"selection.select-all")," "),c(3),ce(" ",B(17,21,"selection.unselect-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(20,23,"transports.make-selected-persistent")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(23,25,"transports.make-selected-non-persistent")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(26,27,"selection.delete-all")," "),c(2),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("ngIf",!e.dataSource||0===e.dataSource.length),c(1),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[Rn,bi,It,$r,rl,yn,vi,vu,_a,yu,ma,hl,Fs,Ar,xt,rr],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.small-column[_ngcontent-%COMP%]{width:1px;text-align:center}.persistent-icon[_ngcontent-%COMP%]{font-size:14px!important;color:#d48b05}.offline[_ngcontent-%COMP%]{opacity:.35}"]});class _c{constructor(t,e,i){this.dialogRef=e,this.storageService=i,this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Intermediary forward"]]),this.routeRule=t}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.largeModalWidth,t.open(_c,i)}getRuleTypeName(t){return this.ruleTypes.has(t)?this.ruleTypes.get(t):t.toString()}closePopup(){this.dialogRef.close()}getLabel(t){const e=this.storageService.getLabelInfo(t);return e?" ("+e.label+")":""}}_c.\u0275fac=function(t){return new(t||_c)(F(Ti),F(Nn),F(ni))},_c.\u0275cmp=qe({type:_c,selectors:[["app-route-details"]],decls:19,vars:17,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[4,"ngIf"],[1,"title"],["class","title",4,"ngIf"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div")(3,"div",1)(4,"mat-icon",2),E(5,"list"),x(),E(6),R(7,"translate"),x(),D(8,"div",3)(9,"span"),E(10),R(11,"translate"),x(),E(12),x(),D(13,"div",3)(14,"span"),E(15),R(16,"translate"),x(),E(17),x(),V(18,bQ,26,21,"div",4),x()()),2&t&&(M("headline",B(1,9,"routes.details.title"))("dialog",e.dialogRef),c(4),M("inline",!0),c(2),ce("",B(7,11,"routes.details.basic.title")," "),c(4),oe(B(11,13,"routes.details.basic.key")),c(2),ce(" ",e.routeRule.key," "),c(3),oe(B(16,15,"routes.details.basic.rule")),c(2),ce(" ",e.routeRule.rule," "),c(1),M("ngIf",e.routeRule.ruleSummary))},dependencies:[It,yn,En,xt]});class gc{constructor(t){this.apiService=t}get(t,e){return this.apiService.get(`visors/${t}/routes/${e}`)}delete(t,e){return this.apiService.delete(`visors/${t}/routes/${e}`)}setMinHops(t,e){return this.apiService.post(`visors/${t}/min-hops`,{min_hops:e})}}function vQ(n,t){1&n&&(D(0,"span",14),E(1),R(2,"translate"),D(3,"mat-icon",15),R(4,"translate"),E(5,"help"),x()()),2&n&&(c(1),ce(" ",B(2,3,"routes.title")," "),c(2),M("inline",!0)("matTooltip",B(4,5,"routes.info")))}function yQ(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function MQ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function wQ(n,t){if(1&n&&(D(0,"div",19)(1,"span"),E(2),R(3,"translate"),x(),V(4,yQ,3,3,"ng-container",20),V(5,MQ,2,1,"ng-container",20),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function xQ(n,t){if(1&n){const e=et();D(0,"div",16),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,wQ,6,5,"div",17),D(2,"div",18),E(3),R(4,"translate"),x()()}if(2&n){const e=z();c(1),M("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),oe(B(4,2,"filters.press-to-remove"))}}function CQ(n,t){if(1&n){const e=et();D(0,"mat-icon",21),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),E(2,"filter_list"),x()}2&n&&M("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function kQ(n,t){1&n&&(D(0,"mat-icon",22),E(1,"more_horiz"),x()),2&n&&(z(),M("matMenuTriggerFor",ci(9)))}gc.\u0275fac=function(t){return new(t||gc)(we(wo))},gc.\u0275prov=Ye({token:gc,factory:gc.\u0275fac,providedIn:"root"});const oM=function(n){return["/nodes",n,"routes"]};function SQ(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Be(4,oM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function DQ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function TQ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function LQ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function EQ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function IQ(n,t){if(1&n){const e=et();Ue(0),D(1,"td")(2,"app-labeled-element-text",41),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),D(3,"td")(4,"app-labeled-element-text",41),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),We()}if(2&n){const e=z().$implicit,i=z(2);c(2),Dn("id",e.src),M("short",!0)("elementType",i.labeledElementTypes.Node),c(2),Dn("id",e.dst),M("short",!0)("elementType",i.labeledElementTypes.Node)}}function PQ(n,t){if(1&n){const e=et();Ue(0),D(1,"td"),E(2,"---"),x(),D(3,"td")(4,"app-labeled-element-text",42),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),We()}if(2&n){const e=z().$implicit,i=z(2);c(4),Dn("id",e.dst),M("short",!0)("elementType",i.labeledElementTypes.Transport)}}function OQ(n,t){1&n&&(Ue(0),D(1,"td"),E(2,"---"),x(),D(3,"td"),E(4,"---"),x(),We())}function AQ(n,t){if(1&n){const e=et();D(0,"tr")(1,"td",38)(2,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(3,"td"),E(4),x(),D(5,"td"),E(6),x(),V(7,IQ,5,6,"ng-container",20),V(8,PQ,5,3,"ng-container",20),V(9,OQ,5,0,"ng-container",20),D(10,"td",29)(11,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).details(s))}),R(12,"translate"),D(13,"mat-icon",36),E(14,"visibility"),x()(),D(15,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).delete(s.key))}),R(16,"translate"),D(17,"mat-icon",36),E(18,"close"),x()()()()}if(2&n){const e=t.$implicit,i=z(2);c(2),M("checked",i.selections.get(e.key)),c(2),ce(" ",e.key," "),c(2),ce(" ",i.getTypeName(e.type)," "),c(1),M("ngIf",e.appFields||e.forwardFields),c(1),M("ngIf",!e.appFields&&!e.forwardFields&&e.intermediaryForwardFields),c(1),M("ngIf",!e.appFields&&!e.forwardFields&&!e.intermediaryForwardFields),c(2),M("matTooltip",B(12,10,"routes.details.title")),c(2),M("inline",!0),c(2),M("matTooltip",B(16,12,"routes.delete")),c(2),M("inline",!0)}}function FQ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.label")))}function RQ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.inverted-order")))}function NQ(n,t){if(1&n){const e=et();Ue(0),D(1,"div",44)(2,"span",1),E(3),R(4,"translate"),x(),E(5,": "),D(6,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),D(7,"div",44)(8,"span",1),E(9),R(10,"translate"),x(),E(11,": "),D(12,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),We()}if(2&n){const e=z().$implicit,i=z(2);c(3),oe(B(4,6,"routes.source")),c(3),Dn("id",e.src),M("elementType",i.labeledElementTypes.Node),c(3),oe(B(10,8,"routes.destination")),c(3),Dn("id",e.dst),M("elementType",i.labeledElementTypes.Node)}}function YQ(n,t){if(1&n){const e=et();Ue(0),D(1,"div",44)(2,"span",1),E(3),R(4,"translate"),x(),E(5,": --- "),x(),D(6,"div",44)(7,"span",1),E(8),R(9,"translate"),x(),E(10,": "),D(11,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),We()}if(2&n){const e=z().$implicit,i=z(2);c(3),oe(B(4,4,"routes.source")),c(5),oe(B(9,6,"routes.destination")),c(3),Dn("id",e.dst),M("elementType",i.labeledElementTypes.Transport)}}function BQ(n,t){1&n&&(Ue(0),D(1,"div",44)(2,"span",1),E(3),R(4,"translate"),x(),E(5,": --- "),x(),D(6,"div",44)(7,"span",1),E(8),R(9,"translate"),x(),E(10,": --- "),x(),We()),2&n&&(c(3),oe(B(4,2,"routes.source")),c(5),oe(B(9,4,"routes.destination")))}function HQ(n,t){if(1&n){const e=et();D(0,"tr")(1,"td")(2,"div",33)(3,"div",43)(4,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(5,"div",34)(6,"div",44)(7,"span",1),E(8),R(9,"translate"),x(),E(10),x(),D(11,"div",44)(12,"span",1),E(13),R(14,"translate"),x(),E(15),x(),V(16,NQ,13,10,"ng-container",20),V(17,YQ,12,8,"ng-container",20),V(18,BQ,11,6,"ng-container",20),x(),xe(19,"div",45),D(20,"div",35)(21,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(22,"translate"),D(23,"mat-icon"),E(24),x()()()()()()}if(2&n){const e=t.$implicit,i=z(2);c(4),M("checked",i.selections.get(e.key)),c(4),oe(B(9,10,"routes.key")),c(2),ce(": ",e.key," "),c(3),oe(B(14,12,"routes.type")),c(2),ce(": ",i.getTypeName(e.type)," "),c(1),M("ngIf",e.appFields||e.forwardFields),c(1),M("ngIf",!e.appFields&&!e.forwardFields&&e.intermediaryForwardFields),c(1),M("ngIf",!e.appFields&&!e.forwardFields&&!e.intermediaryForwardFields),c(3),M("matTooltip",B(22,14,"common.options")),c(3),oe("add")}}function VQ(n,t){if(1&n&&xe(0,"app-view-all-link",48),2&n){const e=z(2);M("numberOfElements",e.filteredRoutes.length)("linkParts",Be(3,oM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const jQ=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},zQ=function(n){return{"d-lg-none d-xl-table":n}},UQ=function(n){return{"d-lg-table d-xl-none":n}};function WQ(n,t){if(1&n){const e=et();D(0,"div",24)(1,"div",25)(2,"table",26)(3,"tr"),xe(4,"th"),D(5,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.keySortData))}),E(6),R(7,"translate"),V(8,DQ,2,2,"mat-icon",28),x(),D(9,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),E(10),R(11,"translate"),V(12,TQ,2,2,"mat-icon",28),x(),D(13,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.sourceSortData))}),E(14),R(15,"translate"),V(16,LQ,2,2,"mat-icon",28),x(),D(17,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.destinationSortData))}),E(18),R(19,"translate"),V(20,EQ,2,2,"mat-icon",28),x(),xe(21,"th",29),x(),V(22,AQ,19,14,"tr",30),x(),D(23,"table",31)(24,"tr",32),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(25,"td")(26,"div",33)(27,"div",34)(28,"div",1),E(29),R(30,"translate"),x(),D(31,"div"),E(32),R(33,"translate"),V(34,FQ,3,3,"ng-container",20),V(35,RQ,3,3,"ng-container",20),x()(),D(36,"div",35)(37,"mat-icon",36),E(38,"keyboard_arrow_down"),x()()()()(),V(39,HQ,25,16,"tr",30),x(),V(40,VQ,1,5,"app-view-all-link",37),x()()}if(2&n){const e=z();c(1),M("ngClass",cn(31,jQ,e.showShortList_,!e.showShortList_)),c(1),M("ngClass",Be(34,zQ,e.showShortList_)),c(4),ce(" ",B(7,19,"routes.key")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.keySortData),c(2),ce(" ",B(11,21,"routes.type")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),ce(" ",B(15,23,"routes.source")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.sourceSortData),c(2),ce(" ",B(19,25,"routes.destination")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.destinationSortData),c(2),M("ngForOf",e.dataSource),c(1),M("ngClass",Be(36,UQ,e.showShortList_)),c(6),oe(B(30,27,"tables.sorting-title")),c(3),ce("",B(33,29,e.dataSorter.currentSortingColumn.label)," "),c(2),M("ngIf",e.dataSorter.currentlySortingByLabel),c(1),M("ngIf",e.dataSorter.sortingInReverseOrder),c(2),M("inline",!0),c(2),M("ngForOf",e.dataSource),c(1),M("ngIf",e.showShortList_&&e.numberOfPages>1)}}function $Q(n,t){1&n&&(D(0,"span",52),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"routes.empty")))}function GQ(n,t){1&n&&(D(0,"span",52),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"routes.empty-with-filter")))}function qQ(n,t){if(1&n&&(D(0,"div",24)(1,"div",49)(2,"mat-icon",50),E(3,"warning"),x(),V(4,$Q,3,3,"span",51),V(5,GQ,3,3,"span",51),x()()),2&n){const e=z();c(2),M("inline",!0),c(2),M("ngIf",0===e.allRoutes.length),c(1),M("ngIf",0!==e.allRoutes.length)}}function KQ(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Be(4,oM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const ZQ=function(n){return{"paginator-icons-fixer":n}};class ku{constructor(t,e,i,o,s,a,l){this.routeService=t,this.dialog=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listId="rl",this.keySortData=new Yn(["key"],"routes.key",Jt.Number),this.typeSortData=new Yn(["type"],"routes.type",Jt.Number),this.sourceSortData=new Yn(["src"],"routes.source",Jt.Text,["src_label"]),this.destinationSortData=new Yn(["dst"],"routes.destination",Jt.Text,["dst_label"]),this.labeledElementTypes=Mr,this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"routes.filter-dialog.key",keyNameInElementsArray:"key",type:Xn.TextInput,maxlength:8},{filterName:"routes.filter-dialog.source",keyNameInElementsArray:"src",secondaryKeyNameInElementsArray:"src_label",type:Xn.TextInput,maxlength:66},{filterName:"routes.filter-dialog.destination",keyNameInElementsArray:"dst",secondaryKeyNameInElementsArray:"dst_label",type:Xn.TextInput,maxlength:66}],this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Int. forward"]]),this.operationSubscriptionsGroup=[],this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,[this.keySortData,this.typeSortData,this.sourceSortData,this.destinationSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()});const w={filterName:"routes.filter-dialog.type",keyNameInElementsArray:"type",type:Xn.Select,printableLabelsForValues:[{value:"",label:"routes.filter-dialog.any-type-option"}]};this.ruleTypes.forEach((P,Y)=>{w.printableLabelsForValues.push({value:Y+"",label:P})}),this.filterProperties=[w].concat(this.filterProperties),this.dataFilterer=new gu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(P=>{this.filteredRoutes=P,this.dataSorter.setData(this.filteredRoutes)}),this.navigationsSubscription=this.route.paramMap.subscribe(P=>{if(P.has("page")){let Y=Number.parseInt(P.get("page"),10);(isNaN(Y)||Y<1)&&(Y=1),this.currentPageInUrl=Y,this.recalculateElementsToShow()}})}set showShortList(t){this.showShortList_=t,this.dataSorter.setData(this.filteredRoutes)}set routes(t){this.allRoutes=t,this.allRoutes.forEach(e=>{if(e.type=e.ruleSummary.ruleType||0===e.ruleSummary.ruleType?e.ruleSummary.ruleType:"",e.appFields||e.forwardFields){const i=e.appFields?e.appFields.routeDescriptor:e.forwardFields.routeDescriptor;e.src=i.srcPk,e.src_label=Ar.getCompleteLabel(this.storageService,this.translateService,e.src),e.dst=i.dstPk,e.dst_label=Ar.getCompleteLabel(this.storageService,this.translateService,e.dst)}else e.intermediaryForwardFields?(e.src="",e.src_label="",e.dst=e.intermediaryForwardFields.nextTid,e.dst_label=Ar.getCompleteLabel(this.storageService,this.translateService,e.dst)):(e.src="",e.src_label="",e.dst="",e.dst_label="")}),this.dataFilterer.setData(this.allRoutes)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}refreshData(){Je.refreshCurrentDisplayedData()}getTypeName(t){return this.ruleTypes.has(t)?this.ruleTypes.get(t):"Unknown"}changeSelection(t){this.selections.get(t.key)?this.selections.set(t.key,!1):this.selections.set(t.key,!0)}hasSelectedElements(){if(!this.selections)return!1;let t=!1;return this.selections.forEach(e=>{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}deleteSelected(){const t=Wt.createConfirmationDialog(this.dialog,"routes.delete-selected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing();const e=[];this.selections.forEach((i,o)=>{i&&e.push(o)}),this.deleteRecursively(e,t)})}showOptionsDialog(t){Hi.openDialog(this.dialog,[{icon:"visibility",label:"routes.details.title"},{icon:"close",label:"routes.delete"}],"common.options").afterClosed().subscribe(i=>{1===i?this.details(t):2===i&&this.delete(t.key)})}details(t){_c.openDialog(this.dialog,t)}delete(t){const e=Wt.createConfirmationDialog(this.dialog,"routes.delete-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(t).subscribe(()=>{e.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")},i=>{i=Kt(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)}))})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredRoutes){const t=this.showShortList_?Rt.maxShortListElements:Rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredRoutes.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.routesToShow=this.filteredRoutes.slice(e,e+t);const o=new Map;this.routesToShow.forEach(a=>{o.set(a.key,!0),this.selections.has(a.key)||this.selections.set(a.key,!1)});const s=[];this.selections.forEach((a,l)=>{o.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.routesToShow=null,this.selections=new Map;this.dataSource=this.routesToShow}startDeleting(t){return this.routeService.delete(Je.getCurrentNodeKey(),t.toString())}deleteRecursively(t,e){this.operationSubscriptionsGroup.push(this.startDeleting(t[t.length-1]).subscribe(()=>{t.pop(),0===t.length?(e.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")):this.deleteRecursively(t,e)},i=>{Je.refreshCurrentDisplayedData(),i=Kt(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)}))}}ku.\u0275fac=function(t){return new(t||ku)(F(gc),F(Ln),F(yr),F(Qt),F(on),F(oo),F(ni))},ku.\u0275cmp=qe({type:ku,selectors:[["app-route-list"]],inputs:{nodePK:"nodePK",showShortList:"showShortList",routes:"routes"},decls:23,vars:22,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline",4,"ngIf"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],["shortTextLength","7",3,"short","id","elementType","labelEdited"],["shortTextLength","5",3,"short","id","elementType","labelEdited"],[1,"check-part"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[3,"id","elementType","labelEdited"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),V(2,vQ,6,7,"span",2),V(3,xQ,5,4,"div",3),x(),D(4,"div",4)(5,"div",5),V(6,CQ,3,4,"mat-icon",6),V(7,kQ,2,1,"mat-icon",7),D(8,"mat-menu",8,9)(10,"div",10),ye("click",function(){return e.changeAllSelections(!0)}),E(11),R(12,"translate"),x(),D(13,"div",10),ye("click",function(){return e.changeAllSelections(!1)}),E(14),R(15,"translate"),x(),D(16,"div",11),ye("click",function(){return e.deleteSelected()}),E(17),R(18,"translate"),x()()(),V(19,SQ,1,6,"app-paginator",12),x()(),V(20,WQ,41,38,"div",13),V(21,qQ,6,3,"div",13),V(22,KQ,1,6,"app-paginator",12)),2&t&&(M("ngClass",Be(20,ZQ,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),c(2),M("ngIf",e.showShortList_),c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),M("ngIf",e.allRoutes&&e.allRoutes.length>0),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("overlapTrigger",!1),c(3),ce(" ",B(12,14,"selection.select-all")," "),c(3),ce(" ",B(15,16,"selection.unselect-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(18,18,"selection.delete-all")," "),c(2),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("ngIf",!e.dataSource||0===e.dataSource.length),c(1),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[Rn,bi,It,$r,rl,yn,vi,vu,_a,yu,ma,hl,Fs,Ar,xt],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]});class sp{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.node=t,this.routes=t.routes})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function XQ(n,t){if(1&n&&(D(0,"mat-option",6),E(1),R(2,"translate"),x()),2&n){const e=t.$implicit;M("value",e.days),c(1),oe(B(2,2,e.text))}}sp.\u0275fac=function(t){return new(t||sp)},sp.\u0275cmp=qe({type:sp,selectors:[["app-routing"]],decls:2,vars:5,consts:[[3,"node","showShortList"],[3,"routes","showShortList","nodePK"]],template:function(t,e){1&t&&xe(0,"app-transport-list",0)(1,"app-route-list",1),2&t&&(M("node",e.node)("showShortList",!0),c(1),M("routes",e.routes)("showShortList",!0)("nodePK",e.nodePK))},dependencies:[Cu,ku]});class bc{constructor(t,e,i){this.data=t,this.dialogRef=e,this.formBuilder=i}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(bc,i)}ngOnInit(){this.filters=[{text:"apps.log.filter.7-days",days:7},{text:"apps.log.filter.1-month",days:30},{text:"apps.log.filter.3-months",days:90},{text:"apps.log.filter.6-months",days:180},{text:"apps.log.filter.1-year",days:365},{text:"apps.log.filter.all",days:-1}],this.form=this.formBuilder.group({filter:[this.data.days]}),this.formSubscription=this.form.get("filter").valueChanges.subscribe(t=>{this.dialogRef.close(this.filters.find(e=>e.days===t))})}ngOnDestroy(){this.formSubscription.unsubscribe()}}bc.\u0275fac=function(t){return new(t||bc)(F(Ti),F(Nn),F(Cr))},bc.\u0275cmp=qe({type:bc,selectors:[["app-log-filter"]],decls:10,vars:9,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","filter"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),D(8,"mat-select",4),V(9,XQ,3,4,"mat-option",5),x()()()()()),2&t&&(M("headline",B(1,5,"apps.log.filter.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,7,"apps.log.filter.filter")),c(3),M("ngForOf",e.filters))},dependencies:[bi,Bi,Ni,Yi,ii,Li,nr,ep,ru,En,xt],styles:["mat-form-field[_ngcontent-%COMP%]{margin-bottom:-24px}"]});const QQ=["content"],JQ=function(n){return{totalLogs:n}};function eJ(n,t){if(1&n&&(D(0,"app-button",10)(1,"div",11),E(2),R(3,"translate"),x()()),2&n){const e=z();c(2),ce(" ",Ct(3,1,"apps.log.view-all",Be(4,JQ,e.totalLogs))," ")}}function tJ(n,t){if(1&n&&(D(0,"div",12)(1,"span",3),E(2),x(),E(3),x()),2&n){const e=t.$implicit;c(2),ce(" ",e.time," "),c(1),ce(" ",e.msg," ")}}function nJ(n,t){1&n&&(D(0,"div",13),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"apps.log.empty")," "))}function iJ(n,t){1&n&&xe(0,"app-loading-indicator",14),2&n&&M("showWhite",!1)}class vc{constructor(t,e,i,o,s,a){this.data=t,this.dialogRef=e,this.appsService=i,this.dialog=o,this.snackbarService=s,this.apiService=a,this.logMessages=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.loading=!1,this.currentFilter={text:"apps.log.filter.7-days",days:7},this.shouldShowError=!0}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.largeModalWidth,t.open(vc,i)}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription()}filter(){bc.openDialog(this.dialog,this.currentFilter).afterClosed().subscribe(t=>{t&&(this.currentFilter=t,this.logMessages=[],this.loadData(0))})}getLogsUrl(){return"/"+this.apiService.apiPrefix+this.appsService.getLogMessagesUrl(Je.getCurrentNodeKey(),this.data.name)}loadData(t){this.removeSubscription(),this.loading=!0,this.subscription=Ge(1).pipe(Di(t),Ne(()=>this.appsService.getLogMessages(Je.getCurrentNodeKey(),this.data.name,this.currentFilter.days))).subscribe(e=>this.onLogsReceived(e),e=>this.onLogsError(e))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}onLogsReceived(t=[]){this.loading=!1,this.shouldShowError=!0,this.snackbarService.closeCurrentIfTemporaryError();let e=0;this.hasMoreLogMessages=!1,this.totalLogs=t.length,t.forEach(i=>{if(e<5e3){const o=i.startsWith("[")?0:-1,s=-1!==o?i.indexOf("]"):-1;this.logMessages.push(-1!==o&&-1!==s?{time:i.substr(o,s+1),msg:i.substr(s+1)}:{time:"",msg:i})}else this.hasMoreLogMessages=!0;e+=1}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}onLogsError(t){t=Kt(t),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,t),this.shouldShowError=!1),this.loadData(Rt.connectionRetryDelay)}}vc.\u0275fac=function(t){return new(t||vc)(F(Ti),F(Nn),F(xo),F(Ln),F(on),F(wo))},vc.\u0275cmp=qe({type:vc,selectors:[["app-log"]],viewQuery:function(t,e){if(1&t&&ft(QQ,5),2&t){let i;nt(i=it())&&(e.content=i.first)}},decls:18,vars:17,consts:[[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"filter-link-container"],[1,"filter-link","subtle-transparent-button",3,"click"],[1,"transparent"],["content",""],["target","_blank",3,"href"],["class","full-logs-button","color","primary",4,"ngIf"],["class","app-log-message",4,"ngFor","ngForOf"],["class","app-log-empty mt-3",4,"ngIf"],[3,"showWhite",4,"ngIf"],["color","primary",1,"full-logs-button"],[1,"text-container"],[1,"app-log-message"],[1,"app-log-empty","mt-3"],[3,"showWhite"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1)(3,"div",2),ye("click",function(){return e.filter()}),D(4,"span",3),E(5),R(6,"translate"),x(),E(7,"\xa0 "),D(8,"span"),E(9),R(10,"translate"),x()()(),D(11,"mat-dialog-content",null,4)(13,"a",5),V(14,eJ,4,6,"app-button",6),x(),V(15,tJ,4,2,"div",7),V(16,nJ,3,3,"div",8),V(17,iJ,1,1,"app-loading-indicator",9),x()()),2&t&&(M("headline",B(1,11,"apps.log.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",e.dialogRef),c(5),oe(B(6,13,"apps.log.filter-button")),c(4),oe(B(10,15,e.currentFilter.text)),c(4),M("href",e.getLogsUrl(),Oo),c(1),M("ngIf",e.hasMoreLogMessages),c(1),M("ngForOf",e.logMessages),c(1),M("ngIf",!(e.loading||e.logMessages&&0!==e.logMessages.length)),c(1),M("ngIf",e.loading))},dependencies:[bi,It,C1,ri,En,Gr,xt],styles:[".mat-mdc-dialog-content[_ngcontent-%COMP%]{font-size:.875rem}.app-log-message[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.app-log-message[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.app-log-message[_ngcontent-%COMP%]:first-of-type{margin-top:0}.app-log-message[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.filter-link-container[_ngcontent-%COMP%]{text-align:center;margin:15px 0}.filter-link-container[_ngcontent-%COMP%] .filter-link[_ngcontent-%COMP%]{display:inline-block;background:#F8F9F9;padding:5px 10px;border-radius:1000px;font-size:.875rem;text-align:center;color:#215f9e;cursor:pointer}.filter-link-container[_ngcontent-%COMP%] .filter-link[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#215f9e80}.full-logs-button[_ngcontent-%COMP%] button{width:100%!important;display:block;text-align:center;margin-bottom:15px}.full-logs-button[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%}"]});const rJ=["button"],oJ=["firstInput"],Yg=function(n){return{"element-disabled":n}};function sJ(n,t){if(1&n&&(D(0,"mat-form-field",2)(1,"div",3)(2,"label",4),E(3),R(4,"translate"),x(),xe(5,"input",12),x()()),2&n){const e=z();M("ngClass",Be(4,Yg,e.disableDismiss)),c(3),oe(B(4,2,"apps.vpn-socks-server-settings.netifc"))}}function aJ(n,t){if(1&n){const e=et();D(0,"div",13)(1,"mat-checkbox",14),ye("change",function(o){return Pe(e),Oe(z().setSecureMode(o))}),E(2),R(3,"translate"),D(4,"mat-icon",15),R(5,"translate"),E(6,"help"),x()()()}if(2&n){const e=z();c(1),M("checked",e.secureMode)("ngClass",Be(9,Yg,e.disableDismiss)),c(1),ce(" ",B(3,5,"apps.vpn-socks-server-settings.secure-mode-check")," "),c(2),M("inline",!0)("matTooltip",B(5,7,"apps.vpn-socks-server-settings.secure-mode-info"))}}class yc{constructor(t,e,i,o,s,a){this.data=t,this.appsService=e,this.formBuilder=i,this.dialogRef=o,this.snackbarService=s,this.dialog=a,this.configuringVpn=!1,this.secureMode=!1,-1!==t.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.mediumModalWidth,t.open(yc,i)}ngOnInit(){if(this.form=this.formBuilder.group({password:[""],passwordConfirmation:["",this.validatePasswords.bind(this)],netifc:[""]}),this.formSubscription=this.form.get("password").valueChanges.subscribe(()=>{this.form.get("passwordConfirmation").updateValueAndValidity()}),this.data.args&&this.data.args.length>0)for(let t=0;tthis.firstInput.nativeElement.focus())}ngOnDestroy(){this.formSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setSecureMode(t){this.button.disabled||(this.secureMode=!!t.checked)}saveChanges(){if(!this.form.valid||this.button.disabled)return;const t=this.form.get("password").value?"apps.vpn-socks-server-settings.change-passowrd-confirmation":"apps.vpn-socks-server-settings.remove-passowrd-confirmation",e=Wt.createConfirmationDialog(this.dialog,t);e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.continueSavingChanges()})}continueSavingChanges(){this.button.showLoading();const t={passcode:this.form.get("password").value};this.configuringVpn&&(t.secure=this.secureMode,t.netifc=this.form.get("netifc").value),this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,t).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-server-settings.changes-made"),this.dialogRef.close()}onError(t){this.button.showError(),t=Kt(t),this.snackbarService.showError(t)}validatePasswords(){return this.form&&this.form.get("password").value!==this.form.get("passwordConfirmation").value?{invalid:!0}:null}}yc.\u0275fac=function(t){return new(t||yc)(F(Ti),F(xo),F(Cr),F(Nn),F(on),F(Ln))},yc.\u0275cmp=qe({type:yc,selectors:[["app-skysocks-settings"]],viewQuery:function(t,e){if(1&t&&(ft(rJ,5),ft(oJ,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:27,vars:27,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],["firstInput",""],["id","passwordConfirmation","type","password","formControlName","passwordConfirmation","maxlength","100","matInput",""],[3,"ngClass",4,"ngIf"],["class","main-theme settings-option",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["id","netifc","type","text","formControlName","netifc","matInput",""],[1,"main-theme","settings-option"],["color","primary",3,"checked","ngClass","change"],[1,"help-icon",3,"inline","matTooltip"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field",2)(4,"div",3)(5,"label",4),E(6),R(7,"translate"),x(),xe(8,"input",5,6),x()(),D(10,"mat-form-field",2)(11,"div",3)(12,"label",4),E(13),R(14,"translate"),x(),xe(15,"input",7,6),x(),D(17,"mat-error")(18,"span"),E(19),R(20,"translate"),x()()(),V(21,sJ,6,6,"mat-form-field",8),V(22,aJ,7,11,"div",9),x(),D(23,"app-button",10,11),ye("action",function(){return e.saveChanges()}),E(25),R(26,"translate"),x()()),2&t&&(M("headline",B(1,13,"apps.vpn-socks-server-settings."+(e.configuringVpn?"vpn-title":"socks-title")))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(2),M("formGroup",e.form),c(1),M("ngClass",Be(23,Yg,e.disableDismiss)),c(3),oe(B(7,15,"apps.vpn-socks-server-settings.new-password")),c(4),M("ngClass",Be(25,Yg,e.disableDismiss)),c(3),oe(B(14,17,"apps.vpn-socks-server-settings.repeat-password")),c(6),oe(B(20,19,"apps.vpn-socks-server-settings.passwords-not-match")),c(2),M("ngIf",e.configuringVpn),c(1),M("ngIf",e.configuringVpn),c(1),M("disabled",!e.form.valid),c(2),ce(" ",B(26,21,"apps.vpn-socks-server-settings.save")," "))},dependencies:[Rn,It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,yn,vi,ma,ri,En,xt],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]});const lJ=["firstInput"];class Mc{constructor(t,e,i){this.dialogRef=t,this.data=e,this.formBuilder=i}static openDialog(t,e){const i=new Tn;return i.data=e||"",i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(Mc,i)}ngOnInit(){this.form=this.formBuilder.group({note:[this.data]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const t=this.form.get("note").value.trim();this.dialogRef.close("-"+t)}}Mc.\u0275fac=function(t){return new(t||Mc)(F(Nn),F(Ti),F(Cr))},Mc.\u0275cmp=qe({type:Mc,selectors:[["app-edit-skysocks-client-note"]],viewQuery:function(t,e){if(1&t&&ft(lJ,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","note","maxlength","100","matInput",""],["firstInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x()()(),D(10,"app-button",6),ye("action",function(){return e.finish()}),E(11),R(12,"translate"),x()()),2&t&&(M("headline",B(1,5,"apps.vpn-socks-client-settings.change-note-dialog.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,7,"apps.vpn-socks-client-settings.change-note-dialog.note")),c(5),oe(B(12,9,"common.save")))},dependencies:[Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ri,En,xt]});const ba={AF:"Afghanistan",AX:"Aland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (North)",KR:"Korea (South)",XK:"Kosovo",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Laos",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libyan Arab Jamahiriya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",AN:"Netherlands Antilles",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestinian Territory, Occupied",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",ME:"Montenegro",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown"};function cJ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit,i=z(2);c(1),oe(i.completeCountriesList[e.toUpperCase()])}}function dJ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.toUpperCase())}}function uJ(n,t){if(1&n&&(D(0,"mat-option",10)(1,"div",12),xe(2,"div"),x(),V(3,cJ,2,1,"ng-container",2),V(4,dJ,2,1,"ng-container",2),x()),2&n){const e=t.$implicit,i=z(2);M("value",e.toUpperCase()),c(2),di("background-image: url('assets/img/flags/"+e.toLocaleLowerCase()+".png');"),c(1),M("ngIf",i.completeCountriesList[e.toUpperCase()]),c(1),M("ngIf",!i.completeCountriesList[e.toUpperCase()])}}function hJ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"apps.vpn-socks-client-settings.filter-dialog.any-country")," "))}function fJ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z(3);c(1),oe(e.completeCountriesList[e.form.get("country").value])}}function pJ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z(3);c(1),oe(e.form.get("country").value)}}function mJ(n,t){if(1&n&&(Ue(0),D(1,"div",12),xe(2,"div"),x(),V(3,fJ,2,1,"ng-container",2),V(4,pJ,2,1,"ng-container",2),We()),2&n){const e=z(2);c(2),di("background-image: url('assets/img/flags/"+e.form.get("country").value.toLocaleLowerCase()+".png');"),c(1),M("ngIf",e.completeCountriesList[e.form.get("country").value]),c(1),M("ngIf",!e.completeCountriesList[e.form.get("country").value])}}function _J(n,t){if(1&n&&(D(0,"mat-form-field")(1,"div",3)(2,"label",4),E(3),R(4,"translate"),x(),D(5,"mat-select",9)(6,"mat-option",10),E(7),R(8,"translate"),x(),V(9,uJ,5,5,"mat-option",11),D(10,"mat-select-trigger"),V(11,hJ,3,3,"ng-container",2),V(12,mJ,5,4,"ng-container",2),x()()()()),2&n){const e=z();c(3),oe(B(4,6,"apps.vpn-socks-client-settings.filter-dialog.country")),c(3),M("value","-"),c(1),oe(B(8,8,"apps.vpn-socks-client-settings.filter-dialog.any-country")),c(2),M("ngForOf",e.data.availableCountries),c(2),M("ngIf","-"===e.form.get("country").value),c(1),M("ngIf","-"!==e.form.get("country").value)}}class $I{constructor(){this.country="",this.location="",this.key=""}}class wc{constructor(t,e,i){this.data=t,this.dialogRef=e,this.formBuilder=i,this.completeCountriesList=ba}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(wc,i)}ngOnInit(){this.form=this.formBuilder.group({country:[this.data.currentFilters.country?this.data.currentFilters.country:"-"],"location-text":[this.data.currentFilters.location],"key-text":[this.data.currentFilters.key]})}apply(){const t=new $I;let e=this.form.get("country").value.trim();"-"===e&&(e=""),t.country=e,t.location=this.form.get("location-text").value.trim(),t.key=this.form.get("key-text").value.trim(),this.dialogRef.close(t)}}wc.\u0275fac=function(t){return new(t||wc)(F(Ti),F(Nn),F(Cr))},wc.\u0275cmp=qe({type:wc,selectors:[["app-skysocks-client-filter"]],decls:20,vars:15,consts:[[3,"headline","dialog"],[3,"formGroup"],[4,"ngIf"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","location-text","maxlength","100","matInput",""],["formControlName","key-text","maxlength","66","matInput",""],["type","mat-raised-button","color","primary",1,"float-right",3,"action"],["button",""],["formControlName","country","id","country"],[3,"value"],[3,"value",4,"ngFor","ngForOf"],[1,"flag-container"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1),V(3,_J,13,10,"mat-form-field",2),D(4,"mat-form-field")(5,"div",3)(6,"label",4),E(7),R(8,"translate"),x(),xe(9,"input",5),x()(),D(10,"mat-form-field")(11,"div",3)(12,"label",4),E(13),R(14,"translate"),x(),xe(15,"input",6),x()()(),D(16,"app-button",7,8),ye("action",function(){return e.apply()}),E(18),R(19,"translate"),x()()),2&t&&(M("headline",B(1,7,"apps.vpn-socks-client-settings.filter-dialog.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(1),M("ngIf",e.data.availableCountries.length>0),c(4),oe(B(8,9,"apps.vpn-socks-client-settings.filter-dialog.location")),c(6),oe(B(14,11,"apps.vpn-socks-client-settings.filter-dialog.pub-key")),c(5),ce(" ",B(19,13,"apps.vpn-socks-client-settings.filter-dialog.apply")," "))},dependencies:[bi,It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ep,pG,ru,ri,En,xt]});const gJ=["firstInput"];class xc{constructor(t,e){this.dialogRef=t,this.formBuilder=e}static openDialog(t){const e=new Tn;return e.autoFocus=!1,e.width=Rt.smallModalWidth,t.open(xc,e)}ngOnInit(){this.form=this.formBuilder.group({password:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const t=this.form.get("password").value;this.dialogRef.close("-"+t)}}xc.\u0275fac=function(t){return new(t||xc)(F(Nn),F(Cr))},xc.\u0275cmp=qe({type:xc,selectors:[["app-skysocks-client-password"]],viewQuery:function(t,e){if(1&t&&ft(gJ,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:16,vars:14,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"info"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","id","password","formControlName","password","maxlength","100","matInput",""],["firstInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"div",2),E(4),R(5,"translate"),x(),D(6,"mat-form-field")(7,"div",3)(8,"label",4),E(9),R(10,"translate"),x(),xe(11,"input",5,6),x()()(),D(13,"app-button",7),ye("action",function(){return e.finish()}),E(14),R(15,"translate"),x()()),2&t&&(M("headline",B(1,6,"apps.vpn-socks-client-settings.password-dialog.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(2),oe(B(5,8,"apps.vpn-socks-client-settings.password-dialog.info")),c(5),oe(B(10,10,"apps.vpn-socks-client-settings.password-dialog.password")),c(5),ce(" ",B(15,12,"apps.vpn-socks-client-settings.password-dialog.continue-button")," "))},dependencies:[Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ri,En,xt],styles:[".info[_ngcontent-%COMP%]{font-size:.7rem;margin-bottom:15px}"]});class Su{constructor(t){this.http=t,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type="}getServices(t){const e=[];return this.http.get(this.discoveryServiceUrl+(t?"proxy":"vpn")).pipe(np(i=>i.pipe(Di(4e3))),Ce(i=>(i||(i=[]),i.forEach(o=>{const s=new L$,a=o.address.split(":");2===a.length&&(s.address=o.address,s.pk=a[0],s.port=a[1],s.location="",o.geo&&(o.geo.country&&(s.country=o.geo.country,s.location+=ba[o.geo.country.toUpperCase()]?ba[o.geo.country.toUpperCase()]:o.geo.country),o.geo.region&&o.geo.country&&(s.location+=", "),o.geo.region&&(s.region=o.geo.region,s.location+=s.region)),e.push(s))}),e)))}}function bJ(n,t){}Su.\u0275fac=function(t){return new(t||Su)(we(Gl))},Su.\u0275prov=Ye({token:Su,factory:Su.\u0275fac,providedIn:"root"});const vJ=function(n){return{animationDuration:n}},yJ=function(n,t){return{value:n,params:t}};function MJ(n,t){1&n&&vn(0)}const GI=["*"],wJ=["tabListContainer"],xJ=["tabList"],CJ=["tabListInner"],kJ=["nextPaginator"],SJ=["previousPaginator"],DJ=["tabBodyWrapper"],TJ=["tabHeader"];function LJ(n,t){}function EJ(n,t){1&n&&V(0,LJ,0,0,"ng-template",14),2&n&&M("cdkPortalOutlet",z().$implicit.templateLabel)}function IJ(n,t){1&n&&E(0),2&n&&oe(z().$implicit.textLabel)}function PJ(n,t){if(1&n){const e=et();D(0,"div",6,7),ye("click",function(){const o=Pe(e),s=o.$implicit,a=o.index,l=z(),d=ci(1);return Oe(l._handleClick(s,d,a))})("cdkFocusChange",function(o){const a=Pe(e).index;return Oe(z()._tabFocusChanged(o,a))}),xe(2,"span",8)(3,"div",9),D(4,"span",10)(5,"span",11),V(6,EJ,1,1,"ng-template",12),V(7,IJ,1,1,"ng-template",null,13,ws),x()()()}if(2&n){const e=t.$implicit,i=t.index,o=ci(1),s=ci(8),a=z();Gt("mdc-tab--active",a.selectedIndex===i),M("id",a._getTabLabelId(i))("ngClass",e.labelClass)("disabled",e.disabled)("fitInkBarToContent",a.fitInkBarToContent),Ut("tabIndex",a._getTabIndex(e,i))("aria-posinset",i+1)("aria-setsize",a._tabs.length)("aria-controls",a._getTabContentId(i))("aria-selected",a.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),c(3),M("matRippleTrigger",o)("matRippleDisabled",e.disabled||a.disableRipple),c(3),M("ngIf",e.templateLabel)("ngIfElse",s)}}function OJ(n,t){if(1&n){const e=et();D(0,"mat-tab-body",15),ye("_onCentered",function(){return Pe(e),Oe(z()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return Pe(e),Oe(z()._setTabBodyWrapperHeight(o))}),x()}if(2&n){const e=t.$implicit,i=t.index,o=z();Gt("mat-mdc-tab-body-active",o.selectedIndex===i),M("id",o._getTabContentId(i))("ngClass",e.bodyClass)("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Ut("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(i))}}const AJ={translateTab:oa("translateTab",[go("center, void, left-origin-center, right-origin-center",Zn({transform:"none"})),go("left",Zn({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),go("right",Zn({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Er("* => left, * => right, left => center, right => center",Wr("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Er("void => left-origin-center",[Zn({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Wr("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Er("void => right-origin-center",[Zn({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Wr("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let FJ=(()=>{class n extends nl{constructor(e,i,o,s){super(e,i,s),this._host=o,this._centeringSub=T.EMPTY,this._leavingSub=T.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(yo(this._host._isCenterPosition(this._host._position))).subscribe(e=>{e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(Ya),F(Qi),F(an(()=>qI)),F(Dt))},n.\u0275dir=Ke({type:n,selectors:[["","matTabBodyHost",""]],features:[dt]}),n})(),RJ=(()=>{class n{constructor(e,i,o){this._elementRef=e,this._dir=i,this._dirChangeSubscription=T.EMPTY,this._translateTabComplete=new X,this._onCentering=new ht,this._beforeCentering=new ht,this._afterLeavingCenter=new ht,this._onCentered=new ht(!0),this.animationDuration="500ms",this.preserveContent=!1,i&&(this._dirChangeSubscription=i.change.subscribe(s=>{this._computePositionAnimationState(s),o.markForCheck()})),this._translateTabComplete.pipe(d1((s,a)=>s.fromState===a.fromState&&s.toState===a.toState)).subscribe(s=>{this._isCenterPosition(s.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(s.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}set position(e){this._positionIndex=e,this._computePositionAnimationState()}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){const i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e}_computePositionAnimationState(e=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center"}_computePositionFromOrigin(e){const i=this._getLayoutDirection();return"ltr"==i&&e<=0||"rtl"==i&&e>0?"left-origin-center":"right-origin-center"}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Or,8),F(ui))},n.\u0275dir=Ke({type:n,inputs:{_content:["content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}}),n})(),qI=(()=>{class n extends RJ{constructor(e,i,o){super(e,i,o)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Or,8),F(ui))},n.\u0275cmp=qe({type:n,selectors:[["mat-tab-body"]],viewQuery:function(e,i){if(1&e&&ft(nl,5),2&e){let o;nt(o=it())&&(i._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],features:[dt],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-mdc-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(e,i){1&e&&(D(0,"div",0,1),ye("@translateTab.start",function(s){return i._onTranslateTabStarted(s)})("@translateTab.done",function(s){return i._translateTabComplete.next(s)}),V(2,bJ,0,0,"ng-template",2),x()),2&e&&M("@translateTab",cn(3,yJ,i._position,Be(1,vJ,i.animationDuration)))},dependencies:[FJ],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[AJ.translateTab]}}),n})();const NJ=new He("MatTabContent");let YJ=(()=>{class n{constructor(e){this.template=e}}return n.\u0275fac=function(e){return new(e||n)(F(cr))},n.\u0275dir=Ke({type:n,selectors:[["","matTabContent",""]],features:[Zt([{provide:NJ,useExisting:n}])]}),n})();const BJ=new He("MatTabLabel"),KI=new He("MAT_TAB");let HJ=(()=>{class n extends h7{constructor(e,i,o){super(e,i),this._closestTab=o}}return n.\u0275fac=function(e){return new(e||n)(F(cr),F(Qi),F(KI,8))},n.\u0275dir=Ke({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[Zt([{provide:BJ,useExisting:n}]),dt]}),n})();const sM="mdc-tab-indicator--active",ZI="mdc-tab-indicator--no-transition";class VJ{constructor(t){this._items=t}hide(){this._items.forEach(t=>t.deactivateInkBar())}alignToElement(t){const e=this._items.find(o=>o.elementRef.nativeElement===t),i=this._currentItem;if(i?.deactivateInkBar(),e){const o=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(o),this._currentItem=e}}}function jJ(n){return class extends n{constructor(...t){super(...t),this._fitToContent=!1}get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(t){const e=hn(t);this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(t){const e=this.elementRef.nativeElement;if(!t||!e.getBoundingClientRect||!this._inkBarContentElement)return void e.classList.add(sM);const i=e.getBoundingClientRect(),o=t.width/i.width,s=t.left-i.left;e.classList.add(ZI),this._inkBarContentElement.style.setProperty("transform",`translateX(${s}px) scaleX(${o})`),e.getBoundingClientRect(),e.classList.remove(ZI),e.classList.add(sM),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this.elementRef.nativeElement.classList.remove(sM)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const t=this.elementRef.nativeElement.ownerDocument||document;this._inkBarElement=t.createElement("span"),this._inkBarContentElement=t.createElement("span"),this._inkBarElement.className="mdc-tab-indicator",this._inkBarContentElement.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",this._inkBarElement.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this.elementRef.nativeElement.querySelector(".mdc-tab__content"):this.elementRef.nativeElement).appendChild(this._inkBarElement)}}}const UJ=iu(class{}),WJ=jJ((()=>{class n extends UJ{constructor(e){super(),this.elementRef=e}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}}return n.\u0275fac=function(e){return new(e||n)(F(bt))},n.\u0275dir=Ke({type:n,features:[dt]}),n})());let XI=(()=>{class n extends WJ{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(e,i){2&e&&(Ut("aria-disabled",!!i.disabled),Gt("mat-mdc-tab-disabled",i.disabled))},inputs:{disabled:"disabled",fitInkBarToContent:"fitInkBarToContent"},features:[dt]}),n})();const $J=iu(class{}),QI=new He("MAT_TAB_GROUP");let GJ=(()=>{class n extends $J{constructor(e,i){super(),this._viewContainerRef=e,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new X,this.position=null,this.origin=null,this.isActive=!1}get content(){return this._contentPortal}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ec(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}}return n.\u0275fac=function(e){return new(e||n)(F(Qi),F(QI,8))},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(cr,7),2&e){let o;nt(o=it())&&(i._implicitContent=o.first)}},inputs:{textLabel:["label","textLabel"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},features:[dt,qi]}),n})(),JI=(()=>{class n extends GJ{get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275cmp=qe({type:n,selectors:[["mat-tab"]],contentQueries:function(e,i,o){if(1&e&&(Ji(o,YJ,7,cr),Ji(o,HJ,5)),2&e){let s;nt(s=it())&&(i._explicitContent=s.first),nt(s=it())&&(i.templateLabel=s.first)}},inputs:{disabled:"disabled"},exportAs:["matTab"],features:[Zt([{provide:KI,useExisting:n}]),dt],ngContentSelectors:GI,decls:1,vars:0,template:function(e,i){1&e&&(gr(),V(0,MJ,1,0,"ng-template"))},encapsulation:2}),n})();const eP=el({passive:!0});let ZJ=(()=>{class n{constructor(e,i,o,s,a,l,d){this._elementRef=e,this._changeDetectorRef=i,this._viewportRuler=o,this._dir=s,this._ngZone=a,this._platform=l,this._animationMode=d,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new X,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new X,this._disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new ht,this.indexFocused=new ht,a.runOutsideAngular(()=>{Zd(e.nativeElement,"mouseleave").pipe(Cn(this._destroyed)).subscribe(()=>{this._stopInterval()})})}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=hn(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){e=Mo(e),this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}ngAfterViewInit(){Zd(this._previousPaginator.nativeElement,"touchstart",eP).pipe(Cn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),Zd(this._nextPaginator.nativeElement,"touchstart",eP).pipe(Cn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const e=this._dir?this._dir.change:Ge("ltr"),i=this._viewportRuler.change(150),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new aL(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap(),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe(ti(1)).subscribe(o),vt(e,i,this._items.changes,this._itemsResized()).pipe(Cn(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(s=>{this.indexFocused.emit(s),this._setTabFocus(s)})}_itemsResized(){return"function"!=typeof ResizeObserver?qa:this._items.changes.pipe(yo(this._items),br(e=>new de(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(s=>i.next(s));return e.forEach(s=>o.observe(s.elementRef.nativeElement)),()=>{o.disconnect()}}))),c1(1),Si(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!Ts(e))switch(e.keyCode){case 13:case 32:this.focusIndex!==this.selectedIndex&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e));break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){const e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){if(!this._items)return!0;const i=this._items?this._items.toArray()[e]:null;return!!i&&!i.disabled}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const e=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){return this._scrollTo(this._scrollDistance+("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;const i=this._items?this._items.toArray()[e]:null;if(!i)return;const o=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:a}=i.elementRef.nativeElement;let l,d;"ltr"==this._getLayoutDirection()?(l=s,d=l+a):(d=this._tabListInner.nativeElement.offsetWidth-s,l=d-a);const w=this.scrollDistance,P=this.scrollDistance+o;lP&&(this.scrollDistance+=d-P+60)}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const e=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),xf(650,100).pipe(Cn(vt(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:o,distance:s}=this._scrollHeader(e);(0===s||s>=o)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(Jl),F(Or,8),F(pt),F(fi),F(zi,8))},n.\u0275dir=Ke({type:n,inputs:{disablePagination:"disablePagination"}}),n})(),XJ=(()=>{class n extends ZJ{constructor(e,i,o,s,a,l,d){super(e,i,o,s,a,l,d),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=hn(e)}_itemSelected(e){e.preventDefault()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(Jl),F(Or,8),F(pt),F(fi),F(zi,8))},n.\u0275dir=Ke({type:n,inputs:{disableRipple:"disableRipple"},features:[dt]}),n})(),QJ=(()=>{class n extends XJ{constructor(e,i,o,s,a,l,d){super(e,i,o,s,a,l,d)}ngAfterContentInit(){this._inkBar=new VJ(this._items),super.ngAfterContentInit()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(Jl),F(Or,8),F(pt),F(fi),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-tab-header"]],contentQueries:function(e,i,o){if(1&e&&Ji(o,XI,4),2&e){let s;nt(s=it())&&(i._items=s)}},viewQuery:function(e,i){if(1&e&&(ft(wJ,7),ft(xJ,7),ft(CJ,7),ft(kJ,5),ft(SJ,5)),2&e){let o;nt(o=it())&&(i._tabListContainer=o.first),nt(o=it())&&(i._tabList=o.first),nt(o=it())&&(i._tabListInner=o.first),nt(o=it())&&(i._nextPaginator=o.first),nt(o=it())&&(i._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(e,i){2&e&&Gt("mat-mdc-tab-header-pagination-controls-enabled",i._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==i._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[dt],ngContentSelectors:GI,decls:13,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-mdc-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(e,i){1&e&&(gr(),D(0,"button",0,1),ye("click",function(){return i._handlePaginatorClick("before")})("mousedown",function(s){return i._handlePaginatorPress("before",s)})("touchend",function(){return i._stopInterval()}),xe(2,"div",2),x(),D(3,"div",3,4),ye("keydown",function(s){return i._handleKeydown(s)}),D(5,"div",5,6),ye("cdkObserveContent",function(){return i._onContentChanges()}),D(7,"div",7,8),vn(9),x()()(),D(10,"button",9,10),ye("mousedown",function(s){return i._handlePaginatorPress("after",s)})("click",function(){return i._handlePaginatorClick("after")})("touchend",function(){return i._stopInterval()}),xe(12,"div",2),x()),2&e&&(Gt("mat-mdc-tab-header-pagination-disabled",i._disableScrollBefore),M("matRippleDisabled",i._disableScrollBefore||i.disableRipple)("disabled",i._disableScrollBefore||null),c(3),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode),c(7),Gt("mat-mdc-tab-header-pagination-disabled",i._disableScrollAfter),M("matRippleDisabled",i._disableScrollAfter||i.disableRipple)("disabled",i._disableScrollAfter||null))},dependencies:[Ls,eL],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"],encapsulation:2}),n})();const nP=new He("MAT_TABS_CONFIG");let JJ=0;const eee=Af(Ff(class{constructor(n){this._elementRef=n}}),"primary");let tee=(()=>{class n extends eee{constructor(e,i,o,s){super(e),this._changeDetectorRef=i,this._animationMode=s,this._tabs=new Vl,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=T.EMPTY,this._tabLabelSubscription=T.EMPTY,this._dynamicHeight=!1,this._selectedIndex=null,this.headerPosition="above",this._disablePagination=!1,this._preserveContent=!1,this.selectedIndexChange=new ht,this.focusChange=new ht,this.animationDone=new ht,this.selectedTabChange=new ht(!0),this._groupId=JJ++,this.animationDuration=o&&o.animationDuration?o.animationDuration:"500ms",this.disablePagination=!(!o||null==o.disablePagination)&&o.disablePagination,this.dynamicHeight=!(!o||null==o.dynamicHeight)&&o.dynamicHeight,this.contentTabIndex=o?.contentTabIndex??null,this.preserveContent=!!o?.preserveContent}get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(e){this._dynamicHeight=hn(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=Mo(e,null)}get animationDuration(){return this._animationDuration}set animationDuration(e){this._animationDuration=/^\d+$/.test(e+"")?e+"ms":e}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=Mo(e,null)}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=hn(e)}get preserveContent(){return this._preserveContent}set preserveContent(e){this._preserveContent=hn(e)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){const i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}ngAfterContentChecked(){const e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));const o=this._tabBodyWrapper.nativeElement;o.style.minHeight=o.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((o,s)=>o.isActive=s===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,o)=>{i.position=o-e,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){const i=this._tabs.toArray();let o;for(let s=0;s{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(yo(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){const i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){const i=new iee;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=vt(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`mat-tab-label-${this._groupId}-${e}`}_getTabContentId(e){return`mat-tab-content-${this._groupId}-${e}`}_setTabBodyWrapperHeight(e){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){const e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,o){e.disabled||(this.selectedIndex=i.focusIndex=o)}_getTabIndex(e,i){return e.disabled?null:i===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(e,i){e&&"mouse"!==e&&"touch"!==e&&(this._tabHeader.focusIndex=i)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(nP,8),F(zi,8))},n.\u0275dir=Ke({type:n,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",preserveContent:"preserveContent",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[dt]}),n})(),nee=(()=>{class n extends tee{constructor(e,i,o,s){super(e,i,o,s),this._fitInkBarToContent=!1,this._stretchTabs=!0,this.fitInkBarToContent=!(!o||null==o.fitInkBarToContent)&&o.fitInkBarToContent}get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=hn(e),this._changeDetectorRef.markForCheck()}get stretchTabs(){return this._stretchTabs}set stretchTabs(e){this._stretchTabs=hn(e)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(nP,8),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-tab-group"]],contentQueries:function(e,i,o){if(1&e&&Ji(o,JI,5),2&e){let s;nt(s=it())&&(i._allTabs=s)}},viewQuery:function(e,i){if(1&e&&(ft(DJ,5),ft(TJ,5)),2&e){let o;nt(o=it())&&(i._tabBodyWrapper=o.first),nt(o=it())&&(i._tabHeader=o.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:6,hostBindings:function(e,i){2&e&&Gt("mat-mdc-tab-group-dynamic-height",i.dynamicHeight)("mat-mdc-tab-group-inverted-header","below"===i.headerPosition)("mat-mdc-tab-group-stretch-tabs",i.stretchTabs)},inputs:{color:"color",disableRipple:"disableRipple",fitInkBarToContent:"fitInkBarToContent",stretchTabs:["mat-stretch-tabs","stretchTabs"]},exportAs:["matTabGroup"],features:[Zt([{provide:QI,useExisting:n}]),dt],decls:6,vars:6,consts:[[3,"selectedIndex","disableRipple","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mdc-tab mat-mdc-tab mat-mdc-focus-indicator","role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",3,"id","mdc-tab--active","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-mdc-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-mdc-tab-body-active","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-mdc-focus-indicator",3,"id","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange"],["tabNode",""],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering"]],template:function(e,i){1&e&&(D(0,"mat-tab-header",0,1),ye("indexFocused",function(s){return i._focusChanged(s)})("selectFocusedIndex",function(s){return i.selectedIndex=s}),V(2,PJ,9,17,"div",2),x(),D(3,"div",3,4),V(5,OJ,1,11,"mat-tab-body",5),x()),2&e&&(M("selectedIndex",i.selectedIndex||0)("disableRipple",i.disableRipple),c(2),M("ngForOf",i._tabs),c(1),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode),c(2),M("ngForOf",i._tabs))},dependencies:[Rn,bi,It,nl,Ls,w9,qI,XI,QJ],styles:['.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-tab.mdc-tab{height:48px;flex-grow:0}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none}.mat-mdc-tab .mdc-tab__text-label{display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab-indicator__content--underline,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2}),n})();class iee{}let ree=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[ia,Vn,Jd,Yf,u1,y1,Vn]}),n})();const oee=["button"],see=["settingsButton"],aee=["firstInput"];function lee(n,t){1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),oe(B(3,1,"apps.vpn-socks-client-settings.remote-key-length-error")))}function cee(n,t){1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.vpn-socks-client-settings.remote-key-chars-error")))}const Cc=function(n){return{"element-disabled":n}};function dee(n,t){if(1&n&&(D(0,"mat-form-field",3)(1,"div",4)(2,"label",5),E(3),R(4,"translate"),x(),xe(5,"input",20),x()()),2&n){const e=z();M("ngClass",Be(4,Cc,e.disableDismiss)),c(3),oe(B(4,2,"apps.vpn-socks-client-settings.password"))}}function uee(n,t){1&n&&(D(0,"div",21)(1,"mat-icon",22),E(2,"warning"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce(" ",B(4,2,"apps.vpn-socks-client-settings.password-history-warning")," "))}function hee(n,t){1&n&&xe(0,"app-loading-indicator",23),2&n&&M("showWhite",!1)}function fee(n,t){1&n&&(D(0,"div",24)(1,"mat-icon",22),E(2,"error"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce(" ",B(4,2,"apps.vpn-socks-client-settings.no-elements")," "))}function pee(n,t){1&n&&(D(0,"div",31),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"apps.vpn-socks-client-settings.no-filter")," "))}function mee(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e[1]))}}function _ee(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e[2])}}function gee(n,t){if(1&n&&(D(0,"div",31)(1,"span"),E(2),R(3,"translate"),x(),V(4,mee,3,3,"ng-container",16),V(5,_ee,2,1,"ng-container",16),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e[0])," "),c(2),M("ngIf",e[1]),c(1),M("ngIf",e[2])}}function bee(n,t){1&n&&(D(0,"div",24)(1,"mat-icon",22),E(2,"error"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce(" ",B(4,2,"apps.vpn-socks-client-settings.no-elements-for-filters")," "))}const iP=function(n){return{highlighted:n}};function vee(n,t){if(1&n&&(Ue(0),D(1,"span",3),E(2),x(),We()),2&n){const e=t.$implicit,i=t.index;c(1),M("ngClass",Be(2,iP,i%2!=0)),c(1),oe(e)}}function yee(n,t){if(1&n&&(Ue(0),D(1,"div",38),xe(2,"div"),x(),We()),2&n){const e=z(2).$implicit;c(2),di("background-image: url('assets/img/flags/"+e.country.toLocaleLowerCase()+".png');")}}function Mee(n,t){if(1&n&&(Ue(0),D(1,"span",3),E(2),x(),We()),2&n){const e=t.$implicit,i=t.index;c(1),M("ngClass",Be(2,iP,i%2!=0)),c(1),oe(e)}}function wee(n,t){if(1&n&&(D(0,"div",31)(1,"span"),E(2),R(3,"translate"),x(),D(4,"span"),E(5,"\xa0 "),V(6,yee,3,2,"ng-container",16),V(7,Mee,3,4,"ng-container",35),x()()),2&n){const e=z().$implicit,i=z(2);c(2),oe(B(3,3,"apps.vpn-socks-client-settings.location")),c(4),M("ngIf",e.country),c(1),M("ngForOf",i.getHighlightedTextParts(e.location,i.currentFilters.location))}}function xee(n,t){if(1&n){const e=et();D(0,"div",32)(1,"button",33),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).saveChanges(s.pk,null,!1,s.location))}),D(2,"div",34)(3,"div",31)(4,"span"),E(5),R(6,"translate"),x(),D(7,"span"),E(8,"\xa0"),V(9,vee,3,4,"ng-container",35),x()(),V(10,wee,8,5,"div",28),x()(),D(11,"button",36),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).copyPk(s.pk))}),R(12,"translate"),D(13,"mat-icon",37),E(14,"filter_none"),x()()()}if(2&n){const e=t.$implicit,i=z(2);c(1),M("ngClass",Be(10,Cc,i.disableDismiss)),c(4),oe(B(6,6,"apps.vpn-socks-client-settings.key")),c(4),M("ngForOf",i.getHighlightedTextParts(e.pk,i.currentFilters.key)),c(1),M("ngIf",e.location),c(1),M("matTooltip",B(12,8,"apps.vpn-socks-client-settings.copy-pk-info")),c(2),M("inline",!0)}}function Cee(n,t){if(1&n){const e=et();Ue(0),D(1,"button",25),ye("click",function(){return Pe(e),Oe(z().changeFilters())}),D(2,"div",26)(3,"div",27)(4,"mat-icon",22),E(5,"filter_list"),x()(),D(6,"div"),V(7,pee,3,3,"div",28),V(8,gee,6,5,"div",29),D(9,"div",30),E(10),R(11,"translate"),x()()()(),V(12,bee,5,4,"div",15),V(13,xee,15,12,"div",18),We()}if(2&n){const e=z();c(4),M("inline",!0),c(3),M("ngIf",0===e.currentFiltersTexts.length),c(1),M("ngForOf",e.currentFiltersTexts),c(2),oe(B(11,6,"apps.vpn-socks-client-settings.click-to-change")),c(2),M("ngIf",0===e.filteredProxiesFromDiscovery.length),c(1),M("ngForOf",e.proxiesFromDiscoveryToShow)}}const kee=function(n,t){return{currentElementsRange:n,totalElements:t}};function See(n,t){if(1&n){const e=et();D(0,"div",39)(1,"span"),E(2),R(3,"translate"),x(),D(4,"button",40),ye("click",function(){return Pe(e),Oe(z().goToPreviousPage())}),D(5,"mat-icon"),E(6,"chevron_left"),x()(),D(7,"button",40),ye("click",function(){return Pe(e),Oe(z().goToNextPage())}),D(8,"mat-icon"),E(9,"chevron_right"),x()()()}if(2&n){const e=z();c(2),oe(Ct(3,1,"apps.vpn-socks-client-settings.pagination-info",cn(4,kee,e.currentRange,e.filteredProxiesFromDiscovery.length)))}}const Dee=function(n){return{number:n}};function Tee(n,t){if(1&n&&(D(0,"div")(1,"div",24)(2,"mat-icon",22),E(3,"error"),x(),E(4),R(5,"translate"),x()()),2&n){const e=z();c(2),M("inline",!0),c(2),ce(" ",Ct(5,2,"apps.vpn-socks-client-settings.no-history",Be(5,Dee,e.maxHistoryElements))," ")}}function Lee(n,t){1&n&&Jo(0)}function Eee(n,t){1&n&&Jo(0)}function Iee(n,t){if(1&n&&(Ue(0),D(1,"span"),E(2),x(),We()),2&n){const e=z(2).$implicit;c(2),ce(" ",e.note,"")}}function Pee(n,t){1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),ce(" ",B(3,1,"apps.vpn-socks-client-settings.note-entered-manually"),""))}function Oee(n,t){if(1&n&&(Ue(0),D(1,"span"),E(2),x(),We()),2&n){const e=z(4).$implicit;c(2),ce(" (",e.location,")")}}function Aee(n,t){if(1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),V(4,Oee,3,1,"ng-container",16),We()),2&n){const e=z(3).$implicit;c(2),ce(" ",B(3,2,"apps.vpn-socks-client-settings.note-obtained"),""),c(2),M("ngIf",e.location)}}function Fee(n,t){if(1&n&&(Ue(0),V(1,Pee,4,3,"ng-container",16),V(2,Aee,5,4,"ng-container",16),We()),2&n){const e=z(2).$implicit;c(1),M("ngIf",e.enteredManually),c(1),M("ngIf",!e.enteredManually)}}function Ree(n,t){if(1&n&&(D(0,"div",46)(1,"div",47)(2,"div",31)(3,"span"),E(4),R(5,"translate"),x(),D(6,"span"),E(7),x()(),D(8,"div",31)(9,"span"),E(10),R(11,"translate"),x(),V(12,Iee,3,1,"ng-container",16),V(13,Fee,3,2,"ng-container",16),x()(),D(14,"div",48)(15,"div",49)(16,"mat-icon",22),E(17,"add"),x()()()()),2&n){const e=z().$implicit;c(4),oe(B(5,6,"apps.vpn-socks-client-settings.key")),c(3),ce(" ",e.key,""),c(3),oe(B(11,8,"apps.vpn-socks-client-settings.note")),c(2),M("ngIf",e.note),c(1),M("ngIf",!e.note),c(3),M("inline",!0)}}function Nee(n,t){if(1&n){const e=et();D(0,"div",32)(1,"button",41),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().useFromHistory(s))}),V(2,Lee,1,0,"ng-container",42),x(),D(3,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().changeNote(s))}),R(4,"translate"),D(5,"mat-icon",37),E(6,"edit"),x()(),D(7,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().removeFromHistory(s.key))}),R(8,"translate"),D(9,"mat-icon",37),E(10,"close"),x()(),D(11,"button",44),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().openHistoryOptions(s))}),V(12,Eee,1,0,"ng-container",42),x(),V(13,Ree,18,10,"ng-template",null,45,ws),x()}if(2&n){const e=ci(14),i=z();c(1),M("ngClass",Be(12,Cc,i.disableDismiss)),c(1),M("ngTemplateOutlet",e),c(1),M("matTooltip",B(4,8,"apps.vpn-socks-client-settings.change-note")),c(2),M("inline",!0),c(2),M("matTooltip",B(8,10,"apps.vpn-socks-client-settings.remove-entry")),c(2),M("inline",!0),c(2),M("ngClass",Be(14,Cc,i.disableDismiss)),c(1),M("ngTemplateOutlet",e)}}function Yee(n,t){1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),oe(B(3,1,"apps.vpn-socks-client-settings.dns-error")))}function Bee(n,t){1&n&&(D(0,"div",56)(1,"mat-icon",22),E(2,"warning"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce(" ",B(4,2,"apps.vpn-socks-client-settings.settings-changed-alert")," "))}function Hee(n,t){if(1&n){const e=et();D(0,"mat-tab",1),R(1,"translate"),D(2,"form",2)(3,"mat-form-field",3)(4,"div",4)(5,"label",5),E(6),R(7,"translate"),x(),xe(8,"input",50),x(),D(9,"mat-error"),V(10,Yee,4,3,"ng-container",16),x()(),D(11,"div",51)(12,"mat-checkbox",52),E(13),R(14,"translate"),D(15,"mat-icon",53),R(16,"translate"),E(17,"help"),x()()(),V(18,Bee,5,4,"div",54),D(19,"app-button",12,55),ye("action",function(){return Pe(e),Oe(z().saveSettings())}),E(21),R(22,"translate"),x()()()}if(2&n){const e=z();M("label",B(1,12,"apps.vpn-socks-client-settings.settings-tab")),c(2),M("formGroup",e.settingsForm),c(1),M("ngClass",Be(22,Cc,e.disableDismiss)),c(3),oe(B(7,14,"apps.vpn-socks-client-settings.dns")),c(4),M("ngIf",!e.settingsForm.get("dns").valid),c(2),M("ngClass",Be(24,Cc,e.disableDismiss)),c(1),ce(" ",B(14,16,"apps.vpn-socks-client-settings.killswitch-check")," "),c(2),M("inline",!0)("matTooltip",B(16,18,"apps.vpn-socks-client-settings.killswitch-info")),c(3),M("ngIf",e.settingsChanged),c(1),M("disabled",!e.settingsForm.valid||!e.settingsChanged||e.working),c(2),ce(" ",B(22,20,"apps.vpn-socks-client-settings.save-settings")," ")}}class kc{constructor(t,e,i,o,s,a,l,d,w){this.data=t,this.dialogRef=e,this.appsService=i,this.formBuilder=o,this.snackbarService=s,this.dialog=a,this.proxyDiscoveryService=l,this.clipboardService=d,this.storageService=w,this.socksHistoryStorageKey="SkysocksClientHistory_",this.vpnHistoryStorageKey="VpnClientHistory_",this.maxHistoryElements=10,this.maxElementsPerPage=10,this.countriesFromDiscovery=new Set,this.loadingFromDiscovery=!0,this.numberOfPages=1,this.currentPage=1,this.currentRange="1 - 1",this.currentFilters=new $I,this.currentFiltersTexts=[],this.configuringVpn=!1,this.initialKillswitchSetting=!1,this.initialDnsSetting="",this.working=!1,-1!==t.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.largeModalWidth,t.open(kc,i)}ngOnInit(){this.migrateDataToHvStorage(),this.discoverySubscription=this.proxyDiscoveryService.getServices(!this.configuringVpn).subscribe(i=>{this.proxiesFromDiscovery=i,this.proxiesFromDiscovery.forEach(o=>{o.country&&this.countriesFromDiscovery.add(o.country.toUpperCase())}),this.filterProxies(),this.loadingFromDiscovery=!1});const t=this.storageService.getDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey);this.history=t?JSON.parse(t):[];let e="";if(this.data.args&&this.data.args.length>0)for(let i=0;ithis.firstInput.nativeElement.focus())}ngOnDestroy(){this.discoverySubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}migrateDataToHvStorage(){const t=localStorage.getItem(this.socksHistoryStorageKey);t&&(this.storageService.setDataForHv(this.socksHistoryStorageKey,t),localStorage.removeItem(this.socksHistoryStorageKey));const e=localStorage.getItem(this.vpnHistoryStorageKey);e&&(this.storageService.setDataForHv(this.vpnHistoryStorageKey,e),localStorage.removeItem(this.vpnHistoryStorageKey))}get disableDismiss(){return this.button&&this.button.isLoading||this.settingsButton&&this.settingsButton.isLoading}validateIp(){if(this.settingsForm){const t=this.settingsForm.get("dns").value;return Wt.checkIfIpValidOrEmpty(t)?null:{invalid:!0}}return null}get settingsChanged(){return this.initialKillswitchSetting!==this.settingsForm.get("killswitch").value||this.initialDnsSetting!==this.settingsForm.get("dns").value}changeFilters(){const t=[];this.countriesFromDiscovery.forEach(i=>t.push(i)),wc.openDialog(this.dialog,{currentFilters:this.currentFilters,availableCountries:t}).afterClosed().subscribe(i=>{i&&(this.currentFilters=i,this.filterProxies())})}getHighlightedTextParts(t,e){if(!e)return[t];const i=t.toLowerCase(),o=e.toLowerCase();let s=!0,a=0;const l=[];for(;s;){const d=i.indexOf(o,a);-1===d?s=!1:(l.push(t.substring(a,d)),l.push(t.substring(d,d+e.length)),a=d+e.length)}return l.push(t.substring(a)),l}filterProxies(){this.filteredProxiesFromDiscovery=this.currentFilters.country||this.currentFilters.location||this.currentFilters.key?this.proxiesFromDiscovery.filter(t=>!(this.currentFilters.country&&(!t.country||!t.country.toUpperCase().includes(this.currentFilters.country.toUpperCase()))||this.currentFilters.location&&!t.location.toLowerCase().includes(this.currentFilters.location.toLowerCase())||this.currentFilters.key&&!t.address.toLowerCase().includes(this.currentFilters.key.toLowerCase()))):this.proxiesFromDiscovery,this.updateCurrentFilters(),this.updatePagination()}updateCurrentFilters(){if(this.currentFiltersTexts=[],this.currentFilters.country){const t=ba[this.currentFilters.country.toUpperCase()]?ba[this.currentFilters.country.toUpperCase()]:this.currentFilters.country.toUpperCase();this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.country","",t])}this.currentFilters.location&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.location","",this.currentFilters.location]),this.currentFilters.key&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.pub-key","",this.currentFilters.key])}updatePagination(){this.currentPage=1,this.numberOfPages=Math.ceil(this.filteredProxiesFromDiscovery.length/this.maxElementsPerPage),this.showCurrentPage()}goToNextPage(){this.currentPage>=this.numberOfPages||(this.currentPage+=1,this.showCurrentPage())}goToPreviousPage(){this.currentPage<=1||(this.currentPage-=1,this.showCurrentPage())}showCurrentPage(){this.proxiesFromDiscoveryToShow=this.filteredProxiesFromDiscovery.slice((this.currentPage-1)*this.maxElementsPerPage,this.currentPage*this.maxElementsPerPage),this.currentRange=(this.currentPage-1)*this.maxElementsPerPage+1+" - ",this.currentRange+=this.currentPage{1===i?this.useFromHistory(t):2===i?this.changeNote(t):3===i&&this.removeFromHistory(t.key)})}removeFromHistory(t){const i=Wt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.remove-from-history-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{this.history=this.history.filter(s=>s.key!==t);const o=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,o),i.close()})}changeNote(t){Mc.openDialog(this.dialog,t.note).afterClosed().subscribe(e=>{if(e){e=e.substr(1,e.length-1),this.history.forEach(o=>{o.key===t.key&&(o.note=e)});const i=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,i),e?this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"):this.snackbarService.showWarning("apps.vpn-socks-client-settings.default-note-warning")}})}useFromHistory(t){t.hasPassword?xc.openDialog(this.dialog).afterClosed().subscribe(e=>{e&&(e=e.substr(1,e.length-1),this.saveChanges(t.key,e,t.enteredManually,t.location,t.note))}):this.saveChanges(t.key,null,t.enteredManually,t.location,t.note)}saveChanges(t=null,e=null,i=null,o=null,s=null){if(!this.form.valid&&!t||this.working)return;i=!t||i,e=t?e:this.form.get("password").value,t=t||this.form.get("pk").value;const l=Wt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.change-key-confirmation");l.componentInstance.operationAccepted.subscribe(()=>{l.close(),this.continueSavingChanges(t,e,i,o,s)})}saveSettings(){if(this.working)return;const t={killswitch:this.settingsForm.get("killswitch").value,dns:this.settingsForm.get("dns").value};this.settingsButton.showLoading(!1),this.button.showLoading(!1),this.working=!0,this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,t).subscribe(()=>{this.initialKillswitchSetting=t.killswitch,this.initialDnsSetting=t.dns,this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.settingsButton.reset(!1),this.button.reset(!1),Je.refreshCurrentDisplayedData()},e=>{this.working=!1,this.settingsButton.showError(!1),this.button.reset(!1),e=Kt(e),this.snackbarService.showError(e)})}copyPk(t){this.clipboardService.copy(t)?this.snackbarService.showDone("apps.vpn-socks-client-settings.copied-pk-info"):this.snackbarService.showError("apps.vpn-socks-client-settings.copy-pk-error")}continueSavingChanges(t,e,i,o,s){if(this.working)return;this.button.showLoading(!1),this.settingsButton&&this.settingsButton.showLoading(!1),this.working=!0;const a={pk:t};this.configuringVpn&&(a.passcode=e||""),this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,a).subscribe(()=>this.onServerDataChangeSuccess(t,!!e,i,o,s),l=>this.onServerDataChangeError(l))}onServerDataChangeSuccess(t,e,i,o,s){this.history=this.history.filter(d=>d.key!==t);const a={key:t,enteredManually:i};if(e&&(a.hasPassword=e),o&&(a.location=o),s&&(a.note=s),this.history=[a].concat(this.history),this.history.length>this.maxHistoryElements){const d=this.history.length-this.maxHistoryElements;this.history.splice(this.history.length-d,d)}this.form.get("pk").setValue(t);const l=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,l),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.button.reset(!1),this.settingsButton&&this.settingsButton.reset(!1)}onServerDataChangeError(t){this.working=!1,this.button.showError(!1),this.settingsButton&&this.settingsButton.reset(!1),t=Kt(t),this.snackbarService.showError(t)}}kc.\u0275fac=function(t){return new(t||kc)(F(Ti),F(Nn),F(xo),F(Cr),F(on),F(Ln),F(Su),F(As),F(ni))},kc.\u0275cmp=qe({type:kc,selectors:[["app-skysocks-client-settings"]],viewQuery:function(t,e){if(1&t&&(ft(oee,5),ft(see,5),ft(aee,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.settingsButton=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:34,vars:36,consts:[[3,"headline","dialog","disableDismiss"],[3,"label"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","pk","formControlName","pk","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],[3,"ngClass",4,"ngIf"],["class","password-history-warning",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["class","loading-indicator",3,"showWhite",4,"ngIf"],["class","info-text",4,"ngIf"],[4,"ngIf"],["class","paginator",4,"ngIf"],["class","d-flex",4,"ngFor","ngForOf"],[3,"label",4,"ngIf"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],[1,"password-history-warning"],[3,"inline"],[1,"loading-indicator",3,"showWhite"],[1,"info-text"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click"],[1,"filter-button-content"],[1,"icon-area"],["class","item",4,"ngIf"],["class","item",4,"ngFor","ngForOf"],[1,"blue-part"],[1,"item"],[1,"d-flex"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"ngClass","click"],[1,"button-content"],[4,"ngFor","ngForOf"],["mat-button","",1,"list-button","grey-button-background",3,"matTooltip","click"],[1,"option-button-icon",3,"inline"],[1,"flag-container"],[1,"paginator"],["mat-icon-button","",1,"hard-grey-button-background",3,"click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-none","d-md-inline",3,"ngClass","click"],[4,"ngTemplateOutlet"],["mat-button","",1,"list-button","grey-button-background","d-none","d-md-inline",3,"matTooltip","click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-md-none",3,"ngClass","click"],["content",""],[1,"button-content","d-flex"],[1,"full-size-area"],[1,"options-container"],[1,"small-button","d-md-none"],["formControlName","dns","maxlength","15","matInput",""],[1,"main-theme","settings-option"],["color","primary","formControlName","killswitch",3,"ngClass"],[1,"help-icon",3,"inline","matTooltip"],["class","settings-changed-warning",4,"ngIf"],["settingsButton",""],[1,"settings-changed-warning"]],template:function(t,e){if(1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"mat-tab-group")(3,"mat-tab",1),R(4,"translate"),D(5,"form",2)(6,"mat-form-field",3)(7,"div",4)(8,"label",5),E(9),R(10,"translate"),x(),xe(11,"input",6,7),x(),D(13,"mat-error"),V(14,lee,4,3,"ng-container",8),x(),V(15,cee,3,3,"ng-template",null,9,ws),x(),V(17,dee,6,6,"mat-form-field",10),V(18,uee,5,4,"div",11),D(19,"app-button",12,13),ye("action",function(){return e.saveChanges()}),E(21),R(22,"translate"),x()()(),D(23,"mat-tab",1),R(24,"translate"),V(25,hee,1,1,"app-loading-indicator",14),V(26,fee,5,4,"div",15),V(27,Cee,14,8,"ng-container",16),V(28,See,10,7,"div",17),x(),D(29,"mat-tab",1),R(30,"translate"),V(31,Tee,6,7,"div",16),V(32,Nee,15,16,"div",18),x(),V(33,Hee,23,26,"mat-tab",19),x()()),2&t){const i=ci(16);M("headline",B(1,22,"apps.vpn-socks-client-settings."+(e.configuringVpn?"vpn-title":"socks-title")))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(3),M("label",B(4,24,"apps.vpn-socks-client-settings.remote-visor-tab")),c(2),M("formGroup",e.form),c(1),M("ngClass",Be(34,Cc,e.disableDismiss)),c(3),oe(B(10,26,"apps.vpn-socks-client-settings.public-key")),c(5),M("ngIf",!e.form.get("pk").hasError("pattern"))("ngIfElse",i),c(3),M("ngIf",e.configuringVpn),c(1),M("ngIf",e.form&&e.form.get("password").value),c(1),M("disabled",!e.form.valid||e.working),c(2),ce(" ",B(22,28,"apps.vpn-socks-client-settings.save")," "),c(2),M("label",B(24,30,"apps.vpn-socks-client-settings.discovery-tab")),c(2),M("ngIf",e.loadingFromDiscovery),c(1),M("ngIf",!e.loadingFromDiscovery&&0===e.proxiesFromDiscovery.length),c(1),M("ngIf",!e.loadingFromDiscovery&&e.proxiesFromDiscovery.length>0),c(1),M("ngIf",e.numberOfPages>1),c(1),M("label",B(30,32,"apps.vpn-socks-client-settings.history-tab")),c(2),M("ngIf",0===e.history.length),c(1),M("ngForOf",e.history),c(1),M("ngIf",e.configuringVpn)}},dependencies:[Rn,bi,It,Rd,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,JI,nee,$r,rl,yn,vi,ma,ri,En,Gr,xt],styles:["mat-tab-header{border-bottom:solid 1px rgba(0,0,0,.12)}form[_ngcontent-%COMP%]{margin-top:15px}.info-text[_ngcontent-%COMP%]{margin-top:20px;margin-bottom:2px;text-align:center;color:#202226}.info-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.loading-indicator[_ngcontent-%COMP%]{height:100px}.password-history-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative;top:-5px}.list-button[_ngcontent-%COMP%]{border-bottom:solid 1px rgba(0,0,0,.12);height:auto;justify-content:left}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%]{padding:15px 0;white-space:normal;line-height:1.3;color:#202226;text-align:left;display:flex;font-size:.8rem;word-break:break-word}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .icon-area[_ngcontent-%COMP%]{font-size:20px;margin-right:15px;color:#999;opacity:.4;align-self:center}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{margin:4px 0}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .blue-part[_ngcontent-%COMP%]{color:#215f9e}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%]{text-align:left;padding:15px 0;white-space:normal}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .full-size-area[_ngcontent-%COMP%]{flex-grow:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{line-height:1.3;margin:4px 0;font-size:.8rem;color:#202226;word-break:break-all}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{background-color:#ff0}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%]{flex-shrink:0;margin-left:5px;text-align:right;line-height:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%] .small-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:14px;font-size:14px;margin-left:5px}.list-button[_ngcontent-%COMP%] .option-button-icon[_ngcontent-%COMP%]{font-size:14px;margin:0!important;overflow:visible!important}.paginator[_ngcontent-%COMP%]{float:right;margin-top:15px;display:flex;align-items:center}@media (max-width: 767px){.paginator[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.7rem}}.paginator[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:5px;display:flex}.settings-option[_ngcontent-%COMP%]{margin-top:20px}.settings-option[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}.settings-changed-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative}"]});const Vee=["button"],rP=function(n){return{"element-disabled":n}},oP=function(n){return{number:n}};function jee(n,t){if(1&n){const e=et();Ue(0,7),D(1,"div",8)(2,"mat-form-field",9)(3,"div",10)(4,"label",11),E(5),R(6,"translate"),x(),xe(7,"input",12),x()(),D(8,"mat-form-field",9)(9,"div",10)(10,"label",13),E(11),R(12,"translate"),x(),xe(13,"input",14),x()(),D(14,"button",15),ye("click",function(){const s=Pe(e).index;return Oe(z().removeSetting(s))}),R(15,"translate"),D(16,"mat-icon",16),E(17,"close"),x()()(),We()}if(2&n){const e=t.index,i=z();c(1),M("formGroupName",e),c(1),M("ngClass",Be(15,rP,i.disableDismiss)),c(3),oe(Ct(6,7,"apps.user-app-settings.name",Be(17,oP,e+1))),c(3),M("ngClass",Be(19,rP,i.disableDismiss)),c(3),oe(Ct(12,10,"apps.user-app-settings.value",Be(21,oP,e+1))),c(3),M("matTooltip",B(15,13,"apps.user-app-settings.remove")),c(2),M("inline",!0)}}const zee=function(n){return{name:n}};class Sc{constructor(t,e,i,o,s,a){this.data=t,this.appsService=e,this.formBuilder=i,this.dialogRef=o,this.snackbarService=s,this.dialog=a,this.appName="",this.appName=t.name}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.mediumModalWidth,t.open(Sc,i)}ngOnInit(){if(this.form=this.formBuilder.group({settings:this.formBuilder.array([])}),this.data.args&&this.data.args.length>0)for(let t=0;t{let s=o.get("name").value,a=o.get("value").value;s=s&&s.trim(),a=a&&a.trim(),s?(i[s]=a,e+=1):t=!0}),t||0===e){const s=Wt.createConfirmationDialog(this.dialog,"apps.user-app-settings."+(0===e?"empty-confirmation":"invalid-confirmation"));s.componentInstance.operationAccepted.subscribe(()=>{s.close(),this.continueSavingChanges(i)})}else this.continueSavingChanges(i)}continueSavingChanges(t){this.button.showLoading();const e={custom_setting:t};this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,e).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.user-app-settings.changes-made"),this.dialogRef.close()}onError(t){this.button.showError(),t=Kt(t),this.snackbarService.showError(t)}}function Uee(n,t){1&n&&(D(0,"span",14),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.apps-list.title-official")))}function Wee(n,t){1&n&&(D(0,"span",14),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.apps-list.title-user")))}function $ee(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function Gee(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function qee(n,t){if(1&n&&(D(0,"div",18)(1,"span"),E(2),R(3,"translate"),x(),V(4,$ee,3,3,"ng-container",19),V(5,Gee,2,1,"ng-container",19),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function Kee(n,t){if(1&n){const e=et();D(0,"div",15),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,qee,6,5,"div",16),D(2,"div",17),E(3),R(4,"translate"),x()()}if(2&n){const e=z();c(1),M("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),oe(B(4,2,"filters.press-to-remove"))}}function Zee(n,t){if(1&n){const e=et();D(0,"mat-icon",20),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),E(2,"filter_list"),x()}2&n&&M("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function Xee(n,t){1&n&&(D(0,"mat-icon",21),E(1,"more_horiz"),x()),2&n&&(z(),M("matMenuTriggerFor",ci(10)))}Sc.\u0275fac=function(t){return new(t||Sc)(F(Ti),F(xo),F(Cr),F(Nn),F(on),F(Ln))},Sc.\u0275cmp=qe({type:Sc,selectors:[["app-user-app-settings"]],viewQuery:function(t,e){if(1&t&&ft(Vee,5),2&t){let i;nt(i=it())&&(e.button=i.first)}},decls:15,vars:20,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup"],["formArrayName","settings",4,"ngFor","ngForOf"],[1,"add-setting",3,"click"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["formArrayName","settings"],[1,"settings-row",3,"formGroupName"],[3,"ngClass"],[1,"field-container"],["for","name",1,"field-label"],["id","name","formControlName","name","matInput",""],["for","value",1,"field-label"],["id","value","formControlName","value","matInput",""],["mat-button","",1,"transparent-button",3,"matTooltip","click"],[3,"inline"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),E(3),R(4,"translate"),x(),D(5,"form",2),V(6,jee,18,23,"ng-container",3),x(),D(7,"div")(8,"a",4),ye("click",function(){return e.addSetting()}),E(9),R(10,"translate"),x()(),D(11,"app-button",5,6),ye("action",function(){return e.saveChanges()}),E(13),R(14,"translate"),x()()),2&t&&(M("headline",Ct(1,9,"apps.user-app-settings.title",Be(18,zee,e.appName)))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(3),oe(B(4,12,"apps.user-app-settings.info")),c(2),M("formGroup",e.form),c(1),M("ngForOf",e.settingsControls),c(3),ce("+ ",B(10,14,"apps.user-app-settings.add"),""),c(2),M("disabled",!e.form.valid),c(2),ce(" ",B(14,16,"apps.user-app-settings.save")," "))},dependencies:[Rn,bi,Bi,Ri,Ni,Yi,ii,Li,Zf,Xf,nr,kr,$r,yn,vi,ri,En,xt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}.settings-row[_ngcontent-%COMP%]{display:flex}mat-form-field[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px}button[_ngcontent-%COMP%]{flex-shrink:0;width:50px;padding:0!important;align-self:center;border-radius:10px}button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0!important}.add-setting[_ngcontent-%COMP%]{color:#215f9e!important;cursor:pointer}"]});const sP=function(n,t){return["/nodes",n,"apps-list",t]};function Qee(n,t){if(1&n&&xe(0,"app-paginator",22),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",cn(4,sP,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Jee(n,t){if(1&n&&(D(0,"mat-icon",37),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function ete(n,t){if(1&n&&(D(0,"mat-icon",37),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function tte(n,t){if(1&n&&(D(0,"mat-icon",37),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function nte(n,t){if(1&n&&(D(0,"mat-icon",37),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function ite(n,t){if(1&n&&(xe(0,"i",46),R(1,"translate")),2&n){const e=z().$implicit,i=z(2);eo(i.getStateClass(e)),M("matTooltip",B(1,3,i.getStateTooltip(e)))}}const aP=function(n){return{error:n}};function rte(n,t){if(1&n&&(D(0,"mat-icon",47),R(1,"translate"),E(2,"warning"),x()),2&n){const e=z().$implicit;M("inline",!0)("matTooltip",Ct(1,2,"apps.status-failed-tooltip",Be(5,aP,e.detailedStatus?e.detailedStatus:"")))}}function ote(n,t){if(1&n&&(D(0,"a",48)(1,"button",49),R(2,"translate"),D(3,"mat-icon",37),E(4,"open_in_browser"),x()()()),2&n){const e=z().$implicit;M("href",z(2).getLink(e),Oo),c(1),M("matTooltip",B(2,3,"apps.open")),c(2),M("inline",!0)}}function ste(n,t){if(1&n){const e=et();D(0,"button",43),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).config(o))}),R(1,"translate"),D(2,"mat-icon",37),E(3,"settings"),x()()}2&n&&(M("matTooltip",B(1,2,"apps.settings")),c(2),M("inline",!0))}function ate(n,t){if(1&n){const e=et();D(0,"tr")(1,"td",39)(2,"mat-checkbox",40),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(3,"td"),V(4,ite,2,5,"i",41),V(5,rte,3,7,"mat-icon",42),x(),D(6,"td"),E(7),x(),D(8,"td"),E(9),x(),D(10,"td")(11,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).changeAppAutostart(s))}),R(12,"translate"),D(13,"mat-icon",37),E(14),x()()(),D(15,"td",30),V(16,ote,5,5,"a",44),V(17,ste,4,4,"button",45),D(18,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).viewLogs(s))}),R(19,"translate"),D(20,"mat-icon",37),E(21,"list"),x()(),D(22,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).changeAppState(s))}),R(23,"translate"),D(24,"mat-icon",37),E(25),x()()()()}if(2&n){const e=t.$implicit,i=z(2);c(2),M("checked",i.selections.get(e.name)),c(2),M("ngIf",2!==e.status),c(1),M("ngIf",2===e.status),c(2),ce(" ",e.name," "),c(2),ce(" ",e.port," "),c(2),M("matTooltip",B(12,15,e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart")),c(2),M("inline",!0),c(1),oe(e.autostart?"done":"close"),c(2),M("ngIf",i.getLink(e)),c(1),M("ngIf",!i.appsWithoutConfig.has(e.name)),c(1),M("matTooltip",B(19,17,"apps.view-logs")),c(2),M("inline",!0),c(2),M("matTooltip",B(23,19,"apps."+(0===e.status||2===e.status?"start-app":"stop-app"))),c(2),M("inline",!0),c(1),oe(0===e.status||2===e.status?"play_arrow":"stop")}}function lte(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.label")))}function cte(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.inverted-order")))}function dte(n,t){if(1&n&&(D(0,"a",55),ye("click",function(i){return i.stopPropagation()}),D(1,"button",56),R(2,"translate"),D(3,"mat-icon"),E(4,"open_in_browser"),x()()()),2&n){const e=z().$implicit;M("href",z(2).getLink(e),Oo),c(1),M("matTooltip",B(2,2,"apps.open"))}}function ute(n,t){if(1&n){const e=et();D(0,"tr")(1,"td")(2,"div",34)(3,"div",50)(4,"mat-checkbox",40),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(5,"div",35)(6,"div",51)(7,"span",1),E(8),R(9,"translate"),x(),E(10),x(),D(11,"div",51)(12,"span",1),E(13),R(14,"translate"),x(),E(15),x(),D(16,"div",51)(17,"span",1),E(18),R(19,"translate"),x(),E(20,": "),D(21,"span"),E(22),R(23,"translate"),x()(),D(24,"div",51)(25,"span",1),E(26),R(27,"translate"),x(),E(28,": "),D(29,"span"),E(30),R(31,"translate"),x()()(),xe(32,"div",52),D(33,"div",36),V(34,dte,5,4,"a",53),D(35,"button",54),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(36,"translate"),D(37,"mat-icon"),E(38),x()()()()()()}if(2&n){const e=t.$implicit,i=z(2);c(4),M("checked",i.selections.get(e.name)),c(4),oe(B(9,16,"apps.apps-list.app-name")),c(2),ce(": ",e.name," "),c(3),oe(B(14,18,"apps.apps-list.port")),c(2),ce(": ",e.port," "),c(3),oe(B(19,20,"apps.apps-list.state")),c(3),eo(i.getSmallScreenStateClass(e)+" title"),c(1),ce(" ",Ct(23,22,i.getSmallScreenStateTextVar(e),Be(31,aP,e.detailedStatus?e.detailedStatus:""))," "),c(4),oe(B(27,25,"apps.apps-list.auto-start")),c(3),eo((e.autostart?"green-clear-text":"red-clear-text")+" title"),c(1),ce(" ",B(31,27,e.autostart?"apps.apps-list.autostart-enabled":"apps.apps-list.autostart-disabled")," "),c(4),M("ngIf",i.getLink(e)),c(1),M("matTooltip",B(36,29,"common.options")),c(3),oe("add")}}const hte=function(n,t){return["/nodes",n,"apps-list",t,"1"]};function fte(n,t){if(1&n&&xe(0,"app-view-all-link",57),2&n){const e=z(2);M("numberOfElements",e.filteredApps.length)("linkParts",cn(3,hte,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const pte=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},mte=function(n){return{"d-lg-none d-xl-table":n}},_te=function(n){return{"d-lg-table d-xl-none":n}};function gte(n,t){if(1&n){const e=et();D(0,"div",23)(1,"div",24)(2,"table",25)(3,"tr"),xe(4,"th"),D(5,"th",26),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.stateSortData))}),R(6,"translate"),xe(7,"span",27),V(8,Jee,2,2,"mat-icon",28),x(),D(9,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.nameSortData))}),E(10),R(11,"translate"),V(12,ete,2,2,"mat-icon",28),x(),D(13,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.portSortData))}),E(14),R(15,"translate"),V(16,tte,2,2,"mat-icon",28),x(),D(17,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.autoStartSortData))}),E(18),R(19,"translate"),V(20,nte,2,2,"mat-icon",28),x(),xe(21,"th",30),x(),V(22,ate,26,21,"tr",31),x(),D(23,"table",32)(24,"tr",33),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(25,"td")(26,"div",34)(27,"div",35)(28,"div",1),E(29),R(30,"translate"),x(),D(31,"div"),E(32),R(33,"translate"),V(34,lte,3,3,"ng-container",19),V(35,cte,3,3,"ng-container",19),x()(),D(36,"div",36)(37,"mat-icon",37),E(38,"keyboard_arrow_down"),x()()()()(),V(39,ute,39,33,"tr",31),x(),V(40,fte,1,6,"app-view-all-link",38),x()()}if(2&n){const e=z();c(1),M("ngClass",cn(31,pte,e.showShortList_,!e.showShortList_)),c(1),M("ngClass",Be(34,mte,e.showShortList_)),c(3),M("matTooltip",B(6,19,"apps.apps-list.state-tooltip")),c(3),M("ngIf",e.dataSorter.currentSortingColumn===e.stateSortData),c(2),ce(" ",B(11,21,"apps.apps-list.app-name")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.nameSortData),c(2),ce(" ",B(15,23,"apps.apps-list.port")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.portSortData),c(2),ce(" ",B(19,25,"apps.apps-list.auto-start")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.autoStartSortData),c(2),M("ngForOf",e.dataSource),c(1),M("ngClass",Be(36,_te,e.showShortList_)),c(6),oe(B(30,27,"tables.sorting-title")),c(3),ce("",B(33,29,e.dataSorter.currentSortingColumn.label)," "),c(2),M("ngIf",e.dataSorter.currentlySortingByLabel),c(1),M("ngIf",e.dataSorter.sortingInReverseOrder),c(2),M("inline",!0),c(2),M("ngForOf",e.dataSource),c(1),M("ngIf",e.showShortList_&&e.numberOfPages>1)}}function bte(n,t){1&n&&(D(0,"span",61),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.apps-list.empty-official")))}function vte(n,t){1&n&&(D(0,"span",61),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.apps-list.empty-user")))}function yte(n,t){1&n&&(D(0,"span",61),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.apps-list.empty-with-filter")))}function Mte(n,t){if(1&n&&(D(0,"div",23)(1,"div",58)(2,"mat-icon",59),E(3,"warning"),x(),V(4,bte,3,3,"span",60),V(5,vte,3,3,"span",60),V(6,yte,3,3,"span",60),x()()),2&n){const e=z();c(2),M("inline",!0),c(2),M("ngIf",0===e.allAppsForType.length&&e.showOfficialApps),c(1),M("ngIf",0===e.allAppsForType.length&&!e.showOfficialApps),c(1),M("ngIf",0!==e.allAppsForType.length)}}function wte(n,t){if(1&n&&xe(0,"app-paginator",22),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",cn(4,sP,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const xte=function(n){return{"paginator-icons-fixer":n}};class Du{constructor(t,e,i,o,s,a,l){this.appsService=t,this.dialog=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listIdForOfficialApps="op",this.listIdForUserApps="up",this.officialAppsList=new Set(["skychat","skysocks","skysocks-client","vpn-client","vpn-server"]),this.showOfficialApps=!0,this.stateSortData=new Yn(["status"],"apps.apps-list.state",Jt.NumberReversed),this.nameSortData=new Yn(["name"],"apps.apps-list.app-name",Jt.Text),this.portSortData=new Yn(["port"],"apps.apps-list.port",Jt.Number),this.autoStartSortData=new Yn(["autostart"],"apps.apps-list.auto-start",Jt.Boolean),this.selections=new Map,this.appsWithoutConfig=new Set(["skychat"]),this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"apps.apps-list.filter-dialog.state",keyNameInElementsArray:"status",type:Xn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.state-options.any"},{value:"1",label:"apps.apps-list.filter-dialog.state-options.running"},{value:"0",label:"apps.apps-list.filter-dialog.state-options.stopped"}]},{filterName:"apps.apps-list.filter-dialog.name",keyNameInElementsArray:"name",type:Xn.TextInput,maxlength:50},{filterName:"apps.apps-list.filter-dialog.port",keyNameInElementsArray:"port",type:Xn.TextInput,maxlength:8},{filterName:"apps.apps-list.filter-dialog.autostart",keyNameInElementsArray:"autostart",type:Xn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.autostart-options.any"},{value:"true",label:"apps.apps-list.filter-dialog.autostart-options.enabled"},{value:"false",label:"apps.apps-list.filter-dialog.autostart-options.disabled"}]}],this.refreshAgain=!1,this.operationSubscriptionsGroup=[],this.navigationsSubscription=this.route.paramMap.subscribe(d=>{if(d.has("showOfficialApps")&&(this.showOfficialApps=d.get("showOfficialApps").toUpperCase()==="true".toUpperCase()),d.has("page")){let w=Number.parseInt(d.get("page"),10);(isNaN(w)||w<1)&&(w=1),this.currentPageInUrl=w,this.recalculateElementsToShow()}})}set showShortList(t){this.showShortList_=t,this.dataSorter&&this.dataSorter.setData(this.filteredApps)}set apps(t){this.allApps=t||[],this.allApps&&(this.allAppsForType=[],this.allApps.forEach(e=>{(this.showOfficialApps&&this.officialAppsList.has(e.name)||!this.showOfficialApps&&!this.officialAppsList.has(e.name))&&this.allAppsForType.push(e)}),this.dataFilterer&&this.dataFilterer.setData(this.allAppsForType))}ngOnInit(){const t=this.showOfficialApps?this.listIdForOfficialApps:this.listIdForUserApps;this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,[this.stateSortData,this.nameSortData,this.portSortData,this.autoStartSortData],1,t),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataSorter&&this.dataSorter.setData(this.filteredApps),this.dataFilterer=new gu(this.dialog,this.route,this.router,this.filterProperties,t),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(i=>{this.filteredApps=i,this.dataSorter.setData(this.filteredApps)}),this.allAppsForType&&this.dataFilterer.setData(this.allAppsForType)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}getLink(t){if("skychat"===t.name.toLocaleLowerCase()&&this.nodeIp&&0!==t.status&&2!==t.status){let e="8001";if(t.args)for(let i=0;i{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}changeStateOfSelected(t){const e=[];if(this.selections.forEach((i,o)=>{i&&(t&&(0===this.appsMap.get(o).status||2===this.appsMap.get(o).status)||!t&&0!==this.appsMap.get(o).status&&2!==this.appsMap.get(o).status)&&e.push(o)}),t)this.changeAppsValRecursively(e,!1,t);else{const i=Wt.createConfirmationDialog(this.dialog,"apps.stop-selected-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeAppsValRecursively(e,!1,t,i)})}}changeAutostartOfSelected(t){const e=[];this.selections.forEach((o,s)=>{o&&(t&&!this.appsMap.get(s).autostart||!t&&this.appsMap.get(s).autostart)&&e.push(s)});const i=Wt.createConfirmationDialog(this.dialog,t?"apps.enable-autostart-selected-confirmation":"apps.disable-autostart-selected-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeAppsValRecursively(e,!0,t,i)})}showOptionsDialog(t){const e=[{icon:"list",label:"apps.view-logs"},{icon:0===t.status||2===t.status?"play_arrow":"stop",label:"apps."+(0===t.status||2===t.status?"start-app":"stop-app")},{icon:t.autostart?"close":"done",label:t.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart"}];this.appsWithoutConfig.has(t.name)||e.push({icon:"settings",label:"apps.settings"}),Hi.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{1===i?this.viewLogs(t):2===i?this.changeAppState(t):3===i?this.changeAppAutostart(t):4===i&&this.config(t)})}changeAppState(t){if(0===t.status||2===t.status)this.changeSingleAppVal(this.startChangingAppState(t.name,!0));else{const e=Wt.createConfirmationDialog(this.dialog,"apps.stop-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppState(t.name,!1),e)})}}changeAppAutostart(t){const e=Wt.createConfirmationDialog(this.dialog,t.autostart?"apps.disable-autostart-confirmation":"apps.enable-autostart-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppAutostart(t.name,!t.autostart),e)})}changeSingleAppVal(t,e=null){this.operationSubscriptionsGroup.push(t.subscribe(()=>{e&&e.close(),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")},i=>{i=Kt(i),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),e?e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg):this.snackbarService.showError(i)}))}viewLogs(t){0!==t.status&&2!==t.status?vc.openDialog(this.dialog,t):this.snackbarService.showError("apps.apps-list.unavailable-logs-error")}config(t){"skysocks"===t.name||"vpn-server"===t.name?yc.openDialog(this.dialog,t):"skysocks-client"===t.name||"vpn-client"===t.name?kc.openDialog(this.dialog,t):"skychat"===t.name?this.snackbarService.showError("apps.error"):Sc.openDialog(this.dialog,t)}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredApps){const t=this.showShortList_?Rt.maxShortListElements:Rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredApps.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.appsToShow=this.filteredApps.slice(e,e+t),this.appsMap=new Map,this.appsToShow.forEach(s=>{this.appsMap.set(s.name,s),this.selections.has(s.name)||this.selections.set(s.name,!1)});const o=[];this.selections.forEach((s,a)=>{this.appsMap.has(a)||o.push(a)}),o.forEach(s=>{this.selections.delete(s)})}else this.appsToShow=null,this.selections=new Map;this.dataSource=this.appsToShow,this.refreshAgain&&(this.refreshAgain=!1,setTimeout(()=>Je.refreshCurrentDisplayedData(),2e3))}startChangingAppState(t,e){return this.appsService.changeAppState(Je.getCurrentNodeKey(),t,e).pipe(Ce(i=>(null!=i.status&&this.dataSource.forEach(o=>{o.name===t&&(o.status=i.status,o.detailedStatus=i.detailed_status)}),i)))}startChangingAppAutostart(t,e){return this.appsService.changeAppAutostart(Je.getCurrentNodeKey(),t,e)}changeAppsValRecursively(t,e,i,o=null){if(!t||0===t.length)return setTimeout(()=>Je.refreshCurrentDisplayedData(),50),this.snackbarService.showWarning("apps.operation-unnecessary"),void(o&&o.close());let s;s=e?this.startChangingAppAutostart(t[t.length-1],i):this.startChangingAppState(t[t.length-1],i),this.operationSubscriptionsGroup.push(s.subscribe(()=>{t.pop(),0===t.length?(o&&o.close(),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")):this.changeAppsValRecursively(t,e,i,o)},a=>{a=Kt(a),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),o?o.componentInstance.showDone("confirmation.error-header-text",a.translatableErrorMsg):this.snackbarService.showError(a)}))}}Du.\u0275fac=function(t){return new(t||Du)(F(xo),F(Ln),F(yr),F(Qt),F(on),F(oo),F(ni))},Du.\u0275cmp=qe({type:Du,selectors:[["app-node-app-list"]],inputs:{nodePK:"nodePK",nodeIp:"nodeIp",showOfficialApps:"showOfficialApps",showShortList:"showShortList",apps:"apps"},decls:33,vars:35,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"matTooltip","click"],[1,"dot-outline-white"],[3,"inline",4,"ngIf"],[1,"sortable-column",3,"click"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],[3,"class","matTooltip",4,"ngIf"],["class","red-text",3,"inline","matTooltip",4,"ngIf"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip","click"],["target","_blank","rel","noreferrer nofollow noopener","class","skychat-link",3,"href",4,"ngIf"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip","click",4,"ngIf"],[3,"matTooltip"],[1,"red-text",3,"inline","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[1,"check-part"],[1,"list-row"],[1,"margin-part"],["target","_blank","rel","noreferrer nofollow noopener","class","skychat-link",3,"href","click",4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href","click"],["mat-icon-button","",1,"transparent-button",3,"matTooltip"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),V(2,Uee,3,3,"span",2),V(3,Wee,3,3,"span",2),V(4,Kee,5,4,"div",3),x(),D(5,"div",4)(6,"div",5),V(7,Zee,3,4,"mat-icon",6),V(8,Xee,2,1,"mat-icon",7),D(9,"mat-menu",8,9)(11,"div",10),ye("click",function(){return e.changeAllSelections(!0)}),E(12),R(13,"translate"),x(),D(14,"div",10),ye("click",function(){return e.changeAllSelections(!1)}),E(15),R(16,"translate"),x(),D(17,"div",11),ye("click",function(){return e.changeStateOfSelected(!0)}),E(18),R(19,"translate"),x(),D(20,"div",11),ye("click",function(){return e.changeStateOfSelected(!1)}),E(21),R(22,"translate"),x(),D(23,"div",11),ye("click",function(){return e.changeAutostartOfSelected(!0)}),E(24),R(25,"translate"),x(),D(26,"div",11),ye("click",function(){return e.changeAutostartOfSelected(!1)}),E(27),R(28,"translate"),x()()(),V(29,Qee,1,7,"app-paginator",12),x()(),V(30,gte,41,38,"div",13),V(31,Mte,7,4,"div",13),V(32,wte,1,7,"app-paginator",12)),2&t&&(M("ngClass",Be(33,xte,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),c(2),M("ngIf",e.showShortList_&&e.showOfficialApps),c(1),M("ngIf",e.showShortList_&&!e.showOfficialApps),c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),M("ngIf",e.allAppsForType&&e.allAppsForType.length>0),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("overlapTrigger",!1),c(3),ce(" ",B(13,21,"selection.select-all")," "),c(3),ce(" ",B(16,23,"selection.unselect-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(19,25,"selection.start-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(22,27,"selection.stop-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(25,29,"selection.enable-autostart-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(28,31,"selection.disable-autostart-all")," "),c(2),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("ngIf",!e.dataSource||0===e.dataSource.length),c(1),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[Rn,bi,It,$r,rl,yn,vi,vu,_a,yu,ma,hl,Fs,xt],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:150px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.skychat-link[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.skychat-link[_ngcontent-%COMP%] .big-action-button[_ngcontent-%COMP%]{margin-right:5px}"]});class ap{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.apps=t.apps,this.nodeIp=t.ip})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function Cte(n,t){1&n&&xe(0,"app-transport-list",1),2&n&&M("node",z().node)("showShortList",!1)}ap.\u0275fac=function(t){return new(t||ap)},ap.\u0275cmp=qe({type:ap,selectors:[["app-apps"]],decls:2,vars:10,consts:[[3,"showOfficialApps","apps","showShortList","nodePK","nodeIp"]],template:function(t,e){1&t&&xe(0,"app-node-app-list",0)(1,"app-node-app-list",0),2&t&&(M("showOfficialApps",!0)("apps",e.apps)("showShortList",!0)("nodePK",e.nodePK)("nodeIp",e.nodeIp),c(1),M("showOfficialApps",!1)("apps",e.apps)("showShortList",!0)("nodePK",e.nodePK)("nodeIp",e.nodeIp))},dependencies:[Du]});class lp{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>this.node=t)}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function kte(n,t){if(1&n&&xe(0,"app-route-list",1),2&n){const e=z();M("routes",e.routes)("showShortList",!1)("nodePK",e.nodePK)}}lp.\u0275fac=function(t){return new(t||lp)},lp.\u0275cmp=qe({type:lp,selectors:[["app-all-transports"]],decls:1,vars:1,consts:[[3,"node","showShortList",4,"ngIf"],[3,"node","showShortList"]],template:function(t,e){1&t&&V(0,Cte,1,2,"app-transport-list",0),2&t&&M("ngIf",e.node)},dependencies:[It,Cu]});class cp{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.routes=t.routes})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function Ste(n,t){if(1&n&&xe(0,"app-node-app-list",1),2&n){const e=z();M("apps",e.apps)("showShortList",!1)("nodePK",e.nodePK)}}cp.\u0275fac=function(t){return new(t||cp)},cp.\u0275cmp=qe({type:cp,selectors:[["app-all-routes"]],decls:1,vars:1,consts:[[3,"routes","showShortList","nodePK",4,"ngIf"],[3,"routes","showShortList","nodePK"]],template:function(t,e){1&t&&V(0,kte,1,3,"app-route-list",0),2&t&&M("ngIf",e.routes)},dependencies:[It,ku]});class dp{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.apps=t.apps})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}dp.\u0275fac=function(t){return new(t||dp)},dp.\u0275cmp=qe({type:dp,selectors:[["app-all-apps"]],decls:1,vars:1,consts:[[3,"apps","showShortList","nodePK",4,"ngIf"],[3,"apps","showShortList","nodePK"]],template:function(t,e){1&t&&V(0,Ste,1,3,"app-node-app-list",0),2&t&&M("ngIf",e.apps)},dependencies:[It,Du]});const Dte=["button"],Tte=["firstInput"],Lte=function(n){return{"element-disabled":n}};class pl{constructor(t,e,i,o,s){this.dialogRef=t,this.data=e,this.formBuilder=i,this.snackbarService=o,this.routeService=s}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(pl,i)}ngOnInit(){this.form=this.formBuilder.group({min:[this.data.minHops,Vt.compose([Vt.required,Vt.maxLength(3),Vt.pattern("^[0-9]+$")])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.routeService.setMinHops(this.data.nodePk,Number.parseInt(this.form.get("min").value,10)).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(t){this.dialogRef.close(!0),this.snackbarService.showDone("router-config.done")}onError(t){this.button.showError(),this.operationSubscription=null,t=Kt(t),this.snackbarService.showError(t)}}pl.\u0275fac=function(t){return new(t||pl)(F(Nn),F(Ti),F(Cr),F(on),F(gc))},pl.\u0275cmp=qe({type:pl,selectors:[["app-router-config"]],viewQuery:function(t,e){if(1&t&&(ft(Dte,5),ft(Tte,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:21,vars:22,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","min","maxlength","3","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),E(3),R(4,"translate"),x(),D(5,"form",2)(6,"mat-form-field")(7,"div",3)(8,"label",4),E(9),R(10,"translate"),x(),xe(11,"input",5,6),x(),D(13,"mat-error")(14,"span"),E(15),R(16,"translate"),x()()()(),D(17,"app-button",7,8),ye("action",function(){return e.save()}),E(19),R(20,"translate"),x()()),2&t&&(M("headline",B(1,10,"router-config.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(3),oe(B(4,12,"router-config.info")),c(2),M("formGroup",e.form)("ngClass",Be(20,Lte,e.disableDismiss)),c(4),oe(B(10,14,"router-config.min-hops")),c(6),oe(B(16,16,"router-config.min-hops-error")),c(2),M("disabled",!e.form.valid),c(2),ce(" ",B(20,18,"router-config.save-config-button")," "))},dependencies:[Rn,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,ri,En,xt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]});const Ete=["button"],Ite=["firstInput"],Pte=function(n){return{"element-disabled":n}};class Dc{constructor(t,e,i,o,s,a){this.dialogRef=t,this.data=e,this.formBuilder=i,this.snackbarService=o,this.nodeService=s,this.dialog=a}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(Dc,i)}ngOnInit(){this.form=this.formBuilder.group({address:[this.data.currentAddress,Vt.compose([Vt.minLength(20),Vt.maxLength(40)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}startSaving(){if(this.form.valid&&!this.operationSubscription)if(this.form.get("address").value)this.finishSaving();else{const e=Wt.createConfirmationDialog(this.dialog,"rewards-address-config.empty-warning");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishSaving()})}}finishSaving(){this.button.showLoading();const t=this.form.get("address").value;let e=this.nodeService.setRewardsAddress(this.data.nodePk,t);t||(e=this.nodeService.deleteRewardsAddress(this.data.nodePk)),this.operationSubscription=e.subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(t){this.dialogRef.close(!0),this.snackbarService.showDone("rewards-address-config.done")}onError(t){this.button.showError(),this.operationSubscription=null,t=Kt(t),this.snackbarService.showError(t)}}Dc.\u0275fac=function(t){return new(t||Dc)(F(Nn),F(Ti),F(Cr),F(on),F(so),F(Ln))},Dc.\u0275cmp=qe({type:Dc,selectors:[["app-rewards-address-config"]],viewQuery:function(t,e){if(1&t&&(ft(Ete,5),ft(Ite,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:25,vars:25,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],["href","https://github.com/skycoin/skywire/blob/master/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","40","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1)(3,"span"),E(4),R(5,"translate"),x(),D(6,"a",2),E(7),R(8,"translate"),x()(),D(9,"form",3)(10,"mat-form-field")(11,"div",4)(12,"label",5),E(13),R(14,"translate"),x(),xe(15,"input",6,7),x(),D(17,"mat-error")(18,"span"),E(19),R(20,"translate"),x()()()(),D(21,"app-button",8,9),ye("action",function(){return e.startSaving()}),E(23),R(24,"translate"),x()()),2&t&&(M("headline",B(1,11,"rewards-address-config.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(4),ce("",B(5,13,"rewards-address-config.info")," "),c(3),ce(" ",B(8,15,"rewards-address-config.more-info-link")," "),c(2),M("formGroup",e.form)("ngClass",Be(23,Pte,e.disableDismiss)),c(4),oe(B(14,17,"rewards-address-config.address")),c(6),oe(B(20,19,"rewards-address-config.address-error")),c(2),M("disabled",!e.form.valid),c(2),ce(" ",B(24,21,"rewards-address-config.save-config-button")," "))},dependencies:[Rn,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,ri,En,xt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]});class up{constructor(t){this.clipboardService=t,this.copyEvent=new ht,this.errorEvent=new ht,this.value=""}ngOnDestroy(){this.copyEvent.complete(),this.errorEvent.complete()}copyToClipboard(){this.clipboardService.copy(this.value)?this.copyEvent.emit(this.value):this.errorEvent.emit()}}function Ote(n,t){if(1&n&&(Ue(0),xe(1,"app-truncated-text",3),D(2,"mat-icon",4),E(3,"filter_none"),x(),We()),2&n){const e=z();c(1),M("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.text),c(1),M("inline",!0)}}function Ate(n,t){if(1&n&&(D(0,"div",5)(1,"div",6),E(2),x(),D(3,"mat-icon",4),E(4,"filter_none"),x()()),2&n){const e=z();c(2),oe(e.text),c(1),M("inline",!0)}}up.\u0275fac=function(t){return new(t||up)(F(As))},up.\u0275dir=Ke({type:up,selectors:[["","clipboard",""]],hostBindings:function(t,e){1&t&&ye("click",function(){return e.copyToClipboard()})},inputs:{value:["clipboard","value"]},outputs:{copyEvent:"copyEvent",errorEvent:"errorEvent"}});const Fte=function(n){return{text:n}},Rte=function(){return{"tooltip-word-break":!0}};class Tc{constructor(t){this.snackbarService=t,this.short=!1,this.shortSimple=!1,this.shortTextLength=5}onCopyToClipboardClicked(){this.snackbarService.showDone("copy.copied")}}Tc.\u0275fac=function(t){return new(t||Tc)(F(on))},Tc.\u0275cmp=qe({type:Tc,selectors:[["app-copy-to-clipboard-text"]],inputs:{text:"text",short:"short",shortSimple:"shortSimple",shortTextLength:"shortTextLength"},decls:4,vars:11,consts:[[1,"wrapper","highlight-internal-icon",3,"clipboard","matTooltip","matTooltipClass","copyEvent"],[4,"ngIf"],["class","d-flex",4,"ngIf"],[1,"text-margin",3,"short","showTooltip","shortTextLength","text"],[3,"inline"],[1,"d-flex"],[1,"single-line","text-margin"]],template:function(t,e){1&t&&(D(0,"div",0),ye("copyEvent",function(){return e.onCopyToClipboardClicked()}),R(1,"translate"),V(2,Ote,4,5,"ng-container",1),V(3,Ate,5,2,"div",2),x()),2&t&&(M("clipboard",e.text)("matTooltip",Ct(1,5,e.short||e.shortSimple?"copy.tooltip-with-text":"copy.tooltip",Be(8,Fte,e.text)))("matTooltipClass",Un(10,Rte)),c(2),M("ngIf",!e.shortSimple),c(1),M("ngIf",e.shortSimple))},dependencies:[It,yn,vi,up,mu,xt],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] .text-margin[_ngcontent-%COMP%]{margin-right:5px}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.6rem;-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline!important}']});var Nte=N(6149);const Yte=["chart"];class Rs{constructor(t){this.height=100,this.animated=!1,this.min=void 0,this.max=void 0,this.differ=t.find([]).create(null)}ngAfterViewInit(){this.chart=new Nte.Chart(this.chartElement.nativeElement,{type:"line",data:{labels:Array.from(Array(this.data.length).keys()),datasets:[{data:this.data,backgroundColor:["rgba(10, 15, 22, 0.4)"],borderColor:["rgba(10, 15, 22, 0.4)"],borderWidth:1}]},options:{maintainAspectRatio:!1,events:[],legend:{display:!1},tooltips:{enabled:!1},scales:{yAxes:[{display:!1,ticks:{suggestedMin:0}}],xAxes:[{display:!1}]},elements:{point:{radius:0}},layout:{padding:{left:0,right:0,top:Rs.topInternalMargin,bottom:0}}}}),void 0!==this.min&&void 0!==this.max&&(this.updateMinAndMax(),this.chart.update(0))}ngDoCheck(){this.differ.diff(this.data)&&this.chart&&(void 0!==this.min&&void 0!==this.max&&this.updateMinAndMax(),this.animated?this.chart.update():this.chart.update(0))}ngOnDestroy(){this.chart&&this.chart.destroy()}updateMinAndMax(){this.chart.options.scales={yAxes:[{display:!1,ticks:{min:this.min,max:this.max}}],xAxes:[{display:!1}]}}}Rs.topInternalMargin=5,Rs.\u0275fac=function(t){return new(t||Rs)(F(Vh))},Rs.\u0275cmp=qe({type:Rs,selectors:[["app-line-chart"]],viewQuery:function(t,e){if(1&t&&ft(Yte,5),2&t){let i;nt(i=it())&&(e.chartElement=i.first)}},inputs:{data:"data",height:"height",animated:"animated",min:"min",max:"max"},decls:3,vars:2,consts:[[1,"chart-container"],["chart",""]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"canvas",null,1),x()),2&t&&di("height: "+e.height+"px;")},styles:[".chart-container[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden;border-radius:10px}"]});const lP=function(){return{showValue:!0}},cP=function(){return{showUnit:!0}};function Bte(n,t){if(1&n&&(D(0,"div",1),xe(1,"app-line-chart",2),D(2,"div",3)(3,"span",4),E(4),R(5,"translate"),x(),D(6,"span",5)(7,"span",6),E(8),R(9,"autoScale"),x(),D(10,"span",7),E(11),R(12,"autoScale"),x()()()()),2&n){const e=z();c(1),M("data",e.trafficData.sentHistory),c(3),oe(B(5,4,"common.uploaded")),c(4),oe(Ct(9,6,e.trafficData.totalSent,Un(12,lP))),c(3),oe(Ct(12,9,e.trafficData.totalSent,Un(13,cP)))}}function Hte(n,t){if(1&n&&(D(0,"div",1),xe(1,"app-line-chart",2),D(2,"div",3)(3,"span",4),E(4),R(5,"translate"),x(),D(6,"span",5)(7,"span",6),E(8),R(9,"autoScale"),x(),D(10,"span",7),E(11),R(12,"autoScale"),x()()()()),2&n){const e=z();c(1),M("data",e.trafficData.receivedHistory),c(3),oe(B(5,4,"common.downloaded")),c(4),oe(Ct(9,6,e.trafficData.totalReceived,Un(12,lP))),c(3),oe(Ct(12,9,e.trafficData.totalReceived,Un(13,cP)))}}class hp{}function Vte(n,t){if(1&n&&(D(0,"span",4)(1,"span",5),E(2),R(3,"translate"),x(),xe(4,"app-copy-to-clipboard-text",9),x()),2&n){const e=z(2);c(2),ce("",B(3,2,"node.details.node-info.public-ip")," "),c(2),Dn("text",e.node.publicIp)}}function jte(n,t){if(1&n&&(D(0,"span",4)(1,"span",5),E(2),R(3,"translate"),x(),xe(4,"app-copy-to-clipboard-text",9),x()),2&n){const e=z(2);c(2),ce("",B(3,2,"node.details.node-info.ip")," "),c(2),Dn("text",e.node.ip)}}function zte(n,t){if(1&n&&(Ue(0),xe(1,"app-copy-to-clipboard-text",9),We()),2&n){const e=z(2);c(1),Dn("text",e.node.dmsgServerPk)}}function Ute(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"node.details.node-info.no-dmsg-server")," "))}function Wte(n,t){if(1&n&&(D(0,"span",4)(1,"span",5),E(2),R(3,"translate"),x(),E(4),x()),2&n){const e=z(2);c(2),ce("",B(3,2,"node.details.node-info.skybian-version")," "),c(2),ce(" ",e.node.skybianBuildVersion," ")}}hp.\u0275fac=function(t){return new(t||hp)},hp.\u0275cmp=qe({type:hp,selectors:[["app-charts"]],inputs:{trafficData:"trafficData"},decls:2,vars:2,consts:[["class","small-rounded-elevated-box chart",4,"ngIf"],[1,"small-rounded-elevated-box","chart"],[3,"data"],[1,"info"],[1,"text"],[1,"rate"],[1,"value"],[1,"unit"]],template:function(t,e){1&t&&(V(0,Bte,13,14,"div",0),V(1,Hte,13,14,"div",0)),2&t&&(M("ngIf",e.trafficData),c(1),M("ngIf",e.trafficData))},dependencies:[It,Rs,xt,rr],styles:[".chart[_ngcontent-%COMP%]{position:relative;margin-bottom:20px}.chart[_ngcontent-%COMP%]:last-child{margin-bottom:10px}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;display:flex;justify-content:space-between;align-items:flex-end;padding:10px;width:100%}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#f8f9f9}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.text[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .unit[_ngcontent-%COMP%]{font-size:.8rem;padding-left:5px}"]});const aM=function(n){return{time:n}};function $te(n,t){if(1&n&&(D(0,"mat-icon",16),R(1,"translate"),E(2," info "),x()),2&n){const e=z(2);M("inline",!0)("matTooltip",Ct(1,2,"node.details.node-info.time.minutes",Be(5,aM,e.timeOnline.totalMinutes)))}}function Gte(n,t){if(1&n&&(Ue(0),xe(1,"app-copy-to-clipboard-text",18),D(2,"a",19)(3,"mat-icon",20),R(4,"translate"),E(5," open_in_browser "),x()(),We()),2&n){const e=z(2);c(1),Dn("text",e.node.rewardsAddress),c(1),M("href","https://explorer.skycoin.com/app/address/"+e.node.rewardsAddress,Oo),c(1),M("inline",!0)("matTooltip",B(4,4,"node.details.rewards-info.open-in-explorer"))}}function qte(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),D(3,"mat-icon",16),R(4,"translate"),E(5,"info"),x(),We()),2&n&&(c(1),ce(" ",B(2,3,"node.details.rewards-info.not-registered")," "),c(2),M("inline",!0)("matTooltip",B(4,5,"node.details.rewards-info.not-registered-info")))}function Kte(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"node.details.rewards-info.change-address-button")," "))}function Zte(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"node.details.rewards-info.set-address-button")," "))}function Xte(n,t){if(1&n){const e=et();D(0,"div",1)(1,"div",2)(2,"span",3),E(3),R(4,"translate"),x(),D(5,"span",4)(6,"span",5),E(7),R(8,"translate"),x(),D(9,"span",6),ye("click",function(){return Pe(e),Oe(z().showEditLabelDialog())}),D(10,"span",7),E(11),x(),D(12,"mat-icon",8),E(13,"edit"),x()()(),D(14,"span",4)(15,"span",5),E(16),R(17,"translate"),x(),xe(18,"app-copy-to-clipboard-text",9),x(),D(19,"span",4)(20,"span",5),E(21),R(22,"translate"),x(),E(23),R(24,"translate"),x(),V(25,Vte,5,4,"span",10),V(26,jte,5,4,"span",10),D(27,"span",4)(28,"span",5),E(29),R(30,"translate"),x(),V(31,zte,2,1,"ng-container",11),V(32,Ute,3,3,"ng-container",11),x(),D(33,"span",4)(34,"span",5),E(35),R(36,"translate"),x(),E(37),R(38,"translate"),x(),D(39,"span",4)(40,"span",5),E(41),R(42,"translate"),x(),E(43),R(44,"translate"),x(),D(45,"span",4)(46,"span",5),E(47),R(48,"translate"),x(),E(49),R(50,"translate"),x(),V(51,Wte,5,4,"span",10),D(52,"span",4)(53,"span",5),E(54),R(55,"translate"),x(),E(56),R(57,"translate"),V(58,$te,3,7,"mat-icon",12),x()(),xe(59,"div",13),D(60,"div",2)(61,"span",3),E(62),R(63,"translate"),x(),D(64,"span",4)(65,"span",5),E(66),R(67,"translate"),x(),V(68,Gte,6,6,"ng-container",11),V(69,qte,6,7,"ng-container",11),x(),D(70,"div",14)(71,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeRewardsAddressConfig())}),V(72,Kte,3,3,"ng-container",11),V(73,Zte,3,3,"ng-container",11),x()()(),xe(74,"div",13),D(75,"div",2)(76,"span",3),E(77),R(78,"translate"),x(),D(79,"span",4)(80,"span",5),E(81),R(82,"translate"),x(),E(83),R(84,"translate"),D(85,"mat-icon",16),R(86,"translate"),E(87,"info"),x()(),D(88,"div",14)(89,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeTransportsConfig())}),E(90),R(91,"translate"),x()()(),xe(92,"div",13),D(93,"div",2)(94,"span",3),E(95),R(96,"translate"),x(),D(97,"span",4)(98,"span",5),E(99),R(100,"translate"),x(),E(101),x(),D(102,"div",14)(103,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeRouterConfig())}),E(104),R(105,"translate"),x()()(),xe(106,"div",13),D(107,"div",2)(108,"span",3),E(109),R(110,"translate"),x(),D(111,"span",4)(112,"span",5),E(113),R(114,"translate"),x(),xe(115,"i"),E(116),R(117,"translate"),x()(),xe(118,"div",13),D(119,"div",2)(120,"span",3),E(121),R(122,"translate"),x(),xe(123,"app-charts",17),x()()}if(2&n){const e=z();c(3),oe(B(4,49,"node.details.node-info.title")),c(4),ce("",B(8,51,"node.details.node-info.label")," "),c(4),oe(e.node.label),c(1),M("inline",!0),c(4),ce("",B(17,53,"node.details.node-info.public-key")," "),c(2),Dn("text",e.node.localPk),c(3),ce("",B(22,55,"node.details.node-info.symmetic-nat")," "),c(2),ce(" ",B(24,57,e.node.isSymmeticNat?"common.yes":"common.no")," "),c(2),M("ngIf",!e.node.isSymmeticNat),c(1),M("ngIf",e.node.ip),c(3),ce("",B(30,59,"node.details.node-info.dmsg-server")," "),c(2),M("ngIf",e.hasDmsgServer()),c(1),M("ngIf",!e.hasDmsgServer()),c(3),ce("",B(36,61,"node.details.node-info.ping")," "),c(2),ce(" ",Ct(38,63,"common.time-in-ms",Be(107,aM,e.node.roundTripPing))," "),c(4),ce("",B(42,66,"node.details.node-info.node-version")," "),c(2),ce(" ",e.node.version?e.node.version:B(44,68,"common.unknown")," "),c(4),ce("",B(48,70,"node.details.node-info.build-type")," "),c(2),ce(" ",e.node.buildTag?e.node.buildTag:B(50,72,"node.details.node-info.unknown-build")," "),c(2),M("ngIf",e.node.skybianBuildVersion),c(3),ce("",B(55,74,"node.details.node-info.time.title")," "),c(2),ce(" ",Ct(57,76,"node.details.node-info.time."+e.timeOnline.translationVarName,Be(109,aM,e.timeOnline.elapsedTime))," "),c(2),M("ngIf",e.timeOnline.totalMinutes>60),c(4),oe(B(63,79,"node.details.rewards-info.title")),c(4),ce("",B(67,81,"node.details.rewards-info.rewards-address")," "),c(2),M("ngIf",e.node.rewardsAddress),c(1),M("ngIf",!e.node.rewardsAddress),c(2),M("forDarkBackground",!0),c(1),M("ngIf",e.node.rewardsAddress),c(1),M("ngIf",!e.node.rewardsAddress),c(4),oe(B(78,83,"node.details.transports-info.title")),c(4),ce("",B(82,85,"node.details.transports-info.autoconnect")," "),c(2),ce(" ",B(84,87,"node.details.transports-info."+(e.node.autoconnectTransports?"enabled":"disabled"))," "),c(2),M("inline",!0)("matTooltip",B(86,89,"node.details.transports-info.autoconnect-info")),c(4),M("forDarkBackground",!0),c(1),ce(" ",B(91,91,"node.details.transports-info."+(e.node.autoconnectTransports?"disable":"enable")+"-button")," "),c(5),oe(B(96,93,"node.details.router-info.title")),c(4),ce("",B(100,95,"node.details.router-info.min-hops")," "),c(2),ce(" ",e.node.minHops," "),c(2),M("forDarkBackground",!0),c(1),ce(" ",B(105,97,"node.details.router-info.change-config-button")," "),c(5),ce("",B(110,99,"node.details.node-health.title")," "),c(4),oe(B(114,101,"node.details.node-health.uptime-tracker")),c(2),eo(e.nodeHealthClass),c(1),ce(" ",B(117,103,e.nodeHealthText)," "),c(5),oe(B(122,105,"node.details.node-traffic-data")),c(2),M("trafficData",e.trafficData)}}class Tu{constructor(t,e,i,o){this.dialog=t,this.storageService=e,this.transportService=i,this.snackbarService=o}set nodeInfo(t){this.node=t,this.timeOnline=Rg.getElapsedTime(t.secondsOnline),t.health&&t.health.servicesHealth===ls.Healthy?(this.nodeHealthText="node.statuses.online",this.nodeHealthClass="dot-green"):t.health&&t.health.servicesHealth===ls.Unhealthy?(this.nodeHealthText="node.statuses.partially-online",this.nodeHealthClass="dot-yellow blinking"):t.health&&t.health.servicesHealth===ls.Connecting?(this.nodeHealthText="node.statuses.connecting",this.nodeHealthClass="dot-outline-gray"):(this.nodeHealthText="node.statuses.unknown",this.nodeHealthClass="dot-outline-gray")}ngOnDestroy(){this.autoconnectSubscription&&this.autoconnectSubscription.unsubscribe()}showEditLabelDialog(){let t=this.storageService.getLabelInfo(this.node.localPk);t||(t={id:this.node.localPk,label:"",identifiedElementType:Mr.Node}),pa.openDialog(this.dialog,t).afterClosed().subscribe(e=>{e&&Je.refreshCurrentDisplayedData()})}changeRewardsAddressConfig(){Dc.openDialog(this.dialog,{nodePk:this.node.localPk,currentAddress:this.node.rewardsAddress}).afterClosed().subscribe(e=>{e&&Je.refreshCurrentDisplayedData()})}changeRouterConfig(){pl.openDialog(this.dialog,{nodePk:this.node.localPk,minHops:this.node.minHops}).afterClosed().subscribe(e=>{e&&Je.refreshCurrentDisplayedData()})}hasDmsgServer(){return!(!this.node||0===this.node.dmsgServerPk.replace(/0/g,"").length)}changeTransportsConfig(){const t=Wt.createConfirmationDialog(this.dialog,this.node.autoconnectTransports?"node.details.transports-info.disable-confirmation":"node.details.transports-info.enable-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing();const e=this.transportService.changeAutoconnectSetting(this.node.localPk,!this.node.autoconnectTransports);this.autoconnectSubscription=e.subscribe(()=>{t.close(),this.snackbarService.showDone(this.node.autoconnectTransports?"node.details.transports-info.disable-done":"node.details.transports-info.enable-done"),Je.refreshCurrentDisplayedData()},i=>{i=Kt(i),t.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)})})}}Tu.\u0275fac=function(t){return new(t||Tu)(F(Ln),F(ni),F(fl),F(on))},Tu.\u0275cmp=qe({type:Tu,selectors:[["app-node-info-content"]],inputs:{nodeInfo:"nodeInfo",trafficData:"trafficData"},decls:1,vars:1,consts:[["class","font-smaller d-flex flex-column mt-4.5",4,"ngIf"],[1,"font-smaller","d-flex","flex-column","mt-4.5"],[1,"d-flex","flex-column"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"highlight-internal-icon",3,"click"],[1,"text-with-small-right-margin"],[1,"edit-icon",3,"inline"],[3,"text"],["class","info-line",4,"ngIf"],[4,"ngIf"],[3,"inline","matTooltip",4,"ngIf"],[1,"separator"],[1,"config-button-container"],["color","primary",3,"forDarkBackground","action"],[3,"inline","matTooltip"],[1,"d-flex","flex-column","justify-content-end","mt-3",3,"trafficData"],[1,"text-with-right-margin",3,"text"],["target","_blank","rel","noreferrer nofollow noopener",3,"href"],[1,"link-icon","transparent-button",3,"inline","matTooltip"]],template:function(t,e){1&t&&V(0,Xte,124,111,"div",0),2&t&&M("ngIf",e.node)},dependencies:[It,yn,vi,Tc,ri,hp,xt],styles:[".section-title[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;text-transform:uppercase}.info-line[_ngcontent-%COMP%]{word-break:break-word;margin-top:7px}.info-line[_ngcontent-%COMP%] .text-with-right-margin[_ngcontent-%COMP%]{margin-right:5px}.info-line[_ngcontent-%COMP%] .text-with-small-right-margin[_ngcontent-%COMP%]{margin-right:3px}.info-line[_ngcontent-%COMP%] .link-icon[_ngcontent-%COMP%]{font-size:20px;line-height:1;color:#fff!important;cursor:pointer}.info-line[_ngcontent-%COMP%] .edit-icon[_ngcontent-%COMP%]{display:inline!important}.info-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px;-webkit-user-select:none;user-select:none}.info-line[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:7px}.info-line[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{opacity:.75}.separator[_ngcontent-%COMP%]{width:100%;height:0px;margin:1rem 0;border-top:1px solid rgba(255,255,255,.15)}.config-button-container[_ngcontent-%COMP%]{margin-top:10px;margin-left:-4px}"]});class fp{ngOnInit(){this.nodeSubscription=Je.currentNode.subscribe(t=>{this.node=t}),this.trafficDataSubscription=Je.currentTrafficData.subscribe(t=>{this.trafficData=t})}ngOnDestroy(){this.nodeSubscription.unsubscribe(),this.trafficDataSubscription.unsubscribe()}}fp.\u0275fac=function(t){return new(t||fp)},fp.\u0275cmp=qe({type:fp,selectors:[["app-node-info"]],decls:1,vars:2,consts:[[3,"nodeInfo","trafficData"]],template:function(t,e){1&t&&xe(0,"app-node-info-content",0),2&t&&M("nodeInfo",e.node)("trafficData",e.trafficData)},dependencies:[Tu]});const Qte=function(){return["settings.title","labels.title"]};class pp{constructor(t){this.router=t,this.tabsData=[],this.returnButtonText="settings.title",this.tabsData=[{icon:"view_headline",label:"labels.list-title",linkParts:[]}]}performAction(t){null===t&&this.router.navigate(["settings"])}}pp.\u0275fac=function(t){return new(t||pp)(F(Qt))},pp.\u0275cmp=qe({type:pp,selectors:[["app-all-labels"]],decls:5,vars:6,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","showUpdateButton","returnText","optionSelected"],[1,"content","col-12"],[3,"showShortList"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"app-top-bar",2),ye("optionSelected",function(o){return e.performAction(o)}),x()(),D(3,"div",3),xe(4,"app-label-list",4),x()()),2&t&&(c(2),M("titleParts",Un(5,Qte))("tabsData",e.tabsData)("showUpdateButton",!1)("returnText",e.returnButtonText),c(2),M("showShortList",!1))},dependencies:[cs,xu]});const Jte=["firstInput"];function ene(n,t){1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),oe(B(3,1,"vpn.server-list.add-server-dialog.pk-length-error")))}function tne(n,t){1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.add-server-dialog.pk-chars-error")))}class Lc{constructor(t,e,i,o,s,a,l,d){this.dialogRef=t,this.data=e,this.formBuilder=i,this.dialog=o,this.router=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=d}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.mediumModalWidth,t.open(Lc,i)}ngOnInit(){this.form=this.formBuilder.group({pk:["",Vt.compose([Vt.required,Vt.minLength(66),Vt.maxLength(66),Vt.pattern("^[0-9a-fA-F]+$")])],password:[""],name:[""],note:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){if(!this.form.valid)return;const t={pk:this.form.get("pk").value,name:this.form.get("name").value,note:this.form.get("note").value};fn.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,this.dialogRef,this.data,null,null,t,this.form.get("password").value)}}Lc.\u0275fac=function(t){return new(t||Lc)(F(Nn),F(Ti),F(Cr),F(Ln),F(Qt),F(jo),F(Vo),F(on))},Lc.\u0275cmp=qe({type:Lc,selectors:[["app-add-vpn-server"]],viewQuery:function(t,e){if(1&t&&ft(Jte,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:35,vars:23,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","pk","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],["formControlName","password","type","password","matInput",""],["formControlName","name","maxlength","100","matInput",""],["formControlName","note","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"disabled","action"]],template:function(t,e){if(1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x(),D(10,"mat-error"),V(11,ene,4,3,"ng-container",6),x(),V(12,tne,3,3,"ng-template",null,7,ws),x(),D(14,"mat-form-field")(15,"div",2)(16,"label",3),E(17),R(18,"translate"),x(),xe(19,"input",8),x()(),D(20,"mat-form-field")(21,"div",2)(22,"label",3),E(23),R(24,"translate"),x(),xe(25,"input",9),x()(),D(26,"mat-form-field")(27,"div",2)(28,"label",3),E(29),R(30,"translate"),x(),xe(31,"input",10),x()()(),D(32,"app-button",11),ye("action",function(){return e.process()}),E(33),R(34,"translate"),x()()),2&t){const i=ci(13);M("headline",B(1,11,"vpn.server-list.add-server-dialog.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,13,"vpn.server-list.add-server-dialog.pk-label")),c(5),M("ngIf",!e.form.get("pk").hasError("pattern"))("ngIfElse",i),c(6),oe(B(18,15,"vpn.server-list.add-server-dialog.password-label")),c(6),oe(B(24,17,"vpn.server-list.add-server-dialog.name-label")),c(6),oe(B(30,19,"vpn.server-list.add-server-dialog.note-label")),c(3),M("disabled",!e.form.valid),c(1),ce(" ",B(34,21,"vpn.server-list.add-server-dialog.use-server-button")," ")}},dependencies:[It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,ri,En,xt]});class nne{constructor(){this.countryCode="ZZ"}}class Lu{constructor(t){this.http=t,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type=vpn"}getServers(){return this.servers?Ge(this.servers):this.http.get(this.discoveryServiceUrl).pipe(np(t=>t.pipe(Di(4e3))),Ce(t=>{const e=[];return t.forEach(i=>{const o=new nne,s=i.address.split(":");2===s.length&&(o.pk=s[0],o.location="",i.geo&&(i.geo.country&&(o.countryCode=i.geo.country),i.geo.region&&(o.location=i.geo.region)),o.name=s[0],o.note="",e.push(o))}),this.servers=e,e}))}}function ine(n,t){1&n&&Jo(0)}Lu.\u0275fac=function(t){return new(t||Lu)(we(Gl))},Lu.\u0275prov=Ye({token:Lu,factory:Lu.\u0275fac,providedIn:"root"});const dP=function(){return["vpn.title"]};function rne(n,t){if(1&n&&(D(0,"div",3)(1,"div",4),xe(2,"app-top-bar",5),D(3,"div",6)(4,"div",7)(5,"div",8),V(6,ine,1,0,"ng-container",9),x()()()(),xe(7,"app-loading-indicator",10),x()),2&n){const e=z(),i=ci(2);c(2),M("titleParts",Un(6,dP))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(4),M("ngTemplateOutlet",i)}}function one(n,t){1&n&&(D(0,"div",22)(1,"span"),E(2),R(3,"translate"),x()()),2&n&&(c(2),oe(B(3,1,"vpn.server-list.tabs.public")))}const Bg=function(n,t){return["/vpn",n,"servers",t,1]};function sne(n,t){if(1&n&&(D(0,"a",23)(1,"span"),E(2),R(3,"translate"),x()()),2&n){const e=z(2);M("routerLink",cn(4,Bg,e.currentLocalPk,e.lists.Public)),c(2),oe(B(3,2,"vpn.server-list.tabs.public"))}}function ane(n,t){1&n&&(D(0,"div",22)(1,"span"),E(2),R(3,"translate"),x()()),2&n&&(c(2),oe(B(3,1,"vpn.server-list.tabs.history")))}function lne(n,t){if(1&n&&(D(0,"a",23)(1,"span"),E(2),R(3,"translate"),x()()),2&n){const e=z(2);M("routerLink",cn(4,Bg,e.currentLocalPk,e.lists.History)),c(2),oe(B(3,2,"vpn.server-list.tabs.history"))}}function cne(n,t){1&n&&(D(0,"div",22)(1,"span"),E(2),R(3,"translate"),x()()),2&n&&(c(2),oe(B(3,1,"vpn.server-list.tabs.favorites")))}function dne(n,t){if(1&n&&(D(0,"a",23)(1,"span"),E(2),R(3,"translate"),x()()),2&n){const e=z(2);M("routerLink",cn(4,Bg,e.currentLocalPk,e.lists.Favorites)),c(2),oe(B(3,2,"vpn.server-list.tabs.favorites"))}}function une(n,t){1&n&&(D(0,"div",22)(1,"span"),E(2),R(3,"translate"),x()()),2&n&&(c(2),oe(B(3,1,"vpn.server-list.tabs.blocked")))}function hne(n,t){if(1&n&&(D(0,"a",23)(1,"span"),E(2),R(3,"translate"),x()()),2&n){const e=z(2);M("routerLink",cn(4,Bg,e.currentLocalPk,e.lists.Blocked)),c(2),oe(B(3,2,"vpn.server-list.tabs.blocked"))}}function fne(n,t){1&n&&xe(0,"br")}function pne(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function mne(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function _ne(n,t){if(1&n&&(D(0,"div",28)(1,"span"),E(2),R(3,"translate"),x(),V(4,pne,3,3,"ng-container",21),V(5,mne,2,1,"ng-container",21),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function gne(n,t){if(1&n){const e=et();D(0,"div",25),ye("click",function(){return Pe(e),Oe(z(3).dataFilterer.removeFilters())}),D(1,"div",26)(2,"mat-icon",19),E(3,"search"),x(),E(4),R(5,"translate"),x(),V(6,_ne,6,5,"div",27),x()}if(2&n){const e=z(3);c(2),M("inline",!0),c(2),ce(" ",B(5,3,"vpn.server-list.current-filters"),""),c(2),M("ngForOf",e.dataFilterer.currentFiltersTexts)}}function bne(n,t){if(1&n&&(Ue(0),V(1,fne,1,0,"br",21),V(2,gne,7,5,"div",24),We()),2&n){const e=z(2);c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0)}}const vne=function(n){return{deactivated:n}};function yne(n,t){if(1&n){const e=et();D(0,"div",11)(1,"div",12)(2,"div",13)(3,"div",14),V(4,one,4,3,"div",15),V(5,sne,4,7,"a",16),V(6,ane,4,3,"div",15),V(7,lne,4,7,"a",16),V(8,cne,4,3,"div",15),V(9,dne,4,7,"a",16),V(10,une,4,3,"div",15),V(11,hne,4,7,"a",16),x()()()(),D(12,"div",17)(13,"div",12)(14,"div",13)(15,"div",14)(16,"div",18),ye("click",function(){Pe(e);const o=z();return Oe(o.dataFilterer?o.dataFilterer.changeFilters():null)}),R(17,"translate"),D(18,"span")(19,"mat-icon",19),E(20,"search"),x()()()()()()(),D(21,"div",20)(22,"div",12)(23,"div",13)(24,"div",14)(25,"div",18),ye("click",function(){return Pe(e),Oe(z().enterManually())}),R(26,"translate"),D(27,"span")(28,"mat-icon",19),E(29,"add"),x()()()()()()(),V(30,bne,3,2,"ng-container",21)}if(2&n){const e=z();c(4),M("ngIf",e.currentList===e.lists.Public),c(1),M("ngIf",e.currentList!==e.lists.Public),c(1),M("ngIf",e.currentList===e.lists.History),c(1),M("ngIf",e.currentList!==e.lists.History),c(1),M("ngIf",e.currentList===e.lists.Favorites),c(1),M("ngIf",e.currentList!==e.lists.Favorites),c(1),M("ngIf",e.currentList===e.lists.Blocked),c(1),M("ngIf",e.currentList!==e.lists.Blocked),c(1),M("ngClass",Be(18,vne,e.loading)),c(4),M("matTooltip",B(17,14,"filters.filter-info")),c(3),M("inline",!0),c(6),M("matTooltip",B(26,16,"vpn.server-list.add-manually-info")),c(3),M("inline",!0),c(2),M("ngIf",e.dataFilterer)}}function Mne(n,t){1&n&&Jo(0)}function wne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(5);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function xne(n,t){if(1&n){const e=et();D(0,"th",50),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.dateSortData))}),R(1,"translate"),D(2,"div",43)(3,"div",44),E(4),R(5,"translate"),x(),V(6,wne,2,2,"mat-icon",41),x()()}if(2&n){const e=z(4);M("matTooltip",B(1,3,"vpn.server-list.date-info")),c(4),ce(" ",B(5,5,"vpn.server-list.date-small-table-label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.dateSortData)}}function Cne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function kne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function Sne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function Dne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function Tne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function Lne(n,t){if(1&n&&(D(0,"td",64),E(1),R(2,"date"),x()),2&n){const e=z().$implicit;c(1),ce(" ",Ct(2,1,e.lastUsed,"yyyy/MM/dd, H:mm a")," ")}}function Ene(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),ce(" ",e.location," ")}}function Ine(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"vpn.server-list.unknown")," "))}const Pne=function(n,t){return{custom:n,original:t}};function One(n,t){if(1&n&&(D(0,"mat-icon",65),ye("click",function(i){return i.stopPropagation()}),R(1,"translate"),E(2,"info_outline"),x()),2&n){const e=z().$implicit,i=z(4);M("inline",!0)("matTooltip",Ct(1,2,i.getNoteVar(e),cn(5,Pne,e.personalNote,e.note)))}}const Ane=function(n){return{"selectable click-effect":n}};function Fne(n,t){if(1&n){const e=et();D(0,"tr",51),ye("click",function(){const s=Pe(e).$implicit,a=z(4);return Oe(a.currentList!==a.lists.Blocked?a.selectServer(s):null)}),V(1,Lne,3,4,"td",52),D(2,"td",53)(3,"div",54),xe(4,"div",55),x()(),D(5,"td",56),xe(6,"app-vpn-server-name",57),x(),D(7,"td",58),V(8,Ene,2,1,"ng-container",21),V(9,Ine,3,3,"ng-container",21),x(),D(10,"td",59)(11,"app-copy-to-clipboard-text",60),ye("click",function(o){return o.stopPropagation()}),x()(),D(12,"td",61),V(13,One,3,8,"mat-icon",62),x(),D(14,"td",48)(15,"button",63),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),Oe(l.openOptions(a))}),R(16,"translate"),D(17,"mat-icon",19),E(18,"settings"),x()()()()}if(2&n){const e=t.$implicit,i=z(4);M("ngClass",Be(23,Ane,i.currentList!==i.lists.Blocked)),c(1),M("ngIf",i.currentList===i.lists.History),c(3),di("background-image: url('assets/img/big-flags/"+e.countryCode.toLocaleLowerCase()+".png');"),M("matTooltip",i.getCountryName(e.countryCode)),c(2),M("isCurrentServer",i.currentServer&&e.pk===i.currentServer.pk)("isFavorite",e.flag===i.serverFlags.Favorite&&i.currentList!==i.lists.Favorites)("isBlocked",e.flag===i.serverFlags.Blocked&&i.currentList!==i.lists.Blocked)("isInHistory",e.inHistory&&i.currentList!==i.lists.History)("hasPassword",e.usedWithPassword)("name",e.name)("pk",e.pk)("customName",e.customName)("defaultName","vpn.server-list.none"),c(2),M("ngIf",e.location),c(1),M("ngIf",!e.location),c(2),M("shortSimple",!0)("text",e.pk),c(2),M("ngIf",e.note||e.personalNote),c(2),M("matTooltip",B(16,21,"vpn.server-options.tooltip")),c(2),M("inline",!0)}}const Rne=function(n,t){return{"public-pk-column":n,"history-pk-column":t}};function Nne(n,t){if(1&n){const e=et();D(0,"table",38)(1,"tr"),V(2,xne,7,7,"th",39),D(3,"th",40),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.countrySortData))}),R(4,"translate"),D(5,"mat-icon",19),E(6,"flag"),x(),V(7,Cne,2,2,"mat-icon",41),x(),D(8,"th",42),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.nameSortData))}),D(9,"div",43)(10,"div",44),E(11),R(12,"translate"),x(),V(13,kne,2,2,"mat-icon",41),x()(),D(14,"th",45),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.locationSortData))}),D(15,"div",43)(16,"div",44),E(17),R(18,"translate"),x(),V(19,Sne,2,2,"mat-icon",41),x()(),D(20,"th",46),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.pkSortData))}),R(21,"translate"),D(22,"div",43)(23,"div",44),E(24),R(25,"translate"),x(),V(26,Dne,2,2,"mat-icon",41),x()(),D(27,"th",47),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.noteSortData))}),R(28,"translate"),D(29,"div",43)(30,"mat-icon",19),E(31,"info_outline"),x(),V(32,Tne,2,2,"mat-icon",41),x()(),xe(33,"th",48),x(),V(34,Fne,19,25,"tr",49),x()}if(2&n){const e=z(3);c(2),M("ngIf",e.currentList===e.lists.History),c(1),M("matTooltip",B(4,16,"vpn.server-list.country-info")),c(2),M("inline",!0),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.countrySortData),c(4),ce(" ",B(12,18,"vpn.server-list.name-small-table-label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.nameSortData),c(4),ce(" ",B(18,20,"vpn.server-list.location-small-table-label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.locationSortData),c(1),M("ngClass",cn(28,Rne,e.currentList===e.lists.Public,e.currentList===e.lists.History))("matTooltip",B(21,22,"vpn.server-list.public-key-info")),c(4),ce(" ",B(25,24,"vpn.server-list.public-key-small-table-label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.pkSortData),c(1),M("matTooltip",B(28,26,"vpn.server-list.note-info")),c(3),M("inline",!0),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.noteSortData),c(2),M("ngForOf",e.dataSource)}}function Yne(n,t){if(1&n&&(D(0,"div",35)(1,"div",36),V(2,Nne,35,31,"table",37),x()()),2&n){const e=z(2);c(2),M("ngIf",e.dataSource.length>0)}}const Bne=function(n,t){return["/vpn",n,"servers",t]};function Hne(n,t){if(1&n&&xe(0,"app-paginator",66),2&n){const e=z(2);M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",cn(4,Bne,e.currentLocalPk,e.currentList))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Vne(n,t){1&n&&(D(0,"span",70),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.empty-discovery")))}function jne(n,t){1&n&&(D(0,"span",70),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.empty-history")))}function zne(n,t){1&n&&(D(0,"span",70),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.empty-favorites")))}function Une(n,t){1&n&&(D(0,"span",70),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.empty-blocked")))}function Wne(n,t){1&n&&(D(0,"span",70),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.empty-with-filter")))}function $ne(n,t){if(1&n&&(D(0,"div",35)(1,"div",67)(2,"mat-icon",68),E(3,"warning"),x(),V(4,Vne,3,3,"span",69),V(5,jne,3,3,"span",69),V(6,zne,3,3,"span",69),V(7,Une,3,3,"span",69),V(8,Wne,3,3,"span",69),x()()),2&n){const e=z(2);c(2),M("inline",!0),c(2),M("ngIf",0===e.allServers.length&&e.currentList===e.lists.Public),c(1),M("ngIf",0===e.allServers.length&&e.currentList===e.lists.History),c(1),M("ngIf",0===e.allServers.length&&e.currentList===e.lists.Favorites),c(1),M("ngIf",0===e.allServers.length&&e.currentList===e.lists.Blocked),c(1),M("ngIf",0!==e.allServers.length)}}const Gne=function(n){return{"mb-3":n}};function qne(n,t){if(1&n&&(D(0,"div",29)(1,"div",30),xe(2,"app-top-bar",5),x(),D(3,"div",31)(4,"div",7)(5,"div",32),V(6,Mne,1,0,"ng-container",9),x(),V(7,Yne,3,1,"div",33),V(8,Hne,1,7,"app-paginator",34),V(9,$ne,9,6,"div",33),x()()()),2&n){const e=z(),i=ci(2);c(2),M("titleParts",Un(10,dP))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(3),M("ngClass",Be(11,Gne,!e.dataFilterer.currentFiltersTexts||e.dataFilterer.currentFiltersTexts.length<1)),c(1),M("ngTemplateOutlet",i),c(1),M("ngIf",0!==e.dataSource.length),c(1),M("ngIf",e.numberOfPages>1),c(1),M("ngIf",0===e.dataSource.length)}}var Vi=(()=>(function(n){n.Public="public",n.History="history",n.Favorites="favorites",n.Blocked="blocked"}(Vi||(Vi={})),Vi))();class Eu{constructor(t,e,i,o,s,a,l,d,w){this.dialog=t,this.router=e,this.translateService=i,this.route=o,this.vpnClientDiscoveryService=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=d,this.storageService=w,this.maxFullListElements=50,this.dateSortData=new Yn(["lastUsed"],"vpn.server-list.date-small-table-label",Jt.NumberReversed),this.countrySortData=new Yn(["countryName"],"vpn.server-list.country-small-table-label",Jt.Text),this.nameSortData=new Yn(["name"],"vpn.server-list.name-small-table-label",Jt.Text),this.locationSortData=new Yn(["location"],"vpn.server-list.location-small-table-label",Jt.Text),this.pkSortData=new Yn(["pk"],"vpn.server-list.public-key-small-table-label",Jt.Text),this.noteSortData=new Yn(["note"],"vpn.server-list.note-small-table-label",Jt.Text),this.loading=!0,this.loadingBackendData=!0,this.tabsData=fn.vpnTabsData,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.currentList=Vi.Public,this.vpnRunning=!1,this.serverFlags=Wn,this.lists=Vi,this.initialLoadStarted=!1,this.navigationsSubscription=o.paramMap.subscribe(P=>{if(P.has("type")?P.get("type")===Vi.Favorites?(this.currentList=Vi.Favorites,this.listId="vfs"):P.get("type")===Vi.Blocked?(this.currentList=Vi.Blocked,this.listId="vbs"):P.get("type")===Vi.History?(this.currentList=Vi.History,this.listId="vhs"):(this.currentList=Vi.Public,this.listId="vps"):(this.currentList=Vi.Public,this.listId="vps"),fn.setDefaultTabForServerList(this.currentList),P.has("key")&&(this.currentLocalPk=P.get("key"),fn.changeCurrentPk(this.currentLocalPk),this.tabsData=fn.vpnTabsData),P.has("page")){let Y=Number.parseInt(P.get("page"),10);(isNaN(Y)||Y<1)&&(Y=1),this.currentPageInUrl=Y,this.recalculateElementsToShow()}this.initialLoadStarted||(this.initialLoadStarted=!0,this.loadData())}),this.currentServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(P=>this.currentServer=P),this.backendDataSubscription=this.vpnClientService.backendState.subscribe(P=>{P&&(this.loadingBackendData=!1,this.vpnRunning=P.vpnClientAppData.running)})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.currentServerSubscription.unsubscribe(),this.backendDataSubscription.unsubscribe(),this.dataSortedSubscription&&this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription&&this.dataFiltererSubscription.unsubscribe(),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataFilterer&&this.dataFilterer.dispose(),this.dataSorter&&this.dataSorter.dispose()}enterManually(){Lc.openDialog(this.dialog,this.currentLocalPk)}getNoteVar(t){return t.note&&t.personalNote?"vpn.server-list.notes-info":!t.note&&t.personalNote?t.personalNote:t.note}selectServer(t){const e=this.vpnSavedDataService.getSavedVersion(t.pk,!0);if(this.snackbarService.closeCurrentIfTemporaryError(),e&&e.flag===Wn.Blocked)this.snackbarService.showError("vpn.starting-blocked-server-error",{},!0);else{if(this.currentServer&&this.currentServer.pk===t.pk){if(this.vpnRunning)this.snackbarService.showWarning("vpn.server-change.already-selected-warning");else{const i=Wt.createConfirmationDialog(this.dialog,"vpn.server-change.start-same-server-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.vpnClientService.start(),fn.redirectAfterServerChange(this.router,null,this.currentLocalPk)})}return}if(e&&e.usedWithPassword)return void ul.openDialog(this.dialog,!0).afterClosed().subscribe(i=>{i&&this.makeServerChange(t,"-"===i?null:i.substr(1))});this.makeServerChange(t,null)}}makeServerChange(t,e){fn.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,null,this.currentLocalPk,t.originalLocalData,t.originalDiscoveryData,null,e)}openOptions(t){let e=this.vpnSavedDataService.getSavedVersion(t.pk,!0);e||(e=this.vpnSavedDataService.processFromDiscovery(t.originalDiscoveryData)),e?fn.openServerOptions(e,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe(i=>{i&&this.processAllServers()}):this.snackbarService.showError("vpn.unexpedted-error")}loadData(){if(this.currentList===Vi.Public)this.dataSubscription=this.vpnClientDiscoveryService.getServers().subscribe(t=>{this.allServers=t.map(e=>({countryCode:e.countryCode,countryName:this.getCountryName(e.countryCode),name:e.name,customName:null,location:e.location,pk:e.pk,note:e.note,personalNote:null,originalDiscoveryData:e})),this.vpnSavedDataService.updateFromDiscovery(t),this.loading=!1,this.processAllServers()});else{let t;t=this.currentList===Vi.History?this.vpnSavedDataService.history:this.currentList===Vi.Favorites?this.vpnSavedDataService.favorites:this.vpnSavedDataService.blocked,this.dataSubscription=t.subscribe(e=>{const i=[];e.forEach(o=>{i.push({countryCode:o.countryCode,countryName:this.getCountryName(o.countryCode),name:o.name,customName:null,location:o.location,pk:o.pk,note:o.note,personalNote:null,lastUsed:o.lastUsed,inHistory:o.inHistory,flag:o.flag,originalLocalData:o})}),this.allServers=i,this.loading=!1,this.processAllServers()})}}processAllServers(){this.fillFilterPropertiesArray();const t=new Set;this.allServers.forEach((d,w)=>{t.add(d.countryCode);const P=this.vpnSavedDataService.getSavedVersion(d.pk,0===w);d.customName=P?P.customName:null,d.personalNote=P?P.personalNote:null,d.inHistory=!!P&&P.inHistory,d.flag=P?P.flag:Wn.None,d.enteredManually=!!P&&P.enteredManually,d.usedWithPassword=!!P&&P.usedWithPassword});let e=[];t.forEach(d=>{e.push({label:this.getCountryName(d),value:d,image:"/assets/img/big-flags/"+d.toLowerCase()+".png"})}),e.sort((d,w)=>d.label.localeCompare(w.label)),e=[{label:"vpn.server-list.filter-dialog.country-options.any",value:""}].concat(e),this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.country",keyNameInElementsArray:"countryCode",type:Xn.Select,printableLabelsForValues:e,printableLabelGeneralSettings:{defaultImage:"/assets/img/big-flags/unknown.png",imageWidth:20,imageHeight:15}}].concat(this.filterProperties);const o=[];let s,a,l;this.currentList===Vi.Public?(o.push(this.countrySortData),o.push(this.nameSortData),o.push(this.locationSortData),o.push(this.pkSortData),o.push(this.noteSortData),s=0,a=1):(this.currentList===Vi.History&&o.push(this.dateSortData),o.push(this.countrySortData),o.push(this.nameSortData),o.push(this.locationSortData),o.push(this.pkSortData),o.push(this.noteSortData),s=this.currentList===Vi.History?0:1,a=this.currentList===Vi.History?2:3),this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,o,s,this.listId),this.dataSorter.setTieBreakerColumnIndex(a),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new gu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(d=>{this.filteredServers=d,this.dataSorter.setData(this.filteredServers)}),l=this.currentList===Vi.Public?this.allServers.filter(d=>d.flag!==Wn.Blocked):this.allServers,this.dataFilterer.setData(l)}fillFilterPropertiesArray(){this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.name",keyNameInElementsArray:"name",secondaryKeyNameInElementsArray:"customName",type:Xn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.location",keyNameInElementsArray:"location",type:Xn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.public-key",keyNameInElementsArray:"pk",type:Xn.TextInput,maxlength:100}]}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredServers){const t=this.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredServers.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.serversToShow=this.filteredServers.slice(e,e+t)}else this.serversToShow=null;this.dataSource=this.serversToShow}getCountryName(t){return ba[t.toUpperCase()]?ba[t.toUpperCase()]:t}}function Zne(n){const{subscriber:t,counter:e,period:i}=n;t.next(e),this.schedule({subscriber:t,counter:e+1,period:i},i)}Eu.\u0275fac=function(t){return new(t||Eu)(F(Ln),F(Qt),F(oo),F(yr),F(Lu),F(jo),F(Vo),F(on),F(ni))},Eu.\u0275cmp=qe({type:Eu,selectors:[["app-vpn-server-list"]],decls:4,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["topPart",""],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[1,"loading-top-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"main-container"],[1,"width-limiter"],[1,"center-container","mt-4.5"],[4,"ngTemplateOutlet"],[1,"h-100","loading-indicator"],[1,"option-bar-container"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","allow-overflow"],[1,"option-bar"],["class","text-option selected",4,"ngIf"],["class","text-option",3,"routerLink",4,"ngIf"],[1,"option-bar-container","option-bar-margin",3,"ngClass"],[1,"icon-option",3,"matTooltip","click"],[3,"inline"],[1,"option-bar-container","option-bar-margin"],[4,"ngIf"],[1,"text-option","selected"],[1,"text-option",3,"routerLink"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"transparent-50"],["class","item",4,"ngFor","ngForOf"],[1,"item"],[1,"row"],[1,"col-12"],[1,"col-12","vpn-table-container"],[1,"center-container","mt-4.5",3,"ngClass"],["class","rounded-elevated-box",4,"ngIf"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["class","responsive-table-translucid d-none d-md-table","cellspacing","0","cellpadding","0",4,"ngIf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],["class","sortable-column date-column click-effect",3,"matTooltip","click",4,"ngIf"],[1,"sortable-column","flag-column","center","click-effect",3,"matTooltip","click"],[3,"inline",4,"ngIf"],[1,"sortable-column","name-column","click-effect",3,"click"],[1,"header-container"],[1,"header-text"],[1,"sortable-column","location-column","click-effect",3,"click"],[1,"sortable-column","pk-column","click-effect",3,"ngClass","matTooltip","click"],[1,"sortable-column","note-column","center","click-effect",3,"matTooltip","click"],[1,"actions"],[3,"ngClass","click",4,"ngFor","ngForOf"],[1,"sortable-column","date-column","click-effect",3,"matTooltip","click"],[3,"ngClass","click"],["class","date-column",4,"ngIf"],[1,"flag-column","icon-fixer"],[1,"flag"],[3,"matTooltip"],[1,"name-column"],[3,"isCurrentServer","isFavorite","isBlocked","isInHistory","hasPassword","name","pk","customName","defaultName"],[1,"location-column"],[1,"pk-column","history-pk-column"],[1,"d-inline-block","w-100",3,"shortSimple","text","click"],[1,"center","note-column"],["class","note-icon",3,"inline","matTooltip","click",4,"ngIf"],["mat-button","",1,"big-action-button","transparent-button","vpn-small-button",3,"matTooltip","click"],[1,"date-column"],[1,"note-icon",3,"inline","matTooltip","click"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(V(0,rne,8,7,"div",0),V(1,yne,31,20,"ng-template",null,1,ws),V(3,qne,10,13,"div",2)),2&t&&(M("ngIf",e.loading||e.loadingBackendData),c(3),M("ngIf",!e.loading&&!e.loadingBackendData))},styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .note-column[_ngcontent-%COMP%], .pk-column[_ngcontent-%COMP%], .location-column[_ngcontent-%COMP%], .name-column[_ngcontent-%COMP%], .date-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.center-container[_ngcontent-%COMP%]{text-align:center}.center-container[_ngcontent-%COMP%] app-paginator[_ngcontent-%COMP%]{display:inline-block}.loading-top-container[_ngcontent-%COMP%]{z-index:1}.loading-indicator[_ngcontent-%COMP%]{padding-top:30px;padding-bottom:20px}.deactivated[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}.option-bar-container[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .allow-overflow[_ngcontent-%COMP%]{overflow:visible}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%]{display:flex;margin:-17px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{height:55px;line-height:55px;cursor:pointer;color:#fff;text-decoration:none;-webkit-user-select:none;user-select:none}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover, .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.2)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%]{transform:scale(.95)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .text-option[_ngcontent-%COMP%]{padding:0 40px;font-size:1rem}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .icon-option[_ngcontent-%COMP%]{width:55px;font-size:24px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:rgba(0,0,0,.36);cursor:unset!important}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.6)}.option-bar-margin[_ngcontent-%COMP%]{margin-left:10px}.filter-label[_ngcontent-%COMP%]{font-size:.7rem;display:inline-block;padding:5px 10px;margin-bottom:7px}.filter-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}table[_ngcontent-%COMP%]{width:100%}tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 5px!important;font-size:12px!important;font-weight:400!important}tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding-left:5px!important;padding-right:5px!important}.date-column[_ngcontent-%COMP%]{width:150px}.name-column[_ngcontent-%COMP%]{max-width:0;width:20%}.location-column[_ngcontent-%COMP%]{max-width:0;min-width:72px}.pk-column[_ngcontent-%COMP%]{max-width:0;width:25%}.history-pk-column[_ngcontent-%COMP%]{width:20%!important}.icon-fixer[_ngcontent-%COMP%]{line-height:0px}.note-column[_ngcontent-%COMP%]{max-width:0;width:3%;min-width:60px}.note-column[_ngcontent-%COMP%] .note-icon[_ngcontent-%COMP%]{opacity:.55;font-size:16px!important;display:inline}.flag-column[_ngcontent-%COMP%]{width:1px;line-height:0px}.actions[_ngcontent-%COMP%]{width:1px}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}.flag[_ngcontent-%COMP%]{width:20px;height:15px;display:inline-block;margin-right:5px;background-image:url(/assets/img/big-flags/unknown.png);background-size:contain}.flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.center[_ngcontent-%COMP%]{text-align:center}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]});const mp=function(n,t){return{"small-text-icon":n,"big-text-icon":t}};function Xne(n,t){if(1&n&&(D(0,"mat-icon",4),R(1,"translate"),E(2,"done"),x()),2&n){const e=z();M("ngClass",cn(5,mp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.selected-info"))}}function Qne(n,t){if(1&n&&(D(0,"mat-icon",5),R(1,"translate"),E(2,"clear"),x()),2&n){const e=z();M("ngClass",cn(5,mp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.blocked-info"))}}function Jne(n,t){if(1&n&&(D(0,"mat-icon",6),R(1,"translate"),E(2,"star"),x()),2&n){const e=z();M("ngClass",cn(5,mp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.favorite-info"))}}function eie(n,t){if(1&n&&(D(0,"mat-icon",4),R(1,"translate"),E(2,"history"),x()),2&n){const e=z();M("ngClass",cn(5,mp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.history-info"))}}function tie(n,t){if(1&n&&(D(0,"mat-icon",4),R(1,"translate"),E(2,"lock_outlined"),x()),2&n){const e=z();M("ngClass",cn(5,mp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.has-password-info"))}}function nie(n,t){if(1&n&&(Ue(0),E(1),D(2,"mat-icon",7),E(3,"fiber_manual_record"),x(),E(4),We()),2&n){const e=z();c(1),ce(" ",e.customName," "),c(1),M("inline",!0),c(2),ce(" ",e.name,"\n")}}function iie(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z();c(1),oe(e.customName)}}function rie(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z();c(1),oe(e.name)}}function oie(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z();c(1),oe(B(2,1,e.defaultName))}}class Iu{constructor(){this.isCurrentServer=!1,this.isFavorite=!1,this.isBlocked=!1,this.isInHistory=!1,this.hasPassword=!1,this.name="",this.customName="",this.pk="",this.defaultName="",this.adjustIconsForBigText=!1}}Iu.\u0275fac=function(t){return new(t||Iu)},Iu.\u0275cmp=qe({type:Iu,selectors:[["app-vpn-server-name"]],inputs:{isCurrentServer:"isCurrentServer",isFavorite:"isFavorite",isBlocked:"isBlocked",isInHistory:"isInHistory",hasPassword:"hasPassword",name:"name",customName:"customName",pk:"pk",defaultName:"defaultName",adjustIconsForBigText:"adjustIconsForBigText"},decls:9,vars:9,consts:[["class","server-condition-icon",3,"ngClass","inline","matTooltip",4,"ngIf"],["class","server-condition-icon red-clear-text",3,"ngClass","inline","matTooltip",4,"ngIf"],["class","server-condition-icon yellow-clear-text",3,"ngClass","inline","matTooltip",4,"ngIf"],[4,"ngIf"],[1,"server-condition-icon",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","red-clear-text",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","yellow-clear-text",3,"ngClass","inline","matTooltip"],[1,"name-separator",3,"inline"]],template:function(t,e){1&t&&(V(0,Xne,3,8,"mat-icon",0),V(1,Qne,3,8,"mat-icon",1),V(2,Jne,3,8,"mat-icon",2),V(3,eie,3,8,"mat-icon",0),V(4,tie,3,8,"mat-icon",0),V(5,nie,5,3,"ng-container",3),V(6,iie,2,1,"ng-container",3),V(7,rie,2,1,"ng-container",3),V(8,oie,3,3,"ng-container",3)),2&t&&(M("ngIf",e.isCurrentServer),c(1),M("ngIf",e.isBlocked),c(1),M("ngIf",e.isFavorite),c(1),M("ngIf",e.isInHistory),c(1),M("ngIf",e.hasPassword),c(1),M("ngIf",e.customName&&e.name&&(!e.pk||e.name!==e.pk)),c(1),M("ngIf",(!e.name||e.pk&&e.name===e.pk)&&e.customName),c(1),M("ngIf",e.name&&(!e.pk||e.name!==e.pk)&&!e.customName),c(1),M("ngIf",(!e.name||e.pk&&e.name===e.pk)&&!e.customName))},dependencies:[Rn,It,yn,vi,xt],styles:[".server-condition-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;margin-right:3px;position:relative;width:14px!important;-webkit-user-select:none;user-select:none;cursor:default}.small-text-icon[_ngcontent-%COMP%]{top:2px}.big-text-icon[_ngcontent-%COMP%]{top:0}.name-separator[_ngcontent-%COMP%]{display:inline!important;font-size:8px!important;opacity:.5!important}"]});const uP=function(){return["vpn.title"]};function sie(n,t){if(1&n&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3),x(),xe(3,"app-loading-indicator"),x()),2&n){const e=z();c(2),M("titleParts",Un(5,uP))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function aie(n,t){1&n&&xe(0,"mat-spinner",32),2&n&&M("diameter",40)}function lie(n,t){1&n&&(D(0,"mat-icon",33),E(1,"power_settings_new"),x()),2&n&&M("inline",!0)}function cie(n,t){if(1&n){const e=et();Ue(0),D(1,"div",34),xe(2,"div",35),x(),D(3,"div",36)(4,"div",37),xe(5,"app-vpn-server-name",38),x(),D(6,"div",39),xe(7,"app-copy-to-clipboard-text",40),x()(),D(8,"div",41),xe(9,"div"),x(),D(10,"div",42)(11,"mat-icon",43),ye("click",function(){return Pe(e),Oe(z(3).openServerOptions())}),R(12,"translate"),E(13,"settings"),x()(),We()}if(2&n){const e=z(3);c(2),di("background-image: url('assets/img/big-flags/"+e.currentRemoteServer.countryCode.toLocaleLowerCase()+".png');"),M("matTooltip",e.getCountryName(e.currentRemoteServer.countryCode)),c(3),M("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),c(2),M("shortSimple",!0)("text",e.currentRemoteServer.pk),c(4),M("inline",!0)("matTooltip",B(12,13,"vpn.server-options.tooltip"))}}function die(n,t){1&n&&(Ue(0),D(1,"div",44),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),oe(B(3,1,"vpn.status-page.no-server")))}const uie=function(n,t){return{custom:n,original:t}};function hie(n,t){if(1&n&&(D(0,"div",45)(1,"mat-icon",33),E(2,"info_outline"),x(),E(3),R(4,"translate"),x()),2&n){const e=z(3);c(1),M("inline",!0),c(2),ce(" ",Ct(4,2,e.getNoteVar(),cn(5,uie,e.currentRemoteServer.personalNote,e.currentRemoteServer.note))," ")}}function fie(n,t){if(1&n&&(D(0,"div",46)(1,"mat-icon",33),E(2,"cancel"),x(),E(3),R(4,"translate"),x()),2&n){const e=z(3);c(1),M("inline",!0),c(2),_o(" ",B(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.lastErrorMsg," ")}}const hP=function(n){return{"disabled-button":n}};function pie(n,t){if(1&n){const e=et();D(0,"div",22)(1,"div",11)(2,"div",13),E(3),R(4,"translate"),x(),D(5,"div")(6,"div",23),ye("click",function(){return Pe(e),Oe(z(2).start())}),D(7,"div",24),xe(8,"div",25),x(),D(9,"div",24),xe(10,"div",26),x(),V(11,aie,1,1,"mat-spinner",27),V(12,lie,2,1,"mat-icon",28),x()(),D(13,"div",29),V(14,cie,14,15,"ng-container",18),V(15,die,4,3,"ng-container",18),x(),D(16,"div"),V(17,hie,5,8,"div",30),x(),D(18,"div"),V(19,fie,5,5,"div",31),x()()()}if(2&n){const e=z(2);c(3),oe(B(4,8,"vpn.status-page.start-title")),c(3),M("ngClass",Be(10,hP,e.showBusy)),c(5),M("ngIf",e.showBusy),c(1),M("ngIf",!e.showBusy),c(2),M("ngIf",e.currentRemoteServer),c(1),M("ngIf",!e.currentRemoteServer),c(2),M("ngIf",e.currentRemoteServer&&(e.currentRemoteServer.note||e.currentRemoteServer.personalNote)),c(2),M("ngIf",e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.lastErrorMsg)}}function mie(n,t){if(1&n&&(D(0,"div",77)(1,"mat-icon",33),E(2,"cancel"),x(),E(3),R(4,"translate"),x()),2&n){const e=z(3);c(1),M("inline",!0),c(2),_o(" ",B(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.connectionData.error," ")}}function _ie(n,t){1&n&&(D(0,"div"),xe(1,"mat-spinner",32),x()),2&n&&(c(1),M("diameter",24))}function gie(n,t){1&n&&(D(0,"mat-icon",33),E(1,"power_settings_new"),x()),2&n&&M("inline",!0)}const Pu=function(n){return{showValue:!0,showUnit:!0,showPerSecond:!0,limitDecimals:!0,useBits:n}},fP=function(n){return{showValue:!0,showUnit:!0,showPerSecond:!0,useBits:n}},pP=function(n){return{showValue:!0,showUnit:!0,useBits:n}},Hg=function(n){return{time:n}};function bie(n,t){if(1&n){const e=et();D(0,"div",47)(1,"div",11)(2,"div",48)(3,"div",49)(4,"mat-icon",33),E(5,"timer"),x(),D(6,"span"),E(7),x()()(),D(8,"div",50),E(9),R(10,"translate"),x(),D(11,"div",51)(12,"div",52),E(13),R(14,"translate"),x(),xe(15,"div"),x(),D(16,"div",53),E(17),R(18,"translate"),x(),V(19,mie,5,5,"div",54),D(20,"div",55)(21,"div",56),R(22,"translate"),D(23,"div",57),xe(24,"app-line-chart",58),x(),D(25,"div",59)(26,"div",60)(27,"div",61),E(28),R(29,"autoScale"),x(),xe(30,"div",62),x()(),D(31,"div",59)(32,"div",63)(33,"div",61),E(34),R(35,"autoScale"),x(),xe(36,"div",62),x()(),D(37,"div",59)(38,"div",64)(39,"div",61),E(40),R(41,"autoScale"),x()()(),D(42,"div",65)(43,"mat-icon",66),E(44,"keyboard_backspace"),x(),D(45,"div",67),E(46),R(47,"autoScale"),x(),D(48,"div",68),E(49),R(50,"autoScale"),R(51,"translate"),x()()(),D(52,"div",56),R(53,"translate"),D(54,"div",57),xe(55,"app-line-chart",58),x(),D(56,"div",69)(57,"div",60)(58,"div",61),E(59),R(60,"autoScale"),x(),xe(61,"div",62),x()(),D(62,"div",59)(63,"div",63)(64,"div",61),E(65),R(66,"autoScale"),x(),xe(67,"div",62),x()(),D(68,"div",59)(69,"div",64)(70,"div",61),E(71),R(72,"autoScale"),x()()(),D(73,"div",65)(74,"mat-icon",70),E(75,"keyboard_backspace"),x(),D(76,"div",67),E(77),R(78,"autoScale"),x(),D(79,"div",68),E(80),R(81,"autoScale"),R(82,"translate"),x()()()(),D(83,"div",71)(84,"div",72),R(85,"translate"),D(86,"div",57),xe(87,"app-line-chart",73),x(),D(88,"div",69)(89,"div",60)(90,"div",61),E(91),R(92,"translate"),x(),xe(93,"div",62),x()(),D(94,"div",59)(95,"div",63)(96,"div",61),E(97),R(98,"translate"),x(),xe(99,"div",62),x()(),D(100,"div",59)(101,"div",64)(102,"div",61),E(103),R(104,"translate"),x()()(),D(105,"div",65)(106,"mat-icon",33),E(107,"swap_horiz"),x(),D(108,"div"),E(109),R(110,"translate"),x()()()(),D(111,"div",74),ye("click",function(){return Pe(e),Oe(z(2).stop())}),D(112,"div",75)(113,"div",76),V(114,_ie,2,1,"div",18),V(115,gie,2,1,"mat-icon",28),D(116,"span"),E(117),R(118,"translate"),x()()()()()()}if(2&n){const e=z(2);c(4),M("inline",!0),c(3),oe(e.connectionTimeString),c(2),oe(B(10,58,"vpn.connection-info.state-title")),c(4),oe(B(14,60,e.currentStateText)),c(2),eo("state-line "+e.currentStateLineClass),c(2),oe(B(18,62,e.currentStateText+"-info")),c(2),M("ngIf",e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.connectionData&&e.backendState.vpnClientAppData.connectionData.error),c(2),M("matTooltip",B(22,64,"vpn.status-page.upload-info")),c(3),M("animated",!1)("data",e.sentHistory)("min",e.minUploadInGraph)("max",e.maxUploadInGraph),c(4),ce(" ",Ct(29,66,e.maxUploadInGraph,Be(118,Pu,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",Ct(35,69,e.midUploadInGraph,Be(120,Pu,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",Ct(41,72,e.minUploadInGraph,Be(122,Pu,e.showSpeedsInBits))," "),c(3),M("inline",!0),c(3),oe(Ct(47,75,e.uploadSpeed,Be(124,fP,e.showSpeedsInBits))),c(3),_o(" ",Ct(50,78,e.totalUploaded,Be(126,pP,e.showTotalsInBits))," ",B(51,81,"vpn.status-page.total-data-label")," "),c(3),M("matTooltip",B(53,83,"vpn.status-page.download-info")),c(3),M("animated",!1)("data",e.receivedHistory)("min",e.minDownloadInGraph)("max",e.maxDownloadInGraph),c(4),ce(" ",Ct(60,85,e.maxDownloadInGraph,Be(128,Pu,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",Ct(66,88,e.midDownloadInGraph,Be(130,Pu,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",Ct(72,91,e.minDownloadInGraph,Be(132,Pu,e.showSpeedsInBits))," "),c(3),M("inline",!0),c(3),oe(Ct(78,94,e.downloadSpeed,Be(134,fP,e.showSpeedsInBits))),c(3),_o(" ",Ct(81,97,e.totalDownloaded,Be(136,pP,e.showTotalsInBits))," ",B(82,100,"vpn.status-page.total-data-label")," "),c(4),M("matTooltip",B(85,102,"vpn.status-page.latency-info")),c(3),M("animated",!1)("data",e.latencyHistory)("min",e.minLatencyInGraph)("max",e.maxLatencyInGraph),c(4),ce(" ",Ct(92,104,"common."+e.getLatencyValueString(e.maxLatencyInGraph),Be(138,Hg,e.getPrintableLatency(e.maxLatencyInGraph)))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",Ct(98,107,"common."+e.getLatencyValueString(e.midLatencyInGraph),Be(140,Hg,e.getPrintableLatency(e.midLatencyInGraph)))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",Ct(104,110,"common."+e.getLatencyValueString(e.minLatencyInGraph),Be(142,Hg,e.getPrintableLatency(e.minLatencyInGraph)))," "),c(3),M("inline",!0),c(3),oe(Ct(110,113,"common."+e.getLatencyValueString(e.latency),Be(144,Hg,e.getPrintableLatency(e.latency)))),c(2),M("ngClass",Be(146,hP,e.showBusy)),c(3),M("ngIf",e.showBusy),c(1),M("ngIf",!e.showBusy),c(2),oe(B(118,116,"vpn.status-page.disconnect"))}}function vie(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z(3);c(1),oe(e.currentIp)}}function yie(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"common.unknown")))}function Mie(n,t){1&n&&xe(0,"mat-spinner",32),2&n&&M("diameter",20)}function wie(n,t){1&n&&(D(0,"mat-icon",81),R(1,"translate"),E(2,"warning"),x()),2&n&&M("inline",!0)("matTooltip",B(1,2,"vpn.status-page.data.ip-problem-info"))}function xie(n,t){if(1&n){const e=et();D(0,"mat-icon",82),ye("click",function(){return Pe(e),Oe(z(3).getIp())}),R(1,"translate"),E(2,"refresh"),x()}2&n&&M("inline",!0)("matTooltip",B(1,2,"vpn.status-page.data.ip-refresh-info"))}function Cie(n,t){if(1&n&&(D(0,"div",78),V(1,vie,2,1,"ng-container",18),V(2,yie,3,3,"ng-container",18),V(3,Mie,1,1,"mat-spinner",27),V(4,wie,3,4,"mat-icon",79),V(5,xie,3,4,"mat-icon",80),x()),2&n){const e=z(2);c(1),M("ngIf",e.currentIp),c(1),M("ngIf",!e.currentIp&&!e.loadingCurrentIp),c(1),M("ngIf",e.loadingCurrentIp),c(1),M("ngIf",e.problemGettingIp),c(1),M("ngIf",!e.loadingCurrentIp)}}function kie(n,t){1&n&&(D(0,"div",78),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"vpn.status-page.data.unavailable")," "))}function Sie(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z(3);c(1),oe(e.ipCountry)}}function Die(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"common.unknown")))}function Tie(n,t){1&n&&xe(0,"mat-spinner",32),2&n&&M("diameter",20)}function Lie(n,t){1&n&&(D(0,"mat-icon",81),R(1,"translate"),E(2,"warning"),x()),2&n&&M("inline",!0)("matTooltip",B(1,2,"vpn.status-page.data.ip-country-problem-info"))}function Eie(n,t){if(1&n&&(D(0,"div",78),V(1,Sie,2,1,"ng-container",18),V(2,Die,3,3,"ng-container",18),V(3,Tie,1,1,"mat-spinner",27),V(4,Lie,3,4,"mat-icon",79),x()),2&n){const e=z(2);c(1),M("ngIf",e.ipCountry),c(1),M("ngIf",!e.ipCountry&&!e.loadingCurrentIp),c(1),M("ngIf",e.loadingCurrentIp),c(1),M("ngIf",e.problemGettingIp)}}function Iie(n,t){1&n&&(D(0,"div",78),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"vpn.status-page.data.unavailable")," "))}function Pie(n,t){if(1&n){const e=et();D(0,"div")(1,"div",13),E(2),R(3,"translate"),x(),D(4,"div",78),xe(5,"app-vpn-server-name",83),D(6,"mat-icon",82),ye("click",function(){return Pe(e),Oe(z(2).openServerOptions())}),R(7,"translate"),E(8,"settings"),x()()()}if(2&n){const e=z(2);c(2),oe(B(3,10,"vpn.status-page.data.server")),c(3),M("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("adjustIconsForBigText",!0)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),c(1),M("inline",!0)("matTooltip",B(7,12,"vpn.server-options.tooltip"))}}function Oie(n,t){1&n&&xe(0,"div",15)}function Aie(n,t){if(1&n&&(D(0,"div")(1,"div",13),E(2),R(3,"translate"),x(),D(4,"div",20),E(5),x()()),2&n){const e=z(2);c(2),oe(B(3,2,"vpn.status-page.data.server-note")),c(3),ce(" ",e.currentRemoteServer.personalNote," ")}}function Fie(n,t){1&n&&xe(0,"div",15)}function Rie(n,t){if(1&n&&(D(0,"div")(1,"div",13),E(2),R(3,"translate"),x(),D(4,"div",20),E(5),x()()),2&n){const e=z(2);c(2),oe(B(3,2,"vpn.status-page.data."+(e.currentRemoteServer.personalNote?"original-":"")+"server-note")),c(3),ce(" ",e.currentRemoteServer.note," ")}}function Nie(n,t){1&n&&xe(0,"div",15)}function Yie(n,t){if(1&n&&(D(0,"div")(1,"div",13),E(2),R(3,"translate"),x(),D(4,"div",20),xe(5,"app-copy-to-clipboard-text",21),x()()),2&n){const e=z(2);c(2),oe(B(3,2,"vpn.status-page.data.remote-pk")),c(3),M("text",e.currentRemoteServer.pk)}}function Bie(n,t){1&n&&xe(0,"div",15)}function Hie(n,t){if(1&n&&(D(0,"div",4)(1,"div",5)(2,"div",6),xe(3,"app-top-bar",3),x()(),D(4,"div",7),V(5,pie,20,12,"div",8),V(6,bie,119,148,"div",9),D(7,"div",10)(8,"div",11)(9,"div",12)(10,"div")(11,"div",13),E(12),R(13,"translate"),x(),V(14,Cie,6,5,"div",14),V(15,kie,3,3,"div",14),x(),xe(16,"div",15),D(17,"div")(18,"div",13),E(19),R(20,"translate"),x(),V(21,Eie,5,4,"div",14),V(22,Iie,3,3,"div",14),x(),xe(23,"div",16)(24,"div",17)(25,"div",16),V(26,Pie,9,14,"div",18),V(27,Oie,1,0,"div",19),V(28,Aie,6,4,"div",18),V(29,Fie,1,0,"div",19),V(30,Rie,6,4,"div",18),V(31,Nie,1,0,"div",19),V(32,Yie,6,4,"div",18),V(33,Bie,1,0,"div",19),D(34,"div")(35,"div",13),E(36),R(37,"translate"),x(),D(38,"div",20),xe(39,"app-copy-to-clipboard-text",21),x()()()()()()()),2&n){const e=z();c(3),M("titleParts",Un(29,uP))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(2),M("ngIf",!e.showStarted),c(1),M("ngIf",e.showStarted),c(6),oe(B(13,23,"vpn.status-page.data.ip")),c(2),M("ngIf",e.ipInfoAllowed),c(1),M("ngIf",!e.ipInfoAllowed),c(4),oe(B(20,25,"vpn.status-page.data.country")),c(2),M("ngIf",e.ipInfoAllowed),c(1),M("ngIf",!e.ipInfoAllowed),c(4),M("ngIf",e.showStarted&&e.currentRemoteServer),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer),c(3),oe(B(37,27,"vpn.status-page.data.local-pk")),c(3),M("text",e.currentLocalPk)}}class _p{constructor(t,e,i,o,s,a,l){this.vpnClientService=t,this.vpnSavedDataService=e,this.snackbarService=i,this.translateService=o,this.route=s,this.dialog=a,this.router=l,this.tabsData=fn.vpnTabsData,this.sentHistory=[0,0,0,0,0,0,0,0,0,0],this.receivedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0],this.minUploadInGraph=0,this.midUploadInGraph=0,this.maxUploadInGraph=0,this.minDownloadInGraph=0,this.midDownloadInGraph=0,this.maxDownloadInGraph=0,this.minLatencyInGraph=0,this.midLatencyInGraph=0,this.maxLatencyInGraph=0,this.graphsTopInternalMargin=Rs.topInternalMargin,this.connectionTimeString="00:00:00",this.calculatedSegs=-1,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0,this.showSpeedsInBits=!0,this.showTotalsInBits=!1,this.loading=!0,this.showStartedLastValue=!1,this.showStarted=!1,this.lastAppState=null,this.showBusy=!1,this.stopRequested=!1,this.loadingCurrentIp=!0,this.problemGettingIp=!1,this.lastIpRefresDate=0,this.serverFlags=Wn,this.ipInfoAllowed=this.vpnSavedDataService.getCheckIpSetting();const d=this.vpnSavedDataService.getDataUnitsSetting();d===ao.OnlyBits?(this.showSpeedsInBits=!0,this.showTotalsInBits=!0):d===ao.OnlyBytes?(this.showSpeedsInBits=!1,this.showTotalsInBits=!1):(this.showSpeedsInBits=!0,this.showTotalsInBits=!1)}ngOnInit(){this.navigationsSubscription=this.route.paramMap.subscribe(t=>{t.has("key")&&(this.currentLocalPk=t.get("key"),fn.changeCurrentPk(this.currentLocalPk),this.tabsData=fn.vpnTabsData),setTimeout(()=>this.navigationsSubscription.unsubscribe()),this.dataSubscription=this.vpnClientService.backendState.subscribe(e=>{if(e&&e.serviceState!==ir.PerformingInitialCheck){const i=!this.backendState;if(this.backendState=e,(i||this.lastAppState===Mn.Running&&e.vpnClientAppData.appState!==Mn.Running||this.lastAppState!==Mn.Running&&e.vpnClientAppData.appState===Mn.Running)&&this.getIp(!0),this.showStarted=e.vpnClientAppData.running||e.vpnClientAppData.appState!==Mn.Stopped,this.showStartedLastValue!==this.showStarted){for(let o=0;o<10;o++)this.receivedHistory[o]=0,this.sentHistory[o]=0,this.latencyHistory[o]=0;this.updateGraphLimits(),this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0}if(this.lastAppState=e.vpnClientAppData.appState,this.showStartedLastValue=this.showStarted,this.stopRequested?this.showStarted||(this.stopRequested=!1,this.showBusy=e.busy):this.showBusy=e.busy,e.vpnClientAppData.connectionData){for(let o=0;o<10;o++)this.receivedHistory[o]=e.vpnClientAppData.connectionData.downloadSpeedHistory[o],this.sentHistory[o]=e.vpnClientAppData.connectionData.uploadSpeedHistory[o],this.latencyHistory[o]=e.vpnClientAppData.connectionData.latencyHistory[o];this.updateGraphLimits(),this.uploadSpeed=e.vpnClientAppData.connectionData.uploadSpeed,this.downloadSpeed=e.vpnClientAppData.connectionData.downloadSpeed,this.totalUploaded=e.vpnClientAppData.connectionData.totalUploaded,this.totalDownloaded=e.vpnClientAppData.connectionData.totalDownloaded,this.latency=e.vpnClientAppData.connectionData.latency}e.vpnClientAppData.running&&e.vpnClientAppData.appState===Mn.Running&&e.vpnClientAppData.connectionData&&e.vpnClientAppData.connectionData.connectionDuration?(-1===this.calculatedSegs||e.vpnClientAppData.connectionData.connectionDuration>this.calculatedSegs+2||e.vpnClientAppData.connectionData.connectionDuration(e.add(t.schedule(Zne,n,{subscriber:e,counter:0,period:n})),e))}(1e3).subscribe(()=>{this.calculatedSegs+=1,this.refreshConnectionTimeString()})):this.timeUpdateSubscription&&(this.timeUpdateSubscription.unsubscribe(),this.timeUpdateSubscription=null,this.calculatedSegs=-1,this.connectionTimeString="00:00:00"),this.loading=!1}}),this.currentRemoteServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(e=>{this.currentRemoteServer=e})})}refreshConnectionTimeString(){const t=this.calculatedSegs%60,e=Math.floor(this.calculatedSegs/60),i=e%60,o=Math.floor(e/60);this.connectionTimeString=String(o).padStart(2,"0")+":"+String(i).padStart(2,"0")+":"+String(t).padStart(2,"0")}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.currentRemoteServerSubscription.unsubscribe(),this.closeOperationSubscription(),this.ipSubscription&&this.ipSubscription.unsubscribe(),this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}start(){if(!this.currentRemoteServer)return this.router.navigate(["vpn",this.currentLocalPk,"servers"]),void setTimeout(()=>this.snackbarService.showWarning("vpn.status-page.select-server-warning"),100);this.currentRemoteServer.flag!==Wn.Blocked?(this.showBusy=!0,this.vpnClientService.start()):this.snackbarService.showError("vpn.starting-blocked-server-error")}stop(){if(!this.backendState.vpnClientAppData.killswitch)return void this.finishStoppingVpn();const t=Wt.createConfirmationDialog(this.dialog,"vpn.status-page.disconnect-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.finishStoppingVpn()})}finishStoppingVpn(){this.stopRequested=!0,this.showBusy=!0,this.vpnClientService.stop()}openServerOptions(){fn.openServerOptions(this.currentRemoteServer,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe()}getCountryName(t){return ba[t.toUpperCase()]?ba[t.toUpperCase()]:t}getNoteVar(){return this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?"vpn.server-list.notes-info":!this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?this.currentRemoteServer.personalNote:this.currentRemoteServer.note}getLatencyValueString(t){return fn.getLatencyValueString(t)}getPrintableLatency(t){return fn.getPrintableLatency(t)}get currentStateText(){return this.backendState.vpnClientAppData.appState===Mn.Stopped?"vpn.connection-info.state-disconnected":this.backendState.vpnClientAppData.appState===Mn.Connecting?"vpn.connection-info.state-connecting":this.backendState.vpnClientAppData.appState===Mn.Running?"vpn.connection-info.state-connected":this.backendState.vpnClientAppData.appState===Mn.ShuttingDown?"vpn.connection-info.state-disconnecting":this.backendState.vpnClientAppData.appState===Mn.Reconnecting?"vpn.connection-info.state-reconnecting":void 0}get currentStateLineClass(){return this.backendState.vpnClientAppData.appState===Mn.Stopped?"red-line":this.backendState.vpnClientAppData.appState===Mn.Connecting?"yellow-line":this.backendState.vpnClientAppData.appState===Mn.Running?"green-line":"yellow-line"}closeOperationSubscription(){this.operationSubscription&&this.operationSubscription.unsubscribe()}updateGraphLimits(){const t=this.calculateGraphLimits(this.sentHistory);this.minUploadInGraph=t[0],this.midUploadInGraph=t[1],this.maxUploadInGraph=t[2];const e=this.calculateGraphLimits(this.receivedHistory);this.minDownloadInGraph=e[0],this.midDownloadInGraph=e[1],this.maxDownloadInGraph=e[2];const i=this.calculateGraphLimits(this.latencyHistory);this.minLatencyInGraph=i[0],this.midLatencyInGraph=i[1],this.maxLatencyInGraph=i[2]}calculateGraphLimits(t){let i=0,o=0;return t.forEach(s=>{s>i&&(i=s)}),0===i&&(i+=1),o=new(Ag())(i).minus(0).dividedBy(2).plus(0).decimalPlaces(1).toNumber(),[0,o,i]}getIp(t=!1){if(this.ipInfoAllowed){if(!t){if(this.loadingCurrentIp)return void this.snackbarService.showWarning("vpn.status-page.data.ip-refresh-loading-warning");const e=1e4;if(Date.now()-this.lastIpRefresDate{this.loadingCurrentIp=!1,this.lastIpRefresDate=Date.now(),e?(this.problemGettingIp=!1,this.currentIp=e[0],this.ipCountry=e[1]):this.problemGettingIp=!0},()=>{this.lastIpRefresDate=Date.now(),this.loadingCurrentIp=!1,this.problemGettingIp=!1})}}}_p.\u0275fac=function(t){return new(t||_p)(F(jo),F(Vo),F(on),F(oo),F(yr),F(Ln),F(Qt))},_p.\u0275cmp=qe({type:_p,selectors:[["app-vpn-status"]],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","general-container",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"general-container"],[1,"row"],[1,"col-12"],[1,"row","flex-1"],["class","col-7 column left-area",4,"ngIf"],["class","col-7 column left-area-connected",4,"ngIf"],[1,"col-5","column","right-area"],[1,"column-container"],[1,"content-area"],[1,"title"],["class","big-text",4,"ngIf"],[1,"margin"],[1,"big-margin"],[1,"separator"],[4,"ngIf"],["class","margin",4,"ngIf"],[1,"small-text"],[3,"text"],[1,"col-7","column","left-area"],[1,"start-button",3,"ngClass","click"],[1,"start-button-img-container"],[1,"start-button-img"],[1,"start-button-img","animated-button"],[3,"diameter",4,"ngIf"],[3,"inline",4,"ngIf"],[1,"current-server"],["class","lower-text current-server-note",4,"ngIf"],["class","lower-text last-error",4,"ngIf"],[3,"diameter"],[3,"inline"],[1,"flag"],[3,"matTooltip"],[1,"text-container"],[1,"top-line"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","name","pk","customName"],[1,"bottom-line"],[3,"shortSimple","text"],[1,"icon-button-separator"],[1,"icon-button"],[1,"transparent-button","vpn-small-button",3,"inline","matTooltip","click"],[1,"none"],[1,"lower-text","current-server-note"],[1,"lower-text","last-error"],[1,"col-7","column","left-area-connected"],[1,"time-container"],[1,"time-content"],[1,"state-title"],[1,"d-inline-block"],[1,"state-text"],[1,"state-explanation"],["class","last-connected-error",4,"ngIf"],[1,"data-container"],[1,"rounded-elevated-box","data-box","big-box",3,"matTooltip"],[1,"chart-container"],["height","140","color","#00000080",3,"animated","data","min","max"],[1,"chart-label"],[1,"label-container","label-top"],[1,"label"],[1,"line"],[1,"label-container","label-mid"],[1,"label-container","label-bottom"],[1,"content"],[1,"upload",3,"inline"],[1,"speed"],[1,"total"],[1,"chart-label","top-chart-label"],[1,"download",3,"inline"],[1,"latency-container"],[1,"rounded-elevated-box","data-box","small-box",3,"matTooltip"],["height","50","color","#00000080",3,"animated","data","min","max"],[1,"disconnect-button",3,"ngClass","click"],[1,"disconnect-button-container"],[1,"d-inline-flex"],[1,"last-connected-error"],[1,"big-text"],["class","small-icon blinking",3,"inline","matTooltip",4,"ngIf"],["class","big-icon transparent-button vpn-small-button",3,"inline","matTooltip","click",4,"ngIf"],[1,"small-icon","blinking",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"inline","matTooltip","click"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","adjustIconsForBigText","name","pk","customName"]],template:function(t,e){1&t&&(V(0,sie,4,6,"div",0),V(1,Hie,40,30,"div",1)),2&t&&(M("ngIf",e.loading),c(1),M("ngIf",!e.loading))},dependencies:[Rn,It,yn,vi,oc,Tc,Rs,Gr,cs,Iu,xt,rr],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.general-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.column[_ngcontent-%COMP%]{height:100%;display:flex;align-items:center;padding-top:40px;padding-bottom:20px}.column[_ngcontent-%COMP%] .column-container[_ngcontent-%COMP%]{width:100%;text-align:center}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%]{background:rgba(0,0,0,.7);border-radius:100px;font-size:.8rem;padding:8px 15px;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%]{color:#bbb}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:top}.left-area-connected[_ngcontent-%COMP%] .state-title[_ngcontent-%COMP%]{font-size:1rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .state-text[_ngcontent-%COMP%]{font-size:2rem;text-transform:uppercase}.left-area-connected[_ngcontent-%COMP%] .state-line[_ngcontent-%COMP%]{height:1px;width:100%;margin-bottom:5px}.left-area-connected[_ngcontent-%COMP%] .green-line[_ngcontent-%COMP%]{background-color:#2ecc54}.left-area-connected[_ngcontent-%COMP%] .yellow-line[_ngcontent-%COMP%]{background-color:#d48b05}.left-area-connected[_ngcontent-%COMP%] .red-line[_ngcontent-%COMP%]{background-color:#da3439}.left-area-connected[_ngcontent-%COMP%] .state-explanation[_ngcontent-%COMP%]{font-size:.7rem}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%]{margin-top:15px;font-size:.8rem;color:#ff393f}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .data-container[_ngcontent-%COMP%]{margin-top:20px}.left-area-connected[_ngcontent-%COMP%] .latency-container[_ngcontent-%COMP%]{margin-bottom:20px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%]{cursor:default;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{height:0px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%]{height:0px;text-align:left}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{position:relative;top:-3px;left:-3px;display:flex;margin-right:-6px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.6rem;margin-left:5px;opacity:.2}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:1px;width:10px;background-color:#fff;flex-grow:1;opacity:.1;margin-left:10px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-top[_ngcontent-%COMP%]{align-items:flex-start}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-mid[_ngcontent-%COMP%]{align-items:center}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-bottom[_ngcontent-%COMP%]{align-items:flex-end;position:relative;top:-6px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%]{width:170px;height:140px;margin:5px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:170px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{width:170px;height:140px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:20px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:25px;transform:rotate(-90deg);width:40px;height:40px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .download[_ngcontent-%COMP%]{transform:rotate(-90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .upload[_ngcontent-%COMP%]{transform:rotate(90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .speed[_ngcontent-%COMP%]{font-size:.875rem}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .total[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:140px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%]{width:352px;height:50px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:352px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:100%;font-size:.875rem;position:relative}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;height:25px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:50px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]{background:linear-gradient(#940000,#7b0000) no-repeat!important;box-shadow:5px 5px 7px #00000080;width:352px;font-size:24px;display:inline-block;border-radius:10px;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:hover{background:linear-gradient(#a10000,#900000) no-repeat!important}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:active{transform:scale(.98);box-shadow:0 0 7px #00000080}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%]{background-image:url(/assets/img/background-pattern.png);padding:12px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;position:relative;top:4px;margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{position:relative;top:-2px;line-height:1.7}.left-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;text-align:center;text-transform:uppercase}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]{text-align:center;margin:10px 0;cursor:pointer;display:inline-block;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:active mat-icon[_ngcontent-%COMP%]{transform:scale(.9)}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover .start-button-img-container[_ngcontent-%COMP%]{opacity:1}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{text-shadow:0px 0px 5px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%]{width:0px;height:0px;opacity:.7}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .start-button-img[_ngcontent-%COMP%]{display:inline-block;background-image:url(/assets/img/start-button.png);background-size:contain;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .animated-button[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_button-animation 4s linear infinite;pointer-events:none}@keyframes _ngcontent-%COMP%_button-animation{0%{transform:scale(1.5);opacity:0}25%{transform:scale(1);opacity:.8}50%{transform:scale(1.5);opacity:0}to{transform:scale(1.5);opacity:0}}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{line-height:140px;font-size:50px;-webkit-user-select:none;user-select:none;text-shadow:0px 0px 2px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin-top:50px;opacity:.5}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%]{display:inline-flex;background:rgba(0,0,0,.7);border-radius:10px;padding:10px 15px;max-width:280px;text-align:left}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{background-image:url(/assets/img/big-flags/unknown.png);width:20px;height:15px;background-size:contain;align-self:center;flex-shrink:0;margin-right:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{overflow:hidden}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.7rem;color:#bbb}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%]{display:flex;align-items:center}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:1px;height:30px;background:rgba(255,255,255,.15);margin-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{font-size:22px;line-height:1;display:flex;align-items:center;padding-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%]{display:inline-block;max-width:280px;margin-top:10px}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area[_ngcontent-%COMP%] .current-server-note[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area[_ngcontent-%COMP%] .last-error[_ngcontent-%COMP%]{font-size:.8rem;color:#ff393f}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%]{background:rgba(61,103,162,.1490196078);padding:30px;text-align:left;max-width:420px;opacity:.95}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%]{font-size:1.25rem;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:5px;position:relative;top:2px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .small-icon[_ngcontent-%COMP%]{color:#d48b05;opacity:.7;font-size:.875rem;cursor:default;margin-left:5px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .big-icon[_ngcontent-%COMP%]{font-size:1.125rem;margin-left:5px;position:relative;top:2px;line-height:1}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .small-text[_ngcontent-%COMP%]{font-size:.7rem;margin-top:1px;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .margin[_ngcontent-%COMP%]{height:12px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-margin[_ngcontent-%COMP%]{height:15px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:1px;width:100%;background:rgba(255,255,255,.15)}.disabled-button[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}"]});class ml{constructor(t){this.router=t}set lastError(t){this.lastErrorInternal=t}canActivate(t,e){return this.checkIfCanActivate()}canActivateChild(t,e){return this.checkIfCanActivate()}checkIfCanActivate(){return this.lastErrorInternal?(this.router.navigate(["vpn","unavailable"],{queryParams:{problem:this.lastErrorInternal}}),Ge(!1)):Ge(!0)}}ml.\u0275fac=function(t){return new(t||ml)(we(Qt))},ml.\u0275prov=Ye({token:ml,factory:ml.\u0275fac,providedIn:"root"});var Ns=(()=>(function(n){n.UnableToConnectWithTheVpnClientApp="unavailable",n.NoLocalVisorPkProvided="pk",n.InvalidStorageState="storage",n.LocalVisorPkChangedDuringUsage="pkChange"}(Ns||(Ns={})),Ns))();class gp{constructor(t,e,i){this.route=t,this.vpnAuthGuardService=e,this.vpnClientService=i,this.problem=null,this.navigationsSubscription=this.route.queryParamMap.subscribe(o=>{this.problem=o.get("problem"),this.problem||(this.problem=Ns.UnableToConnectWithTheVpnClientApp),this.vpnAuthGuardService.lastError=this.problem,this.vpnClientService.stopContinuallyUpdatingData(),setTimeout(()=>this.navigationsSubscription.unsubscribe())})}getTitle(){return this.problem===Ns.NoLocalVisorPkProvided?"vpn.error-page.text-pk":this.problem===Ns.InvalidStorageState?"vpn.error-page.text-storage":this.problem===Ns.LocalVisorPkChangedDuringUsage?"vpn.error-page.text-pk-change":"vpn.error-page.text"}getInfo(){return this.problem===Ns.NoLocalVisorPkProvided?"vpn.error-page.more-info-pk":this.problem===Ns.InvalidStorageState?"vpn.error-page.more-info-storage":this.problem===Ns.LocalVisorPkChangedDuringUsage?"vpn.error-page.more-info-pk-change":"vpn.error-page.more-info"}}gp.\u0275fac=function(t){return new(t||gp)(F(yr),F(ml),F(jo))},gp.\u0275cmp=qe({type:gp,selectors:[["app-vpn-error"]],decls:12,vars:7,consts:[[1,"main-container"],[1,"text-container"],[1,"inner-container"],[1,"error-icon"],[3,"inline"],[1,"more-info"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"mat-icon",4),E(5,"error_outline"),x()(),D(6,"div"),E(7),R(8,"translate"),x(),D(9,"div",5),E(10),R(11,"translate"),x()()()()),2&t&&(c(4),M("inline",!0),c(3),oe(B(8,3,e.getTitle())),c(3),oe(B(11,5,e.getInfo())))},dependencies:[yn,xt],styles:[".main-container[_ngcontent-%COMP%]{height:100%;display:flex}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%;align-self:center;text-align:center}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%]{max-width:550px;display:inline-block;font-size:1.25rem}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:80px}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .more-info[_ngcontent-%COMP%]{font-size:.8rem;opacity:.75;margin-top:10px}"]});const Vie=["button"],jie=["firstInput"];class Ec{constructor(t,e,i,o,s,a){this.dialogRef=t,this.data=e,this.formBuilder=i,this.snackbarService=o,this.appsService=s,this.vpnClientService=a}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(Ec,i)}ngOnInit(){this.form=this.formBuilder.group({ip:[this.data.ip,Vt.compose([Vt.maxLength(15),this.validateIp.bind(this)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}validateIp(){if(this.form){const t=this.form.get("ip").value;return Wt.checkIfIpValidOrEmpty(t)?null:{invalid:!0}}return null}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.appsService.changeAppSettings(this.data.nodePk,this.vpnClientService.vpnClientAppName,{dns:this.form.get("ip").value}).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(t){this.dialogRef.close(!0),this.snackbarService.showDone("vpn.dns-config.done")}onError(t){this.button.showError(),this.operationSubscription=null,t=Kt(t),this.snackbarService.showError(t)}}Ec.\u0275fac=function(t){return new(t||Ec)(F(Nn),F(Ti),F(aI),F(on),F(xo),F(jo))},Ec.\u0275cmp=qe({type:Ec,selectors:[["app-vpn-dns-config"]],viewQuery:function(t,e){if(1&t&&(ft(Vie,5),ft(jie,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:14,vars:11,consts:[[3,"headline"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","ip","maxlength","15","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x()()(),D(10,"app-button",6,7),ye("action",function(){return e.save()}),E(12),R(13,"translate"),x()()),2&t&&(M("headline",B(1,5,"vpn.dns-config.title")),c(2),M("formGroup",e.form),c(4),oe(B(7,7,"vpn.dns-config.ip")),c(4),M("disabled",!e.form.valid),c(2),ce(" ",B(13,9,"vpn.dns-config.save-config-button")," "))},dependencies:[Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ri,En,xt]});const zie=["topBarLoading"],Uie=["topBarLoaded"],mP=function(){return["vpn.title"]};function Wie(n,t){if(1&n&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3,4),x(),xe(4,"app-loading-indicator",5),x()),2&n){const e=z();c(2),M("titleParts",Un(5,mP))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function $ie(n,t){1&n&&xe(0,"mat-spinner",20),2&n&&M("diameter",12)}function Gie(n,t){if(1&n){const e=et();D(0,"div",6)(1,"div",7),xe(2,"app-top-bar",3,8),x(),D(4,"div",9)(5,"div",10)(6,"div",11)(7,"div",12)(8,"table",13)(9,"tr")(10,"th",14)(11,"div",15)(12,"div",16),E(13),R(14,"translate"),x()()(),D(15,"th",14),E(16),R(17,"translate"),x()(),D(18,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeKillswitchOption())}),D(19,"td",14)(20,"div"),E(21),R(22,"translate"),D(23,"mat-icon",18),R(24,"translate"),E(25,"help"),x()()(),D(26,"td",14),xe(27,"span"),E(28),R(29,"translate"),V(30,$ie,1,1,"mat-spinner",19),x()(),D(31,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeGetIpOption())}),D(32,"td",14)(33,"div"),E(34),R(35,"translate"),D(36,"mat-icon",18),R(37,"translate"),E(38,"help"),x()()(),D(39,"td",14),xe(40,"span"),E(41),R(42,"translate"),x()(),D(43,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeDataUnits())}),D(44,"td",14)(45,"div"),E(46),R(47,"translate"),D(48,"mat-icon",18),R(49,"translate"),E(50,"help"),x()()(),D(51,"td",14),E(52),R(53,"translate"),x()(),D(54,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeHops())}),D(55,"td",14)(56,"div"),E(57),R(58,"translate"),D(59,"mat-icon",18),R(60,"translate"),E(61,"help"),x()()(),D(62,"td",14),E(63),x()(),D(64,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeDns())}),D(65,"td",14)(66,"div"),E(67),R(68,"translate"),D(69,"mat-icon",18),R(70,"translate"),E(71,"help"),x()()(),D(72,"td",14),E(73),R(74,"translate"),x()()()()()()()()}if(2&n){const e=z();c(2),M("titleParts",Un(64,mP))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(11),ce(" ",B(14,32,"vpn.settings-page.setting-small-table-label")," "),c(3),ce(" ",B(17,34,"vpn.settings-page.value-small-table-label")," "),c(5),ce(" ",B(22,36,"vpn.settings-page.killswitch")," "),c(2),M("inline",!0)("matTooltip",B(24,38,"vpn.settings-page.killswitch-info")),c(4),eo(e.getStatusClass(e.backendData.vpnClientAppData.killswitch)),c(1),ce(" ",B(29,40,e.getStatusText(e.backendData.vpnClientAppData.killswitch))," "),c(2),M("ngIf",e.working===e.workingOptions.Killswitch),c(4),ce(" ",B(35,42,"vpn.settings-page.get-ip")," "),c(2),M("inline",!0)("matTooltip",B(37,44,"vpn.settings-page.get-ip-info")),c(4),eo(e.getStatusClass(e.getIpOption)),c(1),ce(" ",B(42,46,e.getStatusText(e.getIpOption))," "),c(5),ce(" ",B(47,48,"vpn.settings-page.data-units")," "),c(2),M("inline",!0)("matTooltip",B(49,50,"vpn.settings-page.data-units-info")),c(4),ce(" ",B(53,52,e.getUnitsOptionText(e.dataUnitsOption))," "),c(5),ce(" ",B(58,54,"vpn.settings-page.minimum-hops")," "),c(2),M("inline",!0)("matTooltip",B(60,56,"vpn.settings-page.minimum-hops-info")),c(4),ce(" ",e.backendData.vpnClientAppData.minHops," "),c(4),ce(" ",B(68,58,"vpn.settings-page.dns")," "),c(2),M("inline",!0)("matTooltip",B(70,60,"vpn.settings-page.dns-info")),c(4),ce(" ",e.backendData.vpnClientAppData.dns?e.backendData.vpnClientAppData.dns:B(74,62,"vpn.settings-page.setting-none")," ")}}var va=(()=>(function(n){n[n.None=0]="None",n[n.Killswitch=1]="Killswitch"}(va||(va={})),va))();class bp{constructor(t,e,i,o,s,a){this.vpnClientService=t,this.snackbarService=e,this.appsService=i,this.vpnSavedDataService=o,this.dialog=s,this.loading=!0,this.tabsData=fn.vpnTabsData,this.working=va.None,this.workingOptions=va,this.navigationsSubscription=a.paramMap.subscribe(l=>{l.has("key")&&(this.currentLocalPk=l.get("key"),fn.changeCurrentPk(this.currentLocalPk),this.tabsData=fn.vpnTabsData)}),this.dataSubscription=this.vpnClientService.backendState.subscribe(l=>{l&&l.serviceState!==ir.PerformingInitialCheck&&(this.backendData=l,this.loading=!1)}),this.getIpOption=this.vpnSavedDataService.getCheckIpSetting(),this.dataUnitsOption=this.vpnSavedDataService.getDataUnitsSetting()}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}getStatusClass(t){return!0===t?"dot-green":"dot-red"}getStatusText(t){return!0===t?"vpn.settings-page.setting-on":"vpn.settings-page.setting-off"}getUnitsOptionText(t){switch(t){case ao.OnlyBits:return"vpn.settings-page.data-units-modal.only-bits";case ao.OnlyBytes:return"vpn.settings-page.data-units-modal.only-bytes";default:return"vpn.settings-page.data-units-modal.bits-speed-and-bytes-volume"}}changeKillswitchOption(){if(this.working===va.None)if(this.backendData.vpnClientAppData.running){const t=Wt.createConfirmationDialog(this.dialog,"vpn.settings-page.change-while-connected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.finishChangingKillswitchOption()})}else this.finishChangingKillswitchOption();else this.snackbarService.showWarning("vpn.settings-page.working-warning")}finishChangingKillswitchOption(){this.working=va.Killswitch,this.operationSubscription=this.appsService.changeAppSettings(this.currentLocalPk,this.vpnClientService.vpnClientAppName,{killswitch:!this.backendData.vpnClientAppData.killswitch}).subscribe(()=>{this.working=va.None,this.vpnClientService.updateData()},t=>{this.working=va.None,t=Kt(t),this.snackbarService.showError(t)})}changeGetIpOption(){this.getIpOption=!this.getIpOption,this.vpnSavedDataService.setCheckIpSetting(this.getIpOption)}changeDataUnits(){const t=[],e=[];Object.keys(ao).forEach(i=>{const o={label:this.getUnitsOptionText(ao[i])};this.dataUnitsOption===ao[i]&&(o.icon="done"),t.push(o),e.push(ao[i])}),Hi.openDialog(this.dialog,t,"vpn.settings-page.data-units-modal.title").afterClosed().subscribe(i=>{i&&(this.dataUnitsOption=e[i-1],this.vpnSavedDataService.setDataUnitsSetting(this.dataUnitsOption),this.topBarLoading&&this.topBarLoading.updateVpnDataStatsUnit(),this.topBarLoaded&&this.topBarLoaded.updateVpnDataStatsUnit())})}changeHops(){pl.openDialog(this.dialog,{nodePk:this.currentLocalPk,minHops:this.backendData.vpnClientAppData.minHops}).afterClosed().subscribe()}changeDns(){Ec.openDialog(this.dialog,{nodePk:this.currentLocalPk,ip:this.backendData.vpnClientAppData.dns}).afterClosed().subscribe()}}bp.\u0275fac=function(t){return new(t||bp)(F(jo),F(on),F(xo),F(Vo),F(Ln),F(yr))},bp.\u0275cmp=qe({type:bp,selectors:[["app-vpn-settings-list"]],viewQuery:function(t,e){if(1&t&&(ft(zie,5),ft(Uie,5)),2&t){let i;nt(i=it())&&(e.topBarLoading=i.first),nt(i=it())&&(e.topBarLoaded=i.first)}},decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],["topBarLoading",""],[1,"h-100"],[1,"row"],[1,"col-12"],["topBarLoaded",""],[1,"col-12","mt-4.5","vpn-table-container"],[1,"width-limiter"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"data-column"],[1,"header-container"],[1,"header-text"],[1,"selectable",3,"click"],[1,"help-icon",3,"inline","matTooltip"],[3,"diameter",4,"ngIf"],[3,"diameter"]],template:function(t,e){1&t&&(V(0,Wie,5,6,"div",0),V(1,Gie,75,65,"div",1)),2&t&&(M("ngIf",e.loading),c(1),M("ngIf",!e.loading))},dependencies:[It,yn,vi,oc,Gr,cs,xt],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .data-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:7px!important;padding-bottom:7px!important;font-size:12px!important;font-weight:400!important}.data-column[_ngcontent-%COMP%]{max-width:0;width:50%}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:2px;position:relative;top:2px}mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}"]});const qie=[{path:"",component:Uf},{path:"login",component:pu},{path:"nodes",canActivate:[Es],canActivateChild:[Es],children:[{path:"",redirectTo:"list/1",pathMatch:"full"},{path:"list",redirectTo:"list/1",pathMatch:"full"},{path:"list/:page",component:Mu},{path:"dmsg",redirectTo:"dmsg/1",pathMatch:"full"},{path:"dmsg/:page",component:Mu},{path:":key",component:Je,children:[{path:"",redirectTo:"routing",pathMatch:"full"},{path:"info",component:fp},{path:"routing",component:sp},{path:"apps",component:ap},{path:"transports",redirectTo:"transports/1",pathMatch:"full"},{path:"transports/:page",component:lp},{path:"routes",redirectTo:"routes/1",pathMatch:"full"},{path:"routes/:page",component:cp},{path:"apps-list/:showOfficialApps/:page",component:dp}]}]},{path:"settings",canActivate:[Es],canActivateChild:[Es],children:[{path:"",component:op},{path:"labels",redirectTo:"labels/1",pathMatch:"full"},{path:"labels/:page",component:pp}]},{path:"vpnlogin/:key",component:pu},{path:"vpn",canActivate:[ml],canActivateChild:[ml],children:[{path:"unavailable",component:gp},{path:":key",children:[{path:"status",component:_p},{path:"servers",redirectTo:"servers/public/1",pathMatch:"full"},{path:"servers/:type/:page",component:Eu},{path:"settings",component:bp},{path:"**",redirectTo:"status"}]},{path:"**",redirectTo:"/vpn/unavailable?problem=pk"}]},{path:"**",redirectTo:""}];class Ou{}Ou.\u0275fac=function(t){return new(t||Ou)},Ou.\u0275mod=Pt({type:Ou}),Ou.\u0275inj=At({imports:[T2.forRoot(qie,{useHash:!0}),T2]});let Zie=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn]}),n})();class Au{}Au.\u0275fac=function(t){return new(t||Au)},Au.\u0275mod=Pt({type:Au}),Au.\u0275inj=At({imports:[nE.forRoot({loader:{provide:Hf,useClass:class Xie{getTranslation(t){return ue(N(6297)(`./${t}.json`))}}}}),nE]});class Fu{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return!1}}Fu.\u0275fac=function(t){return new(t||Fu)},Fu.\u0275prov=Ye({token:Fu,factory:Fu.\u0275fac});class Ru{}Ru.\u0275fac=function(t){return new(t||Ru)},Ru.\u0275mod=Pt({type:Ru,bootstrap:[ua]}),Ru.\u0275inj=At({providers:[As,{provide:D1,useValue:{duration:3e3,verticalPosition:"top"}},{provide:AL,useValue:{width:"600px",hasBackdrop:!0}},{provide:x1,useClass:Y9},{provide:v2,useClass:Fu},{provide:DL,useValue:{disabled:!0}}],imports:[cD,ZH,Z1,yV,Ou,Au,zL,sz,Og,WW,ree,jL,Vz,s$,fq,oW,Zie,mG,iU,NG]}),Hs(Je,[Rn,It,B_,yn,Gr,cs,Tu],[xt]),Hs(Eu,[Rn,bi,It,Rd,Ja,$r,yn,vi,Tc,Gr,Fs,cs,Iu],[YS,xt]),VY().bootstrapModule(Ru).catch(n=>console.log(n))},9774:function(he,ge,N){var O;!function(_){"use strict";var u,f=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,h=Math.ceil,y=Math.floor,p="[BigNumber Error] ",v=p+"Number primitive has more than 15 significant digits: ",C=1e14,T=14,S=9007199254740991,k=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],L=1e7,A=1e9;function H(J){var ee=0|J;return J>0||J===ee?ee:ee-1}function K(J){for(var ee,ae,le=1,X=J.length,Te=J[0]+"";lett^ae?1:-1;for(Ce=(Ve=X.length)<(tt=Te.length)?Ve:tt,Se=0;SeTe[Se]^ae?1:-1;return Ve==tt?0:Ve>tt^ae?1:-1}function ve(J,ee,ae,le){if(Jae||J!==(J<0?h(J):y(J)))throw Error(p+(le||"Argument")+("number"==typeof J?Jae?" out of range: ":" not an integer: ":" not a primitive number: ")+J)}function Z(J){return"[object Array]"==Object.prototype.toString.call(J)}function Q(J){var ee=J.c.length-1;return H(J.e/T)==ee&&J.c[ee]%2!=0}function de(J,ee){return(J.length>1?J.charAt(0)+"."+J.slice(1):J)+(ee<0?"e":"e+")+ee}function G(J,ee,ae){var le,X;if(ee<0){for(X=ae+".";++ee;X+=ae);J=X+J}else if(++ee>(le=J.length)){for(X=ae,ee-=le;--ee;X+=ae);J+=X}else ee=10;be/=10,ue++);return Ee.e=ue,void(Ee.c=[W])}De=W+""}else{if(!f.test(De=W+""))return le(Ee,De,_e);Ee.s=45==De.charCodeAt(0)?(De=De.slice(1),-1):1}(ue=De.indexOf("."))>-1&&(De=De.replace(".","")),(be=De.search(/e/i))>0?(ue<0&&(ue=be),ue+=+De.slice(be+1),De=De.substring(0,be)):ue<0&&(ue=De.length)}else{if(ve(re,2,Bn.length,"Base"),De=W+"",10==re)return Ze(Ee=new $e(W instanceof $e?W:De),Se+Ee.e+1,Ce);if(_e="number"==typeof W){if(0*W!=0)return le(Ee,De,_e,re);if(Ee.s=1/W<0?(De=De.slice(1),-1):1,$e.DEBUG&&De.replace(/^0\.0*|\./,"").length>15)throw Error(v+W);_e=!1}else Ee.s=45===De.charCodeAt(0)?(De=De.slice(1),-1):1;for(ne=Bn.slice(0,re),ue=be=0,Me=De.length;beue){ue=Me;continue}}else if(!fe&&(De==De.toUpperCase()&&(De=De.toLowerCase())||De==De.toLowerCase()&&(De=De.toUpperCase()))){fe=!0,be=-1,ue=0;continue}return le(Ee,W+"",_e,re)}(ue=(De=ae(De,re,10,Ee.s)).indexOf("."))>-1?De=De.replace(".",""):ue=De.length}for(be=0;48===De.charCodeAt(be);be++);for(Me=De.length;48===De.charCodeAt(--Me););if(De=De.slice(be,++Me)){if(Me-=be,_e&&$e.DEBUG&&Me>15&&(W>S||W!==y(W)))throw Error(v+Ee.s*W);if((ue=ue-be-1)>st)Ee.c=Ee.e=null;else if(ue_e){if(--re>0)for(Me+=".";re--;Me+="0");}else if((re+=ue-_e)>0)for(ue+1==_e&&(Me+=".");re--;Me+="0");return W.s<0&&fe?"-"+Me:Me}function Ii(W,re){var ne,me,fe=0;for(Z(W[0])&&(W=W[0]),ne=new $e(W[0]);++fe=10;fe/=10,me++);return(ne=me+ne*T-1)>st?W.c=W.e=null:ne=10;_e/=10,fe++);if((ue=re-fe)<0)ue+=T,Ee=(Me=Ne[De=0])/ut[fe-(be=re)-1]%10|0;else if((De=h((ue+1)/T))>=Ne.length){if(!me)break e;for(;Ne.length<=De;Ne.push(0));Me=Ee=0,fe=1,be=(ue%=T)-T+1}else{for(Me=_e=Ne[De],fe=1;_e>=10;_e/=10,fe++);Ee=(be=(ue%=T)-T+fe)<0?0:Me/ut[fe-be-1]%10|0}if(me=me||re<0||null!=Ne[De+1]||(be<0?Me:Me%ut[fe-be-1]),me=ne<4?(Ee||me)&&(0==ne||ne==(W.s<0?3:2)):Ee>5||5==Ee&&(4==ne||me||6==ne&&(ue>0?be>0?Me/ut[fe-be]:0:Ne[De-1])%10&1||ne==(W.s<0?8:7)),re<1||!Ne[0])return Ne.length=0,me?(Ne[0]=ut[(T-(re-=W.e+1)%T)%T],W.e=-re||0):Ne[0]=W.e=0,W;if(0==ue?(Ne.length=De,_e=1,De--):(Ne.length=De+1,_e=ut[T-ue],Ne[De]=be>0?y(Me/ut[fe-be]%ut[be])*_e:0),me)for(;;){if(0==De){for(ue=1,be=Ne[0];be>=10;be/=10,ue++);for(be=Ne[0]+=_e,_e=1;be>=10;be/=10,_e++);ue!=_e&&(W.e++,Ne[0]==C&&(Ne[0]=1));break}if(Ne[De]+=_e,Ne[De]!=C)break;Ne[De--]=0,_e=1}for(ue=Ne.length;0===Ne[--ue];Ne.pop());}W.e>st?W.c=W.e=null:W.e>>11))>=9e15?(fe=crypto.getRandomValues(new Uint32Array(2)),me[Me]=fe[0],me[Me+1]=fe[1]):(De.push(_e%1e14),Me+=2);Me=be/2}else{if(!crypto.randomBytes)throw Nt=!1,Error(p+"crypto unavailable");for(me=crypto.randomBytes(be*=7);Me=9e15?crypto.randomBytes(7).copy(me,Me):(De.push(_e%1e14),Me+=7);Me=be/7}if(!Nt)for(;Me=10;_e/=10,Me++);Mefe-1&&(null==_e[be+1]&&(_e[be+1]=0),_e[be+1]+=_e[be]/fe|0,_e[be]%=fe)}return _e.reverse()}return function(ne,me,fe,ue,be){var _e,Me,De,Ee,Ne,ut,_t,rt,sn=ne.indexOf("."),Pn=Se,vt=Ce;for(sn>=0&&(Ee=Gn,Gn=0,ne=ne.replace(".",""),ut=(rt=new $e(me)).pow(ne.length-sn),Gn=Ee,rt.c=re(G(K(ut.c),ut.e,"0"),10,fe,W),rt.e=rt.c.length),De=Ee=(_t=re(ne,me,fe,be?(_e=Bn,W):(_e=W,Bn))).length;0==_t[--Ee];_t.pop());if(!_t[0])return _e.charAt(0);if(sn<0?--De:(ut.c=_t,ut.e=De,ut.s=ue,_t=(ut=ee(ut,rt,Pn,vt,fe)).c,Ne=ut.r,De=ut.e),sn=_t[Me=De+Pn+1],Ee=fe/2,Ne=Ne||Me<0||null!=_t[Me+1],Ne=vt<4?(null!=sn||Ne)&&(0==vt||vt==(ut.s<0?3:2)):sn>Ee||sn==Ee&&(4==vt||Ne||6==vt&&1&_t[Me-1]||vt==(ut.s<0?8:7)),Me<1||!_t[0])ne=Ne?G(_e.charAt(1),-Pn,_e.charAt(0)):_e.charAt(0);else{if(_t.length=Me,Ne)for(--fe;++_t[--Me]>fe;)_t[Me]=0,Me||(++De,_t=[1].concat(_t));for(Ee=_t.length;!_t[--Ee];);for(sn=0,ne="";sn<=Ee;ne+=_e.charAt(_t[sn++]));ne=G(ne,De,_e.charAt(0))}return ne}}(),ee=function(){function W(me,fe,ue){var be,_e,Me,De,Ee=0,Ne=me.length,ut=fe%L,_t=fe/L|0;for(me=me.slice();Ne--;)Ee=((_e=ut*(Me=me[Ne]%L)+(be=_t*Me+(De=me[Ne]/L|0)*ut)%L*L+Ee)/ue|0)+(be/L|0)+_t*De,me[Ne]=_e%ue;return Ee&&(me=[Ee].concat(me)),me}function re(me,fe,ue,be){var _e,Me;if(ue!=be)Me=ue>be?1:-1;else for(_e=Me=0;_efe[_e]?1:-1;break}return Me}function ne(me,fe,ue,be){for(var _e=0;ue--;)me[ue]-=_e,me[ue]=(_e=me[ue]1;me.splice(0,1));}return function(me,fe,ue,be,_e){var Me,De,Ee,Ne,ut,_t,rt,sn,Pn,vt,jt,jn,oi,Kr,So,Pi,tn,Mi=me.s==fe.s?1:-1,si=me.c,On=fe.c;if(!(si&&si[0]&&On&&On[0]))return new $e(me.s&&fe.s&&(si?!On||si[0]!=On[0]:On)?si&&0==si[0]||!On?0*Mi:Mi/0:NaN);for(Pn=(sn=new $e(Mi)).c=[],Mi=ue+(De=me.e-fe.e)+1,_e||(_e=C,De=H(me.e/T)-H(fe.e/T),Mi=Mi/T|0),Ee=0;On[Ee]==(si[Ee]||0);Ee++);if(On[Ee]>(si[Ee]||0)&&De--,Mi<0)Pn.push(1),Ne=!0;else{for(Kr=si.length,Pi=On.length,Ee=0,Mi+=2,(ut=y(_e/(On[0]+1)))>1&&(On=W(On,ut,_e),si=W(si,ut,_e),Pi=On.length,Kr=si.length),oi=Pi,jt=(vt=si.slice(0,Pi)).length;jt=_e/2&&So++;do{if(ut=0,(Me=re(On,vt,Pi,jt))<0){if(jn=vt[0],Pi!=jt&&(jn=jn*_e+(vt[1]||0)),(ut=y(jn/So))>1)for(ut>=_e&&(ut=_e-1),rt=(_t=W(On,ut,_e)).length,jt=vt.length;1==re(_t,vt,rt,jt);)ut--,ne(_t,Pi=10;Mi/=10,Ee++);Ze(sn,ue+(sn.e=Ee+De*T-1)+1,be,Ne)}else sn.e=De,sn.r=+Ne;return sn}}(),le=function(){var W=/^(-?)0([xbo])(?=\w[\w.]*$)/i,re=/^([^.]+)\.$/,ne=/^\.([^.]+)$/,me=/^-?(Infinity|NaN)$/,fe=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(ue,be,_e,Me){var De,Ee=_e?be:be.replace(fe,"");if(me.test(Ee))ue.s=isNaN(Ee)?null:Ee<0?-1:1,ue.c=ue.e=null;else{if(!_e&&(Ee=Ee.replace(W,function(Ne,ut,_t){return De="x"==(_t=_t.toLowerCase())?16:"b"==_t?2:8,Me&&Me!=De?Ne:ut}),Me&&(De=Me,Ee=Ee.replace(re,"$1").replace(ne,"0.$1")),be!=Ee))return new $e(Ee,De);if($e.DEBUG)throw Error(p+"Not a"+(Me?" base "+Me:"")+" number: "+be);ue.c=ue.e=ue.s=null}}}(),X.absoluteValue=X.abs=function(){var W=new $e(this);return W.s<0&&(W.s=1),W},X.comparedTo=function(W,re){return ie(this,new $e(W,re))},X.decimalPlaces=X.dp=function(W,re){var ne,me,fe;if(null!=W)return ve(W,0,A),null==re?re=Ce:ve(re,0,8),Ze(new $e(this),W+this.e+1,re);if(!(ne=this.c))return null;if(me=((fe=ne.length-1)-H(this.e/T))*T,fe=ne[fe])for(;fe%10==0;fe/=10,me--);return me<0&&(me=0),me},X.dividedBy=X.div=function(W,re){return ee(this,new $e(W,re),Se,Ce)},X.dividedToIntegerBy=X.idiv=function(W,re){return ee(this,new $e(W,re),0,1)},X.exponentiatedBy=X.pow=function(W,re){var ne,me,fe,be,_e,Me,De,Ee=this;if((W=new $e(W)).c&&!W.isInteger())throw Error(p+"Exponent not an integer: "+W);if(null!=re&&(re=new $e(re)),be=W.e>14,!Ee.c||!Ee.c[0]||1==Ee.c[0]&&!Ee.e&&1==Ee.c.length||!W.c||!W.c[0])return De=new $e(Math.pow(+Ee.valueOf(),be?2-Q(W):+W)),re?De.mod(re):De;if(_e=W.s<0,re){if(re.c?!re.c[0]:!re.s)return new $e(NaN);(me=!_e&&Ee.isInteger()&&re.isInteger())&&(Ee=Ee.mod(re))}else{if(W.e>9&&(Ee.e>0||Ee.e<-1||(0==Ee.e?Ee.c[0]>1||be&&Ee.c[1]>=24e7:Ee.c[0]<8e13||be&&Ee.c[0]<=9999975e7)))return fe=Ee.s<0&&Q(W)?-0:0,Ee.e>-1&&(fe=1/fe),new $e(_e?1/fe:fe);Gn&&(fe=h(Gn/T+2))}for(be?(ne=new $e(.5),Me=Q(W)):Me=W%2,_e&&(W.s=1),De=new $e(Te);;){if(Me){if(!(De=De.times(Ee)).c)break;fe?De.c.length>fe&&(De.c.length=fe):me&&(De=De.mod(re))}if(be){if(Ze(W=W.times(ne),W.e+1,1),!W.c[0])break;be=W.e>14,Me=Q(W)}else{if(!(W=y(W/2)))break;Me=W%2}Ee=Ee.times(Ee),fe?Ee.c&&Ee.c.length>fe&&(Ee.c.length=fe):me&&(Ee=Ee.mod(re))}return me?De:(_e&&(De=Te.div(De)),re?De.mod(re):fe?Ze(De,Gn,Ce,void 0):De)},X.integerValue=function(W){var re=new $e(this);return null==W?W=Ce:ve(W,0,8),Ze(re,re.e+1,W)},X.isEqualTo=X.eq=function(W,re){return 0===ie(this,new $e(W,re))},X.isFinite=function(){return!!this.c},X.isGreaterThan=X.gt=function(W,re){return ie(this,new $e(W,re))>0},X.isGreaterThanOrEqualTo=X.gte=function(W,re){return 1===(re=ie(this,new $e(W,re)))||0===re},X.isInteger=function(){return!!this.c&&H(this.e/T)>this.c.length-2},X.isLessThan=X.lt=function(W,re){return ie(this,new $e(W,re))<0},X.isLessThanOrEqualTo=X.lte=function(W,re){return-1===(re=ie(this,new $e(W,re)))||0===re},X.isNaN=function(){return!this.s},X.isNegative=function(){return this.s<0},X.isPositive=function(){return this.s>0},X.isZero=function(){return!!this.c&&0==this.c[0]},X.minus=function(W,re){var ne,me,fe,ue,be=this,_e=be.s;if(re=(W=new $e(W,re)).s,!_e||!re)return new $e(NaN);if(_e!=re)return W.s=-re,be.plus(W);var Me=be.e/T,De=W.e/T,Ee=be.c,Ne=W.c;if(!Me||!De){if(!Ee||!Ne)return Ee?(W.s=-re,W):new $e(Ne?be:NaN);if(!Ee[0]||!Ne[0])return Ne[0]?(W.s=-re,W):new $e(Ee[0]?be:3==Ce?-0:0)}if(Me=H(Me),De=H(De),Ee=Ee.slice(),_e=Me-De){for((ue=_e<0)?(_e=-_e,fe=Ee):(De=Me,fe=Ne),fe.reverse(),re=_e;re--;fe.push(0));fe.reverse()}else for(me=(ue=(_e=Ee.length)<(re=Ne.length))?_e:re,_e=re=0;re0)for(;re--;Ee[ne++]=0);for(re=C-1;me>_e;){if(Ee[--me]=0;){for(ne=0,ut=jn[fe]%Pn,_t=jn[fe]/Pn|0,ue=fe+(be=Me);ue>fe;)ne=((De=ut*(De=jt[--be]%Pn)+(_e=_t*De+(Ee=jt[be]/Pn|0)*ut)%Pn*Pn+rt[ue]+ne)/sn|0)+(_e/Pn|0)+_t*Ee,rt[ue--]=De%sn;rt[ue]=ne}return ne?++me:rt.splice(0,1),or(W,rt,me)},X.negated=function(){var W=new $e(this);return W.s=-W.s||null,W},X.plus=function(W,re){var ne,me=this,fe=me.s;if(re=(W=new $e(W,re)).s,!fe||!re)return new $e(NaN);if(fe!=re)return W.s=-re,me.minus(W);var ue=me.e/T,be=W.e/T,_e=me.c,Me=W.c;if(!ue||!be){if(!_e||!Me)return new $e(fe/0);if(!_e[0]||!Me[0])return Me[0]?W:new $e(_e[0]?me:0*fe)}if(ue=H(ue),be=H(be),_e=_e.slice(),fe=ue-be){for(fe>0?(be=ue,ne=Me):(fe=-fe,ne=_e),ne.reverse();fe--;ne.push(0));ne.reverse()}for((fe=_e.length)-(re=Me.length)<0&&(ne=Me,Me=_e,_e=ne,re=fe),fe=0;re;)fe=(_e[--re]=_e[re]+Me[re]+fe)/C|0,_e[re]=C===_e[re]?0:_e[re]%C;return fe&&(_e=[fe].concat(_e),++be),or(W,_e,be)},X.precision=X.sd=function(W,re){var ne,me,fe;if(null!=W&&W!==!!W)return ve(W,1,A),null==re?re=Ce:ve(re,0,8),Ze(new $e(this),W,re);if(!(ne=this.c))return null;if(me=(fe=ne.length-1)*T+1,fe=ne[fe]){for(;fe%10==0;fe/=10,me--);for(fe=ne[0];fe>=10;fe/=10,me++);}return W&&this.e+1>me&&(me=this.e+1),me},X.shiftedBy=function(W){return ve(W,-S,S),this.times("1e"+W)},X.squareRoot=X.sqrt=function(){var W,re,ne,me,fe,ue=this,be=ue.c,_e=ue.s,Me=ue.e,De=Se+4,Ee=new $e("0.5");if(1!==_e||!be||!be[0])return new $e(!_e||_e<0&&(!be||be[0])?NaN:be?ue:1/0);if(0==(_e=Math.sqrt(+ue))||_e==1/0?(((re=K(be)).length+Me)%2==0&&(re+="0"),_e=Math.sqrt(re),Me=H((Me+1)/2)-(Me<0||Me%2),ne=new $e(re=_e==1/0?"1e"+Me:(re=_e.toExponential()).slice(0,re.indexOf("e")+1)+Me)):ne=new $e(_e+""),ne.c[0])for((_e=(Me=ne.e)+De)<3&&(_e=0);;)if(ne=Ee.times((fe=ne).plus(ee(ue,fe,De,1))),K(fe.c).slice(0,_e)===(re=K(ne.c)).slice(0,_e)){if(ne.e0&&ut>0){for(Me=Ne.substr(0,me=ut%ue||ue);me0&&(Me+=_e+Ne.slice(me)),Ee&&(Me="-"+Me)}ne=De?Me+In.decimalSeparator+((be=+In.fractionGroupSize)?De.replace(new RegExp("\\d{"+be+"}\\B","g"),"$&"+In.fractionGroupSeparator):De):Me}return ne},X.toFraction=function(W){var re,ne,me,fe,ue,be,_e,Me,De,Ee,Ne,ut,_t=this,rt=_t.c;if(null!=W&&(!(Me=new $e(W)).isInteger()&&(Me.c||1!==Me.s)||Me.lt(Te)))throw Error(p+"Argument "+(Me.isInteger()?"out of range: ":"not an integer: ")+W);if(!rt)return _t.toString();for(ne=new $e(Te),Ee=me=new $e(Te),fe=De=new $e(Te),ut=K(rt),be=ne.e=ut.length-_t.e-1,ne.c[0]=k[(_e=be%T)<0?T+_e:_e],W=!W||Me.comparedTo(ne)>0?be>0?ne:Ee:Me,_e=st,st=1/0,Me=new $e(ut),De.c[0]=0;Ne=ee(Me,ne,0,1),1!=(ue=me.plus(Ne.times(fe))).comparedTo(W);)me=fe,fe=ue,Ee=De.plus(Ne.times(ue=Ee)),De=ue,ne=Me.minus(Ne.times(ue=ne)),Me=ue;return ue=ee(W.minus(me),fe,0,1),De=De.plus(ue.times(Ee)),me=me.plus(ue.times(fe)),De.s=Ee.s=_t.s,re=ee(Ee,fe,be*=2,Ce).minus(_t).abs().comparedTo(ee(De,me,be,Ce).minus(_t).abs())<1?[Ee.toString(),fe.toString()]:[De.toString(),me.toString()],st=_e,re},X.toNumber=function(){return+this},X.toPrecision=function(W,re){return null!=W&&ve(W,1,A),Ei(this,W,re,2)},X.toString=function(W){var re,me=this.s,fe=this.e;return null===fe?me?(re="Infinity",me<0&&(re="-"+re)):re="NaN":(re=K(this.c),null==W?re=fe<=Ve||fe>=tt?de(re,fe):G(re,fe,"0"):(ve(W,2,Bn.length,"Base"),re=ae(G(re,fe,"0"),10,W,me,!0)),me<0&&this.c[0]&&(re="-"+re)),re},X.valueOf=X.toJSON=function(){var W,ne=this.e;return null===ne?this.toString():(W=K(this.c),W=ne<=Ve||ne>=tt?de(W,ne):G(W,ne,"0"),this.s<0?"-"+W:W)},X._isBigNumber=!0,null!=J&&$e.set(J),$e}(),u.default=u.BigNumber=u,void 0!==(O=function(){return u}.call(ge,N,ge,he))&&(he.exports=O)}()},6149:(he,ge,N)=>{var O=N(5979)();O.helpers=N(3305),N(3533)(O),O.defaults=N(9800),O.Element=N(8839),O.elements=N(9931),O.Interaction=N(2814),O.layouts=N(2294),O.platform=N(8244),O.plugins=N(2445),O.Ticks=N(8347),N(8103)(O),N(1047)(O),N(7897)(O),N(5464)(O),N(6308)(O),N(480)(O),N(8351)(O),N(4977)(O),N(1704)(O),N(1486)(O),N(8726)(O),N(4215)(O),N(2690)(O),N(4033)(O),N(787)(O),N(6769)(O),N(6580)(O),N(4657)(O),N(1895)(O),N(6038)(O),N(2898)(O),N(3414)(O),N(6667)(O),N(402)(O),N(846)(O),N(9377)(O);var _=N(6747);for(var u in _)_.hasOwnProperty(u)&&O.plugins.register(_[u]);O.platform.initialize(),he.exports=O,typeof window<"u"&&(window.Chart=O),O.Legend=_.legend._element,O.Title=_.title._element,O.pluginService=O.plugins,O.PluginBase=O.Element.extend({}),O.canvasHelpers=O.helpers.canvas,O.layoutService=O.layouts},6038:he=>{"use strict";he.exports=function(ge){ge.Bar=function(N,O){return O.type="bar",new ge(N,O)}}},2898:he=>{"use strict";he.exports=function(ge){ge.Bubble=function(N,O){return O.type="bubble",new ge(N,O)}}},3414:he=>{"use strict";he.exports=function(ge){ge.Doughnut=function(N,O){return O.type="doughnut",new ge(N,O)}}},6667:he=>{"use strict";he.exports=function(ge){ge.Line=function(N,O){return O.type="line",new ge(N,O)}}},402:he=>{"use strict";he.exports=function(ge){ge.PolarArea=function(N,O){return O.type="polarArea",new ge(N,O)}}},846:he=>{"use strict";he.exports=function(ge){ge.Radar=function(N,O){return O.type="radar",new ge(N,O)}}},9377:he=>{"use strict";he.exports=function(ge){ge.Scatter=function(N,O){return O.type="scatter",new ge(N,O)}}},2690:(he,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),O._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(p,v){var C="";return p.length>0&&(p[0].yLabel?C=p[0].yLabel:v.labels.length>0&&p[0].index0?Math.min(C,k-S):C,S=k;return C}(C,U):-1,{min:ie,pixels:U,start:L,end:A,stackCount:T,scale:C}},calculateBarValuePixels:function(v,C){var ve,Z,Q,de,G,J,T=this,S=T.chart,k=T.getMeta(),L=T.getValueScale(),A=S.data.datasets,U=L.getRightValue(A[v].data[C]),H=L.options.stacked,K=k.stack,ie=0;if(H||void 0===H&&void 0!==K)for(ve=0;ve=0&&Q>0)&&(ie+=Q));return de=L.getPixelForValue(ie),{size:J=((G=L.getPixelForValue(ie+U))-de)/2,base:de,head:G,center:G+J/2}},calculateBarIndexPixels:function(v,C,T){var k=T.scale.options,L="flex"===k.barThickness?function y(p,v,C){var T=v.pixels,S=T[p],k=p>0?T[p-1]:null,L=p{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(f,h){return(h.datasets[f.datasetIndex].label||"")+": ("+f.xLabel+", "+f.yLabel+", "+h.datasets[f.datasetIndex].data[f.index].r+")"}}}}),he.exports=function(f){f.controllers.bubble=f.DatasetController.extend({dataElementType:_.Point,update:function(h){var y=this,p=y.getMeta();u.each(p.data,function(C,T){y.updateElement(C,T,h)})},updateElement:function(h,y,p){var v=this,C=v.getMeta(),T=h.custom||{},S=v.getScaleForId(C.xAxisID),k=v.getScaleForId(C.yAxisID),L=v._resolveElementOptions(h,y),A=v.getDataset().data[y],U=v.index,H=p?S.getPixelForDecimal(.5):S.getPixelForValue("object"==typeof A?A:NaN,y,U),K=p?k.getBasePixel():k.getPixelForValue(A,y,U);h._xScale=S,h._yScale=k,h._options=L,h._datasetIndex=U,h._index=y,h._model={backgroundColor:L.backgroundColor,borderColor:L.borderColor,borderWidth:L.borderWidth,hitRadius:L.hitRadius,pointStyle:L.pointStyle,radius:p?0:L.radius,skip:T.skip||isNaN(H)||isNaN(K),x:H,y:K},h.pivot()},setHoverStyle:function(h){var y=h._model,p=h._options;y.backgroundColor=u.valueOrDefault(p.hoverBackgroundColor,u.getHoverColor(p.backgroundColor)),y.borderColor=u.valueOrDefault(p.hoverBorderColor,u.getHoverColor(p.borderColor)),y.borderWidth=u.valueOrDefault(p.hoverBorderWidth,p.borderWidth),y.radius=p.radius+p.hoverRadius},removeHoverStyle:function(h){var y=h._model,p=h._options;y.backgroundColor=p.backgroundColor,y.borderColor=p.borderColor,y.borderWidth=p.borderWidth,y.radius=p.radius},_resolveElementOptions:function(h,y){var H,K,ie,p=this,v=p.chart,T=v.data.datasets[p.index],S=h.custom||{},k=v.options.elements.point,L=u.options.resolve,A=T.data[y],U={},ve={chart:v,dataIndex:y,dataset:T,datasetIndex:p.index},Z=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle"];for(H=0,K=Z.length;H{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(f){var h=[];h.push('
    ');var y=f.data,p=y.datasets,v=y.labels;if(p.length)for(var C=0;C'),v[C]&&h.push(v[C]),h.push("");return h.push("
"),h.join("")},legend:{labels:{generateLabels:function(f){var h=f.data;return h.labels.length&&h.datasets.length?h.labels.map(function(y,p){var v=f.getDatasetMeta(0),C=h.datasets[0],T=v.data[p],S=T&&T.custom||{},k=u.valueAtIndexOrDefault,L=f.options.elements.arc;return{text:y,fillStyle:S.backgroundColor?S.backgroundColor:k(C.backgroundColor,p,L.backgroundColor),strokeStyle:S.borderColor?S.borderColor:k(C.borderColor,p,L.borderColor),lineWidth:S.borderWidth?S.borderWidth:k(C.borderWidth,p,L.borderWidth),hidden:isNaN(C.data[p])||v.data[p].hidden,index:p}}):[]}},onClick:function(f,h){var v,C,T,y=h.index,p=this.chart;for(v=0,C=(p.data.datasets||[]).length;v=Math.PI?-1:ie<-Math.PI?1:0))+K,Z={x:Math.cos(ie),y:Math.sin(ie)},Q={x:Math.cos(ve),y:Math.sin(ve)},de=ie<=0&&ve>=0||ie<=2*Math.PI&&2*Math.PI<=ve,G=ie<=.5*Math.PI&&.5*Math.PI<=ve||ie<=2.5*Math.PI&&2.5*Math.PI<=ve,J=ie<=-Math.PI&&-Math.PI<=ve||ie<=Math.PI&&Math.PI<=ve,ee=ie<=.5*-Math.PI&&.5*-Math.PI<=ve||ie<=1.5*Math.PI&&1.5*Math.PI<=ve,ae=H/100,le={x:J?-1:Math.min(Z.x*(Z.x<0?1:ae),Q.x*(Q.x<0?1:ae)),y:ee?-1:Math.min(Z.y*(Z.y<0?1:ae),Q.y*(Q.y<0?1:ae))},X={x:de?1:Math.max(Z.x*(Z.x>0?1:ae),Q.x*(Q.x>0?1:ae)),y:G?1:Math.max(Z.y*(Z.y>0?1:ae),Q.y*(Q.y>0?1:ae))},Te={width:.5*(X.x-le.x),height:.5*(X.y-le.y)};L=Math.min(S/Te.width,k/Te.height),A={x:-.5*(X.x+le.x),y:-.5*(X.y+le.y)}}p.borderWidth=y.getMaxBorderWidth(U.data),p.outerRadius=Math.max((L-p.borderWidth)/2,0),p.innerRadius=Math.max(H?p.outerRadius/100*H:0,0),p.radiusLength=(p.outerRadius-p.innerRadius)/p.getVisibleDatasetCount(),p.offsetX=A.x*p.outerRadius,p.offsetY=A.y*p.outerRadius,U.total=y.calculateTotal(),y.outerRadius=p.outerRadius-p.radiusLength*y.getRingIndex(y.index),y.innerRadius=Math.max(y.outerRadius-p.radiusLength,0),u.each(U.data,function(Se,Ce){y.updateElement(Se,Ce,h)})},updateElement:function(h,y,p){var v=this,C=v.chart,T=C.chartArea,S=C.options,k=S.animation,L=(T.left+T.right)/2,A=(T.top+T.bottom)/2,U=S.rotation,H=S.rotation,K=v.getDataset(),ie=p&&k.animateRotate||h.hidden?0:v.calculateCircumference(K.data[y])*(S.circumference/(2*Math.PI));u.extend(h,{_datasetIndex:v.index,_index:y,_model:{x:L+C.offsetX,y:A+C.offsetY,startAngle:U,endAngle:H,circumference:ie,outerRadius:p&&k.animateScale?0:v.outerRadius,innerRadius:p&&k.animateScale?0:v.innerRadius,label:(0,u.valueAtIndexOrDefault)(K.label,y,C.data.labels[y])}});var de=h._model;this.removeHoverStyle(h),(!p||!k.animateRotate)&&(de.startAngle=0===y?S.rotation:v.getMeta().data[y-1]._model.endAngle,de.endAngle=de.startAngle+de.circumference),h.pivot()},removeHoverStyle:function(h){f.DatasetController.prototype.removeHoverStyle.call(this,h,this.chart.options.elements.arc)},calculateTotal:function(){var v,h=this.getDataset(),y=this.getMeta(),p=0;return u.each(y.data,function(C,T){v=h.data[T],!isNaN(v)&&!C.hidden&&(p+=Math.abs(v))}),p},calculateCircumference:function(h){var y=this.getMeta().total;return y>0&&!isNaN(h)?2*Math.PI*(Math.abs(h)/y):0},getMaxBorderWidth:function(h){for(var C,T,y=0,p=this.index,v=h.length,S=0;S(y=(C=h[S]._model?h[S]._model.borderWidth:0)>y?C:y)?T:y;return y}})}},6769:(he,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),he.exports=function(f){function h(y,p){return u.valueOrDefault(y.showLine,p.showLines)}f.controllers.line=f.DatasetController.extend({datasetElementType:_.Line,dataElementType:_.Point,update:function(y){var A,U,H,p=this,v=p.getMeta(),C=v.dataset,T=v.data||[],S=p.chart.options,k=S.elements.line,L=p.getScaleForId(v.yAxisID),K=p.getDataset(),ie=h(K,S);for(ie&&(H=C.custom||{},void 0!==K.tension&&void 0===K.lineTension&&(K.lineTension=K.tension),C._scale=L,C._datasetIndex=p.index,C._children=T,C._model={spanGaps:K.spanGaps?K.spanGaps:S.spanGaps,tension:H.tension?H.tension:u.valueOrDefault(K.lineTension,k.tension),backgroundColor:H.backgroundColor?H.backgroundColor:K.backgroundColor||k.backgroundColor,borderWidth:H.borderWidth?H.borderWidth:K.borderWidth||k.borderWidth,borderColor:H.borderColor?H.borderColor:K.borderColor||k.borderColor,borderCapStyle:H.borderCapStyle?H.borderCapStyle:K.borderCapStyle||k.borderCapStyle,borderDash:H.borderDash?H.borderDash:K.borderDash||k.borderDash,borderDashOffset:H.borderDashOffset?H.borderDashOffset:K.borderDashOffset||k.borderDashOffset,borderJoinStyle:H.borderJoinStyle?H.borderJoinStyle:K.borderJoinStyle||k.borderJoinStyle,fill:H.fill?H.fill:void 0!==K.fill?K.fill:k.fill,steppedLine:H.steppedLine?H.steppedLine:u.valueOrDefault(K.steppedLine,k.stepped),cubicInterpolationMode:H.cubicInterpolationMode?H.cubicInterpolationMode:u.valueOrDefault(K.cubicInterpolationMode,k.cubicInterpolationMode)},C.pivot()),A=0,U=T.length;A{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(f){var h=[];h.push('
    ');var y=f.data,p=y.datasets,v=y.labels;if(p.length)for(var C=0;C'),v[C]&&h.push(v[C]),h.push("");return h.push("
"),h.join("")},legend:{labels:{generateLabels:function(f){var h=f.data;return h.labels.length&&h.datasets.length?h.labels.map(function(y,p){var v=f.getDatasetMeta(0),C=h.datasets[0],S=v.data[p].custom||{},k=u.valueAtIndexOrDefault,L=f.options.elements.arc;return{text:y,fillStyle:S.backgroundColor?S.backgroundColor:k(C.backgroundColor,p,L.backgroundColor),strokeStyle:S.borderColor?S.borderColor:k(C.borderColor,p,L.borderColor),lineWidth:S.borderWidth?S.borderWidth:k(C.borderWidth,p,L.borderWidth),hidden:isNaN(C.data[p])||v.data[p].hidden,index:p}}):[]}},onClick:function(f,h){var v,C,T,y=h.index,p=this.chart;for(v=0,C=(p.data.datasets||[]).length;v0&&!isNaN(h)?2*Math.PI/y:0}})}},4657:(he,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),he.exports=function(f){f.controllers.radar=f.DatasetController.extend({datasetElementType:_.Line,dataElementType:_.Point,linkScales:u.noop,update:function(h){var y=this,p=y.getMeta(),C=p.data,T=p.dataset.custom||{},S=y.getDataset(),k=y.chart.options.elements.line,L=y.chart.scale;void 0!==S.tension&&void 0===S.lineTension&&(S.lineTension=S.tension),u.extend(p.dataset,{_datasetIndex:y.index,_scale:L,_children:C,_loop:!0,_model:{tension:T.tension?T.tension:u.valueOrDefault(S.lineTension,k.tension),backgroundColor:T.backgroundColor?T.backgroundColor:S.backgroundColor||k.backgroundColor,borderWidth:T.borderWidth?T.borderWidth:S.borderWidth||k.borderWidth,borderColor:T.borderColor?T.borderColor:S.borderColor||k.borderColor,fill:T.fill?T.fill:void 0!==S.fill?S.fill:k.fill,borderCapStyle:T.borderCapStyle?T.borderCapStyle:S.borderCapStyle||k.borderCapStyle,borderDash:T.borderDash?T.borderDash:S.borderDash||k.borderDash,borderDashOffset:T.borderDashOffset?T.borderDashOffset:S.borderDashOffset||k.borderDashOffset,borderJoinStyle:T.borderJoinStyle?T.borderJoinStyle:S.borderJoinStyle||k.borderJoinStyle}}),p.dataset.pivot(),u.each(C,function(A,U){y.updateElement(A,U,h)},y),y.updateBezierControlPoints()},updateElement:function(h,y,p){var v=this,C=h.custom||{},T=v.getDataset(),S=v.chart.scale,k=v.chart.options.elements.point,L=S.getPointPositionForValue(y,T.data[y]);void 0!==T.radius&&void 0===T.pointRadius&&(T.pointRadius=T.radius),void 0!==T.hitRadius&&void 0===T.pointHitRadius&&(T.pointHitRadius=T.hitRadius),u.extend(h,{_datasetIndex:v.index,_index:y,_scale:S,_model:{x:p?S.xCenter:L.x,y:p?S.yCenter:L.y,tension:C.tension?C.tension:u.valueOrDefault(T.lineTension,v.chart.options.elements.line.tension),radius:C.radius?C.radius:u.valueAtIndexOrDefault(T.pointRadius,y,k.radius),backgroundColor:C.backgroundColor?C.backgroundColor:u.valueAtIndexOrDefault(T.pointBackgroundColor,y,k.backgroundColor),borderColor:C.borderColor?C.borderColor:u.valueAtIndexOrDefault(T.pointBorderColor,y,k.borderColor),borderWidth:C.borderWidth?C.borderWidth:u.valueAtIndexOrDefault(T.pointBorderWidth,y,k.borderWidth),pointStyle:C.pointStyle?C.pointStyle:u.valueAtIndexOrDefault(T.pointStyle,y,k.pointStyle),hitRadius:C.hitRadius?C.hitRadius:u.valueAtIndexOrDefault(T.pointHitRadius,y,k.hitRadius)}}),h._model.skip=C.skip?C.skip:isNaN(h._model.x)||isNaN(h._model.y)},updateBezierControlPoints:function(){var h=this.chart.chartArea,y=this.getMeta();u.each(y.data,function(p,v){var C=p._model,T=u.splineCurve(u.previousItem(y.data,v,!0)._model,C,u.nextItem(y.data,v,!0)._model,C.tension);C.controlPointPreviousX=Math.max(Math.min(T.previous.x,h.right),h.left),C.controlPointPreviousY=Math.max(Math.min(T.previous.y,h.bottom),h.top),C.controlPointNextX=Math.max(Math.min(T.next.x,h.right),h.left),C.controlPointNextY=Math.max(Math.min(T.next.y,h.bottom),h.top),p.pivot()})},setHoverStyle:function(h){var y=this.chart.data.datasets[h._datasetIndex],p=h.custom||{},v=h._index,C=h._model;C.radius=p.hoverRadius?p.hoverRadius:u.valueAtIndexOrDefault(y.pointHoverRadius,v,this.chart.options.elements.point.hoverRadius),C.backgroundColor=p.hoverBackgroundColor?p.hoverBackgroundColor:u.valueAtIndexOrDefault(y.pointHoverBackgroundColor,v,u.getHoverColor(C.backgroundColor)),C.borderColor=p.hoverBorderColor?p.hoverBorderColor:u.valueAtIndexOrDefault(y.pointHoverBorderColor,v,u.getHoverColor(C.borderColor)),C.borderWidth=p.hoverBorderWidth?p.hoverBorderWidth:u.valueAtIndexOrDefault(y.pointHoverBorderWidth,v,C.borderWidth)},removeHoverStyle:function(h){var y=this.chart.data.datasets[h._datasetIndex],p=h.custom||{},v=h._index,C=h._model,T=this.chart.options.elements.point;C.radius=p.radius?p.radius:u.valueAtIndexOrDefault(y.pointRadius,v,T.radius),C.backgroundColor=p.backgroundColor?p.backgroundColor:u.valueAtIndexOrDefault(y.pointBackgroundColor,v,T.backgroundColor),C.borderColor=p.borderColor?p.borderColor:u.valueAtIndexOrDefault(y.pointBorderColor,v,T.borderColor),C.borderWidth=p.borderWidth?p.borderWidth:u.valueAtIndexOrDefault(y.pointBorderWidth,v,T.borderWidth)}})}},1895:(he,ge,N)=>{"use strict";N(9800)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(_){return"("+_.xLabel+", "+_.yLabel+")"}}}}),he.exports=function(_){_.controllers.scatter=_.controllers.line}},8103:(he,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305);O._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:u.noop,onComplete:u.noop}}),he.exports=function(f){f.Animation=_.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),f.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(h,y,p,v){var T,S,C=this.animations;for(y.chart=h,v||(h.animating=!0),T=0,S=C.length;T1&&(p=Math.floor(h.dropFrames),h.dropFrames=h.dropFrames%1),h.advance(1+p);var v=Date.now();h.dropFrames+=(v-y)/h.frameDuration,h.animations.length>0&&h.requestAnimationFrame()},advance:function(h){for(var p,v,y=this.animations,C=0;C=p.numSteps?(u.callback(p.onAnimationComplete,[p],v),v.animating=!1,y.splice(C,1)):++C}},Object.defineProperty(f.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(f.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(h){this.chart=h}})}},1047:(he,ge,N)=>{"use strict";var O=N(9800),_=N(3305),u=N(2814),f=N(2294),h=N(8244),y=N(2445);he.exports=function(p){function C(S){var k=S.options;_.each(S.scales,function(L){f.removeBox(S,L)}),k=_.configMerge(p.defaults.global,p.defaults[S.config.type],k),S.options=S.config.options=k,S.ensureScalesHaveIDs(),S.buildOrUpdateScales(),S.tooltip._options=k.tooltips,S.tooltip.initialize()}function T(S){return"top"===S||"bottom"===S}p.types={},p.instances={},p.controllers={},_.extend(p.prototype,{construct:function(S,k){var L=this;k=function v(S){var k=(S=S||{}).data=S.data||{};return k.datasets=k.datasets||[],k.labels=k.labels||[],S.options=_.configMerge(O.global,O[S.type],S.options||{}),S}(k);var A=h.acquireContext(S,k),U=A&&A.canvas,H=U&&U.height,K=U&&U.width;L.id=_.uid(),L.ctx=A,L.canvas=U,L.config=k,L.width=K,L.height=H,L.aspectRatio=H?K/H:null,L.options=k.options,L._bufferedRender=!1,L.chart=L,L.controller=L,p.instances[L.id]=L,Object.defineProperty(L,"data",{get:function(){return L.config.data},set:function(ie){L.config.data=ie}}),A&&U?(L.initialize(),L.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var S=this;return y.notify(S,"beforeInit"),_.retinaScale(S,S.options.devicePixelRatio),S.bindEvents(),S.options.responsive&&S.resize(!0),S.ensureScalesHaveIDs(),S.buildOrUpdateScales(),S.initToolTip(),y.notify(S,"afterInit"),S},clear:function(){return _.canvas.clear(this),this},stop:function(){return p.animationService.cancelAnimation(this),this},resize:function(S){var k=this,L=k.options,A=k.canvas,U=L.maintainAspectRatio&&k.aspectRatio||null,H=Math.max(0,Math.floor(_.getMaximumWidth(A))),K=Math.max(0,Math.floor(U?H/U:_.getMaximumHeight(A)));if((k.width!==H||k.height!==K)&&(A.width=k.width=H,A.height=k.height=K,A.style.width=H+"px",A.style.height=K+"px",_.retinaScale(k,L.devicePixelRatio),!S)){var ie={width:H,height:K};y.notify(k,"resize",[ie]),k.options.onResize&&k.options.onResize(k,ie),k.stop(),k.update(k.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var S=this.options,k=S.scales||{},L=S.scale;_.each(k.xAxes,function(A,U){A.id=A.id||"x-axis-"+U}),_.each(k.yAxes,function(A,U){A.id=A.id||"y-axis-"+U}),L&&(L.id=L.id||"scale")},buildOrUpdateScales:function(){var S=this,k=S.options,L=S.scales||{},A=[],U=Object.keys(L).reduce(function(H,K){return H[K]=!1,H},{});k.scales&&(A=A.concat((k.scales.xAxes||[]).map(function(H){return{options:H,dtype:"category",dposition:"bottom"}}),(k.scales.yAxes||[]).map(function(H){return{options:H,dtype:"linear",dposition:"left"}}))),k.scale&&A.push({options:k.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),_.each(A,function(H){var K=H.options,ie=K.id,ve=_.valueOrDefault(K.type,H.dtype);T(K.position)!==T(H.dposition)&&(K.position=H.dposition),U[ie]=!0;var Z=null;if(ie in L&&L[ie].type===ve)(Z=L[ie]).options=K,Z.ctx=S.ctx,Z.chart=S;else{var Q=p.scaleService.getScaleConstructor(ve);if(!Q)return;Z=new Q({id:ie,type:ve,options:K,ctx:S.ctx,chart:S}),L[Z.id]=Z}Z.mergeTicksOptions(),H.isDefault&&(S.scale=Z)}),_.each(U,function(H,K){H||delete L[K]}),S.scales=L,p.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var S=this,k=[],L=[];return _.each(S.data.datasets,function(A,U){var H=S.getDatasetMeta(U),K=A.type||S.config.type;if(H.type&&H.type!==K&&(S.destroyDatasetMeta(U),H=S.getDatasetMeta(U)),H.type=K,k.push(H.type),H.controller)H.controller.updateIndex(U),H.controller.linkScales();else{var ie=p.controllers[H.type];if(void 0===ie)throw new Error('"'+H.type+'" is not a chart type.');H.controller=new ie(S,U),L.push(H.controller)}},S),L},resetElements:function(){var S=this;_.each(S.data.datasets,function(k,L){S.getDatasetMeta(L).controller.reset()},S)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(S){var k=this;if((!S||"object"!=typeof S)&&(S={duration:S,lazy:arguments[1]}),C(k),y._invalidate(k),!1!==y.notify(k,"beforeUpdate")){k.tooltip._data=k.data;var L=k.buildOrUpdateControllers();_.each(k.data.datasets,function(A,U){k.getDatasetMeta(U).controller.buildOrUpdateElements()},k),k.updateLayout(),k.options.animation&&k.options.animation.duration&&_.each(L,function(A){A.reset()}),k.updateDatasets(),k.tooltip.initialize(),k.lastActive=[],y.notify(k,"afterUpdate"),k._bufferedRender?k._bufferedRequest={duration:S.duration,easing:S.easing,lazy:S.lazy}:k.render(S)}},updateLayout:function(){var S=this;!1!==y.notify(S,"beforeLayout")&&(f.update(this,this.width,this.height),y.notify(S,"afterScaleUpdate"),y.notify(S,"afterLayout"))},updateDatasets:function(){var S=this;if(!1!==y.notify(S,"beforeDatasetsUpdate")){for(var k=0,L=S.data.datasets.length;k"u"&&0!==U.duration)){var K=new p.Animation({numSteps:(L||U.duration)/16.66,easing:S.easing||U.easing,render:function(ie,ve){var Q=ve.currentStep,de=Q/ve.numSteps;ie.draw((0,_.easing.effects[ve.easing])(de),de,Q)},onAnimationProgress:U.onProgress,onAnimationComplete:H});p.animationService.addAnimation(k,K,L,A)}else k.draw(),H(new p.Animation({numSteps:0,chart:k}));return k}},draw:function(S){var k=this;k.clear(),_.isNullOrUndef(S)&&(S=1),k.transition(S),!1!==y.notify(k,"beforeDraw",[S])&&(_.each(k.boxes,function(L){L.draw(k.chartArea)},k),k.scale&&k.scale.draw(),k.drawDatasets(S),k._drawTooltip(S),y.notify(k,"afterDraw",[S]))},transition:function(S){for(var k=this,L=0,A=(k.data.datasets||[]).length;L=0;--L)k.isDatasetVisible(L)&&k.drawDataset(L,S);y.notify(k,"afterDatasetsDraw",[S])}},drawDataset:function(S,k){var L=this,A=L.getDatasetMeta(S),U={meta:A,index:S,easingValue:k};!1!==y.notify(L,"beforeDatasetDraw",[U])&&(A.controller.draw(k),y.notify(L,"afterDatasetDraw",[U]))},_drawTooltip:function(S){var k=this,L=k.tooltip,A={tooltip:L,easingValue:S};!1!==y.notify(k,"beforeTooltipDraw",[A])&&(L.draw(),y.notify(k,"afterTooltipDraw",[A]))},getElementAtEvent:function(S){return u.modes.single(this,S)},getElementsAtEvent:function(S){return u.modes.label(this,S,{intersect:!0})},getElementsAtXAxis:function(S){return u.modes["x-axis"](this,S,{intersect:!0})},getElementsAtEventForMode:function(S,k,L){var A=u.modes[k];return"function"==typeof A?A(this,S,L):[]},getDatasetAtEvent:function(S){return u.modes.dataset(this,S,{intersect:!0})},getDatasetMeta:function(S){var k=this,L=k.data.datasets[S];L._meta||(L._meta={});var A=L._meta[k.id];return A||(A=L._meta[k.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),A},getVisibleDatasetCount:function(){for(var S=0,k=0,L=this.data.datasets.length;k{"use strict";var O=N(3305);he.exports=function(_){var u=["push","pop","shift","splice","unshift"];function h(y,p){var v=y._chartjs;if(v){var C=v.listeners,T=C.indexOf(p);-1!==T&&C.splice(T,1),!(C.length>0)&&(u.forEach(function(S){delete y[S]}),delete y._chartjs)}}_.DatasetController=function(y,p){this.initialize(y,p)},O.extend(_.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(y,p){var v=this;v.chart=y,v.index=p,v.linkScales(),v.addElements()},updateIndex:function(y){this.index=y},linkScales:function(){var y=this,p=y.getMeta(),v=y.getDataset();(null===p.xAxisID||!(p.xAxisID in y.chart.scales))&&(p.xAxisID=v.xAxisID||y.chart.options.scales.xAxes[0].id),(null===p.yAxisID||!(p.yAxisID in y.chart.scales))&&(p.yAxisID=v.yAxisID||y.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(y){return this.chart.scales[y]},reset:function(){this.update(!0)},destroy:function(){this._data&&h(this._data,this)},createMetaDataset:function(){var y=this,p=y.datasetElementType;return p&&new p({_chart:y.chart,_datasetIndex:y.index})},createMetaData:function(y){var p=this,v=p.dataElementType;return v&&new v({_chart:p.chart,_datasetIndex:p.index,_index:y})},addElements:function(){var T,S,y=this,p=y.getMeta(),v=y.getDataset().data||[],C=p.data;for(T=0,S=v.length;TC&&y.insertElements(C,T-C)},insertElements:function(y,p){for(var v=0;v{"use strict";var O=N(3305);he.exports={_set:function(_,u){return O.merge(this[_]||(this[_]={}),u)}}},8839:(he,ge,N)=>{"use strict";var O=N(7726),_=N(3305),f=function(h){_.extend(this,h),this.initialize.apply(this,arguments)};_.extend(f.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var h=this;return h._view||(h._view=_.clone(h._model)),h._start={},h},transition:function(h){var y=this,p=y._model,v=y._start,C=y._view;return p&&1!==h?(C||(C=y._view={}),v||(v=y._start={}),function u(h,y,p,v){var T,S,k,L,A,U,H,K,ie,C=Object.keys(p);for(T=0,S=C.length;T{"use strict";var O=N(7726),_=N(9800),u=N(3305);he.exports=function(f){function h(v,C,T){var S;return"string"==typeof v?(S=parseInt(v,10),-1!==v.indexOf("%")&&(S=S/100*C.parentNode[T])):S=v,S}function y(v){return null!=v&&"none"!==v}function p(v,C,T){var S=document.defaultView,k=v.parentNode,L=S.getComputedStyle(v)[C],A=S.getComputedStyle(k)[C],U=y(L),H=y(A),K=Number.POSITIVE_INFINITY;return U||H?Math.min(U?h(L,v,T):K,H?h(A,k,T):K):"none"}u.configMerge=function(){return u.merge(u.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(v,C,T,S){var k=C[v]||{},L=T[v];"scales"===v?C[v]=u.scaleMerge(k,L):"scale"===v?C[v]=u.merge(k,[f.scaleService.getScaleDefaults(L.type),L]):u._merger(v,C,T,S)}})},u.scaleMerge=function(){return u.merge(u.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(v,C,T,S){if("xAxes"===v||"yAxes"===v){var L,A,U,k=T[v].length;for(C[v]||(C[v]=[]),L=0;L=C[v].length&&C[v].push({}),u.merge(C[v][L],!C[v][L].type||U.type&&U.type!==C[v][L].type?[f.scaleService.getScaleDefaults(A),U]:U)}else u._merger(v,C,T,S)}})},u.where=function(v,C){if(u.isArray(v)&&Array.prototype.filter)return v.filter(C);var T=[];return u.each(v,function(S){C(S)&&T.push(S)}),T},u.findIndex=Array.prototype.findIndex?function(v,C,T){return v.findIndex(C,T)}:function(v,C,T){T=void 0===T?v:T;for(var S=0,k=v.length;S=0;S--){var k=v[S];if(C(k))return k}},u.isNumber=function(v){return!isNaN(parseFloat(v))&&isFinite(v)},u.almostEquals=function(v,C,T){return Math.abs(v-C)v},u.max=function(v){return v.reduce(function(C,T){return isNaN(T)?C:Math.max(C,T)},Number.NEGATIVE_INFINITY)},u.min=function(v){return v.reduce(function(C,T){return isNaN(T)?C:Math.min(C,T)},Number.POSITIVE_INFINITY)},u.sign=Math.sign?function(v){return Math.sign(v)}:function(v){return 0==(v=+v)||isNaN(v)?v:v>0?1:-1},u.log10=Math.log10?function(v){return Math.log10(v)}:function(v){var C=Math.log(v)*Math.LOG10E,T=Math.round(C);return v===Math.pow(10,T)?T:C},u.toRadians=function(v){return v*(Math.PI/180)},u.toDegrees=function(v){return v*(180/Math.PI)},u.getAngleFromPoint=function(v,C){var T=C.x-v.x,S=C.y-v.y,k=Math.sqrt(T*T+S*S),L=Math.atan2(S,T);return L<-.5*Math.PI&&(L+=2*Math.PI),{angle:L,distance:k}},u.distanceBetweenPoints=function(v,C){return Math.sqrt(Math.pow(C.x-v.x,2)+Math.pow(C.y-v.y,2))},u.aliasPixel=function(v){return v%2==0?0:.5},u.splineCurve=function(v,C,T,S){var k=v.skip?C:v,L=C,A=T.skip?C:T,U=Math.sqrt(Math.pow(L.x-k.x,2)+Math.pow(L.y-k.y,2)),H=Math.sqrt(Math.pow(A.x-L.x,2)+Math.pow(A.y-L.y,2)),K=U/(U+H),ie=H/(U+H),ve=S*(K=isNaN(K)?0:K),Z=S*(ie=isNaN(ie)?0:ie);return{previous:{x:L.x-ve*(A.x-k.x),y:L.y-ve*(A.y-k.y)},next:{x:L.x+Z*(A.x-k.x),y:L.y+Z*(A.y-k.y)}}},u.EPSILON=Number.EPSILON||1e-14,u.splineCurveMonotone=function(v){var S,k,L,A,H,K,ie,ve,Z,C=(v||[]).map(function(Q){return{model:Q._model,deltaK:0,mK:0}}),T=C.length;for(S=0;S0?C[S-1]:null,(A=S0?C[S-1]:null)&&!k.model.skip&&(L.model.controlPointPreviousX=L.model.x-(Z=(L.model.x-k.model.x)/3),L.model.controlPointPreviousY=L.model.y-Z*L.mK),A&&!A.model.skip&&(L.model.controlPointNextX=L.model.x+(Z=(A.model.x-L.model.x)/3),L.model.controlPointNextY=L.model.y+Z*L.mK))},u.nextItem=function(v,C,T){return T?C>=v.length-1?v[0]:v[C+1]:C>=v.length-1?v[v.length-1]:v[C+1]},u.previousItem=function(v,C,T){return T?C<=0?v[v.length-1]:v[C-1]:C<=0?v[0]:v[C-1]},u.niceNum=function(v,C){var T=Math.floor(u.log10(v)),S=v/Math.pow(10,T);return(C?S<1.5?1:S<3?2:S<7?5:10:S<=1?1:S<=2?2:S<=5?5:10)*Math.pow(10,T)},u.requestAnimFrame=typeof window>"u"?function(v){v()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(v){return window.setTimeout(v,1e3/60)},u.getRelativePosition=function(v,C){var T,S,k=v.originalEvent||v,L=v.currentTarget||v.srcElement,A=L.getBoundingClientRect(),U=k.touches;U&&U.length>0?(T=U[0].clientX,S=U[0].clientY):(T=k.clientX,S=k.clientY);var H=parseFloat(u.getStyle(L,"padding-left")),K=parseFloat(u.getStyle(L,"padding-top")),ie=parseFloat(u.getStyle(L,"padding-right")),ve=parseFloat(u.getStyle(L,"padding-bottom")),Q=A.bottom-A.top-K-ve;return{x:T=Math.round((T-A.left-H)/(A.right-A.left-H-ie)*L.width/C.currentDevicePixelRatio),y:S=Math.round((S-A.top-K)/Q*L.height/C.currentDevicePixelRatio)}},u.getConstraintWidth=function(v){return p(v,"max-width","clientWidth")},u.getConstraintHeight=function(v){return p(v,"max-height","clientHeight")},u.getMaximumWidth=function(v){var C=v.parentNode;if(!C)return v.clientWidth;var T=parseInt(u.getStyle(C,"padding-left"),10),S=parseInt(u.getStyle(C,"padding-right"),10),k=C.clientWidth-T-S,L=u.getConstraintWidth(v);return isNaN(L)?k:Math.min(k,L)},u.getMaximumHeight=function(v){var C=v.parentNode;if(!C)return v.clientHeight;var T=parseInt(u.getStyle(C,"padding-top"),10),S=parseInt(u.getStyle(C,"padding-bottom"),10),k=C.clientHeight-T-S,L=u.getConstraintHeight(v);return isNaN(L)?k:Math.min(k,L)},u.getStyle=function(v,C){return v.currentStyle?v.currentStyle[C]:document.defaultView.getComputedStyle(v,null).getPropertyValue(C)},u.retinaScale=function(v,C){var T=v.currentDevicePixelRatio=C||window.devicePixelRatio||1;if(1!==T){var S=v.canvas,k=v.height,L=v.width;S.height=k*T,S.width=L*T,v.ctx.scale(T,T),!S.style.height&&!S.style.width&&(S.style.height=k+"px",S.style.width=L+"px")}},u.fontString=function(v,C,T){return C+" "+v+"px "+T},u.longestText=function(v,C,T,S){var k=(S=S||{}).data=S.data||{},L=S.garbageCollect=S.garbageCollect||[];S.font!==C&&(k=S.data={},L=S.garbageCollect=[],S.font=C),v.font=C;var A=0;u.each(T,function(K){null!=K&&!0!==u.isArray(K)?A=u.measureText(v,k,L,A,K):u.isArray(K)&&u.each(K,function(ie){null!=ie&&!u.isArray(ie)&&(A=u.measureText(v,k,L,A,ie))})});var U=L.length/2;if(U>T.length){for(var H=0;HS&&(S=L),S},u.numberOfLabelLines=function(v){var C=1;return u.each(v,function(T){u.isArray(T)&&T.length>C&&(C=T.length)}),C},u.color=O?function(v){return v instanceof CanvasGradient&&(v=_.global.defaultColor),O(v)}:function(v){return console.error("Color.js not found!"),v},u.getHoverColor=function(v){return v instanceof CanvasPattern?v:u.color(v).saturate(.5).darken(.1).rgbString()}}},2814:(he,ge,N)=>{"use strict";var O=N(3305);function _(v,C){return v.native?{x:v.x,y:v.y}:O.getRelativePosition(v,C)}function u(v,C){var S,k,L,A,U;for(k=0,A=v.data.datasets.length;k0&&(L=v.getDatasetMeta(L[0]._datasetIndex).data),L},"x-axis":function(v,C){return p(v,C,{intersect:!1})},point:function(v,C){return f(v,_(C,v))},nearest:function(v,C,T){var S=_(C,v);T.axis=T.axis||"xy";var k=y(T.axis),L=h(v,S,T.intersect,k);return L.length>1&&L.sort(function(A,U){var ie=A.getArea()-U.getArea();return 0===ie&&(ie=A._datasetIndex-U._datasetIndex),ie}),L.slice(0,1)},x:function(v,C,T){var S=_(C,v),k=[],L=!1;return u(v,function(A){A.inXRange(S.x)&&k.push(A),A.inRange(S.x,S.y)&&(L=!0)}),T.intersect&&!L&&(k=[]),k},y:function(v,C,T){var S=_(C,v),k=[],L=!1;return u(v,function(A){A.inYRange(S.y)&&k.push(A),A.inRange(S.x,S.y)&&(L=!0)}),T.intersect&&!L&&(k=[]),k}}}},5979:(he,ge,N)=>{"use strict";N(9800)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),he.exports=function(){var _=function(u,f){return this.construct(u,f),this};return _.Chart=_,_}},2294:(he,ge,N)=>{"use strict";var O=N(3305);function _(f,h){return O.where(f,function(y){return y.position===h})}function u(f,h){f.forEach(function(y,p){return y._tmpIndex_=p,y}),f.sort(function(y,p){var v=h?p:y,C=h?y:p;return v.weight===C.weight?v._tmpIndex_-C._tmpIndex_:v.weight-C.weight}),f.forEach(function(y){delete y._tmpIndex_})}he.exports={defaults:{},addBox:function(f,h){f.boxes||(f.boxes=[]),h.fullWidth=h.fullWidth||!1,h.position=h.position||"top",h.weight=h.weight||0,f.boxes.push(h)},removeBox:function(f,h){var y=f.boxes?f.boxes.indexOf(h):-1;-1!==y&&f.boxes.splice(y,1)},configure:function(f,h,y){for(var T,p=["fullWidth","position","weight"],v=p.length,C=0;C{"use strict";var O=N(9800),_=N(3305);O._set("global",{plugins:{}}),he.exports={_plugins:[],_cacheId:0,register:function(u){var f=this._plugins;[].concat(u).forEach(function(h){-1===f.indexOf(h)&&f.push(h)}),this._cacheId++},unregister:function(u){var f=this._plugins;[].concat(u).forEach(function(h){var y=f.indexOf(h);-1!==y&&f.splice(y,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(u,f,h){var v,C,T,S,k,y=this.descriptors(u),p=y.length;for(v=0;v{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=N(8347);function h(p){var C,T,v=[];for(C=0,T=p.length;C"u"&&(S.minor[k]=S[k]),typeof S.major[k]>"u"&&(S.major[k]=S[k]))},beforeUpdate:function(){u.callback(this.options.beforeUpdate,[this])},update:function(S,k,L){var U,H,K,ie,ve,Z,A=this;for(A.beforeUpdate(),A.maxWidth=S,A.maxHeight=k,A.margins=u.extend({left:0,right:0,top:0,bottom:0},L),A.longestTextCache=A.longestTextCache||{},A.beforeSetDimensions(),A.setDimensions(),A.afterSetDimensions(),A.beforeDataLimits(),A.determineDataLimits(),A.afterDataLimits(),A.beforeBuildTicks(),ve=A.buildTicks()||[],A.afterBuildTicks(),A.beforeTickToLabelConversion(),K=A.convertTicksToLabels(ve)||A.ticks,A.afterTickToLabelConversion(),A.ticks=K,U=0,H=K.length;UQ&&HS.maxHeight){H--;break}H++,ie=ve*K}S.labelRotation=H},afterCalculateTickRotation:function(){u.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){u.callback(this.options.beforeFit,[this])},fit:function(){var S=this,k=S.minSize={width:0,height:0},L=h(S._ticks),A=S.options,U=A.ticks,H=A.scaleLabel,K=A.gridLines,ie=A.display,ve=S.isHorizontal(),Z=C(U),Q=A.gridLines.tickMarkLength;if(k.width=ve?S.isFullWidth()?S.maxWidth-S.margins.left-S.margins.right:S.maxWidth:ie&&K.drawTicks?Q:0,k.height=ve?ie&&K.drawTicks?Q:0:S.maxHeight,H.display&&ie){var J=T(H)+u.options.toPadding(H.padding).height;ve?k.height+=J:k.width+=J}if(U.display&&ie){var ee=u.longestText(S.ctx,Z.font,L,S.longestTextCache),ae=u.numberOfLabelLines(L),le=.5*Z.size,X=S.options.ticks.padding;if(ve){S.longestLabelWidth=ee;var Te=u.toRadians(S.labelRotation),Se=Math.cos(Te),Ce=Math.sin(Te);k.height=Math.min(S.maxHeight,k.height+(Ce*ee+Z.size*ae+le*(ae-1)+le)+X),S.ctx.font=Z.font;var tt=v(S.ctx,L[0],Z.font),ot=v(S.ctx,L[L.length-1],Z.font);0!==S.labelRotation?(S.paddingLeft="bottom"===A.position?Se*tt+3:Se*le+3,S.paddingRight="bottom"===A.position?Se*le+3:Se*ot+3):(S.paddingLeft=tt/2+3,S.paddingRight=ot/2+3)}else U.mirror?ee=0:ee+=X+le,k.width=Math.min(S.maxWidth,k.width+ee),S.paddingTop=Z.size/2,S.paddingBottom=Z.size/2}S.handleMargins(),S.width=k.width,S.height=k.height},handleMargins:function(){var S=this;S.margins&&(S.paddingLeft=Math.max(S.paddingLeft-S.margins.left,0),S.paddingTop=Math.max(S.paddingTop-S.margins.top,0),S.paddingRight=Math.max(S.paddingRight-S.margins.right,0),S.paddingBottom=Math.max(S.paddingBottom-S.margins.bottom,0))},afterFit:function(){u.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(S){if(u.isNullOrUndef(S))return NaN;if("number"==typeof S&&!isFinite(S))return NaN;if(S)if(this.isHorizontal()){if(void 0!==S.x)return this.getRightValue(S.x)}else if(void 0!==S.y)return this.getRightValue(S.y);return S},getLabelForIndex:u.noop,getPixelForValue:u.noop,getValueForPixel:u.noop,getPixelForTick:function(S){var k=this,L=k.options.offset;if(k.isHorizontal()){var U=(k.width-(k.paddingLeft+k.paddingRight))/Math.max(k._ticks.length-(L?0:1),1),H=U*S+k.paddingLeft;return L&&(H+=U/2),k.left+Math.round(H)+(k.isFullWidth()?k.margins.left:0)}return k.top+S*((k.height-(k.paddingTop+k.paddingBottom))/(k._ticks.length-1))},getPixelForDecimal:function(S){var k=this;return k.isHorizontal()?k.left+Math.round((k.width-(k.paddingLeft+k.paddingRight))*S+k.paddingLeft)+(k.isFullWidth()?k.margins.left:0):k.top+S*k.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var S=this,k=S.min,L=S.max;return S.beginAtZero?0:k<0&&L<0?L:k>0&&L>0?k:0},_autoSkip:function(S){var k,Q,de,J,L=this,A=L.isHorizontal(),U=L.options.ticks.minor,H=S.length,K=u.toRadians(L.labelRotation),ie=Math.cos(K),ve=L.longestLabelWidth*ie,Z=[];for(U.maxTicksLimit&&(J=U.maxTicksLimit),A&&(k=!1,(ve+U.autoSkipPadding)*H>L.width-(L.paddingLeft+L.paddingRight)&&(k=1+Math.floor((ve+U.autoSkipPadding)*H/(L.width-(L.paddingLeft+L.paddingRight)))),J&&H>J&&(k=Math.max(k,Math.floor(H/J)))),Q=0;Q1&&Q%k>0||Q%k==0&&Q+k>=H)&&Q!==H-1&&delete de.label,Z.push(de);return Z},draw:function(S){var k=this,L=k.options;if(L.display){var A=k.ctx,U=O.global,H=L.ticks.minor,K=L.ticks.major||H,ie=L.gridLines,ve=L.scaleLabel,Z=0!==k.labelRotation,Q=k.isHorizontal(),de=H.autoSkip?k._autoSkip(k.getTicks()):k.getTicks(),G=u.valueOrDefault(H.fontColor,U.defaultFontColor),J=C(H),ee=u.valueOrDefault(K.fontColor,U.defaultFontColor),ae=C(K),le=ie.drawTicks?ie.tickMarkLength:0,X=u.valueOrDefault(ve.fontColor,U.defaultFontColor),Te=C(ve),Se=u.options.toPadding(ve.padding),Ce=u.toRadians(k.labelRotation),Ve=[],tt=k.options.gridLines.lineWidth,ot="right"===L.position?k.right:k.right-tt-le,st="right"===L.position?k.right+le:k.right,Nt="bottom"===L.position?k.top+tt:k.bottom-le-tt,en="bottom"===L.position?k.top+tt+le:k.bottom+tt;if(u.each(de,function(ne,me){if(!u.isNullOrUndef(ne.label)){var ue,be,_e,Me,fe=ne.label;me===k.zeroLineIndex&&L.offset===ie.offsetGridLines?(ue=ie.zeroLineWidth,be=ie.zeroLineColor,_e=ie.zeroLineBorderDash,Me=ie.zeroLineBorderDashOffset):(ue=u.valueAtIndexOrDefault(ie.lineWidth,me),be=u.valueAtIndexOrDefault(ie.color,me),_e=u.valueOrDefault(ie.borderDash,U.borderDash),Me=u.valueOrDefault(ie.borderDashOffset,U.borderDashOffset));var De,Ee,Ne,ut,_t,rt,sn,Pn,vt,jt,jn="middle",oi="middle",Kr=H.padding;if(Q){var So=le+Kr;"bottom"===L.position?(oi=Z?"middle":"top",jn=Z?"right":"center",jt=k.top+So):(oi=Z?"middle":"bottom",jn=Z?"left":"center",jt=k.bottom-So);var Pi=y(k,me,ie.offsetGridLines&&de.length>1);Pi1);si{"use strict";var O=N(9800),_=N(3305),u=N(2294);he.exports=function(f){f.scaleService={constructors:{},defaults:{},registerScaleType:function(h,y,p){this.constructors[h]=y,this.defaults[h]=_.clone(p)},getScaleConstructor:function(h){return this.constructors.hasOwnProperty(h)?this.constructors[h]:void 0},getScaleDefaults:function(h){return this.defaults.hasOwnProperty(h)?_.merge({},[O.scale,this.defaults[h]]):{}},updateScaleDefaults:function(h,y){var p=this;p.defaults.hasOwnProperty(h)&&(p.defaults[h]=_.extend(p.defaults[h],y))},addScalesToLayout:function(h){_.each(h.scales,function(y){y.fullWidth=y.options.fullWidth,y.position=y.options.position,y.weight=y.options.weight,u.addBox(h,y)})}}}},8347:(he,ge,N)=>{"use strict";var O=N(3305);he.exports={formatters:{values:function(_){return O.isArray(_)?_:""+_},linear:function(_,u,f){var h=f.length>3?f[2]-f[1]:f[1]-f[0];Math.abs(h)>1&&_!==Math.floor(_)&&(h=_-Math.floor(_));var y=O.log10(Math.abs(h)),p="";if(0!==_){var v=-1*Math.floor(y);v=Math.max(Math.min(v,20),0),p=_.toFixed(v)}else p="0";return p},logarithmic:function(_,u,f){var h=_/Math.pow(10,Math.floor(O.log10(_)));return 0===_?"0":1===h||2===h||5===h||0===u||u===f.length-1?_.toExponential():""}}}},480:(he,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305);O._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:u.noop,title:function(f,h){var y="",p=h.labels,v=p?p.length:0;if(f.length>0){var C=f[0];C.xLabel?y=C.xLabel:v>0&&C.indexU.height-L.height&&(ie="bottom");var ve,Z,Q,de,G,J=(H.left+H.right)/2,ee=(H.top+H.bottom)/2;"center"===ie?(ve=function(le){return le<=J},Z=function(le){return le>J}):(ve=function(le){return le<=L.width/2},Z=function(le){return le>=U.width-L.width/2}),Q=function(le){return le+L.width+A.caretSize+A.caretPadding>U.width},de=function(le){return le-L.width-A.caretSize-A.caretPadding<0},G=function(le){return le<=ee?"top":"bottom"},ve(A.x)?(K="left",Q(A.x)&&(K="center",ie=G(A.y))):Z(A.x)&&(K="right",de(A.x)&&(K="center",ie=G(A.y)));var ae=k._options;return{xAlign:ae.xAlign?ae.xAlign:K,yAlign:ae.yAlign?ae.yAlign:ie}}(this,Q),Z=function S(k,L,A,U){var H=k.x,K=k.y,ve=k.caretPadding,Q=A.xAlign,de=A.yAlign,G=k.caretSize+ve,J=k.cornerRadius+ve;return"right"===Q?H-=L.width:"center"===Q&&((H-=L.width/2)+L.width>U.width&&(H=U.width-L.width),H<0&&(H=0)),"top"===de?K+=G:K-="bottom"===de?L.height+G:L.height/2,"center"===de?"left"===Q?H+=G:"right"===Q&&(H-=G):"left"===Q?H-=J:"right"===Q&&(H+=J),{x:H,y:K}}(H,Q,ve,L._chart)}else H.opacity=0;return H.xAlign=ve.xAlign,H.yAlign=ve.yAlign,H.x=Z.x,H.y=Z.y,H.width=Q.width,H.height=Q.height,H.caretX=de.x,H.caretY=de.y,L._model=H,k&&A.custom&&A.custom.call(L,H),L},drawCaret:function(k,L){var A=this._chart.ctx,H=this.getCaretPosition(k,L,this._view);A.lineTo(H.x1,H.y1),A.lineTo(H.x2,H.y2),A.lineTo(H.x3,H.y3)},getCaretPosition:function(k,L,A){var U,H,K,ie,ve,Z,Q=A.caretSize,de=A.cornerRadius,G=A.xAlign,J=A.yAlign,ee=k.x,ae=k.y,le=L.width,X=L.height;if("center"===J)ve=ae+X/2,"left"===G?(H=(U=ee)-Q,K=U,ie=ve+Q,Z=ve-Q):(H=(U=ee+le)+Q,K=U,ie=ve-Q,Z=ve+Q);else if("left"===G?(U=(H=ee+de+Q)-Q,K=H+Q):"right"===G?(U=(H=ee+le-de-Q)-Q,K=H+Q):(U=(H=A.caretX)-Q,K=H+Q),"top"===J)ve=(ie=ae)-Q,Z=ie;else{ve=(ie=ae+X)+Q,Z=ie;var Te=K;K=U,U=Te}return{x1:U,x2:H,x3:K,y1:ie,y2:ve,y3:Z}},drawTitle:function(k,L,A,U){var H=L.title;if(H.length){A.textAlign=L._titleAlign,A.textBaseline="top";var ve,Z,K=L.titleFontSize,ie=L.titleSpacing;for(A.fillStyle=h(L.titleFontColor,U),A.font=u.fontString(K,L._titleFontStyle,L._titleFontFamily),ve=0,Z=H.length;ve0&&A.stroke()},draw:function(){var k=this._chart.ctx,L=this._view;if(0!==L.opacity){var A={width:L.width,height:L.height},U={x:L.x,y:L.y},H=Math.abs(L.opacity<.001)?0:L.opacity;this._options.enabled&&(L.title.length||L.beforeBody.length||L.body.length||L.afterBody.length||L.footer.length)&&(this.drawBackground(U,L,k,A,H),U.x+=L.xPadding,U.y+=L.yPadding,this.drawTitle(U,L,k,H),this.drawBody(U,L,k,H),this.drawFooter(U,L,k,H))}},handleEvent:function(k){var U,L=this,A=L._options;return L._lastActive=L._lastActive||[],L._active="mouseout"===k.type?[]:L._chart.getElementsAtEventForMode(k,A.mode,A),(U=!u.arrayEquals(L._active,L._lastActive))&&(L._lastActive=L._active,(A.enabled||A.custom)&&(L._eventPosition={x:k.x,y:k.y},L.update(!0),L.pivot())),U}}),f.Tooltip.positioners={average:function(k){if(!k.length)return!1;var L,A,U=0,H=0,K=0;for(L=0,A=k.length;L{"use strict";var O=N(9800),_=N(8839),u=N(3305);O._set("global",{elements:{arc:{backgroundColor:O.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),he.exports=_.extend({inLabelRange:function(f){var h=this._view;return!!h&&Math.pow(f-h.x,2)S;)v-=2*Math.PI;for(;v=T&&v<=S&&C>=y.innerRadius&&C<=y.outerRadius}return!1},getCenterPoint:function(){var f=this._view,h=(f.startAngle+f.endAngle)/2,y=(f.innerRadius+f.outerRadius)/2;return{x:f.x+Math.cos(h)*y,y:f.y+Math.sin(h)*y}},getArea:function(){var f=this._view;return Math.PI*((f.endAngle-f.startAngle)/(2*Math.PI))*(Math.pow(f.outerRadius,2)-Math.pow(f.innerRadius,2))},tooltipPosition:function(){var f=this._view,h=f.startAngle+(f.endAngle-f.startAngle)/2,y=(f.outerRadius-f.innerRadius)/2+f.innerRadius;return{x:f.x+Math.cos(h)*y,y:f.y+Math.sin(h)*y}},draw:function(){var f=this._chart.ctx,h=this._view,y=h.startAngle,p=h.endAngle;f.beginPath(),f.arc(h.x,h.y,h.outerRadius,y,p),f.arc(h.x,h.y,h.innerRadius,p,y,!0),f.closePath(),f.strokeStyle=h.borderColor,f.lineWidth=h.borderWidth,f.fillStyle=h.backgroundColor,f.fill(),f.lineJoin="bevel",h.borderWidth&&f.stroke()}})},3819:(he,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=O.global;O._set("global",{elements:{line:{tension:.4,backgroundColor:f.defaultColor,borderWidth:3,borderColor:f.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),he.exports=_.extend({draw:function(){var k,L,A,U,h=this,y=h._view,p=h._chart.ctx,v=y.spanGaps,C=h._children.slice(),T=f.elements.line,S=-1;for(h._loop&&C.length&&C.push(C[0]),p.save(),p.lineCap=y.borderCapStyle||T.borderCapStyle,p.setLineDash&&p.setLineDash(y.borderDash||T.borderDash),p.lineDashOffset=y.borderDashOffset||T.borderDashOffset,p.lineJoin=y.borderJoinStyle||T.borderJoinStyle,p.lineWidth=y.borderWidth||T.borderWidth,p.strokeStyle=y.borderColor||f.defaultColor,p.beginPath(),S=-1,k=0;k{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=O.global.defaultColor;function h(p){var v=this._view;return!!v&&Math.abs(p-v.x){"use strict";var O=N(9800),_=N(8839);function u(h){return void 0!==h._view.width}function f(h){var p,v,C,T,y=h._view;if(u(h)){var S=y.width/2;p=y.x-S,v=y.x+S,C=Math.min(y.y,y.base),T=Math.max(y.y,y.base)}else{var k=y.height/2;p=Math.min(y.x,y.base),v=Math.max(y.x,y.base),C=y.y-k,T=y.y+k}return{left:p,top:C,right:v,bottom:T}}O._set("global",{elements:{rectangle:{backgroundColor:O.global.defaultColor,borderColor:O.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),he.exports=_.extend({draw:function(){var p,v,C,T,S,k,L,h=this._chart.ctx,y=this._view,A=y.borderWidth;if(y.horizontal?(C=y.y-y.height/2,T=y.y+y.height/2,S=(v=y.x)>(p=y.base)?1:-1,k=1,L=y.borderSkipped||"left"):(p=y.x-y.width/2,v=y.x+y.width/2,S=1,k=(T=y.base)>(C=y.y)?1:-1,L=y.borderSkipped||"bottom"),A){var U=Math.min(Math.abs(p-v),Math.abs(C-T)),H=(A=A>U?U:A)/2,K=p+("left"!==L?H*S:0),ie=v+("right"!==L?-H*S:0),ve=C+("top"!==L?H*k:0),Z=T+("bottom"!==L?-H*k:0);K!==ie&&(C=ve,T=Z),ve!==Z&&(p=K,v=ie)}h.beginPath(),h.fillStyle=y.backgroundColor,h.strokeStyle=y.borderColor,h.lineWidth=A;var Q=[[p,T],[p,C],[v,C],[v,T]],G=["bottom","left","top","right"].indexOf(L,0);function J(le){return Q[(G+le)%4]}-1===G&&(G=0);var ee=J(0);h.moveTo(ee[0],ee[1]);for(var ae=1;ae<4;ae++)ee=J(ae),h.lineTo(ee[0],ee[1]);h.fill(),A&&h.stroke()},height:function(){var h=this._view;return h.base-h.y},inRange:function(h,y){var p=!1;if(this._view){var v=f(this);p=h>=v.left&&h<=v.right&&y>=v.top&&y<=v.bottom}return p},inLabelRange:function(h,y){var p=this;if(!p._view)return!1;var C=f(p);return u(p)?h>=C.left&&h<=C.right:y>=C.top&&y<=C.bottom},inXRange:function(h){var y=f(this);return h>=y.left&&h<=y.right},inYRange:function(h){var y=f(this);return h>=y.top&&h<=y.bottom},getCenterPoint:function(){var y,p,h=this._view;return u(this)?(y=h.x,p=(h.y+h.base)/2):(y=(h.x+h.base)/2,p=h.y),{x:y,y:p}},getArea:function(){var h=this._view;return h.width*Math.abs(h.y-h.base)},tooltipPosition:function(){var h=this._view;return{x:h.x,y:h.y}}})},9931:(he,ge,N)=>{"use strict";he.exports={},he.exports.Arc=N(280),he.exports.Line=N(3819),he.exports.Point=N(4674),he.exports.Rectangle=N(8667)},2397:(he,ge,N)=>{"use strict";var O=N(4396),_=he.exports={clear:function(u){u.ctx.clearRect(0,0,u.width,u.height)},roundedRect:function(u,f,h,y,p,v){if(v){var C=Math.min(v,y/2),T=Math.min(v,p/2);u.moveTo(f+C,h),u.lineTo(f+y-C,h),u.quadraticCurveTo(f+y,h,f+y,h+T),u.lineTo(f+y,h+p-T),u.quadraticCurveTo(f+y,h+p,f+y-C,h+p),u.lineTo(f+C,h+p),u.quadraticCurveTo(f,h+p,f,h+p-T),u.lineTo(f,h+T),u.quadraticCurveTo(f,h,f+C,h)}else u.rect(f,h,y,p)},drawPoint:function(u,f,h,y,p){var v,C,T,S,k,L;if(!f||"object"!=typeof f||"[object HTMLImageElement]"!==(v=f.toString())&&"[object HTMLCanvasElement]"!==v){if(!(isNaN(h)||h<=0)){switch(f){default:u.beginPath(),u.arc(y,p,h,0,2*Math.PI),u.closePath(),u.fill();break;case"triangle":u.beginPath(),k=(C=3*h/Math.sqrt(3))*Math.sqrt(3)/2,u.moveTo(y-C/2,p+k/3),u.lineTo(y+C/2,p+k/3),u.lineTo(y,p-2*k/3),u.closePath(),u.fill();break;case"rect":L=1/Math.SQRT2*h,u.beginPath(),u.fillRect(y-L,p-L,2*L,2*L),u.strokeRect(y-L,p-L,2*L,2*L);break;case"rectRounded":var A=h/Math.SQRT2,U=y-A,H=p-A,K=Math.SQRT2*h;u.beginPath(),this.roundedRect(u,U,H,K,K,h/2),u.closePath(),u.fill();break;case"rectRot":L=1/Math.SQRT2*h,u.beginPath(),u.moveTo(y-L,p),u.lineTo(y,p+L),u.lineTo(y+L,p),u.lineTo(y,p-L),u.closePath(),u.fill();break;case"cross":u.beginPath(),u.moveTo(y,p+h),u.lineTo(y,p-h),u.moveTo(y-h,p),u.lineTo(y+h,p),u.closePath();break;case"crossRot":u.beginPath(),T=Math.cos(Math.PI/4)*h,S=Math.sin(Math.PI/4)*h,u.moveTo(y-T,p-S),u.lineTo(y+T,p+S),u.moveTo(y-T,p+S),u.lineTo(y+T,p-S),u.closePath();break;case"star":u.beginPath(),u.moveTo(y,p+h),u.lineTo(y,p-h),u.moveTo(y-h,p),u.lineTo(y+h,p),T=Math.cos(Math.PI/4)*h,S=Math.sin(Math.PI/4)*h,u.moveTo(y-T,p-S),u.lineTo(y+T,p+S),u.moveTo(y-T,p+S),u.lineTo(y+T,p-S),u.closePath();break;case"line":u.beginPath(),u.moveTo(y-h,p),u.lineTo(y+h,p),u.closePath();break;case"dash":u.beginPath(),u.moveTo(y,p),u.lineTo(y+h,p),u.closePath()}u.stroke()}}else u.drawImage(f,y-f.width/2,p-f.height/2,f.width,f.height)},clipArea:function(u,f){u.save(),u.beginPath(),u.rect(f.left,f.top,f.right-f.left,f.bottom-f.top),u.clip()},unclipArea:function(u){u.restore()},lineTo:function(u,f,h,y){if(h.steppedLine)return"after"===h.steppedLine&&!y||"after"!==h.steppedLine&&y?u.lineTo(f.x,h.y):u.lineTo(h.x,f.y),void u.lineTo(h.x,h.y);h.tension?u.bezierCurveTo(y?f.controlPointPreviousX:f.controlPointNextX,y?f.controlPointPreviousY:f.controlPointNextY,y?h.controlPointNextX:h.controlPointPreviousX,y?h.controlPointNextY:h.controlPointPreviousY,h.x,h.y):u.lineTo(h.x,h.y)}};O.clear=_.clear,O.drawRoundedRectangle=function(u){u.beginPath(),_.roundedRect.apply(_,arguments),u.closePath()}},4396:he=>{"use strict";var N,ge={noop:function(){},uid:(N=0,function(){return N++}),isNullOrUndef:function(N){return null===N||typeof N>"u"},isArray:Array.isArray?Array.isArray:function(N){return"[object Array]"===Object.prototype.toString.call(N)},isObject:function(N){return null!==N&&"[object Object]"===Object.prototype.toString.call(N)},valueOrDefault:function(N,O){return typeof N>"u"?O:N},valueAtIndexOrDefault:function(N,O,_){return ge.valueOrDefault(ge.isArray(N)?N[O]:N,_)},callback:function(N,O,_){if(N&&"function"==typeof N.call)return N.apply(_,O)},each:function(N,O,_,u){var f,h,y;if(ge.isArray(N))if(h=N.length,u)for(f=h-1;f>=0;f--)O.call(_,N[f],f);else for(f=0;f{"use strict";var O=N(4396),_={linear:function(u){return u},easeInQuad:function(u){return u*u},easeOutQuad:function(u){return-u*(u-2)},easeInOutQuad:function(u){return(u/=.5)<1?.5*u*u:-.5*(--u*(u-2)-1)},easeInCubic:function(u){return u*u*u},easeOutCubic:function(u){return(u-=1)*u*u+1},easeInOutCubic:function(u){return(u/=.5)<1?.5*u*u*u:.5*((u-=2)*u*u+2)},easeInQuart:function(u){return u*u*u*u},easeOutQuart:function(u){return-((u-=1)*u*u*u-1)},easeInOutQuart:function(u){return(u/=.5)<1?.5*u*u*u*u:-.5*((u-=2)*u*u*u-2)},easeInQuint:function(u){return u*u*u*u*u},easeOutQuint:function(u){return(u-=1)*u*u*u*u+1},easeInOutQuint:function(u){return(u/=.5)<1?.5*u*u*u*u*u:.5*((u-=2)*u*u*u*u+2)},easeInSine:function(u){return 1-Math.cos(u*(Math.PI/2))},easeOutSine:function(u){return Math.sin(u*(Math.PI/2))},easeInOutSine:function(u){return-.5*(Math.cos(Math.PI*u)-1)},easeInExpo:function(u){return 0===u?0:Math.pow(2,10*(u-1))},easeOutExpo:function(u){return 1===u?1:1-Math.pow(2,-10*u)},easeInOutExpo:function(u){return 0===u?0:1===u?1:(u/=.5)<1?.5*Math.pow(2,10*(u-1)):.5*(2-Math.pow(2,-10*--u))},easeInCirc:function(u){return u>=1?u:-(Math.sqrt(1-u*u)-1)},easeOutCirc:function(u){return Math.sqrt(1-(u-=1)*u)},easeInOutCirc:function(u){return(u/=.5)<1?-.5*(Math.sqrt(1-u*u)-1):.5*(Math.sqrt(1-(u-=2)*u)+1)},easeInElastic:function(u){var f=1.70158,h=0,y=1;return 0===u?0:1===u?1:(h||(h=.3),y<1?(y=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/y),-y*Math.pow(2,10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h))},easeOutElastic:function(u){var f=1.70158,h=0,y=1;return 0===u?0:1===u?1:(h||(h=.3),y<1?(y=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/y),y*Math.pow(2,-10*u)*Math.sin((u-f)*(2*Math.PI)/h)+1)},easeInOutElastic:function(u){var f=1.70158,h=0,y=1;return 0===u?0:2==(u/=.5)?1:(h||(h=.45),y<1?(y=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/y),u<1?y*Math.pow(2,10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h)*-.5:y*Math.pow(2,-10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h)*.5+1)},easeInBack:function(u){var f=1.70158;return u*u*((f+1)*u-f)},easeOutBack:function(u){var f=1.70158;return(u-=1)*u*((f+1)*u+f)+1},easeInOutBack:function(u){var f=1.70158;return(u/=.5)<1?u*u*((1+(f*=1.525))*u-f)*.5:.5*((u-=2)*u*((1+(f*=1.525))*u+f)+2)},easeInBounce:function(u){return 1-_.easeOutBounce(1-u)},easeOutBounce:function(u){return u<1/2.75?7.5625*u*u:u<2/2.75?7.5625*(u-=1.5/2.75)*u+.75:u<2.5/2.75?7.5625*(u-=2.25/2.75)*u+.9375:7.5625*(u-=2.625/2.75)*u+.984375},easeInOutBounce:function(u){return u<.5?.5*_.easeInBounce(2*u):.5*_.easeOutBounce(2*u-1)+.5}};he.exports={effects:_},O.easingEffects=_},5347:(he,ge,N)=>{"use strict";var O=N(4396);he.exports={toLineHeight:function(_,u){var f=(""+_).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!f||"normal"===f[1])return 1.2*u;switch(_=+f[2],f[3]){case"px":return _;case"%":_/=100}return u*_},toPadding:function(_){var u,f,h,y;return O.isObject(_)?(u=+_.top||0,f=+_.right||0,h=+_.bottom||0,y=+_.left||0):u=f=h=y=+_||0,{top:u,right:f,bottom:h,left:y,height:u+h,width:y+f}},resolve:function(_,u,f){var h,y,p;for(h=0,y=_.length;h{"use strict";he.exports=N(4396),he.exports.easing=N(4317),he.exports.canvas=N(2397),he.exports.options=N(5347)},1607:he=>{he.exports={acquireContext:function(ge){return ge&&ge.canvas&&(ge=ge.canvas),ge&&ge.getContext("2d")||null}}},8005:(he,ge,N)=>{"use strict";var O=N(3305),_="$chartjs",u="chartjs-",f=u+"render-monitor",h=u+"render-animation",y=["animationstart","webkitAnimationStart"],p={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function v(G,J){var ee=O.getStyle(G,J),ae=ee&&ee.match(/^(\d+)(\.\d+)?px$/);return ae?Number(ae[1]):void 0}var S=!!function(){var G=!1;try{var J=Object.defineProperty({},"passive",{get:function(){G=!0}});window.addEventListener("e",null,J)}catch{}return G}()&&{passive:!0};function k(G,J,ee){G.addEventListener(J,ee,S)}function L(G,J,ee){G.removeEventListener(J,ee,S)}function A(G,J,ee,ae,le){return{type:G,chart:J,native:le||null,x:void 0!==ee?ee:null,y:void 0!==ae?ae:null}}he.exports={_enabled:typeof window<"u"&&typeof document<"u",initialize:function(){var G="from{opacity:0.99}to{opacity:1}";!function de(G,J){var ee=G._style||document.createElement("style");G._style||(G._style=ee,J="/* Chart.js */\n"+J,ee.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(ee)),ee.appendChild(document.createTextNode(J))}(this,"@-webkit-keyframes "+h+"{"+G+"}@keyframes "+h+"{"+G+"}."+f+"{-webkit-animation:"+h+" 0.001s;animation:"+h+" 0.001s;}")},acquireContext:function(G,J){"string"==typeof G?G=document.getElementById(G):G.length&&(G=G[0]),G&&G.canvas&&(G=G.canvas);var ee=G&&G.getContext&&G.getContext("2d");return ee&&ee.canvas===G?(function C(G,J){var ee=G.style,ae=G.getAttribute("height"),le=G.getAttribute("width");if(G[_]={initial:{height:ae,width:le,style:{display:ee.display,height:ee.height,width:ee.width}}},ee.display=ee.display||"block",null===le||""===le){var X=v(G,"width");void 0!==X&&(G.width=X)}if(null===ae||""===ae)if(""===G.style.height)G.height=G.width/(J.options.aspectRatio||2);else{var Te=v(G,"height");void 0!==X&&(G.height=Te)}}(G,J),ee):null},releaseContext:function(G){var J=G.canvas;if(J[_]){var ee=J[_].initial;["height","width"].forEach(function(ae){var le=ee[ae];O.isNullOrUndef(le)?J.removeAttribute(ae):J.setAttribute(ae,le)}),O.each(ee.style||{},function(ae,le){J.style[le]=ae}),J.width=J.width,delete J[_]}},addEventListener:function(G,J,ee){var ae=G.canvas;if("resize"!==J){var le=ee[_]||(ee[_]={}),Te=(le.proxies||(le.proxies={}))[G.id+"_"+J]=function(Se){ee(function U(G,J){var ee=p[G.type]||G.type,ae=O.getRelativePosition(G,J);return A(ee,J,ae.x,ae.y,G)}(Se,G))};k(ae,J,Te)}else!function Z(G,J,ee){var ae=G[_]||(G[_]={}),le=ae.resizer=function K(G){var J=document.createElement("div"),ee=u+"size-monitor",ae=1e6,le="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";J.style.cssText=le,J.className=ee,J.innerHTML='
';var X=J.childNodes[0],Te=J.childNodes[1];J._reset=function(){X.scrollLeft=ae,X.scrollTop=ae,Te.scrollLeft=ae,Te.scrollTop=ae};var Se=function(){J._reset(),G()};return k(X,"scroll",Se.bind(X,"expand")),k(Te,"scroll",Se.bind(Te,"shrink")),J}(function H(G,J){var ee=!1,ae=[];return function(){ae=Array.prototype.slice.call(arguments),J=J||this,ee||(ee=!0,O.requestAnimFrame.call(window,function(){ee=!1,G.apply(J,ae)}))}}(function(){if(ae.resizer)return J(A("resize",ee))}));!function ie(G,J){var ee=G[_]||(G[_]={}),ae=ee.renderProxy=function(le){le.animationName===h&&J()};O.each(y,function(le){k(G,le,ae)}),ee.reflow=!!G.offsetParent,G.classList.add(f)}(G,function(){if(ae.resizer){var X=G.parentNode;X&&X!==le.parentNode&&X.insertBefore(le,X.firstChild),le._reset()}})}(ae,ee,G)},removeEventListener:function(G,J,ee){var ae=G.canvas;if("resize"!==J){var Te=((ee[_]||{}).proxies||{})[G.id+"_"+J];!Te||L(ae,J,Te)}else!function Q(G){var J=G[_]||{},ee=J.resizer;delete J.resizer,function ve(G){var J=G[_]||{},ee=J.renderProxy;ee&&(O.each(y,function(ae){L(G,ae,ee)}),delete J.renderProxy),G.classList.remove(f)}(G),ee&&ee.parentNode&&ee.parentNode.removeChild(ee)}(ae)}},O.addEvent=k,O.removeEvent=L},8244:(he,ge,N)=>{"use strict";var O=N(3305),_=N(1607),u=N(8005);he.exports=O.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},u._enabled?u:_)},6747:(he,ge,N)=>{"use strict";he.exports={},he.exports.filler=N(6579),he.exports.legend=N(2230),he.exports.title=N(7412)},6579:(he,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("global",{plugins:{filler:{propagate:!0}}});var f={dataset:function(k){var L=k.fill,A=k.chart,U=A.getDatasetMeta(L),K=U&&A.isDatasetVisible(L)&&U.dataset._children||[],ie=K.length||0;return ie?function(ve,Z){return Z=A)&&K;switch(H){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return H;default:return!1}}function y(k){var K,L=k.el._model||{},A=k.el._scale||{},U=k.fill,H=null;if(isFinite(U))return null;if("start"===U?H=void 0===L.scaleBottom?A.bottom:L.scaleBottom:"end"===U?H=void 0===L.scaleTop?A.top:L.scaleTop:void 0!==L.scaleZero?H=L.scaleZero:A.getBasePosition?H=A.getBasePosition():A.getBasePixel&&(H=A.getBasePixel()),null!=H){if(void 0!==H.x&&void 0!==H.y)return H;if("number"==typeof H&&isFinite(H))return{x:(K=A.isHorizontal())?H:null,y:K?null:H}}return null}function p(k,L,A){var ie,H=k[L].fill,K=[L];if(!A)return H;for(;!1!==H&&-1===K.indexOf(H);){if(!isFinite(H))return H;if(!(ie=k[H]))return!1;if(ie.visible)return H;K.push(H),H=ie.fill}return!1}function v(k){var L=k.fill,A="dataset";return!1===L?null:(isFinite(L)||(A="boundary"),f[A](k))}function C(k){return k&&!k.skip}function T(k,L,A,U,H){var K;if(U&&H){for(k.moveTo(L[0].x,L[0].y),K=1;K0;--K)u.canvas.lineTo(k,A[K],A[K-1],!0)}}he.exports={id:"filler",afterDatasetsUpdate:function(k,L){var K,ie,ve,Z,A=(k.data.datasets||[]).length,U=L.propagate,H=[];for(ie=0;ie{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=N(2294),h=u.noop;function y(C,T){return C.usePointStyle?T*Math.SQRT2:C.boxWidth}O._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(C,T){var S=T.datasetIndex,k=this.chart,L=k.getDatasetMeta(S);L.hidden=null===L.hidden?!k.data.datasets[S].hidden:null,k.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(C){var T=C.data;return u.isArray(T.datasets)?T.datasets.map(function(S,k){return{text:S.label,fillStyle:u.isArray(S.backgroundColor)?S.backgroundColor[0]:S.backgroundColor,hidden:!C.isDatasetVisible(k),lineCap:S.borderCapStyle,lineDash:S.borderDash,lineDashOffset:S.borderDashOffset,lineJoin:S.borderJoinStyle,lineWidth:S.borderWidth,strokeStyle:S.borderColor,pointStyle:S.pointStyle,datasetIndex:k}},this):[]}}},legendCallback:function(C){var T=[];T.push('
    ');for(var S=0;S'),C.data.datasets[S].label&&T.push(C.data.datasets[S].label),T.push("");return T.push("
"),T.join("")}});var p=_.extend({initialize:function(C){u.extend(this,C),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:h,update:function(C,T,S){var k=this;return k.beforeUpdate(),k.maxWidth=C,k.maxHeight=T,k.margins=S,k.beforeSetDimensions(),k.setDimensions(),k.afterSetDimensions(),k.beforeBuildLabels(),k.buildLabels(),k.afterBuildLabels(),k.beforeFit(),k.fit(),k.afterFit(),k.afterUpdate(),k.minSize},afterUpdate:h,beforeSetDimensions:h,setDimensions:function(){var C=this;C.isHorizontal()?(C.width=C.maxWidth,C.left=0,C.right=C.width):(C.height=C.maxHeight,C.top=0,C.bottom=C.height),C.paddingLeft=0,C.paddingTop=0,C.paddingRight=0,C.paddingBottom=0,C.minSize={width:0,height:0}},afterSetDimensions:h,beforeBuildLabels:h,buildLabels:function(){var C=this,T=C.options.labels||{},S=u.callback(T.generateLabels,[C.chart],C)||[];T.filter&&(S=S.filter(function(k){return T.filter(k,C.chart.data)})),C.options.reverse&&S.reverse(),C.legendItems=S},afterBuildLabels:h,beforeFit:h,fit:function(){var C=this,T=C.options,S=T.labels,k=T.display,L=C.ctx,A=O.global,U=u.valueOrDefault,H=U(S.fontSize,A.defaultFontSize),K=U(S.fontStyle,A.defaultFontStyle),ie=U(S.fontFamily,A.defaultFontFamily),ve=u.fontString(H,K,ie),Z=C.legendHitBoxes=[],Q=C.minSize,de=C.isHorizontal();if(de?(Q.width=C.maxWidth,Q.height=k?10:0):(Q.width=k?10:0,Q.height=C.maxHeight),k)if(L.font=ve,de){var G=C.lineWidths=[0],J=C.legendItems.length?H+S.padding:0;L.textAlign="left",L.textBaseline="top",u.each(C.legendItems,function(Ce,Ve){var ot=y(S,H)+H/2+L.measureText(Ce.text).width;G[G.length-1]+ot+S.padding>=C.width&&(J+=H+S.padding,G[G.length]=C.left),Z[Ve]={left:0,top:0,width:ot,height:H},G[G.length-1]+=ot+S.padding}),Q.height+=J}else{var ee=S.padding,ae=C.columnWidths=[],le=S.padding,X=0,Te=0,Se=H+ee;u.each(C.legendItems,function(Ce,Ve){var ot=y(S,H)+H/2+L.measureText(Ce.text).width;Te+Se>Q.height&&(le+=X+S.padding,ae.push(X),X=0,Te=0),X=Math.max(X,ot),Te+=Se,Z[Ve]={left:0,top:0,width:ot,height:H}}),le+=X,ae.push(X),Q.width+=le}C.width=Q.width,C.height=Q.height},afterFit:h,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var C=this,T=C.options,S=T.labels,k=O.global,L=k.elements.line,A=C.width,U=C.lineWidths;if(T.display){var G,H=C.ctx,K=u.valueOrDefault,ie=K(S.fontColor,k.defaultFontColor),ve=K(S.fontSize,k.defaultFontSize),Z=K(S.fontStyle,k.defaultFontStyle),Q=K(S.fontFamily,k.defaultFontFamily),de=u.fontString(ve,Z,Q);H.textAlign="left",H.textBaseline="middle",H.lineWidth=.5,H.strokeStyle=ie,H.fillStyle=ie,H.font=de;var J=y(S,ve),ee=C.legendHitBoxes,X=C.isHorizontal();G=X?{x:C.left+(A-U[0])/2,y:C.top+S.padding,line:0}:{x:C.left+S.padding,y:C.top+S.padding,line:0};var Te=ve+S.padding;u.each(C.legendItems,function(Se,Ce){var Ve=H.measureText(Se.text).width,tt=J+ve/2+Ve,ot=G.x,st=G.y;X?ot+tt>=A&&(st=G.y+=Te,G.line++,ot=G.x=C.left+(A-U[G.line])/2):st+Te>C.bottom&&(ot=G.x=ot+C.columnWidths[G.line]+S.padding,st=G.y=C.top+S.padding,G.line++),function(Se,Ce,Ve){if(!(isNaN(J)||J<=0)){H.save(),H.fillStyle=K(Ve.fillStyle,k.defaultColor),H.lineCap=K(Ve.lineCap,L.borderCapStyle),H.lineDashOffset=K(Ve.lineDashOffset,L.borderDashOffset),H.lineJoin=K(Ve.lineJoin,L.borderJoinStyle),H.lineWidth=K(Ve.lineWidth,L.borderWidth),H.strokeStyle=K(Ve.strokeStyle,k.defaultColor);var tt=0===K(Ve.lineWidth,L.borderWidth);if(H.setLineDash&&H.setLineDash(K(Ve.lineDash,L.borderDash)),T.labels&&T.labels.usePointStyle){var ot=ve*Math.SQRT2/2,st=ot/Math.SQRT2;u.canvas.drawPoint(H,Ve.pointStyle,ot,Se+st,Ce+st)}else tt||H.strokeRect(Se,Ce,J,ve),H.fillRect(Se,Ce,J,ve);H.restore()}}(ot,st,Se),ee[Ce].left=ot,ee[Ce].top=st,function(Se,Ce,Ve,tt){var ot=ve/2,st=J+ot+Se,Nt=Ce+ot;H.fillText(Ve.text,st,Nt),Ve.hidden&&(H.beginPath(),H.lineWidth=2,H.moveTo(st,Nt),H.lineTo(st+tt,Nt),H.stroke())}(ot,st,Se,Ve),X?G.x+=tt+S.padding:G.y+=Te})}},handleEvent:function(C){var T=this,S=T.options,k="mouseup"===C.type?"click":C.type,L=!1;if("mousemove"===k){if(!S.onHover)return}else{if("click"!==k)return;if(!S.onClick)return}var A=C.x,U=C.y;if(A>=T.left&&A<=T.right&&U>=T.top&&U<=T.bottom)for(var H=T.legendHitBoxes,K=0;K=ie.left&&A<=ie.left+ie.width&&U>=ie.top&&U<=ie.top+ie.height){if("click"===k){S.onClick.call(T,C.native,T.legendItems[K]),L=!0;break}if("mousemove"===k){S.onHover.call(T,C.native,T.legendItems[K]),L=!0;break}}}return L}});function v(C,T){var S=new p({ctx:C.ctx,options:T,chart:C});f.configure(C,S,T),f.addBox(C,S),C.legend=S}he.exports={id:"legend",_element:p,beforeInit:function(C){var T=C.options.legend;T&&v(C,T)},beforeUpdate:function(C){var T=C.options.legend,S=C.legend;T?(u.mergeIf(T,O.global.legend),S?(f.configure(C,S,T),S.options=T):v(C,T)):S&&(f.removeBox(C,S),delete C.legend)},afterEvent:function(C,T){var S=C.legend;S&&S.handleEvent(T)}}},7412:(he,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=N(2294),h=u.noop;O._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var y=_.extend({initialize:function(v){u.extend(this,v),this.legendHitBoxes=[]},beforeUpdate:h,update:function(v,C,T){var S=this;return S.beforeUpdate(),S.maxWidth=v,S.maxHeight=C,S.margins=T,S.beforeSetDimensions(),S.setDimensions(),S.afterSetDimensions(),S.beforeBuildLabels(),S.buildLabels(),S.afterBuildLabels(),S.beforeFit(),S.fit(),S.afterFit(),S.afterUpdate(),S.minSize},afterUpdate:h,beforeSetDimensions:h,setDimensions:function(){var v=this;v.isHorizontal()?(v.width=v.maxWidth,v.left=0,v.right=v.width):(v.height=v.maxHeight,v.top=0,v.bottom=v.height),v.paddingLeft=0,v.paddingTop=0,v.paddingRight=0,v.paddingBottom=0,v.minSize={width:0,height:0}},afterSetDimensions:h,beforeBuildLabels:h,buildLabels:h,afterBuildLabels:h,beforeFit:h,fit:function(){var v=this,T=v.options,S=T.display,k=(0,u.valueOrDefault)(T.fontSize,O.global.defaultFontSize),L=v.minSize,A=u.isArray(T.text)?T.text.length:1,U=u.options.toLineHeight(T.lineHeight,k),H=S?A*U+2*T.padding:0;v.isHorizontal()?(L.width=v.maxWidth,L.height=H):(L.width=H,L.height=v.maxHeight),v.width=L.width,v.height=L.height},afterFit:h,isHorizontal:function(){var v=this.options.position;return"top"===v||"bottom"===v},draw:function(){var v=this,C=v.ctx,T=u.valueOrDefault,S=v.options,k=O.global;if(S.display){var J,ee,ae,L=T(S.fontSize,k.defaultFontSize),A=T(S.fontStyle,k.defaultFontStyle),U=T(S.fontFamily,k.defaultFontFamily),H=u.fontString(L,A,U),K=u.options.toLineHeight(S.lineHeight,L),ie=K/2+S.padding,ve=0,Z=v.top,Q=v.left,de=v.bottom,G=v.right;C.fillStyle=T(S.fontColor,k.defaultFontColor),C.font=H,v.isHorizontal()?(ee=Q+(G-Q)/2,ae=Z+ie,J=G-Q):(ee="left"===S.position?Q+ie:G-ie,ae=Z+(de-Z)/2,J=de-Z,ve=Math.PI*("left"===S.position?-.5:.5)),C.save(),C.translate(ee,ae),C.rotate(ve),C.textAlign="center",C.textBaseline="middle";var le=S.text;if(u.isArray(le))for(var X=0,Te=0;Te{"use strict";he.exports=function(ge){var O=ge.Scale.extend({getLabels:function(){var _=this.chart.data;return this.options.labels||(this.isHorizontal()?_.xLabels:_.yLabels)||_.labels},determineDataLimits:function(){var f,_=this,u=_.getLabels();_.minIndex=0,_.maxIndex=u.length-1,void 0!==_.options.ticks.min&&(f=u.indexOf(_.options.ticks.min),_.minIndex=-1!==f?f:_.minIndex),void 0!==_.options.ticks.max&&(f=u.indexOf(_.options.ticks.max),_.maxIndex=-1!==f?f:_.maxIndex),_.min=u[_.minIndex],_.max=u[_.maxIndex]},buildTicks:function(){var _=this,u=_.getLabels();_.ticks=0===_.minIndex&&_.maxIndex===u.length-1?u:u.slice(_.minIndex,_.maxIndex+1)},getLabelForIndex:function(_,u){var f=this,h=f.chart.data,y=f.isHorizontal();return h.yLabels&&!y?f.getRightValue(h.datasets[u].data[_]):f.ticks[_-f.minIndex]},getPixelForValue:function(_,u){var p,f=this,h=f.options.offset,y=Math.max(f.maxIndex+1-f.minIndex-(h?0:1),1);if(null!=_&&(p=f.isHorizontal()?_.x:_.y),void 0!==p||void 0!==_&&isNaN(u)){var C=f.getLabels().indexOf(_=p||_);u=-1!==C?C:u}if(f.isHorizontal()){var T=f.width/y,S=T*(u-f.minIndex);return h&&(S+=T/2),f.left+Math.round(S)}var k=f.height/y,L=k*(u-f.minIndex);return h&&(L+=k/2),f.top+Math.round(L)},getPixelForTick:function(_){return this.getPixelForValue(this.ticks[_],_+this.minIndex,null)},getValueForPixel:function(_){var u=this,f=u.options.offset,y=Math.max(u._ticks.length-(f?0:1),1),p=u.isHorizontal(),v=(p?u.width:u.height)/y;return _-=p?u.left:u.top,f&&(_-=v/2),(_<=0?0:Math.round(_/v))+u.minIndex},getBasePixel:function(){return this.bottom}});ge.scaleService.registerScaleType("category",O,{position:"bottom"})}},1704:(he,ge,N)=>{"use strict";var O=N(9800),_=N(3305),u=N(8347);he.exports=function(f){var h={position:"left",ticks:{callback:u.formatters.linear}},y=f.LinearScaleBase.extend({determineDataLimits:function(){var p=this,v=p.options,C=p.chart,S=C.data.datasets,k=p.isHorizontal();function U(ie){return k?ie.xAxisID===p.id:ie.yAxisID===p.id}p.min=null,p.max=null;var H=v.stacked;if(void 0===H&&_.each(S,function(ie,ve){if(!H){var Z=C.getDatasetMeta(ve);C.isDatasetVisible(ve)&&U(Z)&&void 0!==Z.stack&&(H=!0)}}),v.stacked||H){var K={};_.each(S,function(ie,ve){var Z=C.getDatasetMeta(ve),Q=[Z.type,void 0===v.stacked&&void 0===Z.stack?ve:"",Z.stack].join(".");void 0===K[Q]&&(K[Q]={positiveValues:[],negativeValues:[]});var de=K[Q].positiveValues,G=K[Q].negativeValues;C.isDatasetVisible(ve)&&U(Z)&&_.each(ie.data,function(J,ee){var ae=+p.getRightValue(J);isNaN(ae)||Z.data[ee].hidden||(de[ee]=de[ee]||0,G[ee]=G[ee]||0,v.relativePoints?de[ee]=100:ae<0?G[ee]+=ae:de[ee]+=ae)})}),_.each(K,function(ie){var ve=ie.positiveValues.concat(ie.negativeValues),Z=_.min(ve),Q=_.max(ve);p.min=null===p.min?Z:Math.min(p.min,Z),p.max=null===p.max?Q:Math.max(p.max,Q)})}else _.each(S,function(ie,ve){var Z=C.getDatasetMeta(ve);C.isDatasetVisible(ve)&&U(Z)&&_.each(ie.data,function(Q,de){var G=+p.getRightValue(Q);isNaN(G)||Z.data[de].hidden||((null===p.min||Gp.max)&&(p.max=G))})});p.min=isFinite(p.min)&&!isNaN(p.min)?p.min:0,p.max=isFinite(p.max)&&!isNaN(p.max)?p.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var p,v=this,C=v.options.ticks;if(v.isHorizontal())p=Math.min(C.maxTicksLimit?C.maxTicksLimit:11,Math.ceil(v.width/50));else{var T=_.valueOrDefault(C.fontSize,O.global.defaultFontSize);p=Math.min(C.maxTicksLimit?C.maxTicksLimit:11,Math.ceil(v.height/(2*T)))}return p},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(p,v){return+this.getRightValue(this.chart.data.datasets[v].data[p])},getPixelForValue:function(p){var v=this,C=v.start,T=+v.getRightValue(p),k=v.end-C;return v.isHorizontal()?v.left+v.width/k*(T-C):v.bottom-v.height/k*(T-C)},getValueForPixel:function(p){var v=this,C=v.isHorizontal();return v.start+(C?p-v.left:v.bottom-p)/(C?v.width:v.height)*(v.end-v.start)},getPixelForTick:function(p){return this.getPixelForValue(this.ticksAsNumbers[p])}});f.scaleService.registerScaleType("linear",y,h)}},8351:(he,ge,N)=>{"use strict";var O=N(3305);he.exports=function(u){var f=O.noop;u.LinearScaleBase=u.Scale.extend({getRightValue:function(h){return"string"==typeof h?+h:u.Scale.prototype.getRightValue.call(this,h)},handleTickRangeOptions:function(){var h=this,p=h.options.ticks;if(p.beginAtZero){var v=O.sign(h.min),C=O.sign(h.max);v<0&&C<0?h.max=0:v>0&&C>0&&(h.min=0)}var T=void 0!==p.min||void 0!==p.suggestedMin,S=void 0!==p.max||void 0!==p.suggestedMax;void 0!==p.min?h.min=p.min:void 0!==p.suggestedMin&&(h.min=null===h.min?p.suggestedMin:Math.min(h.min,p.suggestedMin)),void 0!==p.max?h.max=p.max:void 0!==p.suggestedMax&&(h.max=null===h.max?p.suggestedMax:Math.max(h.max,p.suggestedMax)),T!==S&&h.min>=h.max&&(T?h.max=h.min+1:h.min=h.max-1),h.min===h.max&&(h.max++,p.beginAtZero||h.min--)},getTickLimit:f,handleDirectionalChanges:f,buildTicks:function(){var h=this,p=h.options.ticks,v=h.getTickLimit(),C={maxTicks:v=Math.max(2,v),min:p.min,max:p.max,stepSize:O.valueOrDefault(p.fixedStepSize,p.stepSize)},T=h.ticks=function _(u,f){var y,h=[];if(u.stepSize&&u.stepSize>0)y=u.stepSize;else{var p=O.niceNum(f.max-f.min,!1);y=O.niceNum(p/(u.maxTicks-1),!0)}var v=Math.floor(f.min/y)*y,C=Math.ceil(f.max/y)*y;u.min&&u.max&&u.stepSize&&O.almostWhole((u.max-u.min)/u.stepSize,y/1e3)&&(v=u.min,C=u.max);var T=(C-v)/y;T=O.almostEquals(T,Math.round(T),y/1e3)?Math.round(T):Math.ceil(T);var S=1;y<1&&(S=Math.pow(10,y.toString().length-2),v=Math.round(v*S)/S,C=Math.round(C*S)/S),h.push(void 0!==u.min?u.min:v);for(var k=1;k{"use strict";var O=N(3305),_=N(8347);he.exports=function(f){var h={position:"left",ticks:{callback:_.formatters.logarithmic}},y=f.Scale.extend({determineDataLimits:function(){var p=this,v=p.options,C=p.chart,S=C.data.datasets,k=p.isHorizontal();function L(H){return k?H.xAxisID===p.id:H.yAxisID===p.id}p.min=null,p.max=null,p.minNotZero=null;var A=v.stacked;if(void 0===A&&O.each(S,function(H,K){if(!A){var ie=C.getDatasetMeta(K);C.isDatasetVisible(K)&&L(ie)&&void 0!==ie.stack&&(A=!0)}}),v.stacked||A){var U={};O.each(S,function(H,K){var ie=C.getDatasetMeta(K),ve=[ie.type,void 0===v.stacked&&void 0===ie.stack?K:"",ie.stack].join(".");C.isDatasetVisible(K)&&L(ie)&&(void 0===U[ve]&&(U[ve]=[]),O.each(H.data,function(Z,Q){var de=U[ve],G=+p.getRightValue(Z);isNaN(G)||ie.data[Q].hidden||G<0||(de[Q]=de[Q]||0,de[Q]+=G)}))}),O.each(U,function(H){if(H.length>0){var K=O.min(H),ie=O.max(H);p.min=null===p.min?K:Math.min(p.min,K),p.max=null===p.max?ie:Math.max(p.max,ie)}})}else O.each(S,function(H,K){var ie=C.getDatasetMeta(K);C.isDatasetVisible(K)&&L(ie)&&O.each(H.data,function(ve,Z){var Q=+p.getRightValue(ve);isNaN(Q)||ie.data[Z].hidden||Q<0||((null===p.min||Qp.max)&&(p.max=Q),0!==Q&&(null===p.minNotZero||Q0?p.min:p.max<1?Math.pow(10,Math.floor(O.log10(p.max))):1)},buildTicks:function(){var p=this,C=p.options.ticks,T=!p.isHorizontal(),k=p.ticks=function u(f,h){var S,k,y=[],p=O.valueOrDefault,v=p(f.min,Math.pow(10,Math.floor(O.log10(h.min)))),C=Math.floor(O.log10(h.max)),T=Math.ceil(h.max/Math.pow(10,C));0===v?(S=Math.floor(O.log10(h.minNotZero)),k=Math.floor(h.minNotZero/Math.pow(10,S)),y.push(v),v=k*Math.pow(10,S)):(S=Math.floor(O.log10(v)),k=Math.floor(v/Math.pow(10,S)));var L=S<0?Math.pow(10,Math.abs(S)):1;do{y.push(v),10==++k&&(k=1,L=++S>=0?1:L),v=Math.round(k*Math.pow(10,S)*L)/L}while(S{"use strict";var O=N(9800),_=N(3305),u=N(8347);he.exports=function(f){var h=O.global,y={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:u.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(Z){return Z}}};function p(Z){var Q=Z.options;return Q.angleLines.display||Q.pointLabels.display?Z.chart.data.labels.length:0}function v(Z){var Q=Z.options.pointLabels,de=_.valueOrDefault(Q.fontSize,h.defaultFontSize),G=_.valueOrDefault(Q.fontStyle,h.defaultFontStyle),J=_.valueOrDefault(Q.fontFamily,h.defaultFontFamily);return{size:de,style:G,family:J,font:_.fontString(de,G,J)}}function C(Z,Q,de){return _.isArray(de)?{w:_.longestText(Z,Z.font,de),h:de.length*Q+1.5*(de.length-1)*Q}:{w:Z.measureText(de).width,h:Q}}function T(Z,Q,de,G,J){return Z===G||Z===J?{start:Q-de/2,end:Q+de/2}:ZJ?{start:Q-de-5,end:Q}:{start:Q,end:Q+de+5}}function L(Z){return 0===Z||180===Z?"center":Z<180?"left":"right"}function A(Z,Q,de,G){if(_.isArray(Q))for(var J=de.y,ee=1.5*G,ae=0;ae270||Z<90)&&(de.y-=Q.h)}function ie(Z){return _.isNumber(Z)?Z:0}var ve=f.LinearScaleBase.extend({setDimensions:function(){var Z=this,Q=Z.options,de=Q.ticks;Z.width=Z.maxWidth,Z.height=Z.maxHeight,Z.xCenter=Math.round(Z.width/2),Z.yCenter=Math.round(Z.height/2);var G=_.min([Z.height,Z.width]),J=_.valueOrDefault(de.fontSize,h.defaultFontSize);Z.drawingArea=Q.display?G/2-(J/2+de.backdropPaddingY):G/2},determineDataLimits:function(){var Z=this,Q=Z.chart,de=Number.POSITIVE_INFINITY,G=Number.NEGATIVE_INFINITY;_.each(Q.data.datasets,function(J,ee){if(Q.isDatasetVisible(ee)){var ae=Q.getDatasetMeta(ee);_.each(J.data,function(le,X){var Te=+Z.getRightValue(le);isNaN(Te)||ae.data[X].hidden||(de=Math.min(Te,de),G=Math.max(Te,G))})}}),Z.min=de===Number.POSITIVE_INFINITY?0:de,Z.max=G===Number.NEGATIVE_INFINITY?0:G,Z.handleTickRangeOptions()},getTickLimit:function(){var Z=this.options.ticks,Q=_.valueOrDefault(Z.fontSize,h.defaultFontSize);return Math.min(Z.maxTicksLimit?Z.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*Q)))},convertTicksToLabels:function(){var Z=this;f.LinearScaleBase.prototype.convertTicksToLabels.call(Z),Z.pointLabels=Z.chart.data.labels.map(Z.options.pointLabels.callback,Z)},getLabelForIndex:function(Z,Q){return+this.getRightValue(this.chart.data.datasets[Q].data[Z])},fit:function(){this.options.pointLabels.display?function S(Z){var ee,ae,le,Q=v(Z),de=Math.min(Z.height/2,Z.width/2),G={r:Z.width,l:0,t:Z.height,b:0},J={};Z.ctx.font=Q.font,Z._pointLabelSizes=[];var X=p(Z);for(ee=0;eeG.r&&(G.r=Ce.end,J.r=Te),Ve.startG.b&&(G.b=Ve.end,J.b=Te)}Z.setReductions(de,G,J)}(this):function k(Z){var Q=Math.min(Z.height/2,Z.width/2);Z.drawingArea=Math.round(Q),Z.setCenterPoint(0,0,0,0)}(this)},setReductions:function(Z,Q,de){var G=this,J=Q.l/Math.sin(de.l),ee=Math.max(Q.r-G.width,0)/Math.sin(de.r),ae=-Q.t/Math.cos(de.t),le=-Math.max(Q.b-G.height,0)/Math.cos(de.b);J=ie(J),ee=ie(ee),ae=ie(ae),le=ie(le),G.drawingArea=Math.min(Math.round(Z-(J+ee)/2),Math.round(Z-(ae+le)/2)),G.setCenterPoint(J,ee,ae,le)},setCenterPoint:function(Z,Q,de,G){var J=this,le=de+J.drawingArea,X=J.height-G-J.drawingArea;J.xCenter=Math.round((Z+J.drawingArea+(J.width-Q-J.drawingArea))/2+J.left),J.yCenter=Math.round((le+X)/2+J.top)},getIndexAngle:function(Z){return Z*(2*Math.PI/p(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(Z){var Q=this;if(null===Z)return 0;var de=Q.drawingArea/(Q.max-Q.min);return Q.options.ticks.reverse?(Q.max-Z)*de:(Z-Q.min)*de},getPointPosition:function(Z,Q){var G=this.getIndexAngle(Z)-Math.PI/2;return{x:Math.round(Math.cos(G)*Q)+this.xCenter,y:Math.round(Math.sin(G)*Q)+this.yCenter}},getPointPositionForValue:function(Z,Q){return this.getPointPosition(Z,this.getDistanceFromCenterForValue(Q))},getBasePosition:function(){var Z=this,Q=Z.min,de=Z.max;return Z.getPointPositionForValue(0,Z.beginAtZero?0:Q<0&&de<0?de:Q>0&&de>0?Q:0)},draw:function(){var Z=this,Q=Z.options,de=Q.gridLines,G=Q.ticks,J=_.valueOrDefault;if(Q.display){var ee=Z.ctx,ae=this.getIndexAngle(0),le=J(G.fontSize,h.defaultFontSize),X=J(G.fontStyle,h.defaultFontStyle),Te=J(G.fontFamily,h.defaultFontFamily),Se=_.fontString(le,X,Te);_.each(Z.ticks,function(Ce,Ve){if(Ve>0||G.reverse){var tt=Z.getDistanceFromCenterForValue(Z.ticksAsNumbers[Ve]);if(de.display&&0!==Ve&&function K(Z,Q,de,G){var J=Z.ctx;if(J.strokeStyle=_.valueAtIndexOrDefault(Q.color,G-1),J.lineWidth=_.valueAtIndexOrDefault(Q.lineWidth,G-1),Z.options.gridLines.circular)J.beginPath(),J.arc(Z.xCenter,Z.yCenter,de,0,2*Math.PI),J.closePath(),J.stroke();else{var ee=p(Z);if(0===ee)return;J.beginPath();var ae=Z.getPointPosition(0,de);J.moveTo(ae.x,ae.y);for(var le=1;le=0;le--){if(G.display){var X=Z.getPointPosition(le,ee);Q.beginPath(),Q.moveTo(Z.xCenter,Z.yCenter),Q.lineTo(X.x,X.y),Q.stroke(),Q.closePath()}if(J.display){var Te=Z.getPointPosition(le,ee+5),Se=_.valueAtIndexOrDefault(J.fontColor,le,h.defaultFontColor);Q.font=ae.font,Q.fillStyle=Se;var Ce=Z.getIndexAngle(le),Ve=_.toDegrees(Ce);Q.textAlign=L(Ve),U(Ve,Z._pointLabelSizes[le],Te),A(Q,Z.pointLabels[le]||"",Te,ae.size)}}}(Z)}}});f.scaleService.registerScaleType("radialLinear",ve,y)}},4215:(he,ge,N)=>{"use strict";var O=N(5439);O="function"==typeof O?O:window.moment;var _=N(9800),u=N(3305),f=Number.MIN_SAFE_INTEGER||-9007199254740991,h=Number.MAX_SAFE_INTEGER||9007199254740991,y={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},p=Object.keys(y);function v(G,J){return G-J}function C(G){var ae,le,X,J={},ee=[];for(ae=0,le=G.length;ae=0&&ae<=le;){if(Se=G[X=ae+le>>1],!(Te=G[X-1]||null))return{lo:null,hi:Se};if(Se[J]ee))return{lo:Te,hi:Se};le=X-1}}return{lo:Se,hi:null}}(G,J,ee),X=le.lo?le.hi?le.lo:G[G.length-2]:G[0],Te=le.lo?le.hi?le.hi:G[G.length-1]:G[1],Se=Te[J]-X[J];return X[ae]+(Te[ae]-X[ae])*(Se?(ee-X[J])/Se:0)}function L(G,J){var ee=J.parser,ae=J.parser||J.format;return"function"==typeof ee?ee(G):"string"==typeof G&&"string"==typeof ae?O(G,ae):(G instanceof O||(G=O(G)),G.isValid()?G:"function"==typeof ae?ae(G):G)}function A(G,J){if(u.isNullOrUndef(G))return null;var ee=J.options.time,ae=L(J.getRightValue(G),ee);return ae.isValid()?(ee.round&&ae.startOf(ee.round),ae.valueOf()):null}function ie(G){for(var J=p.indexOf(G)+1,ee=p.length;J=le&&st<=X&&Ve.push(st);return ae.min=le,ae.max=X,ae._unit=Se.unit||function K(G,J,ee,ae){var Te,Se,le=O.duration(O(ae).diff(O(ee)));for(Te=p.length-1;Te>=p.indexOf(J);Te--)if(y[Se=p[Te]].common&&le.as(Se)>=G.length)return Se;return p[J?p.indexOf(J):0]}(Ve,Se.minUnit,ae.min,ae.max),ae._majorUnit=ie(ae._unit),ae._table=function T(G,J,ee,ae){if("linear"===ae||!G.length)return[{time:J,pos:0},{time:ee,pos:1}];var Te,Se,Ce,Ve,tt,le=[],X=[J];for(Te=0,Se=G.length;TeJ&&Ve1?J[1]:ae,"pos")-k(G,"time",Ce,"pos"))/2),le.time.max||(Ce=J.length>1?J[J.length-2]:ee,Te=(k(G,"time",J[J.length-1],"pos")-k(G,"time",Ce,"pos"))/2)),{left:X,right:Te}}(ae._table,Ve,le,X,Te),ae._labelFormat=function de(G,J){var ee,ae,le,X=G.length;for(ee=0;ee=0&&ae0?Ve:1}});G.scaleService.registerScaleType("time",ee,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},3207:(he,ge,N)=>{var O=N(9914);function _(Q){if(Q){var le=[0,0,0],X=1,Te=Q.match(/^#([a-fA-F0-9]{3})$/i);if(Te){Te=Te[1];for(var Se=0;Se{var O=N(7227),_=N(3207),u=function(f){return f instanceof u?f:this instanceof u?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof f?(h=_.getRgba(f))?this.setValues("rgb",h):(h=_.getHsla(f))?this.setValues("hsl",h):(h=_.getHwb(f))&&this.setValues("hwb",h):"object"==typeof f&&(void 0!==(h=f).r||void 0!==h.red?this.setValues("rgb",h):void 0!==h.l||void 0!==h.lightness?this.setValues("hsl",h):void 0!==h.v||void 0!==h.value?this.setValues("hsv",h):void 0!==h.w||void 0!==h.whiteness?this.setValues("hwb",h):(void 0!==h.c||void 0!==h.cyan)&&this.setValues("cmyk",h)))):new u(f);var h};u.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var f=this.values;return 1!==f.alpha?f.hwb.concat([f.alpha]):f.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var f=this.values;return f.rgb.concat([f.alpha])},hslaArray:function(){var f=this.values;return f.hsl.concat([f.alpha])},alpha:function(f){return void 0===f?this.values.alpha:(this.setValues("alpha",f),this)},red:function(f){return this.setChannel("rgb",0,f)},green:function(f){return this.setChannel("rgb",1,f)},blue:function(f){return this.setChannel("rgb",2,f)},hue:function(f){return f&&(f=(f%=360)<0?360+f:f),this.setChannel("hsl",0,f)},saturation:function(f){return this.setChannel("hsl",1,f)},lightness:function(f){return this.setChannel("hsl",2,f)},saturationv:function(f){return this.setChannel("hsv",1,f)},whiteness:function(f){return this.setChannel("hwb",1,f)},blackness:function(f){return this.setChannel("hwb",2,f)},value:function(f){return this.setChannel("hsv",2,f)},cyan:function(f){return this.setChannel("cmyk",0,f)},magenta:function(f){return this.setChannel("cmyk",1,f)},yellow:function(f){return this.setChannel("cmyk",2,f)},black:function(f){return this.setChannel("cmyk",3,f)},hexString:function(){return _.hexString(this.values.rgb)},rgbString:function(){return _.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return _.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return _.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return _.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return _.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return _.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return _.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var f=this.values.rgb;return f[0]<<16|f[1]<<8|f[2]},luminosity:function(){for(var f=this.values.rgb,h=[],y=0;yy?(h+.05)/(y+.05):(y+.05)/(h+.05)},level:function(f){var h=this.contrast(f);return h>=7.1?"AAA":h>=4.5?"AA":""},dark:function(){var f=this.values.rgb;return(299*f[0]+587*f[1]+114*f[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var f=[],h=0;h<3;h++)f[h]=255-this.values.rgb[h];return this.setValues("rgb",f),this},lighten:function(f){var h=this.values.hsl;return h[2]+=h[2]*f,this.setValues("hsl",h),this},darken:function(f){var h=this.values.hsl;return h[2]-=h[2]*f,this.setValues("hsl",h),this},saturate:function(f){var h=this.values.hsl;return h[1]+=h[1]*f,this.setValues("hsl",h),this},desaturate:function(f){var h=this.values.hsl;return h[1]-=h[1]*f,this.setValues("hsl",h),this},whiten:function(f){var h=this.values.hwb;return h[1]+=h[1]*f,this.setValues("hwb",h),this},blacken:function(f){var h=this.values.hwb;return h[2]+=h[2]*f,this.setValues("hwb",h),this},greyscale:function(){var f=this.values.rgb,h=.3*f[0]+.59*f[1]+.11*f[2];return this.setValues("rgb",[h,h,h]),this},clearer:function(f){var h=this.values.alpha;return this.setValues("alpha",h-h*f),this},opaquer:function(f){var h=this.values.alpha;return this.setValues("alpha",h+h*f),this},rotate:function(f){var h=this.values.hsl,y=(h[0]+f)%360;return h[0]=y<0?360+y:y,this.setValues("hsl",h),this},mix:function(f,h){var y=this,p=f,v=void 0===h?.5:h,C=2*v-1,T=y.alpha()-p.alpha(),S=((C*T==-1?C:(C+T)/(1+C*T))+1)/2,k=1-S;return this.rgb(S*y.red()+k*p.red(),S*y.green()+k*p.green(),S*y.blue()+k*p.blue()).alpha(y.alpha()*v+p.alpha()*(1-v))},toJSON:function(){return this.rgb()},clone:function(){var p,v,f=new u,h=this.values,y=f.values;for(var C in h)h.hasOwnProperty(C)&&("[object Array]"===(v={}.toString.call(p=h[C]))?y[C]=p.slice(0):"[object Number]"===v?y[C]=p:console.error("unexpected color value:",p));return f}},u.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},u.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},u.prototype.getValues=function(f){for(var h=this.values,y={},p=0;p{function ge(W){var _e,De,re=W[0]/255,ne=W[1]/255,me=W[2]/255,fe=Math.min(re,ne,me),ue=Math.max(re,ne,me),be=ue-fe;return ue==fe?_e=0:re==ue?_e=(ne-me)/be:ne==ue?_e=2+(me-re)/be:me==ue&&(_e=4+(re-ne)/be),(_e=Math.min(60*_e,360))<0&&(_e+=360),De=(fe+ue)/2,[_e,100*(ue==fe?0:De<=.5?be/(ue+fe):be/(2-ue-fe)),100*De]}function N(W){var _e,Me,re=W[0],ne=W[1],me=W[2],fe=Math.min(re,ne,me),ue=Math.max(re,ne,me),be=ue-fe;return Me=0==ue?0:be/ue*1e3/10,ue==fe?_e=0:re==ue?_e=(ne-me)/be:ne==ue?_e=2+(me-re)/be:me==ue&&(_e=4+(re-ne)/be),(_e=Math.min(60*_e,360))<0&&(_e+=360),[_e,Me,ue/255*1e3/10]}function O(W){var re=W[0],ne=W[1],ue=W[2];return[ge(W)[0],1/255*Math.min(re,Math.min(ne,ue))*100,100*(ue=1-1/255*Math.max(re,Math.max(ne,ue)))]}function _(W){var _e,re=W[0]/255,ne=W[1]/255,me=W[2]/255;return[100*((1-re-(_e=Math.min(1-re,1-ne,1-me)))/(1-_e)||0),100*((1-ne-_e)/(1-_e)||0),100*((1-me-_e)/(1-_e)||0),100*_e]}function u(W){return or[JSON.stringify(W)]}function f(W){var re=W[0]/255,ne=W[1]/255,me=W[2]/255;return[100*(.4124*(re=re>.04045?Math.pow((re+.055)/1.055,2.4):re/12.92)+.3576*(ne=ne>.04045?Math.pow((ne+.055)/1.055,2.4):ne/12.92)+.1805*(me=me>.04045?Math.pow((me+.055)/1.055,2.4):me/12.92)),100*(.2126*re+.7152*ne+.0722*me),100*(.0193*re+.1192*ne+.9505*me)]}function h(W){var re=f(W),ne=re[0],me=re[1],fe=re[2];return me/=100,fe/=108.883,ne=(ne/=95.047)>.008856?Math.pow(ne,1/3):7.787*ne+16/116,[116*(me=me>.008856?Math.pow(me,1/3):7.787*me+16/116)-16,500*(ne-me),200*(me-(fe=fe>.008856?Math.pow(fe,1/3):7.787*fe+16/116))]}function p(W){var fe,ue,be,_e,Me,re=W[0]/360,ne=W[1]/100,me=W[2]/100;if(0==ne)return[Me=255*me,Me,Me];fe=2*me-(ue=me<.5?me*(1+ne):me+ne-me*ne),_e=[0,0,0];for(var De=0;De<3;De++)(be=re+1/3*-(De-1))<0&&be++,be>1&&be--,_e[De]=255*(Me=6*be<1?fe+6*(ue-fe)*be:2*be<1?ue:3*be<2?fe+(ue-fe)*(2/3-be)*6:fe);return _e}function k(W){var re=W[0]/60,ne=W[1]/100,Me=W[2]/100,me=Math.floor(re)%6,fe=re-Math.floor(re),ue=255*Me*(1-ne),be=255*Me*(1-ne*fe),_e=255*Me*(1-ne*(1-fe));switch(Me*=255,me){case 0:return[Me,_e,ue];case 1:return[be,Me,ue];case 2:return[ue,Me,_e];case 3:return[ue,be,Me];case 4:return[_e,ue,Me];case 5:return[Me,ue,be]}}function K(W){var ue,be,_e,Me,re=W[0]/360,ne=W[1]/100,me=W[2]/100,fe=ne+me;switch(fe>1&&(ne/=fe,me/=fe),_e=6*re-(ue=Math.floor(6*re)),0!=(1&ue)&&(_e=1-_e),Me=ne+_e*((be=1-me)-ne),ue){default:case 6:case 0:r=be,g=Me,b=ne;break;case 1:r=Me,g=be,b=ne;break;case 2:r=ne,g=be,b=Me;break;case 3:r=ne,g=Me,b=be;break;case 4:r=Me,g=ne,b=be;break;case 5:r=be,g=ne,b=Me}return[255*r,255*g,255*b]}function de(W){var ne=W[1]/100,me=W[2]/100,fe=W[3]/100;return[255*(1-Math.min(1,W[0]/100*(1-fe)+fe)),255*(1-Math.min(1,ne*(1-fe)+fe)),255*(1-Math.min(1,me*(1-fe)+fe))]}function le(W){var fe,ue,be,re=W[0]/100,ne=W[1]/100,me=W[2]/100;return ue=-.9689*re+1.8758*ne+.0415*me,be=.0557*re+-.204*ne+1.057*me,fe=(fe=3.2406*re+-1.5372*ne+-.4986*me)>.0031308?1.055*Math.pow(fe,1/2.4)-.055:fe*=12.92,ue=ue>.0031308?1.055*Math.pow(ue,1/2.4)-.055:ue*=12.92,be=be>.0031308?1.055*Math.pow(be,1/2.4)-.055:be*=12.92,[255*(fe=Math.min(Math.max(0,fe),1)),255*(ue=Math.min(Math.max(0,ue),1)),255*(be=Math.min(Math.max(0,be),1))]}function X(W){var re=W[0],ne=W[1],me=W[2];return ne/=100,me/=108.883,re=(re/=95.047)>.008856?Math.pow(re,1/3):7.787*re+16/116,[116*(ne=ne>.008856?Math.pow(ne,1/3):7.787*ne+16/116)-16,500*(re-ne),200*(ne-(me=me>.008856?Math.pow(me,1/3):7.787*me+16/116))]}function Se(W){var fe,ue,be,_e,re=W[0],ne=W[1],me=W[2];return re<=8?_e=(ue=100*re/903.3)/100*7.787+16/116:(ue=100*Math.pow((re+16)/116,3),_e=Math.pow(ue/100,1/3)),[fe=fe/95.047<=.008856?fe=95.047*(ne/500+_e-16/116)/7.787:95.047*Math.pow(ne/500+_e,3),ue,be=be/108.883<=.008859?be=108.883*(_e-me/200-16/116)/7.787:108.883*Math.pow(_e-me/200,3)]}function Ce(W){var ue,re=W[0],ne=W[1],me=W[2];return(ue=360*Math.atan2(me,ne)/2/Math.PI)<0&&(ue+=360),[re,Math.sqrt(ne*ne+me*me),ue]}function Ve(W){return le(Se(W))}function tt(W){var be,ne=W[1];return be=W[2]/360*2*Math.PI,[W[0],ne*Math.cos(be),ne*Math.sin(be)]}function Nt(W){return Ii[W]}he.exports={rgb2hsl:ge,rgb2hsv:N,rgb2hwb:O,rgb2cmyk:_,rgb2keyword:u,rgb2xyz:f,rgb2lab:h,rgb2lch:function y(W){return Ce(h(W))},hsl2rgb:p,hsl2hsv:function v(W){var ne=W[1]/100,me=W[2]/100;return 0===me?[0,0,0]:[W[0],2*(ne*=(me*=2)<=1?me:2-me)/(me+ne)*100,(me+ne)/2*100]},hsl2hwb:function C(W){return O(p(W))},hsl2cmyk:function T(W){return _(p(W))},hsl2keyword:function S(W){return u(p(W))},hsv2rgb:k,hsv2hsl:function L(W){var fe,ue,ne=W[1]/100,me=W[2]/100;return fe=ne*me,[W[0],100*(fe=(fe/=(ue=(2-ne)*me)<=1?ue:2-ue)||0),100*(ue/=2)]},hsv2hwb:function A(W){return O(k(W))},hsv2cmyk:function U(W){return _(k(W))},hsv2keyword:function H(W){return u(k(W))},hwb2rgb:K,hwb2hsl:function ie(W){return ge(K(W))},hwb2hsv:function ve(W){return N(K(W))},hwb2cmyk:function Z(W){return _(K(W))},hwb2keyword:function Q(W){return u(K(W))},cmyk2rgb:de,cmyk2hsl:function G(W){return ge(de(W))},cmyk2hsv:function J(W){return N(de(W))},cmyk2hwb:function ee(W){return O(de(W))},cmyk2keyword:function ae(W){return u(de(W))},keyword2rgb:Nt,keyword2hsl:function en(W){return ge(Nt(W))},keyword2hsv:function Gn(W){return N(Nt(W))},keyword2hwb:function In(W){return O(Nt(W))},keyword2cmyk:function Bn(W){return _(Nt(W))},keyword2lab:function $e(W){return h(Nt(W))},keyword2xyz:function Ei(W){return f(Nt(W))},xyz2rgb:le,xyz2lab:X,xyz2lch:function Te(W){return Ce(X(W))},lab2xyz:Se,lab2rgb:Ve,lab2lch:Ce,lch2lab:tt,lch2xyz:function ot(W){return Se(tt(W))},lch2rgb:function st(W){return Ve(tt(W))}};var Ii={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},or={};for(var Ze in Ii)or[JSON.stringify(Ii[Ze])]=Ze},7227:(he,ge,N)=>{var O=N(4126),_=function(){return new p};for(var u in O){_[u+"Raw"]=function(v){return function(C){return"number"==typeof C&&(C=Array.prototype.slice.call(arguments)),O[v](C)}}(u);var f=/(\w+)2(\w+)/.exec(u),h=f[1],y=f[2];(_[h]=_[h]||{})[y]=_[u]=function(v){return function(C){"number"==typeof C&&(C=Array.prototype.slice.call(arguments));var T=O[v](C);if("string"==typeof T||void 0===T)return T;for(var S=0;S{he.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},7088:function(he,ge,N){!function(O){"use strict";O.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(u){return/^nm$/i.test(u)},meridiem:function(u,f,h){return u<12?h?"vm":"VM":h?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(u){return u+(1===u||8===u||u>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},2502:function(he,ge,N){!function(O){"use strict";O.defineLocale("ar-dz",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:4}})}(N(5439))},128:function(he,ge,N){!function(O){"use strict";O.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}})}(N(5439))},4519:function(he,ge,N){!function(O){"use strict";var _={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},u=function(v){return 0===v?0:1===v?1:2===v?2:v%100>=3&&v%100<=10?3:v%100>=11?4:5},f={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},h=function(v){return function(C,T,S,k){var L=u(C),A=f[v][u(C)];return 2===L&&(A=A[T?0:1]),A.replace(/%d/i,C)}},y=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];O.defineLocale("ar-ly",{months:y,monthsShort:y,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(v){return"\u0645"===v},meridiem:function(v,C,T){return v<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:h("s"),ss:h("s"),m:h("m"),mm:h("m"),h:h("h"),hh:h("h"),d:h("d"),dd:h("d"),M:h("M"),MM:h("M"),y:h("y"),yy:h("y")},preparse:function(v){return v.replace(/\u060c/g,",")},postformat:function(v){return v.replace(/\d/g,function(C){return _[C]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(N(5439))},5443:function(he,ge,N){!function(O){"use strict";O.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:6,doy:12}})}(N(5439))},7642:function(he,ge,N){!function(O){"use strict";var _={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},u={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};O.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(h){return"\u0645"===h},meridiem:function(h,y,p){return h<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(h){return h.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(y){return u[y]}).replace(/\u060c/g,",")},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(N(5439))},8592:function(he,ge,N){!function(O){"use strict";O.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}(N(5439))},7038:function(he,ge,N){!function(O){"use strict";var _={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},u={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},f=function(C){return 0===C?0:1===C?1:2===C?2:C%100>=3&&C%100<=10?3:C%100>=11?4:5},h={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},y=function(C){return function(T,S,k,L){var A=f(T),U=h[C][f(T)];return 2===A&&(U=U[S?0:1]),U.replace(/%d/i,T)}},p=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];O.defineLocale("ar",{months:p,monthsShort:p,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(C){return"\u0645"===C},meridiem:function(C,T,S){return C<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:y("s"),ss:y("s"),m:y("m"),mm:y("m"),h:y("h"),hh:y("h"),d:y("d"),dd:y("d"),M:y("M"),MM:y("M"),y:y("y"),yy:y("y")},preparse:function(C){return C.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(T){return u[T]}).replace(/\u060c/g,",")},postformat:function(C){return C.replace(/\d/g,function(T){return _[T]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(N(5439))},1213:function(he,ge,N){!function(O){"use strict";var _={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};O.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"birne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(f){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(f)},meridiem:function(f,h,y){return f<4?"gec\u0259":f<12?"s\u0259h\u0259r":f<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(f){if(0===f)return f+"-\u0131nc\u0131";var h=f%10;return f+(_[h]||_[f%100-h]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},9191:function(he,ge,N){!function(O){"use strict";function u(h,y,p){return"m"===p?y?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===p?y?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":h+" "+function _(h,y){var p=h.split("_");return y%10==1&&y%100!=11?p[0]:y%10>=2&&y%10<=4&&(y%100<10||y%100>=20)?p[1]:p[2]}({ss:y?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:y?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:y?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[p],+h)}O.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:u,mm:u,h:u,hh:u,d:"\u0434\u0437\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(h){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(h)},meridiem:function(h,y,p){return h<4?"\u043d\u043e\u0447\u044b":h<12?"\u0440\u0430\u043d\u0456\u0446\u044b":h<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(h,y){switch(y){case"M":case"d":case"DDD":case"w":case"W":return h%10!=2&&h%10!=3||h%100==12||h%100==13?h+"-\u044b":h+"-\u0456";case"D":return h+"-\u0433\u0430";default:return h}},week:{dow:1,doy:7}})}(N(5439))},322:function(he,ge,N){!function(O){"use strict";O.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u043d\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(u){var f=u%10,h=u%100;return 0===u?u+"-\u0435\u0432":0===h?u+"-\u0435\u043d":h>10&&h<20?u+"-\u0442\u0438":1===f?u+"-\u0432\u0438":2===f?u+"-\u0440\u0438":7===f||8===f?u+"-\u043c\u0438":u+"-\u0442\u0438"},week:{dow:1,doy:7}})}(N(5439))},8042:function(he,ge,N){!function(O){"use strict";O.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(N(5439))},9620:function(he,ge,N){!function(O){"use strict";var _={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},u={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};O.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(h){return h.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u09b0\u09be\u09a4"===y&&h>=4||"\u09a6\u09c1\u09aa\u09c1\u09b0"===y&&h<5||"\u09ac\u09bf\u0995\u09be\u09b2"===y?h+12:h},meridiem:function(h,y,p){return h<4?"\u09b0\u09be\u09a4":h<10?"\u09b8\u0995\u09be\u09b2":h<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":h<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(N(5439))},9645:function(he,ge,N){!function(O){"use strict";var _={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},u={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};O.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(h){return h.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===y&&h>=4||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===y&&h<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===y?h+12:h},meridiem:function(h,y,p){return h<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":h<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":h<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":h<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}})}(N(5439))},5020:function(he,ge,N){!function(O){"use strict";function _(v,C,T){return v+" "+function h(v,C){return 2===C?function y(v){var C={m:"v",b:"v",d:"z"};return void 0===C[v.charAt(0)]?v:C[v.charAt(0)]+v.substring(1)}(v):v}({mm:"munutenn",MM:"miz",dd:"devezh"}[T],v)}function f(v){return v>9?f(v%10):v}O.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:_,h:"un eur",hh:"%d eur",d:"un devezh",dd:_,M:"ur miz",MM:_,y:"ur bloaz",yy:function u(v){switch(f(v)){case 1:case 3:case 4:case 5:case 9:return v+" bloaz";default:return v+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(v){return v+(1===v?"a\xf1":"vet")},week:{dow:1,doy:4}})}(N(5439))},4792:function(he,ge,N){!function(O){"use strict";function _(f,h,y){var p=f+" ";switch(y){case"ss":return p+(1===f?"sekunda":2===f||3===f||4===f?"sekunde":"sekundi");case"m":return h?"jedna minuta":"jedne minute";case"mm":return p+(1===f?"minuta":2===f||3===f||4===f?"minute":"minuta");case"h":return h?"jedan sat":"jednog sata";case"hh":return p+(1===f?"sat":2===f||3===f||4===f?"sata":"sati");case"dd":return p+(1===f?"dan":"dana");case"MM":return p+(1===f?"mjesec":2===f||3===f||4===f?"mjeseca":"mjeseci");case"yy":return p+(1===f?"godina":2===f||3===f||4===f?"godine":"godina")}}O.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:_,m:_,mm:_,h:_,hh:_,d:"dan",dd:_,M:"mjesec",MM:_,y:"godinu",yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},7980:function(he,ge,N){!function(O){"use strict";O.defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(u,f){var h=1===u?"r":2===u?"n":3===u?"r":4===u?"t":"\xe8";return("w"===f||"W"===f)&&(h="a"),u+h},week:{dow:1,doy:4}})}(N(5439))},7322:function(he,ge,N){!function(O){"use strict";var _="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),u="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_");function f(p){return p>1&&p<5&&1!=~~(p/10)}function h(p,v,C,T){var S=p+" ";switch(C){case"s":return v||T?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return v||T?S+(f(p)?"sekundy":"sekund"):S+"sekundami";case"m":return v?"minuta":T?"minutu":"minutou";case"mm":return v||T?S+(f(p)?"minuty":"minut"):S+"minutami";case"h":return v?"hodina":T?"hodinu":"hodinou";case"hh":return v||T?S+(f(p)?"hodiny":"hodin"):S+"hodinami";case"d":return v||T?"den":"dnem";case"dd":return v||T?S+(f(p)?"dny":"dn\xed"):S+"dny";case"M":return v||T?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return v||T?S+(f(p)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):S+"m\u011bs\xedci";case"y":return v||T?"rok":"rokem";case"yy":return v||T?S+(f(p)?"roky":"let"):S+"lety"}}O.defineLocale("cs",{months:_,monthsShort:u,monthsParse:function(p,v){var C,T=[];for(C=0;C<12;C++)T[C]=new RegExp("^"+p[C]+"$|^"+v[C]+"$","i");return T}(_,u),shortMonthsParse:function(p){var v,C=[];for(v=0;v<12;v++)C[v]=new RegExp("^"+p[v]+"$","i");return C}(u),longMonthsParse:function(p){var v,C=[];for(v=0;v<12;v++)C[v]=new RegExp("^"+p[v]+"$","i");return C}(_),weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},365:function(he,ge,N){!function(O){"use strict";O.defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(u){return u+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(u)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(u)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}})}(N(5439))},2092:function(he,ge,N){!function(O){"use strict";O.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(u){var h="";return u>20?h=40===u||50===u||60===u||80===u||100===u?"fed":"ain":u>0&&(h=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][u]),u+h},week:{dow:1,doy:4}})}(N(5439))},7387:function(he,ge,N){!function(O){"use strict";O.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},9459:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?v[y][0]:v[y][1]}O.defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:_,mm:"%d Minuten",h:_,hh:"%d Stunden",d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3694:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?v[y][0]:v[y][1]}O.defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:_,mm:"%d Minuten",h:_,hh:"%d Stunden",d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},4307:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?v[y][0]:v[y][1]}O.defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:_,mm:"%d Minuten",h:_,hh:"%d Stunden",d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},9659:function(he,ge,N){!function(O){"use strict";var _=["\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9","\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9","\u0789\u07a7\u0783\u07a8\u0797\u07aa","\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa","\u0789\u07ad","\u0796\u07ab\u0782\u07b0","\u0796\u07aa\u078d\u07a6\u0787\u07a8","\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa","\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa","\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa"],u=["\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6","\u0780\u07af\u0789\u07a6","\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6","\u0784\u07aa\u078b\u07a6","\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8","\u0780\u07aa\u0786\u07aa\u0783\u07aa","\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa"];O.defineLocale("dv",{months:_,monthsShort:_,weekdays:u,weekdaysShort:u,weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(h){return"\u0789\u078a"===h},meridiem:function(h,y,p){return h<12?"\u0789\u0786":"\u0789\u078a"},calendar:{sameDay:"[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT",nextDay:"[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT",nextWeek:"dddd LT",lastDay:"[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT",lastWeek:"[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT",sameElse:"L"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",ss:"d% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:7,doy:12}})}(N(5439))},3460:function(he,ge,N){!function(O){"use strict";O.defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(f,h){return f?"string"==typeof h&&/D/.test(h.substring(0,h.indexOf("MMMM")))?this._monthsGenitiveEl[f.month()]:this._monthsNominativeEl[f.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(f,h,y){return f>11?y?"\u03bc\u03bc":"\u039c\u039c":y?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(f){return"\u03bc"===(f+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){return 6===this.day()?"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT":"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"},sameElse:"L"},calendar:function(f,h){var y=this._calendarEl[f],p=h&&h.hours();return function _(f){return f instanceof Function||"[object Function]"===Object.prototype.toString.call(f)}(y)&&(y=y.apply(h)),y.replace("{}",p%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}})}(N(5439))},4369:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},530:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")}})}(N(5439))},9998:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},3391:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},5414:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")}})}(N(5439))},1248:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},4530:function(he,ge,N){!function(O){"use strict";O.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(u){return"p"===u.charAt(0).toLowerCase()},meridiem:function(u,f,h){return u>11?h?"p.t.m.":"P.T.M.":h?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(N(5439))},8944:function(he,ge,N){!function(O){"use strict";var _="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),f=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],h=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;O.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},3609:function(he,ge,N){!function(O){"use strict";var _="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");O.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(h,y){return h?/-MMM-/.test(y)?u[h.month()]:_[h.month()]:_},monthsParseExact:!0,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"MMMM [de] D [de] YYYY",LLL:"MMMM [de] D [de] YYYY h:mm A",LLLL:"dddd, MMMM [de] D [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:6}})}(N(5439))},6866:function(he,ge,N){!function(O){"use strict";var _="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),f=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],h=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;O.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},6725:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],ss:[f+"sekundi",f+"sekundit"],m:["\xfche minuti","\xfcks minut"],mm:[f+" minuti",f+" minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:[f+" tunni",f+" tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:[f+" kuu",f+" kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:[f+" aasta",f+" aastat"]};return h?v[y][2]?v[y][2]:v[y][1]:p?v[y][0]:v[y][1]}O.defineLocale("et",{months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[T\xe4na,] LT",nextDay:"[Homme,] LT",nextWeek:"[J\xe4rgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:"%d p\xe4eva",M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},7931:function(he,ge,N){!function(O){"use strict";O.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6417:function(he,ge,N){!function(O){"use strict";var _={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},u={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};O.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(h){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(h)},meridiem:function(h,y,p){return h<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"\u062b\u0627\u0646\u06cc\u0647 d%",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/[\u06f0-\u06f9]/g,function(y){return u[y]}).replace(/\u060c/g,",")},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}})}(N(5439))},944:function(he,ge,N){!function(O){"use strict";var _="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),u=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",_[7],_[8],_[9]];function f(p,v,C,T){var S="";switch(C){case"s":return T?"muutaman sekunnin":"muutama sekunti";case"ss":return T?"sekunnin":"sekuntia";case"m":return T?"minuutin":"minuutti";case"mm":S=T?"minuutin":"minuuttia";break;case"h":return T?"tunnin":"tunti";case"hh":S=T?"tunnin":"tuntia";break;case"d":return T?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":S=T?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return T?"kuukauden":"kuukausi";case"MM":S=T?"kuukauden":"kuukautta";break;case"y":return T?"vuoden":"vuosi";case"yy":S=T?"vuoden":"vuotta"}return function h(p,v){return p<10?v?u[p]:_[p]:p}(p,T)+" "+S}O.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:f,ss:f,m:f,mm:f,h:f,hh:f,d:f,dd:f,M:f,MM:f,y:f,yy:f},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},5867:function(he,ge,N){!function(O){"use strict";O.defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minutt",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0i",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},6848:function(he,ge,N){!function(O){"use strict";O.defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(u,f){switch(f){default:case"M":case"Q":case"D":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}}})}(N(5439))},7773:function(he,ge,N){!function(O){"use strict";O.defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(u,f){switch(f){default:case"M":case"Q":case"D":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}},week:{dow:1,doy:4}})}(N(5439))},1636:function(he,ge,N){!function(O){"use strict";O.defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(u,f){switch(f){case"D":return u+(1===u?"er":"");default:case"M":case"Q":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}},week:{dow:1,doy:4}})}(N(5439))},4940:function(he,ge,N){!function(O){"use strict";var _="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),u="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");O.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(h,y){return h?/-MMM-/.test(y)?u[h.month()]:_[h.month()]:_},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(h){return h+(1===h||8===h||h>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},6924:function(he,ge,N){!function(O){"use strict";O.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(v){return v+(1===v?"d":v%10==2?"na":"mh")},week:{dow:1,doy:4}})}(N(5439))},6398:function(he,ge,N){!function(O){"use strict";O.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(u){return 0===u.indexOf("un")?"n"+u:"en "+u},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},2545:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={s:["thodde secondanim","thodde second"],ss:[f+" secondanim",f+" second"],m:["eka mintan","ek minute"],mm:[f+" mintanim",f+" mintam"],h:["eka horan","ek hor"],hh:[f+" horanim",f+" horam"],d:["eka disan","ek dis"],dd:[f+" disanim",f+" dis"],M:["eka mhoinean","ek mhoino"],MM:[f+" mhoineanim",f+" mhoine"],y:["eka vorsan","ek voros"],yy:[f+" vorsanim",f+" vorsam"]};return h?v[y][0]:v[y][1]}O.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(f,h){return"D"===h?f+"er":f},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(f,h){return 12===f&&(f=0),"rati"===h?f<4?f:f+12:"sokalli"===h?f:"donparam"===h?f>12?f:f+12:"sanje"===h?f+12:void 0},meridiem:function(f,h,y){return f<4?"rati":f<12?"sokalli":f<16?"donparam":f<20?"sanje":"rati"}})}(N(5439))},2641:function(he,ge,N){!function(O){"use strict";var _={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},u={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};O.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(h){return h.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0ab0\u0abe\u0aa4"===y?h<4?h:h+12:"\u0ab8\u0ab5\u0abe\u0ab0"===y?h:"\u0aac\u0aaa\u0acb\u0ab0"===y?h>=10?h:h+12:"\u0ab8\u0abe\u0a82\u0a9c"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0ab0\u0abe\u0aa4":h<10?"\u0ab8\u0ab5\u0abe\u0ab0":h<17?"\u0aac\u0aaa\u0acb\u0ab0":h<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}})}(N(5439))},7536:function(he,ge,N){!function(O){"use strict";O.defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(u){return 2===u?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":u+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(u){return 2===u?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":u+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(u){return 2===u?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":u+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(u){return 2===u?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":u%10==0&&10!==u?u+" \u05e9\u05e0\u05d4":u+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(u){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(u)},meridiem:function(u,f,h){return u<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":u<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":u<12?h?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":u<18?h?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}})}(N(5439))},6335:function(he,ge,N){!function(O){"use strict";var _={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};O.defineLocale("hi",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0930\u093e\u0924"===y?h<4?h:h+12:"\u0938\u0941\u092c\u0939"===y?h:"\u0926\u094b\u092a\u0939\u0930"===y?h>=10?h:h+12:"\u0936\u093e\u092e"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0930\u093e\u0924":h<10?"\u0938\u0941\u092c\u0939":h<17?"\u0926\u094b\u092a\u0939\u0930":h<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}})}(N(5439))},7458:function(he,ge,N){!function(O){"use strict";function _(f,h,y){var p=f+" ";switch(y){case"ss":return p+(1===f?"sekunda":2===f||3===f||4===f?"sekunde":"sekundi");case"m":return h?"jedna minuta":"jedne minute";case"mm":return p+(1===f?"minuta":2===f||3===f||4===f?"minute":"minuta");case"h":return h?"jedan sat":"jednog sata";case"hh":return p+(1===f?"sat":2===f||3===f||4===f?"sata":"sati");case"dd":return p+(1===f?"dan":"dana");case"MM":return p+(1===f?"mjesec":2===f||3===f||4===f?"mjeseca":"mjeseci");case"yy":return p+(1===f?"godina":2===f||3===f||4===f?"godine":"godina")}}O.defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:_,m:_,mm:_,h:_,hh:_,d:"dan",dd:_,M:"mjesec",MM:_,y:"godinu",yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6540:function(he,ge,N){!function(O){"use strict";var _="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function u(y,p,v,C){var T=y;switch(v){case"s":return C||p?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return T+(C||p)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(C||p?" perc":" perce");case"mm":return T+(C||p?" perc":" perce");case"h":return"egy"+(C||p?" \xf3ra":" \xf3r\xe1ja");case"hh":return T+(C||p?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(C||p?" nap":" napja");case"dd":return T+(C||p?" nap":" napja");case"M":return"egy"+(C||p?" h\xf3nap":" h\xf3napja");case"MM":return T+(C||p?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(C||p?" \xe9v":" \xe9ve");case"yy":return T+(C||p?" \xe9v":" \xe9ve")}return""}function f(y){return(y?"":"[m\xfalt] ")+"["+_[this.day()]+"] LT[-kor]"}O.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(y){return"u"===y.charAt(1).toLowerCase()},meridiem:function(y,p,v){return y<12?!0===v?"de":"DE":!0===v?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return f.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return f.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:u,ss:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},5283:function(he,ge,N){!function(O){"use strict";O.defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(u){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(u)},meridiem:function(u){return u<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":u<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":u<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(u,f){switch(f){case"DDD":case"w":case"W":case"DDDo":return 1===u?u+"-\u056b\u0576":u+"-\u0580\u0564";default:return u}},week:{dow:1,doy:7}})}(N(5439))},8780:function(he,ge,N){!function(O){"use strict";O.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"siang"===f?u>=11?u:u+12:"sore"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"siang":u<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},4205:function(he,ge,N){!function(O){"use strict";function _(h){return h%100==11||h%10!=1}function u(h,y,p,v){var C=h+" ";switch(p){case"s":return y||v?"nokkrar sek\xfandur":"nokkrum sek\xfandum";case"ss":return _(h)?C+(y||v?"sek\xfandur":"sek\xfandum"):C+"sek\xfanda";case"m":return y?"m\xedn\xfata":"m\xedn\xfatu";case"mm":return _(h)?C+(y||v?"m\xedn\xfatur":"m\xedn\xfatum"):y?C+"m\xedn\xfata":C+"m\xedn\xfatu";case"hh":return _(h)?C+(y||v?"klukkustundir":"klukkustundum"):C+"klukkustund";case"d":return y?"dagur":v?"dag":"degi";case"dd":return _(h)?y?C+"dagar":C+(v?"daga":"d\xf6gum"):y?C+"dagur":C+(v?"dag":"degi");case"M":return y?"m\xe1nu\xf0ur":v?"m\xe1nu\xf0":"m\xe1nu\xf0i";case"MM":return _(h)?y?C+"m\xe1nu\xf0ir":C+(v?"m\xe1nu\xf0i":"m\xe1nu\xf0um"):y?C+"m\xe1nu\xf0ur":C+(v?"m\xe1nu\xf0":"m\xe1nu\xf0i");case"y":return y||v?"\xe1r":"\xe1ri";case"yy":return _(h)?C+(y||v?"\xe1r":"\xe1rum"):C+(y||v?"\xe1r":"\xe1ri")}}O.defineLocale("is",{months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[\xed dag kl.] LT",nextDay:"[\xe1 morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xed g\xe6r kl.] LT",lastWeek:"[s\xed\xf0asta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:u,ss:u,m:u,mm:u,h:"klukkustund",hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},4211:function(he,ge,N){!function(O){"use strict";O.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(u){return(/^[0-9].+$/.test(u)?"tra":"in")+" "+u},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},1003:function(he,ge,N){!function(O){"use strict";O.defineLocale("ja",{months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(u){return"\u5348\u5f8c"===u},meridiem:function(u,f,h){return u<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:function(u){return u.week()=11?u:u+12:"sonten"===f||"ndalu"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"enjing":u<15?"siyang":u<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(N(5439))},851:function(he,ge,N){!function(O){"use strict";O.defineLocale("ka",{months:{standalone:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),format:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1".split("_")},monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(u){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(u)?u.replace(/\u10d8$/,"\u10e8\u10d8"):u+"\u10e8\u10d8"},past:function(u){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(u)?u.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(u)?u.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):void 0},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(u){return 0===u?u:1===u?u+"-\u10da\u10d8":u<20||u<=100&&u%20==0||u%100==0?"\u10db\u10d4-"+u:u+"-\u10d4"},week:{dow:1,doy:7}})}(N(5439))},6074:function(he,ge,N){!function(O){"use strict";var _={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};O.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(f){return f+(_[f]||_[f%10]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},3343:function(he,ge,N){!function(O){"use strict";var _={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},u={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};O.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(h){return"\u179b\u17d2\u1784\u17b6\u1785"===h},meridiem:function(h,y,p){return h<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(h){return h.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},week:{dow:1,doy:4}})}(N(5439))},4799:function(he,ge,N){!function(O){"use strict";var _={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},u={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};O.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(h){return h.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===y?h<4?h:h+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===y?h:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===y?h>=10?h:h+12:"\u0cb8\u0c82\u0c9c\u0cc6"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":h<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":h<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":h<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(h){return h+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}})}(N(5439))},3549:function(he,ge,N){!function(O){"use strict";O.defineLocale("ko",{months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\uc77c";case"M":return u+"\uc6d4";case"w":case"W":return u+"\uc8fc";default:return u}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(u){return"\uc624\ud6c4"===u},meridiem:function(u,f,h){return u<12?"\uc624\uc804":"\uc624\ud6c4"}})}(N(5439))},3125:function(he,ge,N){!function(O){"use strict";var _={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};O.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u0435 \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(f){return f+(_[f]||_[f%10]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},9586:function(he,ge,N){!function(O){"use strict";function _(p,v,C,T){var S={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return v?S[C][0]:S[C][1]}function h(p){if(p=parseInt(p,10),isNaN(p))return!1;if(p<0)return!0;if(p<10)return 4<=p&&p<=7;if(p<100){var v=p%10;return h(0===v?p/10:v)}if(p<1e4){for(;p>=10;)p/=10;return h(p)}return h(p/=1e3)}O.defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function u(p){return h(p.substr(0,p.indexOf(" ")))?"a "+p:"an "+p},past:function f(p){return h(p.substr(0,p.indexOf(" ")))?"viru "+p:"virun "+p},s:"e puer Sekonnen",ss:"%d Sekonnen",m:_,mm:"%d Minutten",h:_,hh:"%d Stonnen",d:_,dd:"%d Deeg",M:_,MM:"%d M\xe9int",y:_,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},2349:function(he,ge,N){!function(O){"use strict";O.defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(u){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===u},meridiem:function(u,f,h){return u<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(u){return"\u0e97\u0eb5\u0ec8"+u}})}(N(5439))},2400:function(he,ge,N){!function(O){"use strict";var _={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function f(C,T,S,k){return T?y(S)[0]:k?y(S)[1]:y(S)[2]}function h(C){return C%10==0||C>10&&C<20}function y(C){return _[C].split("_")}function p(C,T,S,k){var L=C+" ";return 1===C?L+f(0,T,S[0],k):T?L+(h(C)?y(S)[1]:y(S)[0]):k?L+y(S)[1]:L+(h(C)?y(S)[1]:y(S)[2])}O.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function u(C,T,S,k){return T?"kelios sekund\u0117s":k?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:p,m:f,mm:p,h:f,hh:p,d:f,dd:p,M:f,MM:p,y:f,yy:p},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(C){return C+"-oji"},week:{dow:1,doy:4}})}(N(5439))},9991:function(he,ge,N){!function(O){"use strict";var _={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function u(v,C,T){return T?C%10==1&&C%100!=11?v[2]:v[3]:C%10==1&&C%100!=11?v[0]:v[1]}function f(v,C,T){return v+" "+u(_[T],v,C)}function h(v,C,T){return u(_[T],v,C)}O.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function y(v,C){return C?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:f,m:h,mm:f,h,hh:f,d:h,dd:f,M:h,MM:f,y:h,yy:f},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8477:function(he,ge,N){!function(O){"use strict";var _={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,y){var p=_.words[y];return 1===y.length?h?p[0]:p[1]:f+" "+_.correctGrammaticalCase(f,p)}};O.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:_.translate,m:_.translate,mm:_.translate,h:_.translate,hh:_.translate,d:"dan",dd:_.translate,M:"mjesec",MM:_.translate,y:"godinu",yy:_.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},5118:function(he,ge,N){!function(O){"use strict";O.defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},5943:function(he,ge,N){!function(O){"use strict";O.defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(u){var f=u%10,h=u%100;return 0===u?u+"-\u0435\u0432":0===h?u+"-\u0435\u043d":h>10&&h<20?u+"-\u0442\u0438":1===f?u+"-\u0432\u0438":2===f?u+"-\u0440\u0438":7===f||8===f?u+"-\u043c\u0438":u+"-\u0442\u0438"},week:{dow:1,doy:7}})}(N(5439))},3849:function(he,ge,N){!function(O){"use strict";O.defineLocale("ml",{months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),monthsParseExact:!0,weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),longDateFormat:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},calendar:{sameDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT",nextDay:"[\u0d28\u0d3e\u0d33\u0d46] LT",nextWeek:"dddd, LT",lastDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT",lastWeek:"[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",ss:"%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(u,f){return 12===u&&(u=0),"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"===f&&u>=4||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===f||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===f?u+12:u},meridiem:function(u,f,h){return u<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":u<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":u<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":u<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}})}(N(5439))},1977:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){switch(y){case"s":return h?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return f+(h?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return f+(h?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return f+(h?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return f+(h?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return f+(h?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return f+(h?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return f}}O.defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(f){return"\u04ae\u0425"===f},meridiem:function(f,h,y){return f<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(f,h){switch(h){case"d":case"D":case"DDD":return f+" \u04e9\u0434\u04e9\u0440";default:return f}}})}(N(5439))},6184:function(he,ge,N){!function(O){"use strict";var _={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function f(y,p,v,C){var T="";if(p)switch(v){case"s":T="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":T="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":T="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":T="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":T="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":T="%d \u0924\u093e\u0938";break;case"d":T="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":T="%d \u0926\u093f\u0935\u0938";break;case"M":T="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":T="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":T="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":T="%d \u0935\u0930\u094d\u0937\u0947"}else switch(v){case"s":T="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":T="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":T="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":T="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":T="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":T="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":T="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":T="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":T="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":T="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":T="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":T="%d \u0935\u0930\u094d\u0937\u093e\u0902"}return T.replace(/%d/i,y)}O.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:f,ss:f,m:f,mm:f,h:f,hh:f,d:f,dd:f,M:f,MM:f,y:f,yy:f},preparse:function(y){return y.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(p){return u[p]})},postformat:function(y){return y.replace(/\d/g,function(p){return _[p]})},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(y,p){return 12===y&&(y=0),"\u0930\u093e\u0924\u094d\u0930\u0940"===p?y<4?y:y+12:"\u0938\u0915\u093e\u0933\u0940"===p?y:"\u0926\u0941\u092a\u093e\u0930\u0940"===p?y>=10?y:y+12:"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===p?y+12:void 0},meridiem:function(y,p,v){return y<4?"\u0930\u093e\u0924\u094d\u0930\u0940":y<10?"\u0938\u0915\u093e\u0933\u0940":y<17?"\u0926\u0941\u092a\u093e\u0930\u0940":y<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}})}(N(5439))},4524:function(he,ge,N){!function(O){"use strict";O.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"tengahari"===f?u>=11?u:u+12:"petang"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"tengahari":u<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},485:function(he,ge,N){!function(O){"use strict";O.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"tengahari"===f?u>=11?u:u+12:"petang"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"tengahari":u<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},6681:function(he,ge,N){!function(O){"use strict";O.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[G\u0127ada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-biera\u0127 fil-]LT",lastWeek:"dddd [li g\u0127adda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},2024:function(he,ge,N){!function(O){"use strict";var _={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},u={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};O.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(h){return h.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},week:{dow:1,doy:4}})}(N(5439))},2688:function(he,ge,N){!function(O){"use strict";O.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8914:function(he,ge,N){!function(O){"use strict";var _={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};O.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0930\u093e\u0924\u093f"===y?h<4?h:h+12:"\u092c\u093f\u0939\u093e\u0928"===y?h:"\u0926\u093f\u0909\u0901\u0938\u094b"===y?h>=10?h:h+12:"\u0938\u093e\u0901\u091d"===y?h+12:void 0},meridiem:function(h,y,p){return h<3?"\u0930\u093e\u0924\u093f":h<12?"\u092c\u093f\u0939\u093e\u0928":h<16?"\u0926\u093f\u0909\u0901\u0938\u094b":h<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}})}(N(5439))},2272:function(he,ge,N){!function(O){"use strict";var _="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),u="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),f=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],h=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;O.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(p){return p+(1===p||8===p||p>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},1758:function(he,ge,N){!function(O){"use strict";var _="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),u="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),f=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],h=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;O.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(p){return p+(1===p||8===p||p>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},1510:function(he,ge,N){!function(O){"use strict";O.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},7944:function(he,ge,N){!function(O){"use strict";var _={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},u={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};O.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(h){return h.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0a30\u0a3e\u0a24"===y?h<4?h:h+12:"\u0a38\u0a35\u0a47\u0a30"===y?h:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===y?h>=10?h:h+12:"\u0a38\u0a3c\u0a3e\u0a2e"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0a30\u0a3e\u0a24":h<10?"\u0a38\u0a35\u0a47\u0a30":h<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":h<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}})}(N(5439))},1605:function(he,ge,N){!function(O){"use strict";var _="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),u="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function f(p){return p%10<5&&p%10>1&&~~(p/10)%10!=1}function h(p,v,C){var T=p+" ";switch(C){case"ss":return T+(f(p)?"sekundy":"sekund");case"m":return v?"minuta":"minut\u0119";case"mm":return T+(f(p)?"minuty":"minut");case"h":return v?"godzina":"godzin\u0119";case"hh":return T+(f(p)?"godziny":"godzin");case"MM":return T+(f(p)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return T+(f(p)?"lata":"lat")}}O.defineLocale("pl",{months:function(p,v){return p?""===v?"("+u[p.month()]+"|"+_[p.month()]+")":/D MMMM/.test(v)?u[p.month()]:_[p.month()]:_},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:h,m:h,mm:h,h,hh:h,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:h,y:"rok",yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3840:function(he,ge,N){!function(O){"use strict";O.defineLocale("pt-br",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"})}(N(5439))},4225:function(he,ge,N){!function(O){"use strict";O.defineLocale("pt",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},5128:function(he,ge,N){!function(O){"use strict";function _(f,h,y){var v=" ";return(f%100>=20||f>=100&&f%100==0)&&(v=" de "),f+v+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[y]}O.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:_,m:"un minut",mm:_,h:"o or\u0103",hh:_,d:"o zi",dd:_,M:"o lun\u0103",MM:_,y:"un an",yy:_},week:{dow:1,doy:7}})}(N(5439))},5127:function(he,ge,N){!function(O){"use strict";function u(y,p,v){return"m"===v?p?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":y+" "+function _(y,p){var v=y.split("_");return p%10==1&&p%100!=11?v[0]:p%10>=2&&p%10<=4&&(p%100<10||p%100>=20)?v[1]:v[2]}({ss:p?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:p?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[v],+y)}var f=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];O.defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:f,longMonthsParse:f,shortMonthsParse:f,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(y){if(y.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(y){if(y.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:u,m:u,mm:u,h:"\u0447\u0430\u0441",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(y){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(y)},meridiem:function(y,p,v){return y<4?"\u043d\u043e\u0447\u0438":y<12?"\u0443\u0442\u0440\u0430":y<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(y,p){switch(p){case"M":case"d":case"DDD":return y+"-\u0439";case"D":return y+"-\u0433\u043e";case"w":case"W":return y+"-\u044f";default:return y}},week:{dow:1,doy:4}})}(N(5439))},2525:function(he,ge,N){!function(O){"use strict";var _=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],u=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];O.defineLocale("sd",{months:_,monthsShort:_,weekdays:u,weekdaysShort:u,weekdaysMin:u,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(h){return"\u0634\u0627\u0645"===h},meridiem:function(h,y,p){return h<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(N(5439))},9893:function(he,ge,N){!function(O){"use strict";O.defineLocale("se",{months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3123:function(he,ge,N){!function(O){"use strict";O.defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(u){return u+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(u){return"\u0db4.\u0dc0."===u||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===u},meridiem:function(u,f,h){return u>11?h?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":h?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}})}(N(5439))},9635:function(he,ge,N){!function(O){"use strict";var _="janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),u="jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_");function f(p){return p>1&&p<5}function h(p,v,C,T){var S=p+" ";switch(C){case"s":return v||T?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return v||T?S+(f(p)?"sekundy":"sek\xfand"):S+"sekundami";case"m":return v?"min\xfata":T?"min\xfatu":"min\xfatou";case"mm":return v||T?S+(f(p)?"min\xfaty":"min\xfat"):S+"min\xfatami";case"h":return v?"hodina":T?"hodinu":"hodinou";case"hh":return v||T?S+(f(p)?"hodiny":"hod\xedn"):S+"hodinami";case"d":return v||T?"de\u0148":"d\u0148om";case"dd":return v||T?S+(f(p)?"dni":"dn\xed"):S+"d\u0148ami";case"M":return v||T?"mesiac":"mesiacom";case"MM":return v||T?S+(f(p)?"mesiace":"mesiacov"):S+"mesiacmi";case"y":return v||T?"rok":"rokom";case"yy":return v||T?S+(f(p)?"roky":"rokov"):S+"rokmi"}}O.defineLocale("sk",{months:_,monthsShort:u,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:case 4:case 5:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8106:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v=f+" ";switch(y){case"s":return h||p?"nekaj sekund":"nekaj sekundami";case"ss":return v+(1===f?h?"sekundo":"sekundi":2===f?h||p?"sekundi":"sekundah":f<5?h||p?"sekunde":"sekundah":"sekund");case"m":return h?"ena minuta":"eno minuto";case"mm":return v+(1===f?h?"minuta":"minuto":2===f?h||p?"minuti":"minutama":f<5?h||p?"minute":"minutami":h||p?"minut":"minutami");case"h":return h?"ena ura":"eno uro";case"hh":return v+(1===f?h?"ura":"uro":2===f?h||p?"uri":"urama":f<5?h||p?"ure":"urami":h||p?"ur":"urami");case"d":return h||p?"en dan":"enim dnem";case"dd":return v+(1===f?h||p?"dan":"dnem":2===f?h||p?"dni":"dnevoma":h||p?"dni":"dnevi");case"M":return h||p?"en mesec":"enim mesecem";case"MM":return v+(1===f?h||p?"mesec":"mesecem":2===f?h||p?"meseca":"mesecema":f<5?h||p?"mesece":"meseci":h||p?"mesecev":"meseci");case"y":return h||p?"eno leto":"enim letom";case"yy":return v+(1===f?h||p?"leto":"letom":2===f?h||p?"leti":"letoma":f<5?h||p?"leta":"leti":h||p?"let":"leti")}}O.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},8799:function(he,ge,N){!function(O){"use strict";O.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(u){return"M"===u.charAt(0)},meridiem:function(u,f,h){return u<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},2872:function(he,ge,N){!function(O){"use strict";var _={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,y){var p=_.words[y];return 1===y.length?h?p[0]:p[1]:f+" "+_.correctGrammaticalCase(f,p)}};O.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:_.translate,m:_.translate,mm:_.translate,h:_.translate,hh:_.translate,d:"\u0434\u0430\u043d",dd:_.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:_.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:_.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},7949:function(he,ge,N){!function(O){"use strict";var _={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,y){var p=_.words[y];return 1===y.length?h?p[0]:p[1]:f+" "+_.correctGrammaticalCase(f,p)}};O.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:_.translate,m:_.translate,mm:_.translate,h:_.translate,hh:_.translate,d:"dan",dd:_.translate,M:"mesec",MM:_.translate,y:"godinu",yy:_.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6167:function(he,ge,N){!function(O){"use strict";O.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(u,f,h){return u<11?"ekuseni":u<15?"emini":u<19?"entsambama":"ebusuku"},meridiemHour:function(u,f){return 12===u&&(u=0),"ekuseni"===f?u:"emini"===f?u>=11?u:u+12:"entsambama"===f||"ebusuku"===f?0===u?0:u+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(N(5439))},9713:function(he,ge,N){!function(O){"use strict";O.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"e":1===f||2===f?"a":"e")},week:{dow:1,doy:4}})}(N(5439))},1982:function(he,ge,N){!function(O){"use strict";O.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(N(5439))},2732:function(he,ge,N){!function(O){"use strict";var _={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},u={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};O.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(h){return h+"\u0bb5\u0ba4\u0bc1"},preparse:function(h){return h.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(h,y,p){return h<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":h<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":h<10?" \u0b95\u0bbe\u0bb2\u0bc8":h<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":h<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":h<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(h,y){return 12===h&&(h=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===y?h<2?h:h+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===y||"\u0b95\u0bbe\u0bb2\u0bc8"===y||"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===y&&h>=10?h:h+12},week:{dow:0,doy:6}})}(N(5439))},3636:function(he,ge,N){!function(O){"use strict";O.defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===f?u<4?u:u+12:"\u0c09\u0c26\u0c2f\u0c02"===f?u:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===f?u>=10?u:u+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===f?u+12:void 0},meridiem:function(u,f,h){return u<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":u<10?"\u0c09\u0c26\u0c2f\u0c02":u<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":u<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}})}(N(5439))},2115:function(he,ge,N){!function(O){"use strict";O.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},9801:function(he,ge,N){!function(O){"use strict";var _={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};O.defineLocale("tg",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(f,h){return 12===f&&(f=0),"\u0448\u0430\u0431"===h?f<4?f:f+12:"\u0441\u0443\u0431\u04b3"===h?f:"\u0440\u04ef\u0437"===h?f>=11?f:f+12:"\u0431\u0435\u0433\u043e\u04b3"===h?f+12:void 0},meridiem:function(f,h,y){return f<4?"\u0448\u0430\u0431":f<11?"\u0441\u0443\u0431\u04b3":f<16?"\u0440\u04ef\u0437":f<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(f){return f+(_[f]||_[f%10]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},2868:function(he,ge,N){!function(O){"use strict";O.defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(u){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===u},meridiem:function(u,f,h){return u<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}})}(N(5439))},2360:function(he,ge,N){!function(O){"use strict";O.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(u){return u},week:{dow:1,doy:4}})}(N(5439))},6645:function(he,ge,N){!function(O){"use strict";var _="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function h(v,C,T,S){var k=function y(v){var C=Math.floor(v%1e3/100),T=Math.floor(v%100/10),S=v%10,k="";return C>0&&(k+=_[C]+"vatlh"),T>0&&(k+=(""!==k?" ":"")+_[T]+"maH"),S>0&&(k+=(""!==k?" ":"")+_[S]),""===k?"pagh":k}(v);switch(T){case"ss":return k+" lup";case"mm":return k+" tup";case"hh":return k+" rep";case"dd":return k+" jaj";case"MM":return k+" jar";case"yy":return k+" DIS"}}O.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function u(v){var C=v;return-1!==v.indexOf("jaj")?C.slice(0,-3)+"leS":-1!==v.indexOf("jar")?C.slice(0,-3)+"waQ":-1!==v.indexOf("DIS")?C.slice(0,-3)+"nem":C+" pIq"},past:function f(v){var C=v;return-1!==v.indexOf("jaj")?C.slice(0,-3)+"Hu\u2019":-1!==v.indexOf("jar")?C.slice(0,-3)+"wen":-1!==v.indexOf("DIS")?C.slice(0,-3)+"ben":C+" ret"},s:"puS lup",ss:h,m:"wa\u2019 tup",mm:h,h:"wa\u2019 rep",hh:h,d:"wa\u2019 jaj",dd:h,M:"wa\u2019 jar",MM:h,y:"wa\u2019 DIS",yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8374:function(he,ge,N){!function(O){"use strict";var _={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};O.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(f,h){switch(h){case"d":case"D":case"Do":case"DD":return f;default:if(0===f)return f+"'\u0131nc\u0131";var y=f%10;return f+(_[y]||_[f%100-y]||_[f>=100?100:null])}},week:{dow:1,doy:7}})}(N(5439))},256:function(he,ge,N){!function(O){"use strict";function u(f,h,y,p){var v={s:["viensas secunds","'iensas secunds"],ss:[f+" secunds",f+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[f+" m\xeduts",f+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[f+" \xfeoras",f+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[f+" ziuas",f+" ziuas"],M:["'n mes","'iens mes"],MM:[f+" mesen",f+" mesen"],y:["'n ar","'iens ar"],yy:[f+" ars",f+" ars"]};return p||h?v[y][0]:v[y][1]}O.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(f){return"d'o"===f.toLowerCase()},meridiem:function(f,h,y){return f>11?y?"d'o":"D'O":y?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:u,ss:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},1631:function(he,ge,N){!function(O){"use strict";O.defineLocale("tzm-latn",{months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(N(5439))},1595:function(he,ge,N){!function(O){"use strict";O.defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}})}(N(5439))},6050:function(he,ge,N){!function(O){"use strict";O.defineLocale("ug-cn",{months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5"===f||"\u0633\u06d5\u06be\u06d5\u0631"===f||"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646"===f?u:"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646"===f||"\u0643\u06d5\u0686"===f?u+12:u>=11?u:u+12},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":y<900?"\u0633\u06d5\u06be\u06d5\u0631":y<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":y<1230?"\u0686\u06c8\u0634":y<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return u+"-\u06be\u06d5\u067e\u062a\u06d5";default:return u}},preparse:function(u){return u.replace(/\u060c/g,",")},postformat:function(u){return u.replace(/,/g,"\u060c")},week:{dow:1,doy:7}})}(N(5439))},5610:function(he,ge,N){!function(O){"use strict";function u(p,v,C){return"m"===C?v?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===C?v?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":p+" "+function _(p,v){var C=p.split("_");return v%10==1&&v%100!=11?C[0]:v%10>=2&&v%10<=4&&(v%100<10||v%100>=20)?C[1]:C[2]}({ss:v?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:v?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:v?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[C],+p)}function h(p){return function(){return p+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}O.defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function f(p,v){var C={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return p?C[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(v)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(v)?"genitive":"nominative"][p.day()]:C.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:h("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:h("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:h("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:h("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return h("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return h("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:u,m:u,mm:u,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:u,y:"\u0440\u0456\u043a",yy:u},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(p){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(p)},meridiem:function(p,v,C){return p<4?"\u043d\u043e\u0447\u0456":p<12?"\u0440\u0430\u043d\u043a\u0443":p<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(p,v){switch(v){case"M":case"d":case"DDD":case"w":case"W":return p+"-\u0439";case"D":return p+"-\u0433\u043e";default:return p}},week:{dow:1,doy:7}})}(N(5439))},6077:function(he,ge,N){!function(O){"use strict";var _=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],u=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];O.defineLocale("ur",{months:_,monthsShort:_,weekdays:u,weekdaysShort:u,weekdaysMin:u,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(h){return"\u0634\u0627\u0645"===h},meridiem:function(h,y,p){return h<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(N(5439))},2207:function(he,ge,N){!function(O){"use strict";O.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(N(5439))},2862:function(he,ge,N){!function(O){"use strict";O.defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}})}(N(5439))},8093:function(he,ge,N){!function(O){"use strict";O.defineLocale("vi",{months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(u){return/^ch$/i.test(u)},meridiem:function(u,f,h){return u<12?h?"sa":"SA":h?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tu\u1ea7n t\u1edbi l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tu\u1ea7n r\u1ed3i l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(u){return u},week:{dow:1,doy:4}})}(N(5439))},5590:function(he,ge,N){!function(O){"use strict";O.defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},9058:function(he,ge,N){!function(O){"use strict";O.defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}})}(N(5439))},7908:function(he,ge,N){!function(O){"use strict";O.defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:u>=11?u:u+12},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u51cc\u6668":y<900?"\u65e9\u4e0a":y<1130?"\u4e0a\u5348":y<1230?"\u4e2d\u5348":y<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u5468";default:return u}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}})}(N(5439))},8867:function(he,ge,N){!function(O){"use strict";O.defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e2d\u5348"===f?u>=11?u:u+12:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:void 0},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u51cc\u6668":y<900?"\u65e9\u4e0a":y<1130?"\u4e0a\u5348":y<1230?"\u4e2d\u5348":y<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u9031";default:return u}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(N(5439))},3291:function(he,ge,N){!function(O){"use strict";O.defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e2d\u5348"===f?u>=11?u:u+12:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:void 0},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u51cc\u6668":y<900?"\u65e9\u4e0a":y<1130?"\u4e0a\u5348":y<1230?"\u4e2d\u5348":y<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u9031";default:return u}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(N(5439))},5439:function(he,ge,N){(he=N.nmd(he)).exports=function(){"use strict";var O,H;function _(){return O.apply(null,arguments)}function f(m){return m instanceof Array||"[object Array]"===Object.prototype.toString.call(m)}function h(m){return null!=m&&"[object Object]"===Object.prototype.toString.call(m)}function p(m){return void 0===m}function v(m){return"number"==typeof m||"[object Number]"===Object.prototype.toString.call(m)}function C(m){return m instanceof Date||"[object Date]"===Object.prototype.toString.call(m)}function T(m,I){var $,j=[];for($=0;$>>0,$=0;$0)for(j=0;j=0?j?"+":"":"-")+Math.pow(10,Math.max(0,I-$.length)).toString().substr(1)+$}var Ee=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Ne=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ut={},_t={};function rt(m,I,j,$){var se=$;"string"==typeof $&&(se=function(){return this[$]()}),m&&(_t[m]=se),I&&(_t[I[0]]=function(){return De(se.apply(this,arguments),I[1],I[2])}),j&&(_t[j]=function(){return this.localeData().ordinal(se.apply(this,arguments),m)})}function sn(m){return m.match(/\[[\s\S]/)?m.replace(/^\[|\]$/g,""):m.replace(/\\/g,"")}function vt(m,I){return m.isValid()?(I=jt(I,m.localeData()),ut[I]=ut[I]||function Pn(m){var j,$,I=m.match(Ee);for(j=0,$=I.length;j<$;j++)I[j]=_t[I[j]]?_t[I[j]]:sn(I[j]);return function(se){var je,Le="";for(je=0;je<$;je++)Le+=Ce(I[je])?I[je].call(se,m):I[je];return Le}}(I),ut[I](m)):m.localeData().invalidDate()}function jt(m,I){var j=5;function $(se){return I.longDateFormat(se)||se}for(Ne.lastIndex=0;j>=0&&Ne.test(m);)m=m.replace(Ne,$),Ne.lastIndex=0,j-=1;return m}var jn=/\d/,oi=/\d\d/,Kr=/\d{3}/,So=/\d{4}/,Pi=/[+-]?\d{6}/,tn=/\d\d?/,Mi=/\d\d\d\d?/,si=/\d\d\d\d\d\d?/,On=/\d{1,3}/,Nu=/\d{1,4}/,xa=/[+-]?\d{1,6}/,An=/\d+/,Ca=/[+-]?\d+/,Fn=/Z|[+-]\d\d:?\d\d/gi,ka=/Z|[+-]\d\d(?::?\d\d)?/gi,an=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,yt={};function gt(m,I,j){yt[m]=Ce(I)?I:function($,se){return $&&j?j:I}}function Yu(m,I){return S(yt,m)?yt[m](I._strict,I._locale):new RegExp(function cM(m){return Do(m.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(I,j,$,se,Le){return j||$||se||Le}))}(m))}function Do(m){return m.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Fe={};function kn(m,I){var j,$=I;for("string"==typeof m&&(m=[m]),v(I)&&($=function(se,Le){Le[I]=ee(se)}),j=0;j68?1900:2e3)};var wi,zg=Sa("FullYear",!0);function Sa(m,I){return function(j){return null!=j?(yp(this,m,j),_.updateOffset(this,I),this):Hu(this,m)}}function Hu(m,I){return m.isValid()?m._d["get"+(m._isUTC?"UTC":"")+I]():NaN}function yp(m,I,j){m.isValid()&&!isNaN(j)&&("FullYear"===I&&Bu(m.year())&&1===m.month()&&29===m.date()?m._d["set"+(m._isUTC?"UTC":"")+I](j,m.month(),Vu(j,m.month())):m._d["set"+(m._isUTC?"UTC":"")+I](j))}function Vu(m,I){if(isNaN(m)||isNaN(I))return NaN;var j=function gn(m,I){return(m%I+I)%I}(I,12);return m+=(I-j)/12,1===j?Bu(m)?29:28:31-j%7%2}wi=Array.prototype.indexOf?Array.prototype.indexOf:function(m){var I;for(I=0;I=0&&isFinite(Bt.getFullYear())&&Bt.setFullYear(m),Bt}function gl(m){var I=new Date(Date.UTC.apply(null,arguments));return m<100&&m>=0&&isFinite(I.getUTCFullYear())&&I.setUTCFullYear(m),I}function ur(m,I,j){var $=7+I-j;return-(7+gl(m,0,$).getUTCDay()-I)%7+$-1}function Uu(m,I,j,$,se){var rn,mi,Bt=1+7*(I-1)+(7+j-$)%7+ur(m,$,se);return Bt<=0?mi=Oc(rn=m-1)+Bt:Bt>Oc(m)?(rn=m+1,mi=Bt-Oc(m)):(rn=m,mi=Bt),{year:rn,dayOfYear:mi}}function Rc(m,I,j){var Le,je,$=ur(m.year(),I,j),se=Math.floor((m.dayOfYear()-$-1)/7)+1;return se<1?Le=se+dn(je=m.year()-1,I,j):se>dn(m.year(),I,j)?(Le=se-dn(m.year(),I,j),je=m.year()+1):(je=m.year(),Le=se),{week:Le,year:je}}function dn(m,I,j){var $=ur(m,I,j),se=ur(m+1,I,j);return(Oc(m)-$+se)/7}rt("w",["ww",2],"wo","week"),rt("W",["WW",2],"Wo","isoWeek"),me("week","w"),me("isoWeek","W"),_e("week",5),_e("isoWeek",5),gt("w",tn),gt("ww",tn,oi),gt("W",tn),gt("WW",tn,oi),St(["w","ww","W","WW"],function(m,I,j,$){I[$.substr(0,1)]=ee(m)});rt("d",0,"do","day"),rt("dd",0,0,function(m){return this.localeData().weekdaysMin(this,m)}),rt("ddd",0,0,function(m){return this.localeData().weekdaysShort(this,m)}),rt("dddd",0,0,function(m){return this.localeData().weekdays(this,m)}),rt("e",0,0,"weekday"),rt("E",0,0,"isoWeekday"),me("day","d"),me("weekday","e"),me("isoWeekday","E"),_e("day",11),_e("weekday",11),_e("isoWeekday",11),gt("d",tn),gt("e",tn),gt("E",tn),gt("dd",function(m,I){return I.weekdaysMinRegex(m)}),gt("ddd",function(m,I){return I.weekdaysShortRegex(m)}),gt("dddd",function(m,I){return I.weekdaysRegex(m)}),St(["dd","ddd","dddd"],function(m,I,j,$){var se=j._locale.weekdaysParse(m,$,j._strict);null!=se?I.d=se:U(j).invalidWeekday=m}),St(["d","e","E"],function(m,I,j,$){I[$]=ee(m)});var Kg="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Da="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var Zg="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Dp(m,I,j){var $,se,Le,je=m.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],$=0;$<7;++$)Le=L([2e3,1]).day($),this._minWeekdaysParse[$]=this.weekdaysMin(Le,"").toLocaleLowerCase(),this._shortWeekdaysParse[$]=this.weekdaysShort(Le,"").toLocaleLowerCase(),this._weekdaysParse[$]=this.weekdays(Le,"").toLocaleLowerCase();return j?"dddd"===I?-1!==(se=wi.call(this._weekdaysParse,je))?se:null:"ddd"===I?-1!==(se=wi.call(this._shortWeekdaysParse,je))?se:null:-1!==(se=wi.call(this._minWeekdaysParse,je))?se:null:"dddd"===I?-1!==(se=wi.call(this._weekdaysParse,je))||-1!==(se=wi.call(this._shortWeekdaysParse,je))||-1!==(se=wi.call(this._minWeekdaysParse,je))?se:null:"ddd"===I?-1!==(se=wi.call(this._shortWeekdaysParse,je))||-1!==(se=wi.call(this._weekdaysParse,je))||-1!==(se=wi.call(this._minWeekdaysParse,je))?se:null:-1!==(se=wi.call(this._minWeekdaysParse,je))||-1!==(se=wi.call(this._weekdaysParse,je))||-1!==(se=wi.call(this._shortWeekdaysParse,je))?se:null}var Xg=an;var Jg=an;var co=an;function Tp(){function m(jr,Ra){return Ra.length-jr.length}var Le,je,Bt,rn,mi,I=[],j=[],$=[],se=[];for(Le=0;Le<7;Le++)je=L([2e3,1]).day(Le),Bt=this.weekdaysMin(je,""),rn=this.weekdaysShort(je,""),mi=this.weekdays(je,""),I.push(Bt),j.push(rn),$.push(mi),se.push(Bt),se.push(rn),se.push(mi);for(I.sort(m),j.sort(m),$.sort(m),se.sort(m),Le=0;Le<7;Le++)j[Le]=Do(j[Le]),$[Le]=Do($[Le]),se[Le]=Do(se[Le]);this._weekdaysRegex=new RegExp("^("+se.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+$.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+j.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+I.join("|")+")","i")}function Nr(){return this.hours()%12||12}function un(m,I){rt(m,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),I)})}function yl(m,I){return I._meridiemParse}rt("H",["HH",2],0,"hour"),rt("h",["hh",2],0,Nr),rt("k",["kk",2],0,function Uo(){return this.hours()||24}),rt("hmm",0,0,function(){return""+Nr.apply(this)+De(this.minutes(),2)}),rt("hmmss",0,0,function(){return""+Nr.apply(this)+De(this.minutes(),2)+De(this.seconds(),2)}),rt("Hmm",0,0,function(){return""+this.hours()+De(this.minutes(),2)}),rt("Hmmss",0,0,function(){return""+this.hours()+De(this.minutes(),2)+De(this.seconds(),2)}),un("a",!0),un("A",!1),me("hour","h"),_e("hour",13),gt("a",yl),gt("A",yl),gt("H",tn),gt("h",tn),gt("k",tn),gt("HH",tn,oi),gt("hh",tn,oi),gt("kk",tn,oi),gt("hmm",Mi),gt("hmmss",si),gt("Hmm",Mi),gt("Hmmss",si),kn(["H","HH"],3),kn(["k","kk"],function(m,I,j){var $=ee(m);I[3]=24===$?0:$}),kn(["a","A"],function(m,I,j){j._isPm=j._locale.isPM(m),j._meridiem=m}),kn(["h","hh"],function(m,I,j){I[3]=ee(m),U(j).bigHour=!0}),kn("hmm",function(m,I,j){var $=m.length-2;I[3]=ee(m.substr(0,$)),I[4]=ee(m.substr($)),U(j).bigHour=!0}),kn("hmmss",function(m,I,j){var $=m.length-4,se=m.length-2;I[3]=ee(m.substr(0,$)),I[4]=ee(m.substr($,2)),I[5]=ee(m.substr(se)),U(j).bigHour=!0}),kn("Hmm",function(m,I,j){var $=m.length-2;I[3]=ee(m.substr(0,$)),I[4]=ee(m.substr($))}),kn("Hmmss",function(m,I,j){var $=m.length-4,se=m.length-2;I[3]=ee(m.substr(0,$)),I[4]=ee(m.substr($,2)),I[5]=ee(m.substr(se))});var Hs,Wo=Sa("Hours",!0),La={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ye,monthsShort:At,week:{dow:0,doy:6},weekdays:Kg,weekdaysMin:Zg,weekdaysShort:Da,meridiemParse:/[ap]\.?m?\.?/i},Oi={},qe={};function Ku(m){return m&&m.toLowerCase().replace("_","-")}function Pt(m){var I=null;if(!Oi[m]&&he&&he.exports)try{I=Hs._abbr,N(6700)("./"+m),Ea(I)}catch{}return Oi[m]}function Ea(m,I){var j;return m&&((j=p(I)?Jn(m):Bc(m,I))?Hs=j:typeof console<"u"&&console.warn&&console.warn("Locale "+m+" not found. Did you forget to load it?")),Hs._abbr}function Bc(m,I){if(null!==I){var j,$=La;if(I.abbr=m,null!=Oi[m])Se("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),$=Oi[m]._config;else if(null!=I.parentLocale)if(null!=Oi[I.parentLocale])$=Oi[I.parentLocale]._config;else{if(null==(j=Pt(I.parentLocale)))return qe[I.parentLocale]||(qe[I.parentLocale]=[]),qe[I.parentLocale].push({name:m,config:I}),null;$=j._config}return Oi[m]=new ot(tt($,I)),qe[m]&&qe[m].forEach(function(se){Bc(se.name,se.config)}),Ea(m),Oi[m]}return delete Oi[m],null}function Jn(m){var I;if(m&&m._locale&&m._locale._abbr&&(m=m._locale._abbr),!m)return Hs;if(!f(m)){if(I=Pt(m))return I;m=[m]}return function Ep(m){for(var j,$,se,Le,I=0;I0;){if(se=Pt(Le.slice(0,j).join("-")))return se;if($&&$.length>=j&&ae(Le,$,!0)>=j-1)break;j--}I++}return Hs}(m)}function ji(m){var I,j=m._a;return j&&-2===U(m).overflow&&(I=j[1]<0||j[1]>11?1:j[2]<1||j[2]>Vu(j[0],j[1])?2:j[3]<0||j[3]>24||24===j[3]&&(0!==j[4]||0!==j[5]||0!==j[6])?3:j[4]<0||j[4]>59?4:j[5]<0||j[5]>59?5:j[6]<0||j[6]>999?6:-1,U(m)._overflowDayOfYear&&(I<0||I>2)&&(I=2),U(m)._overflowWeeks&&-1===I&&(I=7),U(m)._overflowWeekday&&-1===I&&(I=8),U(m).overflow=I),m}function xi(m,I,j){return m??I??j}function hr(m){var I,j,se,Le,je,$=[];if(!m._d){for(se=function Ia(m){var I=new Date(_.now());return m._useUTC?[I.getUTCFullYear(),I.getUTCMonth(),I.getUTCDate()]:[I.getFullYear(),I.getMonth(),I.getDate()]}(m),m._w&&null==m._a[2]&&null==m._a[1]&&function $o(m){var I,j,$,se,Le,je,Bt,rn;if(null!=(I=m._w).GG||null!=I.W||null!=I.E)Le=1,je=4,j=xi(I.GG,m._a[0],Rc(qn(),1,4).year),$=xi(I.W,1),((se=xi(I.E,1))<1||se>7)&&(rn=!0);else{Le=m._locale._week.dow,je=m._locale._week.doy;var mi=Rc(qn(),Le,je);j=xi(I.gg,m._a[0],mi.year),$=xi(I.w,mi.week),null!=I.d?((se=I.d)<0||se>6)&&(rn=!0):null!=I.e?(se=I.e+Le,(I.e<0||I.e>6)&&(rn=!0)):se=Le}$<1||$>dn(j,Le,je)?U(m)._overflowWeeks=!0:null!=rn?U(m)._overflowWeekday=!0:(Bt=Uu(j,$,se,Le,je),m._a[0]=Bt.year,m._dayOfYear=Bt.dayOfYear)}(m),null!=m._dayOfYear&&(je=xi(m._a[0],se[0]),(m._dayOfYear>Oc(je)||0===m._dayOfYear)&&(U(m)._overflowDayOfYear=!0),j=gl(je,0,m._dayOfYear),m._a[1]=j.getUTCMonth(),m._a[2]=j.getUTCDate()),I=0;I<3&&null==m._a[I];++I)m._a[I]=$[I]=se[I];for(;I<7;I++)m._a[I]=$[I]=null==m._a[I]?2===I?1:0:m._a[I];24===m._a[3]&&0===m._a[4]&&0===m._a[5]&&0===m._a[6]&&(m._nextDay=!0,m._a[3]=0),m._d=(m._useUTC?gl:zu).apply(null,$),Le=m._useUTC?m._d.getUTCDay():m._d.getDay(),null!=m._tzm&&m._d.setUTCMinutes(m._d.getUTCMinutes()-m._tzm),m._nextDay&&(m._a[3]=24),m._w&&typeof m._w.d<"u"&&m._w.d!==Le&&(U(m).weekdayMismatch=!0)}}var lt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Yt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,li=/Z|[+-]\d\d(?::?\d\d)?/,Sr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Go=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],sr=/^\/?Date\((\-?\d+)/i;function Vs(m){var I,j,Le,je,Bt,rn,$=m._i,se=lt.exec($)||Yt.exec($);if(se){for(U(m).iso=!0,I=0,j=Sr.length;I0&&U(m).unusedInput.push(je),I=I.slice(I.indexOf($)+$.length),rn+=$.length),_t[Le]?($?U(m).empty=!1:U(m).unusedTokens.push(Le),_n(Le,$,m)):m._strict&&!$&&U(m).unusedTokens.push(Le);U(m).charsLeftOver=Bt-rn,I.length>0&&U(m).unusedInput.push(I),m._a[3]<=12&&!0===U(m).bigHour&&m._a[3]>0&&(U(m).bigHour=void 0),U(m).parsedDateParts=m._a.slice(0),U(m).meridiem=m._meridiem,m._a[3]=function Pa(m,I,j){var $;return null==j?I:null!=m.meridiemHour?m.meridiemHour(I,j):(null!=m.isPM&&(($=m.isPM(j))&&I<12&&(I+=12),!$&&12===I&&(I=0)),I)}(m._locale,m._a[3],m._meridiem),hr(m),ji(m)}else js(m);else Vs(m)}function Hn(m){var I=m._i,j=m._f;return m._locale=m._locale||Jn(m._l),null===I||void 0===j&&""===I?ie({nullInput:!0}):("string"==typeof I&&(m._i=I=m._locale.preparse(I)),G(I)?new de(ji(I)):(C(I)?m._d=I:f(j)?function Lo(m){var I,j,$,se,Le;if(0===m._f.length)return U(m).invalidFormat=!0,void(m._d=new Date(NaN));for(se=0;sethis?this:m:ie()});function Us(m,I){var j,$;if(1===I.length&&f(I[0])&&(I=I[0]),!I.length)return qn();for(j=I[0],$=1;$(Le=dn(m,$,se))&&(I=Le),fb.call(this,m,I,j,$,se))}function fb(m,I,j,$,se){var Le=Uu(m,I,j,$,se),je=gl(Le.year,0,Le.dayOfYear);return this.year(je.getUTCFullYear()),this.month(je.getUTCMonth()),this.date(je.getUTCDate()),this}rt(0,["gg",2],0,function(){return this.weekYear()%100}),rt(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ci("gggg","weekYear"),Ci("ggggg","weekYear"),Ci("GGGG","isoWeekYear"),Ci("GGGGG","isoWeekYear"),me("weekYear","gg"),me("isoWeekYear","GG"),_e("weekYear",1),_e("isoWeekYear",1),gt("G",Ca),gt("g",Ca),gt("GG",tn,oi),gt("gg",tn,oi),gt("GGGG",Nu,So),gt("gggg",Nu,So),gt("GGGGG",xa,Pi),gt("ggggg",xa,Pi),St(["gggg","ggggg","GGGG","GGGGG"],function(m,I,j,$){I[$.substr(0,2)]=ee(m)}),St(["gg","GG"],function(m,I,j,$){I[$]=_.parseTwoDigitYear(m)}),rt("Q",0,"Qo","quarter"),me("quarter","Q"),_e("quarter",7),gt("Q",jn),kn("Q",function(m,I){I[1]=3*(ee(m)-1)}),rt("D",["DD",2],"Do","date"),me("date","D"),_e("date",9),gt("D",tn),gt("DD",tn,oi),gt("Do",function(m,I){return m?I._dayOfMonthOrdinalParse||I._ordinalParse:I._dayOfMonthOrdinalParseLenient}),kn(["D","DD"],2),kn("Do",function(m,I){I[2]=ee(m.match(tn)[0])});var rh=Sa("Date",!0);rt("DDD",["DDDD",3],"DDDo","dayOfYear"),me("dayOfYear","DDD"),_e("dayOfYear",4),gt("DDD",On),gt("DDDD",Kr),kn(["DDD","DDDD"],function(m,I,j){j._dayOfYear=ee(m)}),rt("m",["mm",2],0,"minute"),me("minute","m"),_e("minute",14),gt("m",tn),gt("mm",tn,oi),kn(["m","mm"],4);var qo=Sa("Minutes",!1);rt("s",["ss",2],0,"second"),me("second","s"),_e("second",15),gt("s",tn),gt("ss",tn,oi),kn(["s","ss"],5);var Vr,Kp=Sa("Seconds",!1);for(rt("S",0,0,function(){return~~(this.millisecond()/100)}),rt(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),rt(0,["SSS",3],0,"millisecond"),rt(0,["SSSS",4],0,function(){return 10*this.millisecond()}),rt(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),rt(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),rt(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),rt(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),rt(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),me("millisecond","ms"),_e("millisecond",16),gt("S",On,jn),gt("SS",On,oi),gt("SSS",On,Kr),Vr="SSSS";Vr.length<=9;Vr+="S")gt(Vr,An);function Ko(m,I){I[6]=ee(1e3*("0."+m))}for(Vr="S";Vr.length<=9;Vr+="S")kn(Vr,Ko);var pb=Sa("Milliseconds",!1);rt("z",0,0,"zoneAbbr"),rt("zz",0,0,"zoneName");var Qe=de.prototype;function ah(m){return m}Qe.add=tb,Qe.calendar=function nb(m,I){var j=m||qn(),$=Rp(j,this).startOf("day"),se=_.calendarFormat(this,$)||"sameElse",Le=I&&(Ce(I[se])?I[se].call(this,j):I[se]);return this.format(Le||this.localeData().calendar(se,this,qn(j)))},Qe.clone=function th(){return new de(this)},Qe.diff=function $c(m,I,j){var $,se,Le;if(!this.isValid())return NaN;if(!($=Rp(m,this)).isValid())return NaN;switch(se=6e4*($.utcOffset()-this.utcOffset()),I=fe(I)){case"year":Le=mr(this,$)/12;break;case"month":Le=mr(this,$);break;case"quarter":Le=mr(this,$)/3;break;case"second":Le=(this-$)/1e3;break;case"minute":Le=(this-$)/6e4;break;case"hour":Le=(this-$)/36e5;break;case"day":Le=(this-$-se)/864e5;break;case"week":Le=(this-$-se)/6048e5;break;default:Le=this-$}return j?Le:J(Le)},Qe.endOf=function IM(m){return void 0===(m=fe(m))||"millisecond"===m?this:("date"===m&&(m="day"),this.startOf(m).add(1,"isoWeek"===m?"week":m).subtract(1,"ms"))},Qe.format=function Hr(m){m||(m=this.isUtc()?_.defaultFormatUtc:_.defaultFormat);var I=vt(this,m);return this.localeData().postformat(I)},Qe.from=function sb(m,I){return this.isValid()&&(G(m)&&m.isValid()||qn(m).isValid())?Eo({to:this,from:m}).locale(this.locale()).humanize(!I):this.localeData().invalidDate()},Qe.fromNow=function Gc(m){return this.from(qn(),m)},Qe.to=function ab(m,I){return this.isValid()&&(G(m)&&m.isValid()||qn(m).isValid())?Eo({from:this,to:m}).locale(this.locale()).humanize(!I):this.localeData().invalidDate()},Qe.toNow=function ps(m){return this.to(qn(),m)},Qe.get=function hM(m){return Ce(this[m=fe(m)])?this[m]():this},Qe.invalidAt=function Pe(){return U(this).overflow},Qe.isAfter=function ib(m,I){var j=G(m)?m:qn(m);return!(!this.isValid()||!j.isValid())&&("millisecond"===(I=fe(p(I)?"millisecond":I))?this.valueOf()>j.valueOf():j.valueOf()9999?vt(j,I?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Ce(Date.prototype.toISOString)?I?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",vt(j,"Z")):vt(j,I?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Qe.inspect=function Oa(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var m="moment",I="";this.isLocal()||(m=0===this.utcOffset()?"moment.utc":"moment.parseZone",I="Z");var j="["+m+'("]',$=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";return this.format(j+$+"-MM-DD[T]HH:mm:ss.SSS"+I+'[")]')},Qe.toJSON=function hb(){return this.isValid()?this.toISOString():null},Qe.toString=function ob(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Qe.unix=function cb(){return Math.floor(this.valueOf()/1e3)},Qe.valueOf=function lb(){return this._d.valueOf()-6e4*(this._offset||0)},Qe.creationData=function Oe(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Qe.year=zg,Qe.isLeapYear=function uM(){return Bu(this.year())},Qe.weekYear=function qp(m){return Kc.call(this,m,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Qe.isoWeekYear=function Cl(m){return Kc.call(this,m,this.isoWeek(),this.isoWeekday(),1,4)},Qe.quarter=Qe.quarters=function PM(m){return null==m?Math.ceil((this.month()+1)/3):this.month(3*(m-1)+this.month()%3)},Qe.month=xp,Qe.daysInMonth=function Cp(){return Vu(this.year(),this.month())},Qe.week=Qe.weeks=function Wu(m){var I=this.localeData().week(this);return null==m?I:this.add(7*(m-I),"d")},Qe.isoWeek=Qe.isoWeeks=function Nc(m){var I=Rc(this,1,4).week;return null==m?I:this.add(7*(m-I),"d")},Qe.weeksInYear=function ih(){var m=this.localeData()._week;return dn(this.year(),m.dow,m.doy)},Qe.isoWeeksInYear=function Io(){return dn(this.year(),1,4)},Qe.date=rh,Qe.day=Qe.days=function Yc(m){if(!this.isValid())return null!=m?this:NaN;var I=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=m?(m=function Gg(m,I){return"string"!=typeof m?m:isNaN(m)?"number"==typeof(m=I.weekdaysParse(m))?m:null:parseInt(m,10)}(m,this.localeData()),this.add(m-I,"d")):I},Qe.weekday=function $u(m){if(!this.isValid())return null!=m?this:NaN;var I=(this.day()+7-this.localeData()._week.dow)%7;return null==m?I:this.add(m-I,"d")},Qe.isoWeekday=function vl(m){if(!this.isValid())return null!=m?this:NaN;if(null!=m){var I=function qg(m,I){return"string"==typeof m?I.weekdaysParse(m)%7||7:isNaN(m)?null:m}(m,this.localeData());return this.day(this.day()%7?I:I-7)}return this.day()||7},Qe.dayOfYear=function _r(m){var I=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==m?I:this.add(m-I,"d")},Qe.hour=Qe.hours=Wo,Qe.minute=Qe.minutes=qo,Qe.second=Qe.seconds=Kp,Qe.millisecond=Qe.milliseconds=pb,Qe.utcOffset=function yM(m,I,j){var se,$=this._offset||0;if(!this.isValid())return null!=m?this:NaN;if(null!=m){if("string"==typeof m){if(null===(m=Fp(ka,m)))return this}else Math.abs(m)<16&&!j&&(m*=60);return!this._isUTC&&I&&(se=Np(this)),this._offset=m,this._isUTC=!0,null!=se&&this.add(se,"m"),$!==m&&(!I||this._changeInProgress?Hp(this,Eo(m-$,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,_.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?$:Np(this)},Qe.utc=function wM(m){return this.utcOffset(0,m)},Qe.local=function xM(m){return this._isUTC&&(this.utcOffset(0,m),this._isUTC=!1,m&&this.subtract(Np(this),"m")),this},Qe.parseZone=function CM(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var m=Fp(Fn,this._i);null!=m?this.utcOffset(m):this.utcOffset(0,!0)}return this},Qe.hasAlignedHourOffset=function kM(m){return!!this.isValid()&&(m=m?qn(m).utcOffset():0,(this.utcOffset()-m)%60==0)},Qe.isDST=function SM(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Qe.isLocal=function TM(){return!!this.isValid()&&!this._isUTC},Qe.isUtcOffset=function Yp(){return!!this.isValid()&&this._isUTC},Qe.isUtc=Ju,Qe.isUTC=Ju,Qe.zoneAbbr=function Zp(){return this._isUTC?"UTC":""},Qe.zoneName=function mb(){return this._isUTC?"Coordinated Universal Time":""},Qe.dates=X("dates accessor is deprecated. Use date instead.",rh),Qe.months=X("months accessor is deprecated. Use month instead",xp),Qe.years=X("years accessor is deprecated. Use year instead",zg),Qe.zone=X("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function MM(m,I){return null!=m?("string"!=typeof m&&(m=-m),this.utcOffset(m,I),this):-this.utcOffset()}),Qe.isDSTShifted=X("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function DM(){if(!p(this._isDSTShifted))return this._isDSTShifted;var m={};if(Z(m,this),(m=Hn(m))._a){var I=m._isUTC?L(m._a):qn(m._a);this._isDSTShifted=this.isValid()&&ae(m._a,I.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var Sn=ot.prototype;function Zc(m,I,j,$){var se=Jn(),Le=L().set($,I);return se[j](Le,m)}function lh(m,I,j){if(v(m)&&(I=m,m=void 0),m=m||"",null!=I)return Zc(m,I,j,"month");var $,se=[];for($=0;$<12;$++)se[$]=Zc(m,$,j,"month");return se}function kl(m,I,j,$){"boolean"==typeof m?(v(I)&&(j=I,I=void 0),I=I||""):(j=I=m,m=!1,v(I)&&(j=I,I=void 0),I=I||"");var se=Jn(),Le=m?se._week.dow:0;if(null!=j)return Zc(I,(j+Le)%7,$,"day");var je,Bt=[];for(je=0;je<7;je++)Bt[je]=Zc(I,(je+Le)%7,$,"day");return Bt}Sn.calendar=function en(m,I,j){var $=this._calendar[m]||this._calendar.sameElse;return Ce($)?$.call(I,j):$},Sn.longDateFormat=function In(m){var I=this._longDateFormat[m],j=this._longDateFormat[m.toUpperCase()];return I||!j?I:(this._longDateFormat[m]=j.replace(/MMMM|MM|DD|dddd/g,function($){return $.slice(1)}),this._longDateFormat[m])},Sn.invalidDate=function $e(){return this._invalidDate},Sn.ordinal=function or(m){return this._ordinal.replace("%d",m)},Sn.preparse=ah,Sn.postformat=ah,Sn.relativeTime=function W(m,I,j,$){var se=this._relativeTime[j];return Ce(se)?se(m,I,j,$):se.replace(/%d/i,m)},Sn.pastFuture=function re(m,I){var j=this._relativeTime[m>0?"future":"past"];return Ce(j)?j(I):j.replace(/%s/i,I)},Sn.set=function Ve(m){var I,j;for(j in m)Ce(I=m[j])?this[j]=I:this["_"+j]=I;this._config=m,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Sn.months=function fM(m,I){return m?f(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||Ug).test(I)?"format":"standalone"][m.month()]:f(this._months)?this._months:this._months.standalone},Sn.monthsShort=function Ac(m,I){return m?f(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[Ug.test(I)?"format":"standalone"][m.month()]:f(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Sn.monthsParse=function Mp(m,I,j){var $,se,Le;if(this._monthsParseExact)return Wg.call(this,m,I,j);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),$=0;$<12;$++){if(se=L([2e3,$]),j&&!this._longMonthsParse[$]&&(this._longMonthsParse[$]=new RegExp("^"+this.months(se,"").replace(".","")+"$","i"),this._shortMonthsParse[$]=new RegExp("^"+this.monthsShort(se,"").replace(".","")+"$","i")),!j&&!this._monthsParse[$]&&(Le="^"+this.months(se,"")+"|^"+this.monthsShort(se,""),this._monthsParse[$]=new RegExp(Le.replace(".",""),"i")),j&&"MMMM"===I&&this._longMonthsParse[$].test(m))return $;if(j&&"MMM"===I&&this._shortMonthsParse[$].test(m))return $;if(!j&&this._monthsParse[$].test(m))return $}},Sn.monthsRegex=function $g(m){return this._monthsParseExact?(S(this,"_monthsRegex")||Mt.call(this),m?this._monthsStrictRegex:this._monthsRegex):(S(this,"_monthsRegex")||(this._monthsRegex=kp),this._monthsStrictRegex&&m?this._monthsStrictRegex:this._monthsRegex)},Sn.monthsShortRegex=function ju(m){return this._monthsParseExact?(S(this,"_monthsRegex")||Mt.call(this),m?this._monthsShortStrictRegex:this._monthsShortRegex):(S(this,"_monthsShortRegex")||(this._monthsShortRegex=Fc),this._monthsShortStrictRegex&&m?this._monthsShortStrictRegex:this._monthsShortRegex)},Sn.week=function pM(m){return Rc(m,this._week.dow,this._week.doy).week},Sn.firstDayOfYear=function bl(){return this._week.doy},Sn.firstDayOfWeek=function _M(){return this._week.dow},Sn.weekdays=function Sp(m,I){return m?f(this._weekdays)?this._weekdays[m.day()]:this._weekdays[this._weekdays.isFormat.test(I)?"format":"standalone"][m.day()]:f(this._weekdays)?this._weekdays:this._weekdays.standalone},Sn.weekdaysMin=function we(m){return m?this._weekdaysMin[m.day()]:this._weekdaysMin},Sn.weekdaysShort=function Ta(m){return m?this._weekdaysShort[m.day()]:this._weekdaysShort},Sn.weekdaysParse=function Et(m,I,j){var $,se,Le;if(this._weekdaysParseExact)return Dp.call(this,m,I,j);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),$=0;$<7;$++){if(se=L([2e3,1]).day($),j&&!this._fullWeekdaysParse[$]&&(this._fullWeekdaysParse[$]=new RegExp("^"+this.weekdays(se,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[$]=new RegExp("^"+this.weekdaysShort(se,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[$]=new RegExp("^"+this.weekdaysMin(se,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[$]||(Le="^"+this.weekdays(se,"")+"|^"+this.weekdaysShort(se,"")+"|^"+this.weekdaysMin(se,""),this._weekdaysParse[$]=new RegExp(Le.replace(".",""),"i")),j&&"dddd"===I&&this._fullWeekdaysParse[$].test(m))return $;if(j&&"ddd"===I&&this._shortWeekdaysParse[$].test(m))return $;if(j&&"dd"===I&&this._minWeekdaysParse[$].test(m))return $;if(!j&&this._weekdaysParse[$].test(m))return $}},Sn.weekdaysRegex=function Qg(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||Tp.call(this),m?this._weekdaysStrictRegex:this._weekdaysRegex):(S(this,"_weekdaysRegex")||(this._weekdaysRegex=Xg),this._weekdaysStrictRegex&&m?this._weekdaysStrictRegex:this._weekdaysRegex)},Sn.weekdaysShortRegex=function fs(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||Tp.call(this),m?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(S(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Jg),this._weekdaysShortStrictRegex&&m?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Sn.weekdaysMinRegex=function gM(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||Tp.call(this),m?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(S(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=co),this._weekdaysMinStrictRegex&&m?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Sn.isPM=function Gu(m){return"p"===(m+"").toLowerCase().charAt(0)},Sn.meridiem=function Lp(m,I,j){return m>11?j?"pm":"PM":j?"am":"AM"},Ea("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(m){var I=m%10;return m+(1===ee(m%100/10)?"th":1===I?"st":2===I?"nd":3===I?"rd":"th")}}),_.lang=X("moment.lang is deprecated. Use moment.locale instead.",Ea),_.langData=X("moment.langData is deprecated. Use moment.localeData instead.",Jn);var Zo=Math.abs;function lr(m,I,j,$){var se=Eo(I,j);return m._milliseconds+=$*se._milliseconds,m._days+=$*se._days,m._months+=$*se._months,m._bubble()}function ms(m){return m<0?Math.floor(m):Math.ceil(m)}function Sl(m){return 4800*m/146097}function dh(m){return 146097*m/4800}function uo(m){return function(){return this.as(m)}}var Xc=uo("ms"),Qc=uo("s"),uh=uo("m"),tm=uo("h"),yb=uo("d"),Aa=uo("w"),Dl=uo("M"),Mb=uo("y");function Fa(m){return function(){return this.isValid()?this._data[m]:NaN}}var wb=Fa("milliseconds"),xb=Fa("seconds"),AM=Fa("minutes"),FM=Fa("hours"),fh=Fa("days"),nm=Fa("months"),im=Fa("years");var Xo=Math.round,ho={ss:44,s:45,m:45,h:22,d:26,M:11};function Jc(m,I,j,$,se){return se.relativeTime(I||1,!!j,m,$)}var rm=Math.abs;function $s(m){return(m>0)-(m<0)||+m}function Ll(){if(!this.isValid())return this.localeData().invalidDate();var $,se,m=rm(this._milliseconds)/1e3,I=rm(this._days),j=rm(this._months);$=J(m/60),se=J($/60),m%=60,$%=60;var je=J(j/12),Bt=j%=12,rn=I,mi=se,jr=$,Ra=m?m.toFixed(3).replace(/\.?0+$/,""):"",El=this.asSeconds();if(!El)return"P0D";var nd=El<0?"-":"",_s=$s(this._months)!==$s(El)?"-":"",kb=$s(this._days)!==$s(El)?"-":"",id=$s(this._milliseconds)!==$s(El)?"-":"";return nd+"P"+(je?_s+je+"Y":"")+(Bt?_s+Bt+"M":"")+(rn?kb+rn+"D":"")+(mi||jr||Ra?"T":"")+(mi?id+mi+"H":"")+(jr?id+jr+"M":"")+(Ra?id+Ra+"S":"")}var ln=Dr.prototype;return ln.isValid=function xl(){return this._isValid},ln.abs=function _b(){var m=this._data;return this._milliseconds=Zo(this._milliseconds),this._days=Zo(this._days),this._months=Zo(this._months),m.milliseconds=Zo(m.milliseconds),m.seconds=Zo(m.seconds),m.minutes=Zo(m.minutes),m.hours=Zo(m.hours),m.months=Zo(m.months),m.years=Zo(m.years),this},ln.add=function Ws(m,I){return lr(this,m,I,1)},ln.subtract=function ei(m,I){return lr(this,m,I,-1)},ln.as=function bb(m){if(!this.isValid())return NaN;var I,j,$=this._milliseconds;if("month"===(m=fe(m))||"year"===m)return j=this._months+Sl(I=this._days+$/864e5),"month"===m?j:j/12;switch(I=this._days+Math.round(dh(this._months)),m){case"week":return I/7+$/6048e5;case"day":return I+$/864e5;case"hour":return 24*I+$/36e5;case"minute":return 1440*I+$/6e4;case"second":return 86400*I+$/1e3;case"millisecond":return Math.floor(864e5*I)+$;default:throw new Error("Unknown unit "+m)}},ln.asMilliseconds=Xc,ln.asSeconds=Qc,ln.asMinutes=uh,ln.asHours=tm,ln.asDays=yb,ln.asWeeks=Aa,ln.asMonths=Dl,ln.asYears=Mb,ln.valueOf=function vb(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*ee(this._months/12):NaN},ln._bubble=function gb(){var se,Le,je,Bt,rn,m=this._milliseconds,I=this._days,j=this._months,$=this._data;return m>=0&&I>=0&&j>=0||m<=0&&I<=0&&j<=0||(m+=864e5*ms(dh(j)+I),I=0,j=0),$.milliseconds=m%1e3,se=J(m/1e3),$.seconds=se%60,Le=J(se/60),$.minutes=Le%60,je=J(Le/60),$.hours=je%24,I+=J(je/24),j+=rn=J(Sl(I)),I-=ms(dh(rn)),Bt=J(j/12),j%=12,$.days=I,$.months=j,$.years=Bt,this},ln.clone=function OM(){return Eo(this)},ln.get=function hh(m){return m=fe(m),this.isValid()?this[m+"s"]():NaN},ln.milliseconds=wb,ln.seconds=xb,ln.minutes=AM,ln.hours=FM,ln.days=fh,ln.weeks=function Tl(){return J(this.days()/7)},ln.months=nm,ln.years=im,ln.humanize=function td(m){if(!this.isValid())return this.localeData().invalidDate();var I=this.localeData(),j=function Cb(m,I,j){var $=Eo(m).abs(),se=Xo($.as("s")),Le=Xo($.as("m")),je=Xo($.as("h")),Bt=Xo($.as("d")),rn=Xo($.as("M")),mi=Xo($.as("y")),jr=se<=ho.ss&&["s",se]||se0,jr[4]=j,Jc.apply(null,jr)}(this,!m,I);return m&&(j=I.pastFuture(+this,j)),I.postformat(j)},ln.toISOString=Ll,ln.toString=Ll,ln.toJSON=Ll,ln.locale=nh,ln.localeData=Ot,ln.toIsoString=X("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ll),ln.lang=qc,rt("X",0,0,"unix"),rt("x",0,0,"valueOf"),gt("x",Ca),gt("X",/[+-]?\d+(\.\d{1,3})?/),kn("X",function(m,I,j){j._d=new Date(1e3*parseFloat(m,10))}),kn("x",function(m,I,j){j._d=new Date(ee(m))}),_.version="2.22.2",function u(m){O=m}(qn),_.fn=Qe,_.min=function fr(){return Us("isBefore",[].slice.call(arguments,0))},_.max=function vM(){return Us("isAfter",[].slice.call(arguments,0))},_.now=function(){return Date.now?Date.now():+new Date},_.utc=L,_.unix=function oh(m){return qn(1e3*m)},_.months=function Xp(m,I){return lh(m,I,"months")},_.isDate=C,_.locale=Ea,_.invalid=ie,_.duration=Eo,_.isMoment=G,_.weekdays=function Jp(m,I,j){return kl(m,I,j,"weekdays")},_.parseZone=function sh(){return qn.apply(null,arguments).parseZone()},_.localeData=Jn,_.isDuration=Qu,_.monthsShort=function Qp(m,I){return lh(m,I,"monthsShort")},_.weekdaysMin=function ch(m,I,j){return kl(m,I,j,"weekdaysMin")},_.defineLocale=Bc,_.updateLocale=function Ke(m,I){if(null!=I){var j,$,se=La;null!=($=Pt(m))&&(se=$._config),(j=new ot(I=tt(se,I))).parentLocale=Oi[m],Oi[m]=j,Ea(m)}else null!=Oi[m]&&(null!=Oi[m].parentLocale?Oi[m]=Oi[m].parentLocale:null!=Oi[m]&&delete Oi[m]);return Oi[m]},_.locales=function bn(){return st(Oi)},_.weekdaysShort=function em(m,I,j){return kl(m,I,j,"weekdaysShort")},_.normalizeUnits=fe,_.relativeTimeRounding=function ed(m){return void 0===m?Xo:"function"==typeof m&&(Xo=m,!0)},_.relativeTimeThreshold=function ph(m,I){return void 0!==ho[m]&&(void 0===I?ho[m]:(ho[m]=I,"s"===m&&(ho.ss=I-1),!0))},_.calendarFormat=function jp(m,I){var j=m.diff(I,"days",!0);return j<-6?"sameElse":j<-1?"lastWeek":j<0?"lastDay":j<1?"sameDay":j<2?"nextDay":j<7?"nextWeek":"sameElse"},_.prototype=Qe,_.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},_}()},6700:(he,ge,N)=>{var O={"./af":7088,"./af.js":7088,"./ar":7038,"./ar-dz":2502,"./ar-dz.js":2502,"./ar-kw":128,"./ar-kw.js":128,"./ar-ly":4519,"./ar-ly.js":4519,"./ar-ma":5443,"./ar-ma.js":5443,"./ar-sa":7642,"./ar-sa.js":7642,"./ar-tn":8592,"./ar-tn.js":8592,"./ar.js":7038,"./az":1213,"./az.js":1213,"./be":9191,"./be.js":9191,"./bg":322,"./bg.js":322,"./bm":8042,"./bm.js":8042,"./bn":9620,"./bn.js":9620,"./bo":9645,"./bo.js":9645,"./br":5020,"./br.js":5020,"./bs":4792,"./bs.js":4792,"./ca":7980,"./ca.js":7980,"./cs":7322,"./cs.js":7322,"./cv":365,"./cv.js":365,"./cy":2092,"./cy.js":2092,"./da":7387,"./da.js":7387,"./de":4307,"./de-at":9459,"./de-at.js":9459,"./de-ch":3694,"./de-ch.js":3694,"./de.js":4307,"./dv":9659,"./dv.js":9659,"./el":3460,"./el.js":3460,"./en-au":4369,"./en-au.js":4369,"./en-ca":530,"./en-ca.js":530,"./en-gb":9998,"./en-gb.js":9998,"./en-ie":3391,"./en-ie.js":3391,"./en-il":5414,"./en-il.js":5414,"./en-nz":1248,"./en-nz.js":1248,"./eo":4530,"./eo.js":4530,"./es":6866,"./es-do":8944,"./es-do.js":8944,"./es-us":3609,"./es-us.js":3609,"./es.js":6866,"./et":6725,"./et.js":6725,"./eu":7931,"./eu.js":7931,"./fa":6417,"./fa.js":6417,"./fi":944,"./fi.js":944,"./fo":5867,"./fo.js":5867,"./fr":1636,"./fr-ca":6848,"./fr-ca.js":6848,"./fr-ch":7773,"./fr-ch.js":7773,"./fr.js":1636,"./fy":4940,"./fy.js":4940,"./gd":6924,"./gd.js":6924,"./gl":6398,"./gl.js":6398,"./gom-latn":2545,"./gom-latn.js":2545,"./gu":2641,"./gu.js":2641,"./he":7536,"./he.js":7536,"./hi":6335,"./hi.js":6335,"./hr":7458,"./hr.js":7458,"./hu":6540,"./hu.js":6540,"./hy-am":5283,"./hy-am.js":5283,"./id":8780,"./id.js":8780,"./is":4205,"./is.js":4205,"./it":4211,"./it.js":4211,"./ja":1003,"./ja.js":1003,"./jv":420,"./jv.js":420,"./ka":851,"./ka.js":851,"./kk":6074,"./kk.js":6074,"./km":3343,"./km.js":3343,"./kn":4799,"./kn.js":4799,"./ko":3549,"./ko.js":3549,"./ky":3125,"./ky.js":3125,"./lb":9586,"./lb.js":9586,"./lo":2349,"./lo.js":2349,"./lt":2400,"./lt.js":2400,"./lv":9991,"./lv.js":9991,"./me":8477,"./me.js":8477,"./mi":5118,"./mi.js":5118,"./mk":5943,"./mk.js":5943,"./ml":3849,"./ml.js":3849,"./mn":1977,"./mn.js":1977,"./mr":6184,"./mr.js":6184,"./ms":485,"./ms-my":4524,"./ms-my.js":4524,"./ms.js":485,"./mt":6681,"./mt.js":6681,"./my":2024,"./my.js":2024,"./nb":2688,"./nb.js":2688,"./ne":8914,"./ne.js":8914,"./nl":1758,"./nl-be":2272,"./nl-be.js":2272,"./nl.js":1758,"./nn":1510,"./nn.js":1510,"./pa-in":7944,"./pa-in.js":7944,"./pl":1605,"./pl.js":1605,"./pt":4225,"./pt-br":3840,"./pt-br.js":3840,"./pt.js":4225,"./ro":5128,"./ro.js":5128,"./ru":5127,"./ru.js":5127,"./sd":2525,"./sd.js":2525,"./se":9893,"./se.js":9893,"./si":3123,"./si.js":3123,"./sk":9635,"./sk.js":9635,"./sl":8106,"./sl.js":8106,"./sq":8799,"./sq.js":8799,"./sr":7949,"./sr-cyrl":2872,"./sr-cyrl.js":2872,"./sr.js":7949,"./ss":6167,"./ss.js":6167,"./sv":9713,"./sv.js":9713,"./sw":1982,"./sw.js":1982,"./ta":2732,"./ta.js":2732,"./te":3636,"./te.js":3636,"./tet":2115,"./tet.js":2115,"./tg":9801,"./tg.js":9801,"./th":2868,"./th.js":2868,"./tl-ph":2360,"./tl-ph.js":2360,"./tlh":6645,"./tlh.js":6645,"./tr":8374,"./tr.js":8374,"./tzl":256,"./tzl.js":256,"./tzm":1595,"./tzm-latn":1631,"./tzm-latn.js":1631,"./tzm.js":1595,"./ug-cn":6050,"./ug-cn.js":6050,"./uk":5610,"./uk.js":5610,"./ur":6077,"./ur.js":6077,"./uz":2862,"./uz-latn":2207,"./uz-latn.js":2207,"./uz.js":2862,"./vi":8093,"./vi.js":8093,"./x-pseudo":5590,"./x-pseudo.js":5590,"./yo":9058,"./yo.js":9058,"./zh-cn":7908,"./zh-cn.js":7908,"./zh-hk":8867,"./zh-hk.js":8867,"./zh-tw":3291,"./zh-tw.js":3291};function _(f){var h=u(f);return N(h)}function u(f){if(!N.o(O,f)){var h=new Error("Cannot find module '"+f+"'");throw h.code="MODULE_NOT_FOUND",h}return O[f]}_.keys=function(){return Object.keys(O)},_.resolve=u,he.exports=_,_.id=6700},6297:(he,ge,N)=>{var O={"./de.json":[3634,634],"./de_base.json":[3431,431],"./en.json":[502,502],"./es.json":[4268,268],"./es_base.json":[3974,974],"./pt.json":[5733,733],"./pt_base.json":[7048,48]};function _(u){if(!N.o(O,u))return Promise.resolve().then(()=>{var y=new Error("Cannot find module '"+u+"'");throw y.code="MODULE_NOT_FOUND",y});var f=O[u],h=f[0];return N.e(f[1]).then(()=>N.t(h,19))}_.keys=()=>Object.keys(O),_.id=6297,he.exports=_}},he=>{he(he.s=2632)}]); \ No newline at end of file diff --git a/pkg/visor/static/runtime.5630953d8c37ca75.js b/pkg/visor/static/runtime.812580d833aad179.js similarity index 61% rename from pkg/visor/static/runtime.5630953d8c37ca75.js rename to pkg/visor/static/runtime.812580d833aad179.js index 21046876e6..2cbaa927eb 100644 --- a/pkg/visor/static/runtime.5630953d8c37ca75.js +++ b/pkg/visor/static/runtime.812580d833aad179.js @@ -1 +1 @@ -(()=>{"use strict";var e,g={},v={};function r(e){var n=v[e];if(void 0!==n)return n.exports;var t=v[e]={id:e,loaded:!1,exports:{}};return g[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}r.m=g,e=[],r.O=(n,t,f,o)=>{if(!t){var a=1/0;for(i=0;i=o)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(u=!1,o0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[t,f,o]},r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},(()=>{var n,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,f){if(1&f&&(t=this(t)),8&f||"object"==typeof t&&t&&(4&f&&t.__esModule||16&f&&"function"==typeof t.then))return t;var o=Object.create(null);r.r(o);var i={};n=n||[null,e({}),e([]),e(e)];for(var a=2&f&&t;"object"==typeof a&&!~n.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(u=>i[u]=()=>t[u]);return i.default=()=>t,r.d(o,i),o}})(),r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,t)=>(r.f[t](e,n),n),[])),r.u=e=>e+"."+{48:"1bb60b158d93cf7f",268:"c7fec9c243c2618c",431:"859df310b58bc96b",502:"30b5c9a96853e2a7",634:"9f8ff3633ebe9e11",733:"0148c3717285573b",974:"9e3a712842f1432f"}[e]+".js",r.miniCssF=e=>{},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={},n="skywire-manager:";r.l=(t,f,o,i)=>{if(e[t])e[t].push(f);else{var a,u;if(void 0!==o)for(var d=document.getElementsByTagName("script"),l=0;l{a.onerror=a.onload=null,clearTimeout(p);var y=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),y&&y.forEach(h=>h(b)),_)return _(b)},p=setTimeout(c.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=c.bind(null,a.onerror),a.onload=c.bind(null,a.onload),u&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:n=>n},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={666:0};r.f.j=(f,o)=>{var i=r.o(e,f)?e[f]:void 0;if(0!==i)if(i)o.push(i[2]);else if(666!=f){var a=new Promise((s,c)=>i=e[f]=[s,c]);o.push(i[2]=a);var u=r.p+r.u(f),d=new Error;r.l(u,s=>{if(r.o(e,f)&&(0!==(i=e[f])&&(e[f]=void 0),i)){var c=s&&("load"===s.type?"missing":s.type),p=s&&s.target&&s.target.src;d.message="Loading chunk "+f+" failed.\n("+c+": "+p+")",d.name="ChunkLoadError",d.type=c,d.request=p,i[1](d)}},"chunk-"+f,f)}else e[f]=0},r.O.j=f=>0===e[f];var n=(f,o)=>{var d,l,[i,a,u]=o,s=0;if(i.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(u)var c=u(r)}for(f&&f(o);s{"use strict";var e,g={},v={};function r(e){var n=v[e];if(void 0!==n)return n.exports;var t=v[e]={id:e,loaded:!1,exports:{}};return g[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}r.m=g,e=[],r.O=(n,t,f,o)=>{if(!t){var a=1/0;for(i=0;i=o)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(l=!1,o0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[t,f,o]},r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},(()=>{var n,e=Object.getPrototypeOf?t=>Object.getPrototypeOf(t):t=>t.__proto__;r.t=function(t,f){if(1&f&&(t=this(t)),8&f||"object"==typeof t&&t&&(4&f&&t.__esModule||16&f&&"function"==typeof t.then))return t;var o=Object.create(null);r.r(o);var i={};n=n||[null,e({}),e([]),e(e)];for(var a=2&f&&t;"object"==typeof a&&!~n.indexOf(a);a=e(a))Object.getOwnPropertyNames(a).forEach(l=>i[l]=()=>t[l]);return i.default=()=>t,r.d(o,i),o}})(),r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,t)=>(r.f[t](e,n),n),[])),r.u=e=>e+"."+{48:"1bb60b158d93cf7f",268:"35663b722cee380a",431:"859df310b58bc96b",502:"58e896e8ce0ed015",634:"9f8ff3633ebe9e11",733:"0148c3717285573b",974:"c5a367fdf75808a3"}[e]+".js",r.miniCssF=e=>{},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={},n="skywire-manager:";r.l=(t,f,o,i)=>{if(e[t])e[t].push(f);else{var a,l;if(void 0!==o)for(var d=document.getElementsByTagName("script"),c=0;c{a.onerror=a.onload=null,clearTimeout(p);var y=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),y&&y.forEach(h=>h(b)),_)return _(b)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),l&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:n=>n},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={666:0};r.f.j=(f,o)=>{var i=r.o(e,f)?e[f]:void 0;if(0!==i)if(i)o.push(i[2]);else if(666!=f){var a=new Promise((s,u)=>i=e[f]=[s,u]);o.push(i[2]=a);var l=r.p+r.u(f),d=new Error;r.l(l,s=>{if(r.o(e,f)&&(0!==(i=e[f])&&(e[f]=void 0),i)){var u=s&&("load"===s.type?"missing":s.type),p=s&&s.target&&s.target.src;d.message="Loading chunk "+f+" failed.\n("+u+": "+p+")",d.name="ChunkLoadError",d.type=u,d.request=p,i[1](d)}},"chunk-"+f,f)}else e[f]=0},r.O.j=f=>0===e[f];var n=(f,o)=>{var d,c,[i,a,l]=o,s=0;if(i.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(l)var u=l(r)}for(f&&f(o);s
- + \ No newline at end of file From bd377d98bf27676686e4ff2a883dec39530c7212 Mon Sep 17 00:00:00 2001 From: Mohammed <79150699+mrpalide@users.noreply.github.com> Date: Thu, 20 Apr 2023 21:31:07 +0330 Subject: [PATCH 24/62] remove survey checksum (#1532) * remove sha256 checksome from survey * fix logserver api endpoint --- cmd/skywire-cli/commands/log/root.go | 8 -------- pkg/skyenv/skyenv.go | 3 --- pkg/visor/logserver/api.go | 1 - pkg/visor/visorconfig/survey.go | 24 +++++------------------- pkg/visor/visorconfig/values.go | 3 --- 5 files changed, 5 insertions(+), 34 deletions(-) diff --git a/cmd/skywire-cli/commands/log/root.go b/cmd/skywire-cli/commands/log/root.go index e0987995c8..9f79a7c25c 100644 --- a/cmd/skywire-cli/commands/log/root.go +++ b/cmd/skywire-cli/commands/log/root.go @@ -131,14 +131,6 @@ var logCmd = &cobra.Command{ return } - err = download(ctx, log, httpC, "node-info.sha", "node-info.sha", key, maxFileSize) - if err != nil { - if deleteOnError { - bulkFolders = append(bulkFolders, key) - } - return - } - if duration == 1 { yesterday := time.Now().AddDate(0, 0, -1).UTC().Format("2006-01-02") download(ctx, log, httpC, "transport_logs/"+yesterday+".csv", yesterday+".csv", key, maxFileSize) //nolint diff --git a/pkg/skyenv/skyenv.go b/pkg/skyenv/skyenv.go index 246613d9f6..db50e86b5e 100644 --- a/pkg/skyenv/skyenv.go +++ b/pkg/skyenv/skyenv.go @@ -109,9 +109,6 @@ const ( // NodeInfo is the name of the survey file NodeInfo string = "node-info.json" - - // NodeInfoSha256 is the name of the survey checksum file - NodeInfoSha256 string = "node-info.sha" ) // SkywireConfig returns the full path to the package config diff --git a/pkg/visor/logserver/api.go b/pkg/visor/logserver/api.go index ec77f6b6b5..9d875cc9c4 100644 --- a/pkg/visor/logserver/api.go +++ b/pkg/visor/logserver/api.go @@ -49,7 +49,6 @@ func New(log *logging.Logger, tpLogPath, localPath, customPath string, printLog fsLocal := http.FileServer(http.Dir(localPath)) r.Handle("/"+skyenv.NodeInfo, http.StripPrefix("/", fsLocal)) - r.Handle("/"+skyenv.NodeInfoSha256, http.StripPrefix("/", fsLocal)) r.Handle("/"+skyenv.RewardFile, http.StripPrefix("/", fsLocal)) r.Handle("/transport_logs/*", http.StripPrefix("/", fsLocal)) diff --git a/pkg/visor/visorconfig/survey.go b/pkg/visor/visorconfig/survey.go index c1a1b6cecb..c0914779f6 100644 --- a/pkg/visor/visorconfig/survey.go +++ b/pkg/visor/visorconfig/survey.go @@ -2,10 +2,8 @@ package visorconfig import ( - "crypto/sha256" "encoding/json" "os" - "path/filepath" "strings" "time" @@ -21,8 +19,8 @@ func GenerateSurvey(conf *V1, log *logging.Logger, routine, rawSurvey bool) { if IsRoot() { for { //check for valid reward address set as prerequisite for generating the system survey - rewardAddressBytes, err := os.ReadFile(PackageConfig().LocalPath + "/" + RewardFile) //nolint - if err == nil { + rewardAddressBytes, err := os.ReadFile(conf.LocalPath + "/" + RewardFile) //nolint + if err == nil || true { //remove any newline from rewardAddress string rewardAddress := strings.TrimSuffix(string(rewardAddressBytes), "\n") //validate the skycoin address @@ -59,11 +57,14 @@ func GenerateSurvey(conf *V1, log *logging.Logger, routine, rawSurvey bool) { skycoinKey, err := os.ReadFile(skycoinKeyPath) if err != nil { log.WithError(err).Error("Could not find skycoin key.") + return } + skycoinKeyString := string(skycoinKey) encryptedNodeInfo, err := helper.EncryptBinaryMessageArmored(skycoinKeyString, s) if err != nil { log.WithError(err).Error("Could not encrypt survey.") + return } err = os.WriteFile(conf.LocalPath+"/"+NodeInfo, []byte(encryptedNodeInfo), 0644) //nolint @@ -73,26 +74,11 @@ func GenerateSurvey(conf *V1, log *logging.Logger, routine, rawSurvey bool) { } } log.Info("Generating system survey") - f, err := os.ReadFile(filepath.Clean(conf.LocalPath + "/" + NodeInfo)) - if err != nil { - log.WithError(err).Error("Failed to write system hardware survey to file.") - return - } - srvySha256Byte32 := sha256.Sum256([]byte(f)) - err = os.WriteFile(conf.LocalPath+"/"+NodeInfoSha256, srvySha256Byte32[:], 0644) //nolint - if err != nil { - log.WithError(err).Error("Failed to write system hardware survey to file.") - return - } } else { err := os.Remove(PackageConfig().LocalPath + "/" + NodeInfo) if err == nil { log.Debug("Removed hadware survey for visor not seeking rewards") } - err = os.Remove(PackageConfig().LocalPath + "/" + NodeInfoSha256) - if err == nil { - log.Debug("Removed hadware survey checksum file") - } } // break loop for generate each 24hours if just reward address chenged if !routine { diff --git a/pkg/visor/visorconfig/values.go b/pkg/visor/visorconfig/values.go index 21ebca578f..007bd21315 100644 --- a/pkg/visor/visorconfig/values.go +++ b/pkg/visor/visorconfig/values.go @@ -142,9 +142,6 @@ var ( // NodeInfo is the name of the survey file NodeInfo = skyenv.NodeInfo - // NodeInfoSha256 is the name of the survey checksum file - NodeInfoSha256 = skyenv.NodeInfoSha256 - // RewardFile is the name of the file containing skycoin reward address RewardFile = skyenv.RewardFile ) From f3a00c20553ddea00d65ed883795c3a9263992cb Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Mon, 24 Apr 2023 17:53:24 -0500 Subject: [PATCH 25/62] Update README.md (#1531) * update readme * update versions in links * add badges, add rewards info * Fix capitalization and punctuation --- README.md | 566 +++++++++++++++++++----------------------------------- 1 file changed, 201 insertions(+), 365 deletions(-) diff --git a/README.md b/README.md index 93cdd11ecb..d88cf5f116 100644 --- a/README.md +++ b/README.md @@ -1,49 +1,55 @@ -[![Build Status](https://travis-ci.com/skycoin/skywire.svg?branch=master)](https://travis-ci.com/skycoin/skywire) +[![Go Report Card](https://goreportcard.com/badge/github.com/skycoin/skywire)](https://goreportcard.com/report/github.com/skycoin/skywire) +[![Test](https://github.com/skycoin/skywire/actions/workflows/test.yml/badge.svg) +[![Deploy](https://github.com/skycoin/skywire/actions/workflows/deploy.yml/badge.svg) +[![Release](https://github.com/skycoin/skywire/actions/workflows/release.yml/badge.svg) +[![GitHub release](https://img.shields.io/github/release/skycoin/skywire.svg)](https://github.com/skycoin/skywire/releases/) +[![skywire](https://img.shields.io/aur/version/skywire?color=1793d1&label=skywire&logo=arch-linux)](https://aur.archlinux.org/packages/skywire/) +[![skywire-bin](https://img.shields.io/aur/version/skywire-bin?color=1793d1&label=skywire-bin&logo=arch-linux)](https://aur.archlinux.org/packages/skywire-bin/) +[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/skycoin/skywire/badge)](https://api.securityscorecards.dev/projects/github.com/skycoin/skywire) +[![go.mod](https://img.shields.io/github/go-mod/go-version/skycoin/skywire.svg)](https://github.com/skycoin/skywire) +[![Telegram](https://img.shields.io/badge/Join-Telegram-blue?&logo=data:image/svg%2bxml;base64,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtOS40MTcgMTUuMTgxLS4zOTcgNS41ODRjLjU2OCAwIC44MTQtLjI0NCAxLjEwOS0uNTM3bDIuNjYzLTIuNTQ1IDUuNTE4IDQuMDQxYzEuMDEyLjU2NCAxLjcyNS4yNjcgMS45OTgtLjkzMWwzLjYyMi0xNi45NzIuMDAxLS4wMDFjLjMyMS0xLjQ5Ni0uNTQxLTIuMDgxLTEuNTI3LTEuNzE0bC0yMS4yOSA4LjE1MWMtMS40NTMuNTY0LTEuNDMxIDEuMzc0LS4yNDcgMS43NDFsNS40NDMgMS42OTMgMTIuNjQzLTcuOTExYy41OTUtLjM5NCAxLjEzNi0uMTc2LjY5MS4yMTh6IiBmaWxsPSIjMDM5YmU1Ii8+PC9zdmc+)](https://t.me/skywire) -Skywire requires a Golang version of `1.16` or higher. + +Compiling Skywire requires a Golang version of at least `1.16`. # Skywire - * [Commands and Subcommands](#commands-and-subcommands) - * [App documentation](#app-documentation) - * [Installing Skywire](#installing-skywire) - * [Dependencies](#dependencies) - * [Build Deps](#build-deps) - * [Runtime Deps](#runtime-deps) - * [Testing Deps](#testing-deps) - * [Testing](#testing) - * [Development](#development) - * [Run from source](#run-from-source) - * [Build docker image](#build-docker-image) - * [Files and folders created by skywire at runtime](#files-and-folders-created-by-skywire-at-runtime) - * [Skywire Configuration](#skywire-configuration) - * [Expose hypervisorUI](#expose-hypervisorui) - * [Add remote hypervisor](#add-remote-hypervisor) - * [Run skywire\-visor](#run-skywire-visor) - * [Using Skywire forwarding \- http server over skywire](#using-skywire-forwarding---http-server-over-skywire) - * [Transport setup](#transport-setup) - * [Routing Rules](#routing-rules) - * [Using the Skywire VPN](#using-the-skywire-vpn) - * [Using the Skywire SOCKS5 client](#using-the-skywire-socks5-client) - * [Package Build Overview](#package-build-overview) - * [Prepare \- path setup](#prepare---path-setup) - * [Build](#build) - * [Install](#install) - * [Skywire\-autoconfig](#skywire-autoconfig) - * [Package tree](#package-tree) - * [Creating a GitHub release](#creating-a-github-release) - * [How to create a GitHub release](#how-to-create-a-github-release) +* [Commands and Subcommands](#commands-and-subcommands) +* [App documentation](#app-documentation) +* [Installing Skywire](#installing-skywire) +* [Dependencies](#dependencies) + * [Build Deps](#build-deps) + * [Runtime Deps](#runtime-deps) + * [Testing Deps](#testing-deps) +* [Testing](#testing) +* [Compiling](#compiling) +* [Config Gen](#config-gen) +* [Build docker image](#build-docker-image) +* [Skywire Configuration in\-depth](#skywire-configuration-in-depth) + * [Expose hypervisorUI](#expose-hypervisorui) + * [Add remote hypervisor](#add-remote-hypervisor) +* [Files and folders created by skywire at runtime](#files-and-folders-created-by-skywire-at-runtime) +* [Run skywire\-visor](#run-skywire-visor) +* [Run from source](#run-from-source) + * [Port forwarding over skywire](#port-forwarding-over-skywire) + * [Transport setup](#transport-setup) + * [Routing Rules](#routing-rules) + * [Using the Skywire VPN](#using-the-skywire-vpn) + * [Using the Skywire SOCKS5 proxy client](#using-the-skywire-socks5-proxy-client) +* [Skycoin Rewards](#skycoin-rewards) +* [Linux Packages](#linux-packages) +* [How to create a GitHub release](#how-to-create-a-github-release) ## Commands and Subcommands -Documentation on skywire-cli interface as well as available flags for skywire-visor +Documentation on skywire-cli interface as well as available flags for skywire-visor: * [skywire-cli](cmd/skywire-cli/README.md) * [skywire-visor](cmd/skywire-visor/README.md) ## App documentation -Apps are not executed by the user, but hosted by the visor process +Apps are not executed by the user, but hosted by the visor process. * [API](docs/skywire_app_api.md) * [skychat](cmd/apps/skychat/README.md) @@ -54,15 +60,15 @@ Apps are not executed by the user, but hosted by the visor process * [example-server-app](example/example-server-app/README.md) * [example-client-app](example/example-client-app/README.md) -further documentation can be found in the [skywire wiki](https://github.com/skycoin/skywire/wiki) +Further documentation can be found in the [skywire wiki](https://github.com/skycoin/skywire/wiki). ## Installing Skywire -Pre-compiled resouces +Pre-compiled resouces: -* [Windows installer](https://github.com/skycoin/skywire/releases/download/v1.3.6/skywire-installer-v1.3.6-windows-amd64.msi) -* [MacOS amd64 package](https://github.com/skycoin/skywire/releases/download/v1.3.6/skywire-installer-v1.3.6-darwin-amd64.pkg) -* [MacOS m1 / arm64](https://github.com/skycoin/skywire/releases/download/v1.3.6/skywire-installer-v1.3.6-darwin-arm64.pkg) +* [Windows installer](https://github.com/skycoin/skywire/releases/download/v1.3.7/skywire-installer-v1.3.7-windows-amd64.msi) +* [MacOS amd64 package](https://github.com/skycoin/skywire/releases/download/v1.3.7/skywire-installer-v1.3.7-darwin-amd64.pkg) +* [MacOS m1 / arm64](https://github.com/skycoin/skywire/releases/download/v1.3.7/skywire-installer-v1.3.7-darwin-arm64.pkg) * [Debian Package Installation Guide](https://github.com/skycoin/skywire/wiki/Skywire-Package-Installation) * [Binary Releases](https://github.com/skycoin/skywire/releases) @@ -71,9 +77,12 @@ Pre-compiled resouces ### Build Deps * `golang` -* `git` (optional) -basic setup of `go` is further described [here](https://github.com/skycoin/skycoin/blob/develop/INSTALLATION.md#setup-your-gopath) +`golang` or `go` can be installed with your system package manager on most linux distributions. Alternatively, follow the procedure at [go.dev/doc/install](https://go.dev/doc/install) to install golang. + +Basic setup of the `go` environment is further described [here](https://github.com/skycoin/skycoin/blob/develop/INSTALLATION.md#setup-your-gopath). + +* `git` (optional) * `musl` and `kernel-headers-musl` or equivalent - _for static compilation_ @@ -97,22 +106,26 @@ Before pushing commits to a pull request, its customary in case of edits to any make format check ``` -`make check` will run `make test` as well. To explicitly run tests, use `make test` +`make check` will run `make test` as well. To explicitly run tests, use `make test`. -## Development +## Compiling -To compile skywire directly from this repository for local testing and development +To compile skywire directly from cloned git sources: ``` git clone https://github.com/skycoin/skywire cd skywire #for the latest commits, check out the develop branch git checkout develop -make build +make build1 ``` -`make build` builds the binaries and apps with `go build` -`skywire-cli` and `skywire-visor` binaries will populate in the current directory; app binaries will populate the `apps` directory +To compile skywire directly from source archive, first download the latest source archive from the release section with your browser or another utility. Extract it with an archiving utility, enter the directory where the sources were extracted, and run `make build1`. + + +`make build1` builds the binaries and apps with `go build` + +`skywire-cli` and `skywire-visor` binaries will populate in the current directory; app binaries will populate the `apps` directory. Build output: @@ -128,12 +141,16 @@ Build output: └──skychat ``` -'install' these executables to the `GOPATH` +'install' these executables to the `GOPATH`: ``` make install ``` -To run skywire from this point, first generate a config +For more options, run `make help`. + +## Config Gen + +To run skywire from this point, first generate a config. ``` ./skywire-cli config gen -birx @@ -143,65 +160,22 @@ To run skywire from this point, first generate a config `-r --regen` regenerate a config which may already exist, retaining the keys `-x --retainhv` retain any remote hypervisors which are set in the config -The visor can then be started with -``` -cd ./build -sudo ./skywire-visor -``` - -__Note: root permissions are currently required for vpn client and server applications__ - -## Run from source +More options for configuration are displayed with `./skywire-cli config gen -all`. -Running from source as outlined in this section does not write the config to disk or explicitly compile any binaries. The config is piped from skywire-cli stdout to the visor stdin, and all are executed via `go run`. - -``` - git clone https://github.com/skycoin/skywire.git - cd skywire - #for the latest commits, check out the develop branch - git checkout develop - make run-source -``` ## Build docker image ``` $ ./ci_scripts/docker-push.sh -t $(git rev-parse --abbrev-ref HEAD) -b ``` +## Skywire Configuration in-depth -## Files and folders created by skywire at runtime -note not all of these files will be created by default -``` -├──skywire-config.json -└─┬local -  ├── apps-pid.txt - ├── node-info.json - ├── node-info.sha - ├── reward.txt -  ├── skychat -  ├── skychat_log.db -  ├── skysocks -  ├── skysocks-client -  ├── skysocks-client_log.db -  ├── skysocks_log.db -  └── transport_logs -  ├── 2023-03-06.csv -  ├── 2023-03-07.csv -  ├── 2023-03-08.csv -  ├── 2023-03-09.csv -  └── 2023-03-10.csv -``` - -Some of these files are served via the [dmsghttp logserver](https://github.com/skycoin/skywire/wiki/DMSGHTTP-logserver) - -## Skywire Configuration - -The skywire visor requires a config file to run. This config is a json-formatted file produced by `skywire-cli config gen` +The skywire visor requires a config file to run. This config is a json-formatted file produced by `skywire-cli config gen`. The `skywire-autoconfig` script included with the skywire package handles config generation and updates for the user who has installed the package. -Examples of config generation and command / flag documentation can be found in the [cmd/skywire-cli/README.md](cmd/skywire-cli/README.md) and [cmd/skywire-visor/README.md](cmd/skywire-visor/README.md) +Examples of config generation and command / flag documentation can be found in the [cmd/skywire-cli/README.md](cmd/skywire-cli/README.md) and [cmd/skywire-visor/README.md](cmd/skywire-visor/README.md). -The most important flags are noted below +The most important flags are noted below. ### Expose hypervisorUI @@ -228,12 +202,12 @@ hypervisor needs to be specified in the configuration file. You can add a remote ``` skywire-cli config update --hypervisor-pks ``` -or +OR: ``` skywire-cli config gen --hvpk ``` -alternatively, this can be done with the skywire-autoconfg script +Alternatively, this can be done with the skywire-autoconfg script included with the linux packages: ``` skywire-autoconfig ``` @@ -252,23 +226,50 @@ docker run --rm -v :/opt/skywire \ skycoin/skywire:latest skywire-cli update-config hypervisor-pks ``` -## Run `skywire-visor` + +## Files and folders created by skywire at runtime +_Note: not all of these files will be created by default._ +``` +├──skywire-config.json +└─┬local +  ├── apps-pid.txt + ├── node-info.json + ├── node-info.sha + ├── reward.txt +  ├── skychat +  ├── skychat_log.db +  ├── skysocks +  ├── skysocks-client +  ├── skysocks-client_log.db +  ├── skysocks_log.db +  └── transport_logs +  ├── 2023-03-06.csv +  ├── 2023-03-07.csv +  ├── 2023-03-08.csv +  ├── 2023-03-09.csv +  └── 2023-03-10.csv +``` + +Some of these files are served via the [dmsghttp logserver](https://github.com/skycoin/skywire/wiki/DMSGHTTP-logserver). + +## Run skywire-visor `skywire-visor` hosts apps and is an applications gateway to the Skywire network. -`skywire-visor` requires a valid configuration to be provided. If you want to run a VPN client locally, run the visor -as `sudo`. +`skywire-visor` requires a valid configuration to be provided. +__Note: root permissions are currently required for vpn client and server applications!__ + +Run the visor: ``` sudo skywire-visor -c skywire-config.json ``` -if the default `skywire-config.json` exists in the current dir, this can be shortened to +If the default `skywire-config.json` exists in the current dir, this can be shortened to: ``` sudo skywire-visor ``` Or from docker image: - ``` # with custom config mounted on docker volume docker run --rm -p 8000:8000 -v :/opt/skywire --name=skywire skycoin/skywire:test skywire-visor -c /opt/skywire/.json @@ -277,47 +278,64 @@ docker run --rm -p 8000:8000 --name=skywire skycoin/skywire:test skywire-visor ``` `skywire-visor` can be run on Windows. The setup requires additional setup steps that are specified -in [the docs](docs/windows-setup.md) if not using the windows .msi +in [the docs](docs/windows-setup.md) if not using the windows .msi. -### Using Skywire forwarding - http server over skywire +## Run from source + +Running from source as outlined in this section does not write the config to disk or explicitly compile any binaries. The config is piped from skywire-cli stdout to the visor stdin, and all are executed via `go run`. -The skywire-cli subcommand `skywire-cli fwd` is used to register and connect to http servers over the skywire connection +``` +git clone https://github.com/skycoin/skywire.git +cd skywire +#for the latest commits, check out the develop branch +git checkout develop +make run-source +``` + +### Port forwarding over skywire + +`skywire-cli fwd` is used to register and connect to http servers over the skywire connection - [skywire forwarding](docs/skywire_forwarding.md) -assuming that the local application you wish to forward is running on port `8080` +For example, if the local application you wish to forward is running on port `8080`: ``` skywire-cli fwd -p 8080 ``` -list forwarded ports +List forwarded ports: ``` skywire-cli fwd -l ``` -deregister a port / turn off forwarding +Deregister a port / turn off forwarding: ``` skywire-cli fwd -d 8080 ``` -To consume the skyfwd connection / reverse proxy back to localhost use `skywire-cli rev` +To consume the skyfwd connection (i.e. reverse proxy back to localhost) use `skywire-cli rev` +A different port can be specified to proxy the remote port to: ``` skywire-cli rev -p 8080 -r 8080 -k ``` -list existing connections +List existing connections: ``` skywire-cli rev -l ``` -remove a configured connection +Remove a configured connection: ``` skywire-cli rev -d ``` +_Note: skyfwd is a new feature and could work more robustly. Issues are welcome._ + ### Transport setup -A Transport represents a bidirectional line of communication between two Skywire Visors +_Note: transports should be set up automatically in most cases. The user should not need to do this manually._ + +A Transport represents a bidirectional line of communication between two Skywire Visors: - [Transports](https://github.com/skycoin/skywire/wiki/Transports) Transports are automatically established when a client application connects to a server application. @@ -335,12 +353,12 @@ https://ut.skywire.skycoin.com/uptimes skywire-cli visor tp add -t ``` -view established transports +View established transports: ``` skywire-cli visor tp ls ``` -remove a transport +Remove a transport: ``` skywire-cli visor tp rm ``` @@ -360,7 +378,7 @@ https://ut.skywire.skycoin.com/uptimes skywire-cli visor route add-rule app $(skywire-cli visor pk) ``` -to understand these arguments, observe the help menu for `skywire-cli visor route add-rule` +To understand these arguments, observe the help menu for `skywire-cli visor route add-rule`: ``` Usage: skywire-cli visor route add-rule app \ @@ -382,11 +400,11 @@ Global Flags: --keep-alive duration timeout for rule expiration (default 30s) ``` - and are all just integers. it's suggested to create the first route with id 1, unless another route exists with that id + and are all just integers. It's suggested to create the first route with id 1, unless another route exists with that id. -the port numbers are similarly inconsequential. +The port numbers are similarly inconsequential. -__note: the skywire router is pending refactorization__ +__Note: the skywire router is pending refactorization!__ ### Using the Skywire VPN @@ -395,15 +413,15 @@ The following documentation exists for vpn server / client setup and usage: - [Setup the Skywire VPN server](https://github.com/skycoin/skywire/wiki/Skywire-VPN-Server) - [Package Installation Guide](https://github.com/skycoin/skywire/wiki/Skywire-Package-Installation) -an example using the vpn with `skywire-cli` +An example using the vpn with `skywire-cli`: ``` skywire-cli vpn list ``` -this will query the service discovery for a list of vpn server public keys. -https://sd.skycoin.com/api/services?type=vpn +This will query the service discovery for a list of vpn server public keys. +[sd.skycoin.com/api/services?type=vpn](https://sd.skycoin.com/api/services?type=vpn) -sample output: +Sample output: ``` 02836f9a39e38120f338dbc98c96ee2b1ffd73420259d1fb134a2d0a15c8b66ceb | NL 0289a464f485ce9036f6267db10e5b6eaabd3972a25a7c2387f92b187d313aaf5e | GB @@ -413,313 +431,131 @@ sample output: ... ``` -select a key and start the vpn with +Select a key and start the vpn with: ``` skywire-cli vpn start ``` -view the status of the vpn +View the status of the vpn: ``` skywire-cli vpn status ``` -Check your ip address with ip.skywire.dev -__note: ip.skycoin.com will only show your real ip address, not the ip address of the vpn connection__ +Check your ip address with ip.skywire.dev. +__Note: ip.skycoin.com will only show your real ip address, not the ip address of the vpn connection.__ -stop the vpn +Stop the vpn: ``` skywire-cli vpn stop ``` -### Using the Skywire SOCKS5 client +### Using the Skywire SOCKS5 proxy client -The following wiki documentation exists on the SOCKS5 proxy +The following wiki documentation exists on the SOCKS5 proxy: - [Skywire SOCKS5 Proxy User Guide](https://github.com/skycoin/skywire/wiki/Skywire-SOCKS5-Proxy-User-Guide) - [SSH over SOCKS5 Proxy](https://github.com/skycoin/skywire/wiki/SSH-over-SOCKS5-Proxy) -The main difference between the vpn and the socks5 proxy is that the proxy is configured __per application__ while the vpn wraps the connections for the whole machine +The main difference between the vpn and the socks5 proxy is that the proxy is configured __per application__ while the vpn wraps the connections for the whole machine. The socks client usage (from `skywire-cli`) is similar to the vpn, though the `skywire-cli` subcommands and flags do not currently match from the one application to the other. This will be rectified. -To use the SOCKS5 proxy client via `skywire-cli` - -first, select a public key with a running socks5 proxy server from the service discovery here: +To use the SOCKS5 proxy client via `skywire-cli`: +``` +skywire-cli proxy list +``` +This will query the service discovery for a list of visor public keys which are running the proxy server. [sd.skycoin.com/api/services?type=proxy](https://sd.skycoin.com/api/services?type=proxy) -you can also filter by country code in the query, for example: -[sd.skycoin.com/api/services?type=proxy&country=US](https://sd.skycoin.com/api/services?type=proxy&country=US) +Sample output: +``` +031a924f5fb38d26fd8d795a498ae53f14782bc9f036f8ff283c479ac41af95ebd:3 | ID +024fdf44c126e122f09d591c8071a7355d4be9c561f85ea584e8ffe4e1ae8717f7:3 | ID +03ae05142dcf5aad70d1b58ea142476bac49874bfaa67a1369f601e0eb2f5842df:3 | US +0313a76e2c331669a0cb1a3b749930881f9881cca89b59ee52365d1c15141d9d83:3 | AU +03022fa8a0c38d20fae9335ef6aa780f5d762e1e161e607882923dc0d5a890f094:3 | SG +03e4b6326f9df0cff1372f52906a6d1ee03cf972338d532e17470e759362e45c87:3 | ID +0230689d26e5450e8c44faaba91813b7c2b00c1add3ad251e2d62ecca8041a849d:3 | MY +036ae558d5e6c5fc73cb6a329cb0006b4f659ecf9ae69c9e38996dfb65b1fb1c45:3 | ID +03a35c742ed17506834235b2256bb2b0a687de992e5ded52ca4d54fba3b00b8dbe:3 | SG +0259721a9e79e91ce8bc94bad52a6a381d50fcb05aaadc2c99201fd137fb71dfde:3 | CN +... +``` -start the socks5 client (starts on port 1080 by default) +Select a key and start the proxy with: ``` -skywire-cli skysocksc start --pk +skywire-cli proxy start --pk ``` -view the skysocks-client app status +View the status of the proxy: ``` -skywire-cli skysocksc status +skywire-cli proxy status +``` + +Check the ip address of the connection; for example, using `curl` via the socks5 proxy connection: +``` +curl -Lx socks5h://127.0.0.1:1080 http://ip.skycoin.com/ | jq ``` The connection may be consumed in a web browser via direct proxy configuration in browsers which support it, or using such extensions as `foxyproxy`. The connection may also be consumed in the terminal by setting `ALL_PROXY` environmental variable, or via the specific method used by a certain application. -For example, to use `curl` via the socks5 proxy connection: +Examples of `ssh` over the socks5 proxy: + +Using `openbsd-netcat`: ``` -curl -Lx socks5h://127.0.0.1:1080 http://ip.skycoin.com/ | jq +ssh user@host -p 22 -o "ProxyCommand=nc -X 5 -x 127.0.0.1:1080 %h %p" ``` -examples of `ssh` over the socks5 proxy: - -using `openbsd-netcat` +Using `ncat` from `nmap`: ``` - ssh user@host -p 22 -o "ProxyCommand=nc -X 5 -x 127.0.0.1:1080 %h %p" +ssh user@host -p 22 -o "ProxyCommand=ncat --proxy-type socks5 --proxy 127.0.0.1:1080 %h %p" ``` -using `ncat` from `nmap` +Stop the socks5 proxy client: ``` -ssh user@host -p 22 -o "ProxyCommand=ncat --proxy-type socks5 --proxy 127.0.0.1:1080 %h %p" +skywire-cli proxy stop ``` -stop the socks5 proxy client +## Skycoin Rewards + +Running skywire on eligible hardware can earn rewards in skycoin. Currently, only package-based linux installations are supported for rewards. +Review the [mainnet rules](/mainnet_rules.md) article for the details. + +Set a reward address: ``` -skywire-cli skysocksc stop +skywire-cli reward ``` +Visors meeting uptime and eligability requirements will recieve daily skycoin rewards for up to 8 visors per location / ip address. -## Package Build Overview +## Linux Packages -A high-level overview of the process for building skywire from source and the paths and files which comprise the package-based installation is contained in the [PKGBUILD](https://github.com/skycoin/AUR/blob/main/skywire/PKGBUILD) +Built Debian packages are maintained for skywire, as well as several build variants for archlinux. All packages provide a virtually identical installation, regardless of the distro. -this and other build variants, including the debian packages, can be built into a package with a single command, using `yay` on archlinux +Consider the [PKGBUILD](https://github.com/skycoin/AUR/blob/main/skywire/PKGBUILD) as a reference for building and installing skywire on any linux distribution. -installing [skywire-bin](https://aur.archlinux.org/packages/skywire-bin) from the AUR will install the release binaries provided by the release section of this repo +Installing [skywire-bin](https://aur.archlinux.org/packages/skywire-bin) from the AUR will install the release binaries provided by the release section of this repository: ``` yay -S skywire-bin ``` -to build the debian packages using the release binaries +To build the debian packages using the release binaries: ``` yay --mflags " -p cc.deb.PKGBUILD " -S skywire-bin ``` -installing [skywire](https://aur.archlinux.org/packages/skywire) from the AUR will compile binaries using the source archive for the latest version release +Installing [skywire](https://aur.archlinux.org/packages/skywire) from the AUR will compile binaries using the source archive for the latest version release: ``` yay -S skywire ``` -build from git sources to the develop branch +Build from git sources to the develop branch: ``` yay --mflags " -p git.PKGBUILD " -S skywire ``` -## Prepare - path setup - -The standard procedure for building software with `go` uses the `GOPATH` which is conventionally `$HOME/go` - -Software sources are cloned via `git` to a path such as `$HOME/go/src/github.com/skycoin/skywire` - -Optionally, the source archive of a versioned release is downloaded from the [release section](https://github.com/skycoin/skywire/releases) - -The binaries which are compiled may optionally be placed in the `GOBIN` and then `GOBIN` may be added to the `PATH` in order that any binaries placed in the `GOBIN` will then become available as commands available to execute in the shell or terminal. - -**This setup is optional** but it is documented below, and other examples will refer to this - -``` -mkdir -p "${HOME}/go/src/github.com/skycoin/" "${HOME}"/go/bin "${HOME}"/go/apps || true -cd "${HOME}/go/src/src/github.com/skycoin/" -git clone https://github.com/skycoin/skywire -#optionally checkout any branch -git checkout develop -``` - -## Build - -the code below is a rough approximation of `make install` which is used in the build function of the skywire packages - -``` -export GOPATH="${HOME}/go" -export GOBIN="${GOPATH}/bin" -export _GOAPPS="${GOPATH}/apps" -#optionally, use musl-gcc for static compilation -#export CC=musl-gcc - -cd "${HOME}/go/src/github.com/skycoin/skywire" - -#binary versioning -local _version=$(make version) -DMSG_BASE="github.com/skycoin/dmsg" -BUILDINFO_PATH="${DMSG_BASE}/buildinfo" -BUILDINFO_VERSION="${BUILDINFO_PATH}.version=${_version}" -BUILDINFO="${BUILDINFO_VERSION} ${BUILDINFO_DATE} ${BUILDINFO_COMMIT}" - -#create the skywire binaries -_pkggopath=github.com/skycoin/skywire -cd "${HOME}"/go/src/${_pkggopath} -_cmddir="${HOME}"/go/src/${_pkggopath}/cmd -cd "${_cmddir}"/apps -_app="$(ls)" -for _i in ${_app}; do -echo "building ${_i} binary" -cd "${_cmddir}/apps/${_i}" -go build -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $_GOAPPS . -done -echo "building skywire-visor binary" -cd "${_cmddir}"/skywire-visor -go build -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $GOBIN . -echo "building skywire-cli binary" -cd "${_cmddir}"/skywire-cli -go build -trimpath --ldflags="" --ldflags "${BUILDINFO} -s -w -linkmode external -extldflags '-static' -buildid=" -o $GOBIN . -``` - -## Install - -The installation paths for the skywire as present in the skywire linux packages are detailed below - -Note that `make install-system-linux` will place the binaries into the system where the package would install them, and is best used for quickly testing changes to ensure they work with the autoconfig script included with the package - -``` -#to install directly into the system, use "/" -_pkgdir="/" - -#use the appropriate systemd unit installation path for your linux distribution (i.e. etc/systemd/system for .deb distros) -_systemddir="usr/lib/systemd/system" - -#the base path where skywire is installed -_dir="opt/skywire" - -#application binaries ; started by the visor process -_apps="${_dir}/apps" - -#main binaries go here -_bin="${_dir}/bin" - -#scripts included -_scripts="${_dir}/scripts" - -#create the directories -mkdir -p "${_pkgdir}/usr/bin" -mkdir -p "${_pkgdir}/${_dir}/bin" -mkdir -p "${_pkgdir}/${_dir}/apps" -mkdir -p "${_pkgdir}/${_dir}/scripts" -mkdir -p "${_pkgdir}/${_systemddir}" -#the local folder is otherwise produced by the visor on startup -mkdir -p "${_pkgdir}/${_dir}/local" - -# instal binaries - assumes nothing else was already in your GOBIN - install -Dm755 "${GOBIN}"/* "${_pkgdir}/${_bin}/" - -#Symlink the binaries into the executable path -for _i in "${_pkgdir}/${_bin}"/* ; do - ln -rTsf "${_i}" "${_pkgdir}/usr/bin/${_i##*/}" -done - -#install the app binaries -install -Dm755 "${_GOAPPS}"/* "${_pkgdir}/${_skyapps}/" -#it is not necessary to symlink these binaries to the executable path but may be useful for debugging -for _i in "${_pkgdir}/${_apps}"/* ; do - ln -rTsf "${_i}" "${_pkgdir}/usr/bin/${_i##*/}" -done - -#install the dmsghttp-config.json' -install -Dm644 "${HOME}"/go/src/${_pkggopath}/skywire/dmsghttp-config.json" "${_pkgdir}/${_dir}/dmsghttp-config.json" -``` - -Desktop integration, maintenance scripts, and systemd service files are included in the skywire package from the [skywire AUR](https://aur.archlinux.org/cgit/aur.git/tree/?h=skywire-bin) which is managed as a subtree from [github.com/skycoin/aur](https://github.com/skycoin/AUR/tree/main/skywire-bin) - -`${srcdir}` in the code below is in reference to the directory containing these other source files - -``` -#Install scripts -install -Dm755 "${srcdir}"/skywire-autoconfig "${_pkgdir}/${_skyscripts}/" -ln -rTsf "${_pkgdir}/${_skyscripts}/skywire-autoconfig" "${_pkgdir}"/usr/bin/skywire-autoconfig - -#Installing systemd services' -install -Dm644 "${srcdir}"/*.service "${_pkgdir}/${_systemddir}/" - -# instal desktop files and icons -mkdir -p "${_pkgdir}"/usr/share/applications/ "${_pkgdir}"/usr/share/icons/hicolor/48x48/apps/ -install -Dm644 "${srcdir}"/*.desktop "${_pkgdir}"/usr/share/applications/ -install -Dm644 "${srcdir}"/*.png "${_pkgdir}"/usr/share/icons/hicolor/48x48/apps/ -``` - -## Skywire-autoconfig - -[skywire-autoconfig](https://github.com/skycoin/AUR/blob/main/skywire/skywire-autoconfig) is a script is provided with the package which is executed as part of the postinstall process. It serves as a utility for automating: - -* config management and updates -* setting remote hypervisors -* restarting the skywire process (via systemd) -* printing helpful text for the user to know what is happening -* generating configuration on boot (for skybian images / chroot installations of skywire) -* setting config defaults from environmental variables -* re-establishing skyfwd and skyrev connections (pending) - -for more information regarding this script and the skywire package installation, refer to [this wiki article](https://github.com/skycoin/AUR/wiki/skywire-bin) - -### Package tree -``` -/ -├── etc -│   └── skel -│   └── .config -│   └── systemd -│   └── user -│   ├── skywire-autoconfig.service -│   └── skywire.service -├── opt -│   └── skywire -│   ├── apps -│   │   ├── skychat -│   │   ├── skysocks -│   │   ├── skysocks-client -│   │   ├── vpn-client -│   │   └── vpn-server -│   ├── bin -│   │   ├── skywire-cli -│   │   └── skywire-visor -│   ├── dmsghttp-config.json -│   ├── local -│   │   └── custom -│   ├── scripts -│   │   └── skywire-autoconfig -│   └── skycoin.asc -└── usr - ├── bin - │   ├── skychat -> ../../opt/skywire/apps/skychat - │   ├── skysocks -> ../../opt/skywire/apps/skysocks - │   ├── skysocks-client -> ../../opt/skywire/apps/skysocks-client - │   ├── skywire -> ../../opt/skywire/bin/skywire-visor - │   ├── skywire-autoconfig -> ../../opt/skywire/scripts/skywire-autoconfig - │   ├── skywire-cli -> ../../opt/skywire/bin/skywire-cli - │   ├── skywire-visor -> ../../opt/skywire/bin/skywire-visor - │   ├── vpn-client -> ../../opt/skywire/apps/vpn-client - │   └── vpn-server -> ../../opt/skywire/apps/vpn-server - ├── lib - │   └── systemd - │   └── system - │   ├── skywire-autoconfig.service - │   └── skywire.service - └── share - ├── applications - │   ├── skywire.desktop - │   └── skywirevpn.desktop - └── icons - └── hicolor - └── 48x48 - └── apps - ├── skywire.png - └── skywirevpn.png - -24 directories, 27 files -``` - -## Creating a GitHub release - -To maintain actual `skywire-visor` state on users' Skywire nodes we have a mechanism for updating `skywire-visor` -binaries. Binaries for each version are uploaded to [GitHub releases](https://github.com/skycoin/skywire/releases/). We -use [goreleaser](https://goreleaser.com) for creating them. - -### How to create a GitHub release +## How to create a GitHub release 1. Make sure that `git` and [goreleaser](https://goreleaser.com/install) are installed. 2. Checkout to a commit you would like to create a release against. From 42daad45d3131ed2a4925096b36b0619daf0c79f Mon Sep 17 00:00:00 2001 From: Senyoret1 <34079003+Senyoret1@users.noreply.github.com> Date: Thu, 27 Apr 2023 09:05:10 -0400 Subject: [PATCH 26/62] Stop requests when not needed (#1533) --- .../src/app/components/pages/login/login.component.ts | 5 +++++ .../src/app/services/multiple-node-data.service.ts | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/static/skywire-manager-src/src/app/components/pages/login/login.component.ts b/static/skywire-manager-src/src/app/components/pages/login/login.component.ts index 4fc45381d4..4efd4ea8e6 100644 --- a/static/skywire-manager-src/src/app/components/pages/login/login.component.ts +++ b/static/skywire-manager-src/src/app/components/pages/login/login.component.ts @@ -11,6 +11,7 @@ import { InitialSetupComponent } from './initial-setup/initial-setup.component'; import { OperationError } from '../../../utils/operation-error'; import { processServiceError } from '../../../utils/errors'; import { AppComponent } from 'src/app/app.component'; +import { MultipleNodeDataService } from 'src/app/services/multiple-node-data.service'; /** * Login page. @@ -36,9 +37,13 @@ export class LoginComponent implements OnInit, OnDestroy { private snackbarService: SnackbarService, private dialog: MatDialog, private route: ActivatedRoute, + private multipleNodeDataService: MultipleNodeDataService, ) { } ngOnInit() { + // Stop multiple requests that will fail for auth. + this.multipleNodeDataService.stopRequestingData(); + this.routeSubscription = this.route.paramMap.subscribe(params => { this.vpnKey = params.get('key'); diff --git a/static/skywire-manager-src/src/app/services/multiple-node-data.service.ts b/static/skywire-manager-src/src/app/services/multiple-node-data.service.ts index b27a62ec21..272b1a9caf 100644 --- a/static/skywire-manager-src/src/app/services/multiple-node-data.service.ts +++ b/static/skywire-manager-src/src/app/services/multiple-node-data.service.ts @@ -81,6 +81,16 @@ export class MultipleNodeDataService { return this.dataSubject.asObservable(); } + /** + * Makes the service stop returning the node list. + */ + stopRequestingData() { + if (this.updateSubscription) { + this.updateSubscription.unsubscribe(); + this.firstCallToGetDataMade = false; + } + } + /** * Starts periodically getting the node list. * @param delayMs Delay before loading the data. From 8d02e0c37b53b4afd4cd9f798bde8aad0fbc2252 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Wed, 3 May 2023 15:18:57 -0500 Subject: [PATCH 27/62] print version of golangci-lint (#1538) --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index b24e6ff3ae..8dc9dc2e98 100644 --- a/Makefile +++ b/Makefile @@ -151,12 +151,15 @@ install-static: ## Install `skywire-visor`, `skywire-cli`, `setup-node` ${STATIC_OPTS} go install -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' ./cmd/skywire-visor ./cmd/skywire-cli ./cmd/setup-node lint: ## Run linters. Use make install-linters first + golangci-lint --version ${OPTS} golangci-lint run -c .golangci.yml ./... lint-windows: ## Run linters. Use make install-linters-windows first + powershell 'golangci-lint --version' powershell 'golangci-lint run -c .golangci.yml ./...' lint-appveyor-windows: ## Run linters for appveyor only on windows + C:\Users\appveyor\go\bin\golangci-lint --version C:\Users\appveyor\go\bin\golangci-lint run -c .golangci.yml ./... test: ## Run tests From 88f163678bdc0b39141aa1e816a21d0e5c73b924 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Thu, 4 May 2023 17:56:10 -0500 Subject: [PATCH 28/62] fix skywire-cli config gen -a (#1539) --- cmd/skywire-cli/commands/config/gen.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd/skywire-cli/commands/config/gen.go b/cmd/skywire-cli/commands/config/gen.go index ad832d8665..da394de197 100644 --- a/cmd/skywire-cli/commands/config/gen.go +++ b/cmd/skywire-cli/commands/config/gen.go @@ -222,7 +222,9 @@ var genConfigCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { mLog := logging.NewMasterLogger() mLog.SetLevel(logrus.InfoLevel) - serviceConfURL = svcConf + if serviceConfURL == "" { + serviceConfURL = svcConf + } //use test deployment if isTestEnv { serviceConfURL = testConf From 7d5e01a0e3d65c6d78f3b99d006a14a1ea4fdff2 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Sat, 6 May 2023 08:06:58 -0500 Subject: [PATCH 29/62] randomize the order of survey collection (#1541) --- cmd/skywire-cli/commands/log/root.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmd/skywire-cli/commands/log/root.go b/cmd/skywire-cli/commands/log/root.go index 9f79a7c25c..88a339cb58 100644 --- a/cmd/skywire-cli/commands/log/root.go +++ b/cmd/skywire-cli/commands/log/root.go @@ -8,6 +8,7 @@ import ( "flag" "fmt" "io" + "math/rand" "net/http" "os" "sync" @@ -87,6 +88,10 @@ var logCmd = &cobra.Command{ if err != nil { log.WithError(err).Panic("Unable to get data from uptime tracker.") } + //randomize the order of the fetching - prevents observed hanging + rand.Shuffle(len(uptimes), func(i, j int) { + uptimes[i], uptimes[j] = uptimes[j], uptimes[i] + }) // Create dmsg http client pk, sk, _ := genKeys("") //nolint dmsgC, closeDmsg, err := dg.StartDmsg(ctx, log, pk, sk) From 2acb5e7d0590f28157fce273c2a8bdd0c29a68b1 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Tue, 9 May 2023 16:46:56 -0500 Subject: [PATCH 30/62] Update skywire-utilities dependency - fix `skywire-cli vpn list` (#1546) * manually removed skywire-utilities from go.mod, then ran go mod tidy ; go mod vendor to update skywire-utilities to the latest commits * small fix on proxy and vpn cli commands * add direct query method to skywire-cli proxy list and skywire-cli vpn list ; standardize the implementation of these two subcommands * fix CI errors ; make format --- cmd/skywire-cli/commands/proxy/proxy.go | 116 ++++++--- cmd/skywire-cli/commands/proxy/root.go | 7 + cmd/skywire-cli/commands/vpn/root.go | 12 +- cmd/skywire-cli/commands/vpn/vvpn.go | 225 +++++++++++------- cmd/skywire-cli/internal/internal.go | 9 +- go.mod | 2 +- go.sum | 3 +- .../skywire-utilities/pkg/logging/logger.go | 1 - .../skywire-utilities/pkg/skyenv/values.go | 20 +- vendor/modules.txt | 2 +- 10 files changed, 250 insertions(+), 147 deletions(-) diff --git a/cmd/skywire-cli/commands/proxy/proxy.go b/cmd/skywire-cli/commands/proxy/proxy.go index df7b4484f6..a2080c68f4 100644 --- a/cmd/skywire-cli/commands/proxy/proxy.go +++ b/cmd/skywire-cli/commands/proxy/proxy.go @@ -3,16 +3,20 @@ package skysocksc import ( "bytes" + "encoding/json" "fmt" "math/rand" + "net/http" "os" "strings" "text/tabwriter" "time" "github.com/spf13/cobra" + "github.com/spf13/pflag" "github.com/skycoin/skywire-utilities/pkg/buildinfo" + "github.com/skycoin/skywire-utilities/pkg/skyenv" clirpc "github.com/skycoin/skywire/cmd/skywire-cli/commands/rpc" "github.com/skycoin/skywire/cmd/skywire-cli/internal" "github.com/skycoin/skywire/pkg/app/appserver" @@ -22,34 +26,35 @@ import ( func init() { RootCmd.PersistentFlags().StringVar(&clirpc.Addr, "rpc", "localhost:3435", "RPC server address") RootCmd.AddCommand( - proxyStartCmd, - proxyStopCmd, - proxyStatusCmd, - proxyListCmd, + startCmd, + stopCmd, + statusCmd, + listCmd, ) version := buildinfo.Version() if version == "unknown" { version = "" } - proxyStartCmd.Flags().StringVarP(&pk, "pk", "k", "", "server public key") - proxyListCmd.Flags().StringVarP(&pk, "pk", "k", "", "check proxy service discovery for public key") - proxyListCmd.Flags().IntVarP(&count, "num", "n", 0, "number of results to return") - proxyListCmd.Flags().BoolVarP(&isUnFiltered, "unfilter", "u", false, "provide unfiltered results") - proxyListCmd.Flags().StringVarP(&ver, "ver", "v", version, "filter results by version") - proxyListCmd.Flags().StringVarP(&country, "country", "c", "", "filter results by country") - proxyListCmd.Flags().BoolVarP(&isStats, "stats", "s", false, "return only a count of the results") + startCmd.Flags().StringVarP(&pk, "pk", "k", "", "server public key") + listCmd.Flags().StringVarP(&sdURL, "url", "a", "", "service discovery url default:\n"+skyenv.ServiceDiscAddr) + listCmd.Flags().BoolVarP(&directQuery, "direct", "b", false, "query service discovery directly") + listCmd.Flags().StringVarP(&pk, "pk", "k", "", "check "+serviceType+" service discovery for public key") + listCmd.Flags().IntVarP(&count, "num", "n", 0, "number of results to return (0 = all)") + listCmd.Flags().BoolVarP(&isUnFiltered, "unfilter", "u", false, "provide unfiltered results") + listCmd.Flags().StringVarP(&ver, "ver", "v", version, "filter results by version") + listCmd.Flags().StringVarP(&country, "country", "c", "", "filter results by country") + listCmd.Flags().BoolVarP(&isStats, "stats", "s", false, "return only a count of the results") } -var proxyStartCmd = &cobra.Command{ +var startCmd = &cobra.Command{ Use: "start", - Short: "start the proxy client", - // Args: cobra.MinimumNArgs(0), + Short: "start the " + serviceType + " client", Run: func(cmd *cobra.Command, args []string) { //check that a valid public key is provided err := pubkey.Set(pk) if err != nil { if len(args) > 0 { - err := pubkey.Set(args[0]) + err := pubkey.Set(args[1]) if err != nil { internal.PrintFatalError(cmd.Flags(), err) } @@ -57,10 +62,9 @@ var proxyStartCmd = &cobra.Command{ internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Invalid or missing public key")) } } - //connect to RPC rpcClient, err := clirpc.Client(cmd.Flags()) if err != nil { - os.Exit(1) + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("unable to create RPC client: %w", err)) } //TODO: implement operational timeout internal.Catch(cmd.Flags(), rpcClient.StartSkysocksClient(pubkey.String())) @@ -77,7 +81,7 @@ var proxyStartCmd = &cobra.Command{ } for _, state := range states { - if state.Name == "skysocks-client" { + if state.Name == stateName { if state.Status == appserver.AppStatusRunning { startProcess = false internal.PrintOutput(cmd.Flags(), nil, fmt.Sprintln("\nRunning!")) @@ -95,27 +99,27 @@ var proxyStartCmd = &cobra.Command{ }, } -var proxyStopCmd = &cobra.Command{ +var stopCmd = &cobra.Command{ Use: "stop", - Short: "stop the proxy client", + Short: "stop the " + serviceType + " client", Run: func(cmd *cobra.Command, args []string) { rpcClient, err := clirpc.Client(cmd.Flags()) if err != nil { - os.Exit(1) + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("unable to create RPC client: %w", err)) } internal.Catch(cmd.Flags(), rpcClient.StopSkysocksClient()) internal.PrintOutput(cmd.Flags(), "OK", fmt.Sprintln("OK")) }, } -var proxyStatusCmd = &cobra.Command{ +var statusCmd = &cobra.Command{ Use: "status", - Short: "proxy client(s) status", + Short: serviceType + " client status", Run: func(cmd *cobra.Command, args []string) { //TODO: check status of multiple clients rpcClient, err := clirpc.Client(cmd.Flags()) if err != nil { - os.Exit(1) + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("unable to create RPC client: %w", err)) } states, err := rpcClient.Apps() internal.Catch(cmd.Flags(), err) @@ -128,7 +132,7 @@ var proxyStatusCmd = &cobra.Command{ } var jsonAppStatus appState for _, state := range states { - if state.Name == "skysocks-client" { + if state.Name == stateName { status := "stopped" if state.Status == appserver.AppStatusRunning { @@ -149,31 +153,45 @@ var proxyStatusCmd = &cobra.Command{ }, } -var proxyListCmd = &cobra.Command{ +var listCmd = &cobra.Command{ Use: "list", Short: "List servers", - Long: "List proxy servers from service discovery\n http://sd.skycoin.com/api/services?type=proxy\n http://sd.skycoin.com/api/services?type=vpn&country=US", + Long: "List " + serviceType + " servers from service discovery\n " + skyenv.ServiceDiscAddr + "/api/services?type=" + serviceType + "\n " + skyenv.ServiceDiscAddr + "/api/services?type=" + serviceType + "&country=US", Run: func(cmd *cobra.Command, args []string) { + //validate any specified public key if pk != "" { err := pubkey.Set(pk) if err != nil { internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Invalid or missing public key")) } } - rpcClient, err := clirpc.Client(cmd.Flags()) - if err != nil { - internal.PrintFatalRPCError(cmd.Flags(), err) + if sdURL == "" { + sdURL = skyenv.ServiceDiscAddr } if isUnFiltered { ver = "" country = "" } - servers, err := rpcClient.ProxyServers(ver, country) - if err != nil { - internal.PrintFatalRPCError(cmd.Flags(), err) + if directQuery { + servers = directQuerySD(cmd.Flags()) + } else { + rpcClient, err := clirpc.Client(cmd.Flags()) + if err != nil { + internal.PrintError(cmd.Flags(), fmt.Errorf("unable to create RPC client: %w", err)) + internal.PrintOutput(cmd.Flags(), fmt.Sprintf("directly querying service discovery\n%s/api/services?type=%s\n", sdURL, serviceType), fmt.Sprintf("directly querying service discovery\n%s/api/services?type=%s\n", sdURL, serviceType)) + servers = directQuerySD(cmd.Flags()) + } else { + servers, err = rpcClient.ProxyServers(ver, country) + if err != nil { + internal.PrintError(cmd.Flags(), err) + internal.PrintOutput(cmd.Flags(), fmt.Sprintf("directly querying service discovery\n%s/api/services?type=%s\n", sdURL, serviceType), fmt.Sprintf("directly querying service discovery\n%s/api/services?type=%s\n", sdURL, serviceType)) + servers = directQuerySD(cmd.Flags()) + } + } } if len(servers) == 0 { - internal.PrintFatalError(cmd.Flags(), fmt.Errorf("No Servers found")) + internal.PrintOutput(cmd.Flags(), "No Servers found", "No Servers found") + os.Exit(0) } if isStats { internal.PrintOutput(cmd.Flags(), fmt.Sprintf("%d Servers\n", len(servers)), fmt.Sprintf("%d Servers\n", len(servers))) @@ -186,7 +204,7 @@ var proxyListCmd = &cobra.Command{ } if pk != "" { for _, server := range servers { - if strings.Replace(server.Addr.String(), ":44", "", 1) == pk { + if strings.Replace(server.Addr.String(), servicePort, "", 1) == pk { results = append(results, server.Addr.String()) } } @@ -195,11 +213,13 @@ var proxyListCmd = &cobra.Command{ results = append(results, server.Addr.String()) } } + + //randomize the order of the displayed results rand.Shuffle(len(results), func(i, j int) { results[i], results[j] = results[j], results[i] }) for i := 0; i < limit && i < len(results); i++ { - msg += strings.Replace(results[i], ":44", "", 1) + msg += strings.Replace(results[i], servicePort, "", 1) if server := findServerByPK(servers, results[i]); server != nil && server.Geo != nil { if server.Geo.Country != "" { msg += fmt.Sprintf(" | %s\n", server.Geo.Country) @@ -215,6 +235,30 @@ var proxyListCmd = &cobra.Command{ }, } +func directQuerySD(cmdFlags *pflag.FlagSet) (s []servicedisc.Service) { + //url/uri format + //https://sd.skycoin.com/api/services?type=proxy&country=US&version=v1.3.7 + sdURL += "/api/services?type=" + serviceType + if country != "" { + sdURL += "&country=" + country + } + if ver != "" { + sdURL += "&version=" + ver + } + //preform http get request for the service discovery URL + resp, err := (&http.Client{Timeout: time.Duration(30 * time.Second)}).Get(sdURL) + if err != nil { + internal.PrintFatalError(cmdFlags, fmt.Errorf("error fetching servers from service discovery: %w", err)) + } + defer resp.Body.Close() //nolint:errcheck + // Decode JSON response into struct + err = json.NewDecoder(resp.Body).Decode(&s) + if err != nil { + internal.PrintFatalError(cmdFlags, fmt.Errorf("error decoding json to struct: %w", err)) + } + return s +} + func findServerByPK(servers []servicedisc.Service, addr string) *servicedisc.Service { for _, server := range servers { if server.Addr.String() == addr { diff --git a/cmd/skywire-cli/commands/proxy/root.go b/cmd/skywire-cli/commands/proxy/root.go index ed11f18c48..42a69590b6 100644 --- a/cmd/skywire-cli/commands/proxy/root.go +++ b/cmd/skywire-cli/commands/proxy/root.go @@ -5,9 +5,13 @@ import ( "github.com/spf13/cobra" "github.com/skycoin/skywire-utilities/pkg/cipher" + "github.com/skycoin/skywire/pkg/servicedisc" ) var ( + stateName = "skysocks-client" + serviceType = servicedisc.ServiceTypeProxy + servicePort = ":44" isUnFiltered bool ver string country string @@ -15,6 +19,9 @@ var ( pubkey cipher.PubKey pk string count int + sdURL string + directQuery bool + servers []servicedisc.Service ) // RootCmd contains commands that interact with the skywire-visor diff --git a/cmd/skywire-cli/commands/vpn/root.go b/cmd/skywire-cli/commands/vpn/root.go index 85dd497bc7..b59de66419 100644 --- a/cmd/skywire-cli/commands/vpn/root.go +++ b/cmd/skywire-cli/commands/vpn/root.go @@ -5,10 +5,13 @@ import ( "github.com/spf13/cobra" "github.com/skycoin/skywire-utilities/pkg/cipher" - clirpc "github.com/skycoin/skywire/cmd/skywire-cli/commands/rpc" + "github.com/skycoin/skywire/pkg/servicedisc" ) var ( + stateName = "vpn-clent" + serviceType = servicedisc.ServiceTypeVPN + servicePort = ":3" path string isPkg bool isUnFiltered bool @@ -18,12 +21,11 @@ var ( pubkey cipher.PubKey pk string count int + sdURL string + directQuery bool + servers []servicedisc.Service ) -func init() { - RootCmd.PersistentFlags().StringVar(&clirpc.Addr, "rpc", "localhost:3435", "RPC server address") -} - // RootCmd contains commands that interact with the skywire-visor var RootCmd = &cobra.Command{ Use: "vpn", diff --git a/cmd/skywire-cli/commands/vpn/vvpn.go b/cmd/skywire-cli/commands/vpn/vvpn.go index dd9012dc9b..734284b614 100644 --- a/cmd/skywire-cli/commands/vpn/vvpn.go +++ b/cmd/skywire-cli/commands/vpn/vvpn.go @@ -3,16 +3,20 @@ package clivpn import ( "bytes" + "encoding/json" "fmt" "math/rand" + "net/http" "os" "strings" "text/tabwriter" "time" "github.com/spf13/cobra" + "github.com/spf13/pflag" "github.com/skycoin/skywire-utilities/pkg/buildinfo" + "github.com/skycoin/skywire-utilities/pkg/skyenv" clirpc "github.com/skycoin/skywire/cmd/skywire-cli/commands/rpc" "github.com/skycoin/skywire/cmd/skywire-cli/internal" "github.com/skycoin/skywire/pkg/app/appserver" @@ -21,88 +25,26 @@ import ( ) func init() { + RootCmd.PersistentFlags().StringVar(&clirpc.Addr, "rpc", "localhost:3435", "RPC server address") RootCmd.AddCommand( - vpnStartCmd, - vpnStopCmd, - vpnStatusCmd, - vpnListCmd, + startCmd, + stopCmd, + statusCmd, + listCmd, ) version := buildinfo.Version() if version == "unknown" { version = "" } - vpnStartCmd.Flags().StringVarP(&pk, "pk", "k", "", "server public key") - vpnListCmd.Flags().StringVarP(&pk, "pk", "k", "", "check proxy service discovery for public key") - vpnListCmd.Flags().IntVarP(&count, "num", "n", 0, "number of results to return") - vpnListCmd.Flags().BoolVarP(&isUnFiltered, "unfilter", "u", false, "provide unfiltered results") - vpnListCmd.Flags().StringVarP(&ver, "ver", "v", version, "filter results by version") - vpnListCmd.Flags().StringVarP(&country, "country", "c", "", "filter results by country") - vpnListCmd.Flags().BoolVarP(&isStats, "stats", "s", false, "return only a count of the results") -} - -var vpnListCmd = &cobra.Command{ - Use: "list", - Short: "List servers", - Run: func(cmd *cobra.Command, args []string) { - if pk != "" { - err := pubkey.Set(pk) - if err != nil { - internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Invalid or missing public key")) - } - } - rpcClient, err := clirpc.Client(cmd.Flags()) - if err != nil { - internal.PrintFatalRPCError(cmd.Flags(), err) - } - if isUnFiltered { - ver = "" - country = "" - } - servers, err := rpcClient.VPNServers(ver, country) - if err != nil { - internal.PrintFatalRPCError(cmd.Flags(), err) - } - if len(servers) == 0 { - internal.PrintFatalError(cmd.Flags(), fmt.Errorf("No Servers found")) - } - if isStats { - internal.PrintOutput(cmd.Flags(), fmt.Sprintf("%d Servers\n", len(servers)), fmt.Sprintf("%d Servers\n", len(servers))) - } else { - var msg string - var results []string - limit := len(servers) - if count > 0 && count < limit { - limit = count - } - if pk != "" { - for _, server := range servers { - if strings.Replace(server.Addr.String(), ":3", "", 1) == pk { - results = append(results, server.Addr.String()) - } - } - } else { - for _, server := range servers { - results = append(results, server.Addr.String()) - } - } - rand.Shuffle(len(results), func(i, j int) { - results[i], results[j] = results[j], results[i] - }) - for i := 0; i < limit && i < len(results); i++ { - msg += strings.Replace(results[i], ":3", "", 1) - if server := findServerByPK(servers, results[i]); server != nil && server.Geo != nil { - if server.Geo.Country != "" { - msg += fmt.Sprintf(" | %s\n", server.Geo.Country) - } else { - msg += "\n" - } - } else { - msg += "\n" - } - } - internal.PrintOutput(cmd.Flags(), servers, msg) - } - }, + startCmd.Flags().StringVarP(&pk, "pk", "k", "", "server public key") + listCmd.Flags().StringVarP(&sdURL, "url", "a", "", "service discovery url default:\n"+skyenv.ServiceDiscAddr) + listCmd.Flags().BoolVarP(&directQuery, "direct", "b", false, "query service discovery directly") + listCmd.Flags().StringVarP(&pk, "pk", "k", "", "check "+serviceType+" service discovery for public key") + listCmd.Flags().IntVarP(&count, "num", "n", 0, "number of results to return") + listCmd.Flags().BoolVarP(&isUnFiltered, "unfilter", "u", false, "provide unfiltered results") + listCmd.Flags().StringVarP(&ver, "ver", "v", version, "filter results by version") + listCmd.Flags().StringVarP(&country, "country", "c", "", "filter results by country") + listCmd.Flags().BoolVarP(&isStats, "stats", "s", false, "return only a count of the results") } func findServerByPK(servers []servicedisc.Service, addr string) *servicedisc.Service { @@ -114,16 +56,16 @@ func findServerByPK(servers []servicedisc.Service, addr string) *servicedisc.Ser return nil } -var vpnStartCmd = &cobra.Command{ +var startCmd = &cobra.Command{ Use: "start ", - Short: "start the vpn for ", + Short: "start the " + serviceType + " for ", // Args: cobra.MinimumNArgs(1), Run: func(cmd *cobra.Command, args []string) { //check that a valid public key is provided err := pubkey.Set(pk) if err != nil { if len(args) > 0 { - err := pubkey.Set(args[0]) + err := pubkey.Set(args[1]) if err != nil { internal.PrintFatalError(cmd.Flags(), err) } @@ -132,10 +74,9 @@ var vpnStartCmd = &cobra.Command{ } } //connect to RPC - internal.Catch(cmd.Flags(), pubkey.Set(args[0])) rpcClient, err := clirpc.Client(cmd.Flags()) if err != nil { - os.Exit(1) + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("unable to create RPC client: %w", err)) } internal.Catch(cmd.Flags(), rpcClient.StartVPNClient(pubkey)) internal.PrintOutput(cmd.Flags(), nil, "Starting.") @@ -152,7 +93,7 @@ var vpnStartCmd = &cobra.Command{ } for _, state := range states { - if state.Name == "vpn-client" { + if state.Name == stateName { if state.Status == appserver.AppStatusRunning { startProcess = false internal.PrintOutput(cmd.Flags(), nil, fmt.Sprintln("\nRunning!")) @@ -177,22 +118,22 @@ var vpnStartCmd = &cobra.Command{ }, } -var vpnStopCmd = &cobra.Command{ +var stopCmd = &cobra.Command{ Use: "stop", - Short: "stop the vpn", + Short: "stop the " + serviceType + "client", Run: func(cmd *cobra.Command, _ []string) { rpcClient, err := clirpc.Client(cmd.Flags()) if err != nil { - os.Exit(1) + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("unable to create RPC client: %w", err)) } - internal.Catch(cmd.Flags(), rpcClient.StopVPNClient("vpn-client")) + internal.Catch(cmd.Flags(), rpcClient.StopVPNClient(stateName)) internal.PrintOutput(cmd.Flags(), "OK", fmt.Sprintln("OK")) }, } -var vpnStatusCmd = &cobra.Command{ +var statusCmd = &cobra.Command{ Use: "status", - Short: "vpn status", + Short: serviceType + " client status", Run: func(cmd *cobra.Command, _ []string) { rpcClient, err := clirpc.Client(cmd.Flags()) if err != nil { @@ -209,7 +150,7 @@ var vpnStatusCmd = &cobra.Command{ } var jsonAppStatus appState for _, state := range states { - if state.Name == "vpn-client" { + if state.Name == stateName { status := "stopped" if state.Status == appserver.AppStatusRunning { @@ -229,3 +170,109 @@ var vpnStatusCmd = &cobra.Command{ internal.PrintOutput(cmd.Flags(), jsonAppStatus, b.String()) }, } + +var listCmd = &cobra.Command{ + Use: "list", + Short: "List " + serviceType + " servers", + Long: "List " + serviceType + " servers from service discovery\n " + skyenv.ServiceDiscAddr + "/api/services?type=" + serviceType + "\n " + skyenv.ServiceDiscAddr + "/api/services?type=" + serviceType + "&country=US", + Run: func(cmd *cobra.Command, args []string) { + //validate any specified public key + if pk != "" { + err := pubkey.Set(pk) + if err != nil { + internal.PrintFatalError(cmd.Flags(), fmt.Errorf("Invalid or missing public key")) + } + } + if sdURL == "" { + sdURL = skyenv.ServiceDiscAddr + } + if isUnFiltered { + ver = "" + country = "" + } + if directQuery { + servers = directQuerySD(cmd.Flags()) + } else { + rpcClient, err := clirpc.Client(cmd.Flags()) + if err != nil { + internal.PrintError(cmd.Flags(), fmt.Errorf("unable to create RPC client: %w", err)) + internal.PrintOutput(cmd.Flags(), fmt.Sprintf("directly querying service discovery\n%s/api/services?type=%s\n", sdURL, serviceType), fmt.Sprintf("directly querying service discovery\n%s/api/services?type=%s\n", sdURL, serviceType)) + servers = directQuerySD(cmd.Flags()) + } else { + servers, err = rpcClient.VPNServers(ver, country) + if err != nil { + internal.PrintError(cmd.Flags(), err) + internal.PrintOutput(cmd.Flags(), fmt.Sprintf("directly querying service discovery\n%s/api/services?type=%s\n", sdURL, serviceType), fmt.Sprintf("directly querying service discovery\n%s/api/services?type=%s\n", sdURL, serviceType)) + servers = directQuerySD(cmd.Flags()) + } + } + } + if len(servers) == 0 { + internal.PrintOutput(cmd.Flags(), "No Servers found", "No Servers found") + os.Exit(0) + } + if isStats { + internal.PrintOutput(cmd.Flags(), fmt.Sprintf("%d Servers\n", len(servers)), fmt.Sprintf("%d Servers\n", len(servers))) + } else { + var msg string + var results []string + limit := len(servers) + if count > 0 && count < limit { + limit = count + } + if pk != "" { + for _, server := range servers { + if strings.Replace(server.Addr.String(), servicePort, "", 1) == pk { + results = append(results, server.Addr.String()) + } + } + } else { + for _, server := range servers { + results = append(results, server.Addr.String()) + } + } + + //randomize the order of the displayed results + rand.Shuffle(len(results), func(i, j int) { + results[i], results[j] = results[j], results[i] + }) + for i := 0; i < limit && i < len(results); i++ { + msg += strings.Replace(results[i], servicePort, "", 1) + if server := findServerByPK(servers, results[i]); server != nil && server.Geo != nil { + if server.Geo.Country != "" { + msg += fmt.Sprintf(" | %s\n", server.Geo.Country) + } else { + msg += "\n" + } + } else { + msg += "\n" + } + } + internal.PrintOutput(cmd.Flags(), servers, msg) + } + }, +} + +func directQuerySD(cmdFlags *pflag.FlagSet) (s []servicedisc.Service) { + //url/uri format + //https://sd.skycoin.com/api/services?type=vpn&country=US&version=v1.3.7 + sdURL += "/api/services?type=" + serviceType + if country != "" { + sdURL += "&country=" + country + } + if ver != "" { + sdURL += "&version=" + ver + } + //preform http get request for the service discovery URL + resp, err := (&http.Client{Timeout: time.Duration(30 * time.Second)}).Get(sdURL) + if err != nil { + internal.PrintFatalError(cmdFlags, fmt.Errorf("error fetching servers from service discovery: %w", err)) + } + defer resp.Body.Close() //nolint:errcheck + // Decode JSON response into struct + err = json.NewDecoder(resp.Body).Decode(&s) + if err != nil { + internal.PrintFatalError(cmdFlags, fmt.Errorf("error decoding json to struct: %w", err)) + } + return s +} diff --git a/cmd/skywire-cli/internal/internal.go b/cmd/skywire-cli/internal/internal.go index fc535d5b28..2c8c6d3c8c 100644 --- a/cmd/skywire-cli/internal/internal.go +++ b/cmd/skywire-cli/internal/internal.go @@ -42,9 +42,14 @@ func PrintFatalError(cmdFlags *pflag.FlagSet, err error) { log.Fatal(err) } -// PrintFatalRPCError prints errors for skywire-cli commands packages +// PrintFatalRPCError prints fatal RPC errors for skywire-cli commands packages func PrintFatalRPCError(cmdFlags *pflag.FlagSet, err error) { - PrintFatalError(cmdFlags, fmt.Errorf("Failed to connect; is skywire running?: %v", err)) + PrintFatalError(cmdFlags, fmt.Errorf("Failed to connect to visor RPC or RPC method not found; is skywire running?: %v", err)) +} + +// PrintRPCError prints nonfatal RPC errors for skywire-cli commands packages +func PrintRPCError(cmdFlags *pflag.FlagSet, err error) { + PrintError(cmdFlags, fmt.Errorf("Failed to connect to visor RPC or RPC method not found; is skywire running?: %v", err)) } // PrintError prints errors for skywire-cli commands packages diff --git a/go.mod b/go.mod index d543ceb581..845571d4b1 100644 --- a/go.mod +++ b/go.mod @@ -51,7 +51,7 @@ require ( github.com/orandin/lumberjackrus v1.0.1 github.com/pterm/pterm v0.12.49 github.com/skycoin/dmsg v1.3.0-rc1.0.20230224131835-1c194ef9791e - github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a + github.com/skycoin/skywire-utilities v0.0.0-20230110132024-c5536ba8e22c github.com/skycoin/systray v1.10.0 github.com/spf13/pflag v1.0.5 github.com/zcalusic/sysinfo v0.9.5 diff --git a/go.sum b/go.sum index 57278f32cd..39ebaeb4cc 100644 --- a/go.sum +++ b/go.sum @@ -544,9 +544,8 @@ github.com/skycoin/noise v0.0.0-20180327030543-2492fe189ae6 h1:1Nc5EBY6pjfw1kwW0 github.com/skycoin/noise v0.0.0-20180327030543-2492fe189ae6/go.mod h1:UXghlricA7J3aRD/k7p/zBObQfmBawwCxIVPVjz2Q3o= github.com/skycoin/skycoin v0.27.1 h1:HatxsRwVSPaV4qxH6290xPBmkH/HgiuAoY2qC+e8C9I= github.com/skycoin/skycoin v0.27.1/go.mod h1:78nHjQzd8KG0jJJVL/j0xMmrihXi70ti63fh8vXScJw= +github.com/skycoin/skywire-utilities v0.0.0-20230110132024-c5536ba8e22c h1:jYHyLwSyRVR/TmT4WWIGAeFX4FawGHA4Gaeic0zX3KI= github.com/skycoin/skywire-utilities v0.0.0-20230110132024-c5536ba8e22c/go.mod h1:X5H+fKC3rD11/sm4t9V2FWy/aet7OdEilaO2Ar3waXY= -github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a h1:hTqQ+8G/2Y+vd4qXoTbm7gfj+mjil2zDnGSS8i8V4LQ= -github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a/go.mod h1:X5H+fKC3rD11/sm4t9V2FWy/aet7OdEilaO2Ar3waXY= github.com/skycoin/systray v1.10.0 h1:fQZJHMylpVvfmOOTLvUssfyHVDoC8Idx6Ba2BlLEuGg= github.com/skycoin/systray v1.10.0/go.mod h1:/i17Eni5GxFiboIZceeamY5LktDSFFRCvd3fBMerQ+4= github.com/skycoin/yamux v0.0.0-20200803175205-571ceb89da9f h1:A5dEM1OE9YhN3LciZU9qPjo7fJ46JeHNi3JCroDkK0Y= diff --git a/vendor/github.com/skycoin/skywire-utilities/pkg/logging/logger.go b/vendor/github.com/skycoin/skywire-utilities/pkg/logging/logger.go index 5f2f3f13a4..95c92d99c4 100644 --- a/vendor/github.com/skycoin/skywire-utilities/pkg/logging/logger.go +++ b/vendor/github.com/skycoin/skywire-utilities/pkg/logging/logger.go @@ -43,7 +43,6 @@ func NewMasterLogger() *MasterLogger { ForceFormatting: true, DisableColors: false, ForceColors: false, - TimestampFormat: "2006-01-02T15:04:05.999999999Z07:00", }, Hooks: hooks, Level: logrus.DebugLevel, diff --git a/vendor/github.com/skycoin/skywire-utilities/pkg/skyenv/values.go b/vendor/github.com/skycoin/skywire-utilities/pkg/skyenv/values.go index 41298a161c..ef73c08bdd 100644 --- a/vendor/github.com/skycoin/skywire-utilities/pkg/skyenv/values.go +++ b/vendor/github.com/skycoin/skywire-utilities/pkg/skyenv/values.go @@ -11,7 +11,7 @@ const ( UptimeTrackerAddr = "http://ut.skywire.skycoin.com" AddressResolverAddr = "http://ar.skywire.skycoin.com" SetupPK = "0324579f003e6b4048bae2def4365e634d8e0e3054a20fc7af49daf2a179658557" - NetworkMonitorPK = "0380ea88f0ad0aa4d93c330ba5f97aabca1d892190b94db69eee140b549d2817dd,0283bddb4357e2c4de0d470032cd809966aec65ce57e1188143ab32c7b589b38b6,02f4e33b75307267229b0c3d679d08dd23374333f558288cfcb114311a52199358,02090f03cb26c71779b8327067e2e37314d2db3e31dfe4f8f3cdd8e088a98eb7ec" + NetworkMonitorPK = "0380ea88f0ad0aa4d93c330ba5f97aabca1d892190b94db69eee140b549d2817dd" ) // Constants for testing deployment. @@ -24,20 +24,20 @@ const ( TestUptimeTrackerAddr = "http://ut.skywire.dev" TestAddressResolverAddr = "http://ar.skywire.dev" TestSetupPK = "026c2a3e92d6253c5abd71a42628db6fca9dd9aa037ab6f4e3a31108558dfd87cf" - TestNetworkMonitorPK = "0218905f5d9079bab0b62985a05bd162623b193e948e17e7b719133f2c60b92093,0214456f6727b0dffacc3e4a9b331ff9bf7b7d97a9810c213772199f0f7ee59247,0394b6e4bdb50977658013089523cc77a9c3af8d1a1581855b496b9ae3126deea0,027f978ca206f00e052561b82a62e6405763f833779b1693fee9cc3c87caad26be" + TestNetworkMonitorPK = "0218905f5d9079bab0b62985a05bd162623b193e948e17e7b719133f2c60b92093,0218905f5d9079bab0b62985a05bd162623b193e948e17e7b719133f2c60b92093,0394b6e4bdb50977658013089523cc77a9c3af8d1a1581855b496b9ae3126deea0" ) // GetStunServers gives back default Stun Servers func GetStunServers() []string { return []string{ - "139.162.12.30:3478", - "170.187.228.181:3478", - "172.104.161.184:3478", - "170.187.231.137:3478", - "143.42.74.91:3478", - "170.187.225.78:3478", - "143.42.78.123:3478", - "139.162.12.244:3478", + "192.46.224.108:3478", + "139.177.185.210:3478", + "139.162.17.54:3478", + "139.162.17.107:3478", + "139.162.17.156:3478", + "45.118.134.168:3478", + "139.177.185.180:3478", + "139.162.17.48:3478", } } diff --git a/vendor/modules.txt b/vendor/modules.txt index 2d9854c0e7..860fe3e169 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -278,7 +278,7 @@ github.com/skycoin/skycoin/src/cipher/ripemd160 github.com/skycoin/skycoin/src/cipher/secp256k1-go github.com/skycoin/skycoin/src/cipher/secp256k1-go/secp256k1-go2 github.com/skycoin/skycoin/src/util/logging -# github.com/skycoin/skywire-utilities v0.0.0-20230315234948-7c62dc34c53a +# github.com/skycoin/skywire-utilities v0.0.0-20230110132024-c5536ba8e22c ## explicit; go 1.17 github.com/skycoin/skywire-utilities/pkg/buildinfo github.com/skycoin/skywire-utilities/pkg/cipher From e4eb3cec722cc5c625842c499b1273623d7577c4 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Tue, 16 May 2023 11:13:45 -0500 Subject: [PATCH 31/62] add explicit dmsgpty whitelist (#1554) --- pkg/visor/init.go | 7 ++++++- pkg/visor/visorconfig/v1.go | 7 ++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pkg/visor/init.go b/pkg/visor/init.go index 5b6bdf8966..9312791935 100644 --- a/pkg/visor/init.go +++ b/pkg/visor/init.go @@ -1302,11 +1302,16 @@ func initDmsgpty(ctx context.Context, v *Visor, log *logging.Logger) error { wl := dmsgpty.NewMemoryWhitelist() + // Initialize the dmsgpty whitelist + if err := wl.Add(v.conf.Dmsgpty.Whitelist...); err != nil { + return err + } + // Ensure hypervisors are added to the whitelist. if err := wl.Add(v.conf.Hypervisors...); err != nil { return err } - // add itself to the whitelist to allow local pty + // add the visor's own public key to the whitelist to allow local pty if err := wl.Add(v.conf.PK); err != nil { v.log.Errorf("Cannot add itself to the pty whitelist: %s", err) } diff --git a/pkg/visor/visorconfig/v1.go b/pkg/visor/visorconfig/v1.go index 35cdab5798..4bcebab4c2 100644 --- a/pkg/visor/visorconfig/v1.go +++ b/pkg/visor/visorconfig/v1.go @@ -44,9 +44,10 @@ type V1 struct { // Dmsgpty configures the dmsgpty-host. type Dmsgpty struct { - DmsgPort uint16 `json:"dmsg_port"` - CLINet string `json:"cli_network"` - CLIAddr string `json:"cli_address"` + DmsgPort uint16 `json:"dmsg_port"` + CLINet string `json:"cli_network"` + CLIAddr string `json:"cli_address"` + Whitelist []cipher.PubKey `json:"whitelist"` } // Transport defines a transport config. From e7204c9a1d88306086cbeda981e16637af46434d Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Tue, 16 May 2023 11:28:04 -0500 Subject: [PATCH 32/62] makefile optimizations & add config directive to address default bin path (#1549) --- Makefile | 96 ++++++++++++++++---------------------------------------- 1 file changed, 27 insertions(+), 69 deletions(-) diff --git a/Makefile b/Makefile index 8dc9dc2e98..9d927fd9ed 100644 --- a/Makefile +++ b/Makefile @@ -103,10 +103,6 @@ check-windows: lint-windows test-windows ## Run linters and tests on appveyor wi build: host-apps bin ## Install dependencies, build apps and binaries. `go build` with ${OPTS} -build1: BUILD_PATH = ./ - -build1: build ## Install dependencies, build apps and binaries in root folder. `go build` with ${OPTS} - build-windows: host-apps-windows bin-windows ## Install dependencies, build apps and binaries. `go build` with ${OPTS} build-windows-appveyor: host-apps-windows-appveyor bin-windows-appveyor ## Install dependencies, build apps and binaries. `go build` with ${OPTS} for AppVeyor image @@ -120,23 +116,18 @@ build-example: host-apps example-apps bin ## Build apps, example apps and binari installer: mac-installer ## Builds MacOS installer for skywire-visor install-system-linux: build ## Install apps and binaries over those provided by the linux package - linux package must be installed first! - sudo install -Dm755 $(BUILD_PATH)skywire-cli /opt/skywire/bin/ - sudo install -Dm755 $(BUILD_PATH)skywire-visor /opt/skywire/bin/ - sudo install -Dm755 $(BUILD_PATH)apps/vpn-server /opt/skywire/apps/ - sudo install -Dm755 $(BUILD_PATH)apps/vpn-client /opt/skywire/apps/ - sudo install -Dm755 $(BUILD_PATH)apps/skysocks-client /opt/skywire/apps/ - sudo install -Dm755 $(BUILD_PATH)apps/skysocks /opt/skywire/apps/ - sudo install -Dm755 $(BUILD_PATH)apps/skychat /opt/skywire/apps/ + sudo echo "sudo cache" + sudo install -Dm755 $(BUILD_PATH){skywire-cli,skywire-visor} /opt/skywire/bin/ & \ + sudo install -Dm755 $(BUILD_PATH)apps/{vpn-server,vpn-client,skysocks-client,skysocks,skychat} /opt/skywire/apps/ install-generate: ## Installs required execs for go generate. - ${OPTS} go install github.com/mjibson/esc - ${OPTS} go install github.com/vektra/mockery/v2@latest + ${OPTS} go install github.com/mjibson/esc github.com/vektra/mockery/v2@latest generate: ## Generate mocks and config README's go generate ./... clean: ## Clean project: remove created binaries and apps - -rm -f ./build + -rm -rf ./build clean-windows: ## Clean project: remove created binaries and apps powershell -Command Remove-Item -Path ./build -Force -Recurse @@ -164,28 +155,25 @@ lint-appveyor-windows: ## Run linters for appveyor only on windows test: ## Run tests -go clean -testcache &>/dev/null - ${OPTS} go test ${TEST_OPTS} ./internal/... - ${OPTS} go test ${TEST_OPTS} ./pkg/... + ${OPTS} go test ${TEST_OPTS} ./internal/... ./pkg/... + ${OPTS} go test ${TEST_OPTS} test-windows: ## Run tests on windows @go clean -testcache - ${OPTS} go test ${TEST_OPTS} ./internal/... - ${OPTS} go test ${TEST_OPTS} ./pkg/... + ${OPTS} go test ${TEST_OPTS} ./internal/... ./pkg/... install-linters: ## Install linters - VERSION=latest ./ci_scripts/install-golangci-lint.sh - ${OPTS} go install golang.org/x/tools/cmd/goimports@latest - ${OPTS} go install github.com/incu6us/goimports-reviser/v2@latest + ${OPTS} go install golang.org/x/tools/cmd/goimports@latest github.com/incu6us/goimports-reviser/v2@latest install-linters-windows: ## Install linters - ${OPTS} go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest - ${OPTS} go install golang.org/x/tools/cmd/goimports@latest + ${OPTS} go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest golang.org/x/tools/cmd/goimports@latest tidy: ## Tidies and vendors dependencies. ${OPTS} go mod tidy -v format: tidy ## Formats the code. Must have goimports and goimports-reviser installed (use make install-linters). - ${OPTS} goimports -w -local ${PROJECT_BASE} ./pkg & ${OPTS} goimports -w -local ${PROJECT_BASE} ./cmd & ${OPTS} goimports -w -local ${PROJECT_BASE} ./internal + ${OPTS} goimports -w -local ${PROJECT_BASE} ./pkg ./cmd ./internal find . -type f -name '*.go' -not -path "./.git/*" -not -path "./vendor/*" -exec goimports-reviser -project-name ${PROJECT_BASE} {} \; format-windows: tidy ## Formats the code. Must have goimports and goimports-reviser installed (use make install-linters). @@ -206,15 +194,10 @@ snapshot-clean: ## Cleans snapshot / release host-apps: ## Build app test -d $(BUILD_PATH) && rm -r $(BUILD_PATH) || true mkdir -p $(BUILD_PATH)apps - ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/skychat - ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks - ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks-client - ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-server - ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-client + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./cmd/apps/... example-apps: ## Build example apps - ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./example/example-client-app - ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./example/example-server-app + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH)apps/ ./example/... host-apps-windows: ## build apps on windows powershell -Command new-item .\apps -itemtype directory -force @@ -228,37 +211,23 @@ host-apps-windows-appveyor: ## build apps on windows. `go build` with ${OPTS} fo host-apps-static: ## Build app test -d apps && rm -r apps || true mkdir -p ./apps - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/skychat - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks-client - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-server - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-client + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)apps/ ./cmd/apps/... host-apps-deploy: ## Build app test -d apps && rm -r apps || true mkdir -p ./apps - ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/skychat - ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks - ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks-client - ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-server - ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-client + ${OPTS} go build ${BUILD_OPTS_DEPLOY} -o $(BUILD_PATH)apps/ ./cmd/apps/... host-apps-race: ## Build app test -d apps && rm -r apps || true mkdir -p ./apps - CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/skychat - CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks - CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/skysocks-client - CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-server - CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/vpn-client + CGO_ENABLED=1${OPTS} go build ${BUILD_OPTS} -race -o $(BUILD_PATH)apps/ ./cmd/apps/... # Bin bin: fix-systray-vendor bin-fix unfix-systray-vendor bin-fix: ## Build `skywire-visor`, `skywire-cli` - ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH) ./cmd/skywire-visor - ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH) ./cmd/skywire-cli - ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH) ./cmd/setup-node + ${OPTS} go build ${BUILD_OPTS} -o $(BUILD_PATH) ./cmd/skywire-visor ./cmd/skywire-cli ./cmd/setup-node fix-systray-vendor: @if [ $(UNAME_S) = "Linux" ]; then\ @@ -278,15 +247,12 @@ bin-windows-appveyor: ## Build `skywire-visor`, `skywire-cli` # Static Bin bin-static: ## Build `skywire-visor`, `skywire-cli` - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)skywire-visor ./cmd/skywire-visor - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)skywire-cli ./cmd/skywire-cli - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)setup-node ./cmd/setup-node + ${STATIC_OPTS} go build 8 -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH) ./cmd/skywire-visor ./cmd/skywire-cli ./cmd/setup-node # Static Bin without Systray bin-static-wos: ## Build `skywire-visor`, `skywire-cli` ${STATIC_OPTS} go build -tags withoutsystray -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)skywire-visor ./cmd/skywire-visor - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)skywire-cli ./cmd/skywire-cli - ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH)setup-node ./cmd/setup-node + ${STATIC_OPTS} go build -trimpath --ldflags '-linkmode external -extldflags "-static" -buildid=' -o $(BUILD_PATH) ./cmd/skywire-cli ./cmd/setup-node build-deploy: host-apps-deploy ## Build for deployment Docker images ${OPTS} go build -tags netgo ${BUILD_OPTS_DEPLOY} -o /release/skywire-visor ./cmd/skywire-visor @@ -344,6 +310,9 @@ build-docker: ## Build docker image install-deps-ui: ## Install the UI dependencies cd $(MANAGER_UI_DIR) && npm ci +config: ## Create or regenerate a config with correct default app bin_path for `make build` + $(BUILD_PATH)skywire-cli config gen -irx --binpath $(BUILD_PATH)apps + run: ## Run skywire visor with skywire-config.json, and start a browser if running a hypervisor $(BUILD_PATH)skywire-visor -bc ./skywire-config.json @@ -365,7 +334,6 @@ run-source: prepare ## Run skywire from source, without compiling binaries run-systray: prepare ## Run skywire from source, with vpn server enabled go run ./cmd/skywire-cli/skywire-cli.go config gen -ni | sudo go run ./cmd/skywire-visor/skywire-visor.go -n --systray || true - run-vpnsrv: prepare ## Run skywire from source, without compiling binaries go run ./cmd/skywire-cli/skywire-cli.go config gen -in --servevpn | sudo go run ./cmd/skywire-visor/skywire-visor.go -n || true @@ -376,19 +344,19 @@ run-vpnsrv-test: prepare ## Run skywire from source, with vpn server enabled go run ./cmd/skywire-cli/skywire-cli.go config gen -nit --servevpn | sudo go run ./cmd/skywire-visor/skywire-visor.go -n || true run-systray-test: prepare ## Run skywire from source, with vpn server enabled - go run ./cmd/skywire-cli/skywire-cli.go config gen -nit | sudo go run ./cmd/skywire-visor/skywire-visor.go --systray -nb || true + go run ./cmd/skywire-cli/skywire-cli.go config gen -nit | sudo go run ./cmd/skywire-visor/skywire-visor.go --systray -n || true run-source-dmsghttp: prepare ## Run skywire from source with dmsghttp config - go run ./cmd/skywire-cli/skywire-cli.go config gen -din | sudo go run ./cmd/skywire-visor/skywire-visor.go -nb || true + go run ./cmd/skywire-cli/skywire-cli.go config gen -din | sudo go run ./cmd/skywire-visor/skywire-visor.go -n || true run-vpnsrv-dmsghttp: prepare ## Run skywire from source with dmsghttp config and vpn server - go run ./cmd/skywire-cli/skywire-cli.go config gen -din --servevpn | sudo go run ./cmd/skywire-visor/skywire-visor.go -nb || true + go run ./cmd/skywire-cli/skywire-cli.go config gen -din --servevpn | sudo go run ./cmd/skywire-visor/skywire-visor.go -n || true run-source-dmsghttp-test: prepare ## Run skywire from source with dmsghttp config and test endpoints - go run ./cmd/skywire-cli/skywire-cli.go config gen -dint | sudo go run ./cmd/skywire-visor/skywire-visor.go -nb || true + go run ./cmd/skywire-cli/skywire-cli.go config gen -dint | sudo go run ./cmd/skywire-visor/skywire-visor.go -n || true run-vpnsrv-dmsghttp-test: prepare ## Run skywire from source with dmsghttp config, vpn server, and test endpoints - go run ./cmd/skywire-cli/skywire-cli.go config gen -dint --servevpn | sudo go run ./cmd/skywire-visor/skywire-visor.go -nb || true + go run ./cmd/skywire-cli/skywire-cli.go config gen -dint --servevpn | sudo go run ./cmd/skywire-visor/skywire-visor.go -n || true lint-ui: ## Lint the UI code cd $(MANAGER_UI_DIR) && npm run lint @@ -406,16 +374,6 @@ build-ui-windows: install-deps-ui ## Builds the UI on windows powershell 'New-Item -Path ${MANAGER_UI_BUILT_DIR} -ItemType Directory' powershell 'Copy-Item -Recurse ${MANAGER_UI_DIR}\dist\* ${MANAGER_UI_BUILT_DIR}' -deb-install-prequisites: ## Create unsigned application - sudo chmod +x ./scripts/deb_installer/prequisites.sh - ./scripts/deb_installer/prequisites.sh - -deb-package: deb-install-prequisites ## Create unsigned application - ./scripts/deb_installer/package_deb.sh - -deb-package-help: ## Show installer creation help - ./scripts/deb_installer/package_deb.sh -h - mac-installer: ## Create unsigned and not-notarized application, run make mac-installer-help for more ./scripts/mac_installer/create_installer.sh From d30666599199ba44ce5d6a178088800d91ba6596 Mon Sep 17 00:00:00 2001 From: Mohammed <79150699+mrpalide@users.noreply.github.com> Date: Tue, 16 May 2023 20:01:35 +0330 Subject: [PATCH 33/62] change port logic on sudph and stcpr init (#1534) * add two new field, stcpr_port and sudph_port * change sudph_port and stcpr_port type to int * read port from config instead random port --- pkg/transport/manager.go | 7 +++---- pkg/transport/network/client.go | 6 +++--- pkg/transport/network/stcpr.go | 26 ++++++++++++++++++++------ pkg/transport/network/sudph.go | 26 ++++++++++++++++++++------ pkg/visor/init.go | 6 +++--- pkg/visor/visorconfig/config.go | 2 ++ pkg/visor/visorconfig/v1.go | 2 ++ 7 files changed, 53 insertions(+), 22 deletions(-) diff --git a/pkg/transport/manager.go b/pkg/transport/manager.go index cc83f61881..3b5e62a10a 100644 --- a/pkg/transport/manager.go +++ b/pkg/transport/manager.go @@ -84,7 +84,7 @@ func NewManager(log *logging.Logger, arClient addrresolver.APIClient, ebc *appev // InitDmsgClient initilizes the dmsg client and also adds dmsgC to the factory func (tm *Manager) InitDmsgClient(ctx context.Context, dmsgC *dmsg.Client) { tm.factory.DmsgC = dmsgC - tm.InitClient(ctx, network.DMSG) + tm.InitClient(ctx, network.DMSG, 0) } // Serve starts all network clients and starts accepting connections @@ -146,9 +146,8 @@ func (tm *Manager) SetPTpsCache(pTps []PersistentTransports) { } // InitClient initilizes a network client -func (tm *Manager) InitClient(ctx context.Context, netType network.Type) { - - client, err := tm.factory.MakeClient(netType) +func (tm *Manager) InitClient(ctx context.Context, netType network.Type, port int) { + client, err := tm.factory.MakeClient(netType, port) if err != nil { tm.Logger.Warnf("Cannot initialize %s transport client", netType) } diff --git a/pkg/transport/network/client.go b/pkg/transport/network/client.go index 1604e75340..2742f88db9 100644 --- a/pkg/transport/network/client.go +++ b/pkg/transport/network/client.go @@ -62,7 +62,7 @@ type ClientFactory struct { } // MakeClient creates a new client of specified type -func (f *ClientFactory) MakeClient(netType Type) (Client, error) { +func (f *ClientFactory) MakeClient(netType Type, port int) (Client, error) { log := logging.MustGetLogger(string(netType)) if f.MLogger != nil { log = f.MLogger.PackageLogger(string(netType)) @@ -88,9 +88,9 @@ func (f *ClientFactory) MakeClient(netType Type) (Client, error) { case STCP: return newStcp(generic, f.PKTable), nil case STCPR: - return newStcpr(resolved), nil + return newStcpr(resolved, port), nil case SUDPH: - return newSudph(resolved), nil + return newSudph(resolved, port), nil case DMSG: return newDmsgClient(f.DmsgC), nil } diff --git a/pkg/transport/network/stcpr.go b/pkg/transport/network/stcpr.go index 7a219a5c77..7186e18c94 100644 --- a/pkg/transport/network/stcpr.go +++ b/pkg/transport/network/stcpr.go @@ -3,6 +3,7 @@ package network import ( "context" + "fmt" "io" "net" @@ -12,10 +13,11 @@ import ( type stcprClient struct { *resolvedClient + port int } -func newStcpr(resolved *resolvedClient) Client { - client := &stcprClient{resolvedClient: resolved} +func newStcpr(resolved *resolvedClient, port int) Client { + client := &stcprClient{resolvedClient: resolved, port: port} client.netType = STCPR return client } @@ -50,10 +52,22 @@ func (c *stcprClient) Start() error { } func (c *stcprClient) serve() { - lis, err := net.Listen("tcp", "") - if err != nil { - c.log.Errorf("Failed to listen on random port: %v", err) - return + var lis net.Listener + var err error + var confPort string + if c.port != 0 { + confPort = fmt.Sprintf(":%d", c.port) + } + for { + lis, err = net.Listen("tcp", confPort) + if err != nil { + c.log.WithError(err).Warnf("Failed to listen on port: %d", c.port) + c.port++ + confPort = fmt.Sprintf(":%d", c.port) + c.log.Warnf("Trying port %d", c.port) + continue + } + break } localAddr := lis.Addr().String() diff --git a/pkg/transport/network/sudph.go b/pkg/transport/network/sudph.go index 4f3d39eff4..e03785e96e 100644 --- a/pkg/transport/network/sudph.go +++ b/pkg/transport/network/sudph.go @@ -30,10 +30,11 @@ const ( type sudphClient struct { *resolvedClient filter *pfilter.PacketFilter + port int } -func newSudph(resolved *resolvedClient) Client { - client := &sudphClient{resolvedClient: resolved} +func newSudph(resolved *resolvedClient, port int) Client { + client := &sudphClient{resolvedClient: resolved, port: port} client.netType = SUDPH return client } @@ -50,7 +51,7 @@ func (c *sudphClient) Start() error { func (c *sudphClient) serve() { lis, err := c.listen() if err != nil { - c.log.Errorf("Failed to listen on random port: %v", err) + c.log.Errorf("Failed to listen on port: %v", err) return } c.acceptTransports(lis) @@ -58,9 +59,22 @@ func (c *sudphClient) serve() { // listen func (c *sudphClient) listen() (net.Listener, error) { - packetListener, err := net.ListenPacket("udp", "") - if err != nil { - return nil, err + var packetListener net.PacketConn + var err error + var confPort string + if c.port != 0 { + confPort = fmt.Sprintf(":%d", c.port) + } + for { + packetListener, err = net.ListenPacket("udp", confPort) + if err != nil { + c.log.WithError(err).Warnf("Failed to listen on port: %d", c.port) + c.port++ + confPort = fmt.Sprintf(":%d", c.port) + c.log.Warnf("Trying port %d", c.port) + continue + } + break } c.filter = pfilter.NewPacketFilter(packetListener) sudphVisorsConn := c.filter.NewConn(visorsConnPriority, nil) diff --git a/pkg/visor/init.go b/pkg/visor/init.go index 9312791935..0386474394 100644 --- a/pkg/visor/init.go +++ b/pkg/visor/init.go @@ -466,20 +466,20 @@ func initSudphClient(ctx context.Context, v *Visor, log *logging.Logger) error { case stun.NATSymmetric, stun.NATSymmetricUDPFirewall: log.Warnf("SUDPH transport wont be available as visor is under %v", v.stunClient.NATType.String()) default: - v.tpM.InitClient(ctx, network.SUDPH) + v.tpM.InitClient(ctx, network.SUDPH, v.conf.Transport.SudphPort) } } return nil } func initStcprClient(ctx context.Context, v *Visor, log *logging.Logger) error { - v.tpM.InitClient(ctx, network.STCPR) + v.tpM.InitClient(ctx, network.STCPR, v.conf.Transport.StcprPort) return nil } func initStcpClient(ctx context.Context, v *Visor, log *logging.Logger) error { if v.conf.STCP != nil { - v.tpM.InitClient(ctx, network.STCP) + v.tpM.InitClient(ctx, network.STCP, 0) } return nil } diff --git a/pkg/visor/visorconfig/config.go b/pkg/visor/visorconfig/config.go index ac34164f69..9bbfc9b848 100644 --- a/pkg/visor/visorconfig/config.go +++ b/pkg/visor/visorconfig/config.go @@ -73,6 +73,8 @@ func MakeBaseConfig(common *Common, testEnv bool, dmsgHTTP bool, services *Servi Location: LocalPath + "/" + TpLogStore, RotationInterval: DefaultLogRotationInterval, }, + SudphPort: 0, + StcprPort: 0, } conf.Routing = &Routing{ RouteFinder: services.RouteFinder, //utilenv.RouteFinderAddr, diff --git a/pkg/visor/visorconfig/v1.go b/pkg/visor/visorconfig/v1.go index 4bcebab4c2..1b436f2e56 100644 --- a/pkg/visor/visorconfig/v1.go +++ b/pkg/visor/visorconfig/v1.go @@ -57,6 +57,8 @@ type Transport struct { PublicAutoconnect bool `json:"public_autoconnect"` TransportSetup []cipher.PubKey `json:"transport_setup_nodes"` LogStore *LogStore `json:"log_store"` + StcprPort int `json:"stcpr_port"` + SudphPort int `json:"sudph_port"` } // LogStore configures a LogStore. From 675518cfb2dc24db1b4a7f510d80b0d6c0b439cd Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Tue, 16 May 2023 12:17:54 -0500 Subject: [PATCH 34/62] Survey collection whitelist (#1557) * add explicit dmsgpty whitelist * stashing changes * add whitelist for survey collecton over dmsghttp * change var name * fix json field name --- pkg/visor/init.go | 8 ++++- pkg/visor/logserver/api.go | 61 +++++++++++++++++++++++++++++++++++-- pkg/visor/visorconfig/v1.go | 5 +-- 3 files changed, 68 insertions(+), 6 deletions(-) diff --git a/pkg/visor/init.go b/pkg/visor/init.go index 0386474394..02c791950e 100644 --- a/pkg/visor/init.go +++ b/pkg/visor/init.go @@ -388,7 +388,13 @@ func initDmsgHTTPLogServer(ctx context.Context, v *Visor, log *logging.Logger) e printLog = true } - lsAPI := logserver.New(logger, v.conf.Transport.LogStore.Location, v.conf.LocalPath, v.conf.DmsgHTTPServerPath, printLog) + //whitelist access to the surveys for the hypervisor, dmsggpty whitelist, and for the surveywhitelist of keys which is fetched from the conf service + var whitelistedPKs []cipher.PubKey + whitelistedPKs = append(whitelistedPKs, v.conf.SurveyWhitelist...) + whitelistedPKs = append(whitelistedPKs, v.conf.Hypervisors...) + whitelistedPKs = append(whitelistedPKs, v.conf.Dmsgpty.Whitelist...) + + lsAPI := logserver.New(logger, v.conf.Transport.LogStore.Location, v.conf.LocalPath, v.conf.DmsgHTTPServerPath, whitelistedPKs, printLog) lis, err := dmsgC.Listen(visorconfig.DmsgHTTPPort) if err != nil { diff --git a/pkg/visor/logserver/api.go b/pkg/visor/logserver/api.go index 9d875cc9c4..4f2e54435d 100644 --- a/pkg/visor/logserver/api.go +++ b/pkg/visor/logserver/api.go @@ -3,7 +3,13 @@ package logserver import ( "encoding/json" + "log" + "mime" + "net" "net/http" + "os" + "path" + "path/filepath" "time" "github.com/go-chi/chi/v5" @@ -11,6 +17,7 @@ import ( "github.com/sirupsen/logrus" "github.com/skycoin/skywire-utilities/pkg/buildinfo" + "github.com/skycoin/skywire-utilities/pkg/cipher" "github.com/skycoin/skywire-utilities/pkg/httputil" "github.com/skycoin/skywire-utilities/pkg/logging" "github.com/skycoin/skywire/pkg/skyenv" @@ -26,7 +33,7 @@ type API struct { } // New creates a new api. -func New(log *logging.Logger, tpLogPath, localPath, customPath string, printLog bool) *API { +func New(log *logging.Logger, tpLogPath, localPath, customPath string, whitelistedPKs []cipher.PubKey, printLog bool) *API { api := &API{ logger: log, startedAt: time.Now(), @@ -48,8 +55,10 @@ func New(log *logging.Logger, tpLogPath, localPath, customPath string, printLog r.Handle("/*", http.StripPrefix("/", fsTP)) fsLocal := http.FileServer(http.Dir(localPath)) - r.Handle("/"+skyenv.NodeInfo, http.StripPrefix("/", fsLocal)) - r.Handle("/"+skyenv.RewardFile, http.StripPrefix("/", fsLocal)) + r.Handle("/"+skyenv.NodeInfo, http.StripPrefix("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + whitelistFSHandler(w, r, localPath, whitelistedPKs) + }))) + r.Handle("/transport_logs/*", http.StripPrefix("/", fsLocal)) fsCustom := http.FileServer(http.Dir(customPath)) @@ -88,3 +97,49 @@ func (api *API) writeJSON(w http.ResponseWriter, r *http.Request, code int, obje func (api *API) log(r *http.Request) logrus.FieldLogger { return httputil.GetLogger(r) } + +func whitelistFSHandler(w http.ResponseWriter, r *http.Request, serveDir string, whitelistedPKs []cipher.PubKey) { + start := time.Now() + // Get the remote PK. + remotePK, _, err := net.SplitHostPort(r.RemoteAddr) + if err != nil { + http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) + return + } + // Check if the remote PK is whitelisted. + whitelisted := false + if len(whitelistedPKs) == 0 { + whitelisted = true + } else { + for _, whitelistedPK := range whitelistedPKs { + if remotePK == whitelistedPK.String() { + whitelisted = true + break + } + } + } + // If the remote PK is whitelisted, serve the file. + if whitelisted { + filePath := serveDir + r.URL.Path + file, err := os.Open(filePath) //nolint + if err != nil { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + return + } + defer file.Close() //nolint + + _, filename := path.Split(filePath) + w.Header().Set("Content-Type", mime.TypeByExtension(filepath.Ext(filename))) + http.ServeContent(w, r, filename, time.Time{}, file) + + // Log the response status and time taken. + elapsed := time.Since(start) + log.Printf("[DMSGHTTP] %s %s | %d | %v | %s | %s %s\n", start.Format("2006/01/02 - 15:04:05"), r.RemoteAddr, http.StatusOK, elapsed, r.Method, r.Proto, r.URL) + return + } + // Otherwise, return a 403 Forbidden error. + http.Error(w, http.StatusText(http.StatusForbidden), http.StatusForbidden) + // Log the response status and time taken. + elapsed := time.Since(start) + log.Printf("[DMSGHTTP] %s %s | %d | %v | %s | %s %s\n", start.Format("2006/01/02 - 15:04:05"), r.RemoteAddr, http.StatusForbidden, elapsed, r.Method, r.Proto, r.URL) +} diff --git a/pkg/visor/visorconfig/v1.go b/pkg/visor/visorconfig/v1.go index 1b436f2e56..e5454af560 100644 --- a/pkg/visor/visorconfig/v1.go +++ b/pkg/visor/visorconfig/v1.go @@ -27,8 +27,9 @@ type V1 struct { UptimeTracker *UptimeTracker `json:"uptime_tracker,omitempty"` Launcher *Launcher `json:"launcher"` - Hypervisors []cipher.PubKey `json:"hypervisors"` - CLIAddr string `json:"cli_addr"` + SurveyWhitelist []cipher.PubKey `json:"survey_whitelist"` + Hypervisors []cipher.PubKey `json:"hypervisors"` + CLIAddr string `json:"cli_addr"` LogLevel string `json:"log_level"` LocalPath string `json:"local_path"` From ea263f38b5fab09156d782bf2969b0ec9e05227d Mon Sep 17 00:00:00 2001 From: Mohammed <79150699+mrpalide@users.noreply.github.com> Date: Wed, 17 May 2023 19:42:54 +0330 Subject: [PATCH 35/62] add WhitelistedPKs to services struct (#1560) --- pkg/visor/visorconfig/services.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/visor/visorconfig/services.go b/pkg/visor/visorconfig/services.go index d49f122a79..e007adca7d 100644 --- a/pkg/visor/visorconfig/services.go +++ b/pkg/visor/visorconfig/services.go @@ -65,4 +65,5 @@ type Services struct { ServiceDiscovery string `json:"service_discovery"` StunServers []string `json:"stun_servers"` DNSServer string `json:"dns_server"` + WhitelistedPKs []string `json:"whitelisted_pks"` } From 533fa3fa26b1f83c72a57e9c2133f11dbd3b81de Mon Sep 17 00:00:00 2001 From: Mohammed <79150699+mrpalide@users.noreply.github.com> Date: Wed, 17 May 2023 19:59:09 +0330 Subject: [PATCH 36/62] Change variable name (#1561) * add WhitelistedPKs to services struct * change its name to SurveyWhitelists * change to SurveyWhitelist --- pkg/visor/visorconfig/services.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/visor/visorconfig/services.go b/pkg/visor/visorconfig/services.go index e007adca7d..27c761ce5e 100644 --- a/pkg/visor/visorconfig/services.go +++ b/pkg/visor/visorconfig/services.go @@ -65,5 +65,5 @@ type Services struct { ServiceDiscovery string `json:"service_discovery"` StunServers []string `json:"stun_servers"` DNSServer string `json:"dns_server"` - WhitelistedPKs []string `json:"whitelisted_pks"` + SurveyWhitelist []string `json:"survey_whitelist"` } From a6a12ba63321f595f6cf870a4afa9e70b4025371 Mon Sep 17 00:00:00 2001 From: Mohammed <79150699+mrpalide@users.noreply.github.com> Date: Thu, 18 May 2023 17:46:53 +0330 Subject: [PATCH 37/62] fix setupnode rpc gateway name (#1563) --- pkg/router/setupclient.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/router/setupclient.go b/pkg/router/setupclient.go index 3288c3f7c0..f795fb2048 100644 --- a/pkg/router/setupclient.go +++ b/pkg/router/setupclient.go @@ -15,7 +15,7 @@ import ( "github.com/skycoin/skywire/pkg/skyenv" ) -const rpcName = "RPCGateway" +const rpcName = "SetupRPCGateway" // ErrSetupNode is used when the visor is unable to connect to a setup node var ErrSetupNode = errors.New("failed to dial to a setup node") From a456077df709a73f3a4c03d88ca732729fd7ef59 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Thu, 18 May 2023 11:54:43 -0500 Subject: [PATCH 38/62] Remove pgp encryption of the survey (#1562) * remove pgp encryption of the survey * remove rawsurvey bool --- go.mod | 4 - go.sum | 16 - pkg/visor/api.go | 2 +- pkg/visor/init.go | 2 +- pkg/visor/visor.go | 4 - pkg/visor/visorconfig/survey.go | 33 +- .../github.com/ProtonMail/go-crypto/AUTHORS | 3 - .../ProtonMail/go-crypto/CONTRIBUTORS | 3 - .../github.com/ProtonMail/go-crypto/LICENSE | 27 - .../github.com/ProtonMail/go-crypto/PATENTS | 22 - .../go-crypto/bitcurves/bitcurve.go | 381 - .../go-crypto/brainpool/brainpool.go | 134 - .../ProtonMail/go-crypto/brainpool/rcurve.go | 83 - .../ProtonMail/go-crypto/eax/eax.go | 162 - .../go-crypto/eax/eax_test_vectors.go | 58 - .../go-crypto/eax/random_vectors.go | 131 - .../go-crypto/internal/byteutil/byteutil.go | 92 - .../ProtonMail/go-crypto/ocb/ocb.go | 317 - .../go-crypto/ocb/random_vectors.go | 136 - .../ocb/rfc7253_test_vectors_suite_a.go | 78 - .../ocb/rfc7253_test_vectors_suite_b.go | 24 - .../go-crypto/openpgp/aes/keywrap/keywrap.go | 153 - .../go-crypto/openpgp/armor/armor.go | 224 - .../go-crypto/openpgp/armor/encode.go | 160 - .../go-crypto/openpgp/canonical_text.go | 65 - .../go-crypto/openpgp/clearsign/clearsign.go | 470 - .../ProtonMail/go-crypto/openpgp/ecdh/ecdh.go | 206 - .../go-crypto/openpgp/ecdsa/ecdsa.go | 80 - .../go-crypto/openpgp/eddsa/eddsa.go | 91 - .../go-crypto/openpgp/elgamal/elgamal.go | 124 - .../go-crypto/openpgp/errors/errors.go | 116 - .../openpgp/internal/algorithm/aead.go | 65 - .../openpgp/internal/algorithm/cipher.go | 107 - .../openpgp/internal/algorithm/hash.go | 92 - .../openpgp/internal/ecc/curve25519.go | 171 - .../openpgp/internal/ecc/curve_info.go | 140 - .../go-crypto/openpgp/internal/ecc/curves.go | 48 - .../go-crypto/openpgp/internal/ecc/ed25519.go | 111 - .../go-crypto/openpgp/internal/ecc/ed448.go | 111 - .../go-crypto/openpgp/internal/ecc/generic.go | 149 - .../go-crypto/openpgp/internal/ecc/x448.go | 105 - .../openpgp/internal/encoding/encoding.go | 27 - .../openpgp/internal/encoding/mpi.go | 91 - .../openpgp/internal/encoding/oid.go | 88 - .../go-crypto/openpgp/key_generation.go | 409 - .../ProtonMail/go-crypto/openpgp/keys.go | 829 - .../go-crypto/openpgp/keys_test_data.go | 520 - .../go-crypto/openpgp/packet/aead_config.go | 67 - .../go-crypto/openpgp/packet/aead_crypter.go | 265 - .../openpgp/packet/aead_encrypted.go | 96 - .../go-crypto/openpgp/packet/compressed.go | 125 - .../go-crypto/openpgp/packet/config.go | 204 - .../go-crypto/openpgp/packet/encrypted_key.go | 282 - .../go-crypto/openpgp/packet/literal.go | 91 - .../go-crypto/openpgp/packet/ocfb.go | 137 - .../openpgp/packet/one_pass_signature.go | 73 - .../go-crypto/openpgp/packet/opaque.go | 171 - .../go-crypto/openpgp/packet/packet.go | 546 - .../go-crypto/openpgp/packet/private_key.go | 736 - .../openpgp/packet/private_key_test_data.go | 12 - .../go-crypto/openpgp/packet/public_key.go | 802 - .../openpgp/packet/public_key_test_data.go | 24 - .../go-crypto/openpgp/packet/reader.go | 86 - .../go-crypto/openpgp/packet/signature.go | 1046 - .../openpgp/packet/symmetric_key_encrypted.go | 306 - .../openpgp/packet/symmetrically_encrypted.go | 91 - .../packet/symmetrically_encrypted_aead.go | 149 - .../packet/symmetrically_encrypted_mdc.go | 251 - .../go-crypto/openpgp/packet/userattribute.go | 101 - .../go-crypto/openpgp/packet/userid.go | 167 - .../ProtonMail/go-crypto/openpgp/read.go | 538 - .../go-crypto/openpgp/read_write_test_data.go | 173 - .../ProtonMail/go-crypto/openpgp/s2k/s2k.go | 367 - .../ProtonMail/go-crypto/openpgp/write.go | 583 - .../github.com/ProtonMail/go-mime/.gitignore | 2 - vendor/github.com/ProtonMail/go-mime/LICENSE | 21 - .../github.com/ProtonMail/go-mime/README.md | 25 - .../github.com/ProtonMail/go-mime/encoding.go | 222 - .../github.com/ProtonMail/go-mime/parser.go | 526 - .../ProtonMail/go-mime/utf7Decoder.go | 170 - .../github.com/ProtonMail/gopenpgp/v2/LICENSE | 21 - .../ProtonMail/gopenpgp/v2/armor/armor.go | 69 - .../ProtonMail/gopenpgp/v2/constants/armor.go | 12 - .../gopenpgp/v2/constants/cipher.go | 21 - .../gopenpgp/v2/constants/version.go | 3 - .../gopenpgp/v2/crypto/attachment.go | 185 - .../gopenpgp/v2/crypto/attachment_manual.go | 188 - .../ProtonMail/gopenpgp/v2/crypto/gopenpgp.go | 26 - .../ProtonMail/gopenpgp/v2/crypto/key.go | 489 - .../gopenpgp/v2/crypto/key_clear.go | 128 - .../ProtonMail/gopenpgp/v2/crypto/keyring.go | 250 - .../gopenpgp/v2/crypto/keyring_message.go | 297 - .../gopenpgp/v2/crypto/keyring_session.go | 99 - .../gopenpgp/v2/crypto/keyring_streaming.go | 371 - .../ProtonMail/gopenpgp/v2/crypto/message.go | 465 - .../gopenpgp/v2/crypto/message_getters.go | 14 - .../ProtonMail/gopenpgp/v2/crypto/mime.go | 118 - .../ProtonMail/gopenpgp/v2/crypto/password.go | 179 - .../gopenpgp/v2/crypto/sanitize_string.go | 7 - .../gopenpgp/v2/crypto/sessionkey.go | 398 - .../v2/crypto/sessionkey_streaming.go | 141 - .../gopenpgp/v2/crypto/signature.go | 161 - .../gopenpgp/v2/crypto/signature_collector.go | 125 - .../ProtonMail/gopenpgp/v2/crypto/time.go | 69 - .../gopenpgp/v2/helper/cleartext.go | 79 - .../ProtonMail/gopenpgp/v2/helper/helper.go | 600 - .../ProtonMail/gopenpgp/v2/helper/key.go | 63 - .../ProtonMail/gopenpgp/v2/helper/mobile.go | 149 - .../gopenpgp/v2/helper/mobile_stream.go | 203 - .../gopenpgp/v2/helper/sign_detached.go | 70 - .../ProtonMail/gopenpgp/v2/internal/armor.go | 18 - .../ProtonMail/gopenpgp/v2/internal/common.go | 32 - vendor/github.com/cloudflare/circl/LICENSE | 57 - .../cloudflare/circl/dh/x25519/curve.go | 96 - .../cloudflare/circl/dh/x25519/curve_amd64.go | 31 - .../cloudflare/circl/dh/x25519/curve_amd64.h | 111 - .../cloudflare/circl/dh/x25519/curve_amd64.s | 156 - .../circl/dh/x25519/curve_generic.go | 85 - .../cloudflare/circl/dh/x25519/curve_noasm.go | 11 - .../cloudflare/circl/dh/x25519/doc.go | 20 - .../cloudflare/circl/dh/x25519/key.go | 47 - .../cloudflare/circl/dh/x25519/table.go | 266 - .../cloudflare/circl/dh/x448/curve.go | 104 - .../cloudflare/circl/dh/x448/curve_amd64.go | 31 - .../cloudflare/circl/dh/x448/curve_amd64.h | 111 - .../cloudflare/circl/dh/x448/curve_amd64.s | 193 - .../cloudflare/circl/dh/x448/curve_generic.go | 97 - .../cloudflare/circl/dh/x448/curve_noasm.go | 11 - .../cloudflare/circl/dh/x448/doc.go | 20 - .../cloudflare/circl/dh/x448/key.go | 46 - .../cloudflare/circl/dh/x448/table.go | 458 - .../circl/ecc/goldilocks/constants.go | 71 - .../cloudflare/circl/ecc/goldilocks/curve.go | 80 - .../circl/ecc/goldilocks/isogeny.go | 52 - .../cloudflare/circl/ecc/goldilocks/point.go | 171 - .../cloudflare/circl/ecc/goldilocks/scalar.go | 203 - .../cloudflare/circl/ecc/goldilocks/twist.go | 138 - .../circl/ecc/goldilocks/twistPoint.go | 135 - .../circl/ecc/goldilocks/twistTables.go | 216 - .../circl/ecc/goldilocks/twist_basemult.go | 62 - .../cloudflare/circl/internal/conv/conv.go | 140 - .../cloudflare/circl/internal/sha3/doc.go | 66 - .../cloudflare/circl/internal/sha3/hashes.go | 69 - .../cloudflare/circl/internal/sha3/keccakf.go | 385 - .../circl/internal/sha3/keccakf_amd64.go | 14 - .../circl/internal/sha3/keccakf_amd64.s | 390 - .../cloudflare/circl/internal/sha3/rc.go | 29 - .../cloudflare/circl/internal/sha3/sha3.go | 195 - .../circl/internal/sha3/sha3_s390x.s | 33 - .../cloudflare/circl/internal/sha3/shake.go | 79 - .../cloudflare/circl/internal/sha3/xor.go | 15 - .../circl/internal/sha3/xor_generic.go | 33 - .../circl/internal/sha3/xor_unaligned.go | 61 - .../cloudflare/circl/math/fp25519/fp.go | 205 - .../cloudflare/circl/math/fp25519/fp_amd64.go | 45 - .../cloudflare/circl/math/fp25519/fp_amd64.h | 350 - .../cloudflare/circl/math/fp25519/fp_amd64.s | 111 - .../circl/math/fp25519/fp_generic.go | 317 - .../cloudflare/circl/math/fp25519/fp_noasm.go | 13 - .../cloudflare/circl/math/fp448/fp.go | 164 - .../cloudflare/circl/math/fp448/fp_amd64.go | 43 - .../cloudflare/circl/math/fp448/fp_amd64.h | 590 - .../cloudflare/circl/math/fp448/fp_amd64.s | 74 - .../cloudflare/circl/math/fp448/fp_generic.go | 339 - .../cloudflare/circl/math/fp448/fp_noasm.go | 12 - .../cloudflare/circl/math/fp448/fuzzer.go | 74 - .../cloudflare/circl/math/mlsbset/mlsbset.go | 122 - .../cloudflare/circl/math/mlsbset/power.go | 64 - .../github.com/cloudflare/circl/math/wnaf.go | 84 - .../cloudflare/circl/sign/ed25519/ed25519.go | 452 - .../cloudflare/circl/sign/ed25519/modular.go | 175 - .../cloudflare/circl/sign/ed25519/mult.go | 179 - .../cloudflare/circl/sign/ed25519/point.go | 193 - .../cloudflare/circl/sign/ed25519/pubkey.go | 9 - .../circl/sign/ed25519/pubkey112.go | 7 - .../cloudflare/circl/sign/ed25519/signapi.go | 87 - .../cloudflare/circl/sign/ed25519/tables.go | 213 - .../cloudflare/circl/sign/ed448/ed448.go | 410 - .../cloudflare/circl/sign/ed448/signapi.go | 87 - .../github.com/cloudflare/circl/sign/sign.go | 111 - vendor/golang.org/x/crypto/hkdf/hkdf.go | 93 - vendor/golang.org/x/crypto/sha3/doc.go | 62 - vendor/golang.org/x/crypto/sha3/hashes.go | 97 - .../x/crypto/sha3/hashes_generic.go | 28 - vendor/golang.org/x/crypto/sha3/keccakf.go | 413 - .../golang.org/x/crypto/sha3/keccakf_amd64.go | 14 - .../golang.org/x/crypto/sha3/keccakf_amd64.s | 391 - vendor/golang.org/x/crypto/sha3/register.go | 19 - vendor/golang.org/x/crypto/sha3/sha3.go | 193 - vendor/golang.org/x/crypto/sha3/sha3_s390x.go | 287 - vendor/golang.org/x/crypto/sha3/sha3_s390x.s | 34 - vendor/golang.org/x/crypto/sha3/shake.go | 173 - .../golang.org/x/crypto/sha3/shake_generic.go | 20 - vendor/golang.org/x/crypto/sha3/xor.go | 24 - .../golang.org/x/crypto/sha3/xor_generic.go | 28 - .../golang.org/x/crypto/sha3/xor_unaligned.go | 68 - .../x/text/encoding/charmap/charmap.go | 249 - .../x/text/encoding/charmap/tables.go | 7410 --- vendor/golang.org/x/text/encoding/encoding.go | 335 - .../x/text/encoding/htmlindex/htmlindex.go | 86 - .../x/text/encoding/htmlindex/map.go | 105 - .../x/text/encoding/htmlindex/tables.go | 362 - .../internal/identifier/identifier.go | 81 - .../text/encoding/internal/identifier/mib.go | 1627 - .../x/text/encoding/internal/internal.go | 75 - .../x/text/encoding/japanese/all.go | 12 - .../x/text/encoding/japanese/eucjp.go | 225 - .../x/text/encoding/japanese/iso2022jp.go | 299 - .../x/text/encoding/japanese/shiftjis.go | 189 - .../x/text/encoding/japanese/tables.go | 26971 ---------- .../x/text/encoding/korean/euckr.go | 177 - .../x/text/encoding/korean/tables.go | 34152 ------------ .../x/text/encoding/simplifiedchinese/all.go | 12 - .../x/text/encoding/simplifiedchinese/gbk.go | 273 - .../encoding/simplifiedchinese/hzgb2312.go | 245 - .../text/encoding/simplifiedchinese/tables.go | 43999 ---------------- .../text/encoding/traditionalchinese/big5.go | 199 - .../encoding/traditionalchinese/tables.go | 37142 ------------- .../x/text/encoding/unicode/override.go | 82 - .../x/text/encoding/unicode/unicode.go | 512 - .../internal/utf8internal/utf8internal.go | 87 - vendor/modules.txt | 58 - 222 files changed, 7 insertions(+), 185988 deletions(-) delete mode 100644 vendor/github.com/ProtonMail/go-crypto/AUTHORS delete mode 100644 vendor/github.com/ProtonMail/go-crypto/CONTRIBUTORS delete mode 100644 vendor/github.com/ProtonMail/go-crypto/LICENSE delete mode 100644 vendor/github.com/ProtonMail/go-crypto/PATENTS delete mode 100644 vendor/github.com/ProtonMail/go-crypto/bitcurves/bitcurve.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/brainpool/brainpool.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/brainpool/rcurve.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/eax/eax.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/eax/eax_test_vectors.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/eax/random_vectors.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/ocb/random_vectors.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_a.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_b.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap/keywrap.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/armor/armor.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/canonical_text.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/clearsign/clearsign.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/ecdh/ecdh.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/ecdsa/ecdsa.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/eddsa/eddsa.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/elgamal/elgamal.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/aead.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/cipher.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/hash.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve_info.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curves.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed25519.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed448.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/generic.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/x448.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/encoding.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/mpi.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/oid.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/key_generation.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/keys.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/keys_test_data.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_config.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/compressed.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/encrypted_key.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/literal.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/ocfb.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/one_pass_signature.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key_test_data.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key_test_data.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/reader.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetric_key_encrypted.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_mdc.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userid.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/read.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/read_write_test_data.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k.go delete mode 100644 vendor/github.com/ProtonMail/go-crypto/openpgp/write.go delete mode 100644 vendor/github.com/ProtonMail/go-mime/.gitignore delete mode 100644 vendor/github.com/ProtonMail/go-mime/LICENSE delete mode 100644 vendor/github.com/ProtonMail/go-mime/README.md delete mode 100644 vendor/github.com/ProtonMail/go-mime/encoding.go delete mode 100644 vendor/github.com/ProtonMail/go-mime/parser.go delete mode 100644 vendor/github.com/ProtonMail/go-mime/utf7Decoder.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/LICENSE delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/armor/armor.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/constants/armor.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/constants/cipher.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/constants/version.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/attachment.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/attachment_manual.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/gopenpgp.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/key.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/key_clear.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_message.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_session.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_streaming.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/message.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/message_getters.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/mime.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/password.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sanitize_string.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sessionkey.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sessionkey_streaming.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/signature.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/signature_collector.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/crypto/time.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/helper/cleartext.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/helper/helper.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/helper/key.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/helper/mobile.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/helper/mobile_stream.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/helper/sign_detached.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/internal/armor.go delete mode 100644 vendor/github.com/ProtonMail/gopenpgp/v2/internal/common.go delete mode 100644 vendor/github.com/cloudflare/circl/LICENSE delete mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.h delete mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.s delete mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve_generic.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/curve_noasm.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/doc.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/key.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x25519/table.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.h delete mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.s delete mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve_generic.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x448/curve_noasm.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x448/doc.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x448/key.go delete mode 100644 vendor/github.com/cloudflare/circl/dh/x448/table.go delete mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/constants.go delete mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.go delete mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/isogeny.go delete mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/point.go delete mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go delete mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go delete mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/twistPoint.go delete mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/twistTables.go delete mode 100644 vendor/github.com/cloudflare/circl/ecc/goldilocks/twist_basemult.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/conv/conv.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/doc.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/hashes.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/keccakf_amd64.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/keccakf_amd64.s delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/rc.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/sha3.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/sha3_s390x.s delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/shake.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/xor.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/xor_generic.go delete mode 100644 vendor/github.com/cloudflare/circl/internal/sha3/xor_unaligned.go delete mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp.go delete mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.go delete mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.h delete mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.s delete mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp_generic.go delete mode 100644 vendor/github.com/cloudflare/circl/math/fp25519/fp_noasm.go delete mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp.go delete mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.go delete mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.h delete mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.s delete mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp_generic.go delete mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fp_noasm.go delete mode 100644 vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go delete mode 100644 vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go delete mode 100644 vendor/github.com/cloudflare/circl/math/mlsbset/power.go delete mode 100644 vendor/github.com/cloudflare/circl/math/wnaf.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/modular.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/mult.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/point.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/pubkey.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/pubkey112.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/signapi.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/ed25519/tables.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/ed448/ed448.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/ed448/signapi.go delete mode 100644 vendor/github.com/cloudflare/circl/sign/sign.go delete mode 100644 vendor/golang.org/x/crypto/hkdf/hkdf.go delete mode 100644 vendor/golang.org/x/crypto/sha3/doc.go delete mode 100644 vendor/golang.org/x/crypto/sha3/hashes.go delete mode 100644 vendor/golang.org/x/crypto/sha3/hashes_generic.go delete mode 100644 vendor/golang.org/x/crypto/sha3/keccakf.go delete mode 100644 vendor/golang.org/x/crypto/sha3/keccakf_amd64.go delete mode 100644 vendor/golang.org/x/crypto/sha3/keccakf_amd64.s delete mode 100644 vendor/golang.org/x/crypto/sha3/register.go delete mode 100644 vendor/golang.org/x/crypto/sha3/sha3.go delete mode 100644 vendor/golang.org/x/crypto/sha3/sha3_s390x.go delete mode 100644 vendor/golang.org/x/crypto/sha3/sha3_s390x.s delete mode 100644 vendor/golang.org/x/crypto/sha3/shake.go delete mode 100644 vendor/golang.org/x/crypto/sha3/shake_generic.go delete mode 100644 vendor/golang.org/x/crypto/sha3/xor.go delete mode 100644 vendor/golang.org/x/crypto/sha3/xor_generic.go delete mode 100644 vendor/golang.org/x/crypto/sha3/xor_unaligned.go delete mode 100644 vendor/golang.org/x/text/encoding/charmap/charmap.go delete mode 100644 vendor/golang.org/x/text/encoding/charmap/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/encoding.go delete mode 100644 vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go delete mode 100644 vendor/golang.org/x/text/encoding/htmlindex/map.go delete mode 100644 vendor/golang.org/x/text/encoding/htmlindex/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/internal/identifier/identifier.go delete mode 100644 vendor/golang.org/x/text/encoding/internal/identifier/mib.go delete mode 100644 vendor/golang.org/x/text/encoding/internal/internal.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/all.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/eucjp.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/iso2022jp.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/shiftjis.go delete mode 100644 vendor/golang.org/x/text/encoding/japanese/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/korean/euckr.go delete mode 100644 vendor/golang.org/x/text/encoding/korean/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/all.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go delete mode 100644 vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/big5.go delete mode 100644 vendor/golang.org/x/text/encoding/traditionalchinese/tables.go delete mode 100644 vendor/golang.org/x/text/encoding/unicode/override.go delete mode 100644 vendor/golang.org/x/text/encoding/unicode/unicode.go delete mode 100644 vendor/golang.org/x/text/internal/utf8internal/utf8internal.go diff --git a/go.mod b/go.mod index 845571d4b1..47b4b5f127 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,6 @@ require ( ) require ( - github.com/ProtonMail/gopenpgp/v2 v2.5.2 github.com/bitfield/script v0.19.0 github.com/blang/semver/v4 v4.0.0 github.com/go-chi/chi/v5 v5.0.8-0.20220103230436-7dbe9a0bd10f @@ -65,10 +64,7 @@ require ( github.com/ActiveState/termtest/conpty v0.5.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect github.com/Microsoft/go-winio v0.4.16 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20230124153114-0acdc8ae009b // indirect - github.com/ProtonMail/go-mime v0.0.0-20221031134845-8fd9bc37cf08 // indirect github.com/StackExchange/wmi v1.2.1 // indirect - github.com/cloudflare/circl v1.1.0 // indirect github.com/containerd/console v1.0.3 // indirect github.com/creack/pty v1.1.15 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/go.sum b/go.sum index 39ebaeb4cc..544c8823d7 100644 --- a/go.sum +++ b/go.sum @@ -79,12 +79,6 @@ github.com/MarvinJWendt/testza v0.4.3 h1:u2XaM4IqGp9dsdUmML8/Z791fu4yjQYzOiufOtJ github.com/Microsoft/go-winio v0.4.16 h1:FtSW/jqD+l4ba5iPBj9CODVtgfYAD8w2wS923g/cFDk= github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ProtonMail/go-crypto v0.0.0-20230124153114-0acdc8ae009b h1:1DHH9haxfhaVM8owXQjLdn7UP4AkDfzSdiRoLdcSCqE= -github.com/ProtonMail/go-crypto v0.0.0-20230124153114-0acdc8ae009b/go.mod h1:I0gYDMZ6Z5GRU7l58bNFSkPTFN6Yl12dsUlAZ8xy98g= -github.com/ProtonMail/go-mime v0.0.0-20221031134845-8fd9bc37cf08 h1:dS7r5z4iGS0qCjM7UwWdsEMzQesUQbGcXdSm2/tWboA= -github.com/ProtonMail/go-mime v0.0.0-20221031134845-8fd9bc37cf08/go.mod h1:qRZgbeASl2a9OwmsV85aWwRqic0NHPh+9ewGAzb4cgM= -github.com/ProtonMail/gopenpgp/v2 v2.5.2 h1:97SjlWNAxXl9P22lgwgrZRshQdiEfAht0g3ZoiA1GCw= -github.com/ProtonMail/gopenpgp/v2 v2.5.2/go.mod h1:52qDaCnto6r+CoWbuU50T77XQt99lIs46HtHtvgFO3o= github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= @@ -114,7 +108,6 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= -github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/ccding/go-stun/stun v0.0.0-20200514191101-4dc67bcdb029 h1:POmUHfxXdeyM8Aomg4tKDcwATCFuW+cYLkj6pwsw9pc= github.com/ccding/go-stun/stun v0.0.0-20200514191101-4dc67bcdb029/go.mod h1:Rpr5n9cGHYdM3S3IK8ROSUUUYjQOu+MSUCZDcJbYWi8= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -130,8 +123,6 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.1.0 h1:bZgT/A+cikZnKIwn7xL2OBj012Bmvho/o6RpRvv3GKY= -github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -612,7 +603,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zcalusic/sysinfo v0.9.5 h1:ivoHyj9aIAYkwzo1+8QgJ5s4oeE6Etx9FmZtqa4wJjQ= github.com/zcalusic/sysinfo v0.9.5/go.mod h1:Z/gPVufBrFc8X5sef3m6kkw3r3nlNFp+I6bvASfvBZQ= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= @@ -655,7 +645,6 @@ golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= @@ -680,7 +669,6 @@ golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20221110043201-43a038452099/go.mod h1:aAjjkJNdrh3PMckS4B10TGS2nag27cbKR1y2BpUxsiY= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= @@ -743,7 +731,6 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -777,7 +764,6 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde h1:ejfdSekXMDxDLbRrJMwUk6KnSLZ2McaUCVcIKM+N6jc= golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -862,9 +848,7 @@ golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= diff --git a/pkg/visor/api.go b/pkg/visor/api.go index 03f812ebb8..5a1d88084b 100644 --- a/pkg/visor/api.go +++ b/pkg/visor/api.go @@ -362,7 +362,7 @@ func (v *Visor) SetRewardAddress(p string) (string, error) { return p, fmt.Errorf("failed to write config to file. err=%v", err) } // generate survey after set/update reward address - visorconfig.GenerateSurvey(v.conf, v.log, false, v.rawSurvey) + visorconfig.GenerateSurvey(v.conf, v.log, false) return p, nil } diff --git a/pkg/visor/init.go b/pkg/visor/init.go index 02c791950e..1b0b70190a 100644 --- a/pkg/visor/init.go +++ b/pkg/visor/init.go @@ -440,7 +440,7 @@ func initDmsgHTTPLogServer(ctx context.Context, v *Visor, log *logging.Logger) e } func initSystemSurvey(ctx context.Context, v *Visor, log *logging.Logger) error { - go visorconfig.GenerateSurvey(v.conf, log, true, v.rawSurvey) + go visorconfig.GenerateSurvey(v.conf, log, true) return nil } diff --git a/pkg/visor/visor.go b/pkg/visor/visor.go index bf6c898870..366f09ab52 100644 --- a/pkg/visor/visor.go +++ b/pkg/visor/visor.go @@ -116,9 +116,6 @@ type Visor struct { pingConns map[cipher.PubKey]ping pingConnMx *sync.Mutex pingPcktSize int - - rawSurvey bool - logStorePath string } @@ -261,7 +258,6 @@ func NewVisor(ctx context.Context, conf *visorconfig.V1) (*Visor, bool) { pingConns: make(map[cipher.PubKey]ping), pingConnMx: new(sync.Mutex), allowedPorts: make(map[int]bool), - rawSurvey: rawSurvey, } v.isServicesHealthy.init() diff --git a/pkg/visor/visorconfig/survey.go b/pkg/visor/visorconfig/survey.go index c0914779f6..aba5b934a4 100644 --- a/pkg/visor/visorconfig/survey.go +++ b/pkg/visor/visorconfig/survey.go @@ -7,7 +7,6 @@ import ( "strings" "time" - "github.com/ProtonMail/gopenpgp/v2/helper" coincipher "github.com/skycoin/skycoin/src/cipher" "github.com/skycoin/skywire-utilities/pkg/logging" @@ -15,7 +14,7 @@ import ( ) // GenerateSurvey generate survey handler -func GenerateSurvey(conf *V1, log *logging.Logger, routine, rawSurvey bool) { +func GenerateSurvey(conf *V1, log *logging.Logger, routine bool) { if IsRoot() { for { //check for valid reward address set as prerequisite for generating the system survey @@ -46,32 +45,10 @@ func GenerateSurvey(conf *V1, log *logging.Logger, routine, rawSurvey bool) { return } - if rawSurvey { - err = os.WriteFile(conf.LocalPath+"/"+NodeInfo, []byte(s), 0644) //nolint - if err != nil { - log.WithError(err).Error("Failed to write system hardware survey to file.") - return - } - } else { - skycoinKeyPath := SkywirePath + "/" + SkycoinKeyName - skycoinKey, err := os.ReadFile(skycoinKeyPath) - if err != nil { - log.WithError(err).Error("Could not find skycoin key.") - return - } - - skycoinKeyString := string(skycoinKey) - encryptedNodeInfo, err := helper.EncryptBinaryMessageArmored(skycoinKeyString, s) - if err != nil { - log.WithError(err).Error("Could not encrypt survey.") - return - } - - err = os.WriteFile(conf.LocalPath+"/"+NodeInfo, []byte(encryptedNodeInfo), 0644) //nolint - if err != nil { - log.WithError(err).Error("Failed to write system hardware survey to file.") - return - } + err = os.WriteFile(conf.LocalPath+"/"+NodeInfo, []byte(s), 0644) //nolint + if err != nil { + log.WithError(err).Error("Failed to write system hardware survey to file.") + return } log.Info("Generating system survey") } else { diff --git a/vendor/github.com/ProtonMail/go-crypto/AUTHORS b/vendor/github.com/ProtonMail/go-crypto/AUTHORS deleted file mode 100644 index 2b00ddba0d..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at https://tip.golang.org/AUTHORS. diff --git a/vendor/github.com/ProtonMail/go-crypto/CONTRIBUTORS b/vendor/github.com/ProtonMail/go-crypto/CONTRIBUTORS deleted file mode 100644 index 1fbd3e976f..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at https://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/github.com/ProtonMail/go-crypto/LICENSE b/vendor/github.com/ProtonMail/go-crypto/LICENSE deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -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. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -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 THE COPYRIGHT -OWNER OR CONTRIBUTORS 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. diff --git a/vendor/github.com/ProtonMail/go-crypto/PATENTS b/vendor/github.com/ProtonMail/go-crypto/PATENTS deleted file mode 100644 index 733099041f..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/PATENTS +++ /dev/null @@ -1,22 +0,0 @@ -Additional IP Rights Grant (Patents) - -"This implementation" means the copyrightable works distributed by -Google as part of the Go project. - -Google hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) -patent license to make, have made, use, offer to sell, sell, import, -transfer and otherwise run, modify and propagate the contents of this -implementation of Go, where such license applies only to those patent -claims, both currently owned or controlled by Google and acquired in -the future, licensable by Google that are necessarily infringed by this -implementation of Go. This grant does not include claims that would be -infringed only as a consequence of further modification of this -implementation. If you or your agent or exclusive licensee institute or -order or agree to the institution of patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging -that this implementation of Go or any code incorporated within this -implementation of Go constitutes direct or contributory patent -infringement, or inducement of patent infringement, then any patent -rights granted to you under this License for this implementation of Go -shall terminate as of the date such litigation is filed. diff --git a/vendor/github.com/ProtonMail/go-crypto/bitcurves/bitcurve.go b/vendor/github.com/ProtonMail/go-crypto/bitcurves/bitcurve.go deleted file mode 100644 index 3ed3f43573..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/bitcurves/bitcurve.go +++ /dev/null @@ -1,381 +0,0 @@ -package bitcurves - -// Copyright 2010 The Go Authors. All rights reserved. -// Copyright 2011 ThePiachu. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package bitelliptic implements several Koblitz elliptic curves over prime -// fields. - -// This package operates, internally, on Jacobian coordinates. For a given -// (x, y) position on the curve, the Jacobian coordinates are (x1, y1, z1) -// where x = x1/z1² and y = y1/z1³. The greatest speedups come when the whole -// calculation can be performed within the transform (as in ScalarMult and -// ScalarBaseMult). But even for Add and Double, it's faster to apply and -// reverse the transform than to operate in affine coordinates. - -import ( - "crypto/elliptic" - "io" - "math/big" - "sync" -) - -// A BitCurve represents a Koblitz Curve with a=0. -// See http://www.hyperelliptic.org/EFD/g1p/auto-shortw.html -type BitCurve struct { - Name string - P *big.Int // the order of the underlying field - N *big.Int // the order of the base point - B *big.Int // the constant of the BitCurve equation - Gx, Gy *big.Int // (x,y) of the base point - BitSize int // the size of the underlying field -} - -// Params returns the parameters of the given BitCurve (see BitCurve struct) -func (bitCurve *BitCurve) Params() (cp *elliptic.CurveParams) { - cp = new(elliptic.CurveParams) - cp.Name = bitCurve.Name - cp.P = bitCurve.P - cp.N = bitCurve.N - cp.Gx = bitCurve.Gx - cp.Gy = bitCurve.Gy - cp.BitSize = bitCurve.BitSize - return cp -} - -// IsOnCurve returns true if the given (x,y) lies on the BitCurve. -func (bitCurve *BitCurve) IsOnCurve(x, y *big.Int) bool { - // y² = x³ + b - y2 := new(big.Int).Mul(y, y) //y² - y2.Mod(y2, bitCurve.P) //y²%P - - x3 := new(big.Int).Mul(x, x) //x² - x3.Mul(x3, x) //x³ - - x3.Add(x3, bitCurve.B) //x³+B - x3.Mod(x3, bitCurve.P) //(x³+B)%P - - return x3.Cmp(y2) == 0 -} - -// affineFromJacobian reverses the Jacobian transform. See the comment at the -// top of the file. -func (bitCurve *BitCurve) affineFromJacobian(x, y, z *big.Int) (xOut, yOut *big.Int) { - if z.Cmp(big.NewInt(0)) == 0 { - panic("bitcurve: Can't convert to affine with Jacobian Z = 0") - } - // x = YZ^2 mod P - zinv := new(big.Int).ModInverse(z, bitCurve.P) - zinvsq := new(big.Int).Mul(zinv, zinv) - - xOut = new(big.Int).Mul(x, zinvsq) - xOut.Mod(xOut, bitCurve.P) - // y = YZ^3 mod P - zinvsq.Mul(zinvsq, zinv) - yOut = new(big.Int).Mul(y, zinvsq) - yOut.Mod(yOut, bitCurve.P) - return xOut, yOut -} - -// Add returns the sum of (x1,y1) and (x2,y2) -func (bitCurve *BitCurve) Add(x1, y1, x2, y2 *big.Int) (*big.Int, *big.Int) { - z := new(big.Int).SetInt64(1) - x, y, z := bitCurve.addJacobian(x1, y1, z, x2, y2, z) - return bitCurve.affineFromJacobian(x, y, z) -} - -// addJacobian takes two points in Jacobian coordinates, (x1, y1, z1) and -// (x2, y2, z2) and returns their sum, also in Jacobian form. -func (bitCurve *BitCurve) addJacobian(x1, y1, z1, x2, y2, z2 *big.Int) (*big.Int, *big.Int, *big.Int) { - // See http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#addition-add-2007-bl - z1z1 := new(big.Int).Mul(z1, z1) - z1z1.Mod(z1z1, bitCurve.P) - z2z2 := new(big.Int).Mul(z2, z2) - z2z2.Mod(z2z2, bitCurve.P) - - u1 := new(big.Int).Mul(x1, z2z2) - u1.Mod(u1, bitCurve.P) - u2 := new(big.Int).Mul(x2, z1z1) - u2.Mod(u2, bitCurve.P) - h := new(big.Int).Sub(u2, u1) - if h.Sign() == -1 { - h.Add(h, bitCurve.P) - } - i := new(big.Int).Lsh(h, 1) - i.Mul(i, i) - j := new(big.Int).Mul(h, i) - - s1 := new(big.Int).Mul(y1, z2) - s1.Mul(s1, z2z2) - s1.Mod(s1, bitCurve.P) - s2 := new(big.Int).Mul(y2, z1) - s2.Mul(s2, z1z1) - s2.Mod(s2, bitCurve.P) - r := new(big.Int).Sub(s2, s1) - if r.Sign() == -1 { - r.Add(r, bitCurve.P) - } - r.Lsh(r, 1) - v := new(big.Int).Mul(u1, i) - - x3 := new(big.Int).Set(r) - x3.Mul(x3, x3) - x3.Sub(x3, j) - x3.Sub(x3, v) - x3.Sub(x3, v) - x3.Mod(x3, bitCurve.P) - - y3 := new(big.Int).Set(r) - v.Sub(v, x3) - y3.Mul(y3, v) - s1.Mul(s1, j) - s1.Lsh(s1, 1) - y3.Sub(y3, s1) - y3.Mod(y3, bitCurve.P) - - z3 := new(big.Int).Add(z1, z2) - z3.Mul(z3, z3) - z3.Sub(z3, z1z1) - if z3.Sign() == -1 { - z3.Add(z3, bitCurve.P) - } - z3.Sub(z3, z2z2) - if z3.Sign() == -1 { - z3.Add(z3, bitCurve.P) - } - z3.Mul(z3, h) - z3.Mod(z3, bitCurve.P) - - return x3, y3, z3 -} - -// Double returns 2*(x,y) -func (bitCurve *BitCurve) Double(x1, y1 *big.Int) (*big.Int, *big.Int) { - z1 := new(big.Int).SetInt64(1) - return bitCurve.affineFromJacobian(bitCurve.doubleJacobian(x1, y1, z1)) -} - -// doubleJacobian takes a point in Jacobian coordinates, (x, y, z), and -// returns its double, also in Jacobian form. -func (bitCurve *BitCurve) doubleJacobian(x, y, z *big.Int) (*big.Int, *big.Int, *big.Int) { - // See http://hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#doubling-dbl-2009-l - - a := new(big.Int).Mul(x, x) //X1² - b := new(big.Int).Mul(y, y) //Y1² - c := new(big.Int).Mul(b, b) //B² - - d := new(big.Int).Add(x, b) //X1+B - d.Mul(d, d) //(X1+B)² - d.Sub(d, a) //(X1+B)²-A - d.Sub(d, c) //(X1+B)²-A-C - d.Mul(d, big.NewInt(2)) //2*((X1+B)²-A-C) - - e := new(big.Int).Mul(big.NewInt(3), a) //3*A - f := new(big.Int).Mul(e, e) //E² - - x3 := new(big.Int).Mul(big.NewInt(2), d) //2*D - x3.Sub(f, x3) //F-2*D - x3.Mod(x3, bitCurve.P) - - y3 := new(big.Int).Sub(d, x3) //D-X3 - y3.Mul(e, y3) //E*(D-X3) - y3.Sub(y3, new(big.Int).Mul(big.NewInt(8), c)) //E*(D-X3)-8*C - y3.Mod(y3, bitCurve.P) - - z3 := new(big.Int).Mul(y, z) //Y1*Z1 - z3.Mul(big.NewInt(2), z3) //3*Y1*Z1 - z3.Mod(z3, bitCurve.P) - - return x3, y3, z3 -} - -//TODO: double check if it is okay -// ScalarMult returns k*(Bx,By) where k is a number in big-endian form. -func (bitCurve *BitCurve) ScalarMult(Bx, By *big.Int, k []byte) (*big.Int, *big.Int) { - // We have a slight problem in that the identity of the group (the - // point at infinity) cannot be represented in (x, y) form on a finite - // machine. Thus the standard add/double algorithm has to be tweaked - // slightly: our initial state is not the identity, but x, and we - // ignore the first true bit in |k|. If we don't find any true bits in - // |k|, then we return nil, nil, because we cannot return the identity - // element. - - Bz := new(big.Int).SetInt64(1) - x := Bx - y := By - z := Bz - - seenFirstTrue := false - for _, byte := range k { - for bitNum := 0; bitNum < 8; bitNum++ { - if seenFirstTrue { - x, y, z = bitCurve.doubleJacobian(x, y, z) - } - if byte&0x80 == 0x80 { - if !seenFirstTrue { - seenFirstTrue = true - } else { - x, y, z = bitCurve.addJacobian(Bx, By, Bz, x, y, z) - } - } - byte <<= 1 - } - } - - if !seenFirstTrue { - return nil, nil - } - - return bitCurve.affineFromJacobian(x, y, z) -} - -// ScalarBaseMult returns k*G, where G is the base point of the group and k is -// an integer in big-endian form. -func (bitCurve *BitCurve) ScalarBaseMult(k []byte) (*big.Int, *big.Int) { - return bitCurve.ScalarMult(bitCurve.Gx, bitCurve.Gy, k) -} - -var mask = []byte{0xff, 0x1, 0x3, 0x7, 0xf, 0x1f, 0x3f, 0x7f} - -//TODO: double check if it is okay -// GenerateKey returns a public/private key pair. The private key is generated -// using the given reader, which must return random data. -func (bitCurve *BitCurve) GenerateKey(rand io.Reader) (priv []byte, x, y *big.Int, err error) { - byteLen := (bitCurve.BitSize + 7) >> 3 - priv = make([]byte, byteLen) - - for x == nil { - _, err = io.ReadFull(rand, priv) - if err != nil { - return - } - // We have to mask off any excess bits in the case that the size of the - // underlying field is not a whole number of bytes. - priv[0] &= mask[bitCurve.BitSize%8] - // This is because, in tests, rand will return all zeros and we don't - // want to get the point at infinity and loop forever. - priv[1] ^= 0x42 - x, y = bitCurve.ScalarBaseMult(priv) - } - return -} - -// Marshal converts a point into the form specified in section 4.3.6 of ANSI -// X9.62. -func (bitCurve *BitCurve) Marshal(x, y *big.Int) []byte { - byteLen := (bitCurve.BitSize + 7) >> 3 - - ret := make([]byte, 1+2*byteLen) - ret[0] = 4 // uncompressed point - - xBytes := x.Bytes() - copy(ret[1+byteLen-len(xBytes):], xBytes) - yBytes := y.Bytes() - copy(ret[1+2*byteLen-len(yBytes):], yBytes) - return ret -} - -// Unmarshal converts a point, serialised by Marshal, into an x, y pair. On -// error, x = nil. -func (bitCurve *BitCurve) Unmarshal(data []byte) (x, y *big.Int) { - byteLen := (bitCurve.BitSize + 7) >> 3 - if len(data) != 1+2*byteLen { - return - } - if data[0] != 4 { // uncompressed form - return - } - x = new(big.Int).SetBytes(data[1 : 1+byteLen]) - y = new(big.Int).SetBytes(data[1+byteLen:]) - return -} - -//curve parameters taken from: -//http://www.secg.org/collateral/sec2_final.pdf - -var initonce sync.Once -var secp160k1 *BitCurve -var secp192k1 *BitCurve -var secp224k1 *BitCurve -var secp256k1 *BitCurve - -func initAll() { - initS160() - initS192() - initS224() - initS256() -} - -func initS160() { - // See SEC 2 section 2.4.1 - secp160k1 = new(BitCurve) - secp160k1.Name = "secp160k1" - secp160k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73", 16) - secp160k1.N, _ = new(big.Int).SetString("0100000000000000000001B8FA16DFAB9ACA16B6B3", 16) - secp160k1.B, _ = new(big.Int).SetString("0000000000000000000000000000000000000007", 16) - secp160k1.Gx, _ = new(big.Int).SetString("3B4C382CE37AA192A4019E763036F4F5DD4D7EBB", 16) - secp160k1.Gy, _ = new(big.Int).SetString("938CF935318FDCED6BC28286531733C3F03C4FEE", 16) - secp160k1.BitSize = 160 -} - -func initS192() { - // See SEC 2 section 2.5.1 - secp192k1 = new(BitCurve) - secp192k1.Name = "secp192k1" - secp192k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37", 16) - secp192k1.N, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D", 16) - secp192k1.B, _ = new(big.Int).SetString("000000000000000000000000000000000000000000000003", 16) - secp192k1.Gx, _ = new(big.Int).SetString("DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D", 16) - secp192k1.Gy, _ = new(big.Int).SetString("9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D", 16) - secp192k1.BitSize = 192 -} - -func initS224() { - // See SEC 2 section 2.6.1 - secp224k1 = new(BitCurve) - secp224k1.Name = "secp224k1" - secp224k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D", 16) - secp224k1.N, _ = new(big.Int).SetString("010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7", 16) - secp224k1.B, _ = new(big.Int).SetString("00000000000000000000000000000000000000000000000000000005", 16) - secp224k1.Gx, _ = new(big.Int).SetString("A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C", 16) - secp224k1.Gy, _ = new(big.Int).SetString("7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5", 16) - secp224k1.BitSize = 224 -} - -func initS256() { - // See SEC 2 section 2.7.1 - secp256k1 = new(BitCurve) - secp256k1.Name = "secp256k1" - secp256k1.P, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F", 16) - secp256k1.N, _ = new(big.Int).SetString("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", 16) - secp256k1.B, _ = new(big.Int).SetString("0000000000000000000000000000000000000000000000000000000000000007", 16) - secp256k1.Gx, _ = new(big.Int).SetString("79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798", 16) - secp256k1.Gy, _ = new(big.Int).SetString("483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8", 16) - secp256k1.BitSize = 256 -} - -// S160 returns a BitCurve which implements secp160k1 (see SEC 2 section 2.4.1) -func S160() *BitCurve { - initonce.Do(initAll) - return secp160k1 -} - -// S192 returns a BitCurve which implements secp192k1 (see SEC 2 section 2.5.1) -func S192() *BitCurve { - initonce.Do(initAll) - return secp192k1 -} - -// S224 returns a BitCurve which implements secp224k1 (see SEC 2 section 2.6.1) -func S224() *BitCurve { - initonce.Do(initAll) - return secp224k1 -} - -// S256 returns a BitCurve which implements bitcurves (see SEC 2 section 2.7.1) -func S256() *BitCurve { - initonce.Do(initAll) - return secp256k1 -} diff --git a/vendor/github.com/ProtonMail/go-crypto/brainpool/brainpool.go b/vendor/github.com/ProtonMail/go-crypto/brainpool/brainpool.go deleted file mode 100644 index cb6676de24..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/brainpool/brainpool.go +++ /dev/null @@ -1,134 +0,0 @@ -// Package brainpool implements Brainpool elliptic curves. -// Implementation of rcurves is from github.com/ebfe/brainpool -// Note that these curves are implemented with naive, non-constant time operations -// and are likely not suitable for environments where timing attacks are a concern. -package brainpool - -import ( - "crypto/elliptic" - "math/big" - "sync" -) - -var ( - once sync.Once - p256t1, p384t1, p512t1 *elliptic.CurveParams - p256r1, p384r1, p512r1 *rcurve -) - -func initAll() { - initP256t1() - initP384t1() - initP512t1() - initP256r1() - initP384r1() - initP512r1() -} - -func initP256t1() { - p256t1 = &elliptic.CurveParams{Name: "brainpoolP256t1"} - p256t1.P, _ = new(big.Int).SetString("A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377", 16) - p256t1.N, _ = new(big.Int).SetString("A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7", 16) - p256t1.B, _ = new(big.Int).SetString("662C61C430D84EA4FE66A7733D0B76B7BF93EBC4AF2F49256AE58101FEE92B04", 16) - p256t1.Gx, _ = new(big.Int).SetString("A3E8EB3CC1CFE7B7732213B23A656149AFA142C47AAFBC2B79A191562E1305F4", 16) - p256t1.Gy, _ = new(big.Int).SetString("2D996C823439C56D7F7B22E14644417E69BCB6DE39D027001DABE8F35B25C9BE", 16) - p256t1.BitSize = 256 -} - -func initP256r1() { - twisted := p256t1 - params := &elliptic.CurveParams{ - Name: "brainpoolP256r1", - P: twisted.P, - N: twisted.N, - BitSize: twisted.BitSize, - } - params.Gx, _ = new(big.Int).SetString("8BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262", 16) - params.Gy, _ = new(big.Int).SetString("547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997", 16) - z, _ := new(big.Int).SetString("3E2D4BD9597B58639AE7AA669CAB9837CF5CF20A2C852D10F655668DFC150EF0", 16) - p256r1 = newrcurve(twisted, params, z) -} - -func initP384t1() { - p384t1 = &elliptic.CurveParams{Name: "brainpoolP384t1"} - p384t1.P, _ = new(big.Int).SetString("8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B412B1DA197FB71123ACD3A729901D1A71874700133107EC53", 16) - p384t1.N, _ = new(big.Int).SetString("8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC3103B883202E9046565", 16) - p384t1.B, _ = new(big.Int).SetString("7F519EADA7BDA81BD826DBA647910F8C4B9346ED8CCDC64E4B1ABD11756DCE1D2074AA263B88805CED70355A33B471EE", 16) - p384t1.Gx, _ = new(big.Int).SetString("18DE98B02DB9A306F2AFCD7235F72A819B80AB12EBD653172476FECD462AABFFC4FF191B946A5F54D8D0AA2F418808CC", 16) - p384t1.Gy, _ = new(big.Int).SetString("25AB056962D30651A114AFD2755AD336747F93475B7A1FCA3B88F2B6A208CCFE469408584DC2B2912675BF5B9E582928", 16) - p384t1.BitSize = 384 -} - -func initP384r1() { - twisted := p384t1 - params := &elliptic.CurveParams{ - Name: "brainpoolP384r1", - P: twisted.P, - N: twisted.N, - BitSize: twisted.BitSize, - } - params.Gx, _ = new(big.Int).SetString("1D1C64F068CF45FFA2A63A81B7C13F6B8847A3E77EF14FE3DB7FCAFE0CBD10E8E826E03436D646AAEF87B2E247D4AF1E", 16) - params.Gy, _ = new(big.Int).SetString("8ABE1D7520F9C2A45CB1EB8E95CFD55262B70B29FEEC5864E19C054FF99129280E4646217791811142820341263C5315", 16) - z, _ := new(big.Int).SetString("41DFE8DD399331F7166A66076734A89CD0D2BCDB7D068E44E1F378F41ECBAE97D2D63DBC87BCCDDCCC5DA39E8589291C", 16) - p384r1 = newrcurve(twisted, params, z) -} - -func initP512t1() { - p512t1 = &elliptic.CurveParams{Name: "brainpoolP512t1"} - p512t1.P, _ = new(big.Int).SetString("AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA703308717D4D9B009BC66842AECDA12AE6A380E62881FF2F2D82C68528AA6056583A48F3", 16) - p512t1.N, _ = new(big.Int).SetString("AADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA92619418661197FAC10471DB1D381085DDADDB58796829CA90069", 16) - p512t1.B, _ = new(big.Int).SetString("7CBBBCF9441CFAB76E1890E46884EAE321F70C0BCB4981527897504BEC3E36A62BCDFA2304976540F6450085F2DAE145C22553B465763689180EA2571867423E", 16) - p512t1.Gx, _ = new(big.Int).SetString("640ECE5C12788717B9C1BA06CBC2A6FEBA85842458C56DDE9DB1758D39C0313D82BA51735CDB3EA499AA77A7D6943A64F7A3F25FE26F06B51BAA2696FA9035DA", 16) - p512t1.Gy, _ = new(big.Int).SetString("5B534BD595F5AF0FA2C892376C84ACE1BB4E3019B71634C01131159CAE03CEE9D9932184BEEF216BD71DF2DADF86A627306ECFF96DBB8BACE198B61E00F8B332", 16) - p512t1.BitSize = 512 -} - -func initP512r1() { - twisted := p512t1 - params := &elliptic.CurveParams{ - Name: "brainpoolP512r1", - P: twisted.P, - N: twisted.N, - BitSize: twisted.BitSize, - } - params.Gx, _ = new(big.Int).SetString("81AEE4BDD82ED9645A21322E9C4C6A9385ED9F70B5D916C1B43B62EEF4D0098EFF3B1F78E2D0D48D50D1687B93B97D5F7C6D5047406A5E688B352209BCB9F822", 16) - params.Gy, _ = new(big.Int).SetString("7DDE385D566332ECC0EABFA9CF7822FDF209F70024A57B1AA000C55B881F8111B2DCDE494A5F485E5BCA4BD88A2763AED1CA2B2FA8F0540678CD1E0F3AD80892", 16) - z, _ := new(big.Int).SetString("12EE58E6764838B69782136F0F2D3BA06E27695716054092E60A80BEDB212B64E585D90BCE13761F85C3F1D2A64E3BE8FEA2220F01EBA5EEB0F35DBD29D922AB", 16) - p512r1 = newrcurve(twisted, params, z) -} - -// P256t1 returns a Curve which implements Brainpool P256t1 (see RFC 5639, section 3.4) -func P256t1() elliptic.Curve { - once.Do(initAll) - return p256t1 -} - -// P256r1 returns a Curve which implements Brainpool P256r1 (see RFC 5639, section 3.4) -func P256r1() elliptic.Curve { - once.Do(initAll) - return p256r1 -} - -// P384t1 returns a Curve which implements Brainpool P384t1 (see RFC 5639, section 3.6) -func P384t1() elliptic.Curve { - once.Do(initAll) - return p384t1 -} - -// P384r1 returns a Curve which implements Brainpool P384r1 (see RFC 5639, section 3.6) -func P384r1() elliptic.Curve { - once.Do(initAll) - return p384r1 -} - -// P512t1 returns a Curve which implements Brainpool P512t1 (see RFC 5639, section 3.7) -func P512t1() elliptic.Curve { - once.Do(initAll) - return p512t1 -} - -// P512r1 returns a Curve which implements Brainpool P512r1 (see RFC 5639, section 3.7) -func P512r1() elliptic.Curve { - once.Do(initAll) - return p512r1 -} diff --git a/vendor/github.com/ProtonMail/go-crypto/brainpool/rcurve.go b/vendor/github.com/ProtonMail/go-crypto/brainpool/rcurve.go deleted file mode 100644 index 2d5355085f..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/brainpool/rcurve.go +++ /dev/null @@ -1,83 +0,0 @@ -package brainpool - -import ( - "crypto/elliptic" - "math/big" -) - -var _ elliptic.Curve = (*rcurve)(nil) - -type rcurve struct { - twisted elliptic.Curve - params *elliptic.CurveParams - z *big.Int - zinv *big.Int - z2 *big.Int - z3 *big.Int - zinv2 *big.Int - zinv3 *big.Int -} - -var ( - two = big.NewInt(2) - three = big.NewInt(3) -) - -func newrcurve(twisted elliptic.Curve, params *elliptic.CurveParams, z *big.Int) *rcurve { - zinv := new(big.Int).ModInverse(z, params.P) - return &rcurve{ - twisted: twisted, - params: params, - z: z, - zinv: zinv, - z2: new(big.Int).Exp(z, two, params.P), - z3: new(big.Int).Exp(z, three, params.P), - zinv2: new(big.Int).Exp(zinv, two, params.P), - zinv3: new(big.Int).Exp(zinv, three, params.P), - } -} - -func (curve *rcurve) toTwisted(x, y *big.Int) (*big.Int, *big.Int) { - var tx, ty big.Int - tx.Mul(x, curve.z2) - tx.Mod(&tx, curve.params.P) - ty.Mul(y, curve.z3) - ty.Mod(&ty, curve.params.P) - return &tx, &ty -} - -func (curve *rcurve) fromTwisted(tx, ty *big.Int) (*big.Int, *big.Int) { - var x, y big.Int - x.Mul(tx, curve.zinv2) - x.Mod(&x, curve.params.P) - y.Mul(ty, curve.zinv3) - y.Mod(&y, curve.params.P) - return &x, &y -} - -func (curve *rcurve) Params() *elliptic.CurveParams { - return curve.params -} - -func (curve *rcurve) IsOnCurve(x, y *big.Int) bool { - return curve.twisted.IsOnCurve(curve.toTwisted(x, y)) -} - -func (curve *rcurve) Add(x1, y1, x2, y2 *big.Int) (x, y *big.Int) { - tx1, ty1 := curve.toTwisted(x1, y1) - tx2, ty2 := curve.toTwisted(x2, y2) - return curve.fromTwisted(curve.twisted.Add(tx1, ty1, tx2, ty2)) -} - -func (curve *rcurve) Double(x1, y1 *big.Int) (x, y *big.Int) { - return curve.fromTwisted(curve.twisted.Double(curve.toTwisted(x1, y1))) -} - -func (curve *rcurve) ScalarMult(x1, y1 *big.Int, scalar []byte) (x, y *big.Int) { - tx1, ty1 := curve.toTwisted(x1, y1) - return curve.fromTwisted(curve.twisted.ScalarMult(tx1, ty1, scalar)) -} - -func (curve *rcurve) ScalarBaseMult(scalar []byte) (x, y *big.Int) { - return curve.fromTwisted(curve.twisted.ScalarBaseMult(scalar)) -} \ No newline at end of file diff --git a/vendor/github.com/ProtonMail/go-crypto/eax/eax.go b/vendor/github.com/ProtonMail/go-crypto/eax/eax.go deleted file mode 100644 index 6b6bc7aed0..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/eax/eax.go +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright (C) 2019 ProtonTech AG - -// Package eax provides an implementation of the EAX -// (encrypt-authenticate-translate) mode of operation, as described in -// Bellare, Rogaway, and Wagner "THE EAX MODE OF OPERATION: A TWO-PASS -// AUTHENTICATED-ENCRYPTION SCHEME OPTIMIZED FOR SIMPLICITY AND EFFICIENCY." -// In FSE'04, volume 3017 of LNCS, 2004 -package eax - -import ( - "crypto/cipher" - "crypto/subtle" - "errors" - "github.com/ProtonMail/go-crypto/internal/byteutil" -) - -const ( - defaultTagSize = 16 - defaultNonceSize = 16 -) - -type eax struct { - block cipher.Block // Only AES-{128, 192, 256} supported - tagSize int // At least 12 bytes recommended - nonceSize int -} - -func (e *eax) NonceSize() int { - return e.nonceSize -} - -func (e *eax) Overhead() int { - return e.tagSize -} - -// NewEAX returns an EAX instance with AES-{KEYLENGTH} and default nonce and -// tag lengths. Supports {128, 192, 256}- bit key length. -func NewEAX(block cipher.Block) (cipher.AEAD, error) { - return NewEAXWithNonceAndTagSize(block, defaultNonceSize, defaultTagSize) -} - -// NewEAXWithNonceAndTagSize returns an EAX instance with AES-{keyLength} and -// given nonce and tag lengths in bytes. Panics on zero nonceSize and -// exceedingly long tags. -// -// It is recommended to use at least 12 bytes as tag length (see, for instance, -// NIST SP 800-38D). -// -// Only to be used for compatibility with existing cryptosystems with -// non-standard parameters. For all other cases, prefer NewEAX. -func NewEAXWithNonceAndTagSize( - block cipher.Block, nonceSize, tagSize int) (cipher.AEAD, error) { - if nonceSize < 1 { - return nil, eaxError("Cannot initialize EAX with nonceSize = 0") - } - if tagSize > block.BlockSize() { - return nil, eaxError("Custom tag length exceeds blocksize") - } - return &eax{ - block: block, - tagSize: tagSize, - nonceSize: nonceSize, - }, nil -} - -func (e *eax) Seal(dst, nonce, plaintext, adata []byte) []byte { - if len(nonce) > e.nonceSize { - panic("crypto/eax: Nonce too long for this instance") - } - ret, out := byteutil.SliceForAppend(dst, len(plaintext) + e.tagSize) - omacNonce := e.omacT(0, nonce) - omacAdata := e.omacT(1, adata) - - // Encrypt message using CTR mode and omacNonce as IV - ctr := cipher.NewCTR(e.block, omacNonce) - ciphertextData := out[:len(plaintext)] - ctr.XORKeyStream(ciphertextData, plaintext) - - omacCiphertext := e.omacT(2, ciphertextData) - - tag := out[len(plaintext):] - for i := 0; i < e.tagSize; i++ { - tag[i] = omacCiphertext[i] ^ omacNonce[i] ^ omacAdata[i] - } - return ret -} - -func (e* eax) Open(dst, nonce, ciphertext, adata []byte) ([]byte, error) { - if len(nonce) > e.nonceSize { - panic("crypto/eax: Nonce too long for this instance") - } - if len(ciphertext) < e.tagSize { - return nil, eaxError("Ciphertext shorter than tag length") - } - sep := len(ciphertext) - e.tagSize - - // Compute tag - omacNonce := e.omacT(0, nonce) - omacAdata := e.omacT(1, adata) - omacCiphertext := e.omacT(2, ciphertext[:sep]) - - tag := make([]byte, e.tagSize) - for i := 0; i < e.tagSize; i++ { - tag[i] = omacCiphertext[i] ^ omacNonce[i] ^ omacAdata[i] - } - - // Compare tags - if subtle.ConstantTimeCompare(ciphertext[sep:], tag) != 1 { - return nil, eaxError("Tag authentication failed") - } - - // Decrypt ciphertext - ret, out := byteutil.SliceForAppend(dst, len(ciphertext)) - ctr := cipher.NewCTR(e.block, omacNonce) - ctr.XORKeyStream(out, ciphertext[:sep]) - - return ret[:sep], nil -} - -// Tweakable OMAC - Calls OMAC_K([t]_n || plaintext) -func (e *eax) omacT(t byte, plaintext []byte) []byte { - blockSize := e.block.BlockSize() - byteT := make([]byte, blockSize) - byteT[blockSize-1] = t - concat := append(byteT, plaintext...) - return e.omac(concat) -} - -func (e *eax) omac(plaintext []byte) []byte { - blockSize := e.block.BlockSize() - // L ← E_K(0^n); B ← 2L; P ← 4L - L := make([]byte, blockSize) - e.block.Encrypt(L, L) - B := byteutil.GfnDouble(L) - P := byteutil.GfnDouble(B) - - // CBC with IV = 0 - cbc := cipher.NewCBCEncrypter(e.block, make([]byte, blockSize)) - padded := e.pad(plaintext, B, P) - cbcCiphertext := make([]byte, len(padded)) - cbc.CryptBlocks(cbcCiphertext, padded) - - return cbcCiphertext[len(cbcCiphertext)-blockSize:] -} - -func (e *eax) pad(plaintext, B, P []byte) []byte { - // if |M| in {n, 2n, 3n, ...} - blockSize := e.block.BlockSize() - if len(plaintext) != 0 && len(plaintext)%blockSize == 0 { - return byteutil.RightXor(plaintext, B) - } - - // else return (M || 1 || 0^(n−1−(|M| % n))) xor→ P - ending := make([]byte, blockSize-len(plaintext)%blockSize) - ending[0] = 0x80 - padded := append(plaintext, ending...) - return byteutil.RightXor(padded, P) -} - -func eaxError(err string) error { - return errors.New("crypto/eax: " + err) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/eax/eax_test_vectors.go b/vendor/github.com/ProtonMail/go-crypto/eax/eax_test_vectors.go deleted file mode 100644 index ddb53d0790..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/eax/eax_test_vectors.go +++ /dev/null @@ -1,58 +0,0 @@ -package eax - -// Test vectors from -// https://web.cs.ucdavis.edu/~rogaway/papers/eax.pdf -var testVectors = []struct { - msg, key, nonce, header, ciphertext string -}{ - {"", - "233952DEE4D5ED5F9B9C6D6FF80FF478", - "62EC67F9C3A4A407FCB2A8C49031A8B3", - "6BFB914FD07EAE6B", - "E037830E8389F27B025A2D6527E79D01"}, - {"F7FB", - "91945D3F4DCBEE0BF45EF52255F095A4", - "BECAF043B0A23D843194BA972C66DEBD", - "FA3BFD4806EB53FA", - "19DD5C4C9331049D0BDAB0277408F67967E5"}, - {"1A47CB4933", - "01F74AD64077F2E704C0F60ADA3DD523", - "70C3DB4F0D26368400A10ED05D2BFF5E", - "234A3463C1264AC6", - "D851D5BAE03A59F238A23E39199DC9266626C40F80"}, - {"481C9E39B1", - "D07CF6CBB7F313BDDE66B727AFD3C5E8", - "8408DFFF3C1A2B1292DC199E46B7D617", - "33CCE2EABFF5A79D", - "632A9D131AD4C168A4225D8E1FF755939974A7BEDE"}, - {"40D0C07DA5E4", - "35B6D0580005BBC12B0587124557D2C2", - "FDB6B06676EEDC5C61D74276E1F8E816", - "AEB96EAEBE2970E9", - "071DFE16C675CB0677E536F73AFE6A14B74EE49844DD"}, - {"4DE3B35C3FC039245BD1FB7D", - "BD8E6E11475E60B268784C38C62FEB22", - "6EAC5C93072D8E8513F750935E46DA1B", - "D4482D1CA78DCE0F", - "835BB4F15D743E350E728414ABB8644FD6CCB86947C5E10590210A4F"}, - {"8B0A79306C9CE7ED99DAE4F87F8DD61636", - "7C77D6E813BED5AC98BAA417477A2E7D", - "1A8C98DCD73D38393B2BF1569DEEFC19", - "65D2017990D62528", - "02083E3979DA014812F59F11D52630DA30137327D10649B0AA6E1C181DB617D7F2"}, - {"1BDA122BCE8A8DBAF1877D962B8592DD2D56", - "5FFF20CAFAB119CA2FC73549E20F5B0D", - "DDE59B97D722156D4D9AFF2BC7559826", - "54B9F04E6A09189A", - "2EC47B2C4954A489AFC7BA4897EDCDAE8CC33B60450599BD02C96382902AEF7F832A"}, - {"6CF36720872B8513F6EAB1A8A44438D5EF11", - "A4A4782BCFFD3EC5E7EF6D8C34A56123", - "B781FCF2F75FA5A8DE97A9CA48E522EC", - "899A175897561D7E", - "0DE18FD0FDD91E7AF19F1D8EE8733938B1E8E7F6D2231618102FDB7FE55FF1991700"}, - {"CA40D7446E545FFAED3BD12A740A659FFBBB3CEAB7", - "8395FCF1E95BEBD697BD010BC766AAC3", - "22E7ADD93CFC6393C57EC0B3C17D6B44", - "126735FCC320D25A", - "CB8920F87A6C75CFF39627B56E3ED197C552D295A7CFC46AFC253B4652B1AF3795B124AB6E"}, -} diff --git a/vendor/github.com/ProtonMail/go-crypto/eax/random_vectors.go b/vendor/github.com/ProtonMail/go-crypto/eax/random_vectors.go deleted file mode 100644 index 4eb19f28d9..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/eax/random_vectors.go +++ /dev/null @@ -1,131 +0,0 @@ -// These vectors include key length in {128, 192, 256}, tag size 128, and -// random nonce, header, and plaintext lengths. - -// This file was automatically generated. - -package eax - -var randomVectors = []struct { - key, nonce, header, plaintext, ciphertext string -}{ - {"DFDE093F36B0356E5A81F609786982E3", - "1D8AC604419001816905BA72B14CED7E", - "152A1517A998D7A24163FCDD146DE81AC347C8B97088F502093C1ABB8F6E33D9A219C34D7603A18B1F5ABE02E56661B7D7F67E81EC08C1302EF38D80A859486D450E94A4F26AD9E68EEBBC0C857A0FC5CF9E641D63D565A7E361BC8908F5A8DC8FD6", - "1C8EAAB71077FE18B39730A3156ADE29C5EE824C7EE86ED2A253B775603FB237116E654F6FEC588DD27F523A0E01246FE73FE348491F2A8E9ABC6CA58D663F71CDBCF4AD798BE46C42AE6EE8B599DB44A1A48D7BBBBA0F7D2750181E1C5E66967F7D57CBD30AFBDA5727", - "79E7E150934BBEBF7013F61C60462A14D8B15AF7A248AFB8A344EF021C1500E16666891D6E973D8BB56B71A371F12CA34660C4410C016982B20F547E3762A58B7BF4F20236CADCF559E2BE7D783B13723B2741FC7CDC8997D839E39A3DDD2BADB96743DD7049F1BDB0516A262869915B3F70498AFB7B191BF960"}, - {"F10619EF02E5D94D7550EB84ED364A21", - "8DC0D4F2F745BBAE835CC5574B942D20", - "FE561358F2E8DF7E1024FF1AE9A8D36EBD01352214505CB99D644777A8A1F6027FA2BDBFC529A9B91136D5F2416CFC5F0F4EC3A1AFD32BDDA23CA504C5A5CB451785FABF4DFE4CD50D817491991A60615B30286361C100A95D1712F2A45F8E374461F4CA2B", - "D7B5A971FC219631D30EFC3664AE3127D9CF3097DAD9C24AC7905D15E8D9B25B026B31D68CAE00975CDB81EB1FD96FD5E1A12E2BB83FA25F1B1D91363457657FC03875C27F2946C5", - "2F336ED42D3CC38FC61660C4CD60BA4BD438B05F5965D8B7B399D2E7167F5D34F792D318F94DB15D67463AC449E13D568CC09BFCE32A35EE3EE96A041927680AE329811811E27F2D1E8E657707AF99BA96D13A478D695D59"}, - {"429F514EFC64D98A698A9247274CFF45", - "976AA5EB072F912D126ACEBC954FEC38", - "A71D89DC5B6CEDBB7451A27C3C2CAE09126DB4C421", - "5632FE62AB1DC549D54D3BC3FC868ACCEDEFD9ECF5E9F8", - "848AE4306CA8C7F416F8707625B7F55881C0AB430353A5C967CDA2DA787F581A70E34DBEBB2385"}, - {"398138F309085F47F8457CDF53895A63", - "F8A8A7F2D28E5FFF7BBC2F24353F7A36", - "5D633C21BA7764B8855CAB586F3746E236AD486039C83C6B56EFA9C651D38A41D6B20DAEE3418BFEA44B8BD6", - "A3BBAA91920AF5E10659818B1B3B300AC79BFC129C8329E75251F73A66D3AE0128EB91D5031E0A65C329DB7D1E9C0493E268", - "D078097267606E5FB07CFB7E2B4B718172A82C6A4CEE65D549A4DFB9838003BD2FBF64A7A66988AC1A632FD88F9E9FBB57C5A78AD2E086EACBA3DB68511D81C2970A"}, - {"7A4151EBD3901B42CBA45DAFB2E931BA", - "0FC88ACEE74DD538040321C330974EB8", - "250464FB04733BAB934C59E6AD2D6AE8D662CBCFEFBE61E5A308D4211E58C4C25935B72C69107722E946BFCBF416796600542D76AEB73F2B25BF53BAF97BDEB36ED3A7A51C31E7F170EB897457E7C17571D1BA0A908954E9", - "88C41F3EBEC23FAB8A362D969CAC810FAD4F7CA6A7F7D0D44F060F92E37E1183768DD4A8C733F71C96058D362A39876D183B86C103DE", - "74A25B2182C51096D48A870D80F18E1CE15867778E34FCBA6BD7BFB3739FDCD42AD0F2D9F4EBA29085285C6048C15BCE5E5166F1F962D3337AA88E6062F05523029D0A7F0BF9"}, - {"BFB147E1CD5459424F8C0271FC0E0DC5", - "EABCC126442BF373969EA3015988CC45", - "4C0880E1D71AA2C7", - "BE1B5EC78FBF73E7A6682B21BA7E0E5D2D1C7ABE", - "5660D7C1380E2F306895B1402CB2D6C37876504276B414D120F4CF92FDDDBB293A238EA0"}, - {"595DD6F52D18BC2CA8EB4EDAA18D9FA3", - "0F84B5D36CF4BC3B863313AF3B4D2E97", - "30AE6CC5F99580F12A779D98BD379A60948020C0B6FBD5746B30BA3A15C6CD33DAF376C70A9F15B6C0EB410A93161F7958AE23", - "8EF3687A1642B070970B0B91462229D1D76ABC154D18211F7152AA9FF368", - "317C1DDB11417E5A9CC4DDE7FDFF6659A5AC4B31DE025212580A05CDAC6024D3E4AE7C2966E52B9129E9ECDBED86"}, - {"44E6F2DC8FDC778AD007137D11410F50", - "270A237AD977F7187AA6C158A0BAB24F", - "509B0F0EB12E2AA5C5BA2DE553C07FAF4CE0C9E926531AA709A3D6224FCB783ACCF1559E10B1123EBB7D52E8AB54E6B5352A9ED0D04124BF0E9D9BACFD7E32B817B2E625F5EE94A64EDE9E470DE7FE6886C19B294F9F828209FE257A78", - "8B3D7815DF25618A5D0C55A601711881483878F113A12EC36CF64900549A3199555528559DC118F789788A55FAFD944E6E99A9CA3F72F238CD3F4D88223F7A745992B3FAED1848", - "1CC00D79F7AD82FDA71B58D286E5F34D0CC4CEF30704E771CC1E50746BDF83E182B078DB27149A42BAE619DF0F85B0B1090AD55D3B4471B0D6F6ECCD09C8F876B30081F0E7537A9624F8AAF29DA85E324122EFB4D68A56"}, - {"BB7BC352A03044B4428D8DBB4B0701FDEC4649FD17B81452", - "8B4BBE26CCD9859DCD84884159D6B0A4", - "2212BEB0E78E0F044A86944CF33C8D5C80D9DBE1034BF3BCF73611835C7D3A52F5BD2D81B68FD681B68540A496EE5DA16FD8AC8824E60E1EC2042BE28FB0BFAD4E4B03596446BDD8C37D936D9B3D5295BE19F19CF5ACE1D33A46C952CE4DE5C12F92C1DD051E04AEED", - "9037234CC44FFF828FABED3A7084AF40FA7ABFF8E0C0EFB57A1CC361E18FC4FAC1AB54F3ABFE9FF77263ACE16C3A", - "A9391B805CCD956081E0B63D282BEA46E7025126F1C1631239C33E92AA6F92CD56E5A4C56F00FF9658E93D48AF4EF0EF81628E34AD4DB0CDAEDCD2A17EE7"}, - {"99C0AD703196D2F60A74E6B378B838B31F82EA861F06FC4E", - "92745C018AA708ECFEB1667E9F3F1B01", - "828C69F376C0C0EC651C67749C69577D589EE39E51404D80EBF70C8660A8F5FD375473F4A7C611D59CB546A605D67446CE2AA844135FCD78BB5FBC90222A00D42920BB1D7EEDFB0C4672554F583EF23184F89063CDECBE482367B5F9AF3ACBC3AF61392BD94CBCD9B64677", - "A879214658FD0A5B0E09836639BF82E05EC7A5EF71D4701934BDA228435C68AC3D5CEB54997878B06A655EEACEFB1345C15867E7FE6C6423660C8B88DF128EBD6BCD85118DBAE16E9252FFB204324E5C8F38CA97759BDBF3CB0083", - "51FE87996F194A2585E438B023B345439EA60D1AEBED4650CDAF48A4D4EEC4FC77DC71CC4B09D3BEEF8B7B7AF716CE2B4EFFB3AC9E6323C18AC35E0AA6E2BBBC8889490EB6226C896B0D105EAB42BFE7053CCF00ED66BA94C1BA09A792AA873F0C3B26C5C5F9A936E57B25"}, - {"7086816D00D648FB8304AA8C9E552E1B69A9955FB59B25D1", - "0F45CF7F0BF31CCEB85D9DA10F4D749F", - "93F27C60A417D9F0669E86ACC784FC8917B502DAF30A6338F11B30B94D74FEFE2F8BE1BBE2EAD10FAB7EED3C6F72B7C3ECEE1937C32ED4970A6404E139209C05", - "877F046601F3CBE4FB1491943FA29487E738F94B99AF206262A1D6FF856C9AA0B8D4D08A54370C98F8E88FA3DCC2B14C1F76D71B2A4C7963AEE8AF960464C5BEC8357AD00DC8", - "FE96906B895CE6A8E72BC72344E2C8BB3C63113D70EAFA26C299BAFE77A8A6568172EB447FB3E86648A0AF3512DEB1AAC0819F3EC553903BF28A9FB0F43411237A774BF9EE03E445D280FBB9CD12B9BAAB6EF5E52691"}, - {"062F65A896D5BF1401BADFF70E91B458E1F9BD4888CB2E4D", - "5B11EA1D6008EBB41CF892FCA5B943D1", - "BAF4FF5C8242", - "A8870E091238355984EB2F7D61A865B9170F440BFF999A5993DD41A10F4440D21FF948DDA2BF663B2E03AC3324492DC5E40262ECC6A65C07672353BE23E7FB3A9D79FF6AA38D97960905A38DECC312CB6A59E5467ECF06C311CD43ADC0B543EDF34FE8BE611F176460D5627CA51F8F8D9FED71F55C", - "B10E127A632172CF8AA7539B140D2C9C2590E6F28C3CB892FC498FCE56A34F732FBFF32E79C7B9747D9094E8635A0C084D6F0247F9768FB5FF83493799A9BEC6C39572120C40E9292C8C947AE8573462A9108C36D9D7112E6995AE5867E6C8BB387D1C5D4BEF524F391B9FD9F0A3B4BFA079E915BCD920185CFD38D114C558928BD7D47877"}, - {"38A8E45D6D705A11AF58AED5A1344896998EACF359F2E26A", - "FD82B5B31804FF47D44199B533D0CF84", - "DE454D4E62FE879F2050EE3E25853623D3E9AC52EEC1A1779A48CFAF5ECA0BFDE44749391866D1", - "B804", - "164BB965C05EBE0931A1A63293EDF9C38C27"}, - {"34C33C97C6D7A0850DA94D78A58DC61EC717CD7574833068", - "343BE00DA9483F05C14F2E9EB8EA6AE8", - "78312A43EFDE3CAE34A65796FF059A3FE15304EEA5CF1D9306949FE5BF3349D4977D4EBE76C040FE894C5949E4E4D6681153DA87FB9AC5062063CA2EA183566343362370944CE0362D25FC195E124FD60E8682E665D13F2229DDA3E4B2CB1DCA", - "CC11BB284B1153578E4A5ED9D937B869DAF00F5B1960C23455CA9CC43F486A3BE0B66254F1041F04FDF459C8640465B6E1D2CF899A381451E8E7FCB50CF87823BE77E24B132BBEEDC72E53369B275E1D8F49ECE59F4F215230AC4FE133FC80E4F634EE80BA4682B62C86", - "E7F703DC31A95E3A4919FF957836CB76C063D81702AEA4703E1C2BF30831E58C4609D626EC6810E12EAA5B930F049FF9EFC22C3E3F1EBD4A1FB285CB02A1AC5AD46B425199FC0A85670A5C4E3DAA9636C8F64C199F42F18AAC8EA7457FD377F322DD7752D7D01B946C8F0A97E6113F0D50106F319AFD291AAACE"}, - {"C6ECF7F053573E403E61B83052A343D93CBCC179D1E835BE", - "E280E13D7367042E3AA09A80111B6184", - "21486C9D7A9647", - "5F2639AFA6F17931853791CD8C92382BBB677FD72D0AB1A080D0E49BFAA21810E963E4FACD422E92F65CBFAD5884A60CD94740DF31AF02F95AA57DA0C4401B0ED906", - "5C51DB20755302070C45F52E50128A67C8B2E4ED0EACB7E29998CCE2E8C289DD5655913EC1A51CC3AABE5CDC2402B2BE7D6D4BF6945F266FBD70BA9F37109067157AE7530678B45F64475D4EBFCB5FFF46A5"}, - {"5EC6CF7401BC57B18EF154E8C38ACCA8959E57D2F3975FF5", - "656B41CB3F9CF8C08BAD7EBFC80BD225", - "6B817C2906E2AF425861A7EF59BA5801F143EE2A139EE72697CDE168B4", - "2C0E1DDC9B1E5389BA63845B18B1F8A1DB062037151BCC56EF7C21C0BB4DAE366636BBA975685D7CC5A94AFBE89C769016388C56FB7B57CE750A12B718A8BDCF70E80E8659A8330EFC8F86640F21735E8C80E23FE43ABF23507CE3F964AE4EC99D", - "ED780CF911E6D1AA8C979B889B0B9DC1ABE261832980BDBFB576901D9EF5AB8048998E31A15BE54B3E5845A4D136AD24D0BDA1C3006168DF2F8AC06729CB0818867398150020131D8F04EDF1923758C9EABB5F735DE5EA1758D4BC0ACFCA98AFD202E9839B8720253693B874C65586C6F0"}, - {"C92F678EB2208662F5BCF3403EC05F5961E957908A3E79421E1D25FC19054153", - "DA0F3A40983D92F2D4C01FED33C7A192", - "2B6E9D26DB406A0FAB47608657AA10EFC2B4AA5F459B29FF85AC9A40BFFE7AEB04F77E9A11FAAA116D7F6D4DA417671A9AB02C588E0EF59CB1BFB4B1CC931B63A3B3A159FCEC97A04D1E6F0C7E6A9CEF6B0ABB04758A69F1FE754DF4C2610E8C46B6CF413BDB31351D55BEDCB7B4A13A1C98E10984475E0F2F957853", - "F37326A80E08", - "83519E53E321D334F7C10B568183775C0E9AAE55F806"}, - {"6847E0491BE57E72995D186D50094B0B3593957A5146798FCE68B287B2FB37B5", - "3EE1182AEBB19A02B128F28E1D5F7F99", - "D9F35ABB16D776CE", - "DB7566ED8EA95BDF837F23DB277BAFBC5E70D1105ADFD0D9EF15475051B1EF94709C67DCA9F8D5", - "2CDCED0C9EBD6E2A508822A685F7DCD1CDD99E7A5FCA786C234E7F7F1D27EC49751AD5DCFA30C5EDA87C43CAE3B919B6BBCFE34C8EDA59"}, - {"82B019673642C08388D3E42075A4D5D587558C229E4AB8F660E37650C4C41A0A", - "336F5D681E0410FAE7B607246092C6DC", - "D430CBD8FE435B64214E9E9CDC5DE99D31CFCFB8C10AA0587A49DF276611", - "998404153AD77003E1737EDE93ED79859EE6DCCA93CB40C4363AA817ABF2DBBD46E42A14A7183B6CC01E12A577888141363D0AE011EB6E8D28C0B235", - "9BEF69EEB60BD3D6065707B7557F25292A8872857CFBD24F2F3C088E4450995333088DA50FD9121221C504DF1D0CD5EFE6A12666C5D5BB12282CF4C19906E9CFAB97E9BDF7F49DC17CFC384B"}, - {"747B2E269B1859F0622C15C8BAD6A725028B1F94B8DB7326948D1E6ED663A8BC", - "AB91F7245DDCE3F1C747872D47BE0A8A", - "3B03F786EF1DDD76E1D42646DA4CD2A5165DC5383CE86D1A0B5F13F910DC278A4E451EE0192CBA178E13B3BA27FDC7840DF73D2E104B", - "6B803F4701114F3E5FE21718845F8416F70F626303F545BE197189E0A2BA396F37CE06D389EB2658BC7D56D67868708F6D0D32", - "1570DDB0BCE75AA25D1957A287A2C36B1A5F2270186DA81BA6112B7F43B0F3D1D0ED072591DCF1F1C99BBB25621FC39B896FF9BD9413A2845363A9DCD310C32CF98E57"}, - {"02E59853FB29AEDA0FE1C5F19180AD99A12FF2F144670BB2B8BADF09AD812E0A", - "C691294EF67CD04D1B9242AF83DD1421", - "879334DAE3", - "1E17F46A98FEF5CBB40759D95354", - "FED8C3FF27DDF6313AED444A2985B36CBA268AAD6AAC563C0BA28F6DB5DB"}, - {"F6C1FB9B4188F2288FF03BD716023198C3582CF2A037FC2F29760916C2B7FCDB", - "4228DA0678CA3534588859E77DFF014C", - "D8153CAF35539A61DD8D05B3C9B44F01E564FB9348BCD09A1C23B84195171308861058F0A3CD2A55B912A3AAEE06FF4D356C77275828F2157C2FC7C115DA39E443210CCC56BEDB0CC99BBFB227ABD5CC454F4E7F547C7378A659EEB6A7E809101A84F866503CB18D4484E1FA09B3EC7FC75EB2E35270800AA7", - "23B660A779AD285704B12EC1C580387A47BEC7B00D452C6570", - "5AA642BBABA8E49849002A2FAF31DB8FC7773EFDD656E469CEC19B3206D4174C9A263D0A05484261F6"}, - {"8FF6086F1FADB9A3FBE245EAC52640C43B39D43F89526BB5A6EBA47710931446", - "943188480C99437495958B0AE4831AA9", - "AD5CD0BDA426F6EBA23C8EB23DC73FF9FEC173355EDBD6C9344C4C4383F211888F7CE6B29899A6801DF6B38651A7C77150941A", - "80CD5EA8D7F81DDF5070B934937912E8F541A5301877528EB41AB60C020968D459960ED8FB73083329841A", - "ABAE8EB7F36FCA2362551E72DAC890BA1BB6794797E0FC3B67426EC9372726ED4725D379EA0AC9147E48DCD0005C502863C2C5358A38817C8264B5"}, - {"A083B54E6B1FE01B65D42FCD248F97BB477A41462BBFE6FD591006C022C8FD84", - "B0490F5BD68A52459556B3749ACDF40E", - "8892E047DA5CFBBDF7F3CFCBD1BD21C6D4C80774B1826999234394BD3E513CC7C222BB40E1E3140A152F19B3802F0D036C24A590512AD0E8", - "D7B15752789DC94ED0F36778A5C7BBB207BEC32BAC66E702B39966F06E381E090C6757653C3D26A81EC6AD6C364D66867A334C91BB0B8A8A4B6EACDF0783D09010AEBA2DD2062308FE99CC1F", - "C071280A732ADC93DF272BF1E613B2BB7D46FC6665EF2DC1671F3E211D6BDE1D6ADDD28DF3AA2E47053FC8BB8AE9271EC8BC8B2CFFA320D225B451685B6D23ACEFDD241FE284F8ADC8DB07F456985B14330BBB66E0FB212213E05B3E"}, -} diff --git a/vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go b/vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go deleted file mode 100644 index a6bdf51232..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/internal/byteutil/byteutil.go +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (C) 2019 ProtonTech AG -// This file contains necessary tools for the aex and ocb packages. -// -// These functions SHOULD NOT be used elsewhere, since they are optimized for -// specific input nature in the EAX and OCB modes of operation. - -package byteutil - -// GfnDouble computes 2 * input in the field of 2^n elements. -// The irreducible polynomial in the finite field for n=128 is -// x^128 + x^7 + x^2 + x + 1 (equals 0x87) -// Constant-time execution in order to avoid side-channel attacks -func GfnDouble(input []byte) []byte { - if len(input) != 16 { - panic("Doubling in GFn only implemented for n = 128") - } - // If the first bit is zero, return 2L = L << 1 - // Else return (L << 1) xor 0^120 10000111 - shifted := ShiftBytesLeft(input) - shifted[15] ^= ((input[0] >> 7) * 0x87) - return shifted -} - -// ShiftBytesLeft outputs the byte array corresponding to x << 1 in binary. -func ShiftBytesLeft(x []byte) []byte { - l := len(x) - dst := make([]byte, l) - for i := 0; i < l-1; i++ { - dst[i] = (x[i] << 1) | (x[i+1] >> 7) - } - dst[l-1] = x[l-1] << 1 - return dst -} - -// ShiftNBytesLeft puts in dst the byte array corresponding to x << n in binary. -func ShiftNBytesLeft(dst, x []byte, n int) { - // Erase first n / 8 bytes - copy(dst, x[n/8:]) - - // Shift the remaining n % 8 bits - bits := uint(n % 8) - l := len(dst) - for i := 0; i < l-1; i++ { - dst[i] = (dst[i] << bits) | (dst[i+1] >> uint(8 - bits)) - } - dst[l-1] = dst[l-1] << bits - - // Append trailing zeroes - dst = append(dst, make([]byte, n/8)...) -} - -// XorBytesMut assumes equal input length, replaces X with X XOR Y -func XorBytesMut(X, Y []byte) { - for i := 0; i < len(X); i++ { - X[i] ^= Y[i] - } -} - - -// XorBytes assumes equal input length, puts X XOR Y into Z -func XorBytes(Z, X, Y []byte) { - for i := 0; i < len(X); i++ { - Z[i] = X[i] ^ Y[i] - } -} - -// RightXor XORs smaller input (assumed Y) at the right of the larger input (assumed X) -func RightXor(X, Y []byte) []byte { - offset := len(X) - len(Y) - xored := make([]byte, len(X)); - copy(xored, X) - for i := 0; i < len(Y); i++ { - xored[offset + i] ^= Y[i] - } - return xored -} - -// SliceForAppend takes a slice and a requested number of bytes. It returns a -// slice with the contents of the given slice followed by that many bytes and a -// second slice that aliases into it and contains only the extra bytes. If the -// original slice has sufficient capacity then no allocation is performed. -func SliceForAppend(in []byte, n int) (head, tail []byte) { - if total := len(in) + n; cap(in) >= total { - head = in[:total] - } else { - head = make([]byte, total) - copy(head, in) - } - tail = head[len(in):] - return -} - diff --git a/vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go b/vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go deleted file mode 100644 index 7f78cfa759..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/ocb/ocb.go +++ /dev/null @@ -1,317 +0,0 @@ -// Copyright (C) 2019 ProtonTech AG - -// Package ocb provides an implementation of the OCB (offset codebook) mode of -// operation, as described in RFC-7253 of the IRTF and in Rogaway, Bellare, -// Black and Krovetz - OCB: A BLOCK-CIPHER MODE OF OPERATION FOR EFFICIENT -// AUTHENTICATED ENCRYPTION (2003). -// Security considerations (from RFC-7253): A private key MUST NOT be used to -// encrypt more than 2^48 blocks. Tag length should be at least 12 bytes (a -// brute-force forging adversary succeeds after 2^{tag length} attempts). A -// single key SHOULD NOT be used to decrypt ciphertext with different tag -// lengths. Nonces need not be secret, but MUST NOT be reused. -// This package only supports underlying block ciphers with 128-bit blocks, -// such as AES-{128, 192, 256}, but may be extended to other sizes. -package ocb - -import ( - "bytes" - "crypto/cipher" - "crypto/subtle" - "errors" - "github.com/ProtonMail/go-crypto/internal/byteutil" - "math/bits" -) - -type ocb struct { - block cipher.Block - tagSize int - nonceSize int - mask mask - // Optimized en/decrypt: For each nonce N used to en/decrypt, the 'Ktop' - // internal variable can be reused for en/decrypting with nonces sharing - // all but the last 6 bits with N. The prefix of the first nonce used to - // compute the new Ktop, and the Ktop value itself, are stored in - // reusableKtop. If using incremental nonces, this saves one block cipher - // call every 63 out of 64 OCB encryptions, and stores one nonce and one - // output of the block cipher in memory only. - reusableKtop reusableKtop -} - -type mask struct { - // L_*, L_$, (L_i)_{i ∈ N} - lAst []byte - lDol []byte - L [][]byte -} - -type reusableKtop struct { - noncePrefix []byte - Ktop []byte -} - -const ( - defaultTagSize = 16 - defaultNonceSize = 15 -) - -const ( - enc = iota - dec -) - -func (o *ocb) NonceSize() int { - return o.nonceSize -} - -func (o *ocb) Overhead() int { - return o.tagSize -} - -// NewOCB returns an OCB instance with the given block cipher and default -// tag and nonce sizes. -func NewOCB(block cipher.Block) (cipher.AEAD, error) { - return NewOCBWithNonceAndTagSize(block, defaultNonceSize, defaultTagSize) -} - -// NewOCBWithNonceAndTagSize returns an OCB instance with the given block -// cipher, nonce length, and tag length. Panics on zero nonceSize and -// exceedingly long tag size. -// -// It is recommended to use at least 12 bytes as tag length. -func NewOCBWithNonceAndTagSize( - block cipher.Block, nonceSize, tagSize int) (cipher.AEAD, error) { - if block.BlockSize() != 16 { - return nil, ocbError("Block cipher must have 128-bit blocks") - } - if nonceSize < 1 { - return nil, ocbError("Incorrect nonce length") - } - if nonceSize >= block.BlockSize() { - return nil, ocbError("Nonce length exceeds blocksize - 1") - } - if tagSize > block.BlockSize() { - return nil, ocbError("Custom tag length exceeds blocksize") - } - return &ocb{ - block: block, - tagSize: tagSize, - nonceSize: nonceSize, - mask: initializeMaskTable(block), - reusableKtop: reusableKtop{ - noncePrefix: nil, - Ktop: nil, - }, - }, nil -} - -func (o *ocb) Seal(dst, nonce, plaintext, adata []byte) []byte { - if len(nonce) > o.nonceSize { - panic("crypto/ocb: Incorrect nonce length given to OCB") - } - ret, out := byteutil.SliceForAppend(dst, len(plaintext)+o.tagSize) - o.crypt(enc, out, nonce, adata, plaintext) - return ret -} - -func (o *ocb) Open(dst, nonce, ciphertext, adata []byte) ([]byte, error) { - if len(nonce) > o.nonceSize { - panic("Nonce too long for this instance") - } - if len(ciphertext) < o.tagSize { - return nil, ocbError("Ciphertext shorter than tag length") - } - sep := len(ciphertext) - o.tagSize - ret, out := byteutil.SliceForAppend(dst, len(ciphertext)) - ciphertextData := ciphertext[:sep] - tag := ciphertext[sep:] - o.crypt(dec, out, nonce, adata, ciphertextData) - if subtle.ConstantTimeCompare(ret[sep:], tag) == 1 { - ret = ret[:sep] - return ret, nil - } - for i := range out { - out[i] = 0 - } - return nil, ocbError("Tag authentication failed") -} - -// On instruction enc (resp. dec), crypt is the encrypt (resp. decrypt) -// function. It returns the resulting plain/ciphertext with the tag appended. -func (o *ocb) crypt(instruction int, Y, nonce, adata, X []byte) []byte { - // - // Consider X as a sequence of 128-bit blocks - // - // Note: For encryption (resp. decryption), X is the plaintext (resp., the - // ciphertext without the tag). - blockSize := o.block.BlockSize() - - // - // Nonce-dependent and per-encryption variables - // - // Zero out the last 6 bits of the nonce into truncatedNonce to see if Ktop - // is already computed. - truncatedNonce := make([]byte, len(nonce)) - copy(truncatedNonce, nonce) - truncatedNonce[len(truncatedNonce)-1] &= 192 - Ktop := make([]byte, blockSize) - if bytes.Equal(truncatedNonce, o.reusableKtop.noncePrefix) { - Ktop = o.reusableKtop.Ktop - } else { - // Nonce = num2str(TAGLEN mod 128, 7) || zeros(120 - bitlen(N)) || 1 || N - paddedNonce := append(make([]byte, blockSize-1-len(nonce)), 1) - paddedNonce = append(paddedNonce, truncatedNonce...) - paddedNonce[0] |= byte(((8 * o.tagSize) % (8 * blockSize)) << 1) - // Last 6 bits of paddedNonce are already zero. Encrypt into Ktop - paddedNonce[blockSize-1] &= 192 - Ktop = paddedNonce - o.block.Encrypt(Ktop, Ktop) - o.reusableKtop.noncePrefix = truncatedNonce - o.reusableKtop.Ktop = Ktop - } - - // Stretch = Ktop || ((lower half of Ktop) XOR (lower half of Ktop << 8)) - xorHalves := make([]byte, blockSize/2) - byteutil.XorBytes(xorHalves, Ktop[:blockSize/2], Ktop[1:1+blockSize/2]) - stretch := append(Ktop, xorHalves...) - bottom := int(nonce[len(nonce)-1] & 63) - offset := make([]byte, len(stretch)) - byteutil.ShiftNBytesLeft(offset, stretch, bottom) - offset = offset[:blockSize] - - // - // Process any whole blocks - // - // Note: For encryption Y is ciphertext || tag, for decryption Y is - // plaintext || tag. - checksum := make([]byte, blockSize) - m := len(X) / blockSize - for i := 0; i < m; i++ { - index := bits.TrailingZeros(uint(i + 1)) - if len(o.mask.L)-1 < index { - o.mask.extendTable(index) - } - byteutil.XorBytesMut(offset, o.mask.L[bits.TrailingZeros(uint(i+1))]) - blockX := X[i*blockSize : (i+1)*blockSize] - blockY := Y[i*blockSize : (i+1)*blockSize] - byteutil.XorBytes(blockY, blockX, offset) - switch instruction { - case enc: - o.block.Encrypt(blockY, blockY) - byteutil.XorBytesMut(blockY, offset) - byteutil.XorBytesMut(checksum, blockX) - case dec: - o.block.Decrypt(blockY, blockY) - byteutil.XorBytesMut(blockY, offset) - byteutil.XorBytesMut(checksum, blockY) - } - } - // - // Process any final partial block and compute raw tag - // - tag := make([]byte, blockSize) - if len(X)%blockSize != 0 { - byteutil.XorBytesMut(offset, o.mask.lAst) - pad := make([]byte, blockSize) - o.block.Encrypt(pad, offset) - chunkX := X[blockSize*m:] - chunkY := Y[blockSize*m : len(X)] - byteutil.XorBytes(chunkY, chunkX, pad[:len(chunkX)]) - // P_* || bit(1) || zeroes(127) - len(P_*) - switch instruction { - case enc: - paddedY := append(chunkX, byte(128)) - paddedY = append(paddedY, make([]byte, blockSize-len(chunkX)-1)...) - byteutil.XorBytesMut(checksum, paddedY) - case dec: - paddedX := append(chunkY, byte(128)) - paddedX = append(paddedX, make([]byte, blockSize-len(chunkY)-1)...) - byteutil.XorBytesMut(checksum, paddedX) - } - byteutil.XorBytes(tag, checksum, offset) - byteutil.XorBytesMut(tag, o.mask.lDol) - o.block.Encrypt(tag, tag) - byteutil.XorBytesMut(tag, o.hash(adata)) - copy(Y[blockSize*m+len(chunkY):], tag[:o.tagSize]) - } else { - byteutil.XorBytes(tag, checksum, offset) - byteutil.XorBytesMut(tag, o.mask.lDol) - o.block.Encrypt(tag, tag) - byteutil.XorBytesMut(tag, o.hash(adata)) - copy(Y[blockSize*m:], tag[:o.tagSize]) - } - return Y -} - -// This hash function is used to compute the tag. Per design, on empty input it -// returns a slice of zeros, of the same length as the underlying block cipher -// block size. -func (o *ocb) hash(adata []byte) []byte { - // - // Consider A as a sequence of 128-bit blocks - // - A := make([]byte, len(adata)) - copy(A, adata) - blockSize := o.block.BlockSize() - - // - // Process any whole blocks - // - sum := make([]byte, blockSize) - offset := make([]byte, blockSize) - m := len(A) / blockSize - for i := 0; i < m; i++ { - chunk := A[blockSize*i : blockSize*(i+1)] - index := bits.TrailingZeros(uint(i + 1)) - // If the mask table is too short - if len(o.mask.L)-1 < index { - o.mask.extendTable(index) - } - byteutil.XorBytesMut(offset, o.mask.L[index]) - byteutil.XorBytesMut(chunk, offset) - o.block.Encrypt(chunk, chunk) - byteutil.XorBytesMut(sum, chunk) - } - - // - // Process any final partial block; compute final hash value - // - if len(A)%blockSize != 0 { - byteutil.XorBytesMut(offset, o.mask.lAst) - // Pad block with 1 || 0 ^ 127 - bitlength(a) - ending := make([]byte, blockSize-len(A)%blockSize) - ending[0] = 0x80 - encrypted := append(A[blockSize*m:], ending...) - byteutil.XorBytesMut(encrypted, offset) - o.block.Encrypt(encrypted, encrypted) - byteutil.XorBytesMut(sum, encrypted) - } - return sum -} - -func initializeMaskTable(block cipher.Block) mask { - // - // Key-dependent variables - // - lAst := make([]byte, block.BlockSize()) - block.Encrypt(lAst, lAst) - lDol := byteutil.GfnDouble(lAst) - L := make([][]byte, 1) - L[0] = byteutil.GfnDouble(lDol) - - return mask{ - lAst: lAst, - lDol: lDol, - L: L, - } -} - -// Extends the L array of mask m up to L[limit], with L[i] = GfnDouble(L[i-1]) -func (m *mask) extendTable(limit int) { - for i := len(m.L); i <= limit; i++ { - m.L = append(m.L, byteutil.GfnDouble(m.L[i-1])) - } -} - -func ocbError(err string) error { - return errors.New("crypto/ocb: " + err) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/ocb/random_vectors.go b/vendor/github.com/ProtonMail/go-crypto/ocb/random_vectors.go deleted file mode 100644 index 0efaf344fd..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/ocb/random_vectors.go +++ /dev/null @@ -1,136 +0,0 @@ -// In the test vectors provided by RFC 7253, the "bottom" -// internal variable, which defines "offset" for the first time, does not -// exceed 15. However, it can attain values up to 63. - -// These vectors include key length in {128, 192, 256}, tag size 128, and -// random nonce, header, and plaintext lengths. - -// This file was automatically generated. - -package ocb - -var randomVectors = []struct { - key, nonce, header, plaintext, ciphertext string -}{ - - {"9438C5D599308EAF13F800D2D31EA7F0", - "C38EE4801BEBFFA1CD8635BE", - "0E507B7DADD8A98CDFE272D3CB6B3E8332B56AE583FB049C0874D4200BED16BD1A044182434E9DA0E841F182DFD5B3016B34641CED0784F1745F63AB3D0DA22D3351C9EF9A658B8081E24498EBF61FCE40DA6D8E184536", - "962D227786FB8913A8BAD5DC3250", - "EEDEF5FFA5986D1E3BF86DDD33EF9ADC79DCA06E215FA772CCBA814F63AD"}, - {"BA7DE631C7D6712167C6724F5B9A2B1D", - "35263EBDA05765DC0E71F1F5", - "0103257B4224507C0242FEFE821EA7FA42E0A82863E5F8B68F7D881B4B44FA428A2B6B21D2F591260802D8AB6D83", - "9D6D1FC93AE8A64E7889B7B2E3521EFA9B920A8DDB692E6F833DDC4A38AFA535E5E2A3ED82CB7E26404AB86C54D01C4668F28398C2DF33D5D561CBA1C8DCFA7A912F5048E545B59483C0E3221F54B14DAA2E4EB657B3BEF9554F34CAD69B2724AE962D3D8A", - "E93852D1985C5E775655E937FA79CE5BF28A585F2AF53A5018853B9634BE3C84499AC0081918FDCE0624494D60E25F76ACD6853AC7576E3C350F332249BFCABD4E73CEABC36BE4EDDA40914E598AE74174A0D7442149B26990899491BDDFE8FC54D6C18E83AE9E9A6FFBF5D376565633862EEAD88D"}, - {"2E74B25289F6FD3E578C24866E9C72A5", - "FD912F15025AF8414642BA1D1D", - "FB5FB8C26F365EEDAB5FE260C6E3CCD27806729C8335F146063A7F9EA93290E56CF84576EB446350D22AD730547C267B1F0BBB97EB34E1E2C41A", - "6C092EBF78F76EE8C1C6E592277D9545BA16EDB67BC7D8480B9827702DC2F8A129E2B08A2CE710CA7E1DA45CE162BB6CD4B512E632116E2211D3C90871EFB06B8D4B902681C7FB", - "6AC0A77F26531BF4F354A1737F99E49BE32ECD909A7A71AD69352906F54B08A9CE9B8CA5D724CBFFC5673437F23F630697F3B84117A1431D6FA8CC13A974FB4AD360300522E09511B99E71065D5AC4BBCB1D791E864EF4"}, - {"E7EC507C802528F790AFF5303A017B17", - "4B97A7A568940A9E3CE7A99E93031E", - "28349BDC5A09390C480F9B8AA3EDEA3DDB8B9D64BCA322C570B8225DF0E31190DAB25A4014BA39519E02ABFB12B89AA28BBFD29E486E7FB28734258C817B63CED9912DBAFEBB93E2798AB2890DE3B0ACFCFF906AB15563EF7823CE83D27CDB251195E22BD1337BCBDE65E7C2C427321C463C2777BFE5AEAA", - "9455B3EA706B74", - "7F33BA3EA848D48A96B9530E26888F43EBD4463C9399B6"}, - {"6C928AA3224736F28EE7378DE0090191", - "8936138E2E4C6A13280017A1622D", - "6202717F2631565BDCDC57C6584543E72A7C8BD444D0D108ED35069819633C", - "DA0691439E5F035F3E455269D14FE5C201C8C9B0A3FE2D3F86BCC59387C868FE65733D388360B31E3CE28B4BF6A8BE636706B536D5720DB66B47CF1C7A5AFD6F61E0EF90F1726D6B0E169F9A768B2B7AE4EE00A17F630AC905FCAAA1B707FFF25B3A1AAE83B504837C64A5639B2A34002B300EC035C9B43654DA55", - "B8804D182AB0F0EEB464FA7BD1329AD6154F982013F3765FEDFE09E26DAC078C9C1439BFC1159D6C02A25E3FF83EF852570117B315852AD5EE20E0FA3AA0A626B0E43BC0CEA38B44579DD36803455FB46989B90E6D229F513FD727AF8372517E9488384C515D6067704119C931299A0982EDDFB9C2E86A90C450C077EB222511EC9CCABC9FCFDB19F70088"}, - {"ECEA315CA4B3F425B0C9957A17805EA4", - "664CDAE18403F4F9BA13015A44FC", - "642AFB090D6C6DB46783F08B01A3EF2A8FEB5736B531EAC226E7888FCC8505F396818F83105065FACB3267485B9E5E4A0261F621041C08FCCB2A809A49AB5252A91D0971BCC620B9D614BD77E57A0EED2FA5", - "6852C31F8083E20E364CEA21BB7854D67CEE812FE1C9ED2425C0932A90D3780728D1BB", - "2ECEF962A9695A463ADABB275BDA9FF8B2BA57AEC2F52EFFB700CD9271A74D2A011C24AEA946051BD6291776429B7E681BA33E"}, - {"4EE616C4A58AAA380878F71A373461F6", - "91B8C9C176D9C385E9C47E52", - "CDA440B7F9762C572A718AC754EDEECC119E5EE0CCB9FEA4FFB22EEE75087C032EBF3DA9CDD8A28CC010B99ED45143B41A4BA50EA2A005473F89639237838867A57F23B0F0ED3BF22490E4501DAC9C658A9B9F", - "D6E645FA9AE410D15B8123FD757FA356A8DBE9258DDB5BE88832E615910993F497EC", - "B70ED7BF959FB2AAED4F36174A2A99BFB16992C8CDF369C782C4DB9C73DE78C5DB8E0615F647243B97ACDB24503BC9CADC48"}, - {"DCD475773136C830D5E3D0C5FE05B7FF", - "BB8E1FBB483BE7616A922C4A", - "36FEF2E1CB29E76A6EA663FC3AF66ECD7404F466382F7B040AABED62293302B56E8783EF7EBC21B4A16C3E78A7483A0A403F253A2CDC5BBF79DC3DAE6C73F39A961D8FBBE8D41B", - "441E886EA38322B2437ECA7DEB5282518865A66780A454E510878E61BFEC3106A3CD93D2A02052E6F9E1832F9791053E3B76BF4C07EFDD6D4106E3027FABB752E60C1AA425416A87D53938163817A1051EBA1D1DEEB4B9B25C7E97368B52E5911A31810B0EC5AF547559B6142D9F4C4A6EF24A4CF75271BF9D48F62B", - "1BE4DD2F4E25A6512C2CC71D24BBB07368589A94C2714962CD0ACE5605688F06342587521E75F0ACAFFD86212FB5C34327D238DB36CF2B787794B9A4412E7CD1410EA5DDD2450C265F29CF96013CD213FD2880657694D718558964BC189B4A84AFCF47EB012935483052399DBA5B088B0A0477F20DFE0E85DCB735E21F22A439FB837DD365A93116D063E607"}, - {"3FBA2B3D30177FFE15C1C59ED2148BB2C091F5615FBA7C07", - "FACF804A4BEBF998505FF9DE", - "8213B9263B2971A5BDA18DBD02208EE1", - "15B323926993B326EA19F892D704439FC478828322AF72118748284A1FD8A6D814E641F70512FD706980337379F31DC63355974738D7FEA87AD2858C0C2EBBFBE74371C21450072373C7B651B334D7C4D43260B9D7CCD3AF9EDB", - "6D35DC1469B26E6AAB26272A41B46916397C24C485B61162E640A062D9275BC33DDCFD3D9E1A53B6C8F51AC89B66A41D59B3574197A40D9B6DCF8A4E2A001409C8112F16B9C389E0096179DB914E05D6D11ED0005AD17E1CE105A2F0BAB8F6B1540DEB968B7A5428FF44"}, - {"53B52B8D4D748BCDF1DDE68857832FA46227FA6E2F32EFA1", - "0B0EF53D4606B28D1398355F", - "F23882436349094AF98BCACA8218E81581A043B19009E28EFBF2DE37883E04864148CC01D240552CA8844EC1456F42034653067DA67E80F87105FD06E14FF771246C9612867BE4D215F6D761", - "F15030679BD4088D42CAC9BF2E9606EAD4798782FA3ED8C57EBE7F84A53236F51B25967C6489D0CD20C9EEA752F9BC", - "67B96E2D67C3729C96DAEAEDF821D61C17E648643A2134C5621FEC621186915AD80864BFD1EB5B238BF526A679385E012A457F583AFA78134242E9D9C1B4E4"}, - {"0272DD80F23399F49BFC320381A5CD8225867245A49A7D41", - "5C83F4896D0738E1366B1836", - "69B0337289B19F73A12BAEEA857CCAF396C11113715D9500CCCF48BA08CFF12BC8B4BADB3084E63B85719DB5058FA7C2C11DEB096D7943CFA7CAF5", - "C01AD10FC8B562CD17C7BC2FAB3E26CBDFF8D7F4DEA816794BBCC12336991712972F52816AABAB244EB43B0137E2BAC1DD413CE79531E78BEF782E6B439612BB3AEF154DE3502784F287958EBC159419F9EBA27916A28D6307324129F506B1DE80C1755A929F87", - "FEFE52DD7159C8DD6E8EC2D3D3C0F37AB6CB471A75A071D17EC4ACDD8F3AA4D7D4F7BB559F3C09099E3D9003E5E8AA1F556B79CECDE66F85B08FA5955E6976BF2695EA076388A62D2AD5BAB7CBF1A7F3F4C8D5CDF37CDE99BD3E30B685D9E5EEE48C7C89118EF4878EB89747F28271FA2CC45F8E9E7601"}, - {"3EEAED04A455D6E5E5AB53CFD5AFD2F2BC625C7BF4BE49A5", - "36B88F63ADBB5668588181D774", - "D367E3CB3703E762D23C6533188EF7028EFF9D935A3977150361997EC9DEAF1E4794BDE26AA8B53C124980B1362EC86FCDDFC7A90073171C1BAEE351A53234B86C66E8AB92FAE99EC6967A6D3428892D80", - "573454C719A9A55E04437BF7CBAAF27563CCCD92ADD5E515CD63305DFF0687E5EEF790C5DCA5C0033E9AB129505E2775438D92B38F08F3B0356BA142C6F694", - "E9F79A5B432D9E682C9AAA5661CFC2E49A0FCB81A431E54B42EB73DD3BED3F377FEC556ABA81624BA64A5D739AD41467460088F8D4F442180A9382CA635745473794C382FCDDC49BA4EB6D8A44AE3C"}, - {"B695C691538F8CBD60F039D0E28894E3693CC7C36D92D79D", - "BC099AEB637361BAC536B57618", - "BFFF1A65AE38D1DC142C71637319F5F6508E2CB33C9DCB94202B359ED5A5ED8042E7F4F09231D32A7242976677E6F4C549BF65FADC99E5AF43F7A46FD95E16C2", - "081DF3FD85B415D803F0BE5AC58CFF0023FDDED99788296C3731D8", - "E50C64E3614D94FE69C47092E46ACC9957C6FEA2CCBF96BC62FBABE7424753C75F9C147C42AE26FE171531"}, - {"C9ACBD2718F0689A1BE9802A551B6B8D9CF5614DAF5E65ED", - "B1B0AAF373B8B026EB80422051D8", - "6648C0E61AC733C76119D23FB24548D637751387AA2EAE9D80E912B7BD486CAAD9EAF4D7A5FE2B54AAD481E8EC94BB4D558000896E2010462B70C9FED1E7273080D1", - "189F591F6CB6D59AFEDD14C341741A8F1037DC0DF00FC57CE65C30F49E860255CEA5DC6019380CC0FE8880BC1A9E685F41C239C38F36E3F2A1388865C5C311059C0A", - "922A5E949B61D03BE34AB5F4E58607D4504EA14017BB363DAE3C873059EA7A1C77A746FB78981671D26C2CF6D9F24952D510044CE02A10177E9DB42D0145211DFE6E84369C5E3BC2669EAB4147B2822895F9"}, - {"7A832BD2CF5BF4919F353CE2A8C86A5E406DA2D52BE16A72", - "2F2F17CECF7E5A756D10785A3CB9DB", - "61DA05E3788CC2D8405DBA70C7A28E5AF699863C9F72E6C6770126929F5D6FA267F005EBCF49495CB46400958A3AE80D1289D1C671", - "44E91121195A41AF14E8CFDBD39A4B517BE0DF1A72977ED8A3EEF8EEDA1166B2EB6DB2C4AE2E74FA0F0C74537F659BFBD141E5DDEC67E64EDA85AABD3F52C85A785B9FB3CECD70E7DF", - "BEDF596EA21288D2B84901E188F6EE1468B14D5161D3802DBFE00D60203A24E2AB62714BF272A45551489838C3A7FEAADC177B591836E73684867CCF4E12901DCF2064058726BBA554E84ADC5136F507E961188D4AF06943D3"}, - {"1508E8AE9079AA15F1CEC4F776B4D11BCCB061B58AA56C18", - "BCA625674F41D1E3AB47672DC0C3", - "8B12CF84F16360F0EAD2A41BC021530FFCEC7F3579CAE658E10E2D3D81870F65AFCED0C77C6C4C6E6BA424FF23088C796BA6195ABA35094BF1829E089662E7A95FC90750AE16D0C8AFA55DAC789D7735B970B58D4BE7CEC7341DA82A0179A01929C27A59C5063215B859EA43", - "E525422519ECE070E82C", - "B47BC07C3ED1C0A43BA52C43CBACBCDBB29CAF1001E09FDF7107"}, - {"7550C2761644E911FE9ADD119BAC07376BEA442845FEAD876D7E7AC1B713E464", - "36D2EC25ADD33CDEDF495205BBC923", - "7FCFE81A3790DE97FFC3DE160C470847EA7E841177C2F759571CBD837EA004A6CA8C6F4AEBFF2E9FD552D73EB8A30705D58D70C0B67AEEA280CBBF0A477358ACEF1E7508F2735CD9A0E4F9AC92B8C008F575D3B6278F1C18BD01227E3502E5255F3AB1893632AD00C717C588EF652A51A43209E7EE90", - "2B1A62F8FDFAA3C16470A21AD307C9A7D03ADE8EF72C69B06F8D738CDE578D7AEFD0D40BD9C022FB9F580DF5394C998ACCCEFC5471A3996FB8F1045A81FDC6F32D13502EA65A211390C8D882B8E0BEFD8DD8CBEF51D1597B124E9F7F", - "C873E02A22DB89EB0787DB6A60B99F7E4A0A085D5C4232A81ADCE2D60AA36F92DDC33F93DD8640AC0E08416B187FB382B3EC3EE85A64B0E6EE41C1366A5AD2A282F66605E87031CCBA2FA7B2DA201D975994AADE3DD1EE122AE09604AD489B84BF0C1AB7129EE16C6934850E"}, - {"A51300285E554FDBDE7F771A9A9A80955639DD87129FAEF74987C91FB9687C71", - "81691D5D20EC818FCFF24B33DECC", - "C948093218AA9EB2A8E44A87EEA73FC8B6B75A196819A14BD83709EA323E8DF8B491045220E1D88729A38DBCFFB60D3056DAD4564498FD6574F74512945DEB34B69329ACED9FFC05D5D59DFCD5B973E2ACAFE6AD1EF8BBBC49351A2DD12508ED89ED", - "EB861165DAF7625F827C6B574ED703F03215", - "C6CD1CE76D2B3679C1B5AA1CFD67CCB55444B6BFD3E22C81CBC9BB738796B83E54E3"}, - {"8CE0156D26FAEB7E0B9B800BBB2E9D4075B5EAC5C62358B0E7F6FCE610223282", - "D2A7B94DD12CDACA909D3AD7", - "E021A78F374FC271389AB9A3E97077D755", - "7C26000B58929F5095E1CEE154F76C2A299248E299F9B5ADE6C403AA1FD4A67FD4E0232F214CE7B919EE7A1027D2B76C57475715CD078461", - "C556FB38DF069B56F337B5FF5775CE6EAA16824DFA754F20B78819028EA635C3BB7AA731DE8776B2DCB67DCA2D33EEDF3C7E52EA450013722A41755A0752433ED17BDD5991AAE77A"}, - {"1E8000A2CE00A561C9920A30BF0D7B983FEF8A1014C8F04C35CA6970E6BA02BD", - "65ED3D63F79F90BBFD19775E", - "336A8C0B7243582A46B221AA677647FCAE91", - "134A8B34824A290E7B", - "914FBEF80D0E6E17F8BDBB6097EBF5FBB0554952DC2B9E5151"}, - {"53D5607BBE690B6E8D8F6D97F3DF2BA853B682597A214B8AA0EA6E598650AF15", - "C391A856B9FE234E14BA1AC7BB40FF", - "479682BC21349C4BE1641D5E78FE2C79EC1B9CF5470936DCAD9967A4DCD7C4EFADA593BC9EDE71E6A08829B8580901B61E274227E9D918502DE3", - "EAD154DC09C5E26C5D26FF33ED148B27120C7F2C23225CC0D0631B03E1F6C6D96FEB88C1A4052ACB4CE746B884B6502931F407021126C6AAB8C514C077A5A38438AE88EE", - "938821286EBB671D999B87C032E1D6055392EB564E57970D55E545FC5E8BAB90E6E3E3C0913F6320995FC636D72CD9919657CC38BD51552F4A502D8D1FE56DB33EBAC5092630E69EBB986F0E15CEE9FC8C052501"}, - {"294362FCC984F440CEA3E9F7D2C06AF20C53AAC1B3738CA2186C914A6E193ABB", - "B15B61C8BB39261A8F55AB178EC3", - "D0729B6B75BB", - "2BD089ADCE9F334BAE3B065996C7D616DD0C27DF4218DCEEA0FBCA0F968837CE26B0876083327E25681FDDD620A32EC0DA12F73FAE826CC94BFF2B90A54D2651", - "AC94B25E4E21DE2437B806966CCD5D9385EF0CD4A51AB9FA6DE675C7B8952D67802E9FEC1FDE9F5D1EAB06057498BC0EEA454804FC9D2068982A3E24182D9AC2E7AB9994DDC899A604264583F63D066B"}, - {"959DBFEB039B1A5B8CE6A44649B602AAA5F98A906DB96143D202CD2024F749D9", - "01D7BDB1133E9C347486C1EFA6", - "F3843955BD741F379DD750585EDC55E2CDA05CCBA8C1F4622AC2FE35214BC3A019B8BD12C4CC42D9213D1E1556941E8D8450830287FFB3B763A13722DD4140ED9846FB5FFF745D7B0B967D810A068222E10B259AF1D392035B0D83DC1498A6830B11B2418A840212599171E0258A1C203B05362978", - "A21811232C950FA8B12237C2EBD6A7CD2C3A155905E9E0C7C120", - "63C1CE397B22F1A03F1FA549B43178BC405B152D3C95E977426D519B3DFCA28498823240592B6EEE7A14"}, - {"096AE499F5294173F34FF2B375F0E5D5AB79D0D03B33B1A74D7D576826345DF4", - "0C52B3D11D636E5910A4DD76D32C", - "229E9ECA3053789E937447BC719467075B6138A142DA528DA8F0CF8DDF022FD9AF8E74779BA3AC306609", - "8B7A00038783E8BAF6EDEAE0C4EAB48FC8FD501A588C7E4A4DB71E3604F2155A97687D3D2FFF8569261375A513CF4398CE0F87CA1658A1050F6EF6C4EA3E25", - "C20B6CF8D3C8241825FD90B2EDAC7593600646E579A8D8DAAE9E2E40C3835FE801B2BE4379131452BC5182C90307B176DFBE2049544222FE7783147B690774F6D9D7CEF52A91E61E298E9AA15464AC"}, -} diff --git a/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_a.go b/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_a.go deleted file mode 100644 index 330309ff5f..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_a.go +++ /dev/null @@ -1,78 +0,0 @@ -package ocb - -import ( - "encoding/hex" -) - -// Test vectors from https://tools.ietf.org/html/rfc7253. Note that key is -// shared across tests. -var testKey, _ = hex.DecodeString("000102030405060708090A0B0C0D0E0F") - -var rfc7253testVectors = []struct { - nonce, header, plaintext, ciphertext string -}{ - {"BBAA99887766554433221100", - "", - "", - "785407BFFFC8AD9EDCC5520AC9111EE6"}, - {"BBAA99887766554433221101", - "0001020304050607", - "0001020304050607", - "6820B3657B6F615A5725BDA0D3B4EB3A257C9AF1F8F03009"}, - {"BBAA99887766554433221102", - "0001020304050607", - "", - "81017F8203F081277152FADE694A0A00"}, - {"BBAA99887766554433221103", - "", - "0001020304050607", - "45DD69F8F5AAE72414054CD1F35D82760B2CD00D2F99BFA9"}, - {"BBAA99887766554433221104", - "000102030405060708090A0B0C0D0E0F", - "000102030405060708090A0B0C0D0E0F", - "571D535B60B277188BE5147170A9A22C3AD7A4FF3835B8C5701C1CCEC8FC3358"}, - {"BBAA99887766554433221105", - "000102030405060708090A0B0C0D0E0F", - "", - "8CF761B6902EF764462AD86498CA6B97"}, - {"BBAA99887766554433221106", - "", - "000102030405060708090A0B0C0D0E0F", - "5CE88EC2E0692706A915C00AEB8B2396F40E1C743F52436BDF06D8FA1ECA343D"}, - {"BBAA99887766554433221107", - "000102030405060708090A0B0C0D0E0F1011121314151617", - "000102030405060708090A0B0C0D0E0F1011121314151617", - "1CA2207308C87C010756104D8840CE1952F09673A448A122C92C62241051F57356D7F3C90BB0E07F"}, - {"BBAA99887766554433221108", - "000102030405060708090A0B0C0D0E0F1011121314151617", - "", - "6DC225A071FC1B9F7C69F93B0F1E10DE"}, - {"BBAA99887766554433221109", - "", - "000102030405060708090A0B0C0D0E0F1011121314151617", - "221BD0DE7FA6FE993ECCD769460A0AF2D6CDED0C395B1C3CE725F32494B9F914D85C0B1EB38357FF"}, - {"BBAA9988776655443322110A", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", - "BD6F6C496201C69296C11EFD138A467ABD3C707924B964DEAFFC40319AF5A48540FBBA186C5553C68AD9F592A79A4240"}, - {"BBAA9988776655443322110B", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", - "", - "FE80690BEE8A485D11F32965BC9D2A32"}, - {"BBAA9988776655443322110C", - "", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", - "2942BFC773BDA23CABC6ACFD9BFD5835BD300F0973792EF46040C53F1432BCDFB5E1DDE3BC18A5F840B52E653444D5DF"}, - {"BBAA9988776655443322110D", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", - "D5CA91748410C1751FF8A2F618255B68A0A12E093FF454606E59F9C1D0DDC54B65E8628E568BAD7AED07BA06A4A69483A7035490C5769E60"}, - {"BBAA9988776655443322110E", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", - "", - "C5CD9D1850C141E358649994EE701B68"}, - {"BBAA9988776655443322110F", - "", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", - "4412923493C57D5DE0D700F753CCE0D1D2D95060122E9F15A5DDBFC5787E50B5CC55EE507BCB084E479AD363AC366B95A98CA5F3000B1479"}, -} diff --git a/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_b.go b/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_b.go deleted file mode 100644 index 5dc158f012..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/ocb/rfc7253_test_vectors_suite_b.go +++ /dev/null @@ -1,24 +0,0 @@ -package ocb - -// Second set of test vectors from https://tools.ietf.org/html/rfc7253 -var rfc7253TestVectorTaglen96 = struct { - key, nonce, header, plaintext, ciphertext string -}{"0F0E0D0C0B0A09080706050403020100", - "BBAA9988776655443322110D", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", - "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627", - "1792A4E31E0755FB03E31B22116E6C2DDF9EFD6E33D536F1A0124B0A55BAE884ED93481529C76B6AD0C515F4D1CDD4FDAC4F02AA"} - -var rfc7253AlgorithmTest = []struct { - KEYLEN, TAGLEN int - OUTPUT string }{ - {128, 128, "67E944D23256C5E0B6C61FA22FDF1EA2"}, - {192, 128, "F673F2C3E7174AAE7BAE986CA9F29E17"}, - {256, 128, "D90EB8E9C977C88B79DD793D7FFA161C"}, - {128, 96, "77A3D8E73589158D25D01209"}, - {192, 96, "05D56EAD2752C86BE6932C5E"}, - {256, 96, "5458359AC23B0CBA9E6330DD"}, - {128, 64, "192C9B7BD90BA06A"}, - {192, 64, "0066BC6E0EF34E24"}, - {256, 64, "7D4EA5D445501CBE"}, - } diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap/keywrap.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap/keywrap.go deleted file mode 100644 index 3c6251d1ce..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/aes/keywrap/keywrap.go +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2014 Matthew Endsley -// All rights reserved -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted providing that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. 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 AUTHOR ``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 THE AUTHOR 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. - -// Package keywrap is an implementation of the RFC 3394 AES key wrapping -// algorithm. This is used in OpenPGP with elliptic curve keys. -package keywrap - -import ( - "crypto/aes" - "encoding/binary" - "errors" -) - -var ( - // ErrWrapPlaintext is returned if the plaintext is not a multiple - // of 64 bits. - ErrWrapPlaintext = errors.New("keywrap: plainText must be a multiple of 64 bits") - - // ErrUnwrapCiphertext is returned if the ciphertext is not a - // multiple of 64 bits. - ErrUnwrapCiphertext = errors.New("keywrap: cipherText must by a multiple of 64 bits") - - // ErrUnwrapFailed is returned if unwrapping a key fails. - ErrUnwrapFailed = errors.New("keywrap: failed to unwrap key") - - // NB: the AES NewCipher call only fails if the key is an invalid length. - - // ErrInvalidKey is returned when the AES key is invalid. - ErrInvalidKey = errors.New("keywrap: invalid AES key") -) - -// Wrap a key using the RFC 3394 AES Key Wrap Algorithm. -func Wrap(key, plainText []byte) ([]byte, error) { - if len(plainText)%8 != 0 { - return nil, ErrWrapPlaintext - } - - c, err := aes.NewCipher(key) - if err != nil { - return nil, ErrInvalidKey - } - - nblocks := len(plainText) / 8 - - // 1) Initialize variables. - var block [aes.BlockSize]byte - // - Set A = IV, an initial value (see 2.2.3) - for ii := 0; ii < 8; ii++ { - block[ii] = 0xA6 - } - - // - For i = 1 to n - // - Set R[i] = P[i] - intermediate := make([]byte, len(plainText)) - copy(intermediate, plainText) - - // 2) Calculate intermediate values. - for ii := 0; ii < 6; ii++ { - for jj := 0; jj < nblocks; jj++ { - // - B = AES(K, A | R[i]) - copy(block[8:], intermediate[jj*8:jj*8+8]) - c.Encrypt(block[:], block[:]) - - // - A = MSB(64, B) ^ t where t = (n*j)+1 - t := uint64(ii*nblocks + jj + 1) - val := binary.BigEndian.Uint64(block[:8]) ^ t - binary.BigEndian.PutUint64(block[:8], val) - - // - R[i] = LSB(64, B) - copy(intermediate[jj*8:jj*8+8], block[8:]) - } - } - - // 3) Output results. - // - Set C[0] = A - // - For i = 1 to n - // - C[i] = R[i] - return append(block[:8], intermediate...), nil -} - -// Unwrap a key using the RFC 3394 AES Key Wrap Algorithm. -func Unwrap(key, cipherText []byte) ([]byte, error) { - if len(cipherText)%8 != 0 { - return nil, ErrUnwrapCiphertext - } - - c, err := aes.NewCipher(key) - if err != nil { - return nil, ErrInvalidKey - } - - nblocks := len(cipherText)/8 - 1 - - // 1) Initialize variables. - var block [aes.BlockSize]byte - // - Set A = C[0] - copy(block[:8], cipherText[:8]) - - // - For i = 1 to n - // - Set R[i] = C[i] - intermediate := make([]byte, len(cipherText)-8) - copy(intermediate, cipherText[8:]) - - // 2) Compute intermediate values. - for jj := 5; jj >= 0; jj-- { - for ii := nblocks - 1; ii >= 0; ii-- { - // - B = AES-1(K, (A ^ t) | R[i]) where t = n*j+1 - // - A = MSB(64, B) - t := uint64(jj*nblocks + ii + 1) - val := binary.BigEndian.Uint64(block[:8]) ^ t - binary.BigEndian.PutUint64(block[:8], val) - - copy(block[8:], intermediate[ii*8:ii*8+8]) - c.Decrypt(block[:], block[:]) - - // - R[i] = LSB(B, 64) - copy(intermediate[ii*8:ii*8+8], block[8:]) - } - } - - // 3) Output results. - // - If A is an appropriate initial value (see 2.2.3), - for ii := 0; ii < 8; ii++ { - if block[ii] != 0xA6 { - return nil, ErrUnwrapFailed - } - } - - // - For i = 1 to n - // - P[i] = R[i] - return intermediate, nil -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/armor.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/armor.go deleted file mode 100644 index 3b357e5851..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/armor.go +++ /dev/null @@ -1,224 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package armor implements OpenPGP ASCII Armor, see RFC 4880. OpenPGP Armor is -// very similar to PEM except that it has an additional CRC checksum. -package armor // import "github.com/ProtonMail/go-crypto/openpgp/armor" - -import ( - "bufio" - "bytes" - "encoding/base64" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "io" -) - -// A Block represents an OpenPGP armored structure. -// -// The encoded form is: -// -----BEGIN Type----- -// Headers -// -// base64-encoded Bytes -// '=' base64 encoded checksum -// -----END Type----- -// where Headers is a possibly empty sequence of Key: Value lines. -// -// Since the armored data can be very large, this package presents a streaming -// interface. -type Block struct { - Type string // The type, taken from the preamble (i.e. "PGP SIGNATURE"). - Header map[string]string // Optional headers. - Body io.Reader // A Reader from which the contents can be read - lReader lineReader - oReader openpgpReader -} - -var ArmorCorrupt error = errors.StructuralError("armor invalid") - -const crc24Init = 0xb704ce -const crc24Poly = 0x1864cfb -const crc24Mask = 0xffffff - -// crc24 calculates the OpenPGP checksum as specified in RFC 4880, section 6.1 -func crc24(crc uint32, d []byte) uint32 { - for _, b := range d { - crc ^= uint32(b) << 16 - for i := 0; i < 8; i++ { - crc <<= 1 - if crc&0x1000000 != 0 { - crc ^= crc24Poly - } - } - } - return crc -} - -var armorStart = []byte("-----BEGIN ") -var armorEnd = []byte("-----END ") -var armorEndOfLine = []byte("-----") - -// lineReader wraps a line based reader. It watches for the end of an armor -// block and records the expected CRC value. -type lineReader struct { - in *bufio.Reader - buf []byte - eof bool - crc uint32 - crcSet bool -} - -func (l *lineReader) Read(p []byte) (n int, err error) { - if l.eof { - return 0, io.EOF - } - - if len(l.buf) > 0 { - n = copy(p, l.buf) - l.buf = l.buf[n:] - return - } - - line, isPrefix, err := l.in.ReadLine() - if err != nil { - return - } - if isPrefix { - return 0, ArmorCorrupt - } - - if bytes.HasPrefix(line, armorEnd) { - l.eof = true - return 0, io.EOF - } - - if len(line) == 5 && line[0] == '=' { - // This is the checksum line - var expectedBytes [3]byte - var m int - m, err = base64.StdEncoding.Decode(expectedBytes[0:], line[1:]) - if m != 3 || err != nil { - return - } - l.crc = uint32(expectedBytes[0])<<16 | - uint32(expectedBytes[1])<<8 | - uint32(expectedBytes[2]) - - line, _, err = l.in.ReadLine() - if err != nil && err != io.EOF { - return - } - if !bytes.HasPrefix(line, armorEnd) { - return 0, ArmorCorrupt - } - - l.eof = true - l.crcSet = true - return 0, io.EOF - } - - if len(line) > 96 { - return 0, ArmorCorrupt - } - - n = copy(p, line) - bytesToSave := len(line) - n - if bytesToSave > 0 { - if cap(l.buf) < bytesToSave { - l.buf = make([]byte, 0, bytesToSave) - } - l.buf = l.buf[0:bytesToSave] - copy(l.buf, line[n:]) - } - - return -} - -// openpgpReader passes Read calls to the underlying base64 decoder, but keeps -// a running CRC of the resulting data and checks the CRC against the value -// found by the lineReader at EOF. -type openpgpReader struct { - lReader *lineReader - b64Reader io.Reader - currentCRC uint32 -} - -func (r *openpgpReader) Read(p []byte) (n int, err error) { - n, err = r.b64Reader.Read(p) - r.currentCRC = crc24(r.currentCRC, p[:n]) - - if err == io.EOF && r.lReader.crcSet && r.lReader.crc != uint32(r.currentCRC&crc24Mask) { - return 0, ArmorCorrupt - } - - return -} - -// Decode reads a PGP armored block from the given Reader. It will ignore -// leading garbage. If it doesn't find a block, it will return nil, io.EOF. The -// given Reader is not usable after calling this function: an arbitrary amount -// of data may have been read past the end of the block. -func Decode(in io.Reader) (p *Block, err error) { - r := bufio.NewReaderSize(in, 100) - var line []byte - ignoreNext := false - -TryNextBlock: - p = nil - - // Skip leading garbage - for { - ignoreThis := ignoreNext - line, ignoreNext, err = r.ReadLine() - if err != nil { - return - } - if ignoreNext || ignoreThis { - continue - } - line = bytes.TrimSpace(line) - if len(line) > len(armorStart)+len(armorEndOfLine) && bytes.HasPrefix(line, armorStart) { - break - } - } - - p = new(Block) - p.Type = string(line[len(armorStart) : len(line)-len(armorEndOfLine)]) - p.Header = make(map[string]string) - nextIsContinuation := false - var lastKey string - - // Read headers - for { - isContinuation := nextIsContinuation - line, nextIsContinuation, err = r.ReadLine() - if err != nil { - p = nil - return - } - if isContinuation { - p.Header[lastKey] += string(line) - continue - } - line = bytes.TrimSpace(line) - if len(line) == 0 { - break - } - - i := bytes.Index(line, []byte(": ")) - if i == -1 { - goto TryNextBlock - } - lastKey = string(line[:i]) - p.Header[lastKey] = string(line[i+2:]) - } - - p.lReader.in = r - p.oReader.currentCRC = crc24Init - p.oReader.lReader = &p.lReader - p.oReader.b64Reader = base64.NewDecoder(base64.StdEncoding, &p.lReader) - p.Body = &p.oReader - - return -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go deleted file mode 100644 index 6f07582c37..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/armor/encode.go +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package armor - -import ( - "encoding/base64" - "io" -) - -var armorHeaderSep = []byte(": ") -var blockEnd = []byte("\n=") -var newline = []byte("\n") -var armorEndOfLineOut = []byte("-----\n") - -// writeSlices writes its arguments to the given Writer. -func writeSlices(out io.Writer, slices ...[]byte) (err error) { - for _, s := range slices { - _, err = out.Write(s) - if err != nil { - return err - } - } - return -} - -// lineBreaker breaks data across several lines, all of the same byte length -// (except possibly the last). Lines are broken with a single '\n'. -type lineBreaker struct { - lineLength int - line []byte - used int - out io.Writer - haveWritten bool -} - -func newLineBreaker(out io.Writer, lineLength int) *lineBreaker { - return &lineBreaker{ - lineLength: lineLength, - line: make([]byte, lineLength), - used: 0, - out: out, - } -} - -func (l *lineBreaker) Write(b []byte) (n int, err error) { - n = len(b) - - if n == 0 { - return - } - - if l.used == 0 && l.haveWritten { - _, err = l.out.Write([]byte{'\n'}) - if err != nil { - return - } - } - - if l.used+len(b) < l.lineLength { - l.used += copy(l.line[l.used:], b) - return - } - - l.haveWritten = true - _, err = l.out.Write(l.line[0:l.used]) - if err != nil { - return - } - excess := l.lineLength - l.used - l.used = 0 - - _, err = l.out.Write(b[0:excess]) - if err != nil { - return - } - - _, err = l.Write(b[excess:]) - return -} - -func (l *lineBreaker) Close() (err error) { - if l.used > 0 { - _, err = l.out.Write(l.line[0:l.used]) - if err != nil { - return - } - } - - return -} - -// encoding keeps track of a running CRC24 over the data which has been written -// to it and outputs a OpenPGP checksum when closed, followed by an armor -// trailer. -// -// It's built into a stack of io.Writers: -// encoding -> base64 encoder -> lineBreaker -> out -type encoding struct { - out io.Writer - breaker *lineBreaker - b64 io.WriteCloser - crc uint32 - blockType []byte -} - -func (e *encoding) Write(data []byte) (n int, err error) { - e.crc = crc24(e.crc, data) - return e.b64.Write(data) -} - -func (e *encoding) Close() (err error) { - err = e.b64.Close() - if err != nil { - return - } - e.breaker.Close() - - var checksumBytes [3]byte - checksumBytes[0] = byte(e.crc >> 16) - checksumBytes[1] = byte(e.crc >> 8) - checksumBytes[2] = byte(e.crc) - - var b64ChecksumBytes [4]byte - base64.StdEncoding.Encode(b64ChecksumBytes[:], checksumBytes[:]) - - return writeSlices(e.out, blockEnd, b64ChecksumBytes[:], newline, armorEnd, e.blockType, armorEndOfLine) -} - -// Encode returns a WriteCloser which will encode the data written to it in -// OpenPGP armor. -func Encode(out io.Writer, blockType string, headers map[string]string) (w io.WriteCloser, err error) { - bType := []byte(blockType) - err = writeSlices(out, armorStart, bType, armorEndOfLineOut) - if err != nil { - return - } - - for k, v := range headers { - err = writeSlices(out, []byte(k), armorHeaderSep, []byte(v), newline) - if err != nil { - return - } - } - - _, err = out.Write(newline) - if err != nil { - return - } - - e := &encoding{ - out: out, - breaker: newLineBreaker(out, 64), - crc: crc24Init, - blockType: bType, - } - e.b64 = base64.NewEncoder(base64.StdEncoding, e.breaker) - return e, nil -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/canonical_text.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/canonical_text.go deleted file mode 100644 index a94f6150c4..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/canonical_text.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package openpgp - -import ( - "hash" - "io" -) - -// NewCanonicalTextHash reformats text written to it into the canonical -// form and then applies the hash h. See RFC 4880, section 5.2.1. -func NewCanonicalTextHash(h hash.Hash) hash.Hash { - return &canonicalTextHash{h, 0} -} - -type canonicalTextHash struct { - h hash.Hash - s int -} - -var newline = []byte{'\r', '\n'} - -func writeCanonical(cw io.Writer, buf []byte, s *int) (int, error) { - start := 0 - for i, c := range buf { - switch *s { - case 0: - if c == '\r' { - *s = 1 - } else if c == '\n' { - cw.Write(buf[start:i]) - cw.Write(newline) - start = i + 1 - } - case 1: - *s = 0 - } - } - - cw.Write(buf[start:]) - return len(buf), nil -} - -func (cth *canonicalTextHash) Write(buf []byte) (int, error) { - return writeCanonical(cth.h, buf, &cth.s) -} - -func (cth *canonicalTextHash) Sum(in []byte) []byte { - return cth.h.Sum(in) -} - -func (cth *canonicalTextHash) Reset() { - cth.h.Reset() - cth.s = 0 -} - -func (cth *canonicalTextHash) Size() int { - return cth.h.Size() -} - -func (cth *canonicalTextHash) BlockSize() int { - return cth.h.BlockSize() -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/clearsign/clearsign.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/clearsign/clearsign.go deleted file mode 100644 index 9f695623c5..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/clearsign/clearsign.go +++ /dev/null @@ -1,470 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package clearsign generates and processes OpenPGP, clear-signed data. See -// RFC 4880, section 7. -// -// Clearsigned messages are cryptographically signed, but the contents of the -// message are kept in plaintext so that it can be read without special tools. -package clearsign // import "github.com/ProtonMail/go-crypto/openpgp/clearsign" - -import ( - "bufio" - "bytes" - "crypto" - "fmt" - "hash" - "io" - "net/textproto" - "strconv" - "strings" - - "github.com/ProtonMail/go-crypto/openpgp" - "github.com/ProtonMail/go-crypto/openpgp/armor" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/packet" -) - -// A Block represents a clearsigned message. A signature on a Block can -// be checked by calling Block.VerifySignature. -type Block struct { - Headers textproto.MIMEHeader // Optional unverified Hash headers - Plaintext []byte // The original message text - Bytes []byte // The signed message - ArmoredSignature *armor.Block // The signature block -} - -// start is the marker which denotes the beginning of a clearsigned message. -var start = []byte("\n-----BEGIN PGP SIGNED MESSAGE-----") - -// dashEscape is prefixed to any lines that begin with a hyphen so that they -// can't be confused with endText. -var dashEscape = []byte("- ") - -// endText is a marker which denotes the end of the message and the start of -// an armored signature. -var endText = []byte("-----BEGIN PGP SIGNATURE-----") - -// end is a marker which denotes the end of the armored signature. -var end = []byte("\n-----END PGP SIGNATURE-----") - -var crlf = []byte("\r\n") -var lf = byte('\n') - -// getLine returns the first \r\n or \n delineated line from the given byte -// array. The line does not include the \r\n or \n. The remainder of the byte -// array (also not including the new line bytes) is also returned and this will -// always be smaller than the original argument. -func getLine(data []byte) (line, rest []byte) { - i := bytes.Index(data, []byte{'\n'}) - var j int - if i < 0 { - i = len(data) - j = i - } else { - j = i + 1 - if i > 0 && data[i-1] == '\r' { - i-- - } - } - return data[0:i], data[j:] -} - -// Decode finds the first clearsigned message in data and returns it, as well as -// the suffix of data which remains after the message. Any prefix data is -// discarded. -// -// If no message is found, or if the message is invalid, Decode returns nil and -// the whole data slice. The only allowed header type is Hash, and it is not -// verified against the signature hash. -func Decode(data []byte) (b *Block, rest []byte) { - // start begins with a newline. However, at the very beginning of - // the byte array, we'll accept the start string without it. - rest = data - if bytes.HasPrefix(data, start[1:]) { - rest = rest[len(start)-1:] - } else if i := bytes.Index(data, start); i >= 0 { - rest = rest[i+len(start):] - } else { - return nil, data - } - - // Consume the start line and check it does not have a suffix. - suffix, rest := getLine(rest) - if len(suffix) != 0 { - return nil, data - } - - var line []byte - b = &Block{ - Headers: make(textproto.MIMEHeader), - } - - // Next come a series of header lines. - for { - // This loop terminates because getLine's second result is - // always smaller than its argument. - if len(rest) == 0 { - return nil, data - } - // An empty line marks the end of the headers. - if line, rest = getLine(rest); len(line) == 0 { - break - } - - // Reject headers with control or Unicode characters. - if i := bytes.IndexFunc(line, func(r rune) bool { - return r < 0x20 || r > 0x7e - }); i != -1 { - return nil, data - } - - i := bytes.Index(line, []byte{':'}) - if i == -1 { - return nil, data - } - - key, val := string(line[0:i]), string(line[i+1:]) - key = strings.TrimSpace(key) - if key != "Hash" { - return nil, data - } - for _, val := range strings.Split(val, ",") { - val = strings.TrimSpace(val) - b.Headers.Add(key, val) - } - } - - firstLine := true - for { - start := rest - - line, rest = getLine(rest) - if len(line) == 0 && len(rest) == 0 { - // No armored data was found, so this isn't a complete message. - return nil, data - } - if bytes.Equal(line, endText) { - // Back up to the start of the line because armor expects to see the - // header line. - rest = start - break - } - - // The final CRLF isn't included in the hash so we don't write it until - // we've seen the next line. - if firstLine { - firstLine = false - } else { - b.Bytes = append(b.Bytes, crlf...) - } - - if bytes.HasPrefix(line, dashEscape) { - line = line[2:] - } - line = bytes.TrimRight(line, " \t") - b.Bytes = append(b.Bytes, line...) - - b.Plaintext = append(b.Plaintext, line...) - b.Plaintext = append(b.Plaintext, lf) - } - - // We want to find the extent of the armored data (including any newlines at - // the end). - i := bytes.Index(rest, end) - if i == -1 { - return nil, data - } - i += len(end) - for i < len(rest) && (rest[i] == '\r' || rest[i] == '\n') { - i++ - } - armored := rest[:i] - rest = rest[i:] - - var err error - b.ArmoredSignature, err = armor.Decode(bytes.NewBuffer(armored)) - if err != nil { - return nil, data - } - - return b, rest -} - -// A dashEscaper is an io.WriteCloser which processes the body of a clear-signed -// message. The clear-signed message is written to buffered and a hash, suitable -// for signing, is maintained in h. -// -// When closed, an armored signature is created and written to complete the -// message. -type dashEscaper struct { - buffered *bufio.Writer - hashers []hash.Hash // one per key in privateKeys - hashType crypto.Hash - toHash io.Writer // writes to all the hashes in hashers - - atBeginningOfLine bool - isFirstLine bool - - whitespace []byte - byteBuf []byte // a one byte buffer to save allocations - - privateKeys []*packet.PrivateKey - config *packet.Config -} - -func (d *dashEscaper) Write(data []byte) (n int, err error) { - for _, b := range data { - d.byteBuf[0] = b - - if d.atBeginningOfLine { - // The final CRLF isn't included in the hash so we have to wait - // until this point (the start of the next line) before writing it. - if !d.isFirstLine { - d.toHash.Write(crlf) - } - d.isFirstLine = false - } - - // Any whitespace at the end of the line has to be removed so we - // buffer it until we find out whether there's more on this line. - if b == ' ' || b == '\t' || b == '\r' { - d.whitespace = append(d.whitespace, b) - d.atBeginningOfLine = false - continue - } - - if d.atBeginningOfLine { - // At the beginning of a line, hyphens have to be escaped. - if b == '-' { - // The signature isn't calculated over the dash-escaped text so - // the escape is only written to buffered. - if _, err = d.buffered.Write(dashEscape); err != nil { - return - } - d.toHash.Write(d.byteBuf) - d.atBeginningOfLine = false - } else if b == '\n' { - // Nothing to do because we delay writing CRLF to the hash. - } else { - d.toHash.Write(d.byteBuf) - d.atBeginningOfLine = false - } - if err = d.buffered.WriteByte(b); err != nil { - return - } - } else { - if b == '\n' { - // We got a raw \n. Drop any trailing whitespace and write a - // CRLF. - d.whitespace = d.whitespace[:0] - // We delay writing CRLF to the hash until the start of the - // next line. - if err = d.buffered.WriteByte(b); err != nil { - return - } - d.atBeginningOfLine = true - } else { - // Any buffered whitespace wasn't at the end of the line so - // we need to write it out. - if len(d.whitespace) > 0 { - d.toHash.Write(d.whitespace) - if _, err = d.buffered.Write(d.whitespace); err != nil { - return - } - d.whitespace = d.whitespace[:0] - } - d.toHash.Write(d.byteBuf) - if err = d.buffered.WriteByte(b); err != nil { - return - } - } - } - } - - n = len(data) - return -} - -func (d *dashEscaper) Close() (err error) { - if !d.atBeginningOfLine { - if err = d.buffered.WriteByte(lf); err != nil { - return - } - } - - out, err := armor.Encode(d.buffered, "PGP SIGNATURE", nil) - if err != nil { - return - } - - t := d.config.Now() - for i, k := range d.privateKeys { - sig := new(packet.Signature) - sig.SigType = packet.SigTypeText - sig.PubKeyAlgo = k.PubKeyAlgo - sig.Hash = d.hashType - sig.CreationTime = t - sig.IssuerKeyId = &k.KeyId - - if err = sig.Sign(d.hashers[i], k, d.config); err != nil { - return - } - if err = sig.Serialize(out); err != nil { - return - } - } - - if err = out.Close(); err != nil { - return - } - if err = d.buffered.Flush(); err != nil { - return - } - return -} - -// Encode returns a WriteCloser which will clear-sign a message with privateKey -// and write it to w. If config is nil, sensible defaults are used. -func Encode(w io.Writer, privateKey *packet.PrivateKey, config *packet.Config) (plaintext io.WriteCloser, err error) { - return EncodeMulti(w, []*packet.PrivateKey{privateKey}, config) -} - -// EncodeMulti returns a WriteCloser which will clear-sign a message with all the -// private keys indicated and write it to w. If config is nil, sensible defaults -// are used. -func EncodeMulti(w io.Writer, privateKeys []*packet.PrivateKey, config *packet.Config) (plaintext io.WriteCloser, err error) { - for _, k := range privateKeys { - if k.Encrypted { - return nil, errors.InvalidArgumentError(fmt.Sprintf("signing key %s is encrypted", k.KeyIdString())) - } - } - - hashType := config.Hash() - name := nameOfHash(hashType) - if len(name) == 0 { - return nil, errors.UnsupportedError("unknown hash type: " + strconv.Itoa(int(hashType))) - } - - if !hashType.Available() { - return nil, errors.UnsupportedError("unsupported hash type: " + strconv.Itoa(int(hashType))) - } - var hashers []hash.Hash - var ws []io.Writer - for range privateKeys { - h := hashType.New() - hashers = append(hashers, h) - ws = append(ws, h) - } - toHash := io.MultiWriter(ws...) - - buffered := bufio.NewWriter(w) - // start has a \n at the beginning that we don't want here. - if _, err = buffered.Write(start[1:]); err != nil { - return - } - if err = buffered.WriteByte(lf); err != nil { - return - } - if _, err = buffered.WriteString("Hash: "); err != nil { - return - } - if _, err = buffered.WriteString(name); err != nil { - return - } - if err = buffered.WriteByte(lf); err != nil { - return - } - if err = buffered.WriteByte(lf); err != nil { - return - } - - plaintext = &dashEscaper{ - buffered: buffered, - hashers: hashers, - hashType: hashType, - toHash: toHash, - - atBeginningOfLine: true, - isFirstLine: true, - - byteBuf: make([]byte, 1), - - privateKeys: privateKeys, - config: config, - } - - return -} - -// VerifySignature checks a clearsigned message signature, and checks that the -// hash algorithm in the header matches the hash algorithm in the signature. -func (b *Block) VerifySignature(keyring openpgp.KeyRing, config *packet.Config) (signer *openpgp.Entity, err error) { - var expectedHashes []crypto.Hash - for _, v := range b.Headers { - for _, name := range v { - expectedHash := nameToHash(name) - if uint8(expectedHash) == 0 { - return nil, errors.StructuralError("unknown hash algorithm in cleartext message headers") - } - expectedHashes = append(expectedHashes, expectedHash) - } - } - if len(expectedHashes) == 0 { - expectedHashes = append(expectedHashes, crypto.MD5) - } - return openpgp.CheckDetachedSignatureAndHash(keyring, bytes.NewBuffer(b.Bytes), b.ArmoredSignature.Body, expectedHashes, config) -} - -// nameOfHash returns the OpenPGP name for the given hash, or the empty string -// if the name isn't known. See RFC 4880, section 9.4. -func nameOfHash(h crypto.Hash) string { - switch h { - case crypto.MD5: - return "MD5" - case crypto.SHA1: - return "SHA1" - case crypto.RIPEMD160: - return "RIPEMD160" - case crypto.SHA224: - return "SHA224" - case crypto.SHA256: - return "SHA256" - case crypto.SHA384: - return "SHA384" - case crypto.SHA512: - return "SHA512" - case crypto.SHA3_256: - return "SHA3-256" - case crypto.SHA3_512: - return "SHA3-512" - } - return "" -} - -// nameToHash returns a hash for a given OpenPGP name, or 0 -// if the name isn't known. See RFC 4880, section 9.4. -func nameToHash(h string) crypto.Hash { - switch h { - case "MD5": - return crypto.MD5 - case "SHA1": - return crypto.SHA1 - case "RIPEMD160": - return crypto.RIPEMD160 - case "SHA224": - return crypto.SHA224 - case "SHA256": - return crypto.SHA256 - case "SHA384": - return crypto.SHA384 - case "SHA512": - return crypto.SHA512 - case "SHA3-256": - return crypto.SHA3_256 - case "SHA3-512": - return crypto.SHA3_512 - } - return crypto.Hash(0) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdh/ecdh.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdh/ecdh.go deleted file mode 100644 index b09e2a7359..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdh/ecdh.go +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package ecdh implements ECDH encryption, suitable for OpenPGP, -// as specified in RFC 6637, section 8. -package ecdh - -import ( - "bytes" - "errors" - "io" - - "github.com/ProtonMail/go-crypto/openpgp/aes/keywrap" - "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" - "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" -) - -type KDF struct { - Hash algorithm.Hash - Cipher algorithm.Cipher -} - -type PublicKey struct { - curve ecc.ECDHCurve - Point []byte - KDF -} - -type PrivateKey struct { - PublicKey - D []byte -} - -func NewPublicKey(curve ecc.ECDHCurve, kdfHash algorithm.Hash, kdfCipher algorithm.Cipher) *PublicKey { - return &PublicKey{ - curve: curve, - KDF: KDF{ - Hash: kdfHash, - Cipher: kdfCipher, - }, - } -} - -func NewPrivateKey(key PublicKey) *PrivateKey { - return &PrivateKey{ - PublicKey: key, - } -} - -func (pk *PublicKey) GetCurve() ecc.ECDHCurve { - return pk.curve -} - -func (pk *PublicKey) MarshalPoint() []byte { - return pk.curve.MarshalBytePoint(pk.Point) -} - -func (pk *PublicKey) UnmarshalPoint(p []byte) error { - pk.Point = pk.curve.UnmarshalBytePoint(p) - if pk.Point == nil { - return errors.New("ecdh: failed to parse EC point") - } - return nil -} - -func (sk *PrivateKey) MarshalByteSecret() []byte { - return sk.curve.MarshalByteSecret(sk.D) -} - -func (sk *PrivateKey) UnmarshalByteSecret(d []byte) error { - sk.D = sk.curve.UnmarshalByteSecret(d) - - if sk.D == nil { - return errors.New("ecdh: failed to parse scalar") - } - return nil -} - -func GenerateKey(rand io.Reader, c ecc.ECDHCurve, kdf KDF) (priv *PrivateKey, err error) { - priv = new(PrivateKey) - priv.PublicKey.curve = c - priv.PublicKey.KDF = kdf - priv.PublicKey.Point, priv.D, err = c.GenerateECDH(rand) - return -} - -func Encrypt(random io.Reader, pub *PublicKey, msg, curveOID, fingerprint []byte) (vsG, c []byte, err error) { - if len(msg) > 40 { - return nil, nil, errors.New("ecdh: message too long") - } - // the sender MAY use 21, 13, and 5 bytes of padding for AES-128, - // AES-192, and AES-256, respectively, to provide the same number of - // octets, 40 total, as an input to the key wrapping method. - padding := make([]byte, 40-len(msg)) - for i := range padding { - padding[i] = byte(40 - len(msg)) - } - m := append(msg, padding...) - - ephemeral, zb, err := pub.curve.Encaps(random, pub.Point) - if err != nil { - return nil, nil, err - } - - vsG = pub.curve.MarshalBytePoint(ephemeral) - - z, err := buildKey(pub, zb, curveOID, fingerprint, false, false) - if err != nil { - return nil, nil, err - } - - if c, err = keywrap.Wrap(z, m); err != nil { - return nil, nil, err - } - - return vsG, c, nil - -} - -func Decrypt(priv *PrivateKey, vsG, c, curveOID, fingerprint []byte) (msg []byte, err error) { - var m []byte - zb, err := priv.PublicKey.curve.Decaps(priv.curve.UnmarshalBytePoint(vsG), priv.D) - - // Try buildKey three times to workaround an old bug, see comments in buildKey. - for i := 0; i < 3; i++ { - var z []byte - // RFC6637 §8: "Compute Z = KDF( S, Z_len, Param );" - z, err = buildKey(&priv.PublicKey, zb, curveOID, fingerprint, i == 1, i == 2) - if err != nil { - return nil, err - } - - // RFC6637 §8: "Compute C = AESKeyWrap( Z, c ) as per [RFC3394]" - m, err = keywrap.Unwrap(z, c) - if err == nil { - break - } - } - - // Only return an error after we've tried all (required) variants of buildKey. - if err != nil { - return nil, err - } - - // RFC6637 §8: "m = symm_alg_ID || session key || checksum || pkcs5_padding" - // The last byte should be the length of the padding, as per PKCS5; strip it off. - return m[:len(m)-int(m[len(m)-1])], nil -} - -func buildKey(pub *PublicKey, zb []byte, curveOID, fingerprint []byte, stripLeading, stripTrailing bool) ([]byte, error) { - // Param = curve_OID_len || curve_OID || public_key_alg_ID || 03 - // || 01 || KDF_hash_ID || KEK_alg_ID for AESKeyWrap - // || "Anonymous Sender " || recipient_fingerprint; - param := new(bytes.Buffer) - if _, err := param.Write(curveOID); err != nil { - return nil, err - } - algKDF := []byte{18, 3, 1, pub.KDF.Hash.Id(), pub.KDF.Cipher.Id()} - if _, err := param.Write(algKDF); err != nil { - return nil, err - } - if _, err := param.Write([]byte("Anonymous Sender ")); err != nil { - return nil, err - } - // For v5 keys, the 20 leftmost octets of the fingerprint are used. - if _, err := param.Write(fingerprint[:20]); err != nil { - return nil, err - } - if param.Len() - len(curveOID) != 45 { - return nil, errors.New("ecdh: malformed KDF Param") - } - - // MB = Hash ( 00 || 00 || 00 || 01 || ZB || Param ); - h := pub.KDF.Hash.New() - if _, err := h.Write([]byte{0x0, 0x0, 0x0, 0x1}); err != nil { - return nil, err - } - zbLen := len(zb) - i := 0 - j := zbLen - 1 - if stripLeading { - // Work around old go crypto bug where the leading zeros are missing. - for ; i < zbLen && zb[i] == 0; i++ {} - } - if stripTrailing { - // Work around old OpenPGP.js bug where insignificant trailing zeros in - // this little-endian number are missing. - // (See https://github.com/openpgpjs/openpgpjs/pull/853.) - for ; j >= 0 && zb[j] == 0; j-- {} - } - if _, err := h.Write(zb[i:j+1]); err != nil { - return nil, err - } - if _, err := h.Write(param.Bytes()); err != nil { - return nil, err - } - mb := h.Sum(nil) - - return mb[:pub.KDF.Cipher.KeySize()], nil // return oBits leftmost bits of MB. - -} - -func Validate(priv *PrivateKey) error { - return priv.curve.ValidateECDH(priv.Point, priv.D) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdsa/ecdsa.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdsa/ecdsa.go deleted file mode 100644 index 6682a21a60..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/ecdsa/ecdsa.go +++ /dev/null @@ -1,80 +0,0 @@ -// Package ecdsa implements ECDSA signature, suitable for OpenPGP, -// as specified in RFC 6637, section 5. -package ecdsa - -import ( - "errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" - "io" - "math/big" -) - -type PublicKey struct { - X, Y *big.Int - curve ecc.ECDSACurve -} - -type PrivateKey struct { - PublicKey - D *big.Int -} - -func NewPublicKey(curve ecc.ECDSACurve) *PublicKey { - return &PublicKey{ - curve: curve, - } -} - -func NewPrivateKey(key PublicKey) *PrivateKey { - return &PrivateKey{ - PublicKey: key, - } -} - -func (pk *PublicKey) GetCurve() ecc.ECDSACurve { - return pk.curve -} - -func (pk *PublicKey) MarshalPoint() []byte { - return pk.curve.MarshalIntegerPoint(pk.X, pk.Y) -} - -func (pk *PublicKey) UnmarshalPoint(p []byte) error { - pk.X, pk.Y = pk.curve.UnmarshalIntegerPoint(p) - if pk.X == nil { - return errors.New("ecdsa: failed to parse EC point") - } - return nil -} - -func (sk *PrivateKey) MarshalIntegerSecret() []byte { - return sk.curve.MarshalIntegerSecret(sk.D) -} - -func (sk *PrivateKey) UnmarshalIntegerSecret(d []byte) error { - sk.D = sk.curve.UnmarshalIntegerSecret(d) - - if sk.D == nil { - return errors.New("ecdsa: failed to parse scalar") - } - return nil -} - -func GenerateKey(rand io.Reader, c ecc.ECDSACurve) (priv *PrivateKey, err error) { - priv = new(PrivateKey) - priv.PublicKey.curve = c - priv.PublicKey.X, priv.PublicKey.Y, priv.D, err = c.GenerateECDSA(rand) - return -} - -func Sign(rand io.Reader, priv *PrivateKey, hash []byte) (r, s *big.Int, err error) { - return priv.PublicKey.curve.Sign(rand, priv.X, priv.Y, priv.D, hash) -} - -func Verify(pub *PublicKey, hash []byte, r, s *big.Int) bool { - return pub.curve.Verify(pub.X, pub.Y, hash, r, s) -} - -func Validate(priv *PrivateKey) error { - return priv.curve.ValidateECDSA(priv.X, priv.Y, priv.D.Bytes()) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/eddsa/eddsa.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/eddsa/eddsa.go deleted file mode 100644 index 12866c12df..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/eddsa/eddsa.go +++ /dev/null @@ -1,91 +0,0 @@ -// Package eddsa implements EdDSA signature, suitable for OpenPGP, as specified in -// https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-13.7 -package eddsa - -import ( - "errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" - "io" -) - -type PublicKey struct { - X []byte - curve ecc.EdDSACurve -} - -type PrivateKey struct { - PublicKey - D []byte -} - -func NewPublicKey(curve ecc.EdDSACurve) *PublicKey { - return &PublicKey{ - curve: curve, - } -} - -func NewPrivateKey(key PublicKey) *PrivateKey { - return &PrivateKey{ - PublicKey: key, - } -} - -func (pk *PublicKey) GetCurve() ecc.EdDSACurve { - return pk.curve -} - -func (pk *PublicKey) MarshalPoint() []byte { - return pk.curve.MarshalBytePoint(pk.X) -} - -func (pk *PublicKey) UnmarshalPoint(x []byte) error { - pk.X = pk.curve.UnmarshalBytePoint(x) - - if pk.X == nil { - return errors.New("eddsa: failed to parse EC point") - } - return nil -} - -func (sk *PrivateKey) MarshalByteSecret() []byte { - return sk.curve.MarshalByteSecret(sk.D) -} - -func (sk *PrivateKey) UnmarshalByteSecret(d []byte) error { - sk.D = sk.curve.UnmarshalByteSecret(d) - - if sk.D == nil { - return errors.New("eddsa: failed to parse scalar") - } - return nil -} - -func GenerateKey(rand io.Reader, c ecc.EdDSACurve) (priv *PrivateKey, err error) { - priv = new(PrivateKey) - priv.PublicKey.curve = c - priv.PublicKey.X, priv.D, err = c.GenerateEdDSA(rand) - return -} - -func Sign(priv *PrivateKey, message []byte) (r, s []byte, err error) { - sig, err := priv.PublicKey.curve.Sign(priv.PublicKey.X, priv.D, message) - if err != nil { - return nil, nil, err - } - - r, s = priv.PublicKey.curve.MarshalSignature(sig) - return -} - -func Verify(pub *PublicKey, message, r, s []byte) bool { - sig := pub.curve.UnmarshalSignature(r, s) - if sig == nil { - return false - } - - return pub.curve.Verify(pub.X, message, sig) -} - -func Validate(priv *PrivateKey) error { - return priv.curve.ValidateEdDSA(priv.PublicKey.X, priv.D) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/elgamal/elgamal.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/elgamal/elgamal.go deleted file mode 100644 index 6a07d8ff27..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/elgamal/elgamal.go +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package elgamal implements ElGamal encryption, suitable for OpenPGP, -// as specified in "A Public-Key Cryptosystem and a Signature Scheme Based on -// Discrete Logarithms," IEEE Transactions on Information Theory, v. IT-31, -// n. 4, 1985, pp. 469-472. -// -// This form of ElGamal embeds PKCS#1 v1.5 padding, which may make it -// unsuitable for other protocols. RSA should be used in preference in any -// case. -package elgamal // import "github.com/ProtonMail/go-crypto/openpgp/elgamal" - -import ( - "crypto/rand" - "crypto/subtle" - "errors" - "io" - "math/big" -) - -// PublicKey represents an ElGamal public key. -type PublicKey struct { - G, P, Y *big.Int -} - -// PrivateKey represents an ElGamal private key. -type PrivateKey struct { - PublicKey - X *big.Int -} - -// Encrypt encrypts the given message to the given public key. The result is a -// pair of integers. Errors can result from reading random, or because msg is -// too large to be encrypted to the public key. -func Encrypt(random io.Reader, pub *PublicKey, msg []byte) (c1, c2 *big.Int, err error) { - pLen := (pub.P.BitLen() + 7) / 8 - if len(msg) > pLen-11 { - err = errors.New("elgamal: message too long") - return - } - - // EM = 0x02 || PS || 0x00 || M - em := make([]byte, pLen-1) - em[0] = 2 - ps, mm := em[1:len(em)-len(msg)-1], em[len(em)-len(msg):] - err = nonZeroRandomBytes(ps, random) - if err != nil { - return - } - em[len(em)-len(msg)-1] = 0 - copy(mm, msg) - - m := new(big.Int).SetBytes(em) - - k, err := rand.Int(random, pub.P) - if err != nil { - return - } - - c1 = new(big.Int).Exp(pub.G, k, pub.P) - s := new(big.Int).Exp(pub.Y, k, pub.P) - c2 = s.Mul(s, m) - c2.Mod(c2, pub.P) - - return -} - -// Decrypt takes two integers, resulting from an ElGamal encryption, and -// returns the plaintext of the message. An error can result only if the -// ciphertext is invalid. Users should keep in mind that this is a padding -// oracle and thus, if exposed to an adaptive chosen ciphertext attack, can -// be used to break the cryptosystem. See ``Chosen Ciphertext Attacks -// Against Protocols Based on the RSA Encryption Standard PKCS #1'', Daniel -// Bleichenbacher, Advances in Cryptology (Crypto '98), -func Decrypt(priv *PrivateKey, c1, c2 *big.Int) (msg []byte, err error) { - s := new(big.Int).Exp(c1, priv.X, priv.P) - if s.ModInverse(s, priv.P) == nil { - return nil, errors.New("elgamal: invalid private key") - } - s.Mul(s, c2) - s.Mod(s, priv.P) - em := s.Bytes() - - firstByteIsTwo := subtle.ConstantTimeByteEq(em[0], 2) - - // The remainder of the plaintext must be a string of non-zero random - // octets, followed by a 0, followed by the message. - // lookingForIndex: 1 iff we are still looking for the zero. - // index: the offset of the first zero byte. - var lookingForIndex, index int - lookingForIndex = 1 - - for i := 1; i < len(em); i++ { - equals0 := subtle.ConstantTimeByteEq(em[i], 0) - index = subtle.ConstantTimeSelect(lookingForIndex&equals0, i, index) - lookingForIndex = subtle.ConstantTimeSelect(equals0, 0, lookingForIndex) - } - - if firstByteIsTwo != 1 || lookingForIndex != 0 || index < 9 { - return nil, errors.New("elgamal: decryption error") - } - return em[index+1:], nil -} - -// nonZeroRandomBytes fills the given slice with non-zero random octets. -func nonZeroRandomBytes(s []byte, rand io.Reader) (err error) { - _, err = io.ReadFull(rand, s) - if err != nil { - return - } - - for i := 0; i < len(s); i++ { - for s[i] == 0 { - _, err = io.ReadFull(rand, s[i:i+1]) - if err != nil { - return - } - } - } - - return -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go deleted file mode 100644 index 17e2bcfed2..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/errors/errors.go +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package errors contains common error types for the OpenPGP packages. -package errors // import "github.com/ProtonMail/go-crypto/openpgp/errors" - -import ( - "strconv" -) - -// A StructuralError is returned when OpenPGP data is found to be syntactically -// invalid. -type StructuralError string - -func (s StructuralError) Error() string { - return "openpgp: invalid data: " + string(s) -} - -// UnsupportedError indicates that, although the OpenPGP data is valid, it -// makes use of currently unimplemented features. -type UnsupportedError string - -func (s UnsupportedError) Error() string { - return "openpgp: unsupported feature: " + string(s) -} - -// InvalidArgumentError indicates that the caller is in error and passed an -// incorrect value. -type InvalidArgumentError string - -func (i InvalidArgumentError) Error() string { - return "openpgp: invalid argument: " + string(i) -} - -// SignatureError indicates that a syntactically valid signature failed to -// validate. -type SignatureError string - -func (b SignatureError) Error() string { - return "openpgp: invalid signature: " + string(b) -} - -var ErrMDCHashMismatch error = SignatureError("MDC hash mismatch") -var ErrMDCMissing error = SignatureError("MDC packet not found") - -type signatureExpiredError int - -func (se signatureExpiredError) Error() string { - return "openpgp: signature expired" -} - -var ErrSignatureExpired error = signatureExpiredError(0) - -type keyExpiredError int - -func (ke keyExpiredError) Error() string { - return "openpgp: key expired" -} - -var ErrKeyExpired error = keyExpiredError(0) - -type keyIncorrectError int - -func (ki keyIncorrectError) Error() string { - return "openpgp: incorrect key" -} - -var ErrKeyIncorrect error = keyIncorrectError(0) - -// KeyInvalidError indicates that the public key parameters are invalid -// as they do not match the private ones -type KeyInvalidError string - -func (e KeyInvalidError) Error() string { - return "openpgp: invalid key: " + string(e) -} - -type unknownIssuerError int - -func (unknownIssuerError) Error() string { - return "openpgp: signature made by unknown entity" -} - -var ErrUnknownIssuer error = unknownIssuerError(0) - -type keyRevokedError int - -func (keyRevokedError) Error() string { - return "openpgp: signature made by revoked key" -} - -var ErrKeyRevoked error = keyRevokedError(0) - -type UnknownPacketTypeError uint8 - -func (upte UnknownPacketTypeError) Error() string { - return "openpgp: unknown packet type: " + strconv.Itoa(int(upte)) -} - -// AEADError indicates that there is a problem when initializing or using a -// AEAD instance, configuration struct, nonces or index values. -type AEADError string - -func (ae AEADError) Error() string { - return "openpgp: aead error: " + string(ae) -} - -// ErrDummyPrivateKey results when operations are attempted on a private key -// that is just a dummy key. See -// https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=doc/DETAILS;h=fe55ae16ab4e26d8356dc574c9e8bc935e71aef1;hb=23191d7851eae2217ecdac6484349849a24fd94a#l1109 -type ErrDummyPrivateKey string - -func (dke ErrDummyPrivateKey) Error() string { - return "openpgp: s2k GNU dummy key: " + string(dke) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/aead.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/aead.go deleted file mode 100644 index d067065186..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/aead.go +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (C) 2019 ProtonTech AG - -package algorithm - -import ( - "crypto/cipher" - "github.com/ProtonMail/go-crypto/eax" - "github.com/ProtonMail/go-crypto/ocb" -) - -// AEADMode defines the Authenticated Encryption with Associated Data mode of -// operation. -type AEADMode uint8 - -// Supported modes of operation (see RFC4880bis [EAX] and RFC7253) -const ( - AEADModeEAX = AEADMode(1) - AEADModeOCB = AEADMode(2) - AEADModeGCM = AEADMode(3) -) - -// TagLength returns the length in bytes of authentication tags. -func (mode AEADMode) TagLength() int { - switch mode { - case AEADModeEAX: - return 16 - case AEADModeOCB: - return 16 - case AEADModeGCM: - return 16 - default: - return 0 - } -} - -// NonceLength returns the length in bytes of nonces. -func (mode AEADMode) NonceLength() int { - switch mode { - case AEADModeEAX: - return 16 - case AEADModeOCB: - return 15 - case AEADModeGCM: - return 12 - default: - return 0 - } -} - -// New returns a fresh instance of the given mode -func (mode AEADMode) New(block cipher.Block) (alg cipher.AEAD) { - var err error - switch mode { - case AEADModeEAX: - alg, err = eax.NewEAX(block) - case AEADModeOCB: - alg, err = ocb.NewOCB(block) - case AEADModeGCM: - alg, err = cipher.NewGCM(block) - } - if err != nil { - panic(err.Error()) - } - return alg -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/cipher.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/cipher.go deleted file mode 100644 index 5760cff80e..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/cipher.go +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package algorithm - -import ( - "crypto/aes" - "crypto/cipher" - "crypto/des" - - "golang.org/x/crypto/cast5" -) - -// Cipher is an official symmetric key cipher algorithm. See RFC 4880, -// section 9.2. -type Cipher interface { - // Id returns the algorithm ID, as a byte, of the cipher. - Id() uint8 - // KeySize returns the key size, in bytes, of the cipher. - KeySize() int - // BlockSize returns the block size, in bytes, of the cipher. - BlockSize() int - // New returns a fresh instance of the given cipher. - New(key []byte) cipher.Block -} - -// The following constants mirror the OpenPGP standard (RFC 4880). -const ( - TripleDES = CipherFunction(2) - CAST5 = CipherFunction(3) - AES128 = CipherFunction(7) - AES192 = CipherFunction(8) - AES256 = CipherFunction(9) -) - -// CipherById represents the different block ciphers specified for OpenPGP. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-13 -var CipherById = map[uint8]Cipher{ - TripleDES.Id(): TripleDES, - CAST5.Id(): CAST5, - AES128.Id(): AES128, - AES192.Id(): AES192, - AES256.Id(): AES256, -} - -type CipherFunction uint8 - -// ID returns the algorithm Id, as a byte, of cipher. -func (sk CipherFunction) Id() uint8 { - return uint8(sk) -} - -var keySizeByID = map[uint8]int{ - TripleDES.Id(): 24, - CAST5.Id(): cast5.KeySize, - AES128.Id(): 16, - AES192.Id(): 24, - AES256.Id(): 32, -} - -// KeySize returns the key size, in bytes, of cipher. -func (cipher CipherFunction) KeySize() int { - switch cipher { - case TripleDES: - return 24 - case CAST5: - return cast5.KeySize - case AES128: - return 16 - case AES192: - return 24 - case AES256: - return 32 - } - return 0 -} - -// BlockSize returns the block size, in bytes, of cipher. -func (cipher CipherFunction) BlockSize() int { - switch cipher { - case TripleDES: - return des.BlockSize - case CAST5: - return 8 - case AES128, AES192, AES256: - return 16 - } - return 0 -} - -// New returns a fresh instance of the given cipher. -func (cipher CipherFunction) New(key []byte) (block cipher.Block) { - var err error - switch cipher { - case TripleDES: - block, err = des.NewTripleDESCipher(key) - case CAST5: - block, err = cast5.NewCipher(key) - case AES128, AES192, AES256: - block, err = aes.NewCipher(key) - } - if err != nil { - panic(err.Error()) - } - return -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/hash.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/hash.go deleted file mode 100644 index f0a1815fbd..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/algorithm/hash.go +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package algorithm - -import ( - "crypto" - "fmt" - "hash" -) - -// Hash is an official hash function algorithm. See RFC 4880, section 9.4. -type Hash interface { - // Id returns the algorithm ID, as a byte, of Hash. - Id() uint8 - // Available reports whether the given hash function is linked into the binary. - Available() bool - // HashFunc simply returns the value of h so that Hash implements SignerOpts. - HashFunc() crypto.Hash - // New returns a new hash.Hash calculating the given hash function. New - // panics if the hash function is not linked into the binary. - New() hash.Hash - // Size returns the length, in bytes, of a digest resulting from the given - // hash function. It doesn't require that the hash function in question be - // linked into the program. - Size() int - // String is the name of the hash function corresponding to the given - // OpenPGP hash id. - String() string -} - -// The following vars mirror the crypto/Hash supported hash functions. -var ( - MD5 Hash = cryptoHash{1, crypto.MD5} - SHA1 Hash = cryptoHash{2, crypto.SHA1} - RIPEMD160 Hash = cryptoHash{3, crypto.RIPEMD160} - SHA256 Hash = cryptoHash{8, crypto.SHA256} - SHA384 Hash = cryptoHash{9, crypto.SHA384} - SHA512 Hash = cryptoHash{10, crypto.SHA512} - SHA224 Hash = cryptoHash{11, crypto.SHA224} - SHA3_256 Hash = cryptoHash{12, crypto.SHA3_256} - SHA3_512 Hash = cryptoHash{14, crypto.SHA3_512} -) - -// HashById represents the different hash functions specified for OpenPGP. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-14 -var ( - HashById = map[uint8]Hash{ - MD5.Id(): MD5, - SHA1.Id(): SHA1, - RIPEMD160.Id(): RIPEMD160, - SHA256.Id(): SHA256, - SHA384.Id(): SHA384, - SHA512.Id(): SHA512, - SHA224.Id(): SHA224, - SHA3_256.Id(): SHA3_256, - SHA3_512.Id(): SHA3_512, - } -) - -// cryptoHash contains pairs relating OpenPGP's hash identifier with -// Go's crypto.Hash type. See RFC 4880, section 9.4. -type cryptoHash struct { - id uint8 - crypto.Hash -} - -// Id returns the algorithm ID, as a byte, of cryptoHash. -func (h cryptoHash) Id() uint8 { - return h.id -} - -var hashNames = map[uint8]string{ - MD5.Id(): "MD5", - SHA1.Id(): "SHA1", - RIPEMD160.Id(): "RIPEMD160", - SHA256.Id(): "SHA256", - SHA384.Id(): "SHA384", - SHA512.Id(): "SHA512", - SHA224.Id(): "SHA224", - SHA3_256.Id(): "SHA3-256", - SHA3_512.Id(): "SHA3-512", -} - -func (h cryptoHash) String() string { - s, ok := hashNames[h.id] - if !ok { - panic(fmt.Sprintf("Unsupported hash function %d", h.id)) - } - return s -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.go deleted file mode 100644 index 266635ec57..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve25519.go +++ /dev/null @@ -1,171 +0,0 @@ -// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. -package ecc - -import ( - "crypto/subtle" - "io" - - "github.com/ProtonMail/go-crypto/openpgp/errors" - x25519lib "github.com/cloudflare/circl/dh/x25519" -) - -type curve25519 struct {} - -func NewCurve25519() *curve25519 { - return &curve25519{} -} - -func (c *curve25519) GetCurveName() string { - return "curve25519" -} - -// MarshalBytePoint encodes the public point from native format, adding the prefix. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6 -func (c *curve25519) MarshalBytePoint(point [] byte) []byte { - return append([]byte{0x40}, point...) -} - -// UnmarshalBytePoint decodes the public point to native format, removing the prefix. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6 -func (c *curve25519) UnmarshalBytePoint(point []byte) []byte { - if len(point) != x25519lib.Size + 1 { - return nil - } - - // Remove prefix - return point[1:] -} - -// MarshalByteSecret encodes the secret scalar from native format. -// Note that the EC secret scalar differs from the definition of public keys in -// [Curve25519] in two ways: (1) the byte-ordering is big-endian, which is -// more uniform with how big integers are represented in OpenPGP, and (2) the -// leading zeros are truncated. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6.1.1 -// Note that leading zero bytes are stripped later when encoding as an MPI. -func (c *curve25519) MarshalByteSecret(secret []byte) []byte { - d := make([]byte, x25519lib.Size) - copyReversed(d, secret) - - // The following ensures that the private key is a number of the form - // 2^{254} + 8 * [0, 2^{251}), in order to avoid the small subgroup of - // the curve. - // - // This masking is done internally in the underlying lib and so is unnecessary - // for security, but OpenPGP implementations require that private keys be - // pre-masked. - d[0] &= 127 - d[0] |= 64 - d[31] &= 248 - - return d -} - -// UnmarshalByteSecret decodes the secret scalar from native format. -// Note that the EC secret scalar differs from the definition of public keys in -// [Curve25519] in two ways: (1) the byte-ordering is big-endian, which is -// more uniform with how big integers are represented in OpenPGP, and (2) the -// leading zeros are truncated. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6.1.1 -func (c *curve25519) UnmarshalByteSecret(d []byte) []byte { - if len(d) > x25519lib.Size { - return nil - } - - // Ensure truncated leading bytes are re-added - secret := make([]byte, x25519lib.Size) - copyReversed(secret, d) - - return secret -} - -// generateKeyPairBytes Generates a private-public key-pair. -// 'priv' is a private key; a little-endian scalar belonging to the set -// 2^{254} + 8 * [0, 2^{251}), in order to avoid the small subgroup of the -// curve. 'pub' is simply 'priv' * G where G is the base point. -// See https://cr.yp.to/ecdh.html and RFC7748, sec 5. -func (c *curve25519) generateKeyPairBytes(rand io.Reader) (priv, pub x25519lib.Key, err error) { - _, err = io.ReadFull(rand, priv[:]) - if err != nil { - return - } - - x25519lib.KeyGen(&pub, &priv) - return -} - -func (c *curve25519) GenerateECDH(rand io.Reader) (point []byte, secret []byte, err error) { - priv, pub, err := c.generateKeyPairBytes(rand) - if err != nil { - return - } - - return pub[:], priv[:], nil -} - -func (c *genericCurve) MaskSecret(secret []byte) []byte { - return secret -} - -func (c *curve25519) Encaps(rand io.Reader, point []byte) (ephemeral, sharedSecret []byte, err error) { - // RFC6637 §8: "Generate an ephemeral key pair {v, V=vG}" - // ephemeralPrivate corresponds to `v`. - // ephemeralPublic corresponds to `V`. - ephemeralPrivate, ephemeralPublic, err := c.generateKeyPairBytes(rand) - if err != nil { - return nil, nil, err - } - - // RFC6637 §8: "Obtain the authenticated recipient public key R" - // pubKey corresponds to `R`. - var pubKey x25519lib.Key - copy(pubKey[:], point) - - // RFC6637 §8: "Compute the shared point S = vR" - // "VB = convert point V to the octet string" - // sharedPoint corresponds to `VB`. - var sharedPoint x25519lib.Key - x25519lib.Shared(&sharedPoint, &ephemeralPrivate, &pubKey) - - return ephemeralPublic[:], sharedPoint[:], nil -} - -func (c *curve25519) Decaps(vsG, secret []byte) (sharedSecret []byte, err error) { - var ephemeralPublic, decodedPrivate, sharedPoint x25519lib.Key - // RFC6637 §8: "The decryption is the inverse of the method given." - // All quoted descriptions in comments below describe encryption, and - // the reverse is performed. - // vsG corresponds to `VB` in RFC6637 §8 . - - // RFC6637 §8: "VB = convert point V to the octet string" - copy(ephemeralPublic[:], vsG) - - // decodedPrivate corresponds to `r` in RFC6637 §8 . - copy(decodedPrivate[:], secret) - - // RFC6637 §8: "Note that the recipient obtains the shared secret by calculating - // S = rV = rvG, where (r,R) is the recipient's key pair." - // sharedPoint corresponds to `S`. - x25519lib.Shared(&sharedPoint, &decodedPrivate, &ephemeralPublic) - - return sharedPoint[:], nil -} - -func (c *curve25519) ValidateECDH(point []byte, secret []byte) (err error) { - var pk, sk x25519lib.Key - copy(sk[:], secret) - x25519lib.KeyGen(&pk, &sk) - - if subtle.ConstantTimeCompare(point, pk[:]) == 0 { - return errors.KeyInvalidError("ecc: invalid curve25519 public point") - } - - return nil -} - -func copyReversed(out []byte, in []byte) { - l := len(in) - for i := 0; i < l; i++ { - out[i] = in[l-i-1] - } -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve_info.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve_info.go deleted file mode 100644 index df2878c957..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curve_info.go +++ /dev/null @@ -1,140 +0,0 @@ -// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. -package ecc - -import ( - "bytes" - "crypto/elliptic" - "github.com/ProtonMail/go-crypto/bitcurves" - "github.com/ProtonMail/go-crypto/brainpool" - "github.com/ProtonMail/go-crypto/openpgp/internal/encoding" -) - -type CurveInfo struct { - GenName string - Oid *encoding.OID - Curve Curve -} - -var Curves = []CurveInfo{ - { - // NIST P-256 - GenName: "P256", - Oid: encoding.NewOID([]byte{0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07}), - Curve: NewGenericCurve(elliptic.P256()), - }, - { - // NIST P-384 - GenName: "P384", - Oid: encoding.NewOID([]byte{0x2B, 0x81, 0x04, 0x00, 0x22}), - Curve: NewGenericCurve(elliptic.P384()), - }, - { - // NIST P-521 - GenName: "P521", - Oid: encoding.NewOID([]byte{0x2B, 0x81, 0x04, 0x00, 0x23}), - Curve: NewGenericCurve(elliptic.P521()), - }, - { - // SecP256k1 - GenName: "SecP256k1", - Oid: encoding.NewOID([]byte{0x2B, 0x81, 0x04, 0x00, 0x0A}), - Curve: NewGenericCurve(bitcurves.S256()), - }, - { - // Curve25519 - GenName: "Curve25519", - Oid: encoding.NewOID([]byte{0x2B, 0x06, 0x01, 0x04, 0x01, 0x97, 0x55, 0x01, 0x05, 0x01}), - Curve: NewCurve25519(), - }, - { - // X448 - GenName: "Curve448", - Oid: encoding.NewOID([]byte{0x2B, 0x65, 0x6F}), - Curve: NewX448(), - }, - { - // Ed25519 - GenName: "Curve25519", - Oid: encoding.NewOID([]byte{0x2B, 0x06, 0x01, 0x04, 0x01, 0xDA, 0x47, 0x0F, 0x01}), - Curve: NewEd25519(), - }, - { - // Ed448 - GenName: "Curve448", - Oid: encoding.NewOID([]byte{0x2B, 0x65, 0x71}), - Curve: NewEd448(), - }, - { - // BrainpoolP256r1 - GenName: "BrainpoolP256", - Oid: encoding.NewOID([]byte{0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x07}), - Curve: NewGenericCurve(brainpool.P256r1()), - }, - { - // BrainpoolP384r1 - GenName: "BrainpoolP384", - Oid: encoding.NewOID([]byte{0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0B}), - Curve: NewGenericCurve(brainpool.P384r1()), - }, - { - // BrainpoolP512r1 - GenName: "BrainpoolP512", - Oid: encoding.NewOID([]byte{0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0D}), - Curve: NewGenericCurve(brainpool.P512r1()), - }, -} - -func FindByCurve(curve Curve) *CurveInfo { - for _, curveInfo := range Curves { - if curveInfo.Curve.GetCurveName() == curve.GetCurveName() { - return &curveInfo - } - } - return nil -} - -func FindByOid(oid encoding.Field) *CurveInfo { - var rawBytes = oid.Bytes() - for _, curveInfo := range Curves { - if bytes.Equal(curveInfo.Oid.Bytes(), rawBytes) { - return &curveInfo - } - } - return nil -} - -func FindEdDSAByGenName(curveGenName string) EdDSACurve { - for _, curveInfo := range Curves { - if curveInfo.GenName == curveGenName { - curve, ok := curveInfo.Curve.(EdDSACurve) - if ok { - return curve - } - } - } - return nil -} - -func FindECDSAByGenName(curveGenName string) ECDSACurve { - for _, curveInfo := range Curves { - if curveInfo.GenName == curveGenName { - curve, ok := curveInfo.Curve.(ECDSACurve) - if ok { - return curve - } - } - } - return nil -} - -func FindECDHByGenName(curveGenName string) ECDHCurve { - for _, curveInfo := range Curves { - if curveInfo.GenName == curveGenName { - curve, ok := curveInfo.Curve.(ECDHCurve) - if ok { - return curve - } - } - } - return nil -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curves.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curves.go deleted file mode 100644 index c47072b49e..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/curves.go +++ /dev/null @@ -1,48 +0,0 @@ -// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. -package ecc - -import ( - "io" - "math/big" -) - -type Curve interface { - GetCurveName() string -} - -type ECDSACurve interface { - Curve - MarshalIntegerPoint(x, y *big.Int) []byte - UnmarshalIntegerPoint([]byte) (x, y *big.Int) - MarshalIntegerSecret(d *big.Int) []byte - UnmarshalIntegerSecret(d []byte) *big.Int - GenerateECDSA(rand io.Reader) (x, y, secret *big.Int, err error) - Sign(rand io.Reader, x, y, d *big.Int, hash []byte) (r, s *big.Int, err error) - Verify(x, y *big.Int, hash []byte, r, s *big.Int) bool - ValidateECDSA(x, y *big.Int, secret []byte) error -} - -type EdDSACurve interface { - Curve - MarshalBytePoint(x []byte) []byte - UnmarshalBytePoint([]byte) (x []byte) - MarshalByteSecret(d []byte) []byte - UnmarshalByteSecret(d []byte) []byte - MarshalSignature(sig []byte) (r, s []byte) - UnmarshalSignature(r, s []byte) (sig []byte) - GenerateEdDSA(rand io.Reader) (pub, priv []byte, err error) - Sign(publicKey, privateKey, message []byte) (sig []byte, err error) - Verify(publicKey, message, sig []byte) bool - ValidateEdDSA(publicKey, privateKey []byte) (err error) -} -type ECDHCurve interface { - Curve - MarshalBytePoint([]byte) (encoded []byte) - UnmarshalBytePoint(encoded []byte) ([]byte) - MarshalByteSecret(d []byte) []byte - UnmarshalByteSecret(d []byte) []byte - GenerateECDH(rand io.Reader) (point []byte, secret []byte, err error) - Encaps(rand io.Reader, point []byte) (ephemeral, sharedSecret []byte, err error) - Decaps(ephemeral, secret []byte) (sharedSecret []byte, err error) - ValidateECDH(public []byte, secret []byte) error -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed25519.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed25519.go deleted file mode 100644 index 29f6cba9d8..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed25519.go +++ /dev/null @@ -1,111 +0,0 @@ -// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. -package ecc - -import ( - "crypto/subtle" - "io" - - "github.com/ProtonMail/go-crypto/openpgp/errors" - ed25519lib "github.com/cloudflare/circl/sign/ed25519" -) - -const ed25519Size = 32 -type ed25519 struct {} - -func NewEd25519() *ed25519 { - return &ed25519{} -} - -func (c *ed25519) GetCurveName() string { - return "ed25519" -} - -// MarshalBytePoint encodes the public point from native format, adding the prefix. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 -func (c *ed25519) MarshalBytePoint(x []byte) []byte { - return append([]byte{0x40}, x...) -} - -// UnmarshalBytePoint decodes a point from prefixed format to native. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 -func (c *ed25519) UnmarshalBytePoint(point []byte) (x []byte) { - if len(point) != ed25519lib.PublicKeySize + 1 { - return nil - } - - // Return unprefixed - return point[1:] -} - -// MarshalByteSecret encodes a scalar in native format. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 -func (c *ed25519) MarshalByteSecret(d []byte) []byte { - return d -} - -// UnmarshalByteSecret decodes a scalar in native format and re-adds the stripped leading zeroes -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 -func (c *ed25519) UnmarshalByteSecret(s []byte) (d []byte) { - if len(s) > ed25519lib.SeedSize { - return nil - } - - // Handle stripped leading zeroes - d = make([]byte, ed25519lib.SeedSize) - copy(d[ed25519lib.SeedSize - len(s):], s) - return -} - -// MarshalSignature splits a signature in R and S. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.2.3.3.1 -func (c *ed25519) MarshalSignature(sig []byte) (r, s []byte) { - return sig[:ed25519Size], sig[ed25519Size:] -} - -// UnmarshalSignature decodes R and S in the native format, re-adding the stripped leading zeroes -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.2.3.3.1 -func (c *ed25519) UnmarshalSignature(r, s []byte) (sig []byte) { - // Check size - if len(r) > 32 || len(s) > 32 { - return nil - } - - sig = make([]byte, ed25519lib.SignatureSize) - - // Handle stripped leading zeroes - copy(sig[ed25519Size-len(r):ed25519Size], r) - copy(sig[ed25519lib.SignatureSize-len(s):], s) - return sig -} - -func (c *ed25519) GenerateEdDSA(rand io.Reader) (pub, priv []byte, err error) { - pk, sk, err := ed25519lib.GenerateKey(rand) - - if err != nil { - return nil, nil, err - } - - return pk, sk[:ed25519lib.SeedSize], nil -} - -func getEd25519Sk(publicKey, privateKey []byte) ed25519lib.PrivateKey { - return append(privateKey, publicKey...) -} - -func (c *ed25519) Sign(publicKey, privateKey, message []byte) (sig []byte, err error) { - sig = ed25519lib.Sign(getEd25519Sk(publicKey, privateKey), message) - return sig, nil -} - -func (c *ed25519) Verify(publicKey, message, sig []byte) bool { - return ed25519lib.Verify(publicKey, message, sig) -} - -func (c *ed25519) ValidateEdDSA(publicKey, privateKey []byte) (err error) { - priv := getEd25519Sk(publicKey, privateKey) - expectedPriv := ed25519lib.NewKeyFromSeed(priv.Seed()) - if subtle.ConstantTimeCompare(priv, expectedPriv) == 0 { - return errors.KeyInvalidError("ecc: invalid ed25519 secret") - } - return nil -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed448.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed448.go deleted file mode 100644 index a2df3dab87..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/ed448.go +++ /dev/null @@ -1,111 +0,0 @@ -// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. -package ecc - -import ( - "crypto/subtle" - "io" - - "github.com/ProtonMail/go-crypto/openpgp/errors" - ed448lib "github.com/cloudflare/circl/sign/ed448" -) - -type ed448 struct {} - -func NewEd448() *ed448 { - return &ed448{} -} - -func (c *ed448) GetCurveName() string { - return "ed448" -} - -// MarshalBytePoint encodes the public point from native format, adding the prefix. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 -func (c *ed448) MarshalBytePoint(x []byte) []byte { - // Return prefixed - return append([]byte{0x40}, x...) -} - -// UnmarshalBytePoint decodes a point from prefixed format to native. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 -func (c *ed448) UnmarshalBytePoint(point []byte) (x []byte) { - if len(point) != ed448lib.PublicKeySize + 1 { - return nil - } - - // Strip prefix - return point[1:] -} - -// MarshalByteSecret encoded a scalar from native format to prefixed. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 -func (c *ed448) MarshalByteSecret(d []byte) []byte { - // Return prefixed - return append([]byte{0x40}, d...) -} - -// UnmarshalByteSecret decodes a scalar from prefixed format to native. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.5 -func (c *ed448) UnmarshalByteSecret(s []byte) (d []byte) { - // Check prefixed size - if len(s) != ed448lib.SeedSize + 1 { - return nil - } - - // Strip prefix - return s[1:] -} - -// MarshalSignature splits a signature in R and S, where R is in prefixed native format and -// S is an MPI with value zero. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.2.3.3.2 -func (c *ed448) MarshalSignature(sig []byte) (r, s []byte) { - return append([]byte{0x40}, sig...), []byte{} -} - -// UnmarshalSignature decodes R and S in the native format. Only R is used, in prefixed native format. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.2.3.3.2 -func (c *ed448) UnmarshalSignature(r, s []byte) (sig []byte) { - if len(r) != ed448lib.SignatureSize + 1 { - return nil - } - - return r[1:] -} - -func (c *ed448) GenerateEdDSA(rand io.Reader) (pub, priv []byte, err error) { - pk, sk, err := ed448lib.GenerateKey(rand) - - if err != nil { - return nil, nil, err - } - - return pk, sk[:ed448lib.SeedSize], nil -} - -func getEd448Sk(publicKey, privateKey []byte) ed448lib.PrivateKey { - return append(privateKey, publicKey...) -} - -func (c *ed448) Sign(publicKey, privateKey, message []byte) (sig []byte, err error) { - // Ed448 is used with the empty string as a context string. - // See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-13.7 - sig = ed448lib.Sign(getEd448Sk(publicKey, privateKey), message, "") - - return sig, nil -} - -func (c *ed448) Verify(publicKey, message, sig []byte) bool { - // Ed448 is used with the empty string as a context string. - // See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-13.7 - return ed448lib.Verify(publicKey, message, sig, "") -} - -func (c *ed448) ValidateEdDSA(publicKey, privateKey []byte) (err error) { - priv := getEd448Sk(publicKey, privateKey) - expectedPriv := ed448lib.NewKeyFromSeed(priv.Seed()) - if subtle.ConstantTimeCompare(priv, expectedPriv) == 0 { - return errors.KeyInvalidError("ecc: invalid ed448 secret") - } - return nil -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/generic.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/generic.go deleted file mode 100644 index e28d7c7106..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/generic.go +++ /dev/null @@ -1,149 +0,0 @@ -// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. -package ecc - -import ( - "crypto/ecdsa" - "crypto/elliptic" - "fmt" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "io" - "math/big" -) - -type genericCurve struct { - Curve elliptic.Curve -} - -func NewGenericCurve(c elliptic.Curve) *genericCurve { - return &genericCurve{ - Curve: c, - } -} - -func (c *genericCurve) GetCurveName() string { - return c.Curve.Params().Name -} - -func (c *genericCurve) MarshalBytePoint(point []byte) []byte { - return point -} - -func (c *genericCurve) UnmarshalBytePoint(point []byte) []byte { - return point -} - -func (c *genericCurve) MarshalIntegerPoint(x, y *big.Int) []byte { - return elliptic.Marshal(c.Curve, x, y) -} - -func (c *genericCurve) UnmarshalIntegerPoint(point []byte) (x, y *big.Int) { - return elliptic.Unmarshal(c.Curve, point) -} - -func (c *genericCurve) MarshalByteSecret(d []byte) []byte { - return d -} - -func (c *genericCurve) UnmarshalByteSecret(d []byte) []byte { - return d -} - -func (c *genericCurve) MarshalIntegerSecret(d *big.Int) []byte { - return d.Bytes() -} - -func (c *genericCurve) UnmarshalIntegerSecret(d []byte) *big.Int { - return new(big.Int).SetBytes(d) -} - -func (c *genericCurve) GenerateECDH(rand io.Reader) (point, secret []byte, err error) { - secret, x, y, err := elliptic.GenerateKey(c.Curve, rand) - if err != nil { - return nil, nil, err - } - - point = elliptic.Marshal(c.Curve, x, y) - return point, secret, nil -} - -func (c *genericCurve) GenerateECDSA(rand io.Reader) (x, y, secret *big.Int, err error) { - priv, err := ecdsa.GenerateKey(c.Curve, rand) - if err != nil { - return - } - - return priv.X, priv.Y, priv.D, nil -} - -func (c *genericCurve) Encaps(rand io.Reader, point []byte) (ephemeral, sharedSecret []byte, err error) { - xP, yP := elliptic.Unmarshal(c.Curve, point) - if xP == nil { - panic("invalid point") - } - - d, x, y, err := elliptic.GenerateKey(c.Curve, rand) - if err != nil { - return nil, nil, err - } - - vsG := elliptic.Marshal(c.Curve, x, y) - zbBig, _ := c.Curve.ScalarMult(xP, yP, d) - - byteLen := (c.Curve.Params().BitSize + 7) >> 3 - zb := make([]byte, byteLen) - zbBytes := zbBig.Bytes() - copy(zb[byteLen-len(zbBytes):], zbBytes) - - return vsG, zb, nil -} - -func (c *genericCurve) Decaps(ephemeral, secret []byte) (sharedSecret []byte, err error) { - x, y := elliptic.Unmarshal(c.Curve, ephemeral) - zbBig, _ := c.Curve.ScalarMult(x, y, secret) - byteLen := (c.Curve.Params().BitSize + 7) >> 3 - zb := make([]byte, byteLen) - zbBytes := zbBig.Bytes() - copy(zb[byteLen-len(zbBytes):], zbBytes) - - return zb, nil -} - -func (c *genericCurve) Sign(rand io.Reader, x, y, d *big.Int, hash []byte) (r, s *big.Int, err error) { - priv := &ecdsa.PrivateKey{D: d, PublicKey: ecdsa.PublicKey{X: x, Y: y, Curve: c.Curve}} - return ecdsa.Sign(rand, priv, hash) -} - -func (c *genericCurve) Verify(x, y *big.Int, hash []byte, r, s *big.Int) bool { - pub := &ecdsa.PublicKey{X: x, Y: y, Curve: c.Curve} - return ecdsa.Verify(pub, hash, r, s) -} - -func (c *genericCurve) validate(xP, yP *big.Int, secret []byte) error { - // the public point should not be at infinity (0,0) - zero := new(big.Int) - if xP.Cmp(zero) == 0 && yP.Cmp(zero) == 0 { - return errors.KeyInvalidError(fmt.Sprintf("ecc (%s): infinity point", c.Curve.Params().Name)) - } - - // re-derive the public point Q' = (X,Y) = dG - // to compare to declared Q in public key - expectedX, expectedY := c.Curve.ScalarBaseMult(secret) - if xP.Cmp(expectedX) != 0 || yP.Cmp(expectedY) != 0 { - return errors.KeyInvalidError(fmt.Sprintf("ecc (%s): invalid point", c.Curve.Params().Name)) - } - - return nil -} - -func (c *genericCurve) ValidateECDSA(xP, yP *big.Int, secret []byte) error { - return c.validate(xP, yP, secret) -} - -func (c *genericCurve) ValidateECDH(point []byte, secret []byte) error { - xP, yP := elliptic.Unmarshal(c.Curve, point) - if xP == nil { - return errors.KeyInvalidError(fmt.Sprintf("ecc (%s): invalid point", c.Curve.Params().Name)) - } - - return c.validate(xP, yP, secret) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/x448.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/x448.go deleted file mode 100644 index 4a940b4f4d..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/ecc/x448.go +++ /dev/null @@ -1,105 +0,0 @@ -// Package ecc implements a generic interface for ECDH, ECDSA, and EdDSA. -package ecc - -import ( - "crypto/subtle" - "io" - - "github.com/ProtonMail/go-crypto/openpgp/errors" - x448lib "github.com/cloudflare/circl/dh/x448" -) - -type x448 struct {} - -func NewX448() *x448 { - return &x448{} -} - -func (c *x448) GetCurveName() string { - return "x448" -} - -// MarshalBytePoint encodes the public point from native format, adding the prefix. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6 -func (c *x448) MarshalBytePoint(point []byte) []byte { - return append([]byte{0x40}, point...) -} - -// UnmarshalBytePoint decodes a point from prefixed format to native. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6 -func (c *x448) UnmarshalBytePoint(point []byte) []byte { - if len(point) != x448lib.Size + 1 { - return nil - } - - return point[1:] -} - -// MarshalByteSecret encoded a scalar from native format to prefixed. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6.1.2 -func (c *x448) MarshalByteSecret(d []byte) []byte { - return append([]byte{0x40}, d...) -} - -// UnmarshalByteSecret decodes a scalar from prefixed format to native. -// See https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-06#section-5.5.5.6.1.2 -func (c *x448) UnmarshalByteSecret(d []byte) []byte { - if len(d) != x448lib.Size + 1 { - return nil - } - - // Store without prefix - return d[1:] -} - -func (c *x448) generateKeyPairBytes(rand io.Reader) (sk, pk x448lib.Key, err error) { - if _, err = rand.Read(sk[:]); err != nil { - return - } - - x448lib.KeyGen(&pk, &sk) - return -} - -func (c *x448) GenerateECDH(rand io.Reader) (point []byte, secret []byte, err error) { - priv, pub, err := c.generateKeyPairBytes(rand) - if err != nil { - return - } - - return pub[:], priv[:], nil -} - -func (c *x448) Encaps(rand io.Reader, point []byte) (ephemeral, sharedSecret []byte, err error) { - var pk, ss x448lib.Key - seed, e, err := c.generateKeyPairBytes(rand) - - copy(pk[:], point) - x448lib.Shared(&ss, &seed, &pk) - - return e[:], ss[:], nil -} - -func (c *x448) Decaps(ephemeral, secret []byte) (sharedSecret []byte, err error) { - var ss, sk, e x448lib.Key - - copy(sk[:], secret) - copy(e[:], ephemeral) - x448lib.Shared(&ss, &sk, &e) - - return ss[:], nil -} - -func (c *x448) ValidateECDH(point []byte, secret []byte) error { - var sk, pk, expectedPk x448lib.Key - - copy(pk[:], point) - copy(sk[:], secret) - x448lib.KeyGen(&expectedPk, &sk) - - if subtle.ConstantTimeCompare(expectedPk[:], pk[:]) == 0 { - return errors.KeyInvalidError("ecc: invalid curve25519 public point") - } - - return nil -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/encoding.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/encoding.go deleted file mode 100644 index 6c921481b7..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/encoding.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package encoding implements openpgp packet field encodings as specified in -// RFC 4880 and 6637. -package encoding - -import "io" - -// Field is an encoded field of an openpgp packet. -type Field interface { - // Bytes returns the decoded data. - Bytes() []byte - - // BitLength is the size in bits of the decoded data. - BitLength() uint16 - - // EncodedBytes returns the encoded data. - EncodedBytes() []byte - - // EncodedLength is the size in bytes of the encoded data. - EncodedLength() uint16 - - // ReadFrom reads the next Field from r. - ReadFrom(r io.Reader) (int64, error) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/mpi.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/mpi.go deleted file mode 100644 index 02e5e695c3..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/mpi.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package encoding - -import ( - "io" - "math/big" - "math/bits" -) - -// An MPI is used to store the contents of a big integer, along with the bit -// length that was specified in the original input. This allows the MPI to be -// reserialized exactly. -type MPI struct { - bytes []byte - bitLength uint16 -} - -// NewMPI returns a MPI initialized with bytes. -func NewMPI(bytes []byte) *MPI { - for len(bytes) != 0 && bytes[0] == 0 { - bytes = bytes[1:] - } - if len(bytes) == 0 { - bitLength := uint16(0) - return &MPI{bytes, bitLength} - } - bitLength := 8*uint16(len(bytes)-1) + uint16(bits.Len8(bytes[0])) - return &MPI{bytes, bitLength} -} - -// Bytes returns the decoded data. -func (m *MPI) Bytes() []byte { - return m.bytes -} - -// BitLength is the size in bits of the decoded data. -func (m *MPI) BitLength() uint16 { - return m.bitLength -} - -// EncodedBytes returns the encoded data. -func (m *MPI) EncodedBytes() []byte { - return append([]byte{byte(m.bitLength >> 8), byte(m.bitLength)}, m.bytes...) -} - -// EncodedLength is the size in bytes of the encoded data. -func (m *MPI) EncodedLength() uint16 { - return uint16(2 + len(m.bytes)) -} - -// ReadFrom reads into m the next MPI from r. -func (m *MPI) ReadFrom(r io.Reader) (int64, error) { - var buf [2]byte - n, err := io.ReadFull(r, buf[0:]) - if err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return int64(n), err - } - - m.bitLength = uint16(buf[0])<<8 | uint16(buf[1]) - m.bytes = make([]byte, (int(m.bitLength)+7)/8) - - nn, err := io.ReadFull(r, m.bytes) - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - - // remove leading zero bytes from malformed GnuPG encoded MPIs: - // https://bugs.gnupg.org/gnupg/issue1853 - // for _, b := range m.bytes { - // if b != 0 { - // break - // } - // m.bytes = m.bytes[1:] - // m.bitLength -= 8 - // } - - return int64(n) + int64(nn), err -} - -// SetBig initializes m with the bits from n. -func (m *MPI) SetBig(n *big.Int) *MPI { - m.bytes = n.Bytes() - m.bitLength = uint16(n.BitLen()) - return m -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/oid.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/oid.go deleted file mode 100644 index c9df9fe232..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/internal/encoding/oid.go +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package encoding - -import ( - "io" - - "github.com/ProtonMail/go-crypto/openpgp/errors" -) - -// OID is used to store a variable-length field with a one-octet size -// prefix. See https://tools.ietf.org/html/rfc6637#section-9. -type OID struct { - bytes []byte -} - -const ( - // maxOID is the maximum number of bytes in a OID. - maxOID = 254 - // reservedOIDLength1 and reservedOIDLength2 are OID lengths that the RFC - // specifies are reserved. - reservedOIDLength1 = 0 - reservedOIDLength2 = 0xff -) - -// NewOID returns a OID initialized with bytes. -func NewOID(bytes []byte) *OID { - switch len(bytes) { - case reservedOIDLength1, reservedOIDLength2: - panic("encoding: NewOID argument length is reserved") - default: - if len(bytes) > maxOID { - panic("encoding: NewOID argument too large") - } - } - - return &OID{ - bytes: bytes, - } -} - -// Bytes returns the decoded data. -func (o *OID) Bytes() []byte { - return o.bytes -} - -// BitLength is the size in bits of the decoded data. -func (o *OID) BitLength() uint16 { - return uint16(len(o.bytes) * 8) -} - -// EncodedBytes returns the encoded data. -func (o *OID) EncodedBytes() []byte { - return append([]byte{byte(len(o.bytes))}, o.bytes...) -} - -// EncodedLength is the size in bytes of the encoded data. -func (o *OID) EncodedLength() uint16 { - return uint16(1 + len(o.bytes)) -} - -// ReadFrom reads into b the next OID from r. -func (o *OID) ReadFrom(r io.Reader) (int64, error) { - var buf [1]byte - n, err := io.ReadFull(r, buf[:]) - if err != nil { - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return int64(n), err - } - - switch buf[0] { - case reservedOIDLength1, reservedOIDLength2: - return int64(n), errors.UnsupportedError("reserved for future extensions") - } - - o.bytes = make([]byte, buf[0]) - - nn, err := io.ReadFull(r, o.bytes) - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - - return int64(n) + int64(nn), err -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/key_generation.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/key_generation.go deleted file mode 100644 index 5fbfe83889..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/key_generation.go +++ /dev/null @@ -1,409 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package openpgp - -import ( - "crypto" - "crypto/rand" - "crypto/rsa" - goerrors "errors" - "io" - "math/big" - "time" - - "github.com/ProtonMail/go-crypto/openpgp/ecdh" - "github.com/ProtonMail/go-crypto/openpgp/ecdsa" - "github.com/ProtonMail/go-crypto/openpgp/eddsa" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" - "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" - "github.com/ProtonMail/go-crypto/openpgp/packet" -) - -// NewEntity returns an Entity that contains a fresh RSA/RSA keypair with a -// single identity composed of the given full name, comment and email, any of -// which may be empty but must not contain any of "()<>\x00". -// If config is nil, sensible defaults will be used. -func NewEntity(name, comment, email string, config *packet.Config) (*Entity, error) { - creationTime := config.Now() - keyLifetimeSecs := config.KeyLifetime() - - // Generate a primary signing key - primaryPrivRaw, err := newSigner(config) - if err != nil { - return nil, err - } - primary := packet.NewSignerPrivateKey(creationTime, primaryPrivRaw) - if config != nil && config.V5Keys { - primary.UpgradeToV5() - } - - e := &Entity{ - PrimaryKey: &primary.PublicKey, - PrivateKey: primary, - Identities: make(map[string]*Identity), - Subkeys: []Subkey{}, - } - - err = e.addUserId(name, comment, email, config, creationTime, keyLifetimeSecs) - if err != nil { - return nil, err - } - - // NOTE: No key expiry here, but we will not return this subkey in EncryptionKey() - // if the primary/master key has expired. - err = e.addEncryptionSubkey(config, creationTime, 0) - if err != nil { - return nil, err - } - - return e, nil -} - -func (t *Entity) AddUserId(name, comment, email string, config *packet.Config) error { - creationTime := config.Now() - keyLifetimeSecs := config.KeyLifetime() - return t.addUserId(name, comment, email, config, creationTime, keyLifetimeSecs) -} - -func (t *Entity) addUserId(name, comment, email string, config *packet.Config, creationTime time.Time, keyLifetimeSecs uint32) error { - uid := packet.NewUserId(name, comment, email) - if uid == nil { - return errors.InvalidArgumentError("user id field contained invalid characters") - } - - if _, ok := t.Identities[uid.Id]; ok { - return errors.InvalidArgumentError("user id exist") - } - - primary := t.PrivateKey - - isPrimaryId := len(t.Identities) == 0 - - selfSignature := &packet.Signature{ - Version: primary.PublicKey.Version, - SigType: packet.SigTypePositiveCert, - PubKeyAlgo: primary.PublicKey.PubKeyAlgo, - Hash: config.Hash(), - CreationTime: creationTime, - KeyLifetimeSecs: &keyLifetimeSecs, - IssuerKeyId: &primary.PublicKey.KeyId, - IssuerFingerprint: primary.PublicKey.Fingerprint, - IsPrimaryId: &isPrimaryId, - FlagsValid: true, - FlagSign: true, - FlagCertify: true, - SEIPDv1: true, // true by default, see 5.8 vs. 5.14 - SEIPDv2: config.AEAD() != nil, - } - - // Set the PreferredHash for the SelfSignature from the packet.Config. - // If it is not the must-implement algorithm from rfc4880bis, append that. - selfSignature.PreferredHash = []uint8{hashToHashId(config.Hash())} - if config.Hash() != crypto.SHA256 { - selfSignature.PreferredHash = append(selfSignature.PreferredHash, hashToHashId(crypto.SHA256)) - } - - // Likewise for DefaultCipher. - selfSignature.PreferredSymmetric = []uint8{uint8(config.Cipher())} - if config.Cipher() != packet.CipherAES128 { - selfSignature.PreferredSymmetric = append(selfSignature.PreferredSymmetric, uint8(packet.CipherAES128)) - } - - // We set CompressionNone as the preferred compression algorithm because - // of compression side channel attacks, then append the configured - // DefaultCompressionAlgo if any is set (to signal support for cases - // where the application knows that using compression is safe). - selfSignature.PreferredCompression = []uint8{uint8(packet.CompressionNone)} - if config.Compression() != packet.CompressionNone { - selfSignature.PreferredCompression = append(selfSignature.PreferredCompression, uint8(config.Compression())) - } - - // And for DefaultMode. - modes := []uint8{uint8(config.AEAD().Mode())} - if config.AEAD().Mode() != packet.AEADModeOCB { - modes = append(modes, uint8(packet.AEADModeOCB)) - } - - // For preferred (AES256, GCM), we'll generate (AES256, GCM), (AES256, OCB), (AES128, GCM), (AES128, OCB) - for _, cipher := range selfSignature.PreferredSymmetric { - for _, mode := range modes { - selfSignature.PreferredCipherSuites = append(selfSignature.PreferredCipherSuites, [2]uint8{cipher, mode}) - } - } - - // User ID binding signature - err := selfSignature.SignUserId(uid.Id, &primary.PublicKey, primary, config) - if err != nil { - return err - } - t.Identities[uid.Id] = &Identity{ - Name: uid.Id, - UserId: uid, - SelfSignature: selfSignature, - Signatures: []*packet.Signature{selfSignature}, - } - return nil -} - -// AddSigningSubkey adds a signing keypair as a subkey to the Entity. -// If config is nil, sensible defaults will be used. -func (e *Entity) AddSigningSubkey(config *packet.Config) error { - creationTime := config.Now() - keyLifetimeSecs := config.KeyLifetime() - - subPrivRaw, err := newSigner(config) - if err != nil { - return err - } - sub := packet.NewSignerPrivateKey(creationTime, subPrivRaw) - - subkey := Subkey{ - PublicKey: &sub.PublicKey, - PrivateKey: sub, - Sig: &packet.Signature{ - Version: e.PrimaryKey.Version, - CreationTime: creationTime, - KeyLifetimeSecs: &keyLifetimeSecs, - SigType: packet.SigTypeSubkeyBinding, - PubKeyAlgo: e.PrimaryKey.PubKeyAlgo, - Hash: config.Hash(), - FlagsValid: true, - FlagSign: true, - IssuerKeyId: &e.PrimaryKey.KeyId, - EmbeddedSignature: &packet.Signature{ - Version: e.PrimaryKey.Version, - CreationTime: creationTime, - SigType: packet.SigTypePrimaryKeyBinding, - PubKeyAlgo: sub.PublicKey.PubKeyAlgo, - Hash: config.Hash(), - IssuerKeyId: &e.PrimaryKey.KeyId, - }, - }, - } - if config != nil && config.V5Keys { - subkey.PublicKey.UpgradeToV5() - } - - err = subkey.Sig.EmbeddedSignature.CrossSignKey(subkey.PublicKey, e.PrimaryKey, subkey.PrivateKey, config) - if err != nil { - return err - } - - subkey.PublicKey.IsSubkey = true - subkey.PrivateKey.IsSubkey = true - if err = subkey.Sig.SignKey(subkey.PublicKey, e.PrivateKey, config); err != nil { - return err - } - - e.Subkeys = append(e.Subkeys, subkey) - return nil -} - -// AddEncryptionSubkey adds an encryption keypair as a subkey to the Entity. -// If config is nil, sensible defaults will be used. -func (e *Entity) AddEncryptionSubkey(config *packet.Config) error { - creationTime := config.Now() - keyLifetimeSecs := config.KeyLifetime() - return e.addEncryptionSubkey(config, creationTime, keyLifetimeSecs) -} - -func (e *Entity) addEncryptionSubkey(config *packet.Config, creationTime time.Time, keyLifetimeSecs uint32) error { - subPrivRaw, err := newDecrypter(config) - if err != nil { - return err - } - sub := packet.NewDecrypterPrivateKey(creationTime, subPrivRaw) - - subkey := Subkey{ - PublicKey: &sub.PublicKey, - PrivateKey: sub, - Sig: &packet.Signature{ - Version: e.PrimaryKey.Version, - CreationTime: creationTime, - KeyLifetimeSecs: &keyLifetimeSecs, - SigType: packet.SigTypeSubkeyBinding, - PubKeyAlgo: e.PrimaryKey.PubKeyAlgo, - Hash: config.Hash(), - FlagsValid: true, - FlagEncryptStorage: true, - FlagEncryptCommunications: true, - IssuerKeyId: &e.PrimaryKey.KeyId, - }, - } - if config != nil && config.V5Keys { - subkey.PublicKey.UpgradeToV5() - } - - subkey.PublicKey.IsSubkey = true - subkey.PrivateKey.IsSubkey = true - if err = subkey.Sig.SignKey(subkey.PublicKey, e.PrivateKey, config); err != nil { - return err - } - - e.Subkeys = append(e.Subkeys, subkey) - return nil -} - -// Generates a signing key -func newSigner(config *packet.Config) (signer interface{}, err error) { - switch config.PublicKeyAlgorithm() { - case packet.PubKeyAlgoRSA: - bits := config.RSAModulusBits() - if bits < 1024 { - return nil, errors.InvalidArgumentError("bits must be >= 1024") - } - if config != nil && len(config.RSAPrimes) >= 2 { - primes := config.RSAPrimes[0:2] - config.RSAPrimes = config.RSAPrimes[2:] - return generateRSAKeyWithPrimes(config.Random(), 2, bits, primes) - } - return rsa.GenerateKey(config.Random(), bits) - case packet.PubKeyAlgoEdDSA: - curve := ecc.FindEdDSAByGenName(string(config.CurveName())) - if curve == nil { - return nil, errors.InvalidArgumentError("unsupported curve") - } - - priv, err := eddsa.GenerateKey(config.Random(), curve) - if err != nil { - return nil, err - } - return priv, nil - case packet.PubKeyAlgoECDSA: - curve := ecc.FindECDSAByGenName(string(config.CurveName())) - if curve == nil { - return nil, errors.InvalidArgumentError("unsupported curve") - } - - priv, err := ecdsa.GenerateKey(config.Random(), curve) - if err != nil { - return nil, err - } - return priv, nil - default: - return nil, errors.InvalidArgumentError("unsupported public key algorithm") - } -} - -// Generates an encryption/decryption key -func newDecrypter(config *packet.Config) (decrypter interface{}, err error) { - switch config.PublicKeyAlgorithm() { - case packet.PubKeyAlgoRSA: - bits := config.RSAModulusBits() - if bits < 1024 { - return nil, errors.InvalidArgumentError("bits must be >= 1024") - } - if config != nil && len(config.RSAPrimes) >= 2 { - primes := config.RSAPrimes[0:2] - config.RSAPrimes = config.RSAPrimes[2:] - return generateRSAKeyWithPrimes(config.Random(), 2, bits, primes) - } - return rsa.GenerateKey(config.Random(), bits) - case packet.PubKeyAlgoEdDSA, packet.PubKeyAlgoECDSA: - fallthrough // When passing EdDSA or ECDSA, we generate an ECDH subkey - case packet.PubKeyAlgoECDH: - var kdf = ecdh.KDF{ - Hash: algorithm.SHA512, - Cipher: algorithm.AES256, - } - curve := ecc.FindECDHByGenName(string(config.CurveName())) - if curve == nil { - return nil, errors.InvalidArgumentError("unsupported curve") - } - return ecdh.GenerateKey(config.Random(), curve, kdf) - default: - return nil, errors.InvalidArgumentError("unsupported public key algorithm") - } -} - -var bigOne = big.NewInt(1) - -// generateRSAKeyWithPrimes generates a multi-prime RSA keypair of the -// given bit size, using the given random source and prepopulated primes. -func generateRSAKeyWithPrimes(random io.Reader, nprimes int, bits int, prepopulatedPrimes []*big.Int) (*rsa.PrivateKey, error) { - priv := new(rsa.PrivateKey) - priv.E = 65537 - - if nprimes < 2 { - return nil, goerrors.New("generateRSAKeyWithPrimes: nprimes must be >= 2") - } - - if bits < 1024 { - return nil, goerrors.New("generateRSAKeyWithPrimes: bits must be >= 1024") - } - - primes := make([]*big.Int, nprimes) - -NextSetOfPrimes: - for { - todo := bits - // crypto/rand should set the top two bits in each prime. - // Thus each prime has the form - // p_i = 2^bitlen(p_i) × 0.11... (in base 2). - // And the product is: - // P = 2^todo × α - // where α is the product of nprimes numbers of the form 0.11... - // - // If α < 1/2 (which can happen for nprimes > 2), we need to - // shift todo to compensate for lost bits: the mean value of 0.11... - // is 7/8, so todo + shift - nprimes * log2(7/8) ~= bits - 1/2 - // will give good results. - if nprimes >= 7 { - todo += (nprimes - 2) / 5 - } - for i := 0; i < nprimes; i++ { - var err error - if len(prepopulatedPrimes) == 0 { - primes[i], err = rand.Prime(random, todo/(nprimes-i)) - if err != nil { - return nil, err - } - } else { - primes[i] = prepopulatedPrimes[0] - prepopulatedPrimes = prepopulatedPrimes[1:] - } - - todo -= primes[i].BitLen() - } - - // Make sure that primes is pairwise unequal. - for i, prime := range primes { - for j := 0; j < i; j++ { - if prime.Cmp(primes[j]) == 0 { - continue NextSetOfPrimes - } - } - } - - n := new(big.Int).Set(bigOne) - totient := new(big.Int).Set(bigOne) - pminus1 := new(big.Int) - for _, prime := range primes { - n.Mul(n, prime) - pminus1.Sub(prime, bigOne) - totient.Mul(totient, pminus1) - } - if n.BitLen() != bits { - // This should never happen for nprimes == 2 because - // crypto/rand should set the top two bits in each prime. - // For nprimes > 2 we hope it does not happen often. - continue NextSetOfPrimes - } - - priv.D = new(big.Int) - e := big.NewInt(int64(priv.E)) - ok := priv.D.ModInverse(e, totient) - - if ok != nil { - priv.Primes = primes - priv.N = n - break - } - } - - priv.Precompute() - return priv, nil -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/keys.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/keys.go deleted file mode 100644 index 48278e6e78..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/keys.go +++ /dev/null @@ -1,829 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package openpgp - -import ( - goerrors "errors" - "io" - "time" - - "github.com/ProtonMail/go-crypto/openpgp/armor" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/packet" -) - -// PublicKeyType is the armor type for a PGP public key. -var PublicKeyType = "PGP PUBLIC KEY BLOCK" - -// PrivateKeyType is the armor type for a PGP private key. -var PrivateKeyType = "PGP PRIVATE KEY BLOCK" - -// An Entity represents the components of an OpenPGP key: a primary public key -// (which must be a signing key), one or more identities claimed by that key, -// and zero or more subkeys, which may be encryption keys. -type Entity struct { - PrimaryKey *packet.PublicKey - PrivateKey *packet.PrivateKey - Identities map[string]*Identity // indexed by Identity.Name - Revocations []*packet.Signature - Subkeys []Subkey -} - -// An Identity represents an identity claimed by an Entity and zero or more -// assertions by other entities about that claim. -type Identity struct { - Name string // by convention, has the form "Full Name (comment) " - UserId *packet.UserId - SelfSignature *packet.Signature - Revocations []*packet.Signature - Signatures []*packet.Signature // all (potentially unverified) self-signatures, revocations, and third-party signatures -} - -// A Subkey is an additional public key in an Entity. Subkeys can be used for -// encryption. -type Subkey struct { - PublicKey *packet.PublicKey - PrivateKey *packet.PrivateKey - Sig *packet.Signature - Revocations []*packet.Signature -} - -// A Key identifies a specific public key in an Entity. This is either the -// Entity's primary key or a subkey. -type Key struct { - Entity *Entity - PublicKey *packet.PublicKey - PrivateKey *packet.PrivateKey - SelfSignature *packet.Signature - Revocations []*packet.Signature -} - -// A KeyRing provides access to public and private keys. -type KeyRing interface { - // KeysById returns the set of keys that have the given key id. - KeysById(id uint64) []Key - // KeysByIdAndUsage returns the set of keys with the given id - // that also meet the key usage given by requiredUsage. - // The requiredUsage is expressed as the bitwise-OR of - // packet.KeyFlag* values. - KeysByIdUsage(id uint64, requiredUsage byte) []Key - // DecryptionKeys returns all private keys that are valid for - // decryption. - DecryptionKeys() []Key -} - -// PrimaryIdentity returns an Identity, preferring non-revoked identities, -// identities marked as primary, or the latest-created identity, in that order. -func (e *Entity) PrimaryIdentity() *Identity { - var primaryIdentity *Identity - for _, ident := range e.Identities { - if shouldPreferIdentity(primaryIdentity, ident) { - primaryIdentity = ident - } - } - return primaryIdentity -} - -func shouldPreferIdentity(existingId, potentialNewId *Identity) bool { - if existingId == nil { - return true - } - - if len(existingId.Revocations) > len(potentialNewId.Revocations) { - return true - } - - if len(existingId.Revocations) < len(potentialNewId.Revocations) { - return false - } - - if existingId.SelfSignature == nil { - return true - } - - if existingId.SelfSignature.IsPrimaryId != nil && *existingId.SelfSignature.IsPrimaryId && - !(potentialNewId.SelfSignature.IsPrimaryId != nil && *potentialNewId.SelfSignature.IsPrimaryId) { - return false - } - - if !(existingId.SelfSignature.IsPrimaryId != nil && *existingId.SelfSignature.IsPrimaryId) && - potentialNewId.SelfSignature.IsPrimaryId != nil && *potentialNewId.SelfSignature.IsPrimaryId { - return true - } - - return potentialNewId.SelfSignature.CreationTime.After(existingId.SelfSignature.CreationTime) -} - -// EncryptionKey returns the best candidate Key for encrypting a message to the -// given Entity. -func (e *Entity) EncryptionKey(now time.Time) (Key, bool) { - // Fail to find any encryption key if the... - i := e.PrimaryIdentity() - if e.PrimaryKey.KeyExpired(i.SelfSignature, now) || // primary key has expired - i.SelfSignature == nil || // user ID has no self-signature - i.SelfSignature.SigExpired(now) || // user ID self-signature has expired - e.Revoked(now) || // primary key has been revoked - i.Revoked(now) { // user ID has been revoked - return Key{}, false - } - - // Iterate the keys to find the newest, unexpired one - candidateSubkey := -1 - var maxTime time.Time - for i, subkey := range e.Subkeys { - if subkey.Sig.FlagsValid && - subkey.Sig.FlagEncryptCommunications && - subkey.PublicKey.PubKeyAlgo.CanEncrypt() && - !subkey.PublicKey.KeyExpired(subkey.Sig, now) && - !subkey.Sig.SigExpired(now) && - !subkey.Revoked(now) && - (maxTime.IsZero() || subkey.Sig.CreationTime.After(maxTime)) { - candidateSubkey = i - maxTime = subkey.Sig.CreationTime - } - } - - if candidateSubkey != -1 { - subkey := e.Subkeys[candidateSubkey] - return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig, subkey.Revocations}, true - } - - // If we don't have any candidate subkeys for encryption and - // the primary key doesn't have any usage metadata then we - // assume that the primary key is ok. Or, if the primary key is - // marked as ok to encrypt with, then we can obviously use it. - if !i.SelfSignature.FlagsValid || i.SelfSignature.FlagEncryptCommunications && - e.PrimaryKey.PubKeyAlgo.CanEncrypt() { - return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature, e.Revocations}, true - } - - return Key{}, false -} - - -// CertificationKey return the best candidate Key for certifying a key with this -// Entity. -func (e *Entity) CertificationKey(now time.Time) (Key, bool) { - return e.CertificationKeyById(now, 0) -} - -// CertificationKeyById return the Key for key certification with this -// Entity and keyID. -func (e *Entity) CertificationKeyById(now time.Time, id uint64) (Key, bool) { - return e.signingKeyByIdUsage(now, id, packet.KeyFlagCertify) -} - -// SigningKey return the best candidate Key for signing a message with this -// Entity. -func (e *Entity) SigningKey(now time.Time) (Key, bool) { - return e.SigningKeyById(now, 0) -} - -// SigningKeyById return the Key for signing a message with this -// Entity and keyID. -func (e *Entity) SigningKeyById(now time.Time, id uint64) (Key, bool) { - return e.signingKeyByIdUsage(now, id, packet.KeyFlagSign) -} - -func (e *Entity) signingKeyByIdUsage(now time.Time, id uint64, flags int) (Key, bool) { - // Fail to find any signing key if the... - i := e.PrimaryIdentity() - if e.PrimaryKey.KeyExpired(i.SelfSignature, now) || // primary key has expired - i.SelfSignature == nil || // user ID has no self-signature - i.SelfSignature.SigExpired(now) || // user ID self-signature has expired - e.Revoked(now) || // primary key has been revoked - i.Revoked(now) { // user ID has been revoked - return Key{}, false - } - - // Iterate the keys to find the newest, unexpired one - candidateSubkey := -1 - var maxTime time.Time - for idx, subkey := range e.Subkeys { - if subkey.Sig.FlagsValid && - (flags & packet.KeyFlagCertify == 0 || subkey.Sig.FlagCertify) && - (flags & packet.KeyFlagSign == 0 || subkey.Sig.FlagSign) && - subkey.PublicKey.PubKeyAlgo.CanSign() && - !subkey.PublicKey.KeyExpired(subkey.Sig, now) && - !subkey.Sig.SigExpired(now) && - !subkey.Revoked(now) && - (maxTime.IsZero() || subkey.Sig.CreationTime.After(maxTime)) && - (id == 0 || subkey.PublicKey.KeyId == id) { - candidateSubkey = idx - maxTime = subkey.Sig.CreationTime - } - } - - if candidateSubkey != -1 { - subkey := e.Subkeys[candidateSubkey] - return Key{e, subkey.PublicKey, subkey.PrivateKey, subkey.Sig, subkey.Revocations}, true - } - - // If we have no candidate subkey then we assume that it's ok to sign - // with the primary key. Or, if the primary key is marked as ok to - // sign with, then we can use it. - if !i.SelfSignature.FlagsValid || ( - (flags & packet.KeyFlagCertify == 0 || i.SelfSignature.FlagCertify) && - (flags & packet.KeyFlagSign == 0 || i.SelfSignature.FlagSign)) && - e.PrimaryKey.PubKeyAlgo.CanSign() && - (id == 0 || e.PrimaryKey.KeyId == id) { - return Key{e, e.PrimaryKey, e.PrivateKey, i.SelfSignature, e.Revocations}, true - } - - // No keys with a valid Signing Flag or no keys matched the id passed in - return Key{}, false -} - -func revoked(revocations []*packet.Signature, now time.Time) bool { - for _, revocation := range revocations { - if revocation.RevocationReason != nil && *revocation.RevocationReason == packet.KeyCompromised { - // If the key is compromised, the key is considered revoked even before the revocation date. - return true - } - if !revocation.SigExpired(now) { - return true - } - } - return false -} - -// Revoked returns whether the entity has any direct key revocation signatures. -// Note that third-party revocation signatures are not supported. -// Note also that Identity and Subkey revocation should be checked separately. -func (e *Entity) Revoked(now time.Time) bool { - return revoked(e.Revocations, now) -} - -// Revoked returns whether the identity has been revoked by a self-signature. -// Note that third-party revocation signatures are not supported. -func (i *Identity) Revoked(now time.Time) bool { - return revoked(i.Revocations, now) -} - -// Revoked returns whether the subkey has been revoked by a self-signature. -// Note that third-party revocation signatures are not supported. -func (s *Subkey) Revoked(now time.Time) bool { - return revoked(s.Revocations, now) -} - -// Revoked returns whether the key or subkey has been revoked by a self-signature. -// Note that third-party revocation signatures are not supported. -// Note also that Identity revocation should be checked separately. -// Normally, it's not necessary to call this function, except on keys returned by -// KeysById or KeysByIdUsage. -func (key *Key) Revoked(now time.Time) bool { - return revoked(key.Revocations, now) -} - -// An EntityList contains one or more Entities. -type EntityList []*Entity - -// KeysById returns the set of keys that have the given key id. -func (el EntityList) KeysById(id uint64) (keys []Key) { - for _, e := range el { - if e.PrimaryKey.KeyId == id { - ident := e.PrimaryIdentity() - selfSig := ident.SelfSignature - keys = append(keys, Key{e, e.PrimaryKey, e.PrivateKey, selfSig, e.Revocations}) - } - - for _, subKey := range e.Subkeys { - if subKey.PublicKey.KeyId == id { - keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig, subKey.Revocations}) - } - } - } - return -} - -// KeysByIdAndUsage returns the set of keys with the given id that also meet -// the key usage given by requiredUsage. The requiredUsage is expressed as -// the bitwise-OR of packet.KeyFlag* values. -func (el EntityList) KeysByIdUsage(id uint64, requiredUsage byte) (keys []Key) { - for _, key := range el.KeysById(id) { - if key.SelfSignature != nil && key.SelfSignature.FlagsValid && requiredUsage != 0 { - var usage byte - if key.SelfSignature.FlagCertify { - usage |= packet.KeyFlagCertify - } - if key.SelfSignature.FlagSign { - usage |= packet.KeyFlagSign - } - if key.SelfSignature.FlagEncryptCommunications { - usage |= packet.KeyFlagEncryptCommunications - } - if key.SelfSignature.FlagEncryptStorage { - usage |= packet.KeyFlagEncryptStorage - } - if usage&requiredUsage != requiredUsage { - continue - } - } - - keys = append(keys, key) - } - return -} - -// DecryptionKeys returns all private keys that are valid for decryption. -func (el EntityList) DecryptionKeys() (keys []Key) { - for _, e := range el { - for _, subKey := range e.Subkeys { - if subKey.PrivateKey != nil && (!subKey.Sig.FlagsValid || subKey.Sig.FlagEncryptStorage || subKey.Sig.FlagEncryptCommunications) { - keys = append(keys, Key{e, subKey.PublicKey, subKey.PrivateKey, subKey.Sig, subKey.Revocations}) - } - } - } - return -} - -// ReadArmoredKeyRing reads one or more public/private keys from an armor keyring file. -func ReadArmoredKeyRing(r io.Reader) (EntityList, error) { - block, err := armor.Decode(r) - if err == io.EOF { - return nil, errors.InvalidArgumentError("no armored data found") - } - if err != nil { - return nil, err - } - if block.Type != PublicKeyType && block.Type != PrivateKeyType { - return nil, errors.InvalidArgumentError("expected public or private key block, got: " + block.Type) - } - - return ReadKeyRing(block.Body) -} - -// ReadKeyRing reads one or more public/private keys. Unsupported keys are -// ignored as long as at least a single valid key is found. -func ReadKeyRing(r io.Reader) (el EntityList, err error) { - packets := packet.NewReader(r) - var lastUnsupportedError error - - for { - var e *Entity - e, err = ReadEntity(packets) - if err != nil { - // TODO: warn about skipped unsupported/unreadable keys - if _, ok := err.(errors.UnsupportedError); ok { - lastUnsupportedError = err - err = readToNextPublicKey(packets) - } else if _, ok := err.(errors.StructuralError); ok { - // Skip unreadable, badly-formatted keys - lastUnsupportedError = err - err = readToNextPublicKey(packets) - } - if err == io.EOF { - err = nil - break - } - if err != nil { - el = nil - break - } - } else { - el = append(el, e) - } - } - - if len(el) == 0 && err == nil { - err = lastUnsupportedError - } - return -} - -// readToNextPublicKey reads packets until the start of the entity and leaves -// the first packet of the new entity in the Reader. -func readToNextPublicKey(packets *packet.Reader) (err error) { - var p packet.Packet - for { - p, err = packets.Next() - if err == io.EOF { - return - } else if err != nil { - if _, ok := err.(errors.UnsupportedError); ok { - err = nil - continue - } - return - } - - if pk, ok := p.(*packet.PublicKey); ok && !pk.IsSubkey { - packets.Unread(p) - return - } - } -} - -// ReadEntity reads an entity (public key, identities, subkeys etc) from the -// given Reader. -func ReadEntity(packets *packet.Reader) (*Entity, error) { - e := new(Entity) - e.Identities = make(map[string]*Identity) - - p, err := packets.Next() - if err != nil { - return nil, err - } - - var ok bool - if e.PrimaryKey, ok = p.(*packet.PublicKey); !ok { - if e.PrivateKey, ok = p.(*packet.PrivateKey); !ok { - packets.Unread(p) - return nil, errors.StructuralError("first packet was not a public/private key") - } - e.PrimaryKey = &e.PrivateKey.PublicKey - } - - if !e.PrimaryKey.PubKeyAlgo.CanSign() { - return nil, errors.StructuralError("primary key cannot be used for signatures") - } - - var revocations []*packet.Signature -EachPacket: - for { - p, err := packets.Next() - if err == io.EOF { - break - } else if err != nil { - return nil, err - } - - switch pkt := p.(type) { - case *packet.UserId: - if err := addUserID(e, packets, pkt); err != nil { - return nil, err - } - case *packet.Signature: - if pkt.SigType == packet.SigTypeKeyRevocation { - revocations = append(revocations, pkt) - } else if pkt.SigType == packet.SigTypeDirectSignature { - // TODO: RFC4880 5.2.1 permits signatures - // directly on keys (eg. to bind additional - // revocation keys). - } - // Else, ignoring the signature as it does not follow anything - // we would know to attach it to. - case *packet.PrivateKey: - if pkt.IsSubkey == false { - packets.Unread(p) - break EachPacket - } - err = addSubkey(e, packets, &pkt.PublicKey, pkt) - if err != nil { - return nil, err - } - case *packet.PublicKey: - if pkt.IsSubkey == false { - packets.Unread(p) - break EachPacket - } - err = addSubkey(e, packets, pkt, nil) - if err != nil { - return nil, err - } - default: - // we ignore unknown packets - } - } - - if len(e.Identities) == 0 { - return nil, errors.StructuralError("entity without any identities") - } - - for _, revocation := range revocations { - err = e.PrimaryKey.VerifyRevocationSignature(revocation) - if err == nil { - e.Revocations = append(e.Revocations, revocation) - } else { - // TODO: RFC 4880 5.2.3.15 defines revocation keys. - return nil, errors.StructuralError("revocation signature signed by alternate key") - } - } - - return e, nil -} - -func addUserID(e *Entity, packets *packet.Reader, pkt *packet.UserId) error { - // Make a new Identity object, that we might wind up throwing away. - // We'll only add it if we get a valid self-signature over this - // userID. - identity := new(Identity) - identity.Name = pkt.Id - identity.UserId = pkt - - for { - p, err := packets.Next() - if err == io.EOF { - break - } else if err != nil { - return err - } - - sig, ok := p.(*packet.Signature) - if !ok { - packets.Unread(p) - break - } - - if sig.SigType != packet.SigTypeGenericCert && - sig.SigType != packet.SigTypePersonaCert && - sig.SigType != packet.SigTypeCasualCert && - sig.SigType != packet.SigTypePositiveCert && - sig.SigType != packet.SigTypeCertificationRevocation { - return errors.StructuralError("user ID signature with wrong type") - } - - if sig.CheckKeyIdOrFingerprint(e.PrimaryKey) { - if err = e.PrimaryKey.VerifyUserIdSignature(pkt.Id, e.PrimaryKey, sig); err != nil { - return errors.StructuralError("user ID self-signature invalid: " + err.Error()) - } - if sig.SigType == packet.SigTypeCertificationRevocation { - identity.Revocations = append(identity.Revocations, sig) - } else if identity.SelfSignature == nil || sig.CreationTime.After(identity.SelfSignature.CreationTime) { - identity.SelfSignature = sig - } - identity.Signatures = append(identity.Signatures, sig) - e.Identities[pkt.Id] = identity - } else { - identity.Signatures = append(identity.Signatures, sig) - } - } - - return nil -} - -func addSubkey(e *Entity, packets *packet.Reader, pub *packet.PublicKey, priv *packet.PrivateKey) error { - var subKey Subkey - subKey.PublicKey = pub - subKey.PrivateKey = priv - - for { - p, err := packets.Next() - if err == io.EOF { - break - } else if err != nil { - return errors.StructuralError("subkey signature invalid: " + err.Error()) - } - - sig, ok := p.(*packet.Signature) - if !ok { - packets.Unread(p) - break - } - - if sig.SigType != packet.SigTypeSubkeyBinding && sig.SigType != packet.SigTypeSubkeyRevocation { - return errors.StructuralError("subkey signature with wrong type") - } - - if err := e.PrimaryKey.VerifyKeySignature(subKey.PublicKey, sig); err != nil { - return errors.StructuralError("subkey signature invalid: " + err.Error()) - } - - switch sig.SigType { - case packet.SigTypeSubkeyRevocation: - subKey.Revocations = append(subKey.Revocations, sig) - case packet.SigTypeSubkeyBinding: - if subKey.Sig == nil || sig.CreationTime.After(subKey.Sig.CreationTime) { - subKey.Sig = sig - } - } - } - - if subKey.Sig == nil { - return errors.StructuralError("subkey packet not followed by signature") - } - - e.Subkeys = append(e.Subkeys, subKey) - - return nil -} - -// SerializePrivate serializes an Entity, including private key material, but -// excluding signatures from other entities, to the given Writer. -// Identities and subkeys are re-signed in case they changed since NewEntry. -// If config is nil, sensible defaults will be used. -func (e *Entity) SerializePrivate(w io.Writer, config *packet.Config) (err error) { - if e.PrivateKey.Dummy() { - return errors.ErrDummyPrivateKey("dummy private key cannot re-sign identities") - } - return e.serializePrivate(w, config, true) -} - -// SerializePrivateWithoutSigning serializes an Entity, including private key -// material, but excluding signatures from other entities, to the given Writer. -// Self-signatures of identities and subkeys are not re-signed. This is useful -// when serializing GNU dummy keys, among other things. -// If config is nil, sensible defaults will be used. -func (e *Entity) SerializePrivateWithoutSigning(w io.Writer, config *packet.Config) (err error) { - return e.serializePrivate(w, config, false) -} - -func (e *Entity) serializePrivate(w io.Writer, config *packet.Config, reSign bool) (err error) { - if e.PrivateKey == nil { - return goerrors.New("openpgp: private key is missing") - } - err = e.PrivateKey.Serialize(w) - if err != nil { - return - } - for _, revocation := range e.Revocations { - err := revocation.Serialize(w) - if err != nil { - return err - } - } - for _, ident := range e.Identities { - err = ident.UserId.Serialize(w) - if err != nil { - return - } - if reSign { - if ident.SelfSignature == nil { - return goerrors.New("openpgp: can't re-sign identity without valid self-signature") - } - err = ident.SelfSignature.SignUserId(ident.UserId.Id, e.PrimaryKey, e.PrivateKey, config) - if err != nil { - return - } - } - for _, sig := range ident.Signatures { - err = sig.Serialize(w) - if err != nil { - return err - } - } - } - for _, subkey := range e.Subkeys { - err = subkey.PrivateKey.Serialize(w) - if err != nil { - return - } - if reSign { - err = subkey.Sig.SignKey(subkey.PublicKey, e.PrivateKey, config) - if err != nil { - return - } - if subkey.Sig.EmbeddedSignature != nil { - err = subkey.Sig.EmbeddedSignature.CrossSignKey(subkey.PublicKey, e.PrimaryKey, - subkey.PrivateKey, config) - if err != nil { - return - } - } - } - for _, revocation := range subkey.Revocations { - err := revocation.Serialize(w) - if err != nil { - return err - } - } - err = subkey.Sig.Serialize(w) - if err != nil { - return - } - } - return nil -} - -// Serialize writes the public part of the given Entity to w, including -// signatures from other entities. No private key material will be output. -func (e *Entity) Serialize(w io.Writer) error { - err := e.PrimaryKey.Serialize(w) - if err != nil { - return err - } - for _, revocation := range e.Revocations { - err := revocation.Serialize(w) - if err != nil { - return err - } - } - for _, ident := range e.Identities { - err = ident.UserId.Serialize(w) - if err != nil { - return err - } - for _, sig := range ident.Signatures { - err = sig.Serialize(w) - if err != nil { - return err - } - } - } - for _, subkey := range e.Subkeys { - err = subkey.PublicKey.Serialize(w) - if err != nil { - return err - } - for _, revocation := range subkey.Revocations { - err := revocation.Serialize(w) - if err != nil { - return err - } - } - err = subkey.Sig.Serialize(w) - if err != nil { - return err - } - } - return nil -} - -// SignIdentity adds a signature to e, from signer, attesting that identity is -// associated with e. The provided identity must already be an element of -// e.Identities and the private key of signer must have been decrypted if -// necessary. -// If config is nil, sensible defaults will be used. -func (e *Entity) SignIdentity(identity string, signer *Entity, config *packet.Config) error { - certificationKey, ok := signer.CertificationKey(config.Now()) - if !ok { - return errors.InvalidArgumentError("no valid certification key found") - } - - if certificationKey.PrivateKey.Encrypted { - return errors.InvalidArgumentError("signing Entity's private key must be decrypted") - } - - ident, ok := e.Identities[identity] - if !ok { - return errors.InvalidArgumentError("given identity string not found in Entity") - } - - sig := &packet.Signature{ - Version: certificationKey.PrivateKey.Version, - SigType: packet.SigTypeGenericCert, - PubKeyAlgo: certificationKey.PrivateKey.PubKeyAlgo, - Hash: config.Hash(), - CreationTime: config.Now(), - IssuerKeyId: &certificationKey.PrivateKey.KeyId, - } - - if config.SigLifetime() != 0 { - sig.SigLifetimeSecs = &config.SigLifetimeSecs - } - - signingUserID := config.SigningUserId() - if signingUserID != "" { - if _, ok := signer.Identities[signingUserID]; !ok { - return errors.InvalidArgumentError("signer identity string not found in signer Entity") - } - sig.SignerUserId = &signingUserID - } - - if err := sig.SignUserId(identity, e.PrimaryKey, certificationKey.PrivateKey, config); err != nil { - return err - } - ident.Signatures = append(ident.Signatures, sig) - return nil -} - -// RevokeKey generates a key revocation signature (packet.SigTypeKeyRevocation) with the -// specified reason code and text (RFC4880 section-5.2.3.23). -// If config is nil, sensible defaults will be used. -func (e *Entity) RevokeKey(reason packet.ReasonForRevocation, reasonText string, config *packet.Config) error { - revSig := &packet.Signature{ - Version: e.PrimaryKey.Version, - CreationTime: config.Now(), - SigType: packet.SigTypeKeyRevocation, - PubKeyAlgo: e.PrimaryKey.PubKeyAlgo, - Hash: config.Hash(), - RevocationReason: &reason, - RevocationReasonText: reasonText, - IssuerKeyId: &e.PrimaryKey.KeyId, - } - - if err := revSig.RevokeKey(e.PrimaryKey, e.PrivateKey, config); err != nil { - return err - } - e.Revocations = append(e.Revocations, revSig) - return nil -} - -// RevokeSubkey generates a subkey revocation signature (packet.SigTypeSubkeyRevocation) for -// a subkey with the specified reason code and text (RFC4880 section-5.2.3.23). -// If config is nil, sensible defaults will be used. -func (e *Entity) RevokeSubkey(sk *Subkey, reason packet.ReasonForRevocation, reasonText string, config *packet.Config) error { - if err := e.PrimaryKey.VerifyKeySignature(sk.PublicKey, sk.Sig); err != nil { - return errors.InvalidArgumentError("given subkey is not associated with this key") - } - - revSig := &packet.Signature{ - Version: e.PrimaryKey.Version, - CreationTime: config.Now(), - SigType: packet.SigTypeSubkeyRevocation, - PubKeyAlgo: e.PrimaryKey.PubKeyAlgo, - Hash: config.Hash(), - RevocationReason: &reason, - RevocationReasonText: reasonText, - IssuerKeyId: &e.PrimaryKey.KeyId, - } - - if err := revSig.RevokeSubkey(sk.PublicKey, e.PrivateKey, config); err != nil { - return err - } - - sk.Revocations = append(sk.Revocations, revSig) - return nil -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/keys_test_data.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/keys_test_data.go deleted file mode 100644 index 4bcfd5fdf0..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/keys_test_data.go +++ /dev/null @@ -1,520 +0,0 @@ -package openpgp - -const expiringKeyHex = "c6c04d0451d0c680010800abbb021fd03ffc4e96618901180c3fdcb060ee69eeead97b91256d11420d80b5f1b51930248044130bd300605cf8a05b7a40d3d8cfb0a910be2e3db50dcd50a9c54064c2a5550801daa834ff4480b33d3d3ca495ff8a4e84a886977d17d998f881241a874083d8b995beab555b6d22b8a4817ab17ac3e7304f7d4d2c05c495fb2218348d3bc13651db1d92732e368a9dd7dcefa6eddff30b94706a9aaee47e9d39321460b740c59c6fc3c2fd8ab6c0fb868cb87c0051f0321301fe0f0e1820b15e7fb7063395769b525005c7e30a7ce85984f5cac00504e7b4fdc45d74958de8388436fd5c7ba9ea121f1c851b5911dd1b47a14d81a09e92ef37721e2325b6790011010001cd00c2c07b041001080025050251d0c680050900278d00060b09070803020415080a0203160201021901021b03021e01000a0910e7b484133a890a35ae4b0800a1beb82e7f28eaf5273d6af9d3391314f6280b2b624eaca2851f89a9ebcaf80ac589ebd509f168bc4322106ca2e2ce77a76e071a3c7444787d65216b5f05e82c77928860b92aace3b7d0327db59492f422eb9dfab7249266d37429870b091a98aba8724c2259ebf8f85093f21255eafa75aa841e31d94f2ac891b9755fed455e539044ee69fc47950b80e003fc9f298d695660f28329eaa38037c367efde1727458e514faf990d439a21461b719edaddf9296d3d0647b43ca56cb8dbf63b4fcf8b9968e7928c463470fab3b98e44d0d95645062f94b2d04fe56bd52822b71934db8ce845622c40b92fcbe765a142e7f38b61a6aa9606c8e8858dcd3b6eb1894acec04d0451d1f06b01080088bea67444e1789390e7c0335c86775502d58ec783d99c8ef4e06de235ed3dd4b0467f6f358d818c7d8989d43ec6d69fcbc8c32632d5a1b605e3fa8e41d695fcdcaa535936cd0157f9040dce362519803b908eafe838bb13216c885c6f93e9e8d5745607f0d062322085d6bdc760969149a8ff8dd9f5c18d9bfe2e6f63a06e17694cf1f67587c6fb70e9aebf90ffc528ca3b615ac7c9d4a21ea4f7c06f2e98fbbd90a859b8608bf9ea638e3a54289ce44c283110d0c45fa458de6251cd6e7baf71f80f12c8978340490fd90c92b81736ae902ed958e478dceae2835953d189c45d182aff02ea2be61b81d8e94430f041d638647b43e2fcb45fd512fbf5068b810011010001c2c06504180108000f050251d1f06b050900081095021b0c000a0910e7b484133a890a35e63407fe2ec88d6d1e6c9ce7553ece0cb2524747217bad29f251d33df84599ffcc900141a355abd62126800744068a5e05dc167056aa9205273dc7765a2ed49db15c2a83b8d6e6429c902136f1e12229086c1c10c0053242c2a4ae1930db58163387a48cad64607ff2153c320e42843dec28e3fce90e7399d63ac0affa2fee1f0adc0953c89eb3f46ef1d6c04328ed13b491669d5120a3782e3ffb7c69575fb77eebd108794f4dda9d34be2bae57e8e59ec8ebfda2f6f06104b2321be408ea146e2db482b00c5055c8618de36ac9716f80da2617e225556d0fce61b01c8cea2d1e0ea982c31711060ca370f2739366e1e708f38405d784b49d16a26cf62d152eae734327cec04d0451d1f07b010800d5af91c5e7c2fd8951c8d254eab0c97cdcb66822f868b79b78c366255059a68fd74ebca9adb9b970cd9e586690e6e0756705432306878c897b10a4b4ca0005966f99ac8fa4e6f9caf54bf8e53844544beee9872a7ac64c119cf1393d96e674254b661f61ee975633d0e8a8672531edb6bb8e211204e7754a9efa802342118eee850beea742bac95a3f706cc2024cf6037a308bb68162b2f53b9a6346a96e6d31871a2456186e24a1c7a82b82ac04afdfd57cd7fb9ba77a9c760d40b76a170f7be525e5fb6a9848cc726e806187710d9b190387df28700f321f988a392899f93815cc937f309129eb94d5299c5547cb2c085898e6639496e70d746c9d3fb9881d0011010001c2c06504180108000f050251d1f07b050900266305021b0c000a0910e7b484133a890a35bff207fd10dfe8c4a6ea1dd30568012b6fd6891a763c87ad0f7a1d112aad9e8e3239378a3b85588c235865bac2e614348cb4f216d7217f53b3ef48c192e0a4d31d64d7bfa5faccf21155965fa156e887056db644a05ad08a85cc6152d1377d9e37b46f4ff462bbe68ace2dc586ef90070314576c985d8037c2ba63f0a7dc17a62e15bd77e88bc61d9d00858979709f12304264a4cf4225c5cf86f12c8e19486cb9cdcc69f18f027e5f16f4ca8b50e28b3115eaff3a345acd21f624aef81f6ede515c1b55b26b84c1e32264754eab672d5489b287e7277ea855e0a5ff2aa9e8b8c76d579a964ec225255f4d57bf66639ccb34b64798846943e162a41096a7002ca21c7f56" -const subkeyUsageHex = "988d04533a52bc010400d26af43085558f65b9e7dbc90cb9238015259aed5e954637adcfa2181548b2d0b60c65f1f42ec5081cbf1bc0a8aa4900acfb77070837c58f26012fbce297d70afe96e759ad63531f0037538e70dbf8e384569b9720d99d8eb39d8d0a2947233ed242436cb6ac7dfe74123354b3d0119b5c235d3dd9c9d6c004f8ffaf67ad8583001101000188b7041f010200210502533b8552170c8001ce094aa433f7040bb2ddf0be3893cb843d0fe70c020700000a0910a42704b92866382aa98404009d63d916a27543da4221c60087c33f1c44bec9998c5438018ed370cca4962876c748e94b73eb39c58eb698063f3fd6346d58dd2a11c0247934c4a9d71f24754f7468f96fb24c3e791dd2392b62f626148ad724189498cbf993db2df7c0cdc2d677c35da0f16cb16c9ce7c33b4de65a4a91b1d21a130ae9cc26067718910ef8e2b417556d627261203c756d627261407379642e65642e61753e88b80413010200220502533a52bc021b03060b090807030206150802090a0b0416020301021e01021780000a0910a42704b92866382a47840400c0c2bd04f5fca586de408b395b3c280a278259c93eaaa8b79a53b97003f8ed502a8a00446dd9947fb462677e4fcac0dac2f0701847d15130aadb6cd9e0705ea0cf5f92f129136c7be21a718d46c8e641eb7f044f2adae573e11ae423a0a9ca51324f03a8a2f34b91fa40c3cc764bee4dccadedb54c768ba0469b683ea53f1c29b88d04533a52bc01040099c92a5d6f8b744224da27bc2369127c35269b58bec179de6bbc038f749344222f85a31933224f26b70243c4e4b2d242f0c4777eaef7b5502f9dad6d8bf3aaeb471210674b74de2d7078af497d55f5cdad97c7bedfbc1b41e8065a97c9c3d344b21fc81d27723af8e374bc595da26ea242dccb6ae497be26eea57e563ed517e90011010001889f0418010200090502533a52bc021b0c000a0910a42704b92866382afa1403ff70284c2de8a043ff51d8d29772602fa98009b7861c540535f874f2c230af8caf5638151a636b21f8255003997ccd29747fdd06777bb24f9593bd7d98a3e887689bf902f999915fcc94625ae487e5d13e6616f89090ebc4fdc7eb5cad8943e4056995bb61c6af37f8043016876a958ec7ebf39c43d20d53b7f546cfa83e8d2604b88d04533b8283010400c0b529316dbdf58b4c54461e7e669dc11c09eb7f73819f178ccd4177b9182b91d138605fcf1e463262fabefa73f94a52b5e15d1904635541c7ea540f07050ce0fb51b73e6f88644cec86e91107c957a114f69554548a85295d2b70bd0b203992f76eb5d493d86d9eabcaa7ef3fc7db7e458438db3fcdb0ca1cc97c638439a9170011010001889f0418010200090502533b8283021b0c000a0910a42704b92866382adc6d0400cfff6258485a21675adb7a811c3e19ebca18851533f75a7ba317950b9997fda8d1a4c8c76505c08c04b6c2cc31dc704d33da36a21273f2b388a1a706f7c3378b66d887197a525936ed9a69acb57fe7f718133da85ec742001c5d1864e9c6c8ea1b94f1c3759cebfd93b18606066c063a63be86085b7e37bdbc65f9a915bf084bb901a204533b85cd110400aed3d2c52af2b38b5b67904b0ef73d6dd7aef86adb770e2b153cd22489654dcc91730892087bb9856ae2d9f7ed1eb48f214243fe86bfe87b349ebd7c30e630e49c07b21fdabf78b7a95c8b7f969e97e3d33f2e074c63552ba64a2ded7badc05ce0ea2be6d53485f6900c7860c7aa76560376ce963d7271b9b54638a4028b573f00a0d8854bfcdb04986141568046202192263b9b67350400aaa1049dbc7943141ef590a70dcb028d730371d92ea4863de715f7f0f16d168bd3dc266c2450457d46dcbbf0b071547e5fbee7700a820c3750b236335d8d5848adb3c0da010e998908dfd93d961480084f3aea20b247034f8988eccb5546efaa35a92d0451df3aaf1aee5aa36a4c4d462c760ecd9cebcabfbe1412b1f21450f203fd126687cd486496e971a87fd9e1a8a765fe654baa219a6871ab97768596ab05c26c1aeea8f1a2c72395a58dbc12ef9640d2b95784e974a4d2d5a9b17c25fedacfe551bda52602de8f6d2e48443f5dd1a2a2a8e6a5e70ecdb88cd6e766ad9745c7ee91d78cc55c3d06536b49c3fee6c3d0b6ff0fb2bf13a314f57c953b8f4d93bf88e70418010200090502533b85cd021b0200520910a42704b92866382a47200419110200060502533b85cd000a091042ce2c64bc0ba99214b2009e26b26852c8b13b10c35768e40e78fbbb48bd084100a0c79d9ea0844fa5853dd3c85ff3ecae6f2c9dd6c557aa04008bbbc964cd65b9b8299d4ebf31f41cc7264b8cf33a00e82c5af022331fac79efc9563a822497ba012953cefe2629f1242fcdcb911dbb2315985bab060bfd58261ace3c654bdbbe2e8ed27a46e836490145c86dc7bae15c011f7e1ffc33730109b9338cd9f483e7cef3d2f396aab5bd80efb6646d7e778270ee99d934d187dd98" -const revokedKeyHex = "988d045331ce82010400c4fdf7b40a5477f206e6ee278eaef888ca73bf9128a9eef9f2f1ddb8b7b71a4c07cfa241f028a04edb405e4d916c61d6beabc333813dc7b484d2b3c52ee233c6a79b1eea4e9cc51596ba9cd5ac5aeb9df62d86ea051055b79d03f8a4fa9f38386f5bd17529138f3325d46801514ea9047977e0829ed728e68636802796801be10011010001889f04200102000905025331d0e3021d03000a0910a401d9f09a34f7c042aa040086631196405b7e6af71026b88e98012eab44aa9849f6ef3fa930c7c9f23deaedba9db1538830f8652fb7648ec3fcade8dbcbf9eaf428e83c6cbcc272201bfe2fbb90d41963397a7c0637a1a9d9448ce695d9790db2dc95433ad7be19eb3de72dacf1d6db82c3644c13eae2a3d072b99bb341debba012c5ce4006a7d34a1f4b94b444526567205265766f6b657220283c52656727732022424d204261726973746122204b657920262530305c303e5c29203c72656740626d626172697374612e636f2e61753e88b704130102002205025331ce82021b03060b090807030206150802090a0b0416020301021e01021780000a0910a401d9f09a34f7c0019c03f75edfbeb6a73e7225ad3cc52724e2872e04260d7daf0d693c170d8c4b243b8767bc7785763533febc62ec2600c30603c433c095453ede59ff2fcabeb84ce32e0ed9d5cf15ffcbc816202b64370d4d77c1e9077d74e94a16fb4fa2e5bec23a56d7a73cf275f91691ae1801a976fcde09e981a2f6327ac27ea1fecf3185df0d56889c04100102000605025331cfb5000a0910fe9645554e8266b64b4303fc084075396674fb6f778d302ac07cef6bc0b5d07b66b2004c44aef711cbac79617ef06d836b4957522d8772dd94bf41a2f4ac8b1ee6d70c57503f837445a74765a076d07b829b8111fc2a918423ddb817ead7ca2a613ef0bfb9c6b3562aec6c3cf3c75ef3031d81d95f6563e4cdcc9960bcb386c5d757b104fcca5fe11fc709df884604101102000605025331cfe7000a09107b15a67f0b3ddc0317f6009e360beea58f29c1d963a22b962b80788c3fa6c84e009d148cfde6b351469b8eae91187eff07ad9d08fcaab88d045331ce820104009f25e20a42b904f3fa555530fe5c46737cf7bd076c35a2a0d22b11f7e0b61a69320b768f4a80fe13980ce380d1cfc4a0cd8fbe2d2e2ef85416668b77208baa65bf973fe8e500e78cc310d7c8705cdb34328bf80e24f0385fce5845c33bc7943cf6b11b02348a23da0bf6428e57c05135f2dc6bd7c1ce325d666d5a5fd2fd5e410011010001889f04180102000905025331ce82021b0c000a0910a401d9f09a34f7c0418003fe34feafcbeaef348a800a0d908a7a6809cc7304017d820f70f0474d5e23cb17e38b67dc6dca282c6ca00961f4ec9edf2738d0f087b1d81e4871ef08e1798010863afb4eac4c44a376cb343be929c5be66a78cfd4456ae9ec6a99d97f4e1c3ff3583351db2147a65c0acef5c003fb544ab3a2e2dc4d43646f58b811a6c3a369d1f" -const revokedSubkeyHex = "988d04533121f6010400aefc803a3e4bb1a61c86e8a86d2726c6a43e0079e9f2713f1fa017e9854c83877f4aced8e331d675c67ea83ddab80aacbfa0b9040bb12d96f5a3d6be09455e2a76546cbd21677537db941cab710216b6d24ec277ee0bd65b910f416737ed120f6b93a9d3b306245c8cfd8394606fdb462e5cf43c551438d2864506c63367fc890011010001b41d416c696365203c616c69636540626d626172697374612e636f2e61753e88bb041301020025021b03060b090807030206150802090a0b0416020301021e01021780050253312798021901000a09104ef7e4beccde97f015a803ff5448437780f63263b0df8442a995e7f76c221351a51edd06f2063d8166cf3157aada4923dfc44aa0f2a6a4da5cf83b7fe722ba8ab416c976e77c6b5682e7f1069026673bd0de56ba06fd5d7a9f177607f277d9b55ff940a638c3e68525c67517e2b3d976899b93ca267f705b3e5efad7d61220e96b618a4497eab8d04403d23f8846041011020006050253312910000a09107b15a67f0b3ddc03d96e009f50b6365d86c4be5d5e9d0ea42d5e56f5794c617700a0ab274e19c2827780016d23417ce89e0a2c0d987d889c04100102000605025331cf7a000a0910a401d9f09a34f7c0ee970400aca292f213041c9f3b3fc49148cbda9d84afee6183c8dd6c5ff2600b29482db5fecd4303797be1ee6d544a20a858080fec43412061c9a71fae4039fd58013b4ae341273e6c66ad4c7cdd9e68245bedb260562e7b166f2461a1032f2b38c0e0e5715fb3d1656979e052b55ca827a76f872b78a9fdae64bc298170bfcebedc1271b41a416c696365203c616c696365407379646973702e6f722e61753e88b804130102002205025331278b021b03060b090807030206150802090a0b0416020301021e01021780000a09104ef7e4beccde97f06a7003fa03c3af68d272ebc1fa08aa72a03b02189c26496a2833d90450801c4e42c5b5f51ad96ce2d2c9cef4b7c02a6a2fcf1412d6a2d486098eb762f5010a201819c17fd2888aec8eda20c65a3b75744de7ee5cc8ac7bfc470cbe3cb982720405a27a3c6a8c229cfe36905f881b02ed5680f6a8f05866efb9d6c5844897e631deb949ca8846041011020006050253312910000a09107b15a67f0b3ddc0347bc009f7fa35db59147469eb6f2c5aaf6428accb138b22800a0caa2f5f0874bacc5909c652a57a31beda65eddd5889c04100102000605025331cf7a000a0910a401d9f09a34f7c0316403ff46f2a5c101256627f16384d34a38fb47a6c88ba60506843e532d91614339fccae5f884a5741e7582ffaf292ba38ee10a270a05f139bde3814b6a077e8cd2db0f105ebea2a83af70d385f13b507fac2ad93ff79d84950328bb86f3074745a8b7f9b64990fb142e2a12976e27e8d09a28dc5621f957ac49091116da410ac3cbde1b88d04533121f6010400cbd785b56905e4192e2fb62a720727d43c4fa487821203cf72138b884b78b701093243e1d8c92a0248a6c0203a5a88693da34af357499abacaf4b3309c640797d03093870a323b4b6f37865f6eaa2838148a67df4735d43a90ca87942554cdf1c4a751b1e75f9fd4ce4e97e278d6c1c7ed59d33441df7d084f3f02beb68896c70011010001889f0418010200090502533121f6021b0c000a09104ef7e4beccde97f0b98b03fc0a5ccf6a372995835a2f5da33b282a7d612c0ab2a97f59cf9fff73e9110981aac2858c41399afa29624a7fd8a0add11654e3d882c0fd199e161bdad65e5e2548f7b68a437ea64293db1246e3011cbb94dc1bcdeaf0f2539bd88ff16d95547144d97cead6a8c5927660a91e6db0d16eb36b7b49a3525b54d1644e65599b032b7eb901a204533127a0110400bd3edaa09eff9809c4edc2c2a0ebe52e53c50a19c1e49ab78e6167bf61473bb08f2050d78a5cbbc6ed66aff7b42cd503f16b4a0b99fa1609681fca9b7ce2bbb1a5b3864d6cdda4d7ef7849d156d534dea30fb0efb9e4cf8959a2b2ce623905882d5430b995a15c3b9fe92906086788b891002924f94abe139b42cbbfaaabe42f00a0b65dc1a1ad27d798adbcb5b5ad02d2688c89477b03ff4eebb6f7b15a73b96a96bed201c0e5e4ea27e4c6e2dd1005b94d4b90137a5b1cf5e01c6226c070c4cc999938101578877ee76d296b9aab8246d57049caacf489e80a3f40589cade790a020b1ac146d6f7a6241184b8c7fcde680eae3188f5dcbe846d7f7bdad34f6fcfca08413e19c1d5df83fc7c7c627d493492e009c2f52a80400a2fe82de87136fd2e8845888c4431b032ba29d9a29a804277e31002a8201fb8591a3e55c7a0d0881496caf8b9fb07544a5a4879291d0dc026a0ea9e5bd88eb4aa4947bbd694b25012e208a250d65ddc6f1eea59d3aed3b4ec15fcab85e2afaa23a40ab1ef9ce3e11e1bc1c34a0e758e7aa64deb8739276df0af7d4121f834a9b88e70418010200090502533127a0021b02005209104ef7e4beccde97f047200419110200060502533127a0000a0910dbce4ee19529437fe045009c0b32f5ead48ee8a7e98fac0dea3d3e6c0e2c552500a0ad71fadc5007cfaf842d9b7db3335a8cdad15d3d1a6404009b08e2c68fe8f3b45c1bb72a4b3278cdf3012aa0f229883ad74aa1f6000bb90b18301b2f85372ca5d6b9bf478d235b733b1b197d19ccca48e9daf8e890cb64546b4ce1b178faccfff07003c172a2d4f5ebaba9f57153955f3f61a9b80a4f5cb959908f8b211b03b7026a8a82fc612bfedd3794969bcf458c4ce92be215a1176ab88d045331d144010400a5063000c5aaf34953c1aa3bfc95045b3aab9882b9a8027fecfe2142dc6b47ba8aca667399990244d513dd0504716908c17d92c65e74219e004f7b83fc125e575dd58efec3ab6dd22e3580106998523dea42ec75bf9aa111734c82df54630bebdff20fe981cfc36c76f865eb1c2fb62c9e85bc3a6e5015a361a2eb1c8431578d0011010001889f04280102000905025331d433021d03000a09104ef7e4beccde97f02e5503ff5e0630d1b65291f4882b6d40a29da4616bb5088717d469fbcc3648b8276de04a04988b1f1b9f3e18f52265c1f8b6c85861691c1a6b8a3a25a1809a0b32ad330aec5667cb4262f4450649184e8113849b05e5ad06a316ea80c001e8e71838190339a6e48bbde30647bcf245134b9a97fa875c1d83a9862cae87ffd7e2c4ce3a1b89013d04180102000905025331d144021b0200a809104ef7e4beccde97f09d2004190102000605025331d144000a0910677815e371c2fd23522203fe22ab62b8e7a151383cea3edd3a12995693911426f8ccf125e1f6426388c0010f88d9ca7da2224aee8d1c12135998640c5e1813d55a93df472faae75bef858457248db41b4505827590aeccf6f9eb646da7f980655dd3050c6897feddddaca90676dee856d66db8923477d251712bb9b3186b4d0114daf7d6b59272b53218dd1da94a03ff64006fcbe71211e5daecd9961fba66cdb6de3f914882c58ba5beddeba7dcb950c1156d7fba18c19ea880dccc800eae335deec34e3b84ac75ffa24864f782f87815cda1c0f634b3dd2fa67cea30811d21723d21d9551fa12ccbcfa62b6d3a15d01307b99925707992556d50065505b090aadb8579083a20fe65bd2a270da9b011" - -const missingCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- -Charset: UTF-8 - -mQENBFMYynYBCACVOZ3/e8Bm2b9KH9QyIlHGo/i1bnkpqsgXj8tpJ2MIUOnXMMAY -ztW7kKFLCmgVdLIC0vSoLA4yhaLcMojznh/2CcUglZeb6Ao8Gtelr//Rd5DRfPpG -zqcfUo+m+eO1co2Orabw0tZDfGpg5p3AYl0hmxhUyYSc/xUq93xL1UJzBFgYXY54 -QsM8dgeQgFseSk/YvdP5SMx1ev+eraUyiiUtWzWrWC1TdyRa5p4UZg6Rkoppf+WJ -QrW6BWrhAtqATHc8ozV7uJjeONjUEq24roRc/OFZdmQQGK6yrzKnnbA6MdHhqpdo -9kWDcXYb7pSE63Lc+OBa5X2GUVvXJLS/3nrtABEBAAG0F2ludmFsaWQtc2lnbmlu -Zy1zdWJrZXlziQEoBBMBAgASBQJTnKB5AhsBAgsHAhUIAh4BAAoJEO3UDQUIHpI/ -dN4H/idX4FQ1LIZCnpHS/oxoWQWfpRgdKAEM0qCqjMgiipJeEwSQbqjTCynuh5/R -JlODDz85ABR06aoF4l5ebGLQWFCYifPnJZ/Yf5OYcMGtb7dIbqxWVFL9iLMO/oDL -ioI3dotjPui5e+2hI9pVH1UHB/bZ/GvMGo6Zg0XxLPolKQODMVjpjLAQ0YJ3spew -RAmOGre6tIvbDsMBnm8qREt7a07cBJ6XK7xjxYaZHQBiHVxyEWDa6gyANONx8duW -/fhQ/zDTnyVM/ik6VO0Ty9BhPpcEYLFwh5c1ilFari1ta3e6qKo6ZGa9YMk/REhu -yBHd9nTkI+0CiQUmbckUiVjDKKe5AQ0EUxjKdgEIAJcXQeP+NmuciE99YcJoffxv -2gVLU4ZXBNHEaP0mgaJ1+tmMD089vUQAcyGRvw8jfsNsVZQIOAuRxY94aHQhIRHR -bUzBN28ofo/AJJtfx62C15xt6fDKRV6HXYqAiygrHIpEoRLyiN69iScUsjIJeyFL -C8wa72e8pSL6dkHoaV1N9ZH/xmrJ+k0vsgkQaAh9CzYufncDxcwkoP+aOlGtX1gP -WwWoIbz0JwLEMPHBWvDDXQcQPQTYQyj+LGC9U6f9VZHN25E94subM1MjuT9OhN9Y -MLfWaaIc5WyhLFyQKW2Upofn9wSFi8ubyBnv640Dfd0rVmaWv7LNTZpoZ/GbJAMA -EQEAAYkBHwQYAQIACQUCU5ygeQIbAgAKCRDt1A0FCB6SP0zCB/sEzaVR38vpx+OQ -MMynCBJrakiqDmUZv9xtplY7zsHSQjpd6xGflbU2n+iX99Q+nav0ETQZifNUEd4N -1ljDGQejcTyKD6Pkg6wBL3x9/RJye7Zszazm4+toJXZ8xJ3800+BtaPoI39akYJm -+ijzbskvN0v/j5GOFJwQO0pPRAFtdHqRs9Kf4YanxhedB4dIUblzlIJuKsxFit6N -lgGRblagG3Vv2eBszbxzPbJjHCgVLR3RmrVezKOsZjr/2i7X+xLWIR0uD3IN1qOW -CXQxLBizEEmSNVNxsp7KPGTLnqO3bPtqFirxS9PJLIMPTPLNBY7ZYuPNTMqVIUWF -4artDmrG -=7FfJ ------END PGP PUBLIC KEY BLOCK-----` - -const invalidCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- - -mQENBFMYynYBCACVOZ3/e8Bm2b9KH9QyIlHGo/i1bnkpqsgXj8tpJ2MIUOnXMMAY -ztW7kKFLCmgVdLIC0vSoLA4yhaLcMojznh/2CcUglZeb6Ao8Gtelr//Rd5DRfPpG -zqcfUo+m+eO1co2Orabw0tZDfGpg5p3AYl0hmxhUyYSc/xUq93xL1UJzBFgYXY54 -QsM8dgeQgFseSk/YvdP5SMx1ev+eraUyiiUtWzWrWC1TdyRa5p4UZg6Rkoppf+WJ -QrW6BWrhAtqATHc8ozV7uJjeONjUEq24roRc/OFZdmQQGK6yrzKnnbA6MdHhqpdo -9kWDcXYb7pSE63Lc+OBa5X2GUVvXJLS/3nrtABEBAAG0F2ludmFsaWQtc2lnbmlu -Zy1zdWJrZXlziQEoBBMBAgASBQJTnKB5AhsBAgsHAhUIAh4BAAoJEO3UDQUIHpI/ -dN4H/idX4FQ1LIZCnpHS/oxoWQWfpRgdKAEM0qCqjMgiipJeEwSQbqjTCynuh5/R -JlODDz85ABR06aoF4l5ebGLQWFCYifPnJZ/Yf5OYcMGtb7dIbqxWVFL9iLMO/oDL -ioI3dotjPui5e+2hI9pVH1UHB/bZ/GvMGo6Zg0XxLPolKQODMVjpjLAQ0YJ3spew -RAmOGre6tIvbDsMBnm8qREt7a07cBJ6XK7xjxYaZHQBiHVxyEWDa6gyANONx8duW -/fhQ/zDTnyVM/ik6VO0Ty9BhPpcEYLFwh5c1ilFari1ta3e6qKo6ZGa9YMk/REhu -yBHd9nTkI+0CiQUmbckUiVjDKKe5AQ0EUxjKdgEIAIINDqlj7X6jYKc6DjwrOkjQ -UIRWbQQar0LwmNilehmt70g5DCL1SYm9q4LcgJJ2Nhxj0/5qqsYib50OSWMcKeEe -iRXpXzv1ObpcQtI5ithp0gR53YPXBib80t3bUzomQ5UyZqAAHzMp3BKC54/vUrSK -FeRaxDzNLrCeyI00+LHNUtwghAqHvdNcsIf8VRumK8oTm3RmDh0TyjASWYbrt9c8 -R1Um3zuoACOVy+mEIgIzsfHq0u7dwYwJB5+KeM7ZLx+HGIYdUYzHuUE1sLwVoELh -+SHIGHI1HDicOjzqgajShuIjj5hZTyQySVprrsLKiXS6NEwHAP20+XjayJ/R3tEA -EQEAAYkCPgQYAQIBKAUCU5ygeQIbAsBdIAQZAQIABgUCU5ygeQAKCRCpVlnFZmhO -52RJB/9uD1MSa0wjY6tHOIgquZcP3bHBvHmrHNMw9HR2wRCMO91ZkhrpdS3ZHtgb -u3/55etj0FdvDo1tb8P8FGSVtO5Vcwf5APM8sbbqoi8L951Q3i7qt847lfhu6sMl -w0LWFvPTOLHrliZHItPRjOltS1WAWfr2jUYhsU9ytaDAJmvf9DujxEOsN5G1YJep -54JCKVCkM/y585Zcnn+yxk/XwqoNQ0/iJUT9qRrZWvoeasxhl1PQcwihCwss44A+ -YXaAt3hbk+6LEQuZoYS73yR3WHj+42tfm7YxRGeubXfgCEz/brETEWXMh4pe0vCL -bfWrmfSPq2rDegYcAybxRQz0lF8PAAoJEO3UDQUIHpI/exkH/0vQfdHA8g/N4T6E -i6b1CUVBAkvtdJpCATZjWPhXmShOw62gkDw306vHPilL4SCvEEi4KzG72zkp6VsB -DSRcpxCwT4mHue+duiy53/aRMtSJ+vDfiV1Vhq+3sWAck/yUtfDU9/u4eFaiNok1 -8/Gd7reyuZt5CiJnpdPpjCwelK21l2w7sHAnJF55ITXdOxI8oG3BRKufz0z5lyDY -s2tXYmhhQIggdgelN8LbcMhWs/PBbtUr6uZlNJG2lW1yscD4aI529VjwJlCeo745 -U7pO4eF05VViUJ2mmfoivL3tkhoTUWhx8xs8xCUcCg8DoEoSIhxtOmoTPR22Z9BL -6LCg2mg= -=Dhm4 ------END PGP PUBLIC KEY BLOCK-----` - -const goodCrossSignatureKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 - -mI0EVUqeVwEEAMufHRrMPWK3gyvi0O0tABCs/oON9zV9KDZlr1a1M91ShCSFwCPo -7r80PxdWVWcj0V5h50/CJYtpN3eE/mUIgW2z1uDYQF1OzrQ8ubrksfsJvpAhENom -lTQEppv9mV8qhcM278teb7TX0pgrUHLYF5CfPdp1L957JLLXoQR/lwLVABEBAAG0 -E2dvb2Qtc2lnbmluZy1zdWJrZXmIuAQTAQIAIgUCVUqeVwIbAwYLCQgHAwIGFQgC -CQoLBBYCAwECHgECF4AACgkQNRjL95IRWP69XQQAlH6+eyXJN4DZTLX78KGjHrsw -6FCvxxClEPtPUjcJy/1KCRQmtLAt9PbbA78dvgzjDeZMZqRAwdjyJhjyg/fkU2OH -7wq4ktjUu+dLcOBb+BFMEY+YjKZhf6EJuVfxoTVr5f82XNPbYHfTho9/OABKH6kv -X70PaKZhbwnwij8Nts65AaIEVUqftREEAJ3WxZfqAX0bTDbQPf2CMT2IVMGDfhK7 -GyubOZgDFFjwUJQvHNvsrbeGLZ0xOBumLINyPO1amIfTgJNm1iiWFWfmnHReGcDl -y5mpYG60Mb79Whdcer7CMm3AqYh/dW4g6IB02NwZMKoUHo3PXmFLxMKXnWyJ0clw -R0LI/Qn509yXAKDh1SO20rqrBM+EAP2c5bfI98kyNwQAi3buu94qo3RR1ZbvfxgW -CKXDVm6N99jdZGNK7FbRifXqzJJDLcXZKLnstnC4Sd3uyfyf1uFhmDLIQRryn5m+ -LBYHfDBPN3kdm7bsZDDq9GbTHiFZUfm/tChVKXWxkhpAmHhU/tH6GGzNSMXuIWSO -aOz3Rqq0ED4NXyNKjdF9MiwD/i83S0ZBc0LmJYt4Z10jtH2B6tYdqnAK29uQaadx -yZCX2scE09UIm32/w7pV77CKr1Cp/4OzAXS1tmFzQ+bX7DR+Gl8t4wxr57VeEMvl -BGw4Vjh3X8//m3xynxycQU18Q1zJ6PkiMyPw2owZ/nss3hpSRKFJsxMLhW3fKmKr -Ey2KiOcEGAECAAkFAlVKn7UCGwIAUgkQNRjL95IRWP5HIAQZEQIABgUCVUqftQAK -CRD98VjDN10SqkWrAKDTpEY8D8HC02E/KVC5YUI01B30wgCgurpILm20kXEDCeHp -C5pygfXw1DJrhAP+NyPJ4um/bU1I+rXaHHJYroYJs8YSweiNcwiHDQn0Engh/mVZ -SqLHvbKh2dL/RXymC3+rjPvQf5cup9bPxNMa6WagdYBNAfzWGtkVISeaQW+cTEp/ -MtgVijRGXR/lGLGETPg2X3Afwn9N9bLMBkBprKgbBqU7lpaoPupxT61bL70= -=vtbN ------END PGP PUBLIC KEY BLOCK-----` - -const revokedUserIDKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- - -mQENBFsgO5EBCADhREPmcjsPkXe1z7ctvyWL0S7oa9JaoGZ9oPDHFDlQxd0qlX2e -DZJZDg0qYvVixmaULIulApq1puEsaJCn3lHUbHlb4PYKwLEywYXM28JN91KtLsz/ -uaEX2KC5WqeP40utmzkNLq+oRX/xnRMgwbO7yUNVG2UlEa6eI+xOXO3YtLdmJMBW -ClQ066ZnOIzEo1JxnIwha1CDBMWLLfOLrg6l8InUqaXbtEBbnaIYO6fXVXELUjkx -nmk7t/QOk0tXCy8muH9UDqJkwDUESY2l79XwBAcx9riX8vY7vwC34pm22fAUVLCJ -x1SJx0J8bkeNp38jKM2Zd9SUQqSbfBopQ4pPABEBAAG0I0dvbGFuZyBHb3BoZXIg -PG5vLXJlcGx5QGdvbGFuZy5jb20+iQFUBBMBCgA+FiEE5Ik5JLcNx6l6rZfw1oFy -9I6cUoMFAlsgO5ECGwMFCQPCZwAFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQ -1oFy9I6cUoMIkwf8DNPeD23i4jRwd/pylbvxwZintZl1fSwTJW1xcOa1emXaEtX2 -depuqhP04fjlRQGfsYAQh7X9jOJxAHjTmhqFBi5sD7QvKU00cPFYbJ/JTx0B41bl -aXnSbGhRPh63QtEZL7ACAs+shwvvojJqysx7kyVRu0EW2wqjXdHwR/SJO6nhNBa2 -DXzSiOU/SUA42mmG+5kjF8Aabq9wPwT9wjraHShEweNerNMmOqJExBOy3yFeyDpa -XwEZFzBfOKoxFNkIaVf5GSdIUGhFECkGvBMB935khftmgR8APxdU4BE7XrXexFJU -8RCuPXonm4WQOwTWR0vQg64pb2WKAzZ8HhwTGbQiR29sYW5nIEdvcGhlciA8cmV2 -b2tlZEBnb2xhbmcuY29tPokBNgQwAQoAIBYhBOSJOSS3Dcepeq2X8NaBcvSOnFKD -BQJbIDv3Ah0AAAoJENaBcvSOnFKDfWMIAKhI/Tvu3h8fSUxp/gSAcduT6bC1JttG -0lYQ5ilKB/58lBUA5CO3ZrKDKlzW3M8VEcvohVaqeTMKeoQd5rCZq8KxHn/KvN6N -s85REfXfniCKfAbnGgVXX3kDmZ1g63pkxrFu0fDZjVDXC6vy+I0sGyI/Inro0Pzb -tvn0QCsxjapKK15BtmSrpgHgzVqVg0cUp8vqZeKFxarYbYB2idtGRci4b9tObOK0 -BSTVFy26+I/mrFGaPrySYiy2Kz5NMEcRhjmTxJ8jSwEr2O2sUR0yjbgUAXbTxDVE -/jg5fQZ1ACvBRQnB7LvMHcInbzjyeTM3FazkkSYQD6b97+dkWwb1iWG5AQ0EWyA7 -kQEIALkg04REDZo1JgdYV4x8HJKFS4xAYWbIva1ZPqvDNmZRUbQZR2+gpJGEwn7z -VofGvnOYiGW56AS5j31SFf5kro1+1bZQ5iOONBng08OOo58/l1hRseIIVGB5TGSa -PCdChKKHreJI6hS3mShxH6hdfFtiZuB45rwoaArMMsYcjaezLwKeLc396cpUwwcZ -snLUNd1Xu5EWEF2OdFkZ2a1qYdxBvAYdQf4+1Nr+NRIx1u1NS9c8jp3PuMOkrQEi -bNtc1v6v0Jy52mKLG4y7mC/erIkvkQBYJdxPaP7LZVaPYc3/xskcyijrJ/5ufoD8 -K71/ShtsZUXSQn9jlRaYR0EbojMAEQEAAYkBPAQYAQoAJhYhBOSJOSS3Dcepeq2X -8NaBcvSOnFKDBQJbIDuRAhsMBQkDwmcAAAoJENaBcvSOnFKDkFMIAIt64bVZ8x7+ -TitH1bR4pgcNkaKmgKoZz6FXu80+SnbuEt2NnDyf1cLOSimSTILpwLIuv9Uft5Pb -OraQbYt3xi9yrqdKqGLv80bxqK0NuryNkvh9yyx5WoG1iKqMj9/FjGghuPrRaT4l -QinNAghGVkEy1+aXGFrG2DsOC1FFI51CC2WVTzZ5RwR2GpiNRfESsU1rZAUqf/2V -yJl9bD5R4SUNy8oQmhOxi+gbhD4Ao34e4W0ilibslI/uawvCiOwlu5NGd8zv5n+U -heiQvzkApQup5c+BhH5zFDFdKJ2CBByxw9+7QjMFI/wgLixKuE0Ob2kAokXf7RlB -7qTZOahrETw= -=IKnw ------END PGP PUBLIC KEY BLOCK-----` - -const keyWithFirstUserIDRevoked = `-----BEGIN PGP PUBLIC KEY BLOCK----- -Version: OpenPGP.js v4.10.10 -Comment: https://openpgpjs.org - -xsBNBFsgO5EBCADhREPmcjsPkXe1z7ctvyWL0S7oa9JaoGZ9oPDHFDlQxd0q -lX2eDZJZDg0qYvVixmaULIulApq1puEsaJCn3lHUbHlb4PYKwLEywYXM28JN -91KtLsz/uaEX2KC5WqeP40utmzkNLq+oRX/xnRMgwbO7yUNVG2UlEa6eI+xO -XO3YtLdmJMBWClQ066ZnOIzEo1JxnIwha1CDBMWLLfOLrg6l8InUqaXbtEBb -naIYO6fXVXELUjkxnmk7t/QOk0tXCy8muH9UDqJkwDUESY2l79XwBAcx9riX -8vY7vwC34pm22fAUVLCJx1SJx0J8bkeNp38jKM2Zd9SUQqSbfBopQ4pPABEB -AAHNIkdvbGFuZyBHb3BoZXIgPHJldm9rZWRAZ29sYW5nLmNvbT7CwI0EMAEK -ACAWIQTkiTkktw3HqXqtl/DWgXL0jpxSgwUCWyA79wIdAAAhCRDWgXL0jpxS -gxYhBOSJOSS3Dcepeq2X8NaBcvSOnFKDfWMIAKhI/Tvu3h8fSUxp/gSAcduT -6bC1JttG0lYQ5ilKB/58lBUA5CO3ZrKDKlzW3M8VEcvohVaqeTMKeoQd5rCZ -q8KxHn/KvN6Ns85REfXfniCKfAbnGgVXX3kDmZ1g63pkxrFu0fDZjVDXC6vy -+I0sGyI/Inro0Pzbtvn0QCsxjapKK15BtmSrpgHgzVqVg0cUp8vqZeKFxarY -bYB2idtGRci4b9tObOK0BSTVFy26+I/mrFGaPrySYiy2Kz5NMEcRhjmTxJ8j -SwEr2O2sUR0yjbgUAXbTxDVE/jg5fQZ1ACvBRQnB7LvMHcInbzjyeTM3Fazk -kSYQD6b97+dkWwb1iWHNI0dvbGFuZyBHb3BoZXIgPG5vLXJlcGx5QGdvbGFu -Zy5jb20+wsCrBBMBCgA+FiEE5Ik5JLcNx6l6rZfw1oFy9I6cUoMFAlsgO5EC -GwMFCQPCZwAFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AAIQkQ1oFy9I6cUoMW -IQTkiTkktw3HqXqtl/DWgXL0jpxSgwiTB/wM094PbeLiNHB3+nKVu/HBmKe1 -mXV9LBMlbXFw5rV6ZdoS1fZ16m6qE/Th+OVFAZ+xgBCHtf2M4nEAeNOaGoUG -LmwPtC8pTTRw8Vhsn8lPHQHjVuVpedJsaFE+HrdC0RkvsAICz6yHC++iMmrK -zHuTJVG7QRbbCqNd0fBH9Ik7qeE0FrYNfNKI5T9JQDjaaYb7mSMXwBpur3A/ -BP3COtodKETB416s0yY6okTEE7LfIV7IOlpfARkXMF84qjEU2QhpV/kZJ0hQ -aEUQKQa8EwH3fmSF+2aBHwA/F1TgETtetd7EUlTxEK49eiebhZA7BNZHS9CD -rilvZYoDNnweHBMZzsBNBFsgO5EBCAC5INOERA2aNSYHWFeMfByShUuMQGFm -yL2tWT6rwzZmUVG0GUdvoKSRhMJ+81aHxr5zmIhluegEuY99UhX+ZK6NftW2 -UOYjjjQZ4NPDjqOfP5dYUbHiCFRgeUxkmjwnQoSih63iSOoUt5kocR+oXXxb -YmbgeOa8KGgKzDLGHI2nsy8Cni3N/enKVMMHGbJy1DXdV7uRFhBdjnRZGdmt -amHcQbwGHUH+PtTa/jUSMdbtTUvXPI6dz7jDpK0BImzbXNb+r9CcudpiixuM -u5gv3qyJL5EAWCXcT2j+y2VWj2HN/8bJHMoo6yf+bn6A/Cu9f0obbGVF0kJ/ -Y5UWmEdBG6IzABEBAAHCwJMEGAEKACYWIQTkiTkktw3HqXqtl/DWgXL0jpxS -gwUCWyA7kQIbDAUJA8JnAAAhCRDWgXL0jpxSgxYhBOSJOSS3Dcepeq2X8NaB -cvSOnFKDkFMIAIt64bVZ8x7+TitH1bR4pgcNkaKmgKoZz6FXu80+SnbuEt2N -nDyf1cLOSimSTILpwLIuv9Uft5PbOraQbYt3xi9yrqdKqGLv80bxqK0NuryN -kvh9yyx5WoG1iKqMj9/FjGghuPrRaT4lQinNAghGVkEy1+aXGFrG2DsOC1FF -I51CC2WVTzZ5RwR2GpiNRfESsU1rZAUqf/2VyJl9bD5R4SUNy8oQmhOxi+gb -hD4Ao34e4W0ilibslI/uawvCiOwlu5NGd8zv5n+UheiQvzkApQup5c+BhH5z -FDFdKJ2CBByxw9+7QjMFI/wgLixKuE0Ob2kAokXf7RlB7qTZOahrETw= -=+2T8 ------END PGP PUBLIC KEY BLOCK----- -` - -const keyWithOnlyUserIDRevoked = `-----BEGIN PGP PUBLIC KEY BLOCK----- - -mDMEYYwB7RYJKwYBBAHaRw8BAQdARimqhPPzyGAXmfQJjcqM1QVPzLtURJSzNVll -JV4tEaW0KVJldm9rZWQgUHJpbWFyeSBVc2VyIElEIDxyZXZva2VkQGtleS5jb20+ -iHgEMBYIACAWIQSpyJZAXYqVEFkjyKutFcS0yeB0LQUCYYwCtgIdAAAKCRCtFcS0 -yeB0LbSsAQD8OYMaaBjrdzzpwIkP1stgmPd4/kzN/ZG28Ywl6a5F5QEA5Xg7aq4e -/t6Fsb4F5iqB956kSPe6YJrikobD/tBbMwSIkAQTFggAOBYhBKnIlkBdipUQWSPI -q60VxLTJ4HQtBQJhjAHtAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEK0V -xLTJ4HQtBaoBAPZL7luTCji+Tqhn7XNfFE/0QIahCt8k9wfO1cGlB3inAQDf8Tzw -ZGR5fNluUcNoVxQT7bUSFStbaGo3k0BaOYPbCLg4BGGMAe0SCisGAQQBl1UBBQEB -B0DLwSpveSrbIO/IVZD13yrs1XuB3FURZUnafGrRq7+jUAMBCAeIeAQYFggAIBYh -BKnIlkBdipUQWSPIq60VxLTJ4HQtBQJhjAHtAhsMAAoJEK0VxLTJ4HQtZ1oA/j9u -8+p3xTNzsmabTL6BkNbMeB/RUKCrlm6woM6AV+vxAQCcXTn3JC2sNoNrLoXuVzaA -mcG3/TwG5GSQUUPkrDsGDA== -=mFWy ------END PGP PUBLIC KEY BLOCK----- -` - -const keyWithSubKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- - -mI0EWyKwKQEEALwXhKBnyaaNFeK3ljfc/qn9X/QFw+28EUfgZPHjRmHubuXLE2uR -s3ZoSXY2z7Dkv+NyHYMt8p+X8q5fR7JvUjK2XbPyKoiJVnHINll83yl67DaWfKNL -EjNoO0kIfbXfCkZ7EG6DL+iKtuxniGTcnGT47e+HJSqb/STpLMnWwXjBABEBAAG0 -I0dvbGFuZyBHb3BoZXIgPG5vLXJlcGx5QGdvbGFuZy5jb20+iM4EEwEKADgWIQQ/ -lRafP/p9PytHbwxMvYJsOQdOOAUCWyKwKQIbAwULCQgHAwUVCgkICwUWAgMBAAIe -AQIXgAAKCRBMvYJsOQdOOOsFBAC62mXww8XuqvYLcVOvHkWLT6mhxrQOJXnlfpn7 -2uBV9CMhoG/Ycd43NONsJrB95Apr9TDIqWnVszNbqPCuBhZQSGLdbiDKjxnCWBk0 -69qv4RNtkpOhYB7jK4s8F5oQZqId6JasT/PmJTH92mhBYhhTQr0GYFuPX2UJdkw9 -Sn9C67iNBFsisDUBBAC3A+Yo9lgCnxi/pfskyLrweYif6kIXWLAtLTsM6g/6jt7b -wTrknuCPyTv0QKGXsAEe/cK/Xq3HvX9WfXPGIHc/X56ZIsHQ+RLowbZV/Lhok1IW -FAuQm8axr/by80cRwFnzhfPc/ukkAq2Qyj4hLsGblu6mxeAhzcp8aqmWOO2H9QAR -AQABiLYEKAEKACAWIQQ/lRafP/p9PytHbwxMvYJsOQdOOAUCWyK16gIdAAAKCRBM -vYJsOQdOOB1vA/4u4uLONsE+2GVOyBsHyy7uTdkuxaR9b54A/cz6jT/tzUbeIzgx -22neWhgvIEghnUZd0vEyK9k1wy5vbDlEo6nKzHso32N1QExGr5upRERAxweDxGOj -7luDwNypI7QcifE64lS/JmlnunwRCdRWMKc0Fp+7jtRc5mpwyHN/Suf5RokBagQY -AQoAIBYhBD+VFp8/+n0/K0dvDEy9gmw5B044BQJbIrA1AhsCAL8JEEy9gmw5B044 -tCAEGQEKAB0WIQSNdnkaWY6t62iX336UXbGvYdhXJwUCWyKwNQAKCRCUXbGvYdhX -JxJSA/9fCPHP6sUtGF1o3G1a3yvOUDGr1JWcct9U+QpbCt1mZoNopCNDDQAJvDWl -mvDgHfuogmgNJRjOMznvahbF+wpTXmB7LS0SK412gJzl1fFIpK4bgnhu0TwxNsO1 -8UkCZWqxRMgcNUn9z6XWONK8dgt5JNvHSHrwF4CxxwjL23AAtK+FA/UUoi3U4kbC -0XnSr1Sl+mrzQi1+H7xyMe7zjqe+gGANtskqexHzwWPUJCPZ5qpIa2l8ghiUim6b -4ymJ+N8/T8Yva1FaPEqfMzzqJr8McYFm0URioXJPvOAlRxdHPteZ0qUopt/Jawxl -Xt6B9h1YpeLoJwjwsvbi98UTRs0jXwoY -=3fWu ------END PGP PUBLIC KEY BLOCK-----` - -const keyWithSubKeyAndBadSelfSigOrder = `-----BEGIN PGP PUBLIC KEY BLOCK----- - -mI0EWyLLDQEEAOqIOpJ/ha1OYAGduu9tS3rBz5vyjbNgJO4sFveEM0mgsHQ0X9/L -plonW+d0gRoO1dhJ8QICjDAc6+cna1DE3tEb5m6JtQ30teLZuqrR398Cf6w7NNVz -r3lrlmnH9JaKRuXl7tZciwyovneBfZVCdtsRZjaLI1uMQCz/BToiYe3DABEBAAG0 -I0dvbGFuZyBHb3BoZXIgPG5vLXJlcGx5QGdvbGFuZy5jb20+iM4EEwEKADgWIQRZ -sixZOfQcZdW0wUqmgmdsv1O9xgUCWyLLDQIbAwULCQgHAwUVCgkICwUWAgMBAAIe -AQIXgAAKCRCmgmdsv1O9xql2A/4pix98NxjhdsXtazA9agpAKeADf9tG4Za27Gj+ -3DCww/E4iP2X35jZimSm/30QRB6j08uGCqd9vXkkJxtOt63y/IpVOtWX6vMWSTUm -k8xKkaYMP0/IzKNJ1qC/qYEUYpwERBKg9Z+k99E2Ql4kRHdxXUHq6OzY79H18Y+s -GdeM/riNBFsiyxsBBAC54Pxg/8ZWaZX1phGdwfe5mek27SOYpC0AxIDCSOdMeQ6G -HPk38pywl1d+S+KmF/F4Tdi+kWro62O4eG2uc/T8JQuRDUhSjX0Qa51gPzJrUOVT -CFyUkiZ/3ZDhtXkgfuso8ua2ChBgR9Ngr4v43tSqa9y6AK7v0qjxD1x+xMrjXQAR -AQABiQFxBBgBCgAmAhsCFiEEWbIsWTn0HGXVtMFKpoJnbL9TvcYFAlsizTIFCQAN -MRcAv7QgBBkBCgAdFiEEJcoVUVJIk5RWj1c/o62jUpRPICQFAlsiyxsACgkQo62j -UpRPICQq5gQApoWIigZxXFoM0uw4uJBS5JFZtirTANvirZV5RhndwHeMN6JttaBS -YnjyA4+n1D+zB2VqliD2QrsX12KJN6rGOehCtEIClQ1Hodo9nC6kMzzAwW1O8bZs -nRJmXV+bsvD4sidLZLjdwOVa3Cxh6pvq4Uur6a7/UYx121hEY0Qx0s8JEKaCZ2y/ -U73GGi0D/i20VW8AWYAPACm2zMlzExKTOAV01YTQH/3vW0WLrOse53WcIVZga6es -HuO4So0SOEAvxKMe5HpRIu2dJxTvd99Bo9xk9xJU0AoFrO0vNCRnL+5y68xMlODK -lEw5/kl0jeaTBp6xX0HDQOEVOpPGUwWV4Ij2EnvfNDXaE1vK1kffiQFrBBgBCgAg -AhsCFiEEWbIsWTn0HGXVtMFKpoJnbL9TvcYFAlsi0AYAv7QgBBkBCgAdFiEEJcoV -UVJIk5RWj1c/o62jUpRPICQFAlsiyxsACgkQo62jUpRPICQq5gQApoWIigZxXFoM -0uw4uJBS5JFZtirTANvirZV5RhndwHeMN6JttaBSYnjyA4+n1D+zB2VqliD2QrsX -12KJN6rGOehCtEIClQ1Hodo9nC6kMzzAwW1O8bZsnRJmXV+bsvD4sidLZLjdwOVa -3Cxh6pvq4Uur6a7/UYx121hEY0Qx0s8JEKaCZ2y/U73GRl0EAJokkXmy4zKDHWWi -wvK9gi2gQgRkVnu2AiONxJb5vjeLhM/07BRmH6K1o+w3fOeEQp4FjXj1eQ5fPSM6 -Hhwx2CTl9SDnPSBMiKXsEFRkmwQ2AAsQZLmQZvKBkLZYeBiwf+IY621eYDhZfo+G -1dh1WoUCyREZsJQg2YoIpWIcvw+a -=bNRo ------END PGP PUBLIC KEY BLOCK----- -` - -const onlySubkeyNoPrivateKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- -Version: GnuPG v1 - -lQCVBFggvocBBAC7vBsHn7MKmS6IiiZNTXdciplVgS9cqVd+RTdIAoyNTcsiV1H0 -GQ3QtodOPeDlQDNoqinqaobd7R9g3m3hS53Nor7yBZkCWQ5x9v9JxRtoAq0sklh1 -I1X2zEqZk2l6YrfBF/64zWrhjnW3j23szkrAIVu0faQXbQ4z56tmZrw11wARAQAB -/gdlAkdOVQG0CUdOVSBEdW1teYi4BBMBAgAiBQJYIL6HAhsDBgsJCAcDAgYVCAIJ -CgsEFgIDAQIeAQIXgAAKCRCd1xxWp1CYAnjGA/9synn6ZXJUKAXQzySgmCZvCIbl -rqBfEpxwLG4Q/lONhm5vthAE0z49I8hj5Gc5e2tLYUtq0o0OCRdCrYHa/efOYWpJ -6RsK99bePOisVzmOABLIgZkcr022kHoMCmkPgv9CUGKP1yqbGl+zzAwQfUjRUmvD -ZIcWLHi2ge4GzPMPi50B2ARYIL6cAQQAxWHnicKejAFcFcF1/3gUSgSH7eiwuBPX -M7vDdgGzlve1o1jbV4tzrjN9jsCl6r0nJPDMfBSzgLr1auNTRG6HpJ4abcOx86ED -Ad+avDcQPZb7z3dPhH/gb2lQejZsHh7bbeOS8WMSzHV3RqCLd8J/xwWPNR5zKn1f -yp4IGfopidMAEQEAAQAD+wQOelnR82+dxyM2IFmZdOB9wSXQeCVOvxSaNMh6Y3lk -UOOkO8Nlic4x0ungQRvjoRs4wBmCuwFK/MII6jKui0B7dn/NDf51i7rGdNGuJXDH -e676By1sEY/NGkc74jr74T+5GWNU64W0vkpfgVmjSAzsUtpmhJMXsc7beBhJdnVl -AgDKCb8hZqj1alcdmLoNvb7ibA3K/V8J462CPD7bMySPBa/uayoFhNxibpoXml2r -oOtHa5izF3b0/9JY97F6rqkdAgD6GdTJ+xmlCoz1Sewoif1I6krq6xoa7gOYpIXo -UL1Afr+LiJeyAnF/M34j/kjIVmPanZJjry0kkjHE5ILjH3uvAf4/6n9np+Th8ujS -YDCIzKwR7639+H+qccOaddCep8Y6KGUMVdD/vTKEx1rMtK+hK/CDkkkxnFslifMJ -kqoqv3WUqCWJAT0EGAECAAkFAlggvpwCGwIAqAkQndccVqdQmAKdIAQZAQIABgUC -WCC+nAAKCRDmGUholQPwvQk+A/9latnSsR5s5/1A9TFki11GzSEnfLbx46FYOdkW -n3YBxZoPQGxNA1vIn8GmouxZInw9CF4jdOJxEdzLlYQJ9YLTLtN5tQEMl/19/bR8 -/qLacAZ9IOezYRWxxZsyn6//jfl7A0Y+FV59d4YajKkEfItcIIlgVBSW6T+TNQT3 -R+EH5HJ/A/4/AN0CmBhhE2vGzTnVU0VPrE4V64pjn1rufFdclgpixNZCuuqpKpoE -VVHn6mnBf4njKjZrAGPs5kfQ+H4NsM7v3Zz4yV6deu9FZc4O6E+V1WJ38rO8eBix -7G2jko106CC6vtxsCPVIzY7aaG3H5pjRtomw+pX7SzrQ7FUg2PGumg== -=F/T0 ------END PGP PRIVATE KEY BLOCK-----` - -const ecdsaPrivateKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- - -xaUEX1KsSRMIKoZIzj0DAQcCAwTpYqJsnJiFhKKh+8TulWD+lVmerBFNS+Ii -B+nlG3T0xQQ4Sy5eIjJ0CExIQQzi3EElF/Z2l4F3WC5taFA11NgA/gkDCHSS -PThf1M2K4LN8F1MRcvR+sb7i0nH55ojkwuVB1DE6jqIT9m9i+mX1tzjSAS+6 -lPQiweCJvG7xTC7Hs3AzRapf/r1At4TB+v+5G2/CKynNFEJpbGwgPGJpbGxA -aG9tZS5jb20+wncEEBMIAB8FAl9SrEkGCwkHCAMCBBUICgIDFgIBAhkBAhsD -Ah4BAAoJEMpwT3+q3+xqw5UBAMebZN9isEZ1ML+R/jWAAWMwa/knMugrEZ1v -Bl9+ZwM0AQCZdf80/wYY4Nve01qSRFv8OmKswLli3TvDv6FKc4cLz8epBF9S -rEkSCCqGSM49AwEHAgMEAjKnT9b5wY2bf9TpAV3d7OUfPOxKj9c4VzeVzSrH -AtQgo/MuI1cdYVURicV4i76DNjFhQHQFTk7BrC+C2u1yqQMBCAf+CQMIHImA -iYfzQtjgQWSFZYUkCFpbbwhNF0ch+3HNaZkaHCnZRIsWsRnc6FCb6lRQyK9+ -Dq59kHlduE5QgY40894jfmP2JdJHU6nBdYrivbEdbMJhBBgTCAAJBQJfUqxJ -AhsMAAoJEMpwT3+q3+xqUI0BAMykhV08kQ4Ip9Qlbss6Jdufv7YrU0Vd5hou -b5TmiPd0APoDBh3qIic+aLLUcAuG3+Gt1P1AbUlmqV61ozn1WfHxfw== -=KLN8 ------END PGP PRIVATE KEY BLOCK-----` - -const dsaPrivateKeyWithElGamalSubkey = `-----BEGIN PGP PRIVATE KEY BLOCK----- - -lQOBBF9/MLsRCACeaF6BI0jTgDAs86t8/kXPfwlPvR2MCYzB0BCqAdcq1hV/GTYd -oNmJRna/ZJfsI/vf+d8Nv+EYOQkPheFS1MJVBitkAXjQPgm8i1tQWen1FCWZxqGk -/vwZYF4yo8GhZ+Wxi3w09W9Cp9QM/CTmyE1Xe7wpPBGe+oD+me8Zxjyt8JBS4Qx+ -gvWbfHxfHnggh4pz7U8QkItlLsBNQEdX4R5+zwRN66g2ZSX/shaa/EkVnihUhD7r -njP9I51ORWucTQD6OvgooaNQZCkQ/Se9TzdakwWKS2XSIFXiY/e2E5ZgKI/pfKDU -iA/KessxddPb7nP/05OIJqg9AoDrD4vmehLzAQD+zsUS3LDU1m9/cG4LMsQbT2VK -Te4HqbGIAle+eu/asQf8DDJMrbZpiJZvADum9j0TJ0oep6VdMbzo9RSDKvlLKT9m -kG63H8oDWnCZm1a+HmGq9YIX+JHWmsLXXsFLeEouLzHO+mZo0X28eji3V2T87hyR -MmUM0wFo4k7jK8uVmkDXv3XwNp2uByWxUKZd7EnWmcEZWqIiexJ7XpCS0Pg3tRaI -zxve0SRe/dxfUPnTk/9KQ9hS6DWroBKquL182zx1Fggh4LIWWE2zq+UYn8BI0E8A -rmIDFJdF8ymFQGRrEy6g79NnkPmkrZWsgMRYY65P6v4zLVmqohJKkpm3/Uxa6QAP -CCoPh/JTOvPeCP2bOJH8z4Z9Py3ouMIjofQW8sXqRgf/RIHbh0KsINHrwwZ4gVIr -MK3RofpaYxw1ztPIWb4cMWoWZHH1Pxh7ggTGSBpAhKXkiWw2Rxat8QF5aA7e962c -bLvVv8dqsPrD/RnVJHag89cbPTzjn7gY9elE8EM8ithV3oQkwHTr4avYlpDZsgNd -hUW3YgRwGo31tdzxoG04AcpV2t+07P8XMPr9hsfWs4rHohXPi38Hseu1Ji+dBoWQ -3+1w/HH3o55s+jy4Ruaz78AIrjbmAJq+6rA2mIcCgrhw3DnzuwQAKeBvSeqn9zfS -ZC812osMBVmkycwelpaIh64WZ0vWL3GvdXDctV2kXM+qVpDTLEny0LuiXxrwCKQL -Ev4HAwK9uQBcreDEEud7pfRb8EYP5lzO2ZA7RaIvje6EWAGBvJGMRT0QQE5SGqc7 -Fw5geigBdt+vVyRuNNhg3c2fdn/OBQaYu0J/8AiOogG8EaM8tCFlbGdhbWFsQGRz -YS5jb20gPGVsZ2FtYWxAZHNhLmNvbT6IkAQTEQgAOBYhBI+gnfiHQxB35/Dp0XAQ -aE/rsWC5BQJffzC7AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEHAQaE/r -sWC5A4EA/0GcJmyPtN+Klc7b9sVT3JgKTRnB/URxOJfYJofP0hZLAQCkqyMO+adV -JvbgDH0zaITQWZSSXPqpgMpCA6juTrDsd50CawRffzC7EAgAxFFFSAAEQzWTgKU5 -EBtpxxoPzHqcChawTHRxHxjcELXzmUBS5PzfA1HXSPnNqK/x3Ut5ycC3CsW41Fnt -Gm3706Wu9VFbFZVn55F9lPiplUo61n5pqMvOr1gmuQsdXiTa0t5FRa4TZ2VSiHFw -vdAVSPTUsT4ZxJ1rPyFYRtq1n3pQcvdZowd07r0JnzTMjLLMFYCKhwIowoOC4zqJ -iB8enjwOlpaqBATRm9xpVF7SJkroPF6/B1vdhj7E3c1aJyHlo0PYBAg756sSHWHg -UuLyUQ4TA0hcCVenn/L/aSY2LnbdZB1EBhlYjA7dTCgwIqsQhfQmPkjz6g64A7+Y -HbbrLwADBQgAk14QIEQ+J/VHetpQV/jt2pNsFK1kVK7mXK0spTExaC2yj2sXlHjL -Ie3bO5T/KqmIaBEB5db5fA5xK9cZt79qrQHDKsEqUetUeMUWLBx77zBsus3grIgy -bwDZKseRzQ715pwxquxQlScGoDIBKEh08HpwHkq140eIj3w+MAIfndaZaSCNaxaP -Snky7BQmJ7Wc7qrIwoQP6yrnUqyW2yNi81nJYUhxjChqaFSlwzLs/iNGryBKo0ic -BqVIRjikKHBlwBng6WyrltQo/Vt9GG8w+lqaAVXbJRlaBZJUR+2NKi/YhP3qQse3 -v8fi4kns0gh5LK+2C01RvdX4T49QSExuIf4HAwLJqYIGwadA2uem5v7/765ZtFWV -oL0iZ0ueTJDby4wTFDpLVzzDi/uVcB0ZRFrGOp7w6OYcNYTtV8n3xmli2Q5Trw0c -wZVzvg+ABKWiv7faBjMczIFF8y6WZKOIeAQYEQgAIBYhBI+gnfiHQxB35/Dp0XAQ -aE/rsWC5BQJffzC7AhsMAAoJEHAQaE/rsWC5ZmIA/jhS4r4lClbvjuPWt0Yqdn7R -fss2SPMYvMrrDh42aE0OAQD8xn4G6CN8UtW9xihXOY6FpxiJ/sMc2VaneeUd34oa -4g== -=XZm8 ------END PGP PRIVATE KEY BLOCK-----` - -// https://tests.sequoia-pgp.org/#Certificate_expiration -// P _ U p -const expiringPrimaryUIDKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- - -xsDNBF2lnPIBDAC5cL9PQoQLTMuhjbYvb4Ncuuo0bfmgPRFywX53jPhoFf4Zg6mv -/seOXpgecTdOcVttfzC8ycIKrt3aQTiwOG/ctaR4Bk/t6ayNFfdUNxHWk4WCKzdz -/56fW2O0F23qIRd8UUJp5IIlN4RDdRCtdhVQIAuzvp2oVy/LaS2kxQoKvph/5pQ/ -5whqsyroEWDJoSV0yOb25B/iwk/pLUFoyhDG9bj0kIzDxrEqW+7Ba8nocQlecMF3 -X5KMN5kp2zraLv9dlBBpWW43XktjcCZgMy20SouraVma8Je/ECwUWYUiAZxLIlMv -9CurEOtxUw6N3RdOtLmYZS9uEnn5y1UkF88o8Nku890uk6BrewFzJyLAx5wRZ4F0 -qV/yq36UWQ0JB/AUGhHVPdFf6pl6eaxBwT5GXvbBUibtf8YI2og5RsgTWtXfU7eb -SGXrl5ZMpbA6mbfhd0R8aPxWfmDWiIOhBufhMCvUHh1sApMKVZnvIff9/0Dca3wb -vLIwa3T4CyshfT0AEQEAAc0hQm9iIEJhYmJhZ2UgPGJvYkBvcGVucGdwLmV4YW1w -bGU+wsFcBBMBCgCQBYJhesp/BYkEWQPJBQsJCAcCCRD7/MgqAV5zMEcUAAAAAAAe -ACBzYWx0QG5vdGF0aW9ucy5zZXF1b2lhLXBncC5vcmeEOQlNyTLFkc9I/elp+BpY -495V7KatqtDmsyDr+zDAdwYVCgkICwIEFgIDAQIXgAIbAwIeARYhBNGmbhojsYLJ -mA94jPv8yCoBXnMwAABSCQv/av8hKyynMtXVKFuWOGJw0mR8auDm84WdhMFRZg8t -yTJ1L88+Ny4WUAFeqo2j7DU2yPGrm5rmuvzlEedFYFeOWt+A4adz+oumgRd0nsgG -Lf3QYUWQhLWVlz+H7zubgKqSB2A2RqV65S7mTTVro42nb2Mng6rvGWiqeKG5nrXN -/01p1mIBQGR/KnZSqYLzA2Pw2PiJoSkXT26PDz/kiEMXpjKMR6sicV4bKVlEdUvm -pIImIPBHZq1EsKXEyWtWC41w/pc+FofGE+uSFs2aef1vvEHFkj3BHSK8gRcH3kfR -eFroTET8C2q9V1AOELWm+Ys6PzGzF72URK1MKXlThuL4t4LjvXWGNA78IKW+/RQH -DzK4U0jqSO0mL6qxqVS5Ij6jjL6OTrVEGdtDf5n0vI8tcUTBKtVqYAYk+t2YGT05 -ayxALtb7viVKo8f10WEcCuKshn0gdsEFMRZQzJ89uQIY3R3FbsdRCaE6OEaDgKMQ -UTFROyfhthgzRKbRxfcplMUCzsDNBF2lnPIBDADWML9cbGMrp12CtF9b2P6z9TTT -74S8iyBOzaSvdGDQY/sUtZXRg21HWamXnn9sSXvIDEINOQ6A9QxdxoqWdCHrOuW3 -ofneYXoG+zeKc4dC86wa1TR2q9vW+RMXSO4uImA+Uzula/6k1DogDf28qhCxMwG/ -i/m9g1c/0aApuDyKdQ1PXsHHNlgd/Dn6rrd5y2AObaifV7wIhEJnvqgFXDN2RXGj -LeCOHV4Q2WTYPg/S4k1nMXVDwZXrvIsA0YwIMgIT86Rafp1qKlgPNbiIlC1g9RY/ -iFaGN2b4Ir6GDohBQSfZW2+LXoPZuVE/wGlQ01rh827KVZW4lXvqsge+wtnWlszc -selGATyzqOK9LdHPdZGzROZYI2e8c+paLNDdVPL6vdRBUnkCaEkOtl1mr2JpQi5n -TU+gTX4IeInC7E+1a9UDF/Y85ybUz8XV8rUnR76UqVC7KidNepdHbZjjXCt8/Zo+ -Tec9JNbYNQB/e9ExmDntmlHEsSEQzFwzj8sxH48AEQEAAcLA9gQYAQoAIBYhBNGm -bhojsYLJmA94jPv8yCoBXnMwBQJdpZzyAhsMAAoJEPv8yCoBXnMw6f8L/26C34dk -jBffTzMj5Bdzm8MtF67OYneJ4TQMw7+41IL4rVcSKhIhk/3Ud5knaRtP2ef1+5F6 -6h9/RPQOJ5+tvBwhBAcUWSupKnUrdVaZQanYmtSxcVV2PL9+QEiNN3tzluhaWO// -rACxJ+K/ZXQlIzwQVTpNhfGzAaMVV9zpf3u0k14itcv6alKY8+rLZvO1wIIeRZLm -U0tZDD5HtWDvUV7rIFI1WuoLb+KZgbYn3OWjCPHVdTrdZ2CqnZbG3SXw6awH9bzR -LV9EXkbhIMez0deCVdeo+wFFklh8/5VK2b0vk/+wqMJxfpa1lHvJLobzOP9fvrsw -sr92MA2+k901WeISR7qEzcI0Fdg8AyFAExaEK6VyjP7SXGLwvfisw34OxuZr3qmx -1Sufu4toH3XrB7QJN8XyqqbsGxUCBqWif9RSK4xjzRTe56iPeiSJJOIciMP9i2ld -I+KgLycyeDvGoBj0HCLO3gVaBe4ubVrj5KjhX2PVNEJd3XZRzaXZE2aAMQ== -=AmgT ------END PGP PUBLIC KEY BLOCK-----` - -const rsa2048PrivateKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- -Comment: gpg (GnuPG) 2.2.27 with libgcrypt 1.9.4 - -lQPGBGL07P0BCADL0etN8efyAXA6sL2WfQvHe5wEKYXPWeN2+jiqSppfeRZAOlzP -kZ3U+cloeJriplYvVJwI3ID2aw52Z/TRn8iKRP5eOUFrEgcgl06lazLtOndK7o7p -oBV5mLtHEirFHm6W61fNt10jzM0jx0PV6nseLhFB2J42F1cmU/aBgFo41wjLSZYr -owR+v+O9S5sUXblQF6sEDcY01sBEu09zrIgT49VFwQ1Cvdh9XZEOTQBfdiugoj5a -DS3fAqAka3r1VoQK4eR7/upnYSgSACGeaQ4pUelKku5rpm50gdWTY8ppq0k9e1eT -y2x0OQcW3hWE+j4os1ca0ZEADMdqr/99MOxrABEBAAH+BwMCJWxU4VOZOJ7/I6vX -FxdfBhIBEXlJ52FM3S/oYtXqLhkGyrtmZOeEazVvUtuCe3M3ScHI8xCthcmE8E0j -bi+ZEHPS2NiBZtgHFF27BLn7zZuTc+oD5WKduZdK3463egnyThTqIIMl25WZBuab -k5ycwYrWwBH0jfA4gwJ13ai4pufKC2RM8qIu6YAVPglYBKFLKGvvJHa5vI+LuA0E -K+k35hIic7yVUcQneNnAF2598X5yWiieYnOZpmHlRw1zfbMwOJr3ZNj2v94u7b+L -sTa/1Uv9887Vb6sJp0c2Sh4cwEccoPYkvMqFn3ZrJUr3UdDu1K2vWohPtswzhrYV -+RdPZE5RLoCQufKvlPezk0Pzhzb3bBU7XjUbdGY1nH/EyQeBNp+Gw6qldKvzcBaB -cyOK1c6hPSszpJX93m5UxCN55IeifmcNjmbDh8vGCCdajy6d56qV2n4F3k7vt1J1 -0UlxIGhqijJoaTCX66xjLMC6VXkSz6aHQ35rnXosm/cqPcQshsZTdlfSyWkorfdr -4Hj8viBER26mjYurTMLBKDtUN724ZrR0Ev5jorX9uoKlgl87bDZHty2Ku2S+vR68 -VAvnj6Fi1BYNclnDoqxdRB2z5T9JbWE52HuG83/QsplhEqXxESDxriTyTHMbNxEe -88soVCDh4tgflZFa2ucUr6gEKJKij7jgahARnyaXfPZlQBUAS1YUeILYmN+VR+M/ -sHENpwDWc7TInn8VN638nJV+ScZGMih3AwWZTIoiLju3MMt1K0YZ3NuiqwGH4Jwg -/BbEdTWeCci9y3NEQHQ3uZZ5p6j2CwFVlK11idemCMvAiTVxF+gKdaLMkeCwKxru -J3YzhKEo+iDVYbPYBYizx/EHBn2U5kITQ5SBXzjTaaFMNZJEf9JYsL1ybPB6HOFY -VNVB2KT8CGVwtCJHb2xhbmcgR29waGVyIDxnb2xhbmdAZXhhbXBsZS5vcmc+iQFO -BBMBCgA4FiEEC6K7U7f4qesybTnqSkra7gHusm0FAmL07P0CGwMFCwkIBwIGFQoJ -CAsCBBYCAwECHgECF4AACgkQSkra7gHusm1MvwgAxpClWkeSqIhMQfbiuz0+lOkE -89y1DCFw8bHjZoUf4/4K8hFA3dGkk+q72XFgiyaCpfXxMt6Gi+dN47t+tTv9NIqC -sukbaoJBmJDhN6+djmJOgOYy+FWsW2LAk2LOwKYulpnBZdcA5rlMAhBg7gevQpF+ -ruSU69P7UUaFJl/DC7hDmaIcj+4cjBE/HO26SnVQjoTfjZT82rDh1Wsuf8LnkJUk -b3wezBLpXKjDvdHikdv4gdlR4AputVM38aZntYYglh/EASo5TneyZ7ZscdLNRdcF -r5O2fKqrOJLOdaoYRFZZWOvP5GtEVFDU7WGivOSVfiszBE0wZR3dgZRJipHCXJ0D -xgRi9Oz9AQgAtMJcJqLLVANJHl90tWuoizDkm+Imcwq2ubQAjpclnNrODnDK+7o4 -pBsWmXbZSdkC4gY+LhOQA6bPDD0JEHM58DOnrm49BddxXAyK0HPsk4sGGt2SS86B -OawWNdfJVyqw4bAiHWDmQg4PcjBbt3ocOIxAR6I5kBSiQVxuGQs9T+Zvg3G1r3Or -fS6DzlgY3HFUML5YsGH4lOxNSOoKAP68GIH/WNdUZ+feiRg9knIib6I3Hgtf5eO8 -JRH7aWE/TD7eNu36bLLjT5TZPq5r6xaD2plbtPOyXbNPWs9qI1yG+VnErfaLY0w8 -Qo0aqzbgID+CTZVomXSOpOcQseaFKw8ZfQARAQAB/gcDArha6+/+d4OY/w9N32K9 -hFNYt4LufTETMQ+k/sBeaMuAVzmT47DlAXzkrZhGW4dZOtXMu1rXaUwHlqkhEyzL -L4MYEWVXfD+LbZNEK3MEFss6RK+UAMeT/PTV9aA8cXQVPcSJYzfBXHQ1U1hnOgrO -apn92MN8RmkhX8wJLyeWTMMuP4lXByJMmmGo8WvifeRD2kFY4y0WVBDAXJAV4Ljf -Di/bBiwoc5a+gxHuZT2W9ZSxBQJNXdt4Un2IlyZuo58s5MLx2N0EaNJ8PwRUE6fM -RZYO8aZCEPUtINE4njbvsWOMCtrblsMPwZ1B0SiIaWmLaNyGdCNKea+fCIW7kasC -JYMhnLumpUTXg5HNexkCsl7ABWj0PYBflOE61h8EjWpnQ7JBBVKS2ua4lMjwHRX7 -5o5yxym9k5UZNFdGoXVL7xpizCcdGawxTJvwhs3vBqu1ZWYCegOAZWDrOkCyhUpq -8uKMROZFbn+FwE+7tjt+v2ed62FVEvD6g4V3ThCA6mQqeOARfJWN8GZY8BDm8lht -crOXriUkrx+FlrgGtm2CkwjW5/9Xd7AhFpHnQdFeozOHyq1asNSgJF9sNi9Lz94W -skQSVRi0IExxSXYGI3Y0nnAZUe2BAQflYPJdEveSr3sKlUqXiETTA1VXsTPK3kOC -92CbLzj/Hz199jZvywwyu53I+GKMpF42rMq7zxr2oa61YWY4YE/GDezwwys/wLx/ -QpCW4X3ppI7wJjCSSqEV0baYZSSli1ayheS6dxi8QnSpX1Bmpz6gU7m/M9Sns+hl -J7ZvgpjCAiV7KJTjtclr5/S02zP78LTVkoTWoz/6MOTROwaP63VBUXX8pbJhf/vu -DLmNnDk8joMJxoDXWeNU0EnNl4hP7Z/jExRBOEO4oAnUf/Sf6gCWQhL5qcajtg6w -tGv7vx3f2IkBNgQYAQoAIBYhBAuiu1O3+KnrMm056kpK2u4B7rJtBQJi9Oz9AhsM -AAoJEEpK2u4B7rJt6lgIAMBWqP4BCOGnQXBbgJ0+ACVghpkFUXZTb/tXJc8UUvTM -8uov6k/RsqDGZrvhhufD7Wwt7j9v7dD7VPp7bPyjVWyimglQzWguTUUqLDGlstYH -5uYv1pzma0ZsAGNqFeGlTLsKOSGKFMH4rB2KfN2n51L8POvtp1y7GKZQbWIWneaB -cZr3BINU5GMvYYU7pAYcoR+mJPdJx5Up3Ocn+bn8Tu1sy9C/ArtCQucazGnoE9u1 -HhNLrh0CdzzX7TNH6TQ8LwPOvq0K5l/WqbN9lE0WBBhMv2HydxhluO8AhU+A5GqC -C+wET7nVDnhoOm/fstIeb7/LN7OYejKPeHdFBJEL9GA= -=u442 ------END PGP PRIVATE KEY BLOCK-----` - -const curve25519PrivateKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- -Comment: gpg (GnuPG) 2.2.27 with libgcrypt 1.9.4 - -lFgEYvTtQBYJKwYBBAHaRw8BAQdAxsNXLbrk5xOjpO24VhOMvQ0/F+JcyIkckMDH -X3FIGxcAAQDFOlunZWYuPsCx5JLp78vKqUTfgef9TGG4oD6I/Sa0zBMstCJHb2xh -bmcgR29waGVyIDxnb2xhbmdAZXhhbXBsZS5vcmc+iJAEExYIADgWIQSFQHEOazmo -h1ldII4MvfnLQ4JBNwUCYvTtQAIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK -CRAMvfnLQ4JBN5yeAQCKdry8B5ScCPrev2+UByMCss7Sdu5RhomCFsHdNPLcKAEA -8ugei+1owHsV+3cGwWWzKk6sLa8ZN87i3SKuOGp9DQycXQRi9O1AEgorBgEEAZdV -AQUBAQdA5CubPp8l7lrVQ25h7Hx5XN2C8xanRnnpcjzEooCaEA0DAQgHAAD/Rpc+ -sOZUXrFk9HOWB1XU41LoWbDBoG8sP8RWAVYwD5AQRYh4BBgWCAAgFiEEhUBxDms5 -qIdZXSCODL35y0OCQTcFAmL07UACGwwACgkQDL35y0OCQTcvdwEA7lb5g/YisrEf -iq660uwMGoepLUfvtqKzuQ6heYe83y0BAN65Ffg5HYOJzUEi0kZQRf7OhdtuL2kJ -SRXn8DmCTfEB -=cELM ------END PGP PRIVATE KEY BLOCK-----` - -const curve448PrivateKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- -Comment: C1DB 65D5 80D7 B922 7254 4B1E A699 9895 FABA CE52 - -xYUEYV2UmRYDK2VxAc9AFyxgh5xnSbyt50TWl558mw9xdMN+/UBLr5+UMP8IsrvV -MdXuTIE8CyaUQKSotHtH2RkYEXj5nsMAAAHPQIbTMSzjIWug8UFECzAex5FHgAgH -gYF3RK+TS8D24wX8kOu2C/NoVxwGY+p+i0JHaB+7yljriSKAGxs6wsBEBB8WCgCD -BYJhXZSZBYkFpI+9AwsJBwkQppmYlfq6zlJHFAAAAAAAHgAgc2FsdEBub3RhdGlv -bnMuc2VxdW9pYS1wZ3Aub3Jn5wSpIutJ5HncJWk4ruUV8GzQF390rR5+qWEAnAoY -akcDFQoIApsBAh4BFiEEwdtl1YDXuSJyVEseppmYlfq6zlIAALzdA5dA/fsgYg/J -qaQriYKaPUkyHL7EB3BXhV2d1h/gk+qJLvXQuU2WEJ/XSs3GrsBRiiZwvPH4o+7b -mleAxjy5wpS523vqrrBR2YZ5FwIku7WS4litSdn4AtVam/TlLdMNIf41CtFeZKBe -c5R5VNdQy8y7qy8AAADNEUN1cnZlNDQ4IE9wdGlvbiA4wsBHBBMWCgCGBYJhXZSZ -BYkFpI+9AwsJBwkQppmYlfq6zlJHFAAAAAAAHgAgc2FsdEBub3RhdGlvbnMuc2Vx -dW9pYS1wZ3Aub3JnD55UsYMzE6OACP+mgw5zvT+BBgol8/uFQjHg4krjUCMDFQoI -ApkBApsBAh4BFiEEwdtl1YDXuSJyVEseppmYlfq6zlIAAPQJA5dA0Xqwzn/0uwCq -RlsOVCB3f5NOj1exKnlBvRw0xT1VBee1yxvlUt5eIAoCxWoRlWBJob3TTkhm9AEA -8dyhwPmyGfWHzPw5NFG3xsXrZdNXNvit9WMVAPcmsyR7teXuDlJItxRAdJJc/qfJ -YVbBFoaNrhYAAADHhQRhXZSZFgMrZXEBz0BL7THZ9MnCLfSPJ1FMLim9eGkQ3Bfn -M3he5rOwO3t14QI1LjI96OjkeJipMgcFAmEP1Bq/ZHGO7oAAAc9AFnE8iNBaT3OU -EFtxkmWHXtdaYMmGGRdopw9JPXr/UxuunDln5o9dxPxf7q7z26zXrZen+qed/Isa -HsDCwSwEGBYKAWsFgmFdlJkFiQWkj70JEKaZmJX6us5SRxQAAAAAAB4AIHNhbHRA -bm90YXRpb25zLnNlcXVvaWEtcGdwLm9yZxREUizdTcepBzgSMOv2VWQCWbl++3CZ -EbgAWDryvSsyApsCwDGgBBkWCgBvBYJhXZSZCRBKo3SL4S5djkcUAAAAAAAeACBz -YWx0QG5vdGF0aW9ucy5zZXF1b2lhLXBncC5vcmemoGTDjmNQiIzw6HOEddvS0OB7 -UZ/P07jM/EVmnYxTlBYhBAxsnkGpx1UCiH6gUUqjdIvhLl2OAAALYQOXQAMB1oKq -OWxSFmvmgCKNcbAAyA3piF5ERIqs4z07oJvqDYrOWt75UsEIH/04gU/vHc4EmfG2 -JDLJgOLlyTUPkL/08f0ydGZPofFQBhn8HkuFFjnNtJ5oz3GIP4cdWMQFaUw0uvjb -PM9Tm3ptENGd6Ts1AAAAFiEEwdtl1YDXuSJyVEseppmYlfq6zlIAAGpTA5dATR6i -U2GrpUcQgpG+JqfAsGmF4yAOhgFxc1UfidFk3nTup3fLgjipkYY170WLRNbyKkVO -Sodx93GAs58rizO1acDAWiLq3cyEPBFXbyFThbcNPcLl+/77Uk/mgkYrPQFAQWdK -1kSRm4SizDBK37K8ChAAAADHhwRhXZSZEgMrZW8Bx0DMhzvhQo+OsXeqQ6QVw4sF -CaexHh6rLohh7TzL3hQSjoJ27fV6JBkIWdn0LfrMlJIDbSv2SLdlgQMBCgkAAcdA -MO7Dc1myF6Co1fAH+EuP+OxhxP/7V6ljuSCZENDfA49tQkzTta+PniG+pOVB2LHb -huyaKBkqiaogo8LAOQQYFgoAeAWCYV2UmQWJBaSPvQkQppmYlfq6zlJHFAAAAAAA -HgAgc2FsdEBub3RhdGlvbnMuc2VxdW9pYS1wZ3Aub3JnEjBMQAmc/2u45u5FQGmB -QAytjSG2LM3JQN+PPVl5vEkCmwwWIQTB22XVgNe5InJUSx6mmZiV+rrOUgAASdYD -l0DXEHQ9ykNP2rZP35ET1dmiFagFtTj/hLQcWlg16LqvJNGqOgYXuqTerbiOOt02 -XLCBln+wdewpU4ChEffMUDRBfqfQco/YsMqWV7bHJHAO0eC/DMKCjyU90xdH7R/d -QgqsfguR1PqPuJxpXV4bSr6CGAAAAA== -=MSvh ------END PGP PRIVATE KEY BLOCK-----` diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_config.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_config.go deleted file mode 100644 index fec41a0e73..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_config.go +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (C) 2019 ProtonTech AG - -package packet - -import "math/bits" - -// CipherSuite contains a combination of Cipher and Mode -type CipherSuite struct { - // The cipher function - Cipher CipherFunction - // The AEAD mode of operation. - Mode AEADMode -} - -// AEADConfig collects a number of AEAD parameters along with sensible defaults. -// A nil AEADConfig is valid and results in all default values. -type AEADConfig struct { - // The AEAD mode of operation. - DefaultMode AEADMode - // Amount of octets in each chunk of data - ChunkSize uint64 -} - -// Mode returns the AEAD mode of operation. -func (conf *AEADConfig) Mode() AEADMode { - // If no preference is specified, OCB is used (which is mandatory to implement). - if conf == nil || conf.DefaultMode == 0 { - return AEADModeOCB - } - - mode := conf.DefaultMode - if mode != AEADModeEAX && mode != AEADModeOCB && mode != AEADModeGCM { - panic("AEAD mode unsupported") - } - return mode -} - -// ChunkSizeByte returns the byte indicating the chunk size. The effective -// chunk size is computed with the formula uint64(1) << (chunkSizeByte + 6) -// limit to 16 = 4 MiB -// https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-5.13.2 -func (conf *AEADConfig) ChunkSizeByte() byte { - if conf == nil || conf.ChunkSize == 0 { - return 12 // 1 << (12 + 6) == 262144 bytes - } - - chunkSize := conf.ChunkSize - exponent := bits.Len64(chunkSize) - 1 - switch { - case exponent < 6: - exponent = 6 - case exponent > 16: - exponent = 16 - } - - return byte(exponent - 6) -} - -// decodeAEADChunkSize returns the effective chunk size. In 32-bit systems, the -// maximum returned value is 1 << 30. -func decodeAEADChunkSize(c byte) int { - size := uint64(1 << (c + 6)) - if size != uint64(int(size)) { - return 1 << 30 - } - return int(size) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go deleted file mode 100644 index a82b040bdd..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_crypter.go +++ /dev/null @@ -1,265 +0,0 @@ -// Copyright (C) 2019 ProtonTech AG - -package packet - -import ( - "bytes" - "crypto/cipher" - "encoding/binary" - "io" - - "github.com/ProtonMail/go-crypto/openpgp/errors" -) - -// aeadCrypter is an AEAD opener/sealer, its configuration, and data for en/decryption. -type aeadCrypter struct { - aead cipher.AEAD - chunkSize int - initialNonce []byte - associatedData []byte // Chunk-independent associated data - chunkIndex []byte // Chunk counter - packetTag packetType - bytesProcessed int // Amount of plaintext bytes encrypted/decrypted - buffer bytes.Buffer // Buffered bytes across chunks -} - -// computeNonce takes the incremental index and computes an eXclusive OR with -// the least significant 8 bytes of the receivers' initial nonce (see sec. -// 5.16.1 and 5.16.2). It returns the resulting nonce. -func (wo *aeadCrypter) computeNextNonce() (nonce []byte) { - if wo.packetTag == packetTypeSymmetricallyEncryptedIntegrityProtected { - return append(wo.initialNonce, wo.chunkIndex...) - } - - nonce = make([]byte, len(wo.initialNonce)) - copy(nonce, wo.initialNonce) - offset := len(wo.initialNonce) - 8 - for i := 0; i < 8; i++ { - nonce[i+offset] ^= wo.chunkIndex[i] - } - return -} - -// incrementIndex performs an integer increment by 1 of the integer represented by the -// slice, modifying it accordingly. -func (wo *aeadCrypter) incrementIndex() error { - index := wo.chunkIndex - if len(index) == 0 { - return errors.AEADError("Index has length 0") - } - for i := len(index) - 1; i >= 0; i-- { - if index[i] < 255 { - index[i]++ - return nil - } - index[i] = 0 - } - return errors.AEADError("cannot further increment index") -} - -// aeadDecrypter reads and decrypts bytes. It buffers extra decrypted bytes when -// necessary, similar to aeadEncrypter. -type aeadDecrypter struct { - aeadCrypter // Embedded ciphertext opener - reader io.Reader // 'reader' is a partialLengthReader - peekedBytes []byte // Used to detect last chunk - eof bool -} - -// Read decrypts bytes and reads them into dst. It decrypts when necessary and -// buffers extra decrypted bytes. It returns the number of bytes copied into dst -// and an error. -func (ar *aeadDecrypter) Read(dst []byte) (n int, err error) { - // Return buffered plaintext bytes from previous calls - if ar.buffer.Len() > 0 { - return ar.buffer.Read(dst) - } - - // Return EOF if we've previously validated the final tag - if ar.eof { - return 0, io.EOF - } - - // Read a chunk - tagLen := ar.aead.Overhead() - cipherChunkBuf := new(bytes.Buffer) - _, errRead := io.CopyN(cipherChunkBuf, ar.reader, int64(ar.chunkSize + tagLen)) - cipherChunk := cipherChunkBuf.Bytes() - if errRead != nil && errRead != io.EOF { - return 0, errRead - } - decrypted, errChunk := ar.openChunk(cipherChunk) - if errChunk != nil { - return 0, errChunk - } - - // Return decrypted bytes, buffering if necessary - if len(dst) < len(decrypted) { - n = copy(dst, decrypted[:len(dst)]) - ar.buffer.Write(decrypted[len(dst):]) - } else { - n = copy(dst, decrypted) - } - - // Check final authentication tag - if errRead == io.EOF { - errChunk := ar.validateFinalTag(ar.peekedBytes) - if errChunk != nil { - return n, errChunk - } - ar.eof = true // Mark EOF for when we've returned all buffered data - } - return -} - -// Close is noOp. The final authentication tag of the stream was already -// checked in the last Read call. In the future, this function could be used to -// wipe the reader and peeked, decrypted bytes, if necessary. -func (ar *aeadDecrypter) Close() (err error) { - return nil -} - -// openChunk decrypts and checks integrity of an encrypted chunk, returning -// the underlying plaintext and an error. It accesses peeked bytes from next -// chunk, to identify the last chunk and decrypt/validate accordingly. -func (ar *aeadDecrypter) openChunk(data []byte) ([]byte, error) { - tagLen := ar.aead.Overhead() - // Restore carried bytes from last call - chunkExtra := append(ar.peekedBytes, data...) - // 'chunk' contains encrypted bytes, followed by an authentication tag. - chunk := chunkExtra[:len(chunkExtra)-tagLen] - ar.peekedBytes = chunkExtra[len(chunkExtra)-tagLen:] - - adata := ar.associatedData - if ar.aeadCrypter.packetTag == packetTypeAEADEncrypted { - adata = append(ar.associatedData, ar.chunkIndex...) - } - - nonce := ar.computeNextNonce() - plainChunk, err := ar.aead.Open(nil, nonce, chunk, adata) - if err != nil { - return nil, err - } - ar.bytesProcessed += len(plainChunk) - if err = ar.aeadCrypter.incrementIndex(); err != nil { - return nil, err - } - return plainChunk, nil -} - -// Checks the summary tag. It takes into account the total decrypted bytes into -// the associated data. It returns an error, or nil if the tag is valid. -func (ar *aeadDecrypter) validateFinalTag(tag []byte) error { - // Associated: tag, version, cipher, aead, chunk size, ... - amountBytes := make([]byte, 8) - binary.BigEndian.PutUint64(amountBytes, uint64(ar.bytesProcessed)) - - adata := ar.associatedData - if ar.aeadCrypter.packetTag == packetTypeAEADEncrypted { - // ... index ... - adata = append(ar.associatedData, ar.chunkIndex...) - } - - // ... and total number of encrypted octets - adata = append(adata, amountBytes...) - nonce := ar.computeNextNonce() - _, err := ar.aead.Open(nil, nonce, tag, adata) - if err != nil { - return err - } - return nil -} - -// aeadEncrypter encrypts and writes bytes. It encrypts when necessary according -// to the AEAD block size, and buffers the extra encrypted bytes for next write. -type aeadEncrypter struct { - aeadCrypter // Embedded plaintext sealer - writer io.WriteCloser // 'writer' is a partialLengthWriter -} - - -// Write encrypts and writes bytes. It encrypts when necessary and buffers extra -// plaintext bytes for next call. When the stream is finished, Close() MUST be -// called to append the final tag. -func (aw *aeadEncrypter) Write(plaintextBytes []byte) (n int, err error) { - // Append plaintextBytes to existing buffered bytes - n, err = aw.buffer.Write(plaintextBytes) - if err != nil { - return n, err - } - // Encrypt and write chunks - for aw.buffer.Len() >= aw.chunkSize { - plainChunk := aw.buffer.Next(aw.chunkSize) - encryptedChunk, err := aw.sealChunk(plainChunk) - if err != nil { - return n, err - } - _, err = aw.writer.Write(encryptedChunk) - if err != nil { - return n, err - } - } - return -} - -// Close encrypts and writes the remaining buffered plaintext if any, appends -// the final authentication tag, and closes the embedded writer. This function -// MUST be called at the end of a stream. -func (aw *aeadEncrypter) Close() (err error) { - // Encrypt and write a chunk if there's buffered data left, or if we haven't - // written any chunks yet. - if aw.buffer.Len() > 0 || aw.bytesProcessed == 0 { - plainChunk := aw.buffer.Bytes() - lastEncryptedChunk, err := aw.sealChunk(plainChunk) - if err != nil { - return err - } - _, err = aw.writer.Write(lastEncryptedChunk) - if err != nil { - return err - } - } - // Compute final tag (associated data: packet tag, version, cipher, aead, - // chunk size... - adata := aw.associatedData - - if aw.aeadCrypter.packetTag == packetTypeAEADEncrypted { - // ... index ... - adata = append(aw.associatedData, aw.chunkIndex...) - } - - // ... and total number of encrypted octets - amountBytes := make([]byte, 8) - binary.BigEndian.PutUint64(amountBytes, uint64(aw.bytesProcessed)) - adata = append(adata, amountBytes...) - - nonce := aw.computeNextNonce() - finalTag := aw.aead.Seal(nil, nonce, nil, adata) - _, err = aw.writer.Write(finalTag) - if err != nil { - return err - } - return aw.writer.Close() -} - -// sealChunk Encrypts and authenticates the given chunk. -func (aw *aeadEncrypter) sealChunk(data []byte) ([]byte, error) { - if len(data) > aw.chunkSize { - return nil, errors.AEADError("chunk exceeds maximum length") - } - if aw.associatedData == nil { - return nil, errors.AEADError("can't seal without headers") - } - adata := aw.associatedData - if aw.aeadCrypter.packetTag == packetTypeAEADEncrypted { - adata = append(aw.associatedData, aw.chunkIndex...) - } - - nonce := aw.computeNextNonce() - encrypted := aw.aead.Seal(nil, nonce, data, adata) - aw.bytesProcessed += len(data) - if err := aw.aeadCrypter.incrementIndex(); err != nil { - return nil, err - } - return encrypted, nil -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go deleted file mode 100644 index 98bd876bf2..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/aead_encrypted.go +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (C) 2019 ProtonTech AG - -package packet - -import ( - "io" - - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" -) - -// AEADEncrypted represents an AEAD Encrypted Packet. -// See https://www.ietf.org/archive/id/draft-koch-openpgp-2015-rfc4880bis-00.html#name-aead-encrypted-data-packet-t -type AEADEncrypted struct { - cipher CipherFunction - mode AEADMode - chunkSizeByte byte - Contents io.Reader // Encrypted chunks and tags - initialNonce []byte // Referred to as IV in RFC4880-bis -} - -// Only currently defined version -const aeadEncryptedVersion = 1 - -func (ae *AEADEncrypted) parse(buf io.Reader) error { - headerData := make([]byte, 4) - if n, err := io.ReadFull(buf, headerData); n < 4 { - return errors.AEADError("could not read aead header:" + err.Error()) - } - // Read initial nonce - mode := AEADMode(headerData[2]) - nonceLen := mode.IvLength() - - // This packet supports only EAX and OCB - // https://www.ietf.org/archive/id/draft-koch-openpgp-2015-rfc4880bis-00.html#name-aead-encrypted-data-packet-t - if nonceLen == 0 || mode > AEADModeOCB { - return errors.AEADError("unknown mode") - } - - initialNonce := make([]byte, nonceLen) - if n, err := io.ReadFull(buf, initialNonce); n < nonceLen { - return errors.AEADError("could not read aead nonce:" + err.Error()) - } - ae.Contents = buf - ae.initialNonce = initialNonce - c := headerData[1] - if _, ok := algorithm.CipherById[c]; !ok { - return errors.UnsupportedError("unknown cipher: " + string(c)) - } - ae.cipher = CipherFunction(c) - ae.mode = mode - ae.chunkSizeByte = headerData[3] - return nil -} - -// Decrypt returns a io.ReadCloser from which decrypted bytes can be read, or -// an error. -func (ae *AEADEncrypted) Decrypt(ciph CipherFunction, key []byte) (io.ReadCloser, error) { - return ae.decrypt(key) -} - -// decrypt prepares an aeadCrypter and returns a ReadCloser from which -// decrypted bytes can be read (see aeadDecrypter.Read()). -func (ae *AEADEncrypted) decrypt(key []byte) (io.ReadCloser, error) { - blockCipher := ae.cipher.new(key) - aead := ae.mode.new(blockCipher) - // Carry the first tagLen bytes - tagLen := ae.mode.TagLength() - peekedBytes := make([]byte, tagLen) - n, err := io.ReadFull(ae.Contents, peekedBytes) - if n < tagLen || (err != nil && err != io.EOF) { - return nil, errors.AEADError("Not enough data to decrypt:" + err.Error()) - } - chunkSize := decodeAEADChunkSize(ae.chunkSizeByte) - return &aeadDecrypter{ - aeadCrypter: aeadCrypter{ - aead: aead, - chunkSize: chunkSize, - initialNonce: ae.initialNonce, - associatedData: ae.associatedData(), - chunkIndex: make([]byte, 8), - packetTag: packetTypeAEADEncrypted, - }, - reader: ae.Contents, - peekedBytes: peekedBytes}, nil -} - -// associatedData for chunks: tag, version, cipher, mode, chunk size byte -func (ae *AEADEncrypted) associatedData() []byte { - return []byte{ - 0xD4, - aeadEncryptedVersion, - byte(ae.cipher), - byte(ae.mode), - ae.chunkSizeByte} -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/compressed.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/compressed.go deleted file mode 100644 index 2f5cad71da..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/compressed.go +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "compress/bzip2" - "compress/flate" - "compress/zlib" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "io" - "strconv" -) - -// Compressed represents a compressed OpenPGP packet. The decompressed contents -// will contain more OpenPGP packets. See RFC 4880, section 5.6. -type Compressed struct { - Body io.Reader -} - -const ( - NoCompression = flate.NoCompression - BestSpeed = flate.BestSpeed - BestCompression = flate.BestCompression - DefaultCompression = flate.DefaultCompression -) - -// CompressionConfig contains compressor configuration settings. -type CompressionConfig struct { - // Level is the compression level to use. It must be set to - // between -1 and 9, with -1 causing the compressor to use the - // default compression level, 0 causing the compressor to use - // no compression and 1 to 9 representing increasing (better, - // slower) compression levels. If Level is less than -1 or - // more then 9, a non-nil error will be returned during - // encryption. See the constants above for convenient common - // settings for Level. - Level int -} - -func (c *Compressed) parse(r io.Reader) error { - var buf [1]byte - _, err := readFull(r, buf[:]) - if err != nil { - return err - } - - switch buf[0] { - case 0: - c.Body = r - case 1: - c.Body = flate.NewReader(r) - case 2: - c.Body, err = zlib.NewReader(r) - case 3: - c.Body = bzip2.NewReader(r) - default: - err = errors.UnsupportedError("unknown compression algorithm: " + strconv.Itoa(int(buf[0]))) - } - - return err -} - -// compressedWriterCloser represents the serialized compression stream -// header and the compressor. Its Close() method ensures that both the -// compressor and serialized stream header are closed. Its Write() -// method writes to the compressor. -type compressedWriteCloser struct { - sh io.Closer // Stream Header - c io.WriteCloser // Compressor -} - -func (cwc compressedWriteCloser) Write(p []byte) (int, error) { - return cwc.c.Write(p) -} - -func (cwc compressedWriteCloser) Close() (err error) { - err = cwc.c.Close() - if err != nil { - return err - } - - return cwc.sh.Close() -} - -// SerializeCompressed serializes a compressed data packet to w and -// returns a WriteCloser to which the literal data packets themselves -// can be written and which MUST be closed on completion. If cc is -// nil, sensible defaults will be used to configure the compression -// algorithm. -func SerializeCompressed(w io.WriteCloser, algo CompressionAlgo, cc *CompressionConfig) (literaldata io.WriteCloser, err error) { - compressed, err := serializeStreamHeader(w, packetTypeCompressed) - if err != nil { - return - } - - _, err = compressed.Write([]byte{uint8(algo)}) - if err != nil { - return - } - - level := DefaultCompression - if cc != nil { - level = cc.Level - } - - var compressor io.WriteCloser - switch algo { - case CompressionZIP: - compressor, err = flate.NewWriter(compressed, level) - case CompressionZLIB: - compressor, err = zlib.NewWriterLevel(compressed, level) - default: - s := strconv.Itoa(int(algo)) - err = errors.UnsupportedError("Unsupported compression algorithm: " + s) - } - if err != nil { - return - } - - literaldata = compressedWriteCloser{compressed, compressor} - - return -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go deleted file mode 100644 index f9208158ba..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/config.go +++ /dev/null @@ -1,204 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "crypto" - "crypto/rand" - "io" - "math/big" - "time" -) - -// Config collects a number of parameters along with sensible defaults. -// A nil *Config is valid and results in all default values. -type Config struct { - // Rand provides the source of entropy. - // If nil, the crypto/rand Reader is used. - Rand io.Reader - // DefaultHash is the default hash function to be used. - // If zero, SHA-256 is used. - DefaultHash crypto.Hash - // DefaultCipher is the cipher to be used. - // If zero, AES-128 is used. - DefaultCipher CipherFunction - // Time returns the current time as the number of seconds since the - // epoch. If Time is nil, time.Now is used. - Time func() time.Time - // DefaultCompressionAlgo is the compression algorithm to be - // applied to the plaintext before encryption. If zero, no - // compression is done. - DefaultCompressionAlgo CompressionAlgo - // CompressionConfig configures the compression settings. - CompressionConfig *CompressionConfig - // S2KCount is only used for symmetric encryption. It - // determines the strength of the passphrase stretching when - // the said passphrase is hashed to produce a key. S2KCount - // should be between 1024 and 65011712, inclusive. If Config - // is nil or S2KCount is 0, the value 65536 used. Not all - // values in the above range can be represented. S2KCount will - // be rounded up to the next representable value if it cannot - // be encoded exactly. When set, it is strongly encrouraged to - // use a value that is at least 65536. See RFC 4880 Section - // 3.7.1.3. - S2KCount int - // RSABits is the number of bits in new RSA keys made with NewEntity. - // If zero, then 2048 bit keys are created. - RSABits int - // The public key algorithm to use - will always create a signing primary - // key and encryption subkey. - Algorithm PublicKeyAlgorithm - // Some known primes that are optionally prepopulated by the caller - RSAPrimes []*big.Int - // Curve configures the desired packet.Curve if the Algorithm is PubKeyAlgoECDSA, - // PubKeyAlgoEdDSA, or PubKeyAlgoECDH. If empty Curve25519 is used. - Curve Curve - // AEADConfig configures the use of the new AEAD Encrypted Data Packet, - // defined in the draft of the next version of the OpenPGP specification. - // If a non-nil AEADConfig is passed, usage of this packet is enabled. By - // default, it is disabled. See the documentation of AEADConfig for more - // configuration options related to AEAD. - // **Note: using this option may break compatibility with other OpenPGP - // implementations, as well as future versions of this library.** - AEADConfig *AEADConfig - // V5Keys configures version 5 key generation. If false, this package still - // supports version 5 keys, but produces version 4 keys. - V5Keys bool - // "The validity period of the key. This is the number of seconds after - // the key creation time that the key expires. If this is not present - // or has a value of zero, the key never expires. This is found only on - // a self-signature."" - // https://tools.ietf.org/html/rfc4880#section-5.2.3.6 - KeyLifetimeSecs uint32 - // "The validity period of the signature. This is the number of seconds - // after the signature creation time that the signature expires. If - // this is not present or has a value of zero, it never expires." - // https://tools.ietf.org/html/rfc4880#section-5.2.3.10 - SigLifetimeSecs uint32 - // SigningKeyId is used to specify the signing key to use (by Key ID). - // By default, the signing key is selected automatically, preferring - // signing subkeys if available. - SigningKeyId uint64 - // SigningIdentity is used to specify a user ID (packet Signer's User ID, type 28) - // when producing a generic certification signature onto an existing user ID. - // The identity must be present in the signer Entity. - SigningIdentity string - // InsecureAllowUnauthenticatedMessages controls, whether it is tolerated to read - // encrypted messages without Modification Detection Code (MDC). - // MDC is mandated by the IETF OpenPGP Crypto Refresh draft and has long been implemented - // in most OpenPGP implementations. Messages without MDC are considered unnecessarily - // insecure and should be prevented whenever possible. - // In case one needs to deal with messages from very old OpenPGP implementations, there - // might be no other way than to tolerate the missing MDC. Setting this flag, allows this - // mode of operation. It should be considered a measure of last resort. - InsecureAllowUnauthenticatedMessages bool -} - -func (c *Config) Random() io.Reader { - if c == nil || c.Rand == nil { - return rand.Reader - } - return c.Rand -} - -func (c *Config) Hash() crypto.Hash { - if c == nil || uint(c.DefaultHash) == 0 { - return crypto.SHA256 - } - return c.DefaultHash -} - -func (c *Config) Cipher() CipherFunction { - if c == nil || uint8(c.DefaultCipher) == 0 { - return CipherAES128 - } - return c.DefaultCipher -} - -func (c *Config) Now() time.Time { - if c == nil || c.Time == nil { - return time.Now() - } - return c.Time() -} - -// KeyLifetime returns the validity period of the key. -func (c *Config) KeyLifetime() uint32 { - if c == nil { - return 0 - } - return c.KeyLifetimeSecs -} - -// SigLifetime returns the validity period of the signature. -func (c *Config) SigLifetime() uint32 { - if c == nil { - return 0 - } - return c.SigLifetimeSecs -} - -func (c *Config) Compression() CompressionAlgo { - if c == nil { - return CompressionNone - } - return c.DefaultCompressionAlgo -} - -func (c *Config) PasswordHashIterations() int { - if c == nil || c.S2KCount == 0 { - return 0 - } - return c.S2KCount -} - -func (c *Config) RSAModulusBits() int { - if c == nil || c.RSABits == 0 { - return 2048 - } - return c.RSABits -} - -func (c *Config) PublicKeyAlgorithm() PublicKeyAlgorithm { - if c == nil || c.Algorithm == 0 { - return PubKeyAlgoRSA - } - return c.Algorithm -} - -func (c *Config) CurveName() Curve { - if c == nil || c.Curve == "" { - return Curve25519 - } - return c.Curve -} - -func (c *Config) AEAD() *AEADConfig { - if c == nil { - return nil - } - return c.AEADConfig -} - -func (c *Config) SigningKey() uint64 { - if c == nil { - return 0 - } - return c.SigningKeyId -} - -func (c *Config) SigningUserId() string { - if c == nil { - return "" - } - return c.SigningIdentity -} - -func (c *Config) AllowUnauthenticatedMessages() bool { - if c == nil { - return false - } - return c.InsecureAllowUnauthenticatedMessages -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/encrypted_key.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/encrypted_key.go deleted file mode 100644 index 58ebe1cc70..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/encrypted_key.go +++ /dev/null @@ -1,282 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "crypto" - "crypto/rsa" - "encoding/binary" - "io" - "math/big" - "strconv" - - "github.com/ProtonMail/go-crypto/openpgp/ecdh" - "github.com/ProtonMail/go-crypto/openpgp/elgamal" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/encoding" -) - -const encryptedKeyVersion = 3 - -// EncryptedKey represents a public-key encrypted session key. See RFC 4880, -// section 5.1. -type EncryptedKey struct { - KeyId uint64 - Algo PublicKeyAlgorithm - CipherFunc CipherFunction // only valid after a successful Decrypt for a v4 packet - Key []byte // only valid after a successful Decrypt - - encryptedMPI1, encryptedMPI2 encoding.Field -} - -func (e *EncryptedKey) parse(r io.Reader) (err error) { - var buf [10]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - if buf[0] != encryptedKeyVersion { - return errors.UnsupportedError("unknown EncryptedKey version " + strconv.Itoa(int(buf[0]))) - } - e.KeyId = binary.BigEndian.Uint64(buf[1:9]) - e.Algo = PublicKeyAlgorithm(buf[9]) - switch e.Algo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - e.encryptedMPI1 = new(encoding.MPI) - if _, err = e.encryptedMPI1.ReadFrom(r); err != nil { - return - } - case PubKeyAlgoElGamal: - e.encryptedMPI1 = new(encoding.MPI) - if _, err = e.encryptedMPI1.ReadFrom(r); err != nil { - return - } - - e.encryptedMPI2 = new(encoding.MPI) - if _, err = e.encryptedMPI2.ReadFrom(r); err != nil { - return - } - case PubKeyAlgoECDH: - e.encryptedMPI1 = new(encoding.MPI) - if _, err = e.encryptedMPI1.ReadFrom(r); err != nil { - return - } - - e.encryptedMPI2 = new(encoding.OID) - if _, err = e.encryptedMPI2.ReadFrom(r); err != nil { - return - } - } - _, err = consumeAll(r) - return -} - -func checksumKeyMaterial(key []byte) uint16 { - var checksum uint16 - for _, v := range key { - checksum += uint16(v) - } - return checksum -} - -// Decrypt decrypts an encrypted session key with the given private key. The -// private key must have been decrypted first. -// If config is nil, sensible defaults will be used. -func (e *EncryptedKey) Decrypt(priv *PrivateKey, config *Config) error { - if e.KeyId != 0 && e.KeyId != priv.KeyId { - return errors.InvalidArgumentError("cannot decrypt encrypted session key for key id " + strconv.FormatUint(e.KeyId, 16) + " with private key id " + strconv.FormatUint(priv.KeyId, 16)) - } - if e.Algo != priv.PubKeyAlgo { - return errors.InvalidArgumentError("cannot decrypt encrypted session key of type " + strconv.Itoa(int(e.Algo)) + " with private key of type " + strconv.Itoa(int(priv.PubKeyAlgo))) - } - if priv.Dummy() { - return errors.ErrDummyPrivateKey("dummy key found") - } - - var err error - var b []byte - - // TODO(agl): use session key decryption routines here to avoid - // padding oracle attacks. - switch priv.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - // Supports both *rsa.PrivateKey and crypto.Decrypter - k := priv.PrivateKey.(crypto.Decrypter) - b, err = k.Decrypt(config.Random(), padToKeySize(k.Public().(*rsa.PublicKey), e.encryptedMPI1.Bytes()), nil) - case PubKeyAlgoElGamal: - c1 := new(big.Int).SetBytes(e.encryptedMPI1.Bytes()) - c2 := new(big.Int).SetBytes(e.encryptedMPI2.Bytes()) - b, err = elgamal.Decrypt(priv.PrivateKey.(*elgamal.PrivateKey), c1, c2) - case PubKeyAlgoECDH: - vsG := e.encryptedMPI1.Bytes() - m := e.encryptedMPI2.Bytes() - oid := priv.PublicKey.oid.EncodedBytes() - b, err = ecdh.Decrypt(priv.PrivateKey.(*ecdh.PrivateKey), vsG, m, oid, priv.PublicKey.Fingerprint[:]) - default: - err = errors.InvalidArgumentError("cannot decrypt encrypted session key with private key of type " + strconv.Itoa(int(priv.PubKeyAlgo))) - } - - if err != nil { - return err - } - - e.CipherFunc = CipherFunction(b[0]) - e.Key = b[1 : len(b)-2] - expectedChecksum := uint16(b[len(b)-2])<<8 | uint16(b[len(b)-1]) - checksum := checksumKeyMaterial(e.Key) - if checksum != expectedChecksum { - return errors.StructuralError("EncryptedKey checksum incorrect") - } - - return nil -} - -// Serialize writes the encrypted key packet, e, to w. -func (e *EncryptedKey) Serialize(w io.Writer) error { - var mpiLen int - switch e.Algo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - mpiLen = int(e.encryptedMPI1.EncodedLength()) - case PubKeyAlgoElGamal: - mpiLen = int(e.encryptedMPI1.EncodedLength()) + int(e.encryptedMPI2.EncodedLength()) - case PubKeyAlgoECDH: - mpiLen = int(e.encryptedMPI1.EncodedLength()) + int(e.encryptedMPI2.EncodedLength()) - default: - return errors.InvalidArgumentError("don't know how to serialize encrypted key type " + strconv.Itoa(int(e.Algo))) - } - - err := serializeHeader(w, packetTypeEncryptedKey, 1 /* version */ +8 /* key id */ +1 /* algo */ +mpiLen) - if err != nil { - return err - } - - w.Write([]byte{encryptedKeyVersion}) - binary.Write(w, binary.BigEndian, e.KeyId) - w.Write([]byte{byte(e.Algo)}) - - switch e.Algo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - _, err := w.Write(e.encryptedMPI1.EncodedBytes()) - return err - case PubKeyAlgoElGamal: - if _, err := w.Write(e.encryptedMPI1.EncodedBytes()); err != nil { - return err - } - _, err := w.Write(e.encryptedMPI2.EncodedBytes()) - return err - case PubKeyAlgoECDH: - if _, err := w.Write(e.encryptedMPI1.EncodedBytes()); err != nil { - return err - } - _, err := w.Write(e.encryptedMPI2.EncodedBytes()) - return err - default: - panic("internal error") - } -} - -// SerializeEncryptedKey serializes an encrypted key packet to w that contains -// key, encrypted to pub. -// If config is nil, sensible defaults will be used. -func SerializeEncryptedKey(w io.Writer, pub *PublicKey, cipherFunc CipherFunction, key []byte, config *Config) error { - var buf [10]byte - buf[0] = encryptedKeyVersion - binary.BigEndian.PutUint64(buf[1:9], pub.KeyId) - buf[9] = byte(pub.PubKeyAlgo) - - keyBlock := make([]byte, 1 /* cipher type */ +len(key)+2 /* checksum */) - keyBlock[0] = byte(cipherFunc) - copy(keyBlock[1:], key) - checksum := checksumKeyMaterial(key) - keyBlock[1+len(key)] = byte(checksum >> 8) - keyBlock[1+len(key)+1] = byte(checksum) - - switch pub.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly: - return serializeEncryptedKeyRSA(w, config.Random(), buf, pub.PublicKey.(*rsa.PublicKey), keyBlock) - case PubKeyAlgoElGamal: - return serializeEncryptedKeyElGamal(w, config.Random(), buf, pub.PublicKey.(*elgamal.PublicKey), keyBlock) - case PubKeyAlgoECDH: - return serializeEncryptedKeyECDH(w, config.Random(), buf, pub.PublicKey.(*ecdh.PublicKey), keyBlock, pub.oid, pub.Fingerprint) - case PubKeyAlgoDSA, PubKeyAlgoRSASignOnly: - return errors.InvalidArgumentError("cannot encrypt to public key of type " + strconv.Itoa(int(pub.PubKeyAlgo))) - } - - return errors.UnsupportedError("encrypting a key to public key of type " + strconv.Itoa(int(pub.PubKeyAlgo))) -} - -func serializeEncryptedKeyRSA(w io.Writer, rand io.Reader, header [10]byte, pub *rsa.PublicKey, keyBlock []byte) error { - cipherText, err := rsa.EncryptPKCS1v15(rand, pub, keyBlock) - if err != nil { - return errors.InvalidArgumentError("RSA encryption failed: " + err.Error()) - } - - cipherMPI := encoding.NewMPI(cipherText) - packetLen := 10 /* header length */ + int(cipherMPI.EncodedLength()) - - err = serializeHeader(w, packetTypeEncryptedKey, packetLen) - if err != nil { - return err - } - _, err = w.Write(header[:]) - if err != nil { - return err - } - _, err = w.Write(cipherMPI.EncodedBytes()) - return err -} - -func serializeEncryptedKeyElGamal(w io.Writer, rand io.Reader, header [10]byte, pub *elgamal.PublicKey, keyBlock []byte) error { - c1, c2, err := elgamal.Encrypt(rand, pub, keyBlock) - if err != nil { - return errors.InvalidArgumentError("ElGamal encryption failed: " + err.Error()) - } - - packetLen := 10 /* header length */ - packetLen += 2 /* mpi size */ + (c1.BitLen()+7)/8 - packetLen += 2 /* mpi size */ + (c2.BitLen()+7)/8 - - err = serializeHeader(w, packetTypeEncryptedKey, packetLen) - if err != nil { - return err - } - _, err = w.Write(header[:]) - if err != nil { - return err - } - if _, err = w.Write(new(encoding.MPI).SetBig(c1).EncodedBytes()); err != nil { - return err - } - _, err = w.Write(new(encoding.MPI).SetBig(c2).EncodedBytes()) - return err -} - -func serializeEncryptedKeyECDH(w io.Writer, rand io.Reader, header [10]byte, pub *ecdh.PublicKey, keyBlock []byte, oid encoding.Field, fingerprint []byte) error { - vsG, c, err := ecdh.Encrypt(rand, pub, keyBlock, oid.EncodedBytes(), fingerprint) - if err != nil { - return errors.InvalidArgumentError("ECDH encryption failed: " + err.Error()) - } - - g := encoding.NewMPI(vsG) - m := encoding.NewOID(c) - - packetLen := 10 /* header length */ - packetLen += int(g.EncodedLength()) + int(m.EncodedLength()) - - err = serializeHeader(w, packetTypeEncryptedKey, packetLen) - if err != nil { - return err - } - - _, err = w.Write(header[:]) - if err != nil { - return err - } - if _, err = w.Write(g.EncodedBytes()); err != nil { - return err - } - _, err = w.Write(m.EncodedBytes()) - return err -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/literal.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/literal.go deleted file mode 100644 index 4be987609b..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/literal.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "encoding/binary" - "io" -) - -// LiteralData represents an encrypted file. See RFC 4880, section 5.9. -type LiteralData struct { - Format uint8 - IsBinary bool - FileName string - Time uint32 // Unix epoch time. Either creation time or modification time. 0 means undefined. - Body io.Reader -} - -// ForEyesOnly returns whether the contents of the LiteralData have been marked -// as especially sensitive. -func (l *LiteralData) ForEyesOnly() bool { - return l.FileName == "_CONSOLE" -} - -func (l *LiteralData) parse(r io.Reader) (err error) { - var buf [256]byte - - _, err = readFull(r, buf[:2]) - if err != nil { - return - } - - l.Format = buf[0] - l.IsBinary = l.Format == 'b' - fileNameLen := int(buf[1]) - - _, err = readFull(r, buf[:fileNameLen]) - if err != nil { - return - } - - l.FileName = string(buf[:fileNameLen]) - - _, err = readFull(r, buf[:4]) - if err != nil { - return - } - - l.Time = binary.BigEndian.Uint32(buf[:4]) - l.Body = r - return -} - -// SerializeLiteral serializes a literal data packet to w and returns a -// WriteCloser to which the data itself can be written and which MUST be closed -// on completion. The fileName is truncated to 255 bytes. -func SerializeLiteral(w io.WriteCloser, isBinary bool, fileName string, time uint32) (plaintext io.WriteCloser, err error) { - var buf [4]byte - buf[0] = 't' - if isBinary { - buf[0] = 'b' - } - if len(fileName) > 255 { - fileName = fileName[:255] - } - buf[1] = byte(len(fileName)) - - inner, err := serializeStreamHeader(w, packetTypeLiteralData) - if err != nil { - return - } - - _, err = inner.Write(buf[:2]) - if err != nil { - return - } - _, err = inner.Write([]byte(fileName)) - if err != nil { - return - } - binary.BigEndian.PutUint32(buf[:], time) - _, err = inner.Write(buf[:]) - if err != nil { - return - } - - plaintext = inner - return -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/ocfb.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/ocfb.go deleted file mode 100644 index 4f26d0a00b..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/ocfb.go +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright 2010 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// OpenPGP CFB Mode. http://tools.ietf.org/html/rfc4880#section-13.9 - -package packet - -import ( - "crypto/cipher" -) - -type ocfbEncrypter struct { - b cipher.Block - fre []byte - outUsed int -} - -// An OCFBResyncOption determines if the "resynchronization step" of OCFB is -// performed. -type OCFBResyncOption bool - -const ( - OCFBResync OCFBResyncOption = true - OCFBNoResync OCFBResyncOption = false -) - -// NewOCFBEncrypter returns a cipher.Stream which encrypts data with OpenPGP's -// cipher feedback mode using the given cipher.Block, and an initial amount of -// ciphertext. randData must be random bytes and be the same length as the -// cipher.Block's block size. Resync determines if the "resynchronization step" -// from RFC 4880, 13.9 step 7 is performed. Different parts of OpenPGP vary on -// this point. -func NewOCFBEncrypter(block cipher.Block, randData []byte, resync OCFBResyncOption) (cipher.Stream, []byte) { - blockSize := block.BlockSize() - if len(randData) != blockSize { - return nil, nil - } - - x := &ocfbEncrypter{ - b: block, - fre: make([]byte, blockSize), - outUsed: 0, - } - prefix := make([]byte, blockSize+2) - - block.Encrypt(x.fre, x.fre) - for i := 0; i < blockSize; i++ { - prefix[i] = randData[i] ^ x.fre[i] - } - - block.Encrypt(x.fre, prefix[:blockSize]) - prefix[blockSize] = x.fre[0] ^ randData[blockSize-2] - prefix[blockSize+1] = x.fre[1] ^ randData[blockSize-1] - - if resync { - block.Encrypt(x.fre, prefix[2:]) - } else { - x.fre[0] = prefix[blockSize] - x.fre[1] = prefix[blockSize+1] - x.outUsed = 2 - } - return x, prefix -} - -func (x *ocfbEncrypter) XORKeyStream(dst, src []byte) { - for i := 0; i < len(src); i++ { - if x.outUsed == len(x.fre) { - x.b.Encrypt(x.fre, x.fre) - x.outUsed = 0 - } - - x.fre[x.outUsed] ^= src[i] - dst[i] = x.fre[x.outUsed] - x.outUsed++ - } -} - -type ocfbDecrypter struct { - b cipher.Block - fre []byte - outUsed int -} - -// NewOCFBDecrypter returns a cipher.Stream which decrypts data with OpenPGP's -// cipher feedback mode using the given cipher.Block. Prefix must be the first -// blockSize + 2 bytes of the ciphertext, where blockSize is the cipher.Block's -// block size. On successful exit, blockSize+2 bytes of decrypted data are written into -// prefix. Resync determines if the "resynchronization step" from RFC 4880, -// 13.9 step 7 is performed. Different parts of OpenPGP vary on this point. -func NewOCFBDecrypter(block cipher.Block, prefix []byte, resync OCFBResyncOption) cipher.Stream { - blockSize := block.BlockSize() - if len(prefix) != blockSize+2 { - return nil - } - - x := &ocfbDecrypter{ - b: block, - fre: make([]byte, blockSize), - outUsed: 0, - } - prefixCopy := make([]byte, len(prefix)) - copy(prefixCopy, prefix) - - block.Encrypt(x.fre, x.fre) - for i := 0; i < blockSize; i++ { - prefixCopy[i] ^= x.fre[i] - } - - block.Encrypt(x.fre, prefix[:blockSize]) - prefixCopy[blockSize] ^= x.fre[0] - prefixCopy[blockSize+1] ^= x.fre[1] - - if resync { - block.Encrypt(x.fre, prefix[2:]) - } else { - x.fre[0] = prefix[blockSize] - x.fre[1] = prefix[blockSize+1] - x.outUsed = 2 - } - copy(prefix, prefixCopy) - return x -} - -func (x *ocfbDecrypter) XORKeyStream(dst, src []byte) { - for i := 0; i < len(src); i++ { - if x.outUsed == len(x.fre) { - x.b.Encrypt(x.fre, x.fre) - x.outUsed = 0 - } - - c := src[i] - dst[i] = x.fre[x.outUsed] ^ src[i] - x.fre[x.outUsed] = c - x.outUsed++ - } -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/one_pass_signature.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/one_pass_signature.go deleted file mode 100644 index 41c35de219..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/one_pass_signature.go +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "crypto" - "encoding/binary" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/s2k" - "io" - "strconv" -) - -// OnePassSignature represents a one-pass signature packet. See RFC 4880, -// section 5.4. -type OnePassSignature struct { - SigType SignatureType - Hash crypto.Hash - PubKeyAlgo PublicKeyAlgorithm - KeyId uint64 - IsLast bool -} - -const onePassSignatureVersion = 3 - -func (ops *OnePassSignature) parse(r io.Reader) (err error) { - var buf [13]byte - - _, err = readFull(r, buf[:]) - if err != nil { - return - } - if buf[0] != onePassSignatureVersion { - err = errors.UnsupportedError("one-pass-signature packet version " + strconv.Itoa(int(buf[0]))) - } - - var ok bool - ops.Hash, ok = s2k.HashIdToHash(buf[2]) - if !ok { - return errors.UnsupportedError("hash function: " + strconv.Itoa(int(buf[2]))) - } - - ops.SigType = SignatureType(buf[1]) - ops.PubKeyAlgo = PublicKeyAlgorithm(buf[3]) - ops.KeyId = binary.BigEndian.Uint64(buf[4:12]) - ops.IsLast = buf[12] != 0 - return -} - -// Serialize marshals the given OnePassSignature to w. -func (ops *OnePassSignature) Serialize(w io.Writer) error { - var buf [13]byte - buf[0] = onePassSignatureVersion - buf[1] = uint8(ops.SigType) - var ok bool - buf[2], ok = s2k.HashToHashId(ops.Hash) - if !ok { - return errors.UnsupportedError("hash type: " + strconv.Itoa(int(ops.Hash))) - } - buf[3] = uint8(ops.PubKeyAlgo) - binary.BigEndian.PutUint64(buf[4:12], ops.KeyId) - if ops.IsLast { - buf[12] = 1 - } - - if err := serializeHeader(w, packetTypeOnePassSignature, len(buf)); err != nil { - return err - } - _, err := w.Write(buf[:]) - return err -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go deleted file mode 100644 index 4f8204079f..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "bytes" - "io" - "io/ioutil" - - "github.com/ProtonMail/go-crypto/openpgp/errors" -) - -// OpaquePacket represents an OpenPGP packet as raw, unparsed data. This is -// useful for splitting and storing the original packet contents separately, -// handling unsupported packet types or accessing parts of the packet not yet -// implemented by this package. -type OpaquePacket struct { - // Packet type - Tag uint8 - // Reason why the packet was parsed opaquely - Reason error - // Binary contents of the packet data - Contents []byte -} - -func (op *OpaquePacket) parse(r io.Reader) (err error) { - op.Contents, err = ioutil.ReadAll(r) - return -} - -// Serialize marshals the packet to a writer in its original form, including -// the packet header. -func (op *OpaquePacket) Serialize(w io.Writer) (err error) { - err = serializeHeader(w, packetType(op.Tag), len(op.Contents)) - if err == nil { - _, err = w.Write(op.Contents) - } - return -} - -// Parse attempts to parse the opaque contents into a structure supported by -// this package. If the packet is not known then the result will be another -// OpaquePacket. -func (op *OpaquePacket) Parse() (p Packet, err error) { - hdr := bytes.NewBuffer(nil) - err = serializeHeader(hdr, packetType(op.Tag), len(op.Contents)) - if err != nil { - op.Reason = err - return op, err - } - p, err = Read(io.MultiReader(hdr, bytes.NewBuffer(op.Contents))) - if err != nil { - op.Reason = err - p = op - } - return -} - -// OpaqueReader reads OpaquePackets from an io.Reader. -type OpaqueReader struct { - r io.Reader -} - -func NewOpaqueReader(r io.Reader) *OpaqueReader { - return &OpaqueReader{r: r} -} - -// Read the next OpaquePacket. -func (or *OpaqueReader) Next() (op *OpaquePacket, err error) { - tag, _, contents, err := readHeader(or.r) - if err != nil { - return - } - op = &OpaquePacket{Tag: uint8(tag), Reason: err} - err = op.parse(contents) - if err != nil { - consumeAll(contents) - } - return -} - -// OpaqueSubpacket represents an unparsed OpenPGP subpacket, -// as found in signature and user attribute packets. -type OpaqueSubpacket struct { - SubType uint8 - EncodedLength []byte // Store the original encoded length for signature verifications. - Contents []byte -} - -// OpaqueSubpackets extracts opaque, unparsed OpenPGP subpackets from -// their byte representation. -func OpaqueSubpackets(contents []byte) (result []*OpaqueSubpacket, err error) { - var ( - subHeaderLen int - subPacket *OpaqueSubpacket - ) - for len(contents) > 0 { - subHeaderLen, subPacket, err = nextSubpacket(contents) - if err != nil { - break - } - result = append(result, subPacket) - contents = contents[subHeaderLen+len(subPacket.Contents):] - } - return -} - -func nextSubpacket(contents []byte) (subHeaderLen int, subPacket *OpaqueSubpacket, err error) { - // RFC 4880, section 5.2.3.1 - var subLen uint32 - var encodedLength []byte - if len(contents) < 1 { - goto Truncated - } - subPacket = &OpaqueSubpacket{} - switch { - case contents[0] < 192: - subHeaderLen = 2 // 1 length byte, 1 subtype byte - if len(contents) < subHeaderLen { - goto Truncated - } - encodedLength = contents[0:1] - subLen = uint32(contents[0]) - contents = contents[1:] - case contents[0] < 255: - subHeaderLen = 3 // 2 length bytes, 1 subtype - if len(contents) < subHeaderLen { - goto Truncated - } - encodedLength = contents[0:2] - subLen = uint32(contents[0]-192)<<8 + uint32(contents[1]) + 192 - contents = contents[2:] - default: - subHeaderLen = 6 // 5 length bytes, 1 subtype - if len(contents) < subHeaderLen { - goto Truncated - } - encodedLength = contents[0:5] - subLen = uint32(contents[1])<<24 | - uint32(contents[2])<<16 | - uint32(contents[3])<<8 | - uint32(contents[4]) - contents = contents[5:] - - } - if subLen > uint32(len(contents)) || subLen == 0 { - goto Truncated - } - subPacket.SubType = contents[0] - subPacket.EncodedLength = encodedLength - subPacket.Contents = contents[1:subLen] - return -Truncated: - err = errors.StructuralError("subpacket truncated") - return -} - -func (osp *OpaqueSubpacket) Serialize(w io.Writer) (err error) { - buf := make([]byte, 6) - copy(buf, osp.EncodedLength) - n := len(osp.EncodedLength) - - buf[n] = osp.SubType - if _, err = w.Write(buf[:n+1]); err != nil { - return - } - _, err = w.Write(osp.Contents) - return -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet.go deleted file mode 100644 index d7d4bb3f46..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/packet.go +++ /dev/null @@ -1,546 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package packet implements parsing and serialization of OpenPGP packets, as -// specified in RFC 4880. -package packet // import "github.com/ProtonMail/go-crypto/openpgp/packet" - -import ( - "bytes" - "crypto/cipher" - "crypto/rsa" - "io" - - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" -) - -// readFull is the same as io.ReadFull except that reading zero bytes returns -// ErrUnexpectedEOF rather than EOF. -func readFull(r io.Reader, buf []byte) (n int, err error) { - n, err = io.ReadFull(r, buf) - if err == io.EOF { - err = io.ErrUnexpectedEOF - } - return -} - -// readLength reads an OpenPGP length from r. See RFC 4880, section 4.2.2. -func readLength(r io.Reader) (length int64, isPartial bool, err error) { - var buf [4]byte - _, err = readFull(r, buf[:1]) - if err != nil { - return - } - switch { - case buf[0] < 192: - length = int64(buf[0]) - case buf[0] < 224: - length = int64(buf[0]-192) << 8 - _, err = readFull(r, buf[0:1]) - if err != nil { - return - } - length += int64(buf[0]) + 192 - case buf[0] < 255: - length = int64(1) << (buf[0] & 0x1f) - isPartial = true - default: - _, err = readFull(r, buf[0:4]) - if err != nil { - return - } - length = int64(buf[0])<<24 | - int64(buf[1])<<16 | - int64(buf[2])<<8 | - int64(buf[3]) - } - return -} - -// partialLengthReader wraps an io.Reader and handles OpenPGP partial lengths. -// The continuation lengths are parsed and removed from the stream and EOF is -// returned at the end of the packet. See RFC 4880, section 4.2.2.4. -type partialLengthReader struct { - r io.Reader - remaining int64 - isPartial bool -} - -func (r *partialLengthReader) Read(p []byte) (n int, err error) { - for r.remaining == 0 { - if !r.isPartial { - return 0, io.EOF - } - r.remaining, r.isPartial, err = readLength(r.r) - if err != nil { - return 0, err - } - } - - toRead := int64(len(p)) - if toRead > r.remaining { - toRead = r.remaining - } - - n, err = r.r.Read(p[:int(toRead)]) - r.remaining -= int64(n) - if n < int(toRead) && err == io.EOF { - err = io.ErrUnexpectedEOF - } - return -} - -// partialLengthWriter writes a stream of data using OpenPGP partial lengths. -// See RFC 4880, section 4.2.2.4. -type partialLengthWriter struct { - w io.WriteCloser - buf bytes.Buffer - lengthByte [1]byte -} - -func (w *partialLengthWriter) Write(p []byte) (n int, err error) { - bufLen := w.buf.Len() - if bufLen > 512 { - for power := uint(30); ; power-- { - l := 1 << power - if bufLen >= l { - w.lengthByte[0] = 224 + uint8(power) - _, err = w.w.Write(w.lengthByte[:]) - if err != nil { - return - } - var m int - m, err = w.w.Write(w.buf.Next(l)) - if err != nil { - return - } - if m != l { - return 0, io.ErrShortWrite - } - break - } - } - } - return w.buf.Write(p) -} - -func (w *partialLengthWriter) Close() (err error) { - len := w.buf.Len() - err = serializeLength(w.w, len) - if err != nil { - return err - } - _, err = w.buf.WriteTo(w.w) - if err != nil { - return err - } - return w.w.Close() -} - -// A spanReader is an io.LimitReader, but it returns ErrUnexpectedEOF if the -// underlying Reader returns EOF before the limit has been reached. -type spanReader struct { - r io.Reader - n int64 -} - -func (l *spanReader) Read(p []byte) (n int, err error) { - if l.n <= 0 { - return 0, io.EOF - } - if int64(len(p)) > l.n { - p = p[0:l.n] - } - n, err = l.r.Read(p) - l.n -= int64(n) - if l.n > 0 && err == io.EOF { - err = io.ErrUnexpectedEOF - } - return -} - -// readHeader parses a packet header and returns an io.Reader which will return -// the contents of the packet. See RFC 4880, section 4.2. -func readHeader(r io.Reader) (tag packetType, length int64, contents io.Reader, err error) { - var buf [4]byte - _, err = io.ReadFull(r, buf[:1]) - if err != nil { - return - } - if buf[0]&0x80 == 0 { - err = errors.StructuralError("tag byte does not have MSB set") - return - } - if buf[0]&0x40 == 0 { - // Old format packet - tag = packetType((buf[0] & 0x3f) >> 2) - lengthType := buf[0] & 3 - if lengthType == 3 { - length = -1 - contents = r - return - } - lengthBytes := 1 << lengthType - _, err = readFull(r, buf[0:lengthBytes]) - if err != nil { - return - } - for i := 0; i < lengthBytes; i++ { - length <<= 8 - length |= int64(buf[i]) - } - contents = &spanReader{r, length} - return - } - - // New format packet - tag = packetType(buf[0] & 0x3f) - length, isPartial, err := readLength(r) - if err != nil { - return - } - if isPartial { - contents = &partialLengthReader{ - remaining: length, - isPartial: true, - r: r, - } - length = -1 - } else { - contents = &spanReader{r, length} - } - return -} - -// serializeHeader writes an OpenPGP packet header to w. See RFC 4880, section -// 4.2. -func serializeHeader(w io.Writer, ptype packetType, length int) (err error) { - err = serializeType(w, ptype) - if err != nil { - return - } - return serializeLength(w, length) -} - -// serializeType writes an OpenPGP packet type to w. See RFC 4880, section -// 4.2. -func serializeType(w io.Writer, ptype packetType) (err error) { - var buf [1]byte - buf[0] = 0x80 | 0x40 | byte(ptype) - _, err = w.Write(buf[:]) - return -} - -// serializeLength writes an OpenPGP packet length to w. See RFC 4880, section -// 4.2.2. -func serializeLength(w io.Writer, length int) (err error) { - var buf [5]byte - var n int - - if length < 192 { - buf[0] = byte(length) - n = 1 - } else if length < 8384 { - length -= 192 - buf[0] = 192 + byte(length>>8) - buf[1] = byte(length) - n = 2 - } else { - buf[0] = 255 - buf[1] = byte(length >> 24) - buf[2] = byte(length >> 16) - buf[3] = byte(length >> 8) - buf[4] = byte(length) - n = 5 - } - - _, err = w.Write(buf[:n]) - return -} - -// serializeStreamHeader writes an OpenPGP packet header to w where the -// length of the packet is unknown. It returns a io.WriteCloser which can be -// used to write the contents of the packet. See RFC 4880, section 4.2. -func serializeStreamHeader(w io.WriteCloser, ptype packetType) (out io.WriteCloser, err error) { - err = serializeType(w, ptype) - if err != nil { - return - } - out = &partialLengthWriter{w: w} - return -} - -// Packet represents an OpenPGP packet. Users are expected to try casting -// instances of this interface to specific packet types. -type Packet interface { - parse(io.Reader) error -} - -// consumeAll reads from the given Reader until error, returning the number of -// bytes read. -func consumeAll(r io.Reader) (n int64, err error) { - var m int - var buf [1024]byte - - for { - m, err = r.Read(buf[:]) - n += int64(m) - if err == io.EOF { - err = nil - return - } - if err != nil { - return - } - } -} - -// packetType represents the numeric ids of the different OpenPGP packet types. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-2 -type packetType uint8 - -const ( - packetTypeEncryptedKey packetType = 1 - packetTypeSignature packetType = 2 - packetTypeSymmetricKeyEncrypted packetType = 3 - packetTypeOnePassSignature packetType = 4 - packetTypePrivateKey packetType = 5 - packetTypePublicKey packetType = 6 - packetTypePrivateSubkey packetType = 7 - packetTypeCompressed packetType = 8 - packetTypeSymmetricallyEncrypted packetType = 9 - packetTypeLiteralData packetType = 11 - packetTypeUserId packetType = 13 - packetTypePublicSubkey packetType = 14 - packetTypeUserAttribute packetType = 17 - packetTypeSymmetricallyEncryptedIntegrityProtected packetType = 18 - packetTypeAEADEncrypted packetType = 20 -) - -// EncryptedDataPacket holds encrypted data. It is currently implemented by -// SymmetricallyEncrypted and AEADEncrypted. -type EncryptedDataPacket interface { - Decrypt(CipherFunction, []byte) (io.ReadCloser, error) -} - -// Read reads a single OpenPGP packet from the given io.Reader. If there is an -// error parsing a packet, the whole packet is consumed from the input. -func Read(r io.Reader) (p Packet, err error) { - tag, _, contents, err := readHeader(r) - if err != nil { - return - } - - switch tag { - case packetTypeEncryptedKey: - p = new(EncryptedKey) - case packetTypeSignature: - p = new(Signature) - case packetTypeSymmetricKeyEncrypted: - p = new(SymmetricKeyEncrypted) - case packetTypeOnePassSignature: - p = new(OnePassSignature) - case packetTypePrivateKey, packetTypePrivateSubkey: - pk := new(PrivateKey) - if tag == packetTypePrivateSubkey { - pk.IsSubkey = true - } - p = pk - case packetTypePublicKey, packetTypePublicSubkey: - isSubkey := tag == packetTypePublicSubkey - p = &PublicKey{IsSubkey: isSubkey} - case packetTypeCompressed: - p = new(Compressed) - case packetTypeSymmetricallyEncrypted: - p = new(SymmetricallyEncrypted) - case packetTypeLiteralData: - p = new(LiteralData) - case packetTypeUserId: - p = new(UserId) - case packetTypeUserAttribute: - p = new(UserAttribute) - case packetTypeSymmetricallyEncryptedIntegrityProtected: - se := new(SymmetricallyEncrypted) - se.IntegrityProtected = true - p = se - case packetTypeAEADEncrypted: - p = new(AEADEncrypted) - default: - err = errors.UnknownPacketTypeError(tag) - } - if p != nil { - err = p.parse(contents) - } - if err != nil { - consumeAll(contents) - } - return -} - -// SignatureType represents the different semantic meanings of an OpenPGP -// signature. See RFC 4880, section 5.2.1. -type SignatureType uint8 - -const ( - SigTypeBinary SignatureType = 0x00 - SigTypeText = 0x01 - SigTypeGenericCert = 0x10 - SigTypePersonaCert = 0x11 - SigTypeCasualCert = 0x12 - SigTypePositiveCert = 0x13 - SigTypeSubkeyBinding = 0x18 - SigTypePrimaryKeyBinding = 0x19 - SigTypeDirectSignature = 0x1F - SigTypeKeyRevocation = 0x20 - SigTypeSubkeyRevocation = 0x28 - SigTypeCertificationRevocation = 0x30 -) - -// PublicKeyAlgorithm represents the different public key system specified for -// OpenPGP. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-12 -type PublicKeyAlgorithm uint8 - -const ( - PubKeyAlgoRSA PublicKeyAlgorithm = 1 - PubKeyAlgoElGamal PublicKeyAlgorithm = 16 - PubKeyAlgoDSA PublicKeyAlgorithm = 17 - // RFC 6637, Section 5. - PubKeyAlgoECDH PublicKeyAlgorithm = 18 - PubKeyAlgoECDSA PublicKeyAlgorithm = 19 - // https://www.ietf.org/archive/id/draft-koch-eddsa-for-openpgp-04.txt - PubKeyAlgoEdDSA PublicKeyAlgorithm = 22 - - // Deprecated in RFC 4880, Section 13.5. Use key flags instead. - PubKeyAlgoRSAEncryptOnly PublicKeyAlgorithm = 2 - PubKeyAlgoRSASignOnly PublicKeyAlgorithm = 3 -) - -// CanEncrypt returns true if it's possible to encrypt a message to a public -// key of the given type. -func (pka PublicKeyAlgorithm) CanEncrypt() bool { - switch pka { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoElGamal, PubKeyAlgoECDH: - return true - } - return false -} - -// CanSign returns true if it's possible for a public key of the given type to -// sign a message. -func (pka PublicKeyAlgorithm) CanSign() bool { - switch pka { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA, PubKeyAlgoEdDSA: - return true - } - return false -} - -// CipherFunction represents the different block ciphers specified for OpenPGP. See -// http://www.iana.org/assignments/pgp-parameters/pgp-parameters.xhtml#pgp-parameters-13 -type CipherFunction algorithm.CipherFunction - -const ( - Cipher3DES CipherFunction = 2 - CipherCAST5 CipherFunction = 3 - CipherAES128 CipherFunction = 7 - CipherAES192 CipherFunction = 8 - CipherAES256 CipherFunction = 9 -) - -// KeySize returns the key size, in bytes, of cipher. -func (cipher CipherFunction) KeySize() int { - return algorithm.CipherFunction(cipher).KeySize() -} - -// blockSize returns the block size, in bytes, of cipher. -func (cipher CipherFunction) blockSize() int { - return algorithm.CipherFunction(cipher).BlockSize() -} - -// new returns a fresh instance of the given cipher. -func (cipher CipherFunction) new(key []byte) (block cipher.Block) { - return algorithm.CipherFunction(cipher).New(key) -} - -// padToKeySize left-pads a MPI with zeroes to match the length of the -// specified RSA public. -func padToKeySize(pub *rsa.PublicKey, b []byte) []byte { - k := (pub.N.BitLen() + 7) / 8 - if len(b) >= k { - return b - } - bb := make([]byte, k) - copy(bb[len(bb)-len(b):], b) - return bb -} - -// CompressionAlgo Represents the different compression algorithms -// supported by OpenPGP (except for BZIP2, which is not currently -// supported). See Section 9.3 of RFC 4880. -type CompressionAlgo uint8 - -const ( - CompressionNone CompressionAlgo = 0 - CompressionZIP CompressionAlgo = 1 - CompressionZLIB CompressionAlgo = 2 -) - -// AEADMode represents the different Authenticated Encryption with Associated -// Data specified for OpenPGP. -// See https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-9.6 -type AEADMode algorithm.AEADMode - -const ( - AEADModeEAX AEADMode = 1 - AEADModeOCB AEADMode = 2 - AEADModeGCM AEADMode = 3 -) - -func (mode AEADMode) IvLength() int { - return algorithm.AEADMode(mode).NonceLength() -} - -func (mode AEADMode) TagLength() int { - return algorithm.AEADMode(mode).TagLength() -} - -// new returns a fresh instance of the given mode. -func (mode AEADMode) new(block cipher.Block) cipher.AEAD { - return algorithm.AEADMode(mode).New(block) -} - -// ReasonForRevocation represents a revocation reason code as per RFC4880 -// section 5.2.3.23. -type ReasonForRevocation uint8 - -const ( - NoReason ReasonForRevocation = 0 - KeySuperseded ReasonForRevocation = 1 - KeyCompromised ReasonForRevocation = 2 - KeyRetired ReasonForRevocation = 3 -) - -// Curve is a mapping to supported ECC curves for key generation. -// See https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-06.html#name-curve-specific-wire-formats -type Curve string - -const ( - Curve25519 Curve = "Curve25519" - Curve448 Curve = "Curve448" - CurveNistP256 Curve = "P256" - CurveNistP384 Curve = "P384" - CurveNistP521 Curve = "P521" - CurveSecP256k1 Curve = "SecP256k1" - CurveBrainpoolP256 Curve = "BrainpoolP256" - CurveBrainpoolP384 Curve = "BrainpoolP384" - CurveBrainpoolP512 Curve = "BrainpoolP512" -) - -// TrustLevel represents a trust level per RFC4880 5.2.3.13 -type TrustLevel uint8 - -// TrustAmount represents a trust amount per RFC4880 5.2.3.13 -type TrustAmount uint8 diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key.go deleted file mode 100644 index 009f0ef1db..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key.go +++ /dev/null @@ -1,736 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "bytes" - "crypto" - "crypto/cipher" - "crypto/dsa" - "crypto/rand" - "crypto/rsa" - "crypto/sha1" - "io" - "io/ioutil" - "math/big" - "strconv" - "time" - - "github.com/ProtonMail/go-crypto/openpgp/ecdh" - "github.com/ProtonMail/go-crypto/openpgp/ecdsa" - "github.com/ProtonMail/go-crypto/openpgp/eddsa" - "github.com/ProtonMail/go-crypto/openpgp/elgamal" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/encoding" - "github.com/ProtonMail/go-crypto/openpgp/s2k" -) - -// PrivateKey represents a possibly encrypted private key. See RFC 4880, -// section 5.5.3. -type PrivateKey struct { - PublicKey - Encrypted bool // if true then the private key is unavailable until Decrypt has been called. - encryptedData []byte - cipher CipherFunction - s2k func(out, in []byte) - // An *{rsa|dsa|elgamal|ecdh|ecdsa|ed25519}.PrivateKey or - // crypto.Signer/crypto.Decrypter (Decryptor RSA only). - PrivateKey interface{} - sha1Checksum bool - iv []byte - - // Type of encryption of the S2K packet - // Allowed values are 0 (Not encrypted), 254 (SHA1), or - // 255 (2-byte checksum) - s2kType S2KType - // Full parameters of the S2K packet - s2kParams *s2k.Params -} - -//S2KType s2k packet type -type S2KType uint8 - -const ( - // S2KNON unencrypt - S2KNON S2KType = 0 - // S2KSHA1 sha1 sum check - S2KSHA1 S2KType = 254 - // S2KCHECKSUM sum check - S2KCHECKSUM S2KType = 255 -) - -func NewRSAPrivateKey(creationTime time.Time, priv *rsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewRSAPublicKey(creationTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewDSAPrivateKey(creationTime time.Time, priv *dsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewDSAPublicKey(creationTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewElGamalPrivateKey(creationTime time.Time, priv *elgamal.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewElGamalPublicKey(creationTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewECDSAPrivateKey(creationTime time.Time, priv *ecdsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewECDSAPublicKey(creationTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewEdDSAPrivateKey(creationTime time.Time, priv *eddsa.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewEdDSAPublicKey(creationTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -func NewECDHPrivateKey(creationTime time.Time, priv *ecdh.PrivateKey) *PrivateKey { - pk := new(PrivateKey) - pk.PublicKey = *NewECDHPublicKey(creationTime, &priv.PublicKey) - pk.PrivateKey = priv - return pk -} - -// NewSignerPrivateKey creates a PrivateKey from a crypto.Signer that -// implements RSA, ECDSA or EdDSA. -func NewSignerPrivateKey(creationTime time.Time, signer interface{}) *PrivateKey { - pk := new(PrivateKey) - // In general, the public Keys should be used as pointers. We still - // type-switch on the values, for backwards-compatibility. - switch pubkey := signer.(type) { - case *rsa.PrivateKey: - pk.PublicKey = *NewRSAPublicKey(creationTime, &pubkey.PublicKey) - case rsa.PrivateKey: - pk.PublicKey = *NewRSAPublicKey(creationTime, &pubkey.PublicKey) - case *ecdsa.PrivateKey: - pk.PublicKey = *NewECDSAPublicKey(creationTime, &pubkey.PublicKey) - case ecdsa.PrivateKey: - pk.PublicKey = *NewECDSAPublicKey(creationTime, &pubkey.PublicKey) - case *eddsa.PrivateKey: - pk.PublicKey = *NewEdDSAPublicKey(creationTime, &pubkey.PublicKey) - case eddsa.PrivateKey: - pk.PublicKey = *NewEdDSAPublicKey(creationTime, &pubkey.PublicKey) - default: - panic("openpgp: unknown signer type in NewSignerPrivateKey") - } - pk.PrivateKey = signer - return pk -} - -// NewDecrypterPrivateKey creates a PrivateKey from a *{rsa|elgamal|ecdh}.PrivateKey. -func NewDecrypterPrivateKey(creationTime time.Time, decrypter interface{}) *PrivateKey { - pk := new(PrivateKey) - switch priv := decrypter.(type) { - case *rsa.PrivateKey: - pk.PublicKey = *NewRSAPublicKey(creationTime, &priv.PublicKey) - case *elgamal.PrivateKey: - pk.PublicKey = *NewElGamalPublicKey(creationTime, &priv.PublicKey) - case *ecdh.PrivateKey: - pk.PublicKey = *NewECDHPublicKey(creationTime, &priv.PublicKey) - default: - panic("openpgp: unknown decrypter type in NewDecrypterPrivateKey") - } - pk.PrivateKey = decrypter - return pk -} - -func (pk *PrivateKey) parse(r io.Reader) (err error) { - err = (&pk.PublicKey).parse(r) - if err != nil { - return - } - v5 := pk.PublicKey.Version == 5 - - var buf [1]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - pk.s2kType = S2KType(buf[0]) - var optCount [1]byte - if v5 { - if _, err = readFull(r, optCount[:]); err != nil { - return - } - } - - switch pk.s2kType { - case S2KNON: - pk.s2k = nil - pk.Encrypted = false - case S2KSHA1, S2KCHECKSUM: - if v5 && pk.s2kType == S2KCHECKSUM { - return errors.StructuralError("wrong s2k identifier for version 5") - } - _, err = readFull(r, buf[:]) - if err != nil { - return - } - pk.cipher = CipherFunction(buf[0]) - pk.s2kParams, err = s2k.ParseIntoParams(r) - if err != nil { - return - } - if pk.s2kParams.Dummy() { - return - } - pk.s2k, err = pk.s2kParams.Function() - if err != nil { - return - } - pk.Encrypted = true - if pk.s2kType == S2KSHA1 { - pk.sha1Checksum = true - } - default: - return errors.UnsupportedError("deprecated s2k function in private key") - } - - if pk.Encrypted { - blockSize := pk.cipher.blockSize() - if blockSize == 0 { - return errors.UnsupportedError("unsupported cipher in private key: " + strconv.Itoa(int(pk.cipher))) - } - pk.iv = make([]byte, blockSize) - _, err = readFull(r, pk.iv) - if err != nil { - return - } - } - - var privateKeyData []byte - if v5 { - var n [4]byte /* secret material four octet count */ - _, err = readFull(r, n[:]) - if err != nil { - return - } - count := uint32(uint32(n[0])<<24 | uint32(n[1])<<16 | uint32(n[2])<<8 | uint32(n[3])) - if !pk.Encrypted { - count = count + 2 /* two octet checksum */ - } - privateKeyData = make([]byte, count) - _, err = readFull(r, privateKeyData) - if err != nil { - return - } - } else { - privateKeyData, err = ioutil.ReadAll(r) - if err != nil { - return - } - } - if !pk.Encrypted { - if len(privateKeyData) < 2 { - return errors.StructuralError("truncated private key data") - } - var sum uint16 - for i := 0; i < len(privateKeyData)-2; i++ { - sum += uint16(privateKeyData[i]) - } - if privateKeyData[len(privateKeyData)-2] != uint8(sum>>8) || - privateKeyData[len(privateKeyData)-1] != uint8(sum) { - return errors.StructuralError("private key checksum failure") - } - privateKeyData = privateKeyData[:len(privateKeyData)-2] - return pk.parsePrivateKey(privateKeyData) - } - - pk.encryptedData = privateKeyData - return -} - -// Dummy returns true if the private key is a dummy key. This is a GNU extension. -func (pk *PrivateKey) Dummy() bool { - return pk.s2kParams.Dummy() -} - -func mod64kHash(d []byte) uint16 { - var h uint16 - for _, b := range d { - h += uint16(b) - } - return h -} - -func (pk *PrivateKey) Serialize(w io.Writer) (err error) { - contents := bytes.NewBuffer(nil) - err = pk.PublicKey.serializeWithoutHeaders(contents) - if err != nil { - return - } - if _, err = contents.Write([]byte{uint8(pk.s2kType)}); err != nil { - return - } - - optional := bytes.NewBuffer(nil) - if pk.Encrypted || pk.Dummy() { - optional.Write([]byte{uint8(pk.cipher)}) - if err := pk.s2kParams.Serialize(optional); err != nil { - return err - } - if pk.Encrypted { - optional.Write(pk.iv) - } - } - if pk.Version == 5 { - contents.Write([]byte{uint8(optional.Len())}) - } - io.Copy(contents, optional) - - if !pk.Dummy() { - l := 0 - var priv []byte - if !pk.Encrypted { - buf := bytes.NewBuffer(nil) - err = pk.serializePrivateKey(buf) - if err != nil { - return err - } - l = buf.Len() - checksum := mod64kHash(buf.Bytes()) - buf.Write([]byte{byte(checksum >> 8), byte(checksum)}) - priv = buf.Bytes() - } else { - priv, l = pk.encryptedData, len(pk.encryptedData) - } - - if pk.Version == 5 { - contents.Write([]byte{byte(l >> 24), byte(l >> 16), byte(l >> 8), byte(l)}) - } - contents.Write(priv) - } - - ptype := packetTypePrivateKey - if pk.IsSubkey { - ptype = packetTypePrivateSubkey - } - err = serializeHeader(w, ptype, contents.Len()) - if err != nil { - return - } - _, err = io.Copy(w, contents) - if err != nil { - return - } - return -} - -func serializeRSAPrivateKey(w io.Writer, priv *rsa.PrivateKey) error { - if _, err := w.Write(new(encoding.MPI).SetBig(priv.D).EncodedBytes()); err != nil { - return err - } - if _, err := w.Write(new(encoding.MPI).SetBig(priv.Primes[1]).EncodedBytes()); err != nil { - return err - } - if _, err := w.Write(new(encoding.MPI).SetBig(priv.Primes[0]).EncodedBytes()); err != nil { - return err - } - _, err := w.Write(new(encoding.MPI).SetBig(priv.Precomputed.Qinv).EncodedBytes()) - return err -} - -func serializeDSAPrivateKey(w io.Writer, priv *dsa.PrivateKey) error { - _, err := w.Write(new(encoding.MPI).SetBig(priv.X).EncodedBytes()) - return err -} - -func serializeElGamalPrivateKey(w io.Writer, priv *elgamal.PrivateKey) error { - _, err := w.Write(new(encoding.MPI).SetBig(priv.X).EncodedBytes()) - return err -} - -func serializeECDSAPrivateKey(w io.Writer, priv *ecdsa.PrivateKey) error { - _, err := w.Write(encoding.NewMPI(priv.MarshalIntegerSecret()).EncodedBytes()) - return err -} - -func serializeEdDSAPrivateKey(w io.Writer, priv *eddsa.PrivateKey) error { - _, err := w.Write(encoding.NewMPI(priv.MarshalByteSecret()).EncodedBytes()) - return err -} - -func serializeECDHPrivateKey(w io.Writer, priv *ecdh.PrivateKey) error { - _, err := w.Write(encoding.NewMPI(priv.MarshalByteSecret()).EncodedBytes()) - return err -} - -// Decrypt decrypts an encrypted private key using a passphrase. -func (pk *PrivateKey) Decrypt(passphrase []byte) error { - if pk.Dummy() { - return errors.ErrDummyPrivateKey("dummy key found") - } - if !pk.Encrypted { - return nil - } - - key := make([]byte, pk.cipher.KeySize()) - pk.s2k(key, passphrase) - block := pk.cipher.new(key) - cfb := cipher.NewCFBDecrypter(block, pk.iv) - - data := make([]byte, len(pk.encryptedData)) - cfb.XORKeyStream(data, pk.encryptedData) - - if pk.sha1Checksum { - if len(data) < sha1.Size { - return errors.StructuralError("truncated private key data") - } - h := sha1.New() - h.Write(data[:len(data)-sha1.Size]) - sum := h.Sum(nil) - if !bytes.Equal(sum, data[len(data)-sha1.Size:]) { - return errors.StructuralError("private key checksum failure") - } - data = data[:len(data)-sha1.Size] - } else { - if len(data) < 2 { - return errors.StructuralError("truncated private key data") - } - var sum uint16 - for i := 0; i < len(data)-2; i++ { - sum += uint16(data[i]) - } - if data[len(data)-2] != uint8(sum>>8) || - data[len(data)-1] != uint8(sum) { - return errors.StructuralError("private key checksum failure") - } - data = data[:len(data)-2] - } - - err := pk.parsePrivateKey(data) - if _, ok := err.(errors.KeyInvalidError); ok { - return errors.KeyInvalidError("invalid key parameters") - } - if err != nil { - return err - } - - // Mark key as unencrypted - pk.s2kType = S2KNON - pk.s2k = nil - pk.Encrypted = false - pk.encryptedData = nil - - return nil -} - -// Encrypt encrypts an unencrypted private key using a passphrase. -func (pk *PrivateKey) Encrypt(passphrase []byte) error { - priv := bytes.NewBuffer(nil) - err := pk.serializePrivateKey(priv) - if err != nil { - return err - } - - //Default config of private key encryption - pk.cipher = CipherAES256 - s2kConfig := &s2k.Config{ - S2KMode: 3, //Iterated - S2KCount: 65536, - Hash: crypto.SHA256, - } - - pk.s2kParams, err = s2k.Generate(rand.Reader, s2kConfig) - if err != nil { - return err - } - privateKeyBytes := priv.Bytes() - key := make([]byte, pk.cipher.KeySize()) - - pk.sha1Checksum = true - pk.s2k, err = pk.s2kParams.Function() - if err != nil { - return err - } - pk.s2k(key, passphrase) - block := pk.cipher.new(key) - pk.iv = make([]byte, pk.cipher.blockSize()) - _, err = rand.Read(pk.iv) - if err != nil { - return err - } - cfb := cipher.NewCFBEncrypter(block, pk.iv) - - if pk.sha1Checksum { - pk.s2kType = S2KSHA1 - h := sha1.New() - h.Write(privateKeyBytes) - sum := h.Sum(nil) - privateKeyBytes = append(privateKeyBytes, sum...) - } else { - pk.s2kType = S2KCHECKSUM - var sum uint16 - for _, b := range privateKeyBytes { - sum += uint16(b) - } - priv.Write([]byte{uint8(sum >> 8), uint8(sum)}) - } - - pk.encryptedData = make([]byte, len(privateKeyBytes)) - cfb.XORKeyStream(pk.encryptedData, privateKeyBytes) - pk.Encrypted = true - pk.PrivateKey = nil - return err -} - -func (pk *PrivateKey) serializePrivateKey(w io.Writer) (err error) { - switch priv := pk.PrivateKey.(type) { - case *rsa.PrivateKey: - err = serializeRSAPrivateKey(w, priv) - case *dsa.PrivateKey: - err = serializeDSAPrivateKey(w, priv) - case *elgamal.PrivateKey: - err = serializeElGamalPrivateKey(w, priv) - case *ecdsa.PrivateKey: - err = serializeECDSAPrivateKey(w, priv) - case *eddsa.PrivateKey: - err = serializeEdDSAPrivateKey(w, priv) - case *ecdh.PrivateKey: - err = serializeECDHPrivateKey(w, priv) - default: - err = errors.InvalidArgumentError("unknown private key type") - } - return -} - -func (pk *PrivateKey) parsePrivateKey(data []byte) (err error) { - switch pk.PublicKey.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoRSAEncryptOnly: - return pk.parseRSAPrivateKey(data) - case PubKeyAlgoDSA: - return pk.parseDSAPrivateKey(data) - case PubKeyAlgoElGamal: - return pk.parseElGamalPrivateKey(data) - case PubKeyAlgoECDSA: - return pk.parseECDSAPrivateKey(data) - case PubKeyAlgoECDH: - return pk.parseECDHPrivateKey(data) - case PubKeyAlgoEdDSA: - return pk.parseEdDSAPrivateKey(data) - } - panic("impossible") -} - -func (pk *PrivateKey) parseRSAPrivateKey(data []byte) (err error) { - rsaPub := pk.PublicKey.PublicKey.(*rsa.PublicKey) - rsaPriv := new(rsa.PrivateKey) - rsaPriv.PublicKey = *rsaPub - - buf := bytes.NewBuffer(data) - d := new(encoding.MPI) - if _, err := d.ReadFrom(buf); err != nil { - return err - } - - p := new(encoding.MPI) - if _, err := p.ReadFrom(buf); err != nil { - return err - } - - q := new(encoding.MPI) - if _, err := q.ReadFrom(buf); err != nil { - return err - } - - rsaPriv.D = new(big.Int).SetBytes(d.Bytes()) - rsaPriv.Primes = make([]*big.Int, 2) - rsaPriv.Primes[0] = new(big.Int).SetBytes(p.Bytes()) - rsaPriv.Primes[1] = new(big.Int).SetBytes(q.Bytes()) - if err := rsaPriv.Validate(); err != nil { - return errors.KeyInvalidError(err.Error()) - } - rsaPriv.Precompute() - pk.PrivateKey = rsaPriv - - return nil -} - -func (pk *PrivateKey) parseDSAPrivateKey(data []byte) (err error) { - dsaPub := pk.PublicKey.PublicKey.(*dsa.PublicKey) - dsaPriv := new(dsa.PrivateKey) - dsaPriv.PublicKey = *dsaPub - - buf := bytes.NewBuffer(data) - x := new(encoding.MPI) - if _, err := x.ReadFrom(buf); err != nil { - return err - } - - dsaPriv.X = new(big.Int).SetBytes(x.Bytes()) - if err := validateDSAParameters(dsaPriv); err != nil { - return err - } - pk.PrivateKey = dsaPriv - - return nil -} - -func (pk *PrivateKey) parseElGamalPrivateKey(data []byte) (err error) { - pub := pk.PublicKey.PublicKey.(*elgamal.PublicKey) - priv := new(elgamal.PrivateKey) - priv.PublicKey = *pub - - buf := bytes.NewBuffer(data) - x := new(encoding.MPI) - if _, err := x.ReadFrom(buf); err != nil { - return err - } - - priv.X = new(big.Int).SetBytes(x.Bytes()) - if err := validateElGamalParameters(priv); err != nil { - return err - } - pk.PrivateKey = priv - - return nil -} - -func (pk *PrivateKey) parseECDSAPrivateKey(data []byte) (err error) { - ecdsaPub := pk.PublicKey.PublicKey.(*ecdsa.PublicKey) - ecdsaPriv := ecdsa.NewPrivateKey(*ecdsaPub) - - buf := bytes.NewBuffer(data) - d := new(encoding.MPI) - if _, err := d.ReadFrom(buf); err != nil { - return err - } - - if err := ecdsaPriv.UnmarshalIntegerSecret(d.Bytes()); err != nil { - return err - } - if err := ecdsa.Validate(ecdsaPriv); err != nil { - return err - } - pk.PrivateKey = ecdsaPriv - - return nil -} - -func (pk *PrivateKey) parseECDHPrivateKey(data []byte) (err error) { - ecdhPub := pk.PublicKey.PublicKey.(*ecdh.PublicKey) - ecdhPriv := ecdh.NewPrivateKey(*ecdhPub) - - buf := bytes.NewBuffer(data) - d := new(encoding.MPI) - if _, err := d.ReadFrom(buf); err != nil { - return err - } - - if err := ecdhPriv.UnmarshalByteSecret(d.Bytes()); err != nil { - return err - } - - if err := ecdh.Validate(ecdhPriv); err != nil { - return err - } - - pk.PrivateKey = ecdhPriv - - return nil -} - -func (pk *PrivateKey) parseEdDSAPrivateKey(data []byte) (err error) { - eddsaPub := pk.PublicKey.PublicKey.(*eddsa.PublicKey) - eddsaPriv := eddsa.NewPrivateKey(*eddsaPub) - eddsaPriv.PublicKey = *eddsaPub - - buf := bytes.NewBuffer(data) - d := new(encoding.MPI) - if _, err := d.ReadFrom(buf); err != nil { - return err - } - - if err = eddsaPriv.UnmarshalByteSecret(d.Bytes()); err != nil { - return err - } - - if err := eddsa.Validate(eddsaPriv); err != nil { - return err - } - - pk.PrivateKey = eddsaPriv - - return nil -} - -func validateDSAParameters(priv *dsa.PrivateKey) error { - p := priv.P // group prime - q := priv.Q // subgroup order - g := priv.G // g has order q mod p - x := priv.X // secret - y := priv.Y // y == g**x mod p - one := big.NewInt(1) - // expect g, y >= 2 and g < p - if g.Cmp(one) <= 0 || y.Cmp(one) <= 0 || g.Cmp(p) > 0 { - return errors.KeyInvalidError("dsa: invalid group") - } - // expect p > q - if p.Cmp(q) <= 0 { - return errors.KeyInvalidError("dsa: invalid group prime") - } - // q should be large enough and divide p-1 - pSub1 := new(big.Int).Sub(p, one) - if q.BitLen() < 150 || new(big.Int).Mod(pSub1, q).Cmp(big.NewInt(0)) != 0 { - return errors.KeyInvalidError("dsa: invalid order") - } - // confirm that g has order q mod p - if !q.ProbablyPrime(32) || new(big.Int).Exp(g, q, p).Cmp(one) != 0 { - return errors.KeyInvalidError("dsa: invalid order") - } - // check y - if new(big.Int).Exp(g, x, p).Cmp(y) != 0 { - return errors.KeyInvalidError("dsa: mismatching values") - } - - return nil -} - -func validateElGamalParameters(priv *elgamal.PrivateKey) error { - p := priv.P // group prime - g := priv.G // g has order p-1 mod p - x := priv.X // secret - y := priv.Y // y == g**x mod p - one := big.NewInt(1) - // Expect g, y >= 2 and g < p - if g.Cmp(one) <= 0 || y.Cmp(one) <= 0 || g.Cmp(p) > 0 { - return errors.KeyInvalidError("elgamal: invalid group") - } - if p.BitLen() < 1024 { - return errors.KeyInvalidError("elgamal: group order too small") - } - pSub1 := new(big.Int).Sub(p, one) - if new(big.Int).Exp(g, pSub1, p).Cmp(one) != 0 { - return errors.KeyInvalidError("elgamal: invalid group") - } - // Since p-1 is not prime, g might have a smaller order that divides p-1. - // We cannot confirm the exact order of g, but we make sure it is not too small. - gExpI := new(big.Int).Set(g) - i := 1 - threshold := 2 << 17 // we want order > threshold - for i < threshold { - i++ // we check every order to make sure key validation is not easily bypassed by guessing y' - gExpI.Mod(new(big.Int).Mul(gExpI, g), p) - if gExpI.Cmp(one) == 0 { - return errors.KeyInvalidError("elgamal: order too small") - } - } - // Check y - if new(big.Int).Exp(g, x, p).Cmp(y) != 0 { - return errors.KeyInvalidError("elgamal: mismatching values") - } - - return nil -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key_test_data.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key_test_data.go deleted file mode 100644 index 029b8f1aab..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/private_key_test_data.go +++ /dev/null @@ -1,12 +0,0 @@ -package packet - -// Generated with `gpg --export-secret-keys "Test Key 2"` -const privKeyRSAHex = "9501fe044cc349a8010400b70ca0010e98c090008d45d1ee8f9113bd5861fd57b88bacb7c68658747663f1e1a3b5a98f32fda6472373c024b97359cd2efc88ff60f77751adfbf6af5e615e6a1408cfad8bf0cea30b0d5f53aa27ad59089ba9b15b7ebc2777a25d7b436144027e3bcd203909f147d0e332b240cf63d3395f5dfe0df0a6c04e8655af7eacdf0011010001fe0303024a252e7d475fd445607de39a265472aa74a9320ba2dac395faa687e9e0336aeb7e9a7397e511b5afd9dc84557c80ac0f3d4d7bfec5ae16f20d41c8c84a04552a33870b930420e230e179564f6d19bb153145e76c33ae993886c388832b0fa042ddda7f133924f3854481533e0ede31d51278c0519b29abc3bf53da673e13e3e1214b52413d179d7f66deee35cac8eacb060f78379d70ef4af8607e68131ff529439668fc39c9ce6dfef8a5ac234d234802cbfb749a26107db26406213ae5c06d4673253a3cbee1fcbae58d6ab77e38d6e2c0e7c6317c48e054edadb5a40d0d48acb44643d998139a8a66bb820be1f3f80185bc777d14b5954b60effe2448a036d565c6bc0b915fcea518acdd20ab07bc1529f561c58cd044f723109b93f6fd99f876ff891d64306b5d08f48bab59f38695e9109c4dec34013ba3153488ce070268381ba923ee1eb77125b36afcb4347ec3478c8f2735b06ef17351d872e577fa95d0c397c88c71b59629a36aec" - -// Generated by `gpg --export-secret-keys` followed by a manual extraction of -// the ElGamal subkey from the packets. -const privKeyElGamalHex = "9d0157044df9ee1a100400eb8e136a58ec39b582629cdadf830bc64e0a94ed8103ca8bb247b27b11b46d1d25297ef4bcc3071785ba0c0bedfe89eabc5287fcc0edf81ab5896c1c8e4b20d27d79813c7aede75320b33eaeeaa586edc00fd1036c10133e6ba0ff277245d0d59d04b2b3421b7244aca5f4a8d870c6f1c1fbff9e1c26699a860b9504f35ca1d700030503fd1ededd3b840795be6d9ccbe3c51ee42e2f39233c432b831ddd9c4e72b7025a819317e47bf94f9ee316d7273b05d5fcf2999c3a681f519b1234bbfa6d359b4752bd9c3f77d6b6456cde152464763414ca130f4e91d91041432f90620fec0e6d6b5116076c2985d5aeaae13be492b9b329efcaf7ee25120159a0a30cd976b42d7afe030302dae7eb80db744d4960c4df930d57e87fe81412eaace9f900e6c839817a614ddb75ba6603b9417c33ea7b6c93967dfa2bcff3fa3c74a5ce2c962db65b03aece14c96cbd0038fc" - -// pkcs1PrivKeyHex is a PKCS#1, RSA private key. -// Generated by `openssl genrsa 1024 | openssl rsa -outform DER | xxd -p` -const pkcs1PrivKeyHex = "3082025d02010002818100e98edfa1c3b35884a54d0b36a6a603b0290fa85e49e30fa23fc94fef9c6790bc4849928607aa48d809da326fb42a969d06ad756b98b9c1a90f5d4a2b6d0ac05953c97f4da3120164a21a679793ce181c906dc01d235cc085ddcdf6ea06c389b6ab8885dfd685959e693138856a68a7e5db263337ff82a088d583a897cf2d59e9020301000102818100b6d5c9eb70b02d5369b3ee5b520a14490b5bde8a317d36f7e4c74b7460141311d1e5067735f8f01d6f5908b2b96fbd881f7a1ab9a84d82753e39e19e2d36856be960d05ac9ef8e8782ea1b6d65aee28fdfe1d61451e8cff0adfe84322f12cf455028b581cf60eb9e0e140ba5d21aeba6c2634d7c65318b9a665fc01c3191ca21024100fa5e818da3705b0fa33278bb28d4b6f6050388af2d4b75ec9375dd91ccf2e7d7068086a8b82a8f6282e4fbbdb8a7f2622eb97295249d87acea7f5f816f54d347024100eecf9406d7dc49cdfb95ab1eff4064de84c7a30f64b2798936a0d2018ba9eb52e4b636f82e96c49cc63b80b675e91e40d1b2e4017d4b9adaf33ab3d9cf1c214f024100c173704ace742c082323066226a4655226819a85304c542b9dacbeacbf5d1881ee863485fcf6f59f3a604f9b42289282067447f2b13dfeed3eab7851fc81e0550240741fc41f3fc002b382eed8730e33c5d8de40256e4accee846667f536832f711ab1d4590e7db91a8a116ac5bff3be13d3f9243ff2e976662aa9b395d907f8e9c9024046a5696c9ef882363e06c9fa4e2f5b580906452befba03f4a99d0f873697ef1f851d2226ca7934b30b7c3e80cb634a67172bbbf4781735fe3e09263e2dd723e7" diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go deleted file mode 100644 index e0f5f74a93..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key.go +++ /dev/null @@ -1,802 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "crypto" - "crypto/dsa" - "crypto/rsa" - "crypto/sha1" - "crypto/sha256" - _ "crypto/sha512" - "encoding/binary" - "fmt" - "hash" - "io" - "math/big" - "strconv" - "time" - - "github.com/ProtonMail/go-crypto/openpgp/ecdh" - "github.com/ProtonMail/go-crypto/openpgp/ecdsa" - "github.com/ProtonMail/go-crypto/openpgp/eddsa" - "github.com/ProtonMail/go-crypto/openpgp/elgamal" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" - "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" - "github.com/ProtonMail/go-crypto/openpgp/internal/encoding" -) - -type kdfHashFunction byte -type kdfAlgorithm byte - -// PublicKey represents an OpenPGP public key. See RFC 4880, section 5.5.2. -type PublicKey struct { - Version int - CreationTime time.Time - PubKeyAlgo PublicKeyAlgorithm - PublicKey interface{} // *rsa.PublicKey, *dsa.PublicKey, *ecdsa.PublicKey or *eddsa.PublicKey - Fingerprint []byte - KeyId uint64 - IsSubkey bool - - // RFC 4880 fields - n, e, p, q, g, y encoding.Field - - // RFC 6637 fields - // oid contains the OID byte sequence identifying the elliptic curve used - oid encoding.Field - - // kdf stores key derivation function parameters - // used for ECDH encryption. See RFC 6637, Section 9. - kdf encoding.Field -} - -// UpgradeToV5 updates the version of the key to v5, and updates all necessary -// fields. -func (pk *PublicKey) UpgradeToV5() { - pk.Version = 5 - pk.setFingerprintAndKeyId() -} - -// signingKey provides a convenient abstraction over signature verification -// for v3 and v4 public keys. -type signingKey interface { - SerializeForHash(io.Writer) error - SerializeSignaturePrefix(io.Writer) - serializeWithoutHeaders(io.Writer) error -} - -// NewRSAPublicKey returns a PublicKey that wraps the given rsa.PublicKey. -func NewRSAPublicKey(creationTime time.Time, pub *rsa.PublicKey) *PublicKey { - pk := &PublicKey{ - Version: 4, - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoRSA, - PublicKey: pub, - n: new(encoding.MPI).SetBig(pub.N), - e: new(encoding.MPI).SetBig(big.NewInt(int64(pub.E))), - } - - pk.setFingerprintAndKeyId() - return pk -} - -// NewDSAPublicKey returns a PublicKey that wraps the given dsa.PublicKey. -func NewDSAPublicKey(creationTime time.Time, pub *dsa.PublicKey) *PublicKey { - pk := &PublicKey{ - Version: 4, - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoDSA, - PublicKey: pub, - p: new(encoding.MPI).SetBig(pub.P), - q: new(encoding.MPI).SetBig(pub.Q), - g: new(encoding.MPI).SetBig(pub.G), - y: new(encoding.MPI).SetBig(pub.Y), - } - - pk.setFingerprintAndKeyId() - return pk -} - -// NewElGamalPublicKey returns a PublicKey that wraps the given elgamal.PublicKey. -func NewElGamalPublicKey(creationTime time.Time, pub *elgamal.PublicKey) *PublicKey { - pk := &PublicKey{ - Version: 4, - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoElGamal, - PublicKey: pub, - p: new(encoding.MPI).SetBig(pub.P), - g: new(encoding.MPI).SetBig(pub.G), - y: new(encoding.MPI).SetBig(pub.Y), - } - - pk.setFingerprintAndKeyId() - return pk -} - -func NewECDSAPublicKey(creationTime time.Time, pub *ecdsa.PublicKey) *PublicKey { - pk := &PublicKey{ - Version: 4, - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoECDSA, - PublicKey: pub, - p: encoding.NewMPI(pub.MarshalPoint()), - } - - curveInfo := ecc.FindByCurve(pub.GetCurve()) - if curveInfo == nil { - panic("unknown elliptic curve") - } - pk.oid = curveInfo.Oid - pk.setFingerprintAndKeyId() - return pk -} - -func NewECDHPublicKey(creationTime time.Time, pub *ecdh.PublicKey) *PublicKey { - var pk *PublicKey - var kdf = encoding.NewOID([]byte{0x1, pub.Hash.Id(), pub.Cipher.Id()}) - pk = &PublicKey{ - Version: 4, - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoECDH, - PublicKey: pub, - p: encoding.NewMPI(pub.MarshalPoint()), - kdf: kdf, - } - - curveInfo := ecc.FindByCurve(pub.GetCurve()) - - if curveInfo == nil { - panic("unknown elliptic curve") - } - - pk.oid = curveInfo.Oid - pk.setFingerprintAndKeyId() - return pk -} - -func NewEdDSAPublicKey(creationTime time.Time, pub *eddsa.PublicKey) *PublicKey { - curveInfo := ecc.FindByCurve(pub.GetCurve()) - pk := &PublicKey{ - Version: 4, - CreationTime: creationTime, - PubKeyAlgo: PubKeyAlgoEdDSA, - PublicKey: pub, - oid: curveInfo.Oid, - // Native point format, see draft-koch-eddsa-for-openpgp-04, Appendix B - p: encoding.NewMPI(pub.MarshalPoint()), - } - - pk.setFingerprintAndKeyId() - return pk -} - -func (pk *PublicKey) parse(r io.Reader) (err error) { - // RFC 4880, section 5.5.2 - var buf [6]byte - _, err = readFull(r, buf[:]) - if err != nil { - return - } - if buf[0] != 4 && buf[0] != 5 { - return errors.UnsupportedError("public key version " + strconv.Itoa(int(buf[0]))) - } - - pk.Version = int(buf[0]) - if pk.Version == 5 { - var n [4]byte - _, err = readFull(r, n[:]) - if err != nil { - return - } - } - pk.CreationTime = time.Unix(int64(uint32(buf[1])<<24|uint32(buf[2])<<16|uint32(buf[3])<<8|uint32(buf[4])), 0) - pk.PubKeyAlgo = PublicKeyAlgorithm(buf[5]) - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - err = pk.parseRSA(r) - case PubKeyAlgoDSA: - err = pk.parseDSA(r) - case PubKeyAlgoElGamal: - err = pk.parseElGamal(r) - case PubKeyAlgoECDSA: - err = pk.parseECDSA(r) - case PubKeyAlgoECDH: - err = pk.parseECDH(r) - case PubKeyAlgoEdDSA: - err = pk.parseEdDSA(r) - default: - err = errors.UnsupportedError("public key type: " + strconv.Itoa(int(pk.PubKeyAlgo))) - } - if err != nil { - return - } - - pk.setFingerprintAndKeyId() - return -} - -func (pk *PublicKey) setFingerprintAndKeyId() { - // RFC 4880, section 12.2 - if pk.Version == 5 { - fingerprint := sha256.New() - pk.SerializeForHash(fingerprint) - pk.Fingerprint = make([]byte, 32) - copy(pk.Fingerprint, fingerprint.Sum(nil)) - pk.KeyId = binary.BigEndian.Uint64(pk.Fingerprint[:8]) - } else { - fingerprint := sha1.New() - pk.SerializeForHash(fingerprint) - pk.Fingerprint = make([]byte, 20) - copy(pk.Fingerprint, fingerprint.Sum(nil)) - pk.KeyId = binary.BigEndian.Uint64(pk.Fingerprint[12:20]) - } -} - -// parseRSA parses RSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKey) parseRSA(r io.Reader) (err error) { - pk.n = new(encoding.MPI) - if _, err = pk.n.ReadFrom(r); err != nil { - return - } - pk.e = new(encoding.MPI) - if _, err = pk.e.ReadFrom(r); err != nil { - return - } - - if len(pk.e.Bytes()) > 3 { - err = errors.UnsupportedError("large public exponent") - return - } - rsa := &rsa.PublicKey{ - N: new(big.Int).SetBytes(pk.n.Bytes()), - E: 0, - } - for i := 0; i < len(pk.e.Bytes()); i++ { - rsa.E <<= 8 - rsa.E |= int(pk.e.Bytes()[i]) - } - pk.PublicKey = rsa - return -} - -// parseDSA parses DSA public key material from the given Reader. See RFC 4880, -// section 5.5.2. -func (pk *PublicKey) parseDSA(r io.Reader) (err error) { - pk.p = new(encoding.MPI) - if _, err = pk.p.ReadFrom(r); err != nil { - return - } - pk.q = new(encoding.MPI) - if _, err = pk.q.ReadFrom(r); err != nil { - return - } - pk.g = new(encoding.MPI) - if _, err = pk.g.ReadFrom(r); err != nil { - return - } - pk.y = new(encoding.MPI) - if _, err = pk.y.ReadFrom(r); err != nil { - return - } - - dsa := new(dsa.PublicKey) - dsa.P = new(big.Int).SetBytes(pk.p.Bytes()) - dsa.Q = new(big.Int).SetBytes(pk.q.Bytes()) - dsa.G = new(big.Int).SetBytes(pk.g.Bytes()) - dsa.Y = new(big.Int).SetBytes(pk.y.Bytes()) - pk.PublicKey = dsa - return -} - -// parseElGamal parses ElGamal public key material from the given Reader. See -// RFC 4880, section 5.5.2. -func (pk *PublicKey) parseElGamal(r io.Reader) (err error) { - pk.p = new(encoding.MPI) - if _, err = pk.p.ReadFrom(r); err != nil { - return - } - pk.g = new(encoding.MPI) - if _, err = pk.g.ReadFrom(r); err != nil { - return - } - pk.y = new(encoding.MPI) - if _, err = pk.y.ReadFrom(r); err != nil { - return - } - - elgamal := new(elgamal.PublicKey) - elgamal.P = new(big.Int).SetBytes(pk.p.Bytes()) - elgamal.G = new(big.Int).SetBytes(pk.g.Bytes()) - elgamal.Y = new(big.Int).SetBytes(pk.y.Bytes()) - pk.PublicKey = elgamal - return -} - -// parseECDSA parses ECDSA public key material from the given Reader. See -// RFC 6637, Section 9. -func (pk *PublicKey) parseECDSA(r io.Reader) (err error) { - pk.oid = new(encoding.OID) - if _, err = pk.oid.ReadFrom(r); err != nil { - return - } - pk.p = new(encoding.MPI) - if _, err = pk.p.ReadFrom(r); err != nil { - return - } - - curveInfo := ecc.FindByOid(pk.oid) - if curveInfo == nil { - return errors.UnsupportedError(fmt.Sprintf("unknown oid: %x", pk.oid)) - } - - c, ok := curveInfo.Curve.(ecc.ECDSACurve) - if !ok { - return errors.UnsupportedError(fmt.Sprintf("unsupported oid: %x", pk.oid)) - } - - ecdsaKey := ecdsa.NewPublicKey(c) - err = ecdsaKey.UnmarshalPoint(pk.p.Bytes()) - pk.PublicKey = ecdsaKey - - return -} - -// parseECDH parses ECDH public key material from the given Reader. See -// RFC 6637, Section 9. -func (pk *PublicKey) parseECDH(r io.Reader) (err error) { - pk.oid = new(encoding.OID) - if _, err = pk.oid.ReadFrom(r); err != nil { - return - } - pk.p = new(encoding.MPI) - if _, err = pk.p.ReadFrom(r); err != nil { - return - } - pk.kdf = new(encoding.OID) - if _, err = pk.kdf.ReadFrom(r); err != nil { - return - } - - curveInfo := ecc.FindByOid(pk.oid) - - if curveInfo == nil { - return errors.UnsupportedError(fmt.Sprintf("unknown oid: %x", pk.oid)) - } - - c, ok := curveInfo.Curve.(ecc.ECDHCurve) - if !ok { - return errors.UnsupportedError(fmt.Sprintf("unsupported oid: %x", pk.oid)) - } - - if kdfLen := len(pk.kdf.Bytes()); kdfLen < 3 { - return errors.UnsupportedError("unsupported ECDH KDF length: " + strconv.Itoa(kdfLen)) - } - if reserved := pk.kdf.Bytes()[0]; reserved != 0x01 { - return errors.UnsupportedError("unsupported KDF reserved field: " + strconv.Itoa(int(reserved))) - } - kdfHash, ok := algorithm.HashById[pk.kdf.Bytes()[1]] - if !ok { - return errors.UnsupportedError("unsupported ECDH KDF hash: " + strconv.Itoa(int(pk.kdf.Bytes()[1]))) - } - kdfCipher, ok := algorithm.CipherById[pk.kdf.Bytes()[2]] - if !ok { - return errors.UnsupportedError("unsupported ECDH KDF cipher: " + strconv.Itoa(int(pk.kdf.Bytes()[2]))) - } - - ecdhKey := ecdh.NewPublicKey(c, kdfHash, kdfCipher) - err = ecdhKey.UnmarshalPoint(pk.p.Bytes()) - pk.PublicKey = ecdhKey - - return -} - -func (pk *PublicKey) parseEdDSA(r io.Reader) (err error) { - pk.oid = new(encoding.OID) - if _, err = pk.oid.ReadFrom(r); err != nil { - return - } - curveInfo := ecc.FindByOid(pk.oid) - if curveInfo == nil { - return errors.UnsupportedError(fmt.Sprintf("unknown oid: %x", pk.oid)) - } - - c, ok := curveInfo.Curve.(ecc.EdDSACurve) - if !ok { - return errors.UnsupportedError(fmt.Sprintf("unsupported oid: %x", pk.oid)) - } - - pk.p = new(encoding.MPI) - if _, err = pk.p.ReadFrom(r); err != nil { - return - } - - pub := eddsa.NewPublicKey(c) - - switch flag := pk.p.Bytes()[0]; flag { - case 0x04: - // TODO: see _grcy_ecc_eddsa_ensure_compact in grcypt - return errors.UnsupportedError("unsupported EdDSA compression: " + strconv.Itoa(int(flag))) - case 0x40: - err = pub.UnmarshalPoint(pk.p.Bytes()) - default: - return errors.UnsupportedError("unsupported EdDSA compression: " + strconv.Itoa(int(flag))) - } - - pk.PublicKey = pub - return -} - -// SerializeForHash serializes the PublicKey to w with the special packet -// header format needed for hashing. -func (pk *PublicKey) SerializeForHash(w io.Writer) error { - pk.SerializeSignaturePrefix(w) - return pk.serializeWithoutHeaders(w) -} - -// SerializeSignaturePrefix writes the prefix for this public key to the given Writer. -// The prefix is used when calculating a signature over this public key. See -// RFC 4880, section 5.2.4. -func (pk *PublicKey) SerializeSignaturePrefix(w io.Writer) { - var pLength = pk.algorithmSpecificByteCount() - if pk.Version == 5 { - pLength += 10 // version, timestamp (4), algorithm, key octet count (4). - w.Write([]byte{ - 0x9A, - byte(pLength >> 24), - byte(pLength >> 16), - byte(pLength >> 8), - byte(pLength), - }) - return - } - pLength += 6 - w.Write([]byte{0x99, byte(pLength >> 8), byte(pLength)}) -} - -func (pk *PublicKey) Serialize(w io.Writer) (err error) { - length := 6 // 6 byte header - length += pk.algorithmSpecificByteCount() - if pk.Version == 5 { - length += 4 // octet key count - } - packetType := packetTypePublicKey - if pk.IsSubkey { - packetType = packetTypePublicSubkey - } - err = serializeHeader(w, packetType, length) - if err != nil { - return - } - return pk.serializeWithoutHeaders(w) -} - -func (pk *PublicKey) algorithmSpecificByteCount() int { - length := 0 - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - length += int(pk.n.EncodedLength()) - length += int(pk.e.EncodedLength()) - case PubKeyAlgoDSA: - length += int(pk.p.EncodedLength()) - length += int(pk.q.EncodedLength()) - length += int(pk.g.EncodedLength()) - length += int(pk.y.EncodedLength()) - case PubKeyAlgoElGamal: - length += int(pk.p.EncodedLength()) - length += int(pk.g.EncodedLength()) - length += int(pk.y.EncodedLength()) - case PubKeyAlgoECDSA: - length += int(pk.oid.EncodedLength()) - length += int(pk.p.EncodedLength()) - case PubKeyAlgoECDH: - length += int(pk.oid.EncodedLength()) - length += int(pk.p.EncodedLength()) - length += int(pk.kdf.EncodedLength()) - case PubKeyAlgoEdDSA: - length += int(pk.oid.EncodedLength()) - length += int(pk.p.EncodedLength()) - default: - panic("unknown public key algorithm") - } - return length -} - -// serializeWithoutHeaders marshals the PublicKey to w in the form of an -// OpenPGP public key packet, not including the packet header. -func (pk *PublicKey) serializeWithoutHeaders(w io.Writer) (err error) { - t := uint32(pk.CreationTime.Unix()) - if _, err = w.Write([]byte{ - byte(pk.Version), - byte(t >> 24), byte(t >> 16), byte(t >> 8), byte(t), - byte(pk.PubKeyAlgo), - }); err != nil { - return - } - - if pk.Version == 5 { - n := pk.algorithmSpecificByteCount() - if _, err = w.Write([]byte{ - byte(n >> 24), byte(n >> 16), byte(n >> 8), byte(n), - }); err != nil { - return - } - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - if _, err = w.Write(pk.n.EncodedBytes()); err != nil { - return - } - _, err = w.Write(pk.e.EncodedBytes()) - return - case PubKeyAlgoDSA: - if _, err = w.Write(pk.p.EncodedBytes()); err != nil { - return - } - if _, err = w.Write(pk.q.EncodedBytes()); err != nil { - return - } - if _, err = w.Write(pk.g.EncodedBytes()); err != nil { - return - } - _, err = w.Write(pk.y.EncodedBytes()) - return - case PubKeyAlgoElGamal: - if _, err = w.Write(pk.p.EncodedBytes()); err != nil { - return - } - if _, err = w.Write(pk.g.EncodedBytes()); err != nil { - return - } - _, err = w.Write(pk.y.EncodedBytes()) - return - case PubKeyAlgoECDSA: - if _, err = w.Write(pk.oid.EncodedBytes()); err != nil { - return - } - _, err = w.Write(pk.p.EncodedBytes()) - return - case PubKeyAlgoECDH: - if _, err = w.Write(pk.oid.EncodedBytes()); err != nil { - return - } - if _, err = w.Write(pk.p.EncodedBytes()); err != nil { - return - } - _, err = w.Write(pk.kdf.EncodedBytes()) - return - case PubKeyAlgoEdDSA: - if _, err = w.Write(pk.oid.EncodedBytes()); err != nil { - return - } - _, err = w.Write(pk.p.EncodedBytes()) - return - } - return errors.InvalidArgumentError("bad public-key algorithm") -} - -// CanSign returns true iff this public key can generate signatures -func (pk *PublicKey) CanSign() bool { - return pk.PubKeyAlgo != PubKeyAlgoRSAEncryptOnly && pk.PubKeyAlgo != PubKeyAlgoElGamal && pk.PubKeyAlgo != PubKeyAlgoECDH -} - -// VerifySignature returns nil iff sig is a valid signature, made by this -// public key, of the data hashed into signed. signed is mutated by this call. -func (pk *PublicKey) VerifySignature(signed hash.Hash, sig *Signature) (err error) { - if !pk.CanSign() { - return errors.InvalidArgumentError("public key cannot generate signatures") - } - if sig.Version == 5 && (sig.SigType == 0x00 || sig.SigType == 0x01) { - sig.AddMetadataToHashSuffix() - } - signed.Write(sig.HashSuffix) - hashBytes := signed.Sum(nil) - if hashBytes[0] != sig.HashTag[0] || hashBytes[1] != sig.HashTag[1] { - return errors.SignatureError("hash tag doesn't match") - } - - if pk.PubKeyAlgo != sig.PubKeyAlgo { - return errors.InvalidArgumentError("public key and signature use different algorithms") - } - - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - rsaPublicKey, _ := pk.PublicKey.(*rsa.PublicKey) - err = rsa.VerifyPKCS1v15(rsaPublicKey, sig.Hash, hashBytes, padToKeySize(rsaPublicKey, sig.RSASignature.Bytes())) - if err != nil { - return errors.SignatureError("RSA verification failure") - } - return nil - case PubKeyAlgoDSA: - dsaPublicKey, _ := pk.PublicKey.(*dsa.PublicKey) - // Need to truncate hashBytes to match FIPS 186-3 section 4.6. - subgroupSize := (dsaPublicKey.Q.BitLen() + 7) / 8 - if len(hashBytes) > subgroupSize { - hashBytes = hashBytes[:subgroupSize] - } - if !dsa.Verify(dsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.DSASigR.Bytes()), new(big.Int).SetBytes(sig.DSASigS.Bytes())) { - return errors.SignatureError("DSA verification failure") - } - return nil - case PubKeyAlgoECDSA: - ecdsaPublicKey := pk.PublicKey.(*ecdsa.PublicKey) - if !ecdsa.Verify(ecdsaPublicKey, hashBytes, new(big.Int).SetBytes(sig.ECDSASigR.Bytes()), new(big.Int).SetBytes(sig.ECDSASigS.Bytes())) { - return errors.SignatureError("ECDSA verification failure") - } - return nil - case PubKeyAlgoEdDSA: - eddsaPublicKey := pk.PublicKey.(*eddsa.PublicKey) - if !eddsa.Verify(eddsaPublicKey, hashBytes, sig.EdDSASigR.Bytes(), sig.EdDSASigS.Bytes()) { - return errors.SignatureError("EdDSA verification failure") - } - return nil - default: - return errors.SignatureError("Unsupported public key algorithm used in signature") - } -} - -// keySignatureHash returns a Hash of the message that needs to be signed for -// pk to assert a subkey relationship to signed. -func keySignatureHash(pk, signed signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - err = pk.SerializeForHash(h) - if err != nil { - return nil, err - } - - err = signed.SerializeForHash(h) - return -} - -// VerifyKeySignature returns nil iff sig is a valid signature, made by this -// public key, of signed. -func (pk *PublicKey) VerifyKeySignature(signed *PublicKey, sig *Signature) error { - h, err := keySignatureHash(pk, signed, sig.Hash) - if err != nil { - return err - } - if err = pk.VerifySignature(h, sig); err != nil { - return err - } - - if sig.FlagSign { - // Signing subkeys must be cross-signed. See - // https://www.gnupg.org/faq/subkey-cross-certify.html. - if sig.EmbeddedSignature == nil { - return errors.StructuralError("signing subkey is missing cross-signature") - } - // Verify the cross-signature. This is calculated over the same - // data as the main signature, so we cannot just recursively - // call signed.VerifyKeySignature(...) - if h, err = keySignatureHash(pk, signed, sig.EmbeddedSignature.Hash); err != nil { - return errors.StructuralError("error while hashing for cross-signature: " + err.Error()) - } - if err := signed.VerifySignature(h, sig.EmbeddedSignature); err != nil { - return errors.StructuralError("error while verifying cross-signature: " + err.Error()) - } - } - - return nil -} - -func keyRevocationHash(pk signingKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - err = pk.SerializeForHash(h) - - return -} - -// VerifyRevocationSignature returns nil iff sig is a valid signature, made by this -// public key. -func (pk *PublicKey) VerifyRevocationSignature(sig *Signature) (err error) { - h, err := keyRevocationHash(pk, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignature(h, sig) -} - -// VerifySubkeyRevocationSignature returns nil iff sig is a valid subkey revocation signature, -// made by this public key, of signed. -func (pk *PublicKey) VerifySubkeyRevocationSignature(sig *Signature, signed *PublicKey) (err error) { - h, err := keySignatureHash(pk, signed, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignature(h, sig) -} - -// userIdSignatureHash returns a Hash of the message that needs to be signed -// to assert that pk is a valid key for id. -func userIdSignatureHash(id string, pk *PublicKey, hashFunc crypto.Hash) (h hash.Hash, err error) { - if !hashFunc.Available() { - return nil, errors.UnsupportedError("hash function") - } - h = hashFunc.New() - - // RFC 4880, section 5.2.4 - pk.SerializeSignaturePrefix(h) - pk.serializeWithoutHeaders(h) - - var buf [5]byte - buf[0] = 0xb4 - buf[1] = byte(len(id) >> 24) - buf[2] = byte(len(id) >> 16) - buf[3] = byte(len(id) >> 8) - buf[4] = byte(len(id)) - h.Write(buf[:]) - h.Write([]byte(id)) - - return -} - -// VerifyUserIdSignature returns nil iff sig is a valid signature, made by this -// public key, that id is the identity of pub. -func (pk *PublicKey) VerifyUserIdSignature(id string, pub *PublicKey, sig *Signature) (err error) { - h, err := userIdSignatureHash(id, pub, sig.Hash) - if err != nil { - return err - } - return pk.VerifySignature(h, sig) -} - -// KeyIdString returns the public key's fingerprint in capital hex -// (e.g. "6C7EE1B8621CC013"). -func (pk *PublicKey) KeyIdString() string { - return fmt.Sprintf("%X", pk.Fingerprint[12:20]) -} - -// KeyIdShortString returns the short form of public key's fingerprint -// in capital hex, as shown by gpg --list-keys (e.g. "621CC013"). -func (pk *PublicKey) KeyIdShortString() string { - return fmt.Sprintf("%X", pk.Fingerprint[16:20]) -} - -// BitLength returns the bit length for the given public key. -func (pk *PublicKey) BitLength() (bitLength uint16, err error) { - switch pk.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSAEncryptOnly, PubKeyAlgoRSASignOnly: - bitLength = pk.n.BitLength() - case PubKeyAlgoDSA: - bitLength = pk.p.BitLength() - case PubKeyAlgoElGamal: - bitLength = pk.p.BitLength() - case PubKeyAlgoECDSA: - bitLength = pk.p.BitLength() - case PubKeyAlgoECDH: - bitLength = pk.p.BitLength() - case PubKeyAlgoEdDSA: - bitLength = pk.p.BitLength() - default: - err = errors.InvalidArgumentError("bad public-key algorithm") - } - return -} - -// KeyExpired returns whether sig is a self-signature of a key that has -// expired or is created in the future. -func (pk *PublicKey) KeyExpired(sig *Signature, currentTime time.Time) bool { - if pk.CreationTime.After(currentTime) { - return true - } - if sig.KeyLifetimeSecs == nil || *sig.KeyLifetimeSecs == 0 { - return false - } - expiry := pk.CreationTime.Add(time.Duration(*sig.KeyLifetimeSecs) * time.Second) - return currentTime.After(expiry) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key_test_data.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key_test_data.go deleted file mode 100644 index b255f1f6f8..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/public_key_test_data.go +++ /dev/null @@ -1,24 +0,0 @@ -package packet - -const rsaFingerprintHex = "5fb74b1d03b1e3cb31bc2f8aa34d7e18c20c31bb" - -const rsaPkDataHex = "988d044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd0011010001" - -const dsaFingerprintHex = "eece4c094db002103714c63c8e8fbe54062f19ed" - -const dsaPkDataHex = "9901a2044d432f89110400cd581334f0d7a1e1bdc8b9d6d8c0baf68793632735d2bb0903224cbaa1dfbf35a60ee7a13b92643421e1eb41aa8d79bea19a115a677f6b8ba3c7818ce53a6c2a24a1608bd8b8d6e55c5090cbde09dd26e356267465ae25e69ec8bdd57c7bbb2623e4d73336f73a0a9098f7f16da2e25252130fd694c0e8070c55a812a423ae7f00a0ebf50e70c2f19c3520a551bd4b08d30f23530d3d03ff7d0bf4a53a64a09dc5e6e6e35854b7d70c882b0c60293401958b1bd9e40abec3ea05ba87cf64899299d4bd6aa7f459c201d3fbbd6c82004bdc5e8a9eb8082d12054cc90fa9d4ec251a843236a588bf49552441817436c4f43326966fe85447d4e6d0acf8fa1ef0f014730770603ad7634c3088dc52501c237328417c31c89ed70400b2f1a98b0bf42f11fefc430704bebbaa41d9f355600c3facee1e490f64208e0e094ea55e3a598a219a58500bf78ac677b670a14f4e47e9cf8eab4f368cc1ddcaa18cc59309d4cc62dd4f680e73e6cc3e1ce87a84d0925efbcb26c575c093fc42eecf45135fabf6403a25c2016e1774c0484e440a18319072c617cc97ac0a3bb0" - -const ecdsaFingerprintHex = "9892270b38b8980b05c8d56d43fe956c542ca00b" - -const ecdsaPkDataHex = "9893045071c29413052b8104002304230401f4867769cedfa52c325018896245443968e52e51d0c2df8d939949cb5b330f2921711fbee1c9b9dddb95d15cb0255e99badeddda7cc23d9ddcaacbc290969b9f24019375d61c2e4e3b36953a28d8b2bc95f78c3f1d592fb24499be348656a7b17e3963187b4361afe497bc5f9f81213f04069f8e1fb9e6a6290ae295ca1a92b894396cb4" - -const ecdhFingerprintHex = "722354df2475a42164d1d49faa8b938f9a201946" - -const ecdhPkDataHex = "b90073044d53059212052b810400220303042faa84024a20b6735c4897efa5bfb41bf85b7eefeab5ca0cb9ffc8ea04a46acb25534a577694f9e25340a4ab5223a9dd1eda530c8aa2e6718db10d7e672558c7736fe09369ea5739a2a3554bf16d41faa50562f11c6d39bbd5dffb6b9a9ec91803010909" - -const eddsaFingerprintHex = "b2d5e5ec0e6deca6bc8eeeb00907e75e1dd99ad8" - -const eddsaPkDataHex = "98330456e2132b16092b06010401da470f01010740bbda39266affa511a8c2d02edf690fb784b0499c4406185811a163539ef11dc1b41d74657374696e67203c74657374696e674074657374696e672e636f6d3e8879041316080021050256e2132b021b03050b09080702061508090a0b020416020301021e01021780000a09100907e75e1dd99ad86d0c00fe39d2008359352782bc9b61ac382584cd8eff3f57a18c2287e3afeeb05d1f04ba00fe2d0bc1ddf3ff8adb9afa3e7d9287244b4ec567f3db4d60b74a9b5465ed528203" - -// Source: https://sites.google.com/site/brainhub/pgpecckeys#TOC-ECC-NIST-P-384-key -const ecc384PubHex = `99006f044d53059213052b81040022030304f6b8c5aced5b84ef9f4a209db2e4a9dfb70d28cb8c10ecd57674a9fa5a67389942b62d5e51367df4c7bfd3f8e500feecf07ed265a621a8ebbbe53e947ec78c677eba143bd1533c2b350e1c29f82313e1e1108eba063be1e64b10e6950e799c2db42465635f6473615f64685f333834203c6f70656e70677040627261696e6875622e6f72673e8900cb04101309005305024d530592301480000000002000077072656665727265642d656d61696c2d656e636f64696e67407067702e636f6d7067706d696d65040b090807021901051b03000000021602051e010000000415090a08000a0910098033880f54719fca2b0180aa37350968bd5f115afd8ce7bc7b103822152dbff06d0afcda835329510905b98cb469ba208faab87c7412b799e7b633017f58364ea480e8a1a3f253a0c5f22c446e8be9a9fce6210136ee30811abbd49139de28b5bdf8dc36d06ae748579e9ff503b90073044d53059212052b810400220303042faa84024a20b6735c4897efa5bfb41bf85b7eefeab5ca0cb9ffc8ea04a46acb25534a577694f9e25340a4ab5223a9dd1eda530c8aa2e6718db10d7e672558c7736fe09369ea5739a2a3554bf16d41faa50562f11c6d39bbd5dffb6b9a9ec9180301090989008404181309000c05024d530592051b0c000000000a0910098033880f54719f80970180eee7a6d8fcee41ee4f9289df17f9bcf9d955dca25c583b94336f3a2b2d4986dc5cf417b8d2dc86f741a9e1a6d236c0e3017d1c76575458a0cfb93ae8a2b274fcc65ceecd7a91eec83656ba13219969f06945b48c56bd04152c3a0553c5f2f4bd1267` diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/reader.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/reader.go deleted file mode 100644 index 10215fe5f2..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/reader.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "io" - - "github.com/ProtonMail/go-crypto/openpgp/errors" -) - -// Reader reads packets from an io.Reader and allows packets to be 'unread' so -// that they result from the next call to Next. -type Reader struct { - q []Packet - readers []io.Reader -} - -// New io.Readers are pushed when a compressed or encrypted packet is processed -// and recursively treated as a new source of packets. However, a carefully -// crafted packet can trigger an infinite recursive sequence of packets. See -// http://mumble.net/~campbell/misc/pgp-quine -// https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-4402 -// This constant limits the number of recursive packets that may be pushed. -const maxReaders = 32 - -// Next returns the most recently unread Packet, or reads another packet from -// the top-most io.Reader. Unknown packet types are skipped. -func (r *Reader) Next() (p Packet, err error) { - if len(r.q) > 0 { - p = r.q[len(r.q)-1] - r.q = r.q[:len(r.q)-1] - return - } - - for len(r.readers) > 0 { - p, err = Read(r.readers[len(r.readers)-1]) - if err == nil { - return - } - if err == io.EOF { - r.readers = r.readers[:len(r.readers)-1] - continue - } - // TODO: Add strict mode that rejects unknown packets, instead of ignoring them. - if _, ok := err.(errors.UnknownPacketTypeError); ok { - continue - } - if _, ok := err.(errors.UnsupportedError); ok { - switch p.(type) { - case *SymmetricallyEncrypted, *AEADEncrypted, *Compressed, *LiteralData: - return nil, err - } - continue - } - return nil, err - } - - return nil, io.EOF -} - -// Push causes the Reader to start reading from a new io.Reader. When an EOF -// error is seen from the new io.Reader, it is popped and the Reader continues -// to read from the next most recent io.Reader. Push returns a StructuralError -// if pushing the reader would exceed the maximum recursion level, otherwise it -// returns nil. -func (r *Reader) Push(reader io.Reader) (err error) { - if len(r.readers) >= maxReaders { - return errors.StructuralError("too many layers of packets") - } - r.readers = append(r.readers, reader) - return nil -} - -// Unread causes the given Packet to be returned from the next call to Next. -func (r *Reader) Unread(p Packet) { - r.q = append(r.q, p) -} - -func NewReader(r io.Reader) *Reader { - return &Reader{ - q: nil, - readers: []io.Reader{r}, - } -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go deleted file mode 100644 index a37352d911..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/signature.go +++ /dev/null @@ -1,1046 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "bytes" - "crypto" - "crypto/dsa" - "encoding/binary" - "hash" - "io" - "strconv" - "time" - - "github.com/ProtonMail/go-crypto/openpgp/ecdsa" - "github.com/ProtonMail/go-crypto/openpgp/eddsa" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/encoding" - "github.com/ProtonMail/go-crypto/openpgp/s2k" -) - -const ( - // See RFC 4880, section 5.2.3.21 for details. - KeyFlagCertify = 1 << iota - KeyFlagSign - KeyFlagEncryptCommunications - KeyFlagEncryptStorage - KeyFlagSplitKey - KeyFlagAuthenticate - _ - KeyFlagGroupKey -) - -// Signature represents a signature. See RFC 4880, section 5.2. -type Signature struct { - Version int - SigType SignatureType - PubKeyAlgo PublicKeyAlgorithm - Hash crypto.Hash - - // HashSuffix is extra data that is hashed in after the signed data. - HashSuffix []byte - // HashTag contains the first two bytes of the hash for fast rejection - // of bad signed data. - HashTag [2]byte - - // Metadata includes format, filename and time, and is protected by v5 - // signatures of type 0x00 or 0x01. This metadata is included into the hash - // computation; if nil, six 0x00 bytes are used instead. See section 5.2.4. - Metadata *LiteralData - - CreationTime time.Time - - RSASignature encoding.Field - DSASigR, DSASigS encoding.Field - ECDSASigR, ECDSASigS encoding.Field - EdDSASigR, EdDSASigS encoding.Field - - // rawSubpackets contains the unparsed subpackets, in order. - rawSubpackets []outputSubpacket - - // The following are optional so are nil when not included in the - // signature. - - SigLifetimeSecs, KeyLifetimeSecs *uint32 - PreferredSymmetric, PreferredHash, PreferredCompression []uint8 - PreferredCipherSuites [][2]uint8 - IssuerKeyId *uint64 - IssuerFingerprint []byte - SignerUserId *string - IsPrimaryId *bool - - // TrustLevel and TrustAmount can be set by the signer to assert that - // the key is not only valid but also trustworthy at the specified - // level. - // See RFC 4880, section 5.2.3.13 for details. - TrustLevel TrustLevel - TrustAmount TrustAmount - - // TrustRegularExpression can be used in conjunction with trust Signature - // packets to limit the scope of the trust that is extended. - // See RFC 4880, section 5.2.3.14 for details. - TrustRegularExpression *string - - // PolicyURI can be set to the URI of a document that describes the - // policy under which the signature was issued. See RFC 4880, section - // 5.2.3.20 for details. - PolicyURI string - - // FlagsValid is set if any flags were given. See RFC 4880, section - // 5.2.3.21 for details. - FlagsValid bool - FlagCertify, FlagSign, FlagEncryptCommunications, FlagEncryptStorage, FlagSplitKey, FlagAuthenticate, FlagGroupKey bool - - // RevocationReason is set if this signature has been revoked. - // See RFC 4880, section 5.2.3.23 for details. - RevocationReason *ReasonForRevocation - RevocationReasonText string - - // In a self-signature, these flags are set there is a features subpacket - // indicating that the issuer implementation supports these features - // see https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh#features-subpacket - SEIPDv1, SEIPDv2 bool - - // EmbeddedSignature, if non-nil, is a signature of the parent key, by - // this key. This prevents an attacker from claiming another's signing - // subkey as their own. - EmbeddedSignature *Signature - - outSubpackets []outputSubpacket -} - -func (sig *Signature) parse(r io.Reader) (err error) { - // RFC 4880, section 5.2.3 - var buf [5]byte - _, err = readFull(r, buf[:1]) - if err != nil { - return - } - if buf[0] != 4 && buf[0] != 5 { - err = errors.UnsupportedError("signature packet version " + strconv.Itoa(int(buf[0]))) - return - } - sig.Version = int(buf[0]) - _, err = readFull(r, buf[:5]) - if err != nil { - return - } - sig.SigType = SignatureType(buf[0]) - sig.PubKeyAlgo = PublicKeyAlgorithm(buf[1]) - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly, PubKeyAlgoDSA, PubKeyAlgoECDSA, PubKeyAlgoEdDSA: - default: - err = errors.UnsupportedError("public key algorithm " + strconv.Itoa(int(sig.PubKeyAlgo))) - return - } - - var ok bool - sig.Hash, ok = s2k.HashIdToHash(buf[2]) - if !ok { - return errors.UnsupportedError("hash function " + strconv.Itoa(int(buf[2]))) - } - - hashedSubpacketsLength := int(buf[3])<<8 | int(buf[4]) - hashedSubpackets := make([]byte, hashedSubpacketsLength) - _, err = readFull(r, hashedSubpackets) - if err != nil { - return - } - sig.buildHashSuffix(hashedSubpackets) - err = parseSignatureSubpackets(sig, hashedSubpackets, true) - if err != nil { - return - } - - _, err = readFull(r, buf[:2]) - if err != nil { - return - } - unhashedSubpacketsLength := int(buf[0])<<8 | int(buf[1]) - unhashedSubpackets := make([]byte, unhashedSubpacketsLength) - _, err = readFull(r, unhashedSubpackets) - if err != nil { - return - } - err = parseSignatureSubpackets(sig, unhashedSubpackets, false) - if err != nil { - return - } - - _, err = readFull(r, sig.HashTag[:2]) - if err != nil { - return - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sig.RSASignature = new(encoding.MPI) - _, err = sig.RSASignature.ReadFrom(r) - case PubKeyAlgoDSA: - sig.DSASigR = new(encoding.MPI) - if _, err = sig.DSASigR.ReadFrom(r); err != nil { - return - } - - sig.DSASigS = new(encoding.MPI) - _, err = sig.DSASigS.ReadFrom(r) - case PubKeyAlgoECDSA: - sig.ECDSASigR = new(encoding.MPI) - if _, err = sig.ECDSASigR.ReadFrom(r); err != nil { - return - } - - sig.ECDSASigS = new(encoding.MPI) - _, err = sig.ECDSASigS.ReadFrom(r) - case PubKeyAlgoEdDSA: - sig.EdDSASigR = new(encoding.MPI) - if _, err = sig.EdDSASigR.ReadFrom(r); err != nil { - return - } - - sig.EdDSASigS = new(encoding.MPI) - if _, err = sig.EdDSASigS.ReadFrom(r); err != nil { - return - } - default: - panic("unreachable") - } - return -} - -// parseSignatureSubpackets parses subpackets of the main signature packet. See -// RFC 4880, section 5.2.3.1. -func parseSignatureSubpackets(sig *Signature, subpackets []byte, isHashed bool) (err error) { - for len(subpackets) > 0 { - subpackets, err = parseSignatureSubpacket(sig, subpackets, isHashed) - if err != nil { - return - } - } - - if sig.CreationTime.IsZero() { - err = errors.StructuralError("no creation time in signature") - } - - return -} - -type signatureSubpacketType uint8 - -const ( - creationTimeSubpacket signatureSubpacketType = 2 - signatureExpirationSubpacket signatureSubpacketType = 3 - trustSubpacket signatureSubpacketType = 5 - regularExpressionSubpacket signatureSubpacketType = 6 - keyExpirationSubpacket signatureSubpacketType = 9 - prefSymmetricAlgosSubpacket signatureSubpacketType = 11 - issuerSubpacket signatureSubpacketType = 16 - prefHashAlgosSubpacket signatureSubpacketType = 21 - prefCompressionSubpacket signatureSubpacketType = 22 - primaryUserIdSubpacket signatureSubpacketType = 25 - policyUriSubpacket signatureSubpacketType = 26 - keyFlagsSubpacket signatureSubpacketType = 27 - signerUserIdSubpacket signatureSubpacketType = 28 - reasonForRevocationSubpacket signatureSubpacketType = 29 - featuresSubpacket signatureSubpacketType = 30 - embeddedSignatureSubpacket signatureSubpacketType = 32 - issuerFingerprintSubpacket signatureSubpacketType = 33 - prefCipherSuitesSubpacket signatureSubpacketType = 39 -) - -// parseSignatureSubpacket parses a single subpacket. len(subpacket) is >= 1. -func parseSignatureSubpacket(sig *Signature, subpacket []byte, isHashed bool) (rest []byte, err error) { - // RFC 4880, section 5.2.3.1 - var ( - length uint32 - packetType signatureSubpacketType - isCritical bool - ) - switch { - case subpacket[0] < 192: - length = uint32(subpacket[0]) - subpacket = subpacket[1:] - case subpacket[0] < 255: - if len(subpacket) < 2 { - goto Truncated - } - length = uint32(subpacket[0]-192)<<8 + uint32(subpacket[1]) + 192 - subpacket = subpacket[2:] - default: - if len(subpacket) < 5 { - goto Truncated - } - length = uint32(subpacket[1])<<24 | - uint32(subpacket[2])<<16 | - uint32(subpacket[3])<<8 | - uint32(subpacket[4]) - subpacket = subpacket[5:] - } - if length > uint32(len(subpacket)) { - goto Truncated - } - rest = subpacket[length:] - subpacket = subpacket[:length] - if len(subpacket) == 0 { - err = errors.StructuralError("zero length signature subpacket") - return - } - packetType = signatureSubpacketType(subpacket[0] & 0x7f) - isCritical = subpacket[0]&0x80 == 0x80 - subpacket = subpacket[1:] - sig.rawSubpackets = append(sig.rawSubpackets, outputSubpacket{isHashed, packetType, isCritical, subpacket}) - switch packetType { - case creationTimeSubpacket: - if !isHashed { - err = errors.StructuralError("signature creation time in non-hashed area") - return - } - if len(subpacket) != 4 { - err = errors.StructuralError("signature creation time not four bytes") - return - } - t := binary.BigEndian.Uint32(subpacket) - sig.CreationTime = time.Unix(int64(t), 0) - case signatureExpirationSubpacket: - // Signature expiration time, section 5.2.3.10 - if !isHashed { - return - } - if len(subpacket) != 4 { - err = errors.StructuralError("expiration subpacket with bad length") - return - } - sig.SigLifetimeSecs = new(uint32) - *sig.SigLifetimeSecs = binary.BigEndian.Uint32(subpacket) - case trustSubpacket: - // Trust level and amount, section 5.2.3.13 - sig.TrustLevel = TrustLevel(subpacket[0]) - sig.TrustAmount = TrustAmount(subpacket[1]) - case regularExpressionSubpacket: - // Trust regular expression, section 5.2.3.14 - // RFC specifies the string should be null-terminated; remove a null byte from the end - if subpacket[len(subpacket)-1] != 0x00 { - err = errors.StructuralError("expected regular expression to be null-terminated") - return - } - trustRegularExpression := string(subpacket[:len(subpacket)-1]) - sig.TrustRegularExpression = &trustRegularExpression - case keyExpirationSubpacket: - // Key expiration time, section 5.2.3.6 - if !isHashed { - return - } - if len(subpacket) != 4 { - err = errors.StructuralError("key expiration subpacket with bad length") - return - } - sig.KeyLifetimeSecs = new(uint32) - *sig.KeyLifetimeSecs = binary.BigEndian.Uint32(subpacket) - case prefSymmetricAlgosSubpacket: - // Preferred symmetric algorithms, section 5.2.3.7 - if !isHashed { - return - } - sig.PreferredSymmetric = make([]byte, len(subpacket)) - copy(sig.PreferredSymmetric, subpacket) - case issuerSubpacket: - if sig.Version > 4 { - err = errors.StructuralError("issuer subpacket found in v5 key") - } - // Issuer, section 5.2.3.5 - if len(subpacket) != 8 { - err = errors.StructuralError("issuer subpacket with bad length") - return - } - sig.IssuerKeyId = new(uint64) - *sig.IssuerKeyId = binary.BigEndian.Uint64(subpacket) - case prefHashAlgosSubpacket: - // Preferred hash algorithms, section 5.2.3.8 - if !isHashed { - return - } - sig.PreferredHash = make([]byte, len(subpacket)) - copy(sig.PreferredHash, subpacket) - case prefCompressionSubpacket: - // Preferred compression algorithms, section 5.2.3.9 - if !isHashed { - return - } - sig.PreferredCompression = make([]byte, len(subpacket)) - copy(sig.PreferredCompression, subpacket) - case primaryUserIdSubpacket: - // Primary User ID, section 5.2.3.19 - if !isHashed { - return - } - if len(subpacket) != 1 { - err = errors.StructuralError("primary user id subpacket with bad length") - return - } - sig.IsPrimaryId = new(bool) - if subpacket[0] > 0 { - *sig.IsPrimaryId = true - } - case keyFlagsSubpacket: - // Key flags, section 5.2.3.21 - if !isHashed { - return - } - if len(subpacket) == 0 { - err = errors.StructuralError("empty key flags subpacket") - return - } - sig.FlagsValid = true - if subpacket[0]&KeyFlagCertify != 0 { - sig.FlagCertify = true - } - if subpacket[0]&KeyFlagSign != 0 { - sig.FlagSign = true - } - if subpacket[0]&KeyFlagEncryptCommunications != 0 { - sig.FlagEncryptCommunications = true - } - if subpacket[0]&KeyFlagEncryptStorage != 0 { - sig.FlagEncryptStorage = true - } - if subpacket[0]&KeyFlagSplitKey != 0 { - sig.FlagSplitKey = true - } - if subpacket[0]&KeyFlagAuthenticate != 0 { - sig.FlagAuthenticate = true - } - if subpacket[0]&KeyFlagGroupKey != 0 { - sig.FlagGroupKey = true - } - case signerUserIdSubpacket: - userId := string(subpacket) - sig.SignerUserId = &userId - case reasonForRevocationSubpacket: - // Reason For Revocation, section 5.2.3.23 - if !isHashed { - return - } - if len(subpacket) == 0 { - err = errors.StructuralError("empty revocation reason subpacket") - return - } - sig.RevocationReason = new(ReasonForRevocation) - *sig.RevocationReason = ReasonForRevocation(subpacket[0]) - sig.RevocationReasonText = string(subpacket[1:]) - case featuresSubpacket: - // Features subpacket, section 5.2.3.24 specifies a very general - // mechanism for OpenPGP implementations to signal support for new - // features. - if !isHashed { - return - } - if len(subpacket) > 0 { - if subpacket[0]&0x01 != 0 { - sig.SEIPDv1 = true - } - // 0x02 and 0x04 are reserved - if subpacket[0]&0x08 != 0 { - sig.SEIPDv2 = true - } - } - case embeddedSignatureSubpacket: - // Only usage is in signatures that cross-certify - // signing subkeys. section 5.2.3.26 describes the - // format, with its usage described in section 11.1 - if sig.EmbeddedSignature != nil { - err = errors.StructuralError("Cannot have multiple embedded signatures") - return - } - sig.EmbeddedSignature = new(Signature) - // Embedded signatures are required to be v4 signatures see - // section 12.1. However, we only parse v4 signatures in this - // file anyway. - if err := sig.EmbeddedSignature.parse(bytes.NewBuffer(subpacket)); err != nil { - return nil, err - } - if sigType := sig.EmbeddedSignature.SigType; sigType != SigTypePrimaryKeyBinding { - return nil, errors.StructuralError("cross-signature has unexpected type " + strconv.Itoa(int(sigType))) - } - case policyUriSubpacket: - // Policy URI, section 5.2.3.20 - if !isHashed { - return - } - sig.PolicyURI = string(subpacket) - case issuerFingerprintSubpacket: - v, l := subpacket[0], len(subpacket[1:]) - if v == 5 && l != 32 || v != 5 && l != 20 { - return nil, errors.StructuralError("bad fingerprint length") - } - sig.IssuerFingerprint = make([]byte, l) - copy(sig.IssuerFingerprint, subpacket[1:]) - sig.IssuerKeyId = new(uint64) - if v == 5 { - *sig.IssuerKeyId = binary.BigEndian.Uint64(subpacket[1:9]) - } else { - *sig.IssuerKeyId = binary.BigEndian.Uint64(subpacket[13:21]) - } - case prefCipherSuitesSubpacket: - // Preferred AEAD cipher suites - // See https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#name-preferred-aead-ciphersuites - if !isHashed { - return - } - - if len(subpacket) % 2 != 0 { - err = errors.StructuralError("invalid aead cipher suite length") - return - } - - sig.PreferredCipherSuites = make([][2]byte, len(subpacket) / 2) - - for i := 0; i < len(subpacket) / 2; i++ { - sig.PreferredCipherSuites[i] = [2]uint8{subpacket[2*i], subpacket[2*i+1]} - } - default: - if isCritical { - err = errors.UnsupportedError("unknown critical signature subpacket type " + strconv.Itoa(int(packetType))) - return - } - } - return - -Truncated: - err = errors.StructuralError("signature subpacket truncated") - return -} - -// subpacketLengthLength returns the length, in bytes, of an encoded length value. -func subpacketLengthLength(length int) int { - if length < 192 { - return 1 - } - if length < 16320 { - return 2 - } - return 5 -} - -func (sig *Signature) CheckKeyIdOrFingerprint(pk *PublicKey) bool { - if sig.IssuerFingerprint != nil && len(sig.IssuerFingerprint) >= 20 { - return bytes.Equal(sig.IssuerFingerprint, pk.Fingerprint) - } - return sig.IssuerKeyId != nil && *sig.IssuerKeyId == pk.KeyId -} - -// serializeSubpacketLength marshals the given length into to. -func serializeSubpacketLength(to []byte, length int) int { - // RFC 4880, Section 4.2.2. - if length < 192 { - to[0] = byte(length) - return 1 - } - if length < 16320 { - length -= 192 - to[0] = byte((length >> 8) + 192) - to[1] = byte(length) - return 2 - } - to[0] = 255 - to[1] = byte(length >> 24) - to[2] = byte(length >> 16) - to[3] = byte(length >> 8) - to[4] = byte(length) - return 5 -} - -// subpacketsLength returns the serialized length, in bytes, of the given -// subpackets. -func subpacketsLength(subpackets []outputSubpacket, hashed bool) (length int) { - for _, subpacket := range subpackets { - if subpacket.hashed == hashed { - length += subpacketLengthLength(len(subpacket.contents) + 1) - length += 1 // type byte - length += len(subpacket.contents) - } - } - return -} - -// serializeSubpackets marshals the given subpackets into to. -func serializeSubpackets(to []byte, subpackets []outputSubpacket, hashed bool) { - for _, subpacket := range subpackets { - if subpacket.hashed == hashed { - n := serializeSubpacketLength(to, len(subpacket.contents)+1) - to[n] = byte(subpacket.subpacketType) - if subpacket.isCritical { - to[n] |= 0x80 - } - to = to[1+n:] - n = copy(to, subpacket.contents) - to = to[n:] - } - } - return -} - -// SigExpired returns whether sig is a signature that has expired or is created -// in the future. -func (sig *Signature) SigExpired(currentTime time.Time) bool { - if sig.CreationTime.After(currentTime) { - return true - } - if sig.SigLifetimeSecs == nil || *sig.SigLifetimeSecs == 0 { - return false - } - expiry := sig.CreationTime.Add(time.Duration(*sig.SigLifetimeSecs) * time.Second) - return currentTime.After(expiry) -} - -// buildHashSuffix constructs the HashSuffix member of sig in preparation for signing. -func (sig *Signature) buildHashSuffix(hashedSubpackets []byte) (err error) { - hash, ok := s2k.HashToHashId(sig.Hash) - if !ok { - sig.HashSuffix = nil - return errors.InvalidArgumentError("hash cannot be represented in OpenPGP: " + strconv.Itoa(int(sig.Hash))) - } - - hashedFields := bytes.NewBuffer([]byte{ - uint8(sig.Version), - uint8(sig.SigType), - uint8(sig.PubKeyAlgo), - uint8(hash), - uint8(len(hashedSubpackets) >> 8), - uint8(len(hashedSubpackets)), - }) - hashedFields.Write(hashedSubpackets) - - var l uint64 = uint64(6 + len(hashedSubpackets)) - if sig.Version == 5 { - hashedFields.Write([]byte{0x05, 0xff}) - hashedFields.Write([]byte{ - uint8(l >> 56), uint8(l >> 48), uint8(l >> 40), uint8(l >> 32), - uint8(l >> 24), uint8(l >> 16), uint8(l >> 8), uint8(l), - }) - } else { - hashedFields.Write([]byte{0x04, 0xff}) - hashedFields.Write([]byte{ - uint8(l >> 24), uint8(l >> 16), uint8(l >> 8), uint8(l), - }) - } - sig.HashSuffix = make([]byte, hashedFields.Len()) - copy(sig.HashSuffix, hashedFields.Bytes()) - return -} - -func (sig *Signature) signPrepareHash(h hash.Hash) (digest []byte, err error) { - hashedSubpacketsLen := subpacketsLength(sig.outSubpackets, true) - hashedSubpackets := make([]byte, hashedSubpacketsLen) - serializeSubpackets(hashedSubpackets, sig.outSubpackets, true) - err = sig.buildHashSuffix(hashedSubpackets) - if err != nil { - return - } - if sig.Version == 5 && (sig.SigType == 0x00 || sig.SigType == 0x01) { - sig.AddMetadataToHashSuffix() - } - - h.Write(sig.HashSuffix) - digest = h.Sum(nil) - copy(sig.HashTag[:], digest) - return -} - -// Sign signs a message with a private key. The hash, h, must contain -// the hash of the message to be signed and will be mutated by this function. -// On success, the signature is stored in sig. Call Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) Sign(h hash.Hash, priv *PrivateKey, config *Config) (err error) { - if priv.Dummy() { - return errors.ErrDummyPrivateKey("dummy key found") - } - sig.Version = priv.PublicKey.Version - sig.IssuerFingerprint = priv.PublicKey.Fingerprint - sig.outSubpackets, err = sig.buildSubpackets(priv.PublicKey) - if err != nil { - return err - } - digest, err := sig.signPrepareHash(h) - if err != nil { - return - } - switch priv.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - // supports both *rsa.PrivateKey and crypto.Signer - sigdata, err := priv.PrivateKey.(crypto.Signer).Sign(config.Random(), digest, sig.Hash) - if err == nil { - sig.RSASignature = encoding.NewMPI(sigdata) - } - case PubKeyAlgoDSA: - dsaPriv := priv.PrivateKey.(*dsa.PrivateKey) - - // Need to truncate hashBytes to match FIPS 186-3 section 4.6. - subgroupSize := (dsaPriv.Q.BitLen() + 7) / 8 - if len(digest) > subgroupSize { - digest = digest[:subgroupSize] - } - r, s, err := dsa.Sign(config.Random(), dsaPriv, digest) - if err == nil { - sig.DSASigR = new(encoding.MPI).SetBig(r) - sig.DSASigS = new(encoding.MPI).SetBig(s) - } - case PubKeyAlgoECDSA: - sk := priv.PrivateKey.(*ecdsa.PrivateKey) - r, s, err := ecdsa.Sign(config.Random(), sk, digest) - - if err == nil { - sig.ECDSASigR = new(encoding.MPI).SetBig(r) - sig.ECDSASigS = new(encoding.MPI).SetBig(s) - } - case PubKeyAlgoEdDSA: - sk := priv.PrivateKey.(*eddsa.PrivateKey) - r, s, err := eddsa.Sign(sk, digest) - if err == nil { - sig.EdDSASigR = encoding.NewMPI(r) - sig.EdDSASigS = encoding.NewMPI(s) - } - default: - err = errors.UnsupportedError("public key algorithm: " + strconv.Itoa(int(sig.PubKeyAlgo))) - } - - return -} - -// SignUserId computes a signature from priv, asserting that pub is a valid -// key for the identity id. On success, the signature is stored in sig. Call -// Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) SignUserId(id string, pub *PublicKey, priv *PrivateKey, config *Config) error { - if priv.Dummy() { - return errors.ErrDummyPrivateKey("dummy key found") - } - h, err := userIdSignatureHash(id, pub, sig.Hash) - if err != nil { - return err - } - return sig.Sign(h, priv, config) -} - -// CrossSignKey computes a signature from signingKey on pub hashed using hashKey. On success, -// the signature is stored in sig. Call Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) CrossSignKey(pub *PublicKey, hashKey *PublicKey, signingKey *PrivateKey, - config *Config) error { - h, err := keySignatureHash(hashKey, pub, sig.Hash) - if err != nil { - return err - } - return sig.Sign(h, signingKey, config) -} - -// SignKey computes a signature from priv, asserting that pub is a subkey. On -// success, the signature is stored in sig. Call Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) SignKey(pub *PublicKey, priv *PrivateKey, config *Config) error { - if priv.Dummy() { - return errors.ErrDummyPrivateKey("dummy key found") - } - h, err := keySignatureHash(&priv.PublicKey, pub, sig.Hash) - if err != nil { - return err - } - return sig.Sign(h, priv, config) -} - -// RevokeKey computes a revocation signature of pub using priv. On success, the signature is -// stored in sig. Call Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) RevokeKey(pub *PublicKey, priv *PrivateKey, config *Config) error { - h, err := keyRevocationHash(pub, sig.Hash) - if err != nil { - return err - } - return sig.Sign(h, priv, config) -} - -// RevokeSubkey computes a subkey revocation signature of pub using priv. -// On success, the signature is stored in sig. Call Serialize to write it out. -// If config is nil, sensible defaults will be used. -func (sig *Signature) RevokeSubkey(pub *PublicKey, priv *PrivateKey, config *Config) error { - // Identical to a subkey binding signature - return sig.SignKey(pub, priv, config) -} - -// Serialize marshals sig to w. Sign, SignUserId or SignKey must have been -// called first. -func (sig *Signature) Serialize(w io.Writer) (err error) { - if len(sig.outSubpackets) == 0 { - sig.outSubpackets = sig.rawSubpackets - } - if sig.RSASignature == nil && sig.DSASigR == nil && sig.ECDSASigR == nil && sig.EdDSASigR == nil { - return errors.InvalidArgumentError("Signature: need to call Sign, SignUserId or SignKey before Serialize") - } - - sigLength := 0 - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - sigLength = int(sig.RSASignature.EncodedLength()) - case PubKeyAlgoDSA: - sigLength = int(sig.DSASigR.EncodedLength()) - sigLength += int(sig.DSASigS.EncodedLength()) - case PubKeyAlgoECDSA: - sigLength = int(sig.ECDSASigR.EncodedLength()) - sigLength += int(sig.ECDSASigS.EncodedLength()) - case PubKeyAlgoEdDSA: - sigLength = int(sig.EdDSASigR.EncodedLength()) - sigLength += int(sig.EdDSASigS.EncodedLength()) - default: - panic("impossible") - } - - unhashedSubpacketsLen := subpacketsLength(sig.outSubpackets, false) - length := len(sig.HashSuffix) - 6 /* trailer not included */ + - 2 /* length of unhashed subpackets */ + unhashedSubpacketsLen + - 2 /* hash tag */ + sigLength - if sig.Version == 5 { - length -= 4 // eight-octet instead of four-octet big endian - } - err = serializeHeader(w, packetTypeSignature, length) - if err != nil { - return - } - err = sig.serializeBody(w) - if err != nil { - return err - } - return -} - -func (sig *Signature) serializeBody(w io.Writer) (err error) { - hashedSubpacketsLen := uint16(uint16(sig.HashSuffix[4])<<8) | uint16(sig.HashSuffix[5]) - fields := sig.HashSuffix[:6+hashedSubpacketsLen] - _, err = w.Write(fields) - if err != nil { - return - } - - unhashedSubpacketsLen := subpacketsLength(sig.outSubpackets, false) - unhashedSubpackets := make([]byte, 2+unhashedSubpacketsLen) - unhashedSubpackets[0] = byte(unhashedSubpacketsLen >> 8) - unhashedSubpackets[1] = byte(unhashedSubpacketsLen) - serializeSubpackets(unhashedSubpackets[2:], sig.outSubpackets, false) - - _, err = w.Write(unhashedSubpackets) - if err != nil { - return - } - _, err = w.Write(sig.HashTag[:]) - if err != nil { - return - } - - switch sig.PubKeyAlgo { - case PubKeyAlgoRSA, PubKeyAlgoRSASignOnly: - _, err = w.Write(sig.RSASignature.EncodedBytes()) - case PubKeyAlgoDSA: - if _, err = w.Write(sig.DSASigR.EncodedBytes()); err != nil { - return - } - _, err = w.Write(sig.DSASigS.EncodedBytes()) - case PubKeyAlgoECDSA: - if _, err = w.Write(sig.ECDSASigR.EncodedBytes()); err != nil { - return - } - _, err = w.Write(sig.ECDSASigS.EncodedBytes()) - case PubKeyAlgoEdDSA: - if _, err = w.Write(sig.EdDSASigR.EncodedBytes()); err != nil { - return - } - _, err = w.Write(sig.EdDSASigS.EncodedBytes()) - default: - panic("impossible") - } - return -} - -// outputSubpacket represents a subpacket to be marshaled. -type outputSubpacket struct { - hashed bool // true if this subpacket is in the hashed area. - subpacketType signatureSubpacketType - isCritical bool - contents []byte -} - -func (sig *Signature) buildSubpackets(issuer PublicKey) (subpackets []outputSubpacket, err error) { - creationTime := make([]byte, 4) - binary.BigEndian.PutUint32(creationTime, uint32(sig.CreationTime.Unix())) - subpackets = append(subpackets, outputSubpacket{true, creationTimeSubpacket, false, creationTime}) - - if sig.IssuerKeyId != nil && sig.Version == 4 { - keyId := make([]byte, 8) - binary.BigEndian.PutUint64(keyId, *sig.IssuerKeyId) - subpackets = append(subpackets, outputSubpacket{true, issuerSubpacket, true, keyId}) - } - if sig.IssuerFingerprint != nil { - contents := append([]uint8{uint8(issuer.Version)}, sig.IssuerFingerprint...) - subpackets = append(subpackets, outputSubpacket{true, issuerFingerprintSubpacket, sig.Version == 5, contents}) - } - if sig.SignerUserId != nil { - subpackets = append(subpackets, outputSubpacket{true, signerUserIdSubpacket, false, []byte(*sig.SignerUserId)}) - } - if sig.SigLifetimeSecs != nil && *sig.SigLifetimeSecs != 0 { - sigLifetime := make([]byte, 4) - binary.BigEndian.PutUint32(sigLifetime, *sig.SigLifetimeSecs) - subpackets = append(subpackets, outputSubpacket{true, signatureExpirationSubpacket, true, sigLifetime}) - } - - // Key flags may only appear in self-signatures or certification signatures. - - if sig.FlagsValid { - var flags byte - if sig.FlagCertify { - flags |= KeyFlagCertify - } - if sig.FlagSign { - flags |= KeyFlagSign - } - if sig.FlagEncryptCommunications { - flags |= KeyFlagEncryptCommunications - } - if sig.FlagEncryptStorage { - flags |= KeyFlagEncryptStorage - } - if sig.FlagSplitKey { - flags |= KeyFlagSplitKey - } - if sig.FlagAuthenticate { - flags |= KeyFlagAuthenticate - } - if sig.FlagGroupKey { - flags |= KeyFlagGroupKey - } - subpackets = append(subpackets, outputSubpacket{true, keyFlagsSubpacket, false, []byte{flags}}) - } - - // The following subpackets may only appear in self-signatures. - - var features = byte(0x00) - if sig.SEIPDv1 { - features |= 0x01 - } - if sig.SEIPDv2 { - features |= 0x08 - } - - if features != 0x00 { - subpackets = append(subpackets, outputSubpacket{true, featuresSubpacket, false, []byte{features}}) - } - - if sig.TrustLevel != 0 { - subpackets = append(subpackets, outputSubpacket{true, trustSubpacket, true, []byte{byte(sig.TrustLevel), byte(sig.TrustAmount)}}) - } - - if sig.TrustRegularExpression != nil { - // RFC specifies the string should be null-terminated; add a null byte to the end - subpackets = append(subpackets, outputSubpacket{true, regularExpressionSubpacket, true, []byte(*sig.TrustRegularExpression + "\000")}) - } - - if sig.KeyLifetimeSecs != nil && *sig.KeyLifetimeSecs != 0 { - keyLifetime := make([]byte, 4) - binary.BigEndian.PutUint32(keyLifetime, *sig.KeyLifetimeSecs) - subpackets = append(subpackets, outputSubpacket{true, keyExpirationSubpacket, true, keyLifetime}) - } - - if sig.IsPrimaryId != nil && *sig.IsPrimaryId { - subpackets = append(subpackets, outputSubpacket{true, primaryUserIdSubpacket, false, []byte{1}}) - } - - if len(sig.PreferredSymmetric) > 0 { - subpackets = append(subpackets, outputSubpacket{true, prefSymmetricAlgosSubpacket, false, sig.PreferredSymmetric}) - } - - if len(sig.PreferredHash) > 0 { - subpackets = append(subpackets, outputSubpacket{true, prefHashAlgosSubpacket, false, sig.PreferredHash}) - } - - if len(sig.PreferredCompression) > 0 { - subpackets = append(subpackets, outputSubpacket{true, prefCompressionSubpacket, false, sig.PreferredCompression}) - } - - if len(sig.PolicyURI) > 0 { - subpackets = append(subpackets, outputSubpacket{true, policyUriSubpacket, false, []uint8(sig.PolicyURI)}) - } - - if len(sig.PreferredCipherSuites) > 0 { - serialized := make([]byte, len(sig.PreferredCipherSuites)*2) - for i, cipherSuite := range sig.PreferredCipherSuites { - serialized[2*i] = cipherSuite[0] - serialized[2*i+1] = cipherSuite[1] - } - subpackets = append(subpackets, outputSubpacket{true, prefCipherSuitesSubpacket, false, serialized}) - } - - // Revocation reason appears only in revocation signatures and is serialized as per section 5.2.3.23. - if sig.RevocationReason != nil { - subpackets = append(subpackets, outputSubpacket{true, reasonForRevocationSubpacket, true, - append([]uint8{uint8(*sig.RevocationReason)}, []uint8(sig.RevocationReasonText)...)}) - } - - // EmbeddedSignature appears only in subkeys capable of signing and is serialized as per section 5.2.3.26. - if sig.EmbeddedSignature != nil { - var buf bytes.Buffer - err = sig.EmbeddedSignature.serializeBody(&buf) - if err != nil { - return - } - subpackets = append(subpackets, outputSubpacket{true, embeddedSignatureSubpacket, true, buf.Bytes()}) - } - - return -} - -// AddMetadataToHashSuffix modifies the current hash suffix to include metadata -// (format, filename, and time). Version 5 keys protect this data including it -// in the hash computation. See section 5.2.4. -func (sig *Signature) AddMetadataToHashSuffix() { - if sig == nil || sig.Version != 5 { - return - } - if sig.SigType != 0x00 && sig.SigType != 0x01 { - return - } - lit := sig.Metadata - if lit == nil { - // This will translate into six 0x00 bytes. - lit = &LiteralData{} - } - - // Extract the current byte count - n := sig.HashSuffix[len(sig.HashSuffix)-8:] - l := uint64( - uint64(n[0])<<56 | uint64(n[1])<<48 | uint64(n[2])<<40 | uint64(n[3])<<32 | - uint64(n[4])<<24 | uint64(n[5])<<16 | uint64(n[6])<<8 | uint64(n[7])) - - suffix := bytes.NewBuffer(nil) - suffix.Write(sig.HashSuffix[:l]) - - // Add the metadata - var buf [4]byte - buf[0] = lit.Format - fileName := lit.FileName - if len(lit.FileName) > 255 { - fileName = fileName[:255] - } - buf[1] = byte(len(fileName)) - suffix.Write(buf[:2]) - suffix.Write([]byte(lit.FileName)) - binary.BigEndian.PutUint32(buf[:], lit.Time) - suffix.Write(buf[:]) - - // Update the counter and restore trailing bytes - l = uint64(suffix.Len()) - suffix.Write([]byte{0x05, 0xff}) - suffix.Write([]byte{ - uint8(l >> 56), uint8(l >> 48), uint8(l >> 40), uint8(l >> 32), - uint8(l >> 24), uint8(l >> 16), uint8(l >> 8), uint8(l), - }) - sig.HashSuffix = suffix.Bytes() -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetric_key_encrypted.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetric_key_encrypted.go deleted file mode 100644 index 19f60f5f35..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetric_key_encrypted.go +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "bytes" - "crypto/cipher" - "crypto/sha256" - "io" - "strconv" - - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/s2k" - "golang.org/x/crypto/hkdf" -) - -// This is the largest session key that we'll support. Since at most 256-bit cipher -// is supported in OpenPGP, this is large enough to contain also the auth tag. -const maxSessionKeySizeInBytes = 64 - -// SymmetricKeyEncrypted represents a passphrase protected session key. See RFC -// 4880, section 5.3. -type SymmetricKeyEncrypted struct { - Version int - CipherFunc CipherFunction - Mode AEADMode - s2k func(out, in []byte) - iv []byte - encryptedKey []byte // Contains also the authentication tag for AEAD -} - -// parse parses an SymmetricKeyEncrypted packet as specified in -// https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#name-symmetric-key-encrypted-ses -func (ske *SymmetricKeyEncrypted) parse(r io.Reader) error { - var buf [1]byte - - // Version - if _, err := readFull(r, buf[:]); err != nil { - return err - } - ske.Version = int(buf[0]) - if ske.Version != 4 && ske.Version != 5 { - return errors.UnsupportedError("unknown SymmetricKeyEncrypted version") - } - - if ske.Version == 5 { - // Scalar octet count - if _, err := readFull(r, buf[:]); err != nil { - return err - } - } - - // Cipher function - if _, err := readFull(r, buf[:]); err != nil { - return err - } - ske.CipherFunc = CipherFunction(buf[0]) - if ske.CipherFunc.KeySize() == 0 { - return errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(buf[0]))) - } - - if ske.Version == 5 { - // AEAD mode - if _, err := readFull(r, buf[:]); err != nil { - return errors.StructuralError("cannot read AEAD octet from packet") - } - ske.Mode = AEADMode(buf[0]) - - // Scalar octet count - if _, err := readFull(r, buf[:]); err != nil { - return err - } - } - - var err error - if ske.s2k, err = s2k.Parse(r); err != nil { - if _, ok := err.(errors.ErrDummyPrivateKey); ok { - return errors.UnsupportedError("missing key GNU extension in session key") - } - return err - } - - if ske.Version == 5 { - // AEAD IV - iv := make([]byte, ske.Mode.IvLength()) - _, err := readFull(r, iv) - if err != nil { - return errors.StructuralError("cannot read AEAD IV") - } - - ske.iv = iv - } - - encryptedKey := make([]byte, maxSessionKeySizeInBytes) - // The session key may follow. We just have to try and read to find - // out. If it exists then we limit it to maxSessionKeySizeInBytes. - n, err := readFull(r, encryptedKey) - if err != nil && err != io.ErrUnexpectedEOF { - return err - } - - if n != 0 { - if n == maxSessionKeySizeInBytes { - return errors.UnsupportedError("oversized encrypted session key") - } - ske.encryptedKey = encryptedKey[:n] - } - return nil -} - -// Decrypt attempts to decrypt an encrypted session key and returns the key and -// the cipher to use when decrypting a subsequent Symmetrically Encrypted Data -// packet. -func (ske *SymmetricKeyEncrypted) Decrypt(passphrase []byte) ([]byte, CipherFunction, error) { - key := make([]byte, ske.CipherFunc.KeySize()) - ske.s2k(key, passphrase) - if len(ske.encryptedKey) == 0 { - return key, ske.CipherFunc, nil - } - switch ske.Version { - case 4: - plaintextKey, cipherFunc, err := ske.decryptV4(key) - return plaintextKey, cipherFunc, err - case 5: - plaintextKey, err := ske.decryptV5(key) - return plaintextKey, CipherFunction(0), err - } - err := errors.UnsupportedError("unknown SymmetricKeyEncrypted version") - return nil, CipherFunction(0), err -} - -func (ske *SymmetricKeyEncrypted) decryptV4(key []byte) ([]byte, CipherFunction, error) { - // the IV is all zeros - iv := make([]byte, ske.CipherFunc.blockSize()) - c := cipher.NewCFBDecrypter(ske.CipherFunc.new(key), iv) - plaintextKey := make([]byte, len(ske.encryptedKey)) - c.XORKeyStream(plaintextKey, ske.encryptedKey) - cipherFunc := CipherFunction(plaintextKey[0]) - if cipherFunc.blockSize() == 0 { - return nil, ske.CipherFunc, errors.UnsupportedError( - "unknown cipher: " + strconv.Itoa(int(cipherFunc))) - } - plaintextKey = plaintextKey[1:] - if len(plaintextKey) != cipherFunc.KeySize() { - return nil, cipherFunc, errors.StructuralError( - "length of decrypted key not equal to cipher keysize") - } - return plaintextKey, cipherFunc, nil -} - -func (ske *SymmetricKeyEncrypted) decryptV5(key []byte) ([]byte, error) { - adata := []byte{0xc3, byte(5), byte(ske.CipherFunc), byte(ske.Mode)} - aead := getEncryptedKeyAeadInstance(ske.CipherFunc, ske.Mode, key, adata) - - plaintextKey, err := aead.Open(nil, ske.iv, ske.encryptedKey, adata) - if err != nil { - return nil, err - } - return plaintextKey, nil -} - -// SerializeSymmetricKeyEncrypted serializes a symmetric key packet to w. -// The packet contains a random session key, encrypted by a key derived from -// the given passphrase. The session key is returned and must be passed to -// SerializeSymmetricallyEncrypted. -// If config is nil, sensible defaults will be used. -func SerializeSymmetricKeyEncrypted(w io.Writer, passphrase []byte, config *Config) (key []byte, err error) { - cipherFunc := config.Cipher() - keySize := cipherFunc.KeySize() - if keySize == 0 { - return nil, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(cipherFunc))) - } - - sessionKey := make([]byte, keySize) - _, err = io.ReadFull(config.Random(), sessionKey) - if err != nil { - return - } - - err = SerializeSymmetricKeyEncryptedReuseKey(w, sessionKey, passphrase, config) - if err != nil { - return - } - - key = sessionKey - return -} - -// SerializeSymmetricKeyEncryptedReuseKey serializes a symmetric key packet to w. -// The packet contains the given session key, encrypted by a key derived from -// the given passphrase. The returned session key must be passed to -// SerializeSymmetricallyEncrypted. -// If config is nil, sensible defaults will be used. -func SerializeSymmetricKeyEncryptedReuseKey(w io.Writer, sessionKey []byte, passphrase []byte, config *Config) (err error) { - var version int - if config.AEAD() != nil { - version = 5 - } else { - version = 4 - } - cipherFunc := config.Cipher() - keySize := cipherFunc.KeySize() - if keySize == 0 { - return errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(cipherFunc))) - } - - s2kBuf := new(bytes.Buffer) - keyEncryptingKey := make([]byte, keySize) - // s2k.Serialize salts and stretches the passphrase, and writes the - // resulting key to keyEncryptingKey and the s2k descriptor to s2kBuf. - err = s2k.Serialize(s2kBuf, keyEncryptingKey, config.Random(), passphrase, &s2k.Config{Hash: config.Hash(), S2KCount: config.PasswordHashIterations()}) - if err != nil { - return - } - s2kBytes := s2kBuf.Bytes() - - var packetLength int - switch version { - case 4: - packetLength = 2 /* header */ + len(s2kBytes) + 1 /* cipher type */ + keySize - case 5: - ivLen := config.AEAD().Mode().IvLength() - tagLen := config.AEAD().Mode().TagLength() - packetLength = 5 + len(s2kBytes) + ivLen + keySize + tagLen - } - err = serializeHeader(w, packetTypeSymmetricKeyEncrypted, packetLength) - if err != nil { - return - } - - // Symmetric Key Encrypted Version - buf := []byte{byte(version)} - - if version == 5 { - // Scalar octet count - buf = append(buf, byte(3 + len(s2kBytes) + config.AEAD().Mode().IvLength())) - } - - // Cipher function - buf = append(buf, byte(cipherFunc)) - - if version == 5 { - // AEAD mode - buf = append(buf, byte(config.AEAD().Mode())) - - // Scalar octet count - buf = append(buf, byte(len(s2kBytes))) - } - _, err = w.Write(buf) - if err != nil { - return - } - _, err = w.Write(s2kBytes) - if err != nil { - return - } - - switch version { - case 4: - iv := make([]byte, cipherFunc.blockSize()) - c := cipher.NewCFBEncrypter(cipherFunc.new(keyEncryptingKey), iv) - encryptedCipherAndKey := make([]byte, keySize+1) - c.XORKeyStream(encryptedCipherAndKey, buf[1:]) - c.XORKeyStream(encryptedCipherAndKey[1:], sessionKey) - _, err = w.Write(encryptedCipherAndKey) - if err != nil { - return - } - case 5: - mode := config.AEAD().Mode() - adata := []byte{0xc3, byte(5), byte(cipherFunc), byte(mode)} - aead := getEncryptedKeyAeadInstance(cipherFunc, mode, keyEncryptingKey, adata) - - // Sample iv using random reader - iv := make([]byte, config.AEAD().Mode().IvLength()) - _, err = io.ReadFull(config.Random(), iv) - if err != nil { - return - } - // Seal and write (encryptedData includes auth. tag) - - encryptedData := aead.Seal(nil, iv, sessionKey, adata) - _, err = w.Write(iv) - if err != nil { - return - } - _, err = w.Write(encryptedData) - if err != nil { - return - } - } - - return -} - -func getEncryptedKeyAeadInstance(c CipherFunction, mode AEADMode, inputKey, associatedData []byte) (aead cipher.AEAD) { - hkdfReader := hkdf.New(sha256.New, inputKey, []byte{}, associatedData) - - encryptionKey := make([]byte, c.KeySize()) - _, _ = readFull(hkdfReader, encryptionKey) - - blockCipher := c.new(encryptionKey) - return mode.new(blockCipher) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted.go deleted file mode 100644 index dc1a240357..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "io" - - "github.com/ProtonMail/go-crypto/openpgp/errors" -) - -const aeadSaltSize = 32 - -// SymmetricallyEncrypted represents a symmetrically encrypted byte string. The -// encrypted Contents will consist of more OpenPGP packets. See RFC 4880, -// sections 5.7 and 5.13. -type SymmetricallyEncrypted struct { - Version int - Contents io.Reader // contains tag for version 2 - IntegrityProtected bool // If true it is type 18 (with MDC or AEAD). False is packet type 9 - - // Specific to version 1 - prefix []byte - - // Specific to version 2 - cipher CipherFunction - mode AEADMode - chunkSizeByte byte - salt [aeadSaltSize]byte -} - -const ( - symmetricallyEncryptedVersionMdc = 1 - symmetricallyEncryptedVersionAead = 2 -) - - -func (se *SymmetricallyEncrypted) parse(r io.Reader) error { - if se.IntegrityProtected { - // See RFC 4880, section 5.13. - var buf [1]byte - _, err := readFull(r, buf[:]) - if err != nil { - return err - } - - switch buf[0] { - case symmetricallyEncryptedVersionMdc: - se.Version = symmetricallyEncryptedVersionMdc - case symmetricallyEncryptedVersionAead: - se.Version = symmetricallyEncryptedVersionAead - if err := se.parseAead(r); err != nil { - return err - } - default: - return errors.UnsupportedError("unknown SymmetricallyEncrypted version") - } - } - se.Contents = r - return nil -} - -// Decrypt returns a ReadCloser, from which the decrypted Contents of the -// packet can be read. An incorrect key will only be detected after trying -// to decrypt the entire data. -func (se *SymmetricallyEncrypted) Decrypt(c CipherFunction, key []byte) (io.ReadCloser, error) { - if se.Version == symmetricallyEncryptedVersionAead { - return se.decryptAead(key) - } - - return se.decryptMdc(c, key) -} - -// SerializeSymmetricallyEncrypted serializes a symmetrically encrypted packet -// to w and returns a WriteCloser to which the to-be-encrypted packets can be -// written. -// If config is nil, sensible defaults will be used. -func SerializeSymmetricallyEncrypted(w io.Writer, c CipherFunction, aeadSupported bool, cipherSuite CipherSuite, key []byte, config *Config) (Contents io.WriteCloser, err error) { - writeCloser := noOpCloser{w} - ciphertext, err := serializeStreamHeader(writeCloser, packetTypeSymmetricallyEncryptedIntegrityProtected) - if err != nil { - return - } - - if aeadSupported { - return serializeSymmetricallyEncryptedAead(ciphertext, cipherSuite, config.AEADConfig.ChunkSizeByte(), config.Random(), key) - } - - return serializeSymmetricallyEncryptedMdc(ciphertext, c, key, config) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go deleted file mode 100644 index 7805c78300..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_aead.go +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright 2023 Proton AG. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "crypto/cipher" - "crypto/sha256" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "golang.org/x/crypto/hkdf" - "io" -) - -// parseAead parses a V2 SEIPD packet (AEAD) as specified in -// https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-5.13.2 -func (se *SymmetricallyEncrypted) parseAead(r io.Reader) error { - headerData := make([]byte, 3) - if n, err := io.ReadFull(r, headerData); n < 3 { - return errors.StructuralError("could not read aead header: " + err.Error()) - } - - // Cipher - se.cipher = CipherFunction(headerData[0]) - if se.cipher.KeySize() == 0 { - return errors.UnsupportedError("unknown cipher: " + string(se.cipher)) - } - - // Mode - se.mode = AEADMode(headerData[1]) - if se.mode.TagLength() == 0 { - return errors.UnsupportedError("unknown aead mode: " + string(se.mode)) - } - - // Chunk size - se.chunkSizeByte = headerData[2] - if se.chunkSizeByte > 16 { - return errors.UnsupportedError("invalid aead chunk size byte: " + string(se.chunkSizeByte)) - } - - // Salt - if n, err := io.ReadFull(r, se.salt[:]); n < aeadSaltSize { - return errors.StructuralError("could not read aead salt: " + err.Error()) - } - - return nil -} - -// associatedData for chunks: tag, version, cipher, mode, chunk size byte -func (se *SymmetricallyEncrypted) associatedData() []byte { - return []byte{ - 0xD2, - symmetricallyEncryptedVersionAead, - byte(se.cipher), - byte(se.mode), - se.chunkSizeByte, - } -} - -// decryptAead decrypts a V2 SEIPD packet (AEAD) as specified in -// https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-5.13.2 -func (se *SymmetricallyEncrypted) decryptAead(inputKey []byte) (io.ReadCloser, error) { - aead, nonce := getSymmetricallyEncryptedAeadInstance(se.cipher, se.mode, inputKey, se.salt[:], se.associatedData()) - - // Carry the first tagLen bytes - tagLen := se.mode.TagLength() - peekedBytes := make([]byte, tagLen) - n, err := io.ReadFull(se.Contents, peekedBytes) - if n < tagLen || (err != nil && err != io.EOF) { - return nil, errors.StructuralError("not enough data to decrypt:" + err.Error()) - } - - return &aeadDecrypter{ - aeadCrypter: aeadCrypter{ - aead: aead, - chunkSize: decodeAEADChunkSize(se.chunkSizeByte), - initialNonce: nonce, - associatedData: se.associatedData(), - chunkIndex: make([]byte, 8), - packetTag: packetTypeSymmetricallyEncryptedIntegrityProtected, - }, - reader: se.Contents, - peekedBytes: peekedBytes, - }, nil -} - -// serializeSymmetricallyEncryptedAead encrypts to a writer a V2 SEIPD packet (AEAD) as specified in -// https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-5.13.2 -func serializeSymmetricallyEncryptedAead(ciphertext io.WriteCloser, cipherSuite CipherSuite, chunkSizeByte byte, rand io.Reader, inputKey []byte) (Contents io.WriteCloser, err error) { - if cipherSuite.Cipher.KeySize() != len(inputKey) { - return nil, errors.InvalidArgumentError("error in aead serialization: bad key length") - } - - // Data for en/decryption: tag, version, cipher, aead mode, chunk size - prefix := []byte{ - 0xD2, - symmetricallyEncryptedVersionAead, - byte(cipherSuite.Cipher), - byte(cipherSuite.Mode), - chunkSizeByte, - } - - // Write header (that correspond to prefix except first byte) - n, err := ciphertext.Write(prefix[1:]) - if err != nil || n < 4 { - return nil, err - } - - // Random salt - salt := make([]byte, aeadSaltSize) - if _, err := rand.Read(salt); err != nil { - return nil, err - } - - if _, err := ciphertext.Write(salt); err != nil { - return nil, err - } - - aead, nonce := getSymmetricallyEncryptedAeadInstance(cipherSuite.Cipher, cipherSuite.Mode, inputKey, salt, prefix) - - return &aeadEncrypter{ - aeadCrypter: aeadCrypter{ - aead: aead, - chunkSize: decodeAEADChunkSize(chunkSizeByte), - associatedData: prefix, - chunkIndex: make([]byte, 8), - initialNonce: nonce, - packetTag: packetTypeSymmetricallyEncryptedIntegrityProtected, - }, - writer: ciphertext, - }, nil -} - -func getSymmetricallyEncryptedAeadInstance(c CipherFunction, mode AEADMode, inputKey, salt, associatedData []byte) (aead cipher.AEAD, nonce []byte) { - hkdfReader := hkdf.New(sha256.New, inputKey, salt, associatedData) - - encryptionKey := make([]byte, c.KeySize()) - _, _ = readFull(hkdfReader, encryptionKey) - - // Last 64 bits of nonce are the counter - nonce = make([]byte, mode.IvLength() - 8) - - _, _ = readFull(hkdfReader, nonce) - - blockCipher := c.new(encryptionKey) - aead = mode.new(blockCipher) - - return -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_mdc.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_mdc.go deleted file mode 100644 index 78c77e42ab..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/symmetrically_encrypted_mdc.go +++ /dev/null @@ -1,251 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "crypto/cipher" - "crypto/sha1" - "crypto/subtle" - "hash" - "io" - "strconv" - - "github.com/ProtonMail/go-crypto/openpgp/errors" -) - -// seMdcReader wraps an io.Reader with a no-op Close method. -type seMdcReader struct { - in io.Reader -} - -func (ser seMdcReader) Read(buf []byte) (int, error) { - return ser.in.Read(buf) -} - -func (ser seMdcReader) Close() error { - return nil -} - -func (se *SymmetricallyEncrypted) decryptMdc(c CipherFunction, key []byte) (io.ReadCloser, error) { - keySize := c.KeySize() - if keySize == 0 { - return nil, errors.UnsupportedError("unknown cipher: " + strconv.Itoa(int(c))) - } - if len(key) != keySize { - return nil, errors.InvalidArgumentError("SymmetricallyEncrypted: incorrect key length") - } - - if se.prefix == nil { - se.prefix = make([]byte, c.blockSize()+2) - _, err := readFull(se.Contents, se.prefix) - if err != nil { - return nil, err - } - } else if len(se.prefix) != c.blockSize()+2 { - return nil, errors.InvalidArgumentError("can't try ciphers with different block lengths") - } - - ocfbResync := OCFBResync - if se.IntegrityProtected { - // MDC packets use a different form of OCFB mode. - ocfbResync = OCFBNoResync - } - - s := NewOCFBDecrypter(c.new(key), se.prefix, ocfbResync) - - plaintext := cipher.StreamReader{S: s, R: se.Contents} - - if se.IntegrityProtected { - // IntegrityProtected packets have an embedded hash that we need to check. - h := sha1.New() - h.Write(se.prefix) - return &seMDCReader{in: plaintext, h: h}, nil - } - - // Otherwise, we just need to wrap plaintext so that it's a valid ReadCloser. - return seMdcReader{plaintext}, nil -} - -const mdcTrailerSize = 1 /* tag byte */ + 1 /* length byte */ + sha1.Size - -// An seMDCReader wraps an io.Reader, maintains a running hash and keeps hold -// of the most recent 22 bytes (mdcTrailerSize). Upon EOF, those bytes form an -// MDC packet containing a hash of the previous Contents which is checked -// against the running hash. See RFC 4880, section 5.13. -type seMDCReader struct { - in io.Reader - h hash.Hash - trailer [mdcTrailerSize]byte - scratch [mdcTrailerSize]byte - trailerUsed int - error bool - eof bool -} - -func (ser *seMDCReader) Read(buf []byte) (n int, err error) { - if ser.error { - err = io.ErrUnexpectedEOF - return - } - if ser.eof { - err = io.EOF - return - } - - // If we haven't yet filled the trailer buffer then we must do that - // first. - for ser.trailerUsed < mdcTrailerSize { - n, err = ser.in.Read(ser.trailer[ser.trailerUsed:]) - ser.trailerUsed += n - if err == io.EOF { - if ser.trailerUsed != mdcTrailerSize { - n = 0 - err = io.ErrUnexpectedEOF - ser.error = true - return - } - ser.eof = true - n = 0 - return - } - - if err != nil { - n = 0 - return - } - } - - // If it's a short read then we read into a temporary buffer and shift - // the data into the caller's buffer. - if len(buf) <= mdcTrailerSize { - n, err = readFull(ser.in, ser.scratch[:len(buf)]) - copy(buf, ser.trailer[:n]) - ser.h.Write(buf[:n]) - copy(ser.trailer[:], ser.trailer[n:]) - copy(ser.trailer[mdcTrailerSize-n:], ser.scratch[:]) - if n < len(buf) { - ser.eof = true - err = io.EOF - } - return - } - - n, err = ser.in.Read(buf[mdcTrailerSize:]) - copy(buf, ser.trailer[:]) - ser.h.Write(buf[:n]) - copy(ser.trailer[:], buf[n:]) - - if err == io.EOF { - ser.eof = true - } - return -} - -// This is a new-format packet tag byte for a type 19 (Integrity Protected) packet. -const mdcPacketTagByte = byte(0x80) | 0x40 | 19 - -func (ser *seMDCReader) Close() error { - if ser.error { - return errors.ErrMDCMissing - } - - for !ser.eof { - // We haven't seen EOF so we need to read to the end - var buf [1024]byte - _, err := ser.Read(buf[:]) - if err == io.EOF { - break - } - if err != nil { - return errors.ErrMDCMissing - } - } - - ser.h.Write(ser.trailer[:2]) - - final := ser.h.Sum(nil) - if subtle.ConstantTimeCompare(final, ser.trailer[2:]) != 1 { - return errors.ErrMDCHashMismatch - } - // The hash already includes the MDC header, but we still check its value - // to confirm encryption correctness - if ser.trailer[0] != mdcPacketTagByte || ser.trailer[1] != sha1.Size { - return errors.ErrMDCMissing - } - return nil -} - -// An seMDCWriter writes through to an io.WriteCloser while maintains a running -// hash of the data written. On close, it emits an MDC packet containing the -// running hash. -type seMDCWriter struct { - w io.WriteCloser - h hash.Hash -} - -func (w *seMDCWriter) Write(buf []byte) (n int, err error) { - w.h.Write(buf) - return w.w.Write(buf) -} - -func (w *seMDCWriter) Close() (err error) { - var buf [mdcTrailerSize]byte - - buf[0] = mdcPacketTagByte - buf[1] = sha1.Size - w.h.Write(buf[:2]) - digest := w.h.Sum(nil) - copy(buf[2:], digest) - - _, err = w.w.Write(buf[:]) - if err != nil { - return - } - return w.w.Close() -} - -// noOpCloser is like an ioutil.NopCloser, but for an io.Writer. -type noOpCloser struct { - w io.Writer -} - -func (c noOpCloser) Write(data []byte) (n int, err error) { - return c.w.Write(data) -} - -func (c noOpCloser) Close() error { - return nil -} - -func serializeSymmetricallyEncryptedMdc(ciphertext io.WriteCloser, c CipherFunction, key []byte, config *Config) (Contents io.WriteCloser, err error) { - if c.KeySize() != len(key) { - return nil, errors.InvalidArgumentError("error in mdc serialization: bad key length") - } - - _, err = ciphertext.Write([]byte{symmetricallyEncryptedVersionMdc}) - if err != nil { - return - } - - block := c.new(key) - blockSize := block.BlockSize() - iv := make([]byte, blockSize) - _, err = config.Random().Read(iv) - if err != nil { - return - } - s, prefix := NewOCFBEncrypter(block, iv, OCFBNoResync) - _, err = ciphertext.Write(prefix) - if err != nil { - return - } - plaintext := cipher.StreamWriter{S: s, W: ciphertext} - - h := sha1.New() - h.Write(iv) - h.Write(iv[blockSize-2:]) - Contents = &seMDCWriter{w: plaintext, h: h} - return -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go deleted file mode 100644 index 88ec72c6c4..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "bytes" - "image" - "image/jpeg" - "io" - "io/ioutil" -) - -const UserAttrImageSubpacket = 1 - -// UserAttribute is capable of storing other types of data about a user -// beyond name, email and a text comment. In practice, user attributes are typically used -// to store a signed thumbnail photo JPEG image of the user. -// See RFC 4880, section 5.12. -type UserAttribute struct { - Contents []*OpaqueSubpacket -} - -// NewUserAttributePhoto creates a user attribute packet -// containing the given images. -func NewUserAttributePhoto(photos ...image.Image) (uat *UserAttribute, err error) { - uat = new(UserAttribute) - for _, photo := range photos { - var buf bytes.Buffer - // RFC 4880, Section 5.12.1. - data := []byte{ - 0x10, 0x00, // Little-endian image header length (16 bytes) - 0x01, // Image header version 1 - 0x01, // JPEG - 0, 0, 0, 0, // 12 reserved octets, must be all zero. - 0, 0, 0, 0, - 0, 0, 0, 0} - if _, err = buf.Write(data); err != nil { - return - } - if err = jpeg.Encode(&buf, photo, nil); err != nil { - return - } - - lengthBuf := make([]byte, 5) - n := serializeSubpacketLength(lengthBuf, len(buf.Bytes())+1) - lengthBuf = lengthBuf[:n] - - uat.Contents = append(uat.Contents, &OpaqueSubpacket{ - SubType: UserAttrImageSubpacket, - EncodedLength: lengthBuf, - Contents: buf.Bytes(), - }) - } - return -} - -// NewUserAttribute creates a new user attribute packet containing the given subpackets. -func NewUserAttribute(contents ...*OpaqueSubpacket) *UserAttribute { - return &UserAttribute{Contents: contents} -} - -func (uat *UserAttribute) parse(r io.Reader) (err error) { - // RFC 4880, section 5.13 - b, err := ioutil.ReadAll(r) - if err != nil { - return - } - uat.Contents, err = OpaqueSubpackets(b) - return -} - -// Serialize marshals the user attribute to w in the form of an OpenPGP packet, including -// header. -func (uat *UserAttribute) Serialize(w io.Writer) (err error) { - var buf bytes.Buffer - for _, sp := range uat.Contents { - err = sp.Serialize(&buf) - if err != nil { - return err - } - } - if err = serializeHeader(w, packetTypeUserAttribute, buf.Len()); err != nil { - return err - } - _, err = w.Write(buf.Bytes()) - return -} - -// ImageData returns zero or more byte slices, each containing -// JPEG File Interchange Format (JFIF), for each photo in the -// user attribute packet. -func (uat *UserAttribute) ImageData() (imageData [][]byte) { - for _, sp := range uat.Contents { - if sp.SubType == UserAttrImageSubpacket && len(sp.Contents) > 16 { - imageData = append(imageData, sp.Contents[16:]) - } - } - return -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userid.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userid.go deleted file mode 100644 index 614fbafd5e..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userid.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packet - -import ( - "io" - "io/ioutil" - "strings" -) - -// UserId contains text that is intended to represent the name and email -// address of the key holder. See RFC 4880, section 5.11. By convention, this -// takes the form "Full Name (Comment) " -type UserId struct { - Id string // By convention, this takes the form "Full Name (Comment) " which is split out in the fields below. - - Name, Comment, Email string -} - -func hasInvalidCharacters(s string) bool { - for _, c := range s { - switch c { - case '(', ')', '<', '>', 0: - return true - } - } - return false -} - -// NewUserId returns a UserId or nil if any of the arguments contain invalid -// characters. The invalid characters are '\x00', '(', ')', '<' and '>' -func NewUserId(name, comment, email string) *UserId { - // RFC 4880 doesn't deal with the structure of userid strings; the - // name, comment and email form is just a convention. However, there's - // no convention about escaping the metacharacters and GPG just refuses - // to create user ids where, say, the name contains a '('. We mirror - // this behaviour. - - if hasInvalidCharacters(name) || hasInvalidCharacters(comment) || hasInvalidCharacters(email) { - return nil - } - - uid := new(UserId) - uid.Name, uid.Comment, uid.Email = name, comment, email - uid.Id = name - if len(comment) > 0 { - if len(uid.Id) > 0 { - uid.Id += " " - } - uid.Id += "(" - uid.Id += comment - uid.Id += ")" - } - if len(email) > 0 { - if len(uid.Id) > 0 { - uid.Id += " " - } - uid.Id += "<" - uid.Id += email - uid.Id += ">" - } - return uid -} - -func (uid *UserId) parse(r io.Reader) (err error) { - // RFC 4880, section 5.11 - b, err := ioutil.ReadAll(r) - if err != nil { - return - } - uid.Id = string(b) - uid.Name, uid.Comment, uid.Email = parseUserId(uid.Id) - return -} - -// Serialize marshals uid to w in the form of an OpenPGP packet, including -// header. -func (uid *UserId) Serialize(w io.Writer) error { - err := serializeHeader(w, packetTypeUserId, len(uid.Id)) - if err != nil { - return err - } - _, err = w.Write([]byte(uid.Id)) - return err -} - -// parseUserId extracts the name, comment and email from a user id string that -// is formatted as "Full Name (Comment) ". -func parseUserId(id string) (name, comment, email string) { - var n, c, e struct { - start, end int - } - var state int - - for offset, rune := range id { - switch state { - case 0: - // Entering name - n.start = offset - state = 1 - fallthrough - case 1: - // In name - if rune == '(' { - state = 2 - n.end = offset - } else if rune == '<' { - state = 5 - n.end = offset - } - case 2: - // Entering comment - c.start = offset - state = 3 - fallthrough - case 3: - // In comment - if rune == ')' { - state = 4 - c.end = offset - } - case 4: - // Between comment and email - if rune == '<' { - state = 5 - } - case 5: - // Entering email - e.start = offset - state = 6 - fallthrough - case 6: - // In email - if rune == '>' { - state = 7 - e.end = offset - } - default: - // After email - } - } - switch state { - case 1: - // ended in the name - n.end = len(id) - case 3: - // ended in comment - c.end = len(id) - case 6: - // ended in email - e.end = len(id) - } - - name = strings.TrimSpace(id[n.start:n.end]) - comment = strings.TrimSpace(id[c.start:c.end]) - email = strings.TrimSpace(id[e.start:e.end]) - - // RFC 2822 3.4: alternate simple form of a mailbox - if email == "" && strings.ContainsRune(name, '@') { - email = name - name = "" - } - - return -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/read.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/read.go deleted file mode 100644 index c7ac829dc9..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/read.go +++ /dev/null @@ -1,538 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package openpgp implements high level operations on OpenPGP messages. -package openpgp // import "github.com/ProtonMail/go-crypto/openpgp" - -import ( - "crypto" - _ "crypto/sha256" - _ "crypto/sha512" - "hash" - "io" - "strconv" - - "github.com/ProtonMail/go-crypto/openpgp/armor" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/packet" - _ "golang.org/x/crypto/sha3" -) - -// SignatureType is the armor type for a PGP signature. -var SignatureType = "PGP SIGNATURE" - -// readArmored reads an armored block with the given type. -func readArmored(r io.Reader, expectedType string) (body io.Reader, err error) { - block, err := armor.Decode(r) - if err != nil { - return - } - - if block.Type != expectedType { - return nil, errors.InvalidArgumentError("expected '" + expectedType + "', got: " + block.Type) - } - - return block.Body, nil -} - -// MessageDetails contains the result of parsing an OpenPGP encrypted and/or -// signed message. -type MessageDetails struct { - IsEncrypted bool // true if the message was encrypted. - EncryptedToKeyIds []uint64 // the list of recipient key ids. - IsSymmetricallyEncrypted bool // true if a passphrase could have decrypted the message. - DecryptedWith Key // the private key used to decrypt the message, if any. - IsSigned bool // true if the message is signed. - SignedByKeyId uint64 // the key id of the signer, if any. - SignedBy *Key // the key of the signer, if available. - LiteralData *packet.LiteralData // the metadata of the contents - UnverifiedBody io.Reader // the contents of the message. - - // If IsSigned is true and SignedBy is non-zero then the signature will - // be verified as UnverifiedBody is read. The signature cannot be - // checked until the whole of UnverifiedBody is read so UnverifiedBody - // must be consumed until EOF before the data can be trusted. Even if a - // message isn't signed (or the signer is unknown) the data may contain - // an authentication code that is only checked once UnverifiedBody has - // been consumed. Once EOF has been seen, the following fields are - // valid. (An authentication code failure is reported as a - // SignatureError error when reading from UnverifiedBody.) - Signature *packet.Signature // the signature packet itself. - SignatureError error // nil if the signature is good. - UnverifiedSignatures []*packet.Signature // all other unverified signature packets. - - decrypted io.ReadCloser -} - -// A PromptFunction is used as a callback by functions that may need to decrypt -// a private key, or prompt for a passphrase. It is called with a list of -// acceptable, encrypted private keys and a boolean that indicates whether a -// passphrase is usable. It should either decrypt a private key or return a -// passphrase to try. If the decrypted private key or given passphrase isn't -// correct, the function will be called again, forever. Any error returned will -// be passed up. -type PromptFunction func(keys []Key, symmetric bool) ([]byte, error) - -// A keyEnvelopePair is used to store a private key with the envelope that -// contains a symmetric key, encrypted with that key. -type keyEnvelopePair struct { - key Key - encryptedKey *packet.EncryptedKey -} - -// ReadMessage parses an OpenPGP message that may be signed and/or encrypted. -// The given KeyRing should contain both public keys (for signature -// verification) and, possibly encrypted, private keys for decrypting. -// If config is nil, sensible defaults will be used. -func ReadMessage(r io.Reader, keyring KeyRing, prompt PromptFunction, config *packet.Config) (md *MessageDetails, err error) { - var p packet.Packet - - var symKeys []*packet.SymmetricKeyEncrypted - var pubKeys []keyEnvelopePair - // Integrity protected encrypted packet: SymmetricallyEncrypted or AEADEncrypted - var edp packet.EncryptedDataPacket - - packets := packet.NewReader(r) - md = new(MessageDetails) - md.IsEncrypted = true - - // The message, if encrypted, starts with a number of packets - // containing an encrypted decryption key. The decryption key is either - // encrypted to a public key, or with a passphrase. This loop - // collects these packets. -ParsePackets: - for { - p, err = packets.Next() - if err != nil { - return nil, err - } - switch p := p.(type) { - case *packet.SymmetricKeyEncrypted: - // This packet contains the decryption key encrypted with a passphrase. - md.IsSymmetricallyEncrypted = true - symKeys = append(symKeys, p) - case *packet.EncryptedKey: - // This packet contains the decryption key encrypted to a public key. - md.EncryptedToKeyIds = append(md.EncryptedToKeyIds, p.KeyId) - switch p.Algo { - case packet.PubKeyAlgoRSA, packet.PubKeyAlgoRSAEncryptOnly, packet.PubKeyAlgoElGamal, packet.PubKeyAlgoECDH: - break - default: - continue - } - if keyring != nil { - var keys []Key - if p.KeyId == 0 { - keys = keyring.DecryptionKeys() - } else { - keys = keyring.KeysById(p.KeyId) - } - for _, k := range keys { - pubKeys = append(pubKeys, keyEnvelopePair{k, p}) - } - } - case *packet.SymmetricallyEncrypted: - if !p.IntegrityProtected && !config.AllowUnauthenticatedMessages() { - return nil, errors.UnsupportedError("message is not integrity protected") - } - edp = p - break ParsePackets - case *packet.AEADEncrypted: - edp = p - break ParsePackets - case *packet.Compressed, *packet.LiteralData, *packet.OnePassSignature: - // This message isn't encrypted. - if len(symKeys) != 0 || len(pubKeys) != 0 { - return nil, errors.StructuralError("key material not followed by encrypted message") - } - packets.Unread(p) - return readSignedMessage(packets, nil, keyring, config) - } - } - - var candidates []Key - var decrypted io.ReadCloser - - // Now that we have the list of encrypted keys we need to decrypt at - // least one of them or, if we cannot, we need to call the prompt - // function so that it can decrypt a key or give us a passphrase. -FindKey: - for { - // See if any of the keys already have a private key available - candidates = candidates[:0] - candidateFingerprints := make(map[string]bool) - - for _, pk := range pubKeys { - if pk.key.PrivateKey == nil { - continue - } - if !pk.key.PrivateKey.Encrypted { - if len(pk.encryptedKey.Key) == 0 { - errDec := pk.encryptedKey.Decrypt(pk.key.PrivateKey, config) - if errDec != nil { - continue - } - } - // Try to decrypt symmetrically encrypted - decrypted, err = edp.Decrypt(pk.encryptedKey.CipherFunc, pk.encryptedKey.Key) - if err != nil && err != errors.ErrKeyIncorrect { - return nil, err - } - if decrypted != nil { - md.DecryptedWith = pk.key - break FindKey - } - } else { - fpr := string(pk.key.PublicKey.Fingerprint[:]) - if v := candidateFingerprints[fpr]; v { - continue - } - candidates = append(candidates, pk.key) - candidateFingerprints[fpr] = true - } - } - - if len(candidates) == 0 && len(symKeys) == 0 { - return nil, errors.ErrKeyIncorrect - } - - if prompt == nil { - return nil, errors.ErrKeyIncorrect - } - - passphrase, err := prompt(candidates, len(symKeys) != 0) - if err != nil { - return nil, err - } - - // Try the symmetric passphrase first - if len(symKeys) != 0 && passphrase != nil { - for _, s := range symKeys { - key, cipherFunc, err := s.Decrypt(passphrase) - // In v4, on wrong passphrase, session key decryption is very likely to result in an invalid cipherFunc: - // only for < 5% of cases we will proceed to decrypt the data - if err == nil { - decrypted, err = edp.Decrypt(cipherFunc, key) - if err != nil { - return nil, err - } - if decrypted != nil { - break FindKey - } - } - } - } - } - - md.decrypted = decrypted - if err := packets.Push(decrypted); err != nil { - return nil, err - } - mdFinal, sensitiveParsingErr := readSignedMessage(packets, md, keyring, config) - if sensitiveParsingErr != nil { - return nil, errors.StructuralError("parsing error") - } - return mdFinal, nil -} - -// readSignedMessage reads a possibly signed message if mdin is non-zero then -// that structure is updated and returned. Otherwise a fresh MessageDetails is -// used. -func readSignedMessage(packets *packet.Reader, mdin *MessageDetails, keyring KeyRing, config *packet.Config) (md *MessageDetails, err error) { - if mdin == nil { - mdin = new(MessageDetails) - } - md = mdin - - var p packet.Packet - var h hash.Hash - var wrappedHash hash.Hash - var prevLast bool -FindLiteralData: - for { - p, err = packets.Next() - if err != nil { - return nil, err - } - switch p := p.(type) { - case *packet.Compressed: - if err := packets.Push(p.Body); err != nil { - return nil, err - } - case *packet.OnePassSignature: - if prevLast { - return nil, errors.UnsupportedError("nested signature packets") - } - - if p.IsLast { - prevLast = true - } - - h, wrappedHash, err = hashForSignature(p.Hash, p.SigType) - if err != nil { - md.SignatureError = err - } - - md.IsSigned = true - md.SignedByKeyId = p.KeyId - if keyring != nil { - keys := keyring.KeysByIdUsage(p.KeyId, packet.KeyFlagSign) - if len(keys) > 0 { - md.SignedBy = &keys[0] - } - } - case *packet.LiteralData: - md.LiteralData = p - break FindLiteralData - } - } - - if md.IsSigned && md.SignatureError == nil { - md.UnverifiedBody = &signatureCheckReader{packets, h, wrappedHash, md, config} - } else if md.decrypted != nil { - md.UnverifiedBody = checkReader{md} - } else { - md.UnverifiedBody = md.LiteralData.Body - } - - return md, nil -} - -// hashForSignature returns a pair of hashes that can be used to verify a -// signature. The signature may specify that the contents of the signed message -// should be preprocessed (i.e. to normalize line endings). Thus this function -// returns two hashes. The second should be used to hash the message itself and -// performs any needed preprocessing. -func hashForSignature(hashId crypto.Hash, sigType packet.SignatureType) (hash.Hash, hash.Hash, error) { - if hashId == crypto.MD5 { - return nil, nil, errors.UnsupportedError("insecure hash algorithm: MD5") - } - if !hashId.Available() { - return nil, nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hashId))) - } - h := hashId.New() - - switch sigType { - case packet.SigTypeBinary: - return h, h, nil - case packet.SigTypeText: - return h, NewCanonicalTextHash(h), nil - } - - return nil, nil, errors.UnsupportedError("unsupported signature type: " + strconv.Itoa(int(sigType))) -} - -// checkReader wraps an io.Reader from a LiteralData packet. When it sees EOF -// it closes the ReadCloser from any SymmetricallyEncrypted packet to trigger -// MDC checks. -type checkReader struct { - md *MessageDetails -} - -func (cr checkReader) Read(buf []byte) (int, error) { - n, sensitiveParsingError := cr.md.LiteralData.Body.Read(buf) - if sensitiveParsingError == io.EOF { - mdcErr := cr.md.decrypted.Close() - if mdcErr != nil { - return n, mdcErr - } - return n, io.EOF - } - - if sensitiveParsingError != nil { - return n, errors.StructuralError("parsing error") - } - - return n, nil -} - -// signatureCheckReader wraps an io.Reader from a LiteralData packet and hashes -// the data as it is read. When it sees an EOF from the underlying io.Reader -// it parses and checks a trailing Signature packet and triggers any MDC checks. -type signatureCheckReader struct { - packets *packet.Reader - h, wrappedHash hash.Hash - md *MessageDetails - config *packet.Config -} - -func (scr *signatureCheckReader) Read(buf []byte) (int, error) { - n, sensitiveParsingError := scr.md.LiteralData.Body.Read(buf) - - // Hash only if required - if scr.md.SignedBy != nil { - scr.wrappedHash.Write(buf[:n]) - } - - if sensitiveParsingError == io.EOF { - var p packet.Packet - var readError error - var sig *packet.Signature - - p, readError = scr.packets.Next() - for readError == nil { - var ok bool - if sig, ok = p.(*packet.Signature); ok { - if sig.Version == 5 && (sig.SigType == 0x00 || sig.SigType == 0x01) { - sig.Metadata = scr.md.LiteralData - } - - // If signature KeyID matches - if scr.md.SignedBy != nil && *sig.IssuerKeyId == scr.md.SignedByKeyId { - key := scr.md.SignedBy - signatureError := key.PublicKey.VerifySignature(scr.h, sig) - if signatureError == nil { - now := scr.config.Now() - if key.Revoked(now) || - key.Entity.Revoked(now) || // primary key is revoked (redundant if key is the primary key) - key.Entity.PrimaryIdentity().Revoked(now) { - signatureError = errors.ErrKeyRevoked - } - if sig.SigExpired(now) { - signatureError = errors.ErrSignatureExpired - } - if key.PublicKey.KeyExpired(key.SelfSignature, now) || - key.SelfSignature.SigExpired(now) { - signatureError = errors.ErrKeyExpired - } - } - scr.md.Signature = sig - scr.md.SignatureError = signatureError - } else { - scr.md.UnverifiedSignatures = append(scr.md.UnverifiedSignatures, sig) - } - } - - p, readError = scr.packets.Next() - } - - if scr.md.SignedBy != nil && scr.md.Signature == nil { - if scr.md.UnverifiedSignatures == nil { - scr.md.SignatureError = errors.StructuralError("LiteralData not followed by signature") - } else { - scr.md.SignatureError = errors.StructuralError("No matching signature found") - } - } - - // The SymmetricallyEncrypted packet, if any, might have an - // unsigned hash of its own. In order to check this we need to - // close that Reader. - if scr.md.decrypted != nil { - mdcErr := scr.md.decrypted.Close() - if mdcErr != nil { - return n, mdcErr - } - } - return n, io.EOF - } - - if sensitiveParsingError != nil { - return n, errors.StructuralError("parsing error") - } - - return n, nil -} - -// CheckDetachedSignature takes a signed file and a detached signature and -// returns the signer if the signature is valid. If the signer isn't known, -// ErrUnknownIssuer is returned. -func CheckDetachedSignature(keyring KeyRing, signed, signature io.Reader, config *packet.Config) (signer *Entity, err error) { - var expectedHashes []crypto.Hash - return CheckDetachedSignatureAndHash(keyring, signed, signature, expectedHashes, config) -} - -// CheckDetachedSignatureAndHash performs the same actions as -// CheckDetachedSignature and checks that the expected hash functions were used. -func CheckDetachedSignatureAndHash(keyring KeyRing, signed, signature io.Reader, expectedHashes []crypto.Hash, config *packet.Config) (signer *Entity, err error) { - var issuerKeyId uint64 - var hashFunc crypto.Hash - var sigType packet.SignatureType - var keys []Key - var p packet.Packet - - expectedHashesLen := len(expectedHashes) - packets := packet.NewReader(signature) - var sig *packet.Signature - for { - p, err = packets.Next() - if err == io.EOF { - return nil, errors.ErrUnknownIssuer - } - if err != nil { - return nil, err - } - - var ok bool - sig, ok = p.(*packet.Signature) - if !ok { - return nil, errors.StructuralError("non signature packet found") - } - if sig.IssuerKeyId == nil { - return nil, errors.StructuralError("signature doesn't have an issuer") - } - issuerKeyId = *sig.IssuerKeyId - hashFunc = sig.Hash - sigType = sig.SigType - - for i, expectedHash := range expectedHashes { - if hashFunc == expectedHash { - break - } - if i+1 == expectedHashesLen { - return nil, errors.StructuralError("hash algorithm mismatch with cleartext message headers") - } - } - - keys = keyring.KeysByIdUsage(issuerKeyId, packet.KeyFlagSign) - if len(keys) > 0 { - break - } - } - - if len(keys) == 0 { - panic("unreachable") - } - - h, wrappedHash, err := hashForSignature(hashFunc, sigType) - if err != nil { - return nil, err - } - - if _, err := io.Copy(wrappedHash, signed); err != nil && err != io.EOF { - return nil, err - } - - for _, key := range keys { - err = key.PublicKey.VerifySignature(h, sig) - if err == nil { - now := config.Now() - if key.Revoked(now) || - key.Entity.Revoked(now) || // primary key is revoked (redundant if key is the primary key) - key.Entity.PrimaryIdentity().Revoked(now) { - return key.Entity, errors.ErrKeyRevoked - } - if sig.SigExpired(now) { - return key.Entity, errors.ErrSignatureExpired - } - if key.PublicKey.KeyExpired(key.SelfSignature, now) || - key.SelfSignature.SigExpired(now) { - return key.Entity, errors.ErrKeyExpired - } - return key.Entity, nil - } - } - - return nil, err -} - -// CheckArmoredDetachedSignature performs the same actions as -// CheckDetachedSignature but expects the signature to be armored. -func CheckArmoredDetachedSignature(keyring KeyRing, signed, signature io.Reader, config *packet.Config) (signer *Entity, err error) { - body, err := readArmored(signature, SignatureType) - if err != nil { - return - } - - return CheckDetachedSignature(keyring, signed, body, config) -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/read_write_test_data.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/read_write_test_data.go deleted file mode 100644 index 117a14643b..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/read_write_test_data.go +++ /dev/null @@ -1,173 +0,0 @@ -package openpgp - -const testKey1KeyId = 0xA34D7E18C20C31BB -const testKey3KeyId = 0x338934250CCC0360 -const testKeyP256KeyId = 0xd44a2c495918513e - -const signedInput = "Signed message\nline 2\nline 3\n" -const signedTextInput = "Signed message\r\nline 2\r\nline 3\r\n" - -const recipientUnspecifiedHex = "848c0300000000000000000103ff62d4d578d03cf40c3da998dfe216c074fa6ddec5e31c197c9666ba292830d91d18716a80f699f9d897389a90e6d62d0238f5f07a5248073c0f24920e4bc4a30c2d17ee4e0cae7c3d4aaa4e8dced50e3010a80ee692175fa0385f62ecca4b56ee6e9980aa3ec51b61b077096ac9e800edaf161268593eedb6cc7027ff5cb32745d250010d407a6221ae22ef18469b444f2822478c4d190b24d36371a95cb40087cdd42d9399c3d06a53c0673349bfb607927f20d1e122bde1e2bf3aa6cae6edf489629bcaa0689539ae3b718914d88ededc3b" - -const detachedSignatureHex = "889c04000102000605024d449cd1000a0910a34d7e18c20c31bb167603ff57718d09f28a519fdc7b5a68b6a3336da04df85e38c5cd5d5bd2092fa4629848a33d85b1729402a2aab39c3ac19f9d573f773cc62c264dc924c067a79dfd8a863ae06c7c8686120760749f5fd9b1e03a64d20a7df3446ddc8f0aeadeaeba7cbaee5c1e366d65b6a0c6cc749bcb912d2f15013f812795c2e29eb7f7b77f39ce77" - -const detachedSignatureTextHex = "889c04010102000605024d449d21000a0910a34d7e18c20c31bbc8c60400a24fbef7342603a41cb1165767bd18985d015fb72fe05db42db36cfb2f1d455967f1e491194fbf6cf88146222b23bf6ffbd50d17598d976a0417d3192ff9cc0034fd00f287b02e90418bbefe609484b09231e4e7a5f3562e199bf39909ab5276c4d37382fe088f6b5c3426fc1052865da8b3ab158672d58b6264b10823dc4b39" - -const detachedSignatureDSAHex = "884604001102000605024d6c4eac000a0910338934250ccc0360f18d00a087d743d6405ed7b87755476629600b8b694a39e900a0abff8126f46faf1547c1743c37b21b4ea15b8f83" - -const detachedSignatureP256Hex = "885e0400130a0006050256e5bb00000a0910d44a2c495918513edef001009841a4f792beb0befccb35c8838a6a87d9b936beaa86db6745ddc7b045eee0cf00fd1ac1f78306b17e965935dd3f8bae4587a76587e4af231efe19cc4011a8434817" - -// The plaintext is https://www.gutenberg.org/cache/epub/1080/pg1080.txt -const modestProposalSha512 = "lbbrB1+WP3T9AaC9OQqBdOcCjgeEQadlulXsNPgVx0tyqPzDHwUugZ2gE7V0ESKAw6kAVfgkcuvfgxAAGaeHtw==" - -const testKeys1And2Hex = "988d044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd0011010001b41054657374204b6579203120285253412988b804130102002205024d3c5c10021b03060b090807030206150802090a0b0416020301021e01021780000a0910a34d7e18c20c31bbb5b304009cc45fe610b641a2c146331be94dade0a396e73ca725e1b25c21708d9cab46ecca5ccebc23055879df8f99eea39b377962a400f2ebdc36a7c99c333d74aeba346315137c3ff9d0a09b0273299090343048afb8107cf94cbd1400e3026f0ccac7ecebbc4d78588eb3e478fe2754d3ca664bcf3eac96ca4a6b0c8d7df5102f60f6b0020003b88d044d3c5c10010400b201df61d67487301f11879d514f4248ade90c8f68c7af1284c161098de4c28c2850f1ec7b8e30f959793e571542ffc6532189409cb51c3d30dad78c4ad5165eda18b20d9826d8707d0f742e2ab492103a85bbd9ddf4f5720f6de7064feb0d39ee002219765bb07bcfb8b877f47abe270ddeda4f676108cecb6b9bb2ad484a4f0011010001889f04180102000905024d3c5c10021b0c000a0910a34d7e18c20c31bb1a03040085c8d62e16d05dc4e9dad64953c8a2eed8b6c12f92b1575eeaa6dcf7be9473dd5b24b37b6dffbb4e7c99ed1bd3cb11634be19b3e6e207bed7505c7ca111ccf47cb323bf1f8851eb6360e8034cbff8dd149993c959de89f8f77f38e7e98b8e3076323aa719328e2b408db5ec0d03936efd57422ba04f925cdc7b4c1af7590e40ab0020003988d044d3c5c33010400b488c3e5f83f4d561f317817538d9d0397981e9aef1321ca68ebfae1cf8b7d388e19f4b5a24a82e2fbbf1c6c26557a6c5845307a03d815756f564ac7325b02bc83e87d5480a8fae848f07cb891f2d51ce7df83dcafdc12324517c86d472cc0ee10d47a68fd1d9ae49a6c19bbd36d82af597a0d88cc9c49de9df4e696fc1f0b5d0011010001b42754657374204b6579203220285253412c20656e637279707465642070726976617465206b65792988b804130102002205024d3c5c33021b03060b090807030206150802090a0b0416020301021e01021780000a0910d4984f961e35246b98940400908a73b6a6169f700434f076c6c79015a49bee37130eaf23aaa3cfa9ce60bfe4acaa7bc95f1146ada5867e0079babb38804891f4f0b8ebca57a86b249dee786161a755b7a342e68ccf3f78ed6440a93a6626beb9a37aa66afcd4f888790cb4bb46d94a4ae3eb3d7d3e6b00f6bfec940303e89ec5b32a1eaaacce66497d539328b0020003b88d044d3c5c33010400a4e913f9442abcc7f1804ccab27d2f787ffa592077ca935a8bb23165bd8d57576acac647cc596b2c3f814518cc8c82953c7a4478f32e0cf645630a5ba38d9618ef2bc3add69d459ae3dece5cab778938d988239f8c5ae437807075e06c828019959c644ff05ef6a5a1dab72227c98e3a040b0cf219026640698d7a13d8538a570011010001889f04180102000905024d3c5c33021b0c000a0910d4984f961e35246b26c703ff7ee29ef53bc1ae1ead533c408fa136db508434e233d6e62be621e031e5940bbd4c08142aed0f82217e7c3e1ec8de574bc06ccf3c36633be41ad78a9eacd209f861cae7b064100758545cc9dd83db71806dc1cfd5fb9ae5c7474bba0c19c44034ae61bae5eca379383339dece94ff56ff7aa44a582f3e5c38f45763af577c0934b0020003" - -const testKeys1And2PrivateHex = "9501d8044d3c5c10010400b1d13382944bd5aba23a4312968b5095d14f947f600eb478e14a6fcb16b0e0cac764884909c020bc495cfcc39a935387c661507bdb236a0612fb582cac3af9b29cc2c8c70090616c41b662f4da4c1201e195472eb7f4ae1ccbcbf9940fe21d985e379a5563dde5b9a23d35f1cfaa5790da3b79db26f23695107bfaca8e7b5bcd00110100010003ff4d91393b9a8e3430b14d6209df42f98dc927425b881f1209f319220841273a802a97c7bdb8b3a7740b3ab5866c4d1d308ad0d3a79bd1e883aacf1ac92dfe720285d10d08752a7efe3c609b1d00f17f2805b217be53999a7da7e493bfc3e9618fd17018991b8128aea70a05dbce30e4fbe626aa45775fa255dd9177aabf4df7cf0200c1ded12566e4bc2bb590455e5becfb2e2c9796482270a943343a7835de41080582c2be3caf5981aa838140e97afa40ad652a0b544f83eb1833b0957dce26e47b0200eacd6046741e9ce2ec5beb6fb5e6335457844fb09477f83b050a96be7da043e17f3a9523567ed40e7a521f818813a8b8a72209f1442844843ccc7eb9805442570200bdafe0438d97ac36e773c7162028d65844c4d463e2420aa2228c6e50dc2743c3d6c72d0d782a5173fe7be2169c8a9f4ef8a7cf3e37165e8c61b89c346cdc6c1799d2b41054657374204b6579203120285253412988b804130102002205024d3c5c10021b03060b090807030206150802090a0b0416020301021e01021780000a0910a34d7e18c20c31bbb5b304009cc45fe610b641a2c146331be94dade0a396e73ca725e1b25c21708d9cab46ecca5ccebc23055879df8f99eea39b377962a400f2ebdc36a7c99c333d74aeba346315137c3ff9d0a09b0273299090343048afb8107cf94cbd1400e3026f0ccac7ecebbc4d78588eb3e478fe2754d3ca664bcf3eac96ca4a6b0c8d7df5102f60f6b00200009d01d8044d3c5c10010400b201df61d67487301f11879d514f4248ade90c8f68c7af1284c161098de4c28c2850f1ec7b8e30f959793e571542ffc6532189409cb51c3d30dad78c4ad5165eda18b20d9826d8707d0f742e2ab492103a85bbd9ddf4f5720f6de7064feb0d39ee002219765bb07bcfb8b877f47abe270ddeda4f676108cecb6b9bb2ad484a4f00110100010003fd17a7490c22a79c59281fb7b20f5e6553ec0c1637ae382e8adaea295f50241037f8997cf42c1ce26417e015091451b15424b2c59eb8d4161b0975630408e394d3b00f88d4b4e18e2cc85e8251d4753a27c639c83f5ad4a571c4f19d7cd460b9b73c25ade730c99df09637bd173d8e3e981ac64432078263bb6dc30d3e974150dd0200d0ee05be3d4604d2146fb0457f31ba17c057560785aa804e8ca5530a7cd81d3440d0f4ba6851efcfd3954b7e68908fc0ba47f7ac37bf559c6c168b70d3a7c8cd0200da1c677c4bce06a068070f2b3733b0a714e88d62aa3f9a26c6f5216d48d5c2b5624144f3807c0df30be66b3268eeeca4df1fbded58faf49fc95dc3c35f134f8b01fd1396b6c0fc1b6c4f0eb8f5e44b8eace1e6073e20d0b8bc5385f86f1cf3f050f66af789f3ef1fc107b7f4421e19e0349c730c68f0a226981f4e889054fdb4dc149e8e889f04180102000905024d3c5c10021b0c000a0910a34d7e18c20c31bb1a03040085c8d62e16d05dc4e9dad64953c8a2eed8b6c12f92b1575eeaa6dcf7be9473dd5b24b37b6dffbb4e7c99ed1bd3cb11634be19b3e6e207bed7505c7ca111ccf47cb323bf1f8851eb6360e8034cbff8dd149993c959de89f8f77f38e7e98b8e3076323aa719328e2b408db5ec0d03936efd57422ba04f925cdc7b4c1af7590e40ab00200009501fe044d3c5c33010400b488c3e5f83f4d561f317817538d9d0397981e9aef1321ca68ebfae1cf8b7d388e19f4b5a24a82e2fbbf1c6c26557a6c5845307a03d815756f564ac7325b02bc83e87d5480a8fae848f07cb891f2d51ce7df83dcafdc12324517c86d472cc0ee10d47a68fd1d9ae49a6c19bbd36d82af597a0d88cc9c49de9df4e696fc1f0b5d0011010001fe030302e9030f3c783e14856063f16938530e148bc57a7aa3f3e4f90df9dceccdc779bc0835e1ad3d006e4a8d7b36d08b8e0de5a0d947254ecfbd22037e6572b426bcfdc517796b224b0036ff90bc574b5509bede85512f2eefb520fb4b02aa523ba739bff424a6fe81c5041f253f8d757e69a503d3563a104d0d49e9e890b9d0c26f96b55b743883b472caa7050c4acfd4a21f875bdf1258d88bd61224d303dc9df77f743137d51e6d5246b88c406780528fd9a3e15bab5452e5b93970d9dcc79f48b38651b9f15bfbcf6da452837e9cc70683d1bdca94507870f743e4ad902005812488dd342f836e72869afd00ce1850eea4cfa53ce10e3608e13d3c149394ee3cbd0e23d018fcbcb6e2ec5a1a22972d1d462ca05355d0d290dd2751e550d5efb38c6c89686344df64852bf4ff86638708f644e8ec6bd4af9b50d8541cb91891a431326ab2e332faa7ae86cfb6e0540aa63160c1e5cdd5a4add518b303fff0a20117c6bc77f7cfbaf36b04c865c6c2b42754657374204b6579203220285253412c20656e637279707465642070726976617465206b65792988b804130102002205024d3c5c33021b03060b090807030206150802090a0b0416020301021e01021780000a0910d4984f961e35246b98940400908a73b6a6169f700434f076c6c79015a49bee37130eaf23aaa3cfa9ce60bfe4acaa7bc95f1146ada5867e0079babb38804891f4f0b8ebca57a86b249dee786161a755b7a342e68ccf3f78ed6440a93a6626beb9a37aa66afcd4f888790cb4bb46d94a4ae3eb3d7d3e6b00f6bfec940303e89ec5b32a1eaaacce66497d539328b00200009d01fe044d3c5c33010400a4e913f9442abcc7f1804ccab27d2f787ffa592077ca935a8bb23165bd8d57576acac647cc596b2c3f814518cc8c82953c7a4478f32e0cf645630a5ba38d9618ef2bc3add69d459ae3dece5cab778938d988239f8c5ae437807075e06c828019959c644ff05ef6a5a1dab72227c98e3a040b0cf219026640698d7a13d8538a570011010001fe030302e9030f3c783e148560f936097339ae381d63116efcf802ff8b1c9360767db5219cc987375702a4123fd8657d3e22700f23f95020d1b261eda5257e9a72f9a918e8ef22dd5b3323ae03bbc1923dd224db988cadc16acc04b120a9f8b7e84da9716c53e0334d7b66586ddb9014df604b41be1e960dcfcbc96f4ed150a1a0dd070b9eb14276b9b6be413a769a75b519a53d3ecc0c220e85cd91ca354d57e7344517e64b43b6e29823cbd87eae26e2b2e78e6dedfbb76e3e9f77bcb844f9a8932eb3db2c3f9e44316e6f5d60e9e2a56e46b72abe6b06dc9a31cc63f10023d1f5e12d2a3ee93b675c96f504af0001220991c88db759e231b3320dcedf814dcf723fd9857e3d72d66a0f2af26950b915abdf56c1596f46a325bf17ad4810d3535fb02a259b247ac3dbd4cc3ecf9c51b6c07cebb009c1506fba0a89321ec8683e3fd009a6e551d50243e2d5092fefb3321083a4bad91320dc624bd6b5dddf93553e3d53924c05bfebec1fb4bd47e89a1a889f04180102000905024d3c5c33021b0c000a0910d4984f961e35246b26c703ff7ee29ef53bc1ae1ead533c408fa136db508434e233d6e62be621e031e5940bbd4c08142aed0f82217e7c3e1ec8de574bc06ccf3c36633be41ad78a9eacd209f861cae7b064100758545cc9dd83db71806dc1cfd5fb9ae5c7474bba0c19c44034ae61bae5eca379383339dece94ff56ff7aa44a582f3e5c38f45763af577c0934b0020000" - -const dsaElGamalTestKeysHex = "9501e1044dfcb16a110400aa3e5c1a1f43dd28c2ffae8abf5cfce555ee874134d8ba0a0f7b868ce2214beddc74e5e1e21ded354a95d18acdaf69e5e342371a71fbb9093162e0c5f3427de413a7f2c157d83f5cd2f9d791256dc4f6f0e13f13c3302af27f2384075ab3021dff7a050e14854bbde0a1094174855fc02f0bae8e00a340d94a1f22b32e48485700a0cec672ac21258fb95f61de2ce1af74b2c4fa3e6703ff698edc9be22c02ae4d916e4fa223f819d46582c0516235848a77b577ea49018dcd5e9e15cff9dbb4663a1ae6dd7580fa40946d40c05f72814b0f88481207e6c0832c3bded4853ebba0a7e3bd8e8c66df33d5a537cd4acf946d1080e7a3dcea679cb2b11a72a33a2b6a9dc85f466ad2ddf4c3db6283fa645343286971e3dd700703fc0c4e290d45767f370831a90187e74e9972aae5bff488eeff7d620af0362bfb95c1a6c3413ab5d15a2e4139e5d07a54d72583914661ed6a87cce810be28a0aa8879a2dd39e52fb6fe800f4f181ac7e328f740cde3d09a05cecf9483e4cca4253e60d4429ffd679d9996a520012aad119878c941e3cf151459873bdfc2a9563472fe0303027a728f9feb3b864260a1babe83925ce794710cfd642ee4ae0e5b9d74cee49e9c67b6cd0ea5dfbb582132195a121356a1513e1bca73e5b80c58c7ccb4164453412f456c47616d616c2054657374204b65792031886204131102002205024dfcb16a021b03060b090807030206150802090a0b0416020301021e01021780000a091033af447ccd759b09fadd00a0b8fd6f5a790bad7e9f2dbb7632046dc4493588db009c087c6a9ba9f7f49fab221587a74788c00db4889ab00200009d0157044dfcb16a1004008dec3f9291205255ccff8c532318133a6840739dd68b03ba942676f9038612071447bf07d00d559c5c0875724ea16a4c774f80d8338b55fca691a0522e530e604215b467bbc9ccfd483a1da99d7bc2648b4318fdbd27766fc8bfad3fddb37c62b8ae7ccfe9577e9b8d1e77c1d417ed2c2ef02d52f4da11600d85d3229607943700030503ff506c94c87c8cab778e963b76cf63770f0a79bf48fb49d3b4e52234620fc9f7657f9f8d56c96a2b7c7826ae6b57ebb2221a3fe154b03b6637cea7e6d98e3e45d87cf8dc432f723d3d71f89c5192ac8d7290684d2c25ce55846a80c9a7823f6acd9bb29fa6cd71f20bc90eccfca20451d0c976e460e672b000df49466408d527affe0303027a728f9feb3b864260abd761730327bca2aaa4ea0525c175e92bf240682a0e83b226f97ecb2e935b62c9a133858ce31b271fa8eb41f6a1b3cd72a63025ce1a75ee4180dcc284884904181102000905024dfcb16a021b0c000a091033af447ccd759b09dd0b009e3c3e7296092c81bee5a19929462caaf2fff3ae26009e218c437a2340e7ea628149af1ec98ec091a43992b00200009501e1044dfcb1be1104009f61faa61aa43df75d128cbe53de528c4aec49ce9360c992e70c77072ad5623de0a3a6212771b66b39a30dad6781799e92608316900518ec01184a85d872365b7d2ba4bacfb5882ea3c2473d3750dc6178cc1cf82147fb58caa28b28e9f12f6d1efcb0534abed644156c91cca4ab78834268495160b2400bc422beb37d237c2300a0cac94911b6d493bda1e1fbc6feeca7cb7421d34b03fe22cec6ccb39675bb7b94a335c2b7be888fd3906a1125f33301d8aa6ec6ee6878f46f73961c8d57a3e9544d8ef2a2cbfd4d52da665b1266928cfe4cb347a58c412815f3b2d2369dec04b41ac9a71cc9547426d5ab941cccf3b18575637ccfb42df1a802df3cfe0a999f9e7109331170e3a221991bf868543960f8c816c28097e503fe319db10fb98049f3a57d7c80c420da66d56f3644371631fad3f0ff4040a19a4fedc2d07727a1b27576f75a4d28c47d8246f27071e12d7a8de62aad216ddbae6aa02efd6b8a3e2818cda48526549791ab277e447b3a36c57cefe9b592f5eab73959743fcc8e83cbefec03a329b55018b53eec196765ae40ef9e20521a603c551efe0303020950d53a146bf9c66034d00c23130cce95576a2ff78016ca471276e8227fb30b1ffbd92e61804fb0c3eff9e30b1a826ee8f3e4730b4d86273ca977b4164453412f456c47616d616c2054657374204b65792032886204131102002205024dfcb1be021b03060b090807030206150802090a0b0416020301021e01021780000a0910a86bf526325b21b22bd9009e34511620415c974750a20df5cb56b182f3b48e6600a0a9466cb1a1305a84953445f77d461593f1d42bc1b00200009d0157044dfcb1be1004009565a951da1ee87119d600c077198f1c1bceb0f7aa54552489298e41ff788fa8f0d43a69871f0f6f77ebdfb14a4260cf9fbeb65d5844b4272a1904dd95136d06c3da745dc46327dd44a0f16f60135914368c8039a34033862261806bb2c5ce1152e2840254697872c85441ccb7321431d75a747a4bfb1d2c66362b51ce76311700030503fc0ea76601c196768070b7365a200e6ddb09307f262d5f39eec467b5f5784e22abdf1aa49226f59ab37cb49969d8f5230ea65caf56015abda62604544ed526c5c522bf92bed178a078789f6c807b6d34885688024a5bed9e9f8c58d11d4b82487b44c5f470c5606806a0443b79cadb45e0f897a561a53f724e5349b9267c75ca17fe0303020950d53a146bf9c660bc5f4ce8f072465e2d2466434320c1e712272fafc20e342fe7608101580fa1a1a367e60486a7cd1246b7ef5586cf5e10b32762b710a30144f12dd17dd4884904181102000905024dfcb1be021b0c000a0910a86bf526325b21b2904c00a0b2b66b4b39ccffda1d10f3ea8d58f827e30a8b8e009f4255b2d8112a184e40cde43a34e8655ca7809370b0020000" - -const signedMessageHex = "a3019bc0cbccc0c4b8d8b74ee2108fe16ec6d3ca490cbe362d3f8333d3f352531472538b8b13d353b97232f352158c20943157c71c16064626063656269052062e4e01987e9b6fccff4b7df3a34c534b23e679cbec3bc0f8f6e64dfb4b55fe3f8efa9ce110ddb5cd79faf1d753c51aecfa669f7e7aa043436596cccc3359cb7dd6bbe9ecaa69e5989d9e57209571edc0b2fa7f57b9b79a64ee6e99ce1371395fee92fec2796f7b15a77c386ff668ee27f6d38f0baa6c438b561657377bf6acff3c5947befd7bf4c196252f1d6e5c524d0300" - -const signedTextMessageHex = "a3019bc0cbccc8c4b8d8b74ee2108fe16ec6d36a250cbece0c178233d3f352531472538b8b13d35379b97232f352158ca0b4312f57c71c1646462606365626906a062e4e019811591798ff99bf8afee860b0d8a8c2a85c3387e3bcf0bb3b17987f2bbcfab2aa526d930cbfd3d98757184df3995c9f3e7790e36e3e9779f06089d4c64e9e47dd6202cb6e9bc73c5d11bb59fbaf89d22d8dc7cf199ddf17af96e77c5f65f9bbed56f427bd8db7af37f6c9984bf9385efaf5f184f986fb3e6adb0ecfe35bbf92d16a7aa2a344fb0bc52fb7624f0200" - -const signedEncryptedMessageHex = "c18c032a67d68660df41c70103ff5a84c9a72f80e74ef0384c2d6a9ebfe2b09e06a8f298394f6d2abf174e40934ab0ec01fb2d0ddf21211c6fe13eb238563663b017a6b44edca552eb4736c4b7dc6ed907dd9e12a21b51b64b46f902f76fb7aaf805c1db8070574d8d0431a23e324a750f77fb72340a17a42300ee4ca8207301e95a731da229a63ab9c6b44541fbd2c11d016d810b3b3b2b38f15b5b40f0a4910332829c2062f1f7cc61f5b03677d73c54cafa1004ced41f315d46444946faae571d6f426e6dbd45d9780eb466df042005298adabf7ce0ef766dfeb94cd449c7ed0046c880339599c4711af073ce649b1e237c40b50a5536283e03bdbb7afad78bd08707715c67fb43295f905b4c479178809d429a8e167a9a8c6dfd8ab20b4edebdc38d6dec879a3202e1b752690d9bb5b0c07c5a227c79cc200e713a99251a4219d62ad5556900cf69bd384b6c8e726c7be267471d0d23af956da165af4af757246c2ebcc302b39e8ef2fccb4971b234fcda22d759ddb20e27269ee7f7fe67898a9de721bfa02ab0becaa046d00ea16cb1afc4e2eab40d0ac17121c565686e5cbd0cbdfbd9d6db5c70278b9c9db5a83176d04f61fbfbc4471d721340ede2746e5c312ded4f26787985af92b64fae3f253dbdde97f6a5e1996fd4d865599e32ff76325d3e9abe93184c02988ee89a4504356a4ef3b9b7a57cbb9637ca90af34a7676b9ef559325c3cca4e29d69fec1887f5440bb101361d744ad292a8547f22b4f22b419a42aa836169b89190f46d9560824cb2ac6e8771de8223216a5e647e132ab9eebcba89569ab339cb1c3d70fe806b31f4f4c600b4103b8d7583ebff16e43dcda551e6530f975122eb8b29" - -const verifiedSignatureEncryptedMessageHex = "c2b304000108000605026048f6d600210910a34d7e18c20c31bb1621045fb74b1d03b1e3cb31bc2f8aa34d7e18c20c31bb9a3b0400a32ddac1af259c1b0abab0041327ea04970944401978fb647dd1cf9aba4f164e43f0d8a9389501886474bdd4a6e77f6aea945c07dfbf87743835b44cc2c39a1f9aeecfa83135abc92e18e50396f2e6a06c44e0188b0081effbfb4160d28f118d4ff73dd199a102e47cffd8c7ff2bacd83ae72b5820c021a486766dd587b5da61" - -const unverifiedSignatureEncryptedMessageHex = "c2b304000108000605026048f6d600210910a34d7e18c20c31bb1621045fb74b1d03b1e3cb31bc2f8aa34d7e18c20c31bb9a3b0400a32ddac1af259c1b0abab0041327ea04970944401978fb647dd1cf9aba4f164e43f0d8a9389501886474bdd4a6e77f6aea945c07dfbf87743835b44cc2c39a1f9aeecfa83135abc92e18e50396f2e6a06c44e0188b0081effbfb4160d28f118d4ff73dd199a102e47cffd8c7ff2bacd83ae72b5820c021a486766dd587b5da61" - -const signedEncryptedMessage2Hex = "85010e03cf6a7abcd43e36731003fb057f5495b79db367e277cdbe4ab90d924ddee0c0381494112ff8c1238fb0184af35d1731573b01bc4c55ecacd2aafbe2003d36310487d1ecc9ac994f3fada7f9f7f5c3a64248ab7782906c82c6ff1303b69a84d9a9529c31ecafbcdb9ba87e05439897d87e8a2a3dec55e14df19bba7f7bd316291c002ae2efd24f83f9e3441203fc081c0c23dc3092a454ca8a082b27f631abf73aca341686982e8fbda7e0e7d863941d68f3de4a755c2964407f4b5e0477b3196b8c93d551dd23c8beef7d0f03fbb1b6066f78907faf4bf1677d8fcec72651124080e0b7feae6b476e72ab207d38d90b958759fdedfc3c6c35717c9dbfc979b3cfbbff0a76d24a5e57056bb88acbd2a901ef64bc6e4db02adc05b6250ff378de81dca18c1910ab257dff1b9771b85bb9bbe0a69f5989e6d1710a35e6dfcceb7d8fb5ccea8db3932b3d9ff3fe0d327597c68b3622aec8e3716c83a6c93f497543b459b58ba504ed6bcaa747d37d2ca746fe49ae0a6ce4a8b694234e941b5159ff8bd34b9023da2814076163b86f40eed7c9472f81b551452d5ab87004a373c0172ec87ea6ce42ccfa7dbdad66b745496c4873d8019e8c28d6b3" - -const signatureEncryptedMessage2Hex = "c24604001102000605024dfd0166000a091033af447ccd759b09bae600a096ec5e63ecf0a403085e10f75cc3bab327663282009f51fad9df457ed8d2b70d8a73c76e0443eac0f377" - -const symmetricallyEncryptedCompressedHex = "c32e040903085a357c1a7b5614ed00cc0d1d92f428162058b3f558a0fb0980d221ebac6c97d5eda4e0fe32f6e706e94dd263012d6ca1ef8c4bbd324098225e603a10c85ebf09cbf7b5aeeb5ce46381a52edc51038b76a8454483be74e6dcd1e50d5689a8ae7eceaeefed98a0023d49b22eb1f65c2aa1ef1783bb5e1995713b0457102ec3c3075fe871267ffa4b686ad5d52000d857" - -const dsaTestKeyHex = "9901a2044d6c49de110400cb5ce438cf9250907ac2ba5bf6547931270b89f7c4b53d9d09f4d0213a5ef2ec1f26806d3d259960f872a4a102ef1581ea3f6d6882d15134f21ef6a84de933cc34c47cc9106efe3bd84c6aec12e78523661e29bc1a61f0aab17fa58a627fd5fd33f5149153fbe8cd70edf3d963bc287ef875270ff14b5bfdd1bca4483793923b00a0fe46d76cb6e4cbdc568435cd5480af3266d610d303fe33ae8273f30a96d4d34f42fa28ce1112d425b2e3bf7ea553d526e2db6b9255e9dc7419045ce817214d1a0056dbc8d5289956a4b1b69f20f1105124096e6a438f41f2e2495923b0f34b70642607d45559595c7fe94d7fa85fc41bf7d68c1fd509ebeaa5f315f6059a446b9369c277597e4f474a9591535354c7e7f4fd98a08aa60400b130c24ff20bdfbf683313f5daebf1c9b34b3bdadfc77f2ddd72ee1fb17e56c473664bc21d66467655dd74b9005e3a2bacce446f1920cd7017231ae447b67036c9b431b8179deacd5120262d894c26bc015bffe3d827ba7087ad9b700d2ca1f6d16cc1786581e5dd065f293c31209300f9b0afcc3f7c08dd26d0a22d87580b4db41054657374204b65792033202844534129886204131102002205024d6c49de021b03060b090807030206150802090a0b0416020301021e01021780000a0910338934250ccc03607e0400a0bdb9193e8a6b96fc2dfc108ae848914b504481f100a09c4dc148cb693293a67af24dd40d2b13a9e36794" - -const dsaTestKeyPrivateHex = "9501bb044d6c49de110400cb5ce438cf9250907ac2ba5bf6547931270b89f7c4b53d9d09f4d0213a5ef2ec1f26806d3d259960f872a4a102ef1581ea3f6d6882d15134f21ef6a84de933cc34c47cc9106efe3bd84c6aec12e78523661e29bc1a61f0aab17fa58a627fd5fd33f5149153fbe8cd70edf3d963bc287ef875270ff14b5bfdd1bca4483793923b00a0fe46d76cb6e4cbdc568435cd5480af3266d610d303fe33ae8273f30a96d4d34f42fa28ce1112d425b2e3bf7ea553d526e2db6b9255e9dc7419045ce817214d1a0056dbc8d5289956a4b1b69f20f1105124096e6a438f41f2e2495923b0f34b70642607d45559595c7fe94d7fa85fc41bf7d68c1fd509ebeaa5f315f6059a446b9369c277597e4f474a9591535354c7e7f4fd98a08aa60400b130c24ff20bdfbf683313f5daebf1c9b34b3bdadfc77f2ddd72ee1fb17e56c473664bc21d66467655dd74b9005e3a2bacce446f1920cd7017231ae447b67036c9b431b8179deacd5120262d894c26bc015bffe3d827ba7087ad9b700d2ca1f6d16cc1786581e5dd065f293c31209300f9b0afcc3f7c08dd26d0a22d87580b4d00009f592e0619d823953577d4503061706843317e4fee083db41054657374204b65792033202844534129886204131102002205024d6c49de021b03060b090807030206150802090a0b0416020301021e01021780000a0910338934250ccc03607e0400a0bdb9193e8a6b96fc2dfc108ae848914b504481f100a09c4dc148cb693293a67af24dd40d2b13a9e36794" - -const p256TestKeyHex = "98520456e5b83813082a8648ce3d030107020304a2072cd6d21321266c758cc5b83fab0510f751cb8d91897cddb7047d8d6f185546e2107111b0a95cb8ef063c33245502af7a65f004d5919d93ee74eb71a66253b424502d3235362054657374204b6579203c696e76616c6964406578616d706c652e636f6d3e8879041313080021050256e5b838021b03050b09080702061508090a0b020416020301021e01021780000a0910d44a2c495918513e54e50100dfa64f97d9b47766fc1943c6314ba3f2b2a103d71ad286dc5b1efb96a345b0c80100dbc8150b54241f559da6ef4baacea6d31902b4f4b1bdc09b34bf0502334b7754b8560456e5b83812082a8648ce3d030107020304bfe3cea9cee13486f8d518aa487fecab451f25467d2bf08e58f63e5fa525d5482133e6a79299c274b068ef0be448152ad65cf11cf764348588ca4f6a0bcf22b6030108078861041813080009050256e5b838021b0c000a0910d44a2c495918513e4a4800ff49d589fa64024ad30be363a032e3a0e0e6f5db56ba4c73db850518bf0121b8f20100fd78e065f4c70ea5be9df319ea67e493b936fc78da834a71828043d3154af56e" - -const p256TestKeyPrivateHex = "94a50456e5b83813082a8648ce3d030107020304a2072cd6d21321266c758cc5b83fab0510f751cb8d91897cddb7047d8d6f185546e2107111b0a95cb8ef063c33245502af7a65f004d5919d93ee74eb71a66253fe070302f0c2bfb0b6c30f87ee1599472b8636477eab23ced13b271886a4b50ed34c9d8436af5af5b8f88921f0efba6ef8c37c459bbb88bc1c6a13bbd25c4ce9b1e97679569ee77645d469bf4b43de637f5561b424502d3235362054657374204b6579203c696e76616c6964406578616d706c652e636f6d3e8879041313080021050256e5b838021b03050b09080702061508090a0b020416020301021e01021780000a0910d44a2c495918513e54e50100dfa64f97d9b47766fc1943c6314ba3f2b2a103d71ad286dc5b1efb96a345b0c80100dbc8150b54241f559da6ef4baacea6d31902b4f4b1bdc09b34bf0502334b77549ca90456e5b83812082a8648ce3d030107020304bfe3cea9cee13486f8d518aa487fecab451f25467d2bf08e58f63e5fa525d5482133e6a79299c274b068ef0be448152ad65cf11cf764348588ca4f6a0bcf22b603010807fe0703027510012471a603cfee2968dce19f732721ddf03e966fd133b4e3c7a685b788705cbc46fb026dc94724b830c9edbaecd2fb2c662f23169516cacd1fe423f0475c364ecc10abcabcfd4bbbda1a36a1bd8861041813080009050256e5b838021b0c000a0910d44a2c495918513e4a4800ff49d589fa64024ad30be363a032e3a0e0e6f5db56ba4c73db850518bf0121b8f20100fd78e065f4c70ea5be9df319ea67e493b936fc78da834a71828043d3154af56e" - -const armoredPrivateKeyBlock = `-----BEGIN PGP PRIVATE KEY BLOCK----- -Version: GnuPG v1.4.10 (GNU/Linux) - -lQHYBE2rFNoBBADFwqWQIW/DSqcB4yCQqnAFTJ27qS5AnB46ccAdw3u4Greeu3Bp -idpoHdjULy7zSKlwR1EA873dO/k/e11Ml3dlAFUinWeejWaK2ugFP6JjiieSsrKn -vWNicdCS4HTWn0X4sjl0ZiAygw6GNhqEQ3cpLeL0g8E9hnYzJKQ0LWJa0QARAQAB -AAP/TB81EIo2VYNmTq0pK1ZXwUpxCrvAAIG3hwKjEzHcbQznsjNvPUihZ+NZQ6+X -0HCfPAdPkGDCLCb6NavcSW+iNnLTrdDnSI6+3BbIONqWWdRDYJhqZCkqmG6zqSfL -IdkJgCw94taUg5BWP/AAeQrhzjChvpMQTVKQL5mnuZbUCeMCAN5qrYMP2S9iKdnk -VANIFj7656ARKt/nf4CBzxcpHTyB8+d2CtPDKCmlJP6vL8t58Jmih+kHJMvC0dzn -gr5f5+sCAOOe5gt9e0am7AvQWhdbHVfJU0TQJx+m2OiCJAqGTB1nvtBLHdJnfdC9 -TnXXQ6ZXibqLyBies/xeY2sCKL5qtTMCAKnX9+9d/5yQxRyrQUHt1NYhaXZnJbHx -q4ytu0eWz+5i68IYUSK69jJ1NWPM0T6SkqpB3KCAIv68VFm9PxqG1KmhSrQIVGVz -dCBLZXmIuAQTAQIAIgUCTasU2gIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AA -CgkQO9o98PRieSoLhgQAkLEZex02Qt7vGhZzMwuN0R22w3VwyYyjBx+fM3JFETy1 -ut4xcLJoJfIaF5ZS38UplgakHG0FQ+b49i8dMij0aZmDqGxrew1m4kBfjXw9B/v+ -eIqpODryb6cOSwyQFH0lQkXC040pjq9YqDsO5w0WYNXYKDnzRV0p4H1pweo2VDid -AdgETasU2gEEAN46UPeWRqKHvA99arOxee38fBt2CI08iiWyI8T3J6ivtFGixSqV -bRcPxYO/qLpVe5l84Nb3X71GfVXlc9hyv7CD6tcowL59hg1E/DC5ydI8K8iEpUmK -/UnHdIY5h8/kqgGxkY/T/hgp5fRQgW1ZoZxLajVlMRZ8W4tFtT0DeA+JABEBAAEA -A/0bE1jaaZKj6ndqcw86jd+QtD1SF+Cf21CWRNeLKnUds4FRRvclzTyUMuWPkUeX -TaNNsUOFqBsf6QQ2oHUBBK4VCHffHCW4ZEX2cd6umz7mpHW6XzN4DECEzOVksXtc -lUC1j4UB91DC/RNQqwX1IV2QLSwssVotPMPqhOi0ZLNY7wIA3n7DWKInxYZZ4K+6 -rQ+POsz6brEoRHwr8x6XlHenq1Oki855pSa1yXIARoTrSJkBtn5oI+f8AzrnN0BN -oyeQAwIA/7E++3HDi5aweWrViiul9cd3rcsS0dEnksPhvS0ozCJiHsq/6GFmy7J8 -QSHZPteedBnZyNp5jR+H7cIfVN3KgwH/Skq4PsuPhDq5TKK6i8Pc1WW8MA6DXTdU -nLkX7RGmMwjC0DBf7KWAlPjFaONAX3a8ndnz//fy1q7u2l9AZwrj1qa1iJ8EGAEC -AAkFAk2rFNoCGwwACgkQO9o98PRieSo2/QP/WTzr4ioINVsvN1akKuekmEMI3LAp -BfHwatufxxP1U+3Si/6YIk7kuPB9Hs+pRqCXzbvPRrI8NHZBmc8qIGthishdCYad -AHcVnXjtxrULkQFGbGvhKURLvS9WnzD/m1K2zzwxzkPTzT9/Yf06O6Mal5AdugPL -VrM0m72/jnpKo04= -=zNCn ------END PGP PRIVATE KEY BLOCK-----` - -const e2ePublicKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- -Charset: UTF-8 - -xv8AAABSBAAAAAATCCqGSM49AwEHAgME1LRoXSpOxtHXDUdmuvzchyg6005qIBJ4 -sfaSxX7QgH9RV2ONUhC+WiayCNADq+UMzuR/vunSr4aQffXvuGnR383/AAAAFDxk -Z2lsQHlhaG9vLWluYy5jb20+wv8AAACGBBATCAA4/wAAAAWCVGvAG/8AAAACiwn/ -AAAACZC2VkQCOjdvYf8AAAAFlQgJCgv/AAAAA5YBAv8AAAACngEAAE1BAP0X8veD -24IjmI5/C6ZAfVNXxgZZFhTAACFX75jUA3oD6AEAzoSwKf1aqH6oq62qhCN/pekX -+WAsVMBhNwzLpqtCRjLO/wAAAFYEAAAAABIIKoZIzj0DAQcCAwT50ain7vXiIRv8 -B1DO3x3cE/aattZ5sHNixJzRCXi2vQIA5QmOxZ6b5jjUekNbdHG3SZi1a2Ak5mfX -fRxC/5VGAwEIB8L/AAAAZQQYEwgAGP8AAAAFglRrwBz/AAAACZC2VkQCOjdvYQAA -FJAA9isX3xtGyMLYwp2F3nXm7QEdY5bq5VUcD/RJlj792VwA/1wH0pCzVLl4Q9F9 -ex7En5r7rHR5xwX82Msc+Rq9dSyO -=7MrZ ------END PGP PUBLIC KEY BLOCK-----` - -const dsaKeyWithSHA512 = `9901a2044f04b07f110400db244efecc7316553ee08d179972aab87bb1214de7692593fcf5b6feb1c80fba268722dd464748539b85b81d574cd2d7ad0ca2444de4d849b8756bad7768c486c83a824f9bba4af773d11742bdfb4ac3b89ef8cc9452d4aad31a37e4b630d33927bff68e879284a1672659b8b298222fc68f370f3e24dccacc4a862442b9438b00a0ea444a24088dc23e26df7daf8f43cba3bffc4fe703fe3d6cd7fdca199d54ed8ae501c30e3ec7871ea9cdd4cf63cfe6fc82281d70a5b8bb493f922cd99fba5f088935596af087c8d818d5ec4d0b9afa7f070b3d7c1dd32a84fca08d8280b4890c8da1dde334de8e3cad8450eed2a4a4fcc2db7b8e5528b869a74a7f0189e11ef097ef1253582348de072bb07a9fa8ab838e993cef0ee203ff49298723e2d1f549b00559f886cd417a41692ce58d0ac1307dc71d85a8af21b0cf6eaa14baf2922d3a70389bedf17cc514ba0febbd107675a372fe84b90162a9e88b14d4b1c6be855b96b33fb198c46f058568817780435b6936167ebb3724b680f32bf27382ada2e37a879b3d9de2abe0c3f399350afd1ad438883f4791e2e3b4184453412068617368207472756e636174696f6e207465737488620413110a002205024f04b07f021b03060b090807030206150802090a0b0416020301021e01021780000a0910ef20e0cefca131581318009e2bf3bf047a44d75a9bacd00161ee04d435522397009a03a60d51bd8a568c6c021c8d7cf1be8d990d6417b0020003` - -const unknownHashFunctionHex = `8a00000040040001990006050253863c24000a09103b4fe6acc0b21f32ffff0101010101010101010101010101010101010101010101010101010101010101010101010101` - -const rsaSignatureBadMPIlength = `8a00000040040001030006050253863c24000a09103b4fe6acc0b21f32ffff0101010101010101010101010101010101010101010101010101010101010101010101010101` - -const missingHashFunctionHex = `8a00000040040001030006050253863c24000a09103b4fe6acc0b21f32ffff0101010101010101010101010101010101010101010101010101010101010101010101` - -const campbellQuine = `a0b001000300fcffa0b001000d00f2ff000300fcffa0b001000d00f2ff8270a01c00000500faff8270a01c00000500faff000500faff001400ebff8270a01c00000500faff000500faff001400ebff428821c400001400ebff428821c400001400ebff428821c400001400ebff428821c400001400ebff428821c400000000ffff000000ffff000b00f4ff428821c400000000ffff000000ffff000b00f4ff0233214c40000100feff000233214c40000100feff0000` - -const keyV4forVerifyingSignedMessageV3 = `-----BEGIN PGP PUBLIC KEY BLOCK----- -Comment: GPGTools - https://gpgtools.org - -mI0EVfxoFQEEAMBIqmbDfYygcvP6Phr1wr1XI41IF7Qixqybs/foBF8qqblD9gIY -BKpXjnBOtbkcVOJ0nljd3/sQIfH4E0vQwK5/4YRQSI59eKOqd6Fx+fWQOLG+uu6z -tewpeCj9LLHvibx/Sc7VWRnrznia6ftrXxJ/wHMezSab3tnGC0YPVdGNABEBAAG0 -JEdvY3J5cHRvIFRlc3QgS2V5IDx0aGVtYXhAZ21haWwuY29tPoi5BBMBCgAjBQJV -/GgVAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQeXnQmhdGW9PFVAP+ -K7TU0qX5ArvIONIxh/WAweyOk884c5cE8f+3NOPOOCRGyVy0FId5A7MmD5GOQh4H -JseOZVEVCqlmngEvtHZb3U1VYtVGE5WZ+6rQhGsMcWP5qaT4soYwMBlSYxgYwQcx -YhN9qOr292f9j2Y//TTIJmZT4Oa+lMxhWdqTfX+qMgG4jQRV/GgVAQQArhFSiij1 -b+hT3dnapbEU+23Z1yTu1DfF6zsxQ4XQWEV3eR8v+8mEDDNcz8oyyF56k6UQ3rXi -UMTIwRDg4V6SbZmaFbZYCOwp/EmXJ3rfhm7z7yzXj2OFN22luuqbyVhuL7LRdB0M -pxgmjXb4tTvfgKd26x34S+QqUJ7W6uprY4sAEQEAAYifBBgBCgAJBQJV/GgVAhsM -AAoJEHl50JoXRlvT7y8D/02ckx4OMkKBZo7viyrBw0MLG92i+DC2bs35PooHR6zz -786mitjOp5z2QWNLBvxC70S0qVfCIz8jKupO1J6rq6Z8CcbLF3qjm6h1omUBf8Nd -EfXKD2/2HV6zMKVknnKzIEzauh+eCKS2CeJUSSSryap/QLVAjRnckaES/OsEWhNB -=RZia ------END PGP PUBLIC KEY BLOCK----- -` - -const signedMessageV3 = `-----BEGIN PGP MESSAGE----- -Comment: GPGTools - https://gpgtools.org - -owGbwMvMwMVYWXlhlrhb9GXG03JJDKF/MtxDMjKLFYAoUaEktbhEITe1uDgxPVWP -q5NhKjMrWAVcC9evD8z/bF/uWNjqtk/X3y5/38XGRQHm/57rrDRYuGnTw597Xqka -uM3137/hH3Os+Jf2dc0fXOITKwJvXJvecPVs0ta+Vg7ZO1MLn8w58Xx+6L58mbka -DGHyU9yTueZE8D+QF/Tz28Y78dqtF56R1VPn9Xw4uJqrWYdd7b3vIZ1V6R4Nh05d -iT57d/OhWwA= -=hG7R ------END PGP MESSAGE----- -` - -// https://mailarchive.ietf.org/arch/msg/openpgp/9SheW_LENE0Kxf7haNllovPyAdY/ -const v5PrivKey = `-----BEGIN PGP PRIVATE KEY BLOCK----- - -lGEFXJH05BYAAAAtCSsGAQQB2kcPAQEHQFhZlVcVVtwf+21xNQPX+ecMJJBL0MPd -fj75iux+my8QAAAAAAAiAQCHZ1SnSUmWqxEsoI6facIVZQu6mph3cBFzzTvcm5lA -Ng5ctBhlbW1hLmdvbGRtYW5AZXhhbXBsZS5uZXSIlgUTFggASCIhBRk0e8mHJGQC -X5nfPsLgAA7ZiEiS4fez6kyUAJFZVptUBQJckfTkAhsDBQsJCAcCAyICAQYVCgkI -CwIEFgIDAQIeBwIXgAAA9cAA/jiR3yMsZMeEQ40u6uzEoXa6UXeV/S3wwJAXRJy9 -M8s0AP9vuL/7AyTfFXwwzSjDnYmzS0qAhbLDQ643N+MXGBJ2BZxmBVyR9OQSAAAA -MgorBgEEAZdVAQUBAQdA+nysrzml2UCweAqtpDuncSPlvrcBWKU0yfU0YvYWWAoD -AQgHAAAAAAAiAP9OdAPppjU1WwpqjIItkxr+VPQRT8Zm/Riw7U3F6v3OiBFHiHoF -GBYIACwiIQUZNHvJhyRkAl+Z3z7C4AAO2YhIkuH3s+pMlACRWVabVAUCXJH05AIb -DAAAOSQBAP4BOOIR/sGLNMOfeb5fPs/02QMieoiSjIBnijhob2U5AQC+RtOHCHx7 -TcIYl5/Uyoi+FOvPLcNw4hOv2nwUzSSVAw== -=IiS2 ------END PGP PRIVATE KEY BLOCK-----` - -// Generated with the above private key -const v5PrivKeyMsg = `-----BEGIN PGP MESSAGE----- -Version: OpenPGP.js v4.10.7 -Comment: https://openpgpjs.org - -xA0DAQoWGTR7yYckZAIByxF1B21zZy50eHRfbIGSdGVzdMJ3BQEWCgAGBQJf -bIGSACMiIQUZNHvJhyRkAl+Z3z7C4AAO2YhIkuH3s+pMlACRWVabVDQvAP9G -y29VPonFXqi2zKkpZrvyvZxg+n5e8Nt9wNbuxeCd3QD/TtO2s+JvjrE4Siwv -UQdl5MlBka1QSNbMq2Bz7XwNPg4= -=6lbM ------END PGP MESSAGE-----` diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k.go deleted file mode 100644 index 8862c7c2e9..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/s2k/s2k.go +++ /dev/null @@ -1,367 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package s2k implements the various OpenPGP string-to-key transforms as -// specified in RFC 4800 section 3.7.1. -package s2k // import "github.com/ProtonMail/go-crypto/openpgp/s2k" - -import ( - "crypto" - "hash" - "io" - "strconv" - - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/algorithm" -) - -// Config collects configuration parameters for s2k key-stretching -// transformations. A nil *Config is valid and results in all default -// values. Currently, Config is used only by the Serialize function in -// this package. -type Config struct { - // S2KMode is the mode of s2k function. - // It can be 0 (simple), 1(salted), 3(iterated) - // 2(reserved) 100-110(private/experimental). - S2KMode uint8 - // Hash is the default hash function to be used. If - // nil, SHA256 is used. - Hash crypto.Hash - // S2KCount is only used for symmetric encryption. It - // determines the strength of the passphrase stretching when - // the said passphrase is hashed to produce a key. S2KCount - // should be between 65536 and 65011712, inclusive. If Config - // is nil or S2KCount is 0, the value 16777216 used. Not all - // values in the above range can be represented. S2KCount will - // be rounded up to the next representable value if it cannot - // be encoded exactly. See RFC 4880 Section 3.7.1.3. - S2KCount int -} - -// Params contains all the parameters of the s2k packet -type Params struct { - // mode is the mode of s2k function. - // It can be 0 (simple), 1(salted), 3(iterated) - // 2(reserved) 100-110(private/experimental). - mode uint8 - // hashId is the ID of the hash function used in any of the modes - hashId byte - // salt is a byte array to use as a salt in hashing process - salt []byte - // countByte is used to determine how many rounds of hashing are to - // be performed in s2k mode 3. See RFC 4880 Section 3.7.1.3. - countByte byte -} - -func (c *Config) hash() crypto.Hash { - if c == nil || uint(c.Hash) == 0 { - return crypto.SHA256 - } - - return c.Hash -} - -// EncodedCount get encoded count -func (c *Config) EncodedCount() uint8 { - if c == nil || c.S2KCount == 0 { - return 224 // The common case. Corresponding to 16777216 - } - - i := c.S2KCount - - switch { - case i < 65536: - i = 65536 - case i > 65011712: - i = 65011712 - } - - return encodeCount(i) -} - -// encodeCount converts an iterative "count" in the range 1024 to -// 65011712, inclusive, to an encoded count. The return value is the -// octet that is actually stored in the GPG file. encodeCount panics -// if i is not in the above range (encodedCount above takes care to -// pass i in the correct range). See RFC 4880 Section 3.7.7.1. -func encodeCount(i int) uint8 { - if i < 65536 || i > 65011712 { - panic("count arg i outside the required range") - } - - for encoded := 96; encoded < 256; encoded++ { - count := decodeCount(uint8(encoded)) - if count >= i { - return uint8(encoded) - } - } - - return 255 -} - -// decodeCount returns the s2k mode 3 iterative "count" corresponding to -// the encoded octet c. -func decodeCount(c uint8) int { - return (16 + int(c&15)) << (uint32(c>>4) + 6) -} - -// Simple writes to out the result of computing the Simple S2K function (RFC -// 4880, section 3.7.1.1) using the given hash and input passphrase. -func Simple(out []byte, h hash.Hash, in []byte) { - Salted(out, h, in, nil) -} - -var zero [1]byte - -// Salted writes to out the result of computing the Salted S2K function (RFC -// 4880, section 3.7.1.2) using the given hash, input passphrase and salt. -func Salted(out []byte, h hash.Hash, in []byte, salt []byte) { - done := 0 - var digest []byte - - for i := 0; done < len(out); i++ { - h.Reset() - for j := 0; j < i; j++ { - h.Write(zero[:]) - } - h.Write(salt) - h.Write(in) - digest = h.Sum(digest[:0]) - n := copy(out[done:], digest) - done += n - } -} - -// Iterated writes to out the result of computing the Iterated and Salted S2K -// function (RFC 4880, section 3.7.1.3) using the given hash, input passphrase, -// salt and iteration count. -func Iterated(out []byte, h hash.Hash, in []byte, salt []byte, count int) { - combined := make([]byte, len(in)+len(salt)) - copy(combined, salt) - copy(combined[len(salt):], in) - - if count < len(combined) { - count = len(combined) - } - - done := 0 - var digest []byte - for i := 0; done < len(out); i++ { - h.Reset() - for j := 0; j < i; j++ { - h.Write(zero[:]) - } - written := 0 - for written < count { - if written+len(combined) > count { - todo := count - written - h.Write(combined[:todo]) - written = count - } else { - h.Write(combined) - written += len(combined) - } - } - digest = h.Sum(digest[:0]) - n := copy(out[done:], digest) - done += n - } -} - -// Generate generates valid parameters from given configuration. -// It will enforce salted + hashed s2k method -func Generate(rand io.Reader, c *Config) (*Params, error) { - hashId, ok := HashToHashId(c.Hash) - if !ok { - return nil, errors.UnsupportedError("no such hash") - } - - params := &Params{ - mode: 3, // Enforce iterared + salted method - hashId: hashId, - salt: make([]byte, 8), - countByte: c.EncodedCount(), - } - - if _, err := io.ReadFull(rand, params.salt); err != nil { - return nil, err - } - - return params, nil -} - -// Parse reads a binary specification for a string-to-key transformation from r -// and returns a function which performs that transform. If the S2K is a special -// GNU extension that indicates that the private key is missing, then the error -// returned is errors.ErrDummyPrivateKey. -func Parse(r io.Reader) (f func(out, in []byte), err error) { - params, err := ParseIntoParams(r) - if err != nil { - return nil, err - } - - return params.Function() -} - -// ParseIntoParams reads a binary specification for a string-to-key -// transformation from r and returns a struct describing the s2k parameters. -func ParseIntoParams(r io.Reader) (params *Params, err error) { - var buf [9]byte - - _, err = io.ReadFull(r, buf[:2]) - if err != nil { - return - } - - params = &Params{ - mode: buf[0], - hashId: buf[1], - } - - switch params.mode { - case 0: - return params, nil - case 1: - _, err = io.ReadFull(r, buf[:8]) - if err != nil { - return nil, err - } - - params.salt = buf[:8] - return params, nil - case 3: - _, err = io.ReadFull(r, buf[:9]) - if err != nil { - return nil, err - } - - params.salt = buf[:8] - params.countByte = buf[8] - return params, nil - case 101: - // This is a GNU extension. See - // https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=doc/DETAILS;h=fe55ae16ab4e26d8356dc574c9e8bc935e71aef1;hb=23191d7851eae2217ecdac6484349849a24fd94a#l1109 - if _, err = io.ReadFull(r, buf[:4]); err != nil { - return nil, err - } - if buf[0] == 'G' && buf[1] == 'N' && buf[2] == 'U' && buf[3] == 1 { - return params, nil - } - return nil, errors.UnsupportedError("GNU S2K extension") - } - - return nil, errors.UnsupportedError("S2K function") -} - -func (params *Params) Dummy() bool { - return params != nil && params.mode == 101 -} - -func (params *Params) Function() (f func(out, in []byte), err error) { - if params.Dummy() { - return nil, errors.ErrDummyPrivateKey("dummy key found") - } - hashObj, ok := HashIdToHash(params.hashId) - if !ok { - return nil, errors.UnsupportedError("hash for S2K function: " + strconv.Itoa(int(params.hashId))) - } - if !hashObj.Available() { - return nil, errors.UnsupportedError("hash not available: " + strconv.Itoa(int(hashObj))) - } - - switch params.mode { - case 0: - f := func(out, in []byte) { - Simple(out, hashObj.New(), in) - } - - return f, nil - case 1: - f := func(out, in []byte) { - Salted(out, hashObj.New(), in, params.salt) - } - - return f, nil - case 3: - f := func(out, in []byte) { - Iterated(out, hashObj.New(), in, params.salt, decodeCount(params.countByte)) - } - - return f, nil - } - - return nil, errors.UnsupportedError("S2K function") -} - -func (params *Params) Serialize(w io.Writer) (err error) { - if _, err = w.Write([]byte{params.mode}); err != nil { - return - } - if _, err = w.Write([]byte{params.hashId}); err != nil { - return - } - if params.Dummy() { - _, err = w.Write(append([]byte("GNU"), 1)) - return - } - if params.mode > 0 { - if _, err = w.Write(params.salt); err != nil { - return - } - if params.mode == 3 { - _, err = w.Write([]byte{params.countByte}) - } - } - return -} - -// Serialize salts and stretches the given passphrase and writes the -// resulting key into key. It also serializes an S2K descriptor to -// w. The key stretching can be configured with c, which may be -// nil. In that case, sensible defaults will be used. -func Serialize(w io.Writer, key []byte, rand io.Reader, passphrase []byte, c *Config) error { - params, err := Generate(rand, c) - if err != nil { - return err - } - err = params.Serialize(w) - if err != nil { - return err - } - - f, err := params.Function() - if err != nil { - return err - } - f(key, passphrase) - return nil -} - -// HashIdToHash returns a crypto.Hash which corresponds to the given OpenPGP -// hash id. -func HashIdToHash(id byte) (h crypto.Hash, ok bool) { - if hash, ok := algorithm.HashById[id]; ok { - return hash.HashFunc(), true - } - return 0, false -} - -// HashIdToString returns the name of the hash function corresponding to the -// given OpenPGP hash id. -func HashIdToString(id byte) (name string, ok bool) { - if hash, ok := algorithm.HashById[id]; ok { - return hash.String(), true - } - return "", false -} - -// HashToHashId returns an OpenPGP hash id which corresponds the given Hash. -func HashToHashId(h crypto.Hash) (id byte, ok bool) { - for id, hash := range algorithm.HashById { - if hash.HashFunc() == h { - return id, true - } - } - return 0, false -} diff --git a/vendor/github.com/ProtonMail/go-crypto/openpgp/write.go b/vendor/github.com/ProtonMail/go-crypto/openpgp/write.go deleted file mode 100644 index 3a4f37e5c4..0000000000 --- a/vendor/github.com/ProtonMail/go-crypto/openpgp/write.go +++ /dev/null @@ -1,583 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package openpgp - -import ( - "crypto" - "hash" - "io" - "strconv" - "time" - - "github.com/ProtonMail/go-crypto/openpgp/armor" - "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/packet" - "github.com/ProtonMail/go-crypto/openpgp/s2k" -) - -// DetachSign signs message with the private key from signer (which must -// already have been decrypted) and writes the signature to w. -// If config is nil, sensible defaults will be used. -func DetachSign(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { - return detachSign(w, signer, message, packet.SigTypeBinary, config) -} - -// ArmoredDetachSign signs message with the private key from signer (which -// must already have been decrypted) and writes an armored signature to w. -// If config is nil, sensible defaults will be used. -func ArmoredDetachSign(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) (err error) { - return armoredDetachSign(w, signer, message, packet.SigTypeBinary, config) -} - -// DetachSignText signs message (after canonicalising the line endings) with -// the private key from signer (which must already have been decrypted) and -// writes the signature to w. -// If config is nil, sensible defaults will be used. -func DetachSignText(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { - return detachSign(w, signer, message, packet.SigTypeText, config) -} - -// ArmoredDetachSignText signs message (after canonicalising the line endings) -// with the private key from signer (which must already have been decrypted) -// and writes an armored signature to w. -// If config is nil, sensible defaults will be used. -func ArmoredDetachSignText(w io.Writer, signer *Entity, message io.Reader, config *packet.Config) error { - return armoredDetachSign(w, signer, message, packet.SigTypeText, config) -} - -func armoredDetachSign(w io.Writer, signer *Entity, message io.Reader, sigType packet.SignatureType, config *packet.Config) (err error) { - out, err := armor.Encode(w, SignatureType, nil) - if err != nil { - return - } - err = detachSign(out, signer, message, sigType, config) - if err != nil { - return - } - return out.Close() -} - -func detachSign(w io.Writer, signer *Entity, message io.Reader, sigType packet.SignatureType, config *packet.Config) (err error) { - signingKey, ok := signer.SigningKeyById(config.Now(), config.SigningKey()) - if !ok { - return errors.InvalidArgumentError("no valid signing keys") - } - if signingKey.PrivateKey == nil { - return errors.InvalidArgumentError("signing key doesn't have a private key") - } - if signingKey.PrivateKey.Encrypted { - return errors.InvalidArgumentError("signing key is encrypted") - } - - sig := new(packet.Signature) - sig.SigType = sigType - sig.PubKeyAlgo = signingKey.PrivateKey.PubKeyAlgo - sig.Hash = config.Hash() - sig.CreationTime = config.Now() - sigLifetimeSecs := config.SigLifetime() - sig.SigLifetimeSecs = &sigLifetimeSecs - sig.IssuerKeyId = &signingKey.PrivateKey.KeyId - - h, wrappedHash, err := hashForSignature(sig.Hash, sig.SigType) - if err != nil { - return - } - if _, err = io.Copy(wrappedHash, message); err != nil { - return err - } - - err = sig.Sign(h, signingKey.PrivateKey, config) - if err != nil { - return - } - - return sig.Serialize(w) -} - -// FileHints contains metadata about encrypted files. This metadata is, itself, -// encrypted. -type FileHints struct { - // IsBinary can be set to hint that the contents are binary data. - IsBinary bool - // FileName hints at the name of the file that should be written. It's - // truncated to 255 bytes if longer. It may be empty to suggest that the - // file should not be written to disk. It may be equal to "_CONSOLE" to - // suggest the data should not be written to disk. - FileName string - // ModTime contains the modification time of the file, or the zero time if not applicable. - ModTime time.Time -} - -// SymmetricallyEncrypt acts like gpg -c: it encrypts a file with a passphrase. -// The resulting WriteCloser must be closed after the contents of the file have -// been written. -// If config is nil, sensible defaults will be used. -func SymmetricallyEncrypt(ciphertext io.Writer, passphrase []byte, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { - if hints == nil { - hints = &FileHints{} - } - - key, err := packet.SerializeSymmetricKeyEncrypted(ciphertext, passphrase, config) - if err != nil { - return - } - - var w io.WriteCloser - cipherSuite := packet.CipherSuite{ - Cipher: config.Cipher(), - Mode: config.AEAD().Mode(), - } - w, err = packet.SerializeSymmetricallyEncrypted(ciphertext, config.Cipher(), config.AEAD() != nil, cipherSuite, key, config) - if err != nil { - return - } - - literalData := w - if algo := config.Compression(); algo != packet.CompressionNone { - var compConfig *packet.CompressionConfig - if config != nil { - compConfig = config.CompressionConfig - } - literalData, err = packet.SerializeCompressed(w, algo, compConfig) - if err != nil { - return - } - } - - var epochSeconds uint32 - if !hints.ModTime.IsZero() { - epochSeconds = uint32(hints.ModTime.Unix()) - } - return packet.SerializeLiteral(literalData, hints.IsBinary, hints.FileName, epochSeconds) -} - -// intersectPreferences mutates and returns a prefix of a that contains only -// the values in the intersection of a and b. The order of a is preserved. -func intersectPreferences(a []uint8, b []uint8) (intersection []uint8) { - var j int - for _, v := range a { - for _, v2 := range b { - if v == v2 { - a[j] = v - j++ - break - } - } - } - - return a[:j] -} - -// intersectPreferences mutates and returns a prefix of a that contains only -// the values in the intersection of a and b. The order of a is preserved. -func intersectCipherSuites(a [][2]uint8, b [][2]uint8) (intersection [][2]uint8) { - var j int - for _, v := range a { - for _, v2 := range b { - if v[0] == v2[0] && v[1] == v2[1] { - a[j] = v - j++ - break - } - } - } - - return a[:j] -} - -func hashToHashId(h crypto.Hash) uint8 { - v, ok := s2k.HashToHashId(h) - if !ok { - panic("tried to convert unknown hash") - } - return v -} - -// EncryptText encrypts a message to a number of recipients and, optionally, -// signs it. Optional information is contained in 'hints', also encrypted, that -// aids the recipients in processing the message. The resulting WriteCloser -// must be closed after the contents of the file have been written. If config -// is nil, sensible defaults will be used. The signing is done in text mode. -func EncryptText(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { - return encrypt(ciphertext, ciphertext, to, signed, hints, packet.SigTypeText, config) -} - -// Encrypt encrypts a message to a number of recipients and, optionally, signs -// it. hints contains optional information, that is also encrypted, that aids -// the recipients in processing the message. The resulting WriteCloser must -// be closed after the contents of the file have been written. -// If config is nil, sensible defaults will be used. -func Encrypt(ciphertext io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { - return encrypt(ciphertext, ciphertext, to, signed, hints, packet.SigTypeBinary, config) -} - -// EncryptSplit encrypts a message to a number of recipients and, optionally, signs -// it. hints contains optional information, that is also encrypted, that aids -// the recipients in processing the message. The resulting WriteCloser must -// be closed after the contents of the file have been written. -// If config is nil, sensible defaults will be used. -func EncryptSplit(keyWriter io.Writer, dataWriter io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { - return encrypt(keyWriter, dataWriter, to, signed, hints, packet.SigTypeBinary, config) -} - -// EncryptTextSplit encrypts a message to a number of recipients and, optionally, signs -// it. hints contains optional information, that is also encrypted, that aids -// the recipients in processing the message. The resulting WriteCloser must -// be closed after the contents of the file have been written. -// If config is nil, sensible defaults will be used. -func EncryptTextSplit(keyWriter io.Writer, dataWriter io.Writer, to []*Entity, signed *Entity, hints *FileHints, config *packet.Config) (plaintext io.WriteCloser, err error) { - return encrypt(keyWriter, dataWriter, to, signed, hints, packet.SigTypeText, config) -} - -// writeAndSign writes the data as a payload package and, optionally, signs -// it. hints contains optional information, that is also encrypted, -// that aids the recipients in processing the message. The resulting -// WriteCloser must be closed after the contents of the file have been -// written. If config is nil, sensible defaults will be used. -func writeAndSign(payload io.WriteCloser, candidateHashes []uint8, signed *Entity, hints *FileHints, sigType packet.SignatureType, config *packet.Config) (plaintext io.WriteCloser, err error) { - var signer *packet.PrivateKey - if signed != nil { - signKey, ok := signed.SigningKeyById(config.Now(), config.SigningKey()) - if !ok { - return nil, errors.InvalidArgumentError("no valid signing keys") - } - signer = signKey.PrivateKey - if signer == nil { - return nil, errors.InvalidArgumentError("no private key in signing key") - } - if signer.Encrypted { - return nil, errors.InvalidArgumentError("signing key must be decrypted") - } - } - - var hash crypto.Hash - for _, hashId := range candidateHashes { - if h, ok := s2k.HashIdToHash(hashId); ok && h.Available() { - hash = h - break - } - } - - // If the hash specified by config is a candidate, we'll use that. - if configuredHash := config.Hash(); configuredHash.Available() { - for _, hashId := range candidateHashes { - if h, ok := s2k.HashIdToHash(hashId); ok && h == configuredHash { - hash = h - break - } - } - } - - if hash == 0 { - hashId := candidateHashes[0] - name, ok := s2k.HashIdToString(hashId) - if !ok { - name = "#" + strconv.Itoa(int(hashId)) - } - return nil, errors.InvalidArgumentError("cannot encrypt because no candidate hash functions are compiled in. (Wanted " + name + " in this case.)") - } - - if signer != nil { - ops := &packet.OnePassSignature{ - SigType: sigType, - Hash: hash, - PubKeyAlgo: signer.PubKeyAlgo, - KeyId: signer.KeyId, - IsLast: true, - } - if err := ops.Serialize(payload); err != nil { - return nil, err - } - } - - if hints == nil { - hints = &FileHints{} - } - - w := payload - if signer != nil { - // If we need to write a signature packet after the literal - // data then we need to stop literalData from closing - // encryptedData. - w = noOpCloser{w} - - } - var epochSeconds uint32 - if !hints.ModTime.IsZero() { - epochSeconds = uint32(hints.ModTime.Unix()) - } - literalData, err := packet.SerializeLiteral(w, hints.IsBinary, hints.FileName, epochSeconds) - if err != nil { - return nil, err - } - - if signer != nil { - h, wrappedHash, err := hashForSignature(hash, sigType) - if err != nil { - return nil, err - } - metadata := &packet.LiteralData{ - Format: 't', - FileName: hints.FileName, - Time: epochSeconds, - } - if hints.IsBinary { - metadata.Format = 'b' - } - return signatureWriter{payload, literalData, hash, wrappedHash, h, signer, sigType, config, metadata}, nil - } - return literalData, nil -} - -// encrypt encrypts a message to a number of recipients and, optionally, signs -// it. hints contains optional information, that is also encrypted, that aids -// the recipients in processing the message. The resulting WriteCloser must -// be closed after the contents of the file have been written. -// If config is nil, sensible defaults will be used. -func encrypt(keyWriter io.Writer, dataWriter io.Writer, to []*Entity, signed *Entity, hints *FileHints, sigType packet.SignatureType, config *packet.Config) (plaintext io.WriteCloser, err error) { - if len(to) == 0 { - return nil, errors.InvalidArgumentError("no encryption recipient provided") - } - - // These are the possible ciphers that we'll use for the message. - candidateCiphers := []uint8{ - uint8(packet.CipherAES128), - uint8(packet.CipherAES256), - uint8(packet.CipherCAST5), - } - - // These are the possible hash functions that we'll use for the signature. - candidateHashes := []uint8{ - hashToHashId(crypto.SHA256), - hashToHashId(crypto.SHA384), - hashToHashId(crypto.SHA512), - hashToHashId(crypto.SHA3_256), - hashToHashId(crypto.SHA3_512), - hashToHashId(crypto.SHA1), - hashToHashId(crypto.RIPEMD160), - } - - // Prefer GCM if everyone supports it - candidateCipherSuites := [][2]uint8{ - {uint8(packet.CipherAES256), uint8(packet.AEADModeGCM)}, - {uint8(packet.CipherAES256), uint8(packet.AEADModeEAX)}, - {uint8(packet.CipherAES256), uint8(packet.AEADModeOCB)}, - {uint8(packet.CipherAES128), uint8(packet.AEADModeGCM)}, - {uint8(packet.CipherAES128), uint8(packet.AEADModeEAX)}, - {uint8(packet.CipherAES128), uint8(packet.AEADModeOCB)}, - } - - candidateCompression := []uint8{ - uint8(packet.CompressionNone), - uint8(packet.CompressionZIP), - uint8(packet.CompressionZLIB), - } - - encryptKeys := make([]Key, len(to)) - - // AEAD is used only if config enables it and every key supports it - aeadSupported := config.AEAD() != nil - - for i := range to { - var ok bool - encryptKeys[i], ok = to[i].EncryptionKey(config.Now()) - if !ok { - return nil, errors.InvalidArgumentError("cannot encrypt a message to key id " + strconv.FormatUint(to[i].PrimaryKey.KeyId, 16) + " because it has no valid encryption keys") - } - - sig := to[i].PrimaryIdentity().SelfSignature - if sig.SEIPDv2 == false { - aeadSupported = false - } - - candidateCiphers = intersectPreferences(candidateCiphers, sig.PreferredSymmetric) - candidateHashes = intersectPreferences(candidateHashes, sig.PreferredHash) - candidateCipherSuites = intersectCipherSuites(candidateCipherSuites, sig.PreferredCipherSuites) - candidateCompression = intersectPreferences(candidateCompression, sig.PreferredCompression) - } - - // In the event that the intersection of supported algorithms is empty we use the ones - // labelled as MUST that every implementation supports. - if len(candidateCiphers) == 0 { - // https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-9.3 - candidateCiphers = []uint8{uint8(packet.CipherAES128)} - } - if len(candidateHashes) == 0 { - // https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#hash-algos - candidateHashes = []uint8{hashToHashId(crypto.SHA256)} - } - if len(candidateCipherSuites) == 0 { - // https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-9.6 - candidateCipherSuites = [][2]uint8{{uint8(packet.CipherAES128), uint8(packet.AEADModeOCB)}} - } - - cipher := packet.CipherFunction(candidateCiphers[0]) - aeadCipherSuite := packet.CipherSuite{ - Cipher: packet.CipherFunction(candidateCipherSuites[0][0]), - Mode: packet.AEADMode(candidateCipherSuites[0][1]), - } - - // If the cipher specified by config is a candidate, we'll use that. - configuredCipher := config.Cipher() - for _, c := range candidateCiphers { - cipherFunc := packet.CipherFunction(c) - if cipherFunc == configuredCipher { - cipher = cipherFunc - break - } - } - - symKey := make([]byte, cipher.KeySize()) - if _, err := io.ReadFull(config.Random(), symKey); err != nil { - return nil, err - } - - for _, key := range encryptKeys { - if err := packet.SerializeEncryptedKey(keyWriter, key.PublicKey, cipher, symKey, config); err != nil { - return nil, err - } - } - - var payload io.WriteCloser - payload, err = packet.SerializeSymmetricallyEncrypted(dataWriter, cipher, aeadSupported, aeadCipherSuite, symKey, config) - if err != nil { - return - } - - payload, err = handleCompression(payload, candidateCompression, config) - if err != nil { - return nil, err - } - - return writeAndSign(payload, candidateHashes, signed, hints, sigType, config) -} - -// Sign signs a message. The resulting WriteCloser must be closed after the -// contents of the file have been written. hints contains optional information -// that aids the recipients in processing the message. -// If config is nil, sensible defaults will be used. -func Sign(output io.Writer, signed *Entity, hints *FileHints, config *packet.Config) (input io.WriteCloser, err error) { - if signed == nil { - return nil, errors.InvalidArgumentError("no signer provided") - } - - // These are the possible hash functions that we'll use for the signature. - candidateHashes := []uint8{ - hashToHashId(crypto.SHA256), - hashToHashId(crypto.SHA384), - hashToHashId(crypto.SHA512), - hashToHashId(crypto.SHA3_256), - hashToHashId(crypto.SHA3_512), - hashToHashId(crypto.SHA1), - hashToHashId(crypto.RIPEMD160), - } - defaultHashes := candidateHashes[0:1] - preferredHashes := signed.PrimaryIdentity().SelfSignature.PreferredHash - if len(preferredHashes) == 0 { - preferredHashes = defaultHashes - } - candidateHashes = intersectPreferences(candidateHashes, preferredHashes) - if len(candidateHashes) == 0 { - return nil, errors.InvalidArgumentError("cannot sign because signing key shares no common algorithms with candidate hashes") - } - - return writeAndSign(noOpCloser{output}, candidateHashes, signed, hints, packet.SigTypeBinary, config) -} - -// signatureWriter hashes the contents of a message while passing it along to -// literalData. When closed, it closes literalData, writes a signature packet -// to encryptedData and then also closes encryptedData. -type signatureWriter struct { - encryptedData io.WriteCloser - literalData io.WriteCloser - hashType crypto.Hash - wrappedHash hash.Hash - h hash.Hash - signer *packet.PrivateKey - sigType packet.SignatureType - config *packet.Config - metadata *packet.LiteralData // V5 signatures protect document metadata -} - -func (s signatureWriter) Write(data []byte) (int, error) { - s.wrappedHash.Write(data) - switch s.sigType { - case packet.SigTypeBinary: - return s.literalData.Write(data) - case packet.SigTypeText: - flag := 0 - return writeCanonical(s.literalData, data, &flag) - } - return 0, errors.UnsupportedError("unsupported signature type: " + strconv.Itoa(int(s.sigType))) -} - -func (s signatureWriter) Close() error { - sig := &packet.Signature{ - Version: s.signer.Version, - SigType: s.sigType, - PubKeyAlgo: s.signer.PubKeyAlgo, - Hash: s.hashType, - CreationTime: s.config.Now(), - IssuerKeyId: &s.signer.KeyId, - Metadata: s.metadata, - } - - if err := sig.Sign(s.h, s.signer, s.config); err != nil { - return err - } - if err := s.literalData.Close(); err != nil { - return err - } - if err := sig.Serialize(s.encryptedData); err != nil { - return err - } - return s.encryptedData.Close() -} - -// noOpCloser is like an ioutil.NopCloser, but for an io.Writer. -// TODO: we have two of these in OpenPGP packages alone. This probably needs -// to be promoted somewhere more common. -type noOpCloser struct { - w io.Writer -} - -func (c noOpCloser) Write(data []byte) (n int, err error) { - return c.w.Write(data) -} - -func (c noOpCloser) Close() error { - return nil -} - -func handleCompression(compressed io.WriteCloser, candidateCompression []uint8, config *packet.Config) (data io.WriteCloser, err error) { - data = compressed - confAlgo := config.Compression() - if confAlgo == packet.CompressionNone { - return - } - - // Set algorithm labelled as MUST as fallback - // https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-07.html#section-9.4 - finalAlgo := packet.CompressionNone - // if compression specified by config available we will use it - for _, c := range candidateCompression { - if uint8(confAlgo) == c { - finalAlgo = confAlgo - break - } - } - - if finalAlgo != packet.CompressionNone { - var compConfig *packet.CompressionConfig - if config != nil { - compConfig = config.CompressionConfig - } - data, err = packet.SerializeCompressed(compressed, finalAlgo, compConfig) - if err != nil { - return - } - } - return data, nil -} diff --git a/vendor/github.com/ProtonMail/go-mime/.gitignore b/vendor/github.com/ProtonMail/go-mime/.gitignore deleted file mode 100644 index 5650dceb5b..0000000000 --- a/vendor/github.com/ProtonMail/go-mime/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -vendor - diff --git a/vendor/github.com/ProtonMail/go-mime/LICENSE b/vendor/github.com/ProtonMail/go-mime/LICENSE deleted file mode 100644 index 184f11f776..0000000000 --- a/vendor/github.com/ProtonMail/go-mime/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -(The MIT License) - -Copyright (c) 2019 Proton Technologies AG - -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. diff --git a/vendor/github.com/ProtonMail/go-mime/README.md b/vendor/github.com/ProtonMail/go-mime/README.md deleted file mode 100644 index efee623a9c..0000000000 --- a/vendor/github.com/ProtonMail/go-mime/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# Go Mime Wrapper Library - -Provides a parser for MIME messages - -## Download/Install - -Run `go get -u github.com/ProtonMail/go-mime`, or manually `git clone` the -repository into `$GOPATH/src/github.com/ProtonMail/go-mime`. - - -## Usage - -The library can be used to extract the body and attachments from a MIME message - -Example: -```go -printAccepter := gomime.NewMIMEPrinter() -bodyCollector := gomime.NewBodyCollector(printAccepter) -attachmentsCollector := gomime.NewAttachmentsCollector(bodyCollector) -mimeVisitor := gomime.NewMimeVisitor(attachmentsCollector) -err := gomime.VisitAll(bytes.NewReader(mmBodyData), h, mimeVisitor) -attachments := attachmentsCollector.GetAttachments(), -attachmentsHeaders := attachmentsCollector.GetAttHeaders() -bodyContent, bodyMimeType := bodyCollector.GetBody() -``` diff --git a/vendor/github.com/ProtonMail/go-mime/encoding.go b/vendor/github.com/ProtonMail/go-mime/encoding.go deleted file mode 100644 index cf237e6aeb..0000000000 --- a/vendor/github.com/ProtonMail/go-mime/encoding.go +++ /dev/null @@ -1,222 +0,0 @@ -package gomime - -import ( - "bytes" - "fmt" - "io" - "mime" - "mime/quotedprintable" - "regexp" - "strings" - "unicode/utf8" - - "encoding/base64" - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/htmlindex" - "golang.org/x/text/transform" -) - -var wordDec = &mime.WordDecoder{ - CharsetReader: func(charset string, input io.Reader) (io.Reader, error) { - dec, err := selectDecoder(charset) - if err != nil { - return nil, err - } - if dec == nil { // utf-8 - return input, nil - } - return dec.Reader(input), nil - }, -} - -// expected trimmed low case -func getEncoding(charset string) (enc encoding.Encoding, err error) { - preparsed := strings.Trim(strings.ToLower(charset), " \t\r\n") - - // koi - re := regexp.MustCompile("(cs)?koi[-_ ]?8?[-_ ]?(r|ru|u|uk)?$") - matches := re.FindAllStringSubmatch(preparsed, -1) - if len(matches) == 1 && len(matches[0]) == 3 { - preparsed = "koi8-" - switch matches[0][2] { - case "u", "uk": - preparsed += "u" - default: - preparsed += "r" - } - } - - // windows-XXXX - re = regexp.MustCompile("(cp|(cs)?win(dows)?)[-_ ]?([0-9]{3,4})$") - matches = re.FindAllStringSubmatch(preparsed, -1) - if len(matches) == 1 && len(matches[0]) == 5 { - switch matches[0][4] { - case "874", "1250", "1251", "1252", "1253", "1254", "1255", "1256", "1257", "1258": - preparsed = "windows-" + matches[0][4] - } - } - - // iso - re = regexp.MustCompile("iso[-_ ]?([0-9]{4})[-_ ]?([0-9]+|jp)?[-_ ]?(i|e)?") - matches = re.FindAllStringSubmatch(preparsed, -1) - if len(matches) == 1 && len(matches[0]) == 4 { - if matches[0][1] == "2022" && matches[0][2] == "jp" { - preparsed = "iso-2022-jp" - } - if matches[0][1] == "8859" { - switch matches[0][2] { - case "1", "2", "3", "4", "5", "7", "8", "9", "10", "11", "13", "14", "15", "16": - preparsed = "iso-8859-" + matches[0][2] - if matches[0][3] == "i" { - preparsed += "-" + matches[0][3] - } - case "": - preparsed = "iso-8859-1" - } - } - } - - // latin is tricky - re = regexp.MustCompile("^(cs|csiso)?l(atin)?[-_ ]?([0-9]{1,2})$") - matches = re.FindAllStringSubmatch(preparsed, -1) - if len(matches) == 1 && len(matches[0]) == 4 { - switch matches[0][3] { - case "1": - preparsed = "windows-1252" - case "2", "3", "4", "5": - preparsed = "iso-8859-" + matches[0][3] - case "6": - preparsed = "iso-8859-10" - case "8": - preparsed = "iso-8859-14" - case "9": - preparsed = "iso-8859-15" - case "10": - preparsed = "iso-8859-16" - } - } - - // missing substitutions - switch preparsed { - case "csutf8", "iso-utf-8", "utf8mb4": - preparsed = "utf-8" - - case "eucjp", "ibm-eucjp": - preparsed = "euc-jp" - case "euckr", "ibm-euckr", "cp949": - preparsed = "euc-kr" - case "euccn", "ibm-euccn": - preparsed = "gbk" - case "zht16mswin950", "cp950": - preparsed = "big5" - - case "csascii", - "ansi_x3.4-1968", - "ansi_x3.4-1986", - "ansi_x3.110-1983", - "cp850", - "cp858", - "us", - "iso646", - "iso-646", - "iso646-us", - "iso_646.irv:1991", - "cp367", - "ibm367", - "ibm-367", - "iso-ir-6": - preparsed = "ascii" - - case "ibm852": - preparsed = "iso-8859-2" - case "iso-ir-199", "iso-celtic": - preparsed = "iso-8859-14" - case "iso-ir-226": - preparsed = "iso-8859-16" - - case "macroman": - preparsed = "macintosh" - } - - enc, _ = htmlindex.Get(preparsed) - if enc == nil { - err = fmt.Errorf("can not get encodig for '%s' (or '%s')", charset, preparsed) - } - return -} - -func selectDecoder(charset string) (decoder *encoding.Decoder, err error) { - var enc encoding.Encoding - lcharset := strings.Trim(strings.ToLower(charset), " \t\r\n") - switch lcharset { - case "utf7", "utf-7", "unicode-1-1-utf-7": - return NewUtf7Decoder(), nil - default: - enc, err = getEncoding(lcharset) - } - if err == nil { - decoder = enc.NewDecoder() - } - return -} - -// DecodeHeader if needed. Returns error if raw contains non-utf8 characters -func DecodeHeader(raw string) (decoded string, err error) { - if decoded, err = wordDec.DecodeHeader(raw); err != nil { - decoded = raw - } - if !utf8.ValidString(decoded) { - err = fmt.Errorf("header contains non utf8 chars: %v", err) - } - return -} - -// EncodeHeader using quoted printable and utf8 -func EncodeHeader(s string) string { - return mime.QEncoding.Encode("utf-8", s) -} - -// DecodeCharset decodes the orginal using content type parameters. When -// charset missing it checks the content is utf8-valid. -func DecodeCharset(original []byte, mediaType string, contentTypeParams map[string]string) ([]byte, error) { - var decoder *encoding.Decoder - var err error - if charset, ok := contentTypeParams["charset"]; ok { - decoder, err = selectDecoder(charset) - } else { - if !strings.HasPrefix(mediaType, "text/") || utf8.Valid(original) { - return original, nil - } - err = fmt.Errorf("non-utf8 content without charset specification") - } - - if err != nil { - return original, err - } - - utf8 := make([]byte, len(original)) - nDst, nSrc, err := decoder.Transform(utf8, original, false) - for err == transform.ErrShortDst { - utf8 = make([]byte, (nDst/nSrc+1)*len(original)) - nDst, nSrc, err = decoder.Transform(utf8, original, false) - } - if err != nil { - return original, err - } - utf8 = bytes.Trim(utf8, "\x00") - - return utf8, nil -} - -// DecodeContentEncoding wraps the reader with decoder based on content encoding -func DecodeContentEncoding(r io.Reader, contentEncoding string) (d io.Reader) { - switch strings.ToLower(contentEncoding) { - case "quoted-printable": - d = quotedprintable.NewReader(r) - case "base64": - d = base64.NewDecoder(base64.StdEncoding, r) - case "7bit", "8bit", "binary", "": // Nothing to do - d = r - } - return -} diff --git a/vendor/github.com/ProtonMail/go-mime/parser.go b/vendor/github.com/ProtonMail/go-mime/parser.go deleted file mode 100644 index e36cd87917..0000000000 --- a/vendor/github.com/ProtonMail/go-mime/parser.go +++ /dev/null @@ -1,526 +0,0 @@ -package gomime - -import ( - "bufio" - "bytes" - "io" - "io/ioutil" - "log" - "mime" - "mime/multipart" - "net/http" - "net/mail" - "net/textproto" - "regexp" - "strings" -) - -// VisitAcceptor decidest what to do with part which is processed -// It is used by MIMEVisitor -type VisitAcceptor interface { - Accept(partReader io.Reader, header textproto.MIMEHeader, hasPlainSibling bool, isFirst, isLast bool) (err error) -} - -func VisitAll(part io.Reader, h textproto.MIMEHeader, accepter VisitAcceptor) (err error) { - mediaType, _, err := getContentType(h) - if err != nil { - return - } - return accepter.Accept(part, h, mediaType == "text/plain", true, true) -} - -func IsLeaf(h textproto.MIMEHeader) bool { - return !strings.HasPrefix(h.Get("Content-Type"), "multipart/") -} - -// MIMEVisitor is main object to parse (visit) and process (accept) all parts of MIME message -type MimeVisitor struct { - target VisitAcceptor -} - -// Accept reads part recursively if needed -// hasPlainSibling is there when acceptor want to check alternatives -func (mv *MimeVisitor) Accept(part io.Reader, h textproto.MIMEHeader, hasPlainSibling bool, isFirst, isLast bool) (err error) { - if !isFirst { - return - } - - parentMediaType, params, err := getContentType(h) - if err != nil { - return - } - - if err = mv.target.Accept(part, h, hasPlainSibling, true, false); err != nil { - return - } - - if !IsLeaf(h) { - var multiparts []io.Reader - var multipartHeaders []textproto.MIMEHeader - if multiparts, multipartHeaders, err = GetMultipartParts(part, params); err != nil { - return - } - hasPlainChild := false - for _, header := range multipartHeaders { - mediaType, _, _ := getContentType(header) - if mediaType == "text/plain" { - hasPlainChild = true - } - } - if hasPlainSibling && parentMediaType == "multipart/related" { - hasPlainChild = true - } - - for i, p := range multiparts { - if err = mv.Accept(p, multipartHeaders[i], hasPlainChild, true, true); err != nil { - return - } - if err = mv.target.Accept(part, h, hasPlainSibling, false, i == (len(multiparts)-1)); err != nil { - return - } - } - } - return -} - -// NewMIMEVisitor initialiazed with acceptor -func NewMimeVisitor(targetAccepter VisitAcceptor) *MimeVisitor { - return &MimeVisitor{targetAccepter} -} - -func GetRawMimePart(rawdata io.Reader, boundary string) (io.Reader, io.Reader) { - b, _ := ioutil.ReadAll(rawdata) - tee := bytes.NewReader(b) - - reader := bufio.NewReader(bytes.NewReader(b)) - byteBoundary := []byte(boundary) - bodyBuffer := &bytes.Buffer{} - for { - line, _, err := reader.ReadLine() - if err != nil { - return tee, bytes.NewReader(bodyBuffer.Bytes()) - } - if bytes.HasPrefix(line, byteBoundary) { - break - } - } - lineEndingLength := 0 - for { - line, isPrefix, err := reader.ReadLine() - if err != nil { - return tee, bytes.NewReader(bodyBuffer.Bytes()) - } - if bytes.HasPrefix(line, byteBoundary) { - break - } - lineEndingLength = 0 - bodyBuffer.Write(line) - if !isPrefix { - reader.UnreadByte() - reader.UnreadByte() - token, _ := reader.ReadByte() - if token == '\r' { - lineEndingLength++ - bodyBuffer.WriteByte(token) - } - lineEndingLength++ - bodyBuffer.WriteByte(token) - } - } - ioutil.ReadAll(reader) - data := bodyBuffer.Bytes() - return tee, bytes.NewReader(data[0 : len(data)-lineEndingLength]) -} - -func GetAllChildParts(part io.Reader, h textproto.MIMEHeader) (parts []io.Reader, headers []textproto.MIMEHeader, err error) { - mediaType, params, err := getContentType(h) - if err != nil { - return - } - if strings.HasPrefix(mediaType, "multipart/") { - var multiparts []io.Reader - var multipartHeaders []textproto.MIMEHeader - if multiparts, multipartHeaders, err = GetMultipartParts(part, params); err != nil { - return - } - if strings.Contains(mediaType, "alternative") { - var chosenPart io.Reader - var chosenHeader textproto.MIMEHeader - if chosenPart, chosenHeader, err = pickAlternativePart(multiparts, multipartHeaders); err != nil { - return - } - var childParts []io.Reader - var childHeaders []textproto.MIMEHeader - if childParts, childHeaders, err = GetAllChildParts(chosenPart, chosenHeader); err != nil { - return - } - parts = append(parts, childParts...) - headers = append(headers, childHeaders...) - } else { - for i, p := range multiparts { - var childParts []io.Reader - var childHeaders []textproto.MIMEHeader - if childParts, childHeaders, err = GetAllChildParts(p, multipartHeaders[i]); err != nil { - return - } - parts = append(parts, childParts...) - headers = append(headers, childHeaders...) - } - } - } else { - parts = append(parts, part) - headers = append(headers, h) - } - return -} - -func GetMultipartParts(r io.Reader, params map[string]string) (parts []io.Reader, headers []textproto.MIMEHeader, err error) { - mr := multipart.NewReader(r, params["boundary"]) - parts = []io.Reader{} - headers = []textproto.MIMEHeader{} - var p *multipart.Part - for { - p, err = mr.NextRawPart() - if err == io.EOF { - err = nil - break - } - if err != nil { - return - } - b, _ := ioutil.ReadAll(p) - buffer := bytes.NewBuffer(b) - - parts = append(parts, buffer) - headers = append(headers, p.Header) - } - return -} - -func pickAlternativePart(parts []io.Reader, headers []textproto.MIMEHeader) (part io.Reader, h textproto.MIMEHeader, err error) { - - for i, h := range headers { - mediaType, _, err := getContentType(h) - if err != nil { - continue - } - if strings.HasPrefix(mediaType, "multipart/") { - return parts[i], headers[i], nil - } - } - for i, h := range headers { - mediaType, _, err := getContentType(h) - if err != nil { - continue - } - if mediaType == "text/html" { - return parts[i], headers[i], nil - } - } - for i, h := range headers { - mediaType, _, err := getContentType(h) - if err != nil { - continue - } - if mediaType == "text/plain" { - return parts[i], headers[i], nil - } - } - //if we get all the way here, part will be nil - return -} - -// Parse address comment as defined in http://tools.wordtothewise.com/rfc/822 -// FIXME: Does not work for address groups -// NOTE: This should be removed for go>1.10 (please check) -func parseAddressComment(raw string) string { - parsed := []string{} - for _, item := range regexp.MustCompile("[,;]").Split(raw, -1) { - re := regexp.MustCompile("[(][^)]*[)]") - comments := strings.Join(re.FindAllString(item, -1), " ") - comments = strings.Replace(comments, "(", "", -1) - comments = strings.Replace(comments, ")", "", -1) - withoutComments := re.ReplaceAllString(item, "") - addr, err := mail.ParseAddress(withoutComments) - if err != nil { - continue - } - if addr.Name == "" { - addr.Name = comments - } - parsed = append(parsed, addr.String()) - } - return strings.Join(parsed, ", ") -} - -func checkHeaders(headers []textproto.MIMEHeader) bool { - foundAttachment := false - - for i := 0; i < len(headers); i++ { - h := headers[i] - - mediaType, _, _ := getContentType(h) - - if !strings.HasPrefix(mediaType, "text/") { - foundAttachment = true - } else if foundAttachment { - //this means that there is a text part after the first attachment, so we will have to convert the body from plain->HTML - return true - } - } - return false -} - -func decodePart(partReader io.Reader, header textproto.MIMEHeader) (decodedPart io.Reader) { - decodedPart = DecodeContentEncoding(partReader, header.Get("Content-Transfer-Encoding")) - if decodedPart == nil { - log.Printf("Unsupported Content-Transfer-Encoding '%v'", header.Get("Content-Transfer-Encoding")) - decodedPart = partReader - } - return -} - -// assume 'text/plain' if missing -func getContentType(header textproto.MIMEHeader) (mediatype string, params map[string]string, err error) { - contentType := header.Get("Content-Type") - if contentType == "" { - contentType = "text/plain" - } - - return mime.ParseMediaType(contentType) -} - -// ===================== MIME Printer =================================== -// Simply print resulting MIME tree into text form -// TODO to file mime_printer.go -type stack []string - -func (s stack) Push(v string) stack { - return append(s, v) -} -func (s stack) Pop() (stack, string) { - l := len(s) - return s[:l-1], s[l-1] -} -func (s stack) Peek() string { - return s[len(s)-1] -} - -type MIMEPrinter struct { - result *bytes.Buffer - boundaryStack stack -} - -func NewMIMEPrinter() (pd *MIMEPrinter) { - return &MIMEPrinter{ - result: bytes.NewBuffer([]byte("")), - boundaryStack: stack{}, - } -} - -func (pd *MIMEPrinter) Accept(partReader io.Reader, header textproto.MIMEHeader, hasPlainSibling bool, isFirst, isLast bool) (err error) { - if isFirst { - http.Header(header).Write(pd.result) - pd.result.Write([]byte("\n")) - if IsLeaf(header) { - pd.result.ReadFrom(partReader) - } else { - _, params, _ := getContentType(header) - boundary := params["boundary"] - pd.boundaryStack = pd.boundaryStack.Push(boundary) - pd.result.Write([]byte("\nThis is a multi-part message in MIME format.\n--" + boundary + "\n")) - } - } else { - if !isLast { - pd.result.Write([]byte("\n--" + pd.boundaryStack.Peek() + "\n")) - } else { - var boundary string - pd.boundaryStack, boundary = pd.boundaryStack.Pop() - pd.result.Write([]byte("\n--" + boundary + "--\n.\n")) - } - } - return nil -} - -func (pd *MIMEPrinter) String() string { - return pd.result.String() -} - -// ======================== PlainText Collector ========================= -// Collect contents of all non-attachment text/plain parts and return -// it is a string -// TODO to file collector_plaintext.go - -type PlainTextCollector struct { - target VisitAcceptor - plainTextContents *bytes.Buffer -} - -func NewPlainTextCollector(targetAccepter VisitAcceptor) *PlainTextCollector { - return &PlainTextCollector{ - target: targetAccepter, - plainTextContents: bytes.NewBuffer([]byte("")), - } -} - -func (ptc *PlainTextCollector) Accept(partReader io.Reader, header textproto.MIMEHeader, hasPlainSibling bool, isFirst, isLast bool) (err error) { - if isFirst { - if IsLeaf(header) { - mediaType, params, _ := getContentType(header) - disp, _, _ := mime.ParseMediaType(header.Get("Content-Disposition")) - if mediaType == "text/plain" && disp != "attachment" { - partData, _ := ioutil.ReadAll(partReader) - decodedPart := decodePart(bytes.NewReader(partData), header) - - if buffer, err := ioutil.ReadAll(decodedPart); err == nil { - buffer, err = DecodeCharset(buffer, mediaType, params) - if err != nil { - log.Println("Decode charset error:", err) - err = nil // Don't fail parsing on decoding errors, use original - } - ptc.plainTextContents.Write(buffer) - } - - err = ptc.target.Accept(bytes.NewReader(partData), header, hasPlainSibling, isFirst, isLast) - return - } - } - } - err = ptc.target.Accept(partReader, header, hasPlainSibling, isFirst, isLast) - return -} - -func (ptc PlainTextCollector) GetPlainText() string { - return ptc.plainTextContents.String() -} - -// ======================== Body Collector ============== -// Collect contents of all non-attachment parts and return -// it as a string -// TODO to file collector_body.go - -type BodyCollector struct { - target VisitAcceptor - htmlBodyBuffer *bytes.Buffer - plainBodyBuffer *bytes.Buffer - htmlHeaderBuffer *bytes.Buffer - plainHeaderBuffer *bytes.Buffer - hasHtml bool -} - -func NewBodyCollector(targetAccepter VisitAcceptor) *BodyCollector { - return &BodyCollector{ - target: targetAccepter, - htmlBodyBuffer: bytes.NewBuffer([]byte("")), - plainBodyBuffer: bytes.NewBuffer([]byte("")), - htmlHeaderBuffer: bytes.NewBuffer([]byte("")), - plainHeaderBuffer: bytes.NewBuffer([]byte("")), - } -} - -func (bc *BodyCollector) Accept(partReader io.Reader, header textproto.MIMEHeader, hasPlainSibling bool, isFirst, isLast bool) (err error) { - // TODO: collect html and plaintext - if there's html with plain sibling don't include plain/text - if isFirst { - if IsLeaf(header) { - mediaType, params, _ := getContentType(header) - disp, _, _ := mime.ParseMediaType(header.Get("Content-Disposition")) - if disp != "attachment" { - partData, _ := ioutil.ReadAll(partReader) - decodedPart := decodePart(bytes.NewReader(partData), header) - if buffer, err := ioutil.ReadAll(decodedPart); err == nil { - buffer, err = DecodeCharset(buffer, mediaType, params) - if err != nil { - log.Println("Decode charset error:", err) - err = nil // Don't fail parsing on decoding errors, use original - } - if mediaType == "text/html" { - bc.hasHtml = true - http.Header(header).Write(bc.htmlHeaderBuffer) - bc.htmlBodyBuffer.Write(buffer) - } else if mediaType == "text/plain" { - http.Header(header).Write(bc.plainHeaderBuffer) - bc.plainBodyBuffer.Write(buffer) - } - } - - err = bc.target.Accept(bytes.NewReader(partData), header, hasPlainSibling, isFirst, isLast) - return - } - } - } - err = bc.target.Accept(partReader, header, hasPlainSibling, isFirst, isLast) - return -} - -func (bc *BodyCollector) GetBody() (string, string) { - if bc.hasHtml { - return bc.htmlBodyBuffer.String(), "text/html" - } else { - return bc.plainBodyBuffer.String(), "text/plain" - } -} - -func (bc *BodyCollector) GetHeaders() string { - if bc.hasHtml { - return bc.htmlHeaderBuffer.String() - } else { - return bc.plainHeaderBuffer.String() - } -} - -// ======================== Attachments Collector ============== -// Collect contents of all attachment parts and return -// them as a string -// TODO to file collector_attachment.go - -type AttachmentsCollector struct { - target VisitAcceptor - attBuffers []string - attHeaders []string -} - -func NewAttachmentsCollector(targetAccepter VisitAcceptor) *AttachmentsCollector { - return &AttachmentsCollector{ - target: targetAccepter, - attBuffers: []string{}, - attHeaders: []string{}, - } -} - -func (ac *AttachmentsCollector) Accept(partReader io.Reader, header textproto.MIMEHeader, hasPlainSibling bool, isFirst, isLast bool) (err error) { - if isFirst { - if IsLeaf(header) { - mediaType, params, _ := getContentType(header) - disp, _, _ := mime.ParseMediaType(header.Get("Content-Disposition")) - if (mediaType != "text/html" && mediaType != "text/plain") || disp == "attachment" { - partData, _ := ioutil.ReadAll(partReader) - decodedPart := decodePart(bytes.NewReader(partData), header) - - if buffer, err := ioutil.ReadAll(decodedPart); err == nil { - buffer, err = DecodeCharset(buffer, mediaType, params) - if err != nil { - log.Println("Decode charset error:", err) - err = nil // Don't fail parsing on decoding errors, use original - } - headerBuf := new(bytes.Buffer) - http.Header(header).Write(headerBuf) - ac.attHeaders = append(ac.attHeaders, headerBuf.String()) - ac.attBuffers = append(ac.attBuffers, string(buffer)) - } - - err = ac.target.Accept(bytes.NewReader(partData), header, hasPlainSibling, isFirst, isLast) - return - } - } - } - err = ac.target.Accept(partReader, header, hasPlainSibling, isFirst, isLast) - return -} - -func (ac AttachmentsCollector) GetAttachments() []string { - return ac.attBuffers -} - -func (ac AttachmentsCollector) GetAttHeaders() []string { - return ac.attHeaders -} diff --git a/vendor/github.com/ProtonMail/go-mime/utf7Decoder.go b/vendor/github.com/ProtonMail/go-mime/utf7Decoder.go deleted file mode 100644 index 78182cf2f8..0000000000 --- a/vendor/github.com/ProtonMail/go-mime/utf7Decoder.go +++ /dev/null @@ -1,170 +0,0 @@ -package gomime - -import ( - "encoding/base64" - "errors" - "unicode/utf16" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/transform" -) - -// utf7Decoder copied from: https://github.com/cention-sany/utf7/blob/master/utf7.go -// We need `encoding.Decoder` instead of function `UTF7DecodeBytes` -type utf7Decoder struct { - transform.NopResetter -} - -// NewUtf7Decoder return decoder for utf7 -func NewUtf7Decoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: utf7Decoder{}} -} - -const ( - uRepl = '\uFFFD' // Unicode replacement code point - u7min = 0x20 // Minimum self-representing UTF-7 value - u7max = 0x7E // Maximum self-representing UTF-7 value -) - -// ErrBadUTF7 is returned to indicate the invalid modified UTF-7 encoding. -var ErrBadUTF7 = errors.New("utf7: bad utf-7 encoding") - -const modifiedbase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" - -var u7enc = base64.NewEncoding(modifiedbase64) - -func isModifiedBase64(r byte) bool { - if r >= 'A' && r <= 'Z' { - return true - } else if r >= 'a' && r <= 'z' { - return true - } else if r >= '0' && r <= '9' { - return true - } else if r == '+' || r == '/' { - return true - } - return false -} - -func (d utf7Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - var implicit bool - var tmp int - - nd, n := len(dst), len(src) - if n == 0 && !atEOF { - return 0, 0, transform.ErrShortSrc - } - for ; nSrc < n; nSrc++ { - if nDst >= nd { - return nDst, nSrc, transform.ErrShortDst - } - if c := src[nSrc]; ((c < u7min || c > u7max) && - c != '\t' && c != '\r' && c != '\n') || - c == '~' || c == '\\' { - return nDst, nSrc, ErrBadUTF7 // Illegal code point in ASCII mode - } else if c != '+' { - dst[nDst] = c // character is self-representing - nDst++ - continue - } - // found '+' - start := nSrc + 1 - tmp = nSrc // nSrc still points to '+', tmp points to the end of BASE64 - // Find the end of the Base64 or "+-" segment - implicit = false - for tmp++; tmp < n && src[tmp] != '-'; tmp++ { - if !isModifiedBase64(src[tmp]) { - if tmp == start { - return nDst, tmp, ErrBadUTF7 // '+' next char must modified base64 - } - // implicit shift back to ASCII - no need '-' character - implicit = true - break - } - } - if tmp == start { - if tmp == n { - // did not find '-' sign and '+' is the last character - // total nSrc not includes '+' - if atEOF { - return nDst, nSrc, ErrBadUTF7 // '+' can not be at the end - } - // '+' can not be at the end, the source si too short - return nDst, nSrc, transform.ErrShortSrc - } - dst[nDst] = '+' // Escape sequence "+-" - nDst++ - } else if tmp == n && !atEOF { - // no eof found, the source is too short - return nDst, nSrc, transform.ErrShortSrc - } else if b := utf7dec(src[start:tmp]); len(b) > 0 { - if len(b)+nDst > nd { - // need more space in dst for the decoded modified BASE64 unicode - // total nSrc is not including '+' - return nDst, nSrc, transform.ErrShortDst - } - copy(dst[nDst:], b) // Control or non-ASCII code points in Base64 - nDst += len(b) - if implicit { - if nDst >= nd { - return nDst, tmp, transform.ErrShortDst - } - dst[nDst] = src[tmp] // implicit shift - nDst++ - } - if tmp == n { - return nDst, tmp, nil - } - } else { - return nDst, nSrc, ErrBadUTF7 // bad encoding - } - nSrc = tmp - } - return -} - -// utf7dec extracts UTF-16-BE bytes from Base64 data and converts them to UTF-8. -// A nil slice is returned if the encoding is invalid. -func utf7dec(b64 []byte) []byte { - var b []byte - - // Allocate a single block of memory large enough to store the Base64 data - // (if padding is required), UTF-16-BE bytes, and decoded UTF-8 bytes. - // Since a 2-byte UTF-16 sequence may expand into a 3-byte UTF-8 sequence, - // double the space allocation for UTF-8. - if n := len(b64); b64[n-1] == '=' { - return nil - } else if n&3 == 0 { - b = make([]byte, u7enc.DecodedLen(n)*3) - } else { - n += 4 - n&3 - b = make([]byte, n+u7enc.DecodedLen(n)*3) - copy(b[copy(b, b64):n], []byte("==")) - b64, b = b[:n], b[n:] - } - - // Decode Base64 into the first 1/3rd of b - n, err := u7enc.Decode(b, b64) - if err != nil || n&1 == 1 { - return nil - } - - // Decode UTF-16-BE into the remaining 2/3rds of b - b, s := b[:n], b[n:] - j := 0 - for i := 0; i < n; i += 2 { - r := rune(b[i])<<8 | rune(b[i+1]) - if utf16.IsSurrogate(r) { - if i += 2; i == n { - return nil - } - r2 := rune(b[i])<<8 | rune(b[i+1]) - if r = utf16.DecodeRune(r, r2); r == uRepl { - return nil - } - } - j += utf8.EncodeRune(s[j:], r) - } - return s[:j] -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/LICENSE b/vendor/github.com/ProtonMail/gopenpgp/v2/LICENSE deleted file mode 100644 index 184f11f776..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -(The MIT License) - -Copyright (c) 2019 Proton Technologies AG - -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. diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/armor/armor.go b/vendor/github.com/ProtonMail/gopenpgp/v2/armor/armor.go deleted file mode 100644 index 2ad8835059..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/armor/armor.go +++ /dev/null @@ -1,69 +0,0 @@ -// Package armor contains a set of helper methods for armoring and unarmoring -// data. -package armor - -import ( - "bytes" - "io" - "io/ioutil" - - "github.com/ProtonMail/go-crypto/openpgp/armor" - "github.com/ProtonMail/gopenpgp/v2/constants" - "github.com/ProtonMail/gopenpgp/v2/internal" - "github.com/pkg/errors" -) - -// ArmorKey armors input as a public key. -func ArmorKey(input []byte) (string, error) { - return ArmorWithType(input, constants.PublicKeyHeader) -} - -// ArmorWithTypeBuffered returns a io.WriteCloser which, when written to, writes -// armored data to w with the given armorType. -func ArmorWithTypeBuffered(w io.Writer, armorType string) (io.WriteCloser, error) { - return armor.Encode(w, armorType, nil) -} - -// ArmorWithType armors input with the given armorType. -func ArmorWithType(input []byte, armorType string) (string, error) { - return armorWithTypeAndHeaders(input, armorType, internal.ArmorHeaders) -} - -// ArmorWithTypeAndCustomHeaders armors input with the given armorType and -// headers. -func ArmorWithTypeAndCustomHeaders(input []byte, armorType, version, comment string) (string, error) { - headers := make(map[string]string) - if version != "" { - headers["Version"] = version - } - if comment != "" { - headers["Comment"] = comment - } - return armorWithTypeAndHeaders(input, armorType, headers) -} - -// Unarmor unarmors an armored input into a byte array. -func Unarmor(input string) ([]byte, error) { - b, err := internal.Unarmor(input) - if err != nil { - return nil, errors.Wrap(err, "gopengp: unable to unarmor") - } - return ioutil.ReadAll(b.Body) -} - -func armorWithTypeAndHeaders(input []byte, armorType string, headers map[string]string) (string, error) { - var b bytes.Buffer - - w, err := armor.Encode(&b, armorType, headers) - - if err != nil { - return "", errors.Wrap(err, "gopengp: unable to encode armoring") - } - if _, err = w.Write(input); err != nil { - return "", errors.Wrap(err, "gopengp: unable to write armored to buffer") - } - if err := w.Close(); err != nil { - return "", errors.Wrap(err, "gopengp: unable to close armor buffer") - } - return b.String(), nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/constants/armor.go b/vendor/github.com/ProtonMail/gopenpgp/v2/constants/armor.go deleted file mode 100644 index 403d27a1d6..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/constants/armor.go +++ /dev/null @@ -1,12 +0,0 @@ -// Package constants provides a set of common OpenPGP constants. -package constants - -// Constants for armored data. -const ( - ArmorHeaderVersion = "GopenPGP 2.5.2" - ArmorHeaderComment = "https://gopenpgp.org" - PGPMessageHeader = "PGP MESSAGE" - PGPSignatureHeader = "PGP SIGNATURE" - PublicKeyHeader = "PGP PUBLIC KEY BLOCK" - PrivateKeyHeader = "PGP PRIVATE KEY BLOCK" -) diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/constants/cipher.go b/vendor/github.com/ProtonMail/gopenpgp/v2/constants/cipher.go deleted file mode 100644 index 970960ce16..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/constants/cipher.go +++ /dev/null @@ -1,21 +0,0 @@ -package constants - -// Cipher suite names. -const ( - ThreeDES = "3des" - TripleDES = "tripledes" // Both "3des" and "tripledes" refer to 3DES. - CAST5 = "cast5" - AES128 = "aes128" - AES192 = "aes192" - AES256 = "aes256" -) - -const ( - SIGNATURE_OK int = 0 - SIGNATURE_NOT_SIGNED int = 1 - SIGNATURE_NO_VERIFIER int = 2 - SIGNATURE_FAILED int = 3 -) - -const DefaultCompression = 2 // ZLIB -const DefaultCompressionLevel = 6 // Corresponds to default -1 for ZLIB diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/constants/version.go b/vendor/github.com/ProtonMail/gopenpgp/v2/constants/version.go deleted file mode 100644 index 4be2851a62..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/constants/version.go +++ /dev/null @@ -1,3 +0,0 @@ -package constants - -const Version = "2.5.2" diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/attachment.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/attachment.go deleted file mode 100644 index b078ce1c77..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/attachment.go +++ /dev/null @@ -1,185 +0,0 @@ -package crypto - -import ( - "bytes" - "io" - "io/ioutil" - "runtime" - "sync" - "time" - - "github.com/ProtonMail/go-crypto/openpgp" - "github.com/ProtonMail/go-crypto/openpgp/packet" - "github.com/pkg/errors" -) - -// AttachmentProcessor keeps track of the progress of encrypting an attachment -// (optimized for encrypting large files). -type AttachmentProcessor struct { - w *io.WriteCloser - pipe *io.PipeWriter - done sync.WaitGroup - split *PGPSplitMessage - garbageCollector int - err error -} - -// Process writes attachment data to be encrypted. -func (ap *AttachmentProcessor) Process(plainData []byte) { - if _, err := (*ap.w).Write(plainData); err != nil { - panic(err) - } - if ap.garbageCollector > 0 { - defer runtime.GC() - } -} - -// Finish closes the attachment and returns the encrypted data. -func (ap *AttachmentProcessor) Finish() (*PGPSplitMessage, error) { - if ap.err != nil { - return nil, ap.err - } - - if err := (*ap.w).Close(); err != nil { - return nil, errors.Wrap(err, "gopengpp: unable to close writer") - } - - if ap.garbageCollector > 0 { - ap.w = nil - runtime.GC() - } - - if err := (*ap.pipe).Close(); err != nil { - return nil, errors.Wrap(err, "gopengpp: unable to close pipe") - } - - ap.done.Wait() - if ap.err != nil { - return nil, ap.err - } - splitMsg := ap.split - - if ap.garbageCollector > 0 { - ap.pipe = nil - ap.split = nil - defer runtime.GC() - } - return splitMsg, nil -} - -// newAttachmentProcessor creates an AttachmentProcessor which can be used to encrypt -// a file. It takes an estimatedSize and fileName as hints about the file. -func (keyRing *KeyRing) newAttachmentProcessor( - estimatedSize int, filename string, isBinary bool, modTime uint32, garbageCollector int, //nolint:unparam -) (*AttachmentProcessor, error) { - attachmentProc := &AttachmentProcessor{} - // You could also add these one at a time if needed. - attachmentProc.done.Add(1) - attachmentProc.garbageCollector = garbageCollector - - hints := &openpgp.FileHints{ - FileName: filename, - IsBinary: isBinary, - ModTime: time.Unix(int64(modTime), 0), - } - - config := &packet.Config{ - DefaultCipher: packet.CipherAES256, - Time: getTimeGenerator(), - } - - reader, writer := io.Pipe() - - go func() { - defer attachmentProc.done.Done() - ciphertext, _ := ioutil.ReadAll(reader) - message := &PGPMessage{ - Data: ciphertext, - } - split, splitError := message.SplitMessage() - if attachmentProc.err == nil { - attachmentProc.err = splitError - } - attachmentProc.split = split - }() - - var ew io.WriteCloser - var encryptErr error - ew, encryptErr = openpgp.Encrypt(writer, keyRing.entities, nil, hints, config) - if encryptErr != nil { - return nil, errors.Wrap(encryptErr, "gopengpp: unable to encrypt attachment") - } - attachmentProc.w = &ew - attachmentProc.pipe = writer - - return attachmentProc, nil -} - -// EncryptAttachment encrypts a file given a PlainMessage and a filename. -// If given a filename it will override the information in the PlainMessage object. -// Returns a PGPSplitMessage containing a session key packet and symmetrically encrypted data. -// Specifically designed for attachments rather than text messages. -func (keyRing *KeyRing) EncryptAttachment(message *PlainMessage, filename string) (*PGPSplitMessage, error) { - if filename == "" { - filename = message.Filename - } - - ap, err := keyRing.newAttachmentProcessor( - len(message.GetBinary()), - filename, - message.IsBinary(), - message.Time, - -1, - ) - if err != nil { - return nil, err - } - ap.Process(message.GetBinary()) - split, err := ap.Finish() - if err != nil { - return nil, err - } - return split, nil -} - -// NewLowMemoryAttachmentProcessor creates an AttachmentProcessor which can be used -// to encrypt a file. It takes an estimatedSize and filename as hints about the -// file. It is optimized for low-memory environments and collects garbage every -// megabyte. -func (keyRing *KeyRing) NewLowMemoryAttachmentProcessor( - estimatedSize int, filename string, -) (*AttachmentProcessor, error) { - return keyRing.newAttachmentProcessor(estimatedSize, filename, true, uint32(GetUnixTime()), 1<<20) -} - -// DecryptAttachment takes a PGPSplitMessage, containing a session key packet and symmetrically encrypted data -// and returns a decrypted PlainMessage -// Specifically designed for attachments rather than text messages. -func (keyRing *KeyRing) DecryptAttachment(message *PGPSplitMessage) (*PlainMessage, error) { - privKeyEntries := keyRing.entities - - keyReader := bytes.NewReader(message.GetBinaryKeyPacket()) - dataReader := bytes.NewReader(message.GetBinaryDataPacket()) - - encryptedReader := io.MultiReader(keyReader, dataReader) - - config := &packet.Config{Time: getTimeGenerator()} - - md, err := openpgp.ReadMessage(encryptedReader, privKeyEntries, nil, config) - if err != nil { - return nil, errors.Wrap(err, "gopengpp: unable to read attachment") - } - - decrypted := md.UnverifiedBody - b, err := ioutil.ReadAll(decrypted) - if err != nil { - return nil, errors.Wrap(err, "gopengpp: unable to read attachment body") - } - - return &PlainMessage{ - Data: b, - TextType: !md.LiteralData.IsBinary, - Filename: md.LiteralData.FileName, - Time: md.LiteralData.Time, - }, nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/attachment_manual.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/attachment_manual.go deleted file mode 100644 index 39a2957a23..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/attachment_manual.go +++ /dev/null @@ -1,188 +0,0 @@ -package crypto - -import ( - "io" - "io/ioutil" - "runtime" - "runtime/debug" - "sync" - "time" - - "github.com/ProtonMail/go-crypto/openpgp" - "github.com/ProtonMail/go-crypto/openpgp/packet" - "github.com/pkg/errors" -) - -// ManualAttachmentProcessor keeps track of the progress of encrypting an attachment -// (optimized for encrypting large files). -// With this processor, the caller has to first allocate -// a buffer large enough to hold the whole data packet. -type ManualAttachmentProcessor struct { - keyPacket []byte - dataLength int - plaintextWriter io.WriteCloser - ciphertextWriter *io.PipeWriter - err error - done sync.WaitGroup -} - -// GetKeyPacket returns the key packet for the attachment. -// This should be called only after Finish() has been called. -func (ap *ManualAttachmentProcessor) GetKeyPacket() []byte { - return ap.keyPacket -} - -// GetDataLength returns the number of bytes in the DataPacket. -// This should be called only after Finish() has been called. -func (ap *ManualAttachmentProcessor) GetDataLength() int { - return ap.dataLength -} - -// Process writes attachment data to be encrypted. -func (ap *ManualAttachmentProcessor) Process(plainData []byte) error { - defer runtime.GC() - _, err := ap.plaintextWriter.Write(plainData) - return errors.Wrap(err, "gopenpgp: couldn't write attachment data") -} - -// Finish tells the processor to finalize encryption. -func (ap *ManualAttachmentProcessor) Finish() error { - defer runtime.GC() - if ap.err != nil { - return ap.err - } - if err := ap.plaintextWriter.Close(); err != nil { - return errors.Wrap(err, "gopengpp: unable to close the plaintext writer") - } - if err := ap.ciphertextWriter.Close(); err != nil { - return errors.Wrap(err, "gopengpp: unable to close the dataPacket writer") - } - ap.done.Wait() - if ap.err != nil { - return ap.err - } - return nil -} - -// NewManualAttachmentProcessor creates an AttachmentProcessor which can be used -// to encrypt a file. It takes an estimatedSize and filename as hints about the -// file and a buffer to hold the DataPacket. -// It is optimized for low-memory environments and collects garbage every megabyte. -// The buffer for the data packet must be manually allocated by the caller. -// Make sure that the dataBuffer is large enough to hold the whole data packet -// otherwise Finish() will return an error. -func (keyRing *KeyRing) NewManualAttachmentProcessor( - estimatedSize int, filename string, dataBuffer []byte, -) (*ManualAttachmentProcessor, error) { - if len(dataBuffer) == 0 { - return nil, errors.New("gopenpgp: can't give a nil or empty buffer to process the attachment") - } - - // forces the gc to be called often - debug.SetGCPercent(10) - - attachmentProc := &ManualAttachmentProcessor{} - - // hints for the encrypted file - isBinary := true - modTime := GetUnixTime() - hints := &openpgp.FileHints{ - FileName: filename, - IsBinary: isBinary, - ModTime: time.Unix(modTime, 0), - } - - // encryption config - config := &packet.Config{ - DefaultCipher: packet.CipherAES256, - Time: getTimeGenerator(), - } - - // goroutine that reads the key packet - // to be later returned to the caller via GetKeyPacket() - keyReader, keyWriter := io.Pipe() - attachmentProc.done.Add(1) - go func() { - defer attachmentProc.done.Done() - keyPacket, err := ioutil.ReadAll(keyReader) - if err != nil { - attachmentProc.err = err - } else { - attachmentProc.keyPacket = clone(keyPacket) - } - }() - - // goroutine that reads the data packet into the provided buffer - dataReader, dataWriter := io.Pipe() - attachmentProc.done.Add(1) - go func() { - defer attachmentProc.done.Done() - totalRead, err := readAll(dataBuffer, dataReader) - if err != nil { - attachmentProc.err = err - } else { - attachmentProc.dataLength = totalRead - } - }() - - // We generate the encrypting writer - var ew io.WriteCloser - var encryptErr error - ew, encryptErr = openpgp.EncryptSplit(keyWriter, dataWriter, keyRing.entities, nil, hints, config) - if encryptErr != nil { - return nil, errors.Wrap(encryptErr, "gopengpp: unable to encrypt attachment") - } - - attachmentProc.plaintextWriter = ew - attachmentProc.ciphertextWriter = dataWriter - - // The key packet should have been already written, so we can close - if err := keyWriter.Close(); err != nil { - return nil, errors.Wrap(err, "gopenpgp: couldn't close the keyPacket writer") - } - - // Check if the goroutines encountered errors - if attachmentProc.err != nil { - return nil, attachmentProc.err - } - return attachmentProc, nil -} - -// readAll works a bit like ioutil.ReadAll -// but we can choose the buffer to write to -// and we don't grow the slice in case of overflow. -func readAll(buffer []byte, reader io.Reader) (int, error) { - bufferLen := len(buffer) - totalRead := 0 - offset := 0 - overflow := false - reset := false - for { - // We read into the buffer - n, err := reader.Read(buffer[offset:]) - totalRead += n - offset += n - if !overflow && reset && n != 0 { - // In case we've started overwriting the beginning of the buffer - // We will return an error at Finish() - overflow = true - } - if err != nil { - if errors.Is(err, io.EOF) { - break - } - return 0, errors.Wrap(err, "gopenpgp: couldn't read data from the encrypted reader") - } - if offset == bufferLen { - // Here we've reached the end of the buffer - // But we need to keep reading to not block the Process() - // So we reset the buffer - reset = true - offset = 0 - } - } - if overflow { - return 0, errors.New("gopenpgp: read more bytes that was allocated in the buffer") - } - return totalRead, nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/gopenpgp.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/gopenpgp.go deleted file mode 100644 index d5ae56d583..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/gopenpgp.go +++ /dev/null @@ -1,26 +0,0 @@ -// Package crypto provides a high-level API for common OpenPGP functionality. -package crypto - -import "sync" - -// GopenPGP is used as a "namespace" for many of the functions in this package. -// It is a struct that keeps track of time skew between server and client. -type GopenPGP struct { - latestServerTime int64 - generationOffset int64 - lock *sync.RWMutex -} - -var pgp = GopenPGP{ - latestServerTime: 0, - generationOffset: 0, - lock: &sync.RWMutex{}, -} - -// clone returns a clone of the byte slice. Internal function used to make sure -// we don't retain a reference to external data. -func clone(input []byte) []byte { - data := make([]byte, len(input)) - copy(data, input) - return data -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/key.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/key.go deleted file mode 100644 index 16c50d981f..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/key.go +++ /dev/null @@ -1,489 +0,0 @@ -package crypto - -import ( - "bytes" - "crypto" - "crypto/sha256" - "encoding/hex" - "fmt" - "io" - "math/big" - "strconv" - "strings" - - "github.com/ProtonMail/gopenpgp/v2/armor" - "github.com/ProtonMail/gopenpgp/v2/constants" - "github.com/pkg/errors" - - openpgp "github.com/ProtonMail/go-crypto/openpgp" - packet "github.com/ProtonMail/go-crypto/openpgp/packet" -) - -// Key contains a single private or public key. -type Key struct { - // PGP entities in this keyring. - entity *openpgp.Entity -} - -// --- Create Key object - -// NewKeyFromArmoredReader reads an armored data into a key. -func NewKeyFromArmoredReader(r io.Reader) (key *Key, err error) { - key = &Key{} - err = key.readFrom(r, true) - if err != nil { - return nil, err - } - - return key, nil -} - -// NewKeyFromReader reads binary data into a Key object. -func NewKeyFromReader(r io.Reader) (key *Key, err error) { - key = &Key{} - err = key.readFrom(r, false) - if err != nil { - return nil, err - } - - return key, nil -} - -// NewKey creates a new key from the first key in the unarmored binary data. -func NewKey(binKeys []byte) (key *Key, err error) { - return NewKeyFromReader(bytes.NewReader(clone(binKeys))) -} - -// NewKeyFromArmored creates a new key from the first key in an armored string. -func NewKeyFromArmored(armored string) (key *Key, err error) { - return NewKeyFromArmoredReader(strings.NewReader(armored)) -} - -func NewKeyFromEntity(entity *openpgp.Entity) (*Key, error) { - if entity == nil { - return nil, errors.New("gopenpgp: nil entity provided") - } - return &Key{entity: entity}, nil -} - -// GenerateRSAKeyWithPrimes generates a RSA key using the given primes. -func GenerateRSAKeyWithPrimes( - name, email string, - bits int, - primeone, primetwo, primethree, primefour []byte, -) (*Key, error) { - return generateKey(name, email, "rsa", bits, primeone, primetwo, primethree, primefour) -} - -// GenerateKey generates a key of the given keyType ("rsa" or "x25519"). -// If keyType is "rsa", bits is the RSA bitsize of the key. -// If keyType is "x25519" bits is unused. -func GenerateKey(name, email string, keyType string, bits int) (*Key, error) { - return generateKey(name, email, keyType, bits, nil, nil, nil, nil) -} - -// --- Operate on key - -// Copy creates a deep copy of the key. -func (key *Key) Copy() (*Key, error) { - serialized, err := key.Serialize() - if err != nil { - return nil, err - } - - return NewKey(serialized) -} - -// Lock locks a copy of the key. -func (key *Key) Lock(passphrase []byte) (*Key, error) { - unlocked, err := key.IsUnlocked() - if err != nil { - return nil, err - } - - if !unlocked { - return nil, errors.New("gopenpgp: key is not unlocked") - } - - lockedKey, err := key.Copy() - if err != nil { - return nil, err - } - - if passphrase == nil { - return lockedKey, nil - } - - if lockedKey.entity.PrivateKey != nil && !lockedKey.entity.PrivateKey.Dummy() { - err = lockedKey.entity.PrivateKey.Encrypt(passphrase) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in locking key") - } - } - - for _, sub := range lockedKey.entity.Subkeys { - if sub.PrivateKey != nil && !sub.PrivateKey.Dummy() { - if err := sub.PrivateKey.Encrypt(passphrase); err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in locking sub key") - } - } - } - - locked, err := lockedKey.IsLocked() - if err != nil { - return nil, err - } - if !locked { - return nil, errors.New("gopenpgp: unable to lock key") - } - - return lockedKey, nil -} - -// Unlock unlocks a copy of the key. -func (key *Key) Unlock(passphrase []byte) (*Key, error) { - isLocked, err := key.IsLocked() - if err != nil { - return nil, err - } - - if !isLocked { - if passphrase == nil { - return key.Copy() - } - return nil, errors.New("gopenpgp: key is not locked") - } - - unlockedKey, err := key.Copy() - if err != nil { - return nil, err - } - - if unlockedKey.entity.PrivateKey != nil && !unlockedKey.entity.PrivateKey.Dummy() { - err = unlockedKey.entity.PrivateKey.Decrypt(passphrase) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in unlocking key") - } - } - - for _, sub := range unlockedKey.entity.Subkeys { - if sub.PrivateKey != nil && !sub.PrivateKey.Dummy() { - if err := sub.PrivateKey.Decrypt(passphrase); err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in unlocking sub key") - } - } - } - - isUnlocked, err := unlockedKey.IsUnlocked() - if err != nil { - return nil, err - } - if !isUnlocked { - return nil, errors.New("gopenpgp: unable to unlock key") - } - - return unlockedKey, nil -} - -// --- Export key - -func (key *Key) Serialize() ([]byte, error) { - var buffer bytes.Buffer - var err error - - if key.entity.PrivateKey == nil { - err = key.entity.Serialize(&buffer) - } else { - err = key.entity.SerializePrivateWithoutSigning(&buffer, nil) - } - - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in serializing key") - } - - return buffer.Bytes(), nil -} - -// Armor returns the armored key as a string with default gopenpgp headers. -func (key *Key) Armor() (string, error) { - serialized, err := key.Serialize() - if err != nil { - return "", err - } - - if key.IsPrivate() { - return armor.ArmorWithType(serialized, constants.PrivateKeyHeader) - } - - return armor.ArmorWithType(serialized, constants.PublicKeyHeader) -} - -// ArmorWithCustomHeaders returns the armored key as a string, with -// the given headers. Empty parameters are omitted from the headers. -func (key *Key) ArmorWithCustomHeaders(comment, version string) (string, error) { - serialized, err := key.Serialize() - if err != nil { - return "", err - } - - return armor.ArmorWithTypeAndCustomHeaders(serialized, constants.PrivateKeyHeader, version, comment) -} - -// GetArmoredPublicKey returns the armored public keys from this keyring. -func (key *Key) GetArmoredPublicKey() (s string, err error) { - serialized, err := key.GetPublicKey() - if err != nil { - return "", err - } - - return armor.ArmorWithType(serialized, constants.PublicKeyHeader) -} - -// GetArmoredPublicKeyWithCustomHeaders returns the armored public key as a string, with -// the given headers. Empty parameters are omitted from the headers. -func (key *Key) GetArmoredPublicKeyWithCustomHeaders(comment, version string) (string, error) { - serialized, err := key.GetPublicKey() - if err != nil { - return "", err - } - - return armor.ArmorWithTypeAndCustomHeaders(serialized, constants.PublicKeyHeader, version, comment) -} - -// GetPublicKey returns the unarmored public keys from this keyring. -func (key *Key) GetPublicKey() (b []byte, err error) { - var outBuf bytes.Buffer - if err = key.entity.Serialize(&outBuf); err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in serializing public key") - } - - return outBuf.Bytes(), nil -} - -// --- Key object properties - -// CanVerify returns true if any of the subkeys can be used for verification. -func (key *Key) CanVerify() bool { - _, canVerify := key.entity.SigningKey(getNow()) - return canVerify -} - -// CanEncrypt returns true if any of the subkeys can be used for encryption. -func (key *Key) CanEncrypt() bool { - _, canEncrypt := key.entity.EncryptionKey(getNow()) - return canEncrypt -} - -// IsExpired checks whether the key is expired. -func (key *Key) IsExpired() bool { - i := key.entity.PrimaryIdentity() - return key.entity.PrimaryKey.KeyExpired(i.SelfSignature, getNow()) || // primary key has expired - i.SelfSignature.SigExpired(getNow()) // user ID self-signature has expired -} - -// IsRevoked checks whether the key or the primary identity has a valid revocation signature. -func (key *Key) IsRevoked() bool { - return key.entity.Revoked(getNow()) || key.entity.PrimaryIdentity().Revoked(getNow()) -} - -// IsPrivate returns true if the key is private. -func (key *Key) IsPrivate() bool { - return key.entity.PrivateKey != nil -} - -// IsLocked checks if a private key is locked. -func (key *Key) IsLocked() (bool, error) { - if key.entity.PrivateKey == nil { - return true, errors.New("gopenpgp: a public key cannot be locked") - } - - encryptedKeys := 0 - - for _, sub := range key.entity.Subkeys { - if sub.PrivateKey != nil && !sub.PrivateKey.Dummy() && sub.PrivateKey.Encrypted { - encryptedKeys++ - } - } - - if key.entity.PrivateKey.Encrypted { - encryptedKeys++ - } - - return encryptedKeys > 0, nil -} - -// IsUnlocked checks if a private key is unlocked. -func (key *Key) IsUnlocked() (bool, error) { - if key.entity.PrivateKey == nil { - return true, errors.New("gopenpgp: a public key cannot be unlocked") - } - - encryptedKeys := 0 - - for _, sub := range key.entity.Subkeys { - if sub.PrivateKey != nil && !sub.PrivateKey.Dummy() && sub.PrivateKey.Encrypted { - encryptedKeys++ - } - } - - if key.entity.PrivateKey.Encrypted { - encryptedKeys++ - } - - return encryptedKeys == 0, nil -} - -// Check verifies if the public keys match the private key parameters by -// signing and verifying. -// Deprecated: all keys are now checked on parsing. -func (key *Key) Check() (bool, error) { - return true, nil -} - -// PrintFingerprints is a debug helper function that prints the key and subkey fingerprints. -func (key *Key) PrintFingerprints() { - for _, subKey := range key.entity.Subkeys { - if !subKey.Sig.FlagsValid || subKey.Sig.FlagEncryptStorage || subKey.Sig.FlagEncryptCommunications { - fmt.Println("SubKey:" + hex.EncodeToString(subKey.PublicKey.Fingerprint)) - } - } - fmt.Println("PrimaryKey:" + hex.EncodeToString(key.entity.PrimaryKey.Fingerprint)) -} - -// GetHexKeyID returns the key ID, hex encoded as a string. -func (key *Key) GetHexKeyID() string { - return keyIDToHex(key.GetKeyID()) -} - -// GetKeyID returns the key ID, encoded as 8-byte int. -func (key *Key) GetKeyID() uint64 { - return key.entity.PrimaryKey.KeyId -} - -// GetFingerprint gets the fingerprint from the key. -func (key *Key) GetFingerprint() string { - return hex.EncodeToString(key.entity.PrimaryKey.Fingerprint) -} - -// GetSHA256Fingerprints computes the SHA256 fingerprints of the key and subkeys. -func (key *Key) GetSHA256Fingerprints() (fingerprints []string) { - fingerprints = append(fingerprints, hex.EncodeToString(getSHA256FingerprintBytes(key.entity.PrimaryKey))) - for _, sub := range key.entity.Subkeys { - fingerprints = append(fingerprints, hex.EncodeToString(getSHA256FingerprintBytes(sub.PublicKey))) - } - return -} - -// GetEntity gets x/crypto Entity object. -func (key *Key) GetEntity() *openpgp.Entity { - return key.entity -} - -// ToPublic returns the corresponding public key of the given private key. -func (key *Key) ToPublic() (publicKey *Key, err error) { - if !key.IsPrivate() { - return nil, errors.New("gopenpgp: key is already public") - } - - publicKey, err = key.Copy() - if err != nil { - return nil, err - } - - publicKey.ClearPrivateParams() - return -} - -// --- Internal methods - -// getSHA256FingerprintBytes computes the SHA256 fingerprint of a public key -// object. -func getSHA256FingerprintBytes(pk *packet.PublicKey) []byte { - fingerPrint := sha256.New() - - // Hashing can't return an error, and has already been done when parsing the key, - // hence the error is nil - _ = pk.SerializeForHash(fingerPrint) - return fingerPrint.Sum(nil) -} - -// readFrom reads unarmored and armored keys from r and adds them to the keyring. -func (key *Key) readFrom(r io.Reader, armored bool) error { - var err error - var entities openpgp.EntityList - if armored { - entities, err = openpgp.ReadArmoredKeyRing(r) - } else { - entities, err = openpgp.ReadKeyRing(r) - } - if err != nil { - return errors.Wrap(err, "gopenpgp: error in reading key ring") - } - - if len(entities) > 1 { - return errors.New("gopenpgp: the key contains too many entities") - } - - if len(entities) == 0 { - return errors.New("gopenpgp: the key does not contain any entity") - } - - key.entity = entities[0] - return nil -} - -func generateKey( - name, email string, - keyType string, - bits int, - prime1, prime2, prime3, prime4 []byte, -) (*Key, error) { - if len(email) == 0 && len(name) == 0 { - return nil, errors.New("gopenpgp: neither name nor email set.") - } - - comments := "" - - cfg := &packet.Config{ - Algorithm: packet.PubKeyAlgoRSA, - RSABits: bits, - Time: getKeyGenerationTimeGenerator(), - DefaultHash: crypto.SHA256, - DefaultCipher: packet.CipherAES256, - DefaultCompressionAlgo: packet.CompressionZLIB, - } - - if keyType == "x25519" { - cfg.Algorithm = packet.PubKeyAlgoEdDSA - } - - if prime1 != nil && prime2 != nil && prime3 != nil && prime4 != nil { - var bigPrimes [4]*big.Int - bigPrimes[0] = new(big.Int) - bigPrimes[0].SetBytes(prime1) - bigPrimes[1] = new(big.Int) - bigPrimes[1].SetBytes(prime2) - bigPrimes[2] = new(big.Int) - bigPrimes[2].SetBytes(prime3) - bigPrimes[3] = new(big.Int) - bigPrimes[3].SetBytes(prime4) - - cfg.RSAPrimes = bigPrimes[:] - } - - newEntity, err := openpgp.NewEntity(name, comments, email, cfg) - if err != nil { - return nil, errors.Wrap(err, "gopengpp: error in encoding new entity") - } - - if newEntity.PrivateKey == nil { - return nil, errors.New("gopenpgp: error in generating private key") - } - - return NewKeyFromEntity(newEntity) -} - -// keyIDToHex casts a keyID to hex with the correct padding. -func keyIDToHex(keyID uint64) string { - return fmt.Sprintf("%016v", strconv.FormatUint(keyID, 16)) -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/key_clear.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/key_clear.go deleted file mode 100644 index c628f3635d..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/key_clear.go +++ /dev/null @@ -1,128 +0,0 @@ -package crypto - -import ( - "crypto/dsa" //nolint:staticcheck - "crypto/rsa" - "errors" - "math/big" - - "github.com/ProtonMail/go-crypto/openpgp/ecdh" - "github.com/ProtonMail/go-crypto/openpgp/ecdsa" - "github.com/ProtonMail/go-crypto/openpgp/eddsa" - "github.com/ProtonMail/go-crypto/openpgp/elgamal" -) - -func (sk *SessionKey) Clear() (ok bool) { - clearMem(sk.Key) - return true -} - -func (key *Key) ClearPrivateParams() (ok bool) { - num := key.clearPrivateWithSubkeys() - key.entity.PrivateKey = nil - - for k := range key.entity.Subkeys { - key.entity.Subkeys[k].PrivateKey = nil - } - - return num > 0 -} - -func (key *Key) clearPrivateWithSubkeys() (num int) { - num = 0 - if key.entity.PrivateKey != nil { - err := clearPrivateKey(key.entity.PrivateKey.PrivateKey) - if err == nil { - num++ - } - } - for k := range key.entity.Subkeys { - if key.entity.Subkeys[k].PrivateKey != nil { - err := clearPrivateKey(key.entity.Subkeys[k].PrivateKey.PrivateKey) - if err == nil { - num++ - } - } - } - return num -} - -func clearPrivateKey(privateKey interface{}) error { - switch priv := privateKey.(type) { - case *rsa.PrivateKey: - return clearRSAPrivateKey(priv) - case *dsa.PrivateKey: - return clearDSAPrivateKey(priv) - case *elgamal.PrivateKey: - return clearElGamalPrivateKey(priv) - case *ecdsa.PrivateKey: - return clearECDSAPrivateKey(priv) - case *eddsa.PrivateKey: - return clearEdDSAPrivateKey(priv) - case *ecdh.PrivateKey: - return clearECDHPrivateKey(priv) - default: - return errors.New("gopenpgp: unknown private key") - } -} - -func clearBigInt(n *big.Int) { - w := n.Bits() - for k := range w { - w[k] = 0x00 - } -} - -func clearMem(w []byte) { - for k := range w { - w[k] = 0x00 - } -} - -func clearRSAPrivateKey(rsaPriv *rsa.PrivateKey) error { - clearBigInt(rsaPriv.D) - for idx := range rsaPriv.Primes { - clearBigInt(rsaPriv.Primes[idx]) - } - clearBigInt(rsaPriv.Precomputed.Qinv) - clearBigInt(rsaPriv.Precomputed.Dp) - clearBigInt(rsaPriv.Precomputed.Dq) - - for idx := range rsaPriv.Precomputed.CRTValues { - clearBigInt(rsaPriv.Precomputed.CRTValues[idx].Exp) - clearBigInt(rsaPriv.Precomputed.CRTValues[idx].Coeff) - clearBigInt(rsaPriv.Precomputed.CRTValues[idx].R) - } - - return nil -} - -func clearDSAPrivateKey(priv *dsa.PrivateKey) error { - clearBigInt(priv.X) - - return nil -} - -func clearElGamalPrivateKey(priv *elgamal.PrivateKey) error { - clearBigInt(priv.X) - - return nil -} - -func clearECDSAPrivateKey(priv *ecdsa.PrivateKey) error { - clearBigInt(priv.D) - - return nil -} - -func clearEdDSAPrivateKey(priv *eddsa.PrivateKey) error { - clearMem(priv.D) - - return nil -} - -func clearECDHPrivateKey(priv *ecdh.PrivateKey) error { - clearMem(priv.D) - - return nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring.go deleted file mode 100644 index 201f5eec48..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring.go +++ /dev/null @@ -1,250 +0,0 @@ -package crypto - -import ( - "bytes" - "time" - - "github.com/ProtonMail/go-crypto/openpgp" - "github.com/ProtonMail/go-crypto/openpgp/packet" - "github.com/pkg/errors" -) - -// KeyRing contains multiple private and public keys. -type KeyRing struct { - // PGP entities in this keyring. - entities openpgp.EntityList - - // FirstKeyID as obtained from API to match salt - FirstKeyID string -} - -// Identity contains the name and the email of a key holder. -type Identity struct { - Name string - Email string -} - -// --- New keyrings - -// NewKeyRing creates a new KeyRing, empty if key is nil. -func NewKeyRing(key *Key) (*KeyRing, error) { - keyRing := &KeyRing{} - var err error - if key != nil { - err = keyRing.AddKey(key) - } - return keyRing, err -} - -// AddKey adds the given key to the keyring. -func (keyRing *KeyRing) AddKey(key *Key) error { - if key.IsPrivate() { - unlocked, err := key.IsUnlocked() - if err != nil || !unlocked { - return errors.New("gopenpgp: unable to add locked key to a keyring") - } - } - - keyRing.appendKey(key) - return nil -} - -// --- Extract keys from keyring - -// GetKeys returns openpgp keys contained in this KeyRing. -func (keyRing *KeyRing) GetKeys() []*Key { - keys := make([]*Key, keyRing.CountEntities()) - for i, entity := range keyRing.entities { - keys[i] = &Key{entity} - } - return keys -} - -// GetKey returns the n-th openpgp key contained in this KeyRing. -func (keyRing *KeyRing) GetKey(n int) (*Key, error) { - if n >= keyRing.CountEntities() { - return nil, errors.New("gopenpgp: out of bound when fetching key") - } - return &Key{keyRing.entities[n]}, nil -} - -// getSigningEntity returns first private unlocked signing entity from keyring. -func (keyRing *KeyRing) getSigningEntity() (*openpgp.Entity, error) { - var signEntity *openpgp.Entity - - for _, e := range keyRing.entities { - // Entity.PrivateKey must be a signing key - if e.PrivateKey != nil { - if !e.PrivateKey.Encrypted { - signEntity = e - break - } - } - } - if signEntity == nil { - return nil, errors.New("gopenpgp: cannot sign message, unable to unlock signer key") - } - - return signEntity, nil -} - -// --- Extract info from key - -// CountEntities returns the number of entities in the keyring. -func (keyRing *KeyRing) CountEntities() int { - return len(keyRing.entities) -} - -// CountDecryptionEntities returns the number of entities in the keyring. -func (keyRing *KeyRing) CountDecryptionEntities() int { - return len(keyRing.entities.DecryptionKeys()) -} - -// GetIdentities returns the list of identities associated with this key ring. -func (keyRing *KeyRing) GetIdentities() []*Identity { - var identities []*Identity - for _, e := range keyRing.entities { - for _, id := range e.Identities { - identities = append(identities, &Identity{ - Name: id.UserId.Name, - Email: id.UserId.Email, - }) - } - } - return identities -} - -// CanVerify returns true if any of the keys in the keyring can be used for verification. -func (keyRing *KeyRing) CanVerify() bool { - keys := keyRing.GetKeys() - for _, key := range keys { - if key.CanVerify() { - return true - } - } - return false -} - -// CanEncrypt returns true if any of the keys in the keyring can be used for encryption. -func (keyRing *KeyRing) CanEncrypt() bool { - keys := keyRing.GetKeys() - for _, key := range keys { - if key.CanEncrypt() { - return true - } - } - return false -} - -// GetKeyIDs returns array of IDs of keys in this KeyRing. -func (keyRing *KeyRing) GetKeyIDs() []uint64 { - var res = make([]uint64, len(keyRing.entities)) - for id, e := range keyRing.entities { - res[id] = e.PrimaryKey.KeyId - } - return res -} - -// --- Filter keyrings - -// FilterExpiredKeys takes a given KeyRing list and it returns only those -// KeyRings which contain at least, one unexpired Key. It returns only unexpired -// parts of these KeyRings. -func FilterExpiredKeys(contactKeys []*KeyRing) (filteredKeys []*KeyRing, err error) { - now := time.Now() - hasExpiredEntity := false //nolint:ifshort - filteredKeys = make([]*KeyRing, 0) - - for _, contactKeyRing := range contactKeys { - keyRingHasUnexpiredEntity := false - keyRingHasTotallyExpiredEntity := false - for _, entity := range contactKeyRing.entities { - hasExpired := false - hasUnexpired := false - for _, subkey := range entity.Subkeys { - if subkey.PublicKey.KeyExpired(subkey.Sig, now) { - hasExpired = true - } else { - hasUnexpired = true - } - } - if hasExpired && !hasUnexpired { - keyRingHasTotallyExpiredEntity = true - } else if hasUnexpired { - keyRingHasUnexpiredEntity = true - } - } - if keyRingHasUnexpiredEntity { - keyRingCopy, err := contactKeyRing.Copy() - if err != nil { - return nil, err - } - - filteredKeys = append(filteredKeys, keyRingCopy) - } else if keyRingHasTotallyExpiredEntity { - hasExpiredEntity = true - } - } - - if len(filteredKeys) == 0 && hasExpiredEntity { - return filteredKeys, errors.New("gopenpgp: all contacts keys are expired") - } - - return filteredKeys, nil -} - -// FirstKey returns a KeyRing with only the first key of the original one. -func (keyRing *KeyRing) FirstKey() (*KeyRing, error) { - if len(keyRing.entities) == 0 { - return nil, errors.New("gopenpgp: No key available in this keyring") - } - newKeyRing := &KeyRing{} - newKeyRing.entities = keyRing.entities[:1] - - return newKeyRing.Copy() -} - -// Copy creates a deep copy of the keyring. -func (keyRing *KeyRing) Copy() (*KeyRing, error) { - newKeyRing := &KeyRing{} - - entities := make([]*openpgp.Entity, len(keyRing.entities)) - for id, entity := range keyRing.entities { - var buffer bytes.Buffer - var err error - - if entity.PrivateKey == nil { - err = entity.Serialize(&buffer) - } else { - err = entity.SerializePrivateWithoutSigning(&buffer, nil) - } - - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to copy key: error in serializing entity") - } - - bt := buffer.Bytes() - entities[id], err = openpgp.ReadEntity(packet.NewReader(bytes.NewReader(bt))) - - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to copy key: error in reading entity") - } - } - newKeyRing.entities = entities - newKeyRing.FirstKeyID = keyRing.FirstKeyID - - return newKeyRing, nil -} - -func (keyRing *KeyRing) ClearPrivateParams() { - for _, key := range keyRing.GetKeys() { - key.ClearPrivateParams() - } -} - -// INTERNAL FUNCTIONS - -// appendKey appends a key to the keyring. -func (keyRing *KeyRing) appendKey(key *Key) { - keyRing.entities = append(keyRing.entities, key.entity) -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_message.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_message.go deleted file mode 100644 index 1c429ebd81..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_message.go +++ /dev/null @@ -1,297 +0,0 @@ -package crypto - -import ( - "bytes" - "crypto" - "io" - "io/ioutil" - "time" - - "github.com/ProtonMail/go-crypto/openpgp" - "github.com/ProtonMail/go-crypto/openpgp/packet" - "github.com/ProtonMail/gopenpgp/v2/constants" - "github.com/pkg/errors" -) - -// Encrypt encrypts a PlainMessage, outputs a PGPMessage. -// If an unlocked private key is also provided it will also sign the message. -// * message : The plaintext input as a PlainMessage. -// * privateKey : (optional) an unlocked private keyring to include signature in the message. -func (keyRing *KeyRing) Encrypt(message *PlainMessage, privateKey *KeyRing) (*PGPMessage, error) { - config := &packet.Config{DefaultCipher: packet.CipherAES256, Time: getTimeGenerator()} - encrypted, err := asymmetricEncrypt(message, keyRing, privateKey, config) - if err != nil { - return nil, err - } - - return NewPGPMessage(encrypted), nil -} - -// EncryptWithCompression encrypts with compression support a PlainMessage to PGPMessage using public/private keys. -// * message : The plain data as a PlainMessage. -// * privateKey : (optional) an unlocked private keyring to include signature in the message. -// * output : The encrypted data as PGPMessage. -func (keyRing *KeyRing) EncryptWithCompression(message *PlainMessage, privateKey *KeyRing) (*PGPMessage, error) { - config := &packet.Config{ - DefaultCipher: packet.CipherAES256, - Time: getTimeGenerator(), - DefaultCompressionAlgo: constants.DefaultCompression, - CompressionConfig: &packet.CompressionConfig{Level: constants.DefaultCompressionLevel}, - } - - encrypted, err := asymmetricEncrypt(message, keyRing, privateKey, config) - if err != nil { - return nil, err - } - - return NewPGPMessage(encrypted), nil -} - -// Decrypt decrypts encrypted string using pgp keys, returning a PlainMessage -// * message : The encrypted input as a PGPMessage -// * verifyKey : Public key for signature verification (optional) -// * verifyTime : Time at verification (necessary only if verifyKey is not nil) -// -// When verifyKey is not provided, then verifyTime should be zero, and -// signature verification will be ignored. -func (keyRing *KeyRing) Decrypt( - message *PGPMessage, verifyKey *KeyRing, verifyTime int64, -) (*PlainMessage, error) { - return asymmetricDecrypt(message.NewReader(), keyRing, verifyKey, verifyTime) -} - -// SignDetached generates and returns a PGPSignature for a given PlainMessage. -func (keyRing *KeyRing) SignDetached(message *PlainMessage) (*PGPSignature, error) { - signEntity, err := keyRing.getSigningEntity() - if err != nil { - return nil, err - } - - config := &packet.Config{DefaultHash: crypto.SHA512, Time: getTimeGenerator()} - var outBuf bytes.Buffer - if message.IsBinary() { - err = openpgp.DetachSign(&outBuf, signEntity, message.NewReader(), config) - } else { - err = openpgp.DetachSignText(&outBuf, signEntity, message.NewReader(), config) - } - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in signing") - } - - return NewPGPSignature(outBuf.Bytes()), nil -} - -// VerifyDetached verifies a PlainMessage with a detached PGPSignature -// and returns a SignatureVerificationError if fails. -func (keyRing *KeyRing) VerifyDetached(message *PlainMessage, signature *PGPSignature, verifyTime int64) error { - return verifySignature( - keyRing.entities, - message.NewReader(), - signature.GetBinary(), - verifyTime, - ) -} - -// SignDetachedEncrypted generates and returns a PGPMessage -// containing an encrypted detached signature for a given PlainMessage. -func (keyRing *KeyRing) SignDetachedEncrypted(message *PlainMessage, encryptionKeyRing *KeyRing) (encryptedSignature *PGPMessage, err error) { - if encryptionKeyRing == nil { - return nil, errors.New("gopenpgp: no encryption key ring provided") - } - signature, err := keyRing.SignDetached(message) - if err != nil { - return nil, err - } - plainMessage := NewPlainMessage(signature.GetBinary()) - encryptedSignature, err = encryptionKeyRing.Encrypt(plainMessage, nil) - return -} - -// VerifyDetachedEncrypted verifies a PlainMessage -// with a PGPMessage containing an encrypted detached signature -// and returns a SignatureVerificationError if fails. -func (keyRing *KeyRing) VerifyDetachedEncrypted(message *PlainMessage, encryptedSignature *PGPMessage, decryptionKeyRing *KeyRing, verifyTime int64) error { - if decryptionKeyRing == nil { - return errors.New("gopenpgp: no decryption key ring provided") - } - plainMessage, err := decryptionKeyRing.Decrypt(encryptedSignature, nil, 0) - if err != nil { - return err - } - signature := NewPGPSignature(plainMessage.GetBinary()) - return keyRing.VerifyDetached(message, signature, verifyTime) -} - -// GetVerifiedSignatureTimestamp verifies a PlainMessage with a detached PGPSignature -// returns the creation time of the signature if it succeeds -// and returns a SignatureVerificationError if fails. -func (keyRing *KeyRing) GetVerifiedSignatureTimestamp(message *PlainMessage, signature *PGPSignature, verifyTime int64) (int64, error) { - packets := packet.NewReader(bytes.NewReader(signature.Data)) - var err error - var p packet.Packet - for { - p, err = packets.Next() - if errors.Is(err, io.EOF) { - break - } - if err != nil { - continue - } - sigPacket, ok := p.(*packet.Signature) - if !ok { - continue - } - var outBuf bytes.Buffer - err = sigPacket.Serialize(&outBuf) - if err != nil { - continue - } - err = verifySignature( - keyRing.entities, - message.NewReader(), - outBuf.Bytes(), - verifyTime, - ) - if err != nil { - continue - } - return sigPacket.CreationTime.Unix(), nil - } - return 0, errors.Wrap(err, "gopenpgp: can't verify any signature packets") -} - -// ------ INTERNAL FUNCTIONS ------- - -// Core for encryption+signature (non-streaming) functions. -func asymmetricEncrypt( - plainMessage *PlainMessage, - publicKey, privateKey *KeyRing, - config *packet.Config, -) ([]byte, error) { - var outBuf bytes.Buffer - var encryptWriter io.WriteCloser - var err error - - hints := &openpgp.FileHints{ - IsBinary: plainMessage.IsBinary(), - FileName: plainMessage.Filename, - ModTime: plainMessage.getFormattedTime(), - } - - encryptWriter, err = asymmetricEncryptStream(hints, &outBuf, &outBuf, publicKey, privateKey, config) - if err != nil { - return nil, err - } - - _, err = encryptWriter.Write(plainMessage.GetBinary()) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in writing to message") - } - - err = encryptWriter.Close() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in closing message") - } - - return outBuf.Bytes(), nil -} - -// Core for encryption+signature (all) functions. -func asymmetricEncryptStream( - hints *openpgp.FileHints, - keyPacketWriter io.Writer, - dataPacketWriter io.Writer, - publicKey, privateKey *KeyRing, - config *packet.Config, -) (encryptWriter io.WriteCloser, err error) { - var signEntity *openpgp.Entity - - if privateKey != nil && len(privateKey.entities) > 0 { - var err error - signEntity, err = privateKey.getSigningEntity() - if err != nil { - return nil, err - } - } - - if hints.IsBinary { - encryptWriter, err = openpgp.EncryptSplit(keyPacketWriter, dataPacketWriter, publicKey.entities, signEntity, hints, config) - } else { - encryptWriter, err = openpgp.EncryptTextSplit(keyPacketWriter, dataPacketWriter, publicKey.entities, signEntity, hints, config) - } - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in encrypting asymmetrically") - } - return encryptWriter, nil -} - -// Core for decryption+verification (non streaming) functions. -func asymmetricDecrypt( - encryptedIO io.Reader, privateKey *KeyRing, verifyKey *KeyRing, verifyTime int64, -) (message *PlainMessage, err error) { - messageDetails, err := asymmetricDecryptStream( - encryptedIO, - privateKey, - verifyKey, - verifyTime, - ) - if err != nil { - return nil, err - } - - body, err := ioutil.ReadAll(messageDetails.UnverifiedBody) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in reading message body") - } - - if verifyKey != nil { - processSignatureExpiration(messageDetails, verifyTime) - err = verifyDetailsSignature(messageDetails, verifyKey) - } - - return &PlainMessage{ - Data: body, - TextType: !messageDetails.LiteralData.IsBinary, - Filename: messageDetails.LiteralData.FileName, - Time: messageDetails.LiteralData.Time, - }, err -} - -// Core for decryption+verification (all) functions. -func asymmetricDecryptStream( - encryptedIO io.Reader, - privateKey *KeyRing, - verifyKey *KeyRing, - verifyTime int64, -) (messageDetails *openpgp.MessageDetails, err error) { - privKeyEntries := privateKey.entities - var additionalEntries openpgp.EntityList - - if verifyKey != nil { - additionalEntries = verifyKey.entities - } - - if additionalEntries != nil { - privKeyEntries = append(privKeyEntries, additionalEntries...) - } - - config := &packet.Config{ - Time: func() time.Time { - if verifyTime == 0 { - /* - We default to current time while decrypting and verifying - but the caller will remove signature expiration errors later on. - See processSignatureExpiration(). - */ - return getNow() - } - return time.Unix(verifyTime, 0) - }, - } - - messageDetails, err = openpgp.ReadMessage(encryptedIO, privKeyEntries, nil, config) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in reading message") - } - return messageDetails, err -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_session.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_session.go deleted file mode 100644 index ca2a94f97a..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_session.go +++ /dev/null @@ -1,99 +0,0 @@ -package crypto - -import ( - "bytes" - "strconv" - - "github.com/pkg/errors" - - "github.com/ProtonMail/go-crypto/openpgp/packet" -) - -// DecryptSessionKey returns the decrypted session key from one or multiple binary encrypted session key packets. -func (keyRing *KeyRing) DecryptSessionKey(keyPacket []byte) (*SessionKey, error) { - var p packet.Packet - var ek *packet.EncryptedKey - - var err error - var hasPacket = false - var decryptErr error - - keyReader := bytes.NewReader(keyPacket) - packets := packet.NewReader(keyReader) - -Loop: - for { - if p, err = packets.Next(); err != nil { - break - } - - switch p := p.(type) { - case *packet.EncryptedKey: - hasPacket = true - ek = p - - for _, key := range keyRing.entities.DecryptionKeys() { - priv := key.PrivateKey - if priv.Encrypted { - continue - } - - if decryptErr = ek.Decrypt(priv, nil); decryptErr == nil { - break Loop - } - } - - case *packet.SymmetricallyEncrypted, - *packet.AEADEncrypted, - *packet.Compressed, - *packet.LiteralData: - break Loop - - default: - continue Loop - } - } - - if !hasPacket { - return nil, errors.Wrap(err, "gopenpgp: couldn't find a session key packet") - } - - if decryptErr != nil { - return nil, errors.Wrap(decryptErr, "gopenpgp: error in decrypting") - } - - if ek == nil || ek.Key == nil { - return nil, errors.New("gopenpgp: unable to decrypt session key: no valid decryption key") - } - - return newSessionKeyFromEncrypted(ek) -} - -// EncryptSessionKey encrypts the session key with the unarmored -// publicKey and returns a binary public-key encrypted session key packet. -func (keyRing *KeyRing) EncryptSessionKey(sk *SessionKey) ([]byte, error) { - outbuf := &bytes.Buffer{} - cf, err := sk.GetCipherFunc() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt session key") - } - - pubKeys := make([]*packet.PublicKey, 0, len(keyRing.entities)) - for _, e := range keyRing.entities { - encryptionKey, ok := e.EncryptionKey(getNow()) - if !ok { - return nil, errors.New("gopenpgp: encryption key is unavailable for key id " + strconv.FormatUint(e.PrimaryKey.KeyId, 16)) - } - pubKeys = append(pubKeys, encryptionKey.PublicKey) - } - if len(pubKeys) == 0 { - return nil, errors.New("cannot set key: no public key available") - } - - for _, pub := range pubKeys { - if err := packet.SerializeEncryptedKey(outbuf, pub, cf, sk.Key, nil); err != nil { - return nil, errors.Wrap(err, "gopenpgp: cannot set key") - } - } - return outbuf.Bytes(), nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_streaming.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_streaming.go deleted file mode 100644 index f742a9ba0c..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/keyring_streaming.go +++ /dev/null @@ -1,371 +0,0 @@ -package crypto - -import ( - "bytes" - "crypto" - "io" - "time" - - "github.com/ProtonMail/go-crypto/openpgp" - "github.com/ProtonMail/go-crypto/openpgp/packet" - "github.com/ProtonMail/gopenpgp/v2/constants" - "github.com/pkg/errors" -) - -type Reader interface { - Read(b []byte) (n int, err error) -} - -type Writer interface { - Write(b []byte) (n int, err error) -} - -type WriteCloser interface { - Write(b []byte) (n int, err error) - Close() (err error) -} - -type PlainMessageMetadata struct { - IsBinary bool - Filename string - ModTime int64 -} - -func NewPlainMessageMetadata(isBinary bool, filename string, modTime int64) *PlainMessageMetadata { - return &PlainMessageMetadata{IsBinary: isBinary, Filename: filename, ModTime: modTime} -} - -// EncryptStream is used to encrypt data as a Writer. -// It takes a writer for the encrypted data and returns a WriteCloser for the plaintext data -// If signKeyRing is not nil, it is used to do an embedded signature. -func (keyRing *KeyRing) EncryptStream( - pgpMessageWriter Writer, - plainMessageMetadata *PlainMessageMetadata, - signKeyRing *KeyRing, -) (plainMessageWriter WriteCloser, err error) { - config := &packet.Config{DefaultCipher: packet.CipherAES256, Time: getTimeGenerator()} - - return keyRing.encryptStreamWithConfig( - config, - pgpMessageWriter, - pgpMessageWriter, - plainMessageMetadata, - signKeyRing, - ) -} - -// EncryptStreamWithCompression is used to encrypt data as a Writer. -// The plaintext data is compressed before being encrypted. -// It takes a writer for the encrypted data and returns a WriteCloser for the plaintext data -// If signKeyRing is not nil, it is used to do an embedded signature. -func (keyRing *KeyRing) EncryptStreamWithCompression( - pgpMessageWriter Writer, - plainMessageMetadata *PlainMessageMetadata, - signKeyRing *KeyRing, -) (plainMessageWriter WriteCloser, err error) { - config := &packet.Config{ - DefaultCipher: packet.CipherAES256, - Time: getTimeGenerator(), - DefaultCompressionAlgo: constants.DefaultCompression, - CompressionConfig: &packet.CompressionConfig{Level: constants.DefaultCompressionLevel}, - } - - return keyRing.encryptStreamWithConfig( - config, - pgpMessageWriter, - pgpMessageWriter, - plainMessageMetadata, - signKeyRing, - ) -} - -func (keyRing *KeyRing) encryptStreamWithConfig( - config *packet.Config, - keyPacketWriter Writer, - dataPacketWriter Writer, - plainMessageMetadata *PlainMessageMetadata, - signKeyRing *KeyRing, -) (plainMessageWriter WriteCloser, err error) { - if plainMessageMetadata == nil { - // Use sensible default metadata - plainMessageMetadata = &PlainMessageMetadata{ - IsBinary: true, - Filename: "", - ModTime: GetUnixTime(), - } - } - - hints := &openpgp.FileHints{ - FileName: plainMessageMetadata.Filename, - IsBinary: plainMessageMetadata.IsBinary, - ModTime: time.Unix(plainMessageMetadata.ModTime, 0), - } - - plainMessageWriter, err = asymmetricEncryptStream(hints, keyPacketWriter, dataPacketWriter, keyRing, signKeyRing, config) - if err != nil { - return nil, err - } - return plainMessageWriter, nil -} - -// EncryptSplitResult is used to wrap the encryption writecloser while storing the key packet. -type EncryptSplitResult struct { - isClosed bool - keyPacketBuf *bytes.Buffer - keyPacket []byte - plainMessageWriter WriteCloser // The writer to writer plaintext data in. -} - -func (res *EncryptSplitResult) Write(b []byte) (n int, err error) { - return res.plainMessageWriter.Write(b) -} - -func (res *EncryptSplitResult) Close() (err error) { - err = res.plainMessageWriter.Close() - if err != nil { - return err - } - res.isClosed = true - res.keyPacket = res.keyPacketBuf.Bytes() - return nil -} - -// GetKeyPacket returns the Public-Key Encrypted Session Key Packets (https://datatracker.ietf.org/doc/html/rfc4880#section-5.1). -// This can be retrieved only after the message has been fully written and the writer is closed. -func (res *EncryptSplitResult) GetKeyPacket() (keyPacket []byte, err error) { - if !res.isClosed { - return nil, errors.New("gopenpgp: can't access key packet until the message writer has been closed") - } - return res.keyPacket, nil -} - -// EncryptSplitStream is used to encrypt data as a stream. -// It takes a writer for the Symmetrically Encrypted Data Packet -// (https://datatracker.ietf.org/doc/html/rfc4880#section-5.7) -// and returns a writer for the plaintext data and the key packet. -// If signKeyRing is not nil, it is used to do an embedded signature. -func (keyRing *KeyRing) EncryptSplitStream( - dataPacketWriter Writer, - plainMessageMetadata *PlainMessageMetadata, - signKeyRing *KeyRing, -) (*EncryptSplitResult, error) { - config := &packet.Config{DefaultCipher: packet.CipherAES256, Time: getTimeGenerator()} - - var keyPacketBuf bytes.Buffer - - plainMessageWriter, err := keyRing.encryptStreamWithConfig( - config, - &keyPacketBuf, - dataPacketWriter, - plainMessageMetadata, - signKeyRing, - ) - if err != nil { - return nil, err - } - - return &EncryptSplitResult{ - keyPacketBuf: &keyPacketBuf, - plainMessageWriter: plainMessageWriter, - }, nil -} - -// EncryptSplitStreamWithCompression is used to encrypt data as a stream. -// It takes a writer for the Symmetrically Encrypted Data Packet -// (https://datatracker.ietf.org/doc/html/rfc4880#section-5.7) -// and returns a writer for the plaintext data and the key packet. -// If signKeyRing is not nil, it is used to do an embedded signature. -func (keyRing *KeyRing) EncryptSplitStreamWithCompression( - dataPacketWriter Writer, - plainMessageMetadata *PlainMessageMetadata, - signKeyRing *KeyRing, -) (*EncryptSplitResult, error) { - config := &packet.Config{ - DefaultCipher: packet.CipherAES256, - Time: getTimeGenerator(), - DefaultCompressionAlgo: constants.DefaultCompression, - CompressionConfig: &packet.CompressionConfig{Level: constants.DefaultCompressionLevel}, - } - - var keyPacketBuf bytes.Buffer - - plainMessageWriter, err := keyRing.encryptStreamWithConfig( - config, - &keyPacketBuf, - dataPacketWriter, - plainMessageMetadata, - signKeyRing, - ) - if err != nil { - return nil, err - } - - return &EncryptSplitResult{ - keyPacketBuf: &keyPacketBuf, - plainMessageWriter: plainMessageWriter, - }, nil -} - -// PlainMessageReader is used to wrap the data of the decrypted plain message. -// It can be used to read the decrypted data and verify the embedded signature. -type PlainMessageReader struct { - details *openpgp.MessageDetails - verifyKeyRing *KeyRing - verifyTime int64 - readAll bool -} - -// GetMetadata returns the metadata of the decrypted message. -func (msg *PlainMessageReader) GetMetadata() *PlainMessageMetadata { - return &PlainMessageMetadata{ - Filename: msg.details.LiteralData.FileName, - IsBinary: msg.details.LiteralData.IsBinary, - ModTime: int64(msg.details.LiteralData.Time), - } -} - -// Read is used to access the message decrypted data. -// Makes PlainMessageReader implement the Reader interface. -func (msg *PlainMessageReader) Read(b []byte) (n int, err error) { - n, err = msg.details.UnverifiedBody.Read(b) - if errors.Is(err, io.EOF) { - msg.readAll = true - } - return -} - -// VerifySignature is used to verify that the signature is valid. -// This method needs to be called once all the data has been read. -// It will return an error if the signature is invalid -// or if the message hasn't been read entirely. -func (msg *PlainMessageReader) VerifySignature() (err error) { - if !msg.readAll { - return errors.New("gopenpgp: can't verify the signature until the message reader has been read entirely") - } - if msg.verifyKeyRing != nil { - processSignatureExpiration(msg.details, msg.verifyTime) - err = verifyDetailsSignature(msg.details, msg.verifyKeyRing) - } else { - err = errors.New("gopenpgp: no verify keyring was provided before decryption") - } - return -} - -// DecryptStream is used to decrypt a pgp message as a Reader. -// It takes a reader for the message data -// and returns a PlainMessageReader for the plaintext data. -// If verifyKeyRing is not nil, PlainMessageReader.VerifySignature() will -// verify the embedded signature with the given key ring and verification time. -func (keyRing *KeyRing) DecryptStream( - message Reader, - verifyKeyRing *KeyRing, - verifyTime int64, -) (plainMessage *PlainMessageReader, err error) { - messageDetails, err := asymmetricDecryptStream( - message, - keyRing, - verifyKeyRing, - verifyTime, - ) - if err != nil { - return nil, err - } - - return &PlainMessageReader{ - messageDetails, - verifyKeyRing, - verifyTime, - false, - }, err -} - -// DecryptSplitStream is used to decrypt a split pgp message as a Reader. -// It takes a key packet and a reader for the data packet -// and returns a PlainMessageReader for the plaintext data. -// If verifyKeyRing is not nil, PlainMessageReader.VerifySignature() will -// verify the embedded signature with the given key ring and verification time. -func (keyRing *KeyRing) DecryptSplitStream( - keypacket []byte, - dataPacketReader Reader, - verifyKeyRing *KeyRing, verifyTime int64, -) (plainMessage *PlainMessageReader, err error) { - messageReader := io.MultiReader( - bytes.NewReader(keypacket), - dataPacketReader, - ) - return keyRing.DecryptStream( - messageReader, - verifyKeyRing, - verifyTime, - ) -} - -// SignDetachedStream generates and returns a PGPSignature for a given message Reader. -func (keyRing *KeyRing) SignDetachedStream(message Reader) (*PGPSignature, error) { - signEntity, err := keyRing.getSigningEntity() - if err != nil { - return nil, err - } - - config := &packet.Config{DefaultHash: crypto.SHA512, Time: getTimeGenerator()} - var outBuf bytes.Buffer - // sign bin - if err := openpgp.DetachSign(&outBuf, signEntity, message, config); err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in signing") - } - - return NewPGPSignature(outBuf.Bytes()), nil -} - -// VerifyDetachedStream verifies a message reader with a detached PGPSignature -// and returns a SignatureVerificationError if fails. -func (keyRing *KeyRing) VerifyDetachedStream( - message Reader, - signature *PGPSignature, - verifyTime int64, -) error { - return verifySignature( - keyRing.entities, - message, - signature.GetBinary(), - verifyTime, - ) -} - -// SignDetachedEncryptedStream generates and returns a PGPMessage -// containing an encrypted detached signature for a given message Reader. -func (keyRing *KeyRing) SignDetachedEncryptedStream( - message Reader, - encryptionKeyRing *KeyRing, -) (encryptedSignature *PGPMessage, err error) { - if encryptionKeyRing == nil { - return nil, errors.New("gopenpgp: no encryption key ring provided") - } - signature, err := keyRing.SignDetachedStream(message) - if err != nil { - return nil, err - } - plainMessage := NewPlainMessage(signature.GetBinary()) - encryptedSignature, err = encryptionKeyRing.Encrypt(plainMessage, nil) - return -} - -// VerifyDetachedEncryptedStream verifies a PlainMessage -// with a PGPMessage containing an encrypted detached signature -// and returns a SignatureVerificationError if fails. -func (keyRing *KeyRing) VerifyDetachedEncryptedStream( - message Reader, - encryptedSignature *PGPMessage, - decryptionKeyRing *KeyRing, - verifyTime int64, -) error { - if decryptionKeyRing == nil { - return errors.New("gopenpgp: no decryption key ring provided") - } - plainMessage, err := decryptionKeyRing.Decrypt(encryptedSignature, nil, 0) - if err != nil { - return err - } - signature := NewPGPSignature(plainMessage.GetBinary()) - return keyRing.VerifyDetachedStream(message, signature, verifyTime) -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/message.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/message.go deleted file mode 100644 index 4f34be4de8..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/message.go +++ /dev/null @@ -1,465 +0,0 @@ -package crypto - -import ( - "bytes" - "encoding/base64" - goerrors "errors" - "io" - "io/ioutil" - "regexp" - "strings" - "time" - - "github.com/ProtonMail/go-crypto/openpgp/clearsign" - "github.com/ProtonMail/go-crypto/openpgp/packet" - "github.com/ProtonMail/gopenpgp/v2/armor" - "github.com/ProtonMail/gopenpgp/v2/constants" - "github.com/ProtonMail/gopenpgp/v2/internal" - "github.com/pkg/errors" -) - -// ---- MODELS ----- - -// PlainMessage stores a plain text / unencrypted message. -type PlainMessage struct { - // The content of the message - Data []byte - // If the content is text or binary - TextType bool - // The file's latest modification time - Time uint32 - // The encrypted message's filename - Filename string -} - -// PGPMessage stores a PGP-encrypted message. -type PGPMessage struct { - // The content of the message - Data []byte -} - -// PGPSignature stores a PGP-encoded detached signature. -type PGPSignature struct { - // The content of the signature - Data []byte -} - -// PGPSplitMessage contains a separate session key packet and symmetrically -// encrypted data packet. -type PGPSplitMessage struct { - DataPacket []byte - KeyPacket []byte -} - -// A ClearTextMessage is a signed but not encrypted PGP message, -// i.e. the ones beginning with -----BEGIN PGP SIGNED MESSAGE-----. -type ClearTextMessage struct { - Data []byte - Signature []byte -} - -// ---- GENERATORS ----- - -// NewPlainMessage generates a new binary PlainMessage ready for encryption, -// signature, or verification from the unencrypted binary data. -// This will encrypt the message with the binary flag and preserve the file as is. -func NewPlainMessage(data []byte) *PlainMessage { - return &PlainMessage{ - Data: clone(data), - TextType: false, - Filename: "", - Time: uint32(GetUnixTime()), - } -} - -// NewPlainMessageFromFile generates a new binary PlainMessage ready for encryption, -// signature, or verification from the unencrypted binary data. -// This will encrypt the message with the binary flag and preserve the file as is. -// It assigns a filename and a modification time. -func NewPlainMessageFromFile(data []byte, filename string, time uint32) *PlainMessage { - return &PlainMessage{ - Data: clone(data), - TextType: false, - Filename: filename, - Time: time, - } -} - -// NewPlainMessageFromString generates a new text PlainMessage, -// ready for encryption, signature, or verification from an unencrypted string. -// This will encrypt the message with the text flag, canonicalize the line endings -// (i.e. set all of them to \r\n) and strip the trailing spaces for each line. -// This allows seamless conversion to clear text signed messages (see RFC 4880 5.2.1 and 7.1). -func NewPlainMessageFromString(text string) *PlainMessage { - return &PlainMessage{ - Data: []byte(internal.Canonicalize(text)), - TextType: true, - Filename: "", - Time: uint32(GetUnixTime()), - } -} - -// NewPGPMessage generates a new PGPMessage from the unarmored binary data. -func NewPGPMessage(data []byte) *PGPMessage { - return &PGPMessage{ - Data: clone(data), - } -} - -// NewPGPMessageFromArmored generates a new PGPMessage from an armored string ready for decryption. -func NewPGPMessageFromArmored(armored string) (*PGPMessage, error) { - encryptedIO, err := internal.Unarmor(armored) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in unarmoring message") - } - - message, err := ioutil.ReadAll(encryptedIO.Body) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in reading armored message") - } - - return &PGPMessage{ - Data: message, - }, nil -} - -// NewPGPSplitMessage generates a new PGPSplitMessage from the binary unarmored keypacket, -// datapacket, and encryption algorithm. -func NewPGPSplitMessage(keyPacket []byte, dataPacket []byte) *PGPSplitMessage { - return &PGPSplitMessage{ - KeyPacket: clone(keyPacket), - DataPacket: clone(dataPacket), - } -} - -// NewPGPSplitMessageFromArmored generates a new PGPSplitMessage by splitting an armored message into its -// session key packet and symmetrically encrypted data packet. -func NewPGPSplitMessageFromArmored(encrypted string) (*PGPSplitMessage, error) { - message, err := NewPGPMessageFromArmored(encrypted) - if err != nil { - return nil, err - } - - return message.SplitMessage() -} - -// NewPGPSignature generates a new PGPSignature from the unarmored binary data. -func NewPGPSignature(data []byte) *PGPSignature { - return &PGPSignature{ - Data: clone(data), - } -} - -// NewPGPSignatureFromArmored generates a new PGPSignature from the armored -// string ready for verification. -func NewPGPSignatureFromArmored(armored string) (*PGPSignature, error) { - encryptedIO, err := internal.Unarmor(armored) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in unarmoring signature") - } - - signature, err := ioutil.ReadAll(encryptedIO.Body) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in reading armored signature") - } - - return &PGPSignature{ - Data: signature, - }, nil -} - -// NewClearTextMessage generates a new ClearTextMessage from data and -// signature. -func NewClearTextMessage(data []byte, signature []byte) *ClearTextMessage { - return &ClearTextMessage{ - Data: clone(data), - Signature: clone(signature), - } -} - -// NewClearTextMessageFromArmored returns the message body and unarmored -// signature from a clearsigned message. -func NewClearTextMessageFromArmored(signedMessage string) (*ClearTextMessage, error) { - modulusBlock, rest := clearsign.Decode([]byte(signedMessage)) - if len(rest) != 0 { - return nil, errors.New("gopenpgp: extra data after modulus") - } - - signature, err := ioutil.ReadAll(modulusBlock.ArmoredSignature.Body) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in reading cleartext message") - } - - return NewClearTextMessage(modulusBlock.Bytes, signature), nil -} - -// ---- MODEL METHODS ----- - -// GetBinary returns the binary content of the message as a []byte. -func (msg *PlainMessage) GetBinary() []byte { - return msg.Data -} - -// GetString returns the content of the message as a string. -func (msg *PlainMessage) GetString() string { - return sanitizeString(strings.ReplaceAll(string(msg.Data), "\r\n", "\n")) -} - -// GetBase64 returns the base-64 encoded binary content of the message as a -// string. -func (msg *PlainMessage) GetBase64() string { - return base64.StdEncoding.EncodeToString(msg.Data) -} - -// NewReader returns a New io.Reader for the binary data of the message. -func (msg *PlainMessage) NewReader() io.Reader { - return bytes.NewReader(msg.GetBinary()) -} - -// IsText returns whether the message is a text message. -func (msg *PlainMessage) IsText() bool { - return msg.TextType -} - -// IsBinary returns whether the message is a binary message. -func (msg *PlainMessage) IsBinary() bool { - return !msg.TextType -} - -// getFormattedTime returns the message (latest modification) Time as time.Time. -func (msg *PlainMessage) getFormattedTime() time.Time { - return time.Unix(int64(msg.Time), 0) -} - -// GetBinary returns the unarmored binary content of the message as a []byte. -func (msg *PGPMessage) GetBinary() []byte { - return msg.Data -} - -// NewReader returns a New io.Reader for the unarmored binary data of the -// message. -func (msg *PGPMessage) NewReader() io.Reader { - return bytes.NewReader(msg.GetBinary()) -} - -// GetArmored returns the armored message as a string. -func (msg *PGPMessage) GetArmored() (string, error) { - return armor.ArmorWithType(msg.Data, constants.PGPMessageHeader) -} - -// GetArmoredWithCustomHeaders returns the armored message as a string, with -// the given headers. Empty parameters are omitted from the headers. -func (msg *PGPMessage) GetArmoredWithCustomHeaders(comment, version string) (string, error) { - return armor.ArmorWithTypeAndCustomHeaders(msg.Data, constants.PGPMessageHeader, version, comment) -} - -// GetEncryptionKeyIDs Returns the key IDs of the keys to which the session key is encrypted. -func (msg *PGPMessage) GetEncryptionKeyIDs() ([]uint64, bool) { - packets := packet.NewReader(bytes.NewReader(msg.Data)) - var err error - var ids []uint64 - var encryptedKey *packet.EncryptedKey -Loop: - for { - var p packet.Packet - if p, err = packets.Next(); goerrors.Is(err, io.EOF) { - break - } - switch p := p.(type) { - case *packet.EncryptedKey: - encryptedKey = p - ids = append(ids, encryptedKey.KeyId) - case *packet.SymmetricallyEncrypted, - *packet.AEADEncrypted, - *packet.Compressed, - *packet.LiteralData: - break Loop - } - } - if len(ids) > 0 { - return ids, true - } - return ids, false -} - -// GetHexEncryptionKeyIDs Returns the key IDs of the keys to which the session key is encrypted. -func (msg *PGPMessage) GetHexEncryptionKeyIDs() ([]string, bool) { - return getHexKeyIDs(msg.GetEncryptionKeyIDs()) -} - -// GetSignatureKeyIDs Returns the key IDs of the keys to which the (readable) signature packets are encrypted to. -func (msg *PGPMessage) GetSignatureKeyIDs() ([]uint64, bool) { - return getSignatureKeyIDs(msg.Data) -} - -// GetHexSignatureKeyIDs Returns the key IDs of the keys to which the session key is encrypted. -func (msg *PGPMessage) GetHexSignatureKeyIDs() ([]string, bool) { - return getHexKeyIDs(msg.GetSignatureKeyIDs()) -} - -// GetBinaryDataPacket returns the unarmored binary datapacket as a []byte. -func (msg *PGPSplitMessage) GetBinaryDataPacket() []byte { - return msg.DataPacket -} - -// GetBinaryKeyPacket returns the unarmored binary keypacket as a []byte. -func (msg *PGPSplitMessage) GetBinaryKeyPacket() []byte { - return msg.KeyPacket -} - -// GetBinary returns the unarmored binary joined packets as a []byte. -func (msg *PGPSplitMessage) GetBinary() []byte { - return append(msg.KeyPacket, msg.DataPacket...) -} - -// GetArmored returns the armored message as a string, with joined data and key -// packets. -func (msg *PGPSplitMessage) GetArmored() (string, error) { - return armor.ArmorWithType(msg.GetBinary(), constants.PGPMessageHeader) -} - -// GetPGPMessage joins asymmetric session key packet with the symmetric data -// packet to obtain a PGP message. -func (msg *PGPSplitMessage) GetPGPMessage() *PGPMessage { - return NewPGPMessage(append(msg.KeyPacket, msg.DataPacket...)) -} - -// SplitMessage splits the message into key and data packet(s). -// Parameters are for backwards compatibility and are unused. -func (msg *PGPMessage) SplitMessage() (*PGPSplitMessage, error) { - bytesReader := bytes.NewReader(msg.Data) - packets := packet.NewReader(bytesReader) - splitPoint := int64(0) -Loop: - for { - p, err := packets.Next() - if goerrors.Is(err, io.EOF) { - break - } - if err != nil { - return nil, err - } - switch p.(type) { - case *packet.SymmetricKeyEncrypted, *packet.EncryptedKey: - splitPoint = bytesReader.Size() - int64(bytesReader.Len()) - case *packet.SymmetricallyEncrypted, *packet.AEADEncrypted: - break Loop - } - } - return &PGPSplitMessage{ - KeyPacket: clone(msg.Data[:splitPoint]), - DataPacket: clone(msg.Data[splitPoint:]), - }, nil -} - -// SeparateKeyAndData splits the message into key and data packet(s). -// Parameters are for backwards compatibility and are unused. -// Deprecated: use SplitMessage(). -func (msg *PGPMessage) SeparateKeyAndData(_ int, _ int) (*PGPSplitMessage, error) { - return msg.SplitMessage() -} - -// GetBinary returns the unarmored binary content of the signature as a []byte. -func (sig *PGPSignature) GetBinary() []byte { - return sig.Data -} - -// GetArmored returns the armored signature as a string. -func (sig *PGPSignature) GetArmored() (string, error) { - return armor.ArmorWithType(sig.Data, constants.PGPSignatureHeader) -} - -// GetSignatureKeyIDs Returns the key IDs of the keys to which the (readable) signature packets are encrypted to. -func (sig *PGPSignature) GetSignatureKeyIDs() ([]uint64, bool) { - return getSignatureKeyIDs(sig.Data) -} - -// GetHexSignatureKeyIDs Returns the key IDs of the keys to which the session key is encrypted. -func (sig *PGPSignature) GetHexSignatureKeyIDs() ([]string, bool) { - return getHexKeyIDs(sig.GetSignatureKeyIDs()) -} - -// GetBinary returns the unarmored signed data as a []byte. -func (msg *ClearTextMessage) GetBinary() []byte { - return msg.Data -} - -// GetString returns the unarmored signed data as a string. -func (msg *ClearTextMessage) GetString() string { - return string(msg.Data) -} - -// GetBinarySignature returns the unarmored binary signature as a []byte. -func (msg *ClearTextMessage) GetBinarySignature() []byte { - return msg.Signature -} - -// GetArmored armors plaintext and signature with the PGP SIGNED MESSAGE -// armoring. -func (msg *ClearTextMessage) GetArmored() (string, error) { - armSignature, err := armor.ArmorWithType(msg.GetBinarySignature(), constants.PGPSignatureHeader) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: error in armoring cleartext message") - } - - str := "-----BEGIN PGP SIGNED MESSAGE-----\r\nHash: SHA512\r\n\r\n" - str += msg.GetString() - str += "\r\n" - str += armSignature - - return str, nil -} - -// ---- UTILS ----- - -// IsPGPMessage checks if data if has armored PGP message format. -func IsPGPMessage(data string) bool { - re := regexp.MustCompile("^-----BEGIN " + constants.PGPMessageHeader + "-----(?s:.+)-----END " + - constants.PGPMessageHeader + "-----") - return re.MatchString(data) -} - -func getSignatureKeyIDs(data []byte) ([]uint64, bool) { - packets := packet.NewReader(bytes.NewReader(data)) - var err error - var ids []uint64 - var onePassSignaturePacket *packet.OnePassSignature - var signaturePacket *packet.Signature - -Loop: - for { - var p packet.Packet - if p, err = packets.Next(); goerrors.Is(err, io.EOF) { - break - } - switch p := p.(type) { - case *packet.OnePassSignature: - onePassSignaturePacket = p - ids = append(ids, onePassSignaturePacket.KeyId) - case *packet.Signature: - signaturePacket = p - if signaturePacket.IssuerKeyId != nil { - ids = append(ids, *signaturePacket.IssuerKeyId) - } - case *packet.SymmetricallyEncrypted, - *packet.AEADEncrypted, - *packet.Compressed, - *packet.LiteralData: - break Loop - } - } - if len(ids) > 0 { - return ids, true - } - return ids, false -} - -func getHexKeyIDs(keyIDs []uint64, ok bool) ([]string, bool) { - hexIDs := make([]string, len(keyIDs)) - - for i, id := range keyIDs { - hexIDs[i] = keyIDToHex(id) - } - - return hexIDs, ok -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/message_getters.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/message_getters.go deleted file mode 100644 index 7389dedba7..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/message_getters.go +++ /dev/null @@ -1,14 +0,0 @@ -//go:build !android -// +build !android - -package crypto - -// GetFilename returns the file name of the message as a string. -func (msg *PlainMessage) GetFilename() string { - return msg.Filename -} - -// GetTime returns the modification time of a file (if provided in the ciphertext). -func (msg *PlainMessage) GetTime() uint32 { - return msg.Time -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/mime.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/mime.go deleted file mode 100644 index d756dfcc45..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/mime.go +++ /dev/null @@ -1,118 +0,0 @@ -package crypto - -import ( - "bytes" - "io/ioutil" - "net/mail" - "net/textproto" - "strings" - - "github.com/ProtonMail/go-crypto/openpgp" - "github.com/ProtonMail/go-crypto/openpgp/packet" - gomime "github.com/ProtonMail/go-mime" - "github.com/ProtonMail/gopenpgp/v2/constants" - "github.com/pkg/errors" -) - -// MIMECallbacks defines callback methods to process a MIME message. -type MIMECallbacks interface { - OnBody(body string, mimetype string) - OnAttachment(headers string, data []byte) - // Encrypted headers can be in an attachment and thus be placed at the end of the mime structure. - OnEncryptedHeaders(headers string) - OnVerified(verified int) - OnError(err error) -} - -// DecryptMIMEMessage decrypts a MIME message. -func (keyRing *KeyRing) DecryptMIMEMessage( - message *PGPMessage, verifyKey *KeyRing, callbacks MIMECallbacks, verifyTime int64, -) { - decryptedMessage, err := keyRing.Decrypt(message, verifyKey, verifyTime) - embeddedSigError, err := separateSigError(err) - if err != nil { - callbacks.OnError(err) - return - } - body, attachments, attachmentHeaders, err := parseMIME(string(decryptedMessage.GetBinary()), verifyKey) - mimeSigError, err := separateSigError(err) - if err != nil { - callbacks.OnError(err) - return - } - // We only consider the signature to be failed if both embedded and mime verification failed - if embeddedSigError != nil && mimeSigError != nil { - callbacks.OnError(embeddedSigError) - callbacks.OnError(mimeSigError) - callbacks.OnVerified(prioritizeSignatureErrors(embeddedSigError, mimeSigError)) - } else if verifyKey != nil { - callbacks.OnVerified(constants.SIGNATURE_OK) - } - bodyContent, bodyMimeType := body.GetBody() - bodyContentSanitized := sanitizeString(bodyContent) - callbacks.OnBody(bodyContentSanitized, bodyMimeType) - for i := 0; i < len(attachments); i++ { - callbacks.OnAttachment(attachmentHeaders[i], []byte(attachments[i])) - } - callbacks.OnEncryptedHeaders("") -} - -// ----- INTERNAL FUNCTIONS ----- - -func prioritizeSignatureErrors(signatureErrs ...*SignatureVerificationError) (maxError int) { - // select error with the highest value, if any - // FAILED > NO VERIFIER > NOT SIGNED > SIGNATURE OK - maxError = constants.SIGNATURE_OK - for _, err := range signatureErrs { - if err.Status > maxError { - maxError = err.Status - } - } - return -} - -func separateSigError(err error) (*SignatureVerificationError, error) { - sigErr := &SignatureVerificationError{} - if errors.As(err, sigErr) { - return sigErr, nil - } - return nil, err -} - -func parseMIME( - mimeBody string, verifierKey *KeyRing, -) (*gomime.BodyCollector, []string, []string, error) { - mm, err := mail.ReadMessage(strings.NewReader(mimeBody)) - if err != nil { - return nil, nil, nil, errors.Wrap(err, "gopenpgp: error in reading message") - } - config := &packet.Config{DefaultCipher: packet.CipherAES256, Time: getTimeGenerator()} - - h := textproto.MIMEHeader(mm.Header) - mmBodyData, err := ioutil.ReadAll(mm.Body) - if err != nil { - return nil, nil, nil, errors.Wrap(err, "gopenpgp: error in reading message body data") - } - - printAccepter := gomime.NewMIMEPrinter() - bodyCollector := gomime.NewBodyCollector(printAccepter) - attachmentsCollector := gomime.NewAttachmentsCollector(bodyCollector) - mimeVisitor := gomime.NewMimeVisitor(attachmentsCollector) - - var verifierEntities openpgp.KeyRing - if verifierKey != nil { - verifierEntities = verifierKey.entities - } - - signatureCollector := newSignatureCollector(mimeVisitor, verifierEntities, config) - - err = gomime.VisitAll(bytes.NewReader(mmBodyData), h, signatureCollector) - if err == nil && verifierKey != nil { - err = signatureCollector.verified - } - - return bodyCollector, - attachmentsCollector.GetAttachments(), - attachmentsCollector.GetAttHeaders(), - err -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/password.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/password.go deleted file mode 100644 index 64ee02640b..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/password.go +++ /dev/null @@ -1,179 +0,0 @@ -package crypto - -import ( - "bytes" - "io" - - "github.com/ProtonMail/go-crypto/openpgp" - pgpErrors "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/packet" - "github.com/pkg/errors" -) - -// EncryptMessageWithPassword encrypts a PlainMessage to PGPMessage with a -// SymmetricKey. -// * message : The plain data as a PlainMessage. -// * password: A password that will be derived into an encryption key. -// * output : The encrypted data as PGPMessage. -func EncryptMessageWithPassword(message *PlainMessage, password []byte) (*PGPMessage, error) { - encrypted, err := passwordEncrypt(message, password) - if err != nil { - return nil, err - } - - return NewPGPMessage(encrypted), nil -} - -// DecryptMessageWithPassword decrypts password protected pgp binary messages. -// * encrypted: The encrypted data as PGPMessage. -// * password: A password that will be derived into an encryption key. -// * output: The decrypted data as PlainMessage. -func DecryptMessageWithPassword(message *PGPMessage, password []byte) (*PlainMessage, error) { - return passwordDecrypt(message.NewReader(), password) -} - -// DecryptSessionKeyWithPassword decrypts the binary symmetrically encrypted -// session key packet and returns the session key. -func DecryptSessionKeyWithPassword(keyPacket, password []byte) (*SessionKey, error) { - keyReader := bytes.NewReader(keyPacket) - packets := packet.NewReader(keyReader) - - var symKeys []*packet.SymmetricKeyEncrypted - for { - var p packet.Packet - var err error - if p, err = packets.Next(); err != nil { - break - } - - if p, ok := p.(*packet.SymmetricKeyEncrypted); ok { - symKeys = append(symKeys, p) - } - } - - // Try the symmetric passphrase first - if len(symKeys) != 0 && password != nil { - for _, s := range symKeys { - key, cipherFunc, err := s.Decrypt(password) - if err == nil { - sk := &SessionKey{ - Key: key, - Algo: getAlgo(cipherFunc), - } - - if err = sk.checkSize(); err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to decrypt session key with password") - } - - return sk, nil - } - } - } - - return nil, errors.New("gopenpgp: unable to decrypt any packet") -} - -// EncryptSessionKeyWithPassword encrypts the session key with the password and -// returns a binary symmetrically encrypted session key packet. -func EncryptSessionKeyWithPassword(sk *SessionKey, password []byte) ([]byte, error) { - outbuf := &bytes.Buffer{} - - cf, err := sk.GetCipherFunc() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt session key with password") - } - - if len(password) == 0 { - return nil, errors.New("gopenpgp: password can't be empty") - } - - if err = sk.checkSize(); err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt session key with password") - } - - config := &packet.Config{ - DefaultCipher: cf, - } - - err = packet.SerializeSymmetricKeyEncryptedReuseKey(outbuf, sk.Key, password, config) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt session key with password") - } - return outbuf.Bytes(), nil -} - -// ----- INTERNAL FUNCTIONS ------ - -func passwordEncrypt(message *PlainMessage, password []byte) ([]byte, error) { - var outBuf bytes.Buffer - - config := &packet.Config{ - DefaultCipher: packet.CipherAES256, - Time: getTimeGenerator(), - } - - hints := &openpgp.FileHints{ - IsBinary: message.IsBinary(), - FileName: message.Filename, - ModTime: message.getFormattedTime(), - } - - encryptWriter, err := openpgp.SymmetricallyEncrypt(&outBuf, password, hints, config) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in encrypting message symmetrically") - } - _, err = encryptWriter.Write(message.GetBinary()) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in writing data to message") - } - - err = encryptWriter.Close() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in closing writer") - } - - return outBuf.Bytes(), nil -} - -func passwordDecrypt(encryptedIO io.Reader, password []byte) (*PlainMessage, error) { - firstTimeCalled := true - var prompt = func(keys []openpgp.Key, symmetric bool) ([]byte, error) { - if firstTimeCalled { - firstTimeCalled = false - return password, nil - } - // Re-prompt still occurs if SKESK pasrsing fails (i.e. when decrypted cipher algo is invalid). - // For most (but not all) cases, inputting a wrong passwords is expected to trigger this error. - return nil, errors.New("gopenpgp: wrong password in symmetric decryption") - } - - config := &packet.Config{ - Time: getTimeGenerator(), - } - - var emptyKeyRing openpgp.EntityList - md, err := openpgp.ReadMessage(encryptedIO, emptyKeyRing, prompt, config) - if err != nil { - // Parsing errors when reading the message are most likely caused by incorrect password, but we cannot know for sure - return nil, errors.New("gopenpgp: error in reading password protected message: wrong password or malformed message") - } - - messageBuf := bytes.NewBuffer(nil) - _, err = io.Copy(messageBuf, md.UnverifiedBody) - if errors.Is(err, pgpErrors.ErrMDCHashMismatch) { - // This MDC error may also be triggered if the password is correct, but the encrypted data was corrupted. - // To avoid confusion, we do not inform the user about the second possibility. - return nil, errors.New("gopenpgp: wrong password in symmetric decryption") - } - if err != nil { - // Parsing errors after decryption, triggered before parsing the MDC packet, are also usually the result of wrong password - return nil, errors.New("gopenpgp: error in reading password protected message: wrong password or malformed message") - } - - return &PlainMessage{ - Data: messageBuf.Bytes(), - TextType: !md.LiteralData.IsBinary, - Filename: md.LiteralData.FileName, - Time: md.LiteralData.Time, - }, nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sanitize_string.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sanitize_string.go deleted file mode 100644 index 854e11f31d..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sanitize_string.go +++ /dev/null @@ -1,7 +0,0 @@ -package crypto - -import "strings" - -func sanitizeString(input string) string { - return strings.ToValidUTF8(input, "\ufffd") -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sessionkey.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sessionkey.go deleted file mode 100644 index c8c4dcf51f..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sessionkey.go +++ /dev/null @@ -1,398 +0,0 @@ -package crypto - -import ( - "bytes" - "encoding/base64" - "fmt" - "io" - "time" - - "github.com/ProtonMail/gopenpgp/v2/constants" - "github.com/pkg/errors" - - "github.com/ProtonMail/go-crypto/openpgp" - pgpErrors "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/packet" -) - -// SessionKey stores a decrypted session key. -type SessionKey struct { - // The decrypted binary session key. - Key []byte - // The symmetric encryption algorithm used with this key. - Algo string -} - -var symKeyAlgos = map[string]packet.CipherFunction{ - constants.ThreeDES: packet.Cipher3DES, - constants.TripleDES: packet.Cipher3DES, - constants.CAST5: packet.CipherCAST5, - constants.AES128: packet.CipherAES128, - constants.AES192: packet.CipherAES192, - constants.AES256: packet.CipherAES256, -} - -type checkReader struct { - decrypted io.ReadCloser - body io.Reader -} - -func (cr checkReader) Read(buf []byte) (int, error) { - n, sensitiveParsingError := cr.body.Read(buf) - if sensitiveParsingError == io.EOF { - mdcErr := cr.decrypted.Close() - if mdcErr != nil { - return n, mdcErr - } - return n, io.EOF - } - - if sensitiveParsingError != nil { - return n, pgpErrors.StructuralError("parsing error") - } - - return n, nil -} - -// GetCipherFunc returns the cipher function corresponding to the algorithm used -// with this SessionKey. -func (sk *SessionKey) GetCipherFunc() (packet.CipherFunction, error) { - cf, ok := symKeyAlgos[sk.Algo] - if !ok { - return cf, errors.New("gopenpgp: unsupported cipher function: " + sk.Algo) - } - return cf, nil -} - -// GetBase64Key returns the session key as base64 encoded string. -func (sk *SessionKey) GetBase64Key() string { - return base64.StdEncoding.EncodeToString(sk.Key) -} - -// RandomToken generates a random token with the specified key size. -func RandomToken(size int) ([]byte, error) { - config := &packet.Config{DefaultCipher: packet.CipherAES256} - symKey := make([]byte, size) - if _, err := io.ReadFull(config.Random(), symKey); err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in generating random token") - } - return symKey, nil -} - -// GenerateSessionKeyAlgo generates a random key of the correct length for the -// specified algorithm. -func GenerateSessionKeyAlgo(algo string) (sk *SessionKey, err error) { - cf, ok := symKeyAlgos[algo] - if !ok { - return nil, errors.New("gopenpgp: unknown symmetric key generation algorithm") - } - r, err := RandomToken(cf.KeySize()) - if err != nil { - return nil, err - } - - sk = &SessionKey{ - Key: r, - Algo: algo, - } - return sk, nil -} - -// GenerateSessionKey generates a random key for the default cipher. -func GenerateSessionKey() (*SessionKey, error) { - return GenerateSessionKeyAlgo(constants.AES256) -} - -func NewSessionKeyFromToken(token []byte, algo string) *SessionKey { - return &SessionKey{ - Key: clone(token), - Algo: algo, - } -} - -func newSessionKeyFromEncrypted(ek *packet.EncryptedKey) (*SessionKey, error) { - var algo string - for k, v := range symKeyAlgos { - if v == ek.CipherFunc { - algo = k - break - } - } - if algo == "" { - return nil, fmt.Errorf("gopenpgp: unsupported cipher function: %v", ek.CipherFunc) - } - - sk := &SessionKey{ - Key: ek.Key, - Algo: algo, - } - - if err := sk.checkSize(); err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to decrypt session key") - } - - return sk, nil -} - -// Encrypt encrypts a PlainMessage to PGPMessage with a SessionKey. -// * message : The plain data as a PlainMessage. -// * output : The encrypted data as PGPMessage. -func (sk *SessionKey) Encrypt(message *PlainMessage) ([]byte, error) { - dc, err := sk.GetCipherFunc() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt with session key") - } - - config := &packet.Config{ - Time: getTimeGenerator(), - DefaultCipher: dc, - } - - return encryptWithSessionKey(message, sk, nil, config) -} - -// EncryptAndSign encrypts a PlainMessage to PGPMessage with a SessionKey and signs it with a Private key. -// * message : The plain data as a PlainMessage. -// * signKeyRing: The KeyRing to sign the message -// * output : The encrypted data as PGPMessage. -func (sk *SessionKey) EncryptAndSign(message *PlainMessage, signKeyRing *KeyRing) ([]byte, error) { - dc, err := sk.GetCipherFunc() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt with session key") - } - - config := &packet.Config{ - Time: getTimeGenerator(), - DefaultCipher: dc, - } - - signEntity, err := signKeyRing.getSigningEntity() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to sign") - } - - return encryptWithSessionKey(message, sk, signEntity, config) -} - -// EncryptWithCompression encrypts with compression support a PlainMessage to PGPMessage with a SessionKey. -// * message : The plain data as a PlainMessage. -// * output : The encrypted data as PGPMessage. -func (sk *SessionKey) EncryptWithCompression(message *PlainMessage) ([]byte, error) { - dc, err := sk.GetCipherFunc() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt with session key") - } - - config := &packet.Config{ - Time: getTimeGenerator(), - DefaultCipher: dc, - DefaultCompressionAlgo: constants.DefaultCompression, - CompressionConfig: &packet.CompressionConfig{Level: constants.DefaultCompressionLevel}, - } - - return encryptWithSessionKey(message, sk, nil, config) -} - -func encryptWithSessionKey(message *PlainMessage, sk *SessionKey, signEntity *openpgp.Entity, config *packet.Config) ([]byte, error) { - var encBuf = new(bytes.Buffer) - - encryptWriter, signWriter, err := encryptStreamWithSessionKey( - message.IsBinary(), - message.Filename, - message.Time, - encBuf, - sk, - signEntity, - config, - ) - if err != nil { - return nil, err - } - if signEntity != nil { - _, err = signWriter.Write(message.GetBinary()) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in writing signed message") - } - err = signWriter.Close() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in closing signing writer") - } - } else { - _, err = encryptWriter.Write(message.GetBinary()) - } - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in writing message") - } - err = encryptWriter.Close() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in closing encryption writer") - } - return encBuf.Bytes(), nil -} - -func encryptStreamWithSessionKey( - isBinary bool, - filename string, - modTime uint32, - dataPacketWriter io.Writer, - sk *SessionKey, - signEntity *openpgp.Entity, - config *packet.Config, -) (encryptWriter, signWriter io.WriteCloser, err error) { - encryptWriter, err = packet.SerializeSymmetricallyEncrypted( - dataPacketWriter, - config.Cipher(), - config.AEAD() != nil, - packet.CipherSuite{Cipher: config.Cipher(), Mode: config.AEAD().Mode()}, - sk.Key, - config, - ) - - if err != nil { - return nil, nil, errors.Wrap(err, "gopenpgp: unable to encrypt") - } - - if algo := config.Compression(); algo != packet.CompressionNone { - encryptWriter, err = packet.SerializeCompressed(encryptWriter, algo, config.CompressionConfig) - if err != nil { - return nil, nil, errors.Wrap(err, "gopenpgp: error in compression") - } - } - - if signEntity != nil { - hints := &openpgp.FileHints{ - IsBinary: isBinary, - FileName: filename, - ModTime: time.Unix(int64(modTime), 0), - } - - signWriter, err = openpgp.Sign(encryptWriter, signEntity, hints, config) - if err != nil { - return nil, nil, errors.Wrap(err, "gopenpgp: unable to sign") - } - } else { - encryptWriter, err = packet.SerializeLiteral( - encryptWriter, - isBinary, - filename, - modTime, - ) - if err != nil { - return nil, nil, errors.Wrap(err, "gopenpgp: unable to serialize") - } - } - return encryptWriter, signWriter, nil -} - -// Decrypt decrypts pgp data packets using directly a session key. -// * encrypted: PGPMessage. -// * output: PlainMessage. -func (sk *SessionKey) Decrypt(dataPacket []byte) (*PlainMessage, error) { - return sk.DecryptAndVerify(dataPacket, nil, 0) -} - -// DecryptAndVerify decrypts pgp data packets using directly a session key and verifies embedded signatures. -// * encrypted: PGPMessage. -// * verifyKeyRing: KeyRing with verification public keys -// * verifyTime: when should the signature be valid, as timestamp. If 0 time verification is disabled. -// * output: PlainMessage. -func (sk *SessionKey) DecryptAndVerify(dataPacket []byte, verifyKeyRing *KeyRing, verifyTime int64) (*PlainMessage, error) { - var messageReader = bytes.NewReader(dataPacket) - - md, err := decryptStreamWithSessionKey(sk, messageReader, verifyKeyRing) - if err != nil { - return nil, err - } - messageBuf := new(bytes.Buffer) - _, err = messageBuf.ReadFrom(md.UnverifiedBody) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in reading message body") - } - - if verifyKeyRing != nil { - processSignatureExpiration(md, verifyTime) - err = verifyDetailsSignature(md, verifyKeyRing) - } - - return &PlainMessage{ - Data: messageBuf.Bytes(), - TextType: !md.LiteralData.IsBinary, - Filename: md.LiteralData.FileName, - Time: md.LiteralData.Time, - }, err -} - -func decryptStreamWithSessionKey(sk *SessionKey, messageReader io.Reader, verifyKeyRing *KeyRing) (*openpgp.MessageDetails, error) { - var decrypted io.ReadCloser - var keyring openpgp.EntityList - - // Read symmetrically encrypted data packet - packets := packet.NewReader(messageReader) - p, err := packets.Next() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to read symmetric packet") - } - - // Decrypt data packet - switch p := p.(type) { - case *packet.SymmetricallyEncrypted, *packet.AEADEncrypted: - dc, err := sk.GetCipherFunc() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to decrypt with session key") - } - encryptedDataPacket, isDataPacket := p.(packet.EncryptedDataPacket) - if !isDataPacket { - return nil, errors.Wrap(err, "gopenpgp: unknown data packet") - } - decrypted, err = encryptedDataPacket.Decrypt(dc, sk.Key) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to decrypt symmetric packet") - } - default: - return nil, errors.New("gopenpgp: invalid packet type") - } - - config := &packet.Config{ - Time: getTimeGenerator(), - } - - // Push decrypted packet as literal packet and use openpgp's reader - if verifyKeyRing != nil { - keyring = verifyKeyRing.entities - } else { - keyring = openpgp.EntityList{} - } - - md, err := openpgp.ReadMessage(decrypted, keyring, nil, config) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to decode symmetric packet") - } - - md.UnverifiedBody = checkReader{decrypted, md.UnverifiedBody} - return md, nil -} - -func (sk *SessionKey) checkSize() error { - cf, ok := symKeyAlgos[sk.Algo] - if !ok { - return errors.New("unknown symmetric key algorithm") - } - - if cf.KeySize() != len(sk.Key) { - return errors.New("wrong session key size") - } - - return nil -} - -func getAlgo(cipher packet.CipherFunction) string { - algo := constants.AES256 - for k, v := range symKeyAlgos { - if v == cipher { - algo = k - break - } - } - - return algo -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sessionkey_streaming.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sessionkey_streaming.go deleted file mode 100644 index 8ed3685e12..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/sessionkey_streaming.go +++ /dev/null @@ -1,141 +0,0 @@ -package crypto - -import ( - "github.com/ProtonMail/go-crypto/openpgp" - "github.com/ProtonMail/go-crypto/openpgp/packet" - "github.com/ProtonMail/gopenpgp/v2/constants" - "github.com/pkg/errors" -) - -type signAndEncryptWriteCloser struct { - signWriter WriteCloser - encryptWriter WriteCloser -} - -func (w *signAndEncryptWriteCloser) Write(b []byte) (int, error) { - return w.signWriter.Write(b) -} - -func (w *signAndEncryptWriteCloser) Close() error { - if err := w.signWriter.Close(); err != nil { - return err - } - return w.encryptWriter.Close() -} - -// EncryptStream is used to encrypt data as a Writer. -// It takes a writer for the encrypted data packet and returns a writer for the plaintext data. -// If signKeyRing is not nil, it is used to do an embedded signature. -func (sk *SessionKey) EncryptStream( - dataPacketWriter Writer, - plainMessageMetadata *PlainMessageMetadata, - signKeyRing *KeyRing, -) (plainMessageWriter WriteCloser, err error) { - config := &packet.Config{ - Time: getTimeGenerator(), - } - return sk.encryptStreamWithConfig( - config, - dataPacketWriter, - plainMessageMetadata, - signKeyRing, - ) -} - -// EncryptStreamWithCompression is used to encrypt data as a Writer. -// The plaintext data is compressed before being encrypted. -// It takes a writer for the encrypted data packet and returns a writer for the plaintext data. -// If signKeyRing is not nil, it is used to do an embedded signature. -func (sk *SessionKey) EncryptStreamWithCompression( - dataPacketWriter Writer, - plainMessageMetadata *PlainMessageMetadata, - signKeyRing *KeyRing, -) (plainMessageWriter WriteCloser, err error) { - config := &packet.Config{ - Time: getTimeGenerator(), - DefaultCompressionAlgo: constants.DefaultCompression, - CompressionConfig: &packet.CompressionConfig{Level: constants.DefaultCompressionLevel}, - } - return sk.encryptStreamWithConfig( - config, - dataPacketWriter, - plainMessageMetadata, - signKeyRing, - ) -} - -func (sk *SessionKey) encryptStreamWithConfig( - config *packet.Config, - dataPacketWriter Writer, - plainMessageMetadata *PlainMessageMetadata, - signKeyRing *KeyRing, -) (plainMessageWriter WriteCloser, err error) { - dc, err := sk.GetCipherFunc() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt with session key") - } - config.DefaultCipher = dc - var signEntity *openpgp.Entity - if signKeyRing != nil { - signEntity, err = signKeyRing.getSigningEntity() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to sign") - } - } - - if plainMessageMetadata == nil { - // Use sensible default metadata - plainMessageMetadata = &PlainMessageMetadata{ - IsBinary: true, - Filename: "", - ModTime: GetUnixTime(), - } - } - - encryptWriter, signWriter, err := encryptStreamWithSessionKey( - plainMessageMetadata.IsBinary, - plainMessageMetadata.Filename, - uint32(plainMessageMetadata.ModTime), - dataPacketWriter, - sk, - signEntity, - config, - ) - - if err != nil { - return nil, err - } - if signWriter != nil { - plainMessageWriter = &signAndEncryptWriteCloser{signWriter, encryptWriter} - } else { - plainMessageWriter = encryptWriter - } - return plainMessageWriter, err -} - -// DecryptStream is used to decrypt a data packet as a Reader. -// It takes a reader for the data packet -// and returns a PlainMessageReader for the plaintext data. -// If verifyKeyRing is not nil, PlainMessageReader.VerifySignature() will -// verify the embedded signature with the given key ring and verification time. -func (sk *SessionKey) DecryptStream( - dataPacketReader Reader, - verifyKeyRing *KeyRing, - verifyTime int64, -) (plainMessage *PlainMessageReader, err error) { - messageDetails, err := decryptStreamWithSessionKey( - sk, - dataPacketReader, - verifyKeyRing, - ) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: error in reading message") - } - - return &PlainMessageReader{ - messageDetails, - verifyKeyRing, - verifyTime, - false, - }, err -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/signature.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/signature.go deleted file mode 100644 index 67c1d7c2a5..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/signature.go +++ /dev/null @@ -1,161 +0,0 @@ -package crypto - -import ( - "bytes" - "crypto" - "errors" - "fmt" - "io" - "math" - "time" - - "github.com/ProtonMail/go-crypto/openpgp" - pgpErrors "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/go-crypto/openpgp/packet" - - "github.com/ProtonMail/gopenpgp/v2/constants" - "github.com/ProtonMail/gopenpgp/v2/internal" -) - -var allowedHashes = []crypto.Hash{ - crypto.SHA224, - crypto.SHA256, - crypto.SHA384, - crypto.SHA512, -} - -// SignatureVerificationError is returned from Decrypt and VerifyDetached -// functions when signature verification fails. -type SignatureVerificationError struct { - Status int - Message string -} - -// Error is the base method for all errors. -func (e SignatureVerificationError) Error() string { - return fmt.Sprintf("Signature Verification Error: %v", e.Message) -} - -// ------------------ -// Internal functions -// ------------------ - -// newSignatureFailed creates a new SignatureVerificationError, type -// SignatureFailed. -func newSignatureFailed() SignatureVerificationError { - return SignatureVerificationError{ - Status: constants.SIGNATURE_FAILED, - Message: "Invalid signature", - } -} - -// newSignatureInsecure creates a new SignatureVerificationError, type -// SignatureFailed, with a message describing the signature as insecure. -func newSignatureInsecure() SignatureVerificationError { - return SignatureVerificationError{ - Status: constants.SIGNATURE_FAILED, - Message: "Insecure signature", - } -} - -// newSignatureNotSigned creates a new SignatureVerificationError, type -// SignatureNotSigned. -func newSignatureNotSigned() SignatureVerificationError { - return SignatureVerificationError{ - Status: constants.SIGNATURE_NOT_SIGNED, - Message: "Missing signature", - } -} - -// newSignatureNoVerifier creates a new SignatureVerificationError, type -// SignatureNoVerifier. -func newSignatureNoVerifier() SignatureVerificationError { - return SignatureVerificationError{ - Status: constants.SIGNATURE_NO_VERIFIER, - Message: "No matching signature", - } -} - -// processSignatureExpiration handles signature time verification manually, so -// we can add a margin to the creationTime check. -func processSignatureExpiration(md *openpgp.MessageDetails, verifyTime int64) { - if !errors.Is(md.SignatureError, pgpErrors.ErrSignatureExpired) { - return - } - if verifyTime == 0 { - // verifyTime = 0: time check disabled, everything is okay - md.SignatureError = nil - return - } - created := md.Signature.CreationTime.Unix() - expires := int64(math.MaxInt64) - if md.Signature.SigLifetimeSecs != nil { - expires = int64(*md.Signature.SigLifetimeSecs) + created - } - if created-internal.CreationTimeOffset <= verifyTime && verifyTime <= expires { - md.SignatureError = nil - } -} - -// verifyDetailsSignature verifies signature from message details. -func verifyDetailsSignature(md *openpgp.MessageDetails, verifierKey *KeyRing) error { - if !md.IsSigned { - return newSignatureNotSigned() - } - if md.SignedBy == nil || - len(verifierKey.entities) == 0 || - len(verifierKey.entities.KeysById(md.SignedByKeyId)) == 0 { - return newSignatureNoVerifier() - } - if md.SignatureError != nil { - return newSignatureFailed() - } - if md.Signature == nil || - md.Signature.Hash < allowedHashes[0] || - md.Signature.Hash > allowedHashes[len(allowedHashes)-1] { - return newSignatureInsecure() - } - return nil -} - -// verifySignature verifies if a signature is valid with the entity list. -func verifySignature(pubKeyEntries openpgp.EntityList, origText io.Reader, signature []byte, verifyTime int64) error { - config := &packet.Config{} - if verifyTime == 0 { - config.Time = func() time.Time { - return time.Unix(0, 0) - } - } else { - config.Time = func() time.Time { - return time.Unix(verifyTime+internal.CreationTimeOffset, 0) - } - } - signatureReader := bytes.NewReader(signature) - - signer, err := openpgp.CheckDetachedSignatureAndHash(pubKeyEntries, origText, signatureReader, allowedHashes, config) - - if errors.Is(err, pgpErrors.ErrSignatureExpired) && signer != nil && verifyTime > 0 { - // if verifyTime = 0: time check disabled, everything is okay - // Maybe the creation time offset pushed it over the edge - // Retry with the actual verification time - config.Time = func() time.Time { - return time.Unix(verifyTime, 0) - } - - _, err = signatureReader.Seek(0, io.SeekStart) - if err != nil { - return newSignatureFailed() - } - - signer, err = openpgp.CheckDetachedSignatureAndHash(pubKeyEntries, origText, signatureReader, allowedHashes, config) - if err != nil { - return newSignatureFailed() - } - } - - if signer == nil { - return newSignatureFailed() - } - - return nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/signature_collector.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/signature_collector.go deleted file mode 100644 index 05f2ecb2c4..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/signature_collector.go +++ /dev/null @@ -1,125 +0,0 @@ -package crypto - -import ( - "bytes" - "io" - "io/ioutil" - "mime" - "net/textproto" - - pgpErrors "github.com/ProtonMail/go-crypto/openpgp/errors" - "github.com/ProtonMail/gopenpgp/v2/internal" - - "github.com/ProtonMail/go-crypto/openpgp" - "github.com/ProtonMail/go-crypto/openpgp/packet" - gomime "github.com/ProtonMail/go-mime" - "github.com/pkg/errors" -) - -// SignatureCollector structure. -type SignatureCollector struct { - config *packet.Config - keyring openpgp.KeyRing - target gomime.VisitAcceptor - signature string - verified error -} - -func newSignatureCollector( - targetAcceptor gomime.VisitAcceptor, keyring openpgp.KeyRing, config *packet.Config, -) *SignatureCollector { - return &SignatureCollector{ - target: targetAcceptor, - config: config, - keyring: keyring, - } -} - -// Accept collects the signature. -func (sc *SignatureCollector) Accept( - part io.Reader, header textproto.MIMEHeader, - hasPlainSibling, isFirst, isLast bool, -) (err error) { - parentMediaType, params, _ := mime.ParseMediaType(header.Get("Content-Type")) - - if parentMediaType != "multipart/signed" { - sc.verified = newSignatureNotSigned() - return sc.target.Accept(part, header, hasPlainSibling, isFirst, isLast) - } - - newPart, rawBody := gomime.GetRawMimePart(part, "--"+params["boundary"]) - multiparts, multipartHeaders, err := gomime.GetMultipartParts(newPart, params) - if err != nil { - return - } - - hasPlainChild := false - for _, header := range multipartHeaders { - mediaType, _, _ := mime.ParseMediaType(header.Get("Content-Type")) - hasPlainChild = (mediaType == "text/plain") - } - if len(multiparts) != 2 { - sc.verified = newSignatureNotSigned() - // Invalid multipart/signed format just pass along - if _, err = ioutil.ReadAll(rawBody); err != nil { - return errors.Wrap(err, "gopenpgp: error in reading raw message body") - } - - for i, p := range multiparts { - if err = sc.target.Accept(p, multipartHeaders[i], hasPlainChild, true, true); err != nil { - return - } - } - return - } - - // actual multipart/signed format - err = sc.target.Accept(multiparts[0], multipartHeaders[0], hasPlainChild, true, true) - if err != nil { - return errors.Wrap(err, "gopenpgp: error in parsing body") - } - - partData, err := ioutil.ReadAll(multiparts[1]) - if err != nil { - return errors.Wrap(err, "gopenpgp: error in ready part data") - } - - decodedPart := gomime.DecodeContentEncoding( - bytes.NewReader(partData), - multipartHeaders[1].Get("Content-Transfer-Encoding")) - - buffer, err := ioutil.ReadAll(decodedPart) - if err != nil { - return errors.Wrap(err, "gopenpgp: error in reading decoded data") - } - mediaType, _, _ := mime.ParseMediaType(header.Get("Content-Type")) - buffer, err = gomime.DecodeCharset(buffer, mediaType, params) - if err != nil { - return errors.Wrap(err, "gopenpgp: error in decoding charset") - } - sc.signature = string(buffer) - str, _ := ioutil.ReadAll(rawBody) - canonicalizedBody := internal.Canonicalize(internal.TrimEachLine(string(str))) - rawBody = bytes.NewReader([]byte(canonicalizedBody)) - if sc.keyring != nil { - _, err = openpgp.CheckArmoredDetachedSignature(sc.keyring, rawBody, bytes.NewReader(buffer), sc.config) - - switch { - case err == nil: - sc.verified = nil - case errors.Is(err, pgpErrors.ErrUnknownIssuer): - sc.verified = newSignatureNoVerifier() - default: - sc.verified = newSignatureFailed() - } - } else { - sc.verified = newSignatureNoVerifier() - } - - return nil -} - -// GetSignature collected by Accept. -func (sc SignatureCollector) GetSignature() string { - return sc.signature -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/time.go b/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/time.go deleted file mode 100644 index b208d87451..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/crypto/time.go +++ /dev/null @@ -1,69 +0,0 @@ -package crypto - -import ( - "time" -) - -// UpdateTime updates cached time. -func UpdateTime(newTime int64) { - pgp.lock.Lock() - defer pgp.lock.Unlock() - - if newTime > pgp.latestServerTime { - pgp.latestServerTime = newTime - } -} - -// SetKeyGenerationOffset updates the offset when generating keys. -func SetKeyGenerationOffset(offset int64) { - pgp.lock.Lock() - defer pgp.lock.Unlock() - - pgp.generationOffset = offset -} - -// GetUnixTime gets latest cached time. -func GetUnixTime() int64 { - return getNow().Unix() -} - -// GetTime gets latest cached time. -func GetTime() time.Time { - return getNow() -} - -// ----- INTERNAL FUNCTIONS ----- - -// getNow returns the latest server time. -func getNow() time.Time { - pgp.lock.RLock() - defer pgp.lock.RUnlock() - - if pgp.latestServerTime == 0 { - return time.Now() - } - - return time.Unix(pgp.latestServerTime, 0) -} - -// getTimeGenerator Returns a time generator function. -func getTimeGenerator() func() time.Time { - return getNow -} - -// getNowKeyGenerationOffset returns the current time with the key generation offset. -func getNowKeyGenerationOffset() time.Time { - pgp.lock.RLock() - defer pgp.lock.RUnlock() - - if pgp.latestServerTime == 0 { - return time.Unix(time.Now().Unix()+pgp.generationOffset, 0) - } - - return time.Unix(pgp.latestServerTime+pgp.generationOffset, 0) -} - -// getKeyGenerationTimeGenerator Returns a time generator function with the key generation offset. -func getKeyGenerationTimeGenerator() func() time.Time { - return getNowKeyGenerationOffset -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/cleartext.go b/vendor/github.com/ProtonMail/gopenpgp/v2/helper/cleartext.go deleted file mode 100644 index d5517b1607..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/cleartext.go +++ /dev/null @@ -1,79 +0,0 @@ -package helper - -import ( - "github.com/ProtonMail/gopenpgp/v2/crypto" - "github.com/ProtonMail/gopenpgp/v2/internal" - "github.com/pkg/errors" -) - -// SignCleartextMessageArmored signs text given a private key and its -// passphrase, canonicalizes and trims the newlines, and returns the -// PGP-compliant special armoring. -func SignCleartextMessageArmored(privateKey string, passphrase []byte, text string) (string, error) { - signingKey, err := crypto.NewKeyFromArmored(privateKey) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: error in creating key object") - } - - unlockedKey, err := signingKey.Unlock(passphrase) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: error in unlocking key") - } - defer unlockedKey.ClearPrivateParams() - - keyRing, err := crypto.NewKeyRing(unlockedKey) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: error in creating keyring") - } - - return SignCleartextMessage(keyRing, text) -} - -// VerifyCleartextMessageArmored verifies PGP-compliant armored signed plain -// text given the public key and returns the text or err if the verification -// fails. -func VerifyCleartextMessageArmored(publicKey, armored string, verifyTime int64) (string, error) { - signingKey, err := crypto.NewKeyFromArmored(publicKey) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: error in creating key object") - } - - verifyKeyRing, err := crypto.NewKeyRing(signingKey) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: error in creating key ring") - } - - return VerifyCleartextMessage(verifyKeyRing, armored, verifyTime) -} - -// SignCleartextMessage signs text given a private keyring, canonicalizes and -// trims the newlines, and returns the PGP-compliant special armoring. -func SignCleartextMessage(keyRing *crypto.KeyRing, text string) (string, error) { - message := crypto.NewPlainMessageFromString(internal.TrimEachLine(text)) - - signature, err := keyRing.SignDetached(message) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: error in signing cleartext message") - } - - return crypto.NewClearTextMessage(message.GetBinary(), signature.GetBinary()).GetArmored() -} - -// VerifyCleartextMessage verifies PGP-compliant armored signed plain text -// given the public keyring and returns the text or err if the verification -// fails. -func VerifyCleartextMessage(keyRing *crypto.KeyRing, armored string, verifyTime int64) (string, error) { - clearTextMessage, err := crypto.NewClearTextMessageFromArmored(armored) - if err != nil { - return "", errors.Wrap(err, "gopengpp: unable to unarmor cleartext message") - } - - message := crypto.NewPlainMessageFromString(internal.TrimEachLine(clearTextMessage.GetString())) - signature := crypto.NewPGPSignature(clearTextMessage.GetBinarySignature()) - err = keyRing.VerifyDetached(message, signature, verifyTime) - if err != nil { - return "", errors.Wrap(err, "gopengpp: unable to verify cleartext message") - } - - return message.GetString(), nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/helper.go b/vendor/github.com/ProtonMail/gopenpgp/v2/helper/helper.go deleted file mode 100644 index 76c1f123fd..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/helper.go +++ /dev/null @@ -1,600 +0,0 @@ -// Package helper contains several functions with a simple interface to extend usability and compatibility with gomobile -package helper - -import ( - "github.com/ProtonMail/gopenpgp/v2/crypto" - "github.com/pkg/errors" -) - -// EncryptMessageWithPassword encrypts a string with a passphrase using AES256. -func EncryptMessageWithPassword(password []byte, plaintext string) (ciphertext string, err error) { - var pgpMessage *crypto.PGPMessage - - var message = crypto.NewPlainMessageFromString(plaintext) - - if pgpMessage, err = crypto.EncryptMessageWithPassword(message, password); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to encrypt message with password") - } - - if ciphertext, err = pgpMessage.GetArmored(); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to armor ciphertext") - } - - return ciphertext, nil -} - -// DecryptMessageWithPassword decrypts an armored message with a random token. -// The algorithm is derived from the armoring. -func DecryptMessageWithPassword(password []byte, ciphertext string) (plaintext string, err error) { - var message *crypto.PlainMessage - var pgpMessage *crypto.PGPMessage - - if pgpMessage, err = crypto.NewPGPMessageFromArmored(ciphertext); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to unarmor ciphertext") - } - - if message, err = crypto.DecryptMessageWithPassword(pgpMessage, password); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to decrypt message with password") - } - - return message.GetString(), nil -} - -// EncryptMessageArmored generates an armored PGP message given a plaintext and -// an armored public key. -func EncryptMessageArmored(key, plaintext string) (string, error) { - return encryptMessageArmored(key, crypto.NewPlainMessageFromString(plaintext)) -} - -// EncryptSignMessageArmored generates an armored signed PGP message given a -// plaintext and an armored public key a private key and its passphrase. -func EncryptSignMessageArmored( - publicKey, privateKey string, passphrase []byte, plaintext string, -) (ciphertext string, err error) { - var privateKeyObj, unlockedKeyObj *crypto.Key - var publicKeyRing, privateKeyRing *crypto.KeyRing - var pgpMessage *crypto.PGPMessage - - var message = crypto.NewPlainMessageFromString(plaintext) - - if publicKeyRing, err = createPublicKeyRing(publicKey); err != nil { - return "", err - } - - if privateKeyObj, err = crypto.NewKeyFromArmored(privateKey); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to read key") - } - - if unlockedKeyObj, err = privateKeyObj.Unlock(passphrase); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to unlock key") - } - defer unlockedKeyObj.ClearPrivateParams() - - if privateKeyRing, err = crypto.NewKeyRing(unlockedKeyObj); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to create new keyring") - } - - if pgpMessage, err = publicKeyRing.Encrypt(message, privateKeyRing); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to encrypt message") - } - - if ciphertext, err = pgpMessage.GetArmored(); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to armor ciphertext") - } - - return ciphertext, nil -} - -// DecryptMessageArmored decrypts an armored PGP message given a private key -// and its passphrase. -func DecryptMessageArmored( - privateKey string, passphrase []byte, ciphertext string, -) (string, error) { - message, err := decryptMessageArmored(privateKey, passphrase, ciphertext) - if err != nil { - return "", err - } - - return message.GetString(), nil -} - -// DecryptVerifyMessageArmored decrypts an armored PGP message given a private -// key and its passphrase and verifies the embedded signature. Returns the -// plain data or an error on signature verification failure. -func DecryptVerifyMessageArmored( - publicKey, privateKey string, passphrase []byte, ciphertext string, -) (plaintext string, err error) { - var privateKeyObj, unlockedKeyObj *crypto.Key - var publicKeyRing, privateKeyRing *crypto.KeyRing - var pgpMessage *crypto.PGPMessage - var message *crypto.PlainMessage - - if publicKeyRing, err = createPublicKeyRing(publicKey); err != nil { - return "", err - } - - if privateKeyObj, err = crypto.NewKeyFromArmored(privateKey); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to unarmor private key") - } - - if unlockedKeyObj, err = privateKeyObj.Unlock(passphrase); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to unlock private key") - } - defer unlockedKeyObj.ClearPrivateParams() - - if privateKeyRing, err = crypto.NewKeyRing(unlockedKeyObj); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to create new keyring") - } - - if pgpMessage, err = crypto.NewPGPMessageFromArmored(ciphertext); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to unarmor ciphertext") - } - - if message, err = privateKeyRing.Decrypt(pgpMessage, publicKeyRing, crypto.GetUnixTime()); err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to decrypt message") - } - - return message.GetString(), nil -} - -// DecryptVerifyAttachment decrypts and verifies an attachment split into the -// keyPacket, dataPacket and an armored (!) signature, given a publicKey, and a -// privateKey with its passphrase. Returns the plain data or an error on -// signature verification failure. -func DecryptVerifyAttachment( - publicKey, privateKey string, - passphrase, keyPacket, dataPacket []byte, - armoredSignature string, -) (plainData []byte, err error) { - // We decrypt the attachment - message, err := decryptAttachment(privateKey, passphrase, keyPacket, dataPacket) - if err != nil { - return nil, err - } - - // We verify the signature - var check bool - if check, err = verifyDetachedArmored(publicKey, message, armoredSignature); err != nil { - return nil, err - } - if !check { - return nil, errors.New("gopenpgp: unable to verify attachment") - } - - return message.GetBinary(), nil -} - -// EncryptBinaryMessageArmored generates an armored PGP message given a binary data and -// an armored public key. -func EncryptBinaryMessageArmored(key string, data []byte) (string, error) { - return encryptMessageArmored(key, crypto.NewPlainMessage(data)) -} - -// DecryptBinaryMessageArmored decrypts an armored PGP message given a private key -// and its passphrase. -func DecryptBinaryMessageArmored(privateKey string, passphrase []byte, ciphertext string) ([]byte, error) { - message, err := decryptMessageArmored(privateKey, passphrase, ciphertext) - if err != nil { - return nil, err - } - - return message.GetBinary(), nil -} - -// encryptSignArmoredDetached takes a public key for encryption, -// a private key and its passphrase for signature, and the plaintext data -// Returns an armored ciphertext and a detached armored encrypted signature. -func encryptSignArmoredDetached( - publicKey, privateKey string, - passphrase, plainData []byte, -) (ciphertextArmored, encryptedSignatureArmored string, err error) { - var message = crypto.NewPlainMessage(plainData) - - // We encrypt and signcrypt - ciphertext, encryptedSignatureArmored, err := encryptSignObjDetached(publicKey, privateKey, passphrase, message) - if err != nil { - return "", "", err - } - - // We armor the ciphertext and signature - ciphertextArmored, err = ciphertext.GetArmored() - if err != nil { - return "", "", errors.Wrap(err, "gopenpgp: unable to armor the ciphertext") - } - - return ciphertextArmored, encryptedSignatureArmored, nil -} - -// DecryptVerifyArmoredDetached decrypts an armored pgp message -// and verify a detached armored encrypted signature -// given a publicKey, and a privateKey with its passphrase. -// Returns the plain data or an error on -// signature verification failure. -func DecryptVerifyArmoredDetached( - publicKey, privateKey string, - passphrase []byte, - ciphertextArmored string, - encryptedSignatureArmored string, -) (plainData []byte, err error) { - // Some type casting - ciphertext, err := crypto.NewPGPMessageFromArmored(ciphertextArmored) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to unarmor ciphertext") - } - - // We decrypt and verify the encrypted signature - message, err := decryptVerifyObjDetached(publicKey, privateKey, passphrase, ciphertext, encryptedSignatureArmored) - if err != nil { - return nil, err - } - return message.GetBinary(), nil -} - -// encryptSignBinaryDetached takes a public key for encryption, -// a private key and its passphrase for signature, and the plaintext data -// Returns encrypted binary data and a detached armored encrypted signature. -func encryptSignBinaryDetached( - publicKey, privateKey string, - passphrase, plainData []byte, -) (encryptedData []byte, encryptedSignatureArmored string, err error) { - // Some type casting - message := crypto.NewPlainMessage(plainData) - - // We encrypt and signcrypt - ciphertext, encryptedSignatureArmored, err := encryptSignObjDetached(publicKey, privateKey, passphrase, message) - if err != nil { - return nil, "", err - } - - // We get the encrypted data - encryptedData = ciphertext.GetBinary() - return encryptedData, encryptedSignatureArmored, nil -} - -// DecryptVerifyBinaryDetached decrypts binary encrypted data -// and verify a detached armored encrypted signature -// given a publicKey, and a privateKey with its passphrase. -// Returns the plain data or an error on -// signature verification failure. -func DecryptVerifyBinaryDetached( - publicKey, privateKey string, - passphrase []byte, - encryptedData []byte, - encryptedSignatureArmored string, -) (plainData []byte, err error) { - // Some type casting - ciphertext := crypto.NewPGPMessage(encryptedData) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to parse ciphertext") - } - - // We decrypt and verify the encrypted signature - message, err := decryptVerifyObjDetached(publicKey, privateKey, passphrase, ciphertext, encryptedSignatureArmored) - if err != nil { - return nil, err - } - return message.GetBinary(), nil -} - -// EncryptAttachmentWithKey encrypts a binary file -// Using a given armored public key. -func EncryptAttachmentWithKey( - publicKey string, - filename string, - plainData []byte, -) (message *crypto.PGPSplitMessage, err error) { - publicKeyRing, err := createPublicKeyRing(publicKey) - if err != nil { - return nil, err - } - return EncryptAttachment(plainData, filename, publicKeyRing) -} - -// DecryptAttachmentWithKey decrypts a binary file -// Using a given armored private key and its passphrase. -func DecryptAttachmentWithKey( - privateKey string, - passphrase, keyPacket, dataPacket []byte, -) (attachment []byte, err error) { - message, err := decryptAttachment(privateKey, passphrase, keyPacket, dataPacket) - if err != nil { - return nil, err - } - return message.GetBinary(), nil -} - -// EncryptSessionKey encrypts a session key -// using a given armored public key. -func EncryptSessionKey( - publicKey string, - sessionKey *crypto.SessionKey, -) (encryptedSessionKey []byte, err error) { - publicKeyRing, err := createPublicKeyRing(publicKey) - if err != nil { - return nil, err - } - encryptedSessionKey, err = publicKeyRing.EncryptSessionKey(sessionKey) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt sessionKey") - } - return encryptedSessionKey, nil -} - -// DecryptSessionKey decrypts a session key -// using a given armored private key -// and its passphrase. -func DecryptSessionKey( - privateKey string, - passphrase, encryptedSessionKey []byte, -) (sessionKey *crypto.SessionKey, err error) { - privateKeyObj, err := crypto.NewKeyFromArmored(privateKey) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to read armored key") - } - - privateKeyUnlocked, err := privateKeyObj.Unlock(passphrase) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to unlock private key") - } - - defer privateKeyUnlocked.ClearPrivateParams() - - privateKeyRing, err := crypto.NewKeyRing(privateKeyUnlocked) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to create new keyring") - } - - sessionKey, err = privateKeyRing.DecryptSessionKey(encryptedSessionKey) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to decrypt session key") - } - - return sessionKey, nil -} - -func encryptMessageArmored(key string, message *crypto.PlainMessage) (string, error) { - ciphertext, err := encryptMessage(key, message) - if err != nil { - return "", err - } - - ciphertextArmored, err := ciphertext.GetArmored() - if err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to armor ciphertext") - } - - return ciphertextArmored, nil -} - -func decryptMessageArmored(privateKey string, passphrase []byte, ciphertextArmored string) (*crypto.PlainMessage, error) { - ciphertext, err := crypto.NewPGPMessageFromArmored(ciphertextArmored) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to parse ciphertext") - } - - return decryptMessage(privateKey, passphrase, ciphertext) -} - -func encryptMessage(key string, message *crypto.PlainMessage) (*crypto.PGPMessage, error) { - publicKeyRing, err := createPublicKeyRing(key) - if err != nil { - return nil, err - } - - ciphertext, err := publicKeyRing.Encrypt(message, nil) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt message") - } - - return ciphertext, nil -} - -func decryptMessage(privateKey string, passphrase []byte, ciphertext *crypto.PGPMessage) (*crypto.PlainMessage, error) { - privateKeyObj, err := crypto.NewKeyFromArmored(privateKey) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to parse the private key") - } - - privateKeyUnlocked, err := privateKeyObj.Unlock(passphrase) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to unlock key") - } - - defer privateKeyUnlocked.ClearPrivateParams() - - privateKeyRing, err := crypto.NewKeyRing(privateKeyUnlocked) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to create the private key ring") - } - - message, err := privateKeyRing.Decrypt(ciphertext, nil, 0) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to decrypt message") - } - - return message, nil -} - -func signDetached(privateKey string, passphrase []byte, message *crypto.PlainMessage) (detachedSignature *crypto.PGPSignature, err error) { - privateKeyObj, err := crypto.NewKeyFromArmored(privateKey) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to parse private key") - } - - privateKeyUnlocked, err := privateKeyObj.Unlock(passphrase) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to unlock key") - } - - defer privateKeyUnlocked.ClearPrivateParams() - - privateKeyRing, err := crypto.NewKeyRing(privateKeyUnlocked) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to create new keyring") - } - - detachedSignature, err = privateKeyRing.SignDetached(message) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to sign message") - } - - return detachedSignature, nil -} - -func verifyDetachedArmored(publicKey string, message *crypto.PlainMessage, armoredSignature string) (check bool, err error) { - var detachedSignature *crypto.PGPSignature - - // We unarmor the signature - if detachedSignature, err = crypto.NewPGPSignatureFromArmored(armoredSignature); err != nil { - return false, errors.Wrap(err, "gopenpgp: unable to unarmor signature") - } - // we verify the signature - return verifyDetached(publicKey, message, detachedSignature) -} - -func verifyDetached(publicKey string, message *crypto.PlainMessage, detachedSignature *crypto.PGPSignature) (check bool, err error) { - var publicKeyRing *crypto.KeyRing - - // We prepare the public key for signature verification - publicKeyRing, err = createPublicKeyRing(publicKey) - if err != nil { - return false, err - } - - // We verify the signature - if publicKeyRing.VerifyDetached(message, detachedSignature, crypto.GetUnixTime()) != nil { - return false, nil - } - return true, nil -} - -func decryptAttachment( - privateKey string, - passphrase, keyPacket, dataPacket []byte, -) (message *crypto.PlainMessage, err error) { - var privateKeyObj, unlockedKeyObj *crypto.Key - var privateKeyRing *crypto.KeyRing - - packets := crypto.NewPGPSplitMessage(keyPacket, dataPacket) - - // prepare the private key for decryption - if privateKeyObj, err = crypto.NewKeyFromArmored(privateKey); err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to parse private key") - } - if unlockedKeyObj, err = privateKeyObj.Unlock(passphrase); err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to unlock private key") - } - defer unlockedKeyObj.ClearPrivateParams() - - if privateKeyRing, err = crypto.NewKeyRing(unlockedKeyObj); err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to create new keyring") - } - - if message, err = privateKeyRing.DecryptAttachment(packets); err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to decrypt attachment") - } - - return message, nil -} - -func createPublicKeyRing(publicKey string) (*crypto.KeyRing, error) { - publicKeyObj, err := crypto.NewKeyFromArmored(publicKey) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to parse public key") - } - - if publicKeyObj.IsPrivate() { - publicKeyObj, err = publicKeyObj.ToPublic() - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to extract public key from private key") - } - } - - publicKeyRing, err := crypto.NewKeyRing(publicKeyObj) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to create new keyring") - } - - return publicKeyRing, nil -} - -func encryptSignObjDetached( - publicKey, privateKey string, - passphrase []byte, - message *crypto.PlainMessage, -) (ciphertext *crypto.PGPSplitMessage, encryptedSignatureArmored string, err error) { - // We generate the session key - sessionKey, err := crypto.GenerateSessionKey() - if err != nil { - return nil, "", errors.Wrap(err, "gopenpgp: unable to create new session key") - } - - // We encrypt the message with the session key - messageDataPacket, err := sessionKey.Encrypt(message) - if err != nil { - return nil, "", errors.Wrap(err, "gopenpgp: unable to encrypt message") - } - - // We sign the message - detachedSignature, err := signDetached(privateKey, passphrase, message) - if err != nil { - return nil, "", errors.Wrap(err, "gopenpgp: unable to sign message") - } - - // We encrypt the signature with the session key - signaturePlaintext := crypto.NewPlainMessage(detachedSignature.GetBinary()) - signatureDataPacket, err := sessionKey.Encrypt(signaturePlaintext) - if err != nil { - return nil, "", errors.Wrap(err, "gopenpgp: unable to encrypt detached signature") - } - - // We encrypt the session key - keyPacket, err := EncryptSessionKey(publicKey, sessionKey) - if err != nil { - return nil, "", errors.Wrap(err, "gopenpgp: unable to encrypt the session key") - } - - // We join the key packets and datapackets - ciphertext = crypto.NewPGPSplitMessage(keyPacket, messageDataPacket) - encryptedSignature := crypto.NewPGPSplitMessage(keyPacket, signatureDataPacket) - encryptedSignatureArmored, err = encryptedSignature.GetArmored() - if err != nil { - return nil, "", errors.Wrap(err, "gopenpgp: unable to armor encrypted signature") - } - return ciphertext, encryptedSignatureArmored, nil -} - -func decryptVerifyObjDetached( - publicKey, privateKey string, - passphrase []byte, - ciphertext *crypto.PGPMessage, - encryptedSignatureArmored string, -) (message *crypto.PlainMessage, err error) { - // We decrypt the message - if message, err = decryptMessage(privateKey, passphrase, ciphertext); err != nil { - return nil, err - } - - encryptedSignature, err := crypto.NewPGPMessageFromArmored(encryptedSignatureArmored) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to parse encrypted signature") - } - - // We decrypt the signature - signatureMessage, err := decryptMessage(privateKey, passphrase, encryptedSignature) - if err != nil { - return nil, err - } - detachedSignature := crypto.NewPGPSignature(signatureMessage.GetBinary()) - - // We verify the signature - var check bool - if check, err = verifyDetached(publicKey, message, detachedSignature); err != nil { - return nil, err - } - if !check { - return nil, errors.New("gopenpgp: unable to verify message") - } - - return message, nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/key.go b/vendor/github.com/ProtonMail/gopenpgp/v2/helper/key.go deleted file mode 100644 index 6352545bff..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/key.go +++ /dev/null @@ -1,63 +0,0 @@ -package helper - -import ( - "github.com/ProtonMail/gopenpgp/v2/crypto" - "github.com/pkg/errors" -) - -// UpdatePrivateKeyPassphrase decrypts the given armored privateKey with oldPassphrase, -// re-encrypts it with newPassphrase, and returns the new armored key. -func UpdatePrivateKeyPassphrase( - privateKey string, - oldPassphrase, newPassphrase []byte, -) (string, error) { - key, err := crypto.NewKeyFromArmored(privateKey) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to parse key") - } - - unlocked, err := key.Unlock(oldPassphrase) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to unlock old key") - } - defer unlocked.ClearPrivateParams() - - locked, err := unlocked.Lock(newPassphrase) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to lock new key") - } - - armored, err := locked.Armor() - if err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to armor new key") - } - - return armored, nil -} - -// GenerateKey generates a key of the given keyType ("rsa" or "x25519"), encrypts it, and returns an armored string. -// If keyType is "rsa", bits is the RSA bitsize of the key. -// If keyType is "x25519" bits is unused. -func GenerateKey(name, email string, passphrase []byte, keyType string, bits int) (string, error) { - key, err := crypto.GenerateKey(name, email, keyType, bits) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to generate new key") - } - defer key.ClearPrivateParams() - - locked, err := key.Lock(passphrase) - if err != nil { - return "", errors.Wrap(err, "gopenpgp: unable to lock new key") - } - - return locked.Armor() -} - -func GetSHA256Fingerprints(publicKey string) ([]string, error) { - key, err := crypto.NewKeyFromArmored(publicKey) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to parse key") - } - - return key.GetSHA256Fingerprints(), nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/mobile.go b/vendor/github.com/ProtonMail/gopenpgp/v2/helper/mobile.go deleted file mode 100644 index d4cd9ada3f..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/mobile.go +++ /dev/null @@ -1,149 +0,0 @@ -package helper - -import ( - "encoding/json" - goerrors "errors" - "runtime/debug" - - "github.com/ProtonMail/gopenpgp/v2/crypto" - "github.com/pkg/errors" -) - -type ExplicitVerifyMessage struct { - Message *crypto.PlainMessage - SignatureVerificationError *crypto.SignatureVerificationError -} - -// DecryptExplicitVerify decrypts a PGP message given a private keyring -// and a public keyring to verify the embedded signature. Returns the plain -// data and an error on signature verification failure. -func DecryptExplicitVerify( - pgpMessage *crypto.PGPMessage, - privateKeyRing, publicKeyRing *crypto.KeyRing, - verifyTime int64, -) (*ExplicitVerifyMessage, error) { - message, err := privateKeyRing.Decrypt(pgpMessage, publicKeyRing, verifyTime) - return newExplicitVerifyMessage(message, err) -} - -// DecryptSessionKeyExplicitVerify decrypts a PGP data packet given a session key -// and a public keyring to verify the embedded signature. Returns the plain data and -// an error on signature verification failure. -func DecryptSessionKeyExplicitVerify( - dataPacket []byte, - sessionKey *crypto.SessionKey, - publicKeyRing *crypto.KeyRing, - verifyTime int64, -) (*ExplicitVerifyMessage, error) { - message, err := sessionKey.DecryptAndVerify(dataPacket, publicKeyRing, verifyTime) - return newExplicitVerifyMessage(message, err) -} - -func newExplicitVerifyMessage(message *crypto.PlainMessage, err error) (*ExplicitVerifyMessage, error) { - var explicitVerify *ExplicitVerifyMessage - if err != nil { - castedErr := &crypto.SignatureVerificationError{} - isType := goerrors.As(err, castedErr) - if !isType { - return nil, errors.Wrap(err, "gopenpgp: unable to decrypt message") - } - - explicitVerify = &ExplicitVerifyMessage{ - Message: message, - SignatureVerificationError: castedErr, - } - } else { - explicitVerify = &ExplicitVerifyMessage{ - Message: message, - SignatureVerificationError: nil, - } - } - - return explicitVerify, nil -} - -// DecryptAttachment takes a keypacket and datpacket -// and returns a decrypted PlainMessage -// Specifically designed for attachments rather than text messages. -func DecryptAttachment(keyPacket []byte, dataPacket []byte, keyRing *crypto.KeyRing) (*crypto.PlainMessage, error) { - splitMessage := crypto.NewPGPSplitMessage(keyPacket, dataPacket) - - decrypted, err := keyRing.DecryptAttachment(splitMessage) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to decrypt attachment") - } - return decrypted, nil -} - -// EncryptAttachment encrypts a file given a plainData and a fileName. -// Returns a PGPSplitMessage containing a session key packet and symmetrically -// encrypted data. Specifically designed for attachments rather than text -// messages. -func EncryptAttachment(plainData []byte, filename string, keyRing *crypto.KeyRing) (*crypto.PGPSplitMessage, error) { - plainMessage := crypto.NewPlainMessageFromFile(plainData, filename, uint32(crypto.GetUnixTime())) - decrypted, err := keyRing.EncryptAttachment(plainMessage, "") - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to encrypt attachment") - } - return decrypted, nil -} - -// GetJsonSHA256Fingerprints returns the SHA256 fingeprints of key and subkeys, -// encoded in JSON, since gomobile can not handle arrays. -func GetJsonSHA256Fingerprints(publicKey string) ([]byte, error) { - key, err := crypto.NewKeyFromArmored(publicKey) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to parse key") - } - - return json.Marshal(key.GetSHA256Fingerprints()) -} - -type EncryptSignArmoredDetachedMobileResult struct { - CiphertextArmored, EncryptedSignatureArmored string -} - -// EncryptSignArmoredDetachedMobile wraps the encryptSignArmoredDetached method -// to have only one return argument for mobile. -func EncryptSignArmoredDetachedMobile( - publicKey, privateKey string, - passphrase, plainData []byte, -) (wrappedTuple *EncryptSignArmoredDetachedMobileResult, err error) { - ciphertext, encryptedSignature, err := encryptSignArmoredDetached(publicKey, privateKey, passphrase, plainData) - if err != nil { - return nil, err - } - - return &EncryptSignArmoredDetachedMobileResult{ - CiphertextArmored: ciphertext, - EncryptedSignatureArmored: encryptedSignature, - }, nil -} - -type EncryptSignBinaryDetachedMobileResult struct { - EncryptedData []byte - EncryptedSignatureArmored string -} - -// EncryptSignBinaryDetachedMobile wraps the encryptSignBinaryDetached method -// to have only one return argument for mobile. -func EncryptSignBinaryDetachedMobile( - publicKey, privateKey string, - passphrase, plainData []byte, -) (wrappedTuple *EncryptSignBinaryDetachedMobileResult, err error) { - ciphertext, encryptedSignature, err := encryptSignBinaryDetached(publicKey, privateKey, passphrase, plainData) - if err != nil { - return nil, err - } - return &EncryptSignBinaryDetachedMobileResult{ - EncryptedData: ciphertext, - EncryptedSignatureArmored: encryptedSignature, - }, nil -} - -// FreeOSMemory can be used to explicitly -// call the garbage collector and -// return the unused memory to the OS. -func FreeOSMemory() { - debug.FreeOSMemory() -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/mobile_stream.go b/vendor/github.com/ProtonMail/gopenpgp/v2/helper/mobile_stream.go deleted file mode 100644 index 9fa927c464..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/mobile_stream.go +++ /dev/null @@ -1,203 +0,0 @@ -package helper - -import ( - "crypto/sha256" - "hash" - "io" - - "github.com/ProtonMail/gopenpgp/v2/crypto" - "github.com/pkg/errors" -) - -// Mobile2GoWriter is used to wrap a writer in the mobile app runtime, -// to be usable in the golang runtime (via gomobile). -type Mobile2GoWriter struct { - writer crypto.Writer -} - -// NewMobile2GoWriter wraps a writer to be usable in the golang runtime (via gomobile). -func NewMobile2GoWriter(writer crypto.Writer) *Mobile2GoWriter { - return &Mobile2GoWriter{writer} -} - -// Write writes the data in the provided buffer in the wrapped writer. -// It clones the provided data to prevent errors with garbage collectors. -func (w *Mobile2GoWriter) Write(b []byte) (n int, err error) { - bufferCopy := clone(b) - return w.writer.Write(bufferCopy) -} - -// Mobile2GoWriterWithSHA256 is used to wrap a writer in the mobile app runtime, -// to be usable in the golang runtime (via gomobile). -// It also computes the SHA256 hash of the data being written on the fly. -type Mobile2GoWriterWithSHA256 struct { - writer crypto.Writer - sha256 hash.Hash -} - -// NewMobile2GoWriterWithSHA256 wraps a writer to be usable in the golang runtime (via gomobile). -// The wrapper also computes the SHA256 hash of the data being written on the fly. -func NewMobile2GoWriterWithSHA256(writer crypto.Writer) *Mobile2GoWriterWithSHA256 { - return &Mobile2GoWriterWithSHA256{writer, sha256.New()} -} - -// Write writes the data in the provided buffer in the wrapped writer. -// It clones the provided data to prevent errors with garbage collectors. -// It also computes the SHA256 hash of the data being written on the fly. -func (w *Mobile2GoWriterWithSHA256) Write(b []byte) (n int, err error) { - bufferCopy := clone(b) - n, err = w.writer.Write(bufferCopy) - if err == nil { - hashedTotal := 0 - for hashedTotal < n { - hashed, err := w.sha256.Write(bufferCopy[hashedTotal:n]) - if err != nil { - return 0, errors.Wrap(err, "gopenpgp: couldn't hash encrypted data") - } - hashedTotal += hashed - } - } - return n, err -} - -// GetSHA256 returns the SHA256 hash of the data that's been written so far. -func (w *Mobile2GoWriterWithSHA256) GetSHA256() []byte { - return w.sha256.Sum(nil) -} - -// MobileReader is the interface that readers in the mobile runtime must use and implement. -// This is a workaround to some of the gomobile limitations. -type MobileReader interface { - Read(max int) (result *MobileReadResult, err error) -} - -// MobileReadResult is what needs to be returned by MobileReader.Read. -// The read data is passed as a return value rather than passed as an argument to the reader. -// This avoids problems introduced by gomobile that prevent the use of native golang readers. -type MobileReadResult struct { - N int // N, The number of bytes read - IsEOF bool // IsEOF, If true, then the reader has reached the end of the data to read. - Data []byte // Data, the data that has been read -} - -// NewMobileReadResult initialize a MobileReadResult with the correct values. -// It clones the data to avoid the garbage collector freeing the data too early. -func NewMobileReadResult(n int, eof bool, data []byte) *MobileReadResult { - return &MobileReadResult{N: n, IsEOF: eof, Data: clone(data)} -} - -func clone(src []byte) (dst []byte) { - dst = make([]byte, len(src)) - copy(dst, src) - return -} - -// Mobile2GoReader is used to wrap a MobileReader in the mobile app runtime, -// to be usable in the golang runtime (via gomobile) as a native Reader. -type Mobile2GoReader struct { - reader MobileReader -} - -// NewMobile2GoReader wraps a MobileReader to be usable in the golang runtime (via gomobile). -func NewMobile2GoReader(reader MobileReader) *Mobile2GoReader { - return &Mobile2GoReader{reader} -} - -// Read reads data from the wrapped MobileReader and copies the read data in the provided buffer. -// It also handles the conversion of EOF to an error. -func (r *Mobile2GoReader) Read(b []byte) (n int, err error) { - result, err := r.reader.Read(len(b)) - if err != nil { - return 0, errors.Wrap(err, "gopenpgp: couldn't read from mobile reader") - } - n = result.N - if n > 0 { - copy(b, result.Data[:n]) - } - if result.IsEOF { - err = io.EOF - } - return n, err -} - -// Go2AndroidReader is used to wrap a native golang Reader in the golang runtime, -// to be usable in the android app runtime (via gomobile). -type Go2AndroidReader struct { - isEOF bool - reader crypto.Reader -} - -// NewGo2AndroidReader wraps a native golang Reader to be usable in the mobile app runtime (via gomobile). -// It doesn't follow the standard golang Reader behavior, and returns n = -1 on EOF. -func NewGo2AndroidReader(reader crypto.Reader) *Go2AndroidReader { - return &Go2AndroidReader{isEOF: false, reader: reader} -} - -// Read reads bytes into the provided buffer and returns the number of bytes read -// It doesn't follow the standard golang Reader behavior, and returns n = -1 on EOF. -func (r *Go2AndroidReader) Read(b []byte) (n int, err error) { - if r.isEOF { - return -1, nil - } - n, err = r.reader.Read(b) - if errors.Is(err, io.EOF) { - if n == 0 { - return -1, nil - } else { - r.isEOF = true - return n, nil - } - } - return -} - -// Go2IOSReader is used to wrap a native golang Reader in the golang runtime, -// to be usable in the iOS app runtime (via gomobile) as a MobileReader. -type Go2IOSReader struct { - reader crypto.Reader -} - -// NewGo2IOSReader wraps a native golang Reader to be usable in the ios app runtime (via gomobile). -func NewGo2IOSReader(reader crypto.Reader) *Go2IOSReader { - return &Go2IOSReader{reader} -} - -// Read reads at most bytes from the wrapped Reader and returns the read data as a MobileReadResult. -func (r *Go2IOSReader) Read(max int) (result *MobileReadResult, err error) { - b := make([]byte, max) - n, err := r.reader.Read(b) - result = &MobileReadResult{} - if err != nil { - if errors.Is(err, io.EOF) { - result.IsEOF = true - } else { - return nil, err - } - } - result.N = n - if n > 0 { - result.Data = b[:n] - } - return result, nil -} - -// VerifySignatureExplicit calls the reader's VerifySignature() -// and tries to cast the returned error to a SignatureVerificationError. -func VerifySignatureExplicit( - reader *crypto.PlainMessageReader, -) (signatureVerificationError *crypto.SignatureVerificationError, err error) { - if reader == nil { - return nil, errors.New("gopenppg: the reader can't be nil") - } - err = reader.VerifySignature() - if err != nil { - castedErr := &crypto.SignatureVerificationError{} - isType := errors.As(err, castedErr) - if !isType { - return - } - signatureVerificationError = castedErr - err = nil - } - return -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/sign_detached.go b/vendor/github.com/ProtonMail/gopenpgp/v2/helper/sign_detached.go deleted file mode 100644 index 76c8ff9a87..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/helper/sign_detached.go +++ /dev/null @@ -1,70 +0,0 @@ -//go:build !ios && !android -// +build !ios,!android - -package helper - -import ( - "github.com/ProtonMail/gopenpgp/v2/crypto" - "github.com/pkg/errors" -) - -// EncryptSignAttachment encrypts an attachment using a detached signature, given a publicKey, a privateKey -// and its passphrase, the filename, and the unencrypted file data. -// Returns keypacket, dataPacket and unarmored (!) signature separate. -func EncryptSignAttachment( - publicKey, privateKey string, passphrase []byte, filename string, plainData []byte, -) (keyPacket, dataPacket, signature []byte, err error) { - var privateKeyObj, unlockedKeyObj *crypto.Key - var publicKeyRing, privateKeyRing *crypto.KeyRing - var packets *crypto.PGPSplitMessage - var signatureObj *crypto.PGPSignature - - var binMessage = crypto.NewPlainMessageFromFile(plainData, filename, uint32(crypto.GetUnixTime())) - - if publicKeyRing, err = createPublicKeyRing(publicKey); err != nil { - return nil, nil, nil, err - } - - if privateKeyObj, err = crypto.NewKeyFromArmored(privateKey); err != nil { - return nil, nil, nil, errors.Wrap(err, "gopenpgp: unable to parse private key") - } - - if unlockedKeyObj, err = privateKeyObj.Unlock(passphrase); err != nil { - return nil, nil, nil, errors.Wrap(err, "gopenpgp: unable to unlock key") - } - defer unlockedKeyObj.ClearPrivateParams() - - if privateKeyRing, err = crypto.NewKeyRing(unlockedKeyObj); err != nil { - return nil, nil, nil, errors.Wrap(err, "gopenpgp: unable to create private keyring") - } - - if packets, err = publicKeyRing.EncryptAttachment(binMessage, ""); err != nil { - return nil, nil, nil, errors.Wrap(err, "gopenpgp: unable to encrypt attachment") - } - - if signatureObj, err = privateKeyRing.SignDetached(binMessage); err != nil { - return nil, nil, nil, errors.Wrap(err, "gopenpgp: unable to sign attachment") - } - - return packets.GetBinaryKeyPacket(), packets.GetBinaryDataPacket(), signatureObj.GetBinary(), nil -} - -// EncryptSignArmoredDetached takes a public key for encryption, -// a private key and its passphrase for signature, and the plaintext data -// Returns an armored ciphertext and a detached armored signature. -func EncryptSignArmoredDetached( - publicKey, privateKey string, - passphrase, plainData []byte, -) (ciphertextArmored, encryptedSignatureArmored string, err error) { - return encryptSignArmoredDetached(publicKey, privateKey, passphrase, plainData) -} - -// EncryptSignBinaryDetached takes a public key for encryption, -// a private key and its passphrase for signature, and the plaintext data -// Returns encrypted binary data and a detached armored encrypted signature. -func EncryptSignBinaryDetached( - publicKey, privateKey string, - passphrase, plainData []byte, -) (encryptedData []byte, encryptedSignatureArmored string, err error) { - return encryptSignBinaryDetached(publicKey, privateKey, passphrase, plainData) -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/internal/armor.go b/vendor/github.com/ProtonMail/gopenpgp/v2/internal/armor.go deleted file mode 100644 index 0cf8f7db6e..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/internal/armor.go +++ /dev/null @@ -1,18 +0,0 @@ -package internal - -import ( - "strings" - - "github.com/ProtonMail/go-crypto/openpgp/armor" - "github.com/pkg/errors" -) - -// Unarmor unarmors an armored string. -func Unarmor(input string) (*armor.Block, error) { - io := strings.NewReader(input) - b, err := armor.Decode(io) - if err != nil { - return nil, errors.Wrap(err, "gopenpgp: unable to unarmor") - } - return b, nil -} diff --git a/vendor/github.com/ProtonMail/gopenpgp/v2/internal/common.go b/vendor/github.com/ProtonMail/gopenpgp/v2/internal/common.go deleted file mode 100644 index 534b33d204..0000000000 --- a/vendor/github.com/ProtonMail/gopenpgp/v2/internal/common.go +++ /dev/null @@ -1,32 +0,0 @@ -// Package internal contains internal methods and constants. -package internal - -import ( - "strings" - - "github.com/ProtonMail/gopenpgp/v2/constants" -) - -func Canonicalize(text string) string { - return strings.ReplaceAll(strings.ReplaceAll(text, "\r\n", "\n"), "\n", "\r\n") -} - -func TrimEachLine(text string) string { - lines := strings.Split(text, "\n") - - for i := range lines { - lines[i] = strings.TrimRight(lines[i], " \t\r") - } - - return strings.Join(lines, "\n") -} - -// CreationTimeOffset stores the amount of seconds that a signature may be -// created in the future, to compensate for clock skew. -const CreationTimeOffset = int64(60 * 60 * 24 * 2) - -// ArmorHeaders is a map of default armor headers. -var ArmorHeaders = map[string]string{ - "Version": constants.ArmorHeaderVersion, - "Comment": constants.ArmorHeaderComment, -} diff --git a/vendor/github.com/cloudflare/circl/LICENSE b/vendor/github.com/cloudflare/circl/LICENSE deleted file mode 100644 index 67edaa90a0..0000000000 --- a/vendor/github.com/cloudflare/circl/LICENSE +++ /dev/null @@ -1,57 +0,0 @@ -Copyright (c) 2019 Cloudflare. All rights reserved. - -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. - * Neither the name of Cloudflare nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -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 THE COPYRIGHT -OWNER OR CONTRIBUTORS 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. - -======================================================================== - -Copyright (c) 2009 The Go Authors. All rights reserved. - -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. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -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 THE COPYRIGHT -OWNER OR CONTRIBUTORS 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. diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve.go b/vendor/github.com/cloudflare/circl/dh/x25519/curve.go deleted file mode 100644 index f9057c2b86..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x25519/curve.go +++ /dev/null @@ -1,96 +0,0 @@ -package x25519 - -import ( - fp "github.com/cloudflare/circl/math/fp25519" -) - -// ladderJoye calculates a fixed-point multiplication with the generator point. -// The algorithm is the right-to-left Joye's ladder as described -// in "How to precompute a ladder" in SAC'2017. -func ladderJoye(k *Key) { - w := [5]fp.Elt{} // [mu,x1,z1,x2,z2] order must be preserved. - fp.SetOne(&w[1]) // x1 = 1 - fp.SetOne(&w[2]) // z1 = 1 - w[3] = fp.Elt{ // x2 = G-S - 0xbd, 0xaa, 0x2f, 0xc8, 0xfe, 0xe1, 0x94, 0x7e, - 0xf8, 0xed, 0xb2, 0x14, 0xae, 0x95, 0xf0, 0xbb, - 0xe2, 0x48, 0x5d, 0x23, 0xb9, 0xa0, 0xc7, 0xad, - 0x34, 0xab, 0x7c, 0xe2, 0xee, 0xcd, 0xae, 0x1e, - } - fp.SetOne(&w[4]) // z2 = 1 - - const n = 255 - const h = 3 - swap := uint(1) - for s := 0; s < n-h; s++ { - i := (s + h) / 8 - j := (s + h) % 8 - bit := uint((k[i] >> uint(j)) & 1) - copy(w[0][:], tableGenerator[s*Size:(s+1)*Size]) - diffAdd(&w, swap^bit) - swap = bit - } - for s := 0; s < h; s++ { - double(&w[1], &w[2]) - } - toAffine((*[fp.Size]byte)(k), &w[1], &w[2]) -} - -// ladderMontgomery calculates a generic scalar point multiplication -// The algorithm implemented is the left-to-right Montgomery's ladder. -func ladderMontgomery(k, xP *Key) { - w := [5]fp.Elt{} // [x1, x2, z2, x3, z3] order must be preserved. - w[0] = *(*fp.Elt)(xP) // x1 = xP - fp.SetOne(&w[1]) // x2 = 1 - w[3] = *(*fp.Elt)(xP) // x3 = xP - fp.SetOne(&w[4]) // z3 = 1 - - move := uint(0) - for s := 255 - 1; s >= 0; s-- { - i := s / 8 - j := s % 8 - bit := uint((k[i] >> uint(j)) & 1) - ladderStep(&w, move^bit) - move = bit - } - toAffine((*[fp.Size]byte)(k), &w[1], &w[2]) -} - -func toAffine(k *[fp.Size]byte, x, z *fp.Elt) { - fp.Inv(z, z) - fp.Mul(x, x, z) - _ = fp.ToBytes(k[:], x) -} - -var lowOrderPoints = [5]fp.Elt{ - { /* (0,_,1) point of order 2 on Curve25519 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { /* (1,_,1) point of order 4 on Curve25519 */ - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { /* (x,_,1) first point of order 8 on Curve25519 */ - 0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae, - 0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a, - 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd, - 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00, - }, - { /* (x,_,1) second point of order 8 on Curve25519 */ - 0x5f, 0x9c, 0x95, 0xbc, 0xa3, 0x50, 0x8c, 0x24, - 0xb1, 0xd0, 0xb1, 0x55, 0x9c, 0x83, 0xef, 0x5b, - 0x04, 0x44, 0x5c, 0xc4, 0x58, 0x1c, 0x8e, 0x86, - 0xd8, 0x22, 0x4e, 0xdd, 0xd0, 0x9f, 0x11, 0x57, - }, - { /* (-1,_,1) a point of order 4 on the twist of Curve25519 */ - 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, - }, -} diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.go b/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.go deleted file mode 100644 index 2fe9f59c2a..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.go +++ /dev/null @@ -1,31 +0,0 @@ -//go:build amd64 && !purego -// +build amd64,!purego - -package x25519 - -import ( - "golang.org/x/sys/cpu" - - fp "github.com/cloudflare/circl/math/fp25519" -) - -var hasBmi2Adx = cpu.X86.HasBMI2 && cpu.X86.HasADX - -var _ = hasBmi2Adx - -func double(x, z *fp.Elt) { doubleAmd64(x, z) } -func diffAdd(w *[5]fp.Elt, b uint) { diffAddAmd64(w, b) } -func ladderStep(w *[5]fp.Elt, b uint) { ladderStepAmd64(w, b) } -func mulA24(z, x *fp.Elt) { mulA24Amd64(z, x) } - -//go:noescape -func ladderStepAmd64(w *[5]fp.Elt, b uint) - -//go:noescape -func diffAddAmd64(w *[5]fp.Elt, b uint) - -//go:noescape -func doubleAmd64(x, z *fp.Elt) - -//go:noescape -func mulA24Amd64(z, x *fp.Elt) diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.h b/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.h deleted file mode 100644 index 8c1ae4d0fb..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.h +++ /dev/null @@ -1,111 +0,0 @@ -#define ladderStepLeg \ - addSub(x2,z2) \ - addSub(x3,z3) \ - integerMulLeg(b0,x2,z3) \ - integerMulLeg(b1,x3,z2) \ - reduceFromDoubleLeg(t0,b0) \ - reduceFromDoubleLeg(t1,b1) \ - addSub(t0,t1) \ - cselect(x2,x3,regMove) \ - cselect(z2,z3,regMove) \ - integerSqrLeg(b0,t0) \ - integerSqrLeg(b1,t1) \ - reduceFromDoubleLeg(x3,b0) \ - reduceFromDoubleLeg(z3,b1) \ - integerMulLeg(b0,x1,z3) \ - reduceFromDoubleLeg(z3,b0) \ - integerSqrLeg(b0,x2) \ - integerSqrLeg(b1,z2) \ - reduceFromDoubleLeg(x2,b0) \ - reduceFromDoubleLeg(z2,b1) \ - subtraction(t0,x2,z2) \ - multiplyA24Leg(t1,t0) \ - additionLeg(t1,t1,z2) \ - integerMulLeg(b0,x2,z2) \ - integerMulLeg(b1,t0,t1) \ - reduceFromDoubleLeg(x2,b0) \ - reduceFromDoubleLeg(z2,b1) - -#define ladderStepBmi2Adx \ - addSub(x2,z2) \ - addSub(x3,z3) \ - integerMulAdx(b0,x2,z3) \ - integerMulAdx(b1,x3,z2) \ - reduceFromDoubleAdx(t0,b0) \ - reduceFromDoubleAdx(t1,b1) \ - addSub(t0,t1) \ - cselect(x2,x3,regMove) \ - cselect(z2,z3,regMove) \ - integerSqrAdx(b0,t0) \ - integerSqrAdx(b1,t1) \ - reduceFromDoubleAdx(x3,b0) \ - reduceFromDoubleAdx(z3,b1) \ - integerMulAdx(b0,x1,z3) \ - reduceFromDoubleAdx(z3,b0) \ - integerSqrAdx(b0,x2) \ - integerSqrAdx(b1,z2) \ - reduceFromDoubleAdx(x2,b0) \ - reduceFromDoubleAdx(z2,b1) \ - subtraction(t0,x2,z2) \ - multiplyA24Adx(t1,t0) \ - additionAdx(t1,t1,z2) \ - integerMulAdx(b0,x2,z2) \ - integerMulAdx(b1,t0,t1) \ - reduceFromDoubleAdx(x2,b0) \ - reduceFromDoubleAdx(z2,b1) - -#define difAddLeg \ - addSub(x1,z1) \ - integerMulLeg(b0,z1,ui) \ - reduceFromDoubleLeg(z1,b0) \ - addSub(x1,z1) \ - integerSqrLeg(b0,x1) \ - integerSqrLeg(b1,z1) \ - reduceFromDoubleLeg(x1,b0) \ - reduceFromDoubleLeg(z1,b1) \ - integerMulLeg(b0,x1,z2) \ - integerMulLeg(b1,z1,x2) \ - reduceFromDoubleLeg(x1,b0) \ - reduceFromDoubleLeg(z1,b1) - -#define difAddBmi2Adx \ - addSub(x1,z1) \ - integerMulAdx(b0,z1,ui) \ - reduceFromDoubleAdx(z1,b0) \ - addSub(x1,z1) \ - integerSqrAdx(b0,x1) \ - integerSqrAdx(b1,z1) \ - reduceFromDoubleAdx(x1,b0) \ - reduceFromDoubleAdx(z1,b1) \ - integerMulAdx(b0,x1,z2) \ - integerMulAdx(b1,z1,x2) \ - reduceFromDoubleAdx(x1,b0) \ - reduceFromDoubleAdx(z1,b1) - -#define doubleLeg \ - addSub(x1,z1) \ - integerSqrLeg(b0,x1) \ - integerSqrLeg(b1,z1) \ - reduceFromDoubleLeg(x1,b0) \ - reduceFromDoubleLeg(z1,b1) \ - subtraction(t0,x1,z1) \ - multiplyA24Leg(t1,t0) \ - additionLeg(t1,t1,z1) \ - integerMulLeg(b0,x1,z1) \ - integerMulLeg(b1,t0,t1) \ - reduceFromDoubleLeg(x1,b0) \ - reduceFromDoubleLeg(z1,b1) - -#define doubleBmi2Adx \ - addSub(x1,z1) \ - integerSqrAdx(b0,x1) \ - integerSqrAdx(b1,z1) \ - reduceFromDoubleAdx(x1,b0) \ - reduceFromDoubleAdx(z1,b1) \ - subtraction(t0,x1,z1) \ - multiplyA24Adx(t1,t0) \ - additionAdx(t1,t1,z1) \ - integerMulAdx(b0,x1,z1) \ - integerMulAdx(b1,t0,t1) \ - reduceFromDoubleAdx(x1,b0) \ - reduceFromDoubleAdx(z1,b1) diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.s b/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.s deleted file mode 100644 index b7723185b6..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x25519/curve_amd64.s +++ /dev/null @@ -1,156 +0,0 @@ -// +build amd64 - -#include "textflag.h" - -// Depends on circl/math/fp25519 package -#include "../../math/fp25519/fp_amd64.h" -#include "curve_amd64.h" - -// CTE_A24 is (A+2)/4 from Curve25519 -#define CTE_A24 121666 - -#define Size 32 - -// multiplyA24Leg multiplies x times CTE_A24 and stores in z -// Uses: AX, DX, R8-R13, FLAGS -// Instr: x86_64, cmov -#define multiplyA24Leg(z,x) \ - MOVL $CTE_A24, AX; MULQ 0+x; MOVQ AX, R8; MOVQ DX, R9; \ - MOVL $CTE_A24, AX; MULQ 8+x; MOVQ AX, R12; MOVQ DX, R10; \ - MOVL $CTE_A24, AX; MULQ 16+x; MOVQ AX, R13; MOVQ DX, R11; \ - MOVL $CTE_A24, AX; MULQ 24+x; \ - ADDQ R12, R9; \ - ADCQ R13, R10; \ - ADCQ AX, R11; \ - ADCQ $0, DX; \ - MOVL $38, AX; /* 2*C = 38 = 2^256 MOD 2^255-19*/ \ - IMULQ AX, DX; \ - ADDQ DX, R8; \ - ADCQ $0, R9; MOVQ R9, 8+z; \ - ADCQ $0, R10; MOVQ R10, 16+z; \ - ADCQ $0, R11; MOVQ R11, 24+z; \ - MOVQ $0, DX; \ - CMOVQCS AX, DX; \ - ADDQ DX, R8; MOVQ R8, 0+z; - -// multiplyA24Adx multiplies x times CTE_A24 and stores in z -// Uses: AX, DX, R8-R12, FLAGS -// Instr: x86_64, cmov, bmi2 -#define multiplyA24Adx(z,x) \ - MOVQ $CTE_A24, DX; \ - MULXQ 0+x, R8, R10; \ - MULXQ 8+x, R9, R11; ADDQ R10, R9; \ - MULXQ 16+x, R10, AX; ADCQ R11, R10; \ - MULXQ 24+x, R11, R12; ADCQ AX, R11; \ - ;;;;;;;;;;;;;;;;;;;;; ADCQ $0, R12; \ - MOVL $38, DX; /* 2*C = 38 = 2^256 MOD 2^255-19*/ \ - IMULQ DX, R12; \ - ADDQ R12, R8; \ - ADCQ $0, R9; MOVQ R9, 8+z; \ - ADCQ $0, R10; MOVQ R10, 16+z; \ - ADCQ $0, R11; MOVQ R11, 24+z; \ - MOVQ $0, R12; \ - CMOVQCS DX, R12; \ - ADDQ R12, R8; MOVQ R8, 0+z; - -#define mulA24Legacy \ - multiplyA24Leg(0(DI),0(SI)) -#define mulA24Bmi2Adx \ - multiplyA24Adx(0(DI),0(SI)) - -// func mulA24Amd64(z, x *fp255.Elt) -TEXT ·mulA24Amd64(SB),NOSPLIT,$0-16 - MOVQ z+0(FP), DI - MOVQ x+8(FP), SI - CHECK_BMI2ADX(LMA24, mulA24Legacy, mulA24Bmi2Adx) - - -// func ladderStepAmd64(w *[5]fp255.Elt, b uint) -// ladderStepAmd64 calculates a point addition and doubling as follows: -// (x2,z2) = 2*(x2,z2) and (x3,z3) = (x2,z2)+(x3,z3) using as a difference (x1,-). -// work = (x1,x2,z2,x3,z3) are five fp255.Elt of 32 bytes. -// stack = (t0,t1) are two fp.Elt of fp.Size bytes, and -// (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. -TEXT ·ladderStepAmd64(SB),NOSPLIT,$192-16 - // Parameters - #define regWork DI - #define regMove SI - #define x1 0*Size(regWork) - #define x2 1*Size(regWork) - #define z2 2*Size(regWork) - #define x3 3*Size(regWork) - #define z3 4*Size(regWork) - // Local variables - #define t0 0*Size(SP) - #define t1 1*Size(SP) - #define b0 2*Size(SP) - #define b1 4*Size(SP) - MOVQ w+0(FP), regWork - MOVQ b+8(FP), regMove - CHECK_BMI2ADX(LLADSTEP, ladderStepLeg, ladderStepBmi2Adx) - #undef regWork - #undef regMove - #undef x1 - #undef x2 - #undef z2 - #undef x3 - #undef z3 - #undef t0 - #undef t1 - #undef b0 - #undef b1 - -// func diffAddAmd64(w *[5]fp255.Elt, b uint) -// diffAddAmd64 calculates a differential point addition using a precomputed point. -// (x1,z1) = (x1,z1)+(mu) using a difference point (x2,z2) -// w = (mu,x1,z1,x2,z2) are five fp.Elt, and -// stack = (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. -TEXT ·diffAddAmd64(SB),NOSPLIT,$128-16 - // Parameters - #define regWork DI - #define regSwap SI - #define ui 0*Size(regWork) - #define x1 1*Size(regWork) - #define z1 2*Size(regWork) - #define x2 3*Size(regWork) - #define z2 4*Size(regWork) - // Local variables - #define b0 0*Size(SP) - #define b1 2*Size(SP) - MOVQ w+0(FP), regWork - MOVQ b+8(FP), regSwap - cswap(x1,x2,regSwap) - cswap(z1,z2,regSwap) - CHECK_BMI2ADX(LDIFADD, difAddLeg, difAddBmi2Adx) - #undef regWork - #undef regSwap - #undef ui - #undef x1 - #undef z1 - #undef x2 - #undef z2 - #undef b0 - #undef b1 - -// func doubleAmd64(x, z *fp255.Elt) -// doubleAmd64 calculates a point doubling (x1,z1) = 2*(x1,z1). -// stack = (t0,t1) are two fp.Elt of fp.Size bytes, and -// (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. -TEXT ·doubleAmd64(SB),NOSPLIT,$192-16 - // Parameters - #define x1 0(DI) - #define z1 0(SI) - // Local variables - #define t0 0*Size(SP) - #define t1 1*Size(SP) - #define b0 2*Size(SP) - #define b1 4*Size(SP) - MOVQ x+0(FP), DI - MOVQ z+8(FP), SI - CHECK_BMI2ADX(LDOUB,doubleLeg,doubleBmi2Adx) - #undef x1 - #undef z1 - #undef t0 - #undef t1 - #undef b0 - #undef b1 diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve_generic.go b/vendor/github.com/cloudflare/circl/dh/x25519/curve_generic.go deleted file mode 100644 index dae67ea37d..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x25519/curve_generic.go +++ /dev/null @@ -1,85 +0,0 @@ -package x25519 - -import ( - "encoding/binary" - "math/bits" - - fp "github.com/cloudflare/circl/math/fp25519" -) - -func doubleGeneric(x, z *fp.Elt) { - t0, t1 := &fp.Elt{}, &fp.Elt{} - fp.AddSub(x, z) - fp.Sqr(x, x) - fp.Sqr(z, z) - fp.Sub(t0, x, z) - mulA24Generic(t1, t0) - fp.Add(t1, t1, z) - fp.Mul(x, x, z) - fp.Mul(z, t0, t1) -} - -func diffAddGeneric(w *[5]fp.Elt, b uint) { - mu, x1, z1, x2, z2 := &w[0], &w[1], &w[2], &w[3], &w[4] - fp.Cswap(x1, x2, b) - fp.Cswap(z1, z2, b) - fp.AddSub(x1, z1) - fp.Mul(z1, z1, mu) - fp.AddSub(x1, z1) - fp.Sqr(x1, x1) - fp.Sqr(z1, z1) - fp.Mul(x1, x1, z2) - fp.Mul(z1, z1, x2) -} - -func ladderStepGeneric(w *[5]fp.Elt, b uint) { - x1, x2, z2, x3, z3 := &w[0], &w[1], &w[2], &w[3], &w[4] - t0 := &fp.Elt{} - t1 := &fp.Elt{} - fp.AddSub(x2, z2) - fp.AddSub(x3, z3) - fp.Mul(t0, x2, z3) - fp.Mul(t1, x3, z2) - fp.AddSub(t0, t1) - fp.Cmov(x2, x3, b) - fp.Cmov(z2, z3, b) - fp.Sqr(x3, t0) - fp.Sqr(z3, t1) - fp.Mul(z3, x1, z3) - fp.Sqr(x2, x2) - fp.Sqr(z2, z2) - fp.Sub(t0, x2, z2) - mulA24Generic(t1, t0) - fp.Add(t1, t1, z2) - fp.Mul(x2, x2, z2) - fp.Mul(z2, t0, t1) -} - -func mulA24Generic(z, x *fp.Elt) { - const A24 = 121666 - const n = 8 - var xx [4]uint64 - for i := range xx { - xx[i] = binary.LittleEndian.Uint64(x[i*n : (i+1)*n]) - } - - h0, l0 := bits.Mul64(xx[0], A24) - h1, l1 := bits.Mul64(xx[1], A24) - h2, l2 := bits.Mul64(xx[2], A24) - h3, l3 := bits.Mul64(xx[3], A24) - - var c3 uint64 - l1, c0 := bits.Add64(h0, l1, 0) - l2, c1 := bits.Add64(h1, l2, c0) - l3, c2 := bits.Add64(h2, l3, c1) - l4, _ := bits.Add64(h3, 0, c2) - _, l4 = bits.Mul64(l4, 38) - l0, c0 = bits.Add64(l0, l4, 0) - xx[1], c1 = bits.Add64(l1, 0, c0) - xx[2], c2 = bits.Add64(l2, 0, c1) - xx[3], c3 = bits.Add64(l3, 0, c2) - xx[0], _ = bits.Add64(l0, (-c3)&38, 0) - for i := range xx { - binary.LittleEndian.PutUint64(z[i*n:(i+1)*n], xx[i]) - } -} diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/curve_noasm.go b/vendor/github.com/cloudflare/circl/dh/x25519/curve_noasm.go deleted file mode 100644 index 07fab97d2a..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x25519/curve_noasm.go +++ /dev/null @@ -1,11 +0,0 @@ -//go:build !amd64 || purego -// +build !amd64 purego - -package x25519 - -import fp "github.com/cloudflare/circl/math/fp25519" - -func double(x, z *fp.Elt) { doubleGeneric(x, z) } -func diffAdd(w *[5]fp.Elt, b uint) { diffAddGeneric(w, b) } -func ladderStep(w *[5]fp.Elt, b uint) { ladderStepGeneric(w, b) } -func mulA24(z, x *fp.Elt) { mulA24Generic(z, x) } diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/doc.go b/vendor/github.com/cloudflare/circl/dh/x25519/doc.go deleted file mode 100644 index e8feed5694..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x25519/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -/* -Package x25519 provides Diffie-Hellman functions as specified in RFC-7748. - -Validation of public keys. - -The Diffie-Hellman function, as described in RFC-7748 [1], works for any -public key. However, if a different protocol requires contributory -behaviour [2,3], then the public keys must be validated against low-order -points [3,4]. To do that, the Shared function performs this validation -internally and returns false when the public key is invalid (i.e., it -is a low-order point). - -References: - - [1] RFC7748 by Langley, Hamburg, Turner (https://rfc-editor.org/rfc/rfc7748.txt) - - [2] Curve25519 by Bernstein (https://cr.yp.to/ecdh.html) - - [3] Bernstein (https://cr.yp.to/ecdh.html#validate) - - [4] Cremers&Jackson (https://eprint.iacr.org/2019/526) - -*/ -package x25519 diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/key.go b/vendor/github.com/cloudflare/circl/dh/x25519/key.go deleted file mode 100644 index bbd37ddd09..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x25519/key.go +++ /dev/null @@ -1,47 +0,0 @@ -package x25519 - -import ( - "crypto/subtle" - - fp "github.com/cloudflare/circl/math/fp25519" -) - -// Size is the length in bytes of a X25519 key. -const Size = 32 - -// Key represents a X25519 key. -type Key [Size]byte - -func (k *Key) clamp(in *Key) *Key { - *k = *in - k[0] &= 248 - k[31] = (k[31] & 127) | 64 - return k -} - -// isValidPubKey verifies if the public key is not a low-order point. -func (k *Key) isValidPubKey() bool { - fp.Modp((*fp.Elt)(k)) - isLowOrder := false - for _, P := range lowOrderPoints { - isLowOrder = isLowOrder || subtle.ConstantTimeCompare(P[:], k[:]) != 0 - } - return !isLowOrder -} - -// KeyGen obtains a public key given a secret key. -func KeyGen(public, secret *Key) { - ladderJoye(public.clamp(secret)) -} - -// Shared calculates Alice's shared key from Alice's secret key and Bob's -// public key returning true on success. A failure case happens when the public -// key is a low-order point, thus the shared key is all-zeros and the function -// returns false. -func Shared(shared, secret, public *Key) bool { - validPk := *public - validPk[31] &= (1 << (255 % 8)) - 1 - ok := validPk.isValidPubKey() - ladderMontgomery(shared.clamp(secret), &validPk) - return ok -} diff --git a/vendor/github.com/cloudflare/circl/dh/x25519/table.go b/vendor/github.com/cloudflare/circl/dh/x25519/table.go deleted file mode 100644 index 30927e7b7b..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x25519/table.go +++ /dev/null @@ -1,266 +0,0 @@ -package x25519 - -import "github.com/cloudflare/circl/math/fp25519" - -// tableGenerator contains the set of points: -// t[i] = (xi+1)/(xi-1), -// where (xi,yi) = 2^iG and G is the generator point -// Size = (256)*(256/8) = 8192 bytes. -var tableGenerator = [256 * fp25519.Size]byte{ - /* (2^ 0)P */ 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, - /* (2^ 1)P */ 0x96, 0xfe, 0xaa, 0x16, 0xf4, 0x20, 0x82, 0x6b, 0x34, 0x6a, 0x56, 0x4f, 0x2b, 0xeb, 0xeb, 0x82, 0x0f, 0x95, 0xa5, 0x75, 0xb0, 0xa5, 0xa9, 0xd5, 0xf4, 0x88, 0x24, 0x4b, 0xcf, 0xb2, 0x42, 0x51, - /* (2^ 2)P */ 0x0c, 0x68, 0x69, 0x00, 0x75, 0xbc, 0xae, 0x6a, 0x41, 0x9c, 0xf9, 0xa0, 0x20, 0x78, 0xcf, 0x89, 0xf4, 0xd0, 0x56, 0x3b, 0x18, 0xd9, 0x58, 0x2a, 0xa4, 0x11, 0x60, 0xe3, 0x80, 0xca, 0x5a, 0x4b, - /* (2^ 3)P */ 0x5d, 0x74, 0x29, 0x8c, 0x34, 0x32, 0x91, 0x32, 0xd7, 0x2f, 0x64, 0xe1, 0x16, 0xe6, 0xa2, 0xf4, 0x34, 0xbc, 0x67, 0xff, 0x03, 0xbb, 0x45, 0x1e, 0x4a, 0x9b, 0x2a, 0xf4, 0xd0, 0x12, 0x69, 0x30, - /* (2^ 4)P */ 0x54, 0x71, 0xaf, 0xe6, 0x07, 0x65, 0x88, 0xff, 0x2f, 0xc8, 0xee, 0xdf, 0x13, 0x0e, 0xf5, 0x04, 0xce, 0xb5, 0xba, 0x2a, 0xe8, 0x2f, 0x51, 0xaa, 0x22, 0xf2, 0xd5, 0x68, 0x1a, 0x25, 0x4e, 0x17, - /* (2^ 5)P */ 0x98, 0x88, 0x02, 0x82, 0x0d, 0x70, 0x96, 0xcf, 0xc5, 0x02, 0x2c, 0x0a, 0x37, 0xe3, 0x43, 0x17, 0xaa, 0x6e, 0xe8, 0xb4, 0x98, 0xec, 0x9e, 0x37, 0x2e, 0x48, 0xe0, 0x51, 0x8a, 0x88, 0x59, 0x0c, - /* (2^ 6)P */ 0x89, 0xd1, 0xb5, 0x99, 0xd6, 0xf1, 0xcb, 0xfb, 0x84, 0xdc, 0x9f, 0x8e, 0xd5, 0xf0, 0xae, 0xac, 0x14, 0x76, 0x1f, 0x23, 0x06, 0x0d, 0xc2, 0xc1, 0x72, 0xf9, 0x74, 0xa2, 0x8d, 0x21, 0x38, 0x29, - /* (2^ 7)P */ 0x18, 0x7f, 0x1d, 0xff, 0xbe, 0x49, 0xaf, 0xf6, 0xc2, 0xc9, 0x7a, 0x38, 0x22, 0x1c, 0x54, 0xcc, 0x6b, 0xc5, 0x15, 0x40, 0xef, 0xc9, 0xfc, 0x96, 0xa9, 0x13, 0x09, 0x69, 0x7c, 0x62, 0xc1, 0x69, - /* (2^ 8)P */ 0x0e, 0xdb, 0x33, 0x47, 0x2f, 0xfd, 0x86, 0x7a, 0xe9, 0x7d, 0x08, 0x9e, 0xf2, 0xc4, 0xb8, 0xfd, 0x29, 0xa2, 0xa2, 0x8e, 0x1a, 0x4b, 0x5e, 0x09, 0x79, 0x7a, 0xb3, 0x29, 0xc8, 0xa7, 0xd7, 0x1a, - /* (2^ 9)P */ 0xc0, 0xa0, 0x7e, 0xd1, 0xca, 0x89, 0x2d, 0x34, 0x51, 0x20, 0xed, 0xcc, 0xa6, 0xdd, 0xbe, 0x67, 0x74, 0x2f, 0xb4, 0x2b, 0xbf, 0x31, 0xca, 0x19, 0xbb, 0xac, 0x80, 0x49, 0xc8, 0xb4, 0xf7, 0x3d, - /* (2^ 10)P */ 0x83, 0xd8, 0x0a, 0xc8, 0x4d, 0x44, 0xc6, 0xa8, 0x85, 0xab, 0xe3, 0x66, 0x03, 0x44, 0x1e, 0xb9, 0xd8, 0xf6, 0x64, 0x01, 0xa0, 0xcd, 0x15, 0xc2, 0x68, 0xe6, 0x47, 0xf2, 0x6e, 0x7c, 0x86, 0x3d, - /* (2^ 11)P */ 0x8c, 0x65, 0x3e, 0xcc, 0x2b, 0x58, 0xdd, 0xc7, 0x28, 0x55, 0x0e, 0xee, 0x48, 0x47, 0x2c, 0xfd, 0x71, 0x4f, 0x9f, 0xcc, 0x95, 0x9b, 0xfd, 0xa0, 0xdf, 0x5d, 0x67, 0xb0, 0x71, 0xd8, 0x29, 0x75, - /* (2^ 12)P */ 0x78, 0xbd, 0x3c, 0x2d, 0xb4, 0x68, 0xf5, 0xb8, 0x82, 0xda, 0xf3, 0x91, 0x1b, 0x01, 0x33, 0x12, 0x62, 0x3b, 0x7c, 0x4a, 0xcd, 0x6c, 0xce, 0x2d, 0x03, 0x86, 0x49, 0x9e, 0x8e, 0xfc, 0xe7, 0x75, - /* (2^ 13)P */ 0xec, 0xb6, 0xd0, 0xfc, 0xf1, 0x13, 0x4f, 0x2f, 0x45, 0x7a, 0xff, 0x29, 0x1f, 0xca, 0xa8, 0xf1, 0x9b, 0xe2, 0x81, 0x29, 0xa7, 0xc1, 0x49, 0xc2, 0x6a, 0xb5, 0x83, 0x8c, 0xbb, 0x0d, 0xbe, 0x6e, - /* (2^ 14)P */ 0x22, 0xb2, 0x0b, 0x17, 0x8d, 0xfa, 0x14, 0x71, 0x5f, 0x93, 0x93, 0xbf, 0xd5, 0xdc, 0xa2, 0x65, 0x9a, 0x97, 0x9c, 0xb5, 0x68, 0x1f, 0xc4, 0xbd, 0x89, 0x92, 0xce, 0xa2, 0x79, 0xef, 0x0e, 0x2f, - /* (2^ 15)P */ 0xce, 0x37, 0x3c, 0x08, 0x0c, 0xbf, 0xec, 0x42, 0x22, 0x63, 0x49, 0xec, 0x09, 0xbc, 0x30, 0x29, 0x0d, 0xac, 0xfe, 0x9c, 0xc1, 0xb0, 0x94, 0xf2, 0x80, 0xbb, 0xfa, 0xed, 0x4b, 0xaa, 0x80, 0x37, - /* (2^ 16)P */ 0x29, 0xd9, 0xea, 0x7c, 0x3e, 0x7d, 0xc1, 0x56, 0xc5, 0x22, 0x57, 0x2e, 0xeb, 0x4b, 0xcb, 0xe7, 0x5a, 0xe1, 0xbf, 0x2d, 0x73, 0x31, 0xe9, 0x0c, 0xf8, 0x52, 0x10, 0x62, 0xc7, 0x83, 0xb8, 0x41, - /* (2^ 17)P */ 0x50, 0x53, 0xd2, 0xc3, 0xa0, 0x5c, 0xf7, 0xdb, 0x51, 0xe3, 0xb1, 0x6e, 0x08, 0xbe, 0x36, 0x29, 0x12, 0xb2, 0xa9, 0xb4, 0x3c, 0xe0, 0x36, 0xc9, 0xaa, 0x25, 0x22, 0x32, 0x82, 0xbf, 0x45, 0x1d, - /* (2^ 18)P */ 0xc5, 0x4c, 0x02, 0x6a, 0x03, 0xb1, 0x1a, 0xe8, 0x72, 0x9a, 0x4c, 0x30, 0x1c, 0x20, 0x12, 0xe2, 0xfc, 0xb1, 0x32, 0x68, 0xba, 0x3f, 0xd7, 0xc5, 0x81, 0x95, 0x83, 0x4d, 0x5a, 0xdb, 0xff, 0x20, - /* (2^ 19)P */ 0xad, 0x0f, 0x5d, 0xbe, 0x67, 0xd3, 0x83, 0xa2, 0x75, 0x44, 0x16, 0x8b, 0xca, 0x25, 0x2b, 0x6c, 0x2e, 0xf2, 0xaa, 0x7c, 0x46, 0x35, 0x49, 0x9d, 0x49, 0xff, 0x85, 0xee, 0x8e, 0x40, 0x66, 0x51, - /* (2^ 20)P */ 0x61, 0xe3, 0xb4, 0xfa, 0xa2, 0xba, 0x67, 0x3c, 0xef, 0x5c, 0xf3, 0x7e, 0xc6, 0x33, 0xe4, 0xb3, 0x1c, 0x9b, 0x15, 0x41, 0x92, 0x72, 0x59, 0x52, 0x33, 0xab, 0xb0, 0xd5, 0x92, 0x18, 0x62, 0x6a, - /* (2^ 21)P */ 0xcb, 0xcd, 0x55, 0x75, 0x38, 0x4a, 0xb7, 0x20, 0x3f, 0x92, 0x08, 0x12, 0x0e, 0xa1, 0x2a, 0x53, 0xd1, 0x1d, 0x28, 0x62, 0x77, 0x7b, 0xa1, 0xea, 0xbf, 0x44, 0x5c, 0xf0, 0x43, 0x34, 0xab, 0x61, - /* (2^ 22)P */ 0xf8, 0xde, 0x24, 0x23, 0x42, 0x6c, 0x7a, 0x25, 0x7f, 0xcf, 0xe3, 0x17, 0x10, 0x6c, 0x1c, 0x13, 0x57, 0xa2, 0x30, 0xf6, 0x39, 0x87, 0x75, 0x23, 0x80, 0x85, 0xa7, 0x01, 0x7a, 0x40, 0x5a, 0x29, - /* (2^ 23)P */ 0xd9, 0xa8, 0x5d, 0x6d, 0x24, 0x43, 0xc4, 0xf8, 0x5d, 0xfa, 0x52, 0x0c, 0x45, 0x75, 0xd7, 0x19, 0x3d, 0xf8, 0x1b, 0x73, 0x92, 0xfc, 0xfc, 0x2a, 0x00, 0x47, 0x2b, 0x1b, 0xe8, 0xc8, 0x10, 0x7d, - /* (2^ 24)P */ 0x0b, 0xa2, 0xba, 0x70, 0x1f, 0x27, 0xe0, 0xc8, 0x57, 0x39, 0xa6, 0x7c, 0x86, 0x48, 0x37, 0x99, 0xbb, 0xd4, 0x7e, 0xcb, 0xb3, 0xef, 0x12, 0x54, 0x75, 0x29, 0xe6, 0x73, 0x61, 0xd3, 0x96, 0x31, - /* (2^ 25)P */ 0xfc, 0xdf, 0xc7, 0x41, 0xd1, 0xca, 0x5b, 0xde, 0x48, 0xc8, 0x95, 0xb3, 0xd2, 0x8c, 0xcc, 0x47, 0xcb, 0xf3, 0x1a, 0xe1, 0x42, 0xd9, 0x4c, 0xa3, 0xc2, 0xce, 0x4e, 0xd0, 0xf2, 0xdb, 0x56, 0x02, - /* (2^ 26)P */ 0x7f, 0x66, 0x0e, 0x4b, 0xe9, 0xb7, 0x5a, 0x87, 0x10, 0x0d, 0x85, 0xc0, 0x83, 0xdd, 0xd4, 0xca, 0x9f, 0xc7, 0x72, 0x4e, 0x8f, 0x2e, 0xf1, 0x47, 0x9b, 0xb1, 0x85, 0x8c, 0xbb, 0x87, 0x1a, 0x5f, - /* (2^ 27)P */ 0xb8, 0x51, 0x7f, 0x43, 0xb6, 0xd0, 0xe9, 0x7a, 0x65, 0x90, 0x87, 0x18, 0x55, 0xce, 0xc7, 0x12, 0xee, 0x7a, 0xf7, 0x5c, 0xfe, 0x09, 0xde, 0x2a, 0x27, 0x56, 0x2c, 0x7d, 0x2f, 0x5a, 0xa0, 0x23, - /* (2^ 28)P */ 0x9a, 0x16, 0x7c, 0xf1, 0x28, 0xe1, 0x08, 0x59, 0x2d, 0x85, 0xd0, 0x8a, 0xdd, 0x98, 0x74, 0xf7, 0x64, 0x2f, 0x10, 0xab, 0xce, 0xc4, 0xb4, 0x74, 0x45, 0x98, 0x13, 0x10, 0xdd, 0xba, 0x3a, 0x18, - /* (2^ 29)P */ 0xac, 0xaa, 0x92, 0xaa, 0x8d, 0xba, 0x65, 0xb1, 0x05, 0x67, 0x38, 0x99, 0x95, 0xef, 0xc5, 0xd5, 0xd1, 0x40, 0xfc, 0xf8, 0x0c, 0x8f, 0x2f, 0xbe, 0x14, 0x45, 0x20, 0xee, 0x35, 0xe6, 0x01, 0x27, - /* (2^ 30)P */ 0x14, 0x65, 0x15, 0x20, 0x00, 0xa8, 0x9f, 0x62, 0xce, 0xc1, 0xa8, 0x64, 0x87, 0x86, 0x23, 0xf2, 0x0e, 0x06, 0x3f, 0x0b, 0xff, 0x4f, 0x89, 0x5b, 0xfa, 0xa3, 0x08, 0xf7, 0x4c, 0x94, 0xd9, 0x60, - /* (2^ 31)P */ 0x1f, 0x20, 0x7a, 0x1c, 0x1a, 0x00, 0xea, 0xae, 0x63, 0xce, 0xe2, 0x3e, 0x63, 0x6a, 0xf1, 0xeb, 0xe1, 0x07, 0x7a, 0x4c, 0x59, 0x09, 0x77, 0x6f, 0xcb, 0x08, 0x02, 0x0d, 0x15, 0x58, 0xb9, 0x79, - /* (2^ 32)P */ 0xe7, 0x10, 0xd4, 0x01, 0x53, 0x5e, 0xb5, 0x24, 0x4d, 0xc8, 0xfd, 0xf3, 0xdf, 0x4e, 0xa3, 0xe3, 0xd8, 0x32, 0x40, 0x90, 0xe4, 0x68, 0x87, 0xd8, 0xec, 0xae, 0x3a, 0x7b, 0x42, 0x84, 0x13, 0x13, - /* (2^ 33)P */ 0x14, 0x4f, 0x23, 0x86, 0x12, 0xe5, 0x05, 0x84, 0x29, 0xc5, 0xb4, 0xad, 0x39, 0x47, 0xdc, 0x14, 0xfd, 0x4f, 0x63, 0x50, 0xb2, 0xb5, 0xa2, 0xb8, 0x93, 0xff, 0xa7, 0xd8, 0x4a, 0xa9, 0xe2, 0x2f, - /* (2^ 34)P */ 0xdd, 0xfa, 0x43, 0xe8, 0xef, 0x57, 0x5c, 0xec, 0x18, 0x99, 0xbb, 0xf0, 0x40, 0xce, 0x43, 0x28, 0x05, 0x63, 0x3d, 0xcf, 0xd6, 0x61, 0xb5, 0xa4, 0x7e, 0x77, 0xfb, 0xe8, 0xbd, 0x29, 0x36, 0x74, - /* (2^ 35)P */ 0x8f, 0x73, 0xaf, 0xbb, 0x46, 0xdd, 0x3e, 0x34, 0x51, 0xa6, 0x01, 0xb1, 0x28, 0x18, 0x98, 0xed, 0x7a, 0x79, 0x2c, 0x88, 0x0b, 0x76, 0x01, 0xa4, 0x30, 0x87, 0xc8, 0x8d, 0xe2, 0x23, 0xc2, 0x1f, - /* (2^ 36)P */ 0x0e, 0xba, 0x0f, 0xfc, 0x91, 0x4e, 0x60, 0x48, 0xa4, 0x6f, 0x2c, 0x05, 0x8f, 0xf7, 0x37, 0xb6, 0x9c, 0x23, 0xe9, 0x09, 0x3d, 0xac, 0xcc, 0x91, 0x7c, 0x68, 0x7a, 0x43, 0xd4, 0xee, 0xf7, 0x23, - /* (2^ 37)P */ 0x00, 0xd8, 0x9b, 0x8d, 0x11, 0xb1, 0x73, 0x51, 0xa7, 0xd4, 0x89, 0x31, 0xb6, 0x41, 0xd6, 0x29, 0x86, 0xc5, 0xbb, 0x88, 0x79, 0x17, 0xbf, 0xfd, 0xf5, 0x1d, 0xd8, 0xca, 0x4f, 0x89, 0x59, 0x29, - /* (2^ 38)P */ 0x99, 0xc8, 0xbb, 0xb4, 0xf3, 0x8e, 0xbc, 0xae, 0xb9, 0x92, 0x69, 0xb2, 0x5a, 0x99, 0x48, 0x41, 0xfb, 0x2c, 0xf9, 0x34, 0x01, 0x0b, 0xe2, 0x24, 0xe8, 0xde, 0x05, 0x4a, 0x89, 0x58, 0xd1, 0x40, - /* (2^ 39)P */ 0xf6, 0x76, 0xaf, 0x85, 0x11, 0x0b, 0xb0, 0x46, 0x79, 0x7a, 0x18, 0x73, 0x78, 0xc7, 0xba, 0x26, 0x5f, 0xff, 0x8f, 0xab, 0x95, 0xbf, 0xc0, 0x3d, 0xd7, 0x24, 0x55, 0x94, 0xd8, 0x8b, 0x60, 0x2a, - /* (2^ 40)P */ 0x02, 0x63, 0x44, 0xbd, 0x88, 0x95, 0x44, 0x26, 0x9c, 0x43, 0x88, 0x03, 0x1c, 0xc2, 0x4b, 0x7c, 0xb2, 0x11, 0xbd, 0x83, 0xf3, 0xa4, 0x98, 0x8e, 0xb9, 0x76, 0xd8, 0xc9, 0x7b, 0x8d, 0x21, 0x26, - /* (2^ 41)P */ 0x8a, 0x17, 0x7c, 0x99, 0x42, 0x15, 0x08, 0xe3, 0x6f, 0x60, 0xb6, 0x6f, 0xa8, 0x29, 0x2d, 0x3c, 0x74, 0x93, 0x27, 0xfa, 0x36, 0x77, 0x21, 0x5c, 0xfa, 0xb1, 0xfe, 0x4a, 0x73, 0x05, 0xde, 0x7d, - /* (2^ 42)P */ 0xab, 0x2b, 0xd4, 0x06, 0x39, 0x0e, 0xf1, 0x3b, 0x9c, 0x64, 0x80, 0x19, 0x3e, 0x80, 0xf7, 0xe4, 0x7a, 0xbf, 0x95, 0x95, 0xf8, 0x3b, 0x05, 0xe6, 0x30, 0x55, 0x24, 0xda, 0x38, 0xaf, 0x4f, 0x39, - /* (2^ 43)P */ 0xf4, 0x28, 0x69, 0x89, 0x58, 0xfb, 0x8e, 0x7a, 0x3c, 0x11, 0x6a, 0xcc, 0xe9, 0x78, 0xc7, 0xfb, 0x6f, 0x59, 0xaf, 0x30, 0xe3, 0x0c, 0x67, 0x72, 0xf7, 0x6c, 0x3d, 0x1d, 0xa8, 0x22, 0xf2, 0x48, - /* (2^ 44)P */ 0xa7, 0xca, 0x72, 0x0d, 0x41, 0xce, 0x1f, 0xf0, 0x95, 0x55, 0x3b, 0x21, 0xc7, 0xec, 0x20, 0x5a, 0x83, 0x14, 0xfa, 0xc1, 0x65, 0x11, 0xc2, 0x7b, 0x41, 0xa7, 0xa8, 0x1d, 0xe3, 0x9a, 0xf8, 0x07, - /* (2^ 45)P */ 0xf9, 0x0f, 0x83, 0xc6, 0xb4, 0xc2, 0xd2, 0x05, 0x93, 0x62, 0x31, 0xc6, 0x0f, 0x33, 0x3e, 0xd4, 0x04, 0xa9, 0xd3, 0x96, 0x0a, 0x59, 0xa5, 0xa5, 0xb6, 0x33, 0x53, 0xa6, 0x91, 0xdb, 0x5e, 0x70, - /* (2^ 46)P */ 0xf7, 0xa5, 0xb9, 0x0b, 0x5e, 0xe1, 0x8e, 0x04, 0x5d, 0xaf, 0x0a, 0x9e, 0xca, 0xcf, 0x40, 0x32, 0x0b, 0xa4, 0xc4, 0xed, 0xce, 0x71, 0x4b, 0x8f, 0x6d, 0x4a, 0x54, 0xde, 0xa3, 0x0d, 0x1c, 0x62, - /* (2^ 47)P */ 0x91, 0x40, 0x8c, 0xa0, 0x36, 0x28, 0x87, 0x92, 0x45, 0x14, 0xc9, 0x10, 0xb0, 0x75, 0x83, 0xce, 0x94, 0x63, 0x27, 0x4f, 0x52, 0xeb, 0x72, 0x8a, 0x35, 0x36, 0xc8, 0x7e, 0xfa, 0xfc, 0x67, 0x26, - /* (2^ 48)P */ 0x2a, 0x75, 0xe8, 0x45, 0x33, 0x17, 0x4c, 0x7f, 0xa5, 0x79, 0x70, 0xee, 0xfe, 0x47, 0x1b, 0x06, 0x34, 0xff, 0x86, 0x9f, 0xfa, 0x9a, 0xdd, 0x25, 0x9c, 0xc8, 0x5d, 0x42, 0xf5, 0xce, 0x80, 0x37, - /* (2^ 49)P */ 0xe9, 0xb4, 0x3b, 0x51, 0x5a, 0x03, 0x46, 0x1a, 0xda, 0x5a, 0x57, 0xac, 0x79, 0xf3, 0x1e, 0x3e, 0x50, 0x4b, 0xa2, 0x5f, 0x1c, 0x5f, 0x8c, 0xc7, 0x22, 0x9f, 0xfd, 0x34, 0x76, 0x96, 0x1a, 0x32, - /* (2^ 50)P */ 0xfa, 0x27, 0x6e, 0x82, 0xb8, 0x07, 0x67, 0x94, 0xd0, 0x6f, 0x50, 0x4c, 0xd6, 0x84, 0xca, 0x3d, 0x36, 0x14, 0xe9, 0x75, 0x80, 0x21, 0x89, 0xc1, 0x84, 0x84, 0x3b, 0x9b, 0x16, 0x84, 0x92, 0x6d, - /* (2^ 51)P */ 0xdf, 0x2d, 0x3f, 0x38, 0x40, 0xe8, 0x67, 0x3a, 0x75, 0x9b, 0x4f, 0x0c, 0xa3, 0xc9, 0xee, 0x33, 0x47, 0xef, 0x83, 0xa7, 0x6f, 0xc8, 0xc7, 0x3e, 0xc4, 0xfb, 0xc9, 0xba, 0x9f, 0x44, 0xec, 0x26, - /* (2^ 52)P */ 0x7d, 0x9e, 0x9b, 0xa0, 0xcb, 0x38, 0x0f, 0x5c, 0x8c, 0x47, 0xa3, 0x62, 0xc7, 0x8c, 0x16, 0x81, 0x1c, 0x12, 0xfc, 0x06, 0xd3, 0xb0, 0x23, 0x3e, 0xdd, 0xdc, 0xef, 0xa5, 0xa0, 0x8a, 0x23, 0x5a, - /* (2^ 53)P */ 0xff, 0x43, 0xea, 0xc4, 0x21, 0x61, 0xa2, 0x1b, 0xb5, 0x32, 0x88, 0x7c, 0x7f, 0xc7, 0xf8, 0x36, 0x9a, 0xf9, 0xdc, 0x0a, 0x0b, 0xea, 0xfb, 0x88, 0xf9, 0xeb, 0x5b, 0xc2, 0x8e, 0x93, 0xa9, 0x5c, - /* (2^ 54)P */ 0xa0, 0xcd, 0xfc, 0x51, 0x5e, 0x6a, 0x43, 0xd5, 0x3b, 0x89, 0xcd, 0xc2, 0x97, 0x47, 0xbc, 0x1d, 0x08, 0x4a, 0x22, 0xd3, 0x65, 0x6a, 0x34, 0x19, 0x66, 0xf4, 0x9a, 0x9b, 0xe4, 0x34, 0x50, 0x0f, - /* (2^ 55)P */ 0x6e, 0xb9, 0xe0, 0xa1, 0x67, 0x39, 0x3c, 0xf2, 0x88, 0x4d, 0x7a, 0x86, 0xfa, 0x08, 0x8b, 0xe5, 0x79, 0x16, 0x34, 0xa7, 0xc6, 0xab, 0x2f, 0xfb, 0x46, 0x69, 0x02, 0xb6, 0x1e, 0x38, 0x75, 0x2a, - /* (2^ 56)P */ 0xac, 0x20, 0x94, 0xc1, 0xe4, 0x3b, 0x0a, 0xc8, 0xdc, 0xb6, 0xf2, 0x81, 0xc6, 0xf6, 0xb1, 0x66, 0x88, 0x33, 0xe9, 0x61, 0x67, 0x03, 0xf7, 0x7c, 0xc4, 0xa4, 0x60, 0xa6, 0xd8, 0xbb, 0xab, 0x25, - /* (2^ 57)P */ 0x98, 0x51, 0xfd, 0x14, 0xba, 0x12, 0xea, 0x91, 0xa9, 0xff, 0x3c, 0x4a, 0xfc, 0x50, 0x49, 0x68, 0x28, 0xad, 0xf5, 0x30, 0x21, 0x84, 0x26, 0xf8, 0x41, 0xa4, 0x01, 0x53, 0xf7, 0x88, 0xa9, 0x3e, - /* (2^ 58)P */ 0x6f, 0x8c, 0x5f, 0x69, 0x9a, 0x10, 0x78, 0xc9, 0xf3, 0xc3, 0x30, 0x05, 0x4a, 0xeb, 0x46, 0x17, 0x95, 0x99, 0x45, 0xb4, 0x77, 0x6d, 0x4d, 0x44, 0xc7, 0x5c, 0x4e, 0x05, 0x8c, 0x2b, 0x95, 0x75, - /* (2^ 59)P */ 0xaa, 0xd6, 0xf4, 0x15, 0x79, 0x3f, 0x70, 0xa3, 0xd8, 0x47, 0x26, 0x2f, 0x20, 0x46, 0xc3, 0x66, 0x4b, 0x64, 0x1d, 0x81, 0xdf, 0x69, 0x14, 0xd0, 0x1f, 0xd7, 0xa5, 0x81, 0x7d, 0xa4, 0xfe, 0x77, - /* (2^ 60)P */ 0x81, 0xa3, 0x7c, 0xf5, 0x9e, 0x52, 0xe9, 0xc5, 0x1a, 0x88, 0x2f, 0xce, 0xb9, 0xb4, 0xee, 0x6e, 0xd6, 0x9b, 0x00, 0xe8, 0x28, 0x1a, 0xe9, 0xb6, 0xec, 0x3f, 0xfc, 0x9a, 0x3e, 0xbe, 0x80, 0x4b, - /* (2^ 61)P */ 0xc5, 0xd2, 0xae, 0x26, 0xc5, 0x73, 0x37, 0x7e, 0x9d, 0xa4, 0xc9, 0x53, 0xb4, 0xfc, 0x4a, 0x1b, 0x4d, 0xb2, 0xff, 0xba, 0xd7, 0xbd, 0x20, 0xa9, 0x0e, 0x40, 0x2d, 0x12, 0x9f, 0x69, 0x54, 0x7c, - /* (2^ 62)P */ 0xc8, 0x4b, 0xa9, 0x4f, 0xe1, 0xc8, 0x46, 0xef, 0x5e, 0xed, 0x52, 0x29, 0xce, 0x74, 0xb0, 0xe0, 0xd5, 0x85, 0xd8, 0xdb, 0xe1, 0x50, 0xa4, 0xbe, 0x2c, 0x71, 0x0f, 0x32, 0x49, 0x86, 0xb6, 0x61, - /* (2^ 63)P */ 0xd1, 0xbd, 0xcc, 0x09, 0x73, 0x5f, 0x48, 0x8a, 0x2d, 0x1a, 0x4d, 0x7d, 0x0d, 0x32, 0x06, 0xbd, 0xf4, 0xbe, 0x2d, 0x32, 0x73, 0x29, 0x23, 0x25, 0x70, 0xf7, 0x17, 0x8c, 0x75, 0xc4, 0x5d, 0x44, - /* (2^ 64)P */ 0x3c, 0x93, 0xc8, 0x7c, 0x17, 0x34, 0x04, 0xdb, 0x9f, 0x05, 0xea, 0x75, 0x21, 0xe8, 0x6f, 0xed, 0x34, 0xdb, 0x53, 0xc0, 0xfd, 0xbe, 0xfe, 0x1e, 0x99, 0xaf, 0x5d, 0xc6, 0x67, 0xe8, 0xdb, 0x4a, - /* (2^ 65)P */ 0xdf, 0x09, 0x06, 0xa9, 0xa2, 0x71, 0xcd, 0x3a, 0x50, 0x40, 0xd0, 0x6d, 0x85, 0x91, 0xe9, 0xe5, 0x3c, 0xc2, 0x57, 0x81, 0x68, 0x9b, 0xc6, 0x1e, 0x4d, 0xfe, 0x5c, 0x88, 0xf6, 0x27, 0x74, 0x69, - /* (2^ 66)P */ 0x51, 0xa8, 0xe1, 0x65, 0x9b, 0x7b, 0xbe, 0xd7, 0xdd, 0x36, 0xc5, 0x22, 0xd5, 0x28, 0x3d, 0xa0, 0x45, 0xb6, 0xd2, 0x8f, 0x65, 0x9d, 0x39, 0x28, 0xe1, 0x41, 0x26, 0x7c, 0xe1, 0xb7, 0xe5, 0x49, - /* (2^ 67)P */ 0xa4, 0x57, 0x04, 0x70, 0x98, 0x3a, 0x8c, 0x6f, 0x78, 0x67, 0xbb, 0x5e, 0xa2, 0xf0, 0x78, 0x50, 0x0f, 0x96, 0x82, 0xc3, 0xcb, 0x3c, 0x3c, 0xd1, 0xb1, 0x84, 0xdf, 0xa7, 0x58, 0x32, 0x00, 0x2e, - /* (2^ 68)P */ 0x1c, 0x6a, 0x29, 0xe6, 0x9b, 0xf3, 0xd1, 0x8a, 0xb2, 0xbf, 0x5f, 0x2a, 0x65, 0xaa, 0xee, 0xc1, 0xcb, 0xf3, 0x26, 0xfd, 0x73, 0x06, 0xee, 0x33, 0xcc, 0x2c, 0x9d, 0xa6, 0x73, 0x61, 0x25, 0x59, - /* (2^ 69)P */ 0x41, 0xfc, 0x18, 0x4e, 0xaa, 0x07, 0xea, 0x41, 0x1e, 0xa5, 0x87, 0x7c, 0x52, 0x19, 0xfc, 0xd9, 0x6f, 0xca, 0x31, 0x58, 0x80, 0xcb, 0xaa, 0xbd, 0x4f, 0x69, 0x16, 0xc9, 0x2d, 0x65, 0x5b, 0x44, - /* (2^ 70)P */ 0x15, 0x23, 0x17, 0xf2, 0xa7, 0xa3, 0x92, 0xce, 0x64, 0x99, 0x1b, 0xe1, 0x2d, 0x28, 0xdc, 0x1e, 0x4a, 0x31, 0x4c, 0xe0, 0xaf, 0x3a, 0x82, 0xa1, 0x86, 0xf5, 0x7c, 0x43, 0x94, 0x2d, 0x0a, 0x79, - /* (2^ 71)P */ 0x09, 0xe0, 0xf6, 0x93, 0xfb, 0x47, 0xc4, 0x71, 0x76, 0x52, 0x84, 0x22, 0x67, 0xa5, 0x22, 0x89, 0x69, 0x51, 0x4f, 0x20, 0x3b, 0x90, 0x70, 0xbf, 0xfe, 0x19, 0xa3, 0x1b, 0x89, 0x89, 0x7a, 0x2f, - /* (2^ 72)P */ 0x0c, 0x14, 0xe2, 0x77, 0xb5, 0x8e, 0xa0, 0x02, 0xf4, 0xdc, 0x7b, 0x42, 0xd4, 0x4e, 0x9a, 0xed, 0xd1, 0x3c, 0x32, 0xe4, 0x44, 0xec, 0x53, 0x52, 0x5b, 0x35, 0xe9, 0x14, 0x3c, 0x36, 0x88, 0x3e, - /* (2^ 73)P */ 0x8c, 0x0b, 0x11, 0x77, 0x42, 0xc1, 0x66, 0xaa, 0x90, 0x33, 0xa2, 0x10, 0x16, 0x39, 0xe0, 0x1a, 0xa2, 0xc2, 0x3f, 0xc9, 0x12, 0xbd, 0x30, 0x20, 0xab, 0xc7, 0x55, 0x95, 0x57, 0x41, 0xe1, 0x3e, - /* (2^ 74)P */ 0x41, 0x7d, 0x6e, 0x6d, 0x3a, 0xde, 0x14, 0x92, 0xfe, 0x7e, 0xf1, 0x07, 0x86, 0xd8, 0xcd, 0x3c, 0x17, 0x12, 0xe1, 0xf8, 0x88, 0x12, 0x4f, 0x67, 0xd0, 0x93, 0x9f, 0x32, 0x0f, 0x25, 0x82, 0x56, - /* (2^ 75)P */ 0x6e, 0x39, 0x2e, 0x6d, 0x13, 0x0b, 0xf0, 0x6c, 0xbf, 0xde, 0x14, 0x10, 0x6f, 0xf8, 0x4c, 0x6e, 0x83, 0x4e, 0xcc, 0xbf, 0xb5, 0xb1, 0x30, 0x59, 0xb6, 0x16, 0xba, 0x8a, 0xb4, 0x69, 0x70, 0x04, - /* (2^ 76)P */ 0x93, 0x07, 0xb2, 0x69, 0xab, 0xe4, 0x4c, 0x0d, 0x9e, 0xfb, 0xd0, 0x97, 0x1a, 0xb9, 0x4d, 0xb2, 0x1d, 0xd0, 0x00, 0x4e, 0xf5, 0x50, 0xfa, 0xcd, 0xb5, 0xdd, 0x8b, 0x36, 0x85, 0x10, 0x1b, 0x22, - /* (2^ 77)P */ 0xd2, 0xd8, 0xe3, 0xb1, 0x68, 0x94, 0xe5, 0xe7, 0x93, 0x2f, 0x12, 0xbd, 0x63, 0x65, 0xc5, 0x53, 0x09, 0x3f, 0x66, 0xe0, 0x03, 0xa9, 0xe8, 0xee, 0x42, 0x3d, 0xbe, 0xcb, 0x62, 0xa6, 0xef, 0x61, - /* (2^ 78)P */ 0x2a, 0xab, 0x6e, 0xde, 0xdd, 0xdd, 0xf8, 0x2c, 0x31, 0xf2, 0x35, 0x14, 0xd5, 0x0a, 0xf8, 0x9b, 0x73, 0x49, 0xf0, 0xc9, 0xce, 0xda, 0xea, 0x5d, 0x27, 0x9b, 0xd2, 0x41, 0x5d, 0x5b, 0x27, 0x29, - /* (2^ 79)P */ 0x4f, 0xf1, 0xeb, 0x95, 0x08, 0x0f, 0xde, 0xcf, 0xa7, 0x05, 0x49, 0x05, 0x6b, 0xb9, 0xaa, 0xb9, 0xfd, 0x20, 0xc4, 0xa1, 0xd9, 0x0d, 0xe8, 0xca, 0xc7, 0xbb, 0x73, 0x16, 0x2f, 0xbf, 0x63, 0x0a, - /* (2^ 80)P */ 0x8c, 0xbc, 0x8f, 0x95, 0x11, 0x6e, 0x2f, 0x09, 0xad, 0x2f, 0x82, 0x04, 0xe8, 0x81, 0x2a, 0x67, 0x17, 0x25, 0xd5, 0x60, 0x15, 0x35, 0xc8, 0xca, 0xf8, 0x92, 0xf1, 0xc8, 0x22, 0x77, 0x3f, 0x6f, - /* (2^ 81)P */ 0xb7, 0x94, 0xe8, 0xc2, 0xcc, 0x90, 0xba, 0xf8, 0x0d, 0x9f, 0xff, 0x38, 0xa4, 0x57, 0x75, 0x2c, 0x59, 0x23, 0xe5, 0x5a, 0x85, 0x1d, 0x4d, 0x89, 0x69, 0x3d, 0x74, 0x7b, 0x15, 0x22, 0xe1, 0x68, - /* (2^ 82)P */ 0xf3, 0x19, 0xb9, 0xcf, 0x70, 0x55, 0x7e, 0xd8, 0xb9, 0x8d, 0x79, 0x95, 0xcd, 0xde, 0x2c, 0x3f, 0xce, 0xa2, 0xc0, 0x10, 0x47, 0x15, 0x21, 0x21, 0xb2, 0xc5, 0x6d, 0x24, 0x15, 0xa1, 0x66, 0x3c, - /* (2^ 83)P */ 0x72, 0xcb, 0x4e, 0x29, 0x62, 0xc5, 0xed, 0xcb, 0x16, 0x0b, 0x28, 0x6a, 0xc3, 0x43, 0x71, 0xba, 0x67, 0x8b, 0x07, 0xd4, 0xef, 0xc2, 0x10, 0x96, 0x1e, 0x4b, 0x6a, 0x94, 0x5d, 0x73, 0x44, 0x61, - /* (2^ 84)P */ 0x50, 0x33, 0x5b, 0xd7, 0x1e, 0x11, 0x6f, 0x53, 0x1b, 0xd8, 0x41, 0x20, 0x8c, 0xdb, 0x11, 0x02, 0x3c, 0x41, 0x10, 0x0e, 0x00, 0xb1, 0x3c, 0xf9, 0x76, 0x88, 0x9e, 0x03, 0x3c, 0xfd, 0x9d, 0x14, - /* (2^ 85)P */ 0x5b, 0x15, 0x63, 0x6b, 0xe4, 0xdd, 0x79, 0xd4, 0x76, 0x79, 0x83, 0x3c, 0xe9, 0x15, 0x6e, 0xb6, 0x38, 0xe0, 0x13, 0x1f, 0x3b, 0xe4, 0xfd, 0xda, 0x35, 0x0b, 0x4b, 0x2e, 0x1a, 0xda, 0xaf, 0x5f, - /* (2^ 86)P */ 0x81, 0x75, 0x19, 0x17, 0xdf, 0xbb, 0x00, 0x36, 0xc2, 0xd2, 0x3c, 0xbe, 0x0b, 0x05, 0x72, 0x39, 0x86, 0xbe, 0xd5, 0xbd, 0x6d, 0x90, 0x38, 0x59, 0x0f, 0x86, 0x9b, 0x3f, 0xe4, 0xe5, 0xfc, 0x34, - /* (2^ 87)P */ 0x02, 0x4d, 0xd1, 0x42, 0xcd, 0xa4, 0xa8, 0x75, 0x65, 0xdf, 0x41, 0x34, 0xc5, 0xab, 0x8d, 0x82, 0xd3, 0x31, 0xe1, 0xd2, 0xed, 0xab, 0xdc, 0x33, 0x5f, 0xd2, 0x14, 0xb8, 0x6f, 0xd7, 0xba, 0x3e, - /* (2^ 88)P */ 0x0f, 0xe1, 0x70, 0x6f, 0x56, 0x6f, 0x90, 0xd4, 0x5a, 0x0f, 0x69, 0x51, 0xaa, 0xf7, 0x12, 0x5d, 0xf2, 0xfc, 0xce, 0x76, 0x6e, 0xb1, 0xad, 0x45, 0x99, 0x29, 0x23, 0xad, 0xae, 0x68, 0xf7, 0x01, - /* (2^ 89)P */ 0xbd, 0xfe, 0x48, 0x62, 0x7b, 0xc7, 0x6c, 0x2b, 0xfd, 0xaf, 0x3a, 0xec, 0x28, 0x06, 0xd3, 0x3c, 0x6a, 0x48, 0xef, 0xd4, 0x80, 0x0b, 0x1c, 0xce, 0x23, 0x6c, 0xf6, 0xa6, 0x2e, 0xff, 0x3b, 0x4c, - /* (2^ 90)P */ 0x5f, 0xeb, 0xea, 0x4a, 0x09, 0xc4, 0x2e, 0x3f, 0xa7, 0x2c, 0x37, 0x6e, 0x28, 0x9b, 0xb1, 0x61, 0x1d, 0x70, 0x2a, 0xde, 0x66, 0xa9, 0xef, 0x5e, 0xef, 0xe3, 0x55, 0xde, 0x65, 0x05, 0xb2, 0x23, - /* (2^ 91)P */ 0x57, 0x85, 0xd5, 0x79, 0x52, 0xca, 0x01, 0xe3, 0x4f, 0x87, 0xc2, 0x27, 0xce, 0xd4, 0xb2, 0x07, 0x67, 0x1d, 0xcf, 0x9d, 0x8a, 0xcd, 0x32, 0xa5, 0x56, 0xff, 0x2b, 0x3f, 0xe2, 0xfe, 0x52, 0x2a, - /* (2^ 92)P */ 0x3d, 0x66, 0xd8, 0x7c, 0xb3, 0xef, 0x24, 0x86, 0x94, 0x75, 0xbd, 0xff, 0x20, 0xac, 0xc7, 0xbb, 0x45, 0x74, 0xd3, 0x82, 0x9c, 0x5e, 0xb8, 0x57, 0x66, 0xec, 0xa6, 0x86, 0xcb, 0x52, 0x30, 0x7b, - /* (2^ 93)P */ 0x1e, 0xe9, 0x25, 0x25, 0xad, 0xf0, 0x82, 0x34, 0xa0, 0xdc, 0x8e, 0xd2, 0x43, 0x80, 0xb6, 0x2c, 0x3a, 0x00, 0x1b, 0x2e, 0x05, 0x6d, 0x4f, 0xaf, 0x0a, 0x1b, 0x78, 0x29, 0x25, 0x8c, 0x5f, 0x18, - /* (2^ 94)P */ 0xd6, 0xe0, 0x0c, 0xd8, 0x5b, 0xde, 0x41, 0xaa, 0xd6, 0xe9, 0x53, 0x68, 0x41, 0xb2, 0x07, 0x94, 0x3a, 0x4c, 0x7f, 0x35, 0x6e, 0xc3, 0x3e, 0x56, 0xce, 0x7b, 0x29, 0x0e, 0xdd, 0xb8, 0xc4, 0x4c, - /* (2^ 95)P */ 0x0e, 0x73, 0xb8, 0xff, 0x52, 0x1a, 0xfc, 0xa2, 0x37, 0x8e, 0x05, 0x67, 0x6e, 0xf1, 0x11, 0x18, 0xe1, 0x4e, 0xdf, 0xcd, 0x66, 0xa3, 0xf9, 0x10, 0x99, 0xf0, 0xb9, 0xa0, 0xc4, 0xa0, 0xf4, 0x72, - /* (2^ 96)P */ 0xa7, 0x4e, 0x3f, 0x66, 0x6f, 0xc0, 0x16, 0x8c, 0xba, 0x0f, 0x97, 0x4e, 0xf7, 0x3a, 0x3b, 0x69, 0x45, 0xc3, 0x9e, 0xd6, 0xf1, 0xe7, 0x02, 0x21, 0x89, 0x80, 0x8a, 0x96, 0xbc, 0x3c, 0xa5, 0x0b, - /* (2^ 97)P */ 0x37, 0x55, 0xa1, 0xfe, 0xc7, 0x9d, 0x3d, 0xca, 0x93, 0x64, 0x53, 0x51, 0xbb, 0x24, 0x68, 0x4c, 0xb1, 0x06, 0x40, 0x84, 0x14, 0x63, 0x88, 0xb9, 0x60, 0xcc, 0x54, 0xb4, 0x2a, 0xa7, 0xd2, 0x40, - /* (2^ 98)P */ 0x75, 0x09, 0x57, 0x12, 0xb7, 0xa1, 0x36, 0x59, 0x57, 0xa6, 0xbd, 0xde, 0x48, 0xd6, 0xb9, 0x91, 0xea, 0x30, 0x43, 0xb6, 0x4b, 0x09, 0x44, 0x33, 0xd0, 0x51, 0xee, 0x12, 0x0d, 0xa1, 0x6b, 0x00, - /* (2^ 99)P */ 0x58, 0x5d, 0xde, 0xf5, 0x68, 0x84, 0x22, 0x19, 0xb0, 0x05, 0xcc, 0x38, 0x4c, 0x2f, 0xb1, 0x0e, 0x90, 0x19, 0x60, 0xd5, 0x9d, 0x9f, 0x03, 0xa1, 0x0b, 0x0e, 0xff, 0x4f, 0xce, 0xd4, 0x02, 0x45, - /* (2^100)P */ 0x89, 0xc1, 0x37, 0x68, 0x10, 0x54, 0x20, 0xeb, 0x3c, 0xb9, 0xd3, 0x6d, 0x4c, 0x54, 0xf6, 0xd0, 0x4f, 0xd7, 0x16, 0xc4, 0x64, 0x70, 0x72, 0x40, 0xf0, 0x2e, 0x50, 0x4b, 0x11, 0xc6, 0x15, 0x6e, - /* (2^101)P */ 0x6b, 0xa7, 0xb1, 0xcf, 0x98, 0xa3, 0xf2, 0x4d, 0xb1, 0xf6, 0xf2, 0x19, 0x74, 0x6c, 0x25, 0x11, 0x43, 0x60, 0x6e, 0x06, 0x62, 0x79, 0x49, 0x4a, 0x44, 0x5b, 0x35, 0x41, 0xab, 0x3a, 0x5b, 0x70, - /* (2^102)P */ 0xd8, 0xb1, 0x97, 0xd7, 0x36, 0xf5, 0x5e, 0x36, 0xdb, 0xf0, 0xdd, 0x22, 0xd6, 0x6b, 0x07, 0x00, 0x88, 0x5a, 0x57, 0xe0, 0xb0, 0x33, 0xbf, 0x3b, 0x4d, 0xca, 0xe4, 0xc8, 0x05, 0xaa, 0x77, 0x37, - /* (2^103)P */ 0x5f, 0xdb, 0x78, 0x55, 0xc8, 0x45, 0x27, 0x39, 0xe2, 0x5a, 0xae, 0xdb, 0x49, 0x41, 0xda, 0x6f, 0x67, 0x98, 0xdc, 0x8a, 0x0b, 0xb0, 0xf0, 0xb1, 0xa3, 0x1d, 0x6f, 0xd3, 0x37, 0x34, 0x96, 0x09, - /* (2^104)P */ 0x53, 0x38, 0xdc, 0xa5, 0x90, 0x4e, 0x82, 0x7e, 0xbd, 0x5c, 0x13, 0x1f, 0x64, 0xf6, 0xb5, 0xcc, 0xcc, 0x8f, 0xce, 0x87, 0x6c, 0xd8, 0x36, 0x67, 0x9f, 0x24, 0x04, 0x66, 0xe2, 0x3c, 0x5f, 0x62, - /* (2^105)P */ 0x3f, 0xf6, 0x02, 0x95, 0x05, 0xc8, 0x8a, 0xaf, 0x69, 0x14, 0x35, 0x2e, 0x0a, 0xe7, 0x05, 0x0c, 0x05, 0x63, 0x4b, 0x76, 0x9c, 0x2e, 0x29, 0x35, 0xc3, 0x3a, 0xe2, 0xc7, 0x60, 0x43, 0x39, 0x1a, - /* (2^106)P */ 0x64, 0x32, 0x18, 0x51, 0x32, 0xd5, 0xc6, 0xd5, 0x4f, 0xb7, 0xc2, 0x43, 0xbd, 0x5a, 0x06, 0x62, 0x9b, 0x3f, 0x97, 0x3b, 0xd0, 0xf5, 0xfb, 0xb5, 0x5e, 0x6e, 0x20, 0x61, 0x36, 0xda, 0xa3, 0x13, - /* (2^107)P */ 0xe5, 0x94, 0x5d, 0x72, 0x37, 0x58, 0xbd, 0xc6, 0xc5, 0x16, 0x50, 0x20, 0x12, 0x09, 0xe3, 0x18, 0x68, 0x3c, 0x03, 0x70, 0x15, 0xce, 0x88, 0x20, 0x87, 0x79, 0x83, 0x5c, 0x49, 0x1f, 0xba, 0x7f, - /* (2^108)P */ 0x9d, 0x07, 0xf9, 0xf2, 0x23, 0x74, 0x8c, 0x5a, 0xc5, 0x3f, 0x02, 0x34, 0x7b, 0x15, 0x35, 0x17, 0x51, 0xb3, 0xfa, 0xd2, 0x9a, 0xb4, 0xf9, 0xe4, 0x3c, 0xe3, 0x78, 0xc8, 0x72, 0xff, 0x91, 0x66, - /* (2^109)P */ 0x3e, 0xff, 0x5e, 0xdc, 0xde, 0x2a, 0x2c, 0x12, 0xf4, 0x6c, 0x95, 0xd8, 0xf1, 0x4b, 0xdd, 0xf8, 0xda, 0x5b, 0x9e, 0x9e, 0x5d, 0x20, 0x86, 0xeb, 0x43, 0xc7, 0x75, 0xd9, 0xb9, 0x92, 0x9b, 0x04, - /* (2^110)P */ 0x5a, 0xc0, 0xf6, 0xb0, 0x30, 0x97, 0x37, 0xa5, 0x53, 0xa5, 0xf3, 0xc6, 0xac, 0xff, 0xa0, 0x72, 0x6d, 0xcd, 0x0d, 0xb2, 0x34, 0x2c, 0x03, 0xb0, 0x4a, 0x16, 0xd5, 0x88, 0xbc, 0x9d, 0x0e, 0x47, - /* (2^111)P */ 0x47, 0xc0, 0x37, 0xa2, 0x0c, 0xf1, 0x9c, 0xb1, 0xa2, 0x81, 0x6c, 0x1f, 0x71, 0x66, 0x54, 0xb6, 0x43, 0x0b, 0xd8, 0x6d, 0xd1, 0x1b, 0x32, 0xb3, 0x8e, 0xbe, 0x5f, 0x0c, 0x60, 0x4f, 0xc1, 0x48, - /* (2^112)P */ 0x03, 0xc8, 0xa6, 0x4a, 0x26, 0x1c, 0x45, 0x66, 0xa6, 0x7d, 0xfa, 0xa4, 0x04, 0x39, 0x6e, 0xb6, 0x95, 0x83, 0x12, 0xb3, 0xb0, 0x19, 0x5f, 0xd4, 0x10, 0xbc, 0xc9, 0xc3, 0x27, 0x26, 0x60, 0x31, - /* (2^113)P */ 0x0d, 0xe1, 0xe4, 0x32, 0x48, 0xdc, 0x20, 0x31, 0xf7, 0x17, 0xc7, 0x56, 0x67, 0xc4, 0x20, 0xeb, 0x94, 0x02, 0x28, 0x67, 0x3f, 0x2e, 0xf5, 0x00, 0x09, 0xc5, 0x30, 0x47, 0xc1, 0x4f, 0x6d, 0x56, - /* (2^114)P */ 0x06, 0x72, 0x83, 0xfd, 0x40, 0x5d, 0x3a, 0x7e, 0x7a, 0x54, 0x59, 0x71, 0xdc, 0x26, 0xe9, 0xc1, 0x95, 0x60, 0x8d, 0xa6, 0xfb, 0x30, 0x67, 0x21, 0xa7, 0xce, 0x69, 0x3f, 0x84, 0xc3, 0xe8, 0x22, - /* (2^115)P */ 0x2b, 0x4b, 0x0e, 0x93, 0xe8, 0x74, 0xd0, 0x33, 0x16, 0x58, 0xd1, 0x84, 0x0e, 0x35, 0xe4, 0xb6, 0x65, 0x23, 0xba, 0xd6, 0x6a, 0xc2, 0x34, 0x55, 0xf3, 0xf3, 0xf1, 0x89, 0x2f, 0xc1, 0x73, 0x77, - /* (2^116)P */ 0xaa, 0x62, 0x79, 0xa5, 0x4d, 0x40, 0xba, 0x8c, 0x56, 0xce, 0x99, 0x19, 0xa8, 0x97, 0x98, 0x5b, 0xfc, 0x92, 0x16, 0x12, 0x2f, 0x86, 0x8e, 0x50, 0x91, 0xc2, 0x93, 0xa0, 0x7f, 0x90, 0x81, 0x3a, - /* (2^117)P */ 0x10, 0xa5, 0x25, 0x47, 0xff, 0xd0, 0xde, 0x0d, 0x03, 0xc5, 0x3f, 0x67, 0x10, 0xcc, 0xd8, 0x10, 0x89, 0x4e, 0x1f, 0x9f, 0x1c, 0x15, 0x9d, 0x5b, 0x4c, 0xa4, 0x09, 0xcb, 0xd5, 0xc1, 0xa5, 0x32, - /* (2^118)P */ 0xfb, 0x41, 0x05, 0xb9, 0x42, 0xa4, 0x0a, 0x1e, 0xdb, 0x85, 0xb4, 0xc1, 0x7c, 0xeb, 0x85, 0x5f, 0xe5, 0xf2, 0x9d, 0x8a, 0xce, 0x95, 0xe5, 0xbe, 0x36, 0x22, 0x42, 0x22, 0xc7, 0x96, 0xe4, 0x25, - /* (2^119)P */ 0xb9, 0xe5, 0x0f, 0xcd, 0x46, 0x3c, 0xdf, 0x5e, 0x88, 0x33, 0xa4, 0xd2, 0x7e, 0x5a, 0xe7, 0x34, 0x52, 0xe3, 0x61, 0xd7, 0x11, 0xde, 0x88, 0xe4, 0x5c, 0x54, 0x85, 0xa0, 0x01, 0x8a, 0x87, 0x0e, - /* (2^120)P */ 0x04, 0xbb, 0x21, 0xe0, 0x77, 0x3c, 0x49, 0xba, 0x9a, 0x89, 0xdf, 0xc7, 0x43, 0x18, 0x4d, 0x2b, 0x67, 0x0d, 0xe8, 0x7a, 0x48, 0x7a, 0xa3, 0x9e, 0x94, 0x17, 0xe4, 0x11, 0x80, 0x95, 0xa9, 0x67, - /* (2^121)P */ 0x65, 0xb0, 0x97, 0x66, 0x1a, 0x05, 0x58, 0x4b, 0xd4, 0xa6, 0x6b, 0x8d, 0x7d, 0x3f, 0xe3, 0x47, 0xc1, 0x46, 0xca, 0x83, 0xd4, 0xa8, 0x4d, 0xbb, 0x0d, 0xdb, 0xc2, 0x81, 0xa1, 0xca, 0xbe, 0x68, - /* (2^122)P */ 0xa5, 0x9a, 0x98, 0x0b, 0xe9, 0x80, 0x89, 0x8d, 0x9b, 0xc9, 0x93, 0x2c, 0x4a, 0xb1, 0x5e, 0xf9, 0xa2, 0x73, 0x6e, 0x79, 0xc4, 0xc7, 0xc6, 0x51, 0x69, 0xb5, 0xef, 0xb5, 0x63, 0x83, 0x22, 0x6e, - /* (2^123)P */ 0xc8, 0x24, 0xd6, 0x2d, 0xb0, 0xc0, 0xbb, 0xc6, 0xee, 0x70, 0x81, 0xec, 0x7d, 0xb4, 0x7e, 0x77, 0xa9, 0xaf, 0xcf, 0x04, 0xa0, 0x15, 0xde, 0x3c, 0x9b, 0xbf, 0x60, 0x71, 0x08, 0xbc, 0xc6, 0x1d, - /* (2^124)P */ 0x02, 0x40, 0xc3, 0xee, 0x43, 0xe0, 0x07, 0x2e, 0x7f, 0xdc, 0x68, 0x7a, 0x67, 0xfc, 0xe9, 0x18, 0x9a, 0x5b, 0xd1, 0x8b, 0x18, 0x03, 0xda, 0xd8, 0x53, 0x82, 0x56, 0x00, 0xbb, 0xc3, 0xfb, 0x48, - /* (2^125)P */ 0xe1, 0x4c, 0x65, 0xfb, 0x4c, 0x7d, 0x54, 0x57, 0xad, 0xe2, 0x58, 0xa0, 0x82, 0x5b, 0x56, 0xd3, 0x78, 0x44, 0x15, 0xbf, 0x0b, 0xaf, 0x3e, 0xf6, 0x18, 0xbb, 0xdf, 0x14, 0xf1, 0x1e, 0x53, 0x47, - /* (2^126)P */ 0x87, 0xc5, 0x78, 0x42, 0x0a, 0x63, 0xec, 0xe1, 0xf3, 0x83, 0x8e, 0xca, 0x46, 0xd5, 0x07, 0x55, 0x2b, 0x0c, 0xdc, 0x3a, 0xc6, 0x35, 0xe1, 0x85, 0x4e, 0x84, 0x82, 0x56, 0xa8, 0xef, 0xa7, 0x0a, - /* (2^127)P */ 0x15, 0xf6, 0xe1, 0xb3, 0xa8, 0x1b, 0x69, 0x72, 0xfa, 0x3f, 0xbe, 0x1f, 0x70, 0xe9, 0xb4, 0x32, 0x68, 0x78, 0xbb, 0x39, 0x2e, 0xd9, 0xb6, 0x97, 0xe8, 0x39, 0x2e, 0xa0, 0xde, 0x53, 0xfe, 0x2c, - /* (2^128)P */ 0xb0, 0x52, 0xcd, 0x85, 0xcd, 0x92, 0x73, 0x68, 0x31, 0x98, 0xe2, 0x10, 0xc9, 0x66, 0xff, 0x27, 0x06, 0x2d, 0x83, 0xa9, 0x56, 0x45, 0x13, 0x97, 0xa0, 0xf8, 0x84, 0x0a, 0x36, 0xb0, 0x9b, 0x26, - /* (2^129)P */ 0x5c, 0xf8, 0x43, 0x76, 0x45, 0x55, 0x6e, 0x70, 0x1b, 0x7d, 0x59, 0x9b, 0x8c, 0xa4, 0x34, 0x37, 0x72, 0xa4, 0xef, 0xc6, 0xe8, 0x91, 0xee, 0x7a, 0xe0, 0xd9, 0xa9, 0x98, 0xc1, 0xab, 0xd6, 0x5c, - /* (2^130)P */ 0x1a, 0xe4, 0x3c, 0xcb, 0x06, 0xde, 0x04, 0x0e, 0x38, 0xe1, 0x02, 0x34, 0x89, 0xeb, 0xc6, 0xd8, 0x72, 0x37, 0x6e, 0x68, 0xbb, 0x59, 0x46, 0x90, 0xc8, 0xa8, 0x6b, 0x74, 0x71, 0xc3, 0x15, 0x72, - /* (2^131)P */ 0xd9, 0xa2, 0xe4, 0xea, 0x7e, 0xa9, 0x12, 0xfd, 0xc5, 0xf2, 0x94, 0x63, 0x51, 0xb7, 0x14, 0x95, 0x94, 0xf2, 0x08, 0x92, 0x80, 0xd5, 0x6f, 0x26, 0xb9, 0x26, 0x9a, 0x61, 0x85, 0x70, 0x84, 0x5c, - /* (2^132)P */ 0xea, 0x94, 0xd6, 0xfe, 0x10, 0x54, 0x98, 0x52, 0x54, 0xd2, 0x2e, 0x4a, 0x93, 0x5b, 0x90, 0x3c, 0x67, 0xe4, 0x3b, 0x2d, 0x69, 0x47, 0xbb, 0x10, 0xe1, 0xe9, 0xe5, 0x69, 0x2d, 0x3d, 0x3b, 0x06, - /* (2^133)P */ 0xeb, 0x7d, 0xa5, 0xdd, 0xee, 0x26, 0x27, 0x47, 0x91, 0x18, 0xf4, 0x10, 0xae, 0xc4, 0xb6, 0xef, 0x14, 0x76, 0x30, 0x7b, 0x91, 0x41, 0x16, 0x2b, 0x7c, 0x5b, 0xf4, 0xc4, 0x4f, 0x55, 0x7c, 0x11, - /* (2^134)P */ 0x12, 0x88, 0x9d, 0x8f, 0x11, 0xf3, 0x7c, 0xc0, 0x39, 0x79, 0x01, 0x50, 0x20, 0xd8, 0xdb, 0x01, 0x27, 0x28, 0x1b, 0x17, 0xf4, 0x03, 0xe8, 0xd7, 0xea, 0x25, 0xd2, 0x87, 0x74, 0xe8, 0x15, 0x10, - /* (2^135)P */ 0x4d, 0xcc, 0x3a, 0xd2, 0xfe, 0xe3, 0x8d, 0xc5, 0x2d, 0xbe, 0xa7, 0x94, 0xc2, 0x91, 0xdb, 0x50, 0x57, 0xf4, 0x9c, 0x1c, 0x3d, 0xd4, 0x94, 0x0b, 0x4a, 0x52, 0x37, 0x6e, 0xfa, 0x40, 0x16, 0x6b, - /* (2^136)P */ 0x09, 0x0d, 0xda, 0x5f, 0x6c, 0x34, 0x2f, 0x69, 0x51, 0x31, 0x4d, 0xfa, 0x59, 0x1c, 0x0b, 0x20, 0x96, 0xa2, 0x77, 0x07, 0x76, 0x6f, 0xc4, 0xb8, 0xcf, 0xfb, 0xfd, 0x3f, 0x5f, 0x39, 0x38, 0x4b, - /* (2^137)P */ 0x71, 0xd6, 0x54, 0xbe, 0x00, 0x5e, 0xd2, 0x18, 0xa6, 0xab, 0xc8, 0xbe, 0x82, 0x05, 0xd5, 0x60, 0x82, 0xb9, 0x78, 0x3b, 0x26, 0x8f, 0xad, 0x87, 0x32, 0x04, 0xda, 0x9c, 0x4e, 0xf6, 0xfd, 0x50, - /* (2^138)P */ 0xf0, 0xdc, 0x78, 0xc5, 0xaa, 0x67, 0xf5, 0x90, 0x3b, 0x13, 0xa3, 0xf2, 0x0e, 0x9b, 0x1e, 0xef, 0x71, 0xde, 0xd9, 0x42, 0x92, 0xba, 0xeb, 0x0e, 0xc7, 0x01, 0x31, 0xf0, 0x9b, 0x3c, 0x47, 0x15, - /* (2^139)P */ 0x95, 0x80, 0xb7, 0x56, 0xae, 0xe8, 0x77, 0x7c, 0x8e, 0x07, 0x6f, 0x6e, 0x66, 0xe7, 0x78, 0xb6, 0x1f, 0xba, 0x48, 0x53, 0x61, 0xb9, 0xa0, 0x2d, 0x0b, 0x3f, 0x73, 0xff, 0xc1, 0x31, 0xf9, 0x7c, - /* (2^140)P */ 0x6c, 0x36, 0x0a, 0x0a, 0xf5, 0x57, 0xb3, 0x26, 0x32, 0xd7, 0x87, 0x2b, 0xf4, 0x8c, 0x70, 0xe9, 0xc0, 0xb2, 0x1c, 0xf9, 0xa5, 0xee, 0x3a, 0xc1, 0x4c, 0xbb, 0x43, 0x11, 0x99, 0x0c, 0xd9, 0x35, - /* (2^141)P */ 0xdc, 0xd9, 0xa0, 0xa9, 0x04, 0xc4, 0xc1, 0x47, 0x51, 0xd2, 0x72, 0x19, 0x45, 0x58, 0x9e, 0x65, 0x31, 0x8c, 0xb3, 0x73, 0xc4, 0xa8, 0x75, 0x38, 0x24, 0x1f, 0x56, 0x79, 0xd3, 0x9e, 0xbd, 0x1f, - /* (2^142)P */ 0x8d, 0xc2, 0x1e, 0xd4, 0x6f, 0xbc, 0xfa, 0x11, 0xca, 0x2d, 0x2a, 0xcd, 0xe3, 0xdf, 0xf8, 0x7e, 0x95, 0x45, 0x40, 0x8c, 0x5d, 0x3b, 0xe7, 0x72, 0x27, 0x2f, 0xb7, 0x54, 0x49, 0xfa, 0x35, 0x61, - /* (2^143)P */ 0x9c, 0xb6, 0x24, 0xde, 0xa2, 0x32, 0xfc, 0xcc, 0x88, 0x5d, 0x09, 0x1f, 0x8c, 0x69, 0x55, 0x3f, 0x29, 0xf9, 0xc3, 0x5a, 0xed, 0x50, 0x33, 0xbe, 0xeb, 0x7e, 0x47, 0xca, 0x06, 0xf8, 0x9b, 0x5e, - /* (2^144)P */ 0x68, 0x9f, 0x30, 0x3c, 0xb6, 0x8f, 0xce, 0xe9, 0xf4, 0xf9, 0xe1, 0x65, 0x35, 0xf6, 0x76, 0x53, 0xf1, 0x93, 0x63, 0x5a, 0xb3, 0xcf, 0xaf, 0xd1, 0x06, 0x35, 0x62, 0xe5, 0xed, 0xa1, 0x32, 0x66, - /* (2^145)P */ 0x4c, 0xed, 0x2d, 0x0c, 0x39, 0x6c, 0x7d, 0x0b, 0x1f, 0xcb, 0x04, 0xdf, 0x81, 0x32, 0xcb, 0x56, 0xc7, 0xc3, 0xec, 0x49, 0x12, 0x5a, 0x30, 0x66, 0x2a, 0xa7, 0x8c, 0xa3, 0x60, 0x8b, 0x58, 0x5d, - /* (2^146)P */ 0x2d, 0xf4, 0xe5, 0xe8, 0x78, 0xbf, 0xec, 0xa6, 0xec, 0x3e, 0x8a, 0x3c, 0x4b, 0xb4, 0xee, 0x86, 0x04, 0x16, 0xd2, 0xfb, 0x48, 0x9c, 0x21, 0xec, 0x31, 0x67, 0xc3, 0x17, 0xf5, 0x1a, 0xaf, 0x1a, - /* (2^147)P */ 0xe7, 0xbd, 0x69, 0x67, 0x83, 0xa2, 0x06, 0xc3, 0xdb, 0x2a, 0x1e, 0x2b, 0x62, 0x80, 0x82, 0x20, 0xa6, 0x94, 0xff, 0xfb, 0x1f, 0xf5, 0x27, 0x80, 0x6b, 0xf2, 0x24, 0x11, 0xce, 0xa1, 0xcf, 0x76, - /* (2^148)P */ 0xb6, 0xab, 0x22, 0x24, 0x56, 0x00, 0xeb, 0x18, 0xc3, 0x29, 0x8c, 0x8f, 0xd5, 0xc4, 0x77, 0xf3, 0x1a, 0x56, 0x31, 0xf5, 0x07, 0xc2, 0xbb, 0x4d, 0x27, 0x8a, 0x12, 0x82, 0xf0, 0xb7, 0x53, 0x02, - /* (2^149)P */ 0xe0, 0x17, 0x2c, 0xb6, 0x1c, 0x09, 0x1f, 0x3d, 0xa9, 0x28, 0x46, 0xd6, 0xab, 0xe1, 0x60, 0x48, 0x53, 0x42, 0x9d, 0x30, 0x36, 0x74, 0xd1, 0x52, 0x76, 0xe5, 0xfa, 0x3e, 0xe1, 0x97, 0x6f, 0x35, - /* (2^150)P */ 0x5b, 0x53, 0x50, 0xa1, 0x1a, 0xe1, 0x51, 0xd3, 0xcc, 0x78, 0xd8, 0x1d, 0xbb, 0x45, 0x6b, 0x3e, 0x98, 0x2c, 0xd9, 0xbe, 0x28, 0x61, 0x77, 0x0c, 0xb8, 0x85, 0x28, 0x03, 0x93, 0xae, 0x34, 0x1d, - /* (2^151)P */ 0xc3, 0xa4, 0x5b, 0xa8, 0x8c, 0x48, 0xa0, 0x4b, 0xce, 0xe6, 0x9c, 0x3c, 0xc3, 0x48, 0x53, 0x98, 0x70, 0xa7, 0xbd, 0x97, 0x6f, 0x4c, 0x12, 0x66, 0x4a, 0x12, 0x54, 0x06, 0x29, 0xa0, 0x81, 0x0f, - /* (2^152)P */ 0xfd, 0x86, 0x9b, 0x56, 0xa6, 0x9c, 0xd0, 0x9e, 0x2d, 0x9a, 0xaf, 0x18, 0xfd, 0x09, 0x10, 0x81, 0x0a, 0xc2, 0xd8, 0x93, 0x3f, 0xd0, 0x08, 0xff, 0x6b, 0xf2, 0xae, 0x9f, 0x19, 0x48, 0xa1, 0x52, - /* (2^153)P */ 0x73, 0x1b, 0x8d, 0x2d, 0xdc, 0xf9, 0x03, 0x3e, 0x70, 0x1a, 0x96, 0x73, 0x18, 0x80, 0x05, 0x42, 0x70, 0x59, 0xa3, 0x41, 0xf0, 0x87, 0xd9, 0xc0, 0x49, 0xd5, 0xc0, 0xa1, 0x15, 0x1f, 0xaa, 0x07, - /* (2^154)P */ 0x24, 0x72, 0xd2, 0x8c, 0xe0, 0x6c, 0xd4, 0xdf, 0x39, 0x42, 0x4e, 0x93, 0x4f, 0x02, 0x0a, 0x6d, 0x59, 0x7b, 0x89, 0x99, 0x63, 0x7a, 0x8a, 0x80, 0xa2, 0x95, 0x3d, 0xe1, 0xe9, 0x56, 0x45, 0x0a, - /* (2^155)P */ 0x45, 0x30, 0xc1, 0xe9, 0x1f, 0x99, 0x1a, 0xd2, 0xb8, 0x51, 0x77, 0xfe, 0x48, 0x85, 0x0e, 0x9b, 0x35, 0x00, 0xf3, 0x4b, 0xcb, 0x43, 0xa6, 0x5d, 0x21, 0xf7, 0x40, 0x39, 0xd6, 0x28, 0xdb, 0x77, - /* (2^156)P */ 0x11, 0x90, 0xdc, 0x4a, 0x61, 0xeb, 0x5e, 0xfc, 0xeb, 0x11, 0xc4, 0xe8, 0x9a, 0x41, 0x29, 0x52, 0x74, 0xcf, 0x1d, 0x7d, 0x78, 0xe7, 0xc3, 0x9e, 0xb5, 0x4c, 0x6e, 0x21, 0x3e, 0x05, 0x0d, 0x34, - /* (2^157)P */ 0xb4, 0xf2, 0x8d, 0xb4, 0x39, 0xaf, 0xc7, 0xca, 0x94, 0x0a, 0xa1, 0x71, 0x28, 0xec, 0xfa, 0xc0, 0xed, 0x75, 0xa5, 0x5c, 0x24, 0x69, 0x0a, 0x14, 0x4c, 0x3a, 0x27, 0x34, 0x71, 0xc3, 0xf1, 0x0c, - /* (2^158)P */ 0xa5, 0xb8, 0x24, 0xc2, 0x6a, 0x30, 0xee, 0xc8, 0xb0, 0x30, 0x49, 0xcb, 0x7c, 0xee, 0xea, 0x57, 0x4f, 0xe7, 0xcb, 0xaa, 0xbd, 0x06, 0xe8, 0xa1, 0x7d, 0x65, 0xeb, 0x2e, 0x74, 0x62, 0x9a, 0x7d, - /* (2^159)P */ 0x30, 0x48, 0x6c, 0x54, 0xef, 0xb6, 0xb6, 0x9e, 0x2e, 0x6e, 0xb3, 0xdd, 0x1f, 0xca, 0x5c, 0x88, 0x05, 0x71, 0x0d, 0xef, 0x83, 0xf3, 0xb9, 0xe6, 0x12, 0x04, 0x2e, 0x9d, 0xef, 0x4f, 0x65, 0x58, - /* (2^160)P */ 0x26, 0x8e, 0x0e, 0xbe, 0xff, 0xc4, 0x05, 0xa9, 0x6e, 0x81, 0x31, 0x9b, 0xdf, 0xe5, 0x2d, 0x94, 0xe1, 0x88, 0x2e, 0x80, 0x3f, 0x72, 0x7d, 0x49, 0x8d, 0x40, 0x2f, 0x60, 0xea, 0x4d, 0x68, 0x30, - /* (2^161)P */ 0x34, 0xcb, 0xe6, 0xa3, 0x78, 0xa2, 0xe5, 0x21, 0xc4, 0x1d, 0x15, 0x5b, 0x6f, 0x6e, 0xfb, 0xae, 0x15, 0xca, 0x77, 0x9d, 0x04, 0x8e, 0x0b, 0xb3, 0x81, 0x89, 0xb9, 0x53, 0xcf, 0xc9, 0xc3, 0x28, - /* (2^162)P */ 0x2a, 0xdd, 0x6c, 0x55, 0x21, 0xb7, 0x7f, 0x28, 0x74, 0x22, 0x02, 0x97, 0xa8, 0x7c, 0x31, 0x0d, 0x58, 0x32, 0x54, 0x3a, 0x42, 0xc7, 0x68, 0x74, 0x2f, 0x64, 0xb5, 0x4e, 0x46, 0x11, 0x7f, 0x4a, - /* (2^163)P */ 0xa6, 0x3a, 0x19, 0x4d, 0x77, 0xa4, 0x37, 0xa2, 0xa1, 0x29, 0x21, 0xa9, 0x6e, 0x98, 0x65, 0xd8, 0x88, 0x1a, 0x7c, 0xf8, 0xec, 0x15, 0xc5, 0x24, 0xeb, 0xf5, 0x39, 0x5f, 0x57, 0x03, 0x40, 0x60, - /* (2^164)P */ 0x27, 0x9b, 0x0a, 0x57, 0x89, 0xf1, 0xb9, 0x47, 0x78, 0x4b, 0x5e, 0x46, 0xde, 0xce, 0x98, 0x2b, 0x20, 0x5c, 0xb8, 0xdb, 0x51, 0xf5, 0x6d, 0x02, 0x01, 0x19, 0xe2, 0x47, 0x10, 0xd9, 0xfc, 0x74, - /* (2^165)P */ 0xa3, 0xbf, 0xc1, 0x23, 0x0a, 0xa9, 0xe2, 0x13, 0xf6, 0x19, 0x85, 0x47, 0x4e, 0x07, 0xb0, 0x0c, 0x44, 0xcf, 0xf6, 0x3a, 0xbe, 0xcb, 0xf1, 0x5f, 0xbe, 0x2d, 0x81, 0xbe, 0x38, 0x54, 0xfe, 0x67, - /* (2^166)P */ 0xb0, 0x05, 0x0f, 0xa4, 0x4f, 0xf6, 0x3c, 0xd1, 0x87, 0x37, 0x28, 0x32, 0x2f, 0xfb, 0x4d, 0x05, 0xea, 0x2a, 0x0d, 0x7f, 0x5b, 0x91, 0x73, 0x41, 0x4e, 0x0d, 0x61, 0x1f, 0x4f, 0x14, 0x2f, 0x48, - /* (2^167)P */ 0x34, 0x82, 0x7f, 0xb4, 0x01, 0x02, 0x21, 0xf6, 0x90, 0xb9, 0x70, 0x9e, 0x92, 0xe1, 0x0a, 0x5d, 0x7c, 0x56, 0x49, 0xb0, 0x55, 0xf4, 0xd7, 0xdc, 0x01, 0x6f, 0x91, 0xf0, 0xf1, 0xd0, 0x93, 0x7e, - /* (2^168)P */ 0xfa, 0xb4, 0x7d, 0x8a, 0xf1, 0xcb, 0x79, 0xdd, 0x2f, 0xc6, 0x74, 0x6f, 0xbf, 0x91, 0x83, 0xbe, 0xbd, 0x91, 0x82, 0x4b, 0xd1, 0x45, 0x71, 0x02, 0x05, 0x17, 0xbf, 0x2c, 0xea, 0x73, 0x5a, 0x58, - /* (2^169)P */ 0xb2, 0x0d, 0x8a, 0x92, 0x3e, 0xa0, 0x5c, 0x48, 0xe7, 0x57, 0x28, 0x74, 0xa5, 0x01, 0xfc, 0x10, 0xa7, 0x51, 0xd5, 0xd6, 0xdb, 0x2e, 0x48, 0x2f, 0x8a, 0xdb, 0x8f, 0x04, 0xb5, 0x33, 0x04, 0x0f, - /* (2^170)P */ 0x47, 0x62, 0xdc, 0xd7, 0x8d, 0x2e, 0xda, 0x60, 0x9a, 0x81, 0xd4, 0x8c, 0xd3, 0xc9, 0xb4, 0x88, 0x97, 0x66, 0xf6, 0x01, 0xc0, 0x3a, 0x03, 0x13, 0x75, 0x7d, 0x36, 0x3b, 0xfe, 0x24, 0x3b, 0x27, - /* (2^171)P */ 0xd4, 0xb9, 0xb3, 0x31, 0x6a, 0xf6, 0xe8, 0xc6, 0xd5, 0x49, 0xdf, 0x94, 0xa4, 0x14, 0x15, 0x28, 0xa7, 0x3d, 0xb2, 0xc8, 0xdf, 0x6f, 0x72, 0xd1, 0x48, 0xe5, 0xde, 0x03, 0xd1, 0xe7, 0x3a, 0x4b, - /* (2^172)P */ 0x7e, 0x9d, 0x4b, 0xce, 0x19, 0x6e, 0x25, 0xc6, 0x1c, 0xc6, 0xe3, 0x86, 0xf1, 0x5c, 0x5c, 0xff, 0x45, 0xc1, 0x8e, 0x4b, 0xa3, 0x3c, 0xc6, 0xac, 0x74, 0x65, 0xe6, 0xfe, 0x88, 0x18, 0x62, 0x74, - /* (2^173)P */ 0x1e, 0x0a, 0x29, 0x45, 0x96, 0x40, 0x6f, 0x95, 0x2e, 0x96, 0x3a, 0x26, 0xe3, 0xf8, 0x0b, 0xef, 0x7b, 0x64, 0xc2, 0x5e, 0xeb, 0x50, 0x6a, 0xed, 0x02, 0x75, 0xca, 0x9d, 0x3a, 0x28, 0x94, 0x06, - /* (2^174)P */ 0xd1, 0xdc, 0xa2, 0x43, 0x36, 0x96, 0x9b, 0x76, 0x53, 0x53, 0xfc, 0x09, 0xea, 0xc8, 0xb7, 0x42, 0xab, 0x7e, 0x39, 0x13, 0xee, 0x2a, 0x00, 0x4f, 0x3a, 0xd6, 0xb7, 0x19, 0x2c, 0x5e, 0x00, 0x63, - /* (2^175)P */ 0xea, 0x3b, 0x02, 0x63, 0xda, 0x36, 0x67, 0xca, 0xb7, 0x99, 0x2a, 0xb1, 0x6d, 0x7f, 0x6c, 0x96, 0xe1, 0xc5, 0x37, 0xc5, 0x90, 0x93, 0xe0, 0xac, 0xee, 0x89, 0xaa, 0xa1, 0x63, 0x60, 0x69, 0x0b, - /* (2^176)P */ 0xe5, 0x56, 0x8c, 0x28, 0x97, 0x3e, 0xb0, 0xeb, 0xe8, 0x8b, 0x8c, 0x93, 0x9f, 0x9f, 0x2a, 0x43, 0x71, 0x7f, 0x71, 0x5b, 0x3d, 0xa9, 0xa5, 0xa6, 0x97, 0x9d, 0x8f, 0xe1, 0xc3, 0xb4, 0x5f, 0x1a, - /* (2^177)P */ 0xce, 0xcd, 0x60, 0x1c, 0xad, 0xe7, 0x94, 0x1c, 0xa0, 0xc4, 0x02, 0xfc, 0x43, 0x2a, 0x20, 0xee, 0x20, 0x6a, 0xc4, 0x67, 0xd8, 0xe4, 0xaf, 0x8d, 0x58, 0x7b, 0xc2, 0x8a, 0x3c, 0x26, 0x10, 0x0a, - /* (2^178)P */ 0x4a, 0x2a, 0x43, 0xe4, 0xdf, 0xa9, 0xde, 0xd0, 0xc5, 0x77, 0x92, 0xbe, 0x7b, 0xf8, 0x6a, 0x85, 0x1a, 0xc7, 0x12, 0xc2, 0xac, 0x72, 0x84, 0xce, 0x91, 0x1e, 0xbb, 0x9b, 0x6d, 0x1b, 0x15, 0x6f, - /* (2^179)P */ 0x6a, 0xd5, 0xee, 0x7c, 0x52, 0x6c, 0x77, 0x26, 0xec, 0xfa, 0xf8, 0xfb, 0xb7, 0x1c, 0x21, 0x7d, 0xcc, 0x09, 0x46, 0xfd, 0xa6, 0x66, 0xae, 0x37, 0x42, 0x0c, 0x77, 0xd2, 0x02, 0xb7, 0x81, 0x1f, - /* (2^180)P */ 0x92, 0x83, 0xc5, 0xea, 0x57, 0xb0, 0xb0, 0x2f, 0x9d, 0x4e, 0x74, 0x29, 0xfe, 0x89, 0xdd, 0xe1, 0xf8, 0xb4, 0xbe, 0x17, 0xeb, 0xf8, 0x64, 0xc9, 0x1e, 0xd4, 0xa2, 0xc9, 0x73, 0x10, 0x57, 0x29, - /* (2^181)P */ 0x54, 0xe2, 0xc0, 0x81, 0x89, 0xa1, 0x48, 0xa9, 0x30, 0x28, 0xb2, 0x65, 0x9b, 0x36, 0xf6, 0x2d, 0xc6, 0xd3, 0xcf, 0x5f, 0xd7, 0xb2, 0x3e, 0xa3, 0x1f, 0xa0, 0x99, 0x41, 0xec, 0xd6, 0x8c, 0x07, - /* (2^182)P */ 0x2f, 0x0d, 0x90, 0xad, 0x41, 0x4a, 0x58, 0x4a, 0x52, 0x4c, 0xc7, 0xe2, 0x78, 0x2b, 0x14, 0x32, 0x78, 0xc9, 0x31, 0x84, 0x33, 0xe8, 0xc4, 0x68, 0xc2, 0x9f, 0x68, 0x08, 0x90, 0xea, 0x69, 0x7f, - /* (2^183)P */ 0x65, 0x82, 0xa3, 0x46, 0x1e, 0xc8, 0xf2, 0x52, 0xfd, 0x32, 0xa8, 0x04, 0x2d, 0x07, 0x78, 0xfd, 0x94, 0x9e, 0x35, 0x25, 0xfa, 0xd5, 0xd7, 0x8c, 0xd2, 0x29, 0xcc, 0x54, 0x74, 0x1b, 0xe7, 0x4d, - /* (2^184)P */ 0xc9, 0x6a, 0xda, 0x1e, 0xad, 0x60, 0xeb, 0x42, 0x3a, 0x9c, 0xc0, 0xdb, 0xdf, 0x37, 0xad, 0x0a, 0x91, 0xc1, 0x3c, 0xe3, 0x71, 0x4b, 0x00, 0x81, 0x3c, 0x80, 0x22, 0x51, 0x34, 0xbe, 0xe6, 0x44, - /* (2^185)P */ 0xdb, 0x20, 0x19, 0xba, 0x88, 0x83, 0xfe, 0x03, 0x08, 0xb0, 0x0d, 0x15, 0x32, 0x7c, 0xd5, 0xf5, 0x29, 0x0c, 0xf6, 0x1a, 0x28, 0xc4, 0xc8, 0x49, 0xee, 0x1a, 0x70, 0xde, 0x18, 0xb5, 0xed, 0x21, - /* (2^186)P */ 0x99, 0xdc, 0x06, 0x8f, 0x41, 0x3e, 0xb6, 0x7f, 0xb8, 0xd7, 0x66, 0xc1, 0x99, 0x0d, 0x46, 0xa4, 0x83, 0x0a, 0x52, 0xce, 0x48, 0x52, 0xdd, 0x24, 0x58, 0x83, 0x92, 0x2b, 0x71, 0xad, 0xc3, 0x5e, - /* (2^187)P */ 0x0f, 0x93, 0x17, 0xbd, 0x5f, 0x2a, 0x02, 0x15, 0xe3, 0x70, 0x25, 0xd8, 0x77, 0x4a, 0xf6, 0xa4, 0x12, 0x37, 0x78, 0x15, 0x69, 0x8d, 0xbc, 0x12, 0xbb, 0x0a, 0x62, 0xfc, 0xc0, 0x94, 0x81, 0x49, - /* (2^188)P */ 0x82, 0x6c, 0x68, 0x55, 0xd2, 0xd9, 0xa2, 0x38, 0xf0, 0x21, 0x3e, 0x19, 0xd9, 0x6b, 0x5c, 0x78, 0x84, 0x54, 0x4a, 0xb2, 0x1a, 0xc8, 0xd5, 0xe4, 0x89, 0x09, 0xe2, 0xb2, 0x60, 0x78, 0x30, 0x56, - /* (2^189)P */ 0xc4, 0x74, 0x4d, 0x8b, 0xf7, 0x55, 0x9d, 0x42, 0x31, 0x01, 0x35, 0x43, 0x46, 0x83, 0xf1, 0x22, 0xff, 0x1f, 0xc7, 0x98, 0x45, 0xc2, 0x60, 0x1e, 0xef, 0x83, 0x99, 0x97, 0x14, 0xf0, 0xf2, 0x59, - /* (2^190)P */ 0x44, 0x4a, 0x49, 0xeb, 0x56, 0x7d, 0xa4, 0x46, 0x8e, 0xa1, 0x36, 0xd6, 0x54, 0xa8, 0x22, 0x3e, 0x3b, 0x1c, 0x49, 0x74, 0x52, 0xe1, 0x46, 0xb3, 0xe7, 0xcd, 0x90, 0x53, 0x4e, 0xfd, 0xea, 0x2c, - /* (2^191)P */ 0x75, 0x66, 0x0d, 0xbe, 0x38, 0x85, 0x8a, 0xba, 0x23, 0x8e, 0x81, 0x50, 0xbb, 0x74, 0x90, 0x4b, 0xc3, 0x04, 0xd3, 0x85, 0x90, 0xb8, 0xda, 0xcb, 0xc4, 0x92, 0x61, 0xe5, 0xe0, 0x4f, 0xa2, 0x61, - /* (2^192)P */ 0xcb, 0x5b, 0x52, 0xdb, 0xe6, 0x15, 0x76, 0xcb, 0xca, 0xe4, 0x67, 0xa5, 0x35, 0x8c, 0x7d, 0xdd, 0x69, 0xdd, 0xfc, 0xca, 0x3a, 0x15, 0xb4, 0xe6, 0x66, 0x97, 0x3c, 0x7f, 0x09, 0x8e, 0x66, 0x2d, - /* (2^193)P */ 0xf0, 0x5e, 0xe5, 0x5c, 0x26, 0x7e, 0x7e, 0xa5, 0x67, 0xb9, 0xd4, 0x7c, 0x52, 0x4e, 0x9f, 0x5d, 0xe5, 0xd1, 0x2f, 0x49, 0x06, 0x36, 0xc8, 0xfb, 0xae, 0xf7, 0xc3, 0xb7, 0xbe, 0x52, 0x0d, 0x09, - /* (2^194)P */ 0x7c, 0x4d, 0x7b, 0x1e, 0x5a, 0x51, 0xb9, 0x09, 0xc0, 0x44, 0xda, 0x99, 0x25, 0x6a, 0x26, 0x1f, 0x04, 0x55, 0xc5, 0xe2, 0x48, 0x95, 0xc4, 0xa1, 0xcc, 0x15, 0x6f, 0x12, 0x87, 0x42, 0xf0, 0x7e, - /* (2^195)P */ 0x15, 0xef, 0x30, 0xbd, 0x9d, 0x65, 0xd1, 0xfe, 0x7b, 0x27, 0xe0, 0xc4, 0xee, 0xb9, 0x4a, 0x8b, 0x91, 0x32, 0xdf, 0xa5, 0x36, 0x62, 0x4d, 0x88, 0x88, 0xf7, 0x5c, 0xbf, 0xa6, 0x6e, 0xd9, 0x1f, - /* (2^196)P */ 0x9a, 0x0d, 0x19, 0x1f, 0x98, 0x61, 0xa1, 0x42, 0xc1, 0x52, 0x60, 0x7e, 0x50, 0x49, 0xd8, 0x61, 0xd5, 0x2c, 0x5a, 0x28, 0xbf, 0x13, 0xe1, 0x9f, 0xd8, 0x85, 0xad, 0xdb, 0x76, 0xd6, 0x22, 0x7c, - /* (2^197)P */ 0x7d, 0xd2, 0xfb, 0x2b, 0xed, 0x70, 0xe7, 0x82, 0xa5, 0xf5, 0x96, 0xe9, 0xec, 0xb2, 0x05, 0x4c, 0x50, 0x01, 0x90, 0xb0, 0xc2, 0xa9, 0x40, 0xcd, 0x64, 0xbf, 0xd9, 0x13, 0x92, 0x31, 0x95, 0x58, - /* (2^198)P */ 0x08, 0x2e, 0xea, 0x3f, 0x70, 0x5d, 0xcc, 0xe7, 0x8c, 0x18, 0xe2, 0x58, 0x12, 0x49, 0x0c, 0xb5, 0xf0, 0x5b, 0x20, 0x48, 0xaa, 0x0b, 0xe3, 0xcc, 0x62, 0x2d, 0xa3, 0xcf, 0x9c, 0x65, 0x7c, 0x53, - /* (2^199)P */ 0x88, 0xc0, 0xcf, 0x98, 0x3a, 0x62, 0xb6, 0x37, 0xa4, 0xac, 0xd6, 0xa4, 0x1f, 0xed, 0x9b, 0xfe, 0xb0, 0xd1, 0xa8, 0x56, 0x8e, 0x9b, 0xd2, 0x04, 0x75, 0x95, 0x51, 0x0b, 0xc4, 0x71, 0x5f, 0x72, - /* (2^200)P */ 0xe6, 0x9c, 0x33, 0xd0, 0x9c, 0xf8, 0xc7, 0x28, 0x8b, 0xc1, 0xdd, 0x69, 0x44, 0xb1, 0x67, 0x83, 0x2c, 0x65, 0xa1, 0xa6, 0x83, 0xda, 0x3a, 0x88, 0x17, 0x6c, 0x4d, 0x03, 0x74, 0x19, 0x5f, 0x58, - /* (2^201)P */ 0x88, 0x91, 0xb1, 0xf1, 0x66, 0xb2, 0xcf, 0x89, 0x17, 0x52, 0xc3, 0xe7, 0x63, 0x48, 0x3b, 0xe6, 0x6a, 0x52, 0xc0, 0xb4, 0xa6, 0x9d, 0x8c, 0xd8, 0x35, 0x46, 0x95, 0xf0, 0x9d, 0x5c, 0x03, 0x3e, - /* (2^202)P */ 0x9d, 0xde, 0x45, 0xfb, 0x12, 0x54, 0x9d, 0xdd, 0x0d, 0xf4, 0xcf, 0xe4, 0x32, 0x45, 0x68, 0xdd, 0x1c, 0x67, 0x1d, 0x15, 0x9b, 0x99, 0x5c, 0x4b, 0x90, 0xf6, 0xe7, 0x11, 0xc8, 0x2c, 0x8c, 0x2d, - /* (2^203)P */ 0x40, 0x5d, 0x05, 0x90, 0x1d, 0xbe, 0x54, 0x7f, 0x40, 0xaf, 0x4a, 0x46, 0xdf, 0xc5, 0x64, 0xa4, 0xbe, 0x17, 0xe9, 0xf0, 0x24, 0x96, 0x97, 0x33, 0x30, 0x6b, 0x35, 0x27, 0xc5, 0x8d, 0x01, 0x2c, - /* (2^204)P */ 0xd4, 0xb3, 0x30, 0xe3, 0x24, 0x50, 0x41, 0xa5, 0xd3, 0x52, 0x16, 0x69, 0x96, 0x3d, 0xff, 0x73, 0xf1, 0x59, 0x9b, 0xef, 0xc4, 0x42, 0xec, 0x94, 0x5a, 0x8e, 0xd0, 0x18, 0x16, 0x20, 0x47, 0x07, - /* (2^205)P */ 0x53, 0x1c, 0x41, 0xca, 0x8a, 0xa4, 0x6c, 0x4d, 0x19, 0x61, 0xa6, 0xcf, 0x2f, 0x5f, 0x41, 0x66, 0xff, 0x27, 0xe2, 0x51, 0x00, 0xd4, 0x4d, 0x9c, 0xeb, 0xf7, 0x02, 0x9a, 0xc0, 0x0b, 0x81, 0x59, - /* (2^206)P */ 0x1d, 0x10, 0xdc, 0xb3, 0x71, 0xb1, 0x7e, 0x2a, 0x8e, 0xf6, 0xfe, 0x9f, 0xb9, 0x5a, 0x1c, 0x44, 0xea, 0x59, 0xb3, 0x93, 0x9b, 0x5c, 0x02, 0x32, 0x2f, 0x11, 0x9d, 0x1e, 0xa7, 0xe0, 0x8c, 0x5e, - /* (2^207)P */ 0xfd, 0x03, 0x95, 0x42, 0x92, 0xcb, 0xcc, 0xbf, 0x55, 0x5d, 0x09, 0x2f, 0x75, 0xba, 0x71, 0xd2, 0x1e, 0x09, 0x2d, 0x97, 0x5e, 0xad, 0x5e, 0x34, 0xba, 0x03, 0x31, 0xa8, 0x11, 0xdf, 0xc8, 0x18, - /* (2^208)P */ 0x4c, 0x0f, 0xed, 0x9a, 0x9a, 0x94, 0xcd, 0x90, 0x7e, 0xe3, 0x60, 0x66, 0xcb, 0xf4, 0xd1, 0xc5, 0x0b, 0x2e, 0xc5, 0x56, 0x2d, 0xc5, 0xca, 0xb8, 0x0d, 0x8e, 0x80, 0xc5, 0x00, 0xe4, 0x42, 0x6e, - /* (2^209)P */ 0x23, 0xfd, 0xae, 0xee, 0x66, 0x69, 0xb4, 0xa3, 0xca, 0xcd, 0x9e, 0xe3, 0x0b, 0x1f, 0x4f, 0x0c, 0x1d, 0xa5, 0x83, 0xd6, 0xc9, 0xc8, 0x9d, 0x18, 0x1b, 0x35, 0x09, 0x4c, 0x05, 0x7f, 0xf2, 0x51, - /* (2^210)P */ 0x82, 0x06, 0x32, 0x2a, 0xcd, 0x7c, 0x48, 0x4c, 0x96, 0x1c, 0xdf, 0xb3, 0x5b, 0xa9, 0x7e, 0x58, 0xe8, 0xb8, 0x5c, 0x55, 0x9e, 0xf7, 0xcc, 0xc8, 0x3d, 0xd7, 0x06, 0xa2, 0x29, 0xc8, 0x7d, 0x54, - /* (2^211)P */ 0x06, 0x9b, 0xc3, 0x80, 0xcd, 0xa6, 0x22, 0xb8, 0xc6, 0xd4, 0x00, 0x20, 0x73, 0x54, 0x6d, 0xe9, 0x4d, 0x3b, 0x46, 0x91, 0x6f, 0x5b, 0x53, 0x28, 0x1d, 0x6e, 0x48, 0xe2, 0x60, 0x46, 0x8f, 0x22, - /* (2^212)P */ 0xbf, 0x3a, 0x8d, 0xde, 0x38, 0x95, 0x79, 0x98, 0x6e, 0xca, 0xeb, 0x45, 0x00, 0x33, 0xd8, 0x8c, 0x38, 0xe7, 0x21, 0x82, 0x00, 0x2a, 0x95, 0x79, 0xbb, 0xd2, 0x5c, 0x53, 0xa7, 0xe1, 0x22, 0x43, - /* (2^213)P */ 0x1c, 0x80, 0xd1, 0x19, 0x18, 0xc1, 0x14, 0xb1, 0xc7, 0x5e, 0x3f, 0x4f, 0xd8, 0xe4, 0x16, 0x20, 0x4c, 0x0f, 0x26, 0x09, 0xf4, 0x2d, 0x0e, 0xdd, 0x66, 0x72, 0x5f, 0xae, 0xc0, 0x62, 0xc3, 0x5e, - /* (2^214)P */ 0xee, 0xb4, 0xb2, 0xb8, 0x18, 0x2b, 0x46, 0xc0, 0xfb, 0x1a, 0x4d, 0x27, 0x50, 0xd9, 0xc8, 0x7c, 0xd2, 0x02, 0x6b, 0x43, 0x05, 0x71, 0x5f, 0xf2, 0xd3, 0xcc, 0xf9, 0xbf, 0xdc, 0xf8, 0xbb, 0x43, - /* (2^215)P */ 0xdf, 0xe9, 0x39, 0xa0, 0x67, 0x17, 0xad, 0xb6, 0x83, 0x35, 0x9d, 0xf6, 0xa8, 0x4d, 0x71, 0xb0, 0xf5, 0x31, 0x29, 0xb4, 0x18, 0xfa, 0x55, 0x5e, 0x61, 0x09, 0xc6, 0x33, 0x8f, 0x55, 0xd5, 0x4e, - /* (2^216)P */ 0xdd, 0xa5, 0x47, 0xc6, 0x01, 0x79, 0xe3, 0x1f, 0x57, 0xd3, 0x81, 0x80, 0x1f, 0xdf, 0x3d, 0x59, 0xa6, 0xd7, 0x3f, 0x81, 0xfd, 0xa4, 0x49, 0x02, 0x61, 0xaf, 0x9c, 0x4e, 0x27, 0xca, 0xac, 0x69, - /* (2^217)P */ 0xc9, 0x21, 0x07, 0x33, 0xea, 0xa3, 0x7b, 0x04, 0xa0, 0x1e, 0x7e, 0x0e, 0xc2, 0x3f, 0x42, 0x83, 0x60, 0x4a, 0x31, 0x01, 0xaf, 0xc0, 0xf4, 0x1d, 0x27, 0x95, 0x28, 0x89, 0xab, 0x2d, 0xa6, 0x09, - /* (2^218)P */ 0x00, 0xcb, 0xc6, 0x9c, 0xa4, 0x25, 0xb3, 0xa5, 0xb6, 0x6c, 0xb5, 0x54, 0xc6, 0x5d, 0x4b, 0xe9, 0xa0, 0x94, 0xc9, 0xad, 0x79, 0x87, 0xe2, 0x3b, 0xad, 0x4a, 0x3a, 0xba, 0xf8, 0xe8, 0x96, 0x42, - /* (2^219)P */ 0xab, 0x1e, 0x45, 0x1e, 0x76, 0x89, 0x86, 0x32, 0x4a, 0x59, 0x59, 0xff, 0x8b, 0x59, 0x4d, 0x2e, 0x4a, 0x08, 0xa7, 0xd7, 0x53, 0x68, 0xb9, 0x49, 0xa8, 0x20, 0x14, 0x60, 0x19, 0xa3, 0x80, 0x49, - /* (2^220)P */ 0x42, 0x2c, 0x55, 0x2f, 0xe1, 0xb9, 0x65, 0x95, 0x96, 0xfe, 0x00, 0x71, 0xdb, 0x18, 0x53, 0x8a, 0xd7, 0xd0, 0xad, 0x43, 0x4d, 0x0b, 0xc9, 0x05, 0xda, 0x4e, 0x5d, 0x6a, 0xd6, 0x4c, 0x8b, 0x53, - /* (2^221)P */ 0x9f, 0x03, 0x9f, 0xe8, 0xc3, 0x4f, 0xe9, 0xf4, 0x45, 0x80, 0x61, 0x6f, 0xf2, 0x9a, 0x2c, 0x59, 0x50, 0x95, 0x4b, 0xfd, 0xb5, 0x6e, 0xa3, 0x08, 0x19, 0x14, 0xed, 0xc2, 0xf6, 0xfa, 0xff, 0x25, - /* (2^222)P */ 0x54, 0xd3, 0x79, 0xcc, 0x59, 0x44, 0x43, 0x34, 0x6b, 0x47, 0xd5, 0xb1, 0xb4, 0xbf, 0xec, 0xee, 0x99, 0x5d, 0x61, 0x61, 0xa0, 0x34, 0xeb, 0xdd, 0x73, 0xb7, 0x64, 0xeb, 0xcc, 0xce, 0x29, 0x51, - /* (2^223)P */ 0x20, 0x35, 0x99, 0x94, 0x58, 0x21, 0x43, 0xee, 0x3b, 0x0b, 0x4c, 0xf1, 0x7c, 0x9c, 0x2f, 0x77, 0xd5, 0xda, 0xbe, 0x06, 0xe3, 0xfc, 0xe2, 0xd2, 0x97, 0x6a, 0xf0, 0x46, 0xb5, 0x42, 0x5f, 0x71, - /* (2^224)P */ 0x1a, 0x5f, 0x5b, 0xda, 0xce, 0xcd, 0x4e, 0x43, 0xa9, 0x41, 0x97, 0xa4, 0x15, 0x71, 0xa1, 0x0d, 0x2e, 0xad, 0xed, 0x73, 0x7c, 0xd7, 0x0b, 0x68, 0x41, 0x90, 0xdd, 0x4e, 0x35, 0x02, 0x7c, 0x48, - /* (2^225)P */ 0xc4, 0xd9, 0x0e, 0xa7, 0xf3, 0xef, 0xef, 0xb8, 0x02, 0xe3, 0x57, 0xe8, 0xa3, 0x2a, 0xa3, 0x56, 0xa0, 0xa5, 0xa2, 0x48, 0xbd, 0x68, 0x3a, 0xdf, 0x44, 0xc4, 0x76, 0x31, 0xb7, 0x50, 0xf6, 0x07, - /* (2^226)P */ 0xb1, 0xcc, 0xe0, 0x26, 0x16, 0x9b, 0x8b, 0xe3, 0x36, 0xfb, 0x09, 0x8b, 0xc1, 0x53, 0xe0, 0x79, 0x64, 0x49, 0xf9, 0xc9, 0x19, 0x03, 0xd9, 0x56, 0xc4, 0xf5, 0x9f, 0xac, 0xe7, 0x41, 0xa9, 0x1c, - /* (2^227)P */ 0xbb, 0xa0, 0x2f, 0x16, 0x29, 0xdf, 0xc4, 0x49, 0x05, 0x33, 0xb3, 0x82, 0x32, 0xcf, 0x88, 0x84, 0x7d, 0x43, 0xbb, 0xca, 0x14, 0xda, 0xdf, 0x95, 0x86, 0xad, 0xd5, 0x64, 0x82, 0xf7, 0x91, 0x33, - /* (2^228)P */ 0x5d, 0x09, 0xb5, 0xe2, 0x6a, 0xe0, 0x9a, 0x72, 0x46, 0xa9, 0x59, 0x32, 0xd7, 0x58, 0x8a, 0xd5, 0xed, 0x21, 0x39, 0xd1, 0x62, 0x42, 0x83, 0xe9, 0x92, 0xb5, 0x4b, 0xa5, 0xfa, 0xda, 0xfe, 0x27, - /* (2^229)P */ 0xbb, 0x48, 0xad, 0x29, 0xb8, 0xc5, 0x9d, 0xa9, 0x60, 0xe2, 0x9e, 0x49, 0x42, 0x57, 0x02, 0x5f, 0xfd, 0x13, 0x75, 0x5d, 0xcd, 0x8e, 0x2c, 0x80, 0x38, 0xd9, 0x6d, 0x3f, 0xef, 0xb3, 0xce, 0x78, - /* (2^230)P */ 0x94, 0x5d, 0x13, 0x8a, 0x4f, 0xf4, 0x42, 0xc3, 0xa3, 0xdd, 0x8c, 0x82, 0x44, 0xdb, 0x9e, 0x7b, 0xe7, 0xcf, 0x37, 0x05, 0x1a, 0xd1, 0x36, 0x94, 0xc8, 0xb4, 0x1a, 0xec, 0x64, 0xb1, 0x64, 0x50, - /* (2^231)P */ 0xfc, 0xb2, 0x7e, 0xd3, 0xcf, 0xec, 0x20, 0x70, 0xfc, 0x25, 0x0d, 0xd9, 0x3e, 0xea, 0x31, 0x1f, 0x34, 0xbb, 0xa1, 0xdf, 0x7b, 0x0d, 0x93, 0x1b, 0x44, 0x30, 0x11, 0x48, 0x7a, 0x46, 0x44, 0x53, - /* (2^232)P */ 0xfb, 0x6d, 0x5e, 0xf2, 0x70, 0x31, 0x07, 0x70, 0xc8, 0x4c, 0x11, 0x50, 0x1a, 0xdc, 0x85, 0xe3, 0x00, 0x4f, 0xfc, 0xc8, 0x8a, 0x69, 0x48, 0x23, 0xd8, 0x40, 0xdd, 0x84, 0x52, 0xa5, 0x77, 0x2a, - /* (2^233)P */ 0xe4, 0x6c, 0x8c, 0xc9, 0xe0, 0xaf, 0x06, 0xfe, 0xe4, 0xd6, 0xdf, 0xdd, 0x96, 0xdf, 0x35, 0xc2, 0xd3, 0x1e, 0xbf, 0x33, 0x1e, 0xd0, 0x28, 0x14, 0xaf, 0xbd, 0x00, 0x93, 0xec, 0x68, 0x57, 0x78, - /* (2^234)P */ 0x3b, 0xb6, 0xde, 0x91, 0x7a, 0xe5, 0x02, 0x97, 0x80, 0x8b, 0xce, 0xe5, 0xbf, 0xb8, 0xbd, 0x61, 0xac, 0x58, 0x1d, 0x3d, 0x6f, 0x42, 0x5b, 0x64, 0xbc, 0x57, 0xa5, 0x27, 0x22, 0xa8, 0x04, 0x48, - /* (2^235)P */ 0x01, 0x26, 0x4d, 0xb4, 0x8a, 0x04, 0x57, 0x8e, 0x35, 0x69, 0x3a, 0x4b, 0x1a, 0x50, 0xd6, 0x68, 0x93, 0xc2, 0xe1, 0xf9, 0xc3, 0x9e, 0x9c, 0xc3, 0xe2, 0x63, 0xde, 0xd4, 0x57, 0xf2, 0x72, 0x41, - /* (2^236)P */ 0x01, 0x64, 0x0c, 0x33, 0x50, 0xb4, 0x68, 0xd3, 0x91, 0x23, 0x8f, 0x41, 0x17, 0x30, 0x0d, 0x04, 0x0d, 0xd9, 0xb7, 0x90, 0x60, 0xbb, 0x34, 0x2c, 0x1f, 0xd5, 0xdf, 0x8f, 0x22, 0x49, 0xf6, 0x16, - /* (2^237)P */ 0xf5, 0x8e, 0x92, 0x2b, 0x8e, 0x81, 0xa6, 0xbe, 0x72, 0x1e, 0xc1, 0xcd, 0x91, 0xcf, 0x8c, 0xe2, 0xcd, 0x36, 0x7a, 0xe7, 0x68, 0xaa, 0x4a, 0x59, 0x0f, 0xfd, 0x7f, 0x6c, 0x80, 0x34, 0x30, 0x31, - /* (2^238)P */ 0x65, 0xbd, 0x49, 0x22, 0xac, 0x27, 0x9d, 0x8a, 0x12, 0x95, 0x8e, 0x01, 0x64, 0xb4, 0xa3, 0x19, 0xc7, 0x7e, 0xb3, 0x52, 0xf3, 0xcf, 0x6c, 0xc2, 0x21, 0x7b, 0x79, 0x1d, 0x34, 0x68, 0x6f, 0x05, - /* (2^239)P */ 0x27, 0x23, 0xfd, 0x7e, 0x75, 0xd6, 0x79, 0x5e, 0x15, 0xfe, 0x3a, 0x55, 0xb6, 0xbc, 0xbd, 0xfa, 0x60, 0x5a, 0xaf, 0x6e, 0x2c, 0x22, 0xe7, 0xd3, 0x3b, 0x74, 0xae, 0x4d, 0x6d, 0xc7, 0x46, 0x70, - /* (2^240)P */ 0x55, 0x4a, 0x8d, 0xb1, 0x72, 0xe8, 0x0b, 0x66, 0x96, 0x14, 0x4e, 0x57, 0x18, 0x25, 0x99, 0x19, 0xbb, 0xdc, 0x2b, 0x30, 0x3a, 0x05, 0x03, 0xc1, 0x8e, 0x8e, 0x21, 0x0b, 0x80, 0xe9, 0xd8, 0x3e, - /* (2^241)P */ 0x3e, 0xe0, 0x75, 0xfa, 0x39, 0x92, 0x0b, 0x7b, 0x83, 0xc0, 0x33, 0x46, 0x68, 0xfb, 0xe9, 0xef, 0x93, 0x77, 0x1a, 0x39, 0xbe, 0x5f, 0xa3, 0x98, 0x34, 0xfe, 0xd0, 0xe2, 0x0f, 0x51, 0x65, 0x60, - /* (2^242)P */ 0x0c, 0xad, 0xab, 0x48, 0x85, 0x66, 0xcb, 0x55, 0x27, 0xe5, 0x87, 0xda, 0x48, 0x45, 0x58, 0xb4, 0xdd, 0xc1, 0x07, 0x01, 0xea, 0xec, 0x43, 0x2c, 0x35, 0xde, 0x72, 0x93, 0x80, 0x28, 0x60, 0x52, - /* (2^243)P */ 0x1f, 0x3b, 0x21, 0xf9, 0x6a, 0xc5, 0x15, 0x34, 0xdb, 0x98, 0x7e, 0x01, 0x4d, 0x1a, 0xee, 0x5b, 0x9b, 0x70, 0xcf, 0xb5, 0x05, 0xb1, 0xf6, 0x13, 0xb6, 0x9a, 0xb2, 0x82, 0x34, 0x0e, 0xf2, 0x5f, - /* (2^244)P */ 0x90, 0x6c, 0x2e, 0xcc, 0x75, 0x9c, 0xa2, 0x0a, 0x06, 0xe2, 0x70, 0x3a, 0xca, 0x73, 0x7d, 0xfc, 0x15, 0xc5, 0xb5, 0xc4, 0x8f, 0xc3, 0x9f, 0x89, 0x07, 0xc2, 0xff, 0x24, 0xb1, 0x86, 0x03, 0x25, - /* (2^245)P */ 0x56, 0x2b, 0x3d, 0xae, 0xd5, 0x28, 0xea, 0x54, 0xce, 0x60, 0xde, 0xd6, 0x9d, 0x14, 0x13, 0x99, 0xc1, 0xd6, 0x06, 0x8f, 0xc5, 0x4f, 0x69, 0x16, 0xc7, 0x8f, 0x01, 0xeb, 0x75, 0x39, 0xb2, 0x46, - /* (2^246)P */ 0xe2, 0xb4, 0xb7, 0xb4, 0x0f, 0x6a, 0x0a, 0x47, 0xde, 0x53, 0x72, 0x8f, 0x5a, 0x47, 0x92, 0x5d, 0xdb, 0x3a, 0xbd, 0x2f, 0xb5, 0xe5, 0xee, 0xab, 0x68, 0x69, 0x80, 0xa0, 0x01, 0x08, 0xa2, 0x7f, - /* (2^247)P */ 0xd2, 0x14, 0x77, 0x9f, 0xf1, 0xfa, 0xf3, 0x76, 0xc3, 0x60, 0x46, 0x2f, 0xc1, 0x40, 0xe8, 0xb3, 0x4e, 0x74, 0x12, 0xf2, 0x8d, 0xcd, 0xb4, 0x0f, 0xd2, 0x2d, 0x3a, 0x1d, 0x25, 0x5a, 0x06, 0x4b, - /* (2^248)P */ 0x4a, 0xcd, 0x77, 0x3d, 0x38, 0xde, 0xeb, 0x5c, 0xb1, 0x9c, 0x2c, 0x88, 0xdf, 0x39, 0xdf, 0x6a, 0x59, 0xf7, 0x9a, 0xb0, 0x2e, 0x24, 0xdd, 0xa2, 0x22, 0x64, 0x5f, 0x0e, 0xe5, 0xc0, 0x47, 0x31, - /* (2^249)P */ 0xdb, 0x50, 0x13, 0x1d, 0x10, 0xa5, 0x4c, 0x16, 0x62, 0xc9, 0x3f, 0xc3, 0x79, 0x34, 0xd1, 0xf8, 0x08, 0xda, 0xe5, 0x13, 0x4d, 0xce, 0x40, 0xe6, 0xba, 0xf8, 0x61, 0x50, 0xc4, 0xe0, 0xde, 0x4b, - /* (2^250)P */ 0xc9, 0xb1, 0xed, 0xa4, 0xc1, 0x6d, 0xc4, 0xd7, 0x8a, 0xd9, 0x7f, 0x43, 0xb6, 0xd7, 0x14, 0x55, 0x0b, 0xc0, 0xa1, 0xb2, 0x6b, 0x2f, 0x94, 0x58, 0x0e, 0x71, 0x70, 0x1d, 0xab, 0xb2, 0xff, 0x2d, - /* (2^251)P */ 0x68, 0x6d, 0x8b, 0xc1, 0x2f, 0xcf, 0xdf, 0xcc, 0x67, 0x61, 0x80, 0xb7, 0xa8, 0xcb, 0xeb, 0xa8, 0xe3, 0x37, 0x29, 0x5e, 0xf9, 0x97, 0x06, 0x98, 0x8c, 0x6e, 0x12, 0xd0, 0x1c, 0xba, 0xfb, 0x02, - /* (2^252)P */ 0x65, 0x45, 0xff, 0xad, 0x60, 0xc3, 0x98, 0xcb, 0x19, 0x15, 0xdb, 0x4b, 0xd2, 0x01, 0x71, 0x44, 0xd5, 0x15, 0xfb, 0x75, 0x74, 0xc8, 0xc4, 0x98, 0x7d, 0xa2, 0x22, 0x6e, 0x6d, 0xc7, 0xf8, 0x05, - /* (2^253)P */ 0x94, 0xf4, 0xb9, 0xfe, 0xdf, 0xe5, 0x69, 0xab, 0x75, 0x6b, 0x40, 0x18, 0x9d, 0xc7, 0x09, 0xae, 0x1d, 0x2d, 0xa4, 0x94, 0xfb, 0x45, 0x9b, 0x19, 0x84, 0xfa, 0x2a, 0xae, 0xeb, 0x0a, 0x71, 0x79, - /* (2^254)P */ 0xdf, 0xd2, 0x34, 0xf3, 0xa7, 0xed, 0xad, 0xa6, 0xb4, 0x57, 0x2a, 0xaf, 0x51, 0x9c, 0xde, 0x7b, 0xa8, 0xea, 0xdc, 0x86, 0x4f, 0xc6, 0x8f, 0xa9, 0x7b, 0xd0, 0x0e, 0xc2, 0x35, 0x03, 0xbe, 0x6b, - /* (2^255)P */ 0x44, 0x43, 0x98, 0x53, 0xbe, 0xdc, 0x7f, 0x66, 0xa8, 0x49, 0x59, 0x00, 0x1c, 0xbc, 0x72, 0x07, 0x8e, 0xd6, 0xbe, 0x4e, 0x9f, 0xa4, 0x07, 0xba, 0xbf, 0x30, 0xdf, 0xba, 0x85, 0xb0, 0xa7, 0x1f, -} diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve.go b/vendor/github.com/cloudflare/circl/dh/x448/curve.go deleted file mode 100644 index d59564e4b4..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x448/curve.go +++ /dev/null @@ -1,104 +0,0 @@ -package x448 - -import ( - fp "github.com/cloudflare/circl/math/fp448" -) - -// ladderJoye calculates a fixed-point multiplication with the generator point. -// The algorithm is the right-to-left Joye's ladder as described -// in "How to precompute a ladder" in SAC'2017. -func ladderJoye(k *Key) { - w := [5]fp.Elt{} // [mu,x1,z1,x2,z2] order must be preserved. - w[1] = fp.Elt{ // x1 = S - 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - } - fp.SetOne(&w[2]) // z1 = 1 - w[3] = fp.Elt{ // x2 = G-S - 0x20, 0x27, 0x9d, 0xc9, 0x7d, 0x19, 0xb1, 0xac, - 0xf8, 0xba, 0x69, 0x1c, 0xff, 0x33, 0xac, 0x23, - 0x51, 0x1b, 0xce, 0x3a, 0x64, 0x65, 0xbd, 0xf1, - 0x23, 0xf8, 0xc1, 0x84, 0x9d, 0x45, 0x54, 0x29, - 0x67, 0xb9, 0x81, 0x1c, 0x03, 0xd1, 0xcd, 0xda, - 0x7b, 0xeb, 0xff, 0x1a, 0x88, 0x03, 0xcf, 0x3a, - 0x42, 0x44, 0x32, 0x01, 0x25, 0xb7, 0xfa, 0xf0, - } - fp.SetOne(&w[4]) // z2 = 1 - - const n = 448 - const h = 2 - swap := uint(1) - for s := 0; s < n-h; s++ { - i := (s + h) / 8 - j := (s + h) % 8 - bit := uint((k[i] >> uint(j)) & 1) - copy(w[0][:], tableGenerator[s*Size:(s+1)*Size]) - diffAdd(&w, swap^bit) - swap = bit - } - for s := 0; s < h; s++ { - double(&w[1], &w[2]) - } - toAffine((*[fp.Size]byte)(k), &w[1], &w[2]) -} - -// ladderMontgomery calculates a generic scalar point multiplication -// The algorithm implemented is the left-to-right Montgomery's ladder. -func ladderMontgomery(k, xP *Key) { - w := [5]fp.Elt{} // [x1, x2, z2, x3, z3] order must be preserved. - w[0] = *(*fp.Elt)(xP) // x1 = xP - fp.SetOne(&w[1]) // x2 = 1 - w[3] = *(*fp.Elt)(xP) // x3 = xP - fp.SetOne(&w[4]) // z3 = 1 - - move := uint(0) - for s := 448 - 1; s >= 0; s-- { - i := s / 8 - j := s % 8 - bit := uint((k[i] >> uint(j)) & 1) - ladderStep(&w, move^bit) - move = bit - } - toAffine((*[fp.Size]byte)(k), &w[1], &w[2]) -} - -func toAffine(k *[fp.Size]byte, x, z *fp.Elt) { - fp.Inv(z, z) - fp.Mul(x, x, z) - _ = fp.ToBytes(k[:], x) -} - -var lowOrderPoints = [3]fp.Elt{ - { /* (0,_,1) point of order 2 on Curve448 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { /* (1,_,1) a point of order 4 on the twist of Curve448 */ - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - { /* (-1,_,1) point of order 4 on Curve448 */ - 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - }, -} diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.go b/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.go deleted file mode 100644 index 7531e8647d..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.go +++ /dev/null @@ -1,31 +0,0 @@ -//go:build amd64 && !purego -// +build amd64,!purego - -package x448 - -import ( - "golang.org/x/sys/cpu" - - fp "github.com/cloudflare/circl/math/fp448" -) - -var hasBmi2Adx = cpu.X86.HasBMI2 && cpu.X86.HasADX - -var _ = hasBmi2Adx - -func double(x, z *fp.Elt) { doubleAmd64(x, z) } -func diffAdd(w *[5]fp.Elt, b uint) { diffAddAmd64(w, b) } -func ladderStep(w *[5]fp.Elt, b uint) { ladderStepAmd64(w, b) } -func mulA24(z, x *fp.Elt) { mulA24Amd64(z, x) } - -//go:noescape -func doubleAmd64(x, z *fp.Elt) - -//go:noescape -func diffAddAmd64(w *[5]fp.Elt, b uint) - -//go:noescape -func ladderStepAmd64(w *[5]fp.Elt, b uint) - -//go:noescape -func mulA24Amd64(z, x *fp.Elt) diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.h b/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.h deleted file mode 100644 index 8c1ae4d0fb..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.h +++ /dev/null @@ -1,111 +0,0 @@ -#define ladderStepLeg \ - addSub(x2,z2) \ - addSub(x3,z3) \ - integerMulLeg(b0,x2,z3) \ - integerMulLeg(b1,x3,z2) \ - reduceFromDoubleLeg(t0,b0) \ - reduceFromDoubleLeg(t1,b1) \ - addSub(t0,t1) \ - cselect(x2,x3,regMove) \ - cselect(z2,z3,regMove) \ - integerSqrLeg(b0,t0) \ - integerSqrLeg(b1,t1) \ - reduceFromDoubleLeg(x3,b0) \ - reduceFromDoubleLeg(z3,b1) \ - integerMulLeg(b0,x1,z3) \ - reduceFromDoubleLeg(z3,b0) \ - integerSqrLeg(b0,x2) \ - integerSqrLeg(b1,z2) \ - reduceFromDoubleLeg(x2,b0) \ - reduceFromDoubleLeg(z2,b1) \ - subtraction(t0,x2,z2) \ - multiplyA24Leg(t1,t0) \ - additionLeg(t1,t1,z2) \ - integerMulLeg(b0,x2,z2) \ - integerMulLeg(b1,t0,t1) \ - reduceFromDoubleLeg(x2,b0) \ - reduceFromDoubleLeg(z2,b1) - -#define ladderStepBmi2Adx \ - addSub(x2,z2) \ - addSub(x3,z3) \ - integerMulAdx(b0,x2,z3) \ - integerMulAdx(b1,x3,z2) \ - reduceFromDoubleAdx(t0,b0) \ - reduceFromDoubleAdx(t1,b1) \ - addSub(t0,t1) \ - cselect(x2,x3,regMove) \ - cselect(z2,z3,regMove) \ - integerSqrAdx(b0,t0) \ - integerSqrAdx(b1,t1) \ - reduceFromDoubleAdx(x3,b0) \ - reduceFromDoubleAdx(z3,b1) \ - integerMulAdx(b0,x1,z3) \ - reduceFromDoubleAdx(z3,b0) \ - integerSqrAdx(b0,x2) \ - integerSqrAdx(b1,z2) \ - reduceFromDoubleAdx(x2,b0) \ - reduceFromDoubleAdx(z2,b1) \ - subtraction(t0,x2,z2) \ - multiplyA24Adx(t1,t0) \ - additionAdx(t1,t1,z2) \ - integerMulAdx(b0,x2,z2) \ - integerMulAdx(b1,t0,t1) \ - reduceFromDoubleAdx(x2,b0) \ - reduceFromDoubleAdx(z2,b1) - -#define difAddLeg \ - addSub(x1,z1) \ - integerMulLeg(b0,z1,ui) \ - reduceFromDoubleLeg(z1,b0) \ - addSub(x1,z1) \ - integerSqrLeg(b0,x1) \ - integerSqrLeg(b1,z1) \ - reduceFromDoubleLeg(x1,b0) \ - reduceFromDoubleLeg(z1,b1) \ - integerMulLeg(b0,x1,z2) \ - integerMulLeg(b1,z1,x2) \ - reduceFromDoubleLeg(x1,b0) \ - reduceFromDoubleLeg(z1,b1) - -#define difAddBmi2Adx \ - addSub(x1,z1) \ - integerMulAdx(b0,z1,ui) \ - reduceFromDoubleAdx(z1,b0) \ - addSub(x1,z1) \ - integerSqrAdx(b0,x1) \ - integerSqrAdx(b1,z1) \ - reduceFromDoubleAdx(x1,b0) \ - reduceFromDoubleAdx(z1,b1) \ - integerMulAdx(b0,x1,z2) \ - integerMulAdx(b1,z1,x2) \ - reduceFromDoubleAdx(x1,b0) \ - reduceFromDoubleAdx(z1,b1) - -#define doubleLeg \ - addSub(x1,z1) \ - integerSqrLeg(b0,x1) \ - integerSqrLeg(b1,z1) \ - reduceFromDoubleLeg(x1,b0) \ - reduceFromDoubleLeg(z1,b1) \ - subtraction(t0,x1,z1) \ - multiplyA24Leg(t1,t0) \ - additionLeg(t1,t1,z1) \ - integerMulLeg(b0,x1,z1) \ - integerMulLeg(b1,t0,t1) \ - reduceFromDoubleLeg(x1,b0) \ - reduceFromDoubleLeg(z1,b1) - -#define doubleBmi2Adx \ - addSub(x1,z1) \ - integerSqrAdx(b0,x1) \ - integerSqrAdx(b1,z1) \ - reduceFromDoubleAdx(x1,b0) \ - reduceFromDoubleAdx(z1,b1) \ - subtraction(t0,x1,z1) \ - multiplyA24Adx(t1,t0) \ - additionAdx(t1,t1,z1) \ - integerMulAdx(b0,x1,z1) \ - integerMulAdx(b1,t0,t1) \ - reduceFromDoubleAdx(x1,b0) \ - reduceFromDoubleAdx(z1,b1) diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.s b/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.s deleted file mode 100644 index 810aa9e648..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x448/curve_amd64.s +++ /dev/null @@ -1,193 +0,0 @@ -// +build amd64 - -#include "textflag.h" - -// Depends on circl/math/fp448 package -#include "../../math/fp448/fp_amd64.h" -#include "curve_amd64.h" - -// CTE_A24 is (A+2)/4 from Curve448 -#define CTE_A24 39082 - -#define Size 56 - -// multiplyA24Leg multiplies x times CTE_A24 and stores in z -// Uses: AX, DX, R8-R15, FLAGS -// Instr: x86_64, cmov, adx -#define multiplyA24Leg(z,x) \ - MOVQ $CTE_A24, R15; \ - MOVQ 0+x, AX; MULQ R15; MOVQ AX, R8; ;;;;;;;;;;;; MOVQ DX, R9; \ - MOVQ 8+x, AX; MULQ R15; ADDQ AX, R9; ADCQ $0, DX; MOVQ DX, R10; \ - MOVQ 16+x, AX; MULQ R15; ADDQ AX, R10; ADCQ $0, DX; MOVQ DX, R11; \ - MOVQ 24+x, AX; MULQ R15; ADDQ AX, R11; ADCQ $0, DX; MOVQ DX, R12; \ - MOVQ 32+x, AX; MULQ R15; ADDQ AX, R12; ADCQ $0, DX; MOVQ DX, R13; \ - MOVQ 40+x, AX; MULQ R15; ADDQ AX, R13; ADCQ $0, DX; MOVQ DX, R14; \ - MOVQ 48+x, AX; MULQ R15; ADDQ AX, R14; ADCQ $0, DX; \ - MOVQ DX, AX; \ - SHLQ $32, AX; \ - ADDQ DX, R8; MOVQ $0, DX; \ - ADCQ $0, R9; \ - ADCQ $0, R10; \ - ADCQ AX, R11; \ - ADCQ $0, R12; \ - ADCQ $0, R13; \ - ADCQ $0, R14; \ - ADCQ $0, DX; \ - MOVQ DX, AX; \ - SHLQ $32, AX; \ - ADDQ DX, R8; \ - ADCQ $0, R9; \ - ADCQ $0, R10; \ - ADCQ AX, R11; \ - ADCQ $0, R12; \ - ADCQ $0, R13; \ - ADCQ $0, R14; \ - MOVQ R8, 0+z; \ - MOVQ R9, 8+z; \ - MOVQ R10, 16+z; \ - MOVQ R11, 24+z; \ - MOVQ R12, 32+z; \ - MOVQ R13, 40+z; \ - MOVQ R14, 48+z; - -// multiplyA24Adx multiplies x times CTE_A24 and stores in z -// Uses: AX, DX, R8-R14, FLAGS -// Instr: x86_64, bmi2 -#define multiplyA24Adx(z,x) \ - MOVQ $CTE_A24, DX; \ - MULXQ 0+x, R8, R9; \ - MULXQ 8+x, AX, R10; ADDQ AX, R9; \ - MULXQ 16+x, AX, R11; ADCQ AX, R10; \ - MULXQ 24+x, AX, R12; ADCQ AX, R11; \ - MULXQ 32+x, AX, R13; ADCQ AX, R12; \ - MULXQ 40+x, AX, R14; ADCQ AX, R13; \ - MULXQ 48+x, AX, DX; ADCQ AX, R14; \ - ;;;;;;;;;;;;;;;;;;;; ADCQ $0, DX; \ - MOVQ DX, AX; \ - SHLQ $32, AX; \ - ADDQ DX, R8; MOVQ $0, DX; \ - ADCQ $0, R9; \ - ADCQ $0, R10; \ - ADCQ AX, R11; \ - ADCQ $0, R12; \ - ADCQ $0, R13; \ - ADCQ $0, R14; \ - ADCQ $0, DX; \ - MOVQ DX, AX; \ - SHLQ $32, AX; \ - ADDQ DX, R8; \ - ADCQ $0, R9; \ - ADCQ $0, R10; \ - ADCQ AX, R11; \ - ADCQ $0, R12; \ - ADCQ $0, R13; \ - ADCQ $0, R14; \ - MOVQ R8, 0+z; \ - MOVQ R9, 8+z; \ - MOVQ R10, 16+z; \ - MOVQ R11, 24+z; \ - MOVQ R12, 32+z; \ - MOVQ R13, 40+z; \ - MOVQ R14, 48+z; - -#define mulA24Legacy \ - multiplyA24Leg(0(DI),0(SI)) -#define mulA24Bmi2Adx \ - multiplyA24Adx(0(DI),0(SI)) - -// func mulA24Amd64(z, x *fp448.Elt) -TEXT ·mulA24Amd64(SB),NOSPLIT,$0-16 - MOVQ z+0(FP), DI - MOVQ x+8(FP), SI - CHECK_BMI2ADX(LMA24, mulA24Legacy, mulA24Bmi2Adx) - -// func ladderStepAmd64(w *[5]fp448.Elt, b uint) -// ladderStepAmd64 calculates a point addition and doubling as follows: -// (x2,z2) = 2*(x2,z2) and (x3,z3) = (x2,z2)+(x3,z3) using as a difference (x1,-). -// w = {x1,x2,z2,x3,z4} are five fp255.Elt of 56 bytes. -// stack = (t0,t1) are two fp.Elt of fp.Size bytes, and -// (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. -TEXT ·ladderStepAmd64(SB),NOSPLIT,$336-16 - // Parameters - #define regWork DI - #define regMove SI - #define x1 0*Size(regWork) - #define x2 1*Size(regWork) - #define z2 2*Size(regWork) - #define x3 3*Size(regWork) - #define z3 4*Size(regWork) - // Local variables - #define t0 0*Size(SP) - #define t1 1*Size(SP) - #define b0 2*Size(SP) - #define b1 4*Size(SP) - MOVQ w+0(FP), regWork - MOVQ b+8(FP), regMove - CHECK_BMI2ADX(LLADSTEP, ladderStepLeg, ladderStepBmi2Adx) - #undef regWork - #undef regMove - #undef x1 - #undef x2 - #undef z2 - #undef x3 - #undef z3 - #undef t0 - #undef t1 - #undef b0 - #undef b1 - -// func diffAddAmd64(work *[5]fp.Elt, swap uint) -// diffAddAmd64 calculates a differential point addition using a precomputed point. -// (x1,z1) = (x1,z1)+(mu) using a difference point (x2,z2) -// work = {mu,x1,z1,x2,z2} are five fp448.Elt of 56 bytes, and -// stack = (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. -// This is Equation 7 at https://eprint.iacr.org/2017/264. -TEXT ·diffAddAmd64(SB),NOSPLIT,$224-16 - // Parameters - #define regWork DI - #define regSwap SI - #define ui 0*Size(regWork) - #define x1 1*Size(regWork) - #define z1 2*Size(regWork) - #define x2 3*Size(regWork) - #define z2 4*Size(regWork) - // Local variables - #define b0 0*Size(SP) - #define b1 2*Size(SP) - MOVQ w+0(FP), regWork - MOVQ b+8(FP), regSwap - cswap(x1,x2,regSwap) - cswap(z1,z2,regSwap) - CHECK_BMI2ADX(LDIFADD, difAddLeg, difAddBmi2Adx) - #undef regWork - #undef regSwap - #undef ui - #undef x1 - #undef z1 - #undef x2 - #undef z2 - #undef b0 - #undef b1 - -// func doubleAmd64(x, z *fp448.Elt) -// doubleAmd64 calculates a point doubling (x1,z1) = 2*(x1,z1). -// stack = (t0,t1) are two fp.Elt of fp.Size bytes, and -// (b0,b1) are two-double precision fp.Elt of 2*fp.Size bytes. -TEXT ·doubleAmd64(SB),NOSPLIT,$336-16 - // Parameters - #define x1 0(DI) - #define z1 0(SI) - // Local variables - #define t0 0*Size(SP) - #define t1 1*Size(SP) - #define b0 2*Size(SP) - #define b1 4*Size(SP) - MOVQ x+0(FP), DI - MOVQ z+8(FP), SI - CHECK_BMI2ADX(LDOUB,doubleLeg,doubleBmi2Adx) - #undef x1 - #undef z1 - #undef t0 - #undef t1 - #undef b0 - #undef b1 diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve_generic.go b/vendor/github.com/cloudflare/circl/dh/x448/curve_generic.go deleted file mode 100644 index c66d559ae7..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x448/curve_generic.go +++ /dev/null @@ -1,97 +0,0 @@ -package x448 - -import ( - "encoding/binary" - "math/bits" - - "github.com/cloudflare/circl/math/fp448" -) - -func doubleGeneric(x, z *fp448.Elt) { - t0, t1 := &fp448.Elt{}, &fp448.Elt{} - fp448.AddSub(x, z) - fp448.Sqr(x, x) - fp448.Sqr(z, z) - fp448.Sub(t0, x, z) - mulA24Generic(t1, t0) - fp448.Add(t1, t1, z) - fp448.Mul(x, x, z) - fp448.Mul(z, t0, t1) -} -func diffAddGeneric(w *[5]fp448.Elt, b uint) { - mu, x1, z1, x2, z2 := &w[0], &w[1], &w[2], &w[3], &w[4] - fp448.Cswap(x1, x2, b) - fp448.Cswap(z1, z2, b) - fp448.AddSub(x1, z1) - fp448.Mul(z1, z1, mu) - fp448.AddSub(x1, z1) - fp448.Sqr(x1, x1) - fp448.Sqr(z1, z1) - fp448.Mul(x1, x1, z2) - fp448.Mul(z1, z1, x2) -} -func ladderStepGeneric(w *[5]fp448.Elt, b uint) { - x1, x2, z2, x3, z3 := &w[0], &w[1], &w[2], &w[3], &w[4] - t0 := &fp448.Elt{} - t1 := &fp448.Elt{} - fp448.AddSub(x2, z2) - fp448.AddSub(x3, z3) - fp448.Mul(t0, x2, z3) - fp448.Mul(t1, x3, z2) - fp448.AddSub(t0, t1) - fp448.Cmov(x2, x3, b) - fp448.Cmov(z2, z3, b) - fp448.Sqr(x3, t0) - fp448.Sqr(z3, t1) - fp448.Mul(z3, x1, z3) - fp448.Sqr(x2, x2) - fp448.Sqr(z2, z2) - fp448.Sub(t0, x2, z2) - mulA24Generic(t1, t0) - fp448.Add(t1, t1, z2) - fp448.Mul(x2, x2, z2) - fp448.Mul(z2, t0, t1) -} -func mulA24Generic(z, x *fp448.Elt) { - const A24 = 39082 - const n = 8 - var xx [7]uint64 - for i := range xx { - xx[i] = binary.LittleEndian.Uint64(x[i*n : (i+1)*n]) - } - h0, l0 := bits.Mul64(xx[0], A24) - h1, l1 := bits.Mul64(xx[1], A24) - h2, l2 := bits.Mul64(xx[2], A24) - h3, l3 := bits.Mul64(xx[3], A24) - h4, l4 := bits.Mul64(xx[4], A24) - h5, l5 := bits.Mul64(xx[5], A24) - h6, l6 := bits.Mul64(xx[6], A24) - - l1, c0 := bits.Add64(h0, l1, 0) - l2, c1 := bits.Add64(h1, l2, c0) - l3, c2 := bits.Add64(h2, l3, c1) - l4, c3 := bits.Add64(h3, l4, c2) - l5, c4 := bits.Add64(h4, l5, c3) - l6, c5 := bits.Add64(h5, l6, c4) - l7, _ := bits.Add64(h6, 0, c5) - - l0, c0 = bits.Add64(l0, l7, 0) - l1, c1 = bits.Add64(l1, 0, c0) - l2, c2 = bits.Add64(l2, 0, c1) - l3, c3 = bits.Add64(l3, l7<<32, c2) - l4, c4 = bits.Add64(l4, 0, c3) - l5, c5 = bits.Add64(l5, 0, c4) - l6, l7 = bits.Add64(l6, 0, c5) - - xx[0], c0 = bits.Add64(l0, l7, 0) - xx[1], c1 = bits.Add64(l1, 0, c0) - xx[2], c2 = bits.Add64(l2, 0, c1) - xx[3], c3 = bits.Add64(l3, l7<<32, c2) - xx[4], c4 = bits.Add64(l4, 0, c3) - xx[5], c5 = bits.Add64(l5, 0, c4) - xx[6], _ = bits.Add64(l6, 0, c5) - - for i := range xx { - binary.LittleEndian.PutUint64(z[i*n:(i+1)*n], xx[i]) - } -} diff --git a/vendor/github.com/cloudflare/circl/dh/x448/curve_noasm.go b/vendor/github.com/cloudflare/circl/dh/x448/curve_noasm.go deleted file mode 100644 index 3755b7c83b..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x448/curve_noasm.go +++ /dev/null @@ -1,11 +0,0 @@ -//go:build !amd64 || purego -// +build !amd64 purego - -package x448 - -import fp "github.com/cloudflare/circl/math/fp448" - -func double(x, z *fp.Elt) { doubleGeneric(x, z) } -func diffAdd(w *[5]fp.Elt, b uint) { diffAddGeneric(w, b) } -func ladderStep(w *[5]fp.Elt, b uint) { ladderStepGeneric(w, b) } -func mulA24(z, x *fp.Elt) { mulA24Generic(z, x) } diff --git a/vendor/github.com/cloudflare/circl/dh/x448/doc.go b/vendor/github.com/cloudflare/circl/dh/x448/doc.go deleted file mode 100644 index 8b9279cba2..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x448/doc.go +++ /dev/null @@ -1,20 +0,0 @@ -/* -Package x448 provides Diffie-Hellman functions as specified in RFC-7748. - -Validation of public keys. - -The Diffie-Hellman function, as described in RFC-7748 [1], works for any -public key. However, if a different protocol requires contributory -behaviour [2,3], then the public keys must be validated against low-order -points [3,4]. To do that, the Shared function performs this validation -internally and returns false when the public key is invalid (i.e., it -is a low-order point). - -References: - - [1] RFC7748 by Langley, Hamburg, Turner (https://rfc-editor.org/rfc/rfc7748.txt) - - [2] Curve25519 by Bernstein (https://cr.yp.to/ecdh.html) - - [3] Bernstein (https://cr.yp.to/ecdh.html#validate) - - [4] Cremers&Jackson (https://eprint.iacr.org/2019/526) - -*/ -package x448 diff --git a/vendor/github.com/cloudflare/circl/dh/x448/key.go b/vendor/github.com/cloudflare/circl/dh/x448/key.go deleted file mode 100644 index 82a07a2bfe..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x448/key.go +++ /dev/null @@ -1,46 +0,0 @@ -package x448 - -import ( - "crypto/subtle" - - fp "github.com/cloudflare/circl/math/fp448" -) - -// Size is the length in bytes of a X448 key. -const Size = 56 - -// Key represents a X448 key. -type Key [Size]byte - -func (k *Key) clamp(in *Key) *Key { - *k = *in - k[0] &= 252 - k[55] |= 128 - return k -} - -// isValidPubKey verifies if the public key is not a low-order point. -func (k *Key) isValidPubKey() bool { - fp.Modp((*fp.Elt)(k)) - isLowOrder := false - for _, P := range lowOrderPoints { - isLowOrder = isLowOrder || subtle.ConstantTimeCompare(P[:], k[:]) != 0 - } - return !isLowOrder -} - -// KeyGen obtains a public key given a secret key. -func KeyGen(public, secret *Key) { - ladderJoye(public.clamp(secret)) -} - -// Shared calculates Alice's shared key from Alice's secret key and Bob's -// public key returning true on success. A failure case happens when the public -// key is a low-order point, thus the shared key is all-zeros and the function -// returns false. -func Shared(shared, secret, public *Key) bool { - validPk := *public - ok := validPk.isValidPubKey() - ladderMontgomery(shared.clamp(secret), &validPk) - return ok -} diff --git a/vendor/github.com/cloudflare/circl/dh/x448/table.go b/vendor/github.com/cloudflare/circl/dh/x448/table.go deleted file mode 100644 index 0638ebbab8..0000000000 --- a/vendor/github.com/cloudflare/circl/dh/x448/table.go +++ /dev/null @@ -1,458 +0,0 @@ -package x448 - -import fp "github.com/cloudflare/circl/math/fp448" - -// tableGenerator contains the set of points: -// t[i] = (xi+1)/(xi-1), -// where (xi,yi) = 2^iG and G is the generator point -// Size = (448)*(448/8) = 25088 bytes. -var tableGenerator = [448 * fp.Size]byte{ - /* (2^ 0)P */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, - /* (2^ 1)P */ 0x37, 0xfa, 0xaa, 0x0d, 0x86, 0xa6, 0x24, 0xe9, 0x6c, 0x95, 0x08, 0x34, 0xba, 0x1a, 0x81, 0x3a, 0xae, 0x01, 0xa5, 0xa7, 0x05, 0x85, 0x96, 0x00, 0x06, 0x5a, 0xd7, 0xff, 0xee, 0x8e, 0x8f, 0x94, 0xd2, 0xdc, 0xd7, 0xfc, 0xe7, 0xe5, 0x99, 0x1d, 0x05, 0x46, 0x43, 0xe8, 0xbc, 0x12, 0xb7, 0xeb, 0x30, 0x5e, 0x7a, 0x85, 0x68, 0xed, 0x9d, 0x28, - /* (2^ 2)P */ 0xf1, 0x7d, 0x08, 0x2b, 0x32, 0x4a, 0x62, 0x80, 0x36, 0xe7, 0xa4, 0x76, 0x5a, 0x2a, 0x1e, 0xf7, 0x9e, 0x3c, 0x40, 0x46, 0x9a, 0x1b, 0x61, 0xc1, 0xbf, 0x1a, 0x1b, 0xae, 0x91, 0x80, 0xa3, 0x76, 0x6c, 0xd4, 0x8f, 0xa4, 0xee, 0x26, 0x39, 0x23, 0xa4, 0x80, 0xf4, 0x66, 0x92, 0xe4, 0xe1, 0x18, 0x76, 0xc5, 0xe2, 0x19, 0x87, 0xd5, 0xc3, 0xe8, - /* (2^ 3)P */ 0xfb, 0xc9, 0xf0, 0x07, 0xf2, 0x93, 0xd8, 0x50, 0x36, 0xed, 0xfb, 0xbd, 0xb2, 0xd3, 0xfc, 0xdf, 0xd5, 0x2a, 0x6e, 0x26, 0x09, 0xce, 0xd4, 0x07, 0x64, 0x9f, 0x40, 0x74, 0xad, 0x98, 0x2f, 0x1c, 0xb6, 0xdc, 0x2d, 0x42, 0xff, 0xbf, 0x97, 0xd8, 0xdb, 0xef, 0x99, 0xca, 0x73, 0x99, 0x1a, 0x04, 0x3b, 0x56, 0x2c, 0x1f, 0x87, 0x9d, 0x9f, 0x03, - /* (2^ 4)P */ 0x4c, 0x35, 0x97, 0xf7, 0x81, 0x2c, 0x84, 0xa6, 0xe0, 0xcb, 0xce, 0x37, 0x4c, 0x21, 0x1c, 0x67, 0xfa, 0xab, 0x18, 0x4d, 0xef, 0xd0, 0xf0, 0x44, 0xa9, 0xfb, 0xc0, 0x8e, 0xda, 0x57, 0xa1, 0xd8, 0xeb, 0x87, 0xf4, 0x17, 0xea, 0x66, 0x0f, 0x16, 0xea, 0xcd, 0x5f, 0x3e, 0x88, 0xea, 0x09, 0x68, 0x40, 0xdf, 0x43, 0xcc, 0x54, 0x61, 0x58, 0xaa, - /* (2^ 5)P */ 0x8d, 0xe7, 0x59, 0xd7, 0x5e, 0x63, 0x37, 0xa7, 0x3f, 0xd1, 0x49, 0x85, 0x01, 0xdd, 0x5e, 0xb3, 0xe6, 0x29, 0xcb, 0x25, 0x93, 0xdd, 0x08, 0x96, 0x83, 0x52, 0x76, 0x85, 0xf5, 0x5d, 0x02, 0xbf, 0xe9, 0x6d, 0x15, 0x27, 0xc1, 0x09, 0xd1, 0x14, 0x4d, 0x6e, 0xe8, 0xaf, 0x59, 0x58, 0x34, 0x9d, 0x2a, 0x99, 0x85, 0x26, 0xbe, 0x4b, 0x1e, 0xb9, - /* (2^ 6)P */ 0x8d, 0xce, 0x94, 0xe2, 0x18, 0x56, 0x0d, 0x82, 0x8e, 0xdf, 0x85, 0x01, 0x8f, 0x93, 0x3c, 0xc6, 0xbd, 0x61, 0xfb, 0xf4, 0x22, 0xc5, 0x16, 0x87, 0xd1, 0xb1, 0x9e, 0x09, 0xc5, 0x83, 0x2e, 0x4a, 0x07, 0x88, 0xee, 0xe0, 0x29, 0x8d, 0x2e, 0x1f, 0x88, 0xad, 0xfd, 0x18, 0x93, 0xb7, 0xed, 0x42, 0x86, 0x78, 0xf0, 0xb8, 0x70, 0xbe, 0x01, 0x67, - /* (2^ 7)P */ 0xdf, 0x62, 0x2d, 0x94, 0xc7, 0x35, 0x23, 0xda, 0x27, 0xbb, 0x2b, 0xdb, 0x30, 0x80, 0x68, 0x16, 0xa3, 0xae, 0xd7, 0xd2, 0xa7, 0x7c, 0xbf, 0x6a, 0x1d, 0x83, 0xde, 0x96, 0x0a, 0x43, 0xb6, 0x30, 0x37, 0xd6, 0xee, 0x63, 0x59, 0x9a, 0xbf, 0xa3, 0x30, 0x6c, 0xaf, 0x0c, 0xee, 0x3d, 0xcb, 0x35, 0x4b, 0x55, 0x5f, 0x84, 0x85, 0xcb, 0x4f, 0x1e, - /* (2^ 8)P */ 0x9d, 0x04, 0x68, 0x89, 0xa4, 0xa9, 0x0d, 0x87, 0xc1, 0x70, 0xf1, 0xeb, 0xfb, 0x47, 0x0a, 0xf0, 0xde, 0x67, 0xb7, 0x94, 0xcd, 0x36, 0x43, 0xa5, 0x49, 0x43, 0x67, 0xc3, 0xee, 0x3c, 0x6b, 0xec, 0xd0, 0x1a, 0xf4, 0xad, 0xef, 0x06, 0x4a, 0xe8, 0x46, 0x24, 0xd7, 0x93, 0xbf, 0xf0, 0xe3, 0x81, 0x61, 0xec, 0xea, 0x64, 0xfe, 0x67, 0xeb, 0xc7, - /* (2^ 9)P */ 0x95, 0x45, 0x79, 0xcf, 0x2c, 0xfd, 0x9b, 0xfe, 0x84, 0x46, 0x4b, 0x8f, 0xa1, 0xcf, 0xc3, 0x04, 0x94, 0x78, 0xdb, 0xc9, 0xa6, 0x01, 0x75, 0xa4, 0xb4, 0x93, 0x72, 0x43, 0xa7, 0x7d, 0xda, 0x31, 0x38, 0x54, 0xab, 0x4e, 0x3f, 0x89, 0xa6, 0xab, 0x57, 0xc0, 0x16, 0x65, 0xdb, 0x92, 0x96, 0xe4, 0xc8, 0xae, 0xe7, 0x4c, 0x7a, 0xeb, 0xbb, 0x5a, - /* (2^ 10)P */ 0xbe, 0xfe, 0x86, 0xc3, 0x97, 0xe0, 0x6a, 0x18, 0x20, 0x21, 0xca, 0x22, 0x55, 0xa1, 0xeb, 0xf5, 0x74, 0xe5, 0xc9, 0x59, 0xa7, 0x92, 0x65, 0x15, 0x08, 0x71, 0xd1, 0x09, 0x7e, 0x83, 0xfc, 0xbc, 0x5a, 0x93, 0x38, 0x0d, 0x43, 0x42, 0xfd, 0x76, 0x30, 0xe8, 0x63, 0x60, 0x09, 0x8d, 0x6c, 0xd3, 0xf8, 0x56, 0x3d, 0x68, 0x47, 0xab, 0xa0, 0x1d, - /* (2^ 11)P */ 0x38, 0x50, 0x1c, 0xb1, 0xac, 0x88, 0x8f, 0x38, 0xe3, 0x69, 0xe6, 0xfc, 0x4f, 0x8f, 0xe1, 0x9b, 0xb1, 0x1a, 0x09, 0x39, 0x19, 0xdf, 0xcd, 0x98, 0x7b, 0x64, 0x42, 0xf6, 0x11, 0xea, 0xc7, 0xe8, 0x92, 0x65, 0x00, 0x2c, 0x75, 0xb5, 0x94, 0x1e, 0x5b, 0xa6, 0x66, 0x81, 0x77, 0xf3, 0x39, 0x94, 0xac, 0xbd, 0xe4, 0x2a, 0x66, 0x84, 0x9c, 0x60, - /* (2^ 12)P */ 0xb5, 0xb6, 0xd9, 0x03, 0x67, 0xa4, 0xa8, 0x0a, 0x4a, 0x2b, 0x9d, 0xfa, 0x13, 0xe1, 0x99, 0x25, 0x4a, 0x5c, 0x67, 0xb9, 0xb2, 0xb7, 0xdd, 0x1e, 0xaf, 0xeb, 0x63, 0x41, 0xb6, 0xb9, 0xa0, 0x87, 0x0a, 0xe0, 0x06, 0x07, 0xaa, 0x97, 0xf8, 0xf9, 0x38, 0x4f, 0xdf, 0x0c, 0x40, 0x7c, 0xc3, 0x98, 0xa9, 0x74, 0xf1, 0x5d, 0xda, 0xd1, 0xc0, 0x0a, - /* (2^ 13)P */ 0xf2, 0x0a, 0xab, 0xab, 0x94, 0x50, 0xf0, 0xa3, 0x6f, 0xc6, 0x66, 0xba, 0xa6, 0xdc, 0x44, 0xdd, 0xd6, 0x08, 0xf4, 0xd3, 0xed, 0xb1, 0x40, 0x93, 0xee, 0xf6, 0xb8, 0x8e, 0xb4, 0x7c, 0xb9, 0x82, 0xc9, 0x9d, 0x45, 0x3b, 0x8e, 0x10, 0xcb, 0x70, 0x1e, 0xba, 0x3c, 0x62, 0x50, 0xda, 0xa9, 0x93, 0xb5, 0xd7, 0xd0, 0x6f, 0x29, 0x52, 0x95, 0xae, - /* (2^ 14)P */ 0x14, 0x68, 0x69, 0x23, 0xa8, 0x44, 0x87, 0x9e, 0x22, 0x91, 0xe8, 0x92, 0xdf, 0xf7, 0xae, 0xba, 0x1c, 0x96, 0xe1, 0xc3, 0x94, 0xed, 0x6c, 0x95, 0xae, 0x96, 0xa7, 0x15, 0x9f, 0xf1, 0x17, 0x11, 0x92, 0x42, 0xd5, 0xcd, 0x18, 0xe7, 0xa9, 0xb5, 0x2f, 0xcd, 0xde, 0x6c, 0xc9, 0x7d, 0xfc, 0x7e, 0xbd, 0x7f, 0x10, 0x3d, 0x01, 0x00, 0x8d, 0x95, - /* (2^ 15)P */ 0x3b, 0x76, 0x72, 0xae, 0xaf, 0x84, 0xf2, 0xf7, 0xd1, 0x6d, 0x13, 0x9c, 0x47, 0xe1, 0xb7, 0xa3, 0x19, 0x16, 0xee, 0x75, 0x45, 0xf6, 0x1a, 0x7b, 0x78, 0x49, 0x79, 0x05, 0x86, 0xf0, 0x7f, 0x9f, 0xfc, 0xc4, 0xbd, 0x86, 0xf3, 0x41, 0xa7, 0xfe, 0x01, 0xd5, 0x67, 0x16, 0x10, 0x5b, 0xa5, 0x16, 0xf3, 0x7f, 0x60, 0xce, 0xd2, 0x0c, 0x8e, 0x4b, - /* (2^ 16)P */ 0x4a, 0x07, 0x99, 0x4a, 0x0f, 0x74, 0x91, 0x14, 0x68, 0xb9, 0x48, 0xb7, 0x44, 0x77, 0x9b, 0x4a, 0xe0, 0x68, 0x0e, 0x43, 0x4d, 0x98, 0x98, 0xbf, 0xa8, 0x3a, 0xb7, 0x6d, 0x2a, 0x9a, 0x77, 0x5f, 0x62, 0xf5, 0x6b, 0x4a, 0xb7, 0x7d, 0xe5, 0x09, 0x6b, 0xc0, 0x8b, 0x9c, 0x88, 0x37, 0x33, 0xf2, 0x41, 0xac, 0x22, 0x1f, 0xcf, 0x3b, 0x82, 0x34, - /* (2^ 17)P */ 0x00, 0xc3, 0x78, 0x42, 0x32, 0x2e, 0xdc, 0xda, 0xb1, 0x96, 0x21, 0xa4, 0xe4, 0xbb, 0xe9, 0x9d, 0xbb, 0x0f, 0x93, 0xed, 0x26, 0x3d, 0xb5, 0xdb, 0x94, 0x31, 0x37, 0x07, 0xa2, 0xb2, 0xd5, 0x99, 0x0d, 0x93, 0xe1, 0xce, 0x3f, 0x0b, 0x96, 0x82, 0x47, 0xfe, 0x60, 0x6f, 0x8f, 0x61, 0x88, 0xd7, 0x05, 0x95, 0x0b, 0x46, 0x06, 0xb7, 0x32, 0x06, - /* (2^ 18)P */ 0x44, 0xf5, 0x34, 0xdf, 0x2f, 0x9c, 0x5d, 0x9f, 0x53, 0x5c, 0x42, 0x8f, 0xc9, 0xdc, 0xd8, 0x40, 0xa2, 0xe7, 0x6a, 0x4a, 0x05, 0xf7, 0x86, 0x77, 0x2b, 0xae, 0x37, 0xed, 0x48, 0xfb, 0xf7, 0x62, 0x7c, 0x17, 0x59, 0x92, 0x41, 0x61, 0x93, 0x38, 0x30, 0xd1, 0xef, 0x54, 0x54, 0x03, 0x17, 0x57, 0x91, 0x15, 0x11, 0x33, 0xb5, 0xfa, 0xfb, 0x17, - /* (2^ 19)P */ 0x29, 0xbb, 0xd4, 0xb4, 0x9c, 0xf1, 0x72, 0x94, 0xce, 0x6a, 0x29, 0xa8, 0x89, 0x18, 0x19, 0xf7, 0xb7, 0xcc, 0xee, 0x9a, 0x02, 0xe3, 0xc0, 0xb1, 0xe0, 0xee, 0x83, 0x78, 0xb4, 0x9e, 0x07, 0x87, 0xdf, 0xb0, 0x82, 0x26, 0x4e, 0xa4, 0x0c, 0x33, 0xaf, 0x40, 0x59, 0xb6, 0xdd, 0x52, 0x45, 0xf0, 0xb4, 0xf6, 0xe8, 0x4e, 0x4e, 0x79, 0x1a, 0x5d, - /* (2^ 20)P */ 0x27, 0x33, 0x4d, 0x4c, 0x6b, 0x4f, 0x75, 0xb1, 0xbc, 0x1f, 0xab, 0x5b, 0x2b, 0xf0, 0x1c, 0x57, 0x86, 0xdd, 0xfd, 0x60, 0xb0, 0x8c, 0xe7, 0x9a, 0xe5, 0x5c, 0xeb, 0x11, 0x3a, 0xda, 0x22, 0x25, 0x99, 0x06, 0x8d, 0xf4, 0xaf, 0x29, 0x7a, 0xc9, 0xe5, 0xd2, 0x16, 0x9e, 0xd4, 0x63, 0x1d, 0x64, 0xa6, 0x47, 0x96, 0x37, 0x6f, 0x93, 0x2c, 0xcc, - /* (2^ 21)P */ 0xc1, 0x94, 0x74, 0x86, 0x75, 0xf2, 0x91, 0x58, 0x23, 0x85, 0x63, 0x76, 0x54, 0xc7, 0xb4, 0x8c, 0xbc, 0x4e, 0xc4, 0xa7, 0xba, 0xa0, 0x55, 0x26, 0x71, 0xd5, 0x33, 0x72, 0xc9, 0xad, 0x1e, 0xf9, 0x5d, 0x78, 0x70, 0x93, 0x4e, 0x85, 0xfc, 0x39, 0x06, 0x73, 0x76, 0xff, 0xe8, 0x64, 0x69, 0x42, 0x45, 0xb2, 0x69, 0xb5, 0x32, 0xe7, 0x2c, 0xde, - /* (2^ 22)P */ 0xde, 0x16, 0xd8, 0x33, 0x49, 0x32, 0xe9, 0x0e, 0x3a, 0x60, 0xee, 0x2e, 0x24, 0x75, 0xe3, 0x9c, 0x92, 0x07, 0xdb, 0xad, 0x92, 0xf5, 0x11, 0xdf, 0xdb, 0xb0, 0x17, 0x5c, 0xd6, 0x1a, 0x70, 0x00, 0xb7, 0xe2, 0x18, 0xec, 0xdc, 0xc2, 0x02, 0x93, 0xb3, 0xc8, 0x3f, 0x4f, 0x1b, 0x96, 0xe6, 0x33, 0x8c, 0xfb, 0xcc, 0xa5, 0x4e, 0xe8, 0xe7, 0x11, - /* (2^ 23)P */ 0x05, 0x7a, 0x74, 0x52, 0xf8, 0xdf, 0x0d, 0x7c, 0x6a, 0x1a, 0x4e, 0x9a, 0x02, 0x1d, 0xae, 0x77, 0xf8, 0x8e, 0xf9, 0xa2, 0x38, 0x54, 0x50, 0xb2, 0x2c, 0x08, 0x9d, 0x9b, 0x9f, 0xfb, 0x2b, 0x06, 0xde, 0x9d, 0xc2, 0x03, 0x0b, 0x22, 0x2b, 0x10, 0x5b, 0x3a, 0x73, 0x29, 0x8e, 0x3e, 0x37, 0x08, 0x2c, 0x3b, 0xf8, 0x80, 0xc1, 0x66, 0x1e, 0x98, - /* (2^ 24)P */ 0xd8, 0xd6, 0x3e, 0xcd, 0x63, 0x8c, 0x2b, 0x41, 0x81, 0xc0, 0x0c, 0x06, 0x87, 0xd6, 0xe7, 0x92, 0xfe, 0xf1, 0x0c, 0x4a, 0x84, 0x5b, 0xaf, 0x40, 0x53, 0x6f, 0x60, 0xd6, 0x6b, 0x76, 0x4b, 0xc2, 0xad, 0xc9, 0xb6, 0xb6, 0x6a, 0xa2, 0xb3, 0xf5, 0xf5, 0xc2, 0x55, 0x83, 0xb2, 0xd3, 0xe9, 0x41, 0x6c, 0x63, 0x51, 0xb8, 0x81, 0x74, 0xc8, 0x2c, - /* (2^ 25)P */ 0xb2, 0xaf, 0x1c, 0xee, 0x07, 0xb0, 0x58, 0xa8, 0x2c, 0x6a, 0xc9, 0x2d, 0x62, 0x28, 0x75, 0x0c, 0x40, 0xb6, 0x11, 0x33, 0x96, 0x80, 0x28, 0x6d, 0xd5, 0x9e, 0x87, 0x90, 0x01, 0x66, 0x1d, 0x1c, 0xf8, 0xb4, 0x92, 0xac, 0x38, 0x18, 0x05, 0xc2, 0x4c, 0x4b, 0x54, 0x7d, 0x80, 0x46, 0x87, 0x2d, 0x99, 0x8e, 0x70, 0x80, 0x69, 0x71, 0x8b, 0xed, - /* (2^ 26)P */ 0x37, 0xa7, 0x6b, 0x71, 0x36, 0x75, 0x8e, 0xff, 0x0f, 0x42, 0xda, 0x5a, 0x46, 0xa6, 0x97, 0x79, 0x7e, 0x30, 0xb3, 0x8f, 0xc7, 0x3a, 0xa0, 0xcb, 0x1d, 0x9c, 0x78, 0x77, 0x36, 0xc2, 0xe7, 0xf4, 0x2f, 0x29, 0x07, 0xb1, 0x07, 0xfd, 0xed, 0x1b, 0x39, 0x77, 0x06, 0x38, 0x77, 0x0f, 0x50, 0x31, 0x12, 0xbf, 0x92, 0xbf, 0x72, 0x79, 0x54, 0xa9, - /* (2^ 27)P */ 0xbd, 0x4d, 0x46, 0x6b, 0x1a, 0x80, 0x46, 0x2d, 0xed, 0xfd, 0x64, 0x6d, 0x94, 0xbc, 0x4a, 0x6e, 0x0c, 0x12, 0xf6, 0x12, 0xab, 0x54, 0x88, 0xd3, 0x85, 0xac, 0x51, 0xae, 0x6f, 0xca, 0xc4, 0xb7, 0xec, 0x22, 0x54, 0x6d, 0x80, 0xb2, 0x1c, 0x63, 0x33, 0x76, 0x6b, 0x8e, 0x6d, 0x59, 0xcd, 0x73, 0x92, 0x5f, 0xff, 0xad, 0x10, 0x35, 0x70, 0x5f, - /* (2^ 28)P */ 0xb3, 0x84, 0xde, 0xc8, 0x04, 0x43, 0x63, 0xfa, 0x29, 0xd9, 0xf0, 0x69, 0x65, 0x5a, 0x0c, 0xe8, 0x2e, 0x0b, 0xfe, 0xb0, 0x7a, 0x42, 0xb3, 0xc3, 0xfc, 0xe6, 0xb8, 0x92, 0x29, 0xae, 0xed, 0xec, 0xd5, 0xe8, 0x4a, 0xa1, 0xbd, 0x3b, 0xd3, 0xc0, 0x07, 0xab, 0x65, 0x65, 0x35, 0x9a, 0xa6, 0x5e, 0x78, 0x18, 0x76, 0x1c, 0x15, 0x49, 0xe6, 0x75, - /* (2^ 29)P */ 0x45, 0xb3, 0x92, 0xa9, 0xc3, 0xb8, 0x11, 0x68, 0x64, 0x3a, 0x83, 0x5d, 0xa8, 0x94, 0x6a, 0x9d, 0xaa, 0x27, 0x9f, 0x98, 0x5d, 0xc0, 0x29, 0xf0, 0xc0, 0x4b, 0x14, 0x3c, 0x05, 0xe7, 0xf8, 0xbd, 0x38, 0x22, 0x96, 0x75, 0x65, 0x5e, 0x0d, 0x3f, 0xbb, 0x6f, 0xe8, 0x3f, 0x96, 0x76, 0x9f, 0xba, 0xd9, 0x44, 0x92, 0x96, 0x22, 0xe7, 0x52, 0xe7, - /* (2^ 30)P */ 0xf4, 0xa3, 0x95, 0x90, 0x47, 0xdf, 0x7d, 0xdc, 0xf4, 0x13, 0x87, 0x67, 0x7d, 0x4f, 0x9d, 0xa0, 0x00, 0x46, 0x72, 0x08, 0xc3, 0xa2, 0x7a, 0x3e, 0xe7, 0x6d, 0x52, 0x7c, 0x11, 0x36, 0x50, 0x83, 0x89, 0x64, 0xcb, 0x1f, 0x08, 0x83, 0x46, 0xcb, 0xac, 0xa6, 0xd8, 0x9c, 0x1b, 0xe8, 0x05, 0x47, 0xc7, 0x26, 0x06, 0x83, 0x39, 0xe9, 0xb1, 0x1c, - /* (2^ 31)P */ 0x11, 0xe8, 0xc8, 0x42, 0xbf, 0x30, 0x9c, 0xa3, 0xf1, 0x85, 0x96, 0x95, 0x4f, 0x4f, 0x52, 0xa2, 0xf5, 0x8b, 0x68, 0x24, 0x16, 0xac, 0x9b, 0xa9, 0x27, 0x28, 0x0e, 0x84, 0x03, 0x46, 0x22, 0x5f, 0xf7, 0x0d, 0xa6, 0x85, 0x88, 0xc1, 0x45, 0x4b, 0x85, 0x1a, 0x10, 0x7f, 0xc9, 0x94, 0x20, 0xb0, 0x04, 0x28, 0x12, 0x30, 0xb9, 0xe6, 0x40, 0x6b, - /* (2^ 32)P */ 0xac, 0x1b, 0x57, 0xb6, 0x42, 0xdb, 0x81, 0x8d, 0x76, 0xfd, 0x9b, 0x1c, 0x29, 0x30, 0xd5, 0x3a, 0xcc, 0x53, 0xd9, 0x26, 0x7a, 0x0f, 0x9c, 0x2e, 0x79, 0xf5, 0x62, 0xeb, 0x61, 0x9d, 0x9b, 0x80, 0x39, 0xcd, 0x60, 0x2e, 0x1f, 0x08, 0x22, 0xbc, 0x19, 0xb3, 0x2a, 0x43, 0x44, 0xf2, 0x4e, 0x66, 0xf4, 0x36, 0xa6, 0xa7, 0xbc, 0xa4, 0x15, 0x7e, - /* (2^ 33)P */ 0xc1, 0x90, 0x8a, 0xde, 0xff, 0x78, 0xc3, 0x73, 0x16, 0xee, 0x76, 0xa0, 0x84, 0x60, 0x8d, 0xe6, 0x82, 0x0f, 0xde, 0x4e, 0xc5, 0x99, 0x34, 0x06, 0x90, 0x44, 0x55, 0xf8, 0x91, 0xd8, 0xe1, 0xe4, 0x2c, 0x8a, 0xde, 0x94, 0x1e, 0x78, 0x25, 0x3d, 0xfd, 0xd8, 0x59, 0x7d, 0xaf, 0x6e, 0xbe, 0x96, 0xbe, 0x3c, 0x16, 0x23, 0x0f, 0x4c, 0xa4, 0x28, - /* (2^ 34)P */ 0xba, 0x11, 0x35, 0x57, 0x03, 0xb6, 0xf4, 0x24, 0x89, 0xb8, 0x5a, 0x0d, 0x50, 0x9c, 0xaa, 0x51, 0x7f, 0xa4, 0x0e, 0xfc, 0x71, 0xb3, 0x3b, 0xf1, 0x96, 0x50, 0x23, 0x15, 0xf5, 0xf5, 0xd4, 0x23, 0xdc, 0x8b, 0x26, 0x9e, 0xae, 0xb7, 0x50, 0xcd, 0xc4, 0x25, 0xf6, 0x75, 0x40, 0x9c, 0x37, 0x79, 0x33, 0x60, 0xd4, 0x4b, 0x13, 0x32, 0xee, 0xe2, - /* (2^ 35)P */ 0x43, 0xb8, 0x56, 0x59, 0xf0, 0x68, 0x23, 0xb3, 0xea, 0x70, 0x58, 0x4c, 0x1e, 0x5a, 0x16, 0x54, 0x03, 0xb2, 0xf4, 0x73, 0xb6, 0xd9, 0x5c, 0x9c, 0x6f, 0xcf, 0x82, 0x2e, 0x54, 0x15, 0x46, 0x2c, 0xa3, 0xda, 0x4e, 0x87, 0xf5, 0x2b, 0xba, 0x91, 0xa3, 0xa0, 0x89, 0xba, 0x48, 0x2b, 0xfa, 0x64, 0x02, 0x7f, 0x78, 0x03, 0xd1, 0xe8, 0x3b, 0xe9, - /* (2^ 36)P */ 0x15, 0xa4, 0x71, 0xd4, 0x0c, 0x24, 0xe9, 0x07, 0xa1, 0x43, 0xf4, 0x7f, 0xbb, 0xa2, 0xa6, 0x6b, 0xfa, 0xb7, 0xea, 0x58, 0xd1, 0x96, 0xb0, 0x24, 0x5c, 0xc7, 0x37, 0x4e, 0x60, 0x0f, 0x40, 0xf2, 0x2f, 0x44, 0x70, 0xea, 0x80, 0x63, 0xfe, 0xfc, 0x46, 0x59, 0x12, 0x27, 0xb5, 0x27, 0xfd, 0xb7, 0x73, 0x0b, 0xca, 0x8b, 0xc2, 0xd3, 0x71, 0x08, - /* (2^ 37)P */ 0x26, 0x0e, 0xd7, 0x52, 0x6f, 0xf1, 0xf2, 0x9d, 0xb8, 0x3d, 0xbd, 0xd4, 0x75, 0x97, 0xd8, 0xbf, 0xa8, 0x86, 0x96, 0xa5, 0x80, 0xa0, 0x45, 0x75, 0xf6, 0x77, 0x71, 0xdb, 0x77, 0x96, 0x55, 0x99, 0x31, 0xd0, 0x4f, 0x34, 0xf4, 0x35, 0x39, 0x41, 0xd3, 0x7d, 0xf7, 0xe2, 0x74, 0xde, 0xbe, 0x5b, 0x1f, 0x39, 0x10, 0x21, 0xa3, 0x4d, 0x3b, 0xc8, - /* (2^ 38)P */ 0x04, 0x00, 0x2a, 0x45, 0xb2, 0xaf, 0x9b, 0x18, 0x6a, 0xeb, 0x96, 0x28, 0xa4, 0x77, 0xd0, 0x13, 0xcf, 0x17, 0x65, 0xe8, 0xc5, 0x81, 0x28, 0xad, 0x39, 0x7a, 0x0b, 0xaa, 0x55, 0x2b, 0xf3, 0xfc, 0x86, 0x40, 0xad, 0x0d, 0x1e, 0x28, 0xa2, 0x2d, 0xc5, 0xd6, 0x04, 0x15, 0xa2, 0x30, 0x3d, 0x12, 0x8e, 0xd6, 0xb5, 0xf7, 0x69, 0xbb, 0x84, 0x20, - /* (2^ 39)P */ 0xd7, 0x7a, 0x77, 0x2c, 0xfb, 0x81, 0x80, 0xe9, 0x1e, 0xc6, 0x36, 0x31, 0x79, 0xc3, 0x7c, 0xa9, 0x57, 0x6b, 0xb5, 0x70, 0xfb, 0xe4, 0xa1, 0xff, 0xfd, 0x21, 0xa5, 0x7c, 0xfa, 0x44, 0xba, 0x0d, 0x96, 0x3d, 0xc4, 0x5c, 0x39, 0x52, 0x87, 0xd7, 0x22, 0x0f, 0x52, 0x88, 0x91, 0x87, 0x96, 0xac, 0xfa, 0x3b, 0xdf, 0xdc, 0x83, 0x8c, 0x99, 0x29, - /* (2^ 40)P */ 0x98, 0x6b, 0x3a, 0x8d, 0x83, 0x17, 0xe1, 0x62, 0xd8, 0x80, 0x4c, 0x97, 0xce, 0x6b, 0xaa, 0x10, 0xa7, 0xc4, 0xe9, 0xeb, 0xa5, 0xfb, 0xc9, 0xdd, 0x2d, 0xeb, 0xfc, 0x9a, 0x71, 0xcd, 0x68, 0x6e, 0xc0, 0x35, 0x64, 0x62, 0x1b, 0x95, 0x12, 0xe8, 0x53, 0xec, 0xf0, 0xf4, 0x86, 0x86, 0x78, 0x18, 0xc4, 0xc6, 0xbc, 0x5a, 0x59, 0x8f, 0x7c, 0x7e, - /* (2^ 41)P */ 0x7f, 0xd7, 0x1e, 0xc5, 0x83, 0xdc, 0x1f, 0xbe, 0x0b, 0xcf, 0x2e, 0x01, 0x01, 0xed, 0xac, 0x17, 0x3b, 0xed, 0xa4, 0x30, 0x96, 0x0e, 0x14, 0x7e, 0x19, 0x2b, 0xa5, 0x67, 0x1e, 0xb3, 0x34, 0x03, 0xa8, 0xbb, 0x0a, 0x7d, 0x08, 0x2d, 0xd5, 0x53, 0x19, 0x6f, 0x13, 0xd5, 0xc0, 0x90, 0x8a, 0xcc, 0xc9, 0x5c, 0xab, 0x24, 0xd7, 0x03, 0xf6, 0x57, - /* (2^ 42)P */ 0x49, 0xcb, 0xb4, 0x96, 0x5f, 0xa6, 0xf8, 0x71, 0x6f, 0x59, 0xad, 0x05, 0x24, 0x2d, 0xaf, 0x67, 0xa8, 0xbe, 0x95, 0xdf, 0x0d, 0x28, 0x5a, 0x7f, 0x6e, 0x87, 0x8c, 0x6e, 0x67, 0x0c, 0xf4, 0xe0, 0x1c, 0x30, 0xc2, 0x66, 0xae, 0x20, 0xa1, 0x34, 0xec, 0x9c, 0xbc, 0xae, 0x3d, 0xa1, 0x28, 0x28, 0x95, 0x1d, 0xc9, 0x3a, 0xa8, 0xfd, 0xfc, 0xa1, - /* (2^ 43)P */ 0xe2, 0x2b, 0x9d, 0xed, 0x02, 0x99, 0x67, 0xbb, 0x2e, 0x16, 0x62, 0x05, 0x70, 0xc7, 0x27, 0xb9, 0x1c, 0x3f, 0xf2, 0x11, 0x01, 0xd8, 0x51, 0xa4, 0x18, 0x92, 0xa9, 0x5d, 0xfb, 0xa9, 0xe4, 0x42, 0xba, 0x38, 0x34, 0x1a, 0x4a, 0xc5, 0x6a, 0x37, 0xde, 0xa7, 0x0c, 0xb4, 0x7e, 0x7f, 0xde, 0xa6, 0xee, 0xcd, 0x55, 0x57, 0x05, 0x06, 0xfd, 0x5d, - /* (2^ 44)P */ 0x2f, 0x32, 0xcf, 0x2e, 0x2c, 0x7b, 0xbe, 0x9a, 0x0c, 0x57, 0x35, 0xf8, 0x87, 0xda, 0x9c, 0xec, 0x48, 0xf2, 0xbb, 0xe2, 0xda, 0x10, 0x58, 0x20, 0xc6, 0xd3, 0x87, 0xe9, 0xc7, 0x26, 0xd1, 0x9a, 0x46, 0x87, 0x90, 0xda, 0xdc, 0xde, 0xc3, 0xb3, 0xf2, 0xe8, 0x6f, 0x4a, 0xe6, 0xe8, 0x9d, 0x98, 0x36, 0x20, 0x03, 0x47, 0x15, 0x3f, 0x64, 0x59, - /* (2^ 45)P */ 0xd4, 0x71, 0x49, 0x0a, 0x67, 0x97, 0xaa, 0x3f, 0xf4, 0x1b, 0x3a, 0x6e, 0x5e, 0x17, 0xcc, 0x0a, 0x8f, 0x81, 0x6a, 0x41, 0x38, 0x77, 0x40, 0x8a, 0x11, 0x42, 0x62, 0xd2, 0x50, 0x32, 0x79, 0x78, 0x28, 0xc2, 0x2e, 0x10, 0x01, 0x94, 0x30, 0x4f, 0x7f, 0x18, 0x17, 0x56, 0x85, 0x4e, 0xad, 0xf7, 0xcb, 0x87, 0x3c, 0x3f, 0x50, 0x2c, 0xc0, 0xba, - /* (2^ 46)P */ 0xbc, 0x30, 0x8e, 0x65, 0x8e, 0x57, 0x5b, 0x38, 0x7a, 0xd4, 0x95, 0x52, 0x7a, 0x32, 0x59, 0x69, 0xcd, 0x9d, 0x47, 0x34, 0x5b, 0x55, 0xa5, 0x24, 0x60, 0xdd, 0xc0, 0xc1, 0x62, 0x73, 0x44, 0xae, 0x4c, 0x9c, 0x65, 0x55, 0x1b, 0x9d, 0x8a, 0x29, 0xb0, 0x1a, 0x52, 0xa8, 0xf1, 0xe6, 0x9a, 0xb3, 0xf6, 0xa3, 0xc9, 0x0a, 0x70, 0x7d, 0x0f, 0xee, - /* (2^ 47)P */ 0x77, 0xd3, 0xe5, 0x8e, 0xfa, 0x00, 0xeb, 0x1b, 0x7f, 0xdc, 0x68, 0x3f, 0x92, 0xbd, 0xb7, 0x0b, 0xb7, 0xb5, 0x24, 0xdf, 0xc5, 0x67, 0x53, 0xd4, 0x36, 0x79, 0xc4, 0x7b, 0x57, 0xbc, 0x99, 0x97, 0x60, 0xef, 0xe4, 0x01, 0xa1, 0xa7, 0xaa, 0x12, 0x36, 0x29, 0xb1, 0x03, 0xc2, 0x83, 0x1c, 0x2b, 0x83, 0xef, 0x2e, 0x2c, 0x23, 0x92, 0xfd, 0xd1, - /* (2^ 48)P */ 0x94, 0xef, 0x03, 0x59, 0xfa, 0x8a, 0x18, 0x76, 0xee, 0x58, 0x08, 0x4d, 0x44, 0xce, 0xf1, 0x52, 0x33, 0x49, 0xf6, 0x69, 0x71, 0xe3, 0xa9, 0xbc, 0x86, 0xe3, 0x43, 0xde, 0x33, 0x7b, 0x90, 0x8b, 0x3e, 0x7d, 0xd5, 0x4a, 0xf0, 0x23, 0x99, 0xa6, 0xea, 0x5f, 0x08, 0xe5, 0xb9, 0x49, 0x8b, 0x0d, 0x6a, 0x21, 0xab, 0x07, 0x62, 0xcd, 0xc4, 0xbe, - /* (2^ 49)P */ 0x61, 0xbf, 0x70, 0x14, 0xfa, 0x4e, 0x9e, 0x7c, 0x0c, 0xf8, 0xb2, 0x48, 0x71, 0x62, 0x83, 0xd6, 0xd1, 0xdc, 0x9c, 0x29, 0x66, 0xb1, 0x34, 0x9c, 0x8d, 0xe6, 0x88, 0xaf, 0xbe, 0xdc, 0x4d, 0xeb, 0xb0, 0xe7, 0x28, 0xae, 0xb2, 0x05, 0x56, 0xc6, 0x0e, 0x10, 0x26, 0xab, 0x2c, 0x59, 0x72, 0x03, 0x66, 0xfe, 0x8f, 0x2c, 0x51, 0x2d, 0xdc, 0xae, - /* (2^ 50)P */ 0xdc, 0x63, 0xf1, 0x8b, 0x5c, 0x65, 0x0b, 0xf1, 0xa6, 0x22, 0xe2, 0xd9, 0xdb, 0x49, 0xb1, 0x3c, 0x47, 0xc2, 0xfe, 0xac, 0x86, 0x07, 0x52, 0xec, 0xb0, 0x08, 0x69, 0xfb, 0xd1, 0x06, 0xdc, 0x48, 0x5c, 0x3d, 0xb2, 0x4d, 0xb8, 0x1a, 0x4e, 0xda, 0xb9, 0xc1, 0x2b, 0xab, 0x4b, 0x62, 0x81, 0x21, 0x9a, 0xfc, 0x3d, 0x39, 0x83, 0x11, 0x36, 0xeb, - /* (2^ 51)P */ 0x94, 0xf3, 0x17, 0xef, 0xf9, 0x60, 0x54, 0xc3, 0xd7, 0x27, 0x35, 0xc5, 0x98, 0x5e, 0xf6, 0x63, 0x6c, 0xa0, 0x4a, 0xd3, 0xa3, 0x98, 0xd9, 0x42, 0xe3, 0xf1, 0xf8, 0x81, 0x96, 0xa9, 0xea, 0x6d, 0x4b, 0x8e, 0x33, 0xca, 0x94, 0x0d, 0xa0, 0xf7, 0xbb, 0x64, 0xa3, 0x36, 0x6f, 0xdc, 0x5a, 0x94, 0x42, 0xca, 0x06, 0xb2, 0x2b, 0x9a, 0x9f, 0x71, - /* (2^ 52)P */ 0xec, 0xdb, 0xa6, 0x1f, 0xdf, 0x15, 0x36, 0xa3, 0xda, 0x8a, 0x7a, 0xb6, 0xa7, 0xe3, 0xaf, 0x52, 0xe0, 0x8d, 0xe8, 0xf2, 0x44, 0x20, 0xeb, 0xa1, 0x20, 0xc4, 0x65, 0x3c, 0x7c, 0x6c, 0x49, 0xed, 0x2f, 0x66, 0x23, 0x68, 0x61, 0x91, 0x40, 0x9f, 0x50, 0x19, 0xd1, 0x84, 0xa7, 0xe2, 0xed, 0x34, 0x37, 0xe3, 0xe4, 0x11, 0x7f, 0x87, 0x55, 0x0f, - /* (2^ 53)P */ 0xb3, 0xa1, 0x0f, 0xb0, 0x48, 0xc0, 0x4d, 0x96, 0xa7, 0xcf, 0x5a, 0x81, 0xb8, 0x4a, 0x46, 0xef, 0x0a, 0xd3, 0x40, 0x7e, 0x02, 0xe3, 0x63, 0xaa, 0x50, 0xd1, 0x2a, 0x37, 0x22, 0x4a, 0x7f, 0x4f, 0xb6, 0xf9, 0x01, 0x82, 0x78, 0x3d, 0x93, 0x14, 0x11, 0x8a, 0x90, 0x60, 0xcd, 0x45, 0x4e, 0x7b, 0x42, 0xb9, 0x3e, 0x6e, 0x68, 0x1f, 0x36, 0x41, - /* (2^ 54)P */ 0x13, 0x73, 0x0e, 0x4f, 0x79, 0x93, 0x9e, 0x29, 0x70, 0x7b, 0x4a, 0x59, 0x1a, 0x9a, 0xf4, 0x55, 0x08, 0xf0, 0xdb, 0x17, 0x58, 0xec, 0x64, 0xad, 0x7f, 0x29, 0xeb, 0x3f, 0x85, 0x4e, 0x60, 0x28, 0x98, 0x1f, 0x73, 0x4e, 0xe6, 0xa8, 0xab, 0xd5, 0xd6, 0xfc, 0xa1, 0x36, 0x6d, 0x15, 0xc6, 0x13, 0x83, 0xa0, 0xc2, 0x6e, 0xd9, 0xdb, 0xc9, 0xcc, - /* (2^ 55)P */ 0xff, 0xd8, 0x52, 0xa3, 0xdc, 0x99, 0xcf, 0x3e, 0x19, 0xb3, 0x68, 0xd0, 0xb5, 0x0d, 0xb8, 0xee, 0x3f, 0xef, 0x6e, 0xc0, 0x38, 0x28, 0x44, 0x92, 0x78, 0x91, 0x1a, 0x08, 0x78, 0x6c, 0x65, 0x24, 0xf3, 0xa2, 0x3d, 0xf2, 0xe5, 0x79, 0x62, 0x69, 0x29, 0xf4, 0x22, 0xc5, 0xdb, 0x6a, 0xae, 0xf4, 0x44, 0xa3, 0x6f, 0xc7, 0x86, 0xab, 0xef, 0xef, - /* (2^ 56)P */ 0xbf, 0x54, 0x9a, 0x09, 0x5d, 0x17, 0xd0, 0xde, 0xfb, 0xf5, 0xca, 0xff, 0x13, 0x20, 0x88, 0x82, 0x3a, 0xe2, 0xd0, 0x3b, 0xfb, 0x05, 0x76, 0xd1, 0xc0, 0x02, 0x71, 0x3b, 0x94, 0xe8, 0xc9, 0x84, 0xcf, 0xa4, 0xe9, 0x28, 0x7b, 0xf5, 0x09, 0xc3, 0x2b, 0x22, 0x40, 0xf1, 0x68, 0x24, 0x24, 0x7d, 0x9f, 0x6e, 0xcd, 0xfe, 0xb0, 0x19, 0x61, 0xf5, - /* (2^ 57)P */ 0xe8, 0x63, 0x51, 0xb3, 0x95, 0x6b, 0x7b, 0x74, 0x92, 0x52, 0x45, 0xa4, 0xed, 0xea, 0x0e, 0x0d, 0x2b, 0x01, 0x1e, 0x2c, 0xbc, 0x91, 0x06, 0x69, 0xdb, 0x1f, 0xb5, 0x77, 0x1d, 0x56, 0xf5, 0xb4, 0x02, 0x80, 0x49, 0x56, 0x12, 0xce, 0x86, 0x05, 0xc9, 0xd9, 0xae, 0xf3, 0x6d, 0xe6, 0x3f, 0x40, 0x52, 0xe9, 0x49, 0x2b, 0x31, 0x06, 0x86, 0x14, - /* (2^ 58)P */ 0xf5, 0x09, 0x3b, 0xd2, 0xff, 0xdf, 0x11, 0xa5, 0x1c, 0x99, 0xe8, 0x1b, 0xa4, 0x2c, 0x7d, 0x8e, 0xc8, 0xf7, 0x03, 0x46, 0xfa, 0xb6, 0xde, 0x73, 0x91, 0x7e, 0x5a, 0x7a, 0xd7, 0x9a, 0x5b, 0x80, 0x24, 0x62, 0x5e, 0x92, 0xf1, 0xa3, 0x45, 0xa3, 0x43, 0x92, 0x8a, 0x2a, 0x5b, 0x0c, 0xb4, 0xc8, 0xad, 0x1c, 0xb6, 0x6c, 0x5e, 0x81, 0x18, 0x91, - /* (2^ 59)P */ 0x96, 0xb3, 0xca, 0x2b, 0xe3, 0x7a, 0x59, 0x72, 0x17, 0x74, 0x29, 0x21, 0xe7, 0x78, 0x07, 0xad, 0xda, 0xb6, 0xcd, 0xf9, 0x27, 0x4d, 0xc8, 0xf2, 0x98, 0x22, 0xca, 0xf2, 0x33, 0x74, 0x7a, 0xdd, 0x1e, 0x71, 0xec, 0xe3, 0x3f, 0xe2, 0xa2, 0xd2, 0x38, 0x75, 0xb0, 0xd0, 0x0a, 0xcf, 0x7d, 0x36, 0xdc, 0x49, 0x38, 0x25, 0x34, 0x4f, 0x20, 0x9a, - /* (2^ 60)P */ 0x2b, 0x6e, 0x04, 0x0d, 0x4f, 0x3d, 0x3b, 0x24, 0xf6, 0x4e, 0x5e, 0x0a, 0xbd, 0x48, 0x96, 0xba, 0x81, 0x8f, 0x39, 0x82, 0x13, 0xe6, 0x72, 0xf3, 0x0f, 0xb6, 0x94, 0xf4, 0xc5, 0x90, 0x74, 0x91, 0xa8, 0xf2, 0xc9, 0xca, 0x9a, 0x4d, 0x98, 0xf2, 0xdf, 0x52, 0x4e, 0x97, 0x2f, 0xeb, 0x84, 0xd3, 0xaf, 0xc2, 0xcc, 0xfb, 0x4c, 0x26, 0x4b, 0xe4, - /* (2^ 61)P */ 0x12, 0x9e, 0xfb, 0x9d, 0x78, 0x79, 0x99, 0xdd, 0xb3, 0x0b, 0x2e, 0x56, 0x41, 0x8e, 0x3f, 0x39, 0xb8, 0x97, 0x89, 0x53, 0x9b, 0x8a, 0x3c, 0x40, 0x9d, 0xa4, 0x6c, 0x2e, 0x31, 0x71, 0xc6, 0x0a, 0x41, 0xd4, 0x95, 0x06, 0x5e, 0xc1, 0xab, 0xc2, 0x14, 0xc4, 0xc7, 0x15, 0x08, 0x3a, 0xad, 0x7a, 0xb4, 0x62, 0xa3, 0x0c, 0x90, 0xf4, 0x47, 0x08, - /* (2^ 62)P */ 0x7f, 0xec, 0x09, 0x82, 0xf5, 0x94, 0x09, 0x93, 0x32, 0xd3, 0xdc, 0x56, 0x80, 0x7b, 0x5b, 0x22, 0x80, 0x6a, 0x96, 0x72, 0xb1, 0xc2, 0xd9, 0xa1, 0x8b, 0x66, 0x42, 0x16, 0xe2, 0x07, 0xb3, 0x2d, 0xf1, 0x75, 0x35, 0x72, 0xc7, 0x98, 0xbe, 0x63, 0x3b, 0x20, 0x75, 0x05, 0xc1, 0x3e, 0x31, 0x5a, 0xf7, 0xaa, 0xae, 0x4b, 0xdb, 0x1d, 0xd0, 0x74, - /* (2^ 63)P */ 0x36, 0x5c, 0x74, 0xe6, 0x5d, 0x59, 0x3f, 0x15, 0x4b, 0x4d, 0x4e, 0x67, 0x41, 0xfe, 0x98, 0x1f, 0x49, 0x76, 0x91, 0x0f, 0x9b, 0xf4, 0xaf, 0x86, 0xaf, 0x66, 0x19, 0xed, 0x46, 0xf1, 0x05, 0x9a, 0xcc, 0xd1, 0x14, 0x1f, 0x82, 0x12, 0x8e, 0xe6, 0xf4, 0xc3, 0x42, 0x5c, 0x4e, 0x33, 0x93, 0xbe, 0x30, 0xe7, 0x64, 0xa9, 0x35, 0x00, 0x4d, 0xf9, - /* (2^ 64)P */ 0x1f, 0xc1, 0x1e, 0xb7, 0xe3, 0x7c, 0xfa, 0xa3, 0x6b, 0x76, 0xaf, 0x9c, 0x05, 0x85, 0x4a, 0xa9, 0xfb, 0xe3, 0x7e, 0xf2, 0x49, 0x56, 0xdc, 0x2f, 0x57, 0x10, 0xba, 0x37, 0xb2, 0x62, 0xf5, 0x6b, 0xe5, 0x8f, 0x0a, 0x87, 0xd1, 0x6a, 0xcb, 0x9d, 0x07, 0xd0, 0xf6, 0x38, 0x99, 0x2c, 0x61, 0x4a, 0x4e, 0xd8, 0xd2, 0x88, 0x29, 0x99, 0x11, 0x95, - /* (2^ 65)P */ 0x6f, 0xdc, 0xd5, 0xd6, 0xd6, 0xa7, 0x4c, 0x46, 0x93, 0x65, 0x62, 0x23, 0x95, 0x32, 0x9c, 0xde, 0x40, 0x41, 0x68, 0x2c, 0x18, 0x4e, 0x5a, 0x8c, 0xc0, 0xc5, 0xc5, 0xea, 0x5c, 0x45, 0x0f, 0x60, 0x78, 0x39, 0xb6, 0x36, 0x23, 0x12, 0xbc, 0x21, 0x9a, 0xf8, 0x91, 0xac, 0xc4, 0x70, 0xdf, 0x85, 0x8e, 0x3c, 0xec, 0x22, 0x04, 0x98, 0xa8, 0xaa, - /* (2^ 66)P */ 0xcc, 0x52, 0x10, 0x5b, 0x4b, 0x6c, 0xc5, 0xfa, 0x3e, 0xd4, 0xf8, 0x1c, 0x04, 0x14, 0x48, 0x33, 0xd9, 0xfc, 0x5f, 0xb0, 0xa5, 0x48, 0x8c, 0x45, 0x8a, 0xee, 0x3e, 0xa7, 0xc1, 0x2e, 0x34, 0xca, 0xf6, 0xc9, 0xeb, 0x10, 0xbb, 0xe1, 0x59, 0x84, 0x25, 0xe8, 0x81, 0x70, 0xc0, 0x09, 0x42, 0xa7, 0x3b, 0x0d, 0x33, 0x00, 0xb5, 0x77, 0xbe, 0x25, - /* (2^ 67)P */ 0xcd, 0x1f, 0xbc, 0x7d, 0xef, 0xe5, 0xca, 0x91, 0xaf, 0xa9, 0x59, 0x6a, 0x09, 0xca, 0xd6, 0x1b, 0x3d, 0x55, 0xde, 0xa2, 0x6a, 0x80, 0xd6, 0x95, 0x47, 0xe4, 0x5f, 0x68, 0x54, 0x08, 0xdf, 0x29, 0xba, 0x2a, 0x02, 0x84, 0xe8, 0xe9, 0x00, 0x77, 0x99, 0x36, 0x03, 0xf6, 0x4a, 0x3e, 0x21, 0x81, 0x7d, 0xb8, 0xa4, 0x8a, 0xa2, 0x05, 0xef, 0xbc, - /* (2^ 68)P */ 0x7c, 0x59, 0x5f, 0x66, 0xd9, 0xb7, 0x83, 0x43, 0x8a, 0xa1, 0x8d, 0x51, 0x70, 0xba, 0xf2, 0x9b, 0x95, 0xc0, 0x4b, 0x4c, 0xa0, 0x14, 0xd3, 0xa4, 0x5d, 0x4a, 0x37, 0x36, 0x97, 0x31, 0x1e, 0x12, 0xe7, 0xbb, 0x08, 0x67, 0xa5, 0x23, 0xd7, 0xfb, 0x97, 0xd8, 0x6a, 0x03, 0xb1, 0xf8, 0x7f, 0xda, 0x58, 0xd9, 0x3f, 0x73, 0x4a, 0x53, 0xe1, 0x7b, - /* (2^ 69)P */ 0x55, 0x83, 0x98, 0x78, 0x6c, 0x56, 0x5e, 0xed, 0xf7, 0x23, 0x3e, 0x4c, 0x7d, 0x09, 0x2d, 0x09, 0x9c, 0x58, 0x8b, 0x32, 0xca, 0xfe, 0xbf, 0x47, 0x03, 0xeb, 0x4d, 0xe7, 0xeb, 0x9c, 0x83, 0x05, 0x68, 0xaa, 0x80, 0x89, 0x44, 0xf9, 0xd4, 0xdc, 0xdb, 0xb1, 0xdb, 0x77, 0xac, 0xf9, 0x2a, 0xae, 0x35, 0xac, 0x74, 0xb5, 0x95, 0x62, 0x18, 0x85, - /* (2^ 70)P */ 0xab, 0x82, 0x7e, 0x10, 0xd7, 0xe6, 0x57, 0xd1, 0x66, 0x12, 0x31, 0x9c, 0x9c, 0xa6, 0x27, 0x59, 0x71, 0x2e, 0xeb, 0xa0, 0x68, 0xc5, 0x87, 0x51, 0xf4, 0xca, 0x3f, 0x98, 0x56, 0xb0, 0x89, 0xb1, 0xc7, 0x7b, 0x46, 0xb3, 0xae, 0x36, 0xf2, 0xee, 0x15, 0x1a, 0x60, 0xf4, 0x50, 0x76, 0x4f, 0xc4, 0x53, 0x0d, 0x36, 0x4d, 0x31, 0xb1, 0x20, 0x51, - /* (2^ 71)P */ 0xf7, 0x1d, 0x8c, 0x1b, 0x5e, 0xe5, 0x02, 0x6f, 0xc5, 0xa5, 0xe0, 0x5f, 0xc6, 0xb6, 0x63, 0x43, 0xaf, 0x3c, 0x19, 0x6c, 0xf4, 0xaf, 0xa4, 0x33, 0xb1, 0x0a, 0x37, 0x3d, 0xd9, 0x4d, 0xe2, 0x29, 0x24, 0x26, 0x94, 0x7c, 0x02, 0xe4, 0xe2, 0xf2, 0xbe, 0xbd, 0xac, 0x1b, 0x48, 0xb8, 0xdd, 0xe9, 0x0d, 0x9a, 0x50, 0x1a, 0x98, 0x71, 0x6e, 0xdc, - /* (2^ 72)P */ 0x9f, 0x40, 0xb1, 0xb3, 0x66, 0x28, 0x6c, 0xfe, 0xa6, 0x7d, 0xf8, 0x3e, 0xb8, 0xf3, 0xde, 0x52, 0x76, 0x52, 0xa3, 0x92, 0x98, 0x23, 0xab, 0x4f, 0x88, 0x97, 0xfc, 0x22, 0xe1, 0x6b, 0x67, 0xcd, 0x13, 0x95, 0xda, 0x65, 0xdd, 0x3b, 0x67, 0x3f, 0x5f, 0x4c, 0xf2, 0x8a, 0xad, 0x98, 0xa7, 0x94, 0x24, 0x45, 0x87, 0x11, 0x7c, 0x75, 0x79, 0x85, - /* (2^ 73)P */ 0x70, 0xbf, 0xf9, 0x3b, 0xa9, 0x44, 0x57, 0x72, 0x96, 0xc9, 0xa4, 0x98, 0x65, 0xbf, 0x87, 0xb3, 0x3a, 0x39, 0x12, 0xde, 0xe5, 0x39, 0x01, 0x4f, 0xf7, 0xc0, 0x71, 0x52, 0x36, 0x85, 0xb3, 0x18, 0xf8, 0x14, 0xc0, 0x6d, 0xae, 0x9e, 0x4f, 0xb0, 0x72, 0x87, 0xac, 0x5c, 0xd1, 0x6c, 0x41, 0x6c, 0x90, 0x9d, 0x22, 0x81, 0xe4, 0x2b, 0xea, 0xe5, - /* (2^ 74)P */ 0xfc, 0xea, 0x1a, 0x65, 0xd9, 0x49, 0x6a, 0x39, 0xb5, 0x96, 0x72, 0x7b, 0x32, 0xf1, 0xd0, 0xe9, 0x45, 0xd9, 0x31, 0x55, 0xc7, 0x34, 0xe9, 0x5a, 0xec, 0x73, 0x0b, 0x03, 0xc4, 0xb3, 0xe6, 0xc9, 0x5e, 0x0a, 0x17, 0xfe, 0x53, 0x66, 0x7f, 0x21, 0x18, 0x74, 0x54, 0x1b, 0xc9, 0x49, 0x16, 0xd2, 0x48, 0xaf, 0x5b, 0x47, 0x7b, 0xeb, 0xaa, 0xc9, - /* (2^ 75)P */ 0x47, 0x04, 0xf5, 0x5a, 0x87, 0x77, 0x9e, 0x21, 0x34, 0x4e, 0x83, 0x88, 0xaf, 0x02, 0x1d, 0xb0, 0x5a, 0x1d, 0x1d, 0x7d, 0x8d, 0x2c, 0xd3, 0x8d, 0x63, 0xa9, 0x45, 0xfb, 0x15, 0x6d, 0x86, 0x45, 0xcd, 0x38, 0x0e, 0xf7, 0x37, 0x79, 0xed, 0x6d, 0x5a, 0xbc, 0x32, 0xcc, 0x66, 0xf1, 0x3a, 0xb2, 0x87, 0x6f, 0x70, 0x71, 0xd9, 0xf2, 0xfa, 0x7b, - /* (2^ 76)P */ 0x68, 0x07, 0xdc, 0x61, 0x40, 0xe4, 0xec, 0x32, 0xc8, 0xbe, 0x66, 0x30, 0x54, 0x80, 0xfd, 0x13, 0x7a, 0xef, 0xae, 0xed, 0x2e, 0x00, 0x6d, 0x3f, 0xbd, 0xfc, 0x91, 0x24, 0x53, 0x7f, 0x63, 0x9d, 0x2e, 0xe3, 0x76, 0xe0, 0xf3, 0xe1, 0x8f, 0x7a, 0xc4, 0x77, 0x0c, 0x91, 0xc0, 0xc2, 0x18, 0x6b, 0x04, 0xad, 0xb6, 0x70, 0x9a, 0x64, 0xc5, 0x82, - /* (2^ 77)P */ 0x7f, 0xea, 0x13, 0xd8, 0x9e, 0xfc, 0x5b, 0x06, 0xb5, 0x4f, 0xda, 0x38, 0xe0, 0x9c, 0xd2, 0x3a, 0xc1, 0x1c, 0x62, 0x70, 0x7f, 0xc6, 0x24, 0x0a, 0x47, 0x04, 0x01, 0xc4, 0x55, 0x09, 0xd1, 0x7a, 0x07, 0xba, 0xa3, 0x80, 0x4f, 0xc1, 0x65, 0x36, 0x6d, 0xc0, 0x10, 0xcf, 0x94, 0xa9, 0xa2, 0x01, 0x44, 0xd1, 0xf9, 0x1c, 0x4c, 0xfb, 0xf8, 0x99, - /* (2^ 78)P */ 0x6c, 0xb9, 0x6b, 0xee, 0x43, 0x5b, 0xb9, 0xbb, 0xee, 0x2e, 0x52, 0xc1, 0xc6, 0xb9, 0x61, 0xd2, 0x93, 0xa5, 0xaf, 0x52, 0xf4, 0xa4, 0x1a, 0x51, 0x61, 0xa7, 0xcb, 0x9e, 0xbb, 0x56, 0x65, 0xe2, 0xbf, 0x75, 0xb9, 0x9c, 0x50, 0x96, 0x60, 0x81, 0x74, 0x47, 0xc0, 0x04, 0x88, 0x71, 0x76, 0x39, 0x9a, 0xa7, 0xb1, 0x4e, 0x43, 0x15, 0xe0, 0xbb, - /* (2^ 79)P */ 0xbb, 0xce, 0xe2, 0xbb, 0xf9, 0x17, 0x0f, 0x82, 0x40, 0xad, 0x73, 0xe3, 0xeb, 0x3b, 0x06, 0x1a, 0xcf, 0x8e, 0x6e, 0x28, 0xb8, 0x26, 0xd9, 0x5b, 0xb7, 0xb3, 0xcf, 0xb4, 0x6a, 0x1c, 0xbf, 0x7f, 0xb8, 0xb5, 0x79, 0xcf, 0x45, 0x68, 0x7d, 0xc5, 0xeb, 0xf3, 0xbe, 0x39, 0x40, 0xfc, 0x07, 0x90, 0x7a, 0x62, 0xad, 0x86, 0x08, 0x71, 0x25, 0xe1, - /* (2^ 80)P */ 0x9b, 0x46, 0xac, 0xef, 0xc1, 0x4e, 0xa1, 0x97, 0x95, 0x76, 0xf9, 0x1b, 0xc2, 0xb2, 0x6a, 0x41, 0xea, 0x80, 0x3d, 0xe9, 0x08, 0x52, 0x5a, 0xe3, 0xf2, 0x08, 0xc5, 0xea, 0x39, 0x3f, 0x44, 0x71, 0x4d, 0xea, 0x0d, 0x05, 0x23, 0xe4, 0x2e, 0x3c, 0x89, 0xfe, 0x12, 0x8a, 0x95, 0x42, 0x0a, 0x68, 0xea, 0x5a, 0x28, 0x06, 0x9e, 0xe3, 0x5f, 0xe0, - /* (2^ 81)P */ 0x00, 0x61, 0x6c, 0x98, 0x9b, 0xe7, 0xb9, 0x06, 0x1c, 0xc5, 0x1b, 0xed, 0xbe, 0xc8, 0xb3, 0xea, 0x87, 0xf0, 0xc4, 0x24, 0x7d, 0xbb, 0x5d, 0xa4, 0x1d, 0x7a, 0x16, 0x00, 0x55, 0x94, 0x67, 0x78, 0xbd, 0x58, 0x02, 0x82, 0x90, 0x53, 0x76, 0xd4, 0x72, 0x99, 0x51, 0x6f, 0x7b, 0xcf, 0x80, 0x30, 0x31, 0x3b, 0x01, 0xc7, 0xc1, 0xef, 0xe6, 0x42, - /* (2^ 82)P */ 0xe2, 0x35, 0xaf, 0x4b, 0x79, 0xc6, 0x12, 0x24, 0x99, 0xc0, 0x68, 0xb0, 0x43, 0x3e, 0xe5, 0xef, 0xe2, 0x29, 0xea, 0xb8, 0xb3, 0xbc, 0x6a, 0x53, 0x2c, 0x69, 0x18, 0x5a, 0xf9, 0x15, 0xae, 0x66, 0x58, 0x18, 0xd3, 0x2d, 0x4b, 0x00, 0xfd, 0x84, 0xab, 0x4f, 0xae, 0x70, 0x6b, 0x9e, 0x9a, 0xdf, 0x83, 0xfd, 0x2e, 0x3c, 0xcf, 0xf8, 0x88, 0x5b, - /* (2^ 83)P */ 0xa4, 0x90, 0x31, 0x85, 0x13, 0xcd, 0xdf, 0x64, 0xc9, 0xa1, 0x0b, 0xe7, 0xb6, 0x73, 0x8a, 0x1b, 0x22, 0x78, 0x4c, 0xd4, 0xae, 0x48, 0x18, 0x00, 0x00, 0xa8, 0x9f, 0x06, 0xf9, 0xfb, 0x2d, 0xc3, 0xb1, 0x2a, 0xbc, 0x13, 0x99, 0x57, 0xaf, 0xf0, 0x8d, 0x61, 0x54, 0x29, 0xd5, 0xf2, 0x72, 0x00, 0x96, 0xd1, 0x85, 0x12, 0x8a, 0xf0, 0x23, 0xfb, - /* (2^ 84)P */ 0x69, 0xc7, 0xdb, 0xd9, 0x92, 0x75, 0x08, 0x9b, 0xeb, 0xa5, 0x93, 0xd1, 0x1a, 0xf4, 0xf5, 0xaf, 0xe6, 0xc4, 0x4a, 0x0d, 0x35, 0x26, 0x39, 0x9d, 0xd3, 0x17, 0x3e, 0xae, 0x2d, 0xbf, 0x73, 0x9f, 0xb7, 0x74, 0x91, 0xd1, 0xd8, 0x5c, 0x14, 0xf9, 0x75, 0xdf, 0xeb, 0xc2, 0x22, 0xd8, 0x14, 0x8d, 0x86, 0x23, 0x4d, 0xd1, 0x2d, 0xdb, 0x6b, 0x42, - /* (2^ 85)P */ 0x8c, 0xda, 0xc6, 0xf8, 0x71, 0xba, 0x2b, 0x06, 0x78, 0xae, 0xcc, 0x3a, 0xe3, 0xe3, 0xa1, 0x8b, 0xe2, 0x34, 0x6d, 0x28, 0x9e, 0x46, 0x13, 0x4d, 0x9e, 0xa6, 0x73, 0x49, 0x65, 0x79, 0x88, 0xb9, 0x3a, 0xd1, 0x6d, 0x2f, 0x48, 0x2b, 0x0a, 0x7f, 0x58, 0x20, 0x37, 0xf4, 0x0e, 0xbb, 0x4a, 0x95, 0x58, 0x0c, 0x88, 0x30, 0xc4, 0x74, 0xdd, 0xfd, - /* (2^ 86)P */ 0x6d, 0x13, 0x4e, 0x89, 0x2d, 0xa9, 0xa3, 0xed, 0x09, 0xe3, 0x0e, 0x71, 0x3e, 0x4a, 0xab, 0x90, 0xde, 0x03, 0xeb, 0x56, 0x46, 0x60, 0x06, 0xf5, 0x71, 0xe5, 0xee, 0x9b, 0xef, 0xff, 0xc4, 0x2c, 0x9f, 0x37, 0x48, 0x45, 0x94, 0x12, 0x41, 0x81, 0x15, 0x70, 0x91, 0x99, 0x5e, 0x56, 0x6b, 0xf4, 0xa6, 0xc9, 0xf5, 0x69, 0x9d, 0x78, 0x37, 0x57, - /* (2^ 87)P */ 0xf3, 0x51, 0x57, 0x7e, 0x43, 0x6f, 0xc6, 0x67, 0x59, 0x0c, 0xcf, 0x94, 0xe6, 0x3d, 0xb5, 0x07, 0xc9, 0x77, 0x48, 0xc9, 0x68, 0x0d, 0x98, 0x36, 0x62, 0x35, 0x38, 0x1c, 0xf5, 0xc5, 0xec, 0x66, 0x78, 0xfe, 0x47, 0xab, 0x26, 0xd6, 0x44, 0xb6, 0x06, 0x0f, 0x89, 0xe3, 0x19, 0x40, 0x1a, 0xe7, 0xd8, 0x65, 0x55, 0xf7, 0x1a, 0xfc, 0xa3, 0x0e, - /* (2^ 88)P */ 0x0e, 0x30, 0xa6, 0xb7, 0x58, 0x60, 0x62, 0x2a, 0x6c, 0x13, 0xa8, 0x14, 0x9b, 0xb8, 0xf2, 0x70, 0xd8, 0xb1, 0x71, 0x88, 0x8c, 0x18, 0x31, 0x25, 0x93, 0x90, 0xb4, 0xc7, 0x49, 0xd8, 0xd4, 0xdb, 0x1e, 0x1e, 0x7f, 0xaa, 0xba, 0xc9, 0xf2, 0x5d, 0xa9, 0x3a, 0x43, 0xb4, 0x5c, 0xee, 0x7b, 0xc7, 0x97, 0xb7, 0x66, 0xd7, 0x23, 0xd9, 0x22, 0x59, - /* (2^ 89)P */ 0x28, 0x19, 0xa6, 0xf9, 0x89, 0x20, 0x78, 0xd4, 0x6d, 0xcb, 0x79, 0x8f, 0x61, 0x6f, 0xb2, 0x5c, 0x4f, 0xa6, 0x54, 0x84, 0x95, 0x24, 0x36, 0x64, 0xcb, 0x39, 0xe7, 0x8f, 0x97, 0x9c, 0x5c, 0x3c, 0xfb, 0x51, 0x11, 0x01, 0x17, 0xdb, 0xc9, 0x9b, 0x51, 0x03, 0x9a, 0xe9, 0xe5, 0x24, 0x1e, 0xf5, 0xda, 0xe0, 0x48, 0x02, 0x23, 0xd0, 0x2c, 0x81, - /* (2^ 90)P */ 0x42, 0x1b, 0xe4, 0x91, 0x85, 0x2a, 0x0c, 0xd2, 0x28, 0x66, 0x57, 0x9e, 0x33, 0x8d, 0x25, 0x71, 0x10, 0x65, 0x76, 0xa2, 0x8c, 0x21, 0x86, 0x81, 0x15, 0xc2, 0x27, 0xeb, 0x54, 0x2d, 0x4f, 0x6c, 0xe6, 0xd6, 0x24, 0x9c, 0x1a, 0x12, 0xb8, 0x81, 0xe2, 0x0a, 0xf3, 0xd3, 0xf0, 0xd3, 0xe1, 0x74, 0x1f, 0x9b, 0x11, 0x47, 0xd0, 0xcf, 0xb6, 0x54, - /* (2^ 91)P */ 0x26, 0x45, 0xa2, 0x10, 0xd4, 0x2d, 0xae, 0xc0, 0xb0, 0xe8, 0x86, 0xb3, 0xc7, 0xea, 0x70, 0x87, 0x61, 0xb5, 0xa5, 0x55, 0xbe, 0x88, 0x1d, 0x7a, 0xd9, 0x6f, 0xeb, 0x83, 0xe2, 0x44, 0x7f, 0x98, 0x04, 0xd6, 0x50, 0x9d, 0xa7, 0x86, 0x66, 0x09, 0x63, 0xe1, 0xed, 0x72, 0xb1, 0xe4, 0x1d, 0x3a, 0xfd, 0x47, 0xce, 0x1c, 0xaa, 0x3b, 0x8f, 0x1b, - /* (2^ 92)P */ 0xf4, 0x3c, 0x4a, 0xb6, 0xc2, 0x9c, 0xe0, 0x2e, 0xb7, 0x38, 0xea, 0x61, 0x35, 0x97, 0x10, 0x90, 0xae, 0x22, 0x48, 0xb3, 0xa9, 0xc6, 0x7a, 0xbb, 0x23, 0xf2, 0xf8, 0x1b, 0xa7, 0xa1, 0x79, 0xcc, 0xc4, 0xf8, 0x08, 0x76, 0x8a, 0x5a, 0x1c, 0x1b, 0xc5, 0x33, 0x91, 0xa9, 0xb8, 0xb9, 0xd3, 0xf8, 0x49, 0xcd, 0xe5, 0x82, 0x43, 0xf7, 0xca, 0x68, - /* (2^ 93)P */ 0x38, 0xba, 0xae, 0x44, 0xfe, 0x57, 0x64, 0x56, 0x7c, 0x0e, 0x9c, 0xca, 0xff, 0xa9, 0x82, 0xbb, 0x38, 0x4a, 0xa7, 0xf7, 0x47, 0xab, 0xbe, 0x6d, 0x23, 0x0b, 0x8a, 0xed, 0xc2, 0xb9, 0x8f, 0xf1, 0xec, 0x91, 0x44, 0x73, 0x64, 0xba, 0xd5, 0x8f, 0x37, 0x38, 0x0d, 0xd5, 0xf8, 0x73, 0x57, 0xb6, 0xc2, 0x45, 0xdc, 0x25, 0xb2, 0xb6, 0xea, 0xd9, - /* (2^ 94)P */ 0xbf, 0xe9, 0x1a, 0x40, 0x4d, 0xcc, 0xe6, 0x1d, 0x70, 0x1a, 0x65, 0xcc, 0x34, 0x2c, 0x37, 0x2c, 0x2d, 0x6b, 0x6d, 0xe5, 0x2f, 0x19, 0x9e, 0xe4, 0xe1, 0xaa, 0xd4, 0xab, 0x54, 0xf4, 0xa8, 0xe4, 0x69, 0x2d, 0x8e, 0x4d, 0xd7, 0xac, 0xb0, 0x5b, 0xfe, 0xe3, 0x26, 0x07, 0xc3, 0xf8, 0x1b, 0x43, 0xa8, 0x1d, 0x64, 0xa5, 0x25, 0x88, 0xbb, 0x77, - /* (2^ 95)P */ 0x92, 0xcd, 0x6e, 0xa0, 0x79, 0x04, 0x18, 0xf4, 0x11, 0x58, 0x48, 0xb5, 0x3c, 0x7b, 0xd1, 0xcc, 0xd3, 0x14, 0x2c, 0xa0, 0xdd, 0x04, 0x44, 0x11, 0xb3, 0x6d, 0x2f, 0x0d, 0xf5, 0x2a, 0x75, 0x5d, 0x1d, 0xda, 0x86, 0x8d, 0x7d, 0x6b, 0x32, 0x68, 0xb6, 0x6c, 0x64, 0x9e, 0xde, 0x80, 0x88, 0xce, 0x08, 0xbf, 0x0b, 0xe5, 0x8e, 0x4f, 0x1d, 0xfb, - /* (2^ 96)P */ 0xaf, 0xe8, 0x85, 0xbf, 0x7f, 0x37, 0x8d, 0x66, 0x7c, 0xd5, 0xd3, 0x96, 0xa5, 0x81, 0x67, 0x95, 0xff, 0x48, 0xde, 0xde, 0xd7, 0x7a, 0x46, 0x34, 0xb1, 0x13, 0x70, 0x29, 0xed, 0x87, 0x90, 0xb0, 0x40, 0x2c, 0xa6, 0x43, 0x6e, 0xb6, 0xbc, 0x48, 0x8a, 0xc1, 0xae, 0xb8, 0xd4, 0xe2, 0xc0, 0x32, 0xb2, 0xa6, 0x2a, 0x8f, 0xb5, 0x16, 0x9e, 0xc3, - /* (2^ 97)P */ 0xff, 0x4d, 0xd2, 0xd6, 0x74, 0xef, 0x2c, 0x96, 0xc1, 0x11, 0xa8, 0xb8, 0xfe, 0x94, 0x87, 0x3e, 0xa0, 0xfb, 0x57, 0xa3, 0xfc, 0x7a, 0x7e, 0x6a, 0x59, 0x6c, 0x54, 0xbb, 0xbb, 0xa2, 0x25, 0x38, 0x1b, 0xdf, 0x5d, 0x7b, 0x94, 0x14, 0xde, 0x07, 0x6e, 0xd3, 0xab, 0x02, 0x26, 0x74, 0x16, 0x12, 0xdf, 0x2e, 0x2a, 0xa7, 0xb0, 0xe8, 0x29, 0xc0, - /* (2^ 98)P */ 0x6a, 0x38, 0x0b, 0xd3, 0xba, 0x45, 0x23, 0xe0, 0x04, 0x3b, 0x83, 0x39, 0xc5, 0x11, 0xe6, 0xcf, 0x39, 0x0a, 0xb3, 0xb0, 0x3b, 0x27, 0x29, 0x63, 0x1c, 0xf3, 0x00, 0xe6, 0xd2, 0x55, 0x21, 0x1f, 0x84, 0x97, 0x9f, 0x01, 0x49, 0x43, 0x30, 0x5f, 0xe0, 0x1d, 0x24, 0xc4, 0x4e, 0xa0, 0x2b, 0x0b, 0x12, 0x55, 0xc3, 0x27, 0xae, 0x08, 0x83, 0x7c, - /* (2^ 99)P */ 0x5d, 0x1a, 0xb7, 0xa9, 0xf5, 0xfd, 0xec, 0xad, 0xb7, 0x87, 0x02, 0x5f, 0x0d, 0x30, 0x4d, 0xe2, 0x65, 0x87, 0xa4, 0x41, 0x45, 0x1d, 0x67, 0xe0, 0x30, 0x5c, 0x13, 0x87, 0xf6, 0x2e, 0x08, 0xc1, 0xc7, 0x12, 0x45, 0xc8, 0x9b, 0xad, 0xb8, 0xd5, 0x57, 0xbb, 0x5c, 0x48, 0x3a, 0xe1, 0x91, 0x5e, 0xf6, 0x4d, 0x8a, 0x63, 0x75, 0x69, 0x0c, 0x01, - /* (2^100)P */ 0x8f, 0x53, 0x2d, 0xa0, 0x71, 0x3d, 0xfc, 0x45, 0x10, 0x96, 0xcf, 0x56, 0xf9, 0xbb, 0x40, 0x3c, 0x86, 0x52, 0x76, 0xbe, 0x84, 0xf9, 0xa6, 0x9d, 0x3d, 0x27, 0xbe, 0xb4, 0x00, 0x49, 0x94, 0xf5, 0x5d, 0xe1, 0x62, 0x85, 0x66, 0xe5, 0xb8, 0x20, 0x2c, 0x09, 0x7d, 0x9d, 0x3d, 0x6e, 0x74, 0x39, 0xab, 0xad, 0xa0, 0x90, 0x97, 0x5f, 0xbb, 0xa7, - /* (2^101)P */ 0xdb, 0x2d, 0x99, 0x08, 0x16, 0x46, 0x83, 0x7a, 0xa8, 0xea, 0x3d, 0x28, 0x5b, 0x49, 0xfc, 0xb9, 0x6d, 0x00, 0x9e, 0x54, 0x4f, 0x47, 0x64, 0x9b, 0x58, 0x4d, 0x07, 0x0c, 0x6f, 0x29, 0x56, 0x0b, 0x00, 0x14, 0x85, 0x96, 0x41, 0x04, 0xb9, 0x5c, 0xa4, 0xf6, 0x16, 0x73, 0x6a, 0xc7, 0x62, 0x0c, 0x65, 0x2f, 0x93, 0xbf, 0xf7, 0xb9, 0xb7, 0xf1, - /* (2^102)P */ 0xeb, 0x6d, 0xb3, 0x46, 0x32, 0xd2, 0xcb, 0x08, 0x94, 0x14, 0xbf, 0x3f, 0xc5, 0xcb, 0x5f, 0x9f, 0x8a, 0x89, 0x0c, 0x1b, 0x45, 0xad, 0x4c, 0x50, 0xb4, 0xe1, 0xa0, 0x6b, 0x11, 0x92, 0xaf, 0x1f, 0x00, 0xcc, 0xe5, 0x13, 0x7e, 0xe4, 0x2e, 0xa0, 0x57, 0xf3, 0xa7, 0x84, 0x79, 0x7a, 0xc2, 0xb7, 0xb7, 0xfc, 0x5d, 0xa5, 0xa9, 0x64, 0xcc, 0xd8, - /* (2^103)P */ 0xa9, 0xc4, 0x12, 0x8b, 0x34, 0x78, 0x3e, 0x38, 0xfd, 0x3f, 0x87, 0xfa, 0x88, 0x94, 0xd5, 0xd9, 0x7f, 0xeb, 0x58, 0xff, 0xb9, 0x45, 0xdb, 0xa1, 0xed, 0x22, 0x28, 0x1d, 0x00, 0x6d, 0x79, 0x85, 0x7a, 0x75, 0x5d, 0xf0, 0xb1, 0x9e, 0x47, 0x28, 0x8c, 0x62, 0xdf, 0xfb, 0x4c, 0x7b, 0xc5, 0x1a, 0x42, 0x95, 0xef, 0x9a, 0xb7, 0x27, 0x7e, 0xda, - /* (2^104)P */ 0xca, 0xd5, 0xc0, 0x17, 0xa1, 0x66, 0x79, 0x9c, 0x2a, 0xb7, 0x0a, 0xfe, 0x62, 0xe4, 0x26, 0x78, 0x90, 0xa7, 0xcb, 0xb0, 0x4f, 0x6d, 0xf9, 0x8f, 0xf7, 0x7d, 0xac, 0xb8, 0x78, 0x1f, 0x41, 0xea, 0x97, 0x1e, 0x62, 0x97, 0x43, 0x80, 0x58, 0x80, 0xb6, 0x69, 0x7d, 0xee, 0x16, 0xd2, 0xa1, 0x81, 0xd7, 0xb1, 0x27, 0x03, 0x48, 0xda, 0xab, 0xec, - /* (2^105)P */ 0x5b, 0xed, 0x40, 0x8e, 0x8c, 0xc1, 0x66, 0x90, 0x7f, 0x0c, 0xb2, 0xfc, 0xbd, 0x16, 0xac, 0x7d, 0x4c, 0x6a, 0xf9, 0xae, 0xe7, 0x4e, 0x11, 0x12, 0xe9, 0xbe, 0x17, 0x09, 0xc6, 0xc1, 0x5e, 0xb5, 0x7b, 0x50, 0x5c, 0x27, 0xfb, 0x80, 0xab, 0x01, 0xfa, 0x5b, 0x9b, 0x75, 0x16, 0x6e, 0xb2, 0x5c, 0x8c, 0x2f, 0xa5, 0x6a, 0x1a, 0x68, 0xa6, 0x90, - /* (2^106)P */ 0x75, 0xfe, 0xb6, 0x96, 0x96, 0x87, 0x4c, 0x12, 0xa9, 0xd1, 0xd8, 0x03, 0xa3, 0xc1, 0x15, 0x96, 0xe8, 0xa0, 0x75, 0x82, 0xa0, 0x6d, 0xea, 0x54, 0xdc, 0x5f, 0x0d, 0x7e, 0xf6, 0x70, 0xb5, 0xdc, 0x7a, 0xf6, 0xc4, 0xd4, 0x21, 0x49, 0xf5, 0xd4, 0x14, 0x6d, 0x48, 0x1d, 0x7c, 0x99, 0x42, 0xdf, 0x78, 0x6b, 0x9d, 0xb9, 0x30, 0x3c, 0xd0, 0x29, - /* (2^107)P */ 0x85, 0xd6, 0xd8, 0xf3, 0x91, 0x74, 0xdd, 0xbd, 0x72, 0x96, 0x10, 0xe4, 0x76, 0x02, 0x5a, 0x72, 0x67, 0xd3, 0x17, 0x72, 0x14, 0x9a, 0x20, 0x5b, 0x0f, 0x8d, 0xed, 0x6d, 0x4e, 0xe3, 0xd9, 0x82, 0xc2, 0x99, 0xee, 0x39, 0x61, 0x69, 0x8a, 0x24, 0x01, 0x92, 0x15, 0xe7, 0xfc, 0xf9, 0x4d, 0xac, 0xf1, 0x30, 0x49, 0x01, 0x0b, 0x6e, 0x0f, 0x20, - /* (2^108)P */ 0xd8, 0x25, 0x94, 0x5e, 0x43, 0x29, 0xf5, 0xcc, 0xe8, 0xe3, 0x55, 0x41, 0x3c, 0x9f, 0x58, 0x5b, 0x00, 0xeb, 0xc5, 0xdf, 0xcf, 0xfb, 0xfd, 0x6e, 0x92, 0xec, 0x99, 0x30, 0xd6, 0x05, 0xdd, 0x80, 0x7a, 0x5d, 0x6d, 0x16, 0x85, 0xd8, 0x9d, 0x43, 0x65, 0xd8, 0x2c, 0x33, 0x2f, 0x5c, 0x41, 0xea, 0xb7, 0x95, 0x77, 0xf2, 0x9e, 0x59, 0x09, 0xe8, - /* (2^109)P */ 0x00, 0xa0, 0x03, 0x80, 0xcd, 0x60, 0xe5, 0x17, 0xd4, 0x15, 0x99, 0xdd, 0x4f, 0xbf, 0x66, 0xb8, 0xc0, 0xf5, 0xf9, 0xfc, 0x6d, 0x42, 0x18, 0x34, 0x1c, 0x7d, 0x5b, 0xb5, 0x09, 0xd0, 0x99, 0x57, 0x81, 0x0b, 0x62, 0xb3, 0xa2, 0xf9, 0x0b, 0xae, 0x95, 0xb8, 0xc2, 0x3b, 0x0d, 0x5b, 0x00, 0xf1, 0xed, 0xbc, 0x05, 0x9d, 0x61, 0xbc, 0x73, 0x9d, - /* (2^110)P */ 0xd4, 0xdb, 0x29, 0xe5, 0x85, 0xe9, 0xc6, 0x89, 0x2a, 0xa8, 0x54, 0xab, 0xb3, 0x7f, 0x88, 0xc0, 0x4d, 0xe0, 0xd1, 0x74, 0x6e, 0xa3, 0xa7, 0x39, 0xd5, 0xcc, 0xa1, 0x8a, 0xcb, 0x5b, 0x34, 0xad, 0x92, 0xb4, 0xd8, 0xd5, 0x17, 0xf6, 0x77, 0x18, 0x9e, 0xaf, 0x45, 0x3b, 0x03, 0xe2, 0xf8, 0x52, 0x60, 0xdc, 0x15, 0x20, 0x9e, 0xdf, 0xd8, 0x5d, - /* (2^111)P */ 0x02, 0xc1, 0xac, 0x1a, 0x15, 0x8e, 0x6c, 0xf5, 0x1e, 0x1e, 0xba, 0x7e, 0xc2, 0xda, 0x7d, 0x02, 0xda, 0x43, 0xae, 0x04, 0x70, 0x28, 0x54, 0x78, 0x94, 0xf5, 0x4f, 0x07, 0x84, 0x8f, 0xed, 0xaa, 0xc0, 0xb8, 0xcd, 0x7f, 0x7e, 0x33, 0xa3, 0xbe, 0x21, 0x29, 0xc8, 0x56, 0x34, 0xc0, 0x76, 0x87, 0x8f, 0xc7, 0x73, 0x58, 0x90, 0x16, 0xfc, 0xd6, - /* (2^112)P */ 0xb8, 0x3f, 0xe1, 0xdf, 0x3a, 0x91, 0x25, 0x0c, 0xf6, 0x47, 0xa8, 0x89, 0xc4, 0xc6, 0x61, 0xec, 0x86, 0x2c, 0xfd, 0xbe, 0xa4, 0x6f, 0xc2, 0xd4, 0x46, 0x19, 0x70, 0x5d, 0x09, 0x02, 0x86, 0xd3, 0x4b, 0xe9, 0x16, 0x7b, 0xf0, 0x0d, 0x6c, 0xff, 0x91, 0x05, 0xbf, 0x55, 0xb4, 0x00, 0x8d, 0xe5, 0x6d, 0x68, 0x20, 0x90, 0x12, 0xb5, 0x5c, 0x32, - /* (2^113)P */ 0x80, 0x45, 0xc8, 0x51, 0x87, 0xba, 0x1c, 0x5c, 0xcf, 0x5f, 0x4b, 0x3c, 0x9e, 0x3b, 0x36, 0xd2, 0x26, 0xa2, 0x7f, 0xab, 0xb7, 0xbf, 0xda, 0x68, 0x23, 0x8f, 0xc3, 0xa0, 0xfd, 0xad, 0xf1, 0x56, 0x3b, 0xd0, 0x75, 0x2b, 0x44, 0x61, 0xd8, 0xf4, 0xf1, 0x05, 0x49, 0x53, 0x07, 0xee, 0x47, 0xef, 0xc0, 0x7c, 0x9d, 0xe4, 0x15, 0x88, 0xc5, 0x47, - /* (2^114)P */ 0x2d, 0xb5, 0x09, 0x80, 0xb9, 0xd3, 0xd8, 0xfe, 0x4c, 0xd2, 0xa6, 0x6e, 0xd3, 0x75, 0xcf, 0xb0, 0x99, 0xcb, 0x50, 0x8d, 0xe9, 0x67, 0x9b, 0x20, 0xe8, 0x57, 0xd8, 0x14, 0x85, 0x73, 0x6a, 0x74, 0xe0, 0x99, 0xf0, 0x6b, 0x6e, 0x59, 0x30, 0x31, 0x33, 0x96, 0x5f, 0xa1, 0x0c, 0x1b, 0xf4, 0xca, 0x09, 0xe1, 0x9b, 0xb5, 0xcf, 0x6d, 0x0b, 0xeb, - /* (2^115)P */ 0x1a, 0xde, 0x50, 0xa9, 0xac, 0x3e, 0x10, 0x43, 0x4f, 0x82, 0x4f, 0xc0, 0xfe, 0x3f, 0x33, 0xd2, 0x64, 0x86, 0x50, 0xa9, 0x51, 0x76, 0x5e, 0x50, 0x97, 0x6c, 0x73, 0x8d, 0x77, 0xa3, 0x75, 0x03, 0xbc, 0xc9, 0xfb, 0x50, 0xd9, 0x6d, 0x16, 0xad, 0x5d, 0x32, 0x3d, 0xac, 0x44, 0xdf, 0x51, 0xf7, 0x19, 0xd4, 0x0b, 0x57, 0x78, 0x0b, 0x81, 0x4e, - /* (2^116)P */ 0x32, 0x24, 0xf1, 0x6c, 0x55, 0x62, 0x1d, 0xb3, 0x1f, 0xda, 0xfa, 0x6a, 0x8f, 0x98, 0x01, 0x16, 0xde, 0x44, 0x50, 0x0d, 0x2e, 0x6c, 0x0b, 0xa2, 0xd3, 0x74, 0x0e, 0xa9, 0xbf, 0x8d, 0xa9, 0xc8, 0xc8, 0x2f, 0x62, 0xc1, 0x35, 0x5e, 0xfd, 0x3a, 0xb3, 0x83, 0x2d, 0xee, 0x4e, 0xfd, 0x5c, 0x5e, 0xad, 0x85, 0xa5, 0x10, 0xb5, 0x4f, 0x34, 0xa7, - /* (2^117)P */ 0xd1, 0x58, 0x6f, 0xe6, 0x54, 0x2c, 0xc2, 0xcd, 0xcf, 0x83, 0xdc, 0x88, 0x0c, 0xb9, 0xb4, 0x62, 0x18, 0x89, 0x65, 0x28, 0xe9, 0x72, 0x4b, 0x65, 0xcf, 0xd6, 0x90, 0x88, 0xd7, 0x76, 0x17, 0x4f, 0x74, 0x64, 0x1e, 0xcb, 0xd3, 0xf5, 0x4b, 0xaa, 0x2e, 0x4d, 0x2d, 0x7c, 0x13, 0x1f, 0xfd, 0xd9, 0x60, 0x83, 0x7e, 0xda, 0x64, 0x1c, 0xdc, 0x9f, - /* (2^118)P */ 0xad, 0xef, 0xac, 0x1b, 0xc1, 0x30, 0x5a, 0x15, 0xc9, 0x1f, 0xac, 0xf1, 0xca, 0x44, 0x95, 0x95, 0xea, 0xf2, 0x22, 0xe7, 0x8d, 0x25, 0xf0, 0xff, 0xd8, 0x71, 0xf7, 0xf8, 0x8f, 0x8f, 0xcd, 0xf4, 0x1e, 0xfe, 0x6c, 0x68, 0x04, 0xb8, 0x78, 0xa1, 0x5f, 0xa6, 0x5d, 0x5e, 0xf9, 0x8d, 0xea, 0x80, 0xcb, 0xf3, 0x17, 0xa6, 0x03, 0xc9, 0x38, 0xd5, - /* (2^119)P */ 0x79, 0x14, 0x31, 0xc3, 0x38, 0xe5, 0xaa, 0xbf, 0x17, 0xa3, 0x04, 0x4e, 0x80, 0x59, 0x9c, 0x9f, 0x19, 0x39, 0xe4, 0x2d, 0x23, 0x54, 0x4a, 0x7f, 0x3e, 0xf3, 0xd9, 0xc7, 0xba, 0x6c, 0x8f, 0x6b, 0xfa, 0x34, 0xb5, 0x23, 0x17, 0x1d, 0xff, 0x1d, 0xea, 0x1f, 0xd7, 0xba, 0x61, 0xb2, 0xe0, 0x38, 0x6a, 0xe9, 0xcf, 0x48, 0x5d, 0x6a, 0x10, 0x9c, - /* (2^120)P */ 0xc8, 0xbb, 0x13, 0x1c, 0x3f, 0x3c, 0x34, 0xfd, 0xac, 0x37, 0x52, 0x44, 0x25, 0xa8, 0xde, 0x1d, 0x63, 0xf4, 0x81, 0x9a, 0xbe, 0x0b, 0x74, 0x2e, 0xc8, 0x51, 0x16, 0xd3, 0xac, 0x4a, 0xaf, 0xe2, 0x5f, 0x3a, 0x89, 0x32, 0xd1, 0x9b, 0x7c, 0x90, 0x0d, 0xac, 0xdc, 0x8b, 0x73, 0x45, 0x45, 0x97, 0xb1, 0x90, 0x2c, 0x1b, 0x31, 0xca, 0xb1, 0x94, - /* (2^121)P */ 0x07, 0x28, 0xdd, 0x10, 0x14, 0xa5, 0x95, 0x7e, 0xf3, 0xe4, 0xd4, 0x14, 0xb4, 0x7e, 0x76, 0xdb, 0x42, 0xd6, 0x94, 0x3e, 0xeb, 0x44, 0x64, 0x88, 0x0d, 0xec, 0xc1, 0x21, 0xf0, 0x79, 0xe0, 0x83, 0x67, 0x55, 0x53, 0xc2, 0xf6, 0xc5, 0xc5, 0x89, 0x39, 0xe8, 0x42, 0xd0, 0x17, 0xbd, 0xff, 0x35, 0x59, 0x0e, 0xc3, 0x06, 0x86, 0xd4, 0x64, 0xcf, - /* (2^122)P */ 0x91, 0xa8, 0xdb, 0x57, 0x9b, 0xe2, 0x96, 0x31, 0x10, 0x6e, 0xd7, 0x9a, 0x97, 0xb3, 0xab, 0xb5, 0x15, 0x66, 0xbe, 0xcc, 0x6d, 0x9a, 0xac, 0x06, 0xb3, 0x0d, 0xaa, 0x4b, 0x9c, 0x96, 0x79, 0x6c, 0x34, 0xee, 0x9e, 0x53, 0x4d, 0x6e, 0xbd, 0x88, 0x02, 0xbf, 0x50, 0x54, 0x12, 0x5d, 0x01, 0x02, 0x46, 0xc6, 0x74, 0x02, 0x8c, 0x24, 0xae, 0xb1, - /* (2^123)P */ 0xf5, 0x22, 0xea, 0xac, 0x7d, 0x9c, 0x33, 0x8a, 0xa5, 0x36, 0x79, 0x6a, 0x4f, 0xa4, 0xdc, 0xa5, 0x73, 0x64, 0xc4, 0x6f, 0x43, 0x02, 0x3b, 0x94, 0x66, 0xd2, 0x4b, 0x4f, 0xf6, 0x45, 0x33, 0x5d, 0x10, 0x33, 0x18, 0x1e, 0xa3, 0xfc, 0xf7, 0xd2, 0xb8, 0xc8, 0xa7, 0xe0, 0x76, 0x8a, 0xcd, 0xff, 0x4f, 0x99, 0x34, 0x47, 0x84, 0x91, 0x96, 0x9f, - /* (2^124)P */ 0x8a, 0x48, 0x3b, 0x48, 0x4a, 0xbc, 0xac, 0xe2, 0x80, 0xd6, 0xd2, 0x35, 0xde, 0xd0, 0x56, 0x42, 0x33, 0xb3, 0x56, 0x5a, 0xcd, 0xb8, 0x3d, 0xb5, 0x25, 0xc1, 0xed, 0xff, 0x87, 0x0b, 0x79, 0xff, 0xf2, 0x62, 0xe1, 0x76, 0xc6, 0xa2, 0x0f, 0xa8, 0x9b, 0x0d, 0xcc, 0x3f, 0x3d, 0x35, 0x27, 0x8d, 0x0b, 0x74, 0xb0, 0xc3, 0x78, 0x8c, 0xcc, 0xc8, - /* (2^125)P */ 0xfc, 0x9a, 0x0c, 0xa8, 0x49, 0x42, 0xb8, 0xdf, 0xcf, 0xb3, 0x19, 0xa6, 0x64, 0x57, 0xfe, 0xe8, 0xf8, 0xa6, 0x4b, 0x86, 0xa1, 0xd5, 0x83, 0x7f, 0x14, 0x99, 0x18, 0x0c, 0x7d, 0x5b, 0xf7, 0x3d, 0xf9, 0x4b, 0x79, 0xb1, 0x86, 0x30, 0xb4, 0x5e, 0x6a, 0xe8, 0x9d, 0xfa, 0x8a, 0x41, 0xc4, 0x30, 0xfc, 0x56, 0x74, 0x14, 0x42, 0xc8, 0x96, 0x0e, - /* (2^126)P */ 0xdf, 0x66, 0xec, 0xbc, 0x44, 0xdb, 0x19, 0xce, 0xd4, 0xb5, 0x49, 0x40, 0x07, 0x49, 0xe0, 0x3a, 0x61, 0x10, 0xfb, 0x7d, 0xba, 0xb1, 0xe0, 0x28, 0x5b, 0x99, 0x59, 0x96, 0xa2, 0xee, 0xe0, 0x23, 0x37, 0x39, 0x1f, 0xe6, 0x57, 0x9f, 0xf8, 0xf8, 0xdc, 0x74, 0xf6, 0x8f, 0x4f, 0x5e, 0x51, 0xa4, 0x12, 0xac, 0xbe, 0xe4, 0xf3, 0xd1, 0xf0, 0x24, - /* (2^127)P */ 0x1e, 0x3e, 0x9a, 0x5f, 0xdf, 0x9f, 0xd6, 0x4e, 0x8a, 0x28, 0xc3, 0xcd, 0x96, 0x9d, 0x57, 0xc7, 0x61, 0x81, 0x90, 0xff, 0xae, 0xb1, 0x4f, 0xc2, 0x96, 0x8b, 0x1a, 0x18, 0xf4, 0x50, 0xcb, 0x31, 0xe1, 0x57, 0xf4, 0x90, 0xa8, 0xea, 0xac, 0xe7, 0x61, 0x98, 0xb6, 0x15, 0xc1, 0x7b, 0x29, 0xa4, 0xc3, 0x18, 0xef, 0xb9, 0xd8, 0xdf, 0xf6, 0xac, - /* (2^128)P */ 0xca, 0xa8, 0x6c, 0xf1, 0xb4, 0xca, 0xfe, 0x31, 0xee, 0x48, 0x38, 0x8b, 0x0e, 0xbb, 0x7a, 0x30, 0xaa, 0xf9, 0xee, 0x27, 0x53, 0x24, 0xdc, 0x2e, 0x15, 0xa6, 0x48, 0x8f, 0xa0, 0x7e, 0xf1, 0xdc, 0x93, 0x87, 0x39, 0xeb, 0x7f, 0x38, 0x92, 0x92, 0x4c, 0x29, 0xe9, 0x57, 0xd8, 0x59, 0xfc, 0xe9, 0x9c, 0x44, 0xc0, 0x65, 0xcf, 0xac, 0x4b, 0xdc, - /* (2^129)P */ 0xa3, 0xd0, 0x37, 0x8f, 0x86, 0x2f, 0xc6, 0x47, 0x55, 0x46, 0x65, 0x26, 0x4b, 0x91, 0xe2, 0x18, 0x5c, 0x4f, 0x23, 0xc1, 0x37, 0x29, 0xb9, 0xc1, 0x27, 0xc5, 0x3c, 0xbf, 0x7e, 0x23, 0xdb, 0x73, 0x99, 0xbd, 0x1b, 0xb2, 0x31, 0x68, 0x3a, 0xad, 0xb7, 0xb0, 0x10, 0xc5, 0xe5, 0x11, 0x51, 0xba, 0xa7, 0x60, 0x66, 0x54, 0xf0, 0x08, 0xd7, 0x69, - /* (2^130)P */ 0x89, 0x41, 0x79, 0xcc, 0xeb, 0x0a, 0xf5, 0x4b, 0xa3, 0x4c, 0xce, 0x52, 0xb0, 0xa7, 0xe4, 0x41, 0x75, 0x7d, 0x04, 0xbb, 0x09, 0x4c, 0x50, 0x9f, 0xdf, 0xea, 0x74, 0x61, 0x02, 0xad, 0xb4, 0x9d, 0xb7, 0x05, 0xb9, 0xea, 0xeb, 0x91, 0x35, 0xe7, 0x49, 0xea, 0xd3, 0x4f, 0x3c, 0x60, 0x21, 0x7a, 0xde, 0xc7, 0xe2, 0x5a, 0xee, 0x8e, 0x93, 0xc7, - /* (2^131)P */ 0x00, 0xe8, 0xed, 0xd0, 0xb3, 0x0d, 0xaf, 0xb2, 0xde, 0x2c, 0xf6, 0x00, 0xe2, 0xea, 0x6d, 0xf8, 0x0e, 0xd9, 0x67, 0x59, 0xa9, 0x50, 0xbb, 0x17, 0x8f, 0xff, 0xb1, 0x9f, 0x17, 0xb6, 0xf2, 0xb5, 0xba, 0x80, 0xf7, 0x0f, 0xba, 0xd5, 0x09, 0x43, 0xaa, 0x4e, 0x3a, 0x67, 0x6a, 0x89, 0x9b, 0x18, 0x65, 0x35, 0xf8, 0x3a, 0x49, 0x91, 0x30, 0x51, - /* (2^132)P */ 0x8d, 0x25, 0xe9, 0x0e, 0x7d, 0x50, 0x76, 0xe4, 0x58, 0x7e, 0xb9, 0x33, 0xe6, 0x65, 0x90, 0xc2, 0x50, 0x9d, 0x50, 0x2e, 0x11, 0xad, 0xd5, 0x43, 0x52, 0x32, 0x41, 0x4f, 0x7b, 0xb6, 0xa0, 0xec, 0x81, 0x75, 0x36, 0x7c, 0x77, 0x85, 0x59, 0x70, 0xe4, 0xf9, 0xef, 0x66, 0x8d, 0x35, 0xc8, 0x2a, 0x6e, 0x5b, 0xc6, 0x0d, 0x0b, 0x29, 0x60, 0x68, - /* (2^133)P */ 0xf8, 0xce, 0xb0, 0x3a, 0x56, 0x7d, 0x51, 0x9a, 0x25, 0x73, 0xea, 0xdd, 0xe4, 0xe0, 0x0e, 0xf0, 0x07, 0xc0, 0x31, 0x00, 0x73, 0x35, 0xd0, 0x39, 0xc4, 0x9b, 0xb7, 0x95, 0xe0, 0x62, 0x70, 0x36, 0x0b, 0xcb, 0xa0, 0x42, 0xde, 0x51, 0xcf, 0x41, 0xe0, 0xb8, 0xb4, 0xc0, 0xe5, 0x46, 0x99, 0x9f, 0x02, 0x7f, 0x14, 0x8c, 0xc1, 0x4e, 0xef, 0xe8, - /* (2^134)P */ 0x10, 0x01, 0x57, 0x0a, 0xbe, 0x8b, 0x18, 0xc8, 0xca, 0x00, 0x28, 0x77, 0x4a, 0x9a, 0xc7, 0x55, 0x2a, 0xcc, 0x0c, 0x7b, 0xb9, 0xe9, 0xc8, 0x97, 0x7c, 0x02, 0xe3, 0x09, 0x2f, 0x62, 0x30, 0xb8, 0x40, 0x09, 0x65, 0xe9, 0x55, 0x63, 0xb5, 0x07, 0xca, 0x9f, 0x00, 0xdf, 0x9d, 0x5c, 0xc7, 0xee, 0x57, 0xa5, 0x90, 0x15, 0x1e, 0x22, 0xa0, 0x12, - /* (2^135)P */ 0x71, 0x2d, 0xc9, 0xef, 0x27, 0xb9, 0xd8, 0x12, 0x43, 0x6b, 0xa8, 0xce, 0x3b, 0x6d, 0x6e, 0x91, 0x43, 0x23, 0xbc, 0x32, 0xb3, 0xbf, 0xe1, 0xc7, 0x39, 0xcf, 0x7c, 0x42, 0x4c, 0xb1, 0x30, 0xe2, 0xdd, 0x69, 0x06, 0xe5, 0xea, 0xf0, 0x2a, 0x16, 0x50, 0x71, 0xca, 0x92, 0xdf, 0xc1, 0xcc, 0xec, 0xe6, 0x54, 0x07, 0xf3, 0x18, 0x8d, 0xd8, 0x29, - /* (2^136)P */ 0x98, 0x51, 0x48, 0x8f, 0xfa, 0x2e, 0x5e, 0x67, 0xb0, 0xc6, 0x17, 0x12, 0xb6, 0x7d, 0xc9, 0xad, 0x81, 0x11, 0xad, 0x0c, 0x1c, 0x2d, 0x45, 0xdf, 0xac, 0x66, 0xbd, 0x08, 0x6f, 0x7c, 0xc7, 0x06, 0x6e, 0x19, 0x08, 0x39, 0x64, 0xd7, 0xe4, 0xd1, 0x11, 0x5f, 0x1c, 0xf4, 0x67, 0xc3, 0x88, 0x6a, 0xe6, 0x07, 0xa3, 0x83, 0xd7, 0xfd, 0x2a, 0xf9, - /* (2^137)P */ 0x87, 0xed, 0xeb, 0xd9, 0xdf, 0xff, 0x43, 0x8b, 0xaa, 0x20, 0x58, 0xb0, 0xb4, 0x6b, 0x14, 0xb8, 0x02, 0xc5, 0x40, 0x20, 0x22, 0xbb, 0xf7, 0xb4, 0xf3, 0x05, 0x1e, 0x4d, 0x94, 0xff, 0xe3, 0xc5, 0x22, 0x82, 0xfe, 0xaf, 0x90, 0x42, 0x98, 0x6b, 0x76, 0x8b, 0x3e, 0x89, 0x3f, 0x42, 0x2a, 0xa7, 0x26, 0x00, 0xda, 0x5c, 0xa2, 0x2b, 0xec, 0xdd, - /* (2^138)P */ 0x5c, 0x21, 0x16, 0x0d, 0x46, 0xb8, 0xd0, 0xa7, 0x88, 0xe7, 0x25, 0xcb, 0x3e, 0x50, 0x73, 0x61, 0xe7, 0xaf, 0x5a, 0x3f, 0x47, 0x8b, 0x3d, 0x97, 0x79, 0x2c, 0xe6, 0x6d, 0x95, 0x74, 0x65, 0x70, 0x36, 0xfd, 0xd1, 0x9e, 0x13, 0x18, 0x63, 0xb1, 0x2d, 0x0b, 0xb5, 0x36, 0x3e, 0xe7, 0x35, 0x42, 0x3b, 0xe6, 0x1f, 0x4d, 0x9d, 0x59, 0xa2, 0x43, - /* (2^139)P */ 0x8c, 0x0c, 0x7c, 0x24, 0x9e, 0xe0, 0xf8, 0x05, 0x1c, 0x9e, 0x1f, 0x31, 0xc0, 0x70, 0xb3, 0xfb, 0x4e, 0xf8, 0x0a, 0x57, 0xb7, 0x49, 0xb5, 0x73, 0xa1, 0x5f, 0x9b, 0x6a, 0x07, 0x6c, 0x87, 0x71, 0x87, 0xd4, 0xbe, 0x98, 0x1e, 0x98, 0xee, 0x52, 0xc1, 0x7b, 0x95, 0x0f, 0x28, 0x32, 0x36, 0x28, 0xd0, 0x3a, 0x0f, 0x7d, 0x2a, 0xa9, 0x62, 0xb9, - /* (2^140)P */ 0x97, 0xe6, 0x18, 0x77, 0xf9, 0x34, 0xac, 0xbc, 0xe0, 0x62, 0x9f, 0x42, 0xde, 0xbd, 0x2f, 0xf7, 0x1f, 0xb7, 0x14, 0x52, 0x8a, 0x79, 0xb2, 0x3f, 0xd2, 0x95, 0x71, 0x01, 0xe8, 0xaf, 0x8c, 0xa4, 0xa4, 0xa7, 0x27, 0xf3, 0x5c, 0xdf, 0x3e, 0x57, 0x7a, 0xf1, 0x76, 0x49, 0xe6, 0x42, 0x3f, 0x8f, 0x1e, 0x63, 0x4a, 0x65, 0xb5, 0x41, 0xf5, 0x02, - /* (2^141)P */ 0x72, 0x85, 0xc5, 0x0b, 0xe1, 0x47, 0x64, 0x02, 0xc5, 0x4d, 0x81, 0x69, 0xb2, 0xcf, 0x0f, 0x6c, 0xd4, 0x6d, 0xd0, 0xc7, 0xb4, 0x1c, 0xd0, 0x32, 0x59, 0x89, 0xe2, 0xe0, 0x96, 0x8b, 0x12, 0x98, 0xbf, 0x63, 0x7a, 0x4c, 0x76, 0x7e, 0x58, 0x17, 0x8f, 0x5b, 0x0a, 0x59, 0x65, 0x75, 0xbc, 0x61, 0x1f, 0xbe, 0xc5, 0x6e, 0x0a, 0x57, 0x52, 0x70, - /* (2^142)P */ 0x92, 0x1c, 0x77, 0xbb, 0x62, 0x02, 0x6c, 0x25, 0x9c, 0x66, 0x07, 0x83, 0xab, 0xcc, 0x80, 0x5d, 0xd2, 0x76, 0x0c, 0xa4, 0xc5, 0xb4, 0x8a, 0x68, 0x23, 0x31, 0x32, 0x29, 0x8a, 0x47, 0x92, 0x12, 0x80, 0xb3, 0xfa, 0x18, 0xe4, 0x8d, 0xc0, 0x4d, 0xfe, 0x97, 0x5f, 0x72, 0x41, 0xb5, 0x5c, 0x7a, 0xbd, 0xf0, 0xcf, 0x5e, 0x97, 0xaa, 0x64, 0x32, - /* (2^143)P */ 0x35, 0x3f, 0x75, 0xc1, 0x7a, 0x75, 0x7e, 0xa9, 0xc6, 0x0b, 0x4e, 0x32, 0x62, 0xec, 0xe3, 0x5c, 0xfb, 0x01, 0x43, 0xb6, 0xd4, 0x5b, 0x75, 0xd2, 0xee, 0x7f, 0x5d, 0x23, 0x2b, 0xb3, 0x54, 0x34, 0x4c, 0xd3, 0xb4, 0x32, 0x84, 0x81, 0xb5, 0x09, 0x76, 0x19, 0xda, 0x58, 0xda, 0x7c, 0xdb, 0x2e, 0xdd, 0x4c, 0x8e, 0xdd, 0x5d, 0x89, 0x10, 0x10, - /* (2^144)P */ 0x57, 0x25, 0x6a, 0x08, 0x37, 0x92, 0xa8, 0xdf, 0x24, 0xef, 0x8f, 0x33, 0x34, 0x52, 0xa4, 0x4c, 0xf0, 0x77, 0x9f, 0x69, 0x77, 0xd5, 0x8f, 0xd2, 0x9a, 0xb3, 0xb6, 0x1d, 0x2d, 0xa6, 0xf7, 0x1f, 0xda, 0xd7, 0xcb, 0x75, 0x11, 0xc3, 0x6b, 0xc0, 0x38, 0xb1, 0xd5, 0x2d, 0x96, 0x84, 0x16, 0xfa, 0x26, 0xb9, 0xcc, 0x3f, 0x16, 0x47, 0x23, 0x74, - /* (2^145)P */ 0x9b, 0x61, 0x2a, 0x1c, 0xdd, 0x39, 0xa5, 0xfa, 0x1c, 0x7d, 0x63, 0x50, 0xca, 0xe6, 0x9d, 0xfa, 0xb7, 0xc4, 0x4c, 0x6a, 0x97, 0x5f, 0x36, 0x4e, 0x47, 0xdd, 0x17, 0xf7, 0xf9, 0x19, 0xce, 0x75, 0x17, 0xad, 0xce, 0x2a, 0xf3, 0xfe, 0x27, 0x8f, 0x3e, 0x48, 0xc0, 0x60, 0x87, 0x24, 0x19, 0xae, 0x59, 0xe4, 0x5a, 0x00, 0x2a, 0xba, 0xa2, 0x1f, - /* (2^146)P */ 0x26, 0x88, 0x42, 0x60, 0x9f, 0x6e, 0x2c, 0x7c, 0x39, 0x0f, 0x47, 0x6a, 0x0e, 0x02, 0xbb, 0x4b, 0x34, 0x29, 0x55, 0x18, 0x36, 0xcf, 0x3b, 0x47, 0xf1, 0x2e, 0xfc, 0x6e, 0x94, 0xff, 0xe8, 0x6b, 0x06, 0xd2, 0xba, 0x77, 0x5e, 0x60, 0xd7, 0x19, 0xef, 0x02, 0x9d, 0x3a, 0xc2, 0xb7, 0xa9, 0xd8, 0x57, 0xee, 0x7e, 0x2b, 0xf2, 0x6d, 0x28, 0xda, - /* (2^147)P */ 0xdf, 0xd9, 0x92, 0x11, 0x98, 0x23, 0xe2, 0x45, 0x2f, 0x74, 0x70, 0xee, 0x0e, 0x55, 0x65, 0x79, 0x86, 0x38, 0x17, 0x92, 0x85, 0x87, 0x99, 0x50, 0xd9, 0x7c, 0xdb, 0xa1, 0x10, 0xec, 0x30, 0xb7, 0x40, 0xa3, 0x23, 0x9b, 0x0e, 0x27, 0x49, 0x29, 0x03, 0x94, 0xff, 0x53, 0xdc, 0xd7, 0xed, 0x49, 0xa9, 0x5a, 0x3b, 0xee, 0xd7, 0xc7, 0x65, 0xaf, - /* (2^148)P */ 0xa0, 0xbd, 0xbe, 0x03, 0xee, 0x0c, 0xbe, 0x32, 0x00, 0x7b, 0x52, 0xcb, 0x92, 0x29, 0xbf, 0xa0, 0xc6, 0xd9, 0xd2, 0xd6, 0x15, 0xe8, 0x3a, 0x75, 0x61, 0x65, 0x56, 0xae, 0xad, 0x3c, 0x2a, 0x64, 0x14, 0x3f, 0x8e, 0xc1, 0x2d, 0x0c, 0x8d, 0x20, 0xdb, 0x58, 0x4b, 0xe5, 0x40, 0x15, 0x4b, 0xdc, 0xa8, 0xbd, 0xef, 0x08, 0xa7, 0xd1, 0xf4, 0xb0, - /* (2^149)P */ 0xa9, 0x0f, 0x05, 0x94, 0x66, 0xac, 0x1f, 0x65, 0x3f, 0xe1, 0xb8, 0xe1, 0x34, 0x5e, 0x1d, 0x8f, 0xe3, 0x93, 0x03, 0x15, 0xff, 0xb6, 0x65, 0xb6, 0x6e, 0xc0, 0x2f, 0xd4, 0x2e, 0xb9, 0x2c, 0x13, 0x3c, 0x99, 0x1c, 0xb5, 0x87, 0xba, 0x79, 0xcb, 0xf0, 0x18, 0x06, 0x86, 0x04, 0x14, 0x25, 0x09, 0xcd, 0x1c, 0x14, 0xda, 0x35, 0xd0, 0x38, 0x3b, - /* (2^150)P */ 0x1b, 0x04, 0xa3, 0x27, 0xb4, 0xd3, 0x37, 0x48, 0x1e, 0x8f, 0x69, 0xd3, 0x5a, 0x2f, 0x20, 0x02, 0x36, 0xbe, 0x06, 0x7b, 0x6b, 0x6c, 0x12, 0x5b, 0x80, 0x74, 0x44, 0xe6, 0xf8, 0xf5, 0x95, 0x59, 0x29, 0xab, 0x51, 0x47, 0x83, 0x28, 0xe0, 0xad, 0xde, 0xaa, 0xd3, 0xb1, 0x1a, 0xcb, 0xa3, 0xcd, 0x8b, 0x6a, 0xb1, 0xa7, 0x0a, 0xd1, 0xf9, 0xbe, - /* (2^151)P */ 0xce, 0x2f, 0x85, 0xca, 0x74, 0x6d, 0x49, 0xb8, 0xce, 0x80, 0x44, 0xe0, 0xda, 0x5b, 0xcf, 0x2f, 0x79, 0x74, 0xfe, 0xb4, 0x2c, 0x99, 0x20, 0x6e, 0x09, 0x04, 0xfb, 0x6d, 0x57, 0x5b, 0x95, 0x0c, 0x45, 0xda, 0x4f, 0x7f, 0x63, 0xcc, 0x85, 0x5a, 0x67, 0x50, 0x68, 0x71, 0xb4, 0x67, 0xb1, 0x2e, 0xc1, 0x1c, 0xdc, 0xff, 0x2a, 0x7c, 0x10, 0x5e, - /* (2^152)P */ 0xa6, 0xde, 0xf3, 0xd4, 0x22, 0x30, 0x24, 0x9e, 0x0b, 0x30, 0x54, 0x59, 0x7e, 0xa2, 0xeb, 0x89, 0x54, 0x65, 0x3e, 0x40, 0xd1, 0xde, 0xe6, 0xee, 0x4d, 0xbf, 0x5e, 0x40, 0x1d, 0xee, 0x4f, 0x68, 0xd9, 0xa7, 0x2f, 0xb3, 0x64, 0xb3, 0xf5, 0xc8, 0xd3, 0xaa, 0x70, 0x70, 0x3d, 0xef, 0xd3, 0x95, 0x54, 0xdb, 0x3e, 0x94, 0x95, 0x92, 0x1f, 0x45, - /* (2^153)P */ 0x22, 0x80, 0x1d, 0x9d, 0x96, 0xa5, 0x78, 0x6f, 0xe0, 0x1e, 0x1b, 0x66, 0x42, 0xc8, 0xae, 0x9e, 0x46, 0x45, 0x08, 0x41, 0xdf, 0x80, 0xae, 0x6f, 0xdb, 0x15, 0x5a, 0x21, 0x31, 0x7a, 0xd0, 0xf2, 0x54, 0x15, 0x88, 0xd3, 0x0f, 0x7f, 0x14, 0x5a, 0x14, 0x97, 0xab, 0xf4, 0x58, 0x6a, 0x9f, 0xea, 0x74, 0xe5, 0x6b, 0x90, 0x59, 0x2b, 0x48, 0xd9, - /* (2^154)P */ 0x12, 0x24, 0x04, 0xf5, 0x50, 0xc2, 0x8c, 0xb0, 0x7c, 0x46, 0x98, 0xd5, 0x24, 0xad, 0xf6, 0x72, 0xdc, 0x82, 0x1a, 0x60, 0xc1, 0xeb, 0x48, 0xef, 0x7f, 0x6e, 0xe6, 0xcc, 0xdb, 0x7b, 0xae, 0xbe, 0x5e, 0x1e, 0x5c, 0xe6, 0x0a, 0x70, 0xdf, 0xa4, 0xa3, 0x85, 0x1b, 0x1b, 0x7f, 0x72, 0xb9, 0x96, 0x6f, 0xdc, 0x03, 0x76, 0x66, 0xfb, 0xa0, 0x33, - /* (2^155)P */ 0x37, 0x40, 0xbb, 0xbc, 0x68, 0x58, 0x86, 0xca, 0xbb, 0xa5, 0x24, 0x76, 0x3d, 0x48, 0xd1, 0xad, 0xb4, 0xa8, 0xcf, 0xc3, 0xb6, 0xa8, 0xba, 0x1a, 0x3a, 0xbe, 0x33, 0x75, 0x04, 0x5c, 0x13, 0x8c, 0x0d, 0x70, 0x8d, 0xa6, 0x4e, 0x2a, 0xeb, 0x17, 0x3c, 0x22, 0xdd, 0x3e, 0x96, 0x40, 0x11, 0x9e, 0x4e, 0xae, 0x3d, 0xf8, 0x91, 0xd7, 0x50, 0xc8, - /* (2^156)P */ 0xd8, 0xca, 0xde, 0x19, 0xcf, 0x00, 0xe4, 0x73, 0x18, 0x7f, 0x9b, 0x9f, 0xf4, 0x5b, 0x49, 0x49, 0x99, 0xdc, 0xa4, 0x46, 0x21, 0xb5, 0xd7, 0x3e, 0xb7, 0x47, 0x1b, 0xa9, 0x9f, 0x4c, 0x69, 0x7d, 0xec, 0x33, 0xd6, 0x1c, 0x51, 0x7f, 0x47, 0x74, 0x7a, 0x6c, 0xf3, 0xd2, 0x2e, 0xbf, 0xdf, 0x6c, 0x9e, 0x77, 0x3b, 0x34, 0xf6, 0x73, 0x80, 0xed, - /* (2^157)P */ 0x16, 0xfb, 0x16, 0xc3, 0xc2, 0x83, 0xe4, 0xf4, 0x03, 0x7f, 0x52, 0xb0, 0x67, 0x51, 0x7b, 0x24, 0x5a, 0x51, 0xd3, 0xb6, 0x4e, 0x59, 0x76, 0xcd, 0x08, 0x7b, 0x1d, 0x7a, 0x9c, 0x65, 0xae, 0xce, 0xaa, 0xd2, 0x1c, 0x85, 0x66, 0x68, 0x06, 0x15, 0xa8, 0x06, 0xe6, 0x16, 0x37, 0xf4, 0x49, 0x9e, 0x0f, 0x50, 0x37, 0xb1, 0xb2, 0x93, 0x70, 0x43, - /* (2^158)P */ 0x18, 0x3a, 0x16, 0xe5, 0x8d, 0xc8, 0x35, 0xd6, 0x7b, 0x09, 0xec, 0x61, 0x5f, 0x5c, 0x2a, 0x19, 0x96, 0x2e, 0xc3, 0xfd, 0xab, 0xe6, 0x23, 0xae, 0xab, 0xc5, 0xcb, 0xb9, 0x7b, 0x2d, 0x34, 0x51, 0xb9, 0x41, 0x9e, 0x7d, 0xca, 0xda, 0x25, 0x45, 0x14, 0xb0, 0xc7, 0x4d, 0x26, 0x2b, 0xfe, 0x43, 0xb0, 0x21, 0x5e, 0xfa, 0xdc, 0x7c, 0xf9, 0x5a, - /* (2^159)P */ 0x94, 0xad, 0x42, 0x17, 0xf5, 0xcd, 0x1c, 0x0d, 0xf6, 0x41, 0xd2, 0x55, 0xbb, 0x50, 0xf1, 0xc6, 0xbc, 0xa6, 0xc5, 0x3a, 0xfd, 0x9b, 0x75, 0x3e, 0xf6, 0x1a, 0xa7, 0xb2, 0x6e, 0x64, 0x12, 0xdc, 0x3c, 0xe5, 0xf6, 0xfc, 0x3b, 0xfa, 0x43, 0x81, 0xd4, 0xa5, 0xee, 0xf5, 0x9c, 0x47, 0x2f, 0xd0, 0x9c, 0xde, 0xa1, 0x48, 0x91, 0x9a, 0x34, 0xc1, - /* (2^160)P */ 0x37, 0x1b, 0xb3, 0x88, 0xc9, 0x98, 0x4e, 0xfb, 0x84, 0x4f, 0x2b, 0x0a, 0xb6, 0x8f, 0x35, 0x15, 0xcd, 0x61, 0x7a, 0x5f, 0x5c, 0xa0, 0xca, 0x23, 0xa0, 0x93, 0x1f, 0xcc, 0x3c, 0x39, 0x3a, 0x24, 0xa7, 0x49, 0xad, 0x8d, 0x59, 0xcc, 0x94, 0x5a, 0x16, 0xf5, 0x70, 0xe8, 0x52, 0x1e, 0xee, 0x20, 0x30, 0x17, 0x7e, 0xf0, 0x4c, 0x93, 0x06, 0x5a, - /* (2^161)P */ 0x81, 0xba, 0x3b, 0xd7, 0x3e, 0xb4, 0x32, 0x3a, 0x22, 0x39, 0x2a, 0xfc, 0x19, 0xd9, 0xd2, 0xf6, 0xc5, 0x79, 0x6c, 0x0e, 0xde, 0xda, 0x01, 0xff, 0x52, 0xfb, 0xb6, 0x95, 0x4e, 0x7a, 0x10, 0xb8, 0x06, 0x86, 0x3c, 0xcd, 0x56, 0xd6, 0x15, 0xbf, 0x6e, 0x3e, 0x4f, 0x35, 0x5e, 0xca, 0xbc, 0xa5, 0x95, 0xa2, 0xdf, 0x2d, 0x1d, 0xaf, 0x59, 0xf9, - /* (2^162)P */ 0x69, 0xe5, 0xe2, 0xfa, 0xc9, 0x7f, 0xdd, 0x09, 0xf5, 0x6b, 0x4e, 0x2e, 0xbe, 0xb4, 0xbf, 0x3e, 0xb2, 0xf2, 0x81, 0x30, 0xe1, 0x07, 0xa8, 0x0d, 0x2b, 0xd2, 0x5a, 0x55, 0xbe, 0x4b, 0x86, 0x5d, 0xb0, 0x5e, 0x7c, 0x8f, 0xc1, 0x3c, 0x81, 0x4c, 0xf7, 0x6d, 0x7d, 0xe6, 0x4f, 0x8a, 0x85, 0xc2, 0x2f, 0x28, 0xef, 0x8c, 0x69, 0xc2, 0xc2, 0x1a, - /* (2^163)P */ 0xd9, 0xe4, 0x0e, 0x1e, 0xc2, 0xf7, 0x2f, 0x9f, 0xa1, 0x40, 0xfe, 0x46, 0x16, 0xaf, 0x2e, 0xd1, 0xec, 0x15, 0x9b, 0x61, 0x92, 0xce, 0xfc, 0x10, 0x43, 0x1d, 0x00, 0xf6, 0xbe, 0x20, 0x80, 0x80, 0x6f, 0x3c, 0x16, 0x94, 0x59, 0xba, 0x03, 0x53, 0x6e, 0xb6, 0xdd, 0x25, 0x7b, 0x86, 0xbf, 0x96, 0xf4, 0x2f, 0xa1, 0x96, 0x8d, 0xf9, 0xb3, 0x29, - /* (2^164)P */ 0x3b, 0x04, 0x60, 0x6e, 0xce, 0xab, 0xd2, 0x63, 0x18, 0x53, 0x88, 0x16, 0x4a, 0x6a, 0xab, 0x72, 0x03, 0x68, 0xa5, 0xd4, 0x0d, 0xb2, 0x82, 0x81, 0x1f, 0x2b, 0x5c, 0x75, 0xe8, 0xd2, 0x1d, 0x7f, 0xe7, 0x1b, 0x35, 0x02, 0xde, 0xec, 0xbd, 0xcb, 0xc7, 0x01, 0xd3, 0x95, 0x61, 0xfe, 0xb2, 0x7a, 0x66, 0x09, 0x4c, 0x6d, 0xfd, 0x39, 0xf7, 0x52, - /* (2^165)P */ 0x42, 0xc1, 0x5f, 0xf8, 0x35, 0x52, 0xc1, 0xfe, 0xc5, 0x11, 0x80, 0x1c, 0x11, 0x46, 0x31, 0x11, 0xbe, 0xd0, 0xc4, 0xb6, 0x07, 0x13, 0x38, 0xa0, 0x8d, 0x65, 0xf0, 0x56, 0x9e, 0x16, 0xbf, 0x9d, 0xcd, 0x51, 0x34, 0xf9, 0x08, 0x48, 0x7b, 0x76, 0x0c, 0x7b, 0x30, 0x07, 0xa8, 0x76, 0xaf, 0xa3, 0x29, 0x38, 0xb0, 0x58, 0xde, 0x72, 0x4b, 0x45, - /* (2^166)P */ 0xd4, 0x16, 0xa7, 0xc0, 0xb4, 0x9f, 0xdf, 0x1a, 0x37, 0xc8, 0x35, 0xed, 0xc5, 0x85, 0x74, 0x64, 0x09, 0x22, 0xef, 0xe9, 0x0c, 0xaf, 0x12, 0x4c, 0x9e, 0xf8, 0x47, 0x56, 0xe0, 0x7f, 0x4e, 0x24, 0x6b, 0x0c, 0xe7, 0xad, 0xc6, 0x47, 0x1d, 0xa4, 0x0d, 0x86, 0x89, 0x65, 0xe8, 0x5f, 0x71, 0xc7, 0xe9, 0xcd, 0xec, 0x6c, 0x62, 0xc7, 0xe3, 0xb3, - /* (2^167)P */ 0xb5, 0xea, 0x86, 0xe3, 0x15, 0x18, 0x3f, 0x6d, 0x7b, 0x05, 0x95, 0x15, 0x53, 0x26, 0x1c, 0xeb, 0xbe, 0x7e, 0x16, 0x42, 0x4b, 0xa2, 0x3d, 0xdd, 0x0e, 0xff, 0xba, 0x67, 0xb5, 0xae, 0x7a, 0x17, 0xde, 0x23, 0xad, 0x14, 0xcc, 0xd7, 0xaf, 0x57, 0x01, 0xe0, 0xdd, 0x48, 0xdd, 0xd7, 0xe3, 0xdf, 0xe9, 0x2d, 0xda, 0x67, 0xa4, 0x9f, 0x29, 0x04, - /* (2^168)P */ 0x16, 0x53, 0xe6, 0x9c, 0x4e, 0xe5, 0x1e, 0x70, 0x81, 0x25, 0x02, 0x9b, 0x47, 0x6d, 0xd2, 0x08, 0x73, 0xbe, 0x0a, 0xf1, 0x7b, 0xeb, 0x24, 0xeb, 0x38, 0x23, 0x5c, 0xb6, 0x3e, 0xce, 0x1e, 0xe3, 0xbc, 0x82, 0x35, 0x1f, 0xaf, 0x3a, 0x3a, 0xe5, 0x4e, 0xc1, 0xca, 0xbf, 0x47, 0xb4, 0xbb, 0xbc, 0x5f, 0xea, 0xc6, 0xca, 0xf3, 0xa0, 0xa2, 0x73, - /* (2^169)P */ 0xef, 0xa4, 0x7a, 0x4e, 0xe4, 0xc7, 0xb6, 0x43, 0x2e, 0xa5, 0xe4, 0xa5, 0xba, 0x1e, 0xa5, 0xfe, 0x9e, 0xce, 0xa9, 0x80, 0x04, 0xcb, 0x4f, 0xd8, 0x74, 0x05, 0x48, 0xfa, 0x99, 0x11, 0x5d, 0x97, 0x3b, 0x07, 0x0d, 0xdd, 0xe6, 0xb1, 0x74, 0x87, 0x1a, 0xd3, 0x26, 0xb7, 0x8f, 0xe1, 0x63, 0x3d, 0xec, 0x53, 0x93, 0xb0, 0x81, 0x78, 0x34, 0xa4, - /* (2^170)P */ 0xe1, 0xe7, 0xd4, 0x58, 0x9d, 0x0e, 0x8b, 0x65, 0x66, 0x37, 0x16, 0x48, 0x6f, 0xaa, 0x42, 0x37, 0x77, 0xad, 0xb1, 0x56, 0x48, 0xdf, 0x65, 0x36, 0x30, 0xb8, 0x00, 0x12, 0xd8, 0x32, 0x28, 0x7f, 0xc1, 0x71, 0xeb, 0x93, 0x0f, 0x48, 0x04, 0xe1, 0x5a, 0x6a, 0x96, 0xc1, 0xca, 0x89, 0x6d, 0x1b, 0x82, 0x4c, 0x18, 0x6d, 0x55, 0x4b, 0xea, 0xfd, - /* (2^171)P */ 0x62, 0x1a, 0x53, 0xb4, 0xb1, 0xbe, 0x6f, 0x15, 0x18, 0x88, 0xd4, 0x66, 0x61, 0xc7, 0x12, 0x69, 0x02, 0xbd, 0x03, 0x23, 0x2b, 0xef, 0xf9, 0x54, 0xa4, 0x85, 0xa8, 0xe3, 0xb7, 0xbd, 0xa9, 0xa3, 0xf3, 0x2a, 0xdd, 0xf1, 0xd4, 0x03, 0x0f, 0xa9, 0xa1, 0xd8, 0xa3, 0xcd, 0xb2, 0x71, 0x90, 0x4b, 0x35, 0x62, 0xf2, 0x2f, 0xce, 0x67, 0x1f, 0xaa, - /* (2^172)P */ 0x9e, 0x1e, 0xcd, 0x43, 0x7e, 0x87, 0x37, 0x94, 0x3a, 0x97, 0x4c, 0x7e, 0xee, 0xc9, 0x37, 0x85, 0xf1, 0xd9, 0x4f, 0xbf, 0xf9, 0x6f, 0x39, 0x9a, 0x39, 0x87, 0x2e, 0x25, 0x84, 0x42, 0xc3, 0x80, 0xcb, 0x07, 0x22, 0xae, 0x30, 0xd5, 0x50, 0xa1, 0x23, 0xcc, 0x31, 0x81, 0x9d, 0xf1, 0x30, 0xd9, 0x2b, 0x73, 0x41, 0x16, 0x50, 0xab, 0x2d, 0xa2, - /* (2^173)P */ 0xa4, 0x69, 0x4f, 0xa1, 0x4e, 0xb9, 0xbf, 0x14, 0xe8, 0x2b, 0x04, 0x93, 0xb7, 0x6e, 0x9f, 0x7d, 0x73, 0x0a, 0xc5, 0x14, 0xb8, 0xde, 0x8c, 0xc1, 0xfe, 0xc0, 0xa7, 0xa4, 0xcc, 0x42, 0x42, 0x81, 0x15, 0x65, 0x8a, 0x80, 0xb9, 0xde, 0x1f, 0x60, 0x33, 0x0e, 0xcb, 0xfc, 0xe0, 0xdb, 0x83, 0xa1, 0xe5, 0xd0, 0x16, 0x86, 0x2c, 0xe2, 0x87, 0xed, - /* (2^174)P */ 0x7a, 0xc0, 0xeb, 0x6b, 0xf6, 0x0d, 0x4c, 0x6d, 0x1e, 0xdb, 0xab, 0xe7, 0x19, 0x45, 0xc6, 0xe3, 0xb2, 0x06, 0xbb, 0xbc, 0x70, 0x99, 0x83, 0x33, 0xeb, 0x28, 0xc8, 0x77, 0xf6, 0x4d, 0x01, 0xb7, 0x59, 0xa0, 0xd2, 0xb3, 0x2a, 0x72, 0x30, 0xe7, 0x11, 0x39, 0xb6, 0x41, 0x29, 0x65, 0x5a, 0x14, 0xb9, 0x86, 0x08, 0xe0, 0x7d, 0x32, 0x8c, 0xf0, - /* (2^175)P */ 0x5c, 0x11, 0x30, 0x9e, 0x05, 0x27, 0xf5, 0x45, 0x0f, 0xb3, 0xc9, 0x75, 0xc3, 0xd7, 0xe1, 0x82, 0x3b, 0x8e, 0x87, 0x23, 0x00, 0x15, 0x19, 0x07, 0xd9, 0x21, 0x53, 0xc7, 0xf1, 0xa3, 0xbf, 0x70, 0x64, 0x15, 0x18, 0xca, 0x23, 0x9e, 0xd3, 0x08, 0xc3, 0x2a, 0x8b, 0xe5, 0x83, 0x04, 0x89, 0x14, 0xfd, 0x28, 0x25, 0x1c, 0xe3, 0x26, 0xa7, 0x22, - /* (2^176)P */ 0xdc, 0xd4, 0x75, 0x60, 0x99, 0x94, 0xea, 0x09, 0x8e, 0x8a, 0x3c, 0x1b, 0xf9, 0xbd, 0x33, 0x0d, 0x51, 0x3d, 0x12, 0x6f, 0x4e, 0x72, 0xe0, 0x17, 0x20, 0xe9, 0x75, 0xe6, 0x3a, 0xb2, 0x13, 0x83, 0x4e, 0x7a, 0x08, 0x9e, 0xd1, 0x04, 0x5f, 0x6b, 0x42, 0x0b, 0x76, 0x2a, 0x2d, 0x77, 0x53, 0x6c, 0x65, 0x6d, 0x8e, 0x25, 0x3c, 0xb6, 0x8b, 0x69, - /* (2^177)P */ 0xb9, 0x49, 0x28, 0xd0, 0xdc, 0x6c, 0x8f, 0x4c, 0xc9, 0x14, 0x8a, 0x38, 0xa3, 0xcb, 0xc4, 0x9d, 0x53, 0xcf, 0xe9, 0xe3, 0xcf, 0xe0, 0xb1, 0xf2, 0x1b, 0x4c, 0x7f, 0x83, 0x2a, 0x7a, 0xe9, 0x8b, 0x3b, 0x86, 0x61, 0x30, 0xe9, 0x99, 0xbd, 0xba, 0x19, 0x6e, 0x65, 0x2a, 0x12, 0x3e, 0x9c, 0xa8, 0xaf, 0xc3, 0xcf, 0xf8, 0x1f, 0x77, 0x86, 0xea, - /* (2^178)P */ 0x30, 0xde, 0xe7, 0xff, 0x54, 0xf7, 0xa2, 0x59, 0xf6, 0x0b, 0xfb, 0x7a, 0xf2, 0x39, 0xf0, 0xdb, 0x39, 0xbc, 0xf0, 0xfa, 0x60, 0xeb, 0x6b, 0x4f, 0x47, 0x17, 0xc8, 0x00, 0x65, 0x6d, 0x25, 0x1c, 0xd0, 0x48, 0x56, 0x53, 0x45, 0x11, 0x30, 0x02, 0x49, 0x20, 0x27, 0xac, 0xf2, 0x4c, 0xac, 0x64, 0x3d, 0x52, 0xb8, 0x89, 0xe0, 0x93, 0x16, 0x0f, - /* (2^179)P */ 0x84, 0x09, 0xba, 0x40, 0xb2, 0x2f, 0xa3, 0xa8, 0xc2, 0xba, 0x46, 0x33, 0x05, 0x9d, 0x62, 0xad, 0xa1, 0x3c, 0x33, 0xef, 0x0d, 0xeb, 0xf0, 0x77, 0x11, 0x5a, 0xb0, 0x21, 0x9c, 0xdf, 0x55, 0x24, 0x25, 0x35, 0x51, 0x61, 0x92, 0xf0, 0xb1, 0xce, 0xf5, 0xd4, 0x7b, 0x6c, 0x21, 0x9d, 0x56, 0x52, 0xf8, 0xa1, 0x4c, 0xe9, 0x27, 0x55, 0xac, 0x91, - /* (2^180)P */ 0x03, 0x3e, 0x30, 0xd2, 0x0a, 0xfa, 0x7d, 0x82, 0x3d, 0x1f, 0x8b, 0xcb, 0xb6, 0x04, 0x5c, 0xcc, 0x8b, 0xda, 0xe2, 0x68, 0x74, 0x08, 0x8c, 0x44, 0x83, 0x57, 0x6d, 0x6f, 0x80, 0xb0, 0x7e, 0xa9, 0x82, 0x91, 0x7b, 0x4c, 0x37, 0x97, 0xd1, 0x63, 0xd1, 0xbd, 0x45, 0xe6, 0x8a, 0x86, 0xd6, 0x89, 0x54, 0xfd, 0xd2, 0xb1, 0xd7, 0x54, 0xad, 0xaf, - /* (2^181)P */ 0x8b, 0x33, 0x62, 0x49, 0x9f, 0x63, 0xf9, 0x87, 0x42, 0x58, 0xbf, 0xb3, 0xe6, 0x68, 0x02, 0x60, 0x5c, 0x76, 0x62, 0xf7, 0x61, 0xd7, 0x36, 0x31, 0xf7, 0x9c, 0xb5, 0xe5, 0x13, 0x6c, 0xea, 0x78, 0xae, 0xcf, 0xde, 0xbf, 0xb6, 0xeb, 0x4f, 0xc8, 0x2a, 0xb4, 0x9a, 0x9f, 0xf3, 0xd1, 0x6a, 0xec, 0x0c, 0xbd, 0x85, 0x98, 0x40, 0x06, 0x1c, 0x2a, - /* (2^182)P */ 0x74, 0x3b, 0xe7, 0x81, 0xd5, 0xae, 0x54, 0x56, 0x03, 0xe8, 0x97, 0x16, 0x76, 0xcf, 0x24, 0x96, 0x96, 0x5b, 0xcc, 0x09, 0xab, 0x23, 0x6f, 0x54, 0xae, 0x8f, 0xe4, 0x12, 0xcb, 0xfd, 0xbc, 0xac, 0x93, 0x45, 0x3d, 0x68, 0x08, 0x22, 0x59, 0xc6, 0xf0, 0x47, 0x19, 0x8c, 0x79, 0x93, 0x1e, 0x0e, 0x30, 0xb0, 0x94, 0xfb, 0x17, 0x1d, 0x5a, 0x12, - /* (2^183)P */ 0x85, 0xff, 0x40, 0x18, 0x85, 0xff, 0x44, 0x37, 0x69, 0x23, 0x4d, 0x34, 0xe1, 0xeb, 0xa3, 0x1b, 0x55, 0x40, 0xc1, 0x64, 0xf4, 0xd4, 0x13, 0x0a, 0x9f, 0xb9, 0x19, 0xfc, 0x88, 0x7d, 0xc0, 0x72, 0xcf, 0x69, 0x2f, 0xd2, 0x0c, 0x82, 0x0f, 0xda, 0x08, 0xba, 0x0f, 0xaa, 0x3b, 0xe9, 0xe5, 0x83, 0x7a, 0x06, 0xe8, 0x1b, 0x38, 0x43, 0xc3, 0x54, - /* (2^184)P */ 0x14, 0xaa, 0xb3, 0x6e, 0xe6, 0x28, 0xee, 0xc5, 0x22, 0x6c, 0x7c, 0xf9, 0xa8, 0x71, 0xcc, 0xfe, 0x68, 0x7e, 0xd3, 0xb8, 0x37, 0x96, 0xca, 0x0b, 0xd9, 0xb6, 0x06, 0xa9, 0xf6, 0x71, 0xe8, 0x31, 0xf7, 0xd8, 0xf1, 0x5d, 0xab, 0xb9, 0xf0, 0x5c, 0x98, 0xcf, 0x22, 0xa2, 0x2a, 0xf6, 0xd0, 0x59, 0xf0, 0x9d, 0xd9, 0x6a, 0x4f, 0x59, 0x57, 0xad, - /* (2^185)P */ 0xd7, 0x2b, 0x3d, 0x38, 0x4c, 0x2e, 0x23, 0x4d, 0x49, 0xa2, 0x62, 0x62, 0xf9, 0x0f, 0xde, 0x08, 0xf3, 0x86, 0x71, 0xb6, 0xc7, 0xf9, 0x85, 0x9c, 0x33, 0xa1, 0xcf, 0x16, 0xaa, 0x60, 0xb9, 0xb7, 0xea, 0xed, 0x01, 0x1c, 0x59, 0xdb, 0x3f, 0x3f, 0x97, 0x2e, 0xf0, 0x09, 0x9f, 0x10, 0x85, 0x5f, 0x53, 0x39, 0xf3, 0x13, 0x40, 0x56, 0x95, 0xf9, - /* (2^186)P */ 0xb4, 0xe3, 0xda, 0xc6, 0x1f, 0x78, 0x8e, 0xac, 0xd4, 0x20, 0x1d, 0xa0, 0xbf, 0x4c, 0x09, 0x16, 0xa7, 0x30, 0xb5, 0x8d, 0x9e, 0xa1, 0x5f, 0x6d, 0x52, 0xf4, 0x71, 0xb6, 0x32, 0x2d, 0x21, 0x51, 0xc6, 0xfc, 0x2f, 0x08, 0xf4, 0x13, 0x6c, 0x55, 0xba, 0x72, 0x81, 0x24, 0x49, 0x0e, 0x4f, 0x06, 0x36, 0x39, 0x6a, 0xc5, 0x81, 0xfc, 0xeb, 0xb2, - /* (2^187)P */ 0x7d, 0x8d, 0xc8, 0x6c, 0xea, 0xb4, 0xb9, 0xe8, 0x40, 0xc9, 0x69, 0xc9, 0x30, 0x05, 0xfd, 0x34, 0x46, 0xfd, 0x94, 0x05, 0x16, 0xf5, 0x4b, 0x13, 0x3d, 0x24, 0x1a, 0xd6, 0x64, 0x2b, 0x9c, 0xe2, 0xa5, 0xd9, 0x98, 0xe0, 0xe8, 0xf4, 0xbc, 0x2c, 0xbd, 0xa2, 0x56, 0xe3, 0x9e, 0x14, 0xdb, 0xbf, 0x05, 0xbf, 0x9a, 0x13, 0x5d, 0xf7, 0x91, 0xa3, - /* (2^188)P */ 0x8b, 0xcb, 0x27, 0xf3, 0x15, 0x26, 0x05, 0x40, 0x0f, 0xa6, 0x15, 0x13, 0x71, 0x95, 0xa2, 0xc6, 0x38, 0x04, 0x67, 0xf8, 0x9a, 0x83, 0x06, 0xaa, 0x25, 0x36, 0x72, 0x01, 0x6f, 0x74, 0x5f, 0xe5, 0x6e, 0x44, 0x99, 0xce, 0x13, 0xbc, 0x82, 0xc2, 0x0d, 0xa4, 0x98, 0x50, 0x38, 0xf3, 0xa2, 0xc5, 0xe5, 0x24, 0x1f, 0x6f, 0x56, 0x3e, 0x07, 0xb2, - /* (2^189)P */ 0xbd, 0x0f, 0x32, 0x60, 0x07, 0xb1, 0xd7, 0x0b, 0x11, 0x07, 0x57, 0x02, 0x89, 0xe8, 0x8b, 0xe8, 0x5a, 0x1f, 0xee, 0x54, 0x6b, 0xff, 0xb3, 0x04, 0x07, 0x57, 0x13, 0x0b, 0x94, 0xa8, 0x4d, 0x81, 0xe2, 0x17, 0x16, 0x45, 0xd4, 0x4b, 0xf7, 0x7e, 0x64, 0x66, 0x20, 0xe8, 0x0b, 0x26, 0xfd, 0xa9, 0x8a, 0x47, 0x52, 0x89, 0x14, 0xd0, 0xd1, 0xa1, - /* (2^190)P */ 0xdc, 0x03, 0xe6, 0x20, 0x44, 0x47, 0x8f, 0x04, 0x16, 0x24, 0x22, 0xc1, 0x55, 0x5c, 0xbe, 0x43, 0xc3, 0x92, 0xc5, 0x54, 0x3d, 0x5d, 0xd1, 0x05, 0x9c, 0xc6, 0x7c, 0xbf, 0x23, 0x84, 0x1a, 0xba, 0x4f, 0x1f, 0xfc, 0xa1, 0xae, 0x1a, 0x64, 0x02, 0x51, 0xf1, 0xcb, 0x7a, 0x20, 0xce, 0xb2, 0x34, 0x3c, 0xca, 0xe0, 0xe4, 0xba, 0x22, 0xd4, 0x7b, - /* (2^191)P */ 0xca, 0xfd, 0xca, 0xd7, 0xde, 0x61, 0xae, 0xf0, 0x79, 0x0c, 0x20, 0xab, 0xbc, 0x6f, 0x4d, 0x61, 0xf0, 0xc7, 0x9c, 0x8d, 0x4b, 0x52, 0xf3, 0xb9, 0x48, 0x63, 0x0b, 0xb6, 0xd2, 0x25, 0x9a, 0x96, 0x72, 0xc1, 0x6b, 0x0c, 0xb5, 0xfb, 0x71, 0xaa, 0xad, 0x47, 0x5b, 0xe7, 0xc0, 0x0a, 0x55, 0xb2, 0xd4, 0x16, 0x2f, 0xb1, 0x01, 0xfd, 0xce, 0x27, - /* (2^192)P */ 0x64, 0x11, 0x4b, 0xab, 0x57, 0x09, 0xc6, 0x49, 0x4a, 0x37, 0xc3, 0x36, 0xc4, 0x7b, 0x81, 0x1f, 0x42, 0xed, 0xbb, 0xe0, 0xa0, 0x8d, 0x51, 0xe6, 0xca, 0x8b, 0xb9, 0xcd, 0x99, 0x2d, 0x91, 0x53, 0xa9, 0x47, 0xcb, 0x32, 0xc7, 0xa4, 0x92, 0xec, 0x46, 0x74, 0x44, 0x6d, 0x71, 0x9f, 0x6d, 0x0c, 0x69, 0xa4, 0xf8, 0xbe, 0x9f, 0x7f, 0xa0, 0xd7, - /* (2^193)P */ 0x5f, 0x33, 0xb6, 0x91, 0xc8, 0xa5, 0x3f, 0x5d, 0x7f, 0x38, 0x6e, 0x74, 0x20, 0x4a, 0xd6, 0x2b, 0x98, 0x2a, 0x41, 0x4b, 0x83, 0x64, 0x0b, 0x92, 0x7a, 0x06, 0x1e, 0xc6, 0x2c, 0xf6, 0xe4, 0x91, 0xe5, 0xb1, 0x2e, 0x6e, 0x4e, 0xa8, 0xc8, 0x14, 0x32, 0x57, 0x44, 0x1c, 0xe4, 0xb9, 0x7f, 0x54, 0x51, 0x08, 0x81, 0xaa, 0x4e, 0xce, 0xa1, 0x5d, - /* (2^194)P */ 0x5c, 0xd5, 0x9b, 0x5e, 0x7c, 0xb5, 0xb1, 0x52, 0x73, 0x00, 0x41, 0x56, 0x79, 0x08, 0x7e, 0x07, 0x28, 0x06, 0xa6, 0xfb, 0x7f, 0x69, 0xbd, 0x7a, 0x3c, 0xae, 0x9f, 0x39, 0xbb, 0x54, 0xa2, 0x79, 0xb9, 0x0e, 0x7f, 0xbb, 0xe0, 0xe6, 0xb7, 0x27, 0x64, 0x38, 0x45, 0xdb, 0x84, 0xe4, 0x61, 0x72, 0x3f, 0xe2, 0x24, 0xfe, 0x7a, 0x31, 0x9a, 0xc9, - /* (2^195)P */ 0xa1, 0xd2, 0xa4, 0xee, 0x24, 0x96, 0xe5, 0x5b, 0x79, 0x78, 0x3c, 0x7b, 0x82, 0x3b, 0x8b, 0x58, 0x0b, 0xa3, 0x63, 0x2d, 0xbc, 0x75, 0x46, 0xe8, 0x83, 0x1a, 0xc0, 0x2a, 0x92, 0x61, 0xa8, 0x75, 0x37, 0x3c, 0xbf, 0x0f, 0xef, 0x8f, 0x6c, 0x97, 0x75, 0x10, 0x05, 0x7a, 0xde, 0x23, 0xe8, 0x2a, 0x35, 0xeb, 0x41, 0x64, 0x7d, 0xcf, 0xe0, 0x52, - /* (2^196)P */ 0x4a, 0xd0, 0x49, 0x93, 0xae, 0xf3, 0x24, 0x8c, 0xe1, 0x09, 0x98, 0x45, 0xd8, 0xb9, 0xfe, 0x8e, 0x8c, 0xa8, 0x2c, 0xc9, 0x9f, 0xce, 0x01, 0xdc, 0x38, 0x11, 0xab, 0x85, 0xb9, 0xe8, 0x00, 0x51, 0xfd, 0x82, 0xe1, 0x9b, 0x4e, 0xfc, 0xb5, 0x2a, 0x0f, 0x8b, 0xda, 0x4e, 0x02, 0xca, 0xcc, 0xe3, 0x91, 0xc4, 0xe0, 0xcf, 0x7b, 0xd6, 0xe6, 0x6a, - /* (2^197)P */ 0xfe, 0x11, 0xd7, 0xaa, 0xe3, 0x0c, 0x52, 0x2e, 0x04, 0xe0, 0xe0, 0x61, 0xc8, 0x05, 0xd7, 0x31, 0x4c, 0xc3, 0x9b, 0x2d, 0xce, 0x59, 0xbe, 0x12, 0xb7, 0x30, 0x21, 0xfc, 0x81, 0xb8, 0x5e, 0x57, 0x73, 0xd0, 0xad, 0x8e, 0x9e, 0xe4, 0xeb, 0xcd, 0xcf, 0xd2, 0x0f, 0x01, 0x35, 0x16, 0xed, 0x7a, 0x43, 0x8e, 0x42, 0xdc, 0xea, 0x4c, 0xa8, 0x7c, - /* (2^198)P */ 0x37, 0x26, 0xcc, 0x76, 0x0b, 0xe5, 0x76, 0xdd, 0x3e, 0x19, 0x3c, 0xc4, 0x6c, 0x7f, 0xd0, 0x03, 0xc1, 0xb8, 0x59, 0x82, 0xca, 0x36, 0xc1, 0xe4, 0xc8, 0xb2, 0x83, 0x69, 0x9c, 0xc5, 0x9d, 0x12, 0x82, 0x1c, 0xea, 0xb2, 0x84, 0x9f, 0xf3, 0x52, 0x6b, 0xbb, 0xd8, 0x81, 0x56, 0x83, 0x04, 0x66, 0x05, 0x22, 0x49, 0x37, 0x93, 0xb1, 0xfd, 0xd5, - /* (2^199)P */ 0xaf, 0x96, 0xbf, 0x03, 0xbe, 0xe6, 0x5d, 0x78, 0x19, 0xba, 0x37, 0x46, 0x0a, 0x2b, 0x52, 0x7c, 0xd8, 0x51, 0x9e, 0x3d, 0x29, 0x42, 0xdb, 0x0e, 0x31, 0x20, 0x94, 0xf8, 0x43, 0x9a, 0x2d, 0x22, 0xd3, 0xe3, 0xa1, 0x79, 0x68, 0xfb, 0x2d, 0x7e, 0xd6, 0x79, 0xda, 0x0b, 0xc6, 0x5b, 0x76, 0x68, 0xf0, 0xfe, 0x72, 0x59, 0xbb, 0xa1, 0x9c, 0x74, - /* (2^200)P */ 0x0a, 0xd9, 0xec, 0xc5, 0xbd, 0xf0, 0xda, 0xcf, 0x82, 0xab, 0x46, 0xc5, 0x32, 0x13, 0xdc, 0x5b, 0xac, 0xc3, 0x53, 0x9a, 0x7f, 0xef, 0xa5, 0x40, 0x5a, 0x1f, 0xc1, 0x12, 0x91, 0x54, 0x83, 0x6a, 0xb0, 0x9a, 0x85, 0x4d, 0xbf, 0x36, 0x8e, 0xd3, 0xa2, 0x2b, 0xe5, 0xd6, 0xc6, 0xe1, 0x58, 0x5b, 0x82, 0x9b, 0xc8, 0xf2, 0x03, 0xba, 0xf5, 0x92, - /* (2^201)P */ 0xfb, 0x21, 0x7e, 0xde, 0xe7, 0xb4, 0xc0, 0x56, 0x86, 0x3a, 0x5b, 0x78, 0xf8, 0xf0, 0xf4, 0xe7, 0x5c, 0x00, 0xd2, 0xd7, 0xd6, 0xf8, 0x75, 0x5e, 0x0f, 0x3e, 0xd1, 0x4b, 0x77, 0xd8, 0xad, 0xb0, 0xc9, 0x8b, 0x59, 0x7d, 0x30, 0x76, 0x64, 0x7a, 0x76, 0xd9, 0x51, 0x69, 0xfc, 0xbd, 0x8e, 0xb5, 0x55, 0xe0, 0xd2, 0x07, 0x15, 0xa9, 0xf7, 0xa4, - /* (2^202)P */ 0xaa, 0x2d, 0x2f, 0x2b, 0x3c, 0x15, 0xdd, 0xcd, 0xe9, 0x28, 0x82, 0x4f, 0xa2, 0xaa, 0x31, 0x48, 0xcc, 0xfa, 0x07, 0x73, 0x8a, 0x34, 0x74, 0x0d, 0xab, 0x1a, 0xca, 0xd2, 0xbf, 0x3a, 0xdb, 0x1a, 0x5f, 0x50, 0x62, 0xf4, 0x6b, 0x83, 0x38, 0x43, 0x96, 0xee, 0x6b, 0x39, 0x1e, 0xf0, 0x17, 0x80, 0x1e, 0x9b, 0xed, 0x2b, 0x2f, 0xcc, 0x65, 0xf7, - /* (2^203)P */ 0x03, 0xb3, 0x23, 0x9c, 0x0d, 0xd1, 0xeb, 0x7e, 0x34, 0x17, 0x8a, 0x4c, 0xde, 0x54, 0x39, 0xc4, 0x11, 0x82, 0xd3, 0xa4, 0x00, 0x32, 0x95, 0x9c, 0xa6, 0x64, 0x76, 0x6e, 0xd6, 0x53, 0x27, 0xb4, 0x6a, 0x14, 0x8c, 0x54, 0xf6, 0x58, 0x9e, 0x22, 0x4a, 0x55, 0x18, 0x77, 0xd0, 0x08, 0x6b, 0x19, 0x8a, 0xb5, 0xe7, 0x19, 0xb8, 0x60, 0x92, 0xb1, - /* (2^204)P */ 0x66, 0xec, 0xf3, 0x12, 0xde, 0x67, 0x7f, 0xd4, 0x5b, 0xf6, 0x70, 0x64, 0x0a, 0xb5, 0xc2, 0xf9, 0xb3, 0x64, 0xab, 0x56, 0x46, 0xc7, 0x93, 0xc2, 0x8b, 0x2d, 0xd0, 0xd6, 0x39, 0x3b, 0x1f, 0xcd, 0xb3, 0xac, 0xcc, 0x2c, 0x27, 0x6a, 0xbc, 0xb3, 0x4b, 0xa8, 0x3c, 0x69, 0x20, 0xe2, 0x18, 0x35, 0x17, 0xe1, 0x8a, 0xd3, 0x11, 0x74, 0xaa, 0x4d, - /* (2^205)P */ 0x96, 0xc4, 0x16, 0x7e, 0xfd, 0xf5, 0xd0, 0x7d, 0x1f, 0x32, 0x1b, 0xdb, 0xa6, 0xfd, 0x51, 0x75, 0x4d, 0xd7, 0x00, 0xe5, 0x7f, 0x58, 0x5b, 0xeb, 0x4b, 0x6a, 0x78, 0xfe, 0xe5, 0xd6, 0x8f, 0x99, 0x17, 0xca, 0x96, 0x45, 0xf7, 0x52, 0xdf, 0x84, 0x06, 0x77, 0xb9, 0x05, 0x63, 0x5d, 0xe9, 0x91, 0xb1, 0x4b, 0x82, 0x5a, 0xdb, 0xd7, 0xca, 0x69, - /* (2^206)P */ 0x02, 0xd3, 0x38, 0x38, 0x87, 0xea, 0xbd, 0x9f, 0x11, 0xca, 0xf3, 0x21, 0xf1, 0x9b, 0x35, 0x97, 0x98, 0xff, 0x8e, 0x6d, 0x3d, 0xd6, 0xb2, 0xfa, 0x68, 0xcb, 0x7e, 0x62, 0x85, 0xbb, 0xc7, 0x5d, 0xee, 0x32, 0x30, 0x2e, 0x71, 0x96, 0x63, 0x43, 0x98, 0xc4, 0xa7, 0xde, 0x60, 0xb2, 0xd9, 0x43, 0x4a, 0xfa, 0x97, 0x2d, 0x5f, 0x21, 0xd4, 0xfe, - /* (2^207)P */ 0x3b, 0x20, 0x29, 0x07, 0x07, 0xb5, 0x78, 0xc3, 0xc7, 0xab, 0x56, 0xba, 0x40, 0xde, 0x1d, 0xcf, 0xc3, 0x00, 0x56, 0x21, 0x0c, 0xc8, 0x42, 0xd9, 0x0e, 0xcd, 0x02, 0x7c, 0x07, 0xb9, 0x11, 0xd7, 0x96, 0xaf, 0xff, 0xad, 0xc5, 0xba, 0x30, 0x6d, 0x82, 0x3a, 0xbf, 0xef, 0x7b, 0xf7, 0x0a, 0x74, 0xbd, 0x31, 0x0c, 0xe4, 0xec, 0x1a, 0xe5, 0xc5, - /* (2^208)P */ 0xcc, 0xf2, 0x28, 0x16, 0x12, 0xbf, 0xef, 0x85, 0xbc, 0xf7, 0xcb, 0x9f, 0xdb, 0xa8, 0xb2, 0x49, 0x53, 0x48, 0xa8, 0x24, 0xa8, 0x68, 0x8d, 0xbb, 0x21, 0x0a, 0x5a, 0xbd, 0xb2, 0x91, 0x61, 0x47, 0xc4, 0x43, 0x08, 0xa6, 0x19, 0xef, 0x8e, 0x88, 0x39, 0xc6, 0x33, 0x30, 0xf3, 0x0e, 0xc5, 0x92, 0x66, 0xd6, 0xfe, 0xc5, 0x12, 0xd9, 0x4c, 0x2d, - /* (2^209)P */ 0x30, 0x34, 0x07, 0xbf, 0x9c, 0x5a, 0x4e, 0x65, 0xf1, 0x39, 0x35, 0x38, 0xae, 0x7b, 0x55, 0xac, 0x6a, 0x92, 0x24, 0x7e, 0x50, 0xd3, 0xba, 0x78, 0x51, 0xfe, 0x4d, 0x32, 0x05, 0x11, 0xf5, 0x52, 0xf1, 0x31, 0x45, 0x39, 0x98, 0x7b, 0x28, 0x56, 0xc3, 0x5d, 0x4f, 0x07, 0x6f, 0x84, 0xb8, 0x1a, 0x58, 0x0b, 0xc4, 0x7c, 0xc4, 0x8d, 0x32, 0x8e, - /* (2^210)P */ 0x7e, 0xaf, 0x98, 0xce, 0xc5, 0x2b, 0x9d, 0xf6, 0xfa, 0x2c, 0xb6, 0x2a, 0x5a, 0x1d, 0xc0, 0x24, 0x8d, 0xa4, 0xce, 0xb1, 0x12, 0x01, 0xf9, 0x79, 0xc6, 0x79, 0x38, 0x0c, 0xd4, 0x07, 0xc9, 0xf7, 0x37, 0xa1, 0x0b, 0xfe, 0x72, 0xec, 0x5d, 0xd6, 0xb0, 0x1c, 0x70, 0xbe, 0x70, 0x01, 0x13, 0xe0, 0x86, 0x95, 0xc7, 0x2e, 0x12, 0x3b, 0xe6, 0xa6, - /* (2^211)P */ 0x24, 0x82, 0x67, 0xe0, 0x14, 0x7b, 0x56, 0x08, 0x38, 0x44, 0xdb, 0xa0, 0x3a, 0x05, 0x47, 0xb2, 0xc0, 0xac, 0xd1, 0xcc, 0x3f, 0x82, 0xb8, 0x8a, 0x88, 0xbc, 0xf5, 0x33, 0xa1, 0x35, 0x0f, 0xf6, 0xe2, 0xef, 0x6c, 0xf7, 0x37, 0x9e, 0xe8, 0x10, 0xca, 0xb0, 0x8e, 0x80, 0x86, 0x00, 0x23, 0xd0, 0x4a, 0x76, 0x9f, 0xf7, 0x2c, 0x52, 0x15, 0x0e, - /* (2^212)P */ 0x5e, 0x49, 0xe1, 0x2c, 0x9a, 0x01, 0x76, 0xa6, 0xb3, 0x07, 0x5b, 0xa4, 0x07, 0xef, 0x1d, 0xc3, 0x6a, 0xbb, 0x64, 0xbe, 0x71, 0x15, 0x6e, 0x32, 0x31, 0x46, 0x9a, 0x9e, 0x8f, 0x45, 0x73, 0xce, 0x0b, 0x94, 0x1a, 0x52, 0x07, 0xf4, 0x50, 0x30, 0x49, 0x53, 0x50, 0xfb, 0x71, 0x1f, 0x5a, 0x03, 0xa9, 0x76, 0xf2, 0x8f, 0x42, 0xff, 0xed, 0xed, - /* (2^213)P */ 0xed, 0x08, 0xdb, 0x91, 0x1c, 0xee, 0xa2, 0xb4, 0x47, 0xa2, 0xfa, 0xcb, 0x03, 0xd1, 0xff, 0x8c, 0xad, 0x64, 0x50, 0x61, 0xcd, 0xfc, 0x88, 0xa0, 0x31, 0x95, 0x30, 0xb9, 0x58, 0xdd, 0xd7, 0x43, 0xe4, 0x46, 0xc2, 0x16, 0xd9, 0x72, 0x4a, 0x56, 0x51, 0x70, 0x85, 0xf1, 0xa1, 0x80, 0x40, 0xd5, 0xba, 0x67, 0x81, 0xda, 0xcd, 0x03, 0xea, 0x51, - /* (2^214)P */ 0x42, 0x50, 0xf0, 0xef, 0x37, 0x61, 0x72, 0x85, 0xe1, 0xf1, 0xff, 0x6f, 0x3d, 0xe8, 0x7b, 0x21, 0x5c, 0xe5, 0x50, 0x03, 0xde, 0x00, 0xc1, 0xf7, 0x3a, 0x55, 0x12, 0x1c, 0x9e, 0x1e, 0xce, 0xd1, 0x2f, 0xaf, 0x05, 0x70, 0x5b, 0x47, 0xf2, 0x04, 0x7a, 0x89, 0xbc, 0x78, 0xa6, 0x65, 0x6c, 0xaa, 0x3c, 0xa2, 0x3c, 0x8b, 0x5c, 0xa9, 0x22, 0x48, - /* (2^215)P */ 0x7e, 0x8c, 0x8f, 0x2f, 0x60, 0xe3, 0x5a, 0x94, 0xd4, 0xce, 0xdd, 0x9d, 0x83, 0x3b, 0x77, 0x78, 0x43, 0x1d, 0xfd, 0x8f, 0xc8, 0xe8, 0x02, 0x90, 0xab, 0xf6, 0xc9, 0xfc, 0xf1, 0x63, 0xaa, 0x5f, 0x42, 0xf1, 0x78, 0x34, 0x64, 0x16, 0x75, 0x9c, 0x7d, 0xd0, 0xe4, 0x74, 0x5a, 0xa8, 0xfb, 0xcb, 0xac, 0x20, 0xa3, 0xc2, 0xa6, 0x20, 0xf8, 0x1b, - /* (2^216)P */ 0x00, 0x4f, 0x1e, 0x56, 0xb5, 0x34, 0xb2, 0x87, 0x31, 0xe5, 0xee, 0x8d, 0xf1, 0x41, 0x67, 0xb7, 0x67, 0x3a, 0x54, 0x86, 0x5c, 0xf0, 0x0b, 0x37, 0x2f, 0x1b, 0x92, 0x5d, 0x58, 0x93, 0xdc, 0xd8, 0x58, 0xcc, 0x9e, 0x67, 0xd0, 0x97, 0x3a, 0xaf, 0x49, 0x39, 0x2d, 0x3b, 0xd8, 0x98, 0xfb, 0x76, 0x6b, 0xe7, 0xaf, 0xc3, 0x45, 0x44, 0x53, 0x94, - /* (2^217)P */ 0x30, 0xbd, 0x90, 0x75, 0xd3, 0xbd, 0x3b, 0x58, 0x27, 0x14, 0x9f, 0x6b, 0xd4, 0x31, 0x99, 0xcd, 0xde, 0x3a, 0x21, 0x1e, 0xb4, 0x02, 0xe4, 0x33, 0x04, 0x02, 0xb0, 0x50, 0x66, 0x68, 0x90, 0xdd, 0x7b, 0x69, 0x31, 0xd9, 0xcf, 0x68, 0x73, 0xf1, 0x60, 0xdd, 0xc8, 0x1d, 0x5d, 0xe3, 0xd6, 0x5b, 0x2a, 0xa4, 0xea, 0xc4, 0x3f, 0x08, 0xcd, 0x9c, - /* (2^218)P */ 0x6b, 0x1a, 0xbf, 0x55, 0xc1, 0x1b, 0x0c, 0x05, 0x09, 0xdf, 0xf5, 0x5e, 0xa3, 0x77, 0x95, 0xe9, 0xdf, 0x19, 0xdd, 0xc7, 0x94, 0xcb, 0x06, 0x73, 0xd0, 0x88, 0x02, 0x33, 0x94, 0xca, 0x7a, 0x2f, 0x8e, 0x3d, 0x72, 0x61, 0x2d, 0x4d, 0xa6, 0x61, 0x1f, 0x32, 0x5e, 0x87, 0x53, 0x36, 0x11, 0x15, 0x20, 0xb3, 0x5a, 0x57, 0x51, 0x93, 0x20, 0xd8, - /* (2^219)P */ 0xb7, 0x56, 0xf4, 0xab, 0x7d, 0x0c, 0xfb, 0x99, 0x1a, 0x30, 0x29, 0xb0, 0x75, 0x2a, 0xf8, 0x53, 0x71, 0x23, 0xbd, 0xa7, 0xd8, 0x0a, 0xe2, 0x27, 0x65, 0xe9, 0x74, 0x26, 0x98, 0x4a, 0x69, 0x19, 0xb2, 0x4d, 0x0a, 0x17, 0x98, 0xb2, 0xa9, 0x57, 0x4e, 0xf6, 0x86, 0xc8, 0x01, 0xa4, 0xc6, 0x98, 0xad, 0x5a, 0x90, 0x2c, 0x05, 0x46, 0x64, 0xb7, - /* (2^220)P */ 0x7b, 0x91, 0xdf, 0xfc, 0xf8, 0x1c, 0x8c, 0x15, 0x9e, 0xf7, 0xd5, 0xa8, 0xe8, 0xe7, 0xe3, 0xa3, 0xb0, 0x04, 0x74, 0xfa, 0x78, 0xfb, 0x26, 0xbf, 0x67, 0x42, 0xf9, 0x8c, 0x9b, 0xb4, 0x69, 0x5b, 0x02, 0x13, 0x6d, 0x09, 0x6c, 0xd6, 0x99, 0x61, 0x7b, 0x89, 0x4a, 0x67, 0x75, 0xa3, 0x98, 0x13, 0x23, 0x1d, 0x18, 0x24, 0x0e, 0xef, 0x41, 0x79, - /* (2^221)P */ 0x86, 0x33, 0xab, 0x08, 0xcb, 0xbf, 0x1e, 0x76, 0x3c, 0x0b, 0xbd, 0x30, 0xdb, 0xe9, 0xa3, 0x35, 0x87, 0x1b, 0xe9, 0x07, 0x00, 0x66, 0x7f, 0x3b, 0x35, 0x0c, 0x8a, 0x3f, 0x61, 0xbc, 0xe0, 0xae, 0xf6, 0xcc, 0x54, 0xe1, 0x72, 0x36, 0x2d, 0xee, 0x93, 0x24, 0xf8, 0xd7, 0xc5, 0xf9, 0xcb, 0xb0, 0xe5, 0x88, 0x0d, 0x23, 0x4b, 0x76, 0x15, 0xa2, - /* (2^222)P */ 0x37, 0xdb, 0x83, 0xd5, 0x6d, 0x06, 0x24, 0x37, 0x1b, 0x15, 0x85, 0x15, 0xe2, 0xc0, 0x4e, 0x02, 0xa9, 0x6d, 0x0a, 0x3a, 0x94, 0x4a, 0x6f, 0x49, 0x00, 0x01, 0x72, 0xbb, 0x60, 0x14, 0x35, 0xae, 0xb4, 0xc6, 0x01, 0x0a, 0x00, 0x9e, 0xc3, 0x58, 0xc5, 0xd1, 0x5e, 0x30, 0x73, 0x96, 0x24, 0x85, 0x9d, 0xf0, 0xf9, 0xec, 0x09, 0xd3, 0xe7, 0x70, - /* (2^223)P */ 0xf3, 0xbd, 0x96, 0x87, 0xe9, 0x71, 0xbd, 0xd6, 0xa2, 0x45, 0xeb, 0x0a, 0xcd, 0x2c, 0xf1, 0x72, 0xa6, 0x31, 0xa9, 0x6f, 0x09, 0xa1, 0x5e, 0xdd, 0xc8, 0x8d, 0x0d, 0xbc, 0x5a, 0x8d, 0xb1, 0x2c, 0x9a, 0xcc, 0x37, 0x74, 0xc2, 0xa9, 0x4e, 0xd6, 0xc0, 0x3c, 0xa0, 0x23, 0xb0, 0xa0, 0x77, 0x14, 0x80, 0x45, 0x71, 0x6a, 0x2d, 0x41, 0xc3, 0x82, - /* (2^224)P */ 0x37, 0x44, 0xec, 0x8a, 0x3e, 0xc1, 0x0c, 0xa9, 0x12, 0x9c, 0x08, 0x88, 0xcb, 0xd9, 0xf8, 0xba, 0x00, 0xd6, 0xc3, 0xdf, 0xef, 0x7a, 0x44, 0x7e, 0x25, 0x69, 0xc9, 0xc1, 0x46, 0xe5, 0x20, 0x9e, 0xcc, 0x0b, 0x05, 0x3e, 0xf4, 0x78, 0x43, 0x0c, 0xa6, 0x2f, 0xc1, 0xfa, 0x70, 0xb2, 0x3c, 0x31, 0x7a, 0x63, 0x58, 0xab, 0x17, 0xcf, 0x4c, 0x4f, - /* (2^225)P */ 0x2b, 0x08, 0x31, 0x59, 0x75, 0x8b, 0xec, 0x0a, 0xa9, 0x79, 0x70, 0xdd, 0xf1, 0x11, 0xc3, 0x11, 0x1f, 0xab, 0x37, 0xaa, 0x26, 0xea, 0x53, 0xc4, 0x79, 0xa7, 0x91, 0x00, 0xaa, 0x08, 0x42, 0xeb, 0x8b, 0x8b, 0xe8, 0xc3, 0x2f, 0xb8, 0x78, 0x90, 0x38, 0x0e, 0x8a, 0x42, 0x0c, 0x0f, 0xbf, 0x3e, 0xf8, 0xd8, 0x07, 0xcf, 0x6a, 0x34, 0xc9, 0xfa, - /* (2^226)P */ 0x11, 0xe0, 0x76, 0x4d, 0x23, 0xc5, 0xa6, 0xcc, 0x9f, 0x9a, 0x2a, 0xde, 0x3a, 0xb5, 0x92, 0x39, 0x19, 0x8a, 0xf1, 0x8d, 0xf9, 0x4d, 0xc9, 0xb4, 0x39, 0x9f, 0x57, 0xd8, 0x72, 0xab, 0x1d, 0x61, 0x6a, 0xb2, 0xff, 0x52, 0xba, 0x54, 0x0e, 0xfb, 0x83, 0x30, 0x8a, 0xf7, 0x3b, 0xf4, 0xd8, 0xae, 0x1a, 0x94, 0x3a, 0xec, 0x63, 0xfe, 0x6e, 0x7c, - /* (2^227)P */ 0xdc, 0x70, 0x8e, 0x55, 0x44, 0xbf, 0xd2, 0x6a, 0xa0, 0x14, 0x61, 0x89, 0xd5, 0x55, 0x45, 0x3c, 0xf6, 0x40, 0x0d, 0x83, 0x85, 0x44, 0xb4, 0x62, 0x56, 0xfe, 0x60, 0xd7, 0x07, 0x1d, 0x47, 0x30, 0x3b, 0x73, 0xa4, 0xb5, 0xb7, 0xea, 0xac, 0xda, 0xf1, 0x17, 0xaa, 0x60, 0xdf, 0xe9, 0x84, 0xda, 0x31, 0x32, 0x61, 0xbf, 0xd0, 0x7e, 0x8a, 0x02, - /* (2^228)P */ 0xb9, 0x51, 0xb3, 0x89, 0x21, 0x5d, 0xa2, 0xfe, 0x79, 0x2a, 0xb3, 0x2a, 0x3b, 0xe6, 0x6f, 0x2b, 0x22, 0x03, 0xea, 0x7b, 0x1f, 0xaf, 0x85, 0xc3, 0x38, 0x55, 0x5b, 0x8e, 0xb4, 0xaa, 0x77, 0xfe, 0x03, 0x6e, 0xda, 0x91, 0x24, 0x0c, 0x48, 0x39, 0x27, 0x43, 0x16, 0xd2, 0x0a, 0x0d, 0x43, 0xa3, 0x0e, 0xca, 0x45, 0xd1, 0x7f, 0xf5, 0xd3, 0x16, - /* (2^229)P */ 0x3d, 0x32, 0x9b, 0x38, 0xf8, 0x06, 0x93, 0x78, 0x5b, 0x50, 0x2b, 0x06, 0xd8, 0x66, 0xfe, 0xab, 0x9b, 0x58, 0xc7, 0xd1, 0x4d, 0xd5, 0xf8, 0x3b, 0x10, 0x7e, 0x85, 0xde, 0x58, 0x4e, 0xdf, 0x53, 0xd9, 0x58, 0xe0, 0x15, 0x81, 0x9f, 0x1a, 0x78, 0xfc, 0x9f, 0x10, 0xc2, 0x23, 0xd6, 0x78, 0xd1, 0x9d, 0xd2, 0xd5, 0x1c, 0x53, 0xe2, 0xc9, 0x76, - /* (2^230)P */ 0x98, 0x1e, 0x38, 0x7b, 0x71, 0x18, 0x4b, 0x15, 0xaf, 0xa1, 0xa6, 0x98, 0xcb, 0x26, 0xa3, 0xc8, 0x07, 0x46, 0xda, 0x3b, 0x70, 0x65, 0xec, 0x7a, 0x2b, 0x34, 0x94, 0xa8, 0xb6, 0x14, 0xf8, 0x1a, 0xce, 0xf7, 0xc8, 0x60, 0xf3, 0x88, 0xf4, 0x33, 0x60, 0x7b, 0xd1, 0x02, 0xe7, 0xda, 0x00, 0x4a, 0xea, 0xd2, 0xfd, 0x88, 0xd2, 0x99, 0x28, 0xf3, - /* (2^231)P */ 0x28, 0x24, 0x1d, 0x26, 0xc2, 0xeb, 0x8b, 0x3b, 0xb4, 0x6b, 0xbe, 0x6b, 0x77, 0xff, 0xf3, 0x21, 0x3b, 0x26, 0x6a, 0x8c, 0x8e, 0x2a, 0x44, 0xa8, 0x01, 0x2b, 0x71, 0xea, 0x64, 0x30, 0xfd, 0xfd, 0x95, 0xcb, 0x39, 0x38, 0x48, 0xfa, 0x96, 0x97, 0x8c, 0x2f, 0x33, 0xca, 0x03, 0xe6, 0xd7, 0x94, 0x55, 0x6c, 0xc3, 0xb3, 0xa8, 0xf7, 0xae, 0x8c, - /* (2^232)P */ 0xea, 0x62, 0x8a, 0xb4, 0xeb, 0x74, 0xf7, 0xb8, 0xae, 0xc5, 0x20, 0x71, 0x06, 0xd6, 0x7c, 0x62, 0x9b, 0x69, 0x74, 0xef, 0xa7, 0x6d, 0xd6, 0x8c, 0x37, 0xb9, 0xbf, 0xcf, 0xeb, 0xe4, 0x2f, 0x04, 0x02, 0x21, 0x7d, 0x75, 0x6b, 0x92, 0x48, 0xf8, 0x70, 0xad, 0x69, 0xe2, 0xea, 0x0e, 0x88, 0x67, 0x72, 0xcc, 0x2d, 0x10, 0xce, 0x2d, 0xcf, 0x65, - /* (2^233)P */ 0x49, 0xf3, 0x57, 0x64, 0xe5, 0x5c, 0xc5, 0x65, 0x49, 0x97, 0xc4, 0x8a, 0xcc, 0xa9, 0xca, 0x94, 0x7b, 0x86, 0x88, 0xb6, 0x51, 0x27, 0x69, 0xa5, 0x0f, 0x8b, 0x06, 0x59, 0xa0, 0x94, 0xef, 0x63, 0x1a, 0x01, 0x9e, 0x4f, 0xd2, 0x5a, 0x93, 0xc0, 0x7c, 0xe6, 0x61, 0x77, 0xb6, 0xf5, 0x40, 0xd9, 0x98, 0x43, 0x5b, 0x56, 0x68, 0xe9, 0x37, 0x8f, - /* (2^234)P */ 0xee, 0x87, 0xd2, 0x05, 0x1b, 0x39, 0x89, 0x10, 0x07, 0x6d, 0xe8, 0xfd, 0x8b, 0x4d, 0xb2, 0xa7, 0x7b, 0x1e, 0xa0, 0x6c, 0x0d, 0x3d, 0x3d, 0x49, 0xba, 0x61, 0x36, 0x1f, 0xc2, 0x84, 0x4a, 0xcc, 0x87, 0xa9, 0x1b, 0x23, 0x04, 0xe2, 0x3e, 0x97, 0xe1, 0xdb, 0xd5, 0x5a, 0xe8, 0x41, 0x6b, 0xe5, 0x5a, 0xa1, 0x99, 0xe5, 0x7b, 0xa7, 0xe0, 0x3b, - /* (2^235)P */ 0xea, 0xa3, 0x6a, 0xdd, 0x77, 0x7f, 0x77, 0x41, 0xc5, 0x6a, 0xe4, 0xaf, 0x11, 0x5f, 0x88, 0xa5, 0x10, 0xee, 0xd0, 0x8c, 0x0c, 0xb4, 0xa5, 0x2a, 0xd0, 0xd8, 0x1d, 0x47, 0x06, 0xc0, 0xd5, 0xce, 0x51, 0x54, 0x9b, 0x2b, 0xe6, 0x2f, 0xe7, 0xe7, 0x31, 0x5f, 0x5c, 0x23, 0x81, 0x3e, 0x03, 0x93, 0xaa, 0x2d, 0x71, 0x84, 0xa0, 0x89, 0x32, 0xa6, - /* (2^236)P */ 0x55, 0xa3, 0x13, 0x92, 0x4e, 0x93, 0x7d, 0xec, 0xca, 0x57, 0xfb, 0x37, 0xae, 0xd2, 0x18, 0x2e, 0x54, 0x05, 0x6c, 0xd1, 0x28, 0xca, 0x90, 0x40, 0x82, 0x2e, 0x79, 0xc6, 0x5a, 0xc7, 0xdd, 0x84, 0x93, 0xdf, 0x15, 0xb8, 0x1f, 0xb1, 0xf9, 0xaf, 0x2c, 0xe5, 0x32, 0xcd, 0xc2, 0x99, 0x6d, 0xac, 0x85, 0x5c, 0x63, 0xd3, 0xe2, 0xff, 0x24, 0xda, - /* (2^237)P */ 0x2d, 0x8d, 0xfd, 0x65, 0xcc, 0xe5, 0x02, 0xa0, 0xe5, 0xb9, 0xec, 0x59, 0x09, 0x50, 0x27, 0xb7, 0x3d, 0x2a, 0x79, 0xb2, 0x76, 0x5d, 0x64, 0x95, 0xf8, 0xc5, 0xaf, 0x8a, 0x62, 0x11, 0x5c, 0x56, 0x1c, 0x05, 0x64, 0x9e, 0x5e, 0xbd, 0x54, 0x04, 0xe6, 0x9e, 0xab, 0xe6, 0x22, 0x7e, 0x42, 0x54, 0xb5, 0xa5, 0xd0, 0x8d, 0x28, 0x6b, 0x0f, 0x0b, - /* (2^238)P */ 0x2d, 0xb2, 0x8c, 0x59, 0x10, 0x37, 0x84, 0x3b, 0x9b, 0x65, 0x1b, 0x0f, 0x10, 0xf9, 0xea, 0x60, 0x1b, 0x02, 0xf5, 0xee, 0x8b, 0xe6, 0x32, 0x7d, 0x10, 0x7f, 0x5f, 0x8c, 0x72, 0x09, 0x4e, 0x1f, 0x29, 0xff, 0x65, 0xcb, 0x3e, 0x3a, 0xd2, 0x96, 0x50, 0x1e, 0xea, 0x64, 0x99, 0xb5, 0x4c, 0x7a, 0x69, 0xb8, 0x95, 0xae, 0x48, 0xc0, 0x7c, 0xb1, - /* (2^239)P */ 0xcd, 0x7c, 0x4f, 0x3e, 0xea, 0xf3, 0x90, 0xcb, 0x12, 0x76, 0xd1, 0x17, 0xdc, 0x0d, 0x13, 0x0f, 0xfd, 0x4d, 0xb5, 0x1f, 0xe4, 0xdd, 0xf2, 0x4d, 0x58, 0xea, 0xa5, 0x66, 0x92, 0xcf, 0xe5, 0x54, 0xea, 0x9b, 0x35, 0x83, 0x1a, 0x44, 0x8e, 0x62, 0x73, 0x45, 0x98, 0xa3, 0x89, 0x95, 0x52, 0x93, 0x1a, 0x8d, 0x63, 0x0f, 0xc2, 0x57, 0x3c, 0xb1, - /* (2^240)P */ 0x72, 0xb4, 0xdf, 0x51, 0xb7, 0xf6, 0x52, 0xa2, 0x14, 0x56, 0xe5, 0x0a, 0x2e, 0x75, 0x81, 0x02, 0xee, 0x93, 0x48, 0x0a, 0x92, 0x4e, 0x0c, 0x0f, 0xdf, 0x09, 0x89, 0x99, 0xf6, 0xf9, 0x22, 0xa2, 0x32, 0xf8, 0xb0, 0x76, 0x0c, 0xb2, 0x4d, 0x6e, 0xbe, 0x83, 0x35, 0x61, 0x44, 0xd2, 0x58, 0xc7, 0xdd, 0x14, 0xcf, 0xc3, 0x4b, 0x7c, 0x07, 0xee, - /* (2^241)P */ 0x8b, 0x03, 0xee, 0xcb, 0xa7, 0x2e, 0x28, 0xbd, 0x97, 0xd1, 0x4c, 0x2b, 0xd1, 0x92, 0x67, 0x5b, 0x5a, 0x12, 0xbf, 0x29, 0x17, 0xfc, 0x50, 0x09, 0x74, 0x76, 0xa2, 0xd4, 0x82, 0xfd, 0x2c, 0x0c, 0x90, 0xf7, 0xe7, 0xe5, 0x9a, 0x2c, 0x16, 0x40, 0xb9, 0x6c, 0xd9, 0xe0, 0x22, 0x9e, 0xf8, 0xdd, 0x73, 0xe4, 0x7b, 0x9e, 0xbe, 0x4f, 0x66, 0x22, - /* (2^242)P */ 0xa4, 0x10, 0xbe, 0xb8, 0x83, 0x3a, 0x77, 0x8e, 0xea, 0x0a, 0xc4, 0x97, 0x3e, 0xb6, 0x6c, 0x81, 0xd7, 0x65, 0xd9, 0xf7, 0xae, 0xe6, 0xbe, 0xab, 0x59, 0x81, 0x29, 0x4b, 0xff, 0xe1, 0x0f, 0xc3, 0x2b, 0xad, 0x4b, 0xef, 0xc4, 0x50, 0x9f, 0x88, 0x31, 0xf2, 0xde, 0x80, 0xd6, 0xf4, 0x20, 0x9c, 0x77, 0x9b, 0xbe, 0xbe, 0x08, 0xf5, 0xf0, 0x95, - /* (2^243)P */ 0x0e, 0x7c, 0x7b, 0x7c, 0xb3, 0xd8, 0x83, 0xfc, 0x8c, 0x75, 0x51, 0x74, 0x1b, 0xe1, 0x6d, 0x11, 0x05, 0x46, 0x24, 0x0d, 0xa4, 0x2b, 0x32, 0xfd, 0x2c, 0x4e, 0x21, 0xdf, 0x39, 0x6b, 0x96, 0xfc, 0xff, 0x92, 0xfc, 0x35, 0x0d, 0x9a, 0x4b, 0xc0, 0x70, 0x46, 0x32, 0x7d, 0xc0, 0xc4, 0x04, 0xe0, 0x2d, 0x83, 0xa7, 0x00, 0xc7, 0xcb, 0xb4, 0x8f, - /* (2^244)P */ 0xa9, 0x5a, 0x7f, 0x0e, 0xdd, 0x2c, 0x85, 0xaa, 0x4d, 0xac, 0xde, 0xb3, 0xb6, 0xaf, 0xe6, 0xd1, 0x06, 0x7b, 0x2c, 0xa4, 0x01, 0x19, 0x22, 0x7d, 0x78, 0xf0, 0x3a, 0xea, 0x89, 0xfe, 0x21, 0x61, 0x6d, 0xb8, 0xfe, 0xa5, 0x2a, 0xab, 0x0d, 0x7b, 0x51, 0x39, 0xb6, 0xde, 0xbc, 0xf0, 0xc5, 0x48, 0xd7, 0x09, 0x82, 0x6e, 0x66, 0x75, 0xc5, 0xcd, - /* (2^245)P */ 0xee, 0xdf, 0x2b, 0x6c, 0xa8, 0xde, 0x61, 0xe1, 0x27, 0xfa, 0x2a, 0x0f, 0x68, 0xe7, 0x7a, 0x9b, 0x13, 0xe9, 0x56, 0xd2, 0x1c, 0x3d, 0x2f, 0x3c, 0x7a, 0xf6, 0x6f, 0x45, 0xee, 0xe8, 0xf4, 0xa0, 0xa6, 0xe8, 0xa5, 0x27, 0xee, 0xf2, 0x85, 0xa9, 0xd5, 0x0e, 0xa9, 0x26, 0x60, 0xfe, 0xee, 0xc7, 0x59, 0x99, 0x5e, 0xa3, 0xdf, 0x23, 0x36, 0xd5, - /* (2^246)P */ 0x15, 0x66, 0x6f, 0xd5, 0x78, 0xa4, 0x0a, 0xf7, 0xb1, 0xe8, 0x75, 0x6b, 0x48, 0x7d, 0xa6, 0x4d, 0x3d, 0x36, 0x9b, 0xc7, 0xcc, 0x68, 0x9a, 0xfe, 0x2f, 0x39, 0x2a, 0x51, 0x31, 0x39, 0x7d, 0x73, 0x6f, 0xc8, 0x74, 0x72, 0x6f, 0x6e, 0xda, 0x5f, 0xad, 0x48, 0xc8, 0x40, 0xe1, 0x06, 0x01, 0x36, 0xa1, 0x88, 0xc8, 0x99, 0x9c, 0xd1, 0x11, 0x8f, - /* (2^247)P */ 0xab, 0xc5, 0xcb, 0xcf, 0xbd, 0x73, 0x21, 0xd0, 0x82, 0xb1, 0x2e, 0x2d, 0xd4, 0x36, 0x1b, 0xed, 0xa9, 0x8a, 0x26, 0x79, 0xc4, 0x17, 0xae, 0xe5, 0x09, 0x0a, 0x0c, 0xa4, 0x21, 0xa0, 0x6e, 0xdd, 0x62, 0x8e, 0x44, 0x62, 0xcc, 0x50, 0xff, 0x93, 0xb3, 0x9a, 0x72, 0x8c, 0x3f, 0xa1, 0xa6, 0x4d, 0x87, 0xd5, 0x1c, 0x5a, 0xc0, 0x0b, 0x1a, 0xd6, - /* (2^248)P */ 0x67, 0x36, 0x6a, 0x1f, 0x96, 0xe5, 0x80, 0x20, 0xa9, 0xe8, 0x0b, 0x0e, 0x21, 0x29, 0x3f, 0xc8, 0x0a, 0x6d, 0x27, 0x47, 0xca, 0xd9, 0x05, 0x55, 0xbf, 0x11, 0xcf, 0x31, 0x7a, 0x37, 0xc7, 0x90, 0xa9, 0xf4, 0x07, 0x5e, 0xd5, 0xc3, 0x92, 0xaa, 0x95, 0xc8, 0x23, 0x2a, 0x53, 0x45, 0xe3, 0x3a, 0x24, 0xe9, 0x67, 0x97, 0x3a, 0x82, 0xf9, 0xa6, - /* (2^249)P */ 0x92, 0x9e, 0x6d, 0x82, 0x67, 0xe9, 0xf9, 0x17, 0x96, 0x2c, 0xa7, 0xd3, 0x89, 0xf9, 0xdb, 0xd8, 0x20, 0xc6, 0x2e, 0xec, 0x4a, 0x76, 0x64, 0xbf, 0x27, 0x40, 0xe2, 0xb4, 0xdf, 0x1f, 0xa0, 0xef, 0x07, 0x80, 0xfb, 0x8e, 0x12, 0xf8, 0xb8, 0xe1, 0xc6, 0xdf, 0x7c, 0x69, 0x35, 0x5a, 0xe1, 0x8e, 0x5d, 0x69, 0x84, 0x56, 0xb6, 0x31, 0x1c, 0x0b, - /* (2^250)P */ 0xd6, 0x94, 0x5c, 0xef, 0xbb, 0x46, 0x45, 0x44, 0x5b, 0xa1, 0xae, 0x03, 0x65, 0xdd, 0xb5, 0x66, 0x88, 0x35, 0x29, 0x95, 0x16, 0x54, 0xa6, 0xf5, 0xc9, 0x78, 0x34, 0xe6, 0x0f, 0xc4, 0x2b, 0x5b, 0x79, 0x51, 0x68, 0x48, 0x3a, 0x26, 0x87, 0x05, 0x70, 0xaf, 0x8b, 0xa6, 0xc7, 0x2e, 0xb3, 0xa9, 0x10, 0x01, 0xb0, 0xb9, 0x31, 0xfd, 0xdc, 0x80, - /* (2^251)P */ 0x25, 0xf2, 0xad, 0xd6, 0x75, 0xa3, 0x04, 0x05, 0x64, 0x8a, 0x97, 0x60, 0x27, 0x2a, 0xe5, 0x6d, 0xb0, 0x73, 0xf4, 0x07, 0x2a, 0x9d, 0xe9, 0x46, 0xb4, 0x1c, 0x51, 0xf8, 0x63, 0x98, 0x7e, 0xe5, 0x13, 0x51, 0xed, 0x98, 0x65, 0x98, 0x4f, 0x8f, 0xe7, 0x7e, 0x72, 0xd7, 0x64, 0x11, 0x2f, 0xcd, 0x12, 0xf8, 0xc4, 0x63, 0x52, 0x0f, 0x7f, 0xc4, - /* (2^252)P */ 0x5c, 0xd9, 0x85, 0x63, 0xc7, 0x8a, 0x65, 0x9a, 0x25, 0x83, 0x31, 0x73, 0x49, 0xf0, 0x93, 0x96, 0x70, 0x67, 0x6d, 0xb1, 0xff, 0x95, 0x54, 0xe4, 0xf8, 0x15, 0x6c, 0x5f, 0xbd, 0xf6, 0x0f, 0x38, 0x7b, 0x68, 0x7d, 0xd9, 0x3d, 0xf0, 0xa9, 0xa0, 0xe4, 0xd1, 0xb6, 0x34, 0x6d, 0x14, 0x16, 0xc2, 0x4c, 0x30, 0x0e, 0x67, 0xd3, 0xbe, 0x2e, 0xc0, - /* (2^253)P */ 0x06, 0x6b, 0x52, 0xc8, 0x14, 0xcd, 0xae, 0x03, 0x93, 0xea, 0xc1, 0xf2, 0xf6, 0x8b, 0xc5, 0xb6, 0xdc, 0x82, 0x42, 0x29, 0x94, 0xe0, 0x25, 0x6c, 0x3f, 0x9f, 0x5d, 0xe4, 0x96, 0xf6, 0x8e, 0x3f, 0xf9, 0x72, 0xc4, 0x77, 0x60, 0x8b, 0xa4, 0xf9, 0xa8, 0xc3, 0x0a, 0x81, 0xb1, 0x97, 0x70, 0x18, 0xab, 0xea, 0x37, 0x8a, 0x08, 0xc7, 0xe2, 0x95, - /* (2^254)P */ 0x94, 0x49, 0xd9, 0x5f, 0x76, 0x72, 0x82, 0xad, 0x2d, 0x50, 0x1a, 0x7a, 0x5b, 0xe6, 0x95, 0x1e, 0x95, 0x65, 0x87, 0x1c, 0x52, 0xd7, 0x44, 0xe6, 0x9b, 0x56, 0xcd, 0x6f, 0x05, 0xff, 0x67, 0xc5, 0xdb, 0xa2, 0xac, 0xe4, 0xa2, 0x28, 0x63, 0x5f, 0xfb, 0x0c, 0x3b, 0xf1, 0x87, 0xc3, 0x36, 0x78, 0x3f, 0x77, 0xfa, 0x50, 0x85, 0xf9, 0xd7, 0x82, - /* (2^255)P */ 0x64, 0xc0, 0xe0, 0xd8, 0x2d, 0xed, 0xcb, 0x6a, 0xfd, 0xcd, 0xbc, 0x7e, 0x9f, 0xc8, 0x85, 0xe9, 0xc1, 0x7c, 0x0f, 0xe5, 0x18, 0xea, 0xd4, 0x51, 0xad, 0x59, 0x13, 0x75, 0xd9, 0x3d, 0xd4, 0x8a, 0xb2, 0xbe, 0x78, 0x52, 0x2b, 0x52, 0x94, 0x37, 0x41, 0xd6, 0xb4, 0xb6, 0x45, 0x20, 0x76, 0xe0, 0x1f, 0x31, 0xdb, 0xb1, 0xa1, 0x43, 0xf0, 0x18, - /* (2^256)P */ 0x74, 0xa9, 0xa4, 0xa9, 0xdd, 0x6e, 0x3e, 0x68, 0xe5, 0xc3, 0x2e, 0x92, 0x17, 0xa4, 0xcb, 0x80, 0xb1, 0xf0, 0x06, 0x93, 0xef, 0xe6, 0x00, 0xe6, 0x3b, 0xb1, 0x32, 0x65, 0x7b, 0x83, 0xb6, 0x8a, 0x49, 0x1b, 0x14, 0x89, 0xee, 0xba, 0xf5, 0x6a, 0x8d, 0x36, 0xef, 0xb0, 0xd8, 0xb2, 0x16, 0x99, 0x17, 0x35, 0x02, 0x16, 0x55, 0x58, 0xdd, 0x82, - /* (2^257)P */ 0x36, 0x95, 0xe8, 0xf4, 0x36, 0x42, 0xbb, 0xc5, 0x3e, 0xfa, 0x30, 0x84, 0x9e, 0x59, 0xfd, 0xd2, 0x95, 0x42, 0xf8, 0x64, 0xd9, 0xb9, 0x0e, 0x9f, 0xfa, 0xd0, 0x7b, 0x20, 0x31, 0x77, 0x48, 0x29, 0x4d, 0xd0, 0x32, 0x57, 0x56, 0x30, 0xa6, 0x17, 0x53, 0x04, 0xbf, 0x08, 0x28, 0xec, 0xb8, 0x46, 0xc1, 0x03, 0x89, 0xdc, 0xed, 0xa0, 0x35, 0x53, - /* (2^258)P */ 0xc5, 0x7f, 0x9e, 0xd8, 0xc5, 0xba, 0x5f, 0x68, 0xc8, 0x23, 0x75, 0xea, 0x0d, 0xd9, 0x5a, 0xfd, 0x61, 0x1a, 0xa3, 0x2e, 0x45, 0x63, 0x14, 0x55, 0x86, 0x21, 0x29, 0xbe, 0xef, 0x5e, 0x50, 0xe5, 0x18, 0x59, 0xe7, 0xe3, 0xce, 0x4d, 0x8c, 0x15, 0x8f, 0x89, 0x66, 0x44, 0x52, 0x3d, 0xfa, 0xc7, 0x9a, 0x59, 0x90, 0x8e, 0xc0, 0x06, 0x3f, 0xc9, - /* (2^259)P */ 0x8e, 0x04, 0xd9, 0x16, 0x50, 0x1d, 0x8c, 0x9f, 0xd5, 0xe3, 0xce, 0xfd, 0x47, 0x04, 0x27, 0x4d, 0xc2, 0xfa, 0x71, 0xd9, 0x0b, 0xb8, 0x65, 0xf4, 0x11, 0xf3, 0x08, 0xee, 0x81, 0xc8, 0x67, 0x99, 0x0b, 0x8d, 0x77, 0xa3, 0x4f, 0xb5, 0x9b, 0xdb, 0x26, 0xf1, 0x97, 0xeb, 0x04, 0x54, 0xeb, 0x80, 0x08, 0x1d, 0x1d, 0xf6, 0x3d, 0x1f, 0x5a, 0xb8, - /* (2^260)P */ 0xb7, 0x9c, 0x9d, 0xee, 0xb9, 0x5c, 0xad, 0x0d, 0x9e, 0xfd, 0x60, 0x3c, 0x27, 0x4e, 0xa2, 0x95, 0xfb, 0x64, 0x7e, 0x79, 0x64, 0x87, 0x10, 0xb4, 0x73, 0xe0, 0x9d, 0x46, 0x4d, 0x3d, 0xee, 0x83, 0xe4, 0x16, 0x88, 0x97, 0xe6, 0x4d, 0xba, 0x70, 0xb6, 0x96, 0x7b, 0xff, 0x4b, 0xc8, 0xcf, 0x72, 0x83, 0x3e, 0x5b, 0x24, 0x2e, 0x57, 0xf1, 0x82, - /* (2^261)P */ 0x30, 0x71, 0x40, 0x51, 0x4f, 0x44, 0xbb, 0xc7, 0xf0, 0x54, 0x6e, 0x9d, 0xeb, 0x15, 0xad, 0xf8, 0x61, 0x43, 0x5a, 0xef, 0xc0, 0xb1, 0x57, 0xae, 0x03, 0x40, 0xe8, 0x68, 0x6f, 0x03, 0x20, 0x4f, 0x8a, 0x51, 0x2a, 0x9e, 0xd2, 0x45, 0xaf, 0xb4, 0xf5, 0xd4, 0x95, 0x7f, 0x3d, 0x3d, 0xb7, 0xb6, 0x28, 0xc5, 0x08, 0x8b, 0x44, 0xd6, 0x3f, 0xe7, - /* (2^262)P */ 0xa9, 0x52, 0x04, 0x67, 0xcb, 0x20, 0x63, 0xf8, 0x18, 0x01, 0x44, 0x21, 0x6a, 0x8a, 0x83, 0x48, 0xd4, 0xaf, 0x23, 0x0f, 0x35, 0x8d, 0xe5, 0x5a, 0xc4, 0x7c, 0x55, 0x46, 0x19, 0x5f, 0x35, 0xe0, 0x5d, 0x97, 0x4c, 0x2d, 0x04, 0xed, 0x59, 0xd4, 0xb0, 0xb2, 0xc6, 0xe3, 0x51, 0xe1, 0x38, 0xc6, 0x30, 0x49, 0x8f, 0xae, 0x61, 0x64, 0xce, 0xa8, - /* (2^263)P */ 0x9b, 0x64, 0x83, 0x3c, 0xd3, 0xdf, 0xb9, 0x27, 0xe7, 0x5b, 0x7f, 0xeb, 0xf3, 0x26, 0xcf, 0xb1, 0x8f, 0xaf, 0x26, 0xc8, 0x48, 0xce, 0xa1, 0xac, 0x7d, 0x10, 0x34, 0x28, 0xe1, 0x1f, 0x69, 0x03, 0x64, 0x77, 0x61, 0xdd, 0x4a, 0x9b, 0x18, 0x47, 0xf8, 0xca, 0x63, 0xc9, 0x03, 0x2d, 0x20, 0x2a, 0x69, 0x6e, 0x42, 0xd0, 0xe7, 0xaa, 0xb5, 0xf3, - /* (2^264)P */ 0xea, 0x31, 0x0c, 0x57, 0x0f, 0x3e, 0xe3, 0x35, 0xd8, 0x30, 0xa5, 0x6f, 0xdd, 0x95, 0x43, 0xc6, 0x66, 0x07, 0x4f, 0x34, 0xc3, 0x7e, 0x04, 0x10, 0x2d, 0xc4, 0x1c, 0x94, 0x52, 0x2e, 0x5b, 0x9a, 0x65, 0x2f, 0x91, 0xaa, 0x4f, 0x3c, 0xdc, 0x23, 0x18, 0xe1, 0x4f, 0x85, 0xcd, 0xf4, 0x8c, 0x51, 0xf7, 0xab, 0x4f, 0xdc, 0x15, 0x5c, 0x9e, 0xc5, - /* (2^265)P */ 0x54, 0x57, 0x23, 0x17, 0xe7, 0x82, 0x2f, 0x04, 0x7d, 0xfe, 0xe7, 0x1f, 0xa2, 0x57, 0x79, 0xe9, 0x58, 0x9b, 0xbe, 0xc6, 0x16, 0x4a, 0x17, 0x50, 0x90, 0x4a, 0x34, 0x70, 0x87, 0x37, 0x01, 0x26, 0xd8, 0xa3, 0x5f, 0x07, 0x7c, 0xd0, 0x7d, 0x05, 0x8a, 0x93, 0x51, 0x2f, 0x99, 0xea, 0xcf, 0x00, 0xd8, 0xc7, 0xe6, 0x9b, 0x8c, 0x62, 0x45, 0x87, - /* (2^266)P */ 0xc3, 0xfd, 0x29, 0x66, 0xe7, 0x30, 0x29, 0x77, 0xe0, 0x0d, 0x63, 0x5b, 0xe6, 0x90, 0x1a, 0x1e, 0x99, 0xc2, 0xa7, 0xab, 0xff, 0xa7, 0xbd, 0x79, 0x01, 0x97, 0xfd, 0x27, 0x1b, 0x43, 0x2b, 0xe6, 0xfe, 0x5e, 0xf1, 0xb9, 0x35, 0x38, 0x08, 0x25, 0x55, 0x90, 0x68, 0x2e, 0xc3, 0x67, 0x39, 0x9f, 0x2b, 0x2c, 0x70, 0x48, 0x8c, 0x47, 0xee, 0x56, - /* (2^267)P */ 0xf7, 0x32, 0x70, 0xb5, 0xe6, 0x42, 0xfd, 0x0a, 0x39, 0x9b, 0x07, 0xfe, 0x0e, 0xf4, 0x47, 0xba, 0x6a, 0x3f, 0xf5, 0x2c, 0x15, 0xf3, 0x60, 0x3f, 0xb1, 0x83, 0x7b, 0x2e, 0x34, 0x58, 0x1a, 0x6e, 0x4a, 0x49, 0x05, 0x45, 0xca, 0xdb, 0x00, 0x01, 0x0c, 0x42, 0x5e, 0x60, 0x40, 0x5f, 0xd9, 0xc7, 0x3a, 0x9e, 0x1c, 0x8d, 0xab, 0x11, 0x55, 0x65, - /* (2^268)P */ 0x87, 0x40, 0xb7, 0x0d, 0xaa, 0x34, 0x89, 0x90, 0x75, 0x6d, 0xa2, 0xfe, 0x3b, 0x6d, 0x5c, 0x39, 0x98, 0x10, 0x9e, 0x15, 0xc5, 0x35, 0xa2, 0x27, 0x23, 0x0a, 0x2d, 0x60, 0xe2, 0xa8, 0x7f, 0x3e, 0x77, 0x8f, 0xcc, 0x44, 0xcc, 0x30, 0x28, 0xe2, 0xf0, 0x04, 0x8c, 0xee, 0xe4, 0x5f, 0x68, 0x8c, 0xdf, 0x70, 0xbf, 0x31, 0xee, 0x2a, 0xfc, 0xce, - /* (2^269)P */ 0x92, 0xf2, 0xa0, 0xd9, 0x58, 0x3b, 0x7c, 0x1a, 0x99, 0x46, 0x59, 0x54, 0x60, 0x06, 0x8d, 0x5e, 0xf0, 0x22, 0xa1, 0xed, 0x92, 0x8a, 0x4d, 0x76, 0x95, 0x05, 0x0b, 0xff, 0xfc, 0x9a, 0xd1, 0xcc, 0x05, 0xb9, 0x5e, 0x99, 0xe8, 0x2a, 0x76, 0x7b, 0xfd, 0xa6, 0xe2, 0xd1, 0x1a, 0xd6, 0x76, 0x9f, 0x2f, 0x0e, 0xd1, 0xa8, 0x77, 0x5a, 0x40, 0x5a, - /* (2^270)P */ 0xff, 0xf9, 0x3f, 0xa9, 0xa6, 0x6c, 0x6d, 0x03, 0x8b, 0xa7, 0x10, 0x5d, 0x3f, 0xec, 0x3e, 0x1c, 0x0b, 0x6b, 0xa2, 0x6a, 0x22, 0xa9, 0x28, 0xd0, 0x66, 0xc9, 0xc2, 0x3d, 0x47, 0x20, 0x7d, 0xa6, 0x1d, 0xd8, 0x25, 0xb5, 0xf2, 0xf9, 0x70, 0x19, 0x6b, 0xf8, 0x43, 0x36, 0xc5, 0x1f, 0xe4, 0x5a, 0x4c, 0x13, 0xe4, 0x6d, 0x08, 0x0b, 0x1d, 0xb1, - /* (2^271)P */ 0x3f, 0x20, 0x9b, 0xfb, 0xec, 0x7d, 0x31, 0xc5, 0xfc, 0x88, 0x0b, 0x30, 0xed, 0x36, 0xc0, 0x63, 0xb1, 0x7d, 0x10, 0xda, 0xb6, 0x2e, 0xad, 0xf3, 0xec, 0x94, 0xe7, 0xec, 0xb5, 0x9c, 0xfe, 0xf5, 0x35, 0xf0, 0xa2, 0x2d, 0x7f, 0xca, 0x6b, 0x67, 0x1a, 0xf6, 0xb3, 0xda, 0x09, 0x2a, 0xaa, 0xdf, 0xb1, 0xca, 0x9b, 0xfb, 0xeb, 0xb3, 0xcd, 0xc0, - /* (2^272)P */ 0xcd, 0x4d, 0x89, 0x00, 0xa4, 0x3b, 0x48, 0xf0, 0x76, 0x91, 0x35, 0xa5, 0xf8, 0xc9, 0xb6, 0x46, 0xbc, 0xf6, 0x9a, 0x45, 0x47, 0x17, 0x96, 0x80, 0x5b, 0x3a, 0x28, 0x33, 0xf9, 0x5a, 0xef, 0x43, 0x07, 0xfe, 0x3b, 0xf4, 0x8e, 0x19, 0xce, 0xd2, 0x94, 0x4b, 0x6d, 0x8e, 0x67, 0x20, 0xc7, 0x4f, 0x2f, 0x59, 0x8e, 0xe1, 0xa1, 0xa9, 0xf9, 0x0e, - /* (2^273)P */ 0xdc, 0x7b, 0xb5, 0x50, 0x2e, 0xe9, 0x7e, 0x8b, 0x78, 0xa1, 0x38, 0x96, 0x22, 0xc3, 0x61, 0x67, 0x6d, 0xc8, 0x58, 0xed, 0x41, 0x1d, 0x5d, 0x86, 0x98, 0x7f, 0x2f, 0x1b, 0x8d, 0x3e, 0xaa, 0xc1, 0xd2, 0x0a, 0xf3, 0xbf, 0x95, 0x04, 0xf3, 0x10, 0x3c, 0x2b, 0x7f, 0x90, 0x46, 0x04, 0xaa, 0x6a, 0xa9, 0x35, 0x76, 0xac, 0x49, 0xb5, 0x00, 0x45, - /* (2^274)P */ 0xb1, 0x93, 0x79, 0x84, 0x4a, 0x2a, 0x30, 0x78, 0x16, 0xaa, 0xc5, 0x74, 0x06, 0xce, 0xa5, 0xa7, 0x32, 0x86, 0xe0, 0xf9, 0x10, 0xd2, 0x58, 0x76, 0xfb, 0x66, 0x49, 0x76, 0x3a, 0x90, 0xba, 0xb5, 0xcc, 0x99, 0xcd, 0x09, 0xc1, 0x9a, 0x74, 0x23, 0xdf, 0x0c, 0xfe, 0x99, 0x52, 0x80, 0xa3, 0x7c, 0x1c, 0x71, 0x5f, 0x2c, 0x49, 0x57, 0xf4, 0xf9, - /* (2^275)P */ 0x6d, 0xbf, 0x52, 0xe6, 0x25, 0x98, 0xed, 0xcf, 0xe3, 0xbc, 0x08, 0xa2, 0x1a, 0x90, 0xae, 0xa0, 0xbf, 0x07, 0x15, 0xad, 0x0a, 0x9f, 0x3e, 0x47, 0x44, 0xc2, 0x10, 0x46, 0xa6, 0x7a, 0x9e, 0x2f, 0x57, 0xbc, 0xe2, 0xf0, 0x1d, 0xd6, 0x9a, 0x06, 0xed, 0xfc, 0x54, 0x95, 0x92, 0x15, 0xa2, 0xf7, 0x8d, 0x6b, 0xef, 0xb2, 0x05, 0xed, 0x5c, 0x63, - /* (2^276)P */ 0xbc, 0x0b, 0x27, 0x3a, 0x3a, 0xf8, 0xe1, 0x48, 0x02, 0x7e, 0x27, 0xe6, 0x81, 0x62, 0x07, 0x73, 0x74, 0xe5, 0x52, 0xd7, 0xf8, 0x26, 0xca, 0x93, 0x4d, 0x3e, 0x9b, 0x55, 0x09, 0x8e, 0xe3, 0xd7, 0xa6, 0xe3, 0xb6, 0x2a, 0xa9, 0xb3, 0xb0, 0xa0, 0x8c, 0x01, 0xbb, 0x07, 0x90, 0x78, 0x6d, 0x6d, 0xe9, 0xf0, 0x7a, 0x90, 0xbd, 0xdc, 0x0c, 0x36, - /* (2^277)P */ 0x7f, 0x20, 0x12, 0x0f, 0x40, 0x00, 0x53, 0xd8, 0x0c, 0x27, 0x47, 0x47, 0x22, 0x80, 0xfb, 0x62, 0xe4, 0xa7, 0xf7, 0xbd, 0x42, 0xa5, 0xc3, 0x2b, 0xb2, 0x7f, 0x50, 0xcc, 0xe2, 0xfb, 0xd5, 0xc0, 0x63, 0xdd, 0x24, 0x5f, 0x7c, 0x08, 0x91, 0xbf, 0x6e, 0x47, 0x44, 0xd4, 0x6a, 0xc0, 0xc3, 0x09, 0x39, 0x27, 0xdd, 0xc7, 0xca, 0x06, 0x29, 0x55, - /* (2^278)P */ 0x76, 0x28, 0x58, 0xb0, 0xd2, 0xf3, 0x0f, 0x04, 0xe9, 0xc9, 0xab, 0x66, 0x5b, 0x75, 0x51, 0xdc, 0xe5, 0x8f, 0xe8, 0x1f, 0xdb, 0x03, 0x0f, 0xb0, 0x7d, 0xf9, 0x20, 0x64, 0x89, 0xe9, 0xdc, 0xe6, 0x24, 0xc3, 0xd5, 0xd2, 0x41, 0xa6, 0xe4, 0xe3, 0xc4, 0x79, 0x7c, 0x0f, 0xa1, 0x61, 0x2f, 0xda, 0xa4, 0xc9, 0xfd, 0xad, 0x5c, 0x65, 0x6a, 0xf3, - /* (2^279)P */ 0xd5, 0xab, 0x72, 0x7a, 0x3b, 0x59, 0xea, 0xcf, 0xd5, 0x17, 0xd2, 0xb2, 0x5f, 0x2d, 0xab, 0xad, 0x9e, 0x88, 0x64, 0x55, 0x96, 0x6e, 0xf3, 0x44, 0xa9, 0x11, 0xf5, 0xf8, 0x3a, 0xf1, 0xcd, 0x79, 0x4c, 0x99, 0x6d, 0x23, 0x6a, 0xa0, 0xc2, 0x1a, 0x19, 0x45, 0xb5, 0xd8, 0x95, 0x2f, 0x49, 0xe9, 0x46, 0x39, 0x26, 0x60, 0x04, 0x15, 0x8b, 0xcc, - /* (2^280)P */ 0x66, 0x0c, 0xf0, 0x54, 0x41, 0x02, 0x91, 0xab, 0xe5, 0x85, 0x8a, 0x44, 0xa6, 0x34, 0x96, 0x32, 0xc0, 0xdf, 0x6c, 0x41, 0x39, 0xd4, 0xc6, 0xe1, 0xe3, 0x81, 0xb0, 0x4c, 0x34, 0x4f, 0xe5, 0xf4, 0x35, 0x46, 0x1f, 0xeb, 0x75, 0xfd, 0x43, 0x37, 0x50, 0x99, 0xab, 0xad, 0xb7, 0x8c, 0xa1, 0x57, 0xcb, 0xe6, 0xce, 0x16, 0x2e, 0x85, 0xcc, 0xf9, - /* (2^281)P */ 0x63, 0xd1, 0x3f, 0x9e, 0xa2, 0x17, 0x2e, 0x1d, 0x3e, 0xce, 0x48, 0x2d, 0xbb, 0x8f, 0x69, 0xc9, 0xa6, 0x3d, 0x4e, 0xfe, 0x09, 0x56, 0xb3, 0x02, 0x5f, 0x99, 0x97, 0x0c, 0x54, 0xda, 0x32, 0x97, 0x9b, 0xf4, 0x95, 0xf1, 0xad, 0xe3, 0x2b, 0x04, 0xa7, 0x9b, 0x3f, 0xbb, 0xe7, 0x87, 0x2e, 0x1f, 0x8b, 0x4b, 0x7a, 0xa4, 0x43, 0x0c, 0x0f, 0x35, - /* (2^282)P */ 0x05, 0xdc, 0xe0, 0x2c, 0xa1, 0xc1, 0xd0, 0xf1, 0x1f, 0x4e, 0xc0, 0x6c, 0x35, 0x7b, 0xca, 0x8f, 0x8b, 0x02, 0xb1, 0xf7, 0xd6, 0x2e, 0xe7, 0x93, 0x80, 0x85, 0x18, 0x88, 0x19, 0xb9, 0xb4, 0x4a, 0xbc, 0xeb, 0x5a, 0x78, 0x38, 0xed, 0xc6, 0x27, 0x2a, 0x74, 0x76, 0xf0, 0x1b, 0x79, 0x92, 0x2f, 0xd2, 0x81, 0x98, 0xdf, 0xa9, 0x50, 0x19, 0xeb, - /* (2^283)P */ 0xb5, 0xe7, 0xb4, 0x11, 0x3a, 0x81, 0xb6, 0xb4, 0xf8, 0xa2, 0xb3, 0x6c, 0xfc, 0x9d, 0xe0, 0xc0, 0xe0, 0x59, 0x7f, 0x05, 0x37, 0xef, 0x2c, 0xa9, 0x3a, 0x24, 0xac, 0x7b, 0x25, 0xa0, 0x55, 0xd2, 0x44, 0x82, 0x82, 0x6e, 0x64, 0xa3, 0x58, 0xc8, 0x67, 0xae, 0x26, 0xa7, 0x0f, 0x42, 0x63, 0xe1, 0x93, 0x01, 0x52, 0x19, 0xaf, 0x49, 0x3e, 0x33, - /* (2^284)P */ 0x05, 0x85, 0xe6, 0x66, 0xaf, 0x5f, 0xdf, 0xbf, 0x9d, 0x24, 0x62, 0x60, 0x90, 0xe2, 0x4c, 0x7d, 0x4e, 0xc3, 0x74, 0x5d, 0x4f, 0x53, 0xf3, 0x63, 0x13, 0xf4, 0x74, 0x28, 0x6b, 0x7d, 0x57, 0x0c, 0x9d, 0x84, 0xa7, 0x1a, 0xff, 0xa0, 0x79, 0xdf, 0xfc, 0x65, 0x98, 0x8e, 0x22, 0x0d, 0x62, 0x7e, 0xf2, 0x34, 0x60, 0x83, 0x05, 0x14, 0xb1, 0xc1, - /* (2^285)P */ 0x64, 0x22, 0xcc, 0xdf, 0x5c, 0xbc, 0x88, 0x68, 0x4c, 0xd9, 0xbc, 0x0e, 0xc9, 0x8b, 0xb4, 0x23, 0x52, 0xad, 0xb0, 0xb3, 0xf1, 0x17, 0xd8, 0x15, 0x04, 0x6b, 0x99, 0xf0, 0xc4, 0x7d, 0x48, 0x22, 0x4a, 0xf8, 0x6f, 0xaa, 0x88, 0x0d, 0xc5, 0x5e, 0xa9, 0x1c, 0x61, 0x3d, 0x95, 0xa9, 0x7b, 0x6a, 0x79, 0x33, 0x0a, 0x2b, 0x99, 0xe3, 0x4e, 0x48, - /* (2^286)P */ 0x6b, 0x9b, 0x6a, 0x2a, 0xf1, 0x60, 0x31, 0xb4, 0x73, 0xd1, 0x87, 0x45, 0x9c, 0x15, 0x58, 0x4b, 0x91, 0x6d, 0x94, 0x1c, 0x41, 0x11, 0x4a, 0x83, 0xec, 0xaf, 0x65, 0xbc, 0x34, 0xaa, 0x26, 0xe2, 0xaf, 0xed, 0x46, 0x05, 0x4e, 0xdb, 0xc6, 0x4e, 0x10, 0x28, 0x4e, 0x72, 0xe5, 0x31, 0xa3, 0x20, 0xd7, 0xb1, 0x96, 0x64, 0xf6, 0xce, 0x08, 0x08, - /* (2^287)P */ 0x16, 0xa9, 0x5c, 0x9f, 0x9a, 0xb4, 0xb8, 0xc8, 0x32, 0x78, 0xc0, 0x3a, 0xd9, 0x5f, 0x94, 0xac, 0x3a, 0x42, 0x1f, 0x43, 0xd6, 0x80, 0x47, 0x2c, 0xdc, 0x76, 0x27, 0xfa, 0x50, 0xe5, 0xa1, 0xe4, 0xc3, 0xcb, 0x61, 0x31, 0xe1, 0x2e, 0xde, 0x81, 0x3b, 0x77, 0x1c, 0x39, 0x3c, 0xdb, 0xda, 0x87, 0x4b, 0x84, 0x12, 0xeb, 0xdd, 0x54, 0xbf, 0xe7, - /* (2^288)P */ 0xbf, 0xcb, 0x73, 0x21, 0x3d, 0x7e, 0x13, 0x8c, 0xa6, 0x34, 0x21, 0x2b, 0xa5, 0xe4, 0x9f, 0x8e, 0x9c, 0x01, 0x9c, 0x43, 0xd9, 0xc7, 0xb9, 0xf1, 0xbe, 0x7f, 0x45, 0x51, 0x97, 0xa1, 0x8e, 0x01, 0xf8, 0xbd, 0xd2, 0xbf, 0x81, 0x3a, 0x8b, 0xab, 0xe4, 0x89, 0xb7, 0xbd, 0xf2, 0xcd, 0xa9, 0x8a, 0x8a, 0xde, 0xfb, 0x8a, 0x55, 0x12, 0x7b, 0x17, - /* (2^289)P */ 0x1b, 0x95, 0x58, 0x4d, 0xe6, 0x51, 0x31, 0x52, 0x1c, 0xd8, 0x15, 0x84, 0xb1, 0x0d, 0x36, 0x25, 0x88, 0x91, 0x46, 0x71, 0x42, 0x56, 0xe2, 0x90, 0x08, 0x9e, 0x77, 0x1b, 0xee, 0x22, 0x3f, 0xec, 0xee, 0x8c, 0x7b, 0x2e, 0x79, 0xc4, 0x6c, 0x07, 0xa1, 0x7e, 0x52, 0xf5, 0x26, 0x5c, 0x84, 0x2a, 0x50, 0x6e, 0x82, 0xb3, 0x76, 0xda, 0x35, 0x16, - /* (2^290)P */ 0x0a, 0x6f, 0x99, 0x87, 0xc0, 0x7d, 0x8a, 0xb2, 0xca, 0xae, 0xe8, 0x65, 0x98, 0x0f, 0xb3, 0x44, 0xe1, 0xdc, 0x52, 0x79, 0x75, 0xec, 0x8f, 0x95, 0x87, 0x45, 0xd1, 0x32, 0x18, 0x55, 0x15, 0xce, 0x64, 0x9b, 0x08, 0x4f, 0x2c, 0xea, 0xba, 0x1c, 0x57, 0x06, 0x63, 0xc8, 0xb1, 0xfd, 0xc5, 0x67, 0xe7, 0x1f, 0x87, 0x9e, 0xde, 0x72, 0x7d, 0xec, - /* (2^291)P */ 0x36, 0x8b, 0x4d, 0x2c, 0xc2, 0x46, 0xe8, 0x96, 0xac, 0x0b, 0x8c, 0xc5, 0x09, 0x10, 0xfc, 0xf2, 0xda, 0xea, 0x22, 0xb2, 0xd3, 0x89, 0xeb, 0xb2, 0x85, 0x0f, 0xff, 0x59, 0x50, 0x2c, 0x99, 0x5a, 0x1f, 0xec, 0x2a, 0x6f, 0xec, 0xcf, 0xe9, 0xce, 0x12, 0x6b, 0x19, 0xd8, 0xde, 0x9b, 0xce, 0x0e, 0x6a, 0xaa, 0xe1, 0x32, 0xea, 0x4c, 0xfe, 0x92, - /* (2^292)P */ 0x5f, 0x17, 0x70, 0x53, 0x26, 0x03, 0x0b, 0xab, 0xd1, 0xc1, 0x42, 0x0b, 0xab, 0x2b, 0x3d, 0x31, 0xa4, 0xd5, 0x2b, 0x5e, 0x00, 0xd5, 0x9a, 0x22, 0x34, 0xe0, 0x53, 0x3f, 0x59, 0x7f, 0x2c, 0x6d, 0x72, 0x9a, 0xa4, 0xbe, 0x3d, 0x42, 0x05, 0x1b, 0xf2, 0x7f, 0x88, 0x56, 0xd1, 0x7c, 0x7d, 0x6b, 0x9f, 0x43, 0xfe, 0x65, 0x19, 0xae, 0x9c, 0x4c, - /* (2^293)P */ 0xf3, 0x7c, 0x20, 0xa9, 0xfc, 0xf2, 0xf2, 0x3b, 0x3c, 0x57, 0x41, 0x94, 0xe5, 0xcc, 0x6a, 0x37, 0x5d, 0x09, 0xf2, 0xab, 0xc2, 0xca, 0x60, 0x38, 0x6b, 0x7a, 0xe1, 0x78, 0x2b, 0xc1, 0x1d, 0xe8, 0xfd, 0xbc, 0x3d, 0x5c, 0xa2, 0xdb, 0x49, 0x20, 0x79, 0xe6, 0x1b, 0x9b, 0x65, 0xd9, 0x6d, 0xec, 0x57, 0x1d, 0xd2, 0xe9, 0x90, 0xeb, 0x43, 0x7b, - /* (2^294)P */ 0x2a, 0x8b, 0x2e, 0x19, 0x18, 0x10, 0xb8, 0x83, 0xe7, 0x7d, 0x2d, 0x9a, 0x3a, 0xe5, 0xd1, 0xe4, 0x7c, 0x38, 0xe5, 0x59, 0x2a, 0x6e, 0xd9, 0x01, 0x29, 0x3d, 0x23, 0xf7, 0x52, 0xba, 0x61, 0x04, 0x9a, 0xde, 0xc4, 0x31, 0x50, 0xeb, 0x1b, 0xaa, 0xde, 0x39, 0x58, 0xd8, 0x1b, 0x1e, 0xfc, 0x57, 0x9a, 0x28, 0x43, 0x9e, 0x97, 0x5e, 0xaa, 0xa3, - /* (2^295)P */ 0x97, 0x0a, 0x74, 0xc4, 0x39, 0x99, 0x6b, 0x40, 0xc7, 0x3e, 0x8c, 0xa7, 0xb1, 0x4e, 0x9a, 0x59, 0x6e, 0x1c, 0xfe, 0xfc, 0x2a, 0x5e, 0x73, 0x2b, 0x8c, 0xa9, 0x71, 0xf5, 0xda, 0x6b, 0x15, 0xab, 0xf7, 0xbe, 0x2a, 0x44, 0x5f, 0xba, 0xae, 0x67, 0x93, 0xc5, 0x86, 0xc1, 0xb8, 0xdf, 0xdc, 0xcb, 0xd7, 0xff, 0xb1, 0x71, 0x7c, 0x6f, 0x88, 0xf8, - /* (2^296)P */ 0x3f, 0x89, 0xb1, 0xbf, 0x24, 0x16, 0xac, 0x56, 0xfe, 0xdf, 0x94, 0x71, 0xbf, 0xd6, 0x57, 0x0c, 0xb4, 0x77, 0x37, 0xaa, 0x2a, 0x70, 0x76, 0x49, 0xaf, 0x0c, 0x97, 0x8e, 0x78, 0x2a, 0x67, 0xc9, 0x3b, 0x3d, 0x5b, 0x01, 0x2f, 0xda, 0xd5, 0xa8, 0xde, 0x02, 0xa9, 0xac, 0x76, 0x00, 0x0b, 0x46, 0xc6, 0x2d, 0xdc, 0x08, 0xf4, 0x10, 0x2c, 0xbe, - /* (2^297)P */ 0xcb, 0x07, 0xf9, 0x91, 0xc6, 0xd5, 0x3e, 0x54, 0x63, 0xae, 0xfc, 0x10, 0xbe, 0x3a, 0x20, 0x73, 0x4e, 0x65, 0x0e, 0x2d, 0x86, 0x77, 0x83, 0x9d, 0xe2, 0x0a, 0xe9, 0xac, 0x22, 0x52, 0x76, 0xd4, 0x6e, 0xfa, 0xe0, 0x09, 0xef, 0x78, 0x82, 0x9f, 0x26, 0xf9, 0x06, 0xb5, 0xe7, 0x05, 0x0e, 0xf2, 0x46, 0x72, 0x93, 0xd3, 0x24, 0xbd, 0x87, 0x60, - /* (2^298)P */ 0x14, 0x55, 0x84, 0x7b, 0x6c, 0x60, 0x80, 0x73, 0x8c, 0xbe, 0x2d, 0xd6, 0x69, 0xd6, 0x17, 0x26, 0x44, 0x9f, 0x88, 0xa2, 0x39, 0x7c, 0x89, 0xbc, 0x6d, 0x9e, 0x46, 0xb6, 0x68, 0x66, 0xea, 0xdc, 0x31, 0xd6, 0x21, 0x51, 0x9f, 0x28, 0x28, 0xaf, 0x9e, 0x47, 0x2c, 0x4c, 0x8f, 0xf3, 0xaf, 0x1f, 0xe4, 0xab, 0xac, 0xe9, 0x0c, 0x91, 0x3a, 0x61, - /* (2^299)P */ 0xb0, 0x37, 0x55, 0x4b, 0xe9, 0xc3, 0xb1, 0xce, 0x42, 0xe6, 0xc5, 0x11, 0x7f, 0x2c, 0x11, 0xfc, 0x4e, 0x71, 0x17, 0x00, 0x74, 0x7f, 0xbf, 0x07, 0x4d, 0xfd, 0x40, 0xb2, 0x87, 0xb0, 0xef, 0x1f, 0x35, 0x2c, 0x2d, 0xd7, 0xe1, 0xe4, 0xad, 0x0e, 0x7f, 0x63, 0x66, 0x62, 0x23, 0x41, 0xf6, 0xc1, 0x14, 0xa6, 0xd7, 0xa9, 0x11, 0x56, 0x9d, 0x1b, - /* (2^300)P */ 0x02, 0x82, 0x42, 0x18, 0x4f, 0x1b, 0xc9, 0x5d, 0x78, 0x5f, 0xee, 0xed, 0x01, 0x49, 0x8f, 0xf2, 0xa0, 0xe2, 0x6e, 0xbb, 0x6b, 0x04, 0x8d, 0xb2, 0x41, 0xae, 0xc8, 0x1b, 0x59, 0x34, 0xb8, 0x2a, 0xdb, 0x1f, 0xd2, 0x52, 0xdf, 0x3f, 0x35, 0x00, 0x8b, 0x61, 0xbc, 0x97, 0xa0, 0xc4, 0x77, 0xd1, 0xe4, 0x2c, 0x59, 0x68, 0xff, 0x30, 0xf2, 0xe2, - /* (2^301)P */ 0x79, 0x08, 0xb1, 0xdb, 0x55, 0xae, 0xd0, 0xed, 0xda, 0xa0, 0xec, 0x6c, 0xae, 0x68, 0xf2, 0x0b, 0x61, 0xb3, 0xf5, 0x21, 0x69, 0x87, 0x0b, 0x03, 0xea, 0x8a, 0x15, 0xd9, 0x7e, 0xca, 0xf7, 0xcd, 0xf3, 0x33, 0xb3, 0x4c, 0x5b, 0x23, 0x4e, 0x6f, 0x90, 0xad, 0x91, 0x4b, 0x4f, 0x46, 0x37, 0xe5, 0xe8, 0xb7, 0xeb, 0xd5, 0xca, 0x34, 0x4e, 0x23, - /* (2^302)P */ 0x09, 0x02, 0xdd, 0xfd, 0x70, 0xac, 0x56, 0x80, 0x36, 0x5e, 0x49, 0xd0, 0x3f, 0xc2, 0xe0, 0xba, 0x46, 0x7f, 0x5c, 0xf7, 0xc5, 0xbd, 0xd5, 0x55, 0x7d, 0x3f, 0xd5, 0x7d, 0x06, 0xdf, 0x27, 0x20, 0x4f, 0xe9, 0x30, 0xec, 0x1b, 0xa0, 0x0c, 0xd4, 0x2c, 0xe1, 0x2b, 0x65, 0x73, 0xea, 0x75, 0x35, 0xe8, 0xe6, 0x56, 0xd6, 0x07, 0x15, 0x99, 0xdf, - /* (2^303)P */ 0x4e, 0x10, 0xb7, 0xd0, 0x63, 0x8c, 0xcf, 0x16, 0x00, 0x7c, 0x58, 0xdf, 0x86, 0xdc, 0x4e, 0xca, 0x9c, 0x40, 0x5a, 0x42, 0xfd, 0xec, 0x98, 0xa4, 0x42, 0x53, 0xae, 0x16, 0x9d, 0xfd, 0x75, 0x5a, 0x12, 0x56, 0x1e, 0xc6, 0x57, 0xcc, 0x79, 0x27, 0x96, 0x00, 0xcf, 0x80, 0x4f, 0x8a, 0x36, 0x5c, 0xbb, 0xe9, 0x12, 0xdb, 0xb6, 0x2b, 0xad, 0x96, - /* (2^304)P */ 0x92, 0x32, 0x1f, 0xfd, 0xc6, 0x02, 0x94, 0x08, 0x1b, 0x60, 0x6a, 0x9f, 0x8b, 0xd6, 0xc8, 0xad, 0xd5, 0x1b, 0x27, 0x4e, 0xa4, 0x4d, 0x4a, 0x00, 0x10, 0x5f, 0x86, 0x11, 0xf5, 0xe3, 0x14, 0x32, 0x43, 0xee, 0xb9, 0xc7, 0xab, 0xf4, 0x6f, 0xe5, 0x66, 0x0c, 0x06, 0x0d, 0x96, 0x79, 0x28, 0xaf, 0x45, 0x2b, 0x56, 0xbe, 0xe4, 0x4a, 0x52, 0xd6, - /* (2^305)P */ 0x15, 0x16, 0x69, 0xef, 0x60, 0xca, 0x82, 0x25, 0x0f, 0xc6, 0x30, 0xa0, 0x0a, 0xd1, 0x83, 0x29, 0xcd, 0xb6, 0x89, 0x6c, 0xf5, 0xb2, 0x08, 0x38, 0xe6, 0xca, 0x6b, 0x19, 0x93, 0xc6, 0x5f, 0x75, 0x8e, 0x60, 0x34, 0x23, 0xc4, 0x13, 0x17, 0x69, 0x55, 0xcc, 0x72, 0x9c, 0x2b, 0x6c, 0x80, 0xf4, 0x4b, 0x8b, 0xb6, 0x97, 0x65, 0x07, 0xb6, 0xfb, - /* (2^306)P */ 0x01, 0x99, 0x74, 0x28, 0xa6, 0x67, 0xa3, 0xe5, 0x25, 0xfb, 0xdf, 0x82, 0x93, 0xe7, 0x35, 0x74, 0xce, 0xe3, 0x15, 0x1c, 0x1d, 0x79, 0x52, 0x84, 0x08, 0x04, 0x2f, 0x5c, 0xb8, 0xcd, 0x7f, 0x89, 0xb0, 0x39, 0x93, 0x63, 0xc9, 0x5d, 0x06, 0x01, 0x59, 0xf7, 0x7e, 0xf1, 0x4c, 0x3d, 0x12, 0x8d, 0x69, 0x1d, 0xb7, 0x21, 0x5e, 0x88, 0x82, 0xa2, - /* (2^307)P */ 0x8e, 0x69, 0xaf, 0x9a, 0x41, 0x0d, 0x9d, 0xcf, 0x8e, 0x8d, 0x5c, 0x51, 0x6e, 0xde, 0x0e, 0x48, 0x23, 0x89, 0xe5, 0x37, 0x80, 0xd6, 0x9d, 0x72, 0x32, 0x26, 0x38, 0x2d, 0x63, 0xa0, 0xfa, 0xd3, 0x40, 0xc0, 0x8c, 0x68, 0x6f, 0x2b, 0x1e, 0x9a, 0x39, 0x51, 0x78, 0x74, 0x9a, 0x7b, 0x4a, 0x8f, 0x0c, 0xa0, 0x88, 0x60, 0xa5, 0x21, 0xcd, 0xc7, - /* (2^308)P */ 0x3a, 0x7f, 0x73, 0x14, 0xbf, 0x89, 0x6a, 0x4c, 0x09, 0x5d, 0xf2, 0x93, 0x20, 0x2d, 0xc4, 0x29, 0x86, 0x06, 0x95, 0xab, 0x22, 0x76, 0x4c, 0x54, 0xe1, 0x7e, 0x80, 0x6d, 0xab, 0x29, 0x61, 0x87, 0x77, 0xf6, 0xc0, 0x3e, 0xda, 0xab, 0x65, 0x7e, 0x39, 0x12, 0xa1, 0x6b, 0x42, 0xf7, 0xc5, 0x97, 0x77, 0xec, 0x6f, 0x22, 0xbe, 0x44, 0xc7, 0x03, - /* (2^309)P */ 0xa5, 0x23, 0x90, 0x41, 0xa3, 0xc5, 0x3e, 0xe0, 0xa5, 0x32, 0x49, 0x1f, 0x39, 0x78, 0xb1, 0xd8, 0x24, 0xea, 0xd4, 0x87, 0x53, 0x42, 0x51, 0xf4, 0xd9, 0x46, 0x25, 0x2f, 0x62, 0xa9, 0x90, 0x9a, 0x4a, 0x25, 0x8a, 0xd2, 0x10, 0xe7, 0x3c, 0xbc, 0x58, 0x8d, 0x16, 0x14, 0x96, 0xa4, 0x6f, 0xf8, 0x12, 0x69, 0x91, 0x73, 0xe2, 0xfa, 0xf4, 0x57, - /* (2^310)P */ 0x51, 0x45, 0x3f, 0x96, 0xdc, 0x97, 0x38, 0xa6, 0x01, 0x63, 0x09, 0xea, 0xc2, 0x13, 0x30, 0xb0, 0x00, 0xb8, 0x0a, 0xce, 0xd1, 0x8f, 0x3e, 0x69, 0x62, 0x46, 0x33, 0x9c, 0xbf, 0x4b, 0xcb, 0x0c, 0x90, 0x1c, 0x45, 0xcf, 0x37, 0x5b, 0xf7, 0x4b, 0x5e, 0x95, 0xc3, 0x28, 0x9f, 0x08, 0x83, 0x53, 0x74, 0xab, 0x0c, 0xb4, 0xc0, 0xa1, 0xbc, 0x89, - /* (2^311)P */ 0x06, 0xb1, 0x51, 0x15, 0x65, 0x60, 0x21, 0x17, 0x7a, 0x20, 0x65, 0xee, 0x12, 0x35, 0x4d, 0x46, 0xf4, 0xf8, 0xd0, 0xb1, 0xca, 0x09, 0x30, 0x08, 0x89, 0x23, 0x3b, 0xe7, 0xab, 0x8b, 0x77, 0xa6, 0xad, 0x25, 0xdd, 0xea, 0x3c, 0x7d, 0xa5, 0x24, 0xb3, 0xe8, 0xfa, 0xfb, 0xc9, 0xf2, 0x71, 0xe9, 0xfa, 0xf2, 0xdc, 0x54, 0xdd, 0x55, 0x2e, 0x2f, - /* (2^312)P */ 0x7f, 0x96, 0x96, 0xfb, 0x52, 0x86, 0xcf, 0xea, 0x62, 0x18, 0xf1, 0x53, 0x1f, 0x61, 0x2a, 0x9f, 0x8c, 0x51, 0xca, 0x2c, 0xde, 0x6d, 0xce, 0xab, 0x58, 0x32, 0x0b, 0x33, 0x9b, 0x99, 0xb4, 0x5c, 0x88, 0x2a, 0x76, 0xcc, 0x3e, 0x54, 0x1e, 0x9d, 0xa2, 0x89, 0xe4, 0x19, 0xba, 0x80, 0xc8, 0x39, 0x32, 0x7f, 0x0f, 0xc7, 0x84, 0xbb, 0x43, 0x56, - /* (2^313)P */ 0x9b, 0x07, 0xb4, 0x42, 0xa9, 0xa0, 0x78, 0x4f, 0x28, 0x70, 0x2b, 0x7e, 0x61, 0xe0, 0xdd, 0x02, 0x98, 0xfc, 0xed, 0x31, 0x80, 0xf1, 0x15, 0x52, 0x89, 0x23, 0xcd, 0x5d, 0x2b, 0xc5, 0x19, 0x32, 0xfb, 0x70, 0x50, 0x7a, 0x97, 0x6b, 0x42, 0xdb, 0xca, 0xdb, 0xc4, 0x59, 0x99, 0xe0, 0x12, 0x1f, 0x17, 0xba, 0x8b, 0xf0, 0xc4, 0x38, 0x5d, 0x27, - /* (2^314)P */ 0x29, 0x1d, 0xdc, 0x2b, 0xf6, 0x5b, 0x04, 0x61, 0x36, 0x76, 0xa0, 0x56, 0x36, 0x6e, 0xd7, 0x24, 0x4d, 0xe7, 0xef, 0x44, 0xd2, 0xd5, 0x07, 0xcd, 0xc4, 0x9d, 0x80, 0x48, 0xc3, 0x38, 0xcf, 0xd8, 0xa3, 0xdd, 0xb2, 0x5e, 0xb5, 0x70, 0x15, 0xbb, 0x36, 0x85, 0x8a, 0xd7, 0xfb, 0x56, 0x94, 0x73, 0x9c, 0x81, 0xbe, 0xb1, 0x44, 0x28, 0xf1, 0x37, - /* (2^315)P */ 0xbf, 0xcf, 0x5c, 0xd2, 0xe2, 0xea, 0xc2, 0xcd, 0x70, 0x7a, 0x9d, 0xcb, 0x81, 0xc1, 0xe9, 0xf1, 0x56, 0x71, 0x52, 0xf7, 0x1b, 0x87, 0xc6, 0xd8, 0xcc, 0xb2, 0x69, 0xf3, 0xb0, 0xbd, 0xba, 0x83, 0x12, 0x26, 0xc4, 0xce, 0x72, 0xde, 0x3b, 0x21, 0x28, 0x9e, 0x5a, 0x94, 0xf5, 0x04, 0xa3, 0xc8, 0x0f, 0x5e, 0xbc, 0x71, 0xf9, 0x0d, 0xce, 0xf5, - /* (2^316)P */ 0x93, 0x97, 0x00, 0x85, 0xf4, 0xb4, 0x40, 0xec, 0xd9, 0x2b, 0x6c, 0xd6, 0x63, 0x9e, 0x93, 0x0a, 0x5a, 0xf4, 0xa7, 0x9a, 0xe3, 0x3c, 0xf0, 0x55, 0xd1, 0x96, 0x6c, 0xf5, 0x2a, 0xce, 0xd7, 0x95, 0x72, 0xbf, 0xc5, 0x0c, 0xce, 0x79, 0xa2, 0x0a, 0x78, 0xe0, 0x72, 0xd0, 0x66, 0x28, 0x05, 0x75, 0xd3, 0x23, 0x09, 0x91, 0xed, 0x7e, 0xc4, 0xbc, - /* (2^317)P */ 0x77, 0xc2, 0x9a, 0xf7, 0xa6, 0xe6, 0x18, 0xb4, 0xe7, 0xf6, 0xda, 0xec, 0x44, 0x6d, 0xfb, 0x08, 0xee, 0x65, 0xa8, 0x92, 0x85, 0x1f, 0xba, 0x38, 0x93, 0x20, 0x5c, 0x4d, 0xd2, 0x18, 0x0f, 0x24, 0xbe, 0x1a, 0x96, 0x44, 0x7d, 0xeb, 0xb3, 0xda, 0x95, 0xf4, 0xaf, 0x6c, 0x06, 0x0f, 0x47, 0x37, 0xc8, 0x77, 0x63, 0xe1, 0x29, 0xef, 0xff, 0xa5, - /* (2^318)P */ 0x16, 0x12, 0xd9, 0x47, 0x90, 0x22, 0x9b, 0x05, 0xf2, 0xa5, 0x9a, 0xae, 0x83, 0x98, 0xb5, 0xac, 0xab, 0x29, 0xaa, 0xdc, 0x5f, 0xde, 0xcd, 0xf7, 0x42, 0xad, 0x3b, 0x96, 0xd6, 0x3e, 0x6e, 0x52, 0x47, 0xb1, 0xab, 0x51, 0xde, 0x49, 0x7c, 0x87, 0x8d, 0x86, 0xe2, 0x70, 0x13, 0x21, 0x51, 0x1c, 0x0c, 0x25, 0xc1, 0xb0, 0xe6, 0x19, 0xcf, 0x12, - /* (2^319)P */ 0xf0, 0xbc, 0x97, 0x8f, 0x4b, 0x2f, 0xd1, 0x1f, 0x8c, 0x57, 0xed, 0x3c, 0xf4, 0x26, 0x19, 0xbb, 0x60, 0xca, 0x24, 0xc5, 0xd9, 0x97, 0xe2, 0x5f, 0x76, 0x49, 0x39, 0x7e, 0x2d, 0x12, 0x21, 0x98, 0xda, 0xe6, 0xdb, 0xd2, 0xd8, 0x9f, 0x18, 0xd8, 0x83, 0x6c, 0xba, 0x89, 0x8d, 0x29, 0xfa, 0x46, 0x33, 0x8c, 0x28, 0xdf, 0x6a, 0xb3, 0x69, 0x28, - /* (2^320)P */ 0x86, 0x17, 0xbc, 0xd6, 0x7c, 0xba, 0x1e, 0x83, 0xbb, 0x84, 0xb5, 0x8c, 0xad, 0xdf, 0xa1, 0x24, 0x81, 0x70, 0x40, 0x0f, 0xad, 0xad, 0x3b, 0x23, 0xd0, 0x93, 0xa0, 0x49, 0x5c, 0x4b, 0x51, 0xbe, 0x20, 0x49, 0x4e, 0xda, 0x2d, 0xd3, 0xad, 0x1b, 0x74, 0x08, 0x41, 0xf0, 0xef, 0x19, 0xe9, 0x45, 0x5d, 0x02, 0xae, 0x26, 0x25, 0xd9, 0xd1, 0xc2, - /* (2^321)P */ 0x48, 0x81, 0x3e, 0xb2, 0x83, 0xf8, 0x4d, 0xb3, 0xd0, 0x4c, 0x75, 0xb3, 0xa0, 0x52, 0x26, 0xf2, 0xaf, 0x5d, 0x36, 0x70, 0x72, 0xd6, 0xb7, 0x88, 0x08, 0x69, 0xbd, 0x15, 0x25, 0xb1, 0x45, 0x1b, 0xb7, 0x0b, 0x5f, 0x71, 0x5d, 0x83, 0x49, 0xb9, 0x84, 0x3b, 0x7c, 0xc1, 0x50, 0x93, 0x05, 0x53, 0xe0, 0x61, 0xea, 0xc1, 0xef, 0xdb, 0x82, 0x97, - /* (2^322)P */ 0x00, 0xd5, 0xc3, 0x3a, 0x4d, 0x8a, 0x23, 0x7a, 0xef, 0xff, 0x37, 0xef, 0xf3, 0xbc, 0xa9, 0xb6, 0xae, 0xd7, 0x3a, 0x7b, 0xfd, 0x3e, 0x8e, 0x9b, 0xab, 0x44, 0x54, 0x60, 0x28, 0x6c, 0xbf, 0x15, 0x24, 0x4a, 0x56, 0x60, 0x7f, 0xa9, 0x7a, 0x28, 0x59, 0x2c, 0x8a, 0xd1, 0x7d, 0x6b, 0x00, 0xfd, 0xa5, 0xad, 0xbc, 0x19, 0x3f, 0xcb, 0x73, 0xe0, - /* (2^323)P */ 0xcf, 0x9e, 0x66, 0x06, 0x4d, 0x2b, 0xf5, 0x9c, 0xc2, 0x9d, 0x9e, 0xed, 0x5a, 0x5c, 0x2d, 0x00, 0xbf, 0x29, 0x90, 0x88, 0xe4, 0x5d, 0xfd, 0xe2, 0xf0, 0x38, 0xec, 0x4d, 0x26, 0xea, 0x54, 0xf0, 0x3c, 0x84, 0x10, 0x6a, 0xf9, 0x66, 0x9c, 0xe7, 0x21, 0xfd, 0x0f, 0xc7, 0x13, 0x50, 0x81, 0xb6, 0x50, 0xf9, 0x04, 0x7f, 0xa4, 0x37, 0x85, 0x14, - /* (2^324)P */ 0xdb, 0x87, 0x49, 0xc7, 0xa8, 0x39, 0x0c, 0x32, 0x98, 0x0c, 0xb9, 0x1a, 0x1b, 0x4d, 0xe0, 0x8a, 0x9a, 0x8e, 0x8f, 0xab, 0x5a, 0x17, 0x3d, 0x04, 0x21, 0xce, 0x3e, 0x2c, 0xf9, 0xa3, 0x97, 0xe4, 0x77, 0x95, 0x0e, 0xb6, 0xa5, 0x15, 0xad, 0x3a, 0x1e, 0x46, 0x53, 0x17, 0x09, 0x83, 0x71, 0x4e, 0x86, 0x38, 0xd5, 0x23, 0x44, 0x16, 0x8d, 0xc8, - /* (2^325)P */ 0x05, 0x5e, 0x99, 0x08, 0xbb, 0xc3, 0xc0, 0xb7, 0x6c, 0x12, 0xf2, 0xf3, 0xf4, 0x7c, 0x6a, 0x4d, 0x9e, 0xeb, 0x3d, 0xb9, 0x63, 0x94, 0xce, 0x81, 0xd8, 0x11, 0xcb, 0x55, 0x69, 0x4a, 0x20, 0x0b, 0x4c, 0x2e, 0x14, 0xb8, 0xd4, 0x6a, 0x7c, 0xf0, 0xed, 0xfc, 0x8f, 0xef, 0xa0, 0xeb, 0x6c, 0x01, 0xe2, 0xdc, 0x10, 0x22, 0xa2, 0x01, 0x85, 0x64, - /* (2^326)P */ 0x58, 0xe1, 0x9c, 0x27, 0x55, 0xc6, 0x25, 0xa6, 0x7d, 0x67, 0x88, 0x65, 0x99, 0x6c, 0xcb, 0xdb, 0x27, 0x4f, 0x44, 0x29, 0xf5, 0x4a, 0x23, 0x10, 0xbc, 0x03, 0x3f, 0x36, 0x1e, 0xef, 0xb0, 0xba, 0x75, 0xe8, 0x74, 0x5f, 0x69, 0x3e, 0x26, 0x40, 0xb4, 0x2f, 0xdc, 0x43, 0xbf, 0xa1, 0x8b, 0xbd, 0xca, 0x6e, 0xc1, 0x6e, 0x21, 0x79, 0xa0, 0xd0, - /* (2^327)P */ 0x78, 0x93, 0x4a, 0x2d, 0x22, 0x6e, 0x6e, 0x7d, 0x74, 0xd2, 0x66, 0x58, 0xce, 0x7b, 0x1d, 0x97, 0xb1, 0xf2, 0xda, 0x1c, 0x79, 0xfb, 0xba, 0xd1, 0xc0, 0xc5, 0x6e, 0xc9, 0x11, 0x89, 0xd2, 0x41, 0x8d, 0x70, 0xb9, 0xcc, 0xea, 0x6a, 0xb3, 0x45, 0xb6, 0x05, 0x2e, 0xf2, 0x17, 0xf1, 0x27, 0xb8, 0xed, 0x06, 0x1f, 0xdb, 0x9d, 0x1f, 0x69, 0x28, - /* (2^328)P */ 0x93, 0x12, 0xa8, 0x11, 0xe1, 0x92, 0x30, 0x8d, 0xac, 0xe1, 0x1c, 0x60, 0x7c, 0xed, 0x2d, 0x2e, 0xd3, 0x03, 0x5c, 0x9c, 0xc5, 0xbd, 0x64, 0x4a, 0x8c, 0xba, 0x76, 0xfe, 0xc6, 0xc1, 0xea, 0xc2, 0x4f, 0xbe, 0x70, 0x3d, 0x64, 0xcf, 0x8e, 0x18, 0xcb, 0xcd, 0x57, 0xa7, 0xf7, 0x36, 0xa9, 0x6b, 0x3e, 0xb8, 0x69, 0xee, 0x47, 0xa2, 0x7e, 0xb2, - /* (2^329)P */ 0x96, 0xaf, 0x3a, 0xf5, 0xed, 0xcd, 0xaf, 0xf7, 0x82, 0xaf, 0x59, 0x62, 0x0b, 0x36, 0x85, 0xf9, 0xaf, 0xd6, 0x38, 0xff, 0x87, 0x2e, 0x1d, 0x6c, 0x8b, 0xaf, 0x3b, 0xdf, 0x28, 0xa2, 0xd6, 0x4d, 0x80, 0x92, 0xc3, 0x0f, 0x34, 0xa8, 0xae, 0x69, 0x5d, 0x7b, 0x9d, 0xbc, 0xf5, 0xfd, 0x1d, 0xb1, 0x96, 0x55, 0x86, 0xe1, 0x5c, 0xb6, 0xac, 0xb9, - /* (2^330)P */ 0x50, 0x9e, 0x37, 0x28, 0x7d, 0xa8, 0x33, 0x63, 0xda, 0x3f, 0x20, 0x98, 0x0e, 0x09, 0xa8, 0x77, 0x3b, 0x7a, 0xfc, 0x16, 0x85, 0x44, 0x64, 0x77, 0x65, 0x68, 0x92, 0x41, 0xc6, 0x1f, 0xdf, 0x27, 0xf9, 0xec, 0xa0, 0x61, 0x22, 0xea, 0x19, 0xe7, 0x75, 0x8b, 0x4e, 0xe5, 0x0f, 0xb7, 0xf7, 0xd2, 0x53, 0xf4, 0xdd, 0x4a, 0xaa, 0x78, 0x40, 0xb7, - /* (2^331)P */ 0xd4, 0x89, 0xe3, 0x79, 0xba, 0xb6, 0xc3, 0xda, 0xe6, 0x78, 0x65, 0x7d, 0x6e, 0x22, 0x62, 0xb1, 0x3d, 0xea, 0x90, 0x84, 0x30, 0x5e, 0xd4, 0x39, 0x84, 0x78, 0xd9, 0x75, 0xd6, 0xce, 0x2a, 0x11, 0x29, 0x69, 0xa4, 0x5e, 0xaa, 0x2a, 0x98, 0x5a, 0xe5, 0x91, 0x8f, 0xb2, 0xfb, 0xda, 0x97, 0xe8, 0x83, 0x6f, 0x04, 0xb9, 0x5d, 0xaf, 0xe1, 0x9b, - /* (2^332)P */ 0x8b, 0xe4, 0xe1, 0x48, 0x9c, 0xc4, 0x83, 0x89, 0xdf, 0x65, 0xd3, 0x35, 0x55, 0x13, 0xf4, 0x1f, 0x36, 0x92, 0x33, 0x38, 0xcb, 0xed, 0x15, 0xe6, 0x60, 0x2d, 0x25, 0xf5, 0x36, 0x60, 0x3a, 0x37, 0x9b, 0x71, 0x9d, 0x42, 0xb0, 0x14, 0xc8, 0xba, 0x62, 0xa3, 0x49, 0xb0, 0x88, 0xc1, 0x72, 0x73, 0xdd, 0x62, 0x40, 0xa9, 0x62, 0x88, 0x99, 0xca, - /* (2^333)P */ 0x47, 0x7b, 0xea, 0xda, 0x46, 0x2f, 0x45, 0xc6, 0xe3, 0xb4, 0x4d, 0x8d, 0xac, 0x0b, 0x54, 0x22, 0x06, 0x31, 0x16, 0x66, 0x3e, 0xe4, 0x38, 0x12, 0xcd, 0xf3, 0xe7, 0x99, 0x37, 0xd9, 0x62, 0x24, 0x4b, 0x05, 0xf2, 0x58, 0xe6, 0x29, 0x4b, 0x0d, 0xf6, 0xc1, 0xba, 0xa0, 0x1e, 0x0f, 0xcb, 0x1f, 0xc6, 0x2b, 0x19, 0xfc, 0x82, 0x01, 0xd0, 0x86, - /* (2^334)P */ 0xa2, 0xae, 0x77, 0x20, 0xfb, 0xa8, 0x18, 0xb4, 0x61, 0xef, 0xe8, 0x52, 0x79, 0xbb, 0x86, 0x90, 0x5d, 0x2e, 0x76, 0xed, 0x66, 0x60, 0x5d, 0x00, 0xb5, 0xa4, 0x00, 0x40, 0x89, 0xec, 0xd1, 0xd2, 0x0d, 0x26, 0xb9, 0x30, 0xb2, 0xd2, 0xb8, 0xe8, 0x0e, 0x56, 0xf9, 0x67, 0x94, 0x2e, 0x62, 0xe1, 0x79, 0x48, 0x2b, 0xa9, 0xfa, 0xea, 0xdb, 0x28, - /* (2^335)P */ 0x35, 0xf1, 0xb0, 0x43, 0xbd, 0x27, 0xef, 0x18, 0x44, 0xa2, 0x04, 0xb4, 0x69, 0xa1, 0x97, 0x1f, 0x8c, 0x04, 0x82, 0x9b, 0x00, 0x6d, 0xf8, 0xbf, 0x7d, 0xc1, 0x5b, 0xab, 0xe8, 0xb2, 0x34, 0xbd, 0xaf, 0x7f, 0xb2, 0x0d, 0xf3, 0xed, 0xfc, 0x5b, 0x50, 0xee, 0xe7, 0x4a, 0x20, 0xd9, 0xf5, 0xc6, 0x9a, 0x97, 0x6d, 0x07, 0x2f, 0xb9, 0x31, 0x02, - /* (2^336)P */ 0xf9, 0x54, 0x4a, 0xc5, 0x61, 0x7e, 0x1d, 0xa6, 0x0e, 0x1a, 0xa8, 0xd3, 0x8c, 0x36, 0x7d, 0xf1, 0x06, 0xb1, 0xac, 0x93, 0xcd, 0xe9, 0x8f, 0x61, 0x6c, 0x5d, 0x03, 0x23, 0xdf, 0x85, 0x53, 0x39, 0x63, 0x5e, 0xeb, 0xf3, 0xd3, 0xd3, 0x75, 0x97, 0x9b, 0x62, 0x9b, 0x01, 0xb3, 0x19, 0xd8, 0x2b, 0x36, 0xf2, 0x2c, 0x2c, 0x6f, 0x36, 0xc6, 0x3c, - /* (2^337)P */ 0x05, 0x74, 0x43, 0x10, 0xb6, 0xb0, 0xf8, 0xbf, 0x02, 0x46, 0x9a, 0xee, 0xc1, 0xaf, 0xc1, 0xe5, 0x5a, 0x2e, 0xbb, 0xe1, 0xdc, 0xc6, 0xce, 0x51, 0x29, 0x50, 0xbf, 0x1b, 0xde, 0xff, 0xba, 0x4d, 0x8d, 0x8b, 0x7e, 0xe7, 0xbd, 0x5b, 0x8f, 0xbe, 0xe3, 0x75, 0x71, 0xff, 0x37, 0x05, 0x5a, 0x10, 0xeb, 0x54, 0x7e, 0x44, 0x72, 0x2c, 0xd4, 0xfc, - /* (2^338)P */ 0x03, 0x12, 0x1c, 0xb2, 0x08, 0x90, 0xa1, 0x2d, 0x50, 0xa0, 0xad, 0x7f, 0x8d, 0xa6, 0x97, 0xc1, 0xbd, 0xdc, 0xc3, 0xa7, 0xad, 0x31, 0xdf, 0xb8, 0x03, 0x84, 0xc3, 0xb9, 0x29, 0x3d, 0x92, 0x2e, 0xc3, 0x90, 0x07, 0xe8, 0xa7, 0xc7, 0xbc, 0x61, 0xe9, 0x3e, 0xa0, 0x35, 0xda, 0x1d, 0xab, 0x48, 0xfe, 0x50, 0xc9, 0x25, 0x59, 0x23, 0x69, 0x3f, - /* (2^339)P */ 0x8e, 0x91, 0xab, 0x6b, 0x91, 0x4f, 0x89, 0x76, 0x67, 0xad, 0xb2, 0x65, 0x9d, 0xad, 0x02, 0x36, 0xdc, 0xac, 0x96, 0x93, 0x97, 0x21, 0x14, 0xd0, 0xe8, 0x11, 0x60, 0x1e, 0xeb, 0x96, 0x06, 0xf2, 0x53, 0xf2, 0x6d, 0xb7, 0x93, 0x6f, 0x26, 0x91, 0x23, 0xe3, 0x34, 0x04, 0x92, 0x91, 0x37, 0x08, 0x50, 0xd6, 0x28, 0x09, 0x27, 0xa1, 0x0c, 0x00, - /* (2^340)P */ 0x1f, 0xbb, 0x21, 0x26, 0x33, 0xcb, 0xa4, 0xd1, 0xee, 0x85, 0xf9, 0xd9, 0x3c, 0x90, 0xc3, 0xd1, 0x26, 0xa2, 0x25, 0x93, 0x43, 0x61, 0xed, 0x91, 0x6e, 0x54, 0x03, 0x2e, 0x42, 0x9d, 0xf7, 0xa6, 0x02, 0x0f, 0x2f, 0x9c, 0x7a, 0x8d, 0x12, 0xc2, 0x18, 0xfc, 0x41, 0xff, 0x85, 0x26, 0x1a, 0x44, 0x55, 0x0b, 0x89, 0xab, 0x6f, 0x62, 0x33, 0x8c, - /* (2^341)P */ 0xe0, 0x3c, 0x5d, 0x70, 0x64, 0x87, 0x81, 0x35, 0xf2, 0x37, 0xa6, 0x24, 0x3e, 0xe0, 0x62, 0xd5, 0x71, 0xe7, 0x93, 0xfb, 0xac, 0xc3, 0xe7, 0xc7, 0x04, 0xe2, 0x70, 0xd3, 0x29, 0x5b, 0x21, 0xbf, 0xf4, 0x26, 0x5d, 0xf3, 0x95, 0xb4, 0x2a, 0x6a, 0x07, 0x55, 0xa6, 0x4b, 0x3b, 0x15, 0xf2, 0x25, 0x8a, 0x95, 0x3f, 0x63, 0x2f, 0x7a, 0x23, 0x96, - /* (2^342)P */ 0x0d, 0x3d, 0xd9, 0x13, 0xa7, 0xb3, 0x5e, 0x67, 0xf7, 0x02, 0x23, 0xee, 0x84, 0xff, 0x99, 0xda, 0xb9, 0x53, 0xf8, 0xf0, 0x0e, 0x39, 0x2f, 0x3c, 0x64, 0x34, 0xe3, 0x09, 0xfd, 0x2b, 0x33, 0xc7, 0xfe, 0x62, 0x2b, 0x84, 0xdf, 0x2b, 0xd2, 0x7c, 0x26, 0x01, 0x70, 0x66, 0x5b, 0x85, 0xc2, 0xbe, 0x88, 0x37, 0xf1, 0x30, 0xac, 0xb8, 0x76, 0xa3, - /* (2^343)P */ 0x6e, 0x01, 0xf0, 0x55, 0x35, 0xe4, 0xbd, 0x43, 0x62, 0x9d, 0xd6, 0x11, 0xef, 0x6f, 0xb8, 0x8c, 0xaa, 0x98, 0x87, 0xc6, 0x6d, 0xc4, 0xcc, 0x74, 0x92, 0x53, 0x4a, 0xdf, 0xe4, 0x08, 0x89, 0x17, 0xd0, 0x0f, 0xf4, 0x00, 0x60, 0x78, 0x08, 0x44, 0xb5, 0xda, 0x18, 0xed, 0x98, 0xc8, 0x61, 0x3d, 0x39, 0xdb, 0xcf, 0x1d, 0x49, 0x40, 0x65, 0x75, - /* (2^344)P */ 0x8e, 0x10, 0xae, 0x5f, 0x06, 0xd2, 0x95, 0xfd, 0x20, 0x16, 0x49, 0x5b, 0x57, 0xbe, 0x22, 0x8b, 0x43, 0xfb, 0xe6, 0xcc, 0x26, 0xa5, 0x5d, 0xd3, 0x68, 0xc5, 0xf9, 0x5a, 0x86, 0x24, 0x87, 0x27, 0x05, 0xfd, 0xe2, 0xff, 0xb3, 0xa3, 0x7b, 0x37, 0x59, 0xc5, 0x4e, 0x14, 0x94, 0xf9, 0x3b, 0xcb, 0x7c, 0xed, 0xca, 0x1d, 0xb2, 0xac, 0x05, 0x4a, - /* (2^345)P */ 0xf4, 0xd1, 0x81, 0xeb, 0x89, 0xbf, 0xfe, 0x1e, 0x41, 0x92, 0x29, 0xee, 0xe1, 0x43, 0xf5, 0x86, 0x1d, 0x2f, 0xbb, 0x1e, 0x84, 0x5d, 0x7b, 0x8d, 0xd5, 0xda, 0xee, 0x1e, 0x8a, 0xd0, 0x27, 0xf2, 0x60, 0x51, 0x59, 0x82, 0xf4, 0x84, 0x2b, 0x5b, 0x14, 0x2d, 0x81, 0x82, 0x3e, 0x2b, 0xb4, 0x6d, 0x51, 0x4f, 0xc5, 0xcb, 0xbf, 0x74, 0xe3, 0xb4, - /* (2^346)P */ 0x19, 0x2f, 0x22, 0xb3, 0x04, 0x5f, 0x81, 0xca, 0x05, 0x60, 0xb9, 0xaa, 0xee, 0x0e, 0x2f, 0x48, 0x38, 0xf9, 0x91, 0xb4, 0x66, 0xe4, 0x57, 0x28, 0x54, 0x10, 0xe9, 0x61, 0x9d, 0xd4, 0x90, 0x75, 0xb1, 0x39, 0x23, 0xb6, 0xfc, 0x82, 0xe0, 0xfa, 0xbb, 0x5c, 0x6e, 0xc3, 0x44, 0x13, 0x00, 0x83, 0x55, 0x9e, 0x8e, 0x10, 0x61, 0x81, 0x91, 0x04, - /* (2^347)P */ 0x5f, 0x2a, 0xd7, 0x81, 0xd9, 0x9c, 0xbb, 0x79, 0xbc, 0x62, 0x56, 0x98, 0x03, 0x5a, 0x18, 0x85, 0x2a, 0x9c, 0xd0, 0xfb, 0xd2, 0xb1, 0xaf, 0xef, 0x0d, 0x24, 0xc5, 0xfa, 0x39, 0xbb, 0x6b, 0xed, 0xa4, 0xdf, 0xe4, 0x87, 0xcd, 0x41, 0xd3, 0x72, 0x32, 0xc6, 0x28, 0x21, 0xb1, 0xba, 0x8b, 0xa3, 0x91, 0x79, 0x76, 0x22, 0x25, 0x10, 0x61, 0xd1, - /* (2^348)P */ 0x73, 0xb5, 0x32, 0x97, 0xdd, 0xeb, 0xdd, 0x22, 0x22, 0xf1, 0x33, 0x3c, 0x77, 0x56, 0x7d, 0x6b, 0x48, 0x2b, 0x05, 0x81, 0x03, 0x03, 0x91, 0x9a, 0xe3, 0x5e, 0xd4, 0xee, 0x3f, 0xf8, 0xbb, 0x50, 0x21, 0x32, 0x4c, 0x4a, 0x58, 0x49, 0xde, 0x0c, 0xde, 0x30, 0x82, 0x3d, 0x92, 0xf0, 0x6c, 0xcc, 0x32, 0x3e, 0xd2, 0x78, 0x8a, 0x6e, 0x2c, 0xd0, - /* (2^349)P */ 0xf0, 0xf7, 0xa1, 0x0b, 0xc1, 0x74, 0x85, 0xa8, 0xe9, 0xdd, 0x48, 0xa1, 0xc0, 0x16, 0xd8, 0x2b, 0x61, 0x08, 0xc2, 0x2b, 0x30, 0x26, 0x79, 0xce, 0x9e, 0xfd, 0x39, 0xd7, 0x81, 0xa4, 0x63, 0x8c, 0xd5, 0x74, 0xa0, 0x88, 0xfa, 0x03, 0x30, 0xe9, 0x7f, 0x2b, 0xc6, 0x02, 0xc9, 0x5e, 0xe4, 0xd5, 0x4d, 0x92, 0xd0, 0xf6, 0xf2, 0x5b, 0x79, 0x08, - /* (2^350)P */ 0x34, 0x89, 0x81, 0x43, 0xd1, 0x94, 0x2c, 0x10, 0x54, 0x9b, 0xa0, 0xe5, 0x44, 0xe8, 0xc2, 0x2f, 0x3e, 0x0e, 0x74, 0xae, 0xba, 0xe2, 0xac, 0x85, 0x6b, 0xd3, 0x5c, 0x97, 0xf7, 0x90, 0xf1, 0x12, 0xc0, 0x03, 0xc8, 0x1f, 0x37, 0x72, 0x8c, 0x9b, 0x9c, 0x17, 0x96, 0x9d, 0xc7, 0xbf, 0xa3, 0x3f, 0x44, 0x3d, 0x87, 0x81, 0xbd, 0x81, 0xa6, 0x5f, - /* (2^351)P */ 0xe4, 0xff, 0x78, 0x62, 0x82, 0x5b, 0x76, 0x58, 0xf5, 0x5b, 0xa6, 0xc4, 0x53, 0x11, 0x3b, 0x7b, 0xaa, 0x67, 0xf8, 0xea, 0x3b, 0x5d, 0x9a, 0x2e, 0x04, 0xeb, 0x4a, 0x24, 0xfb, 0x56, 0xf0, 0xa8, 0xd4, 0x14, 0xed, 0x0f, 0xfd, 0xc5, 0x26, 0x17, 0x2a, 0xf0, 0xb9, 0x13, 0x8c, 0xbd, 0x65, 0x14, 0x24, 0x95, 0x27, 0x12, 0x63, 0x2a, 0x09, 0x18, - /* (2^352)P */ 0xe1, 0x5c, 0xe7, 0xe0, 0x00, 0x6a, 0x96, 0xf2, 0x49, 0x6a, 0x39, 0xa5, 0xe0, 0x17, 0x79, 0x4a, 0x63, 0x07, 0x62, 0x09, 0x61, 0x1b, 0x6e, 0xa9, 0xb5, 0x62, 0xb7, 0xde, 0xdf, 0x80, 0x4c, 0x5a, 0x99, 0x73, 0x59, 0x9d, 0xfb, 0xb1, 0x5e, 0xbe, 0xb8, 0xb7, 0x63, 0x93, 0xe8, 0xad, 0x5e, 0x1f, 0xae, 0x59, 0x1c, 0xcd, 0xb4, 0xc2, 0xb3, 0x8a, - /* (2^353)P */ 0x78, 0x53, 0xa1, 0x4c, 0x70, 0x9c, 0x63, 0x7e, 0xb3, 0x12, 0x40, 0x5f, 0xbb, 0x23, 0xa7, 0xf7, 0x77, 0x96, 0x5b, 0x4d, 0x91, 0x10, 0x52, 0x85, 0x9e, 0xa5, 0x38, 0x0b, 0xfd, 0x25, 0x01, 0x4b, 0xfa, 0x4d, 0xd3, 0x3f, 0x78, 0x74, 0x42, 0xff, 0x62, 0x2d, 0x27, 0xdc, 0x9d, 0xd1, 0x29, 0x76, 0x2e, 0x78, 0xb3, 0x35, 0xfa, 0x15, 0xd5, 0x38, - /* (2^354)P */ 0x8b, 0xc7, 0x43, 0xce, 0xf0, 0x5e, 0xf1, 0x0d, 0x02, 0x38, 0xe8, 0x82, 0xc9, 0x25, 0xad, 0x2d, 0x27, 0xa4, 0x54, 0x18, 0xb2, 0x30, 0x73, 0xa4, 0x41, 0x08, 0xe4, 0x86, 0xe6, 0x8c, 0xe9, 0x2a, 0x34, 0xb3, 0xd6, 0x61, 0x8f, 0x66, 0x26, 0x08, 0xb6, 0x06, 0x33, 0xaa, 0x12, 0xac, 0x72, 0xec, 0x2e, 0x52, 0xa3, 0x25, 0x3e, 0xd7, 0x62, 0xe8, - /* (2^355)P */ 0xc4, 0xbb, 0x89, 0xc8, 0x40, 0xcc, 0x84, 0xec, 0x4a, 0xd9, 0xc4, 0x55, 0x78, 0x00, 0xcf, 0xd8, 0xe9, 0x24, 0x59, 0xdc, 0x5e, 0xf0, 0x66, 0xa1, 0x83, 0xae, 0x97, 0x18, 0xc5, 0x54, 0x27, 0xa2, 0x21, 0x52, 0x03, 0x31, 0x5b, 0x11, 0x67, 0xf6, 0x12, 0x00, 0x87, 0x2f, 0xff, 0x59, 0x70, 0x8f, 0x6d, 0x71, 0xab, 0xab, 0x24, 0xb8, 0xba, 0x35, - /* (2^356)P */ 0x69, 0x43, 0xa7, 0x14, 0x06, 0x96, 0xe9, 0xc2, 0xe3, 0x2b, 0x45, 0x22, 0xc0, 0xd0, 0x2f, 0x34, 0xd1, 0x01, 0x99, 0xfc, 0x99, 0x38, 0xa1, 0x25, 0x2e, 0x59, 0x6c, 0x27, 0xc9, 0xeb, 0x7b, 0xdc, 0x4e, 0x26, 0x68, 0xba, 0xfa, 0xec, 0x02, 0x05, 0x64, 0x80, 0x30, 0x20, 0x5c, 0x26, 0x7f, 0xaf, 0x95, 0x17, 0x3d, 0x5c, 0x9e, 0x96, 0x96, 0xaf, - /* (2^357)P */ 0xa6, 0xba, 0x21, 0x29, 0x32, 0xe2, 0x98, 0xde, 0x9b, 0x6d, 0x0b, 0x44, 0x91, 0xa8, 0x3e, 0xd4, 0xb8, 0x04, 0x6c, 0xf6, 0x04, 0x39, 0xbd, 0x52, 0x05, 0x15, 0x27, 0x78, 0x8e, 0x55, 0xac, 0x79, 0xc5, 0xe6, 0x00, 0x7f, 0x90, 0xa2, 0xdd, 0x07, 0x13, 0xe0, 0x24, 0x70, 0x5c, 0x0f, 0x4d, 0xa9, 0xf9, 0xae, 0xcb, 0x34, 0x10, 0x9d, 0x89, 0x9d, - /* (2^358)P */ 0x12, 0xe0, 0xb3, 0x9f, 0xc4, 0x96, 0x1d, 0xcf, 0xed, 0x99, 0x64, 0x28, 0x8d, 0xc7, 0x31, 0x82, 0xee, 0x5e, 0x75, 0x48, 0xff, 0x3a, 0xf2, 0x09, 0x34, 0x03, 0x93, 0x52, 0x19, 0xb2, 0xc5, 0x81, 0x93, 0x45, 0x5e, 0x59, 0x21, 0x2b, 0xec, 0x89, 0xba, 0x36, 0x6e, 0xf9, 0x82, 0x75, 0x7e, 0x82, 0x3f, 0xaa, 0xe2, 0xe3, 0x3b, 0x94, 0xfd, 0x98, - /* (2^359)P */ 0x7c, 0xdb, 0x75, 0x31, 0x61, 0xfb, 0x15, 0x28, 0x94, 0xd7, 0xc3, 0x5a, 0xa9, 0xa1, 0x0a, 0x66, 0x0f, 0x2b, 0x13, 0x3e, 0x42, 0xb5, 0x28, 0x3a, 0xca, 0x83, 0xf3, 0x61, 0x22, 0xf4, 0x40, 0xc5, 0xdf, 0xe7, 0x31, 0x9f, 0x7e, 0x51, 0x75, 0x06, 0x9d, 0x51, 0xc8, 0xe7, 0x9f, 0xc3, 0x71, 0x4f, 0x3d, 0x5b, 0xfb, 0xe9, 0x8e, 0x08, 0x40, 0x8e, - /* (2^360)P */ 0xf7, 0x31, 0xad, 0x50, 0x5d, 0x25, 0x93, 0x73, 0x68, 0xf6, 0x7c, 0x89, 0x5a, 0x3d, 0x9f, 0x9b, 0x05, 0x82, 0xe7, 0x70, 0x4b, 0x19, 0xaa, 0xcf, 0xff, 0xde, 0x50, 0x8f, 0x2f, 0x69, 0xd3, 0xf0, 0x99, 0x51, 0x6b, 0x9d, 0xb6, 0x56, 0x6f, 0xf8, 0x4c, 0x74, 0x8b, 0x4c, 0x91, 0xf9, 0xa9, 0xb1, 0x3e, 0x07, 0xdf, 0x0b, 0x27, 0x8a, 0xb1, 0xed, - /* (2^361)P */ 0xfb, 0x67, 0xd9, 0x48, 0xd2, 0xe4, 0x44, 0x9b, 0x43, 0x15, 0x8a, 0xeb, 0x00, 0x53, 0xad, 0x25, 0xc7, 0x7e, 0x19, 0x30, 0x87, 0xb7, 0xd5, 0x5f, 0x04, 0xf8, 0xaa, 0xdd, 0x57, 0xae, 0x34, 0x75, 0xe2, 0x84, 0x4b, 0x54, 0x60, 0x37, 0x95, 0xe4, 0xd3, 0xec, 0xac, 0xef, 0x47, 0x31, 0xa3, 0xc8, 0x31, 0x22, 0xdb, 0x26, 0xe7, 0x6a, 0xb5, 0xad, - /* (2^362)P */ 0x44, 0x09, 0x5c, 0x95, 0xe4, 0x72, 0x3c, 0x1a, 0xd1, 0xac, 0x42, 0x51, 0x99, 0x6f, 0xfa, 0x1f, 0xf2, 0x22, 0xbe, 0xff, 0x7b, 0x66, 0xf5, 0x6c, 0xb3, 0x66, 0xc7, 0x4d, 0x78, 0x31, 0x83, 0x80, 0xf5, 0x41, 0xe9, 0x7f, 0xbe, 0xf7, 0x23, 0x49, 0x6b, 0x84, 0x4e, 0x7e, 0x47, 0x07, 0x6e, 0x74, 0xdf, 0xe5, 0x9d, 0x9e, 0x56, 0x2a, 0xc0, 0xbc, - /* (2^363)P */ 0xac, 0x10, 0x80, 0x8c, 0x7c, 0xfa, 0x83, 0xdf, 0xb3, 0xd0, 0xc4, 0xbe, 0xfb, 0x9f, 0xac, 0xc9, 0xc3, 0x40, 0x95, 0x0b, 0x09, 0x23, 0xda, 0x63, 0x67, 0xcf, 0xe7, 0x9f, 0x7d, 0x7b, 0x6b, 0xe2, 0xe6, 0x6d, 0xdb, 0x87, 0x9e, 0xa6, 0xff, 0x6d, 0xab, 0xbd, 0xfb, 0x54, 0x84, 0x68, 0xcf, 0x89, 0xf1, 0xd0, 0xe2, 0x85, 0x61, 0xdc, 0x22, 0xd1, - /* (2^364)P */ 0xa8, 0x48, 0xfb, 0x8c, 0x6a, 0x63, 0x01, 0x72, 0x43, 0x43, 0xeb, 0x21, 0xa3, 0x00, 0x8a, 0xc0, 0x87, 0x51, 0x9e, 0x86, 0x75, 0x16, 0x79, 0xf9, 0x6b, 0x11, 0x80, 0x62, 0xc2, 0x9d, 0xb8, 0x8c, 0x30, 0x8e, 0x8d, 0x03, 0x52, 0x7e, 0x31, 0x59, 0x38, 0xf9, 0x25, 0xc7, 0x0f, 0xc7, 0xa8, 0x2b, 0x5c, 0x80, 0xfa, 0x90, 0xa2, 0x63, 0xca, 0xe7, - /* (2^365)P */ 0xf1, 0x5d, 0xb5, 0xd9, 0x20, 0x10, 0x7d, 0x0f, 0xc5, 0x50, 0x46, 0x07, 0xff, 0x02, 0x75, 0x2b, 0x4a, 0xf3, 0x39, 0x91, 0x72, 0xb7, 0xd5, 0xcc, 0x38, 0xb8, 0xe7, 0x36, 0x26, 0x5e, 0x11, 0x97, 0x25, 0xfb, 0x49, 0x68, 0xdc, 0xb4, 0x46, 0x87, 0x5c, 0xc2, 0x7f, 0xaa, 0x7d, 0x36, 0x23, 0xa6, 0xc6, 0x53, 0xec, 0xbc, 0x57, 0x47, 0xc1, 0x2b, - /* (2^366)P */ 0x25, 0x5d, 0x7d, 0x95, 0xda, 0x0b, 0x8f, 0x78, 0x1e, 0x19, 0x09, 0xfa, 0x67, 0xe0, 0xa0, 0x17, 0x24, 0x76, 0x6c, 0x30, 0x1f, 0x62, 0x3d, 0xbe, 0x45, 0x70, 0xcc, 0xb6, 0x1e, 0x68, 0x06, 0x25, 0x68, 0x16, 0x1a, 0x33, 0x3f, 0x90, 0xc7, 0x78, 0x2d, 0x98, 0x3c, 0x2f, 0xb9, 0x2d, 0x94, 0x0b, 0xfb, 0x49, 0x56, 0x30, 0xd7, 0xc1, 0xe6, 0x48, - /* (2^367)P */ 0x7a, 0xd1, 0xe0, 0x8e, 0x67, 0xfc, 0x0b, 0x50, 0x1f, 0x84, 0x98, 0xfa, 0xaf, 0xae, 0x2e, 0x31, 0x27, 0xcf, 0x3f, 0xf2, 0x6e, 0x8d, 0x81, 0x8f, 0xd2, 0x5f, 0xde, 0xd3, 0x5e, 0xe9, 0xe7, 0x13, 0x48, 0x83, 0x5a, 0x4e, 0x84, 0xd1, 0x58, 0xcf, 0x6b, 0x84, 0xdf, 0x13, 0x1d, 0x91, 0x85, 0xe8, 0xcb, 0x29, 0x79, 0xd2, 0xca, 0xac, 0x6a, 0x93, - /* (2^368)P */ 0x53, 0x82, 0xce, 0x61, 0x96, 0x88, 0x6f, 0xe1, 0x4a, 0x4c, 0x1e, 0x30, 0x73, 0xe8, 0x74, 0xde, 0x40, 0x2b, 0xe0, 0xc4, 0xb5, 0xd8, 0x7c, 0x15, 0xe7, 0xe1, 0xb1, 0xe0, 0xd6, 0x88, 0xb1, 0x6a, 0x57, 0x19, 0x6a, 0x22, 0x66, 0x57, 0xf6, 0x8d, 0xfd, 0xc0, 0xf2, 0xa3, 0x03, 0x56, 0xfb, 0x2e, 0x75, 0x5e, 0xc7, 0x8e, 0x22, 0x96, 0x5c, 0x06, - /* (2^369)P */ 0x98, 0x7e, 0xbf, 0x3e, 0xbf, 0x24, 0x9d, 0x15, 0xd3, 0xf6, 0xd3, 0xd2, 0xf0, 0x11, 0xf2, 0xdb, 0x36, 0x23, 0x38, 0xf7, 0x1d, 0x71, 0x20, 0xd2, 0x54, 0x7f, 0x1e, 0x24, 0x8f, 0xe2, 0xaa, 0xf7, 0x3f, 0x6b, 0x41, 0x4e, 0xdc, 0x0e, 0xec, 0xe8, 0x35, 0x0a, 0x08, 0x6d, 0x89, 0x5b, 0x32, 0x91, 0x01, 0xb6, 0xe0, 0x2c, 0xc6, 0xa1, 0xbe, 0xb4, - /* (2^370)P */ 0x29, 0xf2, 0x1e, 0x1c, 0xdc, 0x68, 0x8a, 0x43, 0x87, 0x2c, 0x48, 0xb3, 0x9e, 0xed, 0xd2, 0x82, 0x46, 0xac, 0x2f, 0xef, 0x93, 0x34, 0x37, 0xca, 0x64, 0x8d, 0xc9, 0x06, 0x90, 0xbb, 0x78, 0x0a, 0x3c, 0x4c, 0xcf, 0x35, 0x7a, 0x0f, 0xf7, 0xa7, 0xf4, 0x2f, 0x45, 0x69, 0x3f, 0xa9, 0x5d, 0xce, 0x7b, 0x8a, 0x84, 0xc3, 0xae, 0xf4, 0xda, 0xd5, - /* (2^371)P */ 0xca, 0xba, 0x95, 0x43, 0x05, 0x7b, 0x06, 0xd9, 0x5c, 0x0a, 0x18, 0x5f, 0x6a, 0x6a, 0xce, 0xc0, 0x3d, 0x95, 0x51, 0x0e, 0x1a, 0xbe, 0x85, 0x7a, 0xf2, 0x69, 0xec, 0xc0, 0x8c, 0xca, 0xa3, 0x32, 0x0a, 0x76, 0x50, 0xc6, 0x76, 0x61, 0x00, 0x89, 0xbf, 0x6e, 0x0f, 0x48, 0x90, 0x31, 0x93, 0xec, 0x34, 0x70, 0xf0, 0xc3, 0x8d, 0xf0, 0x0f, 0xb5, - /* (2^372)P */ 0xbe, 0x23, 0xe2, 0x18, 0x99, 0xf1, 0xed, 0x8a, 0xf6, 0xc9, 0xac, 0xb8, 0x1e, 0x9a, 0x3c, 0x15, 0xae, 0xd7, 0x6d, 0xb3, 0x04, 0xee, 0x5b, 0x0d, 0x1e, 0x79, 0xb7, 0xf9, 0xf9, 0x8d, 0xad, 0xf9, 0x8f, 0x5a, 0x6a, 0x7b, 0xd7, 0x9b, 0xca, 0x62, 0xfe, 0x9c, 0xc0, 0x6f, 0x6d, 0x9d, 0x76, 0xa3, 0x69, 0xb9, 0x4c, 0xa1, 0xc4, 0x0c, 0x76, 0xaa, - /* (2^373)P */ 0x1c, 0x06, 0xfe, 0x3f, 0x45, 0x70, 0xcd, 0x97, 0xa9, 0xa2, 0xb1, 0xd3, 0xf2, 0xa5, 0x0c, 0x49, 0x2c, 0x75, 0x73, 0x1f, 0xcf, 0x00, 0xaf, 0xd5, 0x2e, 0xde, 0x0d, 0x8f, 0x8f, 0x7c, 0xc4, 0x58, 0xce, 0xd4, 0xf6, 0x24, 0x19, 0x2e, 0xd8, 0xc5, 0x1d, 0x1a, 0x3f, 0xb8, 0x4f, 0xbc, 0x7d, 0xbd, 0x68, 0xe3, 0x81, 0x98, 0x1b, 0xa8, 0xc9, 0xd9, - /* (2^374)P */ 0x39, 0x95, 0x78, 0x24, 0x6c, 0x38, 0xe4, 0xe7, 0xd0, 0x8d, 0xb9, 0x38, 0x71, 0x5e, 0xc1, 0x62, 0x80, 0xcc, 0xcb, 0x8c, 0x97, 0xca, 0xf8, 0xb9, 0xd9, 0x9c, 0xce, 0x72, 0x7b, 0x70, 0xee, 0x5f, 0xea, 0xa2, 0xdf, 0xa9, 0x14, 0x10, 0xf9, 0x6e, 0x59, 0x9f, 0x9c, 0xe0, 0x0c, 0xb2, 0x07, 0x97, 0xcd, 0xd2, 0x89, 0x16, 0xfd, 0x9c, 0xa8, 0xa5, - /* (2^375)P */ 0x5a, 0x61, 0xf1, 0x59, 0x7c, 0x38, 0xda, 0xe2, 0x85, 0x99, 0x68, 0xe9, 0xc9, 0xf7, 0x32, 0x7e, 0xc4, 0xca, 0xb7, 0x11, 0x08, 0x69, 0x2b, 0x66, 0x02, 0xf7, 0x2e, 0x18, 0xc3, 0x8e, 0xe1, 0xf9, 0xc5, 0x19, 0x9a, 0x0a, 0x9c, 0x07, 0xba, 0xc7, 0x9c, 0x03, 0x34, 0x89, 0x99, 0x67, 0x0b, 0x16, 0x4b, 0x07, 0x36, 0x16, 0x36, 0x2c, 0xe2, 0xa1, - /* (2^376)P */ 0x70, 0x10, 0x91, 0x27, 0xa8, 0x24, 0x8e, 0x29, 0x04, 0x6f, 0x79, 0x1f, 0xd3, 0xa5, 0x68, 0xd3, 0x0b, 0x7d, 0x56, 0x4d, 0x14, 0x57, 0x7b, 0x2e, 0x00, 0x9f, 0x9a, 0xfd, 0x6c, 0x63, 0x18, 0x81, 0xdb, 0x9d, 0xb7, 0xd7, 0xa4, 0x1e, 0xe8, 0x40, 0xf1, 0x4c, 0xa3, 0x01, 0xd5, 0x4b, 0x75, 0xea, 0xdd, 0x97, 0xfd, 0x5b, 0xb2, 0x66, 0x6a, 0x24, - /* (2^377)P */ 0x72, 0x11, 0xfe, 0x73, 0x1b, 0xd3, 0xea, 0x7f, 0x93, 0x15, 0x15, 0x05, 0xfe, 0x40, 0xe8, 0x28, 0xd8, 0x50, 0x47, 0x66, 0xfa, 0xb7, 0xb5, 0x04, 0xba, 0x35, 0x1e, 0x32, 0x9f, 0x5f, 0x32, 0xba, 0x3d, 0xd1, 0xed, 0x9a, 0x76, 0xca, 0xa3, 0x3e, 0x77, 0xd8, 0xd8, 0x7c, 0x5f, 0x68, 0x42, 0xb5, 0x86, 0x7f, 0x3b, 0xc9, 0xc1, 0x89, 0x64, 0xda, - /* (2^378)P */ 0xd5, 0xd4, 0x17, 0x31, 0xfc, 0x6a, 0xfd, 0xb8, 0xe8, 0xe5, 0x3e, 0x39, 0x06, 0xe4, 0xd1, 0x90, 0x2a, 0xca, 0xf6, 0x54, 0x6c, 0x1b, 0x2f, 0x49, 0x97, 0xb1, 0x2a, 0x82, 0x43, 0x3d, 0x1f, 0x8b, 0xe2, 0x47, 0xc5, 0x24, 0xa8, 0xd5, 0x53, 0x29, 0x7d, 0xc6, 0x87, 0xa6, 0x25, 0x3a, 0x64, 0xdd, 0x71, 0x08, 0x9e, 0xcd, 0xe9, 0x45, 0xc7, 0xba, - /* (2^379)P */ 0x37, 0x72, 0x6d, 0x13, 0x7a, 0x8d, 0x04, 0x31, 0xe6, 0xe3, 0x9e, 0x36, 0x71, 0x3e, 0xc0, 0x1e, 0xe3, 0x71, 0xd3, 0x49, 0x4e, 0x4a, 0x36, 0x42, 0x68, 0x68, 0x61, 0xc7, 0x3c, 0xdb, 0x81, 0x49, 0xf7, 0x91, 0x4d, 0xea, 0x4c, 0x4f, 0x98, 0xc6, 0x7e, 0x60, 0x84, 0x4b, 0x6a, 0x37, 0xbb, 0x52, 0xf7, 0xce, 0x02, 0xe4, 0xad, 0xd1, 0x3c, 0xa7, - /* (2^380)P */ 0x51, 0x06, 0x2d, 0xf8, 0x08, 0xe8, 0xf1, 0x0c, 0xe5, 0xa9, 0xac, 0x29, 0x73, 0x3b, 0xed, 0x98, 0x5f, 0x55, 0x08, 0x38, 0x51, 0x44, 0x36, 0x5d, 0xea, 0xc3, 0xb8, 0x0e, 0xa0, 0x4f, 0xd2, 0x79, 0xe9, 0x98, 0xc3, 0xf5, 0x00, 0xb9, 0x26, 0x27, 0x42, 0xa8, 0x07, 0xc1, 0x12, 0x31, 0xc1, 0xc3, 0x3c, 0x3b, 0x7a, 0x72, 0x97, 0xc2, 0x70, 0x3a, - /* (2^381)P */ 0xf4, 0xb2, 0xba, 0x32, 0xbc, 0xa9, 0x2f, 0x87, 0xc7, 0x3c, 0x45, 0xcd, 0xae, 0xe2, 0x13, 0x6d, 0x3a, 0xf2, 0xf5, 0x66, 0x97, 0x29, 0xaf, 0x53, 0x9f, 0xda, 0xea, 0x14, 0xdf, 0x04, 0x98, 0x19, 0x95, 0x9e, 0x2a, 0x00, 0x5c, 0x9d, 0x1d, 0xf0, 0x39, 0x23, 0xff, 0xfc, 0xca, 0x36, 0xb7, 0xde, 0xdf, 0x37, 0x78, 0x52, 0x21, 0xfa, 0x19, 0x10, - /* (2^382)P */ 0x50, 0x20, 0x73, 0x74, 0x62, 0x21, 0xf2, 0xf7, 0x9b, 0x66, 0x85, 0x34, 0x74, 0xd4, 0x9d, 0x60, 0xd7, 0xbc, 0xc8, 0x46, 0x3b, 0xb8, 0x80, 0x42, 0x15, 0x0a, 0x6c, 0x35, 0x1a, 0x69, 0xf0, 0x1d, 0x4b, 0x29, 0x54, 0x5a, 0x9a, 0x48, 0xec, 0x9f, 0x37, 0x74, 0x91, 0xd0, 0xd1, 0x9e, 0x00, 0xc2, 0x76, 0x56, 0xd6, 0xa0, 0x15, 0x14, 0x83, 0x59, - /* (2^383)P */ 0xc2, 0xf8, 0x22, 0x20, 0x23, 0x07, 0xbd, 0x1d, 0x6f, 0x1e, 0x8c, 0x56, 0x06, 0x6a, 0x4b, 0x9f, 0xe2, 0xa9, 0x92, 0x46, 0x4b, 0x46, 0x59, 0xd7, 0xe1, 0xda, 0x14, 0x98, 0x07, 0x65, 0x7e, 0x28, 0x20, 0xf2, 0x9d, 0x4f, 0x36, 0x5c, 0x92, 0xe0, 0x9d, 0xfe, 0x3e, 0xda, 0xe4, 0x47, 0x19, 0x3c, 0x00, 0x7f, 0x22, 0xf2, 0x9e, 0x51, 0xae, 0x4d, - /* (2^384)P */ 0xbe, 0x8c, 0x1b, 0x10, 0xb6, 0xad, 0xcc, 0xcc, 0xd8, 0x5e, 0x21, 0xa6, 0xfb, 0xf1, 0xf6, 0xbd, 0x0a, 0x24, 0x67, 0xb4, 0x57, 0x7a, 0xbc, 0xe8, 0xe9, 0xff, 0xee, 0x0a, 0x1f, 0xee, 0xbd, 0xc8, 0x44, 0xed, 0x2b, 0xbb, 0x55, 0x1f, 0xdd, 0x7c, 0xb3, 0xeb, 0x3f, 0x63, 0xa1, 0x28, 0x91, 0x21, 0xab, 0x71, 0xc6, 0x4c, 0xd0, 0xe9, 0xb0, 0x21, - /* (2^385)P */ 0xad, 0xc9, 0x77, 0x2b, 0xee, 0x89, 0xa4, 0x7b, 0xfd, 0xf9, 0xf6, 0x14, 0xe4, 0xed, 0x1a, 0x16, 0x9b, 0x78, 0x41, 0x43, 0xa8, 0x83, 0x72, 0x06, 0x2e, 0x7c, 0xdf, 0xeb, 0x7e, 0xdd, 0xd7, 0x8b, 0xea, 0x9a, 0x2b, 0x03, 0xba, 0x57, 0xf3, 0xf1, 0xd9, 0xe5, 0x09, 0xc5, 0x98, 0x61, 0x1c, 0x51, 0x6d, 0x5d, 0x6e, 0xfb, 0x5e, 0x95, 0x9f, 0xb5, - /* (2^386)P */ 0x23, 0xe2, 0x1e, 0x95, 0xa3, 0x5e, 0x42, 0x10, 0xc7, 0xc3, 0x70, 0xbf, 0x4b, 0x6b, 0x83, 0x36, 0x93, 0xb7, 0x68, 0x47, 0x88, 0x3a, 0x10, 0x88, 0x48, 0x7f, 0x8c, 0xae, 0x54, 0x10, 0x02, 0xa4, 0x52, 0x8f, 0x8d, 0xf7, 0x26, 0x4f, 0x50, 0xc3, 0x6a, 0xe2, 0x4e, 0x3b, 0x4c, 0xb9, 0x8a, 0x14, 0x15, 0x6d, 0x21, 0x29, 0xb3, 0x6e, 0x4e, 0xd0, - /* (2^387)P */ 0x4c, 0x8a, 0x18, 0x3f, 0xb7, 0x20, 0xfd, 0x3e, 0x54, 0xca, 0x68, 0x3c, 0xea, 0x6f, 0xf4, 0x6b, 0xa2, 0xbd, 0x01, 0xbd, 0xfe, 0x08, 0xa8, 0xd8, 0xc2, 0x20, 0x36, 0x05, 0xcd, 0xe9, 0xf3, 0x9e, 0xfa, 0x85, 0x66, 0x8f, 0x4b, 0x1d, 0x8c, 0x64, 0x4f, 0xb8, 0xc6, 0x0f, 0x5b, 0x57, 0xd8, 0x24, 0x19, 0x5a, 0x14, 0x4b, 0x92, 0xd3, 0x96, 0xbc, - /* (2^388)P */ 0xa9, 0x3f, 0xc9, 0x6c, 0xca, 0x64, 0x1e, 0x6f, 0xdf, 0x65, 0x7f, 0x9a, 0x47, 0x6b, 0x8a, 0x60, 0x31, 0xa6, 0x06, 0xac, 0x69, 0x30, 0xe6, 0xea, 0x63, 0x42, 0x26, 0x5f, 0xdb, 0xd0, 0xf2, 0x8e, 0x34, 0x0a, 0x3a, 0xeb, 0xf3, 0x79, 0xc8, 0xb7, 0x60, 0x56, 0x5c, 0x37, 0x95, 0x71, 0xf8, 0x7f, 0x49, 0x3e, 0x9e, 0x01, 0x26, 0x1e, 0x80, 0x9f, - /* (2^389)P */ 0xf8, 0x16, 0x9a, 0xaa, 0xb0, 0x28, 0xb5, 0x8e, 0xd0, 0x60, 0xe5, 0x26, 0xa9, 0x47, 0xc4, 0x5c, 0xa9, 0x39, 0xfe, 0x0a, 0xd8, 0x07, 0x2b, 0xb3, 0xce, 0xf1, 0xea, 0x1a, 0xf4, 0x7b, 0x98, 0x31, 0x3d, 0x13, 0x29, 0x80, 0xe8, 0x0d, 0xcf, 0x56, 0x39, 0x86, 0x50, 0x0c, 0xb3, 0x18, 0xf4, 0xc5, 0xca, 0xf2, 0x6f, 0xcd, 0x8d, 0xd5, 0x02, 0xb0, - /* (2^390)P */ 0xbf, 0x39, 0x3f, 0xac, 0x6d, 0x1a, 0x6a, 0xe4, 0x42, 0x24, 0xd6, 0x41, 0x9d, 0xb9, 0x5b, 0x46, 0x73, 0x93, 0x76, 0xaa, 0xb7, 0x37, 0x36, 0xa6, 0x09, 0xe5, 0x04, 0x3b, 0x66, 0xc4, 0x29, 0x3e, 0x41, 0xc2, 0xcb, 0xe5, 0x17, 0xd7, 0x34, 0x67, 0x1d, 0x2c, 0x12, 0xec, 0x24, 0x7a, 0x40, 0xa2, 0x45, 0x41, 0xf0, 0x75, 0xed, 0x43, 0x30, 0xc9, - /* (2^391)P */ 0x80, 0xf6, 0x47, 0x5b, 0xad, 0x54, 0x02, 0xbc, 0xdd, 0xa4, 0xb2, 0xd7, 0x42, 0x95, 0xf2, 0x0d, 0x1b, 0xef, 0x37, 0xa7, 0xb4, 0x34, 0x04, 0x08, 0x71, 0x1b, 0xd3, 0xdf, 0xa1, 0xf0, 0x2b, 0xfa, 0xc0, 0x1f, 0xf3, 0x44, 0xb5, 0xc6, 0x47, 0x3d, 0x65, 0x67, 0x45, 0x4d, 0x2f, 0xde, 0x52, 0x73, 0xfc, 0x30, 0x01, 0x6b, 0xc1, 0x03, 0xd8, 0xd7, - /* (2^392)P */ 0x1c, 0x67, 0x55, 0x3e, 0x01, 0x17, 0x0f, 0x3e, 0xe5, 0x34, 0x58, 0xfc, 0xcb, 0x71, 0x24, 0x74, 0x5d, 0x36, 0x1e, 0x89, 0x2a, 0x63, 0xf8, 0xf8, 0x9f, 0x50, 0x9f, 0x32, 0x92, 0x29, 0xd8, 0x1a, 0xec, 0x76, 0x57, 0x6c, 0x67, 0x12, 0x6a, 0x6e, 0xef, 0x97, 0x1f, 0xc3, 0x77, 0x60, 0x3c, 0x22, 0xcb, 0xc7, 0x04, 0x1a, 0x89, 0x2d, 0x10, 0xa6, - /* (2^393)P */ 0x12, 0xf5, 0xa9, 0x26, 0x16, 0xd9, 0x3c, 0x65, 0x5d, 0x83, 0xab, 0xd1, 0x70, 0x6b, 0x1c, 0xdb, 0xe7, 0x86, 0x0d, 0xfb, 0xe7, 0xf8, 0x2a, 0x58, 0x6e, 0x7a, 0x66, 0x13, 0x53, 0x3a, 0x6f, 0x8d, 0x43, 0x5f, 0x14, 0x23, 0x14, 0xff, 0x3d, 0x52, 0x7f, 0xee, 0xbd, 0x7a, 0x34, 0x8b, 0x35, 0x24, 0xc3, 0x7a, 0xdb, 0xcf, 0x22, 0x74, 0x9a, 0x8f, - /* (2^394)P */ 0xdb, 0x20, 0xfc, 0xe5, 0x39, 0x4e, 0x7d, 0x78, 0xee, 0x0b, 0xbf, 0x1d, 0x80, 0xd4, 0x05, 0x4f, 0xb9, 0xd7, 0x4e, 0x94, 0x88, 0x9a, 0x50, 0x78, 0x1a, 0x70, 0x8c, 0xcc, 0x25, 0xb6, 0x61, 0x09, 0xdc, 0x7b, 0xea, 0x3f, 0x7f, 0xea, 0x2a, 0x0d, 0x47, 0x1c, 0x8e, 0xa6, 0x5b, 0xd2, 0xa3, 0x61, 0x93, 0x3c, 0x68, 0x9f, 0x8b, 0xea, 0xb0, 0xcb, - /* (2^395)P */ 0xff, 0x54, 0x02, 0x19, 0xae, 0x8b, 0x4c, 0x2c, 0x3a, 0xe0, 0xe4, 0xac, 0x87, 0xf7, 0x51, 0x45, 0x41, 0x43, 0xdc, 0xaa, 0xcd, 0xcb, 0xdc, 0x40, 0xe3, 0x44, 0x3b, 0x1d, 0x9e, 0x3d, 0xb9, 0x82, 0xcc, 0x7a, 0xc5, 0x12, 0xf8, 0x1e, 0xdd, 0xdb, 0x8d, 0xb0, 0x2a, 0xe8, 0xe6, 0x6c, 0x94, 0x3b, 0xb7, 0x2d, 0xba, 0x79, 0x3b, 0xb5, 0x86, 0xfb, - /* (2^396)P */ 0x82, 0x88, 0x13, 0xdd, 0x6c, 0xcd, 0x85, 0x2b, 0x90, 0x86, 0xb7, 0xac, 0x16, 0xa6, 0x6e, 0x6a, 0x94, 0xd8, 0x1e, 0x4e, 0x41, 0x0f, 0xce, 0x81, 0x6a, 0xa8, 0x26, 0x56, 0x43, 0x52, 0x52, 0xe6, 0xff, 0x88, 0xcf, 0x47, 0x05, 0x1d, 0xff, 0xf3, 0xa0, 0x10, 0xb2, 0x97, 0x87, 0xeb, 0x47, 0xbb, 0xfa, 0x1f, 0xe8, 0x4c, 0xce, 0xc4, 0xcd, 0x93, - /* (2^397)P */ 0xf4, 0x11, 0xf5, 0x8d, 0x89, 0x29, 0x79, 0xb3, 0x59, 0x0b, 0x29, 0x7d, 0x9c, 0x12, 0x4a, 0x65, 0x72, 0x3a, 0xf9, 0xec, 0x37, 0x18, 0x86, 0xef, 0x44, 0x07, 0x25, 0x74, 0x76, 0x53, 0xed, 0x51, 0x01, 0xc6, 0x28, 0xc5, 0xc3, 0x4a, 0x0f, 0x99, 0xec, 0xc8, 0x40, 0x5a, 0x83, 0x30, 0x79, 0xa2, 0x3e, 0x63, 0x09, 0x2d, 0x6f, 0x23, 0x54, 0x1c, - /* (2^398)P */ 0x5c, 0x6f, 0x3b, 0x1c, 0x30, 0x77, 0x7e, 0x87, 0x66, 0x83, 0x2e, 0x7e, 0x85, 0x50, 0xfd, 0xa0, 0x7a, 0xc2, 0xf5, 0x0f, 0xc1, 0x64, 0xe7, 0x0b, 0xbd, 0x59, 0xa7, 0xe7, 0x65, 0x53, 0xc3, 0xf5, 0x55, 0x5b, 0xe1, 0x82, 0x30, 0x5a, 0x61, 0xcd, 0xa0, 0x89, 0x32, 0xdb, 0x87, 0xfc, 0x21, 0x8a, 0xab, 0x6d, 0x82, 0xa8, 0x42, 0x81, 0x4f, 0xf2, - /* (2^399)P */ 0xb3, 0xeb, 0x88, 0x18, 0xf6, 0x56, 0x96, 0xbf, 0xba, 0x5d, 0x71, 0xa1, 0x5a, 0xd1, 0x04, 0x7b, 0xd5, 0x46, 0x01, 0x74, 0xfe, 0x15, 0x25, 0xb7, 0xff, 0x0c, 0x24, 0x47, 0xac, 0xfd, 0xab, 0x47, 0x32, 0xe1, 0x6a, 0x4e, 0xca, 0xcf, 0x7f, 0xdd, 0xf8, 0xd2, 0x4b, 0x3b, 0xf5, 0x17, 0xba, 0xba, 0x8b, 0xa1, 0xec, 0x28, 0x3f, 0x97, 0xab, 0x2a, - /* (2^400)P */ 0x51, 0x38, 0xc9, 0x5e, 0xc6, 0xb3, 0x64, 0xf2, 0x24, 0x4d, 0x04, 0x7d, 0xc8, 0x39, 0x0c, 0x4a, 0xc9, 0x73, 0x74, 0x1b, 0x5c, 0xb2, 0xc5, 0x41, 0x62, 0xa0, 0x4c, 0x6d, 0x8d, 0x91, 0x9a, 0x7b, 0x88, 0xab, 0x9c, 0x7e, 0x23, 0xdb, 0x6f, 0xb5, 0x72, 0xd6, 0x47, 0x40, 0xef, 0x22, 0x58, 0x62, 0x19, 0x6c, 0x38, 0xba, 0x5b, 0x00, 0x30, 0x9f, - /* (2^401)P */ 0x65, 0xbb, 0x3b, 0x9b, 0xe9, 0xae, 0xbf, 0xbe, 0xe4, 0x13, 0x95, 0xf3, 0xe3, 0x77, 0xcb, 0xe4, 0x9a, 0x22, 0xb5, 0x4a, 0x08, 0x9d, 0xb3, 0x9e, 0x27, 0xe0, 0x15, 0x6c, 0x9f, 0x7e, 0x9a, 0x5e, 0x15, 0x45, 0x25, 0x8d, 0x01, 0x0a, 0xd2, 0x2b, 0xbd, 0x48, 0x06, 0x0d, 0x18, 0x97, 0x4b, 0xdc, 0xbc, 0xf0, 0xcd, 0xb2, 0x52, 0x3c, 0xac, 0xf5, - /* (2^402)P */ 0x3e, 0xed, 0x47, 0x6b, 0x5c, 0xf6, 0x76, 0xd0, 0xe9, 0x15, 0xa3, 0xcb, 0x36, 0x00, 0x21, 0xa3, 0x79, 0x20, 0xa5, 0x3e, 0x88, 0x03, 0xcb, 0x7e, 0x63, 0xbb, 0xed, 0xa9, 0x13, 0x35, 0x16, 0xaf, 0x2e, 0xb4, 0x70, 0x14, 0x93, 0xfb, 0xc4, 0x9b, 0xd8, 0xb1, 0xbe, 0x43, 0xd1, 0x85, 0xb8, 0x97, 0xef, 0xea, 0x88, 0xa1, 0x25, 0x52, 0x62, 0x75, - /* (2^403)P */ 0x8e, 0x4f, 0xaa, 0x23, 0x62, 0x7e, 0x2b, 0x37, 0x89, 0x00, 0x11, 0x30, 0xc5, 0x33, 0x4a, 0x89, 0x8a, 0xe2, 0xfc, 0x5c, 0x6a, 0x75, 0xe5, 0xf7, 0x02, 0x4a, 0x9b, 0xf7, 0xb5, 0x6a, 0x85, 0x31, 0xd3, 0x5a, 0xcf, 0xc3, 0xf8, 0xde, 0x2f, 0xcf, 0xb5, 0x24, 0xf4, 0xe3, 0xa1, 0xad, 0x42, 0xae, 0x09, 0xb9, 0x2e, 0x04, 0x2d, 0x01, 0x22, 0x3f, - /* (2^404)P */ 0x41, 0x16, 0xfb, 0x7d, 0x50, 0xfd, 0xb5, 0xba, 0x88, 0x24, 0xba, 0xfd, 0x3d, 0xb2, 0x90, 0x15, 0xb7, 0xfa, 0xa2, 0xe1, 0x4c, 0x7d, 0xb9, 0xc6, 0xff, 0x81, 0x57, 0xb6, 0xc2, 0x9e, 0xcb, 0xc4, 0x35, 0xbd, 0x01, 0xb7, 0xaa, 0xce, 0xd0, 0xe9, 0xb5, 0xd6, 0x72, 0xbf, 0xd2, 0xee, 0xc7, 0xac, 0x94, 0xff, 0x29, 0x57, 0x02, 0x49, 0x09, 0xad, - /* (2^405)P */ 0x27, 0xa5, 0x78, 0x1b, 0xbf, 0x6b, 0xaf, 0x0b, 0x8c, 0xd9, 0xa8, 0x37, 0xb0, 0x67, 0x18, 0xb6, 0xc7, 0x05, 0x8a, 0x67, 0x03, 0x30, 0x62, 0x6e, 0x56, 0x82, 0xa9, 0x54, 0x3e, 0x0c, 0x4e, 0x07, 0xe1, 0x5a, 0x38, 0xed, 0xfa, 0xc8, 0x55, 0x6b, 0x08, 0xa3, 0x6b, 0x64, 0x2a, 0x15, 0xd6, 0x39, 0x6f, 0x47, 0x99, 0x42, 0x3f, 0x33, 0x84, 0x8f, - /* (2^406)P */ 0xbc, 0x45, 0x29, 0x81, 0x0e, 0xa4, 0xc5, 0x72, 0x3a, 0x10, 0xe1, 0xc4, 0x1e, 0xda, 0xc3, 0xfe, 0xb0, 0xce, 0xd2, 0x13, 0x34, 0x67, 0x21, 0xc6, 0x7e, 0xf9, 0x8c, 0xff, 0x39, 0x50, 0xae, 0x92, 0x60, 0x35, 0x2f, 0x8b, 0x6e, 0xc9, 0xc1, 0x27, 0x3a, 0x94, 0x66, 0x3e, 0x26, 0x84, 0x93, 0xc8, 0x6c, 0xcf, 0xd2, 0x03, 0xa1, 0x10, 0xcf, 0xb7, - /* (2^407)P */ 0x64, 0xda, 0x19, 0xf6, 0xc5, 0x73, 0x17, 0x44, 0x88, 0x81, 0x07, 0x0d, 0x34, 0xb2, 0x75, 0xf9, 0xd9, 0xe2, 0xe0, 0x8b, 0x71, 0xcf, 0x72, 0x34, 0x83, 0xb4, 0xce, 0xfc, 0xd7, 0x29, 0x09, 0x5a, 0x98, 0xbf, 0x14, 0xac, 0x77, 0x55, 0x38, 0x47, 0x5b, 0x0f, 0x40, 0x24, 0xe5, 0xa5, 0xa6, 0xac, 0x2d, 0xa6, 0xff, 0x9c, 0x73, 0xfe, 0x5c, 0x7e, - /* (2^408)P */ 0x1e, 0x33, 0xcc, 0x68, 0xb2, 0xbc, 0x8c, 0x93, 0xaf, 0xcc, 0x38, 0xf8, 0xd9, 0x16, 0x72, 0x50, 0xac, 0xd9, 0xb5, 0x0b, 0x9a, 0xbe, 0x46, 0x7a, 0xf1, 0xee, 0xf1, 0xad, 0xec, 0x5b, 0x59, 0x27, 0x9c, 0x05, 0xa3, 0x87, 0xe0, 0x37, 0x2c, 0x83, 0xce, 0xb3, 0x65, 0x09, 0x8e, 0xc3, 0x9c, 0xbf, 0x6a, 0xa2, 0x00, 0xcc, 0x12, 0x36, 0xc5, 0x95, - /* (2^409)P */ 0x36, 0x11, 0x02, 0x14, 0x9c, 0x3c, 0xeb, 0x2f, 0x23, 0x5b, 0x6b, 0x2b, 0x08, 0x54, 0x53, 0xac, 0xb2, 0xa3, 0xe0, 0x26, 0x62, 0x3c, 0xe4, 0xe1, 0x81, 0xee, 0x13, 0x3e, 0xa4, 0x97, 0xef, 0xf9, 0x92, 0x27, 0x01, 0xce, 0x54, 0x8b, 0x3e, 0x31, 0xbe, 0xa7, 0x88, 0xcf, 0x47, 0x99, 0x3c, 0x10, 0x6f, 0x60, 0xb3, 0x06, 0x4e, 0xee, 0x1b, 0xf0, - /* (2^410)P */ 0x59, 0x49, 0x66, 0xcf, 0x22, 0xe6, 0xf6, 0x73, 0xfe, 0xa3, 0x1c, 0x09, 0xfa, 0x5f, 0x65, 0xa8, 0xf0, 0x82, 0xc2, 0xef, 0x16, 0x63, 0x6e, 0x79, 0x69, 0x51, 0x39, 0x07, 0x65, 0xc4, 0x81, 0xec, 0x73, 0x0f, 0x15, 0x93, 0xe1, 0x30, 0x33, 0xe9, 0x37, 0x86, 0x42, 0x4c, 0x1f, 0x9b, 0xad, 0xee, 0x3f, 0xf1, 0x2a, 0x8e, 0x6a, 0xa3, 0xc8, 0x35, - /* (2^411)P */ 0x1e, 0x49, 0xf1, 0xdd, 0xd2, 0x9c, 0x8e, 0x78, 0xb2, 0x06, 0xe4, 0x6a, 0xab, 0x3a, 0xdc, 0xcd, 0xf4, 0xeb, 0xe1, 0xe7, 0x2f, 0xaa, 0xeb, 0x40, 0x31, 0x9f, 0xb9, 0xab, 0x13, 0xa9, 0x78, 0xbf, 0x38, 0x89, 0x0e, 0x85, 0x14, 0x8b, 0x46, 0x76, 0x14, 0xda, 0xcf, 0x33, 0xc8, 0x79, 0xd3, 0xd5, 0xa3, 0x6a, 0x69, 0x45, 0x70, 0x34, 0xc3, 0xe9, - /* (2^412)P */ 0x5e, 0xe7, 0x78, 0xe9, 0x24, 0xcc, 0xe9, 0xf4, 0xc8, 0x6b, 0xe0, 0xfb, 0x3a, 0xbe, 0xcc, 0x42, 0x4a, 0x00, 0x22, 0xf8, 0xe6, 0x32, 0xbe, 0x6d, 0x18, 0x55, 0x60, 0xe9, 0x72, 0x69, 0x50, 0x56, 0xca, 0x04, 0x18, 0x38, 0xa1, 0xee, 0xd8, 0x38, 0x3c, 0xa7, 0x70, 0xe2, 0xb9, 0x4c, 0xa0, 0xc8, 0x89, 0x72, 0xcf, 0x49, 0x7f, 0xdf, 0xbc, 0x67, - /* (2^413)P */ 0x1d, 0x17, 0xcb, 0x0b, 0xbd, 0xb2, 0x36, 0xe3, 0xa8, 0x99, 0x31, 0xb6, 0x26, 0x9c, 0x0c, 0x74, 0xaf, 0x4d, 0x24, 0x61, 0xcf, 0x31, 0x7b, 0xed, 0xdd, 0xc3, 0xf6, 0x32, 0x70, 0xfe, 0x17, 0xf6, 0x51, 0x37, 0x65, 0xce, 0x5d, 0xaf, 0xa5, 0x2f, 0x2a, 0xfe, 0x00, 0x71, 0x7c, 0x50, 0xbe, 0x21, 0xc7, 0xed, 0xc6, 0xfc, 0x67, 0xcf, 0x9c, 0xdd, - /* (2^414)P */ 0x26, 0x3e, 0xf8, 0xbb, 0xd0, 0xb1, 0x01, 0xd8, 0xeb, 0x0b, 0x62, 0x87, 0x35, 0x4c, 0xde, 0xca, 0x99, 0x9c, 0x6d, 0xf7, 0xb6, 0xf0, 0x57, 0x0a, 0x52, 0x29, 0x6a, 0x3f, 0x26, 0x31, 0x04, 0x07, 0x2a, 0xc9, 0xfa, 0x9b, 0x0e, 0x62, 0x8e, 0x72, 0xf2, 0xad, 0xce, 0xb6, 0x35, 0x7a, 0xc1, 0xae, 0x35, 0xc7, 0xa3, 0x14, 0xcf, 0x0c, 0x28, 0xb7, - /* (2^415)P */ 0xa6, 0xf1, 0x32, 0x3a, 0x20, 0xd2, 0x24, 0x97, 0xcf, 0x5d, 0x37, 0x99, 0xaf, 0x33, 0x7a, 0x5b, 0x7a, 0xcc, 0x4e, 0x41, 0x38, 0xb1, 0x4e, 0xad, 0xc9, 0xd9, 0x71, 0x7e, 0xb2, 0xf5, 0xd5, 0x01, 0x6c, 0x4d, 0xfd, 0xa1, 0xda, 0x03, 0x38, 0x9b, 0x3d, 0x92, 0x92, 0xf2, 0xca, 0xbf, 0x1f, 0x24, 0xa4, 0xbb, 0x30, 0x6a, 0x74, 0x56, 0xc8, 0xce, - /* (2^416)P */ 0x27, 0xf4, 0xed, 0xc9, 0xc3, 0xb1, 0x79, 0x85, 0xbe, 0xf6, 0xeb, 0xf3, 0x55, 0xc7, 0xaa, 0xa6, 0xe9, 0x07, 0x5d, 0xf4, 0xeb, 0xa6, 0x81, 0xe3, 0x0e, 0xcf, 0xa3, 0xc1, 0xef, 0xe7, 0x34, 0xb2, 0x03, 0x73, 0x8a, 0x91, 0xf1, 0xad, 0x05, 0xc7, 0x0b, 0x43, 0x99, 0x12, 0x31, 0xc8, 0xc7, 0xc5, 0xa4, 0x3d, 0xcd, 0xe5, 0x4e, 0x6d, 0x24, 0xdd, - /* (2^417)P */ 0x61, 0x54, 0xd0, 0x95, 0x2c, 0x45, 0x75, 0xac, 0xb5, 0x1a, 0x9d, 0x11, 0xeb, 0xed, 0x6b, 0x57, 0xa3, 0xe6, 0xcd, 0x77, 0xd4, 0x83, 0x8e, 0x39, 0xf1, 0x0f, 0x98, 0xcb, 0x40, 0x02, 0x6e, 0x10, 0x82, 0x9e, 0xb4, 0x93, 0x76, 0xd7, 0x97, 0xa3, 0x53, 0x12, 0x86, 0xc6, 0x15, 0x78, 0x73, 0x93, 0xe7, 0x7f, 0xcf, 0x1f, 0xbf, 0xcd, 0xd2, 0x7a, - /* (2^418)P */ 0xc2, 0x21, 0xdc, 0xd5, 0x69, 0xff, 0xca, 0x49, 0x3a, 0xe1, 0xc3, 0x69, 0x41, 0x56, 0xc1, 0x76, 0x63, 0x24, 0xbd, 0x64, 0x1b, 0x3d, 0x92, 0xf9, 0x13, 0x04, 0x25, 0xeb, 0x27, 0xa6, 0xef, 0x39, 0x3a, 0x80, 0xe0, 0xf8, 0x27, 0xee, 0xc9, 0x49, 0x77, 0xef, 0x3f, 0x29, 0x3d, 0x5e, 0xe6, 0x66, 0x83, 0xd1, 0xf6, 0xfe, 0x9d, 0xbc, 0xf1, 0x96, - /* (2^419)P */ 0x6b, 0xc6, 0x99, 0x26, 0x3c, 0xf3, 0x63, 0xf9, 0xc7, 0x29, 0x8c, 0x52, 0x62, 0x2d, 0xdc, 0x8a, 0x66, 0xce, 0x2c, 0xa7, 0xe4, 0xf0, 0xd7, 0x37, 0x17, 0x1e, 0xe4, 0xa3, 0x53, 0x7b, 0x29, 0x8e, 0x60, 0x99, 0xf9, 0x0c, 0x7c, 0x6f, 0xa2, 0xcc, 0x9f, 0x80, 0xdd, 0x5e, 0x46, 0xaa, 0x0d, 0x6c, 0xc9, 0x6c, 0xf7, 0x78, 0x5b, 0x38, 0xe3, 0x24, - /* (2^420)P */ 0x4b, 0x75, 0x6a, 0x2f, 0x08, 0xe1, 0x72, 0x76, 0xab, 0x82, 0x96, 0xdf, 0x3b, 0x1f, 0x9b, 0xd8, 0xed, 0xdb, 0xcd, 0x15, 0x09, 0x5a, 0x1e, 0xb7, 0xc5, 0x26, 0x72, 0x07, 0x0c, 0x50, 0xcd, 0x3b, 0x4d, 0x3f, 0xa2, 0x67, 0xc2, 0x02, 0x61, 0x2e, 0x68, 0xe9, 0x6f, 0xf0, 0x21, 0x2a, 0xa7, 0x3b, 0x88, 0x04, 0x11, 0x64, 0x49, 0x0d, 0xb4, 0x46, - /* (2^421)P */ 0x63, 0x85, 0xf3, 0xc5, 0x2b, 0x5a, 0x9f, 0xf0, 0x17, 0xcb, 0x45, 0x0a, 0xf3, 0x6e, 0x7e, 0xb0, 0x7c, 0xbc, 0xf0, 0x4f, 0x3a, 0xb0, 0xbc, 0x36, 0x36, 0x52, 0x51, 0xcb, 0xfe, 0x9a, 0xcb, 0xe8, 0x7e, 0x4b, 0x06, 0x7f, 0xaa, 0x35, 0xc8, 0x0e, 0x7a, 0x30, 0xa3, 0xb1, 0x09, 0xbb, 0x86, 0x4c, 0xbe, 0xb8, 0xbd, 0xe0, 0x32, 0xa5, 0xd4, 0xf7, - /* (2^422)P */ 0x7d, 0x50, 0x37, 0x68, 0x4e, 0x22, 0xb2, 0x2c, 0xd5, 0x0f, 0x2b, 0x6d, 0xb1, 0x51, 0xf2, 0x82, 0xe9, 0x98, 0x7c, 0x50, 0xc7, 0x96, 0x7e, 0x0e, 0xdc, 0xb1, 0x0e, 0xb2, 0x63, 0x8c, 0x30, 0x37, 0x72, 0x21, 0x9c, 0x61, 0xc2, 0xa7, 0x33, 0xd9, 0xb2, 0x63, 0x93, 0xd1, 0x6b, 0x6a, 0x73, 0xa5, 0x58, 0x80, 0xff, 0x04, 0xc7, 0x83, 0x21, 0x29, - /* (2^423)P */ 0x29, 0x04, 0xbc, 0x99, 0x39, 0xc9, 0x58, 0xc9, 0x6b, 0x17, 0xe8, 0x90, 0xb3, 0xe6, 0xa9, 0xb6, 0x28, 0x9b, 0xcb, 0x3b, 0x28, 0x90, 0x68, 0x71, 0xff, 0xcf, 0x08, 0x78, 0xc9, 0x8d, 0xa8, 0x4e, 0x43, 0xd1, 0x1c, 0x9e, 0xa4, 0xe3, 0xdf, 0xbf, 0x92, 0xf4, 0xf9, 0x41, 0xba, 0x4d, 0x1c, 0xf9, 0xdd, 0x74, 0x76, 0x1c, 0x6e, 0x3e, 0x94, 0x87, - /* (2^424)P */ 0xe4, 0xda, 0xc5, 0xd7, 0xfb, 0x87, 0xc5, 0x4d, 0x6b, 0x19, 0xaa, 0xb9, 0xbc, 0x8c, 0xf2, 0x8a, 0xd8, 0x5d, 0xdb, 0x4d, 0xef, 0xa6, 0xf2, 0x65, 0xf1, 0x22, 0x9c, 0xf1, 0x46, 0x30, 0x71, 0x7c, 0xe4, 0x53, 0x8e, 0x55, 0x2e, 0x9c, 0x9a, 0x31, 0x2a, 0xc3, 0xab, 0x0f, 0xde, 0xe4, 0xbe, 0xd8, 0x96, 0x50, 0x6e, 0x0c, 0x54, 0x49, 0xe6, 0xec, - /* (2^425)P */ 0x3c, 0x1d, 0x5a, 0xa5, 0xda, 0xad, 0xdd, 0xc2, 0xae, 0xac, 0x6f, 0x86, 0x75, 0x31, 0x91, 0x64, 0x45, 0x9d, 0xa4, 0xf0, 0x81, 0xf1, 0x0e, 0xba, 0x74, 0xaf, 0x7b, 0xcd, 0x6f, 0xfe, 0xac, 0x4e, 0xdb, 0x4e, 0x45, 0x35, 0x36, 0xc5, 0xc0, 0x6c, 0x3d, 0x64, 0xf4, 0xd8, 0x07, 0x62, 0xd1, 0xec, 0xf3, 0xfc, 0x93, 0xc9, 0x28, 0x0c, 0x2c, 0xf3, - /* (2^426)P */ 0x0c, 0x69, 0x2b, 0x5c, 0xb6, 0x41, 0x69, 0xf1, 0xa4, 0xf1, 0x5b, 0x75, 0x4c, 0x42, 0x8b, 0x47, 0xeb, 0x69, 0xfb, 0xa8, 0xe6, 0xf9, 0x7b, 0x48, 0x50, 0xaf, 0xd3, 0xda, 0xb2, 0x35, 0x10, 0xb5, 0x5b, 0x40, 0x90, 0x39, 0xc9, 0x07, 0x06, 0x73, 0x26, 0x20, 0x95, 0x01, 0xa4, 0x2d, 0xf0, 0xe7, 0x2e, 0x00, 0x7d, 0x41, 0x09, 0x68, 0x13, 0xc4, - /* (2^427)P */ 0xbe, 0x38, 0x78, 0xcf, 0xc9, 0x4f, 0x36, 0xca, 0x09, 0x61, 0x31, 0x3c, 0x57, 0x2e, 0xec, 0x17, 0xa4, 0x7d, 0x19, 0x2b, 0x9b, 0x5b, 0xbe, 0x8f, 0xd6, 0xc5, 0x2f, 0x86, 0xf2, 0x64, 0x76, 0x17, 0x00, 0x6e, 0x1a, 0x8c, 0x67, 0x1b, 0x68, 0xeb, 0x15, 0xa2, 0xd6, 0x09, 0x91, 0xdd, 0x23, 0x0d, 0x98, 0xb2, 0x10, 0x19, 0x55, 0x9b, 0x63, 0xf2, - /* (2^428)P */ 0x51, 0x1f, 0x93, 0xea, 0x2a, 0x3a, 0xfa, 0x41, 0xc0, 0x57, 0xfb, 0x74, 0xa6, 0x65, 0x09, 0x56, 0x14, 0xb6, 0x12, 0xaa, 0xb3, 0x1a, 0x8d, 0x3b, 0x76, 0x91, 0x7a, 0x23, 0x56, 0x9c, 0x6a, 0xc0, 0xe0, 0x3c, 0x3f, 0xb5, 0x1a, 0xf4, 0x57, 0x71, 0x93, 0x2b, 0xb1, 0xa7, 0x70, 0x57, 0x22, 0x80, 0xf5, 0xb8, 0x07, 0x77, 0x87, 0x0c, 0xbe, 0x83, - /* (2^429)P */ 0x07, 0x9b, 0x0e, 0x52, 0x38, 0x63, 0x13, 0x86, 0x6a, 0xa6, 0xb4, 0xd2, 0x60, 0x68, 0x9a, 0x99, 0x82, 0x0a, 0x04, 0x5f, 0x89, 0x7a, 0x1a, 0x2a, 0xae, 0x2d, 0x35, 0x0c, 0x1e, 0xad, 0xef, 0x4f, 0x9a, 0xfc, 0xc8, 0xd9, 0xcf, 0x9d, 0x48, 0x71, 0xa5, 0x55, 0x79, 0x73, 0x39, 0x1b, 0xd8, 0x73, 0xec, 0x9b, 0x03, 0x16, 0xd8, 0x82, 0xf7, 0x67, - /* (2^430)P */ 0x52, 0x67, 0x42, 0x21, 0xc9, 0x40, 0x78, 0x82, 0x2b, 0x95, 0x2d, 0x20, 0x92, 0xd1, 0xe2, 0x61, 0x25, 0xb0, 0xc6, 0x9c, 0x20, 0x59, 0x8e, 0x28, 0x6f, 0xf3, 0xfd, 0xd3, 0xc1, 0x32, 0x43, 0xc9, 0xa6, 0x08, 0x7a, 0x77, 0x9c, 0x4c, 0x8c, 0x33, 0x71, 0x13, 0x69, 0xe3, 0x52, 0x30, 0xa7, 0xf5, 0x07, 0x67, 0xac, 0xad, 0x46, 0x8a, 0x26, 0x25, - /* (2^431)P */ 0xda, 0x86, 0xc4, 0xa2, 0x71, 0x56, 0xdd, 0xd2, 0x48, 0xd3, 0xde, 0x42, 0x63, 0x01, 0xa7, 0x2c, 0x92, 0x83, 0x6f, 0x2e, 0xd8, 0x1e, 0x3f, 0xc1, 0xc5, 0x42, 0x4e, 0x34, 0x19, 0x54, 0x6e, 0x35, 0x2c, 0x51, 0x2e, 0xfd, 0x0f, 0x9a, 0x45, 0x66, 0x5e, 0x4a, 0x83, 0xda, 0x0a, 0x53, 0x68, 0x63, 0xfa, 0xce, 0x47, 0x20, 0xd3, 0x34, 0xba, 0x0d, - /* (2^432)P */ 0xd0, 0xe9, 0x64, 0xa4, 0x61, 0x4b, 0x86, 0xe5, 0x93, 0x6f, 0xda, 0x0e, 0x31, 0x7e, 0x6e, 0xe3, 0xc6, 0x73, 0xd8, 0xa3, 0x08, 0x57, 0x52, 0xcd, 0x51, 0x63, 0x1d, 0x9f, 0x93, 0x00, 0x62, 0x91, 0x26, 0x21, 0xa7, 0xdd, 0x25, 0x0f, 0x09, 0x0d, 0x35, 0xad, 0xcf, 0x11, 0x8e, 0x6e, 0xe8, 0xae, 0x1d, 0x95, 0xcb, 0x88, 0xf8, 0x70, 0x7b, 0x91, - /* (2^433)P */ 0x0c, 0x19, 0x5c, 0xd9, 0x8d, 0xda, 0x9d, 0x2c, 0x90, 0x54, 0x65, 0xe8, 0xb6, 0x35, 0x50, 0xae, 0xea, 0xae, 0x43, 0xb7, 0x1e, 0x99, 0x8b, 0x4c, 0x36, 0x4e, 0xe4, 0x1e, 0xc4, 0x64, 0x43, 0xb6, 0xeb, 0xd4, 0xe9, 0x60, 0x22, 0xee, 0xcf, 0xb8, 0x52, 0x1b, 0xf0, 0x04, 0xce, 0xbc, 0x2b, 0xf0, 0xbe, 0xcd, 0x44, 0x74, 0x1e, 0x1f, 0x63, 0xf9, - /* (2^434)P */ 0xe1, 0x3f, 0x95, 0x94, 0xb2, 0xb6, 0x31, 0xa9, 0x1b, 0xdb, 0xfd, 0x0e, 0xdb, 0xdd, 0x1a, 0x22, 0x78, 0x60, 0x9f, 0x75, 0x5f, 0x93, 0x06, 0x0c, 0xd8, 0xbb, 0xa2, 0x85, 0x2b, 0x5e, 0xc0, 0x9b, 0xa8, 0x5d, 0xaf, 0x93, 0x91, 0x91, 0x47, 0x41, 0x1a, 0xfc, 0xb4, 0x51, 0x85, 0xad, 0x69, 0x4d, 0x73, 0x69, 0xd5, 0x4e, 0x82, 0xfb, 0x66, 0xcb, - /* (2^435)P */ 0x7c, 0xbe, 0xc7, 0x51, 0xc4, 0x74, 0x6e, 0xab, 0xfd, 0x41, 0x4f, 0x76, 0x4f, 0x24, 0x03, 0xd6, 0x2a, 0xb7, 0x42, 0xb4, 0xda, 0x41, 0x2c, 0x82, 0x48, 0x4c, 0x7f, 0x6f, 0x25, 0x5d, 0x36, 0xd4, 0x69, 0xf5, 0xef, 0x02, 0x81, 0xea, 0x6f, 0x19, 0x69, 0xe8, 0x6f, 0x5b, 0x2f, 0x14, 0x0e, 0x6f, 0x89, 0xb4, 0xb5, 0xd8, 0xae, 0xef, 0x7b, 0x87, - /* (2^436)P */ 0xe9, 0x91, 0xa0, 0x8b, 0xc9, 0xe0, 0x01, 0x90, 0x37, 0xc1, 0x6f, 0xdc, 0x5e, 0xf7, 0xbf, 0x43, 0x00, 0xaa, 0x10, 0x76, 0x76, 0x18, 0x6e, 0x19, 0x1e, 0x94, 0x50, 0x11, 0x0a, 0xd1, 0xe2, 0xdb, 0x08, 0x21, 0xa0, 0x1f, 0xdb, 0x54, 0xfe, 0xea, 0x6e, 0xa3, 0x68, 0x56, 0x87, 0x0b, 0x22, 0x4e, 0x66, 0xf3, 0x82, 0x82, 0x00, 0xcd, 0xd4, 0x12, - /* (2^437)P */ 0x25, 0x8e, 0x24, 0x77, 0x64, 0x4c, 0xe0, 0xf8, 0x18, 0xc0, 0xdc, 0xc7, 0x1b, 0x35, 0x65, 0xde, 0x67, 0x41, 0x5e, 0x6f, 0x90, 0x82, 0xa7, 0x2e, 0x6d, 0xf1, 0x47, 0xb4, 0x92, 0x9c, 0xfd, 0x6a, 0x9a, 0x41, 0x36, 0x20, 0x24, 0x58, 0xc3, 0x59, 0x07, 0x9a, 0xfa, 0x9f, 0x03, 0xcb, 0xc7, 0x69, 0x37, 0x60, 0xe1, 0xab, 0x13, 0x72, 0xee, 0xa2, - /* (2^438)P */ 0x74, 0x78, 0xfb, 0x13, 0xcb, 0x8e, 0x37, 0x1a, 0xf6, 0x1d, 0x17, 0x83, 0x06, 0xd4, 0x27, 0x06, 0x21, 0xe8, 0xda, 0xdf, 0x6b, 0xf3, 0x83, 0x6b, 0x34, 0x8a, 0x8c, 0xee, 0x01, 0x05, 0x5b, 0xed, 0xd3, 0x1b, 0xc9, 0x64, 0x83, 0xc9, 0x49, 0xc2, 0x57, 0x1b, 0xdd, 0xcf, 0xf1, 0x9d, 0x63, 0xee, 0x1c, 0x0d, 0xa0, 0x0a, 0x73, 0x1f, 0x5b, 0x32, - /* (2^439)P */ 0x29, 0xce, 0x1e, 0xc0, 0x6a, 0xf5, 0xeb, 0x99, 0x5a, 0x39, 0x23, 0xe9, 0xdd, 0xac, 0x44, 0x88, 0xbc, 0x80, 0x22, 0xde, 0x2c, 0xcb, 0xa8, 0x3b, 0xff, 0xf7, 0x6f, 0xc7, 0x71, 0x72, 0xa8, 0xa3, 0xf6, 0x4d, 0xc6, 0x75, 0xda, 0x80, 0xdc, 0xd9, 0x30, 0xd9, 0x07, 0x50, 0x5a, 0x54, 0x7d, 0xda, 0x39, 0x6f, 0x78, 0x94, 0xbf, 0x25, 0x98, 0xdc, - /* (2^440)P */ 0x01, 0x26, 0x62, 0x44, 0xfb, 0x0f, 0x11, 0x72, 0x73, 0x0a, 0x16, 0xc7, 0x16, 0x9c, 0x9b, 0x37, 0xd8, 0xff, 0x4f, 0xfe, 0x57, 0xdb, 0xae, 0xef, 0x7d, 0x94, 0x30, 0x04, 0x70, 0x83, 0xde, 0x3c, 0xd4, 0xb5, 0x70, 0xda, 0xa7, 0x55, 0xc8, 0x19, 0xe1, 0x36, 0x15, 0x61, 0xe7, 0x3b, 0x7d, 0x85, 0xbb, 0xf3, 0x42, 0x5a, 0x94, 0xf4, 0x53, 0x2a, - /* (2^441)P */ 0x14, 0x60, 0xa6, 0x0b, 0x83, 0xe1, 0x23, 0x77, 0xc0, 0xce, 0x50, 0xed, 0x35, 0x8d, 0x98, 0x99, 0x7d, 0xf5, 0x8d, 0xce, 0x94, 0x25, 0xc8, 0x0f, 0x6d, 0xfa, 0x4a, 0xa4, 0x3a, 0x1f, 0x66, 0xfb, 0x5a, 0x64, 0xaf, 0x8b, 0x54, 0x54, 0x44, 0x3f, 0x5b, 0x88, 0x61, 0xe4, 0x48, 0x45, 0x26, 0x20, 0xbe, 0x0d, 0x06, 0xbb, 0x65, 0x59, 0xe1, 0x36, - /* (2^442)P */ 0xb7, 0x98, 0xce, 0xa3, 0xe3, 0xee, 0x11, 0x1b, 0x9e, 0x24, 0x59, 0x75, 0x31, 0x37, 0x44, 0x6f, 0x6b, 0x9e, 0xec, 0xb7, 0x44, 0x01, 0x7e, 0xab, 0xbb, 0x69, 0x5d, 0x11, 0xb0, 0x30, 0x64, 0xea, 0x91, 0xb4, 0x7a, 0x8c, 0x02, 0x4c, 0xb9, 0x10, 0xa7, 0xc7, 0x79, 0xe6, 0xdc, 0x77, 0xe3, 0xc8, 0xef, 0x3e, 0xf9, 0x38, 0x81, 0xce, 0x9a, 0xb2, - /* (2^443)P */ 0x91, 0x12, 0x76, 0xd0, 0x10, 0xb4, 0xaf, 0xe1, 0x89, 0x3a, 0x93, 0x6b, 0x5c, 0x19, 0x5f, 0x24, 0xed, 0x04, 0x92, 0xc7, 0xf0, 0x00, 0x08, 0xc1, 0x92, 0xff, 0x90, 0xdb, 0xb2, 0xbf, 0xdf, 0x49, 0xcd, 0xbd, 0x5c, 0x6e, 0xbf, 0x16, 0xbb, 0x61, 0xf9, 0x20, 0x33, 0x35, 0x93, 0x11, 0xbc, 0x59, 0x69, 0xce, 0x18, 0x9f, 0xf8, 0x7b, 0xa1, 0x6e, - /* (2^444)P */ 0xa1, 0xf4, 0xaf, 0xad, 0xf8, 0xe6, 0x99, 0xd2, 0xa1, 0x4d, 0xde, 0x56, 0xc9, 0x7b, 0x0b, 0x11, 0x3e, 0xbf, 0x89, 0x1a, 0x9a, 0x90, 0xe5, 0xe2, 0xa6, 0x37, 0x88, 0xa1, 0x68, 0x59, 0xae, 0x8c, 0xec, 0x02, 0x14, 0x8d, 0xb7, 0x2e, 0x25, 0x75, 0x7f, 0x76, 0x1a, 0xd3, 0x4d, 0xad, 0x8a, 0x00, 0x6c, 0x96, 0x49, 0xa4, 0xc3, 0x2e, 0x5c, 0x7b, - /* (2^445)P */ 0x26, 0x53, 0xf7, 0xda, 0xa8, 0x01, 0x14, 0xb1, 0x63, 0xe3, 0xc3, 0x89, 0x88, 0xb0, 0x85, 0x40, 0x2b, 0x26, 0x9a, 0x10, 0x1a, 0x70, 0x33, 0xf4, 0x50, 0x9d, 0x4d, 0xd8, 0x64, 0xc6, 0x0f, 0xe1, 0x17, 0xc8, 0x10, 0x4b, 0xfc, 0xa0, 0xc9, 0xba, 0x2c, 0x98, 0x09, 0xf5, 0x84, 0xb6, 0x7c, 0x4e, 0xa3, 0xe3, 0x81, 0x1b, 0x32, 0x60, 0x02, 0xdd, - /* (2^446)P */ 0xa3, 0xe5, 0x86, 0xd4, 0x43, 0xa8, 0xd1, 0x98, 0x9d, 0x9d, 0xdb, 0x04, 0xcf, 0x6e, 0x35, 0x05, 0x30, 0x53, 0x3b, 0xbc, 0x90, 0x00, 0x4a, 0xc5, 0x40, 0x2a, 0x0f, 0xde, 0x1a, 0xd7, 0x36, 0x27, 0x44, 0x62, 0xa6, 0xac, 0x9d, 0xd2, 0x70, 0x69, 0x14, 0x39, 0x9b, 0xd1, 0xc3, 0x0a, 0x3a, 0x82, 0x0e, 0xf1, 0x94, 0xd7, 0x42, 0x94, 0xd5, 0x7d, - /* (2^447)P */ 0x04, 0xc0, 0x6e, 0x12, 0x90, 0x70, 0xf9, 0xdf, 0xf7, 0xc9, 0x86, 0xc0, 0xe6, 0x92, 0x8b, 0x0a, 0xa1, 0xc1, 0x3b, 0xcc, 0x33, 0xb7, 0xf0, 0xeb, 0x51, 0x50, 0x80, 0x20, 0x69, 0x1c, 0x4f, 0x89, 0x05, 0x1e, 0xe4, 0x7a, 0x0a, 0xc2, 0xf0, 0xf5, 0x78, 0x91, 0x76, 0x34, 0x45, 0xdc, 0x24, 0x53, 0x24, 0x98, 0xe2, 0x73, 0x6f, 0xe6, 0x46, 0x67, -} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/constants.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/constants.go deleted file mode 100644 index b6b236e5d3..0000000000 --- a/vendor/github.com/cloudflare/circl/ecc/goldilocks/constants.go +++ /dev/null @@ -1,71 +0,0 @@ -package goldilocks - -import fp "github.com/cloudflare/circl/math/fp448" - -var ( - // genX is the x-coordinate of the generator of Goldilocks curve. - genX = fp.Elt{ - 0x5e, 0xc0, 0x0c, 0xc7, 0x2b, 0xa8, 0x26, 0x26, - 0x8e, 0x93, 0x00, 0x8b, 0xe1, 0x80, 0x3b, 0x43, - 0x11, 0x65, 0xb6, 0x2a, 0xf7, 0x1a, 0xae, 0x12, - 0x64, 0xa4, 0xd3, 0xa3, 0x24, 0xe3, 0x6d, 0xea, - 0x67, 0x17, 0x0f, 0x47, 0x70, 0x65, 0x14, 0x9e, - 0xda, 0x36, 0xbf, 0x22, 0xa6, 0x15, 0x1d, 0x22, - 0xed, 0x0d, 0xed, 0x6b, 0xc6, 0x70, 0x19, 0x4f, - } - // genY is the y-coordinate of the generator of Goldilocks curve. - genY = fp.Elt{ - 0x14, 0xfa, 0x30, 0xf2, 0x5b, 0x79, 0x08, 0x98, - 0xad, 0xc8, 0xd7, 0x4e, 0x2c, 0x13, 0xbd, 0xfd, - 0xc4, 0x39, 0x7c, 0xe6, 0x1c, 0xff, 0xd3, 0x3a, - 0xd7, 0xc2, 0xa0, 0x05, 0x1e, 0x9c, 0x78, 0x87, - 0x40, 0x98, 0xa3, 0x6c, 0x73, 0x73, 0xea, 0x4b, - 0x62, 0xc7, 0xc9, 0x56, 0x37, 0x20, 0x76, 0x88, - 0x24, 0xbc, 0xb6, 0x6e, 0x71, 0x46, 0x3f, 0x69, - } - // paramD is -39081 in Fp. - paramD = fp.Elt{ - 0x56, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - } - // order is 2^446-0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d, - // which is the number of points in the prime subgroup. - order = Scalar{ - 0xf3, 0x44, 0x58, 0xab, 0x92, 0xc2, 0x78, 0x23, - 0x55, 0x8f, 0xc5, 0x8d, 0x72, 0xc2, 0x6c, 0x21, - 0x90, 0x36, 0xd6, 0xae, 0x49, 0xdb, 0x4e, 0xc4, - 0xe9, 0x23, 0xca, 0x7c, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, - } - // residue448 is 2^448 mod order. - residue448 = [4]uint64{ - 0x721cf5b5529eec34, 0x7a4cf635c8e9c2ab, 0xeec492d944a725bf, 0x20cd77058, - } - // invFour is 1/4 mod order. - invFour = Scalar{ - 0x3d, 0x11, 0xd6, 0xaa, 0xa4, 0x30, 0xde, 0x48, - 0xd5, 0x63, 0x71, 0xa3, 0x9c, 0x30, 0x5b, 0x08, - 0xa4, 0x8d, 0xb5, 0x6b, 0xd2, 0xb6, 0x13, 0x71, - 0xfa, 0x88, 0x32, 0xdf, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, - } - // paramDTwist is -39082 in Fp. The D parameter of the twist curve. - paramDTwist = fp.Elt{ - 0x55, 0x67, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - } -) diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.go deleted file mode 100644 index 5a939100d2..0000000000 --- a/vendor/github.com/cloudflare/circl/ecc/goldilocks/curve.go +++ /dev/null @@ -1,80 +0,0 @@ -// Package goldilocks provides elliptic curve operations over the goldilocks curve. -package goldilocks - -import fp "github.com/cloudflare/circl/math/fp448" - -// Curve is the Goldilocks curve x^2+y^2=z^2-39081x^2y^2. -type Curve struct{} - -// Identity returns the identity point. -func (Curve) Identity() *Point { - return &Point{ - y: fp.One(), - z: fp.One(), - } -} - -// IsOnCurve returns true if the point lies on the curve. -func (Curve) IsOnCurve(P *Point) bool { - x2, y2, t, t2, z2 := &fp.Elt{}, &fp.Elt{}, &fp.Elt{}, &fp.Elt{}, &fp.Elt{} - rhs, lhs := &fp.Elt{}, &fp.Elt{} - fp.Mul(t, &P.ta, &P.tb) // t = ta*tb - fp.Sqr(x2, &P.x) // x^2 - fp.Sqr(y2, &P.y) // y^2 - fp.Sqr(z2, &P.z) // z^2 - fp.Sqr(t2, t) // t^2 - fp.Add(lhs, x2, y2) // x^2 + y^2 - fp.Mul(rhs, t2, ¶mD) // dt^2 - fp.Add(rhs, rhs, z2) // z^2 + dt^2 - fp.Sub(lhs, lhs, rhs) // x^2 + y^2 - (z^2 + dt^2) - eq0 := fp.IsZero(lhs) - - fp.Mul(lhs, &P.x, &P.y) // xy - fp.Mul(rhs, t, &P.z) // tz - fp.Sub(lhs, lhs, rhs) // xy - tz - eq1 := fp.IsZero(lhs) - return eq0 && eq1 -} - -// Generator returns the generator point. -func (Curve) Generator() *Point { - return &Point{ - x: genX, - y: genY, - z: fp.One(), - ta: genX, - tb: genY, - } -} - -// Order returns the number of points in the prime subgroup. -func (Curve) Order() Scalar { return order } - -// Double returns 2P. -func (Curve) Double(P *Point) *Point { R := *P; R.Double(); return &R } - -// Add returns P+Q. -func (Curve) Add(P, Q *Point) *Point { R := *P; R.Add(Q); return &R } - -// ScalarMult returns kP. This function runs in constant time. -func (e Curve) ScalarMult(k *Scalar, P *Point) *Point { - k4 := &Scalar{} - k4.divBy4(k) - return e.pull(twistCurve{}.ScalarMult(k4, e.push(P))) -} - -// ScalarBaseMult returns kG where G is the generator point. This function runs in constant time. -func (e Curve) ScalarBaseMult(k *Scalar) *Point { - k4 := &Scalar{} - k4.divBy4(k) - return e.pull(twistCurve{}.ScalarBaseMult(k4)) -} - -// CombinedMult returns mG+nP, where G is the generator point. This function is non-constant time. -func (e Curve) CombinedMult(m, n *Scalar, P *Point) *Point { - m4 := &Scalar{} - n4 := &Scalar{} - m4.divBy4(m) - n4.divBy4(n) - return e.pull(twistCurve{}.CombinedMult(m4, n4, twistCurve{}.pull(P))) -} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/isogeny.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/isogeny.go deleted file mode 100644 index b1daab851c..0000000000 --- a/vendor/github.com/cloudflare/circl/ecc/goldilocks/isogeny.go +++ /dev/null @@ -1,52 +0,0 @@ -package goldilocks - -import fp "github.com/cloudflare/circl/math/fp448" - -func (Curve) pull(P *twistPoint) *Point { return twistCurve{}.push(P) } -func (twistCurve) pull(P *Point) *twistPoint { return Curve{}.push(P) } - -// push sends a point on the Goldilocks curve to a point on the twist curve. -func (Curve) push(P *Point) *twistPoint { - Q := &twistPoint{} - Px, Py, Pz := &P.x, &P.y, &P.z - a, b, c, d, e, f, g, h := &Q.x, &Q.y, &Q.z, &fp.Elt{}, &Q.ta, &Q.x, &Q.y, &Q.tb - fp.Add(e, Px, Py) // x+y - fp.Sqr(a, Px) // A = x^2 - fp.Sqr(b, Py) // B = y^2 - fp.Sqr(c, Pz) // z^2 - fp.Add(c, c, c) // C = 2*z^2 - *d = *a // D = A - fp.Sqr(e, e) // (x+y)^2 - fp.Sub(e, e, a) // (x+y)^2-A - fp.Sub(e, e, b) // E = (x+y)^2-A-B - fp.Add(h, b, d) // H = B+D - fp.Sub(g, b, d) // G = B-D - fp.Sub(f, c, h) // F = C-H - fp.Mul(&Q.z, f, g) // Z = F * G - fp.Mul(&Q.x, e, f) // X = E * F - fp.Mul(&Q.y, g, h) // Y = G * H, // T = E * H - return Q -} - -// push sends a point on the twist curve to a point on the Goldilocks curve. -func (twistCurve) push(P *twistPoint) *Point { - Q := &Point{} - Px, Py, Pz := &P.x, &P.y, &P.z - a, b, c, d, e, f, g, h := &Q.x, &Q.y, &Q.z, &fp.Elt{}, &Q.ta, &Q.x, &Q.y, &Q.tb - fp.Add(e, Px, Py) // x+y - fp.Sqr(a, Px) // A = x^2 - fp.Sqr(b, Py) // B = y^2 - fp.Sqr(c, Pz) // z^2 - fp.Add(c, c, c) // C = 2*z^2 - fp.Neg(d, a) // D = -A - fp.Sqr(e, e) // (x+y)^2 - fp.Sub(e, e, a) // (x+y)^2-A - fp.Sub(e, e, b) // E = (x+y)^2-A-B - fp.Add(h, b, d) // H = B+D - fp.Sub(g, b, d) // G = B-D - fp.Sub(f, c, h) // F = C-H - fp.Mul(&Q.z, f, g) // Z = F * G - fp.Mul(&Q.x, e, f) // X = E * F - fp.Mul(&Q.y, g, h) // Y = G * H, // T = E * H - return Q -} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/point.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/point.go deleted file mode 100644 index a3ddc7cc0f..0000000000 --- a/vendor/github.com/cloudflare/circl/ecc/goldilocks/point.go +++ /dev/null @@ -1,171 +0,0 @@ -package goldilocks - -import ( - "errors" - "fmt" - - fp "github.com/cloudflare/circl/math/fp448" -) - -// Point is a point on the Goldilocks Curve. -type Point struct{ x, y, z, ta, tb fp.Elt } - -func (P Point) String() string { - return fmt.Sprintf("x: %v\ny: %v\nz: %v\nta: %v\ntb: %v", P.x, P.y, P.z, P.ta, P.tb) -} - -// FromAffine creates a point from affine coordinates. -func FromAffine(x, y *fp.Elt) (*Point, error) { - P := &Point{ - x: *x, - y: *y, - z: fp.One(), - ta: *x, - tb: *y, - } - if !(Curve{}).IsOnCurve(P) { - return P, errors.New("point not on curve") - } - return P, nil -} - -// isLessThan returns true if 0 <= x < y, and assumes that slices are of the -// same length and are interpreted in little-endian order. -func isLessThan(x, y []byte) bool { - i := len(x) - 1 - for i > 0 && x[i] == y[i] { - i-- - } - return x[i] < y[i] -} - -// FromBytes returns a point from the input buffer. -func FromBytes(in []byte) (*Point, error) { - if len(in) < fp.Size+1 { - return nil, errors.New("wrong input length") - } - var err = errors.New("invalid decoding") - P := &Point{} - signX := in[fp.Size] >> 7 - copy(P.y[:], in[:fp.Size]) - p := fp.P() - if !isLessThan(P.y[:], p[:]) { - return nil, err - } - - u, v := &fp.Elt{}, &fp.Elt{} - one := fp.One() - fp.Sqr(u, &P.y) // u = y^2 - fp.Mul(v, u, ¶mD) // v = dy^2 - fp.Sub(u, u, &one) // u = y^2-1 - fp.Sub(v, v, &one) // v = dy^2-1 - isQR := fp.InvSqrt(&P.x, u, v) // x = sqrt(u/v) - if !isQR { - return nil, err - } - fp.Modp(&P.x) // x = x mod p - if fp.IsZero(&P.x) && signX == 1 { - return nil, err - } - if signX != (P.x[0] & 1) { - fp.Neg(&P.x, &P.x) - } - P.ta = P.x - P.tb = P.y - P.z = fp.One() - return P, nil -} - -// IsIdentity returns true is P is the identity Point. -func (P *Point) IsIdentity() bool { - return fp.IsZero(&P.x) && !fp.IsZero(&P.y) && !fp.IsZero(&P.z) && P.y == P.z -} - -// IsEqual returns true if P is equivalent to Q. -func (P *Point) IsEqual(Q *Point) bool { - l, r := &fp.Elt{}, &fp.Elt{} - fp.Mul(l, &P.x, &Q.z) - fp.Mul(r, &Q.x, &P.z) - fp.Sub(l, l, r) - b := fp.IsZero(l) - fp.Mul(l, &P.y, &Q.z) - fp.Mul(r, &Q.y, &P.z) - fp.Sub(l, l, r) - b = b && fp.IsZero(l) - fp.Mul(l, &P.ta, &P.tb) - fp.Mul(l, l, &Q.z) - fp.Mul(r, &Q.ta, &Q.tb) - fp.Mul(r, r, &P.z) - fp.Sub(l, l, r) - b = b && fp.IsZero(l) - return b -} - -// Neg obtains the inverse of the Point. -func (P *Point) Neg() { fp.Neg(&P.x, &P.x); fp.Neg(&P.ta, &P.ta) } - -// ToAffine returns the x,y affine coordinates of P. -func (P *Point) ToAffine() (x, y fp.Elt) { - fp.Inv(&P.z, &P.z) // 1/z - fp.Mul(&P.x, &P.x, &P.z) // x/z - fp.Mul(&P.y, &P.y, &P.z) // y/z - fp.Modp(&P.x) - fp.Modp(&P.y) - fp.SetOne(&P.z) - P.ta = P.x - P.tb = P.y - return P.x, P.y -} - -// ToBytes stores P into a slice of bytes. -func (P *Point) ToBytes(out []byte) error { - if len(out) < fp.Size+1 { - return errors.New("invalid decoding") - } - x, y := P.ToAffine() - out[fp.Size] = (x[0] & 1) << 7 - return fp.ToBytes(out[:fp.Size], &y) -} - -// MarshalBinary encodes the receiver into a binary form and returns the result. -func (P *Point) MarshalBinary() (data []byte, err error) { - data = make([]byte, fp.Size+1) - err = P.ToBytes(data[:fp.Size+1]) - return data, err -} - -// UnmarshalBinary must be able to decode the form generated by MarshalBinary. -func (P *Point) UnmarshalBinary(data []byte) error { Q, err := FromBytes(data); *P = *Q; return err } - -// Double sets P = 2Q. -func (P *Point) Double() { P.Add(P) } - -// Add sets P =P+Q.. -func (P *Point) Add(Q *Point) { - // This is formula (5) from "Twisted Edwards Curves Revisited" by - // Hisil H., Wong K.KH., Carter G., Dawson E. (2008) - // https://doi.org/10.1007/978-3-540-89255-7_20 - x1, y1, z1, ta1, tb1 := &P.x, &P.y, &P.z, &P.ta, &P.tb - x2, y2, z2, ta2, tb2 := &Q.x, &Q.y, &Q.z, &Q.ta, &Q.tb - x3, y3, z3, E, H := &P.x, &P.y, &P.z, &P.ta, &P.tb - A, B, C, D := &fp.Elt{}, &fp.Elt{}, &fp.Elt{}, &fp.Elt{} - t1, t2, F, G := C, D, &fp.Elt{}, &fp.Elt{} - fp.Mul(t1, ta1, tb1) // t1 = ta1*tb1 - fp.Mul(t2, ta2, tb2) // t2 = ta2*tb2 - fp.Mul(A, x1, x2) // A = x1*x2 - fp.Mul(B, y1, y2) // B = y1*y2 - fp.Mul(C, t1, t2) // t1*t2 - fp.Mul(C, C, ¶mD) // C = d*t1*t2 - fp.Mul(D, z1, z2) // D = z1*z2 - fp.Add(F, x1, y1) // x1+y1 - fp.Add(E, x2, y2) // x2+y2 - fp.Mul(E, E, F) // (x1+y1)*(x2+y2) - fp.Sub(E, E, A) // (x1+y1)*(x2+y2)-A - fp.Sub(E, E, B) // E = (x1+y1)*(x2+y2)-A-B - fp.Sub(F, D, C) // F = D-C - fp.Add(G, D, C) // G = D+C - fp.Sub(H, B, A) // H = B-A - fp.Mul(z3, F, G) // Z = F * G - fp.Mul(x3, E, F) // X = E * F - fp.Mul(y3, G, H) // Y = G * H, T = E * H -} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go deleted file mode 100644 index 852d74f3ac..0000000000 --- a/vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go +++ /dev/null @@ -1,203 +0,0 @@ -package goldilocks - -import ( - "encoding/binary" - "math/bits" -) - -// ScalarSize is the size (in bytes) of scalars. -const ScalarSize = 56 // 448 / 8 - -//_N is the number of 64-bit words to store scalars. -const _N = 7 // 448 / 64 - -// Scalar represents a positive integer stored in little-endian order. -type Scalar [ScalarSize]byte - -type scalar64 [_N]uint64 - -func (z *scalar64) fromScalar(x *Scalar) { - z[0] = binary.LittleEndian.Uint64(x[0*8 : 1*8]) - z[1] = binary.LittleEndian.Uint64(x[1*8 : 2*8]) - z[2] = binary.LittleEndian.Uint64(x[2*8 : 3*8]) - z[3] = binary.LittleEndian.Uint64(x[3*8 : 4*8]) - z[4] = binary.LittleEndian.Uint64(x[4*8 : 5*8]) - z[5] = binary.LittleEndian.Uint64(x[5*8 : 6*8]) - z[6] = binary.LittleEndian.Uint64(x[6*8 : 7*8]) -} - -func (z *scalar64) toScalar(x *Scalar) { - binary.LittleEndian.PutUint64(x[0*8:1*8], z[0]) - binary.LittleEndian.PutUint64(x[1*8:2*8], z[1]) - binary.LittleEndian.PutUint64(x[2*8:3*8], z[2]) - binary.LittleEndian.PutUint64(x[3*8:4*8], z[3]) - binary.LittleEndian.PutUint64(x[4*8:5*8], z[4]) - binary.LittleEndian.PutUint64(x[5*8:6*8], z[5]) - binary.LittleEndian.PutUint64(x[6*8:7*8], z[6]) -} - -// add calculates z = x + y. Assumes len(z) > max(len(x),len(y)). -func add(z, x, y []uint64) uint64 { - l, L, zz := len(x), len(y), y - if l > L { - l, L, zz = L, l, x - } - c := uint64(0) - for i := 0; i < l; i++ { - z[i], c = bits.Add64(x[i], y[i], c) - } - for i := l; i < L; i++ { - z[i], c = bits.Add64(zz[i], 0, c) - } - return c -} - -// sub calculates z = x - y. Assumes len(z) > max(len(x),len(y)). -func sub(z, x, y []uint64) uint64 { - l, L, zz := len(x), len(y), y - if l > L { - l, L, zz = L, l, x - } - c := uint64(0) - for i := 0; i < l; i++ { - z[i], c = bits.Sub64(x[i], y[i], c) - } - for i := l; i < L; i++ { - z[i], c = bits.Sub64(zz[i], 0, c) - } - return c -} - -// mulWord calculates z = x * y. Assumes len(z) >= len(x)+1. -func mulWord(z, x []uint64, y uint64) { - for i := range z { - z[i] = 0 - } - carry := uint64(0) - for i := range x { - hi, lo := bits.Mul64(x[i], y) - lo, cc := bits.Add64(lo, z[i], 0) - hi, _ = bits.Add64(hi, 0, cc) - z[i], cc = bits.Add64(lo, carry, 0) - carry, _ = bits.Add64(hi, 0, cc) - } - z[len(x)] = carry -} - -// Cmov moves x into z if b=1. -func (z *scalar64) Cmov(b uint64, x *scalar64) { - m := uint64(0) - b - for i := range z { - z[i] = (z[i] &^ m) | (x[i] & m) - } -} - -// leftShift shifts to the left the words of z returning the more significant word. -func (z *scalar64) leftShift(low uint64) uint64 { - high := z[_N-1] - for i := _N - 1; i > 0; i-- { - z[i] = z[i-1] - } - z[0] = low - return high -} - -// reduceOneWord calculates z = z + 2^448*x such that the result fits in a Scalar. -func (z *scalar64) reduceOneWord(x uint64) { - prod := (&scalar64{})[:] - mulWord(prod, residue448[:], x) - cc := add(z[:], z[:], prod) - mulWord(prod, residue448[:], cc) - add(z[:], z[:], prod) -} - -// modOrder reduces z mod order. -func (z *scalar64) modOrder() { - var o64, x scalar64 - o64.fromScalar(&order) - // Performs: while (z >= order) { z = z-order } - // At most 8 (eight) iterations reduce 3 bits by subtracting. - for i := 0; i < 8; i++ { - c := sub(x[:], z[:], o64[:]) // (c || x) = z-order - z.Cmov(1-c, &x) // if c != 0 { z = x } - } -} - -// FromBytes stores z = x mod order, where x is a number stored in little-endian order. -func (z *Scalar) FromBytes(x []byte) { - n := len(x) - nCeil := (n + 7) >> 3 - for i := range z { - z[i] = 0 - } - if nCeil < _N { - copy(z[:], x) - return - } - copy(z[:], x[8*(nCeil-_N):]) - var z64 scalar64 - z64.fromScalar(z) - for i := nCeil - _N - 1; i >= 0; i-- { - low := binary.LittleEndian.Uint64(x[8*i:]) - high := z64.leftShift(low) - z64.reduceOneWord(high) - } - z64.modOrder() - z64.toScalar(z) -} - -// divBy4 calculates z = x/4 mod order. -func (z *Scalar) divBy4(x *Scalar) { z.Mul(x, &invFour) } - -// Red reduces z mod order. -func (z *Scalar) Red() { var t scalar64; t.fromScalar(z); t.modOrder(); t.toScalar(z) } - -// Neg calculates z = -z mod order. -func (z *Scalar) Neg() { z.Sub(&order, z) } - -// Add calculates z = x+y mod order. -func (z *Scalar) Add(x, y *Scalar) { - var z64, x64, y64, t scalar64 - x64.fromScalar(x) - y64.fromScalar(y) - c := add(z64[:], x64[:], y64[:]) - add(t[:], z64[:], residue448[:]) - z64.Cmov(c, &t) - z64.modOrder() - z64.toScalar(z) -} - -// Sub calculates z = x-y mod order. -func (z *Scalar) Sub(x, y *Scalar) { - var z64, x64, y64, t scalar64 - x64.fromScalar(x) - y64.fromScalar(y) - c := sub(z64[:], x64[:], y64[:]) - sub(t[:], z64[:], residue448[:]) - z64.Cmov(c, &t) - z64.modOrder() - z64.toScalar(z) -} - -// Mul calculates z = x*y mod order. -func (z *Scalar) Mul(x, y *Scalar) { - var z64, x64, y64 scalar64 - prod := (&[_N + 1]uint64{})[:] - x64.fromScalar(x) - y64.fromScalar(y) - mulWord(prod, x64[:], y64[_N-1]) - copy(z64[:], prod[:_N]) - z64.reduceOneWord(prod[_N]) - for i := _N - 2; i >= 0; i-- { - h := z64.leftShift(0) - z64.reduceOneWord(h) - mulWord(prod, x64[:], y64[i]) - c := add(z64[:], z64[:], prod[:_N]) - z64.reduceOneWord(prod[_N] + c) - } - z64.modOrder() - z64.toScalar(z) -} - -// IsZero returns true if z=0. -func (z *Scalar) IsZero() bool { z.Red(); return *z == Scalar{} } diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go deleted file mode 100644 index 8cd4e333b9..0000000000 --- a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist.go +++ /dev/null @@ -1,138 +0,0 @@ -package goldilocks - -import ( - "crypto/subtle" - "math/bits" - - "github.com/cloudflare/circl/internal/conv" - "github.com/cloudflare/circl/math" - fp "github.com/cloudflare/circl/math/fp448" -) - -// twistCurve is -x^2+y^2=1-39082x^2y^2 and is 4-isogeneous to Goldilocks. -type twistCurve struct{} - -// Identity returns the identity point. -func (twistCurve) Identity() *twistPoint { - return &twistPoint{ - y: fp.One(), - z: fp.One(), - } -} - -// subYDiv16 update x = (x - y) / 16. -func subYDiv16(x *scalar64, y int64) { - s := uint64(y >> 63) - x0, b0 := bits.Sub64((*x)[0], uint64(y), 0) - x1, b1 := bits.Sub64((*x)[1], s, b0) - x2, b2 := bits.Sub64((*x)[2], s, b1) - x3, b3 := bits.Sub64((*x)[3], s, b2) - x4, b4 := bits.Sub64((*x)[4], s, b3) - x5, b5 := bits.Sub64((*x)[5], s, b4) - x6, _ := bits.Sub64((*x)[6], s, b5) - x[0] = (x0 >> 4) | (x1 << 60) - x[1] = (x1 >> 4) | (x2 << 60) - x[2] = (x2 >> 4) | (x3 << 60) - x[3] = (x3 >> 4) | (x4 << 60) - x[4] = (x4 >> 4) | (x5 << 60) - x[5] = (x5 >> 4) | (x6 << 60) - x[6] = (x6 >> 4) -} - -func recodeScalar(d *[113]int8, k *Scalar) { - var k64 scalar64 - k64.fromScalar(k) - for i := 0; i < 112; i++ { - d[i] = int8((k64[0] & 0x1f) - 16) - subYDiv16(&k64, int64(d[i])) - } - d[112] = int8(k64[0]) -} - -// ScalarMult returns kP. -func (e twistCurve) ScalarMult(k *Scalar, P *twistPoint) *twistPoint { - var TabP [8]preTwistPointProy - var S preTwistPointProy - var d [113]int8 - - var isZero int - if k.IsZero() { - isZero = 1 - } - subtle.ConstantTimeCopy(isZero, k[:], order[:]) - - minusK := *k - isEven := 1 - int(k[0]&0x1) - minusK.Neg() - subtle.ConstantTimeCopy(isEven, k[:], minusK[:]) - recodeScalar(&d, k) - - P.oddMultiples(TabP[:]) - Q := e.Identity() - for i := 112; i >= 0; i-- { - Q.Double() - Q.Double() - Q.Double() - Q.Double() - mask := d[i] >> 7 - absDi := (d[i] + mask) ^ mask - inx := int32((absDi - 1) >> 1) - sig := int((d[i] >> 7) & 0x1) - for j := range TabP { - S.cmov(&TabP[j], uint(subtle.ConstantTimeEq(inx, int32(j)))) - } - S.cneg(sig) - Q.mixAdd(&S) - } - Q.cneg(uint(isEven)) - return Q -} - -const ( - omegaFix = 7 - omegaVar = 5 -) - -// CombinedMult returns mG+nP. -func (e twistCurve) CombinedMult(m, n *Scalar, P *twistPoint) *twistPoint { - nafFix := math.OmegaNAF(conv.BytesLe2BigInt(m[:]), omegaFix) - nafVar := math.OmegaNAF(conv.BytesLe2BigInt(n[:]), omegaVar) - - if len(nafFix) > len(nafVar) { - nafVar = append(nafVar, make([]int32, len(nafFix)-len(nafVar))...) - } else if len(nafFix) < len(nafVar) { - nafFix = append(nafFix, make([]int32, len(nafVar)-len(nafFix))...) - } - - var TabQ [1 << (omegaVar - 2)]preTwistPointProy - P.oddMultiples(TabQ[:]) - Q := e.Identity() - for i := len(nafFix) - 1; i >= 0; i-- { - Q.Double() - // Generator point - if nafFix[i] != 0 { - idxM := absolute(nafFix[i]) >> 1 - R := tabVerif[idxM] - if nafFix[i] < 0 { - R.neg() - } - Q.mixAddZ1(&R) - } - // Variable input point - if nafVar[i] != 0 { - idxN := absolute(nafVar[i]) >> 1 - S := TabQ[idxN] - if nafVar[i] < 0 { - S.neg() - } - Q.mixAdd(&S) - } - } - return Q -} - -// absolute returns always a positive value. -func absolute(x int32) int32 { - mask := x >> 31 - return (x + mask) ^ mask -} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistPoint.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistPoint.go deleted file mode 100644 index c55db77b06..0000000000 --- a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistPoint.go +++ /dev/null @@ -1,135 +0,0 @@ -package goldilocks - -import ( - "fmt" - - fp "github.com/cloudflare/circl/math/fp448" -) - -type twistPoint struct{ x, y, z, ta, tb fp.Elt } - -type preTwistPointAffine struct{ addYX, subYX, dt2 fp.Elt } - -type preTwistPointProy struct { - preTwistPointAffine - z2 fp.Elt -} - -func (P *twistPoint) String() string { - return fmt.Sprintf("x: %v\ny: %v\nz: %v\nta: %v\ntb: %v", P.x, P.y, P.z, P.ta, P.tb) -} - -// cneg conditionally negates the point if b=1. -func (P *twistPoint) cneg(b uint) { - t := &fp.Elt{} - fp.Neg(t, &P.x) - fp.Cmov(&P.x, t, b) - fp.Neg(t, &P.ta) - fp.Cmov(&P.ta, t, b) -} - -// Double updates P with 2P. -func (P *twistPoint) Double() { - // This is formula (7) from "Twisted Edwards Curves Revisited" by - // Hisil H., Wong K.KH., Carter G., Dawson E. (2008) - // https://doi.org/10.1007/978-3-540-89255-7_20 - Px, Py, Pz, Pta, Ptb := &P.x, &P.y, &P.z, &P.ta, &P.tb - a, b, c, e, f, g, h := Px, Py, Pz, Pta, Px, Py, Ptb - fp.Add(e, Px, Py) // x+y - fp.Sqr(a, Px) // A = x^2 - fp.Sqr(b, Py) // B = y^2 - fp.Sqr(c, Pz) // z^2 - fp.Add(c, c, c) // C = 2*z^2 - fp.Add(h, a, b) // H = A+B - fp.Sqr(e, e) // (x+y)^2 - fp.Sub(e, e, h) // E = (x+y)^2-A-B - fp.Sub(g, b, a) // G = B-A - fp.Sub(f, c, g) // F = C-G - fp.Mul(Pz, f, g) // Z = F * G - fp.Mul(Px, e, f) // X = E * F - fp.Mul(Py, g, h) // Y = G * H, T = E * H -} - -// mixAdd calculates P= P+Q, where Q is a precomputed point with Z_Q = 1. -func (P *twistPoint) mixAddZ1(Q *preTwistPointAffine) { - fp.Add(&P.z, &P.z, &P.z) // D = 2*z1 (z2=1) - P.coreAddition(Q) -} - -// coreAddition calculates P=P+Q for curves with A=-1. -func (P *twistPoint) coreAddition(Q *preTwistPointAffine) { - // This is the formula following (5) from "Twisted Edwards Curves Revisited" by - // Hisil H., Wong K.KH., Carter G., Dawson E. (2008) - // https://doi.org/10.1007/978-3-540-89255-7_20 - Px, Py, Pz, Pta, Ptb := &P.x, &P.y, &P.z, &P.ta, &P.tb - addYX2, subYX2, dt2 := &Q.addYX, &Q.subYX, &Q.dt2 - a, b, c, d, e, f, g, h := Px, Py, &fp.Elt{}, Pz, Pta, Px, Py, Ptb - fp.Mul(c, Pta, Ptb) // t1 = ta*tb - fp.Sub(h, Py, Px) // y1-x1 - fp.Add(b, Py, Px) // y1+x1 - fp.Mul(a, h, subYX2) // A = (y1-x1)*(y2-x2) - fp.Mul(b, b, addYX2) // B = (y1+x1)*(y2+x2) - fp.Mul(c, c, dt2) // C = 2*D*t1*t2 - fp.Sub(e, b, a) // E = B-A - fp.Add(h, b, a) // H = B+A - fp.Sub(f, d, c) // F = D-C - fp.Add(g, d, c) // G = D+C - fp.Mul(Pz, f, g) // Z = F * G - fp.Mul(Px, e, f) // X = E * F - fp.Mul(Py, g, h) // Y = G * H, T = E * H -} - -func (P *preTwistPointAffine) neg() { - P.addYX, P.subYX = P.subYX, P.addYX - fp.Neg(&P.dt2, &P.dt2) -} - -func (P *preTwistPointAffine) cneg(b int) { - t := &fp.Elt{} - fp.Cswap(&P.addYX, &P.subYX, uint(b)) - fp.Neg(t, &P.dt2) - fp.Cmov(&P.dt2, t, uint(b)) -} - -func (P *preTwistPointAffine) cmov(Q *preTwistPointAffine, b uint) { - fp.Cmov(&P.addYX, &Q.addYX, b) - fp.Cmov(&P.subYX, &Q.subYX, b) - fp.Cmov(&P.dt2, &Q.dt2, b) -} - -// mixAdd calculates P= P+Q, where Q is a precomputed point with Z_Q != 1. -func (P *twistPoint) mixAdd(Q *preTwistPointProy) { - fp.Mul(&P.z, &P.z, &Q.z2) // D = 2*z1*z2 - P.coreAddition(&Q.preTwistPointAffine) -} - -// oddMultiples calculates T[i] = (2*i-1)P for 0 < i < len(T). -func (P *twistPoint) oddMultiples(T []preTwistPointProy) { - if n := len(T); n > 0 { - T[0].FromTwistPoint(P) - _2P := *P - _2P.Double() - R := &preTwistPointProy{} - R.FromTwistPoint(&_2P) - for i := 1; i < n; i++ { - P.mixAdd(R) - T[i].FromTwistPoint(P) - } - } -} - -// cmov conditionally moves Q into P if b=1. -func (P *preTwistPointProy) cmov(Q *preTwistPointProy, b uint) { - P.preTwistPointAffine.cmov(&Q.preTwistPointAffine, b) - fp.Cmov(&P.z2, &Q.z2, b) -} - -// FromTwistPoint precomputes some coordinates of Q for missed addition. -func (P *preTwistPointProy) FromTwistPoint(Q *twistPoint) { - fp.Add(&P.addYX, &Q.y, &Q.x) // addYX = X + Y - fp.Sub(&P.subYX, &Q.y, &Q.x) // subYX = Y - X - fp.Mul(&P.dt2, &Q.ta, &Q.tb) // T = ta*tb - fp.Mul(&P.dt2, &P.dt2, ¶mDTwist) // D*T - fp.Add(&P.dt2, &P.dt2, &P.dt2) // dt2 = 2*D*T - fp.Add(&P.z2, &Q.z, &Q.z) // z2 = 2*Z -} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistTables.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistTables.go deleted file mode 100644 index ed432e02c7..0000000000 --- a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twistTables.go +++ /dev/null @@ -1,216 +0,0 @@ -package goldilocks - -import fp "github.com/cloudflare/circl/math/fp448" - -var tabFixMult = [fxV][fx2w1]preTwistPointAffine{ - { - { - addYX: fp.Elt{0x65, 0x4a, 0xdd, 0xdf, 0xb4, 0x79, 0x60, 0xc8, 0xa1, 0x70, 0xb4, 0x3a, 0x1e, 0x0c, 0x9b, 0x19, 0xe5, 0x48, 0x3f, 0xd7, 0x44, 0x18, 0x18, 0x14, 0x14, 0x27, 0x45, 0xd0, 0x2b, 0x24, 0xd5, 0x93, 0xc3, 0x74, 0x4c, 0x50, 0x70, 0x43, 0x26, 0x05, 0x08, 0x24, 0xca, 0x78, 0x30, 0xc1, 0x06, 0x8d, 0xd4, 0x86, 0x42, 0xf0, 0x14, 0xde, 0x08, 0x05}, - subYX: fp.Elt{0x64, 0x4a, 0xdd, 0xdf, 0xb4, 0x79, 0x60, 0xc8, 0xa1, 0x70, 0xb4, 0x3a, 0x1e, 0x0c, 0x9b, 0x19, 0xe5, 0x48, 0x3f, 0xd7, 0x44, 0x18, 0x18, 0x14, 0x14, 0x27, 0x45, 0xd0, 0x2d, 0x24, 0xd5, 0x93, 0xc3, 0x74, 0x4c, 0x50, 0x70, 0x43, 0x26, 0x05, 0x08, 0x24, 0xca, 0x78, 0x30, 0xc1, 0x06, 0x8d, 0xd4, 0x86, 0x42, 0xf0, 0x14, 0xde, 0x08, 0x05}, - dt2: fp.Elt{0x1a, 0x33, 0xea, 0x64, 0x45, 0x1c, 0xdf, 0x17, 0x1d, 0x16, 0x34, 0x28, 0xd6, 0x61, 0x19, 0x67, 0x79, 0xb4, 0x13, 0xcf, 0x3e, 0x7c, 0x0e, 0x72, 0xda, 0xf1, 0x5f, 0xda, 0xe6, 0xcf, 0x42, 0xd3, 0xb6, 0x17, 0xc2, 0x68, 0x13, 0x2d, 0xd9, 0x60, 0x3e, 0xae, 0xf0, 0x5b, 0x96, 0xf0, 0xcd, 0xaf, 0xea, 0xb7, 0x0d, 0x59, 0x16, 0xa7, 0xff, 0x55}, - }, - { - addYX: fp.Elt{0xca, 0xd8, 0x7d, 0x86, 0x1a, 0xef, 0xad, 0x11, 0xe3, 0x27, 0x41, 0x7e, 0x7f, 0x3e, 0xa9, 0xd2, 0xb5, 0x4e, 0x50, 0xe0, 0x77, 0x91, 0xc2, 0x13, 0x52, 0x73, 0x41, 0x09, 0xa6, 0x57, 0x9a, 0xc8, 0xa8, 0x90, 0x9d, 0x26, 0x14, 0xbb, 0xa1, 0x2a, 0xf7, 0x45, 0x43, 0x4e, 0xea, 0x35, 0x62, 0xe1, 0x08, 0x85, 0x46, 0xb8, 0x24, 0x05, 0x2d, 0xab}, - subYX: fp.Elt{0x9b, 0xe6, 0xd3, 0xe5, 0xfe, 0x50, 0x36, 0x3c, 0x3c, 0x6d, 0x74, 0x1d, 0x74, 0xc0, 0xde, 0x5b, 0x45, 0x27, 0xe5, 0x12, 0xee, 0x63, 0x35, 0x6b, 0x13, 0xe2, 0x41, 0x6b, 0x3a, 0x05, 0x2b, 0xb1, 0x89, 0x26, 0xb6, 0xc6, 0xd1, 0x84, 0xff, 0x0e, 0x9b, 0xa3, 0xfb, 0x21, 0x36, 0x6b, 0x01, 0xf7, 0x9f, 0x7c, 0xeb, 0xf5, 0x18, 0x7a, 0x2a, 0x70}, - dt2: fp.Elt{0x09, 0xad, 0x99, 0x1a, 0x38, 0xd3, 0xdf, 0x22, 0x37, 0x32, 0x61, 0x8b, 0xf3, 0x19, 0x48, 0x08, 0xe8, 0x49, 0xb6, 0x4a, 0xa7, 0xed, 0xa4, 0xa2, 0xee, 0x86, 0xd7, 0x31, 0x5e, 0xce, 0x95, 0x76, 0x86, 0x42, 0x1c, 0x9d, 0x07, 0x14, 0x8c, 0x34, 0x18, 0x9c, 0x6d, 0x3a, 0xdf, 0xa9, 0xe8, 0x36, 0x7e, 0xe4, 0x95, 0xbe, 0xb5, 0x09, 0xf8, 0x9c}, - }, - { - addYX: fp.Elt{0x51, 0xdb, 0x49, 0xa8, 0x9f, 0xe3, 0xd7, 0xec, 0x0d, 0x0f, 0x49, 0xe8, 0xb6, 0xc5, 0x0f, 0x5a, 0x1c, 0xce, 0x54, 0x0d, 0xb1, 0x8d, 0x5b, 0xbf, 0xf4, 0xaa, 0x34, 0x77, 0xc4, 0x5d, 0x59, 0xb6, 0xc5, 0x0e, 0x5a, 0xd8, 0x5b, 0x30, 0xc2, 0x1d, 0xec, 0x85, 0x1c, 0x42, 0xbe, 0x24, 0x2e, 0x50, 0x55, 0x44, 0xb2, 0x3a, 0x01, 0xaa, 0x98, 0xfb}, - subYX: fp.Elt{0xe7, 0x29, 0xb7, 0xd0, 0xaa, 0x4f, 0x32, 0x53, 0x56, 0xde, 0xbc, 0xd1, 0x92, 0x5d, 0x19, 0xbe, 0xa3, 0xe3, 0x75, 0x48, 0xe0, 0x7a, 0x1b, 0x54, 0x7a, 0xb7, 0x41, 0x77, 0x84, 0x38, 0xdd, 0x14, 0x9f, 0xca, 0x3f, 0xa3, 0xc8, 0xa7, 0x04, 0x70, 0xf1, 0x4d, 0x3d, 0xb3, 0x84, 0x79, 0xcb, 0xdb, 0xe4, 0xc5, 0x42, 0x9b, 0x57, 0x19, 0xf1, 0x2d}, - dt2: fp.Elt{0x20, 0xb4, 0x94, 0x9e, 0xdf, 0x31, 0x44, 0x0b, 0xc9, 0x7b, 0x75, 0x40, 0x9d, 0xd1, 0x96, 0x39, 0x70, 0x71, 0x15, 0xc8, 0x93, 0xd5, 0xc5, 0xe5, 0xba, 0xfe, 0xee, 0x08, 0x6a, 0x98, 0x0a, 0x1b, 0xb2, 0xaa, 0x3a, 0xf4, 0xa4, 0x79, 0xf9, 0x8e, 0x4d, 0x65, 0x10, 0x9b, 0x3a, 0x6e, 0x7c, 0x87, 0x94, 0x92, 0x11, 0x65, 0xbf, 0x1a, 0x09, 0xde}, - }, - { - addYX: fp.Elt{0xf3, 0x84, 0x76, 0x77, 0xa5, 0x6b, 0x27, 0x3b, 0x83, 0x3d, 0xdf, 0xa0, 0xeb, 0x32, 0x6d, 0x58, 0x81, 0x57, 0x64, 0xc2, 0x21, 0x7c, 0x9b, 0xea, 0xe6, 0xb0, 0x93, 0xf9, 0xe7, 0xc3, 0xed, 0x5a, 0x8e, 0xe2, 0xb4, 0x72, 0x76, 0x66, 0x0f, 0x22, 0x29, 0x94, 0x3e, 0x63, 0x48, 0x5e, 0x80, 0xcb, 0xac, 0xfa, 0x95, 0xb6, 0x4b, 0xc4, 0x95, 0x33}, - subYX: fp.Elt{0x0c, 0x55, 0xd1, 0x5e, 0x5f, 0xbf, 0xbf, 0xe2, 0x4c, 0xfc, 0x37, 0x4a, 0xc4, 0xb1, 0xf4, 0x83, 0x61, 0x93, 0x60, 0x8e, 0x9f, 0x31, 0xf0, 0xa0, 0x41, 0xff, 0x1d, 0xe2, 0x7f, 0xca, 0x40, 0xd6, 0x88, 0xe8, 0x91, 0x61, 0xe2, 0x11, 0x18, 0x83, 0xf3, 0x25, 0x2f, 0x3f, 0x49, 0x40, 0xd4, 0x83, 0xe2, 0xd7, 0x74, 0x6a, 0x16, 0x86, 0x4e, 0xab}, - dt2: fp.Elt{0xdd, 0x58, 0x65, 0xd8, 0x9f, 0xdd, 0x70, 0x7f, 0x0f, 0xec, 0xbd, 0x5c, 0x5c, 0x9b, 0x7e, 0x1b, 0x9f, 0x79, 0x36, 0x1f, 0xfd, 0x79, 0x10, 0x1c, 0x52, 0xf3, 0x22, 0xa4, 0x1f, 0x71, 0x6e, 0x63, 0x14, 0xf4, 0xa7, 0x3e, 0xbe, 0xad, 0x43, 0x30, 0x38, 0x8c, 0x29, 0xc6, 0xcf, 0x50, 0x75, 0x21, 0xe5, 0x78, 0xfd, 0xb0, 0x9a, 0xc4, 0x6d, 0xd4}, - }, - }, - { - { - addYX: fp.Elt{0x7a, 0xa1, 0x38, 0xa6, 0xfd, 0x0e, 0x96, 0xd5, 0x26, 0x76, 0x86, 0x70, 0x80, 0x30, 0xa6, 0x67, 0xeb, 0xf4, 0x39, 0xdb, 0x22, 0xf5, 0x9f, 0x98, 0xe4, 0xb5, 0x3a, 0x0c, 0x59, 0xbf, 0x85, 0xc6, 0xf0, 0x0b, 0x1c, 0x41, 0x38, 0x09, 0x01, 0xdb, 0xd6, 0x3c, 0xb7, 0xf1, 0x08, 0x6b, 0x4b, 0x9e, 0x63, 0x53, 0x83, 0xd3, 0xab, 0xa3, 0x72, 0x0d}, - subYX: fp.Elt{0x84, 0x68, 0x25, 0xe8, 0xe9, 0x8f, 0x91, 0xbf, 0xf7, 0xa4, 0x30, 0xae, 0xea, 0x9f, 0xdd, 0x56, 0x64, 0x09, 0xc9, 0x54, 0x68, 0x4e, 0x33, 0xc5, 0x6f, 0x7b, 0x2d, 0x52, 0x2e, 0x42, 0xbe, 0xbe, 0xf5, 0x64, 0xbf, 0x77, 0x54, 0xdf, 0xb0, 0x10, 0xd2, 0x16, 0x5d, 0xce, 0xaf, 0x9f, 0xfb, 0xa3, 0x63, 0x50, 0xcb, 0xc0, 0xd0, 0x88, 0x44, 0xa3}, - dt2: fp.Elt{0xc3, 0x8b, 0xa5, 0xf1, 0x44, 0xe4, 0x41, 0xcd, 0x75, 0xe3, 0x17, 0x69, 0x5b, 0xb9, 0xbb, 0xee, 0x82, 0xbb, 0xce, 0x57, 0xdf, 0x2a, 0x9c, 0x12, 0xab, 0x66, 0x08, 0x68, 0x05, 0x1b, 0x87, 0xee, 0x5d, 0x1e, 0x18, 0x14, 0x22, 0x4b, 0x99, 0x61, 0x75, 0x28, 0xe7, 0x65, 0x1c, 0x36, 0xb6, 0x18, 0x09, 0xa8, 0xdf, 0xef, 0x30, 0x35, 0xbc, 0x58}, - }, - { - addYX: fp.Elt{0xc5, 0xd3, 0x0e, 0x6f, 0xaf, 0x06, 0x69, 0xc4, 0x07, 0x9e, 0x58, 0x6e, 0x3f, 0x49, 0xd9, 0x0a, 0x3c, 0x2c, 0x37, 0xcd, 0x27, 0x4d, 0x87, 0x91, 0x7a, 0xb0, 0x28, 0xad, 0x2f, 0x68, 0x92, 0x05, 0x97, 0xf1, 0x30, 0x5f, 0x4c, 0x10, 0x20, 0x30, 0xd3, 0x08, 0x3f, 0xc1, 0xc6, 0xb7, 0xb5, 0xd1, 0x71, 0x7b, 0xa8, 0x0a, 0xd8, 0xf5, 0x17, 0xcf}, - subYX: fp.Elt{0x64, 0xd4, 0x8f, 0x91, 0x40, 0xab, 0x6e, 0x1a, 0x62, 0x83, 0xdc, 0xd7, 0x30, 0x1a, 0x4a, 0x2a, 0x4c, 0x54, 0x86, 0x19, 0x81, 0x5d, 0x04, 0x52, 0xa3, 0xca, 0x82, 0x38, 0xdc, 0x1e, 0xf0, 0x7a, 0x78, 0x76, 0x49, 0x4f, 0x71, 0xc4, 0x74, 0x2f, 0xf0, 0x5b, 0x2e, 0x5e, 0xac, 0xef, 0x17, 0xe4, 0x8e, 0x6e, 0xed, 0x43, 0x23, 0x61, 0x99, 0x49}, - dt2: fp.Elt{0x64, 0x90, 0x72, 0x76, 0xf8, 0x2c, 0x7d, 0x57, 0xf9, 0x30, 0x5e, 0x7a, 0x10, 0x74, 0x19, 0x39, 0xd9, 0xaf, 0x0a, 0xf1, 0x43, 0xed, 0x88, 0x9c, 0x8b, 0xdc, 0x9b, 0x1c, 0x90, 0xe7, 0xf7, 0xa3, 0xa5, 0x0d, 0xc6, 0xbc, 0x30, 0xfb, 0x91, 0x1a, 0x51, 0xba, 0x2d, 0xbe, 0x89, 0xdf, 0x1d, 0xdc, 0x53, 0xa8, 0x82, 0x8a, 0xd3, 0x8d, 0x16, 0x68}, - }, - { - addYX: fp.Elt{0xef, 0x5c, 0xe3, 0x74, 0xbf, 0x13, 0x4a, 0xbf, 0x66, 0x73, 0x64, 0xb7, 0xd4, 0xce, 0x98, 0x82, 0x05, 0xfa, 0x98, 0x0c, 0x0a, 0xae, 0xe5, 0x6b, 0x9f, 0xac, 0xbb, 0x6e, 0x1f, 0xcf, 0xff, 0xa6, 0x71, 0x9a, 0xa8, 0x7a, 0x9e, 0x64, 0x1f, 0x20, 0x4a, 0x61, 0xa2, 0xd6, 0x50, 0xe3, 0xba, 0x81, 0x0c, 0x50, 0x59, 0x69, 0x59, 0x15, 0x55, 0xdb}, - subYX: fp.Elt{0xe8, 0x77, 0x4d, 0xe8, 0x66, 0x3d, 0xc1, 0x00, 0x3c, 0xf2, 0x25, 0x00, 0xdc, 0xb2, 0xe5, 0x9b, 0x12, 0x89, 0xf3, 0xd6, 0xea, 0x85, 0x60, 0xfe, 0x67, 0x91, 0xfd, 0x04, 0x7c, 0xe0, 0xf1, 0x86, 0x06, 0x11, 0x66, 0xee, 0xd4, 0xd5, 0xbe, 0x3b, 0x0f, 0xe3, 0x59, 0xb3, 0x4f, 0x00, 0xb6, 0xce, 0x80, 0xc1, 0x61, 0xf7, 0xaf, 0x04, 0x6a, 0x3c}, - dt2: fp.Elt{0x00, 0xd7, 0x32, 0x93, 0x67, 0x70, 0x6f, 0xd7, 0x69, 0xab, 0xb1, 0xd3, 0xdc, 0xd6, 0xa8, 0xdd, 0x35, 0x25, 0xca, 0xd3, 0x8a, 0x6d, 0xce, 0xfb, 0xfd, 0x2b, 0x83, 0xf0, 0xd4, 0xac, 0x66, 0xfb, 0x72, 0x87, 0x7e, 0x55, 0xb7, 0x91, 0x58, 0x10, 0xc3, 0x11, 0x7e, 0x15, 0xfe, 0x7c, 0x55, 0x90, 0xa3, 0x9e, 0xed, 0x9a, 0x7f, 0xa7, 0xb7, 0xeb}, - }, - { - addYX: fp.Elt{0x25, 0x0f, 0xc2, 0x09, 0x9c, 0x10, 0xc8, 0x7c, 0x93, 0xa7, 0xbe, 0xe9, 0x26, 0x25, 0x7c, 0x21, 0xfe, 0xe7, 0x5f, 0x3c, 0x02, 0x83, 0xa7, 0x9e, 0xdf, 0xc0, 0x94, 0x2b, 0x7d, 0x1a, 0xd0, 0x1d, 0xcc, 0x2e, 0x7d, 0xd4, 0x85, 0xe7, 0xc1, 0x15, 0x66, 0xd6, 0xd6, 0x32, 0xb8, 0xf7, 0x63, 0xaa, 0x3b, 0xa5, 0xea, 0x49, 0xad, 0x88, 0x9b, 0x66}, - subYX: fp.Elt{0x09, 0x97, 0x79, 0x36, 0x41, 0x56, 0x9b, 0xdf, 0x15, 0xd8, 0x43, 0x28, 0x17, 0x5b, 0x96, 0xc9, 0xcf, 0x39, 0x1f, 0x13, 0xf7, 0x4d, 0x1d, 0x1f, 0xda, 0x51, 0x56, 0xe7, 0x0a, 0x5a, 0x65, 0xb6, 0x2a, 0x87, 0x49, 0x86, 0xc2, 0x2b, 0xcd, 0xfe, 0x07, 0xf6, 0x4c, 0xe2, 0x1d, 0x9b, 0xd8, 0x82, 0x09, 0x5b, 0x11, 0x10, 0x62, 0x56, 0x89, 0xbd}, - dt2: fp.Elt{0xd9, 0x15, 0x73, 0xf2, 0x96, 0x35, 0x53, 0xb0, 0xe7, 0xa8, 0x0b, 0x93, 0x35, 0x0b, 0x3a, 0x00, 0xf5, 0x18, 0xb1, 0xc3, 0x12, 0x3f, 0x91, 0x17, 0xc1, 0x4c, 0x15, 0x5a, 0x86, 0x92, 0x11, 0xbd, 0x44, 0x40, 0x5a, 0x7b, 0x15, 0x89, 0xba, 0xc1, 0xc1, 0xbc, 0x43, 0x45, 0xe6, 0x52, 0x02, 0x73, 0x0a, 0xd0, 0x2a, 0x19, 0xda, 0x47, 0xa8, 0xff}, - }, - }, -} - -// tabVerif contains the odd multiples of P. The entry T[i] = (2i+1)P, where -// P = phi(G) and G is the generator of the Goldilocks curve, and phi is a -// 4-degree isogeny. -var tabVerif = [1 << (omegaFix - 2)]preTwistPointAffine{ - { /* 1P*/ - addYX: fp.Elt{0x65, 0x4a, 0xdd, 0xdf, 0xb4, 0x79, 0x60, 0xc8, 0xa1, 0x70, 0xb4, 0x3a, 0x1e, 0x0c, 0x9b, 0x19, 0xe5, 0x48, 0x3f, 0xd7, 0x44, 0x18, 0x18, 0x14, 0x14, 0x27, 0x45, 0xd0, 0x2b, 0x24, 0xd5, 0x93, 0xc3, 0x74, 0x4c, 0x50, 0x70, 0x43, 0x26, 0x05, 0x08, 0x24, 0xca, 0x78, 0x30, 0xc1, 0x06, 0x8d, 0xd4, 0x86, 0x42, 0xf0, 0x14, 0xde, 0x08, 0x05}, - subYX: fp.Elt{0x64, 0x4a, 0xdd, 0xdf, 0xb4, 0x79, 0x60, 0xc8, 0xa1, 0x70, 0xb4, 0x3a, 0x1e, 0x0c, 0x9b, 0x19, 0xe5, 0x48, 0x3f, 0xd7, 0x44, 0x18, 0x18, 0x14, 0x14, 0x27, 0x45, 0xd0, 0x2d, 0x24, 0xd5, 0x93, 0xc3, 0x74, 0x4c, 0x50, 0x70, 0x43, 0x26, 0x05, 0x08, 0x24, 0xca, 0x78, 0x30, 0xc1, 0x06, 0x8d, 0xd4, 0x86, 0x42, 0xf0, 0x14, 0xde, 0x08, 0x05}, - dt2: fp.Elt{0x1a, 0x33, 0xea, 0x64, 0x45, 0x1c, 0xdf, 0x17, 0x1d, 0x16, 0x34, 0x28, 0xd6, 0x61, 0x19, 0x67, 0x79, 0xb4, 0x13, 0xcf, 0x3e, 0x7c, 0x0e, 0x72, 0xda, 0xf1, 0x5f, 0xda, 0xe6, 0xcf, 0x42, 0xd3, 0xb6, 0x17, 0xc2, 0x68, 0x13, 0x2d, 0xd9, 0x60, 0x3e, 0xae, 0xf0, 0x5b, 0x96, 0xf0, 0xcd, 0xaf, 0xea, 0xb7, 0x0d, 0x59, 0x16, 0xa7, 0xff, 0x55}, - }, - { /* 3P*/ - addYX: fp.Elt{0xd1, 0xe9, 0xa8, 0x33, 0x20, 0x76, 0x18, 0x08, 0x45, 0x2a, 0xc9, 0x67, 0x2a, 0xc3, 0x15, 0x24, 0xf9, 0x74, 0x21, 0x30, 0x99, 0x59, 0x8b, 0xb2, 0xf0, 0xa4, 0x07, 0xe2, 0x6a, 0x36, 0x8d, 0xd9, 0xd2, 0x4a, 0x7f, 0x73, 0x50, 0x39, 0x3d, 0xaa, 0xa7, 0x51, 0x73, 0x0d, 0x2b, 0x8b, 0x96, 0x47, 0xac, 0x3c, 0x5d, 0xaa, 0x39, 0x9c, 0xcf, 0xd5}, - subYX: fp.Elt{0x6b, 0x11, 0x5d, 0x1a, 0xf9, 0x41, 0x9d, 0xc5, 0x30, 0x3e, 0xad, 0x25, 0x2c, 0x04, 0x45, 0xea, 0xcc, 0x67, 0x07, 0x85, 0xe9, 0xda, 0x0e, 0xb5, 0x40, 0xb7, 0x32, 0xb4, 0x49, 0xdd, 0xff, 0xaa, 0xfc, 0xbb, 0x19, 0xca, 0x8b, 0x79, 0x2b, 0x8f, 0x8d, 0x00, 0x33, 0xc2, 0xad, 0xe9, 0xd3, 0x12, 0xa8, 0xaa, 0x87, 0x62, 0xad, 0x2d, 0xff, 0xa4}, - dt2: fp.Elt{0xb0, 0xaf, 0x3b, 0xea, 0xf0, 0x42, 0x0b, 0x5e, 0x88, 0xd3, 0x98, 0x08, 0x87, 0x59, 0x72, 0x0a, 0xc2, 0xdf, 0xcb, 0x7f, 0x59, 0xb5, 0x4c, 0x63, 0x68, 0xe8, 0x41, 0x38, 0x67, 0x4f, 0xe9, 0xc6, 0xb2, 0x6b, 0x08, 0xa7, 0xf7, 0x0e, 0xcd, 0xea, 0xca, 0x3d, 0xaf, 0x8e, 0xda, 0x4b, 0x2e, 0xd2, 0x88, 0x64, 0x8d, 0xc5, 0x5f, 0x76, 0x0f, 0x3d}, - }, - { /* 5P*/ - addYX: fp.Elt{0xe5, 0x65, 0xc9, 0xe2, 0x75, 0xf0, 0x7d, 0x1a, 0xba, 0xa4, 0x40, 0x4b, 0x93, 0x12, 0xa2, 0x80, 0x95, 0x0d, 0x03, 0x93, 0xe8, 0xa5, 0x4d, 0xe2, 0x3d, 0x81, 0xf5, 0xce, 0xd4, 0x2d, 0x25, 0x59, 0x16, 0x5c, 0xe7, 0xda, 0xc7, 0x45, 0xd2, 0x7e, 0x2c, 0x38, 0xd4, 0x37, 0x64, 0xb2, 0xc2, 0x28, 0xc5, 0x72, 0x16, 0x32, 0x45, 0x36, 0x6f, 0x9f}, - subYX: fp.Elt{0x09, 0xf4, 0x7e, 0xbd, 0x89, 0xdb, 0x19, 0x58, 0xe1, 0x08, 0x00, 0x8a, 0xf4, 0x5f, 0x2a, 0x32, 0x40, 0xf0, 0x2c, 0x3f, 0x5d, 0xe4, 0xfc, 0x89, 0x11, 0x24, 0xb4, 0x2f, 0x97, 0xad, 0xac, 0x8f, 0x19, 0xab, 0xfa, 0x12, 0xe5, 0xf9, 0x50, 0x4e, 0x50, 0x6f, 0x32, 0x30, 0x88, 0xa6, 0xe5, 0x48, 0x28, 0xa2, 0x1b, 0x9f, 0xcd, 0xe2, 0x43, 0x38}, - dt2: fp.Elt{0xa9, 0xcc, 0x53, 0x39, 0x86, 0x02, 0x60, 0x75, 0x34, 0x99, 0x57, 0xbd, 0xfc, 0x5a, 0x8e, 0xce, 0x5e, 0x98, 0x22, 0xd0, 0xa5, 0x24, 0xff, 0x90, 0x28, 0x9f, 0x58, 0xf3, 0x39, 0xe9, 0xba, 0x36, 0x23, 0xfb, 0x7f, 0x41, 0xcc, 0x2b, 0x5a, 0x25, 0x3f, 0x4c, 0x2a, 0xf1, 0x52, 0x6f, 0x2f, 0x07, 0xe3, 0x88, 0x81, 0x77, 0xdd, 0x7c, 0x88, 0x82}, - }, - { /* 7P*/ - addYX: fp.Elt{0xf7, 0xee, 0x88, 0xfd, 0x3a, 0xbf, 0x7e, 0x28, 0x39, 0x23, 0x79, 0xe6, 0x5c, 0x56, 0xcb, 0xb5, 0x48, 0x6a, 0x80, 0x6d, 0x37, 0x60, 0x6c, 0x10, 0x35, 0x49, 0x4b, 0x46, 0x60, 0xd4, 0x79, 0xd4, 0x53, 0xd3, 0x67, 0x88, 0xd0, 0x41, 0xd5, 0x43, 0x85, 0xc8, 0x71, 0xe3, 0x1c, 0xb6, 0xda, 0x22, 0x64, 0x8f, 0x80, 0xac, 0xad, 0x7d, 0xd5, 0x82}, - subYX: fp.Elt{0x92, 0x40, 0xc1, 0x83, 0x21, 0x9b, 0xd5, 0x7d, 0x3f, 0x29, 0xb6, 0x26, 0xef, 0x12, 0xb9, 0x27, 0x39, 0x42, 0x37, 0x97, 0x09, 0x9a, 0x08, 0xe1, 0x68, 0xb6, 0x7a, 0x3f, 0x9f, 0x45, 0xf8, 0x37, 0x19, 0x83, 0x97, 0xe6, 0x73, 0x30, 0x32, 0x35, 0xcf, 0xae, 0x5c, 0x12, 0x68, 0xdf, 0x6e, 0x2b, 0xde, 0x83, 0xa0, 0x44, 0x74, 0x2e, 0x4a, 0xe9}, - dt2: fp.Elt{0xcb, 0x22, 0x0a, 0xda, 0x6b, 0xc1, 0x8a, 0x29, 0xa1, 0xac, 0x8b, 0x5b, 0x8b, 0x32, 0x20, 0xf2, 0x21, 0xae, 0x0c, 0x43, 0xc4, 0xd7, 0x19, 0x37, 0x3d, 0x79, 0x25, 0x98, 0x6c, 0x9c, 0x22, 0x31, 0x2a, 0x55, 0x9f, 0xda, 0x5e, 0xa8, 0x13, 0xdb, 0x8e, 0x2e, 0x16, 0x39, 0xf4, 0x91, 0x6f, 0xec, 0x71, 0x71, 0xc9, 0x10, 0xf2, 0xa4, 0x8f, 0x11}, - }, - { /* 9P*/ - addYX: fp.Elt{0x85, 0xdd, 0x37, 0x62, 0x74, 0x8e, 0x33, 0x5b, 0x25, 0x12, 0x1b, 0xe7, 0xdf, 0x47, 0xe5, 0x12, 0xfd, 0x3a, 0x3a, 0xf5, 0x5d, 0x4c, 0xa2, 0x29, 0x3c, 0x5c, 0x2f, 0xee, 0x18, 0x19, 0x0a, 0x2b, 0xef, 0x67, 0x50, 0x7a, 0x0d, 0x29, 0xae, 0x55, 0x82, 0xcd, 0xd6, 0x41, 0x90, 0xb4, 0x13, 0x31, 0x5d, 0x11, 0xb8, 0xaa, 0x12, 0x86, 0x08, 0xac}, - subYX: fp.Elt{0xcc, 0x37, 0x8d, 0x83, 0x5f, 0xfd, 0xde, 0xd5, 0xf7, 0xf1, 0xae, 0x0a, 0xa7, 0x0b, 0xeb, 0x6d, 0x19, 0x8a, 0xb6, 0x1a, 0x59, 0xd8, 0xff, 0x3c, 0xbc, 0xbc, 0xef, 0x9c, 0xda, 0x7b, 0x75, 0x12, 0xaf, 0x80, 0x8f, 0x2c, 0x3c, 0xaa, 0x0b, 0x17, 0x86, 0x36, 0x78, 0x18, 0xc8, 0x8a, 0xf6, 0xb8, 0x2c, 0x2f, 0x57, 0x2c, 0x62, 0x57, 0xf6, 0x90}, - dt2: fp.Elt{0x83, 0xbc, 0xa2, 0x07, 0xa5, 0x38, 0x96, 0xea, 0xfe, 0x11, 0x46, 0x1d, 0x3b, 0xcd, 0x42, 0xc5, 0xee, 0x67, 0x04, 0x72, 0x08, 0xd8, 0xd9, 0x96, 0x07, 0xf7, 0xac, 0xc3, 0x64, 0xf1, 0x98, 0x2c, 0x55, 0xd7, 0x7d, 0xc8, 0x6c, 0xbd, 0x2c, 0xff, 0x15, 0xd6, 0x6e, 0xb8, 0x17, 0x8e, 0xa8, 0x27, 0x66, 0xb1, 0x73, 0x79, 0x96, 0xff, 0x29, 0x10}, - }, - { /* 11P*/ - addYX: fp.Elt{0x76, 0xcb, 0x9b, 0x0c, 0x5b, 0xfe, 0xe1, 0x2a, 0xdd, 0x6f, 0x6c, 0xdd, 0x6f, 0xb4, 0xc0, 0xc2, 0x1b, 0x4b, 0x38, 0xe8, 0x66, 0x8c, 0x1e, 0x31, 0x63, 0xb9, 0x94, 0xcd, 0xc3, 0x8c, 0x44, 0x25, 0x7b, 0xd5, 0x39, 0x80, 0xfc, 0x01, 0xaa, 0xf7, 0x2a, 0x61, 0x8a, 0x25, 0xd2, 0x5f, 0xc5, 0x66, 0x38, 0xa4, 0x17, 0xcf, 0x3e, 0x11, 0x0f, 0xa3}, - subYX: fp.Elt{0xe0, 0xb6, 0xd1, 0x9c, 0x71, 0x49, 0x2e, 0x7b, 0xde, 0x00, 0xda, 0x6b, 0xf1, 0xec, 0xe6, 0x7a, 0x15, 0x38, 0x71, 0xe9, 0x7b, 0xdb, 0xf8, 0x98, 0xc0, 0x91, 0x2e, 0x53, 0xee, 0x92, 0x87, 0x25, 0xc9, 0xb0, 0xbb, 0x33, 0x15, 0x46, 0x7f, 0xfd, 0x4f, 0x8b, 0x77, 0x05, 0x96, 0xb6, 0xe2, 0x08, 0xdb, 0x0d, 0x09, 0xee, 0x5b, 0xd1, 0x2a, 0x63}, - dt2: fp.Elt{0x8f, 0x7b, 0x57, 0x8c, 0xbf, 0x06, 0x0d, 0x43, 0x21, 0x92, 0x94, 0x2d, 0x6a, 0x38, 0x07, 0x0f, 0xa0, 0xf1, 0xe3, 0xd8, 0x2a, 0xbf, 0x46, 0xc6, 0x9e, 0x1f, 0x8f, 0x2b, 0x46, 0x84, 0x0b, 0x74, 0xed, 0xff, 0xf8, 0xa5, 0x94, 0xae, 0xf1, 0x67, 0xb1, 0x9b, 0xdd, 0x4a, 0xd0, 0xdb, 0xc2, 0xb5, 0x58, 0x49, 0x0c, 0xa9, 0x1d, 0x7d, 0xa9, 0xd3}, - }, - { /* 13P*/ - addYX: fp.Elt{0x73, 0x84, 0x2e, 0x31, 0x1f, 0xdc, 0xed, 0x9f, 0x74, 0xfa, 0xe0, 0x35, 0xb1, 0x85, 0x6a, 0x8d, 0x86, 0xd0, 0xff, 0xd6, 0x08, 0x43, 0x73, 0x1a, 0xd5, 0xf8, 0x43, 0xd4, 0xb3, 0xe5, 0x3f, 0xa8, 0x84, 0x17, 0x59, 0x65, 0x4e, 0xe6, 0xee, 0x54, 0x9c, 0xda, 0x5e, 0x7e, 0x98, 0x29, 0x6d, 0x73, 0x34, 0x1f, 0x99, 0x80, 0x54, 0x54, 0x81, 0x0b}, - subYX: fp.Elt{0xb1, 0xe5, 0xbb, 0x80, 0x22, 0x9c, 0x81, 0x6d, 0xaf, 0x27, 0x65, 0x6f, 0x7e, 0x9c, 0xb6, 0x8d, 0x35, 0x5c, 0x2e, 0x20, 0x48, 0x7a, 0x28, 0xf0, 0x97, 0xfe, 0xb7, 0x71, 0xce, 0xd6, 0xad, 0x3a, 0x81, 0xf6, 0x74, 0x5e, 0xf3, 0xfd, 0x1b, 0xd4, 0x1e, 0x7c, 0xc2, 0xb7, 0xc8, 0xa6, 0xc9, 0x89, 0x03, 0x47, 0xec, 0x24, 0xd6, 0x0e, 0xec, 0x9c}, - dt2: fp.Elt{0x91, 0x0a, 0x43, 0x34, 0x20, 0xc2, 0x64, 0xf7, 0x4e, 0x48, 0xc8, 0xd2, 0x95, 0x83, 0xd1, 0xa4, 0xfb, 0x4e, 0x41, 0x3b, 0x0d, 0xd5, 0x07, 0xd9, 0xf1, 0x13, 0x16, 0x78, 0x54, 0x57, 0xd0, 0xf1, 0x4f, 0x20, 0xac, 0xcf, 0x9c, 0x3b, 0x33, 0x0b, 0x99, 0x54, 0xc3, 0x7f, 0x3e, 0x57, 0x26, 0x86, 0xd5, 0xa5, 0x2b, 0x8d, 0xe3, 0x19, 0x36, 0xf7}, - }, - { /* 15P*/ - addYX: fp.Elt{0x23, 0x69, 0x47, 0x14, 0xf9, 0x9a, 0x50, 0xff, 0x64, 0xd1, 0x50, 0x35, 0xc3, 0x11, 0xd3, 0x19, 0xcf, 0x87, 0xda, 0x30, 0x0b, 0x50, 0xda, 0xc0, 0xe0, 0x25, 0x00, 0xe5, 0x68, 0x93, 0x04, 0xc2, 0xaf, 0xbd, 0x2f, 0x36, 0x5f, 0x47, 0x96, 0x10, 0xa8, 0xbd, 0xe4, 0x88, 0xac, 0x80, 0x52, 0x61, 0x73, 0xe9, 0x63, 0xdd, 0x99, 0xad, 0x20, 0x5b}, - subYX: fp.Elt{0x1b, 0x5e, 0xa2, 0x2a, 0x25, 0x0f, 0x86, 0xc0, 0xb1, 0x2e, 0x0c, 0x13, 0x40, 0x8d, 0xf0, 0xe6, 0x00, 0x55, 0x08, 0xc5, 0x7d, 0xf4, 0xc9, 0x31, 0x25, 0x3a, 0x99, 0x69, 0xdd, 0x67, 0x63, 0x9a, 0xd6, 0x89, 0x2e, 0xa1, 0x19, 0xca, 0x2c, 0xd9, 0x59, 0x5f, 0x5d, 0xc3, 0x6e, 0x62, 0x36, 0x12, 0x59, 0x15, 0xe1, 0xdc, 0xa4, 0xad, 0xc9, 0xd0}, - dt2: fp.Elt{0xbc, 0xea, 0xfc, 0xaf, 0x66, 0x23, 0xb7, 0x39, 0x6b, 0x2a, 0x96, 0xa8, 0x54, 0x43, 0xe9, 0xaa, 0x32, 0x40, 0x63, 0x92, 0x5e, 0xdf, 0x35, 0xc2, 0x9f, 0x24, 0x0c, 0xed, 0xfc, 0xde, 0x73, 0x8f, 0xa7, 0xd5, 0xa3, 0x2b, 0x18, 0x1f, 0xb0, 0xf8, 0xeb, 0x55, 0xd9, 0xc3, 0xfd, 0x28, 0x7c, 0x4f, 0xce, 0x0d, 0xf7, 0xae, 0xc2, 0x83, 0xc3, 0x78}, - }, - { /* 17P*/ - addYX: fp.Elt{0x71, 0xe6, 0x60, 0x93, 0x37, 0xdb, 0x01, 0xa5, 0x4c, 0xba, 0xe8, 0x8e, 0xd5, 0xf9, 0xd3, 0x98, 0xe5, 0xeb, 0xab, 0x3a, 0x15, 0x8b, 0x35, 0x60, 0xbe, 0xe5, 0x9c, 0x2d, 0x10, 0x9b, 0x2e, 0xcf, 0x65, 0x64, 0xea, 0x8f, 0x72, 0xce, 0xf5, 0x18, 0xe5, 0xe2, 0xf0, 0x0e, 0xae, 0x04, 0xec, 0xa0, 0x20, 0x65, 0x63, 0x07, 0xb1, 0x9f, 0x03, 0x97}, - subYX: fp.Elt{0x9e, 0x41, 0x64, 0x30, 0x95, 0x7f, 0x3a, 0x89, 0x7b, 0x0a, 0x79, 0x59, 0x23, 0x9a, 0x3b, 0xfe, 0xa4, 0x13, 0x08, 0xb2, 0x2e, 0x04, 0x50, 0x10, 0x30, 0xcd, 0x2e, 0xa4, 0x91, 0x71, 0x50, 0x36, 0x4a, 0x02, 0xf4, 0x8d, 0xa3, 0x36, 0x1b, 0xf4, 0x52, 0xba, 0x15, 0x04, 0x8b, 0x80, 0x25, 0xd9, 0xae, 0x67, 0x20, 0xd9, 0x88, 0x8f, 0x97, 0xa6}, - dt2: fp.Elt{0xb5, 0xe7, 0x46, 0xbd, 0x55, 0x23, 0xa0, 0x68, 0xc0, 0x12, 0xd9, 0xf1, 0x0a, 0x75, 0xe2, 0xda, 0xf4, 0x6b, 0xca, 0x14, 0xe4, 0x9f, 0x0f, 0xb5, 0x3c, 0xa6, 0xa5, 0xa2, 0x63, 0x94, 0xd1, 0x1c, 0x39, 0x58, 0x57, 0x02, 0x27, 0x98, 0xb6, 0x47, 0xc6, 0x61, 0x4b, 0x5c, 0xab, 0x6f, 0x2d, 0xab, 0xe3, 0xc1, 0x69, 0xf9, 0x12, 0xb0, 0xc8, 0xd5}, - }, - { /* 19P*/ - addYX: fp.Elt{0x19, 0x7d, 0xd5, 0xac, 0x79, 0xa2, 0x82, 0x9b, 0x28, 0x31, 0x22, 0xc0, 0x73, 0x02, 0x76, 0x17, 0x10, 0x70, 0x79, 0x57, 0xc9, 0x84, 0x62, 0x8e, 0x04, 0x04, 0x61, 0x67, 0x08, 0x48, 0xb4, 0x4b, 0xde, 0x53, 0x8c, 0xff, 0x36, 0x1b, 0x62, 0x86, 0x5d, 0xe1, 0x9b, 0xb1, 0xe5, 0xe8, 0x44, 0x64, 0xa1, 0x68, 0x3f, 0xa8, 0x45, 0x52, 0x91, 0xed}, - subYX: fp.Elt{0x42, 0x1a, 0x36, 0x1f, 0x90, 0x15, 0x24, 0x8d, 0x24, 0x80, 0xe6, 0xfe, 0x1e, 0xf0, 0xad, 0xaf, 0x6a, 0x93, 0xf0, 0xa6, 0x0d, 0x5d, 0xea, 0xf6, 0x62, 0x96, 0x7a, 0x05, 0x76, 0x85, 0x74, 0x32, 0xc7, 0xc8, 0x64, 0x53, 0x62, 0xe7, 0x54, 0x84, 0xe0, 0x40, 0x66, 0x19, 0x70, 0x40, 0x95, 0x35, 0x68, 0x64, 0x43, 0xcd, 0xba, 0x29, 0x32, 0xa8}, - dt2: fp.Elt{0x3e, 0xf6, 0xd6, 0xe4, 0x99, 0xeb, 0x20, 0x66, 0x08, 0x2e, 0x26, 0x64, 0xd7, 0x76, 0xf3, 0xb4, 0xc5, 0xa4, 0x35, 0x92, 0xd2, 0x99, 0x70, 0x5a, 0x1a, 0xe9, 0xe9, 0x3d, 0x3b, 0xe1, 0xcd, 0x0e, 0xee, 0x24, 0x13, 0x03, 0x22, 0xd6, 0xd6, 0x72, 0x08, 0x2b, 0xde, 0xfd, 0x93, 0xed, 0x0c, 0x7f, 0x5e, 0x31, 0x22, 0x4d, 0x80, 0x78, 0xc0, 0x48}, - }, - { /* 21P*/ - addYX: fp.Elt{0x8f, 0x72, 0xd2, 0x9e, 0xc4, 0xcd, 0x2c, 0xbf, 0xa8, 0xd3, 0x24, 0x62, 0x28, 0xee, 0x39, 0x0a, 0x19, 0x3a, 0x58, 0xff, 0x21, 0x2e, 0x69, 0x6c, 0x6e, 0x18, 0xd0, 0xcd, 0x61, 0xc1, 0x18, 0x02, 0x5a, 0xe9, 0xe3, 0xef, 0x1f, 0x8e, 0x10, 0xe8, 0x90, 0x2b, 0x48, 0xcd, 0xee, 0x38, 0xbd, 0x3a, 0xca, 0xbc, 0x2d, 0xe2, 0x3a, 0x03, 0x71, 0x02}, - subYX: fp.Elt{0xf8, 0xa4, 0x32, 0x26, 0x66, 0xaf, 0x3b, 0x53, 0xe7, 0xb0, 0x91, 0x92, 0xf5, 0x3c, 0x74, 0xce, 0xf2, 0xdd, 0x68, 0xa9, 0xf4, 0xcd, 0x5f, 0x60, 0xab, 0x71, 0xdf, 0xcd, 0x5c, 0x5d, 0x51, 0x72, 0x3a, 0x96, 0xea, 0xd6, 0xde, 0x54, 0x8e, 0x55, 0x4c, 0x08, 0x4c, 0x60, 0xdd, 0x34, 0xa9, 0x6f, 0xf3, 0x04, 0x02, 0xa8, 0xa6, 0x4e, 0x4d, 0x62}, - dt2: fp.Elt{0x76, 0x4a, 0xae, 0x38, 0x62, 0x69, 0x72, 0xdc, 0xe8, 0x43, 0xbe, 0x1d, 0x61, 0xde, 0x31, 0xc3, 0x42, 0x8f, 0x33, 0x9d, 0xca, 0xc7, 0x9c, 0xec, 0x6a, 0xe2, 0xaa, 0x01, 0x49, 0x78, 0x8d, 0x72, 0x4f, 0x38, 0xea, 0x52, 0xc2, 0xd3, 0xc9, 0x39, 0x71, 0xba, 0xb9, 0x09, 0x9b, 0xa3, 0x7f, 0x45, 0x43, 0x65, 0x36, 0x29, 0xca, 0xe7, 0x5c, 0x5f}, - }, - { /* 23P*/ - addYX: fp.Elt{0x89, 0x42, 0x35, 0x48, 0x6d, 0x74, 0xe5, 0x1f, 0xc3, 0xdd, 0x28, 0x5b, 0x84, 0x41, 0x33, 0x9f, 0x42, 0xf3, 0x1d, 0x5d, 0x15, 0x6d, 0x76, 0x33, 0x36, 0xaf, 0xe9, 0xdd, 0xfa, 0x63, 0x4f, 0x7a, 0x9c, 0xeb, 0x1c, 0x4f, 0x34, 0x65, 0x07, 0x54, 0xbb, 0x4c, 0x8b, 0x62, 0x9d, 0xd0, 0x06, 0x99, 0xb3, 0xe9, 0xda, 0x85, 0x19, 0xb0, 0x3d, 0x3c}, - subYX: fp.Elt{0xbb, 0x99, 0xf6, 0xbf, 0xaf, 0x2c, 0x22, 0x0d, 0x7a, 0xaa, 0x98, 0x6f, 0x01, 0x82, 0x99, 0xcf, 0x88, 0xbd, 0x0e, 0x3a, 0x89, 0xe0, 0x9c, 0x8c, 0x17, 0x20, 0xc4, 0xe0, 0xcf, 0x43, 0x7a, 0xef, 0x0d, 0x9f, 0x87, 0xd4, 0xfb, 0xf2, 0x96, 0xb8, 0x03, 0xe8, 0xcb, 0x5c, 0xec, 0x65, 0x5f, 0x49, 0xa4, 0x7c, 0x85, 0xb4, 0xf6, 0xc7, 0xdb, 0xa3}, - dt2: fp.Elt{0x11, 0xf3, 0x32, 0xa3, 0xa7, 0xb2, 0x7d, 0x51, 0x82, 0x44, 0xeb, 0xa2, 0x7d, 0x72, 0xcb, 0xc6, 0xf6, 0xc7, 0xb2, 0x38, 0x0e, 0x0f, 0x4f, 0x29, 0x00, 0xe4, 0x5b, 0x94, 0x46, 0x86, 0x66, 0xa1, 0x83, 0xb3, 0xeb, 0x15, 0xb6, 0x31, 0x50, 0x28, 0xeb, 0xed, 0x0d, 0x32, 0x39, 0xe9, 0x23, 0x81, 0x99, 0x3e, 0xff, 0x17, 0x4c, 0x11, 0x43, 0xd1}, - }, - { /* 25P*/ - addYX: fp.Elt{0xce, 0xe7, 0xf8, 0x94, 0x8f, 0x96, 0xf8, 0x96, 0xe6, 0x72, 0x20, 0x44, 0x2c, 0xa7, 0xfc, 0xba, 0xc8, 0xe1, 0xbb, 0xc9, 0x16, 0x85, 0xcd, 0x0b, 0xe5, 0xb5, 0x5a, 0x7f, 0x51, 0x43, 0x63, 0x8b, 0x23, 0x8e, 0x1d, 0x31, 0xff, 0x46, 0x02, 0x66, 0xcc, 0x9e, 0x4d, 0xa2, 0xca, 0xe2, 0xc7, 0xfd, 0x22, 0xb1, 0xdb, 0xdf, 0x6f, 0xe6, 0xa5, 0x82}, - subYX: fp.Elt{0xd0, 0xf5, 0x65, 0x40, 0xec, 0x8e, 0x65, 0x42, 0x78, 0xc1, 0x65, 0xe4, 0x10, 0xc8, 0x0b, 0x1b, 0xdd, 0x96, 0x68, 0xce, 0xee, 0x45, 0x55, 0xd8, 0x6e, 0xd3, 0xe6, 0x77, 0x19, 0xae, 0xc2, 0x8d, 0x8d, 0x3e, 0x14, 0x3f, 0x6d, 0x00, 0x2f, 0x9b, 0xd1, 0x26, 0x60, 0x28, 0x0f, 0x3a, 0x47, 0xb3, 0xe6, 0x68, 0x28, 0x24, 0x25, 0xca, 0xc8, 0x06}, - dt2: fp.Elt{0x54, 0xbb, 0x60, 0x92, 0xdb, 0x8f, 0x0f, 0x38, 0xe0, 0xe6, 0xe4, 0xc9, 0xcc, 0x14, 0x62, 0x01, 0xc4, 0x2b, 0x0f, 0xcf, 0xed, 0x7d, 0x8e, 0xa4, 0xd9, 0x73, 0x0b, 0xba, 0x0c, 0xaf, 0x0c, 0xf9, 0xe2, 0xeb, 0x29, 0x2a, 0x53, 0xdf, 0x2c, 0x5a, 0xfa, 0x8f, 0xc1, 0x01, 0xd7, 0xb1, 0x45, 0x73, 0x92, 0x32, 0x83, 0x85, 0x12, 0x74, 0x89, 0x44}, - }, - { /* 27P*/ - addYX: fp.Elt{0x0b, 0x73, 0x3c, 0xc2, 0xb1, 0x2e, 0xe1, 0xa7, 0xf5, 0xc9, 0x7a, 0xfb, 0x3d, 0x2d, 0xac, 0x59, 0xdb, 0xfa, 0x36, 0x11, 0xd1, 0x13, 0x04, 0x51, 0x1d, 0xab, 0x9b, 0x6b, 0x93, 0xfe, 0xda, 0xb0, 0x8e, 0xb4, 0x79, 0x11, 0x21, 0x0f, 0x65, 0xb9, 0xbb, 0x79, 0x96, 0x2a, 0xfd, 0x30, 0xe0, 0xb4, 0x2d, 0x9a, 0x55, 0x25, 0x5d, 0xd4, 0xad, 0x2a}, - subYX: fp.Elt{0x9e, 0xc5, 0x04, 0xfe, 0xec, 0x3c, 0x64, 0x1c, 0xed, 0x95, 0xed, 0xae, 0xaf, 0x5c, 0x6e, 0x08, 0x9e, 0x02, 0x29, 0x59, 0x7e, 0x5f, 0xc4, 0x9a, 0xd5, 0x32, 0x72, 0x86, 0xe1, 0x4e, 0x3c, 0xce, 0x99, 0x69, 0x3b, 0xc4, 0xdd, 0x4d, 0xb7, 0xbb, 0xda, 0x3b, 0x1a, 0x99, 0xaa, 0x62, 0x15, 0xc1, 0xf0, 0xb6, 0x6c, 0xec, 0x56, 0xc1, 0xff, 0x0c}, - dt2: fp.Elt{0x2f, 0xf1, 0x3f, 0x7a, 0x2d, 0x56, 0x19, 0x7f, 0xea, 0xbe, 0x59, 0x2e, 0x13, 0x67, 0x81, 0xfb, 0xdb, 0xc8, 0xa3, 0x1d, 0xd5, 0xe9, 0x13, 0x8b, 0x29, 0xdf, 0xcf, 0x9f, 0xe7, 0xd9, 0x0b, 0x70, 0xd3, 0x15, 0x57, 0x4a, 0xe9, 0x50, 0x12, 0x1b, 0x81, 0x4b, 0x98, 0x98, 0xa8, 0x31, 0x1d, 0x27, 0x47, 0x38, 0xed, 0x57, 0x99, 0x26, 0xb2, 0xee}, - }, - { /* 29P*/ - addYX: fp.Elt{0x1c, 0xb2, 0xb2, 0x67, 0x3b, 0x8b, 0x3d, 0x5a, 0x30, 0x7e, 0x38, 0x7e, 0x3c, 0x3d, 0x28, 0x56, 0x59, 0xd8, 0x87, 0x53, 0x8b, 0xe6, 0x6c, 0x5d, 0xe5, 0x0a, 0x33, 0x10, 0xce, 0xa2, 0x17, 0x0d, 0xe8, 0x76, 0xee, 0x68, 0xa8, 0x72, 0x54, 0xbd, 0xa6, 0x24, 0x94, 0x6e, 0x77, 0xc7, 0x53, 0xb7, 0x89, 0x1c, 0x7a, 0xe9, 0x78, 0x9a, 0x74, 0x5f}, - subYX: fp.Elt{0x76, 0x96, 0x1c, 0xcf, 0x08, 0x55, 0xd8, 0x1e, 0x0d, 0xa3, 0x59, 0x95, 0x32, 0xf4, 0xc2, 0x8e, 0x84, 0x5e, 0x4b, 0x04, 0xda, 0x71, 0xc9, 0x78, 0x52, 0xde, 0x14, 0xb4, 0x31, 0xf4, 0xd4, 0xb8, 0x58, 0xc5, 0x20, 0xe8, 0xdd, 0x15, 0xb5, 0xee, 0xea, 0x61, 0xe0, 0xf5, 0xd6, 0xae, 0x55, 0x59, 0x05, 0x3e, 0xaf, 0x74, 0xac, 0x1f, 0x17, 0x82}, - dt2: fp.Elt{0x59, 0x24, 0xcd, 0xfc, 0x11, 0x7e, 0x85, 0x18, 0x3d, 0x69, 0xf7, 0x71, 0x31, 0x66, 0x98, 0x42, 0x95, 0x00, 0x8c, 0xb2, 0xae, 0x39, 0x7e, 0x85, 0xd6, 0xb0, 0x02, 0xec, 0xce, 0xfc, 0x25, 0xb2, 0xe3, 0x99, 0x8e, 0x5b, 0x61, 0x96, 0x2e, 0x6d, 0x96, 0x57, 0x71, 0xa5, 0x93, 0x41, 0x0e, 0x6f, 0xfd, 0x0a, 0xbf, 0xa9, 0xf7, 0x56, 0xa9, 0x3e}, - }, - { /* 31P*/ - addYX: fp.Elt{0xa2, 0x2e, 0x0c, 0x17, 0x4d, 0xcc, 0x85, 0x2c, 0x18, 0xa0, 0xd2, 0x08, 0xba, 0x11, 0xfa, 0x47, 0x71, 0x86, 0xaf, 0x36, 0x6a, 0xd7, 0xfe, 0xb9, 0xb0, 0x2f, 0x89, 0x98, 0x49, 0x69, 0xf8, 0x6a, 0xad, 0x27, 0x5e, 0x0a, 0x22, 0x60, 0x5e, 0x5d, 0xca, 0x06, 0x51, 0x27, 0x99, 0x29, 0x85, 0x68, 0x98, 0xe1, 0xc4, 0x21, 0x50, 0xa0, 0xe9, 0xc1}, - subYX: fp.Elt{0x4d, 0x70, 0xee, 0x91, 0x92, 0x3f, 0xb7, 0xd3, 0x1d, 0xdb, 0x8d, 0x6e, 0x16, 0xf5, 0x65, 0x7d, 0x5f, 0xb5, 0x6c, 0x59, 0x26, 0x70, 0x4b, 0xf2, 0xfc, 0xe7, 0xdf, 0x86, 0xfe, 0xa5, 0xa7, 0xa6, 0x5d, 0xfb, 0x06, 0xe9, 0xf9, 0xcc, 0xc0, 0x37, 0xcc, 0xd8, 0x09, 0x04, 0xd2, 0xa5, 0x1d, 0xd7, 0xb7, 0xce, 0x92, 0xac, 0x3c, 0xad, 0xfb, 0xae}, - dt2: fp.Elt{0x17, 0xa3, 0x9a, 0xc7, 0x86, 0x2a, 0x51, 0xf7, 0x96, 0x79, 0x49, 0x22, 0x2e, 0x5a, 0x01, 0x5c, 0xb5, 0x95, 0xd4, 0xe8, 0xcb, 0x00, 0xca, 0x2d, 0x55, 0xb6, 0x34, 0x36, 0x0b, 0x65, 0x46, 0xf0, 0x49, 0xfc, 0x87, 0x86, 0xe5, 0xc3, 0x15, 0xdb, 0x32, 0xcd, 0xf2, 0xd3, 0x82, 0x4c, 0xe6, 0x61, 0x8a, 0xaf, 0xd4, 0x9e, 0x0f, 0x5a, 0xf2, 0x81}, - }, - { /* 33P*/ - addYX: fp.Elt{0x88, 0x10, 0xc0, 0xcb, 0xf5, 0x77, 0xae, 0xa5, 0xbe, 0xf6, 0xcd, 0x2e, 0x8b, 0x7e, 0xbd, 0x79, 0x62, 0x4a, 0xeb, 0x69, 0xc3, 0x28, 0xaa, 0x72, 0x87, 0xa9, 0x25, 0x87, 0x46, 0xea, 0x0e, 0x62, 0xa3, 0x6a, 0x1a, 0xe2, 0xba, 0xdc, 0x81, 0x10, 0x33, 0x01, 0xf6, 0x16, 0x89, 0x80, 0xc6, 0xcd, 0xdb, 0xdc, 0xba, 0x0e, 0x09, 0x4a, 0x35, 0x4a}, - subYX: fp.Elt{0x86, 0xb2, 0x2b, 0xd0, 0xb8, 0x4a, 0x6d, 0x66, 0x7b, 0x32, 0xdf, 0x3b, 0x1a, 0x19, 0x1f, 0x63, 0xee, 0x1f, 0x3d, 0x1c, 0x5c, 0x14, 0x60, 0x5b, 0x72, 0x49, 0x07, 0xb1, 0x0d, 0x72, 0xc6, 0x35, 0xf0, 0xbc, 0x5e, 0xda, 0x80, 0x6b, 0x64, 0x5b, 0xe5, 0x34, 0x54, 0x39, 0xdd, 0xe6, 0x3c, 0xcb, 0xe5, 0x29, 0x32, 0x06, 0xc6, 0xb1, 0x96, 0x34}, - dt2: fp.Elt{0x85, 0x86, 0xf5, 0x84, 0x86, 0xe6, 0x77, 0x8a, 0x71, 0x85, 0x0c, 0x4f, 0x81, 0x5b, 0x29, 0x06, 0xb5, 0x2e, 0x26, 0x71, 0x07, 0x78, 0x07, 0xae, 0xbc, 0x95, 0x46, 0xc3, 0x65, 0xac, 0xe3, 0x76, 0x51, 0x7d, 0xd4, 0x85, 0x31, 0xe3, 0x43, 0xf3, 0x1b, 0x7c, 0xf7, 0x6b, 0x2c, 0xf8, 0x1c, 0xbb, 0x8d, 0xca, 0xab, 0x4b, 0xba, 0x7f, 0xa4, 0xe2}, - }, - { /* 35P*/ - addYX: fp.Elt{0x1a, 0xee, 0xe7, 0xa4, 0x8a, 0x9d, 0x53, 0x80, 0xc6, 0xb8, 0x4e, 0xdc, 0x89, 0xe0, 0xc4, 0x2b, 0x60, 0x52, 0x6f, 0xec, 0x81, 0xd2, 0x55, 0x6b, 0x1b, 0x6f, 0x17, 0x67, 0x8e, 0x42, 0x26, 0x4c, 0x65, 0x23, 0x29, 0xc6, 0x7b, 0xcd, 0x9f, 0xad, 0x4b, 0x42, 0xd3, 0x0c, 0x75, 0xc3, 0x8a, 0xf5, 0xbe, 0x9e, 0x55, 0xf7, 0x47, 0x5d, 0xbd, 0x3a}, - subYX: fp.Elt{0x0d, 0xa8, 0x3b, 0xf9, 0xc7, 0x7e, 0xc6, 0x86, 0x94, 0xc0, 0x01, 0xff, 0x27, 0xce, 0x43, 0xac, 0xe5, 0xe1, 0xd2, 0x8d, 0xc1, 0x22, 0x31, 0xbe, 0xe1, 0xaf, 0xf9, 0x4a, 0x78, 0xa1, 0x0c, 0xaa, 0xd4, 0x80, 0xe4, 0x09, 0x8d, 0xfb, 0x1d, 0x52, 0xc8, 0x60, 0x2d, 0xf2, 0xa2, 0x89, 0x02, 0x56, 0x3d, 0x56, 0x27, 0x85, 0xc7, 0xf0, 0x2b, 0x9a}, - dt2: fp.Elt{0x62, 0x7c, 0xc7, 0x6b, 0x2c, 0x9d, 0x0a, 0x7c, 0xe5, 0x50, 0x3c, 0xe6, 0x87, 0x1c, 0x82, 0x30, 0x67, 0x3c, 0x39, 0xb6, 0xa0, 0x31, 0xfb, 0x03, 0x7b, 0xa1, 0x58, 0xdf, 0x12, 0x76, 0x5d, 0x5d, 0x0a, 0x8f, 0x9b, 0x37, 0x32, 0xc3, 0x60, 0x33, 0xea, 0x9f, 0x0a, 0x99, 0xfa, 0x20, 0xd0, 0x33, 0x21, 0xc3, 0x94, 0xd4, 0x86, 0x49, 0x7c, 0x4e}, - }, - { /* 37P*/ - addYX: fp.Elt{0xc7, 0x0c, 0x71, 0xfe, 0x55, 0xd1, 0x95, 0x8f, 0x43, 0xbb, 0x6b, 0x74, 0x30, 0xbd, 0xe8, 0x6f, 0x1c, 0x1b, 0x06, 0x62, 0xf5, 0xfc, 0x65, 0xa0, 0xeb, 0x81, 0x12, 0xc9, 0x64, 0x66, 0x61, 0xde, 0xf3, 0x6d, 0xd4, 0xae, 0x8e, 0xb1, 0x72, 0xe0, 0xcd, 0x37, 0x01, 0x28, 0x52, 0xd7, 0x39, 0x46, 0x0c, 0x55, 0xcf, 0x47, 0x70, 0xef, 0xa1, 0x17}, - subYX: fp.Elt{0x8d, 0x58, 0xde, 0x83, 0x88, 0x16, 0x0e, 0x12, 0x42, 0x03, 0x50, 0x60, 0x4b, 0xdf, 0xbf, 0x95, 0xcc, 0x7d, 0x18, 0x17, 0x7e, 0x31, 0x5d, 0x8a, 0x66, 0xc1, 0xcf, 0x14, 0xea, 0xf4, 0xf4, 0xe5, 0x63, 0x2d, 0x32, 0x86, 0x9b, 0xed, 0x1f, 0x4f, 0x03, 0xaf, 0x33, 0x92, 0xcb, 0xaf, 0x9c, 0x05, 0x0d, 0x47, 0x1b, 0x42, 0xba, 0x13, 0x22, 0x98}, - dt2: fp.Elt{0xb5, 0x48, 0xeb, 0x7d, 0x3d, 0x10, 0x9f, 0x59, 0xde, 0xf8, 0x1c, 0x4f, 0x7d, 0x9d, 0x40, 0x4d, 0x9e, 0x13, 0x24, 0xb5, 0x21, 0x09, 0xb7, 0xee, 0x98, 0x5c, 0x56, 0xbc, 0x5e, 0x2b, 0x78, 0x38, 0x06, 0xac, 0xe3, 0xe0, 0xfa, 0x2e, 0xde, 0x4f, 0xd2, 0xb3, 0xfb, 0x2d, 0x71, 0x84, 0xd1, 0x9d, 0x12, 0x5b, 0x35, 0xc8, 0x03, 0x68, 0x67, 0xc7}, - }, - { /* 39P*/ - addYX: fp.Elt{0xb6, 0x65, 0xfb, 0xa7, 0x06, 0x35, 0xbb, 0xe0, 0x31, 0x8d, 0x91, 0x40, 0x98, 0xab, 0x30, 0xe4, 0xca, 0x12, 0x59, 0x89, 0xed, 0x65, 0x5d, 0x7f, 0xae, 0x69, 0xa0, 0xa4, 0xfa, 0x78, 0xb4, 0xf7, 0xed, 0xae, 0x86, 0x78, 0x79, 0x64, 0x24, 0xa6, 0xd4, 0xe1, 0xf6, 0xd3, 0xa0, 0x89, 0xba, 0x20, 0xf4, 0x54, 0x0d, 0x8f, 0xdb, 0x1a, 0x79, 0xdb}, - subYX: fp.Elt{0xe1, 0x82, 0x0c, 0x4d, 0xde, 0x9f, 0x40, 0xf0, 0xc1, 0xbd, 0x8b, 0xd3, 0x24, 0x03, 0xcd, 0xf2, 0x92, 0x7d, 0xe2, 0x68, 0x7f, 0xf1, 0xbe, 0x69, 0xde, 0x34, 0x67, 0x4c, 0x85, 0x3b, 0xec, 0x98, 0xcc, 0x4d, 0x3e, 0xc0, 0x96, 0x27, 0xe6, 0x75, 0xfc, 0xdf, 0x37, 0xc0, 0x1e, 0x27, 0xe0, 0xf6, 0xc2, 0xbd, 0xbc, 0x3d, 0x9b, 0x39, 0xdc, 0xe2}, - dt2: fp.Elt{0xd8, 0x29, 0xa7, 0x39, 0xe3, 0x9f, 0x2f, 0x0e, 0x4b, 0x24, 0x21, 0x70, 0xef, 0xfd, 0x91, 0xea, 0xbf, 0xe1, 0x72, 0x90, 0xcc, 0xc9, 0x84, 0x0e, 0xad, 0xd5, 0xe6, 0xbb, 0xc5, 0x99, 0x7f, 0xa4, 0xf0, 0x2e, 0xcc, 0x95, 0x64, 0x27, 0x19, 0xd8, 0x4c, 0x27, 0x0d, 0xff, 0xb6, 0x29, 0xe2, 0x6c, 0xfa, 0xbb, 0x4d, 0x9c, 0xbb, 0xaf, 0xa5, 0xec}, - }, - { /* 41P*/ - addYX: fp.Elt{0xd6, 0x33, 0x3f, 0x9f, 0xcf, 0xfd, 0x4c, 0xd1, 0xfe, 0xe5, 0xeb, 0x64, 0x27, 0xae, 0x7a, 0xa2, 0x82, 0x50, 0x6d, 0xaa, 0xe3, 0x5d, 0xe2, 0x48, 0x60, 0xb3, 0x76, 0x04, 0xd9, 0x19, 0xa7, 0xa1, 0x73, 0x8d, 0x38, 0xa9, 0xaf, 0x45, 0xb5, 0xb2, 0x62, 0x9b, 0xf1, 0x35, 0x7b, 0x84, 0x66, 0xeb, 0x06, 0xef, 0xf1, 0xb2, 0x2d, 0x6a, 0x61, 0x15}, - subYX: fp.Elt{0x86, 0x50, 0x42, 0xf7, 0xda, 0x59, 0xb2, 0xcf, 0x0d, 0x3d, 0xee, 0x8e, 0x53, 0x5d, 0xf7, 0x9e, 0x6a, 0x26, 0x2d, 0xc7, 0x8c, 0x8e, 0x18, 0x50, 0x6d, 0xb7, 0x51, 0x4c, 0xa7, 0x52, 0x6e, 0x0e, 0x0a, 0x16, 0x74, 0xb2, 0x81, 0x8b, 0x56, 0x27, 0x22, 0x84, 0xf4, 0x56, 0xc5, 0x06, 0xe1, 0x8b, 0xca, 0x2d, 0xdb, 0x9a, 0xf6, 0x10, 0x9c, 0x51}, - dt2: fp.Elt{0x1f, 0x16, 0xa2, 0x78, 0x96, 0x1b, 0x85, 0x9c, 0x76, 0x49, 0xd4, 0x0f, 0xac, 0xb0, 0xf4, 0xd0, 0x06, 0x2c, 0x7e, 0x6d, 0x6e, 0x8e, 0xc7, 0x9f, 0x18, 0xad, 0xfc, 0x88, 0x0c, 0x0c, 0x09, 0x05, 0x05, 0xa0, 0x79, 0x72, 0x32, 0x72, 0x87, 0x0f, 0x49, 0x87, 0x0c, 0xb4, 0x12, 0xc2, 0x09, 0xf8, 0x9f, 0x30, 0x72, 0xa9, 0x47, 0x13, 0x93, 0x49}, - }, - { /* 43P*/ - addYX: fp.Elt{0xcc, 0xb1, 0x4c, 0xd3, 0xc0, 0x9e, 0x9e, 0x4d, 0x6d, 0x28, 0x0b, 0xa5, 0x94, 0xa7, 0x2e, 0xc2, 0xc7, 0xaf, 0x29, 0x73, 0xc9, 0x68, 0xea, 0x0f, 0x34, 0x37, 0x8d, 0x96, 0x8f, 0x3a, 0x3d, 0x73, 0x1e, 0x6d, 0x9f, 0xcf, 0x8d, 0x83, 0xb5, 0x71, 0xb9, 0xe1, 0x4b, 0x67, 0x71, 0xea, 0xcf, 0x56, 0xe5, 0xeb, 0x72, 0x15, 0x2f, 0x9e, 0xa8, 0xaa}, - subYX: fp.Elt{0xf4, 0x3e, 0x85, 0x1c, 0x1a, 0xef, 0x50, 0xd1, 0xb4, 0x20, 0xb2, 0x60, 0x05, 0x98, 0xfe, 0x47, 0x3b, 0xc1, 0x76, 0xca, 0x2c, 0x4e, 0x5a, 0x42, 0xa3, 0xf7, 0x20, 0xaa, 0x57, 0x39, 0xee, 0x34, 0x1f, 0xe1, 0x68, 0xd3, 0x7e, 0x06, 0xc4, 0x6c, 0xc7, 0x76, 0x2b, 0xe4, 0x1c, 0x48, 0x44, 0xe6, 0xe5, 0x44, 0x24, 0x8d, 0xb3, 0xb6, 0x88, 0x32}, - dt2: fp.Elt{0x18, 0xa7, 0xba, 0xd0, 0x44, 0x6f, 0x33, 0x31, 0x00, 0xf8, 0xf6, 0x12, 0xe3, 0xc5, 0xc7, 0xb5, 0x91, 0x9c, 0x91, 0xb5, 0x75, 0x18, 0x18, 0x8a, 0xab, 0xed, 0x24, 0x11, 0x2e, 0xce, 0x5a, 0x0f, 0x94, 0x5f, 0x2e, 0xca, 0xd3, 0x80, 0xea, 0xe5, 0x34, 0x96, 0x67, 0x8b, 0x6a, 0x26, 0x5e, 0xc8, 0x9d, 0x2c, 0x5e, 0x6c, 0xa2, 0x0c, 0xbf, 0xf0}, - }, - { /* 45P*/ - addYX: fp.Elt{0xb3, 0xbf, 0xa3, 0x85, 0xee, 0xf6, 0x58, 0x02, 0x78, 0xc4, 0x30, 0xd6, 0x57, 0x59, 0x8c, 0x88, 0x08, 0x7c, 0xbc, 0xbe, 0x0a, 0x74, 0xa9, 0xde, 0x69, 0xe7, 0x41, 0xd8, 0xbf, 0x66, 0x8d, 0x3d, 0x28, 0x00, 0x8c, 0x47, 0x65, 0x34, 0xfe, 0x86, 0x9e, 0x6a, 0xf2, 0x41, 0x6a, 0x94, 0xc4, 0x88, 0x75, 0x23, 0x0d, 0x52, 0x69, 0xee, 0x07, 0x89}, - subYX: fp.Elt{0x22, 0x3c, 0xa1, 0x70, 0x58, 0x97, 0x93, 0xbe, 0x59, 0xa8, 0x0b, 0x8a, 0x46, 0x2a, 0x38, 0x1e, 0x08, 0x6b, 0x61, 0x9f, 0xf2, 0x4a, 0x8b, 0x80, 0x68, 0x6e, 0xc8, 0x92, 0x60, 0xf3, 0xc9, 0x89, 0xb2, 0x6d, 0x63, 0xb0, 0xeb, 0x83, 0x15, 0x63, 0x0e, 0x64, 0xbb, 0xb8, 0xfe, 0xb4, 0x81, 0x90, 0x01, 0x28, 0x10, 0xb9, 0x74, 0x6e, 0xde, 0xa4}, - dt2: fp.Elt{0x1a, 0x23, 0x45, 0xa8, 0x6f, 0x4e, 0xa7, 0x4a, 0x0c, 0xeb, 0xb0, 0x43, 0xf9, 0xef, 0x99, 0x60, 0x5b, 0xdb, 0x66, 0xc0, 0x86, 0x71, 0x43, 0xb1, 0x22, 0x7b, 0x1c, 0xe7, 0x8d, 0x09, 0x1d, 0x83, 0x76, 0x9c, 0xd3, 0x5a, 0xdd, 0x42, 0xd9, 0x2f, 0x2d, 0xba, 0x7a, 0xc2, 0xd9, 0x6b, 0xd4, 0x7a, 0xf1, 0xd5, 0x5f, 0x6b, 0x85, 0xbf, 0x0b, 0xf1}, - }, - { /* 47P*/ - addYX: fp.Elt{0xb2, 0x83, 0xfa, 0x1f, 0xd2, 0xce, 0xb6, 0xf2, 0x2d, 0xea, 0x1b, 0xe5, 0x29, 0xa5, 0x72, 0xf9, 0x25, 0x48, 0x4e, 0xf2, 0x50, 0x1b, 0x39, 0xda, 0x34, 0xc5, 0x16, 0x13, 0xb4, 0x0c, 0xa1, 0x00, 0x79, 0x7a, 0xf5, 0x8b, 0xf3, 0x70, 0x14, 0xb6, 0xfc, 0x9a, 0x47, 0x68, 0x1e, 0x42, 0x70, 0x64, 0x2a, 0x84, 0x3e, 0x3d, 0x20, 0x58, 0xf9, 0x6a}, - subYX: fp.Elt{0xd9, 0xee, 0xc0, 0xc4, 0xf5, 0xc2, 0x86, 0xaf, 0x45, 0xd2, 0xd2, 0x87, 0x1b, 0x64, 0xd5, 0xe0, 0x8c, 0x44, 0x00, 0x4f, 0x43, 0x89, 0x04, 0x48, 0x4a, 0x0b, 0xca, 0x94, 0x06, 0x2f, 0x23, 0x5b, 0x6c, 0x8d, 0x44, 0x66, 0x53, 0xf5, 0x5a, 0x20, 0x72, 0x28, 0x58, 0x84, 0xcc, 0x73, 0x22, 0x5e, 0xd1, 0x0b, 0x56, 0x5e, 0x6a, 0xa3, 0x11, 0x91}, - dt2: fp.Elt{0x6e, 0x9f, 0x88, 0xa8, 0x68, 0x2f, 0x12, 0x37, 0x88, 0xfc, 0x92, 0x8f, 0x24, 0xeb, 0x5b, 0x2a, 0x2a, 0xd0, 0x14, 0x40, 0x4c, 0xa9, 0xa4, 0x03, 0x0c, 0x45, 0x48, 0x13, 0xe8, 0xa6, 0x37, 0xab, 0xc0, 0x06, 0x38, 0x6c, 0x96, 0x73, 0x40, 0x6c, 0xc6, 0xea, 0x56, 0xc6, 0xe9, 0x1a, 0x69, 0xeb, 0x7a, 0xd1, 0x33, 0x69, 0x58, 0x2b, 0xea, 0x2f}, - }, - { /* 49P*/ - addYX: fp.Elt{0x58, 0xa8, 0x05, 0x41, 0x00, 0x9d, 0xaa, 0xd9, 0x98, 0xcf, 0xb9, 0x41, 0xb5, 0x4a, 0x8d, 0xe2, 0xe7, 0xc0, 0x72, 0xef, 0xc8, 0x28, 0x6b, 0x68, 0x9d, 0xc9, 0xdf, 0x05, 0x8b, 0xd0, 0x04, 0x74, 0x79, 0x45, 0x52, 0x05, 0xa3, 0x6e, 0x35, 0x3a, 0xe3, 0xef, 0xb2, 0xdc, 0x08, 0x6f, 0x4e, 0x76, 0x85, 0x67, 0xba, 0x23, 0x8f, 0xdd, 0xaf, 0x09}, - subYX: fp.Elt{0xb4, 0x38, 0xc8, 0xff, 0x4f, 0x65, 0x2a, 0x7e, 0xad, 0xb1, 0xc6, 0xb9, 0x3d, 0xd6, 0xf7, 0x14, 0xcf, 0xf6, 0x98, 0x75, 0xbb, 0x47, 0x83, 0x90, 0xe7, 0xe1, 0xf6, 0x14, 0x99, 0x7e, 0xfa, 0xe4, 0x77, 0x24, 0xe3, 0xe7, 0xf0, 0x1e, 0xdb, 0x27, 0x4e, 0x16, 0x04, 0xf2, 0x08, 0x52, 0xfc, 0xec, 0x55, 0xdb, 0x2e, 0x67, 0xe1, 0x94, 0x32, 0x89}, - dt2: fp.Elt{0x00, 0xad, 0x03, 0x35, 0x1a, 0xb1, 0x88, 0xf0, 0xc9, 0x11, 0xe4, 0x12, 0x52, 0x61, 0xfd, 0x8a, 0x1b, 0x6a, 0x0a, 0x4c, 0x42, 0x46, 0x22, 0x0e, 0xa5, 0xf9, 0xe2, 0x50, 0xf2, 0xb2, 0x1f, 0x20, 0x78, 0x10, 0xf6, 0xbf, 0x7f, 0x0c, 0x9c, 0xad, 0x40, 0x8b, 0x82, 0xd4, 0xba, 0x69, 0x09, 0xac, 0x4b, 0x6d, 0xc4, 0x49, 0x17, 0x81, 0x57, 0x3b}, - }, - { /* 51P*/ - addYX: fp.Elt{0x0d, 0xfe, 0xb4, 0x35, 0x11, 0xbd, 0x1d, 0x6b, 0xc2, 0xc5, 0x3b, 0xd2, 0x23, 0x2c, 0x72, 0xe3, 0x48, 0xb1, 0x48, 0x73, 0xfb, 0xa3, 0x21, 0x6e, 0xc0, 0x09, 0x69, 0xac, 0xe1, 0x60, 0xbc, 0x24, 0x03, 0x99, 0x63, 0x0a, 0x00, 0xf0, 0x75, 0xf6, 0x92, 0xc5, 0xd6, 0xdb, 0x51, 0xd4, 0x7d, 0xe6, 0xf4, 0x11, 0x79, 0xd7, 0xc3, 0xaf, 0x48, 0xd0}, - subYX: fp.Elt{0xf4, 0x4f, 0xaf, 0x31, 0xe3, 0x10, 0x89, 0x95, 0xf0, 0x8a, 0xf6, 0x31, 0x9f, 0x48, 0x02, 0xba, 0x42, 0x2b, 0x3c, 0x22, 0x8b, 0xcc, 0x12, 0x98, 0x6e, 0x7a, 0x64, 0x3a, 0xc4, 0xca, 0x32, 0x2a, 0x72, 0xf8, 0x2c, 0xcf, 0x78, 0x5e, 0x7a, 0x75, 0x6e, 0x72, 0x46, 0x48, 0x62, 0x28, 0xac, 0x58, 0x1a, 0xc6, 0x59, 0x88, 0x2a, 0x44, 0x9e, 0x83}, - dt2: fp.Elt{0xb3, 0xde, 0x36, 0xfd, 0xeb, 0x1b, 0xd4, 0x24, 0x1b, 0x08, 0x8c, 0xfe, 0xa9, 0x41, 0xa1, 0x64, 0xf2, 0x6d, 0xdb, 0xf9, 0x94, 0xae, 0x86, 0x71, 0xab, 0x10, 0xbf, 0xa3, 0xb2, 0xa0, 0xdf, 0x10, 0x8c, 0x74, 0xce, 0xb3, 0xfc, 0xdb, 0xba, 0x15, 0xf6, 0x91, 0x7a, 0x9c, 0x36, 0x1e, 0x45, 0x07, 0x3c, 0xec, 0x1a, 0x61, 0x26, 0x93, 0xe3, 0x50}, - }, - { /* 53P*/ - addYX: fp.Elt{0xc5, 0x50, 0xc5, 0x83, 0xb0, 0xbd, 0xd9, 0xf6, 0x6d, 0x15, 0x5e, 0xc1, 0x1a, 0x33, 0xa0, 0xce, 0x13, 0x70, 0x3b, 0xe1, 0x31, 0xc6, 0xc4, 0x02, 0xec, 0x8c, 0xd5, 0x9c, 0x97, 0xd3, 0x12, 0xc4, 0xa2, 0xf9, 0xd5, 0xfb, 0x22, 0x69, 0x94, 0x09, 0x2f, 0x59, 0xce, 0xdb, 0xf2, 0xf2, 0x00, 0xe0, 0xa9, 0x08, 0x44, 0x2e, 0x8b, 0x6b, 0xf5, 0xb3}, - subYX: fp.Elt{0x90, 0xdd, 0xec, 0xa2, 0x65, 0xb7, 0x61, 0xbc, 0xaa, 0x70, 0xa2, 0x15, 0xd8, 0xb0, 0xf8, 0x8e, 0x23, 0x3d, 0x9f, 0x46, 0xa3, 0x29, 0x20, 0xd1, 0xa1, 0x15, 0x81, 0xc6, 0xb6, 0xde, 0xbe, 0x60, 0x63, 0x24, 0xac, 0x15, 0xfb, 0xeb, 0xd3, 0xea, 0x57, 0x13, 0x86, 0x38, 0x1e, 0x22, 0xf4, 0x8c, 0x5d, 0xaf, 0x1b, 0x27, 0x21, 0x4f, 0xa3, 0x63}, - dt2: fp.Elt{0x07, 0x15, 0x87, 0xc4, 0xfd, 0xa1, 0x97, 0x7a, 0x07, 0x1f, 0x56, 0xcc, 0xe3, 0x6a, 0x01, 0x90, 0xce, 0xf9, 0xfa, 0x50, 0xb2, 0xe0, 0x87, 0x8b, 0x6c, 0x63, 0x6c, 0xf6, 0x2a, 0x09, 0xef, 0xef, 0xd2, 0x31, 0x40, 0x25, 0xf6, 0x84, 0xcb, 0xe0, 0xc4, 0x23, 0xc1, 0xcb, 0xe2, 0x02, 0x83, 0x2d, 0xed, 0x74, 0x74, 0x8b, 0xf8, 0x7c, 0x81, 0x18}, - }, - { /* 55P*/ - addYX: fp.Elt{0x9e, 0xe5, 0x59, 0x95, 0x63, 0x2e, 0xac, 0x8b, 0x03, 0x3c, 0xc1, 0x8e, 0xe1, 0x5b, 0x56, 0x3c, 0x16, 0x41, 0xe4, 0xc2, 0x60, 0x0c, 0x6d, 0x65, 0x9f, 0xfc, 0x27, 0x68, 0x43, 0x44, 0x05, 0x12, 0x6c, 0xda, 0x04, 0xef, 0xcf, 0xcf, 0xdc, 0x0a, 0x1a, 0x7f, 0x12, 0xd3, 0xeb, 0x02, 0xb6, 0x04, 0xca, 0xd6, 0xcb, 0xf0, 0x22, 0xba, 0x35, 0x6d}, - subYX: fp.Elt{0x09, 0x6d, 0xf9, 0x64, 0x4c, 0xe6, 0x41, 0xff, 0x01, 0x4d, 0xce, 0x1e, 0xfa, 0x38, 0xa2, 0x25, 0x62, 0xff, 0x03, 0x39, 0x18, 0x91, 0xbb, 0x9d, 0xce, 0x02, 0xf0, 0xf1, 0x3c, 0x55, 0x18, 0xa9, 0xab, 0x4d, 0xd2, 0x35, 0xfd, 0x8d, 0xa9, 0xb2, 0xad, 0xb7, 0x06, 0x6e, 0xc6, 0x69, 0x49, 0xd6, 0x98, 0x98, 0x0b, 0x22, 0x81, 0x6b, 0xbd, 0xa0}, - dt2: fp.Elt{0x22, 0xf4, 0x85, 0x5d, 0x2b, 0xf1, 0x55, 0xa5, 0xd6, 0x27, 0x86, 0x57, 0x12, 0x1f, 0x16, 0x0a, 0x5a, 0x9b, 0xf2, 0x38, 0xb6, 0x28, 0xd8, 0x99, 0x0c, 0x89, 0x1d, 0x7f, 0xca, 0x21, 0x17, 0x1a, 0x0b, 0x02, 0x5f, 0x77, 0x2f, 0x73, 0x30, 0x7c, 0xc8, 0xd7, 0x2b, 0xcc, 0xe7, 0xf3, 0x21, 0xac, 0x53, 0xa7, 0x11, 0x5d, 0xd8, 0x1d, 0x9b, 0xf5}, - }, - { /* 57P*/ - addYX: fp.Elt{0x94, 0x63, 0x5d, 0xef, 0xfd, 0x6d, 0x25, 0x4e, 0x6d, 0x29, 0x03, 0xed, 0x24, 0x28, 0x27, 0x57, 0x47, 0x3e, 0x6a, 0x1a, 0xfe, 0x37, 0xee, 0x5f, 0x83, 0x29, 0x14, 0xfd, 0x78, 0x25, 0x8a, 0xe1, 0x02, 0x38, 0xd8, 0xca, 0x65, 0x55, 0x40, 0x7d, 0x48, 0x2c, 0x7c, 0x7e, 0x60, 0xb6, 0x0c, 0x6d, 0xf7, 0xe8, 0xb3, 0x62, 0x53, 0xd6, 0x9c, 0x2b}, - subYX: fp.Elt{0x47, 0x25, 0x70, 0x62, 0xf5, 0x65, 0x93, 0x62, 0x08, 0xac, 0x59, 0x66, 0xdb, 0x08, 0xd9, 0x1a, 0x19, 0xaf, 0xf4, 0xef, 0x02, 0xa2, 0x78, 0xa9, 0x55, 0x1c, 0xfa, 0x08, 0x11, 0xcb, 0xa3, 0x71, 0x74, 0xb1, 0x62, 0xe7, 0xc7, 0xf3, 0x5a, 0xb5, 0x8b, 0xd4, 0xf6, 0x10, 0x57, 0x79, 0x72, 0x2f, 0x13, 0x86, 0x7b, 0x44, 0x5f, 0x48, 0xfd, 0x88}, - dt2: fp.Elt{0x10, 0x02, 0xcd, 0x05, 0x9a, 0xc3, 0x32, 0x6d, 0x10, 0x3a, 0x74, 0xba, 0x06, 0xc4, 0x3b, 0x34, 0xbc, 0x36, 0xed, 0xa3, 0xba, 0x9a, 0xdb, 0x6d, 0xd4, 0x69, 0x99, 0x97, 0xd0, 0xe4, 0xdd, 0xf5, 0xd4, 0x7c, 0xd3, 0x4e, 0xab, 0xd1, 0x3b, 0xbb, 0xe9, 0xc7, 0x6a, 0x94, 0x25, 0x61, 0xf0, 0x06, 0xc5, 0x12, 0xa8, 0x86, 0xe5, 0x35, 0x46, 0xeb}, - }, - { /* 59P*/ - addYX: fp.Elt{0x9e, 0x95, 0x11, 0xc6, 0xc7, 0xe8, 0xee, 0x5a, 0x26, 0xa0, 0x72, 0x72, 0x59, 0x91, 0x59, 0x16, 0x49, 0x99, 0x7e, 0xbb, 0xd7, 0x15, 0xb4, 0xf2, 0x40, 0xf9, 0x5a, 0x4d, 0xc8, 0xa0, 0xe2, 0x34, 0x7b, 0x34, 0xf3, 0x99, 0xbf, 0xa9, 0xf3, 0x79, 0xc1, 0x1a, 0x0c, 0xf4, 0x86, 0x74, 0x4e, 0xcb, 0xbc, 0x90, 0xad, 0xb6, 0x51, 0x6d, 0xaa, 0x33}, - subYX: fp.Elt{0x9f, 0xd1, 0xc5, 0xa2, 0x6c, 0x24, 0x88, 0x15, 0x71, 0x68, 0xf6, 0x07, 0x45, 0x02, 0xc4, 0x73, 0x7e, 0x75, 0x87, 0xca, 0x7c, 0xf0, 0x92, 0x00, 0x75, 0xd6, 0x5a, 0xdd, 0xe0, 0x64, 0x16, 0x9d, 0x62, 0x80, 0x33, 0x9f, 0xf4, 0x8e, 0x1a, 0x15, 0x1c, 0xd3, 0x0f, 0x4d, 0x4f, 0x62, 0x2d, 0xd7, 0xa5, 0x77, 0xe3, 0xea, 0xf0, 0xfb, 0x1a, 0xdb}, - dt2: fp.Elt{0x6a, 0xa2, 0xb1, 0xaa, 0xfb, 0x5a, 0x32, 0x4e, 0xff, 0x47, 0x06, 0xd5, 0x9a, 0x4f, 0xce, 0x83, 0x5b, 0x82, 0x34, 0x3e, 0x47, 0xb8, 0xf8, 0xe9, 0x7c, 0x67, 0x69, 0x8d, 0x9c, 0xb7, 0xde, 0x57, 0xf4, 0x88, 0x41, 0x56, 0x0c, 0x87, 0x1e, 0xc9, 0x2f, 0x54, 0xbf, 0x5c, 0x68, 0x2c, 0xd9, 0xc4, 0xef, 0x53, 0x73, 0x1e, 0xa6, 0x38, 0x02, 0x10}, - }, - { /* 61P*/ - addYX: fp.Elt{0x08, 0x80, 0x4a, 0xc9, 0xb7, 0xa8, 0x88, 0xd9, 0xfc, 0x6a, 0xc0, 0x3e, 0xc2, 0x33, 0x4d, 0x2b, 0x2a, 0xa3, 0x6d, 0x72, 0x3e, 0xdc, 0x34, 0x68, 0x08, 0xbf, 0x27, 0xef, 0xf4, 0xff, 0xe2, 0x0c, 0x31, 0x0c, 0xa2, 0x0a, 0x1f, 0x65, 0xc1, 0x4c, 0x61, 0xd3, 0x1b, 0xbc, 0x25, 0xb1, 0xd0, 0xd4, 0x89, 0xb2, 0x53, 0xfb, 0x43, 0xa5, 0xaf, 0x04}, - subYX: fp.Elt{0xe3, 0xe1, 0x37, 0xad, 0x58, 0xa9, 0x55, 0x81, 0xee, 0x64, 0x21, 0xb9, 0xf5, 0x4c, 0x35, 0xea, 0x4a, 0xd3, 0x26, 0xaa, 0x90, 0xd4, 0x60, 0x46, 0x09, 0x4b, 0x4a, 0x62, 0xf9, 0xcd, 0xe1, 0xee, 0xbb, 0xc2, 0x09, 0x0b, 0xb0, 0x96, 0x8e, 0x43, 0x77, 0xaf, 0x25, 0x20, 0x5e, 0x47, 0xe4, 0x1d, 0x50, 0x69, 0x74, 0x08, 0xd7, 0xb9, 0x90, 0x13}, - dt2: fp.Elt{0x51, 0x91, 0x95, 0x64, 0x03, 0x16, 0xfd, 0x6e, 0x26, 0x94, 0x6b, 0x61, 0xe7, 0xd9, 0xe0, 0x4a, 0x6d, 0x7c, 0xfa, 0xc0, 0xe2, 0x43, 0x23, 0x53, 0x70, 0xf5, 0x6f, 0x73, 0x8b, 0x81, 0xb0, 0x0c, 0xee, 0x2e, 0x46, 0xf2, 0x8d, 0xa6, 0xfb, 0xb5, 0x1c, 0x33, 0xbf, 0x90, 0x59, 0xc9, 0x7c, 0xb8, 0x6f, 0xad, 0x75, 0x02, 0x90, 0x8e, 0x59, 0x75}, - }, - { /* 63P*/ - addYX: fp.Elt{0x36, 0x4d, 0x77, 0x04, 0xb8, 0x7d, 0x4a, 0xd1, 0xc5, 0xbb, 0x7b, 0x50, 0x5f, 0x8d, 0x9d, 0x62, 0x0f, 0x66, 0x71, 0xec, 0x87, 0xc5, 0x80, 0x82, 0xc8, 0xf4, 0x6a, 0x94, 0x92, 0x5b, 0xb0, 0x16, 0x9b, 0xb2, 0xc9, 0x6f, 0x2b, 0x2d, 0xee, 0x95, 0x73, 0x2e, 0xc2, 0x1b, 0xc5, 0x55, 0x36, 0x86, 0x24, 0xf8, 0x20, 0x05, 0x0d, 0x93, 0xd7, 0x76}, - subYX: fp.Elt{0x7f, 0x01, 0xeb, 0x2e, 0x48, 0x4d, 0x1d, 0xf1, 0x06, 0x7e, 0x7c, 0x2a, 0x43, 0xbf, 0x28, 0xac, 0xe9, 0x58, 0x13, 0xc8, 0xbf, 0x8e, 0xc0, 0xef, 0xe8, 0x4f, 0x46, 0x8a, 0xe7, 0xc0, 0xf6, 0x0f, 0x0a, 0x03, 0x48, 0x91, 0x55, 0x39, 0x2a, 0xe3, 0xdc, 0xf6, 0x22, 0x9d, 0x4d, 0x71, 0x55, 0x68, 0x25, 0x6e, 0x95, 0x52, 0xee, 0x4c, 0xd9, 0x01}, - dt2: fp.Elt{0xac, 0x33, 0x3f, 0x7c, 0x27, 0x35, 0x15, 0x91, 0x33, 0x8d, 0xf9, 0xc4, 0xf4, 0xf3, 0x90, 0x09, 0x75, 0x69, 0x62, 0x9f, 0x61, 0x35, 0x83, 0x92, 0x04, 0xef, 0x96, 0x38, 0x80, 0x9e, 0x88, 0xb3, 0x67, 0x95, 0xbe, 0x79, 0x3c, 0x35, 0xd8, 0xdc, 0xb2, 0x3e, 0x2d, 0xe6, 0x46, 0xbe, 0x81, 0xf3, 0x32, 0x0e, 0x37, 0x23, 0x75, 0x2a, 0x3d, 0xa0}, - }, -} diff --git a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist_basemult.go b/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist_basemult.go deleted file mode 100644 index f6ac5edbbb..0000000000 --- a/vendor/github.com/cloudflare/circl/ecc/goldilocks/twist_basemult.go +++ /dev/null @@ -1,62 +0,0 @@ -package goldilocks - -import ( - "crypto/subtle" - - mlsb "github.com/cloudflare/circl/math/mlsbset" -) - -const ( - // MLSBRecoding parameters - fxT = 448 - fxV = 2 - fxW = 3 - fx2w1 = 1 << (uint(fxW) - 1) -) - -// ScalarBaseMult returns kG where G is the generator point. -func (e twistCurve) ScalarBaseMult(k *Scalar) *twistPoint { - m, err := mlsb.New(fxT, fxV, fxW) - if err != nil { - panic(err) - } - if m.IsExtended() { - panic("not extended") - } - - var isZero int - if k.IsZero() { - isZero = 1 - } - subtle.ConstantTimeCopy(isZero, k[:], order[:]) - - minusK := *k - isEven := 1 - int(k[0]&0x1) - minusK.Neg() - subtle.ConstantTimeCopy(isEven, k[:], minusK[:]) - c, err := m.Encode(k[:]) - if err != nil { - panic(err) - } - - gP := c.Exp(groupMLSB{}) - P := gP.(*twistPoint) - P.cneg(uint(isEven)) - return P -} - -type groupMLSB struct{} - -func (e groupMLSB) ExtendedEltP() mlsb.EltP { return nil } -func (e groupMLSB) Sqr(x mlsb.EltG) { x.(*twistPoint).Double() } -func (e groupMLSB) Mul(x mlsb.EltG, y mlsb.EltP) { x.(*twistPoint).mixAddZ1(y.(*preTwistPointAffine)) } -func (e groupMLSB) Identity() mlsb.EltG { return twistCurve{}.Identity() } -func (e groupMLSB) NewEltP() mlsb.EltP { return &preTwistPointAffine{} } -func (e groupMLSB) Lookup(a mlsb.EltP, v uint, s, u int32) { - Tabj := &tabFixMult[v] - P := a.(*preTwistPointAffine) - for k := range Tabj { - P.cmov(&Tabj[k], uint(subtle.ConstantTimeEq(int32(k), u))) - } - P.cneg(int(s >> 31)) -} diff --git a/vendor/github.com/cloudflare/circl/internal/conv/conv.go b/vendor/github.com/cloudflare/circl/internal/conv/conv.go deleted file mode 100644 index 649a8e931d..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/conv/conv.go +++ /dev/null @@ -1,140 +0,0 @@ -package conv - -import ( - "encoding/binary" - "fmt" - "math/big" - "strings" -) - -// BytesLe2Hex returns an hexadecimal string of a number stored in a -// little-endian order slice x. -func BytesLe2Hex(x []byte) string { - b := &strings.Builder{} - b.Grow(2*len(x) + 2) - fmt.Fprint(b, "0x") - if len(x) == 0 { - fmt.Fprint(b, "00") - } - for i := len(x) - 1; i >= 0; i-- { - fmt.Fprintf(b, "%02x", x[i]) - } - return b.String() -} - -// BytesLe2BigInt converts a little-endian slice x into a big-endian -// math/big.Int. -func BytesLe2BigInt(x []byte) *big.Int { - n := len(x) - b := new(big.Int) - if len(x) > 0 { - y := make([]byte, n) - for i := 0; i < n; i++ { - y[n-1-i] = x[i] - } - b.SetBytes(y) - } - return b -} - -// BytesBe2Uint64Le converts a big-endian slice x to a little-endian slice of uint64. -func BytesBe2Uint64Le(x []byte) []uint64 { - l := len(x) - z := make([]uint64, (l+7)/8) - blocks := l / 8 - for i := 0; i < blocks; i++ { - z[i] = binary.BigEndian.Uint64(x[l-8*(i+1):]) - } - remBytes := l % 8 - for i := 0; i < remBytes; i++ { - z[blocks] |= uint64(x[l-1-8*blocks-i]) << uint(8*i) - } - return z -} - -// BigInt2BytesLe stores a positive big.Int number x into a little-endian slice z. -// The slice is modified if the bitlength of x <= 8*len(z) (padding with zeros). -// If x does not fit in the slice or is negative, z is not modified. -func BigInt2BytesLe(z []byte, x *big.Int) { - xLen := (x.BitLen() + 7) >> 3 - zLen := len(z) - if zLen >= xLen && x.Sign() >= 0 { - y := x.Bytes() - for i := 0; i < xLen; i++ { - z[i] = y[xLen-1-i] - } - for i := xLen; i < zLen; i++ { - z[i] = 0 - } - } -} - -// Uint64Le2BigInt converts a little-endian slice x into a big number. -func Uint64Le2BigInt(x []uint64) *big.Int { - n := len(x) - b := new(big.Int) - var bi big.Int - for i := n - 1; i >= 0; i-- { - bi.SetUint64(x[i]) - b.Lsh(b, 64) - b.Add(b, &bi) - } - return b -} - -// Uint64Le2BytesLe converts a little-endian slice x to a little-endian slice of bytes. -func Uint64Le2BytesLe(x []uint64) []byte { - b := make([]byte, 8*len(x)) - n := len(x) - for i := 0; i < n; i++ { - binary.LittleEndian.PutUint64(b[i*8:], x[i]) - } - return b -} - -// Uint64Le2BytesBe converts a little-endian slice x to a big-endian slice of bytes. -func Uint64Le2BytesBe(x []uint64) []byte { - b := make([]byte, 8*len(x)) - n := len(x) - for i := 0; i < n; i++ { - binary.BigEndian.PutUint64(b[i*8:], x[n-1-i]) - } - return b -} - -// Uint64Le2Hex returns an hexadecimal string of a number stored in a -// little-endian order slice x. -func Uint64Le2Hex(x []uint64) string { - b := new(strings.Builder) - b.Grow(16*len(x) + 2) - fmt.Fprint(b, "0x") - if len(x) == 0 { - fmt.Fprint(b, "00") - } - for i := len(x) - 1; i >= 0; i-- { - fmt.Fprintf(b, "%016x", x[i]) - } - return b.String() -} - -// BigInt2Uint64Le stores a positive big.Int number x into a little-endian slice z. -// The slice is modified if the bitlength of x <= 8*len(z) (padding with zeros). -// If x does not fit in the slice or is negative, z is not modified. -func BigInt2Uint64Le(z []uint64, x *big.Int) { - xLen := (x.BitLen() + 63) >> 6 // number of 64-bit words - zLen := len(z) - if zLen >= xLen && x.Sign() > 0 { - var y, yi big.Int - y.Set(x) - two64 := big.NewInt(1) - two64.Lsh(two64, 64).Sub(two64, big.NewInt(1)) - for i := 0; i < xLen; i++ { - yi.And(&y, two64) - z[i] = yi.Uint64() - y.Rsh(&y, 64) - } - } - for i := xLen; i < zLen; i++ { - z[i] = 0 - } -} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/doc.go b/vendor/github.com/cloudflare/circl/internal/sha3/doc.go deleted file mode 100644 index c06a330ff9..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/doc.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package sha3 implements the SHA-3 fixed-output-length hash functions and -// the SHAKE variable-output-length hash functions defined by FIPS-202. -// -// Both types of hash function use the "sponge" construction and the Keccak -// permutation. For a detailed specification see http://keccak.noekeon.org/ -// -// -// Guidance -// -// If you aren't sure what function you need, use SHAKE256 with at least 64 -// bytes of output. The SHAKE instances are faster than the SHA3 instances; -// the latter have to allocate memory to conform to the hash.Hash interface. -// -// If you need a secret-key MAC (message authentication code), prepend the -// secret key to the input, hash with SHAKE256 and read at least 32 bytes of -// output. -// -// -// Security strengths -// -// The SHA3-x (x equals 224, 256, 384, or 512) functions have a security -// strength against preimage attacks of x bits. Since they only produce "x" -// bits of output, their collision-resistance is only "x/2" bits. -// -// The SHAKE-256 and -128 functions have a generic security strength of 256 and -// 128 bits against all attacks, provided that at least 2x bits of their output -// is used. Requesting more than 64 or 32 bytes of output, respectively, does -// not increase the collision-resistance of the SHAKE functions. -// -// -// The sponge construction -// -// A sponge builds a pseudo-random function from a public pseudo-random -// permutation, by applying the permutation to a state of "rate + capacity" -// bytes, but hiding "capacity" of the bytes. -// -// A sponge starts out with a zero state. To hash an input using a sponge, up -// to "rate" bytes of the input are XORed into the sponge's state. The sponge -// is then "full" and the permutation is applied to "empty" it. This process is -// repeated until all the input has been "absorbed". The input is then padded. -// The digest is "squeezed" from the sponge in the same way, except that output -// is copied out instead of input being XORed in. -// -// A sponge is parameterized by its generic security strength, which is equal -// to half its capacity; capacity + rate is equal to the permutation's width. -// Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means -// that the security strength of a sponge instance is equal to (1600 - bitrate) / 2. -// -// -// Recommendations -// -// The SHAKE functions are recommended for most new uses. They can produce -// output of arbitrary length. SHAKE256, with an output length of at least -// 64 bytes, provides 256-bit security against all attacks. The Keccak team -// recommends it for most applications upgrading from SHA2-512. (NIST chose a -// much stronger, but much slower, sponge instance for SHA3-512.) -// -// The SHA-3 functions are "drop-in" replacements for the SHA-2 functions. -// They produce output of the same length, with the same security strengths -// against all attacks. This means, in particular, that SHA3-256 only has -// 128-bit collision resistance, because its output length is 32 bytes. -package sha3 diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/hashes.go b/vendor/github.com/cloudflare/circl/internal/sha3/hashes.go deleted file mode 100644 index 7d2365a76e..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/hashes.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// This file provides functions for creating instances of the SHA-3 -// and SHAKE hash functions, as well as utility functions for hashing -// bytes. - -// New224 creates a new SHA3-224 hash. -// Its generic security strength is 224 bits against preimage attacks, -// and 112 bits against collision attacks. -func New224() State { - return State{rate: 144, outputLen: 28, dsbyte: 0x06} -} - -// New256 creates a new SHA3-256 hash. -// Its generic security strength is 256 bits against preimage attacks, -// and 128 bits against collision attacks. -func New256() State { - return State{rate: 136, outputLen: 32, dsbyte: 0x06} -} - -// New384 creates a new SHA3-384 hash. -// Its generic security strength is 384 bits against preimage attacks, -// and 192 bits against collision attacks. -func New384() State { - return State{rate: 104, outputLen: 48, dsbyte: 0x06} -} - -// New512 creates a new SHA3-512 hash. -// Its generic security strength is 512 bits against preimage attacks, -// and 256 bits against collision attacks. -func New512() State { - return State{rate: 72, outputLen: 64, dsbyte: 0x06} -} - -// Sum224 returns the SHA3-224 digest of the data. -func Sum224(data []byte) (digest [28]byte) { - h := New224() - _, _ = h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum256 returns the SHA3-256 digest of the data. -func Sum256(data []byte) (digest [32]byte) { - h := New256() - _, _ = h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum384 returns the SHA3-384 digest of the data. -func Sum384(data []byte) (digest [48]byte) { - h := New384() - _, _ = h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum512 returns the SHA3-512 digest of the data. -func Sum512(data []byte) (digest [64]byte) { - h := New512() - _, _ = h.Write(data) - h.Sum(digest[:0]) - return -} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go b/vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go deleted file mode 100644 index e606f0caae..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/keccakf.go +++ /dev/null @@ -1,385 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !amd64 || appengine || gccgo -// +build !amd64 appengine gccgo - -package sha3 - -// KeccakF1600 applies the Keccak permutation to a 1600b-wide -// state represented as a slice of 25 uint64s. -func KeccakF1600(a *[25]uint64) { - // Implementation translated from Keccak-inplace.c - // in the keccak reference code. - var t, bc0, bc1, bc2, bc3, bc4, d0, d1, d2, d3, d4 uint64 - - for i := 0; i < 24; i += 4 { - // Combines the 5 steps in each round into 2 steps. - // Unrolls 4 rounds per loop and spreads some steps across rounds. - - // Round 1 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[6] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[12] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[18] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[24] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ RC[i] - a[6] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[16] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[22] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[3] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[10] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[1] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[7] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[19] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[20] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[11] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[23] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[4] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[5] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[2] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[8] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[14] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[15] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - // Round 2 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[16] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[7] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[23] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[14] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ RC[i+1] - a[16] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[11] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[2] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[18] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[20] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[6] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[22] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[4] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[15] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[1] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[8] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[24] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[10] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[12] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[3] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[19] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[5] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - // Round 3 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[11] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[22] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[8] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[19] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ RC[i+2] - a[11] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[1] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[12] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[23] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[15] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[16] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[2] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[24] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[5] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[6] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[3] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[14] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[20] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[7] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[18] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[4] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[10] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - // Round 4 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[1] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[2] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[3] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[4] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ RC[i+3] - a[1] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[6] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[7] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[8] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[5] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[11] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[12] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[14] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[10] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[16] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[18] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[19] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[15] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[22] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[23] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[24] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[20] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - } -} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/keccakf_amd64.go b/vendor/github.com/cloudflare/circl/internal/sha3/keccakf_amd64.go deleted file mode 100644 index e7364eb093..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/keccakf_amd64.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && !appengine && !gccgo -// +build amd64,!appengine,!gccgo - -package sha3 - -// This function is implemented in keccakf_amd64.s. - -//go:noescape - -func KeccakF1600(state *[25]uint64) diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/keccakf_amd64.s b/vendor/github.com/cloudflare/circl/internal/sha3/keccakf_amd64.s deleted file mode 100644 index 8589363a43..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/keccakf_amd64.s +++ /dev/null @@ -1,390 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build amd64,!appengine,!gccgo - -// This code was translated into a form compatible with 6a from the public -// domain sources at https://github.com/gvanas/KeccakCodePackage - -// Offsets in state -#define _ba (0*8) -#define _be (1*8) -#define _bi (2*8) -#define _bo (3*8) -#define _bu (4*8) -#define _ga (5*8) -#define _ge (6*8) -#define _gi (7*8) -#define _go (8*8) -#define _gu (9*8) -#define _ka (10*8) -#define _ke (11*8) -#define _ki (12*8) -#define _ko (13*8) -#define _ku (14*8) -#define _ma (15*8) -#define _me (16*8) -#define _mi (17*8) -#define _mo (18*8) -#define _mu (19*8) -#define _sa (20*8) -#define _se (21*8) -#define _si (22*8) -#define _so (23*8) -#define _su (24*8) - -// Temporary registers -#define rT1 AX - -// Round vars -#define rpState DI -#define rpStack SP - -#define rDa BX -#define rDe CX -#define rDi DX -#define rDo R8 -#define rDu R9 - -#define rBa R10 -#define rBe R11 -#define rBi R12 -#define rBo R13 -#define rBu R14 - -#define rCa SI -#define rCe BP -#define rCi rBi -#define rCo rBo -#define rCu R15 - -#define MOVQ_RBI_RCE MOVQ rBi, rCe -#define XORQ_RT1_RCA XORQ rT1, rCa -#define XORQ_RT1_RCE XORQ rT1, rCe -#define XORQ_RBA_RCU XORQ rBa, rCu -#define XORQ_RBE_RCU XORQ rBe, rCu -#define XORQ_RDU_RCU XORQ rDu, rCu -#define XORQ_RDA_RCA XORQ rDa, rCa -#define XORQ_RDE_RCE XORQ rDe, rCe - -#define mKeccakRound(iState, oState, rc, B_RBI_RCE, G_RT1_RCA, G_RT1_RCE, G_RBA_RCU, K_RT1_RCA, K_RT1_RCE, K_RBA_RCU, M_RT1_RCA, M_RT1_RCE, M_RBE_RCU, S_RDU_RCU, S_RDA_RCA, S_RDE_RCE) \ - /* Prepare round */ \ - MOVQ rCe, rDa; \ - ROLQ $1, rDa; \ - \ - MOVQ _bi(iState), rCi; \ - XORQ _gi(iState), rDi; \ - XORQ rCu, rDa; \ - XORQ _ki(iState), rCi; \ - XORQ _mi(iState), rDi; \ - XORQ rDi, rCi; \ - \ - MOVQ rCi, rDe; \ - ROLQ $1, rDe; \ - \ - MOVQ _bo(iState), rCo; \ - XORQ _go(iState), rDo; \ - XORQ rCa, rDe; \ - XORQ _ko(iState), rCo; \ - XORQ _mo(iState), rDo; \ - XORQ rDo, rCo; \ - \ - MOVQ rCo, rDi; \ - ROLQ $1, rDi; \ - \ - MOVQ rCu, rDo; \ - XORQ rCe, rDi; \ - ROLQ $1, rDo; \ - \ - MOVQ rCa, rDu; \ - XORQ rCi, rDo; \ - ROLQ $1, rDu; \ - \ - /* Result b */ \ - MOVQ _ba(iState), rBa; \ - MOVQ _ge(iState), rBe; \ - XORQ rCo, rDu; \ - MOVQ _ki(iState), rBi; \ - MOVQ _mo(iState), rBo; \ - MOVQ _su(iState), rBu; \ - XORQ rDe, rBe; \ - ROLQ $44, rBe; \ - XORQ rDi, rBi; \ - XORQ rDa, rBa; \ - ROLQ $43, rBi; \ - \ - MOVQ rBe, rCa; \ - MOVQ rc, rT1; \ - ORQ rBi, rCa; \ - XORQ rBa, rT1; \ - XORQ rT1, rCa; \ - MOVQ rCa, _ba(oState); \ - \ - XORQ rDu, rBu; \ - ROLQ $14, rBu; \ - MOVQ rBa, rCu; \ - ANDQ rBe, rCu; \ - XORQ rBu, rCu; \ - MOVQ rCu, _bu(oState); \ - \ - XORQ rDo, rBo; \ - ROLQ $21, rBo; \ - MOVQ rBo, rT1; \ - ANDQ rBu, rT1; \ - XORQ rBi, rT1; \ - MOVQ rT1, _bi(oState); \ - \ - NOTQ rBi; \ - ORQ rBa, rBu; \ - ORQ rBo, rBi; \ - XORQ rBo, rBu; \ - XORQ rBe, rBi; \ - MOVQ rBu, _bo(oState); \ - MOVQ rBi, _be(oState); \ - B_RBI_RCE; \ - \ - /* Result g */ \ - MOVQ _gu(iState), rBe; \ - XORQ rDu, rBe; \ - MOVQ _ka(iState), rBi; \ - ROLQ $20, rBe; \ - XORQ rDa, rBi; \ - ROLQ $3, rBi; \ - MOVQ _bo(iState), rBa; \ - MOVQ rBe, rT1; \ - ORQ rBi, rT1; \ - XORQ rDo, rBa; \ - MOVQ _me(iState), rBo; \ - MOVQ _si(iState), rBu; \ - ROLQ $28, rBa; \ - XORQ rBa, rT1; \ - MOVQ rT1, _ga(oState); \ - G_RT1_RCA; \ - \ - XORQ rDe, rBo; \ - ROLQ $45, rBo; \ - MOVQ rBi, rT1; \ - ANDQ rBo, rT1; \ - XORQ rBe, rT1; \ - MOVQ rT1, _ge(oState); \ - G_RT1_RCE; \ - \ - XORQ rDi, rBu; \ - ROLQ $61, rBu; \ - MOVQ rBu, rT1; \ - ORQ rBa, rT1; \ - XORQ rBo, rT1; \ - MOVQ rT1, _go(oState); \ - \ - ANDQ rBe, rBa; \ - XORQ rBu, rBa; \ - MOVQ rBa, _gu(oState); \ - NOTQ rBu; \ - G_RBA_RCU; \ - \ - ORQ rBu, rBo; \ - XORQ rBi, rBo; \ - MOVQ rBo, _gi(oState); \ - \ - /* Result k */ \ - MOVQ _be(iState), rBa; \ - MOVQ _gi(iState), rBe; \ - MOVQ _ko(iState), rBi; \ - MOVQ _mu(iState), rBo; \ - MOVQ _sa(iState), rBu; \ - XORQ rDi, rBe; \ - ROLQ $6, rBe; \ - XORQ rDo, rBi; \ - ROLQ $25, rBi; \ - MOVQ rBe, rT1; \ - ORQ rBi, rT1; \ - XORQ rDe, rBa; \ - ROLQ $1, rBa; \ - XORQ rBa, rT1; \ - MOVQ rT1, _ka(oState); \ - K_RT1_RCA; \ - \ - XORQ rDu, rBo; \ - ROLQ $8, rBo; \ - MOVQ rBi, rT1; \ - ANDQ rBo, rT1; \ - XORQ rBe, rT1; \ - MOVQ rT1, _ke(oState); \ - K_RT1_RCE; \ - \ - XORQ rDa, rBu; \ - ROLQ $18, rBu; \ - NOTQ rBo; \ - MOVQ rBo, rT1; \ - ANDQ rBu, rT1; \ - XORQ rBi, rT1; \ - MOVQ rT1, _ki(oState); \ - \ - MOVQ rBu, rT1; \ - ORQ rBa, rT1; \ - XORQ rBo, rT1; \ - MOVQ rT1, _ko(oState); \ - \ - ANDQ rBe, rBa; \ - XORQ rBu, rBa; \ - MOVQ rBa, _ku(oState); \ - K_RBA_RCU; \ - \ - /* Result m */ \ - MOVQ _ga(iState), rBe; \ - XORQ rDa, rBe; \ - MOVQ _ke(iState), rBi; \ - ROLQ $36, rBe; \ - XORQ rDe, rBi; \ - MOVQ _bu(iState), rBa; \ - ROLQ $10, rBi; \ - MOVQ rBe, rT1; \ - MOVQ _mi(iState), rBo; \ - ANDQ rBi, rT1; \ - XORQ rDu, rBa; \ - MOVQ _so(iState), rBu; \ - ROLQ $27, rBa; \ - XORQ rBa, rT1; \ - MOVQ rT1, _ma(oState); \ - M_RT1_RCA; \ - \ - XORQ rDi, rBo; \ - ROLQ $15, rBo; \ - MOVQ rBi, rT1; \ - ORQ rBo, rT1; \ - XORQ rBe, rT1; \ - MOVQ rT1, _me(oState); \ - M_RT1_RCE; \ - \ - XORQ rDo, rBu; \ - ROLQ $56, rBu; \ - NOTQ rBo; \ - MOVQ rBo, rT1; \ - ORQ rBu, rT1; \ - XORQ rBi, rT1; \ - MOVQ rT1, _mi(oState); \ - \ - ORQ rBa, rBe; \ - XORQ rBu, rBe; \ - MOVQ rBe, _mu(oState); \ - \ - ANDQ rBa, rBu; \ - XORQ rBo, rBu; \ - MOVQ rBu, _mo(oState); \ - M_RBE_RCU; \ - \ - /* Result s */ \ - MOVQ _bi(iState), rBa; \ - MOVQ _go(iState), rBe; \ - MOVQ _ku(iState), rBi; \ - XORQ rDi, rBa; \ - MOVQ _ma(iState), rBo; \ - ROLQ $62, rBa; \ - XORQ rDo, rBe; \ - MOVQ _se(iState), rBu; \ - ROLQ $55, rBe; \ - \ - XORQ rDu, rBi; \ - MOVQ rBa, rDu; \ - XORQ rDe, rBu; \ - ROLQ $2, rBu; \ - ANDQ rBe, rDu; \ - XORQ rBu, rDu; \ - MOVQ rDu, _su(oState); \ - \ - ROLQ $39, rBi; \ - S_RDU_RCU; \ - NOTQ rBe; \ - XORQ rDa, rBo; \ - MOVQ rBe, rDa; \ - ANDQ rBi, rDa; \ - XORQ rBa, rDa; \ - MOVQ rDa, _sa(oState); \ - S_RDA_RCA; \ - \ - ROLQ $41, rBo; \ - MOVQ rBi, rDe; \ - ORQ rBo, rDe; \ - XORQ rBe, rDe; \ - MOVQ rDe, _se(oState); \ - S_RDE_RCE; \ - \ - MOVQ rBo, rDi; \ - MOVQ rBu, rDo; \ - ANDQ rBu, rDi; \ - ORQ rBa, rDo; \ - XORQ rBi, rDi; \ - XORQ rBo, rDo; \ - MOVQ rDi, _si(oState); \ - MOVQ rDo, _so(oState) \ - -// func KeccakF1600(state *[25]uint64) -TEXT ·KeccakF1600(SB), 0, $200-8 - MOVQ state+0(FP), rpState - - // Convert the user state into an internal state - NOTQ _be(rpState) - NOTQ _bi(rpState) - NOTQ _go(rpState) - NOTQ _ki(rpState) - NOTQ _mi(rpState) - NOTQ _sa(rpState) - - // Execute the KeccakF permutation - MOVQ _ba(rpState), rCa - MOVQ _be(rpState), rCe - MOVQ _bu(rpState), rCu - - XORQ _ga(rpState), rCa - XORQ _ge(rpState), rCe - XORQ _gu(rpState), rCu - - XORQ _ka(rpState), rCa - XORQ _ke(rpState), rCe - XORQ _ku(rpState), rCu - - XORQ _ma(rpState), rCa - XORQ _me(rpState), rCe - XORQ _mu(rpState), rCu - - XORQ _sa(rpState), rCa - XORQ _se(rpState), rCe - MOVQ _si(rpState), rDi - MOVQ _so(rpState), rDo - XORQ _su(rpState), rCu - - mKeccakRound(rpState, rpStack, $0x0000000000000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x0000000000008082, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x800000000000808a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000080008000, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000000000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000000000008a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x0000000000000088, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x0000000080008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x000000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000008000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x800000000000008b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000000008089, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000008003, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000000008002, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000000080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000000000800a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x800000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000008080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000080008008, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP) - - // Revert the internal state to the user state - NOTQ _be(rpState) - NOTQ _bi(rpState) - NOTQ _go(rpState) - NOTQ _ki(rpState) - NOTQ _mi(rpState) - NOTQ _sa(rpState) - - RET diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/rc.go b/vendor/github.com/cloudflare/circl/internal/sha3/rc.go deleted file mode 100644 index 6a3df42f30..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/rc.go +++ /dev/null @@ -1,29 +0,0 @@ -package sha3 - -// RC stores the round constants for use in the ι step. -var RC = [24]uint64{ - 0x0000000000000001, - 0x0000000000008082, - 0x800000000000808A, - 0x8000000080008000, - 0x000000000000808B, - 0x0000000080000001, - 0x8000000080008081, - 0x8000000000008009, - 0x000000000000008A, - 0x0000000000000088, - 0x0000000080008009, - 0x000000008000000A, - 0x000000008000808B, - 0x800000000000008B, - 0x8000000000008089, - 0x8000000000008003, - 0x8000000000008002, - 0x8000000000000080, - 0x000000000000800A, - 0x800000008000000A, - 0x8000000080008081, - 0x8000000000008080, - 0x0000000080000001, - 0x8000000080008008, -} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/sha3.go b/vendor/github.com/cloudflare/circl/internal/sha3/sha3.go deleted file mode 100644 index b35cd006b0..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/sha3.go +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// spongeDirection indicates the direction bytes are flowing through the sponge. -type spongeDirection int - -const ( - // spongeAbsorbing indicates that the sponge is absorbing input. - spongeAbsorbing spongeDirection = iota - // spongeSqueezing indicates that the sponge is being squeezed. - spongeSqueezing -) - -const ( - // maxRate is the maximum size of the internal buffer. SHAKE-256 - // currently needs the largest buffer. - maxRate = 168 -) - -func (d *State) buf() []byte { - return d.storage.asBytes()[d.bufo:d.bufe] -} - -type State struct { - // Generic sponge components. - a [25]uint64 // main state of the hash - rate int // the number of bytes of state to use - - bufo int // offset of buffer in storage - bufe int // end of buffer in storage - - // dsbyte contains the "domain separation" bits and the first bit of - // the padding. Sections 6.1 and 6.2 of [1] separate the outputs of the - // SHA-3 and SHAKE functions by appending bitstrings to the message. - // Using a little-endian bit-ordering convention, these are "01" for SHA-3 - // and "1111" for SHAKE, or 00000010b and 00001111b, respectively. Then the - // padding rule from section 5.1 is applied to pad the message to a multiple - // of the rate, which involves adding a "1" bit, zero or more "0" bits, and - // a final "1" bit. We merge the first "1" bit from the padding into dsbyte, - // giving 00000110b (0x06) and 00011111b (0x1f). - // [1] http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf - // "Draft FIPS 202: SHA-3 Standard: Permutation-Based Hash and - // Extendable-Output Functions (May 2014)" - dsbyte byte - - storage storageBuf - - // Specific to SHA-3 and SHAKE. - outputLen int // the default output size in bytes - state spongeDirection // whether the sponge is absorbing or squeezing -} - -// BlockSize returns the rate of sponge underlying this hash function. -func (d *State) BlockSize() int { return d.rate } - -// Size returns the output size of the hash function in bytes. -func (d *State) Size() int { return d.outputLen } - -// Reset clears the internal state by zeroing the sponge state and -// the byte buffer, and setting Sponge.state to absorbing. -func (d *State) Reset() { - // Zero the permutation's state. - for i := range d.a { - d.a[i] = 0 - } - d.state = spongeAbsorbing - d.bufo = 0 - d.bufe = 0 -} - -func (d *State) clone() *State { - ret := *d - return &ret -} - -// permute applies the KeccakF-1600 permutation. It handles -// any input-output buffering. -func (d *State) permute() { - switch d.state { - case spongeAbsorbing: - // If we're absorbing, we need to xor the input into the state - // before applying the permutation. - xorIn(d, d.buf()) - d.bufe = 0 - d.bufo = 0 - KeccakF1600(&d.a) - case spongeSqueezing: - // If we're squeezing, we need to apply the permutation before - // copying more output. - KeccakF1600(&d.a) - d.bufe = d.rate - d.bufo = 0 - copyOut(d, d.buf()) - } -} - -// pads appends the domain separation bits in dsbyte, applies -// the multi-bitrate 10..1 padding rule, and permutes the state. -func (d *State) padAndPermute(dsbyte byte) { - // Pad with this instance's domain-separator bits. We know that there's - // at least one byte of space in d.buf() because, if it were full, - // permute would have been called to empty it. dsbyte also contains the - // first one bit for the padding. See the comment in the state struct. - zerosStart := d.bufe + 1 - d.bufe = d.rate - buf := d.buf() - buf[zerosStart-1] = dsbyte - for i := zerosStart; i < d.rate; i++ { - buf[i] = 0 - } - // This adds the final one bit for the padding. Because of the way that - // bits are numbered from the LSB upwards, the final bit is the MSB of - // the last byte. - buf[d.rate-1] ^= 0x80 - // Apply the permutation - d.permute() - d.state = spongeSqueezing - d.bufe = d.rate - copyOut(d, buf) -} - -// Write absorbs more data into the hash's state. It produces an error -// if more data is written to the ShakeHash after writing -func (d *State) Write(p []byte) (written int, err error) { - if d.state != spongeAbsorbing { - panic("sha3: write to sponge after read") - } - written = len(p) - - for len(p) > 0 { - bufl := d.bufe - d.bufo - if bufl == 0 && len(p) >= d.rate { - // The fast path; absorb a full "rate" bytes of input and apply the permutation. - xorIn(d, p[:d.rate]) - p = p[d.rate:] - KeccakF1600(&d.a) - } else { - // The slow path; buffer the input until we can fill the sponge, and then xor it in. - todo := d.rate - bufl - if todo > len(p) { - todo = len(p) - } - d.bufe += todo - buf := d.buf() - copy(buf[bufl:], p[:todo]) - p = p[todo:] - - // If the sponge is full, apply the permutation. - if d.bufe == d.rate { - d.permute() - } - } - } - - return written, nil -} - -// Read squeezes an arbitrary number of bytes from the sponge. -func (d *State) Read(out []byte) (n int, err error) { - // If we're still absorbing, pad and apply the permutation. - if d.state == spongeAbsorbing { - d.padAndPermute(d.dsbyte) - } - - n = len(out) - - // Now, do the squeezing. - for len(out) > 0 { - buf := d.buf() - n := copy(out, buf) - d.bufo += n - out = out[n:] - - // Apply the permutation if we've squeezed the sponge dry. - if d.bufo == d.bufe { - d.permute() - } - } - - return -} - -// Sum applies padding to the hash state and then squeezes out the desired -// number of output bytes. -func (d *State) Sum(in []byte) []byte { - // Make a copy of the original hash so that caller can keep writing - // and summing. - dup := d.clone() - hash := make([]byte, dup.outputLen) - _, _ = dup.Read(hash) - return append(in, hash...) -} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/sha3_s390x.s b/vendor/github.com/cloudflare/circl/internal/sha3/sha3_s390x.s deleted file mode 100644 index 8a4458f63f..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/sha3_s390x.s +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !gccgo,!appengine - -#include "textflag.h" - -// func kimd(function code, chain *[200]byte, src []byte) -TEXT ·kimd(SB), NOFRAME|NOSPLIT, $0-40 - MOVD function+0(FP), R0 - MOVD chain+8(FP), R1 - LMG src+16(FP), R2, R3 // R2=base, R3=len - -continue: - WORD $0xB93E0002 // KIMD --, R2 - BVS continue // continue if interrupted - MOVD $0, R0 // reset R0 for pre-go1.8 compilers - RET - -// func klmd(function code, chain *[200]byte, dst, src []byte) -TEXT ·klmd(SB), NOFRAME|NOSPLIT, $0-64 - // TODO: SHAKE support - MOVD function+0(FP), R0 - MOVD chain+8(FP), R1 - LMG dst+16(FP), R2, R3 // R2=base, R3=len - LMG src+40(FP), R4, R5 // R4=base, R5=len - -continue: - WORD $0xB93F0024 // KLMD R2, R4 - BVS continue // continue if interrupted - MOVD $0, R0 // reset R0 for pre-go1.8 compilers - RET diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/shake.go b/vendor/github.com/cloudflare/circl/internal/sha3/shake.go deleted file mode 100644 index b92c5b7d78..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/shake.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// This file defines the ShakeHash interface, and provides -// functions for creating SHAKE and cSHAKE instances, as well as utility -// functions for hashing bytes to arbitrary-length output. -// -// -// SHAKE implementation is based on FIPS PUB 202 [1] -// cSHAKE implementations is based on NIST SP 800-185 [2] -// -// [1] https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf -// [2] https://doi.org/10.6028/NIST.SP.800-185 - -import ( - "io" -) - -// ShakeHash defines the interface to hash functions that -// support arbitrary-length output. -type ShakeHash interface { - // Write absorbs more data into the hash's state. It panics if input is - // written to it after output has been read from it. - io.Writer - - // Read reads more output from the hash; reading affects the hash's - // state. (ShakeHash.Read is thus very different from Hash.Sum) - // It never returns an error. - io.Reader - - // Clone returns a copy of the ShakeHash in its current state. - Clone() ShakeHash - - // Reset resets the ShakeHash to its initial state. - Reset() -} - -// Consts for configuring initial SHA-3 state -const ( - dsbyteShake = 0x1f - rate128 = 168 - rate256 = 136 -) - -// Clone returns copy of SHAKE context within its current state. -func (d *State) Clone() ShakeHash { - return d.clone() -} - -// NewShake128 creates a new SHAKE128 variable-output-length ShakeHash. -// Its generic security strength is 128 bits against all attacks if at -// least 32 bytes of its output are used. -func NewShake128() State { - return State{rate: rate128, dsbyte: dsbyteShake} -} - -// NewShake256 creates a new SHAKE256 variable-output-length ShakeHash. -// Its generic security strength is 256 bits against all attacks if -// at least 64 bytes of its output are used. -func NewShake256() State { - return State{rate: rate256, dsbyte: dsbyteShake} -} - -// ShakeSum128 writes an arbitrary-length digest of data into hash. -func ShakeSum128(hash, data []byte) { - h := NewShake128() - _, _ = h.Write(data) - _, _ = h.Read(hash) -} - -// ShakeSum256 writes an arbitrary-length digest of data into hash. -func ShakeSum256(hash, data []byte) { - h := NewShake256() - _, _ = h.Write(data) - _, _ = h.Read(hash) -} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/xor.go b/vendor/github.com/cloudflare/circl/internal/sha3/xor.go deleted file mode 100644 index 1e21337454..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/xor.go +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (!amd64 && !386 && !ppc64le) || appengine -// +build !amd64,!386,!ppc64le appengine - -package sha3 - -// A storageBuf is an aligned array of maxRate bytes. -type storageBuf [maxRate]byte - -func (b *storageBuf) asBytes() *[maxRate]byte { - return (*[maxRate]byte)(b) -} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/xor_generic.go b/vendor/github.com/cloudflare/circl/internal/sha3/xor_generic.go deleted file mode 100644 index 2b0c661790..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/xor_generic.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (!amd64 || appengine) && (!386 || appengine) && (!ppc64le || appengine) -// +build !amd64 appengine -// +build !386 appengine -// +build !ppc64le appengine - -package sha3 - -import "encoding/binary" - -// xorIn xors the bytes in buf into the state; it -// makes no non-portable assumptions about memory layout -// or alignment. -func xorIn(d *State, buf []byte) { - n := len(buf) / 8 - - for i := 0; i < n; i++ { - a := binary.LittleEndian.Uint64(buf) - d.a[i] ^= a - buf = buf[8:] - } -} - -// copyOut copies ulint64s to a byte buffer. -func copyOut(d *State, b []byte) { - for i := 0; len(b) >= 8; i++ { - binary.LittleEndian.PutUint64(b, d.a[i]) - b = b[8:] - } -} diff --git a/vendor/github.com/cloudflare/circl/internal/sha3/xor_unaligned.go b/vendor/github.com/cloudflare/circl/internal/sha3/xor_unaligned.go deleted file mode 100644 index 052fc8d32d..0000000000 --- a/vendor/github.com/cloudflare/circl/internal/sha3/xor_unaligned.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (amd64 || 386 || ppc64le) && !appengine -// +build amd64 386 ppc64le -// +build !appengine - -package sha3 - -import "unsafe" - -// A storageBuf is an aligned array of maxRate bytes. -type storageBuf [maxRate / 8]uint64 - -func (b *storageBuf) asBytes() *[maxRate]byte { - return (*[maxRate]byte)(unsafe.Pointer(b)) -} - -// xorInuses unaligned reads and writes to update d.a to contain d.a -// XOR buf. -func xorIn(d *State, buf []byte) { - n := len(buf) - bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0]))[: n/8 : n/8] - if n >= 72 { - d.a[0] ^= bw[0] - d.a[1] ^= bw[1] - d.a[2] ^= bw[2] - d.a[3] ^= bw[3] - d.a[4] ^= bw[4] - d.a[5] ^= bw[5] - d.a[6] ^= bw[6] - d.a[7] ^= bw[7] - d.a[8] ^= bw[8] - } - if n >= 104 { - d.a[9] ^= bw[9] - d.a[10] ^= bw[10] - d.a[11] ^= bw[11] - d.a[12] ^= bw[12] - } - if n >= 136 { - d.a[13] ^= bw[13] - d.a[14] ^= bw[14] - d.a[15] ^= bw[15] - d.a[16] ^= bw[16] - } - if n >= 144 { - d.a[17] ^= bw[17] - } - if n >= 168 { - d.a[18] ^= bw[18] - d.a[19] ^= bw[19] - d.a[20] ^= bw[20] - } -} - -func copyOut(d *State, buf []byte) { - ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0])) - copy(buf, ab[:]) -} diff --git a/vendor/github.com/cloudflare/circl/math/fp25519/fp.go b/vendor/github.com/cloudflare/circl/math/fp25519/fp.go deleted file mode 100644 index 57a50ff5e9..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp25519/fp.go +++ /dev/null @@ -1,205 +0,0 @@ -// Package fp25519 provides prime field arithmetic over GF(2^255-19). -package fp25519 - -import ( - "errors" - - "github.com/cloudflare/circl/internal/conv" -) - -// Size in bytes of an element. -const Size = 32 - -// Elt is a prime field element. -type Elt [Size]byte - -func (e Elt) String() string { return conv.BytesLe2Hex(e[:]) } - -// p is the prime modulus 2^255-19. -var p = Elt{ - 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, -} - -// P returns the prime modulus 2^255-19. -func P() Elt { return p } - -// ToBytes stores in b the little-endian byte representation of x. -func ToBytes(b []byte, x *Elt) error { - if len(b) != Size { - return errors.New("wrong size") - } - Modp(x) - copy(b, x[:]) - return nil -} - -// IsZero returns true if x is equal to 0. -func IsZero(x *Elt) bool { Modp(x); return *x == Elt{} } - -// SetOne assigns x=1. -func SetOne(x *Elt) { *x = Elt{}; x[0] = 1 } - -// Neg calculates z = -x. -func Neg(z, x *Elt) { Sub(z, &p, x) } - -// InvSqrt calculates z = sqrt(x/y) iff x/y is a quadratic-residue, which is -// indicated by returning isQR = true. Otherwise, when x/y is a quadratic -// non-residue, z will have an undetermined value and isQR = false. -func InvSqrt(z, x, y *Elt) (isQR bool) { - sqrtMinusOne := &Elt{ - 0xb0, 0xa0, 0x0e, 0x4a, 0x27, 0x1b, 0xee, 0xc4, - 0x78, 0xe4, 0x2f, 0xad, 0x06, 0x18, 0x43, 0x2f, - 0xa7, 0xd7, 0xfb, 0x3d, 0x99, 0x00, 0x4d, 0x2b, - 0x0b, 0xdf, 0xc1, 0x4f, 0x80, 0x24, 0x83, 0x2b, - } - t0, t1, t2, t3 := &Elt{}, &Elt{}, &Elt{}, &Elt{} - - Mul(t0, x, y) // t0 = u*v - Sqr(t1, y) // t1 = v^2 - Mul(t2, t0, t1) // t2 = u*v^3 - Sqr(t0, t1) // t0 = v^4 - Mul(t1, t0, t2) // t1 = u*v^7 - - var Tab [4]*Elt - Tab[0] = &Elt{} - Tab[1] = &Elt{} - Tab[2] = t3 - Tab[3] = t1 - - *Tab[0] = *t1 - Sqr(Tab[0], Tab[0]) - Sqr(Tab[1], Tab[0]) - Sqr(Tab[1], Tab[1]) - Mul(Tab[1], Tab[1], Tab[3]) - Mul(Tab[0], Tab[0], Tab[1]) - Sqr(Tab[0], Tab[0]) - Mul(Tab[0], Tab[0], Tab[1]) - Sqr(Tab[1], Tab[0]) - for i := 0; i < 4; i++ { - Sqr(Tab[1], Tab[1]) - } - Mul(Tab[1], Tab[1], Tab[0]) - Sqr(Tab[2], Tab[1]) - for i := 0; i < 4; i++ { - Sqr(Tab[2], Tab[2]) - } - Mul(Tab[2], Tab[2], Tab[0]) - Sqr(Tab[1], Tab[2]) - for i := 0; i < 14; i++ { - Sqr(Tab[1], Tab[1]) - } - Mul(Tab[1], Tab[1], Tab[2]) - Sqr(Tab[2], Tab[1]) - for i := 0; i < 29; i++ { - Sqr(Tab[2], Tab[2]) - } - Mul(Tab[2], Tab[2], Tab[1]) - Sqr(Tab[1], Tab[2]) - for i := 0; i < 59; i++ { - Sqr(Tab[1], Tab[1]) - } - Mul(Tab[1], Tab[1], Tab[2]) - for i := 0; i < 5; i++ { - Sqr(Tab[1], Tab[1]) - } - Mul(Tab[1], Tab[1], Tab[0]) - Sqr(Tab[2], Tab[1]) - for i := 0; i < 124; i++ { - Sqr(Tab[2], Tab[2]) - } - Mul(Tab[2], Tab[2], Tab[1]) - Sqr(Tab[2], Tab[2]) - Sqr(Tab[2], Tab[2]) - Mul(Tab[2], Tab[2], Tab[3]) - - Mul(z, t3, t2) // z = xy^(p+3)/8 = xy^3*(xy^7)^(p-5)/8 - // Checking whether y z^2 == x - Sqr(t0, z) // t0 = z^2 - Mul(t0, t0, y) // t0 = yz^2 - Sub(t1, t0, x) // t1 = t0-u - Add(t2, t0, x) // t2 = t0+u - if IsZero(t1) { - return true - } else if IsZero(t2) { - Mul(z, z, sqrtMinusOne) // z = z*sqrt(-1) - return true - } else { - return false - } -} - -// Inv calculates z = 1/x mod p. -func Inv(z, x *Elt) { - x0, x1, x2 := &Elt{}, &Elt{}, &Elt{} - Sqr(x1, x) - Sqr(x0, x1) - Sqr(x0, x0) - Mul(x0, x0, x) - Mul(z, x0, x1) - Sqr(x1, z) - Mul(x0, x0, x1) - Sqr(x1, x0) - for i := 0; i < 4; i++ { - Sqr(x1, x1) - } - Mul(x0, x0, x1) - Sqr(x1, x0) - for i := 0; i < 9; i++ { - Sqr(x1, x1) - } - Mul(x1, x1, x0) - Sqr(x2, x1) - for i := 0; i < 19; i++ { - Sqr(x2, x2) - } - Mul(x2, x2, x1) - for i := 0; i < 10; i++ { - Sqr(x2, x2) - } - Mul(x2, x2, x0) - Sqr(x0, x2) - for i := 0; i < 49; i++ { - Sqr(x0, x0) - } - Mul(x0, x0, x2) - Sqr(x1, x0) - for i := 0; i < 99; i++ { - Sqr(x1, x1) - } - Mul(x1, x1, x0) - for i := 0; i < 50; i++ { - Sqr(x1, x1) - } - Mul(x1, x1, x2) - for i := 0; i < 5; i++ { - Sqr(x1, x1) - } - Mul(z, z, x1) -} - -// Cmov assigns y to x if n is 1. -func Cmov(x, y *Elt, n uint) { cmov(x, y, n) } - -// Cswap interchanges x and y if n is 1. -func Cswap(x, y *Elt, n uint) { cswap(x, y, n) } - -// Add calculates z = x+y mod p. -func Add(z, x, y *Elt) { add(z, x, y) } - -// Sub calculates z = x-y mod p. -func Sub(z, x, y *Elt) { sub(z, x, y) } - -// AddSub calculates (x,y) = (x+y mod p, x-y mod p). -func AddSub(x, y *Elt) { addsub(x, y) } - -// Mul calculates z = x*y mod p. -func Mul(z, x, y *Elt) { mul(z, x, y) } - -// Sqr calculates z = x^2 mod p. -func Sqr(z, x *Elt) { sqr(z, x) } - -// Modp ensures that z is between [0,p-1]. -func Modp(z *Elt) { modp(z) } diff --git a/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.go b/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.go deleted file mode 100644 index 057f0d2803..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.go +++ /dev/null @@ -1,45 +0,0 @@ -//go:build amd64 && !purego -// +build amd64,!purego - -package fp25519 - -import ( - "golang.org/x/sys/cpu" -) - -var hasBmi2Adx = cpu.X86.HasBMI2 && cpu.X86.HasADX - -var _ = hasBmi2Adx - -func cmov(x, y *Elt, n uint) { cmovAmd64(x, y, n) } -func cswap(x, y *Elt, n uint) { cswapAmd64(x, y, n) } -func add(z, x, y *Elt) { addAmd64(z, x, y) } -func sub(z, x, y *Elt) { subAmd64(z, x, y) } -func addsub(x, y *Elt) { addsubAmd64(x, y) } -func mul(z, x, y *Elt) { mulAmd64(z, x, y) } -func sqr(z, x *Elt) { sqrAmd64(z, x) } -func modp(z *Elt) { modpAmd64(z) } - -//go:noescape -func cmovAmd64(x, y *Elt, n uint) - -//go:noescape -func cswapAmd64(x, y *Elt, n uint) - -//go:noescape -func addAmd64(z, x, y *Elt) - -//go:noescape -func subAmd64(z, x, y *Elt) - -//go:noescape -func addsubAmd64(x, y *Elt) - -//go:noescape -func mulAmd64(z, x, y *Elt) - -//go:noescape -func sqrAmd64(z, x *Elt) - -//go:noescape -func modpAmd64(z *Elt) diff --git a/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.h b/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.h deleted file mode 100644 index 7b25f16e41..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp25519/fp_amd64.h +++ /dev/null @@ -1,350 +0,0 @@ -// This code was imported from https://github.com/armfazh/rfc7748_precomputed - -// CHECK_BMI2ADX triggers bmi2adx if supported, -// otherwise it fallbacks to legacy code. -#define CHECK_BMI2ADX(label, legacy, bmi2adx) \ - CMPB ·hasBmi2Adx(SB), $0 \ - JE label \ - bmi2adx \ - RET \ - label: \ - legacy \ - RET - -// cselect is a conditional move -// if b=1: it copies y into x; -// if b=0: x remains with the same value; -// if b<> 0,1: undefined. -// Uses: AX, DX, FLAGS -// Instr: x86_64, cmov -#define cselect(x,y,b) \ - TESTQ b, b \ - MOVQ 0+x, AX; MOVQ 0+y, DX; CMOVQNE DX, AX; MOVQ AX, 0+x; \ - MOVQ 8+x, AX; MOVQ 8+y, DX; CMOVQNE DX, AX; MOVQ AX, 8+x; \ - MOVQ 16+x, AX; MOVQ 16+y, DX; CMOVQNE DX, AX; MOVQ AX, 16+x; \ - MOVQ 24+x, AX; MOVQ 24+y, DX; CMOVQNE DX, AX; MOVQ AX, 24+x; - -// cswap is a conditional swap -// if b=1: x,y <- y,x; -// if b=0: x,y remain with the same values; -// if b<> 0,1: undefined. -// Uses: AX, DX, R8, FLAGS -// Instr: x86_64, cmov -#define cswap(x,y,b) \ - TESTQ b, b \ - MOVQ 0+x, AX; MOVQ AX, R8; MOVQ 0+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 0+x; MOVQ DX, 0+y; \ - MOVQ 8+x, AX; MOVQ AX, R8; MOVQ 8+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 8+x; MOVQ DX, 8+y; \ - MOVQ 16+x, AX; MOVQ AX, R8; MOVQ 16+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 16+x; MOVQ DX, 16+y; \ - MOVQ 24+x, AX; MOVQ AX, R8; MOVQ 24+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 24+x; MOVQ DX, 24+y; - -// additionLeg adds x and y and stores in z -// Uses: AX, DX, R8-R11, FLAGS -// Instr: x86_64, cmov -#define additionLeg(z,x,y) \ - MOVL $38, AX; \ - MOVL $0, DX; \ - MOVQ 0+x, R8; ADDQ 0+y, R8; \ - MOVQ 8+x, R9; ADCQ 8+y, R9; \ - MOVQ 16+x, R10; ADCQ 16+y, R10; \ - MOVQ 24+x, R11; ADCQ 24+y, R11; \ - CMOVQCS AX, DX; \ - ADDQ DX, R8; \ - ADCQ $0, R9; MOVQ R9, 8+z; \ - ADCQ $0, R10; MOVQ R10, 16+z; \ - ADCQ $0, R11; MOVQ R11, 24+z; \ - MOVL $0, DX; \ - CMOVQCS AX, DX; \ - ADDQ DX, R8; MOVQ R8, 0+z; - -// additionAdx adds x and y and stores in z -// Uses: AX, DX, R8-R11, FLAGS -// Instr: x86_64, cmov, adx -#define additionAdx(z,x,y) \ - MOVL $38, AX; \ - XORL DX, DX; \ - MOVQ 0+x, R8; ADCXQ 0+y, R8; \ - MOVQ 8+x, R9; ADCXQ 8+y, R9; \ - MOVQ 16+x, R10; ADCXQ 16+y, R10; \ - MOVQ 24+x, R11; ADCXQ 24+y, R11; \ - CMOVQCS AX, DX ; \ - XORL AX, AX; \ - ADCXQ DX, R8; \ - ADCXQ AX, R9; MOVQ R9, 8+z; \ - ADCXQ AX, R10; MOVQ R10, 16+z; \ - ADCXQ AX, R11; MOVQ R11, 24+z; \ - MOVL $38, DX; \ - CMOVQCS DX, AX; \ - ADDQ AX, R8; MOVQ R8, 0+z; - -// subtraction subtracts y from x and stores in z -// Uses: AX, DX, R8-R11, FLAGS -// Instr: x86_64, cmov -#define subtraction(z,x,y) \ - MOVL $38, AX; \ - MOVQ 0+x, R8; SUBQ 0+y, R8; \ - MOVQ 8+x, R9; SBBQ 8+y, R9; \ - MOVQ 16+x, R10; SBBQ 16+y, R10; \ - MOVQ 24+x, R11; SBBQ 24+y, R11; \ - MOVL $0, DX; \ - CMOVQCS AX, DX; \ - SUBQ DX, R8; \ - SBBQ $0, R9; MOVQ R9, 8+z; \ - SBBQ $0, R10; MOVQ R10, 16+z; \ - SBBQ $0, R11; MOVQ R11, 24+z; \ - MOVL $0, DX; \ - CMOVQCS AX, DX; \ - SUBQ DX, R8; MOVQ R8, 0+z; - -// integerMulAdx multiplies x and y and stores in z -// Uses: AX, DX, R8-R15, FLAGS -// Instr: x86_64, bmi2, adx -#define integerMulAdx(z,x,y) \ - MOVQ 0+y, DX; XORL AX, AX; \ - MULXQ 0+x, AX, R8; MOVQ AX, 0+z; \ - MULXQ 8+x, AX, R9; ADCXQ AX, R8; \ - MULXQ 16+x, AX, R10; ADCXQ AX, R9; \ - MULXQ 24+x, AX, R11; ADCXQ AX, R10; \ - MOVL $0, AX;;;;;;;;; ADCXQ AX, R11; \ - MOVQ 8+y, DX; XORL AX, AX; \ - MULXQ 0+x, AX, R12; ADCXQ R8, AX; MOVQ AX, 8+z; \ - MULXQ 8+x, AX, R13; ADCXQ R9, R12; ADOXQ AX, R12; \ - MULXQ 16+x, AX, R14; ADCXQ R10, R13; ADOXQ AX, R13; \ - MULXQ 24+x, AX, R15; ADCXQ R11, R14; ADOXQ AX, R14; \ - MOVL $0, AX;;;;;;;;; ADCXQ AX, R15; ADOXQ AX, R15; \ - MOVQ 16+y, DX; XORL AX, AX; \ - MULXQ 0+x, AX, R8; ADCXQ R12, AX; MOVQ AX, 16+z; \ - MULXQ 8+x, AX, R9; ADCXQ R13, R8; ADOXQ AX, R8; \ - MULXQ 16+x, AX, R10; ADCXQ R14, R9; ADOXQ AX, R9; \ - MULXQ 24+x, AX, R11; ADCXQ R15, R10; ADOXQ AX, R10; \ - MOVL $0, AX;;;;;;;;; ADCXQ AX, R11; ADOXQ AX, R11; \ - MOVQ 24+y, DX; XORL AX, AX; \ - MULXQ 0+x, AX, R12; ADCXQ R8, AX; MOVQ AX, 24+z; \ - MULXQ 8+x, AX, R13; ADCXQ R9, R12; ADOXQ AX, R12; MOVQ R12, 32+z; \ - MULXQ 16+x, AX, R14; ADCXQ R10, R13; ADOXQ AX, R13; MOVQ R13, 40+z; \ - MULXQ 24+x, AX, R15; ADCXQ R11, R14; ADOXQ AX, R14; MOVQ R14, 48+z; \ - MOVL $0, AX;;;;;;;;; ADCXQ AX, R15; ADOXQ AX, R15; MOVQ R15, 56+z; - -// integerMulLeg multiplies x and y and stores in z -// Uses: AX, DX, R8-R15, FLAGS -// Instr: x86_64 -#define integerMulLeg(z,x,y) \ - MOVQ 0+y, R8; \ - MOVQ 0+x, AX; MULQ R8; MOVQ AX, 0+z; MOVQ DX, R15; \ - MOVQ 8+x, AX; MULQ R8; MOVQ AX, R13; MOVQ DX, R10; \ - MOVQ 16+x, AX; MULQ R8; MOVQ AX, R14; MOVQ DX, R11; \ - MOVQ 24+x, AX; MULQ R8; \ - ADDQ R13, R15; \ - ADCQ R14, R10; MOVQ R10, 16+z; \ - ADCQ AX, R11; MOVQ R11, 24+z; \ - ADCQ $0, DX; MOVQ DX, 32+z; \ - MOVQ 8+y, R8; \ - MOVQ 0+x, AX; MULQ R8; MOVQ AX, R12; MOVQ DX, R9; \ - MOVQ 8+x, AX; MULQ R8; MOVQ AX, R13; MOVQ DX, R10; \ - MOVQ 16+x, AX; MULQ R8; MOVQ AX, R14; MOVQ DX, R11; \ - MOVQ 24+x, AX; MULQ R8; \ - ADDQ R12, R15; MOVQ R15, 8+z; \ - ADCQ R13, R9; \ - ADCQ R14, R10; \ - ADCQ AX, R11; \ - ADCQ $0, DX; \ - ADCQ 16+z, R9; MOVQ R9, R15; \ - ADCQ 24+z, R10; MOVQ R10, 24+z; \ - ADCQ 32+z, R11; MOVQ R11, 32+z; \ - ADCQ $0, DX; MOVQ DX, 40+z; \ - MOVQ 16+y, R8; \ - MOVQ 0+x, AX; MULQ R8; MOVQ AX, R12; MOVQ DX, R9; \ - MOVQ 8+x, AX; MULQ R8; MOVQ AX, R13; MOVQ DX, R10; \ - MOVQ 16+x, AX; MULQ R8; MOVQ AX, R14; MOVQ DX, R11; \ - MOVQ 24+x, AX; MULQ R8; \ - ADDQ R12, R15; MOVQ R15, 16+z; \ - ADCQ R13, R9; \ - ADCQ R14, R10; \ - ADCQ AX, R11; \ - ADCQ $0, DX; \ - ADCQ 24+z, R9; MOVQ R9, R15; \ - ADCQ 32+z, R10; MOVQ R10, 32+z; \ - ADCQ 40+z, R11; MOVQ R11, 40+z; \ - ADCQ $0, DX; MOVQ DX, 48+z; \ - MOVQ 24+y, R8; \ - MOVQ 0+x, AX; MULQ R8; MOVQ AX, R12; MOVQ DX, R9; \ - MOVQ 8+x, AX; MULQ R8; MOVQ AX, R13; MOVQ DX, R10; \ - MOVQ 16+x, AX; MULQ R8; MOVQ AX, R14; MOVQ DX, R11; \ - MOVQ 24+x, AX; MULQ R8; \ - ADDQ R12, R15; MOVQ R15, 24+z; \ - ADCQ R13, R9; \ - ADCQ R14, R10; \ - ADCQ AX, R11; \ - ADCQ $0, DX; \ - ADCQ 32+z, R9; MOVQ R9, 32+z; \ - ADCQ 40+z, R10; MOVQ R10, 40+z; \ - ADCQ 48+z, R11; MOVQ R11, 48+z; \ - ADCQ $0, DX; MOVQ DX, 56+z; - -// integerSqrLeg squares x and stores in z -// Uses: AX, CX, DX, R8-R15, FLAGS -// Instr: x86_64 -#define integerSqrLeg(z,x) \ - MOVQ 0+x, R8; \ - MOVQ 8+x, AX; MULQ R8; MOVQ AX, R9; MOVQ DX, R10; /* A[0]*A[1] */ \ - MOVQ 16+x, AX; MULQ R8; MOVQ AX, R14; MOVQ DX, R11; /* A[0]*A[2] */ \ - MOVQ 24+x, AX; MULQ R8; MOVQ AX, R15; MOVQ DX, R12; /* A[0]*A[3] */ \ - MOVQ 24+x, R8; \ - MOVQ 8+x, AX; MULQ R8; MOVQ AX, CX; MOVQ DX, R13; /* A[3]*A[1] */ \ - MOVQ 16+x, AX; MULQ R8; /* A[3]*A[2] */ \ - \ - ADDQ R14, R10;\ - ADCQ R15, R11; MOVL $0, R15;\ - ADCQ CX, R12;\ - ADCQ AX, R13;\ - ADCQ $0, DX; MOVQ DX, R14;\ - MOVQ 8+x, AX; MULQ 16+x;\ - \ - ADDQ AX, R11;\ - ADCQ DX, R12;\ - ADCQ $0, R13;\ - ADCQ $0, R14;\ - ADCQ $0, R15;\ - \ - SHLQ $1, R14, R15; MOVQ R15, 56+z;\ - SHLQ $1, R13, R14; MOVQ R14, 48+z;\ - SHLQ $1, R12, R13; MOVQ R13, 40+z;\ - SHLQ $1, R11, R12; MOVQ R12, 32+z;\ - SHLQ $1, R10, R11; MOVQ R11, 24+z;\ - SHLQ $1, R9, R10; MOVQ R10, 16+z;\ - SHLQ $1, R9; MOVQ R9, 8+z;\ - \ - MOVQ 0+x,AX; MULQ AX; MOVQ AX, 0+z; MOVQ DX, R9;\ - MOVQ 8+x,AX; MULQ AX; MOVQ AX, R10; MOVQ DX, R11;\ - MOVQ 16+x,AX; MULQ AX; MOVQ AX, R12; MOVQ DX, R13;\ - MOVQ 24+x,AX; MULQ AX; MOVQ AX, R14; MOVQ DX, R15;\ - \ - ADDQ 8+z, R9; MOVQ R9, 8+z;\ - ADCQ 16+z, R10; MOVQ R10, 16+z;\ - ADCQ 24+z, R11; MOVQ R11, 24+z;\ - ADCQ 32+z, R12; MOVQ R12, 32+z;\ - ADCQ 40+z, R13; MOVQ R13, 40+z;\ - ADCQ 48+z, R14; MOVQ R14, 48+z;\ - ADCQ 56+z, R15; MOVQ R15, 56+z; - -// integerSqrAdx squares x and stores in z -// Uses: AX, CX, DX, R8-R15, FLAGS -// Instr: x86_64, bmi2, adx -#define integerSqrAdx(z,x) \ - MOVQ 0+x, DX; /* A[0] */ \ - MULXQ 8+x, R8, R14; /* A[1]*A[0] */ XORL R15, R15; \ - MULXQ 16+x, R9, R10; /* A[2]*A[0] */ ADCXQ R14, R9; \ - MULXQ 24+x, AX, CX; /* A[3]*A[0] */ ADCXQ AX, R10; \ - MOVQ 24+x, DX; /* A[3] */ \ - MULXQ 8+x, R11, R12; /* A[1]*A[3] */ ADCXQ CX, R11; \ - MULXQ 16+x, AX, R13; /* A[2]*A[3] */ ADCXQ AX, R12; \ - MOVQ 8+x, DX; /* A[1] */ ADCXQ R15, R13; \ - MULXQ 16+x, AX, CX; /* A[2]*A[1] */ MOVL $0, R14; \ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ADCXQ R15, R14; \ - XORL R15, R15; \ - ADOXQ AX, R10; ADCXQ R8, R8; \ - ADOXQ CX, R11; ADCXQ R9, R9; \ - ADOXQ R15, R12; ADCXQ R10, R10; \ - ADOXQ R15, R13; ADCXQ R11, R11; \ - ADOXQ R15, R14; ADCXQ R12, R12; \ - ;;;;;;;;;;;;;;; ADCXQ R13, R13; \ - ;;;;;;;;;;;;;;; ADCXQ R14, R14; \ - MOVQ 0+x, DX; MULXQ DX, AX, CX; /* A[0]^2 */ \ - ;;;;;;;;;;;;;;; MOVQ AX, 0+z; \ - ADDQ CX, R8; MOVQ R8, 8+z; \ - MOVQ 8+x, DX; MULXQ DX, AX, CX; /* A[1]^2 */ \ - ADCQ AX, R9; MOVQ R9, 16+z; \ - ADCQ CX, R10; MOVQ R10, 24+z; \ - MOVQ 16+x, DX; MULXQ DX, AX, CX; /* A[2]^2 */ \ - ADCQ AX, R11; MOVQ R11, 32+z; \ - ADCQ CX, R12; MOVQ R12, 40+z; \ - MOVQ 24+x, DX; MULXQ DX, AX, CX; /* A[3]^2 */ \ - ADCQ AX, R13; MOVQ R13, 48+z; \ - ADCQ CX, R14; MOVQ R14, 56+z; - -// reduceFromDouble finds z congruent to x modulo p such that 0> 63) - // PUT BIT 255 IN CARRY FLAG AND CLEAR - x3 &^= 1 << 63 - - x0, c0 := bits.Add64(x0, cx, 0) - x1, c1 := bits.Add64(x1, 0, c0) - x2, c2 := bits.Add64(x2, 0, c1) - x3, _ = bits.Add64(x3, 0, c2) - - // TEST FOR BIT 255 AGAIN; ONLY TRIGGERED ON OVERFLOW MODULO 2^255-19 - // cx = C[255] ? 0 : 19 - cx = uint64(19) &^ (-(x3 >> 63)) - // CLEAR BIT 255 - x3 &^= 1 << 63 - - x0, c0 = bits.Sub64(x0, cx, 0) - x1, c1 = bits.Sub64(x1, 0, c0) - x2, c2 = bits.Sub64(x2, 0, c1) - x3, _ = bits.Sub64(x3, 0, c2) - - binary.LittleEndian.PutUint64(x[0*8:1*8], x0) - binary.LittleEndian.PutUint64(x[1*8:2*8], x1) - binary.LittleEndian.PutUint64(x[2*8:3*8], x2) - binary.LittleEndian.PutUint64(x[3*8:4*8], x3) -} - -func red64(z *Elt, x0, x1, x2, x3, x4, x5, x6, x7 uint64) { - h0, l0 := bits.Mul64(x4, 38) - h1, l1 := bits.Mul64(x5, 38) - h2, l2 := bits.Mul64(x6, 38) - h3, l3 := bits.Mul64(x7, 38) - - l1, c0 := bits.Add64(h0, l1, 0) - l2, c1 := bits.Add64(h1, l2, c0) - l3, c2 := bits.Add64(h2, l3, c1) - l4, _ := bits.Add64(h3, 0, c2) - - l0, c0 = bits.Add64(l0, x0, 0) - l1, c1 = bits.Add64(l1, x1, c0) - l2, c2 = bits.Add64(l2, x2, c1) - l3, c3 := bits.Add64(l3, x3, c2) - l4, _ = bits.Add64(l4, 0, c3) - - _, l4 = bits.Mul64(l4, 38) - l0, c0 = bits.Add64(l0, l4, 0) - z1, c1 := bits.Add64(l1, 0, c0) - z2, c2 := bits.Add64(l2, 0, c1) - z3, c3 := bits.Add64(l3, 0, c2) - z0, _ := bits.Add64(l0, (-c3)&38, 0) - - binary.LittleEndian.PutUint64(z[0*8:1*8], z0) - binary.LittleEndian.PutUint64(z[1*8:2*8], z1) - binary.LittleEndian.PutUint64(z[2*8:3*8], z2) - binary.LittleEndian.PutUint64(z[3*8:4*8], z3) -} diff --git a/vendor/github.com/cloudflare/circl/math/fp25519/fp_noasm.go b/vendor/github.com/cloudflare/circl/math/fp25519/fp_noasm.go deleted file mode 100644 index 26ca4d01b7..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp25519/fp_noasm.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build !amd64 || purego -// +build !amd64 purego - -package fp25519 - -func cmov(x, y *Elt, n uint) { cmovGeneric(x, y, n) } -func cswap(x, y *Elt, n uint) { cswapGeneric(x, y, n) } -func add(z, x, y *Elt) { addGeneric(z, x, y) } -func sub(z, x, y *Elt) { subGeneric(z, x, y) } -func addsub(x, y *Elt) { addsubGeneric(x, y) } -func mul(z, x, y *Elt) { mulGeneric(z, x, y) } -func sqr(z, x *Elt) { sqrGeneric(z, x) } -func modp(z *Elt) { modpGeneric(z) } diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp.go b/vendor/github.com/cloudflare/circl/math/fp448/fp.go deleted file mode 100644 index a5e36600bb..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp448/fp.go +++ /dev/null @@ -1,164 +0,0 @@ -// Package fp448 provides prime field arithmetic over GF(2^448-2^224-1). -package fp448 - -import ( - "errors" - - "github.com/cloudflare/circl/internal/conv" -) - -// Size in bytes of an element. -const Size = 56 - -// Elt is a prime field element. -type Elt [Size]byte - -func (e Elt) String() string { return conv.BytesLe2Hex(e[:]) } - -// p is the prime modulus 2^448-2^224-1. -var p = Elt{ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -} - -// P returns the prime modulus 2^448-2^224-1. -func P() Elt { return p } - -// ToBytes stores in b the little-endian byte representation of x. -func ToBytes(b []byte, x *Elt) error { - if len(b) != Size { - return errors.New("wrong size") - } - Modp(x) - copy(b, x[:]) - return nil -} - -// IsZero returns true if x is equal to 0. -func IsZero(x *Elt) bool { Modp(x); return *x == Elt{} } - -// IsOne returns true if x is equal to 1. -func IsOne(x *Elt) bool { Modp(x); return *x == Elt{1} } - -// SetOne assigns x=1. -func SetOne(x *Elt) { *x = Elt{1} } - -// One returns the 1 element. -func One() (x Elt) { x = Elt{1}; return } - -// Neg calculates z = -x. -func Neg(z, x *Elt) { Sub(z, &p, x) } - -// Modp ensures that z is between [0,p-1]. -func Modp(z *Elt) { Sub(z, z, &p) } - -// InvSqrt calculates z = sqrt(x/y) iff x/y is a quadratic-residue. If so, -// isQR = true; otherwise, isQR = false, since x/y is a quadratic non-residue, -// and z = sqrt(-x/y). -func InvSqrt(z, x, y *Elt) (isQR bool) { - // First note that x^(2(k+1)) = x^(p-1)/2 * x = legendre(x) * x - // so that's x if x is a quadratic residue and -x otherwise. - // Next, y^(6k+3) = y^(4k+2) * y^(2k+1) = y^(p-1) * y^((p-1)/2) = legendre(y). - // So the z we compute satisfies z^2 y = x^(2(k+1)) y^(6k+3) = legendre(x)*legendre(y). - // Thus if x and y are quadratic residues, then z is indeed sqrt(x/y). - t0, t1 := &Elt{}, &Elt{} - Mul(t0, x, y) // x*y - Sqr(t1, y) // y^2 - Mul(t1, t0, t1) // x*y^3 - powPminus3div4(z, t1) // (x*y^3)^k - Mul(z, z, t0) // z = x*y*(x*y^3)^k = x^(k+1) * y^(3k+1) - - // Check if x/y is a quadratic residue - Sqr(t0, z) // z^2 - Mul(t0, t0, y) // y*z^2 - Sub(t0, t0, x) // y*z^2-x - return IsZero(t0) -} - -// Inv calculates z = 1/x mod p. -func Inv(z, x *Elt) { - // Calculates z = x^(4k+1) = x^(p-3+1) = x^(p-2) = x^-1, where k = (p-3)/4. - t := &Elt{} - powPminus3div4(t, x) // t = x^k - Sqr(t, t) // t = x^2k - Sqr(t, t) // t = x^4k - Mul(z, t, x) // z = x^(4k+1) -} - -// powPminus3div4 calculates z = x^k mod p, where k = (p-3)/4. -func powPminus3div4(z, x *Elt) { - x0, x1 := &Elt{}, &Elt{} - Sqr(z, x) - Mul(z, z, x) - Sqr(x0, z) - Mul(x0, x0, x) - Sqr(z, x0) - Sqr(z, z) - Sqr(z, z) - Mul(z, z, x0) - Sqr(x1, z) - for i := 0; i < 5; i++ { - Sqr(x1, x1) - } - Mul(x1, x1, z) - Sqr(z, x1) - for i := 0; i < 11; i++ { - Sqr(z, z) - } - Mul(z, z, x1) - Sqr(z, z) - Sqr(z, z) - Sqr(z, z) - Mul(z, z, x0) - Sqr(x1, z) - for i := 0; i < 26; i++ { - Sqr(x1, x1) - } - Mul(x1, x1, z) - Sqr(z, x1) - for i := 0; i < 53; i++ { - Sqr(z, z) - } - Mul(z, z, x1) - Sqr(z, z) - Sqr(z, z) - Sqr(z, z) - Mul(z, z, x0) - Sqr(x1, z) - for i := 0; i < 110; i++ { - Sqr(x1, x1) - } - Mul(x1, x1, z) - Sqr(z, x1) - Mul(z, z, x) - for i := 0; i < 223; i++ { - Sqr(z, z) - } - Mul(z, z, x1) -} - -// Cmov assigns y to x if n is 1. -func Cmov(x, y *Elt, n uint) { cmov(x, y, n) } - -// Cswap interchanges x and y if n is 1. -func Cswap(x, y *Elt, n uint) { cswap(x, y, n) } - -// Add calculates z = x+y mod p. -func Add(z, x, y *Elt) { add(z, x, y) } - -// Sub calculates z = x-y mod p. -func Sub(z, x, y *Elt) { sub(z, x, y) } - -// AddSub calculates (x,y) = (x+y mod p, x-y mod p). -func AddSub(x, y *Elt) { addsub(x, y) } - -// Mul calculates z = x*y mod p. -func Mul(z, x, y *Elt) { mul(z, x, y) } - -// Sqr calculates z = x^2 mod p. -func Sqr(z, x *Elt) { sqr(z, x) } diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.go b/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.go deleted file mode 100644 index 6a12209a70..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.go +++ /dev/null @@ -1,43 +0,0 @@ -//go:build amd64 && !purego -// +build amd64,!purego - -package fp448 - -import ( - "golang.org/x/sys/cpu" -) - -var hasBmi2Adx = cpu.X86.HasBMI2 && cpu.X86.HasADX - -var _ = hasBmi2Adx - -func cmov(x, y *Elt, n uint) { cmovAmd64(x, y, n) } -func cswap(x, y *Elt, n uint) { cswapAmd64(x, y, n) } -func add(z, x, y *Elt) { addAmd64(z, x, y) } -func sub(z, x, y *Elt) { subAmd64(z, x, y) } -func addsub(x, y *Elt) { addsubAmd64(x, y) } -func mul(z, x, y *Elt) { mulAmd64(z, x, y) } -func sqr(z, x *Elt) { sqrAmd64(z, x) } - -/* Functions defined in fp_amd64.s */ - -//go:noescape -func cmovAmd64(x, y *Elt, n uint) - -//go:noescape -func cswapAmd64(x, y *Elt, n uint) - -//go:noescape -func addAmd64(z, x, y *Elt) - -//go:noescape -func subAmd64(z, x, y *Elt) - -//go:noescape -func addsubAmd64(x, y *Elt) - -//go:noescape -func mulAmd64(z, x, y *Elt) - -//go:noescape -func sqrAmd64(z, x *Elt) diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.h b/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.h deleted file mode 100644 index 0b7dea174b..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.h +++ /dev/null @@ -1,590 +0,0 @@ -// This code was imported from https://github.com/armfazh/rfc7748_precomputed - -// CHECK_BMI2ADX triggers bmi2adx if supported, -// otherwise it fallbacks to legacy code. -#define CHECK_BMI2ADX(label, legacy, bmi2adx) \ - CMPB ·hasBmi2Adx(SB), $0 \ - JE label \ - bmi2adx \ - RET \ - label: \ - legacy \ - RET - -// cselect is a conditional move -// if b=1: it copies y into x; -// if b=0: x remains with the same value; -// if b<> 0,1: undefined. -// Uses: AX, DX, FLAGS -// Instr: x86_64, cmov -#define cselect(x,y,b) \ - TESTQ b, b \ - MOVQ 0+x, AX; MOVQ 0+y, DX; CMOVQNE DX, AX; MOVQ AX, 0+x; \ - MOVQ 8+x, AX; MOVQ 8+y, DX; CMOVQNE DX, AX; MOVQ AX, 8+x; \ - MOVQ 16+x, AX; MOVQ 16+y, DX; CMOVQNE DX, AX; MOVQ AX, 16+x; \ - MOVQ 24+x, AX; MOVQ 24+y, DX; CMOVQNE DX, AX; MOVQ AX, 24+x; \ - MOVQ 32+x, AX; MOVQ 32+y, DX; CMOVQNE DX, AX; MOVQ AX, 32+x; \ - MOVQ 40+x, AX; MOVQ 40+y, DX; CMOVQNE DX, AX; MOVQ AX, 40+x; \ - MOVQ 48+x, AX; MOVQ 48+y, DX; CMOVQNE DX, AX; MOVQ AX, 48+x; - -// cswap is a conditional swap -// if b=1: x,y <- y,x; -// if b=0: x,y remain with the same values; -// if b<> 0,1: undefined. -// Uses: AX, DX, R8, FLAGS -// Instr: x86_64, cmov -#define cswap(x,y,b) \ - TESTQ b, b \ - MOVQ 0+x, AX; MOVQ AX, R8; MOVQ 0+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 0+x; MOVQ DX, 0+y; \ - MOVQ 8+x, AX; MOVQ AX, R8; MOVQ 8+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 8+x; MOVQ DX, 8+y; \ - MOVQ 16+x, AX; MOVQ AX, R8; MOVQ 16+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 16+x; MOVQ DX, 16+y; \ - MOVQ 24+x, AX; MOVQ AX, R8; MOVQ 24+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 24+x; MOVQ DX, 24+y; \ - MOVQ 32+x, AX; MOVQ AX, R8; MOVQ 32+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 32+x; MOVQ DX, 32+y; \ - MOVQ 40+x, AX; MOVQ AX, R8; MOVQ 40+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 40+x; MOVQ DX, 40+y; \ - MOVQ 48+x, AX; MOVQ AX, R8; MOVQ 48+y, DX; CMOVQNE DX, AX; CMOVQNE R8, DX; MOVQ AX, 48+x; MOVQ DX, 48+y; - -// additionLeg adds x and y and stores in z -// Uses: AX, DX, R8-R14, FLAGS -// Instr: x86_64 -#define additionLeg(z,x,y) \ - MOVQ 0+x, R8; ADDQ 0+y, R8; \ - MOVQ 8+x, R9; ADCQ 8+y, R9; \ - MOVQ 16+x, R10; ADCQ 16+y, R10; \ - MOVQ 24+x, R11; ADCQ 24+y, R11; \ - MOVQ 32+x, R12; ADCQ 32+y, R12; \ - MOVQ 40+x, R13; ADCQ 40+y, R13; \ - MOVQ 48+x, R14; ADCQ 48+y, R14; \ - MOVQ $0, AX; ADCQ $0, AX; \ - MOVQ AX, DX; \ - SHLQ $32, DX; \ - ADDQ AX, R8; MOVQ $0, AX; \ - ADCQ $0, R9; \ - ADCQ $0, R10; \ - ADCQ DX, R11; \ - ADCQ $0, R12; \ - ADCQ $0, R13; \ - ADCQ $0, R14; \ - ADCQ $0, AX; \ - MOVQ AX, DX; \ - SHLQ $32, DX; \ - ADDQ AX, R8; MOVQ R8, 0+z; \ - ADCQ $0, R9; MOVQ R9, 8+z; \ - ADCQ $0, R10; MOVQ R10, 16+z; \ - ADCQ DX, R11; MOVQ R11, 24+z; \ - ADCQ $0, R12; MOVQ R12, 32+z; \ - ADCQ $0, R13; MOVQ R13, 40+z; \ - ADCQ $0, R14; MOVQ R14, 48+z; - - -// additionAdx adds x and y and stores in z -// Uses: AX, DX, R8-R15, FLAGS -// Instr: x86_64, adx -#define additionAdx(z,x,y) \ - MOVL $32, R15; \ - XORL DX, DX; \ - MOVQ 0+x, R8; ADCXQ 0+y, R8; \ - MOVQ 8+x, R9; ADCXQ 8+y, R9; \ - MOVQ 16+x, R10; ADCXQ 16+y, R10; \ - MOVQ 24+x, R11; ADCXQ 24+y, R11; \ - MOVQ 32+x, R12; ADCXQ 32+y, R12; \ - MOVQ 40+x, R13; ADCXQ 40+y, R13; \ - MOVQ 48+x, R14; ADCXQ 48+y, R14; \ - ;;;;;;;;;;;;;;; ADCXQ DX, DX; \ - XORL AX, AX; \ - ADCXQ DX, R8; SHLXQ R15, DX, DX; \ - ADCXQ AX, R9; \ - ADCXQ AX, R10; \ - ADCXQ DX, R11; \ - ADCXQ AX, R12; \ - ADCXQ AX, R13; \ - ADCXQ AX, R14; \ - ADCXQ AX, AX; \ - XORL DX, DX; \ - ADCXQ AX, R8; MOVQ R8, 0+z; SHLXQ R15, AX, AX; \ - ADCXQ DX, R9; MOVQ R9, 8+z; \ - ADCXQ DX, R10; MOVQ R10, 16+z; \ - ADCXQ AX, R11; MOVQ R11, 24+z; \ - ADCXQ DX, R12; MOVQ R12, 32+z; \ - ADCXQ DX, R13; MOVQ R13, 40+z; \ - ADCXQ DX, R14; MOVQ R14, 48+z; - -// subtraction subtracts y from x and stores in z -// Uses: AX, DX, R8-R14, FLAGS -// Instr: x86_64 -#define subtraction(z,x,y) \ - MOVQ 0+x, R8; SUBQ 0+y, R8; \ - MOVQ 8+x, R9; SBBQ 8+y, R9; \ - MOVQ 16+x, R10; SBBQ 16+y, R10; \ - MOVQ 24+x, R11; SBBQ 24+y, R11; \ - MOVQ 32+x, R12; SBBQ 32+y, R12; \ - MOVQ 40+x, R13; SBBQ 40+y, R13; \ - MOVQ 48+x, R14; SBBQ 48+y, R14; \ - MOVQ $0, AX; SETCS AX; \ - MOVQ AX, DX; \ - SHLQ $32, DX; \ - SUBQ AX, R8; MOVQ $0, AX; \ - SBBQ $0, R9; \ - SBBQ $0, R10; \ - SBBQ DX, R11; \ - SBBQ $0, R12; \ - SBBQ $0, R13; \ - SBBQ $0, R14; \ - SETCS AX; \ - MOVQ AX, DX; \ - SHLQ $32, DX; \ - SUBQ AX, R8; MOVQ R8, 0+z; \ - SBBQ $0, R9; MOVQ R9, 8+z; \ - SBBQ $0, R10; MOVQ R10, 16+z; \ - SBBQ DX, R11; MOVQ R11, 24+z; \ - SBBQ $0, R12; MOVQ R12, 32+z; \ - SBBQ $0, R13; MOVQ R13, 40+z; \ - SBBQ $0, R14; MOVQ R14, 48+z; - -// maddBmi2Adx multiplies x and y and accumulates in z -// Uses: AX, DX, R15, FLAGS -// Instr: x86_64, bmi2, adx -#define maddBmi2Adx(z,x,y,i,r0,r1,r2,r3,r4,r5,r6) \ - MOVQ i+y, DX; XORL AX, AX; \ - MULXQ 0+x, AX, R8; ADOXQ AX, r0; ADCXQ R8, r1; MOVQ r0,i+z; \ - MULXQ 8+x, AX, r0; ADOXQ AX, r1; ADCXQ r0, r2; MOVQ $0, R8; \ - MULXQ 16+x, AX, r0; ADOXQ AX, r2; ADCXQ r0, r3; \ - MULXQ 24+x, AX, r0; ADOXQ AX, r3; ADCXQ r0, r4; \ - MULXQ 32+x, AX, r0; ADOXQ AX, r4; ADCXQ r0, r5; \ - MULXQ 40+x, AX, r0; ADOXQ AX, r5; ADCXQ r0, r6; \ - MULXQ 48+x, AX, r0; ADOXQ AX, r6; ADCXQ R8, r0; \ - ;;;;;;;;;;;;;;;;;;; ADOXQ R8, r0; - -// integerMulAdx multiplies x and y and stores in z -// Uses: AX, DX, R8-R15, FLAGS -// Instr: x86_64, bmi2, adx -#define integerMulAdx(z,x,y) \ - MOVQ 0+y, DX; XORL AX, AX; MOVQ $0, R8; \ - MULXQ 0+x, AX, R9; MOVQ AX, 0+z; \ - MULXQ 8+x, AX, R10; ADCXQ AX, R9; \ - MULXQ 16+x, AX, R11; ADCXQ AX, R10; \ - MULXQ 24+x, AX, R12; ADCXQ AX, R11; \ - MULXQ 32+x, AX, R13; ADCXQ AX, R12; \ - MULXQ 40+x, AX, R14; ADCXQ AX, R13; \ - MULXQ 48+x, AX, R15; ADCXQ AX, R14; \ - ;;;;;;;;;;;;;;;;;;;; ADCXQ R8, R15; \ - maddBmi2Adx(z,x,y, 8, R9,R10,R11,R12,R13,R14,R15) \ - maddBmi2Adx(z,x,y,16,R10,R11,R12,R13,R14,R15, R9) \ - maddBmi2Adx(z,x,y,24,R11,R12,R13,R14,R15, R9,R10) \ - maddBmi2Adx(z,x,y,32,R12,R13,R14,R15, R9,R10,R11) \ - maddBmi2Adx(z,x,y,40,R13,R14,R15, R9,R10,R11,R12) \ - maddBmi2Adx(z,x,y,48,R14,R15, R9,R10,R11,R12,R13) \ - MOVQ R15, 56+z; \ - MOVQ R9, 64+z; \ - MOVQ R10, 72+z; \ - MOVQ R11, 80+z; \ - MOVQ R12, 88+z; \ - MOVQ R13, 96+z; \ - MOVQ R14, 104+z; - -// maddLegacy multiplies x and y and accumulates in z -// Uses: AX, DX, R15, FLAGS -// Instr: x86_64 -#define maddLegacy(z,x,y,i) \ - MOVQ i+y, R15; \ - MOVQ 0+x, AX; MULQ R15; MOVQ AX, R8; ;;;;;;;;;;;; MOVQ DX, R9; \ - MOVQ 8+x, AX; MULQ R15; ADDQ AX, R9; ADCQ $0, DX; MOVQ DX, R10; \ - MOVQ 16+x, AX; MULQ R15; ADDQ AX, R10; ADCQ $0, DX; MOVQ DX, R11; \ - MOVQ 24+x, AX; MULQ R15; ADDQ AX, R11; ADCQ $0, DX; MOVQ DX, R12; \ - MOVQ 32+x, AX; MULQ R15; ADDQ AX, R12; ADCQ $0, DX; MOVQ DX, R13; \ - MOVQ 40+x, AX; MULQ R15; ADDQ AX, R13; ADCQ $0, DX; MOVQ DX, R14; \ - MOVQ 48+x, AX; MULQ R15; ADDQ AX, R14; ADCQ $0, DX; \ - ADDQ 0+i+z, R8; MOVQ R8, 0+i+z; \ - ADCQ 8+i+z, R9; MOVQ R9, 8+i+z; \ - ADCQ 16+i+z, R10; MOVQ R10, 16+i+z; \ - ADCQ 24+i+z, R11; MOVQ R11, 24+i+z; \ - ADCQ 32+i+z, R12; MOVQ R12, 32+i+z; \ - ADCQ 40+i+z, R13; MOVQ R13, 40+i+z; \ - ADCQ 48+i+z, R14; MOVQ R14, 48+i+z; \ - ADCQ $0, DX; MOVQ DX, 56+i+z; - -// integerMulLeg multiplies x and y and stores in z -// Uses: AX, DX, R8-R15, FLAGS -// Instr: x86_64 -#define integerMulLeg(z,x,y) \ - MOVQ 0+y, R15; \ - MOVQ 0+x, AX; MULQ R15; MOVQ AX, 0+z; ;;;;;;;;;;;; MOVQ DX, R8; \ - MOVQ 8+x, AX; MULQ R15; ADDQ AX, R8; ADCQ $0, DX; MOVQ DX, R9; MOVQ R8, 8+z; \ - MOVQ 16+x, AX; MULQ R15; ADDQ AX, R9; ADCQ $0, DX; MOVQ DX, R10; MOVQ R9, 16+z; \ - MOVQ 24+x, AX; MULQ R15; ADDQ AX, R10; ADCQ $0, DX; MOVQ DX, R11; MOVQ R10, 24+z; \ - MOVQ 32+x, AX; MULQ R15; ADDQ AX, R11; ADCQ $0, DX; MOVQ DX, R12; MOVQ R11, 32+z; \ - MOVQ 40+x, AX; MULQ R15; ADDQ AX, R12; ADCQ $0, DX; MOVQ DX, R13; MOVQ R12, 40+z; \ - MOVQ 48+x, AX; MULQ R15; ADDQ AX, R13; ADCQ $0, DX; MOVQ DX,56+z; MOVQ R13, 48+z; \ - maddLegacy(z,x,y, 8) \ - maddLegacy(z,x,y,16) \ - maddLegacy(z,x,y,24) \ - maddLegacy(z,x,y,32) \ - maddLegacy(z,x,y,40) \ - maddLegacy(z,x,y,48) - -// integerSqrLeg squares x and stores in z -// Uses: AX, CX, DX, R8-R15, FLAGS -// Instr: x86_64 -#define integerSqrLeg(z,x) \ - XORL R15, R15; \ - MOVQ 0+x, CX; \ - MOVQ CX, AX; MULQ CX; MOVQ AX, 0+z; MOVQ DX, R8; \ - ADDQ CX, CX; ADCQ $0, R15; \ - MOVQ 8+x, AX; MULQ CX; ADDQ AX, R8; ADCQ $0, DX; MOVQ DX, R9; MOVQ R8, 8+z; \ - MOVQ 16+x, AX; MULQ CX; ADDQ AX, R9; ADCQ $0, DX; MOVQ DX, R10; \ - MOVQ 24+x, AX; MULQ CX; ADDQ AX, R10; ADCQ $0, DX; MOVQ DX, R11; \ - MOVQ 32+x, AX; MULQ CX; ADDQ AX, R11; ADCQ $0, DX; MOVQ DX, R12; \ - MOVQ 40+x, AX; MULQ CX; ADDQ AX, R12; ADCQ $0, DX; MOVQ DX, R13; \ - MOVQ 48+x, AX; MULQ CX; ADDQ AX, R13; ADCQ $0, DX; MOVQ DX, R14; \ - \ - MOVQ 8+x, CX; \ - MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ - ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R9; ADCQ $0, DX; MOVQ R9,16+z; \ - MOVQ R15, AX; NEGQ AX; ANDQ 8+x, AX; ADDQ AX, DX; ADCQ $0, R11; MOVQ DX, R8; \ - ADDQ 8+x, CX; ADCQ $0, R15; \ - MOVQ 16+x, AX; MULQ CX; ADDQ AX, R10; ADCQ $0, DX; ADDQ R8, R10; ADCQ $0, DX; MOVQ DX, R8; MOVQ R10, 24+z; \ - MOVQ 24+x, AX; MULQ CX; ADDQ AX, R11; ADCQ $0, DX; ADDQ R8, R11; ADCQ $0, DX; MOVQ DX, R8; \ - MOVQ 32+x, AX; MULQ CX; ADDQ AX, R12; ADCQ $0, DX; ADDQ R8, R12; ADCQ $0, DX; MOVQ DX, R8; \ - MOVQ 40+x, AX; MULQ CX; ADDQ AX, R13; ADCQ $0, DX; ADDQ R8, R13; ADCQ $0, DX; MOVQ DX, R8; \ - MOVQ 48+x, AX; MULQ CX; ADDQ AX, R14; ADCQ $0, DX; ADDQ R8, R14; ADCQ $0, DX; MOVQ DX, R9; \ - \ - MOVQ 16+x, CX; \ - MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ - ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R11; ADCQ $0, DX; MOVQ R11, 32+z; \ - MOVQ R15, AX; NEGQ AX; ANDQ 16+x,AX; ADDQ AX, DX; ADCQ $0, R13; MOVQ DX, R8; \ - ADDQ 16+x, CX; ADCQ $0, R15; \ - MOVQ 24+x, AX; MULQ CX; ADDQ AX, R12; ADCQ $0, DX; ADDQ R8, R12; ADCQ $0, DX; MOVQ DX, R8; MOVQ R12, 40+z; \ - MOVQ 32+x, AX; MULQ CX; ADDQ AX, R13; ADCQ $0, DX; ADDQ R8, R13; ADCQ $0, DX; MOVQ DX, R8; \ - MOVQ 40+x, AX; MULQ CX; ADDQ AX, R14; ADCQ $0, DX; ADDQ R8, R14; ADCQ $0, DX; MOVQ DX, R8; \ - MOVQ 48+x, AX; MULQ CX; ADDQ AX, R9; ADCQ $0, DX; ADDQ R8, R9; ADCQ $0, DX; MOVQ DX,R10; \ - \ - MOVQ 24+x, CX; \ - MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ - ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R13; ADCQ $0, DX; MOVQ R13, 48+z; \ - MOVQ R15, AX; NEGQ AX; ANDQ 24+x,AX; ADDQ AX, DX; ADCQ $0, R9; MOVQ DX, R8; \ - ADDQ 24+x, CX; ADCQ $0, R15; \ - MOVQ 32+x, AX; MULQ CX; ADDQ AX, R14; ADCQ $0, DX; ADDQ R8, R14; ADCQ $0, DX; MOVQ DX, R8; MOVQ R14, 56+z; \ - MOVQ 40+x, AX; MULQ CX; ADDQ AX, R9; ADCQ $0, DX; ADDQ R8, R9; ADCQ $0, DX; MOVQ DX, R8; \ - MOVQ 48+x, AX; MULQ CX; ADDQ AX, R10; ADCQ $0, DX; ADDQ R8, R10; ADCQ $0, DX; MOVQ DX,R11; \ - \ - MOVQ 32+x, CX; \ - MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ - ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R9; ADCQ $0, DX; MOVQ R9, 64+z; \ - MOVQ R15, AX; NEGQ AX; ANDQ 32+x,AX; ADDQ AX, DX; ADCQ $0, R11; MOVQ DX, R8; \ - ADDQ 32+x, CX; ADCQ $0, R15; \ - MOVQ 40+x, AX; MULQ CX; ADDQ AX, R10; ADCQ $0, DX; ADDQ R8, R10; ADCQ $0, DX; MOVQ DX, R8; MOVQ R10, 72+z; \ - MOVQ 48+x, AX; MULQ CX; ADDQ AX, R11; ADCQ $0, DX; ADDQ R8, R11; ADCQ $0, DX; MOVQ DX,R12; \ - \ - XORL R13, R13; \ - XORL R14, R14; \ - MOVQ 40+x, CX; \ - MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ - ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R11; ADCQ $0, DX; MOVQ R11, 80+z; \ - MOVQ R15, AX; NEGQ AX; ANDQ 40+x,AX; ADDQ AX, DX; ADCQ $0, R13; MOVQ DX, R8; \ - ADDQ 40+x, CX; ADCQ $0, R15; \ - MOVQ 48+x, AX; MULQ CX; ADDQ AX, R12; ADCQ $0, DX; ADDQ R8, R12; ADCQ $0, DX; MOVQ DX, R8; MOVQ R12, 88+z; \ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ADDQ R8, R13; ADCQ $0,R14; \ - \ - XORL R9, R9; \ - MOVQ 48+x, CX; \ - MOVQ CX, AX; ADDQ R15, CX; MOVQ $0, R15; ADCQ $0, R15; \ - ;;;;;;;;;;;;;; MULQ CX; ADDQ AX, R13; ADCQ $0, DX; MOVQ R13, 96+z; \ - MOVQ R15, AX; NEGQ AX; ANDQ 48+x,AX; ADDQ AX, DX; ADCQ $0, R9; MOVQ DX, R8; \ - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ADDQ R8,R14; ADCQ $0, R9; MOVQ R14, 104+z; - - -// integerSqrAdx squares x and stores in z -// Uses: AX, CX, DX, R8-R15, FLAGS -// Instr: x86_64, bmi2, adx -#define integerSqrAdx(z,x) \ - XORL R15, R15; \ - MOVQ 0+x, DX; \ - ;;;;;;;;;;;;;; MULXQ DX, AX, R8; MOVQ AX, 0+z; \ - ADDQ DX, DX; ADCQ $0, R15; CLC; \ - MULXQ 8+x, AX, R9; ADCXQ AX, R8; MOVQ R8, 8+z; \ - MULXQ 16+x, AX, R10; ADCXQ AX, R9; MOVQ $0, R8;\ - MULXQ 24+x, AX, R11; ADCXQ AX, R10; \ - MULXQ 32+x, AX, R12; ADCXQ AX, R11; \ - MULXQ 40+x, AX, R13; ADCXQ AX, R12; \ - MULXQ 48+x, AX, R14; ADCXQ AX, R13; \ - ;;;;;;;;;;;;;;;;;;;; ADCXQ R8, R14; \ - \ - MOVQ 8+x, DX; \ - MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ - MULXQ AX, AX, CX; \ - MOVQ R15, R8; NEGQ R8; ANDQ 8+x, R8; \ - ADDQ AX, R9; MOVQ R9, 16+z; \ - ADCQ CX, R8; \ - ADCQ $0, R11; \ - ADDQ 8+x, DX; \ - ADCQ $0, R15; \ - XORL R9, R9; ;;;;;;;;;;;;;;;;;;;;; ADOXQ R8, R10; \ - MULXQ 16+x, AX, CX; ADCXQ AX, R10; ADOXQ CX, R11; MOVQ R10, 24+z; \ - MULXQ 24+x, AX, CX; ADCXQ AX, R11; ADOXQ CX, R12; MOVQ $0, R10; \ - MULXQ 32+x, AX, CX; ADCXQ AX, R12; ADOXQ CX, R13; \ - MULXQ 40+x, AX, CX; ADCXQ AX, R13; ADOXQ CX, R14; \ - MULXQ 48+x, AX, CX; ADCXQ AX, R14; ADOXQ CX, R9; \ - ;;;;;;;;;;;;;;;;;;; ADCXQ R10, R9; \ - \ - MOVQ 16+x, DX; \ - MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ - MULXQ AX, AX, CX; \ - MOVQ R15, R8; NEGQ R8; ANDQ 16+x, R8; \ - ADDQ AX, R11; MOVQ R11, 32+z; \ - ADCQ CX, R8; \ - ADCQ $0, R13; \ - ADDQ 16+x, DX; \ - ADCQ $0, R15; \ - XORL R11, R11; ;;;;;;;;;;;;;;;;;;; ADOXQ R8, R12; \ - MULXQ 24+x, AX, CX; ADCXQ AX, R12; ADOXQ CX, R13; MOVQ R12, 40+z; \ - MULXQ 32+x, AX, CX; ADCXQ AX, R13; ADOXQ CX, R14; MOVQ $0, R12; \ - MULXQ 40+x, AX, CX; ADCXQ AX, R14; ADOXQ CX, R9; \ - MULXQ 48+x, AX, CX; ADCXQ AX, R9; ADOXQ CX, R10; \ - ;;;;;;;;;;;;;;;;;;; ADCXQ R11,R10; \ - \ - MOVQ 24+x, DX; \ - MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ - MULXQ AX, AX, CX; \ - MOVQ R15, R8; NEGQ R8; ANDQ 24+x, R8; \ - ADDQ AX, R13; MOVQ R13, 48+z; \ - ADCQ CX, R8; \ - ADCQ $0, R9; \ - ADDQ 24+x, DX; \ - ADCQ $0, R15; \ - XORL R13, R13; ;;;;;;;;;;;;;;;;;;; ADOXQ R8, R14; \ - MULXQ 32+x, AX, CX; ADCXQ AX, R14; ADOXQ CX, R9; MOVQ R14, 56+z; \ - MULXQ 40+x, AX, CX; ADCXQ AX, R9; ADOXQ CX, R10; MOVQ $0, R14; \ - MULXQ 48+x, AX, CX; ADCXQ AX, R10; ADOXQ CX, R11; \ - ;;;;;;;;;;;;;;;;;;; ADCXQ R12,R11; \ - \ - MOVQ 32+x, DX; \ - MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ - MULXQ AX, AX, CX; \ - MOVQ R15, R8; NEGQ R8; ANDQ 32+x, R8; \ - ADDQ AX, R9; MOVQ R9, 64+z; \ - ADCQ CX, R8; \ - ADCQ $0, R11; \ - ADDQ 32+x, DX; \ - ADCQ $0, R15; \ - XORL R9, R9; ;;;;;;;;;;;;;;;;;;;;; ADOXQ R8, R10; \ - MULXQ 40+x, AX, CX; ADCXQ AX, R10; ADOXQ CX, R11; MOVQ R10, 72+z; \ - MULXQ 48+x, AX, CX; ADCXQ AX, R11; ADOXQ CX, R12; \ - ;;;;;;;;;;;;;;;;;;; ADCXQ R13,R12; \ - \ - MOVQ 40+x, DX; \ - MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ - MULXQ AX, AX, CX; \ - MOVQ R15, R8; NEGQ R8; ANDQ 40+x, R8; \ - ADDQ AX, R11; MOVQ R11, 80+z; \ - ADCQ CX, R8; \ - ADCQ $0, R13; \ - ADDQ 40+x, DX; \ - ADCQ $0, R15; \ - XORL R11, R11; ;;;;;;;;;;;;;;;;;;; ADOXQ R8, R12; \ - MULXQ 48+x, AX, CX; ADCXQ AX, R12; ADOXQ CX, R13; MOVQ R12, 88+z; \ - ;;;;;;;;;;;;;;;;;;; ADCXQ R14,R13; \ - \ - MOVQ 48+x, DX; \ - MOVQ DX, AX; ADDQ R15, DX; MOVQ $0, R15; ADCQ $0, R15; \ - MULXQ AX, AX, CX; \ - MOVQ R15, R8; NEGQ R8; ANDQ 48+x, R8; \ - XORL R10, R10; ;;;;;;;;;;;;;; ADOXQ CX, R14; \ - ;;;;;;;;;;;;;; ADCXQ AX, R13; ;;;;;;;;;;;;;; MOVQ R13, 96+z; \ - ;;;;;;;;;;;;;; ADCXQ R8, R14; MOVQ R14, 104+z; - -// reduceFromDoubleLeg finds a z=x modulo p such that z<2^448 and stores in z -// Uses: AX, R8-R15, FLAGS -// Instr: x86_64 -#define reduceFromDoubleLeg(z,x) \ - /* ( ,2C13,2C12,2C11,2C10|C10,C9,C8, C7) + (C6,...,C0) */ \ - /* (r14, r13, r12, r11, r10,r9,r8,r15) */ \ - MOVQ 80+x,AX; MOVQ AX,R10; \ - MOVQ $0xFFFFFFFF00000000, R8; \ - ANDQ R8,R10; \ - \ - MOVQ $0,R14; \ - MOVQ 104+x,R13; SHLQ $1,R13,R14; \ - MOVQ 96+x,R12; SHLQ $1,R12,R13; \ - MOVQ 88+x,R11; SHLQ $1,R11,R12; \ - MOVQ 72+x, R9; SHLQ $1,R10,R11; \ - MOVQ 64+x, R8; SHLQ $1,R10; \ - MOVQ $0xFFFFFFFF,R15; ANDQ R15,AX; ORQ AX,R10; \ - MOVQ 56+x,R15; \ - \ - ADDQ 0+x,R15; MOVQ R15, 0+z; MOVQ 56+x,R15; \ - ADCQ 8+x, R8; MOVQ R8, 8+z; MOVQ 64+x, R8; \ - ADCQ 16+x, R9; MOVQ R9,16+z; MOVQ 72+x, R9; \ - ADCQ 24+x,R10; MOVQ R10,24+z; MOVQ 80+x,R10; \ - ADCQ 32+x,R11; MOVQ R11,32+z; MOVQ 88+x,R11; \ - ADCQ 40+x,R12; MOVQ R12,40+z; MOVQ 96+x,R12; \ - ADCQ 48+x,R13; MOVQ R13,48+z; MOVQ 104+x,R13; \ - ADCQ $0,R14; \ - /* (c10c9,c9c8,c8c7,c7c13,c13c12,c12c11,c11c10) + (c6,...,c0) */ \ - /* ( r9, r8, r15, r13, r12, r11, r10) */ \ - MOVQ R10, AX; \ - SHRQ $32,R11,R10; \ - SHRQ $32,R12,R11; \ - SHRQ $32,R13,R12; \ - SHRQ $32,R15,R13; \ - SHRQ $32, R8,R15; \ - SHRQ $32, R9, R8; \ - SHRQ $32, AX, R9; \ - \ - ADDQ 0+z,R10; \ - ADCQ 8+z,R11; \ - ADCQ 16+z,R12; \ - ADCQ 24+z,R13; \ - ADCQ 32+z,R15; \ - ADCQ 40+z, R8; \ - ADCQ 48+z, R9; \ - ADCQ $0,R14; \ - /* ( c7) + (c6,...,c0) */ \ - /* (r14) */ \ - MOVQ R14, AX; SHLQ $32, AX; \ - ADDQ R14,R10; MOVQ $0,R14; \ - ADCQ $0,R11; \ - ADCQ $0,R12; \ - ADCQ AX,R13; \ - ADCQ $0,R15; \ - ADCQ $0, R8; \ - ADCQ $0, R9; \ - ADCQ $0,R14; \ - /* ( c7) + (c6,...,c0) */ \ - /* (r14) */ \ - MOVQ R14, AX; SHLQ $32,AX; \ - ADDQ R14,R10; MOVQ R10, 0+z; \ - ADCQ $0,R11; MOVQ R11, 8+z; \ - ADCQ $0,R12; MOVQ R12,16+z; \ - ADCQ AX,R13; MOVQ R13,24+z; \ - ADCQ $0,R15; MOVQ R15,32+z; \ - ADCQ $0, R8; MOVQ R8,40+z; \ - ADCQ $0, R9; MOVQ R9,48+z; - -// reduceFromDoubleAdx finds a z=x modulo p such that z<2^448 and stores in z -// Uses: AX, R8-R15, FLAGS -// Instr: x86_64, adx -#define reduceFromDoubleAdx(z,x) \ - /* ( ,2C13,2C12,2C11,2C10|C10,C9,C8, C7) + (C6,...,C0) */ \ - /* (r14, r13, r12, r11, r10,r9,r8,r15) */ \ - MOVQ 80+x,AX; MOVQ AX,R10; \ - MOVQ $0xFFFFFFFF00000000, R8; \ - ANDQ R8,R10; \ - \ - MOVQ $0,R14; \ - MOVQ 104+x,R13; SHLQ $1,R13,R14; \ - MOVQ 96+x,R12; SHLQ $1,R12,R13; \ - MOVQ 88+x,R11; SHLQ $1,R11,R12; \ - MOVQ 72+x, R9; SHLQ $1,R10,R11; \ - MOVQ 64+x, R8; SHLQ $1,R10; \ - MOVQ $0xFFFFFFFF,R15; ANDQ R15,AX; ORQ AX,R10; \ - MOVQ 56+x,R15; \ - \ - XORL AX,AX; \ - ADCXQ 0+x,R15; MOVQ R15, 0+z; MOVQ 56+x,R15; \ - ADCXQ 8+x, R8; MOVQ R8, 8+z; MOVQ 64+x, R8; \ - ADCXQ 16+x, R9; MOVQ R9,16+z; MOVQ 72+x, R9; \ - ADCXQ 24+x,R10; MOVQ R10,24+z; MOVQ 80+x,R10; \ - ADCXQ 32+x,R11; MOVQ R11,32+z; MOVQ 88+x,R11; \ - ADCXQ 40+x,R12; MOVQ R12,40+z; MOVQ 96+x,R12; \ - ADCXQ 48+x,R13; MOVQ R13,48+z; MOVQ 104+x,R13; \ - ADCXQ AX,R14; \ - /* (c10c9,c9c8,c8c7,c7c13,c13c12,c12c11,c11c10) + (c6,...,c0) */ \ - /* ( r9, r8, r15, r13, r12, r11, r10) */ \ - MOVQ R10, AX; \ - SHRQ $32,R11,R10; \ - SHRQ $32,R12,R11; \ - SHRQ $32,R13,R12; \ - SHRQ $32,R15,R13; \ - SHRQ $32, R8,R15; \ - SHRQ $32, R9, R8; \ - SHRQ $32, AX, R9; \ - \ - XORL AX,AX; \ - ADCXQ 0+z,R10; \ - ADCXQ 8+z,R11; \ - ADCXQ 16+z,R12; \ - ADCXQ 24+z,R13; \ - ADCXQ 32+z,R15; \ - ADCXQ 40+z, R8; \ - ADCXQ 48+z, R9; \ - ADCXQ AX,R14; \ - /* ( c7) + (c6,...,c0) */ \ - /* (r14) */ \ - MOVQ R14, AX; SHLQ $32, AX; \ - CLC; \ - ADCXQ R14,R10; MOVQ $0,R14; \ - ADCXQ R14,R11; \ - ADCXQ R14,R12; \ - ADCXQ AX,R13; \ - ADCXQ R14,R15; \ - ADCXQ R14, R8; \ - ADCXQ R14, R9; \ - ADCXQ R14,R14; \ - /* ( c7) + (c6,...,c0) */ \ - /* (r14) */ \ - MOVQ R14, AX; SHLQ $32, AX; \ - CLC; \ - ADCXQ R14,R10; MOVQ R10, 0+z; MOVQ $0,R14; \ - ADCXQ R14,R11; MOVQ R11, 8+z; \ - ADCXQ R14,R12; MOVQ R12,16+z; \ - ADCXQ AX,R13; MOVQ R13,24+z; \ - ADCXQ R14,R15; MOVQ R15,32+z; \ - ADCXQ R14, R8; MOVQ R8,40+z; \ - ADCXQ R14, R9; MOVQ R9,48+z; - -// addSub calculates two operations: x,y = x+y,x-y -// Uses: AX, DX, R8-R15, FLAGS -#define addSub(x,y) \ - MOVQ 0+x, R8; ADDQ 0+y, R8; \ - MOVQ 8+x, R9; ADCQ 8+y, R9; \ - MOVQ 16+x, R10; ADCQ 16+y, R10; \ - MOVQ 24+x, R11; ADCQ 24+y, R11; \ - MOVQ 32+x, R12; ADCQ 32+y, R12; \ - MOVQ 40+x, R13; ADCQ 40+y, R13; \ - MOVQ 48+x, R14; ADCQ 48+y, R14; \ - MOVQ $0, AX; ADCQ $0, AX; \ - MOVQ AX, DX; \ - SHLQ $32, DX; \ - ADDQ AX, R8; MOVQ $0, AX; \ - ADCQ $0, R9; \ - ADCQ $0, R10; \ - ADCQ DX, R11; \ - ADCQ $0, R12; \ - ADCQ $0, R13; \ - ADCQ $0, R14; \ - ADCQ $0, AX; \ - MOVQ AX, DX; \ - SHLQ $32, DX; \ - ADDQ AX, R8; MOVQ 0+x,AX; MOVQ R8, 0+x; MOVQ AX, R8; \ - ADCQ $0, R9; MOVQ 8+x,AX; MOVQ R9, 8+x; MOVQ AX, R9; \ - ADCQ $0, R10; MOVQ 16+x,AX; MOVQ R10, 16+x; MOVQ AX, R10; \ - ADCQ DX, R11; MOVQ 24+x,AX; MOVQ R11, 24+x; MOVQ AX, R11; \ - ADCQ $0, R12; MOVQ 32+x,AX; MOVQ R12, 32+x; MOVQ AX, R12; \ - ADCQ $0, R13; MOVQ 40+x,AX; MOVQ R13, 40+x; MOVQ AX, R13; \ - ADCQ $0, R14; MOVQ 48+x,AX; MOVQ R14, 48+x; MOVQ AX, R14; \ - SUBQ 0+y, R8; \ - SBBQ 8+y, R9; \ - SBBQ 16+y, R10; \ - SBBQ 24+y, R11; \ - SBBQ 32+y, R12; \ - SBBQ 40+y, R13; \ - SBBQ 48+y, R14; \ - MOVQ $0, AX; SETCS AX; \ - MOVQ AX, DX; \ - SHLQ $32, DX; \ - SUBQ AX, R8; MOVQ $0, AX; \ - SBBQ $0, R9; \ - SBBQ $0, R10; \ - SBBQ DX, R11; \ - SBBQ $0, R12; \ - SBBQ $0, R13; \ - SBBQ $0, R14; \ - SETCS AX; \ - MOVQ AX, DX; \ - SHLQ $32, DX; \ - SUBQ AX, R8; MOVQ R8, 0+y; \ - SBBQ $0, R9; MOVQ R9, 8+y; \ - SBBQ $0, R10; MOVQ R10, 16+y; \ - SBBQ DX, R11; MOVQ R11, 24+y; \ - SBBQ $0, R12; MOVQ R12, 32+y; \ - SBBQ $0, R13; MOVQ R13, 40+y; \ - SBBQ $0, R14; MOVQ R14, 48+y; diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.s b/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.s deleted file mode 100644 index 435addf5e6..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp448/fp_amd64.s +++ /dev/null @@ -1,74 +0,0 @@ -// +build amd64 - -#include "textflag.h" -#include "fp_amd64.h" - -// func cmovAmd64(x, y *Elt, n uint) -TEXT ·cmovAmd64(SB),NOSPLIT,$0-24 - MOVQ x+0(FP), DI - MOVQ y+8(FP), SI - MOVQ n+16(FP), BX - cselect(0(DI),0(SI),BX) - RET - -// func cswapAmd64(x, y *Elt, n uint) -TEXT ·cswapAmd64(SB),NOSPLIT,$0-24 - MOVQ x+0(FP), DI - MOVQ y+8(FP), SI - MOVQ n+16(FP), BX - cswap(0(DI),0(SI),BX) - RET - -// func subAmd64(z, x, y *Elt) -TEXT ·subAmd64(SB),NOSPLIT,$0-24 - MOVQ z+0(FP), DI - MOVQ x+8(FP), SI - MOVQ y+16(FP), BX - subtraction(0(DI),0(SI),0(BX)) - RET - -// func addsubAmd64(x, y *Elt) -TEXT ·addsubAmd64(SB),NOSPLIT,$0-16 - MOVQ x+0(FP), DI - MOVQ y+8(FP), SI - addSub(0(DI),0(SI)) - RET - -#define addLegacy \ - additionLeg(0(DI),0(SI),0(BX)) -#define addBmi2Adx \ - additionAdx(0(DI),0(SI),0(BX)) - -#define mulLegacy \ - integerMulLeg(0(SP),0(SI),0(BX)) \ - reduceFromDoubleLeg(0(DI),0(SP)) -#define mulBmi2Adx \ - integerMulAdx(0(SP),0(SI),0(BX)) \ - reduceFromDoubleAdx(0(DI),0(SP)) - -#define sqrLegacy \ - integerSqrLeg(0(SP),0(SI)) \ - reduceFromDoubleLeg(0(DI),0(SP)) -#define sqrBmi2Adx \ - integerSqrAdx(0(SP),0(SI)) \ - reduceFromDoubleAdx(0(DI),0(SP)) - -// func addAmd64(z, x, y *Elt) -TEXT ·addAmd64(SB),NOSPLIT,$0-24 - MOVQ z+0(FP), DI - MOVQ x+8(FP), SI - MOVQ y+16(FP), BX - CHECK_BMI2ADX(LADD, addLegacy, addBmi2Adx) - -// func mulAmd64(z, x, y *Elt) -TEXT ·mulAmd64(SB),NOSPLIT,$112-24 - MOVQ z+0(FP), DI - MOVQ x+8(FP), SI - MOVQ y+16(FP), BX - CHECK_BMI2ADX(LMUL, mulLegacy, mulBmi2Adx) - -// func sqrAmd64(z, x *Elt) -TEXT ·sqrAmd64(SB),NOSPLIT,$112-16 - MOVQ z+0(FP), DI - MOVQ x+8(FP), SI - CHECK_BMI2ADX(LSQR, sqrLegacy, sqrBmi2Adx) diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp_generic.go b/vendor/github.com/cloudflare/circl/math/fp448/fp_generic.go deleted file mode 100644 index 47a0b63205..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp448/fp_generic.go +++ /dev/null @@ -1,339 +0,0 @@ -package fp448 - -import ( - "encoding/binary" - "math/bits" -) - -func cmovGeneric(x, y *Elt, n uint) { - m := -uint64(n & 0x1) - x0 := binary.LittleEndian.Uint64(x[0*8 : 1*8]) - x1 := binary.LittleEndian.Uint64(x[1*8 : 2*8]) - x2 := binary.LittleEndian.Uint64(x[2*8 : 3*8]) - x3 := binary.LittleEndian.Uint64(x[3*8 : 4*8]) - x4 := binary.LittleEndian.Uint64(x[4*8 : 5*8]) - x5 := binary.LittleEndian.Uint64(x[5*8 : 6*8]) - x6 := binary.LittleEndian.Uint64(x[6*8 : 7*8]) - - y0 := binary.LittleEndian.Uint64(y[0*8 : 1*8]) - y1 := binary.LittleEndian.Uint64(y[1*8 : 2*8]) - y2 := binary.LittleEndian.Uint64(y[2*8 : 3*8]) - y3 := binary.LittleEndian.Uint64(y[3*8 : 4*8]) - y4 := binary.LittleEndian.Uint64(y[4*8 : 5*8]) - y5 := binary.LittleEndian.Uint64(y[5*8 : 6*8]) - y6 := binary.LittleEndian.Uint64(y[6*8 : 7*8]) - - x0 = (x0 &^ m) | (y0 & m) - x1 = (x1 &^ m) | (y1 & m) - x2 = (x2 &^ m) | (y2 & m) - x3 = (x3 &^ m) | (y3 & m) - x4 = (x4 &^ m) | (y4 & m) - x5 = (x5 &^ m) | (y5 & m) - x6 = (x6 &^ m) | (y6 & m) - - binary.LittleEndian.PutUint64(x[0*8:1*8], x0) - binary.LittleEndian.PutUint64(x[1*8:2*8], x1) - binary.LittleEndian.PutUint64(x[2*8:3*8], x2) - binary.LittleEndian.PutUint64(x[3*8:4*8], x3) - binary.LittleEndian.PutUint64(x[4*8:5*8], x4) - binary.LittleEndian.PutUint64(x[5*8:6*8], x5) - binary.LittleEndian.PutUint64(x[6*8:7*8], x6) -} - -func cswapGeneric(x, y *Elt, n uint) { - m := -uint64(n & 0x1) - x0 := binary.LittleEndian.Uint64(x[0*8 : 1*8]) - x1 := binary.LittleEndian.Uint64(x[1*8 : 2*8]) - x2 := binary.LittleEndian.Uint64(x[2*8 : 3*8]) - x3 := binary.LittleEndian.Uint64(x[3*8 : 4*8]) - x4 := binary.LittleEndian.Uint64(x[4*8 : 5*8]) - x5 := binary.LittleEndian.Uint64(x[5*8 : 6*8]) - x6 := binary.LittleEndian.Uint64(x[6*8 : 7*8]) - - y0 := binary.LittleEndian.Uint64(y[0*8 : 1*8]) - y1 := binary.LittleEndian.Uint64(y[1*8 : 2*8]) - y2 := binary.LittleEndian.Uint64(y[2*8 : 3*8]) - y3 := binary.LittleEndian.Uint64(y[3*8 : 4*8]) - y4 := binary.LittleEndian.Uint64(y[4*8 : 5*8]) - y5 := binary.LittleEndian.Uint64(y[5*8 : 6*8]) - y6 := binary.LittleEndian.Uint64(y[6*8 : 7*8]) - - t0 := m & (x0 ^ y0) - t1 := m & (x1 ^ y1) - t2 := m & (x2 ^ y2) - t3 := m & (x3 ^ y3) - t4 := m & (x4 ^ y4) - t5 := m & (x5 ^ y5) - t6 := m & (x6 ^ y6) - x0 ^= t0 - x1 ^= t1 - x2 ^= t2 - x3 ^= t3 - x4 ^= t4 - x5 ^= t5 - x6 ^= t6 - y0 ^= t0 - y1 ^= t1 - y2 ^= t2 - y3 ^= t3 - y4 ^= t4 - y5 ^= t5 - y6 ^= t6 - - binary.LittleEndian.PutUint64(x[0*8:1*8], x0) - binary.LittleEndian.PutUint64(x[1*8:2*8], x1) - binary.LittleEndian.PutUint64(x[2*8:3*8], x2) - binary.LittleEndian.PutUint64(x[3*8:4*8], x3) - binary.LittleEndian.PutUint64(x[4*8:5*8], x4) - binary.LittleEndian.PutUint64(x[5*8:6*8], x5) - binary.LittleEndian.PutUint64(x[6*8:7*8], x6) - - binary.LittleEndian.PutUint64(y[0*8:1*8], y0) - binary.LittleEndian.PutUint64(y[1*8:2*8], y1) - binary.LittleEndian.PutUint64(y[2*8:3*8], y2) - binary.LittleEndian.PutUint64(y[3*8:4*8], y3) - binary.LittleEndian.PutUint64(y[4*8:5*8], y4) - binary.LittleEndian.PutUint64(y[5*8:6*8], y5) - binary.LittleEndian.PutUint64(y[6*8:7*8], y6) -} - -func addGeneric(z, x, y *Elt) { - x0 := binary.LittleEndian.Uint64(x[0*8 : 1*8]) - x1 := binary.LittleEndian.Uint64(x[1*8 : 2*8]) - x2 := binary.LittleEndian.Uint64(x[2*8 : 3*8]) - x3 := binary.LittleEndian.Uint64(x[3*8 : 4*8]) - x4 := binary.LittleEndian.Uint64(x[4*8 : 5*8]) - x5 := binary.LittleEndian.Uint64(x[5*8 : 6*8]) - x6 := binary.LittleEndian.Uint64(x[6*8 : 7*8]) - - y0 := binary.LittleEndian.Uint64(y[0*8 : 1*8]) - y1 := binary.LittleEndian.Uint64(y[1*8 : 2*8]) - y2 := binary.LittleEndian.Uint64(y[2*8 : 3*8]) - y3 := binary.LittleEndian.Uint64(y[3*8 : 4*8]) - y4 := binary.LittleEndian.Uint64(y[4*8 : 5*8]) - y5 := binary.LittleEndian.Uint64(y[5*8 : 6*8]) - y6 := binary.LittleEndian.Uint64(y[6*8 : 7*8]) - - z0, c0 := bits.Add64(x0, y0, 0) - z1, c1 := bits.Add64(x1, y1, c0) - z2, c2 := bits.Add64(x2, y2, c1) - z3, c3 := bits.Add64(x3, y3, c2) - z4, c4 := bits.Add64(x4, y4, c3) - z5, c5 := bits.Add64(x5, y5, c4) - z6, z7 := bits.Add64(x6, y6, c5) - - z0, c0 = bits.Add64(z0, z7, 0) - z1, c1 = bits.Add64(z1, 0, c0) - z2, c2 = bits.Add64(z2, 0, c1) - z3, c3 = bits.Add64(z3, z7<<32, c2) - z4, c4 = bits.Add64(z4, 0, c3) - z5, c5 = bits.Add64(z5, 0, c4) - z6, z7 = bits.Add64(z6, 0, c5) - - z0, c0 = bits.Add64(z0, z7, 0) - z1, c1 = bits.Add64(z1, 0, c0) - z2, c2 = bits.Add64(z2, 0, c1) - z3, c3 = bits.Add64(z3, z7<<32, c2) - z4, c4 = bits.Add64(z4, 0, c3) - z5, c5 = bits.Add64(z5, 0, c4) - z6, _ = bits.Add64(z6, 0, c5) - - binary.LittleEndian.PutUint64(z[0*8:1*8], z0) - binary.LittleEndian.PutUint64(z[1*8:2*8], z1) - binary.LittleEndian.PutUint64(z[2*8:3*8], z2) - binary.LittleEndian.PutUint64(z[3*8:4*8], z3) - binary.LittleEndian.PutUint64(z[4*8:5*8], z4) - binary.LittleEndian.PutUint64(z[5*8:6*8], z5) - binary.LittleEndian.PutUint64(z[6*8:7*8], z6) -} - -func subGeneric(z, x, y *Elt) { - x0 := binary.LittleEndian.Uint64(x[0*8 : 1*8]) - x1 := binary.LittleEndian.Uint64(x[1*8 : 2*8]) - x2 := binary.LittleEndian.Uint64(x[2*8 : 3*8]) - x3 := binary.LittleEndian.Uint64(x[3*8 : 4*8]) - x4 := binary.LittleEndian.Uint64(x[4*8 : 5*8]) - x5 := binary.LittleEndian.Uint64(x[5*8 : 6*8]) - x6 := binary.LittleEndian.Uint64(x[6*8 : 7*8]) - - y0 := binary.LittleEndian.Uint64(y[0*8 : 1*8]) - y1 := binary.LittleEndian.Uint64(y[1*8 : 2*8]) - y2 := binary.LittleEndian.Uint64(y[2*8 : 3*8]) - y3 := binary.LittleEndian.Uint64(y[3*8 : 4*8]) - y4 := binary.LittleEndian.Uint64(y[4*8 : 5*8]) - y5 := binary.LittleEndian.Uint64(y[5*8 : 6*8]) - y6 := binary.LittleEndian.Uint64(y[6*8 : 7*8]) - - z0, c0 := bits.Sub64(x0, y0, 0) - z1, c1 := bits.Sub64(x1, y1, c0) - z2, c2 := bits.Sub64(x2, y2, c1) - z3, c3 := bits.Sub64(x3, y3, c2) - z4, c4 := bits.Sub64(x4, y4, c3) - z5, c5 := bits.Sub64(x5, y5, c4) - z6, z7 := bits.Sub64(x6, y6, c5) - - z0, c0 = bits.Sub64(z0, z7, 0) - z1, c1 = bits.Sub64(z1, 0, c0) - z2, c2 = bits.Sub64(z2, 0, c1) - z3, c3 = bits.Sub64(z3, z7<<32, c2) - z4, c4 = bits.Sub64(z4, 0, c3) - z5, c5 = bits.Sub64(z5, 0, c4) - z6, z7 = bits.Sub64(z6, 0, c5) - - z0, c0 = bits.Sub64(z0, z7, 0) - z1, c1 = bits.Sub64(z1, 0, c0) - z2, c2 = bits.Sub64(z2, 0, c1) - z3, c3 = bits.Sub64(z3, z7<<32, c2) - z4, c4 = bits.Sub64(z4, 0, c3) - z5, c5 = bits.Sub64(z5, 0, c4) - z6, _ = bits.Sub64(z6, 0, c5) - - binary.LittleEndian.PutUint64(z[0*8:1*8], z0) - binary.LittleEndian.PutUint64(z[1*8:2*8], z1) - binary.LittleEndian.PutUint64(z[2*8:3*8], z2) - binary.LittleEndian.PutUint64(z[3*8:4*8], z3) - binary.LittleEndian.PutUint64(z[4*8:5*8], z4) - binary.LittleEndian.PutUint64(z[5*8:6*8], z5) - binary.LittleEndian.PutUint64(z[6*8:7*8], z6) -} - -func addsubGeneric(x, y *Elt) { - z := &Elt{} - addGeneric(z, x, y) - subGeneric(y, x, y) - *x = *z -} - -func mulGeneric(z, x, y *Elt) { - x0 := binary.LittleEndian.Uint64(x[0*8 : 1*8]) - x1 := binary.LittleEndian.Uint64(x[1*8 : 2*8]) - x2 := binary.LittleEndian.Uint64(x[2*8 : 3*8]) - x3 := binary.LittleEndian.Uint64(x[3*8 : 4*8]) - x4 := binary.LittleEndian.Uint64(x[4*8 : 5*8]) - x5 := binary.LittleEndian.Uint64(x[5*8 : 6*8]) - x6 := binary.LittleEndian.Uint64(x[6*8 : 7*8]) - - y0 := binary.LittleEndian.Uint64(y[0*8 : 1*8]) - y1 := binary.LittleEndian.Uint64(y[1*8 : 2*8]) - y2 := binary.LittleEndian.Uint64(y[2*8 : 3*8]) - y3 := binary.LittleEndian.Uint64(y[3*8 : 4*8]) - y4 := binary.LittleEndian.Uint64(y[4*8 : 5*8]) - y5 := binary.LittleEndian.Uint64(y[5*8 : 6*8]) - y6 := binary.LittleEndian.Uint64(y[6*8 : 7*8]) - - yy := [7]uint64{y0, y1, y2, y3, y4, y5, y6} - zz := [7]uint64{} - - yi := yy[0] - h0, l0 := bits.Mul64(x0, yi) - h1, l1 := bits.Mul64(x1, yi) - h2, l2 := bits.Mul64(x2, yi) - h3, l3 := bits.Mul64(x3, yi) - h4, l4 := bits.Mul64(x4, yi) - h5, l5 := bits.Mul64(x5, yi) - h6, l6 := bits.Mul64(x6, yi) - - zz[0] = l0 - a0, c0 := bits.Add64(h0, l1, 0) - a1, c1 := bits.Add64(h1, l2, c0) - a2, c2 := bits.Add64(h2, l3, c1) - a3, c3 := bits.Add64(h3, l4, c2) - a4, c4 := bits.Add64(h4, l5, c3) - a5, c5 := bits.Add64(h5, l6, c4) - a6, _ := bits.Add64(h6, 0, c5) - - for i := 1; i < 7; i++ { - yi = yy[i] - h0, l0 = bits.Mul64(x0, yi) - h1, l1 = bits.Mul64(x1, yi) - h2, l2 = bits.Mul64(x2, yi) - h3, l3 = bits.Mul64(x3, yi) - h4, l4 = bits.Mul64(x4, yi) - h5, l5 = bits.Mul64(x5, yi) - h6, l6 = bits.Mul64(x6, yi) - - zz[i], c0 = bits.Add64(a0, l0, 0) - a0, c1 = bits.Add64(a1, l1, c0) - a1, c2 = bits.Add64(a2, l2, c1) - a2, c3 = bits.Add64(a3, l3, c2) - a3, c4 = bits.Add64(a4, l4, c3) - a4, c5 = bits.Add64(a5, l5, c4) - a5, a6 = bits.Add64(a6, l6, c5) - - a0, c0 = bits.Add64(a0, h0, 0) - a1, c1 = bits.Add64(a1, h1, c0) - a2, c2 = bits.Add64(a2, h2, c1) - a3, c3 = bits.Add64(a3, h3, c2) - a4, c4 = bits.Add64(a4, h4, c3) - a5, c5 = bits.Add64(a5, h5, c4) - a6, _ = bits.Add64(a6, h6, c5) - } - red64(z, &zz, &[7]uint64{a0, a1, a2, a3, a4, a5, a6}) -} - -func sqrGeneric(z, x *Elt) { mulGeneric(z, x, x) } - -func red64(z *Elt, l, h *[7]uint64) { - /* (2C13, 2C12, 2C11, 2C10|C10, C9, C8, C7) + (C6,...,C0) */ - h0 := h[0] - h1 := h[1] - h2 := h[2] - h3 := ((h[3] & (0xFFFFFFFF << 32)) << 1) | (h[3] & 0xFFFFFFFF) - h4 := (h[3] >> 63) | (h[4] << 1) - h5 := (h[4] >> 63) | (h[5] << 1) - h6 := (h[5] >> 63) | (h[6] << 1) - h7 := (h[6] >> 63) - - l0, c0 := bits.Add64(h0, l[0], 0) - l1, c1 := bits.Add64(h1, l[1], c0) - l2, c2 := bits.Add64(h2, l[2], c1) - l3, c3 := bits.Add64(h3, l[3], c2) - l4, c4 := bits.Add64(h4, l[4], c3) - l5, c5 := bits.Add64(h5, l[5], c4) - l6, c6 := bits.Add64(h6, l[6], c5) - l7, _ := bits.Add64(h7, 0, c6) - - /* (C10C9, C9C8,C8C7,C7C13,C13C12,C12C11,C11C10) + (C6,...,C0) */ - h0 = (h[3] >> 32) | (h[4] << 32) - h1 = (h[4] >> 32) | (h[5] << 32) - h2 = (h[5] >> 32) | (h[6] << 32) - h3 = (h[6] >> 32) | (h[0] << 32) - h4 = (h[0] >> 32) | (h[1] << 32) - h5 = (h[1] >> 32) | (h[2] << 32) - h6 = (h[2] >> 32) | (h[3] << 32) - - l0, c0 = bits.Add64(l0, h0, 0) - l1, c1 = bits.Add64(l1, h1, c0) - l2, c2 = bits.Add64(l2, h2, c1) - l3, c3 = bits.Add64(l3, h3, c2) - l4, c4 = bits.Add64(l4, h4, c3) - l5, c5 = bits.Add64(l5, h5, c4) - l6, c6 = bits.Add64(l6, h6, c5) - l7, _ = bits.Add64(l7, 0, c6) - - /* (C7) + (C6,...,C0) */ - l0, c0 = bits.Add64(l0, l7, 0) - l1, c1 = bits.Add64(l1, 0, c0) - l2, c2 = bits.Add64(l2, 0, c1) - l3, c3 = bits.Add64(l3, l7<<32, c2) - l4, c4 = bits.Add64(l4, 0, c3) - l5, c5 = bits.Add64(l5, 0, c4) - l6, l7 = bits.Add64(l6, 0, c5) - - /* (C7) + (C6,...,C0) */ - l0, c0 = bits.Add64(l0, l7, 0) - l1, c1 = bits.Add64(l1, 0, c0) - l2, c2 = bits.Add64(l2, 0, c1) - l3, c3 = bits.Add64(l3, l7<<32, c2) - l4, c4 = bits.Add64(l4, 0, c3) - l5, c5 = bits.Add64(l5, 0, c4) - l6, _ = bits.Add64(l6, 0, c5) - - binary.LittleEndian.PutUint64(z[0*8:1*8], l0) - binary.LittleEndian.PutUint64(z[1*8:2*8], l1) - binary.LittleEndian.PutUint64(z[2*8:3*8], l2) - binary.LittleEndian.PutUint64(z[3*8:4*8], l3) - binary.LittleEndian.PutUint64(z[4*8:5*8], l4) - binary.LittleEndian.PutUint64(z[5*8:6*8], l5) - binary.LittleEndian.PutUint64(z[6*8:7*8], l6) -} diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fp_noasm.go b/vendor/github.com/cloudflare/circl/math/fp448/fp_noasm.go deleted file mode 100644 index a62225d296..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp448/fp_noasm.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build !amd64 || purego -// +build !amd64 purego - -package fp448 - -func cmov(x, y *Elt, n uint) { cmovGeneric(x, y, n) } -func cswap(x, y *Elt, n uint) { cswapGeneric(x, y, n) } -func add(z, x, y *Elt) { addGeneric(z, x, y) } -func sub(z, x, y *Elt) { subGeneric(z, x, y) } -func addsub(x, y *Elt) { addsubGeneric(x, y) } -func mul(z, x, y *Elt) { mulGeneric(z, x, y) } -func sqr(z, x *Elt) { sqrGeneric(z, x) } diff --git a/vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go b/vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go deleted file mode 100644 index d1f62432ea..0000000000 --- a/vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go +++ /dev/null @@ -1,74 +0,0 @@ -//go:build gofuzz -// +build gofuzz - -// How to run the fuzzer: -// $ go get -u github.com/dvyukov/go-fuzz/go-fuzz -// $ go get -u github.com/dvyukov/go-fuzz/go-fuzz-build -// $ go-fuzz-build -libfuzzer -func FuzzReduction -o lib.a -// $ clang -fsanitize=fuzzer lib.a -o fu.exe -// $ ./fu.exe -package fp448 - -import ( - "encoding/binary" - "fmt" - "math/big" - - "github.com/cloudflare/circl/internal/conv" -) - -// FuzzReduction is a fuzzer target for red64 function, which reduces t -// (112 bits) to a number t' (56 bits) congruent modulo p448. -func FuzzReduction(data []byte) int { - if len(data) != 2*Size { - return -1 - } - var got, want Elt - var lo, hi [7]uint64 - a := data[:Size] - b := data[Size:] - lo[0] = binary.LittleEndian.Uint64(a[0*8 : 1*8]) - lo[1] = binary.LittleEndian.Uint64(a[1*8 : 2*8]) - lo[2] = binary.LittleEndian.Uint64(a[2*8 : 3*8]) - lo[3] = binary.LittleEndian.Uint64(a[3*8 : 4*8]) - lo[4] = binary.LittleEndian.Uint64(a[4*8 : 5*8]) - lo[5] = binary.LittleEndian.Uint64(a[5*8 : 6*8]) - lo[6] = binary.LittleEndian.Uint64(a[6*8 : 7*8]) - - hi[0] = binary.LittleEndian.Uint64(b[0*8 : 1*8]) - hi[1] = binary.LittleEndian.Uint64(b[1*8 : 2*8]) - hi[2] = binary.LittleEndian.Uint64(b[2*8 : 3*8]) - hi[3] = binary.LittleEndian.Uint64(b[3*8 : 4*8]) - hi[4] = binary.LittleEndian.Uint64(b[4*8 : 5*8]) - hi[5] = binary.LittleEndian.Uint64(b[5*8 : 6*8]) - hi[6] = binary.LittleEndian.Uint64(b[6*8 : 7*8]) - - red64(&got, &lo, &hi) - - t := conv.BytesLe2BigInt(data[:2*Size]) - - two448 := big.NewInt(1) - two448.Lsh(two448, 448) // 2^448 - mask448 := big.NewInt(1) - mask448.Sub(two448, mask448) // 2^448-1 - two224plus1 := big.NewInt(1) - two224plus1.Lsh(two224plus1, 224) - two224plus1.Add(two224plus1, big.NewInt(1)) // 2^224+1 - - var loBig, hiBig big.Int - for t.Cmp(two448) >= 0 { - loBig.And(t, mask448) - hiBig.Rsh(t, 448) - t.Mul(&hiBig, two224plus1) - t.Add(t, &loBig) - } - conv.BigInt2BytesLe(want[:], t) - - if got != want { - fmt.Printf("in: %v\n", conv.BytesLe2BigInt(data[:2*Size])) - fmt.Printf("got: %v\n", got) - fmt.Printf("want: %v\n", want) - panic("error found") - } - return 1 -} diff --git a/vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go b/vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go deleted file mode 100644 index 59e9fb4b60..0000000000 --- a/vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go +++ /dev/null @@ -1,122 +0,0 @@ -// Package mlsbset provides a constant-time exponentiation method with precomputation. -// -// References: "Efficient and secure algorithms for GLV-based scalar -// multiplication and their implementation on GLV–GLS curves" by (Faz-Hernandez et al.) -// - https://doi.org/10.1007/s13389-014-0085-7 -// - https://eprint.iacr.org/2013/158 -package mlsbset - -import ( - "errors" - "fmt" - "math/big" - - "github.com/cloudflare/circl/internal/conv" -) - -// EltG is a group element. -type EltG interface{} - -// EltP is a precomputed group element. -type EltP interface{} - -// Group defines the operations required by MLSBSet exponentiation method. -type Group interface { - Identity() EltG // Returns the identity of the group. - Sqr(x EltG) // Calculates x = x^2. - Mul(x EltG, y EltP) // Calculates x = x*y. - NewEltP() EltP // Returns an arbitrary precomputed element. - ExtendedEltP() EltP // Returns the precomputed element x^(2^(w*d)). - Lookup(a EltP, v uint, s, u int32) // Sets a = s*T[v][u]. -} - -// Params contains the parameters of the encoding. -type Params struct { - T uint // T is the maximum size (in bits) of exponents. - V uint // V is the number of tables. - W uint // W is the window size. - E uint // E is the number of digits per table. - D uint // D is the number of digits in total. - L uint // L is the length of the code. -} - -// Encoder allows to convert integers into valid powers. -type Encoder struct{ p Params } - -// New produces an encoder of the MLSBSet algorithm. -func New(t, v, w uint) (Encoder, error) { - if !(t > 1 && v >= 1 && w >= 2) { - return Encoder{}, errors.New("t>1, v>=1, w>=2") - } - e := (t + w*v - 1) / (w * v) - d := e * v - l := d * w - return Encoder{Params{t, v, w, e, d, l}}, nil -} - -// Encode converts an odd integer k into a valid power for exponentiation. -func (m Encoder) Encode(k []byte) (*Power, error) { - if len(k) == 0 { - return nil, errors.New("empty slice") - } - if !(len(k) <= int(m.p.L+7)>>3) { - return nil, errors.New("k too big") - } - if k[0]%2 == 0 { - return nil, errors.New("k must be odd") - } - ap := int((m.p.L+7)/8) - len(k) - k = append(k, make([]byte, ap)...) - s := m.signs(k) - b := make([]int32, m.p.L-m.p.D) - c := conv.BytesLe2BigInt(k) - c.Rsh(c, m.p.D) - var bi big.Int - for i := m.p.D; i < m.p.L; i++ { - c0 := int32(c.Bit(0)) - b[i-m.p.D] = s[i%m.p.D] * c0 - bi.SetInt64(int64(b[i-m.p.D] >> 1)) - c.Rsh(c, 1) - c.Sub(c, &bi) - } - carry := int(c.Int64()) - return &Power{m, s, b, carry}, nil -} - -// signs calculates the set of signs. -func (m Encoder) signs(k []byte) []int32 { - s := make([]int32, m.p.D) - s[m.p.D-1] = 1 - for i := uint(1); i < m.p.D; i++ { - ki := int32((k[i>>3] >> (i & 0x7)) & 0x1) - s[i-1] = 2*ki - 1 - } - return s -} - -// GetParams returns the complementary parameters of the encoding. -func (m Encoder) GetParams() Params { return m.p } - -// tableSize returns the size of each table. -func (m Encoder) tableSize() uint { return 1 << (m.p.W - 1) } - -// Elts returns the total number of elements that must be precomputed. -func (m Encoder) Elts() uint { return m.p.V * m.tableSize() } - -// IsExtended returns true if the element x^(2^(wd)) must be calculated. -func (m Encoder) IsExtended() bool { q := m.p.T / (m.p.V * m.p.W); return m.p.T == q*m.p.V*m.p.W } - -// Ops returns the number of squares and multiplications executed during an exponentiation. -func (m Encoder) Ops() (S uint, M uint) { - S = m.p.E - M = m.p.E * m.p.V - if m.IsExtended() { - M++ - } - return -} - -func (m Encoder) String() string { - return fmt.Sprintf("T: %v W: %v V: %v e: %v d: %v l: %v wv|t: %v", - m.p.T, m.p.W, m.p.V, m.p.E, m.p.D, m.p.L, m.IsExtended()) -} diff --git a/vendor/github.com/cloudflare/circl/math/mlsbset/power.go b/vendor/github.com/cloudflare/circl/math/mlsbset/power.go deleted file mode 100644 index 3f214c3046..0000000000 --- a/vendor/github.com/cloudflare/circl/math/mlsbset/power.go +++ /dev/null @@ -1,64 +0,0 @@ -package mlsbset - -import "fmt" - -// Power is a valid exponent produced by the MLSBSet encoding algorithm. -type Power struct { - set Encoder // parameters of code. - s []int32 // set of signs. - b []int32 // set of digits. - c int // carry is {0,1}. -} - -// Exp is calculates x^k, where x is a predetermined element of a group G. -func (p *Power) Exp(G Group) EltG { - a, b := G.Identity(), G.NewEltP() - for e := int(p.set.p.E - 1); e >= 0; e-- { - G.Sqr(a) - for v := uint(0); v < p.set.p.V; v++ { - sgnElt, idElt := p.Digit(v, uint(e)) - G.Lookup(b, v, sgnElt, idElt) - G.Mul(a, b) - } - } - if p.set.IsExtended() && p.c == 1 { - G.Mul(a, G.ExtendedEltP()) - } - return a -} - -// Digit returns the (v,e)-th digit and its sign. -func (p *Power) Digit(v, e uint) (sgn, dig int32) { - sgn = p.bit(0, v, e) - dig = 0 - for i := p.set.p.W - 1; i > 0; i-- { - dig = 2*dig + p.bit(i, v, e) - } - mask := dig >> 31 - dig = (dig + mask) ^ mask - return sgn, dig -} - -// bit returns the (w,v,e)-th bit of the code. -func (p *Power) bit(w, v, e uint) int32 { - if !(w < p.set.p.W && - v < p.set.p.V && - e < p.set.p.E) { - panic(fmt.Errorf("indexes outside (%v,%v,%v)", w, v, e)) - } - if w == 0 { - return p.s[p.set.p.E*v+e] - } - return p.b[p.set.p.D*(w-1)+p.set.p.E*v+e] -} - -func (p *Power) String() string { - dig := "" - for j := uint(0); j < p.set.p.V; j++ { - for i := uint(0); i < p.set.p.E; i++ { - s, d := p.Digit(j, i) - dig += fmt.Sprintf("(%2v,%2v) = %+2v %+2v\n", j, i, s, d) - } - } - return fmt.Sprintf("len: %v\ncarry: %v\ndigits:\n%v", len(p.b)+len(p.s), p.c, dig) -} diff --git a/vendor/github.com/cloudflare/circl/math/wnaf.go b/vendor/github.com/cloudflare/circl/math/wnaf.go deleted file mode 100644 index df7a9c9bac..0000000000 --- a/vendor/github.com/cloudflare/circl/math/wnaf.go +++ /dev/null @@ -1,84 +0,0 @@ -// Package math provides some utility functions for big integers. -package math - -import "math/big" - -// SignedDigit obtains the signed-digit recoding of n and returns a list L of -// digits such that n = sum( L[i]*2^(i*(w-1)) ), and each L[i] is an odd number -// in the set {±1, ±3, ..., ±2^(w-1)-1}. The third parameter ensures that the -// output has ceil(l/(w-1)) digits. -// -// Restrictions: -// - n is odd and n > 0. -// - 1 < w < 32. -// - l >= bit length of n. -// -// References: -// - Alg.6 in "Exponent Recoding and Regular Exponentiation Algorithms" -// by Joye-Tunstall. http://doi.org/10.1007/978-3-642-02384-2_21 -// - Alg.6 in "Selecting Elliptic Curves for Cryptography: An Efficiency and -// Security Analysis" by Bos et al. http://doi.org/10.1007/s13389-015-0097-y -func SignedDigit(n *big.Int, w, l uint) []int32 { - if n.Sign() <= 0 || n.Bit(0) == 0 { - panic("n must be non-zero, odd, and positive") - } - if w <= 1 || w >= 32 { - panic("Verify that 1 < w < 32") - } - if uint(n.BitLen()) > l { - panic("n is too big to fit in l digits") - } - lenN := (l + (w - 1) - 1) / (w - 1) // ceil(l/(w-1)) - L := make([]int32, lenN+1) - var k, v big.Int - k.Set(n) - - var i uint - for i = 0; i < lenN; i++ { - words := k.Bits() - value := int32(words[0] & ((1 << w) - 1)) - value -= int32(1) << (w - 1) - L[i] = value - v.SetInt64(int64(value)) - k.Sub(&k, &v) - k.Rsh(&k, w-1) - } - L[i] = int32(k.Int64()) - return L -} - -// OmegaNAF obtains the window-w Non-Adjacent Form of a positive number n and -// 1 < w < 32. The returned slice L holds n = sum( L[i]*2^i ). -// -// Reference: -// - Alg.9 "Efficient arithmetic on Koblitz curves" by Solinas. -// http://doi.org/10.1023/A:1008306223194 -func OmegaNAF(n *big.Int, w uint) (L []int32) { - if n.Sign() < 0 { - panic("n must be positive") - } - if w <= 1 || w >= 32 { - panic("Verify that 1 < w < 32") - } - - L = make([]int32, n.BitLen()+1) - var k, v big.Int - k.Set(n) - - i := 0 - for ; k.Sign() > 0; i++ { - value := int32(0) - if k.Bit(0) == 1 { - words := k.Bits() - value = int32(words[0] & ((1 << w) - 1)) - if value >= (int32(1) << (w - 1)) { - value -= int32(1) << w - } - v.SetInt64(int64(value)) - k.Sub(&k, &v) - } - L[i] = value - k.Rsh(&k, 1) - } - return L[:i] -} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go b/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go deleted file mode 100644 index b336bec98d..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go +++ /dev/null @@ -1,452 +0,0 @@ -// Package ed25519 implements Ed25519 signature scheme as described in RFC-8032. -// -// This package provides optimized implementations of the three signature -// variants and maintaining closer compatiblilty with crypto/ed25519. -// -// | Scheme Name | Sign Function | Verification | Context | -// |-------------|-------------------|---------------|-------------------| -// | Ed25519 | Sign | Verify | None | -// | Ed25519Ph | SignPh | VerifyPh | Yes, can be empty | -// | Ed25519Ctx | SignWithCtx | VerifyWithCtx | Yes, non-empty | -// | All above | (PrivateKey).Sign | VerifyAny | As above | -// -// Specific functions for sign and verify are defined. A generic signing -// function for all schemes is available through the crypto.Signer interface, -// which is implemented by the PrivateKey type. A correspond all-in-one -// verification method is provided by the VerifyAny function. -// -// Signing with Ed25519Ph or Ed25519Ctx requires a context string for domain -// separation. This parameter is passed using a SignerOptions struct defined -// in this package. While Ed25519Ph accepts an empty context, Ed25519Ctx -// enforces non-empty context strings. -// -// Compatibility with crypto.ed25519 -// -// These functions are compatible with the “Ed25519” function defined in -// RFC-8032. However, unlike RFC 8032's formulation, this package's private -// key representation includes a public key suffix to make multiple signing -// operations with the same key more efficient. This package refers to the -// RFC-8032 private key as the “seed”. -// -// References -// -// - RFC-8032: https://rfc-editor.org/rfc/rfc8032.txt -// - Ed25519: https://ed25519.cr.yp.to/ -// - EdDSA: High-speed high-security signatures. https://doi.org/10.1007/s13389-012-0027-1 -package ed25519 - -import ( - "bytes" - "crypto" - cryptoRand "crypto/rand" - "crypto/sha512" - "crypto/subtle" - "errors" - "fmt" - "io" - "strconv" - - "github.com/cloudflare/circl/sign" -) - -const ( - // ContextMaxSize is the maximum length (in bytes) allowed for context. - ContextMaxSize = 255 - // PublicKeySize is the size, in bytes, of public keys as used in this package. - PublicKeySize = 32 - // PrivateKeySize is the size, in bytes, of private keys as used in this package. - PrivateKeySize = 64 - // SignatureSize is the size, in bytes, of signatures generated and verified by this package. - SignatureSize = 64 - // SeedSize is the size, in bytes, of private key seeds. These are the private key representations used by RFC 8032. - SeedSize = 32 -) - -const ( - paramB = 256 / 8 // Size of keys in bytes. -) - -// SignerOptions implements crypto.SignerOpts and augments with parameters -// that are specific to the Ed25519 signature schemes. -type SignerOptions struct { - // Hash must be crypto.Hash(0) for Ed25519/Ed25519ctx, or crypto.SHA512 - // for Ed25519ph. - crypto.Hash - - // Context is an optional domain separation string for Ed25519ph and a - // must for Ed25519ctx. Its length must be less or equal than 255 bytes. - Context string - - // Scheme is an identifier for choosing a signature scheme. The zero value - // is ED25519. - Scheme SchemeID -} - -// SchemeID is an identifier for each signature scheme. -type SchemeID uint - -const ( - ED25519 SchemeID = iota - ED25519Ph - ED25519Ctx -) - -// PrivateKey is the type of Ed25519 private keys. It implements crypto.Signer. -type PrivateKey []byte - -// Equal reports whether priv and x have the same value. -func (priv PrivateKey) Equal(x crypto.PrivateKey) bool { - xx, ok := x.(PrivateKey) - return ok && subtle.ConstantTimeCompare(priv, xx) == 1 -} - -// Public returns the PublicKey corresponding to priv. -func (priv PrivateKey) Public() crypto.PublicKey { - publicKey := make(PublicKey, PublicKeySize) - copy(publicKey, priv[SeedSize:]) - return publicKey -} - -// Seed returns the private key seed corresponding to priv. It is provided for -// interoperability with RFC 8032. RFC 8032's private keys correspond to seeds -// in this package. -func (priv PrivateKey) Seed() []byte { - seed := make([]byte, SeedSize) - copy(seed, priv[:SeedSize]) - return seed -} - -func (priv PrivateKey) Scheme() sign.Scheme { return sch } - -func (pub PublicKey) Scheme() sign.Scheme { return sch } - -func (priv PrivateKey) MarshalBinary() (data []byte, err error) { - privateKey := make(PrivateKey, PrivateKeySize) - copy(privateKey, priv) - return privateKey, nil -} - -func (pub PublicKey) MarshalBinary() (data []byte, err error) { - publicKey := make(PublicKey, PublicKeySize) - copy(publicKey, pub) - return publicKey, nil -} - -// Equal reports whether pub and x have the same value. -func (pub PublicKey) Equal(x crypto.PublicKey) bool { - xx, ok := x.(PublicKey) - return ok && bytes.Equal(pub, xx) -} - -// Sign creates a signature of a message with priv key. -// This function is compatible with crypto.ed25519 and also supports the -// three signature variants defined in RFC-8032, namely Ed25519 (or pure -// EdDSA), Ed25519Ph, and Ed25519Ctx. -// The opts.HashFunc() must return zero to specify either Ed25519 or Ed25519Ctx -// variant. This can be achieved by passing crypto.Hash(0) as the value for -// opts. -// The opts.HashFunc() must return SHA512 to specify the Ed25519Ph variant. -// This can be achieved by passing crypto.SHA512 as the value for opts. -// Use a SignerOptions struct (defined in this package) to pass a context -// string for signing. -func (priv PrivateKey) Sign( - rand io.Reader, - message []byte, - opts crypto.SignerOpts) (signature []byte, err error) { - var ctx string - var scheme SchemeID - if o, ok := opts.(SignerOptions); ok { - ctx = o.Context - scheme = o.Scheme - } - - switch true { - case scheme == ED25519 && opts.HashFunc() == crypto.Hash(0): - return Sign(priv, message), nil - case scheme == ED25519Ph && opts.HashFunc() == crypto.SHA512: - return SignPh(priv, message, ctx), nil - case scheme == ED25519Ctx && opts.HashFunc() == crypto.Hash(0) && len(ctx) > 0: - return SignWithCtx(priv, message, ctx), nil - default: - return nil, errors.New("ed25519: bad hash algorithm") - } -} - -// GenerateKey generates a public/private key pair using entropy from rand. -// If rand is nil, crypto/rand.Reader will be used. -func GenerateKey(rand io.Reader) (PublicKey, PrivateKey, error) { - if rand == nil { - rand = cryptoRand.Reader - } - - seed := make([]byte, SeedSize) - if _, err := io.ReadFull(rand, seed); err != nil { - return nil, nil, err - } - - privateKey := NewKeyFromSeed(seed) - publicKey := make(PublicKey, PublicKeySize) - copy(publicKey, privateKey[SeedSize:]) - - return publicKey, privateKey, nil -} - -// NewKeyFromSeed calculates a private key from a seed. It will panic if -// len(seed) is not SeedSize. This function is provided for interoperability -// with RFC 8032. RFC 8032's private keys correspond to seeds in this -// package. -func NewKeyFromSeed(seed []byte) PrivateKey { - privateKey := make(PrivateKey, PrivateKeySize) - newKeyFromSeed(privateKey, seed) - return privateKey -} - -func newKeyFromSeed(privateKey, seed []byte) { - if l := len(seed); l != SeedSize { - panic("ed25519: bad seed length: " + strconv.Itoa(l)) - } - var P pointR1 - k := sha512.Sum512(seed) - clamp(k[:]) - reduceModOrder(k[:paramB], false) - P.fixedMult(k[:paramB]) - copy(privateKey[:SeedSize], seed) - _ = P.ToBytes(privateKey[SeedSize:]) -} - -func signAll(signature []byte, privateKey PrivateKey, message, ctx []byte, preHash bool) { - if l := len(privateKey); l != PrivateKeySize { - panic("ed25519: bad private key length: " + strconv.Itoa(l)) - } - - H := sha512.New() - var PHM []byte - - if preHash { - _, _ = H.Write(message) - PHM = H.Sum(nil) - H.Reset() - } else { - PHM = message - } - - // 1. Hash the 32-byte private key using SHA-512. - _, _ = H.Write(privateKey[:SeedSize]) - h := H.Sum(nil) - clamp(h[:]) - prefix, s := h[paramB:], h[:paramB] - - // 2. Compute SHA-512(dom2(F, C) || prefix || PH(M)) - H.Reset() - - writeDom(H, ctx, preHash) - - _, _ = H.Write(prefix) - _, _ = H.Write(PHM) - r := H.Sum(nil) - reduceModOrder(r[:], true) - - // 3. Compute the point [r]B. - var P pointR1 - P.fixedMult(r[:paramB]) - R := (&[paramB]byte{})[:] - if err := P.ToBytes(R); err != nil { - panic(err) - } - - // 4. Compute SHA512(dom2(F, C) || R || A || PH(M)). - H.Reset() - - writeDom(H, ctx, preHash) - - _, _ = H.Write(R) - _, _ = H.Write(privateKey[SeedSize:]) - _, _ = H.Write(PHM) - hRAM := H.Sum(nil) - - reduceModOrder(hRAM[:], true) - - // 5. Compute S = (r + k * s) mod order. - S := (&[paramB]byte{})[:] - calculateS(S, r[:paramB], hRAM[:paramB], s) - - // 6. The signature is the concatenation of R and S. - copy(signature[:paramB], R[:]) - copy(signature[paramB:], S[:]) -} - -// Sign signs the message with privateKey and returns a signature. -// This function supports the signature variant defined in RFC-8032: Ed25519, -// also known as the pure version of EdDSA. -// It will panic if len(privateKey) is not PrivateKeySize. -func Sign(privateKey PrivateKey, message []byte) []byte { - signature := make([]byte, SignatureSize) - signAll(signature, privateKey, message, []byte(""), false) - return signature -} - -// SignPh creates a signature of a message with private key and context. -// This function supports the signature variant defined in RFC-8032: Ed25519ph, -// meaning it internally hashes the message using SHA-512, and optionally -// accepts a context string. -// It will panic if len(privateKey) is not PrivateKeySize. -// Context could be passed to this function, which length should be no more than -// ContextMaxSize=255. It can be empty. -func SignPh(privateKey PrivateKey, message []byte, ctx string) []byte { - if len(ctx) > ContextMaxSize { - panic(fmt.Errorf("ed25519: bad context length: %v", len(ctx))) - } - - signature := make([]byte, SignatureSize) - signAll(signature, privateKey, message, []byte(ctx), true) - return signature -} - -// SignWithCtx creates a signature of a message with private key and context. -// This function supports the signature variant defined in RFC-8032: Ed25519ctx, -// meaning it accepts a non-empty context string. -// It will panic if len(privateKey) is not PrivateKeySize. -// Context must be passed to this function, which length should be no more than -// ContextMaxSize=255 and cannot be empty. -func SignWithCtx(privateKey PrivateKey, message []byte, ctx string) []byte { - if len(ctx) == 0 || len(ctx) > ContextMaxSize { - panic(fmt.Errorf("ed25519: bad context length: %v > %v", len(ctx), ContextMaxSize)) - } - - signature := make([]byte, SignatureSize) - signAll(signature, privateKey, message, []byte(ctx), false) - return signature -} - -func verify(public PublicKey, message, signature, ctx []byte, preHash bool) bool { - if len(public) != PublicKeySize || - len(signature) != SignatureSize || - !isLessThanOrder(signature[paramB:]) { - return false - } - - var P pointR1 - if ok := P.FromBytes(public); !ok { - return false - } - - H := sha512.New() - var PHM []byte - - if preHash { - _, _ = H.Write(message) - PHM = H.Sum(nil) - H.Reset() - } else { - PHM = message - } - - R := signature[:paramB] - - writeDom(H, ctx, preHash) - - _, _ = H.Write(R) - _, _ = H.Write(public) - _, _ = H.Write(PHM) - hRAM := H.Sum(nil) - reduceModOrder(hRAM[:], true) - - var Q pointR1 - encR := (&[paramB]byte{})[:] - P.neg() - Q.doubleMult(&P, signature[paramB:], hRAM[:paramB]) - _ = Q.ToBytes(encR) - return bytes.Equal(R, encR) -} - -// VerifyAny returns true if the signature is valid. Failure cases are invalid -// signature, or when the public key cannot be decoded. -// This function supports all the three signature variants defined in RFC-8032, -// namely Ed25519 (or pure EdDSA), Ed25519Ph, and Ed25519Ctx. -// The opts.HashFunc() must return zero to specify either Ed25519 or Ed25519Ctx -// variant. This can be achieved by passing crypto.Hash(0) as the value for opts. -// The opts.HashFunc() must return SHA512 to specify the Ed25519Ph variant. -// This can be achieved by passing crypto.SHA512 as the value for opts. -// Use a SignerOptions struct to pass a context string for signing. -func VerifyAny(public PublicKey, message, signature []byte, opts crypto.SignerOpts) bool { - var ctx string - var scheme SchemeID - if o, ok := opts.(SignerOptions); ok { - ctx = o.Context - scheme = o.Scheme - } - - switch true { - case scheme == ED25519 && opts.HashFunc() == crypto.Hash(0): - return Verify(public, message, signature) - case scheme == ED25519Ph && opts.HashFunc() == crypto.SHA512: - return VerifyPh(public, message, signature, ctx) - case scheme == ED25519Ctx && opts.HashFunc() == crypto.Hash(0) && len(ctx) > 0: - return VerifyWithCtx(public, message, signature, ctx) - default: - return false - } -} - -// Verify returns true if the signature is valid. Failure cases are invalid -// signature, or when the public key cannot be decoded. -// This function supports the signature variant defined in RFC-8032: Ed25519, -// also known as the pure version of EdDSA. -func Verify(public PublicKey, message, signature []byte) bool { - return verify(public, message, signature, []byte(""), false) -} - -// VerifyPh returns true if the signature is valid. Failure cases are invalid -// signature, or when the public key cannot be decoded. -// This function supports the signature variant defined in RFC-8032: Ed25519ph, -// meaning it internally hashes the message using SHA-512. -// Context could be passed to this function, which length should be no more than -// 255. It can be empty. -func VerifyPh(public PublicKey, message, signature []byte, ctx string) bool { - return verify(public, message, signature, []byte(ctx), true) -} - -// VerifyWithCtx returns true if the signature is valid. Failure cases are invalid -// signature, or when the public key cannot be decoded, or when context is -// not provided. -// This function supports the signature variant defined in RFC-8032: Ed25519ctx, -// meaning it does not handle prehashed messages. Non-empty context string must be -// provided, and must not be more than 255 of length. -func VerifyWithCtx(public PublicKey, message, signature []byte, ctx string) bool { - if len(ctx) == 0 || len(ctx) > ContextMaxSize { - return false - } - - return verify(public, message, signature, []byte(ctx), false) -} - -func clamp(k []byte) { - k[0] &= 248 - k[paramB-1] = (k[paramB-1] & 127) | 64 -} - -// isLessThanOrder returns true if 0 <= x < order. -func isLessThanOrder(x []byte) bool { - i := len(order) - 1 - for i > 0 && x[i] == order[i] { - i-- - } - return x[i] < order[i] -} - -func writeDom(h io.Writer, ctx []byte, preHash bool) { - dom2 := "SigEd25519 no Ed25519 collisions" - - if len(ctx) > 0 { - _, _ = h.Write([]byte(dom2)) - if preHash { - _, _ = h.Write([]byte{byte(0x01), byte(len(ctx))}) - } else { - _, _ = h.Write([]byte{byte(0x00), byte(len(ctx))}) - } - _, _ = h.Write(ctx) - } else if preHash { - _, _ = h.Write([]byte(dom2)) - _, _ = h.Write([]byte{0x01, 0x00}) - } -} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/modular.go b/vendor/github.com/cloudflare/circl/sign/ed25519/modular.go deleted file mode 100644 index 10efafdcaf..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/ed25519/modular.go +++ /dev/null @@ -1,175 +0,0 @@ -package ed25519 - -import ( - "encoding/binary" - "math/bits" -) - -var order = [paramB]byte{ - 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, - 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, -} - -// isLessThan returns true if 0 <= x < y, and assumes that slices have the same length. -func isLessThan(x, y []byte) bool { - i := len(x) - 1 - for i > 0 && x[i] == y[i] { - i-- - } - return x[i] < y[i] -} - -// reduceModOrder calculates k = k mod order of the curve. -func reduceModOrder(k []byte, is512Bit bool) { - var X [((2 * paramB) * 8) / 64]uint64 - numWords := len(k) >> 3 - for i := 0; i < numWords; i++ { - X[i] = binary.LittleEndian.Uint64(k[i*8 : (i+1)*8]) - } - red512(&X, is512Bit) - for i := 0; i < numWords; i++ { - binary.LittleEndian.PutUint64(k[i*8:(i+1)*8], X[i]) - } -} - -// red512 calculates x = x mod Order of the curve. -func red512(x *[8]uint64, full bool) { - // Implementation of Algs.(14.47)+(14.52) of Handbook of Applied - // Cryptography, by A. Menezes, P. van Oorschot, and S. Vanstone. - const ( - ell0 = uint64(0x5812631a5cf5d3ed) - ell1 = uint64(0x14def9dea2f79cd6) - ell160 = uint64(0x812631a5cf5d3ed0) - ell161 = uint64(0x4def9dea2f79cd65) - ell162 = uint64(0x0000000000000001) - ) - - var c0, c1, c2, c3 uint64 - r0, r1, r2, r3, r4 := x[0], x[1], x[2], x[3], uint64(0) - - if full { - q0, q1, q2, q3 := x[4], x[5], x[6], x[7] - - for i := 0; i < 3; i++ { - h0, s0 := bits.Mul64(q0, ell160) - h1, s1 := bits.Mul64(q1, ell160) - h2, s2 := bits.Mul64(q2, ell160) - h3, s3 := bits.Mul64(q3, ell160) - - s1, c0 = bits.Add64(h0, s1, 0) - s2, c1 = bits.Add64(h1, s2, c0) - s3, c2 = bits.Add64(h2, s3, c1) - s4, _ := bits.Add64(h3, 0, c2) - - h0, l0 := bits.Mul64(q0, ell161) - h1, l1 := bits.Mul64(q1, ell161) - h2, l2 := bits.Mul64(q2, ell161) - h3, l3 := bits.Mul64(q3, ell161) - - l1, c0 = bits.Add64(h0, l1, 0) - l2, c1 = bits.Add64(h1, l2, c0) - l3, c2 = bits.Add64(h2, l3, c1) - l4, _ := bits.Add64(h3, 0, c2) - - s1, c0 = bits.Add64(s1, l0, 0) - s2, c1 = bits.Add64(s2, l1, c0) - s3, c2 = bits.Add64(s3, l2, c1) - s4, c3 = bits.Add64(s4, l3, c2) - s5, s6 := bits.Add64(l4, 0, c3) - - s2, c0 = bits.Add64(s2, q0, 0) - s3, c1 = bits.Add64(s3, q1, c0) - s4, c2 = bits.Add64(s4, q2, c1) - s5, c3 = bits.Add64(s5, q3, c2) - s6, s7 := bits.Add64(s6, 0, c3) - - q := q0 | q1 | q2 | q3 - m := -((q | -q) >> 63) // if q=0 then m=0...0 else m=1..1 - s0 &= m - s1 &= m - s2 &= m - s3 &= m - q0, q1, q2, q3 = s4, s5, s6, s7 - - if (i+1)%2 == 0 { - r0, c0 = bits.Add64(r0, s0, 0) - r1, c1 = bits.Add64(r1, s1, c0) - r2, c2 = bits.Add64(r2, s2, c1) - r3, c3 = bits.Add64(r3, s3, c2) - r4, _ = bits.Add64(r4, 0, c3) - } else { - r0, c0 = bits.Sub64(r0, s0, 0) - r1, c1 = bits.Sub64(r1, s1, c0) - r2, c2 = bits.Sub64(r2, s2, c1) - r3, c3 = bits.Sub64(r3, s3, c2) - r4, _ = bits.Sub64(r4, 0, c3) - } - } - - m := -(r4 >> 63) - r0, c0 = bits.Add64(r0, m&ell160, 0) - r1, c1 = bits.Add64(r1, m&ell161, c0) - r2, c2 = bits.Add64(r2, m&ell162, c1) - r3, c3 = bits.Add64(r3, 0, c2) - r4, _ = bits.Add64(r4, m&1, c3) - x[4], x[5], x[6], x[7] = 0, 0, 0, 0 - } - - q0 := (r4 << 4) | (r3 >> 60) - r3 &= (uint64(1) << 60) - 1 - - h0, s0 := bits.Mul64(ell0, q0) - h1, s1 := bits.Mul64(ell1, q0) - s1, c0 = bits.Add64(h0, s1, 0) - s2, _ := bits.Add64(h1, 0, c0) - - r0, c0 = bits.Sub64(r0, s0, 0) - r1, c1 = bits.Sub64(r1, s1, c0) - r2, c2 = bits.Sub64(r2, s2, c1) - r3, _ = bits.Sub64(r3, 0, c2) - - x[0], x[1], x[2], x[3] = r0, r1, r2, r3 -} - -// calculateS performs s = r+k*a mod Order of the curve. -func calculateS(s, r, k, a []byte) { - K := [4]uint64{ - binary.LittleEndian.Uint64(k[0*8 : 1*8]), - binary.LittleEndian.Uint64(k[1*8 : 2*8]), - binary.LittleEndian.Uint64(k[2*8 : 3*8]), - binary.LittleEndian.Uint64(k[3*8 : 4*8]), - } - S := [8]uint64{ - binary.LittleEndian.Uint64(r[0*8 : 1*8]), - binary.LittleEndian.Uint64(r[1*8 : 2*8]), - binary.LittleEndian.Uint64(r[2*8 : 3*8]), - binary.LittleEndian.Uint64(r[3*8 : 4*8]), - } - var c3 uint64 - for i := range K { - ai := binary.LittleEndian.Uint64(a[i*8 : (i+1)*8]) - - h0, l0 := bits.Mul64(K[0], ai) - h1, l1 := bits.Mul64(K[1], ai) - h2, l2 := bits.Mul64(K[2], ai) - h3, l3 := bits.Mul64(K[3], ai) - - l1, c0 := bits.Add64(h0, l1, 0) - l2, c1 := bits.Add64(h1, l2, c0) - l3, c2 := bits.Add64(h2, l3, c1) - l4, _ := bits.Add64(h3, 0, c2) - - S[i+0], c0 = bits.Add64(S[i+0], l0, 0) - S[i+1], c1 = bits.Add64(S[i+1], l1, c0) - S[i+2], c2 = bits.Add64(S[i+2], l2, c1) - S[i+3], c3 = bits.Add64(S[i+3], l3, c2) - S[i+4], _ = bits.Add64(S[i+4], l4, c3) - } - red512(&S, true) - binary.LittleEndian.PutUint64(s[0*8:1*8], S[0]) - binary.LittleEndian.PutUint64(s[1*8:2*8], S[1]) - binary.LittleEndian.PutUint64(s[2*8:3*8], S[2]) - binary.LittleEndian.PutUint64(s[3*8:4*8], S[3]) -} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/mult.go b/vendor/github.com/cloudflare/circl/sign/ed25519/mult.go deleted file mode 100644 index ddcd71a390..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/ed25519/mult.go +++ /dev/null @@ -1,179 +0,0 @@ -package ed25519 - -import ( - "crypto/subtle" - "encoding/binary" - "math/bits" - - "github.com/cloudflare/circl/internal/conv" - "github.com/cloudflare/circl/math" - fp "github.com/cloudflare/circl/math/fp25519" -) - -var paramD = fp.Elt{ - 0xa3, 0x78, 0x59, 0x13, 0xca, 0x4d, 0xeb, 0x75, - 0xab, 0xd8, 0x41, 0x41, 0x4d, 0x0a, 0x70, 0x00, - 0x98, 0xe8, 0x79, 0x77, 0x79, 0x40, 0xc7, 0x8c, - 0x73, 0xfe, 0x6f, 0x2b, 0xee, 0x6c, 0x03, 0x52, -} - -// mLSBRecoding parameters. -const ( - fxT = 257 - fxV = 2 - fxW = 3 - fx2w1 = 1 << (uint(fxW) - 1) - numWords64 = (paramB * 8 / 64) -) - -// mLSBRecoding is the odd-only modified LSB-set. -// -// Reference: -// "Efficient and secure algorithms for GLV-based scalar multiplication and -// their implementation on GLV–GLS curves" by (Faz-Hernandez et al.) -// http://doi.org/10.1007/s13389-014-0085-7. -func mLSBRecoding(L []int8, k []byte) { - const ee = (fxT + fxW*fxV - 1) / (fxW * fxV) - const dd = ee * fxV - const ll = dd * fxW - if len(L) == (ll + 1) { - var m [numWords64 + 1]uint64 - for i := 0; i < numWords64; i++ { - m[i] = binary.LittleEndian.Uint64(k[8*i : 8*i+8]) - } - condAddOrderN(&m) - L[dd-1] = 1 - for i := 0; i < dd-1; i++ { - kip1 := (m[(i+1)/64] >> (uint(i+1) % 64)) & 0x1 - L[i] = int8(kip1<<1) - 1 - } - { // right-shift by d - right := uint(dd % 64) - left := uint(64) - right - lim := ((numWords64+1)*64 - dd) / 64 - j := dd / 64 - for i := 0; i < lim; i++ { - m[i] = (m[i+j] >> right) | (m[i+j+1] << left) - } - m[lim] = m[lim+j] >> right - } - for i := dd; i < ll; i++ { - L[i] = L[i%dd] * int8(m[0]&0x1) - div2subY(m[:], int64(L[i]>>1), numWords64) - } - L[ll] = int8(m[0]) - } -} - -// absolute returns always a positive value. -func absolute(x int32) int32 { - mask := x >> 31 - return (x + mask) ^ mask -} - -// condAddOrderN updates x = x+order if x is even, otherwise x remains unchanged. -func condAddOrderN(x *[numWords64 + 1]uint64) { - isOdd := (x[0] & 0x1) - 1 - c := uint64(0) - for i := 0; i < numWords64; i++ { - orderWord := binary.LittleEndian.Uint64(order[8*i : 8*i+8]) - o := isOdd & orderWord - x0, c0 := bits.Add64(x[i], o, c) - x[i] = x0 - c = c0 - } - x[numWords64], _ = bits.Add64(x[numWords64], 0, c) -} - -// div2subY update x = (x/2) - y. -func div2subY(x []uint64, y int64, l int) { - s := uint64(y >> 63) - for i := 0; i < l-1; i++ { - x[i] = (x[i] >> 1) | (x[i+1] << 63) - } - x[l-1] = (x[l-1] >> 1) - - b := uint64(0) - x0, b0 := bits.Sub64(x[0], uint64(y), b) - x[0] = x0 - b = b0 - for i := 1; i < l-1; i++ { - x0, b0 := bits.Sub64(x[i], s, b) - x[i] = x0 - b = b0 - } - x[l-1], _ = bits.Sub64(x[l-1], s, b) -} - -func (P *pointR1) fixedMult(scalar []byte) { - if len(scalar) != paramB { - panic("wrong scalar size") - } - const ee = (fxT + fxW*fxV - 1) / (fxW * fxV) - const dd = ee * fxV - const ll = dd * fxW - - L := make([]int8, ll+1) - mLSBRecoding(L[:], scalar) - S := &pointR3{} - P.SetIdentity() - for ii := ee - 1; ii >= 0; ii-- { - P.double() - for j := 0; j < fxV; j++ { - dig := L[fxW*dd-j*ee+ii-ee] - for i := (fxW-1)*dd - j*ee + ii - ee; i >= (2*dd - j*ee + ii - ee); i = i - dd { - dig = 2*dig + L[i] - } - idx := absolute(int32(dig)) - sig := L[dd-j*ee+ii-ee] - Tabj := &tabSign[fxV-j-1] - for k := 0; k < fx2w1; k++ { - S.cmov(&Tabj[k], subtle.ConstantTimeEq(int32(k), idx)) - } - S.cneg(subtle.ConstantTimeEq(int32(sig), -1)) - P.mixAdd(S) - } - } -} - -const ( - omegaFix = 7 - omegaVar = 5 -) - -// doubleMult returns P=mG+nQ. -func (P *pointR1) doubleMult(Q *pointR1, m, n []byte) { - nafFix := math.OmegaNAF(conv.BytesLe2BigInt(m), omegaFix) - nafVar := math.OmegaNAF(conv.BytesLe2BigInt(n), omegaVar) - - if len(nafFix) > len(nafVar) { - nafVar = append(nafVar, make([]int32, len(nafFix)-len(nafVar))...) - } else if len(nafFix) < len(nafVar) { - nafFix = append(nafFix, make([]int32, len(nafVar)-len(nafFix))...) - } - - var TabQ [1 << (omegaVar - 2)]pointR2 - Q.oddMultiples(TabQ[:]) - P.SetIdentity() - for i := len(nafFix) - 1; i >= 0; i-- { - P.double() - // Generator point - if nafFix[i] != 0 { - idxM := absolute(nafFix[i]) >> 1 - R := tabVerif[idxM] - if nafFix[i] < 0 { - R.neg() - } - P.mixAdd(&R) - } - // Variable input point - if nafVar[i] != 0 { - idxN := absolute(nafVar[i]) >> 1 - S := TabQ[idxN] - if nafVar[i] < 0 { - S.neg() - } - P.add(&S) - } - } -} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/point.go b/vendor/github.com/cloudflare/circl/sign/ed25519/point.go deleted file mode 100644 index 73505a6fd3..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/ed25519/point.go +++ /dev/null @@ -1,193 +0,0 @@ -package ed25519 - -import fp "github.com/cloudflare/circl/math/fp25519" - -type pointR1 struct{ x, y, z, ta, tb fp.Elt } -type pointR2 struct { - pointR3 - z2 fp.Elt -} -type pointR3 struct{ addYX, subYX, dt2 fp.Elt } - -func (P *pointR1) neg() { - fp.Neg(&P.x, &P.x) - fp.Neg(&P.ta, &P.ta) -} - -func (P *pointR1) SetIdentity() { - P.x = fp.Elt{} - fp.SetOne(&P.y) - fp.SetOne(&P.z) - P.ta = fp.Elt{} - P.tb = fp.Elt{} -} - -func (P *pointR1) toAffine() { - fp.Inv(&P.z, &P.z) - fp.Mul(&P.x, &P.x, &P.z) - fp.Mul(&P.y, &P.y, &P.z) - fp.Modp(&P.x) - fp.Modp(&P.y) - fp.SetOne(&P.z) - P.ta = P.x - P.tb = P.y -} - -func (P *pointR1) ToBytes(k []byte) error { - P.toAffine() - var x [fp.Size]byte - err := fp.ToBytes(k[:fp.Size], &P.y) - if err != nil { - return err - } - err = fp.ToBytes(x[:], &P.x) - if err != nil { - return err - } - b := x[0] & 1 - k[paramB-1] = k[paramB-1] | (b << 7) - return nil -} - -func (P *pointR1) FromBytes(k []byte) bool { - if len(k) != paramB { - panic("wrong size") - } - signX := k[paramB-1] >> 7 - copy(P.y[:], k[:fp.Size]) - P.y[fp.Size-1] &= 0x7F - p := fp.P() - if !isLessThan(P.y[:], p[:]) { - return false - } - - one, u, v := &fp.Elt{}, &fp.Elt{}, &fp.Elt{} - fp.SetOne(one) - fp.Sqr(u, &P.y) // u = y^2 - fp.Mul(v, u, ¶mD) // v = dy^2 - fp.Sub(u, u, one) // u = y^2-1 - fp.Add(v, v, one) // v = dy^2+1 - isQR := fp.InvSqrt(&P.x, u, v) // x = sqrt(u/v) - if !isQR { - return false - } - fp.Modp(&P.x) // x = x mod p - if fp.IsZero(&P.x) && signX == 1 { - return false - } - if signX != (P.x[0] & 1) { - fp.Neg(&P.x, &P.x) - } - P.ta = P.x - P.tb = P.y - fp.SetOne(&P.z) - return true -} - -// double calculates 2P for curves with A=-1. -func (P *pointR1) double() { - Px, Py, Pz, Pta, Ptb := &P.x, &P.y, &P.z, &P.ta, &P.tb - a, b, c, e, f, g, h := Px, Py, Pz, Pta, Px, Py, Ptb - fp.Add(e, Px, Py) // x+y - fp.Sqr(a, Px) // A = x^2 - fp.Sqr(b, Py) // B = y^2 - fp.Sqr(c, Pz) // z^2 - fp.Add(c, c, c) // C = 2*z^2 - fp.Add(h, a, b) // H = A+B - fp.Sqr(e, e) // (x+y)^2 - fp.Sub(e, e, h) // E = (x+y)^2-A-B - fp.Sub(g, b, a) // G = B-A - fp.Sub(f, c, g) // F = C-G - fp.Mul(Pz, f, g) // Z = F * G - fp.Mul(Px, e, f) // X = E * F - fp.Mul(Py, g, h) // Y = G * H, T = E * H -} - -func (P *pointR1) mixAdd(Q *pointR3) { - fp.Add(&P.z, &P.z, &P.z) // D = 2*z1 - P.coreAddition(Q) -} - -func (P *pointR1) add(Q *pointR2) { - fp.Mul(&P.z, &P.z, &Q.z2) // D = 2*z1*z2 - P.coreAddition(&Q.pointR3) -} - -// coreAddition calculates P=P+Q for curves with A=-1. -func (P *pointR1) coreAddition(Q *pointR3) { - Px, Py, Pz, Pta, Ptb := &P.x, &P.y, &P.z, &P.ta, &P.tb - addYX2, subYX2, dt2 := &Q.addYX, &Q.subYX, &Q.dt2 - a, b, c, d, e, f, g, h := Px, Py, &fp.Elt{}, Pz, Pta, Px, Py, Ptb - fp.Mul(c, Pta, Ptb) // t1 = ta*tb - fp.Sub(h, Py, Px) // y1-x1 - fp.Add(b, Py, Px) // y1+x1 - fp.Mul(a, h, subYX2) // A = (y1-x1)*(y2-x2) - fp.Mul(b, b, addYX2) // B = (y1+x1)*(y2+x2) - fp.Mul(c, c, dt2) // C = 2*D*t1*t2 - fp.Sub(e, b, a) // E = B-A - fp.Add(h, b, a) // H = B+A - fp.Sub(f, d, c) // F = D-C - fp.Add(g, d, c) // G = D+C - fp.Mul(Pz, f, g) // Z = F * G - fp.Mul(Px, e, f) // X = E * F - fp.Mul(Py, g, h) // Y = G * H, T = E * H -} - -func (P *pointR1) oddMultiples(T []pointR2) { - var R pointR2 - n := len(T) - T[0].fromR1(P) - _2P := *P - _2P.double() - R.fromR1(&_2P) - for i := 1; i < n; i++ { - P.add(&R) - T[i].fromR1(P) - } -} - -func (P *pointR1) isEqual(Q *pointR1) bool { - l, r := &fp.Elt{}, &fp.Elt{} - fp.Mul(l, &P.x, &Q.z) - fp.Mul(r, &Q.x, &P.z) - fp.Sub(l, l, r) - b := fp.IsZero(l) - fp.Mul(l, &P.y, &Q.z) - fp.Mul(r, &Q.y, &P.z) - fp.Sub(l, l, r) - b = b && fp.IsZero(l) - fp.Mul(l, &P.ta, &P.tb) - fp.Mul(l, l, &Q.z) - fp.Mul(r, &Q.ta, &Q.tb) - fp.Mul(r, r, &P.z) - fp.Sub(l, l, r) - b = b && fp.IsZero(l) - return b -} - -func (P *pointR3) neg() { - P.addYX, P.subYX = P.subYX, P.addYX - fp.Neg(&P.dt2, &P.dt2) -} - -func (P *pointR2) fromR1(Q *pointR1) { - fp.Add(&P.addYX, &Q.y, &Q.x) - fp.Sub(&P.subYX, &Q.y, &Q.x) - fp.Mul(&P.dt2, &Q.ta, &Q.tb) - fp.Mul(&P.dt2, &P.dt2, ¶mD) - fp.Add(&P.dt2, &P.dt2, &P.dt2) - fp.Add(&P.z2, &Q.z, &Q.z) -} - -func (P *pointR3) cneg(b int) { - t := &fp.Elt{} - fp.Cswap(&P.addYX, &P.subYX, uint(b)) - fp.Neg(t, &P.dt2) - fp.Cmov(&P.dt2, t, uint(b)) -} - -func (P *pointR3) cmov(Q *pointR3, b int) { - fp.Cmov(&P.addYX, &Q.addYX, uint(b)) - fp.Cmov(&P.subYX, &Q.subYX, uint(b)) - fp.Cmov(&P.dt2, &Q.dt2, uint(b)) -} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey.go b/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey.go deleted file mode 100644 index c3505b67ac..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build go1.13 -// +build go1.13 - -package ed25519 - -import cryptoEd25519 "crypto/ed25519" - -// PublicKey is the type of Ed25519 public keys. -type PublicKey cryptoEd25519.PublicKey diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey112.go b/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey112.go deleted file mode 100644 index d57d86eff0..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/ed25519/pubkey112.go +++ /dev/null @@ -1,7 +0,0 @@ -//go:build !go1.13 -// +build !go1.13 - -package ed25519 - -// PublicKey is the type of Ed25519 public keys. -type PublicKey []byte diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/signapi.go b/vendor/github.com/cloudflare/circl/sign/ed25519/signapi.go deleted file mode 100644 index e4520f5203..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/ed25519/signapi.go +++ /dev/null @@ -1,87 +0,0 @@ -package ed25519 - -import ( - "crypto/rand" - "encoding/asn1" - - "github.com/cloudflare/circl/sign" -) - -var sch sign.Scheme = &scheme{} - -// Scheme returns a signature interface. -func Scheme() sign.Scheme { return sch } - -type scheme struct{} - -func (*scheme) Name() string { return "Ed25519" } -func (*scheme) PublicKeySize() int { return PublicKeySize } -func (*scheme) PrivateKeySize() int { return PrivateKeySize } -func (*scheme) SignatureSize() int { return SignatureSize } -func (*scheme) SeedSize() int { return SeedSize } -func (*scheme) TLSIdentifier() uint { return 0x0807 } -func (*scheme) SupportsContext() bool { return false } -func (*scheme) Oid() asn1.ObjectIdentifier { - return asn1.ObjectIdentifier{1, 3, 101, 112} -} - -func (*scheme) GenerateKey() (sign.PublicKey, sign.PrivateKey, error) { - return GenerateKey(rand.Reader) -} - -func (*scheme) Sign( - sk sign.PrivateKey, - message []byte, - opts *sign.SignatureOpts, -) []byte { - priv, ok := sk.(PrivateKey) - if !ok { - panic(sign.ErrTypeMismatch) - } - if opts != nil && opts.Context != "" { - panic(sign.ErrContextNotSupported) - } - return Sign(priv, message) -} - -func (*scheme) Verify( - pk sign.PublicKey, - message, signature []byte, - opts *sign.SignatureOpts, -) bool { - pub, ok := pk.(PublicKey) - if !ok { - panic(sign.ErrTypeMismatch) - } - if opts != nil { - if opts.Context != "" { - panic(sign.ErrContextNotSupported) - } - } - return Verify(pub, message, signature) -} - -func (*scheme) DeriveKey(seed []byte) (sign.PublicKey, sign.PrivateKey) { - privateKey := NewKeyFromSeed(seed) - publicKey := make(PublicKey, PublicKeySize) - copy(publicKey, privateKey[SeedSize:]) - return publicKey, privateKey -} - -func (*scheme) UnmarshalBinaryPublicKey(buf []byte) (sign.PublicKey, error) { - if len(buf) < PublicKeySize { - return nil, sign.ErrPubKeySize - } - pub := make(PublicKey, PublicKeySize) - copy(pub, buf[:PublicKeySize]) - return pub, nil -} - -func (*scheme) UnmarshalBinaryPrivateKey(buf []byte) (sign.PrivateKey, error) { - if len(buf) < PrivateKeySize { - return nil, sign.ErrPrivKeySize - } - priv := make(PrivateKey, PrivateKeySize) - copy(priv, buf[:PrivateKeySize]) - return priv, nil -} diff --git a/vendor/github.com/cloudflare/circl/sign/ed25519/tables.go b/vendor/github.com/cloudflare/circl/sign/ed25519/tables.go deleted file mode 100644 index 8763b426fc..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/ed25519/tables.go +++ /dev/null @@ -1,213 +0,0 @@ -package ed25519 - -import fp "github.com/cloudflare/circl/math/fp25519" - -var tabSign = [fxV][fx2w1]pointR3{ - { - pointR3{ - addYX: fp.Elt{0x85, 0x3b, 0x8c, 0xf5, 0xc6, 0x93, 0xbc, 0x2f, 0x19, 0x0e, 0x8c, 0xfb, 0xc6, 0x2d, 0x93, 0xcf, 0xc2, 0x42, 0x3d, 0x64, 0x98, 0x48, 0x0b, 0x27, 0x65, 0xba, 0xd4, 0x33, 0x3a, 0x9d, 0xcf, 0x07}, - subYX: fp.Elt{0x3e, 0x91, 0x40, 0xd7, 0x05, 0x39, 0x10, 0x9d, 0xb3, 0xbe, 0x40, 0xd1, 0x05, 0x9f, 0x39, 0xfd, 0x09, 0x8a, 0x8f, 0x68, 0x34, 0x84, 0xc1, 0xa5, 0x67, 0x12, 0xf8, 0x98, 0x92, 0x2f, 0xfd, 0x44}, - dt2: fp.Elt{0x68, 0xaa, 0x7a, 0x87, 0x05, 0x12, 0xc9, 0xab, 0x9e, 0xc4, 0xaa, 0xcc, 0x23, 0xe8, 0xd9, 0x26, 0x8c, 0x59, 0x43, 0xdd, 0xcb, 0x7d, 0x1b, 0x5a, 0xa8, 0x65, 0x0c, 0x9f, 0x68, 0x7b, 0x11, 0x6f}, - }, - { - addYX: fp.Elt{0x7c, 0xb0, 0x9e, 0xe6, 0xc5, 0xbf, 0xfa, 0x13, 0x8e, 0x0d, 0x22, 0xde, 0xc8, 0xd1, 0xce, 0x52, 0x02, 0xd5, 0x62, 0x31, 0x71, 0x0e, 0x8e, 0x9d, 0xb0, 0xd6, 0x00, 0xa5, 0x5a, 0x0e, 0xce, 0x72}, - subYX: fp.Elt{0x1a, 0x8e, 0x5c, 0xdc, 0xa4, 0xb3, 0x6c, 0x51, 0x18, 0xa0, 0x09, 0x80, 0x9a, 0x46, 0x33, 0xd5, 0xe0, 0x3c, 0x4d, 0x3b, 0xfc, 0x49, 0xa2, 0x43, 0x29, 0xe1, 0x29, 0xa9, 0x93, 0xea, 0x7c, 0x35}, - dt2: fp.Elt{0x08, 0x46, 0x6f, 0x68, 0x7f, 0x0b, 0x7c, 0x9e, 0xad, 0xba, 0x07, 0x61, 0x74, 0x83, 0x2f, 0xfc, 0x26, 0xd6, 0x09, 0xb9, 0x00, 0x34, 0x36, 0x4f, 0x01, 0xf3, 0x48, 0xdb, 0x43, 0xba, 0x04, 0x44}, - }, - { - addYX: fp.Elt{0x4c, 0xda, 0x0d, 0x13, 0x66, 0xfd, 0x82, 0x84, 0x9f, 0x75, 0x5b, 0xa2, 0x17, 0xfe, 0x34, 0xbf, 0x1f, 0xcb, 0xba, 0x90, 0x55, 0x80, 0x83, 0xfd, 0x63, 0xb9, 0x18, 0xf8, 0x5b, 0x5d, 0x94, 0x1e}, - subYX: fp.Elt{0xb9, 0xdb, 0x6c, 0x04, 0x88, 0x22, 0xd8, 0x79, 0x83, 0x2f, 0x8d, 0x65, 0x6b, 0xd2, 0xab, 0x1b, 0xdd, 0x65, 0xe5, 0x93, 0x63, 0xf8, 0xa2, 0xd8, 0x3c, 0xf1, 0x4b, 0xc5, 0x99, 0xd1, 0xf2, 0x12}, - dt2: fp.Elt{0x05, 0x4c, 0xb8, 0x3b, 0xfe, 0xf5, 0x9f, 0x2e, 0xd1, 0xb2, 0xb8, 0xff, 0xfe, 0x6d, 0xd9, 0x37, 0xe0, 0xae, 0xb4, 0x5a, 0x51, 0x80, 0x7e, 0x9b, 0x1d, 0xd1, 0x8d, 0x8c, 0x56, 0xb1, 0x84, 0x35}, - }, - { - addYX: fp.Elt{0x39, 0x71, 0x43, 0x34, 0xe3, 0x42, 0x45, 0xa1, 0xf2, 0x68, 0x71, 0xa7, 0xe8, 0x23, 0xfd, 0x9f, 0x86, 0x48, 0xff, 0xe5, 0x96, 0x74, 0xcf, 0x05, 0x49, 0xe2, 0xb3, 0x6c, 0x17, 0x77, 0x2f, 0x6d}, - subYX: fp.Elt{0x73, 0x3f, 0xc1, 0xc7, 0x6a, 0x66, 0xa1, 0x20, 0xdd, 0x11, 0xfb, 0x7a, 0x6e, 0xa8, 0x51, 0xb8, 0x3f, 0x9d, 0xa2, 0x97, 0x84, 0xb5, 0xc7, 0x90, 0x7c, 0xab, 0x48, 0xd6, 0x84, 0xa3, 0xd5, 0x1a}, - dt2: fp.Elt{0x63, 0x27, 0x3c, 0x49, 0x4b, 0xfc, 0x22, 0xf2, 0x0b, 0x50, 0xc2, 0x0f, 0xb4, 0x1f, 0x31, 0x0c, 0x2f, 0x53, 0xab, 0xaa, 0x75, 0x6f, 0xe0, 0x69, 0x39, 0x56, 0xe0, 0x3b, 0xb7, 0xa8, 0xbf, 0x45}, - }, - }, - { - { - addYX: fp.Elt{0x00, 0x45, 0xd9, 0x0d, 0x58, 0x03, 0xfc, 0x29, 0x93, 0xec, 0xbb, 0x6f, 0xa4, 0x7a, 0xd2, 0xec, 0xf8, 0xa7, 0xe2, 0xc2, 0x5f, 0x15, 0x0a, 0x13, 0xd5, 0xa1, 0x06, 0xb7, 0x1a, 0x15, 0x6b, 0x41}, - subYX: fp.Elt{0x85, 0x8c, 0xb2, 0x17, 0xd6, 0x3b, 0x0a, 0xd3, 0xea, 0x3b, 0x77, 0x39, 0xb7, 0x77, 0xd3, 0xc5, 0xbf, 0x5c, 0x6a, 0x1e, 0x8c, 0xe7, 0xc6, 0xc6, 0xc4, 0xb7, 0x2a, 0x8b, 0xf7, 0xb8, 0x61, 0x0d}, - dt2: fp.Elt{0xb0, 0x36, 0xc1, 0xe9, 0xef, 0xd7, 0xa8, 0x56, 0x20, 0x4b, 0xe4, 0x58, 0xcd, 0xe5, 0x07, 0xbd, 0xab, 0xe0, 0x57, 0x1b, 0xda, 0x2f, 0xe6, 0xaf, 0xd2, 0xe8, 0x77, 0x42, 0xf7, 0x2a, 0x1a, 0x19}, - }, - { - addYX: fp.Elt{0x6a, 0x6d, 0x6d, 0xd1, 0xfa, 0xf5, 0x03, 0x30, 0xbd, 0x6d, 0xc2, 0xc8, 0xf5, 0x38, 0x80, 0x4f, 0xb2, 0xbe, 0xa1, 0x76, 0x50, 0x1a, 0x73, 0xf2, 0x78, 0x2b, 0x8e, 0x3a, 0x1e, 0x34, 0x47, 0x7b}, - subYX: fp.Elt{0xc3, 0x2c, 0x36, 0xdc, 0xc5, 0x45, 0xbc, 0xef, 0x1b, 0x64, 0xd6, 0x65, 0x28, 0xe9, 0xda, 0x84, 0x13, 0xbe, 0x27, 0x8e, 0x3f, 0x98, 0x2a, 0x37, 0xee, 0x78, 0x97, 0xd6, 0xc0, 0x6f, 0xb4, 0x53}, - dt2: fp.Elt{0x58, 0x5d, 0xa7, 0xa3, 0x68, 0xbb, 0x20, 0x30, 0x2e, 0x03, 0xe9, 0xb1, 0xd4, 0x90, 0x72, 0xe3, 0x71, 0xb2, 0x36, 0x3e, 0x73, 0xa0, 0x2e, 0x3d, 0xd1, 0x85, 0x33, 0x62, 0x4e, 0xa7, 0x7b, 0x31}, - }, - { - addYX: fp.Elt{0xbf, 0xc4, 0x38, 0x53, 0xfb, 0x68, 0xa9, 0x77, 0xce, 0x55, 0xf9, 0x05, 0xcb, 0xeb, 0xfb, 0x8c, 0x46, 0xc2, 0x32, 0x7c, 0xf0, 0xdb, 0xd7, 0x2c, 0x62, 0x8e, 0xdd, 0x54, 0x75, 0xcf, 0x3f, 0x33}, - subYX: fp.Elt{0x49, 0x50, 0x1f, 0x4e, 0x6e, 0x55, 0x55, 0xde, 0x8c, 0x4e, 0x77, 0x96, 0x38, 0x3b, 0xfe, 0xb6, 0x43, 0x3c, 0x86, 0x69, 0xc2, 0x72, 0x66, 0x1f, 0x6b, 0xf9, 0x87, 0xbc, 0x4f, 0x37, 0x3e, 0x3c}, - dt2: fp.Elt{0xd2, 0x2f, 0x06, 0x6b, 0x08, 0x07, 0x69, 0x77, 0xc0, 0x94, 0xcc, 0xae, 0x43, 0x00, 0x59, 0x6e, 0xa3, 0x63, 0xa8, 0xdd, 0xfa, 0x24, 0x18, 0xd0, 0x35, 0xc7, 0x78, 0xf7, 0x0d, 0xd4, 0x5a, 0x1e}, - }, - { - addYX: fp.Elt{0x45, 0xc1, 0x17, 0x51, 0xf8, 0xed, 0x7e, 0xc7, 0xa9, 0x1a, 0x11, 0x6e, 0x2d, 0xef, 0x0b, 0xd5, 0x3f, 0x98, 0xb0, 0xa3, 0x9d, 0x65, 0xf1, 0xcd, 0x53, 0x4a, 0x8a, 0x18, 0x70, 0x0a, 0x7f, 0x23}, - subYX: fp.Elt{0xdd, 0xef, 0xbe, 0x3a, 0x31, 0xe0, 0xbc, 0xbe, 0x6d, 0x5d, 0x79, 0x87, 0xd6, 0xbe, 0x68, 0xe3, 0x59, 0x76, 0x8c, 0x86, 0x0e, 0x7a, 0x92, 0x13, 0x14, 0x8f, 0x67, 0xb3, 0xcb, 0x1a, 0x76, 0x76}, - dt2: fp.Elt{0x56, 0x7a, 0x1c, 0x9d, 0xca, 0x96, 0xf9, 0xf9, 0x03, 0x21, 0xd4, 0xe8, 0xb3, 0xd5, 0xe9, 0x52, 0xc8, 0x54, 0x1e, 0x1b, 0x13, 0xb6, 0xfd, 0x47, 0x7d, 0x02, 0x32, 0x33, 0x27, 0xe2, 0x1f, 0x19}, - }, - }, -} - -var tabVerif = [1 << (omegaFix - 2)]pointR3{ - { /* 1P */ - addYX: fp.Elt{0x85, 0x3b, 0x8c, 0xf5, 0xc6, 0x93, 0xbc, 0x2f, 0x19, 0x0e, 0x8c, 0xfb, 0xc6, 0x2d, 0x93, 0xcf, 0xc2, 0x42, 0x3d, 0x64, 0x98, 0x48, 0x0b, 0x27, 0x65, 0xba, 0xd4, 0x33, 0x3a, 0x9d, 0xcf, 0x07}, - subYX: fp.Elt{0x3e, 0x91, 0x40, 0xd7, 0x05, 0x39, 0x10, 0x9d, 0xb3, 0xbe, 0x40, 0xd1, 0x05, 0x9f, 0x39, 0xfd, 0x09, 0x8a, 0x8f, 0x68, 0x34, 0x84, 0xc1, 0xa5, 0x67, 0x12, 0xf8, 0x98, 0x92, 0x2f, 0xfd, 0x44}, - dt2: fp.Elt{0x68, 0xaa, 0x7a, 0x87, 0x05, 0x12, 0xc9, 0xab, 0x9e, 0xc4, 0xaa, 0xcc, 0x23, 0xe8, 0xd9, 0x26, 0x8c, 0x59, 0x43, 0xdd, 0xcb, 0x7d, 0x1b, 0x5a, 0xa8, 0x65, 0x0c, 0x9f, 0x68, 0x7b, 0x11, 0x6f}, - }, - { /* 3P */ - addYX: fp.Elt{0x30, 0x97, 0xee, 0x4c, 0xa8, 0xb0, 0x25, 0xaf, 0x8a, 0x4b, 0x86, 0xe8, 0x30, 0x84, 0x5a, 0x02, 0x32, 0x67, 0x01, 0x9f, 0x02, 0x50, 0x1b, 0xc1, 0xf4, 0xf8, 0x80, 0x9a, 0x1b, 0x4e, 0x16, 0x7a}, - subYX: fp.Elt{0x65, 0xd2, 0xfc, 0xa4, 0xe8, 0x1f, 0x61, 0x56, 0x7d, 0xba, 0xc1, 0xe5, 0xfd, 0x53, 0xd3, 0x3b, 0xbd, 0xd6, 0x4b, 0x21, 0x1a, 0xf3, 0x31, 0x81, 0x62, 0xda, 0x5b, 0x55, 0x87, 0x15, 0xb9, 0x2a}, - dt2: fp.Elt{0x89, 0xd8, 0xd0, 0x0d, 0x3f, 0x93, 0xae, 0x14, 0x62, 0xda, 0x35, 0x1c, 0x22, 0x23, 0x94, 0x58, 0x4c, 0xdb, 0xf2, 0x8c, 0x45, 0xe5, 0x70, 0xd1, 0xc6, 0xb4, 0xb9, 0x12, 0xaf, 0x26, 0x28, 0x5a}, - }, - { /* 5P */ - addYX: fp.Elt{0x33, 0xbb, 0xa5, 0x08, 0x44, 0xbc, 0x12, 0xa2, 0x02, 0xed, 0x5e, 0xc7, 0xc3, 0x48, 0x50, 0x8d, 0x44, 0xec, 0xbf, 0x5a, 0x0c, 0xeb, 0x1b, 0xdd, 0xeb, 0x06, 0xe2, 0x46, 0xf1, 0xcc, 0x45, 0x29}, - subYX: fp.Elt{0xba, 0xd6, 0x47, 0xa4, 0xc3, 0x82, 0x91, 0x7f, 0xb7, 0x29, 0x27, 0x4b, 0xd1, 0x14, 0x00, 0xd5, 0x87, 0xa0, 0x64, 0xb8, 0x1c, 0xf1, 0x3c, 0xe3, 0xf3, 0x55, 0x1b, 0xeb, 0x73, 0x7e, 0x4a, 0x15}, - dt2: fp.Elt{0x85, 0x82, 0x2a, 0x81, 0xf1, 0xdb, 0xbb, 0xbc, 0xfc, 0xd1, 0xbd, 0xd0, 0x07, 0x08, 0x0e, 0x27, 0x2d, 0xa7, 0xbd, 0x1b, 0x0b, 0x67, 0x1b, 0xb4, 0x9a, 0xb6, 0x3b, 0x6b, 0x69, 0xbe, 0xaa, 0x43}, - }, - { /* 7P */ - addYX: fp.Elt{0xbf, 0xa3, 0x4e, 0x94, 0xd0, 0x5c, 0x1a, 0x6b, 0xd2, 0xc0, 0x9d, 0xb3, 0x3a, 0x35, 0x70, 0x74, 0x49, 0x2e, 0x54, 0x28, 0x82, 0x52, 0xb2, 0x71, 0x7e, 0x92, 0x3c, 0x28, 0x69, 0xea, 0x1b, 0x46}, - subYX: fp.Elt{0xb1, 0x21, 0x32, 0xaa, 0x9a, 0x2c, 0x6f, 0xba, 0xa7, 0x23, 0xba, 0x3b, 0x53, 0x21, 0xa0, 0x6c, 0x3a, 0x2c, 0x19, 0x92, 0x4f, 0x76, 0xea, 0x9d, 0xe0, 0x17, 0x53, 0x2e, 0x5d, 0xdd, 0x6e, 0x1d}, - dt2: fp.Elt{0xa2, 0xb3, 0xb8, 0x01, 0xc8, 0x6d, 0x83, 0xf1, 0x9a, 0xa4, 0x3e, 0x05, 0x47, 0x5f, 0x03, 0xb3, 0xf3, 0xad, 0x77, 0x58, 0xba, 0x41, 0x9c, 0x52, 0xa7, 0x90, 0x0f, 0x6a, 0x1c, 0xbb, 0x9f, 0x7a}, - }, - { /* 9P */ - addYX: fp.Elt{0x2f, 0x63, 0xa8, 0xa6, 0x8a, 0x67, 0x2e, 0x9b, 0xc5, 0x46, 0xbc, 0x51, 0x6f, 0x9e, 0x50, 0xa6, 0xb5, 0xf5, 0x86, 0xc6, 0xc9, 0x33, 0xb2, 0xce, 0x59, 0x7f, 0xdd, 0x8a, 0x33, 0xed, 0xb9, 0x34}, - subYX: fp.Elt{0x64, 0x80, 0x9d, 0x03, 0x7e, 0x21, 0x6e, 0xf3, 0x9b, 0x41, 0x20, 0xf5, 0xb6, 0x81, 0xa0, 0x98, 0x44, 0xb0, 0x5e, 0xe7, 0x08, 0xc6, 0xcb, 0x96, 0x8f, 0x9c, 0xdc, 0xfa, 0x51, 0x5a, 0xc0, 0x49}, - dt2: fp.Elt{0x1b, 0xaf, 0x45, 0x90, 0xbf, 0xe8, 0xb4, 0x06, 0x2f, 0xd2, 0x19, 0xa7, 0xe8, 0x83, 0xff, 0xe2, 0x16, 0xcf, 0xd4, 0x93, 0x29, 0xfc, 0xf6, 0xaa, 0x06, 0x8b, 0x00, 0x1b, 0x02, 0x72, 0xc1, 0x73}, - }, - { /* 11P */ - addYX: fp.Elt{0xde, 0x2a, 0x80, 0x8a, 0x84, 0x00, 0xbf, 0x2f, 0x27, 0x2e, 0x30, 0x02, 0xcf, 0xfe, 0xd9, 0xe5, 0x06, 0x34, 0x70, 0x17, 0x71, 0x84, 0x3e, 0x11, 0xaf, 0x8f, 0x6d, 0x54, 0xe2, 0xaa, 0x75, 0x42}, - subYX: fp.Elt{0x48, 0x43, 0x86, 0x49, 0x02, 0x5b, 0x5f, 0x31, 0x81, 0x83, 0x08, 0x77, 0x69, 0xb3, 0xd6, 0x3e, 0x95, 0xeb, 0x8d, 0x6a, 0x55, 0x75, 0xa0, 0xa3, 0x7f, 0xc7, 0xd5, 0x29, 0x80, 0x59, 0xab, 0x18}, - dt2: fp.Elt{0xe9, 0x89, 0x60, 0xfd, 0xc5, 0x2c, 0x2b, 0xd8, 0xa4, 0xe4, 0x82, 0x32, 0xa1, 0xb4, 0x1e, 0x03, 0x22, 0x86, 0x1a, 0xb5, 0x99, 0x11, 0x31, 0x44, 0x48, 0xf9, 0x3d, 0xb5, 0x22, 0x55, 0xc6, 0x3d}, - }, - { /* 13P */ - addYX: fp.Elt{0x6d, 0x7f, 0x00, 0xa2, 0x22, 0xc2, 0x70, 0xbf, 0xdb, 0xde, 0xbc, 0xb5, 0x9a, 0xb3, 0x84, 0xbf, 0x07, 0xba, 0x07, 0xfb, 0x12, 0x0e, 0x7a, 0x53, 0x41, 0xf2, 0x46, 0xc3, 0xee, 0xd7, 0x4f, 0x23}, - subYX: fp.Elt{0x93, 0xbf, 0x7f, 0x32, 0x3b, 0x01, 0x6f, 0x50, 0x6b, 0x6f, 0x77, 0x9b, 0xc9, 0xeb, 0xfc, 0xae, 0x68, 0x59, 0xad, 0xaa, 0x32, 0xb2, 0x12, 0x9d, 0xa7, 0x24, 0x60, 0x17, 0x2d, 0x88, 0x67, 0x02}, - dt2: fp.Elt{0x78, 0xa3, 0x2e, 0x73, 0x19, 0xa1, 0x60, 0x53, 0x71, 0xd4, 0x8d, 0xdf, 0xb1, 0xe6, 0x37, 0x24, 0x33, 0xe5, 0xa7, 0x91, 0xf8, 0x37, 0xef, 0xa2, 0x63, 0x78, 0x09, 0xaa, 0xfd, 0xa6, 0x7b, 0x49}, - }, - { /* 15P */ - addYX: fp.Elt{0xa0, 0xea, 0xcf, 0x13, 0x03, 0xcc, 0xce, 0x24, 0x6d, 0x24, 0x9c, 0x18, 0x8d, 0xc2, 0x48, 0x86, 0xd0, 0xd4, 0xf2, 0xc1, 0xfa, 0xbd, 0xbd, 0x2d, 0x2b, 0xe7, 0x2d, 0xf1, 0x17, 0x29, 0xe2, 0x61}, - subYX: fp.Elt{0x0b, 0xcf, 0x8c, 0x46, 0x86, 0xcd, 0x0b, 0x04, 0xd6, 0x10, 0x99, 0x2a, 0xa4, 0x9b, 0x82, 0xd3, 0x92, 0x51, 0xb2, 0x07, 0x08, 0x30, 0x08, 0x75, 0xbf, 0x5e, 0xd0, 0x18, 0x42, 0xcd, 0xb5, 0x43}, - dt2: fp.Elt{0x16, 0xb5, 0xd0, 0x9b, 0x2f, 0x76, 0x9a, 0x5d, 0xee, 0xde, 0x3f, 0x37, 0x4e, 0xaf, 0x38, 0xeb, 0x70, 0x42, 0xd6, 0x93, 0x7d, 0x5a, 0x2e, 0x03, 0x42, 0xd8, 0xe4, 0x0a, 0x21, 0x61, 0x1d, 0x51}, - }, - { /* 17P */ - addYX: fp.Elt{0x81, 0x9d, 0x0e, 0x95, 0xef, 0x76, 0xc6, 0x92, 0x4f, 0x04, 0xd7, 0xc0, 0xcd, 0x20, 0x46, 0xa5, 0x48, 0x12, 0x8f, 0x6f, 0x64, 0x36, 0x9b, 0xaa, 0xe3, 0x55, 0xb8, 0xdd, 0x24, 0x59, 0x32, 0x6d}, - subYX: fp.Elt{0x87, 0xde, 0x20, 0x44, 0x48, 0x86, 0x13, 0x08, 0xb4, 0xed, 0x92, 0xb5, 0x16, 0xf0, 0x1c, 0x8a, 0x25, 0x2d, 0x94, 0x29, 0x27, 0x4e, 0xfa, 0x39, 0x10, 0x28, 0x48, 0xe2, 0x6f, 0xfe, 0xa7, 0x71}, - dt2: fp.Elt{0x54, 0xc8, 0xc8, 0xa5, 0xb8, 0x82, 0x71, 0x6c, 0x03, 0x2a, 0x5f, 0xfe, 0x79, 0x14, 0xfd, 0x33, 0x0c, 0x8d, 0x77, 0x83, 0x18, 0x59, 0xcf, 0x72, 0xa9, 0xea, 0x9e, 0x55, 0xb6, 0xc4, 0x46, 0x47}, - }, - { /* 19P */ - addYX: fp.Elt{0x2b, 0x9a, 0xc6, 0x6d, 0x3c, 0x7b, 0x77, 0xd3, 0x17, 0xf6, 0x89, 0x6f, 0x27, 0xb2, 0xfa, 0xde, 0xb5, 0x16, 0x3a, 0xb5, 0xf7, 0x1c, 0x65, 0x45, 0xb7, 0x9f, 0xfe, 0x34, 0xde, 0x51, 0x9a, 0x5c}, - subYX: fp.Elt{0x47, 0x11, 0x74, 0x64, 0xc8, 0x46, 0x85, 0x34, 0x49, 0xc8, 0xfc, 0x0e, 0xdd, 0xae, 0x35, 0x7d, 0x32, 0xa3, 0x72, 0x06, 0x76, 0x9a, 0x93, 0xff, 0xd6, 0xe6, 0xb5, 0x7d, 0x49, 0x63, 0x96, 0x21}, - dt2: fp.Elt{0x67, 0x0e, 0xf1, 0x79, 0xcf, 0xf1, 0x10, 0xf5, 0x5b, 0x51, 0x58, 0xe6, 0xa1, 0xda, 0xdd, 0xff, 0x77, 0x22, 0x14, 0x10, 0x17, 0xa7, 0xc3, 0x09, 0xbb, 0x23, 0x82, 0x60, 0x3c, 0x50, 0x04, 0x48}, - }, - { /* 21P */ - addYX: fp.Elt{0xc7, 0x7f, 0xa3, 0x2c, 0xd0, 0x9e, 0x24, 0xc4, 0xab, 0xac, 0x15, 0xa6, 0xe3, 0xa0, 0x59, 0xa0, 0x23, 0x0e, 0x6e, 0xc9, 0xd7, 0x6e, 0xa9, 0x88, 0x6d, 0x69, 0x50, 0x16, 0xa5, 0x98, 0x33, 0x55}, - subYX: fp.Elt{0x75, 0xd1, 0x36, 0x3a, 0xd2, 0x21, 0x68, 0x3b, 0x32, 0x9e, 0x9b, 0xe9, 0xa7, 0x0a, 0xb4, 0xbb, 0x47, 0x8a, 0x83, 0x20, 0xe4, 0x5c, 0x9e, 0x5d, 0x5e, 0x4c, 0xde, 0x58, 0x88, 0x09, 0x1e, 0x77}, - dt2: fp.Elt{0xdf, 0x1e, 0x45, 0x78, 0xd2, 0xf5, 0x12, 0x9a, 0xcb, 0x9c, 0x89, 0x85, 0x79, 0x5d, 0xda, 0x3a, 0x08, 0x95, 0xa5, 0x9f, 0x2d, 0x4a, 0x7f, 0x47, 0x11, 0xa6, 0xf5, 0x8f, 0xd6, 0xd1, 0x5e, 0x5a}, - }, - { /* 23P */ - addYX: fp.Elt{0x83, 0x0e, 0x15, 0xfe, 0x2a, 0x12, 0x95, 0x11, 0xd8, 0x35, 0x4b, 0x7e, 0x25, 0x9a, 0x20, 0xcf, 0x20, 0x1e, 0x71, 0x1e, 0x29, 0xf8, 0x87, 0x73, 0xf0, 0x92, 0xbf, 0xd8, 0x97, 0xb8, 0xac, 0x44}, - subYX: fp.Elt{0x59, 0x73, 0x52, 0x58, 0xc5, 0xe0, 0xe5, 0xba, 0x7e, 0x9d, 0xdb, 0xca, 0x19, 0x5c, 0x2e, 0x39, 0xe9, 0xab, 0x1c, 0xda, 0x1e, 0x3c, 0x65, 0x28, 0x44, 0xdc, 0xef, 0x5f, 0x13, 0x60, 0x9b, 0x01}, - dt2: fp.Elt{0x83, 0x4b, 0x13, 0x5e, 0x14, 0x68, 0x60, 0x1e, 0x16, 0x4c, 0x30, 0x24, 0x4f, 0xe6, 0xf5, 0xc4, 0xd7, 0x3e, 0x1a, 0xfc, 0xa8, 0x88, 0x6e, 0x50, 0x92, 0x2f, 0xad, 0xe6, 0xfd, 0x49, 0x0c, 0x15}, - }, - { /* 25P */ - addYX: fp.Elt{0x38, 0x11, 0x47, 0x09, 0x95, 0xf2, 0x7b, 0x8e, 0x51, 0xa6, 0x75, 0x4f, 0x39, 0xef, 0x6f, 0x5d, 0xad, 0x08, 0xa7, 0x25, 0xc4, 0x79, 0xaf, 0x10, 0x22, 0x99, 0xb9, 0x5b, 0x07, 0x5a, 0x2b, 0x6b}, - subYX: fp.Elt{0x68, 0xa8, 0xdc, 0x9c, 0x3c, 0x86, 0x49, 0xb8, 0xd0, 0x4a, 0x71, 0xb8, 0xdb, 0x44, 0x3f, 0xc8, 0x8d, 0x16, 0x36, 0x0c, 0x56, 0xe3, 0x3e, 0xfe, 0xc1, 0xfb, 0x05, 0x1e, 0x79, 0xd7, 0xa6, 0x78}, - dt2: fp.Elt{0x76, 0xb9, 0xa0, 0x47, 0x4b, 0x70, 0xbf, 0x58, 0xd5, 0x48, 0x17, 0x74, 0x55, 0xb3, 0x01, 0xa6, 0x90, 0xf5, 0x42, 0xd5, 0xb1, 0x1f, 0x2b, 0xaa, 0x00, 0x5d, 0xd5, 0x4a, 0xfc, 0x7f, 0x5c, 0x72}, - }, - { /* 27P */ - addYX: fp.Elt{0xb2, 0x99, 0xcf, 0xd1, 0x15, 0x67, 0x42, 0xe4, 0x34, 0x0d, 0xa2, 0x02, 0x11, 0xd5, 0x52, 0x73, 0x9f, 0x10, 0x12, 0x8b, 0x7b, 0x15, 0xd1, 0x23, 0xa3, 0xf3, 0xb1, 0x7c, 0x27, 0xc9, 0x4c, 0x79}, - subYX: fp.Elt{0xc0, 0x98, 0xd0, 0x1c, 0xf7, 0x2b, 0x80, 0x91, 0x66, 0x63, 0x5e, 0xed, 0xa4, 0x6c, 0x41, 0xfe, 0x4c, 0x99, 0x02, 0x49, 0x71, 0x5d, 0x58, 0xdf, 0xe7, 0xfa, 0x55, 0xf8, 0x25, 0x46, 0xd5, 0x4c}, - dt2: fp.Elt{0x53, 0x50, 0xac, 0xc2, 0x26, 0xc4, 0xf6, 0x4a, 0x58, 0x72, 0xf6, 0x32, 0xad, 0xed, 0x9a, 0xbc, 0x21, 0x10, 0x31, 0x0a, 0xf1, 0x32, 0xd0, 0x2a, 0x85, 0x8e, 0xcc, 0x6f, 0x7b, 0x35, 0x08, 0x70}, - }, - { /* 29P */ - addYX: fp.Elt{0x01, 0x3f, 0x77, 0x38, 0x27, 0x67, 0x88, 0x0b, 0xfb, 0xcc, 0xfb, 0x95, 0xfa, 0xc8, 0xcc, 0xb8, 0xb6, 0x29, 0xad, 0xb9, 0xa3, 0xd5, 0x2d, 0x8d, 0x6a, 0x0f, 0xad, 0x51, 0x98, 0x7e, 0xef, 0x06}, - subYX: fp.Elt{0x34, 0x4a, 0x58, 0x82, 0xbb, 0x9f, 0x1b, 0xd0, 0x2b, 0x79, 0xb4, 0xd2, 0x63, 0x64, 0xab, 0x47, 0x02, 0x62, 0x53, 0x48, 0x9c, 0x63, 0x31, 0xb6, 0x28, 0xd4, 0xd6, 0x69, 0x36, 0x2a, 0xa9, 0x13}, - dt2: fp.Elt{0xe5, 0x7d, 0x57, 0xc0, 0x1c, 0x77, 0x93, 0xca, 0x5c, 0xdc, 0x35, 0x50, 0x1e, 0xe4, 0x40, 0x75, 0x71, 0xe0, 0x02, 0xd8, 0x01, 0x0f, 0x68, 0x24, 0x6a, 0xf8, 0x2a, 0x8a, 0xdf, 0x6d, 0x29, 0x3c}, - }, - { /* 31P */ - addYX: fp.Elt{0x13, 0xa7, 0x14, 0xd9, 0xf9, 0x15, 0xad, 0xae, 0x12, 0xf9, 0x8f, 0x8c, 0xf9, 0x7b, 0x2f, 0xa9, 0x30, 0xd7, 0x53, 0x9f, 0x17, 0x23, 0xf8, 0xaf, 0xba, 0x77, 0x0c, 0x49, 0x93, 0xd3, 0x99, 0x7a}, - subYX: fp.Elt{0x41, 0x25, 0x1f, 0xbb, 0x2e, 0x4d, 0xeb, 0xfc, 0x1f, 0xb9, 0xad, 0x40, 0xc7, 0x10, 0x95, 0xb8, 0x05, 0xad, 0xa1, 0xd0, 0x7d, 0xa3, 0x71, 0xfc, 0x7b, 0x71, 0x47, 0x07, 0x70, 0x2c, 0x89, 0x0a}, - dt2: fp.Elt{0xe8, 0xa3, 0xbd, 0x36, 0x24, 0xed, 0x52, 0x8f, 0x94, 0x07, 0xe8, 0x57, 0x41, 0xc8, 0xa8, 0x77, 0xe0, 0x9c, 0x2f, 0x26, 0x63, 0x65, 0xa9, 0xa5, 0xd2, 0xf7, 0x02, 0x83, 0xd2, 0x62, 0x67, 0x28}, - }, - { /* 33P */ - addYX: fp.Elt{0x25, 0x5b, 0xe3, 0x3c, 0x09, 0x36, 0x78, 0x4e, 0x97, 0xaa, 0x6b, 0xb2, 0x1d, 0x18, 0xe1, 0x82, 0x3f, 0xb8, 0xc7, 0xcb, 0xd3, 0x92, 0xc1, 0x0c, 0x3a, 0x9d, 0x9d, 0x6a, 0x04, 0xda, 0xf1, 0x32}, - subYX: fp.Elt{0xbd, 0xf5, 0x2e, 0xce, 0x2b, 0x8e, 0x55, 0x7c, 0x63, 0xbc, 0x47, 0x67, 0xb4, 0x6c, 0x98, 0xe4, 0xb8, 0x89, 0xbb, 0x3b, 0x9f, 0x17, 0x4a, 0x15, 0x7a, 0x76, 0xf1, 0xd6, 0xa3, 0xf2, 0x86, 0x76}, - dt2: fp.Elt{0x6a, 0x7c, 0x59, 0x6d, 0xa6, 0x12, 0x8d, 0xaa, 0x2b, 0x85, 0xd3, 0x04, 0x03, 0x93, 0x11, 0x8f, 0x22, 0xb0, 0x09, 0xc2, 0x73, 0xdc, 0x91, 0x3f, 0xa6, 0x28, 0xad, 0xa9, 0xf8, 0x05, 0x13, 0x56}, - }, - { /* 35P */ - addYX: fp.Elt{0xd1, 0xae, 0x92, 0xec, 0x8d, 0x97, 0x0c, 0x10, 0xe5, 0x73, 0x6d, 0x4d, 0x43, 0xd5, 0x43, 0xca, 0x48, 0xba, 0x47, 0xd8, 0x22, 0x1b, 0x13, 0x83, 0x2c, 0x4d, 0x5d, 0xe3, 0x53, 0xec, 0xaa}, - subYX: fp.Elt{0xd5, 0xc0, 0xb0, 0xe7, 0x28, 0xcc, 0x22, 0x67, 0x53, 0x5c, 0x07, 0xdb, 0xbb, 0xe9, 0x9d, 0x70, 0x61, 0x0a, 0x01, 0xd7, 0xa7, 0x8d, 0xf6, 0xca, 0x6c, 0xcc, 0x57, 0x2c, 0xef, 0x1a, 0x0a, 0x03}, - dt2: fp.Elt{0xaa, 0xd2, 0x3a, 0x00, 0x73, 0xf7, 0xb1, 0x7b, 0x08, 0x66, 0x21, 0x2b, 0x80, 0x29, 0x3f, 0x0b, 0x3e, 0xd2, 0x0e, 0x52, 0x86, 0xdc, 0x21, 0x78, 0x80, 0x54, 0x06, 0x24, 0x1c, 0x9c, 0xbe, 0x20}, - }, - { /* 37P */ - addYX: fp.Elt{0xa6, 0x73, 0x96, 0x24, 0xd8, 0x87, 0x53, 0xe1, 0x93, 0xe4, 0x46, 0xf5, 0x2d, 0xbc, 0x43, 0x59, 0xb5, 0x63, 0x6f, 0xc3, 0x81, 0x9a, 0x7f, 0x1c, 0xde, 0xc1, 0x0a, 0x1f, 0x36, 0xb3, 0x0a, 0x75}, - subYX: fp.Elt{0x60, 0x5e, 0x02, 0xe2, 0x4a, 0xe4, 0xe0, 0x20, 0x38, 0xb9, 0xdc, 0xcb, 0x2f, 0x3b, 0x3b, 0xb0, 0x1c, 0x0d, 0x5a, 0xf9, 0x9c, 0x63, 0x5d, 0x10, 0x11, 0xe3, 0x67, 0x50, 0x54, 0x4c, 0x76, 0x69}, - dt2: fp.Elt{0x37, 0x10, 0xf8, 0xa2, 0x83, 0x32, 0x8a, 0x1e, 0xf1, 0xcb, 0x7f, 0xbd, 0x23, 0xda, 0x2e, 0x6f, 0x63, 0x25, 0x2e, 0xac, 0x5b, 0xd1, 0x2f, 0xb7, 0x40, 0x50, 0x07, 0xb7, 0x3f, 0x6b, 0xf9, 0x54}, - }, - { /* 39P */ - addYX: fp.Elt{0x79, 0x92, 0x66, 0x29, 0x04, 0xf2, 0xad, 0x0f, 0x4a, 0x72, 0x7d, 0x7d, 0x04, 0xa2, 0xdd, 0x3a, 0xf1, 0x60, 0x57, 0x8c, 0x82, 0x94, 0x3d, 0x6f, 0x9e, 0x53, 0xb7, 0x2b, 0xc5, 0xe9, 0x7f, 0x3d}, - subYX: fp.Elt{0xcd, 0x1e, 0xb1, 0x16, 0xc6, 0xaf, 0x7d, 0x17, 0x79, 0x64, 0x57, 0xfa, 0x9c, 0x4b, 0x76, 0x89, 0x85, 0xe7, 0xec, 0xe6, 0x10, 0xa1, 0xa8, 0xb7, 0xf0, 0xdb, 0x85, 0xbe, 0x9f, 0x83, 0xe6, 0x78}, - dt2: fp.Elt{0x6b, 0x85, 0xb8, 0x37, 0xf7, 0x2d, 0x33, 0x70, 0x8a, 0x17, 0x1a, 0x04, 0x43, 0x5d, 0xd0, 0x75, 0x22, 0x9e, 0xe5, 0xa0, 0x4a, 0xf7, 0x0f, 0x32, 0x42, 0x82, 0x08, 0x50, 0xf3, 0x68, 0xf2, 0x70}, - }, - { /* 41P */ - addYX: fp.Elt{0x47, 0x5f, 0x80, 0xb1, 0x83, 0x45, 0x86, 0x66, 0x19, 0x7c, 0xdd, 0x60, 0xd1, 0xc5, 0x35, 0xf5, 0x06, 0xb0, 0x4c, 0x1e, 0xb7, 0x4e, 0x87, 0xe9, 0xd9, 0x89, 0xd8, 0xfa, 0x5c, 0x34, 0x0d, 0x7c}, - subYX: fp.Elt{0x55, 0xf3, 0xdc, 0x70, 0x20, 0x11, 0x24, 0x23, 0x17, 0xe1, 0xfc, 0xe7, 0x7e, 0xc9, 0x0c, 0x38, 0x98, 0xb6, 0x52, 0x35, 0xed, 0xde, 0x1d, 0xb3, 0xb9, 0xc4, 0xb8, 0x39, 0xc0, 0x56, 0x4e, 0x40}, - dt2: fp.Elt{0x8a, 0x33, 0x78, 0x8c, 0x4b, 0x1f, 0x1f, 0x59, 0xe1, 0xb5, 0xe0, 0x67, 0xb1, 0x6a, 0x36, 0xa0, 0x44, 0x3d, 0x5f, 0xb4, 0x52, 0x41, 0xbc, 0x5c, 0x77, 0xc7, 0xae, 0x2a, 0x76, 0x54, 0xd7, 0x20}, - }, - { /* 43P */ - addYX: fp.Elt{0x58, 0xb7, 0x3b, 0xc7, 0x6f, 0xc3, 0x8f, 0x5e, 0x9a, 0xbb, 0x3c, 0x36, 0xa5, 0x43, 0xe5, 0xac, 0x22, 0xc9, 0x3b, 0x90, 0x7d, 0x4a, 0x93, 0xa9, 0x62, 0xec, 0xce, 0xf3, 0x46, 0x1e, 0x8f, 0x2b}, - subYX: fp.Elt{0x43, 0xf5, 0xb9, 0x35, 0xb1, 0xfe, 0x74, 0x9d, 0x6c, 0x95, 0x8c, 0xde, 0xf1, 0x7d, 0xb3, 0x84, 0xa9, 0x8b, 0x13, 0x57, 0x07, 0x2b, 0x32, 0xe9, 0xe1, 0x4c, 0x0b, 0x79, 0xa8, 0xad, 0xb8, 0x38}, - dt2: fp.Elt{0x5d, 0xf9, 0x51, 0xdf, 0x9c, 0x4a, 0xc0, 0xb5, 0xac, 0xde, 0x1f, 0xcb, 0xae, 0x52, 0x39, 0x2b, 0xda, 0x66, 0x8b, 0x32, 0x8b, 0x6d, 0x10, 0x1d, 0x53, 0x19, 0xba, 0xce, 0x32, 0xeb, 0x9a, 0x04}, - }, - { /* 45P */ - addYX: fp.Elt{0x31, 0x79, 0xfc, 0x75, 0x0b, 0x7d, 0x50, 0xaa, 0xd3, 0x25, 0x67, 0x7a, 0x4b, 0x92, 0xef, 0x0f, 0x30, 0x39, 0x6b, 0x39, 0x2b, 0x54, 0x82, 0x1d, 0xfc, 0x74, 0xf6, 0x30, 0x75, 0xe1, 0x5e, 0x79}, - subYX: fp.Elt{0x7e, 0xfe, 0xdc, 0x63, 0x3c, 0x7d, 0x76, 0xd7, 0x40, 0x6e, 0x85, 0x97, 0x48, 0x59, 0x9c, 0x20, 0x13, 0x7c, 0x4f, 0xe1, 0x61, 0x68, 0x67, 0xb6, 0xfc, 0x25, 0xd6, 0xc8, 0xe0, 0x65, 0xc6, 0x51}, - dt2: fp.Elt{0x81, 0xbd, 0xec, 0x52, 0x0a, 0x5b, 0x4a, 0x25, 0xe7, 0xaf, 0x34, 0xe0, 0x6e, 0x1f, 0x41, 0x5d, 0x31, 0x4a, 0xee, 0xca, 0x0d, 0x4d, 0xa2, 0xe6, 0x77, 0x44, 0xc5, 0x9d, 0xf4, 0x9b, 0xd1, 0x6c}, - }, - { /* 47P */ - addYX: fp.Elt{0x86, 0xc3, 0xaf, 0x65, 0x21, 0x61, 0xfe, 0x1f, 0x10, 0x1b, 0xd5, 0xb8, 0x88, 0x2a, 0x2a, 0x08, 0xaa, 0x0b, 0x99, 0x20, 0x7e, 0x62, 0xf6, 0x76, 0xe7, 0x43, 0x9e, 0x42, 0xa7, 0xb3, 0x01, 0x5e}, - subYX: fp.Elt{0xa3, 0x9c, 0x17, 0x52, 0x90, 0x61, 0x87, 0x7e, 0x85, 0x9f, 0x2c, 0x0b, 0x06, 0x0a, 0x1d, 0x57, 0x1e, 0x71, 0x99, 0x84, 0xa8, 0xba, 0xa2, 0x80, 0x38, 0xe6, 0xb2, 0x40, 0xdb, 0xf3, 0x20, 0x75}, - dt2: fp.Elt{0xa1, 0x57, 0x93, 0xd3, 0xe3, 0x0b, 0xb5, 0x3d, 0xa5, 0x94, 0x9e, 0x59, 0xdd, 0x6c, 0x7b, 0x96, 0x6e, 0x1e, 0x31, 0xdf, 0x64, 0x9a, 0x30, 0x1a, 0x86, 0xc9, 0xf3, 0xce, 0x9c, 0x2c, 0x09, 0x71}, - }, - { /* 49P */ - addYX: fp.Elt{0xcf, 0x1d, 0x05, 0x74, 0xac, 0xd8, 0x6b, 0x85, 0x1e, 0xaa, 0xb7, 0x55, 0x08, 0xa4, 0xf6, 0x03, 0xeb, 0x3c, 0x74, 0xc9, 0xcb, 0xe7, 0x4a, 0x3a, 0xde, 0xab, 0x37, 0x71, 0xbb, 0xa5, 0x73, 0x41}, - subYX: fp.Elt{0x8c, 0x91, 0x64, 0x03, 0x3f, 0x52, 0xd8, 0x53, 0x1c, 0x6b, 0xab, 0x3f, 0xf4, 0x04, 0xb4, 0xa2, 0xa4, 0xe5, 0x81, 0x66, 0x9e, 0x4a, 0x0b, 0x08, 0xa7, 0x7b, 0x25, 0xd0, 0x03, 0x5b, 0xa1, 0x0e}, - dt2: fp.Elt{0x8a, 0x21, 0xf9, 0xf0, 0x31, 0x6e, 0xc5, 0x17, 0x08, 0x47, 0xfc, 0x1a, 0x2b, 0x6e, 0x69, 0x5a, 0x76, 0xf1, 0xb2, 0xf4, 0x68, 0x16, 0x93, 0xf7, 0x67, 0x3a, 0x4e, 0x4a, 0x61, 0x65, 0xc5, 0x5f}, - }, - { /* 51P */ - addYX: fp.Elt{0x8e, 0x98, 0x90, 0x77, 0xe6, 0xe1, 0x92, 0x48, 0x22, 0xd7, 0x5c, 0x1c, 0x0f, 0x95, 0xd5, 0x01, 0xed, 0x3e, 0x92, 0xe5, 0x9a, 0x81, 0xb0, 0xe3, 0x1b, 0x65, 0x46, 0x9d, 0x40, 0xc7, 0x14, 0x32}, - subYX: fp.Elt{0xe5, 0x7a, 0x6d, 0xc4, 0x0d, 0x57, 0x6e, 0x13, 0x8f, 0xdc, 0xf8, 0x54, 0xcc, 0xaa, 0xd0, 0x0f, 0x86, 0xad, 0x0d, 0x31, 0x03, 0x9f, 0x54, 0x59, 0xa1, 0x4a, 0x45, 0x4c, 0x41, 0x1c, 0x71, 0x62}, - dt2: fp.Elt{0x70, 0x17, 0x65, 0x06, 0x74, 0x82, 0x29, 0x13, 0x36, 0x94, 0x27, 0x8a, 0x66, 0xa0, 0xa4, 0x3b, 0x3c, 0x22, 0x5d, 0x18, 0xec, 0xb8, 0xb6, 0xd9, 0x3c, 0x83, 0xcb, 0x3e, 0x07, 0x94, 0xea, 0x5b}, - }, - { /* 53P */ - addYX: fp.Elt{0xf8, 0xd2, 0x43, 0xf3, 0x63, 0xce, 0x70, 0xb4, 0xf1, 0xe8, 0x43, 0x05, 0x8f, 0xba, 0x67, 0x00, 0x6f, 0x7b, 0x11, 0xa2, 0xa1, 0x51, 0xda, 0x35, 0x2f, 0xbd, 0xf1, 0x44, 0x59, 0x78, 0xd0, 0x4a}, - subYX: fp.Elt{0xe4, 0x9b, 0xc8, 0x12, 0x09, 0xbf, 0x1d, 0x64, 0x9c, 0x57, 0x6e, 0x7d, 0x31, 0x8b, 0xf3, 0xac, 0x65, 0xb0, 0x97, 0xf6, 0x02, 0x9e, 0xfe, 0xab, 0xec, 0x1e, 0xf6, 0x48, 0xc1, 0xd5, 0xac, 0x3a}, - dt2: fp.Elt{0x01, 0x83, 0x31, 0xc3, 0x34, 0x3b, 0x8e, 0x85, 0x26, 0x68, 0x31, 0x07, 0x47, 0xc0, 0x99, 0xdc, 0x8c, 0xa8, 0x9d, 0xd3, 0x2e, 0x5b, 0x08, 0x34, 0x3d, 0x85, 0x02, 0xd9, 0xb1, 0x0c, 0xff, 0x3a}, - }, - { /* 55P */ - addYX: fp.Elt{0x05, 0x35, 0xc5, 0xf4, 0x0b, 0x43, 0x26, 0x92, 0x83, 0x22, 0x1f, 0x26, 0x13, 0x9c, 0xe4, 0x68, 0xc6, 0x27, 0xd3, 0x8f, 0x78, 0x33, 0xef, 0x09, 0x7f, 0x9e, 0xd9, 0x2b, 0x73, 0x9f, 0xcf, 0x2c}, - subYX: fp.Elt{0x5e, 0x40, 0x20, 0x3a, 0xeb, 0xc7, 0xc5, 0x87, 0xc9, 0x56, 0xad, 0xed, 0xef, 0x11, 0xe3, 0x8e, 0xf9, 0xd5, 0x29, 0xad, 0x48, 0x2e, 0x25, 0x29, 0x1d, 0x25, 0xcd, 0xf4, 0x86, 0x7e, 0x0e, 0x11}, - dt2: fp.Elt{0xe4, 0xf5, 0x03, 0xd6, 0x9e, 0xd8, 0xc0, 0x57, 0x0c, 0x20, 0xb0, 0xf0, 0x28, 0x86, 0x88, 0x12, 0xb7, 0x3b, 0x2e, 0xa0, 0x09, 0x27, 0x17, 0x53, 0x37, 0x3a, 0x69, 0xb9, 0xe0, 0x57, 0xc5, 0x05}, - }, - { /* 57P */ - addYX: fp.Elt{0xb0, 0x0e, 0xc2, 0x89, 0xb0, 0xbb, 0x76, 0xf7, 0x5c, 0xd8, 0x0f, 0xfa, 0xf6, 0x5b, 0xf8, 0x61, 0xfb, 0x21, 0x44, 0x63, 0x4e, 0x3f, 0xb9, 0xb6, 0x05, 0x12, 0x86, 0x41, 0x08, 0xef, 0x9f, 0x28}, - subYX: fp.Elt{0x6f, 0x7e, 0xc9, 0x1f, 0x31, 0xce, 0xf9, 0xd8, 0xae, 0xfd, 0xf9, 0x11, 0x30, 0x26, 0x3f, 0x7a, 0xdd, 0x25, 0xed, 0x8b, 0xa0, 0x7e, 0x5b, 0xe1, 0x5a, 0x87, 0xe9, 0x8f, 0x17, 0x4c, 0x15, 0x6e}, - dt2: fp.Elt{0xbf, 0x9a, 0xd6, 0xfe, 0x36, 0x63, 0x61, 0xcf, 0x4f, 0xc9, 0x35, 0x83, 0xe7, 0xe4, 0x16, 0x9b, 0xe7, 0x7f, 0x3a, 0x75, 0x65, 0x97, 0x78, 0x13, 0x19, 0xa3, 0x5c, 0xa9, 0x42, 0xf6, 0xfb, 0x6a}, - }, - { /* 59P */ - addYX: fp.Elt{0xcc, 0xa8, 0x13, 0xf9, 0x70, 0x50, 0xe5, 0x5d, 0x61, 0xf5, 0x0c, 0x2b, 0x7b, 0x16, 0x1d, 0x7d, 0x89, 0xd4, 0xea, 0x90, 0xb6, 0x56, 0x29, 0xda, 0xd9, 0x1e, 0x80, 0xdb, 0xce, 0x93, 0xc0, 0x12}, - subYX: fp.Elt{0xc1, 0xd2, 0xf5, 0x62, 0x0c, 0xde, 0xa8, 0x7d, 0x9a, 0x7b, 0x0e, 0xb0, 0xa4, 0x3d, 0xfc, 0x98, 0xe0, 0x70, 0xad, 0x0d, 0xda, 0x6a, 0xeb, 0x7d, 0xc4, 0x38, 0x50, 0xb9, 0x51, 0xb8, 0xb4, 0x0d}, - dt2: fp.Elt{0x0f, 0x19, 0xb8, 0x08, 0x93, 0x7f, 0x14, 0xfc, 0x10, 0xe3, 0x1a, 0xa1, 0xa0, 0x9d, 0x96, 0x06, 0xfd, 0xd7, 0xc7, 0xda, 0x72, 0x55, 0xe7, 0xce, 0xe6, 0x5c, 0x63, 0xc6, 0x99, 0x87, 0xaa, 0x33}, - }, - { /* 61P */ - addYX: fp.Elt{0xb1, 0x6c, 0x15, 0xfc, 0x88, 0xf5, 0x48, 0x83, 0x27, 0x6d, 0x0a, 0x1a, 0x9b, 0xba, 0xa2, 0x6d, 0xb6, 0x5a, 0xca, 0x87, 0x5c, 0x2d, 0x26, 0xe2, 0xa6, 0x89, 0xd5, 0xc8, 0xc1, 0xd0, 0x2c, 0x21}, - subYX: fp.Elt{0xf2, 0x5c, 0x08, 0xbd, 0x1e, 0xf5, 0x0f, 0xaf, 0x1f, 0x3f, 0xd3, 0x67, 0x89, 0x1a, 0xf5, 0x78, 0x3c, 0x03, 0x60, 0x50, 0xe1, 0xbf, 0xc2, 0x6e, 0x86, 0x1a, 0xe2, 0xe8, 0x29, 0x6f, 0x3c, 0x23}, - dt2: fp.Elt{0x81, 0xc7, 0x18, 0x7f, 0x10, 0xd5, 0xf4, 0xd2, 0x28, 0x9d, 0x7e, 0x52, 0xf2, 0xcd, 0x2e, 0x12, 0x41, 0x33, 0x3d, 0x3d, 0x2a, 0x86, 0x0a, 0xa7, 0xe3, 0x4c, 0x91, 0x11, 0x89, 0x77, 0xb7, 0x1d}, - }, - { /* 63P */ - addYX: fp.Elt{0xb6, 0x1a, 0x70, 0xdd, 0x69, 0x47, 0x39, 0xb3, 0xa5, 0x8d, 0xcf, 0x19, 0xd4, 0xde, 0xb8, 0xe2, 0x52, 0xc8, 0x2a, 0xfd, 0x61, 0x41, 0xdf, 0x15, 0xbe, 0x24, 0x7d, 0x01, 0x8a, 0xca, 0xe2, 0x7a}, - subYX: fp.Elt{0x6f, 0xc2, 0x6b, 0x7c, 0x39, 0x52, 0xf3, 0xdd, 0x13, 0x01, 0xd5, 0x53, 0xcc, 0xe2, 0x97, 0x7a, 0x30, 0xa3, 0x79, 0xbf, 0x3a, 0xf4, 0x74, 0x7c, 0xfc, 0xad, 0xe2, 0x26, 0xad, 0x97, 0xad, 0x31}, - dt2: fp.Elt{0x62, 0xb9, 0x20, 0x09, 0xed, 0x17, 0xe8, 0xb7, 0x9d, 0xda, 0x19, 0x3f, 0xcc, 0x18, 0x85, 0x1e, 0x64, 0x0a, 0x56, 0x25, 0x4f, 0xc1, 0x91, 0xe4, 0x83, 0x2c, 0x62, 0xa6, 0x53, 0xfc, 0xd1, 0x1e}, - }, -} diff --git a/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go b/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go deleted file mode 100644 index 36bceb3803..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go +++ /dev/null @@ -1,410 +0,0 @@ -// Package ed448 implements Ed448 signature scheme as described in RFC-8032. -// -// This package implements two signature variants. -// -// | Scheme Name | Sign Function | Verification | Context | -// |-------------|-------------------|---------------|-------------------| -// | Ed448 | Sign | Verify | Yes, can be empty | -// | Ed448Ph | SignPh | VerifyPh | Yes, can be empty | -// | All above | (PrivateKey).Sign | VerifyAny | As above | -// -// Specific functions for sign and verify are defined. A generic signing -// function for all schemes is available through the crypto.Signer interface, -// which is implemented by the PrivateKey type. A correspond all-in-one -// verification method is provided by the VerifyAny function. -// -// Both schemes require a context string for domain separation. This parameter -// is passed using a SignerOptions struct defined in this package. -// -// References: -// -// - RFC8032 https://rfc-editor.org/rfc/rfc8032.txt -// - EdDSA for more curves https://eprint.iacr.org/2015/677 -// - High-speed high-security signatures. https://doi.org/10.1007/s13389-012-0027-1 -package ed448 - -import ( - "bytes" - "crypto" - cryptoRand "crypto/rand" - "crypto/subtle" - "errors" - "fmt" - "io" - "strconv" - - "github.com/cloudflare/circl/ecc/goldilocks" - "github.com/cloudflare/circl/internal/sha3" - "github.com/cloudflare/circl/sign" -) - -const ( - // ContextMaxSize is the maximum length (in bytes) allowed for context. - ContextMaxSize = 255 - // PublicKeySize is the length in bytes of Ed448 public keys. - PublicKeySize = 57 - // PrivateKeySize is the length in bytes of Ed448 private keys. - PrivateKeySize = 114 - // SignatureSize is the length in bytes of signatures. - SignatureSize = 114 - // SeedSize is the size, in bytes, of private key seeds. These are the private key representations used by RFC 8032. - SeedSize = 57 -) - -const ( - paramB = 456 / 8 // Size of keys in bytes. - hashSize = 2 * paramB // Size of the hash function's output. -) - -// SignerOptions implements crypto.SignerOpts and augments with parameters -// that are specific to the Ed448 signature schemes. -type SignerOptions struct { - // Hash must be crypto.Hash(0) for both Ed448 and Ed448Ph. - crypto.Hash - - // Context is an optional domain separation string for signing. - // Its length must be less or equal than 255 bytes. - Context string - - // Scheme is an identifier for choosing a signature scheme. - Scheme SchemeID -} - -// SchemeID is an identifier for each signature scheme. -type SchemeID uint - -const ( - ED448 SchemeID = iota - ED448Ph -) - -// PublicKey is the type of Ed448 public keys. -type PublicKey []byte - -// Equal reports whether pub and x have the same value. -func (pub PublicKey) Equal(x crypto.PublicKey) bool { - xx, ok := x.(PublicKey) - return ok && bytes.Equal(pub, xx) -} - -// PrivateKey is the type of Ed448 private keys. It implements crypto.Signer. -type PrivateKey []byte - -// Equal reports whether priv and x have the same value. -func (priv PrivateKey) Equal(x crypto.PrivateKey) bool { - xx, ok := x.(PrivateKey) - return ok && subtle.ConstantTimeCompare(priv, xx) == 1 -} - -// Public returns the PublicKey corresponding to priv. -func (priv PrivateKey) Public() crypto.PublicKey { - publicKey := make([]byte, PublicKeySize) - copy(publicKey, priv[SeedSize:]) - return PublicKey(publicKey) -} - -// Seed returns the private key seed corresponding to priv. It is provided for -// interoperability with RFC 8032. RFC 8032's private keys correspond to seeds -// in this package. -func (priv PrivateKey) Seed() []byte { - seed := make([]byte, SeedSize) - copy(seed, priv[:SeedSize]) - return seed -} - -func (priv PrivateKey) Scheme() sign.Scheme { return sch } - -func (pub PublicKey) Scheme() sign.Scheme { return sch } - -func (priv PrivateKey) MarshalBinary() (data []byte, err error) { - privateKey := make(PrivateKey, PrivateKeySize) - copy(privateKey, priv) - return privateKey, nil -} - -func (pub PublicKey) MarshalBinary() (data []byte, err error) { - publicKey := make(PublicKey, PublicKeySize) - copy(publicKey, pub) - return publicKey, nil -} - -// Sign creates a signature of a message given a key pair. -// This function supports all the two signature variants defined in RFC-8032, -// namely Ed448 (or pure EdDSA) and Ed448Ph. -// The opts.HashFunc() must return zero to the specify Ed448 variant. This can -// be achieved by passing crypto.Hash(0) as the value for opts. -// Use an Options struct to pass a bool indicating that the ed448Ph variant -// should be used. -// The struct can also be optionally used to pass a context string for signing. -func (priv PrivateKey) Sign( - rand io.Reader, - message []byte, - opts crypto.SignerOpts) (signature []byte, err error) { - var ctx string - var scheme SchemeID - - if o, ok := opts.(SignerOptions); ok { - ctx = o.Context - scheme = o.Scheme - } - - switch true { - case scheme == ED448 && opts.HashFunc() == crypto.Hash(0): - return Sign(priv, message, ctx), nil - case scheme == ED448Ph && opts.HashFunc() == crypto.Hash(0): - return SignPh(priv, message, ctx), nil - default: - return nil, errors.New("ed448: bad hash algorithm") - } -} - -// GenerateKey generates a public/private key pair using entropy from rand. -// If rand is nil, crypto/rand.Reader will be used. -func GenerateKey(rand io.Reader) (PublicKey, PrivateKey, error) { - if rand == nil { - rand = cryptoRand.Reader - } - - seed := make(PrivateKey, SeedSize) - if _, err := io.ReadFull(rand, seed); err != nil { - return nil, nil, err - } - - privateKey := NewKeyFromSeed(seed) - publicKey := make([]byte, PublicKeySize) - copy(publicKey, privateKey[SeedSize:]) - - return publicKey, privateKey, nil -} - -// NewKeyFromSeed calculates a private key from a seed. It will panic if -// len(seed) is not SeedSize. This function is provided for interoperability -// with RFC 8032. RFC 8032's private keys correspond to seeds in this -// package. -func NewKeyFromSeed(seed []byte) PrivateKey { - privateKey := make([]byte, PrivateKeySize) - newKeyFromSeed(privateKey, seed) - return privateKey -} - -func newKeyFromSeed(privateKey, seed []byte) { - if l := len(seed); l != SeedSize { - panic("ed448: bad seed length: " + strconv.Itoa(l)) - } - - var h [hashSize]byte - H := sha3.NewShake256() - _, _ = H.Write(seed) - _, _ = H.Read(h[:]) - s := &goldilocks.Scalar{} - deriveSecretScalar(s, h[:paramB]) - - copy(privateKey[:SeedSize], seed) - _ = goldilocks.Curve{}.ScalarBaseMult(s).ToBytes(privateKey[SeedSize:]) -} - -func signAll(signature []byte, privateKey PrivateKey, message, ctx []byte, preHash bool) { - if len(ctx) > ContextMaxSize { - panic(fmt.Errorf("ed448: bad context length: " + strconv.Itoa(len(ctx)))) - } - - H := sha3.NewShake256() - var PHM []byte - - if preHash { - var h [64]byte - _, _ = H.Write(message) - _, _ = H.Read(h[:]) - PHM = h[:] - H.Reset() - } else { - PHM = message - } - - // 1. Hash the 57-byte private key using SHAKE256(x, 114). - var h [hashSize]byte - _, _ = H.Write(privateKey[:SeedSize]) - _, _ = H.Read(h[:]) - s := &goldilocks.Scalar{} - deriveSecretScalar(s, h[:paramB]) - prefix := h[paramB:] - - // 2. Compute SHAKE256(dom4(F, C) || prefix || PH(M), 114). - var rPM [hashSize]byte - H.Reset() - - writeDom(&H, ctx, preHash) - - _, _ = H.Write(prefix) - _, _ = H.Write(PHM) - _, _ = H.Read(rPM[:]) - - // 3. Compute the point [r]B. - r := &goldilocks.Scalar{} - r.FromBytes(rPM[:]) - R := (&[paramB]byte{})[:] - if err := (goldilocks.Curve{}.ScalarBaseMult(r).ToBytes(R)); err != nil { - panic(err) - } - // 4. Compute SHAKE256(dom4(F, C) || R || A || PH(M), 114) - var hRAM [hashSize]byte - H.Reset() - - writeDom(&H, ctx, preHash) - - _, _ = H.Write(R) - _, _ = H.Write(privateKey[SeedSize:]) - _, _ = H.Write(PHM) - _, _ = H.Read(hRAM[:]) - - // 5. Compute S = (r + k * s) mod order. - k := &goldilocks.Scalar{} - k.FromBytes(hRAM[:]) - S := &goldilocks.Scalar{} - S.Mul(k, s) - S.Add(S, r) - - // 6. The signature is the concatenation of R and S. - copy(signature[:paramB], R[:]) - copy(signature[paramB:], S[:]) -} - -// Sign signs the message with privateKey and returns a signature. -// This function supports the signature variant defined in RFC-8032: Ed448, -// also known as the pure version of EdDSA. -// It will panic if len(privateKey) is not PrivateKeySize. -func Sign(priv PrivateKey, message []byte, ctx string) []byte { - signature := make([]byte, SignatureSize) - signAll(signature, priv, message, []byte(ctx), false) - return signature -} - -// SignPh creates a signature of a message given a keypair. -// This function supports the signature variant defined in RFC-8032: Ed448ph, -// meaning it internally hashes the message using SHAKE-256. -// Context could be passed to this function, which length should be no more than -// 255. It can be empty. -func SignPh(priv PrivateKey, message []byte, ctx string) []byte { - signature := make([]byte, SignatureSize) - signAll(signature, priv, message, []byte(ctx), true) - return signature -} - -func verify(public PublicKey, message, signature, ctx []byte, preHash bool) bool { - if len(public) != PublicKeySize || - len(signature) != SignatureSize || - len(ctx) > ContextMaxSize || - !isLessThanOrder(signature[paramB:]) { - return false - } - - P, err := goldilocks.FromBytes(public) - if err != nil { - return false - } - - H := sha3.NewShake256() - var PHM []byte - - if preHash { - var h [64]byte - _, _ = H.Write(message) - _, _ = H.Read(h[:]) - PHM = h[:] - H.Reset() - } else { - PHM = message - } - - var hRAM [hashSize]byte - R := signature[:paramB] - - writeDom(&H, ctx, preHash) - - _, _ = H.Write(R) - _, _ = H.Write(public) - _, _ = H.Write(PHM) - _, _ = H.Read(hRAM[:]) - - k := &goldilocks.Scalar{} - k.FromBytes(hRAM[:]) - S := &goldilocks.Scalar{} - S.FromBytes(signature[paramB:]) - - encR := (&[paramB]byte{})[:] - P.Neg() - _ = goldilocks.Curve{}.CombinedMult(S, k, P).ToBytes(encR) - return bytes.Equal(R, encR) -} - -// VerifyAny returns true if the signature is valid. Failure cases are invalid -// signature, or when the public key cannot be decoded. -// This function supports all the two signature variants defined in RFC-8032, -// namely Ed448 (or pure EdDSA) and Ed448Ph. -// The opts.HashFunc() must return zero, this can be achieved by passing -// crypto.Hash(0) as the value for opts. -// Use a SignerOptions struct to pass a context string for signing. -func VerifyAny(public PublicKey, message, signature []byte, opts crypto.SignerOpts) bool { - var ctx string - var scheme SchemeID - if o, ok := opts.(SignerOptions); ok { - ctx = o.Context - scheme = o.Scheme - } - - switch true { - case scheme == ED448 && opts.HashFunc() == crypto.Hash(0): - return Verify(public, message, signature, ctx) - case scheme == ED448Ph && opts.HashFunc() == crypto.Hash(0): - return VerifyPh(public, message, signature, ctx) - default: - return false - } -} - -// Verify returns true if the signature is valid. Failure cases are invalid -// signature, or when the public key cannot be decoded. -// This function supports the signature variant defined in RFC-8032: Ed448, -// also known as the pure version of EdDSA. -func Verify(public PublicKey, message, signature []byte, ctx string) bool { - return verify(public, message, signature, []byte(ctx), false) -} - -// VerifyPh returns true if the signature is valid. Failure cases are invalid -// signature, or when the public key cannot be decoded. -// This function supports the signature variant defined in RFC-8032: Ed448ph, -// meaning it internally hashes the message using SHAKE-256. -// Context could be passed to this function, which length should be no more than -// 255. It can be empty. -func VerifyPh(public PublicKey, message, signature []byte, ctx string) bool { - return verify(public, message, signature, []byte(ctx), true) -} - -func deriveSecretScalar(s *goldilocks.Scalar, h []byte) { - h[0] &= 0xFC // The two least significant bits of the first octet are cleared, - h[paramB-1] = 0x00 // all eight bits the last octet are cleared, and - h[paramB-2] |= 0x80 // the highest bit of the second to last octet is set. - s.FromBytes(h[:paramB]) -} - -// isLessThanOrder returns true if 0 <= x < order and if the last byte of x is zero. -func isLessThanOrder(x []byte) bool { - order := goldilocks.Curve{}.Order() - i := len(order) - 1 - for i > 0 && x[i] == order[i] { - i-- - } - return x[paramB-1] == 0 && x[i] < order[i] -} - -func writeDom(h io.Writer, ctx []byte, preHash bool) { - dom4 := "SigEd448" - _, _ = h.Write([]byte(dom4)) - - if preHash { - _, _ = h.Write([]byte{byte(0x01), byte(len(ctx))}) - } else { - _, _ = h.Write([]byte{byte(0x00), byte(len(ctx))}) - } - _, _ = h.Write(ctx) -} diff --git a/vendor/github.com/cloudflare/circl/sign/ed448/signapi.go b/vendor/github.com/cloudflare/circl/sign/ed448/signapi.go deleted file mode 100644 index 22da8bc0a5..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/ed448/signapi.go +++ /dev/null @@ -1,87 +0,0 @@ -package ed448 - -import ( - "crypto/rand" - "encoding/asn1" - - "github.com/cloudflare/circl/sign" -) - -var sch sign.Scheme = &scheme{} - -// Scheme returns a signature interface. -func Scheme() sign.Scheme { return sch } - -type scheme struct{} - -func (*scheme) Name() string { return "Ed448" } -func (*scheme) PublicKeySize() int { return PublicKeySize } -func (*scheme) PrivateKeySize() int { return PrivateKeySize } -func (*scheme) SignatureSize() int { return SignatureSize } -func (*scheme) SeedSize() int { return SeedSize } -func (*scheme) TLSIdentifier() uint { return 0x0808 } -func (*scheme) SupportsContext() bool { return true } -func (*scheme) Oid() asn1.ObjectIdentifier { - return asn1.ObjectIdentifier{1, 3, 101, 113} -} - -func (*scheme) GenerateKey() (sign.PublicKey, sign.PrivateKey, error) { - return GenerateKey(rand.Reader) -} - -func (*scheme) Sign( - sk sign.PrivateKey, - message []byte, - opts *sign.SignatureOpts, -) []byte { - priv, ok := sk.(PrivateKey) - if !ok { - panic(sign.ErrTypeMismatch) - } - ctx := "" - if opts != nil { - ctx = opts.Context - } - return Sign(priv, message, ctx) -} - -func (*scheme) Verify( - pk sign.PublicKey, - message, signature []byte, - opts *sign.SignatureOpts, -) bool { - pub, ok := pk.(PublicKey) - if !ok { - panic(sign.ErrTypeMismatch) - } - ctx := "" - if opts != nil { - ctx = opts.Context - } - return Verify(pub, message, signature, ctx) -} - -func (*scheme) DeriveKey(seed []byte) (sign.PublicKey, sign.PrivateKey) { - privateKey := NewKeyFromSeed(seed) - publicKey := make(PublicKey, PublicKeySize) - copy(publicKey, privateKey[SeedSize:]) - return publicKey, privateKey -} - -func (*scheme) UnmarshalBinaryPublicKey(buf []byte) (sign.PublicKey, error) { - if len(buf) < PublicKeySize { - return nil, sign.ErrPubKeySize - } - pub := make(PublicKey, PublicKeySize) - copy(pub, buf[:PublicKeySize]) - return pub, nil -} - -func (*scheme) UnmarshalBinaryPrivateKey(buf []byte) (sign.PrivateKey, error) { - if len(buf) < PrivateKeySize { - return nil, sign.ErrPrivKeySize - } - priv := make(PrivateKey, PrivateKeySize) - copy(priv, buf[:PrivateKeySize]) - return priv, nil -} diff --git a/vendor/github.com/cloudflare/circl/sign/sign.go b/vendor/github.com/cloudflare/circl/sign/sign.go deleted file mode 100644 index 15bbad761b..0000000000 --- a/vendor/github.com/cloudflare/circl/sign/sign.go +++ /dev/null @@ -1,111 +0,0 @@ -// Package sign provides unified interfaces for signature schemes. -// -// A register of schemes is available in the package -// -// github.com/cloudflare/circl/sign/schemes -package sign - -import ( - "crypto" - "encoding" - "errors" -) - -type SignatureOpts struct { - // If non-empty, includes the given context in the signature if supported - // and will cause an error during signing otherwise. - Context string -} - -// A public key is used to verify a signature set by the corresponding private -// key. -type PublicKey interface { - // Returns the signature scheme for this public key. - Scheme() Scheme - Equal(crypto.PublicKey) bool - encoding.BinaryMarshaler - crypto.PublicKey -} - -// A private key allows one to create signatures. -type PrivateKey interface { - // Returns the signature scheme for this private key. - Scheme() Scheme - - Equal(crypto.PrivateKey) bool - // For compatibility with Go standard library - crypto.Signer - crypto.PrivateKey - encoding.BinaryMarshaler -} - -// A Scheme represents a specific instance of a signature scheme. -type Scheme interface { - // Name of the scheme. - Name() string - - // GenerateKey creates a new key-pair. - GenerateKey() (PublicKey, PrivateKey, error) - - // Creates a signature using the PrivateKey on the given message and - // returns the signature. opts are additional options which can be nil. - // - // Panics if key is nil or wrong type or opts context is not supported. - Sign(sk PrivateKey, message []byte, opts *SignatureOpts) []byte - - // Checks whether the given signature is a valid signature set by - // the private key corresponding to the given public key on the - // given message. opts are additional options which can be nil. - // - // Panics if key is nil or wrong type or opts context is not supported. - Verify(pk PublicKey, message []byte, signature []byte, opts *SignatureOpts) bool - - // Deterministically derives a keypair from a seed. If you're unsure, - // you're better off using GenerateKey(). - // - // Panics if seed is not of length SeedSize(). - DeriveKey(seed []byte) (PublicKey, PrivateKey) - - // Unmarshals a PublicKey from the provided buffer. - UnmarshalBinaryPublicKey([]byte) (PublicKey, error) - - // Unmarshals a PublicKey from the provided buffer. - UnmarshalBinaryPrivateKey([]byte) (PrivateKey, error) - - // Size of binary marshalled public keys. - PublicKeySize() int - - // Size of binary marshalled public keys. - PrivateKeySize() int - - // Size of signatures. - SignatureSize() int - - // Size of seeds. - SeedSize() int - - // Returns whether contexts are supported. - SupportsContext() bool -} - -var ( - // ErrTypeMismatch is the error used if types of, for instance, private - // and public keys don't match. - ErrTypeMismatch = errors.New("types mismatch") - - // ErrSeedSize is the error used if the provided seed is of the wrong - // size. - ErrSeedSize = errors.New("wrong seed size") - - // ErrPubKeySize is the error used if the provided public key is of - // the wrong size. - ErrPubKeySize = errors.New("wrong size for public key") - - // ErrPrivKeySize is the error used if the provided private key is of - // the wrong size. - ErrPrivKeySize = errors.New("wrong size for private key") - - // ErrContextNotSupported is the error used if a context is not - // supported. - ErrContextNotSupported = errors.New("context not supported") -) diff --git a/vendor/golang.org/x/crypto/hkdf/hkdf.go b/vendor/golang.org/x/crypto/hkdf/hkdf.go deleted file mode 100644 index dda3f143be..0000000000 --- a/vendor/golang.org/x/crypto/hkdf/hkdf.go +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation -// Function (HKDF) as defined in RFC 5869. -// -// HKDF is a cryptographic key derivation function (KDF) with the goal of -// expanding limited input keying material into one or more cryptographically -// strong secret keys. -package hkdf // import "golang.org/x/crypto/hkdf" - -import ( - "crypto/hmac" - "errors" - "hash" - "io" -) - -// Extract generates a pseudorandom key for use with Expand from an input secret -// and an optional independent salt. -// -// Only use this function if you need to reuse the extracted key with multiple -// Expand invocations and different context values. Most common scenarios, -// including the generation of multiple keys, should use New instead. -func Extract(hash func() hash.Hash, secret, salt []byte) []byte { - if salt == nil { - salt = make([]byte, hash().Size()) - } - extractor := hmac.New(hash, salt) - extractor.Write(secret) - return extractor.Sum(nil) -} - -type hkdf struct { - expander hash.Hash - size int - - info []byte - counter byte - - prev []byte - buf []byte -} - -func (f *hkdf) Read(p []byte) (int, error) { - // Check whether enough data can be generated - need := len(p) - remains := len(f.buf) + int(255-f.counter+1)*f.size - if remains < need { - return 0, errors.New("hkdf: entropy limit reached") - } - // Read any leftover from the buffer - n := copy(p, f.buf) - p = p[n:] - - // Fill the rest of the buffer - for len(p) > 0 { - f.expander.Reset() - f.expander.Write(f.prev) - f.expander.Write(f.info) - f.expander.Write([]byte{f.counter}) - f.prev = f.expander.Sum(f.prev[:0]) - f.counter++ - - // Copy the new batch into p - f.buf = f.prev - n = copy(p, f.buf) - p = p[n:] - } - // Save leftovers for next run - f.buf = f.buf[n:] - - return need, nil -} - -// Expand returns a Reader, from which keys can be read, using the given -// pseudorandom key and optional context info, skipping the extraction step. -// -// The pseudorandomKey should have been generated by Extract, or be a uniformly -// random or pseudorandom cryptographically strong key. See RFC 5869, Section -// 3.3. Most common scenarios will want to use New instead. -func Expand(hash func() hash.Hash, pseudorandomKey, info []byte) io.Reader { - expander := hmac.New(hash, pseudorandomKey) - return &hkdf{expander, expander.Size(), info, 1, nil, nil} -} - -// New returns a Reader, from which keys can be read, using the given hash, -// secret, salt and context info. Salt and info can be nil. -func New(hash func() hash.Hash, secret, salt, info []byte) io.Reader { - prk := Extract(hash, secret, salt) - return Expand(hash, prk, info) -} diff --git a/vendor/golang.org/x/crypto/sha3/doc.go b/vendor/golang.org/x/crypto/sha3/doc.go deleted file mode 100644 index decd8cf9bf..0000000000 --- a/vendor/golang.org/x/crypto/sha3/doc.go +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package sha3 implements the SHA-3 fixed-output-length hash functions and -// the SHAKE variable-output-length hash functions defined by FIPS-202. -// -// Both types of hash function use the "sponge" construction and the Keccak -// permutation. For a detailed specification see http://keccak.noekeon.org/ -// -// # Guidance -// -// If you aren't sure what function you need, use SHAKE256 with at least 64 -// bytes of output. The SHAKE instances are faster than the SHA3 instances; -// the latter have to allocate memory to conform to the hash.Hash interface. -// -// If you need a secret-key MAC (message authentication code), prepend the -// secret key to the input, hash with SHAKE256 and read at least 32 bytes of -// output. -// -// # Security strengths -// -// The SHA3-x (x equals 224, 256, 384, or 512) functions have a security -// strength against preimage attacks of x bits. Since they only produce "x" -// bits of output, their collision-resistance is only "x/2" bits. -// -// The SHAKE-256 and -128 functions have a generic security strength of 256 and -// 128 bits against all attacks, provided that at least 2x bits of their output -// is used. Requesting more than 64 or 32 bytes of output, respectively, does -// not increase the collision-resistance of the SHAKE functions. -// -// # The sponge construction -// -// A sponge builds a pseudo-random function from a public pseudo-random -// permutation, by applying the permutation to a state of "rate + capacity" -// bytes, but hiding "capacity" of the bytes. -// -// A sponge starts out with a zero state. To hash an input using a sponge, up -// to "rate" bytes of the input are XORed into the sponge's state. The sponge -// is then "full" and the permutation is applied to "empty" it. This process is -// repeated until all the input has been "absorbed". The input is then padded. -// The digest is "squeezed" from the sponge in the same way, except that output -// is copied out instead of input being XORed in. -// -// A sponge is parameterized by its generic security strength, which is equal -// to half its capacity; capacity + rate is equal to the permutation's width. -// Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means -// that the security strength of a sponge instance is equal to (1600 - bitrate) / 2. -// -// # Recommendations -// -// The SHAKE functions are recommended for most new uses. They can produce -// output of arbitrary length. SHAKE256, with an output length of at least -// 64 bytes, provides 256-bit security against all attacks. The Keccak team -// recommends it for most applications upgrading from SHA2-512. (NIST chose a -// much stronger, but much slower, sponge instance for SHA3-512.) -// -// The SHA-3 functions are "drop-in" replacements for the SHA-2 functions. -// They produce output of the same length, with the same security strengths -// against all attacks. This means, in particular, that SHA3-256 only has -// 128-bit collision resistance, because its output length is 32 bytes. -package sha3 // import "golang.org/x/crypto/sha3" diff --git a/vendor/golang.org/x/crypto/sha3/hashes.go b/vendor/golang.org/x/crypto/sha3/hashes.go deleted file mode 100644 index 0d8043fd2a..0000000000 --- a/vendor/golang.org/x/crypto/sha3/hashes.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// This file provides functions for creating instances of the SHA-3 -// and SHAKE hash functions, as well as utility functions for hashing -// bytes. - -import ( - "hash" -) - -// New224 creates a new SHA3-224 hash. -// Its generic security strength is 224 bits against preimage attacks, -// and 112 bits against collision attacks. -func New224() hash.Hash { - if h := new224Asm(); h != nil { - return h - } - return &state{rate: 144, outputLen: 28, dsbyte: 0x06} -} - -// New256 creates a new SHA3-256 hash. -// Its generic security strength is 256 bits against preimage attacks, -// and 128 bits against collision attacks. -func New256() hash.Hash { - if h := new256Asm(); h != nil { - return h - } - return &state{rate: 136, outputLen: 32, dsbyte: 0x06} -} - -// New384 creates a new SHA3-384 hash. -// Its generic security strength is 384 bits against preimage attacks, -// and 192 bits against collision attacks. -func New384() hash.Hash { - if h := new384Asm(); h != nil { - return h - } - return &state{rate: 104, outputLen: 48, dsbyte: 0x06} -} - -// New512 creates a new SHA3-512 hash. -// Its generic security strength is 512 bits against preimage attacks, -// and 256 bits against collision attacks. -func New512() hash.Hash { - if h := new512Asm(); h != nil { - return h - } - return &state{rate: 72, outputLen: 64, dsbyte: 0x06} -} - -// NewLegacyKeccak256 creates a new Keccak-256 hash. -// -// Only use this function if you require compatibility with an existing cryptosystem -// that uses non-standard padding. All other users should use New256 instead. -func NewLegacyKeccak256() hash.Hash { return &state{rate: 136, outputLen: 32, dsbyte: 0x01} } - -// NewLegacyKeccak512 creates a new Keccak-512 hash. -// -// Only use this function if you require compatibility with an existing cryptosystem -// that uses non-standard padding. All other users should use New512 instead. -func NewLegacyKeccak512() hash.Hash { return &state{rate: 72, outputLen: 64, dsbyte: 0x01} } - -// Sum224 returns the SHA3-224 digest of the data. -func Sum224(data []byte) (digest [28]byte) { - h := New224() - h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum256 returns the SHA3-256 digest of the data. -func Sum256(data []byte) (digest [32]byte) { - h := New256() - h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum384 returns the SHA3-384 digest of the data. -func Sum384(data []byte) (digest [48]byte) { - h := New384() - h.Write(data) - h.Sum(digest[:0]) - return -} - -// Sum512 returns the SHA3-512 digest of the data. -func Sum512(data []byte) (digest [64]byte) { - h := New512() - h.Write(data) - h.Sum(digest[:0]) - return -} diff --git a/vendor/golang.org/x/crypto/sha3/hashes_generic.go b/vendor/golang.org/x/crypto/sha3/hashes_generic.go deleted file mode 100644 index c74fc20fcb..0000000000 --- a/vendor/golang.org/x/crypto/sha3/hashes_generic.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !gc || purego || !s390x -// +build !gc purego !s390x - -package sha3 - -import ( - "hash" -) - -// new224Asm returns an assembly implementation of SHA3-224 if available, -// otherwise it returns nil. -func new224Asm() hash.Hash { return nil } - -// new256Asm returns an assembly implementation of SHA3-256 if available, -// otherwise it returns nil. -func new256Asm() hash.Hash { return nil } - -// new384Asm returns an assembly implementation of SHA3-384 if available, -// otherwise it returns nil. -func new384Asm() hash.Hash { return nil } - -// new512Asm returns an assembly implementation of SHA3-512 if available, -// otherwise it returns nil. -func new512Asm() hash.Hash { return nil } diff --git a/vendor/golang.org/x/crypto/sha3/keccakf.go b/vendor/golang.org/x/crypto/sha3/keccakf.go deleted file mode 100644 index 0f4ae8bacf..0000000000 --- a/vendor/golang.org/x/crypto/sha3/keccakf.go +++ /dev/null @@ -1,413 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !amd64 || purego || !gc -// +build !amd64 purego !gc - -package sha3 - -// rc stores the round constants for use in the ι step. -var rc = [24]uint64{ - 0x0000000000000001, - 0x0000000000008082, - 0x800000000000808A, - 0x8000000080008000, - 0x000000000000808B, - 0x0000000080000001, - 0x8000000080008081, - 0x8000000000008009, - 0x000000000000008A, - 0x0000000000000088, - 0x0000000080008009, - 0x000000008000000A, - 0x000000008000808B, - 0x800000000000008B, - 0x8000000000008089, - 0x8000000000008003, - 0x8000000000008002, - 0x8000000000000080, - 0x000000000000800A, - 0x800000008000000A, - 0x8000000080008081, - 0x8000000000008080, - 0x0000000080000001, - 0x8000000080008008, -} - -// keccakF1600 applies the Keccak permutation to a 1600b-wide -// state represented as a slice of 25 uint64s. -func keccakF1600(a *[25]uint64) { - // Implementation translated from Keccak-inplace.c - // in the keccak reference code. - var t, bc0, bc1, bc2, bc3, bc4, d0, d1, d2, d3, d4 uint64 - - for i := 0; i < 24; i += 4 { - // Combines the 5 steps in each round into 2 steps. - // Unrolls 4 rounds per loop and spreads some steps across rounds. - - // Round 1 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[6] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[12] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[18] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[24] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i] - a[6] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[16] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[22] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[3] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[10] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[1] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[7] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[19] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[20] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[11] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[23] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[4] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[5] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[2] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[8] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[14] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[15] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - // Round 2 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[16] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[7] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[23] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[14] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+1] - a[16] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[11] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[2] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[18] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[20] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[6] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[22] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[4] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[15] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[1] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[8] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[24] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[10] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[12] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[3] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[19] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[5] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - // Round 3 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[11] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[22] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[8] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[19] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+2] - a[11] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[1] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[12] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[23] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[15] = bc0 ^ (bc2 &^ bc1) - a[1] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[16] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[2] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[24] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[5] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[6] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[3] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[14] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[20] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[7] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[18] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[4] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[10] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - // Round 4 - bc0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] - bc1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] - bc2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] - bc3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] - bc4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24] - d0 = bc4 ^ (bc1<<1 | bc1>>63) - d1 = bc0 ^ (bc2<<1 | bc2>>63) - d2 = bc1 ^ (bc3<<1 | bc3>>63) - d3 = bc2 ^ (bc4<<1 | bc4>>63) - d4 = bc3 ^ (bc0<<1 | bc0>>63) - - bc0 = a[0] ^ d0 - t = a[1] ^ d1 - bc1 = t<<44 | t>>(64-44) - t = a[2] ^ d2 - bc2 = t<<43 | t>>(64-43) - t = a[3] ^ d3 - bc3 = t<<21 | t>>(64-21) - t = a[4] ^ d4 - bc4 = t<<14 | t>>(64-14) - a[0] = bc0 ^ (bc2 &^ bc1) ^ rc[i+3] - a[1] = bc1 ^ (bc3 &^ bc2) - a[2] = bc2 ^ (bc4 &^ bc3) - a[3] = bc3 ^ (bc0 &^ bc4) - a[4] = bc4 ^ (bc1 &^ bc0) - - t = a[5] ^ d0 - bc2 = t<<3 | t>>(64-3) - t = a[6] ^ d1 - bc3 = t<<45 | t>>(64-45) - t = a[7] ^ d2 - bc4 = t<<61 | t>>(64-61) - t = a[8] ^ d3 - bc0 = t<<28 | t>>(64-28) - t = a[9] ^ d4 - bc1 = t<<20 | t>>(64-20) - a[5] = bc0 ^ (bc2 &^ bc1) - a[6] = bc1 ^ (bc3 &^ bc2) - a[7] = bc2 ^ (bc4 &^ bc3) - a[8] = bc3 ^ (bc0 &^ bc4) - a[9] = bc4 ^ (bc1 &^ bc0) - - t = a[10] ^ d0 - bc4 = t<<18 | t>>(64-18) - t = a[11] ^ d1 - bc0 = t<<1 | t>>(64-1) - t = a[12] ^ d2 - bc1 = t<<6 | t>>(64-6) - t = a[13] ^ d3 - bc2 = t<<25 | t>>(64-25) - t = a[14] ^ d4 - bc3 = t<<8 | t>>(64-8) - a[10] = bc0 ^ (bc2 &^ bc1) - a[11] = bc1 ^ (bc3 &^ bc2) - a[12] = bc2 ^ (bc4 &^ bc3) - a[13] = bc3 ^ (bc0 &^ bc4) - a[14] = bc4 ^ (bc1 &^ bc0) - - t = a[15] ^ d0 - bc1 = t<<36 | t>>(64-36) - t = a[16] ^ d1 - bc2 = t<<10 | t>>(64-10) - t = a[17] ^ d2 - bc3 = t<<15 | t>>(64-15) - t = a[18] ^ d3 - bc4 = t<<56 | t>>(64-56) - t = a[19] ^ d4 - bc0 = t<<27 | t>>(64-27) - a[15] = bc0 ^ (bc2 &^ bc1) - a[16] = bc1 ^ (bc3 &^ bc2) - a[17] = bc2 ^ (bc4 &^ bc3) - a[18] = bc3 ^ (bc0 &^ bc4) - a[19] = bc4 ^ (bc1 &^ bc0) - - t = a[20] ^ d0 - bc3 = t<<41 | t>>(64-41) - t = a[21] ^ d1 - bc4 = t<<2 | t>>(64-2) - t = a[22] ^ d2 - bc0 = t<<62 | t>>(64-62) - t = a[23] ^ d3 - bc1 = t<<55 | t>>(64-55) - t = a[24] ^ d4 - bc2 = t<<39 | t>>(64-39) - a[20] = bc0 ^ (bc2 &^ bc1) - a[21] = bc1 ^ (bc3 &^ bc2) - a[22] = bc2 ^ (bc4 &^ bc3) - a[23] = bc3 ^ (bc0 &^ bc4) - a[24] = bc4 ^ (bc1 &^ bc0) - } -} diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go deleted file mode 100644 index 248a38241f..0000000000 --- a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && !purego && gc -// +build amd64,!purego,gc - -package sha3 - -// This function is implemented in keccakf_amd64.s. - -//go:noescape - -func keccakF1600(a *[25]uint64) diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s deleted file mode 100644 index 4cfa54383b..0000000000 --- a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s +++ /dev/null @@ -1,391 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 && !purego && gc -// +build amd64,!purego,gc - -// This code was translated into a form compatible with 6a from the public -// domain sources at https://github.com/gvanas/KeccakCodePackage - -// Offsets in state -#define _ba (0*8) -#define _be (1*8) -#define _bi (2*8) -#define _bo (3*8) -#define _bu (4*8) -#define _ga (5*8) -#define _ge (6*8) -#define _gi (7*8) -#define _go (8*8) -#define _gu (9*8) -#define _ka (10*8) -#define _ke (11*8) -#define _ki (12*8) -#define _ko (13*8) -#define _ku (14*8) -#define _ma (15*8) -#define _me (16*8) -#define _mi (17*8) -#define _mo (18*8) -#define _mu (19*8) -#define _sa (20*8) -#define _se (21*8) -#define _si (22*8) -#define _so (23*8) -#define _su (24*8) - -// Temporary registers -#define rT1 AX - -// Round vars -#define rpState DI -#define rpStack SP - -#define rDa BX -#define rDe CX -#define rDi DX -#define rDo R8 -#define rDu R9 - -#define rBa R10 -#define rBe R11 -#define rBi R12 -#define rBo R13 -#define rBu R14 - -#define rCa SI -#define rCe BP -#define rCi rBi -#define rCo rBo -#define rCu R15 - -#define MOVQ_RBI_RCE MOVQ rBi, rCe -#define XORQ_RT1_RCA XORQ rT1, rCa -#define XORQ_RT1_RCE XORQ rT1, rCe -#define XORQ_RBA_RCU XORQ rBa, rCu -#define XORQ_RBE_RCU XORQ rBe, rCu -#define XORQ_RDU_RCU XORQ rDu, rCu -#define XORQ_RDA_RCA XORQ rDa, rCa -#define XORQ_RDE_RCE XORQ rDe, rCe - -#define mKeccakRound(iState, oState, rc, B_RBI_RCE, G_RT1_RCA, G_RT1_RCE, G_RBA_RCU, K_RT1_RCA, K_RT1_RCE, K_RBA_RCU, M_RT1_RCA, M_RT1_RCE, M_RBE_RCU, S_RDU_RCU, S_RDA_RCA, S_RDE_RCE) \ - /* Prepare round */ \ - MOVQ rCe, rDa; \ - ROLQ $1, rDa; \ - \ - MOVQ _bi(iState), rCi; \ - XORQ _gi(iState), rDi; \ - XORQ rCu, rDa; \ - XORQ _ki(iState), rCi; \ - XORQ _mi(iState), rDi; \ - XORQ rDi, rCi; \ - \ - MOVQ rCi, rDe; \ - ROLQ $1, rDe; \ - \ - MOVQ _bo(iState), rCo; \ - XORQ _go(iState), rDo; \ - XORQ rCa, rDe; \ - XORQ _ko(iState), rCo; \ - XORQ _mo(iState), rDo; \ - XORQ rDo, rCo; \ - \ - MOVQ rCo, rDi; \ - ROLQ $1, rDi; \ - \ - MOVQ rCu, rDo; \ - XORQ rCe, rDi; \ - ROLQ $1, rDo; \ - \ - MOVQ rCa, rDu; \ - XORQ rCi, rDo; \ - ROLQ $1, rDu; \ - \ - /* Result b */ \ - MOVQ _ba(iState), rBa; \ - MOVQ _ge(iState), rBe; \ - XORQ rCo, rDu; \ - MOVQ _ki(iState), rBi; \ - MOVQ _mo(iState), rBo; \ - MOVQ _su(iState), rBu; \ - XORQ rDe, rBe; \ - ROLQ $44, rBe; \ - XORQ rDi, rBi; \ - XORQ rDa, rBa; \ - ROLQ $43, rBi; \ - \ - MOVQ rBe, rCa; \ - MOVQ rc, rT1; \ - ORQ rBi, rCa; \ - XORQ rBa, rT1; \ - XORQ rT1, rCa; \ - MOVQ rCa, _ba(oState); \ - \ - XORQ rDu, rBu; \ - ROLQ $14, rBu; \ - MOVQ rBa, rCu; \ - ANDQ rBe, rCu; \ - XORQ rBu, rCu; \ - MOVQ rCu, _bu(oState); \ - \ - XORQ rDo, rBo; \ - ROLQ $21, rBo; \ - MOVQ rBo, rT1; \ - ANDQ rBu, rT1; \ - XORQ rBi, rT1; \ - MOVQ rT1, _bi(oState); \ - \ - NOTQ rBi; \ - ORQ rBa, rBu; \ - ORQ rBo, rBi; \ - XORQ rBo, rBu; \ - XORQ rBe, rBi; \ - MOVQ rBu, _bo(oState); \ - MOVQ rBi, _be(oState); \ - B_RBI_RCE; \ - \ - /* Result g */ \ - MOVQ _gu(iState), rBe; \ - XORQ rDu, rBe; \ - MOVQ _ka(iState), rBi; \ - ROLQ $20, rBe; \ - XORQ rDa, rBi; \ - ROLQ $3, rBi; \ - MOVQ _bo(iState), rBa; \ - MOVQ rBe, rT1; \ - ORQ rBi, rT1; \ - XORQ rDo, rBa; \ - MOVQ _me(iState), rBo; \ - MOVQ _si(iState), rBu; \ - ROLQ $28, rBa; \ - XORQ rBa, rT1; \ - MOVQ rT1, _ga(oState); \ - G_RT1_RCA; \ - \ - XORQ rDe, rBo; \ - ROLQ $45, rBo; \ - MOVQ rBi, rT1; \ - ANDQ rBo, rT1; \ - XORQ rBe, rT1; \ - MOVQ rT1, _ge(oState); \ - G_RT1_RCE; \ - \ - XORQ rDi, rBu; \ - ROLQ $61, rBu; \ - MOVQ rBu, rT1; \ - ORQ rBa, rT1; \ - XORQ rBo, rT1; \ - MOVQ rT1, _go(oState); \ - \ - ANDQ rBe, rBa; \ - XORQ rBu, rBa; \ - MOVQ rBa, _gu(oState); \ - NOTQ rBu; \ - G_RBA_RCU; \ - \ - ORQ rBu, rBo; \ - XORQ rBi, rBo; \ - MOVQ rBo, _gi(oState); \ - \ - /* Result k */ \ - MOVQ _be(iState), rBa; \ - MOVQ _gi(iState), rBe; \ - MOVQ _ko(iState), rBi; \ - MOVQ _mu(iState), rBo; \ - MOVQ _sa(iState), rBu; \ - XORQ rDi, rBe; \ - ROLQ $6, rBe; \ - XORQ rDo, rBi; \ - ROLQ $25, rBi; \ - MOVQ rBe, rT1; \ - ORQ rBi, rT1; \ - XORQ rDe, rBa; \ - ROLQ $1, rBa; \ - XORQ rBa, rT1; \ - MOVQ rT1, _ka(oState); \ - K_RT1_RCA; \ - \ - XORQ rDu, rBo; \ - ROLQ $8, rBo; \ - MOVQ rBi, rT1; \ - ANDQ rBo, rT1; \ - XORQ rBe, rT1; \ - MOVQ rT1, _ke(oState); \ - K_RT1_RCE; \ - \ - XORQ rDa, rBu; \ - ROLQ $18, rBu; \ - NOTQ rBo; \ - MOVQ rBo, rT1; \ - ANDQ rBu, rT1; \ - XORQ rBi, rT1; \ - MOVQ rT1, _ki(oState); \ - \ - MOVQ rBu, rT1; \ - ORQ rBa, rT1; \ - XORQ rBo, rT1; \ - MOVQ rT1, _ko(oState); \ - \ - ANDQ rBe, rBa; \ - XORQ rBu, rBa; \ - MOVQ rBa, _ku(oState); \ - K_RBA_RCU; \ - \ - /* Result m */ \ - MOVQ _ga(iState), rBe; \ - XORQ rDa, rBe; \ - MOVQ _ke(iState), rBi; \ - ROLQ $36, rBe; \ - XORQ rDe, rBi; \ - MOVQ _bu(iState), rBa; \ - ROLQ $10, rBi; \ - MOVQ rBe, rT1; \ - MOVQ _mi(iState), rBo; \ - ANDQ rBi, rT1; \ - XORQ rDu, rBa; \ - MOVQ _so(iState), rBu; \ - ROLQ $27, rBa; \ - XORQ rBa, rT1; \ - MOVQ rT1, _ma(oState); \ - M_RT1_RCA; \ - \ - XORQ rDi, rBo; \ - ROLQ $15, rBo; \ - MOVQ rBi, rT1; \ - ORQ rBo, rT1; \ - XORQ rBe, rT1; \ - MOVQ rT1, _me(oState); \ - M_RT1_RCE; \ - \ - XORQ rDo, rBu; \ - ROLQ $56, rBu; \ - NOTQ rBo; \ - MOVQ rBo, rT1; \ - ORQ rBu, rT1; \ - XORQ rBi, rT1; \ - MOVQ rT1, _mi(oState); \ - \ - ORQ rBa, rBe; \ - XORQ rBu, rBe; \ - MOVQ rBe, _mu(oState); \ - \ - ANDQ rBa, rBu; \ - XORQ rBo, rBu; \ - MOVQ rBu, _mo(oState); \ - M_RBE_RCU; \ - \ - /* Result s */ \ - MOVQ _bi(iState), rBa; \ - MOVQ _go(iState), rBe; \ - MOVQ _ku(iState), rBi; \ - XORQ rDi, rBa; \ - MOVQ _ma(iState), rBo; \ - ROLQ $62, rBa; \ - XORQ rDo, rBe; \ - MOVQ _se(iState), rBu; \ - ROLQ $55, rBe; \ - \ - XORQ rDu, rBi; \ - MOVQ rBa, rDu; \ - XORQ rDe, rBu; \ - ROLQ $2, rBu; \ - ANDQ rBe, rDu; \ - XORQ rBu, rDu; \ - MOVQ rDu, _su(oState); \ - \ - ROLQ $39, rBi; \ - S_RDU_RCU; \ - NOTQ rBe; \ - XORQ rDa, rBo; \ - MOVQ rBe, rDa; \ - ANDQ rBi, rDa; \ - XORQ rBa, rDa; \ - MOVQ rDa, _sa(oState); \ - S_RDA_RCA; \ - \ - ROLQ $41, rBo; \ - MOVQ rBi, rDe; \ - ORQ rBo, rDe; \ - XORQ rBe, rDe; \ - MOVQ rDe, _se(oState); \ - S_RDE_RCE; \ - \ - MOVQ rBo, rDi; \ - MOVQ rBu, rDo; \ - ANDQ rBu, rDi; \ - ORQ rBa, rDo; \ - XORQ rBi, rDi; \ - XORQ rBo, rDo; \ - MOVQ rDi, _si(oState); \ - MOVQ rDo, _so(oState) \ - -// func keccakF1600(state *[25]uint64) -TEXT ·keccakF1600(SB), 0, $200-8 - MOVQ state+0(FP), rpState - - // Convert the user state into an internal state - NOTQ _be(rpState) - NOTQ _bi(rpState) - NOTQ _go(rpState) - NOTQ _ki(rpState) - NOTQ _mi(rpState) - NOTQ _sa(rpState) - - // Execute the KeccakF permutation - MOVQ _ba(rpState), rCa - MOVQ _be(rpState), rCe - MOVQ _bu(rpState), rCu - - XORQ _ga(rpState), rCa - XORQ _ge(rpState), rCe - XORQ _gu(rpState), rCu - - XORQ _ka(rpState), rCa - XORQ _ke(rpState), rCe - XORQ _ku(rpState), rCu - - XORQ _ma(rpState), rCa - XORQ _me(rpState), rCe - XORQ _mu(rpState), rCu - - XORQ _sa(rpState), rCa - XORQ _se(rpState), rCe - MOVQ _si(rpState), rDi - MOVQ _so(rpState), rDo - XORQ _su(rpState), rCu - - mKeccakRound(rpState, rpStack, $0x0000000000000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x0000000000008082, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x800000000000808a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000080008000, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000000000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000000000008a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x0000000000000088, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x0000000080008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x000000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000008000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x800000000000008b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000000008089, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000008003, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000000008002, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000000080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000000000800a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x800000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000008080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000080008008, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP) - - // Revert the internal state to the user state - NOTQ _be(rpState) - NOTQ _bi(rpState) - NOTQ _go(rpState) - NOTQ _ki(rpState) - NOTQ _mi(rpState) - NOTQ _sa(rpState) - - RET diff --git a/vendor/golang.org/x/crypto/sha3/register.go b/vendor/golang.org/x/crypto/sha3/register.go deleted file mode 100644 index 8b4453aac3..0000000000 --- a/vendor/golang.org/x/crypto/sha3/register.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.4 -// +build go1.4 - -package sha3 - -import ( - "crypto" -) - -func init() { - crypto.RegisterHash(crypto.SHA3_224, New224) - crypto.RegisterHash(crypto.SHA3_256, New256) - crypto.RegisterHash(crypto.SHA3_384, New384) - crypto.RegisterHash(crypto.SHA3_512, New512) -} diff --git a/vendor/golang.org/x/crypto/sha3/sha3.go b/vendor/golang.org/x/crypto/sha3/sha3.go deleted file mode 100644 index fa182beb40..0000000000 --- a/vendor/golang.org/x/crypto/sha3/sha3.go +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// spongeDirection indicates the direction bytes are flowing through the sponge. -type spongeDirection int - -const ( - // spongeAbsorbing indicates that the sponge is absorbing input. - spongeAbsorbing spongeDirection = iota - // spongeSqueezing indicates that the sponge is being squeezed. - spongeSqueezing -) - -const ( - // maxRate is the maximum size of the internal buffer. SHAKE-256 - // currently needs the largest buffer. - maxRate = 168 -) - -type state struct { - // Generic sponge components. - a [25]uint64 // main state of the hash - buf []byte // points into storage - rate int // the number of bytes of state to use - - // dsbyte contains the "domain separation" bits and the first bit of - // the padding. Sections 6.1 and 6.2 of [1] separate the outputs of the - // SHA-3 and SHAKE functions by appending bitstrings to the message. - // Using a little-endian bit-ordering convention, these are "01" for SHA-3 - // and "1111" for SHAKE, or 00000010b and 00001111b, respectively. Then the - // padding rule from section 5.1 is applied to pad the message to a multiple - // of the rate, which involves adding a "1" bit, zero or more "0" bits, and - // a final "1" bit. We merge the first "1" bit from the padding into dsbyte, - // giving 00000110b (0x06) and 00011111b (0x1f). - // [1] http://csrc.nist.gov/publications/drafts/fips-202/fips_202_draft.pdf - // "Draft FIPS 202: SHA-3 Standard: Permutation-Based Hash and - // Extendable-Output Functions (May 2014)" - dsbyte byte - - storage storageBuf - - // Specific to SHA-3 and SHAKE. - outputLen int // the default output size in bytes - state spongeDirection // whether the sponge is absorbing or squeezing -} - -// BlockSize returns the rate of sponge underlying this hash function. -func (d *state) BlockSize() int { return d.rate } - -// Size returns the output size of the hash function in bytes. -func (d *state) Size() int { return d.outputLen } - -// Reset clears the internal state by zeroing the sponge state and -// the byte buffer, and setting Sponge.state to absorbing. -func (d *state) Reset() { - // Zero the permutation's state. - for i := range d.a { - d.a[i] = 0 - } - d.state = spongeAbsorbing - d.buf = d.storage.asBytes()[:0] -} - -func (d *state) clone() *state { - ret := *d - if ret.state == spongeAbsorbing { - ret.buf = ret.storage.asBytes()[:len(ret.buf)] - } else { - ret.buf = ret.storage.asBytes()[d.rate-cap(d.buf) : d.rate] - } - - return &ret -} - -// permute applies the KeccakF-1600 permutation. It handles -// any input-output buffering. -func (d *state) permute() { - switch d.state { - case spongeAbsorbing: - // If we're absorbing, we need to xor the input into the state - // before applying the permutation. - xorIn(d, d.buf) - d.buf = d.storage.asBytes()[:0] - keccakF1600(&d.a) - case spongeSqueezing: - // If we're squeezing, we need to apply the permutation before - // copying more output. - keccakF1600(&d.a) - d.buf = d.storage.asBytes()[:d.rate] - copyOut(d, d.buf) - } -} - -// pads appends the domain separation bits in dsbyte, applies -// the multi-bitrate 10..1 padding rule, and permutes the state. -func (d *state) padAndPermute(dsbyte byte) { - if d.buf == nil { - d.buf = d.storage.asBytes()[:0] - } - // Pad with this instance's domain-separator bits. We know that there's - // at least one byte of space in d.buf because, if it were full, - // permute would have been called to empty it. dsbyte also contains the - // first one bit for the padding. See the comment in the state struct. - d.buf = append(d.buf, dsbyte) - zerosStart := len(d.buf) - d.buf = d.storage.asBytes()[:d.rate] - for i := zerosStart; i < d.rate; i++ { - d.buf[i] = 0 - } - // This adds the final one bit for the padding. Because of the way that - // bits are numbered from the LSB upwards, the final bit is the MSB of - // the last byte. - d.buf[d.rate-1] ^= 0x80 - // Apply the permutation - d.permute() - d.state = spongeSqueezing - d.buf = d.storage.asBytes()[:d.rate] - copyOut(d, d.buf) -} - -// Write absorbs more data into the hash's state. It produces an error -// if more data is written to the ShakeHash after writing -func (d *state) Write(p []byte) (written int, err error) { - if d.state != spongeAbsorbing { - panic("sha3: write to sponge after read") - } - if d.buf == nil { - d.buf = d.storage.asBytes()[:0] - } - written = len(p) - - for len(p) > 0 { - if len(d.buf) == 0 && len(p) >= d.rate { - // The fast path; absorb a full "rate" bytes of input and apply the permutation. - xorIn(d, p[:d.rate]) - p = p[d.rate:] - keccakF1600(&d.a) - } else { - // The slow path; buffer the input until we can fill the sponge, and then xor it in. - todo := d.rate - len(d.buf) - if todo > len(p) { - todo = len(p) - } - d.buf = append(d.buf, p[:todo]...) - p = p[todo:] - - // If the sponge is full, apply the permutation. - if len(d.buf) == d.rate { - d.permute() - } - } - } - - return -} - -// Read squeezes an arbitrary number of bytes from the sponge. -func (d *state) Read(out []byte) (n int, err error) { - // If we're still absorbing, pad and apply the permutation. - if d.state == spongeAbsorbing { - d.padAndPermute(d.dsbyte) - } - - n = len(out) - - // Now, do the squeezing. - for len(out) > 0 { - n := copy(out, d.buf) - d.buf = d.buf[n:] - out = out[n:] - - // Apply the permutation if we've squeezed the sponge dry. - if len(d.buf) == 0 { - d.permute() - } - } - - return -} - -// Sum applies padding to the hash state and then squeezes out the desired -// number of output bytes. -func (d *state) Sum(in []byte) []byte { - // Make a copy of the original hash so that caller can keep writing - // and summing. - dup := d.clone() - hash := make([]byte, dup.outputLen) - dup.Read(hash) - return append(in, hash...) -} diff --git a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go b/vendor/golang.org/x/crypto/sha3/sha3_s390x.go deleted file mode 100644 index 63a3edb4ce..0000000000 --- a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go +++ /dev/null @@ -1,287 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc && !purego -// +build gc,!purego - -package sha3 - -// This file contains code for using the 'compute intermediate -// message digest' (KIMD) and 'compute last message digest' (KLMD) -// instructions to compute SHA-3 and SHAKE hashes on IBM Z. - -import ( - "hash" - - "golang.org/x/sys/cpu" -) - -// codes represent 7-bit KIMD/KLMD function codes as defined in -// the Principles of Operation. -type code uint64 - -const ( - // function codes for KIMD/KLMD - sha3_224 code = 32 - sha3_256 = 33 - sha3_384 = 34 - sha3_512 = 35 - shake_128 = 36 - shake_256 = 37 - nopad = 0x100 -) - -// kimd is a wrapper for the 'compute intermediate message digest' instruction. -// src must be a multiple of the rate for the given function code. -// -//go:noescape -func kimd(function code, chain *[200]byte, src []byte) - -// klmd is a wrapper for the 'compute last message digest' instruction. -// src padding is handled by the instruction. -// -//go:noescape -func klmd(function code, chain *[200]byte, dst, src []byte) - -type asmState struct { - a [200]byte // 1600 bit state - buf []byte // care must be taken to ensure cap(buf) is a multiple of rate - rate int // equivalent to block size - storage [3072]byte // underlying storage for buf - outputLen int // output length if fixed, 0 if not - function code // KIMD/KLMD function code - state spongeDirection // whether the sponge is absorbing or squeezing -} - -func newAsmState(function code) *asmState { - var s asmState - s.function = function - switch function { - case sha3_224: - s.rate = 144 - s.outputLen = 28 - case sha3_256: - s.rate = 136 - s.outputLen = 32 - case sha3_384: - s.rate = 104 - s.outputLen = 48 - case sha3_512: - s.rate = 72 - s.outputLen = 64 - case shake_128: - s.rate = 168 - case shake_256: - s.rate = 136 - default: - panic("sha3: unrecognized function code") - } - - // limit s.buf size to a multiple of s.rate - s.resetBuf() - return &s -} - -func (s *asmState) clone() *asmState { - c := *s - c.buf = c.storage[:len(s.buf):cap(s.buf)] - return &c -} - -// copyIntoBuf copies b into buf. It will panic if there is not enough space to -// store all of b. -func (s *asmState) copyIntoBuf(b []byte) { - bufLen := len(s.buf) - s.buf = s.buf[:len(s.buf)+len(b)] - copy(s.buf[bufLen:], b) -} - -// resetBuf points buf at storage, sets the length to 0 and sets cap to be a -// multiple of the rate. -func (s *asmState) resetBuf() { - max := (cap(s.storage) / s.rate) * s.rate - s.buf = s.storage[:0:max] -} - -// Write (via the embedded io.Writer interface) adds more data to the running hash. -// It never returns an error. -func (s *asmState) Write(b []byte) (int, error) { - if s.state != spongeAbsorbing { - panic("sha3: write to sponge after read") - } - length := len(b) - for len(b) > 0 { - if len(s.buf) == 0 && len(b) >= cap(s.buf) { - // Hash the data directly and push any remaining bytes - // into the buffer. - remainder := len(b) % s.rate - kimd(s.function, &s.a, b[:len(b)-remainder]) - if remainder != 0 { - s.copyIntoBuf(b[len(b)-remainder:]) - } - return length, nil - } - - if len(s.buf) == cap(s.buf) { - // flush the buffer - kimd(s.function, &s.a, s.buf) - s.buf = s.buf[:0] - } - - // copy as much as we can into the buffer - n := len(b) - if len(b) > cap(s.buf)-len(s.buf) { - n = cap(s.buf) - len(s.buf) - } - s.copyIntoBuf(b[:n]) - b = b[n:] - } - return length, nil -} - -// Read squeezes an arbitrary number of bytes from the sponge. -func (s *asmState) Read(out []byte) (n int, err error) { - n = len(out) - - // need to pad if we were absorbing - if s.state == spongeAbsorbing { - s.state = spongeSqueezing - - // write hash directly into out if possible - if len(out)%s.rate == 0 { - klmd(s.function, &s.a, out, s.buf) // len(out) may be 0 - s.buf = s.buf[:0] - return - } - - // write hash into buffer - max := cap(s.buf) - if max > len(out) { - max = (len(out)/s.rate)*s.rate + s.rate - } - klmd(s.function, &s.a, s.buf[:max], s.buf) - s.buf = s.buf[:max] - } - - for len(out) > 0 { - // flush the buffer - if len(s.buf) != 0 { - c := copy(out, s.buf) - out = out[c:] - s.buf = s.buf[c:] - continue - } - - // write hash directly into out if possible - if len(out)%s.rate == 0 { - klmd(s.function|nopad, &s.a, out, nil) - return - } - - // write hash into buffer - s.resetBuf() - if cap(s.buf) > len(out) { - s.buf = s.buf[:(len(out)/s.rate)*s.rate+s.rate] - } - klmd(s.function|nopad, &s.a, s.buf, nil) - } - return -} - -// Sum appends the current hash to b and returns the resulting slice. -// It does not change the underlying hash state. -func (s *asmState) Sum(b []byte) []byte { - if s.outputLen == 0 { - panic("sha3: cannot call Sum on SHAKE functions") - } - - // Copy the state to preserve the original. - a := s.a - - // Hash the buffer. Note that we don't clear it because we - // aren't updating the state. - klmd(s.function, &a, nil, s.buf) - return append(b, a[:s.outputLen]...) -} - -// Reset resets the Hash to its initial state. -func (s *asmState) Reset() { - for i := range s.a { - s.a[i] = 0 - } - s.resetBuf() - s.state = spongeAbsorbing -} - -// Size returns the number of bytes Sum will return. -func (s *asmState) Size() int { - return s.outputLen -} - -// BlockSize returns the hash's underlying block size. -// The Write method must be able to accept any amount -// of data, but it may operate more efficiently if all writes -// are a multiple of the block size. -func (s *asmState) BlockSize() int { - return s.rate -} - -// Clone returns a copy of the ShakeHash in its current state. -func (s *asmState) Clone() ShakeHash { - return s.clone() -} - -// new224Asm returns an assembly implementation of SHA3-224 if available, -// otherwise it returns nil. -func new224Asm() hash.Hash { - if cpu.S390X.HasSHA3 { - return newAsmState(sha3_224) - } - return nil -} - -// new256Asm returns an assembly implementation of SHA3-256 if available, -// otherwise it returns nil. -func new256Asm() hash.Hash { - if cpu.S390X.HasSHA3 { - return newAsmState(sha3_256) - } - return nil -} - -// new384Asm returns an assembly implementation of SHA3-384 if available, -// otherwise it returns nil. -func new384Asm() hash.Hash { - if cpu.S390X.HasSHA3 { - return newAsmState(sha3_384) - } - return nil -} - -// new512Asm returns an assembly implementation of SHA3-512 if available, -// otherwise it returns nil. -func new512Asm() hash.Hash { - if cpu.S390X.HasSHA3 { - return newAsmState(sha3_512) - } - return nil -} - -// newShake128Asm returns an assembly implementation of SHAKE-128 if available, -// otherwise it returns nil. -func newShake128Asm() ShakeHash { - if cpu.S390X.HasSHA3 { - return newAsmState(shake_128) - } - return nil -} - -// newShake256Asm returns an assembly implementation of SHAKE-256 if available, -// otherwise it returns nil. -func newShake256Asm() ShakeHash { - if cpu.S390X.HasSHA3 { - return newAsmState(shake_256) - } - return nil -} diff --git a/vendor/golang.org/x/crypto/sha3/sha3_s390x.s b/vendor/golang.org/x/crypto/sha3/sha3_s390x.s deleted file mode 100644 index a0e051b045..0000000000 --- a/vendor/golang.org/x/crypto/sha3/sha3_s390x.s +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build gc && !purego -// +build gc,!purego - -#include "textflag.h" - -// func kimd(function code, chain *[200]byte, src []byte) -TEXT ·kimd(SB), NOFRAME|NOSPLIT, $0-40 - MOVD function+0(FP), R0 - MOVD chain+8(FP), R1 - LMG src+16(FP), R2, R3 // R2=base, R3=len - -continue: - WORD $0xB93E0002 // KIMD --, R2 - BVS continue // continue if interrupted - MOVD $0, R0 // reset R0 for pre-go1.8 compilers - RET - -// func klmd(function code, chain *[200]byte, dst, src []byte) -TEXT ·klmd(SB), NOFRAME|NOSPLIT, $0-64 - // TODO: SHAKE support - MOVD function+0(FP), R0 - MOVD chain+8(FP), R1 - LMG dst+16(FP), R2, R3 // R2=base, R3=len - LMG src+40(FP), R4, R5 // R4=base, R5=len - -continue: - WORD $0xB93F0024 // KLMD R2, R4 - BVS continue // continue if interrupted - MOVD $0, R0 // reset R0 for pre-go1.8 compilers - RET diff --git a/vendor/golang.org/x/crypto/sha3/shake.go b/vendor/golang.org/x/crypto/sha3/shake.go deleted file mode 100644 index d7be2954ab..0000000000 --- a/vendor/golang.org/x/crypto/sha3/shake.go +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -// This file defines the ShakeHash interface, and provides -// functions for creating SHAKE and cSHAKE instances, as well as utility -// functions for hashing bytes to arbitrary-length output. -// -// -// SHAKE implementation is based on FIPS PUB 202 [1] -// cSHAKE implementations is based on NIST SP 800-185 [2] -// -// [1] https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf -// [2] https://doi.org/10.6028/NIST.SP.800-185 - -import ( - "encoding/binary" - "io" -) - -// ShakeHash defines the interface to hash functions that -// support arbitrary-length output. -type ShakeHash interface { - // Write absorbs more data into the hash's state. It panics if input is - // written to it after output has been read from it. - io.Writer - - // Read reads more output from the hash; reading affects the hash's - // state. (ShakeHash.Read is thus very different from Hash.Sum) - // It never returns an error. - io.Reader - - // Clone returns a copy of the ShakeHash in its current state. - Clone() ShakeHash - - // Reset resets the ShakeHash to its initial state. - Reset() -} - -// cSHAKE specific context -type cshakeState struct { - *state // SHA-3 state context and Read/Write operations - - // initBlock is the cSHAKE specific initialization set of bytes. It is initialized - // by newCShake function and stores concatenation of N followed by S, encoded - // by the method specified in 3.3 of [1]. - // It is stored here in order for Reset() to be able to put context into - // initial state. - initBlock []byte -} - -// Consts for configuring initial SHA-3 state -const ( - dsbyteShake = 0x1f - dsbyteCShake = 0x04 - rate128 = 168 - rate256 = 136 -) - -func bytepad(input []byte, w int) []byte { - // leftEncode always returns max 9 bytes - buf := make([]byte, 0, 9+len(input)+w) - buf = append(buf, leftEncode(uint64(w))...) - buf = append(buf, input...) - padlen := w - (len(buf) % w) - return append(buf, make([]byte, padlen)...) -} - -func leftEncode(value uint64) []byte { - var b [9]byte - binary.BigEndian.PutUint64(b[1:], value) - // Trim all but last leading zero bytes - i := byte(1) - for i < 8 && b[i] == 0 { - i++ - } - // Prepend number of encoded bytes - b[i-1] = 9 - i - return b[i-1:] -} - -func newCShake(N, S []byte, rate int, dsbyte byte) ShakeHash { - c := cshakeState{state: &state{rate: rate, dsbyte: dsbyte}} - - // leftEncode returns max 9 bytes - c.initBlock = make([]byte, 0, 9*2+len(N)+len(S)) - c.initBlock = append(c.initBlock, leftEncode(uint64(len(N)*8))...) - c.initBlock = append(c.initBlock, N...) - c.initBlock = append(c.initBlock, leftEncode(uint64(len(S)*8))...) - c.initBlock = append(c.initBlock, S...) - c.Write(bytepad(c.initBlock, c.rate)) - return &c -} - -// Reset resets the hash to initial state. -func (c *cshakeState) Reset() { - c.state.Reset() - c.Write(bytepad(c.initBlock, c.rate)) -} - -// Clone returns copy of a cSHAKE context within its current state. -func (c *cshakeState) Clone() ShakeHash { - b := make([]byte, len(c.initBlock)) - copy(b, c.initBlock) - return &cshakeState{state: c.clone(), initBlock: b} -} - -// Clone returns copy of SHAKE context within its current state. -func (c *state) Clone() ShakeHash { - return c.clone() -} - -// NewShake128 creates a new SHAKE128 variable-output-length ShakeHash. -// Its generic security strength is 128 bits against all attacks if at -// least 32 bytes of its output are used. -func NewShake128() ShakeHash { - if h := newShake128Asm(); h != nil { - return h - } - return &state{rate: rate128, dsbyte: dsbyteShake} -} - -// NewShake256 creates a new SHAKE256 variable-output-length ShakeHash. -// Its generic security strength is 256 bits against all attacks if -// at least 64 bytes of its output are used. -func NewShake256() ShakeHash { - if h := newShake256Asm(); h != nil { - return h - } - return &state{rate: rate256, dsbyte: dsbyteShake} -} - -// NewCShake128 creates a new instance of cSHAKE128 variable-output-length ShakeHash, -// a customizable variant of SHAKE128. -// N is used to define functions based on cSHAKE, it can be empty when plain cSHAKE is -// desired. S is a customization byte string used for domain separation - two cSHAKE -// computations on same input with different S yield unrelated outputs. -// When N and S are both empty, this is equivalent to NewShake128. -func NewCShake128(N, S []byte) ShakeHash { - if len(N) == 0 && len(S) == 0 { - return NewShake128() - } - return newCShake(N, S, rate128, dsbyteCShake) -} - -// NewCShake256 creates a new instance of cSHAKE256 variable-output-length ShakeHash, -// a customizable variant of SHAKE256. -// N is used to define functions based on cSHAKE, it can be empty when plain cSHAKE is -// desired. S is a customization byte string used for domain separation - two cSHAKE -// computations on same input with different S yield unrelated outputs. -// When N and S are both empty, this is equivalent to NewShake256. -func NewCShake256(N, S []byte) ShakeHash { - if len(N) == 0 && len(S) == 0 { - return NewShake256() - } - return newCShake(N, S, rate256, dsbyteCShake) -} - -// ShakeSum128 writes an arbitrary-length digest of data into hash. -func ShakeSum128(hash, data []byte) { - h := NewShake128() - h.Write(data) - h.Read(hash) -} - -// ShakeSum256 writes an arbitrary-length digest of data into hash. -func ShakeSum256(hash, data []byte) { - h := NewShake256() - h.Write(data) - h.Read(hash) -} diff --git a/vendor/golang.org/x/crypto/sha3/shake_generic.go b/vendor/golang.org/x/crypto/sha3/shake_generic.go deleted file mode 100644 index 5c0710ef98..0000000000 --- a/vendor/golang.org/x/crypto/sha3/shake_generic.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !gc || purego || !s390x -// +build !gc purego !s390x - -package sha3 - -// newShake128Asm returns an assembly implementation of SHAKE-128 if available, -// otherwise it returns nil. -func newShake128Asm() ShakeHash { - return nil -} - -// newShake256Asm returns an assembly implementation of SHAKE-256 if available, -// otherwise it returns nil. -func newShake256Asm() ShakeHash { - return nil -} diff --git a/vendor/golang.org/x/crypto/sha3/xor.go b/vendor/golang.org/x/crypto/sha3/xor.go deleted file mode 100644 index 59c8eb9418..0000000000 --- a/vendor/golang.org/x/crypto/sha3/xor.go +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (!amd64 && !386 && !ppc64le) || purego -// +build !amd64,!386,!ppc64le purego - -package sha3 - -// A storageBuf is an aligned array of maxRate bytes. -type storageBuf [maxRate]byte - -func (b *storageBuf) asBytes() *[maxRate]byte { - return (*[maxRate]byte)(b) -} - -var ( - xorIn = xorInGeneric - copyOut = copyOutGeneric - xorInUnaligned = xorInGeneric - copyOutUnaligned = copyOutGeneric -) - -const xorImplementationUnaligned = "generic" diff --git a/vendor/golang.org/x/crypto/sha3/xor_generic.go b/vendor/golang.org/x/crypto/sha3/xor_generic.go deleted file mode 100644 index 8d94771127..0000000000 --- a/vendor/golang.org/x/crypto/sha3/xor_generic.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -import "encoding/binary" - -// xorInGeneric xors the bytes in buf into the state; it -// makes no non-portable assumptions about memory layout -// or alignment. -func xorInGeneric(d *state, buf []byte) { - n := len(buf) / 8 - - for i := 0; i < n; i++ { - a := binary.LittleEndian.Uint64(buf) - d.a[i] ^= a - buf = buf[8:] - } -} - -// copyOutGeneric copies uint64s to a byte buffer. -func copyOutGeneric(d *state, b []byte) { - for i := 0; len(b) >= 8; i++ { - binary.LittleEndian.PutUint64(b, d.a[i]) - b = b[8:] - } -} diff --git a/vendor/golang.org/x/crypto/sha3/xor_unaligned.go b/vendor/golang.org/x/crypto/sha3/xor_unaligned.go deleted file mode 100644 index 1ce606246d..0000000000 --- a/vendor/golang.org/x/crypto/sha3/xor_unaligned.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (amd64 || 386 || ppc64le) && !purego -// +build amd64 386 ppc64le -// +build !purego - -package sha3 - -import "unsafe" - -// A storageBuf is an aligned array of maxRate bytes. -type storageBuf [maxRate / 8]uint64 - -func (b *storageBuf) asBytes() *[maxRate]byte { - return (*[maxRate]byte)(unsafe.Pointer(b)) -} - -// xorInUnaligned uses unaligned reads and writes to update d.a to contain d.a -// XOR buf. -func xorInUnaligned(d *state, buf []byte) { - n := len(buf) - bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0]))[: n/8 : n/8] - if n >= 72 { - d.a[0] ^= bw[0] - d.a[1] ^= bw[1] - d.a[2] ^= bw[2] - d.a[3] ^= bw[3] - d.a[4] ^= bw[4] - d.a[5] ^= bw[5] - d.a[6] ^= bw[6] - d.a[7] ^= bw[7] - d.a[8] ^= bw[8] - } - if n >= 104 { - d.a[9] ^= bw[9] - d.a[10] ^= bw[10] - d.a[11] ^= bw[11] - d.a[12] ^= bw[12] - } - if n >= 136 { - d.a[13] ^= bw[13] - d.a[14] ^= bw[14] - d.a[15] ^= bw[15] - d.a[16] ^= bw[16] - } - if n >= 144 { - d.a[17] ^= bw[17] - } - if n >= 168 { - d.a[18] ^= bw[18] - d.a[19] ^= bw[19] - d.a[20] ^= bw[20] - } -} - -func copyOutUnaligned(d *state, buf []byte) { - ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0])) - copy(buf, ab[:]) -} - -var ( - xorIn = xorInUnaligned - copyOut = copyOutUnaligned -) - -const xorImplementationUnaligned = "unaligned" diff --git a/vendor/golang.org/x/text/encoding/charmap/charmap.go b/vendor/golang.org/x/text/encoding/charmap/charmap.go deleted file mode 100644 index e89ff0734f..0000000000 --- a/vendor/golang.org/x/text/encoding/charmap/charmap.go +++ /dev/null @@ -1,249 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run maketables.go - -// Package charmap provides simple character encodings such as IBM Code Page 437 -// and Windows 1252. -package charmap // import "golang.org/x/text/encoding/charmap" - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// These encodings vary only in the way clients should interpret them. Their -// coded character set is identical and a single implementation can be shared. -var ( - // ISO8859_6E is the ISO 8859-6E encoding. - ISO8859_6E encoding.Encoding = &iso8859_6E - - // ISO8859_6I is the ISO 8859-6I encoding. - ISO8859_6I encoding.Encoding = &iso8859_6I - - // ISO8859_8E is the ISO 8859-8E encoding. - ISO8859_8E encoding.Encoding = &iso8859_8E - - // ISO8859_8I is the ISO 8859-8I encoding. - ISO8859_8I encoding.Encoding = &iso8859_8I - - iso8859_6E = internal.Encoding{ - Encoding: ISO8859_6, - Name: "ISO-8859-6E", - MIB: identifier.ISO88596E, - } - - iso8859_6I = internal.Encoding{ - Encoding: ISO8859_6, - Name: "ISO-8859-6I", - MIB: identifier.ISO88596I, - } - - iso8859_8E = internal.Encoding{ - Encoding: ISO8859_8, - Name: "ISO-8859-8E", - MIB: identifier.ISO88598E, - } - - iso8859_8I = internal.Encoding{ - Encoding: ISO8859_8, - Name: "ISO-8859-8I", - MIB: identifier.ISO88598I, - } -) - -// All is a list of all defined encodings in this package. -var All []encoding.Encoding = listAll - -// TODO: implement these encodings, in order of importance. -// ASCII, ISO8859_1: Rather common. Close to Windows 1252. -// ISO8859_9: Close to Windows 1254. - -// utf8Enc holds a rune's UTF-8 encoding in data[:len]. -type utf8Enc struct { - len uint8 - data [3]byte -} - -// Charmap is an 8-bit character set encoding. -type Charmap struct { - // name is the encoding's name. - name string - // mib is the encoding type of this encoder. - mib identifier.MIB - // asciiSuperset states whether the encoding is a superset of ASCII. - asciiSuperset bool - // low is the lower bound of the encoded byte for a non-ASCII rune. If - // Charmap.asciiSuperset is true then this will be 0x80, otherwise 0x00. - low uint8 - // replacement is the encoded replacement character. - replacement byte - // decode is the map from encoded byte to UTF-8. - decode [256]utf8Enc - // encoding is the map from runes to encoded bytes. Each entry is a - // uint32: the high 8 bits are the encoded byte and the low 24 bits are - // the rune. The table entries are sorted by ascending rune. - encode [256]uint32 -} - -// NewDecoder implements the encoding.Encoding interface. -func (m *Charmap) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: charmapDecoder{charmap: m}} -} - -// NewEncoder implements the encoding.Encoding interface. -func (m *Charmap) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: charmapEncoder{charmap: m}} -} - -// String returns the Charmap's name. -func (m *Charmap) String() string { - return m.name -} - -// ID implements an internal interface. -func (m *Charmap) ID() (mib identifier.MIB, other string) { - return m.mib, "" -} - -// charmapDecoder implements transform.Transformer by decoding to UTF-8. -type charmapDecoder struct { - transform.NopResetter - charmap *Charmap -} - -func (m charmapDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - for i, c := range src { - if m.charmap.asciiSuperset && c < utf8.RuneSelf { - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = c - nDst++ - nSrc = i + 1 - continue - } - - decode := &m.charmap.decode[c] - n := int(decode.len) - if nDst+n > len(dst) { - err = transform.ErrShortDst - break - } - // It's 15% faster to avoid calling copy for these tiny slices. - for j := 0; j < n; j++ { - dst[nDst] = decode.data[j] - nDst++ - } - nSrc = i + 1 - } - return nDst, nSrc, err -} - -// DecodeByte returns the Charmap's rune decoding of the byte b. -func (m *Charmap) DecodeByte(b byte) rune { - switch x := &m.decode[b]; x.len { - case 1: - return rune(x.data[0]) - case 2: - return rune(x.data[0]&0x1f)<<6 | rune(x.data[1]&0x3f) - default: - return rune(x.data[0]&0x0f)<<12 | rune(x.data[1]&0x3f)<<6 | rune(x.data[2]&0x3f) - } -} - -// charmapEncoder implements transform.Transformer by encoding from UTF-8. -type charmapEncoder struct { - transform.NopResetter - charmap *Charmap -} - -func (m charmapEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for nSrc < len(src) { - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - if m.charmap.asciiSuperset { - nSrc++ - dst[nDst] = uint8(r) - nDst++ - continue - } - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - } else { - err = internal.RepertoireError(m.charmap.replacement) - } - break - } - } - - // Binary search in [low, high) for that rune in the m.charmap.encode table. - for low, high := int(m.charmap.low), 0x100; ; { - if low >= high { - err = internal.RepertoireError(m.charmap.replacement) - break loop - } - mid := (low + high) / 2 - got := m.charmap.encode[mid] - gotRune := rune(got & (1<<24 - 1)) - if gotRune < r { - low = mid + 1 - } else if gotRune > r { - high = mid - } else { - dst[nDst] = byte(got >> 24) - nDst++ - break - } - } - nSrc += size - } - return nDst, nSrc, err -} - -// EncodeRune returns the Charmap's byte encoding of the rune r. ok is whether -// r is in the Charmap's repertoire. If not, b is set to the Charmap's -// replacement byte. This is often the ASCII substitute character '\x1a'. -func (m *Charmap) EncodeRune(r rune) (b byte, ok bool) { - if r < utf8.RuneSelf && m.asciiSuperset { - return byte(r), true - } - for low, high := int(m.low), 0x100; ; { - if low >= high { - return m.replacement, false - } - mid := (low + high) / 2 - got := m.encode[mid] - gotRune := rune(got & (1<<24 - 1)) - if gotRune < r { - low = mid + 1 - } else if gotRune > r { - high = mid - } else { - return byte(got >> 24), true - } - } -} diff --git a/vendor/golang.org/x/text/encoding/charmap/tables.go b/vendor/golang.org/x/text/encoding/charmap/tables.go deleted file mode 100644 index cf7281e9e3..0000000000 --- a/vendor/golang.org/x/text/encoding/charmap/tables.go +++ /dev/null @@ -1,7410 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package charmap - -import ( - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal/identifier" -) - -// CodePage037 is the IBM Code Page 037 encoding. -var CodePage037 *Charmap = &codePage037 - -var codePage037 = Charmap{ - name: "IBM Code Page 037", - mib: identifier.IBM037, - asciiSuperset: false, - low: 0x00, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x97, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {1, [3]byte{0x0a, 0x00, 0x00}}, - {1, [3]byte{0x17, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {1, [3]byte{0x04, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {1, [3]byte{0x1a, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa7, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {1, [3]byte{0x2e, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x28, 0x00, 0x00}}, - {1, [3]byte{0x2b, 0x00, 0x00}}, {1, [3]byte{0x7c, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {1, [3]byte{0x21, 0x00, 0x00}}, {1, [3]byte{0x24, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x3b, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xac, 0x00}}, - {1, [3]byte{0x2d, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {1, [3]byte{0x2c, 0x00, 0x00}}, - {1, [3]byte{0x25, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {1, [3]byte{0x60, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x3d, 0x00, 0x00}}, {1, [3]byte{0x22, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {1, [3]byte{0x6a, 0x00, 0x00}}, - {1, [3]byte{0x6b, 0x00, 0x00}}, {1, [3]byte{0x6c, 0x00, 0x00}}, - {1, [3]byte{0x6d, 0x00, 0x00}}, {1, [3]byte{0x6e, 0x00, 0x00}}, - {1, [3]byte{0x6f, 0x00, 0x00}}, {1, [3]byte{0x70, 0x00, 0x00}}, - {1, [3]byte{0x71, 0x00, 0x00}}, {1, [3]byte{0x72, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {1, [3]byte{0x7e, 0x00, 0x00}}, - {1, [3]byte{0x73, 0x00, 0x00}}, {1, [3]byte{0x74, 0x00, 0x00}}, - {1, [3]byte{0x75, 0x00, 0x00}}, {1, [3]byte{0x76, 0x00, 0x00}}, - {1, [3]byte{0x77, 0x00, 0x00}}, {1, [3]byte{0x78, 0x00, 0x00}}, - {1, [3]byte{0x79, 0x00, 0x00}}, {1, [3]byte{0x7a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xbc, 0x00}}, - {2, [3]byte{0xc2, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {1, [3]byte{0x5b, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {1, [3]byte{0x7b, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {1, [3]byte{0x7d, 0x00, 0x00}}, {1, [3]byte{0x4a, 0x00, 0x00}}, - {1, [3]byte{0x4b, 0x00, 0x00}}, {1, [3]byte{0x4c, 0x00, 0x00}}, - {1, [3]byte{0x4d, 0x00, 0x00}}, {1, [3]byte{0x4e, 0x00, 0x00}}, - {1, [3]byte{0x4f, 0x00, 0x00}}, {1, [3]byte{0x50, 0x00, 0x00}}, - {1, [3]byte{0x51, 0x00, 0x00}}, {1, [3]byte{0x52, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb9, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {1, [3]byte{0x53, 0x00, 0x00}}, {1, [3]byte{0x54, 0x00, 0x00}}, - {1, [3]byte{0x55, 0x00, 0x00}}, {1, [3]byte{0x56, 0x00, 0x00}}, - {1, [3]byte{0x57, 0x00, 0x00}}, {1, [3]byte{0x58, 0x00, 0x00}}, - {1, [3]byte{0x59, 0x00, 0x00}}, {1, [3]byte{0x5a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x37000004, 0x2d000005, 0x2e000006, 0x2f000007, - 0x16000008, 0x05000009, 0x2500000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x3c000014, 0x3d000015, 0x32000016, 0x26000017, - 0x18000018, 0x19000019, 0x3f00001a, 0x2700001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x40000020, 0x5a000021, 0x7f000022, 0x7b000023, 0x5b000024, 0x6c000025, 0x50000026, 0x7d000027, - 0x4d000028, 0x5d000029, 0x5c00002a, 0x4e00002b, 0x6b00002c, 0x6000002d, 0x4b00002e, 0x6100002f, - 0xf0000030, 0xf1000031, 0xf2000032, 0xf3000033, 0xf4000034, 0xf5000035, 0xf6000036, 0xf7000037, - 0xf8000038, 0xf9000039, 0x7a00003a, 0x5e00003b, 0x4c00003c, 0x7e00003d, 0x6e00003e, 0x6f00003f, - 0x7c000040, 0xc1000041, 0xc2000042, 0xc3000043, 0xc4000044, 0xc5000045, 0xc6000046, 0xc7000047, - 0xc8000048, 0xc9000049, 0xd100004a, 0xd200004b, 0xd300004c, 0xd400004d, 0xd500004e, 0xd600004f, - 0xd7000050, 0xd8000051, 0xd9000052, 0xe2000053, 0xe3000054, 0xe4000055, 0xe5000056, 0xe6000057, - 0xe7000058, 0xe8000059, 0xe900005a, 0xba00005b, 0xe000005c, 0xbb00005d, 0xb000005e, 0x6d00005f, - 0x79000060, 0x81000061, 0x82000062, 0x83000063, 0x84000064, 0x85000065, 0x86000066, 0x87000067, - 0x88000068, 0x89000069, 0x9100006a, 0x9200006b, 0x9300006c, 0x9400006d, 0x9500006e, 0x9600006f, - 0x97000070, 0x98000071, 0x99000072, 0xa2000073, 0xa3000074, 0xa4000075, 0xa5000076, 0xa6000077, - 0xa7000078, 0xa8000079, 0xa900007a, 0xc000007b, 0x4f00007c, 0xd000007d, 0xa100007e, 0x0700007f, - 0x20000080, 0x21000081, 0x22000082, 0x23000083, 0x24000084, 0x15000085, 0x06000086, 0x17000087, - 0x28000088, 0x29000089, 0x2a00008a, 0x2b00008b, 0x2c00008c, 0x0900008d, 0x0a00008e, 0x1b00008f, - 0x30000090, 0x31000091, 0x1a000092, 0x33000093, 0x34000094, 0x35000095, 0x36000096, 0x08000097, - 0x38000098, 0x39000099, 0x3a00009a, 0x3b00009b, 0x0400009c, 0x1400009d, 0x3e00009e, 0xff00009f, - 0x410000a0, 0xaa0000a1, 0x4a0000a2, 0xb10000a3, 0x9f0000a4, 0xb20000a5, 0x6a0000a6, 0xb50000a7, - 0xbd0000a8, 0xb40000a9, 0x9a0000aa, 0x8a0000ab, 0x5f0000ac, 0xca0000ad, 0xaf0000ae, 0xbc0000af, - 0x900000b0, 0x8f0000b1, 0xea0000b2, 0xfa0000b3, 0xbe0000b4, 0xa00000b5, 0xb60000b6, 0xb30000b7, - 0x9d0000b8, 0xda0000b9, 0x9b0000ba, 0x8b0000bb, 0xb70000bc, 0xb80000bd, 0xb90000be, 0xab0000bf, - 0x640000c0, 0x650000c1, 0x620000c2, 0x660000c3, 0x630000c4, 0x670000c5, 0x9e0000c6, 0x680000c7, - 0x740000c8, 0x710000c9, 0x720000ca, 0x730000cb, 0x780000cc, 0x750000cd, 0x760000ce, 0x770000cf, - 0xac0000d0, 0x690000d1, 0xed0000d2, 0xee0000d3, 0xeb0000d4, 0xef0000d5, 0xec0000d6, 0xbf0000d7, - 0x800000d8, 0xfd0000d9, 0xfe0000da, 0xfb0000db, 0xfc0000dc, 0xad0000dd, 0xae0000de, 0x590000df, - 0x440000e0, 0x450000e1, 0x420000e2, 0x460000e3, 0x430000e4, 0x470000e5, 0x9c0000e6, 0x480000e7, - 0x540000e8, 0x510000e9, 0x520000ea, 0x530000eb, 0x580000ec, 0x550000ed, 0x560000ee, 0x570000ef, - 0x8c0000f0, 0x490000f1, 0xcd0000f2, 0xce0000f3, 0xcb0000f4, 0xcf0000f5, 0xcc0000f6, 0xe10000f7, - 0x700000f8, 0xdd0000f9, 0xde0000fa, 0xdb0000fb, 0xdc0000fc, 0x8d0000fd, 0x8e0000fe, 0xdf0000ff, - }, -} - -// CodePage437 is the IBM Code Page 437 encoding. -var CodePage437 *Charmap = &codePage437 - -var codePage437 = Charmap{ - name: "IBM Code Page 437", - mib: identifier.PC8CodePage437, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, - 0xab0000bd, 0xa80000bf, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1, - 0x990000d6, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5, - 0x910000e6, 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, - 0x8c0000ee, 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, - 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398, - 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, - 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage850 is the IBM Code Page 850 encoding. -var CodePage850 *Charmap = &codePage850 - -var codePage850 = Charmap{ - name: "IBM Code Page 850", - mib: identifier.PC850Multilingual, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7, - 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7, - 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf, - 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, - 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf, - 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7, - 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df, - 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef, - 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7, - 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff, - 0xd5000131, 0x9f000192, 0xf2002017, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage852 is the IBM Code Page 852 encoding. -var CodePage852 *Charmap = &codePage852 - -var codePage852 = Charmap{ - name: "IBM Code Page 852", - mib: identifier.PCp852, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc5, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}}, - {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xa5, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbe, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc4, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}}, - {2, [3]byte{0xc4, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x8f, 0x00}}, {2, [3]byte{0xc5, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc5, 0xa2, 0x00}}, - {2, [3]byte{0xc5, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x84, 0x00}}, {2, [3]byte{0xc5, 0x88, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x99, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xcf0000a4, 0xf50000a7, 0xf90000a8, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xf80000b0, - 0xef0000b4, 0xf70000b8, 0xaf0000bb, 0xb50000c1, 0xb60000c2, 0x8e0000c4, 0x800000c7, 0x900000c9, - 0xd30000cb, 0xd60000cd, 0xd70000ce, 0xe00000d3, 0xe20000d4, 0x990000d6, 0x9e0000d7, 0xe90000da, - 0x9a0000dc, 0xed0000dd, 0xe10000df, 0xa00000e1, 0x830000e2, 0x840000e4, 0x870000e7, 0x820000e9, - 0x890000eb, 0xa10000ed, 0x8c0000ee, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0xa30000fa, - 0x810000fc, 0xec0000fd, 0xc6000102, 0xc7000103, 0xa4000104, 0xa5000105, 0x8f000106, 0x86000107, - 0xac00010c, 0x9f00010d, 0xd200010e, 0xd400010f, 0xd1000110, 0xd0000111, 0xa8000118, 0xa9000119, - 0xb700011a, 0xd800011b, 0x91000139, 0x9200013a, 0x9500013d, 0x9600013e, 0x9d000141, 0x88000142, - 0xe3000143, 0xe4000144, 0xd5000147, 0xe5000148, 0x8a000150, 0x8b000151, 0xe8000154, 0xea000155, - 0xfc000158, 0xfd000159, 0x9700015a, 0x9800015b, 0xb800015e, 0xad00015f, 0xe6000160, 0xe7000161, - 0xdd000162, 0xee000163, 0x9b000164, 0x9c000165, 0xde00016e, 0x8500016f, 0xeb000170, 0xfb000171, - 0x8d000179, 0xab00017a, 0xbd00017b, 0xbe00017c, 0xa600017d, 0xa700017e, 0xf30002c7, 0xf40002d8, - 0xfa0002d9, 0xf20002db, 0xf10002dd, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage855 is the IBM Code Page 855 encoding. -var CodePage855 *Charmap = &codePage855 - -var codePage855 = Charmap{ - name: "IBM Code Page 855", - mib: identifier.IBM855, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x82, 0x00}}, - {2, [3]byte{0xd1, 0x93, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x84, 0x00}}, - {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}}, - {2, [3]byte{0xd1, 0x97, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x8a, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}}, - {2, [3]byte{0xd1, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xae, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0xb5, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xa4, 0x00}}, - {2, [3]byte{0xd0, 0xb3, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd1, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xd0, 0xaf, 0x00}}, {2, [3]byte{0xd1, 0x80, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0xa1, 0x00}}, {2, [3]byte{0xd1, 0x82, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xa3, 0x00}}, {2, [3]byte{0xd0, 0xb6, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x8c, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xab, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd0, 0xa9, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xcf0000a4, 0xfd0000a7, 0xae0000ab, 0xf00000ad, 0xaf0000bb, 0x85000401, 0x81000402, - 0x83000403, 0x87000404, 0x89000405, 0x8b000406, 0x8d000407, 0x8f000408, 0x91000409, 0x9300040a, - 0x9500040b, 0x9700040c, 0x9900040e, 0x9b00040f, 0xa1000410, 0xa3000411, 0xec000412, 0xad000413, - 0xa7000414, 0xa9000415, 0xea000416, 0xf4000417, 0xb8000418, 0xbe000419, 0xc700041a, 0xd100041b, - 0xd300041c, 0xd500041d, 0xd700041e, 0xdd00041f, 0xe2000420, 0xe4000421, 0xe6000422, 0xe8000423, - 0xab000424, 0xb6000425, 0xa5000426, 0xfc000427, 0xf6000428, 0xfa000429, 0x9f00042a, 0xf200042b, - 0xee00042c, 0xf800042d, 0x9d00042e, 0xe000042f, 0xa0000430, 0xa2000431, 0xeb000432, 0xac000433, - 0xa6000434, 0xa8000435, 0xe9000436, 0xf3000437, 0xb7000438, 0xbd000439, 0xc600043a, 0xd000043b, - 0xd200043c, 0xd400043d, 0xd600043e, 0xd800043f, 0xe1000440, 0xe3000441, 0xe5000442, 0xe7000443, - 0xaa000444, 0xb5000445, 0xa4000446, 0xfb000447, 0xf5000448, 0xf9000449, 0x9e00044a, 0xf100044b, - 0xed00044c, 0xf700044d, 0x9c00044e, 0xde00044f, 0x84000451, 0x80000452, 0x82000453, 0x86000454, - 0x88000455, 0x8a000456, 0x8c000457, 0x8e000458, 0x90000459, 0x9200045a, 0x9400045b, 0x9600045c, - 0x9800045e, 0x9a00045f, 0xef002116, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage858 is the Windows Code Page 858 encoding. -var CodePage858 *Charmap = &codePage858 - -var codePage858 = Charmap{ - name: "Windows Code Page 858", - mib: identifier.IBM00858, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7, - 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7, - 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf, - 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, - 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf, - 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7, - 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df, - 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef, - 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7, - 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff, - 0x9f000192, 0xf2002017, 0xd50020ac, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, - 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, - 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, - 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage860 is the IBM Code Page 860 encoding. -var CodePage860 *Charmap = &codePage860 - -var codePage860 = Charmap{ - name: "IBM Code Page 860", - mib: identifier.IBM860, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x8a, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf80000b0, - 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, - 0xa80000bf, 0x910000c0, 0x860000c1, 0x8f0000c2, 0x8e0000c3, 0x800000c7, 0x920000c8, 0x900000c9, - 0x890000ca, 0x980000cc, 0x8b0000cd, 0xa50000d1, 0xa90000d2, 0x9f0000d3, 0x8c0000d4, 0x990000d5, - 0x9d0000d9, 0x960000da, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e3, - 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x8d0000ec, 0xa10000ed, 0xa40000f1, 0x950000f2, - 0xa20000f3, 0x930000f4, 0x940000f5, 0xf60000f7, 0x970000f9, 0xa30000fa, 0x810000fc, 0xe2000393, - 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, - 0xe50003c3, 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, - 0xef002229, 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage862 is the IBM Code Page 862 encoding. -var CodePage862 *Charmap = &codePage862 - -var codePage862 = Charmap{ - name: "IBM Code Page 862", - mib: identifier.PC862LatinHebrew, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac, - 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, - 0xab0000bd, 0xa80000bf, 0xa50000d1, 0xe10000df, 0xa00000e1, 0xa10000ed, 0xa40000f1, 0xa20000f3, - 0xf60000f7, 0xa30000fa, 0x9f000192, 0xe2000393, 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9, - 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, 0xe70003c4, 0xed0003c6, 0x800005d0, - 0x810005d1, 0x820005d2, 0x830005d3, 0x840005d4, 0x850005d5, 0x860005d6, 0x870005d7, 0x880005d8, - 0x890005d9, 0x8a0005da, 0x8b0005db, 0x8c0005dc, 0x8d0005dd, 0x8e0005de, 0x8f0005df, 0x900005e0, - 0x910005e1, 0x920005e2, 0x930005e3, 0x940005e4, 0x950005e5, 0x960005e6, 0x970005e7, 0x980005e8, - 0x990005e9, 0x9a0005ea, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage863 is the IBM Code Page 863 encoding. -var CodePage863 *Charmap = &codePage863 - -var codePage863 = Charmap{ - name: "IBM Code Page 863", - mib: identifier.IBM863, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x97}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0x9b0000a2, 0x9c0000a3, 0x980000a4, 0xa00000a6, 0x8f0000a7, 0xa40000a8, 0xae0000ab, - 0xaa0000ac, 0xa70000af, 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xa60000b3, 0xa10000b4, 0xe60000b5, - 0x860000b6, 0xfa0000b7, 0xa50000b8, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xad0000be, 0x8e0000c0, - 0x840000c2, 0x800000c7, 0x910000c8, 0x900000c9, 0x920000ca, 0x940000cb, 0xa80000ce, 0x950000cf, - 0x990000d4, 0x9d0000d9, 0x9e0000db, 0x9a0000dc, 0xe10000df, 0x850000e0, 0x830000e2, 0x870000e7, - 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8c0000ee, 0x8b0000ef, 0xa20000f3, 0x930000f4, - 0xf60000f7, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x9f000192, 0xe2000393, 0xe9000398, - 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, - 0xe70003c4, 0xed0003c6, 0x8d002017, 0xfc00207f, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage865 is the IBM Code Page 865 encoding. -var CodePage865 *Charmap = &codePage865 - -var codePage865 = Charmap{ - name: "IBM Code Page 865", - mib: identifier.IBM865, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, - {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, - {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, - {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, - {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xad0000a1, 0x9c0000a3, 0xaf0000a4, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf80000b0, - 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xac0000bc, 0xab0000bd, 0xa80000bf, - 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1, 0x990000d6, 0x9d0000d8, - 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5, 0x910000e6, - 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, - 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0x9b0000f8, - 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398, - 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, - 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, - 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage866 is the IBM Code Page 866 encoding. -var CodePage866 *Charmap = &codePage866 - -var codePage866 = Charmap{ - name: "IBM Code Page 866", - mib: identifier.IBM866, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, - {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, - {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, - {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, - {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, - {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, - {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xff0000a0, 0xfd0000a4, 0xf80000b0, 0xfa0000b7, 0xf0000401, 0xf2000404, 0xf4000407, 0xf600040e, - 0x80000410, 0x81000411, 0x82000412, 0x83000413, 0x84000414, 0x85000415, 0x86000416, 0x87000417, - 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, - 0x90000420, 0x91000421, 0x92000422, 0x93000423, 0x94000424, 0x95000425, 0x96000426, 0x97000427, - 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, - 0xa0000430, 0xa1000431, 0xa2000432, 0xa3000433, 0xa4000434, 0xa5000435, 0xa6000436, 0xa7000437, - 0xa8000438, 0xa9000439, 0xaa00043a, 0xab00043b, 0xac00043c, 0xad00043d, 0xae00043e, 0xaf00043f, - 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, 0xe7000447, - 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, 0xef00044f, - 0xf1000451, 0xf3000454, 0xf5000457, 0xf700045e, 0xfc002116, 0xf9002219, 0xfb00221a, 0xc4002500, - 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, - 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, - 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, - 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, - 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, - 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, - }, -} - -// CodePage1047 is the IBM Code Page 1047 encoding. -var CodePage1047 *Charmap = &codePage1047 - -var codePage1047 = Charmap{ - name: "IBM Code Page 1047", - mib: identifier.IBM1047, - asciiSuperset: false, - low: 0x00, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x97, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {1, [3]byte{0x0a, 0x00, 0x00}}, - {1, [3]byte{0x17, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {1, [3]byte{0x04, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {1, [3]byte{0x1a, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa7, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {1, [3]byte{0x2e, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x28, 0x00, 0x00}}, - {1, [3]byte{0x2b, 0x00, 0x00}}, {1, [3]byte{0x7c, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {1, [3]byte{0x21, 0x00, 0x00}}, {1, [3]byte{0x24, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x3b, 0x00, 0x00}}, {1, [3]byte{0x5e, 0x00, 0x00}}, - {1, [3]byte{0x2d, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {1, [3]byte{0x2c, 0x00, 0x00}}, - {1, [3]byte{0x25, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {1, [3]byte{0x60, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x3d, 0x00, 0x00}}, {1, [3]byte{0x22, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {1, [3]byte{0x6a, 0x00, 0x00}}, - {1, [3]byte{0x6b, 0x00, 0x00}}, {1, [3]byte{0x6c, 0x00, 0x00}}, - {1, [3]byte{0x6d, 0x00, 0x00}}, {1, [3]byte{0x6e, 0x00, 0x00}}, - {1, [3]byte{0x6f, 0x00, 0x00}}, {1, [3]byte{0x70, 0x00, 0x00}}, - {1, [3]byte{0x71, 0x00, 0x00}}, {1, [3]byte{0x72, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {1, [3]byte{0x7e, 0x00, 0x00}}, - {1, [3]byte{0x73, 0x00, 0x00}}, {1, [3]byte{0x74, 0x00, 0x00}}, - {1, [3]byte{0x75, 0x00, 0x00}}, {1, [3]byte{0x76, 0x00, 0x00}}, - {1, [3]byte{0x77, 0x00, 0x00}}, {1, [3]byte{0x78, 0x00, 0x00}}, - {1, [3]byte{0x79, 0x00, 0x00}}, {1, [3]byte{0x7a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xbc, 0x00}}, - {2, [3]byte{0xc2, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {2, [3]byte{0xc3, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {1, [3]byte{0x7b, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {1, [3]byte{0x7d, 0x00, 0x00}}, {1, [3]byte{0x4a, 0x00, 0x00}}, - {1, [3]byte{0x4b, 0x00, 0x00}}, {1, [3]byte{0x4c, 0x00, 0x00}}, - {1, [3]byte{0x4d, 0x00, 0x00}}, {1, [3]byte{0x4e, 0x00, 0x00}}, - {1, [3]byte{0x4f, 0x00, 0x00}}, {1, [3]byte{0x50, 0x00, 0x00}}, - {1, [3]byte{0x51, 0x00, 0x00}}, {1, [3]byte{0x52, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb9, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {1, [3]byte{0x53, 0x00, 0x00}}, {1, [3]byte{0x54, 0x00, 0x00}}, - {1, [3]byte{0x55, 0x00, 0x00}}, {1, [3]byte{0x56, 0x00, 0x00}}, - {1, [3]byte{0x57, 0x00, 0x00}}, {1, [3]byte{0x58, 0x00, 0x00}}, - {1, [3]byte{0x59, 0x00, 0x00}}, {1, [3]byte{0x5a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x37000004, 0x2d000005, 0x2e000006, 0x2f000007, - 0x16000008, 0x05000009, 0x2500000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x3c000014, 0x3d000015, 0x32000016, 0x26000017, - 0x18000018, 0x19000019, 0x3f00001a, 0x2700001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x40000020, 0x5a000021, 0x7f000022, 0x7b000023, 0x5b000024, 0x6c000025, 0x50000026, 0x7d000027, - 0x4d000028, 0x5d000029, 0x5c00002a, 0x4e00002b, 0x6b00002c, 0x6000002d, 0x4b00002e, 0x6100002f, - 0xf0000030, 0xf1000031, 0xf2000032, 0xf3000033, 0xf4000034, 0xf5000035, 0xf6000036, 0xf7000037, - 0xf8000038, 0xf9000039, 0x7a00003a, 0x5e00003b, 0x4c00003c, 0x7e00003d, 0x6e00003e, 0x6f00003f, - 0x7c000040, 0xc1000041, 0xc2000042, 0xc3000043, 0xc4000044, 0xc5000045, 0xc6000046, 0xc7000047, - 0xc8000048, 0xc9000049, 0xd100004a, 0xd200004b, 0xd300004c, 0xd400004d, 0xd500004e, 0xd600004f, - 0xd7000050, 0xd8000051, 0xd9000052, 0xe2000053, 0xe3000054, 0xe4000055, 0xe5000056, 0xe6000057, - 0xe7000058, 0xe8000059, 0xe900005a, 0xad00005b, 0xe000005c, 0xbd00005d, 0x5f00005e, 0x6d00005f, - 0x79000060, 0x81000061, 0x82000062, 0x83000063, 0x84000064, 0x85000065, 0x86000066, 0x87000067, - 0x88000068, 0x89000069, 0x9100006a, 0x9200006b, 0x9300006c, 0x9400006d, 0x9500006e, 0x9600006f, - 0x97000070, 0x98000071, 0x99000072, 0xa2000073, 0xa3000074, 0xa4000075, 0xa5000076, 0xa6000077, - 0xa7000078, 0xa8000079, 0xa900007a, 0xc000007b, 0x4f00007c, 0xd000007d, 0xa100007e, 0x0700007f, - 0x20000080, 0x21000081, 0x22000082, 0x23000083, 0x24000084, 0x15000085, 0x06000086, 0x17000087, - 0x28000088, 0x29000089, 0x2a00008a, 0x2b00008b, 0x2c00008c, 0x0900008d, 0x0a00008e, 0x1b00008f, - 0x30000090, 0x31000091, 0x1a000092, 0x33000093, 0x34000094, 0x35000095, 0x36000096, 0x08000097, - 0x38000098, 0x39000099, 0x3a00009a, 0x3b00009b, 0x0400009c, 0x1400009d, 0x3e00009e, 0xff00009f, - 0x410000a0, 0xaa0000a1, 0x4a0000a2, 0xb10000a3, 0x9f0000a4, 0xb20000a5, 0x6a0000a6, 0xb50000a7, - 0xbb0000a8, 0xb40000a9, 0x9a0000aa, 0x8a0000ab, 0xb00000ac, 0xca0000ad, 0xaf0000ae, 0xbc0000af, - 0x900000b0, 0x8f0000b1, 0xea0000b2, 0xfa0000b3, 0xbe0000b4, 0xa00000b5, 0xb60000b6, 0xb30000b7, - 0x9d0000b8, 0xda0000b9, 0x9b0000ba, 0x8b0000bb, 0xb70000bc, 0xb80000bd, 0xb90000be, 0xab0000bf, - 0x640000c0, 0x650000c1, 0x620000c2, 0x660000c3, 0x630000c4, 0x670000c5, 0x9e0000c6, 0x680000c7, - 0x740000c8, 0x710000c9, 0x720000ca, 0x730000cb, 0x780000cc, 0x750000cd, 0x760000ce, 0x770000cf, - 0xac0000d0, 0x690000d1, 0xed0000d2, 0xee0000d3, 0xeb0000d4, 0xef0000d5, 0xec0000d6, 0xbf0000d7, - 0x800000d8, 0xfd0000d9, 0xfe0000da, 0xfb0000db, 0xfc0000dc, 0xba0000dd, 0xae0000de, 0x590000df, - 0x440000e0, 0x450000e1, 0x420000e2, 0x460000e3, 0x430000e4, 0x470000e5, 0x9c0000e6, 0x480000e7, - 0x540000e8, 0x510000e9, 0x520000ea, 0x530000eb, 0x580000ec, 0x550000ed, 0x560000ee, 0x570000ef, - 0x8c0000f0, 0x490000f1, 0xcd0000f2, 0xce0000f3, 0xcb0000f4, 0xcf0000f5, 0xcc0000f6, 0xe10000f7, - 0x700000f8, 0xdd0000f9, 0xde0000fa, 0xdb0000fb, 0xdc0000fc, 0x8d0000fd, 0x8e0000fe, 0xdf0000ff, - }, -} - -// CodePage1140 is the IBM Code Page 1140 encoding. -var CodePage1140 *Charmap = &codePage1140 - -var codePage1140 = Charmap{ - name: "IBM Code Page 1140", - mib: identifier.IBM01140, - asciiSuperset: false, - low: 0x00, - replacement: 0x3f, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x97, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {1, [3]byte{0x0a, 0x00, 0x00}}, - {1, [3]byte{0x17, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {1, [3]byte{0x04, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {1, [3]byte{0x1a, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa4, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa7, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {1, [3]byte{0x2e, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x28, 0x00, 0x00}}, - {1, [3]byte{0x2b, 0x00, 0x00}}, {1, [3]byte{0x7c, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {1, [3]byte{0x21, 0x00, 0x00}}, {1, [3]byte{0x24, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x3b, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xac, 0x00}}, - {1, [3]byte{0x2d, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {1, [3]byte{0x2c, 0x00, 0x00}}, - {1, [3]byte{0x25, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {1, [3]byte{0x60, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x3d, 0x00, 0x00}}, {1, [3]byte{0x22, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {1, [3]byte{0x6a, 0x00, 0x00}}, - {1, [3]byte{0x6b, 0x00, 0x00}}, {1, [3]byte{0x6c, 0x00, 0x00}}, - {1, [3]byte{0x6d, 0x00, 0x00}}, {1, [3]byte{0x6e, 0x00, 0x00}}, - {1, [3]byte{0x6f, 0x00, 0x00}}, {1, [3]byte{0x70, 0x00, 0x00}}, - {1, [3]byte{0x71, 0x00, 0x00}}, {1, [3]byte{0x72, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - {2, [3]byte{0xc2, 0xb5, 0x00}}, {1, [3]byte{0x7e, 0x00, 0x00}}, - {1, [3]byte{0x73, 0x00, 0x00}}, {1, [3]byte{0x74, 0x00, 0x00}}, - {1, [3]byte{0x75, 0x00, 0x00}}, {1, [3]byte{0x76, 0x00, 0x00}}, - {1, [3]byte{0x77, 0x00, 0x00}}, {1, [3]byte{0x78, 0x00, 0x00}}, - {1, [3]byte{0x79, 0x00, 0x00}}, {1, [3]byte{0x7a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xa9, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xbc, 0x00}}, - {2, [3]byte{0xc2, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, - {1, [3]byte{0x5b, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {1, [3]byte{0x7b, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {1, [3]byte{0x7d, 0x00, 0x00}}, {1, [3]byte{0x4a, 0x00, 0x00}}, - {1, [3]byte{0x4b, 0x00, 0x00}}, {1, [3]byte{0x4c, 0x00, 0x00}}, - {1, [3]byte{0x4d, 0x00, 0x00}}, {1, [3]byte{0x4e, 0x00, 0x00}}, - {1, [3]byte{0x4f, 0x00, 0x00}}, {1, [3]byte{0x50, 0x00, 0x00}}, - {1, [3]byte{0x51, 0x00, 0x00}}, {1, [3]byte{0x52, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb9, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {1, [3]byte{0x53, 0x00, 0x00}}, {1, [3]byte{0x54, 0x00, 0x00}}, - {1, [3]byte{0x55, 0x00, 0x00}}, {1, [3]byte{0x56, 0x00, 0x00}}, - {1, [3]byte{0x57, 0x00, 0x00}}, {1, [3]byte{0x58, 0x00, 0x00}}, - {1, [3]byte{0x59, 0x00, 0x00}}, {1, [3]byte{0x5a, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x37000004, 0x2d000005, 0x2e000006, 0x2f000007, - 0x16000008, 0x05000009, 0x2500000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x3c000014, 0x3d000015, 0x32000016, 0x26000017, - 0x18000018, 0x19000019, 0x3f00001a, 0x2700001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x40000020, 0x5a000021, 0x7f000022, 0x7b000023, 0x5b000024, 0x6c000025, 0x50000026, 0x7d000027, - 0x4d000028, 0x5d000029, 0x5c00002a, 0x4e00002b, 0x6b00002c, 0x6000002d, 0x4b00002e, 0x6100002f, - 0xf0000030, 0xf1000031, 0xf2000032, 0xf3000033, 0xf4000034, 0xf5000035, 0xf6000036, 0xf7000037, - 0xf8000038, 0xf9000039, 0x7a00003a, 0x5e00003b, 0x4c00003c, 0x7e00003d, 0x6e00003e, 0x6f00003f, - 0x7c000040, 0xc1000041, 0xc2000042, 0xc3000043, 0xc4000044, 0xc5000045, 0xc6000046, 0xc7000047, - 0xc8000048, 0xc9000049, 0xd100004a, 0xd200004b, 0xd300004c, 0xd400004d, 0xd500004e, 0xd600004f, - 0xd7000050, 0xd8000051, 0xd9000052, 0xe2000053, 0xe3000054, 0xe4000055, 0xe5000056, 0xe6000057, - 0xe7000058, 0xe8000059, 0xe900005a, 0xba00005b, 0xe000005c, 0xbb00005d, 0xb000005e, 0x6d00005f, - 0x79000060, 0x81000061, 0x82000062, 0x83000063, 0x84000064, 0x85000065, 0x86000066, 0x87000067, - 0x88000068, 0x89000069, 0x9100006a, 0x9200006b, 0x9300006c, 0x9400006d, 0x9500006e, 0x9600006f, - 0x97000070, 0x98000071, 0x99000072, 0xa2000073, 0xa3000074, 0xa4000075, 0xa5000076, 0xa6000077, - 0xa7000078, 0xa8000079, 0xa900007a, 0xc000007b, 0x4f00007c, 0xd000007d, 0xa100007e, 0x0700007f, - 0x20000080, 0x21000081, 0x22000082, 0x23000083, 0x24000084, 0x15000085, 0x06000086, 0x17000087, - 0x28000088, 0x29000089, 0x2a00008a, 0x2b00008b, 0x2c00008c, 0x0900008d, 0x0a00008e, 0x1b00008f, - 0x30000090, 0x31000091, 0x1a000092, 0x33000093, 0x34000094, 0x35000095, 0x36000096, 0x08000097, - 0x38000098, 0x39000099, 0x3a00009a, 0x3b00009b, 0x0400009c, 0x1400009d, 0x3e00009e, 0xff00009f, - 0x410000a0, 0xaa0000a1, 0x4a0000a2, 0xb10000a3, 0xb20000a5, 0x6a0000a6, 0xb50000a7, 0xbd0000a8, - 0xb40000a9, 0x9a0000aa, 0x8a0000ab, 0x5f0000ac, 0xca0000ad, 0xaf0000ae, 0xbc0000af, 0x900000b0, - 0x8f0000b1, 0xea0000b2, 0xfa0000b3, 0xbe0000b4, 0xa00000b5, 0xb60000b6, 0xb30000b7, 0x9d0000b8, - 0xda0000b9, 0x9b0000ba, 0x8b0000bb, 0xb70000bc, 0xb80000bd, 0xb90000be, 0xab0000bf, 0x640000c0, - 0x650000c1, 0x620000c2, 0x660000c3, 0x630000c4, 0x670000c5, 0x9e0000c6, 0x680000c7, 0x740000c8, - 0x710000c9, 0x720000ca, 0x730000cb, 0x780000cc, 0x750000cd, 0x760000ce, 0x770000cf, 0xac0000d0, - 0x690000d1, 0xed0000d2, 0xee0000d3, 0xeb0000d4, 0xef0000d5, 0xec0000d6, 0xbf0000d7, 0x800000d8, - 0xfd0000d9, 0xfe0000da, 0xfb0000db, 0xfc0000dc, 0xad0000dd, 0xae0000de, 0x590000df, 0x440000e0, - 0x450000e1, 0x420000e2, 0x460000e3, 0x430000e4, 0x470000e5, 0x9c0000e6, 0x480000e7, 0x540000e8, - 0x510000e9, 0x520000ea, 0x530000eb, 0x580000ec, 0x550000ed, 0x560000ee, 0x570000ef, 0x8c0000f0, - 0x490000f1, 0xcd0000f2, 0xce0000f3, 0xcb0000f4, 0xcf0000f5, 0xcc0000f6, 0xe10000f7, 0x700000f8, - 0xdd0000f9, 0xde0000fa, 0xdb0000fb, 0xdc0000fc, 0x8d0000fd, 0x8e0000fe, 0xdf0000ff, 0x9f0020ac, - }, -} - -// ISO8859_1 is the ISO 8859-1 encoding. -var ISO8859_1 *Charmap = &iso8859_1 - -var iso8859_1 = Charmap{ - name: "ISO 8859-1", - mib: identifier.ISOLatin1, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {2, [3]byte{0xc2, 0x97, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x80000080, 0x81000081, 0x82000082, 0x83000083, 0x84000084, 0x85000085, 0x86000086, 0x87000087, - 0x88000088, 0x89000089, 0x8a00008a, 0x8b00008b, 0x8c00008c, 0x8d00008d, 0x8e00008e, 0x8f00008f, - 0x90000090, 0x91000091, 0x92000092, 0x93000093, 0x94000094, 0x95000095, 0x96000096, 0x97000097, - 0x98000098, 0x99000099, 0x9a00009a, 0x9b00009b, 0x9c00009c, 0x9d00009d, 0x9e00009e, 0x9f00009f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - }, -} - -// ISO8859_2 is the ISO 8859-2 encoding. -var ISO8859_2 *Charmap = &iso8859_2 - -var iso8859_2 = Charmap{ - name: "ISO 8859-2", - mib: identifier.ISOLatin2, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xbe, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb40000b4, 0xb80000b8, - 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, - 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, - 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, 0xfd0000fd, 0xc3000102, - 0xe3000103, 0xa1000104, 0xb1000105, 0xc6000106, 0xe6000107, 0xc800010c, 0xe800010d, 0xcf00010e, - 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, 0xec00011b, 0xc5000139, - 0xe500013a, 0xa500013d, 0xb500013e, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, 0xd2000147, - 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, 0xf8000159, 0xa600015a, - 0xb600015b, 0xaa00015e, 0xba00015f, 0xa9000160, 0xb9000161, 0xde000162, 0xfe000163, 0xab000164, - 0xbb000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0xac000179, 0xbc00017a, 0xaf00017b, - 0xbf00017c, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xa20002d8, 0xff0002d9, 0xb20002db, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, - }, -} - -// ISO8859_3 is the ISO 8859-3 encoding. -var ISO8859_3 *Charmap = &iso8859_3 - -var iso8859_3 = Charmap{ - name: "ISO 8859-3", - mib: identifier.ISOLatin3, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa6, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc4, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc4, 0x9e, 0x00}}, - {2, [3]byte{0xc4, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc4, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc4, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0xb5, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x8a, 0x00}}, - {2, [3]byte{0xc4, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc4, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xac, 0x00}}, - {2, [3]byte{0xc5, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0x9d, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0x9d, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb20000b2, - 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb70000b7, 0xb80000b8, 0xbd0000bd, 0xc00000c0, 0xc10000c1, - 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, - 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, - 0xd70000d7, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, - 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, - 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf60000f6, - 0xf70000f7, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc6000108, 0xe6000109, 0xc500010a, - 0xe500010b, 0xd800011c, 0xf800011d, 0xab00011e, 0xbb00011f, 0xd5000120, 0xf5000121, 0xa6000124, - 0xb6000125, 0xa1000126, 0xb1000127, 0xa9000130, 0xb9000131, 0xac000134, 0xbc000135, 0xde00015c, - 0xfe00015d, 0xaa00015e, 0xba00015f, 0xdd00016c, 0xfd00016d, 0xaf00017b, 0xbf00017c, 0xa20002d8, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, - }, -} - -// ISO8859_4 is the ISO 8859-4 encoding. -var ISO8859_4 *Charmap = &iso8859_4 - -var iso8859_4 = Charmap{ - name: "ISO 8859-4", - mib: identifier.ISOLatin4, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0x96, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}}, - {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}}, - {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}}, - {2, [3]byte{0xc5, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x97, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, - {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}}, - {2, [3]byte{0xc5, 0xa7, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0xaa, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}}, - {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xaf0000af, 0xb00000b0, 0xb40000b4, - 0xb80000b8, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, - 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, - 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, - 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xf40000f4, 0xf50000f5, - 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc0000100, 0xe0000101, - 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, 0xd0000110, 0xf0000111, 0xaa000112, 0xba000113, - 0xcc000116, 0xec000117, 0xca000118, 0xea000119, 0xab000122, 0xbb000123, 0xa5000128, 0xb5000129, - 0xcf00012a, 0xef00012b, 0xc700012e, 0xe700012f, 0xd3000136, 0xf3000137, 0xa2000138, 0xa600013b, - 0xb600013c, 0xd1000145, 0xf1000146, 0xbd00014a, 0xbf00014b, 0xd200014c, 0xf200014d, 0xa3000156, - 0xb3000157, 0xa9000160, 0xb9000161, 0xac000166, 0xbc000167, 0xdd000168, 0xfd000169, 0xde00016a, - 0xfe00016b, 0xd9000172, 0xf9000173, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xff0002d9, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, - }, -} - -// ISO8859_5 is the ISO 8859-5 encoding. -var ISO8859_5 *Charmap = &iso8859_5 - -var iso8859_5 = Charmap{ - name: "ISO 8859-5", - mib: identifier.ISOLatinCyrillic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xd0, 0x88, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9b, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xfd0000a7, 0xad0000ad, 0xa1000401, 0xa2000402, 0xa3000403, 0xa4000404, 0xa5000405, - 0xa6000406, 0xa7000407, 0xa8000408, 0xa9000409, 0xaa00040a, 0xab00040b, 0xac00040c, 0xae00040e, - 0xaf00040f, 0xb0000410, 0xb1000411, 0xb2000412, 0xb3000413, 0xb4000414, 0xb5000415, 0xb6000416, - 0xb7000417, 0xb8000418, 0xb9000419, 0xba00041a, 0xbb00041b, 0xbc00041c, 0xbd00041d, 0xbe00041e, - 0xbf00041f, 0xc0000420, 0xc1000421, 0xc2000422, 0xc3000423, 0xc4000424, 0xc5000425, 0xc6000426, - 0xc7000427, 0xc8000428, 0xc9000429, 0xca00042a, 0xcb00042b, 0xcc00042c, 0xcd00042d, 0xce00042e, - 0xcf00042f, 0xd0000430, 0xd1000431, 0xd2000432, 0xd3000433, 0xd4000434, 0xd5000435, 0xd6000436, - 0xd7000437, 0xd8000438, 0xd9000439, 0xda00043a, 0xdb00043b, 0xdc00043c, 0xdd00043d, 0xde00043e, - 0xdf00043f, 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, - 0xe7000447, 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, - 0xef00044f, 0xf1000451, 0xf2000452, 0xf3000453, 0xf4000454, 0xf5000455, 0xf6000456, 0xf7000457, - 0xf8000458, 0xf9000459, 0xfa00045a, 0xfb00045b, 0xfc00045c, 0xfe00045e, 0xff00045f, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, - }, -} - -// ISO8859_6 is the ISO 8859-6 encoding. -var ISO8859_6 *Charmap = &iso8859_6 - -var iso8859_6 = Charmap{ - name: "ISO 8859-6", - mib: identifier.ISOLatinArabic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd8, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9b, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9f, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0xa1, 0x00}}, - {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}}, - {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}}, - {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}}, - {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}}, - {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}}, - {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}}, - {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}}, - {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}}, - {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}}, - {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}}, - {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xd8, 0xb7, 0x00}}, - {2, [3]byte{0xd8, 0xb8, 0x00}}, {2, [3]byte{0xd8, 0xb9, 0x00}}, - {2, [3]byte{0xd8, 0xba, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}}, - {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}}, - {2, [3]byte{0xd9, 0x84, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}}, - {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}}, - {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xd9, 0x89, 0x00}}, - {2, [3]byte{0xd9, 0x8a, 0x00}}, {2, [3]byte{0xd9, 0x8b, 0x00}}, - {2, [3]byte{0xd9, 0x8c, 0x00}}, {2, [3]byte{0xd9, 0x8d, 0x00}}, - {2, [3]byte{0xd9, 0x8e, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}}, - {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xd9, 0x91, 0x00}}, - {2, [3]byte{0xd9, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xad0000ad, 0xac00060c, 0xbb00061b, 0xbf00061f, 0xc1000621, 0xc2000622, - 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, - 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, - 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, 0xd7000637, 0xd8000638, 0xd9000639, 0xda00063a, - 0xe0000640, 0xe1000641, 0xe2000642, 0xe3000643, 0xe4000644, 0xe5000645, 0xe6000646, 0xe7000647, - 0xe8000648, 0xe9000649, 0xea00064a, 0xeb00064b, 0xec00064c, 0xed00064d, 0xee00064e, 0xef00064f, - 0xf0000650, 0xf1000651, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, - }, -} - -// ISO8859_7 is the ISO 8859-7 encoding. -var ISO8859_7 *Charmap = &iso8859_7 - -var iso8859_7 = Charmap{ - name: "ISO 8859-7", - mib: identifier.ISOLatinGreek, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x82, 0xaf}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xcd, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}}, - {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}}, - {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}}, - {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}}, - {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}}, - {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}}, - {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}}, - {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}}, - {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}}, - {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}}, - {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}}, - {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}}, - {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}}, - {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}}, - {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}}, - {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}}, - {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}}, - {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}}, - {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}}, - {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}}, - {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}}, - {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}}, - {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}}, - {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}}, - {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}}, - {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac, - 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, - 0xaa00037a, 0xb4000384, 0xb5000385, 0xb6000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, - 0xbe00038e, 0xbf00038f, 0xc0000390, 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, - 0xc6000396, 0xc7000397, 0xc8000398, 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, - 0xce00039e, 0xcf00039f, 0xd00003a0, 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, - 0xd70003a7, 0xd80003a8, 0xd90003a9, 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, - 0xdf0003af, 0xe00003b0, 0xe10003b1, 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, - 0xe70003b7, 0xe80003b8, 0xe90003b9, 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, - 0xef0003bf, 0xf00003c0, 0xf10003c1, 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, - 0xf70003c7, 0xf80003c8, 0xf90003c9, 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, - 0xaf002015, 0xa1002018, 0xa2002019, 0xa40020ac, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, - }, -} - -// ISO8859_8 is the ISO 8859-8 encoding. -var ISO8859_8 *Charmap = &iso8859_8 - -var iso8859_8 = Charmap{ - name: "ISO 8859-8", - mib: identifier.ISOLatinHebrew, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x97}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xaa0000d7, 0xba0000f7, 0xe00005d0, 0xe10005d1, - 0xe20005d2, 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, - 0xea0005da, 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, - 0xf20005e2, 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, - 0xfa0005ea, 0xfd00200e, 0xfe00200f, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, - }, -} - -// ISO8859_9 is the ISO 8859-9 encoding. -var ISO8859_9 *Charmap = &iso8859_9 - -var iso8859_9 = Charmap{ - name: "ISO 8859-9", - mib: identifier.ISOLatin5, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, - {2, [3]byte{0xc2, 0x84, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, - {2, [3]byte{0xc2, 0x86, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, - {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, - {2, [3]byte{0xc2, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, - {2, [3]byte{0xc2, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, - {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, - {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, - {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, - {2, [3]byte{0xc2, 0x96, 0x00}}, {2, [3]byte{0xc2, 0x97, 0x00}}, - {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, - {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, - {2, [3]byte{0xc2, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0x9d, 0x00}}, - {2, [3]byte{0xc2, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x80000080, 0x81000081, 0x82000082, 0x83000083, 0x84000084, 0x85000085, 0x86000086, 0x87000087, - 0x88000088, 0x89000089, 0x8a00008a, 0x8b00008b, 0x8c00008c, 0x8d00008d, 0x8e00008e, 0x8f00008f, - 0x90000090, 0x91000091, 0x92000092, 0x93000093, 0x94000094, 0x95000095, 0x96000096, 0x97000097, - 0x98000098, 0x99000099, 0x9a00009a, 0x9b00009b, 0x9c00009c, 0x9d00009d, 0x9e00009e, 0x9f00009f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, - 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, - 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, - 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, - 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, - 0xfc0000fc, 0xff0000ff, 0xd000011e, 0xf000011f, 0xdd000130, 0xfd000131, 0xde00015e, 0xfe00015f, - }, -} - -// ISO8859_10 is the ISO 8859-10 encoding. -var ISO8859_10 *Charmap = &iso8859_10 - -var iso8859_10 = Charmap{ - name: "ISO 8859-10", - mib: identifier.ISOLatin6, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}}, - {2, [3]byte{0xc4, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa6, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x91, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0xb8, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa70000a7, 0xad0000ad, 0xb00000b0, 0xb70000b7, 0xc10000c1, 0xc20000c2, 0xc30000c3, - 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xda0000da, 0xdb0000db, - 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, - 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf00000f0, - 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, - 0xfd0000fd, 0xfe0000fe, 0xc0000100, 0xe0000101, 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, - 0xa9000110, 0xb9000111, 0xa2000112, 0xb2000113, 0xcc000116, 0xec000117, 0xca000118, 0xea000119, - 0xa3000122, 0xb3000123, 0xa5000128, 0xb5000129, 0xa400012a, 0xb400012b, 0xc700012e, 0xe700012f, - 0xa6000136, 0xb6000137, 0xff000138, 0xa800013b, 0xb800013c, 0xd1000145, 0xf1000146, 0xaf00014a, - 0xbf00014b, 0xd200014c, 0xf200014d, 0xaa000160, 0xba000161, 0xab000166, 0xbb000167, 0xd7000168, - 0xf7000169, 0xae00016a, 0xbe00016b, 0xd9000172, 0xf9000173, 0xac00017d, 0xbc00017e, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, - }, -} - -// ISO8859_13 is the ISO 8859-13 encoding. -var ISO8859_13 *Charmap = &iso8859_13 - -var iso8859_13 = Charmap{ - name: "ISO 8859-13", - mib: identifier.ISO885913, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}}, - {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, - 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb50000b5, - 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, - 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, - 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, - 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, - 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, - 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, - 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, - 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, - 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, - 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, 0xff002019, 0xb400201c, 0xa100201d, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, - }, -} - -// ISO8859_14 is the ISO 8859-14 encoding. -var ISO8859_14 *Charmap = &iso8859_14 - -var iso8859_14 = Charmap{ - name: "ISO 8859-14", - mib: identifier.ISO885914, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe1, 0xb8, 0x82}}, - {3, [3]byte{0xe1, 0xb8, 0x83}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc4, 0x8a, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}}, - {3, [3]byte{0xe1, 0xb8, 0x8a}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {3, [3]byte{0xe1, 0xba, 0x80}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe1, 0xba, 0x82}}, {3, [3]byte{0xe1, 0xb8, 0x8b}}, - {3, [3]byte{0xe1, 0xbb, 0xb2}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {3, [3]byte{0xe1, 0xb8, 0x9e}}, {3, [3]byte{0xe1, 0xb8, 0x9f}}, - {2, [3]byte{0xc4, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}}, - {3, [3]byte{0xe1, 0xb9, 0x80}}, {3, [3]byte{0xe1, 0xb9, 0x81}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0x96}}, - {3, [3]byte{0xe1, 0xba, 0x81}}, {3, [3]byte{0xe1, 0xb9, 0x97}}, - {3, [3]byte{0xe1, 0xba, 0x83}}, {3, [3]byte{0xe1, 0xb9, 0xa0}}, - {3, [3]byte{0xe1, 0xbb, 0xb3}}, {3, [3]byte{0xe1, 0xba, 0x84}}, - {3, [3]byte{0xe1, 0xba, 0x85}}, {3, [3]byte{0xe1, 0xb9, 0xa1}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc5, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xaa}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc5, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xab}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa70000a7, 0xa90000a9, 0xad0000ad, 0xae0000ae, 0xb60000b6, 0xc00000c0, - 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8, - 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, - 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xd90000d9, 0xda0000da, - 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, - 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, - 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, - 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, - 0xff0000ff, 0xa400010a, 0xa500010b, 0xb2000120, 0xb3000121, 0xd0000174, 0xf0000175, 0xde000176, - 0xfe000177, 0xaf000178, 0xa1001e02, 0xa2001e03, 0xa6001e0a, 0xab001e0b, 0xb0001e1e, 0xb1001e1f, - 0xb4001e40, 0xb5001e41, 0xb7001e56, 0xb9001e57, 0xbb001e60, 0xbf001e61, 0xd7001e6a, 0xf7001e6b, - 0xa8001e80, 0xb8001e81, 0xaa001e82, 0xba001e83, 0xbd001e84, 0xbe001e85, 0xac001ef2, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, - }, -} - -// ISO8859_15 is the ISO 8859-15 encoding. -var ISO8859_15 *Charmap = &iso8859_15 - -var iso8859_15 = Charmap{ - name: "ISO 8859-15", - mib: identifier.ISO885915, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa70000a7, 0xa90000a9, 0xaa0000aa, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2, - 0xb30000b3, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - 0xbc000152, 0xbd000153, 0xa6000160, 0xa8000161, 0xbe000178, 0xb400017d, 0xb800017e, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - }, -} - -// ISO8859_16 is the ISO 8859-16 encoding. -var ISO8859_16 *Charmap = &iso8859_16 - -var iso8859_16 = Charmap{ - name: "ISO 8859-16", - mib: identifier.ISO885916, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc8, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}}, - {2, [3]byte{0xc8, 0x99, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}}, - {2, [3]byte{0xc5, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0x98, 0x00}}, - {2, [3]byte{0xc8, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0x9b, 0x00}}, - {2, [3]byte{0xc5, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}}, - {2, [3]byte{0xc8, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb60000b6, - 0xb70000b7, 0xbb0000bb, 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, - 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe60000e6, 0xe70000e7, 0xe80000e8, - 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf20000f2, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xff0000ff, - 0xc3000102, 0xe3000103, 0xa1000104, 0xa2000105, 0xc5000106, 0xe5000107, 0xb200010c, 0xb900010d, - 0xd0000110, 0xf0000111, 0xdd000118, 0xfd000119, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, - 0xd5000150, 0xf5000151, 0xbc000152, 0xbd000153, 0xd700015a, 0xf700015b, 0xa6000160, 0xa8000161, - 0xd8000170, 0xf8000171, 0xbe000178, 0xac000179, 0xae00017a, 0xaf00017b, 0xbf00017c, 0xb400017d, - 0xb800017e, 0xaa000218, 0xba000219, 0xde00021a, 0xfe00021b, 0xb500201d, 0xa500201e, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, - }, -} - -// KOI8R is the KOI8-R encoding. -var KOI8R *Charmap = &koi8R - -var koi8R = Charmap{ - name: "KOI8-R", - mib: identifier.KOI8R, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}}, - {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0x96}}, - {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}}, - {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, - {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9e}}, - {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}}, - {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {3, [3]byte{0xe2, 0x95, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa5}}, - {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x95, 0xab}}, - {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xe1000410, - 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, - 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, - 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, - 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, - 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, - 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, - 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, - 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, - 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, 0x9b002321, 0x80002500, - 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, 0x87002524, 0x8800252c, - 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa4002553, 0xa5002554, 0xa6002555, - 0xa7002556, 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xad00255c, 0xae00255d, - 0xaf00255e, 0xb000255f, 0xb1002560, 0xb2002561, 0xb4002562, 0xb5002563, 0xb6002564, 0xb7002565, - 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0xbd00256b, 0xbe00256c, 0x8b002580, - 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0, - }, -} - -// KOI8U is the KOI8-U encoding. -var KOI8U *Charmap = &koi8U - -var koi8U = Charmap{ - name: "KOI8-U", - mib: identifier.KOI8U, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}}, - {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}}, - {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}}, - {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}}, - {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, - {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}}, - {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}}, - {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}}, - {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, - {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}}, - {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}}, - {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, - {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}}, - {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x94}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}}, - {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}}, - {3, [3]byte{0xe2, 0x95, 0x9b}}, {2, [3]byte{0xd2, 0x91, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x9e}}, - {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}}, - {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, - {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}}, - {3, [3]byte{0xe2, 0x95, 0xaa}}, {2, [3]byte{0xd2, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}}, - {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, - {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}}, - {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}}, - {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}}, - {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, - {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, - {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}}, - {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, - {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, - {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}}, - {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xb4000404, - 0xb6000406, 0xb7000407, 0xbe00040e, 0xe1000410, 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, - 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, - 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, - 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, - 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, - 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, - 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, - 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, - 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, 0xa4000454, 0xa6000456, 0xa7000457, 0xae00045e, - 0xbd000490, 0xad000491, 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, - 0x9b002321, 0x80002500, 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, - 0x87002524, 0x8800252c, 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa5002554, - 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xaf00255e, 0xb000255f, 0xb1002560, - 0xb2002561, 0xb5002563, 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0x8b002580, - 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0, - }, -} - -// Macintosh is the Macintosh encoding. -var Macintosh *Charmap = &macintosh - -var macintosh = Charmap{ - name: "Macintosh", - mib: identifier.Macintosh, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x91, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa8, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x82}}, {3, [3]byte{0xe2, 0x88, 0x91}}, - {3, [3]byte{0xe2, 0x88, 0x8f}}, {2, [3]byte{0xcf, 0x80, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0xab}}, {2, [3]byte{0xc2, 0xaa, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, - {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x97, 0x8a}}, - {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {3, [3]byte{0xe2, 0x81, 0x84}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - {3, [3]byte{0xe2, 0x80, 0xb9}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xac, 0x81}}, {3, [3]byte{0xef, 0xac, 0x82}}, - {3, [3]byte{0xe2, 0x80, 0xa1}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {3, [3]byte{0xe2, 0x80, 0xb0}}, {2, [3]byte{0xc3, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}}, - {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0x8f, 0x00}}, {2, [3]byte{0xc3, 0x8c, 0x00}}, - {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, - {3, [3]byte{0xef, 0xa3, 0xbf}}, {2, [3]byte{0xc3, 0x92, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x99, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {2, [3]byte{0xcb, 0x9c, 0x00}}, - {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xcb, 0x98, 0x00}}, - {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xcb, 0x9a, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xca0000a0, 0xc10000a1, 0xa20000a2, 0xa30000a3, 0xb40000a5, 0xa40000a7, 0xac0000a8, 0xa90000a9, - 0xbb0000aa, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xf80000af, 0xa10000b0, 0xb10000b1, 0xab0000b4, - 0xb50000b5, 0xa60000b6, 0xe10000b7, 0xfc0000b8, 0xbc0000ba, 0xc80000bb, 0xc00000bf, 0xcb0000c0, - 0xe70000c1, 0xe50000c2, 0xcc0000c3, 0x800000c4, 0x810000c5, 0xae0000c6, 0x820000c7, 0xe90000c8, - 0x830000c9, 0xe60000ca, 0xe80000cb, 0xed0000cc, 0xea0000cd, 0xeb0000ce, 0xec0000cf, 0x840000d1, - 0xf10000d2, 0xee0000d3, 0xef0000d4, 0xcd0000d5, 0x850000d6, 0xaf0000d8, 0xf40000d9, 0xf20000da, - 0xf30000db, 0x860000dc, 0xa70000df, 0x880000e0, 0x870000e1, 0x890000e2, 0x8b0000e3, 0x8a0000e4, - 0x8c0000e5, 0xbe0000e6, 0x8d0000e7, 0x8f0000e8, 0x8e0000e9, 0x900000ea, 0x910000eb, 0x930000ec, - 0x920000ed, 0x940000ee, 0x950000ef, 0x960000f1, 0x980000f2, 0x970000f3, 0x990000f4, 0x9b0000f5, - 0x9a0000f6, 0xd60000f7, 0xbf0000f8, 0x9d0000f9, 0x9c0000fa, 0x9e0000fb, 0x9f0000fc, 0xd80000ff, - 0xf5000131, 0xce000152, 0xcf000153, 0xd9000178, 0xc4000192, 0xf60002c6, 0xff0002c7, 0xf90002d8, - 0xfa0002d9, 0xfb0002da, 0xfe0002db, 0xf70002dc, 0xfd0002dd, 0xbd0003a9, 0xb90003c0, 0xd0002013, - 0xd1002014, 0xd4002018, 0xd5002019, 0xe200201a, 0xd200201c, 0xd300201d, 0xe300201e, 0xa0002020, - 0xe0002021, 0xa5002022, 0xc9002026, 0xe4002030, 0xdc002039, 0xdd00203a, 0xda002044, 0xdb0020ac, - 0xaa002122, 0xb6002202, 0xc6002206, 0xb800220f, 0xb7002211, 0xc300221a, 0xb000221e, 0xba00222b, - 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, 0xd70025ca, 0xf000f8ff, 0xde00fb01, 0xdf00fb02, - }, -} - -// MacintoshCyrillic is the Macintosh Cyrillic encoding. -var MacintoshCyrillic *Charmap = &macintoshCyrillic - -var macintoshCyrillic = Charmap{ - name: "Macintosh Cyrillic", - mib: identifier.MacintoshCyrillic, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}}, - {2, [3]byte{0xd2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xd0, 0x82, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}}, - {2, [3]byte{0xd0, 0x83, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, - {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}}, - {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x89, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x9a, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, - {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, - {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, - {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, - {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}}, - {2, [3]byte{0xd0, 0x8f, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd0, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xca0000a0, 0xa30000a3, 0xa40000a7, 0xa90000a9, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xa10000b0, - 0xb10000b1, 0xb50000b5, 0xa60000b6, 0xc80000bb, 0xd60000f7, 0xc4000192, 0xdd000401, 0xab000402, - 0xae000403, 0xb8000404, 0xc1000405, 0xa7000406, 0xba000407, 0xb7000408, 0xbc000409, 0xbe00040a, - 0xcb00040b, 0xcd00040c, 0xd800040e, 0xda00040f, 0x80000410, 0x81000411, 0x82000412, 0x83000413, - 0x84000414, 0x85000415, 0x86000416, 0x87000417, 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, - 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, 0x90000420, 0x91000421, 0x92000422, 0x93000423, - 0x94000424, 0x95000425, 0x96000426, 0x97000427, 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, - 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, 0xe0000430, 0xe1000431, 0xe2000432, 0xe3000433, - 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, 0xeb00043b, - 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, 0xf3000443, - 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, 0xfb00044b, - 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xdf00044f, 0xde000451, 0xac000452, 0xaf000453, 0xb9000454, - 0xcf000455, 0xb4000456, 0xbb000457, 0xc0000458, 0xbd000459, 0xbf00045a, 0xcc00045b, 0xce00045c, - 0xd900045e, 0xdb00045f, 0xa2000490, 0xb6000491, 0xd0002013, 0xd1002014, 0xd4002018, 0xd5002019, - 0xd200201c, 0xd300201d, 0xd700201e, 0xa0002020, 0xa5002022, 0xc9002026, 0xff0020ac, 0xdc002116, - 0xaa002122, 0xc6002206, 0xc300221a, 0xb000221e, 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, - }, -} - -// Windows874 is the Windows 874 encoding. -var Windows874 *Charmap = &windows874 - -var windows874 = Charmap{ - name: "Windows 874", - mib: identifier.Windows874, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe0, 0xb8, 0x81}}, - {3, [3]byte{0xe0, 0xb8, 0x82}}, {3, [3]byte{0xe0, 0xb8, 0x83}}, - {3, [3]byte{0xe0, 0xb8, 0x84}}, {3, [3]byte{0xe0, 0xb8, 0x85}}, - {3, [3]byte{0xe0, 0xb8, 0x86}}, {3, [3]byte{0xe0, 0xb8, 0x87}}, - {3, [3]byte{0xe0, 0xb8, 0x88}}, {3, [3]byte{0xe0, 0xb8, 0x89}}, - {3, [3]byte{0xe0, 0xb8, 0x8a}}, {3, [3]byte{0xe0, 0xb8, 0x8b}}, - {3, [3]byte{0xe0, 0xb8, 0x8c}}, {3, [3]byte{0xe0, 0xb8, 0x8d}}, - {3, [3]byte{0xe0, 0xb8, 0x8e}}, {3, [3]byte{0xe0, 0xb8, 0x8f}}, - {3, [3]byte{0xe0, 0xb8, 0x90}}, {3, [3]byte{0xe0, 0xb8, 0x91}}, - {3, [3]byte{0xe0, 0xb8, 0x92}}, {3, [3]byte{0xe0, 0xb8, 0x93}}, - {3, [3]byte{0xe0, 0xb8, 0x94}}, {3, [3]byte{0xe0, 0xb8, 0x95}}, - {3, [3]byte{0xe0, 0xb8, 0x96}}, {3, [3]byte{0xe0, 0xb8, 0x97}}, - {3, [3]byte{0xe0, 0xb8, 0x98}}, {3, [3]byte{0xe0, 0xb8, 0x99}}, - {3, [3]byte{0xe0, 0xb8, 0x9a}}, {3, [3]byte{0xe0, 0xb8, 0x9b}}, - {3, [3]byte{0xe0, 0xb8, 0x9c}}, {3, [3]byte{0xe0, 0xb8, 0x9d}}, - {3, [3]byte{0xe0, 0xb8, 0x9e}}, {3, [3]byte{0xe0, 0xb8, 0x9f}}, - {3, [3]byte{0xe0, 0xb8, 0xa0}}, {3, [3]byte{0xe0, 0xb8, 0xa1}}, - {3, [3]byte{0xe0, 0xb8, 0xa2}}, {3, [3]byte{0xe0, 0xb8, 0xa3}}, - {3, [3]byte{0xe0, 0xb8, 0xa4}}, {3, [3]byte{0xe0, 0xb8, 0xa5}}, - {3, [3]byte{0xe0, 0xb8, 0xa6}}, {3, [3]byte{0xe0, 0xb8, 0xa7}}, - {3, [3]byte{0xe0, 0xb8, 0xa8}}, {3, [3]byte{0xe0, 0xb8, 0xa9}}, - {3, [3]byte{0xe0, 0xb8, 0xaa}}, {3, [3]byte{0xe0, 0xb8, 0xab}}, - {3, [3]byte{0xe0, 0xb8, 0xac}}, {3, [3]byte{0xe0, 0xb8, 0xad}}, - {3, [3]byte{0xe0, 0xb8, 0xae}}, {3, [3]byte{0xe0, 0xb8, 0xaf}}, - {3, [3]byte{0xe0, 0xb8, 0xb0}}, {3, [3]byte{0xe0, 0xb8, 0xb1}}, - {3, [3]byte{0xe0, 0xb8, 0xb2}}, {3, [3]byte{0xe0, 0xb8, 0xb3}}, - {3, [3]byte{0xe0, 0xb8, 0xb4}}, {3, [3]byte{0xe0, 0xb8, 0xb5}}, - {3, [3]byte{0xe0, 0xb8, 0xb6}}, {3, [3]byte{0xe0, 0xb8, 0xb7}}, - {3, [3]byte{0xe0, 0xb8, 0xb8}}, {3, [3]byte{0xe0, 0xb8, 0xb9}}, - {3, [3]byte{0xe0, 0xb8, 0xba}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe0, 0xb8, 0xbf}}, - {3, [3]byte{0xe0, 0xb9, 0x80}}, {3, [3]byte{0xe0, 0xb9, 0x81}}, - {3, [3]byte{0xe0, 0xb9, 0x82}}, {3, [3]byte{0xe0, 0xb9, 0x83}}, - {3, [3]byte{0xe0, 0xb9, 0x84}}, {3, [3]byte{0xe0, 0xb9, 0x85}}, - {3, [3]byte{0xe0, 0xb9, 0x86}}, {3, [3]byte{0xe0, 0xb9, 0x87}}, - {3, [3]byte{0xe0, 0xb9, 0x88}}, {3, [3]byte{0xe0, 0xb9, 0x89}}, - {3, [3]byte{0xe0, 0xb9, 0x8a}}, {3, [3]byte{0xe0, 0xb9, 0x8b}}, - {3, [3]byte{0xe0, 0xb9, 0x8c}}, {3, [3]byte{0xe0, 0xb9, 0x8d}}, - {3, [3]byte{0xe0, 0xb9, 0x8e}}, {3, [3]byte{0xe0, 0xb9, 0x8f}}, - {3, [3]byte{0xe0, 0xb9, 0x90}}, {3, [3]byte{0xe0, 0xb9, 0x91}}, - {3, [3]byte{0xe0, 0xb9, 0x92}}, {3, [3]byte{0xe0, 0xb9, 0x93}}, - {3, [3]byte{0xe0, 0xb9, 0x94}}, {3, [3]byte{0xe0, 0xb9, 0x95}}, - {3, [3]byte{0xe0, 0xb9, 0x96}}, {3, [3]byte{0xe0, 0xb9, 0x97}}, - {3, [3]byte{0xe0, 0xb9, 0x98}}, {3, [3]byte{0xe0, 0xb9, 0x99}}, - {3, [3]byte{0xe0, 0xb9, 0x9a}}, {3, [3]byte{0xe0, 0xb9, 0x9b}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa1000e01, 0xa2000e02, 0xa3000e03, 0xa4000e04, 0xa5000e05, 0xa6000e06, 0xa7000e07, - 0xa8000e08, 0xa9000e09, 0xaa000e0a, 0xab000e0b, 0xac000e0c, 0xad000e0d, 0xae000e0e, 0xaf000e0f, - 0xb0000e10, 0xb1000e11, 0xb2000e12, 0xb3000e13, 0xb4000e14, 0xb5000e15, 0xb6000e16, 0xb7000e17, - 0xb8000e18, 0xb9000e19, 0xba000e1a, 0xbb000e1b, 0xbc000e1c, 0xbd000e1d, 0xbe000e1e, 0xbf000e1f, - 0xc0000e20, 0xc1000e21, 0xc2000e22, 0xc3000e23, 0xc4000e24, 0xc5000e25, 0xc6000e26, 0xc7000e27, - 0xc8000e28, 0xc9000e29, 0xca000e2a, 0xcb000e2b, 0xcc000e2c, 0xcd000e2d, 0xce000e2e, 0xcf000e2f, - 0xd0000e30, 0xd1000e31, 0xd2000e32, 0xd3000e33, 0xd4000e34, 0xd5000e35, 0xd6000e36, 0xd7000e37, - 0xd8000e38, 0xd9000e39, 0xda000e3a, 0xdf000e3f, 0xe0000e40, 0xe1000e41, 0xe2000e42, 0xe3000e43, - 0xe4000e44, 0xe5000e45, 0xe6000e46, 0xe7000e47, 0xe8000e48, 0xe9000e49, 0xea000e4a, 0xeb000e4b, - 0xec000e4c, 0xed000e4d, 0xee000e4e, 0xef000e4f, 0xf0000e50, 0xf1000e51, 0xf2000e52, 0xf3000e53, - 0xf4000e54, 0xf5000e55, 0xf6000e56, 0xf7000e57, 0xf8000e58, 0xf9000e59, 0xfa000e5a, 0xfb000e5b, - 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x9300201c, 0x9400201d, 0x95002022, 0x85002026, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, - }, -} - -// Windows1250 is the Windows 1250 encoding. -var Windows1250 *Charmap = &windows1250 - -var windows1250 = Charmap{ - name: "Windows 1250", - mib: identifier.Windows1250, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, - {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc4, 0xbd, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, - {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, - {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}}, - {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac, - 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xbb0000bb, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, - 0xcd0000cd, 0xce0000ce, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, - 0xdd0000dd, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, - 0xed0000ed, 0xee0000ee, 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, - 0xfd0000fd, 0xc3000102, 0xe3000103, 0xa5000104, 0xb9000105, 0xc6000106, 0xe6000107, 0xc800010c, - 0xe800010d, 0xcf00010e, 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, - 0xec00011b, 0xc5000139, 0xe500013a, 0xbc00013d, 0xbe00013e, 0xa3000141, 0xb3000142, 0xd1000143, - 0xf1000144, 0xd2000147, 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, - 0xf8000159, 0x8c00015a, 0x9c00015b, 0xaa00015e, 0xba00015f, 0x8a000160, 0x9a000161, 0xde000162, - 0xfe000163, 0x8d000164, 0x9d000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0x8f000179, - 0x9f00017a, 0xaf00017b, 0xbf00017c, 0x8e00017d, 0x9e00017e, 0xa10002c7, 0xa20002d8, 0xff0002d9, - 0xb20002db, 0xbd0002dd, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, - 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, - 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1251 is the Windows 1251 encoding. -var Windows1251 *Charmap = &windows1251 - -var windows1251 = Charmap{ - name: "Windows 1251", - mib: identifier.Windows1251, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xd1, 0x93, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xd0, 0x89, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, - {2, [3]byte{0xd0, 0x8b, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, - {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xd1, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9c, 0x00}}, - {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}}, - {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xd2, 0x90, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x96, 0x00}}, - {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xd1, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}}, - {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, - {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, - {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, - {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, - {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, - {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, - {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, - {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, - {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, - {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, - {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, - {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, - {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, - {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, - {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, - {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, - {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, - {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, - {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, - {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, - {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, - {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, - {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, - {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, - {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, - {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, - {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, - {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, - {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, - {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, - {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, - {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, - 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xa8000401, - 0x80000402, 0x81000403, 0xaa000404, 0xbd000405, 0xb2000406, 0xaf000407, 0xa3000408, 0x8a000409, - 0x8c00040a, 0x8e00040b, 0x8d00040c, 0xa100040e, 0x8f00040f, 0xc0000410, 0xc1000411, 0xc2000412, - 0xc3000413, 0xc4000414, 0xc5000415, 0xc6000416, 0xc7000417, 0xc8000418, 0xc9000419, 0xca00041a, - 0xcb00041b, 0xcc00041c, 0xcd00041d, 0xce00041e, 0xcf00041f, 0xd0000420, 0xd1000421, 0xd2000422, - 0xd3000423, 0xd4000424, 0xd5000425, 0xd6000426, 0xd7000427, 0xd8000428, 0xd9000429, 0xda00042a, - 0xdb00042b, 0xdc00042c, 0xdd00042d, 0xde00042e, 0xdf00042f, 0xe0000430, 0xe1000431, 0xe2000432, - 0xe3000433, 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, - 0xeb00043b, 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, - 0xf3000443, 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, - 0xfb00044b, 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xff00044f, 0xb8000451, 0x90000452, 0x83000453, - 0xba000454, 0xbe000455, 0xb3000456, 0xbf000457, 0xbc000458, 0x9a000459, 0x9c00045a, 0x9e00045b, - 0x9d00045c, 0xa200045e, 0x9f00045f, 0xa5000490, 0xb4000491, 0x96002013, 0x97002014, 0x91002018, - 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, - 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x880020ac, 0xb9002116, 0x99002122, 0x99002122, - }, -} - -// Windows1252 is the Windows 1252 encoding. -var Windows1252 *Charmap = &windows1252 - -var windows1252 = Charmap{ - name: "Windows 1252", - mib: identifier.Windows1252, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, - {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, - {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, - 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, - 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, - 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, - 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, - 0x8c000152, 0x9c000153, 0x8a000160, 0x9a000161, 0x9f000178, 0x8e00017d, 0x9e00017e, 0x83000192, - 0x880002c6, 0x980002dc, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, - 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, - 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1253 is the Windows 1253 encoding. -var Windows1253 *Charmap = &windows1253 - -var windows1253 = Charmap{ - name: "Windows 1253", - mib: identifier.Windows1253, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}}, - {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}}, - {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}}, - {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}}, - {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}}, - {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}}, - {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}}, - {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}}, - {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}}, - {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}}, - {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}}, - {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}}, - {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}}, - {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}}, - {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, - {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}}, - {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}}, - {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}}, - {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}}, - {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}}, - {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}}, - {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}}, - {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}}, - {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}}, - {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}}, - {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}}, - {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}}, - {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, - {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}}, - {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}}, - {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}}, - {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}}, - {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}}, - {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, - 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, 0x83000192, 0xb4000384, 0xa1000385, - 0xa2000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, 0xbe00038e, 0xbf00038f, 0xc0000390, - 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, 0xc6000396, 0xc7000397, 0xc8000398, - 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, 0xce00039e, 0xcf00039f, 0xd00003a0, - 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, 0xd70003a7, 0xd80003a8, 0xd90003a9, - 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, 0xdf0003af, 0xe00003b0, 0xe10003b1, - 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, 0xe70003b7, 0xe80003b8, 0xe90003b9, - 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, 0xef0003bf, 0xf00003c0, 0xf10003c1, - 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, 0xf70003c7, 0xf80003c8, 0xf90003c9, - 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, 0x96002013, 0x97002014, 0xaf002015, - 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, - 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1254 is the Windows 1254 encoding. -var Windows1254 *Charmap = &windows1254 - -var windows1254 = Charmap{ - name: "Windows 1254", - mib: identifier.Windows1254, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, - {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, - {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, - 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, - 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, - 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, - 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, - 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, - 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, - 0xfc0000fc, 0xff0000ff, 0xd000011e, 0xf000011f, 0xdd000130, 0xfd000131, 0x8c000152, 0x9c000153, - 0xde00015e, 0xfe00015f, 0x8a000160, 0x9a000161, 0x9f000178, 0x83000192, 0x880002c6, 0x980002dc, - 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, - 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1255 is the Windows 1255 encoding. -var Windows1255 *Charmap = &windows1255 - -var windows1255 = Charmap{ - name: "Windows 1255", - mib: identifier.Windows1255, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xaa}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xd6, 0xb0, 0x00}}, {2, [3]byte{0xd6, 0xb1, 0x00}}, - {2, [3]byte{0xd6, 0xb2, 0x00}}, {2, [3]byte{0xd6, 0xb3, 0x00}}, - {2, [3]byte{0xd6, 0xb4, 0x00}}, {2, [3]byte{0xd6, 0xb5, 0x00}}, - {2, [3]byte{0xd6, 0xb6, 0x00}}, {2, [3]byte{0xd6, 0xb7, 0x00}}, - {2, [3]byte{0xd6, 0xb8, 0x00}}, {2, [3]byte{0xd6, 0xb9, 0x00}}, - {2, [3]byte{0xd6, 0xba, 0x00}}, {2, [3]byte{0xd6, 0xbb, 0x00}}, - {2, [3]byte{0xd6, 0xbc, 0x00}}, {2, [3]byte{0xd6, 0xbd, 0x00}}, - {2, [3]byte{0xd6, 0xbe, 0x00}}, {2, [3]byte{0xd6, 0xbf, 0x00}}, - {2, [3]byte{0xd7, 0x80, 0x00}}, {2, [3]byte{0xd7, 0x81, 0x00}}, - {2, [3]byte{0xd7, 0x82, 0x00}}, {2, [3]byte{0xd7, 0x83, 0x00}}, - {2, [3]byte{0xd7, 0xb0, 0x00}}, {2, [3]byte{0xd7, 0xb1, 0x00}}, - {2, [3]byte{0xd7, 0xb2, 0x00}}, {2, [3]byte{0xd7, 0xb3, 0x00}}, - {2, [3]byte{0xd7, 0xb4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, - {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, - {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, - {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, - {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, - {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, - {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, - {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, - {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, - {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, - {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, - {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, - {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, - {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, 0xaa0000d7, 0xba0000f7, 0x83000192, - 0x880002c6, 0x980002dc, 0xc00005b0, 0xc10005b1, 0xc20005b2, 0xc30005b3, 0xc40005b4, 0xc50005b5, - 0xc60005b6, 0xc70005b7, 0xc80005b8, 0xc90005b9, 0xca0005ba, 0xcb0005bb, 0xcc0005bc, 0xcd0005bd, - 0xce0005be, 0xcf0005bf, 0xd00005c0, 0xd10005c1, 0xd20005c2, 0xd30005c3, 0xe00005d0, 0xe10005d1, - 0xe20005d2, 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, - 0xea0005da, 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, - 0xf20005e2, 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, - 0xfa0005ea, 0xd40005f0, 0xd50005f1, 0xd60005f2, 0xd70005f3, 0xd80005f4, 0xfd00200e, 0xfe00200f, - 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, - 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xa40020aa, - 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1256 is the Windows 1256 encoding. -var Windows1256 *Charmap = &windows1256 - -var windows1256 = Charmap{ - name: "Windows 1256", - mib: identifier.Windows1256, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xd9, 0xbe, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {2, [3]byte{0xd9, 0xb9, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xda, 0x86, 0x00}}, - {2, [3]byte{0xda, 0x98, 0x00}}, {2, [3]byte{0xda, 0x88, 0x00}}, - {2, [3]byte{0xda, 0xaf, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xda, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {2, [3]byte{0xda, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8c}}, - {3, [3]byte{0xe2, 0x80, 0x8d}}, {2, [3]byte{0xda, 0xba, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd8, 0x8c, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xda, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xd8, 0x9b, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xd8, 0x9f, 0x00}}, - {2, [3]byte{0xdb, 0x81, 0x00}}, {2, [3]byte{0xd8, 0xa1, 0x00}}, - {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}}, - {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}}, - {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}}, - {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}}, - {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}}, - {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}}, - {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}}, - {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}}, - {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}}, - {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}}, - {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xd8, 0xb7, 0x00}}, {2, [3]byte{0xd8, 0xb8, 0x00}}, - {2, [3]byte{0xd8, 0xb9, 0x00}}, {2, [3]byte{0xd8, 0xba, 0x00}}, - {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}}, - {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xd9, 0x84, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}}, - {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}}, - {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xd9, 0x89, 0x00}}, {2, [3]byte{0xd9, 0x8a, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xd9, 0x8b, 0x00}}, {2, [3]byte{0xd9, 0x8c, 0x00}}, - {2, [3]byte{0xd9, 0x8d, 0x00}}, {2, [3]byte{0xd9, 0x8e, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}}, - {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xd9, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xd9, 0x92, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, - {3, [3]byte{0xe2, 0x80, 0x8f}}, {2, [3]byte{0xdb, 0x92, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, - 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, - 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, - 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xd70000d7, 0xe00000e0, 0xe20000e2, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xee0000ee, 0xef0000ef, 0xf40000f4, 0xf70000f7, - 0xf90000f9, 0xfb0000fb, 0xfc0000fc, 0x8c000152, 0x9c000153, 0x83000192, 0x880002c6, 0xa100060c, - 0xba00061b, 0xbf00061f, 0xc1000621, 0xc2000622, 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, - 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, - 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, - 0xd8000637, 0xd9000638, 0xda000639, 0xdb00063a, 0xdc000640, 0xdd000641, 0xde000642, 0xdf000643, - 0xe1000644, 0xe3000645, 0xe4000646, 0xe5000647, 0xe6000648, 0xec000649, 0xed00064a, 0xf000064b, - 0xf100064c, 0xf200064d, 0xf300064e, 0xf500064f, 0xf6000650, 0xf8000651, 0xfa000652, 0x8a000679, - 0x8100067e, 0x8d000686, 0x8f000688, 0x9a000691, 0x8e000698, 0x980006a9, 0x900006af, 0x9f0006ba, - 0xaa0006be, 0xc00006c1, 0xff0006d2, 0x9d00200c, 0x9e00200d, 0xfd00200e, 0xfe00200f, 0x96002013, - 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, - 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, - }, -} - -// Windows1257 is the Windows 1257 encoding. -var Windows1257 *Charmap = &windows1257 - -var windows1257 = Charmap{ - name: "Windows 1257", - mib: identifier.Windows1257, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, - {2, [3]byte{0xcb, 0x87, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xcb, 0x9b, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, - {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, - {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}}, - {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}}, - {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, - {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, - {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, - {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, - {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}}, - {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}}, - {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, - {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, - {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, - {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, - {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0x8d0000a8, 0xa90000a9, - 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0x9d0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2, - 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0x8f0000b8, 0xb90000b9, 0xbb0000bb, - 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, - 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, - 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, - 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, - 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, - 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, - 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, - 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, - 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, - 0x8e0002c7, 0xff0002d9, 0x9e0002db, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, - 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, - 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// Windows1258 is the Windows 1258 encoding. -var Windows1258 *Charmap = &windows1258 - -var windows1258 = Charmap{ - name: "Windows 1258", - mib: identifier.Windows1258, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, - {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, - {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, - {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, - {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, - {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, - {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, - {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, - {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, - {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, - {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, - {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, - {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, - {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, - {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, - {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, - {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, - {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, - {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, - {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, - {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, - {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, - {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, - {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, - {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, - {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, - {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, - {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, - {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, - {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, - {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, - {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, - {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, - {2, [3]byte{0xcc, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, - {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, - {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, - {2, [3]byte{0xcc, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, - {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc6, 0xa0, 0x00}}, - {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, - {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, - {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, - {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc6, 0xaf, 0x00}}, - {2, [3]byte{0xcc, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, - {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, - {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, - {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, - {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, - {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, - {2, [3]byte{0xcc, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, - {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, - {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, - {2, [3]byte{0xcc, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, - {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc6, 0xa1, 0x00}}, - {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, - {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, - {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, - {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc6, 0xb0, 0x00}}, - {3, [3]byte{0xe2, 0x82, 0xab}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, - 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, - 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, - 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, - 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8, - 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd30000d3, - 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, - 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, - 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, - 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, - 0xfc0000fc, 0xff0000ff, 0xc3000102, 0xe3000103, 0xd0000110, 0xf0000111, 0x8c000152, 0x9c000153, - 0x9f000178, 0x83000192, 0xd50001a0, 0xf50001a1, 0xdd0001af, 0xfd0001b0, 0x880002c6, 0x980002dc, - 0xcc000300, 0xec000301, 0xde000303, 0xd2000309, 0xf2000323, 0x96002013, 0x97002014, 0x91002018, - 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, - 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xfe0020ab, 0x800020ac, 0x99002122, 0x99002122, - 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, - }, -} - -// XUserDefined is the X-User-Defined encoding. -// -// It is defined at http://encoding.spec.whatwg.org/#x-user-defined -var XUserDefined *Charmap = &xUserDefined - -var xUserDefined = Charmap{ - name: "X-User-Defined", - mib: identifier.XUserDefined, - asciiSuperset: true, - low: 0x80, - replacement: 0x1a, - decode: [256]utf8Enc{ - {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, - {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, - {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, - {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, - {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, - {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, - {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, - {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, - {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, - {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, - {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, - {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, - {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, - {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, - {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, - {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, - {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, - {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, - {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, - {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, - {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, - {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, - {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, - {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, - {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, - {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, - {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, - {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, - {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, - {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, - {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, - {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, - {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, - {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, - {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, - {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, - {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, - {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, - {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, - {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, - {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, - {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, - {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, - {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, - {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, - {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, - {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, - {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, - {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, - {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, - {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, - {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, - {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, - {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, - {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, - {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, - {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, - {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, - {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, - {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, - {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, - {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, - {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, - {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, - {3, [3]byte{0xef, 0x9e, 0x80}}, {3, [3]byte{0xef, 0x9e, 0x81}}, - {3, [3]byte{0xef, 0x9e, 0x82}}, {3, [3]byte{0xef, 0x9e, 0x83}}, - {3, [3]byte{0xef, 0x9e, 0x84}}, {3, [3]byte{0xef, 0x9e, 0x85}}, - {3, [3]byte{0xef, 0x9e, 0x86}}, {3, [3]byte{0xef, 0x9e, 0x87}}, - {3, [3]byte{0xef, 0x9e, 0x88}}, {3, [3]byte{0xef, 0x9e, 0x89}}, - {3, [3]byte{0xef, 0x9e, 0x8a}}, {3, [3]byte{0xef, 0x9e, 0x8b}}, - {3, [3]byte{0xef, 0x9e, 0x8c}}, {3, [3]byte{0xef, 0x9e, 0x8d}}, - {3, [3]byte{0xef, 0x9e, 0x8e}}, {3, [3]byte{0xef, 0x9e, 0x8f}}, - {3, [3]byte{0xef, 0x9e, 0x90}}, {3, [3]byte{0xef, 0x9e, 0x91}}, - {3, [3]byte{0xef, 0x9e, 0x92}}, {3, [3]byte{0xef, 0x9e, 0x93}}, - {3, [3]byte{0xef, 0x9e, 0x94}}, {3, [3]byte{0xef, 0x9e, 0x95}}, - {3, [3]byte{0xef, 0x9e, 0x96}}, {3, [3]byte{0xef, 0x9e, 0x97}}, - {3, [3]byte{0xef, 0x9e, 0x98}}, {3, [3]byte{0xef, 0x9e, 0x99}}, - {3, [3]byte{0xef, 0x9e, 0x9a}}, {3, [3]byte{0xef, 0x9e, 0x9b}}, - {3, [3]byte{0xef, 0x9e, 0x9c}}, {3, [3]byte{0xef, 0x9e, 0x9d}}, - {3, [3]byte{0xef, 0x9e, 0x9e}}, {3, [3]byte{0xef, 0x9e, 0x9f}}, - {3, [3]byte{0xef, 0x9e, 0xa0}}, {3, [3]byte{0xef, 0x9e, 0xa1}}, - {3, [3]byte{0xef, 0x9e, 0xa2}}, {3, [3]byte{0xef, 0x9e, 0xa3}}, - {3, [3]byte{0xef, 0x9e, 0xa4}}, {3, [3]byte{0xef, 0x9e, 0xa5}}, - {3, [3]byte{0xef, 0x9e, 0xa6}}, {3, [3]byte{0xef, 0x9e, 0xa7}}, - {3, [3]byte{0xef, 0x9e, 0xa8}}, {3, [3]byte{0xef, 0x9e, 0xa9}}, - {3, [3]byte{0xef, 0x9e, 0xaa}}, {3, [3]byte{0xef, 0x9e, 0xab}}, - {3, [3]byte{0xef, 0x9e, 0xac}}, {3, [3]byte{0xef, 0x9e, 0xad}}, - {3, [3]byte{0xef, 0x9e, 0xae}}, {3, [3]byte{0xef, 0x9e, 0xaf}}, - {3, [3]byte{0xef, 0x9e, 0xb0}}, {3, [3]byte{0xef, 0x9e, 0xb1}}, - {3, [3]byte{0xef, 0x9e, 0xb2}}, {3, [3]byte{0xef, 0x9e, 0xb3}}, - {3, [3]byte{0xef, 0x9e, 0xb4}}, {3, [3]byte{0xef, 0x9e, 0xb5}}, - {3, [3]byte{0xef, 0x9e, 0xb6}}, {3, [3]byte{0xef, 0x9e, 0xb7}}, - {3, [3]byte{0xef, 0x9e, 0xb8}}, {3, [3]byte{0xef, 0x9e, 0xb9}}, - {3, [3]byte{0xef, 0x9e, 0xba}}, {3, [3]byte{0xef, 0x9e, 0xbb}}, - {3, [3]byte{0xef, 0x9e, 0xbc}}, {3, [3]byte{0xef, 0x9e, 0xbd}}, - {3, [3]byte{0xef, 0x9e, 0xbe}}, {3, [3]byte{0xef, 0x9e, 0xbf}}, - {3, [3]byte{0xef, 0x9f, 0x80}}, {3, [3]byte{0xef, 0x9f, 0x81}}, - {3, [3]byte{0xef, 0x9f, 0x82}}, {3, [3]byte{0xef, 0x9f, 0x83}}, - {3, [3]byte{0xef, 0x9f, 0x84}}, {3, [3]byte{0xef, 0x9f, 0x85}}, - {3, [3]byte{0xef, 0x9f, 0x86}}, {3, [3]byte{0xef, 0x9f, 0x87}}, - {3, [3]byte{0xef, 0x9f, 0x88}}, {3, [3]byte{0xef, 0x9f, 0x89}}, - {3, [3]byte{0xef, 0x9f, 0x8a}}, {3, [3]byte{0xef, 0x9f, 0x8b}}, - {3, [3]byte{0xef, 0x9f, 0x8c}}, {3, [3]byte{0xef, 0x9f, 0x8d}}, - {3, [3]byte{0xef, 0x9f, 0x8e}}, {3, [3]byte{0xef, 0x9f, 0x8f}}, - {3, [3]byte{0xef, 0x9f, 0x90}}, {3, [3]byte{0xef, 0x9f, 0x91}}, - {3, [3]byte{0xef, 0x9f, 0x92}}, {3, [3]byte{0xef, 0x9f, 0x93}}, - {3, [3]byte{0xef, 0x9f, 0x94}}, {3, [3]byte{0xef, 0x9f, 0x95}}, - {3, [3]byte{0xef, 0x9f, 0x96}}, {3, [3]byte{0xef, 0x9f, 0x97}}, - {3, [3]byte{0xef, 0x9f, 0x98}}, {3, [3]byte{0xef, 0x9f, 0x99}}, - {3, [3]byte{0xef, 0x9f, 0x9a}}, {3, [3]byte{0xef, 0x9f, 0x9b}}, - {3, [3]byte{0xef, 0x9f, 0x9c}}, {3, [3]byte{0xef, 0x9f, 0x9d}}, - {3, [3]byte{0xef, 0x9f, 0x9e}}, {3, [3]byte{0xef, 0x9f, 0x9f}}, - {3, [3]byte{0xef, 0x9f, 0xa0}}, {3, [3]byte{0xef, 0x9f, 0xa1}}, - {3, [3]byte{0xef, 0x9f, 0xa2}}, {3, [3]byte{0xef, 0x9f, 0xa3}}, - {3, [3]byte{0xef, 0x9f, 0xa4}}, {3, [3]byte{0xef, 0x9f, 0xa5}}, - {3, [3]byte{0xef, 0x9f, 0xa6}}, {3, [3]byte{0xef, 0x9f, 0xa7}}, - {3, [3]byte{0xef, 0x9f, 0xa8}}, {3, [3]byte{0xef, 0x9f, 0xa9}}, - {3, [3]byte{0xef, 0x9f, 0xaa}}, {3, [3]byte{0xef, 0x9f, 0xab}}, - {3, [3]byte{0xef, 0x9f, 0xac}}, {3, [3]byte{0xef, 0x9f, 0xad}}, - {3, [3]byte{0xef, 0x9f, 0xae}}, {3, [3]byte{0xef, 0x9f, 0xaf}}, - {3, [3]byte{0xef, 0x9f, 0xb0}}, {3, [3]byte{0xef, 0x9f, 0xb1}}, - {3, [3]byte{0xef, 0x9f, 0xb2}}, {3, [3]byte{0xef, 0x9f, 0xb3}}, - {3, [3]byte{0xef, 0x9f, 0xb4}}, {3, [3]byte{0xef, 0x9f, 0xb5}}, - {3, [3]byte{0xef, 0x9f, 0xb6}}, {3, [3]byte{0xef, 0x9f, 0xb7}}, - {3, [3]byte{0xef, 0x9f, 0xb8}}, {3, [3]byte{0xef, 0x9f, 0xb9}}, - {3, [3]byte{0xef, 0x9f, 0xba}}, {3, [3]byte{0xef, 0x9f, 0xbb}}, - {3, [3]byte{0xef, 0x9f, 0xbc}}, {3, [3]byte{0xef, 0x9f, 0xbd}}, - {3, [3]byte{0xef, 0x9f, 0xbe}}, {3, [3]byte{0xef, 0x9f, 0xbf}}, - }, - encode: [256]uint32{ - 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, - 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, - 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, - 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, - 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, - 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, - 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, - 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, - 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, - 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, - 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, - 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, - 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, - 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, - 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, - 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, - 0x8000f780, 0x8100f781, 0x8200f782, 0x8300f783, 0x8400f784, 0x8500f785, 0x8600f786, 0x8700f787, - 0x8800f788, 0x8900f789, 0x8a00f78a, 0x8b00f78b, 0x8c00f78c, 0x8d00f78d, 0x8e00f78e, 0x8f00f78f, - 0x9000f790, 0x9100f791, 0x9200f792, 0x9300f793, 0x9400f794, 0x9500f795, 0x9600f796, 0x9700f797, - 0x9800f798, 0x9900f799, 0x9a00f79a, 0x9b00f79b, 0x9c00f79c, 0x9d00f79d, 0x9e00f79e, 0x9f00f79f, - 0xa000f7a0, 0xa100f7a1, 0xa200f7a2, 0xa300f7a3, 0xa400f7a4, 0xa500f7a5, 0xa600f7a6, 0xa700f7a7, - 0xa800f7a8, 0xa900f7a9, 0xaa00f7aa, 0xab00f7ab, 0xac00f7ac, 0xad00f7ad, 0xae00f7ae, 0xaf00f7af, - 0xb000f7b0, 0xb100f7b1, 0xb200f7b2, 0xb300f7b3, 0xb400f7b4, 0xb500f7b5, 0xb600f7b6, 0xb700f7b7, - 0xb800f7b8, 0xb900f7b9, 0xba00f7ba, 0xbb00f7bb, 0xbc00f7bc, 0xbd00f7bd, 0xbe00f7be, 0xbf00f7bf, - 0xc000f7c0, 0xc100f7c1, 0xc200f7c2, 0xc300f7c3, 0xc400f7c4, 0xc500f7c5, 0xc600f7c6, 0xc700f7c7, - 0xc800f7c8, 0xc900f7c9, 0xca00f7ca, 0xcb00f7cb, 0xcc00f7cc, 0xcd00f7cd, 0xce00f7ce, 0xcf00f7cf, - 0xd000f7d0, 0xd100f7d1, 0xd200f7d2, 0xd300f7d3, 0xd400f7d4, 0xd500f7d5, 0xd600f7d6, 0xd700f7d7, - 0xd800f7d8, 0xd900f7d9, 0xda00f7da, 0xdb00f7db, 0xdc00f7dc, 0xdd00f7dd, 0xde00f7de, 0xdf00f7df, - 0xe000f7e0, 0xe100f7e1, 0xe200f7e2, 0xe300f7e3, 0xe400f7e4, 0xe500f7e5, 0xe600f7e6, 0xe700f7e7, - 0xe800f7e8, 0xe900f7e9, 0xea00f7ea, 0xeb00f7eb, 0xec00f7ec, 0xed00f7ed, 0xee00f7ee, 0xef00f7ef, - 0xf000f7f0, 0xf100f7f1, 0xf200f7f2, 0xf300f7f3, 0xf400f7f4, 0xf500f7f5, 0xf600f7f6, 0xf700f7f7, - 0xf800f7f8, 0xf900f7f9, 0xfa00f7fa, 0xfb00f7fb, 0xfc00f7fc, 0xfd00f7fd, 0xfe00f7fe, 0xff00f7ff, - }, -} -var listAll = []encoding.Encoding{ - CodePage037, - CodePage437, - CodePage850, - CodePage852, - CodePage855, - CodePage858, - CodePage860, - CodePage862, - CodePage863, - CodePage865, - CodePage866, - CodePage1047, - CodePage1140, - ISO8859_1, - ISO8859_2, - ISO8859_3, - ISO8859_4, - ISO8859_5, - ISO8859_6, - ISO8859_6E, - ISO8859_6I, - ISO8859_7, - ISO8859_8, - ISO8859_8E, - ISO8859_8I, - ISO8859_9, - ISO8859_10, - ISO8859_13, - ISO8859_14, - ISO8859_15, - ISO8859_16, - KOI8R, - KOI8U, - Macintosh, - MacintoshCyrillic, - Windows874, - Windows1250, - Windows1251, - Windows1252, - Windows1253, - Windows1254, - Windows1255, - Windows1256, - Windows1257, - Windows1258, - XUserDefined, -} - -// Total table size 87024 bytes (84KiB); checksum: 811C9DC5 diff --git a/vendor/golang.org/x/text/encoding/encoding.go b/vendor/golang.org/x/text/encoding/encoding.go deleted file mode 100644 index a0bd7cd4d0..0000000000 --- a/vendor/golang.org/x/text/encoding/encoding.go +++ /dev/null @@ -1,335 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package encoding defines an interface for character encodings, such as Shift -// JIS and Windows 1252, that can convert to and from UTF-8. -// -// Encoding implementations are provided in other packages, such as -// golang.org/x/text/encoding/charmap and -// golang.org/x/text/encoding/japanese. -package encoding // import "golang.org/x/text/encoding" - -import ( - "errors" - "io" - "strconv" - "unicode/utf8" - - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// TODO: -// - There seems to be some inconsistency in when decoders return errors -// and when not. Also documentation seems to suggest they shouldn't return -// errors at all (except for UTF-16). -// - Encoders seem to rely on or at least benefit from the input being in NFC -// normal form. Perhaps add an example how users could prepare their output. - -// Encoding is a character set encoding that can be transformed to and from -// UTF-8. -type Encoding interface { - // NewDecoder returns a Decoder. - NewDecoder() *Decoder - - // NewEncoder returns an Encoder. - NewEncoder() *Encoder -} - -// A Decoder converts bytes to UTF-8. It implements transform.Transformer. -// -// Transforming source bytes that are not of that encoding will not result in an -// error per se. Each byte that cannot be transcoded will be represented in the -// output by the UTF-8 encoding of '\uFFFD', the replacement rune. -type Decoder struct { - transform.Transformer - - // This forces external creators of Decoders to use names in struct - // initializers, allowing for future extendibility without having to break - // code. - _ struct{} -} - -// Bytes converts the given encoded bytes to UTF-8. It returns the converted -// bytes or nil, err if any error occurred. -func (d *Decoder) Bytes(b []byte) ([]byte, error) { - b, _, err := transform.Bytes(d, b) - if err != nil { - return nil, err - } - return b, nil -} - -// String converts the given encoded string to UTF-8. It returns the converted -// string or "", err if any error occurred. -func (d *Decoder) String(s string) (string, error) { - s, _, err := transform.String(d, s) - if err != nil { - return "", err - } - return s, nil -} - -// Reader wraps another Reader to decode its bytes. -// -// The Decoder may not be used for any other operation as long as the returned -// Reader is in use. -func (d *Decoder) Reader(r io.Reader) io.Reader { - return transform.NewReader(r, d) -} - -// An Encoder converts bytes from UTF-8. It implements transform.Transformer. -// -// Each rune that cannot be transcoded will result in an error. In this case, -// the transform will consume all source byte up to, not including the offending -// rune. Transforming source bytes that are not valid UTF-8 will be replaced by -// `\uFFFD`. To return early with an error instead, use transform.Chain to -// preprocess the data with a UTF8Validator. -type Encoder struct { - transform.Transformer - - // This forces external creators of Encoders to use names in struct - // initializers, allowing for future extendibility without having to break - // code. - _ struct{} -} - -// Bytes converts bytes from UTF-8. It returns the converted bytes or nil, err if -// any error occurred. -func (e *Encoder) Bytes(b []byte) ([]byte, error) { - b, _, err := transform.Bytes(e, b) - if err != nil { - return nil, err - } - return b, nil -} - -// String converts a string from UTF-8. It returns the converted string or -// "", err if any error occurred. -func (e *Encoder) String(s string) (string, error) { - s, _, err := transform.String(e, s) - if err != nil { - return "", err - } - return s, nil -} - -// Writer wraps another Writer to encode its UTF-8 output. -// -// The Encoder may not be used for any other operation as long as the returned -// Writer is in use. -func (e *Encoder) Writer(w io.Writer) io.Writer { - return transform.NewWriter(w, e) -} - -// ASCIISub is the ASCII substitute character, as recommended by -// https://unicode.org/reports/tr36/#Text_Comparison -const ASCIISub = '\x1a' - -// Nop is the nop encoding. Its transformed bytes are the same as the source -// bytes; it does not replace invalid UTF-8 sequences. -var Nop Encoding = nop{} - -type nop struct{} - -func (nop) NewDecoder() *Decoder { - return &Decoder{Transformer: transform.Nop} -} -func (nop) NewEncoder() *Encoder { - return &Encoder{Transformer: transform.Nop} -} - -// Replacement is the replacement encoding. Decoding from the replacement -// encoding yields a single '\uFFFD' replacement rune. Encoding from UTF-8 to -// the replacement encoding yields the same as the source bytes except that -// invalid UTF-8 is converted to '\uFFFD'. -// -// It is defined at http://encoding.spec.whatwg.org/#replacement -var Replacement Encoding = replacement{} - -type replacement struct{} - -func (replacement) NewDecoder() *Decoder { - return &Decoder{Transformer: replacementDecoder{}} -} - -func (replacement) NewEncoder() *Encoder { - return &Encoder{Transformer: replacementEncoder{}} -} - -func (replacement) ID() (mib identifier.MIB, other string) { - return identifier.Replacement, "" -} - -type replacementDecoder struct{ transform.NopResetter } - -func (replacementDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if len(dst) < 3 { - return 0, 0, transform.ErrShortDst - } - if atEOF { - const fffd = "\ufffd" - dst[0] = fffd[0] - dst[1] = fffd[1] - dst[2] = fffd[2] - nDst = 3 - } - return nDst, len(src), nil -} - -type replacementEncoder struct{ transform.NopResetter } - -func (replacementEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - r = '\ufffd' - } - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -// HTMLEscapeUnsupported wraps encoders to replace source runes outside the -// repertoire of the destination encoding with HTML escape sequences. -// -// This wrapper exists to comply to URL and HTML forms requiring a -// non-terminating legacy encoder. The produced sequences may lead to data -// loss as they are indistinguishable from legitimate input. To avoid this -// issue, use UTF-8 encodings whenever possible. -func HTMLEscapeUnsupported(e *Encoder) *Encoder { - return &Encoder{Transformer: &errorHandler{e, errorToHTML}} -} - -// ReplaceUnsupported wraps encoders to replace source runes outside the -// repertoire of the destination encoding with an encoding-specific -// replacement. -// -// This wrapper is only provided for backwards compatibility and legacy -// handling. Its use is strongly discouraged. Use UTF-8 whenever possible. -func ReplaceUnsupported(e *Encoder) *Encoder { - return &Encoder{Transformer: &errorHandler{e, errorToReplacement}} -} - -type errorHandler struct { - *Encoder - handler func(dst []byte, r rune, err repertoireError) (n int, ok bool) -} - -// TODO: consider making this error public in some form. -type repertoireError interface { - Replacement() byte -} - -func (h errorHandler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - nDst, nSrc, err = h.Transformer.Transform(dst, src, atEOF) - for err != nil { - rerr, ok := err.(repertoireError) - if !ok { - return nDst, nSrc, err - } - r, sz := utf8.DecodeRune(src[nSrc:]) - n, ok := h.handler(dst[nDst:], r, rerr) - if !ok { - return nDst, nSrc, transform.ErrShortDst - } - err = nil - nDst += n - if nSrc += sz; nSrc < len(src) { - var dn, sn int - dn, sn, err = h.Transformer.Transform(dst[nDst:], src[nSrc:], atEOF) - nDst += dn - nSrc += sn - } - } - return nDst, nSrc, err -} - -func errorToHTML(dst []byte, r rune, err repertoireError) (n int, ok bool) { - buf := [8]byte{} - b := strconv.AppendUint(buf[:0], uint64(r), 10) - if n = len(b) + len("&#;"); n >= len(dst) { - return 0, false - } - dst[0] = '&' - dst[1] = '#' - dst[copy(dst[2:], b)+2] = ';' - return n, true -} - -func errorToReplacement(dst []byte, r rune, err repertoireError) (n int, ok bool) { - if len(dst) == 0 { - return 0, false - } - dst[0] = err.Replacement() - return 1, true -} - -// ErrInvalidUTF8 means that a transformer encountered invalid UTF-8. -var ErrInvalidUTF8 = errors.New("encoding: invalid UTF-8") - -// UTF8Validator is a transformer that returns ErrInvalidUTF8 on the first -// input byte that is not valid UTF-8. -var UTF8Validator transform.Transformer = utf8Validator{} - -type utf8Validator struct{ transform.NopResetter } - -func (utf8Validator) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - n := len(src) - if n > len(dst) { - n = len(dst) - } - for i := 0; i < n; { - if c := src[i]; c < utf8.RuneSelf { - dst[i] = c - i++ - continue - } - _, size := utf8.DecodeRune(src[i:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - err = ErrInvalidUTF8 - if !atEOF && !utf8.FullRune(src[i:]) { - err = transform.ErrShortSrc - } - return i, i, err - } - if i+size > len(dst) { - return i, i, transform.ErrShortDst - } - for ; size > 0; size-- { - dst[i] = src[i] - i++ - } - } - if len(src) > len(dst) { - err = transform.ErrShortDst - } - return n, n, err -} diff --git a/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go b/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go deleted file mode 100644 index bdc7d15dda..0000000000 --- a/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go - -// Package htmlindex maps character set encoding names to Encodings as -// recommended by the W3C for use in HTML 5. See http://www.w3.org/TR/encoding. -package htmlindex - -// TODO: perhaps have a "bare" version of the index (used by this package) that -// is not pre-loaded with all encodings. Global variables in encodings prevent -// the linker from being able to purge unneeded tables. This means that -// referencing all encodings, as this package does for the default index, links -// in all encodings unconditionally. -// -// This issue can be solved by either solving the linking issue (see -// https://github.com/golang/go/issues/6330) or refactoring the encoding tables -// (e.g. moving the tables to internal packages that do not use global -// variables). - -// TODO: allow canonicalizing names - -import ( - "errors" - "strings" - "sync" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/language" -) - -var ( - errInvalidName = errors.New("htmlindex: invalid encoding name") - errUnknown = errors.New("htmlindex: unknown Encoding") - errUnsupported = errors.New("htmlindex: this encoding is not supported") -) - -var ( - matcherOnce sync.Once - matcher language.Matcher -) - -// LanguageDefault returns the canonical name of the default encoding for a -// given language. -func LanguageDefault(tag language.Tag) string { - matcherOnce.Do(func() { - tags := []language.Tag{} - for _, t := range strings.Split(locales, " ") { - tags = append(tags, language.MustParse(t)) - } - matcher = language.NewMatcher(tags, language.PreferSameScript(true)) - }) - _, i, _ := matcher.Match(tag) - return canonical[localeMap[i]] // Default is Windows-1252. -} - -// Get returns an Encoding for one of the names listed in -// http://www.w3.org/TR/encoding using the Default Index. Matching is case- -// insensitive. -func Get(name string) (encoding.Encoding, error) { - x, ok := nameMap[strings.ToLower(strings.TrimSpace(name))] - if !ok { - return nil, errInvalidName - } - return encodings[x], nil -} - -// Name reports the canonical name of the given Encoding. It will return -// an error if e is not associated with a supported encoding scheme. -func Name(e encoding.Encoding) (string, error) { - id, ok := e.(identifier.Interface) - if !ok { - return "", errUnknown - } - mib, _ := id.ID() - if mib == 0 { - return "", errUnknown - } - v, ok := mibMap[mib] - if !ok { - return "", errUnsupported - } - return canonical[v], nil -} diff --git a/vendor/golang.org/x/text/encoding/htmlindex/map.go b/vendor/golang.org/x/text/encoding/htmlindex/map.go deleted file mode 100644 index c61439045d..0000000000 --- a/vendor/golang.org/x/text/encoding/htmlindex/map.go +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package htmlindex - -import ( - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/charmap" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/encoding/japanese" - "golang.org/x/text/encoding/korean" - "golang.org/x/text/encoding/simplifiedchinese" - "golang.org/x/text/encoding/traditionalchinese" - "golang.org/x/text/encoding/unicode" -) - -// mibMap maps a MIB identifier to an htmlEncoding index. -var mibMap = map[identifier.MIB]htmlEncoding{ - identifier.UTF8: utf8, - identifier.UTF16BE: utf16be, - identifier.UTF16LE: utf16le, - identifier.IBM866: ibm866, - identifier.ISOLatin2: iso8859_2, - identifier.ISOLatin3: iso8859_3, - identifier.ISOLatin4: iso8859_4, - identifier.ISOLatinCyrillic: iso8859_5, - identifier.ISOLatinArabic: iso8859_6, - identifier.ISOLatinGreek: iso8859_7, - identifier.ISOLatinHebrew: iso8859_8, - identifier.ISO88598I: iso8859_8I, - identifier.ISOLatin6: iso8859_10, - identifier.ISO885913: iso8859_13, - identifier.ISO885914: iso8859_14, - identifier.ISO885915: iso8859_15, - identifier.ISO885916: iso8859_16, - identifier.KOI8R: koi8r, - identifier.KOI8U: koi8u, - identifier.Macintosh: macintosh, - identifier.MacintoshCyrillic: macintoshCyrillic, - identifier.Windows874: windows874, - identifier.Windows1250: windows1250, - identifier.Windows1251: windows1251, - identifier.Windows1252: windows1252, - identifier.Windows1253: windows1253, - identifier.Windows1254: windows1254, - identifier.Windows1255: windows1255, - identifier.Windows1256: windows1256, - identifier.Windows1257: windows1257, - identifier.Windows1258: windows1258, - identifier.XUserDefined: xUserDefined, - identifier.GBK: gbk, - identifier.GB18030: gb18030, - identifier.Big5: big5, - identifier.EUCPkdFmtJapanese: eucjp, - identifier.ISO2022JP: iso2022jp, - identifier.ShiftJIS: shiftJIS, - identifier.EUCKR: euckr, - identifier.Replacement: replacement, -} - -// encodings maps the internal htmlEncoding to an Encoding. -// TODO: consider using a reusable index in encoding/internal. -var encodings = [numEncodings]encoding.Encoding{ - utf8: unicode.UTF8, - ibm866: charmap.CodePage866, - iso8859_2: charmap.ISO8859_2, - iso8859_3: charmap.ISO8859_3, - iso8859_4: charmap.ISO8859_4, - iso8859_5: charmap.ISO8859_5, - iso8859_6: charmap.ISO8859_6, - iso8859_7: charmap.ISO8859_7, - iso8859_8: charmap.ISO8859_8, - iso8859_8I: charmap.ISO8859_8I, - iso8859_10: charmap.ISO8859_10, - iso8859_13: charmap.ISO8859_13, - iso8859_14: charmap.ISO8859_14, - iso8859_15: charmap.ISO8859_15, - iso8859_16: charmap.ISO8859_16, - koi8r: charmap.KOI8R, - koi8u: charmap.KOI8U, - macintosh: charmap.Macintosh, - windows874: charmap.Windows874, - windows1250: charmap.Windows1250, - windows1251: charmap.Windows1251, - windows1252: charmap.Windows1252, - windows1253: charmap.Windows1253, - windows1254: charmap.Windows1254, - windows1255: charmap.Windows1255, - windows1256: charmap.Windows1256, - windows1257: charmap.Windows1257, - windows1258: charmap.Windows1258, - macintoshCyrillic: charmap.MacintoshCyrillic, - gbk: simplifiedchinese.GBK, - gb18030: simplifiedchinese.GB18030, - big5: traditionalchinese.Big5, - eucjp: japanese.EUCJP, - iso2022jp: japanese.ISO2022JP, - shiftJIS: japanese.ShiftJIS, - euckr: korean.EUCKR, - replacement: encoding.Replacement, - utf16be: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), - utf16le: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), - xUserDefined: charmap.XUserDefined, -} diff --git a/vendor/golang.org/x/text/encoding/htmlindex/tables.go b/vendor/golang.org/x/text/encoding/htmlindex/tables.go deleted file mode 100644 index 9e6daa8965..0000000000 --- a/vendor/golang.org/x/text/encoding/htmlindex/tables.go +++ /dev/null @@ -1,362 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package htmlindex - -type htmlEncoding byte - -const ( - utf8 htmlEncoding = iota - ibm866 - iso8859_2 - iso8859_3 - iso8859_4 - iso8859_5 - iso8859_6 - iso8859_7 - iso8859_8 - iso8859_8I - iso8859_10 - iso8859_13 - iso8859_14 - iso8859_15 - iso8859_16 - koi8r - koi8u - macintosh - windows874 - windows1250 - windows1251 - windows1252 - windows1253 - windows1254 - windows1255 - windows1256 - windows1257 - windows1258 - macintoshCyrillic - gbk - gb18030 - big5 - eucjp - iso2022jp - shiftJIS - euckr - replacement - utf16be - utf16le - xUserDefined - numEncodings -) - -var canonical = [numEncodings]string{ - "utf-8", - "ibm866", - "iso-8859-2", - "iso-8859-3", - "iso-8859-4", - "iso-8859-5", - "iso-8859-6", - "iso-8859-7", - "iso-8859-8", - "iso-8859-8-i", - "iso-8859-10", - "iso-8859-13", - "iso-8859-14", - "iso-8859-15", - "iso-8859-16", - "koi8-r", - "koi8-u", - "macintosh", - "windows-874", - "windows-1250", - "windows-1251", - "windows-1252", - "windows-1253", - "windows-1254", - "windows-1255", - "windows-1256", - "windows-1257", - "windows-1258", - "x-mac-cyrillic", - "gbk", - "gb18030", - "big5", - "euc-jp", - "iso-2022-jp", - "shift_jis", - "euc-kr", - "replacement", - "utf-16be", - "utf-16le", - "x-user-defined", -} - -var nameMap = map[string]htmlEncoding{ - "unicode-1-1-utf-8": utf8, - "unicode11utf8": utf8, - "unicode20utf8": utf8, - "utf-8": utf8, - "utf8": utf8, - "x-unicode20utf8": utf8, - "866": ibm866, - "cp866": ibm866, - "csibm866": ibm866, - "ibm866": ibm866, - "csisolatin2": iso8859_2, - "iso-8859-2": iso8859_2, - "iso-ir-101": iso8859_2, - "iso8859-2": iso8859_2, - "iso88592": iso8859_2, - "iso_8859-2": iso8859_2, - "iso_8859-2:1987": iso8859_2, - "l2": iso8859_2, - "latin2": iso8859_2, - "csisolatin3": iso8859_3, - "iso-8859-3": iso8859_3, - "iso-ir-109": iso8859_3, - "iso8859-3": iso8859_3, - "iso88593": iso8859_3, - "iso_8859-3": iso8859_3, - "iso_8859-3:1988": iso8859_3, - "l3": iso8859_3, - "latin3": iso8859_3, - "csisolatin4": iso8859_4, - "iso-8859-4": iso8859_4, - "iso-ir-110": iso8859_4, - "iso8859-4": iso8859_4, - "iso88594": iso8859_4, - "iso_8859-4": iso8859_4, - "iso_8859-4:1988": iso8859_4, - "l4": iso8859_4, - "latin4": iso8859_4, - "csisolatincyrillic": iso8859_5, - "cyrillic": iso8859_5, - "iso-8859-5": iso8859_5, - "iso-ir-144": iso8859_5, - "iso8859-5": iso8859_5, - "iso88595": iso8859_5, - "iso_8859-5": iso8859_5, - "iso_8859-5:1988": iso8859_5, - "arabic": iso8859_6, - "asmo-708": iso8859_6, - "csiso88596e": iso8859_6, - "csiso88596i": iso8859_6, - "csisolatinarabic": iso8859_6, - "ecma-114": iso8859_6, - "iso-8859-6": iso8859_6, - "iso-8859-6-e": iso8859_6, - "iso-8859-6-i": iso8859_6, - "iso-ir-127": iso8859_6, - "iso8859-6": iso8859_6, - "iso88596": iso8859_6, - "iso_8859-6": iso8859_6, - "iso_8859-6:1987": iso8859_6, - "csisolatingreek": iso8859_7, - "ecma-118": iso8859_7, - "elot_928": iso8859_7, - "greek": iso8859_7, - "greek8": iso8859_7, - "iso-8859-7": iso8859_7, - "iso-ir-126": iso8859_7, - "iso8859-7": iso8859_7, - "iso88597": iso8859_7, - "iso_8859-7": iso8859_7, - "iso_8859-7:1987": iso8859_7, - "sun_eu_greek": iso8859_7, - "csiso88598e": iso8859_8, - "csisolatinhebrew": iso8859_8, - "hebrew": iso8859_8, - "iso-8859-8": iso8859_8, - "iso-8859-8-e": iso8859_8, - "iso-ir-138": iso8859_8, - "iso8859-8": iso8859_8, - "iso88598": iso8859_8, - "iso_8859-8": iso8859_8, - "iso_8859-8:1988": iso8859_8, - "visual": iso8859_8, - "csiso88598i": iso8859_8I, - "iso-8859-8-i": iso8859_8I, - "logical": iso8859_8I, - "csisolatin6": iso8859_10, - "iso-8859-10": iso8859_10, - "iso-ir-157": iso8859_10, - "iso8859-10": iso8859_10, - "iso885910": iso8859_10, - "l6": iso8859_10, - "latin6": iso8859_10, - "iso-8859-13": iso8859_13, - "iso8859-13": iso8859_13, - "iso885913": iso8859_13, - "iso-8859-14": iso8859_14, - "iso8859-14": iso8859_14, - "iso885914": iso8859_14, - "csisolatin9": iso8859_15, - "iso-8859-15": iso8859_15, - "iso8859-15": iso8859_15, - "iso885915": iso8859_15, - "iso_8859-15": iso8859_15, - "l9": iso8859_15, - "iso-8859-16": iso8859_16, - "cskoi8r": koi8r, - "koi": koi8r, - "koi8": koi8r, - "koi8-r": koi8r, - "koi8_r": koi8r, - "koi8-ru": koi8u, - "koi8-u": koi8u, - "csmacintosh": macintosh, - "mac": macintosh, - "macintosh": macintosh, - "x-mac-roman": macintosh, - "dos-874": windows874, - "iso-8859-11": windows874, - "iso8859-11": windows874, - "iso885911": windows874, - "tis-620": windows874, - "windows-874": windows874, - "cp1250": windows1250, - "windows-1250": windows1250, - "x-cp1250": windows1250, - "cp1251": windows1251, - "windows-1251": windows1251, - "x-cp1251": windows1251, - "ansi_x3.4-1968": windows1252, - "ascii": windows1252, - "cp1252": windows1252, - "cp819": windows1252, - "csisolatin1": windows1252, - "ibm819": windows1252, - "iso-8859-1": windows1252, - "iso-ir-100": windows1252, - "iso8859-1": windows1252, - "iso88591": windows1252, - "iso_8859-1": windows1252, - "iso_8859-1:1987": windows1252, - "l1": windows1252, - "latin1": windows1252, - "us-ascii": windows1252, - "windows-1252": windows1252, - "x-cp1252": windows1252, - "cp1253": windows1253, - "windows-1253": windows1253, - "x-cp1253": windows1253, - "cp1254": windows1254, - "csisolatin5": windows1254, - "iso-8859-9": windows1254, - "iso-ir-148": windows1254, - "iso8859-9": windows1254, - "iso88599": windows1254, - "iso_8859-9": windows1254, - "iso_8859-9:1989": windows1254, - "l5": windows1254, - "latin5": windows1254, - "windows-1254": windows1254, - "x-cp1254": windows1254, - "cp1255": windows1255, - "windows-1255": windows1255, - "x-cp1255": windows1255, - "cp1256": windows1256, - "windows-1256": windows1256, - "x-cp1256": windows1256, - "cp1257": windows1257, - "windows-1257": windows1257, - "x-cp1257": windows1257, - "cp1258": windows1258, - "windows-1258": windows1258, - "x-cp1258": windows1258, - "x-mac-cyrillic": macintoshCyrillic, - "x-mac-ukrainian": macintoshCyrillic, - "chinese": gbk, - "csgb2312": gbk, - "csiso58gb231280": gbk, - "gb2312": gbk, - "gb_2312": gbk, - "gb_2312-80": gbk, - "gbk": gbk, - "iso-ir-58": gbk, - "x-gbk": gbk, - "gb18030": gb18030, - "big5": big5, - "big5-hkscs": big5, - "cn-big5": big5, - "csbig5": big5, - "x-x-big5": big5, - "cseucpkdfmtjapanese": eucjp, - "euc-jp": eucjp, - "x-euc-jp": eucjp, - "csiso2022jp": iso2022jp, - "iso-2022-jp": iso2022jp, - "csshiftjis": shiftJIS, - "ms932": shiftJIS, - "ms_kanji": shiftJIS, - "shift-jis": shiftJIS, - "shift_jis": shiftJIS, - "sjis": shiftJIS, - "windows-31j": shiftJIS, - "x-sjis": shiftJIS, - "cseuckr": euckr, - "csksc56011987": euckr, - "euc-kr": euckr, - "iso-ir-149": euckr, - "korean": euckr, - "ks_c_5601-1987": euckr, - "ks_c_5601-1989": euckr, - "ksc5601": euckr, - "ksc_5601": euckr, - "windows-949": euckr, - "csiso2022kr": replacement, - "hz-gb-2312": replacement, - "iso-2022-cn": replacement, - "iso-2022-cn-ext": replacement, - "iso-2022-kr": replacement, - "replacement": replacement, - "unicodefffe": utf16be, - "utf-16be": utf16be, - "csunicode": utf16le, - "iso-10646-ucs-2": utf16le, - "ucs-2": utf16le, - "unicode": utf16le, - "unicodefeff": utf16le, - "utf-16": utf16le, - "utf-16le": utf16le, - "x-user-defined": xUserDefined, -} - -var localeMap = []htmlEncoding{ - windows1252, // und_Latn - windows1256, // ar - windows1251, // ba - windows1251, // be - windows1251, // bg - windows1250, // cs - iso8859_7, // el - windows1257, // et - windows1256, // fa - windows1255, // he - windows1250, // hr - iso8859_2, // hu - shiftJIS, // ja - windows1251, // kk - euckr, // ko - windows1254, // ku - windows1251, // ky - windows1257, // lt - windows1257, // lv - windows1251, // mk - iso8859_2, // pl - windows1251, // ru - windows1251, // sah - windows1250, // sk - iso8859_2, // sl - windows1251, // sr - windows1251, // tg - windows874, // th - windows1254, // tr - windows1251, // tt - windows1251, // uk - windows1258, // vi - gb18030, // zh-hans - big5, // zh-hant -} - -const locales = "und_Latn ar ba be bg cs el et fa he hr hu ja kk ko ku ky lt lv mk pl ru sah sk sl sr tg th tr tt uk vi zh-hans zh-hant" diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go b/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go deleted file mode 100644 index 5c9b85c280..0000000000 --- a/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:generate go run gen.go - -// Package identifier defines the contract between implementations of Encoding -// and Index by defining identifiers that uniquely identify standardized coded -// character sets (CCS) and character encoding schemes (CES), which we will -// together refer to as encodings, for which Encoding implementations provide -// converters to and from UTF-8. This package is typically only of concern to -// implementers of Indexes and Encodings. -// -// One part of the identifier is the MIB code, which is defined by IANA and -// uniquely identifies a CCS or CES. Each code is associated with data that -// references authorities, official documentation as well as aliases and MIME -// names. -// -// Not all CESs are covered by the IANA registry. The "other" string that is -// returned by ID can be used to identify other character sets or versions of -// existing ones. -// -// It is recommended that each package that provides a set of Encodings provide -// the All and Common variables to reference all supported encodings and -// commonly used subset. This allows Index implementations to include all -// available encodings without explicitly referencing or knowing about them. -package identifier - -// Note: this package is internal, but could be made public if there is a need -// for writing third-party Indexes and Encodings. - -// References: -// - http://source.icu-project.org/repos/icu/icu/trunk/source/data/mappings/convrtrs.txt -// - http://www.iana.org/assignments/character-sets/character-sets.xhtml -// - http://www.iana.org/assignments/ianacharset-mib/ianacharset-mib -// - http://www.ietf.org/rfc/rfc2978.txt -// - https://www.unicode.org/reports/tr22/ -// - http://www.w3.org/TR/encoding/ -// - https://encoding.spec.whatwg.org/ -// - https://encoding.spec.whatwg.org/encodings.json -// - https://tools.ietf.org/html/rfc6657#section-5 - -// Interface can be implemented by Encodings to define the CCS or CES for which -// it implements conversions. -type Interface interface { - // ID returns an encoding identifier. Exactly one of the mib and other - // values should be non-zero. - // - // In the usual case it is only necessary to indicate the MIB code. The - // other string can be used to specify encodings for which there is no MIB, - // such as "x-mac-dingbat". - // - // The other string may only contain the characters a-z, A-Z, 0-9, - and _. - ID() (mib MIB, other string) - - // NOTE: the restrictions on the encoding are to allow extending the syntax - // with additional information such as versions, vendors and other variants. -} - -// A MIB identifies an encoding. It is derived from the IANA MIB codes and adds -// some identifiers for some encodings that are not covered by the IANA -// standard. -// -// See http://www.iana.org/assignments/ianacharset-mib. -type MIB uint16 - -// These additional MIB types are not defined in IANA. They are added because -// they are common and defined within the text repo. -const ( - // Unofficial marks the start of encodings not registered by IANA. - Unofficial MIB = 10000 + iota - - // Replacement is the WhatWG replacement encoding. - Replacement - - // XUserDefined is the code for x-user-defined. - XUserDefined - - // MacintoshCyrillic is the code for x-mac-cyrillic. - MacintoshCyrillic -) diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go deleted file mode 100644 index 351fb86e29..0000000000 --- a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go +++ /dev/null @@ -1,1627 +0,0 @@ -// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. - -package identifier - -const ( - // ASCII is the MIB identifier with IANA name US-ASCII (MIME: US-ASCII). - // - // ANSI X3.4-1986 - // Reference: RFC2046 - ASCII MIB = 3 - - // ISOLatin1 is the MIB identifier with IANA name ISO_8859-1:1987 (MIME: ISO-8859-1). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin1 MIB = 4 - - // ISOLatin2 is the MIB identifier with IANA name ISO_8859-2:1987 (MIME: ISO-8859-2). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin2 MIB = 5 - - // ISOLatin3 is the MIB identifier with IANA name ISO_8859-3:1988 (MIME: ISO-8859-3). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin3 MIB = 6 - - // ISOLatin4 is the MIB identifier with IANA name ISO_8859-4:1988 (MIME: ISO-8859-4). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin4 MIB = 7 - - // ISOLatinCyrillic is the MIB identifier with IANA name ISO_8859-5:1988 (MIME: ISO-8859-5). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinCyrillic MIB = 8 - - // ISOLatinArabic is the MIB identifier with IANA name ISO_8859-6:1987 (MIME: ISO-8859-6). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinArabic MIB = 9 - - // ISOLatinGreek is the MIB identifier with IANA name ISO_8859-7:1987 (MIME: ISO-8859-7). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1947 - // Reference: RFC1345 - ISOLatinGreek MIB = 10 - - // ISOLatinHebrew is the MIB identifier with IANA name ISO_8859-8:1988 (MIME: ISO-8859-8). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatinHebrew MIB = 11 - - // ISOLatin5 is the MIB identifier with IANA name ISO_8859-9:1989 (MIME: ISO-8859-9). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin5 MIB = 12 - - // ISOLatin6 is the MIB identifier with IANA name ISO-8859-10 (MIME: ISO-8859-10). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOLatin6 MIB = 13 - - // ISOTextComm is the MIB identifier with IANA name ISO_6937-2-add. - // - // ISO-IR: International Register of Escape Sequences and ISO 6937-2:1983 - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISOTextComm MIB = 14 - - // HalfWidthKatakana is the MIB identifier with IANA name JIS_X0201. - // - // JIS X 0201-1976. One byte only, this is equivalent to - // JIS/Roman (similar to ASCII) plus eight-bit half-width - // Katakana - // Reference: RFC1345 - HalfWidthKatakana MIB = 15 - - // JISEncoding is the MIB identifier with IANA name JIS_Encoding. - // - // JIS X 0202-1991. Uses ISO 2022 escape sequences to - // shift code sets as documented in JIS X 0202-1991. - JISEncoding MIB = 16 - - // ShiftJIS is the MIB identifier with IANA name Shift_JIS (MIME: Shift_JIS). - // - // This charset is an extension of csHalfWidthKatakana by - // adding graphic characters in JIS X 0208. The CCS's are - // JIS X0201:1997 and JIS X0208:1997. The - // complete definition is shown in Appendix 1 of JIS - // X0208:1997. - // This charset can be used for the top-level media type "text". - ShiftJIS MIB = 17 - - // EUCPkdFmtJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Packed_Format_for_Japanese (MIME: EUC-JP). - // - // Standardized by OSF, UNIX International, and UNIX Systems - // Laboratories Pacific. Uses ISO 2022 rules to select - // code set 0: US-ASCII (a single 7-bit byte set) - // code set 1: JIS X0208-1990 (a double 8-bit byte set) - // restricted to A0-FF in both bytes - // code set 2: Half Width Katakana (a single 7-bit byte set) - // requiring SS2 as the character prefix - // code set 3: JIS X0212-1990 (a double 7-bit byte set) - // restricted to A0-FF in both bytes - // requiring SS3 as the character prefix - EUCPkdFmtJapanese MIB = 18 - - // EUCFixWidJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Fixed_Width_for_Japanese. - // - // Used in Japan. Each character is 2 octets. - // code set 0: US-ASCII (a single 7-bit byte set) - // 1st byte = 00 - // 2nd byte = 20-7E - // code set 1: JIS X0208-1990 (a double 7-bit byte set) - // restricted to A0-FF in both bytes - // code set 2: Half Width Katakana (a single 7-bit byte set) - // 1st byte = 00 - // 2nd byte = A0-FF - // code set 3: JIS X0212-1990 (a double 7-bit byte set) - // restricted to A0-FF in - // the first byte - // and 21-7E in the second byte - EUCFixWidJapanese MIB = 19 - - // ISO4UnitedKingdom is the MIB identifier with IANA name BS_4730. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO4UnitedKingdom MIB = 20 - - // ISO11SwedishForNames is the MIB identifier with IANA name SEN_850200_C. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO11SwedishForNames MIB = 21 - - // ISO15Italian is the MIB identifier with IANA name IT. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO15Italian MIB = 22 - - // ISO17Spanish is the MIB identifier with IANA name ES. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO17Spanish MIB = 23 - - // ISO21German is the MIB identifier with IANA name DIN_66003. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO21German MIB = 24 - - // ISO60Norwegian1 is the MIB identifier with IANA name NS_4551-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO60Norwegian1 MIB = 25 - - // ISO69French is the MIB identifier with IANA name NF_Z_62-010. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO69French MIB = 26 - - // ISO10646UTF1 is the MIB identifier with IANA name ISO-10646-UTF-1. - // - // Universal Transfer Format (1), this is the multibyte - // encoding, that subsets ASCII-7. It does not have byte - // ordering issues. - ISO10646UTF1 MIB = 27 - - // ISO646basic1983 is the MIB identifier with IANA name ISO_646.basic:1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO646basic1983 MIB = 28 - - // INVARIANT is the MIB identifier with IANA name INVARIANT. - // - // Reference: RFC1345 - INVARIANT MIB = 29 - - // ISO2IntlRefVersion is the MIB identifier with IANA name ISO_646.irv:1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO2IntlRefVersion MIB = 30 - - // NATSSEFI is the MIB identifier with IANA name NATS-SEFI. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSSEFI MIB = 31 - - // NATSSEFIADD is the MIB identifier with IANA name NATS-SEFI-ADD. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSSEFIADD MIB = 32 - - // NATSDANO is the MIB identifier with IANA name NATS-DANO. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSDANO MIB = 33 - - // NATSDANOADD is the MIB identifier with IANA name NATS-DANO-ADD. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - NATSDANOADD MIB = 34 - - // ISO10Swedish is the MIB identifier with IANA name SEN_850200_B. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO10Swedish MIB = 35 - - // KSC56011987 is the MIB identifier with IANA name KS_C_5601-1987. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - KSC56011987 MIB = 36 - - // ISO2022KR is the MIB identifier with IANA name ISO-2022-KR (MIME: ISO-2022-KR). - // - // rfc1557 (see also KS_C_5601-1987) - // Reference: RFC1557 - ISO2022KR MIB = 37 - - // EUCKR is the MIB identifier with IANA name EUC-KR (MIME: EUC-KR). - // - // rfc1557 (see also KS_C_5861-1992) - // Reference: RFC1557 - EUCKR MIB = 38 - - // ISO2022JP is the MIB identifier with IANA name ISO-2022-JP (MIME: ISO-2022-JP). - // - // rfc1468 (see also rfc2237 ) - // Reference: RFC1468 - ISO2022JP MIB = 39 - - // ISO2022JP2 is the MIB identifier with IANA name ISO-2022-JP-2 (MIME: ISO-2022-JP-2). - // - // rfc1554 - // Reference: RFC1554 - ISO2022JP2 MIB = 40 - - // ISO13JISC6220jp is the MIB identifier with IANA name JIS_C6220-1969-jp. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO13JISC6220jp MIB = 41 - - // ISO14JISC6220ro is the MIB identifier with IANA name JIS_C6220-1969-ro. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO14JISC6220ro MIB = 42 - - // ISO16Portuguese is the MIB identifier with IANA name PT. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO16Portuguese MIB = 43 - - // ISO18Greek7Old is the MIB identifier with IANA name greek7-old. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO18Greek7Old MIB = 44 - - // ISO19LatinGreek is the MIB identifier with IANA name latin-greek. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO19LatinGreek MIB = 45 - - // ISO25French is the MIB identifier with IANA name NF_Z_62-010_(1973). - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO25French MIB = 46 - - // ISO27LatinGreek1 is the MIB identifier with IANA name Latin-greek-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO27LatinGreek1 MIB = 47 - - // ISO5427Cyrillic is the MIB identifier with IANA name ISO_5427. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO5427Cyrillic MIB = 48 - - // ISO42JISC62261978 is the MIB identifier with IANA name JIS_C6226-1978. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO42JISC62261978 MIB = 49 - - // ISO47BSViewdata is the MIB identifier with IANA name BS_viewdata. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO47BSViewdata MIB = 50 - - // ISO49INIS is the MIB identifier with IANA name INIS. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO49INIS MIB = 51 - - // ISO50INIS8 is the MIB identifier with IANA name INIS-8. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO50INIS8 MIB = 52 - - // ISO51INISCyrillic is the MIB identifier with IANA name INIS-cyrillic. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO51INISCyrillic MIB = 53 - - // ISO54271981 is the MIB identifier with IANA name ISO_5427:1981. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO54271981 MIB = 54 - - // ISO5428Greek is the MIB identifier with IANA name ISO_5428:1980. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO5428Greek MIB = 55 - - // ISO57GB1988 is the MIB identifier with IANA name GB_1988-80. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO57GB1988 MIB = 56 - - // ISO58GB231280 is the MIB identifier with IANA name GB_2312-80. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO58GB231280 MIB = 57 - - // ISO61Norwegian2 is the MIB identifier with IANA name NS_4551-2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO61Norwegian2 MIB = 58 - - // ISO70VideotexSupp1 is the MIB identifier with IANA name videotex-suppl. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO70VideotexSupp1 MIB = 59 - - // ISO84Portuguese2 is the MIB identifier with IANA name PT2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO84Portuguese2 MIB = 60 - - // ISO85Spanish2 is the MIB identifier with IANA name ES2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO85Spanish2 MIB = 61 - - // ISO86Hungarian is the MIB identifier with IANA name MSZ_7795.3. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO86Hungarian MIB = 62 - - // ISO87JISX0208 is the MIB identifier with IANA name JIS_C6226-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO87JISX0208 MIB = 63 - - // ISO88Greek7 is the MIB identifier with IANA name greek7. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO88Greek7 MIB = 64 - - // ISO89ASMO449 is the MIB identifier with IANA name ASMO_449. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO89ASMO449 MIB = 65 - - // ISO90 is the MIB identifier with IANA name iso-ir-90. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO90 MIB = 66 - - // ISO91JISC62291984a is the MIB identifier with IANA name JIS_C6229-1984-a. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO91JISC62291984a MIB = 67 - - // ISO92JISC62991984b is the MIB identifier with IANA name JIS_C6229-1984-b. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO92JISC62991984b MIB = 68 - - // ISO93JIS62291984badd is the MIB identifier with IANA name JIS_C6229-1984-b-add. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO93JIS62291984badd MIB = 69 - - // ISO94JIS62291984hand is the MIB identifier with IANA name JIS_C6229-1984-hand. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO94JIS62291984hand MIB = 70 - - // ISO95JIS62291984handadd is the MIB identifier with IANA name JIS_C6229-1984-hand-add. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO95JIS62291984handadd MIB = 71 - - // ISO96JISC62291984kana is the MIB identifier with IANA name JIS_C6229-1984-kana. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO96JISC62291984kana MIB = 72 - - // ISO2033 is the MIB identifier with IANA name ISO_2033-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO2033 MIB = 73 - - // ISO99NAPLPS is the MIB identifier with IANA name ANSI_X3.110-1983. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO99NAPLPS MIB = 74 - - // ISO102T617bit is the MIB identifier with IANA name T.61-7bit. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO102T617bit MIB = 75 - - // ISO103T618bit is the MIB identifier with IANA name T.61-8bit. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO103T618bit MIB = 76 - - // ISO111ECMACyrillic is the MIB identifier with IANA name ECMA-cyrillic. - // - // ISO registry - ISO111ECMACyrillic MIB = 77 - - // ISO121Canadian1 is the MIB identifier with IANA name CSA_Z243.4-1985-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO121Canadian1 MIB = 78 - - // ISO122Canadian2 is the MIB identifier with IANA name CSA_Z243.4-1985-2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO122Canadian2 MIB = 79 - - // ISO123CSAZ24341985gr is the MIB identifier with IANA name CSA_Z243.4-1985-gr. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO123CSAZ24341985gr MIB = 80 - - // ISO88596E is the MIB identifier with IANA name ISO_8859-6-E (MIME: ISO-8859-6-E). - // - // rfc1556 - // Reference: RFC1556 - ISO88596E MIB = 81 - - // ISO88596I is the MIB identifier with IANA name ISO_8859-6-I (MIME: ISO-8859-6-I). - // - // rfc1556 - // Reference: RFC1556 - ISO88596I MIB = 82 - - // ISO128T101G2 is the MIB identifier with IANA name T.101-G2. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO128T101G2 MIB = 83 - - // ISO88598E is the MIB identifier with IANA name ISO_8859-8-E (MIME: ISO-8859-8-E). - // - // rfc1556 - // Reference: RFC1556 - ISO88598E MIB = 84 - - // ISO88598I is the MIB identifier with IANA name ISO_8859-8-I (MIME: ISO-8859-8-I). - // - // rfc1556 - // Reference: RFC1556 - ISO88598I MIB = 85 - - // ISO139CSN369103 is the MIB identifier with IANA name CSN_369103. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO139CSN369103 MIB = 86 - - // ISO141JUSIB1002 is the MIB identifier with IANA name JUS_I.B1.002. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO141JUSIB1002 MIB = 87 - - // ISO143IECP271 is the MIB identifier with IANA name IEC_P27-1. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO143IECP271 MIB = 88 - - // ISO146Serbian is the MIB identifier with IANA name JUS_I.B1.003-serb. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO146Serbian MIB = 89 - - // ISO147Macedonian is the MIB identifier with IANA name JUS_I.B1.003-mac. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO147Macedonian MIB = 90 - - // ISO150GreekCCITT is the MIB identifier with IANA name greek-ccitt. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO150GreekCCITT MIB = 91 - - // ISO151Cuba is the MIB identifier with IANA name NC_NC00-10:81. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO151Cuba MIB = 92 - - // ISO6937Add is the MIB identifier with IANA name ISO_6937-2-25. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO6937Add MIB = 93 - - // ISO153GOST1976874 is the MIB identifier with IANA name GOST_19768-74. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO153GOST1976874 MIB = 94 - - // ISO8859Supp is the MIB identifier with IANA name ISO_8859-supp. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO8859Supp MIB = 95 - - // ISO10367Box is the MIB identifier with IANA name ISO_10367-box. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO10367Box MIB = 96 - - // ISO158Lap is the MIB identifier with IANA name latin-lap. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO158Lap MIB = 97 - - // ISO159JISX02121990 is the MIB identifier with IANA name JIS_X0212-1990. - // - // ISO-IR: International Register of Escape Sequences - // Note: The current registration authority is IPSJ/ITSCJ, Japan. - // Reference: RFC1345 - ISO159JISX02121990 MIB = 98 - - // ISO646Danish is the MIB identifier with IANA name DS_2089. - // - // Danish Standard, DS 2089, February 1974 - // Reference: RFC1345 - ISO646Danish MIB = 99 - - // USDK is the MIB identifier with IANA name us-dk. - // - // Reference: RFC1345 - USDK MIB = 100 - - // DKUS is the MIB identifier with IANA name dk-us. - // - // Reference: RFC1345 - DKUS MIB = 101 - - // KSC5636 is the MIB identifier with IANA name KSC5636. - // - // Reference: RFC1345 - KSC5636 MIB = 102 - - // Unicode11UTF7 is the MIB identifier with IANA name UNICODE-1-1-UTF-7. - // - // rfc1642 - // Reference: RFC1642 - Unicode11UTF7 MIB = 103 - - // ISO2022CN is the MIB identifier with IANA name ISO-2022-CN. - // - // rfc1922 - // Reference: RFC1922 - ISO2022CN MIB = 104 - - // ISO2022CNEXT is the MIB identifier with IANA name ISO-2022-CN-EXT. - // - // rfc1922 - // Reference: RFC1922 - ISO2022CNEXT MIB = 105 - - // UTF8 is the MIB identifier with IANA name UTF-8. - // - // rfc3629 - // Reference: RFC3629 - UTF8 MIB = 106 - - // ISO885913 is the MIB identifier with IANA name ISO-8859-13. - // - // ISO See https://www.iana.org/assignments/charset-reg/ISO-8859-13 https://www.iana.org/assignments/charset-reg/ISO-8859-13 - ISO885913 MIB = 109 - - // ISO885914 is the MIB identifier with IANA name ISO-8859-14. - // - // ISO See https://www.iana.org/assignments/charset-reg/ISO-8859-14 - ISO885914 MIB = 110 - - // ISO885915 is the MIB identifier with IANA name ISO-8859-15. - // - // ISO - // Please see: https://www.iana.org/assignments/charset-reg/ISO-8859-15 - ISO885915 MIB = 111 - - // ISO885916 is the MIB identifier with IANA name ISO-8859-16. - // - // ISO - ISO885916 MIB = 112 - - // GBK is the MIB identifier with IANA name GBK. - // - // Chinese IT Standardization Technical Committee - // Please see: https://www.iana.org/assignments/charset-reg/GBK - GBK MIB = 113 - - // GB18030 is the MIB identifier with IANA name GB18030. - // - // Chinese IT Standardization Technical Committee - // Please see: https://www.iana.org/assignments/charset-reg/GB18030 - GB18030 MIB = 114 - - // OSDEBCDICDF0415 is the MIB identifier with IANA name OSD_EBCDIC_DF04_15. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15 - OSDEBCDICDF0415 MIB = 115 - - // OSDEBCDICDF03IRV is the MIB identifier with IANA name OSD_EBCDIC_DF03_IRV. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV - OSDEBCDICDF03IRV MIB = 116 - - // OSDEBCDICDF041 is the MIB identifier with IANA name OSD_EBCDIC_DF04_1. - // - // Fujitsu-Siemens standard mainframe EBCDIC encoding - // Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1 - OSDEBCDICDF041 MIB = 117 - - // ISO115481 is the MIB identifier with IANA name ISO-11548-1. - // - // See https://www.iana.org/assignments/charset-reg/ISO-11548-1 - ISO115481 MIB = 118 - - // KZ1048 is the MIB identifier with IANA name KZ-1048. - // - // See https://www.iana.org/assignments/charset-reg/KZ-1048 - KZ1048 MIB = 119 - - // Unicode is the MIB identifier with IANA name ISO-10646-UCS-2. - // - // the 2-octet Basic Multilingual Plane, aka Unicode - // this needs to specify network byte order: the standard - // does not specify (it is a 16-bit integer space) - Unicode MIB = 1000 - - // UCS4 is the MIB identifier with IANA name ISO-10646-UCS-4. - // - // the full code space. (same comment about byte order, - // these are 31-bit numbers. - UCS4 MIB = 1001 - - // UnicodeASCII is the MIB identifier with IANA name ISO-10646-UCS-Basic. - // - // ASCII subset of Unicode. Basic Latin = collection 1 - // See ISO 10646, Appendix A - UnicodeASCII MIB = 1002 - - // UnicodeLatin1 is the MIB identifier with IANA name ISO-10646-Unicode-Latin1. - // - // ISO Latin-1 subset of Unicode. Basic Latin and Latin-1 - // Supplement = collections 1 and 2. See ISO 10646, - // Appendix A. See rfc1815 . - UnicodeLatin1 MIB = 1003 - - // UnicodeJapanese is the MIB identifier with IANA name ISO-10646-J-1. - // - // ISO 10646 Japanese, see rfc1815 . - UnicodeJapanese MIB = 1004 - - // UnicodeIBM1261 is the MIB identifier with IANA name ISO-Unicode-IBM-1261. - // - // IBM Latin-2, -3, -5, Extended Presentation Set, GCSGID: 1261 - UnicodeIBM1261 MIB = 1005 - - // UnicodeIBM1268 is the MIB identifier with IANA name ISO-Unicode-IBM-1268. - // - // IBM Latin-4 Extended Presentation Set, GCSGID: 1268 - UnicodeIBM1268 MIB = 1006 - - // UnicodeIBM1276 is the MIB identifier with IANA name ISO-Unicode-IBM-1276. - // - // IBM Cyrillic Greek Extended Presentation Set, GCSGID: 1276 - UnicodeIBM1276 MIB = 1007 - - // UnicodeIBM1264 is the MIB identifier with IANA name ISO-Unicode-IBM-1264. - // - // IBM Arabic Presentation Set, GCSGID: 1264 - UnicodeIBM1264 MIB = 1008 - - // UnicodeIBM1265 is the MIB identifier with IANA name ISO-Unicode-IBM-1265. - // - // IBM Hebrew Presentation Set, GCSGID: 1265 - UnicodeIBM1265 MIB = 1009 - - // Unicode11 is the MIB identifier with IANA name UNICODE-1-1. - // - // rfc1641 - // Reference: RFC1641 - Unicode11 MIB = 1010 - - // SCSU is the MIB identifier with IANA name SCSU. - // - // SCSU See https://www.iana.org/assignments/charset-reg/SCSU - SCSU MIB = 1011 - - // UTF7 is the MIB identifier with IANA name UTF-7. - // - // rfc2152 - // Reference: RFC2152 - UTF7 MIB = 1012 - - // UTF16BE is the MIB identifier with IANA name UTF-16BE. - // - // rfc2781 - // Reference: RFC2781 - UTF16BE MIB = 1013 - - // UTF16LE is the MIB identifier with IANA name UTF-16LE. - // - // rfc2781 - // Reference: RFC2781 - UTF16LE MIB = 1014 - - // UTF16 is the MIB identifier with IANA name UTF-16. - // - // rfc2781 - // Reference: RFC2781 - UTF16 MIB = 1015 - - // CESU8 is the MIB identifier with IANA name CESU-8. - // - // https://www.unicode.org/reports/tr26 - CESU8 MIB = 1016 - - // UTF32 is the MIB identifier with IANA name UTF-32. - // - // https://www.unicode.org/reports/tr19/ - UTF32 MIB = 1017 - - // UTF32BE is the MIB identifier with IANA name UTF-32BE. - // - // https://www.unicode.org/reports/tr19/ - UTF32BE MIB = 1018 - - // UTF32LE is the MIB identifier with IANA name UTF-32LE. - // - // https://www.unicode.org/reports/tr19/ - UTF32LE MIB = 1019 - - // BOCU1 is the MIB identifier with IANA name BOCU-1. - // - // https://www.unicode.org/notes/tn6/ - BOCU1 MIB = 1020 - - // UTF7IMAP is the MIB identifier with IANA name UTF-7-IMAP. - // - // Note: This charset is used to encode Unicode in IMAP mailbox names; - // see section 5.1.3 of rfc3501 . It should never be used - // outside this context. A name has been assigned so that charset processing - // implementations can refer to it in a consistent way. - UTF7IMAP MIB = 1021 - - // Windows30Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.0-Latin-1. - // - // Extended ISO 8859-1 Latin-1 for Windows 3.0. - // PCL Symbol Set id: 9U - Windows30Latin1 MIB = 2000 - - // Windows31Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.1-Latin-1. - // - // Extended ISO 8859-1 Latin-1 for Windows 3.1. - // PCL Symbol Set id: 19U - Windows31Latin1 MIB = 2001 - - // Windows31Latin2 is the MIB identifier with IANA name ISO-8859-2-Windows-Latin-2. - // - // Extended ISO 8859-2. Latin-2 for Windows 3.1. - // PCL Symbol Set id: 9E - Windows31Latin2 MIB = 2002 - - // Windows31Latin5 is the MIB identifier with IANA name ISO-8859-9-Windows-Latin-5. - // - // Extended ISO 8859-9. Latin-5 for Windows 3.1 - // PCL Symbol Set id: 5T - Windows31Latin5 MIB = 2003 - - // HPRoman8 is the MIB identifier with IANA name hp-roman8. - // - // LaserJet IIP Printer User's Manual, - // HP part no 33471-90901, Hewlet-Packard, June 1989. - // Reference: RFC1345 - HPRoman8 MIB = 2004 - - // AdobeStandardEncoding is the MIB identifier with IANA name Adobe-Standard-Encoding. - // - // PostScript Language Reference Manual - // PCL Symbol Set id: 10J - AdobeStandardEncoding MIB = 2005 - - // VenturaUS is the MIB identifier with IANA name Ventura-US. - // - // Ventura US. ASCII plus characters typically used in - // publishing, like pilcrow, copyright, registered, trade mark, - // section, dagger, and double dagger in the range A0 (hex) - // to FF (hex). - // PCL Symbol Set id: 14J - VenturaUS MIB = 2006 - - // VenturaInternational is the MIB identifier with IANA name Ventura-International. - // - // Ventura International. ASCII plus coded characters similar - // to Roman8. - // PCL Symbol Set id: 13J - VenturaInternational MIB = 2007 - - // DECMCS is the MIB identifier with IANA name DEC-MCS. - // - // VAX/VMS User's Manual, - // Order Number: AI-Y517A-TE, April 1986. - // Reference: RFC1345 - DECMCS MIB = 2008 - - // PC850Multilingual is the MIB identifier with IANA name IBM850. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC850Multilingual MIB = 2009 - - // PC8DanishNorwegian is the MIB identifier with IANA name PC8-Danish-Norwegian. - // - // PC Danish Norwegian - // 8-bit PC set for Danish Norwegian - // PCL Symbol Set id: 11U - PC8DanishNorwegian MIB = 2012 - - // PC862LatinHebrew is the MIB identifier with IANA name IBM862. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC862LatinHebrew MIB = 2013 - - // PC8Turkish is the MIB identifier with IANA name PC8-Turkish. - // - // PC Latin Turkish. PCL Symbol Set id: 9T - PC8Turkish MIB = 2014 - - // IBMSymbols is the MIB identifier with IANA name IBM-Symbols. - // - // Presentation Set, CPGID: 259 - IBMSymbols MIB = 2015 - - // IBMThai is the MIB identifier with IANA name IBM-Thai. - // - // Presentation Set, CPGID: 838 - IBMThai MIB = 2016 - - // HPLegal is the MIB identifier with IANA name HP-Legal. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 1U - HPLegal MIB = 2017 - - // HPPiFont is the MIB identifier with IANA name HP-Pi-font. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 15U - HPPiFont MIB = 2018 - - // HPMath8 is the MIB identifier with IANA name HP-Math8. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 8M - HPMath8 MIB = 2019 - - // HPPSMath is the MIB identifier with IANA name Adobe-Symbol-Encoding. - // - // PostScript Language Reference Manual - // PCL Symbol Set id: 5M - HPPSMath MIB = 2020 - - // HPDesktop is the MIB identifier with IANA name HP-DeskTop. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 7J - HPDesktop MIB = 2021 - - // VenturaMath is the MIB identifier with IANA name Ventura-Math. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 6M - VenturaMath MIB = 2022 - - // MicrosoftPublishing is the MIB identifier with IANA name Microsoft-Publishing. - // - // PCL 5 Comparison Guide, Hewlett-Packard, - // HP part number 5961-0510, October 1992 - // PCL Symbol Set id: 6J - MicrosoftPublishing MIB = 2023 - - // Windows31J is the MIB identifier with IANA name Windows-31J. - // - // Windows Japanese. A further extension of Shift_JIS - // to include NEC special characters (Row 13), NEC - // selection of IBM extensions (Rows 89 to 92), and IBM - // extensions (Rows 115 to 119). The CCS's are - // JIS X0201:1997, JIS X0208:1997, and these extensions. - // This charset can be used for the top-level media type "text", - // but it is of limited or specialized use (see rfc2278 ). - // PCL Symbol Set id: 19K - Windows31J MIB = 2024 - - // GB2312 is the MIB identifier with IANA name GB2312 (MIME: GB2312). - // - // Chinese for People's Republic of China (PRC) mixed one byte, - // two byte set: - // 20-7E = one byte ASCII - // A1-FE = two byte PRC Kanji - // See GB 2312-80 - // PCL Symbol Set Id: 18C - GB2312 MIB = 2025 - - // Big5 is the MIB identifier with IANA name Big5 (MIME: Big5). - // - // Chinese for Taiwan Multi-byte set. - // PCL Symbol Set Id: 18T - Big5 MIB = 2026 - - // Macintosh is the MIB identifier with IANA name macintosh. - // - // The Unicode Standard ver1.0, ISBN 0-201-56788-1, Oct 1991 - // Reference: RFC1345 - Macintosh MIB = 2027 - - // IBM037 is the MIB identifier with IANA name IBM037. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM037 MIB = 2028 - - // IBM038 is the MIB identifier with IANA name IBM038. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM038 MIB = 2029 - - // IBM273 is the MIB identifier with IANA name IBM273. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM273 MIB = 2030 - - // IBM274 is the MIB identifier with IANA name IBM274. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM274 MIB = 2031 - - // IBM275 is the MIB identifier with IANA name IBM275. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM275 MIB = 2032 - - // IBM277 is the MIB identifier with IANA name IBM277. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM277 MIB = 2033 - - // IBM278 is the MIB identifier with IANA name IBM278. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM278 MIB = 2034 - - // IBM280 is the MIB identifier with IANA name IBM280. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM280 MIB = 2035 - - // IBM281 is the MIB identifier with IANA name IBM281. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM281 MIB = 2036 - - // IBM284 is the MIB identifier with IANA name IBM284. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM284 MIB = 2037 - - // IBM285 is the MIB identifier with IANA name IBM285. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM285 MIB = 2038 - - // IBM290 is the MIB identifier with IANA name IBM290. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM290 MIB = 2039 - - // IBM297 is the MIB identifier with IANA name IBM297. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM297 MIB = 2040 - - // IBM420 is the MIB identifier with IANA name IBM420. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990, - // IBM NLS RM p 11-11 - // Reference: RFC1345 - IBM420 MIB = 2041 - - // IBM423 is the MIB identifier with IANA name IBM423. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM423 MIB = 2042 - - // IBM424 is the MIB identifier with IANA name IBM424. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM424 MIB = 2043 - - // PC8CodePage437 is the MIB identifier with IANA name IBM437. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PC8CodePage437 MIB = 2011 - - // IBM500 is the MIB identifier with IANA name IBM500. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM500 MIB = 2044 - - // IBM851 is the MIB identifier with IANA name IBM851. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM851 MIB = 2045 - - // PCp852 is the MIB identifier with IANA name IBM852. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - PCp852 MIB = 2010 - - // IBM855 is the MIB identifier with IANA name IBM855. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM855 MIB = 2046 - - // IBM857 is the MIB identifier with IANA name IBM857. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM857 MIB = 2047 - - // IBM860 is the MIB identifier with IANA name IBM860. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM860 MIB = 2048 - - // IBM861 is the MIB identifier with IANA name IBM861. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM861 MIB = 2049 - - // IBM863 is the MIB identifier with IANA name IBM863. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM863 MIB = 2050 - - // IBM864 is the MIB identifier with IANA name IBM864. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM864 MIB = 2051 - - // IBM865 is the MIB identifier with IANA name IBM865. - // - // IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987) - // Reference: RFC1345 - IBM865 MIB = 2052 - - // IBM868 is the MIB identifier with IANA name IBM868. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM868 MIB = 2053 - - // IBM869 is the MIB identifier with IANA name IBM869. - // - // IBM Keyboard layouts and code pages, PN 07G4586 June 1991 - // Reference: RFC1345 - IBM869 MIB = 2054 - - // IBM870 is the MIB identifier with IANA name IBM870. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM870 MIB = 2055 - - // IBM871 is the MIB identifier with IANA name IBM871. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM871 MIB = 2056 - - // IBM880 is the MIB identifier with IANA name IBM880. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM880 MIB = 2057 - - // IBM891 is the MIB identifier with IANA name IBM891. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM891 MIB = 2058 - - // IBM903 is the MIB identifier with IANA name IBM903. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM903 MIB = 2059 - - // IBBM904 is the MIB identifier with IANA name IBM904. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBBM904 MIB = 2060 - - // IBM905 is the MIB identifier with IANA name IBM905. - // - // IBM 3174 Character Set Ref, GA27-3831-02, March 1990 - // Reference: RFC1345 - IBM905 MIB = 2061 - - // IBM918 is the MIB identifier with IANA name IBM918. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM918 MIB = 2062 - - // IBM1026 is the MIB identifier with IANA name IBM1026. - // - // IBM NLS RM Vol2 SE09-8002-01, March 1990 - // Reference: RFC1345 - IBM1026 MIB = 2063 - - // IBMEBCDICATDE is the MIB identifier with IANA name EBCDIC-AT-DE. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - IBMEBCDICATDE MIB = 2064 - - // EBCDICATDEA is the MIB identifier with IANA name EBCDIC-AT-DE-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICATDEA MIB = 2065 - - // EBCDICCAFR is the MIB identifier with IANA name EBCDIC-CA-FR. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICCAFR MIB = 2066 - - // EBCDICDKNO is the MIB identifier with IANA name EBCDIC-DK-NO. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICDKNO MIB = 2067 - - // EBCDICDKNOA is the MIB identifier with IANA name EBCDIC-DK-NO-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICDKNOA MIB = 2068 - - // EBCDICFISE is the MIB identifier with IANA name EBCDIC-FI-SE. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFISE MIB = 2069 - - // EBCDICFISEA is the MIB identifier with IANA name EBCDIC-FI-SE-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFISEA MIB = 2070 - - // EBCDICFR is the MIB identifier with IANA name EBCDIC-FR. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICFR MIB = 2071 - - // EBCDICIT is the MIB identifier with IANA name EBCDIC-IT. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICIT MIB = 2072 - - // EBCDICPT is the MIB identifier with IANA name EBCDIC-PT. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICPT MIB = 2073 - - // EBCDICES is the MIB identifier with IANA name EBCDIC-ES. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICES MIB = 2074 - - // EBCDICESA is the MIB identifier with IANA name EBCDIC-ES-A. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICESA MIB = 2075 - - // EBCDICESS is the MIB identifier with IANA name EBCDIC-ES-S. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICESS MIB = 2076 - - // EBCDICUK is the MIB identifier with IANA name EBCDIC-UK. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICUK MIB = 2077 - - // EBCDICUS is the MIB identifier with IANA name EBCDIC-US. - // - // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 - // Reference: RFC1345 - EBCDICUS MIB = 2078 - - // Unknown8BiT is the MIB identifier with IANA name UNKNOWN-8BIT. - // - // Reference: RFC1428 - Unknown8BiT MIB = 2079 - - // Mnemonic is the MIB identifier with IANA name MNEMONIC. - // - // rfc1345 , also known as "mnemonic+ascii+38" - // Reference: RFC1345 - Mnemonic MIB = 2080 - - // Mnem is the MIB identifier with IANA name MNEM. - // - // rfc1345 , also known as "mnemonic+ascii+8200" - // Reference: RFC1345 - Mnem MIB = 2081 - - // VISCII is the MIB identifier with IANA name VISCII. - // - // rfc1456 - // Reference: RFC1456 - VISCII MIB = 2082 - - // VIQR is the MIB identifier with IANA name VIQR. - // - // rfc1456 - // Reference: RFC1456 - VIQR MIB = 2083 - - // KOI8R is the MIB identifier with IANA name KOI8-R (MIME: KOI8-R). - // - // rfc1489 , based on GOST-19768-74, ISO-6937/8, - // INIS-Cyrillic, ISO-5427. - // Reference: RFC1489 - KOI8R MIB = 2084 - - // HZGB2312 is the MIB identifier with IANA name HZ-GB-2312. - // - // rfc1842 , rfc1843 rfc1843 rfc1842 - HZGB2312 MIB = 2085 - - // IBM866 is the MIB identifier with IANA name IBM866. - // - // IBM NLDG Volume 2 (SE09-8002-03) August 1994 - IBM866 MIB = 2086 - - // PC775Baltic is the MIB identifier with IANA name IBM775. - // - // HP PCL 5 Comparison Guide (P/N 5021-0329) pp B-13, 1996 - PC775Baltic MIB = 2087 - - // KOI8U is the MIB identifier with IANA name KOI8-U. - // - // rfc2319 - // Reference: RFC2319 - KOI8U MIB = 2088 - - // IBM00858 is the MIB identifier with IANA name IBM00858. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM00858 - IBM00858 MIB = 2089 - - // IBM00924 is the MIB identifier with IANA name IBM00924. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM00924 - IBM00924 MIB = 2090 - - // IBM01140 is the MIB identifier with IANA name IBM01140. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01140 - IBM01140 MIB = 2091 - - // IBM01141 is the MIB identifier with IANA name IBM01141. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01141 - IBM01141 MIB = 2092 - - // IBM01142 is the MIB identifier with IANA name IBM01142. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01142 - IBM01142 MIB = 2093 - - // IBM01143 is the MIB identifier with IANA name IBM01143. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01143 - IBM01143 MIB = 2094 - - // IBM01144 is the MIB identifier with IANA name IBM01144. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01144 - IBM01144 MIB = 2095 - - // IBM01145 is the MIB identifier with IANA name IBM01145. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01145 - IBM01145 MIB = 2096 - - // IBM01146 is the MIB identifier with IANA name IBM01146. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01146 - IBM01146 MIB = 2097 - - // IBM01147 is the MIB identifier with IANA name IBM01147. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01147 - IBM01147 MIB = 2098 - - // IBM01148 is the MIB identifier with IANA name IBM01148. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01148 - IBM01148 MIB = 2099 - - // IBM01149 is the MIB identifier with IANA name IBM01149. - // - // IBM See https://www.iana.org/assignments/charset-reg/IBM01149 - IBM01149 MIB = 2100 - - // Big5HKSCS is the MIB identifier with IANA name Big5-HKSCS. - // - // See https://www.iana.org/assignments/charset-reg/Big5-HKSCS - Big5HKSCS MIB = 2101 - - // IBM1047 is the MIB identifier with IANA name IBM1047. - // - // IBM1047 (EBCDIC Latin 1/Open Systems) https://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf - IBM1047 MIB = 2102 - - // PTCP154 is the MIB identifier with IANA name PTCP154. - // - // See https://www.iana.org/assignments/charset-reg/PTCP154 - PTCP154 MIB = 2103 - - // Amiga1251 is the MIB identifier with IANA name Amiga-1251. - // - // See https://www.amiga.ultranet.ru/Amiga-1251.html - Amiga1251 MIB = 2104 - - // KOI7switched is the MIB identifier with IANA name KOI7-switched. - // - // See https://www.iana.org/assignments/charset-reg/KOI7-switched - KOI7switched MIB = 2105 - - // BRF is the MIB identifier with IANA name BRF. - // - // See https://www.iana.org/assignments/charset-reg/BRF - BRF MIB = 2106 - - // TSCII is the MIB identifier with IANA name TSCII. - // - // See https://www.iana.org/assignments/charset-reg/TSCII - TSCII MIB = 2107 - - // CP51932 is the MIB identifier with IANA name CP51932. - // - // See https://www.iana.org/assignments/charset-reg/CP51932 - CP51932 MIB = 2108 - - // Windows874 is the MIB identifier with IANA name windows-874. - // - // See https://www.iana.org/assignments/charset-reg/windows-874 - Windows874 MIB = 2109 - - // Windows1250 is the MIB identifier with IANA name windows-1250. - // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1250 - Windows1250 MIB = 2250 - - // Windows1251 is the MIB identifier with IANA name windows-1251. - // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1251 - Windows1251 MIB = 2251 - - // Windows1252 is the MIB identifier with IANA name windows-1252. - // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1252 - Windows1252 MIB = 2252 - - // Windows1253 is the MIB identifier with IANA name windows-1253. - // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1253 - Windows1253 MIB = 2253 - - // Windows1254 is the MIB identifier with IANA name windows-1254. - // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1254 - Windows1254 MIB = 2254 - - // Windows1255 is the MIB identifier with IANA name windows-1255. - // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1255 - Windows1255 MIB = 2255 - - // Windows1256 is the MIB identifier with IANA name windows-1256. - // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1256 - Windows1256 MIB = 2256 - - // Windows1257 is the MIB identifier with IANA name windows-1257. - // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1257 - Windows1257 MIB = 2257 - - // Windows1258 is the MIB identifier with IANA name windows-1258. - // - // Microsoft https://www.iana.org/assignments/charset-reg/windows-1258 - Windows1258 MIB = 2258 - - // TIS620 is the MIB identifier with IANA name TIS-620. - // - // Thai Industrial Standards Institute (TISI) - TIS620 MIB = 2259 - - // CP50220 is the MIB identifier with IANA name CP50220. - // - // See https://www.iana.org/assignments/charset-reg/CP50220 - CP50220 MIB = 2260 -) diff --git a/vendor/golang.org/x/text/encoding/internal/internal.go b/vendor/golang.org/x/text/encoding/internal/internal.go deleted file mode 100644 index 75a5fd1658..0000000000 --- a/vendor/golang.org/x/text/encoding/internal/internal.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package internal contains code that is shared among encoding implementations. -package internal - -import ( - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// Encoding is an implementation of the Encoding interface that adds the String -// and ID methods to an existing encoding. -type Encoding struct { - encoding.Encoding - Name string - MIB identifier.MIB -} - -// _ verifies that Encoding implements identifier.Interface. -var _ identifier.Interface = (*Encoding)(nil) - -func (e *Encoding) String() string { - return e.Name -} - -func (e *Encoding) ID() (mib identifier.MIB, other string) { - return e.MIB, "" -} - -// SimpleEncoding is an Encoding that combines two Transformers. -type SimpleEncoding struct { - Decoder transform.Transformer - Encoder transform.Transformer -} - -func (e *SimpleEncoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: e.Decoder} -} - -func (e *SimpleEncoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: e.Encoder} -} - -// FuncEncoding is an Encoding that combines two functions returning a new -// Transformer. -type FuncEncoding struct { - Decoder func() transform.Transformer - Encoder func() transform.Transformer -} - -func (e FuncEncoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: e.Decoder()} -} - -func (e FuncEncoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: e.Encoder()} -} - -// A RepertoireError indicates a rune is not in the repertoire of a destination -// encoding. It is associated with an encoding-specific suggested replacement -// byte. -type RepertoireError byte - -// Error implements the error interrface. -func (r RepertoireError) Error() string { - return "encoding: rune not supported by encoding." -} - -// Replacement returns the replacement string associated with this error. -func (r RepertoireError) Replacement() byte { return byte(r) } - -var ErrASCIIReplacement = RepertoireError(encoding.ASCIISub) diff --git a/vendor/golang.org/x/text/encoding/japanese/all.go b/vendor/golang.org/x/text/encoding/japanese/all.go deleted file mode 100644 index 6cfa8de450..0000000000 --- a/vendor/golang.org/x/text/encoding/japanese/all.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package japanese - -import ( - "golang.org/x/text/encoding" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{EUCJP, ISO2022JP, ShiftJIS} diff --git a/vendor/golang.org/x/text/encoding/japanese/eucjp.go b/vendor/golang.org/x/text/encoding/japanese/eucjp.go deleted file mode 100644 index 79313fa589..0000000000 --- a/vendor/golang.org/x/text/encoding/japanese/eucjp.go +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package japanese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// EUCJP is the EUC-JP encoding. -var EUCJP encoding.Encoding = &eucJP - -var eucJP = internal.Encoding{ - &internal.SimpleEncoding{eucJPDecoder{}, eucJPEncoder{}}, - "EUC-JP", - identifier.EUCPkdFmtJapanese, -} - -type eucJPDecoder struct{ transform.NopResetter } - -// See https://encoding.spec.whatwg.org/#euc-jp-decoder. -func (eucJPDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case c0 == 0x8e: - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - break - } - c1 := src[nSrc+1] - switch { - case c1 < 0xa1: - r, size = utf8.RuneError, 1 - case c1 > 0xdf: - r, size = utf8.RuneError, 2 - if c1 == 0xff { - size = 1 - } - default: - r, size = rune(c1)+(0xff61-0xa1), 2 - } - case c0 == 0x8f: - if nSrc+2 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - if p := nSrc + 1; p < len(src) && 0xa1 <= src[p] && src[p] < 0xfe { - size = 2 - } - break - } - c1 := src[nSrc+1] - if c1 < 0xa1 || 0xfe < c1 { - r, size = utf8.RuneError, 1 - break - } - c2 := src[nSrc+2] - if c2 < 0xa1 || 0xfe < c2 { - r, size = utf8.RuneError, 2 - break - } - r, size = utf8.RuneError, 3 - if i := int(c1-0xa1)*94 + int(c2-0xa1); i < len(jis0212Decode) { - r = rune(jis0212Decode[i]) - if r == 0 { - r = utf8.RuneError - } - } - - case 0xa1 <= c0 && c0 <= 0xfe: - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - break - } - c1 := src[nSrc+1] - if c1 < 0xa1 || 0xfe < c1 { - r, size = utf8.RuneError, 1 - break - } - r, size = utf8.RuneError, 2 - if i := int(c0-0xa1)*94 + int(c1-0xa1); i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - if r == 0 { - r = utf8.RuneError - } - } - - default: - r, size = utf8.RuneError, 1 - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type eucJPEncoder struct{ transform.NopResetter } - -func (eucJPEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2or3 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2or3 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2or3 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2or3 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2or3 - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - goto write2 - } - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2or3 - } - } - err = internal.ErrASCIIReplacement - break - } - - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2or3: - if r>>tableShift == jis0208 { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - } else { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = 0x8f - nDst++ - } - dst[nDst+0] = 0xa1 + uint8(r>>codeShift)&codeMask - dst[nDst+1] = 0xa1 + uint8(r)&codeMask - nDst += 2 - continue - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = 0x8e - dst[nDst+1] = uint8(r - (0xff61 - 0xa1)) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 6 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go b/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go deleted file mode 100644 index 613226df5e..0000000000 --- a/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go +++ /dev/null @@ -1,299 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package japanese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// ISO2022JP is the ISO-2022-JP encoding. -var ISO2022JP encoding.Encoding = &iso2022JP - -var iso2022JP = internal.Encoding{ - internal.FuncEncoding{iso2022JPNewDecoder, iso2022JPNewEncoder}, - "ISO-2022-JP", - identifier.ISO2022JP, -} - -func iso2022JPNewDecoder() transform.Transformer { - return new(iso2022JPDecoder) -} - -func iso2022JPNewEncoder() transform.Transformer { - return new(iso2022JPEncoder) -} - -const ( - asciiState = iota - katakanaState - jis0208State - jis0212State -) - -const asciiEsc = 0x1b - -type iso2022JPDecoder int - -func (d *iso2022JPDecoder) Reset() { - *d = asciiState -} - -func (d *iso2022JPDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - c0 := src[nSrc] - if c0 >= utf8.RuneSelf { - r, size = '\ufffd', 1 - goto write - } - - if c0 == asciiEsc { - if nSrc+2 >= len(src) { - if !atEOF { - return nDst, nSrc, transform.ErrShortSrc - } - // TODO: is it correct to only skip 1?? - r, size = '\ufffd', 1 - goto write - } - size = 3 - c1 := src[nSrc+1] - c2 := src[nSrc+2] - switch { - case c1 == '$' && (c2 == '@' || c2 == 'B'): // 0x24 {0x40, 0x42} - *d = jis0208State - continue - case c1 == '$' && c2 == '(': // 0x24 0x28 - if nSrc+3 >= len(src) { - if !atEOF { - return nDst, nSrc, transform.ErrShortSrc - } - r, size = '\ufffd', 1 - goto write - } - size = 4 - if src[nSrc+3] == 'D' { - *d = jis0212State - continue - } - case c1 == '(' && (c2 == 'B' || c2 == 'J'): // 0x28 {0x42, 0x4A} - *d = asciiState - continue - case c1 == '(' && c2 == 'I': // 0x28 0x49 - *d = katakanaState - continue - } - r, size = '\ufffd', 1 - goto write - } - - switch *d { - case asciiState: - r, size = rune(c0), 1 - - case katakanaState: - if c0 < 0x21 || 0x60 <= c0 { - r, size = '\ufffd', 1 - goto write - } - r, size = rune(c0)+(0xff61-0x21), 1 - - default: - if c0 == 0x0a { - *d = asciiState - r, size = rune(c0), 1 - goto write - } - if nSrc+1 >= len(src) { - if !atEOF { - return nDst, nSrc, transform.ErrShortSrc - } - r, size = '\ufffd', 1 - goto write - } - size = 2 - c1 := src[nSrc+1] - i := int(c0-0x21)*94 + int(c1-0x21) - if *d == jis0208State && i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - } else if *d == jis0212State && i < len(jis0212Decode) { - r = rune(jis0212Decode[i]) - } else { - r = '\ufffd' - goto write - } - if r == 0 { - r = '\ufffd' - } - } - - write: - if nDst+utf8.RuneLen(r) > len(dst) { - return nDst, nSrc, transform.ErrShortDst - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type iso2022JPEncoder int - -func (e *iso2022JPEncoder) Reset() { - *e = asciiState -} - -func (e *iso2022JPEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - // - // http://encoding.spec.whatwg.org/#iso-2022-jp says that "the index jis0212 - // is not used by the iso-2022-jp encoder due to lack of widespread support". - // - // TODO: do we have to special-case U+00A5 and U+203E, as per - // http://encoding.spec.whatwg.org/#iso-2022-jp - // Doing so would mean that "\u00a5" would not be preserved - // after an encode-decode round trip. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r>>tableShift == jis0208 { - goto writeJIS - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - goto writeKatakana - } - if r = rune(encode5[r-encode5Low]); r>>tableShift == jis0208 { - goto writeJIS - } - } - - // Switch back to ASCII state in case of error so that an ASCII - // replacement character can be written in the correct state. - if *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } - err = internal.ErrASCIIReplacement - break - } - - if *e != asciiState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - writeJIS: - if *e != jis0208State { - if nDst+5 > len(dst) { - err = transform.ErrShortDst - break - } - *e = jis0208State - dst[nDst+0] = asciiEsc - dst[nDst+1] = '$' - dst[nDst+2] = 'B' - nDst += 3 - } else if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = 0x21 + uint8(r>>codeShift)&codeMask - dst[nDst+1] = 0x21 + uint8(r)&codeMask - nDst += 2 - continue - - writeKatakana: - if *e != katakanaState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = katakanaState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'I' - nDst += 3 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r - (0xff61 - 0x21)) - nDst++ - continue - } - if atEOF && err == nil && *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - } else { - *e = asciiState - dst[nDst+0] = asciiEsc - dst[nDst+1] = '(' - dst[nDst+2] = 'B' - nDst += 3 - } - } - return nDst, nSrc, err -} diff --git a/vendor/golang.org/x/text/encoding/japanese/shiftjis.go b/vendor/golang.org/x/text/encoding/japanese/shiftjis.go deleted file mode 100644 index 16fd8a6e3e..0000000000 --- a/vendor/golang.org/x/text/encoding/japanese/shiftjis.go +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package japanese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// ShiftJIS is the Shift JIS encoding, also known as Code Page 932 and -// Windows-31J. -var ShiftJIS encoding.Encoding = &shiftJIS - -var shiftJIS = internal.Encoding{ - &internal.SimpleEncoding{shiftJISDecoder{}, shiftJISEncoder{}}, - "Shift JIS", - identifier.ShiftJIS, -} - -type shiftJISDecoder struct{ transform.NopResetter } - -func (shiftJISDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0xa1 <= c0 && c0 < 0xe0: - r, size = rune(c0)+(0xff61-0xa1), 1 - - case (0x81 <= c0 && c0 < 0xa0) || (0xe0 <= c0 && c0 < 0xfd): - if c0 <= 0x9f { - c0 -= 0x70 - } else { - c0 -= 0xb0 - } - c0 = 2*c0 - 0x21 - - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = '\ufffd', 1 - goto write - } - c1 := src[nSrc+1] - switch { - case c1 < 0x40: - r, size = '\ufffd', 1 // c1 is ASCII so output on next round - goto write - case c1 < 0x7f: - c0-- - c1 -= 0x40 - case c1 == 0x7f: - r, size = '\ufffd', 1 // c1 is ASCII so output on next round - goto write - case c1 < 0x9f: - c0-- - c1 -= 0x41 - case c1 < 0xfd: - c1 -= 0x9f - default: - r, size = '\ufffd', 2 - goto write - } - r, size = '\ufffd', 2 - if i := int(c0)*94 + int(c1); i < len(jis0208Decode) { - r = rune(jis0208Decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - case c0 == 0x80: - r, size = 0x80, 1 - - default: - r, size = '\ufffd', 1 - } - write: - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type shiftJISEncoder struct{ transform.NopResetter } - -func (shiftJISEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break loop - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r>>tableShift == jis0208 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if 0xff61 <= r && r < 0xffa0 { - r -= 0xff61 - 0xa1 - goto write1 - } - if r = rune(encode5[r-encode5Low]); r>>tableShift == jis0208 { - goto write2 - } - } - err = internal.ErrASCIIReplacement - break - } - - write1: - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2: - j1 := uint8(r>>codeShift) & codeMask - j2 := uint8(r) & codeMask - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break loop - } - if j1 <= 61 { - dst[nDst+0] = 129 + j1/2 - } else { - dst[nDst+0] = 193 + j1/2 - } - if j1&1 == 0 { - dst[nDst+1] = j2 + j2/63 + 64 - } else { - dst[nDst+1] = j2 + 159 - } - nDst += 2 - continue - } - return nDst, nSrc, err -} diff --git a/vendor/golang.org/x/text/encoding/japanese/tables.go b/vendor/golang.org/x/text/encoding/japanese/tables.go deleted file mode 100644 index 8717b79ae0..0000000000 --- a/vendor/golang.org/x/text/encoding/japanese/tables.go +++ /dev/null @@ -1,26971 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package japanese provides Japanese encodings such as EUC-JP and Shift JIS. -package japanese // import "golang.org/x/text/encoding/japanese" - -// jis0208Decode is the decoding table from JIS 0208 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-jis0208.txt -var jis0208Decode = [...]uint16{ - 0: 0x3000, - 1: 0x3001, - 2: 0x3002, - 3: 0xFF0C, - 4: 0xFF0E, - 5: 0x30FB, - 6: 0xFF1A, - 7: 0xFF1B, - 8: 0xFF1F, - 9: 0xFF01, - 10: 0x309B, - 11: 0x309C, - 12: 0x00B4, - 13: 0xFF40, - 14: 0x00A8, - 15: 0xFF3E, - 16: 0xFFE3, - 17: 0xFF3F, - 18: 0x30FD, - 19: 0x30FE, - 20: 0x309D, - 21: 0x309E, - 22: 0x3003, - 23: 0x4EDD, - 24: 0x3005, - 25: 0x3006, - 26: 0x3007, - 27: 0x30FC, - 28: 0x2015, - 29: 0x2010, - 30: 0xFF0F, - 31: 0xFF3C, - 32: 0xFF5E, - 33: 0x2225, - 34: 0xFF5C, - 35: 0x2026, - 36: 0x2025, - 37: 0x2018, - 38: 0x2019, - 39: 0x201C, - 40: 0x201D, - 41: 0xFF08, - 42: 0xFF09, - 43: 0x3014, - 44: 0x3015, - 45: 0xFF3B, - 46: 0xFF3D, - 47: 0xFF5B, - 48: 0xFF5D, - 49: 0x3008, - 50: 0x3009, - 51: 0x300A, - 52: 0x300B, - 53: 0x300C, - 54: 0x300D, - 55: 0x300E, - 56: 0x300F, - 57: 0x3010, - 58: 0x3011, - 59: 0xFF0B, - 60: 0xFF0D, - 61: 0x00B1, - 62: 0x00D7, - 63: 0x00F7, - 64: 0xFF1D, - 65: 0x2260, - 66: 0xFF1C, - 67: 0xFF1E, - 68: 0x2266, - 69: 0x2267, - 70: 0x221E, - 71: 0x2234, - 72: 0x2642, - 73: 0x2640, - 74: 0x00B0, - 75: 0x2032, - 76: 0x2033, - 77: 0x2103, - 78: 0xFFE5, - 79: 0xFF04, - 80: 0xFFE0, - 81: 0xFFE1, - 82: 0xFF05, - 83: 0xFF03, - 84: 0xFF06, - 85: 0xFF0A, - 86: 0xFF20, - 87: 0x00A7, - 88: 0x2606, - 89: 0x2605, - 90: 0x25CB, - 91: 0x25CF, - 92: 0x25CE, - 93: 0x25C7, - 94: 0x25C6, - 95: 0x25A1, - 96: 0x25A0, - 97: 0x25B3, - 98: 0x25B2, - 99: 0x25BD, - 100: 0x25BC, - 101: 0x203B, - 102: 0x3012, - 103: 0x2192, - 104: 0x2190, - 105: 0x2191, - 106: 0x2193, - 107: 0x3013, - 119: 0x2208, - 120: 0x220B, - 121: 0x2286, - 122: 0x2287, - 123: 0x2282, - 124: 0x2283, - 125: 0x222A, - 126: 0x2229, - 135: 0x2227, - 136: 0x2228, - 137: 0xFFE2, - 138: 0x21D2, - 139: 0x21D4, - 140: 0x2200, - 141: 0x2203, - 153: 0x2220, - 154: 0x22A5, - 155: 0x2312, - 156: 0x2202, - 157: 0x2207, - 158: 0x2261, - 159: 0x2252, - 160: 0x226A, - 161: 0x226B, - 162: 0x221A, - 163: 0x223D, - 164: 0x221D, - 165: 0x2235, - 166: 0x222B, - 167: 0x222C, - 175: 0x212B, - 176: 0x2030, - 177: 0x266F, - 178: 0x266D, - 179: 0x266A, - 180: 0x2020, - 181: 0x2021, - 182: 0x00B6, - 187: 0x25EF, - 203: 0xFF10, - 204: 0xFF11, - 205: 0xFF12, - 206: 0xFF13, - 207: 0xFF14, - 208: 0xFF15, - 209: 0xFF16, - 210: 0xFF17, - 211: 0xFF18, - 212: 0xFF19, - 220: 0xFF21, - 221: 0xFF22, - 222: 0xFF23, - 223: 0xFF24, - 224: 0xFF25, - 225: 0xFF26, - 226: 0xFF27, - 227: 0xFF28, - 228: 0xFF29, - 229: 0xFF2A, - 230: 0xFF2B, - 231: 0xFF2C, - 232: 0xFF2D, - 233: 0xFF2E, - 234: 0xFF2F, - 235: 0xFF30, - 236: 0xFF31, - 237: 0xFF32, - 238: 0xFF33, - 239: 0xFF34, - 240: 0xFF35, - 241: 0xFF36, - 242: 0xFF37, - 243: 0xFF38, - 244: 0xFF39, - 245: 0xFF3A, - 252: 0xFF41, - 253: 0xFF42, - 254: 0xFF43, - 255: 0xFF44, - 256: 0xFF45, - 257: 0xFF46, - 258: 0xFF47, - 259: 0xFF48, - 260: 0xFF49, - 261: 0xFF4A, - 262: 0xFF4B, - 263: 0xFF4C, - 264: 0xFF4D, - 265: 0xFF4E, - 266: 0xFF4F, - 267: 0xFF50, - 268: 0xFF51, - 269: 0xFF52, - 270: 0xFF53, - 271: 0xFF54, - 272: 0xFF55, - 273: 0xFF56, - 274: 0xFF57, - 275: 0xFF58, - 276: 0xFF59, - 277: 0xFF5A, - 282: 0x3041, - 283: 0x3042, - 284: 0x3043, - 285: 0x3044, - 286: 0x3045, - 287: 0x3046, - 288: 0x3047, - 289: 0x3048, - 290: 0x3049, - 291: 0x304A, - 292: 0x304B, - 293: 0x304C, - 294: 0x304D, - 295: 0x304E, - 296: 0x304F, - 297: 0x3050, - 298: 0x3051, - 299: 0x3052, - 300: 0x3053, - 301: 0x3054, - 302: 0x3055, - 303: 0x3056, - 304: 0x3057, - 305: 0x3058, - 306: 0x3059, - 307: 0x305A, - 308: 0x305B, - 309: 0x305C, - 310: 0x305D, - 311: 0x305E, - 312: 0x305F, - 313: 0x3060, - 314: 0x3061, - 315: 0x3062, - 316: 0x3063, - 317: 0x3064, - 318: 0x3065, - 319: 0x3066, - 320: 0x3067, - 321: 0x3068, - 322: 0x3069, - 323: 0x306A, - 324: 0x306B, - 325: 0x306C, - 326: 0x306D, - 327: 0x306E, - 328: 0x306F, - 329: 0x3070, - 330: 0x3071, - 331: 0x3072, - 332: 0x3073, - 333: 0x3074, - 334: 0x3075, - 335: 0x3076, - 336: 0x3077, - 337: 0x3078, - 338: 0x3079, - 339: 0x307A, - 340: 0x307B, - 341: 0x307C, - 342: 0x307D, - 343: 0x307E, - 344: 0x307F, - 345: 0x3080, - 346: 0x3081, - 347: 0x3082, - 348: 0x3083, - 349: 0x3084, - 350: 0x3085, - 351: 0x3086, - 352: 0x3087, - 353: 0x3088, - 354: 0x3089, - 355: 0x308A, - 356: 0x308B, - 357: 0x308C, - 358: 0x308D, - 359: 0x308E, - 360: 0x308F, - 361: 0x3090, - 362: 0x3091, - 363: 0x3092, - 364: 0x3093, - 376: 0x30A1, - 377: 0x30A2, - 378: 0x30A3, - 379: 0x30A4, - 380: 0x30A5, - 381: 0x30A6, - 382: 0x30A7, - 383: 0x30A8, - 384: 0x30A9, - 385: 0x30AA, - 386: 0x30AB, - 387: 0x30AC, - 388: 0x30AD, - 389: 0x30AE, - 390: 0x30AF, - 391: 0x30B0, - 392: 0x30B1, - 393: 0x30B2, - 394: 0x30B3, - 395: 0x30B4, - 396: 0x30B5, - 397: 0x30B6, - 398: 0x30B7, - 399: 0x30B8, - 400: 0x30B9, - 401: 0x30BA, - 402: 0x30BB, - 403: 0x30BC, - 404: 0x30BD, - 405: 0x30BE, - 406: 0x30BF, - 407: 0x30C0, - 408: 0x30C1, - 409: 0x30C2, - 410: 0x30C3, - 411: 0x30C4, - 412: 0x30C5, - 413: 0x30C6, - 414: 0x30C7, - 415: 0x30C8, - 416: 0x30C9, - 417: 0x30CA, - 418: 0x30CB, - 419: 0x30CC, - 420: 0x30CD, - 421: 0x30CE, - 422: 0x30CF, - 423: 0x30D0, - 424: 0x30D1, - 425: 0x30D2, - 426: 0x30D3, - 427: 0x30D4, - 428: 0x30D5, - 429: 0x30D6, - 430: 0x30D7, - 431: 0x30D8, - 432: 0x30D9, - 433: 0x30DA, - 434: 0x30DB, - 435: 0x30DC, - 436: 0x30DD, - 437: 0x30DE, - 438: 0x30DF, - 439: 0x30E0, - 440: 0x30E1, - 441: 0x30E2, - 442: 0x30E3, - 443: 0x30E4, - 444: 0x30E5, - 445: 0x30E6, - 446: 0x30E7, - 447: 0x30E8, - 448: 0x30E9, - 449: 0x30EA, - 450: 0x30EB, - 451: 0x30EC, - 452: 0x30ED, - 453: 0x30EE, - 454: 0x30EF, - 455: 0x30F0, - 456: 0x30F1, - 457: 0x30F2, - 458: 0x30F3, - 459: 0x30F4, - 460: 0x30F5, - 461: 0x30F6, - 470: 0x0391, - 471: 0x0392, - 472: 0x0393, - 473: 0x0394, - 474: 0x0395, - 475: 0x0396, - 476: 0x0397, - 477: 0x0398, - 478: 0x0399, - 479: 0x039A, - 480: 0x039B, - 481: 0x039C, - 482: 0x039D, - 483: 0x039E, - 484: 0x039F, - 485: 0x03A0, - 486: 0x03A1, - 487: 0x03A3, - 488: 0x03A4, - 489: 0x03A5, - 490: 0x03A6, - 491: 0x03A7, - 492: 0x03A8, - 493: 0x03A9, - 502: 0x03B1, - 503: 0x03B2, - 504: 0x03B3, - 505: 0x03B4, - 506: 0x03B5, - 507: 0x03B6, - 508: 0x03B7, - 509: 0x03B8, - 510: 0x03B9, - 511: 0x03BA, - 512: 0x03BB, - 513: 0x03BC, - 514: 0x03BD, - 515: 0x03BE, - 516: 0x03BF, - 517: 0x03C0, - 518: 0x03C1, - 519: 0x03C3, - 520: 0x03C4, - 521: 0x03C5, - 522: 0x03C6, - 523: 0x03C7, - 524: 0x03C8, - 525: 0x03C9, - 564: 0x0410, - 565: 0x0411, - 566: 0x0412, - 567: 0x0413, - 568: 0x0414, - 569: 0x0415, - 570: 0x0401, - 571: 0x0416, - 572: 0x0417, - 573: 0x0418, - 574: 0x0419, - 575: 0x041A, - 576: 0x041B, - 577: 0x041C, - 578: 0x041D, - 579: 0x041E, - 580: 0x041F, - 581: 0x0420, - 582: 0x0421, - 583: 0x0422, - 584: 0x0423, - 585: 0x0424, - 586: 0x0425, - 587: 0x0426, - 588: 0x0427, - 589: 0x0428, - 590: 0x0429, - 591: 0x042A, - 592: 0x042B, - 593: 0x042C, - 594: 0x042D, - 595: 0x042E, - 596: 0x042F, - 612: 0x0430, - 613: 0x0431, - 614: 0x0432, - 615: 0x0433, - 616: 0x0434, - 617: 0x0435, - 618: 0x0451, - 619: 0x0436, - 620: 0x0437, - 621: 0x0438, - 622: 0x0439, - 623: 0x043A, - 624: 0x043B, - 625: 0x043C, - 626: 0x043D, - 627: 0x043E, - 628: 0x043F, - 629: 0x0440, - 630: 0x0441, - 631: 0x0442, - 632: 0x0443, - 633: 0x0444, - 634: 0x0445, - 635: 0x0446, - 636: 0x0447, - 637: 0x0448, - 638: 0x0449, - 639: 0x044A, - 640: 0x044B, - 641: 0x044C, - 642: 0x044D, - 643: 0x044E, - 644: 0x044F, - 658: 0x2500, - 659: 0x2502, - 660: 0x250C, - 661: 0x2510, - 662: 0x2518, - 663: 0x2514, - 664: 0x251C, - 665: 0x252C, - 666: 0x2524, - 667: 0x2534, - 668: 0x253C, - 669: 0x2501, - 670: 0x2503, - 671: 0x250F, - 672: 0x2513, - 673: 0x251B, - 674: 0x2517, - 675: 0x2523, - 676: 0x2533, - 677: 0x252B, - 678: 0x253B, - 679: 0x254B, - 680: 0x2520, - 681: 0x252F, - 682: 0x2528, - 683: 0x2537, - 684: 0x253F, - 685: 0x251D, - 686: 0x2530, - 687: 0x2525, - 688: 0x2538, - 689: 0x2542, - 1128: 0x2460, - 1129: 0x2461, - 1130: 0x2462, - 1131: 0x2463, - 1132: 0x2464, - 1133: 0x2465, - 1134: 0x2466, - 1135: 0x2467, - 1136: 0x2468, - 1137: 0x2469, - 1138: 0x246A, - 1139: 0x246B, - 1140: 0x246C, - 1141: 0x246D, - 1142: 0x246E, - 1143: 0x246F, - 1144: 0x2470, - 1145: 0x2471, - 1146: 0x2472, - 1147: 0x2473, - 1148: 0x2160, - 1149: 0x2161, - 1150: 0x2162, - 1151: 0x2163, - 1152: 0x2164, - 1153: 0x2165, - 1154: 0x2166, - 1155: 0x2167, - 1156: 0x2168, - 1157: 0x2169, - 1159: 0x3349, - 1160: 0x3314, - 1161: 0x3322, - 1162: 0x334D, - 1163: 0x3318, - 1164: 0x3327, - 1165: 0x3303, - 1166: 0x3336, - 1167: 0x3351, - 1168: 0x3357, - 1169: 0x330D, - 1170: 0x3326, - 1171: 0x3323, - 1172: 0x332B, - 1173: 0x334A, - 1174: 0x333B, - 1175: 0x339C, - 1176: 0x339D, - 1177: 0x339E, - 1178: 0x338E, - 1179: 0x338F, - 1180: 0x33C4, - 1181: 0x33A1, - 1190: 0x337B, - 1191: 0x301D, - 1192: 0x301F, - 1193: 0x2116, - 1194: 0x33CD, - 1195: 0x2121, - 1196: 0x32A4, - 1197: 0x32A5, - 1198: 0x32A6, - 1199: 0x32A7, - 1200: 0x32A8, - 1201: 0x3231, - 1202: 0x3232, - 1203: 0x3239, - 1204: 0x337E, - 1205: 0x337D, - 1206: 0x337C, - 1207: 0x2252, - 1208: 0x2261, - 1209: 0x222B, - 1210: 0x222E, - 1211: 0x2211, - 1212: 0x221A, - 1213: 0x22A5, - 1214: 0x2220, - 1215: 0x221F, - 1216: 0x22BF, - 1217: 0x2235, - 1218: 0x2229, - 1219: 0x222A, - 1410: 0x4E9C, - 1411: 0x5516, - 1412: 0x5A03, - 1413: 0x963F, - 1414: 0x54C0, - 1415: 0x611B, - 1416: 0x6328, - 1417: 0x59F6, - 1418: 0x9022, - 1419: 0x8475, - 1420: 0x831C, - 1421: 0x7A50, - 1422: 0x60AA, - 1423: 0x63E1, - 1424: 0x6E25, - 1425: 0x65ED, - 1426: 0x8466, - 1427: 0x82A6, - 1428: 0x9BF5, - 1429: 0x6893, - 1430: 0x5727, - 1431: 0x65A1, - 1432: 0x6271, - 1433: 0x5B9B, - 1434: 0x59D0, - 1435: 0x867B, - 1436: 0x98F4, - 1437: 0x7D62, - 1438: 0x7DBE, - 1439: 0x9B8E, - 1440: 0x6216, - 1441: 0x7C9F, - 1442: 0x88B7, - 1443: 0x5B89, - 1444: 0x5EB5, - 1445: 0x6309, - 1446: 0x6697, - 1447: 0x6848, - 1448: 0x95C7, - 1449: 0x978D, - 1450: 0x674F, - 1451: 0x4EE5, - 1452: 0x4F0A, - 1453: 0x4F4D, - 1454: 0x4F9D, - 1455: 0x5049, - 1456: 0x56F2, - 1457: 0x5937, - 1458: 0x59D4, - 1459: 0x5A01, - 1460: 0x5C09, - 1461: 0x60DF, - 1462: 0x610F, - 1463: 0x6170, - 1464: 0x6613, - 1465: 0x6905, - 1466: 0x70BA, - 1467: 0x754F, - 1468: 0x7570, - 1469: 0x79FB, - 1470: 0x7DAD, - 1471: 0x7DEF, - 1472: 0x80C3, - 1473: 0x840E, - 1474: 0x8863, - 1475: 0x8B02, - 1476: 0x9055, - 1477: 0x907A, - 1478: 0x533B, - 1479: 0x4E95, - 1480: 0x4EA5, - 1481: 0x57DF, - 1482: 0x80B2, - 1483: 0x90C1, - 1484: 0x78EF, - 1485: 0x4E00, - 1486: 0x58F1, - 1487: 0x6EA2, - 1488: 0x9038, - 1489: 0x7A32, - 1490: 0x8328, - 1491: 0x828B, - 1492: 0x9C2F, - 1493: 0x5141, - 1494: 0x5370, - 1495: 0x54BD, - 1496: 0x54E1, - 1497: 0x56E0, - 1498: 0x59FB, - 1499: 0x5F15, - 1500: 0x98F2, - 1501: 0x6DEB, - 1502: 0x80E4, - 1503: 0x852D, - 1504: 0x9662, - 1505: 0x9670, - 1506: 0x96A0, - 1507: 0x97FB, - 1508: 0x540B, - 1509: 0x53F3, - 1510: 0x5B87, - 1511: 0x70CF, - 1512: 0x7FBD, - 1513: 0x8FC2, - 1514: 0x96E8, - 1515: 0x536F, - 1516: 0x9D5C, - 1517: 0x7ABA, - 1518: 0x4E11, - 1519: 0x7893, - 1520: 0x81FC, - 1521: 0x6E26, - 1522: 0x5618, - 1523: 0x5504, - 1524: 0x6B1D, - 1525: 0x851A, - 1526: 0x9C3B, - 1527: 0x59E5, - 1528: 0x53A9, - 1529: 0x6D66, - 1530: 0x74DC, - 1531: 0x958F, - 1532: 0x5642, - 1533: 0x4E91, - 1534: 0x904B, - 1535: 0x96F2, - 1536: 0x834F, - 1537: 0x990C, - 1538: 0x53E1, - 1539: 0x55B6, - 1540: 0x5B30, - 1541: 0x5F71, - 1542: 0x6620, - 1543: 0x66F3, - 1544: 0x6804, - 1545: 0x6C38, - 1546: 0x6CF3, - 1547: 0x6D29, - 1548: 0x745B, - 1549: 0x76C8, - 1550: 0x7A4E, - 1551: 0x9834, - 1552: 0x82F1, - 1553: 0x885B, - 1554: 0x8A60, - 1555: 0x92ED, - 1556: 0x6DB2, - 1557: 0x75AB, - 1558: 0x76CA, - 1559: 0x99C5, - 1560: 0x60A6, - 1561: 0x8B01, - 1562: 0x8D8A, - 1563: 0x95B2, - 1564: 0x698E, - 1565: 0x53AD, - 1566: 0x5186, - 1567: 0x5712, - 1568: 0x5830, - 1569: 0x5944, - 1570: 0x5BB4, - 1571: 0x5EF6, - 1572: 0x6028, - 1573: 0x63A9, - 1574: 0x63F4, - 1575: 0x6CBF, - 1576: 0x6F14, - 1577: 0x708E, - 1578: 0x7114, - 1579: 0x7159, - 1580: 0x71D5, - 1581: 0x733F, - 1582: 0x7E01, - 1583: 0x8276, - 1584: 0x82D1, - 1585: 0x8597, - 1586: 0x9060, - 1587: 0x925B, - 1588: 0x9D1B, - 1589: 0x5869, - 1590: 0x65BC, - 1591: 0x6C5A, - 1592: 0x7525, - 1593: 0x51F9, - 1594: 0x592E, - 1595: 0x5965, - 1596: 0x5F80, - 1597: 0x5FDC, - 1598: 0x62BC, - 1599: 0x65FA, - 1600: 0x6A2A, - 1601: 0x6B27, - 1602: 0x6BB4, - 1603: 0x738B, - 1604: 0x7FC1, - 1605: 0x8956, - 1606: 0x9D2C, - 1607: 0x9D0E, - 1608: 0x9EC4, - 1609: 0x5CA1, - 1610: 0x6C96, - 1611: 0x837B, - 1612: 0x5104, - 1613: 0x5C4B, - 1614: 0x61B6, - 1615: 0x81C6, - 1616: 0x6876, - 1617: 0x7261, - 1618: 0x4E59, - 1619: 0x4FFA, - 1620: 0x5378, - 1621: 0x6069, - 1622: 0x6E29, - 1623: 0x7A4F, - 1624: 0x97F3, - 1625: 0x4E0B, - 1626: 0x5316, - 1627: 0x4EEE, - 1628: 0x4F55, - 1629: 0x4F3D, - 1630: 0x4FA1, - 1631: 0x4F73, - 1632: 0x52A0, - 1633: 0x53EF, - 1634: 0x5609, - 1635: 0x590F, - 1636: 0x5AC1, - 1637: 0x5BB6, - 1638: 0x5BE1, - 1639: 0x79D1, - 1640: 0x6687, - 1641: 0x679C, - 1642: 0x67B6, - 1643: 0x6B4C, - 1644: 0x6CB3, - 1645: 0x706B, - 1646: 0x73C2, - 1647: 0x798D, - 1648: 0x79BE, - 1649: 0x7A3C, - 1650: 0x7B87, - 1651: 0x82B1, - 1652: 0x82DB, - 1653: 0x8304, - 1654: 0x8377, - 1655: 0x83EF, - 1656: 0x83D3, - 1657: 0x8766, - 1658: 0x8AB2, - 1659: 0x5629, - 1660: 0x8CA8, - 1661: 0x8FE6, - 1662: 0x904E, - 1663: 0x971E, - 1664: 0x868A, - 1665: 0x4FC4, - 1666: 0x5CE8, - 1667: 0x6211, - 1668: 0x7259, - 1669: 0x753B, - 1670: 0x81E5, - 1671: 0x82BD, - 1672: 0x86FE, - 1673: 0x8CC0, - 1674: 0x96C5, - 1675: 0x9913, - 1676: 0x99D5, - 1677: 0x4ECB, - 1678: 0x4F1A, - 1679: 0x89E3, - 1680: 0x56DE, - 1681: 0x584A, - 1682: 0x58CA, - 1683: 0x5EFB, - 1684: 0x5FEB, - 1685: 0x602A, - 1686: 0x6094, - 1687: 0x6062, - 1688: 0x61D0, - 1689: 0x6212, - 1690: 0x62D0, - 1691: 0x6539, - 1692: 0x9B41, - 1693: 0x6666, - 1694: 0x68B0, - 1695: 0x6D77, - 1696: 0x7070, - 1697: 0x754C, - 1698: 0x7686, - 1699: 0x7D75, - 1700: 0x82A5, - 1701: 0x87F9, - 1702: 0x958B, - 1703: 0x968E, - 1704: 0x8C9D, - 1705: 0x51F1, - 1706: 0x52BE, - 1707: 0x5916, - 1708: 0x54B3, - 1709: 0x5BB3, - 1710: 0x5D16, - 1711: 0x6168, - 1712: 0x6982, - 1713: 0x6DAF, - 1714: 0x788D, - 1715: 0x84CB, - 1716: 0x8857, - 1717: 0x8A72, - 1718: 0x93A7, - 1719: 0x9AB8, - 1720: 0x6D6C, - 1721: 0x99A8, - 1722: 0x86D9, - 1723: 0x57A3, - 1724: 0x67FF, - 1725: 0x86CE, - 1726: 0x920E, - 1727: 0x5283, - 1728: 0x5687, - 1729: 0x5404, - 1730: 0x5ED3, - 1731: 0x62E1, - 1732: 0x64B9, - 1733: 0x683C, - 1734: 0x6838, - 1735: 0x6BBB, - 1736: 0x7372, - 1737: 0x78BA, - 1738: 0x7A6B, - 1739: 0x899A, - 1740: 0x89D2, - 1741: 0x8D6B, - 1742: 0x8F03, - 1743: 0x90ED, - 1744: 0x95A3, - 1745: 0x9694, - 1746: 0x9769, - 1747: 0x5B66, - 1748: 0x5CB3, - 1749: 0x697D, - 1750: 0x984D, - 1751: 0x984E, - 1752: 0x639B, - 1753: 0x7B20, - 1754: 0x6A2B, - 1755: 0x6A7F, - 1756: 0x68B6, - 1757: 0x9C0D, - 1758: 0x6F5F, - 1759: 0x5272, - 1760: 0x559D, - 1761: 0x6070, - 1762: 0x62EC, - 1763: 0x6D3B, - 1764: 0x6E07, - 1765: 0x6ED1, - 1766: 0x845B, - 1767: 0x8910, - 1768: 0x8F44, - 1769: 0x4E14, - 1770: 0x9C39, - 1771: 0x53F6, - 1772: 0x691B, - 1773: 0x6A3A, - 1774: 0x9784, - 1775: 0x682A, - 1776: 0x515C, - 1777: 0x7AC3, - 1778: 0x84B2, - 1779: 0x91DC, - 1780: 0x938C, - 1781: 0x565B, - 1782: 0x9D28, - 1783: 0x6822, - 1784: 0x8305, - 1785: 0x8431, - 1786: 0x7CA5, - 1787: 0x5208, - 1788: 0x82C5, - 1789: 0x74E6, - 1790: 0x4E7E, - 1791: 0x4F83, - 1792: 0x51A0, - 1793: 0x5BD2, - 1794: 0x520A, - 1795: 0x52D8, - 1796: 0x52E7, - 1797: 0x5DFB, - 1798: 0x559A, - 1799: 0x582A, - 1800: 0x59E6, - 1801: 0x5B8C, - 1802: 0x5B98, - 1803: 0x5BDB, - 1804: 0x5E72, - 1805: 0x5E79, - 1806: 0x60A3, - 1807: 0x611F, - 1808: 0x6163, - 1809: 0x61BE, - 1810: 0x63DB, - 1811: 0x6562, - 1812: 0x67D1, - 1813: 0x6853, - 1814: 0x68FA, - 1815: 0x6B3E, - 1816: 0x6B53, - 1817: 0x6C57, - 1818: 0x6F22, - 1819: 0x6F97, - 1820: 0x6F45, - 1821: 0x74B0, - 1822: 0x7518, - 1823: 0x76E3, - 1824: 0x770B, - 1825: 0x7AFF, - 1826: 0x7BA1, - 1827: 0x7C21, - 1828: 0x7DE9, - 1829: 0x7F36, - 1830: 0x7FF0, - 1831: 0x809D, - 1832: 0x8266, - 1833: 0x839E, - 1834: 0x89B3, - 1835: 0x8ACC, - 1836: 0x8CAB, - 1837: 0x9084, - 1838: 0x9451, - 1839: 0x9593, - 1840: 0x9591, - 1841: 0x95A2, - 1842: 0x9665, - 1843: 0x97D3, - 1844: 0x9928, - 1845: 0x8218, - 1846: 0x4E38, - 1847: 0x542B, - 1848: 0x5CB8, - 1849: 0x5DCC, - 1850: 0x73A9, - 1851: 0x764C, - 1852: 0x773C, - 1853: 0x5CA9, - 1854: 0x7FEB, - 1855: 0x8D0B, - 1856: 0x96C1, - 1857: 0x9811, - 1858: 0x9854, - 1859: 0x9858, - 1860: 0x4F01, - 1861: 0x4F0E, - 1862: 0x5371, - 1863: 0x559C, - 1864: 0x5668, - 1865: 0x57FA, - 1866: 0x5947, - 1867: 0x5B09, - 1868: 0x5BC4, - 1869: 0x5C90, - 1870: 0x5E0C, - 1871: 0x5E7E, - 1872: 0x5FCC, - 1873: 0x63EE, - 1874: 0x673A, - 1875: 0x65D7, - 1876: 0x65E2, - 1877: 0x671F, - 1878: 0x68CB, - 1879: 0x68C4, - 1880: 0x6A5F, - 1881: 0x5E30, - 1882: 0x6BC5, - 1883: 0x6C17, - 1884: 0x6C7D, - 1885: 0x757F, - 1886: 0x7948, - 1887: 0x5B63, - 1888: 0x7A00, - 1889: 0x7D00, - 1890: 0x5FBD, - 1891: 0x898F, - 1892: 0x8A18, - 1893: 0x8CB4, - 1894: 0x8D77, - 1895: 0x8ECC, - 1896: 0x8F1D, - 1897: 0x98E2, - 1898: 0x9A0E, - 1899: 0x9B3C, - 1900: 0x4E80, - 1901: 0x507D, - 1902: 0x5100, - 1903: 0x5993, - 1904: 0x5B9C, - 1905: 0x622F, - 1906: 0x6280, - 1907: 0x64EC, - 1908: 0x6B3A, - 1909: 0x72A0, - 1910: 0x7591, - 1911: 0x7947, - 1912: 0x7FA9, - 1913: 0x87FB, - 1914: 0x8ABC, - 1915: 0x8B70, - 1916: 0x63AC, - 1917: 0x83CA, - 1918: 0x97A0, - 1919: 0x5409, - 1920: 0x5403, - 1921: 0x55AB, - 1922: 0x6854, - 1923: 0x6A58, - 1924: 0x8A70, - 1925: 0x7827, - 1926: 0x6775, - 1927: 0x9ECD, - 1928: 0x5374, - 1929: 0x5BA2, - 1930: 0x811A, - 1931: 0x8650, - 1932: 0x9006, - 1933: 0x4E18, - 1934: 0x4E45, - 1935: 0x4EC7, - 1936: 0x4F11, - 1937: 0x53CA, - 1938: 0x5438, - 1939: 0x5BAE, - 1940: 0x5F13, - 1941: 0x6025, - 1942: 0x6551, - 1943: 0x673D, - 1944: 0x6C42, - 1945: 0x6C72, - 1946: 0x6CE3, - 1947: 0x7078, - 1948: 0x7403, - 1949: 0x7A76, - 1950: 0x7AAE, - 1951: 0x7B08, - 1952: 0x7D1A, - 1953: 0x7CFE, - 1954: 0x7D66, - 1955: 0x65E7, - 1956: 0x725B, - 1957: 0x53BB, - 1958: 0x5C45, - 1959: 0x5DE8, - 1960: 0x62D2, - 1961: 0x62E0, - 1962: 0x6319, - 1963: 0x6E20, - 1964: 0x865A, - 1965: 0x8A31, - 1966: 0x8DDD, - 1967: 0x92F8, - 1968: 0x6F01, - 1969: 0x79A6, - 1970: 0x9B5A, - 1971: 0x4EA8, - 1972: 0x4EAB, - 1973: 0x4EAC, - 1974: 0x4F9B, - 1975: 0x4FA0, - 1976: 0x50D1, - 1977: 0x5147, - 1978: 0x7AF6, - 1979: 0x5171, - 1980: 0x51F6, - 1981: 0x5354, - 1982: 0x5321, - 1983: 0x537F, - 1984: 0x53EB, - 1985: 0x55AC, - 1986: 0x5883, - 1987: 0x5CE1, - 1988: 0x5F37, - 1989: 0x5F4A, - 1990: 0x602F, - 1991: 0x6050, - 1992: 0x606D, - 1993: 0x631F, - 1994: 0x6559, - 1995: 0x6A4B, - 1996: 0x6CC1, - 1997: 0x72C2, - 1998: 0x72ED, - 1999: 0x77EF, - 2000: 0x80F8, - 2001: 0x8105, - 2002: 0x8208, - 2003: 0x854E, - 2004: 0x90F7, - 2005: 0x93E1, - 2006: 0x97FF, - 2007: 0x9957, - 2008: 0x9A5A, - 2009: 0x4EF0, - 2010: 0x51DD, - 2011: 0x5C2D, - 2012: 0x6681, - 2013: 0x696D, - 2014: 0x5C40, - 2015: 0x66F2, - 2016: 0x6975, - 2017: 0x7389, - 2018: 0x6850, - 2019: 0x7C81, - 2020: 0x50C5, - 2021: 0x52E4, - 2022: 0x5747, - 2023: 0x5DFE, - 2024: 0x9326, - 2025: 0x65A4, - 2026: 0x6B23, - 2027: 0x6B3D, - 2028: 0x7434, - 2029: 0x7981, - 2030: 0x79BD, - 2031: 0x7B4B, - 2032: 0x7DCA, - 2033: 0x82B9, - 2034: 0x83CC, - 2035: 0x887F, - 2036: 0x895F, - 2037: 0x8B39, - 2038: 0x8FD1, - 2039: 0x91D1, - 2040: 0x541F, - 2041: 0x9280, - 2042: 0x4E5D, - 2043: 0x5036, - 2044: 0x53E5, - 2045: 0x533A, - 2046: 0x72D7, - 2047: 0x7396, - 2048: 0x77E9, - 2049: 0x82E6, - 2050: 0x8EAF, - 2051: 0x99C6, - 2052: 0x99C8, - 2053: 0x99D2, - 2054: 0x5177, - 2055: 0x611A, - 2056: 0x865E, - 2057: 0x55B0, - 2058: 0x7A7A, - 2059: 0x5076, - 2060: 0x5BD3, - 2061: 0x9047, - 2062: 0x9685, - 2063: 0x4E32, - 2064: 0x6ADB, - 2065: 0x91E7, - 2066: 0x5C51, - 2067: 0x5C48, - 2068: 0x6398, - 2069: 0x7A9F, - 2070: 0x6C93, - 2071: 0x9774, - 2072: 0x8F61, - 2073: 0x7AAA, - 2074: 0x718A, - 2075: 0x9688, - 2076: 0x7C82, - 2077: 0x6817, - 2078: 0x7E70, - 2079: 0x6851, - 2080: 0x936C, - 2081: 0x52F2, - 2082: 0x541B, - 2083: 0x85AB, - 2084: 0x8A13, - 2085: 0x7FA4, - 2086: 0x8ECD, - 2087: 0x90E1, - 2088: 0x5366, - 2089: 0x8888, - 2090: 0x7941, - 2091: 0x4FC2, - 2092: 0x50BE, - 2093: 0x5211, - 2094: 0x5144, - 2095: 0x5553, - 2096: 0x572D, - 2097: 0x73EA, - 2098: 0x578B, - 2099: 0x5951, - 2100: 0x5F62, - 2101: 0x5F84, - 2102: 0x6075, - 2103: 0x6176, - 2104: 0x6167, - 2105: 0x61A9, - 2106: 0x63B2, - 2107: 0x643A, - 2108: 0x656C, - 2109: 0x666F, - 2110: 0x6842, - 2111: 0x6E13, - 2112: 0x7566, - 2113: 0x7A3D, - 2114: 0x7CFB, - 2115: 0x7D4C, - 2116: 0x7D99, - 2117: 0x7E4B, - 2118: 0x7F6B, - 2119: 0x830E, - 2120: 0x834A, - 2121: 0x86CD, - 2122: 0x8A08, - 2123: 0x8A63, - 2124: 0x8B66, - 2125: 0x8EFD, - 2126: 0x981A, - 2127: 0x9D8F, - 2128: 0x82B8, - 2129: 0x8FCE, - 2130: 0x9BE8, - 2131: 0x5287, - 2132: 0x621F, - 2133: 0x6483, - 2134: 0x6FC0, - 2135: 0x9699, - 2136: 0x6841, - 2137: 0x5091, - 2138: 0x6B20, - 2139: 0x6C7A, - 2140: 0x6F54, - 2141: 0x7A74, - 2142: 0x7D50, - 2143: 0x8840, - 2144: 0x8A23, - 2145: 0x6708, - 2146: 0x4EF6, - 2147: 0x5039, - 2148: 0x5026, - 2149: 0x5065, - 2150: 0x517C, - 2151: 0x5238, - 2152: 0x5263, - 2153: 0x55A7, - 2154: 0x570F, - 2155: 0x5805, - 2156: 0x5ACC, - 2157: 0x5EFA, - 2158: 0x61B2, - 2159: 0x61F8, - 2160: 0x62F3, - 2161: 0x6372, - 2162: 0x691C, - 2163: 0x6A29, - 2164: 0x727D, - 2165: 0x72AC, - 2166: 0x732E, - 2167: 0x7814, - 2168: 0x786F, - 2169: 0x7D79, - 2170: 0x770C, - 2171: 0x80A9, - 2172: 0x898B, - 2173: 0x8B19, - 2174: 0x8CE2, - 2175: 0x8ED2, - 2176: 0x9063, - 2177: 0x9375, - 2178: 0x967A, - 2179: 0x9855, - 2180: 0x9A13, - 2181: 0x9E78, - 2182: 0x5143, - 2183: 0x539F, - 2184: 0x53B3, - 2185: 0x5E7B, - 2186: 0x5F26, - 2187: 0x6E1B, - 2188: 0x6E90, - 2189: 0x7384, - 2190: 0x73FE, - 2191: 0x7D43, - 2192: 0x8237, - 2193: 0x8A00, - 2194: 0x8AFA, - 2195: 0x9650, - 2196: 0x4E4E, - 2197: 0x500B, - 2198: 0x53E4, - 2199: 0x547C, - 2200: 0x56FA, - 2201: 0x59D1, - 2202: 0x5B64, - 2203: 0x5DF1, - 2204: 0x5EAB, - 2205: 0x5F27, - 2206: 0x6238, - 2207: 0x6545, - 2208: 0x67AF, - 2209: 0x6E56, - 2210: 0x72D0, - 2211: 0x7CCA, - 2212: 0x88B4, - 2213: 0x80A1, - 2214: 0x80E1, - 2215: 0x83F0, - 2216: 0x864E, - 2217: 0x8A87, - 2218: 0x8DE8, - 2219: 0x9237, - 2220: 0x96C7, - 2221: 0x9867, - 2222: 0x9F13, - 2223: 0x4E94, - 2224: 0x4E92, - 2225: 0x4F0D, - 2226: 0x5348, - 2227: 0x5449, - 2228: 0x543E, - 2229: 0x5A2F, - 2230: 0x5F8C, - 2231: 0x5FA1, - 2232: 0x609F, - 2233: 0x68A7, - 2234: 0x6A8E, - 2235: 0x745A, - 2236: 0x7881, - 2237: 0x8A9E, - 2238: 0x8AA4, - 2239: 0x8B77, - 2240: 0x9190, - 2241: 0x4E5E, - 2242: 0x9BC9, - 2243: 0x4EA4, - 2244: 0x4F7C, - 2245: 0x4FAF, - 2246: 0x5019, - 2247: 0x5016, - 2248: 0x5149, - 2249: 0x516C, - 2250: 0x529F, - 2251: 0x52B9, - 2252: 0x52FE, - 2253: 0x539A, - 2254: 0x53E3, - 2255: 0x5411, - 2256: 0x540E, - 2257: 0x5589, - 2258: 0x5751, - 2259: 0x57A2, - 2260: 0x597D, - 2261: 0x5B54, - 2262: 0x5B5D, - 2263: 0x5B8F, - 2264: 0x5DE5, - 2265: 0x5DE7, - 2266: 0x5DF7, - 2267: 0x5E78, - 2268: 0x5E83, - 2269: 0x5E9A, - 2270: 0x5EB7, - 2271: 0x5F18, - 2272: 0x6052, - 2273: 0x614C, - 2274: 0x6297, - 2275: 0x62D8, - 2276: 0x63A7, - 2277: 0x653B, - 2278: 0x6602, - 2279: 0x6643, - 2280: 0x66F4, - 2281: 0x676D, - 2282: 0x6821, - 2283: 0x6897, - 2284: 0x69CB, - 2285: 0x6C5F, - 2286: 0x6D2A, - 2287: 0x6D69, - 2288: 0x6E2F, - 2289: 0x6E9D, - 2290: 0x7532, - 2291: 0x7687, - 2292: 0x786C, - 2293: 0x7A3F, - 2294: 0x7CE0, - 2295: 0x7D05, - 2296: 0x7D18, - 2297: 0x7D5E, - 2298: 0x7DB1, - 2299: 0x8015, - 2300: 0x8003, - 2301: 0x80AF, - 2302: 0x80B1, - 2303: 0x8154, - 2304: 0x818F, - 2305: 0x822A, - 2306: 0x8352, - 2307: 0x884C, - 2308: 0x8861, - 2309: 0x8B1B, - 2310: 0x8CA2, - 2311: 0x8CFC, - 2312: 0x90CA, - 2313: 0x9175, - 2314: 0x9271, - 2315: 0x783F, - 2316: 0x92FC, - 2317: 0x95A4, - 2318: 0x964D, - 2319: 0x9805, - 2320: 0x9999, - 2321: 0x9AD8, - 2322: 0x9D3B, - 2323: 0x525B, - 2324: 0x52AB, - 2325: 0x53F7, - 2326: 0x5408, - 2327: 0x58D5, - 2328: 0x62F7, - 2329: 0x6FE0, - 2330: 0x8C6A, - 2331: 0x8F5F, - 2332: 0x9EB9, - 2333: 0x514B, - 2334: 0x523B, - 2335: 0x544A, - 2336: 0x56FD, - 2337: 0x7A40, - 2338: 0x9177, - 2339: 0x9D60, - 2340: 0x9ED2, - 2341: 0x7344, - 2342: 0x6F09, - 2343: 0x8170, - 2344: 0x7511, - 2345: 0x5FFD, - 2346: 0x60DA, - 2347: 0x9AA8, - 2348: 0x72DB, - 2349: 0x8FBC, - 2350: 0x6B64, - 2351: 0x9803, - 2352: 0x4ECA, - 2353: 0x56F0, - 2354: 0x5764, - 2355: 0x58BE, - 2356: 0x5A5A, - 2357: 0x6068, - 2358: 0x61C7, - 2359: 0x660F, - 2360: 0x6606, - 2361: 0x6839, - 2362: 0x68B1, - 2363: 0x6DF7, - 2364: 0x75D5, - 2365: 0x7D3A, - 2366: 0x826E, - 2367: 0x9B42, - 2368: 0x4E9B, - 2369: 0x4F50, - 2370: 0x53C9, - 2371: 0x5506, - 2372: 0x5D6F, - 2373: 0x5DE6, - 2374: 0x5DEE, - 2375: 0x67FB, - 2376: 0x6C99, - 2377: 0x7473, - 2378: 0x7802, - 2379: 0x8A50, - 2380: 0x9396, - 2381: 0x88DF, - 2382: 0x5750, - 2383: 0x5EA7, - 2384: 0x632B, - 2385: 0x50B5, - 2386: 0x50AC, - 2387: 0x518D, - 2388: 0x6700, - 2389: 0x54C9, - 2390: 0x585E, - 2391: 0x59BB, - 2392: 0x5BB0, - 2393: 0x5F69, - 2394: 0x624D, - 2395: 0x63A1, - 2396: 0x683D, - 2397: 0x6B73, - 2398: 0x6E08, - 2399: 0x707D, - 2400: 0x91C7, - 2401: 0x7280, - 2402: 0x7815, - 2403: 0x7826, - 2404: 0x796D, - 2405: 0x658E, - 2406: 0x7D30, - 2407: 0x83DC, - 2408: 0x88C1, - 2409: 0x8F09, - 2410: 0x969B, - 2411: 0x5264, - 2412: 0x5728, - 2413: 0x6750, - 2414: 0x7F6A, - 2415: 0x8CA1, - 2416: 0x51B4, - 2417: 0x5742, - 2418: 0x962A, - 2419: 0x583A, - 2420: 0x698A, - 2421: 0x80B4, - 2422: 0x54B2, - 2423: 0x5D0E, - 2424: 0x57FC, - 2425: 0x7895, - 2426: 0x9DFA, - 2427: 0x4F5C, - 2428: 0x524A, - 2429: 0x548B, - 2430: 0x643E, - 2431: 0x6628, - 2432: 0x6714, - 2433: 0x67F5, - 2434: 0x7A84, - 2435: 0x7B56, - 2436: 0x7D22, - 2437: 0x932F, - 2438: 0x685C, - 2439: 0x9BAD, - 2440: 0x7B39, - 2441: 0x5319, - 2442: 0x518A, - 2443: 0x5237, - 2444: 0x5BDF, - 2445: 0x62F6, - 2446: 0x64AE, - 2447: 0x64E6, - 2448: 0x672D, - 2449: 0x6BBA, - 2450: 0x85A9, - 2451: 0x96D1, - 2452: 0x7690, - 2453: 0x9BD6, - 2454: 0x634C, - 2455: 0x9306, - 2456: 0x9BAB, - 2457: 0x76BF, - 2458: 0x6652, - 2459: 0x4E09, - 2460: 0x5098, - 2461: 0x53C2, - 2462: 0x5C71, - 2463: 0x60E8, - 2464: 0x6492, - 2465: 0x6563, - 2466: 0x685F, - 2467: 0x71E6, - 2468: 0x73CA, - 2469: 0x7523, - 2470: 0x7B97, - 2471: 0x7E82, - 2472: 0x8695, - 2473: 0x8B83, - 2474: 0x8CDB, - 2475: 0x9178, - 2476: 0x9910, - 2477: 0x65AC, - 2478: 0x66AB, - 2479: 0x6B8B, - 2480: 0x4ED5, - 2481: 0x4ED4, - 2482: 0x4F3A, - 2483: 0x4F7F, - 2484: 0x523A, - 2485: 0x53F8, - 2486: 0x53F2, - 2487: 0x55E3, - 2488: 0x56DB, - 2489: 0x58EB, - 2490: 0x59CB, - 2491: 0x59C9, - 2492: 0x59FF, - 2493: 0x5B50, - 2494: 0x5C4D, - 2495: 0x5E02, - 2496: 0x5E2B, - 2497: 0x5FD7, - 2498: 0x601D, - 2499: 0x6307, - 2500: 0x652F, - 2501: 0x5B5C, - 2502: 0x65AF, - 2503: 0x65BD, - 2504: 0x65E8, - 2505: 0x679D, - 2506: 0x6B62, - 2507: 0x6B7B, - 2508: 0x6C0F, - 2509: 0x7345, - 2510: 0x7949, - 2511: 0x79C1, - 2512: 0x7CF8, - 2513: 0x7D19, - 2514: 0x7D2B, - 2515: 0x80A2, - 2516: 0x8102, - 2517: 0x81F3, - 2518: 0x8996, - 2519: 0x8A5E, - 2520: 0x8A69, - 2521: 0x8A66, - 2522: 0x8A8C, - 2523: 0x8AEE, - 2524: 0x8CC7, - 2525: 0x8CDC, - 2526: 0x96CC, - 2527: 0x98FC, - 2528: 0x6B6F, - 2529: 0x4E8B, - 2530: 0x4F3C, - 2531: 0x4F8D, - 2532: 0x5150, - 2533: 0x5B57, - 2534: 0x5BFA, - 2535: 0x6148, - 2536: 0x6301, - 2537: 0x6642, - 2538: 0x6B21, - 2539: 0x6ECB, - 2540: 0x6CBB, - 2541: 0x723E, - 2542: 0x74BD, - 2543: 0x75D4, - 2544: 0x78C1, - 2545: 0x793A, - 2546: 0x800C, - 2547: 0x8033, - 2548: 0x81EA, - 2549: 0x8494, - 2550: 0x8F9E, - 2551: 0x6C50, - 2552: 0x9E7F, - 2553: 0x5F0F, - 2554: 0x8B58, - 2555: 0x9D2B, - 2556: 0x7AFA, - 2557: 0x8EF8, - 2558: 0x5B8D, - 2559: 0x96EB, - 2560: 0x4E03, - 2561: 0x53F1, - 2562: 0x57F7, - 2563: 0x5931, - 2564: 0x5AC9, - 2565: 0x5BA4, - 2566: 0x6089, - 2567: 0x6E7F, - 2568: 0x6F06, - 2569: 0x75BE, - 2570: 0x8CEA, - 2571: 0x5B9F, - 2572: 0x8500, - 2573: 0x7BE0, - 2574: 0x5072, - 2575: 0x67F4, - 2576: 0x829D, - 2577: 0x5C61, - 2578: 0x854A, - 2579: 0x7E1E, - 2580: 0x820E, - 2581: 0x5199, - 2582: 0x5C04, - 2583: 0x6368, - 2584: 0x8D66, - 2585: 0x659C, - 2586: 0x716E, - 2587: 0x793E, - 2588: 0x7D17, - 2589: 0x8005, - 2590: 0x8B1D, - 2591: 0x8ECA, - 2592: 0x906E, - 2593: 0x86C7, - 2594: 0x90AA, - 2595: 0x501F, - 2596: 0x52FA, - 2597: 0x5C3A, - 2598: 0x6753, - 2599: 0x707C, - 2600: 0x7235, - 2601: 0x914C, - 2602: 0x91C8, - 2603: 0x932B, - 2604: 0x82E5, - 2605: 0x5BC2, - 2606: 0x5F31, - 2607: 0x60F9, - 2608: 0x4E3B, - 2609: 0x53D6, - 2610: 0x5B88, - 2611: 0x624B, - 2612: 0x6731, - 2613: 0x6B8A, - 2614: 0x72E9, - 2615: 0x73E0, - 2616: 0x7A2E, - 2617: 0x816B, - 2618: 0x8DA3, - 2619: 0x9152, - 2620: 0x9996, - 2621: 0x5112, - 2622: 0x53D7, - 2623: 0x546A, - 2624: 0x5BFF, - 2625: 0x6388, - 2626: 0x6A39, - 2627: 0x7DAC, - 2628: 0x9700, - 2629: 0x56DA, - 2630: 0x53CE, - 2631: 0x5468, - 2632: 0x5B97, - 2633: 0x5C31, - 2634: 0x5DDE, - 2635: 0x4FEE, - 2636: 0x6101, - 2637: 0x62FE, - 2638: 0x6D32, - 2639: 0x79C0, - 2640: 0x79CB, - 2641: 0x7D42, - 2642: 0x7E4D, - 2643: 0x7FD2, - 2644: 0x81ED, - 2645: 0x821F, - 2646: 0x8490, - 2647: 0x8846, - 2648: 0x8972, - 2649: 0x8B90, - 2650: 0x8E74, - 2651: 0x8F2F, - 2652: 0x9031, - 2653: 0x914B, - 2654: 0x916C, - 2655: 0x96C6, - 2656: 0x919C, - 2657: 0x4EC0, - 2658: 0x4F4F, - 2659: 0x5145, - 2660: 0x5341, - 2661: 0x5F93, - 2662: 0x620E, - 2663: 0x67D4, - 2664: 0x6C41, - 2665: 0x6E0B, - 2666: 0x7363, - 2667: 0x7E26, - 2668: 0x91CD, - 2669: 0x9283, - 2670: 0x53D4, - 2671: 0x5919, - 2672: 0x5BBF, - 2673: 0x6DD1, - 2674: 0x795D, - 2675: 0x7E2E, - 2676: 0x7C9B, - 2677: 0x587E, - 2678: 0x719F, - 2679: 0x51FA, - 2680: 0x8853, - 2681: 0x8FF0, - 2682: 0x4FCA, - 2683: 0x5CFB, - 2684: 0x6625, - 2685: 0x77AC, - 2686: 0x7AE3, - 2687: 0x821C, - 2688: 0x99FF, - 2689: 0x51C6, - 2690: 0x5FAA, - 2691: 0x65EC, - 2692: 0x696F, - 2693: 0x6B89, - 2694: 0x6DF3, - 2695: 0x6E96, - 2696: 0x6F64, - 2697: 0x76FE, - 2698: 0x7D14, - 2699: 0x5DE1, - 2700: 0x9075, - 2701: 0x9187, - 2702: 0x9806, - 2703: 0x51E6, - 2704: 0x521D, - 2705: 0x6240, - 2706: 0x6691, - 2707: 0x66D9, - 2708: 0x6E1A, - 2709: 0x5EB6, - 2710: 0x7DD2, - 2711: 0x7F72, - 2712: 0x66F8, - 2713: 0x85AF, - 2714: 0x85F7, - 2715: 0x8AF8, - 2716: 0x52A9, - 2717: 0x53D9, - 2718: 0x5973, - 2719: 0x5E8F, - 2720: 0x5F90, - 2721: 0x6055, - 2722: 0x92E4, - 2723: 0x9664, - 2724: 0x50B7, - 2725: 0x511F, - 2726: 0x52DD, - 2727: 0x5320, - 2728: 0x5347, - 2729: 0x53EC, - 2730: 0x54E8, - 2731: 0x5546, - 2732: 0x5531, - 2733: 0x5617, - 2734: 0x5968, - 2735: 0x59BE, - 2736: 0x5A3C, - 2737: 0x5BB5, - 2738: 0x5C06, - 2739: 0x5C0F, - 2740: 0x5C11, - 2741: 0x5C1A, - 2742: 0x5E84, - 2743: 0x5E8A, - 2744: 0x5EE0, - 2745: 0x5F70, - 2746: 0x627F, - 2747: 0x6284, - 2748: 0x62DB, - 2749: 0x638C, - 2750: 0x6377, - 2751: 0x6607, - 2752: 0x660C, - 2753: 0x662D, - 2754: 0x6676, - 2755: 0x677E, - 2756: 0x68A2, - 2757: 0x6A1F, - 2758: 0x6A35, - 2759: 0x6CBC, - 2760: 0x6D88, - 2761: 0x6E09, - 2762: 0x6E58, - 2763: 0x713C, - 2764: 0x7126, - 2765: 0x7167, - 2766: 0x75C7, - 2767: 0x7701, - 2768: 0x785D, - 2769: 0x7901, - 2770: 0x7965, - 2771: 0x79F0, - 2772: 0x7AE0, - 2773: 0x7B11, - 2774: 0x7CA7, - 2775: 0x7D39, - 2776: 0x8096, - 2777: 0x83D6, - 2778: 0x848B, - 2779: 0x8549, - 2780: 0x885D, - 2781: 0x88F3, - 2782: 0x8A1F, - 2783: 0x8A3C, - 2784: 0x8A54, - 2785: 0x8A73, - 2786: 0x8C61, - 2787: 0x8CDE, - 2788: 0x91A4, - 2789: 0x9266, - 2790: 0x937E, - 2791: 0x9418, - 2792: 0x969C, - 2793: 0x9798, - 2794: 0x4E0A, - 2795: 0x4E08, - 2796: 0x4E1E, - 2797: 0x4E57, - 2798: 0x5197, - 2799: 0x5270, - 2800: 0x57CE, - 2801: 0x5834, - 2802: 0x58CC, - 2803: 0x5B22, - 2804: 0x5E38, - 2805: 0x60C5, - 2806: 0x64FE, - 2807: 0x6761, - 2808: 0x6756, - 2809: 0x6D44, - 2810: 0x72B6, - 2811: 0x7573, - 2812: 0x7A63, - 2813: 0x84B8, - 2814: 0x8B72, - 2815: 0x91B8, - 2816: 0x9320, - 2817: 0x5631, - 2818: 0x57F4, - 2819: 0x98FE, - 2820: 0x62ED, - 2821: 0x690D, - 2822: 0x6B96, - 2823: 0x71ED, - 2824: 0x7E54, - 2825: 0x8077, - 2826: 0x8272, - 2827: 0x89E6, - 2828: 0x98DF, - 2829: 0x8755, - 2830: 0x8FB1, - 2831: 0x5C3B, - 2832: 0x4F38, - 2833: 0x4FE1, - 2834: 0x4FB5, - 2835: 0x5507, - 2836: 0x5A20, - 2837: 0x5BDD, - 2838: 0x5BE9, - 2839: 0x5FC3, - 2840: 0x614E, - 2841: 0x632F, - 2842: 0x65B0, - 2843: 0x664B, - 2844: 0x68EE, - 2845: 0x699B, - 2846: 0x6D78, - 2847: 0x6DF1, - 2848: 0x7533, - 2849: 0x75B9, - 2850: 0x771F, - 2851: 0x795E, - 2852: 0x79E6, - 2853: 0x7D33, - 2854: 0x81E3, - 2855: 0x82AF, - 2856: 0x85AA, - 2857: 0x89AA, - 2858: 0x8A3A, - 2859: 0x8EAB, - 2860: 0x8F9B, - 2861: 0x9032, - 2862: 0x91DD, - 2863: 0x9707, - 2864: 0x4EBA, - 2865: 0x4EC1, - 2866: 0x5203, - 2867: 0x5875, - 2868: 0x58EC, - 2869: 0x5C0B, - 2870: 0x751A, - 2871: 0x5C3D, - 2872: 0x814E, - 2873: 0x8A0A, - 2874: 0x8FC5, - 2875: 0x9663, - 2876: 0x976D, - 2877: 0x7B25, - 2878: 0x8ACF, - 2879: 0x9808, - 2880: 0x9162, - 2881: 0x56F3, - 2882: 0x53A8, - 2883: 0x9017, - 2884: 0x5439, - 2885: 0x5782, - 2886: 0x5E25, - 2887: 0x63A8, - 2888: 0x6C34, - 2889: 0x708A, - 2890: 0x7761, - 2891: 0x7C8B, - 2892: 0x7FE0, - 2893: 0x8870, - 2894: 0x9042, - 2895: 0x9154, - 2896: 0x9310, - 2897: 0x9318, - 2898: 0x968F, - 2899: 0x745E, - 2900: 0x9AC4, - 2901: 0x5D07, - 2902: 0x5D69, - 2903: 0x6570, - 2904: 0x67A2, - 2905: 0x8DA8, - 2906: 0x96DB, - 2907: 0x636E, - 2908: 0x6749, - 2909: 0x6919, - 2910: 0x83C5, - 2911: 0x9817, - 2912: 0x96C0, - 2913: 0x88FE, - 2914: 0x6F84, - 2915: 0x647A, - 2916: 0x5BF8, - 2917: 0x4E16, - 2918: 0x702C, - 2919: 0x755D, - 2920: 0x662F, - 2921: 0x51C4, - 2922: 0x5236, - 2923: 0x52E2, - 2924: 0x59D3, - 2925: 0x5F81, - 2926: 0x6027, - 2927: 0x6210, - 2928: 0x653F, - 2929: 0x6574, - 2930: 0x661F, - 2931: 0x6674, - 2932: 0x68F2, - 2933: 0x6816, - 2934: 0x6B63, - 2935: 0x6E05, - 2936: 0x7272, - 2937: 0x751F, - 2938: 0x76DB, - 2939: 0x7CBE, - 2940: 0x8056, - 2941: 0x58F0, - 2942: 0x88FD, - 2943: 0x897F, - 2944: 0x8AA0, - 2945: 0x8A93, - 2946: 0x8ACB, - 2947: 0x901D, - 2948: 0x9192, - 2949: 0x9752, - 2950: 0x9759, - 2951: 0x6589, - 2952: 0x7A0E, - 2953: 0x8106, - 2954: 0x96BB, - 2955: 0x5E2D, - 2956: 0x60DC, - 2957: 0x621A, - 2958: 0x65A5, - 2959: 0x6614, - 2960: 0x6790, - 2961: 0x77F3, - 2962: 0x7A4D, - 2963: 0x7C4D, - 2964: 0x7E3E, - 2965: 0x810A, - 2966: 0x8CAC, - 2967: 0x8D64, - 2968: 0x8DE1, - 2969: 0x8E5F, - 2970: 0x78A9, - 2971: 0x5207, - 2972: 0x62D9, - 2973: 0x63A5, - 2974: 0x6442, - 2975: 0x6298, - 2976: 0x8A2D, - 2977: 0x7A83, - 2978: 0x7BC0, - 2979: 0x8AAC, - 2980: 0x96EA, - 2981: 0x7D76, - 2982: 0x820C, - 2983: 0x8749, - 2984: 0x4ED9, - 2985: 0x5148, - 2986: 0x5343, - 2987: 0x5360, - 2988: 0x5BA3, - 2989: 0x5C02, - 2990: 0x5C16, - 2991: 0x5DDD, - 2992: 0x6226, - 2993: 0x6247, - 2994: 0x64B0, - 2995: 0x6813, - 2996: 0x6834, - 2997: 0x6CC9, - 2998: 0x6D45, - 2999: 0x6D17, - 3000: 0x67D3, - 3001: 0x6F5C, - 3002: 0x714E, - 3003: 0x717D, - 3004: 0x65CB, - 3005: 0x7A7F, - 3006: 0x7BAD, - 3007: 0x7DDA, - 3008: 0x7E4A, - 3009: 0x7FA8, - 3010: 0x817A, - 3011: 0x821B, - 3012: 0x8239, - 3013: 0x85A6, - 3014: 0x8A6E, - 3015: 0x8CCE, - 3016: 0x8DF5, - 3017: 0x9078, - 3018: 0x9077, - 3019: 0x92AD, - 3020: 0x9291, - 3021: 0x9583, - 3022: 0x9BAE, - 3023: 0x524D, - 3024: 0x5584, - 3025: 0x6F38, - 3026: 0x7136, - 3027: 0x5168, - 3028: 0x7985, - 3029: 0x7E55, - 3030: 0x81B3, - 3031: 0x7CCE, - 3032: 0x564C, - 3033: 0x5851, - 3034: 0x5CA8, - 3035: 0x63AA, - 3036: 0x66FE, - 3037: 0x66FD, - 3038: 0x695A, - 3039: 0x72D9, - 3040: 0x758F, - 3041: 0x758E, - 3042: 0x790E, - 3043: 0x7956, - 3044: 0x79DF, - 3045: 0x7C97, - 3046: 0x7D20, - 3047: 0x7D44, - 3048: 0x8607, - 3049: 0x8A34, - 3050: 0x963B, - 3051: 0x9061, - 3052: 0x9F20, - 3053: 0x50E7, - 3054: 0x5275, - 3055: 0x53CC, - 3056: 0x53E2, - 3057: 0x5009, - 3058: 0x55AA, - 3059: 0x58EE, - 3060: 0x594F, - 3061: 0x723D, - 3062: 0x5B8B, - 3063: 0x5C64, - 3064: 0x531D, - 3065: 0x60E3, - 3066: 0x60F3, - 3067: 0x635C, - 3068: 0x6383, - 3069: 0x633F, - 3070: 0x63BB, - 3071: 0x64CD, - 3072: 0x65E9, - 3073: 0x66F9, - 3074: 0x5DE3, - 3075: 0x69CD, - 3076: 0x69FD, - 3077: 0x6F15, - 3078: 0x71E5, - 3079: 0x4E89, - 3080: 0x75E9, - 3081: 0x76F8, - 3082: 0x7A93, - 3083: 0x7CDF, - 3084: 0x7DCF, - 3085: 0x7D9C, - 3086: 0x8061, - 3087: 0x8349, - 3088: 0x8358, - 3089: 0x846C, - 3090: 0x84BC, - 3091: 0x85FB, - 3092: 0x88C5, - 3093: 0x8D70, - 3094: 0x9001, - 3095: 0x906D, - 3096: 0x9397, - 3097: 0x971C, - 3098: 0x9A12, - 3099: 0x50CF, - 3100: 0x5897, - 3101: 0x618E, - 3102: 0x81D3, - 3103: 0x8535, - 3104: 0x8D08, - 3105: 0x9020, - 3106: 0x4FC3, - 3107: 0x5074, - 3108: 0x5247, - 3109: 0x5373, - 3110: 0x606F, - 3111: 0x6349, - 3112: 0x675F, - 3113: 0x6E2C, - 3114: 0x8DB3, - 3115: 0x901F, - 3116: 0x4FD7, - 3117: 0x5C5E, - 3118: 0x8CCA, - 3119: 0x65CF, - 3120: 0x7D9A, - 3121: 0x5352, - 3122: 0x8896, - 3123: 0x5176, - 3124: 0x63C3, - 3125: 0x5B58, - 3126: 0x5B6B, - 3127: 0x5C0A, - 3128: 0x640D, - 3129: 0x6751, - 3130: 0x905C, - 3131: 0x4ED6, - 3132: 0x591A, - 3133: 0x592A, - 3134: 0x6C70, - 3135: 0x8A51, - 3136: 0x553E, - 3137: 0x5815, - 3138: 0x59A5, - 3139: 0x60F0, - 3140: 0x6253, - 3141: 0x67C1, - 3142: 0x8235, - 3143: 0x6955, - 3144: 0x9640, - 3145: 0x99C4, - 3146: 0x9A28, - 3147: 0x4F53, - 3148: 0x5806, - 3149: 0x5BFE, - 3150: 0x8010, - 3151: 0x5CB1, - 3152: 0x5E2F, - 3153: 0x5F85, - 3154: 0x6020, - 3155: 0x614B, - 3156: 0x6234, - 3157: 0x66FF, - 3158: 0x6CF0, - 3159: 0x6EDE, - 3160: 0x80CE, - 3161: 0x817F, - 3162: 0x82D4, - 3163: 0x888B, - 3164: 0x8CB8, - 3165: 0x9000, - 3166: 0x902E, - 3167: 0x968A, - 3168: 0x9EDB, - 3169: 0x9BDB, - 3170: 0x4EE3, - 3171: 0x53F0, - 3172: 0x5927, - 3173: 0x7B2C, - 3174: 0x918D, - 3175: 0x984C, - 3176: 0x9DF9, - 3177: 0x6EDD, - 3178: 0x7027, - 3179: 0x5353, - 3180: 0x5544, - 3181: 0x5B85, - 3182: 0x6258, - 3183: 0x629E, - 3184: 0x62D3, - 3185: 0x6CA2, - 3186: 0x6FEF, - 3187: 0x7422, - 3188: 0x8A17, - 3189: 0x9438, - 3190: 0x6FC1, - 3191: 0x8AFE, - 3192: 0x8338, - 3193: 0x51E7, - 3194: 0x86F8, - 3195: 0x53EA, - 3196: 0x53E9, - 3197: 0x4F46, - 3198: 0x9054, - 3199: 0x8FB0, - 3200: 0x596A, - 3201: 0x8131, - 3202: 0x5DFD, - 3203: 0x7AEA, - 3204: 0x8FBF, - 3205: 0x68DA, - 3206: 0x8C37, - 3207: 0x72F8, - 3208: 0x9C48, - 3209: 0x6A3D, - 3210: 0x8AB0, - 3211: 0x4E39, - 3212: 0x5358, - 3213: 0x5606, - 3214: 0x5766, - 3215: 0x62C5, - 3216: 0x63A2, - 3217: 0x65E6, - 3218: 0x6B4E, - 3219: 0x6DE1, - 3220: 0x6E5B, - 3221: 0x70AD, - 3222: 0x77ED, - 3223: 0x7AEF, - 3224: 0x7BAA, - 3225: 0x7DBB, - 3226: 0x803D, - 3227: 0x80C6, - 3228: 0x86CB, - 3229: 0x8A95, - 3230: 0x935B, - 3231: 0x56E3, - 3232: 0x58C7, - 3233: 0x5F3E, - 3234: 0x65AD, - 3235: 0x6696, - 3236: 0x6A80, - 3237: 0x6BB5, - 3238: 0x7537, - 3239: 0x8AC7, - 3240: 0x5024, - 3241: 0x77E5, - 3242: 0x5730, - 3243: 0x5F1B, - 3244: 0x6065, - 3245: 0x667A, - 3246: 0x6C60, - 3247: 0x75F4, - 3248: 0x7A1A, - 3249: 0x7F6E, - 3250: 0x81F4, - 3251: 0x8718, - 3252: 0x9045, - 3253: 0x99B3, - 3254: 0x7BC9, - 3255: 0x755C, - 3256: 0x7AF9, - 3257: 0x7B51, - 3258: 0x84C4, - 3259: 0x9010, - 3260: 0x79E9, - 3261: 0x7A92, - 3262: 0x8336, - 3263: 0x5AE1, - 3264: 0x7740, - 3265: 0x4E2D, - 3266: 0x4EF2, - 3267: 0x5B99, - 3268: 0x5FE0, - 3269: 0x62BD, - 3270: 0x663C, - 3271: 0x67F1, - 3272: 0x6CE8, - 3273: 0x866B, - 3274: 0x8877, - 3275: 0x8A3B, - 3276: 0x914E, - 3277: 0x92F3, - 3278: 0x99D0, - 3279: 0x6A17, - 3280: 0x7026, - 3281: 0x732A, - 3282: 0x82E7, - 3283: 0x8457, - 3284: 0x8CAF, - 3285: 0x4E01, - 3286: 0x5146, - 3287: 0x51CB, - 3288: 0x558B, - 3289: 0x5BF5, - 3290: 0x5E16, - 3291: 0x5E33, - 3292: 0x5E81, - 3293: 0x5F14, - 3294: 0x5F35, - 3295: 0x5F6B, - 3296: 0x5FB4, - 3297: 0x61F2, - 3298: 0x6311, - 3299: 0x66A2, - 3300: 0x671D, - 3301: 0x6F6E, - 3302: 0x7252, - 3303: 0x753A, - 3304: 0x773A, - 3305: 0x8074, - 3306: 0x8139, - 3307: 0x8178, - 3308: 0x8776, - 3309: 0x8ABF, - 3310: 0x8ADC, - 3311: 0x8D85, - 3312: 0x8DF3, - 3313: 0x929A, - 3314: 0x9577, - 3315: 0x9802, - 3316: 0x9CE5, - 3317: 0x52C5, - 3318: 0x6357, - 3319: 0x76F4, - 3320: 0x6715, - 3321: 0x6C88, - 3322: 0x73CD, - 3323: 0x8CC3, - 3324: 0x93AE, - 3325: 0x9673, - 3326: 0x6D25, - 3327: 0x589C, - 3328: 0x690E, - 3329: 0x69CC, - 3330: 0x8FFD, - 3331: 0x939A, - 3332: 0x75DB, - 3333: 0x901A, - 3334: 0x585A, - 3335: 0x6802, - 3336: 0x63B4, - 3337: 0x69FB, - 3338: 0x4F43, - 3339: 0x6F2C, - 3340: 0x67D8, - 3341: 0x8FBB, - 3342: 0x8526, - 3343: 0x7DB4, - 3344: 0x9354, - 3345: 0x693F, - 3346: 0x6F70, - 3347: 0x576A, - 3348: 0x58F7, - 3349: 0x5B2C, - 3350: 0x7D2C, - 3351: 0x722A, - 3352: 0x540A, - 3353: 0x91E3, - 3354: 0x9DB4, - 3355: 0x4EAD, - 3356: 0x4F4E, - 3357: 0x505C, - 3358: 0x5075, - 3359: 0x5243, - 3360: 0x8C9E, - 3361: 0x5448, - 3362: 0x5824, - 3363: 0x5B9A, - 3364: 0x5E1D, - 3365: 0x5E95, - 3366: 0x5EAD, - 3367: 0x5EF7, - 3368: 0x5F1F, - 3369: 0x608C, - 3370: 0x62B5, - 3371: 0x633A, - 3372: 0x63D0, - 3373: 0x68AF, - 3374: 0x6C40, - 3375: 0x7887, - 3376: 0x798E, - 3377: 0x7A0B, - 3378: 0x7DE0, - 3379: 0x8247, - 3380: 0x8A02, - 3381: 0x8AE6, - 3382: 0x8E44, - 3383: 0x9013, - 3384: 0x90B8, - 3385: 0x912D, - 3386: 0x91D8, - 3387: 0x9F0E, - 3388: 0x6CE5, - 3389: 0x6458, - 3390: 0x64E2, - 3391: 0x6575, - 3392: 0x6EF4, - 3393: 0x7684, - 3394: 0x7B1B, - 3395: 0x9069, - 3396: 0x93D1, - 3397: 0x6EBA, - 3398: 0x54F2, - 3399: 0x5FB9, - 3400: 0x64A4, - 3401: 0x8F4D, - 3402: 0x8FED, - 3403: 0x9244, - 3404: 0x5178, - 3405: 0x586B, - 3406: 0x5929, - 3407: 0x5C55, - 3408: 0x5E97, - 3409: 0x6DFB, - 3410: 0x7E8F, - 3411: 0x751C, - 3412: 0x8CBC, - 3413: 0x8EE2, - 3414: 0x985B, - 3415: 0x70B9, - 3416: 0x4F1D, - 3417: 0x6BBF, - 3418: 0x6FB1, - 3419: 0x7530, - 3420: 0x96FB, - 3421: 0x514E, - 3422: 0x5410, - 3423: 0x5835, - 3424: 0x5857, - 3425: 0x59AC, - 3426: 0x5C60, - 3427: 0x5F92, - 3428: 0x6597, - 3429: 0x675C, - 3430: 0x6E21, - 3431: 0x767B, - 3432: 0x83DF, - 3433: 0x8CED, - 3434: 0x9014, - 3435: 0x90FD, - 3436: 0x934D, - 3437: 0x7825, - 3438: 0x783A, - 3439: 0x52AA, - 3440: 0x5EA6, - 3441: 0x571F, - 3442: 0x5974, - 3443: 0x6012, - 3444: 0x5012, - 3445: 0x515A, - 3446: 0x51AC, - 3447: 0x51CD, - 3448: 0x5200, - 3449: 0x5510, - 3450: 0x5854, - 3451: 0x5858, - 3452: 0x5957, - 3453: 0x5B95, - 3454: 0x5CF6, - 3455: 0x5D8B, - 3456: 0x60BC, - 3457: 0x6295, - 3458: 0x642D, - 3459: 0x6771, - 3460: 0x6843, - 3461: 0x68BC, - 3462: 0x68DF, - 3463: 0x76D7, - 3464: 0x6DD8, - 3465: 0x6E6F, - 3466: 0x6D9B, - 3467: 0x706F, - 3468: 0x71C8, - 3469: 0x5F53, - 3470: 0x75D8, - 3471: 0x7977, - 3472: 0x7B49, - 3473: 0x7B54, - 3474: 0x7B52, - 3475: 0x7CD6, - 3476: 0x7D71, - 3477: 0x5230, - 3478: 0x8463, - 3479: 0x8569, - 3480: 0x85E4, - 3481: 0x8A0E, - 3482: 0x8B04, - 3483: 0x8C46, - 3484: 0x8E0F, - 3485: 0x9003, - 3486: 0x900F, - 3487: 0x9419, - 3488: 0x9676, - 3489: 0x982D, - 3490: 0x9A30, - 3491: 0x95D8, - 3492: 0x50CD, - 3493: 0x52D5, - 3494: 0x540C, - 3495: 0x5802, - 3496: 0x5C0E, - 3497: 0x61A7, - 3498: 0x649E, - 3499: 0x6D1E, - 3500: 0x77B3, - 3501: 0x7AE5, - 3502: 0x80F4, - 3503: 0x8404, - 3504: 0x9053, - 3505: 0x9285, - 3506: 0x5CE0, - 3507: 0x9D07, - 3508: 0x533F, - 3509: 0x5F97, - 3510: 0x5FB3, - 3511: 0x6D9C, - 3512: 0x7279, - 3513: 0x7763, - 3514: 0x79BF, - 3515: 0x7BE4, - 3516: 0x6BD2, - 3517: 0x72EC, - 3518: 0x8AAD, - 3519: 0x6803, - 3520: 0x6A61, - 3521: 0x51F8, - 3522: 0x7A81, - 3523: 0x6934, - 3524: 0x5C4A, - 3525: 0x9CF6, - 3526: 0x82EB, - 3527: 0x5BC5, - 3528: 0x9149, - 3529: 0x701E, - 3530: 0x5678, - 3531: 0x5C6F, - 3532: 0x60C7, - 3533: 0x6566, - 3534: 0x6C8C, - 3535: 0x8C5A, - 3536: 0x9041, - 3537: 0x9813, - 3538: 0x5451, - 3539: 0x66C7, - 3540: 0x920D, - 3541: 0x5948, - 3542: 0x90A3, - 3543: 0x5185, - 3544: 0x4E4D, - 3545: 0x51EA, - 3546: 0x8599, - 3547: 0x8B0E, - 3548: 0x7058, - 3549: 0x637A, - 3550: 0x934B, - 3551: 0x6962, - 3552: 0x99B4, - 3553: 0x7E04, - 3554: 0x7577, - 3555: 0x5357, - 3556: 0x6960, - 3557: 0x8EDF, - 3558: 0x96E3, - 3559: 0x6C5D, - 3560: 0x4E8C, - 3561: 0x5C3C, - 3562: 0x5F10, - 3563: 0x8FE9, - 3564: 0x5302, - 3565: 0x8CD1, - 3566: 0x8089, - 3567: 0x8679, - 3568: 0x5EFF, - 3569: 0x65E5, - 3570: 0x4E73, - 3571: 0x5165, - 3572: 0x5982, - 3573: 0x5C3F, - 3574: 0x97EE, - 3575: 0x4EFB, - 3576: 0x598A, - 3577: 0x5FCD, - 3578: 0x8A8D, - 3579: 0x6FE1, - 3580: 0x79B0, - 3581: 0x7962, - 3582: 0x5BE7, - 3583: 0x8471, - 3584: 0x732B, - 3585: 0x71B1, - 3586: 0x5E74, - 3587: 0x5FF5, - 3588: 0x637B, - 3589: 0x649A, - 3590: 0x71C3, - 3591: 0x7C98, - 3592: 0x4E43, - 3593: 0x5EFC, - 3594: 0x4E4B, - 3595: 0x57DC, - 3596: 0x56A2, - 3597: 0x60A9, - 3598: 0x6FC3, - 3599: 0x7D0D, - 3600: 0x80FD, - 3601: 0x8133, - 3602: 0x81BF, - 3603: 0x8FB2, - 3604: 0x8997, - 3605: 0x86A4, - 3606: 0x5DF4, - 3607: 0x628A, - 3608: 0x64AD, - 3609: 0x8987, - 3610: 0x6777, - 3611: 0x6CE2, - 3612: 0x6D3E, - 3613: 0x7436, - 3614: 0x7834, - 3615: 0x5A46, - 3616: 0x7F75, - 3617: 0x82AD, - 3618: 0x99AC, - 3619: 0x4FF3, - 3620: 0x5EC3, - 3621: 0x62DD, - 3622: 0x6392, - 3623: 0x6557, - 3624: 0x676F, - 3625: 0x76C3, - 3626: 0x724C, - 3627: 0x80CC, - 3628: 0x80BA, - 3629: 0x8F29, - 3630: 0x914D, - 3631: 0x500D, - 3632: 0x57F9, - 3633: 0x5A92, - 3634: 0x6885, - 3635: 0x6973, - 3636: 0x7164, - 3637: 0x72FD, - 3638: 0x8CB7, - 3639: 0x58F2, - 3640: 0x8CE0, - 3641: 0x966A, - 3642: 0x9019, - 3643: 0x877F, - 3644: 0x79E4, - 3645: 0x77E7, - 3646: 0x8429, - 3647: 0x4F2F, - 3648: 0x5265, - 3649: 0x535A, - 3650: 0x62CD, - 3651: 0x67CF, - 3652: 0x6CCA, - 3653: 0x767D, - 3654: 0x7B94, - 3655: 0x7C95, - 3656: 0x8236, - 3657: 0x8584, - 3658: 0x8FEB, - 3659: 0x66DD, - 3660: 0x6F20, - 3661: 0x7206, - 3662: 0x7E1B, - 3663: 0x83AB, - 3664: 0x99C1, - 3665: 0x9EA6, - 3666: 0x51FD, - 3667: 0x7BB1, - 3668: 0x7872, - 3669: 0x7BB8, - 3670: 0x8087, - 3671: 0x7B48, - 3672: 0x6AE8, - 3673: 0x5E61, - 3674: 0x808C, - 3675: 0x7551, - 3676: 0x7560, - 3677: 0x516B, - 3678: 0x9262, - 3679: 0x6E8C, - 3680: 0x767A, - 3681: 0x9197, - 3682: 0x9AEA, - 3683: 0x4F10, - 3684: 0x7F70, - 3685: 0x629C, - 3686: 0x7B4F, - 3687: 0x95A5, - 3688: 0x9CE9, - 3689: 0x567A, - 3690: 0x5859, - 3691: 0x86E4, - 3692: 0x96BC, - 3693: 0x4F34, - 3694: 0x5224, - 3695: 0x534A, - 3696: 0x53CD, - 3697: 0x53DB, - 3698: 0x5E06, - 3699: 0x642C, - 3700: 0x6591, - 3701: 0x677F, - 3702: 0x6C3E, - 3703: 0x6C4E, - 3704: 0x7248, - 3705: 0x72AF, - 3706: 0x73ED, - 3707: 0x7554, - 3708: 0x7E41, - 3709: 0x822C, - 3710: 0x85E9, - 3711: 0x8CA9, - 3712: 0x7BC4, - 3713: 0x91C6, - 3714: 0x7169, - 3715: 0x9812, - 3716: 0x98EF, - 3717: 0x633D, - 3718: 0x6669, - 3719: 0x756A, - 3720: 0x76E4, - 3721: 0x78D0, - 3722: 0x8543, - 3723: 0x86EE, - 3724: 0x532A, - 3725: 0x5351, - 3726: 0x5426, - 3727: 0x5983, - 3728: 0x5E87, - 3729: 0x5F7C, - 3730: 0x60B2, - 3731: 0x6249, - 3732: 0x6279, - 3733: 0x62AB, - 3734: 0x6590, - 3735: 0x6BD4, - 3736: 0x6CCC, - 3737: 0x75B2, - 3738: 0x76AE, - 3739: 0x7891, - 3740: 0x79D8, - 3741: 0x7DCB, - 3742: 0x7F77, - 3743: 0x80A5, - 3744: 0x88AB, - 3745: 0x8AB9, - 3746: 0x8CBB, - 3747: 0x907F, - 3748: 0x975E, - 3749: 0x98DB, - 3750: 0x6A0B, - 3751: 0x7C38, - 3752: 0x5099, - 3753: 0x5C3E, - 3754: 0x5FAE, - 3755: 0x6787, - 3756: 0x6BD8, - 3757: 0x7435, - 3758: 0x7709, - 3759: 0x7F8E, - 3760: 0x9F3B, - 3761: 0x67CA, - 3762: 0x7A17, - 3763: 0x5339, - 3764: 0x758B, - 3765: 0x9AED, - 3766: 0x5F66, - 3767: 0x819D, - 3768: 0x83F1, - 3769: 0x8098, - 3770: 0x5F3C, - 3771: 0x5FC5, - 3772: 0x7562, - 3773: 0x7B46, - 3774: 0x903C, - 3775: 0x6867, - 3776: 0x59EB, - 3777: 0x5A9B, - 3778: 0x7D10, - 3779: 0x767E, - 3780: 0x8B2C, - 3781: 0x4FF5, - 3782: 0x5F6A, - 3783: 0x6A19, - 3784: 0x6C37, - 3785: 0x6F02, - 3786: 0x74E2, - 3787: 0x7968, - 3788: 0x8868, - 3789: 0x8A55, - 3790: 0x8C79, - 3791: 0x5EDF, - 3792: 0x63CF, - 3793: 0x75C5, - 3794: 0x79D2, - 3795: 0x82D7, - 3796: 0x9328, - 3797: 0x92F2, - 3798: 0x849C, - 3799: 0x86ED, - 3800: 0x9C2D, - 3801: 0x54C1, - 3802: 0x5F6C, - 3803: 0x658C, - 3804: 0x6D5C, - 3805: 0x7015, - 3806: 0x8CA7, - 3807: 0x8CD3, - 3808: 0x983B, - 3809: 0x654F, - 3810: 0x74F6, - 3811: 0x4E0D, - 3812: 0x4ED8, - 3813: 0x57E0, - 3814: 0x592B, - 3815: 0x5A66, - 3816: 0x5BCC, - 3817: 0x51A8, - 3818: 0x5E03, - 3819: 0x5E9C, - 3820: 0x6016, - 3821: 0x6276, - 3822: 0x6577, - 3823: 0x65A7, - 3824: 0x666E, - 3825: 0x6D6E, - 3826: 0x7236, - 3827: 0x7B26, - 3828: 0x8150, - 3829: 0x819A, - 3830: 0x8299, - 3831: 0x8B5C, - 3832: 0x8CA0, - 3833: 0x8CE6, - 3834: 0x8D74, - 3835: 0x961C, - 3836: 0x9644, - 3837: 0x4FAE, - 3838: 0x64AB, - 3839: 0x6B66, - 3840: 0x821E, - 3841: 0x8461, - 3842: 0x856A, - 3843: 0x90E8, - 3844: 0x5C01, - 3845: 0x6953, - 3846: 0x98A8, - 3847: 0x847A, - 3848: 0x8557, - 3849: 0x4F0F, - 3850: 0x526F, - 3851: 0x5FA9, - 3852: 0x5E45, - 3853: 0x670D, - 3854: 0x798F, - 3855: 0x8179, - 3856: 0x8907, - 3857: 0x8986, - 3858: 0x6DF5, - 3859: 0x5F17, - 3860: 0x6255, - 3861: 0x6CB8, - 3862: 0x4ECF, - 3863: 0x7269, - 3864: 0x9B92, - 3865: 0x5206, - 3866: 0x543B, - 3867: 0x5674, - 3868: 0x58B3, - 3869: 0x61A4, - 3870: 0x626E, - 3871: 0x711A, - 3872: 0x596E, - 3873: 0x7C89, - 3874: 0x7CDE, - 3875: 0x7D1B, - 3876: 0x96F0, - 3877: 0x6587, - 3878: 0x805E, - 3879: 0x4E19, - 3880: 0x4F75, - 3881: 0x5175, - 3882: 0x5840, - 3883: 0x5E63, - 3884: 0x5E73, - 3885: 0x5F0A, - 3886: 0x67C4, - 3887: 0x4E26, - 3888: 0x853D, - 3889: 0x9589, - 3890: 0x965B, - 3891: 0x7C73, - 3892: 0x9801, - 3893: 0x50FB, - 3894: 0x58C1, - 3895: 0x7656, - 3896: 0x78A7, - 3897: 0x5225, - 3898: 0x77A5, - 3899: 0x8511, - 3900: 0x7B86, - 3901: 0x504F, - 3902: 0x5909, - 3903: 0x7247, - 3904: 0x7BC7, - 3905: 0x7DE8, - 3906: 0x8FBA, - 3907: 0x8FD4, - 3908: 0x904D, - 3909: 0x4FBF, - 3910: 0x52C9, - 3911: 0x5A29, - 3912: 0x5F01, - 3913: 0x97AD, - 3914: 0x4FDD, - 3915: 0x8217, - 3916: 0x92EA, - 3917: 0x5703, - 3918: 0x6355, - 3919: 0x6B69, - 3920: 0x752B, - 3921: 0x88DC, - 3922: 0x8F14, - 3923: 0x7A42, - 3924: 0x52DF, - 3925: 0x5893, - 3926: 0x6155, - 3927: 0x620A, - 3928: 0x66AE, - 3929: 0x6BCD, - 3930: 0x7C3F, - 3931: 0x83E9, - 3932: 0x5023, - 3933: 0x4FF8, - 3934: 0x5305, - 3935: 0x5446, - 3936: 0x5831, - 3937: 0x5949, - 3938: 0x5B9D, - 3939: 0x5CF0, - 3940: 0x5CEF, - 3941: 0x5D29, - 3942: 0x5E96, - 3943: 0x62B1, - 3944: 0x6367, - 3945: 0x653E, - 3946: 0x65B9, - 3947: 0x670B, - 3948: 0x6CD5, - 3949: 0x6CE1, - 3950: 0x70F9, - 3951: 0x7832, - 3952: 0x7E2B, - 3953: 0x80DE, - 3954: 0x82B3, - 3955: 0x840C, - 3956: 0x84EC, - 3957: 0x8702, - 3958: 0x8912, - 3959: 0x8A2A, - 3960: 0x8C4A, - 3961: 0x90A6, - 3962: 0x92D2, - 3963: 0x98FD, - 3964: 0x9CF3, - 3965: 0x9D6C, - 3966: 0x4E4F, - 3967: 0x4EA1, - 3968: 0x508D, - 3969: 0x5256, - 3970: 0x574A, - 3971: 0x59A8, - 3972: 0x5E3D, - 3973: 0x5FD8, - 3974: 0x5FD9, - 3975: 0x623F, - 3976: 0x66B4, - 3977: 0x671B, - 3978: 0x67D0, - 3979: 0x68D2, - 3980: 0x5192, - 3981: 0x7D21, - 3982: 0x80AA, - 3983: 0x81A8, - 3984: 0x8B00, - 3985: 0x8C8C, - 3986: 0x8CBF, - 3987: 0x927E, - 3988: 0x9632, - 3989: 0x5420, - 3990: 0x982C, - 3991: 0x5317, - 3992: 0x50D5, - 3993: 0x535C, - 3994: 0x58A8, - 3995: 0x64B2, - 3996: 0x6734, - 3997: 0x7267, - 3998: 0x7766, - 3999: 0x7A46, - 4000: 0x91E6, - 4001: 0x52C3, - 4002: 0x6CA1, - 4003: 0x6B86, - 4004: 0x5800, - 4005: 0x5E4C, - 4006: 0x5954, - 4007: 0x672C, - 4008: 0x7FFB, - 4009: 0x51E1, - 4010: 0x76C6, - 4011: 0x6469, - 4012: 0x78E8, - 4013: 0x9B54, - 4014: 0x9EBB, - 4015: 0x57CB, - 4016: 0x59B9, - 4017: 0x6627, - 4018: 0x679A, - 4019: 0x6BCE, - 4020: 0x54E9, - 4021: 0x69D9, - 4022: 0x5E55, - 4023: 0x819C, - 4024: 0x6795, - 4025: 0x9BAA, - 4026: 0x67FE, - 4027: 0x9C52, - 4028: 0x685D, - 4029: 0x4EA6, - 4030: 0x4FE3, - 4031: 0x53C8, - 4032: 0x62B9, - 4033: 0x672B, - 4034: 0x6CAB, - 4035: 0x8FC4, - 4036: 0x4FAD, - 4037: 0x7E6D, - 4038: 0x9EBF, - 4039: 0x4E07, - 4040: 0x6162, - 4041: 0x6E80, - 4042: 0x6F2B, - 4043: 0x8513, - 4044: 0x5473, - 4045: 0x672A, - 4046: 0x9B45, - 4047: 0x5DF3, - 4048: 0x7B95, - 4049: 0x5CAC, - 4050: 0x5BC6, - 4051: 0x871C, - 4052: 0x6E4A, - 4053: 0x84D1, - 4054: 0x7A14, - 4055: 0x8108, - 4056: 0x5999, - 4057: 0x7C8D, - 4058: 0x6C11, - 4059: 0x7720, - 4060: 0x52D9, - 4061: 0x5922, - 4062: 0x7121, - 4063: 0x725F, - 4064: 0x77DB, - 4065: 0x9727, - 4066: 0x9D61, - 4067: 0x690B, - 4068: 0x5A7F, - 4069: 0x5A18, - 4070: 0x51A5, - 4071: 0x540D, - 4072: 0x547D, - 4073: 0x660E, - 4074: 0x76DF, - 4075: 0x8FF7, - 4076: 0x9298, - 4077: 0x9CF4, - 4078: 0x59EA, - 4079: 0x725D, - 4080: 0x6EC5, - 4081: 0x514D, - 4082: 0x68C9, - 4083: 0x7DBF, - 4084: 0x7DEC, - 4085: 0x9762, - 4086: 0x9EBA, - 4087: 0x6478, - 4088: 0x6A21, - 4089: 0x8302, - 4090: 0x5984, - 4091: 0x5B5F, - 4092: 0x6BDB, - 4093: 0x731B, - 4094: 0x76F2, - 4095: 0x7DB2, - 4096: 0x8017, - 4097: 0x8499, - 4098: 0x5132, - 4099: 0x6728, - 4100: 0x9ED9, - 4101: 0x76EE, - 4102: 0x6762, - 4103: 0x52FF, - 4104: 0x9905, - 4105: 0x5C24, - 4106: 0x623B, - 4107: 0x7C7E, - 4108: 0x8CB0, - 4109: 0x554F, - 4110: 0x60B6, - 4111: 0x7D0B, - 4112: 0x9580, - 4113: 0x5301, - 4114: 0x4E5F, - 4115: 0x51B6, - 4116: 0x591C, - 4117: 0x723A, - 4118: 0x8036, - 4119: 0x91CE, - 4120: 0x5F25, - 4121: 0x77E2, - 4122: 0x5384, - 4123: 0x5F79, - 4124: 0x7D04, - 4125: 0x85AC, - 4126: 0x8A33, - 4127: 0x8E8D, - 4128: 0x9756, - 4129: 0x67F3, - 4130: 0x85AE, - 4131: 0x9453, - 4132: 0x6109, - 4133: 0x6108, - 4134: 0x6CB9, - 4135: 0x7652, - 4136: 0x8AED, - 4137: 0x8F38, - 4138: 0x552F, - 4139: 0x4F51, - 4140: 0x512A, - 4141: 0x52C7, - 4142: 0x53CB, - 4143: 0x5BA5, - 4144: 0x5E7D, - 4145: 0x60A0, - 4146: 0x6182, - 4147: 0x63D6, - 4148: 0x6709, - 4149: 0x67DA, - 4150: 0x6E67, - 4151: 0x6D8C, - 4152: 0x7336, - 4153: 0x7337, - 4154: 0x7531, - 4155: 0x7950, - 4156: 0x88D5, - 4157: 0x8A98, - 4158: 0x904A, - 4159: 0x9091, - 4160: 0x90F5, - 4161: 0x96C4, - 4162: 0x878D, - 4163: 0x5915, - 4164: 0x4E88, - 4165: 0x4F59, - 4166: 0x4E0E, - 4167: 0x8A89, - 4168: 0x8F3F, - 4169: 0x9810, - 4170: 0x50AD, - 4171: 0x5E7C, - 4172: 0x5996, - 4173: 0x5BB9, - 4174: 0x5EB8, - 4175: 0x63DA, - 4176: 0x63FA, - 4177: 0x64C1, - 4178: 0x66DC, - 4179: 0x694A, - 4180: 0x69D8, - 4181: 0x6D0B, - 4182: 0x6EB6, - 4183: 0x7194, - 4184: 0x7528, - 4185: 0x7AAF, - 4186: 0x7F8A, - 4187: 0x8000, - 4188: 0x8449, - 4189: 0x84C9, - 4190: 0x8981, - 4191: 0x8B21, - 4192: 0x8E0A, - 4193: 0x9065, - 4194: 0x967D, - 4195: 0x990A, - 4196: 0x617E, - 4197: 0x6291, - 4198: 0x6B32, - 4199: 0x6C83, - 4200: 0x6D74, - 4201: 0x7FCC, - 4202: 0x7FFC, - 4203: 0x6DC0, - 4204: 0x7F85, - 4205: 0x87BA, - 4206: 0x88F8, - 4207: 0x6765, - 4208: 0x83B1, - 4209: 0x983C, - 4210: 0x96F7, - 4211: 0x6D1B, - 4212: 0x7D61, - 4213: 0x843D, - 4214: 0x916A, - 4215: 0x4E71, - 4216: 0x5375, - 4217: 0x5D50, - 4218: 0x6B04, - 4219: 0x6FEB, - 4220: 0x85CD, - 4221: 0x862D, - 4222: 0x89A7, - 4223: 0x5229, - 4224: 0x540F, - 4225: 0x5C65, - 4226: 0x674E, - 4227: 0x68A8, - 4228: 0x7406, - 4229: 0x7483, - 4230: 0x75E2, - 4231: 0x88CF, - 4232: 0x88E1, - 4233: 0x91CC, - 4234: 0x96E2, - 4235: 0x9678, - 4236: 0x5F8B, - 4237: 0x7387, - 4238: 0x7ACB, - 4239: 0x844E, - 4240: 0x63A0, - 4241: 0x7565, - 4242: 0x5289, - 4243: 0x6D41, - 4244: 0x6E9C, - 4245: 0x7409, - 4246: 0x7559, - 4247: 0x786B, - 4248: 0x7C92, - 4249: 0x9686, - 4250: 0x7ADC, - 4251: 0x9F8D, - 4252: 0x4FB6, - 4253: 0x616E, - 4254: 0x65C5, - 4255: 0x865C, - 4256: 0x4E86, - 4257: 0x4EAE, - 4258: 0x50DA, - 4259: 0x4E21, - 4260: 0x51CC, - 4261: 0x5BEE, - 4262: 0x6599, - 4263: 0x6881, - 4264: 0x6DBC, - 4265: 0x731F, - 4266: 0x7642, - 4267: 0x77AD, - 4268: 0x7A1C, - 4269: 0x7CE7, - 4270: 0x826F, - 4271: 0x8AD2, - 4272: 0x907C, - 4273: 0x91CF, - 4274: 0x9675, - 4275: 0x9818, - 4276: 0x529B, - 4277: 0x7DD1, - 4278: 0x502B, - 4279: 0x5398, - 4280: 0x6797, - 4281: 0x6DCB, - 4282: 0x71D0, - 4283: 0x7433, - 4284: 0x81E8, - 4285: 0x8F2A, - 4286: 0x96A3, - 4287: 0x9C57, - 4288: 0x9E9F, - 4289: 0x7460, - 4290: 0x5841, - 4291: 0x6D99, - 4292: 0x7D2F, - 4293: 0x985E, - 4294: 0x4EE4, - 4295: 0x4F36, - 4296: 0x4F8B, - 4297: 0x51B7, - 4298: 0x52B1, - 4299: 0x5DBA, - 4300: 0x601C, - 4301: 0x73B2, - 4302: 0x793C, - 4303: 0x82D3, - 4304: 0x9234, - 4305: 0x96B7, - 4306: 0x96F6, - 4307: 0x970A, - 4308: 0x9E97, - 4309: 0x9F62, - 4310: 0x66A6, - 4311: 0x6B74, - 4312: 0x5217, - 4313: 0x52A3, - 4314: 0x70C8, - 4315: 0x88C2, - 4316: 0x5EC9, - 4317: 0x604B, - 4318: 0x6190, - 4319: 0x6F23, - 4320: 0x7149, - 4321: 0x7C3E, - 4322: 0x7DF4, - 4323: 0x806F, - 4324: 0x84EE, - 4325: 0x9023, - 4326: 0x932C, - 4327: 0x5442, - 4328: 0x9B6F, - 4329: 0x6AD3, - 4330: 0x7089, - 4331: 0x8CC2, - 4332: 0x8DEF, - 4333: 0x9732, - 4334: 0x52B4, - 4335: 0x5A41, - 4336: 0x5ECA, - 4337: 0x5F04, - 4338: 0x6717, - 4339: 0x697C, - 4340: 0x6994, - 4341: 0x6D6A, - 4342: 0x6F0F, - 4343: 0x7262, - 4344: 0x72FC, - 4345: 0x7BED, - 4346: 0x8001, - 4347: 0x807E, - 4348: 0x874B, - 4349: 0x90CE, - 4350: 0x516D, - 4351: 0x9E93, - 4352: 0x7984, - 4353: 0x808B, - 4354: 0x9332, - 4355: 0x8AD6, - 4356: 0x502D, - 4357: 0x548C, - 4358: 0x8A71, - 4359: 0x6B6A, - 4360: 0x8CC4, - 4361: 0x8107, - 4362: 0x60D1, - 4363: 0x67A0, - 4364: 0x9DF2, - 4365: 0x4E99, - 4366: 0x4E98, - 4367: 0x9C10, - 4368: 0x8A6B, - 4369: 0x85C1, - 4370: 0x8568, - 4371: 0x6900, - 4372: 0x6E7E, - 4373: 0x7897, - 4374: 0x8155, - 4418: 0x5F0C, - 4419: 0x4E10, - 4420: 0x4E15, - 4421: 0x4E2A, - 4422: 0x4E31, - 4423: 0x4E36, - 4424: 0x4E3C, - 4425: 0x4E3F, - 4426: 0x4E42, - 4427: 0x4E56, - 4428: 0x4E58, - 4429: 0x4E82, - 4430: 0x4E85, - 4431: 0x8C6B, - 4432: 0x4E8A, - 4433: 0x8212, - 4434: 0x5F0D, - 4435: 0x4E8E, - 4436: 0x4E9E, - 4437: 0x4E9F, - 4438: 0x4EA0, - 4439: 0x4EA2, - 4440: 0x4EB0, - 4441: 0x4EB3, - 4442: 0x4EB6, - 4443: 0x4ECE, - 4444: 0x4ECD, - 4445: 0x4EC4, - 4446: 0x4EC6, - 4447: 0x4EC2, - 4448: 0x4ED7, - 4449: 0x4EDE, - 4450: 0x4EED, - 4451: 0x4EDF, - 4452: 0x4EF7, - 4453: 0x4F09, - 4454: 0x4F5A, - 4455: 0x4F30, - 4456: 0x4F5B, - 4457: 0x4F5D, - 4458: 0x4F57, - 4459: 0x4F47, - 4460: 0x4F76, - 4461: 0x4F88, - 4462: 0x4F8F, - 4463: 0x4F98, - 4464: 0x4F7B, - 4465: 0x4F69, - 4466: 0x4F70, - 4467: 0x4F91, - 4468: 0x4F6F, - 4469: 0x4F86, - 4470: 0x4F96, - 4471: 0x5118, - 4472: 0x4FD4, - 4473: 0x4FDF, - 4474: 0x4FCE, - 4475: 0x4FD8, - 4476: 0x4FDB, - 4477: 0x4FD1, - 4478: 0x4FDA, - 4479: 0x4FD0, - 4480: 0x4FE4, - 4481: 0x4FE5, - 4482: 0x501A, - 4483: 0x5028, - 4484: 0x5014, - 4485: 0x502A, - 4486: 0x5025, - 4487: 0x5005, - 4488: 0x4F1C, - 4489: 0x4FF6, - 4490: 0x5021, - 4491: 0x5029, - 4492: 0x502C, - 4493: 0x4FFE, - 4494: 0x4FEF, - 4495: 0x5011, - 4496: 0x5006, - 4497: 0x5043, - 4498: 0x5047, - 4499: 0x6703, - 4500: 0x5055, - 4501: 0x5050, - 4502: 0x5048, - 4503: 0x505A, - 4504: 0x5056, - 4505: 0x506C, - 4506: 0x5078, - 4507: 0x5080, - 4508: 0x509A, - 4509: 0x5085, - 4510: 0x50B4, - 4511: 0x50B2, - 4512: 0x50C9, - 4513: 0x50CA, - 4514: 0x50B3, - 4515: 0x50C2, - 4516: 0x50D6, - 4517: 0x50DE, - 4518: 0x50E5, - 4519: 0x50ED, - 4520: 0x50E3, - 4521: 0x50EE, - 4522: 0x50F9, - 4523: 0x50F5, - 4524: 0x5109, - 4525: 0x5101, - 4526: 0x5102, - 4527: 0x5116, - 4528: 0x5115, - 4529: 0x5114, - 4530: 0x511A, - 4531: 0x5121, - 4532: 0x513A, - 4533: 0x5137, - 4534: 0x513C, - 4535: 0x513B, - 4536: 0x513F, - 4537: 0x5140, - 4538: 0x5152, - 4539: 0x514C, - 4540: 0x5154, - 4541: 0x5162, - 4542: 0x7AF8, - 4543: 0x5169, - 4544: 0x516A, - 4545: 0x516E, - 4546: 0x5180, - 4547: 0x5182, - 4548: 0x56D8, - 4549: 0x518C, - 4550: 0x5189, - 4551: 0x518F, - 4552: 0x5191, - 4553: 0x5193, - 4554: 0x5195, - 4555: 0x5196, - 4556: 0x51A4, - 4557: 0x51A6, - 4558: 0x51A2, - 4559: 0x51A9, - 4560: 0x51AA, - 4561: 0x51AB, - 4562: 0x51B3, - 4563: 0x51B1, - 4564: 0x51B2, - 4565: 0x51B0, - 4566: 0x51B5, - 4567: 0x51BD, - 4568: 0x51C5, - 4569: 0x51C9, - 4570: 0x51DB, - 4571: 0x51E0, - 4572: 0x8655, - 4573: 0x51E9, - 4574: 0x51ED, - 4575: 0x51F0, - 4576: 0x51F5, - 4577: 0x51FE, - 4578: 0x5204, - 4579: 0x520B, - 4580: 0x5214, - 4581: 0x520E, - 4582: 0x5227, - 4583: 0x522A, - 4584: 0x522E, - 4585: 0x5233, - 4586: 0x5239, - 4587: 0x524F, - 4588: 0x5244, - 4589: 0x524B, - 4590: 0x524C, - 4591: 0x525E, - 4592: 0x5254, - 4593: 0x526A, - 4594: 0x5274, - 4595: 0x5269, - 4596: 0x5273, - 4597: 0x527F, - 4598: 0x527D, - 4599: 0x528D, - 4600: 0x5294, - 4601: 0x5292, - 4602: 0x5271, - 4603: 0x5288, - 4604: 0x5291, - 4605: 0x8FA8, - 4606: 0x8FA7, - 4607: 0x52AC, - 4608: 0x52AD, - 4609: 0x52BC, - 4610: 0x52B5, - 4611: 0x52C1, - 4612: 0x52CD, - 4613: 0x52D7, - 4614: 0x52DE, - 4615: 0x52E3, - 4616: 0x52E6, - 4617: 0x98ED, - 4618: 0x52E0, - 4619: 0x52F3, - 4620: 0x52F5, - 4621: 0x52F8, - 4622: 0x52F9, - 4623: 0x5306, - 4624: 0x5308, - 4625: 0x7538, - 4626: 0x530D, - 4627: 0x5310, - 4628: 0x530F, - 4629: 0x5315, - 4630: 0x531A, - 4631: 0x5323, - 4632: 0x532F, - 4633: 0x5331, - 4634: 0x5333, - 4635: 0x5338, - 4636: 0x5340, - 4637: 0x5346, - 4638: 0x5345, - 4639: 0x4E17, - 4640: 0x5349, - 4641: 0x534D, - 4642: 0x51D6, - 4643: 0x535E, - 4644: 0x5369, - 4645: 0x536E, - 4646: 0x5918, - 4647: 0x537B, - 4648: 0x5377, - 4649: 0x5382, - 4650: 0x5396, - 4651: 0x53A0, - 4652: 0x53A6, - 4653: 0x53A5, - 4654: 0x53AE, - 4655: 0x53B0, - 4656: 0x53B6, - 4657: 0x53C3, - 4658: 0x7C12, - 4659: 0x96D9, - 4660: 0x53DF, - 4661: 0x66FC, - 4662: 0x71EE, - 4663: 0x53EE, - 4664: 0x53E8, - 4665: 0x53ED, - 4666: 0x53FA, - 4667: 0x5401, - 4668: 0x543D, - 4669: 0x5440, - 4670: 0x542C, - 4671: 0x542D, - 4672: 0x543C, - 4673: 0x542E, - 4674: 0x5436, - 4675: 0x5429, - 4676: 0x541D, - 4677: 0x544E, - 4678: 0x548F, - 4679: 0x5475, - 4680: 0x548E, - 4681: 0x545F, - 4682: 0x5471, - 4683: 0x5477, - 4684: 0x5470, - 4685: 0x5492, - 4686: 0x547B, - 4687: 0x5480, - 4688: 0x5476, - 4689: 0x5484, - 4690: 0x5490, - 4691: 0x5486, - 4692: 0x54C7, - 4693: 0x54A2, - 4694: 0x54B8, - 4695: 0x54A5, - 4696: 0x54AC, - 4697: 0x54C4, - 4698: 0x54C8, - 4699: 0x54A8, - 4700: 0x54AB, - 4701: 0x54C2, - 4702: 0x54A4, - 4703: 0x54BE, - 4704: 0x54BC, - 4705: 0x54D8, - 4706: 0x54E5, - 4707: 0x54E6, - 4708: 0x550F, - 4709: 0x5514, - 4710: 0x54FD, - 4711: 0x54EE, - 4712: 0x54ED, - 4713: 0x54FA, - 4714: 0x54E2, - 4715: 0x5539, - 4716: 0x5540, - 4717: 0x5563, - 4718: 0x554C, - 4719: 0x552E, - 4720: 0x555C, - 4721: 0x5545, - 4722: 0x5556, - 4723: 0x5557, - 4724: 0x5538, - 4725: 0x5533, - 4726: 0x555D, - 4727: 0x5599, - 4728: 0x5580, - 4729: 0x54AF, - 4730: 0x558A, - 4731: 0x559F, - 4732: 0x557B, - 4733: 0x557E, - 4734: 0x5598, - 4735: 0x559E, - 4736: 0x55AE, - 4737: 0x557C, - 4738: 0x5583, - 4739: 0x55A9, - 4740: 0x5587, - 4741: 0x55A8, - 4742: 0x55DA, - 4743: 0x55C5, - 4744: 0x55DF, - 4745: 0x55C4, - 4746: 0x55DC, - 4747: 0x55E4, - 4748: 0x55D4, - 4749: 0x5614, - 4750: 0x55F7, - 4751: 0x5616, - 4752: 0x55FE, - 4753: 0x55FD, - 4754: 0x561B, - 4755: 0x55F9, - 4756: 0x564E, - 4757: 0x5650, - 4758: 0x71DF, - 4759: 0x5634, - 4760: 0x5636, - 4761: 0x5632, - 4762: 0x5638, - 4763: 0x566B, - 4764: 0x5664, - 4765: 0x562F, - 4766: 0x566C, - 4767: 0x566A, - 4768: 0x5686, - 4769: 0x5680, - 4770: 0x568A, - 4771: 0x56A0, - 4772: 0x5694, - 4773: 0x568F, - 4774: 0x56A5, - 4775: 0x56AE, - 4776: 0x56B6, - 4777: 0x56B4, - 4778: 0x56C2, - 4779: 0x56BC, - 4780: 0x56C1, - 4781: 0x56C3, - 4782: 0x56C0, - 4783: 0x56C8, - 4784: 0x56CE, - 4785: 0x56D1, - 4786: 0x56D3, - 4787: 0x56D7, - 4788: 0x56EE, - 4789: 0x56F9, - 4790: 0x5700, - 4791: 0x56FF, - 4792: 0x5704, - 4793: 0x5709, - 4794: 0x5708, - 4795: 0x570B, - 4796: 0x570D, - 4797: 0x5713, - 4798: 0x5718, - 4799: 0x5716, - 4800: 0x55C7, - 4801: 0x571C, - 4802: 0x5726, - 4803: 0x5737, - 4804: 0x5738, - 4805: 0x574E, - 4806: 0x573B, - 4807: 0x5740, - 4808: 0x574F, - 4809: 0x5769, - 4810: 0x57C0, - 4811: 0x5788, - 4812: 0x5761, - 4813: 0x577F, - 4814: 0x5789, - 4815: 0x5793, - 4816: 0x57A0, - 4817: 0x57B3, - 4818: 0x57A4, - 4819: 0x57AA, - 4820: 0x57B0, - 4821: 0x57C3, - 4822: 0x57C6, - 4823: 0x57D4, - 4824: 0x57D2, - 4825: 0x57D3, - 4826: 0x580A, - 4827: 0x57D6, - 4828: 0x57E3, - 4829: 0x580B, - 4830: 0x5819, - 4831: 0x581D, - 4832: 0x5872, - 4833: 0x5821, - 4834: 0x5862, - 4835: 0x584B, - 4836: 0x5870, - 4837: 0x6BC0, - 4838: 0x5852, - 4839: 0x583D, - 4840: 0x5879, - 4841: 0x5885, - 4842: 0x58B9, - 4843: 0x589F, - 4844: 0x58AB, - 4845: 0x58BA, - 4846: 0x58DE, - 4847: 0x58BB, - 4848: 0x58B8, - 4849: 0x58AE, - 4850: 0x58C5, - 4851: 0x58D3, - 4852: 0x58D1, - 4853: 0x58D7, - 4854: 0x58D9, - 4855: 0x58D8, - 4856: 0x58E5, - 4857: 0x58DC, - 4858: 0x58E4, - 4859: 0x58DF, - 4860: 0x58EF, - 4861: 0x58FA, - 4862: 0x58F9, - 4863: 0x58FB, - 4864: 0x58FC, - 4865: 0x58FD, - 4866: 0x5902, - 4867: 0x590A, - 4868: 0x5910, - 4869: 0x591B, - 4870: 0x68A6, - 4871: 0x5925, - 4872: 0x592C, - 4873: 0x592D, - 4874: 0x5932, - 4875: 0x5938, - 4876: 0x593E, - 4877: 0x7AD2, - 4878: 0x5955, - 4879: 0x5950, - 4880: 0x594E, - 4881: 0x595A, - 4882: 0x5958, - 4883: 0x5962, - 4884: 0x5960, - 4885: 0x5967, - 4886: 0x596C, - 4887: 0x5969, - 4888: 0x5978, - 4889: 0x5981, - 4890: 0x599D, - 4891: 0x4F5E, - 4892: 0x4FAB, - 4893: 0x59A3, - 4894: 0x59B2, - 4895: 0x59C6, - 4896: 0x59E8, - 4897: 0x59DC, - 4898: 0x598D, - 4899: 0x59D9, - 4900: 0x59DA, - 4901: 0x5A25, - 4902: 0x5A1F, - 4903: 0x5A11, - 4904: 0x5A1C, - 4905: 0x5A09, - 4906: 0x5A1A, - 4907: 0x5A40, - 4908: 0x5A6C, - 4909: 0x5A49, - 4910: 0x5A35, - 4911: 0x5A36, - 4912: 0x5A62, - 4913: 0x5A6A, - 4914: 0x5A9A, - 4915: 0x5ABC, - 4916: 0x5ABE, - 4917: 0x5ACB, - 4918: 0x5AC2, - 4919: 0x5ABD, - 4920: 0x5AE3, - 4921: 0x5AD7, - 4922: 0x5AE6, - 4923: 0x5AE9, - 4924: 0x5AD6, - 4925: 0x5AFA, - 4926: 0x5AFB, - 4927: 0x5B0C, - 4928: 0x5B0B, - 4929: 0x5B16, - 4930: 0x5B32, - 4931: 0x5AD0, - 4932: 0x5B2A, - 4933: 0x5B36, - 4934: 0x5B3E, - 4935: 0x5B43, - 4936: 0x5B45, - 4937: 0x5B40, - 4938: 0x5B51, - 4939: 0x5B55, - 4940: 0x5B5A, - 4941: 0x5B5B, - 4942: 0x5B65, - 4943: 0x5B69, - 4944: 0x5B70, - 4945: 0x5B73, - 4946: 0x5B75, - 4947: 0x5B78, - 4948: 0x6588, - 4949: 0x5B7A, - 4950: 0x5B80, - 4951: 0x5B83, - 4952: 0x5BA6, - 4953: 0x5BB8, - 4954: 0x5BC3, - 4955: 0x5BC7, - 4956: 0x5BC9, - 4957: 0x5BD4, - 4958: 0x5BD0, - 4959: 0x5BE4, - 4960: 0x5BE6, - 4961: 0x5BE2, - 4962: 0x5BDE, - 4963: 0x5BE5, - 4964: 0x5BEB, - 4965: 0x5BF0, - 4966: 0x5BF6, - 4967: 0x5BF3, - 4968: 0x5C05, - 4969: 0x5C07, - 4970: 0x5C08, - 4971: 0x5C0D, - 4972: 0x5C13, - 4973: 0x5C20, - 4974: 0x5C22, - 4975: 0x5C28, - 4976: 0x5C38, - 4977: 0x5C39, - 4978: 0x5C41, - 4979: 0x5C46, - 4980: 0x5C4E, - 4981: 0x5C53, - 4982: 0x5C50, - 4983: 0x5C4F, - 4984: 0x5B71, - 4985: 0x5C6C, - 4986: 0x5C6E, - 4987: 0x4E62, - 4988: 0x5C76, - 4989: 0x5C79, - 4990: 0x5C8C, - 4991: 0x5C91, - 4992: 0x5C94, - 4993: 0x599B, - 4994: 0x5CAB, - 4995: 0x5CBB, - 4996: 0x5CB6, - 4997: 0x5CBC, - 4998: 0x5CB7, - 4999: 0x5CC5, - 5000: 0x5CBE, - 5001: 0x5CC7, - 5002: 0x5CD9, - 5003: 0x5CE9, - 5004: 0x5CFD, - 5005: 0x5CFA, - 5006: 0x5CED, - 5007: 0x5D8C, - 5008: 0x5CEA, - 5009: 0x5D0B, - 5010: 0x5D15, - 5011: 0x5D17, - 5012: 0x5D5C, - 5013: 0x5D1F, - 5014: 0x5D1B, - 5015: 0x5D11, - 5016: 0x5D14, - 5017: 0x5D22, - 5018: 0x5D1A, - 5019: 0x5D19, - 5020: 0x5D18, - 5021: 0x5D4C, - 5022: 0x5D52, - 5023: 0x5D4E, - 5024: 0x5D4B, - 5025: 0x5D6C, - 5026: 0x5D73, - 5027: 0x5D76, - 5028: 0x5D87, - 5029: 0x5D84, - 5030: 0x5D82, - 5031: 0x5DA2, - 5032: 0x5D9D, - 5033: 0x5DAC, - 5034: 0x5DAE, - 5035: 0x5DBD, - 5036: 0x5D90, - 5037: 0x5DB7, - 5038: 0x5DBC, - 5039: 0x5DC9, - 5040: 0x5DCD, - 5041: 0x5DD3, - 5042: 0x5DD2, - 5043: 0x5DD6, - 5044: 0x5DDB, - 5045: 0x5DEB, - 5046: 0x5DF2, - 5047: 0x5DF5, - 5048: 0x5E0B, - 5049: 0x5E1A, - 5050: 0x5E19, - 5051: 0x5E11, - 5052: 0x5E1B, - 5053: 0x5E36, - 5054: 0x5E37, - 5055: 0x5E44, - 5056: 0x5E43, - 5057: 0x5E40, - 5058: 0x5E4E, - 5059: 0x5E57, - 5060: 0x5E54, - 5061: 0x5E5F, - 5062: 0x5E62, - 5063: 0x5E64, - 5064: 0x5E47, - 5065: 0x5E75, - 5066: 0x5E76, - 5067: 0x5E7A, - 5068: 0x9EBC, - 5069: 0x5E7F, - 5070: 0x5EA0, - 5071: 0x5EC1, - 5072: 0x5EC2, - 5073: 0x5EC8, - 5074: 0x5ED0, - 5075: 0x5ECF, - 5076: 0x5ED6, - 5077: 0x5EE3, - 5078: 0x5EDD, - 5079: 0x5EDA, - 5080: 0x5EDB, - 5081: 0x5EE2, - 5082: 0x5EE1, - 5083: 0x5EE8, - 5084: 0x5EE9, - 5085: 0x5EEC, - 5086: 0x5EF1, - 5087: 0x5EF3, - 5088: 0x5EF0, - 5089: 0x5EF4, - 5090: 0x5EF8, - 5091: 0x5EFE, - 5092: 0x5F03, - 5093: 0x5F09, - 5094: 0x5F5D, - 5095: 0x5F5C, - 5096: 0x5F0B, - 5097: 0x5F11, - 5098: 0x5F16, - 5099: 0x5F29, - 5100: 0x5F2D, - 5101: 0x5F38, - 5102: 0x5F41, - 5103: 0x5F48, - 5104: 0x5F4C, - 5105: 0x5F4E, - 5106: 0x5F2F, - 5107: 0x5F51, - 5108: 0x5F56, - 5109: 0x5F57, - 5110: 0x5F59, - 5111: 0x5F61, - 5112: 0x5F6D, - 5113: 0x5F73, - 5114: 0x5F77, - 5115: 0x5F83, - 5116: 0x5F82, - 5117: 0x5F7F, - 5118: 0x5F8A, - 5119: 0x5F88, - 5120: 0x5F91, - 5121: 0x5F87, - 5122: 0x5F9E, - 5123: 0x5F99, - 5124: 0x5F98, - 5125: 0x5FA0, - 5126: 0x5FA8, - 5127: 0x5FAD, - 5128: 0x5FBC, - 5129: 0x5FD6, - 5130: 0x5FFB, - 5131: 0x5FE4, - 5132: 0x5FF8, - 5133: 0x5FF1, - 5134: 0x5FDD, - 5135: 0x60B3, - 5136: 0x5FFF, - 5137: 0x6021, - 5138: 0x6060, - 5139: 0x6019, - 5140: 0x6010, - 5141: 0x6029, - 5142: 0x600E, - 5143: 0x6031, - 5144: 0x601B, - 5145: 0x6015, - 5146: 0x602B, - 5147: 0x6026, - 5148: 0x600F, - 5149: 0x603A, - 5150: 0x605A, - 5151: 0x6041, - 5152: 0x606A, - 5153: 0x6077, - 5154: 0x605F, - 5155: 0x604A, - 5156: 0x6046, - 5157: 0x604D, - 5158: 0x6063, - 5159: 0x6043, - 5160: 0x6064, - 5161: 0x6042, - 5162: 0x606C, - 5163: 0x606B, - 5164: 0x6059, - 5165: 0x6081, - 5166: 0x608D, - 5167: 0x60E7, - 5168: 0x6083, - 5169: 0x609A, - 5170: 0x6084, - 5171: 0x609B, - 5172: 0x6096, - 5173: 0x6097, - 5174: 0x6092, - 5175: 0x60A7, - 5176: 0x608B, - 5177: 0x60E1, - 5178: 0x60B8, - 5179: 0x60E0, - 5180: 0x60D3, - 5181: 0x60B4, - 5182: 0x5FF0, - 5183: 0x60BD, - 5184: 0x60C6, - 5185: 0x60B5, - 5186: 0x60D8, - 5187: 0x614D, - 5188: 0x6115, - 5189: 0x6106, - 5190: 0x60F6, - 5191: 0x60F7, - 5192: 0x6100, - 5193: 0x60F4, - 5194: 0x60FA, - 5195: 0x6103, - 5196: 0x6121, - 5197: 0x60FB, - 5198: 0x60F1, - 5199: 0x610D, - 5200: 0x610E, - 5201: 0x6147, - 5202: 0x613E, - 5203: 0x6128, - 5204: 0x6127, - 5205: 0x614A, - 5206: 0x613F, - 5207: 0x613C, - 5208: 0x612C, - 5209: 0x6134, - 5210: 0x613D, - 5211: 0x6142, - 5212: 0x6144, - 5213: 0x6173, - 5214: 0x6177, - 5215: 0x6158, - 5216: 0x6159, - 5217: 0x615A, - 5218: 0x616B, - 5219: 0x6174, - 5220: 0x616F, - 5221: 0x6165, - 5222: 0x6171, - 5223: 0x615F, - 5224: 0x615D, - 5225: 0x6153, - 5226: 0x6175, - 5227: 0x6199, - 5228: 0x6196, - 5229: 0x6187, - 5230: 0x61AC, - 5231: 0x6194, - 5232: 0x619A, - 5233: 0x618A, - 5234: 0x6191, - 5235: 0x61AB, - 5236: 0x61AE, - 5237: 0x61CC, - 5238: 0x61CA, - 5239: 0x61C9, - 5240: 0x61F7, - 5241: 0x61C8, - 5242: 0x61C3, - 5243: 0x61C6, - 5244: 0x61BA, - 5245: 0x61CB, - 5246: 0x7F79, - 5247: 0x61CD, - 5248: 0x61E6, - 5249: 0x61E3, - 5250: 0x61F6, - 5251: 0x61FA, - 5252: 0x61F4, - 5253: 0x61FF, - 5254: 0x61FD, - 5255: 0x61FC, - 5256: 0x61FE, - 5257: 0x6200, - 5258: 0x6208, - 5259: 0x6209, - 5260: 0x620D, - 5261: 0x620C, - 5262: 0x6214, - 5263: 0x621B, - 5264: 0x621E, - 5265: 0x6221, - 5266: 0x622A, - 5267: 0x622E, - 5268: 0x6230, - 5269: 0x6232, - 5270: 0x6233, - 5271: 0x6241, - 5272: 0x624E, - 5273: 0x625E, - 5274: 0x6263, - 5275: 0x625B, - 5276: 0x6260, - 5277: 0x6268, - 5278: 0x627C, - 5279: 0x6282, - 5280: 0x6289, - 5281: 0x627E, - 5282: 0x6292, - 5283: 0x6293, - 5284: 0x6296, - 5285: 0x62D4, - 5286: 0x6283, - 5287: 0x6294, - 5288: 0x62D7, - 5289: 0x62D1, - 5290: 0x62BB, - 5291: 0x62CF, - 5292: 0x62FF, - 5293: 0x62C6, - 5294: 0x64D4, - 5295: 0x62C8, - 5296: 0x62DC, - 5297: 0x62CC, - 5298: 0x62CA, - 5299: 0x62C2, - 5300: 0x62C7, - 5301: 0x629B, - 5302: 0x62C9, - 5303: 0x630C, - 5304: 0x62EE, - 5305: 0x62F1, - 5306: 0x6327, - 5307: 0x6302, - 5308: 0x6308, - 5309: 0x62EF, - 5310: 0x62F5, - 5311: 0x6350, - 5312: 0x633E, - 5313: 0x634D, - 5314: 0x641C, - 5315: 0x634F, - 5316: 0x6396, - 5317: 0x638E, - 5318: 0x6380, - 5319: 0x63AB, - 5320: 0x6376, - 5321: 0x63A3, - 5322: 0x638F, - 5323: 0x6389, - 5324: 0x639F, - 5325: 0x63B5, - 5326: 0x636B, - 5327: 0x6369, - 5328: 0x63BE, - 5329: 0x63E9, - 5330: 0x63C0, - 5331: 0x63C6, - 5332: 0x63E3, - 5333: 0x63C9, - 5334: 0x63D2, - 5335: 0x63F6, - 5336: 0x63C4, - 5337: 0x6416, - 5338: 0x6434, - 5339: 0x6406, - 5340: 0x6413, - 5341: 0x6426, - 5342: 0x6436, - 5343: 0x651D, - 5344: 0x6417, - 5345: 0x6428, - 5346: 0x640F, - 5347: 0x6467, - 5348: 0x646F, - 5349: 0x6476, - 5350: 0x644E, - 5351: 0x652A, - 5352: 0x6495, - 5353: 0x6493, - 5354: 0x64A5, - 5355: 0x64A9, - 5356: 0x6488, - 5357: 0x64BC, - 5358: 0x64DA, - 5359: 0x64D2, - 5360: 0x64C5, - 5361: 0x64C7, - 5362: 0x64BB, - 5363: 0x64D8, - 5364: 0x64C2, - 5365: 0x64F1, - 5366: 0x64E7, - 5367: 0x8209, - 5368: 0x64E0, - 5369: 0x64E1, - 5370: 0x62AC, - 5371: 0x64E3, - 5372: 0x64EF, - 5373: 0x652C, - 5374: 0x64F6, - 5375: 0x64F4, - 5376: 0x64F2, - 5377: 0x64FA, - 5378: 0x6500, - 5379: 0x64FD, - 5380: 0x6518, - 5381: 0x651C, - 5382: 0x6505, - 5383: 0x6524, - 5384: 0x6523, - 5385: 0x652B, - 5386: 0x6534, - 5387: 0x6535, - 5388: 0x6537, - 5389: 0x6536, - 5390: 0x6538, - 5391: 0x754B, - 5392: 0x6548, - 5393: 0x6556, - 5394: 0x6555, - 5395: 0x654D, - 5396: 0x6558, - 5397: 0x655E, - 5398: 0x655D, - 5399: 0x6572, - 5400: 0x6578, - 5401: 0x6582, - 5402: 0x6583, - 5403: 0x8B8A, - 5404: 0x659B, - 5405: 0x659F, - 5406: 0x65AB, - 5407: 0x65B7, - 5408: 0x65C3, - 5409: 0x65C6, - 5410: 0x65C1, - 5411: 0x65C4, - 5412: 0x65CC, - 5413: 0x65D2, - 5414: 0x65DB, - 5415: 0x65D9, - 5416: 0x65E0, - 5417: 0x65E1, - 5418: 0x65F1, - 5419: 0x6772, - 5420: 0x660A, - 5421: 0x6603, - 5422: 0x65FB, - 5423: 0x6773, - 5424: 0x6635, - 5425: 0x6636, - 5426: 0x6634, - 5427: 0x661C, - 5428: 0x664F, - 5429: 0x6644, - 5430: 0x6649, - 5431: 0x6641, - 5432: 0x665E, - 5433: 0x665D, - 5434: 0x6664, - 5435: 0x6667, - 5436: 0x6668, - 5437: 0x665F, - 5438: 0x6662, - 5439: 0x6670, - 5440: 0x6683, - 5441: 0x6688, - 5442: 0x668E, - 5443: 0x6689, - 5444: 0x6684, - 5445: 0x6698, - 5446: 0x669D, - 5447: 0x66C1, - 5448: 0x66B9, - 5449: 0x66C9, - 5450: 0x66BE, - 5451: 0x66BC, - 5452: 0x66C4, - 5453: 0x66B8, - 5454: 0x66D6, - 5455: 0x66DA, - 5456: 0x66E0, - 5457: 0x663F, - 5458: 0x66E6, - 5459: 0x66E9, - 5460: 0x66F0, - 5461: 0x66F5, - 5462: 0x66F7, - 5463: 0x670F, - 5464: 0x6716, - 5465: 0x671E, - 5466: 0x6726, - 5467: 0x6727, - 5468: 0x9738, - 5469: 0x672E, - 5470: 0x673F, - 5471: 0x6736, - 5472: 0x6741, - 5473: 0x6738, - 5474: 0x6737, - 5475: 0x6746, - 5476: 0x675E, - 5477: 0x6760, - 5478: 0x6759, - 5479: 0x6763, - 5480: 0x6764, - 5481: 0x6789, - 5482: 0x6770, - 5483: 0x67A9, - 5484: 0x677C, - 5485: 0x676A, - 5486: 0x678C, - 5487: 0x678B, - 5488: 0x67A6, - 5489: 0x67A1, - 5490: 0x6785, - 5491: 0x67B7, - 5492: 0x67EF, - 5493: 0x67B4, - 5494: 0x67EC, - 5495: 0x67B3, - 5496: 0x67E9, - 5497: 0x67B8, - 5498: 0x67E4, - 5499: 0x67DE, - 5500: 0x67DD, - 5501: 0x67E2, - 5502: 0x67EE, - 5503: 0x67B9, - 5504: 0x67CE, - 5505: 0x67C6, - 5506: 0x67E7, - 5507: 0x6A9C, - 5508: 0x681E, - 5509: 0x6846, - 5510: 0x6829, - 5511: 0x6840, - 5512: 0x684D, - 5513: 0x6832, - 5514: 0x684E, - 5515: 0x68B3, - 5516: 0x682B, - 5517: 0x6859, - 5518: 0x6863, - 5519: 0x6877, - 5520: 0x687F, - 5521: 0x689F, - 5522: 0x688F, - 5523: 0x68AD, - 5524: 0x6894, - 5525: 0x689D, - 5526: 0x689B, - 5527: 0x6883, - 5528: 0x6AAE, - 5529: 0x68B9, - 5530: 0x6874, - 5531: 0x68B5, - 5532: 0x68A0, - 5533: 0x68BA, - 5534: 0x690F, - 5535: 0x688D, - 5536: 0x687E, - 5537: 0x6901, - 5538: 0x68CA, - 5539: 0x6908, - 5540: 0x68D8, - 5541: 0x6922, - 5542: 0x6926, - 5543: 0x68E1, - 5544: 0x690C, - 5545: 0x68CD, - 5546: 0x68D4, - 5547: 0x68E7, - 5548: 0x68D5, - 5549: 0x6936, - 5550: 0x6912, - 5551: 0x6904, - 5552: 0x68D7, - 5553: 0x68E3, - 5554: 0x6925, - 5555: 0x68F9, - 5556: 0x68E0, - 5557: 0x68EF, - 5558: 0x6928, - 5559: 0x692A, - 5560: 0x691A, - 5561: 0x6923, - 5562: 0x6921, - 5563: 0x68C6, - 5564: 0x6979, - 5565: 0x6977, - 5566: 0x695C, - 5567: 0x6978, - 5568: 0x696B, - 5569: 0x6954, - 5570: 0x697E, - 5571: 0x696E, - 5572: 0x6939, - 5573: 0x6974, - 5574: 0x693D, - 5575: 0x6959, - 5576: 0x6930, - 5577: 0x6961, - 5578: 0x695E, - 5579: 0x695D, - 5580: 0x6981, - 5581: 0x696A, - 5582: 0x69B2, - 5583: 0x69AE, - 5584: 0x69D0, - 5585: 0x69BF, - 5586: 0x69C1, - 5587: 0x69D3, - 5588: 0x69BE, - 5589: 0x69CE, - 5590: 0x5BE8, - 5591: 0x69CA, - 5592: 0x69DD, - 5593: 0x69BB, - 5594: 0x69C3, - 5595: 0x69A7, - 5596: 0x6A2E, - 5597: 0x6991, - 5598: 0x69A0, - 5599: 0x699C, - 5600: 0x6995, - 5601: 0x69B4, - 5602: 0x69DE, - 5603: 0x69E8, - 5604: 0x6A02, - 5605: 0x6A1B, - 5606: 0x69FF, - 5607: 0x6B0A, - 5608: 0x69F9, - 5609: 0x69F2, - 5610: 0x69E7, - 5611: 0x6A05, - 5612: 0x69B1, - 5613: 0x6A1E, - 5614: 0x69ED, - 5615: 0x6A14, - 5616: 0x69EB, - 5617: 0x6A0A, - 5618: 0x6A12, - 5619: 0x6AC1, - 5620: 0x6A23, - 5621: 0x6A13, - 5622: 0x6A44, - 5623: 0x6A0C, - 5624: 0x6A72, - 5625: 0x6A36, - 5626: 0x6A78, - 5627: 0x6A47, - 5628: 0x6A62, - 5629: 0x6A59, - 5630: 0x6A66, - 5631: 0x6A48, - 5632: 0x6A38, - 5633: 0x6A22, - 5634: 0x6A90, - 5635: 0x6A8D, - 5636: 0x6AA0, - 5637: 0x6A84, - 5638: 0x6AA2, - 5639: 0x6AA3, - 5640: 0x6A97, - 5641: 0x8617, - 5642: 0x6ABB, - 5643: 0x6AC3, - 5644: 0x6AC2, - 5645: 0x6AB8, - 5646: 0x6AB3, - 5647: 0x6AAC, - 5648: 0x6ADE, - 5649: 0x6AD1, - 5650: 0x6ADF, - 5651: 0x6AAA, - 5652: 0x6ADA, - 5653: 0x6AEA, - 5654: 0x6AFB, - 5655: 0x6B05, - 5656: 0x8616, - 5657: 0x6AFA, - 5658: 0x6B12, - 5659: 0x6B16, - 5660: 0x9B31, - 5661: 0x6B1F, - 5662: 0x6B38, - 5663: 0x6B37, - 5664: 0x76DC, - 5665: 0x6B39, - 5666: 0x98EE, - 5667: 0x6B47, - 5668: 0x6B43, - 5669: 0x6B49, - 5670: 0x6B50, - 5671: 0x6B59, - 5672: 0x6B54, - 5673: 0x6B5B, - 5674: 0x6B5F, - 5675: 0x6B61, - 5676: 0x6B78, - 5677: 0x6B79, - 5678: 0x6B7F, - 5679: 0x6B80, - 5680: 0x6B84, - 5681: 0x6B83, - 5682: 0x6B8D, - 5683: 0x6B98, - 5684: 0x6B95, - 5685: 0x6B9E, - 5686: 0x6BA4, - 5687: 0x6BAA, - 5688: 0x6BAB, - 5689: 0x6BAF, - 5690: 0x6BB2, - 5691: 0x6BB1, - 5692: 0x6BB3, - 5693: 0x6BB7, - 5694: 0x6BBC, - 5695: 0x6BC6, - 5696: 0x6BCB, - 5697: 0x6BD3, - 5698: 0x6BDF, - 5699: 0x6BEC, - 5700: 0x6BEB, - 5701: 0x6BF3, - 5702: 0x6BEF, - 5703: 0x9EBE, - 5704: 0x6C08, - 5705: 0x6C13, - 5706: 0x6C14, - 5707: 0x6C1B, - 5708: 0x6C24, - 5709: 0x6C23, - 5710: 0x6C5E, - 5711: 0x6C55, - 5712: 0x6C62, - 5713: 0x6C6A, - 5714: 0x6C82, - 5715: 0x6C8D, - 5716: 0x6C9A, - 5717: 0x6C81, - 5718: 0x6C9B, - 5719: 0x6C7E, - 5720: 0x6C68, - 5721: 0x6C73, - 5722: 0x6C92, - 5723: 0x6C90, - 5724: 0x6CC4, - 5725: 0x6CF1, - 5726: 0x6CD3, - 5727: 0x6CBD, - 5728: 0x6CD7, - 5729: 0x6CC5, - 5730: 0x6CDD, - 5731: 0x6CAE, - 5732: 0x6CB1, - 5733: 0x6CBE, - 5734: 0x6CBA, - 5735: 0x6CDB, - 5736: 0x6CEF, - 5737: 0x6CD9, - 5738: 0x6CEA, - 5739: 0x6D1F, - 5740: 0x884D, - 5741: 0x6D36, - 5742: 0x6D2B, - 5743: 0x6D3D, - 5744: 0x6D38, - 5745: 0x6D19, - 5746: 0x6D35, - 5747: 0x6D33, - 5748: 0x6D12, - 5749: 0x6D0C, - 5750: 0x6D63, - 5751: 0x6D93, - 5752: 0x6D64, - 5753: 0x6D5A, - 5754: 0x6D79, - 5755: 0x6D59, - 5756: 0x6D8E, - 5757: 0x6D95, - 5758: 0x6FE4, - 5759: 0x6D85, - 5760: 0x6DF9, - 5761: 0x6E15, - 5762: 0x6E0A, - 5763: 0x6DB5, - 5764: 0x6DC7, - 5765: 0x6DE6, - 5766: 0x6DB8, - 5767: 0x6DC6, - 5768: 0x6DEC, - 5769: 0x6DDE, - 5770: 0x6DCC, - 5771: 0x6DE8, - 5772: 0x6DD2, - 5773: 0x6DC5, - 5774: 0x6DFA, - 5775: 0x6DD9, - 5776: 0x6DE4, - 5777: 0x6DD5, - 5778: 0x6DEA, - 5779: 0x6DEE, - 5780: 0x6E2D, - 5781: 0x6E6E, - 5782: 0x6E2E, - 5783: 0x6E19, - 5784: 0x6E72, - 5785: 0x6E5F, - 5786: 0x6E3E, - 5787: 0x6E23, - 5788: 0x6E6B, - 5789: 0x6E2B, - 5790: 0x6E76, - 5791: 0x6E4D, - 5792: 0x6E1F, - 5793: 0x6E43, - 5794: 0x6E3A, - 5795: 0x6E4E, - 5796: 0x6E24, - 5797: 0x6EFF, - 5798: 0x6E1D, - 5799: 0x6E38, - 5800: 0x6E82, - 5801: 0x6EAA, - 5802: 0x6E98, - 5803: 0x6EC9, - 5804: 0x6EB7, - 5805: 0x6ED3, - 5806: 0x6EBD, - 5807: 0x6EAF, - 5808: 0x6EC4, - 5809: 0x6EB2, - 5810: 0x6ED4, - 5811: 0x6ED5, - 5812: 0x6E8F, - 5813: 0x6EA5, - 5814: 0x6EC2, - 5815: 0x6E9F, - 5816: 0x6F41, - 5817: 0x6F11, - 5818: 0x704C, - 5819: 0x6EEC, - 5820: 0x6EF8, - 5821: 0x6EFE, - 5822: 0x6F3F, - 5823: 0x6EF2, - 5824: 0x6F31, - 5825: 0x6EEF, - 5826: 0x6F32, - 5827: 0x6ECC, - 5828: 0x6F3E, - 5829: 0x6F13, - 5830: 0x6EF7, - 5831: 0x6F86, - 5832: 0x6F7A, - 5833: 0x6F78, - 5834: 0x6F81, - 5835: 0x6F80, - 5836: 0x6F6F, - 5837: 0x6F5B, - 5838: 0x6FF3, - 5839: 0x6F6D, - 5840: 0x6F82, - 5841: 0x6F7C, - 5842: 0x6F58, - 5843: 0x6F8E, - 5844: 0x6F91, - 5845: 0x6FC2, - 5846: 0x6F66, - 5847: 0x6FB3, - 5848: 0x6FA3, - 5849: 0x6FA1, - 5850: 0x6FA4, - 5851: 0x6FB9, - 5852: 0x6FC6, - 5853: 0x6FAA, - 5854: 0x6FDF, - 5855: 0x6FD5, - 5856: 0x6FEC, - 5857: 0x6FD4, - 5858: 0x6FD8, - 5859: 0x6FF1, - 5860: 0x6FEE, - 5861: 0x6FDB, - 5862: 0x7009, - 5863: 0x700B, - 5864: 0x6FFA, - 5865: 0x7011, - 5866: 0x7001, - 5867: 0x700F, - 5868: 0x6FFE, - 5869: 0x701B, - 5870: 0x701A, - 5871: 0x6F74, - 5872: 0x701D, - 5873: 0x7018, - 5874: 0x701F, - 5875: 0x7030, - 5876: 0x703E, - 5877: 0x7032, - 5878: 0x7051, - 5879: 0x7063, - 5880: 0x7099, - 5881: 0x7092, - 5882: 0x70AF, - 5883: 0x70F1, - 5884: 0x70AC, - 5885: 0x70B8, - 5886: 0x70B3, - 5887: 0x70AE, - 5888: 0x70DF, - 5889: 0x70CB, - 5890: 0x70DD, - 5891: 0x70D9, - 5892: 0x7109, - 5893: 0x70FD, - 5894: 0x711C, - 5895: 0x7119, - 5896: 0x7165, - 5897: 0x7155, - 5898: 0x7188, - 5899: 0x7166, - 5900: 0x7162, - 5901: 0x714C, - 5902: 0x7156, - 5903: 0x716C, - 5904: 0x718F, - 5905: 0x71FB, - 5906: 0x7184, - 5907: 0x7195, - 5908: 0x71A8, - 5909: 0x71AC, - 5910: 0x71D7, - 5911: 0x71B9, - 5912: 0x71BE, - 5913: 0x71D2, - 5914: 0x71C9, - 5915: 0x71D4, - 5916: 0x71CE, - 5917: 0x71E0, - 5918: 0x71EC, - 5919: 0x71E7, - 5920: 0x71F5, - 5921: 0x71FC, - 5922: 0x71F9, - 5923: 0x71FF, - 5924: 0x720D, - 5925: 0x7210, - 5926: 0x721B, - 5927: 0x7228, - 5928: 0x722D, - 5929: 0x722C, - 5930: 0x7230, - 5931: 0x7232, - 5932: 0x723B, - 5933: 0x723C, - 5934: 0x723F, - 5935: 0x7240, - 5936: 0x7246, - 5937: 0x724B, - 5938: 0x7258, - 5939: 0x7274, - 5940: 0x727E, - 5941: 0x7282, - 5942: 0x7281, - 5943: 0x7287, - 5944: 0x7292, - 5945: 0x7296, - 5946: 0x72A2, - 5947: 0x72A7, - 5948: 0x72B9, - 5949: 0x72B2, - 5950: 0x72C3, - 5951: 0x72C6, - 5952: 0x72C4, - 5953: 0x72CE, - 5954: 0x72D2, - 5955: 0x72E2, - 5956: 0x72E0, - 5957: 0x72E1, - 5958: 0x72F9, - 5959: 0x72F7, - 5960: 0x500F, - 5961: 0x7317, - 5962: 0x730A, - 5963: 0x731C, - 5964: 0x7316, - 5965: 0x731D, - 5966: 0x7334, - 5967: 0x732F, - 5968: 0x7329, - 5969: 0x7325, - 5970: 0x733E, - 5971: 0x734E, - 5972: 0x734F, - 5973: 0x9ED8, - 5974: 0x7357, - 5975: 0x736A, - 5976: 0x7368, - 5977: 0x7370, - 5978: 0x7378, - 5979: 0x7375, - 5980: 0x737B, - 5981: 0x737A, - 5982: 0x73C8, - 5983: 0x73B3, - 5984: 0x73CE, - 5985: 0x73BB, - 5986: 0x73C0, - 5987: 0x73E5, - 5988: 0x73EE, - 5989: 0x73DE, - 5990: 0x74A2, - 5991: 0x7405, - 5992: 0x746F, - 5993: 0x7425, - 5994: 0x73F8, - 5995: 0x7432, - 5996: 0x743A, - 5997: 0x7455, - 5998: 0x743F, - 5999: 0x745F, - 6000: 0x7459, - 6001: 0x7441, - 6002: 0x745C, - 6003: 0x7469, - 6004: 0x7470, - 6005: 0x7463, - 6006: 0x746A, - 6007: 0x7476, - 6008: 0x747E, - 6009: 0x748B, - 6010: 0x749E, - 6011: 0x74A7, - 6012: 0x74CA, - 6013: 0x74CF, - 6014: 0x74D4, - 6015: 0x73F1, - 6016: 0x74E0, - 6017: 0x74E3, - 6018: 0x74E7, - 6019: 0x74E9, - 6020: 0x74EE, - 6021: 0x74F2, - 6022: 0x74F0, - 6023: 0x74F1, - 6024: 0x74F8, - 6025: 0x74F7, - 6026: 0x7504, - 6027: 0x7503, - 6028: 0x7505, - 6029: 0x750C, - 6030: 0x750E, - 6031: 0x750D, - 6032: 0x7515, - 6033: 0x7513, - 6034: 0x751E, - 6035: 0x7526, - 6036: 0x752C, - 6037: 0x753C, - 6038: 0x7544, - 6039: 0x754D, - 6040: 0x754A, - 6041: 0x7549, - 6042: 0x755B, - 6043: 0x7546, - 6044: 0x755A, - 6045: 0x7569, - 6046: 0x7564, - 6047: 0x7567, - 6048: 0x756B, - 6049: 0x756D, - 6050: 0x7578, - 6051: 0x7576, - 6052: 0x7586, - 6053: 0x7587, - 6054: 0x7574, - 6055: 0x758A, - 6056: 0x7589, - 6057: 0x7582, - 6058: 0x7594, - 6059: 0x759A, - 6060: 0x759D, - 6061: 0x75A5, - 6062: 0x75A3, - 6063: 0x75C2, - 6064: 0x75B3, - 6065: 0x75C3, - 6066: 0x75B5, - 6067: 0x75BD, - 6068: 0x75B8, - 6069: 0x75BC, - 6070: 0x75B1, - 6071: 0x75CD, - 6072: 0x75CA, - 6073: 0x75D2, - 6074: 0x75D9, - 6075: 0x75E3, - 6076: 0x75DE, - 6077: 0x75FE, - 6078: 0x75FF, - 6079: 0x75FC, - 6080: 0x7601, - 6081: 0x75F0, - 6082: 0x75FA, - 6083: 0x75F2, - 6084: 0x75F3, - 6085: 0x760B, - 6086: 0x760D, - 6087: 0x7609, - 6088: 0x761F, - 6089: 0x7627, - 6090: 0x7620, - 6091: 0x7621, - 6092: 0x7622, - 6093: 0x7624, - 6094: 0x7634, - 6095: 0x7630, - 6096: 0x763B, - 6097: 0x7647, - 6098: 0x7648, - 6099: 0x7646, - 6100: 0x765C, - 6101: 0x7658, - 6102: 0x7661, - 6103: 0x7662, - 6104: 0x7668, - 6105: 0x7669, - 6106: 0x766A, - 6107: 0x7667, - 6108: 0x766C, - 6109: 0x7670, - 6110: 0x7672, - 6111: 0x7676, - 6112: 0x7678, - 6113: 0x767C, - 6114: 0x7680, - 6115: 0x7683, - 6116: 0x7688, - 6117: 0x768B, - 6118: 0x768E, - 6119: 0x7696, - 6120: 0x7693, - 6121: 0x7699, - 6122: 0x769A, - 6123: 0x76B0, - 6124: 0x76B4, - 6125: 0x76B8, - 6126: 0x76B9, - 6127: 0x76BA, - 6128: 0x76C2, - 6129: 0x76CD, - 6130: 0x76D6, - 6131: 0x76D2, - 6132: 0x76DE, - 6133: 0x76E1, - 6134: 0x76E5, - 6135: 0x76E7, - 6136: 0x76EA, - 6137: 0x862F, - 6138: 0x76FB, - 6139: 0x7708, - 6140: 0x7707, - 6141: 0x7704, - 6142: 0x7729, - 6143: 0x7724, - 6144: 0x771E, - 6145: 0x7725, - 6146: 0x7726, - 6147: 0x771B, - 6148: 0x7737, - 6149: 0x7738, - 6150: 0x7747, - 6151: 0x775A, - 6152: 0x7768, - 6153: 0x776B, - 6154: 0x775B, - 6155: 0x7765, - 6156: 0x777F, - 6157: 0x777E, - 6158: 0x7779, - 6159: 0x778E, - 6160: 0x778B, - 6161: 0x7791, - 6162: 0x77A0, - 6163: 0x779E, - 6164: 0x77B0, - 6165: 0x77B6, - 6166: 0x77B9, - 6167: 0x77BF, - 6168: 0x77BC, - 6169: 0x77BD, - 6170: 0x77BB, - 6171: 0x77C7, - 6172: 0x77CD, - 6173: 0x77D7, - 6174: 0x77DA, - 6175: 0x77DC, - 6176: 0x77E3, - 6177: 0x77EE, - 6178: 0x77FC, - 6179: 0x780C, - 6180: 0x7812, - 6181: 0x7926, - 6182: 0x7820, - 6183: 0x792A, - 6184: 0x7845, - 6185: 0x788E, - 6186: 0x7874, - 6187: 0x7886, - 6188: 0x787C, - 6189: 0x789A, - 6190: 0x788C, - 6191: 0x78A3, - 6192: 0x78B5, - 6193: 0x78AA, - 6194: 0x78AF, - 6195: 0x78D1, - 6196: 0x78C6, - 6197: 0x78CB, - 6198: 0x78D4, - 6199: 0x78BE, - 6200: 0x78BC, - 6201: 0x78C5, - 6202: 0x78CA, - 6203: 0x78EC, - 6204: 0x78E7, - 6205: 0x78DA, - 6206: 0x78FD, - 6207: 0x78F4, - 6208: 0x7907, - 6209: 0x7912, - 6210: 0x7911, - 6211: 0x7919, - 6212: 0x792C, - 6213: 0x792B, - 6214: 0x7940, - 6215: 0x7960, - 6216: 0x7957, - 6217: 0x795F, - 6218: 0x795A, - 6219: 0x7955, - 6220: 0x7953, - 6221: 0x797A, - 6222: 0x797F, - 6223: 0x798A, - 6224: 0x799D, - 6225: 0x79A7, - 6226: 0x9F4B, - 6227: 0x79AA, - 6228: 0x79AE, - 6229: 0x79B3, - 6230: 0x79B9, - 6231: 0x79BA, - 6232: 0x79C9, - 6233: 0x79D5, - 6234: 0x79E7, - 6235: 0x79EC, - 6236: 0x79E1, - 6237: 0x79E3, - 6238: 0x7A08, - 6239: 0x7A0D, - 6240: 0x7A18, - 6241: 0x7A19, - 6242: 0x7A20, - 6243: 0x7A1F, - 6244: 0x7980, - 6245: 0x7A31, - 6246: 0x7A3B, - 6247: 0x7A3E, - 6248: 0x7A37, - 6249: 0x7A43, - 6250: 0x7A57, - 6251: 0x7A49, - 6252: 0x7A61, - 6253: 0x7A62, - 6254: 0x7A69, - 6255: 0x9F9D, - 6256: 0x7A70, - 6257: 0x7A79, - 6258: 0x7A7D, - 6259: 0x7A88, - 6260: 0x7A97, - 6261: 0x7A95, - 6262: 0x7A98, - 6263: 0x7A96, - 6264: 0x7AA9, - 6265: 0x7AC8, - 6266: 0x7AB0, - 6267: 0x7AB6, - 6268: 0x7AC5, - 6269: 0x7AC4, - 6270: 0x7ABF, - 6271: 0x9083, - 6272: 0x7AC7, - 6273: 0x7ACA, - 6274: 0x7ACD, - 6275: 0x7ACF, - 6276: 0x7AD5, - 6277: 0x7AD3, - 6278: 0x7AD9, - 6279: 0x7ADA, - 6280: 0x7ADD, - 6281: 0x7AE1, - 6282: 0x7AE2, - 6283: 0x7AE6, - 6284: 0x7AED, - 6285: 0x7AF0, - 6286: 0x7B02, - 6287: 0x7B0F, - 6288: 0x7B0A, - 6289: 0x7B06, - 6290: 0x7B33, - 6291: 0x7B18, - 6292: 0x7B19, - 6293: 0x7B1E, - 6294: 0x7B35, - 6295: 0x7B28, - 6296: 0x7B36, - 6297: 0x7B50, - 6298: 0x7B7A, - 6299: 0x7B04, - 6300: 0x7B4D, - 6301: 0x7B0B, - 6302: 0x7B4C, - 6303: 0x7B45, - 6304: 0x7B75, - 6305: 0x7B65, - 6306: 0x7B74, - 6307: 0x7B67, - 6308: 0x7B70, - 6309: 0x7B71, - 6310: 0x7B6C, - 6311: 0x7B6E, - 6312: 0x7B9D, - 6313: 0x7B98, - 6314: 0x7B9F, - 6315: 0x7B8D, - 6316: 0x7B9C, - 6317: 0x7B9A, - 6318: 0x7B8B, - 6319: 0x7B92, - 6320: 0x7B8F, - 6321: 0x7B5D, - 6322: 0x7B99, - 6323: 0x7BCB, - 6324: 0x7BC1, - 6325: 0x7BCC, - 6326: 0x7BCF, - 6327: 0x7BB4, - 6328: 0x7BC6, - 6329: 0x7BDD, - 6330: 0x7BE9, - 6331: 0x7C11, - 6332: 0x7C14, - 6333: 0x7BE6, - 6334: 0x7BE5, - 6335: 0x7C60, - 6336: 0x7C00, - 6337: 0x7C07, - 6338: 0x7C13, - 6339: 0x7BF3, - 6340: 0x7BF7, - 6341: 0x7C17, - 6342: 0x7C0D, - 6343: 0x7BF6, - 6344: 0x7C23, - 6345: 0x7C27, - 6346: 0x7C2A, - 6347: 0x7C1F, - 6348: 0x7C37, - 6349: 0x7C2B, - 6350: 0x7C3D, - 6351: 0x7C4C, - 6352: 0x7C43, - 6353: 0x7C54, - 6354: 0x7C4F, - 6355: 0x7C40, - 6356: 0x7C50, - 6357: 0x7C58, - 6358: 0x7C5F, - 6359: 0x7C64, - 6360: 0x7C56, - 6361: 0x7C65, - 6362: 0x7C6C, - 6363: 0x7C75, - 6364: 0x7C83, - 6365: 0x7C90, - 6366: 0x7CA4, - 6367: 0x7CAD, - 6368: 0x7CA2, - 6369: 0x7CAB, - 6370: 0x7CA1, - 6371: 0x7CA8, - 6372: 0x7CB3, - 6373: 0x7CB2, - 6374: 0x7CB1, - 6375: 0x7CAE, - 6376: 0x7CB9, - 6377: 0x7CBD, - 6378: 0x7CC0, - 6379: 0x7CC5, - 6380: 0x7CC2, - 6381: 0x7CD8, - 6382: 0x7CD2, - 6383: 0x7CDC, - 6384: 0x7CE2, - 6385: 0x9B3B, - 6386: 0x7CEF, - 6387: 0x7CF2, - 6388: 0x7CF4, - 6389: 0x7CF6, - 6390: 0x7CFA, - 6391: 0x7D06, - 6392: 0x7D02, - 6393: 0x7D1C, - 6394: 0x7D15, - 6395: 0x7D0A, - 6396: 0x7D45, - 6397: 0x7D4B, - 6398: 0x7D2E, - 6399: 0x7D32, - 6400: 0x7D3F, - 6401: 0x7D35, - 6402: 0x7D46, - 6403: 0x7D73, - 6404: 0x7D56, - 6405: 0x7D4E, - 6406: 0x7D72, - 6407: 0x7D68, - 6408: 0x7D6E, - 6409: 0x7D4F, - 6410: 0x7D63, - 6411: 0x7D93, - 6412: 0x7D89, - 6413: 0x7D5B, - 6414: 0x7D8F, - 6415: 0x7D7D, - 6416: 0x7D9B, - 6417: 0x7DBA, - 6418: 0x7DAE, - 6419: 0x7DA3, - 6420: 0x7DB5, - 6421: 0x7DC7, - 6422: 0x7DBD, - 6423: 0x7DAB, - 6424: 0x7E3D, - 6425: 0x7DA2, - 6426: 0x7DAF, - 6427: 0x7DDC, - 6428: 0x7DB8, - 6429: 0x7D9F, - 6430: 0x7DB0, - 6431: 0x7DD8, - 6432: 0x7DDD, - 6433: 0x7DE4, - 6434: 0x7DDE, - 6435: 0x7DFB, - 6436: 0x7DF2, - 6437: 0x7DE1, - 6438: 0x7E05, - 6439: 0x7E0A, - 6440: 0x7E23, - 6441: 0x7E21, - 6442: 0x7E12, - 6443: 0x7E31, - 6444: 0x7E1F, - 6445: 0x7E09, - 6446: 0x7E0B, - 6447: 0x7E22, - 6448: 0x7E46, - 6449: 0x7E66, - 6450: 0x7E3B, - 6451: 0x7E35, - 6452: 0x7E39, - 6453: 0x7E43, - 6454: 0x7E37, - 6455: 0x7E32, - 6456: 0x7E3A, - 6457: 0x7E67, - 6458: 0x7E5D, - 6459: 0x7E56, - 6460: 0x7E5E, - 6461: 0x7E59, - 6462: 0x7E5A, - 6463: 0x7E79, - 6464: 0x7E6A, - 6465: 0x7E69, - 6466: 0x7E7C, - 6467: 0x7E7B, - 6468: 0x7E83, - 6469: 0x7DD5, - 6470: 0x7E7D, - 6471: 0x8FAE, - 6472: 0x7E7F, - 6473: 0x7E88, - 6474: 0x7E89, - 6475: 0x7E8C, - 6476: 0x7E92, - 6477: 0x7E90, - 6478: 0x7E93, - 6479: 0x7E94, - 6480: 0x7E96, - 6481: 0x7E8E, - 6482: 0x7E9B, - 6483: 0x7E9C, - 6484: 0x7F38, - 6485: 0x7F3A, - 6486: 0x7F45, - 6487: 0x7F4C, - 6488: 0x7F4D, - 6489: 0x7F4E, - 6490: 0x7F50, - 6491: 0x7F51, - 6492: 0x7F55, - 6493: 0x7F54, - 6494: 0x7F58, - 6495: 0x7F5F, - 6496: 0x7F60, - 6497: 0x7F68, - 6498: 0x7F69, - 6499: 0x7F67, - 6500: 0x7F78, - 6501: 0x7F82, - 6502: 0x7F86, - 6503: 0x7F83, - 6504: 0x7F88, - 6505: 0x7F87, - 6506: 0x7F8C, - 6507: 0x7F94, - 6508: 0x7F9E, - 6509: 0x7F9D, - 6510: 0x7F9A, - 6511: 0x7FA3, - 6512: 0x7FAF, - 6513: 0x7FB2, - 6514: 0x7FB9, - 6515: 0x7FAE, - 6516: 0x7FB6, - 6517: 0x7FB8, - 6518: 0x8B71, - 6519: 0x7FC5, - 6520: 0x7FC6, - 6521: 0x7FCA, - 6522: 0x7FD5, - 6523: 0x7FD4, - 6524: 0x7FE1, - 6525: 0x7FE6, - 6526: 0x7FE9, - 6527: 0x7FF3, - 6528: 0x7FF9, - 6529: 0x98DC, - 6530: 0x8006, - 6531: 0x8004, - 6532: 0x800B, - 6533: 0x8012, - 6534: 0x8018, - 6535: 0x8019, - 6536: 0x801C, - 6537: 0x8021, - 6538: 0x8028, - 6539: 0x803F, - 6540: 0x803B, - 6541: 0x804A, - 6542: 0x8046, - 6543: 0x8052, - 6544: 0x8058, - 6545: 0x805A, - 6546: 0x805F, - 6547: 0x8062, - 6548: 0x8068, - 6549: 0x8073, - 6550: 0x8072, - 6551: 0x8070, - 6552: 0x8076, - 6553: 0x8079, - 6554: 0x807D, - 6555: 0x807F, - 6556: 0x8084, - 6557: 0x8086, - 6558: 0x8085, - 6559: 0x809B, - 6560: 0x8093, - 6561: 0x809A, - 6562: 0x80AD, - 6563: 0x5190, - 6564: 0x80AC, - 6565: 0x80DB, - 6566: 0x80E5, - 6567: 0x80D9, - 6568: 0x80DD, - 6569: 0x80C4, - 6570: 0x80DA, - 6571: 0x80D6, - 6572: 0x8109, - 6573: 0x80EF, - 6574: 0x80F1, - 6575: 0x811B, - 6576: 0x8129, - 6577: 0x8123, - 6578: 0x812F, - 6579: 0x814B, - 6580: 0x968B, - 6581: 0x8146, - 6582: 0x813E, - 6583: 0x8153, - 6584: 0x8151, - 6585: 0x80FC, - 6586: 0x8171, - 6587: 0x816E, - 6588: 0x8165, - 6589: 0x8166, - 6590: 0x8174, - 6591: 0x8183, - 6592: 0x8188, - 6593: 0x818A, - 6594: 0x8180, - 6595: 0x8182, - 6596: 0x81A0, - 6597: 0x8195, - 6598: 0x81A4, - 6599: 0x81A3, - 6600: 0x815F, - 6601: 0x8193, - 6602: 0x81A9, - 6603: 0x81B0, - 6604: 0x81B5, - 6605: 0x81BE, - 6606: 0x81B8, - 6607: 0x81BD, - 6608: 0x81C0, - 6609: 0x81C2, - 6610: 0x81BA, - 6611: 0x81C9, - 6612: 0x81CD, - 6613: 0x81D1, - 6614: 0x81D9, - 6615: 0x81D8, - 6616: 0x81C8, - 6617: 0x81DA, - 6618: 0x81DF, - 6619: 0x81E0, - 6620: 0x81E7, - 6621: 0x81FA, - 6622: 0x81FB, - 6623: 0x81FE, - 6624: 0x8201, - 6625: 0x8202, - 6626: 0x8205, - 6627: 0x8207, - 6628: 0x820A, - 6629: 0x820D, - 6630: 0x8210, - 6631: 0x8216, - 6632: 0x8229, - 6633: 0x822B, - 6634: 0x8238, - 6635: 0x8233, - 6636: 0x8240, - 6637: 0x8259, - 6638: 0x8258, - 6639: 0x825D, - 6640: 0x825A, - 6641: 0x825F, - 6642: 0x8264, - 6643: 0x8262, - 6644: 0x8268, - 6645: 0x826A, - 6646: 0x826B, - 6647: 0x822E, - 6648: 0x8271, - 6649: 0x8277, - 6650: 0x8278, - 6651: 0x827E, - 6652: 0x828D, - 6653: 0x8292, - 6654: 0x82AB, - 6655: 0x829F, - 6656: 0x82BB, - 6657: 0x82AC, - 6658: 0x82E1, - 6659: 0x82E3, - 6660: 0x82DF, - 6661: 0x82D2, - 6662: 0x82F4, - 6663: 0x82F3, - 6664: 0x82FA, - 6665: 0x8393, - 6666: 0x8303, - 6667: 0x82FB, - 6668: 0x82F9, - 6669: 0x82DE, - 6670: 0x8306, - 6671: 0x82DC, - 6672: 0x8309, - 6673: 0x82D9, - 6674: 0x8335, - 6675: 0x8334, - 6676: 0x8316, - 6677: 0x8332, - 6678: 0x8331, - 6679: 0x8340, - 6680: 0x8339, - 6681: 0x8350, - 6682: 0x8345, - 6683: 0x832F, - 6684: 0x832B, - 6685: 0x8317, - 6686: 0x8318, - 6687: 0x8385, - 6688: 0x839A, - 6689: 0x83AA, - 6690: 0x839F, - 6691: 0x83A2, - 6692: 0x8396, - 6693: 0x8323, - 6694: 0x838E, - 6695: 0x8387, - 6696: 0x838A, - 6697: 0x837C, - 6698: 0x83B5, - 6699: 0x8373, - 6700: 0x8375, - 6701: 0x83A0, - 6702: 0x8389, - 6703: 0x83A8, - 6704: 0x83F4, - 6705: 0x8413, - 6706: 0x83EB, - 6707: 0x83CE, - 6708: 0x83FD, - 6709: 0x8403, - 6710: 0x83D8, - 6711: 0x840B, - 6712: 0x83C1, - 6713: 0x83F7, - 6714: 0x8407, - 6715: 0x83E0, - 6716: 0x83F2, - 6717: 0x840D, - 6718: 0x8422, - 6719: 0x8420, - 6720: 0x83BD, - 6721: 0x8438, - 6722: 0x8506, - 6723: 0x83FB, - 6724: 0x846D, - 6725: 0x842A, - 6726: 0x843C, - 6727: 0x855A, - 6728: 0x8484, - 6729: 0x8477, - 6730: 0x846B, - 6731: 0x84AD, - 6732: 0x846E, - 6733: 0x8482, - 6734: 0x8469, - 6735: 0x8446, - 6736: 0x842C, - 6737: 0x846F, - 6738: 0x8479, - 6739: 0x8435, - 6740: 0x84CA, - 6741: 0x8462, - 6742: 0x84B9, - 6743: 0x84BF, - 6744: 0x849F, - 6745: 0x84D9, - 6746: 0x84CD, - 6747: 0x84BB, - 6748: 0x84DA, - 6749: 0x84D0, - 6750: 0x84C1, - 6751: 0x84C6, - 6752: 0x84D6, - 6753: 0x84A1, - 6754: 0x8521, - 6755: 0x84FF, - 6756: 0x84F4, - 6757: 0x8517, - 6758: 0x8518, - 6759: 0x852C, - 6760: 0x851F, - 6761: 0x8515, - 6762: 0x8514, - 6763: 0x84FC, - 6764: 0x8540, - 6765: 0x8563, - 6766: 0x8558, - 6767: 0x8548, - 6768: 0x8541, - 6769: 0x8602, - 6770: 0x854B, - 6771: 0x8555, - 6772: 0x8580, - 6773: 0x85A4, - 6774: 0x8588, - 6775: 0x8591, - 6776: 0x858A, - 6777: 0x85A8, - 6778: 0x856D, - 6779: 0x8594, - 6780: 0x859B, - 6781: 0x85EA, - 6782: 0x8587, - 6783: 0x859C, - 6784: 0x8577, - 6785: 0x857E, - 6786: 0x8590, - 6787: 0x85C9, - 6788: 0x85BA, - 6789: 0x85CF, - 6790: 0x85B9, - 6791: 0x85D0, - 6792: 0x85D5, - 6793: 0x85DD, - 6794: 0x85E5, - 6795: 0x85DC, - 6796: 0x85F9, - 6797: 0x860A, - 6798: 0x8613, - 6799: 0x860B, - 6800: 0x85FE, - 6801: 0x85FA, - 6802: 0x8606, - 6803: 0x8622, - 6804: 0x861A, - 6805: 0x8630, - 6806: 0x863F, - 6807: 0x864D, - 6808: 0x4E55, - 6809: 0x8654, - 6810: 0x865F, - 6811: 0x8667, - 6812: 0x8671, - 6813: 0x8693, - 6814: 0x86A3, - 6815: 0x86A9, - 6816: 0x86AA, - 6817: 0x868B, - 6818: 0x868C, - 6819: 0x86B6, - 6820: 0x86AF, - 6821: 0x86C4, - 6822: 0x86C6, - 6823: 0x86B0, - 6824: 0x86C9, - 6825: 0x8823, - 6826: 0x86AB, - 6827: 0x86D4, - 6828: 0x86DE, - 6829: 0x86E9, - 6830: 0x86EC, - 6831: 0x86DF, - 6832: 0x86DB, - 6833: 0x86EF, - 6834: 0x8712, - 6835: 0x8706, - 6836: 0x8708, - 6837: 0x8700, - 6838: 0x8703, - 6839: 0x86FB, - 6840: 0x8711, - 6841: 0x8709, - 6842: 0x870D, - 6843: 0x86F9, - 6844: 0x870A, - 6845: 0x8734, - 6846: 0x873F, - 6847: 0x8737, - 6848: 0x873B, - 6849: 0x8725, - 6850: 0x8729, - 6851: 0x871A, - 6852: 0x8760, - 6853: 0x875F, - 6854: 0x8778, - 6855: 0x874C, - 6856: 0x874E, - 6857: 0x8774, - 6858: 0x8757, - 6859: 0x8768, - 6860: 0x876E, - 6861: 0x8759, - 6862: 0x8753, - 6863: 0x8763, - 6864: 0x876A, - 6865: 0x8805, - 6866: 0x87A2, - 6867: 0x879F, - 6868: 0x8782, - 6869: 0x87AF, - 6870: 0x87CB, - 6871: 0x87BD, - 6872: 0x87C0, - 6873: 0x87D0, - 6874: 0x96D6, - 6875: 0x87AB, - 6876: 0x87C4, - 6877: 0x87B3, - 6878: 0x87C7, - 6879: 0x87C6, - 6880: 0x87BB, - 6881: 0x87EF, - 6882: 0x87F2, - 6883: 0x87E0, - 6884: 0x880F, - 6885: 0x880D, - 6886: 0x87FE, - 6887: 0x87F6, - 6888: 0x87F7, - 6889: 0x880E, - 6890: 0x87D2, - 6891: 0x8811, - 6892: 0x8816, - 6893: 0x8815, - 6894: 0x8822, - 6895: 0x8821, - 6896: 0x8831, - 6897: 0x8836, - 6898: 0x8839, - 6899: 0x8827, - 6900: 0x883B, - 6901: 0x8844, - 6902: 0x8842, - 6903: 0x8852, - 6904: 0x8859, - 6905: 0x885E, - 6906: 0x8862, - 6907: 0x886B, - 6908: 0x8881, - 6909: 0x887E, - 6910: 0x889E, - 6911: 0x8875, - 6912: 0x887D, - 6913: 0x88B5, - 6914: 0x8872, - 6915: 0x8882, - 6916: 0x8897, - 6917: 0x8892, - 6918: 0x88AE, - 6919: 0x8899, - 6920: 0x88A2, - 6921: 0x888D, - 6922: 0x88A4, - 6923: 0x88B0, - 6924: 0x88BF, - 6925: 0x88B1, - 6926: 0x88C3, - 6927: 0x88C4, - 6928: 0x88D4, - 6929: 0x88D8, - 6930: 0x88D9, - 6931: 0x88DD, - 6932: 0x88F9, - 6933: 0x8902, - 6934: 0x88FC, - 6935: 0x88F4, - 6936: 0x88E8, - 6937: 0x88F2, - 6938: 0x8904, - 6939: 0x890C, - 6940: 0x890A, - 6941: 0x8913, - 6942: 0x8943, - 6943: 0x891E, - 6944: 0x8925, - 6945: 0x892A, - 6946: 0x892B, - 6947: 0x8941, - 6948: 0x8944, - 6949: 0x893B, - 6950: 0x8936, - 6951: 0x8938, - 6952: 0x894C, - 6953: 0x891D, - 6954: 0x8960, - 6955: 0x895E, - 6956: 0x8966, - 6957: 0x8964, - 6958: 0x896D, - 6959: 0x896A, - 6960: 0x896F, - 6961: 0x8974, - 6962: 0x8977, - 6963: 0x897E, - 6964: 0x8983, - 6965: 0x8988, - 6966: 0x898A, - 6967: 0x8993, - 6968: 0x8998, - 6969: 0x89A1, - 6970: 0x89A9, - 6971: 0x89A6, - 6972: 0x89AC, - 6973: 0x89AF, - 6974: 0x89B2, - 6975: 0x89BA, - 6976: 0x89BD, - 6977: 0x89BF, - 6978: 0x89C0, - 6979: 0x89DA, - 6980: 0x89DC, - 6981: 0x89DD, - 6982: 0x89E7, - 6983: 0x89F4, - 6984: 0x89F8, - 6985: 0x8A03, - 6986: 0x8A16, - 6987: 0x8A10, - 6988: 0x8A0C, - 6989: 0x8A1B, - 6990: 0x8A1D, - 6991: 0x8A25, - 6992: 0x8A36, - 6993: 0x8A41, - 6994: 0x8A5B, - 6995: 0x8A52, - 6996: 0x8A46, - 6997: 0x8A48, - 6998: 0x8A7C, - 6999: 0x8A6D, - 7000: 0x8A6C, - 7001: 0x8A62, - 7002: 0x8A85, - 7003: 0x8A82, - 7004: 0x8A84, - 7005: 0x8AA8, - 7006: 0x8AA1, - 7007: 0x8A91, - 7008: 0x8AA5, - 7009: 0x8AA6, - 7010: 0x8A9A, - 7011: 0x8AA3, - 7012: 0x8AC4, - 7013: 0x8ACD, - 7014: 0x8AC2, - 7015: 0x8ADA, - 7016: 0x8AEB, - 7017: 0x8AF3, - 7018: 0x8AE7, - 7019: 0x8AE4, - 7020: 0x8AF1, - 7021: 0x8B14, - 7022: 0x8AE0, - 7023: 0x8AE2, - 7024: 0x8AF7, - 7025: 0x8ADE, - 7026: 0x8ADB, - 7027: 0x8B0C, - 7028: 0x8B07, - 7029: 0x8B1A, - 7030: 0x8AE1, - 7031: 0x8B16, - 7032: 0x8B10, - 7033: 0x8B17, - 7034: 0x8B20, - 7035: 0x8B33, - 7036: 0x97AB, - 7037: 0x8B26, - 7038: 0x8B2B, - 7039: 0x8B3E, - 7040: 0x8B28, - 7041: 0x8B41, - 7042: 0x8B4C, - 7043: 0x8B4F, - 7044: 0x8B4E, - 7045: 0x8B49, - 7046: 0x8B56, - 7047: 0x8B5B, - 7048: 0x8B5A, - 7049: 0x8B6B, - 7050: 0x8B5F, - 7051: 0x8B6C, - 7052: 0x8B6F, - 7053: 0x8B74, - 7054: 0x8B7D, - 7055: 0x8B80, - 7056: 0x8B8C, - 7057: 0x8B8E, - 7058: 0x8B92, - 7059: 0x8B93, - 7060: 0x8B96, - 7061: 0x8B99, - 7062: 0x8B9A, - 7063: 0x8C3A, - 7064: 0x8C41, - 7065: 0x8C3F, - 7066: 0x8C48, - 7067: 0x8C4C, - 7068: 0x8C4E, - 7069: 0x8C50, - 7070: 0x8C55, - 7071: 0x8C62, - 7072: 0x8C6C, - 7073: 0x8C78, - 7074: 0x8C7A, - 7075: 0x8C82, - 7076: 0x8C89, - 7077: 0x8C85, - 7078: 0x8C8A, - 7079: 0x8C8D, - 7080: 0x8C8E, - 7081: 0x8C94, - 7082: 0x8C7C, - 7083: 0x8C98, - 7084: 0x621D, - 7085: 0x8CAD, - 7086: 0x8CAA, - 7087: 0x8CBD, - 7088: 0x8CB2, - 7089: 0x8CB3, - 7090: 0x8CAE, - 7091: 0x8CB6, - 7092: 0x8CC8, - 7093: 0x8CC1, - 7094: 0x8CE4, - 7095: 0x8CE3, - 7096: 0x8CDA, - 7097: 0x8CFD, - 7098: 0x8CFA, - 7099: 0x8CFB, - 7100: 0x8D04, - 7101: 0x8D05, - 7102: 0x8D0A, - 7103: 0x8D07, - 7104: 0x8D0F, - 7105: 0x8D0D, - 7106: 0x8D10, - 7107: 0x9F4E, - 7108: 0x8D13, - 7109: 0x8CCD, - 7110: 0x8D14, - 7111: 0x8D16, - 7112: 0x8D67, - 7113: 0x8D6D, - 7114: 0x8D71, - 7115: 0x8D73, - 7116: 0x8D81, - 7117: 0x8D99, - 7118: 0x8DC2, - 7119: 0x8DBE, - 7120: 0x8DBA, - 7121: 0x8DCF, - 7122: 0x8DDA, - 7123: 0x8DD6, - 7124: 0x8DCC, - 7125: 0x8DDB, - 7126: 0x8DCB, - 7127: 0x8DEA, - 7128: 0x8DEB, - 7129: 0x8DDF, - 7130: 0x8DE3, - 7131: 0x8DFC, - 7132: 0x8E08, - 7133: 0x8E09, - 7134: 0x8DFF, - 7135: 0x8E1D, - 7136: 0x8E1E, - 7137: 0x8E10, - 7138: 0x8E1F, - 7139: 0x8E42, - 7140: 0x8E35, - 7141: 0x8E30, - 7142: 0x8E34, - 7143: 0x8E4A, - 7144: 0x8E47, - 7145: 0x8E49, - 7146: 0x8E4C, - 7147: 0x8E50, - 7148: 0x8E48, - 7149: 0x8E59, - 7150: 0x8E64, - 7151: 0x8E60, - 7152: 0x8E2A, - 7153: 0x8E63, - 7154: 0x8E55, - 7155: 0x8E76, - 7156: 0x8E72, - 7157: 0x8E7C, - 7158: 0x8E81, - 7159: 0x8E87, - 7160: 0x8E85, - 7161: 0x8E84, - 7162: 0x8E8B, - 7163: 0x8E8A, - 7164: 0x8E93, - 7165: 0x8E91, - 7166: 0x8E94, - 7167: 0x8E99, - 7168: 0x8EAA, - 7169: 0x8EA1, - 7170: 0x8EAC, - 7171: 0x8EB0, - 7172: 0x8EC6, - 7173: 0x8EB1, - 7174: 0x8EBE, - 7175: 0x8EC5, - 7176: 0x8EC8, - 7177: 0x8ECB, - 7178: 0x8EDB, - 7179: 0x8EE3, - 7180: 0x8EFC, - 7181: 0x8EFB, - 7182: 0x8EEB, - 7183: 0x8EFE, - 7184: 0x8F0A, - 7185: 0x8F05, - 7186: 0x8F15, - 7187: 0x8F12, - 7188: 0x8F19, - 7189: 0x8F13, - 7190: 0x8F1C, - 7191: 0x8F1F, - 7192: 0x8F1B, - 7193: 0x8F0C, - 7194: 0x8F26, - 7195: 0x8F33, - 7196: 0x8F3B, - 7197: 0x8F39, - 7198: 0x8F45, - 7199: 0x8F42, - 7200: 0x8F3E, - 7201: 0x8F4C, - 7202: 0x8F49, - 7203: 0x8F46, - 7204: 0x8F4E, - 7205: 0x8F57, - 7206: 0x8F5C, - 7207: 0x8F62, - 7208: 0x8F63, - 7209: 0x8F64, - 7210: 0x8F9C, - 7211: 0x8F9F, - 7212: 0x8FA3, - 7213: 0x8FAD, - 7214: 0x8FAF, - 7215: 0x8FB7, - 7216: 0x8FDA, - 7217: 0x8FE5, - 7218: 0x8FE2, - 7219: 0x8FEA, - 7220: 0x8FEF, - 7221: 0x9087, - 7222: 0x8FF4, - 7223: 0x9005, - 7224: 0x8FF9, - 7225: 0x8FFA, - 7226: 0x9011, - 7227: 0x9015, - 7228: 0x9021, - 7229: 0x900D, - 7230: 0x901E, - 7231: 0x9016, - 7232: 0x900B, - 7233: 0x9027, - 7234: 0x9036, - 7235: 0x9035, - 7236: 0x9039, - 7237: 0x8FF8, - 7238: 0x904F, - 7239: 0x9050, - 7240: 0x9051, - 7241: 0x9052, - 7242: 0x900E, - 7243: 0x9049, - 7244: 0x903E, - 7245: 0x9056, - 7246: 0x9058, - 7247: 0x905E, - 7248: 0x9068, - 7249: 0x906F, - 7250: 0x9076, - 7251: 0x96A8, - 7252: 0x9072, - 7253: 0x9082, - 7254: 0x907D, - 7255: 0x9081, - 7256: 0x9080, - 7257: 0x908A, - 7258: 0x9089, - 7259: 0x908F, - 7260: 0x90A8, - 7261: 0x90AF, - 7262: 0x90B1, - 7263: 0x90B5, - 7264: 0x90E2, - 7265: 0x90E4, - 7266: 0x6248, - 7267: 0x90DB, - 7268: 0x9102, - 7269: 0x9112, - 7270: 0x9119, - 7271: 0x9132, - 7272: 0x9130, - 7273: 0x914A, - 7274: 0x9156, - 7275: 0x9158, - 7276: 0x9163, - 7277: 0x9165, - 7278: 0x9169, - 7279: 0x9173, - 7280: 0x9172, - 7281: 0x918B, - 7282: 0x9189, - 7283: 0x9182, - 7284: 0x91A2, - 7285: 0x91AB, - 7286: 0x91AF, - 7287: 0x91AA, - 7288: 0x91B5, - 7289: 0x91B4, - 7290: 0x91BA, - 7291: 0x91C0, - 7292: 0x91C1, - 7293: 0x91C9, - 7294: 0x91CB, - 7295: 0x91D0, - 7296: 0x91D6, - 7297: 0x91DF, - 7298: 0x91E1, - 7299: 0x91DB, - 7300: 0x91FC, - 7301: 0x91F5, - 7302: 0x91F6, - 7303: 0x921E, - 7304: 0x91FF, - 7305: 0x9214, - 7306: 0x922C, - 7307: 0x9215, - 7308: 0x9211, - 7309: 0x925E, - 7310: 0x9257, - 7311: 0x9245, - 7312: 0x9249, - 7313: 0x9264, - 7314: 0x9248, - 7315: 0x9295, - 7316: 0x923F, - 7317: 0x924B, - 7318: 0x9250, - 7319: 0x929C, - 7320: 0x9296, - 7321: 0x9293, - 7322: 0x929B, - 7323: 0x925A, - 7324: 0x92CF, - 7325: 0x92B9, - 7326: 0x92B7, - 7327: 0x92E9, - 7328: 0x930F, - 7329: 0x92FA, - 7330: 0x9344, - 7331: 0x932E, - 7332: 0x9319, - 7333: 0x9322, - 7334: 0x931A, - 7335: 0x9323, - 7336: 0x933A, - 7337: 0x9335, - 7338: 0x933B, - 7339: 0x935C, - 7340: 0x9360, - 7341: 0x937C, - 7342: 0x936E, - 7343: 0x9356, - 7344: 0x93B0, - 7345: 0x93AC, - 7346: 0x93AD, - 7347: 0x9394, - 7348: 0x93B9, - 7349: 0x93D6, - 7350: 0x93D7, - 7351: 0x93E8, - 7352: 0x93E5, - 7353: 0x93D8, - 7354: 0x93C3, - 7355: 0x93DD, - 7356: 0x93D0, - 7357: 0x93C8, - 7358: 0x93E4, - 7359: 0x941A, - 7360: 0x9414, - 7361: 0x9413, - 7362: 0x9403, - 7363: 0x9407, - 7364: 0x9410, - 7365: 0x9436, - 7366: 0x942B, - 7367: 0x9435, - 7368: 0x9421, - 7369: 0x943A, - 7370: 0x9441, - 7371: 0x9452, - 7372: 0x9444, - 7373: 0x945B, - 7374: 0x9460, - 7375: 0x9462, - 7376: 0x945E, - 7377: 0x946A, - 7378: 0x9229, - 7379: 0x9470, - 7380: 0x9475, - 7381: 0x9477, - 7382: 0x947D, - 7383: 0x945A, - 7384: 0x947C, - 7385: 0x947E, - 7386: 0x9481, - 7387: 0x947F, - 7388: 0x9582, - 7389: 0x9587, - 7390: 0x958A, - 7391: 0x9594, - 7392: 0x9596, - 7393: 0x9598, - 7394: 0x9599, - 7395: 0x95A0, - 7396: 0x95A8, - 7397: 0x95A7, - 7398: 0x95AD, - 7399: 0x95BC, - 7400: 0x95BB, - 7401: 0x95B9, - 7402: 0x95BE, - 7403: 0x95CA, - 7404: 0x6FF6, - 7405: 0x95C3, - 7406: 0x95CD, - 7407: 0x95CC, - 7408: 0x95D5, - 7409: 0x95D4, - 7410: 0x95D6, - 7411: 0x95DC, - 7412: 0x95E1, - 7413: 0x95E5, - 7414: 0x95E2, - 7415: 0x9621, - 7416: 0x9628, - 7417: 0x962E, - 7418: 0x962F, - 7419: 0x9642, - 7420: 0x964C, - 7421: 0x964F, - 7422: 0x964B, - 7423: 0x9677, - 7424: 0x965C, - 7425: 0x965E, - 7426: 0x965D, - 7427: 0x965F, - 7428: 0x9666, - 7429: 0x9672, - 7430: 0x966C, - 7431: 0x968D, - 7432: 0x9698, - 7433: 0x9695, - 7434: 0x9697, - 7435: 0x96AA, - 7436: 0x96A7, - 7437: 0x96B1, - 7438: 0x96B2, - 7439: 0x96B0, - 7440: 0x96B4, - 7441: 0x96B6, - 7442: 0x96B8, - 7443: 0x96B9, - 7444: 0x96CE, - 7445: 0x96CB, - 7446: 0x96C9, - 7447: 0x96CD, - 7448: 0x894D, - 7449: 0x96DC, - 7450: 0x970D, - 7451: 0x96D5, - 7452: 0x96F9, - 7453: 0x9704, - 7454: 0x9706, - 7455: 0x9708, - 7456: 0x9713, - 7457: 0x970E, - 7458: 0x9711, - 7459: 0x970F, - 7460: 0x9716, - 7461: 0x9719, - 7462: 0x9724, - 7463: 0x972A, - 7464: 0x9730, - 7465: 0x9739, - 7466: 0x973D, - 7467: 0x973E, - 7468: 0x9744, - 7469: 0x9746, - 7470: 0x9748, - 7471: 0x9742, - 7472: 0x9749, - 7473: 0x975C, - 7474: 0x9760, - 7475: 0x9764, - 7476: 0x9766, - 7477: 0x9768, - 7478: 0x52D2, - 7479: 0x976B, - 7480: 0x9771, - 7481: 0x9779, - 7482: 0x9785, - 7483: 0x977C, - 7484: 0x9781, - 7485: 0x977A, - 7486: 0x9786, - 7487: 0x978B, - 7488: 0x978F, - 7489: 0x9790, - 7490: 0x979C, - 7491: 0x97A8, - 7492: 0x97A6, - 7493: 0x97A3, - 7494: 0x97B3, - 7495: 0x97B4, - 7496: 0x97C3, - 7497: 0x97C6, - 7498: 0x97C8, - 7499: 0x97CB, - 7500: 0x97DC, - 7501: 0x97ED, - 7502: 0x9F4F, - 7503: 0x97F2, - 7504: 0x7ADF, - 7505: 0x97F6, - 7506: 0x97F5, - 7507: 0x980F, - 7508: 0x980C, - 7509: 0x9838, - 7510: 0x9824, - 7511: 0x9821, - 7512: 0x9837, - 7513: 0x983D, - 7514: 0x9846, - 7515: 0x984F, - 7516: 0x984B, - 7517: 0x986B, - 7518: 0x986F, - 7519: 0x9870, - 7520: 0x9871, - 7521: 0x9874, - 7522: 0x9873, - 7523: 0x98AA, - 7524: 0x98AF, - 7525: 0x98B1, - 7526: 0x98B6, - 7527: 0x98C4, - 7528: 0x98C3, - 7529: 0x98C6, - 7530: 0x98E9, - 7531: 0x98EB, - 7532: 0x9903, - 7533: 0x9909, - 7534: 0x9912, - 7535: 0x9914, - 7536: 0x9918, - 7537: 0x9921, - 7538: 0x991D, - 7539: 0x991E, - 7540: 0x9924, - 7541: 0x9920, - 7542: 0x992C, - 7543: 0x992E, - 7544: 0x993D, - 7545: 0x993E, - 7546: 0x9942, - 7547: 0x9949, - 7548: 0x9945, - 7549: 0x9950, - 7550: 0x994B, - 7551: 0x9951, - 7552: 0x9952, - 7553: 0x994C, - 7554: 0x9955, - 7555: 0x9997, - 7556: 0x9998, - 7557: 0x99A5, - 7558: 0x99AD, - 7559: 0x99AE, - 7560: 0x99BC, - 7561: 0x99DF, - 7562: 0x99DB, - 7563: 0x99DD, - 7564: 0x99D8, - 7565: 0x99D1, - 7566: 0x99ED, - 7567: 0x99EE, - 7568: 0x99F1, - 7569: 0x99F2, - 7570: 0x99FB, - 7571: 0x99F8, - 7572: 0x9A01, - 7573: 0x9A0F, - 7574: 0x9A05, - 7575: 0x99E2, - 7576: 0x9A19, - 7577: 0x9A2B, - 7578: 0x9A37, - 7579: 0x9A45, - 7580: 0x9A42, - 7581: 0x9A40, - 7582: 0x9A43, - 7583: 0x9A3E, - 7584: 0x9A55, - 7585: 0x9A4D, - 7586: 0x9A5B, - 7587: 0x9A57, - 7588: 0x9A5F, - 7589: 0x9A62, - 7590: 0x9A65, - 7591: 0x9A64, - 7592: 0x9A69, - 7593: 0x9A6B, - 7594: 0x9A6A, - 7595: 0x9AAD, - 7596: 0x9AB0, - 7597: 0x9ABC, - 7598: 0x9AC0, - 7599: 0x9ACF, - 7600: 0x9AD1, - 7601: 0x9AD3, - 7602: 0x9AD4, - 7603: 0x9ADE, - 7604: 0x9ADF, - 7605: 0x9AE2, - 7606: 0x9AE3, - 7607: 0x9AE6, - 7608: 0x9AEF, - 7609: 0x9AEB, - 7610: 0x9AEE, - 7611: 0x9AF4, - 7612: 0x9AF1, - 7613: 0x9AF7, - 7614: 0x9AFB, - 7615: 0x9B06, - 7616: 0x9B18, - 7617: 0x9B1A, - 7618: 0x9B1F, - 7619: 0x9B22, - 7620: 0x9B23, - 7621: 0x9B25, - 7622: 0x9B27, - 7623: 0x9B28, - 7624: 0x9B29, - 7625: 0x9B2A, - 7626: 0x9B2E, - 7627: 0x9B2F, - 7628: 0x9B32, - 7629: 0x9B44, - 7630: 0x9B43, - 7631: 0x9B4F, - 7632: 0x9B4D, - 7633: 0x9B4E, - 7634: 0x9B51, - 7635: 0x9B58, - 7636: 0x9B74, - 7637: 0x9B93, - 7638: 0x9B83, - 7639: 0x9B91, - 7640: 0x9B96, - 7641: 0x9B97, - 7642: 0x9B9F, - 7643: 0x9BA0, - 7644: 0x9BA8, - 7645: 0x9BB4, - 7646: 0x9BC0, - 7647: 0x9BCA, - 7648: 0x9BB9, - 7649: 0x9BC6, - 7650: 0x9BCF, - 7651: 0x9BD1, - 7652: 0x9BD2, - 7653: 0x9BE3, - 7654: 0x9BE2, - 7655: 0x9BE4, - 7656: 0x9BD4, - 7657: 0x9BE1, - 7658: 0x9C3A, - 7659: 0x9BF2, - 7660: 0x9BF1, - 7661: 0x9BF0, - 7662: 0x9C15, - 7663: 0x9C14, - 7664: 0x9C09, - 7665: 0x9C13, - 7666: 0x9C0C, - 7667: 0x9C06, - 7668: 0x9C08, - 7669: 0x9C12, - 7670: 0x9C0A, - 7671: 0x9C04, - 7672: 0x9C2E, - 7673: 0x9C1B, - 7674: 0x9C25, - 7675: 0x9C24, - 7676: 0x9C21, - 7677: 0x9C30, - 7678: 0x9C47, - 7679: 0x9C32, - 7680: 0x9C46, - 7681: 0x9C3E, - 7682: 0x9C5A, - 7683: 0x9C60, - 7684: 0x9C67, - 7685: 0x9C76, - 7686: 0x9C78, - 7687: 0x9CE7, - 7688: 0x9CEC, - 7689: 0x9CF0, - 7690: 0x9D09, - 7691: 0x9D08, - 7692: 0x9CEB, - 7693: 0x9D03, - 7694: 0x9D06, - 7695: 0x9D2A, - 7696: 0x9D26, - 7697: 0x9DAF, - 7698: 0x9D23, - 7699: 0x9D1F, - 7700: 0x9D44, - 7701: 0x9D15, - 7702: 0x9D12, - 7703: 0x9D41, - 7704: 0x9D3F, - 7705: 0x9D3E, - 7706: 0x9D46, - 7707: 0x9D48, - 7708: 0x9D5D, - 7709: 0x9D5E, - 7710: 0x9D64, - 7711: 0x9D51, - 7712: 0x9D50, - 7713: 0x9D59, - 7714: 0x9D72, - 7715: 0x9D89, - 7716: 0x9D87, - 7717: 0x9DAB, - 7718: 0x9D6F, - 7719: 0x9D7A, - 7720: 0x9D9A, - 7721: 0x9DA4, - 7722: 0x9DA9, - 7723: 0x9DB2, - 7724: 0x9DC4, - 7725: 0x9DC1, - 7726: 0x9DBB, - 7727: 0x9DB8, - 7728: 0x9DBA, - 7729: 0x9DC6, - 7730: 0x9DCF, - 7731: 0x9DC2, - 7732: 0x9DD9, - 7733: 0x9DD3, - 7734: 0x9DF8, - 7735: 0x9DE6, - 7736: 0x9DED, - 7737: 0x9DEF, - 7738: 0x9DFD, - 7739: 0x9E1A, - 7740: 0x9E1B, - 7741: 0x9E1E, - 7742: 0x9E75, - 7743: 0x9E79, - 7744: 0x9E7D, - 7745: 0x9E81, - 7746: 0x9E88, - 7747: 0x9E8B, - 7748: 0x9E8C, - 7749: 0x9E92, - 7750: 0x9E95, - 7751: 0x9E91, - 7752: 0x9E9D, - 7753: 0x9EA5, - 7754: 0x9EA9, - 7755: 0x9EB8, - 7756: 0x9EAA, - 7757: 0x9EAD, - 7758: 0x9761, - 7759: 0x9ECC, - 7760: 0x9ECE, - 7761: 0x9ECF, - 7762: 0x9ED0, - 7763: 0x9ED4, - 7764: 0x9EDC, - 7765: 0x9EDE, - 7766: 0x9EDD, - 7767: 0x9EE0, - 7768: 0x9EE5, - 7769: 0x9EE8, - 7770: 0x9EEF, - 7771: 0x9EF4, - 7772: 0x9EF6, - 7773: 0x9EF7, - 7774: 0x9EF9, - 7775: 0x9EFB, - 7776: 0x9EFC, - 7777: 0x9EFD, - 7778: 0x9F07, - 7779: 0x9F08, - 7780: 0x76B7, - 7781: 0x9F15, - 7782: 0x9F21, - 7783: 0x9F2C, - 7784: 0x9F3E, - 7785: 0x9F4A, - 7786: 0x9F52, - 7787: 0x9F54, - 7788: 0x9F63, - 7789: 0x9F5F, - 7790: 0x9F60, - 7791: 0x9F61, - 7792: 0x9F66, - 7793: 0x9F67, - 7794: 0x9F6C, - 7795: 0x9F6A, - 7796: 0x9F77, - 7797: 0x9F72, - 7798: 0x9F76, - 7799: 0x9F95, - 7800: 0x9F9C, - 7801: 0x9FA0, - 7802: 0x582F, - 7803: 0x69C7, - 7804: 0x9059, - 7805: 0x7464, - 7806: 0x51DC, - 7807: 0x7199, - 8272: 0x7E8A, - 8273: 0x891C, - 8274: 0x9348, - 8275: 0x9288, - 8276: 0x84DC, - 8277: 0x4FC9, - 8278: 0x70BB, - 8279: 0x6631, - 8280: 0x68C8, - 8281: 0x92F9, - 8282: 0x66FB, - 8283: 0x5F45, - 8284: 0x4E28, - 8285: 0x4EE1, - 8286: 0x4EFC, - 8287: 0x4F00, - 8288: 0x4F03, - 8289: 0x4F39, - 8290: 0x4F56, - 8291: 0x4F92, - 8292: 0x4F8A, - 8293: 0x4F9A, - 8294: 0x4F94, - 8295: 0x4FCD, - 8296: 0x5040, - 8297: 0x5022, - 8298: 0x4FFF, - 8299: 0x501E, - 8300: 0x5046, - 8301: 0x5070, - 8302: 0x5042, - 8303: 0x5094, - 8304: 0x50F4, - 8305: 0x50D8, - 8306: 0x514A, - 8307: 0x5164, - 8308: 0x519D, - 8309: 0x51BE, - 8310: 0x51EC, - 8311: 0x5215, - 8312: 0x529C, - 8313: 0x52A6, - 8314: 0x52C0, - 8315: 0x52DB, - 8316: 0x5300, - 8317: 0x5307, - 8318: 0x5324, - 8319: 0x5372, - 8320: 0x5393, - 8321: 0x53B2, - 8322: 0x53DD, - 8323: 0xFA0E, - 8324: 0x549C, - 8325: 0x548A, - 8326: 0x54A9, - 8327: 0x54FF, - 8328: 0x5586, - 8329: 0x5759, - 8330: 0x5765, - 8331: 0x57AC, - 8332: 0x57C8, - 8333: 0x57C7, - 8334: 0xFA0F, - 8335: 0xFA10, - 8336: 0x589E, - 8337: 0x58B2, - 8338: 0x590B, - 8339: 0x5953, - 8340: 0x595B, - 8341: 0x595D, - 8342: 0x5963, - 8343: 0x59A4, - 8344: 0x59BA, - 8345: 0x5B56, - 8346: 0x5BC0, - 8347: 0x752F, - 8348: 0x5BD8, - 8349: 0x5BEC, - 8350: 0x5C1E, - 8351: 0x5CA6, - 8352: 0x5CBA, - 8353: 0x5CF5, - 8354: 0x5D27, - 8355: 0x5D53, - 8356: 0xFA11, - 8357: 0x5D42, - 8358: 0x5D6D, - 8359: 0x5DB8, - 8360: 0x5DB9, - 8361: 0x5DD0, - 8362: 0x5F21, - 8363: 0x5F34, - 8364: 0x5F67, - 8365: 0x5FB7, - 8366: 0x5FDE, - 8367: 0x605D, - 8368: 0x6085, - 8369: 0x608A, - 8370: 0x60DE, - 8371: 0x60D5, - 8372: 0x6120, - 8373: 0x60F2, - 8374: 0x6111, - 8375: 0x6137, - 8376: 0x6130, - 8377: 0x6198, - 8378: 0x6213, - 8379: 0x62A6, - 8380: 0x63F5, - 8381: 0x6460, - 8382: 0x649D, - 8383: 0x64CE, - 8384: 0x654E, - 8385: 0x6600, - 8386: 0x6615, - 8387: 0x663B, - 8388: 0x6609, - 8389: 0x662E, - 8390: 0x661E, - 8391: 0x6624, - 8392: 0x6665, - 8393: 0x6657, - 8394: 0x6659, - 8395: 0xFA12, - 8396: 0x6673, - 8397: 0x6699, - 8398: 0x66A0, - 8399: 0x66B2, - 8400: 0x66BF, - 8401: 0x66FA, - 8402: 0x670E, - 8403: 0xF929, - 8404: 0x6766, - 8405: 0x67BB, - 8406: 0x6852, - 8407: 0x67C0, - 8408: 0x6801, - 8409: 0x6844, - 8410: 0x68CF, - 8411: 0xFA13, - 8412: 0x6968, - 8413: 0xFA14, - 8414: 0x6998, - 8415: 0x69E2, - 8416: 0x6A30, - 8417: 0x6A6B, - 8418: 0x6A46, - 8419: 0x6A73, - 8420: 0x6A7E, - 8421: 0x6AE2, - 8422: 0x6AE4, - 8423: 0x6BD6, - 8424: 0x6C3F, - 8425: 0x6C5C, - 8426: 0x6C86, - 8427: 0x6C6F, - 8428: 0x6CDA, - 8429: 0x6D04, - 8430: 0x6D87, - 8431: 0x6D6F, - 8432: 0x6D96, - 8433: 0x6DAC, - 8434: 0x6DCF, - 8435: 0x6DF8, - 8436: 0x6DF2, - 8437: 0x6DFC, - 8438: 0x6E39, - 8439: 0x6E5C, - 8440: 0x6E27, - 8441: 0x6E3C, - 8442: 0x6EBF, - 8443: 0x6F88, - 8444: 0x6FB5, - 8445: 0x6FF5, - 8446: 0x7005, - 8447: 0x7007, - 8448: 0x7028, - 8449: 0x7085, - 8450: 0x70AB, - 8451: 0x710F, - 8452: 0x7104, - 8453: 0x715C, - 8454: 0x7146, - 8455: 0x7147, - 8456: 0xFA15, - 8457: 0x71C1, - 8458: 0x71FE, - 8459: 0x72B1, - 8460: 0x72BE, - 8461: 0x7324, - 8462: 0xFA16, - 8463: 0x7377, - 8464: 0x73BD, - 8465: 0x73C9, - 8466: 0x73D6, - 8467: 0x73E3, - 8468: 0x73D2, - 8469: 0x7407, - 8470: 0x73F5, - 8471: 0x7426, - 8472: 0x742A, - 8473: 0x7429, - 8474: 0x742E, - 8475: 0x7462, - 8476: 0x7489, - 8477: 0x749F, - 8478: 0x7501, - 8479: 0x756F, - 8480: 0x7682, - 8481: 0x769C, - 8482: 0x769E, - 8483: 0x769B, - 8484: 0x76A6, - 8485: 0xFA17, - 8486: 0x7746, - 8487: 0x52AF, - 8488: 0x7821, - 8489: 0x784E, - 8490: 0x7864, - 8491: 0x787A, - 8492: 0x7930, - 8493: 0xFA18, - 8494: 0xFA19, - 8495: 0xFA1A, - 8496: 0x7994, - 8497: 0xFA1B, - 8498: 0x799B, - 8499: 0x7AD1, - 8500: 0x7AE7, - 8501: 0xFA1C, - 8502: 0x7AEB, - 8503: 0x7B9E, - 8504: 0xFA1D, - 8505: 0x7D48, - 8506: 0x7D5C, - 8507: 0x7DB7, - 8508: 0x7DA0, - 8509: 0x7DD6, - 8510: 0x7E52, - 8511: 0x7F47, - 8512: 0x7FA1, - 8513: 0xFA1E, - 8514: 0x8301, - 8515: 0x8362, - 8516: 0x837F, - 8517: 0x83C7, - 8518: 0x83F6, - 8519: 0x8448, - 8520: 0x84B4, - 8521: 0x8553, - 8522: 0x8559, - 8523: 0x856B, - 8524: 0xFA1F, - 8525: 0x85B0, - 8526: 0xFA20, - 8527: 0xFA21, - 8528: 0x8807, - 8529: 0x88F5, - 8530: 0x8A12, - 8531: 0x8A37, - 8532: 0x8A79, - 8533: 0x8AA7, - 8534: 0x8ABE, - 8535: 0x8ADF, - 8536: 0xFA22, - 8537: 0x8AF6, - 8538: 0x8B53, - 8539: 0x8B7F, - 8540: 0x8CF0, - 8541: 0x8CF4, - 8542: 0x8D12, - 8543: 0x8D76, - 8544: 0xFA23, - 8545: 0x8ECF, - 8546: 0xFA24, - 8547: 0xFA25, - 8548: 0x9067, - 8549: 0x90DE, - 8550: 0xFA26, - 8551: 0x9115, - 8552: 0x9127, - 8553: 0x91DA, - 8554: 0x91D7, - 8555: 0x91DE, - 8556: 0x91ED, - 8557: 0x91EE, - 8558: 0x91E4, - 8559: 0x91E5, - 8560: 0x9206, - 8561: 0x9210, - 8562: 0x920A, - 8563: 0x923A, - 8564: 0x9240, - 8565: 0x923C, - 8566: 0x924E, - 8567: 0x9259, - 8568: 0x9251, - 8569: 0x9239, - 8570: 0x9267, - 8571: 0x92A7, - 8572: 0x9277, - 8573: 0x9278, - 8574: 0x92E7, - 8575: 0x92D7, - 8576: 0x92D9, - 8577: 0x92D0, - 8578: 0xFA27, - 8579: 0x92D5, - 8580: 0x92E0, - 8581: 0x92D3, - 8582: 0x9325, - 8583: 0x9321, - 8584: 0x92FB, - 8585: 0xFA28, - 8586: 0x931E, - 8587: 0x92FF, - 8588: 0x931D, - 8589: 0x9302, - 8590: 0x9370, - 8591: 0x9357, - 8592: 0x93A4, - 8593: 0x93C6, - 8594: 0x93DE, - 8595: 0x93F8, - 8596: 0x9431, - 8597: 0x9445, - 8598: 0x9448, - 8599: 0x9592, - 8600: 0xF9DC, - 8601: 0xFA29, - 8602: 0x969D, - 8603: 0x96AF, - 8604: 0x9733, - 8605: 0x973B, - 8606: 0x9743, - 8607: 0x974D, - 8608: 0x974F, - 8609: 0x9751, - 8610: 0x9755, - 8611: 0x9857, - 8612: 0x9865, - 8613: 0xFA2A, - 8614: 0xFA2B, - 8615: 0x9927, - 8616: 0xFA2C, - 8617: 0x999E, - 8618: 0x9A4E, - 8619: 0x9AD9, - 8620: 0x9ADC, - 8621: 0x9B75, - 8622: 0x9B72, - 8623: 0x9B8F, - 8624: 0x9BB1, - 8625: 0x9BBB, - 8626: 0x9C00, - 8627: 0x9D70, - 8628: 0x9D6B, - 8629: 0xFA2D, - 8630: 0x9E19, - 8631: 0x9ED1, - 8634: 0x2170, - 8635: 0x2171, - 8636: 0x2172, - 8637: 0x2173, - 8638: 0x2174, - 8639: 0x2175, - 8640: 0x2176, - 8641: 0x2177, - 8642: 0x2178, - 8643: 0x2179, - 8644: 0xFFE2, - 8645: 0xFFE4, - 8646: 0xFF07, - 8647: 0xFF02, - 10716: 0x2170, - 10717: 0x2171, - 10718: 0x2172, - 10719: 0x2173, - 10720: 0x2174, - 10721: 0x2175, - 10722: 0x2176, - 10723: 0x2177, - 10724: 0x2178, - 10725: 0x2179, - 10726: 0x2160, - 10727: 0x2161, - 10728: 0x2162, - 10729: 0x2163, - 10730: 0x2164, - 10731: 0x2165, - 10732: 0x2166, - 10733: 0x2167, - 10734: 0x2168, - 10735: 0x2169, - 10736: 0xFFE2, - 10737: 0xFFE4, - 10738: 0xFF07, - 10739: 0xFF02, - 10740: 0x3231, - 10741: 0x2116, - 10742: 0x2121, - 10743: 0x2235, - 10744: 0x7E8A, - 10745: 0x891C, - 10746: 0x9348, - 10747: 0x9288, - 10748: 0x84DC, - 10749: 0x4FC9, - 10750: 0x70BB, - 10751: 0x6631, - 10752: 0x68C8, - 10753: 0x92F9, - 10754: 0x66FB, - 10755: 0x5F45, - 10756: 0x4E28, - 10757: 0x4EE1, - 10758: 0x4EFC, - 10759: 0x4F00, - 10760: 0x4F03, - 10761: 0x4F39, - 10762: 0x4F56, - 10763: 0x4F92, - 10764: 0x4F8A, - 10765: 0x4F9A, - 10766: 0x4F94, - 10767: 0x4FCD, - 10768: 0x5040, - 10769: 0x5022, - 10770: 0x4FFF, - 10771: 0x501E, - 10772: 0x5046, - 10773: 0x5070, - 10774: 0x5042, - 10775: 0x5094, - 10776: 0x50F4, - 10777: 0x50D8, - 10778: 0x514A, - 10779: 0x5164, - 10780: 0x519D, - 10781: 0x51BE, - 10782: 0x51EC, - 10783: 0x5215, - 10784: 0x529C, - 10785: 0x52A6, - 10786: 0x52C0, - 10787: 0x52DB, - 10788: 0x5300, - 10789: 0x5307, - 10790: 0x5324, - 10791: 0x5372, - 10792: 0x5393, - 10793: 0x53B2, - 10794: 0x53DD, - 10795: 0xFA0E, - 10796: 0x549C, - 10797: 0x548A, - 10798: 0x54A9, - 10799: 0x54FF, - 10800: 0x5586, - 10801: 0x5759, - 10802: 0x5765, - 10803: 0x57AC, - 10804: 0x57C8, - 10805: 0x57C7, - 10806: 0xFA0F, - 10807: 0xFA10, - 10808: 0x589E, - 10809: 0x58B2, - 10810: 0x590B, - 10811: 0x5953, - 10812: 0x595B, - 10813: 0x595D, - 10814: 0x5963, - 10815: 0x59A4, - 10816: 0x59BA, - 10817: 0x5B56, - 10818: 0x5BC0, - 10819: 0x752F, - 10820: 0x5BD8, - 10821: 0x5BEC, - 10822: 0x5C1E, - 10823: 0x5CA6, - 10824: 0x5CBA, - 10825: 0x5CF5, - 10826: 0x5D27, - 10827: 0x5D53, - 10828: 0xFA11, - 10829: 0x5D42, - 10830: 0x5D6D, - 10831: 0x5DB8, - 10832: 0x5DB9, - 10833: 0x5DD0, - 10834: 0x5F21, - 10835: 0x5F34, - 10836: 0x5F67, - 10837: 0x5FB7, - 10838: 0x5FDE, - 10839: 0x605D, - 10840: 0x6085, - 10841: 0x608A, - 10842: 0x60DE, - 10843: 0x60D5, - 10844: 0x6120, - 10845: 0x60F2, - 10846: 0x6111, - 10847: 0x6137, - 10848: 0x6130, - 10849: 0x6198, - 10850: 0x6213, - 10851: 0x62A6, - 10852: 0x63F5, - 10853: 0x6460, - 10854: 0x649D, - 10855: 0x64CE, - 10856: 0x654E, - 10857: 0x6600, - 10858: 0x6615, - 10859: 0x663B, - 10860: 0x6609, - 10861: 0x662E, - 10862: 0x661E, - 10863: 0x6624, - 10864: 0x6665, - 10865: 0x6657, - 10866: 0x6659, - 10867: 0xFA12, - 10868: 0x6673, - 10869: 0x6699, - 10870: 0x66A0, - 10871: 0x66B2, - 10872: 0x66BF, - 10873: 0x66FA, - 10874: 0x670E, - 10875: 0xF929, - 10876: 0x6766, - 10877: 0x67BB, - 10878: 0x6852, - 10879: 0x67C0, - 10880: 0x6801, - 10881: 0x6844, - 10882: 0x68CF, - 10883: 0xFA13, - 10884: 0x6968, - 10885: 0xFA14, - 10886: 0x6998, - 10887: 0x69E2, - 10888: 0x6A30, - 10889: 0x6A6B, - 10890: 0x6A46, - 10891: 0x6A73, - 10892: 0x6A7E, - 10893: 0x6AE2, - 10894: 0x6AE4, - 10895: 0x6BD6, - 10896: 0x6C3F, - 10897: 0x6C5C, - 10898: 0x6C86, - 10899: 0x6C6F, - 10900: 0x6CDA, - 10901: 0x6D04, - 10902: 0x6D87, - 10903: 0x6D6F, - 10904: 0x6D96, - 10905: 0x6DAC, - 10906: 0x6DCF, - 10907: 0x6DF8, - 10908: 0x6DF2, - 10909: 0x6DFC, - 10910: 0x6E39, - 10911: 0x6E5C, - 10912: 0x6E27, - 10913: 0x6E3C, - 10914: 0x6EBF, - 10915: 0x6F88, - 10916: 0x6FB5, - 10917: 0x6FF5, - 10918: 0x7005, - 10919: 0x7007, - 10920: 0x7028, - 10921: 0x7085, - 10922: 0x70AB, - 10923: 0x710F, - 10924: 0x7104, - 10925: 0x715C, - 10926: 0x7146, - 10927: 0x7147, - 10928: 0xFA15, - 10929: 0x71C1, - 10930: 0x71FE, - 10931: 0x72B1, - 10932: 0x72BE, - 10933: 0x7324, - 10934: 0xFA16, - 10935: 0x7377, - 10936: 0x73BD, - 10937: 0x73C9, - 10938: 0x73D6, - 10939: 0x73E3, - 10940: 0x73D2, - 10941: 0x7407, - 10942: 0x73F5, - 10943: 0x7426, - 10944: 0x742A, - 10945: 0x7429, - 10946: 0x742E, - 10947: 0x7462, - 10948: 0x7489, - 10949: 0x749F, - 10950: 0x7501, - 10951: 0x756F, - 10952: 0x7682, - 10953: 0x769C, - 10954: 0x769E, - 10955: 0x769B, - 10956: 0x76A6, - 10957: 0xFA17, - 10958: 0x7746, - 10959: 0x52AF, - 10960: 0x7821, - 10961: 0x784E, - 10962: 0x7864, - 10963: 0x787A, - 10964: 0x7930, - 10965: 0xFA18, - 10966: 0xFA19, - 10967: 0xFA1A, - 10968: 0x7994, - 10969: 0xFA1B, - 10970: 0x799B, - 10971: 0x7AD1, - 10972: 0x7AE7, - 10973: 0xFA1C, - 10974: 0x7AEB, - 10975: 0x7B9E, - 10976: 0xFA1D, - 10977: 0x7D48, - 10978: 0x7D5C, - 10979: 0x7DB7, - 10980: 0x7DA0, - 10981: 0x7DD6, - 10982: 0x7E52, - 10983: 0x7F47, - 10984: 0x7FA1, - 10985: 0xFA1E, - 10986: 0x8301, - 10987: 0x8362, - 10988: 0x837F, - 10989: 0x83C7, - 10990: 0x83F6, - 10991: 0x8448, - 10992: 0x84B4, - 10993: 0x8553, - 10994: 0x8559, - 10995: 0x856B, - 10996: 0xFA1F, - 10997: 0x85B0, - 10998: 0xFA20, - 10999: 0xFA21, - 11000: 0x8807, - 11001: 0x88F5, - 11002: 0x8A12, - 11003: 0x8A37, - 11004: 0x8A79, - 11005: 0x8AA7, - 11006: 0x8ABE, - 11007: 0x8ADF, - 11008: 0xFA22, - 11009: 0x8AF6, - 11010: 0x8B53, - 11011: 0x8B7F, - 11012: 0x8CF0, - 11013: 0x8CF4, - 11014: 0x8D12, - 11015: 0x8D76, - 11016: 0xFA23, - 11017: 0x8ECF, - 11018: 0xFA24, - 11019: 0xFA25, - 11020: 0x9067, - 11021: 0x90DE, - 11022: 0xFA26, - 11023: 0x9115, - 11024: 0x9127, - 11025: 0x91DA, - 11026: 0x91D7, - 11027: 0x91DE, - 11028: 0x91ED, - 11029: 0x91EE, - 11030: 0x91E4, - 11031: 0x91E5, - 11032: 0x9206, - 11033: 0x9210, - 11034: 0x920A, - 11035: 0x923A, - 11036: 0x9240, - 11037: 0x923C, - 11038: 0x924E, - 11039: 0x9259, - 11040: 0x9251, - 11041: 0x9239, - 11042: 0x9267, - 11043: 0x92A7, - 11044: 0x9277, - 11045: 0x9278, - 11046: 0x92E7, - 11047: 0x92D7, - 11048: 0x92D9, - 11049: 0x92D0, - 11050: 0xFA27, - 11051: 0x92D5, - 11052: 0x92E0, - 11053: 0x92D3, - 11054: 0x9325, - 11055: 0x9321, - 11056: 0x92FB, - 11057: 0xFA28, - 11058: 0x931E, - 11059: 0x92FF, - 11060: 0x931D, - 11061: 0x9302, - 11062: 0x9370, - 11063: 0x9357, - 11064: 0x93A4, - 11065: 0x93C6, - 11066: 0x93DE, - 11067: 0x93F8, - 11068: 0x9431, - 11069: 0x9445, - 11070: 0x9448, - 11071: 0x9592, - 11072: 0xF9DC, - 11073: 0xFA29, - 11074: 0x969D, - 11075: 0x96AF, - 11076: 0x9733, - 11077: 0x973B, - 11078: 0x9743, - 11079: 0x974D, - 11080: 0x974F, - 11081: 0x9751, - 11082: 0x9755, - 11083: 0x9857, - 11084: 0x9865, - 11085: 0xFA2A, - 11086: 0xFA2B, - 11087: 0x9927, - 11088: 0xFA2C, - 11089: 0x999E, - 11090: 0x9A4E, - 11091: 0x9AD9, - 11092: 0x9ADC, - 11093: 0x9B75, - 11094: 0x9B72, - 11095: 0x9B8F, - 11096: 0x9BB1, - 11097: 0x9BBB, - 11098: 0x9C00, - 11099: 0x9D70, - 11100: 0x9D6B, - 11101: 0xFA2D, - 11102: 0x9E19, - 11103: 0x9ED1, -} - -// jis0212Decode is the decoding table from JIS 0212 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-jis0212.txt -var jis0212Decode = [...]uint16{ - 108: 0x02D8, - 109: 0x02C7, - 110: 0x00B8, - 111: 0x02D9, - 112: 0x02DD, - 113: 0x00AF, - 114: 0x02DB, - 115: 0x02DA, - 116: 0xFF5E, - 117: 0x0384, - 118: 0x0385, - 127: 0x00A1, - 128: 0x00A6, - 129: 0x00BF, - 168: 0x00BA, - 169: 0x00AA, - 170: 0x00A9, - 171: 0x00AE, - 172: 0x2122, - 173: 0x00A4, - 174: 0x2116, - 534: 0x0386, - 535: 0x0388, - 536: 0x0389, - 537: 0x038A, - 538: 0x03AA, - 540: 0x038C, - 542: 0x038E, - 543: 0x03AB, - 545: 0x038F, - 550: 0x03AC, - 551: 0x03AD, - 552: 0x03AE, - 553: 0x03AF, - 554: 0x03CA, - 555: 0x0390, - 556: 0x03CC, - 557: 0x03C2, - 558: 0x03CD, - 559: 0x03CB, - 560: 0x03B0, - 561: 0x03CE, - 597: 0x0402, - 598: 0x0403, - 599: 0x0404, - 600: 0x0405, - 601: 0x0406, - 602: 0x0407, - 603: 0x0408, - 604: 0x0409, - 605: 0x040A, - 606: 0x040B, - 607: 0x040C, - 608: 0x040E, - 609: 0x040F, - 645: 0x0452, - 646: 0x0453, - 647: 0x0454, - 648: 0x0455, - 649: 0x0456, - 650: 0x0457, - 651: 0x0458, - 652: 0x0459, - 653: 0x045A, - 654: 0x045B, - 655: 0x045C, - 656: 0x045E, - 657: 0x045F, - 752: 0x00C6, - 753: 0x0110, - 755: 0x0126, - 757: 0x0132, - 759: 0x0141, - 760: 0x013F, - 762: 0x014A, - 763: 0x00D8, - 764: 0x0152, - 766: 0x0166, - 767: 0x00DE, - 784: 0x00E6, - 785: 0x0111, - 786: 0x00F0, - 787: 0x0127, - 788: 0x0131, - 789: 0x0133, - 790: 0x0138, - 791: 0x0142, - 792: 0x0140, - 793: 0x0149, - 794: 0x014B, - 795: 0x00F8, - 796: 0x0153, - 797: 0x00DF, - 798: 0x0167, - 799: 0x00FE, - 846: 0x00C1, - 847: 0x00C0, - 848: 0x00C4, - 849: 0x00C2, - 850: 0x0102, - 851: 0x01CD, - 852: 0x0100, - 853: 0x0104, - 854: 0x00C5, - 855: 0x00C3, - 856: 0x0106, - 857: 0x0108, - 858: 0x010C, - 859: 0x00C7, - 860: 0x010A, - 861: 0x010E, - 862: 0x00C9, - 863: 0x00C8, - 864: 0x00CB, - 865: 0x00CA, - 866: 0x011A, - 867: 0x0116, - 868: 0x0112, - 869: 0x0118, - 871: 0x011C, - 872: 0x011E, - 873: 0x0122, - 874: 0x0120, - 875: 0x0124, - 876: 0x00CD, - 877: 0x00CC, - 878: 0x00CF, - 879: 0x00CE, - 880: 0x01CF, - 881: 0x0130, - 882: 0x012A, - 883: 0x012E, - 884: 0x0128, - 885: 0x0134, - 886: 0x0136, - 887: 0x0139, - 888: 0x013D, - 889: 0x013B, - 890: 0x0143, - 891: 0x0147, - 892: 0x0145, - 893: 0x00D1, - 894: 0x00D3, - 895: 0x00D2, - 896: 0x00D6, - 897: 0x00D4, - 898: 0x01D1, - 899: 0x0150, - 900: 0x014C, - 901: 0x00D5, - 902: 0x0154, - 903: 0x0158, - 904: 0x0156, - 905: 0x015A, - 906: 0x015C, - 907: 0x0160, - 908: 0x015E, - 909: 0x0164, - 910: 0x0162, - 911: 0x00DA, - 912: 0x00D9, - 913: 0x00DC, - 914: 0x00DB, - 915: 0x016C, - 916: 0x01D3, - 917: 0x0170, - 918: 0x016A, - 919: 0x0172, - 920: 0x016E, - 921: 0x0168, - 922: 0x01D7, - 923: 0x01DB, - 924: 0x01D9, - 925: 0x01D5, - 926: 0x0174, - 927: 0x00DD, - 928: 0x0178, - 929: 0x0176, - 930: 0x0179, - 931: 0x017D, - 932: 0x017B, - 940: 0x00E1, - 941: 0x00E0, - 942: 0x00E4, - 943: 0x00E2, - 944: 0x0103, - 945: 0x01CE, - 946: 0x0101, - 947: 0x0105, - 948: 0x00E5, - 949: 0x00E3, - 950: 0x0107, - 951: 0x0109, - 952: 0x010D, - 953: 0x00E7, - 954: 0x010B, - 955: 0x010F, - 956: 0x00E9, - 957: 0x00E8, - 958: 0x00EB, - 959: 0x00EA, - 960: 0x011B, - 961: 0x0117, - 962: 0x0113, - 963: 0x0119, - 964: 0x01F5, - 965: 0x011D, - 966: 0x011F, - 968: 0x0121, - 969: 0x0125, - 970: 0x00ED, - 971: 0x00EC, - 972: 0x00EF, - 973: 0x00EE, - 974: 0x01D0, - 976: 0x012B, - 977: 0x012F, - 978: 0x0129, - 979: 0x0135, - 980: 0x0137, - 981: 0x013A, - 982: 0x013E, - 983: 0x013C, - 984: 0x0144, - 985: 0x0148, - 986: 0x0146, - 987: 0x00F1, - 988: 0x00F3, - 989: 0x00F2, - 990: 0x00F6, - 991: 0x00F4, - 992: 0x01D2, - 993: 0x0151, - 994: 0x014D, - 995: 0x00F5, - 996: 0x0155, - 997: 0x0159, - 998: 0x0157, - 999: 0x015B, - 1000: 0x015D, - 1001: 0x0161, - 1002: 0x015F, - 1003: 0x0165, - 1004: 0x0163, - 1005: 0x00FA, - 1006: 0x00F9, - 1007: 0x00FC, - 1008: 0x00FB, - 1009: 0x016D, - 1010: 0x01D4, - 1011: 0x0171, - 1012: 0x016B, - 1013: 0x0173, - 1014: 0x016F, - 1015: 0x0169, - 1016: 0x01D8, - 1017: 0x01DC, - 1018: 0x01DA, - 1019: 0x01D6, - 1020: 0x0175, - 1021: 0x00FD, - 1022: 0x00FF, - 1023: 0x0177, - 1024: 0x017A, - 1025: 0x017E, - 1026: 0x017C, - 1410: 0x4E02, - 1411: 0x4E04, - 1412: 0x4E05, - 1413: 0x4E0C, - 1414: 0x4E12, - 1415: 0x4E1F, - 1416: 0x4E23, - 1417: 0x4E24, - 1418: 0x4E28, - 1419: 0x4E2B, - 1420: 0x4E2E, - 1421: 0x4E2F, - 1422: 0x4E30, - 1423: 0x4E35, - 1424: 0x4E40, - 1425: 0x4E41, - 1426: 0x4E44, - 1427: 0x4E47, - 1428: 0x4E51, - 1429: 0x4E5A, - 1430: 0x4E5C, - 1431: 0x4E63, - 1432: 0x4E68, - 1433: 0x4E69, - 1434: 0x4E74, - 1435: 0x4E75, - 1436: 0x4E79, - 1437: 0x4E7F, - 1438: 0x4E8D, - 1439: 0x4E96, - 1440: 0x4E97, - 1441: 0x4E9D, - 1442: 0x4EAF, - 1443: 0x4EB9, - 1444: 0x4EC3, - 1445: 0x4ED0, - 1446: 0x4EDA, - 1447: 0x4EDB, - 1448: 0x4EE0, - 1449: 0x4EE1, - 1450: 0x4EE2, - 1451: 0x4EE8, - 1452: 0x4EEF, - 1453: 0x4EF1, - 1454: 0x4EF3, - 1455: 0x4EF5, - 1456: 0x4EFD, - 1457: 0x4EFE, - 1458: 0x4EFF, - 1459: 0x4F00, - 1460: 0x4F02, - 1461: 0x4F03, - 1462: 0x4F08, - 1463: 0x4F0B, - 1464: 0x4F0C, - 1465: 0x4F12, - 1466: 0x4F15, - 1467: 0x4F16, - 1468: 0x4F17, - 1469: 0x4F19, - 1470: 0x4F2E, - 1471: 0x4F31, - 1472: 0x4F60, - 1473: 0x4F33, - 1474: 0x4F35, - 1475: 0x4F37, - 1476: 0x4F39, - 1477: 0x4F3B, - 1478: 0x4F3E, - 1479: 0x4F40, - 1480: 0x4F42, - 1481: 0x4F48, - 1482: 0x4F49, - 1483: 0x4F4B, - 1484: 0x4F4C, - 1485: 0x4F52, - 1486: 0x4F54, - 1487: 0x4F56, - 1488: 0x4F58, - 1489: 0x4F5F, - 1490: 0x4F63, - 1491: 0x4F6A, - 1492: 0x4F6C, - 1493: 0x4F6E, - 1494: 0x4F71, - 1495: 0x4F77, - 1496: 0x4F78, - 1497: 0x4F79, - 1498: 0x4F7A, - 1499: 0x4F7D, - 1500: 0x4F7E, - 1501: 0x4F81, - 1502: 0x4F82, - 1503: 0x4F84, - 1504: 0x4F85, - 1505: 0x4F89, - 1506: 0x4F8A, - 1507: 0x4F8C, - 1508: 0x4F8E, - 1509: 0x4F90, - 1510: 0x4F92, - 1511: 0x4F93, - 1512: 0x4F94, - 1513: 0x4F97, - 1514: 0x4F99, - 1515: 0x4F9A, - 1516: 0x4F9E, - 1517: 0x4F9F, - 1518: 0x4FB2, - 1519: 0x4FB7, - 1520: 0x4FB9, - 1521: 0x4FBB, - 1522: 0x4FBC, - 1523: 0x4FBD, - 1524: 0x4FBE, - 1525: 0x4FC0, - 1526: 0x4FC1, - 1527: 0x4FC5, - 1528: 0x4FC6, - 1529: 0x4FC8, - 1530: 0x4FC9, - 1531: 0x4FCB, - 1532: 0x4FCC, - 1533: 0x4FCD, - 1534: 0x4FCF, - 1535: 0x4FD2, - 1536: 0x4FDC, - 1537: 0x4FE0, - 1538: 0x4FE2, - 1539: 0x4FF0, - 1540: 0x4FF2, - 1541: 0x4FFC, - 1542: 0x4FFD, - 1543: 0x4FFF, - 1544: 0x5000, - 1545: 0x5001, - 1546: 0x5004, - 1547: 0x5007, - 1548: 0x500A, - 1549: 0x500C, - 1550: 0x500E, - 1551: 0x5010, - 1552: 0x5013, - 1553: 0x5017, - 1554: 0x5018, - 1555: 0x501B, - 1556: 0x501C, - 1557: 0x501D, - 1558: 0x501E, - 1559: 0x5022, - 1560: 0x5027, - 1561: 0x502E, - 1562: 0x5030, - 1563: 0x5032, - 1564: 0x5033, - 1565: 0x5035, - 1566: 0x5040, - 1567: 0x5041, - 1568: 0x5042, - 1569: 0x5045, - 1570: 0x5046, - 1571: 0x504A, - 1572: 0x504C, - 1573: 0x504E, - 1574: 0x5051, - 1575: 0x5052, - 1576: 0x5053, - 1577: 0x5057, - 1578: 0x5059, - 1579: 0x505F, - 1580: 0x5060, - 1581: 0x5062, - 1582: 0x5063, - 1583: 0x5066, - 1584: 0x5067, - 1585: 0x506A, - 1586: 0x506D, - 1587: 0x5070, - 1588: 0x5071, - 1589: 0x503B, - 1590: 0x5081, - 1591: 0x5083, - 1592: 0x5084, - 1593: 0x5086, - 1594: 0x508A, - 1595: 0x508E, - 1596: 0x508F, - 1597: 0x5090, - 1598: 0x5092, - 1599: 0x5093, - 1600: 0x5094, - 1601: 0x5096, - 1602: 0x509B, - 1603: 0x509C, - 1604: 0x509E, - 1605: 0x509F, - 1606: 0x50A0, - 1607: 0x50A1, - 1608: 0x50A2, - 1609: 0x50AA, - 1610: 0x50AF, - 1611: 0x50B0, - 1612: 0x50B9, - 1613: 0x50BA, - 1614: 0x50BD, - 1615: 0x50C0, - 1616: 0x50C3, - 1617: 0x50C4, - 1618: 0x50C7, - 1619: 0x50CC, - 1620: 0x50CE, - 1621: 0x50D0, - 1622: 0x50D3, - 1623: 0x50D4, - 1624: 0x50D8, - 1625: 0x50DC, - 1626: 0x50DD, - 1627: 0x50DF, - 1628: 0x50E2, - 1629: 0x50E4, - 1630: 0x50E6, - 1631: 0x50E8, - 1632: 0x50E9, - 1633: 0x50EF, - 1634: 0x50F1, - 1635: 0x50F6, - 1636: 0x50FA, - 1637: 0x50FE, - 1638: 0x5103, - 1639: 0x5106, - 1640: 0x5107, - 1641: 0x5108, - 1642: 0x510B, - 1643: 0x510C, - 1644: 0x510D, - 1645: 0x510E, - 1646: 0x50F2, - 1647: 0x5110, - 1648: 0x5117, - 1649: 0x5119, - 1650: 0x511B, - 1651: 0x511C, - 1652: 0x511D, - 1653: 0x511E, - 1654: 0x5123, - 1655: 0x5127, - 1656: 0x5128, - 1657: 0x512C, - 1658: 0x512D, - 1659: 0x512F, - 1660: 0x5131, - 1661: 0x5133, - 1662: 0x5134, - 1663: 0x5135, - 1664: 0x5138, - 1665: 0x5139, - 1666: 0x5142, - 1667: 0x514A, - 1668: 0x514F, - 1669: 0x5153, - 1670: 0x5155, - 1671: 0x5157, - 1672: 0x5158, - 1673: 0x515F, - 1674: 0x5164, - 1675: 0x5166, - 1676: 0x517E, - 1677: 0x5183, - 1678: 0x5184, - 1679: 0x518B, - 1680: 0x518E, - 1681: 0x5198, - 1682: 0x519D, - 1683: 0x51A1, - 1684: 0x51A3, - 1685: 0x51AD, - 1686: 0x51B8, - 1687: 0x51BA, - 1688: 0x51BC, - 1689: 0x51BE, - 1690: 0x51BF, - 1691: 0x51C2, - 1692: 0x51C8, - 1693: 0x51CF, - 1694: 0x51D1, - 1695: 0x51D2, - 1696: 0x51D3, - 1697: 0x51D5, - 1698: 0x51D8, - 1699: 0x51DE, - 1700: 0x51E2, - 1701: 0x51E5, - 1702: 0x51EE, - 1703: 0x51F2, - 1704: 0x51F3, - 1705: 0x51F4, - 1706: 0x51F7, - 1707: 0x5201, - 1708: 0x5202, - 1709: 0x5205, - 1710: 0x5212, - 1711: 0x5213, - 1712: 0x5215, - 1713: 0x5216, - 1714: 0x5218, - 1715: 0x5222, - 1716: 0x5228, - 1717: 0x5231, - 1718: 0x5232, - 1719: 0x5235, - 1720: 0x523C, - 1721: 0x5245, - 1722: 0x5249, - 1723: 0x5255, - 1724: 0x5257, - 1725: 0x5258, - 1726: 0x525A, - 1727: 0x525C, - 1728: 0x525F, - 1729: 0x5260, - 1730: 0x5261, - 1731: 0x5266, - 1732: 0x526E, - 1733: 0x5277, - 1734: 0x5278, - 1735: 0x5279, - 1736: 0x5280, - 1737: 0x5282, - 1738: 0x5285, - 1739: 0x528A, - 1740: 0x528C, - 1741: 0x5293, - 1742: 0x5295, - 1743: 0x5296, - 1744: 0x5297, - 1745: 0x5298, - 1746: 0x529A, - 1747: 0x529C, - 1748: 0x52A4, - 1749: 0x52A5, - 1750: 0x52A6, - 1751: 0x52A7, - 1752: 0x52AF, - 1753: 0x52B0, - 1754: 0x52B6, - 1755: 0x52B7, - 1756: 0x52B8, - 1757: 0x52BA, - 1758: 0x52BB, - 1759: 0x52BD, - 1760: 0x52C0, - 1761: 0x52C4, - 1762: 0x52C6, - 1763: 0x52C8, - 1764: 0x52CC, - 1765: 0x52CF, - 1766: 0x52D1, - 1767: 0x52D4, - 1768: 0x52D6, - 1769: 0x52DB, - 1770: 0x52DC, - 1771: 0x52E1, - 1772: 0x52E5, - 1773: 0x52E8, - 1774: 0x52E9, - 1775: 0x52EA, - 1776: 0x52EC, - 1777: 0x52F0, - 1778: 0x52F1, - 1779: 0x52F4, - 1780: 0x52F6, - 1781: 0x52F7, - 1782: 0x5300, - 1783: 0x5303, - 1784: 0x530A, - 1785: 0x530B, - 1786: 0x530C, - 1787: 0x5311, - 1788: 0x5313, - 1789: 0x5318, - 1790: 0x531B, - 1791: 0x531C, - 1792: 0x531E, - 1793: 0x531F, - 1794: 0x5325, - 1795: 0x5327, - 1796: 0x5328, - 1797: 0x5329, - 1798: 0x532B, - 1799: 0x532C, - 1800: 0x532D, - 1801: 0x5330, - 1802: 0x5332, - 1803: 0x5335, - 1804: 0x533C, - 1805: 0x533D, - 1806: 0x533E, - 1807: 0x5342, - 1808: 0x534C, - 1809: 0x534B, - 1810: 0x5359, - 1811: 0x535B, - 1812: 0x5361, - 1813: 0x5363, - 1814: 0x5365, - 1815: 0x536C, - 1816: 0x536D, - 1817: 0x5372, - 1818: 0x5379, - 1819: 0x537E, - 1820: 0x5383, - 1821: 0x5387, - 1822: 0x5388, - 1823: 0x538E, - 1824: 0x5393, - 1825: 0x5394, - 1826: 0x5399, - 1827: 0x539D, - 1828: 0x53A1, - 1829: 0x53A4, - 1830: 0x53AA, - 1831: 0x53AB, - 1832: 0x53AF, - 1833: 0x53B2, - 1834: 0x53B4, - 1835: 0x53B5, - 1836: 0x53B7, - 1837: 0x53B8, - 1838: 0x53BA, - 1839: 0x53BD, - 1840: 0x53C0, - 1841: 0x53C5, - 1842: 0x53CF, - 1843: 0x53D2, - 1844: 0x53D3, - 1845: 0x53D5, - 1846: 0x53DA, - 1847: 0x53DD, - 1848: 0x53DE, - 1849: 0x53E0, - 1850: 0x53E6, - 1851: 0x53E7, - 1852: 0x53F5, - 1853: 0x5402, - 1854: 0x5413, - 1855: 0x541A, - 1856: 0x5421, - 1857: 0x5427, - 1858: 0x5428, - 1859: 0x542A, - 1860: 0x542F, - 1861: 0x5431, - 1862: 0x5434, - 1863: 0x5435, - 1864: 0x5443, - 1865: 0x5444, - 1866: 0x5447, - 1867: 0x544D, - 1868: 0x544F, - 1869: 0x545E, - 1870: 0x5462, - 1871: 0x5464, - 1872: 0x5466, - 1873: 0x5467, - 1874: 0x5469, - 1875: 0x546B, - 1876: 0x546D, - 1877: 0x546E, - 1878: 0x5474, - 1879: 0x547F, - 1880: 0x5481, - 1881: 0x5483, - 1882: 0x5485, - 1883: 0x5488, - 1884: 0x5489, - 1885: 0x548D, - 1886: 0x5491, - 1887: 0x5495, - 1888: 0x5496, - 1889: 0x549C, - 1890: 0x549F, - 1891: 0x54A1, - 1892: 0x54A6, - 1893: 0x54A7, - 1894: 0x54A9, - 1895: 0x54AA, - 1896: 0x54AD, - 1897: 0x54AE, - 1898: 0x54B1, - 1899: 0x54B7, - 1900: 0x54B9, - 1901: 0x54BA, - 1902: 0x54BB, - 1903: 0x54BF, - 1904: 0x54C6, - 1905: 0x54CA, - 1906: 0x54CD, - 1907: 0x54CE, - 1908: 0x54E0, - 1909: 0x54EA, - 1910: 0x54EC, - 1911: 0x54EF, - 1912: 0x54F6, - 1913: 0x54FC, - 1914: 0x54FE, - 1915: 0x54FF, - 1916: 0x5500, - 1917: 0x5501, - 1918: 0x5505, - 1919: 0x5508, - 1920: 0x5509, - 1921: 0x550C, - 1922: 0x550D, - 1923: 0x550E, - 1924: 0x5515, - 1925: 0x552A, - 1926: 0x552B, - 1927: 0x5532, - 1928: 0x5535, - 1929: 0x5536, - 1930: 0x553B, - 1931: 0x553C, - 1932: 0x553D, - 1933: 0x5541, - 1934: 0x5547, - 1935: 0x5549, - 1936: 0x554A, - 1937: 0x554D, - 1938: 0x5550, - 1939: 0x5551, - 1940: 0x5558, - 1941: 0x555A, - 1942: 0x555B, - 1943: 0x555E, - 1944: 0x5560, - 1945: 0x5561, - 1946: 0x5564, - 1947: 0x5566, - 1948: 0x557F, - 1949: 0x5581, - 1950: 0x5582, - 1951: 0x5586, - 1952: 0x5588, - 1953: 0x558E, - 1954: 0x558F, - 1955: 0x5591, - 1956: 0x5592, - 1957: 0x5593, - 1958: 0x5594, - 1959: 0x5597, - 1960: 0x55A3, - 1961: 0x55A4, - 1962: 0x55AD, - 1963: 0x55B2, - 1964: 0x55BF, - 1965: 0x55C1, - 1966: 0x55C3, - 1967: 0x55C6, - 1968: 0x55C9, - 1969: 0x55CB, - 1970: 0x55CC, - 1971: 0x55CE, - 1972: 0x55D1, - 1973: 0x55D2, - 1974: 0x55D3, - 1975: 0x55D7, - 1976: 0x55D8, - 1977: 0x55DB, - 1978: 0x55DE, - 1979: 0x55E2, - 1980: 0x55E9, - 1981: 0x55F6, - 1982: 0x55FF, - 1983: 0x5605, - 1984: 0x5608, - 1985: 0x560A, - 1986: 0x560D, - 1987: 0x560E, - 1988: 0x560F, - 1989: 0x5610, - 1990: 0x5611, - 1991: 0x5612, - 1992: 0x5619, - 1993: 0x562C, - 1994: 0x5630, - 1995: 0x5633, - 1996: 0x5635, - 1997: 0x5637, - 1998: 0x5639, - 1999: 0x563B, - 2000: 0x563C, - 2001: 0x563D, - 2002: 0x563F, - 2003: 0x5640, - 2004: 0x5641, - 2005: 0x5643, - 2006: 0x5644, - 2007: 0x5646, - 2008: 0x5649, - 2009: 0x564B, - 2010: 0x564D, - 2011: 0x564F, - 2012: 0x5654, - 2013: 0x565E, - 2014: 0x5660, - 2015: 0x5661, - 2016: 0x5662, - 2017: 0x5663, - 2018: 0x5666, - 2019: 0x5669, - 2020: 0x566D, - 2021: 0x566F, - 2022: 0x5671, - 2023: 0x5672, - 2024: 0x5675, - 2025: 0x5684, - 2026: 0x5685, - 2027: 0x5688, - 2028: 0x568B, - 2029: 0x568C, - 2030: 0x5695, - 2031: 0x5699, - 2032: 0x569A, - 2033: 0x569D, - 2034: 0x569E, - 2035: 0x569F, - 2036: 0x56A6, - 2037: 0x56A7, - 2038: 0x56A8, - 2039: 0x56A9, - 2040: 0x56AB, - 2041: 0x56AC, - 2042: 0x56AD, - 2043: 0x56B1, - 2044: 0x56B3, - 2045: 0x56B7, - 2046: 0x56BE, - 2047: 0x56C5, - 2048: 0x56C9, - 2049: 0x56CA, - 2050: 0x56CB, - 2051: 0x56CF, - 2052: 0x56D0, - 2053: 0x56CC, - 2054: 0x56CD, - 2055: 0x56D9, - 2056: 0x56DC, - 2057: 0x56DD, - 2058: 0x56DF, - 2059: 0x56E1, - 2060: 0x56E4, - 2061: 0x56E5, - 2062: 0x56E6, - 2063: 0x56E7, - 2064: 0x56E8, - 2065: 0x56F1, - 2066: 0x56EB, - 2067: 0x56ED, - 2068: 0x56F6, - 2069: 0x56F7, - 2070: 0x5701, - 2071: 0x5702, - 2072: 0x5707, - 2073: 0x570A, - 2074: 0x570C, - 2075: 0x5711, - 2076: 0x5715, - 2077: 0x571A, - 2078: 0x571B, - 2079: 0x571D, - 2080: 0x5720, - 2081: 0x5722, - 2082: 0x5723, - 2083: 0x5724, - 2084: 0x5725, - 2085: 0x5729, - 2086: 0x572A, - 2087: 0x572C, - 2088: 0x572E, - 2089: 0x572F, - 2090: 0x5733, - 2091: 0x5734, - 2092: 0x573D, - 2093: 0x573E, - 2094: 0x573F, - 2095: 0x5745, - 2096: 0x5746, - 2097: 0x574C, - 2098: 0x574D, - 2099: 0x5752, - 2100: 0x5762, - 2101: 0x5765, - 2102: 0x5767, - 2103: 0x5768, - 2104: 0x576B, - 2105: 0x576D, - 2106: 0x576E, - 2107: 0x576F, - 2108: 0x5770, - 2109: 0x5771, - 2110: 0x5773, - 2111: 0x5774, - 2112: 0x5775, - 2113: 0x5777, - 2114: 0x5779, - 2115: 0x577A, - 2116: 0x577B, - 2117: 0x577C, - 2118: 0x577E, - 2119: 0x5781, - 2120: 0x5783, - 2121: 0x578C, - 2122: 0x5794, - 2123: 0x5797, - 2124: 0x5799, - 2125: 0x579A, - 2126: 0x579C, - 2127: 0x579D, - 2128: 0x579E, - 2129: 0x579F, - 2130: 0x57A1, - 2131: 0x5795, - 2132: 0x57A7, - 2133: 0x57A8, - 2134: 0x57A9, - 2135: 0x57AC, - 2136: 0x57B8, - 2137: 0x57BD, - 2138: 0x57C7, - 2139: 0x57C8, - 2140: 0x57CC, - 2141: 0x57CF, - 2142: 0x57D5, - 2143: 0x57DD, - 2144: 0x57DE, - 2145: 0x57E4, - 2146: 0x57E6, - 2147: 0x57E7, - 2148: 0x57E9, - 2149: 0x57ED, - 2150: 0x57F0, - 2151: 0x57F5, - 2152: 0x57F6, - 2153: 0x57F8, - 2154: 0x57FD, - 2155: 0x57FE, - 2156: 0x57FF, - 2157: 0x5803, - 2158: 0x5804, - 2159: 0x5808, - 2160: 0x5809, - 2161: 0x57E1, - 2162: 0x580C, - 2163: 0x580D, - 2164: 0x581B, - 2165: 0x581E, - 2166: 0x581F, - 2167: 0x5820, - 2168: 0x5826, - 2169: 0x5827, - 2170: 0x582D, - 2171: 0x5832, - 2172: 0x5839, - 2173: 0x583F, - 2174: 0x5849, - 2175: 0x584C, - 2176: 0x584D, - 2177: 0x584F, - 2178: 0x5850, - 2179: 0x5855, - 2180: 0x585F, - 2181: 0x5861, - 2182: 0x5864, - 2183: 0x5867, - 2184: 0x5868, - 2185: 0x5878, - 2186: 0x587C, - 2187: 0x587F, - 2188: 0x5880, - 2189: 0x5881, - 2190: 0x5887, - 2191: 0x5888, - 2192: 0x5889, - 2193: 0x588A, - 2194: 0x588C, - 2195: 0x588D, - 2196: 0x588F, - 2197: 0x5890, - 2198: 0x5894, - 2199: 0x5896, - 2200: 0x589D, - 2201: 0x58A0, - 2202: 0x58A1, - 2203: 0x58A2, - 2204: 0x58A6, - 2205: 0x58A9, - 2206: 0x58B1, - 2207: 0x58B2, - 2208: 0x58C4, - 2209: 0x58BC, - 2210: 0x58C2, - 2211: 0x58C8, - 2212: 0x58CD, - 2213: 0x58CE, - 2214: 0x58D0, - 2215: 0x58D2, - 2216: 0x58D4, - 2217: 0x58D6, - 2218: 0x58DA, - 2219: 0x58DD, - 2220: 0x58E1, - 2221: 0x58E2, - 2222: 0x58E9, - 2223: 0x58F3, - 2224: 0x5905, - 2225: 0x5906, - 2226: 0x590B, - 2227: 0x590C, - 2228: 0x5912, - 2229: 0x5913, - 2230: 0x5914, - 2231: 0x8641, - 2232: 0x591D, - 2233: 0x5921, - 2234: 0x5923, - 2235: 0x5924, - 2236: 0x5928, - 2237: 0x592F, - 2238: 0x5930, - 2239: 0x5933, - 2240: 0x5935, - 2241: 0x5936, - 2242: 0x593F, - 2243: 0x5943, - 2244: 0x5946, - 2245: 0x5952, - 2246: 0x5953, - 2247: 0x5959, - 2248: 0x595B, - 2249: 0x595D, - 2250: 0x595E, - 2251: 0x595F, - 2252: 0x5961, - 2253: 0x5963, - 2254: 0x596B, - 2255: 0x596D, - 2256: 0x596F, - 2257: 0x5972, - 2258: 0x5975, - 2259: 0x5976, - 2260: 0x5979, - 2261: 0x597B, - 2262: 0x597C, - 2263: 0x598B, - 2264: 0x598C, - 2265: 0x598E, - 2266: 0x5992, - 2267: 0x5995, - 2268: 0x5997, - 2269: 0x599F, - 2270: 0x59A4, - 2271: 0x59A7, - 2272: 0x59AD, - 2273: 0x59AE, - 2274: 0x59AF, - 2275: 0x59B0, - 2276: 0x59B3, - 2277: 0x59B7, - 2278: 0x59BA, - 2279: 0x59BC, - 2280: 0x59C1, - 2281: 0x59C3, - 2282: 0x59C4, - 2283: 0x59C8, - 2284: 0x59CA, - 2285: 0x59CD, - 2286: 0x59D2, - 2287: 0x59DD, - 2288: 0x59DE, - 2289: 0x59DF, - 2290: 0x59E3, - 2291: 0x59E4, - 2292: 0x59E7, - 2293: 0x59EE, - 2294: 0x59EF, - 2295: 0x59F1, - 2296: 0x59F2, - 2297: 0x59F4, - 2298: 0x59F7, - 2299: 0x5A00, - 2300: 0x5A04, - 2301: 0x5A0C, - 2302: 0x5A0D, - 2303: 0x5A0E, - 2304: 0x5A12, - 2305: 0x5A13, - 2306: 0x5A1E, - 2307: 0x5A23, - 2308: 0x5A24, - 2309: 0x5A27, - 2310: 0x5A28, - 2311: 0x5A2A, - 2312: 0x5A2D, - 2313: 0x5A30, - 2314: 0x5A44, - 2315: 0x5A45, - 2316: 0x5A47, - 2317: 0x5A48, - 2318: 0x5A4C, - 2319: 0x5A50, - 2320: 0x5A55, - 2321: 0x5A5E, - 2322: 0x5A63, - 2323: 0x5A65, - 2324: 0x5A67, - 2325: 0x5A6D, - 2326: 0x5A77, - 2327: 0x5A7A, - 2328: 0x5A7B, - 2329: 0x5A7E, - 2330: 0x5A8B, - 2331: 0x5A90, - 2332: 0x5A93, - 2333: 0x5A96, - 2334: 0x5A99, - 2335: 0x5A9C, - 2336: 0x5A9E, - 2337: 0x5A9F, - 2338: 0x5AA0, - 2339: 0x5AA2, - 2340: 0x5AA7, - 2341: 0x5AAC, - 2342: 0x5AB1, - 2343: 0x5AB2, - 2344: 0x5AB3, - 2345: 0x5AB5, - 2346: 0x5AB8, - 2347: 0x5ABA, - 2348: 0x5ABB, - 2349: 0x5ABF, - 2350: 0x5AC4, - 2351: 0x5AC6, - 2352: 0x5AC8, - 2353: 0x5ACF, - 2354: 0x5ADA, - 2355: 0x5ADC, - 2356: 0x5AE0, - 2357: 0x5AE5, - 2358: 0x5AEA, - 2359: 0x5AEE, - 2360: 0x5AF5, - 2361: 0x5AF6, - 2362: 0x5AFD, - 2363: 0x5B00, - 2364: 0x5B01, - 2365: 0x5B08, - 2366: 0x5B17, - 2367: 0x5B34, - 2368: 0x5B19, - 2369: 0x5B1B, - 2370: 0x5B1D, - 2371: 0x5B21, - 2372: 0x5B25, - 2373: 0x5B2D, - 2374: 0x5B38, - 2375: 0x5B41, - 2376: 0x5B4B, - 2377: 0x5B4C, - 2378: 0x5B52, - 2379: 0x5B56, - 2380: 0x5B5E, - 2381: 0x5B68, - 2382: 0x5B6E, - 2383: 0x5B6F, - 2384: 0x5B7C, - 2385: 0x5B7D, - 2386: 0x5B7E, - 2387: 0x5B7F, - 2388: 0x5B81, - 2389: 0x5B84, - 2390: 0x5B86, - 2391: 0x5B8A, - 2392: 0x5B8E, - 2393: 0x5B90, - 2394: 0x5B91, - 2395: 0x5B93, - 2396: 0x5B94, - 2397: 0x5B96, - 2398: 0x5BA8, - 2399: 0x5BA9, - 2400: 0x5BAC, - 2401: 0x5BAD, - 2402: 0x5BAF, - 2403: 0x5BB1, - 2404: 0x5BB2, - 2405: 0x5BB7, - 2406: 0x5BBA, - 2407: 0x5BBC, - 2408: 0x5BC0, - 2409: 0x5BC1, - 2410: 0x5BCD, - 2411: 0x5BCF, - 2412: 0x5BD6, - 2413: 0x5BD7, - 2414: 0x5BD8, - 2415: 0x5BD9, - 2416: 0x5BDA, - 2417: 0x5BE0, - 2418: 0x5BEF, - 2419: 0x5BF1, - 2420: 0x5BF4, - 2421: 0x5BFD, - 2422: 0x5C0C, - 2423: 0x5C17, - 2424: 0x5C1E, - 2425: 0x5C1F, - 2426: 0x5C23, - 2427: 0x5C26, - 2428: 0x5C29, - 2429: 0x5C2B, - 2430: 0x5C2C, - 2431: 0x5C2E, - 2432: 0x5C30, - 2433: 0x5C32, - 2434: 0x5C35, - 2435: 0x5C36, - 2436: 0x5C59, - 2437: 0x5C5A, - 2438: 0x5C5C, - 2439: 0x5C62, - 2440: 0x5C63, - 2441: 0x5C67, - 2442: 0x5C68, - 2443: 0x5C69, - 2444: 0x5C6D, - 2445: 0x5C70, - 2446: 0x5C74, - 2447: 0x5C75, - 2448: 0x5C7A, - 2449: 0x5C7B, - 2450: 0x5C7C, - 2451: 0x5C7D, - 2452: 0x5C87, - 2453: 0x5C88, - 2454: 0x5C8A, - 2455: 0x5C8F, - 2456: 0x5C92, - 2457: 0x5C9D, - 2458: 0x5C9F, - 2459: 0x5CA0, - 2460: 0x5CA2, - 2461: 0x5CA3, - 2462: 0x5CA6, - 2463: 0x5CAA, - 2464: 0x5CB2, - 2465: 0x5CB4, - 2466: 0x5CB5, - 2467: 0x5CBA, - 2468: 0x5CC9, - 2469: 0x5CCB, - 2470: 0x5CD2, - 2471: 0x5CDD, - 2472: 0x5CD7, - 2473: 0x5CEE, - 2474: 0x5CF1, - 2475: 0x5CF2, - 2476: 0x5CF4, - 2477: 0x5D01, - 2478: 0x5D06, - 2479: 0x5D0D, - 2480: 0x5D12, - 2481: 0x5D2B, - 2482: 0x5D23, - 2483: 0x5D24, - 2484: 0x5D26, - 2485: 0x5D27, - 2486: 0x5D31, - 2487: 0x5D34, - 2488: 0x5D39, - 2489: 0x5D3D, - 2490: 0x5D3F, - 2491: 0x5D42, - 2492: 0x5D43, - 2493: 0x5D46, - 2494: 0x5D48, - 2495: 0x5D55, - 2496: 0x5D51, - 2497: 0x5D59, - 2498: 0x5D4A, - 2499: 0x5D5F, - 2500: 0x5D60, - 2501: 0x5D61, - 2502: 0x5D62, - 2503: 0x5D64, - 2504: 0x5D6A, - 2505: 0x5D6D, - 2506: 0x5D70, - 2507: 0x5D79, - 2508: 0x5D7A, - 2509: 0x5D7E, - 2510: 0x5D7F, - 2511: 0x5D81, - 2512: 0x5D83, - 2513: 0x5D88, - 2514: 0x5D8A, - 2515: 0x5D92, - 2516: 0x5D93, - 2517: 0x5D94, - 2518: 0x5D95, - 2519: 0x5D99, - 2520: 0x5D9B, - 2521: 0x5D9F, - 2522: 0x5DA0, - 2523: 0x5DA7, - 2524: 0x5DAB, - 2525: 0x5DB0, - 2526: 0x5DB4, - 2527: 0x5DB8, - 2528: 0x5DB9, - 2529: 0x5DC3, - 2530: 0x5DC7, - 2531: 0x5DCB, - 2532: 0x5DD0, - 2533: 0x5DCE, - 2534: 0x5DD8, - 2535: 0x5DD9, - 2536: 0x5DE0, - 2537: 0x5DE4, - 2538: 0x5DE9, - 2539: 0x5DF8, - 2540: 0x5DF9, - 2541: 0x5E00, - 2542: 0x5E07, - 2543: 0x5E0D, - 2544: 0x5E12, - 2545: 0x5E14, - 2546: 0x5E15, - 2547: 0x5E18, - 2548: 0x5E1F, - 2549: 0x5E20, - 2550: 0x5E2E, - 2551: 0x5E28, - 2552: 0x5E32, - 2553: 0x5E35, - 2554: 0x5E3E, - 2555: 0x5E4B, - 2556: 0x5E50, - 2557: 0x5E49, - 2558: 0x5E51, - 2559: 0x5E56, - 2560: 0x5E58, - 2561: 0x5E5B, - 2562: 0x5E5C, - 2563: 0x5E5E, - 2564: 0x5E68, - 2565: 0x5E6A, - 2566: 0x5E6B, - 2567: 0x5E6C, - 2568: 0x5E6D, - 2569: 0x5E6E, - 2570: 0x5E70, - 2571: 0x5E80, - 2572: 0x5E8B, - 2573: 0x5E8E, - 2574: 0x5EA2, - 2575: 0x5EA4, - 2576: 0x5EA5, - 2577: 0x5EA8, - 2578: 0x5EAA, - 2579: 0x5EAC, - 2580: 0x5EB1, - 2581: 0x5EB3, - 2582: 0x5EBD, - 2583: 0x5EBE, - 2584: 0x5EBF, - 2585: 0x5EC6, - 2586: 0x5ECC, - 2587: 0x5ECB, - 2588: 0x5ECE, - 2589: 0x5ED1, - 2590: 0x5ED2, - 2591: 0x5ED4, - 2592: 0x5ED5, - 2593: 0x5EDC, - 2594: 0x5EDE, - 2595: 0x5EE5, - 2596: 0x5EEB, - 2597: 0x5F02, - 2598: 0x5F06, - 2599: 0x5F07, - 2600: 0x5F08, - 2601: 0x5F0E, - 2602: 0x5F19, - 2603: 0x5F1C, - 2604: 0x5F1D, - 2605: 0x5F21, - 2606: 0x5F22, - 2607: 0x5F23, - 2608: 0x5F24, - 2609: 0x5F28, - 2610: 0x5F2B, - 2611: 0x5F2C, - 2612: 0x5F2E, - 2613: 0x5F30, - 2614: 0x5F34, - 2615: 0x5F36, - 2616: 0x5F3B, - 2617: 0x5F3D, - 2618: 0x5F3F, - 2619: 0x5F40, - 2620: 0x5F44, - 2621: 0x5F45, - 2622: 0x5F47, - 2623: 0x5F4D, - 2624: 0x5F50, - 2625: 0x5F54, - 2626: 0x5F58, - 2627: 0x5F5B, - 2628: 0x5F60, - 2629: 0x5F63, - 2630: 0x5F64, - 2631: 0x5F67, - 2632: 0x5F6F, - 2633: 0x5F72, - 2634: 0x5F74, - 2635: 0x5F75, - 2636: 0x5F78, - 2637: 0x5F7A, - 2638: 0x5F7D, - 2639: 0x5F7E, - 2640: 0x5F89, - 2641: 0x5F8D, - 2642: 0x5F8F, - 2643: 0x5F96, - 2644: 0x5F9C, - 2645: 0x5F9D, - 2646: 0x5FA2, - 2647: 0x5FA7, - 2648: 0x5FAB, - 2649: 0x5FA4, - 2650: 0x5FAC, - 2651: 0x5FAF, - 2652: 0x5FB0, - 2653: 0x5FB1, - 2654: 0x5FB8, - 2655: 0x5FC4, - 2656: 0x5FC7, - 2657: 0x5FC8, - 2658: 0x5FC9, - 2659: 0x5FCB, - 2660: 0x5FD0, - 2661: 0x5FD1, - 2662: 0x5FD2, - 2663: 0x5FD3, - 2664: 0x5FD4, - 2665: 0x5FDE, - 2666: 0x5FE1, - 2667: 0x5FE2, - 2668: 0x5FE8, - 2669: 0x5FE9, - 2670: 0x5FEA, - 2671: 0x5FEC, - 2672: 0x5FED, - 2673: 0x5FEE, - 2674: 0x5FEF, - 2675: 0x5FF2, - 2676: 0x5FF3, - 2677: 0x5FF6, - 2678: 0x5FFA, - 2679: 0x5FFC, - 2680: 0x6007, - 2681: 0x600A, - 2682: 0x600D, - 2683: 0x6013, - 2684: 0x6014, - 2685: 0x6017, - 2686: 0x6018, - 2687: 0x601A, - 2688: 0x601F, - 2689: 0x6024, - 2690: 0x602D, - 2691: 0x6033, - 2692: 0x6035, - 2693: 0x6040, - 2694: 0x6047, - 2695: 0x6048, - 2696: 0x6049, - 2697: 0x604C, - 2698: 0x6051, - 2699: 0x6054, - 2700: 0x6056, - 2701: 0x6057, - 2702: 0x605D, - 2703: 0x6061, - 2704: 0x6067, - 2705: 0x6071, - 2706: 0x607E, - 2707: 0x607F, - 2708: 0x6082, - 2709: 0x6086, - 2710: 0x6088, - 2711: 0x608A, - 2712: 0x608E, - 2713: 0x6091, - 2714: 0x6093, - 2715: 0x6095, - 2716: 0x6098, - 2717: 0x609D, - 2718: 0x609E, - 2719: 0x60A2, - 2720: 0x60A4, - 2721: 0x60A5, - 2722: 0x60A8, - 2723: 0x60B0, - 2724: 0x60B1, - 2725: 0x60B7, - 2726: 0x60BB, - 2727: 0x60BE, - 2728: 0x60C2, - 2729: 0x60C4, - 2730: 0x60C8, - 2731: 0x60C9, - 2732: 0x60CA, - 2733: 0x60CB, - 2734: 0x60CE, - 2735: 0x60CF, - 2736: 0x60D4, - 2737: 0x60D5, - 2738: 0x60D9, - 2739: 0x60DB, - 2740: 0x60DD, - 2741: 0x60DE, - 2742: 0x60E2, - 2743: 0x60E5, - 2744: 0x60F2, - 2745: 0x60F5, - 2746: 0x60F8, - 2747: 0x60FC, - 2748: 0x60FD, - 2749: 0x6102, - 2750: 0x6107, - 2751: 0x610A, - 2752: 0x610C, - 2753: 0x6110, - 2754: 0x6111, - 2755: 0x6112, - 2756: 0x6113, - 2757: 0x6114, - 2758: 0x6116, - 2759: 0x6117, - 2760: 0x6119, - 2761: 0x611C, - 2762: 0x611E, - 2763: 0x6122, - 2764: 0x612A, - 2765: 0x612B, - 2766: 0x6130, - 2767: 0x6131, - 2768: 0x6135, - 2769: 0x6136, - 2770: 0x6137, - 2771: 0x6139, - 2772: 0x6141, - 2773: 0x6145, - 2774: 0x6146, - 2775: 0x6149, - 2776: 0x615E, - 2777: 0x6160, - 2778: 0x616C, - 2779: 0x6172, - 2780: 0x6178, - 2781: 0x617B, - 2782: 0x617C, - 2783: 0x617F, - 2784: 0x6180, - 2785: 0x6181, - 2786: 0x6183, - 2787: 0x6184, - 2788: 0x618B, - 2789: 0x618D, - 2790: 0x6192, - 2791: 0x6193, - 2792: 0x6197, - 2793: 0x6198, - 2794: 0x619C, - 2795: 0x619D, - 2796: 0x619F, - 2797: 0x61A0, - 2798: 0x61A5, - 2799: 0x61A8, - 2800: 0x61AA, - 2801: 0x61AD, - 2802: 0x61B8, - 2803: 0x61B9, - 2804: 0x61BC, - 2805: 0x61C0, - 2806: 0x61C1, - 2807: 0x61C2, - 2808: 0x61CE, - 2809: 0x61CF, - 2810: 0x61D5, - 2811: 0x61DC, - 2812: 0x61DD, - 2813: 0x61DE, - 2814: 0x61DF, - 2815: 0x61E1, - 2816: 0x61E2, - 2817: 0x61E7, - 2818: 0x61E9, - 2819: 0x61E5, - 2820: 0x61EC, - 2821: 0x61ED, - 2822: 0x61EF, - 2823: 0x6201, - 2824: 0x6203, - 2825: 0x6204, - 2826: 0x6207, - 2827: 0x6213, - 2828: 0x6215, - 2829: 0x621C, - 2830: 0x6220, - 2831: 0x6222, - 2832: 0x6223, - 2833: 0x6227, - 2834: 0x6229, - 2835: 0x622B, - 2836: 0x6239, - 2837: 0x623D, - 2838: 0x6242, - 2839: 0x6243, - 2840: 0x6244, - 2841: 0x6246, - 2842: 0x624C, - 2843: 0x6250, - 2844: 0x6251, - 2845: 0x6252, - 2846: 0x6254, - 2847: 0x6256, - 2848: 0x625A, - 2849: 0x625C, - 2850: 0x6264, - 2851: 0x626D, - 2852: 0x626F, - 2853: 0x6273, - 2854: 0x627A, - 2855: 0x627D, - 2856: 0x628D, - 2857: 0x628E, - 2858: 0x628F, - 2859: 0x6290, - 2860: 0x62A6, - 2861: 0x62A8, - 2862: 0x62B3, - 2863: 0x62B6, - 2864: 0x62B7, - 2865: 0x62BA, - 2866: 0x62BE, - 2867: 0x62BF, - 2868: 0x62C4, - 2869: 0x62CE, - 2870: 0x62D5, - 2871: 0x62D6, - 2872: 0x62DA, - 2873: 0x62EA, - 2874: 0x62F2, - 2875: 0x62F4, - 2876: 0x62FC, - 2877: 0x62FD, - 2878: 0x6303, - 2879: 0x6304, - 2880: 0x630A, - 2881: 0x630B, - 2882: 0x630D, - 2883: 0x6310, - 2884: 0x6313, - 2885: 0x6316, - 2886: 0x6318, - 2887: 0x6329, - 2888: 0x632A, - 2889: 0x632D, - 2890: 0x6335, - 2891: 0x6336, - 2892: 0x6339, - 2893: 0x633C, - 2894: 0x6341, - 2895: 0x6342, - 2896: 0x6343, - 2897: 0x6344, - 2898: 0x6346, - 2899: 0x634A, - 2900: 0x634B, - 2901: 0x634E, - 2902: 0x6352, - 2903: 0x6353, - 2904: 0x6354, - 2905: 0x6358, - 2906: 0x635B, - 2907: 0x6365, - 2908: 0x6366, - 2909: 0x636C, - 2910: 0x636D, - 2911: 0x6371, - 2912: 0x6374, - 2913: 0x6375, - 2914: 0x6378, - 2915: 0x637C, - 2916: 0x637D, - 2917: 0x637F, - 2918: 0x6382, - 2919: 0x6384, - 2920: 0x6387, - 2921: 0x638A, - 2922: 0x6390, - 2923: 0x6394, - 2924: 0x6395, - 2925: 0x6399, - 2926: 0x639A, - 2927: 0x639E, - 2928: 0x63A4, - 2929: 0x63A6, - 2930: 0x63AD, - 2931: 0x63AE, - 2932: 0x63AF, - 2933: 0x63BD, - 2934: 0x63C1, - 2935: 0x63C5, - 2936: 0x63C8, - 2937: 0x63CE, - 2938: 0x63D1, - 2939: 0x63D3, - 2940: 0x63D4, - 2941: 0x63D5, - 2942: 0x63DC, - 2943: 0x63E0, - 2944: 0x63E5, - 2945: 0x63EA, - 2946: 0x63EC, - 2947: 0x63F2, - 2948: 0x63F3, - 2949: 0x63F5, - 2950: 0x63F8, - 2951: 0x63F9, - 2952: 0x6409, - 2953: 0x640A, - 2954: 0x6410, - 2955: 0x6412, - 2956: 0x6414, - 2957: 0x6418, - 2958: 0x641E, - 2959: 0x6420, - 2960: 0x6422, - 2961: 0x6424, - 2962: 0x6425, - 2963: 0x6429, - 2964: 0x642A, - 2965: 0x642F, - 2966: 0x6430, - 2967: 0x6435, - 2968: 0x643D, - 2969: 0x643F, - 2970: 0x644B, - 2971: 0x644F, - 2972: 0x6451, - 2973: 0x6452, - 2974: 0x6453, - 2975: 0x6454, - 2976: 0x645A, - 2977: 0x645B, - 2978: 0x645C, - 2979: 0x645D, - 2980: 0x645F, - 2981: 0x6460, - 2982: 0x6461, - 2983: 0x6463, - 2984: 0x646D, - 2985: 0x6473, - 2986: 0x6474, - 2987: 0x647B, - 2988: 0x647D, - 2989: 0x6485, - 2990: 0x6487, - 2991: 0x648F, - 2992: 0x6490, - 2993: 0x6491, - 2994: 0x6498, - 2995: 0x6499, - 2996: 0x649B, - 2997: 0x649D, - 2998: 0x649F, - 2999: 0x64A1, - 3000: 0x64A3, - 3001: 0x64A6, - 3002: 0x64A8, - 3003: 0x64AC, - 3004: 0x64B3, - 3005: 0x64BD, - 3006: 0x64BE, - 3007: 0x64BF, - 3008: 0x64C4, - 3009: 0x64C9, - 3010: 0x64CA, - 3011: 0x64CB, - 3012: 0x64CC, - 3013: 0x64CE, - 3014: 0x64D0, - 3015: 0x64D1, - 3016: 0x64D5, - 3017: 0x64D7, - 3018: 0x64E4, - 3019: 0x64E5, - 3020: 0x64E9, - 3021: 0x64EA, - 3022: 0x64ED, - 3023: 0x64F0, - 3024: 0x64F5, - 3025: 0x64F7, - 3026: 0x64FB, - 3027: 0x64FF, - 3028: 0x6501, - 3029: 0x6504, - 3030: 0x6508, - 3031: 0x6509, - 3032: 0x650A, - 3033: 0x650F, - 3034: 0x6513, - 3035: 0x6514, - 3036: 0x6516, - 3037: 0x6519, - 3038: 0x651B, - 3039: 0x651E, - 3040: 0x651F, - 3041: 0x6522, - 3042: 0x6526, - 3043: 0x6529, - 3044: 0x652E, - 3045: 0x6531, - 3046: 0x653A, - 3047: 0x653C, - 3048: 0x653D, - 3049: 0x6543, - 3050: 0x6547, - 3051: 0x6549, - 3052: 0x6550, - 3053: 0x6552, - 3054: 0x6554, - 3055: 0x655F, - 3056: 0x6560, - 3057: 0x6567, - 3058: 0x656B, - 3059: 0x657A, - 3060: 0x657D, - 3061: 0x6581, - 3062: 0x6585, - 3063: 0x658A, - 3064: 0x6592, - 3065: 0x6595, - 3066: 0x6598, - 3067: 0x659D, - 3068: 0x65A0, - 3069: 0x65A3, - 3070: 0x65A6, - 3071: 0x65AE, - 3072: 0x65B2, - 3073: 0x65B3, - 3074: 0x65B4, - 3075: 0x65BF, - 3076: 0x65C2, - 3077: 0x65C8, - 3078: 0x65C9, - 3079: 0x65CE, - 3080: 0x65D0, - 3081: 0x65D4, - 3082: 0x65D6, - 3083: 0x65D8, - 3084: 0x65DF, - 3085: 0x65F0, - 3086: 0x65F2, - 3087: 0x65F4, - 3088: 0x65F5, - 3089: 0x65F9, - 3090: 0x65FE, - 3091: 0x65FF, - 3092: 0x6600, - 3093: 0x6604, - 3094: 0x6608, - 3095: 0x6609, - 3096: 0x660D, - 3097: 0x6611, - 3098: 0x6612, - 3099: 0x6615, - 3100: 0x6616, - 3101: 0x661D, - 3102: 0x661E, - 3103: 0x6621, - 3104: 0x6622, - 3105: 0x6623, - 3106: 0x6624, - 3107: 0x6626, - 3108: 0x6629, - 3109: 0x662A, - 3110: 0x662B, - 3111: 0x662C, - 3112: 0x662E, - 3113: 0x6630, - 3114: 0x6631, - 3115: 0x6633, - 3116: 0x6639, - 3117: 0x6637, - 3118: 0x6640, - 3119: 0x6645, - 3120: 0x6646, - 3121: 0x664A, - 3122: 0x664C, - 3123: 0x6651, - 3124: 0x664E, - 3125: 0x6657, - 3126: 0x6658, - 3127: 0x6659, - 3128: 0x665B, - 3129: 0x665C, - 3130: 0x6660, - 3131: 0x6661, - 3132: 0x66FB, - 3133: 0x666A, - 3134: 0x666B, - 3135: 0x666C, - 3136: 0x667E, - 3137: 0x6673, - 3138: 0x6675, - 3139: 0x667F, - 3140: 0x6677, - 3141: 0x6678, - 3142: 0x6679, - 3143: 0x667B, - 3144: 0x6680, - 3145: 0x667C, - 3146: 0x668B, - 3147: 0x668C, - 3148: 0x668D, - 3149: 0x6690, - 3150: 0x6692, - 3151: 0x6699, - 3152: 0x669A, - 3153: 0x669B, - 3154: 0x669C, - 3155: 0x669F, - 3156: 0x66A0, - 3157: 0x66A4, - 3158: 0x66AD, - 3159: 0x66B1, - 3160: 0x66B2, - 3161: 0x66B5, - 3162: 0x66BB, - 3163: 0x66BF, - 3164: 0x66C0, - 3165: 0x66C2, - 3166: 0x66C3, - 3167: 0x66C8, - 3168: 0x66CC, - 3169: 0x66CE, - 3170: 0x66CF, - 3171: 0x66D4, - 3172: 0x66DB, - 3173: 0x66DF, - 3174: 0x66E8, - 3175: 0x66EB, - 3176: 0x66EC, - 3177: 0x66EE, - 3178: 0x66FA, - 3179: 0x6705, - 3180: 0x6707, - 3181: 0x670E, - 3182: 0x6713, - 3183: 0x6719, - 3184: 0x671C, - 3185: 0x6720, - 3186: 0x6722, - 3187: 0x6733, - 3188: 0x673E, - 3189: 0x6745, - 3190: 0x6747, - 3191: 0x6748, - 3192: 0x674C, - 3193: 0x6754, - 3194: 0x6755, - 3195: 0x675D, - 3196: 0x6766, - 3197: 0x676C, - 3198: 0x676E, - 3199: 0x6774, - 3200: 0x6776, - 3201: 0x677B, - 3202: 0x6781, - 3203: 0x6784, - 3204: 0x678E, - 3205: 0x678F, - 3206: 0x6791, - 3207: 0x6793, - 3208: 0x6796, - 3209: 0x6798, - 3210: 0x6799, - 3211: 0x679B, - 3212: 0x67B0, - 3213: 0x67B1, - 3214: 0x67B2, - 3215: 0x67B5, - 3216: 0x67BB, - 3217: 0x67BC, - 3218: 0x67BD, - 3219: 0x67F9, - 3220: 0x67C0, - 3221: 0x67C2, - 3222: 0x67C3, - 3223: 0x67C5, - 3224: 0x67C8, - 3225: 0x67C9, - 3226: 0x67D2, - 3227: 0x67D7, - 3228: 0x67D9, - 3229: 0x67DC, - 3230: 0x67E1, - 3231: 0x67E6, - 3232: 0x67F0, - 3233: 0x67F2, - 3234: 0x67F6, - 3235: 0x67F7, - 3236: 0x6852, - 3237: 0x6814, - 3238: 0x6819, - 3239: 0x681D, - 3240: 0x681F, - 3241: 0x6828, - 3242: 0x6827, - 3243: 0x682C, - 3244: 0x682D, - 3245: 0x682F, - 3246: 0x6830, - 3247: 0x6831, - 3248: 0x6833, - 3249: 0x683B, - 3250: 0x683F, - 3251: 0x6844, - 3252: 0x6845, - 3253: 0x684A, - 3254: 0x684C, - 3255: 0x6855, - 3256: 0x6857, - 3257: 0x6858, - 3258: 0x685B, - 3259: 0x686B, - 3260: 0x686E, - 3261: 0x686F, - 3262: 0x6870, - 3263: 0x6871, - 3264: 0x6872, - 3265: 0x6875, - 3266: 0x6879, - 3267: 0x687A, - 3268: 0x687B, - 3269: 0x687C, - 3270: 0x6882, - 3271: 0x6884, - 3272: 0x6886, - 3273: 0x6888, - 3274: 0x6896, - 3275: 0x6898, - 3276: 0x689A, - 3277: 0x689C, - 3278: 0x68A1, - 3279: 0x68A3, - 3280: 0x68A5, - 3281: 0x68A9, - 3282: 0x68AA, - 3283: 0x68AE, - 3284: 0x68B2, - 3285: 0x68BB, - 3286: 0x68C5, - 3287: 0x68C8, - 3288: 0x68CC, - 3289: 0x68CF, - 3290: 0x68D0, - 3291: 0x68D1, - 3292: 0x68D3, - 3293: 0x68D6, - 3294: 0x68D9, - 3295: 0x68DC, - 3296: 0x68DD, - 3297: 0x68E5, - 3298: 0x68E8, - 3299: 0x68EA, - 3300: 0x68EB, - 3301: 0x68EC, - 3302: 0x68ED, - 3303: 0x68F0, - 3304: 0x68F1, - 3305: 0x68F5, - 3306: 0x68F6, - 3307: 0x68FB, - 3308: 0x68FC, - 3309: 0x68FD, - 3310: 0x6906, - 3311: 0x6909, - 3312: 0x690A, - 3313: 0x6910, - 3314: 0x6911, - 3315: 0x6913, - 3316: 0x6916, - 3317: 0x6917, - 3318: 0x6931, - 3319: 0x6933, - 3320: 0x6935, - 3321: 0x6938, - 3322: 0x693B, - 3323: 0x6942, - 3324: 0x6945, - 3325: 0x6949, - 3326: 0x694E, - 3327: 0x6957, - 3328: 0x695B, - 3329: 0x6963, - 3330: 0x6964, - 3331: 0x6965, - 3332: 0x6966, - 3333: 0x6968, - 3334: 0x6969, - 3335: 0x696C, - 3336: 0x6970, - 3337: 0x6971, - 3338: 0x6972, - 3339: 0x697A, - 3340: 0x697B, - 3341: 0x697F, - 3342: 0x6980, - 3343: 0x698D, - 3344: 0x6992, - 3345: 0x6996, - 3346: 0x6998, - 3347: 0x69A1, - 3348: 0x69A5, - 3349: 0x69A6, - 3350: 0x69A8, - 3351: 0x69AB, - 3352: 0x69AD, - 3353: 0x69AF, - 3354: 0x69B7, - 3355: 0x69B8, - 3356: 0x69BA, - 3357: 0x69BC, - 3358: 0x69C5, - 3359: 0x69C8, - 3360: 0x69D1, - 3361: 0x69D6, - 3362: 0x69D7, - 3363: 0x69E2, - 3364: 0x69E5, - 3365: 0x69EE, - 3366: 0x69EF, - 3367: 0x69F1, - 3368: 0x69F3, - 3369: 0x69F5, - 3370: 0x69FE, - 3371: 0x6A00, - 3372: 0x6A01, - 3373: 0x6A03, - 3374: 0x6A0F, - 3375: 0x6A11, - 3376: 0x6A15, - 3377: 0x6A1A, - 3378: 0x6A1D, - 3379: 0x6A20, - 3380: 0x6A24, - 3381: 0x6A28, - 3382: 0x6A30, - 3383: 0x6A32, - 3384: 0x6A34, - 3385: 0x6A37, - 3386: 0x6A3B, - 3387: 0x6A3E, - 3388: 0x6A3F, - 3389: 0x6A45, - 3390: 0x6A46, - 3391: 0x6A49, - 3392: 0x6A4A, - 3393: 0x6A4E, - 3394: 0x6A50, - 3395: 0x6A51, - 3396: 0x6A52, - 3397: 0x6A55, - 3398: 0x6A56, - 3399: 0x6A5B, - 3400: 0x6A64, - 3401: 0x6A67, - 3402: 0x6A6A, - 3403: 0x6A71, - 3404: 0x6A73, - 3405: 0x6A7E, - 3406: 0x6A81, - 3407: 0x6A83, - 3408: 0x6A86, - 3409: 0x6A87, - 3410: 0x6A89, - 3411: 0x6A8B, - 3412: 0x6A91, - 3413: 0x6A9B, - 3414: 0x6A9D, - 3415: 0x6A9E, - 3416: 0x6A9F, - 3417: 0x6AA5, - 3418: 0x6AAB, - 3419: 0x6AAF, - 3420: 0x6AB0, - 3421: 0x6AB1, - 3422: 0x6AB4, - 3423: 0x6ABD, - 3424: 0x6ABE, - 3425: 0x6ABF, - 3426: 0x6AC6, - 3427: 0x6AC9, - 3428: 0x6AC8, - 3429: 0x6ACC, - 3430: 0x6AD0, - 3431: 0x6AD4, - 3432: 0x6AD5, - 3433: 0x6AD6, - 3434: 0x6ADC, - 3435: 0x6ADD, - 3436: 0x6AE4, - 3437: 0x6AE7, - 3438: 0x6AEC, - 3439: 0x6AF0, - 3440: 0x6AF1, - 3441: 0x6AF2, - 3442: 0x6AFC, - 3443: 0x6AFD, - 3444: 0x6B02, - 3445: 0x6B03, - 3446: 0x6B06, - 3447: 0x6B07, - 3448: 0x6B09, - 3449: 0x6B0F, - 3450: 0x6B10, - 3451: 0x6B11, - 3452: 0x6B17, - 3453: 0x6B1B, - 3454: 0x6B1E, - 3455: 0x6B24, - 3456: 0x6B28, - 3457: 0x6B2B, - 3458: 0x6B2C, - 3459: 0x6B2F, - 3460: 0x6B35, - 3461: 0x6B36, - 3462: 0x6B3B, - 3463: 0x6B3F, - 3464: 0x6B46, - 3465: 0x6B4A, - 3466: 0x6B4D, - 3467: 0x6B52, - 3468: 0x6B56, - 3469: 0x6B58, - 3470: 0x6B5D, - 3471: 0x6B60, - 3472: 0x6B67, - 3473: 0x6B6B, - 3474: 0x6B6E, - 3475: 0x6B70, - 3476: 0x6B75, - 3477: 0x6B7D, - 3478: 0x6B7E, - 3479: 0x6B82, - 3480: 0x6B85, - 3481: 0x6B97, - 3482: 0x6B9B, - 3483: 0x6B9F, - 3484: 0x6BA0, - 3485: 0x6BA2, - 3486: 0x6BA3, - 3487: 0x6BA8, - 3488: 0x6BA9, - 3489: 0x6BAC, - 3490: 0x6BAD, - 3491: 0x6BAE, - 3492: 0x6BB0, - 3493: 0x6BB8, - 3494: 0x6BB9, - 3495: 0x6BBD, - 3496: 0x6BBE, - 3497: 0x6BC3, - 3498: 0x6BC4, - 3499: 0x6BC9, - 3500: 0x6BCC, - 3501: 0x6BD6, - 3502: 0x6BDA, - 3503: 0x6BE1, - 3504: 0x6BE3, - 3505: 0x6BE6, - 3506: 0x6BE7, - 3507: 0x6BEE, - 3508: 0x6BF1, - 3509: 0x6BF7, - 3510: 0x6BF9, - 3511: 0x6BFF, - 3512: 0x6C02, - 3513: 0x6C04, - 3514: 0x6C05, - 3515: 0x6C09, - 3516: 0x6C0D, - 3517: 0x6C0E, - 3518: 0x6C10, - 3519: 0x6C12, - 3520: 0x6C19, - 3521: 0x6C1F, - 3522: 0x6C26, - 3523: 0x6C27, - 3524: 0x6C28, - 3525: 0x6C2C, - 3526: 0x6C2E, - 3527: 0x6C33, - 3528: 0x6C35, - 3529: 0x6C36, - 3530: 0x6C3A, - 3531: 0x6C3B, - 3532: 0x6C3F, - 3533: 0x6C4A, - 3534: 0x6C4B, - 3535: 0x6C4D, - 3536: 0x6C4F, - 3537: 0x6C52, - 3538: 0x6C54, - 3539: 0x6C59, - 3540: 0x6C5B, - 3541: 0x6C5C, - 3542: 0x6C6B, - 3543: 0x6C6D, - 3544: 0x6C6F, - 3545: 0x6C74, - 3546: 0x6C76, - 3547: 0x6C78, - 3548: 0x6C79, - 3549: 0x6C7B, - 3550: 0x6C85, - 3551: 0x6C86, - 3552: 0x6C87, - 3553: 0x6C89, - 3554: 0x6C94, - 3555: 0x6C95, - 3556: 0x6C97, - 3557: 0x6C98, - 3558: 0x6C9C, - 3559: 0x6C9F, - 3560: 0x6CB0, - 3561: 0x6CB2, - 3562: 0x6CB4, - 3563: 0x6CC2, - 3564: 0x6CC6, - 3565: 0x6CCD, - 3566: 0x6CCF, - 3567: 0x6CD0, - 3568: 0x6CD1, - 3569: 0x6CD2, - 3570: 0x6CD4, - 3571: 0x6CD6, - 3572: 0x6CDA, - 3573: 0x6CDC, - 3574: 0x6CE0, - 3575: 0x6CE7, - 3576: 0x6CE9, - 3577: 0x6CEB, - 3578: 0x6CEC, - 3579: 0x6CEE, - 3580: 0x6CF2, - 3581: 0x6CF4, - 3582: 0x6D04, - 3583: 0x6D07, - 3584: 0x6D0A, - 3585: 0x6D0E, - 3586: 0x6D0F, - 3587: 0x6D11, - 3588: 0x6D13, - 3589: 0x6D1A, - 3590: 0x6D26, - 3591: 0x6D27, - 3592: 0x6D28, - 3593: 0x6C67, - 3594: 0x6D2E, - 3595: 0x6D2F, - 3596: 0x6D31, - 3597: 0x6D39, - 3598: 0x6D3C, - 3599: 0x6D3F, - 3600: 0x6D57, - 3601: 0x6D5E, - 3602: 0x6D5F, - 3603: 0x6D61, - 3604: 0x6D65, - 3605: 0x6D67, - 3606: 0x6D6F, - 3607: 0x6D70, - 3608: 0x6D7C, - 3609: 0x6D82, - 3610: 0x6D87, - 3611: 0x6D91, - 3612: 0x6D92, - 3613: 0x6D94, - 3614: 0x6D96, - 3615: 0x6D97, - 3616: 0x6D98, - 3617: 0x6DAA, - 3618: 0x6DAC, - 3619: 0x6DB4, - 3620: 0x6DB7, - 3621: 0x6DB9, - 3622: 0x6DBD, - 3623: 0x6DBF, - 3624: 0x6DC4, - 3625: 0x6DC8, - 3626: 0x6DCA, - 3627: 0x6DCE, - 3628: 0x6DCF, - 3629: 0x6DD6, - 3630: 0x6DDB, - 3631: 0x6DDD, - 3632: 0x6DDF, - 3633: 0x6DE0, - 3634: 0x6DE2, - 3635: 0x6DE5, - 3636: 0x6DE9, - 3637: 0x6DEF, - 3638: 0x6DF0, - 3639: 0x6DF4, - 3640: 0x6DF6, - 3641: 0x6DFC, - 3642: 0x6E00, - 3643: 0x6E04, - 3644: 0x6E1E, - 3645: 0x6E22, - 3646: 0x6E27, - 3647: 0x6E32, - 3648: 0x6E36, - 3649: 0x6E39, - 3650: 0x6E3B, - 3651: 0x6E3C, - 3652: 0x6E44, - 3653: 0x6E45, - 3654: 0x6E48, - 3655: 0x6E49, - 3656: 0x6E4B, - 3657: 0x6E4F, - 3658: 0x6E51, - 3659: 0x6E52, - 3660: 0x6E53, - 3661: 0x6E54, - 3662: 0x6E57, - 3663: 0x6E5C, - 3664: 0x6E5D, - 3665: 0x6E5E, - 3666: 0x6E62, - 3667: 0x6E63, - 3668: 0x6E68, - 3669: 0x6E73, - 3670: 0x6E7B, - 3671: 0x6E7D, - 3672: 0x6E8D, - 3673: 0x6E93, - 3674: 0x6E99, - 3675: 0x6EA0, - 3676: 0x6EA7, - 3677: 0x6EAD, - 3678: 0x6EAE, - 3679: 0x6EB1, - 3680: 0x6EB3, - 3681: 0x6EBB, - 3682: 0x6EBF, - 3683: 0x6EC0, - 3684: 0x6EC1, - 3685: 0x6EC3, - 3686: 0x6EC7, - 3687: 0x6EC8, - 3688: 0x6ECA, - 3689: 0x6ECD, - 3690: 0x6ECE, - 3691: 0x6ECF, - 3692: 0x6EEB, - 3693: 0x6EED, - 3694: 0x6EEE, - 3695: 0x6EF9, - 3696: 0x6EFB, - 3697: 0x6EFD, - 3698: 0x6F04, - 3699: 0x6F08, - 3700: 0x6F0A, - 3701: 0x6F0C, - 3702: 0x6F0D, - 3703: 0x6F16, - 3704: 0x6F18, - 3705: 0x6F1A, - 3706: 0x6F1B, - 3707: 0x6F26, - 3708: 0x6F29, - 3709: 0x6F2A, - 3710: 0x6F2F, - 3711: 0x6F30, - 3712: 0x6F33, - 3713: 0x6F36, - 3714: 0x6F3B, - 3715: 0x6F3C, - 3716: 0x6F2D, - 3717: 0x6F4F, - 3718: 0x6F51, - 3719: 0x6F52, - 3720: 0x6F53, - 3721: 0x6F57, - 3722: 0x6F59, - 3723: 0x6F5A, - 3724: 0x6F5D, - 3725: 0x6F5E, - 3726: 0x6F61, - 3727: 0x6F62, - 3728: 0x6F68, - 3729: 0x6F6C, - 3730: 0x6F7D, - 3731: 0x6F7E, - 3732: 0x6F83, - 3733: 0x6F87, - 3734: 0x6F88, - 3735: 0x6F8B, - 3736: 0x6F8C, - 3737: 0x6F8D, - 3738: 0x6F90, - 3739: 0x6F92, - 3740: 0x6F93, - 3741: 0x6F94, - 3742: 0x6F96, - 3743: 0x6F9A, - 3744: 0x6F9F, - 3745: 0x6FA0, - 3746: 0x6FA5, - 3747: 0x6FA6, - 3748: 0x6FA7, - 3749: 0x6FA8, - 3750: 0x6FAE, - 3751: 0x6FAF, - 3752: 0x6FB0, - 3753: 0x6FB5, - 3754: 0x6FB6, - 3755: 0x6FBC, - 3756: 0x6FC5, - 3757: 0x6FC7, - 3758: 0x6FC8, - 3759: 0x6FCA, - 3760: 0x6FDA, - 3761: 0x6FDE, - 3762: 0x6FE8, - 3763: 0x6FE9, - 3764: 0x6FF0, - 3765: 0x6FF5, - 3766: 0x6FF9, - 3767: 0x6FFC, - 3768: 0x6FFD, - 3769: 0x7000, - 3770: 0x7005, - 3771: 0x7006, - 3772: 0x7007, - 3773: 0x700D, - 3774: 0x7017, - 3775: 0x7020, - 3776: 0x7023, - 3777: 0x702F, - 3778: 0x7034, - 3779: 0x7037, - 3780: 0x7039, - 3781: 0x703C, - 3782: 0x7043, - 3783: 0x7044, - 3784: 0x7048, - 3785: 0x7049, - 3786: 0x704A, - 3787: 0x704B, - 3788: 0x7054, - 3789: 0x7055, - 3790: 0x705D, - 3791: 0x705E, - 3792: 0x704E, - 3793: 0x7064, - 3794: 0x7065, - 3795: 0x706C, - 3796: 0x706E, - 3797: 0x7075, - 3798: 0x7076, - 3799: 0x707E, - 3800: 0x7081, - 3801: 0x7085, - 3802: 0x7086, - 3803: 0x7094, - 3804: 0x7095, - 3805: 0x7096, - 3806: 0x7097, - 3807: 0x7098, - 3808: 0x709B, - 3809: 0x70A4, - 3810: 0x70AB, - 3811: 0x70B0, - 3812: 0x70B1, - 3813: 0x70B4, - 3814: 0x70B7, - 3815: 0x70CA, - 3816: 0x70D1, - 3817: 0x70D3, - 3818: 0x70D4, - 3819: 0x70D5, - 3820: 0x70D6, - 3821: 0x70D8, - 3822: 0x70DC, - 3823: 0x70E4, - 3824: 0x70FA, - 3825: 0x7103, - 3826: 0x7104, - 3827: 0x7105, - 3828: 0x7106, - 3829: 0x7107, - 3830: 0x710B, - 3831: 0x710C, - 3832: 0x710F, - 3833: 0x711E, - 3834: 0x7120, - 3835: 0x712B, - 3836: 0x712D, - 3837: 0x712F, - 3838: 0x7130, - 3839: 0x7131, - 3840: 0x7138, - 3841: 0x7141, - 3842: 0x7145, - 3843: 0x7146, - 3844: 0x7147, - 3845: 0x714A, - 3846: 0x714B, - 3847: 0x7150, - 3848: 0x7152, - 3849: 0x7157, - 3850: 0x715A, - 3851: 0x715C, - 3852: 0x715E, - 3853: 0x7160, - 3854: 0x7168, - 3855: 0x7179, - 3856: 0x7180, - 3857: 0x7185, - 3858: 0x7187, - 3859: 0x718C, - 3860: 0x7192, - 3861: 0x719A, - 3862: 0x719B, - 3863: 0x71A0, - 3864: 0x71A2, - 3865: 0x71AF, - 3866: 0x71B0, - 3867: 0x71B2, - 3868: 0x71B3, - 3869: 0x71BA, - 3870: 0x71BF, - 3871: 0x71C0, - 3872: 0x71C1, - 3873: 0x71C4, - 3874: 0x71CB, - 3875: 0x71CC, - 3876: 0x71D3, - 3877: 0x71D6, - 3878: 0x71D9, - 3879: 0x71DA, - 3880: 0x71DC, - 3881: 0x71F8, - 3882: 0x71FE, - 3883: 0x7200, - 3884: 0x7207, - 3885: 0x7208, - 3886: 0x7209, - 3887: 0x7213, - 3888: 0x7217, - 3889: 0x721A, - 3890: 0x721D, - 3891: 0x721F, - 3892: 0x7224, - 3893: 0x722B, - 3894: 0x722F, - 3895: 0x7234, - 3896: 0x7238, - 3897: 0x7239, - 3898: 0x7241, - 3899: 0x7242, - 3900: 0x7243, - 3901: 0x7245, - 3902: 0x724E, - 3903: 0x724F, - 3904: 0x7250, - 3905: 0x7253, - 3906: 0x7255, - 3907: 0x7256, - 3908: 0x725A, - 3909: 0x725C, - 3910: 0x725E, - 3911: 0x7260, - 3912: 0x7263, - 3913: 0x7268, - 3914: 0x726B, - 3915: 0x726E, - 3916: 0x726F, - 3917: 0x7271, - 3918: 0x7277, - 3919: 0x7278, - 3920: 0x727B, - 3921: 0x727C, - 3922: 0x727F, - 3923: 0x7284, - 3924: 0x7289, - 3925: 0x728D, - 3926: 0x728E, - 3927: 0x7293, - 3928: 0x729B, - 3929: 0x72A8, - 3930: 0x72AD, - 3931: 0x72AE, - 3932: 0x72B1, - 3933: 0x72B4, - 3934: 0x72BE, - 3935: 0x72C1, - 3936: 0x72C7, - 3937: 0x72C9, - 3938: 0x72CC, - 3939: 0x72D5, - 3940: 0x72D6, - 3941: 0x72D8, - 3942: 0x72DF, - 3943: 0x72E5, - 3944: 0x72F3, - 3945: 0x72F4, - 3946: 0x72FA, - 3947: 0x72FB, - 3948: 0x72FE, - 3949: 0x7302, - 3950: 0x7304, - 3951: 0x7305, - 3952: 0x7307, - 3953: 0x730B, - 3954: 0x730D, - 3955: 0x7312, - 3956: 0x7313, - 3957: 0x7318, - 3958: 0x7319, - 3959: 0x731E, - 3960: 0x7322, - 3961: 0x7324, - 3962: 0x7327, - 3963: 0x7328, - 3964: 0x732C, - 3965: 0x7331, - 3966: 0x7332, - 3967: 0x7335, - 3968: 0x733A, - 3969: 0x733B, - 3970: 0x733D, - 3971: 0x7343, - 3972: 0x734D, - 3973: 0x7350, - 3974: 0x7352, - 3975: 0x7356, - 3976: 0x7358, - 3977: 0x735D, - 3978: 0x735E, - 3979: 0x735F, - 3980: 0x7360, - 3981: 0x7366, - 3982: 0x7367, - 3983: 0x7369, - 3984: 0x736B, - 3985: 0x736C, - 3986: 0x736E, - 3987: 0x736F, - 3988: 0x7371, - 3989: 0x7377, - 3990: 0x7379, - 3991: 0x737C, - 3992: 0x7380, - 3993: 0x7381, - 3994: 0x7383, - 3995: 0x7385, - 3996: 0x7386, - 3997: 0x738E, - 3998: 0x7390, - 3999: 0x7393, - 4000: 0x7395, - 4001: 0x7397, - 4002: 0x7398, - 4003: 0x739C, - 4004: 0x739E, - 4005: 0x739F, - 4006: 0x73A0, - 4007: 0x73A2, - 4008: 0x73A5, - 4009: 0x73A6, - 4010: 0x73AA, - 4011: 0x73AB, - 4012: 0x73AD, - 4013: 0x73B5, - 4014: 0x73B7, - 4015: 0x73B9, - 4016: 0x73BC, - 4017: 0x73BD, - 4018: 0x73BF, - 4019: 0x73C5, - 4020: 0x73C6, - 4021: 0x73C9, - 4022: 0x73CB, - 4023: 0x73CC, - 4024: 0x73CF, - 4025: 0x73D2, - 4026: 0x73D3, - 4027: 0x73D6, - 4028: 0x73D9, - 4029: 0x73DD, - 4030: 0x73E1, - 4031: 0x73E3, - 4032: 0x73E6, - 4033: 0x73E7, - 4034: 0x73E9, - 4035: 0x73F4, - 4036: 0x73F5, - 4037: 0x73F7, - 4038: 0x73F9, - 4039: 0x73FA, - 4040: 0x73FB, - 4041: 0x73FD, - 4042: 0x73FF, - 4043: 0x7400, - 4044: 0x7401, - 4045: 0x7404, - 4046: 0x7407, - 4047: 0x740A, - 4048: 0x7411, - 4049: 0x741A, - 4050: 0x741B, - 4051: 0x7424, - 4052: 0x7426, - 4053: 0x7428, - 4054: 0x7429, - 4055: 0x742A, - 4056: 0x742B, - 4057: 0x742C, - 4058: 0x742D, - 4059: 0x742E, - 4060: 0x742F, - 4061: 0x7430, - 4062: 0x7431, - 4063: 0x7439, - 4064: 0x7440, - 4065: 0x7443, - 4066: 0x7444, - 4067: 0x7446, - 4068: 0x7447, - 4069: 0x744B, - 4070: 0x744D, - 4071: 0x7451, - 4072: 0x7452, - 4073: 0x7457, - 4074: 0x745D, - 4075: 0x7462, - 4076: 0x7466, - 4077: 0x7467, - 4078: 0x7468, - 4079: 0x746B, - 4080: 0x746D, - 4081: 0x746E, - 4082: 0x7471, - 4083: 0x7472, - 4084: 0x7480, - 4085: 0x7481, - 4086: 0x7485, - 4087: 0x7486, - 4088: 0x7487, - 4089: 0x7489, - 4090: 0x748F, - 4091: 0x7490, - 4092: 0x7491, - 4093: 0x7492, - 4094: 0x7498, - 4095: 0x7499, - 4096: 0x749A, - 4097: 0x749C, - 4098: 0x749F, - 4099: 0x74A0, - 4100: 0x74A1, - 4101: 0x74A3, - 4102: 0x74A6, - 4103: 0x74A8, - 4104: 0x74A9, - 4105: 0x74AA, - 4106: 0x74AB, - 4107: 0x74AE, - 4108: 0x74AF, - 4109: 0x74B1, - 4110: 0x74B2, - 4111: 0x74B5, - 4112: 0x74B9, - 4113: 0x74BB, - 4114: 0x74BF, - 4115: 0x74C8, - 4116: 0x74C9, - 4117: 0x74CC, - 4118: 0x74D0, - 4119: 0x74D3, - 4120: 0x74D8, - 4121: 0x74DA, - 4122: 0x74DB, - 4123: 0x74DE, - 4124: 0x74DF, - 4125: 0x74E4, - 4126: 0x74E8, - 4127: 0x74EA, - 4128: 0x74EB, - 4129: 0x74EF, - 4130: 0x74F4, - 4131: 0x74FA, - 4132: 0x74FB, - 4133: 0x74FC, - 4134: 0x74FF, - 4135: 0x7506, - 4136: 0x7512, - 4137: 0x7516, - 4138: 0x7517, - 4139: 0x7520, - 4140: 0x7521, - 4141: 0x7524, - 4142: 0x7527, - 4143: 0x7529, - 4144: 0x752A, - 4145: 0x752F, - 4146: 0x7536, - 4147: 0x7539, - 4148: 0x753D, - 4149: 0x753E, - 4150: 0x753F, - 4151: 0x7540, - 4152: 0x7543, - 4153: 0x7547, - 4154: 0x7548, - 4155: 0x754E, - 4156: 0x7550, - 4157: 0x7552, - 4158: 0x7557, - 4159: 0x755E, - 4160: 0x755F, - 4161: 0x7561, - 4162: 0x756F, - 4163: 0x7571, - 4164: 0x7579, - 4165: 0x757A, - 4166: 0x757B, - 4167: 0x757C, - 4168: 0x757D, - 4169: 0x757E, - 4170: 0x7581, - 4171: 0x7585, - 4172: 0x7590, - 4173: 0x7592, - 4174: 0x7593, - 4175: 0x7595, - 4176: 0x7599, - 4177: 0x759C, - 4178: 0x75A2, - 4179: 0x75A4, - 4180: 0x75B4, - 4181: 0x75BA, - 4182: 0x75BF, - 4183: 0x75C0, - 4184: 0x75C1, - 4185: 0x75C4, - 4186: 0x75C6, - 4187: 0x75CC, - 4188: 0x75CE, - 4189: 0x75CF, - 4190: 0x75D7, - 4191: 0x75DC, - 4192: 0x75DF, - 4193: 0x75E0, - 4194: 0x75E1, - 4195: 0x75E4, - 4196: 0x75E7, - 4197: 0x75EC, - 4198: 0x75EE, - 4199: 0x75EF, - 4200: 0x75F1, - 4201: 0x75F9, - 4202: 0x7600, - 4203: 0x7602, - 4204: 0x7603, - 4205: 0x7604, - 4206: 0x7607, - 4207: 0x7608, - 4208: 0x760A, - 4209: 0x760C, - 4210: 0x760F, - 4211: 0x7612, - 4212: 0x7613, - 4213: 0x7615, - 4214: 0x7616, - 4215: 0x7619, - 4216: 0x761B, - 4217: 0x761C, - 4218: 0x761D, - 4219: 0x761E, - 4220: 0x7623, - 4221: 0x7625, - 4222: 0x7626, - 4223: 0x7629, - 4224: 0x762D, - 4225: 0x7632, - 4226: 0x7633, - 4227: 0x7635, - 4228: 0x7638, - 4229: 0x7639, - 4230: 0x763A, - 4231: 0x763C, - 4232: 0x764A, - 4233: 0x7640, - 4234: 0x7641, - 4235: 0x7643, - 4236: 0x7644, - 4237: 0x7645, - 4238: 0x7649, - 4239: 0x764B, - 4240: 0x7655, - 4241: 0x7659, - 4242: 0x765F, - 4243: 0x7664, - 4244: 0x7665, - 4245: 0x766D, - 4246: 0x766E, - 4247: 0x766F, - 4248: 0x7671, - 4249: 0x7674, - 4250: 0x7681, - 4251: 0x7685, - 4252: 0x768C, - 4253: 0x768D, - 4254: 0x7695, - 4255: 0x769B, - 4256: 0x769C, - 4257: 0x769D, - 4258: 0x769F, - 4259: 0x76A0, - 4260: 0x76A2, - 4261: 0x76A3, - 4262: 0x76A4, - 4263: 0x76A5, - 4264: 0x76A6, - 4265: 0x76A7, - 4266: 0x76A8, - 4267: 0x76AA, - 4268: 0x76AD, - 4269: 0x76BD, - 4270: 0x76C1, - 4271: 0x76C5, - 4272: 0x76C9, - 4273: 0x76CB, - 4274: 0x76CC, - 4275: 0x76CE, - 4276: 0x76D4, - 4277: 0x76D9, - 4278: 0x76E0, - 4279: 0x76E6, - 4280: 0x76E8, - 4281: 0x76EC, - 4282: 0x76F0, - 4283: 0x76F1, - 4284: 0x76F6, - 4285: 0x76F9, - 4286: 0x76FC, - 4287: 0x7700, - 4288: 0x7706, - 4289: 0x770A, - 4290: 0x770E, - 4291: 0x7712, - 4292: 0x7714, - 4293: 0x7715, - 4294: 0x7717, - 4295: 0x7719, - 4296: 0x771A, - 4297: 0x771C, - 4298: 0x7722, - 4299: 0x7728, - 4300: 0x772D, - 4301: 0x772E, - 4302: 0x772F, - 4303: 0x7734, - 4304: 0x7735, - 4305: 0x7736, - 4306: 0x7739, - 4307: 0x773D, - 4308: 0x773E, - 4309: 0x7742, - 4310: 0x7745, - 4311: 0x7746, - 4312: 0x774A, - 4313: 0x774D, - 4314: 0x774E, - 4315: 0x774F, - 4316: 0x7752, - 4317: 0x7756, - 4318: 0x7757, - 4319: 0x775C, - 4320: 0x775E, - 4321: 0x775F, - 4322: 0x7760, - 4323: 0x7762, - 4324: 0x7764, - 4325: 0x7767, - 4326: 0x776A, - 4327: 0x776C, - 4328: 0x7770, - 4329: 0x7772, - 4330: 0x7773, - 4331: 0x7774, - 4332: 0x777A, - 4333: 0x777D, - 4334: 0x7780, - 4335: 0x7784, - 4336: 0x778C, - 4337: 0x778D, - 4338: 0x7794, - 4339: 0x7795, - 4340: 0x7796, - 4341: 0x779A, - 4342: 0x779F, - 4343: 0x77A2, - 4344: 0x77A7, - 4345: 0x77AA, - 4346: 0x77AE, - 4347: 0x77AF, - 4348: 0x77B1, - 4349: 0x77B5, - 4350: 0x77BE, - 4351: 0x77C3, - 4352: 0x77C9, - 4353: 0x77D1, - 4354: 0x77D2, - 4355: 0x77D5, - 4356: 0x77D9, - 4357: 0x77DE, - 4358: 0x77DF, - 4359: 0x77E0, - 4360: 0x77E4, - 4361: 0x77E6, - 4362: 0x77EA, - 4363: 0x77EC, - 4364: 0x77F0, - 4365: 0x77F1, - 4366: 0x77F4, - 4367: 0x77F8, - 4368: 0x77FB, - 4369: 0x7805, - 4370: 0x7806, - 4371: 0x7809, - 4372: 0x780D, - 4373: 0x780E, - 4374: 0x7811, - 4375: 0x781D, - 4376: 0x7821, - 4377: 0x7822, - 4378: 0x7823, - 4379: 0x782D, - 4380: 0x782E, - 4381: 0x7830, - 4382: 0x7835, - 4383: 0x7837, - 4384: 0x7843, - 4385: 0x7844, - 4386: 0x7847, - 4387: 0x7848, - 4388: 0x784C, - 4389: 0x784E, - 4390: 0x7852, - 4391: 0x785C, - 4392: 0x785E, - 4393: 0x7860, - 4394: 0x7861, - 4395: 0x7863, - 4396: 0x7864, - 4397: 0x7868, - 4398: 0x786A, - 4399: 0x786E, - 4400: 0x787A, - 4401: 0x787E, - 4402: 0x788A, - 4403: 0x788F, - 4404: 0x7894, - 4405: 0x7898, - 4406: 0x78A1, - 4407: 0x789D, - 4408: 0x789E, - 4409: 0x789F, - 4410: 0x78A4, - 4411: 0x78A8, - 4412: 0x78AC, - 4413: 0x78AD, - 4414: 0x78B0, - 4415: 0x78B1, - 4416: 0x78B2, - 4417: 0x78B3, - 4418: 0x78BB, - 4419: 0x78BD, - 4420: 0x78BF, - 4421: 0x78C7, - 4422: 0x78C8, - 4423: 0x78C9, - 4424: 0x78CC, - 4425: 0x78CE, - 4426: 0x78D2, - 4427: 0x78D3, - 4428: 0x78D5, - 4429: 0x78D6, - 4430: 0x78E4, - 4431: 0x78DB, - 4432: 0x78DF, - 4433: 0x78E0, - 4434: 0x78E1, - 4435: 0x78E6, - 4436: 0x78EA, - 4437: 0x78F2, - 4438: 0x78F3, - 4439: 0x7900, - 4440: 0x78F6, - 4441: 0x78F7, - 4442: 0x78FA, - 4443: 0x78FB, - 4444: 0x78FF, - 4445: 0x7906, - 4446: 0x790C, - 4447: 0x7910, - 4448: 0x791A, - 4449: 0x791C, - 4450: 0x791E, - 4451: 0x791F, - 4452: 0x7920, - 4453: 0x7925, - 4454: 0x7927, - 4455: 0x7929, - 4456: 0x792D, - 4457: 0x7931, - 4458: 0x7934, - 4459: 0x7935, - 4460: 0x793B, - 4461: 0x793D, - 4462: 0x793F, - 4463: 0x7944, - 4464: 0x7945, - 4465: 0x7946, - 4466: 0x794A, - 4467: 0x794B, - 4468: 0x794F, - 4469: 0x7951, - 4470: 0x7954, - 4471: 0x7958, - 4472: 0x795B, - 4473: 0x795C, - 4474: 0x7967, - 4475: 0x7969, - 4476: 0x796B, - 4477: 0x7972, - 4478: 0x7979, - 4479: 0x797B, - 4480: 0x797C, - 4481: 0x797E, - 4482: 0x798B, - 4483: 0x798C, - 4484: 0x7991, - 4485: 0x7993, - 4486: 0x7994, - 4487: 0x7995, - 4488: 0x7996, - 4489: 0x7998, - 4490: 0x799B, - 4491: 0x799C, - 4492: 0x79A1, - 4493: 0x79A8, - 4494: 0x79A9, - 4495: 0x79AB, - 4496: 0x79AF, - 4497: 0x79B1, - 4498: 0x79B4, - 4499: 0x79B8, - 4500: 0x79BB, - 4501: 0x79C2, - 4502: 0x79C4, - 4503: 0x79C7, - 4504: 0x79C8, - 4505: 0x79CA, - 4506: 0x79CF, - 4507: 0x79D4, - 4508: 0x79D6, - 4509: 0x79DA, - 4510: 0x79DD, - 4511: 0x79DE, - 4512: 0x79E0, - 4513: 0x79E2, - 4514: 0x79E5, - 4515: 0x79EA, - 4516: 0x79EB, - 4517: 0x79ED, - 4518: 0x79F1, - 4519: 0x79F8, - 4520: 0x79FC, - 4521: 0x7A02, - 4522: 0x7A03, - 4523: 0x7A07, - 4524: 0x7A09, - 4525: 0x7A0A, - 4526: 0x7A0C, - 4527: 0x7A11, - 4528: 0x7A15, - 4529: 0x7A1B, - 4530: 0x7A1E, - 4531: 0x7A21, - 4532: 0x7A27, - 4533: 0x7A2B, - 4534: 0x7A2D, - 4535: 0x7A2F, - 4536: 0x7A30, - 4537: 0x7A34, - 4538: 0x7A35, - 4539: 0x7A38, - 4540: 0x7A39, - 4541: 0x7A3A, - 4542: 0x7A44, - 4543: 0x7A45, - 4544: 0x7A47, - 4545: 0x7A48, - 4546: 0x7A4C, - 4547: 0x7A55, - 4548: 0x7A56, - 4549: 0x7A59, - 4550: 0x7A5C, - 4551: 0x7A5D, - 4552: 0x7A5F, - 4553: 0x7A60, - 4554: 0x7A65, - 4555: 0x7A67, - 4556: 0x7A6A, - 4557: 0x7A6D, - 4558: 0x7A75, - 4559: 0x7A78, - 4560: 0x7A7E, - 4561: 0x7A80, - 4562: 0x7A82, - 4563: 0x7A85, - 4564: 0x7A86, - 4565: 0x7A8A, - 4566: 0x7A8B, - 4567: 0x7A90, - 4568: 0x7A91, - 4569: 0x7A94, - 4570: 0x7A9E, - 4571: 0x7AA0, - 4572: 0x7AA3, - 4573: 0x7AAC, - 4574: 0x7AB3, - 4575: 0x7AB5, - 4576: 0x7AB9, - 4577: 0x7ABB, - 4578: 0x7ABC, - 4579: 0x7AC6, - 4580: 0x7AC9, - 4581: 0x7ACC, - 4582: 0x7ACE, - 4583: 0x7AD1, - 4584: 0x7ADB, - 4585: 0x7AE8, - 4586: 0x7AE9, - 4587: 0x7AEB, - 4588: 0x7AEC, - 4589: 0x7AF1, - 4590: 0x7AF4, - 4591: 0x7AFB, - 4592: 0x7AFD, - 4593: 0x7AFE, - 4594: 0x7B07, - 4595: 0x7B14, - 4596: 0x7B1F, - 4597: 0x7B23, - 4598: 0x7B27, - 4599: 0x7B29, - 4600: 0x7B2A, - 4601: 0x7B2B, - 4602: 0x7B2D, - 4603: 0x7B2E, - 4604: 0x7B2F, - 4605: 0x7B30, - 4606: 0x7B31, - 4607: 0x7B34, - 4608: 0x7B3D, - 4609: 0x7B3F, - 4610: 0x7B40, - 4611: 0x7B41, - 4612: 0x7B47, - 4613: 0x7B4E, - 4614: 0x7B55, - 4615: 0x7B60, - 4616: 0x7B64, - 4617: 0x7B66, - 4618: 0x7B69, - 4619: 0x7B6A, - 4620: 0x7B6D, - 4621: 0x7B6F, - 4622: 0x7B72, - 4623: 0x7B73, - 4624: 0x7B77, - 4625: 0x7B84, - 4626: 0x7B89, - 4627: 0x7B8E, - 4628: 0x7B90, - 4629: 0x7B91, - 4630: 0x7B96, - 4631: 0x7B9B, - 4632: 0x7B9E, - 4633: 0x7BA0, - 4634: 0x7BA5, - 4635: 0x7BAC, - 4636: 0x7BAF, - 4637: 0x7BB0, - 4638: 0x7BB2, - 4639: 0x7BB5, - 4640: 0x7BB6, - 4641: 0x7BBA, - 4642: 0x7BBB, - 4643: 0x7BBC, - 4644: 0x7BBD, - 4645: 0x7BC2, - 4646: 0x7BC5, - 4647: 0x7BC8, - 4648: 0x7BCA, - 4649: 0x7BD4, - 4650: 0x7BD6, - 4651: 0x7BD7, - 4652: 0x7BD9, - 4653: 0x7BDA, - 4654: 0x7BDB, - 4655: 0x7BE8, - 4656: 0x7BEA, - 4657: 0x7BF2, - 4658: 0x7BF4, - 4659: 0x7BF5, - 4660: 0x7BF8, - 4661: 0x7BF9, - 4662: 0x7BFA, - 4663: 0x7BFC, - 4664: 0x7BFE, - 4665: 0x7C01, - 4666: 0x7C02, - 4667: 0x7C03, - 4668: 0x7C04, - 4669: 0x7C06, - 4670: 0x7C09, - 4671: 0x7C0B, - 4672: 0x7C0C, - 4673: 0x7C0E, - 4674: 0x7C0F, - 4675: 0x7C19, - 4676: 0x7C1B, - 4677: 0x7C20, - 4678: 0x7C25, - 4679: 0x7C26, - 4680: 0x7C28, - 4681: 0x7C2C, - 4682: 0x7C31, - 4683: 0x7C33, - 4684: 0x7C34, - 4685: 0x7C36, - 4686: 0x7C39, - 4687: 0x7C3A, - 4688: 0x7C46, - 4689: 0x7C4A, - 4690: 0x7C55, - 4691: 0x7C51, - 4692: 0x7C52, - 4693: 0x7C53, - 4694: 0x7C59, - 4695: 0x7C5A, - 4696: 0x7C5B, - 4697: 0x7C5C, - 4698: 0x7C5D, - 4699: 0x7C5E, - 4700: 0x7C61, - 4701: 0x7C63, - 4702: 0x7C67, - 4703: 0x7C69, - 4704: 0x7C6D, - 4705: 0x7C6E, - 4706: 0x7C70, - 4707: 0x7C72, - 4708: 0x7C79, - 4709: 0x7C7C, - 4710: 0x7C7D, - 4711: 0x7C86, - 4712: 0x7C87, - 4713: 0x7C8F, - 4714: 0x7C94, - 4715: 0x7C9E, - 4716: 0x7CA0, - 4717: 0x7CA6, - 4718: 0x7CB0, - 4719: 0x7CB6, - 4720: 0x7CB7, - 4721: 0x7CBA, - 4722: 0x7CBB, - 4723: 0x7CBC, - 4724: 0x7CBF, - 4725: 0x7CC4, - 4726: 0x7CC7, - 4727: 0x7CC8, - 4728: 0x7CC9, - 4729: 0x7CCD, - 4730: 0x7CCF, - 4731: 0x7CD3, - 4732: 0x7CD4, - 4733: 0x7CD5, - 4734: 0x7CD7, - 4735: 0x7CD9, - 4736: 0x7CDA, - 4737: 0x7CDD, - 4738: 0x7CE6, - 4739: 0x7CE9, - 4740: 0x7CEB, - 4741: 0x7CF5, - 4742: 0x7D03, - 4743: 0x7D07, - 4744: 0x7D08, - 4745: 0x7D09, - 4746: 0x7D0F, - 4747: 0x7D11, - 4748: 0x7D12, - 4749: 0x7D13, - 4750: 0x7D16, - 4751: 0x7D1D, - 4752: 0x7D1E, - 4753: 0x7D23, - 4754: 0x7D26, - 4755: 0x7D2A, - 4756: 0x7D2D, - 4757: 0x7D31, - 4758: 0x7D3C, - 4759: 0x7D3D, - 4760: 0x7D3E, - 4761: 0x7D40, - 4762: 0x7D41, - 4763: 0x7D47, - 4764: 0x7D48, - 4765: 0x7D4D, - 4766: 0x7D51, - 4767: 0x7D53, - 4768: 0x7D57, - 4769: 0x7D59, - 4770: 0x7D5A, - 4771: 0x7D5C, - 4772: 0x7D5D, - 4773: 0x7D65, - 4774: 0x7D67, - 4775: 0x7D6A, - 4776: 0x7D70, - 4777: 0x7D78, - 4778: 0x7D7A, - 4779: 0x7D7B, - 4780: 0x7D7F, - 4781: 0x7D81, - 4782: 0x7D82, - 4783: 0x7D83, - 4784: 0x7D85, - 4785: 0x7D86, - 4786: 0x7D88, - 4787: 0x7D8B, - 4788: 0x7D8C, - 4789: 0x7D8D, - 4790: 0x7D91, - 4791: 0x7D96, - 4792: 0x7D97, - 4793: 0x7D9D, - 4794: 0x7D9E, - 4795: 0x7DA6, - 4796: 0x7DA7, - 4797: 0x7DAA, - 4798: 0x7DB3, - 4799: 0x7DB6, - 4800: 0x7DB7, - 4801: 0x7DB9, - 4802: 0x7DC2, - 4803: 0x7DC3, - 4804: 0x7DC4, - 4805: 0x7DC5, - 4806: 0x7DC6, - 4807: 0x7DCC, - 4808: 0x7DCD, - 4809: 0x7DCE, - 4810: 0x7DD7, - 4811: 0x7DD9, - 4812: 0x7E00, - 4813: 0x7DE2, - 4814: 0x7DE5, - 4815: 0x7DE6, - 4816: 0x7DEA, - 4817: 0x7DEB, - 4818: 0x7DED, - 4819: 0x7DF1, - 4820: 0x7DF5, - 4821: 0x7DF6, - 4822: 0x7DF9, - 4823: 0x7DFA, - 4824: 0x7E08, - 4825: 0x7E10, - 4826: 0x7E11, - 4827: 0x7E15, - 4828: 0x7E17, - 4829: 0x7E1C, - 4830: 0x7E1D, - 4831: 0x7E20, - 4832: 0x7E27, - 4833: 0x7E28, - 4834: 0x7E2C, - 4835: 0x7E2D, - 4836: 0x7E2F, - 4837: 0x7E33, - 4838: 0x7E36, - 4839: 0x7E3F, - 4840: 0x7E44, - 4841: 0x7E45, - 4842: 0x7E47, - 4843: 0x7E4E, - 4844: 0x7E50, - 4845: 0x7E52, - 4846: 0x7E58, - 4847: 0x7E5F, - 4848: 0x7E61, - 4849: 0x7E62, - 4850: 0x7E65, - 4851: 0x7E6B, - 4852: 0x7E6E, - 4853: 0x7E6F, - 4854: 0x7E73, - 4855: 0x7E78, - 4856: 0x7E7E, - 4857: 0x7E81, - 4858: 0x7E86, - 4859: 0x7E87, - 4860: 0x7E8A, - 4861: 0x7E8D, - 4862: 0x7E91, - 4863: 0x7E95, - 4864: 0x7E98, - 4865: 0x7E9A, - 4866: 0x7E9D, - 4867: 0x7E9E, - 4868: 0x7F3C, - 4869: 0x7F3B, - 4870: 0x7F3D, - 4871: 0x7F3E, - 4872: 0x7F3F, - 4873: 0x7F43, - 4874: 0x7F44, - 4875: 0x7F47, - 4876: 0x7F4F, - 4877: 0x7F52, - 4878: 0x7F53, - 4879: 0x7F5B, - 4880: 0x7F5C, - 4881: 0x7F5D, - 4882: 0x7F61, - 4883: 0x7F63, - 4884: 0x7F64, - 4885: 0x7F65, - 4886: 0x7F66, - 4887: 0x7F6D, - 4888: 0x7F71, - 4889: 0x7F7D, - 4890: 0x7F7E, - 4891: 0x7F7F, - 4892: 0x7F80, - 4893: 0x7F8B, - 4894: 0x7F8D, - 4895: 0x7F8F, - 4896: 0x7F90, - 4897: 0x7F91, - 4898: 0x7F96, - 4899: 0x7F97, - 4900: 0x7F9C, - 4901: 0x7FA1, - 4902: 0x7FA2, - 4903: 0x7FA6, - 4904: 0x7FAA, - 4905: 0x7FAD, - 4906: 0x7FB4, - 4907: 0x7FBC, - 4908: 0x7FBF, - 4909: 0x7FC0, - 4910: 0x7FC3, - 4911: 0x7FC8, - 4912: 0x7FCE, - 4913: 0x7FCF, - 4914: 0x7FDB, - 4915: 0x7FDF, - 4916: 0x7FE3, - 4917: 0x7FE5, - 4918: 0x7FE8, - 4919: 0x7FEC, - 4920: 0x7FEE, - 4921: 0x7FEF, - 4922: 0x7FF2, - 4923: 0x7FFA, - 4924: 0x7FFD, - 4925: 0x7FFE, - 4926: 0x7FFF, - 4927: 0x8007, - 4928: 0x8008, - 4929: 0x800A, - 4930: 0x800D, - 4931: 0x800E, - 4932: 0x800F, - 4933: 0x8011, - 4934: 0x8013, - 4935: 0x8014, - 4936: 0x8016, - 4937: 0x801D, - 4938: 0x801E, - 4939: 0x801F, - 4940: 0x8020, - 4941: 0x8024, - 4942: 0x8026, - 4943: 0x802C, - 4944: 0x802E, - 4945: 0x8030, - 4946: 0x8034, - 4947: 0x8035, - 4948: 0x8037, - 4949: 0x8039, - 4950: 0x803A, - 4951: 0x803C, - 4952: 0x803E, - 4953: 0x8040, - 4954: 0x8044, - 4955: 0x8060, - 4956: 0x8064, - 4957: 0x8066, - 4958: 0x806D, - 4959: 0x8071, - 4960: 0x8075, - 4961: 0x8081, - 4962: 0x8088, - 4963: 0x808E, - 4964: 0x809C, - 4965: 0x809E, - 4966: 0x80A6, - 4967: 0x80A7, - 4968: 0x80AB, - 4969: 0x80B8, - 4970: 0x80B9, - 4971: 0x80C8, - 4972: 0x80CD, - 4973: 0x80CF, - 4974: 0x80D2, - 4975: 0x80D4, - 4976: 0x80D5, - 4977: 0x80D7, - 4978: 0x80D8, - 4979: 0x80E0, - 4980: 0x80ED, - 4981: 0x80EE, - 4982: 0x80F0, - 4983: 0x80F2, - 4984: 0x80F3, - 4985: 0x80F6, - 4986: 0x80F9, - 4987: 0x80FA, - 4988: 0x80FE, - 4989: 0x8103, - 4990: 0x810B, - 4991: 0x8116, - 4992: 0x8117, - 4993: 0x8118, - 4994: 0x811C, - 4995: 0x811E, - 4996: 0x8120, - 4997: 0x8124, - 4998: 0x8127, - 4999: 0x812C, - 5000: 0x8130, - 5001: 0x8135, - 5002: 0x813A, - 5003: 0x813C, - 5004: 0x8145, - 5005: 0x8147, - 5006: 0x814A, - 5007: 0x814C, - 5008: 0x8152, - 5009: 0x8157, - 5010: 0x8160, - 5011: 0x8161, - 5012: 0x8167, - 5013: 0x8168, - 5014: 0x8169, - 5015: 0x816D, - 5016: 0x816F, - 5017: 0x8177, - 5018: 0x8181, - 5019: 0x8190, - 5020: 0x8184, - 5021: 0x8185, - 5022: 0x8186, - 5023: 0x818B, - 5024: 0x818E, - 5025: 0x8196, - 5026: 0x8198, - 5027: 0x819B, - 5028: 0x819E, - 5029: 0x81A2, - 5030: 0x81AE, - 5031: 0x81B2, - 5032: 0x81B4, - 5033: 0x81BB, - 5034: 0x81CB, - 5035: 0x81C3, - 5036: 0x81C5, - 5037: 0x81CA, - 5038: 0x81CE, - 5039: 0x81CF, - 5040: 0x81D5, - 5041: 0x81D7, - 5042: 0x81DB, - 5043: 0x81DD, - 5044: 0x81DE, - 5045: 0x81E1, - 5046: 0x81E4, - 5047: 0x81EB, - 5048: 0x81EC, - 5049: 0x81F0, - 5050: 0x81F1, - 5051: 0x81F2, - 5052: 0x81F5, - 5053: 0x81F6, - 5054: 0x81F8, - 5055: 0x81F9, - 5056: 0x81FD, - 5057: 0x81FF, - 5058: 0x8200, - 5059: 0x8203, - 5060: 0x820F, - 5061: 0x8213, - 5062: 0x8214, - 5063: 0x8219, - 5064: 0x821A, - 5065: 0x821D, - 5066: 0x8221, - 5067: 0x8222, - 5068: 0x8228, - 5069: 0x8232, - 5070: 0x8234, - 5071: 0x823A, - 5072: 0x8243, - 5073: 0x8244, - 5074: 0x8245, - 5075: 0x8246, - 5076: 0x824B, - 5077: 0x824E, - 5078: 0x824F, - 5079: 0x8251, - 5080: 0x8256, - 5081: 0x825C, - 5082: 0x8260, - 5083: 0x8263, - 5084: 0x8267, - 5085: 0x826D, - 5086: 0x8274, - 5087: 0x827B, - 5088: 0x827D, - 5089: 0x827F, - 5090: 0x8280, - 5091: 0x8281, - 5092: 0x8283, - 5093: 0x8284, - 5094: 0x8287, - 5095: 0x8289, - 5096: 0x828A, - 5097: 0x828E, - 5098: 0x8291, - 5099: 0x8294, - 5100: 0x8296, - 5101: 0x8298, - 5102: 0x829A, - 5103: 0x829B, - 5104: 0x82A0, - 5105: 0x82A1, - 5106: 0x82A3, - 5107: 0x82A4, - 5108: 0x82A7, - 5109: 0x82A8, - 5110: 0x82A9, - 5111: 0x82AA, - 5112: 0x82AE, - 5113: 0x82B0, - 5114: 0x82B2, - 5115: 0x82B4, - 5116: 0x82B7, - 5117: 0x82BA, - 5118: 0x82BC, - 5119: 0x82BE, - 5120: 0x82BF, - 5121: 0x82C6, - 5122: 0x82D0, - 5123: 0x82D5, - 5124: 0x82DA, - 5125: 0x82E0, - 5126: 0x82E2, - 5127: 0x82E4, - 5128: 0x82E8, - 5129: 0x82EA, - 5130: 0x82ED, - 5131: 0x82EF, - 5132: 0x82F6, - 5133: 0x82F7, - 5134: 0x82FD, - 5135: 0x82FE, - 5136: 0x8300, - 5137: 0x8301, - 5138: 0x8307, - 5139: 0x8308, - 5140: 0x830A, - 5141: 0x830B, - 5142: 0x8354, - 5143: 0x831B, - 5144: 0x831D, - 5145: 0x831E, - 5146: 0x831F, - 5147: 0x8321, - 5148: 0x8322, - 5149: 0x832C, - 5150: 0x832D, - 5151: 0x832E, - 5152: 0x8330, - 5153: 0x8333, - 5154: 0x8337, - 5155: 0x833A, - 5156: 0x833C, - 5157: 0x833D, - 5158: 0x8342, - 5159: 0x8343, - 5160: 0x8344, - 5161: 0x8347, - 5162: 0x834D, - 5163: 0x834E, - 5164: 0x8351, - 5165: 0x8355, - 5166: 0x8356, - 5167: 0x8357, - 5168: 0x8370, - 5169: 0x8378, - 5170: 0x837D, - 5171: 0x837F, - 5172: 0x8380, - 5173: 0x8382, - 5174: 0x8384, - 5175: 0x8386, - 5176: 0x838D, - 5177: 0x8392, - 5178: 0x8394, - 5179: 0x8395, - 5180: 0x8398, - 5181: 0x8399, - 5182: 0x839B, - 5183: 0x839C, - 5184: 0x839D, - 5185: 0x83A6, - 5186: 0x83A7, - 5187: 0x83A9, - 5188: 0x83AC, - 5189: 0x83BE, - 5190: 0x83BF, - 5191: 0x83C0, - 5192: 0x83C7, - 5193: 0x83C9, - 5194: 0x83CF, - 5195: 0x83D0, - 5196: 0x83D1, - 5197: 0x83D4, - 5198: 0x83DD, - 5199: 0x8353, - 5200: 0x83E8, - 5201: 0x83EA, - 5202: 0x83F6, - 5203: 0x83F8, - 5204: 0x83F9, - 5205: 0x83FC, - 5206: 0x8401, - 5207: 0x8406, - 5208: 0x840A, - 5209: 0x840F, - 5210: 0x8411, - 5211: 0x8415, - 5212: 0x8419, - 5213: 0x83AD, - 5214: 0x842F, - 5215: 0x8439, - 5216: 0x8445, - 5217: 0x8447, - 5218: 0x8448, - 5219: 0x844A, - 5220: 0x844D, - 5221: 0x844F, - 5222: 0x8451, - 5223: 0x8452, - 5224: 0x8456, - 5225: 0x8458, - 5226: 0x8459, - 5227: 0x845A, - 5228: 0x845C, - 5229: 0x8460, - 5230: 0x8464, - 5231: 0x8465, - 5232: 0x8467, - 5233: 0x846A, - 5234: 0x8470, - 5235: 0x8473, - 5236: 0x8474, - 5237: 0x8476, - 5238: 0x8478, - 5239: 0x847C, - 5240: 0x847D, - 5241: 0x8481, - 5242: 0x8485, - 5243: 0x8492, - 5244: 0x8493, - 5245: 0x8495, - 5246: 0x849E, - 5247: 0x84A6, - 5248: 0x84A8, - 5249: 0x84A9, - 5250: 0x84AA, - 5251: 0x84AF, - 5252: 0x84B1, - 5253: 0x84B4, - 5254: 0x84BA, - 5255: 0x84BD, - 5256: 0x84BE, - 5257: 0x84C0, - 5258: 0x84C2, - 5259: 0x84C7, - 5260: 0x84C8, - 5261: 0x84CC, - 5262: 0x84CF, - 5263: 0x84D3, - 5264: 0x84DC, - 5265: 0x84E7, - 5266: 0x84EA, - 5267: 0x84EF, - 5268: 0x84F0, - 5269: 0x84F1, - 5270: 0x84F2, - 5271: 0x84F7, - 5272: 0x8532, - 5273: 0x84FA, - 5274: 0x84FB, - 5275: 0x84FD, - 5276: 0x8502, - 5277: 0x8503, - 5278: 0x8507, - 5279: 0x850C, - 5280: 0x850E, - 5281: 0x8510, - 5282: 0x851C, - 5283: 0x851E, - 5284: 0x8522, - 5285: 0x8523, - 5286: 0x8524, - 5287: 0x8525, - 5288: 0x8527, - 5289: 0x852A, - 5290: 0x852B, - 5291: 0x852F, - 5292: 0x8533, - 5293: 0x8534, - 5294: 0x8536, - 5295: 0x853F, - 5296: 0x8546, - 5297: 0x854F, - 5298: 0x8550, - 5299: 0x8551, - 5300: 0x8552, - 5301: 0x8553, - 5302: 0x8556, - 5303: 0x8559, - 5304: 0x855C, - 5305: 0x855D, - 5306: 0x855E, - 5307: 0x855F, - 5308: 0x8560, - 5309: 0x8561, - 5310: 0x8562, - 5311: 0x8564, - 5312: 0x856B, - 5313: 0x856F, - 5314: 0x8579, - 5315: 0x857A, - 5316: 0x857B, - 5317: 0x857D, - 5318: 0x857F, - 5319: 0x8581, - 5320: 0x8585, - 5321: 0x8586, - 5322: 0x8589, - 5323: 0x858B, - 5324: 0x858C, - 5325: 0x858F, - 5326: 0x8593, - 5327: 0x8598, - 5328: 0x859D, - 5329: 0x859F, - 5330: 0x85A0, - 5331: 0x85A2, - 5332: 0x85A5, - 5333: 0x85A7, - 5334: 0x85B4, - 5335: 0x85B6, - 5336: 0x85B7, - 5337: 0x85B8, - 5338: 0x85BC, - 5339: 0x85BD, - 5340: 0x85BE, - 5341: 0x85BF, - 5342: 0x85C2, - 5343: 0x85C7, - 5344: 0x85CA, - 5345: 0x85CB, - 5346: 0x85CE, - 5347: 0x85AD, - 5348: 0x85D8, - 5349: 0x85DA, - 5350: 0x85DF, - 5351: 0x85E0, - 5352: 0x85E6, - 5353: 0x85E8, - 5354: 0x85ED, - 5355: 0x85F3, - 5356: 0x85F6, - 5357: 0x85FC, - 5358: 0x85FF, - 5359: 0x8600, - 5360: 0x8604, - 5361: 0x8605, - 5362: 0x860D, - 5363: 0x860E, - 5364: 0x8610, - 5365: 0x8611, - 5366: 0x8612, - 5367: 0x8618, - 5368: 0x8619, - 5369: 0x861B, - 5370: 0x861E, - 5371: 0x8621, - 5372: 0x8627, - 5373: 0x8629, - 5374: 0x8636, - 5375: 0x8638, - 5376: 0x863A, - 5377: 0x863C, - 5378: 0x863D, - 5379: 0x8640, - 5380: 0x8642, - 5381: 0x8646, - 5382: 0x8652, - 5383: 0x8653, - 5384: 0x8656, - 5385: 0x8657, - 5386: 0x8658, - 5387: 0x8659, - 5388: 0x865D, - 5389: 0x8660, - 5390: 0x8661, - 5391: 0x8662, - 5392: 0x8663, - 5393: 0x8664, - 5394: 0x8669, - 5395: 0x866C, - 5396: 0x866F, - 5397: 0x8675, - 5398: 0x8676, - 5399: 0x8677, - 5400: 0x867A, - 5401: 0x868D, - 5402: 0x8691, - 5403: 0x8696, - 5404: 0x8698, - 5405: 0x869A, - 5406: 0x869C, - 5407: 0x86A1, - 5408: 0x86A6, - 5409: 0x86A7, - 5410: 0x86A8, - 5411: 0x86AD, - 5412: 0x86B1, - 5413: 0x86B3, - 5414: 0x86B4, - 5415: 0x86B5, - 5416: 0x86B7, - 5417: 0x86B8, - 5418: 0x86B9, - 5419: 0x86BF, - 5420: 0x86C0, - 5421: 0x86C1, - 5422: 0x86C3, - 5423: 0x86C5, - 5424: 0x86D1, - 5425: 0x86D2, - 5426: 0x86D5, - 5427: 0x86D7, - 5428: 0x86DA, - 5429: 0x86DC, - 5430: 0x86E0, - 5431: 0x86E3, - 5432: 0x86E5, - 5433: 0x86E7, - 5434: 0x8688, - 5435: 0x86FA, - 5436: 0x86FC, - 5437: 0x86FD, - 5438: 0x8704, - 5439: 0x8705, - 5440: 0x8707, - 5441: 0x870B, - 5442: 0x870E, - 5443: 0x870F, - 5444: 0x8710, - 5445: 0x8713, - 5446: 0x8714, - 5447: 0x8719, - 5448: 0x871E, - 5449: 0x871F, - 5450: 0x8721, - 5451: 0x8723, - 5452: 0x8728, - 5453: 0x872E, - 5454: 0x872F, - 5455: 0x8731, - 5456: 0x8732, - 5457: 0x8739, - 5458: 0x873A, - 5459: 0x873C, - 5460: 0x873D, - 5461: 0x873E, - 5462: 0x8740, - 5463: 0x8743, - 5464: 0x8745, - 5465: 0x874D, - 5466: 0x8758, - 5467: 0x875D, - 5468: 0x8761, - 5469: 0x8764, - 5470: 0x8765, - 5471: 0x876F, - 5472: 0x8771, - 5473: 0x8772, - 5474: 0x877B, - 5475: 0x8783, - 5476: 0x8784, - 5477: 0x8785, - 5478: 0x8786, - 5479: 0x8787, - 5480: 0x8788, - 5481: 0x8789, - 5482: 0x878B, - 5483: 0x878C, - 5484: 0x8790, - 5485: 0x8793, - 5486: 0x8795, - 5487: 0x8797, - 5488: 0x8798, - 5489: 0x8799, - 5490: 0x879E, - 5491: 0x87A0, - 5492: 0x87A3, - 5493: 0x87A7, - 5494: 0x87AC, - 5495: 0x87AD, - 5496: 0x87AE, - 5497: 0x87B1, - 5498: 0x87B5, - 5499: 0x87BE, - 5500: 0x87BF, - 5501: 0x87C1, - 5502: 0x87C8, - 5503: 0x87C9, - 5504: 0x87CA, - 5505: 0x87CE, - 5506: 0x87D5, - 5507: 0x87D6, - 5508: 0x87D9, - 5509: 0x87DA, - 5510: 0x87DC, - 5511: 0x87DF, - 5512: 0x87E2, - 5513: 0x87E3, - 5514: 0x87E4, - 5515: 0x87EA, - 5516: 0x87EB, - 5517: 0x87ED, - 5518: 0x87F1, - 5519: 0x87F3, - 5520: 0x87F8, - 5521: 0x87FA, - 5522: 0x87FF, - 5523: 0x8801, - 5524: 0x8803, - 5525: 0x8806, - 5526: 0x8809, - 5527: 0x880A, - 5528: 0x880B, - 5529: 0x8810, - 5530: 0x8819, - 5531: 0x8812, - 5532: 0x8813, - 5533: 0x8814, - 5534: 0x8818, - 5535: 0x881A, - 5536: 0x881B, - 5537: 0x881C, - 5538: 0x881E, - 5539: 0x881F, - 5540: 0x8828, - 5541: 0x882D, - 5542: 0x882E, - 5543: 0x8830, - 5544: 0x8832, - 5545: 0x8835, - 5546: 0x883A, - 5547: 0x883C, - 5548: 0x8841, - 5549: 0x8843, - 5550: 0x8845, - 5551: 0x8848, - 5552: 0x8849, - 5553: 0x884A, - 5554: 0x884B, - 5555: 0x884E, - 5556: 0x8851, - 5557: 0x8855, - 5558: 0x8856, - 5559: 0x8858, - 5560: 0x885A, - 5561: 0x885C, - 5562: 0x885F, - 5563: 0x8860, - 5564: 0x8864, - 5565: 0x8869, - 5566: 0x8871, - 5567: 0x8879, - 5568: 0x887B, - 5569: 0x8880, - 5570: 0x8898, - 5571: 0x889A, - 5572: 0x889B, - 5573: 0x889C, - 5574: 0x889F, - 5575: 0x88A0, - 5576: 0x88A8, - 5577: 0x88AA, - 5578: 0x88BA, - 5579: 0x88BD, - 5580: 0x88BE, - 5581: 0x88C0, - 5582: 0x88CA, - 5583: 0x88CB, - 5584: 0x88CC, - 5585: 0x88CD, - 5586: 0x88CE, - 5587: 0x88D1, - 5588: 0x88D2, - 5589: 0x88D3, - 5590: 0x88DB, - 5591: 0x88DE, - 5592: 0x88E7, - 5593: 0x88EF, - 5594: 0x88F0, - 5595: 0x88F1, - 5596: 0x88F5, - 5597: 0x88F7, - 5598: 0x8901, - 5599: 0x8906, - 5600: 0x890D, - 5601: 0x890E, - 5602: 0x890F, - 5603: 0x8915, - 5604: 0x8916, - 5605: 0x8918, - 5606: 0x8919, - 5607: 0x891A, - 5608: 0x891C, - 5609: 0x8920, - 5610: 0x8926, - 5611: 0x8927, - 5612: 0x8928, - 5613: 0x8930, - 5614: 0x8931, - 5615: 0x8932, - 5616: 0x8935, - 5617: 0x8939, - 5618: 0x893A, - 5619: 0x893E, - 5620: 0x8940, - 5621: 0x8942, - 5622: 0x8945, - 5623: 0x8946, - 5624: 0x8949, - 5625: 0x894F, - 5626: 0x8952, - 5627: 0x8957, - 5628: 0x895A, - 5629: 0x895B, - 5630: 0x895C, - 5631: 0x8961, - 5632: 0x8962, - 5633: 0x8963, - 5634: 0x896B, - 5635: 0x896E, - 5636: 0x8970, - 5637: 0x8973, - 5638: 0x8975, - 5639: 0x897A, - 5640: 0x897B, - 5641: 0x897C, - 5642: 0x897D, - 5643: 0x8989, - 5644: 0x898D, - 5645: 0x8990, - 5646: 0x8994, - 5647: 0x8995, - 5648: 0x899B, - 5649: 0x899C, - 5650: 0x899F, - 5651: 0x89A0, - 5652: 0x89A5, - 5653: 0x89B0, - 5654: 0x89B4, - 5655: 0x89B5, - 5656: 0x89B6, - 5657: 0x89B7, - 5658: 0x89BC, - 5659: 0x89D4, - 5660: 0x89D5, - 5661: 0x89D6, - 5662: 0x89D7, - 5663: 0x89D8, - 5664: 0x89E5, - 5665: 0x89E9, - 5666: 0x89EB, - 5667: 0x89ED, - 5668: 0x89F1, - 5669: 0x89F3, - 5670: 0x89F6, - 5671: 0x89F9, - 5672: 0x89FD, - 5673: 0x89FF, - 5674: 0x8A04, - 5675: 0x8A05, - 5676: 0x8A07, - 5677: 0x8A0F, - 5678: 0x8A11, - 5679: 0x8A12, - 5680: 0x8A14, - 5681: 0x8A15, - 5682: 0x8A1E, - 5683: 0x8A20, - 5684: 0x8A22, - 5685: 0x8A24, - 5686: 0x8A26, - 5687: 0x8A2B, - 5688: 0x8A2C, - 5689: 0x8A2F, - 5690: 0x8A35, - 5691: 0x8A37, - 5692: 0x8A3D, - 5693: 0x8A3E, - 5694: 0x8A40, - 5695: 0x8A43, - 5696: 0x8A45, - 5697: 0x8A47, - 5698: 0x8A49, - 5699: 0x8A4D, - 5700: 0x8A4E, - 5701: 0x8A53, - 5702: 0x8A56, - 5703: 0x8A57, - 5704: 0x8A58, - 5705: 0x8A5C, - 5706: 0x8A5D, - 5707: 0x8A61, - 5708: 0x8A65, - 5709: 0x8A67, - 5710: 0x8A75, - 5711: 0x8A76, - 5712: 0x8A77, - 5713: 0x8A79, - 5714: 0x8A7A, - 5715: 0x8A7B, - 5716: 0x8A7E, - 5717: 0x8A7F, - 5718: 0x8A80, - 5719: 0x8A83, - 5720: 0x8A86, - 5721: 0x8A8B, - 5722: 0x8A8F, - 5723: 0x8A90, - 5724: 0x8A92, - 5725: 0x8A96, - 5726: 0x8A97, - 5727: 0x8A99, - 5728: 0x8A9F, - 5729: 0x8AA7, - 5730: 0x8AA9, - 5731: 0x8AAE, - 5732: 0x8AAF, - 5733: 0x8AB3, - 5734: 0x8AB6, - 5735: 0x8AB7, - 5736: 0x8ABB, - 5737: 0x8ABE, - 5738: 0x8AC3, - 5739: 0x8AC6, - 5740: 0x8AC8, - 5741: 0x8AC9, - 5742: 0x8ACA, - 5743: 0x8AD1, - 5744: 0x8AD3, - 5745: 0x8AD4, - 5746: 0x8AD5, - 5747: 0x8AD7, - 5748: 0x8ADD, - 5749: 0x8ADF, - 5750: 0x8AEC, - 5751: 0x8AF0, - 5752: 0x8AF4, - 5753: 0x8AF5, - 5754: 0x8AF6, - 5755: 0x8AFC, - 5756: 0x8AFF, - 5757: 0x8B05, - 5758: 0x8B06, - 5759: 0x8B0B, - 5760: 0x8B11, - 5761: 0x8B1C, - 5762: 0x8B1E, - 5763: 0x8B1F, - 5764: 0x8B0A, - 5765: 0x8B2D, - 5766: 0x8B30, - 5767: 0x8B37, - 5768: 0x8B3C, - 5769: 0x8B42, - 5770: 0x8B43, - 5771: 0x8B44, - 5772: 0x8B45, - 5773: 0x8B46, - 5774: 0x8B48, - 5775: 0x8B52, - 5776: 0x8B53, - 5777: 0x8B54, - 5778: 0x8B59, - 5779: 0x8B4D, - 5780: 0x8B5E, - 5781: 0x8B63, - 5782: 0x8B6D, - 5783: 0x8B76, - 5784: 0x8B78, - 5785: 0x8B79, - 5786: 0x8B7C, - 5787: 0x8B7E, - 5788: 0x8B81, - 5789: 0x8B84, - 5790: 0x8B85, - 5791: 0x8B8B, - 5792: 0x8B8D, - 5793: 0x8B8F, - 5794: 0x8B94, - 5795: 0x8B95, - 5796: 0x8B9C, - 5797: 0x8B9E, - 5798: 0x8B9F, - 5799: 0x8C38, - 5800: 0x8C39, - 5801: 0x8C3D, - 5802: 0x8C3E, - 5803: 0x8C45, - 5804: 0x8C47, - 5805: 0x8C49, - 5806: 0x8C4B, - 5807: 0x8C4F, - 5808: 0x8C51, - 5809: 0x8C53, - 5810: 0x8C54, - 5811: 0x8C57, - 5812: 0x8C58, - 5813: 0x8C5B, - 5814: 0x8C5D, - 5815: 0x8C59, - 5816: 0x8C63, - 5817: 0x8C64, - 5818: 0x8C66, - 5819: 0x8C68, - 5820: 0x8C69, - 5821: 0x8C6D, - 5822: 0x8C73, - 5823: 0x8C75, - 5824: 0x8C76, - 5825: 0x8C7B, - 5826: 0x8C7E, - 5827: 0x8C86, - 5828: 0x8C87, - 5829: 0x8C8B, - 5830: 0x8C90, - 5831: 0x8C92, - 5832: 0x8C93, - 5833: 0x8C99, - 5834: 0x8C9B, - 5835: 0x8C9C, - 5836: 0x8CA4, - 5837: 0x8CB9, - 5838: 0x8CBA, - 5839: 0x8CC5, - 5840: 0x8CC6, - 5841: 0x8CC9, - 5842: 0x8CCB, - 5843: 0x8CCF, - 5844: 0x8CD6, - 5845: 0x8CD5, - 5846: 0x8CD9, - 5847: 0x8CDD, - 5848: 0x8CE1, - 5849: 0x8CE8, - 5850: 0x8CEC, - 5851: 0x8CEF, - 5852: 0x8CF0, - 5853: 0x8CF2, - 5854: 0x8CF5, - 5855: 0x8CF7, - 5856: 0x8CF8, - 5857: 0x8CFE, - 5858: 0x8CFF, - 5859: 0x8D01, - 5860: 0x8D03, - 5861: 0x8D09, - 5862: 0x8D12, - 5863: 0x8D17, - 5864: 0x8D1B, - 5865: 0x8D65, - 5866: 0x8D69, - 5867: 0x8D6C, - 5868: 0x8D6E, - 5869: 0x8D7F, - 5870: 0x8D82, - 5871: 0x8D84, - 5872: 0x8D88, - 5873: 0x8D8D, - 5874: 0x8D90, - 5875: 0x8D91, - 5876: 0x8D95, - 5877: 0x8D9E, - 5878: 0x8D9F, - 5879: 0x8DA0, - 5880: 0x8DA6, - 5881: 0x8DAB, - 5882: 0x8DAC, - 5883: 0x8DAF, - 5884: 0x8DB2, - 5885: 0x8DB5, - 5886: 0x8DB7, - 5887: 0x8DB9, - 5888: 0x8DBB, - 5889: 0x8DC0, - 5890: 0x8DC5, - 5891: 0x8DC6, - 5892: 0x8DC7, - 5893: 0x8DC8, - 5894: 0x8DCA, - 5895: 0x8DCE, - 5896: 0x8DD1, - 5897: 0x8DD4, - 5898: 0x8DD5, - 5899: 0x8DD7, - 5900: 0x8DD9, - 5901: 0x8DE4, - 5902: 0x8DE5, - 5903: 0x8DE7, - 5904: 0x8DEC, - 5905: 0x8DF0, - 5906: 0x8DBC, - 5907: 0x8DF1, - 5908: 0x8DF2, - 5909: 0x8DF4, - 5910: 0x8DFD, - 5911: 0x8E01, - 5912: 0x8E04, - 5913: 0x8E05, - 5914: 0x8E06, - 5915: 0x8E0B, - 5916: 0x8E11, - 5917: 0x8E14, - 5918: 0x8E16, - 5919: 0x8E20, - 5920: 0x8E21, - 5921: 0x8E22, - 5922: 0x8E23, - 5923: 0x8E26, - 5924: 0x8E27, - 5925: 0x8E31, - 5926: 0x8E33, - 5927: 0x8E36, - 5928: 0x8E37, - 5929: 0x8E38, - 5930: 0x8E39, - 5931: 0x8E3D, - 5932: 0x8E40, - 5933: 0x8E41, - 5934: 0x8E4B, - 5935: 0x8E4D, - 5936: 0x8E4E, - 5937: 0x8E4F, - 5938: 0x8E54, - 5939: 0x8E5B, - 5940: 0x8E5C, - 5941: 0x8E5D, - 5942: 0x8E5E, - 5943: 0x8E61, - 5944: 0x8E62, - 5945: 0x8E69, - 5946: 0x8E6C, - 5947: 0x8E6D, - 5948: 0x8E6F, - 5949: 0x8E70, - 5950: 0x8E71, - 5951: 0x8E79, - 5952: 0x8E7A, - 5953: 0x8E7B, - 5954: 0x8E82, - 5955: 0x8E83, - 5956: 0x8E89, - 5957: 0x8E90, - 5958: 0x8E92, - 5959: 0x8E95, - 5960: 0x8E9A, - 5961: 0x8E9B, - 5962: 0x8E9D, - 5963: 0x8E9E, - 5964: 0x8EA2, - 5965: 0x8EA7, - 5966: 0x8EA9, - 5967: 0x8EAD, - 5968: 0x8EAE, - 5969: 0x8EB3, - 5970: 0x8EB5, - 5971: 0x8EBA, - 5972: 0x8EBB, - 5973: 0x8EC0, - 5974: 0x8EC1, - 5975: 0x8EC3, - 5976: 0x8EC4, - 5977: 0x8EC7, - 5978: 0x8ECF, - 5979: 0x8ED1, - 5980: 0x8ED4, - 5981: 0x8EDC, - 5982: 0x8EE8, - 5983: 0x8EEE, - 5984: 0x8EF0, - 5985: 0x8EF1, - 5986: 0x8EF7, - 5987: 0x8EF9, - 5988: 0x8EFA, - 5989: 0x8EED, - 5990: 0x8F00, - 5991: 0x8F02, - 5992: 0x8F07, - 5993: 0x8F08, - 5994: 0x8F0F, - 5995: 0x8F10, - 5996: 0x8F16, - 5997: 0x8F17, - 5998: 0x8F18, - 5999: 0x8F1E, - 6000: 0x8F20, - 6001: 0x8F21, - 6002: 0x8F23, - 6003: 0x8F25, - 6004: 0x8F27, - 6005: 0x8F28, - 6006: 0x8F2C, - 6007: 0x8F2D, - 6008: 0x8F2E, - 6009: 0x8F34, - 6010: 0x8F35, - 6011: 0x8F36, - 6012: 0x8F37, - 6013: 0x8F3A, - 6014: 0x8F40, - 6015: 0x8F41, - 6016: 0x8F43, - 6017: 0x8F47, - 6018: 0x8F4F, - 6019: 0x8F51, - 6020: 0x8F52, - 6021: 0x8F53, - 6022: 0x8F54, - 6023: 0x8F55, - 6024: 0x8F58, - 6025: 0x8F5D, - 6026: 0x8F5E, - 6027: 0x8F65, - 6028: 0x8F9D, - 6029: 0x8FA0, - 6030: 0x8FA1, - 6031: 0x8FA4, - 6032: 0x8FA5, - 6033: 0x8FA6, - 6034: 0x8FB5, - 6035: 0x8FB6, - 6036: 0x8FB8, - 6037: 0x8FBE, - 6038: 0x8FC0, - 6039: 0x8FC1, - 6040: 0x8FC6, - 6041: 0x8FCA, - 6042: 0x8FCB, - 6043: 0x8FCD, - 6044: 0x8FD0, - 6045: 0x8FD2, - 6046: 0x8FD3, - 6047: 0x8FD5, - 6048: 0x8FE0, - 6049: 0x8FE3, - 6050: 0x8FE4, - 6051: 0x8FE8, - 6052: 0x8FEE, - 6053: 0x8FF1, - 6054: 0x8FF5, - 6055: 0x8FF6, - 6056: 0x8FFB, - 6057: 0x8FFE, - 6058: 0x9002, - 6059: 0x9004, - 6060: 0x9008, - 6061: 0x900C, - 6062: 0x9018, - 6063: 0x901B, - 6064: 0x9028, - 6065: 0x9029, - 6066: 0x902F, - 6067: 0x902A, - 6068: 0x902C, - 6069: 0x902D, - 6070: 0x9033, - 6071: 0x9034, - 6072: 0x9037, - 6073: 0x903F, - 6074: 0x9043, - 6075: 0x9044, - 6076: 0x904C, - 6077: 0x905B, - 6078: 0x905D, - 6079: 0x9062, - 6080: 0x9066, - 6081: 0x9067, - 6082: 0x906C, - 6083: 0x9070, - 6084: 0x9074, - 6085: 0x9079, - 6086: 0x9085, - 6087: 0x9088, - 6088: 0x908B, - 6089: 0x908C, - 6090: 0x908E, - 6091: 0x9090, - 6092: 0x9095, - 6093: 0x9097, - 6094: 0x9098, - 6095: 0x9099, - 6096: 0x909B, - 6097: 0x90A0, - 6098: 0x90A1, - 6099: 0x90A2, - 6100: 0x90A5, - 6101: 0x90B0, - 6102: 0x90B2, - 6103: 0x90B3, - 6104: 0x90B4, - 6105: 0x90B6, - 6106: 0x90BD, - 6107: 0x90CC, - 6108: 0x90BE, - 6109: 0x90C3, - 6110: 0x90C4, - 6111: 0x90C5, - 6112: 0x90C7, - 6113: 0x90C8, - 6114: 0x90D5, - 6115: 0x90D7, - 6116: 0x90D8, - 6117: 0x90D9, - 6118: 0x90DC, - 6119: 0x90DD, - 6120: 0x90DF, - 6121: 0x90E5, - 6122: 0x90D2, - 6123: 0x90F6, - 6124: 0x90EB, - 6125: 0x90EF, - 6126: 0x90F0, - 6127: 0x90F4, - 6128: 0x90FE, - 6129: 0x90FF, - 6130: 0x9100, - 6131: 0x9104, - 6132: 0x9105, - 6133: 0x9106, - 6134: 0x9108, - 6135: 0x910D, - 6136: 0x9110, - 6137: 0x9114, - 6138: 0x9116, - 6139: 0x9117, - 6140: 0x9118, - 6141: 0x911A, - 6142: 0x911C, - 6143: 0x911E, - 6144: 0x9120, - 6145: 0x9125, - 6146: 0x9122, - 6147: 0x9123, - 6148: 0x9127, - 6149: 0x9129, - 6150: 0x912E, - 6151: 0x912F, - 6152: 0x9131, - 6153: 0x9134, - 6154: 0x9136, - 6155: 0x9137, - 6156: 0x9139, - 6157: 0x913A, - 6158: 0x913C, - 6159: 0x913D, - 6160: 0x9143, - 6161: 0x9147, - 6162: 0x9148, - 6163: 0x914F, - 6164: 0x9153, - 6165: 0x9157, - 6166: 0x9159, - 6167: 0x915A, - 6168: 0x915B, - 6169: 0x9161, - 6170: 0x9164, - 6171: 0x9167, - 6172: 0x916D, - 6173: 0x9174, - 6174: 0x9179, - 6175: 0x917A, - 6176: 0x917B, - 6177: 0x9181, - 6178: 0x9183, - 6179: 0x9185, - 6180: 0x9186, - 6181: 0x918A, - 6182: 0x918E, - 6183: 0x9191, - 6184: 0x9193, - 6185: 0x9194, - 6186: 0x9195, - 6187: 0x9198, - 6188: 0x919E, - 6189: 0x91A1, - 6190: 0x91A6, - 6191: 0x91A8, - 6192: 0x91AC, - 6193: 0x91AD, - 6194: 0x91AE, - 6195: 0x91B0, - 6196: 0x91B1, - 6197: 0x91B2, - 6198: 0x91B3, - 6199: 0x91B6, - 6200: 0x91BB, - 6201: 0x91BC, - 6202: 0x91BD, - 6203: 0x91BF, - 6204: 0x91C2, - 6205: 0x91C3, - 6206: 0x91C5, - 6207: 0x91D3, - 6208: 0x91D4, - 6209: 0x91D7, - 6210: 0x91D9, - 6211: 0x91DA, - 6212: 0x91DE, - 6213: 0x91E4, - 6214: 0x91E5, - 6215: 0x91E9, - 6216: 0x91EA, - 6217: 0x91EC, - 6218: 0x91ED, - 6219: 0x91EE, - 6220: 0x91EF, - 6221: 0x91F0, - 6222: 0x91F1, - 6223: 0x91F7, - 6224: 0x91F9, - 6225: 0x91FB, - 6226: 0x91FD, - 6227: 0x9200, - 6228: 0x9201, - 6229: 0x9204, - 6230: 0x9205, - 6231: 0x9206, - 6232: 0x9207, - 6233: 0x9209, - 6234: 0x920A, - 6235: 0x920C, - 6236: 0x9210, - 6237: 0x9212, - 6238: 0x9213, - 6239: 0x9216, - 6240: 0x9218, - 6241: 0x921C, - 6242: 0x921D, - 6243: 0x9223, - 6244: 0x9224, - 6245: 0x9225, - 6246: 0x9226, - 6247: 0x9228, - 6248: 0x922E, - 6249: 0x922F, - 6250: 0x9230, - 6251: 0x9233, - 6252: 0x9235, - 6253: 0x9236, - 6254: 0x9238, - 6255: 0x9239, - 6256: 0x923A, - 6257: 0x923C, - 6258: 0x923E, - 6259: 0x9240, - 6260: 0x9242, - 6261: 0x9243, - 6262: 0x9246, - 6263: 0x9247, - 6264: 0x924A, - 6265: 0x924D, - 6266: 0x924E, - 6267: 0x924F, - 6268: 0x9251, - 6269: 0x9258, - 6270: 0x9259, - 6271: 0x925C, - 6272: 0x925D, - 6273: 0x9260, - 6274: 0x9261, - 6275: 0x9265, - 6276: 0x9267, - 6277: 0x9268, - 6278: 0x9269, - 6279: 0x926E, - 6280: 0x926F, - 6281: 0x9270, - 6282: 0x9275, - 6283: 0x9276, - 6284: 0x9277, - 6285: 0x9278, - 6286: 0x9279, - 6287: 0x927B, - 6288: 0x927C, - 6289: 0x927D, - 6290: 0x927F, - 6291: 0x9288, - 6292: 0x9289, - 6293: 0x928A, - 6294: 0x928D, - 6295: 0x928E, - 6296: 0x9292, - 6297: 0x9297, - 6298: 0x9299, - 6299: 0x929F, - 6300: 0x92A0, - 6301: 0x92A4, - 6302: 0x92A5, - 6303: 0x92A7, - 6304: 0x92A8, - 6305: 0x92AB, - 6306: 0x92AF, - 6307: 0x92B2, - 6308: 0x92B6, - 6309: 0x92B8, - 6310: 0x92BA, - 6311: 0x92BB, - 6312: 0x92BC, - 6313: 0x92BD, - 6314: 0x92BF, - 6315: 0x92C0, - 6316: 0x92C1, - 6317: 0x92C2, - 6318: 0x92C3, - 6319: 0x92C5, - 6320: 0x92C6, - 6321: 0x92C7, - 6322: 0x92C8, - 6323: 0x92CB, - 6324: 0x92CC, - 6325: 0x92CD, - 6326: 0x92CE, - 6327: 0x92D0, - 6328: 0x92D3, - 6329: 0x92D5, - 6330: 0x92D7, - 6331: 0x92D8, - 6332: 0x92D9, - 6333: 0x92DC, - 6334: 0x92DD, - 6335: 0x92DF, - 6336: 0x92E0, - 6337: 0x92E1, - 6338: 0x92E3, - 6339: 0x92E5, - 6340: 0x92E7, - 6341: 0x92E8, - 6342: 0x92EC, - 6343: 0x92EE, - 6344: 0x92F0, - 6345: 0x92F9, - 6346: 0x92FB, - 6347: 0x92FF, - 6348: 0x9300, - 6349: 0x9302, - 6350: 0x9308, - 6351: 0x930D, - 6352: 0x9311, - 6353: 0x9314, - 6354: 0x9315, - 6355: 0x931C, - 6356: 0x931D, - 6357: 0x931E, - 6358: 0x931F, - 6359: 0x9321, - 6360: 0x9324, - 6361: 0x9325, - 6362: 0x9327, - 6363: 0x9329, - 6364: 0x932A, - 6365: 0x9333, - 6366: 0x9334, - 6367: 0x9336, - 6368: 0x9337, - 6369: 0x9347, - 6370: 0x9348, - 6371: 0x9349, - 6372: 0x9350, - 6373: 0x9351, - 6374: 0x9352, - 6375: 0x9355, - 6376: 0x9357, - 6377: 0x9358, - 6378: 0x935A, - 6379: 0x935E, - 6380: 0x9364, - 6381: 0x9365, - 6382: 0x9367, - 6383: 0x9369, - 6384: 0x936A, - 6385: 0x936D, - 6386: 0x936F, - 6387: 0x9370, - 6388: 0x9371, - 6389: 0x9373, - 6390: 0x9374, - 6391: 0x9376, - 6392: 0x937A, - 6393: 0x937D, - 6394: 0x937F, - 6395: 0x9380, - 6396: 0x9381, - 6397: 0x9382, - 6398: 0x9388, - 6399: 0x938A, - 6400: 0x938B, - 6401: 0x938D, - 6402: 0x938F, - 6403: 0x9392, - 6404: 0x9395, - 6405: 0x9398, - 6406: 0x939B, - 6407: 0x939E, - 6408: 0x93A1, - 6409: 0x93A3, - 6410: 0x93A4, - 6411: 0x93A6, - 6412: 0x93A8, - 6413: 0x93AB, - 6414: 0x93B4, - 6415: 0x93B5, - 6416: 0x93B6, - 6417: 0x93BA, - 6418: 0x93A9, - 6419: 0x93C1, - 6420: 0x93C4, - 6421: 0x93C5, - 6422: 0x93C6, - 6423: 0x93C7, - 6424: 0x93C9, - 6425: 0x93CA, - 6426: 0x93CB, - 6427: 0x93CC, - 6428: 0x93CD, - 6429: 0x93D3, - 6430: 0x93D9, - 6431: 0x93DC, - 6432: 0x93DE, - 6433: 0x93DF, - 6434: 0x93E2, - 6435: 0x93E6, - 6436: 0x93E7, - 6437: 0x93F9, - 6438: 0x93F7, - 6439: 0x93F8, - 6440: 0x93FA, - 6441: 0x93FB, - 6442: 0x93FD, - 6443: 0x9401, - 6444: 0x9402, - 6445: 0x9404, - 6446: 0x9408, - 6447: 0x9409, - 6448: 0x940D, - 6449: 0x940E, - 6450: 0x940F, - 6451: 0x9415, - 6452: 0x9416, - 6453: 0x9417, - 6454: 0x941F, - 6455: 0x942E, - 6456: 0x942F, - 6457: 0x9431, - 6458: 0x9432, - 6459: 0x9433, - 6460: 0x9434, - 6461: 0x943B, - 6462: 0x943F, - 6463: 0x943D, - 6464: 0x9443, - 6465: 0x9445, - 6466: 0x9448, - 6467: 0x944A, - 6468: 0x944C, - 6469: 0x9455, - 6470: 0x9459, - 6471: 0x945C, - 6472: 0x945F, - 6473: 0x9461, - 6474: 0x9463, - 6475: 0x9468, - 6476: 0x946B, - 6477: 0x946D, - 6478: 0x946E, - 6479: 0x946F, - 6480: 0x9471, - 6481: 0x9472, - 6482: 0x9484, - 6483: 0x9483, - 6484: 0x9578, - 6485: 0x9579, - 6486: 0x957E, - 6487: 0x9584, - 6488: 0x9588, - 6489: 0x958C, - 6490: 0x958D, - 6491: 0x958E, - 6492: 0x959D, - 6493: 0x959E, - 6494: 0x959F, - 6495: 0x95A1, - 6496: 0x95A6, - 6497: 0x95A9, - 6498: 0x95AB, - 6499: 0x95AC, - 6500: 0x95B4, - 6501: 0x95B6, - 6502: 0x95BA, - 6503: 0x95BD, - 6504: 0x95BF, - 6505: 0x95C6, - 6506: 0x95C8, - 6507: 0x95C9, - 6508: 0x95CB, - 6509: 0x95D0, - 6510: 0x95D1, - 6511: 0x95D2, - 6512: 0x95D3, - 6513: 0x95D9, - 6514: 0x95DA, - 6515: 0x95DD, - 6516: 0x95DE, - 6517: 0x95DF, - 6518: 0x95E0, - 6519: 0x95E4, - 6520: 0x95E6, - 6521: 0x961D, - 6522: 0x961E, - 6523: 0x9622, - 6524: 0x9624, - 6525: 0x9625, - 6526: 0x9626, - 6527: 0x962C, - 6528: 0x9631, - 6529: 0x9633, - 6530: 0x9637, - 6531: 0x9638, - 6532: 0x9639, - 6533: 0x963A, - 6534: 0x963C, - 6535: 0x963D, - 6536: 0x9641, - 6537: 0x9652, - 6538: 0x9654, - 6539: 0x9656, - 6540: 0x9657, - 6541: 0x9658, - 6542: 0x9661, - 6543: 0x966E, - 6544: 0x9674, - 6545: 0x967B, - 6546: 0x967C, - 6547: 0x967E, - 6548: 0x967F, - 6549: 0x9681, - 6550: 0x9682, - 6551: 0x9683, - 6552: 0x9684, - 6553: 0x9689, - 6554: 0x9691, - 6555: 0x9696, - 6556: 0x969A, - 6557: 0x969D, - 6558: 0x969F, - 6559: 0x96A4, - 6560: 0x96A5, - 6561: 0x96A6, - 6562: 0x96A9, - 6563: 0x96AE, - 6564: 0x96AF, - 6565: 0x96B3, - 6566: 0x96BA, - 6567: 0x96CA, - 6568: 0x96D2, - 6569: 0x5DB2, - 6570: 0x96D8, - 6571: 0x96DA, - 6572: 0x96DD, - 6573: 0x96DE, - 6574: 0x96DF, - 6575: 0x96E9, - 6576: 0x96EF, - 6577: 0x96F1, - 6578: 0x96FA, - 6579: 0x9702, - 6580: 0x9703, - 6581: 0x9705, - 6582: 0x9709, - 6583: 0x971A, - 6584: 0x971B, - 6585: 0x971D, - 6586: 0x9721, - 6587: 0x9722, - 6588: 0x9723, - 6589: 0x9728, - 6590: 0x9731, - 6591: 0x9733, - 6592: 0x9741, - 6593: 0x9743, - 6594: 0x974A, - 6595: 0x974E, - 6596: 0x974F, - 6597: 0x9755, - 6598: 0x9757, - 6599: 0x9758, - 6600: 0x975A, - 6601: 0x975B, - 6602: 0x9763, - 6603: 0x9767, - 6604: 0x976A, - 6605: 0x976E, - 6606: 0x9773, - 6607: 0x9776, - 6608: 0x9777, - 6609: 0x9778, - 6610: 0x977B, - 6611: 0x977D, - 6612: 0x977F, - 6613: 0x9780, - 6614: 0x9789, - 6615: 0x9795, - 6616: 0x9796, - 6617: 0x9797, - 6618: 0x9799, - 6619: 0x979A, - 6620: 0x979E, - 6621: 0x979F, - 6622: 0x97A2, - 6623: 0x97AC, - 6624: 0x97AE, - 6625: 0x97B1, - 6626: 0x97B2, - 6627: 0x97B5, - 6628: 0x97B6, - 6629: 0x97B8, - 6630: 0x97B9, - 6631: 0x97BA, - 6632: 0x97BC, - 6633: 0x97BE, - 6634: 0x97BF, - 6635: 0x97C1, - 6636: 0x97C4, - 6637: 0x97C5, - 6638: 0x97C7, - 6639: 0x97C9, - 6640: 0x97CA, - 6641: 0x97CC, - 6642: 0x97CD, - 6643: 0x97CE, - 6644: 0x97D0, - 6645: 0x97D1, - 6646: 0x97D4, - 6647: 0x97D7, - 6648: 0x97D8, - 6649: 0x97D9, - 6650: 0x97DD, - 6651: 0x97DE, - 6652: 0x97E0, - 6653: 0x97DB, - 6654: 0x97E1, - 6655: 0x97E4, - 6656: 0x97EF, - 6657: 0x97F1, - 6658: 0x97F4, - 6659: 0x97F7, - 6660: 0x97F8, - 6661: 0x97FA, - 6662: 0x9807, - 6663: 0x980A, - 6664: 0x9819, - 6665: 0x980D, - 6666: 0x980E, - 6667: 0x9814, - 6668: 0x9816, - 6669: 0x981C, - 6670: 0x981E, - 6671: 0x9820, - 6672: 0x9823, - 6673: 0x9826, - 6674: 0x982B, - 6675: 0x982E, - 6676: 0x982F, - 6677: 0x9830, - 6678: 0x9832, - 6679: 0x9833, - 6680: 0x9835, - 6681: 0x9825, - 6682: 0x983E, - 6683: 0x9844, - 6684: 0x9847, - 6685: 0x984A, - 6686: 0x9851, - 6687: 0x9852, - 6688: 0x9853, - 6689: 0x9856, - 6690: 0x9857, - 6691: 0x9859, - 6692: 0x985A, - 6693: 0x9862, - 6694: 0x9863, - 6695: 0x9865, - 6696: 0x9866, - 6697: 0x986A, - 6698: 0x986C, - 6699: 0x98AB, - 6700: 0x98AD, - 6701: 0x98AE, - 6702: 0x98B0, - 6703: 0x98B4, - 6704: 0x98B7, - 6705: 0x98B8, - 6706: 0x98BA, - 6707: 0x98BB, - 6708: 0x98BF, - 6709: 0x98C2, - 6710: 0x98C5, - 6711: 0x98C8, - 6712: 0x98CC, - 6713: 0x98E1, - 6714: 0x98E3, - 6715: 0x98E5, - 6716: 0x98E6, - 6717: 0x98E7, - 6718: 0x98EA, - 6719: 0x98F3, - 6720: 0x98F6, - 6721: 0x9902, - 6722: 0x9907, - 6723: 0x9908, - 6724: 0x9911, - 6725: 0x9915, - 6726: 0x9916, - 6727: 0x9917, - 6728: 0x991A, - 6729: 0x991B, - 6730: 0x991C, - 6731: 0x991F, - 6732: 0x9922, - 6733: 0x9926, - 6734: 0x9927, - 6735: 0x992B, - 6736: 0x9931, - 6737: 0x9932, - 6738: 0x9933, - 6739: 0x9934, - 6740: 0x9935, - 6741: 0x9939, - 6742: 0x993A, - 6743: 0x993B, - 6744: 0x993C, - 6745: 0x9940, - 6746: 0x9941, - 6747: 0x9946, - 6748: 0x9947, - 6749: 0x9948, - 6750: 0x994D, - 6751: 0x994E, - 6752: 0x9954, - 6753: 0x9958, - 6754: 0x9959, - 6755: 0x995B, - 6756: 0x995C, - 6757: 0x995E, - 6758: 0x995F, - 6759: 0x9960, - 6760: 0x999B, - 6761: 0x999D, - 6762: 0x999F, - 6763: 0x99A6, - 6764: 0x99B0, - 6765: 0x99B1, - 6766: 0x99B2, - 6767: 0x99B5, - 6768: 0x99B9, - 6769: 0x99BA, - 6770: 0x99BD, - 6771: 0x99BF, - 6772: 0x99C3, - 6773: 0x99C9, - 6774: 0x99D3, - 6775: 0x99D4, - 6776: 0x99D9, - 6777: 0x99DA, - 6778: 0x99DC, - 6779: 0x99DE, - 6780: 0x99E7, - 6781: 0x99EA, - 6782: 0x99EB, - 6783: 0x99EC, - 6784: 0x99F0, - 6785: 0x99F4, - 6786: 0x99F5, - 6787: 0x99F9, - 6788: 0x99FD, - 6789: 0x99FE, - 6790: 0x9A02, - 6791: 0x9A03, - 6792: 0x9A04, - 6793: 0x9A0B, - 6794: 0x9A0C, - 6795: 0x9A10, - 6796: 0x9A11, - 6797: 0x9A16, - 6798: 0x9A1E, - 6799: 0x9A20, - 6800: 0x9A22, - 6801: 0x9A23, - 6802: 0x9A24, - 6803: 0x9A27, - 6804: 0x9A2D, - 6805: 0x9A2E, - 6806: 0x9A33, - 6807: 0x9A35, - 6808: 0x9A36, - 6809: 0x9A38, - 6810: 0x9A47, - 6811: 0x9A41, - 6812: 0x9A44, - 6813: 0x9A4A, - 6814: 0x9A4B, - 6815: 0x9A4C, - 6816: 0x9A4E, - 6817: 0x9A51, - 6818: 0x9A54, - 6819: 0x9A56, - 6820: 0x9A5D, - 6821: 0x9AAA, - 6822: 0x9AAC, - 6823: 0x9AAE, - 6824: 0x9AAF, - 6825: 0x9AB2, - 6826: 0x9AB4, - 6827: 0x9AB5, - 6828: 0x9AB6, - 6829: 0x9AB9, - 6830: 0x9ABB, - 6831: 0x9ABE, - 6832: 0x9ABF, - 6833: 0x9AC1, - 6834: 0x9AC3, - 6835: 0x9AC6, - 6836: 0x9AC8, - 6837: 0x9ACE, - 6838: 0x9AD0, - 6839: 0x9AD2, - 6840: 0x9AD5, - 6841: 0x9AD6, - 6842: 0x9AD7, - 6843: 0x9ADB, - 6844: 0x9ADC, - 6845: 0x9AE0, - 6846: 0x9AE4, - 6847: 0x9AE5, - 6848: 0x9AE7, - 6849: 0x9AE9, - 6850: 0x9AEC, - 6851: 0x9AF2, - 6852: 0x9AF3, - 6853: 0x9AF5, - 6854: 0x9AF9, - 6855: 0x9AFA, - 6856: 0x9AFD, - 6857: 0x9AFF, - 6858: 0x9B00, - 6859: 0x9B01, - 6860: 0x9B02, - 6861: 0x9B03, - 6862: 0x9B04, - 6863: 0x9B05, - 6864: 0x9B08, - 6865: 0x9B09, - 6866: 0x9B0B, - 6867: 0x9B0C, - 6868: 0x9B0D, - 6869: 0x9B0E, - 6870: 0x9B10, - 6871: 0x9B12, - 6872: 0x9B16, - 6873: 0x9B19, - 6874: 0x9B1B, - 6875: 0x9B1C, - 6876: 0x9B20, - 6877: 0x9B26, - 6878: 0x9B2B, - 6879: 0x9B2D, - 6880: 0x9B33, - 6881: 0x9B34, - 6882: 0x9B35, - 6883: 0x9B37, - 6884: 0x9B39, - 6885: 0x9B3A, - 6886: 0x9B3D, - 6887: 0x9B48, - 6888: 0x9B4B, - 6889: 0x9B4C, - 6890: 0x9B55, - 6891: 0x9B56, - 6892: 0x9B57, - 6893: 0x9B5B, - 6894: 0x9B5E, - 6895: 0x9B61, - 6896: 0x9B63, - 6897: 0x9B65, - 6898: 0x9B66, - 6899: 0x9B68, - 6900: 0x9B6A, - 6901: 0x9B6B, - 6902: 0x9B6C, - 6903: 0x9B6D, - 6904: 0x9B6E, - 6905: 0x9B73, - 6906: 0x9B75, - 6907: 0x9B77, - 6908: 0x9B78, - 6909: 0x9B79, - 6910: 0x9B7F, - 6911: 0x9B80, - 6912: 0x9B84, - 6913: 0x9B85, - 6914: 0x9B86, - 6915: 0x9B87, - 6916: 0x9B89, - 6917: 0x9B8A, - 6918: 0x9B8B, - 6919: 0x9B8D, - 6920: 0x9B8F, - 6921: 0x9B90, - 6922: 0x9B94, - 6923: 0x9B9A, - 6924: 0x9B9D, - 6925: 0x9B9E, - 6926: 0x9BA6, - 6927: 0x9BA7, - 6928: 0x9BA9, - 6929: 0x9BAC, - 6930: 0x9BB0, - 6931: 0x9BB1, - 6932: 0x9BB2, - 6933: 0x9BB7, - 6934: 0x9BB8, - 6935: 0x9BBB, - 6936: 0x9BBC, - 6937: 0x9BBE, - 6938: 0x9BBF, - 6939: 0x9BC1, - 6940: 0x9BC7, - 6941: 0x9BC8, - 6942: 0x9BCE, - 6943: 0x9BD0, - 6944: 0x9BD7, - 6945: 0x9BD8, - 6946: 0x9BDD, - 6947: 0x9BDF, - 6948: 0x9BE5, - 6949: 0x9BE7, - 6950: 0x9BEA, - 6951: 0x9BEB, - 6952: 0x9BEF, - 6953: 0x9BF3, - 6954: 0x9BF7, - 6955: 0x9BF8, - 6956: 0x9BF9, - 6957: 0x9BFA, - 6958: 0x9BFD, - 6959: 0x9BFF, - 6960: 0x9C00, - 6961: 0x9C02, - 6962: 0x9C0B, - 6963: 0x9C0F, - 6964: 0x9C11, - 6965: 0x9C16, - 6966: 0x9C18, - 6967: 0x9C19, - 6968: 0x9C1A, - 6969: 0x9C1C, - 6970: 0x9C1E, - 6971: 0x9C22, - 6972: 0x9C23, - 6973: 0x9C26, - 6974: 0x9C27, - 6975: 0x9C28, - 6976: 0x9C29, - 6977: 0x9C2A, - 6978: 0x9C31, - 6979: 0x9C35, - 6980: 0x9C36, - 6981: 0x9C37, - 6982: 0x9C3D, - 6983: 0x9C41, - 6984: 0x9C43, - 6985: 0x9C44, - 6986: 0x9C45, - 6987: 0x9C49, - 6988: 0x9C4A, - 6989: 0x9C4E, - 6990: 0x9C4F, - 6991: 0x9C50, - 6992: 0x9C53, - 6993: 0x9C54, - 6994: 0x9C56, - 6995: 0x9C58, - 6996: 0x9C5B, - 6997: 0x9C5D, - 6998: 0x9C5E, - 6999: 0x9C5F, - 7000: 0x9C63, - 7001: 0x9C69, - 7002: 0x9C6A, - 7003: 0x9C5C, - 7004: 0x9C6B, - 7005: 0x9C68, - 7006: 0x9C6E, - 7007: 0x9C70, - 7008: 0x9C72, - 7009: 0x9C75, - 7010: 0x9C77, - 7011: 0x9C7B, - 7012: 0x9CE6, - 7013: 0x9CF2, - 7014: 0x9CF7, - 7015: 0x9CF9, - 7016: 0x9D0B, - 7017: 0x9D02, - 7018: 0x9D11, - 7019: 0x9D17, - 7020: 0x9D18, - 7021: 0x9D1C, - 7022: 0x9D1D, - 7023: 0x9D1E, - 7024: 0x9D2F, - 7025: 0x9D30, - 7026: 0x9D32, - 7027: 0x9D33, - 7028: 0x9D34, - 7029: 0x9D3A, - 7030: 0x9D3C, - 7031: 0x9D45, - 7032: 0x9D3D, - 7033: 0x9D42, - 7034: 0x9D43, - 7035: 0x9D47, - 7036: 0x9D4A, - 7037: 0x9D53, - 7038: 0x9D54, - 7039: 0x9D5F, - 7040: 0x9D63, - 7041: 0x9D62, - 7042: 0x9D65, - 7043: 0x9D69, - 7044: 0x9D6A, - 7045: 0x9D6B, - 7046: 0x9D70, - 7047: 0x9D76, - 7048: 0x9D77, - 7049: 0x9D7B, - 7050: 0x9D7C, - 7051: 0x9D7E, - 7052: 0x9D83, - 7053: 0x9D84, - 7054: 0x9D86, - 7055: 0x9D8A, - 7056: 0x9D8D, - 7057: 0x9D8E, - 7058: 0x9D92, - 7059: 0x9D93, - 7060: 0x9D95, - 7061: 0x9D96, - 7062: 0x9D97, - 7063: 0x9D98, - 7064: 0x9DA1, - 7065: 0x9DAA, - 7066: 0x9DAC, - 7067: 0x9DAE, - 7068: 0x9DB1, - 7069: 0x9DB5, - 7070: 0x9DB9, - 7071: 0x9DBC, - 7072: 0x9DBF, - 7073: 0x9DC3, - 7074: 0x9DC7, - 7075: 0x9DC9, - 7076: 0x9DCA, - 7077: 0x9DD4, - 7078: 0x9DD5, - 7079: 0x9DD6, - 7080: 0x9DD7, - 7081: 0x9DDA, - 7082: 0x9DDE, - 7083: 0x9DDF, - 7084: 0x9DE0, - 7085: 0x9DE5, - 7086: 0x9DE7, - 7087: 0x9DE9, - 7088: 0x9DEB, - 7089: 0x9DEE, - 7090: 0x9DF0, - 7091: 0x9DF3, - 7092: 0x9DF4, - 7093: 0x9DFE, - 7094: 0x9E0A, - 7095: 0x9E02, - 7096: 0x9E07, - 7097: 0x9E0E, - 7098: 0x9E10, - 7099: 0x9E11, - 7100: 0x9E12, - 7101: 0x9E15, - 7102: 0x9E16, - 7103: 0x9E19, - 7104: 0x9E1C, - 7105: 0x9E1D, - 7106: 0x9E7A, - 7107: 0x9E7B, - 7108: 0x9E7C, - 7109: 0x9E80, - 7110: 0x9E82, - 7111: 0x9E83, - 7112: 0x9E84, - 7113: 0x9E85, - 7114: 0x9E87, - 7115: 0x9E8E, - 7116: 0x9E8F, - 7117: 0x9E96, - 7118: 0x9E98, - 7119: 0x9E9B, - 7120: 0x9E9E, - 7121: 0x9EA4, - 7122: 0x9EA8, - 7123: 0x9EAC, - 7124: 0x9EAE, - 7125: 0x9EAF, - 7126: 0x9EB0, - 7127: 0x9EB3, - 7128: 0x9EB4, - 7129: 0x9EB5, - 7130: 0x9EC6, - 7131: 0x9EC8, - 7132: 0x9ECB, - 7133: 0x9ED5, - 7134: 0x9EDF, - 7135: 0x9EE4, - 7136: 0x9EE7, - 7137: 0x9EEC, - 7138: 0x9EED, - 7139: 0x9EEE, - 7140: 0x9EF0, - 7141: 0x9EF1, - 7142: 0x9EF2, - 7143: 0x9EF5, - 7144: 0x9EF8, - 7145: 0x9EFF, - 7146: 0x9F02, - 7147: 0x9F03, - 7148: 0x9F09, - 7149: 0x9F0F, - 7150: 0x9F10, - 7151: 0x9F11, - 7152: 0x9F12, - 7153: 0x9F14, - 7154: 0x9F16, - 7155: 0x9F17, - 7156: 0x9F19, - 7157: 0x9F1A, - 7158: 0x9F1B, - 7159: 0x9F1F, - 7160: 0x9F22, - 7161: 0x9F26, - 7162: 0x9F2A, - 7163: 0x9F2B, - 7164: 0x9F2F, - 7165: 0x9F31, - 7166: 0x9F32, - 7167: 0x9F34, - 7168: 0x9F37, - 7169: 0x9F39, - 7170: 0x9F3A, - 7171: 0x9F3C, - 7172: 0x9F3D, - 7173: 0x9F3F, - 7174: 0x9F41, - 7175: 0x9F43, - 7176: 0x9F44, - 7177: 0x9F45, - 7178: 0x9F46, - 7179: 0x9F47, - 7180: 0x9F53, - 7181: 0x9F55, - 7182: 0x9F56, - 7183: 0x9F57, - 7184: 0x9F58, - 7185: 0x9F5A, - 7186: 0x9F5D, - 7187: 0x9F5E, - 7188: 0x9F68, - 7189: 0x9F69, - 7190: 0x9F6D, - 7191: 0x9F6E, - 7192: 0x9F6F, - 7193: 0x9F70, - 7194: 0x9F71, - 7195: 0x9F73, - 7196: 0x9F75, - 7197: 0x9F7A, - 7198: 0x9F7D, - 7199: 0x9F8F, - 7200: 0x9F90, - 7201: 0x9F91, - 7202: 0x9F92, - 7203: 0x9F94, - 7204: 0x9F96, - 7205: 0x9F97, - 7206: 0x9F9E, - 7207: 0x9FA1, - 7208: 0x9FA2, - 7209: 0x9FA3, - 7210: 0x9FA5, -} - -const ( - jis0208 = 1 - jis0212 = 2 - codeMask = 0x7f - codeShift = 7 - tableShift = 14 -) - -const numEncodeTables = 6 - -// encodeX are the encoding tables from Unicode to JIS code, -// sorted by decreasing length. -// encode0: 20902 entries for runes in [19968, 40870). -// encode1: 1632 entries for runes in [ 8208, 9840). -// encode2: 974 entries for runes in [12288, 13262). -// encode3: 959 entries for runes in [ 161, 1120). -// encode4: 261 entries for runes in [63785, 64046). -// encode5: 229 entries for runes in [65281, 65510). -// -// The high two bits of the value record whether the JIS code comes from the -// JIS0208 table (high bits == 1) or the JIS0212 table (high bits == 2). -// The low 14 bits are two 7-bit unsigned integers j1 and j2 that form the -// JIS code (94*j1 + j2) within that table. - -const encode0Low, encode0High = 19968, 40870 - -var encode0 = [...]uint16{ - 19968 - 19968: jis0208<<14 | 0x0F<<7 | 0x4B, - 19969 - 19968: jis0208<<14 | 0x22<<7 | 0x59, - 19970 - 19968: jis0212<<14 | 0x0F<<7 | 0x00, - 19971 - 19968: jis0208<<14 | 0x1B<<7 | 0x16, - 19972 - 19968: jis0212<<14 | 0x0F<<7 | 0x01, - 19973 - 19968: jis0212<<14 | 0x0F<<7 | 0x02, - 19975 - 19968: jis0208<<14 | 0x2A<<7 | 0x5B, - 19976 - 19968: jis0208<<14 | 0x1D<<7 | 0x45, - 19977 - 19968: jis0208<<14 | 0x1A<<7 | 0x0F, - 19978 - 19968: jis0208<<14 | 0x1D<<7 | 0x44, - 19979 - 19968: jis0208<<14 | 0x11<<7 | 0x1B, - 19980 - 19968: jis0212<<14 | 0x0F<<7 | 0x03, - 19981 - 19968: jis0208<<14 | 0x28<<7 | 0x33, - 19982 - 19968: jis0208<<14 | 0x2C<<7 | 0x1E, - 19984 - 19968: jis0208<<14 | 0x2F<<7 | 0x01, - 19985 - 19968: jis0208<<14 | 0x10<<7 | 0x0E, - 19986 - 19968: jis0212<<14 | 0x0F<<7 | 0x04, - 19988 - 19968: jis0208<<14 | 0x12<<7 | 0x4D, - 19989 - 19968: jis0208<<14 | 0x2F<<7 | 0x02, - 19990 - 19968: jis0208<<14 | 0x1F<<7 | 0x03, - 19991 - 19968: jis0208<<14 | 0x31<<7 | 0x21, - 19992 - 19968: jis0208<<14 | 0x14<<7 | 0x35, - 19993 - 19968: jis0208<<14 | 0x29<<7 | 0x19, - 19998 - 19968: jis0208<<14 | 0x1D<<7 | 0x46, - 19999 - 19968: jis0212<<14 | 0x0F<<7 | 0x05, - 20001 - 19968: jis0208<<14 | 0x2D<<7 | 0x1D, - 20003 - 19968: jis0212<<14 | 0x0F<<7 | 0x06, - 20004 - 19968: jis0212<<14 | 0x0F<<7 | 0x07, - 20006 - 19968: jis0208<<14 | 0x29<<7 | 0x21, - 20008 - 19968: jis0208<<14 | 0x58<<7 | 0x0C, - 20010 - 19968: jis0208<<14 | 0x2F<<7 | 0x03, - 20011 - 19968: jis0212<<14 | 0x0F<<7 | 0x09, - 20013 - 19968: jis0208<<14 | 0x22<<7 | 0x45, - 20014 - 19968: jis0212<<14 | 0x0F<<7 | 0x0A, - 20015 - 19968: jis0212<<14 | 0x0F<<7 | 0x0B, - 20016 - 19968: jis0212<<14 | 0x0F<<7 | 0x0C, - 20017 - 19968: jis0208<<14 | 0x2F<<7 | 0x04, - 20018 - 19968: jis0208<<14 | 0x15<<7 | 0x59, - 20021 - 19968: jis0212<<14 | 0x0F<<7 | 0x0D, - 20022 - 19968: jis0208<<14 | 0x2F<<7 | 0x05, - 20024 - 19968: jis0208<<14 | 0x13<<7 | 0x3C, - 20025 - 19968: jis0208<<14 | 0x22<<7 | 0x0F, - 20027 - 19968: jis0208<<14 | 0x1B<<7 | 0x46, - 20028 - 19968: jis0208<<14 | 0x2F<<7 | 0x06, - 20031 - 19968: jis0208<<14 | 0x2F<<7 | 0x07, - 20032 - 19968: jis0212<<14 | 0x0F<<7 | 0x0E, - 20033 - 19968: jis0212<<14 | 0x0F<<7 | 0x0F, - 20034 - 19968: jis0208<<14 | 0x2F<<7 | 0x08, - 20035 - 19968: jis0208<<14 | 0x26<<7 | 0x14, - 20036 - 19968: jis0212<<14 | 0x0F<<7 | 0x10, - 20037 - 19968: jis0208<<14 | 0x14<<7 | 0x36, - 20039 - 19968: jis0212<<14 | 0x0F<<7 | 0x11, - 20043 - 19968: jis0208<<14 | 0x26<<7 | 0x16, - 20045 - 19968: jis0208<<14 | 0x25<<7 | 0x42, - 20046 - 19968: jis0208<<14 | 0x17<<7 | 0x22, - 20047 - 19968: jis0208<<14 | 0x2A<<7 | 0x12, - 20049 - 19968: jis0212<<14 | 0x0F<<7 | 0x12, - 20053 - 19968: jis0208<<14 | 0x48<<7 | 0x28, - 20054 - 19968: jis0208<<14 | 0x2F<<7 | 0x09, - 20055 - 19968: jis0208<<14 | 0x1D<<7 | 0x47, - 20056 - 19968: jis0208<<14 | 0x2F<<7 | 0x0A, - 20057 - 19968: jis0208<<14 | 0x11<<7 | 0x14, - 20058 - 19968: jis0212<<14 | 0x0F<<7 | 0x13, - 20060 - 19968: jis0212<<14 | 0x0F<<7 | 0x14, - 20061 - 19968: jis0208<<14 | 0x15<<7 | 0x44, - 20062 - 19968: jis0208<<14 | 0x17<<7 | 0x4F, - 20063 - 19968: jis0208<<14 | 0x2B<<7 | 0x48, - 20066 - 19968: jis0208<<14 | 0x35<<7 | 0x05, - 20067 - 19968: jis0212<<14 | 0x0F<<7 | 0x15, - 20072 - 19968: jis0212<<14 | 0x0F<<7 | 0x16, - 20073 - 19968: jis0212<<14 | 0x0F<<7 | 0x17, - 20081 - 19968: jis0208<<14 | 0x2C<<7 | 0x4F, - 20083 - 19968: jis0208<<14 | 0x25<<7 | 0x5C, - 20084 - 19968: jis0212<<14 | 0x0F<<7 | 0x18, - 20085 - 19968: jis0212<<14 | 0x0F<<7 | 0x19, - 20089 - 19968: jis0212<<14 | 0x0F<<7 | 0x1A, - 20094 - 19968: jis0208<<14 | 0x13<<7 | 0x04, - 20095 - 19968: jis0212<<14 | 0x0F<<7 | 0x1B, - 20096 - 19968: jis0208<<14 | 0x14<<7 | 0x14, - 20098 - 19968: jis0208<<14 | 0x2F<<7 | 0x0B, - 20101 - 19968: jis0208<<14 | 0x2F<<7 | 0x0C, - 20102 - 19968: jis0208<<14 | 0x2D<<7 | 0x1A, - 20104 - 19968: jis0208<<14 | 0x2C<<7 | 0x1C, - 20105 - 19968: jis0208<<14 | 0x20<<7 | 0x47, - 20106 - 19968: jis0208<<14 | 0x2F<<7 | 0x0E, - 20107 - 19968: jis0208<<14 | 0x1A<<7 | 0x55, - 20108 - 19968: jis0208<<14 | 0x25<<7 | 0x52, - 20109 - 19968: jis0212<<14 | 0x0F<<7 | 0x1C, - 20110 - 19968: jis0208<<14 | 0x2F<<7 | 0x11, - 20113 - 19968: jis0208<<14 | 0x10<<7 | 0x1D, - 20114 - 19968: jis0208<<14 | 0x17<<7 | 0x3E, - 20116 - 19968: jis0208<<14 | 0x17<<7 | 0x3D, - 20117 - 19968: jis0208<<14 | 0x0F<<7 | 0x45, - 20118 - 19968: jis0212<<14 | 0x0F<<7 | 0x1D, - 20119 - 19968: jis0212<<14 | 0x0F<<7 | 0x1E, - 20120 - 19968: jis0208<<14 | 0x2E<<7 | 0x2A, - 20121 - 19968: jis0208<<14 | 0x2E<<7 | 0x29, - 20123 - 19968: jis0208<<14 | 0x19<<7 | 0x12, - 20124 - 19968: jis0208<<14 | 0x0F<<7 | 0x00, - 20125 - 19968: jis0212<<14 | 0x0F<<7 | 0x1F, - 20126 - 19968: jis0208<<14 | 0x2F<<7 | 0x12, - 20127 - 19968: jis0208<<14 | 0x2F<<7 | 0x13, - 20128 - 19968: jis0208<<14 | 0x2F<<7 | 0x14, - 20129 - 19968: jis0208<<14 | 0x2A<<7 | 0x13, - 20130 - 19968: jis0208<<14 | 0x2F<<7 | 0x15, - 20132 - 19968: jis0208<<14 | 0x17<<7 | 0x51, - 20133 - 19968: jis0208<<14 | 0x0F<<7 | 0x46, - 20134 - 19968: jis0208<<14 | 0x2A<<7 | 0x51, - 20136 - 19968: jis0208<<14 | 0x14<<7 | 0x5B, - 20139 - 19968: jis0208<<14 | 0x14<<7 | 0x5C, - 20140 - 19968: jis0208<<14 | 0x14<<7 | 0x5D, - 20141 - 19968: jis0208<<14 | 0x23<<7 | 0x41, - 20142 - 19968: jis0208<<14 | 0x2D<<7 | 0x1B, - 20143 - 19968: jis0212<<14 | 0x0F<<7 | 0x20, - 20144 - 19968: jis0208<<14 | 0x2F<<7 | 0x16, - 20147 - 19968: jis0208<<14 | 0x2F<<7 | 0x17, - 20150 - 19968: jis0208<<14 | 0x2F<<7 | 0x18, - 20153 - 19968: jis0212<<14 | 0x0F<<7 | 0x21, - 20154 - 19968: jis0208<<14 | 0x1E<<7 | 0x2C, - 20160 - 19968: jis0208<<14 | 0x1C<<7 | 0x19, - 20161 - 19968: jis0208<<14 | 0x1E<<7 | 0x2D, - 20162 - 19968: jis0208<<14 | 0x2F<<7 | 0x1D, - 20163 - 19968: jis0212<<14 | 0x0F<<7 | 0x22, - 20164 - 19968: jis0208<<14 | 0x2F<<7 | 0x1B, - 20166 - 19968: jis0208<<14 | 0x2F<<7 | 0x1C, - 20167 - 19968: jis0208<<14 | 0x14<<7 | 0x37, - 20170 - 19968: jis0208<<14 | 0x19<<7 | 0x02, - 20171 - 19968: jis0208<<14 | 0x11<<7 | 0x4F, - 20173 - 19968: jis0208<<14 | 0x2F<<7 | 0x1A, - 20174 - 19968: jis0208<<14 | 0x2F<<7 | 0x19, - 20175 - 19968: jis0208<<14 | 0x29<<7 | 0x08, - 20176 - 19968: jis0212<<14 | 0x0F<<7 | 0x23, - 20180 - 19968: jis0208<<14 | 0x1A<<7 | 0x25, - 20181 - 19968: jis0208<<14 | 0x1A<<7 | 0x24, - 20182 - 19968: jis0208<<14 | 0x21<<7 | 0x1D, - 20183 - 19968: jis0208<<14 | 0x2F<<7 | 0x1E, - 20184 - 19968: jis0208<<14 | 0x28<<7 | 0x34, - 20185 - 19968: jis0208<<14 | 0x1F<<7 | 0x46, - 20186 - 19968: jis0212<<14 | 0x0F<<7 | 0x24, - 20187 - 19968: jis0212<<14 | 0x0F<<7 | 0x25, - 20189 - 19968: jis0208<<14 | 0x00<<7 | 0x17, - 20190 - 19968: jis0208<<14 | 0x2F<<7 | 0x1F, - 20191 - 19968: jis0208<<14 | 0x2F<<7 | 0x21, - 20192 - 19968: jis0212<<14 | 0x0F<<7 | 0x26, - 20193 - 19968: jis0208<<14 | 0x58<<7 | 0x0D, - 20194 - 19968: jis0212<<14 | 0x0F<<7 | 0x28, - 20195 - 19968: jis0208<<14 | 0x21<<7 | 0x44, - 20196 - 19968: jis0208<<14 | 0x2D<<7 | 0x40, - 20197 - 19968: jis0208<<14 | 0x0F<<7 | 0x29, - 20200 - 19968: jis0212<<14 | 0x0F<<7 | 0x29, - 20205 - 19968: jis0208<<14 | 0x2F<<7 | 0x20, - 20206 - 19968: jis0208<<14 | 0x11<<7 | 0x1D, - 20207 - 19968: jis0212<<14 | 0x0F<<7 | 0x2A, - 20208 - 19968: jis0208<<14 | 0x15<<7 | 0x23, - 20209 - 19968: jis0212<<14 | 0x0F<<7 | 0x2B, - 20210 - 19968: jis0208<<14 | 0x22<<7 | 0x46, - 20211 - 19968: jis0212<<14 | 0x0F<<7 | 0x2C, - 20213 - 19968: jis0212<<14 | 0x0F<<7 | 0x2D, - 20214 - 19968: jis0208<<14 | 0x16<<7 | 0x4E, - 20215 - 19968: jis0208<<14 | 0x2F<<7 | 0x22, - 20219 - 19968: jis0208<<14 | 0x26<<7 | 0x03, - 20220 - 19968: jis0208<<14 | 0x58<<7 | 0x0E, - 20221 - 19968: jis0212<<14 | 0x0F<<7 | 0x2E, - 20222 - 19968: jis0212<<14 | 0x0F<<7 | 0x2F, - 20223 - 19968: jis0212<<14 | 0x0F<<7 | 0x30, - 20224 - 19968: jis0208<<14 | 0x58<<7 | 0x0F, - 20225 - 19968: jis0208<<14 | 0x13<<7 | 0x4A, - 20226 - 19968: jis0212<<14 | 0x0F<<7 | 0x32, - 20227 - 19968: jis0208<<14 | 0x58<<7 | 0x10, - 20232 - 19968: jis0212<<14 | 0x0F<<7 | 0x34, - 20233 - 19968: jis0208<<14 | 0x2F<<7 | 0x23, - 20234 - 19968: jis0208<<14 | 0x0F<<7 | 0x2A, - 20235 - 19968: jis0212<<14 | 0x0F<<7 | 0x35, - 20236 - 19968: jis0212<<14 | 0x0F<<7 | 0x36, - 20237 - 19968: jis0208<<14 | 0x17<<7 | 0x3F, - 20238 - 19968: jis0208<<14 | 0x13<<7 | 0x4B, - 20239 - 19968: jis0208<<14 | 0x28<<7 | 0x59, - 20240 - 19968: jis0208<<14 | 0x27<<7 | 0x11, - 20241 - 19968: jis0208<<14 | 0x14<<7 | 0x38, - 20242 - 19968: jis0212<<14 | 0x0F<<7 | 0x37, - 20245 - 19968: jis0212<<14 | 0x0F<<7 | 0x38, - 20246 - 19968: jis0212<<14 | 0x0F<<7 | 0x39, - 20247 - 19968: jis0212<<14 | 0x0F<<7 | 0x3A, - 20249 - 19968: jis0212<<14 | 0x0F<<7 | 0x3B, - 20250 - 19968: jis0208<<14 | 0x11<<7 | 0x50, - 20252 - 19968: jis0208<<14 | 0x2F<<7 | 0x46, - 20253 - 19968: jis0208<<14 | 0x24<<7 | 0x20, - 20270 - 19968: jis0212<<14 | 0x0F<<7 | 0x3C, - 20271 - 19968: jis0208<<14 | 0x26<<7 | 0x4B, - 20272 - 19968: jis0208<<14 | 0x2F<<7 | 0x25, - 20273 - 19968: jis0212<<14 | 0x0F<<7 | 0x3D, - 20275 - 19968: jis0212<<14 | 0x0F<<7 | 0x3F, - 20276 - 19968: jis0208<<14 | 0x27<<7 | 0x1B, - 20277 - 19968: jis0212<<14 | 0x0F<<7 | 0x40, - 20278 - 19968: jis0208<<14 | 0x2D<<7 | 0x41, - 20279 - 19968: jis0212<<14 | 0x0F<<7 | 0x41, - 20280 - 19968: jis0208<<14 | 0x1E<<7 | 0x0C, - 20281 - 19968: jis0208<<14 | 0x58<<7 | 0x11, - 20282 - 19968: jis0208<<14 | 0x1A<<7 | 0x26, - 20283 - 19968: jis0212<<14 | 0x0F<<7 | 0x43, - 20284 - 19968: jis0208<<14 | 0x1A<<7 | 0x56, - 20285 - 19968: jis0208<<14 | 0x11<<7 | 0x1F, - 20286 - 19968: jis0212<<14 | 0x0F<<7 | 0x44, - 20288 - 19968: jis0212<<14 | 0x0F<<7 | 0x45, - 20290 - 19968: jis0212<<14 | 0x0F<<7 | 0x46, - 20291 - 19968: jis0208<<14 | 0x23<<7 | 0x30, - 20294 - 19968: jis0208<<14 | 0x22<<7 | 0x01, - 20295 - 19968: jis0208<<14 | 0x2F<<7 | 0x29, - 20296 - 19968: jis0212<<14 | 0x0F<<7 | 0x47, - 20297 - 19968: jis0212<<14 | 0x0F<<7 | 0x48, - 20299 - 19968: jis0212<<14 | 0x0F<<7 | 0x49, - 20300 - 19968: jis0212<<14 | 0x0F<<7 | 0x4A, - 20301 - 19968: jis0208<<14 | 0x0F<<7 | 0x2B, - 20302 - 19968: jis0208<<14 | 0x23<<7 | 0x42, - 20303 - 19968: jis0208<<14 | 0x1C<<7 | 0x1A, - 20304 - 19968: jis0208<<14 | 0x19<<7 | 0x13, - 20305 - 19968: jis0208<<14 | 0x2C<<7 | 0x03, - 20306 - 19968: jis0212<<14 | 0x0F<<7 | 0x4B, - 20307 - 19968: jis0208<<14 | 0x21<<7 | 0x2D, - 20308 - 19968: jis0212<<14 | 0x0F<<7 | 0x4C, - 20309 - 19968: jis0208<<14 | 0x11<<7 | 0x1E, - 20310 - 19968: jis0208<<14 | 0x58<<7 | 0x12, - 20311 - 19968: jis0208<<14 | 0x2F<<7 | 0x28, - 20312 - 19968: jis0212<<14 | 0x0F<<7 | 0x4E, - 20313 - 19968: jis0208<<14 | 0x2C<<7 | 0x1D, - 20314 - 19968: jis0208<<14 | 0x2F<<7 | 0x24, - 20315 - 19968: jis0208<<14 | 0x2F<<7 | 0x26, - 20316 - 19968: jis0208<<14 | 0x19<<7 | 0x4D, - 20317 - 19968: jis0208<<14 | 0x2F<<7 | 0x27, - 20318 - 19968: jis0208<<14 | 0x34<<7 | 0x03, - 20319 - 19968: jis0212<<14 | 0x0F<<7 | 0x4F, - 20320 - 19968: jis0212<<14 | 0x0F<<7 | 0x3E, - 20323 - 19968: jis0212<<14 | 0x0F<<7 | 0x50, - 20329 - 19968: jis0208<<14 | 0x2F<<7 | 0x2F, - 20330 - 19968: jis0212<<14 | 0x0F<<7 | 0x51, - 20332 - 19968: jis0212<<14 | 0x0F<<7 | 0x52, - 20334 - 19968: jis0212<<14 | 0x0F<<7 | 0x53, - 20335 - 19968: jis0208<<14 | 0x2F<<7 | 0x32, - 20336 - 19968: jis0208<<14 | 0x2F<<7 | 0x30, - 20337 - 19968: jis0212<<14 | 0x0F<<7 | 0x54, - 20339 - 19968: jis0208<<14 | 0x11<<7 | 0x21, - 20341 - 19968: jis0208<<14 | 0x29<<7 | 0x1A, - 20342 - 19968: jis0208<<14 | 0x2F<<7 | 0x2A, - 20343 - 19968: jis0212<<14 | 0x0F<<7 | 0x55, - 20344 - 19968: jis0212<<14 | 0x0F<<7 | 0x56, - 20345 - 19968: jis0212<<14 | 0x0F<<7 | 0x57, - 20346 - 19968: jis0212<<14 | 0x0F<<7 | 0x58, - 20347 - 19968: jis0208<<14 | 0x2F<<7 | 0x2E, - 20348 - 19968: jis0208<<14 | 0x17<<7 | 0x52, - 20349 - 19968: jis0212<<14 | 0x0F<<7 | 0x59, - 20350 - 19968: jis0212<<14 | 0x0F<<7 | 0x5A, - 20351 - 19968: jis0208<<14 | 0x1A<<7 | 0x27, - 20353 - 19968: jis0212<<14 | 0x0F<<7 | 0x5B, - 20354 - 19968: jis0212<<14 | 0x0F<<7 | 0x5C, - 20355 - 19968: jis0208<<14 | 0x13<<7 | 0x05, - 20356 - 19968: jis0212<<14 | 0x0F<<7 | 0x5D, - 20357 - 19968: jis0212<<14 | 0x10<<7 | 0x00, - 20358 - 19968: jis0208<<14 | 0x2F<<7 | 0x33, - 20360 - 19968: jis0208<<14 | 0x2F<<7 | 0x2B, - 20361 - 19968: jis0212<<14 | 0x10<<7 | 0x01, - 20362 - 19968: jis0208<<14 | 0x58<<7 | 0x14, - 20363 - 19968: jis0208<<14 | 0x2D<<7 | 0x42, - 20364 - 19968: jis0212<<14 | 0x10<<7 | 0x03, - 20365 - 19968: jis0208<<14 | 0x1A<<7 | 0x57, - 20366 - 19968: jis0212<<14 | 0x10<<7 | 0x04, - 20367 - 19968: jis0208<<14 | 0x2F<<7 | 0x2C, - 20368 - 19968: jis0212<<14 | 0x10<<7 | 0x05, - 20369 - 19968: jis0208<<14 | 0x2F<<7 | 0x31, - 20370 - 19968: jis0208<<14 | 0x58<<7 | 0x13, - 20371 - 19968: jis0212<<14 | 0x10<<7 | 0x07, - 20372 - 19968: jis0208<<14 | 0x58<<7 | 0x16, - 20374 - 19968: jis0208<<14 | 0x2F<<7 | 0x34, - 20375 - 19968: jis0212<<14 | 0x10<<7 | 0x09, - 20376 - 19968: jis0208<<14 | 0x2F<<7 | 0x2D, - 20377 - 19968: jis0212<<14 | 0x10<<7 | 0x0A, - 20378 - 19968: jis0208<<14 | 0x58<<7 | 0x15, - 20379 - 19968: jis0208<<14 | 0x15<<7 | 0x00, - 20381 - 19968: jis0208<<14 | 0x0F<<7 | 0x2C, - 20382 - 19968: jis0212<<14 | 0x10<<7 | 0x0C, - 20383 - 19968: jis0212<<14 | 0x10<<7 | 0x0D, - 20384 - 19968: jis0208<<14 | 0x15<<7 | 0x01, - 20385 - 19968: jis0208<<14 | 0x11<<7 | 0x20, - 20395 - 19968: jis0208<<14 | 0x34<<7 | 0x04, - 20397 - 19968: jis0208<<14 | 0x2A<<7 | 0x58, - 20398 - 19968: jis0208<<14 | 0x28<<7 | 0x4D, - 20399 - 19968: jis0208<<14 | 0x17<<7 | 0x53, - 20402 - 19968: jis0212<<14 | 0x10<<7 | 0x0E, - 20405 - 19968: jis0208<<14 | 0x1E<<7 | 0x0E, - 20406 - 19968: jis0208<<14 | 0x2D<<7 | 0x16, - 20407 - 19968: jis0212<<14 | 0x10<<7 | 0x0F, - 20409 - 19968: jis0212<<14 | 0x10<<7 | 0x10, - 20411 - 19968: jis0212<<14 | 0x10<<7 | 0x11, - 20412 - 19968: jis0212<<14 | 0x10<<7 | 0x12, - 20413 - 19968: jis0212<<14 | 0x10<<7 | 0x13, - 20414 - 19968: jis0212<<14 | 0x10<<7 | 0x14, - 20415 - 19968: jis0208<<14 | 0x29<<7 | 0x37, - 20416 - 19968: jis0212<<14 | 0x10<<7 | 0x15, - 20417 - 19968: jis0212<<14 | 0x10<<7 | 0x16, - 20418 - 19968: jis0208<<14 | 0x16<<7 | 0x17, - 20419 - 19968: jis0208<<14 | 0x21<<7 | 0x04, - 20420 - 19968: jis0208<<14 | 0x11<<7 | 0x43, - 20421 - 19968: jis0212<<14 | 0x10<<7 | 0x17, - 20422 - 19968: jis0212<<14 | 0x10<<7 | 0x18, - 20424 - 19968: jis0212<<14 | 0x10<<7 | 0x19, - 20425 - 19968: jis0208<<14 | 0x58<<7 | 0x05, - 20426 - 19968: jis0208<<14 | 0x1C<<7 | 0x32, - 20427 - 19968: jis0212<<14 | 0x10<<7 | 0x1B, - 20428 - 19968: jis0212<<14 | 0x10<<7 | 0x1C, - 20429 - 19968: jis0208<<14 | 0x58<<7 | 0x17, - 20430 - 19968: jis0208<<14 | 0x2F<<7 | 0x38, - 20431 - 19968: jis0212<<14 | 0x10<<7 | 0x1E, - 20432 - 19968: jis0208<<14 | 0x2F<<7 | 0x3D, - 20433 - 19968: jis0208<<14 | 0x2F<<7 | 0x3B, - 20434 - 19968: jis0212<<14 | 0x10<<7 | 0x1F, - 20436 - 19968: jis0208<<14 | 0x2F<<7 | 0x36, - 20439 - 19968: jis0208<<14 | 0x21<<7 | 0x0E, - 20440 - 19968: jis0208<<14 | 0x2F<<7 | 0x39, - 20442 - 19968: jis0208<<14 | 0x2F<<7 | 0x3C, - 20443 - 19968: jis0208<<14 | 0x2F<<7 | 0x3A, - 20444 - 19968: jis0212<<14 | 0x10<<7 | 0x20, - 20445 - 19968: jis0208<<14 | 0x29<<7 | 0x3C, - 20447 - 19968: jis0208<<14 | 0x2F<<7 | 0x37, - 20448 - 19968: jis0212<<14 | 0x10<<7 | 0x21, - 20449 - 19968: jis0208<<14 | 0x1E<<7 | 0x0D, - 20450 - 19968: jis0212<<14 | 0x10<<7 | 0x22, - 20451 - 19968: jis0208<<14 | 0x2A<<7 | 0x52, - 20452 - 19968: jis0208<<14 | 0x2F<<7 | 0x3E, - 20453 - 19968: jis0208<<14 | 0x2F<<7 | 0x3F, - 20462 - 19968: jis0208<<14 | 0x1C<<7 | 0x03, - 20463 - 19968: jis0208<<14 | 0x2F<<7 | 0x4C, - 20464 - 19968: jis0212<<14 | 0x10<<7 | 0x23, - 20466 - 19968: jis0212<<14 | 0x10<<7 | 0x24, - 20467 - 19968: jis0208<<14 | 0x26<<7 | 0x2F, - 20469 - 19968: jis0208<<14 | 0x28<<7 | 0x15, - 20470 - 19968: jis0208<<14 | 0x2F<<7 | 0x47, - 20472 - 19968: jis0208<<14 | 0x29<<7 | 0x4F, - 20474 - 19968: jis0208<<14 | 0x11<<7 | 0x15, - 20476 - 19968: jis0212<<14 | 0x10<<7 | 0x25, - 20477 - 19968: jis0212<<14 | 0x10<<7 | 0x26, - 20478 - 19968: jis0208<<14 | 0x2F<<7 | 0x4B, - 20479 - 19968: jis0208<<14 | 0x58<<7 | 0x1A, - 20480 - 19968: jis0212<<14 | 0x10<<7 | 0x28, - 20481 - 19968: jis0212<<14 | 0x10<<7 | 0x29, - 20484 - 19968: jis0212<<14 | 0x10<<7 | 0x2A, - 20485 - 19968: jis0208<<14 | 0x2F<<7 | 0x45, - 20486 - 19968: jis0208<<14 | 0x2F<<7 | 0x4E, - 20487 - 19968: jis0212<<14 | 0x10<<7 | 0x2B, - 20489 - 19968: jis0208<<14 | 0x20<<7 | 0x31, - 20490 - 19968: jis0212<<14 | 0x10<<7 | 0x2C, - 20491 - 19968: jis0208<<14 | 0x17<<7 | 0x23, - 20492 - 19968: jis0212<<14 | 0x10<<7 | 0x2D, - 20493 - 19968: jis0208<<14 | 0x26<<7 | 0x3B, - 20494 - 19968: jis0212<<14 | 0x10<<7 | 0x2E, - 20495 - 19968: jis0208<<14 | 0x3F<<7 | 0x26, - 20496 - 19968: jis0212<<14 | 0x10<<7 | 0x2F, - 20497 - 19968: jis0208<<14 | 0x2F<<7 | 0x4D, - 20498 - 19968: jis0208<<14 | 0x24<<7 | 0x3C, - 20499 - 19968: jis0212<<14 | 0x10<<7 | 0x30, - 20500 - 19968: jis0208<<14 | 0x2F<<7 | 0x42, - 20502 - 19968: jis0208<<14 | 0x17<<7 | 0x55, - 20503 - 19968: jis0212<<14 | 0x10<<7 | 0x31, - 20504 - 19968: jis0212<<14 | 0x10<<7 | 0x32, - 20505 - 19968: jis0208<<14 | 0x17<<7 | 0x54, - 20506 - 19968: jis0208<<14 | 0x2F<<7 | 0x40, - 20507 - 19968: jis0212<<14 | 0x10<<7 | 0x33, - 20508 - 19968: jis0212<<14 | 0x10<<7 | 0x34, - 20509 - 19968: jis0212<<14 | 0x10<<7 | 0x35, - 20510 - 19968: jis0208<<14 | 0x58<<7 | 0x1B, - 20511 - 19968: jis0208<<14 | 0x1B<<7 | 0x39, - 20513 - 19968: jis0208<<14 | 0x2F<<7 | 0x48, - 20514 - 19968: jis0208<<14 | 0x58<<7 | 0x19, - 20515 - 19968: jis0208<<14 | 0x29<<7 | 0x4E, - 20516 - 19968: jis0208<<14 | 0x22<<7 | 0x2C, - 20517 - 19968: jis0208<<14 | 0x2F<<7 | 0x44, - 20518 - 19968: jis0208<<14 | 0x16<<7 | 0x50, - 20519 - 19968: jis0212<<14 | 0x10<<7 | 0x38, - 20520 - 19968: jis0208<<14 | 0x2F<<7 | 0x41, - 20521 - 19968: jis0208<<14 | 0x2F<<7 | 0x49, - 20522 - 19968: jis0208<<14 | 0x2F<<7 | 0x43, - 20523 - 19968: jis0208<<14 | 0x2D<<7 | 0x30, - 20524 - 19968: jis0208<<14 | 0x2F<<7 | 0x4A, - 20525 - 19968: jis0208<<14 | 0x2E<<7 | 0x20, - 20526 - 19968: jis0212<<14 | 0x10<<7 | 0x39, - 20528 - 19968: jis0212<<14 | 0x10<<7 | 0x3A, - 20530 - 19968: jis0212<<14 | 0x10<<7 | 0x3B, - 20531 - 19968: jis0212<<14 | 0x10<<7 | 0x3C, - 20533 - 19968: jis0212<<14 | 0x10<<7 | 0x3D, - 20534 - 19968: jis0208<<14 | 0x15<<7 | 0x45, - 20537 - 19968: jis0208<<14 | 0x16<<7 | 0x4F, - 20539 - 19968: jis0212<<14 | 0x10<<7 | 0x55, - 20544 - 19968: jis0208<<14 | 0x58<<7 | 0x18, - 20545 - 19968: jis0212<<14 | 0x10<<7 | 0x3F, - 20546 - 19968: jis0208<<14 | 0x58<<7 | 0x1E, - 20547 - 19968: jis0208<<14 | 0x2F<<7 | 0x4F, - 20549 - 19968: jis0212<<14 | 0x10<<7 | 0x41, - 20550 - 19968: jis0208<<14 | 0x58<<7 | 0x1C, - 20551 - 19968: jis0208<<14 | 0x2F<<7 | 0x50, - 20552 - 19968: jis0208<<14 | 0x2F<<7 | 0x54, - 20553 - 19968: jis0208<<14 | 0x0F<<7 | 0x2D, - 20554 - 19968: jis0212<<14 | 0x10<<7 | 0x43, - 20556 - 19968: jis0212<<14 | 0x10<<7 | 0x44, - 20558 - 19968: jis0212<<14 | 0x10<<7 | 0x45, - 20559 - 19968: jis0208<<14 | 0x29<<7 | 0x2F, - 20560 - 19968: jis0208<<14 | 0x2F<<7 | 0x53, - 20561 - 19968: jis0212<<14 | 0x10<<7 | 0x46, - 20562 - 19968: jis0212<<14 | 0x10<<7 | 0x47, - 20563 - 19968: jis0212<<14 | 0x10<<7 | 0x48, - 20565 - 19968: jis0208<<14 | 0x2F<<7 | 0x52, - 20566 - 19968: jis0208<<14 | 0x2F<<7 | 0x56, - 20567 - 19968: jis0212<<14 | 0x10<<7 | 0x49, - 20569 - 19968: jis0212<<14 | 0x10<<7 | 0x4A, - 20570 - 19968: jis0208<<14 | 0x2F<<7 | 0x55, - 20572 - 19968: jis0208<<14 | 0x23<<7 | 0x43, - 20575 - 19968: jis0212<<14 | 0x10<<7 | 0x4B, - 20576 - 19968: jis0212<<14 | 0x10<<7 | 0x4C, - 20578 - 19968: jis0212<<14 | 0x10<<7 | 0x4D, - 20579 - 19968: jis0212<<14 | 0x10<<7 | 0x4E, - 20581 - 19968: jis0208<<14 | 0x16<<7 | 0x51, - 20582 - 19968: jis0212<<14 | 0x10<<7 | 0x4F, - 20583 - 19968: jis0212<<14 | 0x10<<7 | 0x50, - 20586 - 19968: jis0212<<14 | 0x10<<7 | 0x51, - 20588 - 19968: jis0208<<14 | 0x2F<<7 | 0x57, - 20589 - 19968: jis0212<<14 | 0x10<<7 | 0x52, - 20592 - 19968: jis0208<<14 | 0x58<<7 | 0x1D, - 20593 - 19968: jis0212<<14 | 0x10<<7 | 0x54, - 20594 - 19968: jis0208<<14 | 0x1B<<7 | 0x24, - 20596 - 19968: jis0208<<14 | 0x21<<7 | 0x05, - 20597 - 19968: jis0208<<14 | 0x23<<7 | 0x44, - 20598 - 19968: jis0208<<14 | 0x15<<7 | 0x55, - 20600 - 19968: jis0208<<14 | 0x2F<<7 | 0x58, - 20605 - 19968: jis0208<<14 | 0x14<<7 | 0x15, - 20608 - 19968: jis0208<<14 | 0x2F<<7 | 0x59, - 20609 - 19968: jis0212<<14 | 0x10<<7 | 0x56, - 20611 - 19968: jis0212<<14 | 0x10<<7 | 0x57, - 20612 - 19968: jis0212<<14 | 0x10<<7 | 0x58, - 20613 - 19968: jis0208<<14 | 0x2F<<7 | 0x5B, - 20614 - 19968: jis0212<<14 | 0x10<<7 | 0x59, - 20618 - 19968: jis0212<<14 | 0x10<<7 | 0x5A, - 20621 - 19968: jis0208<<14 | 0x2A<<7 | 0x14, - 20622 - 19968: jis0212<<14 | 0x10<<7 | 0x5B, - 20623 - 19968: jis0212<<14 | 0x10<<7 | 0x5C, - 20624 - 19968: jis0212<<14 | 0x10<<7 | 0x5D, - 20625 - 19968: jis0208<<14 | 0x16<<7 | 0x45, - 20626 - 19968: jis0212<<14 | 0x11<<7 | 0x00, - 20627 - 19968: jis0212<<14 | 0x11<<7 | 0x01, - 20628 - 19968: jis0208<<14 | 0x58<<7 | 0x1F, - 20630 - 19968: jis0212<<14 | 0x11<<7 | 0x03, - 20632 - 19968: jis0208<<14 | 0x1A<<7 | 0x10, - 20633 - 19968: jis0208<<14 | 0x27<<7 | 0x56, - 20634 - 19968: jis0208<<14 | 0x2F<<7 | 0x5A, - 20635 - 19968: jis0212<<14 | 0x11<<7 | 0x04, - 20636 - 19968: jis0212<<14 | 0x11<<7 | 0x05, - 20638 - 19968: jis0212<<14 | 0x11<<7 | 0x06, - 20639 - 19968: jis0212<<14 | 0x11<<7 | 0x07, - 20640 - 19968: jis0212<<14 | 0x11<<7 | 0x08, - 20641 - 19968: jis0212<<14 | 0x11<<7 | 0x09, - 20642 - 19968: jis0212<<14 | 0x11<<7 | 0x0A, - 20650 - 19968: jis0212<<14 | 0x11<<7 | 0x0B, - 20652 - 19968: jis0208<<14 | 0x19<<7 | 0x24, - 20653 - 19968: jis0208<<14 | 0x2C<<7 | 0x22, - 20655 - 19968: jis0212<<14 | 0x11<<7 | 0x0C, - 20656 - 19968: jis0212<<14 | 0x11<<7 | 0x0D, - 20658 - 19968: jis0208<<14 | 0x2F<<7 | 0x5D, - 20659 - 19968: jis0208<<14 | 0x30<<7 | 0x02, - 20660 - 19968: jis0208<<14 | 0x2F<<7 | 0x5C, - 20661 - 19968: jis0208<<14 | 0x19<<7 | 0x23, - 20663 - 19968: jis0208<<14 | 0x1C<<7 | 0x5C, - 20665 - 19968: jis0212<<14 | 0x11<<7 | 0x0E, - 20666 - 19968: jis0212<<14 | 0x11<<7 | 0x0F, - 20669 - 19968: jis0212<<14 | 0x11<<7 | 0x10, - 20670 - 19968: jis0208<<14 | 0x16<<7 | 0x18, - 20672 - 19968: jis0212<<14 | 0x11<<7 | 0x11, - 20674 - 19968: jis0208<<14 | 0x30<<7 | 0x03, - 20675 - 19968: jis0212<<14 | 0x11<<7 | 0x12, - 20676 - 19968: jis0212<<14 | 0x11<<7 | 0x13, - 20677 - 19968: jis0208<<14 | 0x15<<7 | 0x2E, - 20679 - 19968: jis0212<<14 | 0x11<<7 | 0x14, - 20681 - 19968: jis0208<<14 | 0x30<<7 | 0x00, - 20682 - 19968: jis0208<<14 | 0x30<<7 | 0x01, - 20684 - 19968: jis0212<<14 | 0x11<<7 | 0x15, - 20685 - 19968: jis0208<<14 | 0x25<<7 | 0x0E, - 20686 - 19968: jis0212<<14 | 0x11<<7 | 0x16, - 20687 - 19968: jis0208<<14 | 0x20<<7 | 0x5B, - 20688 - 19968: jis0212<<14 | 0x11<<7 | 0x17, - 20689 - 19968: jis0208<<14 | 0x15<<7 | 0x02, - 20691 - 19968: jis0212<<14 | 0x11<<7 | 0x18, - 20692 - 19968: jis0212<<14 | 0x11<<7 | 0x19, - 20693 - 19968: jis0208<<14 | 0x2A<<7 | 0x2C, - 20694 - 19968: jis0208<<14 | 0x30<<7 | 0x04, - 20696 - 19968: jis0208<<14 | 0x58<<7 | 0x21, - 20698 - 19968: jis0208<<14 | 0x2D<<7 | 0x1C, - 20700 - 19968: jis0212<<14 | 0x11<<7 | 0x1B, - 20701 - 19968: jis0212<<14 | 0x11<<7 | 0x1C, - 20702 - 19968: jis0208<<14 | 0x30<<7 | 0x05, - 20703 - 19968: jis0212<<14 | 0x11<<7 | 0x1D, - 20706 - 19968: jis0212<<14 | 0x11<<7 | 0x1E, - 20707 - 19968: jis0208<<14 | 0x30<<7 | 0x08, - 20708 - 19968: jis0212<<14 | 0x11<<7 | 0x1F, - 20709 - 19968: jis0208<<14 | 0x30<<7 | 0x06, - 20710 - 19968: jis0212<<14 | 0x11<<7 | 0x20, - 20711 - 19968: jis0208<<14 | 0x20<<7 | 0x2D, - 20712 - 19968: jis0212<<14 | 0x11<<7 | 0x21, - 20713 - 19968: jis0212<<14 | 0x11<<7 | 0x22, - 20717 - 19968: jis0208<<14 | 0x30<<7 | 0x07, - 20718 - 19968: jis0208<<14 | 0x30<<7 | 0x09, - 20719 - 19968: jis0212<<14 | 0x11<<7 | 0x23, - 20721 - 19968: jis0212<<14 | 0x11<<7 | 0x24, - 20722 - 19968: jis0212<<14 | 0x11<<7 | 0x30, - 20724 - 19968: jis0208<<14 | 0x58<<7 | 0x20, - 20725 - 19968: jis0208<<14 | 0x30<<7 | 0x0B, - 20726 - 19968: jis0212<<14 | 0x11<<7 | 0x25, - 20729 - 19968: jis0208<<14 | 0x30<<7 | 0x0A, - 20730 - 19968: jis0212<<14 | 0x11<<7 | 0x26, - 20731 - 19968: jis0208<<14 | 0x29<<7 | 0x27, - 20734 - 19968: jis0212<<14 | 0x11<<7 | 0x27, - 20736 - 19968: jis0208<<14 | 0x14<<7 | 0x16, - 20737 - 19968: jis0208<<14 | 0x30<<7 | 0x0D, - 20738 - 19968: jis0208<<14 | 0x30<<7 | 0x0E, - 20739 - 19968: jis0212<<14 | 0x11<<7 | 0x28, - 20740 - 19968: jis0208<<14 | 0x11<<7 | 0x0E, - 20742 - 19968: jis0212<<14 | 0x11<<7 | 0x29, - 20743 - 19968: jis0212<<14 | 0x11<<7 | 0x2A, - 20744 - 19968: jis0212<<14 | 0x11<<7 | 0x2B, - 20745 - 19968: jis0208<<14 | 0x30<<7 | 0x0C, - 20747 - 19968: jis0212<<14 | 0x11<<7 | 0x2C, - 20748 - 19968: jis0212<<14 | 0x11<<7 | 0x2D, - 20749 - 19968: jis0212<<14 | 0x11<<7 | 0x2E, - 20750 - 19968: jis0212<<14 | 0x11<<7 | 0x2F, - 20752 - 19968: jis0212<<14 | 0x11<<7 | 0x31, - 20754 - 19968: jis0208<<14 | 0x1B<<7 | 0x53, - 20756 - 19968: jis0208<<14 | 0x30<<7 | 0x11, - 20757 - 19968: jis0208<<14 | 0x30<<7 | 0x10, - 20758 - 19968: jis0208<<14 | 0x30<<7 | 0x0F, - 20759 - 19968: jis0212<<14 | 0x11<<7 | 0x32, - 20760 - 19968: jis0208<<14 | 0x2F<<7 | 0x35, - 20761 - 19968: jis0212<<14 | 0x11<<7 | 0x33, - 20762 - 19968: jis0208<<14 | 0x30<<7 | 0x12, - 20763 - 19968: jis0212<<14 | 0x11<<7 | 0x34, - 20764 - 19968: jis0212<<14 | 0x11<<7 | 0x35, - 20765 - 19968: jis0212<<14 | 0x11<<7 | 0x36, - 20766 - 19968: jis0212<<14 | 0x11<<7 | 0x37, - 20767 - 19968: jis0208<<14 | 0x1C<<7 | 0x5D, - 20769 - 19968: jis0208<<14 | 0x30<<7 | 0x13, - 20771 - 19968: jis0212<<14 | 0x11<<7 | 0x38, - 20775 - 19968: jis0212<<14 | 0x11<<7 | 0x39, - 20776 - 19968: jis0212<<14 | 0x11<<7 | 0x3A, - 20778 - 19968: jis0208<<14 | 0x2C<<7 | 0x04, - 20780 - 19968: jis0212<<14 | 0x11<<7 | 0x3B, - 20781 - 19968: jis0212<<14 | 0x11<<7 | 0x3C, - 20783 - 19968: jis0212<<14 | 0x11<<7 | 0x3D, - 20785 - 19968: jis0212<<14 | 0x11<<7 | 0x3E, - 20786 - 19968: jis0208<<14 | 0x2B<<7 | 0x38, - 20787 - 19968: jis0212<<14 | 0x11<<7 | 0x3F, - 20788 - 19968: jis0212<<14 | 0x11<<7 | 0x40, - 20789 - 19968: jis0212<<14 | 0x11<<7 | 0x41, - 20791 - 19968: jis0208<<14 | 0x30<<7 | 0x15, - 20792 - 19968: jis0212<<14 | 0x11<<7 | 0x42, - 20793 - 19968: jis0212<<14 | 0x11<<7 | 0x43, - 20794 - 19968: jis0208<<14 | 0x30<<7 | 0x14, - 20795 - 19968: jis0208<<14 | 0x30<<7 | 0x17, - 20796 - 19968: jis0208<<14 | 0x30<<7 | 0x16, - 20799 - 19968: jis0208<<14 | 0x30<<7 | 0x18, - 20800 - 19968: jis0208<<14 | 0x30<<7 | 0x19, - 20801 - 19968: jis0208<<14 | 0x0F<<7 | 0x53, - 20802 - 19968: jis0212<<14 | 0x11<<7 | 0x44, - 20803 - 19968: jis0208<<14 | 0x17<<7 | 0x14, - 20804 - 19968: jis0208<<14 | 0x16<<7 | 0x1A, - 20805 - 19968: jis0208<<14 | 0x1C<<7 | 0x1B, - 20806 - 19968: jis0208<<14 | 0x22<<7 | 0x5A, - 20807 - 19968: jis0208<<14 | 0x15<<7 | 0x03, - 20808 - 19968: jis0208<<14 | 0x1F<<7 | 0x47, - 20809 - 19968: jis0208<<14 | 0x17<<7 | 0x56, - 20810 - 19968: jis0208<<14 | 0x58<<7 | 0x22, - 20811 - 19968: jis0208<<14 | 0x18<<7 | 0x4D, - 20812 - 19968: jis0208<<14 | 0x30<<7 | 0x1B, - 20813 - 19968: jis0208<<14 | 0x2B<<7 | 0x27, - 20814 - 19968: jis0208<<14 | 0x24<<7 | 0x25, - 20815 - 19968: jis0212<<14 | 0x11<<7 | 0x46, - 20816 - 19968: jis0208<<14 | 0x1A<<7 | 0x58, - 20818 - 19968: jis0208<<14 | 0x30<<7 | 0x1A, - 20819 - 19968: jis0212<<14 | 0x11<<7 | 0x47, - 20820 - 19968: jis0208<<14 | 0x30<<7 | 0x1C, - 20821 - 19968: jis0212<<14 | 0x11<<7 | 0x48, - 20823 - 19968: jis0212<<14 | 0x11<<7 | 0x49, - 20824 - 19968: jis0212<<14 | 0x11<<7 | 0x4A, - 20826 - 19968: jis0208<<14 | 0x24<<7 | 0x3D, - 20828 - 19968: jis0208<<14 | 0x12<<7 | 0x54, - 20831 - 19968: jis0212<<14 | 0x11<<7 | 0x4B, - 20834 - 19968: jis0208<<14 | 0x30<<7 | 0x1D, - 20836 - 19968: jis0208<<14 | 0x58<<7 | 0x23, - 20837 - 19968: jis0208<<14 | 0x25<<7 | 0x5D, - 20838 - 19968: jis0212<<14 | 0x11<<7 | 0x4D, - 20840 - 19968: jis0208<<14 | 0x20<<7 | 0x13, - 20841 - 19968: jis0208<<14 | 0x30<<7 | 0x1F, - 20842 - 19968: jis0208<<14 | 0x30<<7 | 0x20, - 20843 - 19968: jis0208<<14 | 0x27<<7 | 0x0B, - 20844 - 19968: jis0208<<14 | 0x17<<7 | 0x57, - 20845 - 19968: jis0208<<14 | 0x2E<<7 | 0x1A, - 20846 - 19968: jis0208<<14 | 0x30<<7 | 0x21, - 20849 - 19968: jis0208<<14 | 0x15<<7 | 0x05, - 20853 - 19968: jis0208<<14 | 0x29<<7 | 0x1B, - 20854 - 19968: jis0208<<14 | 0x21<<7 | 0x15, - 20855 - 19968: jis0208<<14 | 0x15<<7 | 0x50, - 20856 - 19968: jis0208<<14 | 0x24<<7 | 0x14, - 20860 - 19968: jis0208<<14 | 0x16<<7 | 0x52, - 20862 - 19968: jis0212<<14 | 0x11<<7 | 0x4E, - 20864 - 19968: jis0208<<14 | 0x30<<7 | 0x22, - 20866 - 19968: jis0208<<14 | 0x30<<7 | 0x23, - 20867 - 19968: jis0212<<14 | 0x11<<7 | 0x4F, - 20868 - 19968: jis0212<<14 | 0x11<<7 | 0x50, - 20869 - 19968: jis0208<<14 | 0x25<<7 | 0x41, - 20870 - 19968: jis0208<<14 | 0x10<<7 | 0x3E, - 20873 - 19968: jis0208<<14 | 0x30<<7 | 0x26, - 20874 - 19968: jis0208<<14 | 0x19<<7 | 0x5C, - 20875 - 19968: jis0212<<14 | 0x11<<7 | 0x51, - 20876 - 19968: jis0208<<14 | 0x30<<7 | 0x25, - 20877 - 19968: jis0208<<14 | 0x19<<7 | 0x25, - 20878 - 19968: jis0212<<14 | 0x11<<7 | 0x52, - 20879 - 19968: jis0208<<14 | 0x30<<7 | 0x27, - 20880 - 19968: jis0208<<14 | 0x45<<7 | 0x4D, - 20881 - 19968: jis0208<<14 | 0x30<<7 | 0x28, - 20882 - 19968: jis0208<<14 | 0x2A<<7 | 0x20, - 20883 - 19968: jis0208<<14 | 0x30<<7 | 0x29, - 20885 - 19968: jis0208<<14 | 0x30<<7 | 0x2A, - 20886 - 19968: jis0208<<14 | 0x30<<7 | 0x2B, - 20887 - 19968: jis0208<<14 | 0x1D<<7 | 0x48, - 20888 - 19968: jis0212<<14 | 0x11<<7 | 0x53, - 20889 - 19968: jis0208<<14 | 0x1B<<7 | 0x2B, - 20893 - 19968: jis0208<<14 | 0x58<<7 | 0x24, - 20896 - 19968: jis0208<<14 | 0x13<<7 | 0x06, - 20897 - 19968: jis0212<<14 | 0x11<<7 | 0x55, - 20898 - 19968: jis0208<<14 | 0x30<<7 | 0x2E, - 20899 - 19968: jis0212<<14 | 0x11<<7 | 0x56, - 20900 - 19968: jis0208<<14 | 0x30<<7 | 0x2C, - 20901 - 19968: jis0208<<14 | 0x2B<<7 | 0x1C, - 20902 - 19968: jis0208<<14 | 0x30<<7 | 0x2D, - 20904 - 19968: jis0208<<14 | 0x28<<7 | 0x39, - 20905 - 19968: jis0208<<14 | 0x30<<7 | 0x2F, - 20906 - 19968: jis0208<<14 | 0x30<<7 | 0x30, - 20907 - 19968: jis0208<<14 | 0x30<<7 | 0x31, - 20908 - 19968: jis0208<<14 | 0x24<<7 | 0x3E, - 20909 - 19968: jis0212<<14 | 0x11<<7 | 0x57, - 20912 - 19968: jis0208<<14 | 0x30<<7 | 0x35, - 20913 - 19968: jis0208<<14 | 0x30<<7 | 0x33, - 20914 - 19968: jis0208<<14 | 0x30<<7 | 0x34, - 20915 - 19968: jis0208<<14 | 0x30<<7 | 0x32, - 20916 - 19968: jis0208<<14 | 0x19<<7 | 0x42, - 20917 - 19968: jis0208<<14 | 0x30<<7 | 0x36, - 20918 - 19968: jis0208<<14 | 0x2B<<7 | 0x49, - 20919 - 19968: jis0208<<14 | 0x2D<<7 | 0x43, - 20920 - 19968: jis0212<<14 | 0x11<<7 | 0x58, - 20922 - 19968: jis0212<<14 | 0x11<<7 | 0x59, - 20924 - 19968: jis0212<<14 | 0x11<<7 | 0x5A, - 20925 - 19968: jis0208<<14 | 0x30<<7 | 0x37, - 20926 - 19968: jis0208<<14 | 0x58<<7 | 0x25, - 20927 - 19968: jis0212<<14 | 0x11<<7 | 0x5C, - 20930 - 19968: jis0212<<14 | 0x11<<7 | 0x5D, - 20932 - 19968: jis0208<<14 | 0x1F<<7 | 0x07, - 20933 - 19968: jis0208<<14 | 0x30<<7 | 0x38, - 20934 - 19968: jis0208<<14 | 0x1C<<7 | 0x39, - 20936 - 19968: jis0212<<14 | 0x12<<7 | 0x00, - 20937 - 19968: jis0208<<14 | 0x30<<7 | 0x39, - 20939 - 19968: jis0208<<14 | 0x22<<7 | 0x5B, - 20940 - 19968: jis0208<<14 | 0x2D<<7 | 0x1E, - 20941 - 19968: jis0208<<14 | 0x24<<7 | 0x3F, - 20943 - 19968: jis0212<<14 | 0x12<<7 | 0x01, - 20945 - 19968: jis0212<<14 | 0x12<<7 | 0x02, - 20946 - 19968: jis0212<<14 | 0x12<<7 | 0x03, - 20947 - 19968: jis0212<<14 | 0x12<<7 | 0x04, - 20949 - 19968: jis0212<<14 | 0x12<<7 | 0x05, - 20950 - 19968: jis0208<<14 | 0x31<<7 | 0x24, - 20952 - 19968: jis0212<<14 | 0x12<<7 | 0x06, - 20955 - 19968: jis0208<<14 | 0x30<<7 | 0x3A, - 20956 - 19968: jis0208<<14 | 0x53<<7 | 0x04, - 20957 - 19968: jis0208<<14 | 0x15<<7 | 0x24, - 20958 - 19968: jis0212<<14 | 0x12<<7 | 0x07, - 20960 - 19968: jis0208<<14 | 0x30<<7 | 0x3B, - 20961 - 19968: jis0208<<14 | 0x2A<<7 | 0x3D, - 20962 - 19968: jis0212<<14 | 0x12<<7 | 0x08, - 20965 - 19968: jis0212<<14 | 0x12<<7 | 0x09, - 20966 - 19968: jis0208<<14 | 0x1C<<7 | 0x47, - 20967 - 19968: jis0208<<14 | 0x21<<7 | 0x5B, - 20969 - 19968: jis0208<<14 | 0x30<<7 | 0x3D, - 20970 - 19968: jis0208<<14 | 0x25<<7 | 0x43, - 20972 - 19968: jis0208<<14 | 0x58<<7 | 0x26, - 20973 - 19968: jis0208<<14 | 0x30<<7 | 0x3E, - 20974 - 19968: jis0212<<14 | 0x12<<7 | 0x0A, - 20976 - 19968: jis0208<<14 | 0x30<<7 | 0x3F, - 20977 - 19968: jis0208<<14 | 0x12<<7 | 0x0D, - 20978 - 19968: jis0212<<14 | 0x12<<7 | 0x0B, - 20979 - 19968: jis0212<<14 | 0x12<<7 | 0x0C, - 20980 - 19968: jis0212<<14 | 0x12<<7 | 0x0D, - 20981 - 19968: jis0208<<14 | 0x30<<7 | 0x40, - 20982 - 19968: jis0208<<14 | 0x15<<7 | 0x06, - 20983 - 19968: jis0212<<14 | 0x12<<7 | 0x0E, - 20984 - 19968: jis0208<<14 | 0x25<<7 | 0x2B, - 20985 - 19968: jis0208<<14 | 0x10<<7 | 0x59, - 20986 - 19968: jis0208<<14 | 0x1C<<7 | 0x2F, - 20989 - 19968: jis0208<<14 | 0x27<<7 | 0x00, - 20990 - 19968: jis0208<<14 | 0x30<<7 | 0x41, - 20992 - 19968: jis0208<<14 | 0x24<<7 | 0x40, - 20993 - 19968: jis0212<<14 | 0x12<<7 | 0x0F, - 20994 - 19968: jis0212<<14 | 0x12<<7 | 0x10, - 20995 - 19968: jis0208<<14 | 0x1E<<7 | 0x2E, - 20996 - 19968: jis0208<<14 | 0x30<<7 | 0x42, - 20997 - 19968: jis0212<<14 | 0x12<<7 | 0x11, - 20998 - 19968: jis0208<<14 | 0x29<<7 | 0x0B, - 20999 - 19968: jis0208<<14 | 0x1F<<7 | 0x39, - 21000 - 19968: jis0208<<14 | 0x13<<7 | 0x01, - 21002 - 19968: jis0208<<14 | 0x13<<7 | 0x08, - 21003 - 19968: jis0208<<14 | 0x30<<7 | 0x43, - 21006 - 19968: jis0208<<14 | 0x30<<7 | 0x45, - 21009 - 19968: jis0208<<14 | 0x16<<7 | 0x19, - 21010 - 19968: jis0212<<14 | 0x12<<7 | 0x12, - 21011 - 19968: jis0212<<14 | 0x12<<7 | 0x13, - 21012 - 19968: jis0208<<14 | 0x30<<7 | 0x44, - 21013 - 19968: jis0208<<14 | 0x58<<7 | 0x27, - 21014 - 19968: jis0212<<14 | 0x12<<7 | 0x15, - 21015 - 19968: jis0208<<14 | 0x2D<<7 | 0x52, - 21016 - 19968: jis0212<<14 | 0x12<<7 | 0x16, - 21021 - 19968: jis0208<<14 | 0x1C<<7 | 0x48, - 21026 - 19968: jis0212<<14 | 0x12<<7 | 0x17, - 21028 - 19968: jis0208<<14 | 0x27<<7 | 0x1C, - 21029 - 19968: jis0208<<14 | 0x29<<7 | 0x2B, - 21031 - 19968: jis0208<<14 | 0x30<<7 | 0x46, - 21032 - 19968: jis0212<<14 | 0x12<<7 | 0x18, - 21033 - 19968: jis0208<<14 | 0x2C<<7 | 0x57, - 21034 - 19968: jis0208<<14 | 0x30<<7 | 0x47, - 21038 - 19968: jis0208<<14 | 0x30<<7 | 0x48, - 21040 - 19968: jis0208<<14 | 0x24<<7 | 0x5D, - 21041 - 19968: jis0212<<14 | 0x12<<7 | 0x19, - 21042 - 19968: jis0212<<14 | 0x12<<7 | 0x1A, - 21043 - 19968: jis0208<<14 | 0x30<<7 | 0x49, - 21045 - 19968: jis0212<<14 | 0x12<<7 | 0x1B, - 21046 - 19968: jis0208<<14 | 0x1F<<7 | 0x08, - 21047 - 19968: jis0208<<14 | 0x19<<7 | 0x5D, - 21048 - 19968: jis0208<<14 | 0x16<<7 | 0x53, - 21049 - 19968: jis0208<<14 | 0x30<<7 | 0x4A, - 21050 - 19968: jis0208<<14 | 0x1A<<7 | 0x28, - 21051 - 19968: jis0208<<14 | 0x18<<7 | 0x4E, - 21052 - 19968: jis0212<<14 | 0x12<<7 | 0x1C, - 21059 - 19968: jis0208<<14 | 0x23<<7 | 0x45, - 21060 - 19968: jis0208<<14 | 0x30<<7 | 0x4C, - 21061 - 19968: jis0212<<14 | 0x12<<7 | 0x1D, - 21063 - 19968: jis0208<<14 | 0x21<<7 | 0x06, - 21065 - 19968: jis0212<<14 | 0x12<<7 | 0x1E, - 21066 - 19968: jis0208<<14 | 0x19<<7 | 0x4E, - 21067 - 19968: jis0208<<14 | 0x30<<7 | 0x4D, - 21068 - 19968: jis0208<<14 | 0x30<<7 | 0x4E, - 21069 - 19968: jis0208<<14 | 0x20<<7 | 0x0F, - 21071 - 19968: jis0208<<14 | 0x30<<7 | 0x4B, - 21076 - 19968: jis0208<<14 | 0x30<<7 | 0x50, - 21077 - 19968: jis0212<<14 | 0x12<<7 | 0x1F, - 21078 - 19968: jis0208<<14 | 0x2A<<7 | 0x15, - 21079 - 19968: jis0212<<14 | 0x12<<7 | 0x20, - 21080 - 19968: jis0212<<14 | 0x12<<7 | 0x21, - 21082 - 19968: jis0212<<14 | 0x12<<7 | 0x22, - 21083 - 19968: jis0208<<14 | 0x18<<7 | 0x43, - 21084 - 19968: jis0212<<14 | 0x12<<7 | 0x23, - 21086 - 19968: jis0208<<14 | 0x30<<7 | 0x4F, - 21087 - 19968: jis0212<<14 | 0x12<<7 | 0x24, - 21088 - 19968: jis0212<<14 | 0x12<<7 | 0x25, - 21089 - 19968: jis0212<<14 | 0x12<<7 | 0x26, - 21091 - 19968: jis0208<<14 | 0x16<<7 | 0x54, - 21092 - 19968: jis0208<<14 | 0x19<<7 | 0x3D, - 21093 - 19968: jis0208<<14 | 0x26<<7 | 0x4C, - 21094 - 19968: jis0212<<14 | 0x12<<7 | 0x27, - 21097 - 19968: jis0208<<14 | 0x30<<7 | 0x53, - 21098 - 19968: jis0208<<14 | 0x30<<7 | 0x51, - 21102 - 19968: jis0212<<14 | 0x12<<7 | 0x28, - 21103 - 19968: jis0208<<14 | 0x28<<7 | 0x5A, - 21104 - 19968: jis0208<<14 | 0x1D<<7 | 0x49, - 21105 - 19968: jis0208<<14 | 0x30<<7 | 0x5A, - 21106 - 19968: jis0208<<14 | 0x12<<7 | 0x43, - 21107 - 19968: jis0208<<14 | 0x30<<7 | 0x54, - 21108 - 19968: jis0208<<14 | 0x30<<7 | 0x52, - 21109 - 19968: jis0208<<14 | 0x20<<7 | 0x2E, - 21111 - 19968: jis0212<<14 | 0x12<<7 | 0x29, - 21112 - 19968: jis0212<<14 | 0x12<<7 | 0x2A, - 21113 - 19968: jis0212<<14 | 0x12<<7 | 0x2B, - 21117 - 19968: jis0208<<14 | 0x30<<7 | 0x56, - 21119 - 19968: jis0208<<14 | 0x30<<7 | 0x55, - 21120 - 19968: jis0212<<14 | 0x12<<7 | 0x2C, - 21122 - 19968: jis0212<<14 | 0x12<<7 | 0x2D, - 21123 - 19968: jis0208<<14 | 0x12<<7 | 0x23, - 21125 - 19968: jis0212<<14 | 0x12<<7 | 0x2E, - 21127 - 19968: jis0208<<14 | 0x16<<7 | 0x3F, - 21128 - 19968: jis0208<<14 | 0x30<<7 | 0x5B, - 21129 - 19968: jis0208<<14 | 0x2D<<7 | 0x0C, - 21130 - 19968: jis0212<<14 | 0x12<<7 | 0x2F, - 21132 - 19968: jis0212<<14 | 0x12<<7 | 0x30, - 21133 - 19968: jis0208<<14 | 0x30<<7 | 0x57, - 21137 - 19968: jis0208<<14 | 0x30<<7 | 0x5C, - 21138 - 19968: jis0208<<14 | 0x30<<7 | 0x59, - 21139 - 19968: jis0212<<14 | 0x12<<7 | 0x31, - 21140 - 19968: jis0208<<14 | 0x30<<7 | 0x58, - 21141 - 19968: jis0212<<14 | 0x12<<7 | 0x32, - 21142 - 19968: jis0212<<14 | 0x12<<7 | 0x33, - 21143 - 19968: jis0212<<14 | 0x12<<7 | 0x34, - 21144 - 19968: jis0212<<14 | 0x12<<7 | 0x35, - 21146 - 19968: jis0212<<14 | 0x12<<7 | 0x36, - 21147 - 19968: jis0208<<14 | 0x2D<<7 | 0x2E, - 21148 - 19968: jis0208<<14 | 0x58<<7 | 0x28, - 21151 - 19968: jis0208<<14 | 0x17<<7 | 0x58, - 21152 - 19968: jis0208<<14 | 0x11<<7 | 0x22, - 21155 - 19968: jis0208<<14 | 0x2D<<7 | 0x53, - 21156 - 19968: jis0212<<14 | 0x12<<7 | 0x38, - 21157 - 19968: jis0212<<14 | 0x12<<7 | 0x39, - 21158 - 19968: jis0208<<14 | 0x58<<7 | 0x29, - 21159 - 19968: jis0212<<14 | 0x12<<7 | 0x3B, - 21161 - 19968: jis0208<<14 | 0x1C<<7 | 0x54, - 21162 - 19968: jis0208<<14 | 0x24<<7 | 0x37, - 21163 - 19968: jis0208<<14 | 0x18<<7 | 0x44, - 21164 - 19968: jis0208<<14 | 0x31<<7 | 0x01, - 21165 - 19968: jis0208<<14 | 0x31<<7 | 0x02, - 21167 - 19968: jis0208<<14 | 0x5A<<7 | 0x1B, - 21168 - 19968: jis0212<<14 | 0x12<<7 | 0x3D, - 21169 - 19968: jis0208<<14 | 0x2D<<7 | 0x44, - 21172 - 19968: jis0208<<14 | 0x2E<<7 | 0x0A, - 21173 - 19968: jis0208<<14 | 0x31<<7 | 0x04, - 21174 - 19968: jis0212<<14 | 0x12<<7 | 0x3E, - 21175 - 19968: jis0212<<14 | 0x12<<7 | 0x3F, - 21176 - 19968: jis0212<<14 | 0x12<<7 | 0x40, - 21177 - 19968: jis0208<<14 | 0x17<<7 | 0x59, - 21178 - 19968: jis0212<<14 | 0x12<<7 | 0x41, - 21179 - 19968: jis0212<<14 | 0x12<<7 | 0x42, - 21180 - 19968: jis0208<<14 | 0x31<<7 | 0x03, - 21181 - 19968: jis0212<<14 | 0x12<<7 | 0x43, - 21182 - 19968: jis0208<<14 | 0x12<<7 | 0x0E, - 21184 - 19968: jis0208<<14 | 0x58<<7 | 0x2A, - 21185 - 19968: jis0208<<14 | 0x31<<7 | 0x05, - 21187 - 19968: jis0208<<14 | 0x2A<<7 | 0x35, - 21188 - 19968: jis0212<<14 | 0x12<<7 | 0x45, - 21189 - 19968: jis0208<<14 | 0x23<<7 | 0x1B, - 21190 - 19968: jis0212<<14 | 0x12<<7 | 0x46, - 21191 - 19968: jis0208<<14 | 0x2C<<7 | 0x05, - 21192 - 19968: jis0212<<14 | 0x12<<7 | 0x47, - 21193 - 19968: jis0208<<14 | 0x29<<7 | 0x38, - 21196 - 19968: jis0212<<14 | 0x12<<7 | 0x48, - 21197 - 19968: jis0208<<14 | 0x31<<7 | 0x06, - 21199 - 19968: jis0212<<14 | 0x12<<7 | 0x49, - 21201 - 19968: jis0212<<14 | 0x12<<7 | 0x4A, - 21202 - 19968: jis0208<<14 | 0x4F<<7 | 0x34, - 21204 - 19968: jis0212<<14 | 0x12<<7 | 0x4B, - 21205 - 19968: jis0208<<14 | 0x25<<7 | 0x0F, - 21206 - 19968: jis0212<<14 | 0x12<<7 | 0x4C, - 21207 - 19968: jis0208<<14 | 0x31<<7 | 0x07, - 21208 - 19968: jis0208<<14 | 0x13<<7 | 0x09, - 21209 - 19968: jis0208<<14 | 0x2B<<7 | 0x12, - 21211 - 19968: jis0208<<14 | 0x58<<7 | 0x2B, - 21212 - 19968: jis0212<<14 | 0x12<<7 | 0x4E, - 21213 - 19968: jis0208<<14 | 0x1D<<7 | 0x00, - 21214 - 19968: jis0208<<14 | 0x31<<7 | 0x08, - 21215 - 19968: jis0208<<14 | 0x29<<7 | 0x46, - 21216 - 19968: jis0208<<14 | 0x31<<7 | 0x0C, - 21217 - 19968: jis0212<<14 | 0x12<<7 | 0x4F, - 21218 - 19968: jis0208<<14 | 0x1F<<7 | 0x09, - 21219 - 19968: jis0208<<14 | 0x31<<7 | 0x09, - 21220 - 19968: jis0208<<14 | 0x15<<7 | 0x2F, - 21221 - 19968: jis0212<<14 | 0x12<<7 | 0x50, - 21222 - 19968: jis0208<<14 | 0x31<<7 | 0x0A, - 21223 - 19968: jis0208<<14 | 0x13<<7 | 0x0A, - 21224 - 19968: jis0212<<14 | 0x12<<7 | 0x51, - 21225 - 19968: jis0212<<14 | 0x12<<7 | 0x52, - 21226 - 19968: jis0212<<14 | 0x12<<7 | 0x53, - 21228 - 19968: jis0212<<14 | 0x12<<7 | 0x54, - 21232 - 19968: jis0212<<14 | 0x12<<7 | 0x55, - 21233 - 19968: jis0212<<14 | 0x12<<7 | 0x56, - 21234 - 19968: jis0208<<14 | 0x16<<7 | 0x0D, - 21235 - 19968: jis0208<<14 | 0x31<<7 | 0x0D, - 21236 - 19968: jis0212<<14 | 0x12<<7 | 0x57, - 21237 - 19968: jis0208<<14 | 0x31<<7 | 0x0E, - 21238 - 19968: jis0212<<14 | 0x12<<7 | 0x58, - 21239 - 19968: jis0212<<14 | 0x12<<7 | 0x59, - 21240 - 19968: jis0208<<14 | 0x31<<7 | 0x0F, - 21241 - 19968: jis0208<<14 | 0x31<<7 | 0x10, - 21242 - 19968: jis0208<<14 | 0x1B<<7 | 0x3A, - 21246 - 19968: jis0208<<14 | 0x17<<7 | 0x5A, - 21247 - 19968: jis0208<<14 | 0x2B<<7 | 0x3D, - 21248 - 19968: jis0208<<14 | 0x58<<7 | 0x2C, - 21249 - 19968: jis0208<<14 | 0x2B<<7 | 0x47, - 21250 - 19968: jis0208<<14 | 0x25<<7 | 0x56, - 21251 - 19968: jis0212<<14 | 0x12<<7 | 0x5B, - 21253 - 19968: jis0208<<14 | 0x29<<7 | 0x50, - 21254 - 19968: jis0208<<14 | 0x31<<7 | 0x11, - 21255 - 19968: jis0208<<14 | 0x58<<7 | 0x2D, - 21256 - 19968: jis0208<<14 | 0x31<<7 | 0x12, - 21258 - 19968: jis0212<<14 | 0x12<<7 | 0x5C, - 21259 - 19968: jis0212<<14 | 0x12<<7 | 0x5D, - 21260 - 19968: jis0212<<14 | 0x13<<7 | 0x00, - 21261 - 19968: jis0208<<14 | 0x31<<7 | 0x14, - 21263 - 19968: jis0208<<14 | 0x31<<7 | 0x16, - 21264 - 19968: jis0208<<14 | 0x31<<7 | 0x15, - 21265 - 19968: jis0212<<14 | 0x13<<7 | 0x01, - 21267 - 19968: jis0212<<14 | 0x13<<7 | 0x02, - 21269 - 19968: jis0208<<14 | 0x31<<7 | 0x17, - 21270 - 19968: jis0208<<14 | 0x11<<7 | 0x1C, - 21271 - 19968: jis0208<<14 | 0x2A<<7 | 0x2B, - 21272 - 19968: jis0212<<14 | 0x13<<7 | 0x03, - 21273 - 19968: jis0208<<14 | 0x19<<7 | 0x5B, - 21274 - 19968: jis0208<<14 | 0x31<<7 | 0x18, - 21275 - 19968: jis0212<<14 | 0x13<<7 | 0x04, - 21276 - 19968: jis0212<<14 | 0x13<<7 | 0x05, - 21277 - 19968: jis0208<<14 | 0x20<<7 | 0x38, - 21278 - 19968: jis0212<<14 | 0x13<<7 | 0x06, - 21279 - 19968: jis0212<<14 | 0x13<<7 | 0x07, - 21280 - 19968: jis0208<<14 | 0x1D<<7 | 0x01, - 21281 - 19968: jis0208<<14 | 0x15<<7 | 0x08, - 21283 - 19968: jis0208<<14 | 0x31<<7 | 0x19, - 21284 - 19968: jis0208<<14 | 0x58<<7 | 0x2E, - 21285 - 19968: jis0212<<14 | 0x13<<7 | 0x08, - 21287 - 19968: jis0212<<14 | 0x13<<7 | 0x09, - 21288 - 19968: jis0212<<14 | 0x13<<7 | 0x0A, - 21289 - 19968: jis0212<<14 | 0x13<<7 | 0x0B, - 21290 - 19968: jis0208<<14 | 0x27<<7 | 0x3A, - 21291 - 19968: jis0212<<14 | 0x13<<7 | 0x0C, - 21292 - 19968: jis0212<<14 | 0x13<<7 | 0x0D, - 21293 - 19968: jis0212<<14 | 0x13<<7 | 0x0E, - 21295 - 19968: jis0208<<14 | 0x31<<7 | 0x1A, - 21296 - 19968: jis0212<<14 | 0x13<<7 | 0x0F, - 21297 - 19968: jis0208<<14 | 0x31<<7 | 0x1B, - 21298 - 19968: jis0212<<14 | 0x13<<7 | 0x10, - 21299 - 19968: jis0208<<14 | 0x31<<7 | 0x1C, - 21301 - 19968: jis0212<<14 | 0x13<<7 | 0x11, - 21304 - 19968: jis0208<<14 | 0x31<<7 | 0x1D, - 21305 - 19968: jis0208<<14 | 0x28<<7 | 0x03, - 21306 - 19968: jis0208<<14 | 0x15<<7 | 0x47, - 21307 - 19968: jis0208<<14 | 0x0F<<7 | 0x44, - 21308 - 19968: jis0212<<14 | 0x13<<7 | 0x12, - 21309 - 19968: jis0212<<14 | 0x13<<7 | 0x13, - 21310 - 19968: jis0212<<14 | 0x13<<7 | 0x14, - 21311 - 19968: jis0208<<14 | 0x25<<7 | 0x1E, - 21312 - 19968: jis0208<<14 | 0x31<<7 | 0x1E, - 21313 - 19968: jis0208<<14 | 0x1C<<7 | 0x1C, - 21314 - 19968: jis0212<<14 | 0x13<<7 | 0x15, - 21315 - 19968: jis0208<<14 | 0x1F<<7 | 0x48, - 21317 - 19968: jis0208<<14 | 0x31<<7 | 0x20, - 21318 - 19968: jis0208<<14 | 0x31<<7 | 0x1F, - 21319 - 19968: jis0208<<14 | 0x1D<<7 | 0x02, - 21320 - 19968: jis0208<<14 | 0x17<<7 | 0x40, - 21321 - 19968: jis0208<<14 | 0x31<<7 | 0x22, - 21322 - 19968: jis0208<<14 | 0x27<<7 | 0x1D, - 21323 - 19968: jis0212<<14 | 0x13<<7 | 0x17, - 21324 - 19968: jis0212<<14 | 0x13<<7 | 0x16, - 21325 - 19968: jis0208<<14 | 0x31<<7 | 0x23, - 21329 - 19968: jis0208<<14 | 0x27<<7 | 0x3B, - 21330 - 19968: jis0208<<14 | 0x21<<7 | 0x13, - 21331 - 19968: jis0208<<14 | 0x21<<7 | 0x4D, - 21332 - 19968: jis0208<<14 | 0x15<<7 | 0x07, - 21335 - 19968: jis0208<<14 | 0x25<<7 | 0x4D, - 21336 - 19968: jis0208<<14 | 0x22<<7 | 0x10, - 21337 - 19968: jis0212<<14 | 0x13<<7 | 0x18, - 21338 - 19968: jis0208<<14 | 0x26<<7 | 0x4D, - 21339 - 19968: jis0212<<14 | 0x13<<7 | 0x19, - 21340 - 19968: jis0208<<14 | 0x2A<<7 | 0x2D, - 21342 - 19968: jis0208<<14 | 0x31<<7 | 0x25, - 21344 - 19968: jis0208<<14 | 0x1F<<7 | 0x49, - 21345 - 19968: jis0212<<14 | 0x13<<7 | 0x1A, - 21347 - 19968: jis0212<<14 | 0x13<<7 | 0x1B, - 21349 - 19968: jis0212<<14 | 0x13<<7 | 0x1C, - 21350 - 19968: jis0208<<14 | 0x16<<7 | 0x14, - 21353 - 19968: jis0208<<14 | 0x31<<7 | 0x26, - 21356 - 19968: jis0212<<14 | 0x13<<7 | 0x1D, - 21357 - 19968: jis0212<<14 | 0x13<<7 | 0x1E, - 21358 - 19968: jis0208<<14 | 0x31<<7 | 0x27, - 21359 - 19968: jis0208<<14 | 0x10<<7 | 0x0B, - 21360 - 19968: jis0208<<14 | 0x0F<<7 | 0x54, - 21361 - 19968: jis0208<<14 | 0x13<<7 | 0x4C, - 21362 - 19968: jis0208<<14 | 0x58<<7 | 0x2F, - 21363 - 19968: jis0208<<14 | 0x21<<7 | 0x07, - 21364 - 19968: jis0208<<14 | 0x14<<7 | 0x30, - 21365 - 19968: jis0208<<14 | 0x2C<<7 | 0x50, - 21367 - 19968: jis0208<<14 | 0x31<<7 | 0x2A, - 21368 - 19968: jis0208<<14 | 0x11<<7 | 0x16, - 21369 - 19968: jis0212<<14 | 0x13<<7 | 0x20, - 21371 - 19968: jis0208<<14 | 0x31<<7 | 0x29, - 21374 - 19968: jis0212<<14 | 0x13<<7 | 0x21, - 21375 - 19968: jis0208<<14 | 0x15<<7 | 0x09, - 21378 - 19968: jis0208<<14 | 0x31<<7 | 0x2B, - 21379 - 19968: jis0212<<14 | 0x13<<7 | 0x22, - 21380 - 19968: jis0208<<14 | 0x2B<<7 | 0x50, - 21383 - 19968: jis0212<<14 | 0x13<<7 | 0x23, - 21384 - 19968: jis0212<<14 | 0x13<<7 | 0x24, - 21390 - 19968: jis0212<<14 | 0x13<<7 | 0x25, - 21395 - 19968: jis0208<<14 | 0x58<<7 | 0x30, - 21396 - 19968: jis0212<<14 | 0x13<<7 | 0x27, - 21398 - 19968: jis0208<<14 | 0x31<<7 | 0x2C, - 21400 - 19968: jis0208<<14 | 0x2D<<7 | 0x31, - 21401 - 19968: jis0212<<14 | 0x13<<7 | 0x28, - 21402 - 19968: jis0208<<14 | 0x17<<7 | 0x5B, - 21405 - 19968: jis0212<<14 | 0x13<<7 | 0x29, - 21407 - 19968: jis0208<<14 | 0x17<<7 | 0x15, - 21408 - 19968: jis0208<<14 | 0x31<<7 | 0x2D, - 21409 - 19968: jis0212<<14 | 0x13<<7 | 0x2A, - 21412 - 19968: jis0212<<14 | 0x13<<7 | 0x2B, - 21413 - 19968: jis0208<<14 | 0x31<<7 | 0x2F, - 21414 - 19968: jis0208<<14 | 0x31<<7 | 0x2E, - 21416 - 19968: jis0208<<14 | 0x1E<<7 | 0x3E, - 21417 - 19968: jis0208<<14 | 0x10<<7 | 0x18, - 21418 - 19968: jis0212<<14 | 0x13<<7 | 0x2C, - 21419 - 19968: jis0212<<14 | 0x13<<7 | 0x2D, - 21421 - 19968: jis0208<<14 | 0x10<<7 | 0x3D, - 21422 - 19968: jis0208<<14 | 0x31<<7 | 0x30, - 21423 - 19968: jis0212<<14 | 0x13<<7 | 0x2E, - 21424 - 19968: jis0208<<14 | 0x31<<7 | 0x31, - 21426 - 19968: jis0208<<14 | 0x58<<7 | 0x31, - 21427 - 19968: jis0208<<14 | 0x17<<7 | 0x16, - 21428 - 19968: jis0212<<14 | 0x13<<7 | 0x30, - 21429 - 19968: jis0212<<14 | 0x13<<7 | 0x31, - 21430 - 19968: jis0208<<14 | 0x31<<7 | 0x32, - 21431 - 19968: jis0212<<14 | 0x13<<7 | 0x32, - 21432 - 19968: jis0212<<14 | 0x13<<7 | 0x33, - 21434 - 19968: jis0212<<14 | 0x13<<7 | 0x34, - 21435 - 19968: jis0208<<14 | 0x14<<7 | 0x4D, - 21437 - 19968: jis0212<<14 | 0x13<<7 | 0x35, - 21440 - 19968: jis0212<<14 | 0x13<<7 | 0x36, - 21442 - 19968: jis0208<<14 | 0x1A<<7 | 0x11, - 21443 - 19968: jis0208<<14 | 0x31<<7 | 0x33, - 21445 - 19968: jis0212<<14 | 0x13<<7 | 0x37, - 21448 - 19968: jis0208<<14 | 0x2A<<7 | 0x53, - 21449 - 19968: jis0208<<14 | 0x19<<7 | 0x14, - 21450 - 19968: jis0208<<14 | 0x14<<7 | 0x39, - 21451 - 19968: jis0208<<14 | 0x2C<<7 | 0x06, - 21452 - 19968: jis0208<<14 | 0x20<<7 | 0x2F, - 21453 - 19968: jis0208<<14 | 0x27<<7 | 0x1E, - 21454 - 19968: jis0208<<14 | 0x1B<<7 | 0x5C, - 21455 - 19968: jis0212<<14 | 0x13<<7 | 0x38, - 21458 - 19968: jis0212<<14 | 0x13<<7 | 0x39, - 21459 - 19968: jis0212<<14 | 0x13<<7 | 0x3A, - 21460 - 19968: jis0208<<14 | 0x1C<<7 | 0x26, - 21461 - 19968: jis0212<<14 | 0x13<<7 | 0x3B, - 21462 - 19968: jis0208<<14 | 0x1B<<7 | 0x47, - 21463 - 19968: jis0208<<14 | 0x1B<<7 | 0x54, - 21465 - 19968: jis0208<<14 | 0x1C<<7 | 0x55, - 21466 - 19968: jis0212<<14 | 0x13<<7 | 0x3C, - 21467 - 19968: jis0208<<14 | 0x27<<7 | 0x1F, - 21469 - 19968: jis0208<<14 | 0x58<<7 | 0x32, - 21470 - 19968: jis0212<<14 | 0x13<<7 | 0x3E, - 21471 - 19968: jis0208<<14 | 0x31<<7 | 0x36, - 21472 - 19968: jis0212<<14 | 0x13<<7 | 0x3F, - 21473 - 19968: jis0208<<14 | 0x10<<7 | 0x22, - 21474 - 19968: jis0208<<14 | 0x20<<7 | 0x30, - 21475 - 19968: jis0208<<14 | 0x17<<7 | 0x5C, - 21476 - 19968: jis0208<<14 | 0x17<<7 | 0x24, - 21477 - 19968: jis0208<<14 | 0x15<<7 | 0x46, - 21478 - 19968: jis0212<<14 | 0x13<<7 | 0x40, - 21479 - 19968: jis0212<<14 | 0x13<<7 | 0x41, - 21480 - 19968: jis0208<<14 | 0x31<<7 | 0x3A, - 21481 - 19968: jis0208<<14 | 0x22<<7 | 0x00, - 21482 - 19968: jis0208<<14 | 0x21<<7 | 0x5D, - 21483 - 19968: jis0208<<14 | 0x15<<7 | 0x0A, - 21484 - 19968: jis0208<<14 | 0x1D<<7 | 0x03, - 21485 - 19968: jis0208<<14 | 0x31<<7 | 0x3B, - 21486 - 19968: jis0208<<14 | 0x31<<7 | 0x39, - 21487 - 19968: jis0208<<14 | 0x11<<7 | 0x23, - 21488 - 19968: jis0208<<14 | 0x21<<7 | 0x45, - 21489 - 19968: jis0208<<14 | 0x1B<<7 | 0x17, - 21490 - 19968: jis0208<<14 | 0x1A<<7 | 0x2A, - 21491 - 19968: jis0208<<14 | 0x10<<7 | 0x05, - 21493 - 19968: jis0212<<14 | 0x13<<7 | 0x42, - 21494 - 19968: jis0208<<14 | 0x12<<7 | 0x4F, - 21495 - 19968: jis0208<<14 | 0x18<<7 | 0x45, - 21496 - 19968: jis0208<<14 | 0x1A<<7 | 0x29, - 21498 - 19968: jis0208<<14 | 0x31<<7 | 0x3C, - 21505 - 19968: jis0208<<14 | 0x31<<7 | 0x3D, - 21506 - 19968: jis0212<<14 | 0x13<<7 | 0x43, - 21507 - 19968: jis0208<<14 | 0x14<<7 | 0x28, - 21508 - 19968: jis0208<<14 | 0x12<<7 | 0x25, - 21512 - 19968: jis0208<<14 | 0x18<<7 | 0x46, - 21513 - 19968: jis0208<<14 | 0x14<<7 | 0x27, - 21514 - 19968: jis0208<<14 | 0x23<<7 | 0x3E, - 21515 - 19968: jis0208<<14 | 0x10<<7 | 0x04, - 21516 - 19968: jis0208<<14 | 0x25<<7 | 0x10, - 21517 - 19968: jis0208<<14 | 0x2B<<7 | 0x1D, - 21518 - 19968: jis0208<<14 | 0x18<<7 | 0x00, - 21519 - 19968: jis0208<<14 | 0x2C<<7 | 0x58, - 21520 - 19968: jis0208<<14 | 0x24<<7 | 0x26, - 21521 - 19968: jis0208<<14 | 0x17<<7 | 0x5D, - 21523 - 19968: jis0212<<14 | 0x13<<7 | 0x44, - 21530 - 19968: jis0212<<14 | 0x13<<7 | 0x45, - 21531 - 19968: jis0208<<14 | 0x16<<7 | 0x0E, - 21533 - 19968: jis0208<<14 | 0x31<<7 | 0x46, - 21535 - 19968: jis0208<<14 | 0x15<<7 | 0x42, - 21536 - 19968: jis0208<<14 | 0x2A<<7 | 0x29, - 21537 - 19968: jis0212<<14 | 0x13<<7 | 0x46, - 21542 - 19968: jis0208<<14 | 0x27<<7 | 0x3C, - 21543 - 19968: jis0212<<14 | 0x13<<7 | 0x47, - 21544 - 19968: jis0212<<14 | 0x13<<7 | 0x48, - 21545 - 19968: jis0208<<14 | 0x31<<7 | 0x45, - 21546 - 19968: jis0212<<14 | 0x13<<7 | 0x49, - 21547 - 19968: jis0208<<14 | 0x13<<7 | 0x3D, - 21548 - 19968: jis0208<<14 | 0x31<<7 | 0x40, - 21549 - 19968: jis0208<<14 | 0x31<<7 | 0x41, - 21550 - 19968: jis0208<<14 | 0x31<<7 | 0x43, - 21551 - 19968: jis0212<<14 | 0x13<<7 | 0x4A, - 21553 - 19968: jis0212<<14 | 0x13<<7 | 0x4B, - 21556 - 19968: jis0212<<14 | 0x13<<7 | 0x4C, - 21557 - 19968: jis0212<<14 | 0x13<<7 | 0x4D, - 21558 - 19968: jis0208<<14 | 0x31<<7 | 0x44, - 21560 - 19968: jis0208<<14 | 0x14<<7 | 0x3A, - 21561 - 19968: jis0208<<14 | 0x1E<<7 | 0x40, - 21563 - 19968: jis0208<<14 | 0x29<<7 | 0x0C, - 21564 - 19968: jis0208<<14 | 0x31<<7 | 0x42, - 21565 - 19968: jis0208<<14 | 0x31<<7 | 0x3E, - 21566 - 19968: jis0208<<14 | 0x17<<7 | 0x42, - 21568 - 19968: jis0208<<14 | 0x31<<7 | 0x3F, - 21570 - 19968: jis0208<<14 | 0x2E<<7 | 0x03, - 21571 - 19968: jis0212<<14 | 0x13<<7 | 0x4E, - 21572 - 19968: jis0212<<14 | 0x13<<7 | 0x4F, - 21574 - 19968: jis0208<<14 | 0x29<<7 | 0x51, - 21575 - 19968: jis0212<<14 | 0x13<<7 | 0x50, - 21576 - 19968: jis0208<<14 | 0x23<<7 | 0x47, - 21577 - 19968: jis0208<<14 | 0x17<<7 | 0x41, - 21578 - 19968: jis0208<<14 | 0x18<<7 | 0x4F, - 21581 - 19968: jis0212<<14 | 0x13<<7 | 0x51, - 21582 - 19968: jis0208<<14 | 0x31<<7 | 0x47, - 21583 - 19968: jis0212<<14 | 0x13<<7 | 0x52, - 21585 - 19968: jis0208<<14 | 0x25<<7 | 0x3C, - 21598 - 19968: jis0212<<14 | 0x13<<7 | 0x53, - 21599 - 19968: jis0208<<14 | 0x31<<7 | 0x4B, - 21602 - 19968: jis0212<<14 | 0x13<<7 | 0x54, - 21604 - 19968: jis0212<<14 | 0x13<<7 | 0x55, - 21606 - 19968: jis0212<<14 | 0x13<<7 | 0x56, - 21607 - 19968: jis0212<<14 | 0x13<<7 | 0x57, - 21608 - 19968: jis0208<<14 | 0x1B<<7 | 0x5D, - 21609 - 19968: jis0212<<14 | 0x13<<7 | 0x58, - 21610 - 19968: jis0208<<14 | 0x1B<<7 | 0x55, - 21611 - 19968: jis0212<<14 | 0x13<<7 | 0x59, - 21613 - 19968: jis0212<<14 | 0x13<<7 | 0x5A, - 21614 - 19968: jis0212<<14 | 0x13<<7 | 0x5B, - 21616 - 19968: jis0208<<14 | 0x31<<7 | 0x4E, - 21617 - 19968: jis0208<<14 | 0x31<<7 | 0x4C, - 21619 - 19968: jis0208<<14 | 0x2B<<7 | 0x02, - 21620 - 19968: jis0212<<14 | 0x13<<7 | 0x5C, - 21621 - 19968: jis0208<<14 | 0x31<<7 | 0x49, - 21622 - 19968: jis0208<<14 | 0x31<<7 | 0x52, - 21623 - 19968: jis0208<<14 | 0x31<<7 | 0x4D, - 21627 - 19968: jis0208<<14 | 0x31<<7 | 0x50, - 21628 - 19968: jis0208<<14 | 0x17<<7 | 0x25, - 21629 - 19968: jis0208<<14 | 0x2B<<7 | 0x1E, - 21631 - 19968: jis0212<<14 | 0x13<<7 | 0x5D, - 21632 - 19968: jis0208<<14 | 0x31<<7 | 0x51, - 21633 - 19968: jis0212<<14 | 0x14<<7 | 0x00, - 21635 - 19968: jis0212<<14 | 0x14<<7 | 0x01, - 21636 - 19968: jis0208<<14 | 0x31<<7 | 0x53, - 21637 - 19968: jis0212<<14 | 0x14<<7 | 0x02, - 21638 - 19968: jis0208<<14 | 0x31<<7 | 0x55, - 21640 - 19968: jis0212<<14 | 0x14<<7 | 0x03, - 21641 - 19968: jis0212<<14 | 0x14<<7 | 0x04, - 21642 - 19968: jis0208<<14 | 0x58<<7 | 0x35, - 21643 - 19968: jis0208<<14 | 0x19<<7 | 0x4F, - 21644 - 19968: jis0208<<14 | 0x2E<<7 | 0x21, - 21645 - 19968: jis0212<<14 | 0x14<<7 | 0x05, - 21646 - 19968: jis0208<<14 | 0x31<<7 | 0x4A, - 21647 - 19968: jis0208<<14 | 0x31<<7 | 0x48, - 21648 - 19968: jis0208<<14 | 0x31<<7 | 0x54, - 21649 - 19968: jis0212<<14 | 0x14<<7 | 0x06, - 21650 - 19968: jis0208<<14 | 0x31<<7 | 0x4F, - 21653 - 19968: jis0212<<14 | 0x14<<7 | 0x07, - 21654 - 19968: jis0212<<14 | 0x14<<7 | 0x08, - 21660 - 19968: jis0208<<14 | 0x58<<7 | 0x34, - 21663 - 19968: jis0212<<14 | 0x14<<7 | 0x0A, - 21665 - 19968: jis0212<<14 | 0x14<<7 | 0x0B, - 21666 - 19968: jis0208<<14 | 0x31<<7 | 0x57, - 21668 - 19968: jis0208<<14 | 0x32<<7 | 0x02, - 21669 - 19968: jis0208<<14 | 0x31<<7 | 0x59, - 21670 - 19968: jis0212<<14 | 0x14<<7 | 0x0C, - 21671 - 19968: jis0212<<14 | 0x14<<7 | 0x0D, - 21672 - 19968: jis0208<<14 | 0x31<<7 | 0x5D, - 21673 - 19968: jis0208<<14 | 0x58<<7 | 0x36, - 21674 - 19968: jis0212<<14 | 0x14<<7 | 0x0F, - 21675 - 19968: jis0208<<14 | 0x32<<7 | 0x00, - 21676 - 19968: jis0208<<14 | 0x31<<7 | 0x5A, - 21677 - 19968: jis0212<<14 | 0x14<<7 | 0x10, - 21678 - 19968: jis0212<<14 | 0x14<<7 | 0x11, - 21679 - 19968: jis0208<<14 | 0x32<<7 | 0x1D, - 21681 - 19968: jis0212<<14 | 0x14<<7 | 0x12, - 21682 - 19968: jis0208<<14 | 0x19<<7 | 0x48, - 21683 - 19968: jis0208<<14 | 0x12<<7 | 0x10, - 21687 - 19968: jis0212<<14 | 0x14<<7 | 0x13, - 21688 - 19968: jis0208<<14 | 0x31<<7 | 0x58, - 21689 - 19968: jis0212<<14 | 0x14<<7 | 0x14, - 21690 - 19968: jis0212<<14 | 0x14<<7 | 0x15, - 21691 - 19968: jis0212<<14 | 0x14<<7 | 0x16, - 21692 - 19968: jis0208<<14 | 0x32<<7 | 0x04, - 21693 - 19968: jis0208<<14 | 0x0F<<7 | 0x55, - 21694 - 19968: jis0208<<14 | 0x32<<7 | 0x03, - 21695 - 19968: jis0212<<14 | 0x14<<7 | 0x17, - 21696 - 19968: jis0208<<14 | 0x0F<<7 | 0x04, - 21697 - 19968: jis0208<<14 | 0x28<<7 | 0x29, - 21698 - 19968: jis0208<<14 | 0x32<<7 | 0x01, - 21700 - 19968: jis0208<<14 | 0x31<<7 | 0x5B, - 21702 - 19968: jis0212<<14 | 0x14<<7 | 0x18, - 21703 - 19968: jis0208<<14 | 0x31<<7 | 0x56, - 21704 - 19968: jis0208<<14 | 0x31<<7 | 0x5C, - 21705 - 19968: jis0208<<14 | 0x19<<7 | 0x27, - 21706 - 19968: jis0212<<14 | 0x14<<7 | 0x19, - 21709 - 19968: jis0212<<14 | 0x14<<7 | 0x1A, - 21710 - 19968: jis0212<<14 | 0x14<<7 | 0x1B, - 21720 - 19968: jis0208<<14 | 0x32<<7 | 0x05, - 21728 - 19968: jis0212<<14 | 0x14<<7 | 0x1C, - 21729 - 19968: jis0208<<14 | 0x0F<<7 | 0x56, - 21730 - 19968: jis0208<<14 | 0x32<<7 | 0x0E, - 21733 - 19968: jis0208<<14 | 0x32<<7 | 0x06, - 21734 - 19968: jis0208<<14 | 0x32<<7 | 0x07, - 21736 - 19968: jis0208<<14 | 0x1D<<7 | 0x04, - 21737 - 19968: jis0208<<14 | 0x2A<<7 | 0x48, - 21738 - 19968: jis0212<<14 | 0x14<<7 | 0x1D, - 21740 - 19968: jis0212<<14 | 0x14<<7 | 0x1E, - 21741 - 19968: jis0208<<14 | 0x32<<7 | 0x0C, - 21742 - 19968: jis0208<<14 | 0x32<<7 | 0x0B, - 21743 - 19968: jis0212<<14 | 0x14<<7 | 0x1F, - 21746 - 19968: jis0208<<14 | 0x24<<7 | 0x0E, - 21750 - 19968: jis0212<<14 | 0x14<<7 | 0x20, - 21754 - 19968: jis0208<<14 | 0x32<<7 | 0x0D, - 21756 - 19968: jis0212<<14 | 0x14<<7 | 0x21, - 21757 - 19968: jis0208<<14 | 0x32<<7 | 0x0A, - 21758 - 19968: jis0212<<14 | 0x14<<7 | 0x22, - 21759 - 19968: jis0208<<14 | 0x58<<7 | 0x37, - 21760 - 19968: jis0212<<14 | 0x14<<7 | 0x24, - 21761 - 19968: jis0212<<14 | 0x14<<7 | 0x25, - 21764 - 19968: jis0208<<14 | 0x10<<7 | 0x13, - 21765 - 19968: jis0212<<14 | 0x14<<7 | 0x26, - 21766 - 19968: jis0208<<14 | 0x19<<7 | 0x15, - 21767 - 19968: jis0208<<14 | 0x1E<<7 | 0x0F, - 21768 - 19968: jis0212<<14 | 0x14<<7 | 0x27, - 21769 - 19968: jis0212<<14 | 0x14<<7 | 0x28, - 21772 - 19968: jis0212<<14 | 0x14<<7 | 0x29, - 21773 - 19968: jis0212<<14 | 0x14<<7 | 0x2A, - 21774 - 19968: jis0212<<14 | 0x14<<7 | 0x2B, - 21775 - 19968: jis0208<<14 | 0x32<<7 | 0x08, - 21776 - 19968: jis0208<<14 | 0x24<<7 | 0x41, - 21780 - 19968: jis0208<<14 | 0x32<<7 | 0x09, - 21781 - 19968: jis0212<<14 | 0x14<<7 | 0x2C, - 21782 - 19968: jis0208<<14 | 0x0F<<7 | 0x01, - 21802 - 19968: jis0212<<14 | 0x14<<7 | 0x2D, - 21803 - 19968: jis0212<<14 | 0x14<<7 | 0x2E, - 21806 - 19968: jis0208<<14 | 0x32<<7 | 0x13, - 21807 - 19968: jis0208<<14 | 0x2C<<7 | 0x02, - 21809 - 19968: jis0208<<14 | 0x1D<<7 | 0x06, - 21810 - 19968: jis0212<<14 | 0x14<<7 | 0x2F, - 21811 - 19968: jis0208<<14 | 0x32<<7 | 0x19, - 21813 - 19968: jis0212<<14 | 0x14<<7 | 0x30, - 21814 - 19968: jis0212<<14 | 0x14<<7 | 0x31, - 21816 - 19968: jis0208<<14 | 0x32<<7 | 0x18, - 21817 - 19968: jis0208<<14 | 0x32<<7 | 0x0F, - 21819 - 19968: jis0212<<14 | 0x14<<7 | 0x32, - 21820 - 19968: jis0212<<14 | 0x14<<7 | 0x33, - 21821 - 19968: jis0212<<14 | 0x14<<7 | 0x34, - 21822 - 19968: jis0208<<14 | 0x21<<7 | 0x22, - 21824 - 19968: jis0208<<14 | 0x32<<7 | 0x10, - 21825 - 19968: jis0212<<14 | 0x14<<7 | 0x35, - 21828 - 19968: jis0208<<14 | 0x21<<7 | 0x4E, - 21829 - 19968: jis0208<<14 | 0x32<<7 | 0x15, - 21830 - 19968: jis0208<<14 | 0x1D<<7 | 0x05, - 21831 - 19968: jis0212<<14 | 0x14<<7 | 0x36, - 21833 - 19968: jis0212<<14 | 0x14<<7 | 0x37, - 21834 - 19968: jis0212<<14 | 0x14<<7 | 0x38, - 21836 - 19968: jis0208<<14 | 0x32<<7 | 0x12, - 21837 - 19968: jis0212<<14 | 0x14<<7 | 0x39, - 21839 - 19968: jis0208<<14 | 0x2B<<7 | 0x43, - 21840 - 19968: jis0212<<14 | 0x14<<7 | 0x3A, - 21841 - 19968: jis0212<<14 | 0x14<<7 | 0x3B, - 21843 - 19968: jis0208<<14 | 0x16<<7 | 0x1B, - 21846 - 19968: jis0208<<14 | 0x32<<7 | 0x16, - 21847 - 19968: jis0208<<14 | 0x32<<7 | 0x17, - 21848 - 19968: jis0212<<14 | 0x14<<7 | 0x3C, - 21850 - 19968: jis0212<<14 | 0x14<<7 | 0x3D, - 21851 - 19968: jis0212<<14 | 0x14<<7 | 0x3E, - 21852 - 19968: jis0208<<14 | 0x32<<7 | 0x14, - 21853 - 19968: jis0208<<14 | 0x32<<7 | 0x1A, - 21854 - 19968: jis0212<<14 | 0x14<<7 | 0x3F, - 21856 - 19968: jis0212<<14 | 0x14<<7 | 0x40, - 21857 - 19968: jis0212<<14 | 0x14<<7 | 0x41, - 21859 - 19968: jis0208<<14 | 0x32<<7 | 0x11, - 21860 - 19968: jis0212<<14 | 0x14<<7 | 0x42, - 21862 - 19968: jis0212<<14 | 0x14<<7 | 0x43, - 21883 - 19968: jis0208<<14 | 0x32<<7 | 0x20, - 21884 - 19968: jis0208<<14 | 0x32<<7 | 0x25, - 21886 - 19968: jis0208<<14 | 0x32<<7 | 0x21, - 21887 - 19968: jis0212<<14 | 0x14<<7 | 0x44, - 21888 - 19968: jis0208<<14 | 0x32<<7 | 0x1C, - 21889 - 19968: jis0212<<14 | 0x14<<7 | 0x45, - 21890 - 19968: jis0212<<14 | 0x14<<7 | 0x46, - 21891 - 19968: jis0208<<14 | 0x32<<7 | 0x26, - 21892 - 19968: jis0208<<14 | 0x20<<7 | 0x10, - 21894 - 19968: jis0208<<14 | 0x58<<7 | 0x38, - 21895 - 19968: jis0208<<14 | 0x32<<7 | 0x28, - 21896 - 19968: jis0212<<14 | 0x14<<7 | 0x48, - 21897 - 19968: jis0208<<14 | 0x18<<7 | 0x01, - 21898 - 19968: jis0208<<14 | 0x32<<7 | 0x1E, - 21899 - 19968: jis0208<<14 | 0x22<<7 | 0x5C, - 21902 - 19968: jis0212<<14 | 0x14<<7 | 0x49, - 21903 - 19968: jis0212<<14 | 0x14<<7 | 0x4A, - 21905 - 19968: jis0212<<14 | 0x14<<7 | 0x4B, - 21906 - 19968: jis0212<<14 | 0x14<<7 | 0x4C, - 21907 - 19968: jis0212<<14 | 0x14<<7 | 0x4D, - 21908 - 19968: jis0212<<14 | 0x14<<7 | 0x4E, - 21911 - 19968: jis0212<<14 | 0x14<<7 | 0x4F, - 21912 - 19968: jis0208<<14 | 0x32<<7 | 0x22, - 21913 - 19968: jis0208<<14 | 0x32<<7 | 0x1B, - 21914 - 19968: jis0208<<14 | 0x13<<7 | 0x0C, - 21916 - 19968: jis0208<<14 | 0x13<<7 | 0x4D, - 21917 - 19968: jis0208<<14 | 0x12<<7 | 0x44, - 21918 - 19968: jis0208<<14 | 0x32<<7 | 0x23, - 21919 - 19968: jis0208<<14 | 0x32<<7 | 0x1F, - 21923 - 19968: jis0212<<14 | 0x14<<7 | 0x50, - 21924 - 19968: jis0212<<14 | 0x14<<7 | 0x51, - 21927 - 19968: jis0208<<14 | 0x16<<7 | 0x55, - 21928 - 19968: jis0208<<14 | 0x32<<7 | 0x29, - 21929 - 19968: jis0208<<14 | 0x32<<7 | 0x27, - 21930 - 19968: jis0208<<14 | 0x20<<7 | 0x32, - 21931 - 19968: jis0208<<14 | 0x14<<7 | 0x29, - 21932 - 19968: jis0208<<14 | 0x15<<7 | 0x0B, - 21933 - 19968: jis0212<<14 | 0x14<<7 | 0x52, - 21934 - 19968: jis0208<<14 | 0x32<<7 | 0x24, - 21936 - 19968: jis0208<<14 | 0x15<<7 | 0x53, - 21938 - 19968: jis0212<<14 | 0x14<<7 | 0x53, - 21942 - 19968: jis0208<<14 | 0x10<<7 | 0x23, - 21951 - 19968: jis0212<<14 | 0x14<<7 | 0x54, - 21953 - 19968: jis0212<<14 | 0x14<<7 | 0x55, - 21955 - 19968: jis0212<<14 | 0x14<<7 | 0x56, - 21956 - 19968: jis0208<<14 | 0x32<<7 | 0x2D, - 21957 - 19968: jis0208<<14 | 0x32<<7 | 0x2B, - 21958 - 19968: jis0212<<14 | 0x14<<7 | 0x57, - 21959 - 19968: jis0208<<14 | 0x33<<7 | 0x06, - 21961 - 19968: jis0212<<14 | 0x14<<7 | 0x58, - 21963 - 19968: jis0212<<14 | 0x14<<7 | 0x59, - 21964 - 19968: jis0212<<14 | 0x14<<7 | 0x5A, - 21966 - 19968: jis0212<<14 | 0x14<<7 | 0x5B, - 21969 - 19968: jis0212<<14 | 0x14<<7 | 0x5C, - 21970 - 19968: jis0212<<14 | 0x14<<7 | 0x5D, - 21971 - 19968: jis0212<<14 | 0x15<<7 | 0x00, - 21972 - 19968: jis0208<<14 | 0x32<<7 | 0x30, - 21975 - 19968: jis0212<<14 | 0x15<<7 | 0x01, - 21976 - 19968: jis0212<<14 | 0x15<<7 | 0x02, - 21978 - 19968: jis0208<<14 | 0x32<<7 | 0x2A, - 21979 - 19968: jis0212<<14 | 0x15<<7 | 0x03, - 21980 - 19968: jis0208<<14 | 0x32<<7 | 0x2E, - 21982 - 19968: jis0212<<14 | 0x15<<7 | 0x04, - 21983 - 19968: jis0208<<14 | 0x32<<7 | 0x2C, - 21986 - 19968: jis0212<<14 | 0x15<<7 | 0x05, - 21987 - 19968: jis0208<<14 | 0x1A<<7 | 0x2B, - 21988 - 19968: jis0208<<14 | 0x32<<7 | 0x2F, - 21993 - 19968: jis0212<<14 | 0x15<<7 | 0x06, - 22006 - 19968: jis0212<<14 | 0x15<<7 | 0x07, - 22007 - 19968: jis0208<<14 | 0x32<<7 | 0x32, - 22009 - 19968: jis0208<<14 | 0x32<<7 | 0x37, - 22013 - 19968: jis0208<<14 | 0x32<<7 | 0x35, - 22014 - 19968: jis0208<<14 | 0x32<<7 | 0x34, - 22015 - 19968: jis0212<<14 | 0x15<<7 | 0x08, - 22021 - 19968: jis0212<<14 | 0x15<<7 | 0x09, - 22022 - 19968: jis0208<<14 | 0x22<<7 | 0x11, - 22024 - 19968: jis0212<<14 | 0x15<<7 | 0x0A, - 22025 - 19968: jis0208<<14 | 0x11<<7 | 0x24, - 22026 - 19968: jis0212<<14 | 0x15<<7 | 0x0B, - 22029 - 19968: jis0212<<14 | 0x15<<7 | 0x0C, - 22030 - 19968: jis0212<<14 | 0x15<<7 | 0x0D, - 22031 - 19968: jis0212<<14 | 0x15<<7 | 0x0E, - 22032 - 19968: jis0212<<14 | 0x15<<7 | 0x0F, - 22033 - 19968: jis0212<<14 | 0x15<<7 | 0x10, - 22034 - 19968: jis0212<<14 | 0x15<<7 | 0x11, - 22036 - 19968: jis0208<<14 | 0x32<<7 | 0x31, - 22038 - 19968: jis0208<<14 | 0x32<<7 | 0x33, - 22039 - 19968: jis0208<<14 | 0x1D<<7 | 0x07, - 22040 - 19968: jis0208<<14 | 0x10<<7 | 0x12, - 22041 - 19968: jis0212<<14 | 0x15<<7 | 0x12, - 22043 - 19968: jis0208<<14 | 0x32<<7 | 0x36, - 22057 - 19968: jis0208<<14 | 0x11<<7 | 0x3D, - 22060 - 19968: jis0212<<14 | 0x15<<7 | 0x13, - 22063 - 19968: jis0208<<14 | 0x32<<7 | 0x41, - 22064 - 19968: jis0212<<14 | 0x15<<7 | 0x14, - 22065 - 19968: jis0208<<14 | 0x1D<<7 | 0x5B, - 22066 - 19968: jis0208<<14 | 0x32<<7 | 0x3D, - 22067 - 19968: jis0212<<14 | 0x15<<7 | 0x15, - 22068 - 19968: jis0208<<14 | 0x32<<7 | 0x3B, - 22069 - 19968: jis0212<<14 | 0x15<<7 | 0x16, - 22070 - 19968: jis0208<<14 | 0x32<<7 | 0x3C, - 22071 - 19968: jis0212<<14 | 0x15<<7 | 0x17, - 22072 - 19968: jis0208<<14 | 0x32<<7 | 0x3E, - 22073 - 19968: jis0212<<14 | 0x15<<7 | 0x18, - 22075 - 19968: jis0212<<14 | 0x15<<7 | 0x19, - 22076 - 19968: jis0212<<14 | 0x15<<7 | 0x1A, - 22077 - 19968: jis0212<<14 | 0x15<<7 | 0x1B, - 22079 - 19968: jis0212<<14 | 0x15<<7 | 0x1C, - 22080 - 19968: jis0212<<14 | 0x15<<7 | 0x1D, - 22081 - 19968: jis0212<<14 | 0x15<<7 | 0x1E, - 22082 - 19968: jis0208<<14 | 0x10<<7 | 0x1C, - 22083 - 19968: jis0212<<14 | 0x15<<7 | 0x1F, - 22084 - 19968: jis0212<<14 | 0x15<<7 | 0x20, - 22086 - 19968: jis0212<<14 | 0x15<<7 | 0x21, - 22089 - 19968: jis0212<<14 | 0x15<<7 | 0x22, - 22091 - 19968: jis0212<<14 | 0x15<<7 | 0x23, - 22092 - 19968: jis0208<<14 | 0x20<<7 | 0x18, - 22093 - 19968: jis0212<<14 | 0x15<<7 | 0x24, - 22094 - 19968: jis0208<<14 | 0x32<<7 | 0x38, - 22095 - 19968: jis0212<<14 | 0x15<<7 | 0x25, - 22096 - 19968: jis0208<<14 | 0x32<<7 | 0x39, - 22100 - 19968: jis0212<<14 | 0x15<<7 | 0x26, - 22107 - 19968: jis0208<<14 | 0x12<<7 | 0x59, - 22110 - 19968: jis0212<<14 | 0x15<<7 | 0x27, - 22112 - 19968: jis0212<<14 | 0x15<<7 | 0x28, - 22113 - 19968: jis0212<<14 | 0x15<<7 | 0x29, - 22114 - 19968: jis0212<<14 | 0x15<<7 | 0x2A, - 22115 - 19968: jis0212<<14 | 0x15<<7 | 0x2B, - 22116 - 19968: jis0208<<14 | 0x32<<7 | 0x40, - 22118 - 19968: jis0212<<14 | 0x15<<7 | 0x2C, - 22120 - 19968: jis0208<<14 | 0x13<<7 | 0x4E, - 22121 - 19968: jis0212<<14 | 0x15<<7 | 0x2D, - 22122 - 19968: jis0208<<14 | 0x32<<7 | 0x43, - 22123 - 19968: jis0208<<14 | 0x32<<7 | 0x3F, - 22124 - 19968: jis0208<<14 | 0x32<<7 | 0x42, - 22125 - 19968: jis0212<<14 | 0x15<<7 | 0x2E, - 22127 - 19968: jis0212<<14 | 0x15<<7 | 0x2F, - 22129 - 19968: jis0212<<14 | 0x15<<7 | 0x30, - 22130 - 19968: jis0212<<14 | 0x15<<7 | 0x31, - 22132 - 19968: jis0208<<14 | 0x29<<7 | 0x0D, - 22133 - 19968: jis0212<<14 | 0x15<<7 | 0x32, - 22136 - 19968: jis0208<<14 | 0x25<<7 | 0x34, - 22138 - 19968: jis0208<<14 | 0x27<<7 | 0x17, - 22144 - 19968: jis0208<<14 | 0x32<<7 | 0x45, - 22148 - 19968: jis0212<<14 | 0x15<<7 | 0x33, - 22149 - 19968: jis0212<<14 | 0x15<<7 | 0x34, - 22150 - 19968: jis0208<<14 | 0x32<<7 | 0x44, - 22151 - 19968: jis0208<<14 | 0x12<<7 | 0x24, - 22152 - 19968: jis0212<<14 | 0x15<<7 | 0x35, - 22154 - 19968: jis0208<<14 | 0x32<<7 | 0x46, - 22155 - 19968: jis0212<<14 | 0x15<<7 | 0x36, - 22156 - 19968: jis0212<<14 | 0x15<<7 | 0x37, - 22159 - 19968: jis0208<<14 | 0x32<<7 | 0x49, - 22164 - 19968: jis0208<<14 | 0x32<<7 | 0x48, - 22165 - 19968: jis0212<<14 | 0x15<<7 | 0x38, - 22169 - 19968: jis0212<<14 | 0x15<<7 | 0x39, - 22170 - 19968: jis0212<<14 | 0x15<<7 | 0x3A, - 22173 - 19968: jis0212<<14 | 0x15<<7 | 0x3B, - 22174 - 19968: jis0212<<14 | 0x15<<7 | 0x3C, - 22175 - 19968: jis0212<<14 | 0x15<<7 | 0x3D, - 22176 - 19968: jis0208<<14 | 0x32<<7 | 0x47, - 22178 - 19968: jis0208<<14 | 0x26<<7 | 0x18, - 22181 - 19968: jis0208<<14 | 0x32<<7 | 0x4A, - 22182 - 19968: jis0212<<14 | 0x15<<7 | 0x3E, - 22183 - 19968: jis0212<<14 | 0x15<<7 | 0x3F, - 22184 - 19968: jis0212<<14 | 0x15<<7 | 0x40, - 22185 - 19968: jis0212<<14 | 0x15<<7 | 0x41, - 22187 - 19968: jis0212<<14 | 0x15<<7 | 0x42, - 22188 - 19968: jis0212<<14 | 0x15<<7 | 0x43, - 22189 - 19968: jis0212<<14 | 0x15<<7 | 0x44, - 22190 - 19968: jis0208<<14 | 0x32<<7 | 0x4B, - 22193 - 19968: jis0212<<14 | 0x15<<7 | 0x45, - 22195 - 19968: jis0212<<14 | 0x15<<7 | 0x46, - 22196 - 19968: jis0208<<14 | 0x32<<7 | 0x4D, - 22198 - 19968: jis0208<<14 | 0x32<<7 | 0x4C, - 22199 - 19968: jis0212<<14 | 0x15<<7 | 0x47, - 22204 - 19968: jis0208<<14 | 0x32<<7 | 0x4F, - 22206 - 19968: jis0212<<14 | 0x15<<7 | 0x48, - 22208 - 19968: jis0208<<14 | 0x32<<7 | 0x52, - 22209 - 19968: jis0208<<14 | 0x32<<7 | 0x50, - 22210 - 19968: jis0208<<14 | 0x32<<7 | 0x4E, - 22211 - 19968: jis0208<<14 | 0x32<<7 | 0x51, - 22213 - 19968: jis0212<<14 | 0x15<<7 | 0x49, - 22216 - 19968: jis0208<<14 | 0x32<<7 | 0x53, - 22217 - 19968: jis0212<<14 | 0x15<<7 | 0x4A, - 22218 - 19968: jis0212<<14 | 0x15<<7 | 0x4B, - 22219 - 19968: jis0212<<14 | 0x15<<7 | 0x4C, - 22220 - 19968: jis0212<<14 | 0x15<<7 | 0x4F, - 22221 - 19968: jis0212<<14 | 0x15<<7 | 0x50, - 22222 - 19968: jis0208<<14 | 0x32<<7 | 0x54, - 22223 - 19968: jis0212<<14 | 0x15<<7 | 0x4D, - 22224 - 19968: jis0212<<14 | 0x15<<7 | 0x4E, - 22225 - 19968: jis0208<<14 | 0x32<<7 | 0x55, - 22227 - 19968: jis0208<<14 | 0x32<<7 | 0x56, - 22231 - 19968: jis0208<<14 | 0x32<<7 | 0x57, - 22232 - 19968: jis0208<<14 | 0x30<<7 | 0x24, - 22233 - 19968: jis0212<<14 | 0x15<<7 | 0x51, - 22234 - 19968: jis0208<<14 | 0x1B<<7 | 0x5B, - 22235 - 19968: jis0208<<14 | 0x1A<<7 | 0x2C, - 22236 - 19968: jis0212<<14 | 0x15<<7 | 0x52, - 22237 - 19968: jis0212<<14 | 0x15<<7 | 0x53, - 22238 - 19968: jis0208<<14 | 0x11<<7 | 0x52, - 22239 - 19968: jis0212<<14 | 0x15<<7 | 0x54, - 22240 - 19968: jis0208<<14 | 0x0F<<7 | 0x57, - 22241 - 19968: jis0212<<14 | 0x15<<7 | 0x55, - 22243 - 19968: jis0208<<14 | 0x22<<7 | 0x23, - 22244 - 19968: jis0212<<14 | 0x15<<7 | 0x56, - 22245 - 19968: jis0212<<14 | 0x15<<7 | 0x57, - 22246 - 19968: jis0212<<14 | 0x15<<7 | 0x58, - 22247 - 19968: jis0212<<14 | 0x15<<7 | 0x59, - 22248 - 19968: jis0212<<14 | 0x15<<7 | 0x5A, - 22251 - 19968: jis0212<<14 | 0x15<<7 | 0x5C, - 22253 - 19968: jis0212<<14 | 0x15<<7 | 0x5D, - 22254 - 19968: jis0208<<14 | 0x32<<7 | 0x58, - 22256 - 19968: jis0208<<14 | 0x19<<7 | 0x03, - 22257 - 19968: jis0212<<14 | 0x15<<7 | 0x5B, - 22258 - 19968: jis0208<<14 | 0x0F<<7 | 0x2E, - 22259 - 19968: jis0208<<14 | 0x1E<<7 | 0x3D, - 22262 - 19968: jis0212<<14 | 0x16<<7 | 0x00, - 22263 - 19968: jis0212<<14 | 0x16<<7 | 0x01, - 22265 - 19968: jis0208<<14 | 0x32<<7 | 0x59, - 22266 - 19968: jis0208<<14 | 0x17<<7 | 0x26, - 22269 - 19968: jis0208<<14 | 0x18<<7 | 0x50, - 22271 - 19968: jis0208<<14 | 0x32<<7 | 0x5B, - 22272 - 19968: jis0208<<14 | 0x32<<7 | 0x5A, - 22273 - 19968: jis0212<<14 | 0x16<<7 | 0x02, - 22274 - 19968: jis0212<<14 | 0x16<<7 | 0x03, - 22275 - 19968: jis0208<<14 | 0x29<<7 | 0x3F, - 22276 - 19968: jis0208<<14 | 0x32<<7 | 0x5C, - 22279 - 19968: jis0212<<14 | 0x16<<7 | 0x04, - 22280 - 19968: jis0208<<14 | 0x33<<7 | 0x00, - 22281 - 19968: jis0208<<14 | 0x32<<7 | 0x5D, - 22282 - 19968: jis0212<<14 | 0x16<<7 | 0x05, - 22283 - 19968: jis0208<<14 | 0x33<<7 | 0x01, - 22284 - 19968: jis0212<<14 | 0x16<<7 | 0x06, - 22285 - 19968: jis0208<<14 | 0x33<<7 | 0x02, - 22287 - 19968: jis0208<<14 | 0x16<<7 | 0x56, - 22289 - 19968: jis0212<<14 | 0x16<<7 | 0x07, - 22290 - 19968: jis0208<<14 | 0x10<<7 | 0x3F, - 22291 - 19968: jis0208<<14 | 0x33<<7 | 0x03, - 22293 - 19968: jis0212<<14 | 0x16<<7 | 0x08, - 22294 - 19968: jis0208<<14 | 0x33<<7 | 0x05, - 22296 - 19968: jis0208<<14 | 0x33<<7 | 0x04, - 22298 - 19968: jis0212<<14 | 0x16<<7 | 0x09, - 22299 - 19968: jis0212<<14 | 0x16<<7 | 0x0A, - 22300 - 19968: jis0208<<14 | 0x33<<7 | 0x07, - 22301 - 19968: jis0212<<14 | 0x16<<7 | 0x0B, - 22303 - 19968: jis0208<<14 | 0x24<<7 | 0x39, - 22304 - 19968: jis0212<<14 | 0x16<<7 | 0x0C, - 22306 - 19968: jis0212<<14 | 0x16<<7 | 0x0D, - 22307 - 19968: jis0212<<14 | 0x16<<7 | 0x0E, - 22308 - 19968: jis0212<<14 | 0x16<<7 | 0x0F, - 22309 - 19968: jis0212<<14 | 0x16<<7 | 0x10, - 22310 - 19968: jis0208<<14 | 0x33<<7 | 0x08, - 22311 - 19968: jis0208<<14 | 0x0F<<7 | 0x14, - 22312 - 19968: jis0208<<14 | 0x19<<7 | 0x3E, - 22313 - 19968: jis0212<<14 | 0x16<<7 | 0x11, - 22314 - 19968: jis0212<<14 | 0x16<<7 | 0x12, - 22316 - 19968: jis0212<<14 | 0x16<<7 | 0x13, - 22317 - 19968: jis0208<<14 | 0x16<<7 | 0x1C, - 22318 - 19968: jis0212<<14 | 0x16<<7 | 0x14, - 22319 - 19968: jis0212<<14 | 0x16<<7 | 0x15, - 22320 - 19968: jis0208<<14 | 0x22<<7 | 0x2E, - 22323 - 19968: jis0212<<14 | 0x16<<7 | 0x16, - 22324 - 19968: jis0212<<14 | 0x16<<7 | 0x17, - 22327 - 19968: jis0208<<14 | 0x33<<7 | 0x09, - 22328 - 19968: jis0208<<14 | 0x33<<7 | 0x0A, - 22331 - 19968: jis0208<<14 | 0x33<<7 | 0x0C, - 22333 - 19968: jis0212<<14 | 0x16<<7 | 0x18, - 22334 - 19968: jis0212<<14 | 0x16<<7 | 0x19, - 22335 - 19968: jis0212<<14 | 0x16<<7 | 0x1A, - 22336 - 19968: jis0208<<14 | 0x33<<7 | 0x0D, - 22338 - 19968: jis0208<<14 | 0x19<<7 | 0x43, - 22341 - 19968: jis0212<<14 | 0x16<<7 | 0x1B, - 22342 - 19968: jis0212<<14 | 0x16<<7 | 0x1C, - 22343 - 19968: jis0208<<14 | 0x15<<7 | 0x30, - 22346 - 19968: jis0208<<14 | 0x2A<<7 | 0x16, - 22348 - 19968: jis0212<<14 | 0x16<<7 | 0x1D, - 22349 - 19968: jis0212<<14 | 0x16<<7 | 0x1E, - 22350 - 19968: jis0208<<14 | 0x33<<7 | 0x0B, - 22351 - 19968: jis0208<<14 | 0x33<<7 | 0x0E, - 22352 - 19968: jis0208<<14 | 0x19<<7 | 0x20, - 22353 - 19968: jis0208<<14 | 0x18<<7 | 0x02, - 22354 - 19968: jis0212<<14 | 0x16<<7 | 0x1F, - 22361 - 19968: jis0208<<14 | 0x58<<7 | 0x39, - 22369 - 19968: jis0208<<14 | 0x33<<7 | 0x12, - 22370 - 19968: jis0212<<14 | 0x16<<7 | 0x20, - 22372 - 19968: jis0208<<14 | 0x19<<7 | 0x04, - 22373 - 19968: jis0208<<14 | 0x58<<7 | 0x3A, - 22374 - 19968: jis0208<<14 | 0x22<<7 | 0x12, - 22375 - 19968: jis0212<<14 | 0x16<<7 | 0x22, - 22376 - 19968: jis0212<<14 | 0x16<<7 | 0x23, - 22377 - 19968: jis0208<<14 | 0x33<<7 | 0x0F, - 22378 - 19968: jis0208<<14 | 0x23<<7 | 0x39, - 22379 - 19968: jis0212<<14 | 0x16<<7 | 0x24, - 22381 - 19968: jis0212<<14 | 0x16<<7 | 0x25, - 22382 - 19968: jis0212<<14 | 0x16<<7 | 0x26, - 22383 - 19968: jis0212<<14 | 0x16<<7 | 0x27, - 22384 - 19968: jis0212<<14 | 0x16<<7 | 0x28, - 22385 - 19968: jis0212<<14 | 0x16<<7 | 0x29, - 22387 - 19968: jis0212<<14 | 0x16<<7 | 0x2A, - 22388 - 19968: jis0212<<14 | 0x16<<7 | 0x2B, - 22389 - 19968: jis0212<<14 | 0x16<<7 | 0x2C, - 22391 - 19968: jis0212<<14 | 0x16<<7 | 0x2D, - 22393 - 19968: jis0212<<14 | 0x16<<7 | 0x2E, - 22394 - 19968: jis0212<<14 | 0x16<<7 | 0x2F, - 22395 - 19968: jis0212<<14 | 0x16<<7 | 0x30, - 22396 - 19968: jis0212<<14 | 0x16<<7 | 0x31, - 22398 - 19968: jis0212<<14 | 0x16<<7 | 0x32, - 22399 - 19968: jis0208<<14 | 0x33<<7 | 0x13, - 22401 - 19968: jis0212<<14 | 0x16<<7 | 0x33, - 22402 - 19968: jis0208<<14 | 0x1E<<7 | 0x41, - 22403 - 19968: jis0212<<14 | 0x16<<7 | 0x34, - 22408 - 19968: jis0208<<14 | 0x33<<7 | 0x11, - 22409 - 19968: jis0208<<14 | 0x33<<7 | 0x14, - 22411 - 19968: jis0208<<14 | 0x16<<7 | 0x1E, - 22412 - 19968: jis0212<<14 | 0x16<<7 | 0x35, - 22419 - 19968: jis0208<<14 | 0x33<<7 | 0x15, - 22420 - 19968: jis0212<<14 | 0x16<<7 | 0x36, - 22421 - 19968: jis0212<<14 | 0x16<<7 | 0x3F, - 22423 - 19968: jis0212<<14 | 0x16<<7 | 0x37, - 22425 - 19968: jis0212<<14 | 0x16<<7 | 0x38, - 22426 - 19968: jis0212<<14 | 0x16<<7 | 0x39, - 22428 - 19968: jis0212<<14 | 0x16<<7 | 0x3A, - 22429 - 19968: jis0212<<14 | 0x16<<7 | 0x3B, - 22430 - 19968: jis0212<<14 | 0x16<<7 | 0x3C, - 22431 - 19968: jis0212<<14 | 0x16<<7 | 0x3D, - 22432 - 19968: jis0208<<14 | 0x33<<7 | 0x16, - 22433 - 19968: jis0212<<14 | 0x16<<7 | 0x3E, - 22434 - 19968: jis0208<<14 | 0x18<<7 | 0x03, - 22435 - 19968: jis0208<<14 | 0x12<<7 | 0x1F, - 22436 - 19968: jis0208<<14 | 0x33<<7 | 0x18, - 22439 - 19968: jis0212<<14 | 0x16<<7 | 0x40, - 22440 - 19968: jis0212<<14 | 0x16<<7 | 0x41, - 22441 - 19968: jis0212<<14 | 0x16<<7 | 0x42, - 22442 - 19968: jis0208<<14 | 0x33<<7 | 0x19, - 22444 - 19968: jis0208<<14 | 0x58<<7 | 0x3B, - 22448 - 19968: jis0208<<14 | 0x33<<7 | 0x1A, - 22451 - 19968: jis0208<<14 | 0x33<<7 | 0x17, - 22456 - 19968: jis0212<<14 | 0x16<<7 | 0x44, - 22461 - 19968: jis0212<<14 | 0x16<<7 | 0x45, - 22464 - 19968: jis0208<<14 | 0x33<<7 | 0x10, - 22467 - 19968: jis0208<<14 | 0x33<<7 | 0x1B, - 22470 - 19968: jis0208<<14 | 0x33<<7 | 0x1C, - 22471 - 19968: jis0208<<14 | 0x58<<7 | 0x3D, - 22472 - 19968: jis0208<<14 | 0x58<<7 | 0x3C, - 22475 - 19968: jis0208<<14 | 0x2A<<7 | 0x43, - 22476 - 19968: jis0212<<14 | 0x16<<7 | 0x48, - 22478 - 19968: jis0208<<14 | 0x1D<<7 | 0x4A, - 22479 - 19968: jis0212<<14 | 0x16<<7 | 0x49, - 22482 - 19968: jis0208<<14 | 0x33<<7 | 0x1E, - 22483 - 19968: jis0208<<14 | 0x33<<7 | 0x1F, - 22484 - 19968: jis0208<<14 | 0x33<<7 | 0x1D, - 22485 - 19968: jis0212<<14 | 0x16<<7 | 0x4A, - 22486 - 19968: jis0208<<14 | 0x33<<7 | 0x21, - 22492 - 19968: jis0208<<14 | 0x26<<7 | 0x17, - 22493 - 19968: jis0212<<14 | 0x16<<7 | 0x4B, - 22494 - 19968: jis0212<<14 | 0x16<<7 | 0x4C, - 22495 - 19968: jis0208<<14 | 0x0F<<7 | 0x47, - 22496 - 19968: jis0208<<14 | 0x28<<7 | 0x35, - 22497 - 19968: jis0212<<14 | 0x16<<7 | 0x5D, - 22499 - 19968: jis0208<<14 | 0x33<<7 | 0x22, - 22500 - 19968: jis0212<<14 | 0x16<<7 | 0x4D, - 22502 - 19968: jis0212<<14 | 0x16<<7 | 0x4E, - 22503 - 19968: jis0212<<14 | 0x16<<7 | 0x4F, - 22505 - 19968: jis0212<<14 | 0x16<<7 | 0x50, - 22509 - 19968: jis0212<<14 | 0x16<<7 | 0x51, - 22512 - 19968: jis0212<<14 | 0x16<<7 | 0x52, - 22516 - 19968: jis0208<<14 | 0x1D<<7 | 0x5C, - 22517 - 19968: jis0212<<14 | 0x16<<7 | 0x53, - 22518 - 19968: jis0212<<14 | 0x16<<7 | 0x54, - 22519 - 19968: jis0208<<14 | 0x1B<<7 | 0x18, - 22520 - 19968: jis0212<<14 | 0x16<<7 | 0x55, - 22521 - 19968: jis0208<<14 | 0x26<<7 | 0x3C, - 22522 - 19968: jis0208<<14 | 0x13<<7 | 0x4F, - 22524 - 19968: jis0208<<14 | 0x19<<7 | 0x4A, - 22525 - 19968: jis0212<<14 | 0x16<<7 | 0x56, - 22526 - 19968: jis0212<<14 | 0x16<<7 | 0x57, - 22527 - 19968: jis0212<<14 | 0x16<<7 | 0x58, - 22528 - 19968: jis0208<<14 | 0x2A<<7 | 0x38, - 22530 - 19968: jis0208<<14 | 0x25<<7 | 0x11, - 22531 - 19968: jis0212<<14 | 0x16<<7 | 0x59, - 22532 - 19968: jis0212<<14 | 0x16<<7 | 0x5A, - 22533 - 19968: jis0208<<14 | 0x16<<7 | 0x57, - 22534 - 19968: jis0208<<14 | 0x21<<7 | 0x2E, - 22536 - 19968: jis0212<<14 | 0x16<<7 | 0x5B, - 22537 - 19968: jis0212<<14 | 0x16<<7 | 0x5C, - 22538 - 19968: jis0208<<14 | 0x33<<7 | 0x20, - 22539 - 19968: jis0208<<14 | 0x33<<7 | 0x23, - 22540 - 19968: jis0212<<14 | 0x17<<7 | 0x00, - 22541 - 19968: jis0212<<14 | 0x17<<7 | 0x01, - 22549 - 19968: jis0208<<14 | 0x21<<7 | 0x23, - 22553 - 19968: jis0208<<14 | 0x33<<7 | 0x24, - 22555 - 19968: jis0212<<14 | 0x17<<7 | 0x02, - 22557 - 19968: jis0208<<14 | 0x33<<7 | 0x25, - 22558 - 19968: jis0212<<14 | 0x17<<7 | 0x03, - 22559 - 19968: jis0212<<14 | 0x17<<7 | 0x04, - 22560 - 19968: jis0212<<14 | 0x17<<7 | 0x05, - 22561 - 19968: jis0208<<14 | 0x33<<7 | 0x27, - 22564 - 19968: jis0208<<14 | 0x23<<7 | 0x48, - 22566 - 19968: jis0212<<14 | 0x17<<7 | 0x06, - 22567 - 19968: jis0212<<14 | 0x17<<7 | 0x07, - 22570 - 19968: jis0208<<14 | 0x13<<7 | 0x0D, - 22573 - 19968: jis0212<<14 | 0x17<<7 | 0x08, - 22575 - 19968: jis0208<<14 | 0x53<<7 | 0x00, - 22576 - 19968: jis0208<<14 | 0x10<<7 | 0x40, - 22577 - 19968: jis0208<<14 | 0x29<<7 | 0x52, - 22578 - 19968: jis0212<<14 | 0x17<<7 | 0x09, - 22580 - 19968: jis0208<<14 | 0x1D<<7 | 0x4B, - 22581 - 19968: jis0208<<14 | 0x24<<7 | 0x27, - 22585 - 19968: jis0212<<14 | 0x17<<7 | 0x0A, - 22586 - 19968: jis0208<<14 | 0x19<<7 | 0x45, - 22589 - 19968: jis0208<<14 | 0x33<<7 | 0x2D, - 22591 - 19968: jis0212<<14 | 0x17<<7 | 0x0B, - 22592 - 19968: jis0208<<14 | 0x29<<7 | 0x1C, - 22593 - 19968: jis0208<<14 | 0x2D<<7 | 0x3C, - 22601 - 19968: jis0212<<14 | 0x17<<7 | 0x0C, - 22602 - 19968: jis0208<<14 | 0x11<<7 | 0x53, - 22603 - 19968: jis0208<<14 | 0x33<<7 | 0x29, - 22604 - 19968: jis0212<<14 | 0x17<<7 | 0x0D, - 22605 - 19968: jis0212<<14 | 0x17<<7 | 0x0E, - 22607 - 19968: jis0212<<14 | 0x17<<7 | 0x0F, - 22608 - 19968: jis0212<<14 | 0x17<<7 | 0x10, - 22609 - 19968: jis0208<<14 | 0x20<<7 | 0x19, - 22610 - 19968: jis0208<<14 | 0x33<<7 | 0x2C, - 22612 - 19968: jis0208<<14 | 0x24<<7 | 0x42, - 22613 - 19968: jis0212<<14 | 0x17<<7 | 0x11, - 22615 - 19968: jis0208<<14 | 0x24<<7 | 0x28, - 22616 - 19968: jis0208<<14 | 0x24<<7 | 0x43, - 22617 - 19968: jis0208<<14 | 0x27<<7 | 0x18, - 22618 - 19968: jis0208<<14 | 0x23<<7 | 0x2C, - 22622 - 19968: jis0208<<14 | 0x19<<7 | 0x28, - 22623 - 19968: jis0212<<14 | 0x17<<7 | 0x12, - 22625 - 19968: jis0212<<14 | 0x17<<7 | 0x13, - 22626 - 19968: jis0208<<14 | 0x33<<7 | 0x28, - 22628 - 19968: jis0212<<14 | 0x17<<7 | 0x14, - 22631 - 19968: jis0212<<14 | 0x17<<7 | 0x15, - 22632 - 19968: jis0212<<14 | 0x17<<7 | 0x16, - 22633 - 19968: jis0208<<14 | 0x10<<7 | 0x55, - 22635 - 19968: jis0208<<14 | 0x24<<7 | 0x15, - 22640 - 19968: jis0208<<14 | 0x33<<7 | 0x2A, - 22642 - 19968: jis0208<<14 | 0x33<<7 | 0x26, - 22645 - 19968: jis0208<<14 | 0x1E<<7 | 0x2F, - 22648 - 19968: jis0212<<14 | 0x17<<7 | 0x17, - 22649 - 19968: jis0208<<14 | 0x33<<7 | 0x2E, - 22652 - 19968: jis0212<<14 | 0x17<<7 | 0x18, - 22654 - 19968: jis0208<<14 | 0x1C<<7 | 0x2D, - 22655 - 19968: jis0212<<14 | 0x17<<7 | 0x19, - 22656 - 19968: jis0212<<14 | 0x17<<7 | 0x1A, - 22657 - 19968: jis0212<<14 | 0x17<<7 | 0x1B, - 22659 - 19968: jis0208<<14 | 0x15<<7 | 0x0C, - 22661 - 19968: jis0208<<14 | 0x33<<7 | 0x2F, - 22663 - 19968: jis0212<<14 | 0x17<<7 | 0x1C, - 22664 - 19968: jis0212<<14 | 0x17<<7 | 0x1D, - 22665 - 19968: jis0212<<14 | 0x17<<7 | 0x1E, - 22666 - 19968: jis0212<<14 | 0x17<<7 | 0x1F, - 22668 - 19968: jis0212<<14 | 0x17<<7 | 0x20, - 22669 - 19968: jis0212<<14 | 0x17<<7 | 0x21, - 22671 - 19968: jis0212<<14 | 0x17<<7 | 0x22, - 22672 - 19968: jis0212<<14 | 0x17<<7 | 0x23, - 22675 - 19968: jis0208<<14 | 0x29<<7 | 0x47, - 22676 - 19968: jis0212<<14 | 0x17<<7 | 0x24, - 22678 - 19968: jis0212<<14 | 0x17<<7 | 0x25, - 22679 - 19968: jis0208<<14 | 0x20<<7 | 0x5C, - 22684 - 19968: jis0208<<14 | 0x23<<7 | 0x25, - 22685 - 19968: jis0212<<14 | 0x17<<7 | 0x26, - 22686 - 19968: jis0208<<14 | 0x58<<7 | 0x40, - 22687 - 19968: jis0208<<14 | 0x33<<7 | 0x31, - 22688 - 19968: jis0212<<14 | 0x17<<7 | 0x27, - 22689 - 19968: jis0212<<14 | 0x17<<7 | 0x28, - 22690 - 19968: jis0212<<14 | 0x17<<7 | 0x29, - 22694 - 19968: jis0212<<14 | 0x17<<7 | 0x2A, - 22696 - 19968: jis0208<<14 | 0x2A<<7 | 0x2E, - 22697 - 19968: jis0212<<14 | 0x17<<7 | 0x2B, - 22699 - 19968: jis0208<<14 | 0x33<<7 | 0x32, - 22702 - 19968: jis0208<<14 | 0x33<<7 | 0x37, - 22705 - 19968: jis0212<<14 | 0x17<<7 | 0x2C, - 22706 - 19968: jis0208<<14 | 0x58<<7 | 0x41, - 22707 - 19968: jis0208<<14 | 0x29<<7 | 0x0E, - 22712 - 19968: jis0208<<14 | 0x33<<7 | 0x36, - 22713 - 19968: jis0208<<14 | 0x33<<7 | 0x30, - 22714 - 19968: jis0208<<14 | 0x33<<7 | 0x33, - 22715 - 19968: jis0208<<14 | 0x33<<7 | 0x35, - 22716 - 19968: jis0212<<14 | 0x17<<7 | 0x2F, - 22718 - 19968: jis0208<<14 | 0x19<<7 | 0x05, - 22721 - 19968: jis0208<<14 | 0x29<<7 | 0x28, - 22722 - 19968: jis0212<<14 | 0x17<<7 | 0x30, - 22724 - 19968: jis0212<<14 | 0x17<<7 | 0x2E, - 22725 - 19968: jis0208<<14 | 0x33<<7 | 0x38, - 22727 - 19968: jis0208<<14 | 0x22<<7 | 0x24, - 22728 - 19968: jis0212<<14 | 0x17<<7 | 0x31, - 22730 - 19968: jis0208<<14 | 0x11<<7 | 0x54, - 22732 - 19968: jis0208<<14 | 0x1D<<7 | 0x4C, - 22733 - 19968: jis0212<<14 | 0x17<<7 | 0x32, - 22734 - 19968: jis0212<<14 | 0x17<<7 | 0x33, - 22736 - 19968: jis0212<<14 | 0x17<<7 | 0x34, - 22737 - 19968: jis0208<<14 | 0x33<<7 | 0x3A, - 22738 - 19968: jis0212<<14 | 0x17<<7 | 0x35, - 22739 - 19968: jis0208<<14 | 0x33<<7 | 0x39, - 22740 - 19968: jis0212<<14 | 0x17<<7 | 0x36, - 22741 - 19968: jis0208<<14 | 0x18<<7 | 0x47, - 22742 - 19968: jis0212<<14 | 0x17<<7 | 0x37, - 22743 - 19968: jis0208<<14 | 0x33<<7 | 0x3B, - 22744 - 19968: jis0208<<14 | 0x33<<7 | 0x3D, - 22745 - 19968: jis0208<<14 | 0x33<<7 | 0x3C, - 22746 - 19968: jis0212<<14 | 0x17<<7 | 0x38, - 22748 - 19968: jis0208<<14 | 0x33<<7 | 0x3F, - 22749 - 19968: jis0212<<14 | 0x17<<7 | 0x39, - 22750 - 19968: jis0208<<14 | 0x33<<7 | 0x34, - 22751 - 19968: jis0208<<14 | 0x33<<7 | 0x41, - 22753 - 19968: jis0212<<14 | 0x17<<7 | 0x3A, - 22754 - 19968: jis0212<<14 | 0x17<<7 | 0x3B, - 22756 - 19968: jis0208<<14 | 0x33<<7 | 0x40, - 22757 - 19968: jis0208<<14 | 0x33<<7 | 0x3E, - 22761 - 19968: jis0212<<14 | 0x17<<7 | 0x3C, - 22763 - 19968: jis0208<<14 | 0x1A<<7 | 0x2D, - 22764 - 19968: jis0208<<14 | 0x1E<<7 | 0x30, - 22766 - 19968: jis0208<<14 | 0x20<<7 | 0x33, - 22767 - 19968: jis0208<<14 | 0x33<<7 | 0x42, - 22768 - 19968: jis0208<<14 | 0x1F<<7 | 0x1B, - 22769 - 19968: jis0208<<14 | 0x0F<<7 | 0x4C, - 22770 - 19968: jis0208<<14 | 0x26<<7 | 0x43, - 22771 - 19968: jis0212<<14 | 0x17<<7 | 0x3D, - 22775 - 19968: jis0208<<14 | 0x23<<7 | 0x3A, - 22777 - 19968: jis0208<<14 | 0x33<<7 | 0x44, - 22778 - 19968: jis0208<<14 | 0x33<<7 | 0x43, - 22779 - 19968: jis0208<<14 | 0x33<<7 | 0x45, - 22780 - 19968: jis0208<<14 | 0x33<<7 | 0x46, - 22781 - 19968: jis0208<<14 | 0x33<<7 | 0x47, - 22786 - 19968: jis0208<<14 | 0x33<<7 | 0x48, - 22789 - 19968: jis0212<<14 | 0x17<<7 | 0x3E, - 22790 - 19968: jis0212<<14 | 0x17<<7 | 0x3F, - 22793 - 19968: jis0208<<14 | 0x29<<7 | 0x30, - 22794 - 19968: jis0208<<14 | 0x33<<7 | 0x49, - 22795 - 19968: jis0208<<14 | 0x58<<7 | 0x42, - 22796 - 19968: jis0212<<14 | 0x17<<7 | 0x41, - 22799 - 19968: jis0208<<14 | 0x11<<7 | 0x25, - 22800 - 19968: jis0208<<14 | 0x33<<7 | 0x4A, - 22802 - 19968: jis0212<<14 | 0x17<<7 | 0x42, - 22803 - 19968: jis0212<<14 | 0x17<<7 | 0x43, - 22804 - 19968: jis0212<<14 | 0x17<<7 | 0x44, - 22805 - 19968: jis0208<<14 | 0x2C<<7 | 0x1B, - 22806 - 19968: jis0208<<14 | 0x12<<7 | 0x0F, - 22808 - 19968: jis0208<<14 | 0x31<<7 | 0x28, - 22809 - 19968: jis0208<<14 | 0x1C<<7 | 0x27, - 22810 - 19968: jis0208<<14 | 0x21<<7 | 0x1E, - 22811 - 19968: jis0208<<14 | 0x33<<7 | 0x4B, - 22812 - 19968: jis0208<<14 | 0x2B<<7 | 0x4A, - 22813 - 19968: jis0212<<14 | 0x17<<7 | 0x46, - 22817 - 19968: jis0212<<14 | 0x17<<7 | 0x47, - 22818 - 19968: jis0208<<14 | 0x2B<<7 | 0x13, - 22819 - 19968: jis0212<<14 | 0x17<<7 | 0x48, - 22820 - 19968: jis0212<<14 | 0x17<<7 | 0x49, - 22821 - 19968: jis0208<<14 | 0x33<<7 | 0x4D, - 22823 - 19968: jis0208<<14 | 0x21<<7 | 0x46, - 22824 - 19968: jis0212<<14 | 0x17<<7 | 0x4A, - 22825 - 19968: jis0208<<14 | 0x24<<7 | 0x16, - 22826 - 19968: jis0208<<14 | 0x21<<7 | 0x1F, - 22827 - 19968: jis0208<<14 | 0x28<<7 | 0x36, - 22828 - 19968: jis0208<<14 | 0x33<<7 | 0x4E, - 22829 - 19968: jis0208<<14 | 0x33<<7 | 0x4F, - 22830 - 19968: jis0208<<14 | 0x10<<7 | 0x5A, - 22831 - 19968: jis0212<<14 | 0x17<<7 | 0x4B, - 22832 - 19968: jis0212<<14 | 0x17<<7 | 0x4C, - 22833 - 19968: jis0208<<14 | 0x1B<<7 | 0x19, - 22834 - 19968: jis0208<<14 | 0x33<<7 | 0x50, - 22835 - 19968: jis0212<<14 | 0x17<<7 | 0x4D, - 22837 - 19968: jis0212<<14 | 0x17<<7 | 0x4E, - 22838 - 19968: jis0212<<14 | 0x17<<7 | 0x4F, - 22839 - 19968: jis0208<<14 | 0x0F<<7 | 0x2F, - 22840 - 19968: jis0208<<14 | 0x33<<7 | 0x51, - 22846 - 19968: jis0208<<14 | 0x33<<7 | 0x52, - 22847 - 19968: jis0212<<14 | 0x17<<7 | 0x50, - 22851 - 19968: jis0212<<14 | 0x17<<7 | 0x51, - 22852 - 19968: jis0208<<14 | 0x10<<7 | 0x41, - 22854 - 19968: jis0212<<14 | 0x17<<7 | 0x52, - 22855 - 19968: jis0208<<14 | 0x13<<7 | 0x50, - 22856 - 19968: jis0208<<14 | 0x25<<7 | 0x3F, - 22857 - 19968: jis0208<<14 | 0x29<<7 | 0x53, - 22862 - 19968: jis0208<<14 | 0x33<<7 | 0x56, - 22863 - 19968: jis0208<<14 | 0x20<<7 | 0x34, - 22864 - 19968: jis0208<<14 | 0x33<<7 | 0x55, - 22865 - 19968: jis0208<<14 | 0x16<<7 | 0x1F, - 22866 - 19968: jis0212<<14 | 0x17<<7 | 0x53, - 22867 - 19968: jis0208<<14 | 0x58<<7 | 0x43, - 22868 - 19968: jis0208<<14 | 0x2A<<7 | 0x3A, - 22869 - 19968: jis0208<<14 | 0x33<<7 | 0x54, - 22871 - 19968: jis0208<<14 | 0x24<<7 | 0x44, - 22872 - 19968: jis0208<<14 | 0x33<<7 | 0x58, - 22873 - 19968: jis0212<<14 | 0x17<<7 | 0x55, - 22874 - 19968: jis0208<<14 | 0x33<<7 | 0x57, - 22875 - 19968: jis0208<<14 | 0x58<<7 | 0x44, - 22877 - 19968: jis0208<<14 | 0x58<<7 | 0x45, - 22878 - 19968: jis0212<<14 | 0x17<<7 | 0x58, - 22879 - 19968: jis0212<<14 | 0x17<<7 | 0x59, - 22880 - 19968: jis0208<<14 | 0x33<<7 | 0x5A, - 22881 - 19968: jis0212<<14 | 0x17<<7 | 0x5A, - 22882 - 19968: jis0208<<14 | 0x33<<7 | 0x59, - 22883 - 19968: jis0208<<14 | 0x58<<7 | 0x46, - 22885 - 19968: jis0208<<14 | 0x10<<7 | 0x5B, - 22887 - 19968: jis0208<<14 | 0x33<<7 | 0x5B, - 22888 - 19968: jis0208<<14 | 0x1D<<7 | 0x08, - 22889 - 19968: jis0208<<14 | 0x33<<7 | 0x5D, - 22890 - 19968: jis0208<<14 | 0x22<<7 | 0x04, - 22891 - 19968: jis0212<<14 | 0x17<<7 | 0x5C, - 22892 - 19968: jis0208<<14 | 0x33<<7 | 0x5C, - 22893 - 19968: jis0212<<14 | 0x17<<7 | 0x5D, - 22894 - 19968: jis0208<<14 | 0x29<<7 | 0x12, - 22895 - 19968: jis0212<<14 | 0x18<<7 | 0x00, - 22898 - 19968: jis0212<<14 | 0x18<<7 | 0x01, - 22899 - 19968: jis0208<<14 | 0x1C<<7 | 0x56, - 22900 - 19968: jis0208<<14 | 0x24<<7 | 0x3A, - 22901 - 19968: jis0212<<14 | 0x18<<7 | 0x02, - 22902 - 19968: jis0212<<14 | 0x18<<7 | 0x03, - 22904 - 19968: jis0208<<14 | 0x34<<7 | 0x00, - 22905 - 19968: jis0212<<14 | 0x18<<7 | 0x04, - 22907 - 19968: jis0212<<14 | 0x18<<7 | 0x05, - 22908 - 19968: jis0212<<14 | 0x18<<7 | 0x06, - 22909 - 19968: jis0208<<14 | 0x18<<7 | 0x04, - 22913 - 19968: jis0208<<14 | 0x34<<7 | 0x01, - 22914 - 19968: jis0208<<14 | 0x26<<7 | 0x00, - 22915 - 19968: jis0208<<14 | 0x27<<7 | 0x3D, - 22916 - 19968: jis0208<<14 | 0x2B<<7 | 0x30, - 22922 - 19968: jis0208<<14 | 0x26<<7 | 0x04, - 22923 - 19968: jis0212<<14 | 0x18<<7 | 0x07, - 22924 - 19968: jis0212<<14 | 0x18<<7 | 0x08, - 22925 - 19968: jis0208<<14 | 0x34<<7 | 0x0A, - 22926 - 19968: jis0212<<14 | 0x18<<7 | 0x09, - 22930 - 19968: jis0212<<14 | 0x18<<7 | 0x0A, - 22931 - 19968: jis0208<<14 | 0x14<<7 | 0x17, - 22933 - 19968: jis0212<<14 | 0x18<<7 | 0x0B, - 22934 - 19968: jis0208<<14 | 0x2C<<7 | 0x24, - 22935 - 19968: jis0212<<14 | 0x18<<7 | 0x0C, - 22937 - 19968: jis0208<<14 | 0x2B<<7 | 0x0E, - 22939 - 19968: jis0208<<14 | 0x35<<7 | 0x0B, - 22941 - 19968: jis0208<<14 | 0x34<<7 | 0x02, - 22943 - 19968: jis0212<<14 | 0x18<<7 | 0x0D, - 22947 - 19968: jis0208<<14 | 0x34<<7 | 0x05, - 22948 - 19968: jis0208<<14 | 0x58<<7 | 0x47, - 22949 - 19968: jis0208<<14 | 0x21<<7 | 0x24, - 22951 - 19968: jis0212<<14 | 0x18<<7 | 0x0F, - 22952 - 19968: jis0208<<14 | 0x2A<<7 | 0x17, - 22956 - 19968: jis0208<<14 | 0x24<<7 | 0x29, - 22957 - 19968: jis0212<<14 | 0x18<<7 | 0x10, - 22958 - 19968: jis0212<<14 | 0x18<<7 | 0x11, - 22959 - 19968: jis0212<<14 | 0x18<<7 | 0x12, - 22960 - 19968: jis0212<<14 | 0x18<<7 | 0x13, - 22962 - 19968: jis0208<<14 | 0x34<<7 | 0x06, - 22963 - 19968: jis0212<<14 | 0x18<<7 | 0x14, - 22967 - 19968: jis0212<<14 | 0x18<<7 | 0x15, - 22969 - 19968: jis0208<<14 | 0x2A<<7 | 0x44, - 22970 - 19968: jis0208<<14 | 0x58<<7 | 0x48, - 22971 - 19968: jis0208<<14 | 0x19<<7 | 0x29, - 22972 - 19968: jis0212<<14 | 0x18<<7 | 0x17, - 22974 - 19968: jis0208<<14 | 0x1D<<7 | 0x09, - 22977 - 19968: jis0212<<14 | 0x18<<7 | 0x18, - 22979 - 19968: jis0212<<14 | 0x18<<7 | 0x19, - 22980 - 19968: jis0212<<14 | 0x18<<7 | 0x1A, - 22982 - 19968: jis0208<<14 | 0x34<<7 | 0x07, - 22984 - 19968: jis0212<<14 | 0x18<<7 | 0x1B, - 22985 - 19968: jis0208<<14 | 0x1A<<7 | 0x2F, - 22986 - 19968: jis0212<<14 | 0x18<<7 | 0x1C, - 22987 - 19968: jis0208<<14 | 0x1A<<7 | 0x2E, - 22989 - 19968: jis0212<<14 | 0x18<<7 | 0x1D, - 22992 - 19968: jis0208<<14 | 0x0F<<7 | 0x18, - 22993 - 19968: jis0208<<14 | 0x17<<7 | 0x27, - 22994 - 19968: jis0212<<14 | 0x18<<7 | 0x1E, - 22995 - 19968: jis0208<<14 | 0x1F<<7 | 0x0A, - 22996 - 19968: jis0208<<14 | 0x0F<<7 | 0x30, - 23001 - 19968: jis0208<<14 | 0x34<<7 | 0x0B, - 23002 - 19968: jis0208<<14 | 0x34<<7 | 0x0C, - 23004 - 19968: jis0208<<14 | 0x34<<7 | 0x09, - 23005 - 19968: jis0212<<14 | 0x18<<7 | 0x1F, - 23006 - 19968: jis0212<<14 | 0x18<<7 | 0x20, - 23007 - 19968: jis0212<<14 | 0x18<<7 | 0x21, - 23011 - 19968: jis0212<<14 | 0x18<<7 | 0x22, - 23012 - 19968: jis0212<<14 | 0x18<<7 | 0x23, - 23013 - 19968: jis0208<<14 | 0x10<<7 | 0x17, - 23014 - 19968: jis0208<<14 | 0x13<<7 | 0x0E, - 23015 - 19968: jis0212<<14 | 0x18<<7 | 0x24, - 23016 - 19968: jis0208<<14 | 0x34<<7 | 0x08, - 23018 - 19968: jis0208<<14 | 0x2B<<7 | 0x24, - 23019 - 19968: jis0208<<14 | 0x28<<7 | 0x10, - 23022 - 19968: jis0212<<14 | 0x18<<7 | 0x25, - 23023 - 19968: jis0212<<14 | 0x18<<7 | 0x26, - 23025 - 19968: jis0212<<14 | 0x18<<7 | 0x27, - 23026 - 19968: jis0212<<14 | 0x18<<7 | 0x28, - 23028 - 19968: jis0212<<14 | 0x18<<7 | 0x29, - 23030 - 19968: jis0208<<14 | 0x0F<<7 | 0x07, - 23031 - 19968: jis0212<<14 | 0x18<<7 | 0x2A, - 23035 - 19968: jis0208<<14 | 0x0F<<7 | 0x58, - 23039 - 19968: jis0208<<14 | 0x1A<<7 | 0x30, - 23040 - 19968: jis0212<<14 | 0x18<<7 | 0x2B, - 23041 - 19968: jis0208<<14 | 0x0F<<7 | 0x31, - 23043 - 19968: jis0208<<14 | 0x0F<<7 | 0x02, - 23044 - 19968: jis0212<<14 | 0x18<<7 | 0x2C, - 23049 - 19968: jis0208<<14 | 0x34<<7 | 0x11, - 23052 - 19968: jis0212<<14 | 0x18<<7 | 0x2D, - 23053 - 19968: jis0212<<14 | 0x18<<7 | 0x2E, - 23054 - 19968: jis0212<<14 | 0x18<<7 | 0x2F, - 23057 - 19968: jis0208<<14 | 0x34<<7 | 0x0F, - 23058 - 19968: jis0212<<14 | 0x18<<7 | 0x30, - 23059 - 19968: jis0212<<14 | 0x18<<7 | 0x31, - 23064 - 19968: jis0208<<14 | 0x2B<<7 | 0x1B, - 23066 - 19968: jis0208<<14 | 0x34<<7 | 0x12, - 23068 - 19968: jis0208<<14 | 0x34<<7 | 0x10, - 23070 - 19968: jis0212<<14 | 0x18<<7 | 0x32, - 23071 - 19968: jis0208<<14 | 0x34<<7 | 0x0E, - 23072 - 19968: jis0208<<14 | 0x1E<<7 | 0x10, - 23075 - 19968: jis0212<<14 | 0x18<<7 | 0x33, - 23076 - 19968: jis0212<<14 | 0x18<<7 | 0x34, - 23077 - 19968: jis0208<<14 | 0x34<<7 | 0x0D, - 23079 - 19968: jis0212<<14 | 0x18<<7 | 0x35, - 23080 - 19968: jis0212<<14 | 0x18<<7 | 0x36, - 23081 - 19968: jis0208<<14 | 0x29<<7 | 0x39, - 23082 - 19968: jis0212<<14 | 0x18<<7 | 0x37, - 23085 - 19968: jis0212<<14 | 0x18<<7 | 0x38, - 23087 - 19968: jis0208<<14 | 0x17<<7 | 0x43, - 23088 - 19968: jis0212<<14 | 0x18<<7 | 0x39, - 23093 - 19968: jis0208<<14 | 0x34<<7 | 0x16, - 23094 - 19968: jis0208<<14 | 0x34<<7 | 0x17, - 23100 - 19968: jis0208<<14 | 0x1D<<7 | 0x0A, - 23104 - 19968: jis0208<<14 | 0x34<<7 | 0x13, - 23105 - 19968: jis0208<<14 | 0x2E<<7 | 0x0B, - 23108 - 19968: jis0212<<14 | 0x18<<7 | 0x3A, - 23109 - 19968: jis0212<<14 | 0x18<<7 | 0x3B, - 23110 - 19968: jis0208<<14 | 0x26<<7 | 0x2B, - 23111 - 19968: jis0212<<14 | 0x18<<7 | 0x3C, - 23112 - 19968: jis0212<<14 | 0x18<<7 | 0x3D, - 23113 - 19968: jis0208<<14 | 0x34<<7 | 0x15, - 23116 - 19968: jis0212<<14 | 0x18<<7 | 0x3E, - 23120 - 19968: jis0212<<14 | 0x18<<7 | 0x3F, - 23125 - 19968: jis0212<<14 | 0x18<<7 | 0x40, - 23130 - 19968: jis0208<<14 | 0x19<<7 | 0x06, - 23134 - 19968: jis0212<<14 | 0x18<<7 | 0x41, - 23138 - 19968: jis0208<<14 | 0x34<<7 | 0x18, - 23139 - 19968: jis0212<<14 | 0x18<<7 | 0x42, - 23141 - 19968: jis0212<<14 | 0x18<<7 | 0x43, - 23142 - 19968: jis0208<<14 | 0x28<<7 | 0x37, - 23143 - 19968: jis0212<<14 | 0x18<<7 | 0x44, - 23146 - 19968: jis0208<<14 | 0x34<<7 | 0x19, - 23148 - 19968: jis0208<<14 | 0x34<<7 | 0x14, - 23149 - 19968: jis0212<<14 | 0x18<<7 | 0x45, - 23159 - 19968: jis0212<<14 | 0x18<<7 | 0x46, - 23162 - 19968: jis0212<<14 | 0x18<<7 | 0x47, - 23163 - 19968: jis0212<<14 | 0x18<<7 | 0x48, - 23166 - 19968: jis0212<<14 | 0x18<<7 | 0x49, - 23167 - 19968: jis0208<<14 | 0x2B<<7 | 0x1A, - 23179 - 19968: jis0212<<14 | 0x18<<7 | 0x4A, - 23184 - 19968: jis0212<<14 | 0x18<<7 | 0x4B, - 23186 - 19968: jis0208<<14 | 0x26<<7 | 0x3D, - 23187 - 19968: jis0212<<14 | 0x18<<7 | 0x4C, - 23190 - 19968: jis0212<<14 | 0x18<<7 | 0x4D, - 23193 - 19968: jis0212<<14 | 0x18<<7 | 0x4E, - 23194 - 19968: jis0208<<14 | 0x34<<7 | 0x1A, - 23195 - 19968: jis0208<<14 | 0x28<<7 | 0x11, - 23196 - 19968: jis0212<<14 | 0x18<<7 | 0x4F, - 23198 - 19968: jis0212<<14 | 0x18<<7 | 0x50, - 23199 - 19968: jis0212<<14 | 0x18<<7 | 0x51, - 23200 - 19968: jis0212<<14 | 0x18<<7 | 0x52, - 23202 - 19968: jis0212<<14 | 0x18<<7 | 0x53, - 23207 - 19968: jis0212<<14 | 0x18<<7 | 0x54, - 23212 - 19968: jis0212<<14 | 0x18<<7 | 0x55, - 23217 - 19968: jis0212<<14 | 0x18<<7 | 0x56, - 23218 - 19968: jis0212<<14 | 0x18<<7 | 0x57, - 23219 - 19968: jis0212<<14 | 0x18<<7 | 0x58, - 23221 - 19968: jis0212<<14 | 0x18<<7 | 0x59, - 23224 - 19968: jis0212<<14 | 0x18<<7 | 0x5A, - 23226 - 19968: jis0212<<14 | 0x18<<7 | 0x5B, - 23227 - 19968: jis0212<<14 | 0x18<<7 | 0x5C, - 23228 - 19968: jis0208<<14 | 0x34<<7 | 0x1B, - 23229 - 19968: jis0208<<14 | 0x34<<7 | 0x1F, - 23230 - 19968: jis0208<<14 | 0x34<<7 | 0x1C, - 23231 - 19968: jis0212<<14 | 0x18<<7 | 0x5D, - 23233 - 19968: jis0208<<14 | 0x11<<7 | 0x26, - 23234 - 19968: jis0208<<14 | 0x34<<7 | 0x1E, - 23236 - 19968: jis0212<<14 | 0x19<<7 | 0x00, - 23238 - 19968: jis0212<<14 | 0x19<<7 | 0x01, - 23240 - 19968: jis0212<<14 | 0x19<<7 | 0x02, - 23241 - 19968: jis0208<<14 | 0x1B<<7 | 0x1A, - 23243 - 19968: jis0208<<14 | 0x34<<7 | 0x1D, - 23244 - 19968: jis0208<<14 | 0x16<<7 | 0x58, - 23247 - 19968: jis0212<<14 | 0x19<<7 | 0x03, - 23248 - 19968: jis0208<<14 | 0x34<<7 | 0x2B, - 23254 - 19968: jis0208<<14 | 0x34<<7 | 0x24, - 23255 - 19968: jis0208<<14 | 0x34<<7 | 0x21, - 23258 - 19968: jis0212<<14 | 0x19<<7 | 0x04, - 23260 - 19968: jis0212<<14 | 0x19<<7 | 0x05, - 23264 - 19968: jis0212<<14 | 0x19<<7 | 0x06, - 23265 - 19968: jis0208<<14 | 0x22<<7 | 0x43, - 23267 - 19968: jis0208<<14 | 0x34<<7 | 0x20, - 23269 - 19968: jis0212<<14 | 0x19<<7 | 0x07, - 23270 - 19968: jis0208<<14 | 0x34<<7 | 0x22, - 23273 - 19968: jis0208<<14 | 0x34<<7 | 0x23, - 23274 - 19968: jis0212<<14 | 0x19<<7 | 0x08, - 23278 - 19968: jis0212<<14 | 0x19<<7 | 0x09, - 23285 - 19968: jis0212<<14 | 0x19<<7 | 0x0A, - 23286 - 19968: jis0212<<14 | 0x19<<7 | 0x0B, - 23290 - 19968: jis0208<<14 | 0x34<<7 | 0x25, - 23291 - 19968: jis0208<<14 | 0x34<<7 | 0x26, - 23293 - 19968: jis0212<<14 | 0x19<<7 | 0x0C, - 23296 - 19968: jis0212<<14 | 0x19<<7 | 0x0D, - 23297 - 19968: jis0212<<14 | 0x19<<7 | 0x0E, - 23304 - 19968: jis0212<<14 | 0x19<<7 | 0x0F, - 23305 - 19968: jis0208<<14 | 0x13<<7 | 0x51, - 23307 - 19968: jis0208<<14 | 0x34<<7 | 0x28, - 23308 - 19968: jis0208<<14 | 0x34<<7 | 0x27, - 23318 - 19968: jis0208<<14 | 0x34<<7 | 0x29, - 23319 - 19968: jis0212<<14 | 0x19<<7 | 0x10, - 23321 - 19968: jis0212<<14 | 0x19<<7 | 0x12, - 23323 - 19968: jis0212<<14 | 0x19<<7 | 0x13, - 23325 - 19968: jis0212<<14 | 0x19<<7 | 0x14, - 23329 - 19968: jis0212<<14 | 0x19<<7 | 0x15, - 23330 - 19968: jis0208<<14 | 0x1D<<7 | 0x4D, - 23333 - 19968: jis0212<<14 | 0x19<<7 | 0x16, - 23338 - 19968: jis0208<<14 | 0x34<<7 | 0x2C, - 23340 - 19968: jis0208<<14 | 0x23<<7 | 0x3B, - 23341 - 19968: jis0212<<14 | 0x19<<7 | 0x17, - 23344 - 19968: jis0208<<14 | 0x10<<7 | 0x24, - 23346 - 19968: jis0208<<14 | 0x34<<7 | 0x2A, - 23348 - 19968: jis0212<<14 | 0x19<<7 | 0x11, - 23350 - 19968: jis0208<<14 | 0x34<<7 | 0x2D, - 23352 - 19968: jis0212<<14 | 0x19<<7 | 0x18, - 23358 - 19968: jis0208<<14 | 0x34<<7 | 0x2E, - 23360 - 19968: jis0208<<14 | 0x34<<7 | 0x31, - 23361 - 19968: jis0212<<14 | 0x19<<7 | 0x19, - 23363 - 19968: jis0208<<14 | 0x34<<7 | 0x2F, - 23365 - 19968: jis0208<<14 | 0x34<<7 | 0x30, - 23371 - 19968: jis0212<<14 | 0x19<<7 | 0x1A, - 23372 - 19968: jis0212<<14 | 0x19<<7 | 0x1B, - 23376 - 19968: jis0208<<14 | 0x1A<<7 | 0x31, - 23377 - 19968: jis0208<<14 | 0x34<<7 | 0x32, - 23378 - 19968: jis0212<<14 | 0x19<<7 | 0x1C, - 23380 - 19968: jis0208<<14 | 0x18<<7 | 0x05, - 23381 - 19968: jis0208<<14 | 0x34<<7 | 0x33, - 23382 - 19968: jis0208<<14 | 0x58<<7 | 0x49, - 23383 - 19968: jis0208<<14 | 0x1A<<7 | 0x59, - 23384 - 19968: jis0208<<14 | 0x21<<7 | 0x17, - 23386 - 19968: jis0208<<14 | 0x34<<7 | 0x34, - 23387 - 19968: jis0208<<14 | 0x34<<7 | 0x35, - 23388 - 19968: jis0208<<14 | 0x1A<<7 | 0x39, - 23389 - 19968: jis0208<<14 | 0x18<<7 | 0x06, - 23390 - 19968: jis0212<<14 | 0x19<<7 | 0x1E, - 23391 - 19968: jis0208<<14 | 0x2B<<7 | 0x31, - 23395 - 19968: jis0208<<14 | 0x14<<7 | 0x07, - 23396 - 19968: jis0208<<14 | 0x17<<7 | 0x28, - 23397 - 19968: jis0208<<14 | 0x34<<7 | 0x36, - 23398 - 19968: jis0208<<14 | 0x12<<7 | 0x37, - 23400 - 19968: jis0212<<14 | 0x19<<7 | 0x1F, - 23401 - 19968: jis0208<<14 | 0x34<<7 | 0x37, - 23403 - 19968: jis0208<<14 | 0x21<<7 | 0x18, - 23406 - 19968: jis0212<<14 | 0x19<<7 | 0x20, - 23407 - 19968: jis0212<<14 | 0x19<<7 | 0x21, - 23408 - 19968: jis0208<<14 | 0x34<<7 | 0x38, - 23409 - 19968: jis0208<<14 | 0x35<<7 | 0x02, - 23411 - 19968: jis0208<<14 | 0x34<<7 | 0x39, - 23413 - 19968: jis0208<<14 | 0x34<<7 | 0x3A, - 23416 - 19968: jis0208<<14 | 0x34<<7 | 0x3B, - 23418 - 19968: jis0208<<14 | 0x34<<7 | 0x3D, - 23420 - 19968: jis0212<<14 | 0x19<<7 | 0x22, - 23421 - 19968: jis0212<<14 | 0x19<<7 | 0x23, - 23422 - 19968: jis0212<<14 | 0x19<<7 | 0x24, - 23423 - 19968: jis0212<<14 | 0x19<<7 | 0x25, - 23424 - 19968: jis0208<<14 | 0x34<<7 | 0x3E, - 23425 - 19968: jis0212<<14 | 0x19<<7 | 0x26, - 23427 - 19968: jis0208<<14 | 0x34<<7 | 0x3F, - 23428 - 19968: jis0212<<14 | 0x19<<7 | 0x27, - 23429 - 19968: jis0208<<14 | 0x21<<7 | 0x4F, - 23430 - 19968: jis0212<<14 | 0x19<<7 | 0x28, - 23431 - 19968: jis0208<<14 | 0x10<<7 | 0x06, - 23432 - 19968: jis0208<<14 | 0x1B<<7 | 0x48, - 23433 - 19968: jis0208<<14 | 0x0F<<7 | 0x21, - 23434 - 19968: jis0212<<14 | 0x19<<7 | 0x29, - 23435 - 19968: jis0208<<14 | 0x20<<7 | 0x36, - 23436 - 19968: jis0208<<14 | 0x13<<7 | 0x0F, - 23437 - 19968: jis0208<<14 | 0x1B<<7 | 0x14, - 23438 - 19968: jis0212<<14 | 0x19<<7 | 0x2A, - 23439 - 19968: jis0208<<14 | 0x18<<7 | 0x07, - 23440 - 19968: jis0212<<14 | 0x19<<7 | 0x2B, - 23441 - 19968: jis0212<<14 | 0x19<<7 | 0x2C, - 23443 - 19968: jis0212<<14 | 0x19<<7 | 0x2D, - 23444 - 19968: jis0212<<14 | 0x19<<7 | 0x2E, - 23445 - 19968: jis0208<<14 | 0x24<<7 | 0x45, - 23446 - 19968: jis0212<<14 | 0x19<<7 | 0x2F, - 23447 - 19968: jis0208<<14 | 0x1C<<7 | 0x00, - 23448 - 19968: jis0208<<14 | 0x13<<7 | 0x10, - 23449 - 19968: jis0208<<14 | 0x22<<7 | 0x47, - 23450 - 19968: jis0208<<14 | 0x23<<7 | 0x49, - 23451 - 19968: jis0208<<14 | 0x0F<<7 | 0x17, - 23452 - 19968: jis0208<<14 | 0x14<<7 | 0x18, - 23453 - 19968: jis0208<<14 | 0x29<<7 | 0x54, - 23455 - 19968: jis0208<<14 | 0x1B<<7 | 0x21, - 23458 - 19968: jis0208<<14 | 0x14<<7 | 0x31, - 23459 - 19968: jis0208<<14 | 0x1F<<7 | 0x4A, - 23460 - 19968: jis0208<<14 | 0x1B<<7 | 0x1B, - 23461 - 19968: jis0208<<14 | 0x2C<<7 | 0x07, - 23462 - 19968: jis0208<<14 | 0x34<<7 | 0x40, - 23464 - 19968: jis0212<<14 | 0x19<<7 | 0x30, - 23465 - 19968: jis0212<<14 | 0x19<<7 | 0x31, - 23468 - 19968: jis0212<<14 | 0x19<<7 | 0x32, - 23469 - 19968: jis0212<<14 | 0x19<<7 | 0x33, - 23470 - 19968: jis0208<<14 | 0x14<<7 | 0x3B, - 23471 - 19968: jis0212<<14 | 0x19<<7 | 0x34, - 23472 - 19968: jis0208<<14 | 0x19<<7 | 0x2A, - 23473 - 19968: jis0212<<14 | 0x19<<7 | 0x35, - 23474 - 19968: jis0212<<14 | 0x19<<7 | 0x36, - 23475 - 19968: jis0208<<14 | 0x12<<7 | 0x11, - 23476 - 19968: jis0208<<14 | 0x10<<7 | 0x42, - 23477 - 19968: jis0208<<14 | 0x1D<<7 | 0x0B, - 23478 - 19968: jis0208<<14 | 0x11<<7 | 0x27, - 23479 - 19968: jis0212<<14 | 0x19<<7 | 0x37, - 23480 - 19968: jis0208<<14 | 0x34<<7 | 0x41, - 23481 - 19968: jis0208<<14 | 0x2C<<7 | 0x25, - 23482 - 19968: jis0212<<14 | 0x19<<7 | 0x38, - 23484 - 19968: jis0212<<14 | 0x19<<7 | 0x39, - 23487 - 19968: jis0208<<14 | 0x1C<<7 | 0x28, - 23488 - 19968: jis0208<<14 | 0x58<<7 | 0x4A, - 23489 - 19968: jis0212<<14 | 0x19<<7 | 0x3B, - 23490 - 19968: jis0208<<14 | 0x1B<<7 | 0x43, - 23491 - 19968: jis0208<<14 | 0x34<<7 | 0x42, - 23492 - 19968: jis0208<<14 | 0x13<<7 | 0x52, - 23493 - 19968: jis0208<<14 | 0x25<<7 | 0x31, - 23494 - 19968: jis0208<<14 | 0x2B<<7 | 0x08, - 23495 - 19968: jis0208<<14 | 0x34<<7 | 0x43, - 23497 - 19968: jis0208<<14 | 0x34<<7 | 0x44, - 23500 - 19968: jis0208<<14 | 0x28<<7 | 0x38, - 23501 - 19968: jis0212<<14 | 0x19<<7 | 0x3C, - 23503 - 19968: jis0212<<14 | 0x19<<7 | 0x3D, - 23504 - 19968: jis0208<<14 | 0x34<<7 | 0x46, - 23506 - 19968: jis0208<<14 | 0x13<<7 | 0x07, - 23507 - 19968: jis0208<<14 | 0x15<<7 | 0x56, - 23508 - 19968: jis0208<<14 | 0x34<<7 | 0x45, - 23510 - 19968: jis0212<<14 | 0x19<<7 | 0x3E, - 23511 - 19968: jis0212<<14 | 0x19<<7 | 0x3F, - 23512 - 19968: jis0208<<14 | 0x58<<7 | 0x4C, - 23513 - 19968: jis0212<<14 | 0x19<<7 | 0x41, - 23514 - 19968: jis0212<<14 | 0x19<<7 | 0x42, - 23515 - 19968: jis0208<<14 | 0x13<<7 | 0x11, - 23517 - 19968: jis0208<<14 | 0x1E<<7 | 0x11, - 23518 - 19968: jis0208<<14 | 0x34<<7 | 0x4A, - 23519 - 19968: jis0208<<14 | 0x1A<<7 | 0x00, - 23520 - 19968: jis0212<<14 | 0x19<<7 | 0x43, - 23521 - 19968: jis0208<<14 | 0x11<<7 | 0x28, - 23522 - 19968: jis0208<<14 | 0x34<<7 | 0x49, - 23524 - 19968: jis0208<<14 | 0x34<<7 | 0x47, - 23525 - 19968: jis0208<<14 | 0x34<<7 | 0x4B, - 23526 - 19968: jis0208<<14 | 0x34<<7 | 0x48, - 23527 - 19968: jis0208<<14 | 0x26<<7 | 0x0A, - 23528 - 19968: jis0208<<14 | 0x3B<<7 | 0x2C, - 23529 - 19968: jis0208<<14 | 0x1E<<7 | 0x12, - 23531 - 19968: jis0208<<14 | 0x34<<7 | 0x4C, - 23532 - 19968: jis0208<<14 | 0x58<<7 | 0x4D, - 23534 - 19968: jis0208<<14 | 0x2D<<7 | 0x1F, - 23535 - 19968: jis0212<<14 | 0x19<<7 | 0x44, - 23536 - 19968: jis0208<<14 | 0x34<<7 | 0x4D, - 23537 - 19968: jis0212<<14 | 0x19<<7 | 0x45, - 23539 - 19968: jis0208<<14 | 0x34<<7 | 0x4F, - 23540 - 19968: jis0212<<14 | 0x19<<7 | 0x46, - 23541 - 19968: jis0208<<14 | 0x22<<7 | 0x5D, - 23542 - 19968: jis0208<<14 | 0x34<<7 | 0x4E, - 23544 - 19968: jis0208<<14 | 0x1F<<7 | 0x02, - 23546 - 19968: jis0208<<14 | 0x1A<<7 | 0x5A, - 23549 - 19968: jis0212<<14 | 0x19<<7 | 0x47, - 23550 - 19968: jis0208<<14 | 0x21<<7 | 0x2F, - 23551 - 19968: jis0208<<14 | 0x1B<<7 | 0x56, - 23553 - 19968: jis0208<<14 | 0x28<<7 | 0x54, - 23554 - 19968: jis0208<<14 | 0x1F<<7 | 0x4B, - 23556 - 19968: jis0208<<14 | 0x1B<<7 | 0x2C, - 23557 - 19968: jis0208<<14 | 0x34<<7 | 0x50, - 23558 - 19968: jis0208<<14 | 0x1D<<7 | 0x0C, - 23559 - 19968: jis0208<<14 | 0x34<<7 | 0x51, - 23560 - 19968: jis0208<<14 | 0x34<<7 | 0x52, - 23561 - 19968: jis0208<<14 | 0x0F<<7 | 0x32, - 23562 - 19968: jis0208<<14 | 0x21<<7 | 0x19, - 23563 - 19968: jis0208<<14 | 0x1E<<7 | 0x31, - 23564 - 19968: jis0212<<14 | 0x19<<7 | 0x48, - 23565 - 19968: jis0208<<14 | 0x34<<7 | 0x53, - 23566 - 19968: jis0208<<14 | 0x25<<7 | 0x12, - 23567 - 19968: jis0208<<14 | 0x1D<<7 | 0x0D, - 23569 - 19968: jis0208<<14 | 0x1D<<7 | 0x0E, - 23571 - 19968: jis0208<<14 | 0x34<<7 | 0x54, - 23574 - 19968: jis0208<<14 | 0x1F<<7 | 0x4C, - 23575 - 19968: jis0212<<14 | 0x19<<7 | 0x49, - 23578 - 19968: jis0208<<14 | 0x1D<<7 | 0x0F, - 23582 - 19968: jis0208<<14 | 0x58<<7 | 0x4E, - 23583 - 19968: jis0212<<14 | 0x19<<7 | 0x4B, - 23584 - 19968: jis0208<<14 | 0x34<<7 | 0x55, - 23586 - 19968: jis0208<<14 | 0x34<<7 | 0x56, - 23587 - 19968: jis0212<<14 | 0x19<<7 | 0x4C, - 23588 - 19968: jis0208<<14 | 0x2B<<7 | 0x3F, - 23590 - 19968: jis0212<<14 | 0x19<<7 | 0x4D, - 23592 - 19968: jis0208<<14 | 0x34<<7 | 0x57, - 23593 - 19968: jis0212<<14 | 0x19<<7 | 0x4E, - 23595 - 19968: jis0212<<14 | 0x19<<7 | 0x4F, - 23596 - 19968: jis0212<<14 | 0x19<<7 | 0x50, - 23597 - 19968: jis0208<<14 | 0x15<<7 | 0x25, - 23598 - 19968: jis0212<<14 | 0x19<<7 | 0x51, - 23600 - 19968: jis0212<<14 | 0x19<<7 | 0x52, - 23601 - 19968: jis0208<<14 | 0x1C<<7 | 0x01, - 23602 - 19968: jis0212<<14 | 0x19<<7 | 0x53, - 23605 - 19968: jis0212<<14 | 0x19<<7 | 0x54, - 23606 - 19968: jis0212<<14 | 0x19<<7 | 0x55, - 23608 - 19968: jis0208<<14 | 0x34<<7 | 0x58, - 23609 - 19968: jis0208<<14 | 0x34<<7 | 0x59, - 23610 - 19968: jis0208<<14 | 0x1B<<7 | 0x3B, - 23611 - 19968: jis0208<<14 | 0x1E<<7 | 0x0B, - 23612 - 19968: jis0208<<14 | 0x25<<7 | 0x53, - 23613 - 19968: jis0208<<14 | 0x1E<<7 | 0x33, - 23614 - 19968: jis0208<<14 | 0x27<<7 | 0x57, - 23615 - 19968: jis0208<<14 | 0x26<<7 | 0x01, - 23616 - 19968: jis0208<<14 | 0x15<<7 | 0x28, - 23617 - 19968: jis0208<<14 | 0x34<<7 | 0x5A, - 23621 - 19968: jis0208<<14 | 0x14<<7 | 0x4E, - 23622 - 19968: jis0208<<14 | 0x34<<7 | 0x5B, - 23624 - 19968: jis0208<<14 | 0x15<<7 | 0x5D, - 23626 - 19968: jis0208<<14 | 0x25<<7 | 0x2E, - 23627 - 19968: jis0208<<14 | 0x11<<7 | 0x0F, - 23629 - 19968: jis0208<<14 | 0x1A<<7 | 0x32, - 23630 - 19968: jis0208<<14 | 0x34<<7 | 0x5C, - 23631 - 19968: jis0208<<14 | 0x35<<7 | 0x01, - 23632 - 19968: jis0208<<14 | 0x35<<7 | 0x00, - 23633 - 19968: jis0208<<14 | 0x15<<7 | 0x5C, - 23635 - 19968: jis0208<<14 | 0x34<<7 | 0x5D, - 23637 - 19968: jis0208<<14 | 0x24<<7 | 0x17, - 23641 - 19968: jis0212<<14 | 0x19<<7 | 0x56, - 23642 - 19968: jis0212<<14 | 0x19<<7 | 0x57, - 23644 - 19968: jis0212<<14 | 0x19<<7 | 0x58, - 23646 - 19968: jis0208<<14 | 0x21<<7 | 0x0F, - 23648 - 19968: jis0208<<14 | 0x24<<7 | 0x2A, - 23649 - 19968: jis0208<<14 | 0x1B<<7 | 0x27, - 23650 - 19968: jis0212<<14 | 0x19<<7 | 0x59, - 23651 - 19968: jis0212<<14 | 0x19<<7 | 0x5A, - 23652 - 19968: jis0208<<14 | 0x20<<7 | 0x37, - 23653 - 19968: jis0208<<14 | 0x2C<<7 | 0x59, - 23655 - 19968: jis0212<<14 | 0x19<<7 | 0x5B, - 23656 - 19968: jis0212<<14 | 0x19<<7 | 0x5C, - 23657 - 19968: jis0212<<14 | 0x19<<7 | 0x5D, - 23660 - 19968: jis0208<<14 | 0x35<<7 | 0x03, - 23661 - 19968: jis0212<<14 | 0x1A<<7 | 0x00, - 23662 - 19968: jis0208<<14 | 0x35<<7 | 0x04, - 23663 - 19968: jis0208<<14 | 0x25<<7 | 0x35, - 23664 - 19968: jis0212<<14 | 0x1A<<7 | 0x01, - 23665 - 19968: jis0208<<14 | 0x1A<<7 | 0x12, - 23668 - 19968: jis0212<<14 | 0x1A<<7 | 0x02, - 23669 - 19968: jis0212<<14 | 0x1A<<7 | 0x03, - 23670 - 19968: jis0208<<14 | 0x35<<7 | 0x06, - 23673 - 19968: jis0208<<14 | 0x35<<7 | 0x07, - 23674 - 19968: jis0212<<14 | 0x1A<<7 | 0x04, - 23675 - 19968: jis0212<<14 | 0x1A<<7 | 0x05, - 23676 - 19968: jis0212<<14 | 0x1A<<7 | 0x06, - 23677 - 19968: jis0212<<14 | 0x1A<<7 | 0x07, - 23687 - 19968: jis0212<<14 | 0x1A<<7 | 0x08, - 23688 - 19968: jis0212<<14 | 0x1A<<7 | 0x09, - 23690 - 19968: jis0212<<14 | 0x1A<<7 | 0x0A, - 23692 - 19968: jis0208<<14 | 0x35<<7 | 0x08, - 23695 - 19968: jis0212<<14 | 0x1A<<7 | 0x0B, - 23696 - 19968: jis0208<<14 | 0x13<<7 | 0x53, - 23697 - 19968: jis0208<<14 | 0x35<<7 | 0x09, - 23698 - 19968: jis0212<<14 | 0x1A<<7 | 0x0C, - 23700 - 19968: jis0208<<14 | 0x35<<7 | 0x0A, - 23709 - 19968: jis0212<<14 | 0x1A<<7 | 0x0D, - 23711 - 19968: jis0212<<14 | 0x1A<<7 | 0x0E, - 23712 - 19968: jis0212<<14 | 0x1A<<7 | 0x0F, - 23713 - 19968: jis0208<<14 | 0x11<<7 | 0x0B, - 23714 - 19968: jis0212<<14 | 0x1A<<7 | 0x10, - 23715 - 19968: jis0212<<14 | 0x1A<<7 | 0x11, - 23718 - 19968: jis0208<<14 | 0x58<<7 | 0x4F, - 23720 - 19968: jis0208<<14 | 0x20<<7 | 0x1A, - 23721 - 19968: jis0208<<14 | 0x13<<7 | 0x43, - 23722 - 19968: jis0212<<14 | 0x1A<<7 | 0x13, - 23723 - 19968: jis0208<<14 | 0x35<<7 | 0x0C, - 23724 - 19968: jis0208<<14 | 0x2B<<7 | 0x07, - 23729 - 19968: jis0208<<14 | 0x21<<7 | 0x31, - 23730 - 19968: jis0212<<14 | 0x1A<<7 | 0x14, - 23731 - 19968: jis0208<<14 | 0x12<<7 | 0x38, - 23732 - 19968: jis0212<<14 | 0x1A<<7 | 0x15, - 23733 - 19968: jis0212<<14 | 0x1A<<7 | 0x16, - 23734 - 19968: jis0208<<14 | 0x35<<7 | 0x0E, - 23735 - 19968: jis0208<<14 | 0x35<<7 | 0x10, - 23736 - 19968: jis0208<<14 | 0x13<<7 | 0x3E, - 23738 - 19968: jis0208<<14 | 0x58<<7 | 0x50, - 23739 - 19968: jis0208<<14 | 0x35<<7 | 0x0D, - 23740 - 19968: jis0208<<14 | 0x35<<7 | 0x0F, - 23742 - 19968: jis0208<<14 | 0x35<<7 | 0x12, - 23749 - 19968: jis0208<<14 | 0x35<<7 | 0x11, - 23751 - 19968: jis0208<<14 | 0x35<<7 | 0x13, - 23753 - 19968: jis0212<<14 | 0x1A<<7 | 0x18, - 23755 - 19968: jis0212<<14 | 0x1A<<7 | 0x19, - 23762 - 19968: jis0212<<14 | 0x1A<<7 | 0x1A, - 23767 - 19968: jis0212<<14 | 0x1A<<7 | 0x1C, - 23769 - 19968: jis0208<<14 | 0x35<<7 | 0x14, - 23773 - 19968: jis0212<<14 | 0x1A<<7 | 0x1B, - 23776 - 19968: jis0208<<14 | 0x25<<7 | 0x1C, - 23777 - 19968: jis0208<<14 | 0x15<<7 | 0x0D, - 23784 - 19968: jis0208<<14 | 0x11<<7 | 0x44, - 23785 - 19968: jis0208<<14 | 0x35<<7 | 0x15, - 23786 - 19968: jis0208<<14 | 0x35<<7 | 0x1A, - 23789 - 19968: jis0208<<14 | 0x35<<7 | 0x18, - 23790 - 19968: jis0212<<14 | 0x1A<<7 | 0x1D, - 23791 - 19968: jis0208<<14 | 0x29<<7 | 0x56, - 23792 - 19968: jis0208<<14 | 0x29<<7 | 0x55, - 23793 - 19968: jis0212<<14 | 0x1A<<7 | 0x1E, - 23794 - 19968: jis0212<<14 | 0x1A<<7 | 0x1F, - 23796 - 19968: jis0212<<14 | 0x1A<<7 | 0x20, - 23797 - 19968: jis0208<<14 | 0x58<<7 | 0x51, - 23798 - 19968: jis0208<<14 | 0x24<<7 | 0x46, - 23802 - 19968: jis0208<<14 | 0x35<<7 | 0x17, - 23803 - 19968: jis0208<<14 | 0x1C<<7 | 0x33, - 23805 - 19968: jis0208<<14 | 0x35<<7 | 0x16, - 23809 - 19968: jis0212<<14 | 0x1A<<7 | 0x21, - 23814 - 19968: jis0212<<14 | 0x1A<<7 | 0x22, - 23815 - 19968: jis0208<<14 | 0x1E<<7 | 0x51, - 23819 - 19968: jis0208<<14 | 0x35<<7 | 0x1B, - 23821 - 19968: jis0212<<14 | 0x1A<<7 | 0x23, - 23822 - 19968: jis0208<<14 | 0x19<<7 | 0x49, - 23825 - 19968: jis0208<<14 | 0x35<<7 | 0x21, - 23826 - 19968: jis0212<<14 | 0x1A<<7 | 0x24, - 23828 - 19968: jis0208<<14 | 0x35<<7 | 0x22, - 23829 - 19968: jis0208<<14 | 0x35<<7 | 0x1C, - 23830 - 19968: jis0208<<14 | 0x12<<7 | 0x12, - 23831 - 19968: jis0208<<14 | 0x35<<7 | 0x1D, - 23832 - 19968: jis0208<<14 | 0x35<<7 | 0x26, - 23833 - 19968: jis0208<<14 | 0x35<<7 | 0x25, - 23834 - 19968: jis0208<<14 | 0x35<<7 | 0x24, - 23835 - 19968: jis0208<<14 | 0x35<<7 | 0x20, - 23839 - 19968: jis0208<<14 | 0x35<<7 | 0x1F, - 23842 - 19968: jis0208<<14 | 0x35<<7 | 0x23, - 23843 - 19968: jis0212<<14 | 0x1A<<7 | 0x26, - 23844 - 19968: jis0212<<14 | 0x1A<<7 | 0x27, - 23846 - 19968: jis0212<<14 | 0x1A<<7 | 0x28, - 23847 - 19968: jis0208<<14 | 0x58<<7 | 0x52, - 23849 - 19968: jis0208<<14 | 0x29<<7 | 0x57, - 23851 - 19968: jis0212<<14 | 0x1A<<7 | 0x25, - 23857 - 19968: jis0212<<14 | 0x1A<<7 | 0x2A, - 23860 - 19968: jis0212<<14 | 0x1A<<7 | 0x2B, - 23865 - 19968: jis0212<<14 | 0x1A<<7 | 0x2C, - 23869 - 19968: jis0212<<14 | 0x1A<<7 | 0x2D, - 23871 - 19968: jis0212<<14 | 0x1A<<7 | 0x2E, - 23874 - 19968: jis0208<<14 | 0x58<<7 | 0x55, - 23875 - 19968: jis0212<<14 | 0x1A<<7 | 0x30, - 23878 - 19968: jis0212<<14 | 0x1A<<7 | 0x31, - 23880 - 19968: jis0212<<14 | 0x1A<<7 | 0x32, - 23882 - 19968: jis0212<<14 | 0x1A<<7 | 0x36, - 23883 - 19968: jis0208<<14 | 0x35<<7 | 0x2A, - 23884 - 19968: jis0208<<14 | 0x35<<7 | 0x27, - 23886 - 19968: jis0208<<14 | 0x35<<7 | 0x29, - 23888 - 19968: jis0208<<14 | 0x2C<<7 | 0x51, - 23889 - 19968: jis0212<<14 | 0x1A<<7 | 0x34, - 23890 - 19968: jis0208<<14 | 0x35<<7 | 0x28, - 23891 - 19968: jis0208<<14 | 0x58<<7 | 0x53, - 23893 - 19968: jis0212<<14 | 0x1A<<7 | 0x33, - 23897 - 19968: jis0212<<14 | 0x1A<<7 | 0x35, - 23900 - 19968: jis0208<<14 | 0x35<<7 | 0x1E, - 23903 - 19968: jis0212<<14 | 0x1A<<7 | 0x37, - 23904 - 19968: jis0212<<14 | 0x1A<<7 | 0x38, - 23905 - 19968: jis0212<<14 | 0x1A<<7 | 0x39, - 23906 - 19968: jis0212<<14 | 0x1A<<7 | 0x3A, - 23908 - 19968: jis0212<<14 | 0x1A<<7 | 0x3B, - 23913 - 19968: jis0208<<14 | 0x1E<<7 | 0x52, - 23914 - 19968: jis0212<<14 | 0x1A<<7 | 0x3C, - 23916 - 19968: jis0208<<14 | 0x35<<7 | 0x2B, - 23917 - 19968: jis0208<<14 | 0x58<<7 | 0x56, - 23919 - 19968: jis0208<<14 | 0x19<<7 | 0x16, - 23920 - 19968: jis0212<<14 | 0x1A<<7 | 0x3E, - 23923 - 19968: jis0208<<14 | 0x35<<7 | 0x2C, - 23926 - 19968: jis0208<<14 | 0x35<<7 | 0x2D, - 23929 - 19968: jis0212<<14 | 0x1A<<7 | 0x3F, - 23930 - 19968: jis0212<<14 | 0x1A<<7 | 0x40, - 23934 - 19968: jis0212<<14 | 0x1A<<7 | 0x41, - 23935 - 19968: jis0212<<14 | 0x1A<<7 | 0x42, - 23937 - 19968: jis0212<<14 | 0x1A<<7 | 0x43, - 23938 - 19968: jis0208<<14 | 0x35<<7 | 0x30, - 23939 - 19968: jis0212<<14 | 0x1A<<7 | 0x44, - 23940 - 19968: jis0208<<14 | 0x35<<7 | 0x2F, - 23943 - 19968: jis0208<<14 | 0x35<<7 | 0x2E, - 23944 - 19968: jis0212<<14 | 0x1A<<7 | 0x45, - 23946 - 19968: jis0212<<14 | 0x1A<<7 | 0x46, - 23947 - 19968: jis0208<<14 | 0x24<<7 | 0x47, - 23948 - 19968: jis0208<<14 | 0x35<<7 | 0x19, - 23952 - 19968: jis0208<<14 | 0x35<<7 | 0x36, - 23954 - 19968: jis0212<<14 | 0x1A<<7 | 0x47, - 23955 - 19968: jis0212<<14 | 0x1A<<7 | 0x48, - 23956 - 19968: jis0212<<14 | 0x1A<<7 | 0x49, - 23957 - 19968: jis0212<<14 | 0x1A<<7 | 0x4A, - 23961 - 19968: jis0212<<14 | 0x1A<<7 | 0x4B, - 23963 - 19968: jis0212<<14 | 0x1A<<7 | 0x4C, - 23965 - 19968: jis0208<<14 | 0x35<<7 | 0x32, - 23967 - 19968: jis0212<<14 | 0x1A<<7 | 0x4D, - 23968 - 19968: jis0212<<14 | 0x1A<<7 | 0x4E, - 23970 - 19968: jis0208<<14 | 0x35<<7 | 0x31, - 23975 - 19968: jis0212<<14 | 0x1A<<7 | 0x4F, - 23979 - 19968: jis0212<<14 | 0x1A<<7 | 0x50, - 23980 - 19968: jis0208<<14 | 0x35<<7 | 0x33, - 23982 - 19968: jis0208<<14 | 0x35<<7 | 0x34, - 23984 - 19968: jis0212<<14 | 0x1A<<7 | 0x51, - 23986 - 19968: jis0212<<14 | 0x45<<7 | 0x53, - 23988 - 19968: jis0212<<14 | 0x1A<<7 | 0x52, - 23991 - 19968: jis0208<<14 | 0x35<<7 | 0x37, - 23992 - 19968: jis0208<<14 | 0x58<<7 | 0x57, - 23993 - 19968: jis0208<<14 | 0x58<<7 | 0x58, - 23994 - 19968: jis0208<<14 | 0x2D<<7 | 0x45, - 23996 - 19968: jis0208<<14 | 0x35<<7 | 0x38, - 23997 - 19968: jis0208<<14 | 0x35<<7 | 0x35, - 24003 - 19968: jis0212<<14 | 0x1A<<7 | 0x55, - 24007 - 19968: jis0212<<14 | 0x1A<<7 | 0x56, - 24009 - 19968: jis0208<<14 | 0x35<<7 | 0x39, - 24011 - 19968: jis0212<<14 | 0x1A<<7 | 0x57, - 24012 - 19968: jis0208<<14 | 0x13<<7 | 0x3F, - 24013 - 19968: jis0208<<14 | 0x35<<7 | 0x3A, - 24014 - 19968: jis0212<<14 | 0x1A<<7 | 0x59, - 24016 - 19968: jis0208<<14 | 0x58<<7 | 0x59, - 24018 - 19968: jis0208<<14 | 0x35<<7 | 0x3C, - 24019 - 19968: jis0208<<14 | 0x35<<7 | 0x3B, - 24022 - 19968: jis0208<<14 | 0x35<<7 | 0x3D, - 24024 - 19968: jis0212<<14 | 0x1A<<7 | 0x5A, - 24025 - 19968: jis0212<<14 | 0x1A<<7 | 0x5B, - 24027 - 19968: jis0208<<14 | 0x35<<7 | 0x3E, - 24029 - 19968: jis0208<<14 | 0x1F<<7 | 0x4D, - 24030 - 19968: jis0208<<14 | 0x1C<<7 | 0x02, - 24032 - 19968: jis0212<<14 | 0x1A<<7 | 0x5C, - 24033 - 19968: jis0208<<14 | 0x1C<<7 | 0x43, - 24035 - 19968: jis0208<<14 | 0x20<<7 | 0x42, - 24036 - 19968: jis0212<<14 | 0x1A<<7 | 0x5D, - 24037 - 19968: jis0208<<14 | 0x18<<7 | 0x08, - 24038 - 19968: jis0208<<14 | 0x19<<7 | 0x17, - 24039 - 19968: jis0208<<14 | 0x18<<7 | 0x09, - 24040 - 19968: jis0208<<14 | 0x14<<7 | 0x4F, - 24041 - 19968: jis0212<<14 | 0x1B<<7 | 0x00, - 24043 - 19968: jis0208<<14 | 0x35<<7 | 0x3F, - 24046 - 19968: jis0208<<14 | 0x19<<7 | 0x18, - 24049 - 19968: jis0208<<14 | 0x17<<7 | 0x29, - 24050 - 19968: jis0208<<14 | 0x35<<7 | 0x40, - 24051 - 19968: jis0208<<14 | 0x2B<<7 | 0x05, - 24052 - 19968: jis0208<<14 | 0x26<<7 | 0x22, - 24053 - 19968: jis0208<<14 | 0x35<<7 | 0x41, - 24055 - 19968: jis0208<<14 | 0x18<<7 | 0x0A, - 24056 - 19968: jis0212<<14 | 0x1B<<7 | 0x01, - 24057 - 19968: jis0212<<14 | 0x1B<<7 | 0x02, - 24059 - 19968: jis0208<<14 | 0x13<<7 | 0x0B, - 24061 - 19968: jis0208<<14 | 0x22<<7 | 0x06, - 24062 - 19968: jis0208<<14 | 0x15<<7 | 0x31, - 24064 - 19968: jis0212<<14 | 0x1B<<7 | 0x03, - 24066 - 19968: jis0208<<14 | 0x1A<<7 | 0x33, - 24067 - 19968: jis0208<<14 | 0x28<<7 | 0x3A, - 24070 - 19968: jis0208<<14 | 0x27<<7 | 0x20, - 24071 - 19968: jis0212<<14 | 0x1B<<7 | 0x04, - 24075 - 19968: jis0208<<14 | 0x35<<7 | 0x42, - 24076 - 19968: jis0208<<14 | 0x13<<7 | 0x54, - 24077 - 19968: jis0212<<14 | 0x1B<<7 | 0x05, - 24081 - 19968: jis0208<<14 | 0x35<<7 | 0x45, - 24082 - 19968: jis0212<<14 | 0x1B<<7 | 0x06, - 24084 - 19968: jis0212<<14 | 0x1B<<7 | 0x07, - 24085 - 19968: jis0212<<14 | 0x1B<<7 | 0x08, - 24086 - 19968: jis0208<<14 | 0x23<<7 | 0x00, - 24088 - 19968: jis0212<<14 | 0x1B<<7 | 0x09, - 24089 - 19968: jis0208<<14 | 0x35<<7 | 0x44, - 24090 - 19968: jis0208<<14 | 0x35<<7 | 0x43, - 24091 - 19968: jis0208<<14 | 0x35<<7 | 0x46, - 24093 - 19968: jis0208<<14 | 0x23<<7 | 0x4A, - 24095 - 19968: jis0212<<14 | 0x1B<<7 | 0x0A, - 24096 - 19968: jis0212<<14 | 0x1B<<7 | 0x0B, - 24101 - 19968: jis0208<<14 | 0x1E<<7 | 0x42, - 24104 - 19968: jis0212<<14 | 0x1B<<7 | 0x0D, - 24107 - 19968: jis0208<<14 | 0x1A<<7 | 0x34, - 24109 - 19968: jis0208<<14 | 0x1F<<7 | 0x29, - 24110 - 19968: jis0212<<14 | 0x1B<<7 | 0x0C, - 24111 - 19968: jis0208<<14 | 0x21<<7 | 0x32, - 24112 - 19968: jis0208<<14 | 0x14<<7 | 0x01, - 24114 - 19968: jis0212<<14 | 0x1B<<7 | 0x0E, - 24115 - 19968: jis0208<<14 | 0x23<<7 | 0x01, - 24117 - 19968: jis0212<<14 | 0x1B<<7 | 0x0F, - 24118 - 19968: jis0208<<14 | 0x35<<7 | 0x47, - 24119 - 19968: jis0208<<14 | 0x35<<7 | 0x48, - 24120 - 19968: jis0208<<14 | 0x1D<<7 | 0x4E, - 24125 - 19968: jis0208<<14 | 0x2A<<7 | 0x18, - 24126 - 19968: jis0212<<14 | 0x1B<<7 | 0x10, - 24128 - 19968: jis0208<<14 | 0x35<<7 | 0x4B, - 24131 - 19968: jis0208<<14 | 0x35<<7 | 0x4A, - 24132 - 19968: jis0208<<14 | 0x35<<7 | 0x49, - 24133 - 19968: jis0208<<14 | 0x28<<7 | 0x5C, - 24135 - 19968: jis0208<<14 | 0x35<<7 | 0x52, - 24137 - 19968: jis0212<<14 | 0x1B<<7 | 0x13, - 24139 - 19968: jis0212<<14 | 0x1B<<7 | 0x11, - 24140 - 19968: jis0208<<14 | 0x2A<<7 | 0x39, - 24142 - 19968: jis0208<<14 | 0x35<<7 | 0x4C, - 24144 - 19968: jis0212<<14 | 0x1B<<7 | 0x12, - 24145 - 19968: jis0212<<14 | 0x1B<<7 | 0x14, - 24148 - 19968: jis0208<<14 | 0x35<<7 | 0x4E, - 24149 - 19968: jis0208<<14 | 0x2A<<7 | 0x4A, - 24150 - 19968: jis0212<<14 | 0x1B<<7 | 0x15, - 24151 - 19968: jis0208<<14 | 0x35<<7 | 0x4D, - 24152 - 19968: jis0212<<14 | 0x1B<<7 | 0x16, - 24155 - 19968: jis0212<<14 | 0x1B<<7 | 0x17, - 24156 - 19968: jis0212<<14 | 0x1B<<7 | 0x18, - 24158 - 19968: jis0212<<14 | 0x1B<<7 | 0x19, - 24159 - 19968: jis0208<<14 | 0x35<<7 | 0x4F, - 24161 - 19968: jis0208<<14 | 0x27<<7 | 0x07, - 24162 - 19968: jis0208<<14 | 0x35<<7 | 0x50, - 24163 - 19968: jis0208<<14 | 0x29<<7 | 0x1D, - 24164 - 19968: jis0208<<14 | 0x35<<7 | 0x51, - 24168 - 19968: jis0212<<14 | 0x1B<<7 | 0x1A, - 24170 - 19968: jis0212<<14 | 0x1B<<7 | 0x1B, - 24171 - 19968: jis0212<<14 | 0x1B<<7 | 0x1C, - 24172 - 19968: jis0212<<14 | 0x1B<<7 | 0x1D, - 24173 - 19968: jis0212<<14 | 0x1B<<7 | 0x1E, - 24174 - 19968: jis0212<<14 | 0x1B<<7 | 0x1F, - 24176 - 19968: jis0212<<14 | 0x1B<<7 | 0x20, - 24178 - 19968: jis0208<<14 | 0x13<<7 | 0x12, - 24179 - 19968: jis0208<<14 | 0x29<<7 | 0x1E, - 24180 - 19968: jis0208<<14 | 0x26<<7 | 0x0E, - 24181 - 19968: jis0208<<14 | 0x35<<7 | 0x53, - 24182 - 19968: jis0208<<14 | 0x35<<7 | 0x54, - 24184 - 19968: jis0208<<14 | 0x18<<7 | 0x0B, - 24185 - 19968: jis0208<<14 | 0x13<<7 | 0x13, - 24186 - 19968: jis0208<<14 | 0x35<<7 | 0x55, - 24187 - 19968: jis0208<<14 | 0x17<<7 | 0x17, - 24188 - 19968: jis0208<<14 | 0x2C<<7 | 0x23, - 24189 - 19968: jis0208<<14 | 0x2C<<7 | 0x08, - 24190 - 19968: jis0208<<14 | 0x13<<7 | 0x55, - 24191 - 19968: jis0208<<14 | 0x35<<7 | 0x57, - 24192 - 19968: jis0212<<14 | 0x1B<<7 | 0x21, - 24193 - 19968: jis0208<<14 | 0x23<<7 | 0x02, - 24195 - 19968: jis0208<<14 | 0x18<<7 | 0x0C, - 24196 - 19968: jis0208<<14 | 0x1D<<7 | 0x10, - 24199 - 19968: jis0208<<14 | 0x27<<7 | 0x3E, - 24202 - 19968: jis0208<<14 | 0x1D<<7 | 0x11, - 24203 - 19968: jis0212<<14 | 0x1B<<7 | 0x22, - 24206 - 19968: jis0212<<14 | 0x1B<<7 | 0x23, - 24207 - 19968: jis0208<<14 | 0x1C<<7 | 0x57, - 24213 - 19968: jis0208<<14 | 0x23<<7 | 0x4B, - 24214 - 19968: jis0208<<14 | 0x29<<7 | 0x58, - 24215 - 19968: jis0208<<14 | 0x24<<7 | 0x18, - 24218 - 19968: jis0208<<14 | 0x18<<7 | 0x0D, - 24220 - 19968: jis0208<<14 | 0x28<<7 | 0x3B, - 24224 - 19968: jis0208<<14 | 0x35<<7 | 0x58, - 24226 - 19968: jis0212<<14 | 0x1B<<7 | 0x24, - 24228 - 19968: jis0212<<14 | 0x1B<<7 | 0x25, - 24229 - 19968: jis0212<<14 | 0x1B<<7 | 0x26, - 24230 - 19968: jis0208<<14 | 0x24<<7 | 0x38, - 24231 - 19968: jis0208<<14 | 0x19<<7 | 0x21, - 24232 - 19968: jis0212<<14 | 0x1B<<7 | 0x27, - 24234 - 19968: jis0212<<14 | 0x1B<<7 | 0x28, - 24235 - 19968: jis0208<<14 | 0x17<<7 | 0x2A, - 24236 - 19968: jis0212<<14 | 0x1B<<7 | 0x29, - 24237 - 19968: jis0208<<14 | 0x23<<7 | 0x4C, - 24241 - 19968: jis0212<<14 | 0x1B<<7 | 0x2A, - 24243 - 19968: jis0212<<14 | 0x1B<<7 | 0x2B, - 24245 - 19968: jis0208<<14 | 0x0F<<7 | 0x22, - 24246 - 19968: jis0208<<14 | 0x1C<<7 | 0x4D, - 24247 - 19968: jis0208<<14 | 0x18<<7 | 0x0E, - 24248 - 19968: jis0208<<14 | 0x2C<<7 | 0x26, - 24253 - 19968: jis0212<<14 | 0x1B<<7 | 0x2C, - 24254 - 19968: jis0212<<14 | 0x1B<<7 | 0x2D, - 24255 - 19968: jis0212<<14 | 0x1B<<7 | 0x2E, - 24257 - 19968: jis0208<<14 | 0x35<<7 | 0x59, - 24258 - 19968: jis0208<<14 | 0x35<<7 | 0x5A, - 24259 - 19968: jis0208<<14 | 0x26<<7 | 0x30, - 24262 - 19968: jis0212<<14 | 0x1B<<7 | 0x2F, - 24264 - 19968: jis0208<<14 | 0x35<<7 | 0x5B, - 24265 - 19968: jis0208<<14 | 0x2D<<7 | 0x56, - 24266 - 19968: jis0208<<14 | 0x2E<<7 | 0x0C, - 24267 - 19968: jis0212<<14 | 0x1B<<7 | 0x31, - 24268 - 19968: jis0212<<14 | 0x1B<<7 | 0x30, - 24270 - 19968: jis0212<<14 | 0x1B<<7 | 0x32, - 24271 - 19968: jis0208<<14 | 0x35<<7 | 0x5D, - 24272 - 19968: jis0208<<14 | 0x35<<7 | 0x5C, - 24273 - 19968: jis0212<<14 | 0x1B<<7 | 0x33, - 24274 - 19968: jis0212<<14 | 0x1B<<7 | 0x34, - 24275 - 19968: jis0208<<14 | 0x12<<7 | 0x26, - 24276 - 19968: jis0212<<14 | 0x1B<<7 | 0x35, - 24277 - 19968: jis0212<<14 | 0x1B<<7 | 0x36, - 24278 - 19968: jis0208<<14 | 0x36<<7 | 0x00, - 24282 - 19968: jis0208<<14 | 0x36<<7 | 0x03, - 24283 - 19968: jis0208<<14 | 0x36<<7 | 0x04, - 24284 - 19968: jis0212<<14 | 0x1B<<7 | 0x37, - 24285 - 19968: jis0208<<14 | 0x36<<7 | 0x02, - 24286 - 19968: jis0212<<14 | 0x1B<<7 | 0x38, - 24287 - 19968: jis0208<<14 | 0x28<<7 | 0x1F, - 24288 - 19968: jis0208<<14 | 0x1D<<7 | 0x12, - 24289 - 19968: jis0208<<14 | 0x36<<7 | 0x06, - 24290 - 19968: jis0208<<14 | 0x36<<7 | 0x05, - 24291 - 19968: jis0208<<14 | 0x36<<7 | 0x01, - 24293 - 19968: jis0212<<14 | 0x1B<<7 | 0x39, - 24296 - 19968: jis0208<<14 | 0x36<<7 | 0x07, - 24297 - 19968: jis0208<<14 | 0x36<<7 | 0x08, - 24299 - 19968: jis0212<<14 | 0x1B<<7 | 0x3A, - 24300 - 19968: jis0208<<14 | 0x36<<7 | 0x09, - 24304 - 19968: jis0208<<14 | 0x36<<7 | 0x0C, - 24305 - 19968: jis0208<<14 | 0x36<<7 | 0x0A, - 24307 - 19968: jis0208<<14 | 0x36<<7 | 0x0B, - 24308 - 19968: jis0208<<14 | 0x36<<7 | 0x0D, - 24310 - 19968: jis0208<<14 | 0x10<<7 | 0x43, - 24311 - 19968: jis0208<<14 | 0x23<<7 | 0x4D, - 24312 - 19968: jis0208<<14 | 0x36<<7 | 0x0E, - 24314 - 19968: jis0208<<14 | 0x16<<7 | 0x59, - 24315 - 19968: jis0208<<14 | 0x11<<7 | 0x55, - 24316 - 19968: jis0208<<14 | 0x26<<7 | 0x15, - 24318 - 19968: jis0208<<14 | 0x36<<7 | 0x0F, - 24319 - 19968: jis0208<<14 | 0x25<<7 | 0x5A, - 24321 - 19968: jis0208<<14 | 0x29<<7 | 0x3A, - 24322 - 19968: jis0212<<14 | 0x1B<<7 | 0x3B, - 24323 - 19968: jis0208<<14 | 0x36<<7 | 0x10, - 24324 - 19968: jis0208<<14 | 0x2E<<7 | 0x0D, - 24326 - 19968: jis0212<<14 | 0x1B<<7 | 0x3C, - 24327 - 19968: jis0212<<14 | 0x1B<<7 | 0x3D, - 24328 - 19968: jis0212<<14 | 0x1B<<7 | 0x3E, - 24329 - 19968: jis0208<<14 | 0x36<<7 | 0x11, - 24330 - 19968: jis0208<<14 | 0x29<<7 | 0x1F, - 24331 - 19968: jis0208<<14 | 0x36<<7 | 0x14, - 24332 - 19968: jis0208<<14 | 0x2F<<7 | 0x00, - 24333 - 19968: jis0208<<14 | 0x2F<<7 | 0x10, - 24334 - 19968: jis0212<<14 | 0x1B<<7 | 0x3F, - 24335 - 19968: jis0208<<14 | 0x1B<<7 | 0x0F, - 24336 - 19968: jis0208<<14 | 0x25<<7 | 0x54, - 24337 - 19968: jis0208<<14 | 0x36<<7 | 0x15, - 24339 - 19968: jis0208<<14 | 0x14<<7 | 0x3C, - 24340 - 19968: jis0208<<14 | 0x23<<7 | 0x03, - 24341 - 19968: jis0208<<14 | 0x0F<<7 | 0x59, - 24342 - 19968: jis0208<<14 | 0x36<<7 | 0x16, - 24343 - 19968: jis0208<<14 | 0x29<<7 | 0x05, - 24344 - 19968: jis0208<<14 | 0x18<<7 | 0x0F, - 24345 - 19968: jis0212<<14 | 0x1B<<7 | 0x40, - 24347 - 19968: jis0208<<14 | 0x22<<7 | 0x2F, - 24348 - 19968: jis0212<<14 | 0x1B<<7 | 0x41, - 24349 - 19968: jis0212<<14 | 0x1B<<7 | 0x42, - 24351 - 19968: jis0208<<14 | 0x23<<7 | 0x4E, - 24353 - 19968: jis0208<<14 | 0x58<<7 | 0x5A, - 24354 - 19968: jis0212<<14 | 0x1B<<7 | 0x44, - 24355 - 19968: jis0212<<14 | 0x1B<<7 | 0x45, - 24356 - 19968: jis0212<<14 | 0x1B<<7 | 0x46, - 24357 - 19968: jis0208<<14 | 0x2B<<7 | 0x4E, - 24358 - 19968: jis0208<<14 | 0x17<<7 | 0x18, - 24359 - 19968: jis0208<<14 | 0x17<<7 | 0x2B, - 24360 - 19968: jis0212<<14 | 0x1B<<7 | 0x47, - 24361 - 19968: jis0208<<14 | 0x36<<7 | 0x17, - 24363 - 19968: jis0212<<14 | 0x1B<<7 | 0x48, - 24364 - 19968: jis0212<<14 | 0x1B<<7 | 0x49, - 24365 - 19968: jis0208<<14 | 0x36<<7 | 0x18, - 24366 - 19968: jis0212<<14 | 0x1B<<7 | 0x4A, - 24367 - 19968: jis0208<<14 | 0x36<<7 | 0x1E, - 24368 - 19968: jis0212<<14 | 0x1B<<7 | 0x4B, - 24369 - 19968: jis0208<<14 | 0x1B<<7 | 0x44, - 24372 - 19968: jis0208<<14 | 0x58<<7 | 0x5B, - 24373 - 19968: jis0208<<14 | 0x23<<7 | 0x04, - 24374 - 19968: jis0212<<14 | 0x1B<<7 | 0x4D, - 24375 - 19968: jis0208<<14 | 0x15<<7 | 0x0E, - 24376 - 19968: jis0208<<14 | 0x36<<7 | 0x19, - 24379 - 19968: jis0212<<14 | 0x1B<<7 | 0x4E, - 24380 - 19968: jis0208<<14 | 0x28<<7 | 0x0A, - 24381 - 19968: jis0212<<14 | 0x1B<<7 | 0x4F, - 24382 - 19968: jis0208<<14 | 0x22<<7 | 0x25, - 24383 - 19968: jis0212<<14 | 0x1B<<7 | 0x50, - 24384 - 19968: jis0212<<14 | 0x1B<<7 | 0x51, - 24385 - 19968: jis0208<<14 | 0x36<<7 | 0x1A, - 24388 - 19968: jis0212<<14 | 0x1B<<7 | 0x52, - 24389 - 19968: jis0208<<14 | 0x58<<7 | 0x0B, - 24391 - 19968: jis0212<<14 | 0x1B<<7 | 0x54, - 24392 - 19968: jis0208<<14 | 0x36<<7 | 0x1B, - 24394 - 19968: jis0208<<14 | 0x15<<7 | 0x0F, - 24396 - 19968: jis0208<<14 | 0x36<<7 | 0x1C, - 24397 - 19968: jis0212<<14 | 0x1B<<7 | 0x55, - 24398 - 19968: jis0208<<14 | 0x36<<7 | 0x1D, - 24400 - 19968: jis0212<<14 | 0x1B<<7 | 0x56, - 24401 - 19968: jis0208<<14 | 0x36<<7 | 0x1F, - 24403 - 19968: jis0208<<14 | 0x24<<7 | 0x55, - 24404 - 19968: jis0212<<14 | 0x1B<<7 | 0x57, - 24406 - 19968: jis0208<<14 | 0x36<<7 | 0x20, - 24407 - 19968: jis0208<<14 | 0x36<<7 | 0x21, - 24408 - 19968: jis0212<<14 | 0x1B<<7 | 0x58, - 24409 - 19968: jis0208<<14 | 0x36<<7 | 0x22, - 24411 - 19968: jis0212<<14 | 0x1B<<7 | 0x59, - 24412 - 19968: jis0208<<14 | 0x36<<7 | 0x13, - 24413 - 19968: jis0208<<14 | 0x36<<7 | 0x12, - 24416 - 19968: jis0212<<14 | 0x1B<<7 | 0x5A, - 24417 - 19968: jis0208<<14 | 0x36<<7 | 0x23, - 24418 - 19968: jis0208<<14 | 0x16<<7 | 0x20, - 24419 - 19968: jis0212<<14 | 0x1B<<7 | 0x5B, - 24420 - 19968: jis0212<<14 | 0x1B<<7 | 0x5C, - 24422 - 19968: jis0208<<14 | 0x28<<7 | 0x06, - 24423 - 19968: jis0208<<14 | 0x58<<7 | 0x5C, - 24425 - 19968: jis0208<<14 | 0x19<<7 | 0x2B, - 24426 - 19968: jis0208<<14 | 0x28<<7 | 0x16, - 24427 - 19968: jis0208<<14 | 0x23<<7 | 0x05, - 24428 - 19968: jis0208<<14 | 0x28<<7 | 0x2A, - 24429 - 19968: jis0208<<14 | 0x36<<7 | 0x24, - 24431 - 19968: jis0212<<14 | 0x1C<<7 | 0x00, - 24432 - 19968: jis0208<<14 | 0x1D<<7 | 0x13, - 24433 - 19968: jis0208<<14 | 0x10<<7 | 0x25, - 24434 - 19968: jis0212<<14 | 0x1C<<7 | 0x01, - 24435 - 19968: jis0208<<14 | 0x36<<7 | 0x25, - 24436 - 19968: jis0212<<14 | 0x1C<<7 | 0x02, - 24437 - 19968: jis0212<<14 | 0x1C<<7 | 0x03, - 24439 - 19968: jis0208<<14 | 0x36<<7 | 0x26, - 24440 - 19968: jis0212<<14 | 0x1C<<7 | 0x04, - 24441 - 19968: jis0208<<14 | 0x2B<<7 | 0x51, - 24442 - 19968: jis0212<<14 | 0x1C<<7 | 0x05, - 24444 - 19968: jis0208<<14 | 0x27<<7 | 0x3F, - 24445 - 19968: jis0212<<14 | 0x1C<<7 | 0x06, - 24446 - 19968: jis0212<<14 | 0x1C<<7 | 0x07, - 24447 - 19968: jis0208<<14 | 0x36<<7 | 0x29, - 24448 - 19968: jis0208<<14 | 0x10<<7 | 0x5C, - 24449 - 19968: jis0208<<14 | 0x1F<<7 | 0x0B, - 24450 - 19968: jis0208<<14 | 0x36<<7 | 0x28, - 24451 - 19968: jis0208<<14 | 0x36<<7 | 0x27, - 24452 - 19968: jis0208<<14 | 0x16<<7 | 0x21, - 24453 - 19968: jis0208<<14 | 0x21<<7 | 0x33, - 24455 - 19968: jis0208<<14 | 0x36<<7 | 0x2D, - 24456 - 19968: jis0208<<14 | 0x36<<7 | 0x2B, - 24457 - 19968: jis0212<<14 | 0x1C<<7 | 0x08, - 24458 - 19968: jis0208<<14 | 0x36<<7 | 0x2A, - 24459 - 19968: jis0208<<14 | 0x2D<<7 | 0x06, - 24460 - 19968: jis0208<<14 | 0x17<<7 | 0x44, - 24461 - 19968: jis0212<<14 | 0x1C<<7 | 0x09, - 24463 - 19968: jis0212<<14 | 0x1C<<7 | 0x0A, - 24464 - 19968: jis0208<<14 | 0x1C<<7 | 0x58, - 24465 - 19968: jis0208<<14 | 0x36<<7 | 0x2C, - 24466 - 19968: jis0208<<14 | 0x24<<7 | 0x2B, - 24467 - 19968: jis0208<<14 | 0x1C<<7 | 0x1D, - 24470 - 19968: jis0212<<14 | 0x1C<<7 | 0x0B, - 24471 - 19968: jis0208<<14 | 0x25<<7 | 0x1F, - 24472 - 19968: jis0208<<14 | 0x36<<7 | 0x30, - 24473 - 19968: jis0208<<14 | 0x36<<7 | 0x2F, - 24476 - 19968: jis0212<<14 | 0x1C<<7 | 0x0C, - 24477 - 19968: jis0212<<14 | 0x1C<<7 | 0x0D, - 24478 - 19968: jis0208<<14 | 0x36<<7 | 0x2E, - 24480 - 19968: jis0208<<14 | 0x36<<7 | 0x31, - 24481 - 19968: jis0208<<14 | 0x17<<7 | 0x45, - 24482 - 19968: jis0212<<14 | 0x1C<<7 | 0x0E, - 24484 - 19968: jis0212<<14 | 0x1C<<7 | 0x11, - 24487 - 19968: jis0212<<14 | 0x1C<<7 | 0x0F, - 24488 - 19968: jis0208<<14 | 0x36<<7 | 0x32, - 24489 - 19968: jis0208<<14 | 0x28<<7 | 0x5B, - 24490 - 19968: jis0208<<14 | 0x1C<<7 | 0x3A, - 24491 - 19968: jis0212<<14 | 0x1C<<7 | 0x10, - 24492 - 19968: jis0212<<14 | 0x1C<<7 | 0x12, - 24493 - 19968: jis0208<<14 | 0x36<<7 | 0x33, - 24494 - 19968: jis0208<<14 | 0x27<<7 | 0x58, - 24495 - 19968: jis0212<<14 | 0x1C<<7 | 0x13, - 24496 - 19968: jis0212<<14 | 0x1C<<7 | 0x14, - 24497 - 19968: jis0212<<14 | 0x1C<<7 | 0x15, - 24499 - 19968: jis0208<<14 | 0x25<<7 | 0x20, - 24500 - 19968: jis0208<<14 | 0x23<<7 | 0x06, - 24503 - 19968: jis0208<<14 | 0x58<<7 | 0x5D, - 24504 - 19968: jis0212<<14 | 0x1C<<7 | 0x16, - 24505 - 19968: jis0208<<14 | 0x24<<7 | 0x0F, - 24508 - 19968: jis0208<<14 | 0x36<<7 | 0x34, - 24509 - 19968: jis0208<<14 | 0x14<<7 | 0x0A, - 24515 - 19968: jis0208<<14 | 0x1E<<7 | 0x13, - 24516 - 19968: jis0212<<14 | 0x1C<<7 | 0x17, - 24517 - 19968: jis0208<<14 | 0x28<<7 | 0x0B, - 24519 - 19968: jis0212<<14 | 0x1C<<7 | 0x18, - 24520 - 19968: jis0212<<14 | 0x1C<<7 | 0x19, - 24521 - 19968: jis0212<<14 | 0x1C<<7 | 0x1A, - 24523 - 19968: jis0212<<14 | 0x1C<<7 | 0x1B, - 24524 - 19968: jis0208<<14 | 0x13<<7 | 0x56, - 24525 - 19968: jis0208<<14 | 0x26<<7 | 0x05, - 24528 - 19968: jis0212<<14 | 0x1C<<7 | 0x1C, - 24529 - 19968: jis0212<<14 | 0x1C<<7 | 0x1D, - 24530 - 19968: jis0212<<14 | 0x1C<<7 | 0x1E, - 24531 - 19968: jis0212<<14 | 0x1C<<7 | 0x1F, - 24532 - 19968: jis0212<<14 | 0x1C<<7 | 0x20, - 24534 - 19968: jis0208<<14 | 0x36<<7 | 0x35, - 24535 - 19968: jis0208<<14 | 0x1A<<7 | 0x35, - 24536 - 19968: jis0208<<14 | 0x2A<<7 | 0x19, - 24537 - 19968: jis0208<<14 | 0x2A<<7 | 0x1A, - 24540 - 19968: jis0208<<14 | 0x10<<7 | 0x5D, - 24541 - 19968: jis0208<<14 | 0x36<<7 | 0x3A, - 24542 - 19968: jis0208<<14 | 0x59<<7 | 0x00, - 24544 - 19968: jis0208<<14 | 0x22<<7 | 0x48, - 24545 - 19968: jis0212<<14 | 0x1C<<7 | 0x22, - 24546 - 19968: jis0212<<14 | 0x1C<<7 | 0x23, - 24548 - 19968: jis0208<<14 | 0x36<<7 | 0x37, - 24552 - 19968: jis0212<<14 | 0x1C<<7 | 0x24, - 24553 - 19968: jis0212<<14 | 0x1C<<7 | 0x25, - 24554 - 19968: jis0212<<14 | 0x1C<<7 | 0x26, - 24555 - 19968: jis0208<<14 | 0x11<<7 | 0x56, - 24556 - 19968: jis0212<<14 | 0x1C<<7 | 0x27, - 24557 - 19968: jis0212<<14 | 0x1C<<7 | 0x28, - 24558 - 19968: jis0212<<14 | 0x1C<<7 | 0x29, - 24559 - 19968: jis0212<<14 | 0x1C<<7 | 0x2A, - 24560 - 19968: jis0208<<14 | 0x37<<7 | 0x0C, - 24561 - 19968: jis0208<<14 | 0x36<<7 | 0x39, - 24562 - 19968: jis0212<<14 | 0x1C<<7 | 0x2B, - 24563 - 19968: jis0212<<14 | 0x1C<<7 | 0x2C, - 24565 - 19968: jis0208<<14 | 0x26<<7 | 0x0F, - 24566 - 19968: jis0212<<14 | 0x1C<<7 | 0x2D, - 24568 - 19968: jis0208<<14 | 0x36<<7 | 0x38, - 24570 - 19968: jis0212<<14 | 0x1C<<7 | 0x2E, - 24571 - 19968: jis0208<<14 | 0x36<<7 | 0x36, - 24572 - 19968: jis0212<<14 | 0x1C<<7 | 0x2F, - 24573 - 19968: jis0208<<14 | 0x18<<7 | 0x59, - 24575 - 19968: jis0208<<14 | 0x36<<7 | 0x3C, - 24583 - 19968: jis0212<<14 | 0x1C<<7 | 0x30, - 24586 - 19968: jis0212<<14 | 0x1C<<7 | 0x31, - 24589 - 19968: jis0212<<14 | 0x1C<<7 | 0x32, - 24590 - 19968: jis0208<<14 | 0x36<<7 | 0x42, - 24591 - 19968: jis0208<<14 | 0x36<<7 | 0x48, - 24592 - 19968: jis0208<<14 | 0x36<<7 | 0x40, - 24594 - 19968: jis0208<<14 | 0x24<<7 | 0x3B, - 24595 - 19968: jis0212<<14 | 0x1C<<7 | 0x33, - 24596 - 19968: jis0212<<14 | 0x1C<<7 | 0x34, - 24597 - 19968: jis0208<<14 | 0x36<<7 | 0x45, - 24598 - 19968: jis0208<<14 | 0x28<<7 | 0x3C, - 24599 - 19968: jis0212<<14 | 0x1C<<7 | 0x35, - 24600 - 19968: jis0212<<14 | 0x1C<<7 | 0x36, - 24601 - 19968: jis0208<<14 | 0x36<<7 | 0x3F, - 24602 - 19968: jis0212<<14 | 0x1C<<7 | 0x37, - 24603 - 19968: jis0208<<14 | 0x36<<7 | 0x44, - 24604 - 19968: jis0208<<14 | 0x2D<<7 | 0x46, - 24605 - 19968: jis0208<<14 | 0x1A<<7 | 0x36, - 24607 - 19968: jis0212<<14 | 0x1C<<7 | 0x38, - 24608 - 19968: jis0208<<14 | 0x21<<7 | 0x34, - 24609 - 19968: jis0208<<14 | 0x36<<7 | 0x3D, - 24612 - 19968: jis0212<<14 | 0x1C<<7 | 0x39, - 24613 - 19968: jis0208<<14 | 0x14<<7 | 0x3D, - 24614 - 19968: jis0208<<14 | 0x36<<7 | 0x47, - 24615 - 19968: jis0208<<14 | 0x1F<<7 | 0x0C, - 24616 - 19968: jis0208<<14 | 0x10<<7 | 0x44, - 24617 - 19968: jis0208<<14 | 0x36<<7 | 0x41, - 24618 - 19968: jis0208<<14 | 0x11<<7 | 0x57, - 24619 - 19968: jis0208<<14 | 0x36<<7 | 0x46, - 24621 - 19968: jis0212<<14 | 0x1C<<7 | 0x3A, - 24623 - 19968: jis0208<<14 | 0x15<<7 | 0x10, - 24625 - 19968: jis0208<<14 | 0x36<<7 | 0x43, - 24627 - 19968: jis0212<<14 | 0x1C<<7 | 0x3B, - 24629 - 19968: jis0212<<14 | 0x1C<<7 | 0x3C, - 24634 - 19968: jis0208<<14 | 0x36<<7 | 0x49, - 24640 - 19968: jis0212<<14 | 0x1C<<7 | 0x3D, - 24641 - 19968: jis0208<<14 | 0x36<<7 | 0x4B, - 24642 - 19968: jis0208<<14 | 0x36<<7 | 0x55, - 24643 - 19968: jis0208<<14 | 0x36<<7 | 0x53, - 24646 - 19968: jis0208<<14 | 0x36<<7 | 0x50, - 24647 - 19968: jis0212<<14 | 0x1C<<7 | 0x3E, - 24648 - 19968: jis0212<<14 | 0x1C<<7 | 0x3F, - 24649 - 19968: jis0212<<14 | 0x1C<<7 | 0x40, - 24650 - 19968: jis0208<<14 | 0x36<<7 | 0x4F, - 24651 - 19968: jis0208<<14 | 0x2D<<7 | 0x57, - 24652 - 19968: jis0212<<14 | 0x1C<<7 | 0x41, - 24653 - 19968: jis0208<<14 | 0x36<<7 | 0x51, - 24656 - 19968: jis0208<<14 | 0x15<<7 | 0x11, - 24657 - 19968: jis0212<<14 | 0x1C<<7 | 0x42, - 24658 - 19968: jis0208<<14 | 0x18<<7 | 0x10, - 24660 - 19968: jis0212<<14 | 0x1C<<7 | 0x43, - 24661 - 19968: jis0208<<14 | 0x1C<<7 | 0x59, - 24662 - 19968: jis0212<<14 | 0x1C<<7 | 0x44, - 24663 - 19968: jis0212<<14 | 0x1C<<7 | 0x45, - 24665 - 19968: jis0208<<14 | 0x36<<7 | 0x58, - 24666 - 19968: jis0208<<14 | 0x36<<7 | 0x4A, - 24669 - 19968: jis0208<<14 | 0x59<<7 | 0x01, - 24671 - 19968: jis0208<<14 | 0x36<<7 | 0x4E, - 24672 - 19968: jis0208<<14 | 0x36<<7 | 0x3E, - 24673 - 19968: jis0212<<14 | 0x1C<<7 | 0x47, - 24674 - 19968: jis0208<<14 | 0x11<<7 | 0x59, - 24675 - 19968: jis0208<<14 | 0x36<<7 | 0x52, - 24676 - 19968: jis0208<<14 | 0x36<<7 | 0x54, - 24677 - 19968: jis0208<<14 | 0x22<<7 | 0x30, - 24679 - 19968: jis0212<<14 | 0x1C<<7 | 0x48, - 24680 - 19968: jis0208<<14 | 0x19<<7 | 0x07, - 24681 - 19968: jis0208<<14 | 0x11<<7 | 0x17, - 24682 - 19968: jis0208<<14 | 0x36<<7 | 0x4C, - 24683 - 19968: jis0208<<14 | 0x36<<7 | 0x57, - 24684 - 19968: jis0208<<14 | 0x36<<7 | 0x56, - 24685 - 19968: jis0208<<14 | 0x15<<7 | 0x12, - 24687 - 19968: jis0208<<14 | 0x21<<7 | 0x08, - 24688 - 19968: jis0208<<14 | 0x12<<7 | 0x45, - 24689 - 19968: jis0212<<14 | 0x1C<<7 | 0x49, - 24693 - 19968: jis0208<<14 | 0x16<<7 | 0x22, - 24695 - 19968: jis0208<<14 | 0x36<<7 | 0x4D, - 24702 - 19968: jis0212<<14 | 0x1C<<7 | 0x4A, - 24703 - 19968: jis0212<<14 | 0x1C<<7 | 0x4B, - 24705 - 19968: jis0208<<14 | 0x36<<7 | 0x59, - 24706 - 19968: jis0212<<14 | 0x1C<<7 | 0x4C, - 24707 - 19968: jis0208<<14 | 0x36<<7 | 0x5C, - 24708 - 19968: jis0208<<14 | 0x37<<7 | 0x00, - 24709 - 19968: jis0208<<14 | 0x59<<7 | 0x02, - 24710 - 19968: jis0212<<14 | 0x1C<<7 | 0x4D, - 24712 - 19968: jis0212<<14 | 0x1C<<7 | 0x4E, - 24713 - 19968: jis0208<<14 | 0x1B<<7 | 0x1C, - 24714 - 19968: jis0208<<14 | 0x59<<7 | 0x03, - 24715 - 19968: jis0208<<14 | 0x37<<7 | 0x06, - 24716 - 19968: jis0208<<14 | 0x23<<7 | 0x4F, - 24717 - 19968: jis0208<<14 | 0x36<<7 | 0x5A, - 24718 - 19968: jis0212<<14 | 0x1C<<7 | 0x50, - 24721 - 19968: jis0212<<14 | 0x1C<<7 | 0x51, - 24722 - 19968: jis0208<<14 | 0x37<<7 | 0x04, - 24723 - 19968: jis0212<<14 | 0x1C<<7 | 0x52, - 24724 - 19968: jis0208<<14 | 0x11<<7 | 0x58, - 24725 - 19968: jis0212<<14 | 0x1C<<7 | 0x53, - 24726 - 19968: jis0208<<14 | 0x37<<7 | 0x02, - 24727 - 19968: jis0208<<14 | 0x37<<7 | 0x03, - 24728 - 19968: jis0212<<14 | 0x1C<<7 | 0x54, - 24730 - 19968: jis0208<<14 | 0x36<<7 | 0x5D, - 24731 - 19968: jis0208<<14 | 0x37<<7 | 0x01, - 24733 - 19968: jis0212<<14 | 0x1C<<7 | 0x55, - 24734 - 19968: jis0212<<14 | 0x1C<<7 | 0x56, - 24735 - 19968: jis0208<<14 | 0x17<<7 | 0x46, - 24736 - 19968: jis0208<<14 | 0x2C<<7 | 0x09, - 24738 - 19968: jis0212<<14 | 0x1C<<7 | 0x57, - 24739 - 19968: jis0208<<14 | 0x13<<7 | 0x14, - 24740 - 19968: jis0212<<14 | 0x1C<<7 | 0x58, - 24741 - 19968: jis0212<<14 | 0x1C<<7 | 0x59, - 24742 - 19968: jis0208<<14 | 0x10<<7 | 0x38, - 24743 - 19968: jis0208<<14 | 0x37<<7 | 0x05, - 24744 - 19968: jis0212<<14 | 0x1C<<7 | 0x5A, - 24745 - 19968: jis0208<<14 | 0x26<<7 | 0x19, - 24746 - 19968: jis0208<<14 | 0x0F<<7 | 0x0C, - 24752 - 19968: jis0212<<14 | 0x1C<<7 | 0x5B, - 24753 - 19968: jis0212<<14 | 0x1C<<7 | 0x5C, - 24754 - 19968: jis0208<<14 | 0x27<<7 | 0x40, - 24755 - 19968: jis0208<<14 | 0x36<<7 | 0x3B, - 24756 - 19968: jis0208<<14 | 0x37<<7 | 0x0B, - 24757 - 19968: jis0208<<14 | 0x37<<7 | 0x0F, - 24758 - 19968: jis0208<<14 | 0x2B<<7 | 0x44, - 24759 - 19968: jis0212<<14 | 0x1C<<7 | 0x5D, - 24760 - 19968: jis0208<<14 | 0x37<<7 | 0x08, - 24763 - 19968: jis0212<<14 | 0x1D<<7 | 0x00, - 24764 - 19968: jis0208<<14 | 0x24<<7 | 0x48, - 24765 - 19968: jis0208<<14 | 0x37<<7 | 0x0D, - 24766 - 19968: jis0212<<14 | 0x1D<<7 | 0x01, - 24770 - 19968: jis0212<<14 | 0x1D<<7 | 0x02, - 24772 - 19968: jis0212<<14 | 0x1D<<7 | 0x03, - 24773 - 19968: jis0208<<14 | 0x1D<<7 | 0x4F, - 24774 - 19968: jis0208<<14 | 0x37<<7 | 0x0E, - 24775 - 19968: jis0208<<14 | 0x25<<7 | 0x36, - 24776 - 19968: jis0212<<14 | 0x1D<<7 | 0x04, - 24777 - 19968: jis0212<<14 | 0x1D<<7 | 0x05, - 24778 - 19968: jis0212<<14 | 0x1D<<7 | 0x06, - 24779 - 19968: jis0212<<14 | 0x1D<<7 | 0x07, - 24782 - 19968: jis0212<<14 | 0x1D<<7 | 0x08, - 24783 - 19968: jis0212<<14 | 0x1D<<7 | 0x09, - 24785 - 19968: jis0208<<14 | 0x2E<<7 | 0x26, - 24787 - 19968: jis0208<<14 | 0x37<<7 | 0x0A, - 24788 - 19968: jis0212<<14 | 0x1D<<7 | 0x0A, - 24789 - 19968: jis0208<<14 | 0x59<<7 | 0x05, - 24792 - 19968: jis0208<<14 | 0x37<<7 | 0x10, - 24793 - 19968: jis0212<<14 | 0x1D<<7 | 0x0C, - 24794 - 19968: jis0208<<14 | 0x18<<7 | 0x5A, - 24795 - 19968: jis0212<<14 | 0x1D<<7 | 0x0D, - 24796 - 19968: jis0208<<14 | 0x1F<<7 | 0x2A, - 24797 - 19968: jis0212<<14 | 0x1D<<7 | 0x0E, - 24798 - 19968: jis0208<<14 | 0x59<<7 | 0x04, - 24799 - 19968: jis0208<<14 | 0x0F<<7 | 0x33, - 24800 - 19968: jis0208<<14 | 0x37<<7 | 0x09, - 24801 - 19968: jis0208<<14 | 0x37<<7 | 0x07, - 24802 - 19968: jis0212<<14 | 0x1D<<7 | 0x10, - 24803 - 19968: jis0208<<14 | 0x20<<7 | 0x39, - 24805 - 19968: jis0212<<14 | 0x1D<<7 | 0x11, - 24807 - 19968: jis0208<<14 | 0x36<<7 | 0x5B, - 24808 - 19968: jis0208<<14 | 0x1A<<7 | 0x13, - 24816 - 19968: jis0208<<14 | 0x21<<7 | 0x25, - 24817 - 19968: jis0208<<14 | 0x37<<7 | 0x1C, - 24818 - 19968: jis0208<<14 | 0x59<<7 | 0x07, - 24819 - 19968: jis0208<<14 | 0x20<<7 | 0x3A, - 24820 - 19968: jis0208<<14 | 0x37<<7 | 0x17, - 24821 - 19968: jis0212<<14 | 0x1D<<7 | 0x13, - 24822 - 19968: jis0208<<14 | 0x37<<7 | 0x14, - 24823 - 19968: jis0208<<14 | 0x37<<7 | 0x15, - 24824 - 19968: jis0212<<14 | 0x1D<<7 | 0x14, - 24825 - 19968: jis0208<<14 | 0x1B<<7 | 0x45, - 24826 - 19968: jis0208<<14 | 0x37<<7 | 0x18, - 24827 - 19968: jis0208<<14 | 0x37<<7 | 0x1B, - 24828 - 19968: jis0212<<14 | 0x1D<<7 | 0x15, - 24829 - 19968: jis0212<<14 | 0x1D<<7 | 0x16, - 24832 - 19968: jis0208<<14 | 0x37<<7 | 0x16, - 24833 - 19968: jis0208<<14 | 0x1C<<7 | 0x04, - 24834 - 19968: jis0212<<14 | 0x1D<<7 | 0x17, - 24835 - 19968: jis0208<<14 | 0x37<<7 | 0x19, - 24838 - 19968: jis0208<<14 | 0x37<<7 | 0x13, - 24839 - 19968: jis0212<<14 | 0x1D<<7 | 0x18, - 24840 - 19968: jis0208<<14 | 0x2B<<7 | 0x5B, - 24841 - 19968: jis0208<<14 | 0x2B<<7 | 0x5A, - 24842 - 19968: jis0212<<14 | 0x1D<<7 | 0x19, - 24844 - 19968: jis0212<<14 | 0x1D<<7 | 0x1A, - 24845 - 19968: jis0208<<14 | 0x37<<7 | 0x1D, - 24846 - 19968: jis0208<<14 | 0x37<<7 | 0x1E, - 24847 - 19968: jis0208<<14 | 0x0F<<7 | 0x34, - 24848 - 19968: jis0212<<14 | 0x1D<<7 | 0x1B, - 24849 - 19968: jis0208<<14 | 0x59<<7 | 0x08, - 24850 - 19968: jis0212<<14 | 0x1D<<7 | 0x1D, - 24851 - 19968: jis0212<<14 | 0x1D<<7 | 0x1E, - 24852 - 19968: jis0212<<14 | 0x1D<<7 | 0x1F, - 24853 - 19968: jis0208<<14 | 0x37<<7 | 0x12, - 24854 - 19968: jis0212<<14 | 0x1D<<7 | 0x20, - 24855 - 19968: jis0212<<14 | 0x1D<<7 | 0x21, - 24857 - 19968: jis0212<<14 | 0x1D<<7 | 0x22, - 24858 - 19968: jis0208<<14 | 0x15<<7 | 0x51, - 24859 - 19968: jis0208<<14 | 0x0F<<7 | 0x05, - 24860 - 19968: jis0212<<14 | 0x1D<<7 | 0x23, - 24862 - 19968: jis0212<<14 | 0x1D<<7 | 0x24, - 24863 - 19968: jis0208<<14 | 0x13<<7 | 0x15, - 24864 - 19968: jis0208<<14 | 0x59<<7 | 0x06, - 24865 - 19968: jis0208<<14 | 0x37<<7 | 0x1A, - 24866 - 19968: jis0212<<14 | 0x1D<<7 | 0x25, - 24871 - 19968: jis0208<<14 | 0x37<<7 | 0x22, - 24872 - 19968: jis0208<<14 | 0x37<<7 | 0x21, - 24874 - 19968: jis0212<<14 | 0x1D<<7 | 0x26, - 24875 - 19968: jis0212<<14 | 0x1D<<7 | 0x27, - 24876 - 19968: jis0208<<14 | 0x37<<7 | 0x26, - 24880 - 19968: jis0208<<14 | 0x59<<7 | 0x0A, - 24881 - 19968: jis0212<<14 | 0x1D<<7 | 0x29, - 24884 - 19968: jis0208<<14 | 0x37<<7 | 0x27, - 24885 - 19968: jis0212<<14 | 0x1D<<7 | 0x2A, - 24886 - 19968: jis0212<<14 | 0x1D<<7 | 0x2B, - 24887 - 19968: jis0208<<14 | 0x59<<7 | 0x09, - 24889 - 19968: jis0212<<14 | 0x1D<<7 | 0x2D, - 24892 - 19968: jis0208<<14 | 0x37<<7 | 0x25, - 24893 - 19968: jis0208<<14 | 0x37<<7 | 0x28, - 24894 - 19968: jis0208<<14 | 0x37<<7 | 0x20, - 24895 - 19968: jis0208<<14 | 0x37<<7 | 0x24, - 24897 - 19968: jis0212<<14 | 0x1D<<7 | 0x2E, - 24898 - 19968: jis0208<<14 | 0x37<<7 | 0x29, - 24900 - 19968: jis0208<<14 | 0x37<<7 | 0x2A, - 24901 - 19968: jis0212<<14 | 0x1D<<7 | 0x2F, - 24902 - 19968: jis0212<<14 | 0x1D<<7 | 0x30, - 24903 - 19968: jis0208<<14 | 0x37<<7 | 0x1F, - 24904 - 19968: jis0208<<14 | 0x1A<<7 | 0x5B, - 24905 - 19968: jis0212<<14 | 0x1D<<7 | 0x31, - 24906 - 19968: jis0208<<14 | 0x37<<7 | 0x23, - 24907 - 19968: jis0208<<14 | 0x21<<7 | 0x35, - 24908 - 19968: jis0208<<14 | 0x18<<7 | 0x11, - 24909 - 19968: jis0208<<14 | 0x37<<7 | 0x11, - 24910 - 19968: jis0208<<14 | 0x1E<<7 | 0x14, - 24915 - 19968: jis0208<<14 | 0x37<<7 | 0x37, - 24917 - 19968: jis0208<<14 | 0x29<<7 | 0x48, - 24920 - 19968: jis0208<<14 | 0x37<<7 | 0x2D, - 24921 - 19968: jis0208<<14 | 0x37<<7 | 0x2E, - 24922 - 19968: jis0208<<14 | 0x37<<7 | 0x2F, - 24925 - 19968: jis0208<<14 | 0x37<<7 | 0x36, - 24926 - 19968: jis0212<<14 | 0x1D<<7 | 0x32, - 24927 - 19968: jis0208<<14 | 0x37<<7 | 0x35, - 24928 - 19968: jis0212<<14 | 0x1D<<7 | 0x33, - 24930 - 19968: jis0208<<14 | 0x2A<<7 | 0x5C, - 24931 - 19968: jis0208<<14 | 0x13<<7 | 0x16, - 24933 - 19968: jis0208<<14 | 0x37<<7 | 0x33, - 24935 - 19968: jis0208<<14 | 0x16<<7 | 0x24, - 24936 - 19968: jis0208<<14 | 0x12<<7 | 0x13, - 24939 - 19968: jis0208<<14 | 0x37<<7 | 0x30, - 24940 - 19968: jis0212<<14 | 0x1D<<7 | 0x34, - 24942 - 19968: jis0208<<14 | 0x2D<<7 | 0x17, - 24943 - 19968: jis0208<<14 | 0x37<<7 | 0x32, - 24944 - 19968: jis0208<<14 | 0x0F<<7 | 0x35, - 24945 - 19968: jis0208<<14 | 0x37<<7 | 0x34, - 24946 - 19968: jis0212<<14 | 0x1D<<7 | 0x35, - 24947 - 19968: jis0208<<14 | 0x37<<7 | 0x2B, - 24948 - 19968: jis0208<<14 | 0x37<<7 | 0x31, - 24949 - 19968: jis0208<<14 | 0x37<<7 | 0x38, - 24950 - 19968: jis0208<<14 | 0x16<<7 | 0x23, - 24951 - 19968: jis0208<<14 | 0x37<<7 | 0x2C, - 24952 - 19968: jis0212<<14 | 0x1D<<7 | 0x36, - 24955 - 19968: jis0212<<14 | 0x1D<<7 | 0x37, - 24956 - 19968: jis0212<<14 | 0x1D<<7 | 0x38, - 24958 - 19968: jis0208<<14 | 0x2C<<7 | 0x3C, - 24959 - 19968: jis0212<<14 | 0x1D<<7 | 0x39, - 24960 - 19968: jis0212<<14 | 0x1D<<7 | 0x3A, - 24961 - 19968: jis0212<<14 | 0x1D<<7 | 0x3B, - 24962 - 19968: jis0208<<14 | 0x2C<<7 | 0x0A, - 24963 - 19968: jis0212<<14 | 0x1D<<7 | 0x3C, - 24964 - 19968: jis0212<<14 | 0x1D<<7 | 0x3D, - 24967 - 19968: jis0208<<14 | 0x37<<7 | 0x3B, - 24970 - 19968: jis0208<<14 | 0x37<<7 | 0x3F, - 24971 - 19968: jis0212<<14 | 0x1D<<7 | 0x3E, - 24973 - 19968: jis0212<<14 | 0x1D<<7 | 0x3F, - 24974 - 19968: jis0208<<14 | 0x20<<7 | 0x5D, - 24976 - 19968: jis0208<<14 | 0x2D<<7 | 0x58, - 24977 - 19968: jis0208<<14 | 0x37<<7 | 0x40, - 24978 - 19968: jis0212<<14 | 0x1D<<7 | 0x40, - 24979 - 19968: jis0212<<14 | 0x1D<<7 | 0x41, - 24980 - 19968: jis0208<<14 | 0x37<<7 | 0x3D, - 24982 - 19968: jis0208<<14 | 0x37<<7 | 0x3A, - 24983 - 19968: jis0212<<14 | 0x1D<<7 | 0x42, - 24984 - 19968: jis0208<<14 | 0x59<<7 | 0x0B, - 24985 - 19968: jis0208<<14 | 0x37<<7 | 0x39, - 24986 - 19968: jis0208<<14 | 0x37<<7 | 0x3E, - 24988 - 19968: jis0212<<14 | 0x1D<<7 | 0x44, - 24989 - 19968: jis0212<<14 | 0x1D<<7 | 0x45, - 24991 - 19968: jis0212<<14 | 0x1D<<7 | 0x46, - 24992 - 19968: jis0212<<14 | 0x1D<<7 | 0x47, - 24996 - 19968: jis0208<<14 | 0x29<<7 | 0x0F, - 24997 - 19968: jis0212<<14 | 0x1D<<7 | 0x48, - 24999 - 19968: jis0208<<14 | 0x25<<7 | 0x13, - 25000 - 19968: jis0212<<14 | 0x1D<<7 | 0x49, - 25001 - 19968: jis0208<<14 | 0x16<<7 | 0x25, - 25002 - 19968: jis0212<<14 | 0x1D<<7 | 0x4A, - 25003 - 19968: jis0208<<14 | 0x37<<7 | 0x41, - 25004 - 19968: jis0208<<14 | 0x37<<7 | 0x3C, - 25005 - 19968: jis0212<<14 | 0x1D<<7 | 0x4B, - 25006 - 19968: jis0208<<14 | 0x37<<7 | 0x42, - 25010 - 19968: jis0208<<14 | 0x16<<7 | 0x5A, - 25014 - 19968: jis0208<<14 | 0x11<<7 | 0x10, - 25016 - 19968: jis0212<<14 | 0x1D<<7 | 0x4C, - 25017 - 19968: jis0212<<14 | 0x1D<<7 | 0x4D, - 25018 - 19968: jis0208<<14 | 0x37<<7 | 0x4A, - 25020 - 19968: jis0212<<14 | 0x1D<<7 | 0x4E, - 25022 - 19968: jis0208<<14 | 0x13<<7 | 0x17, - 25024 - 19968: jis0212<<14 | 0x1D<<7 | 0x4F, - 25025 - 19968: jis0212<<14 | 0x1D<<7 | 0x50, - 25026 - 19968: jis0212<<14 | 0x1D<<7 | 0x51, - 25027 - 19968: jis0208<<14 | 0x37<<7 | 0x48, - 25030 - 19968: jis0208<<14 | 0x37<<7 | 0x49, - 25031 - 19968: jis0208<<14 | 0x19<<7 | 0x08, - 25032 - 19968: jis0208<<14 | 0x37<<7 | 0x47, - 25033 - 19968: jis0208<<14 | 0x37<<7 | 0x45, - 25034 - 19968: jis0208<<14 | 0x37<<7 | 0x44, - 25035 - 19968: jis0208<<14 | 0x37<<7 | 0x4B, - 25036 - 19968: jis0208<<14 | 0x37<<7 | 0x43, - 25037 - 19968: jis0208<<14 | 0x37<<7 | 0x4D, - 25038 - 19968: jis0212<<14 | 0x1D<<7 | 0x52, - 25039 - 19968: jis0212<<14 | 0x1D<<7 | 0x53, - 25040 - 19968: jis0208<<14 | 0x11<<7 | 0x5A, - 25045 - 19968: jis0212<<14 | 0x1D<<7 | 0x54, - 25052 - 19968: jis0212<<14 | 0x1D<<7 | 0x55, - 25053 - 19968: jis0212<<14 | 0x1D<<7 | 0x56, - 25054 - 19968: jis0212<<14 | 0x1D<<7 | 0x57, - 25055 - 19968: jis0212<<14 | 0x1D<<7 | 0x58, - 25057 - 19968: jis0212<<14 | 0x1D<<7 | 0x59, - 25058 - 19968: jis0212<<14 | 0x1D<<7 | 0x5A, - 25059 - 19968: jis0208<<14 | 0x37<<7 | 0x4F, - 25061 - 19968: jis0212<<14 | 0x1D<<7 | 0x5D, - 25062 - 19968: jis0208<<14 | 0x37<<7 | 0x4E, - 25063 - 19968: jis0212<<14 | 0x1D<<7 | 0x5B, - 25065 - 19968: jis0212<<14 | 0x1D<<7 | 0x5C, - 25068 - 19968: jis0212<<14 | 0x1E<<7 | 0x00, - 25069 - 19968: jis0212<<14 | 0x1E<<7 | 0x01, - 25071 - 19968: jis0212<<14 | 0x1E<<7 | 0x02, - 25074 - 19968: jis0208<<14 | 0x23<<7 | 0x07, - 25076 - 19968: jis0208<<14 | 0x37<<7 | 0x52, - 25078 - 19968: jis0208<<14 | 0x37<<7 | 0x50, - 25079 - 19968: jis0208<<14 | 0x37<<7 | 0x46, - 25080 - 19968: jis0208<<14 | 0x16<<7 | 0x5B, - 25082 - 19968: jis0208<<14 | 0x37<<7 | 0x51, - 25084 - 19968: jis0208<<14 | 0x37<<7 | 0x55, - 25085 - 19968: jis0208<<14 | 0x37<<7 | 0x54, - 25086 - 19968: jis0208<<14 | 0x37<<7 | 0x56, - 25087 - 19968: jis0208<<14 | 0x37<<7 | 0x53, - 25088 - 19968: jis0208<<14 | 0x37<<7 | 0x57, - 25089 - 19968: jis0212<<14 | 0x1E<<7 | 0x03, - 25091 - 19968: jis0212<<14 | 0x1E<<7 | 0x04, - 25092 - 19968: jis0212<<14 | 0x1E<<7 | 0x05, - 25095 - 19968: jis0212<<14 | 0x1E<<7 | 0x06, - 25096 - 19968: jis0208<<14 | 0x37<<7 | 0x58, - 25097 - 19968: jis0208<<14 | 0x37<<7 | 0x59, - 25098 - 19968: jis0208<<14 | 0x29<<7 | 0x49, - 25100 - 19968: jis0208<<14 | 0x37<<7 | 0x5B, - 25101 - 19968: jis0208<<14 | 0x37<<7 | 0x5A, - 25102 - 19968: jis0208<<14 | 0x1C<<7 | 0x1E, - 25104 - 19968: jis0208<<14 | 0x1F<<7 | 0x0D, - 25105 - 19968: jis0208<<14 | 0x11<<7 | 0x45, - 25106 - 19968: jis0208<<14 | 0x11<<7 | 0x5B, - 25107 - 19968: jis0208<<14 | 0x59<<7 | 0x0C, - 25108 - 19968: jis0208<<14 | 0x37<<7 | 0x5C, - 25109 - 19968: jis0212<<14 | 0x1E<<7 | 0x08, - 25110 - 19968: jis0208<<14 | 0x0F<<7 | 0x1E, - 25114 - 19968: jis0208<<14 | 0x1F<<7 | 0x2B, - 25115 - 19968: jis0208<<14 | 0x37<<7 | 0x5D, - 25116 - 19968: jis0212<<14 | 0x1E<<7 | 0x09, - 25117 - 19968: jis0208<<14 | 0x4B<<7 | 0x22, - 25118 - 19968: jis0208<<14 | 0x38<<7 | 0x00, - 25119 - 19968: jis0208<<14 | 0x16<<7 | 0x40, - 25120 - 19968: jis0212<<14 | 0x1E<<7 | 0x0A, - 25121 - 19968: jis0208<<14 | 0x38<<7 | 0x01, - 25122 - 19968: jis0212<<14 | 0x1E<<7 | 0x0B, - 25123 - 19968: jis0212<<14 | 0x1E<<7 | 0x0C, - 25126 - 19968: jis0208<<14 | 0x1F<<7 | 0x4E, - 25127 - 19968: jis0212<<14 | 0x1E<<7 | 0x0D, - 25129 - 19968: jis0212<<14 | 0x1E<<7 | 0x0E, - 25130 - 19968: jis0208<<14 | 0x38<<7 | 0x02, - 25131 - 19968: jis0212<<14 | 0x1E<<7 | 0x0F, - 25134 - 19968: jis0208<<14 | 0x38<<7 | 0x03, - 25135 - 19968: jis0208<<14 | 0x14<<7 | 0x19, - 25136 - 19968: jis0208<<14 | 0x38<<7 | 0x04, - 25138 - 19968: jis0208<<14 | 0x38<<7 | 0x05, - 25139 - 19968: jis0208<<14 | 0x38<<7 | 0x06, - 25140 - 19968: jis0208<<14 | 0x21<<7 | 0x36, - 25144 - 19968: jis0208<<14 | 0x17<<7 | 0x2C, - 25145 - 19968: jis0212<<14 | 0x1E<<7 | 0x10, - 25147 - 19968: jis0208<<14 | 0x2B<<7 | 0x40, - 25149 - 19968: jis0212<<14 | 0x1E<<7 | 0x11, - 25151 - 19968: jis0208<<14 | 0x2A<<7 | 0x1B, - 25152 - 19968: jis0208<<14 | 0x1C<<7 | 0x49, - 25153 - 19968: jis0208<<14 | 0x38<<7 | 0x07, - 25154 - 19968: jis0212<<14 | 0x1E<<7 | 0x12, - 25155 - 19968: jis0212<<14 | 0x1E<<7 | 0x13, - 25156 - 19968: jis0212<<14 | 0x1E<<7 | 0x14, - 25158 - 19968: jis0212<<14 | 0x1E<<7 | 0x15, - 25159 - 19968: jis0208<<14 | 0x1F<<7 | 0x4F, - 25160 - 19968: jis0208<<14 | 0x4D<<7 | 0x1C, - 25161 - 19968: jis0208<<14 | 0x27<<7 | 0x41, - 25163 - 19968: jis0208<<14 | 0x1B<<7 | 0x49, - 25164 - 19968: jis0212<<14 | 0x1E<<7 | 0x16, - 25165 - 19968: jis0208<<14 | 0x19<<7 | 0x2C, - 25166 - 19968: jis0208<<14 | 0x38<<7 | 0x08, - 25168 - 19968: jis0212<<14 | 0x1E<<7 | 0x17, - 25169 - 19968: jis0212<<14 | 0x1E<<7 | 0x18, - 25170 - 19968: jis0212<<14 | 0x1E<<7 | 0x19, - 25171 - 19968: jis0208<<14 | 0x21<<7 | 0x26, - 25172 - 19968: jis0212<<14 | 0x1E<<7 | 0x1A, - 25173 - 19968: jis0208<<14 | 0x29<<7 | 0x06, - 25174 - 19968: jis0212<<14 | 0x1E<<7 | 0x1B, - 25176 - 19968: jis0208<<14 | 0x21<<7 | 0x50, - 25178 - 19968: jis0212<<14 | 0x1E<<7 | 0x1C, - 25179 - 19968: jis0208<<14 | 0x38<<7 | 0x0B, - 25180 - 19968: jis0212<<14 | 0x1E<<7 | 0x1D, - 25182 - 19968: jis0208<<14 | 0x38<<7 | 0x09, - 25184 - 19968: jis0208<<14 | 0x38<<7 | 0x0C, - 25187 - 19968: jis0208<<14 | 0x38<<7 | 0x0A, - 25188 - 19968: jis0212<<14 | 0x1E<<7 | 0x1E, - 25192 - 19968: jis0208<<14 | 0x38<<7 | 0x0D, - 25197 - 19968: jis0212<<14 | 0x1E<<7 | 0x1F, - 25198 - 19968: jis0208<<14 | 0x29<<7 | 0x10, - 25199 - 19968: jis0212<<14 | 0x1E<<7 | 0x20, - 25201 - 19968: jis0208<<14 | 0x0F<<7 | 0x16, - 25203 - 19968: jis0212<<14 | 0x1E<<7 | 0x21, - 25206 - 19968: jis0208<<14 | 0x28<<7 | 0x3D, - 25209 - 19968: jis0208<<14 | 0x27<<7 | 0x42, - 25210 - 19968: jis0212<<14 | 0x1E<<7 | 0x22, - 25212 - 19968: jis0208<<14 | 0x38<<7 | 0x0E, - 25213 - 19968: jis0212<<14 | 0x1E<<7 | 0x23, - 25214 - 19968: jis0208<<14 | 0x38<<7 | 0x11, - 25215 - 19968: jis0208<<14 | 0x1D<<7 | 0x14, - 25216 - 19968: jis0208<<14 | 0x14<<7 | 0x1A, - 25218 - 19968: jis0208<<14 | 0x38<<7 | 0x0F, - 25219 - 19968: jis0208<<14 | 0x38<<7 | 0x16, - 25220 - 19968: jis0208<<14 | 0x1D<<7 | 0x15, - 25225 - 19968: jis0208<<14 | 0x38<<7 | 0x10, - 25226 - 19968: jis0208<<14 | 0x26<<7 | 0x23, - 25229 - 19968: jis0212<<14 | 0x1E<<7 | 0x24, - 25230 - 19968: jis0212<<14 | 0x1E<<7 | 0x25, - 25231 - 19968: jis0212<<14 | 0x1E<<7 | 0x26, - 25232 - 19968: jis0212<<14 | 0x1E<<7 | 0x27, - 25233 - 19968: jis0208<<14 | 0x2C<<7 | 0x3D, - 25234 - 19968: jis0208<<14 | 0x38<<7 | 0x12, - 25235 - 19968: jis0208<<14 | 0x38<<7 | 0x13, - 25236 - 19968: jis0208<<14 | 0x38<<7 | 0x17, - 25237 - 19968: jis0208<<14 | 0x24<<7 | 0x49, - 25238 - 19968: jis0208<<14 | 0x38<<7 | 0x14, - 25239 - 19968: jis0208<<14 | 0x18<<7 | 0x12, - 25240 - 19968: jis0208<<14 | 0x1F<<7 | 0x3D, - 25243 - 19968: jis0208<<14 | 0x38<<7 | 0x25, - 25244 - 19968: jis0208<<14 | 0x27<<7 | 0x13, - 25246 - 19968: jis0208<<14 | 0x21<<7 | 0x51, - 25254 - 19968: jis0208<<14 | 0x59<<7 | 0x0D, - 25256 - 19968: jis0212<<14 | 0x1E<<7 | 0x29, - 25259 - 19968: jis0208<<14 | 0x27<<7 | 0x43, - 25260 - 19968: jis0208<<14 | 0x39<<7 | 0x0C, - 25265 - 19968: jis0208<<14 | 0x29<<7 | 0x59, - 25267 - 19968: jis0212<<14 | 0x1E<<7 | 0x2A, - 25269 - 19968: jis0208<<14 | 0x23<<7 | 0x50, - 25270 - 19968: jis0212<<14 | 0x1E<<7 | 0x2B, - 25271 - 19968: jis0212<<14 | 0x1E<<7 | 0x2C, - 25273 - 19968: jis0208<<14 | 0x2A<<7 | 0x54, - 25274 - 19968: jis0212<<14 | 0x1E<<7 | 0x2D, - 25275 - 19968: jis0208<<14 | 0x38<<7 | 0x1A, - 25276 - 19968: jis0208<<14 | 0x11<<7 | 0x00, - 25277 - 19968: jis0208<<14 | 0x22<<7 | 0x49, - 25278 - 19968: jis0212<<14 | 0x1E<<7 | 0x2E, - 25279 - 19968: jis0212<<14 | 0x1E<<7 | 0x2F, - 25282 - 19968: jis0208<<14 | 0x38<<7 | 0x23, - 25284 - 19968: jis0212<<14 | 0x1E<<7 | 0x30, - 25285 - 19968: jis0208<<14 | 0x22<<7 | 0x13, - 25286 - 19968: jis0208<<14 | 0x38<<7 | 0x1D, - 25287 - 19968: jis0208<<14 | 0x38<<7 | 0x24, - 25288 - 19968: jis0208<<14 | 0x38<<7 | 0x1F, - 25289 - 19968: jis0208<<14 | 0x38<<7 | 0x26, - 25290 - 19968: jis0208<<14 | 0x38<<7 | 0x22, - 25292 - 19968: jis0208<<14 | 0x38<<7 | 0x21, - 25293 - 19968: jis0208<<14 | 0x26<<7 | 0x4E, - 25294 - 19968: jis0212<<14 | 0x1E<<7 | 0x31, - 25295 - 19968: jis0208<<14 | 0x38<<7 | 0x1B, - 25296 - 19968: jis0208<<14 | 0x11<<7 | 0x5C, - 25297 - 19968: jis0208<<14 | 0x38<<7 | 0x19, - 25298 - 19968: jis0208<<14 | 0x14<<7 | 0x50, - 25299 - 19968: jis0208<<14 | 0x21<<7 | 0x52, - 25300 - 19968: jis0208<<14 | 0x38<<7 | 0x15, - 25301 - 19968: jis0212<<14 | 0x1E<<7 | 0x32, - 25302 - 19968: jis0212<<14 | 0x1E<<7 | 0x33, - 25303 - 19968: jis0208<<14 | 0x38<<7 | 0x18, - 25304 - 19968: jis0208<<14 | 0x18<<7 | 0x13, - 25305 - 19968: jis0208<<14 | 0x1F<<7 | 0x3A, - 25306 - 19968: jis0212<<14 | 0x1E<<7 | 0x34, - 25307 - 19968: jis0208<<14 | 0x1D<<7 | 0x16, - 25308 - 19968: jis0208<<14 | 0x38<<7 | 0x20, - 25309 - 19968: jis0208<<14 | 0x26<<7 | 0x31, - 25312 - 19968: jis0208<<14 | 0x14<<7 | 0x51, - 25313 - 19968: jis0208<<14 | 0x12<<7 | 0x27, - 25322 - 19968: jis0212<<14 | 0x1E<<7 | 0x35, - 25324 - 19968: jis0208<<14 | 0x12<<7 | 0x46, - 25325 - 19968: jis0208<<14 | 0x1E<<7 | 0x00, - 25326 - 19968: jis0208<<14 | 0x38<<7 | 0x28, - 25327 - 19968: jis0208<<14 | 0x38<<7 | 0x2D, - 25329 - 19968: jis0208<<14 | 0x38<<7 | 0x29, - 25330 - 19968: jis0212<<14 | 0x1E<<7 | 0x36, - 25331 - 19968: jis0208<<14 | 0x16<<7 | 0x5C, - 25332 - 19968: jis0212<<14 | 0x1E<<7 | 0x37, - 25333 - 19968: jis0208<<14 | 0x38<<7 | 0x2E, - 25334 - 19968: jis0208<<14 | 0x1A<<7 | 0x01, - 25335 - 19968: jis0208<<14 | 0x18<<7 | 0x48, - 25340 - 19968: jis0212<<14 | 0x1E<<7 | 0x38, - 25341 - 19968: jis0212<<14 | 0x1E<<7 | 0x39, - 25342 - 19968: jis0208<<14 | 0x1C<<7 | 0x05, - 25343 - 19968: jis0208<<14 | 0x38<<7 | 0x1C, - 25345 - 19968: jis0208<<14 | 0x1A<<7 | 0x5C, - 25346 - 19968: jis0208<<14 | 0x38<<7 | 0x2B, - 25347 - 19968: jis0212<<14 | 0x1E<<7 | 0x3A, - 25348 - 19968: jis0212<<14 | 0x1E<<7 | 0x3B, - 25351 - 19968: jis0208<<14 | 0x1A<<7 | 0x37, - 25352 - 19968: jis0208<<14 | 0x38<<7 | 0x2C, - 25353 - 19968: jis0208<<14 | 0x0F<<7 | 0x23, - 25354 - 19968: jis0212<<14 | 0x1E<<7 | 0x3C, - 25355 - 19968: jis0212<<14 | 0x1E<<7 | 0x3D, - 25356 - 19968: jis0208<<14 | 0x38<<7 | 0x27, - 25357 - 19968: jis0212<<14 | 0x1E<<7 | 0x3E, - 25360 - 19968: jis0212<<14 | 0x1E<<7 | 0x3F, - 25361 - 19968: jis0208<<14 | 0x23<<7 | 0x08, - 25363 - 19968: jis0212<<14 | 0x1E<<7 | 0x40, - 25366 - 19968: jis0212<<14 | 0x1E<<7 | 0x41, - 25368 - 19968: jis0212<<14 | 0x1E<<7 | 0x42, - 25369 - 19968: jis0208<<14 | 0x14<<7 | 0x52, - 25375 - 19968: jis0208<<14 | 0x15<<7 | 0x13, - 25383 - 19968: jis0208<<14 | 0x38<<7 | 0x2A, - 25384 - 19968: jis0208<<14 | 0x0F<<7 | 0x06, - 25385 - 19968: jis0212<<14 | 0x1E<<7 | 0x43, - 25386 - 19968: jis0212<<14 | 0x1E<<7 | 0x44, - 25387 - 19968: jis0208<<14 | 0x19<<7 | 0x22, - 25389 - 19968: jis0212<<14 | 0x1E<<7 | 0x45, - 25391 - 19968: jis0208<<14 | 0x1E<<7 | 0x15, - 25397 - 19968: jis0212<<14 | 0x1E<<7 | 0x46, - 25398 - 19968: jis0212<<14 | 0x1E<<7 | 0x47, - 25401 - 19968: jis0212<<14 | 0x1E<<7 | 0x48, - 25402 - 19968: jis0208<<14 | 0x23<<7 | 0x51, - 25404 - 19968: jis0212<<14 | 0x1E<<7 | 0x49, - 25405 - 19968: jis0208<<14 | 0x27<<7 | 0x33, - 25406 - 19968: jis0208<<14 | 0x38<<7 | 0x30, - 25407 - 19968: jis0208<<14 | 0x20<<7 | 0x3D, - 25409 - 19968: jis0212<<14 | 0x1E<<7 | 0x4A, - 25410 - 19968: jis0212<<14 | 0x1E<<7 | 0x4B, - 25411 - 19968: jis0212<<14 | 0x1E<<7 | 0x4C, - 25412 - 19968: jis0212<<14 | 0x1E<<7 | 0x4D, - 25414 - 19968: jis0212<<14 | 0x1E<<7 | 0x4E, - 25417 - 19968: jis0208<<14 | 0x21<<7 | 0x09, - 25418 - 19968: jis0212<<14 | 0x1E<<7 | 0x4F, - 25419 - 19968: jis0212<<14 | 0x1E<<7 | 0x50, - 25420 - 19968: jis0208<<14 | 0x1A<<7 | 0x0A, - 25421 - 19968: jis0208<<14 | 0x38<<7 | 0x31, - 25422 - 19968: jis0212<<14 | 0x1E<<7 | 0x51, - 25423 - 19968: jis0208<<14 | 0x38<<7 | 0x33, - 25424 - 19968: jis0208<<14 | 0x38<<7 | 0x2F, - 25426 - 19968: jis0212<<14 | 0x1E<<7 | 0x52, - 25427 - 19968: jis0212<<14 | 0x1E<<7 | 0x53, - 25428 - 19968: jis0212<<14 | 0x1E<<7 | 0x54, - 25429 - 19968: jis0208<<14 | 0x29<<7 | 0x40, - 25431 - 19968: jis0208<<14 | 0x23<<7 | 0x1C, - 25432 - 19968: jis0212<<14 | 0x1E<<7 | 0x55, - 25435 - 19968: jis0212<<14 | 0x1E<<7 | 0x56, - 25436 - 19968: jis0208<<14 | 0x20<<7 | 0x3B, - 25445 - 19968: jis0212<<14 | 0x1E<<7 | 0x57, - 25446 - 19968: jis0212<<14 | 0x1E<<7 | 0x58, - 25447 - 19968: jis0208<<14 | 0x29<<7 | 0x5A, - 25448 - 19968: jis0208<<14 | 0x1B<<7 | 0x2D, - 25449 - 19968: jis0208<<14 | 0x38<<7 | 0x3F, - 25451 - 19968: jis0208<<14 | 0x38<<7 | 0x3E, - 25452 - 19968: jis0212<<14 | 0x1E<<7 | 0x59, - 25453 - 19968: jis0212<<14 | 0x1E<<7 | 0x5A, - 25454 - 19968: jis0208<<14 | 0x1E<<7 | 0x57, - 25457 - 19968: jis0212<<14 | 0x1E<<7 | 0x5B, - 25458 - 19968: jis0208<<14 | 0x16<<7 | 0x5D, - 25460 - 19968: jis0212<<14 | 0x1E<<7 | 0x5C, - 25461 - 19968: jis0212<<14 | 0x1E<<7 | 0x5D, - 25462 - 19968: jis0208<<14 | 0x38<<7 | 0x38, - 25463 - 19968: jis0208<<14 | 0x1D<<7 | 0x18, - 25464 - 19968: jis0212<<14 | 0x1F<<7 | 0x00, - 25466 - 19968: jis0208<<14 | 0x25<<7 | 0x47, - 25467 - 19968: jis0208<<14 | 0x26<<7 | 0x10, - 25468 - 19968: jis0212<<14 | 0x1F<<7 | 0x01, - 25469 - 19968: jis0212<<14 | 0x1F<<7 | 0x02, - 25471 - 19968: jis0212<<14 | 0x1F<<7 | 0x03, - 25472 - 19968: jis0208<<14 | 0x38<<7 | 0x36, - 25474 - 19968: jis0212<<14 | 0x1F<<7 | 0x04, - 25475 - 19968: jis0208<<14 | 0x20<<7 | 0x3C, - 25476 - 19968: jis0212<<14 | 0x1F<<7 | 0x05, - 25479 - 19968: jis0212<<14 | 0x1F<<7 | 0x06, - 25480 - 19968: jis0208<<14 | 0x1B<<7 | 0x57, - 25481 - 19968: jis0208<<14 | 0x38<<7 | 0x3B, - 25482 - 19968: jis0212<<14 | 0x1F<<7 | 0x07, - 25484 - 19968: jis0208<<14 | 0x1D<<7 | 0x17, - 25486 - 19968: jis0208<<14 | 0x38<<7 | 0x35, - 25487 - 19968: jis0208<<14 | 0x38<<7 | 0x3A, - 25488 - 19968: jis0212<<14 | 0x1F<<7 | 0x08, - 25490 - 19968: jis0208<<14 | 0x26<<7 | 0x32, - 25492 - 19968: jis0212<<14 | 0x1F<<7 | 0x09, - 25493 - 19968: jis0212<<14 | 0x1F<<7 | 0x0A, - 25494 - 19968: jis0208<<14 | 0x38<<7 | 0x34, - 25496 - 19968: jis0208<<14 | 0x16<<7 | 0x00, - 25497 - 19968: jis0212<<14 | 0x1F<<7 | 0x0B, - 25498 - 19968: jis0212<<14 | 0x1F<<7 | 0x0C, - 25499 - 19968: jis0208<<14 | 0x12<<7 | 0x3C, - 25502 - 19968: jis0212<<14 | 0x1F<<7 | 0x0D, - 25503 - 19968: jis0208<<14 | 0x38<<7 | 0x3C, - 25504 - 19968: jis0208<<14 | 0x2D<<7 | 0x0A, - 25505 - 19968: jis0208<<14 | 0x19<<7 | 0x2D, - 25506 - 19968: jis0208<<14 | 0x22<<7 | 0x14, - 25507 - 19968: jis0208<<14 | 0x38<<7 | 0x39, - 25508 - 19968: jis0212<<14 | 0x1F<<7 | 0x0E, - 25509 - 19968: jis0208<<14 | 0x1F<<7 | 0x3B, - 25510 - 19968: jis0212<<14 | 0x1F<<7 | 0x0F, - 25511 - 19968: jis0208<<14 | 0x18<<7 | 0x14, - 25512 - 19968: jis0208<<14 | 0x1E<<7 | 0x43, - 25513 - 19968: jis0208<<14 | 0x10<<7 | 0x45, - 25514 - 19968: jis0208<<14 | 0x20<<7 | 0x1B, - 25515 - 19968: jis0208<<14 | 0x38<<7 | 0x37, - 25516 - 19968: jis0208<<14 | 0x14<<7 | 0x24, - 25517 - 19968: jis0212<<14 | 0x1F<<7 | 0x10, - 25518 - 19968: jis0212<<14 | 0x1F<<7 | 0x11, - 25519 - 19968: jis0212<<14 | 0x1F<<7 | 0x12, - 25522 - 19968: jis0208<<14 | 0x16<<7 | 0x26, - 25524 - 19968: jis0208<<14 | 0x23<<7 | 0x2E, - 25525 - 19968: jis0208<<14 | 0x38<<7 | 0x3D, - 25531 - 19968: jis0208<<14 | 0x20<<7 | 0x3E, - 25533 - 19968: jis0212<<14 | 0x1F<<7 | 0x13, - 25534 - 19968: jis0208<<14 | 0x38<<7 | 0x40, - 25536 - 19968: jis0208<<14 | 0x38<<7 | 0x42, - 25537 - 19968: jis0212<<14 | 0x1F<<7 | 0x14, - 25539 - 19968: jis0208<<14 | 0x21<<7 | 0x16, - 25540 - 19968: jis0208<<14 | 0x38<<7 | 0x48, - 25541 - 19968: jis0212<<14 | 0x1F<<7 | 0x15, - 25542 - 19968: jis0208<<14 | 0x38<<7 | 0x43, - 25544 - 19968: jis0212<<14 | 0x1F<<7 | 0x16, - 25545 - 19968: jis0208<<14 | 0x38<<7 | 0x45, - 25550 - 19968: jis0212<<14 | 0x1F<<7 | 0x17, - 25551 - 19968: jis0208<<14 | 0x28<<7 | 0x20, - 25552 - 19968: jis0208<<14 | 0x23<<7 | 0x52, - 25553 - 19968: jis0212<<14 | 0x1F<<7 | 0x18, - 25554 - 19968: jis0208<<14 | 0x38<<7 | 0x46, - 25555 - 19968: jis0212<<14 | 0x1F<<7 | 0x19, - 25556 - 19968: jis0212<<14 | 0x1F<<7 | 0x1A, - 25557 - 19968: jis0212<<14 | 0x1F<<7 | 0x1B, - 25558 - 19968: jis0208<<14 | 0x2C<<7 | 0x0B, - 25562 - 19968: jis0208<<14 | 0x2C<<7 | 0x27, - 25563 - 19968: jis0208<<14 | 0x13<<7 | 0x18, - 25564 - 19968: jis0212<<14 | 0x1F<<7 | 0x1C, - 25568 - 19968: jis0212<<14 | 0x1F<<7 | 0x1D, - 25569 - 19968: jis0208<<14 | 0x0F<<7 | 0x0D, - 25571 - 19968: jis0208<<14 | 0x38<<7 | 0x44, - 25573 - 19968: jis0212<<14 | 0x1F<<7 | 0x1E, - 25577 - 19968: jis0208<<14 | 0x38<<7 | 0x41, - 25578 - 19968: jis0212<<14 | 0x1F<<7 | 0x1F, - 25580 - 19968: jis0212<<14 | 0x1F<<7 | 0x20, - 25582 - 19968: jis0208<<14 | 0x13<<7 | 0x57, - 25586 - 19968: jis0212<<14 | 0x1F<<7 | 0x21, - 25587 - 19968: jis0212<<14 | 0x1F<<7 | 0x22, - 25588 - 19968: jis0208<<14 | 0x10<<7 | 0x46, - 25589 - 19968: jis0208<<14 | 0x59<<7 | 0x0E, - 25590 - 19968: jis0208<<14 | 0x38<<7 | 0x47, - 25592 - 19968: jis0212<<14 | 0x1F<<7 | 0x24, - 25593 - 19968: jis0212<<14 | 0x1F<<7 | 0x25, - 25594 - 19968: jis0208<<14 | 0x2C<<7 | 0x28, - 25606 - 19968: jis0208<<14 | 0x38<<7 | 0x4B, - 25609 - 19968: jis0212<<14 | 0x1F<<7 | 0x26, - 25610 - 19968: jis0212<<14 | 0x1F<<7 | 0x27, - 25613 - 19968: jis0208<<14 | 0x21<<7 | 0x1A, - 25615 - 19968: jis0208<<14 | 0x38<<7 | 0x52, - 25616 - 19968: jis0212<<14 | 0x1F<<7 | 0x28, - 25618 - 19968: jis0212<<14 | 0x1F<<7 | 0x29, - 25619 - 19968: jis0208<<14 | 0x38<<7 | 0x4C, - 25620 - 19968: jis0212<<14 | 0x1F<<7 | 0x2A, - 25622 - 19968: jis0208<<14 | 0x38<<7 | 0x49, - 25623 - 19968: jis0208<<14 | 0x38<<7 | 0x50, - 25624 - 19968: jis0212<<14 | 0x1F<<7 | 0x2B, - 25628 - 19968: jis0208<<14 | 0x38<<7 | 0x32, - 25630 - 19968: jis0212<<14 | 0x1F<<7 | 0x2C, - 25632 - 19968: jis0212<<14 | 0x1F<<7 | 0x2D, - 25634 - 19968: jis0212<<14 | 0x1F<<7 | 0x2E, - 25636 - 19968: jis0212<<14 | 0x1F<<7 | 0x2F, - 25637 - 19968: jis0212<<14 | 0x1F<<7 | 0x30, - 25638 - 19968: jis0208<<14 | 0x38<<7 | 0x4D, - 25640 - 19968: jis0208<<14 | 0x38<<7 | 0x51, - 25641 - 19968: jis0212<<14 | 0x1F<<7 | 0x31, - 25642 - 19968: jis0212<<14 | 0x1F<<7 | 0x32, - 25644 - 19968: jis0208<<14 | 0x27<<7 | 0x21, - 25645 - 19968: jis0208<<14 | 0x24<<7 | 0x4A, - 25647 - 19968: jis0212<<14 | 0x1F<<7 | 0x33, - 25648 - 19968: jis0212<<14 | 0x1F<<7 | 0x34, - 25652 - 19968: jis0208<<14 | 0x38<<7 | 0x4A, - 25653 - 19968: jis0212<<14 | 0x1F<<7 | 0x35, - 25654 - 19968: jis0208<<14 | 0x38<<7 | 0x4E, - 25658 - 19968: jis0208<<14 | 0x16<<7 | 0x27, - 25661 - 19968: jis0212<<14 | 0x1F<<7 | 0x36, - 25662 - 19968: jis0208<<14 | 0x19<<7 | 0x50, - 25663 - 19968: jis0212<<14 | 0x1F<<7 | 0x37, - 25666 - 19968: jis0208<<14 | 0x1F<<7 | 0x3C, - 25675 - 19968: jis0212<<14 | 0x1F<<7 | 0x38, - 25678 - 19968: jis0208<<14 | 0x38<<7 | 0x56, - 25679 - 19968: jis0212<<14 | 0x1F<<7 | 0x39, - 25681 - 19968: jis0212<<14 | 0x1F<<7 | 0x3A, - 25682 - 19968: jis0212<<14 | 0x1F<<7 | 0x3B, - 25683 - 19968: jis0212<<14 | 0x1F<<7 | 0x3C, - 25684 - 19968: jis0212<<14 | 0x1F<<7 | 0x3D, - 25688 - 19968: jis0208<<14 | 0x24<<7 | 0x05, - 25690 - 19968: jis0212<<14 | 0x1F<<7 | 0x3E, - 25691 - 19968: jis0212<<14 | 0x1F<<7 | 0x3F, - 25692 - 19968: jis0212<<14 | 0x1F<<7 | 0x40, - 25693 - 19968: jis0212<<14 | 0x1F<<7 | 0x41, - 25695 - 19968: jis0212<<14 | 0x1F<<7 | 0x42, - 25696 - 19968: jis0208<<14 | 0x59<<7 | 0x0F, - 25697 - 19968: jis0212<<14 | 0x1F<<7 | 0x44, - 25699 - 19968: jis0212<<14 | 0x1F<<7 | 0x45, - 25703 - 19968: jis0208<<14 | 0x38<<7 | 0x53, - 25705 - 19968: jis0208<<14 | 0x2A<<7 | 0x3F, - 25709 - 19968: jis0212<<14 | 0x1F<<7 | 0x46, - 25711 - 19968: jis0208<<14 | 0x38<<7 | 0x54, - 25715 - 19968: jis0212<<14 | 0x1F<<7 | 0x47, - 25716 - 19968: jis0212<<14 | 0x1F<<7 | 0x48, - 25718 - 19968: jis0208<<14 | 0x38<<7 | 0x55, - 25720 - 19968: jis0208<<14 | 0x2B<<7 | 0x2D, - 25722 - 19968: jis0208<<14 | 0x1F<<7 | 0x01, - 25723 - 19968: jis0212<<14 | 0x1F<<7 | 0x49, - 25725 - 19968: jis0212<<14 | 0x1F<<7 | 0x4A, - 25731 - 19968: jis0208<<14 | 0x16<<7 | 0x41, - 25733 - 19968: jis0212<<14 | 0x1F<<7 | 0x4B, - 25735 - 19968: jis0212<<14 | 0x1F<<7 | 0x4C, - 25736 - 19968: jis0208<<14 | 0x38<<7 | 0x5C, - 25743 - 19968: jis0212<<14 | 0x1F<<7 | 0x4D, - 25744 - 19968: jis0212<<14 | 0x1F<<7 | 0x4E, - 25745 - 19968: jis0212<<14 | 0x1F<<7 | 0x4F, - 25746 - 19968: jis0208<<14 | 0x1A<<7 | 0x14, - 25747 - 19968: jis0208<<14 | 0x38<<7 | 0x59, - 25749 - 19968: jis0208<<14 | 0x38<<7 | 0x58, - 25752 - 19968: jis0212<<14 | 0x1F<<7 | 0x50, - 25753 - 19968: jis0212<<14 | 0x1F<<7 | 0x51, - 25754 - 19968: jis0208<<14 | 0x26<<7 | 0x11, - 25755 - 19968: jis0212<<14 | 0x1F<<7 | 0x52, - 25757 - 19968: jis0208<<14 | 0x59<<7 | 0x10, - 25758 - 19968: jis0208<<14 | 0x25<<7 | 0x14, - 25759 - 19968: jis0212<<14 | 0x1F<<7 | 0x54, - 25761 - 19968: jis0212<<14 | 0x1F<<7 | 0x55, - 25763 - 19968: jis0212<<14 | 0x1F<<7 | 0x56, - 25764 - 19968: jis0208<<14 | 0x24<<7 | 0x10, - 25765 - 19968: jis0208<<14 | 0x38<<7 | 0x5A, - 25766 - 19968: jis0212<<14 | 0x1F<<7 | 0x57, - 25768 - 19968: jis0212<<14 | 0x1F<<7 | 0x58, - 25769 - 19968: jis0208<<14 | 0x38<<7 | 0x5B, - 25771 - 19968: jis0208<<14 | 0x28<<7 | 0x4E, - 25772 - 19968: jis0212<<14 | 0x1F<<7 | 0x59, - 25773 - 19968: jis0208<<14 | 0x26<<7 | 0x24, - 25774 - 19968: jis0208<<14 | 0x1A<<7 | 0x02, - 25776 - 19968: jis0208<<14 | 0x1F<<7 | 0x50, - 25778 - 19968: jis0208<<14 | 0x2A<<7 | 0x2F, - 25779 - 19968: jis0212<<14 | 0x1F<<7 | 0x5A, - 25785 - 19968: jis0208<<14 | 0x12<<7 | 0x28, - 25787 - 19968: jis0208<<14 | 0x39<<7 | 0x04, - 25788 - 19968: jis0208<<14 | 0x38<<7 | 0x5D, - 25789 - 19968: jis0212<<14 | 0x1F<<7 | 0x5B, - 25790 - 19968: jis0212<<14 | 0x1F<<7 | 0x5C, - 25791 - 19968: jis0212<<14 | 0x1F<<7 | 0x5D, - 25793 - 19968: jis0208<<14 | 0x2C<<7 | 0x29, - 25794 - 19968: jis0208<<14 | 0x39<<7 | 0x06, - 25796 - 19968: jis0212<<14 | 0x20<<7 | 0x00, - 25797 - 19968: jis0208<<14 | 0x39<<7 | 0x02, - 25799 - 19968: jis0208<<14 | 0x39<<7 | 0x03, - 25801 - 19968: jis0212<<14 | 0x20<<7 | 0x01, - 25802 - 19968: jis0212<<14 | 0x20<<7 | 0x02, - 25803 - 19968: jis0212<<14 | 0x20<<7 | 0x03, - 25804 - 19968: jis0212<<14 | 0x20<<7 | 0x04, - 25805 - 19968: jis0208<<14 | 0x20<<7 | 0x3F, - 25806 - 19968: jis0208<<14 | 0x59<<7 | 0x11, - 25808 - 19968: jis0212<<14 | 0x20<<7 | 0x06, - 25809 - 19968: jis0212<<14 | 0x20<<7 | 0x07, - 25810 - 19968: jis0208<<14 | 0x39<<7 | 0x01, - 25812 - 19968: jis0208<<14 | 0x38<<7 | 0x1E, - 25813 - 19968: jis0212<<14 | 0x20<<7 | 0x08, - 25815 - 19968: jis0212<<14 | 0x20<<7 | 0x09, - 25816 - 19968: jis0208<<14 | 0x39<<7 | 0x05, - 25818 - 19968: jis0208<<14 | 0x39<<7 | 0x00, - 25824 - 19968: jis0208<<14 | 0x39<<7 | 0x0A, - 25825 - 19968: jis0208<<14 | 0x39<<7 | 0x0B, - 25826 - 19968: jis0208<<14 | 0x24<<7 | 0x06, - 25827 - 19968: jis0208<<14 | 0x39<<7 | 0x0D, - 25828 - 19968: jis0212<<14 | 0x20<<7 | 0x0A, - 25829 - 19968: jis0212<<14 | 0x20<<7 | 0x0B, - 25830 - 19968: jis0208<<14 | 0x1A<<7 | 0x03, - 25831 - 19968: jis0208<<14 | 0x39<<7 | 0x08, - 25833 - 19968: jis0212<<14 | 0x20<<7 | 0x0C, - 25834 - 19968: jis0212<<14 | 0x20<<7 | 0x0D, - 25836 - 19968: jis0208<<14 | 0x14<<7 | 0x1B, - 25837 - 19968: jis0212<<14 | 0x20<<7 | 0x0E, - 25839 - 19968: jis0208<<14 | 0x39<<7 | 0x0E, - 25840 - 19968: jis0212<<14 | 0x20<<7 | 0x0F, - 25841 - 19968: jis0208<<14 | 0x39<<7 | 0x07, - 25842 - 19968: jis0208<<14 | 0x39<<7 | 0x12, - 25844 - 19968: jis0208<<14 | 0x39<<7 | 0x11, - 25845 - 19968: jis0212<<14 | 0x20<<7 | 0x10, - 25846 - 19968: jis0208<<14 | 0x39<<7 | 0x10, - 25847 - 19968: jis0212<<14 | 0x20<<7 | 0x11, - 25850 - 19968: jis0208<<14 | 0x39<<7 | 0x13, - 25851 - 19968: jis0212<<14 | 0x20<<7 | 0x12, - 25853 - 19968: jis0208<<14 | 0x39<<7 | 0x15, - 25854 - 19968: jis0208<<14 | 0x1D<<7 | 0x50, - 25855 - 19968: jis0212<<14 | 0x20<<7 | 0x13, - 25856 - 19968: jis0208<<14 | 0x39<<7 | 0x14, - 25857 - 19968: jis0212<<14 | 0x20<<7 | 0x14, - 25860 - 19968: jis0212<<14 | 0x20<<7 | 0x15, - 25861 - 19968: jis0208<<14 | 0x39<<7 | 0x18, - 25864 - 19968: jis0212<<14 | 0x20<<7 | 0x16, - 25865 - 19968: jis0212<<14 | 0x20<<7 | 0x17, - 25866 - 19968: jis0212<<14 | 0x20<<7 | 0x18, - 25871 - 19968: jis0212<<14 | 0x20<<7 | 0x19, - 25875 - 19968: jis0212<<14 | 0x20<<7 | 0x1A, - 25876 - 19968: jis0212<<14 | 0x20<<7 | 0x1B, - 25878 - 19968: jis0212<<14 | 0x20<<7 | 0x1C, - 25880 - 19968: jis0208<<14 | 0x39<<7 | 0x16, - 25881 - 19968: jis0212<<14 | 0x20<<7 | 0x1D, - 25883 - 19968: jis0212<<14 | 0x20<<7 | 0x1E, - 25884 - 19968: jis0208<<14 | 0x39<<7 | 0x17, - 25885 - 19968: jis0208<<14 | 0x38<<7 | 0x4F, - 25886 - 19968: jis0212<<14 | 0x20<<7 | 0x1F, - 25887 - 19968: jis0212<<14 | 0x20<<7 | 0x20, - 25890 - 19968: jis0212<<14 | 0x20<<7 | 0x21, - 25891 - 19968: jis0208<<14 | 0x39<<7 | 0x1A, - 25892 - 19968: jis0208<<14 | 0x39<<7 | 0x19, - 25894 - 19968: jis0212<<14 | 0x20<<7 | 0x22, - 25897 - 19968: jis0212<<14 | 0x20<<7 | 0x23, - 25898 - 19968: jis0208<<14 | 0x38<<7 | 0x57, - 25899 - 19968: jis0208<<14 | 0x39<<7 | 0x1B, - 25900 - 19968: jis0208<<14 | 0x39<<7 | 0x0F, - 25902 - 19968: jis0212<<14 | 0x20<<7 | 0x24, - 25903 - 19968: jis0208<<14 | 0x1A<<7 | 0x38, - 25905 - 19968: jis0212<<14 | 0x20<<7 | 0x25, - 25908 - 19968: jis0208<<14 | 0x39<<7 | 0x1C, - 25909 - 19968: jis0208<<14 | 0x39<<7 | 0x1D, - 25910 - 19968: jis0208<<14 | 0x39<<7 | 0x1F, - 25911 - 19968: jis0208<<14 | 0x39<<7 | 0x1E, - 25912 - 19968: jis0208<<14 | 0x39<<7 | 0x20, - 25913 - 19968: jis0208<<14 | 0x11<<7 | 0x5D, - 25914 - 19968: jis0212<<14 | 0x20<<7 | 0x26, - 25915 - 19968: jis0208<<14 | 0x18<<7 | 0x15, - 25916 - 19968: jis0212<<14 | 0x20<<7 | 0x27, - 25917 - 19968: jis0212<<14 | 0x20<<7 | 0x28, - 25918 - 19968: jis0208<<14 | 0x29<<7 | 0x5B, - 25919 - 19968: jis0208<<14 | 0x1F<<7 | 0x0E, - 25923 - 19968: jis0212<<14 | 0x20<<7 | 0x29, - 25925 - 19968: jis0208<<14 | 0x17<<7 | 0x2D, - 25927 - 19968: jis0212<<14 | 0x20<<7 | 0x2A, - 25928 - 19968: jis0208<<14 | 0x39<<7 | 0x22, - 25929 - 19968: jis0212<<14 | 0x20<<7 | 0x2B, - 25933 - 19968: jis0208<<14 | 0x39<<7 | 0x25, - 25934 - 19968: jis0208<<14 | 0x59<<7 | 0x12, - 25935 - 19968: jis0208<<14 | 0x28<<7 | 0x31, - 25936 - 19968: jis0212<<14 | 0x20<<7 | 0x2C, - 25937 - 19968: jis0208<<14 | 0x14<<7 | 0x3E, - 25938 - 19968: jis0212<<14 | 0x20<<7 | 0x2D, - 25940 - 19968: jis0212<<14 | 0x20<<7 | 0x2E, - 25941 - 19968: jis0208<<14 | 0x39<<7 | 0x24, - 25942 - 19968: jis0208<<14 | 0x39<<7 | 0x23, - 25943 - 19968: jis0208<<14 | 0x26<<7 | 0x33, - 25944 - 19968: jis0208<<14 | 0x39<<7 | 0x26, - 25945 - 19968: jis0208<<14 | 0x15<<7 | 0x14, - 25949 - 19968: jis0208<<14 | 0x39<<7 | 0x28, - 25950 - 19968: jis0208<<14 | 0x39<<7 | 0x27, - 25951 - 19968: jis0212<<14 | 0x20<<7 | 0x2F, - 25952 - 19968: jis0212<<14 | 0x20<<7 | 0x30, - 25954 - 19968: jis0208<<14 | 0x13<<7 | 0x19, - 25955 - 19968: jis0208<<14 | 0x1A<<7 | 0x15, - 25958 - 19968: jis0208<<14 | 0x25<<7 | 0x37, - 25959 - 19968: jis0212<<14 | 0x20<<7 | 0x31, - 25963 - 19968: jis0212<<14 | 0x20<<7 | 0x32, - 25964 - 19968: jis0208<<14 | 0x16<<7 | 0x28, - 25968 - 19968: jis0208<<14 | 0x1E<<7 | 0x53, - 25970 - 19968: jis0208<<14 | 0x39<<7 | 0x29, - 25972 - 19968: jis0208<<14 | 0x1F<<7 | 0x0F, - 25973 - 19968: jis0208<<14 | 0x24<<7 | 0x07, - 25975 - 19968: jis0208<<14 | 0x28<<7 | 0x3E, - 25976 - 19968: jis0208<<14 | 0x39<<7 | 0x2A, - 25978 - 19968: jis0212<<14 | 0x20<<7 | 0x33, - 25981 - 19968: jis0212<<14 | 0x20<<7 | 0x34, - 25985 - 19968: jis0212<<14 | 0x20<<7 | 0x35, - 25986 - 19968: jis0208<<14 | 0x39<<7 | 0x2B, - 25987 - 19968: jis0208<<14 | 0x39<<7 | 0x2C, - 25989 - 19968: jis0212<<14 | 0x20<<7 | 0x36, - 25991 - 19968: jis0208<<14 | 0x29<<7 | 0x17, - 25992 - 19968: jis0208<<14 | 0x34<<7 | 0x3C, - 25993 - 19968: jis0208<<14 | 0x1F<<7 | 0x25, - 25994 - 19968: jis0212<<14 | 0x20<<7 | 0x37, - 25996 - 19968: jis0208<<14 | 0x28<<7 | 0x2B, - 25998 - 19968: jis0208<<14 | 0x19<<7 | 0x37, - 26000 - 19968: jis0208<<14 | 0x27<<7 | 0x44, - 26001 - 19968: jis0208<<14 | 0x27<<7 | 0x22, - 26002 - 19968: jis0212<<14 | 0x20<<7 | 0x38, - 26005 - 19968: jis0212<<14 | 0x20<<7 | 0x39, - 26007 - 19968: jis0208<<14 | 0x24<<7 | 0x2C, - 26008 - 19968: jis0212<<14 | 0x20<<7 | 0x3A, - 26009 - 19968: jis0208<<14 | 0x2D<<7 | 0x20, - 26011 - 19968: jis0208<<14 | 0x39<<7 | 0x2E, - 26012 - 19968: jis0208<<14 | 0x1B<<7 | 0x2F, - 26013 - 19968: jis0212<<14 | 0x20<<7 | 0x3B, - 26015 - 19968: jis0208<<14 | 0x39<<7 | 0x2F, - 26016 - 19968: jis0212<<14 | 0x20<<7 | 0x3C, - 26017 - 19968: jis0208<<14 | 0x0F<<7 | 0x15, - 26019 - 19968: jis0212<<14 | 0x20<<7 | 0x3D, - 26020 - 19968: jis0208<<14 | 0x15<<7 | 0x33, - 26021 - 19968: jis0208<<14 | 0x1F<<7 | 0x2C, - 26022 - 19968: jis0212<<14 | 0x20<<7 | 0x3E, - 26023 - 19968: jis0208<<14 | 0x28<<7 | 0x3F, - 26027 - 19968: jis0208<<14 | 0x39<<7 | 0x30, - 26028 - 19968: jis0208<<14 | 0x1A<<7 | 0x21, - 26029 - 19968: jis0208<<14 | 0x22<<7 | 0x26, - 26030 - 19968: jis0212<<14 | 0x20<<7 | 0x3F, - 26031 - 19968: jis0208<<14 | 0x1A<<7 | 0x3A, - 26032 - 19968: jis0208<<14 | 0x1E<<7 | 0x16, - 26034 - 19968: jis0212<<14 | 0x20<<7 | 0x40, - 26035 - 19968: jis0212<<14 | 0x20<<7 | 0x41, - 26036 - 19968: jis0212<<14 | 0x20<<7 | 0x42, - 26039 - 19968: jis0208<<14 | 0x39<<7 | 0x31, - 26041 - 19968: jis0208<<14 | 0x29<<7 | 0x5C, - 26044 - 19968: jis0208<<14 | 0x10<<7 | 0x56, - 26045 - 19968: jis0208<<14 | 0x1A<<7 | 0x3B, - 26047 - 19968: jis0212<<14 | 0x20<<7 | 0x43, - 26049 - 19968: jis0208<<14 | 0x39<<7 | 0x34, - 26050 - 19968: jis0212<<14 | 0x20<<7 | 0x44, - 26051 - 19968: jis0208<<14 | 0x39<<7 | 0x32, - 26052 - 19968: jis0208<<14 | 0x39<<7 | 0x35, - 26053 - 19968: jis0208<<14 | 0x2D<<7 | 0x18, - 26054 - 19968: jis0208<<14 | 0x39<<7 | 0x33, - 26056 - 19968: jis0212<<14 | 0x20<<7 | 0x45, - 26057 - 19968: jis0212<<14 | 0x20<<7 | 0x46, - 26059 - 19968: jis0208<<14 | 0x1F<<7 | 0x5A, - 26060 - 19968: jis0208<<14 | 0x39<<7 | 0x36, - 26062 - 19968: jis0212<<14 | 0x20<<7 | 0x47, - 26063 - 19968: jis0208<<14 | 0x21<<7 | 0x11, - 26064 - 19968: jis0212<<14 | 0x20<<7 | 0x48, - 26066 - 19968: jis0208<<14 | 0x39<<7 | 0x37, - 26068 - 19968: jis0212<<14 | 0x20<<7 | 0x49, - 26070 - 19968: jis0212<<14 | 0x20<<7 | 0x4A, - 26071 - 19968: jis0208<<14 | 0x13<<7 | 0x59, - 26072 - 19968: jis0212<<14 | 0x20<<7 | 0x4B, - 26073 - 19968: jis0208<<14 | 0x39<<7 | 0x39, - 26075 - 19968: jis0208<<14 | 0x39<<7 | 0x38, - 26079 - 19968: jis0212<<14 | 0x20<<7 | 0x4C, - 26080 - 19968: jis0208<<14 | 0x39<<7 | 0x3A, - 26081 - 19968: jis0208<<14 | 0x39<<7 | 0x3B, - 26082 - 19968: jis0208<<14 | 0x13<<7 | 0x5A, - 26085 - 19968: jis0208<<14 | 0x25<<7 | 0x5B, - 26086 - 19968: jis0208<<14 | 0x22<<7 | 0x15, - 26087 - 19968: jis0208<<14 | 0x14<<7 | 0x4B, - 26088 - 19968: jis0208<<14 | 0x1A<<7 | 0x3C, - 26089 - 19968: jis0208<<14 | 0x20<<7 | 0x40, - 26092 - 19968: jis0208<<14 | 0x1C<<7 | 0x3B, - 26093 - 19968: jis0208<<14 | 0x0F<<7 | 0x0F, - 26096 - 19968: jis0212<<14 | 0x20<<7 | 0x4D, - 26097 - 19968: jis0208<<14 | 0x39<<7 | 0x3C, - 26098 - 19968: jis0212<<14 | 0x20<<7 | 0x4E, - 26100 - 19968: jis0212<<14 | 0x20<<7 | 0x4F, - 26101 - 19968: jis0212<<14 | 0x20<<7 | 0x50, - 26105 - 19968: jis0212<<14 | 0x20<<7 | 0x51, - 26106 - 19968: jis0208<<14 | 0x11<<7 | 0x01, - 26107 - 19968: jis0208<<14 | 0x39<<7 | 0x40, - 26110 - 19968: jis0212<<14 | 0x20<<7 | 0x52, - 26111 - 19968: jis0212<<14 | 0x20<<7 | 0x53, - 26112 - 19968: jis0208<<14 | 0x59<<7 | 0x13, - 26114 - 19968: jis0208<<14 | 0x18<<7 | 0x16, - 26115 - 19968: jis0208<<14 | 0x39<<7 | 0x3F, - 26116 - 19968: jis0212<<14 | 0x20<<7 | 0x55, - 26118 - 19968: jis0208<<14 | 0x19<<7 | 0x0A, - 26119 - 19968: jis0208<<14 | 0x1D<<7 | 0x19, - 26120 - 19968: jis0212<<14 | 0x20<<7 | 0x56, - 26121 - 19968: jis0208<<14 | 0x59<<7 | 0x16, - 26122 - 19968: jis0208<<14 | 0x39<<7 | 0x3E, - 26124 - 19968: jis0208<<14 | 0x1D<<7 | 0x1A, - 26125 - 19968: jis0212<<14 | 0x20<<7 | 0x58, - 26126 - 19968: jis0208<<14 | 0x2B<<7 | 0x1F, - 26127 - 19968: jis0208<<14 | 0x19<<7 | 0x09, - 26129 - 19968: jis0212<<14 | 0x20<<7 | 0x59, - 26130 - 19968: jis0212<<14 | 0x20<<7 | 0x5A, - 26131 - 19968: jis0208<<14 | 0x0F<<7 | 0x36, - 26132 - 19968: jis0208<<14 | 0x1F<<7 | 0x2D, - 26133 - 19968: jis0208<<14 | 0x59<<7 | 0x14, - 26134 - 19968: jis0212<<14 | 0x20<<7 | 0x5C, - 26140 - 19968: jis0208<<14 | 0x39<<7 | 0x45, - 26141 - 19968: jis0212<<14 | 0x20<<7 | 0x5D, - 26142 - 19968: jis0208<<14 | 0x59<<7 | 0x18, - 26143 - 19968: jis0208<<14 | 0x1F<<7 | 0x10, - 26144 - 19968: jis0208<<14 | 0x10<<7 | 0x26, - 26145 - 19968: jis0212<<14 | 0x21<<7 | 0x01, - 26146 - 19968: jis0212<<14 | 0x21<<7 | 0x02, - 26147 - 19968: jis0212<<14 | 0x21<<7 | 0x03, - 26148 - 19968: jis0208<<14 | 0x59<<7 | 0x19, - 26149 - 19968: jis0208<<14 | 0x1C<<7 | 0x34, - 26150 - 19968: jis0212<<14 | 0x21<<7 | 0x05, - 26151 - 19968: jis0208<<14 | 0x2A<<7 | 0x45, - 26152 - 19968: jis0208<<14 | 0x19<<7 | 0x51, - 26153 - 19968: jis0212<<14 | 0x21<<7 | 0x06, - 26154 - 19968: jis0212<<14 | 0x21<<7 | 0x07, - 26155 - 19968: jis0212<<14 | 0x21<<7 | 0x08, - 26156 - 19968: jis0212<<14 | 0x21<<7 | 0x09, - 26157 - 19968: jis0208<<14 | 0x1D<<7 | 0x1B, - 26158 - 19968: jis0208<<14 | 0x59<<7 | 0x17, - 26159 - 19968: jis0208<<14 | 0x1F<<7 | 0x06, - 26160 - 19968: jis0212<<14 | 0x21<<7 | 0x0B, - 26161 - 19968: jis0208<<14 | 0x58<<7 | 0x07, - 26163 - 19968: jis0212<<14 | 0x21<<7 | 0x0D, - 26164 - 19968: jis0208<<14 | 0x39<<7 | 0x44, - 26165 - 19968: jis0208<<14 | 0x39<<7 | 0x42, - 26166 - 19968: jis0208<<14 | 0x39<<7 | 0x43, - 26167 - 19968: jis0212<<14 | 0x21<<7 | 0x0F, - 26169 - 19968: jis0212<<14 | 0x21<<7 | 0x0E, - 26171 - 19968: jis0208<<14 | 0x59<<7 | 0x15, - 26172 - 19968: jis0208<<14 | 0x22<<7 | 0x4A, - 26175 - 19968: jis0208<<14 | 0x3A<<7 | 0x05, - 26176 - 19968: jis0212<<14 | 0x21<<7 | 0x10, - 26177 - 19968: jis0208<<14 | 0x39<<7 | 0x49, - 26178 - 19968: jis0208<<14 | 0x1A<<7 | 0x5D, - 26179 - 19968: jis0208<<14 | 0x18<<7 | 0x17, - 26180 - 19968: jis0208<<14 | 0x39<<7 | 0x47, - 26181 - 19968: jis0212<<14 | 0x21<<7 | 0x11, - 26182 - 19968: jis0212<<14 | 0x21<<7 | 0x12, - 26185 - 19968: jis0208<<14 | 0x39<<7 | 0x48, - 26186 - 19968: jis0212<<14 | 0x21<<7 | 0x13, - 26187 - 19968: jis0208<<14 | 0x1E<<7 | 0x17, - 26188 - 19968: jis0212<<14 | 0x21<<7 | 0x14, - 26190 - 19968: jis0212<<14 | 0x21<<7 | 0x16, - 26191 - 19968: jis0208<<14 | 0x39<<7 | 0x46, - 26193 - 19968: jis0212<<14 | 0x21<<7 | 0x15, - 26194 - 19968: jis0208<<14 | 0x1A<<7 | 0x0E, - 26199 - 19968: jis0208<<14 | 0x59<<7 | 0x1B, - 26200 - 19968: jis0212<<14 | 0x21<<7 | 0x18, - 26201 - 19968: jis0208<<14 | 0x59<<7 | 0x1C, - 26203 - 19968: jis0212<<14 | 0x21<<7 | 0x1A, - 26204 - 19968: jis0212<<14 | 0x21<<7 | 0x1B, - 26205 - 19968: jis0208<<14 | 0x39<<7 | 0x4B, - 26206 - 19968: jis0208<<14 | 0x39<<7 | 0x4A, - 26207 - 19968: jis0208<<14 | 0x39<<7 | 0x4F, - 26208 - 19968: jis0212<<14 | 0x21<<7 | 0x1C, - 26209 - 19968: jis0212<<14 | 0x21<<7 | 0x1D, - 26210 - 19968: jis0208<<14 | 0x39<<7 | 0x50, - 26212 - 19968: jis0208<<14 | 0x39<<7 | 0x4C, - 26213 - 19968: jis0208<<14 | 0x59<<7 | 0x1A, - 26214 - 19968: jis0208<<14 | 0x12<<7 | 0x01, - 26215 - 19968: jis0208<<14 | 0x39<<7 | 0x4D, - 26216 - 19968: jis0208<<14 | 0x39<<7 | 0x4E, - 26217 - 19968: jis0208<<14 | 0x27<<7 | 0x34, - 26218 - 19968: jis0212<<14 | 0x21<<7 | 0x1F, - 26219 - 19968: jis0212<<14 | 0x21<<7 | 0x20, - 26220 - 19968: jis0212<<14 | 0x21<<7 | 0x21, - 26222 - 19968: jis0208<<14 | 0x28<<7 | 0x40, - 26223 - 19968: jis0208<<14 | 0x16<<7 | 0x29, - 26224 - 19968: jis0208<<14 | 0x39<<7 | 0x51, - 26227 - 19968: jis0208<<14 | 0x59<<7 | 0x1E, - 26228 - 19968: jis0208<<14 | 0x1F<<7 | 0x11, - 26229 - 19968: jis0212<<14 | 0x21<<7 | 0x24, - 26230 - 19968: jis0208<<14 | 0x1D<<7 | 0x1C, - 26231 - 19968: jis0212<<14 | 0x21<<7 | 0x26, - 26232 - 19968: jis0212<<14 | 0x21<<7 | 0x27, - 26233 - 19968: jis0212<<14 | 0x21<<7 | 0x28, - 26234 - 19968: jis0208<<14 | 0x22<<7 | 0x31, - 26235 - 19968: jis0212<<14 | 0x21<<7 | 0x29, - 26236 - 19968: jis0212<<14 | 0x21<<7 | 0x2B, - 26238 - 19968: jis0212<<14 | 0x21<<7 | 0x22, - 26239 - 19968: jis0212<<14 | 0x21<<7 | 0x25, - 26240 - 19968: jis0212<<14 | 0x21<<7 | 0x2A, - 26241 - 19968: jis0208<<14 | 0x15<<7 | 0x26, - 26243 - 19968: jis0208<<14 | 0x39<<7 | 0x52, - 26244 - 19968: jis0208<<14 | 0x39<<7 | 0x56, - 26247 - 19968: jis0208<<14 | 0x11<<7 | 0x2A, - 26248 - 19968: jis0208<<14 | 0x39<<7 | 0x53, - 26249 - 19968: jis0208<<14 | 0x39<<7 | 0x55, - 26251 - 19968: jis0212<<14 | 0x21<<7 | 0x2C, - 26252 - 19968: jis0212<<14 | 0x21<<7 | 0x2D, - 26253 - 19968: jis0212<<14 | 0x21<<7 | 0x2E, - 26254 - 19968: jis0208<<14 | 0x39<<7 | 0x54, - 26256 - 19968: jis0212<<14 | 0x21<<7 | 0x2F, - 26257 - 19968: jis0208<<14 | 0x1C<<7 | 0x4A, - 26258 - 19968: jis0212<<14 | 0x21<<7 | 0x30, - 26262 - 19968: jis0208<<14 | 0x22<<7 | 0x27, - 26263 - 19968: jis0208<<14 | 0x0F<<7 | 0x24, - 26264 - 19968: jis0208<<14 | 0x39<<7 | 0x57, - 26265 - 19968: jis0208<<14 | 0x59<<7 | 0x1F, - 26266 - 19968: jis0212<<14 | 0x21<<7 | 0x32, - 26267 - 19968: jis0212<<14 | 0x21<<7 | 0x33, - 26268 - 19968: jis0212<<14 | 0x21<<7 | 0x34, - 26269 - 19968: jis0208<<14 | 0x39<<7 | 0x58, - 26271 - 19968: jis0212<<14 | 0x21<<7 | 0x35, - 26272 - 19968: jis0208<<14 | 0x59<<7 | 0x20, - 26274 - 19968: jis0208<<14 | 0x23<<7 | 0x09, - 26276 - 19968: jis0212<<14 | 0x21<<7 | 0x37, - 26278 - 19968: jis0208<<14 | 0x2D<<7 | 0x50, - 26283 - 19968: jis0208<<14 | 0x1A<<7 | 0x22, - 26285 - 19968: jis0212<<14 | 0x21<<7 | 0x38, - 26286 - 19968: jis0208<<14 | 0x29<<7 | 0x4A, - 26289 - 19968: jis0212<<14 | 0x21<<7 | 0x39, - 26290 - 19968: jis0208<<14 | 0x59<<7 | 0x21, - 26292 - 19968: jis0208<<14 | 0x2A<<7 | 0x1C, - 26293 - 19968: jis0212<<14 | 0x21<<7 | 0x3B, - 26296 - 19968: jis0208<<14 | 0x3A<<7 | 0x01, - 26297 - 19968: jis0208<<14 | 0x39<<7 | 0x5A, - 26299 - 19968: jis0212<<14 | 0x21<<7 | 0x3C, - 26300 - 19968: jis0208<<14 | 0x39<<7 | 0x5D, - 26302 - 19968: jis0208<<14 | 0x39<<7 | 0x5C, - 26303 - 19968: jis0208<<14 | 0x59<<7 | 0x22, - 26304 - 19968: jis0212<<14 | 0x21<<7 | 0x3E, - 26305 - 19968: jis0208<<14 | 0x39<<7 | 0x59, - 26306 - 19968: jis0212<<14 | 0x21<<7 | 0x3F, - 26307 - 19968: jis0212<<14 | 0x21<<7 | 0x40, - 26308 - 19968: jis0208<<14 | 0x3A<<7 | 0x00, - 26311 - 19968: jis0208<<14 | 0x25<<7 | 0x3D, - 26312 - 19968: jis0212<<14 | 0x21<<7 | 0x41, - 26313 - 19968: jis0208<<14 | 0x39<<7 | 0x5B, - 26316 - 19968: jis0212<<14 | 0x21<<7 | 0x42, - 26318 - 19968: jis0212<<14 | 0x21<<7 | 0x43, - 26319 - 19968: jis0212<<14 | 0x21<<7 | 0x44, - 26324 - 19968: jis0212<<14 | 0x21<<7 | 0x45, - 26326 - 19968: jis0208<<14 | 0x3A<<7 | 0x02, - 26329 - 19968: jis0208<<14 | 0x1C<<7 | 0x4B, - 26330 - 19968: jis0208<<14 | 0x3A<<7 | 0x03, - 26331 - 19968: jis0212<<14 | 0x21<<7 | 0x46, - 26332 - 19968: jis0208<<14 | 0x2C<<7 | 0x2A, - 26333 - 19968: jis0208<<14 | 0x26<<7 | 0x57, - 26335 - 19968: jis0212<<14 | 0x21<<7 | 0x47, - 26336 - 19968: jis0208<<14 | 0x3A<<7 | 0x04, - 26342 - 19968: jis0208<<14 | 0x3A<<7 | 0x06, - 26344 - 19968: jis0212<<14 | 0x21<<7 | 0x48, - 26345 - 19968: jis0208<<14 | 0x3A<<7 | 0x07, - 26347 - 19968: jis0212<<14 | 0x21<<7 | 0x49, - 26348 - 19968: jis0212<<14 | 0x21<<7 | 0x4A, - 26350 - 19968: jis0212<<14 | 0x21<<7 | 0x4B, - 26352 - 19968: jis0208<<14 | 0x3A<<7 | 0x08, - 26354 - 19968: jis0208<<14 | 0x15<<7 | 0x29, - 26355 - 19968: jis0208<<14 | 0x10<<7 | 0x27, - 26356 - 19968: jis0208<<14 | 0x18<<7 | 0x18, - 26357 - 19968: jis0208<<14 | 0x3A<<7 | 0x09, - 26359 - 19968: jis0208<<14 | 0x3A<<7 | 0x0A, - 26360 - 19968: jis0208<<14 | 0x1C<<7 | 0x50, - 26361 - 19968: jis0208<<14 | 0x20<<7 | 0x41, - 26362 - 19968: jis0208<<14 | 0x59<<7 | 0x23, - 26363 - 19968: jis0208<<14 | 0x58<<7 | 0x0A, - 26364 - 19968: jis0208<<14 | 0x31<<7 | 0x37, - 26365 - 19968: jis0208<<14 | 0x20<<7 | 0x1D, - 26366 - 19968: jis0208<<14 | 0x20<<7 | 0x1C, - 26367 - 19968: jis0208<<14 | 0x21<<7 | 0x37, - 26368 - 19968: jis0208<<14 | 0x19<<7 | 0x26, - 26371 - 19968: jis0208<<14 | 0x2F<<7 | 0x51, - 26373 - 19968: jis0212<<14 | 0x21<<7 | 0x4D, - 26375 - 19968: jis0212<<14 | 0x21<<7 | 0x4E, - 26376 - 19968: jis0208<<14 | 0x16<<7 | 0x4D, - 26377 - 19968: jis0208<<14 | 0x2C<<7 | 0x0C, - 26379 - 19968: jis0208<<14 | 0x29<<7 | 0x5D, - 26381 - 19968: jis0208<<14 | 0x28<<7 | 0x5D, - 26382 - 19968: jis0208<<14 | 0x59<<7 | 0x24, - 26383 - 19968: jis0208<<14 | 0x3A<<7 | 0x0B, - 26387 - 19968: jis0212<<14 | 0x21<<7 | 0x50, - 26388 - 19968: jis0208<<14 | 0x19<<7 | 0x52, - 26389 - 19968: jis0208<<14 | 0x23<<7 | 0x1E, - 26390 - 19968: jis0208<<14 | 0x3A<<7 | 0x0C, - 26391 - 19968: jis0208<<14 | 0x2E<<7 | 0x0E, - 26393 - 19968: jis0212<<14 | 0x21<<7 | 0x51, - 26395 - 19968: jis0208<<14 | 0x2A<<7 | 0x1D, - 26396 - 19968: jis0212<<14 | 0x21<<7 | 0x52, - 26397 - 19968: jis0208<<14 | 0x23<<7 | 0x0A, - 26398 - 19968: jis0208<<14 | 0x3A<<7 | 0x0D, - 26399 - 19968: jis0208<<14 | 0x13<<7 | 0x5B, - 26400 - 19968: jis0212<<14 | 0x21<<7 | 0x53, - 26402 - 19968: jis0212<<14 | 0x21<<7 | 0x54, - 26406 - 19968: jis0208<<14 | 0x3A<<7 | 0x0E, - 26407 - 19968: jis0208<<14 | 0x3A<<7 | 0x0F, - 26408 - 19968: jis0208<<14 | 0x2B<<7 | 0x39, - 26410 - 19968: jis0208<<14 | 0x2B<<7 | 0x03, - 26411 - 19968: jis0208<<14 | 0x2A<<7 | 0x55, - 26412 - 19968: jis0208<<14 | 0x2A<<7 | 0x3B, - 26413 - 19968: jis0208<<14 | 0x1A<<7 | 0x04, - 26414 - 19968: jis0208<<14 | 0x3A<<7 | 0x11, - 26417 - 19968: jis0208<<14 | 0x1B<<7 | 0x4A, - 26419 - 19968: jis0212<<14 | 0x21<<7 | 0x55, - 26420 - 19968: jis0208<<14 | 0x2A<<7 | 0x30, - 26422 - 19968: jis0208<<14 | 0x3A<<7 | 0x13, - 26423 - 19968: jis0208<<14 | 0x3A<<7 | 0x16, - 26424 - 19968: jis0208<<14 | 0x3A<<7 | 0x15, - 26426 - 19968: jis0208<<14 | 0x13<<7 | 0x58, - 26429 - 19968: jis0208<<14 | 0x14<<7 | 0x3F, - 26430 - 19968: jis0212<<14 | 0x21<<7 | 0x56, - 26431 - 19968: jis0208<<14 | 0x3A<<7 | 0x12, - 26433 - 19968: jis0208<<14 | 0x3A<<7 | 0x14, - 26437 - 19968: jis0212<<14 | 0x21<<7 | 0x57, - 26438 - 19968: jis0208<<14 | 0x3A<<7 | 0x17, - 26439 - 19968: jis0212<<14 | 0x21<<7 | 0x58, - 26440 - 19968: jis0212<<14 | 0x21<<7 | 0x59, - 26441 - 19968: jis0208<<14 | 0x1E<<7 | 0x58, - 26444 - 19968: jis0212<<14 | 0x21<<7 | 0x5A, - 26446 - 19968: jis0208<<14 | 0x2C<<7 | 0x5A, - 26447 - 19968: jis0208<<14 | 0x0F<<7 | 0x28, - 26448 - 19968: jis0208<<14 | 0x19<<7 | 0x3F, - 26449 - 19968: jis0208<<14 | 0x21<<7 | 0x1B, - 26451 - 19968: jis0208<<14 | 0x1B<<7 | 0x3C, - 26452 - 19968: jis0212<<14 | 0x21<<7 | 0x5B, - 26453 - 19968: jis0212<<14 | 0x21<<7 | 0x5C, - 26454 - 19968: jis0208<<14 | 0x1D<<7 | 0x52, - 26457 - 19968: jis0208<<14 | 0x3A<<7 | 0x1A, - 26460 - 19968: jis0208<<14 | 0x24<<7 | 0x2D, - 26461 - 19968: jis0212<<14 | 0x21<<7 | 0x5D, - 26462 - 19968: jis0208<<14 | 0x3A<<7 | 0x18, - 26463 - 19968: jis0208<<14 | 0x21<<7 | 0x0A, - 26464 - 19968: jis0208<<14 | 0x3A<<7 | 0x19, - 26465 - 19968: jis0208<<14 | 0x1D<<7 | 0x51, - 26466 - 19968: jis0208<<14 | 0x2B<<7 | 0x3C, - 26467 - 19968: jis0208<<14 | 0x3A<<7 | 0x1B, - 26468 - 19968: jis0208<<14 | 0x3A<<7 | 0x1C, - 26469 - 19968: jis0208<<14 | 0x2C<<7 | 0x47, - 26470 - 19968: jis0208<<14 | 0x59<<7 | 0x26, - 26474 - 19968: jis0208<<14 | 0x3A<<7 | 0x21, - 26476 - 19968: jis0212<<14 | 0x22<<7 | 0x01, - 26477 - 19968: jis0208<<14 | 0x18<<7 | 0x19, - 26478 - 19968: jis0212<<14 | 0x22<<7 | 0x02, - 26479 - 19968: jis0208<<14 | 0x26<<7 | 0x34, - 26480 - 19968: jis0208<<14 | 0x3A<<7 | 0x1E, - 26481 - 19968: jis0208<<14 | 0x24<<7 | 0x4B, - 26482 - 19968: jis0208<<14 | 0x39<<7 | 0x3D, - 26483 - 19968: jis0208<<14 | 0x39<<7 | 0x41, - 26484 - 19968: jis0212<<14 | 0x22<<7 | 0x03, - 26485 - 19968: jis0208<<14 | 0x14<<7 | 0x2E, - 26486 - 19968: jis0212<<14 | 0x22<<7 | 0x04, - 26487 - 19968: jis0208<<14 | 0x26<<7 | 0x26, - 26491 - 19968: jis0212<<14 | 0x22<<7 | 0x05, - 26492 - 19968: jis0208<<14 | 0x3A<<7 | 0x20, - 26494 - 19968: jis0208<<14 | 0x1D<<7 | 0x1D, - 26495 - 19968: jis0208<<14 | 0x27<<7 | 0x23, - 26497 - 19968: jis0212<<14 | 0x22<<7 | 0x06, - 26500 - 19968: jis0212<<14 | 0x22<<7 | 0x07, - 26501 - 19968: jis0208<<14 | 0x3A<<7 | 0x26, - 26503 - 19968: jis0208<<14 | 0x27<<7 | 0x59, - 26505 - 19968: jis0208<<14 | 0x3A<<7 | 0x1D, - 26507 - 19968: jis0208<<14 | 0x3A<<7 | 0x23, - 26508 - 19968: jis0208<<14 | 0x3A<<7 | 0x22, - 26510 - 19968: jis0212<<14 | 0x22<<7 | 0x08, - 26511 - 19968: jis0212<<14 | 0x22<<7 | 0x09, - 26512 - 19968: jis0208<<14 | 0x1F<<7 | 0x2E, - 26513 - 19968: jis0212<<14 | 0x22<<7 | 0x0A, - 26515 - 19968: jis0212<<14 | 0x22<<7 | 0x0B, - 26517 - 19968: jis0208<<14 | 0x2A<<7 | 0x4C, - 26518 - 19968: jis0212<<14 | 0x22<<7 | 0x0C, - 26519 - 19968: jis0208<<14 | 0x2D<<7 | 0x32, - 26520 - 19968: jis0212<<14 | 0x22<<7 | 0x0D, - 26521 - 19968: jis0212<<14 | 0x22<<7 | 0x0E, - 26522 - 19968: jis0208<<14 | 0x2A<<7 | 0x46, - 26523 - 19968: jis0212<<14 | 0x22<<7 | 0x0F, - 26524 - 19968: jis0208<<14 | 0x11<<7 | 0x2B, - 26525 - 19968: jis0208<<14 | 0x1A<<7 | 0x3D, - 26528 - 19968: jis0208<<14 | 0x2E<<7 | 0x27, - 26529 - 19968: jis0208<<14 | 0x3A<<7 | 0x25, - 26530 - 19968: jis0208<<14 | 0x1E<<7 | 0x54, - 26534 - 19968: jis0208<<14 | 0x3A<<7 | 0x24, - 26537 - 19968: jis0208<<14 | 0x3A<<7 | 0x1F, - 26543 - 19968: jis0208<<14 | 0x17<<7 | 0x2E, - 26544 - 19968: jis0212<<14 | 0x22<<7 | 0x10, - 26545 - 19968: jis0212<<14 | 0x22<<7 | 0x11, - 26546 - 19968: jis0212<<14 | 0x22<<7 | 0x12, - 26547 - 19968: jis0208<<14 | 0x3A<<7 | 0x2B, - 26548 - 19968: jis0208<<14 | 0x3A<<7 | 0x29, - 26549 - 19968: jis0212<<14 | 0x22<<7 | 0x13, - 26550 - 19968: jis0208<<14 | 0x11<<7 | 0x2C, - 26551 - 19968: jis0208<<14 | 0x3A<<7 | 0x27, - 26552 - 19968: jis0208<<14 | 0x3A<<7 | 0x2D, - 26553 - 19968: jis0208<<14 | 0x3A<<7 | 0x33, - 26555 - 19968: jis0208<<14 | 0x59<<7 | 0x27, - 26556 - 19968: jis0212<<14 | 0x22<<7 | 0x15, - 26557 - 19968: jis0212<<14 | 0x22<<7 | 0x16, - 26560 - 19968: jis0208<<14 | 0x59<<7 | 0x29, - 26561 - 19968: jis0208<<14 | 0x21<<7 | 0x27, - 26562 - 19968: jis0212<<14 | 0x22<<7 | 0x19, - 26563 - 19968: jis0212<<14 | 0x22<<7 | 0x1A, - 26564 - 19968: jis0208<<14 | 0x29<<7 | 0x20, - 26565 - 19968: jis0212<<14 | 0x22<<7 | 0x1B, - 26566 - 19968: jis0208<<14 | 0x3A<<7 | 0x35, - 26568 - 19968: jis0212<<14 | 0x22<<7 | 0x1C, - 26569 - 19968: jis0212<<14 | 0x22<<7 | 0x1D, - 26570 - 19968: jis0208<<14 | 0x28<<7 | 0x01, - 26574 - 19968: jis0208<<14 | 0x3A<<7 | 0x34, - 26575 - 19968: jis0208<<14 | 0x26<<7 | 0x4F, - 26576 - 19968: jis0208<<14 | 0x2A<<7 | 0x1E, - 26577 - 19968: jis0208<<14 | 0x13<<7 | 0x1A, - 26578 - 19968: jis0212<<14 | 0x22<<7 | 0x1E, - 26579 - 19968: jis0208<<14 | 0x1F<<7 | 0x56, - 26580 - 19968: jis0208<<14 | 0x1C<<7 | 0x1F, - 26583 - 19968: jis0212<<14 | 0x22<<7 | 0x1F, - 26584 - 19968: jis0208<<14 | 0x23<<7 | 0x32, - 26585 - 19968: jis0212<<14 | 0x22<<7 | 0x20, - 26586 - 19968: jis0208<<14 | 0x2C<<7 | 0x0D, - 26588 - 19968: jis0212<<14 | 0x22<<7 | 0x21, - 26589 - 19968: jis0208<<14 | 0x3A<<7 | 0x30, - 26590 - 19968: jis0208<<14 | 0x3A<<7 | 0x2F, - 26593 - 19968: jis0212<<14 | 0x22<<7 | 0x22, - 26594 - 19968: jis0208<<14 | 0x3A<<7 | 0x31, - 26596 - 19968: jis0208<<14 | 0x3A<<7 | 0x2E, - 26598 - 19968: jis0212<<14 | 0x22<<7 | 0x23, - 26599 - 19968: jis0208<<14 | 0x3A<<7 | 0x36, - 26601 - 19968: jis0208<<14 | 0x3A<<7 | 0x2C, - 26604 - 19968: jis0208<<14 | 0x3A<<7 | 0x2A, - 26606 - 19968: jis0208<<14 | 0x3A<<7 | 0x32, - 26607 - 19968: jis0208<<14 | 0x3A<<7 | 0x28, - 26608 - 19968: jis0212<<14 | 0x22<<7 | 0x24, - 26609 - 19968: jis0208<<14 | 0x22<<7 | 0x4B, - 26610 - 19968: jis0212<<14 | 0x22<<7 | 0x25, - 26611 - 19968: jis0208<<14 | 0x2B<<7 | 0x57, - 26612 - 19968: jis0208<<14 | 0x1B<<7 | 0x25, - 26613 - 19968: jis0208<<14 | 0x19<<7 | 0x53, - 26614 - 19968: jis0212<<14 | 0x22<<7 | 0x26, - 26615 - 19968: jis0212<<14 | 0x22<<7 | 0x27, - 26617 - 19968: jis0212<<14 | 0x22<<7 | 0x17, - 26619 - 19968: jis0208<<14 | 0x19<<7 | 0x19, - 26622 - 19968: jis0208<<14 | 0x2A<<7 | 0x4E, - 26623 - 19968: jis0208<<14 | 0x12<<7 | 0x20, - 26625 - 19968: jis0208<<14 | 0x59<<7 | 0x2A, - 26626 - 19968: jis0208<<14 | 0x23<<7 | 0x2D, - 26627 - 19968: jis0208<<14 | 0x25<<7 | 0x29, - 26628 - 19968: jis0208<<14 | 0x10<<7 | 0x28, - 26643 - 19968: jis0208<<14 | 0x1F<<7 | 0x51, - 26644 - 19968: jis0212<<14 | 0x22<<7 | 0x29, - 26646 - 19968: jis0208<<14 | 0x1F<<7 | 0x13, - 26647 - 19968: jis0208<<14 | 0x16<<7 | 0x09, - 26649 - 19968: jis0212<<14 | 0x22<<7 | 0x2A, - 26653 - 19968: jis0212<<14 | 0x22<<7 | 0x2B, - 26654 - 19968: jis0208<<14 | 0x3A<<7 | 0x38, - 26655 - 19968: jis0212<<14 | 0x22<<7 | 0x2C, - 26657 - 19968: jis0208<<14 | 0x18<<7 | 0x1A, - 26658 - 19968: jis0208<<14 | 0x12<<7 | 0x5B, - 26663 - 19968: jis0212<<14 | 0x22<<7 | 0x2E, - 26664 - 19968: jis0212<<14 | 0x22<<7 | 0x2D, - 26665 - 19968: jis0208<<14 | 0x3A<<7 | 0x3A, - 26666 - 19968: jis0208<<14 | 0x12<<7 | 0x53, - 26667 - 19968: jis0208<<14 | 0x3A<<7 | 0x40, - 26668 - 19968: jis0212<<14 | 0x22<<7 | 0x2F, - 26669 - 19968: jis0212<<14 | 0x22<<7 | 0x30, - 26671 - 19968: jis0212<<14 | 0x22<<7 | 0x31, - 26672 - 19968: jis0212<<14 | 0x22<<7 | 0x32, - 26673 - 19968: jis0212<<14 | 0x22<<7 | 0x33, - 26674 - 19968: jis0208<<14 | 0x3A<<7 | 0x3D, - 26675 - 19968: jis0212<<14 | 0x22<<7 | 0x34, - 26676 - 19968: jis0208<<14 | 0x1F<<7 | 0x52, - 26680 - 19968: jis0208<<14 | 0x12<<7 | 0x2A, - 26681 - 19968: jis0208<<14 | 0x19<<7 | 0x0B, - 26683 - 19968: jis0212<<14 | 0x22<<7 | 0x35, - 26684 - 19968: jis0208<<14 | 0x12<<7 | 0x29, - 26685 - 19968: jis0208<<14 | 0x19<<7 | 0x2E, - 26687 - 19968: jis0212<<14 | 0x22<<7 | 0x36, - 26688 - 19968: jis0208<<14 | 0x3A<<7 | 0x3B, - 26689 - 19968: jis0208<<14 | 0x16<<7 | 0x44, - 26690 - 19968: jis0208<<14 | 0x16<<7 | 0x2A, - 26691 - 19968: jis0208<<14 | 0x24<<7 | 0x4C, - 26692 - 19968: jis0208<<14 | 0x59<<7 | 0x2B, - 26693 - 19968: jis0212<<14 | 0x22<<7 | 0x38, - 26694 - 19968: jis0208<<14 | 0x3A<<7 | 0x39, - 26696 - 19968: jis0208<<14 | 0x0F<<7 | 0x25, - 26698 - 19968: jis0212<<14 | 0x22<<7 | 0x39, - 26700 - 19968: jis0212<<14 | 0x22<<7 | 0x3A, - 26701 - 19968: jis0208<<14 | 0x3A<<7 | 0x3C, - 26702 - 19968: jis0208<<14 | 0x3A<<7 | 0x3E, - 26704 - 19968: jis0208<<14 | 0x15<<7 | 0x2C, - 26705 - 19968: jis0208<<14 | 0x16<<7 | 0x0B, - 26706 - 19968: jis0208<<14 | 0x59<<7 | 0x28, - 26707 - 19968: jis0208<<14 | 0x13<<7 | 0x1B, - 26708 - 19968: jis0208<<14 | 0x14<<7 | 0x2A, - 26709 - 19968: jis0212<<14 | 0x22<<7 | 0x3B, - 26711 - 19968: jis0212<<14 | 0x22<<7 | 0x3C, - 26712 - 19968: jis0212<<14 | 0x22<<7 | 0x3D, - 26713 - 19968: jis0208<<14 | 0x3A<<7 | 0x41, - 26715 - 19968: jis0212<<14 | 0x22<<7 | 0x3E, - 26716 - 19968: jis0208<<14 | 0x19<<7 | 0x58, - 26717 - 19968: jis0208<<14 | 0x2A<<7 | 0x50, - 26719 - 19968: jis0208<<14 | 0x1A<<7 | 0x16, - 26723 - 19968: jis0208<<14 | 0x3A<<7 | 0x42, - 26727 - 19968: jis0208<<14 | 0x28<<7 | 0x0F, - 26731 - 19968: jis0212<<14 | 0x22<<7 | 0x3F, - 26734 - 19968: jis0212<<14 | 0x22<<7 | 0x40, - 26735 - 19968: jis0212<<14 | 0x22<<7 | 0x41, - 26736 - 19968: jis0212<<14 | 0x22<<7 | 0x42, - 26737 - 19968: jis0212<<14 | 0x22<<7 | 0x43, - 26738 - 19968: jis0212<<14 | 0x22<<7 | 0x44, - 26740 - 19968: jis0208<<14 | 0x3A<<7 | 0x4E, - 26741 - 19968: jis0212<<14 | 0x22<<7 | 0x45, - 26742 - 19968: jis0208<<14 | 0x11<<7 | 0x12, - 26743 - 19968: jis0208<<14 | 0x3A<<7 | 0x43, - 26745 - 19968: jis0212<<14 | 0x22<<7 | 0x46, - 26746 - 19968: jis0212<<14 | 0x22<<7 | 0x47, - 26747 - 19968: jis0212<<14 | 0x22<<7 | 0x48, - 26748 - 19968: jis0212<<14 | 0x22<<7 | 0x49, - 26750 - 19968: jis0208<<14 | 0x3A<<7 | 0x54, - 26751 - 19968: jis0208<<14 | 0x3A<<7 | 0x44, - 26753 - 19968: jis0208<<14 | 0x2D<<7 | 0x21, - 26754 - 19968: jis0212<<14 | 0x22<<7 | 0x4A, - 26755 - 19968: jis0208<<14 | 0x3A<<7 | 0x4B, - 26756 - 19968: jis0212<<14 | 0x22<<7 | 0x4B, - 26757 - 19968: jis0208<<14 | 0x26<<7 | 0x3E, - 26758 - 19968: jis0212<<14 | 0x22<<7 | 0x4C, - 26760 - 19968: jis0212<<14 | 0x22<<7 | 0x4D, - 26765 - 19968: jis0208<<14 | 0x3A<<7 | 0x53, - 26767 - 19968: jis0208<<14 | 0x3A<<7 | 0x46, - 26771 - 19968: jis0208<<14 | 0x0F<<7 | 0x13, - 26772 - 19968: jis0208<<14 | 0x3A<<7 | 0x48, - 26774 - 19968: jis0212<<14 | 0x22<<7 | 0x4E, - 26775 - 19968: jis0208<<14 | 0x18<<7 | 0x1B, - 26776 - 19968: jis0212<<14 | 0x22<<7 | 0x4F, - 26778 - 19968: jis0212<<14 | 0x22<<7 | 0x50, - 26779 - 19968: jis0208<<14 | 0x3A<<7 | 0x4A, - 26780 - 19968: jis0212<<14 | 0x22<<7 | 0x51, - 26781 - 19968: jis0208<<14 | 0x3A<<7 | 0x49, - 26783 - 19968: jis0208<<14 | 0x3A<<7 | 0x45, - 26784 - 19968: jis0208<<14 | 0x3A<<7 | 0x50, - 26785 - 19968: jis0212<<14 | 0x22<<7 | 0x52, - 26786 - 19968: jis0208<<14 | 0x1D<<7 | 0x1E, - 26787 - 19968: jis0212<<14 | 0x22<<7 | 0x53, - 26789 - 19968: jis0212<<14 | 0x22<<7 | 0x54, - 26790 - 19968: jis0208<<14 | 0x33<<7 | 0x4C, - 26791 - 19968: jis0208<<14 | 0x17<<7 | 0x47, - 26792 - 19968: jis0208<<14 | 0x2C<<7 | 0x5B, - 26793 - 19968: jis0212<<14 | 0x22<<7 | 0x55, - 26794 - 19968: jis0212<<14 | 0x22<<7 | 0x56, - 26797 - 19968: jis0208<<14 | 0x3A<<7 | 0x47, - 26798 - 19968: jis0212<<14 | 0x22<<7 | 0x57, - 26799 - 19968: jis0208<<14 | 0x23<<7 | 0x53, - 26800 - 19968: jis0208<<14 | 0x12<<7 | 0x02, - 26801 - 19968: jis0208<<14 | 0x19<<7 | 0x0C, - 26802 - 19968: jis0212<<14 | 0x22<<7 | 0x58, - 26803 - 19968: jis0208<<14 | 0x3A<<7 | 0x3F, - 26805 - 19968: jis0208<<14 | 0x3A<<7 | 0x4F, - 26806 - 19968: jis0208<<14 | 0x12<<7 | 0x40, - 26809 - 19968: jis0208<<14 | 0x3A<<7 | 0x4D, - 26810 - 19968: jis0208<<14 | 0x3A<<7 | 0x51, - 26811 - 19968: jis0212<<14 | 0x22<<7 | 0x59, - 26812 - 19968: jis0208<<14 | 0x24<<7 | 0x4D, - 26820 - 19968: jis0208<<14 | 0x13<<7 | 0x5D, - 26821 - 19968: jis0212<<14 | 0x22<<7 | 0x5A, - 26822 - 19968: jis0208<<14 | 0x3B<<7 | 0x11, - 26824 - 19968: jis0208<<14 | 0x58<<7 | 0x08, - 26825 - 19968: jis0208<<14 | 0x2B<<7 | 0x28, - 26826 - 19968: jis0208<<14 | 0x3A<<7 | 0x56, - 26827 - 19968: jis0208<<14 | 0x13<<7 | 0x5C, - 26828 - 19968: jis0212<<14 | 0x22<<7 | 0x5C, - 26829 - 19968: jis0208<<14 | 0x3A<<7 | 0x5D, - 26831 - 19968: jis0208<<14 | 0x59<<7 | 0x2C, - 26832 - 19968: jis0212<<14 | 0x23<<7 | 0x00, - 26833 - 19968: jis0212<<14 | 0x23<<7 | 0x01, - 26834 - 19968: jis0208<<14 | 0x2A<<7 | 0x1F, - 26835 - 19968: jis0212<<14 | 0x23<<7 | 0x02, - 26836 - 19968: jis0208<<14 | 0x3B<<7 | 0x00, - 26837 - 19968: jis0208<<14 | 0x3B<<7 | 0x02, - 26838 - 19968: jis0212<<14 | 0x23<<7 | 0x03, - 26839 - 19968: jis0208<<14 | 0x3B<<7 | 0x06, - 26840 - 19968: jis0208<<14 | 0x3A<<7 | 0x58, - 26841 - 19968: jis0212<<14 | 0x23<<7 | 0x04, - 26842 - 19968: jis0208<<14 | 0x22<<7 | 0x09, - 26844 - 19968: jis0212<<14 | 0x23<<7 | 0x05, - 26845 - 19968: jis0212<<14 | 0x23<<7 | 0x06, - 26847 - 19968: jis0208<<14 | 0x24<<7 | 0x4E, - 26848 - 19968: jis0208<<14 | 0x3B<<7 | 0x0A, - 26849 - 19968: jis0208<<14 | 0x3A<<7 | 0x5B, - 26851 - 19968: jis0208<<14 | 0x3B<<7 | 0x07, - 26853 - 19968: jis0212<<14 | 0x23<<7 | 0x07, - 26855 - 19968: jis0208<<14 | 0x3B<<7 | 0x01, - 26856 - 19968: jis0212<<14 | 0x23<<7 | 0x08, - 26858 - 19968: jis0212<<14 | 0x23<<7 | 0x09, - 26859 - 19968: jis0212<<14 | 0x23<<7 | 0x0A, - 26860 - 19968: jis0212<<14 | 0x23<<7 | 0x0B, - 26861 - 19968: jis0212<<14 | 0x23<<7 | 0x0C, - 26862 - 19968: jis0208<<14 | 0x1E<<7 | 0x18, - 26863 - 19968: jis0208<<14 | 0x3B<<7 | 0x0B, - 26864 - 19968: jis0212<<14 | 0x23<<7 | 0x0D, - 26865 - 19968: jis0212<<14 | 0x23<<7 | 0x0E, - 26866 - 19968: jis0208<<14 | 0x1F<<7 | 0x12, - 26869 - 19968: jis0212<<14 | 0x23<<7 | 0x0F, - 26870 - 19968: jis0212<<14 | 0x23<<7 | 0x10, - 26873 - 19968: jis0208<<14 | 0x3B<<7 | 0x09, - 26874 - 19968: jis0208<<14 | 0x13<<7 | 0x1C, - 26875 - 19968: jis0212<<14 | 0x23<<7 | 0x11, - 26876 - 19968: jis0212<<14 | 0x23<<7 | 0x12, - 26877 - 19968: jis0212<<14 | 0x23<<7 | 0x13, - 26880 - 19968: jis0208<<14 | 0x2E<<7 | 0x2F, - 26881 - 19968: jis0208<<14 | 0x3A<<7 | 0x55, - 26884 - 19968: jis0208<<14 | 0x3B<<7 | 0x05, - 26885 - 19968: jis0208<<14 | 0x0F<<7 | 0x37, - 26886 - 19968: jis0212<<14 | 0x23<<7 | 0x14, - 26888 - 19968: jis0208<<14 | 0x3A<<7 | 0x57, - 26889 - 19968: jis0212<<14 | 0x23<<7 | 0x15, - 26890 - 19968: jis0212<<14 | 0x23<<7 | 0x16, - 26891 - 19968: jis0208<<14 | 0x2B<<7 | 0x19, - 26892 - 19968: jis0208<<14 | 0x3A<<7 | 0x5C, - 26893 - 19968: jis0208<<14 | 0x1E<<7 | 0x01, - 26894 - 19968: jis0208<<14 | 0x23<<7 | 0x26, - 26895 - 19968: jis0208<<14 | 0x3A<<7 | 0x52, - 26896 - 19968: jis0212<<14 | 0x23<<7 | 0x17, - 26897 - 19968: jis0212<<14 | 0x23<<7 | 0x18, - 26898 - 19968: jis0208<<14 | 0x3B<<7 | 0x04, - 26899 - 19968: jis0212<<14 | 0x23<<7 | 0x19, - 26902 - 19968: jis0212<<14 | 0x23<<7 | 0x1A, - 26903 - 19968: jis0212<<14 | 0x23<<7 | 0x1B, - 26905 - 19968: jis0208<<14 | 0x1E<<7 | 0x59, - 26906 - 19968: jis0208<<14 | 0x3B<<7 | 0x0E, - 26907 - 19968: jis0208<<14 | 0x12<<7 | 0x50, - 26908 - 19968: jis0208<<14 | 0x17<<7 | 0x00, - 26913 - 19968: jis0208<<14 | 0x3B<<7 | 0x10, - 26914 - 19968: jis0208<<14 | 0x3A<<7 | 0x59, - 26915 - 19968: jis0208<<14 | 0x3B<<7 | 0x0F, - 26917 - 19968: jis0208<<14 | 0x3B<<7 | 0x08, - 26918 - 19968: jis0208<<14 | 0x3A<<7 | 0x5A, - 26920 - 19968: jis0208<<14 | 0x3B<<7 | 0x0C, - 26922 - 19968: jis0208<<14 | 0x3B<<7 | 0x0D, - 26928 - 19968: jis0208<<14 | 0x3B<<7 | 0x1E, - 26929 - 19968: jis0212<<14 | 0x23<<7 | 0x1C, - 26931 - 19968: jis0212<<14 | 0x23<<7 | 0x1D, - 26932 - 19968: jis0208<<14 | 0x25<<7 | 0x2D, - 26933 - 19968: jis0212<<14 | 0x23<<7 | 0x1E, - 26934 - 19968: jis0208<<14 | 0x3B<<7 | 0x03, - 26936 - 19968: jis0212<<14 | 0x23<<7 | 0x1F, - 26937 - 19968: jis0208<<14 | 0x3B<<7 | 0x1A, - 26939 - 19968: jis0212<<14 | 0x23<<7 | 0x20, - 26941 - 19968: jis0208<<14 | 0x3B<<7 | 0x1C, - 26943 - 19968: jis0208<<14 | 0x23<<7 | 0x37, - 26946 - 19968: jis0212<<14 | 0x23<<7 | 0x21, - 26949 - 19968: jis0212<<14 | 0x23<<7 | 0x22, - 26953 - 19968: jis0212<<14 | 0x23<<7 | 0x23, - 26954 - 19968: jis0208<<14 | 0x2C<<7 | 0x2B, - 26958 - 19968: jis0212<<14 | 0x23<<7 | 0x24, - 26963 - 19968: jis0208<<14 | 0x28<<7 | 0x55, - 26964 - 19968: jis0208<<14 | 0x3B<<7 | 0x17, - 26965 - 19968: jis0208<<14 | 0x21<<7 | 0x29, - 26967 - 19968: jis0212<<14 | 0x23<<7 | 0x25, - 26969 - 19968: jis0208<<14 | 0x3B<<7 | 0x1D, - 26970 - 19968: jis0208<<14 | 0x20<<7 | 0x1E, - 26971 - 19968: jis0212<<14 | 0x23<<7 | 0x26, - 26972 - 19968: jis0208<<14 | 0x3B<<7 | 0x14, - 26973 - 19968: jis0208<<14 | 0x3B<<7 | 0x21, - 26974 - 19968: jis0208<<14 | 0x3B<<7 | 0x20, - 26976 - 19968: jis0208<<14 | 0x25<<7 | 0x4E, - 26977 - 19968: jis0208<<14 | 0x3B<<7 | 0x1F, - 26978 - 19968: jis0208<<14 | 0x25<<7 | 0x49, - 26979 - 19968: jis0212<<14 | 0x23<<7 | 0x27, - 26980 - 19968: jis0212<<14 | 0x23<<7 | 0x28, - 26981 - 19968: jis0212<<14 | 0x23<<7 | 0x29, - 26982 - 19968: jis0212<<14 | 0x23<<7 | 0x2A, - 26984 - 19968: jis0208<<14 | 0x59<<7 | 0x2E, - 26985 - 19968: jis0212<<14 | 0x23<<7 | 0x2C, - 26986 - 19968: jis0208<<14 | 0x3B<<7 | 0x23, - 26987 - 19968: jis0208<<14 | 0x3B<<7 | 0x16, - 26988 - 19968: jis0212<<14 | 0x23<<7 | 0x2D, - 26989 - 19968: jis0208<<14 | 0x15<<7 | 0x27, - 26990 - 19968: jis0208<<14 | 0x3B<<7 | 0x19, - 26991 - 19968: jis0208<<14 | 0x1C<<7 | 0x3C, - 26992 - 19968: jis0212<<14 | 0x23<<7 | 0x2E, - 26993 - 19968: jis0212<<14 | 0x23<<7 | 0x2F, - 26994 - 19968: jis0212<<14 | 0x23<<7 | 0x30, - 26995 - 19968: jis0208<<14 | 0x26<<7 | 0x3F, - 26996 - 19968: jis0208<<14 | 0x3B<<7 | 0x1B, - 26997 - 19968: jis0208<<14 | 0x15<<7 | 0x2A, - 26999 - 19968: jis0208<<14 | 0x3B<<7 | 0x13, - 27000 - 19968: jis0208<<14 | 0x3B<<7 | 0x15, - 27001 - 19968: jis0208<<14 | 0x3B<<7 | 0x12, - 27002 - 19968: jis0212<<14 | 0x23<<7 | 0x31, - 27003 - 19968: jis0212<<14 | 0x23<<7 | 0x32, - 27004 - 19968: jis0208<<14 | 0x2E<<7 | 0x0F, - 27005 - 19968: jis0208<<14 | 0x12<<7 | 0x39, - 27006 - 19968: jis0208<<14 | 0x3B<<7 | 0x18, - 27007 - 19968: jis0212<<14 | 0x23<<7 | 0x33, - 27008 - 19968: jis0212<<14 | 0x23<<7 | 0x34, - 27009 - 19968: jis0208<<14 | 0x3B<<7 | 0x22, - 27010 - 19968: jis0208<<14 | 0x12<<7 | 0x14, - 27018 - 19968: jis0208<<14 | 0x19<<7 | 0x46, - 27021 - 19968: jis0212<<14 | 0x23<<7 | 0x35, - 27022 - 19968: jis0208<<14 | 0x10<<7 | 0x3C, - 27025 - 19968: jis0208<<14 | 0x3B<<7 | 0x33, - 27026 - 19968: jis0212<<14 | 0x23<<7 | 0x36, - 27028 - 19968: jis0208<<14 | 0x2E<<7 | 0x10, - 27029 - 19968: jis0208<<14 | 0x3B<<7 | 0x36, - 27030 - 19968: jis0212<<14 | 0x23<<7 | 0x37, - 27032 - 19968: jis0208<<14 | 0x59<<7 | 0x30, - 27035 - 19968: jis0208<<14 | 0x1E<<7 | 0x19, - 27036 - 19968: jis0208<<14 | 0x3B<<7 | 0x35, - 27040 - 19968: jis0208<<14 | 0x3B<<7 | 0x34, - 27041 - 19968: jis0212<<14 | 0x23<<7 | 0x39, - 27045 - 19968: jis0212<<14 | 0x23<<7 | 0x3A, - 27046 - 19968: jis0212<<14 | 0x23<<7 | 0x3B, - 27047 - 19968: jis0208<<14 | 0x3B<<7 | 0x31, - 27048 - 19968: jis0212<<14 | 0x23<<7 | 0x3C, - 27051 - 19968: jis0212<<14 | 0x23<<7 | 0x3D, - 27053 - 19968: jis0212<<14 | 0x23<<7 | 0x3E, - 27054 - 19968: jis0208<<14 | 0x3B<<7 | 0x25, - 27055 - 19968: jis0212<<14 | 0x23<<7 | 0x3F, - 27057 - 19968: jis0208<<14 | 0x3B<<7 | 0x42, - 27058 - 19968: jis0208<<14 | 0x3B<<7 | 0x24, - 27060 - 19968: jis0208<<14 | 0x3B<<7 | 0x37, - 27063 - 19968: jis0212<<14 | 0x23<<7 | 0x40, - 27064 - 19968: jis0212<<14 | 0x23<<7 | 0x41, - 27066 - 19968: jis0212<<14 | 0x23<<7 | 0x42, - 27067 - 19968: jis0208<<14 | 0x3B<<7 | 0x2F, - 27068 - 19968: jis0212<<14 | 0x23<<7 | 0x43, - 27070 - 19968: jis0208<<14 | 0x3B<<7 | 0x2A, - 27071 - 19968: jis0208<<14 | 0x3B<<7 | 0x27, - 27073 - 19968: jis0208<<14 | 0x3B<<7 | 0x28, - 27075 - 19968: jis0208<<14 | 0x3B<<7 | 0x30, - 27077 - 19968: jis0212<<14 | 0x23<<7 | 0x44, - 27079 - 19968: jis0208<<14 | 0x53<<7 | 0x01, - 27080 - 19968: jis0212<<14 | 0x23<<7 | 0x45, - 27082 - 19968: jis0208<<14 | 0x3B<<7 | 0x2D, - 27083 - 19968: jis0208<<14 | 0x18<<7 | 0x1C, - 27084 - 19968: jis0208<<14 | 0x23<<7 | 0x27, - 27085 - 19968: jis0208<<14 | 0x20<<7 | 0x43, - 27086 - 19968: jis0208<<14 | 0x3B<<7 | 0x2B, - 27088 - 19968: jis0208<<14 | 0x3B<<7 | 0x26, - 27089 - 19968: jis0212<<14 | 0x23<<7 | 0x46, - 27091 - 19968: jis0208<<14 | 0x3B<<7 | 0x29, - 27094 - 19968: jis0212<<14 | 0x23<<7 | 0x47, - 27095 - 19968: jis0212<<14 | 0x23<<7 | 0x48, - 27096 - 19968: jis0208<<14 | 0x2C<<7 | 0x2C, - 27097 - 19968: jis0208<<14 | 0x2A<<7 | 0x49, - 27101 - 19968: jis0208<<14 | 0x3B<<7 | 0x2E, - 27102 - 19968: jis0208<<14 | 0x3B<<7 | 0x38, - 27106 - 19968: jis0208<<14 | 0x59<<7 | 0x31, - 27109 - 19968: jis0212<<14 | 0x23<<7 | 0x4A, - 27111 - 19968: jis0208<<14 | 0x3B<<7 | 0x40, - 27112 - 19968: jis0208<<14 | 0x3B<<7 | 0x39, - 27115 - 19968: jis0208<<14 | 0x3B<<7 | 0x46, - 27117 - 19968: jis0208<<14 | 0x3B<<7 | 0x44, - 27118 - 19968: jis0212<<14 | 0x23<<7 | 0x4B, - 27119 - 19968: jis0212<<14 | 0x23<<7 | 0x4C, - 27121 - 19968: jis0212<<14 | 0x23<<7 | 0x4D, - 27122 - 19968: jis0208<<14 | 0x3B<<7 | 0x3F, - 27123 - 19968: jis0212<<14 | 0x23<<7 | 0x4E, - 27125 - 19968: jis0212<<14 | 0x23<<7 | 0x4F, - 27129 - 19968: jis0208<<14 | 0x3B<<7 | 0x3E, - 27131 - 19968: jis0208<<14 | 0x23<<7 | 0x2F, - 27133 - 19968: jis0208<<14 | 0x20<<7 | 0x44, - 27134 - 19968: jis0212<<14 | 0x23<<7 | 0x50, - 27135 - 19968: jis0208<<14 | 0x3B<<7 | 0x3C, - 27136 - 19968: jis0212<<14 | 0x23<<7 | 0x51, - 27137 - 19968: jis0212<<14 | 0x23<<7 | 0x52, - 27138 - 19968: jis0208<<14 | 0x3B<<7 | 0x3A, - 27139 - 19968: jis0212<<14 | 0x23<<7 | 0x53, - 27141 - 19968: jis0208<<14 | 0x3B<<7 | 0x41, - 27146 - 19968: jis0208<<14 | 0x3B<<7 | 0x47, - 27147 - 19968: jis0208<<14 | 0x27<<7 | 0x54, - 27148 - 19968: jis0208<<14 | 0x3B<<7 | 0x4D, - 27151 - 19968: jis0212<<14 | 0x23<<7 | 0x54, - 27153 - 19968: jis0212<<14 | 0x23<<7 | 0x55, - 27154 - 19968: jis0208<<14 | 0x3B<<7 | 0x48, - 27155 - 19968: jis0208<<14 | 0x3B<<7 | 0x4B, - 27156 - 19968: jis0208<<14 | 0x3B<<7 | 0x45, - 27157 - 19968: jis0212<<14 | 0x23<<7 | 0x56, - 27159 - 19968: jis0208<<14 | 0x22<<7 | 0x53, - 27161 - 19968: jis0208<<14 | 0x28<<7 | 0x17, - 27162 - 19968: jis0212<<14 | 0x23<<7 | 0x57, - 27163 - 19968: jis0208<<14 | 0x3B<<7 | 0x3B, - 27165 - 19968: jis0212<<14 | 0x23<<7 | 0x58, - 27166 - 19968: jis0208<<14 | 0x3B<<7 | 0x43, - 27167 - 19968: jis0208<<14 | 0x1D<<7 | 0x1F, - 27168 - 19968: jis0212<<14 | 0x23<<7 | 0x59, - 27169 - 19968: jis0208<<14 | 0x2B<<7 | 0x2E, - 27170 - 19968: jis0208<<14 | 0x3B<<7 | 0x57, - 27171 - 19968: jis0208<<14 | 0x3B<<7 | 0x4A, - 27172 - 19968: jis0212<<14 | 0x23<<7 | 0x5A, - 27176 - 19968: jis0212<<14 | 0x23<<7 | 0x5B, - 27177 - 19968: jis0208<<14 | 0x17<<7 | 0x01, - 27178 - 19968: jis0208<<14 | 0x11<<7 | 0x02, - 27179 - 19968: jis0208<<14 | 0x12<<7 | 0x3E, - 27182 - 19968: jis0208<<14 | 0x3B<<7 | 0x32, - 27184 - 19968: jis0208<<14 | 0x59<<7 | 0x32, - 27186 - 19968: jis0212<<14 | 0x23<<7 | 0x5D, - 27188 - 19968: jis0212<<14 | 0x24<<7 | 0x00, - 27189 - 19968: jis0208<<14 | 0x1D<<7 | 0x20, - 27190 - 19968: jis0208<<14 | 0x3B<<7 | 0x4F, - 27191 - 19968: jis0212<<14 | 0x24<<7 | 0x01, - 27192 - 19968: jis0208<<14 | 0x3B<<7 | 0x56, - 27193 - 19968: jis0208<<14 | 0x1B<<7 | 0x58, - 27194 - 19968: jis0208<<14 | 0x12<<7 | 0x51, - 27195 - 19968: jis0212<<14 | 0x24<<7 | 0x02, - 27197 - 19968: jis0208<<14 | 0x22<<7 | 0x0D, - 27198 - 19968: jis0212<<14 | 0x24<<7 | 0x03, - 27199 - 19968: jis0212<<14 | 0x24<<7 | 0x04, - 27204 - 19968: jis0208<<14 | 0x3B<<7 | 0x4C, - 27205 - 19968: jis0212<<14 | 0x24<<7 | 0x05, - 27206 - 19968: jis0208<<14 | 0x59<<7 | 0x34, - 27207 - 19968: jis0208<<14 | 0x3B<<7 | 0x51, - 27208 - 19968: jis0208<<14 | 0x3B<<7 | 0x55, - 27209 - 19968: jis0212<<14 | 0x24<<7 | 0x07, - 27210 - 19968: jis0212<<14 | 0x24<<7 | 0x08, - 27211 - 19968: jis0208<<14 | 0x15<<7 | 0x15, - 27214 - 19968: jis0212<<14 | 0x24<<7 | 0x09, - 27216 - 19968: jis0212<<14 | 0x24<<7 | 0x0A, - 27217 - 19968: jis0212<<14 | 0x24<<7 | 0x0B, - 27218 - 19968: jis0212<<14 | 0x24<<7 | 0x0C, - 27221 - 19968: jis0212<<14 | 0x24<<7 | 0x0D, - 27222 - 19968: jis0212<<14 | 0x24<<7 | 0x0E, - 27224 - 19968: jis0208<<14 | 0x14<<7 | 0x2B, - 27225 - 19968: jis0208<<14 | 0x3B<<7 | 0x53, - 27227 - 19968: jis0212<<14 | 0x24<<7 | 0x0F, - 27231 - 19968: jis0208<<14 | 0x14<<7 | 0x00, - 27233 - 19968: jis0208<<14 | 0x25<<7 | 0x2A, - 27234 - 19968: jis0208<<14 | 0x3B<<7 | 0x52, - 27236 - 19968: jis0212<<14 | 0x24<<7 | 0x10, - 27238 - 19968: jis0208<<14 | 0x3B<<7 | 0x54, - 27239 - 19968: jis0212<<14 | 0x24<<7 | 0x11, - 27242 - 19968: jis0212<<14 | 0x24<<7 | 0x12, - 27243 - 19968: jis0208<<14 | 0x59<<7 | 0x33, - 27249 - 19968: jis0212<<14 | 0x24<<7 | 0x13, - 27250 - 19968: jis0208<<14 | 0x3B<<7 | 0x4E, - 27251 - 19968: jis0208<<14 | 0x59<<7 | 0x35, - 27256 - 19968: jis0208<<14 | 0x3B<<7 | 0x50, - 27262 - 19968: jis0208<<14 | 0x59<<7 | 0x36, - 27263 - 19968: jis0208<<14 | 0x12<<7 | 0x3F, - 27264 - 19968: jis0208<<14 | 0x22<<7 | 0x28, - 27265 - 19968: jis0212<<14 | 0x24<<7 | 0x16, - 27267 - 19968: jis0212<<14 | 0x24<<7 | 0x17, - 27268 - 19968: jis0208<<14 | 0x3B<<7 | 0x5B, - 27270 - 19968: jis0212<<14 | 0x24<<7 | 0x18, - 27271 - 19968: jis0212<<14 | 0x24<<7 | 0x19, - 27273 - 19968: jis0212<<14 | 0x24<<7 | 0x1A, - 27275 - 19968: jis0212<<14 | 0x24<<7 | 0x1B, - 27277 - 19968: jis0208<<14 | 0x3B<<7 | 0x59, - 27278 - 19968: jis0208<<14 | 0x17<<7 | 0x48, - 27280 - 19968: jis0208<<14 | 0x3B<<7 | 0x58, - 27281 - 19968: jis0212<<14 | 0x24<<7 | 0x1C, - 27287 - 19968: jis0208<<14 | 0x3C<<7 | 0x00, - 27291 - 19968: jis0212<<14 | 0x24<<7 | 0x1D, - 27292 - 19968: jis0208<<14 | 0x3A<<7 | 0x37, - 27293 - 19968: jis0212<<14 | 0x24<<7 | 0x1E, - 27294 - 19968: jis0212<<14 | 0x24<<7 | 0x1F, - 27295 - 19968: jis0212<<14 | 0x24<<7 | 0x20, - 27296 - 19968: jis0208<<14 | 0x3B<<7 | 0x5A, - 27298 - 19968: jis0208<<14 | 0x3B<<7 | 0x5C, - 27299 - 19968: jis0208<<14 | 0x3B<<7 | 0x5D, - 27301 - 19968: jis0212<<14 | 0x24<<7 | 0x21, - 27306 - 19968: jis0208<<14 | 0x3C<<7 | 0x0B, - 27307 - 19968: jis0212<<14 | 0x24<<7 | 0x22, - 27308 - 19968: jis0208<<14 | 0x3C<<7 | 0x07, - 27310 - 19968: jis0208<<14 | 0x3A<<7 | 0x4C, - 27311 - 19968: jis0212<<14 | 0x24<<7 | 0x23, - 27312 - 19968: jis0212<<14 | 0x24<<7 | 0x24, - 27313 - 19968: jis0212<<14 | 0x24<<7 | 0x25, - 27315 - 19968: jis0208<<14 | 0x3C<<7 | 0x06, - 27316 - 19968: jis0212<<14 | 0x24<<7 | 0x26, - 27320 - 19968: jis0208<<14 | 0x3C<<7 | 0x05, - 27323 - 19968: jis0208<<14 | 0x3C<<7 | 0x02, - 27325 - 19968: jis0212<<14 | 0x24<<7 | 0x27, - 27326 - 19968: jis0212<<14 | 0x24<<7 | 0x28, - 27327 - 19968: jis0212<<14 | 0x24<<7 | 0x29, - 27329 - 19968: jis0208<<14 | 0x3B<<7 | 0x49, - 27330 - 19968: jis0208<<14 | 0x3C<<7 | 0x04, - 27331 - 19968: jis0208<<14 | 0x3C<<7 | 0x03, - 27334 - 19968: jis0212<<14 | 0x24<<7 | 0x2A, - 27336 - 19968: jis0212<<14 | 0x24<<7 | 0x2C, - 27337 - 19968: jis0212<<14 | 0x24<<7 | 0x2B, - 27340 - 19968: jis0212<<14 | 0x24<<7 | 0x2D, - 27344 - 19968: jis0212<<14 | 0x24<<7 | 0x2E, - 27345 - 19968: jis0208<<14 | 0x3C<<7 | 0x09, - 27347 - 19968: jis0208<<14 | 0x2E<<7 | 0x05, - 27348 - 19968: jis0212<<14 | 0x24<<7 | 0x2F, - 27349 - 19968: jis0212<<14 | 0x24<<7 | 0x30, - 27350 - 19968: jis0212<<14 | 0x24<<7 | 0x31, - 27354 - 19968: jis0208<<14 | 0x3C<<7 | 0x0C, - 27355 - 19968: jis0208<<14 | 0x15<<7 | 0x5A, - 27356 - 19968: jis0212<<14 | 0x24<<7 | 0x32, - 27357 - 19968: jis0212<<14 | 0x24<<7 | 0x33, - 27358 - 19968: jis0208<<14 | 0x3C<<7 | 0x08, - 27359 - 19968: jis0208<<14 | 0x3C<<7 | 0x0A, - 27362 - 19968: jis0208<<14 | 0x59<<7 | 0x37, - 27364 - 19968: jis0208<<14 | 0x59<<7 | 0x38, - 27367 - 19968: jis0212<<14 | 0x24<<7 | 0x35, - 27368 - 19968: jis0208<<14 | 0x27<<7 | 0x06, - 27370 - 19968: jis0208<<14 | 0x3C<<7 | 0x0D, - 27372 - 19968: jis0212<<14 | 0x24<<7 | 0x36, - 27376 - 19968: jis0212<<14 | 0x24<<7 | 0x37, - 27377 - 19968: jis0212<<14 | 0x24<<7 | 0x38, - 27378 - 19968: jis0212<<14 | 0x24<<7 | 0x39, - 27386 - 19968: jis0208<<14 | 0x3C<<7 | 0x11, - 27387 - 19968: jis0208<<14 | 0x3C<<7 | 0x0E, - 27388 - 19968: jis0212<<14 | 0x24<<7 | 0x3A, - 27389 - 19968: jis0212<<14 | 0x24<<7 | 0x3B, - 27394 - 19968: jis0212<<14 | 0x24<<7 | 0x3C, - 27395 - 19968: jis0212<<14 | 0x24<<7 | 0x3D, - 27396 - 19968: jis0208<<14 | 0x2C<<7 | 0x52, - 27397 - 19968: jis0208<<14 | 0x3C<<7 | 0x0F, - 27398 - 19968: jis0212<<14 | 0x24<<7 | 0x3E, - 27399 - 19968: jis0212<<14 | 0x24<<7 | 0x3F, - 27401 - 19968: jis0212<<14 | 0x24<<7 | 0x40, - 27402 - 19968: jis0208<<14 | 0x3B<<7 | 0x3D, - 27407 - 19968: jis0212<<14 | 0x24<<7 | 0x41, - 27408 - 19968: jis0212<<14 | 0x24<<7 | 0x42, - 27409 - 19968: jis0212<<14 | 0x24<<7 | 0x43, - 27410 - 19968: jis0208<<14 | 0x3C<<7 | 0x12, - 27414 - 19968: jis0208<<14 | 0x3C<<7 | 0x13, - 27415 - 19968: jis0212<<14 | 0x24<<7 | 0x44, - 27419 - 19968: jis0212<<14 | 0x24<<7 | 0x45, - 27421 - 19968: jis0208<<14 | 0x10<<7 | 0x14, - 27422 - 19968: jis0212<<14 | 0x24<<7 | 0x46, - 27423 - 19968: jis0208<<14 | 0x3C<<7 | 0x15, - 27424 - 19968: jis0208<<14 | 0x16<<7 | 0x46, - 27425 - 19968: jis0208<<14 | 0x1B<<7 | 0x00, - 27427 - 19968: jis0208<<14 | 0x15<<7 | 0x34, - 27428 - 19968: jis0212<<14 | 0x24<<7 | 0x47, - 27431 - 19968: jis0208<<14 | 0x11<<7 | 0x03, - 27432 - 19968: jis0212<<14 | 0x24<<7 | 0x48, - 27435 - 19968: jis0212<<14 | 0x24<<7 | 0x49, - 27436 - 19968: jis0212<<14 | 0x24<<7 | 0x4A, - 27439 - 19968: jis0212<<14 | 0x24<<7 | 0x4B, - 27442 - 19968: jis0208<<14 | 0x2C<<7 | 0x3E, - 27445 - 19968: jis0212<<14 | 0x24<<7 | 0x4C, - 27446 - 19968: jis0212<<14 | 0x24<<7 | 0x4D, - 27447 - 19968: jis0208<<14 | 0x3C<<7 | 0x17, - 27448 - 19968: jis0208<<14 | 0x3C<<7 | 0x16, - 27449 - 19968: jis0208<<14 | 0x3C<<7 | 0x19, - 27450 - 19968: jis0208<<14 | 0x14<<7 | 0x1C, - 27451 - 19968: jis0212<<14 | 0x24<<7 | 0x4E, - 27453 - 19968: jis0208<<14 | 0x15<<7 | 0x35, - 27454 - 19968: jis0208<<14 | 0x13<<7 | 0x1D, - 27455 - 19968: jis0212<<14 | 0x24<<7 | 0x4F, - 27459 - 19968: jis0208<<14 | 0x3C<<7 | 0x1C, - 27462 - 19968: jis0212<<14 | 0x24<<7 | 0x50, - 27463 - 19968: jis0208<<14 | 0x3C<<7 | 0x1B, - 27465 - 19968: jis0208<<14 | 0x3C<<7 | 0x1D, - 27466 - 19968: jis0212<<14 | 0x24<<7 | 0x51, - 27468 - 19968: jis0208<<14 | 0x11<<7 | 0x2D, - 27469 - 19968: jis0212<<14 | 0x24<<7 | 0x52, - 27470 - 19968: jis0208<<14 | 0x22<<7 | 0x16, - 27472 - 19968: jis0208<<14 | 0x3C<<7 | 0x1E, - 27474 - 19968: jis0212<<14 | 0x24<<7 | 0x53, - 27475 - 19968: jis0208<<14 | 0x13<<7 | 0x1E, - 27476 - 19968: jis0208<<14 | 0x3C<<7 | 0x20, - 27478 - 19968: jis0212<<14 | 0x24<<7 | 0x54, - 27480 - 19968: jis0212<<14 | 0x24<<7 | 0x55, - 27481 - 19968: jis0208<<14 | 0x3C<<7 | 0x1F, - 27483 - 19968: jis0208<<14 | 0x3C<<7 | 0x21, - 27485 - 19968: jis0212<<14 | 0x24<<7 | 0x56, - 27487 - 19968: jis0208<<14 | 0x3C<<7 | 0x22, - 27488 - 19968: jis0212<<14 | 0x24<<7 | 0x57, - 27489 - 19968: jis0208<<14 | 0x3C<<7 | 0x23, - 27490 - 19968: jis0208<<14 | 0x1A<<7 | 0x3E, - 27491 - 19968: jis0208<<14 | 0x1F<<7 | 0x14, - 27492 - 19968: jis0208<<14 | 0x19<<7 | 0x00, - 27494 - 19968: jis0208<<14 | 0x28<<7 | 0x4F, - 27495 - 19968: jis0212<<14 | 0x24<<7 | 0x58, - 27497 - 19968: jis0208<<14 | 0x29<<7 | 0x41, - 27498 - 19968: jis0208<<14 | 0x2E<<7 | 0x23, - 27499 - 19968: jis0212<<14 | 0x24<<7 | 0x59, - 27502 - 19968: jis0212<<14 | 0x24<<7 | 0x5A, - 27503 - 19968: jis0208<<14 | 0x1A<<7 | 0x54, - 27504 - 19968: jis0212<<14 | 0x24<<7 | 0x5B, - 27507 - 19968: jis0208<<14 | 0x19<<7 | 0x2F, - 27508 - 19968: jis0208<<14 | 0x2D<<7 | 0x51, - 27509 - 19968: jis0212<<14 | 0x24<<7 | 0x5C, - 27512 - 19968: jis0208<<14 | 0x3C<<7 | 0x24, - 27513 - 19968: jis0208<<14 | 0x3C<<7 | 0x25, - 27515 - 19968: jis0208<<14 | 0x1A<<7 | 0x3F, - 27517 - 19968: jis0212<<14 | 0x24<<7 | 0x5D, - 27518 - 19968: jis0212<<14 | 0x25<<7 | 0x00, - 27519 - 19968: jis0208<<14 | 0x3C<<7 | 0x26, - 27520 - 19968: jis0208<<14 | 0x3C<<7 | 0x27, - 27522 - 19968: jis0212<<14 | 0x25<<7 | 0x01, - 27523 - 19968: jis0208<<14 | 0x3C<<7 | 0x29, - 27524 - 19968: jis0208<<14 | 0x3C<<7 | 0x28, - 27525 - 19968: jis0212<<14 | 0x25<<7 | 0x02, - 27526 - 19968: jis0208<<14 | 0x2A<<7 | 0x37, - 27529 - 19968: jis0208<<14 | 0x1C<<7 | 0x3D, - 27530 - 19968: jis0208<<14 | 0x1B<<7 | 0x4B, - 27531 - 19968: jis0208<<14 | 0x1A<<7 | 0x23, - 27533 - 19968: jis0208<<14 | 0x3C<<7 | 0x2A, - 27541 - 19968: jis0208<<14 | 0x3C<<7 | 0x2C, - 27542 - 19968: jis0208<<14 | 0x1E<<7 | 0x02, - 27543 - 19968: jis0212<<14 | 0x25<<7 | 0x03, - 27544 - 19968: jis0208<<14 | 0x3C<<7 | 0x2B, - 27547 - 19968: jis0212<<14 | 0x25<<7 | 0x04, - 27550 - 19968: jis0208<<14 | 0x3C<<7 | 0x2D, - 27551 - 19968: jis0212<<14 | 0x25<<7 | 0x05, - 27552 - 19968: jis0212<<14 | 0x25<<7 | 0x06, - 27554 - 19968: jis0212<<14 | 0x25<<7 | 0x07, - 27555 - 19968: jis0212<<14 | 0x25<<7 | 0x08, - 27556 - 19968: jis0208<<14 | 0x3C<<7 | 0x2E, - 27560 - 19968: jis0212<<14 | 0x25<<7 | 0x09, - 27561 - 19968: jis0212<<14 | 0x25<<7 | 0x0A, - 27562 - 19968: jis0208<<14 | 0x3C<<7 | 0x2F, - 27563 - 19968: jis0208<<14 | 0x3C<<7 | 0x30, - 27564 - 19968: jis0212<<14 | 0x25<<7 | 0x0B, - 27565 - 19968: jis0212<<14 | 0x25<<7 | 0x0C, - 27566 - 19968: jis0212<<14 | 0x25<<7 | 0x0D, - 27567 - 19968: jis0208<<14 | 0x3C<<7 | 0x31, - 27568 - 19968: jis0212<<14 | 0x25<<7 | 0x0E, - 27569 - 19968: jis0208<<14 | 0x3C<<7 | 0x33, - 27570 - 19968: jis0208<<14 | 0x3C<<7 | 0x32, - 27571 - 19968: jis0208<<14 | 0x3C<<7 | 0x34, - 27572 - 19968: jis0208<<14 | 0x11<<7 | 0x04, - 27573 - 19968: jis0208<<14 | 0x22<<7 | 0x29, - 27575 - 19968: jis0208<<14 | 0x3C<<7 | 0x35, - 27576 - 19968: jis0212<<14 | 0x25<<7 | 0x0F, - 27577 - 19968: jis0212<<14 | 0x25<<7 | 0x10, - 27578 - 19968: jis0208<<14 | 0x1A<<7 | 0x05, - 27579 - 19968: jis0208<<14 | 0x12<<7 | 0x2B, - 27580 - 19968: jis0208<<14 | 0x3C<<7 | 0x36, - 27581 - 19968: jis0212<<14 | 0x25<<7 | 0x11, - 27582 - 19968: jis0212<<14 | 0x25<<7 | 0x12, - 27583 - 19968: jis0208<<14 | 0x24<<7 | 0x21, - 27584 - 19968: jis0208<<14 | 0x33<<7 | 0x2B, - 27587 - 19968: jis0212<<14 | 0x25<<7 | 0x13, - 27588 - 19968: jis0212<<14 | 0x25<<7 | 0x14, - 27589 - 19968: jis0208<<14 | 0x14<<7 | 0x02, - 27590 - 19968: jis0208<<14 | 0x3C<<7 | 0x37, - 27593 - 19968: jis0212<<14 | 0x25<<7 | 0x15, - 27595 - 19968: jis0208<<14 | 0x3C<<7 | 0x38, - 27596 - 19968: jis0212<<14 | 0x25<<7 | 0x16, - 27597 - 19968: jis0208<<14 | 0x29<<7 | 0x4B, - 27598 - 19968: jis0208<<14 | 0x2A<<7 | 0x47, - 27602 - 19968: jis0208<<14 | 0x25<<7 | 0x26, - 27603 - 19968: jis0208<<14 | 0x3C<<7 | 0x39, - 27604 - 19968: jis0208<<14 | 0x27<<7 | 0x45, - 27606 - 19968: jis0208<<14 | 0x59<<7 | 0x39, - 27608 - 19968: jis0208<<14 | 0x27<<7 | 0x5A, - 27610 - 19968: jis0212<<14 | 0x25<<7 | 0x18, - 27611 - 19968: jis0208<<14 | 0x2B<<7 | 0x32, - 27615 - 19968: jis0208<<14 | 0x3C<<7 | 0x3A, - 27617 - 19968: jis0212<<14 | 0x25<<7 | 0x19, - 27619 - 19968: jis0212<<14 | 0x25<<7 | 0x1A, - 27622 - 19968: jis0212<<14 | 0x25<<7 | 0x1B, - 27623 - 19968: jis0212<<14 | 0x25<<7 | 0x1C, - 27627 - 19968: jis0208<<14 | 0x3C<<7 | 0x3C, - 27628 - 19968: jis0208<<14 | 0x3C<<7 | 0x3B, - 27630 - 19968: jis0212<<14 | 0x25<<7 | 0x1D, - 27631 - 19968: jis0208<<14 | 0x3C<<7 | 0x3E, - 27633 - 19968: jis0212<<14 | 0x25<<7 | 0x1E, - 27635 - 19968: jis0208<<14 | 0x3C<<7 | 0x3D, - 27639 - 19968: jis0212<<14 | 0x25<<7 | 0x1F, - 27641 - 19968: jis0212<<14 | 0x25<<7 | 0x20, - 27647 - 19968: jis0212<<14 | 0x25<<7 | 0x21, - 27650 - 19968: jis0212<<14 | 0x25<<7 | 0x22, - 27652 - 19968: jis0212<<14 | 0x25<<7 | 0x23, - 27653 - 19968: jis0212<<14 | 0x25<<7 | 0x24, - 27656 - 19968: jis0208<<14 | 0x3C<<7 | 0x40, - 27657 - 19968: jis0212<<14 | 0x25<<7 | 0x25, - 27661 - 19968: jis0212<<14 | 0x25<<7 | 0x26, - 27662 - 19968: jis0212<<14 | 0x25<<7 | 0x27, - 27663 - 19968: jis0208<<14 | 0x1A<<7 | 0x40, - 27664 - 19968: jis0212<<14 | 0x25<<7 | 0x28, - 27665 - 19968: jis0208<<14 | 0x2B<<7 | 0x10, - 27666 - 19968: jis0212<<14 | 0x25<<7 | 0x29, - 27667 - 19968: jis0208<<14 | 0x3C<<7 | 0x41, - 27668 - 19968: jis0208<<14 | 0x3C<<7 | 0x42, - 27671 - 19968: jis0208<<14 | 0x14<<7 | 0x03, - 27673 - 19968: jis0212<<14 | 0x25<<7 | 0x2A, - 27675 - 19968: jis0208<<14 | 0x3C<<7 | 0x43, - 27679 - 19968: jis0212<<14 | 0x25<<7 | 0x2B, - 27683 - 19968: jis0208<<14 | 0x3C<<7 | 0x45, - 27684 - 19968: jis0208<<14 | 0x3C<<7 | 0x44, - 27686 - 19968: jis0212<<14 | 0x25<<7 | 0x2C, - 27687 - 19968: jis0212<<14 | 0x25<<7 | 0x2D, - 27688 - 19968: jis0212<<14 | 0x25<<7 | 0x2E, - 27692 - 19968: jis0212<<14 | 0x25<<7 | 0x2F, - 27694 - 19968: jis0212<<14 | 0x25<<7 | 0x30, - 27699 - 19968: jis0212<<14 | 0x25<<7 | 0x31, - 27700 - 19968: jis0208<<14 | 0x1E<<7 | 0x44, - 27701 - 19968: jis0212<<14 | 0x25<<7 | 0x32, - 27702 - 19968: jis0212<<14 | 0x25<<7 | 0x33, - 27703 - 19968: jis0208<<14 | 0x28<<7 | 0x18, - 27704 - 19968: jis0208<<14 | 0x10<<7 | 0x29, - 27706 - 19968: jis0212<<14 | 0x25<<7 | 0x34, - 27707 - 19968: jis0212<<14 | 0x25<<7 | 0x35, - 27710 - 19968: jis0208<<14 | 0x27<<7 | 0x24, - 27711 - 19968: jis0208<<14 | 0x59<<7 | 0x3A, - 27712 - 19968: jis0208<<14 | 0x23<<7 | 0x54, - 27713 - 19968: jis0208<<14 | 0x1C<<7 | 0x20, - 27714 - 19968: jis0208<<14 | 0x14<<7 | 0x40, - 27722 - 19968: jis0212<<14 | 0x25<<7 | 0x37, - 27723 - 19968: jis0212<<14 | 0x25<<7 | 0x38, - 27725 - 19968: jis0212<<14 | 0x25<<7 | 0x39, - 27726 - 19968: jis0208<<14 | 0x27<<7 | 0x25, - 27727 - 19968: jis0212<<14 | 0x25<<7 | 0x3A, - 27728 - 19968: jis0208<<14 | 0x1B<<7 | 0x0D, - 27730 - 19968: jis0212<<14 | 0x25<<7 | 0x3B, - 27732 - 19968: jis0212<<14 | 0x25<<7 | 0x3C, - 27733 - 19968: jis0208<<14 | 0x3C<<7 | 0x47, - 27735 - 19968: jis0208<<14 | 0x13<<7 | 0x1F, - 27737 - 19968: jis0212<<14 | 0x25<<7 | 0x3D, - 27738 - 19968: jis0208<<14 | 0x10<<7 | 0x57, - 27739 - 19968: jis0212<<14 | 0x25<<7 | 0x3E, - 27740 - 19968: jis0208<<14 | 0x59<<7 | 0x3B, - 27741 - 19968: jis0208<<14 | 0x25<<7 | 0x51, - 27742 - 19968: jis0208<<14 | 0x3C<<7 | 0x46, - 27743 - 19968: jis0208<<14 | 0x18<<7 | 0x1D, - 27744 - 19968: jis0208<<14 | 0x22<<7 | 0x32, - 27746 - 19968: jis0208<<14 | 0x3C<<7 | 0x48, - 27751 - 19968: jis0212<<14 | 0x26<<7 | 0x15, - 27752 - 19968: jis0208<<14 | 0x3C<<7 | 0x50, - 27754 - 19968: jis0208<<14 | 0x3C<<7 | 0x49, - 27755 - 19968: jis0212<<14 | 0x25<<7 | 0x40, - 27757 - 19968: jis0212<<14 | 0x25<<7 | 0x41, - 27759 - 19968: jis0208<<14 | 0x59<<7 | 0x3D, - 27760 - 19968: jis0208<<14 | 0x21<<7 | 0x20, - 27762 - 19968: jis0208<<14 | 0x14<<7 | 0x41, - 27763 - 19968: jis0208<<14 | 0x3C<<7 | 0x51, - 27764 - 19968: jis0212<<14 | 0x25<<7 | 0x43, - 27766 - 19968: jis0212<<14 | 0x25<<7 | 0x44, - 27768 - 19968: jis0212<<14 | 0x25<<7 | 0x45, - 27769 - 19968: jis0212<<14 | 0x25<<7 | 0x46, - 27770 - 19968: jis0208<<14 | 0x16<<7 | 0x47, - 27771 - 19968: jis0212<<14 | 0x25<<7 | 0x47, - 27773 - 19968: jis0208<<14 | 0x14<<7 | 0x04, - 27774 - 19968: jis0208<<14 | 0x3C<<7 | 0x4F, - 27777 - 19968: jis0208<<14 | 0x3C<<7 | 0x4D, - 27778 - 19968: jis0208<<14 | 0x3C<<7 | 0x4A, - 27779 - 19968: jis0208<<14 | 0x2C<<7 | 0x3F, - 27781 - 19968: jis0212<<14 | 0x25<<7 | 0x48, - 27782 - 19968: jis0208<<14 | 0x59<<7 | 0x3C, - 27783 - 19968: jis0212<<14 | 0x25<<7 | 0x4A, - 27784 - 19968: jis0208<<14 | 0x23<<7 | 0x1F, - 27785 - 19968: jis0212<<14 | 0x25<<7 | 0x4B, - 27788 - 19968: jis0208<<14 | 0x25<<7 | 0x38, - 27789 - 19968: jis0208<<14 | 0x3C<<7 | 0x4B, - 27792 - 19968: jis0208<<14 | 0x3C<<7 | 0x53, - 27794 - 19968: jis0208<<14 | 0x3C<<7 | 0x52, - 27795 - 19968: jis0208<<14 | 0x16<<7 | 0x02, - 27796 - 19968: jis0212<<14 | 0x25<<7 | 0x4C, - 27797 - 19968: jis0212<<14 | 0x25<<7 | 0x4D, - 27798 - 19968: jis0208<<14 | 0x11<<7 | 0x0C, - 27799 - 19968: jis0212<<14 | 0x25<<7 | 0x4E, - 27800 - 19968: jis0212<<14 | 0x25<<7 | 0x4F, - 27801 - 19968: jis0208<<14 | 0x19<<7 | 0x1A, - 27802 - 19968: jis0208<<14 | 0x3C<<7 | 0x4C, - 27803 - 19968: jis0208<<14 | 0x3C<<7 | 0x4E, - 27804 - 19968: jis0212<<14 | 0x25<<7 | 0x50, - 27807 - 19968: jis0212<<14 | 0x25<<7 | 0x51, - 27809 - 19968: jis0208<<14 | 0x2A<<7 | 0x36, - 27810 - 19968: jis0208<<14 | 0x21<<7 | 0x53, - 27819 - 19968: jis0208<<14 | 0x2A<<7 | 0x56, - 27822 - 19968: jis0208<<14 | 0x3C<<7 | 0x5B, - 27824 - 19968: jis0212<<14 | 0x25<<7 | 0x52, - 27825 - 19968: jis0208<<14 | 0x3C<<7 | 0x5C, - 27826 - 19968: jis0212<<14 | 0x25<<7 | 0x53, - 27827 - 19968: jis0208<<14 | 0x11<<7 | 0x2E, - 27828 - 19968: jis0212<<14 | 0x25<<7 | 0x54, - 27832 - 19968: jis0208<<14 | 0x29<<7 | 0x07, - 27833 - 19968: jis0208<<14 | 0x2B<<7 | 0x5C, - 27834 - 19968: jis0208<<14 | 0x3D<<7 | 0x00, - 27835 - 19968: jis0208<<14 | 0x1B<<7 | 0x02, - 27836 - 19968: jis0208<<14 | 0x1D<<7 | 0x21, - 27837 - 19968: jis0208<<14 | 0x3C<<7 | 0x57, - 27838 - 19968: jis0208<<14 | 0x3C<<7 | 0x5D, - 27839 - 19968: jis0208<<14 | 0x10<<7 | 0x47, - 27841 - 19968: jis0208<<14 | 0x15<<7 | 0x16, - 27842 - 19968: jis0212<<14 | 0x25<<7 | 0x55, - 27844 - 19968: jis0208<<14 | 0x3C<<7 | 0x54, - 27845 - 19968: jis0208<<14 | 0x3C<<7 | 0x59, - 27846 - 19968: jis0212<<14 | 0x25<<7 | 0x56, - 27849 - 19968: jis0208<<14 | 0x1F<<7 | 0x53, - 27850 - 19968: jis0208<<14 | 0x26<<7 | 0x50, - 27852 - 19968: jis0208<<14 | 0x27<<7 | 0x46, - 27853 - 19968: jis0212<<14 | 0x25<<7 | 0x57, - 27855 - 19968: jis0212<<14 | 0x25<<7 | 0x58, - 27856 - 19968: jis0212<<14 | 0x25<<7 | 0x59, - 27857 - 19968: jis0212<<14 | 0x25<<7 | 0x5A, - 27858 - 19968: jis0212<<14 | 0x25<<7 | 0x5B, - 27859 - 19968: jis0208<<14 | 0x3C<<7 | 0x56, - 27860 - 19968: jis0212<<14 | 0x25<<7 | 0x5C, - 27861 - 19968: jis0208<<14 | 0x2A<<7 | 0x00, - 27862 - 19968: jis0212<<14 | 0x25<<7 | 0x5D, - 27863 - 19968: jis0208<<14 | 0x3C<<7 | 0x58, - 27865 - 19968: jis0208<<14 | 0x3D<<7 | 0x03, - 27866 - 19968: jis0208<<14 | 0x59<<7 | 0x3E, - 27867 - 19968: jis0208<<14 | 0x3D<<7 | 0x01, - 27868 - 19968: jis0212<<14 | 0x26<<7 | 0x01, - 27869 - 19968: jis0208<<14 | 0x3C<<7 | 0x5A, - 27872 - 19968: jis0212<<14 | 0x26<<7 | 0x02, - 27873 - 19968: jis0208<<14 | 0x2A<<7 | 0x01, - 27874 - 19968: jis0208<<14 | 0x26<<7 | 0x27, - 27875 - 19968: jis0208<<14 | 0x14<<7 | 0x42, - 27877 - 19968: jis0208<<14 | 0x24<<7 | 0x04, - 27879 - 19968: jis0212<<14 | 0x26<<7 | 0x03, - 27880 - 19968: jis0208<<14 | 0x22<<7 | 0x4C, - 27881 - 19968: jis0212<<14 | 0x26<<7 | 0x04, - 27882 - 19968: jis0208<<14 | 0x3D<<7 | 0x04, - 27883 - 19968: jis0212<<14 | 0x26<<7 | 0x05, - 27884 - 19968: jis0212<<14 | 0x26<<7 | 0x06, - 27886 - 19968: jis0212<<14 | 0x26<<7 | 0x07, - 27887 - 19968: jis0208<<14 | 0x3D<<7 | 0x02, - 27888 - 19968: jis0208<<14 | 0x21<<7 | 0x38, - 27889 - 19968: jis0208<<14 | 0x3C<<7 | 0x55, - 27890 - 19968: jis0212<<14 | 0x26<<7 | 0x08, - 27891 - 19968: jis0208<<14 | 0x10<<7 | 0x2A, - 27892 - 19968: jis0212<<14 | 0x26<<7 | 0x09, - 27908 - 19968: jis0208<<14 | 0x59<<7 | 0x3F, - 27911 - 19968: jis0212<<14 | 0x26<<7 | 0x0B, - 27914 - 19968: jis0212<<14 | 0x26<<7 | 0x0C, - 27915 - 19968: jis0208<<14 | 0x2C<<7 | 0x2D, - 27916 - 19968: jis0208<<14 | 0x3D<<7 | 0x0F, - 27918 - 19968: jis0212<<14 | 0x26<<7 | 0x0D, - 27919 - 19968: jis0212<<14 | 0x26<<7 | 0x0E, - 27921 - 19968: jis0212<<14 | 0x26<<7 | 0x0F, - 27922 - 19968: jis0208<<14 | 0x3D<<7 | 0x0E, - 27923 - 19968: jis0212<<14 | 0x26<<7 | 0x10, - 27927 - 19968: jis0208<<14 | 0x1F<<7 | 0x55, - 27929 - 19968: jis0208<<14 | 0x3D<<7 | 0x0B, - 27930 - 19968: jis0212<<14 | 0x26<<7 | 0x11, - 27931 - 19968: jis0208<<14 | 0x2C<<7 | 0x4B, - 27934 - 19968: jis0208<<14 | 0x25<<7 | 0x15, - 27935 - 19968: jis0208<<14 | 0x3D<<7 | 0x05, - 27941 - 19968: jis0208<<14 | 0x23<<7 | 0x24, - 27942 - 19968: jis0212<<14 | 0x26<<7 | 0x12, - 27943 - 19968: jis0212<<14 | 0x26<<7 | 0x13, - 27944 - 19968: jis0212<<14 | 0x26<<7 | 0x14, - 27945 - 19968: jis0208<<14 | 0x10<<7 | 0x2B, - 27946 - 19968: jis0208<<14 | 0x18<<7 | 0x1E, - 27947 - 19968: jis0208<<14 | 0x3D<<7 | 0x08, - 27950 - 19968: jis0212<<14 | 0x26<<7 | 0x16, - 27951 - 19968: jis0212<<14 | 0x26<<7 | 0x17, - 27953 - 19968: jis0212<<14 | 0x26<<7 | 0x18, - 27954 - 19968: jis0208<<14 | 0x1C<<7 | 0x06, - 27955 - 19968: jis0208<<14 | 0x3D<<7 | 0x0D, - 27957 - 19968: jis0208<<14 | 0x3D<<7 | 0x0C, - 27958 - 19968: jis0208<<14 | 0x3D<<7 | 0x07, - 27960 - 19968: jis0208<<14 | 0x3D<<7 | 0x0A, - 27961 - 19968: jis0212<<14 | 0x26<<7 | 0x19, - 27963 - 19968: jis0208<<14 | 0x12<<7 | 0x47, - 27964 - 19968: jis0212<<14 | 0x26<<7 | 0x1A, - 27965 - 19968: jis0208<<14 | 0x3D<<7 | 0x09, - 27966 - 19968: jis0208<<14 | 0x26<<7 | 0x28, - 27967 - 19968: jis0212<<14 | 0x26<<7 | 0x1B, - 27969 - 19968: jis0208<<14 | 0x2D<<7 | 0x0D, - 27972 - 19968: jis0208<<14 | 0x1D<<7 | 0x53, - 27973 - 19968: jis0208<<14 | 0x1F<<7 | 0x54, - 27991 - 19968: jis0212<<14 | 0x26<<7 | 0x1C, - 27993 - 19968: jis0208<<14 | 0x3D<<7 | 0x15, - 27994 - 19968: jis0208<<14 | 0x3D<<7 | 0x13, - 27996 - 19968: jis0208<<14 | 0x28<<7 | 0x2C, - 27998 - 19968: jis0212<<14 | 0x26<<7 | 0x1D, - 27999 - 19968: jis0212<<14 | 0x26<<7 | 0x1E, - 28001 - 19968: jis0212<<14 | 0x26<<7 | 0x1F, - 28003 - 19968: jis0208<<14 | 0x3D<<7 | 0x10, - 28004 - 19968: jis0208<<14 | 0x3D<<7 | 0x12, - 28005 - 19968: jis0212<<14 | 0x26<<7 | 0x20, - 28006 - 19968: jis0208<<14 | 0x10<<7 | 0x19, - 28007 - 19968: jis0212<<14 | 0x26<<7 | 0x21, - 28009 - 19968: jis0208<<14 | 0x18<<7 | 0x1F, - 28010 - 19968: jis0208<<14 | 0x2E<<7 | 0x11, - 28012 - 19968: jis0208<<14 | 0x12<<7 | 0x1C, - 28014 - 19968: jis0208<<14 | 0x28<<7 | 0x41, - 28015 - 19968: jis0208<<14 | 0x59<<7 | 0x41, - 28016 - 19968: jis0212<<14 | 0x26<<7 | 0x23, - 28020 - 19968: jis0208<<14 | 0x2C<<7 | 0x40, - 28023 - 19968: jis0208<<14 | 0x12<<7 | 0x03, - 28024 - 19968: jis0208<<14 | 0x1E<<7 | 0x1A, - 28025 - 19968: jis0208<<14 | 0x3D<<7 | 0x14, - 28028 - 19968: jis0212<<14 | 0x26<<7 | 0x24, - 28034 - 19968: jis0212<<14 | 0x26<<7 | 0x25, - 28037 - 19968: jis0208<<14 | 0x3D<<7 | 0x19, - 28039 - 19968: jis0208<<14 | 0x59<<7 | 0x40, - 28040 - 19968: jis0208<<14 | 0x1D<<7 | 0x22, - 28044 - 19968: jis0208<<14 | 0x2C<<7 | 0x0F, - 28046 - 19968: jis0208<<14 | 0x3D<<7 | 0x16, - 28049 - 19968: jis0212<<14 | 0x26<<7 | 0x27, - 28050 - 19968: jis0212<<14 | 0x26<<7 | 0x28, - 28051 - 19968: jis0208<<14 | 0x3D<<7 | 0x11, - 28052 - 19968: jis0212<<14 | 0x26<<7 | 0x29, - 28053 - 19968: jis0208<<14 | 0x3D<<7 | 0x17, - 28054 - 19968: jis0208<<14 | 0x59<<7 | 0x42, - 28055 - 19968: jis0212<<14 | 0x26<<7 | 0x2B, - 28056 - 19968: jis0212<<14 | 0x26<<7 | 0x2C, - 28057 - 19968: jis0208<<14 | 0x2D<<7 | 0x3D, - 28059 - 19968: jis0208<<14 | 0x24<<7 | 0x52, - 28060 - 19968: jis0208<<14 | 0x25<<7 | 0x21, - 28074 - 19968: jis0212<<14 | 0x26<<7 | 0x2D, - 28076 - 19968: jis0208<<14 | 0x59<<7 | 0x43, - 28079 - 19968: jis0208<<14 | 0x12<<7 | 0x15, - 28082 - 19968: jis0208<<14 | 0x10<<7 | 0x34, - 28084 - 19968: jis0212<<14 | 0x26<<7 | 0x2F, - 28085 - 19968: jis0208<<14 | 0x3D<<7 | 0x1D, - 28087 - 19968: jis0212<<14 | 0x26<<7 | 0x30, - 28088 - 19968: jis0208<<14 | 0x3D<<7 | 0x20, - 28089 - 19968: jis0212<<14 | 0x26<<7 | 0x31, - 28092 - 19968: jis0208<<14 | 0x2D<<7 | 0x22, - 28093 - 19968: jis0212<<14 | 0x26<<7 | 0x32, - 28095 - 19968: jis0212<<14 | 0x26<<7 | 0x33, - 28096 - 19968: jis0208<<14 | 0x2C<<7 | 0x43, - 28100 - 19968: jis0212<<14 | 0x26<<7 | 0x34, - 28101 - 19968: jis0208<<14 | 0x3D<<7 | 0x27, - 28102 - 19968: jis0208<<14 | 0x3D<<7 | 0x21, - 28103 - 19968: jis0208<<14 | 0x3D<<7 | 0x1E, - 28104 - 19968: jis0212<<14 | 0x26<<7 | 0x35, - 28106 - 19968: jis0212<<14 | 0x26<<7 | 0x36, - 28107 - 19968: jis0208<<14 | 0x2D<<7 | 0x33, - 28108 - 19968: jis0208<<14 | 0x3D<<7 | 0x24, - 28110 - 19968: jis0212<<14 | 0x26<<7 | 0x37, - 28111 - 19968: jis0208<<14 | 0x59<<7 | 0x44, - 28113 - 19968: jis0208<<14 | 0x1C<<7 | 0x29, - 28114 - 19968: jis0208<<14 | 0x3D<<7 | 0x26, - 28117 - 19968: jis0208<<14 | 0x3D<<7 | 0x2B, - 28118 - 19968: jis0212<<14 | 0x26<<7 | 0x39, - 28120 - 19968: jis0208<<14 | 0x24<<7 | 0x50, - 28121 - 19968: jis0208<<14 | 0x3D<<7 | 0x29, - 28123 - 19968: jis0212<<14 | 0x26<<7 | 0x3A, - 28125 - 19968: jis0212<<14 | 0x26<<7 | 0x3B, - 28126 - 19968: jis0208<<14 | 0x3D<<7 | 0x23, - 28127 - 19968: jis0212<<14 | 0x26<<7 | 0x3C, - 28128 - 19968: jis0212<<14 | 0x26<<7 | 0x3D, - 28129 - 19968: jis0208<<14 | 0x22<<7 | 0x17, - 28130 - 19968: jis0212<<14 | 0x26<<7 | 0x3E, - 28132 - 19968: jis0208<<14 | 0x3D<<7 | 0x2A, - 28133 - 19968: jis0212<<14 | 0x26<<7 | 0x3F, - 28134 - 19968: jis0208<<14 | 0x3D<<7 | 0x1F, - 28136 - 19968: jis0208<<14 | 0x3D<<7 | 0x25, - 28137 - 19968: jis0212<<14 | 0x26<<7 | 0x40, - 28138 - 19968: jis0208<<14 | 0x3D<<7 | 0x2C, - 28139 - 19968: jis0208<<14 | 0x0F<<7 | 0x5B, - 28140 - 19968: jis0208<<14 | 0x3D<<7 | 0x22, - 28142 - 19968: jis0208<<14 | 0x3D<<7 | 0x2D, - 28143 - 19968: jis0212<<14 | 0x26<<7 | 0x41, - 28144 - 19968: jis0212<<14 | 0x26<<7 | 0x42, - 28145 - 19968: jis0208<<14 | 0x1E<<7 | 0x1B, - 28146 - 19968: jis0208<<14 | 0x59<<7 | 0x46, - 28147 - 19968: jis0208<<14 | 0x1C<<7 | 0x3E, - 28148 - 19968: jis0212<<14 | 0x26<<7 | 0x43, - 28149 - 19968: jis0208<<14 | 0x29<<7 | 0x04, - 28150 - 19968: jis0212<<14 | 0x26<<7 | 0x44, - 28151 - 19968: jis0208<<14 | 0x19<<7 | 0x0D, - 28152 - 19968: jis0208<<14 | 0x59<<7 | 0x45, - 28153 - 19968: jis0208<<14 | 0x3D<<7 | 0x1A, - 28154 - 19968: jis0208<<14 | 0x3D<<7 | 0x28, - 28155 - 19968: jis0208<<14 | 0x24<<7 | 0x19, - 28156 - 19968: jis0208<<14 | 0x59<<7 | 0x47, - 28160 - 19968: jis0212<<14 | 0x26<<7 | 0x46, - 28164 - 19968: jis0212<<14 | 0x26<<7 | 0x47, - 28165 - 19968: jis0208<<14 | 0x1F<<7 | 0x15, - 28167 - 19968: jis0208<<14 | 0x12<<7 | 0x48, - 28168 - 19968: jis0208<<14 | 0x19<<7 | 0x30, - 28169 - 19968: jis0208<<14 | 0x1D<<7 | 0x23, - 28170 - 19968: jis0208<<14 | 0x3D<<7 | 0x1C, - 28171 - 19968: jis0208<<14 | 0x1C<<7 | 0x21, - 28179 - 19968: jis0208<<14 | 0x16<<7 | 0x2B, - 28181 - 19968: jis0208<<14 | 0x3D<<7 | 0x1B, - 28185 - 19968: jis0208<<14 | 0x3D<<7 | 0x31, - 28186 - 19968: jis0208<<14 | 0x1C<<7 | 0x4C, - 28187 - 19968: jis0208<<14 | 0x17<<7 | 0x19, - 28189 - 19968: jis0208<<14 | 0x3D<<7 | 0x40, - 28190 - 19968: jis0212<<14 | 0x26<<7 | 0x48, - 28191 - 19968: jis0208<<14 | 0x3D<<7 | 0x3A, - 28192 - 19968: jis0208<<14 | 0x14<<7 | 0x53, - 28193 - 19968: jis0208<<14 | 0x24<<7 | 0x2E, - 28194 - 19968: jis0212<<14 | 0x26<<7 | 0x49, - 28195 - 19968: jis0208<<14 | 0x3D<<7 | 0x35, - 28196 - 19968: jis0208<<14 | 0x3D<<7 | 0x3E, - 28197 - 19968: jis0208<<14 | 0x0F<<7 | 0x0E, - 28198 - 19968: jis0208<<14 | 0x10<<7 | 0x11, - 28199 - 19968: jis0208<<14 | 0x59<<7 | 0x4A, - 28201 - 19968: jis0208<<14 | 0x11<<7 | 0x18, - 28203 - 19968: jis0208<<14 | 0x3D<<7 | 0x37, - 28204 - 19968: jis0208<<14 | 0x21<<7 | 0x0B, - 28205 - 19968: jis0208<<14 | 0x3D<<7 | 0x2E, - 28206 - 19968: jis0208<<14 | 0x3D<<7 | 0x30, - 28207 - 19968: jis0208<<14 | 0x18<<7 | 0x20, - 28210 - 19968: jis0212<<14 | 0x26<<7 | 0x4B, - 28214 - 19968: jis0212<<14 | 0x26<<7 | 0x4C, - 28216 - 19968: jis0208<<14 | 0x3D<<7 | 0x41, - 28217 - 19968: jis0208<<14 | 0x59<<7 | 0x48, - 28218 - 19968: jis0208<<14 | 0x3D<<7 | 0x3C, - 28219 - 19968: jis0212<<14 | 0x26<<7 | 0x4E, - 28220 - 19968: jis0208<<14 | 0x59<<7 | 0x4B, - 28222 - 19968: jis0208<<14 | 0x3D<<7 | 0x34, - 28227 - 19968: jis0208<<14 | 0x3D<<7 | 0x3B, - 28228 - 19968: jis0212<<14 | 0x26<<7 | 0x50, - 28229 - 19968: jis0212<<14 | 0x26<<7 | 0x51, - 28232 - 19968: jis0212<<14 | 0x26<<7 | 0x52, - 28233 - 19968: jis0212<<14 | 0x26<<7 | 0x53, - 28234 - 19968: jis0208<<14 | 0x2B<<7 | 0x0A, - 28235 - 19968: jis0212<<14 | 0x26<<7 | 0x54, - 28237 - 19968: jis0208<<14 | 0x3D<<7 | 0x39, - 28238 - 19968: jis0208<<14 | 0x3D<<7 | 0x3D, - 28239 - 19968: jis0212<<14 | 0x26<<7 | 0x55, - 28241 - 19968: jis0212<<14 | 0x26<<7 | 0x56, - 28242 - 19968: jis0212<<14 | 0x26<<7 | 0x57, - 28243 - 19968: jis0212<<14 | 0x26<<7 | 0x58, - 28244 - 19968: jis0212<<14 | 0x26<<7 | 0x59, - 28246 - 19968: jis0208<<14 | 0x17<<7 | 0x2F, - 28247 - 19968: jis0212<<14 | 0x26<<7 | 0x5A, - 28248 - 19968: jis0208<<14 | 0x1D<<7 | 0x24, - 28251 - 19968: jis0208<<14 | 0x22<<7 | 0x18, - 28252 - 19968: jis0208<<14 | 0x59<<7 | 0x49, - 28253 - 19968: jis0212<<14 | 0x26<<7 | 0x5C, - 28254 - 19968: jis0212<<14 | 0x26<<7 | 0x5D, - 28255 - 19968: jis0208<<14 | 0x3D<<7 | 0x33, - 28258 - 19968: jis0212<<14 | 0x27<<7 | 0x00, - 28259 - 19968: jis0212<<14 | 0x27<<7 | 0x01, - 28263 - 19968: jis0208<<14 | 0x2C<<7 | 0x0E, - 28264 - 19968: jis0212<<14 | 0x27<<7 | 0x02, - 28267 - 19968: jis0208<<14 | 0x3D<<7 | 0x36, - 28270 - 19968: jis0208<<14 | 0x3D<<7 | 0x2F, - 28271 - 19968: jis0208<<14 | 0x24<<7 | 0x51, - 28274 - 19968: jis0208<<14 | 0x3D<<7 | 0x32, - 28275 - 19968: jis0212<<14 | 0x27<<7 | 0x03, - 28278 - 19968: jis0208<<14 | 0x3D<<7 | 0x38, - 28283 - 19968: jis0212<<14 | 0x27<<7 | 0x04, - 28285 - 19968: jis0212<<14 | 0x27<<7 | 0x05, - 28286 - 19968: jis0208<<14 | 0x2E<<7 | 0x30, - 28287 - 19968: jis0208<<14 | 0x1B<<7 | 0x1D, - 28288 - 19968: jis0208<<14 | 0x2A<<7 | 0x5D, - 28290 - 19968: jis0208<<14 | 0x3D<<7 | 0x42, - 28300 - 19968: jis0208<<14 | 0x27<<7 | 0x0D, - 28301 - 19968: jis0212<<14 | 0x27<<7 | 0x06, - 28303 - 19968: jis0208<<14 | 0x3D<<7 | 0x4E, - 28304 - 19968: jis0208<<14 | 0x17<<7 | 0x1A, - 28307 - 19968: jis0212<<14 | 0x27<<7 | 0x07, - 28310 - 19968: jis0208<<14 | 0x1C<<7 | 0x3F, - 28312 - 19968: jis0208<<14 | 0x3D<<7 | 0x44, - 28313 - 19968: jis0212<<14 | 0x27<<7 | 0x08, - 28316 - 19968: jis0208<<14 | 0x2D<<7 | 0x0E, - 28317 - 19968: jis0208<<14 | 0x18<<7 | 0x21, - 28319 - 19968: jis0208<<14 | 0x3D<<7 | 0x51, - 28320 - 19968: jis0212<<14 | 0x27<<7 | 0x09, - 28322 - 19968: jis0208<<14 | 0x0F<<7 | 0x4D, - 28325 - 19968: jis0208<<14 | 0x3D<<7 | 0x4F, - 28327 - 19968: jis0212<<14 | 0x27<<7 | 0x0A, - 28330 - 19968: jis0208<<14 | 0x3D<<7 | 0x43, - 28333 - 19968: jis0212<<14 | 0x27<<7 | 0x0B, - 28334 - 19968: jis0212<<14 | 0x27<<7 | 0x0C, - 28335 - 19968: jis0208<<14 | 0x3D<<7 | 0x49, - 28337 - 19968: jis0212<<14 | 0x27<<7 | 0x0D, - 28338 - 19968: jis0208<<14 | 0x3D<<7 | 0x4B, - 28339 - 19968: jis0212<<14 | 0x27<<7 | 0x0E, - 28342 - 19968: jis0208<<14 | 0x2C<<7 | 0x2E, - 28343 - 19968: jis0208<<14 | 0x3D<<7 | 0x46, - 28346 - 19968: jis0208<<14 | 0x24<<7 | 0x0D, - 28347 - 19968: jis0212<<14 | 0x27<<7 | 0x0F, - 28349 - 19968: jis0208<<14 | 0x3D<<7 | 0x48, - 28351 - 19968: jis0208<<14 | 0x59<<7 | 0x4C, - 28352 - 19968: jis0212<<14 | 0x27<<7 | 0x11, - 28353 - 19968: jis0212<<14 | 0x27<<7 | 0x12, - 28354 - 19968: jis0208<<14 | 0x3D<<7 | 0x50, - 28355 - 19968: jis0212<<14 | 0x27<<7 | 0x13, - 28356 - 19968: jis0208<<14 | 0x3D<<7 | 0x4A, - 28357 - 19968: jis0208<<14 | 0x2B<<7 | 0x26, - 28359 - 19968: jis0212<<14 | 0x27<<7 | 0x14, - 28360 - 19968: jis0212<<14 | 0x27<<7 | 0x15, - 28361 - 19968: jis0208<<14 | 0x3D<<7 | 0x45, - 28362 - 19968: jis0212<<14 | 0x27<<7 | 0x16, - 28363 - 19968: jis0208<<14 | 0x1B<<7 | 0x01, - 28364 - 19968: jis0208<<14 | 0x3D<<7 | 0x5D, - 28365 - 19968: jis0212<<14 | 0x27<<7 | 0x17, - 28366 - 19968: jis0212<<14 | 0x27<<7 | 0x18, - 28367 - 19968: jis0212<<14 | 0x27<<7 | 0x19, - 28369 - 19968: jis0208<<14 | 0x12<<7 | 0x49, - 28371 - 19968: jis0208<<14 | 0x3D<<7 | 0x47, - 28372 - 19968: jis0208<<14 | 0x3D<<7 | 0x4C, - 28373 - 19968: jis0208<<14 | 0x3D<<7 | 0x4D, - 28381 - 19968: jis0208<<14 | 0x21<<7 | 0x4B, - 28382 - 19968: jis0208<<14 | 0x21<<7 | 0x39, - 28395 - 19968: jis0212<<14 | 0x27<<7 | 0x1A, - 28396 - 19968: jis0208<<14 | 0x3D<<7 | 0x55, - 28397 - 19968: jis0212<<14 | 0x27<<7 | 0x1B, - 28398 - 19968: jis0212<<14 | 0x27<<7 | 0x1C, - 28399 - 19968: jis0208<<14 | 0x3D<<7 | 0x5B, - 28402 - 19968: jis0208<<14 | 0x3D<<7 | 0x59, - 28404 - 19968: jis0208<<14 | 0x24<<7 | 0x08, - 28407 - 19968: jis0208<<14 | 0x3E<<7 | 0x02, - 28408 - 19968: jis0208<<14 | 0x3D<<7 | 0x56, - 28409 - 19968: jis0212<<14 | 0x27<<7 | 0x1D, - 28411 - 19968: jis0212<<14 | 0x27<<7 | 0x1E, - 28413 - 19968: jis0212<<14 | 0x27<<7 | 0x1F, - 28414 - 19968: jis0208<<14 | 0x3D<<7 | 0x57, - 28415 - 19968: jis0208<<14 | 0x3D<<7 | 0x3F, - 28417 - 19968: jis0208<<14 | 0x14<<7 | 0x58, - 28418 - 19968: jis0208<<14 | 0x28<<7 | 0x19, - 28420 - 19968: jis0212<<14 | 0x27<<7 | 0x20, - 28422 - 19968: jis0208<<14 | 0x1B<<7 | 0x1E, - 28424 - 19968: jis0212<<14 | 0x27<<7 | 0x21, - 28425 - 19968: jis0208<<14 | 0x18<<7 | 0x56, - 28426 - 19968: jis0212<<14 | 0x27<<7 | 0x22, - 28428 - 19968: jis0212<<14 | 0x27<<7 | 0x23, - 28429 - 19968: jis0212<<14 | 0x27<<7 | 0x24, - 28431 - 19968: jis0208<<14 | 0x2E<<7 | 0x12, - 28433 - 19968: jis0208<<14 | 0x3D<<7 | 0x53, - 28435 - 19968: jis0208<<14 | 0x3E<<7 | 0x01, - 28436 - 19968: jis0208<<14 | 0x10<<7 | 0x48, - 28437 - 19968: jis0208<<14 | 0x20<<7 | 0x45, - 28438 - 19968: jis0212<<14 | 0x27<<7 | 0x25, - 28440 - 19968: jis0212<<14 | 0x27<<7 | 0x26, - 28442 - 19968: jis0212<<14 | 0x27<<7 | 0x27, - 28443 - 19968: jis0212<<14 | 0x27<<7 | 0x28, - 28448 - 19968: jis0208<<14 | 0x26<<7 | 0x58, - 28450 - 19968: jis0208<<14 | 0x13<<7 | 0x20, - 28451 - 19968: jis0208<<14 | 0x2D<<7 | 0x59, - 28454 - 19968: jis0212<<14 | 0x27<<7 | 0x29, - 28457 - 19968: jis0212<<14 | 0x27<<7 | 0x2A, - 28458 - 19968: jis0212<<14 | 0x27<<7 | 0x2B, - 28459 - 19968: jis0208<<14 | 0x2B<<7 | 0x00, - 28460 - 19968: jis0208<<14 | 0x23<<7 | 0x31, - 28461 - 19968: jis0212<<14 | 0x27<<7 | 0x32, - 28463 - 19968: jis0212<<14 | 0x27<<7 | 0x2C, - 28464 - 19968: jis0212<<14 | 0x27<<7 | 0x2D, - 28465 - 19968: jis0208<<14 | 0x3D<<7 | 0x5A, - 28466 - 19968: jis0208<<14 | 0x3D<<7 | 0x5C, - 28467 - 19968: jis0212<<14 | 0x27<<7 | 0x2E, - 28470 - 19968: jis0212<<14 | 0x27<<7 | 0x2F, - 28472 - 19968: jis0208<<14 | 0x20<<7 | 0x11, - 28475 - 19968: jis0212<<14 | 0x27<<7 | 0x30, - 28476 - 19968: jis0212<<14 | 0x27<<7 | 0x31, - 28478 - 19968: jis0208<<14 | 0x3E<<7 | 0x00, - 28479 - 19968: jis0208<<14 | 0x3D<<7 | 0x58, - 28481 - 19968: jis0208<<14 | 0x3D<<7 | 0x52, - 28485 - 19968: jis0208<<14 | 0x13<<7 | 0x22, - 28495 - 19968: jis0212<<14 | 0x27<<7 | 0x33, - 28497 - 19968: jis0212<<14 | 0x27<<7 | 0x34, - 28498 - 19968: jis0212<<14 | 0x27<<7 | 0x35, - 28499 - 19968: jis0212<<14 | 0x27<<7 | 0x36, - 28500 - 19968: jis0208<<14 | 0x16<<7 | 0x48, - 28503 - 19968: jis0212<<14 | 0x27<<7 | 0x37, - 28504 - 19968: jis0208<<14 | 0x3E<<7 | 0x0E, - 28505 - 19968: jis0212<<14 | 0x27<<7 | 0x38, - 28506 - 19968: jis0212<<14 | 0x27<<7 | 0x39, - 28507 - 19968: jis0208<<14 | 0x3E<<7 | 0x09, - 28508 - 19968: jis0208<<14 | 0x1F<<7 | 0x57, - 28509 - 19968: jis0212<<14 | 0x27<<7 | 0x3A, - 28510 - 19968: jis0212<<14 | 0x27<<7 | 0x3B, - 28511 - 19968: jis0208<<14 | 0x12<<7 | 0x42, - 28513 - 19968: jis0212<<14 | 0x27<<7 | 0x3C, - 28514 - 19968: jis0212<<14 | 0x27<<7 | 0x3D, - 28516 - 19968: jis0208<<14 | 0x1C<<7 | 0x40, - 28518 - 19968: jis0208<<14 | 0x3E<<7 | 0x12, - 28520 - 19968: jis0212<<14 | 0x27<<7 | 0x3E, - 28524 - 19968: jis0212<<14 | 0x27<<7 | 0x3F, - 28525 - 19968: jis0208<<14 | 0x3E<<7 | 0x0B, - 28526 - 19968: jis0208<<14 | 0x23<<7 | 0x0B, - 28527 - 19968: jis0208<<14 | 0x3E<<7 | 0x08, - 28528 - 19968: jis0208<<14 | 0x23<<7 | 0x38, - 28532 - 19968: jis0208<<14 | 0x3E<<7 | 0x2B, - 28536 - 19968: jis0208<<14 | 0x3E<<7 | 0x05, - 28538 - 19968: jis0208<<14 | 0x3E<<7 | 0x04, - 28540 - 19968: jis0208<<14 | 0x3E<<7 | 0x0D, - 28541 - 19968: jis0212<<14 | 0x27<<7 | 0x40, - 28542 - 19968: jis0212<<14 | 0x27<<7 | 0x41, - 28544 - 19968: jis0208<<14 | 0x3E<<7 | 0x07, - 28545 - 19968: jis0208<<14 | 0x3E<<7 | 0x06, - 28546 - 19968: jis0208<<14 | 0x3E<<7 | 0x0C, - 28547 - 19968: jis0212<<14 | 0x27<<7 | 0x42, - 28548 - 19968: jis0208<<14 | 0x1F<<7 | 0x00, - 28550 - 19968: jis0208<<14 | 0x3E<<7 | 0x03, - 28551 - 19968: jis0212<<14 | 0x27<<7 | 0x43, - 28552 - 19968: jis0208<<14 | 0x59<<7 | 0x4D, - 28555 - 19968: jis0212<<14 | 0x27<<7 | 0x45, - 28556 - 19968: jis0212<<14 | 0x27<<7 | 0x46, - 28557 - 19968: jis0212<<14 | 0x27<<7 | 0x47, - 28558 - 19968: jis0208<<14 | 0x3E<<7 | 0x0F, - 28560 - 19968: jis0212<<14 | 0x27<<7 | 0x48, - 28561 - 19968: jis0208<<14 | 0x3E<<7 | 0x10, - 28562 - 19968: jis0212<<14 | 0x27<<7 | 0x49, - 28563 - 19968: jis0212<<14 | 0x27<<7 | 0x4A, - 28564 - 19968: jis0212<<14 | 0x27<<7 | 0x4B, - 28566 - 19968: jis0212<<14 | 0x27<<7 | 0x4C, - 28567 - 19968: jis0208<<14 | 0x13<<7 | 0x21, - 28570 - 19968: jis0212<<14 | 0x27<<7 | 0x4D, - 28575 - 19968: jis0212<<14 | 0x27<<7 | 0x4E, - 28576 - 19968: jis0212<<14 | 0x27<<7 | 0x4F, - 28577 - 19968: jis0208<<14 | 0x3E<<7 | 0x15, - 28579 - 19968: jis0208<<14 | 0x3E<<7 | 0x14, - 28580 - 19968: jis0208<<14 | 0x3E<<7 | 0x16, - 28581 - 19968: jis0212<<14 | 0x27<<7 | 0x50, - 28582 - 19968: jis0212<<14 | 0x27<<7 | 0x51, - 28583 - 19968: jis0212<<14 | 0x27<<7 | 0x52, - 28584 - 19968: jis0212<<14 | 0x27<<7 | 0x53, - 28586 - 19968: jis0208<<14 | 0x3E<<7 | 0x19, - 28590 - 19968: jis0212<<14 | 0x27<<7 | 0x54, - 28591 - 19968: jis0212<<14 | 0x27<<7 | 0x55, - 28592 - 19968: jis0212<<14 | 0x27<<7 | 0x56, - 28593 - 19968: jis0208<<14 | 0x24<<7 | 0x22, - 28595 - 19968: jis0208<<14 | 0x3E<<7 | 0x13, - 28597 - 19968: jis0208<<14 | 0x59<<7 | 0x4E, - 28598 - 19968: jis0212<<14 | 0x27<<7 | 0x58, - 28601 - 19968: jis0208<<14 | 0x3E<<7 | 0x17, - 28604 - 19968: jis0212<<14 | 0x27<<7 | 0x59, - 28608 - 19968: jis0208<<14 | 0x16<<7 | 0x42, - 28609 - 19968: jis0208<<14 | 0x21<<7 | 0x58, - 28610 - 19968: jis0208<<14 | 0x3E<<7 | 0x11, - 28611 - 19968: jis0208<<14 | 0x26<<7 | 0x1A, - 28613 - 19968: jis0212<<14 | 0x27<<7 | 0x5A, - 28614 - 19968: jis0208<<14 | 0x3E<<7 | 0x18, - 28615 - 19968: jis0212<<14 | 0x27<<7 | 0x5B, - 28616 - 19968: jis0212<<14 | 0x27<<7 | 0x5C, - 28618 - 19968: jis0212<<14 | 0x27<<7 | 0x5D, - 28628 - 19968: jis0208<<14 | 0x3E<<7 | 0x1D, - 28629 - 19968: jis0208<<14 | 0x3E<<7 | 0x1B, - 28632 - 19968: jis0208<<14 | 0x3E<<7 | 0x1E, - 28634 - 19968: jis0212<<14 | 0x28<<7 | 0x00, - 28635 - 19968: jis0208<<14 | 0x3E<<7 | 0x21, - 28638 - 19968: jis0212<<14 | 0x28<<7 | 0x01, - 28639 - 19968: jis0208<<14 | 0x3E<<7 | 0x1A, - 28640 - 19968: jis0208<<14 | 0x18<<7 | 0x49, - 28641 - 19968: jis0208<<14 | 0x26<<7 | 0x07, - 28644 - 19968: jis0208<<14 | 0x3D<<7 | 0x18, - 28648 - 19968: jis0212<<14 | 0x28<<7 | 0x02, - 28649 - 19968: jis0212<<14 | 0x28<<7 | 0x03, - 28651 - 19968: jis0208<<14 | 0x2C<<7 | 0x53, - 28652 - 19968: jis0208<<14 | 0x3E<<7 | 0x1C, - 28654 - 19968: jis0208<<14 | 0x3E<<7 | 0x20, - 28655 - 19968: jis0208<<14 | 0x21<<7 | 0x54, - 28656 - 19968: jis0212<<14 | 0x28<<7 | 0x04, - 28657 - 19968: jis0208<<14 | 0x3E<<7 | 0x1F, - 28659 - 19968: jis0208<<14 | 0x3E<<7 | 0x0A, - 28661 - 19968: jis0208<<14 | 0x59<<7 | 0x4F, - 28662 - 19968: jis0208<<14 | 0x4E<<7 | 0x48, - 28665 - 19968: jis0212<<14 | 0x28<<7 | 0x06, - 28666 - 19968: jis0208<<14 | 0x3E<<7 | 0x24, - 28668 - 19968: jis0212<<14 | 0x28<<7 | 0x07, - 28669 - 19968: jis0212<<14 | 0x28<<7 | 0x08, - 28670 - 19968: jis0208<<14 | 0x3E<<7 | 0x28, - 28672 - 19968: jis0212<<14 | 0x28<<7 | 0x09, - 28673 - 19968: jis0208<<14 | 0x3E<<7 | 0x26, - 28677 - 19968: jis0208<<14 | 0x59<<7 | 0x50, - 28678 - 19968: jis0212<<14 | 0x28<<7 | 0x0B, - 28679 - 19968: jis0208<<14 | 0x59<<7 | 0x51, - 28681 - 19968: jis0208<<14 | 0x3E<<7 | 0x22, - 28683 - 19968: jis0208<<14 | 0x3E<<7 | 0x23, - 28685 - 19968: jis0212<<14 | 0x28<<7 | 0x0D, - 28687 - 19968: jis0208<<14 | 0x3E<<7 | 0x27, - 28689 - 19968: jis0208<<14 | 0x3E<<7 | 0x25, - 28693 - 19968: jis0208<<14 | 0x28<<7 | 0x2D, - 28695 - 19968: jis0212<<14 | 0x28<<7 | 0x0E, - 28696 - 19968: jis0208<<14 | 0x3E<<7 | 0x2D, - 28698 - 19968: jis0208<<14 | 0x3E<<7 | 0x2A, - 28699 - 19968: jis0208<<14 | 0x3E<<7 | 0x29, - 28701 - 19968: jis0208<<14 | 0x3E<<7 | 0x2C, - 28702 - 19968: jis0208<<14 | 0x25<<7 | 0x33, - 28703 - 19968: jis0208<<14 | 0x3E<<7 | 0x2E, - 28704 - 19968: jis0212<<14 | 0x28<<7 | 0x0F, - 28707 - 19968: jis0212<<14 | 0x28<<7 | 0x10, - 28710 - 19968: jis0208<<14 | 0x22<<7 | 0x54, - 28711 - 19968: jis0208<<14 | 0x21<<7 | 0x4C, - 28712 - 19968: jis0208<<14 | 0x59<<7 | 0x52, - 28716 - 19968: jis0208<<14 | 0x1F<<7 | 0x04, - 28719 - 19968: jis0212<<14 | 0x28<<7 | 0x11, - 28720 - 19968: jis0208<<14 | 0x3E<<7 | 0x2F, - 28722 - 19968: jis0208<<14 | 0x3E<<7 | 0x31, - 28724 - 19968: jis0212<<14 | 0x28<<7 | 0x12, - 28727 - 19968: jis0212<<14 | 0x28<<7 | 0x13, - 28729 - 19968: jis0212<<14 | 0x28<<7 | 0x14, - 28732 - 19968: jis0212<<14 | 0x28<<7 | 0x15, - 28734 - 19968: jis0208<<14 | 0x3E<<7 | 0x30, - 28739 - 19968: jis0212<<14 | 0x28<<7 | 0x16, - 28740 - 19968: jis0212<<14 | 0x28<<7 | 0x17, - 28744 - 19968: jis0212<<14 | 0x28<<7 | 0x18, - 28745 - 19968: jis0212<<14 | 0x28<<7 | 0x19, - 28746 - 19968: jis0212<<14 | 0x28<<7 | 0x1A, - 28747 - 19968: jis0212<<14 | 0x28<<7 | 0x1B, - 28748 - 19968: jis0208<<14 | 0x3D<<7 | 0x54, - 28750 - 19968: jis0212<<14 | 0x28<<7 | 0x20, - 28753 - 19968: jis0208<<14 | 0x3E<<7 | 0x32, - 28756 - 19968: jis0212<<14 | 0x28<<7 | 0x1C, - 28757 - 19968: jis0212<<14 | 0x28<<7 | 0x1D, - 28760 - 19968: jis0208<<14 | 0x25<<7 | 0x46, - 28765 - 19968: jis0212<<14 | 0x28<<7 | 0x1E, - 28766 - 19968: jis0212<<14 | 0x28<<7 | 0x1F, - 28771 - 19968: jis0208<<14 | 0x3E<<7 | 0x33, - 28772 - 19968: jis0212<<14 | 0x28<<7 | 0x21, - 28773 - 19968: jis0212<<14 | 0x28<<7 | 0x22, - 28779 - 19968: jis0208<<14 | 0x11<<7 | 0x2F, - 28780 - 19968: jis0212<<14 | 0x28<<7 | 0x23, - 28782 - 19968: jis0212<<14 | 0x28<<7 | 0x24, - 28783 - 19968: jis0208<<14 | 0x24<<7 | 0x53, - 28784 - 19968: jis0208<<14 | 0x12<<7 | 0x04, - 28789 - 19968: jis0212<<14 | 0x28<<7 | 0x25, - 28790 - 19968: jis0212<<14 | 0x28<<7 | 0x26, - 28792 - 19968: jis0208<<14 | 0x14<<7 | 0x43, - 28796 - 19968: jis0208<<14 | 0x1B<<7 | 0x3D, - 28797 - 19968: jis0208<<14 | 0x19<<7 | 0x31, - 28798 - 19968: jis0212<<14 | 0x28<<7 | 0x27, - 28801 - 19968: jis0212<<14 | 0x28<<7 | 0x28, - 28805 - 19968: jis0208<<14 | 0x59<<7 | 0x53, - 28806 - 19968: jis0212<<14 | 0x28<<7 | 0x2A, - 28809 - 19968: jis0208<<14 | 0x2E<<7 | 0x06, - 28810 - 19968: jis0208<<14 | 0x1E<<7 | 0x45, - 28814 - 19968: jis0208<<14 | 0x10<<7 | 0x49, - 28818 - 19968: jis0208<<14 | 0x3E<<7 | 0x35, - 28820 - 19968: jis0212<<14 | 0x28<<7 | 0x2B, - 28821 - 19968: jis0212<<14 | 0x28<<7 | 0x2C, - 28822 - 19968: jis0212<<14 | 0x28<<7 | 0x2D, - 28823 - 19968: jis0212<<14 | 0x28<<7 | 0x2E, - 28824 - 19968: jis0212<<14 | 0x28<<7 | 0x2F, - 28825 - 19968: jis0208<<14 | 0x3E<<7 | 0x34, - 28827 - 19968: jis0212<<14 | 0x28<<7 | 0x30, - 28836 - 19968: jis0212<<14 | 0x28<<7 | 0x31, - 28843 - 19968: jis0208<<14 | 0x59<<7 | 0x54, - 28844 - 19968: jis0208<<14 | 0x3E<<7 | 0x38, - 28845 - 19968: jis0208<<14 | 0x22<<7 | 0x19, - 28846 - 19968: jis0208<<14 | 0x3E<<7 | 0x3B, - 28847 - 19968: jis0208<<14 | 0x3E<<7 | 0x36, - 28848 - 19968: jis0212<<14 | 0x28<<7 | 0x33, - 28849 - 19968: jis0212<<14 | 0x28<<7 | 0x34, - 28851 - 19968: jis0208<<14 | 0x3E<<7 | 0x3A, - 28852 - 19968: jis0212<<14 | 0x28<<7 | 0x35, - 28855 - 19968: jis0212<<14 | 0x28<<7 | 0x36, - 28856 - 19968: jis0208<<14 | 0x3E<<7 | 0x39, - 28857 - 19968: jis0208<<14 | 0x24<<7 | 0x1F, - 28858 - 19968: jis0208<<14 | 0x0F<<7 | 0x38, - 28859 - 19968: jis0208<<14 | 0x58<<7 | 0x06, - 28872 - 19968: jis0208<<14 | 0x2D<<7 | 0x54, - 28874 - 19968: jis0212<<14 | 0x28<<7 | 0x37, - 28875 - 19968: jis0208<<14 | 0x3E<<7 | 0x3D, - 28879 - 19968: jis0208<<14 | 0x10<<7 | 0x07, - 28881 - 19968: jis0212<<14 | 0x28<<7 | 0x38, - 28883 - 19968: jis0212<<14 | 0x28<<7 | 0x39, - 28884 - 19968: jis0212<<14 | 0x28<<7 | 0x3A, - 28885 - 19968: jis0212<<14 | 0x28<<7 | 0x3B, - 28886 - 19968: jis0212<<14 | 0x28<<7 | 0x3C, - 28888 - 19968: jis0212<<14 | 0x28<<7 | 0x3D, - 28889 - 19968: jis0208<<14 | 0x3E<<7 | 0x3F, - 28892 - 19968: jis0212<<14 | 0x28<<7 | 0x3E, - 28893 - 19968: jis0208<<14 | 0x3E<<7 | 0x3E, - 28895 - 19968: jis0208<<14 | 0x3E<<7 | 0x3C, - 28900 - 19968: jis0212<<14 | 0x28<<7 | 0x3F, - 28913 - 19968: jis0208<<14 | 0x3E<<7 | 0x37, - 28921 - 19968: jis0208<<14 | 0x2A<<7 | 0x02, - 28922 - 19968: jis0212<<14 | 0x28<<7 | 0x40, - 28925 - 19968: jis0208<<14 | 0x3E<<7 | 0x41, - 28931 - 19968: jis0212<<14 | 0x28<<7 | 0x41, - 28932 - 19968: jis0208<<14 | 0x59<<7 | 0x56, - 28933 - 19968: jis0212<<14 | 0x28<<7 | 0x43, - 28934 - 19968: jis0212<<14 | 0x28<<7 | 0x44, - 28935 - 19968: jis0212<<14 | 0x28<<7 | 0x45, - 28937 - 19968: jis0208<<14 | 0x3E<<7 | 0x40, - 28939 - 19968: jis0212<<14 | 0x28<<7 | 0x46, - 28940 - 19968: jis0212<<14 | 0x28<<7 | 0x47, - 28943 - 19968: jis0208<<14 | 0x59<<7 | 0x55, - 28948 - 19968: jis0208<<14 | 0x10<<7 | 0x4A, - 28953 - 19968: jis0208<<14 | 0x3E<<7 | 0x43, - 28954 - 19968: jis0208<<14 | 0x29<<7 | 0x11, - 28956 - 19968: jis0208<<14 | 0x3E<<7 | 0x42, - 28958 - 19968: jis0212<<14 | 0x28<<7 | 0x49, - 28960 - 19968: jis0212<<14 | 0x28<<7 | 0x4A, - 28961 - 19968: jis0208<<14 | 0x2B<<7 | 0x14, - 28966 - 19968: jis0208<<14 | 0x1D<<7 | 0x26, - 28971 - 19968: jis0212<<14 | 0x28<<7 | 0x4B, - 28973 - 19968: jis0212<<14 | 0x28<<7 | 0x4C, - 28975 - 19968: jis0212<<14 | 0x28<<7 | 0x4D, - 28976 - 19968: jis0212<<14 | 0x28<<7 | 0x4E, - 28977 - 19968: jis0212<<14 | 0x28<<7 | 0x4F, - 28982 - 19968: jis0208<<14 | 0x20<<7 | 0x12, - 28984 - 19968: jis0212<<14 | 0x28<<7 | 0x50, - 28988 - 19968: jis0208<<14 | 0x1D<<7 | 0x25, - 28993 - 19968: jis0212<<14 | 0x28<<7 | 0x51, - 28997 - 19968: jis0212<<14 | 0x28<<7 | 0x52, - 28998 - 19968: jis0208<<14 | 0x59<<7 | 0x58, - 28999 - 19968: jis0208<<14 | 0x59<<7 | 0x59, - 29001 - 19968: jis0208<<14 | 0x2D<<7 | 0x5A, - 29002 - 19968: jis0212<<14 | 0x28<<7 | 0x55, - 29003 - 19968: jis0212<<14 | 0x28<<7 | 0x56, - 29004 - 19968: jis0208<<14 | 0x3E<<7 | 0x49, - 29006 - 19968: jis0208<<14 | 0x1F<<7 | 0x58, - 29008 - 19968: jis0212<<14 | 0x28<<7 | 0x57, - 29010 - 19968: jis0212<<14 | 0x28<<7 | 0x58, - 29013 - 19968: jis0208<<14 | 0x3E<<7 | 0x45, - 29014 - 19968: jis0208<<14 | 0x3E<<7 | 0x4A, - 29015 - 19968: jis0212<<14 | 0x28<<7 | 0x59, - 29017 - 19968: jis0208<<14 | 0x10<<7 | 0x4B, - 29018 - 19968: jis0212<<14 | 0x28<<7 | 0x5A, - 29020 - 19968: jis0208<<14 | 0x59<<7 | 0x57, - 29022 - 19968: jis0212<<14 | 0x28<<7 | 0x5C, - 29024 - 19968: jis0212<<14 | 0x28<<7 | 0x5D, - 29026 - 19968: jis0208<<14 | 0x3E<<7 | 0x48, - 29028 - 19968: jis0208<<14 | 0x26<<7 | 0x40, - 29029 - 19968: jis0208<<14 | 0x3E<<7 | 0x44, - 29030 - 19968: jis0208<<14 | 0x3E<<7 | 0x47, - 29031 - 19968: jis0208<<14 | 0x1D<<7 | 0x27, - 29032 - 19968: jis0212<<14 | 0x29<<7 | 0x00, - 29033 - 19968: jis0208<<14 | 0x27<<7 | 0x30, - 29036 - 19968: jis0208<<14 | 0x3E<<7 | 0x4B, - 29038 - 19968: jis0208<<14 | 0x1B<<7 | 0x30, - 29049 - 19968: jis0212<<14 | 0x29<<7 | 0x01, - 29053 - 19968: jis0208<<14 | 0x1F<<7 | 0x59, - 29056 - 19968: jis0212<<14 | 0x29<<7 | 0x02, - 29060 - 19968: jis0208<<14 | 0x3E<<7 | 0x4E, - 29061 - 19968: jis0212<<14 | 0x29<<7 | 0x03, - 29063 - 19968: jis0212<<14 | 0x29<<7 | 0x04, - 29064 - 19968: jis0208<<14 | 0x3E<<7 | 0x46, - 29066 - 19968: jis0208<<14 | 0x16<<7 | 0x06, - 29068 - 19968: jis0212<<14 | 0x29<<7 | 0x05, - 29071 - 19968: jis0208<<14 | 0x3E<<7 | 0x4C, - 29074 - 19968: jis0212<<14 | 0x29<<7 | 0x06, - 29076 - 19968: jis0208<<14 | 0x2C<<7 | 0x2F, - 29077 - 19968: jis0208<<14 | 0x3E<<7 | 0x4F, - 29081 - 19968: jis0208<<14 | 0x53<<7 | 0x05, - 29082 - 19968: jis0212<<14 | 0x29<<7 | 0x07, - 29083 - 19968: jis0212<<14 | 0x29<<7 | 0x08, - 29087 - 19968: jis0208<<14 | 0x1C<<7 | 0x2E, - 29088 - 19968: jis0212<<14 | 0x29<<7 | 0x09, - 29090 - 19968: jis0212<<14 | 0x29<<7 | 0x0A, - 29096 - 19968: jis0208<<14 | 0x3E<<7 | 0x50, - 29100 - 19968: jis0208<<14 | 0x3E<<7 | 0x51, - 29103 - 19968: jis0212<<14 | 0x29<<7 | 0x0B, - 29104 - 19968: jis0212<<14 | 0x29<<7 | 0x0C, - 29105 - 19968: jis0208<<14 | 0x26<<7 | 0x0D, - 29106 - 19968: jis0212<<14 | 0x29<<7 | 0x0D, - 29107 - 19968: jis0212<<14 | 0x29<<7 | 0x0E, - 29113 - 19968: jis0208<<14 | 0x3E<<7 | 0x53, - 29114 - 19968: jis0212<<14 | 0x29<<7 | 0x0F, - 29118 - 19968: jis0208<<14 | 0x3E<<7 | 0x54, - 29119 - 19968: jis0212<<14 | 0x29<<7 | 0x10, - 29120 - 19968: jis0212<<14 | 0x29<<7 | 0x11, - 29121 - 19968: jis0208<<14 | 0x59<<7 | 0x5B, - 29123 - 19968: jis0208<<14 | 0x26<<7 | 0x12, - 29124 - 19968: jis0212<<14 | 0x29<<7 | 0x13, - 29128 - 19968: jis0208<<14 | 0x24<<7 | 0x54, - 29129 - 19968: jis0208<<14 | 0x3E<<7 | 0x56, - 29131 - 19968: jis0212<<14 | 0x29<<7 | 0x14, - 29132 - 19968: jis0212<<14 | 0x29<<7 | 0x15, - 29134 - 19968: jis0208<<14 | 0x3E<<7 | 0x58, - 29136 - 19968: jis0208<<14 | 0x2D<<7 | 0x34, - 29138 - 19968: jis0208<<14 | 0x3E<<7 | 0x55, - 29139 - 19968: jis0212<<14 | 0x29<<7 | 0x16, - 29140 - 19968: jis0208<<14 | 0x3E<<7 | 0x57, - 29141 - 19968: jis0208<<14 | 0x10<<7 | 0x4C, - 29142 - 19968: jis0212<<14 | 0x29<<7 | 0x17, - 29143 - 19968: jis0208<<14 | 0x3E<<7 | 0x52, - 29145 - 19968: jis0212<<14 | 0x29<<7 | 0x18, - 29146 - 19968: jis0212<<14 | 0x29<<7 | 0x19, - 29148 - 19968: jis0212<<14 | 0x29<<7 | 0x1A, - 29151 - 19968: jis0208<<14 | 0x32<<7 | 0x3A, - 29152 - 19968: jis0208<<14 | 0x3E<<7 | 0x59, - 29157 - 19968: jis0208<<14 | 0x20<<7 | 0x46, - 29158 - 19968: jis0208<<14 | 0x1A<<7 | 0x17, - 29159 - 19968: jis0208<<14 | 0x3E<<7 | 0x5B, - 29164 - 19968: jis0208<<14 | 0x3E<<7 | 0x5A, - 29165 - 19968: jis0208<<14 | 0x1E<<7 | 0x03, - 29166 - 19968: jis0208<<14 | 0x31<<7 | 0x38, - 29173 - 19968: jis0208<<14 | 0x3E<<7 | 0x5C, - 29176 - 19968: jis0212<<14 | 0x29<<7 | 0x1B, - 29177 - 19968: jis0208<<14 | 0x3F<<7 | 0x00, - 29179 - 19968: jis0208<<14 | 0x3E<<7 | 0x4D, - 29180 - 19968: jis0208<<14 | 0x3E<<7 | 0x5D, - 29182 - 19968: jis0208<<14 | 0x59<<7 | 0x5C, - 29183 - 19968: jis0208<<14 | 0x3F<<7 | 0x01, - 29184 - 19968: jis0212<<14 | 0x29<<7 | 0x1D, - 29190 - 19968: jis0208<<14 | 0x26<<7 | 0x59, - 29191 - 19968: jis0212<<14 | 0x29<<7 | 0x1E, - 29192 - 19968: jis0212<<14 | 0x29<<7 | 0x1F, - 29193 - 19968: jis0212<<14 | 0x29<<7 | 0x20, - 29197 - 19968: jis0208<<14 | 0x3F<<7 | 0x02, - 29200 - 19968: jis0208<<14 | 0x3F<<7 | 0x03, - 29203 - 19968: jis0212<<14 | 0x29<<7 | 0x21, - 29207 - 19968: jis0212<<14 | 0x29<<7 | 0x22, - 29210 - 19968: jis0212<<14 | 0x29<<7 | 0x23, - 29211 - 19968: jis0208<<14 | 0x3F<<7 | 0x04, - 29213 - 19968: jis0212<<14 | 0x29<<7 | 0x24, - 29215 - 19968: jis0212<<14 | 0x29<<7 | 0x25, - 29220 - 19968: jis0212<<14 | 0x29<<7 | 0x26, - 29224 - 19968: jis0208<<14 | 0x3F<<7 | 0x05, - 29226 - 19968: jis0208<<14 | 0x23<<7 | 0x3D, - 29227 - 19968: jis0212<<14 | 0x29<<7 | 0x27, - 29228 - 19968: jis0208<<14 | 0x3F<<7 | 0x07, - 29229 - 19968: jis0208<<14 | 0x3F<<7 | 0x06, - 29231 - 19968: jis0212<<14 | 0x29<<7 | 0x28, - 29232 - 19968: jis0208<<14 | 0x3F<<7 | 0x08, - 29234 - 19968: jis0208<<14 | 0x3F<<7 | 0x09, - 29236 - 19968: jis0212<<14 | 0x29<<7 | 0x29, - 29237 - 19968: jis0208<<14 | 0x1B<<7 | 0x3E, - 29238 - 19968: jis0208<<14 | 0x28<<7 | 0x42, - 29240 - 19968: jis0212<<14 | 0x29<<7 | 0x2A, - 29241 - 19968: jis0212<<14 | 0x29<<7 | 0x2B, - 29242 - 19968: jis0208<<14 | 0x2B<<7 | 0x4B, - 29243 - 19968: jis0208<<14 | 0x3F<<7 | 0x0A, - 29244 - 19968: jis0208<<14 | 0x3F<<7 | 0x0B, - 29245 - 19968: jis0208<<14 | 0x20<<7 | 0x35, - 29246 - 19968: jis0208<<14 | 0x1B<<7 | 0x03, - 29247 - 19968: jis0208<<14 | 0x3F<<7 | 0x0C, - 29248 - 19968: jis0208<<14 | 0x3F<<7 | 0x0D, - 29249 - 19968: jis0212<<14 | 0x29<<7 | 0x2C, - 29250 - 19968: jis0212<<14 | 0x29<<7 | 0x2D, - 29251 - 19968: jis0212<<14 | 0x29<<7 | 0x2E, - 29253 - 19968: jis0212<<14 | 0x29<<7 | 0x2F, - 29254 - 19968: jis0208<<14 | 0x3F<<7 | 0x0E, - 29255 - 19968: jis0208<<14 | 0x29<<7 | 0x31, - 29256 - 19968: jis0208<<14 | 0x27<<7 | 0x26, - 29259 - 19968: jis0208<<14 | 0x3F<<7 | 0x0F, - 29260 - 19968: jis0208<<14 | 0x26<<7 | 0x36, - 29262 - 19968: jis0212<<14 | 0x29<<7 | 0x30, - 29263 - 19968: jis0212<<14 | 0x29<<7 | 0x31, - 29264 - 19968: jis0212<<14 | 0x29<<7 | 0x32, - 29266 - 19968: jis0208<<14 | 0x23<<7 | 0x0C, - 29267 - 19968: jis0212<<14 | 0x29<<7 | 0x33, - 29269 - 19968: jis0212<<14 | 0x29<<7 | 0x34, - 29270 - 19968: jis0212<<14 | 0x29<<7 | 0x35, - 29272 - 19968: jis0208<<14 | 0x3F<<7 | 0x10, - 29273 - 19968: jis0208<<14 | 0x11<<7 | 0x46, - 29274 - 19968: jis0212<<14 | 0x29<<7 | 0x36, - 29275 - 19968: jis0208<<14 | 0x14<<7 | 0x4C, - 29276 - 19968: jis0212<<14 | 0x29<<7 | 0x37, - 29277 - 19968: jis0208<<14 | 0x2B<<7 | 0x25, - 29278 - 19968: jis0212<<14 | 0x29<<7 | 0x38, - 29279 - 19968: jis0208<<14 | 0x2B<<7 | 0x15, - 29280 - 19968: jis0212<<14 | 0x29<<7 | 0x39, - 29281 - 19968: jis0208<<14 | 0x11<<7 | 0x13, - 29282 - 19968: jis0208<<14 | 0x2E<<7 | 0x13, - 29283 - 19968: jis0212<<14 | 0x29<<7 | 0x3A, - 29287 - 19968: jis0208<<14 | 0x2A<<7 | 0x31, - 29288 - 19968: jis0212<<14 | 0x29<<7 | 0x3B, - 29289 - 19968: jis0208<<14 | 0x29<<7 | 0x09, - 29291 - 19968: jis0212<<14 | 0x29<<7 | 0x3C, - 29294 - 19968: jis0212<<14 | 0x29<<7 | 0x3D, - 29295 - 19968: jis0212<<14 | 0x29<<7 | 0x3E, - 29297 - 19968: jis0212<<14 | 0x29<<7 | 0x3F, - 29298 - 19968: jis0208<<14 | 0x1F<<7 | 0x16, - 29300 - 19968: jis0208<<14 | 0x3F<<7 | 0x11, - 29303 - 19968: jis0212<<14 | 0x29<<7 | 0x40, - 29304 - 19968: jis0212<<14 | 0x29<<7 | 0x41, - 29305 - 19968: jis0208<<14 | 0x25<<7 | 0x22, - 29307 - 19968: jis0212<<14 | 0x29<<7 | 0x42, - 29308 - 19968: jis0212<<14 | 0x29<<7 | 0x43, - 29309 - 19968: jis0208<<14 | 0x17<<7 | 0x02, - 29310 - 19968: jis0208<<14 | 0x3F<<7 | 0x12, - 29311 - 19968: jis0212<<14 | 0x29<<7 | 0x44, - 29312 - 19968: jis0208<<14 | 0x19<<7 | 0x33, - 29313 - 19968: jis0208<<14 | 0x3F<<7 | 0x14, - 29314 - 19968: jis0208<<14 | 0x3F<<7 | 0x13, - 29316 - 19968: jis0212<<14 | 0x29<<7 | 0x45, - 29319 - 19968: jis0208<<14 | 0x3F<<7 | 0x15, - 29321 - 19968: jis0212<<14 | 0x29<<7 | 0x46, - 29325 - 19968: jis0212<<14 | 0x29<<7 | 0x47, - 29326 - 19968: jis0212<<14 | 0x29<<7 | 0x48, - 29330 - 19968: jis0208<<14 | 0x3F<<7 | 0x16, - 29331 - 19968: jis0212<<14 | 0x29<<7 | 0x49, - 29334 - 19968: jis0208<<14 | 0x3F<<7 | 0x17, - 29339 - 19968: jis0212<<14 | 0x29<<7 | 0x4A, - 29344 - 19968: jis0208<<14 | 0x14<<7 | 0x1D, - 29346 - 19968: jis0208<<14 | 0x3F<<7 | 0x18, - 29351 - 19968: jis0208<<14 | 0x3F<<7 | 0x19, - 29352 - 19968: jis0212<<14 | 0x29<<7 | 0x4B, - 29356 - 19968: jis0208<<14 | 0x17<<7 | 0x03, - 29357 - 19968: jis0212<<14 | 0x29<<7 | 0x4C, - 29358 - 19968: jis0212<<14 | 0x29<<7 | 0x4D, - 29359 - 19968: jis0208<<14 | 0x27<<7 | 0x27, - 29361 - 19968: jis0208<<14 | 0x59<<7 | 0x5D, - 29362 - 19968: jis0208<<14 | 0x3F<<7 | 0x1B, - 29364 - 19968: jis0212<<14 | 0x29<<7 | 0x4F, - 29366 - 19968: jis0208<<14 | 0x1D<<7 | 0x54, - 29369 - 19968: jis0208<<14 | 0x3F<<7 | 0x1A, - 29374 - 19968: jis0208<<14 | 0x5A<<7 | 0x00, - 29377 - 19968: jis0212<<14 | 0x29<<7 | 0x51, - 29378 - 19968: jis0208<<14 | 0x15<<7 | 0x17, - 29379 - 19968: jis0208<<14 | 0x3F<<7 | 0x1C, - 29380 - 19968: jis0208<<14 | 0x3F<<7 | 0x1E, - 29382 - 19968: jis0208<<14 | 0x3F<<7 | 0x1D, - 29383 - 19968: jis0212<<14 | 0x29<<7 | 0x52, - 29385 - 19968: jis0212<<14 | 0x29<<7 | 0x53, - 29388 - 19968: jis0212<<14 | 0x29<<7 | 0x54, - 29390 - 19968: jis0208<<14 | 0x3F<<7 | 0x1F, - 29392 - 19968: jis0208<<14 | 0x17<<7 | 0x30, - 29394 - 19968: jis0208<<14 | 0x3F<<7 | 0x20, - 29397 - 19968: jis0212<<14 | 0x29<<7 | 0x55, - 29398 - 19968: jis0212<<14 | 0x29<<7 | 0x56, - 29399 - 19968: jis0208<<14 | 0x15<<7 | 0x48, - 29400 - 19968: jis0212<<14 | 0x29<<7 | 0x57, - 29401 - 19968: jis0208<<14 | 0x20<<7 | 0x1F, - 29403 - 19968: jis0208<<14 | 0x18<<7 | 0x5C, - 29407 - 19968: jis0212<<14 | 0x29<<7 | 0x58, - 29408 - 19968: jis0208<<14 | 0x3F<<7 | 0x22, - 29409 - 19968: jis0208<<14 | 0x3F<<7 | 0x23, - 29410 - 19968: jis0208<<14 | 0x3F<<7 | 0x21, - 29413 - 19968: jis0212<<14 | 0x29<<7 | 0x59, - 29417 - 19968: jis0208<<14 | 0x1B<<7 | 0x4C, - 29420 - 19968: jis0208<<14 | 0x25<<7 | 0x27, - 29421 - 19968: jis0208<<14 | 0x15<<7 | 0x18, - 29427 - 19968: jis0212<<14 | 0x29<<7 | 0x5A, - 29428 - 19968: jis0212<<14 | 0x29<<7 | 0x5B, - 29431 - 19968: jis0208<<14 | 0x3F<<7 | 0x25, - 29432 - 19968: jis0208<<14 | 0x22<<7 | 0x0B, - 29433 - 19968: jis0208<<14 | 0x3F<<7 | 0x24, - 29434 - 19968: jis0212<<14 | 0x29<<7 | 0x5C, - 29435 - 19968: jis0212<<14 | 0x29<<7 | 0x5D, - 29436 - 19968: jis0208<<14 | 0x2E<<7 | 0x14, - 29437 - 19968: jis0208<<14 | 0x26<<7 | 0x41, - 29438 - 19968: jis0212<<14 | 0x2A<<7 | 0x00, - 29442 - 19968: jis0212<<14 | 0x2A<<7 | 0x01, - 29444 - 19968: jis0212<<14 | 0x2A<<7 | 0x02, - 29445 - 19968: jis0212<<14 | 0x2A<<7 | 0x03, - 29447 - 19968: jis0212<<14 | 0x2A<<7 | 0x04, - 29450 - 19968: jis0208<<14 | 0x3F<<7 | 0x28, - 29451 - 19968: jis0212<<14 | 0x2A<<7 | 0x05, - 29453 - 19968: jis0212<<14 | 0x2A<<7 | 0x06, - 29458 - 19968: jis0212<<14 | 0x2A<<7 | 0x07, - 29459 - 19968: jis0212<<14 | 0x2A<<7 | 0x08, - 29462 - 19968: jis0208<<14 | 0x3F<<7 | 0x2A, - 29463 - 19968: jis0208<<14 | 0x3F<<7 | 0x27, - 29464 - 19968: jis0212<<14 | 0x2A<<7 | 0x09, - 29465 - 19968: jis0212<<14 | 0x2A<<7 | 0x0A, - 29467 - 19968: jis0208<<14 | 0x2B<<7 | 0x33, - 29468 - 19968: jis0208<<14 | 0x3F<<7 | 0x29, - 29469 - 19968: jis0208<<14 | 0x3F<<7 | 0x2B, - 29470 - 19968: jis0212<<14 | 0x2A<<7 | 0x0B, - 29471 - 19968: jis0208<<14 | 0x2D<<7 | 0x23, - 29474 - 19968: jis0212<<14 | 0x2A<<7 | 0x0C, - 29476 - 19968: jis0208<<14 | 0x5A<<7 | 0x01, - 29477 - 19968: jis0208<<14 | 0x3F<<7 | 0x2F, - 29479 - 19968: jis0212<<14 | 0x2A<<7 | 0x0E, - 29480 - 19968: jis0212<<14 | 0x2A<<7 | 0x0F, - 29481 - 19968: jis0208<<14 | 0x3F<<7 | 0x2E, - 29482 - 19968: jis0208<<14 | 0x22<<7 | 0x55, - 29483 - 19968: jis0208<<14 | 0x26<<7 | 0x0C, - 29484 - 19968: jis0212<<14 | 0x2A<<7 | 0x10, - 29486 - 19968: jis0208<<14 | 0x17<<7 | 0x04, - 29487 - 19968: jis0208<<14 | 0x3F<<7 | 0x2D, - 29489 - 19968: jis0212<<14 | 0x2A<<7 | 0x11, - 29490 - 19968: jis0212<<14 | 0x2A<<7 | 0x12, - 29492 - 19968: jis0208<<14 | 0x3F<<7 | 0x2C, - 29493 - 19968: jis0212<<14 | 0x2A<<7 | 0x13, - 29494 - 19968: jis0208<<14 | 0x2C<<7 | 0x10, - 29495 - 19968: jis0208<<14 | 0x2C<<7 | 0x11, - 29498 - 19968: jis0212<<14 | 0x2A<<7 | 0x14, - 29499 - 19968: jis0212<<14 | 0x2A<<7 | 0x15, - 29501 - 19968: jis0212<<14 | 0x2A<<7 | 0x16, - 29502 - 19968: jis0208<<14 | 0x3F<<7 | 0x30, - 29503 - 19968: jis0208<<14 | 0x10<<7 | 0x4D, - 29507 - 19968: jis0212<<14 | 0x2A<<7 | 0x17, - 29508 - 19968: jis0208<<14 | 0x18<<7 | 0x55, - 29509 - 19968: jis0208<<14 | 0x1A<<7 | 0x41, - 29517 - 19968: jis0212<<14 | 0x2A<<7 | 0x18, - 29518 - 19968: jis0208<<14 | 0x3F<<7 | 0x31, - 29519 - 19968: jis0208<<14 | 0x3F<<7 | 0x32, - 29520 - 19968: jis0212<<14 | 0x2A<<7 | 0x19, - 29522 - 19968: jis0212<<14 | 0x2A<<7 | 0x1A, - 29526 - 19968: jis0212<<14 | 0x2A<<7 | 0x1B, - 29527 - 19968: jis0208<<14 | 0x3F<<7 | 0x34, - 29528 - 19968: jis0212<<14 | 0x2A<<7 | 0x1C, - 29533 - 19968: jis0212<<14 | 0x2A<<7 | 0x1D, - 29534 - 19968: jis0212<<14 | 0x2A<<7 | 0x1E, - 29535 - 19968: jis0212<<14 | 0x2A<<7 | 0x1F, - 29536 - 19968: jis0212<<14 | 0x2A<<7 | 0x20, - 29539 - 19968: jis0208<<14 | 0x1C<<7 | 0x22, - 29542 - 19968: jis0212<<14 | 0x2A<<7 | 0x21, - 29543 - 19968: jis0212<<14 | 0x2A<<7 | 0x22, - 29544 - 19968: jis0208<<14 | 0x3F<<7 | 0x36, - 29545 - 19968: jis0212<<14 | 0x2A<<7 | 0x23, - 29546 - 19968: jis0208<<14 | 0x3F<<7 | 0x35, - 29547 - 19968: jis0212<<14 | 0x2A<<7 | 0x24, - 29548 - 19968: jis0212<<14 | 0x2A<<7 | 0x25, - 29550 - 19968: jis0212<<14 | 0x2A<<7 | 0x26, - 29551 - 19968: jis0212<<14 | 0x2A<<7 | 0x27, - 29552 - 19968: jis0208<<14 | 0x3F<<7 | 0x37, - 29553 - 19968: jis0212<<14 | 0x2A<<7 | 0x28, - 29554 - 19968: jis0208<<14 | 0x12<<7 | 0x2C, - 29557 - 19968: jis0208<<14 | 0x3F<<7 | 0x39, - 29559 - 19968: jis0208<<14 | 0x5A<<7 | 0x03, - 29560 - 19968: jis0208<<14 | 0x3F<<7 | 0x38, - 29561 - 19968: jis0212<<14 | 0x2A<<7 | 0x2A, - 29562 - 19968: jis0208<<14 | 0x3F<<7 | 0x3B, - 29563 - 19968: jis0208<<14 | 0x3F<<7 | 0x3A, - 29564 - 19968: jis0212<<14 | 0x2A<<7 | 0x2B, - 29568 - 19968: jis0212<<14 | 0x2A<<7 | 0x2C, - 29569 - 19968: jis0212<<14 | 0x2A<<7 | 0x2D, - 29571 - 19968: jis0212<<14 | 0x2A<<7 | 0x2E, - 29572 - 19968: jis0208<<14 | 0x17<<7 | 0x1B, - 29573 - 19968: jis0212<<14 | 0x2A<<7 | 0x2F, - 29574 - 19968: jis0212<<14 | 0x2A<<7 | 0x30, - 29575 - 19968: jis0208<<14 | 0x2D<<7 | 0x07, - 29577 - 19968: jis0208<<14 | 0x15<<7 | 0x2B, - 29579 - 19968: jis0208<<14 | 0x11<<7 | 0x05, - 29582 - 19968: jis0212<<14 | 0x2A<<7 | 0x31, - 29584 - 19968: jis0212<<14 | 0x2A<<7 | 0x32, - 29587 - 19968: jis0212<<14 | 0x2A<<7 | 0x33, - 29589 - 19968: jis0212<<14 | 0x2A<<7 | 0x34, - 29590 - 19968: jis0208<<14 | 0x15<<7 | 0x49, - 29591 - 19968: jis0212<<14 | 0x2A<<7 | 0x35, - 29592 - 19968: jis0212<<14 | 0x2A<<7 | 0x36, - 29596 - 19968: jis0212<<14 | 0x2A<<7 | 0x37, - 29598 - 19968: jis0212<<14 | 0x2A<<7 | 0x38, - 29599 - 19968: jis0212<<14 | 0x2A<<7 | 0x39, - 29600 - 19968: jis0212<<14 | 0x2A<<7 | 0x3A, - 29602 - 19968: jis0212<<14 | 0x2A<<7 | 0x3B, - 29605 - 19968: jis0212<<14 | 0x2A<<7 | 0x3C, - 29606 - 19968: jis0212<<14 | 0x2A<<7 | 0x3D, - 29609 - 19968: jis0208<<14 | 0x13<<7 | 0x40, - 29610 - 19968: jis0212<<14 | 0x2A<<7 | 0x3E, - 29611 - 19968: jis0212<<14 | 0x2A<<7 | 0x3F, - 29613 - 19968: jis0212<<14 | 0x2A<<7 | 0x40, - 29618 - 19968: jis0208<<14 | 0x2D<<7 | 0x47, - 29619 - 19968: jis0208<<14 | 0x3F<<7 | 0x3D, - 29621 - 19968: jis0212<<14 | 0x2A<<7 | 0x41, - 29623 - 19968: jis0212<<14 | 0x2A<<7 | 0x42, - 29625 - 19968: jis0212<<14 | 0x2A<<7 | 0x43, - 29627 - 19968: jis0208<<14 | 0x3F<<7 | 0x3F, - 29628 - 19968: jis0212<<14 | 0x2A<<7 | 0x44, - 29629 - 19968: jis0208<<14 | 0x5A<<7 | 0x04, - 29631 - 19968: jis0212<<14 | 0x2A<<7 | 0x46, - 29632 - 19968: jis0208<<14 | 0x3F<<7 | 0x40, - 29634 - 19968: jis0208<<14 | 0x11<<7 | 0x30, - 29637 - 19968: jis0212<<14 | 0x2A<<7 | 0x47, - 29638 - 19968: jis0212<<14 | 0x2A<<7 | 0x48, - 29640 - 19968: jis0208<<14 | 0x3F<<7 | 0x3C, - 29641 - 19968: jis0208<<14 | 0x5A<<7 | 0x05, - 29642 - 19968: jis0208<<14 | 0x1A<<7 | 0x18, - 29643 - 19968: jis0212<<14 | 0x2A<<7 | 0x4A, - 29644 - 19968: jis0212<<14 | 0x2A<<7 | 0x4B, - 29645 - 19968: jis0208<<14 | 0x23<<7 | 0x20, - 29646 - 19968: jis0208<<14 | 0x3F<<7 | 0x3E, - 29647 - 19968: jis0212<<14 | 0x2A<<7 | 0x4C, - 29650 - 19968: jis0208<<14 | 0x5A<<7 | 0x08, - 29651 - 19968: jis0212<<14 | 0x2A<<7 | 0x4E, - 29654 - 19968: jis0208<<14 | 0x5A<<7 | 0x06, - 29657 - 19968: jis0212<<14 | 0x2A<<7 | 0x50, - 29661 - 19968: jis0212<<14 | 0x2A<<7 | 0x51, - 29662 - 19968: jis0208<<14 | 0x3F<<7 | 0x43, - 29664 - 19968: jis0208<<14 | 0x1B<<7 | 0x4D, - 29665 - 19968: jis0212<<14 | 0x2A<<7 | 0x52, - 29667 - 19968: jis0208<<14 | 0x5A<<7 | 0x07, - 29669 - 19968: jis0208<<14 | 0x3F<<7 | 0x41, - 29670 - 19968: jis0212<<14 | 0x2A<<7 | 0x54, - 29671 - 19968: jis0212<<14 | 0x2A<<7 | 0x55, - 29673 - 19968: jis0212<<14 | 0x2A<<7 | 0x56, - 29674 - 19968: jis0208<<14 | 0x16<<7 | 0x1D, - 29677 - 19968: jis0208<<14 | 0x27<<7 | 0x28, - 29678 - 19968: jis0208<<14 | 0x3F<<7 | 0x42, - 29681 - 19968: jis0208<<14 | 0x3F<<7 | 0x5D, - 29684 - 19968: jis0212<<14 | 0x2A<<7 | 0x57, - 29685 - 19968: jis0208<<14 | 0x5A<<7 | 0x0A, - 29687 - 19968: jis0212<<14 | 0x2A<<7 | 0x59, - 29688 - 19968: jis0208<<14 | 0x3F<<7 | 0x48, - 29689 - 19968: jis0212<<14 | 0x2A<<7 | 0x5A, - 29690 - 19968: jis0212<<14 | 0x2A<<7 | 0x5B, - 29691 - 19968: jis0212<<14 | 0x2A<<7 | 0x5C, - 29693 - 19968: jis0212<<14 | 0x2A<<7 | 0x5D, - 29694 - 19968: jis0208<<14 | 0x17<<7 | 0x1C, - 29695 - 19968: jis0212<<14 | 0x2B<<7 | 0x00, - 29696 - 19968: jis0212<<14 | 0x2B<<7 | 0x01, - 29697 - 19968: jis0212<<14 | 0x2B<<7 | 0x02, - 29699 - 19968: jis0208<<14 | 0x14<<7 | 0x44, - 29700 - 19968: jis0212<<14 | 0x2B<<7 | 0x03, - 29701 - 19968: jis0208<<14 | 0x3F<<7 | 0x45, - 29702 - 19968: jis0208<<14 | 0x2C<<7 | 0x5C, - 29703 - 19968: jis0208<<14 | 0x5A<<7 | 0x09, - 29705 - 19968: jis0208<<14 | 0x2D<<7 | 0x0F, - 29706 - 19968: jis0212<<14 | 0x2B<<7 | 0x05, - 29713 - 19968: jis0212<<14 | 0x2B<<7 | 0x06, - 29722 - 19968: jis0212<<14 | 0x2B<<7 | 0x07, - 29723 - 19968: jis0212<<14 | 0x2B<<7 | 0x08, - 29730 - 19968: jis0208<<14 | 0x21<<7 | 0x55, - 29732 - 19968: jis0212<<14 | 0x2B<<7 | 0x09, - 29733 - 19968: jis0208<<14 | 0x3F<<7 | 0x47, - 29734 - 19968: jis0208<<14 | 0x5A<<7 | 0x0B, - 29736 - 19968: jis0212<<14 | 0x2B<<7 | 0x0B, - 29737 - 19968: jis0208<<14 | 0x5A<<7 | 0x0D, - 29738 - 19968: jis0208<<14 | 0x5A<<7 | 0x0C, - 29739 - 19968: jis0212<<14 | 0x2B<<7 | 0x0E, - 29740 - 19968: jis0212<<14 | 0x2B<<7 | 0x0F, - 29741 - 19968: jis0212<<14 | 0x2B<<7 | 0x10, - 29742 - 19968: jis0208<<14 | 0x5A<<7 | 0x0E, - 29743 - 19968: jis0212<<14 | 0x2B<<7 | 0x12, - 29744 - 19968: jis0212<<14 | 0x2B<<7 | 0x13, - 29745 - 19968: jis0212<<14 | 0x2B<<7 | 0x14, - 29746 - 19968: jis0208<<14 | 0x3F<<7 | 0x49, - 29747 - 19968: jis0208<<14 | 0x2D<<7 | 0x35, - 29748 - 19968: jis0208<<14 | 0x15<<7 | 0x36, - 29749 - 19968: jis0208<<14 | 0x27<<7 | 0x5B, - 29750 - 19968: jis0208<<14 | 0x26<<7 | 0x29, - 29753 - 19968: jis0212<<14 | 0x2B<<7 | 0x15, - 29754 - 19968: jis0208<<14 | 0x3F<<7 | 0x4A, - 29759 - 19968: jis0208<<14 | 0x3F<<7 | 0x4C, - 29760 - 19968: jis0212<<14 | 0x2B<<7 | 0x16, - 29761 - 19968: jis0208<<14 | 0x3F<<7 | 0x4F, - 29763 - 19968: jis0212<<14 | 0x2B<<7 | 0x17, - 29764 - 19968: jis0212<<14 | 0x2B<<7 | 0x18, - 29766 - 19968: jis0212<<14 | 0x2B<<7 | 0x19, - 29767 - 19968: jis0212<<14 | 0x2B<<7 | 0x1A, - 29771 - 19968: jis0212<<14 | 0x2B<<7 | 0x1B, - 29773 - 19968: jis0212<<14 | 0x2B<<7 | 0x1C, - 29777 - 19968: jis0212<<14 | 0x2B<<7 | 0x1D, - 29778 - 19968: jis0212<<14 | 0x2B<<7 | 0x1E, - 29781 - 19968: jis0208<<14 | 0x3F<<7 | 0x4B, - 29783 - 19968: jis0212<<14 | 0x2B<<7 | 0x1F, - 29785 - 19968: jis0208<<14 | 0x3F<<7 | 0x4E, - 29786 - 19968: jis0208<<14 | 0x17<<7 | 0x49, - 29787 - 19968: jis0208<<14 | 0x10<<7 | 0x2C, - 29788 - 19968: jis0208<<14 | 0x3F<<7 | 0x50, - 29789 - 19968: jis0212<<14 | 0x2B<<7 | 0x20, - 29790 - 19968: jis0208<<14 | 0x1E<<7 | 0x4F, - 29791 - 19968: jis0208<<14 | 0x3F<<7 | 0x4D, - 29792 - 19968: jis0208<<14 | 0x2D<<7 | 0x3B, - 29794 - 19968: jis0208<<14 | 0x5A<<7 | 0x0F, - 29795 - 19968: jis0208<<14 | 0x3F<<7 | 0x53, - 29796 - 19968: jis0208<<14 | 0x53<<7 | 0x03, - 29798 - 19968: jis0212<<14 | 0x2B<<7 | 0x22, - 29799 - 19968: jis0212<<14 | 0x2B<<7 | 0x23, - 29800 - 19968: jis0212<<14 | 0x2B<<7 | 0x24, - 29801 - 19968: jis0208<<14 | 0x3F<<7 | 0x51, - 29802 - 19968: jis0208<<14 | 0x3F<<7 | 0x54, - 29803 - 19968: jis0212<<14 | 0x2B<<7 | 0x25, - 29805 - 19968: jis0212<<14 | 0x2B<<7 | 0x26, - 29806 - 19968: jis0212<<14 | 0x2B<<7 | 0x27, - 29807 - 19968: jis0208<<14 | 0x3F<<7 | 0x46, - 29808 - 19968: jis0208<<14 | 0x3F<<7 | 0x52, - 29809 - 19968: jis0212<<14 | 0x2B<<7 | 0x28, - 29810 - 19968: jis0212<<14 | 0x2B<<7 | 0x29, - 29811 - 19968: jis0208<<14 | 0x19<<7 | 0x1B, - 29814 - 19968: jis0208<<14 | 0x3F<<7 | 0x55, - 29822 - 19968: jis0208<<14 | 0x3F<<7 | 0x56, - 29824 - 19968: jis0212<<14 | 0x2B<<7 | 0x2A, - 29825 - 19968: jis0212<<14 | 0x2B<<7 | 0x2B, - 29827 - 19968: jis0208<<14 | 0x2C<<7 | 0x5D, - 29829 - 19968: jis0212<<14 | 0x2B<<7 | 0x2C, - 29830 - 19968: jis0212<<14 | 0x2B<<7 | 0x2D, - 29831 - 19968: jis0212<<14 | 0x2B<<7 | 0x2E, - 29833 - 19968: jis0208<<14 | 0x5A<<7 | 0x10, - 29835 - 19968: jis0208<<14 | 0x3F<<7 | 0x57, - 29839 - 19968: jis0212<<14 | 0x2B<<7 | 0x30, - 29840 - 19968: jis0212<<14 | 0x2B<<7 | 0x31, - 29841 - 19968: jis0212<<14 | 0x2B<<7 | 0x32, - 29842 - 19968: jis0212<<14 | 0x2B<<7 | 0x33, - 29848 - 19968: jis0212<<14 | 0x2B<<7 | 0x34, - 29849 - 19968: jis0212<<14 | 0x2B<<7 | 0x35, - 29850 - 19968: jis0212<<14 | 0x2B<<7 | 0x36, - 29852 - 19968: jis0212<<14 | 0x2B<<7 | 0x37, - 29854 - 19968: jis0208<<14 | 0x3F<<7 | 0x58, - 29855 - 19968: jis0208<<14 | 0x5A<<7 | 0x11, - 29856 - 19968: jis0212<<14 | 0x2B<<7 | 0x39, - 29857 - 19968: jis0212<<14 | 0x2B<<7 | 0x3A, - 29858 - 19968: jis0208<<14 | 0x3F<<7 | 0x44, - 29859 - 19968: jis0212<<14 | 0x2B<<7 | 0x3B, - 29862 - 19968: jis0212<<14 | 0x2B<<7 | 0x3C, - 29863 - 19968: jis0208<<14 | 0x3F<<7 | 0x59, - 29864 - 19968: jis0212<<14 | 0x2B<<7 | 0x3D, - 29865 - 19968: jis0212<<14 | 0x2B<<7 | 0x3E, - 29866 - 19968: jis0212<<14 | 0x2B<<7 | 0x3F, - 29867 - 19968: jis0212<<14 | 0x2B<<7 | 0x40, - 29870 - 19968: jis0212<<14 | 0x2B<<7 | 0x41, - 29871 - 19968: jis0212<<14 | 0x2B<<7 | 0x42, - 29872 - 19968: jis0208<<14 | 0x13<<7 | 0x23, - 29873 - 19968: jis0212<<14 | 0x2B<<7 | 0x43, - 29874 - 19968: jis0212<<14 | 0x2B<<7 | 0x44, - 29877 - 19968: jis0212<<14 | 0x2B<<7 | 0x45, - 29881 - 19968: jis0212<<14 | 0x2B<<7 | 0x46, - 29883 - 19968: jis0212<<14 | 0x2B<<7 | 0x47, - 29885 - 19968: jis0208<<14 | 0x1B<<7 | 0x04, - 29887 - 19968: jis0212<<14 | 0x2B<<7 | 0x48, - 29896 - 19968: jis0212<<14 | 0x2B<<7 | 0x49, - 29897 - 19968: jis0212<<14 | 0x2B<<7 | 0x4A, - 29898 - 19968: jis0208<<14 | 0x3F<<7 | 0x5A, - 29900 - 19968: jis0212<<14 | 0x2B<<7 | 0x4B, - 29903 - 19968: jis0208<<14 | 0x3F<<7 | 0x5B, - 29904 - 19968: jis0212<<14 | 0x2B<<7 | 0x4C, - 29907 - 19968: jis0212<<14 | 0x2B<<7 | 0x4D, - 29908 - 19968: jis0208<<14 | 0x3F<<7 | 0x5C, - 29912 - 19968: jis0212<<14 | 0x2B<<7 | 0x4E, - 29914 - 19968: jis0212<<14 | 0x2B<<7 | 0x4F, - 29915 - 19968: jis0212<<14 | 0x2B<<7 | 0x50, - 29916 - 19968: jis0208<<14 | 0x10<<7 | 0x1A, - 29918 - 19968: jis0212<<14 | 0x2B<<7 | 0x51, - 29919 - 19968: jis0212<<14 | 0x2B<<7 | 0x52, - 29920 - 19968: jis0208<<14 | 0x40<<7 | 0x00, - 29922 - 19968: jis0208<<14 | 0x28<<7 | 0x1A, - 29923 - 19968: jis0208<<14 | 0x40<<7 | 0x01, - 29924 - 19968: jis0212<<14 | 0x2B<<7 | 0x53, - 29926 - 19968: jis0208<<14 | 0x13<<7 | 0x03, - 29927 - 19968: jis0208<<14 | 0x40<<7 | 0x02, - 29928 - 19968: jis0212<<14 | 0x2B<<7 | 0x54, - 29929 - 19968: jis0208<<14 | 0x40<<7 | 0x03, - 29930 - 19968: jis0212<<14 | 0x2B<<7 | 0x55, - 29931 - 19968: jis0212<<14 | 0x2B<<7 | 0x56, - 29934 - 19968: jis0208<<14 | 0x40<<7 | 0x04, - 29935 - 19968: jis0212<<14 | 0x2B<<7 | 0x57, - 29936 - 19968: jis0208<<14 | 0x40<<7 | 0x06, - 29937 - 19968: jis0208<<14 | 0x40<<7 | 0x07, - 29938 - 19968: jis0208<<14 | 0x40<<7 | 0x05, - 29940 - 19968: jis0212<<14 | 0x2B<<7 | 0x58, - 29942 - 19968: jis0208<<14 | 0x28<<7 | 0x32, - 29943 - 19968: jis0208<<14 | 0x40<<7 | 0x09, - 29944 - 19968: jis0208<<14 | 0x40<<7 | 0x08, - 29946 - 19968: jis0212<<14 | 0x2B<<7 | 0x59, - 29947 - 19968: jis0212<<14 | 0x2B<<7 | 0x5A, - 29948 - 19968: jis0212<<14 | 0x2B<<7 | 0x5B, - 29951 - 19968: jis0212<<14 | 0x2B<<7 | 0x5C, - 29953 - 19968: jis0208<<14 | 0x5A<<7 | 0x12, - 29955 - 19968: jis0208<<14 | 0x40<<7 | 0x0B, - 29956 - 19968: jis0208<<14 | 0x40<<7 | 0x0A, - 29957 - 19968: jis0208<<14 | 0x40<<7 | 0x0C, - 29958 - 19968: jis0212<<14 | 0x2B<<7 | 0x5D, - 29964 - 19968: jis0208<<14 | 0x40<<7 | 0x0D, - 29965 - 19968: jis0208<<14 | 0x40<<7 | 0x0F, - 29966 - 19968: jis0208<<14 | 0x40<<7 | 0x0E, - 29969 - 19968: jis0208<<14 | 0x18<<7 | 0x58, - 29970 - 19968: jis0212<<14 | 0x2C<<7 | 0x00, - 29971 - 19968: jis0208<<14 | 0x40<<7 | 0x11, - 29973 - 19968: jis0208<<14 | 0x40<<7 | 0x10, - 29974 - 19968: jis0212<<14 | 0x2C<<7 | 0x01, - 29975 - 19968: jis0212<<14 | 0x2C<<7 | 0x02, - 29976 - 19968: jis0208<<14 | 0x13<<7 | 0x24, - 29978 - 19968: jis0208<<14 | 0x1E<<7 | 0x32, - 29980 - 19968: jis0208<<14 | 0x24<<7 | 0x1B, - 29982 - 19968: jis0208<<14 | 0x40<<7 | 0x12, - 29983 - 19968: jis0208<<14 | 0x1F<<7 | 0x17, - 29984 - 19968: jis0212<<14 | 0x2C<<7 | 0x03, - 29985 - 19968: jis0212<<14 | 0x2C<<7 | 0x04, - 29987 - 19968: jis0208<<14 | 0x1A<<7 | 0x19, - 29988 - 19968: jis0212<<14 | 0x2C<<7 | 0x05, - 29989 - 19968: jis0208<<14 | 0x10<<7 | 0x58, - 29990 - 19968: jis0208<<14 | 0x40<<7 | 0x13, - 29991 - 19968: jis0212<<14 | 0x2C<<7 | 0x06, - 29992 - 19968: jis0208<<14 | 0x2C<<7 | 0x30, - 29993 - 19968: jis0212<<14 | 0x2C<<7 | 0x07, - 29994 - 19968: jis0212<<14 | 0x2C<<7 | 0x08, - 29995 - 19968: jis0208<<14 | 0x29<<7 | 0x42, - 29996 - 19968: jis0208<<14 | 0x40<<7 | 0x14, - 29999 - 19968: jis0208<<14 | 0x58<<7 | 0x4B, - 30000 - 19968: jis0208<<14 | 0x24<<7 | 0x23, - 30001 - 19968: jis0208<<14 | 0x2C<<7 | 0x12, - 30002 - 19968: jis0208<<14 | 0x18<<7 | 0x22, - 30003 - 19968: jis0208<<14 | 0x1E<<7 | 0x1C, - 30006 - 19968: jis0212<<14 | 0x2C<<7 | 0x0A, - 30007 - 19968: jis0208<<14 | 0x22<<7 | 0x2A, - 30008 - 19968: jis0208<<14 | 0x31<<7 | 0x13, - 30009 - 19968: jis0212<<14 | 0x2C<<7 | 0x0B, - 30010 - 19968: jis0208<<14 | 0x23<<7 | 0x0D, - 30011 - 19968: jis0208<<14 | 0x11<<7 | 0x47, - 30012 - 19968: jis0208<<14 | 0x40<<7 | 0x15, - 30013 - 19968: jis0212<<14 | 0x2C<<7 | 0x0C, - 30014 - 19968: jis0212<<14 | 0x2C<<7 | 0x0D, - 30015 - 19968: jis0212<<14 | 0x2C<<7 | 0x0E, - 30016 - 19968: jis0212<<14 | 0x2C<<7 | 0x0F, - 30019 - 19968: jis0212<<14 | 0x2C<<7 | 0x10, - 30020 - 19968: jis0208<<14 | 0x40<<7 | 0x16, - 30022 - 19968: jis0208<<14 | 0x40<<7 | 0x1B, - 30023 - 19968: jis0212<<14 | 0x2C<<7 | 0x11, - 30024 - 19968: jis0212<<14 | 0x2C<<7 | 0x12, - 30025 - 19968: jis0208<<14 | 0x40<<7 | 0x19, - 30026 - 19968: jis0208<<14 | 0x40<<7 | 0x18, - 30027 - 19968: jis0208<<14 | 0x39<<7 | 0x21, - 30028 - 19968: jis0208<<14 | 0x12<<7 | 0x05, - 30029 - 19968: jis0208<<14 | 0x40<<7 | 0x17, - 30030 - 19968: jis0212<<14 | 0x2C<<7 | 0x13, - 30031 - 19968: jis0208<<14 | 0x0F<<7 | 0x39, - 30032 - 19968: jis0212<<14 | 0x2C<<7 | 0x14, - 30033 - 19968: jis0208<<14 | 0x27<<7 | 0x09, - 30034 - 19968: jis0212<<14 | 0x2C<<7 | 0x15, - 30036 - 19968: jis0208<<14 | 0x27<<7 | 0x29, - 30039 - 19968: jis0212<<14 | 0x2C<<7 | 0x16, - 30041 - 19968: jis0208<<14 | 0x2D<<7 | 0x10, - 30042 - 19968: jis0208<<14 | 0x40<<7 | 0x1C, - 30043 - 19968: jis0208<<14 | 0x40<<7 | 0x1A, - 30044 - 19968: jis0208<<14 | 0x22<<7 | 0x3B, - 30045 - 19968: jis0208<<14 | 0x1F<<7 | 0x05, - 30046 - 19968: jis0212<<14 | 0x2C<<7 | 0x17, - 30047 - 19968: jis0212<<14 | 0x2C<<7 | 0x18, - 30048 - 19968: jis0208<<14 | 0x27<<7 | 0x0A, - 30049 - 19968: jis0212<<14 | 0x2C<<7 | 0x19, - 30050 - 19968: jis0208<<14 | 0x28<<7 | 0x0C, - 30052 - 19968: jis0208<<14 | 0x40<<7 | 0x1E, - 30053 - 19968: jis0208<<14 | 0x2D<<7 | 0x0B, - 30054 - 19968: jis0208<<14 | 0x16<<7 | 0x2C, - 30055 - 19968: jis0208<<14 | 0x40<<7 | 0x1F, - 30057 - 19968: jis0208<<14 | 0x40<<7 | 0x1D, - 30058 - 19968: jis0208<<14 | 0x27<<7 | 0x35, - 30059 - 19968: jis0208<<14 | 0x40<<7 | 0x20, - 30061 - 19968: jis0208<<14 | 0x40<<7 | 0x21, - 30063 - 19968: jis0208<<14 | 0x5A<<7 | 0x13, - 30064 - 19968: jis0208<<14 | 0x0F<<7 | 0x3A, - 30065 - 19968: jis0212<<14 | 0x2C<<7 | 0x1B, - 30067 - 19968: jis0208<<14 | 0x1D<<7 | 0x55, - 30068 - 19968: jis0208<<14 | 0x40<<7 | 0x26, - 30070 - 19968: jis0208<<14 | 0x40<<7 | 0x23, - 30071 - 19968: jis0208<<14 | 0x25<<7 | 0x4C, - 30072 - 19968: jis0208<<14 | 0x40<<7 | 0x22, - 30073 - 19968: jis0212<<14 | 0x2C<<7 | 0x1C, - 30074 - 19968: jis0212<<14 | 0x2C<<7 | 0x1D, - 30075 - 19968: jis0212<<14 | 0x2C<<7 | 0x1E, - 30076 - 19968: jis0212<<14 | 0x2C<<7 | 0x1F, - 30077 - 19968: jis0212<<14 | 0x2C<<7 | 0x20, - 30078 - 19968: jis0212<<14 | 0x2C<<7 | 0x21, - 30079 - 19968: jis0208<<14 | 0x14<<7 | 0x05, - 30081 - 19968: jis0212<<14 | 0x2C<<7 | 0x22, - 30082 - 19968: jis0208<<14 | 0x40<<7 | 0x29, - 30085 - 19968: jis0212<<14 | 0x2C<<7 | 0x23, - 30086 - 19968: jis0208<<14 | 0x40<<7 | 0x24, - 30087 - 19968: jis0208<<14 | 0x40<<7 | 0x25, - 30089 - 19968: jis0208<<14 | 0x40<<7 | 0x28, - 30090 - 19968: jis0208<<14 | 0x40<<7 | 0x27, - 30091 - 19968: jis0208<<14 | 0x28<<7 | 0x04, - 30094 - 19968: jis0208<<14 | 0x20<<7 | 0x21, - 30095 - 19968: jis0208<<14 | 0x20<<7 | 0x20, - 30096 - 19968: jis0212<<14 | 0x2C<<7 | 0x24, - 30097 - 19968: jis0208<<14 | 0x14<<7 | 0x1E, - 30098 - 19968: jis0212<<14 | 0x2C<<7 | 0x25, - 30099 - 19968: jis0212<<14 | 0x2C<<7 | 0x26, - 30100 - 19968: jis0208<<14 | 0x40<<7 | 0x2A, - 30101 - 19968: jis0212<<14 | 0x2C<<7 | 0x27, - 30105 - 19968: jis0212<<14 | 0x2C<<7 | 0x28, - 30106 - 19968: jis0208<<14 | 0x40<<7 | 0x2B, - 30108 - 19968: jis0212<<14 | 0x2C<<7 | 0x29, - 30109 - 19968: jis0208<<14 | 0x40<<7 | 0x2C, - 30114 - 19968: jis0212<<14 | 0x2C<<7 | 0x2A, - 30115 - 19968: jis0208<<14 | 0x40<<7 | 0x2E, - 30116 - 19968: jis0212<<14 | 0x2C<<7 | 0x2B, - 30117 - 19968: jis0208<<14 | 0x40<<7 | 0x2D, - 30123 - 19968: jis0208<<14 | 0x10<<7 | 0x35, - 30129 - 19968: jis0208<<14 | 0x40<<7 | 0x36, - 30130 - 19968: jis0208<<14 | 0x27<<7 | 0x47, - 30131 - 19968: jis0208<<14 | 0x40<<7 | 0x30, - 30132 - 19968: jis0212<<14 | 0x2C<<7 | 0x2C, - 30133 - 19968: jis0208<<14 | 0x40<<7 | 0x32, - 30136 - 19968: jis0208<<14 | 0x40<<7 | 0x34, - 30137 - 19968: jis0208<<14 | 0x1E<<7 | 0x1D, - 30138 - 19968: jis0212<<14 | 0x2C<<7 | 0x2D, - 30140 - 19968: jis0208<<14 | 0x40<<7 | 0x35, - 30141 - 19968: jis0208<<14 | 0x40<<7 | 0x33, - 30142 - 19968: jis0208<<14 | 0x1B<<7 | 0x1F, - 30143 - 19968: jis0212<<14 | 0x2C<<7 | 0x2E, - 30144 - 19968: jis0212<<14 | 0x2C<<7 | 0x2F, - 30145 - 19968: jis0212<<14 | 0x2C<<7 | 0x30, - 30146 - 19968: jis0208<<14 | 0x40<<7 | 0x2F, - 30147 - 19968: jis0208<<14 | 0x40<<7 | 0x31, - 30148 - 19968: jis0212<<14 | 0x2C<<7 | 0x31, - 30149 - 19968: jis0208<<14 | 0x28<<7 | 0x21, - 30150 - 19968: jis0212<<14 | 0x2C<<7 | 0x32, - 30151 - 19968: jis0208<<14 | 0x1D<<7 | 0x28, - 30154 - 19968: jis0208<<14 | 0x40<<7 | 0x38, - 30156 - 19968: jis0212<<14 | 0x2C<<7 | 0x33, - 30157 - 19968: jis0208<<14 | 0x40<<7 | 0x37, - 30158 - 19968: jis0212<<14 | 0x2C<<7 | 0x34, - 30159 - 19968: jis0212<<14 | 0x2C<<7 | 0x35, - 30162 - 19968: jis0208<<14 | 0x40<<7 | 0x39, - 30164 - 19968: jis0208<<14 | 0x1B<<7 | 0x05, - 30165 - 19968: jis0208<<14 | 0x19<<7 | 0x0E, - 30167 - 19968: jis0212<<14 | 0x2C<<7 | 0x36, - 30168 - 19968: jis0208<<14 | 0x24<<7 | 0x56, - 30169 - 19968: jis0208<<14 | 0x40<<7 | 0x3A, - 30171 - 19968: jis0208<<14 | 0x23<<7 | 0x2A, - 30172 - 19968: jis0212<<14 | 0x2C<<7 | 0x37, - 30174 - 19968: jis0208<<14 | 0x40<<7 | 0x3C, - 30175 - 19968: jis0212<<14 | 0x2C<<7 | 0x38, - 30176 - 19968: jis0212<<14 | 0x2C<<7 | 0x39, - 30177 - 19968: jis0212<<14 | 0x2C<<7 | 0x3A, - 30178 - 19968: jis0208<<14 | 0x2D<<7 | 0x00, - 30179 - 19968: jis0208<<14 | 0x40<<7 | 0x3B, - 30180 - 19968: jis0212<<14 | 0x2C<<7 | 0x3B, - 30183 - 19968: jis0212<<14 | 0x2C<<7 | 0x3C, - 30185 - 19968: jis0208<<14 | 0x20<<7 | 0x48, - 30188 - 19968: jis0212<<14 | 0x2C<<7 | 0x3D, - 30190 - 19968: jis0212<<14 | 0x2C<<7 | 0x3E, - 30191 - 19968: jis0212<<14 | 0x2C<<7 | 0x3F, - 30192 - 19968: jis0208<<14 | 0x40<<7 | 0x41, - 30193 - 19968: jis0212<<14 | 0x2C<<7 | 0x40, - 30194 - 19968: jis0208<<14 | 0x40<<7 | 0x43, - 30195 - 19968: jis0208<<14 | 0x40<<7 | 0x44, - 30196 - 19968: jis0208<<14 | 0x22<<7 | 0x33, - 30201 - 19968: jis0212<<14 | 0x2C<<7 | 0x41, - 30202 - 19968: jis0208<<14 | 0x40<<7 | 0x42, - 30204 - 19968: jis0208<<14 | 0x40<<7 | 0x3F, - 30206 - 19968: jis0208<<14 | 0x40<<7 | 0x3D, - 30207 - 19968: jis0208<<14 | 0x40<<7 | 0x3E, - 30208 - 19968: jis0212<<14 | 0x2C<<7 | 0x42, - 30209 - 19968: jis0208<<14 | 0x40<<7 | 0x40, - 30210 - 19968: jis0212<<14 | 0x2C<<7 | 0x43, - 30211 - 19968: jis0212<<14 | 0x2C<<7 | 0x44, - 30212 - 19968: jis0212<<14 | 0x2C<<7 | 0x45, - 30215 - 19968: jis0212<<14 | 0x2C<<7 | 0x46, - 30216 - 19968: jis0212<<14 | 0x2C<<7 | 0x47, - 30217 - 19968: jis0208<<14 | 0x40<<7 | 0x47, - 30218 - 19968: jis0212<<14 | 0x2C<<7 | 0x48, - 30219 - 19968: jis0208<<14 | 0x40<<7 | 0x45, - 30220 - 19968: jis0212<<14 | 0x2C<<7 | 0x49, - 30221 - 19968: jis0208<<14 | 0x40<<7 | 0x46, - 30223 - 19968: jis0212<<14 | 0x2C<<7 | 0x4A, - 30226 - 19968: jis0212<<14 | 0x2C<<7 | 0x4B, - 30227 - 19968: jis0212<<14 | 0x2C<<7 | 0x4C, - 30229 - 19968: jis0212<<14 | 0x2C<<7 | 0x4D, - 30230 - 19968: jis0212<<14 | 0x2C<<7 | 0x4E, - 30233 - 19968: jis0212<<14 | 0x2C<<7 | 0x4F, - 30235 - 19968: jis0212<<14 | 0x2C<<7 | 0x50, - 30236 - 19968: jis0212<<14 | 0x2C<<7 | 0x51, - 30237 - 19968: jis0212<<14 | 0x2C<<7 | 0x52, - 30238 - 19968: jis0212<<14 | 0x2C<<7 | 0x53, - 30239 - 19968: jis0208<<14 | 0x40<<7 | 0x48, - 30240 - 19968: jis0208<<14 | 0x40<<7 | 0x4A, - 30241 - 19968: jis0208<<14 | 0x40<<7 | 0x4B, - 30242 - 19968: jis0208<<14 | 0x40<<7 | 0x4C, - 30243 - 19968: jis0212<<14 | 0x2C<<7 | 0x54, - 30244 - 19968: jis0208<<14 | 0x40<<7 | 0x4D, - 30245 - 19968: jis0212<<14 | 0x2C<<7 | 0x55, - 30246 - 19968: jis0212<<14 | 0x2C<<7 | 0x56, - 30247 - 19968: jis0208<<14 | 0x40<<7 | 0x49, - 30249 - 19968: jis0212<<14 | 0x2C<<7 | 0x57, - 30253 - 19968: jis0212<<14 | 0x2C<<7 | 0x58, - 30256 - 19968: jis0208<<14 | 0x40<<7 | 0x4F, - 30258 - 19968: jis0212<<14 | 0x2C<<7 | 0x59, - 30259 - 19968: jis0212<<14 | 0x2C<<7 | 0x5A, - 30260 - 19968: jis0208<<14 | 0x40<<7 | 0x4E, - 30261 - 19968: jis0212<<14 | 0x2C<<7 | 0x5B, - 30264 - 19968: jis0212<<14 | 0x2C<<7 | 0x5C, - 30265 - 19968: jis0212<<14 | 0x2C<<7 | 0x5D, - 30266 - 19968: jis0212<<14 | 0x2D<<7 | 0x00, - 30267 - 19968: jis0208<<14 | 0x40<<7 | 0x50, - 30268 - 19968: jis0212<<14 | 0x2D<<7 | 0x01, - 30272 - 19968: jis0212<<14 | 0x2D<<7 | 0x03, - 30273 - 19968: jis0212<<14 | 0x2D<<7 | 0x04, - 30274 - 19968: jis0208<<14 | 0x2D<<7 | 0x24, - 30275 - 19968: jis0212<<14 | 0x2D<<7 | 0x05, - 30276 - 19968: jis0212<<14 | 0x2D<<7 | 0x06, - 30277 - 19968: jis0212<<14 | 0x2D<<7 | 0x07, - 30278 - 19968: jis0208<<14 | 0x40<<7 | 0x53, - 30279 - 19968: jis0208<<14 | 0x40<<7 | 0x51, - 30280 - 19968: jis0208<<14 | 0x40<<7 | 0x52, - 30281 - 19968: jis0212<<14 | 0x2D<<7 | 0x08, - 30282 - 19968: jis0212<<14 | 0x2D<<7 | 0x02, - 30283 - 19968: jis0212<<14 | 0x2D<<7 | 0x09, - 30284 - 19968: jis0208<<14 | 0x13<<7 | 0x41, - 30290 - 19968: jis0208<<14 | 0x2B<<7 | 0x5D, - 30293 - 19968: jis0212<<14 | 0x2D<<7 | 0x0A, - 30294 - 19968: jis0208<<14 | 0x29<<7 | 0x29, - 30296 - 19968: jis0208<<14 | 0x40<<7 | 0x55, - 30297 - 19968: jis0212<<14 | 0x2D<<7 | 0x0B, - 30300 - 19968: jis0208<<14 | 0x40<<7 | 0x54, - 30303 - 19968: jis0212<<14 | 0x2D<<7 | 0x0C, - 30305 - 19968: jis0208<<14 | 0x40<<7 | 0x56, - 30306 - 19968: jis0208<<14 | 0x40<<7 | 0x57, - 30308 - 19968: jis0212<<14 | 0x2D<<7 | 0x0D, - 30309 - 19968: jis0212<<14 | 0x2D<<7 | 0x0E, - 30311 - 19968: jis0208<<14 | 0x40<<7 | 0x5B, - 30312 - 19968: jis0208<<14 | 0x40<<7 | 0x58, - 30313 - 19968: jis0208<<14 | 0x40<<7 | 0x59, - 30314 - 19968: jis0208<<14 | 0x40<<7 | 0x5A, - 30316 - 19968: jis0208<<14 | 0x40<<7 | 0x5C, - 30317 - 19968: jis0212<<14 | 0x2D<<7 | 0x0F, - 30318 - 19968: jis0212<<14 | 0x2D<<7 | 0x10, - 30319 - 19968: jis0212<<14 | 0x2D<<7 | 0x11, - 30320 - 19968: jis0208<<14 | 0x40<<7 | 0x5D, - 30321 - 19968: jis0212<<14 | 0x2D<<7 | 0x12, - 30322 - 19968: jis0208<<14 | 0x41<<7 | 0x00, - 30324 - 19968: jis0212<<14 | 0x2D<<7 | 0x13, - 30326 - 19968: jis0208<<14 | 0x41<<7 | 0x01, - 30328 - 19968: jis0208<<14 | 0x41<<7 | 0x02, - 30330 - 19968: jis0208<<14 | 0x27<<7 | 0x0E, - 30331 - 19968: jis0208<<14 | 0x24<<7 | 0x2F, - 30332 - 19968: jis0208<<14 | 0x41<<7 | 0x03, - 30333 - 19968: jis0208<<14 | 0x26<<7 | 0x51, - 30334 - 19968: jis0208<<14 | 0x28<<7 | 0x13, - 30336 - 19968: jis0208<<14 | 0x41<<7 | 0x04, - 30337 - 19968: jis0212<<14 | 0x2D<<7 | 0x14, - 30338 - 19968: jis0208<<14 | 0x5A<<7 | 0x14, - 30339 - 19968: jis0208<<14 | 0x41<<7 | 0x05, - 30340 - 19968: jis0208<<14 | 0x24<<7 | 0x09, - 30341 - 19968: jis0212<<14 | 0x2D<<7 | 0x15, - 30342 - 19968: jis0208<<14 | 0x12<<7 | 0x06, - 30343 - 19968: jis0208<<14 | 0x18<<7 | 0x23, - 30344 - 19968: jis0208<<14 | 0x41<<7 | 0x06, - 30347 - 19968: jis0208<<14 | 0x41<<7 | 0x07, - 30348 - 19968: jis0212<<14 | 0x2D<<7 | 0x16, - 30349 - 19968: jis0212<<14 | 0x2D<<7 | 0x17, - 30350 - 19968: jis0208<<14 | 0x41<<7 | 0x08, - 30352 - 19968: jis0208<<14 | 0x1A<<7 | 0x08, - 30355 - 19968: jis0208<<14 | 0x41<<7 | 0x0A, - 30357 - 19968: jis0212<<14 | 0x2D<<7 | 0x18, - 30358 - 19968: jis0208<<14 | 0x41<<7 | 0x09, - 30361 - 19968: jis0208<<14 | 0x41<<7 | 0x0B, - 30362 - 19968: jis0208<<14 | 0x41<<7 | 0x0C, - 30363 - 19968: jis0208<<14 | 0x5A<<7 | 0x17, - 30364 - 19968: jis0208<<14 | 0x5A<<7 | 0x15, - 30365 - 19968: jis0212<<14 | 0x2D<<7 | 0x1B, - 30366 - 19968: jis0208<<14 | 0x5A<<7 | 0x16, - 30367 - 19968: jis0212<<14 | 0x2D<<7 | 0x1C, - 30368 - 19968: jis0212<<14 | 0x2D<<7 | 0x1D, - 30370 - 19968: jis0212<<14 | 0x2D<<7 | 0x1E, - 30371 - 19968: jis0212<<14 | 0x2D<<7 | 0x1F, - 30372 - 19968: jis0212<<14 | 0x2D<<7 | 0x20, - 30373 - 19968: jis0212<<14 | 0x2D<<7 | 0x21, - 30374 - 19968: jis0208<<14 | 0x5A<<7 | 0x18, - 30375 - 19968: jis0212<<14 | 0x2D<<7 | 0x23, - 30376 - 19968: jis0212<<14 | 0x2D<<7 | 0x24, - 30378 - 19968: jis0212<<14 | 0x2D<<7 | 0x25, - 30381 - 19968: jis0212<<14 | 0x2D<<7 | 0x26, - 30382 - 19968: jis0208<<14 | 0x27<<7 | 0x48, - 30384 - 19968: jis0208<<14 | 0x41<<7 | 0x0D, - 30388 - 19968: jis0208<<14 | 0x41<<7 | 0x0E, - 30391 - 19968: jis0208<<14 | 0x52<<7 | 0x48, - 30392 - 19968: jis0208<<14 | 0x41<<7 | 0x0F, - 30393 - 19968: jis0208<<14 | 0x41<<7 | 0x10, - 30394 - 19968: jis0208<<14 | 0x41<<7 | 0x11, - 30397 - 19968: jis0212<<14 | 0x2D<<7 | 0x27, - 30399 - 19968: jis0208<<14 | 0x1A<<7 | 0x0D, - 30401 - 19968: jis0212<<14 | 0x2D<<7 | 0x28, - 30402 - 19968: jis0208<<14 | 0x41<<7 | 0x12, - 30403 - 19968: jis0208<<14 | 0x26<<7 | 0x35, - 30405 - 19968: jis0212<<14 | 0x2D<<7 | 0x29, - 30406 - 19968: jis0208<<14 | 0x2A<<7 | 0x3E, - 30408 - 19968: jis0208<<14 | 0x10<<7 | 0x2D, - 30409 - 19968: jis0212<<14 | 0x2D<<7 | 0x2A, - 30410 - 19968: jis0208<<14 | 0x10<<7 | 0x36, - 30411 - 19968: jis0212<<14 | 0x2D<<7 | 0x2B, - 30412 - 19968: jis0212<<14 | 0x2D<<7 | 0x2C, - 30413 - 19968: jis0208<<14 | 0x41<<7 | 0x13, - 30414 - 19968: jis0212<<14 | 0x2D<<7 | 0x2D, - 30418 - 19968: jis0208<<14 | 0x41<<7 | 0x15, - 30420 - 19968: jis0212<<14 | 0x2D<<7 | 0x2E, - 30422 - 19968: jis0208<<14 | 0x41<<7 | 0x14, - 30423 - 19968: jis0208<<14 | 0x24<<7 | 0x4F, - 30425 - 19968: jis0212<<14 | 0x2D<<7 | 0x2F, - 30427 - 19968: jis0208<<14 | 0x1F<<7 | 0x18, - 30428 - 19968: jis0208<<14 | 0x3C<<7 | 0x18, - 30430 - 19968: jis0208<<14 | 0x41<<7 | 0x16, - 30431 - 19968: jis0208<<14 | 0x2B<<7 | 0x20, - 30432 - 19968: jis0212<<14 | 0x2D<<7 | 0x30, - 30433 - 19968: jis0208<<14 | 0x41<<7 | 0x17, - 30435 - 19968: jis0208<<14 | 0x13<<7 | 0x25, - 30436 - 19968: jis0208<<14 | 0x27<<7 | 0x36, - 30437 - 19968: jis0208<<14 | 0x41<<7 | 0x18, - 30438 - 19968: jis0212<<14 | 0x2D<<7 | 0x31, - 30439 - 19968: jis0208<<14 | 0x41<<7 | 0x19, - 30440 - 19968: jis0212<<14 | 0x2D<<7 | 0x32, - 30442 - 19968: jis0208<<14 | 0x41<<7 | 0x1A, - 30444 - 19968: jis0212<<14 | 0x2D<<7 | 0x33, - 30446 - 19968: jis0208<<14 | 0x2B<<7 | 0x3B, - 30448 - 19968: jis0212<<14 | 0x2D<<7 | 0x34, - 30449 - 19968: jis0212<<14 | 0x2D<<7 | 0x35, - 30450 - 19968: jis0208<<14 | 0x2B<<7 | 0x34, - 30452 - 19968: jis0208<<14 | 0x23<<7 | 0x1D, - 30454 - 19968: jis0212<<14 | 0x2D<<7 | 0x36, - 30456 - 19968: jis0208<<14 | 0x20<<7 | 0x49, - 30457 - 19968: jis0212<<14 | 0x2D<<7 | 0x37, - 30459 - 19968: jis0208<<14 | 0x41<<7 | 0x1C, - 30460 - 19968: jis0212<<14 | 0x2D<<7 | 0x38, - 30462 - 19968: jis0208<<14 | 0x1C<<7 | 0x41, - 30464 - 19968: jis0212<<14 | 0x2D<<7 | 0x39, - 30465 - 19968: jis0208<<14 | 0x1D<<7 | 0x29, - 30468 - 19968: jis0208<<14 | 0x41<<7 | 0x1F, - 30470 - 19968: jis0212<<14 | 0x2D<<7 | 0x3A, - 30471 - 19968: jis0208<<14 | 0x41<<7 | 0x1E, - 30472 - 19968: jis0208<<14 | 0x41<<7 | 0x1D, - 30473 - 19968: jis0208<<14 | 0x27<<7 | 0x5C, - 30474 - 19968: jis0212<<14 | 0x2D<<7 | 0x3B, - 30475 - 19968: jis0208<<14 | 0x13<<7 | 0x26, - 30476 - 19968: jis0208<<14 | 0x17<<7 | 0x08, - 30478 - 19968: jis0212<<14 | 0x2D<<7 | 0x3C, - 30482 - 19968: jis0212<<14 | 0x2D<<7 | 0x3D, - 30484 - 19968: jis0212<<14 | 0x2D<<7 | 0x3E, - 30485 - 19968: jis0212<<14 | 0x2D<<7 | 0x3F, - 30487 - 19968: jis0212<<14 | 0x2D<<7 | 0x40, - 30489 - 19968: jis0212<<14 | 0x2D<<7 | 0x41, - 30490 - 19968: jis0212<<14 | 0x2D<<7 | 0x42, - 30491 - 19968: jis0208<<14 | 0x41<<7 | 0x25, - 30492 - 19968: jis0212<<14 | 0x2D<<7 | 0x43, - 30494 - 19968: jis0208<<14 | 0x41<<7 | 0x22, - 30495 - 19968: jis0208<<14 | 0x1E<<7 | 0x1E, - 30496 - 19968: jis0208<<14 | 0x2B<<7 | 0x11, - 30498 - 19968: jis0212<<14 | 0x2D<<7 | 0x44, - 30500 - 19968: jis0208<<14 | 0x41<<7 | 0x21, - 30501 - 19968: jis0208<<14 | 0x41<<7 | 0x23, - 30502 - 19968: jis0208<<14 | 0x41<<7 | 0x24, - 30504 - 19968: jis0212<<14 | 0x2D<<7 | 0x45, - 30505 - 19968: jis0208<<14 | 0x41<<7 | 0x20, - 30509 - 19968: jis0212<<14 | 0x2D<<7 | 0x46, - 30510 - 19968: jis0212<<14 | 0x2D<<7 | 0x47, - 30511 - 19968: jis0212<<14 | 0x2D<<7 | 0x48, - 30516 - 19968: jis0212<<14 | 0x2D<<7 | 0x49, - 30517 - 19968: jis0212<<14 | 0x2D<<7 | 0x4A, - 30518 - 19968: jis0212<<14 | 0x2D<<7 | 0x4B, - 30519 - 19968: jis0208<<14 | 0x41<<7 | 0x26, - 30520 - 19968: jis0208<<14 | 0x41<<7 | 0x27, - 30521 - 19968: jis0212<<14 | 0x2D<<7 | 0x4C, - 30522 - 19968: jis0208<<14 | 0x23<<7 | 0x0E, - 30524 - 19968: jis0208<<14 | 0x13<<7 | 0x42, - 30525 - 19968: jis0212<<14 | 0x2D<<7 | 0x4D, - 30526 - 19968: jis0212<<14 | 0x2D<<7 | 0x4E, - 30528 - 19968: jis0208<<14 | 0x22<<7 | 0x44, - 30530 - 19968: jis0212<<14 | 0x2D<<7 | 0x4F, - 30533 - 19968: jis0212<<14 | 0x2D<<7 | 0x50, - 30534 - 19968: jis0208<<14 | 0x5A<<7 | 0x1A, - 30535 - 19968: jis0208<<14 | 0x41<<7 | 0x28, - 30538 - 19968: jis0212<<14 | 0x2D<<7 | 0x52, - 30541 - 19968: jis0212<<14 | 0x2D<<7 | 0x53, - 30542 - 19968: jis0212<<14 | 0x2D<<7 | 0x54, - 30543 - 19968: jis0212<<14 | 0x2D<<7 | 0x55, - 30546 - 19968: jis0212<<14 | 0x2D<<7 | 0x56, - 30550 - 19968: jis0212<<14 | 0x2D<<7 | 0x57, - 30551 - 19968: jis0212<<14 | 0x2D<<7 | 0x58, - 30554 - 19968: jis0208<<14 | 0x41<<7 | 0x29, - 30555 - 19968: jis0208<<14 | 0x41<<7 | 0x2C, - 30556 - 19968: jis0212<<14 | 0x2D<<7 | 0x59, - 30558 - 19968: jis0212<<14 | 0x2D<<7 | 0x5A, - 30559 - 19968: jis0212<<14 | 0x2D<<7 | 0x5B, - 30560 - 19968: jis0212<<14 | 0x2D<<7 | 0x5C, - 30561 - 19968: jis0208<<14 | 0x1E<<7 | 0x46, - 30562 - 19968: jis0212<<14 | 0x2D<<7 | 0x5D, - 30563 - 19968: jis0208<<14 | 0x25<<7 | 0x23, - 30564 - 19968: jis0212<<14 | 0x2E<<7 | 0x00, - 30565 - 19968: jis0208<<14 | 0x41<<7 | 0x2D, - 30566 - 19968: jis0208<<14 | 0x2A<<7 | 0x32, - 30567 - 19968: jis0212<<14 | 0x2E<<7 | 0x01, - 30568 - 19968: jis0208<<14 | 0x41<<7 | 0x2A, - 30570 - 19968: jis0212<<14 | 0x2E<<7 | 0x02, - 30571 - 19968: jis0208<<14 | 0x41<<7 | 0x2B, - 30572 - 19968: jis0212<<14 | 0x2E<<7 | 0x03, - 30576 - 19968: jis0212<<14 | 0x2E<<7 | 0x04, - 30578 - 19968: jis0212<<14 | 0x2E<<7 | 0x05, - 30579 - 19968: jis0212<<14 | 0x2E<<7 | 0x06, - 30580 - 19968: jis0212<<14 | 0x2E<<7 | 0x07, - 30585 - 19968: jis0208<<14 | 0x41<<7 | 0x30, - 30586 - 19968: jis0212<<14 | 0x2E<<7 | 0x08, - 30589 - 19968: jis0212<<14 | 0x2E<<7 | 0x09, - 30590 - 19968: jis0208<<14 | 0x41<<7 | 0x2F, - 30591 - 19968: jis0208<<14 | 0x41<<7 | 0x2E, - 30592 - 19968: jis0212<<14 | 0x2E<<7 | 0x0A, - 30596 - 19968: jis0212<<14 | 0x2E<<7 | 0x0B, - 30603 - 19968: jis0208<<14 | 0x41<<7 | 0x32, - 30604 - 19968: jis0212<<14 | 0x2E<<7 | 0x0C, - 30605 - 19968: jis0212<<14 | 0x2E<<7 | 0x0D, - 30606 - 19968: jis0208<<14 | 0x41<<7 | 0x31, - 30609 - 19968: jis0208<<14 | 0x41<<7 | 0x33, - 30612 - 19968: jis0212<<14 | 0x2E<<7 | 0x0E, - 30613 - 19968: jis0212<<14 | 0x2E<<7 | 0x0F, - 30614 - 19968: jis0212<<14 | 0x2E<<7 | 0x10, - 30618 - 19968: jis0212<<14 | 0x2E<<7 | 0x11, - 30622 - 19968: jis0208<<14 | 0x41<<7 | 0x35, - 30623 - 19968: jis0212<<14 | 0x2E<<7 | 0x12, - 30624 - 19968: jis0208<<14 | 0x41<<7 | 0x34, - 30626 - 19968: jis0212<<14 | 0x2E<<7 | 0x13, - 30629 - 19968: jis0208<<14 | 0x29<<7 | 0x2C, - 30631 - 19968: jis0212<<14 | 0x2E<<7 | 0x14, - 30634 - 19968: jis0212<<14 | 0x2E<<7 | 0x15, - 30636 - 19968: jis0208<<14 | 0x1C<<7 | 0x35, - 30637 - 19968: jis0208<<14 | 0x2D<<7 | 0x25, - 30638 - 19968: jis0212<<14 | 0x2E<<7 | 0x16, - 30639 - 19968: jis0212<<14 | 0x2E<<7 | 0x17, - 30640 - 19968: jis0208<<14 | 0x41<<7 | 0x36, - 30641 - 19968: jis0212<<14 | 0x2E<<7 | 0x18, - 30643 - 19968: jis0208<<14 | 0x25<<7 | 0x16, - 30645 - 19968: jis0212<<14 | 0x2E<<7 | 0x19, - 30646 - 19968: jis0208<<14 | 0x41<<7 | 0x37, - 30649 - 19968: jis0208<<14 | 0x41<<7 | 0x38, - 30651 - 19968: jis0208<<14 | 0x41<<7 | 0x3C, - 30652 - 19968: jis0208<<14 | 0x41<<7 | 0x3A, - 30653 - 19968: jis0208<<14 | 0x41<<7 | 0x3B, - 30654 - 19968: jis0212<<14 | 0x2E<<7 | 0x1A, - 30655 - 19968: jis0208<<14 | 0x41<<7 | 0x39, - 30659 - 19968: jis0212<<14 | 0x2E<<7 | 0x1B, - 30663 - 19968: jis0208<<14 | 0x41<<7 | 0x3D, - 30665 - 19968: jis0212<<14 | 0x2E<<7 | 0x1C, - 30669 - 19968: jis0208<<14 | 0x41<<7 | 0x3E, - 30673 - 19968: jis0212<<14 | 0x2E<<7 | 0x1D, - 30674 - 19968: jis0212<<14 | 0x2E<<7 | 0x1E, - 30677 - 19968: jis0212<<14 | 0x2E<<7 | 0x1F, - 30679 - 19968: jis0208<<14 | 0x41<<7 | 0x3F, - 30681 - 19968: jis0212<<14 | 0x2E<<7 | 0x20, - 30682 - 19968: jis0208<<14 | 0x41<<7 | 0x40, - 30683 - 19968: jis0208<<14 | 0x2B<<7 | 0x16, - 30684 - 19968: jis0208<<14 | 0x41<<7 | 0x41, - 30686 - 19968: jis0212<<14 | 0x2E<<7 | 0x21, - 30687 - 19968: jis0212<<14 | 0x2E<<7 | 0x22, - 30688 - 19968: jis0212<<14 | 0x2E<<7 | 0x23, - 30690 - 19968: jis0208<<14 | 0x2B<<7 | 0x4F, - 30691 - 19968: jis0208<<14 | 0x41<<7 | 0x42, - 30692 - 19968: jis0212<<14 | 0x2E<<7 | 0x24, - 30693 - 19968: jis0208<<14 | 0x22<<7 | 0x2D, - 30694 - 19968: jis0212<<14 | 0x2E<<7 | 0x25, - 30695 - 19968: jis0208<<14 | 0x26<<7 | 0x49, - 30697 - 19968: jis0208<<14 | 0x15<<7 | 0x4A, - 30698 - 19968: jis0212<<14 | 0x2E<<7 | 0x26, - 30700 - 19968: jis0212<<14 | 0x2E<<7 | 0x27, - 30701 - 19968: jis0208<<14 | 0x22<<7 | 0x1A, - 30702 - 19968: jis0208<<14 | 0x41<<7 | 0x43, - 30703 - 19968: jis0208<<14 | 0x15<<7 | 0x19, - 30704 - 19968: jis0212<<14 | 0x2E<<7 | 0x28, - 30705 - 19968: jis0212<<14 | 0x2E<<7 | 0x29, - 30707 - 19968: jis0208<<14 | 0x1F<<7 | 0x2F, - 30708 - 19968: jis0212<<14 | 0x2E<<7 | 0x2A, - 30712 - 19968: jis0212<<14 | 0x2E<<7 | 0x2B, - 30715 - 19968: jis0212<<14 | 0x2E<<7 | 0x2C, - 30716 - 19968: jis0208<<14 | 0x41<<7 | 0x44, - 30722 - 19968: jis0208<<14 | 0x19<<7 | 0x1C, - 30725 - 19968: jis0212<<14 | 0x2E<<7 | 0x2D, - 30726 - 19968: jis0212<<14 | 0x2E<<7 | 0x2E, - 30729 - 19968: jis0212<<14 | 0x2E<<7 | 0x2F, - 30732 - 19968: jis0208<<14 | 0x41<<7 | 0x45, - 30733 - 19968: jis0212<<14 | 0x2E<<7 | 0x30, - 30734 - 19968: jis0212<<14 | 0x2E<<7 | 0x31, - 30737 - 19968: jis0212<<14 | 0x2E<<7 | 0x32, - 30738 - 19968: jis0208<<14 | 0x41<<7 | 0x46, - 30740 - 19968: jis0208<<14 | 0x17<<7 | 0x05, - 30741 - 19968: jis0208<<14 | 0x19<<7 | 0x34, - 30749 - 19968: jis0212<<14 | 0x2E<<7 | 0x33, - 30752 - 19968: jis0208<<14 | 0x41<<7 | 0x48, - 30753 - 19968: jis0208<<14 | 0x5A<<7 | 0x1C, - 30754 - 19968: jis0212<<14 | 0x2E<<7 | 0x35, - 30755 - 19968: jis0212<<14 | 0x2E<<7 | 0x36, - 30757 - 19968: jis0208<<14 | 0x24<<7 | 0x35, - 30758 - 19968: jis0208<<14 | 0x19<<7 | 0x35, - 30759 - 19968: jis0208<<14 | 0x14<<7 | 0x2D, - 30765 - 19968: jis0212<<14 | 0x2E<<7 | 0x37, - 30766 - 19968: jis0212<<14 | 0x2E<<7 | 0x38, - 30768 - 19968: jis0212<<14 | 0x2E<<7 | 0x39, - 30770 - 19968: jis0208<<14 | 0x2A<<7 | 0x03, - 30772 - 19968: jis0208<<14 | 0x26<<7 | 0x2A, - 30773 - 19968: jis0212<<14 | 0x2E<<7 | 0x3A, - 30775 - 19968: jis0212<<14 | 0x2E<<7 | 0x3B, - 30778 - 19968: jis0208<<14 | 0x24<<7 | 0x36, - 30783 - 19968: jis0208<<14 | 0x18<<7 | 0x3B, - 30787 - 19968: jis0212<<14 | 0x2E<<7 | 0x3C, - 30788 - 19968: jis0212<<14 | 0x2E<<7 | 0x3D, - 30789 - 19968: jis0208<<14 | 0x41<<7 | 0x4A, - 30791 - 19968: jis0212<<14 | 0x2E<<7 | 0x3E, - 30792 - 19968: jis0212<<14 | 0x2E<<7 | 0x3F, - 30796 - 19968: jis0212<<14 | 0x2E<<7 | 0x40, - 30798 - 19968: jis0208<<14 | 0x5A<<7 | 0x1D, - 30802 - 19968: jis0212<<14 | 0x2E<<7 | 0x42, - 30812 - 19968: jis0212<<14 | 0x2E<<7 | 0x43, - 30813 - 19968: jis0208<<14 | 0x1D<<7 | 0x2A, - 30814 - 19968: jis0212<<14 | 0x2E<<7 | 0x44, - 30816 - 19968: jis0212<<14 | 0x2E<<7 | 0x45, - 30817 - 19968: jis0212<<14 | 0x2E<<7 | 0x46, - 30819 - 19968: jis0212<<14 | 0x2E<<7 | 0x47, - 30820 - 19968: jis0208<<14 | 0x5A<<7 | 0x1E, - 30824 - 19968: jis0212<<14 | 0x2E<<7 | 0x49, - 30826 - 19968: jis0212<<14 | 0x2E<<7 | 0x4A, - 30827 - 19968: jis0208<<14 | 0x2D<<7 | 0x11, - 30828 - 19968: jis0208<<14 | 0x18<<7 | 0x24, - 30830 - 19968: jis0212<<14 | 0x2E<<7 | 0x4B, - 30831 - 19968: jis0208<<14 | 0x17<<7 | 0x06, - 30834 - 19968: jis0208<<14 | 0x27<<7 | 0x02, - 30836 - 19968: jis0208<<14 | 0x41<<7 | 0x4C, - 30842 - 19968: jis0208<<14 | 0x5A<<7 | 0x1F, - 30844 - 19968: jis0208<<14 | 0x41<<7 | 0x4E, - 30846 - 19968: jis0212<<14 | 0x2E<<7 | 0x4D, - 30849 - 19968: jis0208<<14 | 0x17<<7 | 0x4A, - 30854 - 19968: jis0208<<14 | 0x41<<7 | 0x4D, - 30855 - 19968: jis0208<<14 | 0x23<<7 | 0x55, - 30858 - 19968: jis0212<<14 | 0x2E<<7 | 0x4E, - 30860 - 19968: jis0208<<14 | 0x41<<7 | 0x50, - 30861 - 19968: jis0208<<14 | 0x12<<7 | 0x16, - 30862 - 19968: jis0208<<14 | 0x41<<7 | 0x4B, - 30863 - 19968: jis0212<<14 | 0x2E<<7 | 0x4F, - 30865 - 19968: jis0208<<14 | 0x27<<7 | 0x49, - 30867 - 19968: jis0208<<14 | 0x10<<7 | 0x0F, - 30868 - 19968: jis0212<<14 | 0x2E<<7 | 0x50, - 30869 - 19968: jis0208<<14 | 0x19<<7 | 0x4B, - 30871 - 19968: jis0208<<14 | 0x2E<<7 | 0x31, - 30872 - 19968: jis0212<<14 | 0x2E<<7 | 0x51, - 30874 - 19968: jis0208<<14 | 0x41<<7 | 0x4F, - 30877 - 19968: jis0212<<14 | 0x2E<<7 | 0x53, - 30878 - 19968: jis0212<<14 | 0x2E<<7 | 0x54, - 30879 - 19968: jis0212<<14 | 0x2E<<7 | 0x55, - 30881 - 19968: jis0212<<14 | 0x2E<<7 | 0x52, - 30883 - 19968: jis0208<<14 | 0x41<<7 | 0x51, - 30884 - 19968: jis0212<<14 | 0x2E<<7 | 0x56, - 30887 - 19968: jis0208<<14 | 0x29<<7 | 0x2A, - 30888 - 19968: jis0212<<14 | 0x2E<<7 | 0x57, - 30889 - 19968: jis0208<<14 | 0x1F<<7 | 0x38, - 30890 - 19968: jis0208<<14 | 0x41<<7 | 0x53, - 30892 - 19968: jis0212<<14 | 0x2E<<7 | 0x58, - 30893 - 19968: jis0212<<14 | 0x2E<<7 | 0x59, - 30895 - 19968: jis0208<<14 | 0x41<<7 | 0x54, - 30896 - 19968: jis0212<<14 | 0x2E<<7 | 0x5A, - 30897 - 19968: jis0212<<14 | 0x2E<<7 | 0x5B, - 30898 - 19968: jis0212<<14 | 0x2E<<7 | 0x5C, - 30899 - 19968: jis0212<<14 | 0x2E<<7 | 0x5D, - 30901 - 19968: jis0208<<14 | 0x41<<7 | 0x52, - 30906 - 19968: jis0208<<14 | 0x12<<7 | 0x2D, - 30907 - 19968: jis0212<<14 | 0x2F<<7 | 0x00, - 30908 - 19968: jis0208<<14 | 0x41<<7 | 0x5A, - 30909 - 19968: jis0212<<14 | 0x2F<<7 | 0x01, - 30910 - 19968: jis0208<<14 | 0x41<<7 | 0x59, - 30911 - 19968: jis0212<<14 | 0x2F<<7 | 0x02, - 30913 - 19968: jis0208<<14 | 0x1B<<7 | 0x06, - 30917 - 19968: jis0208<<14 | 0x41<<7 | 0x5B, - 30918 - 19968: jis0208<<14 | 0x41<<7 | 0x56, - 30919 - 19968: jis0212<<14 | 0x2F<<7 | 0x03, - 30920 - 19968: jis0212<<14 | 0x2F<<7 | 0x04, - 30921 - 19968: jis0212<<14 | 0x2F<<7 | 0x05, - 30922 - 19968: jis0208<<14 | 0x41<<7 | 0x5C, - 30923 - 19968: jis0208<<14 | 0x41<<7 | 0x57, - 30924 - 19968: jis0212<<14 | 0x2F<<7 | 0x06, - 30926 - 19968: jis0212<<14 | 0x2F<<7 | 0x07, - 30928 - 19968: jis0208<<14 | 0x27<<7 | 0x37, - 30929 - 19968: jis0208<<14 | 0x41<<7 | 0x55, - 30930 - 19968: jis0212<<14 | 0x2F<<7 | 0x08, - 30931 - 19968: jis0212<<14 | 0x2F<<7 | 0x09, - 30932 - 19968: jis0208<<14 | 0x41<<7 | 0x58, - 30933 - 19968: jis0212<<14 | 0x2F<<7 | 0x0A, - 30934 - 19968: jis0212<<14 | 0x2F<<7 | 0x0B, - 30938 - 19968: jis0208<<14 | 0x42<<7 | 0x01, - 30939 - 19968: jis0212<<14 | 0x2F<<7 | 0x0D, - 30943 - 19968: jis0212<<14 | 0x2F<<7 | 0x0E, - 30944 - 19968: jis0212<<14 | 0x2F<<7 | 0x0F, - 30945 - 19968: jis0212<<14 | 0x2F<<7 | 0x10, - 30948 - 19968: jis0212<<14 | 0x2F<<7 | 0x0C, - 30950 - 19968: jis0212<<14 | 0x2F<<7 | 0x11, - 30951 - 19968: jis0208<<14 | 0x42<<7 | 0x00, - 30952 - 19968: jis0208<<14 | 0x2A<<7 | 0x40, - 30954 - 19968: jis0212<<14 | 0x2F<<7 | 0x12, - 30956 - 19968: jis0208<<14 | 0x41<<7 | 0x5D, - 30959 - 19968: jis0208<<14 | 0x0F<<7 | 0x4A, - 30962 - 19968: jis0212<<14 | 0x2F<<7 | 0x13, - 30963 - 19968: jis0212<<14 | 0x2F<<7 | 0x14, - 30964 - 19968: jis0208<<14 | 0x42<<7 | 0x03, - 30966 - 19968: jis0212<<14 | 0x2F<<7 | 0x16, - 30967 - 19968: jis0212<<14 | 0x2F<<7 | 0x17, - 30970 - 19968: jis0212<<14 | 0x2F<<7 | 0x18, - 30971 - 19968: jis0212<<14 | 0x2F<<7 | 0x19, - 30973 - 19968: jis0208<<14 | 0x42<<7 | 0x02, - 30975 - 19968: jis0212<<14 | 0x2F<<7 | 0x1A, - 30976 - 19968: jis0212<<14 | 0x2F<<7 | 0x15, - 30977 - 19968: jis0208<<14 | 0x1D<<7 | 0x2B, - 30982 - 19968: jis0212<<14 | 0x2F<<7 | 0x1B, - 30983 - 19968: jis0208<<14 | 0x42<<7 | 0x04, - 30988 - 19968: jis0212<<14 | 0x2F<<7 | 0x1C, - 30990 - 19968: jis0208<<14 | 0x20<<7 | 0x22, - 30992 - 19968: jis0212<<14 | 0x2F<<7 | 0x1D, - 30993 - 19968: jis0208<<14 | 0x42<<7 | 0x06, - 30994 - 19968: jis0208<<14 | 0x42<<7 | 0x05, - 31001 - 19968: jis0208<<14 | 0x42<<7 | 0x07, - 31002 - 19968: jis0212<<14 | 0x2F<<7 | 0x1E, - 31004 - 19968: jis0212<<14 | 0x2F<<7 | 0x1F, - 31006 - 19968: jis0212<<14 | 0x2F<<7 | 0x20, - 31007 - 19968: jis0212<<14 | 0x2F<<7 | 0x21, - 31008 - 19968: jis0212<<14 | 0x2F<<7 | 0x22, - 31013 - 19968: jis0212<<14 | 0x2F<<7 | 0x23, - 31014 - 19968: jis0208<<14 | 0x41<<7 | 0x47, - 31015 - 19968: jis0212<<14 | 0x2F<<7 | 0x24, - 31017 - 19968: jis0212<<14 | 0x2F<<7 | 0x25, - 31018 - 19968: jis0208<<14 | 0x41<<7 | 0x49, - 31019 - 19968: jis0208<<14 | 0x42<<7 | 0x09, - 31020 - 19968: jis0208<<14 | 0x42<<7 | 0x08, - 31021 - 19968: jis0212<<14 | 0x2F<<7 | 0x26, - 31024 - 19968: jis0208<<14 | 0x5A<<7 | 0x20, - 31025 - 19968: jis0212<<14 | 0x2F<<7 | 0x27, - 31028 - 19968: jis0212<<14 | 0x2F<<7 | 0x28, - 31029 - 19968: jis0212<<14 | 0x2F<<7 | 0x29, - 31034 - 19968: jis0208<<14 | 0x1B<<7 | 0x07, - 31035 - 19968: jis0212<<14 | 0x2F<<7 | 0x2A, - 31036 - 19968: jis0208<<14 | 0x2D<<7 | 0x48, - 31037 - 19968: jis0212<<14 | 0x2F<<7 | 0x2B, - 31038 - 19968: jis0208<<14 | 0x1B<<7 | 0x31, - 31039 - 19968: jis0212<<14 | 0x2F<<7 | 0x2C, - 31040 - 19968: jis0208<<14 | 0x42<<7 | 0x0A, - 31041 - 19968: jis0208<<14 | 0x16<<7 | 0x16, - 31044 - 19968: jis0212<<14 | 0x2F<<7 | 0x2D, - 31045 - 19968: jis0212<<14 | 0x2F<<7 | 0x2E, - 31046 - 19968: jis0212<<14 | 0x2F<<7 | 0x2F, - 31047 - 19968: jis0208<<14 | 0x14<<7 | 0x1F, - 31048 - 19968: jis0208<<14 | 0x14<<7 | 0x06, - 31049 - 19968: jis0208<<14 | 0x1A<<7 | 0x42, - 31050 - 19968: jis0212<<14 | 0x2F<<7 | 0x30, - 31051 - 19968: jis0212<<14 | 0x2F<<7 | 0x31, - 31055 - 19968: jis0212<<14 | 0x2F<<7 | 0x32, - 31056 - 19968: jis0208<<14 | 0x2C<<7 | 0x13, - 31057 - 19968: jis0212<<14 | 0x2F<<7 | 0x33, - 31059 - 19968: jis0208<<14 | 0x42<<7 | 0x10, - 31060 - 19968: jis0212<<14 | 0x2F<<7 | 0x34, - 31061 - 19968: jis0208<<14 | 0x42<<7 | 0x0F, - 31062 - 19968: jis0208<<14 | 0x20<<7 | 0x23, - 31063 - 19968: jis0208<<14 | 0x42<<7 | 0x0C, - 31064 - 19968: jis0212<<14 | 0x2F<<7 | 0x35, - 31066 - 19968: jis0208<<14 | 0x42<<7 | 0x0E, - 31067 - 19968: jis0212<<14 | 0x2F<<7 | 0x36, - 31068 - 19968: jis0212<<14 | 0x2F<<7 | 0x37, - 31069 - 19968: jis0208<<14 | 0x1C<<7 | 0x2A, - 31070 - 19968: jis0208<<14 | 0x1E<<7 | 0x1F, - 31071 - 19968: jis0208<<14 | 0x42<<7 | 0x0D, - 31072 - 19968: jis0208<<14 | 0x42<<7 | 0x0B, - 31074 - 19968: jis0208<<14 | 0x26<<7 | 0x09, - 31077 - 19968: jis0208<<14 | 0x1D<<7 | 0x2C, - 31079 - 19968: jis0212<<14 | 0x2F<<7 | 0x38, - 31080 - 19968: jis0208<<14 | 0x28<<7 | 0x1B, - 31081 - 19968: jis0212<<14 | 0x2F<<7 | 0x39, - 31083 - 19968: jis0212<<14 | 0x2F<<7 | 0x3A, - 31085 - 19968: jis0208<<14 | 0x19<<7 | 0x36, - 31090 - 19968: jis0212<<14 | 0x2F<<7 | 0x3B, - 31095 - 19968: jis0208<<14 | 0x24<<7 | 0x57, - 31097 - 19968: jis0212<<14 | 0x2F<<7 | 0x3C, - 31098 - 19968: jis0208<<14 | 0x42<<7 | 0x11, - 31099 - 19968: jis0212<<14 | 0x2F<<7 | 0x3D, - 31100 - 19968: jis0212<<14 | 0x2F<<7 | 0x3E, - 31102 - 19968: jis0212<<14 | 0x2F<<7 | 0x3F, - 31103 - 19968: jis0208<<14 | 0x42<<7 | 0x12, - 31104 - 19968: jis0208<<14 | 0x42<<7 | 0x28, - 31105 - 19968: jis0208<<14 | 0x15<<7 | 0x37, - 31108 - 19968: jis0208<<14 | 0x2E<<7 | 0x1C, - 31109 - 19968: jis0208<<14 | 0x20<<7 | 0x14, - 31114 - 19968: jis0208<<14 | 0x42<<7 | 0x13, - 31115 - 19968: jis0212<<14 | 0x2F<<7 | 0x40, - 31116 - 19968: jis0212<<14 | 0x2F<<7 | 0x41, - 31117 - 19968: jis0208<<14 | 0x11<<7 | 0x31, - 31118 - 19968: jis0208<<14 | 0x23<<7 | 0x56, - 31119 - 19968: jis0208<<14 | 0x29<<7 | 0x00, - 31121 - 19968: jis0212<<14 | 0x2F<<7 | 0x42, - 31123 - 19968: jis0212<<14 | 0x2F<<7 | 0x43, - 31124 - 19968: jis0208<<14 | 0x5A<<7 | 0x24, - 31125 - 19968: jis0212<<14 | 0x2F<<7 | 0x45, - 31126 - 19968: jis0212<<14 | 0x2F<<7 | 0x46, - 31128 - 19968: jis0212<<14 | 0x2F<<7 | 0x47, - 31131 - 19968: jis0208<<14 | 0x5A<<7 | 0x26, - 31132 - 19968: jis0212<<14 | 0x2F<<7 | 0x49, - 31133 - 19968: jis0208<<14 | 0x42<<7 | 0x14, - 31137 - 19968: jis0212<<14 | 0x2F<<7 | 0x4A, - 31142 - 19968: jis0208<<14 | 0x14<<7 | 0x59, - 31143 - 19968: jis0208<<14 | 0x42<<7 | 0x15, - 31144 - 19968: jis0212<<14 | 0x2F<<7 | 0x4B, - 31145 - 19968: jis0212<<14 | 0x2F<<7 | 0x4C, - 31146 - 19968: jis0208<<14 | 0x42<<7 | 0x17, - 31147 - 19968: jis0212<<14 | 0x2F<<7 | 0x4D, - 31150 - 19968: jis0208<<14 | 0x42<<7 | 0x18, - 31151 - 19968: jis0212<<14 | 0x2F<<7 | 0x4E, - 31152 - 19968: jis0208<<14 | 0x26<<7 | 0x08, - 31153 - 19968: jis0212<<14 | 0x2F<<7 | 0x4F, - 31155 - 19968: jis0208<<14 | 0x42<<7 | 0x19, - 31156 - 19968: jis0212<<14 | 0x2F<<7 | 0x50, - 31160 - 19968: jis0212<<14 | 0x2F<<7 | 0x51, - 31161 - 19968: jis0208<<14 | 0x42<<7 | 0x1A, - 31162 - 19968: jis0208<<14 | 0x42<<7 | 0x1B, - 31163 - 19968: jis0212<<14 | 0x2F<<7 | 0x52, - 31165 - 19968: jis0208<<14 | 0x15<<7 | 0x38, - 31166 - 19968: jis0208<<14 | 0x11<<7 | 0x32, - 31167 - 19968: jis0208<<14 | 0x25<<7 | 0x24, - 31168 - 19968: jis0208<<14 | 0x1C<<7 | 0x07, - 31169 - 19968: jis0208<<14 | 0x1A<<7 | 0x43, - 31170 - 19968: jis0212<<14 | 0x2F<<7 | 0x53, - 31172 - 19968: jis0212<<14 | 0x2F<<7 | 0x54, - 31175 - 19968: jis0212<<14 | 0x2F<<7 | 0x55, - 31176 - 19968: jis0212<<14 | 0x2F<<7 | 0x56, - 31177 - 19968: jis0208<<14 | 0x42<<7 | 0x1C, - 31178 - 19968: jis0212<<14 | 0x2F<<7 | 0x57, - 31179 - 19968: jis0208<<14 | 0x1C<<7 | 0x08, - 31183 - 19968: jis0212<<14 | 0x2F<<7 | 0x58, - 31185 - 19968: jis0208<<14 | 0x11<<7 | 0x29, - 31186 - 19968: jis0208<<14 | 0x28<<7 | 0x22, - 31188 - 19968: jis0212<<14 | 0x2F<<7 | 0x59, - 31189 - 19968: jis0208<<14 | 0x42<<7 | 0x1D, - 31190 - 19968: jis0212<<14 | 0x2F<<7 | 0x5A, - 31192 - 19968: jis0208<<14 | 0x27<<7 | 0x4A, - 31194 - 19968: jis0212<<14 | 0x2F<<7 | 0x5B, - 31197 - 19968: jis0212<<14 | 0x2F<<7 | 0x5C, - 31198 - 19968: jis0212<<14 | 0x2F<<7 | 0x5D, - 31199 - 19968: jis0208<<14 | 0x20<<7 | 0x24, - 31200 - 19968: jis0212<<14 | 0x30<<7 | 0x00, - 31201 - 19968: jis0208<<14 | 0x42<<7 | 0x20, - 31202 - 19968: jis0212<<14 | 0x30<<7 | 0x01, - 31203 - 19968: jis0208<<14 | 0x42<<7 | 0x21, - 31204 - 19968: jis0208<<14 | 0x26<<7 | 0x48, - 31205 - 19968: jis0212<<14 | 0x30<<7 | 0x02, - 31206 - 19968: jis0208<<14 | 0x1E<<7 | 0x20, - 31207 - 19968: jis0208<<14 | 0x42<<7 | 0x1E, - 31209 - 19968: jis0208<<14 | 0x22<<7 | 0x40, - 31210 - 19968: jis0212<<14 | 0x30<<7 | 0x03, - 31211 - 19968: jis0212<<14 | 0x30<<7 | 0x04, - 31212 - 19968: jis0208<<14 | 0x42<<7 | 0x1F, - 31213 - 19968: jis0212<<14 | 0x30<<7 | 0x05, - 31216 - 19968: jis0208<<14 | 0x1D<<7 | 0x2D, - 31217 - 19968: jis0212<<14 | 0x30<<7 | 0x06, - 31224 - 19968: jis0212<<14 | 0x30<<7 | 0x07, - 31227 - 19968: jis0208<<14 | 0x0F<<7 | 0x3B, - 31228 - 19968: jis0212<<14 | 0x30<<7 | 0x08, - 31232 - 19968: jis0208<<14 | 0x14<<7 | 0x08, - 31234 - 19968: jis0212<<14 | 0x30<<7 | 0x09, - 31235 - 19968: jis0212<<14 | 0x30<<7 | 0x0A, - 31239 - 19968: jis0212<<14 | 0x30<<7 | 0x0B, - 31240 - 19968: jis0208<<14 | 0x42<<7 | 0x22, - 31241 - 19968: jis0212<<14 | 0x30<<7 | 0x0C, - 31242 - 19968: jis0212<<14 | 0x30<<7 | 0x0D, - 31243 - 19968: jis0208<<14 | 0x23<<7 | 0x57, - 31244 - 19968: jis0212<<14 | 0x30<<7 | 0x0E, - 31245 - 19968: jis0208<<14 | 0x42<<7 | 0x23, - 31246 - 19968: jis0208<<14 | 0x1F<<7 | 0x26, - 31249 - 19968: jis0212<<14 | 0x30<<7 | 0x0F, - 31252 - 19968: jis0208<<14 | 0x2B<<7 | 0x0C, - 31253 - 19968: jis0212<<14 | 0x30<<7 | 0x10, - 31255 - 19968: jis0208<<14 | 0x28<<7 | 0x02, - 31256 - 19968: jis0208<<14 | 0x42<<7 | 0x24, - 31257 - 19968: jis0208<<14 | 0x42<<7 | 0x25, - 31258 - 19968: jis0208<<14 | 0x22<<7 | 0x34, - 31259 - 19968: jis0212<<14 | 0x30<<7 | 0x11, - 31260 - 19968: jis0208<<14 | 0x2D<<7 | 0x26, - 31262 - 19968: jis0212<<14 | 0x30<<7 | 0x12, - 31263 - 19968: jis0208<<14 | 0x42<<7 | 0x27, - 31264 - 19968: jis0208<<14 | 0x42<<7 | 0x26, - 31265 - 19968: jis0212<<14 | 0x30<<7 | 0x13, - 31271 - 19968: jis0212<<14 | 0x30<<7 | 0x14, - 31275 - 19968: jis0212<<14 | 0x30<<7 | 0x15, - 31277 - 19968: jis0212<<14 | 0x30<<7 | 0x16, - 31278 - 19968: jis0208<<14 | 0x1B<<7 | 0x4E, - 31279 - 19968: jis0212<<14 | 0x30<<7 | 0x17, - 31280 - 19968: jis0212<<14 | 0x30<<7 | 0x18, - 31281 - 19968: jis0208<<14 | 0x42<<7 | 0x29, - 31282 - 19968: jis0208<<14 | 0x0F<<7 | 0x4F, - 31284 - 19968: jis0212<<14 | 0x30<<7 | 0x19, - 31285 - 19968: jis0212<<14 | 0x30<<7 | 0x1A, - 31287 - 19968: jis0208<<14 | 0x42<<7 | 0x2C, - 31288 - 19968: jis0212<<14 | 0x30<<7 | 0x1B, - 31289 - 19968: jis0212<<14 | 0x30<<7 | 0x1C, - 31290 - 19968: jis0212<<14 | 0x30<<7 | 0x1D, - 31291 - 19968: jis0208<<14 | 0x42<<7 | 0x2A, - 31292 - 19968: jis0208<<14 | 0x11<<7 | 0x33, - 31293 - 19968: jis0208<<14 | 0x16<<7 | 0x2D, - 31294 - 19968: jis0208<<14 | 0x42<<7 | 0x2B, - 31295 - 19968: jis0208<<14 | 0x18<<7 | 0x25, - 31296 - 19968: jis0208<<14 | 0x18<<7 | 0x51, - 31298 - 19968: jis0208<<14 | 0x29<<7 | 0x45, - 31299 - 19968: jis0208<<14 | 0x42<<7 | 0x2D, - 31300 - 19968: jis0212<<14 | 0x30<<7 | 0x1E, - 31301 - 19968: jis0212<<14 | 0x30<<7 | 0x1F, - 31302 - 19968: jis0208<<14 | 0x2A<<7 | 0x33, - 31303 - 19968: jis0212<<14 | 0x30<<7 | 0x20, - 31304 - 19968: jis0212<<14 | 0x30<<7 | 0x21, - 31305 - 19968: jis0208<<14 | 0x42<<7 | 0x2F, - 31308 - 19968: jis0212<<14 | 0x30<<7 | 0x22, - 31309 - 19968: jis0208<<14 | 0x1F<<7 | 0x30, - 31310 - 19968: jis0208<<14 | 0x10<<7 | 0x2E, - 31311 - 19968: jis0208<<14 | 0x11<<7 | 0x19, - 31312 - 19968: jis0208<<14 | 0x0F<<7 | 0x0B, - 31317 - 19968: jis0212<<14 | 0x30<<7 | 0x23, - 31318 - 19968: jis0212<<14 | 0x30<<7 | 0x24, - 31319 - 19968: jis0208<<14 | 0x42<<7 | 0x2E, - 31321 - 19968: jis0212<<14 | 0x30<<7 | 0x25, - 31324 - 19968: jis0212<<14 | 0x30<<7 | 0x26, - 31325 - 19968: jis0212<<14 | 0x30<<7 | 0x27, - 31327 - 19968: jis0212<<14 | 0x30<<7 | 0x28, - 31328 - 19968: jis0212<<14 | 0x30<<7 | 0x29, - 31329 - 19968: jis0208<<14 | 0x42<<7 | 0x30, - 31330 - 19968: jis0208<<14 | 0x42<<7 | 0x31, - 31331 - 19968: jis0208<<14 | 0x1D<<7 | 0x56, - 31333 - 19968: jis0212<<14 | 0x30<<7 | 0x2A, - 31335 - 19968: jis0212<<14 | 0x30<<7 | 0x2B, - 31337 - 19968: jis0208<<14 | 0x42<<7 | 0x32, - 31338 - 19968: jis0212<<14 | 0x30<<7 | 0x2C, - 31339 - 19968: jis0208<<14 | 0x12<<7 | 0x2E, - 31341 - 19968: jis0212<<14 | 0x30<<7 | 0x2D, - 31344 - 19968: jis0208<<14 | 0x42<<7 | 0x34, - 31348 - 19968: jis0208<<14 | 0x16<<7 | 0x49, - 31349 - 19968: jis0212<<14 | 0x30<<7 | 0x2E, - 31350 - 19968: jis0208<<14 | 0x14<<7 | 0x45, - 31352 - 19968: jis0212<<14 | 0x30<<7 | 0x2F, - 31353 - 19968: jis0208<<14 | 0x42<<7 | 0x35, - 31354 - 19968: jis0208<<14 | 0x15<<7 | 0x54, - 31357 - 19968: jis0208<<14 | 0x42<<7 | 0x36, - 31358 - 19968: jis0212<<14 | 0x30<<7 | 0x30, - 31359 - 19968: jis0208<<14 | 0x1F<<7 | 0x5B, - 31360 - 19968: jis0212<<14 | 0x30<<7 | 0x31, - 31361 - 19968: jis0208<<14 | 0x25<<7 | 0x2C, - 31362 - 19968: jis0212<<14 | 0x30<<7 | 0x32, - 31363 - 19968: jis0208<<14 | 0x1F<<7 | 0x3F, - 31364 - 19968: jis0208<<14 | 0x19<<7 | 0x54, - 31365 - 19968: jis0212<<14 | 0x30<<7 | 0x33, - 31366 - 19968: jis0212<<14 | 0x30<<7 | 0x34, - 31368 - 19968: jis0208<<14 | 0x42<<7 | 0x37, - 31370 - 19968: jis0212<<14 | 0x30<<7 | 0x35, - 31371 - 19968: jis0212<<14 | 0x30<<7 | 0x36, - 31376 - 19968: jis0212<<14 | 0x30<<7 | 0x37, - 31377 - 19968: jis0212<<14 | 0x30<<7 | 0x38, - 31378 - 19968: jis0208<<14 | 0x22<<7 | 0x41, - 31379 - 19968: jis0208<<14 | 0x20<<7 | 0x4A, - 31380 - 19968: jis0212<<14 | 0x30<<7 | 0x39, - 31381 - 19968: jis0208<<14 | 0x42<<7 | 0x39, - 31382 - 19968: jis0208<<14 | 0x42<<7 | 0x3B, - 31383 - 19968: jis0208<<14 | 0x42<<7 | 0x38, - 31384 - 19968: jis0208<<14 | 0x42<<7 | 0x3A, - 31390 - 19968: jis0212<<14 | 0x30<<7 | 0x3A, - 31391 - 19968: jis0208<<14 | 0x16<<7 | 0x01, - 31392 - 19968: jis0212<<14 | 0x30<<7 | 0x3B, - 31395 - 19968: jis0212<<14 | 0x30<<7 | 0x3C, - 31401 - 19968: jis0208<<14 | 0x42<<7 | 0x3C, - 31402 - 19968: jis0208<<14 | 0x16<<7 | 0x05, - 31404 - 19968: jis0212<<14 | 0x30<<7 | 0x3D, - 31406 - 19968: jis0208<<14 | 0x14<<7 | 0x46, - 31407 - 19968: jis0208<<14 | 0x2C<<7 | 0x31, - 31408 - 19968: jis0208<<14 | 0x42<<7 | 0x3E, - 31411 - 19968: jis0212<<14 | 0x30<<7 | 0x3E, - 31413 - 19968: jis0212<<14 | 0x30<<7 | 0x3F, - 31414 - 19968: jis0208<<14 | 0x42<<7 | 0x3F, - 31417 - 19968: jis0212<<14 | 0x30<<7 | 0x40, - 31418 - 19968: jis0208<<14 | 0x10<<7 | 0x0D, - 31419 - 19968: jis0212<<14 | 0x30<<7 | 0x41, - 31420 - 19968: jis0212<<14 | 0x30<<7 | 0x42, - 31423 - 19968: jis0208<<14 | 0x42<<7 | 0x42, - 31427 - 19968: jis0208<<14 | 0x12<<7 | 0x55, - 31428 - 19968: jis0208<<14 | 0x42<<7 | 0x41, - 31429 - 19968: jis0208<<14 | 0x42<<7 | 0x40, - 31430 - 19968: jis0212<<14 | 0x30<<7 | 0x43, - 31431 - 19968: jis0208<<14 | 0x42<<7 | 0x44, - 31432 - 19968: jis0208<<14 | 0x42<<7 | 0x3D, - 31433 - 19968: jis0212<<14 | 0x30<<7 | 0x44, - 31434 - 19968: jis0208<<14 | 0x42<<7 | 0x45, - 31435 - 19968: jis0208<<14 | 0x2D<<7 | 0x08, - 31436 - 19968: jis0212<<14 | 0x30<<7 | 0x45, - 31437 - 19968: jis0208<<14 | 0x42<<7 | 0x46, - 31438 - 19968: jis0212<<14 | 0x30<<7 | 0x46, - 31439 - 19968: jis0208<<14 | 0x42<<7 | 0x47, - 31441 - 19968: jis0208<<14 | 0x5A<<7 | 0x27, - 31442 - 19968: jis0208<<14 | 0x33<<7 | 0x53, - 31443 - 19968: jis0208<<14 | 0x42<<7 | 0x49, - 31445 - 19968: jis0208<<14 | 0x42<<7 | 0x48, - 31449 - 19968: jis0208<<14 | 0x42<<7 | 0x4A, - 31450 - 19968: jis0208<<14 | 0x42<<7 | 0x4B, - 31451 - 19968: jis0212<<14 | 0x30<<7 | 0x48, - 31452 - 19968: jis0208<<14 | 0x2D<<7 | 0x14, - 31453 - 19968: jis0208<<14 | 0x42<<7 | 0x4C, - 31455 - 19968: jis0208<<14 | 0x4F<<7 | 0x4E, - 31456 - 19968: jis0208<<14 | 0x1D<<7 | 0x2E, - 31457 - 19968: jis0208<<14 | 0x42<<7 | 0x4D, - 31458 - 19968: jis0208<<14 | 0x42<<7 | 0x4E, - 31459 - 19968: jis0208<<14 | 0x1C<<7 | 0x36, - 31461 - 19968: jis0208<<14 | 0x25<<7 | 0x17, - 31462 - 19968: jis0208<<14 | 0x42<<7 | 0x4F, - 31463 - 19968: jis0208<<14 | 0x5A<<7 | 0x28, - 31464 - 19968: jis0212<<14 | 0x30<<7 | 0x49, - 31465 - 19968: jis0212<<14 | 0x30<<7 | 0x4A, - 31466 - 19968: jis0208<<14 | 0x22<<7 | 0x07, - 31467 - 19968: jis0208<<14 | 0x5A<<7 | 0x2A, - 31468 - 19968: jis0212<<14 | 0x30<<7 | 0x4C, - 31469 - 19968: jis0208<<14 | 0x42<<7 | 0x50, - 31471 - 19968: jis0208<<14 | 0x22<<7 | 0x1B, - 31472 - 19968: jis0208<<14 | 0x42<<7 | 0x51, - 31473 - 19968: jis0212<<14 | 0x30<<7 | 0x4D, - 31476 - 19968: jis0212<<14 | 0x30<<7 | 0x4E, - 31478 - 19968: jis0208<<14 | 0x15<<7 | 0x04, - 31480 - 19968: jis0208<<14 | 0x30<<7 | 0x1E, - 31481 - 19968: jis0208<<14 | 0x22<<7 | 0x3C, - 31482 - 19968: jis0208<<14 | 0x1B<<7 | 0x12, - 31483 - 19968: jis0212<<14 | 0x30<<7 | 0x4F, - 31485 - 19968: jis0212<<14 | 0x30<<7 | 0x50, - 31486 - 19968: jis0212<<14 | 0x30<<7 | 0x51, - 31487 - 19968: jis0208<<14 | 0x13<<7 | 0x27, - 31490 - 19968: jis0208<<14 | 0x42<<7 | 0x52, - 31492 - 19968: jis0208<<14 | 0x43<<7 | 0x01, - 31494 - 19968: jis0208<<14 | 0x42<<7 | 0x55, - 31495 - 19968: jis0212<<14 | 0x30<<7 | 0x52, - 31496 - 19968: jis0208<<14 | 0x14<<7 | 0x47, - 31498 - 19968: jis0208<<14 | 0x42<<7 | 0x54, - 31499 - 19968: jis0208<<14 | 0x43<<7 | 0x03, - 31503 - 19968: jis0208<<14 | 0x42<<7 | 0x53, - 31505 - 19968: jis0208<<14 | 0x1D<<7 | 0x2F, - 31508 - 19968: jis0212<<14 | 0x30<<7 | 0x53, - 31512 - 19968: jis0208<<14 | 0x42<<7 | 0x57, - 31513 - 19968: jis0208<<14 | 0x42<<7 | 0x58, - 31515 - 19968: jis0208<<14 | 0x24<<7 | 0x0A, - 31518 - 19968: jis0208<<14 | 0x42<<7 | 0x59, - 31519 - 19968: jis0212<<14 | 0x30<<7 | 0x54, - 31520 - 19968: jis0208<<14 | 0x12<<7 | 0x3D, - 31523 - 19968: jis0212<<14 | 0x30<<7 | 0x55, - 31525 - 19968: jis0208<<14 | 0x1E<<7 | 0x39, - 31526 - 19968: jis0208<<14 | 0x28<<7 | 0x43, - 31527 - 19968: jis0212<<14 | 0x30<<7 | 0x56, - 31528 - 19968: jis0208<<14 | 0x42<<7 | 0x5B, - 31529 - 19968: jis0212<<14 | 0x30<<7 | 0x57, - 31530 - 19968: jis0212<<14 | 0x30<<7 | 0x58, - 31531 - 19968: jis0212<<14 | 0x30<<7 | 0x59, - 31532 - 19968: jis0208<<14 | 0x21<<7 | 0x47, - 31533 - 19968: jis0212<<14 | 0x30<<7 | 0x5A, - 31534 - 19968: jis0212<<14 | 0x30<<7 | 0x5B, - 31535 - 19968: jis0212<<14 | 0x30<<7 | 0x5C, - 31536 - 19968: jis0212<<14 | 0x30<<7 | 0x5D, - 31537 - 19968: jis0212<<14 | 0x31<<7 | 0x00, - 31539 - 19968: jis0208<<14 | 0x42<<7 | 0x56, - 31540 - 19968: jis0212<<14 | 0x31<<7 | 0x01, - 31541 - 19968: jis0208<<14 | 0x42<<7 | 0x5A, - 31542 - 19968: jis0208<<14 | 0x42<<7 | 0x5C, - 31545 - 19968: jis0208<<14 | 0x19<<7 | 0x5A, - 31549 - 19968: jis0212<<14 | 0x31<<7 | 0x02, - 31551 - 19968: jis0212<<14 | 0x31<<7 | 0x03, - 31552 - 19968: jis0212<<14 | 0x31<<7 | 0x04, - 31553 - 19968: jis0212<<14 | 0x31<<7 | 0x05, - 31557 - 19968: jis0208<<14 | 0x43<<7 | 0x05, - 31558 - 19968: jis0208<<14 | 0x28<<7 | 0x0D, - 31559 - 19968: jis0212<<14 | 0x31<<7 | 0x06, - 31560 - 19968: jis0208<<14 | 0x27<<7 | 0x05, - 31561 - 19968: jis0208<<14 | 0x24<<7 | 0x58, - 31563 - 19968: jis0208<<14 | 0x15<<7 | 0x39, - 31564 - 19968: jis0208<<14 | 0x43<<7 | 0x04, - 31565 - 19968: jis0208<<14 | 0x43<<7 | 0x02, - 31566 - 19968: jis0212<<14 | 0x31<<7 | 0x07, - 31567 - 19968: jis0208<<14 | 0x27<<7 | 0x14, - 31568 - 19968: jis0208<<14 | 0x42<<7 | 0x5D, - 31569 - 19968: jis0208<<14 | 0x22<<7 | 0x3D, - 31570 - 19968: jis0208<<14 | 0x24<<7 | 0x5A, - 31572 - 19968: jis0208<<14 | 0x24<<7 | 0x59, - 31573 - 19968: jis0212<<14 | 0x31<<7 | 0x08, - 31574 - 19968: jis0208<<14 | 0x19<<7 | 0x55, - 31581 - 19968: jis0208<<14 | 0x43<<7 | 0x17, - 31584 - 19968: jis0212<<14 | 0x31<<7 | 0x09, - 31588 - 19968: jis0212<<14 | 0x31<<7 | 0x0A, - 31589 - 19968: jis0208<<14 | 0x43<<7 | 0x07, - 31590 - 19968: jis0212<<14 | 0x31<<7 | 0x0B, - 31591 - 19968: jis0208<<14 | 0x43<<7 | 0x09, - 31593 - 19968: jis0212<<14 | 0x31<<7 | 0x0C, - 31594 - 19968: jis0212<<14 | 0x31<<7 | 0x0D, - 31596 - 19968: jis0208<<14 | 0x43<<7 | 0x0C, - 31597 - 19968: jis0212<<14 | 0x31<<7 | 0x0E, - 31598 - 19968: jis0208<<14 | 0x43<<7 | 0x0D, - 31599 - 19968: jis0212<<14 | 0x31<<7 | 0x0F, - 31600 - 19968: jis0208<<14 | 0x43<<7 | 0x0A, - 31601 - 19968: jis0208<<14 | 0x43<<7 | 0x0B, - 31602 - 19968: jis0212<<14 | 0x31<<7 | 0x10, - 31603 - 19968: jis0212<<14 | 0x31<<7 | 0x11, - 31604 - 19968: jis0208<<14 | 0x43<<7 | 0x08, - 31605 - 19968: jis0208<<14 | 0x43<<7 | 0x06, - 31607 - 19968: jis0212<<14 | 0x31<<7 | 0x12, - 31610 - 19968: jis0208<<14 | 0x43<<7 | 0x00, - 31620 - 19968: jis0212<<14 | 0x31<<7 | 0x13, - 31622 - 19968: jis0208<<14 | 0x29<<7 | 0x2E, - 31623 - 19968: jis0208<<14 | 0x11<<7 | 0x34, - 31625 - 19968: jis0212<<14 | 0x31<<7 | 0x14, - 31627 - 19968: jis0208<<14 | 0x43<<7 | 0x14, - 31629 - 19968: jis0208<<14 | 0x43<<7 | 0x11, - 31630 - 19968: jis0212<<14 | 0x31<<7 | 0x15, - 31631 - 19968: jis0208<<14 | 0x43<<7 | 0x16, - 31632 - 19968: jis0212<<14 | 0x31<<7 | 0x16, - 31633 - 19968: jis0212<<14 | 0x31<<7 | 0x17, - 31634 - 19968: jis0208<<14 | 0x43<<7 | 0x15, - 31636 - 19968: jis0208<<14 | 0x26<<7 | 0x52, - 31637 - 19968: jis0208<<14 | 0x2B<<7 | 0x06, - 31638 - 19968: jis0212<<14 | 0x31<<7 | 0x18, - 31639 - 19968: jis0208<<14 | 0x1A<<7 | 0x1A, - 31640 - 19968: jis0208<<14 | 0x43<<7 | 0x0F, - 31641 - 19968: jis0208<<14 | 0x43<<7 | 0x18, - 31642 - 19968: jis0208<<14 | 0x43<<7 | 0x13, - 31643 - 19968: jis0212<<14 | 0x31<<7 | 0x19, - 31644 - 19968: jis0208<<14 | 0x43<<7 | 0x12, - 31645 - 19968: jis0208<<14 | 0x43<<7 | 0x0E, - 31646 - 19968: jis0208<<14 | 0x5A<<7 | 0x2B, - 31647 - 19968: jis0208<<14 | 0x43<<7 | 0x10, - 31648 - 19968: jis0212<<14 | 0x31<<7 | 0x1B, - 31649 - 19968: jis0208<<14 | 0x13<<7 | 0x28, - 31653 - 19968: jis0212<<14 | 0x31<<7 | 0x1C, - 31658 - 19968: jis0208<<14 | 0x22<<7 | 0x1C, - 31660 - 19968: jis0212<<14 | 0x31<<7 | 0x1D, - 31661 - 19968: jis0208<<14 | 0x1F<<7 | 0x5C, - 31663 - 19968: jis0212<<14 | 0x31<<7 | 0x1E, - 31664 - 19968: jis0212<<14 | 0x31<<7 | 0x1F, - 31665 - 19968: jis0208<<14 | 0x27<<7 | 0x01, - 31666 - 19968: jis0212<<14 | 0x31<<7 | 0x20, - 31668 - 19968: jis0208<<14 | 0x43<<7 | 0x1D, - 31669 - 19968: jis0212<<14 | 0x31<<7 | 0x21, - 31670 - 19968: jis0212<<14 | 0x31<<7 | 0x22, - 31672 - 19968: jis0208<<14 | 0x27<<7 | 0x03, - 31674 - 19968: jis0212<<14 | 0x31<<7 | 0x23, - 31675 - 19968: jis0212<<14 | 0x31<<7 | 0x24, - 31676 - 19968: jis0212<<14 | 0x31<<7 | 0x25, - 31677 - 19968: jis0212<<14 | 0x31<<7 | 0x26, - 31680 - 19968: jis0208<<14 | 0x1F<<7 | 0x40, - 31681 - 19968: jis0208<<14 | 0x43<<7 | 0x1A, - 31682 - 19968: jis0212<<14 | 0x31<<7 | 0x27, - 31684 - 19968: jis0208<<14 | 0x27<<7 | 0x2E, - 31685 - 19968: jis0212<<14 | 0x31<<7 | 0x28, - 31686 - 19968: jis0208<<14 | 0x43<<7 | 0x1E, - 31687 - 19968: jis0208<<14 | 0x29<<7 | 0x32, - 31688 - 19968: jis0212<<14 | 0x31<<7 | 0x29, - 31689 - 19968: jis0208<<14 | 0x22<<7 | 0x3A, - 31690 - 19968: jis0212<<14 | 0x31<<7 | 0x2A, - 31691 - 19968: jis0208<<14 | 0x43<<7 | 0x19, - 31692 - 19968: jis0208<<14 | 0x43<<7 | 0x1B, - 31695 - 19968: jis0208<<14 | 0x43<<7 | 0x1C, - 31700 - 19968: jis0212<<14 | 0x31<<7 | 0x2B, - 31702 - 19968: jis0212<<14 | 0x31<<7 | 0x2C, - 31703 - 19968: jis0212<<14 | 0x31<<7 | 0x2D, - 31705 - 19968: jis0212<<14 | 0x31<<7 | 0x2E, - 31706 - 19968: jis0212<<14 | 0x31<<7 | 0x2F, - 31707 - 19968: jis0212<<14 | 0x31<<7 | 0x30, - 31709 - 19968: jis0208<<14 | 0x43<<7 | 0x1F, - 31712 - 19968: jis0208<<14 | 0x1B<<7 | 0x23, - 31716 - 19968: jis0208<<14 | 0x25<<7 | 0x25, - 31717 - 19968: jis0208<<14 | 0x43<<7 | 0x24, - 31718 - 19968: jis0208<<14 | 0x43<<7 | 0x23, - 31720 - 19968: jis0212<<14 | 0x31<<7 | 0x31, - 31721 - 19968: jis0208<<14 | 0x43<<7 | 0x20, - 31722 - 19968: jis0212<<14 | 0x31<<7 | 0x32, - 31725 - 19968: jis0208<<14 | 0x2E<<7 | 0x15, - 31730 - 19968: jis0212<<14 | 0x31<<7 | 0x33, - 31731 - 19968: jis0208<<14 | 0x43<<7 | 0x29, - 31732 - 19968: jis0212<<14 | 0x31<<7 | 0x34, - 31733 - 19968: jis0212<<14 | 0x31<<7 | 0x35, - 31734 - 19968: jis0208<<14 | 0x43<<7 | 0x2D, - 31735 - 19968: jis0208<<14 | 0x43<<7 | 0x2A, - 31736 - 19968: jis0212<<14 | 0x31<<7 | 0x36, - 31737 - 19968: jis0212<<14 | 0x31<<7 | 0x37, - 31738 - 19968: jis0212<<14 | 0x31<<7 | 0x38, - 31740 - 19968: jis0212<<14 | 0x31<<7 | 0x39, - 31742 - 19968: jis0212<<14 | 0x31<<7 | 0x3A, - 31744 - 19968: jis0208<<14 | 0x43<<7 | 0x26, - 31745 - 19968: jis0212<<14 | 0x31<<7 | 0x3B, - 31746 - 19968: jis0212<<14 | 0x31<<7 | 0x3C, - 31747 - 19968: jis0212<<14 | 0x31<<7 | 0x3D, - 31748 - 19968: jis0212<<14 | 0x31<<7 | 0x3E, - 31750 - 19968: jis0212<<14 | 0x31<<7 | 0x3F, - 31751 - 19968: jis0208<<14 | 0x43<<7 | 0x27, - 31753 - 19968: jis0212<<14 | 0x31<<7 | 0x40, - 31755 - 19968: jis0212<<14 | 0x31<<7 | 0x41, - 31756 - 19968: jis0212<<14 | 0x31<<7 | 0x42, - 31757 - 19968: jis0208<<14 | 0x43<<7 | 0x2C, - 31758 - 19968: jis0212<<14 | 0x31<<7 | 0x43, - 31759 - 19968: jis0212<<14 | 0x31<<7 | 0x44, - 31761 - 19968: jis0208<<14 | 0x43<<7 | 0x21, - 31762 - 19968: jis0208<<14 | 0x31<<7 | 0x34, - 31763 - 19968: jis0208<<14 | 0x43<<7 | 0x28, - 31764 - 19968: jis0208<<14 | 0x43<<7 | 0x22, - 31767 - 19968: jis0208<<14 | 0x43<<7 | 0x2B, - 31769 - 19968: jis0212<<14 | 0x31<<7 | 0x45, - 31771 - 19968: jis0212<<14 | 0x31<<7 | 0x46, - 31775 - 19968: jis0208<<14 | 0x43<<7 | 0x31, - 31776 - 19968: jis0212<<14 | 0x31<<7 | 0x47, - 31777 - 19968: jis0208<<14 | 0x13<<7 | 0x29, - 31779 - 19968: jis0208<<14 | 0x43<<7 | 0x2E, - 31781 - 19968: jis0212<<14 | 0x31<<7 | 0x48, - 31782 - 19968: jis0212<<14 | 0x31<<7 | 0x49, - 31783 - 19968: jis0208<<14 | 0x43<<7 | 0x2F, - 31784 - 19968: jis0212<<14 | 0x31<<7 | 0x4A, - 31786 - 19968: jis0208<<14 | 0x43<<7 | 0x30, - 31787 - 19968: jis0208<<14 | 0x43<<7 | 0x33, - 31788 - 19968: jis0212<<14 | 0x31<<7 | 0x4B, - 31793 - 19968: jis0212<<14 | 0x31<<7 | 0x4C, - 31795 - 19968: jis0212<<14 | 0x31<<7 | 0x4D, - 31796 - 19968: jis0212<<14 | 0x31<<7 | 0x4E, - 31798 - 19968: jis0212<<14 | 0x31<<7 | 0x4F, - 31799 - 19968: jis0208<<14 | 0x43<<7 | 0x32, - 31800 - 19968: jis0208<<14 | 0x27<<7 | 0x55, - 31801 - 19968: jis0212<<14 | 0x31<<7 | 0x50, - 31802 - 19968: jis0212<<14 | 0x31<<7 | 0x51, - 31805 - 19968: jis0208<<14 | 0x43<<7 | 0x34, - 31806 - 19968: jis0208<<14 | 0x2D<<7 | 0x5B, - 31807 - 19968: jis0208<<14 | 0x29<<7 | 0x4C, - 31808 - 19968: jis0208<<14 | 0x43<<7 | 0x39, - 31811 - 19968: jis0208<<14 | 0x43<<7 | 0x36, - 31814 - 19968: jis0212<<14 | 0x31<<7 | 0x52, - 31818 - 19968: jis0212<<14 | 0x31<<7 | 0x53, - 31820 - 19968: jis0208<<14 | 0x43<<7 | 0x35, - 31821 - 19968: jis0208<<14 | 0x1F<<7 | 0x31, - 31823 - 19968: jis0208<<14 | 0x43<<7 | 0x38, - 31824 - 19968: jis0208<<14 | 0x43<<7 | 0x3A, - 31825 - 19968: jis0212<<14 | 0x31<<7 | 0x55, - 31826 - 19968: jis0212<<14 | 0x31<<7 | 0x56, - 31827 - 19968: jis0212<<14 | 0x31<<7 | 0x57, - 31828 - 19968: jis0208<<14 | 0x43<<7 | 0x37, - 31829 - 19968: jis0212<<14 | 0x31<<7 | 0x54, - 31830 - 19968: jis0208<<14 | 0x43<<7 | 0x3E, - 31832 - 19968: jis0208<<14 | 0x43<<7 | 0x3B, - 31833 - 19968: jis0212<<14 | 0x31<<7 | 0x58, - 31834 - 19968: jis0212<<14 | 0x31<<7 | 0x59, - 31835 - 19968: jis0212<<14 | 0x31<<7 | 0x5A, - 31836 - 19968: jis0212<<14 | 0x31<<7 | 0x5B, - 31837 - 19968: jis0212<<14 | 0x31<<7 | 0x5C, - 31838 - 19968: jis0212<<14 | 0x31<<7 | 0x5D, - 31839 - 19968: jis0208<<14 | 0x43<<7 | 0x3C, - 31840 - 19968: jis0208<<14 | 0x43<<7 | 0x25, - 31841 - 19968: jis0212<<14 | 0x32<<7 | 0x00, - 31843 - 19968: jis0212<<14 | 0x32<<7 | 0x01, - 31844 - 19968: jis0208<<14 | 0x43<<7 | 0x3D, - 31845 - 19968: jis0208<<14 | 0x43<<7 | 0x3F, - 31847 - 19968: jis0212<<14 | 0x32<<7 | 0x02, - 31849 - 19968: jis0212<<14 | 0x32<<7 | 0x03, - 31852 - 19968: jis0208<<14 | 0x43<<7 | 0x40, - 31853 - 19968: jis0212<<14 | 0x32<<7 | 0x04, - 31854 - 19968: jis0212<<14 | 0x32<<7 | 0x05, - 31856 - 19968: jis0212<<14 | 0x32<<7 | 0x06, - 31858 - 19968: jis0212<<14 | 0x32<<7 | 0x07, - 31859 - 19968: jis0208<<14 | 0x29<<7 | 0x25, - 31861 - 19968: jis0208<<14 | 0x43<<7 | 0x41, - 31865 - 19968: jis0212<<14 | 0x32<<7 | 0x08, - 31868 - 19968: jis0212<<14 | 0x32<<7 | 0x09, - 31869 - 19968: jis0212<<14 | 0x32<<7 | 0x0A, - 31870 - 19968: jis0208<<14 | 0x2B<<7 | 0x41, - 31873 - 19968: jis0208<<14 | 0x15<<7 | 0x2D, - 31874 - 19968: jis0208<<14 | 0x16<<7 | 0x08, - 31875 - 19968: jis0208<<14 | 0x43<<7 | 0x42, - 31878 - 19968: jis0212<<14 | 0x32<<7 | 0x0B, - 31879 - 19968: jis0212<<14 | 0x32<<7 | 0x0C, - 31881 - 19968: jis0208<<14 | 0x29<<7 | 0x13, - 31883 - 19968: jis0208<<14 | 0x1E<<7 | 0x47, - 31885 - 19968: jis0208<<14 | 0x2B<<7 | 0x0F, - 31887 - 19968: jis0212<<14 | 0x32<<7 | 0x0D, - 31888 - 19968: jis0208<<14 | 0x43<<7 | 0x43, - 31890 - 19968: jis0208<<14 | 0x2D<<7 | 0x12, - 31892 - 19968: jis0212<<14 | 0x32<<7 | 0x0E, - 31893 - 19968: jis0208<<14 | 0x26<<7 | 0x53, - 31895 - 19968: jis0208<<14 | 0x20<<7 | 0x25, - 31896 - 19968: jis0208<<14 | 0x26<<7 | 0x13, - 31899 - 19968: jis0208<<14 | 0x1C<<7 | 0x2C, - 31902 - 19968: jis0212<<14 | 0x32<<7 | 0x0F, - 31903 - 19968: jis0208<<14 | 0x0F<<7 | 0x1F, - 31904 - 19968: jis0212<<14 | 0x32<<7 | 0x10, - 31905 - 19968: jis0208<<14 | 0x43<<7 | 0x48, - 31906 - 19968: jis0208<<14 | 0x43<<7 | 0x46, - 31908 - 19968: jis0208<<14 | 0x43<<7 | 0x44, - 31909 - 19968: jis0208<<14 | 0x13<<7 | 0x00, - 31910 - 19968: jis0212<<14 | 0x32<<7 | 0x11, - 31911 - 19968: jis0208<<14 | 0x1D<<7 | 0x30, - 31912 - 19968: jis0208<<14 | 0x43<<7 | 0x49, - 31915 - 19968: jis0208<<14 | 0x43<<7 | 0x47, - 31917 - 19968: jis0208<<14 | 0x43<<7 | 0x45, - 31918 - 19968: jis0208<<14 | 0x43<<7 | 0x4D, - 31920 - 19968: jis0212<<14 | 0x32<<7 | 0x12, - 31921 - 19968: jis0208<<14 | 0x43<<7 | 0x4C, - 31922 - 19968: jis0208<<14 | 0x43<<7 | 0x4B, - 31923 - 19968: jis0208<<14 | 0x43<<7 | 0x4A, - 31926 - 19968: jis0212<<14 | 0x32<<7 | 0x13, - 31927 - 19968: jis0212<<14 | 0x32<<7 | 0x14, - 31929 - 19968: jis0208<<14 | 0x43<<7 | 0x4E, - 31930 - 19968: jis0212<<14 | 0x32<<7 | 0x15, - 31931 - 19968: jis0212<<14 | 0x32<<7 | 0x16, - 31932 - 19968: jis0212<<14 | 0x32<<7 | 0x17, - 31933 - 19968: jis0208<<14 | 0x43<<7 | 0x4F, - 31934 - 19968: jis0208<<14 | 0x1F<<7 | 0x19, - 31935 - 19968: jis0212<<14 | 0x32<<7 | 0x18, - 31936 - 19968: jis0208<<14 | 0x43<<7 | 0x50, - 31938 - 19968: jis0208<<14 | 0x43<<7 | 0x52, - 31940 - 19968: jis0212<<14 | 0x32<<7 | 0x19, - 31941 - 19968: jis0208<<14 | 0x43<<7 | 0x51, - 31943 - 19968: jis0212<<14 | 0x32<<7 | 0x1A, - 31944 - 19968: jis0212<<14 | 0x32<<7 | 0x1B, - 31945 - 19968: jis0212<<14 | 0x32<<7 | 0x1C, - 31946 - 19968: jis0208<<14 | 0x17<<7 | 0x31, - 31949 - 19968: jis0212<<14 | 0x32<<7 | 0x1D, - 31950 - 19968: jis0208<<14 | 0x20<<7 | 0x17, - 31951 - 19968: jis0212<<14 | 0x32<<7 | 0x1E, - 31954 - 19968: jis0208<<14 | 0x43<<7 | 0x54, - 31955 - 19968: jis0212<<14 | 0x32<<7 | 0x1F, - 31956 - 19968: jis0212<<14 | 0x32<<7 | 0x20, - 31957 - 19968: jis0212<<14 | 0x32<<7 | 0x21, - 31958 - 19968: jis0208<<14 | 0x24<<7 | 0x5B, - 31959 - 19968: jis0212<<14 | 0x32<<7 | 0x22, - 31960 - 19968: jis0208<<14 | 0x43<<7 | 0x53, - 31961 - 19968: jis0212<<14 | 0x32<<7 | 0x23, - 31962 - 19968: jis0212<<14 | 0x32<<7 | 0x24, - 31964 - 19968: jis0208<<14 | 0x43<<7 | 0x55, - 31965 - 19968: jis0212<<14 | 0x32<<7 | 0x25, - 31966 - 19968: jis0208<<14 | 0x29<<7 | 0x14, - 31967 - 19968: jis0208<<14 | 0x20<<7 | 0x4B, - 31968 - 19968: jis0208<<14 | 0x18<<7 | 0x26, - 31970 - 19968: jis0208<<14 | 0x43<<7 | 0x56, - 31974 - 19968: jis0212<<14 | 0x32<<7 | 0x26, - 31975 - 19968: jis0208<<14 | 0x2D<<7 | 0x27, - 31977 - 19968: jis0212<<14 | 0x32<<7 | 0x27, - 31979 - 19968: jis0212<<14 | 0x32<<7 | 0x28, - 31983 - 19968: jis0208<<14 | 0x43<<7 | 0x58, - 31986 - 19968: jis0208<<14 | 0x43<<7 | 0x59, - 31988 - 19968: jis0208<<14 | 0x43<<7 | 0x5A, - 31989 - 19968: jis0212<<14 | 0x32<<7 | 0x29, - 31990 - 19968: jis0208<<14 | 0x43<<7 | 0x5B, - 31992 - 19968: jis0208<<14 | 0x1A<<7 | 0x44, - 31994 - 19968: jis0208<<14 | 0x43<<7 | 0x5C, - 31995 - 19968: jis0208<<14 | 0x16<<7 | 0x2E, - 31998 - 19968: jis0208<<14 | 0x14<<7 | 0x49, - 32000 - 19968: jis0208<<14 | 0x14<<7 | 0x09, - 32002 - 19968: jis0208<<14 | 0x44<<7 | 0x00, - 32003 - 19968: jis0212<<14 | 0x32<<7 | 0x2A, - 32004 - 19968: jis0208<<14 | 0x2B<<7 | 0x52, - 32005 - 19968: jis0208<<14 | 0x18<<7 | 0x27, - 32006 - 19968: jis0208<<14 | 0x43<<7 | 0x5D, - 32007 - 19968: jis0212<<14 | 0x32<<7 | 0x2B, - 32008 - 19968: jis0212<<14 | 0x32<<7 | 0x2C, - 32009 - 19968: jis0212<<14 | 0x32<<7 | 0x2D, - 32010 - 19968: jis0208<<14 | 0x44<<7 | 0x03, - 32011 - 19968: jis0208<<14 | 0x2B<<7 | 0x45, - 32013 - 19968: jis0208<<14 | 0x26<<7 | 0x1B, - 32015 - 19968: jis0212<<14 | 0x32<<7 | 0x2E, - 32016 - 19968: jis0208<<14 | 0x28<<7 | 0x12, - 32017 - 19968: jis0212<<14 | 0x32<<7 | 0x2F, - 32018 - 19968: jis0212<<14 | 0x32<<7 | 0x30, - 32019 - 19968: jis0212<<14 | 0x32<<7 | 0x31, - 32020 - 19968: jis0208<<14 | 0x1C<<7 | 0x42, - 32021 - 19968: jis0208<<14 | 0x44<<7 | 0x02, - 32022 - 19968: jis0212<<14 | 0x32<<7 | 0x32, - 32023 - 19968: jis0208<<14 | 0x1B<<7 | 0x32, - 32024 - 19968: jis0208<<14 | 0x18<<7 | 0x28, - 32025 - 19968: jis0208<<14 | 0x1A<<7 | 0x45, - 32026 - 19968: jis0208<<14 | 0x14<<7 | 0x48, - 32027 - 19968: jis0208<<14 | 0x29<<7 | 0x15, - 32028 - 19968: jis0208<<14 | 0x44<<7 | 0x01, - 32029 - 19968: jis0212<<14 | 0x32<<7 | 0x33, - 32030 - 19968: jis0212<<14 | 0x32<<7 | 0x34, - 32032 - 19968: jis0208<<14 | 0x20<<7 | 0x26, - 32033 - 19968: jis0208<<14 | 0x2A<<7 | 0x21, - 32034 - 19968: jis0208<<14 | 0x19<<7 | 0x56, - 32035 - 19968: jis0212<<14 | 0x32<<7 | 0x35, - 32038 - 19968: jis0212<<14 | 0x32<<7 | 0x36, - 32042 - 19968: jis0212<<14 | 0x32<<7 | 0x37, - 32043 - 19968: jis0208<<14 | 0x1A<<7 | 0x46, - 32044 - 19968: jis0208<<14 | 0x23<<7 | 0x3C, - 32045 - 19968: jis0212<<14 | 0x32<<7 | 0x38, - 32046 - 19968: jis0208<<14 | 0x44<<7 | 0x06, - 32047 - 19968: jis0208<<14 | 0x2D<<7 | 0x3E, - 32048 - 19968: jis0208<<14 | 0x19<<7 | 0x38, - 32049 - 19968: jis0212<<14 | 0x32<<7 | 0x39, - 32050 - 19968: jis0208<<14 | 0x44<<7 | 0x07, - 32051 - 19968: jis0208<<14 | 0x1E<<7 | 0x21, - 32053 - 19968: jis0208<<14 | 0x44<<7 | 0x09, - 32057 - 19968: jis0208<<14 | 0x1D<<7 | 0x31, - 32058 - 19968: jis0208<<14 | 0x19<<7 | 0x0F, - 32060 - 19968: jis0212<<14 | 0x32<<7 | 0x3A, - 32061 - 19968: jis0212<<14 | 0x32<<7 | 0x3B, - 32062 - 19968: jis0212<<14 | 0x32<<7 | 0x3C, - 32063 - 19968: jis0208<<14 | 0x44<<7 | 0x08, - 32064 - 19968: jis0212<<14 | 0x32<<7 | 0x3D, - 32065 - 19968: jis0212<<14 | 0x32<<7 | 0x3E, - 32066 - 19968: jis0208<<14 | 0x1C<<7 | 0x09, - 32067 - 19968: jis0208<<14 | 0x17<<7 | 0x1D, - 32068 - 19968: jis0208<<14 | 0x20<<7 | 0x27, - 32069 - 19968: jis0208<<14 | 0x44<<7 | 0x04, - 32070 - 19968: jis0208<<14 | 0x44<<7 | 0x0A, - 32071 - 19968: jis0212<<14 | 0x32<<7 | 0x3F, - 32072 - 19968: jis0208<<14 | 0x5A<<7 | 0x2D, - 32075 - 19968: jis0208<<14 | 0x44<<7 | 0x05, - 32076 - 19968: jis0208<<14 | 0x16<<7 | 0x2F, - 32077 - 19968: jis0212<<14 | 0x32<<7 | 0x41, - 32078 - 19968: jis0208<<14 | 0x44<<7 | 0x0D, - 32079 - 19968: jis0208<<14 | 0x44<<7 | 0x11, - 32080 - 19968: jis0208<<14 | 0x16<<7 | 0x4A, - 32081 - 19968: jis0212<<14 | 0x32<<7 | 0x42, - 32083 - 19968: jis0212<<14 | 0x32<<7 | 0x43, - 32086 - 19968: jis0208<<14 | 0x44<<7 | 0x0C, - 32087 - 19968: jis0212<<14 | 0x32<<7 | 0x44, - 32089 - 19968: jis0212<<14 | 0x32<<7 | 0x45, - 32090 - 19968: jis0212<<14 | 0x32<<7 | 0x46, - 32091 - 19968: jis0208<<14 | 0x44<<7 | 0x15, - 32092 - 19968: jis0208<<14 | 0x5A<<7 | 0x2E, - 32093 - 19968: jis0212<<14 | 0x32<<7 | 0x48, - 32094 - 19968: jis0208<<14 | 0x18<<7 | 0x29, - 32097 - 19968: jis0208<<14 | 0x2C<<7 | 0x4C, - 32098 - 19968: jis0208<<14 | 0x0F<<7 | 0x1B, - 32099 - 19968: jis0208<<14 | 0x44<<7 | 0x12, - 32101 - 19968: jis0212<<14 | 0x32<<7 | 0x49, - 32102 - 19968: jis0208<<14 | 0x14<<7 | 0x4A, - 32103 - 19968: jis0212<<14 | 0x32<<7 | 0x4A, - 32104 - 19968: jis0208<<14 | 0x44<<7 | 0x0F, - 32106 - 19968: jis0212<<14 | 0x32<<7 | 0x4B, - 32110 - 19968: jis0208<<14 | 0x44<<7 | 0x10, - 32112 - 19968: jis0212<<14 | 0x32<<7 | 0x4C, - 32113 - 19968: jis0208<<14 | 0x24<<7 | 0x5C, - 32114 - 19968: jis0208<<14 | 0x44<<7 | 0x0E, - 32115 - 19968: jis0208<<14 | 0x44<<7 | 0x0B, - 32117 - 19968: jis0208<<14 | 0x12<<7 | 0x07, - 32118 - 19968: jis0208<<14 | 0x1F<<7 | 0x43, - 32120 - 19968: jis0212<<14 | 0x32<<7 | 0x4D, - 32121 - 19968: jis0208<<14 | 0x17<<7 | 0x07, - 32122 - 19968: jis0212<<14 | 0x32<<7 | 0x4E, - 32123 - 19968: jis0212<<14 | 0x32<<7 | 0x4F, - 32125 - 19968: jis0208<<14 | 0x44<<7 | 0x17, - 32127 - 19968: jis0212<<14 | 0x32<<7 | 0x50, - 32129 - 19968: jis0212<<14 | 0x32<<7 | 0x51, - 32130 - 19968: jis0212<<14 | 0x32<<7 | 0x52, - 32131 - 19968: jis0212<<14 | 0x32<<7 | 0x53, - 32133 - 19968: jis0212<<14 | 0x32<<7 | 0x54, - 32134 - 19968: jis0212<<14 | 0x32<<7 | 0x55, - 32136 - 19968: jis0212<<14 | 0x32<<7 | 0x56, - 32137 - 19968: jis0208<<14 | 0x44<<7 | 0x14, - 32139 - 19968: jis0212<<14 | 0x32<<7 | 0x57, - 32140 - 19968: jis0212<<14 | 0x32<<7 | 0x58, - 32141 - 19968: jis0212<<14 | 0x32<<7 | 0x59, - 32143 - 19968: jis0208<<14 | 0x44<<7 | 0x16, - 32145 - 19968: jis0212<<14 | 0x32<<7 | 0x5A, - 32147 - 19968: jis0208<<14 | 0x44<<7 | 0x13, - 32150 - 19968: jis0212<<14 | 0x32<<7 | 0x5B, - 32151 - 19968: jis0212<<14 | 0x32<<7 | 0x5C, - 32153 - 19968: jis0208<<14 | 0x16<<7 | 0x30, - 32154 - 19968: jis0208<<14 | 0x21<<7 | 0x12, - 32155 - 19968: jis0208<<14 | 0x44<<7 | 0x18, - 32156 - 19968: jis0208<<14 | 0x20<<7 | 0x4D, - 32157 - 19968: jis0212<<14 | 0x32<<7 | 0x5D, - 32158 - 19968: jis0212<<14 | 0x33<<7 | 0x00, - 32159 - 19968: jis0208<<14 | 0x44<<7 | 0x25, - 32160 - 19968: jis0208<<14 | 0x5A<<7 | 0x30, - 32162 - 19968: jis0208<<14 | 0x44<<7 | 0x21, - 32163 - 19968: jis0208<<14 | 0x44<<7 | 0x1B, - 32166 - 19968: jis0212<<14 | 0x33<<7 | 0x01, - 32167 - 19968: jis0212<<14 | 0x33<<7 | 0x02, - 32170 - 19968: jis0212<<14 | 0x33<<7 | 0x03, - 32171 - 19968: jis0208<<14 | 0x44<<7 | 0x1F, - 32172 - 19968: jis0208<<14 | 0x1B<<7 | 0x59, - 32173 - 19968: jis0208<<14 | 0x0F<<7 | 0x3C, - 32174 - 19968: jis0208<<14 | 0x44<<7 | 0x1A, - 32175 - 19968: jis0208<<14 | 0x44<<7 | 0x22, - 32176 - 19968: jis0208<<14 | 0x44<<7 | 0x26, - 32177 - 19968: jis0208<<14 | 0x18<<7 | 0x2A, - 32178 - 19968: jis0208<<14 | 0x2B<<7 | 0x35, - 32179 - 19968: jis0212<<14 | 0x33<<7 | 0x04, - 32180 - 19968: jis0208<<14 | 0x23<<7 | 0x35, - 32181 - 19968: jis0208<<14 | 0x44<<7 | 0x1C, - 32182 - 19968: jis0212<<14 | 0x33<<7 | 0x05, - 32183 - 19968: jis0208<<14 | 0x5A<<7 | 0x2F, - 32184 - 19968: jis0208<<14 | 0x44<<7 | 0x24, - 32185 - 19968: jis0212<<14 | 0x33<<7 | 0x07, - 32186 - 19968: jis0208<<14 | 0x44<<7 | 0x19, - 32187 - 19968: jis0208<<14 | 0x22<<7 | 0x1D, - 32189 - 19968: jis0208<<14 | 0x44<<7 | 0x1E, - 32190 - 19968: jis0208<<14 | 0x0F<<7 | 0x1C, - 32191 - 19968: jis0208<<14 | 0x2B<<7 | 0x29, - 32194 - 19968: jis0212<<14 | 0x33<<7 | 0x08, - 32195 - 19968: jis0212<<14 | 0x33<<7 | 0x09, - 32196 - 19968: jis0212<<14 | 0x33<<7 | 0x0A, - 32197 - 19968: jis0212<<14 | 0x33<<7 | 0x0B, - 32198 - 19968: jis0212<<14 | 0x33<<7 | 0x0C, - 32199 - 19968: jis0208<<14 | 0x44<<7 | 0x1D, - 32202 - 19968: jis0208<<14 | 0x15<<7 | 0x3A, - 32203 - 19968: jis0208<<14 | 0x27<<7 | 0x4B, - 32204 - 19968: jis0212<<14 | 0x33<<7 | 0x0D, - 32205 - 19968: jis0212<<14 | 0x33<<7 | 0x0E, - 32206 - 19968: jis0212<<14 | 0x33<<7 | 0x0F, - 32207 - 19968: jis0208<<14 | 0x20<<7 | 0x4C, - 32209 - 19968: jis0208<<14 | 0x2D<<7 | 0x2F, - 32210 - 19968: jis0208<<14 | 0x1C<<7 | 0x4E, - 32213 - 19968: jis0208<<14 | 0x44<<7 | 0x4D, - 32214 - 19968: jis0208<<14 | 0x5A<<7 | 0x31, - 32215 - 19968: jis0212<<14 | 0x33<<7 | 0x10, - 32216 - 19968: jis0208<<14 | 0x44<<7 | 0x27, - 32217 - 19968: jis0212<<14 | 0x33<<7 | 0x11, - 32218 - 19968: jis0208<<14 | 0x1F<<7 | 0x5D, - 32220 - 19968: jis0208<<14 | 0x44<<7 | 0x23, - 32221 - 19968: jis0208<<14 | 0x44<<7 | 0x28, - 32222 - 19968: jis0208<<14 | 0x44<<7 | 0x2A, - 32224 - 19968: jis0208<<14 | 0x23<<7 | 0x58, - 32225 - 19968: jis0208<<14 | 0x44<<7 | 0x2D, - 32226 - 19968: jis0212<<14 | 0x33<<7 | 0x13, - 32228 - 19968: jis0208<<14 | 0x44<<7 | 0x29, - 32229 - 19968: jis0212<<14 | 0x33<<7 | 0x14, - 32230 - 19968: jis0212<<14 | 0x33<<7 | 0x15, - 32232 - 19968: jis0208<<14 | 0x29<<7 | 0x33, - 32233 - 19968: jis0208<<14 | 0x13<<7 | 0x2A, - 32234 - 19968: jis0212<<14 | 0x33<<7 | 0x16, - 32235 - 19968: jis0212<<14 | 0x33<<7 | 0x17, - 32236 - 19968: jis0208<<14 | 0x2B<<7 | 0x2A, - 32237 - 19968: jis0212<<14 | 0x33<<7 | 0x18, - 32239 - 19968: jis0208<<14 | 0x0F<<7 | 0x3D, - 32241 - 19968: jis0212<<14 | 0x33<<7 | 0x19, - 32242 - 19968: jis0208<<14 | 0x44<<7 | 0x2C, - 32244 - 19968: jis0208<<14 | 0x2D<<7 | 0x5C, - 32245 - 19968: jis0212<<14 | 0x33<<7 | 0x1A, - 32246 - 19968: jis0212<<14 | 0x33<<7 | 0x1B, - 32249 - 19968: jis0212<<14 | 0x33<<7 | 0x1C, - 32250 - 19968: jis0212<<14 | 0x33<<7 | 0x1D, - 32251 - 19968: jis0208<<14 | 0x44<<7 | 0x2B, - 32256 - 19968: jis0212<<14 | 0x33<<7 | 0x12, - 32257 - 19968: jis0208<<14 | 0x10<<7 | 0x4E, - 32260 - 19968: jis0208<<14 | 0x25<<7 | 0x4B, - 32261 - 19968: jis0208<<14 | 0x44<<7 | 0x2E, - 32264 - 19968: jis0212<<14 | 0x33<<7 | 0x1E, - 32265 - 19968: jis0208<<14 | 0x44<<7 | 0x35, - 32266 - 19968: jis0208<<14 | 0x44<<7 | 0x2F, - 32267 - 19968: jis0208<<14 | 0x44<<7 | 0x36, - 32272 - 19968: jis0212<<14 | 0x33<<7 | 0x1F, - 32273 - 19968: jis0212<<14 | 0x33<<7 | 0x20, - 32274 - 19968: jis0208<<14 | 0x44<<7 | 0x32, - 32277 - 19968: jis0212<<14 | 0x33<<7 | 0x21, - 32279 - 19968: jis0212<<14 | 0x33<<7 | 0x22, - 32283 - 19968: jis0208<<14 | 0x26<<7 | 0x5A, - 32284 - 19968: jis0212<<14 | 0x33<<7 | 0x23, - 32285 - 19968: jis0212<<14 | 0x33<<7 | 0x24, - 32286 - 19968: jis0208<<14 | 0x1B<<7 | 0x29, - 32287 - 19968: jis0208<<14 | 0x44<<7 | 0x34, - 32288 - 19968: jis0212<<14 | 0x33<<7 | 0x25, - 32289 - 19968: jis0208<<14 | 0x44<<7 | 0x31, - 32290 - 19968: jis0208<<14 | 0x44<<7 | 0x37, - 32291 - 19968: jis0208<<14 | 0x44<<7 | 0x30, - 32294 - 19968: jis0208<<14 | 0x1C<<7 | 0x23, - 32295 - 19968: jis0212<<14 | 0x33<<7 | 0x26, - 32296 - 19968: jis0212<<14 | 0x33<<7 | 0x27, - 32299 - 19968: jis0208<<14 | 0x2A<<7 | 0x04, - 32300 - 19968: jis0212<<14 | 0x33<<7 | 0x28, - 32301 - 19968: jis0212<<14 | 0x33<<7 | 0x29, - 32302 - 19968: jis0208<<14 | 0x1C<<7 | 0x2B, - 32303 - 19968: jis0212<<14 | 0x33<<7 | 0x2A, - 32305 - 19968: jis0208<<14 | 0x44<<7 | 0x33, - 32306 - 19968: jis0208<<14 | 0x44<<7 | 0x3F, - 32307 - 19968: jis0212<<14 | 0x33<<7 | 0x2B, - 32309 - 19968: jis0208<<14 | 0x44<<7 | 0x3B, - 32310 - 19968: jis0212<<14 | 0x33<<7 | 0x2C, - 32311 - 19968: jis0208<<14 | 0x44<<7 | 0x3E, - 32313 - 19968: jis0208<<14 | 0x44<<7 | 0x3C, - 32314 - 19968: jis0208<<14 | 0x44<<7 | 0x40, - 32315 - 19968: jis0208<<14 | 0x44<<7 | 0x3A, - 32317 - 19968: jis0208<<14 | 0x44<<7 | 0x20, - 32318 - 19968: jis0208<<14 | 0x1F<<7 | 0x32, - 32319 - 19968: jis0212<<14 | 0x33<<7 | 0x2D, - 32321 - 19968: jis0208<<14 | 0x27<<7 | 0x2A, - 32323 - 19968: jis0208<<14 | 0x44<<7 | 0x3D, - 32324 - 19968: jis0212<<14 | 0x33<<7 | 0x2E, - 32325 - 19968: jis0212<<14 | 0x33<<7 | 0x2F, - 32326 - 19968: jis0208<<14 | 0x44<<7 | 0x38, - 32327 - 19968: jis0212<<14 | 0x33<<7 | 0x30, - 32330 - 19968: jis0208<<14 | 0x20<<7 | 0x00, - 32331 - 19968: jis0208<<14 | 0x16<<7 | 0x31, - 32333 - 19968: jis0208<<14 | 0x1C<<7 | 0x0A, - 32334 - 19968: jis0212<<14 | 0x33<<7 | 0x31, - 32336 - 19968: jis0212<<14 | 0x33<<7 | 0x32, - 32338 - 19968: jis0208<<14 | 0x5A<<7 | 0x32, - 32340 - 19968: jis0208<<14 | 0x1E<<7 | 0x04, - 32341 - 19968: jis0208<<14 | 0x20<<7 | 0x15, - 32342 - 19968: jis0208<<14 | 0x44<<7 | 0x43, - 32344 - 19968: jis0212<<14 | 0x33<<7 | 0x34, - 32345 - 19968: jis0208<<14 | 0x44<<7 | 0x45, - 32346 - 19968: jis0208<<14 | 0x44<<7 | 0x46, - 32349 - 19968: jis0208<<14 | 0x44<<7 | 0x42, - 32350 - 19968: jis0208<<14 | 0x44<<7 | 0x44, - 32351 - 19968: jis0212<<14 | 0x33<<7 | 0x35, - 32353 - 19968: jis0212<<14 | 0x33<<7 | 0x36, - 32354 - 19968: jis0212<<14 | 0x33<<7 | 0x37, - 32357 - 19968: jis0212<<14 | 0x33<<7 | 0x38, - 32358 - 19968: jis0208<<14 | 0x44<<7 | 0x39, - 32359 - 19968: jis0208<<14 | 0x44<<7 | 0x41, - 32361 - 19968: jis0208<<14 | 0x44<<7 | 0x49, - 32362 - 19968: jis0208<<14 | 0x44<<7 | 0x48, - 32363 - 19968: jis0212<<14 | 0x33<<7 | 0x39, - 32365 - 19968: jis0208<<14 | 0x2A<<7 | 0x59, - 32366 - 19968: jis0212<<14 | 0x33<<7 | 0x3A, - 32367 - 19968: jis0212<<14 | 0x33<<7 | 0x3B, - 32368 - 19968: jis0208<<14 | 0x16<<7 | 0x0A, - 32371 - 19968: jis0212<<14 | 0x33<<7 | 0x3C, - 32376 - 19968: jis0212<<14 | 0x33<<7 | 0x3D, - 32377 - 19968: jis0208<<14 | 0x44<<7 | 0x47, - 32379 - 19968: jis0208<<14 | 0x44<<7 | 0x4B, - 32380 - 19968: jis0208<<14 | 0x44<<7 | 0x4A, - 32381 - 19968: jis0208<<14 | 0x44<<7 | 0x4E, - 32382 - 19968: jis0212<<14 | 0x33<<7 | 0x3E, - 32383 - 19968: jis0208<<14 | 0x44<<7 | 0x50, - 32385 - 19968: jis0212<<14 | 0x33<<7 | 0x3F, - 32386 - 19968: jis0208<<14 | 0x1A<<7 | 0x1B, - 32387 - 19968: jis0208<<14 | 0x44<<7 | 0x4C, - 32390 - 19968: jis0212<<14 | 0x33<<7 | 0x40, - 32391 - 19968: jis0212<<14 | 0x33<<7 | 0x41, - 32392 - 19968: jis0208<<14 | 0x44<<7 | 0x51, - 32393 - 19968: jis0208<<14 | 0x44<<7 | 0x52, - 32394 - 19968: jis0208<<14 | 0x58<<7 | 0x00, - 32396 - 19968: jis0208<<14 | 0x44<<7 | 0x53, - 32397 - 19968: jis0212<<14 | 0x33<<7 | 0x43, - 32398 - 19968: jis0208<<14 | 0x44<<7 | 0x59, - 32399 - 19968: jis0208<<14 | 0x24<<7 | 0x1A, - 32400 - 19968: jis0208<<14 | 0x44<<7 | 0x55, - 32401 - 19968: jis0212<<14 | 0x33<<7 | 0x44, - 32402 - 19968: jis0208<<14 | 0x44<<7 | 0x54, - 32403 - 19968: jis0208<<14 | 0x44<<7 | 0x56, - 32404 - 19968: jis0208<<14 | 0x44<<7 | 0x57, - 32405 - 19968: jis0212<<14 | 0x33<<7 | 0x45, - 32406 - 19968: jis0208<<14 | 0x44<<7 | 0x58, - 32408 - 19968: jis0212<<14 | 0x33<<7 | 0x46, - 32410 - 19968: jis0212<<14 | 0x33<<7 | 0x47, - 32411 - 19968: jis0208<<14 | 0x44<<7 | 0x5A, - 32412 - 19968: jis0208<<14 | 0x44<<7 | 0x5B, - 32413 - 19968: jis0212<<14 | 0x33<<7 | 0x48, - 32414 - 19968: jis0212<<14 | 0x33<<7 | 0x49, - 32566 - 19968: jis0208<<14 | 0x13<<7 | 0x2B, - 32568 - 19968: jis0208<<14 | 0x44<<7 | 0x5C, - 32570 - 19968: jis0208<<14 | 0x44<<7 | 0x5D, - 32571 - 19968: jis0212<<14 | 0x33<<7 | 0x4B, - 32572 - 19968: jis0212<<14 | 0x33<<7 | 0x4A, - 32573 - 19968: jis0212<<14 | 0x33<<7 | 0x4C, - 32574 - 19968: jis0212<<14 | 0x33<<7 | 0x4D, - 32575 - 19968: jis0212<<14 | 0x33<<7 | 0x4E, - 32579 - 19968: jis0212<<14 | 0x33<<7 | 0x4F, - 32580 - 19968: jis0212<<14 | 0x33<<7 | 0x50, - 32581 - 19968: jis0208<<14 | 0x45<<7 | 0x00, - 32583 - 19968: jis0208<<14 | 0x5A<<7 | 0x33, - 32588 - 19968: jis0208<<14 | 0x45<<7 | 0x01, - 32589 - 19968: jis0208<<14 | 0x45<<7 | 0x02, - 32590 - 19968: jis0208<<14 | 0x45<<7 | 0x03, - 32591 - 19968: jis0212<<14 | 0x33<<7 | 0x52, - 32592 - 19968: jis0208<<14 | 0x45<<7 | 0x04, - 32593 - 19968: jis0208<<14 | 0x45<<7 | 0x05, - 32594 - 19968: jis0212<<14 | 0x33<<7 | 0x53, - 32595 - 19968: jis0212<<14 | 0x33<<7 | 0x54, - 32596 - 19968: jis0208<<14 | 0x45<<7 | 0x07, - 32597 - 19968: jis0208<<14 | 0x45<<7 | 0x06, - 32600 - 19968: jis0208<<14 | 0x45<<7 | 0x08, - 32603 - 19968: jis0212<<14 | 0x33<<7 | 0x55, - 32604 - 19968: jis0212<<14 | 0x33<<7 | 0x56, - 32605 - 19968: jis0212<<14 | 0x33<<7 | 0x57, - 32607 - 19968: jis0208<<14 | 0x45<<7 | 0x09, - 32608 - 19968: jis0208<<14 | 0x45<<7 | 0x0A, - 32609 - 19968: jis0212<<14 | 0x33<<7 | 0x58, - 32611 - 19968: jis0212<<14 | 0x33<<7 | 0x59, - 32612 - 19968: jis0212<<14 | 0x33<<7 | 0x5A, - 32613 - 19968: jis0212<<14 | 0x33<<7 | 0x5B, - 32614 - 19968: jis0212<<14 | 0x33<<7 | 0x5C, - 32615 - 19968: jis0208<<14 | 0x45<<7 | 0x0D, - 32616 - 19968: jis0208<<14 | 0x45<<7 | 0x0B, - 32617 - 19968: jis0208<<14 | 0x45<<7 | 0x0C, - 32618 - 19968: jis0208<<14 | 0x19<<7 | 0x40, - 32619 - 19968: jis0208<<14 | 0x16<<7 | 0x32, - 32621 - 19968: jis0212<<14 | 0x33<<7 | 0x5D, - 32622 - 19968: jis0208<<14 | 0x22<<7 | 0x35, - 32624 - 19968: jis0208<<14 | 0x27<<7 | 0x12, - 32625 - 19968: jis0212<<14 | 0x34<<7 | 0x00, - 32626 - 19968: jis0208<<14 | 0x1C<<7 | 0x4F, - 32629 - 19968: jis0208<<14 | 0x26<<7 | 0x2C, - 32631 - 19968: jis0208<<14 | 0x27<<7 | 0x4C, - 32632 - 19968: jis0208<<14 | 0x45<<7 | 0x0E, - 32633 - 19968: jis0208<<14 | 0x37<<7 | 0x4C, - 32637 - 19968: jis0212<<14 | 0x34<<7 | 0x01, - 32638 - 19968: jis0212<<14 | 0x34<<7 | 0x02, - 32639 - 19968: jis0212<<14 | 0x34<<7 | 0x03, - 32640 - 19968: jis0212<<14 | 0x34<<7 | 0x04, - 32642 - 19968: jis0208<<14 | 0x45<<7 | 0x0F, - 32643 - 19968: jis0208<<14 | 0x45<<7 | 0x11, - 32645 - 19968: jis0208<<14 | 0x2C<<7 | 0x44, - 32646 - 19968: jis0208<<14 | 0x45<<7 | 0x10, - 32647 - 19968: jis0208<<14 | 0x45<<7 | 0x13, - 32648 - 19968: jis0208<<14 | 0x45<<7 | 0x12, - 32650 - 19968: jis0208<<14 | 0x2C<<7 | 0x32, - 32651 - 19968: jis0212<<14 | 0x34<<7 | 0x05, - 32652 - 19968: jis0208<<14 | 0x45<<7 | 0x14, - 32653 - 19968: jis0212<<14 | 0x34<<7 | 0x06, - 32654 - 19968: jis0208<<14 | 0x27<<7 | 0x5D, - 32655 - 19968: jis0212<<14 | 0x34<<7 | 0x07, - 32656 - 19968: jis0212<<14 | 0x34<<7 | 0x08, - 32657 - 19968: jis0212<<14 | 0x34<<7 | 0x09, - 32660 - 19968: jis0208<<14 | 0x45<<7 | 0x15, - 32662 - 19968: jis0212<<14 | 0x34<<7 | 0x0A, - 32663 - 19968: jis0212<<14 | 0x34<<7 | 0x0B, - 32666 - 19968: jis0208<<14 | 0x45<<7 | 0x18, - 32668 - 19968: jis0212<<14 | 0x34<<7 | 0x0C, - 32669 - 19968: jis0208<<14 | 0x45<<7 | 0x17, - 32670 - 19968: jis0208<<14 | 0x45<<7 | 0x16, - 32673 - 19968: jis0208<<14 | 0x5A<<7 | 0x34, - 32674 - 19968: jis0212<<14 | 0x34<<7 | 0x0E, - 32675 - 19968: jis0208<<14 | 0x45<<7 | 0x19, - 32676 - 19968: jis0208<<14 | 0x16<<7 | 0x11, - 32678 - 19968: jis0212<<14 | 0x34<<7 | 0x0F, - 32680 - 19968: jis0208<<14 | 0x20<<7 | 0x01, - 32681 - 19968: jis0208<<14 | 0x14<<7 | 0x20, - 32682 - 19968: jis0212<<14 | 0x34<<7 | 0x10, - 32685 - 19968: jis0212<<14 | 0x34<<7 | 0x11, - 32686 - 19968: jis0208<<14 | 0x45<<7 | 0x1D, - 32687 - 19968: jis0208<<14 | 0x45<<7 | 0x1A, - 32690 - 19968: jis0208<<14 | 0x45<<7 | 0x1B, - 32692 - 19968: jis0212<<14 | 0x34<<7 | 0x12, - 32694 - 19968: jis0208<<14 | 0x45<<7 | 0x1E, - 32696 - 19968: jis0208<<14 | 0x45<<7 | 0x1F, - 32697 - 19968: jis0208<<14 | 0x45<<7 | 0x1C, - 32700 - 19968: jis0212<<14 | 0x34<<7 | 0x13, - 32701 - 19968: jis0208<<14 | 0x10<<7 | 0x08, - 32703 - 19968: jis0212<<14 | 0x34<<7 | 0x14, - 32704 - 19968: jis0212<<14 | 0x34<<7 | 0x15, - 32705 - 19968: jis0208<<14 | 0x11<<7 | 0x06, - 32707 - 19968: jis0212<<14 | 0x34<<7 | 0x16, - 32709 - 19968: jis0208<<14 | 0x45<<7 | 0x21, - 32710 - 19968: jis0208<<14 | 0x45<<7 | 0x22, - 32712 - 19968: jis0212<<14 | 0x34<<7 | 0x17, - 32714 - 19968: jis0208<<14 | 0x45<<7 | 0x23, - 32716 - 19968: jis0208<<14 | 0x2C<<7 | 0x41, - 32718 - 19968: jis0212<<14 | 0x34<<7 | 0x18, - 32719 - 19968: jis0212<<14 | 0x34<<7 | 0x19, - 32722 - 19968: jis0208<<14 | 0x1C<<7 | 0x0B, - 32724 - 19968: jis0208<<14 | 0x45<<7 | 0x25, - 32725 - 19968: jis0208<<14 | 0x45<<7 | 0x24, - 32731 - 19968: jis0212<<14 | 0x34<<7 | 0x1A, - 32735 - 19968: jis0212<<14 | 0x34<<7 | 0x1B, - 32736 - 19968: jis0208<<14 | 0x1E<<7 | 0x48, - 32737 - 19968: jis0208<<14 | 0x45<<7 | 0x26, - 32739 - 19968: jis0212<<14 | 0x34<<7 | 0x1C, - 32741 - 19968: jis0212<<14 | 0x34<<7 | 0x1D, - 32742 - 19968: jis0208<<14 | 0x45<<7 | 0x27, - 32744 - 19968: jis0212<<14 | 0x34<<7 | 0x1E, - 32745 - 19968: jis0208<<14 | 0x45<<7 | 0x28, - 32747 - 19968: jis0208<<14 | 0x13<<7 | 0x44, - 32748 - 19968: jis0212<<14 | 0x34<<7 | 0x1F, - 32750 - 19968: jis0212<<14 | 0x34<<7 | 0x20, - 32751 - 19968: jis0212<<14 | 0x34<<7 | 0x21, - 32752 - 19968: jis0208<<14 | 0x13<<7 | 0x2C, - 32754 - 19968: jis0212<<14 | 0x34<<7 | 0x22, - 32755 - 19968: jis0208<<14 | 0x45<<7 | 0x29, - 32761 - 19968: jis0208<<14 | 0x45<<7 | 0x2A, - 32762 - 19968: jis0212<<14 | 0x34<<7 | 0x23, - 32763 - 19968: jis0208<<14 | 0x2A<<7 | 0x3C, - 32764 - 19968: jis0208<<14 | 0x2C<<7 | 0x42, - 32765 - 19968: jis0212<<14 | 0x34<<7 | 0x24, - 32766 - 19968: jis0212<<14 | 0x34<<7 | 0x25, - 32767 - 19968: jis0212<<14 | 0x34<<7 | 0x26, - 32768 - 19968: jis0208<<14 | 0x2C<<7 | 0x33, - 32769 - 19968: jis0208<<14 | 0x2E<<7 | 0x16, - 32771 - 19968: jis0208<<14 | 0x18<<7 | 0x2C, - 32772 - 19968: jis0208<<14 | 0x45<<7 | 0x2D, - 32773 - 19968: jis0208<<14 | 0x1B<<7 | 0x33, - 32774 - 19968: jis0208<<14 | 0x45<<7 | 0x2C, - 32775 - 19968: jis0212<<14 | 0x34<<7 | 0x27, - 32776 - 19968: jis0212<<14 | 0x34<<7 | 0x28, - 32778 - 19968: jis0212<<14 | 0x34<<7 | 0x29, - 32779 - 19968: jis0208<<14 | 0x45<<7 | 0x2E, - 32780 - 19968: jis0208<<14 | 0x1B<<7 | 0x08, - 32781 - 19968: jis0212<<14 | 0x34<<7 | 0x2A, - 32782 - 19968: jis0212<<14 | 0x34<<7 | 0x2B, - 32783 - 19968: jis0212<<14 | 0x34<<7 | 0x2C, - 32784 - 19968: jis0208<<14 | 0x21<<7 | 0x30, - 32785 - 19968: jis0212<<14 | 0x34<<7 | 0x2D, - 32786 - 19968: jis0208<<14 | 0x45<<7 | 0x2F, - 32787 - 19968: jis0212<<14 | 0x34<<7 | 0x2E, - 32788 - 19968: jis0212<<14 | 0x34<<7 | 0x2F, - 32789 - 19968: jis0208<<14 | 0x18<<7 | 0x2B, - 32790 - 19968: jis0212<<14 | 0x34<<7 | 0x30, - 32791 - 19968: jis0208<<14 | 0x2B<<7 | 0x36, - 32792 - 19968: jis0208<<14 | 0x45<<7 | 0x30, - 32793 - 19968: jis0208<<14 | 0x45<<7 | 0x31, - 32796 - 19968: jis0208<<14 | 0x45<<7 | 0x32, - 32797 - 19968: jis0212<<14 | 0x34<<7 | 0x31, - 32798 - 19968: jis0212<<14 | 0x34<<7 | 0x32, - 32799 - 19968: jis0212<<14 | 0x34<<7 | 0x33, - 32800 - 19968: jis0212<<14 | 0x34<<7 | 0x34, - 32801 - 19968: jis0208<<14 | 0x45<<7 | 0x33, - 32804 - 19968: jis0212<<14 | 0x34<<7 | 0x35, - 32806 - 19968: jis0212<<14 | 0x34<<7 | 0x36, - 32808 - 19968: jis0208<<14 | 0x45<<7 | 0x34, - 32812 - 19968: jis0212<<14 | 0x34<<7 | 0x37, - 32814 - 19968: jis0212<<14 | 0x34<<7 | 0x38, - 32816 - 19968: jis0212<<14 | 0x34<<7 | 0x39, - 32819 - 19968: jis0208<<14 | 0x1B<<7 | 0x09, - 32820 - 19968: jis0212<<14 | 0x34<<7 | 0x3A, - 32821 - 19968: jis0212<<14 | 0x34<<7 | 0x3B, - 32822 - 19968: jis0208<<14 | 0x2B<<7 | 0x4C, - 32823 - 19968: jis0212<<14 | 0x34<<7 | 0x3C, - 32825 - 19968: jis0212<<14 | 0x34<<7 | 0x3D, - 32826 - 19968: jis0212<<14 | 0x34<<7 | 0x3E, - 32827 - 19968: jis0208<<14 | 0x45<<7 | 0x36, - 32828 - 19968: jis0212<<14 | 0x34<<7 | 0x3F, - 32829 - 19968: jis0208<<14 | 0x22<<7 | 0x1E, - 32830 - 19968: jis0212<<14 | 0x34<<7 | 0x40, - 32831 - 19968: jis0208<<14 | 0x45<<7 | 0x35, - 32832 - 19968: jis0212<<14 | 0x34<<7 | 0x41, - 32836 - 19968: jis0212<<14 | 0x34<<7 | 0x42, - 32838 - 19968: jis0208<<14 | 0x45<<7 | 0x38, - 32842 - 19968: jis0208<<14 | 0x45<<7 | 0x37, - 32850 - 19968: jis0208<<14 | 0x45<<7 | 0x39, - 32854 - 19968: jis0208<<14 | 0x1F<<7 | 0x1A, - 32856 - 19968: jis0208<<14 | 0x45<<7 | 0x3A, - 32858 - 19968: jis0208<<14 | 0x45<<7 | 0x3B, - 32862 - 19968: jis0208<<14 | 0x29<<7 | 0x18, - 32863 - 19968: jis0208<<14 | 0x45<<7 | 0x3C, - 32864 - 19968: jis0212<<14 | 0x34<<7 | 0x43, - 32865 - 19968: jis0208<<14 | 0x20<<7 | 0x4E, - 32866 - 19968: jis0208<<14 | 0x45<<7 | 0x3D, - 32868 - 19968: jis0212<<14 | 0x34<<7 | 0x44, - 32870 - 19968: jis0212<<14 | 0x34<<7 | 0x45, - 32872 - 19968: jis0208<<14 | 0x45<<7 | 0x3E, - 32877 - 19968: jis0212<<14 | 0x34<<7 | 0x46, - 32879 - 19968: jis0208<<14 | 0x2D<<7 | 0x5D, - 32880 - 19968: jis0208<<14 | 0x45<<7 | 0x41, - 32881 - 19968: jis0212<<14 | 0x34<<7 | 0x47, - 32882 - 19968: jis0208<<14 | 0x45<<7 | 0x40, - 32883 - 19968: jis0208<<14 | 0x45<<7 | 0x3F, - 32884 - 19968: jis0208<<14 | 0x23<<7 | 0x0F, - 32885 - 19968: jis0212<<14 | 0x34<<7 | 0x48, - 32886 - 19968: jis0208<<14 | 0x45<<7 | 0x42, - 32887 - 19968: jis0208<<14 | 0x1E<<7 | 0x05, - 32889 - 19968: jis0208<<14 | 0x45<<7 | 0x43, - 32893 - 19968: jis0208<<14 | 0x45<<7 | 0x44, - 32894 - 19968: jis0208<<14 | 0x2E<<7 | 0x17, - 32895 - 19968: jis0208<<14 | 0x45<<7 | 0x45, - 32897 - 19968: jis0212<<14 | 0x34<<7 | 0x49, - 32900 - 19968: jis0208<<14 | 0x45<<7 | 0x46, - 32901 - 19968: jis0208<<14 | 0x45<<7 | 0x48, - 32902 - 19968: jis0208<<14 | 0x45<<7 | 0x47, - 32903 - 19968: jis0208<<14 | 0x27<<7 | 0x04, - 32904 - 19968: jis0212<<14 | 0x34<<7 | 0x4A, - 32905 - 19968: jis0208<<14 | 0x25<<7 | 0x58, - 32907 - 19968: jis0208<<14 | 0x2E<<7 | 0x1D, - 32908 - 19968: jis0208<<14 | 0x27<<7 | 0x08, - 32910 - 19968: jis0212<<14 | 0x34<<7 | 0x4B, - 32915 - 19968: jis0208<<14 | 0x45<<7 | 0x4A, - 32918 - 19968: jis0208<<14 | 0x1D<<7 | 0x32, - 32920 - 19968: jis0208<<14 | 0x28<<7 | 0x09, - 32922 - 19968: jis0208<<14 | 0x45<<7 | 0x4B, - 32923 - 19968: jis0208<<14 | 0x45<<7 | 0x49, - 32924 - 19968: jis0212<<14 | 0x34<<7 | 0x4C, - 32925 - 19968: jis0208<<14 | 0x13<<7 | 0x2D, - 32926 - 19968: jis0212<<14 | 0x34<<7 | 0x4D, - 32929 - 19968: jis0208<<14 | 0x17<<7 | 0x33, - 32930 - 19968: jis0208<<14 | 0x1A<<7 | 0x47, - 32933 - 19968: jis0208<<14 | 0x27<<7 | 0x4D, - 32934 - 19968: jis0212<<14 | 0x34<<7 | 0x4E, - 32935 - 19968: jis0212<<14 | 0x34<<7 | 0x4F, - 32937 - 19968: jis0208<<14 | 0x17<<7 | 0x09, - 32938 - 19968: jis0208<<14 | 0x2A<<7 | 0x22, - 32939 - 19968: jis0212<<14 | 0x34<<7 | 0x50, - 32940 - 19968: jis0208<<14 | 0x45<<7 | 0x4E, - 32941 - 19968: jis0208<<14 | 0x45<<7 | 0x4C, - 32943 - 19968: jis0208<<14 | 0x18<<7 | 0x2D, - 32945 - 19968: jis0208<<14 | 0x18<<7 | 0x2E, - 32946 - 19968: jis0208<<14 | 0x0F<<7 | 0x48, - 32948 - 19968: jis0208<<14 | 0x19<<7 | 0x47, - 32952 - 19968: jis0212<<14 | 0x34<<7 | 0x51, - 32953 - 19968: jis0212<<14 | 0x34<<7 | 0x52, - 32954 - 19968: jis0208<<14 | 0x26<<7 | 0x38, - 32963 - 19968: jis0208<<14 | 0x0F<<7 | 0x3E, - 32964 - 19968: jis0208<<14 | 0x45<<7 | 0x53, - 32966 - 19968: jis0208<<14 | 0x22<<7 | 0x1F, - 32968 - 19968: jis0212<<14 | 0x34<<7 | 0x53, - 32972 - 19968: jis0208<<14 | 0x26<<7 | 0x37, - 32973 - 19968: jis0212<<14 | 0x34<<7 | 0x54, - 32974 - 19968: jis0208<<14 | 0x21<<7 | 0x3A, - 32975 - 19968: jis0212<<14 | 0x34<<7 | 0x55, - 32978 - 19968: jis0212<<14 | 0x34<<7 | 0x56, - 32980 - 19968: jis0212<<14 | 0x34<<7 | 0x57, - 32981 - 19968: jis0212<<14 | 0x34<<7 | 0x58, - 32982 - 19968: jis0208<<14 | 0x45<<7 | 0x55, - 32983 - 19968: jis0212<<14 | 0x34<<7 | 0x59, - 32984 - 19968: jis0212<<14 | 0x34<<7 | 0x5A, - 32985 - 19968: jis0208<<14 | 0x45<<7 | 0x51, - 32986 - 19968: jis0208<<14 | 0x45<<7 | 0x54, - 32987 - 19968: jis0208<<14 | 0x45<<7 | 0x4F, - 32989 - 19968: jis0208<<14 | 0x45<<7 | 0x52, - 32990 - 19968: jis0208<<14 | 0x2A<<7 | 0x05, - 32992 - 19968: jis0212<<14 | 0x34<<7 | 0x5B, - 32993 - 19968: jis0208<<14 | 0x17<<7 | 0x34, - 32996 - 19968: jis0208<<14 | 0x0F<<7 | 0x5C, - 32997 - 19968: jis0208<<14 | 0x45<<7 | 0x50, - 33005 - 19968: jis0212<<14 | 0x34<<7 | 0x5C, - 33006 - 19968: jis0212<<14 | 0x34<<7 | 0x5D, - 33007 - 19968: jis0208<<14 | 0x45<<7 | 0x57, - 33008 - 19968: jis0212<<14 | 0x35<<7 | 0x00, - 33009 - 19968: jis0208<<14 | 0x45<<7 | 0x58, - 33010 - 19968: jis0212<<14 | 0x35<<7 | 0x01, - 33011 - 19968: jis0212<<14 | 0x35<<7 | 0x02, - 33012 - 19968: jis0208<<14 | 0x25<<7 | 0x18, - 33014 - 19968: jis0212<<14 | 0x35<<7 | 0x03, - 33016 - 19968: jis0208<<14 | 0x15<<7 | 0x1A, - 33017 - 19968: jis0212<<14 | 0x35<<7 | 0x04, - 33018 - 19968: jis0212<<14 | 0x35<<7 | 0x05, - 33020 - 19968: jis0208<<14 | 0x46<<7 | 0x05, - 33021 - 19968: jis0208<<14 | 0x26<<7 | 0x1C, - 33022 - 19968: jis0212<<14 | 0x35<<7 | 0x06, - 33026 - 19968: jis0208<<14 | 0x1A<<7 | 0x48, - 33027 - 19968: jis0212<<14 | 0x35<<7 | 0x07, - 33029 - 19968: jis0208<<14 | 0x15<<7 | 0x1B, - 33030 - 19968: jis0208<<14 | 0x1F<<7 | 0x27, - 33031 - 19968: jis0208<<14 | 0x2E<<7 | 0x25, - 33032 - 19968: jis0208<<14 | 0x2B<<7 | 0x0D, - 33033 - 19968: jis0208<<14 | 0x45<<7 | 0x56, - 33034 - 19968: jis0208<<14 | 0x1F<<7 | 0x33, - 33035 - 19968: jis0212<<14 | 0x35<<7 | 0x08, - 33046 - 19968: jis0212<<14 | 0x35<<7 | 0x09, - 33047 - 19968: jis0212<<14 | 0x35<<7 | 0x0A, - 33048 - 19968: jis0212<<14 | 0x35<<7 | 0x0B, - 33050 - 19968: jis0208<<14 | 0x14<<7 | 0x32, - 33051 - 19968: jis0208<<14 | 0x45<<7 | 0x59, - 33052 - 19968: jis0212<<14 | 0x35<<7 | 0x0C, - 33054 - 19968: jis0212<<14 | 0x35<<7 | 0x0D, - 33056 - 19968: jis0212<<14 | 0x35<<7 | 0x0E, - 33059 - 19968: jis0208<<14 | 0x45<<7 | 0x5B, - 33060 - 19968: jis0212<<14 | 0x35<<7 | 0x0F, - 33063 - 19968: jis0212<<14 | 0x35<<7 | 0x10, - 33065 - 19968: jis0208<<14 | 0x45<<7 | 0x5A, - 33068 - 19968: jis0212<<14 | 0x35<<7 | 0x11, - 33071 - 19968: jis0208<<14 | 0x45<<7 | 0x5C, - 33072 - 19968: jis0212<<14 | 0x35<<7 | 0x12, - 33073 - 19968: jis0208<<14 | 0x22<<7 | 0x05, - 33075 - 19968: jis0208<<14 | 0x26<<7 | 0x1D, - 33077 - 19968: jis0212<<14 | 0x35<<7 | 0x13, - 33081 - 19968: jis0208<<14 | 0x23<<7 | 0x10, - 33082 - 19968: jis0212<<14 | 0x35<<7 | 0x14, - 33084 - 19968: jis0212<<14 | 0x35<<7 | 0x15, - 33086 - 19968: jis0208<<14 | 0x46<<7 | 0x02, - 33093 - 19968: jis0212<<14 | 0x35<<7 | 0x16, - 33094 - 19968: jis0208<<14 | 0x46<<7 | 0x01, - 33095 - 19968: jis0212<<14 | 0x35<<7 | 0x17, - 33098 - 19968: jis0212<<14 | 0x35<<7 | 0x18, - 33099 - 19968: jis0208<<14 | 0x45<<7 | 0x5D, - 33100 - 19968: jis0212<<14 | 0x35<<7 | 0x19, - 33102 - 19968: jis0208<<14 | 0x1E<<7 | 0x34, - 33104 - 19968: jis0208<<14 | 0x28<<7 | 0x44, - 33105 - 19968: jis0208<<14 | 0x46<<7 | 0x04, - 33106 - 19968: jis0212<<14 | 0x35<<7 | 0x1A, - 33107 - 19968: jis0208<<14 | 0x46<<7 | 0x03, - 33108 - 19968: jis0208<<14 | 0x18<<7 | 0x2F, - 33109 - 19968: jis0208<<14 | 0x2E<<7 | 0x32, - 33111 - 19968: jis0212<<14 | 0x35<<7 | 0x1B, - 33119 - 19968: jis0208<<14 | 0x46<<7 | 0x14, - 33120 - 19968: jis0212<<14 | 0x35<<7 | 0x1C, - 33121 - 19968: jis0212<<14 | 0x35<<7 | 0x1D, - 33125 - 19968: jis0208<<14 | 0x46<<7 | 0x08, - 33126 - 19968: jis0208<<14 | 0x46<<7 | 0x09, - 33127 - 19968: jis0212<<14 | 0x35<<7 | 0x1E, - 33128 - 19968: jis0212<<14 | 0x35<<7 | 0x1F, - 33129 - 19968: jis0212<<14 | 0x35<<7 | 0x20, - 33131 - 19968: jis0208<<14 | 0x1B<<7 | 0x4F, - 33133 - 19968: jis0212<<14 | 0x35<<7 | 0x21, - 33134 - 19968: jis0208<<14 | 0x46<<7 | 0x07, - 33135 - 19968: jis0212<<14 | 0x35<<7 | 0x22, - 33136 - 19968: jis0208<<14 | 0x18<<7 | 0x57, - 33137 - 19968: jis0208<<14 | 0x46<<7 | 0x06, - 33140 - 19968: jis0208<<14 | 0x46<<7 | 0x0A, - 33143 - 19968: jis0212<<14 | 0x35<<7 | 0x23, - 33144 - 19968: jis0208<<14 | 0x23<<7 | 0x11, - 33145 - 19968: jis0208<<14 | 0x29<<7 | 0x01, - 33146 - 19968: jis0208<<14 | 0x20<<7 | 0x02, - 33151 - 19968: jis0208<<14 | 0x21<<7 | 0x3B, - 33152 - 19968: jis0208<<14 | 0x46<<7 | 0x0E, - 33153 - 19968: jis0212<<14 | 0x35<<7 | 0x24, - 33154 - 19968: jis0208<<14 | 0x46<<7 | 0x0F, - 33155 - 19968: jis0208<<14 | 0x46<<7 | 0x0B, - 33156 - 19968: jis0212<<14 | 0x35<<7 | 0x26, - 33157 - 19968: jis0212<<14 | 0x35<<7 | 0x27, - 33158 - 19968: jis0212<<14 | 0x35<<7 | 0x28, - 33160 - 19968: jis0208<<14 | 0x46<<7 | 0x0C, - 33162 - 19968: jis0208<<14 | 0x46<<7 | 0x0D, - 33163 - 19968: jis0212<<14 | 0x35<<7 | 0x29, - 33166 - 19968: jis0212<<14 | 0x35<<7 | 0x2A, - 33167 - 19968: jis0208<<14 | 0x18<<7 | 0x30, - 33168 - 19968: jis0212<<14 | 0x35<<7 | 0x25, - 33171 - 19968: jis0208<<14 | 0x46<<7 | 0x15, - 33173 - 19968: jis0208<<14 | 0x46<<7 | 0x11, - 33174 - 19968: jis0212<<14 | 0x35<<7 | 0x2B, - 33176 - 19968: jis0212<<14 | 0x35<<7 | 0x2C, - 33178 - 19968: jis0208<<14 | 0x28<<7 | 0x45, - 33179 - 19968: jis0212<<14 | 0x35<<7 | 0x2D, - 33180 - 19968: jis0208<<14 | 0x2A<<7 | 0x4B, - 33181 - 19968: jis0208<<14 | 0x28<<7 | 0x07, - 33182 - 19968: jis0212<<14 | 0x35<<7 | 0x2E, - 33184 - 19968: jis0208<<14 | 0x46<<7 | 0x10, - 33186 - 19968: jis0212<<14 | 0x35<<7 | 0x2F, - 33187 - 19968: jis0208<<14 | 0x46<<7 | 0x13, - 33188 - 19968: jis0208<<14 | 0x46<<7 | 0x12, - 33192 - 19968: jis0208<<14 | 0x2A<<7 | 0x23, - 33193 - 19968: jis0208<<14 | 0x46<<7 | 0x16, - 33198 - 19968: jis0212<<14 | 0x35<<7 | 0x30, - 33200 - 19968: jis0208<<14 | 0x46<<7 | 0x17, - 33202 - 19968: jis0212<<14 | 0x35<<7 | 0x31, - 33203 - 19968: jis0208<<14 | 0x20<<7 | 0x16, - 33204 - 19968: jis0212<<14 | 0x35<<7 | 0x32, - 33205 - 19968: jis0208<<14 | 0x46<<7 | 0x18, - 33208 - 19968: jis0208<<14 | 0x46<<7 | 0x1A, - 33210 - 19968: jis0208<<14 | 0x46<<7 | 0x1E, - 33211 - 19968: jis0212<<14 | 0x35<<7 | 0x33, - 33213 - 19968: jis0208<<14 | 0x46<<7 | 0x1B, - 33214 - 19968: jis0208<<14 | 0x46<<7 | 0x19, - 33215 - 19968: jis0208<<14 | 0x26<<7 | 0x1E, - 33216 - 19968: jis0208<<14 | 0x46<<7 | 0x1C, - 33218 - 19968: jis0208<<14 | 0x46<<7 | 0x1D, - 33219 - 19968: jis0212<<14 | 0x35<<7 | 0x35, - 33221 - 19968: jis0212<<14 | 0x35<<7 | 0x36, - 33222 - 19968: jis0208<<14 | 0x11<<7 | 0x11, - 33224 - 19968: jis0208<<14 | 0x46<<7 | 0x24, - 33225 - 19968: jis0208<<14 | 0x46<<7 | 0x1F, - 33226 - 19968: jis0212<<14 | 0x35<<7 | 0x37, - 33227 - 19968: jis0212<<14 | 0x35<<7 | 0x34, - 33229 - 19968: jis0208<<14 | 0x46<<7 | 0x20, - 33230 - 19968: jis0212<<14 | 0x35<<7 | 0x38, - 33231 - 19968: jis0212<<14 | 0x35<<7 | 0x39, - 33233 - 19968: jis0208<<14 | 0x46<<7 | 0x21, - 33235 - 19968: jis0208<<14 | 0x21<<7 | 0x00, - 33237 - 19968: jis0212<<14 | 0x35<<7 | 0x3A, - 33239 - 19968: jis0212<<14 | 0x35<<7 | 0x3B, - 33240 - 19968: jis0208<<14 | 0x46<<7 | 0x23, - 33241 - 19968: jis0208<<14 | 0x46<<7 | 0x22, - 33242 - 19968: jis0208<<14 | 0x46<<7 | 0x25, - 33243 - 19968: jis0212<<14 | 0x35<<7 | 0x3C, - 33245 - 19968: jis0212<<14 | 0x35<<7 | 0x3D, - 33246 - 19968: jis0212<<14 | 0x35<<7 | 0x3E, - 33247 - 19968: jis0208<<14 | 0x46<<7 | 0x26, - 33248 - 19968: jis0208<<14 | 0x46<<7 | 0x27, - 33249 - 19968: jis0212<<14 | 0x35<<7 | 0x3F, - 33251 - 19968: jis0208<<14 | 0x1E<<7 | 0x22, - 33252 - 19968: jis0212<<14 | 0x35<<7 | 0x40, - 33253 - 19968: jis0208<<14 | 0x11<<7 | 0x48, - 33255 - 19968: jis0208<<14 | 0x46<<7 | 0x28, - 33256 - 19968: jis0208<<14 | 0x2D<<7 | 0x36, - 33258 - 19968: jis0208<<14 | 0x1B<<7 | 0x0A, - 33259 - 19968: jis0212<<14 | 0x35<<7 | 0x41, - 33260 - 19968: jis0212<<14 | 0x35<<7 | 0x42, - 33261 - 19968: jis0208<<14 | 0x1C<<7 | 0x0C, - 33264 - 19968: jis0212<<14 | 0x35<<7 | 0x43, - 33265 - 19968: jis0212<<14 | 0x35<<7 | 0x44, - 33266 - 19968: jis0212<<14 | 0x35<<7 | 0x45, - 33267 - 19968: jis0208<<14 | 0x1A<<7 | 0x49, - 33268 - 19968: jis0208<<14 | 0x22<<7 | 0x36, - 33269 - 19968: jis0212<<14 | 0x35<<7 | 0x46, - 33270 - 19968: jis0212<<14 | 0x35<<7 | 0x47, - 33272 - 19968: jis0212<<14 | 0x35<<7 | 0x48, - 33273 - 19968: jis0212<<14 | 0x35<<7 | 0x49, - 33274 - 19968: jis0208<<14 | 0x46<<7 | 0x29, - 33275 - 19968: jis0208<<14 | 0x46<<7 | 0x2A, - 33276 - 19968: jis0208<<14 | 0x10<<7 | 0x10, - 33277 - 19968: jis0212<<14 | 0x35<<7 | 0x4A, - 33278 - 19968: jis0208<<14 | 0x46<<7 | 0x2B, - 33279 - 19968: jis0212<<14 | 0x35<<7 | 0x4B, - 33280 - 19968: jis0212<<14 | 0x35<<7 | 0x4C, - 33281 - 19968: jis0208<<14 | 0x46<<7 | 0x2C, - 33282 - 19968: jis0208<<14 | 0x46<<7 | 0x2D, - 33283 - 19968: jis0212<<14 | 0x35<<7 | 0x4D, - 33285 - 19968: jis0208<<14 | 0x46<<7 | 0x2E, - 33287 - 19968: jis0208<<14 | 0x46<<7 | 0x2F, - 33288 - 19968: jis0208<<14 | 0x15<<7 | 0x1C, - 33289 - 19968: jis0208<<14 | 0x39<<7 | 0x09, - 33290 - 19968: jis0208<<14 | 0x46<<7 | 0x30, - 33292 - 19968: jis0208<<14 | 0x1F<<7 | 0x44, - 33293 - 19968: jis0208<<14 | 0x46<<7 | 0x31, - 33294 - 19968: jis0208<<14 | 0x1B<<7 | 0x2A, - 33295 - 19968: jis0212<<14 | 0x35<<7 | 0x4E, - 33296 - 19968: jis0208<<14 | 0x46<<7 | 0x32, - 33298 - 19968: jis0208<<14 | 0x2F<<7 | 0x0F, - 33299 - 19968: jis0212<<14 | 0x35<<7 | 0x4F, - 33300 - 19968: jis0212<<14 | 0x35<<7 | 0x50, - 33302 - 19968: jis0208<<14 | 0x46<<7 | 0x33, - 33303 - 19968: jis0208<<14 | 0x29<<7 | 0x3D, - 33304 - 19968: jis0208<<14 | 0x13<<7 | 0x3B, - 33305 - 19968: jis0212<<14 | 0x35<<7 | 0x51, - 33306 - 19968: jis0212<<14 | 0x35<<7 | 0x52, - 33307 - 19968: jis0208<<14 | 0x20<<7 | 0x03, - 33308 - 19968: jis0208<<14 | 0x1C<<7 | 0x37, - 33309 - 19968: jis0212<<14 | 0x35<<7 | 0x53, - 33310 - 19968: jis0208<<14 | 0x28<<7 | 0x50, - 33311 - 19968: jis0208<<14 | 0x1C<<7 | 0x0D, - 33313 - 19968: jis0212<<14 | 0x35<<7 | 0x54, - 33314 - 19968: jis0212<<14 | 0x35<<7 | 0x55, - 33320 - 19968: jis0212<<14 | 0x35<<7 | 0x56, - 33321 - 19968: jis0208<<14 | 0x46<<7 | 0x34, - 33322 - 19968: jis0208<<14 | 0x18<<7 | 0x31, - 33323 - 19968: jis0208<<14 | 0x46<<7 | 0x35, - 33324 - 19968: jis0208<<14 | 0x27<<7 | 0x2B, - 33326 - 19968: jis0208<<14 | 0x46<<7 | 0x43, - 33330 - 19968: jis0212<<14 | 0x35<<7 | 0x57, - 33331 - 19968: jis0208<<14 | 0x46<<7 | 0x37, - 33332 - 19968: jis0212<<14 | 0x35<<7 | 0x58, - 33333 - 19968: jis0208<<14 | 0x21<<7 | 0x28, - 33334 - 19968: jis0208<<14 | 0x26<<7 | 0x54, - 33335 - 19968: jis0208<<14 | 0x17<<7 | 0x1E, - 33336 - 19968: jis0208<<14 | 0x46<<7 | 0x36, - 33337 - 19968: jis0208<<14 | 0x20<<7 | 0x04, - 33338 - 19968: jis0212<<14 | 0x35<<7 | 0x59, - 33344 - 19968: jis0208<<14 | 0x46<<7 | 0x38, - 33347 - 19968: jis0212<<14 | 0x35<<7 | 0x5A, - 33348 - 19968: jis0212<<14 | 0x35<<7 | 0x5B, - 33349 - 19968: jis0212<<14 | 0x35<<7 | 0x5C, - 33350 - 19968: jis0212<<14 | 0x35<<7 | 0x5D, - 33351 - 19968: jis0208<<14 | 0x23<<7 | 0x59, - 33355 - 19968: jis0212<<14 | 0x36<<7 | 0x00, - 33358 - 19968: jis0212<<14 | 0x36<<7 | 0x01, - 33359 - 19968: jis0212<<14 | 0x36<<7 | 0x02, - 33361 - 19968: jis0212<<14 | 0x36<<7 | 0x03, - 33366 - 19968: jis0212<<14 | 0x36<<7 | 0x04, - 33368 - 19968: jis0208<<14 | 0x46<<7 | 0x3A, - 33369 - 19968: jis0208<<14 | 0x46<<7 | 0x39, - 33370 - 19968: jis0208<<14 | 0x46<<7 | 0x3C, - 33372 - 19968: jis0212<<14 | 0x36<<7 | 0x05, - 33373 - 19968: jis0208<<14 | 0x46<<7 | 0x3B, - 33375 - 19968: jis0208<<14 | 0x46<<7 | 0x3D, - 33376 - 19968: jis0212<<14 | 0x36<<7 | 0x06, - 33378 - 19968: jis0208<<14 | 0x46<<7 | 0x3F, - 33379 - 19968: jis0212<<14 | 0x36<<7 | 0x07, - 33380 - 19968: jis0208<<14 | 0x46<<7 | 0x3E, - 33382 - 19968: jis0208<<14 | 0x13<<7 | 0x2E, - 33383 - 19968: jis0212<<14 | 0x36<<7 | 0x08, - 33384 - 19968: jis0208<<14 | 0x46<<7 | 0x40, - 33386 - 19968: jis0208<<14 | 0x46<<7 | 0x41, - 33387 - 19968: jis0208<<14 | 0x46<<7 | 0x42, - 33389 - 19968: jis0212<<14 | 0x36<<7 | 0x09, - 33390 - 19968: jis0208<<14 | 0x19<<7 | 0x10, - 33391 - 19968: jis0208<<14 | 0x2D<<7 | 0x28, - 33393 - 19968: jis0208<<14 | 0x46<<7 | 0x44, - 33394 - 19968: jis0208<<14 | 0x1E<<7 | 0x06, - 33396 - 19968: jis0212<<14 | 0x36<<7 | 0x0A, - 33398 - 19968: jis0208<<14 | 0x10<<7 | 0x4F, - 33399 - 19968: jis0208<<14 | 0x46<<7 | 0x45, - 33400 - 19968: jis0208<<14 | 0x46<<7 | 0x46, - 33403 - 19968: jis0212<<14 | 0x36<<7 | 0x0B, - 33405 - 19968: jis0212<<14 | 0x36<<7 | 0x0C, - 33406 - 19968: jis0208<<14 | 0x46<<7 | 0x47, - 33407 - 19968: jis0212<<14 | 0x36<<7 | 0x0D, - 33408 - 19968: jis0212<<14 | 0x36<<7 | 0x0E, - 33409 - 19968: jis0212<<14 | 0x36<<7 | 0x0F, - 33411 - 19968: jis0212<<14 | 0x36<<7 | 0x10, - 33412 - 19968: jis0212<<14 | 0x36<<7 | 0x11, - 33415 - 19968: jis0212<<14 | 0x36<<7 | 0x12, - 33417 - 19968: jis0212<<14 | 0x36<<7 | 0x13, - 33418 - 19968: jis0212<<14 | 0x36<<7 | 0x14, - 33419 - 19968: jis0208<<14 | 0x0F<<7 | 0x51, - 33421 - 19968: jis0208<<14 | 0x46<<7 | 0x48, - 33422 - 19968: jis0212<<14 | 0x36<<7 | 0x15, - 33425 - 19968: jis0212<<14 | 0x36<<7 | 0x16, - 33426 - 19968: jis0208<<14 | 0x46<<7 | 0x49, - 33428 - 19968: jis0212<<14 | 0x36<<7 | 0x17, - 33430 - 19968: jis0212<<14 | 0x36<<7 | 0x18, - 33432 - 19968: jis0212<<14 | 0x36<<7 | 0x19, - 33433 - 19968: jis0208<<14 | 0x28<<7 | 0x46, - 33434 - 19968: jis0212<<14 | 0x36<<7 | 0x1A, - 33435 - 19968: jis0212<<14 | 0x36<<7 | 0x1B, - 33437 - 19968: jis0208<<14 | 0x1B<<7 | 0x26, - 33439 - 19968: jis0208<<14 | 0x46<<7 | 0x4B, - 33440 - 19968: jis0212<<14 | 0x36<<7 | 0x1C, - 33441 - 19968: jis0212<<14 | 0x36<<7 | 0x1D, - 33443 - 19968: jis0212<<14 | 0x36<<7 | 0x1E, - 33444 - 19968: jis0212<<14 | 0x36<<7 | 0x1F, - 33445 - 19968: jis0208<<14 | 0x12<<7 | 0x08, - 33446 - 19968: jis0208<<14 | 0x0F<<7 | 0x11, - 33447 - 19968: jis0212<<14 | 0x36<<7 | 0x20, - 33448 - 19968: jis0212<<14 | 0x36<<7 | 0x21, - 33449 - 19968: jis0212<<14 | 0x36<<7 | 0x22, - 33450 - 19968: jis0212<<14 | 0x36<<7 | 0x23, - 33451 - 19968: jis0208<<14 | 0x46<<7 | 0x4A, - 33452 - 19968: jis0208<<14 | 0x46<<7 | 0x4D, - 33453 - 19968: jis0208<<14 | 0x26<<7 | 0x2D, - 33454 - 19968: jis0212<<14 | 0x36<<7 | 0x24, - 33455 - 19968: jis0208<<14 | 0x1E<<7 | 0x23, - 33456 - 19968: jis0212<<14 | 0x36<<7 | 0x25, - 33457 - 19968: jis0208<<14 | 0x11<<7 | 0x35, - 33458 - 19968: jis0212<<14 | 0x36<<7 | 0x26, - 33459 - 19968: jis0208<<14 | 0x2A<<7 | 0x06, - 33460 - 19968: jis0212<<14 | 0x36<<7 | 0x27, - 33463 - 19968: jis0212<<14 | 0x36<<7 | 0x28, - 33464 - 19968: jis0208<<14 | 0x16<<7 | 0x3C, - 33465 - 19968: jis0208<<14 | 0x15<<7 | 0x3B, - 33466 - 19968: jis0212<<14 | 0x36<<7 | 0x29, - 33467 - 19968: jis0208<<14 | 0x46<<7 | 0x4C, - 33468 - 19968: jis0212<<14 | 0x36<<7 | 0x2A, - 33469 - 19968: jis0208<<14 | 0x11<<7 | 0x49, - 33470 - 19968: jis0212<<14 | 0x36<<7 | 0x2B, - 33471 - 19968: jis0212<<14 | 0x36<<7 | 0x2C, - 33477 - 19968: jis0208<<14 | 0x13<<7 | 0x02, - 33478 - 19968: jis0212<<14 | 0x36<<7 | 0x2D, - 33488 - 19968: jis0212<<14 | 0x36<<7 | 0x2E, - 33489 - 19968: jis0208<<14 | 0x10<<7 | 0x50, - 33490 - 19968: jis0208<<14 | 0x46<<7 | 0x51, - 33491 - 19968: jis0208<<14 | 0x2D<<7 | 0x49, - 33492 - 19968: jis0208<<14 | 0x21<<7 | 0x3C, - 33493 - 19968: jis0212<<14 | 0x36<<7 | 0x2F, - 33495 - 19968: jis0208<<14 | 0x28<<7 | 0x23, - 33497 - 19968: jis0208<<14 | 0x46<<7 | 0x5D, - 33498 - 19968: jis0212<<14 | 0x36<<7 | 0x30, - 33499 - 19968: jis0208<<14 | 0x11<<7 | 0x36, - 33500 - 19968: jis0208<<14 | 0x46<<7 | 0x5B, - 33502 - 19968: jis0208<<14 | 0x46<<7 | 0x59, - 33503 - 19968: jis0208<<14 | 0x46<<7 | 0x50, - 33504 - 19968: jis0212<<14 | 0x36<<7 | 0x31, - 33505 - 19968: jis0208<<14 | 0x46<<7 | 0x4E, - 33506 - 19968: jis0212<<14 | 0x36<<7 | 0x32, - 33507 - 19968: jis0208<<14 | 0x46<<7 | 0x4F, - 33508 - 19968: jis0212<<14 | 0x36<<7 | 0x33, - 33509 - 19968: jis0208<<14 | 0x1B<<7 | 0x42, - 33510 - 19968: jis0208<<14 | 0x15<<7 | 0x4B, - 33511 - 19968: jis0208<<14 | 0x22<<7 | 0x56, - 33512 - 19968: jis0212<<14 | 0x36<<7 | 0x34, - 33514 - 19968: jis0212<<14 | 0x36<<7 | 0x35, - 33515 - 19968: jis0208<<14 | 0x25<<7 | 0x30, - 33517 - 19968: jis0212<<14 | 0x36<<7 | 0x36, - 33519 - 19968: jis0212<<14 | 0x36<<7 | 0x37, - 33521 - 19968: jis0208<<14 | 0x10<<7 | 0x30, - 33523 - 19968: jis0208<<14 | 0x46<<7 | 0x53, - 33524 - 19968: jis0208<<14 | 0x46<<7 | 0x52, - 33526 - 19968: jis0212<<14 | 0x36<<7 | 0x38, - 33527 - 19968: jis0212<<14 | 0x36<<7 | 0x39, - 33529 - 19968: jis0208<<14 | 0x46<<7 | 0x58, - 33530 - 19968: jis0208<<14 | 0x46<<7 | 0x54, - 33531 - 19968: jis0208<<14 | 0x46<<7 | 0x57, - 33533 - 19968: jis0212<<14 | 0x36<<7 | 0x3A, - 33534 - 19968: jis0212<<14 | 0x36<<7 | 0x3B, - 33536 - 19968: jis0212<<14 | 0x36<<7 | 0x3C, - 33537 - 19968: jis0208<<14 | 0x5A<<7 | 0x36, - 33538 - 19968: jis0208<<14 | 0x2B<<7 | 0x2F, - 33539 - 19968: jis0208<<14 | 0x46<<7 | 0x56, - 33540 - 19968: jis0208<<14 | 0x11<<7 | 0x37, - 33541 - 19968: jis0208<<14 | 0x12<<7 | 0x5C, - 33542 - 19968: jis0208<<14 | 0x46<<7 | 0x5A, - 33543 - 19968: jis0212<<14 | 0x36<<7 | 0x3E, - 33544 - 19968: jis0212<<14 | 0x36<<7 | 0x3F, - 33545 - 19968: jis0208<<14 | 0x46<<7 | 0x5C, - 33546 - 19968: jis0212<<14 | 0x36<<7 | 0x40, - 33547 - 19968: jis0212<<14 | 0x36<<7 | 0x41, - 33550 - 19968: jis0208<<14 | 0x16<<7 | 0x33, - 33558 - 19968: jis0208<<14 | 0x47<<7 | 0x02, - 33559 - 19968: jis0208<<14 | 0x47<<7 | 0x0B, - 33560 - 19968: jis0208<<14 | 0x47<<7 | 0x0C, - 33563 - 19968: jis0212<<14 | 0x36<<7 | 0x43, - 33564 - 19968: jis0208<<14 | 0x0F<<7 | 0x0A, - 33565 - 19968: jis0212<<14 | 0x36<<7 | 0x44, - 33566 - 19968: jis0212<<14 | 0x36<<7 | 0x45, - 33567 - 19968: jis0212<<14 | 0x36<<7 | 0x46, - 33569 - 19968: jis0212<<14 | 0x36<<7 | 0x47, - 33570 - 19968: jis0212<<14 | 0x36<<7 | 0x48, - 33571 - 19968: jis0208<<14 | 0x47<<7 | 0x13, - 33576 - 19968: jis0208<<14 | 0x0F<<7 | 0x50, - 33579 - 19968: jis0208<<14 | 0x47<<7 | 0x0A, - 33580 - 19968: jis0212<<14 | 0x36<<7 | 0x49, - 33581 - 19968: jis0212<<14 | 0x36<<7 | 0x4A, - 33582 - 19968: jis0212<<14 | 0x36<<7 | 0x4B, - 33583 - 19968: jis0208<<14 | 0x47<<7 | 0x09, - 33584 - 19968: jis0212<<14 | 0x36<<7 | 0x4C, - 33585 - 19968: jis0208<<14 | 0x47<<7 | 0x04, - 33586 - 19968: jis0208<<14 | 0x47<<7 | 0x03, - 33587 - 19968: jis0212<<14 | 0x36<<7 | 0x4D, - 33588 - 19968: jis0208<<14 | 0x47<<7 | 0x01, - 33589 - 19968: jis0208<<14 | 0x47<<7 | 0x00, - 33590 - 19968: jis0208<<14 | 0x22<<7 | 0x42, - 33591 - 19968: jis0212<<14 | 0x36<<7 | 0x4E, - 33592 - 19968: jis0208<<14 | 0x21<<7 | 0x5A, - 33593 - 19968: jis0208<<14 | 0x47<<7 | 0x06, - 33594 - 19968: jis0212<<14 | 0x36<<7 | 0x4F, - 33596 - 19968: jis0212<<14 | 0x36<<7 | 0x50, - 33597 - 19968: jis0212<<14 | 0x36<<7 | 0x51, - 33600 - 19968: jis0208<<14 | 0x47<<7 | 0x05, - 33602 - 19968: jis0212<<14 | 0x36<<7 | 0x52, - 33603 - 19968: jis0212<<14 | 0x36<<7 | 0x53, - 33604 - 19968: jis0212<<14 | 0x36<<7 | 0x54, - 33605 - 19968: jis0208<<14 | 0x47<<7 | 0x08, - 33607 - 19968: jis0212<<14 | 0x36<<7 | 0x55, - 33609 - 19968: jis0208<<14 | 0x20<<7 | 0x4F, - 33610 - 19968: jis0208<<14 | 0x16<<7 | 0x34, - 33613 - 19968: jis0212<<14 | 0x36<<7 | 0x56, - 33614 - 19968: jis0212<<14 | 0x36<<7 | 0x57, - 33615 - 19968: jis0208<<14 | 0x10<<7 | 0x20, - 33616 - 19968: jis0208<<14 | 0x47<<7 | 0x07, - 33617 - 19968: jis0212<<14 | 0x36<<7 | 0x58, - 33618 - 19968: jis0208<<14 | 0x18<<7 | 0x32, - 33619 - 19968: jis0212<<14 | 0x37<<7 | 0x1D, - 33620 - 19968: jis0212<<14 | 0x36<<7 | 0x42, - 33621 - 19968: jis0212<<14 | 0x36<<7 | 0x59, - 33622 - 19968: jis0212<<14 | 0x36<<7 | 0x5A, - 33623 - 19968: jis0212<<14 | 0x36<<7 | 0x5B, - 33624 - 19968: jis0208<<14 | 0x20<<7 | 0x50, - 33634 - 19968: jis0208<<14 | 0x5A<<7 | 0x37, - 33648 - 19968: jis0212<<14 | 0x36<<7 | 0x5C, - 33651 - 19968: jis0208<<14 | 0x47<<7 | 0x19, - 33653 - 19968: jis0208<<14 | 0x47<<7 | 0x1A, - 33655 - 19968: jis0208<<14 | 0x11<<7 | 0x38, - 33656 - 19968: jis0212<<14 | 0x36<<7 | 0x5D, - 33659 - 19968: jis0208<<14 | 0x11<<7 | 0x0D, - 33660 - 19968: jis0208<<14 | 0x47<<7 | 0x17, - 33661 - 19968: jis0212<<14 | 0x37<<7 | 0x00, - 33663 - 19968: jis0208<<14 | 0x5A<<7 | 0x38, - 33664 - 19968: jis0212<<14 | 0x37<<7 | 0x02, - 33666 - 19968: jis0212<<14 | 0x37<<7 | 0x03, - 33668 - 19968: jis0212<<14 | 0x37<<7 | 0x04, - 33669 - 19968: jis0208<<14 | 0x47<<7 | 0x0D, - 33670 - 19968: jis0212<<14 | 0x37<<7 | 0x05, - 33671 - 19968: jis0208<<14 | 0x47<<7 | 0x15, - 33673 - 19968: jis0208<<14 | 0x47<<7 | 0x1C, - 33674 - 19968: jis0208<<14 | 0x47<<7 | 0x16, - 33677 - 19968: jis0212<<14 | 0x37<<7 | 0x06, - 33678 - 19968: jis0208<<14 | 0x47<<7 | 0x14, - 33682 - 19968: jis0212<<14 | 0x37<<7 | 0x07, - 33683 - 19968: jis0208<<14 | 0x46<<7 | 0x55, - 33684 - 19968: jis0212<<14 | 0x37<<7 | 0x08, - 33685 - 19968: jis0212<<14 | 0x37<<7 | 0x09, - 33686 - 19968: jis0208<<14 | 0x47<<7 | 0x12, - 33688 - 19968: jis0212<<14 | 0x37<<7 | 0x0A, - 33689 - 19968: jis0212<<14 | 0x37<<7 | 0x0B, - 33690 - 19968: jis0208<<14 | 0x47<<7 | 0x0E, - 33691 - 19968: jis0212<<14 | 0x37<<7 | 0x0C, - 33692 - 19968: jis0212<<14 | 0x37<<7 | 0x0D, - 33693 - 19968: jis0212<<14 | 0x37<<7 | 0x0E, - 33694 - 19968: jis0208<<14 | 0x13<<7 | 0x2F, - 33695 - 19968: jis0208<<14 | 0x47<<7 | 0x10, - 33696 - 19968: jis0208<<14 | 0x47<<7 | 0x1B, - 33698 - 19968: jis0208<<14 | 0x47<<7 | 0x11, - 33702 - 19968: jis0212<<14 | 0x37<<7 | 0x0F, - 33703 - 19968: jis0212<<14 | 0x37<<7 | 0x10, - 33704 - 19968: jis0208<<14 | 0x47<<7 | 0x1D, - 33705 - 19968: jis0212<<14 | 0x37<<7 | 0x11, - 33706 - 19968: jis0208<<14 | 0x47<<7 | 0x0F, - 33707 - 19968: jis0208<<14 | 0x26<<7 | 0x5B, - 33708 - 19968: jis0212<<14 | 0x37<<7 | 0x12, - 33709 - 19968: jis0212<<14 | 0x37<<7 | 0x2B, - 33713 - 19968: jis0208<<14 | 0x2C<<7 | 0x48, - 33717 - 19968: jis0208<<14 | 0x47<<7 | 0x18, - 33725 - 19968: jis0208<<14 | 0x47<<7 | 0x2E, - 33726 - 19968: jis0212<<14 | 0x37<<7 | 0x13, - 33727 - 19968: jis0212<<14 | 0x37<<7 | 0x14, - 33728 - 19968: jis0212<<14 | 0x37<<7 | 0x15, - 33729 - 19968: jis0208<<14 | 0x47<<7 | 0x26, - 33733 - 19968: jis0208<<14 | 0x1E<<7 | 0x5A, - 33735 - 19968: jis0208<<14 | 0x5A<<7 | 0x39, - 33737 - 19968: jis0212<<14 | 0x37<<7 | 0x17, - 33738 - 19968: jis0208<<14 | 0x14<<7 | 0x25, - 33740 - 19968: jis0208<<14 | 0x15<<7 | 0x3C, - 33742 - 19968: jis0208<<14 | 0x47<<7 | 0x21, - 33743 - 19968: jis0212<<14 | 0x37<<7 | 0x18, - 33744 - 19968: jis0212<<14 | 0x37<<7 | 0x19, - 33745 - 19968: jis0212<<14 | 0x37<<7 | 0x1A, - 33747 - 19968: jis0208<<14 | 0x11<<7 | 0x3A, - 33748 - 19968: jis0212<<14 | 0x37<<7 | 0x1B, - 33750 - 19968: jis0208<<14 | 0x1D<<7 | 0x33, - 33752 - 19968: jis0208<<14 | 0x47<<7 | 0x24, - 33756 - 19968: jis0208<<14 | 0x19<<7 | 0x39, - 33757 - 19968: jis0212<<14 | 0x37<<7 | 0x1C, - 33759 - 19968: jis0208<<14 | 0x24<<7 | 0x30, - 33760 - 19968: jis0208<<14 | 0x47<<7 | 0x29, - 33768 - 19968: jis0212<<14 | 0x37<<7 | 0x1E, - 33769 - 19968: jis0208<<14 | 0x29<<7 | 0x4D, - 33770 - 19968: jis0212<<14 | 0x37<<7 | 0x1F, - 33771 - 19968: jis0208<<14 | 0x47<<7 | 0x20, - 33775 - 19968: jis0208<<14 | 0x11<<7 | 0x39, - 33776 - 19968: jis0208<<14 | 0x17<<7 | 0x35, - 33777 - 19968: jis0208<<14 | 0x28<<7 | 0x08, - 33778 - 19968: jis0208<<14 | 0x47<<7 | 0x2A, - 33780 - 19968: jis0208<<14 | 0x47<<7 | 0x1E, - 33782 - 19968: jis0208<<14 | 0x5A<<7 | 0x3A, - 33783 - 19968: jis0208<<14 | 0x47<<7 | 0x27, - 33784 - 19968: jis0212<<14 | 0x37<<7 | 0x21, - 33785 - 19968: jis0212<<14 | 0x37<<7 | 0x22, - 33787 - 19968: jis0208<<14 | 0x47<<7 | 0x31, - 33788 - 19968: jis0212<<14 | 0x37<<7 | 0x23, - 33789 - 19968: jis0208<<14 | 0x47<<7 | 0x22, - 33793 - 19968: jis0212<<14 | 0x37<<7 | 0x24, - 33795 - 19968: jis0208<<14 | 0x47<<7 | 0x23, - 33796 - 19968: jis0208<<14 | 0x25<<7 | 0x19, - 33798 - 19968: jis0212<<14 | 0x37<<7 | 0x25, - 33799 - 19968: jis0208<<14 | 0x47<<7 | 0x28, - 33802 - 19968: jis0212<<14 | 0x37<<7 | 0x26, - 33803 - 19968: jis0208<<14 | 0x47<<7 | 0x25, - 33804 - 19968: jis0208<<14 | 0x2A<<7 | 0x07, - 33805 - 19968: jis0208<<14 | 0x47<<7 | 0x2B, - 33806 - 19968: jis0208<<14 | 0x0F<<7 | 0x3F, - 33807 - 19968: jis0212<<14 | 0x37<<7 | 0x27, - 33809 - 19968: jis0212<<14 | 0x37<<7 | 0x28, - 33811 - 19968: jis0208<<14 | 0x47<<7 | 0x1F, - 33813 - 19968: jis0212<<14 | 0x37<<7 | 0x29, - 33817 - 19968: jis0212<<14 | 0x37<<7 | 0x2A, - 33824 - 19968: jis0208<<14 | 0x47<<7 | 0x2D, - 33826 - 19968: jis0208<<14 | 0x47<<7 | 0x2C, - 33833 - 19968: jis0208<<14 | 0x26<<7 | 0x4A, - 33834 - 19968: jis0208<<14 | 0x47<<7 | 0x33, - 33836 - 19968: jis0208<<14 | 0x47<<7 | 0x3E, - 33839 - 19968: jis0212<<14 | 0x37<<7 | 0x2C, - 33841 - 19968: jis0208<<14 | 0x12<<7 | 0x5D, - 33845 - 19968: jis0208<<14 | 0x47<<7 | 0x41, - 33848 - 19968: jis0208<<14 | 0x47<<7 | 0x2F, - 33849 - 19968: jis0212<<14 | 0x37<<7 | 0x2D, - 33852 - 19968: jis0208<<14 | 0x47<<7 | 0x34, - 33853 - 19968: jis0208<<14 | 0x2C<<7 | 0x4D, - 33861 - 19968: jis0212<<14 | 0x37<<7 | 0x2E, - 33862 - 19968: jis0208<<14 | 0x47<<7 | 0x3D, - 33863 - 19968: jis0212<<14 | 0x37<<7 | 0x2F, - 33864 - 19968: jis0208<<14 | 0x5A<<7 | 0x3B, - 33865 - 19968: jis0208<<14 | 0x2C<<7 | 0x34, - 33866 - 19968: jis0212<<14 | 0x37<<7 | 0x31, - 33869 - 19968: jis0212<<14 | 0x37<<7 | 0x32, - 33870 - 19968: jis0208<<14 | 0x2D<<7 | 0x09, - 33871 - 19968: jis0212<<14 | 0x37<<7 | 0x33, - 33873 - 19968: jis0212<<14 | 0x37<<7 | 0x34, - 33874 - 19968: jis0212<<14 | 0x37<<7 | 0x35, - 33878 - 19968: jis0212<<14 | 0x37<<7 | 0x36, - 33879 - 19968: jis0208<<14 | 0x22<<7 | 0x57, - 33880 - 19968: jis0212<<14 | 0x37<<7 | 0x37, - 33881 - 19968: jis0212<<14 | 0x37<<7 | 0x38, - 33882 - 19968: jis0212<<14 | 0x37<<7 | 0x39, - 33883 - 19968: jis0208<<14 | 0x12<<7 | 0x4A, - 33884 - 19968: jis0212<<14 | 0x37<<7 | 0x3A, - 33888 - 19968: jis0212<<14 | 0x37<<7 | 0x3B, - 33889 - 19968: jis0208<<14 | 0x28<<7 | 0x51, - 33890 - 19968: jis0208<<14 | 0x47<<7 | 0x43, - 33891 - 19968: jis0208<<14 | 0x25<<7 | 0x00, - 33892 - 19968: jis0212<<14 | 0x37<<7 | 0x3C, - 33893 - 19968: jis0212<<14 | 0x37<<7 | 0x3D, - 33894 - 19968: jis0208<<14 | 0x0F<<7 | 0x10, - 33895 - 19968: jis0212<<14 | 0x37<<7 | 0x3E, - 33897 - 19968: jis0208<<14 | 0x47<<7 | 0x3C, - 33898 - 19968: jis0212<<14 | 0x37<<7 | 0x3F, - 33899 - 19968: jis0208<<14 | 0x47<<7 | 0x38, - 33900 - 19968: jis0208<<14 | 0x20<<7 | 0x51, - 33901 - 19968: jis0208<<14 | 0x47<<7 | 0x32, - 33902 - 19968: jis0208<<14 | 0x47<<7 | 0x3A, - 33903 - 19968: jis0208<<14 | 0x47<<7 | 0x3F, - 33904 - 19968: jis0212<<14 | 0x37<<7 | 0x40, - 33905 - 19968: jis0208<<14 | 0x26<<7 | 0x0B, - 33907 - 19968: jis0212<<14 | 0x37<<7 | 0x41, - 33908 - 19968: jis0212<<14 | 0x37<<7 | 0x42, - 33909 - 19968: jis0208<<14 | 0x0F<<7 | 0x09, - 33910 - 19968: jis0212<<14 | 0x37<<7 | 0x43, - 33911 - 19968: jis0208<<14 | 0x47<<7 | 0x37, - 33912 - 19968: jis0212<<14 | 0x37<<7 | 0x44, - 33913 - 19968: jis0208<<14 | 0x47<<7 | 0x40, - 33914 - 19968: jis0208<<14 | 0x28<<7 | 0x57, - 33916 - 19968: jis0212<<14 | 0x37<<7 | 0x45, - 33917 - 19968: jis0212<<14 | 0x37<<7 | 0x46, - 33921 - 19968: jis0212<<14 | 0x37<<7 | 0x47, - 33922 - 19968: jis0208<<14 | 0x47<<7 | 0x3B, - 33924 - 19968: jis0208<<14 | 0x47<<7 | 0x36, - 33925 - 19968: jis0212<<14 | 0x37<<7 | 0x48, - 33931 - 19968: jis0208<<14 | 0x1D<<7 | 0x34, - 33936 - 19968: jis0208<<14 | 0x1C<<7 | 0x0E, - 33938 - 19968: jis0212<<14 | 0x37<<7 | 0x49, - 33939 - 19968: jis0212<<14 | 0x37<<7 | 0x4A, - 33940 - 19968: jis0208<<14 | 0x1B<<7 | 0x0B, - 33941 - 19968: jis0212<<14 | 0x37<<7 | 0x4B, - 33945 - 19968: jis0208<<14 | 0x2B<<7 | 0x37, - 33948 - 19968: jis0208<<14 | 0x28<<7 | 0x26, - 33950 - 19968: jis0212<<14 | 0x37<<7 | 0x4C, - 33951 - 19968: jis0208<<14 | 0x47<<7 | 0x46, - 33953 - 19968: jis0208<<14 | 0x47<<7 | 0x4F, - 33958 - 19968: jis0212<<14 | 0x37<<7 | 0x4D, - 33960 - 19968: jis0212<<14 | 0x37<<7 | 0x4E, - 33961 - 19968: jis0212<<14 | 0x37<<7 | 0x4F, - 33962 - 19968: jis0212<<14 | 0x37<<7 | 0x50, - 33965 - 19968: jis0208<<14 | 0x47<<7 | 0x39, - 33967 - 19968: jis0212<<14 | 0x37<<7 | 0x51, - 33969 - 19968: jis0212<<14 | 0x37<<7 | 0x52, - 33970 - 19968: jis0208<<14 | 0x12<<7 | 0x56, - 33972 - 19968: jis0208<<14 | 0x5A<<7 | 0x3C, - 33976 - 19968: jis0208<<14 | 0x1D<<7 | 0x57, - 33977 - 19968: jis0208<<14 | 0x47<<7 | 0x44, - 33978 - 19968: jis0212<<14 | 0x37<<7 | 0x54, - 33979 - 19968: jis0208<<14 | 0x47<<7 | 0x49, - 33980 - 19968: jis0208<<14 | 0x20<<7 | 0x52, - 33981 - 19968: jis0212<<14 | 0x37<<7 | 0x55, - 33982 - 19968: jis0212<<14 | 0x37<<7 | 0x56, - 33983 - 19968: jis0208<<14 | 0x47<<7 | 0x45, - 33984 - 19968: jis0212<<14 | 0x37<<7 | 0x57, - 33985 - 19968: jis0208<<14 | 0x47<<7 | 0x4C, - 33986 - 19968: jis0212<<14 | 0x37<<7 | 0x58, - 33988 - 19968: jis0208<<14 | 0x22<<7 | 0x3E, - 33990 - 19968: jis0208<<14 | 0x47<<7 | 0x4D, - 33991 - 19968: jis0212<<14 | 0x37<<7 | 0x59, - 33992 - 19968: jis0212<<14 | 0x37<<7 | 0x5A, - 33993 - 19968: jis0208<<14 | 0x2C<<7 | 0x35, - 33994 - 19968: jis0208<<14 | 0x47<<7 | 0x42, - 33995 - 19968: jis0208<<14 | 0x12<<7 | 0x17, - 33996 - 19968: jis0212<<14 | 0x37<<7 | 0x5B, - 33997 - 19968: jis0208<<14 | 0x47<<7 | 0x48, - 33999 - 19968: jis0212<<14 | 0x37<<7 | 0x5C, - 34000 - 19968: jis0208<<14 | 0x47<<7 | 0x4B, - 34001 - 19968: jis0208<<14 | 0x2B<<7 | 0x0B, - 34003 - 19968: jis0212<<14 | 0x37<<7 | 0x5D, - 34006 - 19968: jis0208<<14 | 0x47<<7 | 0x4E, - 34009 - 19968: jis0208<<14 | 0x47<<7 | 0x47, - 34010 - 19968: jis0208<<14 | 0x47<<7 | 0x4A, - 34012 - 19968: jis0208<<14 | 0x58<<7 | 0x04, - 34023 - 19968: jis0212<<14 | 0x38<<7 | 0x01, - 34026 - 19968: jis0212<<14 | 0x38<<7 | 0x02, - 34028 - 19968: jis0208<<14 | 0x2A<<7 | 0x08, - 34030 - 19968: jis0208<<14 | 0x2E<<7 | 0x00, - 34031 - 19968: jis0212<<14 | 0x38<<7 | 0x03, - 34032 - 19968: jis0212<<14 | 0x38<<7 | 0x04, - 34033 - 19968: jis0212<<14 | 0x38<<7 | 0x05, - 34034 - 19968: jis0212<<14 | 0x38<<7 | 0x06, - 34036 - 19968: jis0208<<14 | 0x47<<7 | 0x52, - 34039 - 19968: jis0212<<14 | 0x38<<7 | 0x07, - 34042 - 19968: jis0212<<14 | 0x38<<7 | 0x09, - 34043 - 19968: jis0212<<14 | 0x38<<7 | 0x0A, - 34044 - 19968: jis0208<<14 | 0x47<<7 | 0x59, - 34045 - 19968: jis0212<<14 | 0x38<<7 | 0x0B, - 34047 - 19968: jis0208<<14 | 0x47<<7 | 0x51, - 34048 - 19968: jis0208<<14 | 0x1B<<7 | 0x22, - 34050 - 19968: jis0212<<14 | 0x38<<7 | 0x0C, - 34051 - 19968: jis0212<<14 | 0x38<<7 | 0x0D, - 34054 - 19968: jis0208<<14 | 0x47<<7 | 0x30, - 34055 - 19968: jis0212<<14 | 0x38<<7 | 0x0E, - 34060 - 19968: jis0212<<14 | 0x38<<7 | 0x0F, - 34062 - 19968: jis0212<<14 | 0x38<<7 | 0x10, - 34064 - 19968: jis0212<<14 | 0x38<<7 | 0x11, - 34065 - 19968: jis0208<<14 | 0x29<<7 | 0x2D, - 34067 - 19968: jis0208<<14 | 0x2B<<7 | 0x01, - 34068 - 19968: jis0208<<14 | 0x47<<7 | 0x58, - 34069 - 19968: jis0208<<14 | 0x47<<7 | 0x57, - 34071 - 19968: jis0208<<14 | 0x47<<7 | 0x53, - 34072 - 19968: jis0208<<14 | 0x47<<7 | 0x54, - 34074 - 19968: jis0208<<14 | 0x10<<7 | 0x15, - 34076 - 19968: jis0212<<14 | 0x38<<7 | 0x12, - 34078 - 19968: jis0212<<14 | 0x38<<7 | 0x13, - 34079 - 19968: jis0208<<14 | 0x47<<7 | 0x56, - 34081 - 19968: jis0208<<14 | 0x47<<7 | 0x50, - 34082 - 19968: jis0212<<14 | 0x38<<7 | 0x14, - 34083 - 19968: jis0212<<14 | 0x38<<7 | 0x15, - 34084 - 19968: jis0212<<14 | 0x38<<7 | 0x16, - 34085 - 19968: jis0212<<14 | 0x38<<7 | 0x17, - 34086 - 19968: jis0208<<14 | 0x23<<7 | 0x34, - 34087 - 19968: jis0212<<14 | 0x38<<7 | 0x18, - 34090 - 19968: jis0212<<14 | 0x38<<7 | 0x19, - 34091 - 19968: jis0212<<14 | 0x38<<7 | 0x1A, - 34092 - 19968: jis0208<<14 | 0x47<<7 | 0x55, - 34093 - 19968: jis0208<<14 | 0x0F<<7 | 0x5D, - 34095 - 19968: jis0212<<14 | 0x38<<7 | 0x1B, - 34098 - 19968: jis0212<<14 | 0x38<<7 | 0x08, - 34099 - 19968: jis0212<<14 | 0x38<<7 | 0x1C, - 34100 - 19968: jis0212<<14 | 0x38<<7 | 0x1D, - 34101 - 19968: jis0208<<14 | 0x21<<7 | 0x01, - 34102 - 19968: jis0212<<14 | 0x38<<7 | 0x1E, - 34109 - 19968: jis0208<<14 | 0x29<<7 | 0x22, - 34111 - 19968: jis0212<<14 | 0x38<<7 | 0x1F, - 34112 - 19968: jis0208<<14 | 0x47<<7 | 0x5A, - 34113 - 19968: jis0208<<14 | 0x48<<7 | 0x00, - 34115 - 19968: jis0208<<14 | 0x27<<7 | 0x38, - 34118 - 19968: jis0212<<14 | 0x38<<7 | 0x20, - 34120 - 19968: jis0208<<14 | 0x47<<7 | 0x5D, - 34121 - 19968: jis0208<<14 | 0x1D<<7 | 0x35, - 34122 - 19968: jis0208<<14 | 0x1B<<7 | 0x28, - 34123 - 19968: jis0208<<14 | 0x48<<7 | 0x02, - 34126 - 19968: jis0208<<14 | 0x15<<7 | 0x1D, - 34127 - 19968: jis0212<<14 | 0x38<<7 | 0x21, - 34128 - 19968: jis0212<<14 | 0x38<<7 | 0x22, - 34129 - 19968: jis0212<<14 | 0x38<<7 | 0x23, - 34130 - 19968: jis0212<<14 | 0x38<<7 | 0x24, - 34131 - 19968: jis0208<<14 | 0x5A<<7 | 0x3D, - 34133 - 19968: jis0208<<14 | 0x48<<7 | 0x03, - 34134 - 19968: jis0212<<14 | 0x38<<7 | 0x26, - 34135 - 19968: jis0208<<14 | 0x28<<7 | 0x58, - 34136 - 19968: jis0208<<14 | 0x47<<7 | 0x5C, - 34137 - 19968: jis0208<<14 | 0x5A<<7 | 0x3E, - 34138 - 19968: jis0208<<14 | 0x47<<7 | 0x35, - 34140 - 19968: jis0212<<14 | 0x38<<7 | 0x28, - 34141 - 19968: jis0212<<14 | 0x38<<7 | 0x29, - 34142 - 19968: jis0212<<14 | 0x38<<7 | 0x2A, - 34143 - 19968: jis0212<<14 | 0x38<<7 | 0x2B, - 34144 - 19968: jis0212<<14 | 0x38<<7 | 0x2C, - 34145 - 19968: jis0212<<14 | 0x38<<7 | 0x2D, - 34146 - 19968: jis0212<<14 | 0x38<<7 | 0x2E, - 34147 - 19968: jis0208<<14 | 0x47<<7 | 0x5B, - 34148 - 19968: jis0212<<14 | 0x38<<7 | 0x2F, - 34152 - 19968: jis0208<<14 | 0x2E<<7 | 0x2E, - 34153 - 19968: jis0208<<14 | 0x25<<7 | 0x01, - 34154 - 19968: jis0208<<14 | 0x28<<7 | 0x52, - 34155 - 19968: jis0208<<14 | 0x5A<<7 | 0x3F, - 34157 - 19968: jis0208<<14 | 0x48<<7 | 0x0A, - 34159 - 19968: jis0212<<14 | 0x38<<7 | 0x31, - 34167 - 19968: jis0208<<14 | 0x48<<7 | 0x10, - 34169 - 19968: jis0212<<14 | 0x38<<7 | 0x32, - 34170 - 19968: jis0212<<14 | 0x38<<7 | 0x33, - 34171 - 19968: jis0212<<14 | 0x38<<7 | 0x34, - 34173 - 19968: jis0212<<14 | 0x38<<7 | 0x35, - 34174 - 19968: jis0208<<14 | 0x48<<7 | 0x11, - 34175 - 19968: jis0212<<14 | 0x38<<7 | 0x36, - 34176 - 19968: jis0208<<14 | 0x48<<7 | 0x04, - 34177 - 19968: jis0212<<14 | 0x38<<7 | 0x37, - 34180 - 19968: jis0208<<14 | 0x26<<7 | 0x55, - 34181 - 19968: jis0212<<14 | 0x38<<7 | 0x38, - 34182 - 19968: jis0212<<14 | 0x38<<7 | 0x39, - 34183 - 19968: jis0208<<14 | 0x48<<7 | 0x0E, - 34184 - 19968: jis0208<<14 | 0x48<<7 | 0x06, - 34185 - 19968: jis0212<<14 | 0x38<<7 | 0x3A, - 34186 - 19968: jis0208<<14 | 0x48<<7 | 0x08, - 34187 - 19968: jis0212<<14 | 0x38<<7 | 0x3B, - 34188 - 19968: jis0212<<14 | 0x38<<7 | 0x3C, - 34191 - 19968: jis0212<<14 | 0x38<<7 | 0x3D, - 34192 - 19968: jis0208<<14 | 0x48<<7 | 0x12, - 34193 - 19968: jis0208<<14 | 0x48<<7 | 0x07, - 34195 - 19968: jis0212<<14 | 0x38<<7 | 0x3E, - 34196 - 19968: jis0208<<14 | 0x48<<7 | 0x0B, - 34199 - 19968: jis0208<<14 | 0x10<<7 | 0x51, - 34200 - 19968: jis0212<<14 | 0x38<<7 | 0x3F, - 34201 - 19968: jis0208<<14 | 0x25<<7 | 0x44, - 34203 - 19968: jis0208<<14 | 0x48<<7 | 0x0C, - 34204 - 19968: jis0208<<14 | 0x48<<7 | 0x0F, - 34205 - 19968: jis0212<<14 | 0x38<<7 | 0x40, - 34207 - 19968: jis0212<<14 | 0x38<<7 | 0x41, - 34208 - 19968: jis0212<<14 | 0x38<<7 | 0x42, - 34210 - 19968: jis0212<<14 | 0x38<<7 | 0x43, - 34212 - 19968: jis0208<<14 | 0x48<<7 | 0x05, - 34213 - 19968: jis0212<<14 | 0x38<<7 | 0x44, - 34214 - 19968: jis0208<<14 | 0x20<<7 | 0x05, - 34215 - 19968: jis0212<<14 | 0x38<<7 | 0x45, - 34216 - 19968: jis0208<<14 | 0x48<<7 | 0x09, - 34217 - 19968: jis0208<<14 | 0x1A<<7 | 0x06, - 34218 - 19968: jis0208<<14 | 0x1E<<7 | 0x24, - 34219 - 19968: jis0208<<14 | 0x16<<7 | 0x0F, - 34220 - 19968: jis0208<<14 | 0x2B<<7 | 0x53, - 34221 - 19968: jis0212<<14 | 0x38<<7 | 0x53, - 34222 - 19968: jis0208<<14 | 0x2B<<7 | 0x58, - 34223 - 19968: jis0208<<14 | 0x1C<<7 | 0x51, - 34224 - 19968: jis0208<<14 | 0x5A<<7 | 0x41, - 34228 - 19968: jis0212<<14 | 0x38<<7 | 0x46, - 34230 - 19968: jis0212<<14 | 0x38<<7 | 0x47, - 34231 - 19968: jis0212<<14 | 0x38<<7 | 0x48, - 34232 - 19968: jis0212<<14 | 0x38<<7 | 0x49, - 34233 - 19968: jis0208<<14 | 0x48<<7 | 0x16, - 34234 - 19968: jis0208<<14 | 0x48<<7 | 0x14, - 34236 - 19968: jis0212<<14 | 0x38<<7 | 0x4A, - 34237 - 19968: jis0212<<14 | 0x38<<7 | 0x4B, - 34238 - 19968: jis0212<<14 | 0x38<<7 | 0x4C, - 34239 - 19968: jis0212<<14 | 0x38<<7 | 0x4D, - 34241 - 19968: jis0208<<14 | 0x2E<<7 | 0x2D, - 34242 - 19968: jis0212<<14 | 0x38<<7 | 0x4E, - 34247 - 19968: jis0212<<14 | 0x38<<7 | 0x4F, - 34249 - 19968: jis0208<<14 | 0x48<<7 | 0x13, - 34250 - 19968: jis0212<<14 | 0x38<<7 | 0x50, - 34251 - 19968: jis0212<<14 | 0x38<<7 | 0x51, - 34253 - 19968: jis0208<<14 | 0x2C<<7 | 0x54, - 34254 - 19968: jis0212<<14 | 0x38<<7 | 0x52, - 34255 - 19968: jis0208<<14 | 0x48<<7 | 0x15, - 34256 - 19968: jis0208<<14 | 0x48<<7 | 0x17, - 34261 - 19968: jis0208<<14 | 0x48<<7 | 0x18, - 34264 - 19968: jis0212<<14 | 0x38<<7 | 0x54, - 34266 - 19968: jis0212<<14 | 0x38<<7 | 0x55, - 34268 - 19968: jis0208<<14 | 0x48<<7 | 0x1B, - 34269 - 19968: jis0208<<14 | 0x48<<7 | 0x19, - 34271 - 19968: jis0212<<14 | 0x38<<7 | 0x56, - 34272 - 19968: jis0212<<14 | 0x38<<7 | 0x57, - 34276 - 19968: jis0208<<14 | 0x25<<7 | 0x02, - 34277 - 19968: jis0208<<14 | 0x48<<7 | 0x1A, - 34278 - 19968: jis0212<<14 | 0x38<<7 | 0x58, - 34280 - 19968: jis0212<<14 | 0x38<<7 | 0x59, - 34281 - 19968: jis0208<<14 | 0x27<<7 | 0x2C, - 34282 - 19968: jis0208<<14 | 0x48<<7 | 0x0D, - 34285 - 19968: jis0212<<14 | 0x38<<7 | 0x5A, - 34291 - 19968: jis0212<<14 | 0x38<<7 | 0x5B, - 34294 - 19968: jis0212<<14 | 0x38<<7 | 0x5C, - 34295 - 19968: jis0208<<14 | 0x1C<<7 | 0x52, - 34297 - 19968: jis0208<<14 | 0x48<<7 | 0x1C, - 34298 - 19968: jis0208<<14 | 0x48<<7 | 0x21, - 34299 - 19968: jis0208<<14 | 0x20<<7 | 0x53, - 34300 - 19968: jis0212<<14 | 0x38<<7 | 0x5D, - 34302 - 19968: jis0208<<14 | 0x48<<7 | 0x20, - 34303 - 19968: jis0212<<14 | 0x39<<7 | 0x00, - 34304 - 19968: jis0212<<14 | 0x39<<7 | 0x01, - 34306 - 19968: jis0208<<14 | 0x48<<7 | 0x01, - 34308 - 19968: jis0212<<14 | 0x39<<7 | 0x02, - 34309 - 19968: jis0212<<14 | 0x39<<7 | 0x03, - 34310 - 19968: jis0208<<14 | 0x48<<7 | 0x22, - 34311 - 19968: jis0208<<14 | 0x20<<7 | 0x28, - 34314 - 19968: jis0208<<14 | 0x48<<7 | 0x1D, - 34315 - 19968: jis0208<<14 | 0x48<<7 | 0x1F, - 34317 - 19968: jis0212<<14 | 0x39<<7 | 0x04, - 34318 - 19968: jis0212<<14 | 0x39<<7 | 0x05, - 34320 - 19968: jis0212<<14 | 0x39<<7 | 0x06, - 34321 - 19968: jis0212<<14 | 0x39<<7 | 0x07, - 34322 - 19968: jis0212<<14 | 0x39<<7 | 0x08, - 34323 - 19968: jis0208<<14 | 0x48<<7 | 0x1E, - 34326 - 19968: jis0208<<14 | 0x3C<<7 | 0x10, - 34327 - 19968: jis0208<<14 | 0x3C<<7 | 0x01, - 34328 - 19968: jis0212<<14 | 0x39<<7 | 0x09, - 34329 - 19968: jis0212<<14 | 0x39<<7 | 0x0A, - 34330 - 19968: jis0208<<14 | 0x48<<7 | 0x24, - 34331 - 19968: jis0212<<14 | 0x39<<7 | 0x0B, - 34334 - 19968: jis0212<<14 | 0x39<<7 | 0x0C, - 34337 - 19968: jis0212<<14 | 0x39<<7 | 0x0D, - 34338 - 19968: jis0208<<14 | 0x48<<7 | 0x23, - 34343 - 19968: jis0212<<14 | 0x39<<7 | 0x0E, - 34345 - 19968: jis0212<<14 | 0x39<<7 | 0x0F, - 34349 - 19968: jis0208<<14 | 0x2C<<7 | 0x55, - 34351 - 19968: jis0208<<14 | 0x41<<7 | 0x1B, - 34352 - 19968: jis0208<<14 | 0x48<<7 | 0x25, - 34358 - 19968: jis0212<<14 | 0x39<<7 | 0x10, - 34360 - 19968: jis0212<<14 | 0x39<<7 | 0x11, - 34362 - 19968: jis0212<<14 | 0x39<<7 | 0x12, - 34364 - 19968: jis0212<<14 | 0x39<<7 | 0x13, - 34365 - 19968: jis0212<<14 | 0x39<<7 | 0x14, - 34367 - 19968: jis0208<<14 | 0x48<<7 | 0x26, - 34368 - 19968: jis0212<<14 | 0x39<<7 | 0x15, - 34369 - 19968: jis0212<<14 | 0x17<<7 | 0x45, - 34370 - 19968: jis0212<<14 | 0x39<<7 | 0x16, - 34374 - 19968: jis0212<<14 | 0x39<<7 | 0x17, - 34381 - 19968: jis0208<<14 | 0x48<<7 | 0x27, - 34382 - 19968: jis0208<<14 | 0x17<<7 | 0x36, - 34384 - 19968: jis0208<<14 | 0x14<<7 | 0x33, - 34386 - 19968: jis0212<<14 | 0x39<<7 | 0x18, - 34387 - 19968: jis0212<<14 | 0x39<<7 | 0x19, - 34388 - 19968: jis0208<<14 | 0x48<<7 | 0x29, - 34389 - 19968: jis0208<<14 | 0x30<<7 | 0x3C, - 34390 - 19968: jis0212<<14 | 0x39<<7 | 0x1A, - 34391 - 19968: jis0212<<14 | 0x39<<7 | 0x1B, - 34392 - 19968: jis0212<<14 | 0x39<<7 | 0x1C, - 34393 - 19968: jis0212<<14 | 0x39<<7 | 0x1D, - 34394 - 19968: jis0208<<14 | 0x14<<7 | 0x54, - 34396 - 19968: jis0208<<14 | 0x2D<<7 | 0x19, - 34397 - 19968: jis0212<<14 | 0x39<<7 | 0x1E, - 34398 - 19968: jis0208<<14 | 0x15<<7 | 0x52, - 34399 - 19968: jis0208<<14 | 0x48<<7 | 0x2A, - 34400 - 19968: jis0212<<14 | 0x39<<7 | 0x1F, - 34401 - 19968: jis0212<<14 | 0x39<<7 | 0x20, - 34402 - 19968: jis0212<<14 | 0x39<<7 | 0x21, - 34403 - 19968: jis0212<<14 | 0x39<<7 | 0x22, - 34404 - 19968: jis0212<<14 | 0x39<<7 | 0x23, - 34407 - 19968: jis0208<<14 | 0x48<<7 | 0x2B, - 34409 - 19968: jis0212<<14 | 0x39<<7 | 0x24, - 34411 - 19968: jis0208<<14 | 0x22<<7 | 0x4D, - 34412 - 19968: jis0212<<14 | 0x39<<7 | 0x25, - 34415 - 19968: jis0212<<14 | 0x39<<7 | 0x26, - 34417 - 19968: jis0208<<14 | 0x48<<7 | 0x2C, - 34421 - 19968: jis0212<<14 | 0x39<<7 | 0x27, - 34422 - 19968: jis0212<<14 | 0x39<<7 | 0x28, - 34423 - 19968: jis0212<<14 | 0x39<<7 | 0x29, - 34425 - 19968: jis0208<<14 | 0x25<<7 | 0x59, - 34426 - 19968: jis0212<<14 | 0x39<<7 | 0x2A, - 34427 - 19968: jis0208<<14 | 0x0F<<7 | 0x19, - 34440 - 19968: jis0212<<14 | 0x39<<7 | 0x4C, - 34442 - 19968: jis0208<<14 | 0x11<<7 | 0x42, - 34443 - 19968: jis0208<<14 | 0x48<<7 | 0x31, - 34444 - 19968: jis0208<<14 | 0x48<<7 | 0x32, - 34445 - 19968: jis0212<<14 | 0x39<<7 | 0x2B, - 34449 - 19968: jis0212<<14 | 0x39<<7 | 0x2C, - 34451 - 19968: jis0208<<14 | 0x48<<7 | 0x2D, - 34453 - 19968: jis0208<<14 | 0x1A<<7 | 0x1C, - 34454 - 19968: jis0212<<14 | 0x39<<7 | 0x2D, - 34456 - 19968: jis0212<<14 | 0x39<<7 | 0x2E, - 34458 - 19968: jis0212<<14 | 0x39<<7 | 0x2F, - 34460 - 19968: jis0212<<14 | 0x39<<7 | 0x30, - 34465 - 19968: jis0212<<14 | 0x39<<7 | 0x31, - 34467 - 19968: jis0208<<14 | 0x48<<7 | 0x2E, - 34468 - 19968: jis0208<<14 | 0x26<<7 | 0x21, - 34470 - 19968: jis0212<<14 | 0x39<<7 | 0x32, - 34471 - 19968: jis0212<<14 | 0x39<<7 | 0x33, - 34472 - 19968: jis0212<<14 | 0x39<<7 | 0x34, - 34473 - 19968: jis0208<<14 | 0x48<<7 | 0x2F, - 34474 - 19968: jis0208<<14 | 0x48<<7 | 0x30, - 34475 - 19968: jis0208<<14 | 0x48<<7 | 0x3A, - 34477 - 19968: jis0212<<14 | 0x39<<7 | 0x35, - 34479 - 19968: jis0208<<14 | 0x48<<7 | 0x34, - 34480 - 19968: jis0208<<14 | 0x48<<7 | 0x37, - 34481 - 19968: jis0212<<14 | 0x39<<7 | 0x36, - 34483 - 19968: jis0212<<14 | 0x39<<7 | 0x37, - 34484 - 19968: jis0212<<14 | 0x39<<7 | 0x38, - 34485 - 19968: jis0212<<14 | 0x39<<7 | 0x39, - 34486 - 19968: jis0208<<14 | 0x48<<7 | 0x33, - 34487 - 19968: jis0212<<14 | 0x39<<7 | 0x3A, - 34488 - 19968: jis0212<<14 | 0x39<<7 | 0x3B, - 34489 - 19968: jis0212<<14 | 0x39<<7 | 0x3C, - 34495 - 19968: jis0212<<14 | 0x39<<7 | 0x3D, - 34496 - 19968: jis0212<<14 | 0x39<<7 | 0x3E, - 34497 - 19968: jis0212<<14 | 0x39<<7 | 0x3F, - 34499 - 19968: jis0212<<14 | 0x39<<7 | 0x40, - 34500 - 19968: jis0208<<14 | 0x48<<7 | 0x35, - 34501 - 19968: jis0212<<14 | 0x39<<7 | 0x41, - 34502 - 19968: jis0208<<14 | 0x48<<7 | 0x36, - 34503 - 19968: jis0208<<14 | 0x1B<<7 | 0x37, - 34505 - 19968: jis0208<<14 | 0x48<<7 | 0x38, - 34507 - 19968: jis0208<<14 | 0x22<<7 | 0x20, - 34509 - 19968: jis0208<<14 | 0x16<<7 | 0x35, - 34510 - 19968: jis0208<<14 | 0x12<<7 | 0x21, - 34513 - 19968: jis0212<<14 | 0x39<<7 | 0x42, - 34514 - 19968: jis0212<<14 | 0x39<<7 | 0x43, - 34516 - 19968: jis0208<<14 | 0x48<<7 | 0x3B, - 34517 - 19968: jis0212<<14 | 0x39<<7 | 0x44, - 34519 - 19968: jis0212<<14 | 0x39<<7 | 0x45, - 34521 - 19968: jis0208<<14 | 0x12<<7 | 0x1E, - 34522 - 19968: jis0212<<14 | 0x39<<7 | 0x46, - 34523 - 19968: jis0208<<14 | 0x48<<7 | 0x40, - 34524 - 19968: jis0212<<14 | 0x39<<7 | 0x47, - 34526 - 19968: jis0208<<14 | 0x48<<7 | 0x3C, - 34527 - 19968: jis0208<<14 | 0x48<<7 | 0x3F, - 34528 - 19968: jis0212<<14 | 0x39<<7 | 0x48, - 34531 - 19968: jis0212<<14 | 0x39<<7 | 0x49, - 34532 - 19968: jis0208<<14 | 0x27<<7 | 0x19, - 34533 - 19968: jis0212<<14 | 0x39<<7 | 0x4A, - 34535 - 19968: jis0212<<14 | 0x39<<7 | 0x4B, - 34537 - 19968: jis0208<<14 | 0x48<<7 | 0x3D, - 34540 - 19968: jis0208<<14 | 0x48<<7 | 0x3E, - 34541 - 19968: jis0208<<14 | 0x28<<7 | 0x27, - 34542 - 19968: jis0208<<14 | 0x27<<7 | 0x39, - 34543 - 19968: jis0208<<14 | 0x48<<7 | 0x41, - 34552 - 19968: jis0208<<14 | 0x21<<7 | 0x5C, - 34553 - 19968: jis0208<<14 | 0x48<<7 | 0x4B, - 34554 - 19968: jis0212<<14 | 0x39<<7 | 0x4D, - 34555 - 19968: jis0208<<14 | 0x48<<7 | 0x47, - 34556 - 19968: jis0212<<14 | 0x39<<7 | 0x4E, - 34557 - 19968: jis0212<<14 | 0x39<<7 | 0x4F, - 34558 - 19968: jis0208<<14 | 0x11<<7 | 0x4A, - 34560 - 19968: jis0208<<14 | 0x48<<7 | 0x45, - 34562 - 19968: jis0208<<14 | 0x2A<<7 | 0x09, - 34563 - 19968: jis0208<<14 | 0x48<<7 | 0x46, - 34564 - 19968: jis0212<<14 | 0x39<<7 | 0x50, - 34565 - 19968: jis0212<<14 | 0x39<<7 | 0x51, - 34566 - 19968: jis0208<<14 | 0x48<<7 | 0x43, - 34567 - 19968: jis0212<<14 | 0x39<<7 | 0x52, - 34568 - 19968: jis0208<<14 | 0x48<<7 | 0x44, - 34569 - 19968: jis0208<<14 | 0x48<<7 | 0x49, - 34570 - 19968: jis0208<<14 | 0x48<<7 | 0x4C, - 34571 - 19968: jis0212<<14 | 0x39<<7 | 0x53, - 34573 - 19968: jis0208<<14 | 0x48<<7 | 0x4A, - 34574 - 19968: jis0212<<14 | 0x39<<7 | 0x54, - 34575 - 19968: jis0212<<14 | 0x39<<7 | 0x55, - 34576 - 19968: jis0212<<14 | 0x39<<7 | 0x56, - 34577 - 19968: jis0208<<14 | 0x48<<7 | 0x48, - 34578 - 19968: jis0208<<14 | 0x48<<7 | 0x42, - 34579 - 19968: jis0212<<14 | 0x39<<7 | 0x57, - 34580 - 19968: jis0212<<14 | 0x39<<7 | 0x58, - 34584 - 19968: jis0208<<14 | 0x22<<7 | 0x37, - 34585 - 19968: jis0212<<14 | 0x39<<7 | 0x59, - 34586 - 19968: jis0208<<14 | 0x48<<7 | 0x53, - 34588 - 19968: jis0208<<14 | 0x2B<<7 | 0x09, - 34590 - 19968: jis0212<<14 | 0x39<<7 | 0x5A, - 34591 - 19968: jis0212<<14 | 0x39<<7 | 0x5B, - 34593 - 19968: jis0212<<14 | 0x39<<7 | 0x5C, - 34595 - 19968: jis0212<<14 | 0x39<<7 | 0x5D, - 34597 - 19968: jis0208<<14 | 0x48<<7 | 0x51, - 34600 - 19968: jis0212<<14 | 0x3A<<7 | 0x00, - 34601 - 19968: jis0208<<14 | 0x48<<7 | 0x52, - 34606 - 19968: jis0212<<14 | 0x3A<<7 | 0x01, - 34607 - 19968: jis0212<<14 | 0x3A<<7 | 0x02, - 34609 - 19968: jis0212<<14 | 0x3A<<7 | 0x03, - 34610 - 19968: jis0212<<14 | 0x3A<<7 | 0x04, - 34612 - 19968: jis0208<<14 | 0x48<<7 | 0x4D, - 34615 - 19968: jis0208<<14 | 0x48<<7 | 0x4F, - 34617 - 19968: jis0212<<14 | 0x3A<<7 | 0x05, - 34618 - 19968: jis0212<<14 | 0x3A<<7 | 0x06, - 34619 - 19968: jis0208<<14 | 0x48<<7 | 0x50, - 34620 - 19968: jis0212<<14 | 0x3A<<7 | 0x07, - 34621 - 19968: jis0212<<14 | 0x3A<<7 | 0x08, - 34622 - 19968: jis0212<<14 | 0x3A<<7 | 0x09, - 34623 - 19968: jis0208<<14 | 0x48<<7 | 0x4E, - 34624 - 19968: jis0212<<14 | 0x3A<<7 | 0x0A, - 34627 - 19968: jis0212<<14 | 0x3A<<7 | 0x0B, - 34629 - 19968: jis0212<<14 | 0x3A<<7 | 0x0C, - 34633 - 19968: jis0208<<14 | 0x1F<<7 | 0x45, - 34635 - 19968: jis0208<<14 | 0x2E<<7 | 0x18, - 34636 - 19968: jis0208<<14 | 0x48<<7 | 0x57, - 34637 - 19968: jis0212<<14 | 0x3A<<7 | 0x0D, - 34638 - 19968: jis0208<<14 | 0x48<<7 | 0x58, - 34643 - 19968: jis0208<<14 | 0x49<<7 | 0x00, - 34645 - 19968: jis0208<<14 | 0x1E<<7 | 0x09, - 34647 - 19968: jis0208<<14 | 0x48<<7 | 0x5A, - 34648 - 19968: jis0212<<14 | 0x3A<<7 | 0x0E, - 34649 - 19968: jis0208<<14 | 0x48<<7 | 0x5D, - 34653 - 19968: jis0212<<14 | 0x3A<<7 | 0x0F, - 34655 - 19968: jis0208<<14 | 0x48<<7 | 0x55, - 34656 - 19968: jis0208<<14 | 0x48<<7 | 0x54, - 34657 - 19968: jis0212<<14 | 0x3A<<7 | 0x10, - 34659 - 19968: jis0208<<14 | 0x49<<7 | 0x01, - 34660 - 19968: jis0212<<14 | 0x3A<<7 | 0x11, - 34661 - 19968: jis0212<<14 | 0x3A<<7 | 0x12, - 34662 - 19968: jis0208<<14 | 0x11<<7 | 0x3B, - 34664 - 19968: jis0208<<14 | 0x48<<7 | 0x5B, - 34666 - 19968: jis0208<<14 | 0x49<<7 | 0x02, - 34670 - 19968: jis0208<<14 | 0x48<<7 | 0x5C, - 34671 - 19968: jis0212<<14 | 0x3A<<7 | 0x13, - 34673 - 19968: jis0212<<14 | 0x3A<<7 | 0x14, - 34674 - 19968: jis0212<<14 | 0x3A<<7 | 0x15, - 34676 - 19968: jis0208<<14 | 0x48<<7 | 0x59, - 34678 - 19968: jis0208<<14 | 0x23<<7 | 0x12, - 34680 - 19968: jis0208<<14 | 0x48<<7 | 0x56, - 34683 - 19968: jis0212<<14 | 0x3A<<7 | 0x16, - 34687 - 19968: jis0208<<14 | 0x26<<7 | 0x47, - 34690 - 19968: jis0208<<14 | 0x49<<7 | 0x06, - 34691 - 19968: jis0212<<14 | 0x3A<<7 | 0x17, - 34692 - 19968: jis0212<<14 | 0x3A<<7 | 0x18, - 34693 - 19968: jis0212<<14 | 0x3A<<7 | 0x19, - 34694 - 19968: jis0212<<14 | 0x3A<<7 | 0x1A, - 34695 - 19968: jis0212<<14 | 0x3A<<7 | 0x1B, - 34696 - 19968: jis0212<<14 | 0x3A<<7 | 0x1C, - 34697 - 19968: jis0212<<14 | 0x3A<<7 | 0x1D, - 34699 - 19968: jis0212<<14 | 0x3A<<7 | 0x1E, - 34700 - 19968: jis0212<<14 | 0x3A<<7 | 0x1F, - 34701 - 19968: jis0208<<14 | 0x2C<<7 | 0x1A, - 34704 - 19968: jis0212<<14 | 0x3A<<7 | 0x20, - 34707 - 19968: jis0212<<14 | 0x3A<<7 | 0x21, - 34709 - 19968: jis0212<<14 | 0x3A<<7 | 0x22, - 34711 - 19968: jis0212<<14 | 0x3A<<7 | 0x23, - 34712 - 19968: jis0212<<14 | 0x3A<<7 | 0x24, - 34713 - 19968: jis0212<<14 | 0x3A<<7 | 0x25, - 34718 - 19968: jis0212<<14 | 0x3A<<7 | 0x26, - 34719 - 19968: jis0208<<14 | 0x49<<7 | 0x05, - 34720 - 19968: jis0212<<14 | 0x3A<<7 | 0x27, - 34722 - 19968: jis0208<<14 | 0x49<<7 | 0x04, - 34723 - 19968: jis0212<<14 | 0x3A<<7 | 0x28, - 34727 - 19968: jis0212<<14 | 0x3A<<7 | 0x29, - 34731 - 19968: jis0208<<14 | 0x49<<7 | 0x0D, - 34732 - 19968: jis0212<<14 | 0x3A<<7 | 0x2A, - 34733 - 19968: jis0212<<14 | 0x3A<<7 | 0x2B, - 34734 - 19968: jis0212<<14 | 0x3A<<7 | 0x2C, - 34735 - 19968: jis0208<<14 | 0x49<<7 | 0x07, - 34737 - 19968: jis0212<<14 | 0x3A<<7 | 0x2D, - 34739 - 19968: jis0208<<14 | 0x49<<7 | 0x0F, - 34741 - 19968: jis0212<<14 | 0x3A<<7 | 0x2E, - 34746 - 19968: jis0208<<14 | 0x2C<<7 | 0x45, - 34747 - 19968: jis0208<<14 | 0x49<<7 | 0x12, - 34749 - 19968: jis0208<<14 | 0x49<<7 | 0x09, - 34750 - 19968: jis0212<<14 | 0x3A<<7 | 0x2F, - 34751 - 19968: jis0212<<14 | 0x3A<<7 | 0x30, - 34752 - 19968: jis0208<<14 | 0x49<<7 | 0x0A, - 34753 - 19968: jis0212<<14 | 0x3A<<7 | 0x31, - 34756 - 19968: jis0208<<14 | 0x49<<7 | 0x0E, - 34758 - 19968: jis0208<<14 | 0x49<<7 | 0x11, - 34759 - 19968: jis0208<<14 | 0x49<<7 | 0x10, - 34760 - 19968: jis0212<<14 | 0x3A<<7 | 0x32, - 34761 - 19968: jis0212<<14 | 0x3A<<7 | 0x33, - 34762 - 19968: jis0212<<14 | 0x3A<<7 | 0x34, - 34763 - 19968: jis0208<<14 | 0x49<<7 | 0x08, - 34766 - 19968: jis0212<<14 | 0x3A<<7 | 0x35, - 34768 - 19968: jis0208<<14 | 0x49<<7 | 0x0B, - 34770 - 19968: jis0208<<14 | 0x49<<7 | 0x1C, - 34773 - 19968: jis0212<<14 | 0x3A<<7 | 0x36, - 34774 - 19968: jis0212<<14 | 0x3A<<7 | 0x37, - 34777 - 19968: jis0212<<14 | 0x3A<<7 | 0x38, - 34778 - 19968: jis0212<<14 | 0x3A<<7 | 0x39, - 34780 - 19968: jis0212<<14 | 0x3A<<7 | 0x3A, - 34783 - 19968: jis0212<<14 | 0x3A<<7 | 0x3B, - 34784 - 19968: jis0208<<14 | 0x49<<7 | 0x15, - 34786 - 19968: jis0212<<14 | 0x3A<<7 | 0x3C, - 34787 - 19968: jis0212<<14 | 0x3A<<7 | 0x3D, - 34788 - 19968: jis0212<<14 | 0x3A<<7 | 0x3E, - 34794 - 19968: jis0212<<14 | 0x3A<<7 | 0x3F, - 34795 - 19968: jis0212<<14 | 0x3A<<7 | 0x40, - 34797 - 19968: jis0212<<14 | 0x3A<<7 | 0x41, - 34799 - 19968: jis0208<<14 | 0x49<<7 | 0x13, - 34801 - 19968: jis0212<<14 | 0x3A<<7 | 0x42, - 34802 - 19968: jis0208<<14 | 0x49<<7 | 0x14, - 34803 - 19968: jis0212<<14 | 0x3A<<7 | 0x43, - 34806 - 19968: jis0208<<14 | 0x49<<7 | 0x19, - 34807 - 19968: jis0208<<14 | 0x49<<7 | 0x1A, - 34808 - 19968: jis0212<<14 | 0x3A<<7 | 0x44, - 34809 - 19968: jis0208<<14 | 0x12<<7 | 0x09, - 34810 - 19968: jis0212<<14 | 0x3A<<7 | 0x45, - 34811 - 19968: jis0208<<14 | 0x14<<7 | 0x21, - 34814 - 19968: jis0208<<14 | 0x49<<7 | 0x18, - 34815 - 19968: jis0212<<14 | 0x3A<<7 | 0x46, - 34817 - 19968: jis0212<<14 | 0x3A<<7 | 0x47, - 34819 - 19968: jis0212<<14 | 0x3A<<7 | 0x48, - 34821 - 19968: jis0208<<14 | 0x49<<7 | 0x03, - 34822 - 19968: jis0212<<14 | 0x3A<<7 | 0x49, - 34823 - 19968: jis0208<<14 | 0x5A<<7 | 0x44, - 34825 - 19968: jis0212<<14 | 0x3A<<7 | 0x4A, - 34826 - 19968: jis0212<<14 | 0x3A<<7 | 0x4B, - 34827 - 19968: jis0212<<14 | 0x3A<<7 | 0x4C, - 34829 - 19968: jis0208<<14 | 0x49<<7 | 0x17, - 34830 - 19968: jis0208<<14 | 0x49<<7 | 0x1B, - 34831 - 19968: jis0208<<14 | 0x49<<7 | 0x16, - 34832 - 19968: jis0212<<14 | 0x3A<<7 | 0x4D, - 34833 - 19968: jis0208<<14 | 0x49<<7 | 0x1D, - 34834 - 19968: jis0212<<14 | 0x3A<<7 | 0x4F, - 34835 - 19968: jis0212<<14 | 0x3A<<7 | 0x50, - 34836 - 19968: jis0212<<14 | 0x3A<<7 | 0x51, - 34837 - 19968: jis0208<<14 | 0x49<<7 | 0x1F, - 34838 - 19968: jis0208<<14 | 0x49<<7 | 0x1E, - 34840 - 19968: jis0212<<14 | 0x3A<<7 | 0x52, - 34841 - 19968: jis0212<<14 | 0x3A<<7 | 0x4E, - 34842 - 19968: jis0212<<14 | 0x3A<<7 | 0x53, - 34843 - 19968: jis0212<<14 | 0x3A<<7 | 0x54, - 34844 - 19968: jis0212<<14 | 0x3A<<7 | 0x55, - 34846 - 19968: jis0212<<14 | 0x3A<<7 | 0x56, - 34847 - 19968: jis0212<<14 | 0x3A<<7 | 0x57, - 34849 - 19968: jis0208<<14 | 0x49<<7 | 0x21, - 34850 - 19968: jis0208<<14 | 0x49<<7 | 0x20, - 34851 - 19968: jis0208<<14 | 0x48<<7 | 0x39, - 34855 - 19968: jis0208<<14 | 0x49<<7 | 0x25, - 34856 - 19968: jis0212<<14 | 0x3A<<7 | 0x58, - 34861 - 19968: jis0212<<14 | 0x3A<<7 | 0x59, - 34862 - 19968: jis0212<<14 | 0x3A<<7 | 0x5A, - 34864 - 19968: jis0212<<14 | 0x3A<<7 | 0x5B, - 34865 - 19968: jis0208<<14 | 0x49<<7 | 0x22, - 34866 - 19968: jis0212<<14 | 0x3A<<7 | 0x5C, - 34869 - 19968: jis0212<<14 | 0x3A<<7 | 0x5D, - 34870 - 19968: jis0208<<14 | 0x49<<7 | 0x23, - 34873 - 19968: jis0208<<14 | 0x49<<7 | 0x24, - 34874 - 19968: jis0212<<14 | 0x3B<<7 | 0x00, - 34875 - 19968: jis0208<<14 | 0x49<<7 | 0x26, - 34876 - 19968: jis0212<<14 | 0x3B<<7 | 0x01, - 34880 - 19968: jis0208<<14 | 0x16<<7 | 0x4B, - 34881 - 19968: jis0212<<14 | 0x3B<<7 | 0x02, - 34882 - 19968: jis0208<<14 | 0x49<<7 | 0x28, - 34883 - 19968: jis0212<<14 | 0x3B<<7 | 0x03, - 34884 - 19968: jis0208<<14 | 0x49<<7 | 0x27, - 34885 - 19968: jis0212<<14 | 0x3B<<7 | 0x04, - 34886 - 19968: jis0208<<14 | 0x1C<<7 | 0x0F, - 34888 - 19968: jis0212<<14 | 0x3B<<7 | 0x05, - 34889 - 19968: jis0212<<14 | 0x3B<<7 | 0x06, - 34890 - 19968: jis0212<<14 | 0x3B<<7 | 0x07, - 34891 - 19968: jis0212<<14 | 0x3B<<7 | 0x08, - 34892 - 19968: jis0208<<14 | 0x18<<7 | 0x33, - 34893 - 19968: jis0208<<14 | 0x3D<<7 | 0x06, - 34894 - 19968: jis0212<<14 | 0x3B<<7 | 0x09, - 34897 - 19968: jis0212<<14 | 0x3B<<7 | 0x0A, - 34898 - 19968: jis0208<<14 | 0x49<<7 | 0x29, - 34899 - 19968: jis0208<<14 | 0x1C<<7 | 0x30, - 34901 - 19968: jis0212<<14 | 0x3B<<7 | 0x0B, - 34902 - 19968: jis0212<<14 | 0x3B<<7 | 0x0C, - 34903 - 19968: jis0208<<14 | 0x12<<7 | 0x18, - 34904 - 19968: jis0212<<14 | 0x3B<<7 | 0x0D, - 34905 - 19968: jis0208<<14 | 0x49<<7 | 0x2A, - 34906 - 19968: jis0212<<14 | 0x3B<<7 | 0x0E, - 34907 - 19968: jis0208<<14 | 0x10<<7 | 0x31, - 34908 - 19968: jis0212<<14 | 0x3B<<7 | 0x0F, - 34909 - 19968: jis0208<<14 | 0x1D<<7 | 0x36, - 34910 - 19968: jis0208<<14 | 0x49<<7 | 0x2B, - 34911 - 19968: jis0212<<14 | 0x3B<<7 | 0x10, - 34912 - 19968: jis0212<<14 | 0x3B<<7 | 0x11, - 34913 - 19968: jis0208<<14 | 0x18<<7 | 0x34, - 34914 - 19968: jis0208<<14 | 0x49<<7 | 0x2C, - 34915 - 19968: jis0208<<14 | 0x0F<<7 | 0x40, - 34916 - 19968: jis0212<<14 | 0x3B<<7 | 0x12, - 34920 - 19968: jis0208<<14 | 0x28<<7 | 0x1C, - 34921 - 19968: jis0212<<14 | 0x3B<<7 | 0x13, - 34923 - 19968: jis0208<<14 | 0x49<<7 | 0x2D, - 34928 - 19968: jis0208<<14 | 0x1E<<7 | 0x49, - 34929 - 19968: jis0212<<14 | 0x3B<<7 | 0x14, - 34930 - 19968: jis0208<<14 | 0x49<<7 | 0x34, - 34933 - 19968: jis0208<<14 | 0x49<<7 | 0x31, - 34935 - 19968: jis0208<<14 | 0x22<<7 | 0x4E, - 34937 - 19968: jis0212<<14 | 0x3B<<7 | 0x15, - 34939 - 19968: jis0212<<14 | 0x3B<<7 | 0x16, - 34941 - 19968: jis0208<<14 | 0x49<<7 | 0x32, - 34942 - 19968: jis0208<<14 | 0x49<<7 | 0x2F, - 34943 - 19968: jis0208<<14 | 0x15<<7 | 0x3D, - 34944 - 19968: jis0212<<14 | 0x3B<<7 | 0x17, - 34945 - 19968: jis0208<<14 | 0x49<<7 | 0x2E, - 34946 - 19968: jis0208<<14 | 0x49<<7 | 0x35, - 34952 - 19968: jis0208<<14 | 0x16<<7 | 0x15, - 34955 - 19968: jis0208<<14 | 0x21<<7 | 0x3D, - 34957 - 19968: jis0208<<14 | 0x49<<7 | 0x3B, - 34962 - 19968: jis0208<<14 | 0x49<<7 | 0x37, - 34966 - 19968: jis0208<<14 | 0x21<<7 | 0x14, - 34967 - 19968: jis0208<<14 | 0x49<<7 | 0x36, - 34968 - 19968: jis0212<<14 | 0x3B<<7 | 0x18, - 34969 - 19968: jis0208<<14 | 0x49<<7 | 0x39, - 34970 - 19968: jis0212<<14 | 0x3B<<7 | 0x19, - 34971 - 19968: jis0212<<14 | 0x3B<<7 | 0x1A, - 34972 - 19968: jis0212<<14 | 0x3B<<7 | 0x1B, - 34974 - 19968: jis0208<<14 | 0x49<<7 | 0x30, - 34975 - 19968: jis0212<<14 | 0x3B<<7 | 0x1C, - 34976 - 19968: jis0212<<14 | 0x3B<<7 | 0x1D, - 34978 - 19968: jis0208<<14 | 0x49<<7 | 0x3A, - 34980 - 19968: jis0208<<14 | 0x49<<7 | 0x3C, - 34984 - 19968: jis0212<<14 | 0x3B<<7 | 0x1E, - 34986 - 19968: jis0212<<14 | 0x3B<<7 | 0x1F, - 34987 - 19968: jis0208<<14 | 0x27<<7 | 0x4E, - 34990 - 19968: jis0208<<14 | 0x49<<7 | 0x38, - 34992 - 19968: jis0208<<14 | 0x49<<7 | 0x3D, - 34993 - 19968: jis0208<<14 | 0x49<<7 | 0x3F, - 34996 - 19968: jis0208<<14 | 0x17<<7 | 0x32, - 34997 - 19968: jis0208<<14 | 0x49<<7 | 0x33, - 34999 - 19968: jis0208<<14 | 0x0F<<7 | 0x20, - 35002 - 19968: jis0212<<14 | 0x3B<<7 | 0x20, - 35005 - 19968: jis0212<<14 | 0x3B<<7 | 0x21, - 35006 - 19968: jis0212<<14 | 0x3B<<7 | 0x22, - 35007 - 19968: jis0208<<14 | 0x49<<7 | 0x3E, - 35008 - 19968: jis0212<<14 | 0x3B<<7 | 0x23, - 35009 - 19968: jis0208<<14 | 0x19<<7 | 0x3A, - 35010 - 19968: jis0208<<14 | 0x2D<<7 | 0x55, - 35011 - 19968: jis0208<<14 | 0x49<<7 | 0x40, - 35012 - 19968: jis0208<<14 | 0x49<<7 | 0x41, - 35013 - 19968: jis0208<<14 | 0x20<<7 | 0x54, - 35018 - 19968: jis0212<<14 | 0x3B<<7 | 0x24, - 35019 - 19968: jis0212<<14 | 0x3B<<7 | 0x25, - 35020 - 19968: jis0212<<14 | 0x3B<<7 | 0x26, - 35021 - 19968: jis0212<<14 | 0x3B<<7 | 0x27, - 35022 - 19968: jis0212<<14 | 0x3B<<7 | 0x28, - 35023 - 19968: jis0208<<14 | 0x2D<<7 | 0x01, - 35025 - 19968: jis0212<<14 | 0x3B<<7 | 0x29, - 35026 - 19968: jis0212<<14 | 0x3B<<7 | 0x2A, - 35027 - 19968: jis0212<<14 | 0x3B<<7 | 0x2B, - 35028 - 19968: jis0208<<14 | 0x49<<7 | 0x42, - 35029 - 19968: jis0208<<14 | 0x2C<<7 | 0x14, - 35032 - 19968: jis0208<<14 | 0x49<<7 | 0x43, - 35033 - 19968: jis0208<<14 | 0x49<<7 | 0x44, - 35035 - 19968: jis0212<<14 | 0x3B<<7 | 0x2C, - 35036 - 19968: jis0208<<14 | 0x29<<7 | 0x43, - 35037 - 19968: jis0208<<14 | 0x49<<7 | 0x45, - 35038 - 19968: jis0212<<14 | 0x3B<<7 | 0x2D, - 35039 - 19968: jis0208<<14 | 0x19<<7 | 0x1F, - 35041 - 19968: jis0208<<14 | 0x2D<<7 | 0x02, - 35047 - 19968: jis0212<<14 | 0x3B<<7 | 0x2E, - 35048 - 19968: jis0208<<14 | 0x49<<7 | 0x4A, - 35055 - 19968: jis0212<<14 | 0x3B<<7 | 0x2F, - 35056 - 19968: jis0212<<14 | 0x3B<<7 | 0x30, - 35057 - 19968: jis0212<<14 | 0x3B<<7 | 0x31, - 35058 - 19968: jis0208<<14 | 0x49<<7 | 0x4B, - 35059 - 19968: jis0208<<14 | 0x1D<<7 | 0x37, - 35060 - 19968: jis0208<<14 | 0x49<<7 | 0x49, - 35061 - 19968: jis0208<<14 | 0x5A<<7 | 0x45, - 35063 - 19968: jis0212<<14 | 0x3B<<7 | 0x33, - 35064 - 19968: jis0208<<14 | 0x2C<<7 | 0x46, - 35065 - 19968: jis0208<<14 | 0x49<<7 | 0x46, - 35068 - 19968: jis0208<<14 | 0x49<<7 | 0x48, - 35069 - 19968: jis0208<<14 | 0x1F<<7 | 0x1C, - 35070 - 19968: jis0208<<14 | 0x1E<<7 | 0x5D, - 35073 - 19968: jis0212<<14 | 0x3B<<7 | 0x34, - 35074 - 19968: jis0208<<14 | 0x49<<7 | 0x47, - 35076 - 19968: jis0208<<14 | 0x49<<7 | 0x4C, - 35078 - 19968: jis0212<<14 | 0x3B<<7 | 0x35, - 35079 - 19968: jis0208<<14 | 0x29<<7 | 0x02, - 35082 - 19968: jis0208<<14 | 0x49<<7 | 0x4E, - 35084 - 19968: jis0208<<14 | 0x49<<7 | 0x4D, - 35085 - 19968: jis0212<<14 | 0x3B<<7 | 0x36, - 35086 - 19968: jis0212<<14 | 0x3B<<7 | 0x37, - 35087 - 19968: jis0212<<14 | 0x3B<<7 | 0x38, - 35088 - 19968: jis0208<<14 | 0x12<<7 | 0x4B, - 35090 - 19968: jis0208<<14 | 0x2A<<7 | 0x0A, - 35091 - 19968: jis0208<<14 | 0x49<<7 | 0x4F, - 35093 - 19968: jis0212<<14 | 0x3B<<7 | 0x39, - 35094 - 19968: jis0212<<14 | 0x3B<<7 | 0x3A, - 35096 - 19968: jis0212<<14 | 0x3B<<7 | 0x3B, - 35097 - 19968: jis0212<<14 | 0x3B<<7 | 0x3C, - 35098 - 19968: jis0212<<14 | 0x3B<<7 | 0x3D, - 35100 - 19968: jis0208<<14 | 0x58<<7 | 0x01, - 35101 - 19968: jis0208<<14 | 0x49<<7 | 0x5B, - 35102 - 19968: jis0208<<14 | 0x49<<7 | 0x51, - 35104 - 19968: jis0212<<14 | 0x3B<<7 | 0x3F, - 35109 - 19968: jis0208<<14 | 0x49<<7 | 0x52, - 35110 - 19968: jis0212<<14 | 0x3B<<7 | 0x40, - 35111 - 19968: jis0212<<14 | 0x3B<<7 | 0x41, - 35112 - 19968: jis0212<<14 | 0x3B<<7 | 0x42, - 35114 - 19968: jis0208<<14 | 0x49<<7 | 0x53, - 35115 - 19968: jis0208<<14 | 0x49<<7 | 0x54, - 35120 - 19968: jis0212<<14 | 0x3B<<7 | 0x43, - 35121 - 19968: jis0212<<14 | 0x3B<<7 | 0x44, - 35122 - 19968: jis0212<<14 | 0x3B<<7 | 0x45, - 35125 - 19968: jis0212<<14 | 0x3B<<7 | 0x46, - 35126 - 19968: jis0208<<14 | 0x49<<7 | 0x58, - 35128 - 19968: jis0208<<14 | 0x49<<7 | 0x59, - 35129 - 19968: jis0212<<14 | 0x3B<<7 | 0x47, - 35130 - 19968: jis0212<<14 | 0x3B<<7 | 0x48, - 35131 - 19968: jis0208<<14 | 0x49<<7 | 0x57, - 35134 - 19968: jis0212<<14 | 0x3B<<7 | 0x49, - 35136 - 19968: jis0212<<14 | 0x3B<<7 | 0x4A, - 35137 - 19968: jis0208<<14 | 0x49<<7 | 0x55, - 35138 - 19968: jis0212<<14 | 0x3B<<7 | 0x4B, - 35139 - 19968: jis0208<<14 | 0x49<<7 | 0x50, - 35140 - 19968: jis0208<<14 | 0x49<<7 | 0x56, - 35141 - 19968: jis0212<<14 | 0x3B<<7 | 0x4C, - 35142 - 19968: jis0212<<14 | 0x3B<<7 | 0x4D, - 35145 - 19968: jis0212<<14 | 0x3B<<7 | 0x4E, - 35148 - 19968: jis0208<<14 | 0x49<<7 | 0x5A, - 35149 - 19968: jis0208<<14 | 0x4F<<7 | 0x16, - 35151 - 19968: jis0212<<14 | 0x3B<<7 | 0x4F, - 35154 - 19968: jis0212<<14 | 0x3B<<7 | 0x50, - 35158 - 19968: jis0208<<14 | 0x11<<7 | 0x07, - 35159 - 19968: jis0212<<14 | 0x3B<<7 | 0x51, - 35162 - 19968: jis0212<<14 | 0x3B<<7 | 0x52, - 35163 - 19968: jis0212<<14 | 0x3B<<7 | 0x53, - 35164 - 19968: jis0212<<14 | 0x3B<<7 | 0x54, - 35166 - 19968: jis0208<<14 | 0x49<<7 | 0x5D, - 35167 - 19968: jis0208<<14 | 0x15<<7 | 0x3E, - 35168 - 19968: jis0208<<14 | 0x49<<7 | 0x5C, - 35169 - 19968: jis0212<<14 | 0x3B<<7 | 0x55, - 35170 - 19968: jis0212<<14 | 0x3B<<7 | 0x56, - 35171 - 19968: jis0212<<14 | 0x3B<<7 | 0x57, - 35172 - 19968: jis0208<<14 | 0x4A<<7 | 0x01, - 35174 - 19968: jis0208<<14 | 0x4A<<7 | 0x00, - 35178 - 19968: jis0208<<14 | 0x4A<<7 | 0x03, - 35179 - 19968: jis0212<<14 | 0x3B<<7 | 0x58, - 35181 - 19968: jis0208<<14 | 0x4A<<7 | 0x02, - 35182 - 19968: jis0212<<14 | 0x3B<<7 | 0x59, - 35183 - 19968: jis0208<<14 | 0x4A<<7 | 0x04, - 35184 - 19968: jis0212<<14 | 0x3B<<7 | 0x5A, - 35186 - 19968: jis0208<<14 | 0x1C<<7 | 0x10, - 35187 - 19968: jis0212<<14 | 0x3B<<7 | 0x5B, - 35188 - 19968: jis0208<<14 | 0x4A<<7 | 0x05, - 35189 - 19968: jis0212<<14 | 0x3B<<7 | 0x5C, - 35191 - 19968: jis0208<<14 | 0x4A<<7 | 0x06, - 35194 - 19968: jis0212<<14 | 0x3B<<7 | 0x5D, - 35195 - 19968: jis0212<<14 | 0x3C<<7 | 0x00, - 35196 - 19968: jis0212<<14 | 0x3C<<7 | 0x01, - 35197 - 19968: jis0212<<14 | 0x3C<<7 | 0x02, - 35198 - 19968: jis0208<<14 | 0x4A<<7 | 0x07, - 35199 - 19968: jis0208<<14 | 0x1F<<7 | 0x1D, - 35201 - 19968: jis0208<<14 | 0x2C<<7 | 0x36, - 35203 - 19968: jis0208<<14 | 0x4A<<7 | 0x08, - 35206 - 19968: jis0208<<14 | 0x29<<7 | 0x03, - 35207 - 19968: jis0208<<14 | 0x26<<7 | 0x25, - 35208 - 19968: jis0208<<14 | 0x4A<<7 | 0x09, - 35209 - 19968: jis0212<<14 | 0x3C<<7 | 0x03, - 35210 - 19968: jis0208<<14 | 0x4A<<7 | 0x0A, - 35211 - 19968: jis0208<<14 | 0x17<<7 | 0x0A, - 35213 - 19968: jis0212<<14 | 0x3C<<7 | 0x04, - 35215 - 19968: jis0208<<14 | 0x14<<7 | 0x0B, - 35216 - 19968: jis0212<<14 | 0x3C<<7 | 0x05, - 35219 - 19968: jis0208<<14 | 0x4A<<7 | 0x0B, - 35220 - 19968: jis0212<<14 | 0x3C<<7 | 0x06, - 35221 - 19968: jis0212<<14 | 0x3C<<7 | 0x07, - 35222 - 19968: jis0208<<14 | 0x1A<<7 | 0x4A, - 35223 - 19968: jis0208<<14 | 0x26<<7 | 0x20, - 35224 - 19968: jis0208<<14 | 0x4A<<7 | 0x0C, - 35226 - 19968: jis0208<<14 | 0x12<<7 | 0x2F, - 35227 - 19968: jis0212<<14 | 0x3C<<7 | 0x08, - 35228 - 19968: jis0212<<14 | 0x3C<<7 | 0x09, - 35231 - 19968: jis0212<<14 | 0x3C<<7 | 0x0A, - 35232 - 19968: jis0212<<14 | 0x3C<<7 | 0x0B, - 35233 - 19968: jis0208<<14 | 0x4A<<7 | 0x0D, - 35237 - 19968: jis0212<<14 | 0x3C<<7 | 0x0C, - 35238 - 19968: jis0208<<14 | 0x4A<<7 | 0x0F, - 35239 - 19968: jis0208<<14 | 0x2C<<7 | 0x56, - 35241 - 19968: jis0208<<14 | 0x4A<<7 | 0x0E, - 35242 - 19968: jis0208<<14 | 0x1E<<7 | 0x25, - 35244 - 19968: jis0208<<14 | 0x4A<<7 | 0x10, - 35247 - 19968: jis0208<<14 | 0x4A<<7 | 0x11, - 35248 - 19968: jis0212<<14 | 0x3C<<7 | 0x0D, - 35250 - 19968: jis0208<<14 | 0x4A<<7 | 0x12, - 35251 - 19968: jis0208<<14 | 0x13<<7 | 0x30, - 35252 - 19968: jis0212<<14 | 0x3C<<7 | 0x0E, - 35253 - 19968: jis0212<<14 | 0x3C<<7 | 0x0F, - 35254 - 19968: jis0212<<14 | 0x3C<<7 | 0x10, - 35255 - 19968: jis0212<<14 | 0x3C<<7 | 0x11, - 35258 - 19968: jis0208<<14 | 0x4A<<7 | 0x13, - 35260 - 19968: jis0212<<14 | 0x3C<<7 | 0x12, - 35261 - 19968: jis0208<<14 | 0x4A<<7 | 0x14, - 35263 - 19968: jis0208<<14 | 0x4A<<7 | 0x15, - 35264 - 19968: jis0208<<14 | 0x4A<<7 | 0x16, - 35282 - 19968: jis0208<<14 | 0x12<<7 | 0x30, - 35284 - 19968: jis0212<<14 | 0x3C<<7 | 0x13, - 35285 - 19968: jis0212<<14 | 0x3C<<7 | 0x14, - 35286 - 19968: jis0212<<14 | 0x3C<<7 | 0x15, - 35287 - 19968: jis0212<<14 | 0x3C<<7 | 0x16, - 35288 - 19968: jis0212<<14 | 0x3C<<7 | 0x17, - 35290 - 19968: jis0208<<14 | 0x4A<<7 | 0x17, - 35292 - 19968: jis0208<<14 | 0x4A<<7 | 0x18, - 35293 - 19968: jis0208<<14 | 0x4A<<7 | 0x19, - 35299 - 19968: jis0208<<14 | 0x11<<7 | 0x51, - 35301 - 19968: jis0212<<14 | 0x3C<<7 | 0x18, - 35302 - 19968: jis0208<<14 | 0x1E<<7 | 0x07, - 35303 - 19968: jis0208<<14 | 0x4A<<7 | 0x1A, - 35305 - 19968: jis0212<<14 | 0x3C<<7 | 0x19, - 35307 - 19968: jis0212<<14 | 0x3C<<7 | 0x1A, - 35309 - 19968: jis0212<<14 | 0x3C<<7 | 0x1B, - 35313 - 19968: jis0212<<14 | 0x3C<<7 | 0x1C, - 35315 - 19968: jis0212<<14 | 0x3C<<7 | 0x1D, - 35316 - 19968: jis0208<<14 | 0x4A<<7 | 0x1B, - 35318 - 19968: jis0212<<14 | 0x3C<<7 | 0x1E, - 35320 - 19968: jis0208<<14 | 0x4A<<7 | 0x1C, - 35321 - 19968: jis0212<<14 | 0x3C<<7 | 0x1F, - 35325 - 19968: jis0212<<14 | 0x3C<<7 | 0x20, - 35327 - 19968: jis0212<<14 | 0x3C<<7 | 0x21, - 35328 - 19968: jis0208<<14 | 0x17<<7 | 0x1F, - 35330 - 19968: jis0208<<14 | 0x23<<7 | 0x5A, - 35331 - 19968: jis0208<<14 | 0x4A<<7 | 0x1D, - 35332 - 19968: jis0212<<14 | 0x3C<<7 | 0x22, - 35333 - 19968: jis0212<<14 | 0x3C<<7 | 0x23, - 35335 - 19968: jis0212<<14 | 0x3C<<7 | 0x24, - 35336 - 19968: jis0208<<14 | 0x16<<7 | 0x36, - 35338 - 19968: jis0208<<14 | 0x1E<<7 | 0x35, - 35340 - 19968: jis0208<<14 | 0x4A<<7 | 0x20, - 35342 - 19968: jis0208<<14 | 0x25<<7 | 0x03, - 35343 - 19968: jis0212<<14 | 0x3C<<7 | 0x25, - 35344 - 19968: jis0208<<14 | 0x4A<<7 | 0x1F, - 35345 - 19968: jis0212<<14 | 0x3C<<7 | 0x26, - 35346 - 19968: jis0208<<14 | 0x5A<<7 | 0x46, - 35347 - 19968: jis0208<<14 | 0x16<<7 | 0x10, - 35348 - 19968: jis0212<<14 | 0x3C<<7 | 0x28, - 35349 - 19968: jis0212<<14 | 0x3C<<7 | 0x29, - 35350 - 19968: jis0208<<14 | 0x4A<<7 | 0x1E, - 35351 - 19968: jis0208<<14 | 0x21<<7 | 0x56, - 35352 - 19968: jis0208<<14 | 0x14<<7 | 0x0C, - 35355 - 19968: jis0208<<14 | 0x4A<<7 | 0x21, - 35357 - 19968: jis0208<<14 | 0x4A<<7 | 0x22, - 35358 - 19968: jis0212<<14 | 0x3C<<7 | 0x2A, - 35359 - 19968: jis0208<<14 | 0x1D<<7 | 0x38, - 35360 - 19968: jis0212<<14 | 0x3C<<7 | 0x2B, - 35362 - 19968: jis0212<<14 | 0x3C<<7 | 0x2C, - 35363 - 19968: jis0208<<14 | 0x16<<7 | 0x4C, - 35364 - 19968: jis0212<<14 | 0x3C<<7 | 0x2D, - 35365 - 19968: jis0208<<14 | 0x4A<<7 | 0x23, - 35366 - 19968: jis0212<<14 | 0x3C<<7 | 0x2E, - 35370 - 19968: jis0208<<14 | 0x2A<<7 | 0x0B, - 35371 - 19968: jis0212<<14 | 0x3C<<7 | 0x2F, - 35372 - 19968: jis0212<<14 | 0x3C<<7 | 0x30, - 35373 - 19968: jis0208<<14 | 0x1F<<7 | 0x3E, - 35375 - 19968: jis0212<<14 | 0x3C<<7 | 0x31, - 35377 - 19968: jis0208<<14 | 0x14<<7 | 0x55, - 35379 - 19968: jis0208<<14 | 0x2B<<7 | 0x54, - 35380 - 19968: jis0208<<14 | 0x20<<7 | 0x29, - 35381 - 19968: jis0212<<14 | 0x3C<<7 | 0x32, - 35382 - 19968: jis0208<<14 | 0x4A<<7 | 0x24, - 35383 - 19968: jis0208<<14 | 0x5A<<7 | 0x47, - 35386 - 19968: jis0208<<14 | 0x1E<<7 | 0x26, - 35387 - 19968: jis0208<<14 | 0x22<<7 | 0x4F, - 35388 - 19968: jis0208<<14 | 0x1D<<7 | 0x39, - 35389 - 19968: jis0212<<14 | 0x3C<<7 | 0x34, - 35390 - 19968: jis0212<<14 | 0x3C<<7 | 0x35, - 35392 - 19968: jis0212<<14 | 0x3C<<7 | 0x36, - 35393 - 19968: jis0208<<14 | 0x4A<<7 | 0x25, - 35395 - 19968: jis0212<<14 | 0x3C<<7 | 0x37, - 35397 - 19968: jis0212<<14 | 0x3C<<7 | 0x38, - 35398 - 19968: jis0208<<14 | 0x4A<<7 | 0x28, - 35399 - 19968: jis0212<<14 | 0x3C<<7 | 0x39, - 35400 - 19968: jis0208<<14 | 0x4A<<7 | 0x29, - 35401 - 19968: jis0212<<14 | 0x3C<<7 | 0x3A, - 35405 - 19968: jis0212<<14 | 0x3C<<7 | 0x3B, - 35406 - 19968: jis0212<<14 | 0x3C<<7 | 0x3C, - 35408 - 19968: jis0208<<14 | 0x19<<7 | 0x1D, - 35409 - 19968: jis0208<<14 | 0x21<<7 | 0x21, - 35410 - 19968: jis0208<<14 | 0x4A<<7 | 0x27, - 35411 - 19968: jis0212<<14 | 0x3C<<7 | 0x3D, - 35412 - 19968: jis0208<<14 | 0x1D<<7 | 0x3A, - 35413 - 19968: jis0208<<14 | 0x28<<7 | 0x1D, - 35414 - 19968: jis0212<<14 | 0x3C<<7 | 0x3E, - 35415 - 19968: jis0212<<14 | 0x3C<<7 | 0x3F, - 35416 - 19968: jis0212<<14 | 0x3C<<7 | 0x40, - 35419 - 19968: jis0208<<14 | 0x4A<<7 | 0x26, - 35420 - 19968: jis0212<<14 | 0x3C<<7 | 0x41, - 35421 - 19968: jis0212<<14 | 0x3C<<7 | 0x42, - 35422 - 19968: jis0208<<14 | 0x1A<<7 | 0x4B, - 35424 - 19968: jis0208<<14 | 0x10<<7 | 0x32, - 35425 - 19968: jis0212<<14 | 0x3C<<7 | 0x43, - 35426 - 19968: jis0208<<14 | 0x4A<<7 | 0x2D, - 35427 - 19968: jis0208<<14 | 0x16<<7 | 0x37, - 35429 - 19968: jis0212<<14 | 0x3C<<7 | 0x44, - 35430 - 19968: jis0208<<14 | 0x1A<<7 | 0x4D, - 35431 - 19968: jis0212<<14 | 0x3C<<7 | 0x45, - 35433 - 19968: jis0208<<14 | 0x1A<<7 | 0x4C, - 35435 - 19968: jis0208<<14 | 0x2E<<7 | 0x2C, - 35436 - 19968: jis0208<<14 | 0x4A<<7 | 0x2C, - 35437 - 19968: jis0208<<14 | 0x4A<<7 | 0x2B, - 35438 - 19968: jis0208<<14 | 0x20<<7 | 0x06, - 35440 - 19968: jis0208<<14 | 0x14<<7 | 0x2C, - 35441 - 19968: jis0208<<14 | 0x2E<<7 | 0x22, - 35442 - 19968: jis0208<<14 | 0x12<<7 | 0x19, - 35443 - 19968: jis0208<<14 | 0x1D<<7 | 0x3B, - 35445 - 19968: jis0212<<14 | 0x3C<<7 | 0x46, - 35446 - 19968: jis0212<<14 | 0x3C<<7 | 0x47, - 35447 - 19968: jis0212<<14 | 0x3C<<7 | 0x48, - 35449 - 19968: jis0208<<14 | 0x5A<<7 | 0x48, - 35450 - 19968: jis0212<<14 | 0x3C<<7 | 0x4A, - 35451 - 19968: jis0212<<14 | 0x3C<<7 | 0x4B, - 35452 - 19968: jis0208<<14 | 0x4A<<7 | 0x2A, - 35454 - 19968: jis0212<<14 | 0x3C<<7 | 0x4C, - 35455 - 19968: jis0212<<14 | 0x3C<<7 | 0x4D, - 35456 - 19968: jis0212<<14 | 0x3C<<7 | 0x4E, - 35458 - 19968: jis0208<<14 | 0x4A<<7 | 0x2F, - 35459 - 19968: jis0212<<14 | 0x3C<<7 | 0x4F, - 35460 - 19968: jis0208<<14 | 0x4A<<7 | 0x30, - 35461 - 19968: jis0208<<14 | 0x4A<<7 | 0x2E, - 35462 - 19968: jis0212<<14 | 0x3C<<7 | 0x50, - 35463 - 19968: jis0208<<14 | 0x17<<7 | 0x37, - 35465 - 19968: jis0208<<14 | 0x2C<<7 | 0x1F, - 35467 - 19968: jis0212<<14 | 0x3C<<7 | 0x51, - 35468 - 19968: jis0208<<14 | 0x1A<<7 | 0x4E, - 35469 - 19968: jis0208<<14 | 0x26<<7 | 0x06, - 35471 - 19968: jis0212<<14 | 0x3C<<7 | 0x52, - 35472 - 19968: jis0212<<14 | 0x3C<<7 | 0x53, - 35473 - 19968: jis0208<<14 | 0x4A<<7 | 0x33, - 35474 - 19968: jis0212<<14 | 0x3C<<7 | 0x54, - 35475 - 19968: jis0208<<14 | 0x1F<<7 | 0x1F, - 35477 - 19968: jis0208<<14 | 0x22<<7 | 0x21, - 35478 - 19968: jis0212<<14 | 0x3C<<7 | 0x55, - 35479 - 19968: jis0212<<14 | 0x3C<<7 | 0x56, - 35480 - 19968: jis0208<<14 | 0x2C<<7 | 0x15, - 35481 - 19968: jis0212<<14 | 0x3C<<7 | 0x57, - 35482 - 19968: jis0208<<14 | 0x4A<<7 | 0x36, - 35486 - 19968: jis0208<<14 | 0x17<<7 | 0x4B, - 35487 - 19968: jis0212<<14 | 0x3C<<7 | 0x58, - 35488 - 19968: jis0208<<14 | 0x1F<<7 | 0x1E, - 35489 - 19968: jis0208<<14 | 0x4A<<7 | 0x32, - 35491 - 19968: jis0208<<14 | 0x4A<<7 | 0x37, - 35492 - 19968: jis0208<<14 | 0x17<<7 | 0x4C, - 35493 - 19968: jis0208<<14 | 0x4A<<7 | 0x34, - 35494 - 19968: jis0208<<14 | 0x4A<<7 | 0x35, - 35495 - 19968: jis0208<<14 | 0x5A<<7 | 0x49, - 35496 - 19968: jis0208<<14 | 0x4A<<7 | 0x31, - 35497 - 19968: jis0212<<14 | 0x3C<<7 | 0x5A, - 35500 - 19968: jis0208<<14 | 0x1F<<7 | 0x41, - 35501 - 19968: jis0208<<14 | 0x25<<7 | 0x28, - 35502 - 19968: jis0212<<14 | 0x3C<<7 | 0x5B, - 35503 - 19968: jis0212<<14 | 0x3C<<7 | 0x5C, - 35504 - 19968: jis0208<<14 | 0x22<<7 | 0x0E, - 35506 - 19968: jis0208<<14 | 0x11<<7 | 0x3C, - 35507 - 19968: jis0212<<14 | 0x3C<<7 | 0x5D, - 35510 - 19968: jis0212<<14 | 0x3D<<7 | 0x00, - 35511 - 19968: jis0212<<14 | 0x3D<<7 | 0x01, - 35513 - 19968: jis0208<<14 | 0x27<<7 | 0x4F, - 35515 - 19968: jis0212<<14 | 0x3D<<7 | 0x02, - 35516 - 19968: jis0208<<14 | 0x14<<7 | 0x22, - 35518 - 19968: jis0208<<14 | 0x5A<<7 | 0x4A, - 35519 - 19968: jis0208<<14 | 0x23<<7 | 0x13, - 35522 - 19968: jis0208<<14 | 0x4A<<7 | 0x3A, - 35523 - 19968: jis0212<<14 | 0x3D<<7 | 0x04, - 35524 - 19968: jis0208<<14 | 0x4A<<7 | 0x38, - 35526 - 19968: jis0212<<14 | 0x3D<<7 | 0x05, - 35527 - 19968: jis0208<<14 | 0x22<<7 | 0x2B, - 35528 - 19968: jis0212<<14 | 0x3D<<7 | 0x06, - 35529 - 19968: jis0212<<14 | 0x3D<<7 | 0x07, - 35530 - 19968: jis0212<<14 | 0x3D<<7 | 0x08, - 35531 - 19968: jis0208<<14 | 0x1F<<7 | 0x20, - 35532 - 19968: jis0208<<14 | 0x13<<7 | 0x31, - 35533 - 19968: jis0208<<14 | 0x4A<<7 | 0x39, - 35535 - 19968: jis0208<<14 | 0x1E<<7 | 0x3A, - 35537 - 19968: jis0212<<14 | 0x3D<<7 | 0x09, - 35538 - 19968: jis0208<<14 | 0x2D<<7 | 0x29, - 35539 - 19968: jis0212<<14 | 0x3D<<7 | 0x0A, - 35540 - 19968: jis0212<<14 | 0x3D<<7 | 0x0B, - 35541 - 19968: jis0212<<14 | 0x3D<<7 | 0x0C, - 35542 - 19968: jis0208<<14 | 0x2E<<7 | 0x1F, - 35543 - 19968: jis0212<<14 | 0x3D<<7 | 0x0D, - 35546 - 19968: jis0208<<14 | 0x4A<<7 | 0x3B, - 35547 - 19968: jis0208<<14 | 0x4A<<7 | 0x46, - 35548 - 19968: jis0208<<14 | 0x23<<7 | 0x14, - 35549 - 19968: jis0212<<14 | 0x3D<<7 | 0x0E, - 35550 - 19968: jis0208<<14 | 0x4A<<7 | 0x45, - 35551 - 19968: jis0208<<14 | 0x5A<<7 | 0x4B, - 35552 - 19968: jis0208<<14 | 0x4A<<7 | 0x42, - 35553 - 19968: jis0208<<14 | 0x4A<<7 | 0x4A, - 35554 - 19968: jis0208<<14 | 0x4A<<7 | 0x43, - 35556 - 19968: jis0208<<14 | 0x4A<<7 | 0x3F, - 35558 - 19968: jis0208<<14 | 0x23<<7 | 0x5B, - 35559 - 19968: jis0208<<14 | 0x4A<<7 | 0x3E, - 35563 - 19968: jis0208<<14 | 0x4A<<7 | 0x3C, - 35564 - 19968: jis0212<<14 | 0x3D<<7 | 0x10, - 35565 - 19968: jis0208<<14 | 0x2C<<7 | 0x00, - 35566 - 19968: jis0208<<14 | 0x1A<<7 | 0x4F, - 35568 - 19968: jis0212<<14 | 0x3D<<7 | 0x11, - 35569 - 19968: jis0208<<14 | 0x4A<<7 | 0x40, - 35571 - 19968: jis0208<<14 | 0x4A<<7 | 0x3D, - 35572 - 19968: jis0212<<14 | 0x3D<<7 | 0x12, - 35573 - 19968: jis0212<<14 | 0x3D<<7 | 0x13, - 35574 - 19968: jis0208<<14 | 0x5A<<7 | 0x4D, - 35575 - 19968: jis0208<<14 | 0x4A<<7 | 0x44, - 35576 - 19968: jis0208<<14 | 0x1C<<7 | 0x53, - 35578 - 19968: jis0208<<14 | 0x17<<7 | 0x20, - 35580 - 19968: jis0212<<14 | 0x3D<<7 | 0x15, - 35582 - 19968: jis0208<<14 | 0x21<<7 | 0x59, - 35583 - 19968: jis0212<<14 | 0x3D<<7 | 0x16, - 35584 - 19968: jis0208<<14 | 0x2A<<7 | 0x24, - 35585 - 19968: jis0208<<14 | 0x10<<7 | 0x39, - 35586 - 19968: jis0208<<14 | 0x0F<<7 | 0x41, - 35588 - 19968: jis0208<<14 | 0x25<<7 | 0x04, - 35589 - 19968: jis0212<<14 | 0x3D<<7 | 0x17, - 35590 - 19968: jis0212<<14 | 0x3D<<7 | 0x18, - 35591 - 19968: jis0208<<14 | 0x4A<<7 | 0x48, - 35594 - 19968: jis0212<<14 | 0x3D<<7 | 0x1E, - 35595 - 19968: jis0212<<14 | 0x3D<<7 | 0x19, - 35596 - 19968: jis0208<<14 | 0x4A<<7 | 0x47, - 35598 - 19968: jis0208<<14 | 0x25<<7 | 0x45, - 35600 - 19968: jis0208<<14 | 0x4A<<7 | 0x4C, - 35601 - 19968: jis0212<<14 | 0x3D<<7 | 0x1A, - 35604 - 19968: jis0208<<14 | 0x4A<<7 | 0x41, - 35606 - 19968: jis0208<<14 | 0x4A<<7 | 0x4B, - 35607 - 19968: jis0208<<14 | 0x4A<<7 | 0x4D, - 35609 - 19968: jis0208<<14 | 0x17<<7 | 0x0B, - 35610 - 19968: jis0208<<14 | 0x4A<<7 | 0x49, - 35611 - 19968: jis0208<<14 | 0x18<<7 | 0x35, - 35612 - 19968: jis0212<<14 | 0x3D<<7 | 0x1B, - 35613 - 19968: jis0208<<14 | 0x1B<<7 | 0x34, - 35614 - 19968: jis0212<<14 | 0x3D<<7 | 0x1C, - 35615 - 19968: jis0212<<14 | 0x3D<<7 | 0x1D, - 35616 - 19968: jis0208<<14 | 0x4A<<7 | 0x4E, - 35617 - 19968: jis0208<<14 | 0x2C<<7 | 0x37, - 35622 - 19968: jis0208<<14 | 0x4A<<7 | 0x51, - 35624 - 19968: jis0208<<14 | 0x4A<<7 | 0x54, - 35627 - 19968: jis0208<<14 | 0x4A<<7 | 0x52, - 35628 - 19968: jis0208<<14 | 0x28<<7 | 0x14, - 35629 - 19968: jis0212<<14 | 0x3D<<7 | 0x1F, - 35632 - 19968: jis0212<<14 | 0x3D<<7 | 0x20, - 35635 - 19968: jis0208<<14 | 0x4A<<7 | 0x4F, - 35639 - 19968: jis0212<<14 | 0x3D<<7 | 0x21, - 35641 - 19968: jis0208<<14 | 0x15<<7 | 0x3F, - 35644 - 19968: jis0212<<14 | 0x3D<<7 | 0x22, - 35646 - 19968: jis0208<<14 | 0x4A<<7 | 0x53, - 35649 - 19968: jis0208<<14 | 0x4A<<7 | 0x55, - 35650 - 19968: jis0212<<14 | 0x3D<<7 | 0x23, - 35651 - 19968: jis0212<<14 | 0x3D<<7 | 0x24, - 35652 - 19968: jis0212<<14 | 0x3D<<7 | 0x25, - 35653 - 19968: jis0212<<14 | 0x3D<<7 | 0x26, - 35654 - 19968: jis0212<<14 | 0x3D<<7 | 0x27, - 35656 - 19968: jis0212<<14 | 0x3D<<7 | 0x28, - 35657 - 19968: jis0208<<14 | 0x4A<<7 | 0x59, - 35660 - 19968: jis0208<<14 | 0x4A<<7 | 0x56, - 35661 - 19968: jis0212<<14 | 0x3D<<7 | 0x2D, - 35662 - 19968: jis0208<<14 | 0x4A<<7 | 0x58, - 35663 - 19968: jis0208<<14 | 0x4A<<7 | 0x57, - 35666 - 19968: jis0212<<14 | 0x3D<<7 | 0x29, - 35667 - 19968: jis0208<<14 | 0x5A<<7 | 0x4E, - 35668 - 19968: jis0212<<14 | 0x3D<<7 | 0x2B, - 35670 - 19968: jis0208<<14 | 0x4A<<7 | 0x5A, - 35672 - 19968: jis0208<<14 | 0x1B<<7 | 0x10, - 35673 - 19968: jis0212<<14 | 0x3D<<7 | 0x2C, - 35674 - 19968: jis0208<<14 | 0x4A<<7 | 0x5C, - 35675 - 19968: jis0208<<14 | 0x4A<<7 | 0x5B, - 35676 - 19968: jis0208<<14 | 0x28<<7 | 0x47, - 35678 - 19968: jis0212<<14 | 0x3D<<7 | 0x2E, - 35679 - 19968: jis0208<<14 | 0x4B<<7 | 0x00, - 35683 - 19968: jis0212<<14 | 0x3D<<7 | 0x2F, - 35686 - 19968: jis0208<<14 | 0x16<<7 | 0x38, - 35691 - 19968: jis0208<<14 | 0x4A<<7 | 0x5D, - 35692 - 19968: jis0208<<14 | 0x4B<<7 | 0x01, - 35693 - 19968: jis0212<<14 | 0x3D<<7 | 0x30, - 35695 - 19968: jis0208<<14 | 0x4B<<7 | 0x02, - 35696 - 19968: jis0208<<14 | 0x14<<7 | 0x23, - 35697 - 19968: jis0208<<14 | 0x45<<7 | 0x20, - 35698 - 19968: jis0208<<14 | 0x1D<<7 | 0x58, - 35700 - 19968: jis0208<<14 | 0x4B<<7 | 0x03, - 35702 - 19968: jis0212<<14 | 0x3D<<7 | 0x31, - 35703 - 19968: jis0208<<14 | 0x17<<7 | 0x4D, - 35704 - 19968: jis0212<<14 | 0x3D<<7 | 0x32, - 35705 - 19968: jis0212<<14 | 0x3D<<7 | 0x33, - 35708 - 19968: jis0212<<14 | 0x3D<<7 | 0x34, - 35709 - 19968: jis0208<<14 | 0x4B<<7 | 0x04, - 35710 - 19968: jis0212<<14 | 0x3D<<7 | 0x35, - 35711 - 19968: jis0208<<14 | 0x5A<<7 | 0x4F, - 35712 - 19968: jis0208<<14 | 0x4B<<7 | 0x05, - 35713 - 19968: jis0212<<14 | 0x3D<<7 | 0x36, - 35715 - 19968: jis0208<<14 | 0x1A<<7 | 0x1D, - 35716 - 19968: jis0212<<14 | 0x3D<<7 | 0x37, - 35717 - 19968: jis0212<<14 | 0x3D<<7 | 0x38, - 35722 - 19968: jis0208<<14 | 0x39<<7 | 0x2D, - 35723 - 19968: jis0212<<14 | 0x3D<<7 | 0x39, - 35724 - 19968: jis0208<<14 | 0x4B<<7 | 0x06, - 35725 - 19968: jis0212<<14 | 0x3D<<7 | 0x3A, - 35726 - 19968: jis0208<<14 | 0x4B<<7 | 0x07, - 35727 - 19968: jis0212<<14 | 0x3D<<7 | 0x3B, - 35728 - 19968: jis0208<<14 | 0x1C<<7 | 0x11, - 35730 - 19968: jis0208<<14 | 0x4B<<7 | 0x08, - 35731 - 19968: jis0208<<14 | 0x4B<<7 | 0x09, - 35732 - 19968: jis0212<<14 | 0x3D<<7 | 0x3C, - 35733 - 19968: jis0212<<14 | 0x3D<<7 | 0x3D, - 35734 - 19968: jis0208<<14 | 0x4B<<7 | 0x0A, - 35737 - 19968: jis0208<<14 | 0x4B<<7 | 0x0B, - 35738 - 19968: jis0208<<14 | 0x4B<<7 | 0x0C, - 35740 - 19968: jis0212<<14 | 0x3D<<7 | 0x3E, - 35742 - 19968: jis0212<<14 | 0x3D<<7 | 0x3F, - 35743 - 19968: jis0212<<14 | 0x3D<<7 | 0x40, - 35895 - 19968: jis0208<<14 | 0x22<<7 | 0x0A, - 35896 - 19968: jis0212<<14 | 0x3D<<7 | 0x41, - 35897 - 19968: jis0212<<14 | 0x3D<<7 | 0x42, - 35898 - 19968: jis0208<<14 | 0x4B<<7 | 0x0D, - 35901 - 19968: jis0212<<14 | 0x3D<<7 | 0x43, - 35902 - 19968: jis0212<<14 | 0x3D<<7 | 0x44, - 35903 - 19968: jis0208<<14 | 0x4B<<7 | 0x0F, - 35905 - 19968: jis0208<<14 | 0x4B<<7 | 0x0E, - 35909 - 19968: jis0212<<14 | 0x3D<<7 | 0x45, - 35910 - 19968: jis0208<<14 | 0x25<<7 | 0x05, - 35911 - 19968: jis0212<<14 | 0x3D<<7 | 0x46, - 35912 - 19968: jis0208<<14 | 0x4B<<7 | 0x10, - 35913 - 19968: jis0212<<14 | 0x3D<<7 | 0x47, - 35914 - 19968: jis0208<<14 | 0x2A<<7 | 0x0C, - 35915 - 19968: jis0212<<14 | 0x3D<<7 | 0x48, - 35916 - 19968: jis0208<<14 | 0x4B<<7 | 0x11, - 35918 - 19968: jis0208<<14 | 0x4B<<7 | 0x12, - 35919 - 19968: jis0212<<14 | 0x3D<<7 | 0x49, - 35920 - 19968: jis0208<<14 | 0x4B<<7 | 0x13, - 35921 - 19968: jis0212<<14 | 0x3D<<7 | 0x4A, - 35923 - 19968: jis0212<<14 | 0x3D<<7 | 0x4B, - 35924 - 19968: jis0212<<14 | 0x3D<<7 | 0x4C, - 35925 - 19968: jis0208<<14 | 0x4B<<7 | 0x14, - 35927 - 19968: jis0212<<14 | 0x3D<<7 | 0x4D, - 35928 - 19968: jis0212<<14 | 0x3D<<7 | 0x4E, - 35929 - 19968: jis0212<<14 | 0x3D<<7 | 0x51, - 35930 - 19968: jis0208<<14 | 0x25<<7 | 0x39, - 35931 - 19968: jis0212<<14 | 0x3D<<7 | 0x4F, - 35933 - 19968: jis0212<<14 | 0x3D<<7 | 0x50, - 35937 - 19968: jis0208<<14 | 0x1D<<7 | 0x3C, - 35938 - 19968: jis0208<<14 | 0x4B<<7 | 0x15, - 35939 - 19968: jis0212<<14 | 0x3D<<7 | 0x52, - 35940 - 19968: jis0212<<14 | 0x3D<<7 | 0x53, - 35942 - 19968: jis0212<<14 | 0x3D<<7 | 0x54, - 35944 - 19968: jis0212<<14 | 0x3D<<7 | 0x55, - 35945 - 19968: jis0212<<14 | 0x3D<<7 | 0x56, - 35946 - 19968: jis0208<<14 | 0x18<<7 | 0x4A, - 35947 - 19968: jis0208<<14 | 0x2F<<7 | 0x0D, - 35948 - 19968: jis0208<<14 | 0x4B<<7 | 0x16, - 35949 - 19968: jis0212<<14 | 0x3D<<7 | 0x57, - 35955 - 19968: jis0212<<14 | 0x3D<<7 | 0x58, - 35957 - 19968: jis0212<<14 | 0x3D<<7 | 0x59, - 35958 - 19968: jis0212<<14 | 0x3D<<7 | 0x5A, - 35960 - 19968: jis0208<<14 | 0x4B<<7 | 0x17, - 35961 - 19968: jis0208<<14 | 0x28<<7 | 0x1E, - 35962 - 19968: jis0208<<14 | 0x4B<<7 | 0x18, - 35963 - 19968: jis0212<<14 | 0x3D<<7 | 0x5B, - 35964 - 19968: jis0208<<14 | 0x4B<<7 | 0x20, - 35966 - 19968: jis0212<<14 | 0x3D<<7 | 0x5C, - 35970 - 19968: jis0208<<14 | 0x4B<<7 | 0x19, - 35973 - 19968: jis0208<<14 | 0x4B<<7 | 0x1B, - 35974 - 19968: jis0212<<14 | 0x3D<<7 | 0x5D, - 35975 - 19968: jis0212<<14 | 0x3E<<7 | 0x00, - 35977 - 19968: jis0208<<14 | 0x4B<<7 | 0x1A, - 35978 - 19968: jis0208<<14 | 0x4B<<7 | 0x1C, - 35979 - 19968: jis0212<<14 | 0x3E<<7 | 0x01, - 35980 - 19968: jis0208<<14 | 0x2A<<7 | 0x25, - 35981 - 19968: jis0208<<14 | 0x4B<<7 | 0x1D, - 35982 - 19968: jis0208<<14 | 0x4B<<7 | 0x1E, - 35984 - 19968: jis0212<<14 | 0x3E<<7 | 0x02, - 35986 - 19968: jis0212<<14 | 0x3E<<7 | 0x03, - 35987 - 19968: jis0212<<14 | 0x3E<<7 | 0x04, - 35988 - 19968: jis0208<<14 | 0x4B<<7 | 0x1F, - 35992 - 19968: jis0208<<14 | 0x4B<<7 | 0x21, - 35993 - 19968: jis0212<<14 | 0x3E<<7 | 0x05, - 35995 - 19968: jis0212<<14 | 0x3E<<7 | 0x06, - 35996 - 19968: jis0212<<14 | 0x3E<<7 | 0x07, - 35997 - 19968: jis0208<<14 | 0x12<<7 | 0x0C, - 35998 - 19968: jis0208<<14 | 0x23<<7 | 0x46, - 36000 - 19968: jis0208<<14 | 0x28<<7 | 0x48, - 36001 - 19968: jis0208<<14 | 0x19<<7 | 0x41, - 36002 - 19968: jis0208<<14 | 0x18<<7 | 0x36, - 36004 - 19968: jis0212<<14 | 0x3E<<7 | 0x08, - 36007 - 19968: jis0208<<14 | 0x28<<7 | 0x2E, - 36008 - 19968: jis0208<<14 | 0x11<<7 | 0x3E, - 36009 - 19968: jis0208<<14 | 0x27<<7 | 0x2D, - 36010 - 19968: jis0208<<14 | 0x4B<<7 | 0x24, - 36011 - 19968: jis0208<<14 | 0x13<<7 | 0x32, - 36012 - 19968: jis0208<<14 | 0x1F<<7 | 0x34, - 36013 - 19968: jis0208<<14 | 0x4B<<7 | 0x23, - 36014 - 19968: jis0208<<14 | 0x4B<<7 | 0x28, - 36015 - 19968: jis0208<<14 | 0x22<<7 | 0x58, - 36016 - 19968: jis0208<<14 | 0x2B<<7 | 0x42, - 36018 - 19968: jis0208<<14 | 0x4B<<7 | 0x26, - 36019 - 19968: jis0208<<14 | 0x4B<<7 | 0x27, - 36020 - 19968: jis0208<<14 | 0x14<<7 | 0x0D, - 36022 - 19968: jis0208<<14 | 0x4B<<7 | 0x29, - 36023 - 19968: jis0208<<14 | 0x26<<7 | 0x42, - 36024 - 19968: jis0208<<14 | 0x21<<7 | 0x3E, - 36025 - 19968: jis0212<<14 | 0x3E<<7 | 0x09, - 36026 - 19968: jis0212<<14 | 0x3E<<7 | 0x0A, - 36027 - 19968: jis0208<<14 | 0x27<<7 | 0x50, - 36028 - 19968: jis0208<<14 | 0x24<<7 | 0x1C, - 36029 - 19968: jis0208<<14 | 0x4B<<7 | 0x25, - 36031 - 19968: jis0208<<14 | 0x2A<<7 | 0x26, - 36032 - 19968: jis0208<<14 | 0x11<<7 | 0x4B, - 36033 - 19968: jis0208<<14 | 0x4B<<7 | 0x2B, - 36034 - 19968: jis0208<<14 | 0x2E<<7 | 0x07, - 36035 - 19968: jis0208<<14 | 0x23<<7 | 0x21, - 36036 - 19968: jis0208<<14 | 0x2E<<7 | 0x24, - 36037 - 19968: jis0212<<14 | 0x3E<<7 | 0x0B, - 36038 - 19968: jis0212<<14 | 0x3E<<7 | 0x0C, - 36039 - 19968: jis0208<<14 | 0x1A<<7 | 0x50, - 36040 - 19968: jis0208<<14 | 0x4B<<7 | 0x2A, - 36041 - 19968: jis0212<<14 | 0x3E<<7 | 0x0D, - 36042 - 19968: jis0208<<14 | 0x21<<7 | 0x10, - 36043 - 19968: jis0212<<14 | 0x3E<<7 | 0x0E, - 36045 - 19968: jis0208<<14 | 0x4B<<7 | 0x3B, - 36046 - 19968: jis0208<<14 | 0x20<<7 | 0x07, - 36047 - 19968: jis0212<<14 | 0x3E<<7 | 0x0F, - 36049 - 19968: jis0208<<14 | 0x25<<7 | 0x57, - 36051 - 19968: jis0208<<14 | 0x28<<7 | 0x2F, - 36053 - 19968: jis0212<<14 | 0x3E<<7 | 0x11, - 36054 - 19968: jis0212<<14 | 0x3E<<7 | 0x10, - 36057 - 19968: jis0212<<14 | 0x3E<<7 | 0x12, - 36058 - 19968: jis0208<<14 | 0x4B<<7 | 0x2E, - 36059 - 19968: jis0208<<14 | 0x1A<<7 | 0x1E, - 36060 - 19968: jis0208<<14 | 0x1A<<7 | 0x51, - 36061 - 19968: jis0212<<14 | 0x3E<<7 | 0x13, - 36062 - 19968: jis0208<<14 | 0x1D<<7 | 0x3D, - 36064 - 19968: jis0208<<14 | 0x26<<7 | 0x44, - 36065 - 19968: jis0212<<14 | 0x3E<<7 | 0x14, - 36066 - 19968: jis0208<<14 | 0x17<<7 | 0x0C, - 36067 - 19968: jis0208<<14 | 0x4B<<7 | 0x2D, - 36068 - 19968: jis0208<<14 | 0x4B<<7 | 0x2C, - 36070 - 19968: jis0208<<14 | 0x28<<7 | 0x49, - 36072 - 19968: jis0212<<14 | 0x3E<<7 | 0x15, - 36074 - 19968: jis0208<<14 | 0x1B<<7 | 0x20, - 36076 - 19968: jis0212<<14 | 0x3E<<7 | 0x16, - 36077 - 19968: jis0208<<14 | 0x24<<7 | 0x31, - 36079 - 19968: jis0212<<14 | 0x3E<<7 | 0x17, - 36080 - 19968: jis0208<<14 | 0x5A<<7 | 0x50, - 36082 - 19968: jis0212<<14 | 0x3E<<7 | 0x19, - 36084 - 19968: jis0208<<14 | 0x5A<<7 | 0x51, - 36085 - 19968: jis0212<<14 | 0x3E<<7 | 0x1A, - 36087 - 19968: jis0212<<14 | 0x3E<<7 | 0x1B, - 36088 - 19968: jis0212<<14 | 0x3E<<7 | 0x1C, - 36090 - 19968: jis0208<<14 | 0x4B<<7 | 0x30, - 36091 - 19968: jis0208<<14 | 0x4B<<7 | 0x31, - 36092 - 19968: jis0208<<14 | 0x18<<7 | 0x37, - 36093 - 19968: jis0208<<14 | 0x4B<<7 | 0x2F, - 36094 - 19968: jis0212<<14 | 0x3E<<7 | 0x1D, - 36095 - 19968: jis0212<<14 | 0x3E<<7 | 0x1E, - 36097 - 19968: jis0212<<14 | 0x3E<<7 | 0x1F, - 36099 - 19968: jis0212<<14 | 0x3E<<7 | 0x20, - 36100 - 19968: jis0208<<14 | 0x4B<<7 | 0x32, - 36101 - 19968: jis0208<<14 | 0x4B<<7 | 0x33, - 36103 - 19968: jis0208<<14 | 0x4B<<7 | 0x35, - 36104 - 19968: jis0208<<14 | 0x21<<7 | 0x02, - 36105 - 19968: jis0212<<14 | 0x3E<<7 | 0x21, - 36106 - 19968: jis0208<<14 | 0x4B<<7 | 0x34, - 36107 - 19968: jis0208<<14 | 0x13<<7 | 0x45, - 36109 - 19968: jis0208<<14 | 0x4B<<7 | 0x37, - 36111 - 19968: jis0208<<14 | 0x4B<<7 | 0x36, - 36112 - 19968: jis0208<<14 | 0x4B<<7 | 0x38, - 36114 - 19968: jis0208<<14 | 0x5A<<7 | 0x52, - 36115 - 19968: jis0208<<14 | 0x4B<<7 | 0x3A, - 36116 - 19968: jis0208<<14 | 0x4B<<7 | 0x3C, - 36118 - 19968: jis0208<<14 | 0x4B<<7 | 0x3D, - 36119 - 19968: jis0212<<14 | 0x3E<<7 | 0x23, - 36123 - 19968: jis0212<<14 | 0x3E<<7 | 0x24, - 36196 - 19968: jis0208<<14 | 0x1F<<7 | 0x35, - 36197 - 19968: jis0212<<14 | 0x3E<<7 | 0x25, - 36198 - 19968: jis0208<<14 | 0x1B<<7 | 0x2E, - 36199 - 19968: jis0208<<14 | 0x4B<<7 | 0x3E, - 36201 - 19968: jis0212<<14 | 0x3E<<7 | 0x26, - 36203 - 19968: jis0208<<14 | 0x12<<7 | 0x31, - 36204 - 19968: jis0212<<14 | 0x3E<<7 | 0x27, - 36205 - 19968: jis0208<<14 | 0x4B<<7 | 0x3F, - 36206 - 19968: jis0212<<14 | 0x3E<<7 | 0x28, - 36208 - 19968: jis0208<<14 | 0x20<<7 | 0x55, - 36209 - 19968: jis0208<<14 | 0x4B<<7 | 0x40, - 36211 - 19968: jis0208<<14 | 0x4B<<7 | 0x41, - 36212 - 19968: jis0208<<14 | 0x28<<7 | 0x4A, - 36214 - 19968: jis0208<<14 | 0x5A<<7 | 0x53, - 36215 - 19968: jis0208<<14 | 0x14<<7 | 0x0E, - 36223 - 19968: jis0212<<14 | 0x3E<<7 | 0x29, - 36225 - 19968: jis0208<<14 | 0x4B<<7 | 0x42, - 36226 - 19968: jis0212<<14 | 0x3E<<7 | 0x2A, - 36228 - 19968: jis0212<<14 | 0x3E<<7 | 0x2B, - 36229 - 19968: jis0208<<14 | 0x23<<7 | 0x15, - 36232 - 19968: jis0212<<14 | 0x3E<<7 | 0x2C, - 36234 - 19968: jis0208<<14 | 0x10<<7 | 0x3A, - 36237 - 19968: jis0212<<14 | 0x3E<<7 | 0x2D, - 36240 - 19968: jis0212<<14 | 0x3E<<7 | 0x2E, - 36241 - 19968: jis0212<<14 | 0x3E<<7 | 0x2F, - 36245 - 19968: jis0212<<14 | 0x3E<<7 | 0x30, - 36249 - 19968: jis0208<<14 | 0x4B<<7 | 0x43, - 36254 - 19968: jis0212<<14 | 0x3E<<7 | 0x31, - 36255 - 19968: jis0212<<14 | 0x3E<<7 | 0x32, - 36256 - 19968: jis0212<<14 | 0x3E<<7 | 0x33, - 36259 - 19968: jis0208<<14 | 0x1B<<7 | 0x50, - 36262 - 19968: jis0212<<14 | 0x3E<<7 | 0x34, - 36264 - 19968: jis0208<<14 | 0x1E<<7 | 0x55, - 36267 - 19968: jis0212<<14 | 0x3E<<7 | 0x35, - 36268 - 19968: jis0212<<14 | 0x3E<<7 | 0x36, - 36271 - 19968: jis0212<<14 | 0x3E<<7 | 0x37, - 36274 - 19968: jis0212<<14 | 0x3E<<7 | 0x38, - 36275 - 19968: jis0208<<14 | 0x21<<7 | 0x0C, - 36277 - 19968: jis0212<<14 | 0x3E<<7 | 0x39, - 36279 - 19968: jis0212<<14 | 0x3E<<7 | 0x3A, - 36281 - 19968: jis0212<<14 | 0x3E<<7 | 0x3B, - 36282 - 19968: jis0208<<14 | 0x4B<<7 | 0x46, - 36283 - 19968: jis0212<<14 | 0x3E<<7 | 0x3C, - 36284 - 19968: jis0212<<14 | 0x3E<<7 | 0x4E, - 36286 - 19968: jis0208<<14 | 0x4B<<7 | 0x45, - 36288 - 19968: jis0212<<14 | 0x3E<<7 | 0x3D, - 36290 - 19968: jis0208<<14 | 0x4B<<7 | 0x44, - 36293 - 19968: jis0212<<14 | 0x3E<<7 | 0x3E, - 36294 - 19968: jis0212<<14 | 0x3E<<7 | 0x3F, - 36295 - 19968: jis0212<<14 | 0x3E<<7 | 0x40, - 36296 - 19968: jis0212<<14 | 0x3E<<7 | 0x41, - 36298 - 19968: jis0212<<14 | 0x3E<<7 | 0x42, - 36299 - 19968: jis0208<<14 | 0x4B<<7 | 0x4C, - 36300 - 19968: jis0208<<14 | 0x4B<<7 | 0x4A, - 36302 - 19968: jis0212<<14 | 0x3E<<7 | 0x43, - 36303 - 19968: jis0208<<14 | 0x4B<<7 | 0x47, - 36305 - 19968: jis0212<<14 | 0x3E<<7 | 0x44, - 36308 - 19968: jis0212<<14 | 0x3E<<7 | 0x45, - 36309 - 19968: jis0212<<14 | 0x3E<<7 | 0x46, - 36310 - 19968: jis0208<<14 | 0x4B<<7 | 0x49, - 36311 - 19968: jis0212<<14 | 0x3E<<7 | 0x47, - 36313 - 19968: jis0212<<14 | 0x3E<<7 | 0x48, - 36314 - 19968: jis0208<<14 | 0x4B<<7 | 0x48, - 36315 - 19968: jis0208<<14 | 0x4B<<7 | 0x4B, - 36317 - 19968: jis0208<<14 | 0x14<<7 | 0x56, - 36319 - 19968: jis0208<<14 | 0x4B<<7 | 0x4F, - 36321 - 19968: jis0208<<14 | 0x1F<<7 | 0x36, - 36323 - 19968: jis0208<<14 | 0x4B<<7 | 0x50, - 36324 - 19968: jis0212<<14 | 0x3E<<7 | 0x49, - 36325 - 19968: jis0212<<14 | 0x3E<<7 | 0x4A, - 36327 - 19968: jis0212<<14 | 0x3E<<7 | 0x4B, - 36328 - 19968: jis0208<<14 | 0x17<<7 | 0x38, - 36330 - 19968: jis0208<<14 | 0x4B<<7 | 0x4D, - 36331 - 19968: jis0208<<14 | 0x4B<<7 | 0x4E, - 36332 - 19968: jis0212<<14 | 0x3E<<7 | 0x4C, - 36335 - 19968: jis0208<<14 | 0x2E<<7 | 0x08, - 36336 - 19968: jis0212<<14 | 0x3E<<7 | 0x4D, - 36337 - 19968: jis0212<<14 | 0x3E<<7 | 0x4F, - 36338 - 19968: jis0212<<14 | 0x3E<<7 | 0x50, - 36339 - 19968: jis0208<<14 | 0x23<<7 | 0x16, - 36340 - 19968: jis0212<<14 | 0x3E<<7 | 0x51, - 36341 - 19968: jis0208<<14 | 0x20<<7 | 0x08, - 36348 - 19968: jis0208<<14 | 0x4B<<7 | 0x51, - 36349 - 19968: jis0212<<14 | 0x3E<<7 | 0x52, - 36351 - 19968: jis0208<<14 | 0x4B<<7 | 0x54, - 36353 - 19968: jis0212<<14 | 0x3E<<7 | 0x53, - 36356 - 19968: jis0212<<14 | 0x3E<<7 | 0x54, - 36357 - 19968: jis0212<<14 | 0x3E<<7 | 0x55, - 36358 - 19968: jis0212<<14 | 0x3E<<7 | 0x56, - 36360 - 19968: jis0208<<14 | 0x4B<<7 | 0x52, - 36361 - 19968: jis0208<<14 | 0x4B<<7 | 0x53, - 36362 - 19968: jis0208<<14 | 0x2C<<7 | 0x38, - 36363 - 19968: jis0212<<14 | 0x3E<<7 | 0x57, - 36367 - 19968: jis0208<<14 | 0x25<<7 | 0x06, - 36368 - 19968: jis0208<<14 | 0x4B<<7 | 0x57, - 36369 - 19968: jis0212<<14 | 0x3E<<7 | 0x58, - 36372 - 19968: jis0212<<14 | 0x3E<<7 | 0x59, - 36374 - 19968: jis0212<<14 | 0x3E<<7 | 0x5A, - 36381 - 19968: jis0208<<14 | 0x4B<<7 | 0x55, - 36382 - 19968: jis0208<<14 | 0x4B<<7 | 0x56, - 36383 - 19968: jis0208<<14 | 0x4B<<7 | 0x58, - 36384 - 19968: jis0212<<14 | 0x3E<<7 | 0x5B, - 36385 - 19968: jis0212<<14 | 0x3E<<7 | 0x5C, - 36386 - 19968: jis0212<<14 | 0x3E<<7 | 0x5D, - 36387 - 19968: jis0212<<14 | 0x3F<<7 | 0x00, - 36390 - 19968: jis0212<<14 | 0x3F<<7 | 0x01, - 36391 - 19968: jis0212<<14 | 0x3F<<7 | 0x02, - 36394 - 19968: jis0208<<14 | 0x4C<<7 | 0x08, - 36400 - 19968: jis0208<<14 | 0x4B<<7 | 0x5B, - 36401 - 19968: jis0212<<14 | 0x3F<<7 | 0x03, - 36403 - 19968: jis0212<<14 | 0x3F<<7 | 0x04, - 36404 - 19968: jis0208<<14 | 0x4B<<7 | 0x5C, - 36405 - 19968: jis0208<<14 | 0x4B<<7 | 0x5A, - 36406 - 19968: jis0212<<14 | 0x3F<<7 | 0x05, - 36407 - 19968: jis0212<<14 | 0x3F<<7 | 0x06, - 36408 - 19968: jis0212<<14 | 0x3F<<7 | 0x07, - 36409 - 19968: jis0212<<14 | 0x3F<<7 | 0x08, - 36413 - 19968: jis0212<<14 | 0x3F<<7 | 0x09, - 36416 - 19968: jis0212<<14 | 0x3F<<7 | 0x0A, - 36417 - 19968: jis0212<<14 | 0x3F<<7 | 0x0B, - 36418 - 19968: jis0208<<14 | 0x4B<<7 | 0x59, - 36420 - 19968: jis0208<<14 | 0x23<<7 | 0x5C, - 36423 - 19968: jis0208<<14 | 0x4C<<7 | 0x00, - 36424 - 19968: jis0208<<14 | 0x4C<<7 | 0x04, - 36425 - 19968: jis0208<<14 | 0x4C<<7 | 0x01, - 36426 - 19968: jis0208<<14 | 0x4B<<7 | 0x5D, - 36427 - 19968: jis0212<<14 | 0x3F<<7 | 0x0C, - 36428 - 19968: jis0208<<14 | 0x4C<<7 | 0x02, - 36429 - 19968: jis0212<<14 | 0x3F<<7 | 0x0D, - 36430 - 19968: jis0212<<14 | 0x3F<<7 | 0x0E, - 36431 - 19968: jis0212<<14 | 0x3F<<7 | 0x0F, - 36432 - 19968: jis0208<<14 | 0x4C<<7 | 0x03, - 36436 - 19968: jis0212<<14 | 0x3F<<7 | 0x10, - 36437 - 19968: jis0208<<14 | 0x4C<<7 | 0x0A, - 36441 - 19968: jis0208<<14 | 0x4C<<7 | 0x05, - 36443 - 19968: jis0212<<14 | 0x3F<<7 | 0x11, - 36444 - 19968: jis0212<<14 | 0x3F<<7 | 0x12, - 36445 - 19968: jis0212<<14 | 0x3F<<7 | 0x13, - 36446 - 19968: jis0212<<14 | 0x3F<<7 | 0x14, - 36447 - 19968: jis0208<<14 | 0x1F<<7 | 0x37, - 36448 - 19968: jis0208<<14 | 0x4C<<7 | 0x07, - 36449 - 19968: jis0212<<14 | 0x3F<<7 | 0x15, - 36450 - 19968: jis0212<<14 | 0x3F<<7 | 0x16, - 36451 - 19968: jis0208<<14 | 0x4C<<7 | 0x09, - 36452 - 19968: jis0208<<14 | 0x4C<<7 | 0x06, - 36457 - 19968: jis0212<<14 | 0x3F<<7 | 0x17, - 36460 - 19968: jis0212<<14 | 0x3F<<7 | 0x18, - 36461 - 19968: jis0212<<14 | 0x3F<<7 | 0x19, - 36463 - 19968: jis0212<<14 | 0x3F<<7 | 0x1A, - 36464 - 19968: jis0212<<14 | 0x3F<<7 | 0x1B, - 36465 - 19968: jis0212<<14 | 0x3F<<7 | 0x1C, - 36466 - 19968: jis0208<<14 | 0x4C<<7 | 0x0C, - 36468 - 19968: jis0208<<14 | 0x1C<<7 | 0x12, - 36470 - 19968: jis0208<<14 | 0x4C<<7 | 0x0B, - 36473 - 19968: jis0212<<14 | 0x3F<<7 | 0x1D, - 36474 - 19968: jis0212<<14 | 0x3F<<7 | 0x1E, - 36475 - 19968: jis0212<<14 | 0x3F<<7 | 0x1F, - 36476 - 19968: jis0208<<14 | 0x4C<<7 | 0x0D, - 36481 - 19968: jis0208<<14 | 0x4C<<7 | 0x0E, - 36482 - 19968: jis0212<<14 | 0x3F<<7 | 0x20, - 36483 - 19968: jis0212<<14 | 0x3F<<7 | 0x21, - 36484 - 19968: jis0208<<14 | 0x4C<<7 | 0x11, - 36485 - 19968: jis0208<<14 | 0x4C<<7 | 0x10, - 36487 - 19968: jis0208<<14 | 0x4C<<7 | 0x0F, - 36489 - 19968: jis0212<<14 | 0x3F<<7 | 0x22, - 36490 - 19968: jis0208<<14 | 0x4C<<7 | 0x13, - 36491 - 19968: jis0208<<14 | 0x4C<<7 | 0x12, - 36493 - 19968: jis0208<<14 | 0x2B<<7 | 0x55, - 36496 - 19968: jis0212<<14 | 0x3F<<7 | 0x23, - 36497 - 19968: jis0208<<14 | 0x4C<<7 | 0x15, - 36498 - 19968: jis0212<<14 | 0x3F<<7 | 0x24, - 36499 - 19968: jis0208<<14 | 0x4C<<7 | 0x14, - 36500 - 19968: jis0208<<14 | 0x4C<<7 | 0x16, - 36501 - 19968: jis0212<<14 | 0x3F<<7 | 0x25, - 36505 - 19968: jis0208<<14 | 0x4C<<7 | 0x17, - 36506 - 19968: jis0212<<14 | 0x3F<<7 | 0x26, - 36507 - 19968: jis0212<<14 | 0x3F<<7 | 0x27, - 36509 - 19968: jis0212<<14 | 0x3F<<7 | 0x28, - 36510 - 19968: jis0212<<14 | 0x3F<<7 | 0x29, - 36513 - 19968: jis0208<<14 | 0x4C<<7 | 0x19, - 36514 - 19968: jis0212<<14 | 0x3F<<7 | 0x2A, - 36519 - 19968: jis0212<<14 | 0x3F<<7 | 0x2B, - 36521 - 19968: jis0212<<14 | 0x3F<<7 | 0x2C, - 36522 - 19968: jis0208<<14 | 0x4C<<7 | 0x18, - 36523 - 19968: jis0208<<14 | 0x1E<<7 | 0x27, - 36524 - 19968: jis0208<<14 | 0x4C<<7 | 0x1A, - 36525 - 19968: jis0212<<14 | 0x3F<<7 | 0x2D, - 36526 - 19968: jis0212<<14 | 0x3F<<7 | 0x2E, - 36527 - 19968: jis0208<<14 | 0x15<<7 | 0x4C, - 36528 - 19968: jis0208<<14 | 0x4C<<7 | 0x1B, - 36529 - 19968: jis0208<<14 | 0x4C<<7 | 0x1D, - 36531 - 19968: jis0212<<14 | 0x3F<<7 | 0x2F, - 36533 - 19968: jis0212<<14 | 0x3F<<7 | 0x30, - 36538 - 19968: jis0212<<14 | 0x3F<<7 | 0x31, - 36539 - 19968: jis0212<<14 | 0x3F<<7 | 0x32, - 36542 - 19968: jis0208<<14 | 0x4C<<7 | 0x1E, - 36544 - 19968: jis0212<<14 | 0x3F<<7 | 0x33, - 36545 - 19968: jis0212<<14 | 0x3F<<7 | 0x34, - 36547 - 19968: jis0212<<14 | 0x3F<<7 | 0x35, - 36548 - 19968: jis0212<<14 | 0x3F<<7 | 0x36, - 36549 - 19968: jis0208<<14 | 0x4C<<7 | 0x1F, - 36550 - 19968: jis0208<<14 | 0x4C<<7 | 0x1C, - 36551 - 19968: jis0212<<14 | 0x3F<<7 | 0x37, - 36552 - 19968: jis0208<<14 | 0x4C<<7 | 0x20, - 36554 - 19968: jis0208<<14 | 0x1B<<7 | 0x35, - 36555 - 19968: jis0208<<14 | 0x4C<<7 | 0x21, - 36556 - 19968: jis0208<<14 | 0x14<<7 | 0x0F, - 36557 - 19968: jis0208<<14 | 0x16<<7 | 0x12, - 36559 - 19968: jis0208<<14 | 0x5A<<7 | 0x55, - 36561 - 19968: jis0212<<14 | 0x3F<<7 | 0x39, - 36562 - 19968: jis0208<<14 | 0x17<<7 | 0x0D, - 36564 - 19968: jis0212<<14 | 0x3F<<7 | 0x3A, - 36571 - 19968: jis0208<<14 | 0x4C<<7 | 0x22, - 36572 - 19968: jis0212<<14 | 0x3F<<7 | 0x3B, - 36575 - 19968: jis0208<<14 | 0x25<<7 | 0x4F, - 36578 - 19968: jis0208<<14 | 0x24<<7 | 0x1D, - 36579 - 19968: jis0208<<14 | 0x4C<<7 | 0x23, - 36584 - 19968: jis0212<<14 | 0x3F<<7 | 0x3C, - 36587 - 19968: jis0208<<14 | 0x4C<<7 | 0x26, - 36589 - 19968: jis0212<<14 | 0x3F<<7 | 0x43, - 36590 - 19968: jis0212<<14 | 0x3F<<7 | 0x3D, - 36592 - 19968: jis0212<<14 | 0x3F<<7 | 0x3E, - 36593 - 19968: jis0212<<14 | 0x3F<<7 | 0x3F, - 36599 - 19968: jis0212<<14 | 0x3F<<7 | 0x40, - 36600 - 19968: jis0208<<14 | 0x1B<<7 | 0x13, - 36601 - 19968: jis0212<<14 | 0x3F<<7 | 0x41, - 36602 - 19968: jis0212<<14 | 0x3F<<7 | 0x42, - 36603 - 19968: jis0208<<14 | 0x4C<<7 | 0x25, - 36604 - 19968: jis0208<<14 | 0x4C<<7 | 0x24, - 36605 - 19968: jis0208<<14 | 0x16<<7 | 0x39, - 36606 - 19968: jis0208<<14 | 0x4C<<7 | 0x27, - 36608 - 19968: jis0212<<14 | 0x3F<<7 | 0x44, - 36610 - 19968: jis0212<<14 | 0x3F<<7 | 0x45, - 36611 - 19968: jis0208<<14 | 0x12<<7 | 0x32, - 36613 - 19968: jis0208<<14 | 0x4C<<7 | 0x29, - 36615 - 19968: jis0212<<14 | 0x3F<<7 | 0x46, - 36616 - 19968: jis0212<<14 | 0x3F<<7 | 0x47, - 36617 - 19968: jis0208<<14 | 0x19<<7 | 0x3B, - 36618 - 19968: jis0208<<14 | 0x4C<<7 | 0x28, - 36620 - 19968: jis0208<<14 | 0x4C<<7 | 0x31, - 36623 - 19968: jis0212<<14 | 0x3F<<7 | 0x48, - 36624 - 19968: jis0212<<14 | 0x3F<<7 | 0x49, - 36626 - 19968: jis0208<<14 | 0x4C<<7 | 0x2B, - 36627 - 19968: jis0208<<14 | 0x4C<<7 | 0x2D, - 36628 - 19968: jis0208<<14 | 0x29<<7 | 0x44, - 36629 - 19968: jis0208<<14 | 0x4C<<7 | 0x2A, - 36630 - 19968: jis0212<<14 | 0x3F<<7 | 0x4A, - 36631 - 19968: jis0212<<14 | 0x3F<<7 | 0x4B, - 36632 - 19968: jis0212<<14 | 0x3F<<7 | 0x4C, - 36633 - 19968: jis0208<<14 | 0x4C<<7 | 0x2C, - 36635 - 19968: jis0208<<14 | 0x4C<<7 | 0x30, - 36636 - 19968: jis0208<<14 | 0x4C<<7 | 0x2E, - 36637 - 19968: jis0208<<14 | 0x14<<7 | 0x10, - 36638 - 19968: jis0212<<14 | 0x3F<<7 | 0x4D, - 36639 - 19968: jis0208<<14 | 0x4C<<7 | 0x2F, - 36640 - 19968: jis0212<<14 | 0x3F<<7 | 0x4E, - 36641 - 19968: jis0212<<14 | 0x3F<<7 | 0x4F, - 36643 - 19968: jis0212<<14 | 0x3F<<7 | 0x50, - 36645 - 19968: jis0212<<14 | 0x3F<<7 | 0x51, - 36646 - 19968: jis0208<<14 | 0x4C<<7 | 0x32, - 36647 - 19968: jis0212<<14 | 0x3F<<7 | 0x52, - 36648 - 19968: jis0212<<14 | 0x3F<<7 | 0x53, - 36649 - 19968: jis0208<<14 | 0x26<<7 | 0x39, - 36650 - 19968: jis0208<<14 | 0x2D<<7 | 0x37, - 36652 - 19968: jis0212<<14 | 0x3F<<7 | 0x54, - 36653 - 19968: jis0212<<14 | 0x3F<<7 | 0x55, - 36654 - 19968: jis0212<<14 | 0x3F<<7 | 0x56, - 36655 - 19968: jis0208<<14 | 0x1C<<7 | 0x13, - 36659 - 19968: jis0208<<14 | 0x4C<<7 | 0x33, - 36660 - 19968: jis0212<<14 | 0x3F<<7 | 0x57, - 36661 - 19968: jis0212<<14 | 0x3F<<7 | 0x58, - 36662 - 19968: jis0212<<14 | 0x3F<<7 | 0x59, - 36663 - 19968: jis0212<<14 | 0x3F<<7 | 0x5A, - 36664 - 19968: jis0208<<14 | 0x2C<<7 | 0x01, - 36665 - 19968: jis0208<<14 | 0x4C<<7 | 0x35, - 36666 - 19968: jis0212<<14 | 0x3F<<7 | 0x5B, - 36667 - 19968: jis0208<<14 | 0x4C<<7 | 0x34, - 36670 - 19968: jis0208<<14 | 0x4C<<7 | 0x38, - 36671 - 19968: jis0208<<14 | 0x2C<<7 | 0x20, - 36672 - 19968: jis0212<<14 | 0x3F<<7 | 0x5C, - 36673 - 19968: jis0212<<14 | 0x3F<<7 | 0x5D, - 36674 - 19968: jis0208<<14 | 0x4C<<7 | 0x37, - 36675 - 19968: jis0212<<14 | 0x40<<7 | 0x00, - 36676 - 19968: jis0208<<14 | 0x12<<7 | 0x4C, - 36677 - 19968: jis0208<<14 | 0x4C<<7 | 0x36, - 36678 - 19968: jis0208<<14 | 0x4C<<7 | 0x3B, - 36679 - 19968: jis0212<<14 | 0x40<<7 | 0x01, - 36681 - 19968: jis0208<<14 | 0x4C<<7 | 0x3A, - 36684 - 19968: jis0208<<14 | 0x4C<<7 | 0x39, - 36685 - 19968: jis0208<<14 | 0x24<<7 | 0x11, - 36686 - 19968: jis0208<<14 | 0x4C<<7 | 0x3C, - 36687 - 19968: jis0212<<14 | 0x40<<7 | 0x02, - 36689 - 19968: jis0212<<14 | 0x40<<7 | 0x03, - 36690 - 19968: jis0212<<14 | 0x40<<7 | 0x04, - 36691 - 19968: jis0212<<14 | 0x40<<7 | 0x05, - 36692 - 19968: jis0212<<14 | 0x40<<7 | 0x06, - 36693 - 19968: jis0212<<14 | 0x40<<7 | 0x07, - 36695 - 19968: jis0208<<14 | 0x4C<<7 | 0x3D, - 36696 - 19968: jis0212<<14 | 0x40<<7 | 0x08, - 36700 - 19968: jis0208<<14 | 0x4C<<7 | 0x3E, - 36701 - 19968: jis0212<<14 | 0x40<<7 | 0x09, - 36702 - 19968: jis0212<<14 | 0x40<<7 | 0x0A, - 36703 - 19968: jis0208<<14 | 0x18<<7 | 0x4B, - 36705 - 19968: jis0208<<14 | 0x16<<7 | 0x04, - 36706 - 19968: jis0208<<14 | 0x4C<<7 | 0x3F, - 36707 - 19968: jis0208<<14 | 0x4C<<7 | 0x40, - 36708 - 19968: jis0208<<14 | 0x4C<<7 | 0x41, - 36709 - 19968: jis0212<<14 | 0x40<<7 | 0x0B, - 36763 - 19968: jis0208<<14 | 0x1E<<7 | 0x28, - 36764 - 19968: jis0208<<14 | 0x4C<<7 | 0x42, - 36765 - 19968: jis0212<<14 | 0x40<<7 | 0x0C, - 36766 - 19968: jis0208<<14 | 0x1B<<7 | 0x0C, - 36767 - 19968: jis0208<<14 | 0x4C<<7 | 0x43, - 36768 - 19968: jis0212<<14 | 0x40<<7 | 0x0D, - 36769 - 19968: jis0212<<14 | 0x40<<7 | 0x0E, - 36771 - 19968: jis0208<<14 | 0x4C<<7 | 0x44, - 36772 - 19968: jis0212<<14 | 0x40<<7 | 0x0F, - 36773 - 19968: jis0212<<14 | 0x40<<7 | 0x10, - 36774 - 19968: jis0212<<14 | 0x40<<7 | 0x11, - 36775 - 19968: jis0208<<14 | 0x31<<7 | 0x00, - 36776 - 19968: jis0208<<14 | 0x30<<7 | 0x5D, - 36781 - 19968: jis0208<<14 | 0x4C<<7 | 0x45, - 36782 - 19968: jis0208<<14 | 0x44<<7 | 0x4F, - 36783 - 19968: jis0208<<14 | 0x4C<<7 | 0x46, - 36784 - 19968: jis0208<<14 | 0x22<<7 | 0x03, - 36785 - 19968: jis0208<<14 | 0x1E<<7 | 0x0A, - 36786 - 19968: jis0208<<14 | 0x26<<7 | 0x1F, - 36789 - 19968: jis0212<<14 | 0x40<<7 | 0x12, - 36790 - 19968: jis0212<<14 | 0x40<<7 | 0x13, - 36791 - 19968: jis0208<<14 | 0x4C<<7 | 0x47, - 36792 - 19968: jis0212<<14 | 0x40<<7 | 0x14, - 36794 - 19968: jis0208<<14 | 0x29<<7 | 0x34, - 36795 - 19968: jis0208<<14 | 0x23<<7 | 0x33, - 36796 - 19968: jis0208<<14 | 0x18<<7 | 0x5D, - 36798 - 19968: jis0212<<14 | 0x40<<7 | 0x15, - 36799 - 19968: jis0208<<14 | 0x22<<7 | 0x08, - 36800 - 19968: jis0212<<14 | 0x40<<7 | 0x16, - 36801 - 19968: jis0212<<14 | 0x40<<7 | 0x17, - 36802 - 19968: jis0208<<14 | 0x10<<7 | 0x09, - 36804 - 19968: jis0208<<14 | 0x2A<<7 | 0x57, - 36805 - 19968: jis0208<<14 | 0x1E<<7 | 0x36, - 36806 - 19968: jis0212<<14 | 0x40<<7 | 0x18, - 36810 - 19968: jis0212<<14 | 0x40<<7 | 0x19, - 36811 - 19968: jis0212<<14 | 0x40<<7 | 0x1A, - 36813 - 19968: jis0212<<14 | 0x40<<7 | 0x1B, - 36814 - 19968: jis0208<<14 | 0x16<<7 | 0x3D, - 36816 - 19968: jis0212<<14 | 0x40<<7 | 0x1C, - 36817 - 19968: jis0208<<14 | 0x15<<7 | 0x40, - 36818 - 19968: jis0212<<14 | 0x40<<7 | 0x1D, - 36819 - 19968: jis0212<<14 | 0x40<<7 | 0x1E, - 36820 - 19968: jis0208<<14 | 0x29<<7 | 0x35, - 36821 - 19968: jis0212<<14 | 0x40<<7 | 0x1F, - 36826 - 19968: jis0208<<14 | 0x4C<<7 | 0x48, - 36832 - 19968: jis0212<<14 | 0x40<<7 | 0x20, - 36834 - 19968: jis0208<<14 | 0x4C<<7 | 0x4A, - 36835 - 19968: jis0212<<14 | 0x40<<7 | 0x21, - 36836 - 19968: jis0212<<14 | 0x40<<7 | 0x22, - 36837 - 19968: jis0208<<14 | 0x4C<<7 | 0x49, - 36838 - 19968: jis0208<<14 | 0x11<<7 | 0x3F, - 36840 - 19968: jis0212<<14 | 0x40<<7 | 0x23, - 36841 - 19968: jis0208<<14 | 0x25<<7 | 0x55, - 36842 - 19968: jis0208<<14 | 0x4C<<7 | 0x4B, - 36843 - 19968: jis0208<<14 | 0x26<<7 | 0x56, - 36845 - 19968: jis0208<<14 | 0x24<<7 | 0x12, - 36846 - 19968: jis0212<<14 | 0x40<<7 | 0x24, - 36847 - 19968: jis0208<<14 | 0x4C<<7 | 0x4C, - 36848 - 19968: jis0208<<14 | 0x1C<<7 | 0x31, - 36849 - 19968: jis0212<<14 | 0x40<<7 | 0x25, - 36852 - 19968: jis0208<<14 | 0x4C<<7 | 0x4E, - 36853 - 19968: jis0212<<14 | 0x40<<7 | 0x26, - 36854 - 19968: jis0212<<14 | 0x40<<7 | 0x27, - 36855 - 19968: jis0208<<14 | 0x2B<<7 | 0x21, - 36856 - 19968: jis0208<<14 | 0x4C<<7 | 0x5D, - 36857 - 19968: jis0208<<14 | 0x4C<<7 | 0x50, - 36858 - 19968: jis0208<<14 | 0x4C<<7 | 0x51, - 36859 - 19968: jis0212<<14 | 0x40<<7 | 0x28, - 36861 - 19968: jis0208<<14 | 0x23<<7 | 0x28, - 36862 - 19968: jis0212<<14 | 0x40<<7 | 0x29, - 36864 - 19968: jis0208<<14 | 0x21<<7 | 0x3F, - 36865 - 19968: jis0208<<14 | 0x20<<7 | 0x56, - 36866 - 19968: jis0212<<14 | 0x40<<7 | 0x2A, - 36867 - 19968: jis0208<<14 | 0x25<<7 | 0x07, - 36868 - 19968: jis0212<<14 | 0x40<<7 | 0x2B, - 36869 - 19968: jis0208<<14 | 0x4C<<7 | 0x4F, - 36870 - 19968: jis0208<<14 | 0x14<<7 | 0x34, - 36872 - 19968: jis0212<<14 | 0x40<<7 | 0x2C, - 36875 - 19968: jis0208<<14 | 0x4C<<7 | 0x58, - 36876 - 19968: jis0212<<14 | 0x40<<7 | 0x2D, - 36877 - 19968: jis0208<<14 | 0x4C<<7 | 0x55, - 36878 - 19968: jis0208<<14 | 0x4D<<7 | 0x04, - 36879 - 19968: jis0208<<14 | 0x25<<7 | 0x08, - 36880 - 19968: jis0208<<14 | 0x22<<7 | 0x3F, - 36881 - 19968: jis0208<<14 | 0x4C<<7 | 0x52, - 36883 - 19968: jis0208<<14 | 0x23<<7 | 0x5D, - 36884 - 19968: jis0208<<14 | 0x24<<7 | 0x32, - 36885 - 19968: jis0208<<14 | 0x4C<<7 | 0x53, - 36886 - 19968: jis0208<<14 | 0x4C<<7 | 0x57, - 36887 - 19968: jis0208<<14 | 0x1E<<7 | 0x3F, - 36888 - 19968: jis0212<<14 | 0x40<<7 | 0x2E, - 36889 - 19968: jis0208<<14 | 0x26<<7 | 0x46, - 36890 - 19968: jis0208<<14 | 0x23<<7 | 0x2B, - 36891 - 19968: jis0212<<14 | 0x40<<7 | 0x2F, - 36893 - 19968: jis0208<<14 | 0x1F<<7 | 0x21, - 36894 - 19968: jis0208<<14 | 0x4C<<7 | 0x56, - 36895 - 19968: jis0208<<14 | 0x21<<7 | 0x0D, - 36896 - 19968: jis0208<<14 | 0x21<<7 | 0x03, - 36897 - 19968: jis0208<<14 | 0x4C<<7 | 0x54, - 36898 - 19968: jis0208<<14 | 0x0F<<7 | 0x08, - 36899 - 19968: jis0208<<14 | 0x2E<<7 | 0x01, - 36903 - 19968: jis0208<<14 | 0x4C<<7 | 0x59, - 36904 - 19968: jis0212<<14 | 0x40<<7 | 0x30, - 36905 - 19968: jis0212<<14 | 0x40<<7 | 0x31, - 36906 - 19968: jis0212<<14 | 0x40<<7 | 0x33, - 36908 - 19968: jis0212<<14 | 0x40<<7 | 0x34, - 36909 - 19968: jis0212<<14 | 0x40<<7 | 0x35, - 36910 - 19968: jis0208<<14 | 0x21<<7 | 0x40, - 36911 - 19968: jis0212<<14 | 0x40<<7 | 0x32, - 36913 - 19968: jis0208<<14 | 0x1C<<7 | 0x14, - 36914 - 19968: jis0208<<14 | 0x1E<<7 | 0x29, - 36915 - 19968: jis0212<<14 | 0x40<<7 | 0x36, - 36916 - 19968: jis0212<<14 | 0x40<<7 | 0x37, - 36917 - 19968: jis0208<<14 | 0x4C<<7 | 0x5B, - 36918 - 19968: jis0208<<14 | 0x4C<<7 | 0x5A, - 36919 - 19968: jis0212<<14 | 0x40<<7 | 0x38, - 36920 - 19968: jis0208<<14 | 0x0F<<7 | 0x4E, - 36921 - 19968: jis0208<<14 | 0x4C<<7 | 0x5C, - 36924 - 19968: jis0208<<14 | 0x28<<7 | 0x0E, - 36926 - 19968: jis0208<<14 | 0x4D<<7 | 0x06, - 36927 - 19968: jis0212<<14 | 0x40<<7 | 0x39, - 36929 - 19968: jis0208<<14 | 0x25<<7 | 0x3A, - 36930 - 19968: jis0208<<14 | 0x1E<<7 | 0x4A, - 36931 - 19968: jis0212<<14 | 0x40<<7 | 0x3A, - 36932 - 19968: jis0212<<14 | 0x40<<7 | 0x3B, - 36933 - 19968: jis0208<<14 | 0x22<<7 | 0x38, - 36935 - 19968: jis0208<<14 | 0x15<<7 | 0x57, - 36937 - 19968: jis0208<<14 | 0x4D<<7 | 0x05, - 36938 - 19968: jis0208<<14 | 0x2C<<7 | 0x16, - 36939 - 19968: jis0208<<14 | 0x10<<7 | 0x1E, - 36940 - 19968: jis0212<<14 | 0x40<<7 | 0x3C, - 36941 - 19968: jis0208<<14 | 0x29<<7 | 0x36, - 36942 - 19968: jis0208<<14 | 0x11<<7 | 0x40, - 36943 - 19968: jis0208<<14 | 0x4D<<7 | 0x00, - 36944 - 19968: jis0208<<14 | 0x4D<<7 | 0x01, - 36945 - 19968: jis0208<<14 | 0x4D<<7 | 0x02, - 36946 - 19968: jis0208<<14 | 0x4D<<7 | 0x03, - 36947 - 19968: jis0208<<14 | 0x25<<7 | 0x1A, - 36948 - 19968: jis0208<<14 | 0x22<<7 | 0x02, - 36949 - 19968: jis0208<<14 | 0x0F<<7 | 0x42, - 36950 - 19968: jis0208<<14 | 0x4D<<7 | 0x07, - 36952 - 19968: jis0208<<14 | 0x4D<<7 | 0x08, - 36953 - 19968: jis0208<<14 | 0x53<<7 | 0x02, - 36955 - 19968: jis0212<<14 | 0x40<<7 | 0x3D, - 36956 - 19968: jis0208<<14 | 0x21<<7 | 0x1C, - 36957 - 19968: jis0212<<14 | 0x40<<7 | 0x3E, - 36958 - 19968: jis0208<<14 | 0x4D<<7 | 0x09, - 36960 - 19968: jis0208<<14 | 0x10<<7 | 0x52, - 36961 - 19968: jis0208<<14 | 0x20<<7 | 0x2B, - 36962 - 19968: jis0212<<14 | 0x40<<7 | 0x3F, - 36963 - 19968: jis0208<<14 | 0x17<<7 | 0x0E, - 36965 - 19968: jis0208<<14 | 0x2C<<7 | 0x39, - 36966 - 19968: jis0212<<14 | 0x40<<7 | 0x40, - 36967 - 19968: jis0208<<14 | 0x5A<<7 | 0x58, - 36968 - 19968: jis0208<<14 | 0x4D<<7 | 0x0A, - 36969 - 19968: jis0208<<14 | 0x24<<7 | 0x0B, - 36972 - 19968: jis0212<<14 | 0x40<<7 | 0x42, - 36973 - 19968: jis0208<<14 | 0x20<<7 | 0x57, - 36974 - 19968: jis0208<<14 | 0x1B<<7 | 0x36, - 36975 - 19968: jis0208<<14 | 0x4D<<7 | 0x0B, - 36976 - 19968: jis0212<<14 | 0x40<<7 | 0x43, - 36978 - 19968: jis0208<<14 | 0x4D<<7 | 0x0E, - 36980 - 19968: jis0212<<14 | 0x40<<7 | 0x44, - 36981 - 19968: jis0208<<14 | 0x1C<<7 | 0x44, - 36982 - 19968: jis0208<<14 | 0x4D<<7 | 0x0C, - 36983 - 19968: jis0208<<14 | 0x20<<7 | 0x0A, - 36984 - 19968: jis0208<<14 | 0x20<<7 | 0x09, - 36985 - 19968: jis0212<<14 | 0x40<<7 | 0x45, - 36986 - 19968: jis0208<<14 | 0x0F<<7 | 0x43, - 36988 - 19968: jis0208<<14 | 0x2D<<7 | 0x2A, - 36989 - 19968: jis0208<<14 | 0x4D<<7 | 0x10, - 36991 - 19968: jis0208<<14 | 0x27<<7 | 0x51, - 36992 - 19968: jis0208<<14 | 0x4D<<7 | 0x12, - 36993 - 19968: jis0208<<14 | 0x4D<<7 | 0x11, - 36994 - 19968: jis0208<<14 | 0x4D<<7 | 0x0F, - 36995 - 19968: jis0208<<14 | 0x42<<7 | 0x43, - 36996 - 19968: jis0208<<14 | 0x13<<7 | 0x33, - 36997 - 19968: jis0212<<14 | 0x40<<7 | 0x46, - 36999 - 19968: jis0208<<14 | 0x4C<<7 | 0x4D, - 37000 - 19968: jis0212<<14 | 0x40<<7 | 0x47, - 37001 - 19968: jis0208<<14 | 0x4D<<7 | 0x14, - 37002 - 19968: jis0208<<14 | 0x4D<<7 | 0x13, - 37003 - 19968: jis0212<<14 | 0x40<<7 | 0x48, - 37004 - 19968: jis0212<<14 | 0x40<<7 | 0x49, - 37006 - 19968: jis0212<<14 | 0x40<<7 | 0x4A, - 37007 - 19968: jis0208<<14 | 0x4D<<7 | 0x15, - 37008 - 19968: jis0212<<14 | 0x40<<7 | 0x4B, - 37009 - 19968: jis0208<<14 | 0x2C<<7 | 0x17, - 37013 - 19968: jis0212<<14 | 0x40<<7 | 0x4C, - 37015 - 19968: jis0212<<14 | 0x40<<7 | 0x4D, - 37016 - 19968: jis0212<<14 | 0x40<<7 | 0x4E, - 37017 - 19968: jis0212<<14 | 0x40<<7 | 0x4F, - 37019 - 19968: jis0212<<14 | 0x40<<7 | 0x50, - 37024 - 19968: jis0212<<14 | 0x40<<7 | 0x51, - 37025 - 19968: jis0212<<14 | 0x40<<7 | 0x52, - 37026 - 19968: jis0212<<14 | 0x40<<7 | 0x53, - 37027 - 19968: jis0208<<14 | 0x25<<7 | 0x40, - 37029 - 19968: jis0212<<14 | 0x40<<7 | 0x54, - 37030 - 19968: jis0208<<14 | 0x2A<<7 | 0x0D, - 37032 - 19968: jis0208<<14 | 0x4D<<7 | 0x16, - 37034 - 19968: jis0208<<14 | 0x1B<<7 | 0x38, - 37039 - 19968: jis0208<<14 | 0x4D<<7 | 0x17, - 37040 - 19968: jis0212<<14 | 0x40<<7 | 0x55, - 37041 - 19968: jis0208<<14 | 0x4D<<7 | 0x18, - 37042 - 19968: jis0212<<14 | 0x40<<7 | 0x56, - 37043 - 19968: jis0212<<14 | 0x40<<7 | 0x57, - 37044 - 19968: jis0212<<14 | 0x40<<7 | 0x58, - 37045 - 19968: jis0208<<14 | 0x4D<<7 | 0x19, - 37046 - 19968: jis0212<<14 | 0x40<<7 | 0x59, - 37048 - 19968: jis0208<<14 | 0x24<<7 | 0x00, - 37053 - 19968: jis0212<<14 | 0x40<<7 | 0x5A, - 37054 - 19968: jis0212<<14 | 0x40<<7 | 0x5C, - 37057 - 19968: jis0208<<14 | 0x0F<<7 | 0x49, - 37059 - 19968: jis0212<<14 | 0x40<<7 | 0x5D, - 37060 - 19968: jis0212<<14 | 0x41<<7 | 0x00, - 37061 - 19968: jis0212<<14 | 0x41<<7 | 0x01, - 37063 - 19968: jis0212<<14 | 0x41<<7 | 0x02, - 37064 - 19968: jis0212<<14 | 0x41<<7 | 0x03, - 37066 - 19968: jis0208<<14 | 0x18<<7 | 0x38, - 37068 - 19968: jis0212<<14 | 0x40<<7 | 0x5B, - 37070 - 19968: jis0208<<14 | 0x2E<<7 | 0x19, - 37074 - 19968: jis0212<<14 | 0x41<<7 | 0x0C, - 37077 - 19968: jis0212<<14 | 0x41<<7 | 0x04, - 37079 - 19968: jis0212<<14 | 0x41<<7 | 0x05, - 37080 - 19968: jis0212<<14 | 0x41<<7 | 0x06, - 37081 - 19968: jis0212<<14 | 0x41<<7 | 0x07, - 37083 - 19968: jis0208<<14 | 0x4D<<7 | 0x1D, - 37084 - 19968: jis0212<<14 | 0x41<<7 | 0x08, - 37085 - 19968: jis0212<<14 | 0x41<<7 | 0x09, - 37086 - 19968: jis0208<<14 | 0x5A<<7 | 0x59, - 37087 - 19968: jis0212<<14 | 0x41<<7 | 0x0A, - 37089 - 19968: jis0208<<14 | 0x16<<7 | 0x13, - 37090 - 19968: jis0208<<14 | 0x4D<<7 | 0x1A, - 37092 - 19968: jis0208<<14 | 0x4D<<7 | 0x1B, - 37093 - 19968: jis0212<<14 | 0x41<<7 | 0x0B, - 37096 - 19968: jis0208<<14 | 0x28<<7 | 0x53, - 37099 - 19968: jis0212<<14 | 0x41<<7 | 0x0E, - 37101 - 19968: jis0208<<14 | 0x12<<7 | 0x33, - 37103 - 19968: jis0212<<14 | 0x41<<7 | 0x0F, - 37104 - 19968: jis0212<<14 | 0x41<<7 | 0x10, - 37108 - 19968: jis0212<<14 | 0x41<<7 | 0x11, - 37109 - 19968: jis0208<<14 | 0x2C<<7 | 0x18, - 37110 - 19968: jis0212<<14 | 0x41<<7 | 0x0D, - 37111 - 19968: jis0208<<14 | 0x15<<7 | 0x1E, - 37117 - 19968: jis0208<<14 | 0x24<<7 | 0x33, - 37118 - 19968: jis0212<<14 | 0x41<<7 | 0x12, - 37119 - 19968: jis0212<<14 | 0x41<<7 | 0x13, - 37120 - 19968: jis0212<<14 | 0x41<<7 | 0x14, - 37122 - 19968: jis0208<<14 | 0x4D<<7 | 0x1E, - 37124 - 19968: jis0212<<14 | 0x41<<7 | 0x15, - 37125 - 19968: jis0212<<14 | 0x41<<7 | 0x16, - 37126 - 19968: jis0212<<14 | 0x41<<7 | 0x17, - 37128 - 19968: jis0212<<14 | 0x41<<7 | 0x18, - 37133 - 19968: jis0212<<14 | 0x41<<7 | 0x19, - 37136 - 19968: jis0212<<14 | 0x41<<7 | 0x1A, - 37138 - 19968: jis0208<<14 | 0x4D<<7 | 0x1F, - 37140 - 19968: jis0212<<14 | 0x41<<7 | 0x1B, - 37141 - 19968: jis0208<<14 | 0x5A<<7 | 0x5B, - 37142 - 19968: jis0212<<14 | 0x41<<7 | 0x1C, - 37143 - 19968: jis0212<<14 | 0x41<<7 | 0x1D, - 37144 - 19968: jis0212<<14 | 0x41<<7 | 0x1E, - 37145 - 19968: jis0208<<14 | 0x4D<<7 | 0x20, - 37146 - 19968: jis0212<<14 | 0x41<<7 | 0x1F, - 37148 - 19968: jis0212<<14 | 0x41<<7 | 0x20, - 37150 - 19968: jis0212<<14 | 0x41<<7 | 0x21, - 37152 - 19968: jis0212<<14 | 0x41<<7 | 0x22, - 37154 - 19968: jis0212<<14 | 0x41<<7 | 0x24, - 37155 - 19968: jis0212<<14 | 0x41<<7 | 0x25, - 37157 - 19968: jis0212<<14 | 0x41<<7 | 0x23, - 37159 - 19968: jis0208<<14 | 0x5A<<7 | 0x5C, - 37161 - 19968: jis0212<<14 | 0x41<<7 | 0x27, - 37165 - 19968: jis0208<<14 | 0x24<<7 | 0x01, - 37166 - 19968: jis0212<<14 | 0x41<<7 | 0x28, - 37167 - 19968: jis0212<<14 | 0x41<<7 | 0x29, - 37168 - 19968: jis0208<<14 | 0x4D<<7 | 0x22, - 37169 - 19968: jis0212<<14 | 0x41<<7 | 0x2A, - 37170 - 19968: jis0208<<14 | 0x4D<<7 | 0x21, - 37172 - 19968: jis0212<<14 | 0x41<<7 | 0x2B, - 37174 - 19968: jis0212<<14 | 0x41<<7 | 0x2C, - 37175 - 19968: jis0212<<14 | 0x41<<7 | 0x2D, - 37177 - 19968: jis0212<<14 | 0x41<<7 | 0x2E, - 37178 - 19968: jis0212<<14 | 0x41<<7 | 0x2F, - 37180 - 19968: jis0212<<14 | 0x41<<7 | 0x30, - 37181 - 19968: jis0212<<14 | 0x41<<7 | 0x31, - 37187 - 19968: jis0212<<14 | 0x41<<7 | 0x32, - 37191 - 19968: jis0212<<14 | 0x41<<7 | 0x33, - 37192 - 19968: jis0212<<14 | 0x41<<7 | 0x34, - 37193 - 19968: jis0208<<14 | 0x25<<7 | 0x32, - 37194 - 19968: jis0208<<14 | 0x4D<<7 | 0x23, - 37195 - 19968: jis0208<<14 | 0x1C<<7 | 0x15, - 37196 - 19968: jis0208<<14 | 0x1B<<7 | 0x3F, - 37197 - 19968: jis0208<<14 | 0x26<<7 | 0x3A, - 37198 - 19968: jis0208<<14 | 0x22<<7 | 0x50, - 37199 - 19968: jis0212<<14 | 0x41<<7 | 0x35, - 37202 - 19968: jis0208<<14 | 0x1B<<7 | 0x51, - 37203 - 19968: jis0212<<14 | 0x41<<7 | 0x36, - 37204 - 19968: jis0208<<14 | 0x1E<<7 | 0x4B, - 37206 - 19968: jis0208<<14 | 0x4D<<7 | 0x24, - 37207 - 19968: jis0212<<14 | 0x41<<7 | 0x37, - 37208 - 19968: jis0208<<14 | 0x4D<<7 | 0x25, - 37209 - 19968: jis0212<<14 | 0x41<<7 | 0x38, - 37210 - 19968: jis0212<<14 | 0x41<<7 | 0x39, - 37211 - 19968: jis0212<<14 | 0x41<<7 | 0x3A, - 37217 - 19968: jis0212<<14 | 0x41<<7 | 0x3B, - 37218 - 19968: jis0208<<14 | 0x1E<<7 | 0x3C, - 37219 - 19968: jis0208<<14 | 0x4D<<7 | 0x26, - 37220 - 19968: jis0212<<14 | 0x41<<7 | 0x3C, - 37221 - 19968: jis0208<<14 | 0x4D<<7 | 0x27, - 37223 - 19968: jis0212<<14 | 0x41<<7 | 0x3D, - 37225 - 19968: jis0208<<14 | 0x4D<<7 | 0x28, - 37226 - 19968: jis0208<<14 | 0x2C<<7 | 0x4E, - 37228 - 19968: jis0208<<14 | 0x1C<<7 | 0x16, - 37229 - 19968: jis0212<<14 | 0x41<<7 | 0x3E, - 37234 - 19968: jis0208<<14 | 0x4D<<7 | 0x2A, - 37235 - 19968: jis0208<<14 | 0x4D<<7 | 0x29, - 37236 - 19968: jis0212<<14 | 0x41<<7 | 0x3F, - 37237 - 19968: jis0208<<14 | 0x18<<7 | 0x39, - 37239 - 19968: jis0208<<14 | 0x18<<7 | 0x52, - 37240 - 19968: jis0208<<14 | 0x1A<<7 | 0x1F, - 37241 - 19968: jis0212<<14 | 0x41<<7 | 0x40, - 37242 - 19968: jis0212<<14 | 0x41<<7 | 0x41, - 37243 - 19968: jis0212<<14 | 0x41<<7 | 0x42, - 37249 - 19968: jis0212<<14 | 0x41<<7 | 0x43, - 37250 - 19968: jis0208<<14 | 0x4D<<7 | 0x2D, - 37251 - 19968: jis0212<<14 | 0x41<<7 | 0x44, - 37253 - 19968: jis0212<<14 | 0x41<<7 | 0x45, - 37254 - 19968: jis0212<<14 | 0x41<<7 | 0x46, - 37255 - 19968: jis0208<<14 | 0x1C<<7 | 0x45, - 37257 - 19968: jis0208<<14 | 0x4D<<7 | 0x2C, - 37258 - 19968: jis0212<<14 | 0x41<<7 | 0x47, - 37259 - 19968: jis0208<<14 | 0x4D<<7 | 0x2B, - 37261 - 19968: jis0208<<14 | 0x21<<7 | 0x48, - 37262 - 19968: jis0212<<14 | 0x41<<7 | 0x48, - 37264 - 19968: jis0208<<14 | 0x17<<7 | 0x4E, - 37265 - 19968: jis0212<<14 | 0x41<<7 | 0x49, - 37266 - 19968: jis0208<<14 | 0x1F<<7 | 0x22, - 37267 - 19968: jis0212<<14 | 0x41<<7 | 0x4A, - 37268 - 19968: jis0212<<14 | 0x41<<7 | 0x4B, - 37269 - 19968: jis0212<<14 | 0x41<<7 | 0x4C, - 37271 - 19968: jis0208<<14 | 0x27<<7 | 0x0F, - 37272 - 19968: jis0212<<14 | 0x41<<7 | 0x4D, - 37276 - 19968: jis0208<<14 | 0x1C<<7 | 0x18, - 37278 - 19968: jis0212<<14 | 0x41<<7 | 0x4E, - 37281 - 19968: jis0212<<14 | 0x41<<7 | 0x4F, - 37282 - 19968: jis0208<<14 | 0x4D<<7 | 0x2E, - 37284 - 19968: jis0208<<14 | 0x1D<<7 | 0x3E, - 37286 - 19968: jis0212<<14 | 0x41<<7 | 0x50, - 37288 - 19968: jis0212<<14 | 0x41<<7 | 0x51, - 37290 - 19968: jis0208<<14 | 0x4D<<7 | 0x31, - 37291 - 19968: jis0208<<14 | 0x4D<<7 | 0x2F, - 37292 - 19968: jis0212<<14 | 0x41<<7 | 0x52, - 37293 - 19968: jis0212<<14 | 0x41<<7 | 0x53, - 37294 - 19968: jis0212<<14 | 0x41<<7 | 0x54, - 37295 - 19968: jis0208<<14 | 0x4D<<7 | 0x30, - 37296 - 19968: jis0212<<14 | 0x41<<7 | 0x55, - 37297 - 19968: jis0212<<14 | 0x41<<7 | 0x56, - 37298 - 19968: jis0212<<14 | 0x41<<7 | 0x57, - 37299 - 19968: jis0212<<14 | 0x41<<7 | 0x58, - 37300 - 19968: jis0208<<14 | 0x4D<<7 | 0x33, - 37301 - 19968: jis0208<<14 | 0x4D<<7 | 0x32, - 37302 - 19968: jis0212<<14 | 0x41<<7 | 0x59, - 37304 - 19968: jis0208<<14 | 0x1D<<7 | 0x59, - 37306 - 19968: jis0208<<14 | 0x4D<<7 | 0x34, - 37307 - 19968: jis0212<<14 | 0x41<<7 | 0x5A, - 37308 - 19968: jis0212<<14 | 0x41<<7 | 0x5B, - 37309 - 19968: jis0212<<14 | 0x41<<7 | 0x5C, - 37311 - 19968: jis0212<<14 | 0x41<<7 | 0x5D, - 37312 - 19968: jis0208<<14 | 0x4D<<7 | 0x35, - 37313 - 19968: jis0208<<14 | 0x4D<<7 | 0x36, - 37314 - 19968: jis0212<<14 | 0x42<<7 | 0x00, - 37315 - 19968: jis0212<<14 | 0x42<<7 | 0x01, - 37317 - 19968: jis0212<<14 | 0x42<<7 | 0x02, - 37318 - 19968: jis0208<<14 | 0x27<<7 | 0x2F, - 37319 - 19968: jis0208<<14 | 0x19<<7 | 0x32, - 37320 - 19968: jis0208<<14 | 0x1B<<7 | 0x40, - 37321 - 19968: jis0208<<14 | 0x4D<<7 | 0x37, - 37323 - 19968: jis0208<<14 | 0x4D<<7 | 0x38, - 37324 - 19968: jis0208<<14 | 0x2D<<7 | 0x03, - 37325 - 19968: jis0208<<14 | 0x1C<<7 | 0x24, - 37326 - 19968: jis0208<<14 | 0x2B<<7 | 0x4D, - 37327 - 19968: jis0208<<14 | 0x2D<<7 | 0x2B, - 37328 - 19968: jis0208<<14 | 0x4D<<7 | 0x39, - 37329 - 19968: jis0208<<14 | 0x15<<7 | 0x41, - 37331 - 19968: jis0212<<14 | 0x42<<7 | 0x03, - 37332 - 19968: jis0212<<14 | 0x42<<7 | 0x04, - 37334 - 19968: jis0208<<14 | 0x4D<<7 | 0x3A, - 37335 - 19968: jis0208<<14 | 0x5B<<7 | 0x00, - 37336 - 19968: jis0208<<14 | 0x24<<7 | 0x02, - 37337 - 19968: jis0212<<14 | 0x42<<7 | 0x06, - 37338 - 19968: jis0208<<14 | 0x5A<<7 | 0x5D, - 37339 - 19968: jis0208<<14 | 0x4D<<7 | 0x3D, - 37340 - 19968: jis0208<<14 | 0x12<<7 | 0x57, - 37341 - 19968: jis0208<<14 | 0x1E<<7 | 0x2A, - 37342 - 19968: jis0208<<14 | 0x5B<<7 | 0x01, - 37343 - 19968: jis0208<<14 | 0x4D<<7 | 0x3B, - 37345 - 19968: jis0208<<14 | 0x4D<<7 | 0x3C, - 37347 - 19968: jis0208<<14 | 0x23<<7 | 0x3F, - 37348 - 19968: jis0208<<14 | 0x5B<<7 | 0x04, - 37349 - 19968: jis0208<<14 | 0x5B<<7 | 0x05, - 37350 - 19968: jis0208<<14 | 0x2A<<7 | 0x34, - 37351 - 19968: jis0208<<14 | 0x15<<7 | 0x5B, - 37353 - 19968: jis0212<<14 | 0x42<<7 | 0x0B, - 37354 - 19968: jis0212<<14 | 0x42<<7 | 0x0C, - 37356 - 19968: jis0212<<14 | 0x42<<7 | 0x0D, - 37357 - 19968: jis0208<<14 | 0x5B<<7 | 0x02, - 37358 - 19968: jis0208<<14 | 0x5B<<7 | 0x03, - 37359 - 19968: jis0212<<14 | 0x42<<7 | 0x10, - 37360 - 19968: jis0212<<14 | 0x42<<7 | 0x11, - 37361 - 19968: jis0212<<14 | 0x42<<7 | 0x12, - 37365 - 19968: jis0208<<14 | 0x4D<<7 | 0x3F, - 37366 - 19968: jis0208<<14 | 0x4D<<7 | 0x40, - 37367 - 19968: jis0212<<14 | 0x42<<7 | 0x13, - 37369 - 19968: jis0212<<14 | 0x42<<7 | 0x14, - 37371 - 19968: jis0212<<14 | 0x42<<7 | 0x15, - 37372 - 19968: jis0208<<14 | 0x4D<<7 | 0x3E, - 37373 - 19968: jis0212<<14 | 0x42<<7 | 0x16, - 37375 - 19968: jis0208<<14 | 0x4D<<7 | 0x42, - 37376 - 19968: jis0212<<14 | 0x42<<7 | 0x17, - 37377 - 19968: jis0212<<14 | 0x42<<7 | 0x18, - 37380 - 19968: jis0212<<14 | 0x42<<7 | 0x19, - 37381 - 19968: jis0212<<14 | 0x42<<7 | 0x1A, - 37382 - 19968: jis0208<<14 | 0x5B<<7 | 0x06, - 37383 - 19968: jis0212<<14 | 0x42<<7 | 0x1C, - 37385 - 19968: jis0212<<14 | 0x42<<7 | 0x1D, - 37386 - 19968: jis0208<<14 | 0x5B<<7 | 0x08, - 37388 - 19968: jis0212<<14 | 0x42<<7 | 0x1F, - 37389 - 19968: jis0208<<14 | 0x25<<7 | 0x3E, - 37390 - 19968: jis0208<<14 | 0x12<<7 | 0x22, - 37392 - 19968: jis0208<<14 | 0x5B<<7 | 0x07, - 37393 - 19968: jis0208<<14 | 0x4D<<7 | 0x46, - 37394 - 19968: jis0212<<14 | 0x42<<7 | 0x21, - 37395 - 19968: jis0212<<14 | 0x42<<7 | 0x22, - 37396 - 19968: jis0208<<14 | 0x4D<<7 | 0x43, - 37397 - 19968: jis0208<<14 | 0x4D<<7 | 0x45, - 37398 - 19968: jis0212<<14 | 0x42<<7 | 0x23, - 37400 - 19968: jis0212<<14 | 0x42<<7 | 0x24, - 37404 - 19968: jis0212<<14 | 0x42<<7 | 0x25, - 37405 - 19968: jis0212<<14 | 0x42<<7 | 0x26, - 37406 - 19968: jis0208<<14 | 0x4D<<7 | 0x41, - 37411 - 19968: jis0212<<14 | 0x42<<7 | 0x27, - 37412 - 19968: jis0212<<14 | 0x42<<7 | 0x28, - 37413 - 19968: jis0212<<14 | 0x42<<7 | 0x29, - 37414 - 19968: jis0212<<14 | 0x42<<7 | 0x2A, - 37416 - 19968: jis0212<<14 | 0x42<<7 | 0x2B, - 37417 - 19968: jis0208<<14 | 0x4E<<7 | 0x2E, - 37420 - 19968: jis0208<<14 | 0x4D<<7 | 0x44, - 37422 - 19968: jis0212<<14 | 0x42<<7 | 0x2C, - 37423 - 19968: jis0212<<14 | 0x42<<7 | 0x2D, - 37424 - 19968: jis0212<<14 | 0x42<<7 | 0x2E, - 37427 - 19968: jis0212<<14 | 0x42<<7 | 0x2F, - 37428 - 19968: jis0208<<14 | 0x2D<<7 | 0x4A, - 37429 - 19968: jis0212<<14 | 0x42<<7 | 0x30, - 37430 - 19968: jis0212<<14 | 0x42<<7 | 0x31, - 37431 - 19968: jis0208<<14 | 0x17<<7 | 0x39, - 37432 - 19968: jis0212<<14 | 0x42<<7 | 0x32, - 37433 - 19968: jis0208<<14 | 0x5B<<7 | 0x0F, - 37434 - 19968: jis0208<<14 | 0x5B<<7 | 0x09, - 37436 - 19968: jis0208<<14 | 0x5B<<7 | 0x0B, - 37438 - 19968: jis0212<<14 | 0x42<<7 | 0x36, - 37439 - 19968: jis0208<<14 | 0x4D<<7 | 0x4E, - 37440 - 19968: jis0208<<14 | 0x5B<<7 | 0x0A, - 37442 - 19968: jis0212<<14 | 0x42<<7 | 0x38, - 37443 - 19968: jis0212<<14 | 0x42<<7 | 0x39, - 37444 - 19968: jis0208<<14 | 0x24<<7 | 0x13, - 37445 - 19968: jis0208<<14 | 0x4D<<7 | 0x49, - 37446 - 19968: jis0212<<14 | 0x42<<7 | 0x3A, - 37447 - 19968: jis0212<<14 | 0x42<<7 | 0x3B, - 37448 - 19968: jis0208<<14 | 0x4D<<7 | 0x4C, - 37449 - 19968: jis0208<<14 | 0x4D<<7 | 0x4A, - 37450 - 19968: jis0212<<14 | 0x42<<7 | 0x3C, - 37451 - 19968: jis0208<<14 | 0x4D<<7 | 0x4F, - 37453 - 19968: jis0212<<14 | 0x42<<7 | 0x3D, - 37454 - 19968: jis0208<<14 | 0x5B<<7 | 0x0C, - 37455 - 19968: jis0212<<14 | 0x42<<7 | 0x3F, - 37456 - 19968: jis0208<<14 | 0x4D<<7 | 0x50, - 37457 - 19968: jis0208<<14 | 0x5B<<7 | 0x0E, - 37463 - 19968: jis0208<<14 | 0x4D<<7 | 0x48, - 37464 - 19968: jis0212<<14 | 0x42<<7 | 0x41, - 37465 - 19968: jis0208<<14 | 0x5B<<7 | 0x0D, - 37466 - 19968: jis0208<<14 | 0x4D<<7 | 0x55, - 37467 - 19968: jis0208<<14 | 0x10<<7 | 0x53, - 37468 - 19968: jis0212<<14 | 0x42<<7 | 0x43, - 37469 - 19968: jis0212<<14 | 0x42<<7 | 0x44, - 37470 - 19968: jis0208<<14 | 0x4D<<7 | 0x47, - 37472 - 19968: jis0212<<14 | 0x42<<7 | 0x45, - 37473 - 19968: jis0212<<14 | 0x42<<7 | 0x46, - 37474 - 19968: jis0208<<14 | 0x27<<7 | 0x0C, - 37476 - 19968: jis0208<<14 | 0x4D<<7 | 0x4B, - 37477 - 19968: jis0212<<14 | 0x42<<7 | 0x47, - 37478 - 19968: jis0208<<14 | 0x1D<<7 | 0x3F, - 37479 - 19968: jis0208<<14 | 0x5B<<7 | 0x10, - 37480 - 19968: jis0212<<14 | 0x42<<7 | 0x49, - 37481 - 19968: jis0212<<14 | 0x42<<7 | 0x4A, - 37486 - 19968: jis0212<<14 | 0x42<<7 | 0x4B, - 37487 - 19968: jis0212<<14 | 0x42<<7 | 0x4C, - 37488 - 19968: jis0212<<14 | 0x42<<7 | 0x4D, - 37489 - 19968: jis0208<<14 | 0x18<<7 | 0x3A, - 37493 - 19968: jis0212<<14 | 0x42<<7 | 0x4E, - 37494 - 19968: jis0212<<14 | 0x42<<7 | 0x4F, - 37495 - 19968: jis0208<<14 | 0x5B<<7 | 0x12, - 37496 - 19968: jis0208<<14 | 0x5B<<7 | 0x13, - 37497 - 19968: jis0212<<14 | 0x42<<7 | 0x52, - 37499 - 19968: jis0212<<14 | 0x42<<7 | 0x53, - 37500 - 19968: jis0212<<14 | 0x42<<7 | 0x54, - 37501 - 19968: jis0212<<14 | 0x42<<7 | 0x55, - 37502 - 19968: jis0208<<14 | 0x2A<<7 | 0x27, - 37503 - 19968: jis0212<<14 | 0x42<<7 | 0x56, - 37504 - 19968: jis0208<<14 | 0x15<<7 | 0x43, - 37507 - 19968: jis0208<<14 | 0x1C<<7 | 0x25, - 37509 - 19968: jis0208<<14 | 0x25<<7 | 0x1B, - 37512 - 19968: jis0208<<14 | 0x58<<7 | 0x03, - 37513 - 19968: jis0212<<14 | 0x42<<7 | 0x58, - 37514 - 19968: jis0212<<14 | 0x42<<7 | 0x59, - 37517 - 19968: jis0212<<14 | 0x42<<7 | 0x5A, - 37518 - 19968: jis0212<<14 | 0x42<<7 | 0x5B, - 37521 - 19968: jis0208<<14 | 0x20<<7 | 0x0C, - 37522 - 19968: jis0212<<14 | 0x42<<7 | 0x5C, - 37523 - 19968: jis0208<<14 | 0x4D<<7 | 0x53, - 37525 - 19968: jis0208<<14 | 0x4D<<7 | 0x4D, - 37526 - 19968: jis0208<<14 | 0x4D<<7 | 0x52, - 37527 - 19968: jis0212<<14 | 0x42<<7 | 0x5D, - 37528 - 19968: jis0208<<14 | 0x2B<<7 | 0x22, - 37529 - 19968: jis0212<<14 | 0x43<<7 | 0x00, - 37530 - 19968: jis0208<<14 | 0x23<<7 | 0x17, - 37531 - 19968: jis0208<<14 | 0x4D<<7 | 0x54, - 37532 - 19968: jis0208<<14 | 0x4D<<7 | 0x51, - 37535 - 19968: jis0212<<14 | 0x43<<7 | 0x01, - 37536 - 19968: jis0212<<14 | 0x43<<7 | 0x02, - 37540 - 19968: jis0212<<14 | 0x43<<7 | 0x03, - 37541 - 19968: jis0212<<14 | 0x43<<7 | 0x04, - 37543 - 19968: jis0208<<14 | 0x5B<<7 | 0x11, - 37544 - 19968: jis0212<<14 | 0x43<<7 | 0x06, - 37547 - 19968: jis0212<<14 | 0x43<<7 | 0x07, - 37549 - 19968: jis0208<<14 | 0x20<<7 | 0x0B, - 37551 - 19968: jis0212<<14 | 0x43<<7 | 0x08, - 37554 - 19968: jis0212<<14 | 0x43<<7 | 0x09, - 37558 - 19968: jis0212<<14 | 0x43<<7 | 0x0A, - 37559 - 19968: jis0208<<14 | 0x4D<<7 | 0x58, - 37560 - 19968: jis0212<<14 | 0x43<<7 | 0x0B, - 37561 - 19968: jis0208<<14 | 0x4D<<7 | 0x57, - 37562 - 19968: jis0212<<14 | 0x43<<7 | 0x0C, - 37563 - 19968: jis0212<<14 | 0x43<<7 | 0x0D, - 37564 - 19968: jis0212<<14 | 0x43<<7 | 0x0E, - 37565 - 19968: jis0212<<14 | 0x43<<7 | 0x0F, - 37567 - 19968: jis0212<<14 | 0x43<<7 | 0x10, - 37568 - 19968: jis0212<<14 | 0x43<<7 | 0x11, - 37569 - 19968: jis0212<<14 | 0x43<<7 | 0x12, - 37570 - 19968: jis0212<<14 | 0x43<<7 | 0x13, - 37571 - 19968: jis0212<<14 | 0x43<<7 | 0x14, - 37573 - 19968: jis0212<<14 | 0x43<<7 | 0x15, - 37574 - 19968: jis0212<<14 | 0x43<<7 | 0x16, - 37575 - 19968: jis0212<<14 | 0x43<<7 | 0x17, - 37576 - 19968: jis0212<<14 | 0x43<<7 | 0x18, - 37579 - 19968: jis0212<<14 | 0x43<<7 | 0x19, - 37580 - 19968: jis0212<<14 | 0x43<<7 | 0x1A, - 37581 - 19968: jis0212<<14 | 0x43<<7 | 0x1B, - 37582 - 19968: jis0212<<14 | 0x43<<7 | 0x1C, - 37583 - 19968: jis0208<<14 | 0x4D<<7 | 0x56, - 37584 - 19968: jis0208<<14 | 0x5B<<7 | 0x17, - 37586 - 19968: jis0208<<14 | 0x2A<<7 | 0x0E, - 37587 - 19968: jis0208<<14 | 0x5B<<7 | 0x1B, - 37589 - 19968: jis0208<<14 | 0x5B<<7 | 0x19, - 37591 - 19968: jis0208<<14 | 0x5B<<7 | 0x15, - 37592 - 19968: jis0212<<14 | 0x43<<7 | 0x21, - 37593 - 19968: jis0208<<14 | 0x5B<<7 | 0x16, - 37596 - 19968: jis0212<<14 | 0x43<<7 | 0x23, - 37597 - 19968: jis0212<<14 | 0x43<<7 | 0x24, - 37599 - 19968: jis0212<<14 | 0x43<<7 | 0x25, - 37600 - 19968: jis0208<<14 | 0x5B<<7 | 0x1A, - 37601 - 19968: jis0212<<14 | 0x43<<7 | 0x27, - 37603 - 19968: jis0212<<14 | 0x43<<7 | 0x28, - 37604 - 19968: jis0208<<14 | 0x1C<<7 | 0x5A, - 37605 - 19968: jis0212<<14 | 0x43<<7 | 0x29, - 37607 - 19968: jis0208<<14 | 0x5B<<7 | 0x14, - 37608 - 19968: jis0212<<14 | 0x43<<7 | 0x2B, - 37609 - 19968: jis0208<<14 | 0x4D<<7 | 0x59, - 37610 - 19968: jis0208<<14 | 0x29<<7 | 0x3E, - 37612 - 19968: jis0212<<14 | 0x43<<7 | 0x2C, - 37613 - 19968: jis0208<<14 | 0x10<<7 | 0x33, - 37614 - 19968: jis0212<<14 | 0x43<<7 | 0x2D, - 37616 - 19968: jis0212<<14 | 0x43<<7 | 0x2E, - 37618 - 19968: jis0208<<14 | 0x28<<7 | 0x25, - 37619 - 19968: jis0208<<14 | 0x22<<7 | 0x51, - 37624 - 19968: jis0208<<14 | 0x14<<7 | 0x57, - 37625 - 19968: jis0208<<14 | 0x58<<7 | 0x09, - 37626 - 19968: jis0208<<14 | 0x4D<<7 | 0x5B, - 37627 - 19968: jis0208<<14 | 0x5B<<7 | 0x1E, - 37628 - 19968: jis0208<<14 | 0x18<<7 | 0x3C, - 37631 - 19968: jis0208<<14 | 0x5B<<7 | 0x21, - 37632 - 19968: jis0212<<14 | 0x43<<7 | 0x32, - 37634 - 19968: jis0208<<14 | 0x5B<<7 | 0x23, - 37638 - 19968: jis0208<<14 | 0x1A<<7 | 0x0B, - 37640 - 19968: jis0212<<14 | 0x43<<7 | 0x34, - 37645 - 19968: jis0212<<14 | 0x43<<7 | 0x35, - 37647 - 19968: jis0208<<14 | 0x4D<<7 | 0x5A, - 37648 - 19968: jis0208<<14 | 0x1E<<7 | 0x4C, - 37649 - 19968: jis0212<<14 | 0x43<<7 | 0x36, - 37652 - 19968: jis0212<<14 | 0x43<<7 | 0x37, - 37653 - 19968: jis0212<<14 | 0x43<<7 | 0x38, - 37656 - 19968: jis0208<<14 | 0x1E<<7 | 0x4D, - 37657 - 19968: jis0208<<14 | 0x4E<<7 | 0x00, - 37658 - 19968: jis0208<<14 | 0x4E<<7 | 0x02, - 37660 - 19968: jis0212<<14 | 0x43<<7 | 0x39, - 37661 - 19968: jis0208<<14 | 0x5B<<7 | 0x22, - 37662 - 19968: jis0208<<14 | 0x5B<<7 | 0x20, - 37663 - 19968: jis0212<<14 | 0x43<<7 | 0x3C, - 37664 - 19968: jis0208<<14 | 0x1D<<7 | 0x5A, - 37665 - 19968: jis0208<<14 | 0x5B<<7 | 0x1D, - 37666 - 19968: jis0208<<14 | 0x4E<<7 | 0x01, - 37667 - 19968: jis0208<<14 | 0x4E<<7 | 0x03, - 37668 - 19968: jis0212<<14 | 0x43<<7 | 0x3E, - 37669 - 19968: jis0208<<14 | 0x5B<<7 | 0x1C, - 37670 - 19968: jis0208<<14 | 0x15<<7 | 0x32, - 37671 - 19968: jis0212<<14 | 0x43<<7 | 0x40, - 37672 - 19968: jis0208<<14 | 0x28<<7 | 0x24, - 37673 - 19968: jis0212<<14 | 0x43<<7 | 0x41, - 37674 - 19968: jis0212<<14 | 0x43<<7 | 0x42, - 37675 - 19968: jis0208<<14 | 0x1B<<7 | 0x41, - 37676 - 19968: jis0208<<14 | 0x2E<<7 | 0x02, - 37678 - 19968: jis0208<<14 | 0x4D<<7 | 0x5D, - 37679 - 19968: jis0208<<14 | 0x19<<7 | 0x57, - 37682 - 19968: jis0208<<14 | 0x2E<<7 | 0x1E, - 37683 - 19968: jis0212<<14 | 0x43<<7 | 0x43, - 37684 - 19968: jis0212<<14 | 0x43<<7 | 0x44, - 37685 - 19968: jis0208<<14 | 0x4E<<7 | 0x05, - 37686 - 19968: jis0212<<14 | 0x43<<7 | 0x45, - 37687 - 19968: jis0212<<14 | 0x43<<7 | 0x46, - 37690 - 19968: jis0208<<14 | 0x4E<<7 | 0x04, - 37691 - 19968: jis0208<<14 | 0x4E<<7 | 0x06, - 37700 - 19968: jis0208<<14 | 0x4D<<7 | 0x5C, - 37703 - 19968: jis0212<<14 | 0x43<<7 | 0x47, - 37704 - 19968: jis0208<<14 | 0x58<<7 | 0x02, - 37705 - 19968: jis0212<<14 | 0x43<<7 | 0x49, - 37707 - 19968: jis0208<<14 | 0x25<<7 | 0x48, - 37709 - 19968: jis0208<<14 | 0x24<<7 | 0x34, - 37712 - 19968: jis0212<<14 | 0x43<<7 | 0x4A, - 37713 - 19968: jis0212<<14 | 0x43<<7 | 0x4B, - 37714 - 19968: jis0212<<14 | 0x43<<7 | 0x4C, - 37716 - 19968: jis0208<<14 | 0x23<<7 | 0x36, - 37717 - 19968: jis0212<<14 | 0x43<<7 | 0x4D, - 37718 - 19968: jis0208<<14 | 0x4E<<7 | 0x0B, - 37719 - 19968: jis0208<<14 | 0x5B<<7 | 0x25, - 37720 - 19968: jis0212<<14 | 0x43<<7 | 0x4F, - 37722 - 19968: jis0212<<14 | 0x43<<7 | 0x50, - 37723 - 19968: jis0208<<14 | 0x22<<7 | 0x22, - 37724 - 19968: jis0208<<14 | 0x4E<<7 | 0x07, - 37726 - 19968: jis0212<<14 | 0x43<<7 | 0x51, - 37728 - 19968: jis0208<<14 | 0x4E<<7 | 0x08, - 37732 - 19968: jis0212<<14 | 0x43<<7 | 0x52, - 37733 - 19968: jis0212<<14 | 0x43<<7 | 0x53, - 37735 - 19968: jis0212<<14 | 0x43<<7 | 0x54, - 37737 - 19968: jis0212<<14 | 0x43<<7 | 0x55, - 37738 - 19968: jis0212<<14 | 0x43<<7 | 0x56, - 37740 - 19968: jis0208<<14 | 0x16<<7 | 0x0C, - 37741 - 19968: jis0212<<14 | 0x43<<7 | 0x57, - 37742 - 19968: jis0208<<14 | 0x4E<<7 | 0x0A, - 37743 - 19968: jis0212<<14 | 0x43<<7 | 0x58, - 37744 - 19968: jis0208<<14 | 0x5B<<7 | 0x24, - 37745 - 19968: jis0212<<14 | 0x43<<7 | 0x5A, - 37747 - 19968: jis0212<<14 | 0x43<<7 | 0x5B, - 37748 - 19968: jis0212<<14 | 0x43<<7 | 0x5C, - 37749 - 19968: jis0208<<14 | 0x17<<7 | 0x0F, - 37750 - 19968: jis0212<<14 | 0x43<<7 | 0x5D, - 37754 - 19968: jis0212<<14 | 0x44<<7 | 0x00, - 37756 - 19968: jis0208<<14 | 0x4E<<7 | 0x09, - 37757 - 19968: jis0212<<14 | 0x44<<7 | 0x01, - 37758 - 19968: jis0208<<14 | 0x1D<<7 | 0x40, - 37759 - 19968: jis0212<<14 | 0x44<<7 | 0x02, - 37760 - 19968: jis0212<<14 | 0x44<<7 | 0x03, - 37761 - 19968: jis0212<<14 | 0x44<<7 | 0x04, - 37762 - 19968: jis0212<<14 | 0x44<<7 | 0x05, - 37768 - 19968: jis0212<<14 | 0x44<<7 | 0x06, - 37770 - 19968: jis0212<<14 | 0x44<<7 | 0x07, - 37771 - 19968: jis0212<<14 | 0x44<<7 | 0x08, - 37772 - 19968: jis0208<<14 | 0x12<<7 | 0x58, - 37773 - 19968: jis0212<<14 | 0x44<<7 | 0x09, - 37775 - 19968: jis0212<<14 | 0x44<<7 | 0x0A, - 37778 - 19968: jis0212<<14 | 0x44<<7 | 0x0B, - 37780 - 19968: jis0208<<14 | 0x4E<<7 | 0x0F, - 37781 - 19968: jis0212<<14 | 0x44<<7 | 0x0C, - 37782 - 19968: jis0208<<14 | 0x19<<7 | 0x1E, - 37783 - 19968: jis0208<<14 | 0x20<<7 | 0x58, - 37784 - 19968: jis0212<<14 | 0x44<<7 | 0x0D, - 37786 - 19968: jis0208<<14 | 0x23<<7 | 0x29, - 37787 - 19968: jis0212<<14 | 0x44<<7 | 0x0E, - 37790 - 19968: jis0212<<14 | 0x44<<7 | 0x0F, - 37793 - 19968: jis0212<<14 | 0x44<<7 | 0x10, - 37795 - 19968: jis0212<<14 | 0x44<<7 | 0x11, - 37796 - 19968: jis0208<<14 | 0x5B<<7 | 0x26, - 37798 - 19968: jis0212<<14 | 0x44<<7 | 0x13, - 37799 - 19968: jis0208<<14 | 0x12<<7 | 0x1A, - 37800 - 19968: jis0212<<14 | 0x44<<7 | 0x14, - 37801 - 19968: jis0212<<14 | 0x44<<7 | 0x1A, - 37803 - 19968: jis0212<<14 | 0x44<<7 | 0x15, - 37804 - 19968: jis0208<<14 | 0x4E<<7 | 0x0D, - 37805 - 19968: jis0208<<14 | 0x4E<<7 | 0x0E, - 37806 - 19968: jis0208<<14 | 0x23<<7 | 0x22, - 37808 - 19968: jis0208<<14 | 0x4E<<7 | 0x0C, - 37812 - 19968: jis0212<<14 | 0x44<<7 | 0x16, - 37813 - 19968: jis0212<<14 | 0x44<<7 | 0x17, - 37814 - 19968: jis0212<<14 | 0x44<<7 | 0x18, - 37817 - 19968: jis0208<<14 | 0x4E<<7 | 0x10, - 37818 - 19968: jis0212<<14 | 0x44<<7 | 0x19, - 37825 - 19968: jis0212<<14 | 0x44<<7 | 0x1B, - 37827 - 19968: jis0208<<14 | 0x4E<<7 | 0x16, - 37828 - 19968: jis0212<<14 | 0x44<<7 | 0x1C, - 37829 - 19968: jis0212<<14 | 0x44<<7 | 0x1D, - 37830 - 19968: jis0208<<14 | 0x5B<<7 | 0x27, - 37831 - 19968: jis0212<<14 | 0x44<<7 | 0x1F, - 37832 - 19968: jis0208<<14 | 0x4E<<7 | 0x19, - 37833 - 19968: jis0212<<14 | 0x44<<7 | 0x20, - 37834 - 19968: jis0212<<14 | 0x44<<7 | 0x21, - 37835 - 19968: jis0212<<14 | 0x44<<7 | 0x22, - 37836 - 19968: jis0212<<14 | 0x44<<7 | 0x23, - 37837 - 19968: jis0212<<14 | 0x44<<7 | 0x24, - 37840 - 19968: jis0208<<14 | 0x4E<<7 | 0x18, - 37841 - 19968: jis0208<<14 | 0x24<<7 | 0x0C, - 37843 - 19968: jis0212<<14 | 0x44<<7 | 0x25, - 37846 - 19968: jis0208<<14 | 0x4E<<7 | 0x11, - 37847 - 19968: jis0208<<14 | 0x4E<<7 | 0x12, - 37848 - 19968: jis0208<<14 | 0x4E<<7 | 0x15, - 37849 - 19968: jis0212<<14 | 0x44<<7 | 0x26, - 37852 - 19968: jis0212<<14 | 0x44<<7 | 0x27, - 37853 - 19968: jis0208<<14 | 0x4E<<7 | 0x17, - 37854 - 19968: jis0208<<14 | 0x5B<<7 | 0x28, - 37855 - 19968: jis0212<<14 | 0x44<<7 | 0x29, - 37857 - 19968: jis0208<<14 | 0x15<<7 | 0x1F, - 37858 - 19968: jis0212<<14 | 0x44<<7 | 0x2A, - 37860 - 19968: jis0208<<14 | 0x4E<<7 | 0x1A, - 37861 - 19968: jis0208<<14 | 0x4E<<7 | 0x14, - 37862 - 19968: jis0212<<14 | 0x44<<7 | 0x2B, - 37863 - 19968: jis0212<<14 | 0x44<<7 | 0x2C, - 37864 - 19968: jis0208<<14 | 0x4E<<7 | 0x13, - 37879 - 19968: jis0212<<14 | 0x44<<7 | 0x2E, - 37880 - 19968: jis0208<<14 | 0x5B<<7 | 0x29, - 37881 - 19968: jis0212<<14 | 0x44<<7 | 0x2D, - 37882 - 19968: jis0212<<14 | 0x44<<7 | 0x30, - 37883 - 19968: jis0212<<14 | 0x44<<7 | 0x31, - 37885 - 19968: jis0212<<14 | 0x44<<7 | 0x32, - 37889 - 19968: jis0212<<14 | 0x44<<7 | 0x33, - 37890 - 19968: jis0212<<14 | 0x44<<7 | 0x34, - 37891 - 19968: jis0208<<14 | 0x4E<<7 | 0x1E, - 37892 - 19968: jis0212<<14 | 0x44<<7 | 0x35, - 37895 - 19968: jis0208<<14 | 0x4E<<7 | 0x1F, - 37896 - 19968: jis0212<<14 | 0x44<<7 | 0x36, - 37897 - 19968: jis0212<<14 | 0x44<<7 | 0x37, - 37901 - 19968: jis0212<<14 | 0x44<<7 | 0x38, - 37902 - 19968: jis0212<<14 | 0x44<<7 | 0x39, - 37903 - 19968: jis0212<<14 | 0x44<<7 | 0x3A, - 37904 - 19968: jis0208<<14 | 0x4E<<7 | 0x20, - 37907 - 19968: jis0208<<14 | 0x4E<<7 | 0x1D, - 37908 - 19968: jis0208<<14 | 0x4E<<7 | 0x1C, - 37909 - 19968: jis0212<<14 | 0x44<<7 | 0x3B, - 37910 - 19968: jis0212<<14 | 0x44<<7 | 0x3C, - 37911 - 19968: jis0212<<14 | 0x44<<7 | 0x3D, - 37912 - 19968: jis0208<<14 | 0x1D<<7 | 0x41, - 37913 - 19968: jis0208<<14 | 0x25<<7 | 0x09, - 37914 - 19968: jis0208<<14 | 0x4E<<7 | 0x1B, - 37919 - 19968: jis0212<<14 | 0x44<<7 | 0x3E, - 37921 - 19968: jis0208<<14 | 0x4E<<7 | 0x24, - 37931 - 19968: jis0208<<14 | 0x4E<<7 | 0x22, - 37934 - 19968: jis0212<<14 | 0x44<<7 | 0x3F, - 37935 - 19968: jis0212<<14 | 0x44<<7 | 0x40, - 37937 - 19968: jis0208<<14 | 0x5B<<7 | 0x2A, - 37938 - 19968: jis0212<<14 | 0x44<<7 | 0x42, - 37939 - 19968: jis0212<<14 | 0x44<<7 | 0x43, - 37940 - 19968: jis0212<<14 | 0x44<<7 | 0x44, - 37941 - 19968: jis0208<<14 | 0x4E<<7 | 0x23, - 37942 - 19968: jis0208<<14 | 0x4E<<7 | 0x21, - 37944 - 19968: jis0208<<14 | 0x21<<7 | 0x57, - 37946 - 19968: jis0208<<14 | 0x4E<<7 | 0x25, - 37947 - 19968: jis0212<<14 | 0x44<<7 | 0x45, - 37949 - 19968: jis0212<<14 | 0x44<<7 | 0x47, - 37951 - 19968: jis0212<<14 | 0x44<<7 | 0x46, - 37953 - 19968: jis0208<<14 | 0x4E<<7 | 0x26, - 37955 - 19968: jis0212<<14 | 0x44<<7 | 0x48, - 37956 - 19968: jis0208<<14 | 0x4E<<7 | 0x28, - 37957 - 19968: jis0208<<14 | 0x5B<<7 | 0x2B, - 37960 - 19968: jis0208<<14 | 0x5B<<7 | 0x2C, - 37962 - 19968: jis0212<<14 | 0x44<<7 | 0x4B, - 37964 - 19968: jis0212<<14 | 0x44<<7 | 0x4C, - 37969 - 19968: jis0208<<14 | 0x13<<7 | 0x34, - 37970 - 19968: jis0208<<14 | 0x4E<<7 | 0x27, - 37971 - 19968: jis0208<<14 | 0x2B<<7 | 0x59, - 37973 - 19968: jis0212<<14 | 0x44<<7 | 0x4D, - 37977 - 19968: jis0212<<14 | 0x44<<7 | 0x4E, - 37978 - 19968: jis0208<<14 | 0x4E<<7 | 0x33, - 37979 - 19968: jis0208<<14 | 0x4E<<7 | 0x29, - 37980 - 19968: jis0212<<14 | 0x44<<7 | 0x4F, - 37982 - 19968: jis0208<<14 | 0x4E<<7 | 0x2C, - 37983 - 19968: jis0212<<14 | 0x44<<7 | 0x50, - 37984 - 19968: jis0208<<14 | 0x4E<<7 | 0x2A, - 37985 - 19968: jis0212<<14 | 0x44<<7 | 0x51, - 37986 - 19968: jis0208<<14 | 0x4E<<7 | 0x2B, - 37987 - 19968: jis0212<<14 | 0x44<<7 | 0x52, - 37992 - 19968: jis0212<<14 | 0x44<<7 | 0x53, - 37994 - 19968: jis0208<<14 | 0x4E<<7 | 0x2D, - 37995 - 19968: jis0212<<14 | 0x44<<7 | 0x54, - 37997 - 19968: jis0212<<14 | 0x44<<7 | 0x55, - 37998 - 19968: jis0212<<14 | 0x44<<7 | 0x56, - 37999 - 19968: jis0212<<14 | 0x44<<7 | 0x57, - 38000 - 19968: jis0208<<14 | 0x4E<<7 | 0x2F, - 38001 - 19968: jis0212<<14 | 0x44<<7 | 0x58, - 38002 - 19968: jis0212<<14 | 0x44<<7 | 0x59, - 38005 - 19968: jis0208<<14 | 0x4E<<7 | 0x30, - 38007 - 19968: jis0208<<14 | 0x4E<<7 | 0x31, - 38012 - 19968: jis0208<<14 | 0x4E<<7 | 0x34, - 38013 - 19968: jis0208<<14 | 0x4E<<7 | 0x32, - 38014 - 19968: jis0208<<14 | 0x4E<<7 | 0x35, - 38015 - 19968: jis0208<<14 | 0x4E<<7 | 0x37, - 38017 - 19968: jis0208<<14 | 0x4E<<7 | 0x36, - 38019 - 19968: jis0212<<14 | 0x44<<7 | 0x5B, - 38020 - 19968: jis0212<<14 | 0x44<<7 | 0x5A, - 38263 - 19968: jis0208<<14 | 0x23<<7 | 0x18, - 38264 - 19968: jis0212<<14 | 0x44<<7 | 0x5C, - 38265 - 19968: jis0212<<14 | 0x44<<7 | 0x5D, - 38270 - 19968: jis0212<<14 | 0x45<<7 | 0x00, - 38272 - 19968: jis0208<<14 | 0x2B<<7 | 0x46, - 38274 - 19968: jis0208<<14 | 0x4E<<7 | 0x38, - 38275 - 19968: jis0208<<14 | 0x20<<7 | 0x0D, - 38276 - 19968: jis0212<<14 | 0x45<<7 | 0x01, - 38279 - 19968: jis0208<<14 | 0x4E<<7 | 0x39, - 38280 - 19968: jis0212<<14 | 0x45<<7 | 0x02, - 38281 - 19968: jis0208<<14 | 0x29<<7 | 0x23, - 38282 - 19968: jis0208<<14 | 0x4E<<7 | 0x3A, - 38283 - 19968: jis0208<<14 | 0x12<<7 | 0x0A, - 38284 - 19968: jis0212<<14 | 0x45<<7 | 0x03, - 38285 - 19968: jis0212<<14 | 0x45<<7 | 0x04, - 38286 - 19968: jis0212<<14 | 0x45<<7 | 0x05, - 38287 - 19968: jis0208<<14 | 0x10<<7 | 0x1B, - 38289 - 19968: jis0208<<14 | 0x13<<7 | 0x36, - 38290 - 19968: jis0208<<14 | 0x5B<<7 | 0x2D, - 38291 - 19968: jis0208<<14 | 0x13<<7 | 0x35, - 38292 - 19968: jis0208<<14 | 0x4E<<7 | 0x3B, - 38294 - 19968: jis0208<<14 | 0x4E<<7 | 0x3C, - 38296 - 19968: jis0208<<14 | 0x4E<<7 | 0x3D, - 38297 - 19968: jis0208<<14 | 0x4E<<7 | 0x3E, - 38301 - 19968: jis0212<<14 | 0x45<<7 | 0x06, - 38302 - 19968: jis0212<<14 | 0x45<<7 | 0x07, - 38303 - 19968: jis0212<<14 | 0x45<<7 | 0x08, - 38304 - 19968: jis0208<<14 | 0x4E<<7 | 0x3F, - 38305 - 19968: jis0212<<14 | 0x45<<7 | 0x09, - 38306 - 19968: jis0208<<14 | 0x13<<7 | 0x37, - 38307 - 19968: jis0208<<14 | 0x12<<7 | 0x34, - 38308 - 19968: jis0208<<14 | 0x18<<7 | 0x3D, - 38309 - 19968: jis0208<<14 | 0x27<<7 | 0x15, - 38310 - 19968: jis0212<<14 | 0x45<<7 | 0x0A, - 38311 - 19968: jis0208<<14 | 0x4E<<7 | 0x41, - 38312 - 19968: jis0208<<14 | 0x4E<<7 | 0x40, - 38313 - 19968: jis0212<<14 | 0x45<<7 | 0x0B, - 38315 - 19968: jis0212<<14 | 0x45<<7 | 0x0C, - 38316 - 19968: jis0212<<14 | 0x45<<7 | 0x0D, - 38317 - 19968: jis0208<<14 | 0x4E<<7 | 0x42, - 38322 - 19968: jis0208<<14 | 0x10<<7 | 0x3B, - 38324 - 19968: jis0212<<14 | 0x45<<7 | 0x0E, - 38326 - 19968: jis0212<<14 | 0x45<<7 | 0x0F, - 38329 - 19968: jis0208<<14 | 0x4E<<7 | 0x45, - 38330 - 19968: jis0212<<14 | 0x45<<7 | 0x10, - 38331 - 19968: jis0208<<14 | 0x4E<<7 | 0x44, - 38332 - 19968: jis0208<<14 | 0x4E<<7 | 0x43, - 38333 - 19968: jis0212<<14 | 0x45<<7 | 0x11, - 38334 - 19968: jis0208<<14 | 0x4E<<7 | 0x46, - 38335 - 19968: jis0212<<14 | 0x45<<7 | 0x12, - 38339 - 19968: jis0208<<14 | 0x4E<<7 | 0x49, - 38342 - 19968: jis0212<<14 | 0x45<<7 | 0x13, - 38343 - 19968: jis0208<<14 | 0x0F<<7 | 0x26, - 38344 - 19968: jis0212<<14 | 0x45<<7 | 0x14, - 38345 - 19968: jis0212<<14 | 0x45<<7 | 0x15, - 38346 - 19968: jis0208<<14 | 0x4E<<7 | 0x47, - 38347 - 19968: jis0212<<14 | 0x45<<7 | 0x16, - 38348 - 19968: jis0208<<14 | 0x4E<<7 | 0x4B, - 38349 - 19968: jis0208<<14 | 0x4E<<7 | 0x4A, - 38352 - 19968: jis0212<<14 | 0x45<<7 | 0x17, - 38353 - 19968: jis0212<<14 | 0x45<<7 | 0x18, - 38354 - 19968: jis0212<<14 | 0x45<<7 | 0x19, - 38355 - 19968: jis0212<<14 | 0x45<<7 | 0x1A, - 38356 - 19968: jis0208<<14 | 0x4E<<7 | 0x4D, - 38357 - 19968: jis0208<<14 | 0x4E<<7 | 0x4C, - 38358 - 19968: jis0208<<14 | 0x4E<<7 | 0x4E, - 38360 - 19968: jis0208<<14 | 0x25<<7 | 0x0D, - 38361 - 19968: jis0212<<14 | 0x45<<7 | 0x1B, - 38362 - 19968: jis0212<<14 | 0x45<<7 | 0x1C, - 38364 - 19968: jis0208<<14 | 0x4E<<7 | 0x4F, - 38365 - 19968: jis0212<<14 | 0x45<<7 | 0x1D, - 38366 - 19968: jis0212<<14 | 0x45<<7 | 0x1E, - 38367 - 19968: jis0212<<14 | 0x45<<7 | 0x1F, - 38368 - 19968: jis0212<<14 | 0x45<<7 | 0x20, - 38369 - 19968: jis0208<<14 | 0x4E<<7 | 0x50, - 38370 - 19968: jis0208<<14 | 0x4E<<7 | 0x52, - 38372 - 19968: jis0212<<14 | 0x45<<7 | 0x21, - 38373 - 19968: jis0208<<14 | 0x4E<<7 | 0x51, - 38374 - 19968: jis0212<<14 | 0x45<<7 | 0x22, - 38428 - 19968: jis0208<<14 | 0x28<<7 | 0x4B, - 38429 - 19968: jis0212<<14 | 0x45<<7 | 0x23, - 38430 - 19968: jis0212<<14 | 0x45<<7 | 0x24, - 38433 - 19968: jis0208<<14 | 0x4E<<7 | 0x53, - 38434 - 19968: jis0212<<14 | 0x45<<7 | 0x25, - 38436 - 19968: jis0212<<14 | 0x45<<7 | 0x26, - 38437 - 19968: jis0212<<14 | 0x45<<7 | 0x27, - 38438 - 19968: jis0212<<14 | 0x45<<7 | 0x28, - 38440 - 19968: jis0208<<14 | 0x4E<<7 | 0x54, - 38442 - 19968: jis0208<<14 | 0x19<<7 | 0x44, - 38444 - 19968: jis0212<<14 | 0x45<<7 | 0x29, - 38446 - 19968: jis0208<<14 | 0x4E<<7 | 0x55, - 38447 - 19968: jis0208<<14 | 0x4E<<7 | 0x56, - 38449 - 19968: jis0212<<14 | 0x45<<7 | 0x2A, - 38450 - 19968: jis0208<<14 | 0x2A<<7 | 0x28, - 38451 - 19968: jis0212<<14 | 0x45<<7 | 0x2B, - 38455 - 19968: jis0212<<14 | 0x45<<7 | 0x2C, - 38456 - 19968: jis0212<<14 | 0x45<<7 | 0x2D, - 38457 - 19968: jis0212<<14 | 0x45<<7 | 0x2E, - 38458 - 19968: jis0212<<14 | 0x45<<7 | 0x2F, - 38459 - 19968: jis0208<<14 | 0x20<<7 | 0x2A, - 38460 - 19968: jis0212<<14 | 0x45<<7 | 0x30, - 38461 - 19968: jis0212<<14 | 0x45<<7 | 0x31, - 38463 - 19968: jis0208<<14 | 0x0F<<7 | 0x03, - 38464 - 19968: jis0208<<14 | 0x21<<7 | 0x2A, - 38465 - 19968: jis0212<<14 | 0x45<<7 | 0x32, - 38466 - 19968: jis0208<<14 | 0x4E<<7 | 0x57, - 38468 - 19968: jis0208<<14 | 0x28<<7 | 0x4C, - 38475 - 19968: jis0208<<14 | 0x4E<<7 | 0x5A, - 38476 - 19968: jis0208<<14 | 0x4E<<7 | 0x58, - 38477 - 19968: jis0208<<14 | 0x18<<7 | 0x3E, - 38479 - 19968: jis0208<<14 | 0x4E<<7 | 0x59, - 38480 - 19968: jis0208<<14 | 0x17<<7 | 0x21, - 38482 - 19968: jis0212<<14 | 0x45<<7 | 0x33, - 38484 - 19968: jis0212<<14 | 0x45<<7 | 0x34, - 38486 - 19968: jis0212<<14 | 0x45<<7 | 0x35, - 38487 - 19968: jis0212<<14 | 0x45<<7 | 0x36, - 38488 - 19968: jis0212<<14 | 0x45<<7 | 0x37, - 38491 - 19968: jis0208<<14 | 0x29<<7 | 0x24, - 38492 - 19968: jis0208<<14 | 0x4E<<7 | 0x5C, - 38493 - 19968: jis0208<<14 | 0x4F<<7 | 0x00, - 38494 - 19968: jis0208<<14 | 0x4E<<7 | 0x5D, - 38495 - 19968: jis0208<<14 | 0x4F<<7 | 0x01, - 38497 - 19968: jis0212<<14 | 0x45<<7 | 0x38, - 38498 - 19968: jis0208<<14 | 0x10<<7 | 0x00, - 38499 - 19968: jis0208<<14 | 0x1E<<7 | 0x37, - 38500 - 19968: jis0208<<14 | 0x1C<<7 | 0x5B, - 38501 - 19968: jis0208<<14 | 0x13<<7 | 0x38, - 38502 - 19968: jis0208<<14 | 0x4F<<7 | 0x02, - 38506 - 19968: jis0208<<14 | 0x26<<7 | 0x45, - 38508 - 19968: jis0208<<14 | 0x4F<<7 | 0x04, - 38510 - 19968: jis0212<<14 | 0x45<<7 | 0x39, - 38512 - 19968: jis0208<<14 | 0x10<<7 | 0x01, - 38514 - 19968: jis0208<<14 | 0x4F<<7 | 0x03, - 38515 - 19968: jis0208<<14 | 0x23<<7 | 0x23, - 38516 - 19968: jis0212<<14 | 0x45<<7 | 0x3A, - 38517 - 19968: jis0208<<14 | 0x2D<<7 | 0x2C, - 38518 - 19968: jis0208<<14 | 0x25<<7 | 0x0A, - 38519 - 19968: jis0208<<14 | 0x4E<<7 | 0x5B, - 38520 - 19968: jis0208<<14 | 0x2D<<7 | 0x05, - 38522 - 19968: jis0208<<14 | 0x17<<7 | 0x10, - 38523 - 19968: jis0212<<14 | 0x45<<7 | 0x3B, - 38524 - 19968: jis0212<<14 | 0x45<<7 | 0x3C, - 38525 - 19968: jis0208<<14 | 0x2C<<7 | 0x3A, - 38526 - 19968: jis0212<<14 | 0x45<<7 | 0x3D, - 38527 - 19968: jis0212<<14 | 0x45<<7 | 0x3E, - 38529 - 19968: jis0212<<14 | 0x45<<7 | 0x3F, - 38530 - 19968: jis0212<<14 | 0x45<<7 | 0x40, - 38531 - 19968: jis0212<<14 | 0x45<<7 | 0x41, - 38532 - 19968: jis0212<<14 | 0x45<<7 | 0x42, - 38533 - 19968: jis0208<<14 | 0x15<<7 | 0x58, - 38534 - 19968: jis0208<<14 | 0x2D<<7 | 0x13, - 38536 - 19968: jis0208<<14 | 0x16<<7 | 0x07, - 38537 - 19968: jis0212<<14 | 0x45<<7 | 0x43, - 38538 - 19968: jis0208<<14 | 0x21<<7 | 0x41, - 38539 - 19968: jis0208<<14 | 0x46<<7 | 0x00, - 38541 - 19968: jis0208<<14 | 0x4F<<7 | 0x05, - 38542 - 19968: jis0208<<14 | 0x12<<7 | 0x0B, - 38543 - 19968: jis0208<<14 | 0x1E<<7 | 0x4E, - 38545 - 19968: jis0212<<14 | 0x45<<7 | 0x44, - 38548 - 19968: jis0208<<14 | 0x12<<7 | 0x35, - 38549 - 19968: jis0208<<14 | 0x4F<<7 | 0x07, - 38550 - 19968: jis0212<<14 | 0x45<<7 | 0x45, - 38551 - 19968: jis0208<<14 | 0x4F<<7 | 0x08, - 38552 - 19968: jis0208<<14 | 0x4F<<7 | 0x06, - 38553 - 19968: jis0208<<14 | 0x16<<7 | 0x43, - 38554 - 19968: jis0212<<14 | 0x45<<7 | 0x46, - 38555 - 19968: jis0208<<14 | 0x19<<7 | 0x3C, - 38556 - 19968: jis0208<<14 | 0x1D<<7 | 0x42, - 38557 - 19968: jis0208<<14 | 0x5B<<7 | 0x30, - 38559 - 19968: jis0212<<14 | 0x45<<7 | 0x48, - 38560 - 19968: jis0208<<14 | 0x10<<7 | 0x02, - 38563 - 19968: jis0208<<14 | 0x2D<<7 | 0x38, - 38564 - 19968: jis0212<<14 | 0x45<<7 | 0x49, - 38565 - 19968: jis0212<<14 | 0x45<<7 | 0x4A, - 38566 - 19968: jis0212<<14 | 0x45<<7 | 0x4B, - 38567 - 19968: jis0208<<14 | 0x4F<<7 | 0x0A, - 38568 - 19968: jis0208<<14 | 0x4D<<7 | 0x0D, - 38569 - 19968: jis0212<<14 | 0x45<<7 | 0x4C, - 38570 - 19968: jis0208<<14 | 0x4F<<7 | 0x09, - 38574 - 19968: jis0212<<14 | 0x45<<7 | 0x4D, - 38575 - 19968: jis0208<<14 | 0x5B<<7 | 0x31, - 38576 - 19968: jis0208<<14 | 0x4F<<7 | 0x0D, - 38577 - 19968: jis0208<<14 | 0x4F<<7 | 0x0B, - 38578 - 19968: jis0208<<14 | 0x4F<<7 | 0x0C, - 38579 - 19968: jis0212<<14 | 0x45<<7 | 0x4F, - 38580 - 19968: jis0208<<14 | 0x4F<<7 | 0x0E, - 38582 - 19968: jis0208<<14 | 0x4F<<7 | 0x0F, - 38583 - 19968: jis0208<<14 | 0x2D<<7 | 0x4B, - 38584 - 19968: jis0208<<14 | 0x4F<<7 | 0x10, - 38585 - 19968: jis0208<<14 | 0x4F<<7 | 0x11, - 38586 - 19968: jis0212<<14 | 0x45<<7 | 0x50, - 38587 - 19968: jis0208<<14 | 0x1F<<7 | 0x28, - 38588 - 19968: jis0208<<14 | 0x27<<7 | 0x1A, - 38592 - 19968: jis0208<<14 | 0x1E<<7 | 0x5C, - 38593 - 19968: jis0208<<14 | 0x13<<7 | 0x46, - 38596 - 19968: jis0208<<14 | 0x2C<<7 | 0x19, - 38597 - 19968: jis0208<<14 | 0x11<<7 | 0x4C, - 38598 - 19968: jis0208<<14 | 0x1C<<7 | 0x17, - 38599 - 19968: jis0208<<14 | 0x17<<7 | 0x3A, - 38601 - 19968: jis0208<<14 | 0x4F<<7 | 0x14, - 38602 - 19968: jis0212<<14 | 0x45<<7 | 0x51, - 38603 - 19968: jis0208<<14 | 0x4F<<7 | 0x13, - 38604 - 19968: jis0208<<14 | 0x1A<<7 | 0x52, - 38605 - 19968: jis0208<<14 | 0x4F<<7 | 0x15, - 38606 - 19968: jis0208<<14 | 0x4F<<7 | 0x12, - 38609 - 19968: jis0208<<14 | 0x1A<<7 | 0x07, - 38610 - 19968: jis0212<<14 | 0x45<<7 | 0x52, - 38613 - 19968: jis0208<<14 | 0x4F<<7 | 0x19, - 38614 - 19968: jis0208<<14 | 0x49<<7 | 0x0C, - 38616 - 19968: jis0212<<14 | 0x45<<7 | 0x54, - 38617 - 19968: jis0208<<14 | 0x31<<7 | 0x35, - 38618 - 19968: jis0212<<14 | 0x45<<7 | 0x55, - 38619 - 19968: jis0208<<14 | 0x1E<<7 | 0x56, - 38620 - 19968: jis0208<<14 | 0x4F<<7 | 0x17, - 38621 - 19968: jis0212<<14 | 0x45<<7 | 0x56, - 38622 - 19968: jis0212<<14 | 0x45<<7 | 0x57, - 38623 - 19968: jis0212<<14 | 0x45<<7 | 0x58, - 38626 - 19968: jis0208<<14 | 0x2D<<7 | 0x04, - 38627 - 19968: jis0208<<14 | 0x25<<7 | 0x50, - 38632 - 19968: jis0208<<14 | 0x10<<7 | 0x0A, - 38633 - 19968: jis0212<<14 | 0x45<<7 | 0x59, - 38634 - 19968: jis0208<<14 | 0x1F<<7 | 0x42, - 38635 - 19968: jis0208<<14 | 0x1B<<7 | 0x15, - 38639 - 19968: jis0212<<14 | 0x45<<7 | 0x5A, - 38640 - 19968: jis0208<<14 | 0x29<<7 | 0x16, - 38641 - 19968: jis0212<<14 | 0x45<<7 | 0x5B, - 38642 - 19968: jis0208<<14 | 0x10<<7 | 0x1F, - 38646 - 19968: jis0208<<14 | 0x2D<<7 | 0x4C, - 38647 - 19968: jis0208<<14 | 0x2C<<7 | 0x4A, - 38649 - 19968: jis0208<<14 | 0x4F<<7 | 0x1A, - 38650 - 19968: jis0212<<14 | 0x45<<7 | 0x5C, - 38651 - 19968: jis0208<<14 | 0x24<<7 | 0x24, - 38656 - 19968: jis0208<<14 | 0x1B<<7 | 0x5A, - 38658 - 19968: jis0212<<14 | 0x45<<7 | 0x5D, - 38659 - 19968: jis0212<<14 | 0x46<<7 | 0x00, - 38660 - 19968: jis0208<<14 | 0x4F<<7 | 0x1B, - 38661 - 19968: jis0212<<14 | 0x46<<7 | 0x01, - 38662 - 19968: jis0208<<14 | 0x4F<<7 | 0x1C, - 38663 - 19968: jis0208<<14 | 0x1E<<7 | 0x2B, - 38664 - 19968: jis0208<<14 | 0x4F<<7 | 0x1D, - 38665 - 19968: jis0212<<14 | 0x46<<7 | 0x02, - 38666 - 19968: jis0208<<14 | 0x2D<<7 | 0x4D, - 38669 - 19968: jis0208<<14 | 0x4F<<7 | 0x18, - 38670 - 19968: jis0208<<14 | 0x4F<<7 | 0x1F, - 38671 - 19968: jis0208<<14 | 0x4F<<7 | 0x21, - 38673 - 19968: jis0208<<14 | 0x4F<<7 | 0x20, - 38675 - 19968: jis0208<<14 | 0x4F<<7 | 0x1E, - 38678 - 19968: jis0208<<14 | 0x4F<<7 | 0x22, - 38681 - 19968: jis0208<<14 | 0x4F<<7 | 0x23, - 38682 - 19968: jis0212<<14 | 0x46<<7 | 0x03, - 38683 - 19968: jis0212<<14 | 0x46<<7 | 0x04, - 38684 - 19968: jis0208<<14 | 0x20<<7 | 0x59, - 38685 - 19968: jis0212<<14 | 0x46<<7 | 0x05, - 38686 - 19968: jis0208<<14 | 0x11<<7 | 0x41, - 38689 - 19968: jis0212<<14 | 0x46<<7 | 0x06, - 38690 - 19968: jis0212<<14 | 0x46<<7 | 0x07, - 38691 - 19968: jis0212<<14 | 0x46<<7 | 0x08, - 38692 - 19968: jis0208<<14 | 0x4F<<7 | 0x24, - 38695 - 19968: jis0208<<14 | 0x2B<<7 | 0x17, - 38696 - 19968: jis0212<<14 | 0x46<<7 | 0x09, - 38698 - 19968: jis0208<<14 | 0x4F<<7 | 0x25, - 38704 - 19968: jis0208<<14 | 0x4F<<7 | 0x26, - 38705 - 19968: jis0212<<14 | 0x46<<7 | 0x0A, - 38706 - 19968: jis0208<<14 | 0x2E<<7 | 0x09, - 38707 - 19968: jis0208<<14 | 0x5B<<7 | 0x32, - 38712 - 19968: jis0208<<14 | 0x3A<<7 | 0x10, - 38713 - 19968: jis0208<<14 | 0x4F<<7 | 0x27, - 38715 - 19968: jis0208<<14 | 0x5B<<7 | 0x33, - 38717 - 19968: jis0208<<14 | 0x4F<<7 | 0x28, - 38718 - 19968: jis0208<<14 | 0x4F<<7 | 0x29, - 38721 - 19968: jis0212<<14 | 0x46<<7 | 0x0C, - 38722 - 19968: jis0208<<14 | 0x4F<<7 | 0x2D, - 38723 - 19968: jis0208<<14 | 0x5B<<7 | 0x34, - 38724 - 19968: jis0208<<14 | 0x4F<<7 | 0x2A, - 38726 - 19968: jis0208<<14 | 0x4F<<7 | 0x2B, - 38728 - 19968: jis0208<<14 | 0x4F<<7 | 0x2C, - 38729 - 19968: jis0208<<14 | 0x4F<<7 | 0x2E, - 38730 - 19968: jis0212<<14 | 0x46<<7 | 0x0E, - 38733 - 19968: jis0208<<14 | 0x5B<<7 | 0x35, - 38734 - 19968: jis0212<<14 | 0x46<<7 | 0x0F, - 38735 - 19968: jis0208<<14 | 0x5B<<7 | 0x36, - 38737 - 19968: jis0208<<14 | 0x5B<<7 | 0x37, - 38738 - 19968: jis0208<<14 | 0x1F<<7 | 0x23, - 38741 - 19968: jis0208<<14 | 0x5B<<7 | 0x38, - 38742 - 19968: jis0208<<14 | 0x2B<<7 | 0x56, - 38743 - 19968: jis0212<<14 | 0x46<<7 | 0x12, - 38744 - 19968: jis0212<<14 | 0x46<<7 | 0x13, - 38745 - 19968: jis0208<<14 | 0x1F<<7 | 0x24, - 38746 - 19968: jis0212<<14 | 0x46<<7 | 0x14, - 38747 - 19968: jis0212<<14 | 0x46<<7 | 0x15, - 38748 - 19968: jis0208<<14 | 0x4F<<7 | 0x2F, - 38750 - 19968: jis0208<<14 | 0x27<<7 | 0x52, - 38752 - 19968: jis0208<<14 | 0x4F<<7 | 0x30, - 38753 - 19968: jis0208<<14 | 0x52<<7 | 0x32, - 38754 - 19968: jis0208<<14 | 0x2B<<7 | 0x2B, - 38755 - 19968: jis0212<<14 | 0x46<<7 | 0x16, - 38756 - 19968: jis0208<<14 | 0x4F<<7 | 0x31, - 38758 - 19968: jis0208<<14 | 0x4F<<7 | 0x32, - 38759 - 19968: jis0212<<14 | 0x46<<7 | 0x17, - 38760 - 19968: jis0208<<14 | 0x4F<<7 | 0x33, - 38761 - 19968: jis0208<<14 | 0x12<<7 | 0x36, - 38762 - 19968: jis0212<<14 | 0x46<<7 | 0x18, - 38763 - 19968: jis0208<<14 | 0x4F<<7 | 0x35, - 38765 - 19968: jis0208<<14 | 0x1E<<7 | 0x38, - 38766 - 19968: jis0212<<14 | 0x46<<7 | 0x19, - 38769 - 19968: jis0208<<14 | 0x4F<<7 | 0x36, - 38771 - 19968: jis0212<<14 | 0x46<<7 | 0x1A, - 38772 - 19968: jis0208<<14 | 0x16<<7 | 0x03, - 38774 - 19968: jis0212<<14 | 0x46<<7 | 0x1B, - 38775 - 19968: jis0212<<14 | 0x46<<7 | 0x1C, - 38776 - 19968: jis0212<<14 | 0x46<<7 | 0x1D, - 38777 - 19968: jis0208<<14 | 0x4F<<7 | 0x37, - 38778 - 19968: jis0208<<14 | 0x4F<<7 | 0x3B, - 38779 - 19968: jis0212<<14 | 0x46<<7 | 0x1E, - 38780 - 19968: jis0208<<14 | 0x4F<<7 | 0x39, - 38781 - 19968: jis0212<<14 | 0x46<<7 | 0x1F, - 38783 - 19968: jis0212<<14 | 0x46<<7 | 0x20, - 38784 - 19968: jis0212<<14 | 0x46<<7 | 0x21, - 38785 - 19968: jis0208<<14 | 0x4F<<7 | 0x3A, - 38788 - 19968: jis0208<<14 | 0x12<<7 | 0x52, - 38789 - 19968: jis0208<<14 | 0x4F<<7 | 0x38, - 38790 - 19968: jis0208<<14 | 0x4F<<7 | 0x3C, - 38793 - 19968: jis0212<<14 | 0x46<<7 | 0x22, - 38795 - 19968: jis0208<<14 | 0x4F<<7 | 0x3D, - 38797 - 19968: jis0208<<14 | 0x0F<<7 | 0x27, - 38799 - 19968: jis0208<<14 | 0x4F<<7 | 0x3E, - 38800 - 19968: jis0208<<14 | 0x4F<<7 | 0x3F, - 38805 - 19968: jis0212<<14 | 0x46<<7 | 0x23, - 38806 - 19968: jis0212<<14 | 0x46<<7 | 0x24, - 38807 - 19968: jis0212<<14 | 0x46<<7 | 0x25, - 38808 - 19968: jis0208<<14 | 0x1D<<7 | 0x43, - 38809 - 19968: jis0212<<14 | 0x46<<7 | 0x26, - 38810 - 19968: jis0212<<14 | 0x46<<7 | 0x27, - 38812 - 19968: jis0208<<14 | 0x4F<<7 | 0x40, - 38814 - 19968: jis0212<<14 | 0x46<<7 | 0x28, - 38815 - 19968: jis0212<<14 | 0x46<<7 | 0x29, - 38816 - 19968: jis0208<<14 | 0x14<<7 | 0x26, - 38818 - 19968: jis0212<<14 | 0x46<<7 | 0x2A, - 38819 - 19968: jis0208<<14 | 0x4F<<7 | 0x43, - 38822 - 19968: jis0208<<14 | 0x4F<<7 | 0x42, - 38824 - 19968: jis0208<<14 | 0x4F<<7 | 0x41, - 38827 - 19968: jis0208<<14 | 0x4A<<7 | 0x50, - 38828 - 19968: jis0212<<14 | 0x46<<7 | 0x2B, - 38829 - 19968: jis0208<<14 | 0x29<<7 | 0x3B, - 38830 - 19968: jis0212<<14 | 0x46<<7 | 0x2C, - 38833 - 19968: jis0212<<14 | 0x46<<7 | 0x2D, - 38834 - 19968: jis0212<<14 | 0x46<<7 | 0x2E, - 38835 - 19968: jis0208<<14 | 0x4F<<7 | 0x44, - 38836 - 19968: jis0208<<14 | 0x4F<<7 | 0x45, - 38837 - 19968: jis0212<<14 | 0x46<<7 | 0x2F, - 38838 - 19968: jis0212<<14 | 0x46<<7 | 0x30, - 38840 - 19968: jis0212<<14 | 0x46<<7 | 0x31, - 38841 - 19968: jis0212<<14 | 0x46<<7 | 0x32, - 38842 - 19968: jis0212<<14 | 0x46<<7 | 0x33, - 38844 - 19968: jis0212<<14 | 0x46<<7 | 0x34, - 38846 - 19968: jis0212<<14 | 0x46<<7 | 0x35, - 38847 - 19968: jis0212<<14 | 0x46<<7 | 0x36, - 38849 - 19968: jis0212<<14 | 0x46<<7 | 0x37, - 38851 - 19968: jis0208<<14 | 0x4F<<7 | 0x46, - 38852 - 19968: jis0212<<14 | 0x46<<7 | 0x38, - 38853 - 19968: jis0212<<14 | 0x46<<7 | 0x39, - 38854 - 19968: jis0208<<14 | 0x4F<<7 | 0x47, - 38855 - 19968: jis0212<<14 | 0x46<<7 | 0x3A, - 38856 - 19968: jis0208<<14 | 0x4F<<7 | 0x48, - 38857 - 19968: jis0212<<14 | 0x46<<7 | 0x3B, - 38858 - 19968: jis0212<<14 | 0x46<<7 | 0x3C, - 38859 - 19968: jis0208<<14 | 0x4F<<7 | 0x49, - 38860 - 19968: jis0212<<14 | 0x46<<7 | 0x3D, - 38861 - 19968: jis0212<<14 | 0x46<<7 | 0x3E, - 38862 - 19968: jis0212<<14 | 0x46<<7 | 0x3F, - 38864 - 19968: jis0212<<14 | 0x46<<7 | 0x40, - 38865 - 19968: jis0212<<14 | 0x46<<7 | 0x41, - 38867 - 19968: jis0208<<14 | 0x13<<7 | 0x39, - 38868 - 19968: jis0212<<14 | 0x46<<7 | 0x42, - 38871 - 19968: jis0212<<14 | 0x46<<7 | 0x43, - 38872 - 19968: jis0212<<14 | 0x46<<7 | 0x44, - 38873 - 19968: jis0212<<14 | 0x46<<7 | 0x45, - 38875 - 19968: jis0212<<14 | 0x46<<7 | 0x49, - 38876 - 19968: jis0208<<14 | 0x4F<<7 | 0x4A, - 38877 - 19968: jis0212<<14 | 0x46<<7 | 0x46, - 38878 - 19968: jis0212<<14 | 0x46<<7 | 0x47, - 38880 - 19968: jis0212<<14 | 0x46<<7 | 0x48, - 38881 - 19968: jis0212<<14 | 0x46<<7 | 0x4A, - 38884 - 19968: jis0212<<14 | 0x46<<7 | 0x4B, - 38893 - 19968: jis0208<<14 | 0x4F<<7 | 0x4B, - 38894 - 19968: jis0208<<14 | 0x26<<7 | 0x02, - 38895 - 19968: jis0212<<14 | 0x46<<7 | 0x4C, - 38897 - 19968: jis0212<<14 | 0x46<<7 | 0x4D, - 38898 - 19968: jis0208<<14 | 0x4F<<7 | 0x4D, - 38899 - 19968: jis0208<<14 | 0x11<<7 | 0x1A, - 38900 - 19968: jis0212<<14 | 0x46<<7 | 0x4E, - 38901 - 19968: jis0208<<14 | 0x4F<<7 | 0x50, - 38902 - 19968: jis0208<<14 | 0x4F<<7 | 0x4F, - 38903 - 19968: jis0212<<14 | 0x46<<7 | 0x4F, - 38904 - 19968: jis0212<<14 | 0x46<<7 | 0x50, - 38906 - 19968: jis0212<<14 | 0x46<<7 | 0x51, - 38907 - 19968: jis0208<<14 | 0x10<<7 | 0x03, - 38911 - 19968: jis0208<<14 | 0x15<<7 | 0x20, - 38913 - 19968: jis0208<<14 | 0x29<<7 | 0x26, - 38914 - 19968: jis0208<<14 | 0x23<<7 | 0x19, - 38915 - 19968: jis0208<<14 | 0x19<<7 | 0x01, - 38917 - 19968: jis0208<<14 | 0x18<<7 | 0x3F, - 38918 - 19968: jis0208<<14 | 0x1C<<7 | 0x46, - 38919 - 19968: jis0212<<14 | 0x46<<7 | 0x52, - 38920 - 19968: jis0208<<14 | 0x1E<<7 | 0x3B, - 38922 - 19968: jis0212<<14 | 0x46<<7 | 0x53, - 38924 - 19968: jis0208<<14 | 0x4F<<7 | 0x52, - 38925 - 19968: jis0212<<14 | 0x46<<7 | 0x55, - 38926 - 19968: jis0212<<14 | 0x46<<7 | 0x56, - 38927 - 19968: jis0208<<14 | 0x4F<<7 | 0x51, - 38928 - 19968: jis0208<<14 | 0x2C<<7 | 0x21, - 38929 - 19968: jis0208<<14 | 0x13<<7 | 0x47, - 38930 - 19968: jis0208<<14 | 0x27<<7 | 0x31, - 38931 - 19968: jis0208<<14 | 0x25<<7 | 0x3B, - 38932 - 19968: jis0212<<14 | 0x46<<7 | 0x57, - 38934 - 19968: jis0212<<14 | 0x46<<7 | 0x58, - 38935 - 19968: jis0208<<14 | 0x1E<<7 | 0x5B, - 38936 - 19968: jis0208<<14 | 0x2D<<7 | 0x2D, - 38937 - 19968: jis0212<<14 | 0x46<<7 | 0x54, - 38938 - 19968: jis0208<<14 | 0x16<<7 | 0x3A, - 38940 - 19968: jis0212<<14 | 0x46<<7 | 0x59, - 38942 - 19968: jis0212<<14 | 0x46<<7 | 0x5A, - 38944 - 19968: jis0212<<14 | 0x46<<7 | 0x5B, - 38945 - 19968: jis0208<<14 | 0x4F<<7 | 0x55, - 38947 - 19968: jis0212<<14 | 0x46<<7 | 0x5C, - 38948 - 19968: jis0208<<14 | 0x4F<<7 | 0x54, - 38949 - 19968: jis0212<<14 | 0x47<<7 | 0x07, - 38950 - 19968: jis0212<<14 | 0x46<<7 | 0x5D, - 38955 - 19968: jis0212<<14 | 0x47<<7 | 0x00, - 38956 - 19968: jis0208<<14 | 0x2A<<7 | 0x2A, - 38957 - 19968: jis0208<<14 | 0x25<<7 | 0x0B, - 38958 - 19968: jis0212<<14 | 0x47<<7 | 0x01, - 38959 - 19968: jis0212<<14 | 0x47<<7 | 0x02, - 38960 - 19968: jis0212<<14 | 0x47<<7 | 0x03, - 38962 - 19968: jis0212<<14 | 0x47<<7 | 0x04, - 38963 - 19968: jis0212<<14 | 0x47<<7 | 0x05, - 38964 - 19968: jis0208<<14 | 0x10<<7 | 0x2F, - 38965 - 19968: jis0212<<14 | 0x47<<7 | 0x06, - 38967 - 19968: jis0208<<14 | 0x4F<<7 | 0x56, - 38968 - 19968: jis0208<<14 | 0x4F<<7 | 0x53, - 38971 - 19968: jis0208<<14 | 0x28<<7 | 0x30, - 38972 - 19968: jis0208<<14 | 0x2C<<7 | 0x49, - 38973 - 19968: jis0208<<14 | 0x4F<<7 | 0x57, - 38974 - 19968: jis0212<<14 | 0x47<<7 | 0x08, - 38980 - 19968: jis0212<<14 | 0x47<<7 | 0x09, - 38982 - 19968: jis0208<<14 | 0x4F<<7 | 0x58, - 38983 - 19968: jis0212<<14 | 0x47<<7 | 0x0A, - 38986 - 19968: jis0212<<14 | 0x47<<7 | 0x0B, - 38987 - 19968: jis0208<<14 | 0x4F<<7 | 0x5A, - 38988 - 19968: jis0208<<14 | 0x21<<7 | 0x49, - 38989 - 19968: jis0208<<14 | 0x12<<7 | 0x3A, - 38990 - 19968: jis0208<<14 | 0x12<<7 | 0x3B, - 38991 - 19968: jis0208<<14 | 0x4F<<7 | 0x59, - 38993 - 19968: jis0212<<14 | 0x47<<7 | 0x0C, - 38994 - 19968: jis0212<<14 | 0x47<<7 | 0x0D, - 38995 - 19968: jis0212<<14 | 0x47<<7 | 0x0E, - 38996 - 19968: jis0208<<14 | 0x13<<7 | 0x48, - 38997 - 19968: jis0208<<14 | 0x17<<7 | 0x11, - 38998 - 19968: jis0212<<14 | 0x47<<7 | 0x0F, - 38999 - 19968: jis0208<<14 | 0x5B<<7 | 0x39, - 39000 - 19968: jis0208<<14 | 0x13<<7 | 0x49, - 39001 - 19968: jis0212<<14 | 0x47<<7 | 0x11, - 39002 - 19968: jis0212<<14 | 0x47<<7 | 0x12, - 39003 - 19968: jis0208<<14 | 0x24<<7 | 0x1E, - 39006 - 19968: jis0208<<14 | 0x2D<<7 | 0x3F, - 39010 - 19968: jis0212<<14 | 0x47<<7 | 0x13, - 39011 - 19968: jis0212<<14 | 0x47<<7 | 0x14, - 39013 - 19968: jis0208<<14 | 0x5B<<7 | 0x3A, - 39014 - 19968: jis0212<<14 | 0x47<<7 | 0x16, - 39015 - 19968: jis0208<<14 | 0x17<<7 | 0x3B, - 39018 - 19968: jis0212<<14 | 0x47<<7 | 0x17, - 39019 - 19968: jis0208<<14 | 0x4F<<7 | 0x5B, - 39020 - 19968: jis0212<<14 | 0x47<<7 | 0x18, - 39023 - 19968: jis0208<<14 | 0x4F<<7 | 0x5C, - 39024 - 19968: jis0208<<14 | 0x4F<<7 | 0x5D, - 39025 - 19968: jis0208<<14 | 0x50<<7 | 0x00, - 39027 - 19968: jis0208<<14 | 0x50<<7 | 0x02, - 39028 - 19968: jis0208<<14 | 0x50<<7 | 0x01, - 39080 - 19968: jis0208<<14 | 0x28<<7 | 0x56, - 39082 - 19968: jis0208<<14 | 0x50<<7 | 0x03, - 39083 - 19968: jis0212<<14 | 0x47<<7 | 0x19, - 39085 - 19968: jis0212<<14 | 0x47<<7 | 0x1A, - 39086 - 19968: jis0212<<14 | 0x47<<7 | 0x1B, - 39087 - 19968: jis0208<<14 | 0x50<<7 | 0x04, - 39088 - 19968: jis0212<<14 | 0x47<<7 | 0x1C, - 39089 - 19968: jis0208<<14 | 0x50<<7 | 0x05, - 39092 - 19968: jis0212<<14 | 0x47<<7 | 0x1D, - 39094 - 19968: jis0208<<14 | 0x50<<7 | 0x06, - 39095 - 19968: jis0212<<14 | 0x47<<7 | 0x1E, - 39096 - 19968: jis0212<<14 | 0x47<<7 | 0x1F, - 39098 - 19968: jis0212<<14 | 0x47<<7 | 0x20, - 39099 - 19968: jis0212<<14 | 0x47<<7 | 0x21, - 39103 - 19968: jis0212<<14 | 0x47<<7 | 0x22, - 39106 - 19968: jis0212<<14 | 0x47<<7 | 0x23, - 39107 - 19968: jis0208<<14 | 0x50<<7 | 0x08, - 39108 - 19968: jis0208<<14 | 0x50<<7 | 0x07, - 39109 - 19968: jis0212<<14 | 0x47<<7 | 0x24, - 39110 - 19968: jis0208<<14 | 0x50<<7 | 0x09, - 39112 - 19968: jis0212<<14 | 0x47<<7 | 0x25, - 39116 - 19968: jis0212<<14 | 0x47<<7 | 0x26, - 39131 - 19968: jis0208<<14 | 0x27<<7 | 0x53, - 39132 - 19968: jis0208<<14 | 0x45<<7 | 0x2B, - 39135 - 19968: jis0208<<14 | 0x1E<<7 | 0x08, - 39137 - 19968: jis0212<<14 | 0x47<<7 | 0x27, - 39138 - 19968: jis0208<<14 | 0x14<<7 | 0x11, - 39139 - 19968: jis0212<<14 | 0x47<<7 | 0x28, - 39141 - 19968: jis0212<<14 | 0x47<<7 | 0x29, - 39142 - 19968: jis0212<<14 | 0x47<<7 | 0x2A, - 39143 - 19968: jis0212<<14 | 0x47<<7 | 0x2B, - 39145 - 19968: jis0208<<14 | 0x50<<7 | 0x0A, - 39146 - 19968: jis0212<<14 | 0x47<<7 | 0x2C, - 39147 - 19968: jis0208<<14 | 0x50<<7 | 0x0B, - 39149 - 19968: jis0208<<14 | 0x31<<7 | 0x0B, - 39150 - 19968: jis0208<<14 | 0x3C<<7 | 0x1A, - 39151 - 19968: jis0208<<14 | 0x27<<7 | 0x32, - 39154 - 19968: jis0208<<14 | 0x0F<<7 | 0x5A, - 39155 - 19968: jis0212<<14 | 0x47<<7 | 0x2D, - 39156 - 19968: jis0208<<14 | 0x0F<<7 | 0x1A, - 39158 - 19968: jis0212<<14 | 0x47<<7 | 0x2E, - 39164 - 19968: jis0208<<14 | 0x1A<<7 | 0x53, - 39165 - 19968: jis0208<<14 | 0x2A<<7 | 0x0F, - 39166 - 19968: jis0208<<14 | 0x1D<<7 | 0x5D, - 39170 - 19968: jis0212<<14 | 0x47<<7 | 0x2F, - 39171 - 19968: jis0208<<14 | 0x50<<7 | 0x0C, - 39173 - 19968: jis0208<<14 | 0x2B<<7 | 0x3E, - 39175 - 19968: jis0212<<14 | 0x47<<7 | 0x30, - 39176 - 19968: jis0212<<14 | 0x47<<7 | 0x31, - 39177 - 19968: jis0208<<14 | 0x50<<7 | 0x0D, - 39178 - 19968: jis0208<<14 | 0x2C<<7 | 0x3B, - 39180 - 19968: jis0208<<14 | 0x10<<7 | 0x21, - 39184 - 19968: jis0208<<14 | 0x1A<<7 | 0x20, - 39185 - 19968: jis0212<<14 | 0x47<<7 | 0x32, - 39186 - 19968: jis0208<<14 | 0x50<<7 | 0x0E, - 39187 - 19968: jis0208<<14 | 0x11<<7 | 0x4D, - 39188 - 19968: jis0208<<14 | 0x50<<7 | 0x0F, - 39189 - 19968: jis0212<<14 | 0x47<<7 | 0x33, - 39190 - 19968: jis0212<<14 | 0x47<<7 | 0x34, - 39191 - 19968: jis0212<<14 | 0x47<<7 | 0x35, - 39192 - 19968: jis0208<<14 | 0x50<<7 | 0x10, - 39194 - 19968: jis0212<<14 | 0x47<<7 | 0x36, - 39195 - 19968: jis0212<<14 | 0x47<<7 | 0x37, - 39196 - 19968: jis0212<<14 | 0x47<<7 | 0x38, - 39197 - 19968: jis0208<<14 | 0x50<<7 | 0x12, - 39198 - 19968: jis0208<<14 | 0x50<<7 | 0x13, - 39199 - 19968: jis0212<<14 | 0x47<<7 | 0x39, - 39200 - 19968: jis0208<<14 | 0x50<<7 | 0x15, - 39201 - 19968: jis0208<<14 | 0x50<<7 | 0x11, - 39202 - 19968: jis0212<<14 | 0x47<<7 | 0x3A, - 39204 - 19968: jis0208<<14 | 0x50<<7 | 0x14, - 39206 - 19968: jis0212<<14 | 0x47<<7 | 0x3B, - 39207 - 19968: jis0208<<14 | 0x5B<<7 | 0x3D, - 39208 - 19968: jis0208<<14 | 0x13<<7 | 0x3A, - 39211 - 19968: jis0212<<14 | 0x47<<7 | 0x3D, - 39212 - 19968: jis0208<<14 | 0x50<<7 | 0x16, - 39214 - 19968: jis0208<<14 | 0x50<<7 | 0x17, - 39217 - 19968: jis0212<<14 | 0x47<<7 | 0x3E, - 39218 - 19968: jis0212<<14 | 0x47<<7 | 0x3F, - 39219 - 19968: jis0212<<14 | 0x47<<7 | 0x40, - 39220 - 19968: jis0212<<14 | 0x47<<7 | 0x41, - 39221 - 19968: jis0212<<14 | 0x47<<7 | 0x42, - 39225 - 19968: jis0212<<14 | 0x47<<7 | 0x43, - 39226 - 19968: jis0212<<14 | 0x47<<7 | 0x44, - 39227 - 19968: jis0212<<14 | 0x47<<7 | 0x45, - 39228 - 19968: jis0212<<14 | 0x47<<7 | 0x46, - 39229 - 19968: jis0208<<14 | 0x50<<7 | 0x18, - 39230 - 19968: jis0208<<14 | 0x50<<7 | 0x19, - 39232 - 19968: jis0212<<14 | 0x47<<7 | 0x47, - 39233 - 19968: jis0212<<14 | 0x47<<7 | 0x48, - 39234 - 19968: jis0208<<14 | 0x50<<7 | 0x1A, - 39237 - 19968: jis0208<<14 | 0x50<<7 | 0x1C, - 39238 - 19968: jis0212<<14 | 0x47<<7 | 0x49, - 39239 - 19968: jis0212<<14 | 0x47<<7 | 0x4A, - 39240 - 19968: jis0212<<14 | 0x47<<7 | 0x4B, - 39241 - 19968: jis0208<<14 | 0x50<<7 | 0x1B, - 39243 - 19968: jis0208<<14 | 0x50<<7 | 0x1E, - 39244 - 19968: jis0208<<14 | 0x50<<7 | 0x21, - 39245 - 19968: jis0212<<14 | 0x47<<7 | 0x4C, - 39246 - 19968: jis0212<<14 | 0x47<<7 | 0x4D, - 39248 - 19968: jis0208<<14 | 0x50<<7 | 0x1D, - 39249 - 19968: jis0208<<14 | 0x50<<7 | 0x1F, - 39250 - 19968: jis0208<<14 | 0x50<<7 | 0x20, - 39252 - 19968: jis0212<<14 | 0x47<<7 | 0x4E, - 39253 - 19968: jis0208<<14 | 0x50<<7 | 0x22, - 39255 - 19968: jis0208<<14 | 0x15<<7 | 0x21, - 39256 - 19968: jis0212<<14 | 0x47<<7 | 0x4F, - 39257 - 19968: jis0212<<14 | 0x47<<7 | 0x50, - 39259 - 19968: jis0212<<14 | 0x47<<7 | 0x51, - 39260 - 19968: jis0212<<14 | 0x47<<7 | 0x52, - 39262 - 19968: jis0212<<14 | 0x47<<7 | 0x53, - 39263 - 19968: jis0212<<14 | 0x47<<7 | 0x54, - 39264 - 19968: jis0212<<14 | 0x47<<7 | 0x55, - 39318 - 19968: jis0208<<14 | 0x1B<<7 | 0x52, - 39319 - 19968: jis0208<<14 | 0x50<<7 | 0x23, - 39320 - 19968: jis0208<<14 | 0x50<<7 | 0x24, - 39321 - 19968: jis0208<<14 | 0x18<<7 | 0x40, - 39323 - 19968: jis0212<<14 | 0x47<<7 | 0x56, - 39325 - 19968: jis0212<<14 | 0x47<<7 | 0x57, - 39326 - 19968: jis0208<<14 | 0x5B<<7 | 0x3F, - 39327 - 19968: jis0212<<14 | 0x47<<7 | 0x58, - 39333 - 19968: jis0208<<14 | 0x50<<7 | 0x25, - 39334 - 19968: jis0212<<14 | 0x47<<7 | 0x59, - 39336 - 19968: jis0208<<14 | 0x12<<7 | 0x1D, - 39340 - 19968: jis0208<<14 | 0x26<<7 | 0x2E, - 39341 - 19968: jis0208<<14 | 0x50<<7 | 0x26, - 39342 - 19968: jis0208<<14 | 0x50<<7 | 0x27, - 39344 - 19968: jis0212<<14 | 0x47<<7 | 0x5A, - 39345 - 19968: jis0212<<14 | 0x47<<7 | 0x5B, - 39346 - 19968: jis0212<<14 | 0x47<<7 | 0x5C, - 39347 - 19968: jis0208<<14 | 0x22<<7 | 0x39, - 39348 - 19968: jis0208<<14 | 0x25<<7 | 0x4A, - 39349 - 19968: jis0212<<14 | 0x47<<7 | 0x5D, - 39353 - 19968: jis0212<<14 | 0x48<<7 | 0x00, - 39354 - 19968: jis0212<<14 | 0x48<<7 | 0x01, - 39356 - 19968: jis0208<<14 | 0x50<<7 | 0x28, - 39357 - 19968: jis0212<<14 | 0x48<<7 | 0x02, - 39359 - 19968: jis0212<<14 | 0x48<<7 | 0x03, - 39361 - 19968: jis0208<<14 | 0x26<<7 | 0x5C, - 39363 - 19968: jis0212<<14 | 0x48<<7 | 0x04, - 39364 - 19968: jis0208<<14 | 0x21<<7 | 0x2B, - 39365 - 19968: jis0208<<14 | 0x10<<7 | 0x37, - 39366 - 19968: jis0208<<14 | 0x15<<7 | 0x4D, - 39368 - 19968: jis0208<<14 | 0x15<<7 | 0x4E, - 39369 - 19968: jis0212<<14 | 0x48<<7 | 0x05, - 39376 - 19968: jis0208<<14 | 0x22<<7 | 0x52, - 39377 - 19968: jis0208<<14 | 0x50<<7 | 0x2D, - 39378 - 19968: jis0208<<14 | 0x15<<7 | 0x4F, - 39379 - 19968: jis0212<<14 | 0x48<<7 | 0x06, - 39380 - 19968: jis0212<<14 | 0x48<<7 | 0x07, - 39381 - 19968: jis0208<<14 | 0x11<<7 | 0x4E, - 39384 - 19968: jis0208<<14 | 0x50<<7 | 0x2C, - 39385 - 19968: jis0212<<14 | 0x48<<7 | 0x08, - 39386 - 19968: jis0212<<14 | 0x48<<7 | 0x09, - 39387 - 19968: jis0208<<14 | 0x50<<7 | 0x2A, - 39388 - 19968: jis0212<<14 | 0x48<<7 | 0x0A, - 39389 - 19968: jis0208<<14 | 0x50<<7 | 0x2B, - 39390 - 19968: jis0212<<14 | 0x48<<7 | 0x0B, - 39391 - 19968: jis0208<<14 | 0x50<<7 | 0x29, - 39394 - 19968: jis0208<<14 | 0x50<<7 | 0x37, - 39399 - 19968: jis0212<<14 | 0x48<<7 | 0x0C, - 39402 - 19968: jis0212<<14 | 0x48<<7 | 0x0D, - 39403 - 19968: jis0212<<14 | 0x48<<7 | 0x0E, - 39404 - 19968: jis0212<<14 | 0x48<<7 | 0x0F, - 39405 - 19968: jis0208<<14 | 0x50<<7 | 0x2E, - 39406 - 19968: jis0208<<14 | 0x50<<7 | 0x2F, - 39408 - 19968: jis0212<<14 | 0x48<<7 | 0x10, - 39409 - 19968: jis0208<<14 | 0x50<<7 | 0x30, - 39410 - 19968: jis0208<<14 | 0x50<<7 | 0x31, - 39412 - 19968: jis0212<<14 | 0x48<<7 | 0x11, - 39413 - 19968: jis0212<<14 | 0x48<<7 | 0x12, - 39416 - 19968: jis0208<<14 | 0x50<<7 | 0x33, - 39417 - 19968: jis0212<<14 | 0x48<<7 | 0x13, - 39419 - 19968: jis0208<<14 | 0x50<<7 | 0x32, - 39421 - 19968: jis0212<<14 | 0x48<<7 | 0x14, - 39422 - 19968: jis0212<<14 | 0x48<<7 | 0x15, - 39423 - 19968: jis0208<<14 | 0x1C<<7 | 0x38, - 39425 - 19968: jis0208<<14 | 0x50<<7 | 0x34, - 39426 - 19968: jis0212<<14 | 0x48<<7 | 0x16, - 39427 - 19968: jis0212<<14 | 0x48<<7 | 0x17, - 39428 - 19968: jis0212<<14 | 0x48<<7 | 0x18, - 39429 - 19968: jis0208<<14 | 0x50<<7 | 0x36, - 39435 - 19968: jis0212<<14 | 0x48<<7 | 0x19, - 39436 - 19968: jis0212<<14 | 0x48<<7 | 0x1A, - 39438 - 19968: jis0208<<14 | 0x14<<7 | 0x12, - 39439 - 19968: jis0208<<14 | 0x50<<7 | 0x35, - 39440 - 19968: jis0212<<14 | 0x48<<7 | 0x1B, - 39441 - 19968: jis0212<<14 | 0x48<<7 | 0x1C, - 39442 - 19968: jis0208<<14 | 0x20<<7 | 0x5A, - 39443 - 19968: jis0208<<14 | 0x17<<7 | 0x12, - 39446 - 19968: jis0212<<14 | 0x48<<7 | 0x1D, - 39449 - 19968: jis0208<<14 | 0x50<<7 | 0x38, - 39454 - 19968: jis0212<<14 | 0x48<<7 | 0x1E, - 39456 - 19968: jis0212<<14 | 0x48<<7 | 0x1F, - 39458 - 19968: jis0212<<14 | 0x48<<7 | 0x20, - 39459 - 19968: jis0212<<14 | 0x48<<7 | 0x21, - 39460 - 19968: jis0212<<14 | 0x48<<7 | 0x22, - 39463 - 19968: jis0212<<14 | 0x48<<7 | 0x23, - 39464 - 19968: jis0208<<14 | 0x21<<7 | 0x2C, - 39467 - 19968: jis0208<<14 | 0x50<<7 | 0x39, - 39469 - 19968: jis0212<<14 | 0x48<<7 | 0x24, - 39470 - 19968: jis0212<<14 | 0x48<<7 | 0x25, - 39472 - 19968: jis0208<<14 | 0x25<<7 | 0x0C, - 39475 - 19968: jis0212<<14 | 0x48<<7 | 0x26, - 39477 - 19968: jis0212<<14 | 0x48<<7 | 0x27, - 39478 - 19968: jis0212<<14 | 0x48<<7 | 0x28, - 39479 - 19968: jis0208<<14 | 0x50<<7 | 0x3A, - 39480 - 19968: jis0212<<14 | 0x48<<7 | 0x29, - 39486 - 19968: jis0208<<14 | 0x50<<7 | 0x3F, - 39488 - 19968: jis0208<<14 | 0x50<<7 | 0x3D, - 39489 - 19968: jis0212<<14 | 0x48<<7 | 0x2B, - 39490 - 19968: jis0208<<14 | 0x50<<7 | 0x3C, - 39491 - 19968: jis0208<<14 | 0x50<<7 | 0x3E, - 39492 - 19968: jis0212<<14 | 0x48<<7 | 0x2C, - 39493 - 19968: jis0208<<14 | 0x50<<7 | 0x3B, - 39495 - 19968: jis0212<<14 | 0x48<<7 | 0x2A, - 39498 - 19968: jis0212<<14 | 0x48<<7 | 0x2D, - 39499 - 19968: jis0212<<14 | 0x48<<7 | 0x2E, - 39500 - 19968: jis0212<<14 | 0x48<<7 | 0x2F, - 39501 - 19968: jis0208<<14 | 0x50<<7 | 0x41, - 39502 - 19968: jis0208<<14 | 0x5B<<7 | 0x40, - 39505 - 19968: jis0212<<14 | 0x48<<7 | 0x31, - 39508 - 19968: jis0212<<14 | 0x48<<7 | 0x32, - 39509 - 19968: jis0208<<14 | 0x50<<7 | 0x40, - 39510 - 19968: jis0212<<14 | 0x48<<7 | 0x33, - 39511 - 19968: jis0208<<14 | 0x50<<7 | 0x43, - 39514 - 19968: jis0208<<14 | 0x15<<7 | 0x22, - 39515 - 19968: jis0208<<14 | 0x50<<7 | 0x42, - 39517 - 19968: jis0212<<14 | 0x48<<7 | 0x34, - 39519 - 19968: jis0208<<14 | 0x50<<7 | 0x44, - 39522 - 19968: jis0208<<14 | 0x50<<7 | 0x45, - 39524 - 19968: jis0208<<14 | 0x50<<7 | 0x47, - 39525 - 19968: jis0208<<14 | 0x50<<7 | 0x46, - 39529 - 19968: jis0208<<14 | 0x50<<7 | 0x48, - 39530 - 19968: jis0208<<14 | 0x50<<7 | 0x4A, - 39531 - 19968: jis0208<<14 | 0x50<<7 | 0x49, - 39592 - 19968: jis0208<<14 | 0x18<<7 | 0x5B, - 39594 - 19968: jis0212<<14 | 0x48<<7 | 0x35, - 39596 - 19968: jis0212<<14 | 0x48<<7 | 0x36, - 39597 - 19968: jis0208<<14 | 0x50<<7 | 0x4B, - 39598 - 19968: jis0212<<14 | 0x48<<7 | 0x37, - 39599 - 19968: jis0212<<14 | 0x48<<7 | 0x38, - 39600 - 19968: jis0208<<14 | 0x50<<7 | 0x4C, - 39602 - 19968: jis0212<<14 | 0x48<<7 | 0x39, - 39604 - 19968: jis0212<<14 | 0x48<<7 | 0x3A, - 39605 - 19968: jis0212<<14 | 0x48<<7 | 0x3B, - 39606 - 19968: jis0212<<14 | 0x48<<7 | 0x3C, - 39608 - 19968: jis0208<<14 | 0x12<<7 | 0x1B, - 39609 - 19968: jis0212<<14 | 0x48<<7 | 0x3D, - 39611 - 19968: jis0212<<14 | 0x48<<7 | 0x3E, - 39612 - 19968: jis0208<<14 | 0x50<<7 | 0x4D, - 39614 - 19968: jis0212<<14 | 0x48<<7 | 0x3F, - 39615 - 19968: jis0212<<14 | 0x48<<7 | 0x40, - 39616 - 19968: jis0208<<14 | 0x50<<7 | 0x4E, - 39617 - 19968: jis0212<<14 | 0x48<<7 | 0x41, - 39619 - 19968: jis0212<<14 | 0x48<<7 | 0x42, - 39620 - 19968: jis0208<<14 | 0x1E<<7 | 0x50, - 39622 - 19968: jis0212<<14 | 0x48<<7 | 0x43, - 39624 - 19968: jis0212<<14 | 0x48<<7 | 0x44, - 39630 - 19968: jis0212<<14 | 0x48<<7 | 0x45, - 39631 - 19968: jis0208<<14 | 0x50<<7 | 0x4F, - 39632 - 19968: jis0212<<14 | 0x48<<7 | 0x46, - 39633 - 19968: jis0208<<14 | 0x50<<7 | 0x50, - 39634 - 19968: jis0212<<14 | 0x48<<7 | 0x47, - 39635 - 19968: jis0208<<14 | 0x50<<7 | 0x51, - 39636 - 19968: jis0208<<14 | 0x50<<7 | 0x52, - 39637 - 19968: jis0212<<14 | 0x48<<7 | 0x48, - 39638 - 19968: jis0212<<14 | 0x48<<7 | 0x49, - 39639 - 19968: jis0212<<14 | 0x48<<7 | 0x4A, - 39640 - 19968: jis0208<<14 | 0x18<<7 | 0x41, - 39641 - 19968: jis0208<<14 | 0x5B<<7 | 0x41, - 39643 - 19968: jis0212<<14 | 0x48<<7 | 0x4B, - 39644 - 19968: jis0208<<14 | 0x5B<<7 | 0x42, - 39646 - 19968: jis0208<<14 | 0x50<<7 | 0x53, - 39647 - 19968: jis0208<<14 | 0x50<<7 | 0x54, - 39648 - 19968: jis0212<<14 | 0x48<<7 | 0x4D, - 39650 - 19968: jis0208<<14 | 0x50<<7 | 0x55, - 39651 - 19968: jis0208<<14 | 0x50<<7 | 0x56, - 39652 - 19968: jis0212<<14 | 0x48<<7 | 0x4E, - 39653 - 19968: jis0212<<14 | 0x48<<7 | 0x4F, - 39654 - 19968: jis0208<<14 | 0x50<<7 | 0x57, - 39655 - 19968: jis0212<<14 | 0x48<<7 | 0x50, - 39657 - 19968: jis0212<<14 | 0x48<<7 | 0x51, - 39658 - 19968: jis0208<<14 | 0x27<<7 | 0x10, - 39659 - 19968: jis0208<<14 | 0x50<<7 | 0x59, - 39660 - 19968: jis0212<<14 | 0x48<<7 | 0x52, - 39661 - 19968: jis0208<<14 | 0x28<<7 | 0x05, - 39662 - 19968: jis0208<<14 | 0x50<<7 | 0x5A, - 39663 - 19968: jis0208<<14 | 0x50<<7 | 0x58, - 39665 - 19968: jis0208<<14 | 0x50<<7 | 0x5C, - 39666 - 19968: jis0212<<14 | 0x48<<7 | 0x53, - 39667 - 19968: jis0212<<14 | 0x48<<7 | 0x54, - 39668 - 19968: jis0208<<14 | 0x50<<7 | 0x5B, - 39669 - 19968: jis0212<<14 | 0x48<<7 | 0x55, - 39671 - 19968: jis0208<<14 | 0x50<<7 | 0x5D, - 39673 - 19968: jis0212<<14 | 0x48<<7 | 0x56, - 39674 - 19968: jis0212<<14 | 0x48<<7 | 0x57, - 39675 - 19968: jis0208<<14 | 0x51<<7 | 0x00, - 39677 - 19968: jis0212<<14 | 0x48<<7 | 0x58, - 39679 - 19968: jis0212<<14 | 0x48<<7 | 0x59, - 39680 - 19968: jis0212<<14 | 0x48<<7 | 0x5A, - 39681 - 19968: jis0212<<14 | 0x48<<7 | 0x5B, - 39682 - 19968: jis0212<<14 | 0x48<<7 | 0x5C, - 39683 - 19968: jis0212<<14 | 0x48<<7 | 0x5D, - 39684 - 19968: jis0212<<14 | 0x49<<7 | 0x00, - 39685 - 19968: jis0212<<14 | 0x49<<7 | 0x01, - 39686 - 19968: jis0208<<14 | 0x51<<7 | 0x01, - 39688 - 19968: jis0212<<14 | 0x49<<7 | 0x02, - 39689 - 19968: jis0212<<14 | 0x49<<7 | 0x03, - 39691 - 19968: jis0212<<14 | 0x49<<7 | 0x04, - 39692 - 19968: jis0212<<14 | 0x49<<7 | 0x05, - 39693 - 19968: jis0212<<14 | 0x49<<7 | 0x06, - 39694 - 19968: jis0212<<14 | 0x49<<7 | 0x07, - 39696 - 19968: jis0212<<14 | 0x49<<7 | 0x08, - 39698 - 19968: jis0212<<14 | 0x49<<7 | 0x09, - 39702 - 19968: jis0212<<14 | 0x49<<7 | 0x0A, - 39704 - 19968: jis0208<<14 | 0x51<<7 | 0x02, - 39705 - 19968: jis0212<<14 | 0x49<<7 | 0x0B, - 39706 - 19968: jis0208<<14 | 0x51<<7 | 0x03, - 39707 - 19968: jis0212<<14 | 0x49<<7 | 0x0C, - 39708 - 19968: jis0212<<14 | 0x49<<7 | 0x0D, - 39711 - 19968: jis0208<<14 | 0x51<<7 | 0x04, - 39712 - 19968: jis0212<<14 | 0x49<<7 | 0x0E, - 39714 - 19968: jis0208<<14 | 0x51<<7 | 0x05, - 39715 - 19968: jis0208<<14 | 0x51<<7 | 0x06, - 39717 - 19968: jis0208<<14 | 0x51<<7 | 0x07, - 39718 - 19968: jis0212<<14 | 0x49<<7 | 0x0F, - 39719 - 19968: jis0208<<14 | 0x51<<7 | 0x08, - 39720 - 19968: jis0208<<14 | 0x51<<7 | 0x09, - 39721 - 19968: jis0208<<14 | 0x51<<7 | 0x0A, - 39722 - 19968: jis0208<<14 | 0x51<<7 | 0x0B, - 39723 - 19968: jis0212<<14 | 0x49<<7 | 0x10, - 39725 - 19968: jis0212<<14 | 0x49<<7 | 0x11, - 39726 - 19968: jis0208<<14 | 0x51<<7 | 0x0C, - 39727 - 19968: jis0208<<14 | 0x51<<7 | 0x0D, - 39729 - 19968: jis0208<<14 | 0x3C<<7 | 0x14, - 39730 - 19968: jis0208<<14 | 0x51<<7 | 0x0E, - 39731 - 19968: jis0212<<14 | 0x49<<7 | 0x12, - 39732 - 19968: jis0212<<14 | 0x49<<7 | 0x13, - 39733 - 19968: jis0212<<14 | 0x49<<7 | 0x14, - 39735 - 19968: jis0212<<14 | 0x49<<7 | 0x15, - 39737 - 19968: jis0212<<14 | 0x49<<7 | 0x16, - 39738 - 19968: jis0212<<14 | 0x49<<7 | 0x17, - 39739 - 19968: jis0208<<14 | 0x43<<7 | 0x57, - 39740 - 19968: jis0208<<14 | 0x14<<7 | 0x13, - 39741 - 19968: jis0212<<14 | 0x49<<7 | 0x18, - 39745 - 19968: jis0208<<14 | 0x12<<7 | 0x00, - 39746 - 19968: jis0208<<14 | 0x19<<7 | 0x11, - 39747 - 19968: jis0208<<14 | 0x51<<7 | 0x10, - 39748 - 19968: jis0208<<14 | 0x51<<7 | 0x0F, - 39749 - 19968: jis0208<<14 | 0x2B<<7 | 0x04, - 39752 - 19968: jis0212<<14 | 0x49<<7 | 0x19, - 39755 - 19968: jis0212<<14 | 0x49<<7 | 0x1A, - 39756 - 19968: jis0212<<14 | 0x49<<7 | 0x1B, - 39757 - 19968: jis0208<<14 | 0x51<<7 | 0x12, - 39758 - 19968: jis0208<<14 | 0x51<<7 | 0x13, - 39759 - 19968: jis0208<<14 | 0x51<<7 | 0x11, - 39761 - 19968: jis0208<<14 | 0x51<<7 | 0x14, - 39764 - 19968: jis0208<<14 | 0x2A<<7 | 0x41, - 39765 - 19968: jis0212<<14 | 0x49<<7 | 0x1C, - 39766 - 19968: jis0212<<14 | 0x49<<7 | 0x1D, - 39767 - 19968: jis0212<<14 | 0x49<<7 | 0x1E, - 39768 - 19968: jis0208<<14 | 0x51<<7 | 0x15, - 39770 - 19968: jis0208<<14 | 0x14<<7 | 0x5A, - 39771 - 19968: jis0212<<14 | 0x49<<7 | 0x1F, - 39774 - 19968: jis0212<<14 | 0x49<<7 | 0x20, - 39777 - 19968: jis0212<<14 | 0x49<<7 | 0x21, - 39779 - 19968: jis0212<<14 | 0x49<<7 | 0x22, - 39781 - 19968: jis0212<<14 | 0x49<<7 | 0x23, - 39782 - 19968: jis0212<<14 | 0x49<<7 | 0x24, - 39784 - 19968: jis0212<<14 | 0x49<<7 | 0x25, - 39786 - 19968: jis0212<<14 | 0x49<<7 | 0x26, - 39787 - 19968: jis0212<<14 | 0x49<<7 | 0x27, - 39788 - 19968: jis0212<<14 | 0x49<<7 | 0x28, - 39789 - 19968: jis0212<<14 | 0x49<<7 | 0x29, - 39790 - 19968: jis0212<<14 | 0x49<<7 | 0x2A, - 39791 - 19968: jis0208<<14 | 0x2E<<7 | 0x04, - 39794 - 19968: jis0208<<14 | 0x5B<<7 | 0x44, - 39795 - 19968: jis0212<<14 | 0x49<<7 | 0x2B, - 39796 - 19968: jis0208<<14 | 0x51<<7 | 0x16, - 39797 - 19968: jis0208<<14 | 0x5B<<7 | 0x43, - 39799 - 19968: jis0212<<14 | 0x49<<7 | 0x2D, - 39800 - 19968: jis0212<<14 | 0x49<<7 | 0x2E, - 39801 - 19968: jis0212<<14 | 0x49<<7 | 0x2F, - 39807 - 19968: jis0212<<14 | 0x49<<7 | 0x30, - 39808 - 19968: jis0212<<14 | 0x49<<7 | 0x31, - 39811 - 19968: jis0208<<14 | 0x51<<7 | 0x18, - 39812 - 19968: jis0212<<14 | 0x49<<7 | 0x32, - 39813 - 19968: jis0212<<14 | 0x49<<7 | 0x33, - 39814 - 19968: jis0212<<14 | 0x49<<7 | 0x34, - 39815 - 19968: jis0212<<14 | 0x49<<7 | 0x35, - 39817 - 19968: jis0212<<14 | 0x49<<7 | 0x36, - 39818 - 19968: jis0212<<14 | 0x49<<7 | 0x37, - 39819 - 19968: jis0212<<14 | 0x49<<7 | 0x38, - 39821 - 19968: jis0212<<14 | 0x49<<7 | 0x39, - 39822 - 19968: jis0208<<14 | 0x0F<<7 | 0x1D, - 39823 - 19968: jis0208<<14 | 0x5B<<7 | 0x45, - 39824 - 19968: jis0212<<14 | 0x49<<7 | 0x3B, - 39825 - 19968: jis0208<<14 | 0x51<<7 | 0x19, - 39826 - 19968: jis0208<<14 | 0x29<<7 | 0x0A, - 39827 - 19968: jis0208<<14 | 0x51<<7 | 0x17, - 39828 - 19968: jis0212<<14 | 0x49<<7 | 0x3C, - 39830 - 19968: jis0208<<14 | 0x51<<7 | 0x1A, - 39831 - 19968: jis0208<<14 | 0x51<<7 | 0x1B, - 39834 - 19968: jis0212<<14 | 0x49<<7 | 0x3D, - 39837 - 19968: jis0212<<14 | 0x49<<7 | 0x3E, - 39838 - 19968: jis0212<<14 | 0x49<<7 | 0x3F, - 39839 - 19968: jis0208<<14 | 0x51<<7 | 0x1C, - 39840 - 19968: jis0208<<14 | 0x51<<7 | 0x1D, - 39846 - 19968: jis0212<<14 | 0x49<<7 | 0x40, - 39847 - 19968: jis0212<<14 | 0x49<<7 | 0x41, - 39848 - 19968: jis0208<<14 | 0x51<<7 | 0x1E, - 39849 - 19968: jis0212<<14 | 0x49<<7 | 0x42, - 39850 - 19968: jis0208<<14 | 0x2A<<7 | 0x4D, - 39851 - 19968: jis0208<<14 | 0x1A<<7 | 0x0C, - 39852 - 19968: jis0212<<14 | 0x49<<7 | 0x43, - 39853 - 19968: jis0208<<14 | 0x19<<7 | 0x59, - 39854 - 19968: jis0208<<14 | 0x20<<7 | 0x0E, - 39856 - 19968: jis0212<<14 | 0x49<<7 | 0x44, - 39857 - 19968: jis0208<<14 | 0x5B<<7 | 0x46, - 39858 - 19968: jis0212<<14 | 0x49<<7 | 0x46, - 39860 - 19968: jis0208<<14 | 0x51<<7 | 0x1F, - 39863 - 19968: jis0212<<14 | 0x49<<7 | 0x47, - 39864 - 19968: jis0212<<14 | 0x49<<7 | 0x48, - 39865 - 19968: jis0208<<14 | 0x51<<7 | 0x22, - 39867 - 19968: jis0208<<14 | 0x5B<<7 | 0x47, - 39868 - 19968: jis0212<<14 | 0x49<<7 | 0x4A, - 39870 - 19968: jis0212<<14 | 0x49<<7 | 0x4B, - 39871 - 19968: jis0212<<14 | 0x49<<7 | 0x4C, - 39872 - 19968: jis0208<<14 | 0x51<<7 | 0x20, - 39873 - 19968: jis0212<<14 | 0x49<<7 | 0x4D, - 39878 - 19968: jis0208<<14 | 0x51<<7 | 0x23, - 39879 - 19968: jis0212<<14 | 0x49<<7 | 0x4E, - 39880 - 19968: jis0212<<14 | 0x49<<7 | 0x4F, - 39881 - 19968: jis0208<<14 | 0x17<<7 | 0x50, - 39882 - 19968: jis0208<<14 | 0x51<<7 | 0x21, - 39886 - 19968: jis0212<<14 | 0x49<<7 | 0x50, - 39887 - 19968: jis0208<<14 | 0x51<<7 | 0x24, - 39888 - 19968: jis0212<<14 | 0x49<<7 | 0x51, - 39889 - 19968: jis0208<<14 | 0x51<<7 | 0x25, - 39890 - 19968: jis0208<<14 | 0x51<<7 | 0x26, - 39892 - 19968: jis0208<<14 | 0x51<<7 | 0x2A, - 39894 - 19968: jis0208<<14 | 0x1A<<7 | 0x09, - 39895 - 19968: jis0212<<14 | 0x49<<7 | 0x52, - 39896 - 19968: jis0212<<14 | 0x49<<7 | 0x53, - 39899 - 19968: jis0208<<14 | 0x21<<7 | 0x43, - 39901 - 19968: jis0212<<14 | 0x49<<7 | 0x54, - 39903 - 19968: jis0212<<14 | 0x49<<7 | 0x55, - 39905 - 19968: jis0208<<14 | 0x51<<7 | 0x2B, - 39906 - 19968: jis0208<<14 | 0x51<<7 | 0x28, - 39907 - 19968: jis0208<<14 | 0x51<<7 | 0x27, - 39908 - 19968: jis0208<<14 | 0x51<<7 | 0x29, - 39909 - 19968: jis0212<<14 | 0x49<<7 | 0x56, - 39911 - 19968: jis0212<<14 | 0x49<<7 | 0x57, - 39912 - 19968: jis0208<<14 | 0x16<<7 | 0x3E, - 39914 - 19968: jis0212<<14 | 0x49<<7 | 0x58, - 39915 - 19968: jis0212<<14 | 0x49<<7 | 0x59, - 39919 - 19968: jis0212<<14 | 0x49<<7 | 0x5A, - 39920 - 19968: jis0208<<14 | 0x51<<7 | 0x2F, - 39921 - 19968: jis0208<<14 | 0x51<<7 | 0x2E, - 39922 - 19968: jis0208<<14 | 0x51<<7 | 0x2D, - 39923 - 19968: jis0212<<14 | 0x49<<7 | 0x5B, - 39925 - 19968: jis0208<<14 | 0x0F<<7 | 0x12, - 39927 - 19968: jis0212<<14 | 0x49<<7 | 0x5C, - 39928 - 19968: jis0212<<14 | 0x49<<7 | 0x5D, - 39929 - 19968: jis0212<<14 | 0x4A<<7 | 0x00, - 39930 - 19968: jis0212<<14 | 0x4A<<7 | 0x01, - 39933 - 19968: jis0212<<14 | 0x4A<<7 | 0x02, - 39935 - 19968: jis0212<<14 | 0x4A<<7 | 0x03, - 39936 - 19968: jis0208<<14 | 0x5B<<7 | 0x48, - 39938 - 19968: jis0212<<14 | 0x4A<<7 | 0x05, - 39940 - 19968: jis0208<<14 | 0x51<<7 | 0x39, - 39942 - 19968: jis0208<<14 | 0x51<<7 | 0x35, - 39944 - 19968: jis0208<<14 | 0x51<<7 | 0x36, - 39945 - 19968: jis0208<<14 | 0x51<<7 | 0x32, - 39946 - 19968: jis0208<<14 | 0x51<<7 | 0x38, - 39947 - 19968: jis0212<<14 | 0x4A<<7 | 0x06, - 39948 - 19968: jis0208<<14 | 0x51<<7 | 0x34, - 39949 - 19968: jis0208<<14 | 0x12<<7 | 0x41, - 39951 - 19968: jis0212<<14 | 0x4A<<7 | 0x07, - 39952 - 19968: jis0208<<14 | 0x2E<<7 | 0x2B, - 39953 - 19968: jis0212<<14 | 0x4A<<7 | 0x08, - 39954 - 19968: jis0208<<14 | 0x51<<7 | 0x37, - 39955 - 19968: jis0208<<14 | 0x51<<7 | 0x33, - 39956 - 19968: jis0208<<14 | 0x51<<7 | 0x31, - 39957 - 19968: jis0208<<14 | 0x51<<7 | 0x30, - 39958 - 19968: jis0212<<14 | 0x4A<<7 | 0x09, - 39960 - 19968: jis0212<<14 | 0x4A<<7 | 0x0A, - 39961 - 19968: jis0212<<14 | 0x4A<<7 | 0x0B, - 39962 - 19968: jis0212<<14 | 0x4A<<7 | 0x0C, - 39963 - 19968: jis0208<<14 | 0x51<<7 | 0x3B, - 39964 - 19968: jis0212<<14 | 0x4A<<7 | 0x0D, - 39966 - 19968: jis0212<<14 | 0x4A<<7 | 0x0E, - 39969 - 19968: jis0208<<14 | 0x51<<7 | 0x3E, - 39970 - 19968: jis0212<<14 | 0x4A<<7 | 0x0F, - 39971 - 19968: jis0212<<14 | 0x4A<<7 | 0x10, - 39972 - 19968: jis0208<<14 | 0x51<<7 | 0x3D, - 39973 - 19968: jis0208<<14 | 0x51<<7 | 0x3C, - 39974 - 19968: jis0212<<14 | 0x4A<<7 | 0x11, - 39975 - 19968: jis0212<<14 | 0x4A<<7 | 0x12, - 39976 - 19968: jis0212<<14 | 0x4A<<7 | 0x13, - 39977 - 19968: jis0212<<14 | 0x4A<<7 | 0x14, - 39978 - 19968: jis0212<<14 | 0x4A<<7 | 0x15, - 39981 - 19968: jis0208<<14 | 0x28<<7 | 0x28, - 39982 - 19968: jis0208<<14 | 0x51<<7 | 0x3A, - 39983 - 19968: jis0208<<14 | 0x0F<<7 | 0x52, - 39984 - 19968: jis0208<<14 | 0x51<<7 | 0x3F, - 39985 - 19968: jis0212<<14 | 0x4A<<7 | 0x16, - 39986 - 19968: jis0208<<14 | 0x51<<7 | 0x41, - 39989 - 19968: jis0212<<14 | 0x4A<<7 | 0x17, - 39990 - 19968: jis0212<<14 | 0x4A<<7 | 0x18, - 39991 - 19968: jis0212<<14 | 0x4A<<7 | 0x19, - 39993 - 19968: jis0208<<14 | 0x12<<7 | 0x4E, - 39994 - 19968: jis0208<<14 | 0x51<<7 | 0x2C, - 39995 - 19968: jis0208<<14 | 0x10<<7 | 0x16, - 39997 - 19968: jis0212<<14 | 0x4A<<7 | 0x1A, - 39998 - 19968: jis0208<<14 | 0x51<<7 | 0x43, - 40001 - 19968: jis0212<<14 | 0x4A<<7 | 0x1B, - 40003 - 19968: jis0212<<14 | 0x4A<<7 | 0x1C, - 40004 - 19968: jis0212<<14 | 0x4A<<7 | 0x1D, - 40005 - 19968: jis0212<<14 | 0x4A<<7 | 0x1E, - 40006 - 19968: jis0208<<14 | 0x51<<7 | 0x42, - 40007 - 19968: jis0208<<14 | 0x51<<7 | 0x40, - 40008 - 19968: jis0208<<14 | 0x22<<7 | 0x0C, - 40009 - 19968: jis0212<<14 | 0x4A<<7 | 0x1F, - 40010 - 19968: jis0212<<14 | 0x4A<<7 | 0x20, - 40014 - 19968: jis0212<<14 | 0x4A<<7 | 0x21, - 40015 - 19968: jis0212<<14 | 0x4A<<7 | 0x22, - 40016 - 19968: jis0212<<14 | 0x4A<<7 | 0x23, - 40018 - 19968: jis0208<<14 | 0x2A<<7 | 0x4F, - 40019 - 19968: jis0212<<14 | 0x4A<<7 | 0x24, - 40020 - 19968: jis0212<<14 | 0x4A<<7 | 0x25, - 40022 - 19968: jis0212<<14 | 0x4A<<7 | 0x26, - 40023 - 19968: jis0208<<14 | 0x2D<<7 | 0x39, - 40024 - 19968: jis0212<<14 | 0x4A<<7 | 0x27, - 40026 - 19968: jis0208<<14 | 0x51<<7 | 0x44, - 40027 - 19968: jis0212<<14 | 0x4A<<7 | 0x28, - 40028 - 19968: jis0212<<14 | 0x4A<<7 | 0x2F, - 40029 - 19968: jis0212<<14 | 0x4A<<7 | 0x29, - 40030 - 19968: jis0212<<14 | 0x4A<<7 | 0x2A, - 40031 - 19968: jis0212<<14 | 0x4A<<7 | 0x2B, - 40032 - 19968: jis0208<<14 | 0x51<<7 | 0x45, - 40035 - 19968: jis0212<<14 | 0x4A<<7 | 0x2C, - 40039 - 19968: jis0208<<14 | 0x51<<7 | 0x46, - 40040 - 19968: jis0212<<14 | 0x4A<<7 | 0x31, - 40041 - 19968: jis0212<<14 | 0x4A<<7 | 0x2D, - 40042 - 19968: jis0212<<14 | 0x4A<<7 | 0x2E, - 40043 - 19968: jis0212<<14 | 0x4A<<7 | 0x30, - 40046 - 19968: jis0212<<14 | 0x4A<<7 | 0x32, - 40048 - 19968: jis0212<<14 | 0x4A<<7 | 0x33, - 40050 - 19968: jis0212<<14 | 0x4A<<7 | 0x34, - 40053 - 19968: jis0212<<14 | 0x4A<<7 | 0x35, - 40054 - 19968: jis0208<<14 | 0x51<<7 | 0x47, - 40055 - 19968: jis0212<<14 | 0x4A<<7 | 0x36, - 40056 - 19968: jis0208<<14 | 0x51<<7 | 0x48, - 40059 - 19968: jis0212<<14 | 0x4A<<7 | 0x37, - 40165 - 19968: jis0208<<14 | 0x23<<7 | 0x1A, - 40166 - 19968: jis0212<<14 | 0x4A<<7 | 0x38, - 40167 - 19968: jis0208<<14 | 0x51<<7 | 0x49, - 40169 - 19968: jis0208<<14 | 0x27<<7 | 0x16, - 40171 - 19968: jis0208<<14 | 0x51<<7 | 0x4E, - 40172 - 19968: jis0208<<14 | 0x51<<7 | 0x4A, - 40176 - 19968: jis0208<<14 | 0x51<<7 | 0x4B, - 40178 - 19968: jis0212<<14 | 0x4A<<7 | 0x39, - 40179 - 19968: jis0208<<14 | 0x2A<<7 | 0x10, - 40180 - 19968: jis0208<<14 | 0x2B<<7 | 0x23, - 40182 - 19968: jis0208<<14 | 0x25<<7 | 0x2F, - 40183 - 19968: jis0212<<14 | 0x4A<<7 | 0x3A, - 40185 - 19968: jis0212<<14 | 0x4A<<7 | 0x3B, - 40194 - 19968: jis0212<<14 | 0x4A<<7 | 0x3D, - 40195 - 19968: jis0208<<14 | 0x51<<7 | 0x4F, - 40198 - 19968: jis0208<<14 | 0x51<<7 | 0x50, - 40199 - 19968: jis0208<<14 | 0x25<<7 | 0x1D, - 40200 - 19968: jis0208<<14 | 0x51<<7 | 0x4D, - 40201 - 19968: jis0208<<14 | 0x51<<7 | 0x4C, - 40203 - 19968: jis0212<<14 | 0x4A<<7 | 0x3C, - 40206 - 19968: jis0208<<14 | 0x11<<7 | 0x09, - 40209 - 19968: jis0212<<14 | 0x4A<<7 | 0x3E, - 40210 - 19968: jis0208<<14 | 0x51<<7 | 0x58, - 40213 - 19968: jis0208<<14 | 0x51<<7 | 0x57, - 40215 - 19968: jis0212<<14 | 0x4A<<7 | 0x3F, - 40216 - 19968: jis0212<<14 | 0x4A<<7 | 0x40, - 40219 - 19968: jis0208<<14 | 0x10<<7 | 0x54, - 40220 - 19968: jis0212<<14 | 0x4A<<7 | 0x41, - 40221 - 19968: jis0212<<14 | 0x4A<<7 | 0x42, - 40222 - 19968: jis0212<<14 | 0x4A<<7 | 0x43, - 40223 - 19968: jis0208<<14 | 0x51<<7 | 0x55, - 40227 - 19968: jis0208<<14 | 0x51<<7 | 0x54, - 40230 - 19968: jis0208<<14 | 0x51<<7 | 0x52, - 40232 - 19968: jis0208<<14 | 0x12<<7 | 0x5A, - 40234 - 19968: jis0208<<14 | 0x51<<7 | 0x51, - 40235 - 19968: jis0208<<14 | 0x1B<<7 | 0x11, - 40236 - 19968: jis0208<<14 | 0x11<<7 | 0x08, - 40239 - 19968: jis0212<<14 | 0x4A<<7 | 0x44, - 40240 - 19968: jis0212<<14 | 0x4A<<7 | 0x45, - 40242 - 19968: jis0212<<14 | 0x4A<<7 | 0x46, - 40243 - 19968: jis0212<<14 | 0x4A<<7 | 0x47, - 40244 - 19968: jis0212<<14 | 0x4A<<7 | 0x48, - 40250 - 19968: jis0212<<14 | 0x4A<<7 | 0x49, - 40251 - 19968: jis0208<<14 | 0x18<<7 | 0x42, - 40252 - 19968: jis0212<<14 | 0x4A<<7 | 0x4A, - 40253 - 19968: jis0212<<14 | 0x4A<<7 | 0x4C, - 40254 - 19968: jis0208<<14 | 0x51<<7 | 0x5B, - 40255 - 19968: jis0208<<14 | 0x51<<7 | 0x5A, - 40257 - 19968: jis0208<<14 | 0x51<<7 | 0x59, - 40258 - 19968: jis0212<<14 | 0x4A<<7 | 0x4D, - 40259 - 19968: jis0212<<14 | 0x4A<<7 | 0x4E, - 40260 - 19968: jis0208<<14 | 0x51<<7 | 0x56, - 40261 - 19968: jis0212<<14 | 0x4A<<7 | 0x4B, - 40262 - 19968: jis0208<<14 | 0x51<<7 | 0x5C, - 40263 - 19968: jis0212<<14 | 0x4A<<7 | 0x4F, - 40264 - 19968: jis0208<<14 | 0x51<<7 | 0x5D, - 40266 - 19968: jis0212<<14 | 0x4A<<7 | 0x50, - 40272 - 19968: jis0208<<14 | 0x52<<7 | 0x04, - 40273 - 19968: jis0208<<14 | 0x52<<7 | 0x03, - 40275 - 19968: jis0212<<14 | 0x4A<<7 | 0x51, - 40276 - 19968: jis0212<<14 | 0x4A<<7 | 0x52, - 40281 - 19968: jis0208<<14 | 0x52<<7 | 0x05, - 40284 - 19968: jis0208<<14 | 0x10<<7 | 0x0C, - 40285 - 19968: jis0208<<14 | 0x52<<7 | 0x00, - 40286 - 19968: jis0208<<14 | 0x52<<7 | 0x01, - 40287 - 19968: jis0212<<14 | 0x4A<<7 | 0x53, - 40288 - 19968: jis0208<<14 | 0x18<<7 | 0x53, - 40289 - 19968: jis0208<<14 | 0x2B<<7 | 0x18, - 40290 - 19968: jis0212<<14 | 0x4A<<7 | 0x55, - 40291 - 19968: jis0212<<14 | 0x4A<<7 | 0x54, - 40292 - 19968: jis0208<<14 | 0x52<<7 | 0x02, - 40293 - 19968: jis0212<<14 | 0x4A<<7 | 0x56, - 40297 - 19968: jis0212<<14 | 0x4A<<7 | 0x57, - 40298 - 19968: jis0212<<14 | 0x4A<<7 | 0x58, - 40299 - 19968: jis0208<<14 | 0x5B<<7 | 0x4A, - 40300 - 19968: jis0208<<14 | 0x2A<<7 | 0x11, - 40303 - 19968: jis0208<<14 | 0x52<<7 | 0x0A, - 40304 - 19968: jis0208<<14 | 0x5B<<7 | 0x49, - 40306 - 19968: jis0208<<14 | 0x52<<7 | 0x06, - 40310 - 19968: jis0212<<14 | 0x4A<<7 | 0x5B, - 40311 - 19968: jis0212<<14 | 0x4A<<7 | 0x5C, - 40314 - 19968: jis0208<<14 | 0x52<<7 | 0x0B, - 40315 - 19968: jis0212<<14 | 0x4A<<7 | 0x5D, - 40316 - 19968: jis0212<<14 | 0x4B<<7 | 0x00, - 40318 - 19968: jis0212<<14 | 0x4B<<7 | 0x01, - 40323 - 19968: jis0212<<14 | 0x4B<<7 | 0x02, - 40324 - 19968: jis0212<<14 | 0x4B<<7 | 0x03, - 40326 - 19968: jis0212<<14 | 0x4B<<7 | 0x04, - 40327 - 19968: jis0208<<14 | 0x52<<7 | 0x08, - 40329 - 19968: jis0208<<14 | 0x52<<7 | 0x07, - 40330 - 19968: jis0212<<14 | 0x4B<<7 | 0x05, - 40333 - 19968: jis0212<<14 | 0x4B<<7 | 0x06, - 40334 - 19968: jis0212<<14 | 0x4B<<7 | 0x07, - 40335 - 19968: jis0208<<14 | 0x16<<7 | 0x3B, - 40338 - 19968: jis0212<<14 | 0x4B<<7 | 0x08, - 40339 - 19968: jis0212<<14 | 0x4B<<7 | 0x09, - 40341 - 19968: jis0212<<14 | 0x4B<<7 | 0x0A, - 40342 - 19968: jis0212<<14 | 0x4B<<7 | 0x0B, - 40343 - 19968: jis0212<<14 | 0x4B<<7 | 0x0C, - 40344 - 19968: jis0212<<14 | 0x4B<<7 | 0x0D, - 40346 - 19968: jis0208<<14 | 0x52<<7 | 0x0C, - 40353 - 19968: jis0212<<14 | 0x4B<<7 | 0x0E, - 40356 - 19968: jis0208<<14 | 0x52<<7 | 0x0D, - 40361 - 19968: jis0208<<14 | 0x52<<7 | 0x0E, - 40362 - 19968: jis0212<<14 | 0x4B<<7 | 0x0F, - 40363 - 19968: jis0208<<14 | 0x52<<7 | 0x09, - 40364 - 19968: jis0212<<14 | 0x4B<<7 | 0x10, - 40366 - 19968: jis0212<<14 | 0x4B<<7 | 0x11, - 40367 - 19968: jis0208<<14 | 0x51<<7 | 0x53, - 40369 - 19968: jis0212<<14 | 0x4B<<7 | 0x12, - 40370 - 19968: jis0208<<14 | 0x52<<7 | 0x0F, - 40372 - 19968: jis0208<<14 | 0x23<<7 | 0x40, - 40373 - 19968: jis0212<<14 | 0x4B<<7 | 0x13, - 40376 - 19968: jis0208<<14 | 0x52<<7 | 0x13, - 40377 - 19968: jis0212<<14 | 0x4B<<7 | 0x14, - 40378 - 19968: jis0208<<14 | 0x52<<7 | 0x14, - 40379 - 19968: jis0208<<14 | 0x52<<7 | 0x12, - 40380 - 19968: jis0212<<14 | 0x4B<<7 | 0x15, - 40383 - 19968: jis0212<<14 | 0x4B<<7 | 0x16, - 40385 - 19968: jis0208<<14 | 0x52<<7 | 0x11, - 40386 - 19968: jis0208<<14 | 0x52<<7 | 0x17, - 40387 - 19968: jis0212<<14 | 0x4B<<7 | 0x17, - 40388 - 19968: jis0208<<14 | 0x52<<7 | 0x10, - 40390 - 19968: jis0208<<14 | 0x52<<7 | 0x15, - 40391 - 19968: jis0212<<14 | 0x4B<<7 | 0x18, - 40393 - 19968: jis0212<<14 | 0x4B<<7 | 0x19, - 40394 - 19968: jis0212<<14 | 0x4B<<7 | 0x1A, - 40399 - 19968: jis0208<<14 | 0x52<<7 | 0x16, - 40403 - 19968: jis0208<<14 | 0x52<<7 | 0x19, - 40404 - 19968: jis0212<<14 | 0x4B<<7 | 0x1B, - 40405 - 19968: jis0212<<14 | 0x4B<<7 | 0x1C, - 40406 - 19968: jis0212<<14 | 0x4B<<7 | 0x1D, - 40407 - 19968: jis0212<<14 | 0x4B<<7 | 0x1E, - 40409 - 19968: jis0208<<14 | 0x52<<7 | 0x18, - 40410 - 19968: jis0212<<14 | 0x4B<<7 | 0x1F, - 40414 - 19968: jis0212<<14 | 0x4B<<7 | 0x20, - 40415 - 19968: jis0212<<14 | 0x4B<<7 | 0x21, - 40416 - 19968: jis0212<<14 | 0x4B<<7 | 0x22, - 40421 - 19968: jis0212<<14 | 0x4B<<7 | 0x23, - 40422 - 19968: jis0208<<14 | 0x52<<7 | 0x1B, - 40423 - 19968: jis0212<<14 | 0x4B<<7 | 0x24, - 40425 - 19968: jis0212<<14 | 0x4B<<7 | 0x25, - 40427 - 19968: jis0212<<14 | 0x4B<<7 | 0x26, - 40429 - 19968: jis0208<<14 | 0x52<<7 | 0x1C, - 40430 - 19968: jis0212<<14 | 0x4B<<7 | 0x27, - 40431 - 19968: jis0208<<14 | 0x52<<7 | 0x1D, - 40432 - 19968: jis0212<<14 | 0x4B<<7 | 0x28, - 40434 - 19968: jis0208<<14 | 0x2E<<7 | 0x28, - 40435 - 19968: jis0212<<14 | 0x4B<<7 | 0x29, - 40436 - 19968: jis0212<<14 | 0x4B<<7 | 0x2A, - 40440 - 19968: jis0208<<14 | 0x52<<7 | 0x1A, - 40441 - 19968: jis0208<<14 | 0x21<<7 | 0x4A, - 40442 - 19968: jis0208<<14 | 0x19<<7 | 0x4C, - 40445 - 19968: jis0208<<14 | 0x52<<7 | 0x1E, - 40446 - 19968: jis0212<<14 | 0x4B<<7 | 0x2B, - 40450 - 19968: jis0212<<14 | 0x4B<<7 | 0x2D, - 40455 - 19968: jis0212<<14 | 0x4B<<7 | 0x2E, - 40458 - 19968: jis0212<<14 | 0x4B<<7 | 0x2C, - 40462 - 19968: jis0212<<14 | 0x4B<<7 | 0x2F, - 40464 - 19968: jis0212<<14 | 0x4B<<7 | 0x30, - 40465 - 19968: jis0212<<14 | 0x4B<<7 | 0x31, - 40466 - 19968: jis0212<<14 | 0x4B<<7 | 0x32, - 40469 - 19968: jis0212<<14 | 0x4B<<7 | 0x33, - 40470 - 19968: jis0212<<14 | 0x4B<<7 | 0x34, - 40473 - 19968: jis0208<<14 | 0x5B<<7 | 0x4C, - 40474 - 19968: jis0208<<14 | 0x52<<7 | 0x1F, - 40475 - 19968: jis0208<<14 | 0x52<<7 | 0x20, - 40476 - 19968: jis0212<<14 | 0x4B<<7 | 0x36, - 40477 - 19968: jis0212<<14 | 0x4B<<7 | 0x37, - 40478 - 19968: jis0208<<14 | 0x52<<7 | 0x21, - 40565 - 19968: jis0208<<14 | 0x52<<7 | 0x22, - 40568 - 19968: jis0208<<14 | 0x17<<7 | 0x13, - 40569 - 19968: jis0208<<14 | 0x52<<7 | 0x23, - 40570 - 19968: jis0212<<14 | 0x4B<<7 | 0x38, - 40571 - 19968: jis0212<<14 | 0x4B<<7 | 0x39, - 40572 - 19968: jis0212<<14 | 0x4B<<7 | 0x3A, - 40573 - 19968: jis0208<<14 | 0x52<<7 | 0x24, - 40575 - 19968: jis0208<<14 | 0x1B<<7 | 0x0E, - 40576 - 19968: jis0212<<14 | 0x4B<<7 | 0x3B, - 40577 - 19968: jis0208<<14 | 0x52<<7 | 0x25, - 40578 - 19968: jis0212<<14 | 0x4B<<7 | 0x3C, - 40579 - 19968: jis0212<<14 | 0x4B<<7 | 0x3D, - 40580 - 19968: jis0212<<14 | 0x4B<<7 | 0x3E, - 40581 - 19968: jis0212<<14 | 0x4B<<7 | 0x3F, - 40583 - 19968: jis0212<<14 | 0x4B<<7 | 0x40, - 40584 - 19968: jis0208<<14 | 0x52<<7 | 0x26, - 40587 - 19968: jis0208<<14 | 0x52<<7 | 0x27, - 40588 - 19968: jis0208<<14 | 0x52<<7 | 0x28, - 40590 - 19968: jis0212<<14 | 0x4B<<7 | 0x41, - 40591 - 19968: jis0212<<14 | 0x4B<<7 | 0x42, - 40593 - 19968: jis0208<<14 | 0x52<<7 | 0x2B, - 40594 - 19968: jis0208<<14 | 0x52<<7 | 0x29, - 40595 - 19968: jis0208<<14 | 0x2E<<7 | 0x1B, - 40597 - 19968: jis0208<<14 | 0x52<<7 | 0x2A, - 40598 - 19968: jis0212<<14 | 0x4B<<7 | 0x43, - 40599 - 19968: jis0208<<14 | 0x2D<<7 | 0x4E, - 40600 - 19968: jis0212<<14 | 0x4B<<7 | 0x44, - 40603 - 19968: jis0212<<14 | 0x4B<<7 | 0x45, - 40605 - 19968: jis0208<<14 | 0x52<<7 | 0x2C, - 40606 - 19968: jis0212<<14 | 0x4B<<7 | 0x46, - 40607 - 19968: jis0208<<14 | 0x2D<<7 | 0x3A, - 40612 - 19968: jis0212<<14 | 0x4B<<7 | 0x47, - 40613 - 19968: jis0208<<14 | 0x52<<7 | 0x2D, - 40614 - 19968: jis0208<<14 | 0x26<<7 | 0x5D, - 40616 - 19968: jis0212<<14 | 0x4B<<7 | 0x48, - 40617 - 19968: jis0208<<14 | 0x52<<7 | 0x2E, - 40618 - 19968: jis0208<<14 | 0x52<<7 | 0x30, - 40620 - 19968: jis0212<<14 | 0x4B<<7 | 0x49, - 40621 - 19968: jis0208<<14 | 0x52<<7 | 0x31, - 40622 - 19968: jis0212<<14 | 0x4B<<7 | 0x4A, - 40623 - 19968: jis0212<<14 | 0x4B<<7 | 0x4B, - 40624 - 19968: jis0212<<14 | 0x4B<<7 | 0x4C, - 40627 - 19968: jis0212<<14 | 0x4B<<7 | 0x4D, - 40628 - 19968: jis0212<<14 | 0x4B<<7 | 0x4E, - 40629 - 19968: jis0212<<14 | 0x4B<<7 | 0x4F, - 40632 - 19968: jis0208<<14 | 0x52<<7 | 0x2F, - 40633 - 19968: jis0208<<14 | 0x18<<7 | 0x4C, - 40634 - 19968: jis0208<<14 | 0x2B<<7 | 0x2C, - 40635 - 19968: jis0208<<14 | 0x2A<<7 | 0x42, - 40636 - 19968: jis0208<<14 | 0x35<<7 | 0x56, - 40638 - 19968: jis0208<<14 | 0x3C<<7 | 0x3F, - 40639 - 19968: jis0208<<14 | 0x2A<<7 | 0x5A, - 40644 - 19968: jis0208<<14 | 0x11<<7 | 0x0A, - 40646 - 19968: jis0212<<14 | 0x4B<<7 | 0x50, - 40648 - 19968: jis0212<<14 | 0x4B<<7 | 0x51, - 40651 - 19968: jis0212<<14 | 0x4B<<7 | 0x52, - 40652 - 19968: jis0208<<14 | 0x52<<7 | 0x33, - 40653 - 19968: jis0208<<14 | 0x14<<7 | 0x2F, - 40654 - 19968: jis0208<<14 | 0x52<<7 | 0x34, - 40655 - 19968: jis0208<<14 | 0x52<<7 | 0x35, - 40656 - 19968: jis0208<<14 | 0x52<<7 | 0x36, - 40657 - 19968: jis0208<<14 | 0x5B<<7 | 0x4D, - 40658 - 19968: jis0208<<14 | 0x18<<7 | 0x54, - 40660 - 19968: jis0208<<14 | 0x52<<7 | 0x37, - 40661 - 19968: jis0212<<14 | 0x4B<<7 | 0x53, - 40664 - 19968: jis0208<<14 | 0x3F<<7 | 0x33, - 40665 - 19968: jis0208<<14 | 0x2B<<7 | 0x3A, - 40667 - 19968: jis0208<<14 | 0x21<<7 | 0x42, - 40668 - 19968: jis0208<<14 | 0x52<<7 | 0x38, - 40669 - 19968: jis0208<<14 | 0x52<<7 | 0x3A, - 40670 - 19968: jis0208<<14 | 0x52<<7 | 0x39, - 40671 - 19968: jis0212<<14 | 0x4B<<7 | 0x54, - 40672 - 19968: jis0208<<14 | 0x52<<7 | 0x3B, - 40676 - 19968: jis0212<<14 | 0x4B<<7 | 0x55, - 40677 - 19968: jis0208<<14 | 0x52<<7 | 0x3C, - 40679 - 19968: jis0212<<14 | 0x4B<<7 | 0x56, - 40680 - 19968: jis0208<<14 | 0x52<<7 | 0x3D, - 40684 - 19968: jis0212<<14 | 0x4B<<7 | 0x57, - 40685 - 19968: jis0212<<14 | 0x4B<<7 | 0x58, - 40686 - 19968: jis0212<<14 | 0x4B<<7 | 0x59, - 40687 - 19968: jis0208<<14 | 0x52<<7 | 0x3E, - 40688 - 19968: jis0212<<14 | 0x4B<<7 | 0x5A, - 40689 - 19968: jis0212<<14 | 0x4B<<7 | 0x5B, - 40690 - 19968: jis0212<<14 | 0x4B<<7 | 0x5C, - 40692 - 19968: jis0208<<14 | 0x52<<7 | 0x3F, - 40693 - 19968: jis0212<<14 | 0x4B<<7 | 0x5D, - 40694 - 19968: jis0208<<14 | 0x52<<7 | 0x40, - 40695 - 19968: jis0208<<14 | 0x52<<7 | 0x41, - 40696 - 19968: jis0212<<14 | 0x4C<<7 | 0x00, - 40697 - 19968: jis0208<<14 | 0x52<<7 | 0x42, - 40699 - 19968: jis0208<<14 | 0x52<<7 | 0x43, - 40700 - 19968: jis0208<<14 | 0x52<<7 | 0x44, - 40701 - 19968: jis0208<<14 | 0x52<<7 | 0x45, - 40703 - 19968: jis0212<<14 | 0x4C<<7 | 0x01, - 40706 - 19968: jis0212<<14 | 0x4C<<7 | 0x02, - 40707 - 19968: jis0212<<14 | 0x4C<<7 | 0x03, - 40711 - 19968: jis0208<<14 | 0x52<<7 | 0x46, - 40712 - 19968: jis0208<<14 | 0x52<<7 | 0x47, - 40713 - 19968: jis0212<<14 | 0x4C<<7 | 0x04, - 40718 - 19968: jis0208<<14 | 0x24<<7 | 0x03, - 40719 - 19968: jis0212<<14 | 0x4C<<7 | 0x05, - 40720 - 19968: jis0212<<14 | 0x4C<<7 | 0x06, - 40721 - 19968: jis0212<<14 | 0x4C<<7 | 0x07, - 40722 - 19968: jis0212<<14 | 0x4C<<7 | 0x08, - 40723 - 19968: jis0208<<14 | 0x17<<7 | 0x3C, - 40724 - 19968: jis0212<<14 | 0x4C<<7 | 0x09, - 40725 - 19968: jis0208<<14 | 0x52<<7 | 0x49, - 40726 - 19968: jis0212<<14 | 0x4C<<7 | 0x0A, - 40727 - 19968: jis0212<<14 | 0x4C<<7 | 0x0B, - 40729 - 19968: jis0212<<14 | 0x4C<<7 | 0x0C, - 40730 - 19968: jis0212<<14 | 0x4C<<7 | 0x0D, - 40731 - 19968: jis0212<<14 | 0x4C<<7 | 0x0E, - 40735 - 19968: jis0212<<14 | 0x4C<<7 | 0x0F, - 40736 - 19968: jis0208<<14 | 0x20<<7 | 0x2C, - 40737 - 19968: jis0208<<14 | 0x52<<7 | 0x4A, - 40738 - 19968: jis0212<<14 | 0x4C<<7 | 0x10, - 40742 - 19968: jis0212<<14 | 0x4C<<7 | 0x11, - 40746 - 19968: jis0212<<14 | 0x4C<<7 | 0x12, - 40747 - 19968: jis0212<<14 | 0x4C<<7 | 0x13, - 40748 - 19968: jis0208<<14 | 0x52<<7 | 0x4B, - 40751 - 19968: jis0212<<14 | 0x4C<<7 | 0x14, - 40753 - 19968: jis0212<<14 | 0x4C<<7 | 0x15, - 40754 - 19968: jis0212<<14 | 0x4C<<7 | 0x16, - 40756 - 19968: jis0212<<14 | 0x4C<<7 | 0x17, - 40759 - 19968: jis0212<<14 | 0x4C<<7 | 0x18, - 40761 - 19968: jis0212<<14 | 0x4C<<7 | 0x19, - 40762 - 19968: jis0212<<14 | 0x4C<<7 | 0x1A, - 40763 - 19968: jis0208<<14 | 0x28<<7 | 0x00, - 40764 - 19968: jis0212<<14 | 0x4C<<7 | 0x1B, - 40765 - 19968: jis0212<<14 | 0x4C<<7 | 0x1C, - 40766 - 19968: jis0208<<14 | 0x52<<7 | 0x4C, - 40767 - 19968: jis0212<<14 | 0x4C<<7 | 0x1D, - 40769 - 19968: jis0212<<14 | 0x4C<<7 | 0x1E, - 40771 - 19968: jis0212<<14 | 0x4C<<7 | 0x1F, - 40772 - 19968: jis0212<<14 | 0x4C<<7 | 0x20, - 40773 - 19968: jis0212<<14 | 0x4C<<7 | 0x21, - 40774 - 19968: jis0212<<14 | 0x4C<<7 | 0x22, - 40775 - 19968: jis0212<<14 | 0x4C<<7 | 0x23, - 40778 - 19968: jis0208<<14 | 0x52<<7 | 0x4D, - 40779 - 19968: jis0208<<14 | 0x42<<7 | 0x16, - 40782 - 19968: jis0208<<14 | 0x4B<<7 | 0x39, - 40783 - 19968: jis0208<<14 | 0x4F<<7 | 0x4C, - 40786 - 19968: jis0208<<14 | 0x52<<7 | 0x4E, - 40787 - 19968: jis0212<<14 | 0x4C<<7 | 0x24, - 40788 - 19968: jis0208<<14 | 0x52<<7 | 0x4F, - 40789 - 19968: jis0212<<14 | 0x4C<<7 | 0x25, - 40790 - 19968: jis0212<<14 | 0x4C<<7 | 0x26, - 40791 - 19968: jis0212<<14 | 0x4C<<7 | 0x27, - 40792 - 19968: jis0212<<14 | 0x4C<<7 | 0x28, - 40794 - 19968: jis0212<<14 | 0x4C<<7 | 0x29, - 40797 - 19968: jis0212<<14 | 0x4C<<7 | 0x2A, - 40798 - 19968: jis0212<<14 | 0x4C<<7 | 0x2B, - 40799 - 19968: jis0208<<14 | 0x52<<7 | 0x51, - 40800 - 19968: jis0208<<14 | 0x52<<7 | 0x52, - 40801 - 19968: jis0208<<14 | 0x52<<7 | 0x53, - 40802 - 19968: jis0208<<14 | 0x2D<<7 | 0x4F, - 40803 - 19968: jis0208<<14 | 0x52<<7 | 0x50, - 40806 - 19968: jis0208<<14 | 0x52<<7 | 0x54, - 40807 - 19968: jis0208<<14 | 0x52<<7 | 0x55, - 40808 - 19968: jis0212<<14 | 0x4C<<7 | 0x2C, - 40809 - 19968: jis0212<<14 | 0x4C<<7 | 0x2D, - 40810 - 19968: jis0208<<14 | 0x52<<7 | 0x57, - 40812 - 19968: jis0208<<14 | 0x52<<7 | 0x56, - 40813 - 19968: jis0212<<14 | 0x4C<<7 | 0x2E, - 40814 - 19968: jis0212<<14 | 0x4C<<7 | 0x2F, - 40815 - 19968: jis0212<<14 | 0x4C<<7 | 0x30, - 40816 - 19968: jis0212<<14 | 0x4C<<7 | 0x31, - 40817 - 19968: jis0212<<14 | 0x4C<<7 | 0x32, - 40818 - 19968: jis0208<<14 | 0x52<<7 | 0x59, - 40819 - 19968: jis0212<<14 | 0x4C<<7 | 0x33, - 40821 - 19968: jis0212<<14 | 0x4C<<7 | 0x34, - 40822 - 19968: jis0208<<14 | 0x52<<7 | 0x5A, - 40823 - 19968: jis0208<<14 | 0x52<<7 | 0x58, - 40826 - 19968: jis0212<<14 | 0x4C<<7 | 0x35, - 40829 - 19968: jis0212<<14 | 0x4C<<7 | 0x36, - 40845 - 19968: jis0208<<14 | 0x2D<<7 | 0x15, - 40847 - 19968: jis0212<<14 | 0x4C<<7 | 0x37, - 40848 - 19968: jis0212<<14 | 0x4C<<7 | 0x38, - 40849 - 19968: jis0212<<14 | 0x4C<<7 | 0x39, - 40850 - 19968: jis0212<<14 | 0x4C<<7 | 0x3A, - 40852 - 19968: jis0212<<14 | 0x4C<<7 | 0x3B, - 40853 - 19968: jis0208<<14 | 0x52<<7 | 0x5B, - 40854 - 19968: jis0212<<14 | 0x4C<<7 | 0x3C, - 40855 - 19968: jis0212<<14 | 0x4C<<7 | 0x3D, - 40860 - 19968: jis0208<<14 | 0x52<<7 | 0x5C, - 40861 - 19968: jis0208<<14 | 0x42<<7 | 0x33, - 40862 - 19968: jis0212<<14 | 0x4C<<7 | 0x3E, - 40864 - 19968: jis0208<<14 | 0x52<<7 | 0x5D, - 40865 - 19968: jis0212<<14 | 0x4C<<7 | 0x3F, - 40866 - 19968: jis0212<<14 | 0x4C<<7 | 0x40, - 40867 - 19968: jis0212<<14 | 0x4C<<7 | 0x41, - 40869 - 19968: jis0212<<14 | 0x4C<<7 | 0x42, -} - -const encode1Low, encode1High = 8208, 9840 - -var encode1 = [...]uint16{ - 8208 - 8208: jis0208<<14 | 0x00<<7 | 0x1D, - 8213 - 8208: jis0208<<14 | 0x00<<7 | 0x1C, - 8216 - 8208: jis0208<<14 | 0x00<<7 | 0x25, - 8217 - 8208: jis0208<<14 | 0x00<<7 | 0x26, - 8220 - 8208: jis0208<<14 | 0x00<<7 | 0x27, - 8221 - 8208: jis0208<<14 | 0x00<<7 | 0x28, - 8224 - 8208: jis0208<<14 | 0x01<<7 | 0x56, - 8225 - 8208: jis0208<<14 | 0x01<<7 | 0x57, - 8229 - 8208: jis0208<<14 | 0x00<<7 | 0x24, - 8230 - 8208: jis0208<<14 | 0x00<<7 | 0x23, - 8240 - 8208: jis0208<<14 | 0x01<<7 | 0x52, - 8242 - 8208: jis0208<<14 | 0x00<<7 | 0x4B, - 8243 - 8208: jis0208<<14 | 0x00<<7 | 0x4C, - 8251 - 8208: jis0208<<14 | 0x01<<7 | 0x07, - 8451 - 8208: jis0208<<14 | 0x00<<7 | 0x4D, - 8470 - 8208: jis0208<<14 | 0x0C<<7 | 0x41, - 8481 - 8208: jis0208<<14 | 0x0C<<7 | 0x43, - 8482 - 8208: jis0212<<14 | 0x01<<7 | 0x4E, - 8491 - 8208: jis0208<<14 | 0x01<<7 | 0x51, - 8544 - 8208: jis0208<<14 | 0x0C<<7 | 0x14, - 8545 - 8208: jis0208<<14 | 0x0C<<7 | 0x15, - 8546 - 8208: jis0208<<14 | 0x0C<<7 | 0x16, - 8547 - 8208: jis0208<<14 | 0x0C<<7 | 0x17, - 8548 - 8208: jis0208<<14 | 0x0C<<7 | 0x18, - 8549 - 8208: jis0208<<14 | 0x0C<<7 | 0x19, - 8550 - 8208: jis0208<<14 | 0x0C<<7 | 0x1A, - 8551 - 8208: jis0208<<14 | 0x0C<<7 | 0x1B, - 8552 - 8208: jis0208<<14 | 0x0C<<7 | 0x1C, - 8553 - 8208: jis0208<<14 | 0x0C<<7 | 0x1D, - 8560 - 8208: jis0208<<14 | 0x5B<<7 | 0x50, - 8561 - 8208: jis0208<<14 | 0x5B<<7 | 0x51, - 8562 - 8208: jis0208<<14 | 0x5B<<7 | 0x52, - 8563 - 8208: jis0208<<14 | 0x5B<<7 | 0x53, - 8564 - 8208: jis0208<<14 | 0x5B<<7 | 0x54, - 8565 - 8208: jis0208<<14 | 0x5B<<7 | 0x55, - 8566 - 8208: jis0208<<14 | 0x5B<<7 | 0x56, - 8567 - 8208: jis0208<<14 | 0x5B<<7 | 0x57, - 8568 - 8208: jis0208<<14 | 0x5B<<7 | 0x58, - 8569 - 8208: jis0208<<14 | 0x5B<<7 | 0x59, - 8592 - 8208: jis0208<<14 | 0x01<<7 | 0x0A, - 8593 - 8208: jis0208<<14 | 0x01<<7 | 0x0B, - 8594 - 8208: jis0208<<14 | 0x01<<7 | 0x09, - 8595 - 8208: jis0208<<14 | 0x01<<7 | 0x0C, - 8658 - 8208: jis0208<<14 | 0x01<<7 | 0x2C, - 8660 - 8208: jis0208<<14 | 0x01<<7 | 0x2D, - 8704 - 8208: jis0208<<14 | 0x01<<7 | 0x2E, - 8706 - 8208: jis0208<<14 | 0x01<<7 | 0x3E, - 8707 - 8208: jis0208<<14 | 0x01<<7 | 0x2F, - 8711 - 8208: jis0208<<14 | 0x01<<7 | 0x3F, - 8712 - 8208: jis0208<<14 | 0x01<<7 | 0x19, - 8715 - 8208: jis0208<<14 | 0x01<<7 | 0x1A, - 8721 - 8208: jis0208<<14 | 0x0C<<7 | 0x53, - 8730 - 8208: jis0208<<14 | 0x01<<7 | 0x44, - 8733 - 8208: jis0208<<14 | 0x01<<7 | 0x46, - 8734 - 8208: jis0208<<14 | 0x00<<7 | 0x46, - 8735 - 8208: jis0208<<14 | 0x0C<<7 | 0x57, - 8736 - 8208: jis0208<<14 | 0x01<<7 | 0x3B, - 8741 - 8208: jis0208<<14 | 0x00<<7 | 0x21, - 8743 - 8208: jis0208<<14 | 0x01<<7 | 0x29, - 8744 - 8208: jis0208<<14 | 0x01<<7 | 0x2A, - 8745 - 8208: jis0208<<14 | 0x01<<7 | 0x20, - 8746 - 8208: jis0208<<14 | 0x01<<7 | 0x1F, - 8747 - 8208: jis0208<<14 | 0x01<<7 | 0x48, - 8748 - 8208: jis0208<<14 | 0x01<<7 | 0x49, - 8750 - 8208: jis0208<<14 | 0x0C<<7 | 0x52, - 8756 - 8208: jis0208<<14 | 0x00<<7 | 0x47, - 8757 - 8208: jis0208<<14 | 0x01<<7 | 0x47, - 8765 - 8208: jis0208<<14 | 0x01<<7 | 0x45, - 8786 - 8208: jis0208<<14 | 0x01<<7 | 0x41, - 8800 - 8208: jis0208<<14 | 0x00<<7 | 0x41, - 8801 - 8208: jis0208<<14 | 0x01<<7 | 0x40, - 8806 - 8208: jis0208<<14 | 0x00<<7 | 0x44, - 8807 - 8208: jis0208<<14 | 0x00<<7 | 0x45, - 8810 - 8208: jis0208<<14 | 0x01<<7 | 0x42, - 8811 - 8208: jis0208<<14 | 0x01<<7 | 0x43, - 8834 - 8208: jis0208<<14 | 0x01<<7 | 0x1D, - 8835 - 8208: jis0208<<14 | 0x01<<7 | 0x1E, - 8838 - 8208: jis0208<<14 | 0x01<<7 | 0x1B, - 8839 - 8208: jis0208<<14 | 0x01<<7 | 0x1C, - 8869 - 8208: jis0208<<14 | 0x01<<7 | 0x3C, - 8895 - 8208: jis0208<<14 | 0x0C<<7 | 0x58, - 8978 - 8208: jis0208<<14 | 0x01<<7 | 0x3D, - 9312 - 8208: jis0208<<14 | 0x0C<<7 | 0x00, - 9313 - 8208: jis0208<<14 | 0x0C<<7 | 0x01, - 9314 - 8208: jis0208<<14 | 0x0C<<7 | 0x02, - 9315 - 8208: jis0208<<14 | 0x0C<<7 | 0x03, - 9316 - 8208: jis0208<<14 | 0x0C<<7 | 0x04, - 9317 - 8208: jis0208<<14 | 0x0C<<7 | 0x05, - 9318 - 8208: jis0208<<14 | 0x0C<<7 | 0x06, - 9319 - 8208: jis0208<<14 | 0x0C<<7 | 0x07, - 9320 - 8208: jis0208<<14 | 0x0C<<7 | 0x08, - 9321 - 8208: jis0208<<14 | 0x0C<<7 | 0x09, - 9322 - 8208: jis0208<<14 | 0x0C<<7 | 0x0A, - 9323 - 8208: jis0208<<14 | 0x0C<<7 | 0x0B, - 9324 - 8208: jis0208<<14 | 0x0C<<7 | 0x0C, - 9325 - 8208: jis0208<<14 | 0x0C<<7 | 0x0D, - 9326 - 8208: jis0208<<14 | 0x0C<<7 | 0x0E, - 9327 - 8208: jis0208<<14 | 0x0C<<7 | 0x0F, - 9328 - 8208: jis0208<<14 | 0x0C<<7 | 0x10, - 9329 - 8208: jis0208<<14 | 0x0C<<7 | 0x11, - 9330 - 8208: jis0208<<14 | 0x0C<<7 | 0x12, - 9331 - 8208: jis0208<<14 | 0x0C<<7 | 0x13, - 9472 - 8208: jis0208<<14 | 0x07<<7 | 0x00, - 9473 - 8208: jis0208<<14 | 0x07<<7 | 0x0B, - 9474 - 8208: jis0208<<14 | 0x07<<7 | 0x01, - 9475 - 8208: jis0208<<14 | 0x07<<7 | 0x0C, - 9484 - 8208: jis0208<<14 | 0x07<<7 | 0x02, - 9487 - 8208: jis0208<<14 | 0x07<<7 | 0x0D, - 9488 - 8208: jis0208<<14 | 0x07<<7 | 0x03, - 9491 - 8208: jis0208<<14 | 0x07<<7 | 0x0E, - 9492 - 8208: jis0208<<14 | 0x07<<7 | 0x05, - 9495 - 8208: jis0208<<14 | 0x07<<7 | 0x10, - 9496 - 8208: jis0208<<14 | 0x07<<7 | 0x04, - 9499 - 8208: jis0208<<14 | 0x07<<7 | 0x0F, - 9500 - 8208: jis0208<<14 | 0x07<<7 | 0x06, - 9501 - 8208: jis0208<<14 | 0x07<<7 | 0x1B, - 9504 - 8208: jis0208<<14 | 0x07<<7 | 0x16, - 9507 - 8208: jis0208<<14 | 0x07<<7 | 0x11, - 9508 - 8208: jis0208<<14 | 0x07<<7 | 0x08, - 9509 - 8208: jis0208<<14 | 0x07<<7 | 0x1D, - 9512 - 8208: jis0208<<14 | 0x07<<7 | 0x18, - 9515 - 8208: jis0208<<14 | 0x07<<7 | 0x13, - 9516 - 8208: jis0208<<14 | 0x07<<7 | 0x07, - 9519 - 8208: jis0208<<14 | 0x07<<7 | 0x17, - 9520 - 8208: jis0208<<14 | 0x07<<7 | 0x1C, - 9523 - 8208: jis0208<<14 | 0x07<<7 | 0x12, - 9524 - 8208: jis0208<<14 | 0x07<<7 | 0x09, - 9527 - 8208: jis0208<<14 | 0x07<<7 | 0x19, - 9528 - 8208: jis0208<<14 | 0x07<<7 | 0x1E, - 9531 - 8208: jis0208<<14 | 0x07<<7 | 0x14, - 9532 - 8208: jis0208<<14 | 0x07<<7 | 0x0A, - 9535 - 8208: jis0208<<14 | 0x07<<7 | 0x1A, - 9538 - 8208: jis0208<<14 | 0x07<<7 | 0x1F, - 9547 - 8208: jis0208<<14 | 0x07<<7 | 0x15, - 9632 - 8208: jis0208<<14 | 0x01<<7 | 0x02, - 9633 - 8208: jis0208<<14 | 0x01<<7 | 0x01, - 9650 - 8208: jis0208<<14 | 0x01<<7 | 0x04, - 9651 - 8208: jis0208<<14 | 0x01<<7 | 0x03, - 9660 - 8208: jis0208<<14 | 0x01<<7 | 0x06, - 9661 - 8208: jis0208<<14 | 0x01<<7 | 0x05, - 9670 - 8208: jis0208<<14 | 0x01<<7 | 0x00, - 9671 - 8208: jis0208<<14 | 0x00<<7 | 0x5D, - 9675 - 8208: jis0208<<14 | 0x00<<7 | 0x5A, - 9678 - 8208: jis0208<<14 | 0x00<<7 | 0x5C, - 9679 - 8208: jis0208<<14 | 0x00<<7 | 0x5B, - 9711 - 8208: jis0208<<14 | 0x01<<7 | 0x5D, - 9733 - 8208: jis0208<<14 | 0x00<<7 | 0x59, - 9734 - 8208: jis0208<<14 | 0x00<<7 | 0x58, - 9792 - 8208: jis0208<<14 | 0x00<<7 | 0x49, - 9794 - 8208: jis0208<<14 | 0x00<<7 | 0x48, - 9834 - 8208: jis0208<<14 | 0x01<<7 | 0x55, - 9837 - 8208: jis0208<<14 | 0x01<<7 | 0x54, - 9839 - 8208: jis0208<<14 | 0x01<<7 | 0x53, -} - -const encode2Low, encode2High = 12288, 13262 - -var encode2 = [...]uint16{ - 12288 - 12288: jis0208<<14 | 0x00<<7 | 0x00, - 12289 - 12288: jis0208<<14 | 0x00<<7 | 0x01, - 12290 - 12288: jis0208<<14 | 0x00<<7 | 0x02, - 12291 - 12288: jis0208<<14 | 0x00<<7 | 0x16, - 12293 - 12288: jis0208<<14 | 0x00<<7 | 0x18, - 12294 - 12288: jis0208<<14 | 0x00<<7 | 0x19, - 12295 - 12288: jis0208<<14 | 0x00<<7 | 0x1A, - 12296 - 12288: jis0208<<14 | 0x00<<7 | 0x31, - 12297 - 12288: jis0208<<14 | 0x00<<7 | 0x32, - 12298 - 12288: jis0208<<14 | 0x00<<7 | 0x33, - 12299 - 12288: jis0208<<14 | 0x00<<7 | 0x34, - 12300 - 12288: jis0208<<14 | 0x00<<7 | 0x35, - 12301 - 12288: jis0208<<14 | 0x00<<7 | 0x36, - 12302 - 12288: jis0208<<14 | 0x00<<7 | 0x37, - 12303 - 12288: jis0208<<14 | 0x00<<7 | 0x38, - 12304 - 12288: jis0208<<14 | 0x00<<7 | 0x39, - 12305 - 12288: jis0208<<14 | 0x00<<7 | 0x3A, - 12306 - 12288: jis0208<<14 | 0x01<<7 | 0x08, - 12307 - 12288: jis0208<<14 | 0x01<<7 | 0x0D, - 12308 - 12288: jis0208<<14 | 0x00<<7 | 0x2B, - 12309 - 12288: jis0208<<14 | 0x00<<7 | 0x2C, - 12317 - 12288: jis0208<<14 | 0x0C<<7 | 0x3F, - 12319 - 12288: jis0208<<14 | 0x0C<<7 | 0x40, - 12353 - 12288: jis0208<<14 | 0x03<<7 | 0x00, - 12354 - 12288: jis0208<<14 | 0x03<<7 | 0x01, - 12355 - 12288: jis0208<<14 | 0x03<<7 | 0x02, - 12356 - 12288: jis0208<<14 | 0x03<<7 | 0x03, - 12357 - 12288: jis0208<<14 | 0x03<<7 | 0x04, - 12358 - 12288: jis0208<<14 | 0x03<<7 | 0x05, - 12359 - 12288: jis0208<<14 | 0x03<<7 | 0x06, - 12360 - 12288: jis0208<<14 | 0x03<<7 | 0x07, - 12361 - 12288: jis0208<<14 | 0x03<<7 | 0x08, - 12362 - 12288: jis0208<<14 | 0x03<<7 | 0x09, - 12363 - 12288: jis0208<<14 | 0x03<<7 | 0x0A, - 12364 - 12288: jis0208<<14 | 0x03<<7 | 0x0B, - 12365 - 12288: jis0208<<14 | 0x03<<7 | 0x0C, - 12366 - 12288: jis0208<<14 | 0x03<<7 | 0x0D, - 12367 - 12288: jis0208<<14 | 0x03<<7 | 0x0E, - 12368 - 12288: jis0208<<14 | 0x03<<7 | 0x0F, - 12369 - 12288: jis0208<<14 | 0x03<<7 | 0x10, - 12370 - 12288: jis0208<<14 | 0x03<<7 | 0x11, - 12371 - 12288: jis0208<<14 | 0x03<<7 | 0x12, - 12372 - 12288: jis0208<<14 | 0x03<<7 | 0x13, - 12373 - 12288: jis0208<<14 | 0x03<<7 | 0x14, - 12374 - 12288: jis0208<<14 | 0x03<<7 | 0x15, - 12375 - 12288: jis0208<<14 | 0x03<<7 | 0x16, - 12376 - 12288: jis0208<<14 | 0x03<<7 | 0x17, - 12377 - 12288: jis0208<<14 | 0x03<<7 | 0x18, - 12378 - 12288: jis0208<<14 | 0x03<<7 | 0x19, - 12379 - 12288: jis0208<<14 | 0x03<<7 | 0x1A, - 12380 - 12288: jis0208<<14 | 0x03<<7 | 0x1B, - 12381 - 12288: jis0208<<14 | 0x03<<7 | 0x1C, - 12382 - 12288: jis0208<<14 | 0x03<<7 | 0x1D, - 12383 - 12288: jis0208<<14 | 0x03<<7 | 0x1E, - 12384 - 12288: jis0208<<14 | 0x03<<7 | 0x1F, - 12385 - 12288: jis0208<<14 | 0x03<<7 | 0x20, - 12386 - 12288: jis0208<<14 | 0x03<<7 | 0x21, - 12387 - 12288: jis0208<<14 | 0x03<<7 | 0x22, - 12388 - 12288: jis0208<<14 | 0x03<<7 | 0x23, - 12389 - 12288: jis0208<<14 | 0x03<<7 | 0x24, - 12390 - 12288: jis0208<<14 | 0x03<<7 | 0x25, - 12391 - 12288: jis0208<<14 | 0x03<<7 | 0x26, - 12392 - 12288: jis0208<<14 | 0x03<<7 | 0x27, - 12393 - 12288: jis0208<<14 | 0x03<<7 | 0x28, - 12394 - 12288: jis0208<<14 | 0x03<<7 | 0x29, - 12395 - 12288: jis0208<<14 | 0x03<<7 | 0x2A, - 12396 - 12288: jis0208<<14 | 0x03<<7 | 0x2B, - 12397 - 12288: jis0208<<14 | 0x03<<7 | 0x2C, - 12398 - 12288: jis0208<<14 | 0x03<<7 | 0x2D, - 12399 - 12288: jis0208<<14 | 0x03<<7 | 0x2E, - 12400 - 12288: jis0208<<14 | 0x03<<7 | 0x2F, - 12401 - 12288: jis0208<<14 | 0x03<<7 | 0x30, - 12402 - 12288: jis0208<<14 | 0x03<<7 | 0x31, - 12403 - 12288: jis0208<<14 | 0x03<<7 | 0x32, - 12404 - 12288: jis0208<<14 | 0x03<<7 | 0x33, - 12405 - 12288: jis0208<<14 | 0x03<<7 | 0x34, - 12406 - 12288: jis0208<<14 | 0x03<<7 | 0x35, - 12407 - 12288: jis0208<<14 | 0x03<<7 | 0x36, - 12408 - 12288: jis0208<<14 | 0x03<<7 | 0x37, - 12409 - 12288: jis0208<<14 | 0x03<<7 | 0x38, - 12410 - 12288: jis0208<<14 | 0x03<<7 | 0x39, - 12411 - 12288: jis0208<<14 | 0x03<<7 | 0x3A, - 12412 - 12288: jis0208<<14 | 0x03<<7 | 0x3B, - 12413 - 12288: jis0208<<14 | 0x03<<7 | 0x3C, - 12414 - 12288: jis0208<<14 | 0x03<<7 | 0x3D, - 12415 - 12288: jis0208<<14 | 0x03<<7 | 0x3E, - 12416 - 12288: jis0208<<14 | 0x03<<7 | 0x3F, - 12417 - 12288: jis0208<<14 | 0x03<<7 | 0x40, - 12418 - 12288: jis0208<<14 | 0x03<<7 | 0x41, - 12419 - 12288: jis0208<<14 | 0x03<<7 | 0x42, - 12420 - 12288: jis0208<<14 | 0x03<<7 | 0x43, - 12421 - 12288: jis0208<<14 | 0x03<<7 | 0x44, - 12422 - 12288: jis0208<<14 | 0x03<<7 | 0x45, - 12423 - 12288: jis0208<<14 | 0x03<<7 | 0x46, - 12424 - 12288: jis0208<<14 | 0x03<<7 | 0x47, - 12425 - 12288: jis0208<<14 | 0x03<<7 | 0x48, - 12426 - 12288: jis0208<<14 | 0x03<<7 | 0x49, - 12427 - 12288: jis0208<<14 | 0x03<<7 | 0x4A, - 12428 - 12288: jis0208<<14 | 0x03<<7 | 0x4B, - 12429 - 12288: jis0208<<14 | 0x03<<7 | 0x4C, - 12430 - 12288: jis0208<<14 | 0x03<<7 | 0x4D, - 12431 - 12288: jis0208<<14 | 0x03<<7 | 0x4E, - 12432 - 12288: jis0208<<14 | 0x03<<7 | 0x4F, - 12433 - 12288: jis0208<<14 | 0x03<<7 | 0x50, - 12434 - 12288: jis0208<<14 | 0x03<<7 | 0x51, - 12435 - 12288: jis0208<<14 | 0x03<<7 | 0x52, - 12443 - 12288: jis0208<<14 | 0x00<<7 | 0x0A, - 12444 - 12288: jis0208<<14 | 0x00<<7 | 0x0B, - 12445 - 12288: jis0208<<14 | 0x00<<7 | 0x14, - 12446 - 12288: jis0208<<14 | 0x00<<7 | 0x15, - 12449 - 12288: jis0208<<14 | 0x04<<7 | 0x00, - 12450 - 12288: jis0208<<14 | 0x04<<7 | 0x01, - 12451 - 12288: jis0208<<14 | 0x04<<7 | 0x02, - 12452 - 12288: jis0208<<14 | 0x04<<7 | 0x03, - 12453 - 12288: jis0208<<14 | 0x04<<7 | 0x04, - 12454 - 12288: jis0208<<14 | 0x04<<7 | 0x05, - 12455 - 12288: jis0208<<14 | 0x04<<7 | 0x06, - 12456 - 12288: jis0208<<14 | 0x04<<7 | 0x07, - 12457 - 12288: jis0208<<14 | 0x04<<7 | 0x08, - 12458 - 12288: jis0208<<14 | 0x04<<7 | 0x09, - 12459 - 12288: jis0208<<14 | 0x04<<7 | 0x0A, - 12460 - 12288: jis0208<<14 | 0x04<<7 | 0x0B, - 12461 - 12288: jis0208<<14 | 0x04<<7 | 0x0C, - 12462 - 12288: jis0208<<14 | 0x04<<7 | 0x0D, - 12463 - 12288: jis0208<<14 | 0x04<<7 | 0x0E, - 12464 - 12288: jis0208<<14 | 0x04<<7 | 0x0F, - 12465 - 12288: jis0208<<14 | 0x04<<7 | 0x10, - 12466 - 12288: jis0208<<14 | 0x04<<7 | 0x11, - 12467 - 12288: jis0208<<14 | 0x04<<7 | 0x12, - 12468 - 12288: jis0208<<14 | 0x04<<7 | 0x13, - 12469 - 12288: jis0208<<14 | 0x04<<7 | 0x14, - 12470 - 12288: jis0208<<14 | 0x04<<7 | 0x15, - 12471 - 12288: jis0208<<14 | 0x04<<7 | 0x16, - 12472 - 12288: jis0208<<14 | 0x04<<7 | 0x17, - 12473 - 12288: jis0208<<14 | 0x04<<7 | 0x18, - 12474 - 12288: jis0208<<14 | 0x04<<7 | 0x19, - 12475 - 12288: jis0208<<14 | 0x04<<7 | 0x1A, - 12476 - 12288: jis0208<<14 | 0x04<<7 | 0x1B, - 12477 - 12288: jis0208<<14 | 0x04<<7 | 0x1C, - 12478 - 12288: jis0208<<14 | 0x04<<7 | 0x1D, - 12479 - 12288: jis0208<<14 | 0x04<<7 | 0x1E, - 12480 - 12288: jis0208<<14 | 0x04<<7 | 0x1F, - 12481 - 12288: jis0208<<14 | 0x04<<7 | 0x20, - 12482 - 12288: jis0208<<14 | 0x04<<7 | 0x21, - 12483 - 12288: jis0208<<14 | 0x04<<7 | 0x22, - 12484 - 12288: jis0208<<14 | 0x04<<7 | 0x23, - 12485 - 12288: jis0208<<14 | 0x04<<7 | 0x24, - 12486 - 12288: jis0208<<14 | 0x04<<7 | 0x25, - 12487 - 12288: jis0208<<14 | 0x04<<7 | 0x26, - 12488 - 12288: jis0208<<14 | 0x04<<7 | 0x27, - 12489 - 12288: jis0208<<14 | 0x04<<7 | 0x28, - 12490 - 12288: jis0208<<14 | 0x04<<7 | 0x29, - 12491 - 12288: jis0208<<14 | 0x04<<7 | 0x2A, - 12492 - 12288: jis0208<<14 | 0x04<<7 | 0x2B, - 12493 - 12288: jis0208<<14 | 0x04<<7 | 0x2C, - 12494 - 12288: jis0208<<14 | 0x04<<7 | 0x2D, - 12495 - 12288: jis0208<<14 | 0x04<<7 | 0x2E, - 12496 - 12288: jis0208<<14 | 0x04<<7 | 0x2F, - 12497 - 12288: jis0208<<14 | 0x04<<7 | 0x30, - 12498 - 12288: jis0208<<14 | 0x04<<7 | 0x31, - 12499 - 12288: jis0208<<14 | 0x04<<7 | 0x32, - 12500 - 12288: jis0208<<14 | 0x04<<7 | 0x33, - 12501 - 12288: jis0208<<14 | 0x04<<7 | 0x34, - 12502 - 12288: jis0208<<14 | 0x04<<7 | 0x35, - 12503 - 12288: jis0208<<14 | 0x04<<7 | 0x36, - 12504 - 12288: jis0208<<14 | 0x04<<7 | 0x37, - 12505 - 12288: jis0208<<14 | 0x04<<7 | 0x38, - 12506 - 12288: jis0208<<14 | 0x04<<7 | 0x39, - 12507 - 12288: jis0208<<14 | 0x04<<7 | 0x3A, - 12508 - 12288: jis0208<<14 | 0x04<<7 | 0x3B, - 12509 - 12288: jis0208<<14 | 0x04<<7 | 0x3C, - 12510 - 12288: jis0208<<14 | 0x04<<7 | 0x3D, - 12511 - 12288: jis0208<<14 | 0x04<<7 | 0x3E, - 12512 - 12288: jis0208<<14 | 0x04<<7 | 0x3F, - 12513 - 12288: jis0208<<14 | 0x04<<7 | 0x40, - 12514 - 12288: jis0208<<14 | 0x04<<7 | 0x41, - 12515 - 12288: jis0208<<14 | 0x04<<7 | 0x42, - 12516 - 12288: jis0208<<14 | 0x04<<7 | 0x43, - 12517 - 12288: jis0208<<14 | 0x04<<7 | 0x44, - 12518 - 12288: jis0208<<14 | 0x04<<7 | 0x45, - 12519 - 12288: jis0208<<14 | 0x04<<7 | 0x46, - 12520 - 12288: jis0208<<14 | 0x04<<7 | 0x47, - 12521 - 12288: jis0208<<14 | 0x04<<7 | 0x48, - 12522 - 12288: jis0208<<14 | 0x04<<7 | 0x49, - 12523 - 12288: jis0208<<14 | 0x04<<7 | 0x4A, - 12524 - 12288: jis0208<<14 | 0x04<<7 | 0x4B, - 12525 - 12288: jis0208<<14 | 0x04<<7 | 0x4C, - 12526 - 12288: jis0208<<14 | 0x04<<7 | 0x4D, - 12527 - 12288: jis0208<<14 | 0x04<<7 | 0x4E, - 12528 - 12288: jis0208<<14 | 0x04<<7 | 0x4F, - 12529 - 12288: jis0208<<14 | 0x04<<7 | 0x50, - 12530 - 12288: jis0208<<14 | 0x04<<7 | 0x51, - 12531 - 12288: jis0208<<14 | 0x04<<7 | 0x52, - 12532 - 12288: jis0208<<14 | 0x04<<7 | 0x53, - 12533 - 12288: jis0208<<14 | 0x04<<7 | 0x54, - 12534 - 12288: jis0208<<14 | 0x04<<7 | 0x55, - 12539 - 12288: jis0208<<14 | 0x00<<7 | 0x05, - 12540 - 12288: jis0208<<14 | 0x00<<7 | 0x1B, - 12541 - 12288: jis0208<<14 | 0x00<<7 | 0x12, - 12542 - 12288: jis0208<<14 | 0x00<<7 | 0x13, - 12849 - 12288: jis0208<<14 | 0x0C<<7 | 0x49, - 12850 - 12288: jis0208<<14 | 0x0C<<7 | 0x4A, - 12857 - 12288: jis0208<<14 | 0x0C<<7 | 0x4B, - 12964 - 12288: jis0208<<14 | 0x0C<<7 | 0x44, - 12965 - 12288: jis0208<<14 | 0x0C<<7 | 0x45, - 12966 - 12288: jis0208<<14 | 0x0C<<7 | 0x46, - 12967 - 12288: jis0208<<14 | 0x0C<<7 | 0x47, - 12968 - 12288: jis0208<<14 | 0x0C<<7 | 0x48, - 13059 - 12288: jis0208<<14 | 0x0C<<7 | 0x25, - 13069 - 12288: jis0208<<14 | 0x0C<<7 | 0x29, - 13076 - 12288: jis0208<<14 | 0x0C<<7 | 0x20, - 13080 - 12288: jis0208<<14 | 0x0C<<7 | 0x23, - 13090 - 12288: jis0208<<14 | 0x0C<<7 | 0x21, - 13091 - 12288: jis0208<<14 | 0x0C<<7 | 0x2B, - 13094 - 12288: jis0208<<14 | 0x0C<<7 | 0x2A, - 13095 - 12288: jis0208<<14 | 0x0C<<7 | 0x24, - 13099 - 12288: jis0208<<14 | 0x0C<<7 | 0x2C, - 13110 - 12288: jis0208<<14 | 0x0C<<7 | 0x26, - 13115 - 12288: jis0208<<14 | 0x0C<<7 | 0x2E, - 13129 - 12288: jis0208<<14 | 0x0C<<7 | 0x1F, - 13130 - 12288: jis0208<<14 | 0x0C<<7 | 0x2D, - 13133 - 12288: jis0208<<14 | 0x0C<<7 | 0x22, - 13137 - 12288: jis0208<<14 | 0x0C<<7 | 0x27, - 13143 - 12288: jis0208<<14 | 0x0C<<7 | 0x28, - 13179 - 12288: jis0208<<14 | 0x0C<<7 | 0x3E, - 13180 - 12288: jis0208<<14 | 0x0C<<7 | 0x4E, - 13181 - 12288: jis0208<<14 | 0x0C<<7 | 0x4D, - 13182 - 12288: jis0208<<14 | 0x0C<<7 | 0x4C, - 13198 - 12288: jis0208<<14 | 0x0C<<7 | 0x32, - 13199 - 12288: jis0208<<14 | 0x0C<<7 | 0x33, - 13212 - 12288: jis0208<<14 | 0x0C<<7 | 0x2F, - 13213 - 12288: jis0208<<14 | 0x0C<<7 | 0x30, - 13214 - 12288: jis0208<<14 | 0x0C<<7 | 0x31, - 13217 - 12288: jis0208<<14 | 0x0C<<7 | 0x35, - 13252 - 12288: jis0208<<14 | 0x0C<<7 | 0x34, - 13261 - 12288: jis0208<<14 | 0x0C<<7 | 0x42, -} - -const encode3Low, encode3High = 161, 1120 - -var encode3 = [...]uint16{ - 161 - 161: jis0212<<14 | 0x01<<7 | 0x21, - 164 - 161: jis0212<<14 | 0x01<<7 | 0x4F, - 166 - 161: jis0212<<14 | 0x01<<7 | 0x22, - 167 - 161: jis0208<<14 | 0x00<<7 | 0x57, - 168 - 161: jis0208<<14 | 0x00<<7 | 0x0E, - 169 - 161: jis0212<<14 | 0x01<<7 | 0x4C, - 170 - 161: jis0212<<14 | 0x01<<7 | 0x4B, - 174 - 161: jis0212<<14 | 0x01<<7 | 0x4D, - 175 - 161: jis0212<<14 | 0x01<<7 | 0x13, - 176 - 161: jis0208<<14 | 0x00<<7 | 0x4A, - 177 - 161: jis0208<<14 | 0x00<<7 | 0x3D, - 180 - 161: jis0208<<14 | 0x00<<7 | 0x0C, - 182 - 161: jis0208<<14 | 0x01<<7 | 0x58, - 184 - 161: jis0212<<14 | 0x01<<7 | 0x10, - 186 - 161: jis0212<<14 | 0x01<<7 | 0x4A, - 191 - 161: jis0212<<14 | 0x01<<7 | 0x23, - 192 - 161: jis0212<<14 | 0x09<<7 | 0x01, - 193 - 161: jis0212<<14 | 0x09<<7 | 0x00, - 194 - 161: jis0212<<14 | 0x09<<7 | 0x03, - 195 - 161: jis0212<<14 | 0x09<<7 | 0x09, - 196 - 161: jis0212<<14 | 0x09<<7 | 0x02, - 197 - 161: jis0212<<14 | 0x09<<7 | 0x08, - 198 - 161: jis0212<<14 | 0x08<<7 | 0x00, - 199 - 161: jis0212<<14 | 0x09<<7 | 0x0D, - 200 - 161: jis0212<<14 | 0x09<<7 | 0x11, - 201 - 161: jis0212<<14 | 0x09<<7 | 0x10, - 202 - 161: jis0212<<14 | 0x09<<7 | 0x13, - 203 - 161: jis0212<<14 | 0x09<<7 | 0x12, - 204 - 161: jis0212<<14 | 0x09<<7 | 0x1F, - 205 - 161: jis0212<<14 | 0x09<<7 | 0x1E, - 206 - 161: jis0212<<14 | 0x09<<7 | 0x21, - 207 - 161: jis0212<<14 | 0x09<<7 | 0x20, - 209 - 161: jis0212<<14 | 0x09<<7 | 0x2F, - 210 - 161: jis0212<<14 | 0x09<<7 | 0x31, - 211 - 161: jis0212<<14 | 0x09<<7 | 0x30, - 212 - 161: jis0212<<14 | 0x09<<7 | 0x33, - 213 - 161: jis0212<<14 | 0x09<<7 | 0x37, - 214 - 161: jis0212<<14 | 0x09<<7 | 0x32, - 215 - 161: jis0208<<14 | 0x00<<7 | 0x3E, - 216 - 161: jis0212<<14 | 0x08<<7 | 0x0B, - 217 - 161: jis0212<<14 | 0x09<<7 | 0x42, - 218 - 161: jis0212<<14 | 0x09<<7 | 0x41, - 219 - 161: jis0212<<14 | 0x09<<7 | 0x44, - 220 - 161: jis0212<<14 | 0x09<<7 | 0x43, - 221 - 161: jis0212<<14 | 0x09<<7 | 0x51, - 222 - 161: jis0212<<14 | 0x08<<7 | 0x0F, - 223 - 161: jis0212<<14 | 0x08<<7 | 0x2D, - 224 - 161: jis0212<<14 | 0x0A<<7 | 0x01, - 225 - 161: jis0212<<14 | 0x0A<<7 | 0x00, - 226 - 161: jis0212<<14 | 0x0A<<7 | 0x03, - 227 - 161: jis0212<<14 | 0x0A<<7 | 0x09, - 228 - 161: jis0212<<14 | 0x0A<<7 | 0x02, - 229 - 161: jis0212<<14 | 0x0A<<7 | 0x08, - 230 - 161: jis0212<<14 | 0x08<<7 | 0x20, - 231 - 161: jis0212<<14 | 0x0A<<7 | 0x0D, - 232 - 161: jis0212<<14 | 0x0A<<7 | 0x11, - 233 - 161: jis0212<<14 | 0x0A<<7 | 0x10, - 234 - 161: jis0212<<14 | 0x0A<<7 | 0x13, - 235 - 161: jis0212<<14 | 0x0A<<7 | 0x12, - 236 - 161: jis0212<<14 | 0x0A<<7 | 0x1F, - 237 - 161: jis0212<<14 | 0x0A<<7 | 0x1E, - 238 - 161: jis0212<<14 | 0x0A<<7 | 0x21, - 239 - 161: jis0212<<14 | 0x0A<<7 | 0x20, - 240 - 161: jis0212<<14 | 0x08<<7 | 0x22, - 241 - 161: jis0212<<14 | 0x0A<<7 | 0x2F, - 242 - 161: jis0212<<14 | 0x0A<<7 | 0x31, - 243 - 161: jis0212<<14 | 0x0A<<7 | 0x30, - 244 - 161: jis0212<<14 | 0x0A<<7 | 0x33, - 245 - 161: jis0212<<14 | 0x0A<<7 | 0x37, - 246 - 161: jis0212<<14 | 0x0A<<7 | 0x32, - 247 - 161: jis0208<<14 | 0x00<<7 | 0x3F, - 248 - 161: jis0212<<14 | 0x08<<7 | 0x2B, - 249 - 161: jis0212<<14 | 0x0A<<7 | 0x42, - 250 - 161: jis0212<<14 | 0x0A<<7 | 0x41, - 251 - 161: jis0212<<14 | 0x0A<<7 | 0x44, - 252 - 161: jis0212<<14 | 0x0A<<7 | 0x43, - 253 - 161: jis0212<<14 | 0x0A<<7 | 0x51, - 254 - 161: jis0212<<14 | 0x08<<7 | 0x2F, - 255 - 161: jis0212<<14 | 0x0A<<7 | 0x52, - 256 - 161: jis0212<<14 | 0x09<<7 | 0x06, - 257 - 161: jis0212<<14 | 0x0A<<7 | 0x06, - 258 - 161: jis0212<<14 | 0x09<<7 | 0x04, - 259 - 161: jis0212<<14 | 0x0A<<7 | 0x04, - 260 - 161: jis0212<<14 | 0x09<<7 | 0x07, - 261 - 161: jis0212<<14 | 0x0A<<7 | 0x07, - 262 - 161: jis0212<<14 | 0x09<<7 | 0x0A, - 263 - 161: jis0212<<14 | 0x0A<<7 | 0x0A, - 264 - 161: jis0212<<14 | 0x09<<7 | 0x0B, - 265 - 161: jis0212<<14 | 0x0A<<7 | 0x0B, - 266 - 161: jis0212<<14 | 0x09<<7 | 0x0E, - 267 - 161: jis0212<<14 | 0x0A<<7 | 0x0E, - 268 - 161: jis0212<<14 | 0x09<<7 | 0x0C, - 269 - 161: jis0212<<14 | 0x0A<<7 | 0x0C, - 270 - 161: jis0212<<14 | 0x09<<7 | 0x0F, - 271 - 161: jis0212<<14 | 0x0A<<7 | 0x0F, - 272 - 161: jis0212<<14 | 0x08<<7 | 0x01, - 273 - 161: jis0212<<14 | 0x08<<7 | 0x21, - 274 - 161: jis0212<<14 | 0x09<<7 | 0x16, - 275 - 161: jis0212<<14 | 0x0A<<7 | 0x16, - 278 - 161: jis0212<<14 | 0x09<<7 | 0x15, - 279 - 161: jis0212<<14 | 0x0A<<7 | 0x15, - 280 - 161: jis0212<<14 | 0x09<<7 | 0x17, - 281 - 161: jis0212<<14 | 0x0A<<7 | 0x17, - 282 - 161: jis0212<<14 | 0x09<<7 | 0x14, - 283 - 161: jis0212<<14 | 0x0A<<7 | 0x14, - 284 - 161: jis0212<<14 | 0x09<<7 | 0x19, - 285 - 161: jis0212<<14 | 0x0A<<7 | 0x19, - 286 - 161: jis0212<<14 | 0x09<<7 | 0x1A, - 287 - 161: jis0212<<14 | 0x0A<<7 | 0x1A, - 288 - 161: jis0212<<14 | 0x09<<7 | 0x1C, - 289 - 161: jis0212<<14 | 0x0A<<7 | 0x1C, - 290 - 161: jis0212<<14 | 0x09<<7 | 0x1B, - 292 - 161: jis0212<<14 | 0x09<<7 | 0x1D, - 293 - 161: jis0212<<14 | 0x0A<<7 | 0x1D, - 294 - 161: jis0212<<14 | 0x08<<7 | 0x03, - 295 - 161: jis0212<<14 | 0x08<<7 | 0x23, - 296 - 161: jis0212<<14 | 0x09<<7 | 0x26, - 297 - 161: jis0212<<14 | 0x0A<<7 | 0x26, - 298 - 161: jis0212<<14 | 0x09<<7 | 0x24, - 299 - 161: jis0212<<14 | 0x0A<<7 | 0x24, - 302 - 161: jis0212<<14 | 0x09<<7 | 0x25, - 303 - 161: jis0212<<14 | 0x0A<<7 | 0x25, - 304 - 161: jis0212<<14 | 0x09<<7 | 0x23, - 305 - 161: jis0212<<14 | 0x08<<7 | 0x24, - 306 - 161: jis0212<<14 | 0x08<<7 | 0x05, - 307 - 161: jis0212<<14 | 0x08<<7 | 0x25, - 308 - 161: jis0212<<14 | 0x09<<7 | 0x27, - 309 - 161: jis0212<<14 | 0x0A<<7 | 0x27, - 310 - 161: jis0212<<14 | 0x09<<7 | 0x28, - 311 - 161: jis0212<<14 | 0x0A<<7 | 0x28, - 312 - 161: jis0212<<14 | 0x08<<7 | 0x26, - 313 - 161: jis0212<<14 | 0x09<<7 | 0x29, - 314 - 161: jis0212<<14 | 0x0A<<7 | 0x29, - 315 - 161: jis0212<<14 | 0x09<<7 | 0x2B, - 316 - 161: jis0212<<14 | 0x0A<<7 | 0x2B, - 317 - 161: jis0212<<14 | 0x09<<7 | 0x2A, - 318 - 161: jis0212<<14 | 0x0A<<7 | 0x2A, - 319 - 161: jis0212<<14 | 0x08<<7 | 0x08, - 320 - 161: jis0212<<14 | 0x08<<7 | 0x28, - 321 - 161: jis0212<<14 | 0x08<<7 | 0x07, - 322 - 161: jis0212<<14 | 0x08<<7 | 0x27, - 323 - 161: jis0212<<14 | 0x09<<7 | 0x2C, - 324 - 161: jis0212<<14 | 0x0A<<7 | 0x2C, - 325 - 161: jis0212<<14 | 0x09<<7 | 0x2E, - 326 - 161: jis0212<<14 | 0x0A<<7 | 0x2E, - 327 - 161: jis0212<<14 | 0x09<<7 | 0x2D, - 328 - 161: jis0212<<14 | 0x0A<<7 | 0x2D, - 329 - 161: jis0212<<14 | 0x08<<7 | 0x29, - 330 - 161: jis0212<<14 | 0x08<<7 | 0x0A, - 331 - 161: jis0212<<14 | 0x08<<7 | 0x2A, - 332 - 161: jis0212<<14 | 0x09<<7 | 0x36, - 333 - 161: jis0212<<14 | 0x0A<<7 | 0x36, - 336 - 161: jis0212<<14 | 0x09<<7 | 0x35, - 337 - 161: jis0212<<14 | 0x0A<<7 | 0x35, - 338 - 161: jis0212<<14 | 0x08<<7 | 0x0C, - 339 - 161: jis0212<<14 | 0x08<<7 | 0x2C, - 340 - 161: jis0212<<14 | 0x09<<7 | 0x38, - 341 - 161: jis0212<<14 | 0x0A<<7 | 0x38, - 342 - 161: jis0212<<14 | 0x09<<7 | 0x3A, - 343 - 161: jis0212<<14 | 0x0A<<7 | 0x3A, - 344 - 161: jis0212<<14 | 0x09<<7 | 0x39, - 345 - 161: jis0212<<14 | 0x0A<<7 | 0x39, - 346 - 161: jis0212<<14 | 0x09<<7 | 0x3B, - 347 - 161: jis0212<<14 | 0x0A<<7 | 0x3B, - 348 - 161: jis0212<<14 | 0x09<<7 | 0x3C, - 349 - 161: jis0212<<14 | 0x0A<<7 | 0x3C, - 350 - 161: jis0212<<14 | 0x09<<7 | 0x3E, - 351 - 161: jis0212<<14 | 0x0A<<7 | 0x3E, - 352 - 161: jis0212<<14 | 0x09<<7 | 0x3D, - 353 - 161: jis0212<<14 | 0x0A<<7 | 0x3D, - 354 - 161: jis0212<<14 | 0x09<<7 | 0x40, - 355 - 161: jis0212<<14 | 0x0A<<7 | 0x40, - 356 - 161: jis0212<<14 | 0x09<<7 | 0x3F, - 357 - 161: jis0212<<14 | 0x0A<<7 | 0x3F, - 358 - 161: jis0212<<14 | 0x08<<7 | 0x0E, - 359 - 161: jis0212<<14 | 0x08<<7 | 0x2E, - 360 - 161: jis0212<<14 | 0x09<<7 | 0x4B, - 361 - 161: jis0212<<14 | 0x0A<<7 | 0x4B, - 362 - 161: jis0212<<14 | 0x09<<7 | 0x48, - 363 - 161: jis0212<<14 | 0x0A<<7 | 0x48, - 364 - 161: jis0212<<14 | 0x09<<7 | 0x45, - 365 - 161: jis0212<<14 | 0x0A<<7 | 0x45, - 366 - 161: jis0212<<14 | 0x09<<7 | 0x4A, - 367 - 161: jis0212<<14 | 0x0A<<7 | 0x4A, - 368 - 161: jis0212<<14 | 0x09<<7 | 0x47, - 369 - 161: jis0212<<14 | 0x0A<<7 | 0x47, - 370 - 161: jis0212<<14 | 0x09<<7 | 0x49, - 371 - 161: jis0212<<14 | 0x0A<<7 | 0x49, - 372 - 161: jis0212<<14 | 0x09<<7 | 0x50, - 373 - 161: jis0212<<14 | 0x0A<<7 | 0x50, - 374 - 161: jis0212<<14 | 0x09<<7 | 0x53, - 375 - 161: jis0212<<14 | 0x0A<<7 | 0x53, - 376 - 161: jis0212<<14 | 0x09<<7 | 0x52, - 377 - 161: jis0212<<14 | 0x09<<7 | 0x54, - 378 - 161: jis0212<<14 | 0x0A<<7 | 0x54, - 379 - 161: jis0212<<14 | 0x09<<7 | 0x56, - 380 - 161: jis0212<<14 | 0x0A<<7 | 0x56, - 381 - 161: jis0212<<14 | 0x09<<7 | 0x55, - 382 - 161: jis0212<<14 | 0x0A<<7 | 0x55, - 461 - 161: jis0212<<14 | 0x09<<7 | 0x05, - 462 - 161: jis0212<<14 | 0x0A<<7 | 0x05, - 463 - 161: jis0212<<14 | 0x09<<7 | 0x22, - 464 - 161: jis0212<<14 | 0x0A<<7 | 0x22, - 465 - 161: jis0212<<14 | 0x09<<7 | 0x34, - 466 - 161: jis0212<<14 | 0x0A<<7 | 0x34, - 467 - 161: jis0212<<14 | 0x09<<7 | 0x46, - 468 - 161: jis0212<<14 | 0x0A<<7 | 0x46, - 469 - 161: jis0212<<14 | 0x09<<7 | 0x4F, - 470 - 161: jis0212<<14 | 0x0A<<7 | 0x4F, - 471 - 161: jis0212<<14 | 0x09<<7 | 0x4C, - 472 - 161: jis0212<<14 | 0x0A<<7 | 0x4C, - 473 - 161: jis0212<<14 | 0x09<<7 | 0x4E, - 474 - 161: jis0212<<14 | 0x0A<<7 | 0x4E, - 475 - 161: jis0212<<14 | 0x09<<7 | 0x4D, - 476 - 161: jis0212<<14 | 0x0A<<7 | 0x4D, - 501 - 161: jis0212<<14 | 0x0A<<7 | 0x18, - 711 - 161: jis0212<<14 | 0x01<<7 | 0x0F, - 728 - 161: jis0212<<14 | 0x01<<7 | 0x0E, - 729 - 161: jis0212<<14 | 0x01<<7 | 0x11, - 730 - 161: jis0212<<14 | 0x01<<7 | 0x15, - 731 - 161: jis0212<<14 | 0x01<<7 | 0x14, - 733 - 161: jis0212<<14 | 0x01<<7 | 0x12, - 900 - 161: jis0212<<14 | 0x01<<7 | 0x17, - 901 - 161: jis0212<<14 | 0x01<<7 | 0x18, - 902 - 161: jis0212<<14 | 0x05<<7 | 0x40, - 904 - 161: jis0212<<14 | 0x05<<7 | 0x41, - 905 - 161: jis0212<<14 | 0x05<<7 | 0x42, - 906 - 161: jis0212<<14 | 0x05<<7 | 0x43, - 908 - 161: jis0212<<14 | 0x05<<7 | 0x46, - 910 - 161: jis0212<<14 | 0x05<<7 | 0x48, - 911 - 161: jis0212<<14 | 0x05<<7 | 0x4B, - 912 - 161: jis0212<<14 | 0x05<<7 | 0x55, - 913 - 161: jis0208<<14 | 0x05<<7 | 0x00, - 914 - 161: jis0208<<14 | 0x05<<7 | 0x01, - 915 - 161: jis0208<<14 | 0x05<<7 | 0x02, - 916 - 161: jis0208<<14 | 0x05<<7 | 0x03, - 917 - 161: jis0208<<14 | 0x05<<7 | 0x04, - 918 - 161: jis0208<<14 | 0x05<<7 | 0x05, - 919 - 161: jis0208<<14 | 0x05<<7 | 0x06, - 920 - 161: jis0208<<14 | 0x05<<7 | 0x07, - 921 - 161: jis0208<<14 | 0x05<<7 | 0x08, - 922 - 161: jis0208<<14 | 0x05<<7 | 0x09, - 923 - 161: jis0208<<14 | 0x05<<7 | 0x0A, - 924 - 161: jis0208<<14 | 0x05<<7 | 0x0B, - 925 - 161: jis0208<<14 | 0x05<<7 | 0x0C, - 926 - 161: jis0208<<14 | 0x05<<7 | 0x0D, - 927 - 161: jis0208<<14 | 0x05<<7 | 0x0E, - 928 - 161: jis0208<<14 | 0x05<<7 | 0x0F, - 929 - 161: jis0208<<14 | 0x05<<7 | 0x10, - 931 - 161: jis0208<<14 | 0x05<<7 | 0x11, - 932 - 161: jis0208<<14 | 0x05<<7 | 0x12, - 933 - 161: jis0208<<14 | 0x05<<7 | 0x13, - 934 - 161: jis0208<<14 | 0x05<<7 | 0x14, - 935 - 161: jis0208<<14 | 0x05<<7 | 0x15, - 936 - 161: jis0208<<14 | 0x05<<7 | 0x16, - 937 - 161: jis0208<<14 | 0x05<<7 | 0x17, - 938 - 161: jis0212<<14 | 0x05<<7 | 0x44, - 939 - 161: jis0212<<14 | 0x05<<7 | 0x49, - 940 - 161: jis0212<<14 | 0x05<<7 | 0x50, - 941 - 161: jis0212<<14 | 0x05<<7 | 0x51, - 942 - 161: jis0212<<14 | 0x05<<7 | 0x52, - 943 - 161: jis0212<<14 | 0x05<<7 | 0x53, - 944 - 161: jis0212<<14 | 0x05<<7 | 0x5A, - 945 - 161: jis0208<<14 | 0x05<<7 | 0x20, - 946 - 161: jis0208<<14 | 0x05<<7 | 0x21, - 947 - 161: jis0208<<14 | 0x05<<7 | 0x22, - 948 - 161: jis0208<<14 | 0x05<<7 | 0x23, - 949 - 161: jis0208<<14 | 0x05<<7 | 0x24, - 950 - 161: jis0208<<14 | 0x05<<7 | 0x25, - 951 - 161: jis0208<<14 | 0x05<<7 | 0x26, - 952 - 161: jis0208<<14 | 0x05<<7 | 0x27, - 953 - 161: jis0208<<14 | 0x05<<7 | 0x28, - 954 - 161: jis0208<<14 | 0x05<<7 | 0x29, - 955 - 161: jis0208<<14 | 0x05<<7 | 0x2A, - 956 - 161: jis0208<<14 | 0x05<<7 | 0x2B, - 957 - 161: jis0208<<14 | 0x05<<7 | 0x2C, - 958 - 161: jis0208<<14 | 0x05<<7 | 0x2D, - 959 - 161: jis0208<<14 | 0x05<<7 | 0x2E, - 960 - 161: jis0208<<14 | 0x05<<7 | 0x2F, - 961 - 161: jis0208<<14 | 0x05<<7 | 0x30, - 962 - 161: jis0212<<14 | 0x05<<7 | 0x57, - 963 - 161: jis0208<<14 | 0x05<<7 | 0x31, - 964 - 161: jis0208<<14 | 0x05<<7 | 0x32, - 965 - 161: jis0208<<14 | 0x05<<7 | 0x33, - 966 - 161: jis0208<<14 | 0x05<<7 | 0x34, - 967 - 161: jis0208<<14 | 0x05<<7 | 0x35, - 968 - 161: jis0208<<14 | 0x05<<7 | 0x36, - 969 - 161: jis0208<<14 | 0x05<<7 | 0x37, - 970 - 161: jis0212<<14 | 0x05<<7 | 0x54, - 971 - 161: jis0212<<14 | 0x05<<7 | 0x59, - 972 - 161: jis0212<<14 | 0x05<<7 | 0x56, - 973 - 161: jis0212<<14 | 0x05<<7 | 0x58, - 974 - 161: jis0212<<14 | 0x05<<7 | 0x5B, - 1025 - 161: jis0208<<14 | 0x06<<7 | 0x06, - 1026 - 161: jis0212<<14 | 0x06<<7 | 0x21, - 1027 - 161: jis0212<<14 | 0x06<<7 | 0x22, - 1028 - 161: jis0212<<14 | 0x06<<7 | 0x23, - 1029 - 161: jis0212<<14 | 0x06<<7 | 0x24, - 1030 - 161: jis0212<<14 | 0x06<<7 | 0x25, - 1031 - 161: jis0212<<14 | 0x06<<7 | 0x26, - 1032 - 161: jis0212<<14 | 0x06<<7 | 0x27, - 1033 - 161: jis0212<<14 | 0x06<<7 | 0x28, - 1034 - 161: jis0212<<14 | 0x06<<7 | 0x29, - 1035 - 161: jis0212<<14 | 0x06<<7 | 0x2A, - 1036 - 161: jis0212<<14 | 0x06<<7 | 0x2B, - 1038 - 161: jis0212<<14 | 0x06<<7 | 0x2C, - 1039 - 161: jis0212<<14 | 0x06<<7 | 0x2D, - 1040 - 161: jis0208<<14 | 0x06<<7 | 0x00, - 1041 - 161: jis0208<<14 | 0x06<<7 | 0x01, - 1042 - 161: jis0208<<14 | 0x06<<7 | 0x02, - 1043 - 161: jis0208<<14 | 0x06<<7 | 0x03, - 1044 - 161: jis0208<<14 | 0x06<<7 | 0x04, - 1045 - 161: jis0208<<14 | 0x06<<7 | 0x05, - 1046 - 161: jis0208<<14 | 0x06<<7 | 0x07, - 1047 - 161: jis0208<<14 | 0x06<<7 | 0x08, - 1048 - 161: jis0208<<14 | 0x06<<7 | 0x09, - 1049 - 161: jis0208<<14 | 0x06<<7 | 0x0A, - 1050 - 161: jis0208<<14 | 0x06<<7 | 0x0B, - 1051 - 161: jis0208<<14 | 0x06<<7 | 0x0C, - 1052 - 161: jis0208<<14 | 0x06<<7 | 0x0D, - 1053 - 161: jis0208<<14 | 0x06<<7 | 0x0E, - 1054 - 161: jis0208<<14 | 0x06<<7 | 0x0F, - 1055 - 161: jis0208<<14 | 0x06<<7 | 0x10, - 1056 - 161: jis0208<<14 | 0x06<<7 | 0x11, - 1057 - 161: jis0208<<14 | 0x06<<7 | 0x12, - 1058 - 161: jis0208<<14 | 0x06<<7 | 0x13, - 1059 - 161: jis0208<<14 | 0x06<<7 | 0x14, - 1060 - 161: jis0208<<14 | 0x06<<7 | 0x15, - 1061 - 161: jis0208<<14 | 0x06<<7 | 0x16, - 1062 - 161: jis0208<<14 | 0x06<<7 | 0x17, - 1063 - 161: jis0208<<14 | 0x06<<7 | 0x18, - 1064 - 161: jis0208<<14 | 0x06<<7 | 0x19, - 1065 - 161: jis0208<<14 | 0x06<<7 | 0x1A, - 1066 - 161: jis0208<<14 | 0x06<<7 | 0x1B, - 1067 - 161: jis0208<<14 | 0x06<<7 | 0x1C, - 1068 - 161: jis0208<<14 | 0x06<<7 | 0x1D, - 1069 - 161: jis0208<<14 | 0x06<<7 | 0x1E, - 1070 - 161: jis0208<<14 | 0x06<<7 | 0x1F, - 1071 - 161: jis0208<<14 | 0x06<<7 | 0x20, - 1072 - 161: jis0208<<14 | 0x06<<7 | 0x30, - 1073 - 161: jis0208<<14 | 0x06<<7 | 0x31, - 1074 - 161: jis0208<<14 | 0x06<<7 | 0x32, - 1075 - 161: jis0208<<14 | 0x06<<7 | 0x33, - 1076 - 161: jis0208<<14 | 0x06<<7 | 0x34, - 1077 - 161: jis0208<<14 | 0x06<<7 | 0x35, - 1078 - 161: jis0208<<14 | 0x06<<7 | 0x37, - 1079 - 161: jis0208<<14 | 0x06<<7 | 0x38, - 1080 - 161: jis0208<<14 | 0x06<<7 | 0x39, - 1081 - 161: jis0208<<14 | 0x06<<7 | 0x3A, - 1082 - 161: jis0208<<14 | 0x06<<7 | 0x3B, - 1083 - 161: jis0208<<14 | 0x06<<7 | 0x3C, - 1084 - 161: jis0208<<14 | 0x06<<7 | 0x3D, - 1085 - 161: jis0208<<14 | 0x06<<7 | 0x3E, - 1086 - 161: jis0208<<14 | 0x06<<7 | 0x3F, - 1087 - 161: jis0208<<14 | 0x06<<7 | 0x40, - 1088 - 161: jis0208<<14 | 0x06<<7 | 0x41, - 1089 - 161: jis0208<<14 | 0x06<<7 | 0x42, - 1090 - 161: jis0208<<14 | 0x06<<7 | 0x43, - 1091 - 161: jis0208<<14 | 0x06<<7 | 0x44, - 1092 - 161: jis0208<<14 | 0x06<<7 | 0x45, - 1093 - 161: jis0208<<14 | 0x06<<7 | 0x46, - 1094 - 161: jis0208<<14 | 0x06<<7 | 0x47, - 1095 - 161: jis0208<<14 | 0x06<<7 | 0x48, - 1096 - 161: jis0208<<14 | 0x06<<7 | 0x49, - 1097 - 161: jis0208<<14 | 0x06<<7 | 0x4A, - 1098 - 161: jis0208<<14 | 0x06<<7 | 0x4B, - 1099 - 161: jis0208<<14 | 0x06<<7 | 0x4C, - 1100 - 161: jis0208<<14 | 0x06<<7 | 0x4D, - 1101 - 161: jis0208<<14 | 0x06<<7 | 0x4E, - 1102 - 161: jis0208<<14 | 0x06<<7 | 0x4F, - 1103 - 161: jis0208<<14 | 0x06<<7 | 0x50, - 1105 - 161: jis0208<<14 | 0x06<<7 | 0x36, - 1106 - 161: jis0212<<14 | 0x06<<7 | 0x51, - 1107 - 161: jis0212<<14 | 0x06<<7 | 0x52, - 1108 - 161: jis0212<<14 | 0x06<<7 | 0x53, - 1109 - 161: jis0212<<14 | 0x06<<7 | 0x54, - 1110 - 161: jis0212<<14 | 0x06<<7 | 0x55, - 1111 - 161: jis0212<<14 | 0x06<<7 | 0x56, - 1112 - 161: jis0212<<14 | 0x06<<7 | 0x57, - 1113 - 161: jis0212<<14 | 0x06<<7 | 0x58, - 1114 - 161: jis0212<<14 | 0x06<<7 | 0x59, - 1115 - 161: jis0212<<14 | 0x06<<7 | 0x5A, - 1116 - 161: jis0212<<14 | 0x06<<7 | 0x5B, - 1118 - 161: jis0212<<14 | 0x06<<7 | 0x5C, - 1119 - 161: jis0212<<14 | 0x06<<7 | 0x5D, -} - -const encode4Low, encode4High = 63785, 64046 - -var encode4 = [...]uint16{ - 63785 - 63785: jis0208<<14 | 0x59<<7 | 0x25, - 63964 - 63785: jis0208<<14 | 0x5B<<7 | 0x2E, - 64014 - 63785: jis0208<<14 | 0x58<<7 | 0x33, - 64015 - 63785: jis0208<<14 | 0x58<<7 | 0x3E, - 64016 - 63785: jis0208<<14 | 0x58<<7 | 0x3F, - 64017 - 63785: jis0208<<14 | 0x58<<7 | 0x54, - 64018 - 63785: jis0208<<14 | 0x59<<7 | 0x1D, - 64019 - 63785: jis0208<<14 | 0x59<<7 | 0x2D, - 64020 - 63785: jis0208<<14 | 0x59<<7 | 0x2F, - 64021 - 63785: jis0208<<14 | 0x59<<7 | 0x5A, - 64022 - 63785: jis0208<<14 | 0x5A<<7 | 0x02, - 64023 - 63785: jis0208<<14 | 0x5A<<7 | 0x19, - 64024 - 63785: jis0208<<14 | 0x5A<<7 | 0x21, - 64025 - 63785: jis0208<<14 | 0x5A<<7 | 0x22, - 64026 - 63785: jis0208<<14 | 0x5A<<7 | 0x23, - 64027 - 63785: jis0208<<14 | 0x5A<<7 | 0x25, - 64028 - 63785: jis0208<<14 | 0x5A<<7 | 0x29, - 64029 - 63785: jis0208<<14 | 0x5A<<7 | 0x2C, - 64030 - 63785: jis0208<<14 | 0x5A<<7 | 0x35, - 64031 - 63785: jis0208<<14 | 0x5A<<7 | 0x40, - 64032 - 63785: jis0208<<14 | 0x5A<<7 | 0x42, - 64033 - 63785: jis0208<<14 | 0x5A<<7 | 0x43, - 64034 - 63785: jis0208<<14 | 0x5A<<7 | 0x4C, - 64035 - 63785: jis0208<<14 | 0x5A<<7 | 0x54, - 64036 - 63785: jis0208<<14 | 0x5A<<7 | 0x56, - 64037 - 63785: jis0208<<14 | 0x5A<<7 | 0x57, - 64038 - 63785: jis0208<<14 | 0x5A<<7 | 0x5A, - 64039 - 63785: jis0208<<14 | 0x5B<<7 | 0x18, - 64040 - 63785: jis0208<<14 | 0x5B<<7 | 0x1F, - 64041 - 63785: jis0208<<14 | 0x5B<<7 | 0x2F, - 64042 - 63785: jis0208<<14 | 0x5B<<7 | 0x3B, - 64043 - 63785: jis0208<<14 | 0x5B<<7 | 0x3C, - 64044 - 63785: jis0208<<14 | 0x5B<<7 | 0x3E, - 64045 - 63785: jis0208<<14 | 0x5B<<7 | 0x4B, -} - -const encode5Low, encode5High = 65281, 65510 - -var encode5 = [...]uint16{ - 65281 - 65281: jis0208<<14 | 0x00<<7 | 0x09, - 65282 - 65281: jis0208<<14 | 0x5B<<7 | 0x5D, - 65283 - 65281: jis0208<<14 | 0x00<<7 | 0x53, - 65284 - 65281: jis0208<<14 | 0x00<<7 | 0x4F, - 65285 - 65281: jis0208<<14 | 0x00<<7 | 0x52, - 65286 - 65281: jis0208<<14 | 0x00<<7 | 0x54, - 65287 - 65281: jis0208<<14 | 0x5B<<7 | 0x5C, - 65288 - 65281: jis0208<<14 | 0x00<<7 | 0x29, - 65289 - 65281: jis0208<<14 | 0x00<<7 | 0x2A, - 65290 - 65281: jis0208<<14 | 0x00<<7 | 0x55, - 65291 - 65281: jis0208<<14 | 0x00<<7 | 0x3B, - 65292 - 65281: jis0208<<14 | 0x00<<7 | 0x03, - 65293 - 65281: jis0208<<14 | 0x00<<7 | 0x3C, - 65294 - 65281: jis0208<<14 | 0x00<<7 | 0x04, - 65295 - 65281: jis0208<<14 | 0x00<<7 | 0x1E, - 65296 - 65281: jis0208<<14 | 0x02<<7 | 0x0F, - 65297 - 65281: jis0208<<14 | 0x02<<7 | 0x10, - 65298 - 65281: jis0208<<14 | 0x02<<7 | 0x11, - 65299 - 65281: jis0208<<14 | 0x02<<7 | 0x12, - 65300 - 65281: jis0208<<14 | 0x02<<7 | 0x13, - 65301 - 65281: jis0208<<14 | 0x02<<7 | 0x14, - 65302 - 65281: jis0208<<14 | 0x02<<7 | 0x15, - 65303 - 65281: jis0208<<14 | 0x02<<7 | 0x16, - 65304 - 65281: jis0208<<14 | 0x02<<7 | 0x17, - 65305 - 65281: jis0208<<14 | 0x02<<7 | 0x18, - 65306 - 65281: jis0208<<14 | 0x00<<7 | 0x06, - 65307 - 65281: jis0208<<14 | 0x00<<7 | 0x07, - 65308 - 65281: jis0208<<14 | 0x00<<7 | 0x42, - 65309 - 65281: jis0208<<14 | 0x00<<7 | 0x40, - 65310 - 65281: jis0208<<14 | 0x00<<7 | 0x43, - 65311 - 65281: jis0208<<14 | 0x00<<7 | 0x08, - 65312 - 65281: jis0208<<14 | 0x00<<7 | 0x56, - 65313 - 65281: jis0208<<14 | 0x02<<7 | 0x20, - 65314 - 65281: jis0208<<14 | 0x02<<7 | 0x21, - 65315 - 65281: jis0208<<14 | 0x02<<7 | 0x22, - 65316 - 65281: jis0208<<14 | 0x02<<7 | 0x23, - 65317 - 65281: jis0208<<14 | 0x02<<7 | 0x24, - 65318 - 65281: jis0208<<14 | 0x02<<7 | 0x25, - 65319 - 65281: jis0208<<14 | 0x02<<7 | 0x26, - 65320 - 65281: jis0208<<14 | 0x02<<7 | 0x27, - 65321 - 65281: jis0208<<14 | 0x02<<7 | 0x28, - 65322 - 65281: jis0208<<14 | 0x02<<7 | 0x29, - 65323 - 65281: jis0208<<14 | 0x02<<7 | 0x2A, - 65324 - 65281: jis0208<<14 | 0x02<<7 | 0x2B, - 65325 - 65281: jis0208<<14 | 0x02<<7 | 0x2C, - 65326 - 65281: jis0208<<14 | 0x02<<7 | 0x2D, - 65327 - 65281: jis0208<<14 | 0x02<<7 | 0x2E, - 65328 - 65281: jis0208<<14 | 0x02<<7 | 0x2F, - 65329 - 65281: jis0208<<14 | 0x02<<7 | 0x30, - 65330 - 65281: jis0208<<14 | 0x02<<7 | 0x31, - 65331 - 65281: jis0208<<14 | 0x02<<7 | 0x32, - 65332 - 65281: jis0208<<14 | 0x02<<7 | 0x33, - 65333 - 65281: jis0208<<14 | 0x02<<7 | 0x34, - 65334 - 65281: jis0208<<14 | 0x02<<7 | 0x35, - 65335 - 65281: jis0208<<14 | 0x02<<7 | 0x36, - 65336 - 65281: jis0208<<14 | 0x02<<7 | 0x37, - 65337 - 65281: jis0208<<14 | 0x02<<7 | 0x38, - 65338 - 65281: jis0208<<14 | 0x02<<7 | 0x39, - 65339 - 65281: jis0208<<14 | 0x00<<7 | 0x2D, - 65340 - 65281: jis0208<<14 | 0x00<<7 | 0x1F, - 65341 - 65281: jis0208<<14 | 0x00<<7 | 0x2E, - 65342 - 65281: jis0208<<14 | 0x00<<7 | 0x0F, - 65343 - 65281: jis0208<<14 | 0x00<<7 | 0x11, - 65344 - 65281: jis0208<<14 | 0x00<<7 | 0x0D, - 65345 - 65281: jis0208<<14 | 0x02<<7 | 0x40, - 65346 - 65281: jis0208<<14 | 0x02<<7 | 0x41, - 65347 - 65281: jis0208<<14 | 0x02<<7 | 0x42, - 65348 - 65281: jis0208<<14 | 0x02<<7 | 0x43, - 65349 - 65281: jis0208<<14 | 0x02<<7 | 0x44, - 65350 - 65281: jis0208<<14 | 0x02<<7 | 0x45, - 65351 - 65281: jis0208<<14 | 0x02<<7 | 0x46, - 65352 - 65281: jis0208<<14 | 0x02<<7 | 0x47, - 65353 - 65281: jis0208<<14 | 0x02<<7 | 0x48, - 65354 - 65281: jis0208<<14 | 0x02<<7 | 0x49, - 65355 - 65281: jis0208<<14 | 0x02<<7 | 0x4A, - 65356 - 65281: jis0208<<14 | 0x02<<7 | 0x4B, - 65357 - 65281: jis0208<<14 | 0x02<<7 | 0x4C, - 65358 - 65281: jis0208<<14 | 0x02<<7 | 0x4D, - 65359 - 65281: jis0208<<14 | 0x02<<7 | 0x4E, - 65360 - 65281: jis0208<<14 | 0x02<<7 | 0x4F, - 65361 - 65281: jis0208<<14 | 0x02<<7 | 0x50, - 65362 - 65281: jis0208<<14 | 0x02<<7 | 0x51, - 65363 - 65281: jis0208<<14 | 0x02<<7 | 0x52, - 65364 - 65281: jis0208<<14 | 0x02<<7 | 0x53, - 65365 - 65281: jis0208<<14 | 0x02<<7 | 0x54, - 65366 - 65281: jis0208<<14 | 0x02<<7 | 0x55, - 65367 - 65281: jis0208<<14 | 0x02<<7 | 0x56, - 65368 - 65281: jis0208<<14 | 0x02<<7 | 0x57, - 65369 - 65281: jis0208<<14 | 0x02<<7 | 0x58, - 65370 - 65281: jis0208<<14 | 0x02<<7 | 0x59, - 65371 - 65281: jis0208<<14 | 0x00<<7 | 0x2F, - 65372 - 65281: jis0208<<14 | 0x00<<7 | 0x22, - 65373 - 65281: jis0208<<14 | 0x00<<7 | 0x30, - 65374 - 65281: jis0208<<14 | 0x00<<7 | 0x20, - 65504 - 65281: jis0208<<14 | 0x00<<7 | 0x50, - 65505 - 65281: jis0208<<14 | 0x00<<7 | 0x51, - 65506 - 65281: jis0208<<14 | 0x01<<7 | 0x2B, - 65507 - 65281: jis0208<<14 | 0x00<<7 | 0x10, - 65508 - 65281: jis0208<<14 | 0x5B<<7 | 0x5B, - 65509 - 65281: jis0208<<14 | 0x00<<7 | 0x4E, -} diff --git a/vendor/golang.org/x/text/encoding/korean/euckr.go b/vendor/golang.org/x/text/encoding/korean/euckr.go deleted file mode 100644 index 034337f5df..0000000000 --- a/vendor/golang.org/x/text/encoding/korean/euckr.go +++ /dev/null @@ -1,177 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package korean - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{EUCKR} - -// EUCKR is the EUC-KR encoding, also known as Code Page 949. -var EUCKR encoding.Encoding = &eucKR - -var eucKR = internal.Encoding{ - &internal.SimpleEncoding{eucKRDecoder{}, eucKREncoder{}}, - "EUC-KR", - identifier.EUCKR, -} - -type eucKRDecoder struct{ transform.NopResetter } - -func (eucKRDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0x81 <= c0 && c0 < 0xff: - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - break - } - c1 := src[nSrc+1] - size = 2 - if c0 < 0xc7 { - r = 178 * rune(c0-0x81) - switch { - case 0x41 <= c1 && c1 < 0x5b: - r += rune(c1) - (0x41 - 0*26) - case 0x61 <= c1 && c1 < 0x7b: - r += rune(c1) - (0x61 - 1*26) - case 0x81 <= c1 && c1 < 0xff: - r += rune(c1) - (0x81 - 2*26) - default: - goto decError - } - } else if 0xa1 <= c1 && c1 < 0xff { - r = 178*(0xc7-0x81) + rune(c0-0xc7)*94 + rune(c1-0xa1) - } else { - goto decError - } - if int(r) < len(decode) { - r = rune(decode[r]) - if r != 0 { - break - } - } - decError: - r = utf8.RuneError - if c1 < utf8.RuneSelf { - size = 1 - } - - default: - r, size = utf8.RuneError, 1 - break - } - - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type eucKREncoder struct{ transform.NopResetter } - -func (eucKREncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2 - } - case encode6Low <= r && r < encode6High: - if r = rune(encode6[r-encode6Low]); r != 0 { - goto write2 - } - } - err = internal.ErrASCIIReplacement - break - } - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 7 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/golang.org/x/text/encoding/korean/tables.go b/vendor/golang.org/x/text/encoding/korean/tables.go deleted file mode 100644 index 0480e85c4a..0000000000 --- a/vendor/golang.org/x/text/encoding/korean/tables.go +++ /dev/null @@ -1,34152 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package korean provides Korean encodings such as EUC-KR. -package korean // import "golang.org/x/text/encoding/korean" - -// decode is the decoding table from EUC-KR code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-euc-kr.txt -var decode = [...]uint16{ - 0: 0xAC02, - 1: 0xAC03, - 2: 0xAC05, - 3: 0xAC06, - 4: 0xAC0B, - 5: 0xAC0C, - 6: 0xAC0D, - 7: 0xAC0E, - 8: 0xAC0F, - 9: 0xAC18, - 10: 0xAC1E, - 11: 0xAC1F, - 12: 0xAC21, - 13: 0xAC22, - 14: 0xAC23, - 15: 0xAC25, - 16: 0xAC26, - 17: 0xAC27, - 18: 0xAC28, - 19: 0xAC29, - 20: 0xAC2A, - 21: 0xAC2B, - 22: 0xAC2E, - 23: 0xAC32, - 24: 0xAC33, - 25: 0xAC34, - 26: 0xAC35, - 27: 0xAC36, - 28: 0xAC37, - 29: 0xAC3A, - 30: 0xAC3B, - 31: 0xAC3D, - 32: 0xAC3E, - 33: 0xAC3F, - 34: 0xAC41, - 35: 0xAC42, - 36: 0xAC43, - 37: 0xAC44, - 38: 0xAC45, - 39: 0xAC46, - 40: 0xAC47, - 41: 0xAC48, - 42: 0xAC49, - 43: 0xAC4A, - 44: 0xAC4C, - 45: 0xAC4E, - 46: 0xAC4F, - 47: 0xAC50, - 48: 0xAC51, - 49: 0xAC52, - 50: 0xAC53, - 51: 0xAC55, - 52: 0xAC56, - 53: 0xAC57, - 54: 0xAC59, - 55: 0xAC5A, - 56: 0xAC5B, - 57: 0xAC5D, - 58: 0xAC5E, - 59: 0xAC5F, - 60: 0xAC60, - 61: 0xAC61, - 62: 0xAC62, - 63: 0xAC63, - 64: 0xAC64, - 65: 0xAC65, - 66: 0xAC66, - 67: 0xAC67, - 68: 0xAC68, - 69: 0xAC69, - 70: 0xAC6A, - 71: 0xAC6B, - 72: 0xAC6C, - 73: 0xAC6D, - 74: 0xAC6E, - 75: 0xAC6F, - 76: 0xAC72, - 77: 0xAC73, - 78: 0xAC75, - 79: 0xAC76, - 80: 0xAC79, - 81: 0xAC7B, - 82: 0xAC7C, - 83: 0xAC7D, - 84: 0xAC7E, - 85: 0xAC7F, - 86: 0xAC82, - 87: 0xAC87, - 88: 0xAC88, - 89: 0xAC8D, - 90: 0xAC8E, - 91: 0xAC8F, - 92: 0xAC91, - 93: 0xAC92, - 94: 0xAC93, - 95: 0xAC95, - 96: 0xAC96, - 97: 0xAC97, - 98: 0xAC98, - 99: 0xAC99, - 100: 0xAC9A, - 101: 0xAC9B, - 102: 0xAC9E, - 103: 0xACA2, - 104: 0xACA3, - 105: 0xACA4, - 106: 0xACA5, - 107: 0xACA6, - 108: 0xACA7, - 109: 0xACAB, - 110: 0xACAD, - 111: 0xACAE, - 112: 0xACB1, - 113: 0xACB2, - 114: 0xACB3, - 115: 0xACB4, - 116: 0xACB5, - 117: 0xACB6, - 118: 0xACB7, - 119: 0xACBA, - 120: 0xACBE, - 121: 0xACBF, - 122: 0xACC0, - 123: 0xACC2, - 124: 0xACC3, - 125: 0xACC5, - 126: 0xACC6, - 127: 0xACC7, - 128: 0xACC9, - 129: 0xACCA, - 130: 0xACCB, - 131: 0xACCD, - 132: 0xACCE, - 133: 0xACCF, - 134: 0xACD0, - 135: 0xACD1, - 136: 0xACD2, - 137: 0xACD3, - 138: 0xACD4, - 139: 0xACD6, - 140: 0xACD8, - 141: 0xACD9, - 142: 0xACDA, - 143: 0xACDB, - 144: 0xACDC, - 145: 0xACDD, - 146: 0xACDE, - 147: 0xACDF, - 148: 0xACE2, - 149: 0xACE3, - 150: 0xACE5, - 151: 0xACE6, - 152: 0xACE9, - 153: 0xACEB, - 154: 0xACED, - 155: 0xACEE, - 156: 0xACF2, - 157: 0xACF4, - 158: 0xACF7, - 159: 0xACF8, - 160: 0xACF9, - 161: 0xACFA, - 162: 0xACFB, - 163: 0xACFE, - 164: 0xACFF, - 165: 0xAD01, - 166: 0xAD02, - 167: 0xAD03, - 168: 0xAD05, - 169: 0xAD07, - 170: 0xAD08, - 171: 0xAD09, - 172: 0xAD0A, - 173: 0xAD0B, - 174: 0xAD0E, - 175: 0xAD10, - 176: 0xAD12, - 177: 0xAD13, - 178: 0xAD14, - 179: 0xAD15, - 180: 0xAD16, - 181: 0xAD17, - 182: 0xAD19, - 183: 0xAD1A, - 184: 0xAD1B, - 185: 0xAD1D, - 186: 0xAD1E, - 187: 0xAD1F, - 188: 0xAD21, - 189: 0xAD22, - 190: 0xAD23, - 191: 0xAD24, - 192: 0xAD25, - 193: 0xAD26, - 194: 0xAD27, - 195: 0xAD28, - 196: 0xAD2A, - 197: 0xAD2B, - 198: 0xAD2E, - 199: 0xAD2F, - 200: 0xAD30, - 201: 0xAD31, - 202: 0xAD32, - 203: 0xAD33, - 204: 0xAD36, - 205: 0xAD37, - 206: 0xAD39, - 207: 0xAD3A, - 208: 0xAD3B, - 209: 0xAD3D, - 210: 0xAD3E, - 211: 0xAD3F, - 212: 0xAD40, - 213: 0xAD41, - 214: 0xAD42, - 215: 0xAD43, - 216: 0xAD46, - 217: 0xAD48, - 218: 0xAD4A, - 219: 0xAD4B, - 220: 0xAD4C, - 221: 0xAD4D, - 222: 0xAD4E, - 223: 0xAD4F, - 224: 0xAD51, - 225: 0xAD52, - 226: 0xAD53, - 227: 0xAD55, - 228: 0xAD56, - 229: 0xAD57, - 230: 0xAD59, - 231: 0xAD5A, - 232: 0xAD5B, - 233: 0xAD5C, - 234: 0xAD5D, - 235: 0xAD5E, - 236: 0xAD5F, - 237: 0xAD60, - 238: 0xAD62, - 239: 0xAD64, - 240: 0xAD65, - 241: 0xAD66, - 242: 0xAD67, - 243: 0xAD68, - 244: 0xAD69, - 245: 0xAD6A, - 246: 0xAD6B, - 247: 0xAD6E, - 248: 0xAD6F, - 249: 0xAD71, - 250: 0xAD72, - 251: 0xAD77, - 252: 0xAD78, - 253: 0xAD79, - 254: 0xAD7A, - 255: 0xAD7E, - 256: 0xAD80, - 257: 0xAD83, - 258: 0xAD84, - 259: 0xAD85, - 260: 0xAD86, - 261: 0xAD87, - 262: 0xAD8A, - 263: 0xAD8B, - 264: 0xAD8D, - 265: 0xAD8E, - 266: 0xAD8F, - 267: 0xAD91, - 268: 0xAD92, - 269: 0xAD93, - 270: 0xAD94, - 271: 0xAD95, - 272: 0xAD96, - 273: 0xAD97, - 274: 0xAD98, - 275: 0xAD99, - 276: 0xAD9A, - 277: 0xAD9B, - 278: 0xAD9E, - 279: 0xAD9F, - 280: 0xADA0, - 281: 0xADA1, - 282: 0xADA2, - 283: 0xADA3, - 284: 0xADA5, - 285: 0xADA6, - 286: 0xADA7, - 287: 0xADA8, - 288: 0xADA9, - 289: 0xADAA, - 290: 0xADAB, - 291: 0xADAC, - 292: 0xADAD, - 293: 0xADAE, - 294: 0xADAF, - 295: 0xADB0, - 296: 0xADB1, - 297: 0xADB2, - 298: 0xADB3, - 299: 0xADB4, - 300: 0xADB5, - 301: 0xADB6, - 302: 0xADB8, - 303: 0xADB9, - 304: 0xADBA, - 305: 0xADBB, - 306: 0xADBC, - 307: 0xADBD, - 308: 0xADBE, - 309: 0xADBF, - 310: 0xADC2, - 311: 0xADC3, - 312: 0xADC5, - 313: 0xADC6, - 314: 0xADC7, - 315: 0xADC9, - 316: 0xADCA, - 317: 0xADCB, - 318: 0xADCC, - 319: 0xADCD, - 320: 0xADCE, - 321: 0xADCF, - 322: 0xADD2, - 323: 0xADD4, - 324: 0xADD5, - 325: 0xADD6, - 326: 0xADD7, - 327: 0xADD8, - 328: 0xADD9, - 329: 0xADDA, - 330: 0xADDB, - 331: 0xADDD, - 332: 0xADDE, - 333: 0xADDF, - 334: 0xADE1, - 335: 0xADE2, - 336: 0xADE3, - 337: 0xADE5, - 338: 0xADE6, - 339: 0xADE7, - 340: 0xADE8, - 341: 0xADE9, - 342: 0xADEA, - 343: 0xADEB, - 344: 0xADEC, - 345: 0xADED, - 346: 0xADEE, - 347: 0xADEF, - 348: 0xADF0, - 349: 0xADF1, - 350: 0xADF2, - 351: 0xADF3, - 352: 0xADF4, - 353: 0xADF5, - 354: 0xADF6, - 355: 0xADF7, - 356: 0xADFA, - 357: 0xADFB, - 358: 0xADFD, - 359: 0xADFE, - 360: 0xAE02, - 361: 0xAE03, - 362: 0xAE04, - 363: 0xAE05, - 364: 0xAE06, - 365: 0xAE07, - 366: 0xAE0A, - 367: 0xAE0C, - 368: 0xAE0E, - 369: 0xAE0F, - 370: 0xAE10, - 371: 0xAE11, - 372: 0xAE12, - 373: 0xAE13, - 374: 0xAE15, - 375: 0xAE16, - 376: 0xAE17, - 377: 0xAE18, - 378: 0xAE19, - 379: 0xAE1A, - 380: 0xAE1B, - 381: 0xAE1C, - 382: 0xAE1D, - 383: 0xAE1E, - 384: 0xAE1F, - 385: 0xAE20, - 386: 0xAE21, - 387: 0xAE22, - 388: 0xAE23, - 389: 0xAE24, - 390: 0xAE25, - 391: 0xAE26, - 392: 0xAE27, - 393: 0xAE28, - 394: 0xAE29, - 395: 0xAE2A, - 396: 0xAE2B, - 397: 0xAE2C, - 398: 0xAE2D, - 399: 0xAE2E, - 400: 0xAE2F, - 401: 0xAE32, - 402: 0xAE33, - 403: 0xAE35, - 404: 0xAE36, - 405: 0xAE39, - 406: 0xAE3B, - 407: 0xAE3C, - 408: 0xAE3D, - 409: 0xAE3E, - 410: 0xAE3F, - 411: 0xAE42, - 412: 0xAE44, - 413: 0xAE47, - 414: 0xAE48, - 415: 0xAE49, - 416: 0xAE4B, - 417: 0xAE4F, - 418: 0xAE51, - 419: 0xAE52, - 420: 0xAE53, - 421: 0xAE55, - 422: 0xAE57, - 423: 0xAE58, - 424: 0xAE59, - 425: 0xAE5A, - 426: 0xAE5B, - 427: 0xAE5E, - 428: 0xAE62, - 429: 0xAE63, - 430: 0xAE64, - 431: 0xAE66, - 432: 0xAE67, - 433: 0xAE6A, - 434: 0xAE6B, - 435: 0xAE6D, - 436: 0xAE6E, - 437: 0xAE6F, - 438: 0xAE71, - 439: 0xAE72, - 440: 0xAE73, - 441: 0xAE74, - 442: 0xAE75, - 443: 0xAE76, - 444: 0xAE77, - 445: 0xAE7A, - 446: 0xAE7E, - 447: 0xAE7F, - 448: 0xAE80, - 449: 0xAE81, - 450: 0xAE82, - 451: 0xAE83, - 452: 0xAE86, - 453: 0xAE87, - 454: 0xAE88, - 455: 0xAE89, - 456: 0xAE8A, - 457: 0xAE8B, - 458: 0xAE8D, - 459: 0xAE8E, - 460: 0xAE8F, - 461: 0xAE90, - 462: 0xAE91, - 463: 0xAE92, - 464: 0xAE93, - 465: 0xAE94, - 466: 0xAE95, - 467: 0xAE96, - 468: 0xAE97, - 469: 0xAE98, - 470: 0xAE99, - 471: 0xAE9A, - 472: 0xAE9B, - 473: 0xAE9C, - 474: 0xAE9D, - 475: 0xAE9E, - 476: 0xAE9F, - 477: 0xAEA0, - 478: 0xAEA1, - 479: 0xAEA2, - 480: 0xAEA3, - 481: 0xAEA4, - 482: 0xAEA5, - 483: 0xAEA6, - 484: 0xAEA7, - 485: 0xAEA8, - 486: 0xAEA9, - 487: 0xAEAA, - 488: 0xAEAB, - 489: 0xAEAC, - 490: 0xAEAD, - 491: 0xAEAE, - 492: 0xAEAF, - 493: 0xAEB0, - 494: 0xAEB1, - 495: 0xAEB2, - 496: 0xAEB3, - 497: 0xAEB4, - 498: 0xAEB5, - 499: 0xAEB6, - 500: 0xAEB7, - 501: 0xAEB8, - 502: 0xAEB9, - 503: 0xAEBA, - 504: 0xAEBB, - 505: 0xAEBF, - 506: 0xAEC1, - 507: 0xAEC2, - 508: 0xAEC3, - 509: 0xAEC5, - 510: 0xAEC6, - 511: 0xAEC7, - 512: 0xAEC8, - 513: 0xAEC9, - 514: 0xAECA, - 515: 0xAECB, - 516: 0xAECE, - 517: 0xAED2, - 518: 0xAED3, - 519: 0xAED4, - 520: 0xAED5, - 521: 0xAED6, - 522: 0xAED7, - 523: 0xAEDA, - 524: 0xAEDB, - 525: 0xAEDD, - 526: 0xAEDE, - 527: 0xAEDF, - 528: 0xAEE0, - 529: 0xAEE1, - 530: 0xAEE2, - 531: 0xAEE3, - 532: 0xAEE4, - 533: 0xAEE5, - 534: 0xAEE6, - 535: 0xAEE7, - 536: 0xAEE9, - 537: 0xAEEA, - 538: 0xAEEC, - 539: 0xAEEE, - 540: 0xAEEF, - 541: 0xAEF0, - 542: 0xAEF1, - 543: 0xAEF2, - 544: 0xAEF3, - 545: 0xAEF5, - 546: 0xAEF6, - 547: 0xAEF7, - 548: 0xAEF9, - 549: 0xAEFA, - 550: 0xAEFB, - 551: 0xAEFD, - 552: 0xAEFE, - 553: 0xAEFF, - 554: 0xAF00, - 555: 0xAF01, - 556: 0xAF02, - 557: 0xAF03, - 558: 0xAF04, - 559: 0xAF05, - 560: 0xAF06, - 561: 0xAF09, - 562: 0xAF0A, - 563: 0xAF0B, - 564: 0xAF0C, - 565: 0xAF0E, - 566: 0xAF0F, - 567: 0xAF11, - 568: 0xAF12, - 569: 0xAF13, - 570: 0xAF14, - 571: 0xAF15, - 572: 0xAF16, - 573: 0xAF17, - 574: 0xAF18, - 575: 0xAF19, - 576: 0xAF1A, - 577: 0xAF1B, - 578: 0xAF1C, - 579: 0xAF1D, - 580: 0xAF1E, - 581: 0xAF1F, - 582: 0xAF20, - 583: 0xAF21, - 584: 0xAF22, - 585: 0xAF23, - 586: 0xAF24, - 587: 0xAF25, - 588: 0xAF26, - 589: 0xAF27, - 590: 0xAF28, - 591: 0xAF29, - 592: 0xAF2A, - 593: 0xAF2B, - 594: 0xAF2E, - 595: 0xAF2F, - 596: 0xAF31, - 597: 0xAF33, - 598: 0xAF35, - 599: 0xAF36, - 600: 0xAF37, - 601: 0xAF38, - 602: 0xAF39, - 603: 0xAF3A, - 604: 0xAF3B, - 605: 0xAF3E, - 606: 0xAF40, - 607: 0xAF44, - 608: 0xAF45, - 609: 0xAF46, - 610: 0xAF47, - 611: 0xAF4A, - 612: 0xAF4B, - 613: 0xAF4C, - 614: 0xAF4D, - 615: 0xAF4E, - 616: 0xAF4F, - 617: 0xAF51, - 618: 0xAF52, - 619: 0xAF53, - 620: 0xAF54, - 621: 0xAF55, - 622: 0xAF56, - 623: 0xAF57, - 624: 0xAF58, - 625: 0xAF59, - 626: 0xAF5A, - 627: 0xAF5B, - 628: 0xAF5E, - 629: 0xAF5F, - 630: 0xAF60, - 631: 0xAF61, - 632: 0xAF62, - 633: 0xAF63, - 634: 0xAF66, - 635: 0xAF67, - 636: 0xAF68, - 637: 0xAF69, - 638: 0xAF6A, - 639: 0xAF6B, - 640: 0xAF6C, - 641: 0xAF6D, - 642: 0xAF6E, - 643: 0xAF6F, - 644: 0xAF70, - 645: 0xAF71, - 646: 0xAF72, - 647: 0xAF73, - 648: 0xAF74, - 649: 0xAF75, - 650: 0xAF76, - 651: 0xAF77, - 652: 0xAF78, - 653: 0xAF7A, - 654: 0xAF7B, - 655: 0xAF7C, - 656: 0xAF7D, - 657: 0xAF7E, - 658: 0xAF7F, - 659: 0xAF81, - 660: 0xAF82, - 661: 0xAF83, - 662: 0xAF85, - 663: 0xAF86, - 664: 0xAF87, - 665: 0xAF89, - 666: 0xAF8A, - 667: 0xAF8B, - 668: 0xAF8C, - 669: 0xAF8D, - 670: 0xAF8E, - 671: 0xAF8F, - 672: 0xAF92, - 673: 0xAF93, - 674: 0xAF94, - 675: 0xAF96, - 676: 0xAF97, - 677: 0xAF98, - 678: 0xAF99, - 679: 0xAF9A, - 680: 0xAF9B, - 681: 0xAF9D, - 682: 0xAF9E, - 683: 0xAF9F, - 684: 0xAFA0, - 685: 0xAFA1, - 686: 0xAFA2, - 687: 0xAFA3, - 688: 0xAFA4, - 689: 0xAFA5, - 690: 0xAFA6, - 691: 0xAFA7, - 692: 0xAFA8, - 693: 0xAFA9, - 694: 0xAFAA, - 695: 0xAFAB, - 696: 0xAFAC, - 697: 0xAFAD, - 698: 0xAFAE, - 699: 0xAFAF, - 700: 0xAFB0, - 701: 0xAFB1, - 702: 0xAFB2, - 703: 0xAFB3, - 704: 0xAFB4, - 705: 0xAFB5, - 706: 0xAFB6, - 707: 0xAFB7, - 708: 0xAFBA, - 709: 0xAFBB, - 710: 0xAFBD, - 711: 0xAFBE, - 712: 0xAFBF, - 713: 0xAFC1, - 714: 0xAFC2, - 715: 0xAFC3, - 716: 0xAFC4, - 717: 0xAFC5, - 718: 0xAFC6, - 719: 0xAFCA, - 720: 0xAFCC, - 721: 0xAFCF, - 722: 0xAFD0, - 723: 0xAFD1, - 724: 0xAFD2, - 725: 0xAFD3, - 726: 0xAFD5, - 727: 0xAFD6, - 728: 0xAFD7, - 729: 0xAFD8, - 730: 0xAFD9, - 731: 0xAFDA, - 732: 0xAFDB, - 733: 0xAFDD, - 734: 0xAFDE, - 735: 0xAFDF, - 736: 0xAFE0, - 737: 0xAFE1, - 738: 0xAFE2, - 739: 0xAFE3, - 740: 0xAFE4, - 741: 0xAFE5, - 742: 0xAFE6, - 743: 0xAFE7, - 744: 0xAFEA, - 745: 0xAFEB, - 746: 0xAFEC, - 747: 0xAFED, - 748: 0xAFEE, - 749: 0xAFEF, - 750: 0xAFF2, - 751: 0xAFF3, - 752: 0xAFF5, - 753: 0xAFF6, - 754: 0xAFF7, - 755: 0xAFF9, - 756: 0xAFFA, - 757: 0xAFFB, - 758: 0xAFFC, - 759: 0xAFFD, - 760: 0xAFFE, - 761: 0xAFFF, - 762: 0xB002, - 763: 0xB003, - 764: 0xB005, - 765: 0xB006, - 766: 0xB007, - 767: 0xB008, - 768: 0xB009, - 769: 0xB00A, - 770: 0xB00B, - 771: 0xB00D, - 772: 0xB00E, - 773: 0xB00F, - 774: 0xB011, - 775: 0xB012, - 776: 0xB013, - 777: 0xB015, - 778: 0xB016, - 779: 0xB017, - 780: 0xB018, - 781: 0xB019, - 782: 0xB01A, - 783: 0xB01B, - 784: 0xB01E, - 785: 0xB01F, - 786: 0xB020, - 787: 0xB021, - 788: 0xB022, - 789: 0xB023, - 790: 0xB024, - 791: 0xB025, - 792: 0xB026, - 793: 0xB027, - 794: 0xB029, - 795: 0xB02A, - 796: 0xB02B, - 797: 0xB02C, - 798: 0xB02D, - 799: 0xB02E, - 800: 0xB02F, - 801: 0xB030, - 802: 0xB031, - 803: 0xB032, - 804: 0xB033, - 805: 0xB034, - 806: 0xB035, - 807: 0xB036, - 808: 0xB037, - 809: 0xB038, - 810: 0xB039, - 811: 0xB03A, - 812: 0xB03B, - 813: 0xB03C, - 814: 0xB03D, - 815: 0xB03E, - 816: 0xB03F, - 817: 0xB040, - 818: 0xB041, - 819: 0xB042, - 820: 0xB043, - 821: 0xB046, - 822: 0xB047, - 823: 0xB049, - 824: 0xB04B, - 825: 0xB04D, - 826: 0xB04F, - 827: 0xB050, - 828: 0xB051, - 829: 0xB052, - 830: 0xB056, - 831: 0xB058, - 832: 0xB05A, - 833: 0xB05B, - 834: 0xB05C, - 835: 0xB05E, - 836: 0xB05F, - 837: 0xB060, - 838: 0xB061, - 839: 0xB062, - 840: 0xB063, - 841: 0xB064, - 842: 0xB065, - 843: 0xB066, - 844: 0xB067, - 845: 0xB068, - 846: 0xB069, - 847: 0xB06A, - 848: 0xB06B, - 849: 0xB06C, - 850: 0xB06D, - 851: 0xB06E, - 852: 0xB06F, - 853: 0xB070, - 854: 0xB071, - 855: 0xB072, - 856: 0xB073, - 857: 0xB074, - 858: 0xB075, - 859: 0xB076, - 860: 0xB077, - 861: 0xB078, - 862: 0xB079, - 863: 0xB07A, - 864: 0xB07B, - 865: 0xB07E, - 866: 0xB07F, - 867: 0xB081, - 868: 0xB082, - 869: 0xB083, - 870: 0xB085, - 871: 0xB086, - 872: 0xB087, - 873: 0xB088, - 874: 0xB089, - 875: 0xB08A, - 876: 0xB08B, - 877: 0xB08E, - 878: 0xB090, - 879: 0xB092, - 880: 0xB093, - 881: 0xB094, - 882: 0xB095, - 883: 0xB096, - 884: 0xB097, - 885: 0xB09B, - 886: 0xB09D, - 887: 0xB09E, - 888: 0xB0A3, - 889: 0xB0A4, - 890: 0xB0A5, - 891: 0xB0A6, - 892: 0xB0A7, - 893: 0xB0AA, - 894: 0xB0B0, - 895: 0xB0B2, - 896: 0xB0B6, - 897: 0xB0B7, - 898: 0xB0B9, - 899: 0xB0BA, - 900: 0xB0BB, - 901: 0xB0BD, - 902: 0xB0BE, - 903: 0xB0BF, - 904: 0xB0C0, - 905: 0xB0C1, - 906: 0xB0C2, - 907: 0xB0C3, - 908: 0xB0C6, - 909: 0xB0CA, - 910: 0xB0CB, - 911: 0xB0CC, - 912: 0xB0CD, - 913: 0xB0CE, - 914: 0xB0CF, - 915: 0xB0D2, - 916: 0xB0D3, - 917: 0xB0D5, - 918: 0xB0D6, - 919: 0xB0D7, - 920: 0xB0D9, - 921: 0xB0DA, - 922: 0xB0DB, - 923: 0xB0DC, - 924: 0xB0DD, - 925: 0xB0DE, - 926: 0xB0DF, - 927: 0xB0E1, - 928: 0xB0E2, - 929: 0xB0E3, - 930: 0xB0E4, - 931: 0xB0E6, - 932: 0xB0E7, - 933: 0xB0E8, - 934: 0xB0E9, - 935: 0xB0EA, - 936: 0xB0EB, - 937: 0xB0EC, - 938: 0xB0ED, - 939: 0xB0EE, - 940: 0xB0EF, - 941: 0xB0F0, - 942: 0xB0F1, - 943: 0xB0F2, - 944: 0xB0F3, - 945: 0xB0F4, - 946: 0xB0F5, - 947: 0xB0F6, - 948: 0xB0F7, - 949: 0xB0F8, - 950: 0xB0F9, - 951: 0xB0FA, - 952: 0xB0FB, - 953: 0xB0FC, - 954: 0xB0FD, - 955: 0xB0FE, - 956: 0xB0FF, - 957: 0xB100, - 958: 0xB101, - 959: 0xB102, - 960: 0xB103, - 961: 0xB104, - 962: 0xB105, - 963: 0xB106, - 964: 0xB107, - 965: 0xB10A, - 966: 0xB10D, - 967: 0xB10E, - 968: 0xB10F, - 969: 0xB111, - 970: 0xB114, - 971: 0xB115, - 972: 0xB116, - 973: 0xB117, - 974: 0xB11A, - 975: 0xB11E, - 976: 0xB11F, - 977: 0xB120, - 978: 0xB121, - 979: 0xB122, - 980: 0xB126, - 981: 0xB127, - 982: 0xB129, - 983: 0xB12A, - 984: 0xB12B, - 985: 0xB12D, - 986: 0xB12E, - 987: 0xB12F, - 988: 0xB130, - 989: 0xB131, - 990: 0xB132, - 991: 0xB133, - 992: 0xB136, - 993: 0xB13A, - 994: 0xB13B, - 995: 0xB13C, - 996: 0xB13D, - 997: 0xB13E, - 998: 0xB13F, - 999: 0xB142, - 1000: 0xB143, - 1001: 0xB145, - 1002: 0xB146, - 1003: 0xB147, - 1004: 0xB149, - 1005: 0xB14A, - 1006: 0xB14B, - 1007: 0xB14C, - 1008: 0xB14D, - 1009: 0xB14E, - 1010: 0xB14F, - 1011: 0xB152, - 1012: 0xB153, - 1013: 0xB156, - 1014: 0xB157, - 1015: 0xB159, - 1016: 0xB15A, - 1017: 0xB15B, - 1018: 0xB15D, - 1019: 0xB15E, - 1020: 0xB15F, - 1021: 0xB161, - 1022: 0xB162, - 1023: 0xB163, - 1024: 0xB164, - 1025: 0xB165, - 1026: 0xB166, - 1027: 0xB167, - 1028: 0xB168, - 1029: 0xB169, - 1030: 0xB16A, - 1031: 0xB16B, - 1032: 0xB16C, - 1033: 0xB16D, - 1034: 0xB16E, - 1035: 0xB16F, - 1036: 0xB170, - 1037: 0xB171, - 1038: 0xB172, - 1039: 0xB173, - 1040: 0xB174, - 1041: 0xB175, - 1042: 0xB176, - 1043: 0xB177, - 1044: 0xB17A, - 1045: 0xB17B, - 1046: 0xB17D, - 1047: 0xB17E, - 1048: 0xB17F, - 1049: 0xB181, - 1050: 0xB183, - 1051: 0xB184, - 1052: 0xB185, - 1053: 0xB186, - 1054: 0xB187, - 1055: 0xB18A, - 1056: 0xB18C, - 1057: 0xB18E, - 1058: 0xB18F, - 1059: 0xB190, - 1060: 0xB191, - 1061: 0xB195, - 1062: 0xB196, - 1063: 0xB197, - 1064: 0xB199, - 1065: 0xB19A, - 1066: 0xB19B, - 1067: 0xB19D, - 1068: 0xB19E, - 1069: 0xB19F, - 1070: 0xB1A0, - 1071: 0xB1A1, - 1072: 0xB1A2, - 1073: 0xB1A3, - 1074: 0xB1A4, - 1075: 0xB1A5, - 1076: 0xB1A6, - 1077: 0xB1A7, - 1078: 0xB1A9, - 1079: 0xB1AA, - 1080: 0xB1AB, - 1081: 0xB1AC, - 1082: 0xB1AD, - 1083: 0xB1AE, - 1084: 0xB1AF, - 1085: 0xB1B0, - 1086: 0xB1B1, - 1087: 0xB1B2, - 1088: 0xB1B3, - 1089: 0xB1B4, - 1090: 0xB1B5, - 1091: 0xB1B6, - 1092: 0xB1B7, - 1093: 0xB1B8, - 1094: 0xB1B9, - 1095: 0xB1BA, - 1096: 0xB1BB, - 1097: 0xB1BC, - 1098: 0xB1BD, - 1099: 0xB1BE, - 1100: 0xB1BF, - 1101: 0xB1C0, - 1102: 0xB1C1, - 1103: 0xB1C2, - 1104: 0xB1C3, - 1105: 0xB1C4, - 1106: 0xB1C5, - 1107: 0xB1C6, - 1108: 0xB1C7, - 1109: 0xB1C8, - 1110: 0xB1C9, - 1111: 0xB1CA, - 1112: 0xB1CB, - 1113: 0xB1CD, - 1114: 0xB1CE, - 1115: 0xB1CF, - 1116: 0xB1D1, - 1117: 0xB1D2, - 1118: 0xB1D3, - 1119: 0xB1D5, - 1120: 0xB1D6, - 1121: 0xB1D7, - 1122: 0xB1D8, - 1123: 0xB1D9, - 1124: 0xB1DA, - 1125: 0xB1DB, - 1126: 0xB1DE, - 1127: 0xB1E0, - 1128: 0xB1E1, - 1129: 0xB1E2, - 1130: 0xB1E3, - 1131: 0xB1E4, - 1132: 0xB1E5, - 1133: 0xB1E6, - 1134: 0xB1E7, - 1135: 0xB1EA, - 1136: 0xB1EB, - 1137: 0xB1ED, - 1138: 0xB1EE, - 1139: 0xB1EF, - 1140: 0xB1F1, - 1141: 0xB1F2, - 1142: 0xB1F3, - 1143: 0xB1F4, - 1144: 0xB1F5, - 1145: 0xB1F6, - 1146: 0xB1F7, - 1147: 0xB1F8, - 1148: 0xB1FA, - 1149: 0xB1FC, - 1150: 0xB1FE, - 1151: 0xB1FF, - 1152: 0xB200, - 1153: 0xB201, - 1154: 0xB202, - 1155: 0xB203, - 1156: 0xB206, - 1157: 0xB207, - 1158: 0xB209, - 1159: 0xB20A, - 1160: 0xB20D, - 1161: 0xB20E, - 1162: 0xB20F, - 1163: 0xB210, - 1164: 0xB211, - 1165: 0xB212, - 1166: 0xB213, - 1167: 0xB216, - 1168: 0xB218, - 1169: 0xB21A, - 1170: 0xB21B, - 1171: 0xB21C, - 1172: 0xB21D, - 1173: 0xB21E, - 1174: 0xB21F, - 1175: 0xB221, - 1176: 0xB222, - 1177: 0xB223, - 1178: 0xB224, - 1179: 0xB225, - 1180: 0xB226, - 1181: 0xB227, - 1182: 0xB228, - 1183: 0xB229, - 1184: 0xB22A, - 1185: 0xB22B, - 1186: 0xB22C, - 1187: 0xB22D, - 1188: 0xB22E, - 1189: 0xB22F, - 1190: 0xB230, - 1191: 0xB231, - 1192: 0xB232, - 1193: 0xB233, - 1194: 0xB235, - 1195: 0xB236, - 1196: 0xB237, - 1197: 0xB238, - 1198: 0xB239, - 1199: 0xB23A, - 1200: 0xB23B, - 1201: 0xB23D, - 1202: 0xB23E, - 1203: 0xB23F, - 1204: 0xB240, - 1205: 0xB241, - 1206: 0xB242, - 1207: 0xB243, - 1208: 0xB244, - 1209: 0xB245, - 1210: 0xB246, - 1211: 0xB247, - 1212: 0xB248, - 1213: 0xB249, - 1214: 0xB24A, - 1215: 0xB24B, - 1216: 0xB24C, - 1217: 0xB24D, - 1218: 0xB24E, - 1219: 0xB24F, - 1220: 0xB250, - 1221: 0xB251, - 1222: 0xB252, - 1223: 0xB253, - 1224: 0xB254, - 1225: 0xB255, - 1226: 0xB256, - 1227: 0xB257, - 1228: 0xB259, - 1229: 0xB25A, - 1230: 0xB25B, - 1231: 0xB25D, - 1232: 0xB25E, - 1233: 0xB25F, - 1234: 0xB261, - 1235: 0xB262, - 1236: 0xB263, - 1237: 0xB264, - 1238: 0xB265, - 1239: 0xB266, - 1240: 0xB267, - 1241: 0xB26A, - 1242: 0xB26B, - 1243: 0xB26C, - 1244: 0xB26D, - 1245: 0xB26E, - 1246: 0xB26F, - 1247: 0xB270, - 1248: 0xB271, - 1249: 0xB272, - 1250: 0xB273, - 1251: 0xB276, - 1252: 0xB277, - 1253: 0xB278, - 1254: 0xB279, - 1255: 0xB27A, - 1256: 0xB27B, - 1257: 0xB27D, - 1258: 0xB27E, - 1259: 0xB27F, - 1260: 0xB280, - 1261: 0xB281, - 1262: 0xB282, - 1263: 0xB283, - 1264: 0xB286, - 1265: 0xB287, - 1266: 0xB288, - 1267: 0xB28A, - 1268: 0xB28B, - 1269: 0xB28C, - 1270: 0xB28D, - 1271: 0xB28E, - 1272: 0xB28F, - 1273: 0xB292, - 1274: 0xB293, - 1275: 0xB295, - 1276: 0xB296, - 1277: 0xB297, - 1278: 0xB29B, - 1279: 0xB29C, - 1280: 0xB29D, - 1281: 0xB29E, - 1282: 0xB29F, - 1283: 0xB2A2, - 1284: 0xB2A4, - 1285: 0xB2A7, - 1286: 0xB2A8, - 1287: 0xB2A9, - 1288: 0xB2AB, - 1289: 0xB2AD, - 1290: 0xB2AE, - 1291: 0xB2AF, - 1292: 0xB2B1, - 1293: 0xB2B2, - 1294: 0xB2B3, - 1295: 0xB2B5, - 1296: 0xB2B6, - 1297: 0xB2B7, - 1298: 0xB2B8, - 1299: 0xB2B9, - 1300: 0xB2BA, - 1301: 0xB2BB, - 1302: 0xB2BC, - 1303: 0xB2BD, - 1304: 0xB2BE, - 1305: 0xB2BF, - 1306: 0xB2C0, - 1307: 0xB2C1, - 1308: 0xB2C2, - 1309: 0xB2C3, - 1310: 0xB2C4, - 1311: 0xB2C5, - 1312: 0xB2C6, - 1313: 0xB2C7, - 1314: 0xB2CA, - 1315: 0xB2CB, - 1316: 0xB2CD, - 1317: 0xB2CE, - 1318: 0xB2CF, - 1319: 0xB2D1, - 1320: 0xB2D3, - 1321: 0xB2D4, - 1322: 0xB2D5, - 1323: 0xB2D6, - 1324: 0xB2D7, - 1325: 0xB2DA, - 1326: 0xB2DC, - 1327: 0xB2DE, - 1328: 0xB2DF, - 1329: 0xB2E0, - 1330: 0xB2E1, - 1331: 0xB2E3, - 1332: 0xB2E7, - 1333: 0xB2E9, - 1334: 0xB2EA, - 1335: 0xB2F0, - 1336: 0xB2F1, - 1337: 0xB2F2, - 1338: 0xB2F6, - 1339: 0xB2FC, - 1340: 0xB2FD, - 1341: 0xB2FE, - 1342: 0xB302, - 1343: 0xB303, - 1344: 0xB305, - 1345: 0xB306, - 1346: 0xB307, - 1347: 0xB309, - 1348: 0xB30A, - 1349: 0xB30B, - 1350: 0xB30C, - 1351: 0xB30D, - 1352: 0xB30E, - 1353: 0xB30F, - 1354: 0xB312, - 1355: 0xB316, - 1356: 0xB317, - 1357: 0xB318, - 1358: 0xB319, - 1359: 0xB31A, - 1360: 0xB31B, - 1361: 0xB31D, - 1362: 0xB31E, - 1363: 0xB31F, - 1364: 0xB320, - 1365: 0xB321, - 1366: 0xB322, - 1367: 0xB323, - 1368: 0xB324, - 1369: 0xB325, - 1370: 0xB326, - 1371: 0xB327, - 1372: 0xB328, - 1373: 0xB329, - 1374: 0xB32A, - 1375: 0xB32B, - 1376: 0xB32C, - 1377: 0xB32D, - 1378: 0xB32E, - 1379: 0xB32F, - 1380: 0xB330, - 1381: 0xB331, - 1382: 0xB332, - 1383: 0xB333, - 1384: 0xB334, - 1385: 0xB335, - 1386: 0xB336, - 1387: 0xB337, - 1388: 0xB338, - 1389: 0xB339, - 1390: 0xB33A, - 1391: 0xB33B, - 1392: 0xB33C, - 1393: 0xB33D, - 1394: 0xB33E, - 1395: 0xB33F, - 1396: 0xB340, - 1397: 0xB341, - 1398: 0xB342, - 1399: 0xB343, - 1400: 0xB344, - 1401: 0xB345, - 1402: 0xB346, - 1403: 0xB347, - 1404: 0xB348, - 1405: 0xB349, - 1406: 0xB34A, - 1407: 0xB34B, - 1408: 0xB34C, - 1409: 0xB34D, - 1410: 0xB34E, - 1411: 0xB34F, - 1412: 0xB350, - 1413: 0xB351, - 1414: 0xB352, - 1415: 0xB353, - 1416: 0xB357, - 1417: 0xB359, - 1418: 0xB35A, - 1419: 0xB35D, - 1420: 0xB360, - 1421: 0xB361, - 1422: 0xB362, - 1423: 0xB363, - 1424: 0xB366, - 1425: 0xB368, - 1426: 0xB36A, - 1427: 0xB36C, - 1428: 0xB36D, - 1429: 0xB36F, - 1430: 0xB372, - 1431: 0xB373, - 1432: 0xB375, - 1433: 0xB376, - 1434: 0xB377, - 1435: 0xB379, - 1436: 0xB37A, - 1437: 0xB37B, - 1438: 0xB37C, - 1439: 0xB37D, - 1440: 0xB37E, - 1441: 0xB37F, - 1442: 0xB382, - 1443: 0xB386, - 1444: 0xB387, - 1445: 0xB388, - 1446: 0xB389, - 1447: 0xB38A, - 1448: 0xB38B, - 1449: 0xB38D, - 1450: 0xB38E, - 1451: 0xB38F, - 1452: 0xB391, - 1453: 0xB392, - 1454: 0xB393, - 1455: 0xB395, - 1456: 0xB396, - 1457: 0xB397, - 1458: 0xB398, - 1459: 0xB399, - 1460: 0xB39A, - 1461: 0xB39B, - 1462: 0xB39C, - 1463: 0xB39D, - 1464: 0xB39E, - 1465: 0xB39F, - 1466: 0xB3A2, - 1467: 0xB3A3, - 1468: 0xB3A4, - 1469: 0xB3A5, - 1470: 0xB3A6, - 1471: 0xB3A7, - 1472: 0xB3A9, - 1473: 0xB3AA, - 1474: 0xB3AB, - 1475: 0xB3AD, - 1476: 0xB3AE, - 1477: 0xB3AF, - 1478: 0xB3B0, - 1479: 0xB3B1, - 1480: 0xB3B2, - 1481: 0xB3B3, - 1482: 0xB3B4, - 1483: 0xB3B5, - 1484: 0xB3B6, - 1485: 0xB3B7, - 1486: 0xB3B8, - 1487: 0xB3B9, - 1488: 0xB3BA, - 1489: 0xB3BB, - 1490: 0xB3BC, - 1491: 0xB3BD, - 1492: 0xB3BE, - 1493: 0xB3BF, - 1494: 0xB3C0, - 1495: 0xB3C1, - 1496: 0xB3C2, - 1497: 0xB3C3, - 1498: 0xB3C6, - 1499: 0xB3C7, - 1500: 0xB3C9, - 1501: 0xB3CA, - 1502: 0xB3CD, - 1503: 0xB3CF, - 1504: 0xB3D1, - 1505: 0xB3D2, - 1506: 0xB3D3, - 1507: 0xB3D6, - 1508: 0xB3D8, - 1509: 0xB3DA, - 1510: 0xB3DC, - 1511: 0xB3DE, - 1512: 0xB3DF, - 1513: 0xB3E1, - 1514: 0xB3E2, - 1515: 0xB3E3, - 1516: 0xB3E5, - 1517: 0xB3E6, - 1518: 0xB3E7, - 1519: 0xB3E9, - 1520: 0xB3EA, - 1521: 0xB3EB, - 1522: 0xB3EC, - 1523: 0xB3ED, - 1524: 0xB3EE, - 1525: 0xB3EF, - 1526: 0xB3F0, - 1527: 0xB3F1, - 1528: 0xB3F2, - 1529: 0xB3F3, - 1530: 0xB3F4, - 1531: 0xB3F5, - 1532: 0xB3F6, - 1533: 0xB3F7, - 1534: 0xB3F8, - 1535: 0xB3F9, - 1536: 0xB3FA, - 1537: 0xB3FB, - 1538: 0xB3FD, - 1539: 0xB3FE, - 1540: 0xB3FF, - 1541: 0xB400, - 1542: 0xB401, - 1543: 0xB402, - 1544: 0xB403, - 1545: 0xB404, - 1546: 0xB405, - 1547: 0xB406, - 1548: 0xB407, - 1549: 0xB408, - 1550: 0xB409, - 1551: 0xB40A, - 1552: 0xB40B, - 1553: 0xB40C, - 1554: 0xB40D, - 1555: 0xB40E, - 1556: 0xB40F, - 1557: 0xB411, - 1558: 0xB412, - 1559: 0xB413, - 1560: 0xB414, - 1561: 0xB415, - 1562: 0xB416, - 1563: 0xB417, - 1564: 0xB419, - 1565: 0xB41A, - 1566: 0xB41B, - 1567: 0xB41D, - 1568: 0xB41E, - 1569: 0xB41F, - 1570: 0xB421, - 1571: 0xB422, - 1572: 0xB423, - 1573: 0xB424, - 1574: 0xB425, - 1575: 0xB426, - 1576: 0xB427, - 1577: 0xB42A, - 1578: 0xB42C, - 1579: 0xB42D, - 1580: 0xB42E, - 1581: 0xB42F, - 1582: 0xB430, - 1583: 0xB431, - 1584: 0xB432, - 1585: 0xB433, - 1586: 0xB435, - 1587: 0xB436, - 1588: 0xB437, - 1589: 0xB438, - 1590: 0xB439, - 1591: 0xB43A, - 1592: 0xB43B, - 1593: 0xB43C, - 1594: 0xB43D, - 1595: 0xB43E, - 1596: 0xB43F, - 1597: 0xB440, - 1598: 0xB441, - 1599: 0xB442, - 1600: 0xB443, - 1601: 0xB444, - 1602: 0xB445, - 1603: 0xB446, - 1604: 0xB447, - 1605: 0xB448, - 1606: 0xB449, - 1607: 0xB44A, - 1608: 0xB44B, - 1609: 0xB44C, - 1610: 0xB44D, - 1611: 0xB44E, - 1612: 0xB44F, - 1613: 0xB452, - 1614: 0xB453, - 1615: 0xB455, - 1616: 0xB456, - 1617: 0xB457, - 1618: 0xB459, - 1619: 0xB45A, - 1620: 0xB45B, - 1621: 0xB45C, - 1622: 0xB45D, - 1623: 0xB45E, - 1624: 0xB45F, - 1625: 0xB462, - 1626: 0xB464, - 1627: 0xB466, - 1628: 0xB467, - 1629: 0xB468, - 1630: 0xB469, - 1631: 0xB46A, - 1632: 0xB46B, - 1633: 0xB46D, - 1634: 0xB46E, - 1635: 0xB46F, - 1636: 0xB470, - 1637: 0xB471, - 1638: 0xB472, - 1639: 0xB473, - 1640: 0xB474, - 1641: 0xB475, - 1642: 0xB476, - 1643: 0xB477, - 1644: 0xB478, - 1645: 0xB479, - 1646: 0xB47A, - 1647: 0xB47B, - 1648: 0xB47C, - 1649: 0xB47D, - 1650: 0xB47E, - 1651: 0xB47F, - 1652: 0xB481, - 1653: 0xB482, - 1654: 0xB483, - 1655: 0xB484, - 1656: 0xB485, - 1657: 0xB486, - 1658: 0xB487, - 1659: 0xB489, - 1660: 0xB48A, - 1661: 0xB48B, - 1662: 0xB48C, - 1663: 0xB48D, - 1664: 0xB48E, - 1665: 0xB48F, - 1666: 0xB490, - 1667: 0xB491, - 1668: 0xB492, - 1669: 0xB493, - 1670: 0xB494, - 1671: 0xB495, - 1672: 0xB496, - 1673: 0xB497, - 1674: 0xB498, - 1675: 0xB499, - 1676: 0xB49A, - 1677: 0xB49B, - 1678: 0xB49C, - 1679: 0xB49E, - 1680: 0xB49F, - 1681: 0xB4A0, - 1682: 0xB4A1, - 1683: 0xB4A2, - 1684: 0xB4A3, - 1685: 0xB4A5, - 1686: 0xB4A6, - 1687: 0xB4A7, - 1688: 0xB4A9, - 1689: 0xB4AA, - 1690: 0xB4AB, - 1691: 0xB4AD, - 1692: 0xB4AE, - 1693: 0xB4AF, - 1694: 0xB4B0, - 1695: 0xB4B1, - 1696: 0xB4B2, - 1697: 0xB4B3, - 1698: 0xB4B4, - 1699: 0xB4B6, - 1700: 0xB4B8, - 1701: 0xB4BA, - 1702: 0xB4BB, - 1703: 0xB4BC, - 1704: 0xB4BD, - 1705: 0xB4BE, - 1706: 0xB4BF, - 1707: 0xB4C1, - 1708: 0xB4C2, - 1709: 0xB4C3, - 1710: 0xB4C5, - 1711: 0xB4C6, - 1712: 0xB4C7, - 1713: 0xB4C9, - 1714: 0xB4CA, - 1715: 0xB4CB, - 1716: 0xB4CC, - 1717: 0xB4CD, - 1718: 0xB4CE, - 1719: 0xB4CF, - 1720: 0xB4D1, - 1721: 0xB4D2, - 1722: 0xB4D3, - 1723: 0xB4D4, - 1724: 0xB4D6, - 1725: 0xB4D7, - 1726: 0xB4D8, - 1727: 0xB4D9, - 1728: 0xB4DA, - 1729: 0xB4DB, - 1730: 0xB4DE, - 1731: 0xB4DF, - 1732: 0xB4E1, - 1733: 0xB4E2, - 1734: 0xB4E5, - 1735: 0xB4E7, - 1736: 0xB4E8, - 1737: 0xB4E9, - 1738: 0xB4EA, - 1739: 0xB4EB, - 1740: 0xB4EE, - 1741: 0xB4F0, - 1742: 0xB4F2, - 1743: 0xB4F3, - 1744: 0xB4F4, - 1745: 0xB4F5, - 1746: 0xB4F6, - 1747: 0xB4F7, - 1748: 0xB4F9, - 1749: 0xB4FA, - 1750: 0xB4FB, - 1751: 0xB4FC, - 1752: 0xB4FD, - 1753: 0xB4FE, - 1754: 0xB4FF, - 1755: 0xB500, - 1756: 0xB501, - 1757: 0xB502, - 1758: 0xB503, - 1759: 0xB504, - 1760: 0xB505, - 1761: 0xB506, - 1762: 0xB507, - 1763: 0xB508, - 1764: 0xB509, - 1765: 0xB50A, - 1766: 0xB50B, - 1767: 0xB50C, - 1768: 0xB50D, - 1769: 0xB50E, - 1770: 0xB50F, - 1771: 0xB510, - 1772: 0xB511, - 1773: 0xB512, - 1774: 0xB513, - 1775: 0xB516, - 1776: 0xB517, - 1777: 0xB519, - 1778: 0xB51A, - 1779: 0xB51D, - 1780: 0xB51E, - 1781: 0xB51F, - 1782: 0xB520, - 1783: 0xB521, - 1784: 0xB522, - 1785: 0xB523, - 1786: 0xB526, - 1787: 0xB52B, - 1788: 0xB52C, - 1789: 0xB52D, - 1790: 0xB52E, - 1791: 0xB52F, - 1792: 0xB532, - 1793: 0xB533, - 1794: 0xB535, - 1795: 0xB536, - 1796: 0xB537, - 1797: 0xB539, - 1798: 0xB53A, - 1799: 0xB53B, - 1800: 0xB53C, - 1801: 0xB53D, - 1802: 0xB53E, - 1803: 0xB53F, - 1804: 0xB542, - 1805: 0xB546, - 1806: 0xB547, - 1807: 0xB548, - 1808: 0xB549, - 1809: 0xB54A, - 1810: 0xB54E, - 1811: 0xB54F, - 1812: 0xB551, - 1813: 0xB552, - 1814: 0xB553, - 1815: 0xB555, - 1816: 0xB556, - 1817: 0xB557, - 1818: 0xB558, - 1819: 0xB559, - 1820: 0xB55A, - 1821: 0xB55B, - 1822: 0xB55E, - 1823: 0xB562, - 1824: 0xB563, - 1825: 0xB564, - 1826: 0xB565, - 1827: 0xB566, - 1828: 0xB567, - 1829: 0xB568, - 1830: 0xB569, - 1831: 0xB56A, - 1832: 0xB56B, - 1833: 0xB56C, - 1834: 0xB56D, - 1835: 0xB56E, - 1836: 0xB56F, - 1837: 0xB570, - 1838: 0xB571, - 1839: 0xB572, - 1840: 0xB573, - 1841: 0xB574, - 1842: 0xB575, - 1843: 0xB576, - 1844: 0xB577, - 1845: 0xB578, - 1846: 0xB579, - 1847: 0xB57A, - 1848: 0xB57B, - 1849: 0xB57C, - 1850: 0xB57D, - 1851: 0xB57E, - 1852: 0xB57F, - 1853: 0xB580, - 1854: 0xB581, - 1855: 0xB582, - 1856: 0xB583, - 1857: 0xB584, - 1858: 0xB585, - 1859: 0xB586, - 1860: 0xB587, - 1861: 0xB588, - 1862: 0xB589, - 1863: 0xB58A, - 1864: 0xB58B, - 1865: 0xB58C, - 1866: 0xB58D, - 1867: 0xB58E, - 1868: 0xB58F, - 1869: 0xB590, - 1870: 0xB591, - 1871: 0xB592, - 1872: 0xB593, - 1873: 0xB594, - 1874: 0xB595, - 1875: 0xB596, - 1876: 0xB597, - 1877: 0xB598, - 1878: 0xB599, - 1879: 0xB59A, - 1880: 0xB59B, - 1881: 0xB59C, - 1882: 0xB59D, - 1883: 0xB59E, - 1884: 0xB59F, - 1885: 0xB5A2, - 1886: 0xB5A3, - 1887: 0xB5A5, - 1888: 0xB5A6, - 1889: 0xB5A7, - 1890: 0xB5A9, - 1891: 0xB5AC, - 1892: 0xB5AD, - 1893: 0xB5AE, - 1894: 0xB5AF, - 1895: 0xB5B2, - 1896: 0xB5B6, - 1897: 0xB5B7, - 1898: 0xB5B8, - 1899: 0xB5B9, - 1900: 0xB5BA, - 1901: 0xB5BE, - 1902: 0xB5BF, - 1903: 0xB5C1, - 1904: 0xB5C2, - 1905: 0xB5C3, - 1906: 0xB5C5, - 1907: 0xB5C6, - 1908: 0xB5C7, - 1909: 0xB5C8, - 1910: 0xB5C9, - 1911: 0xB5CA, - 1912: 0xB5CB, - 1913: 0xB5CE, - 1914: 0xB5D2, - 1915: 0xB5D3, - 1916: 0xB5D4, - 1917: 0xB5D5, - 1918: 0xB5D6, - 1919: 0xB5D7, - 1920: 0xB5D9, - 1921: 0xB5DA, - 1922: 0xB5DB, - 1923: 0xB5DC, - 1924: 0xB5DD, - 1925: 0xB5DE, - 1926: 0xB5DF, - 1927: 0xB5E0, - 1928: 0xB5E1, - 1929: 0xB5E2, - 1930: 0xB5E3, - 1931: 0xB5E4, - 1932: 0xB5E5, - 1933: 0xB5E6, - 1934: 0xB5E7, - 1935: 0xB5E8, - 1936: 0xB5E9, - 1937: 0xB5EA, - 1938: 0xB5EB, - 1939: 0xB5ED, - 1940: 0xB5EE, - 1941: 0xB5EF, - 1942: 0xB5F0, - 1943: 0xB5F1, - 1944: 0xB5F2, - 1945: 0xB5F3, - 1946: 0xB5F4, - 1947: 0xB5F5, - 1948: 0xB5F6, - 1949: 0xB5F7, - 1950: 0xB5F8, - 1951: 0xB5F9, - 1952: 0xB5FA, - 1953: 0xB5FB, - 1954: 0xB5FC, - 1955: 0xB5FD, - 1956: 0xB5FE, - 1957: 0xB5FF, - 1958: 0xB600, - 1959: 0xB601, - 1960: 0xB602, - 1961: 0xB603, - 1962: 0xB604, - 1963: 0xB605, - 1964: 0xB606, - 1965: 0xB607, - 1966: 0xB608, - 1967: 0xB609, - 1968: 0xB60A, - 1969: 0xB60B, - 1970: 0xB60C, - 1971: 0xB60D, - 1972: 0xB60E, - 1973: 0xB60F, - 1974: 0xB612, - 1975: 0xB613, - 1976: 0xB615, - 1977: 0xB616, - 1978: 0xB617, - 1979: 0xB619, - 1980: 0xB61A, - 1981: 0xB61B, - 1982: 0xB61C, - 1983: 0xB61D, - 1984: 0xB61E, - 1985: 0xB61F, - 1986: 0xB620, - 1987: 0xB621, - 1988: 0xB622, - 1989: 0xB623, - 1990: 0xB624, - 1991: 0xB626, - 1992: 0xB627, - 1993: 0xB628, - 1994: 0xB629, - 1995: 0xB62A, - 1996: 0xB62B, - 1997: 0xB62D, - 1998: 0xB62E, - 1999: 0xB62F, - 2000: 0xB630, - 2001: 0xB631, - 2002: 0xB632, - 2003: 0xB633, - 2004: 0xB635, - 2005: 0xB636, - 2006: 0xB637, - 2007: 0xB638, - 2008: 0xB639, - 2009: 0xB63A, - 2010: 0xB63B, - 2011: 0xB63C, - 2012: 0xB63D, - 2013: 0xB63E, - 2014: 0xB63F, - 2015: 0xB640, - 2016: 0xB641, - 2017: 0xB642, - 2018: 0xB643, - 2019: 0xB644, - 2020: 0xB645, - 2021: 0xB646, - 2022: 0xB647, - 2023: 0xB649, - 2024: 0xB64A, - 2025: 0xB64B, - 2026: 0xB64C, - 2027: 0xB64D, - 2028: 0xB64E, - 2029: 0xB64F, - 2030: 0xB650, - 2031: 0xB651, - 2032: 0xB652, - 2033: 0xB653, - 2034: 0xB654, - 2035: 0xB655, - 2036: 0xB656, - 2037: 0xB657, - 2038: 0xB658, - 2039: 0xB659, - 2040: 0xB65A, - 2041: 0xB65B, - 2042: 0xB65C, - 2043: 0xB65D, - 2044: 0xB65E, - 2045: 0xB65F, - 2046: 0xB660, - 2047: 0xB661, - 2048: 0xB662, - 2049: 0xB663, - 2050: 0xB665, - 2051: 0xB666, - 2052: 0xB667, - 2053: 0xB669, - 2054: 0xB66A, - 2055: 0xB66B, - 2056: 0xB66C, - 2057: 0xB66D, - 2058: 0xB66E, - 2059: 0xB66F, - 2060: 0xB670, - 2061: 0xB671, - 2062: 0xB672, - 2063: 0xB673, - 2064: 0xB674, - 2065: 0xB675, - 2066: 0xB676, - 2067: 0xB677, - 2068: 0xB678, - 2069: 0xB679, - 2070: 0xB67A, - 2071: 0xB67B, - 2072: 0xB67C, - 2073: 0xB67D, - 2074: 0xB67E, - 2075: 0xB67F, - 2076: 0xB680, - 2077: 0xB681, - 2078: 0xB682, - 2079: 0xB683, - 2080: 0xB684, - 2081: 0xB685, - 2082: 0xB686, - 2083: 0xB687, - 2084: 0xB688, - 2085: 0xB689, - 2086: 0xB68A, - 2087: 0xB68B, - 2088: 0xB68C, - 2089: 0xB68D, - 2090: 0xB68E, - 2091: 0xB68F, - 2092: 0xB690, - 2093: 0xB691, - 2094: 0xB692, - 2095: 0xB693, - 2096: 0xB694, - 2097: 0xB695, - 2098: 0xB696, - 2099: 0xB697, - 2100: 0xB698, - 2101: 0xB699, - 2102: 0xB69A, - 2103: 0xB69B, - 2104: 0xB69E, - 2105: 0xB69F, - 2106: 0xB6A1, - 2107: 0xB6A2, - 2108: 0xB6A3, - 2109: 0xB6A5, - 2110: 0xB6A6, - 2111: 0xB6A7, - 2112: 0xB6A8, - 2113: 0xB6A9, - 2114: 0xB6AA, - 2115: 0xB6AD, - 2116: 0xB6AE, - 2117: 0xB6AF, - 2118: 0xB6B0, - 2119: 0xB6B2, - 2120: 0xB6B3, - 2121: 0xB6B4, - 2122: 0xB6B5, - 2123: 0xB6B6, - 2124: 0xB6B7, - 2125: 0xB6B8, - 2126: 0xB6B9, - 2127: 0xB6BA, - 2128: 0xB6BB, - 2129: 0xB6BC, - 2130: 0xB6BD, - 2131: 0xB6BE, - 2132: 0xB6BF, - 2133: 0xB6C0, - 2134: 0xB6C1, - 2135: 0xB6C2, - 2136: 0xB6C3, - 2137: 0xB6C4, - 2138: 0xB6C5, - 2139: 0xB6C6, - 2140: 0xB6C7, - 2141: 0xB6C8, - 2142: 0xB6C9, - 2143: 0xB6CA, - 2144: 0xB6CB, - 2145: 0xB6CC, - 2146: 0xB6CD, - 2147: 0xB6CE, - 2148: 0xB6CF, - 2149: 0xB6D0, - 2150: 0xB6D1, - 2151: 0xB6D2, - 2152: 0xB6D3, - 2153: 0xB6D5, - 2154: 0xB6D6, - 2155: 0xB6D7, - 2156: 0xB6D8, - 2157: 0xB6D9, - 2158: 0xB6DA, - 2159: 0xB6DB, - 2160: 0xB6DC, - 2161: 0xB6DD, - 2162: 0xB6DE, - 2163: 0xB6DF, - 2164: 0xB6E0, - 2165: 0xB6E1, - 2166: 0xB6E2, - 2167: 0xB6E3, - 2168: 0xB6E4, - 2169: 0xB6E5, - 2170: 0xB6E6, - 2171: 0xB6E7, - 2172: 0xB6E8, - 2173: 0xB6E9, - 2174: 0xB6EA, - 2175: 0xB6EB, - 2176: 0xB6EC, - 2177: 0xB6ED, - 2178: 0xB6EE, - 2179: 0xB6EF, - 2180: 0xB6F1, - 2181: 0xB6F2, - 2182: 0xB6F3, - 2183: 0xB6F5, - 2184: 0xB6F6, - 2185: 0xB6F7, - 2186: 0xB6F9, - 2187: 0xB6FA, - 2188: 0xB6FB, - 2189: 0xB6FC, - 2190: 0xB6FD, - 2191: 0xB6FE, - 2192: 0xB6FF, - 2193: 0xB702, - 2194: 0xB703, - 2195: 0xB704, - 2196: 0xB706, - 2197: 0xB707, - 2198: 0xB708, - 2199: 0xB709, - 2200: 0xB70A, - 2201: 0xB70B, - 2202: 0xB70C, - 2203: 0xB70D, - 2204: 0xB70E, - 2205: 0xB70F, - 2206: 0xB710, - 2207: 0xB711, - 2208: 0xB712, - 2209: 0xB713, - 2210: 0xB714, - 2211: 0xB715, - 2212: 0xB716, - 2213: 0xB717, - 2214: 0xB718, - 2215: 0xB719, - 2216: 0xB71A, - 2217: 0xB71B, - 2218: 0xB71C, - 2219: 0xB71D, - 2220: 0xB71E, - 2221: 0xB71F, - 2222: 0xB720, - 2223: 0xB721, - 2224: 0xB722, - 2225: 0xB723, - 2226: 0xB724, - 2227: 0xB725, - 2228: 0xB726, - 2229: 0xB727, - 2230: 0xB72A, - 2231: 0xB72B, - 2232: 0xB72D, - 2233: 0xB72E, - 2234: 0xB731, - 2235: 0xB732, - 2236: 0xB733, - 2237: 0xB734, - 2238: 0xB735, - 2239: 0xB736, - 2240: 0xB737, - 2241: 0xB73A, - 2242: 0xB73C, - 2243: 0xB73D, - 2244: 0xB73E, - 2245: 0xB73F, - 2246: 0xB740, - 2247: 0xB741, - 2248: 0xB742, - 2249: 0xB743, - 2250: 0xB745, - 2251: 0xB746, - 2252: 0xB747, - 2253: 0xB749, - 2254: 0xB74A, - 2255: 0xB74B, - 2256: 0xB74D, - 2257: 0xB74E, - 2258: 0xB74F, - 2259: 0xB750, - 2260: 0xB751, - 2261: 0xB752, - 2262: 0xB753, - 2263: 0xB756, - 2264: 0xB757, - 2265: 0xB758, - 2266: 0xB759, - 2267: 0xB75A, - 2268: 0xB75B, - 2269: 0xB75C, - 2270: 0xB75D, - 2271: 0xB75E, - 2272: 0xB75F, - 2273: 0xB761, - 2274: 0xB762, - 2275: 0xB763, - 2276: 0xB765, - 2277: 0xB766, - 2278: 0xB767, - 2279: 0xB769, - 2280: 0xB76A, - 2281: 0xB76B, - 2282: 0xB76C, - 2283: 0xB76D, - 2284: 0xB76E, - 2285: 0xB76F, - 2286: 0xB772, - 2287: 0xB774, - 2288: 0xB776, - 2289: 0xB777, - 2290: 0xB778, - 2291: 0xB779, - 2292: 0xB77A, - 2293: 0xB77B, - 2294: 0xB77E, - 2295: 0xB77F, - 2296: 0xB781, - 2297: 0xB782, - 2298: 0xB783, - 2299: 0xB785, - 2300: 0xB786, - 2301: 0xB787, - 2302: 0xB788, - 2303: 0xB789, - 2304: 0xB78A, - 2305: 0xB78B, - 2306: 0xB78E, - 2307: 0xB793, - 2308: 0xB794, - 2309: 0xB795, - 2310: 0xB79A, - 2311: 0xB79B, - 2312: 0xB79D, - 2313: 0xB79E, - 2314: 0xB79F, - 2315: 0xB7A1, - 2316: 0xB7A2, - 2317: 0xB7A3, - 2318: 0xB7A4, - 2319: 0xB7A5, - 2320: 0xB7A6, - 2321: 0xB7A7, - 2322: 0xB7AA, - 2323: 0xB7AE, - 2324: 0xB7AF, - 2325: 0xB7B0, - 2326: 0xB7B1, - 2327: 0xB7B2, - 2328: 0xB7B3, - 2329: 0xB7B6, - 2330: 0xB7B7, - 2331: 0xB7B9, - 2332: 0xB7BA, - 2333: 0xB7BB, - 2334: 0xB7BC, - 2335: 0xB7BD, - 2336: 0xB7BE, - 2337: 0xB7BF, - 2338: 0xB7C0, - 2339: 0xB7C1, - 2340: 0xB7C2, - 2341: 0xB7C3, - 2342: 0xB7C4, - 2343: 0xB7C5, - 2344: 0xB7C6, - 2345: 0xB7C8, - 2346: 0xB7CA, - 2347: 0xB7CB, - 2348: 0xB7CC, - 2349: 0xB7CD, - 2350: 0xB7CE, - 2351: 0xB7CF, - 2352: 0xB7D0, - 2353: 0xB7D1, - 2354: 0xB7D2, - 2355: 0xB7D3, - 2356: 0xB7D4, - 2357: 0xB7D5, - 2358: 0xB7D6, - 2359: 0xB7D7, - 2360: 0xB7D8, - 2361: 0xB7D9, - 2362: 0xB7DA, - 2363: 0xB7DB, - 2364: 0xB7DC, - 2365: 0xB7DD, - 2366: 0xB7DE, - 2367: 0xB7DF, - 2368: 0xB7E0, - 2369: 0xB7E1, - 2370: 0xB7E2, - 2371: 0xB7E3, - 2372: 0xB7E4, - 2373: 0xB7E5, - 2374: 0xB7E6, - 2375: 0xB7E7, - 2376: 0xB7E8, - 2377: 0xB7E9, - 2378: 0xB7EA, - 2379: 0xB7EB, - 2380: 0xB7EE, - 2381: 0xB7EF, - 2382: 0xB7F1, - 2383: 0xB7F2, - 2384: 0xB7F3, - 2385: 0xB7F5, - 2386: 0xB7F6, - 2387: 0xB7F7, - 2388: 0xB7F8, - 2389: 0xB7F9, - 2390: 0xB7FA, - 2391: 0xB7FB, - 2392: 0xB7FE, - 2393: 0xB802, - 2394: 0xB803, - 2395: 0xB804, - 2396: 0xB805, - 2397: 0xB806, - 2398: 0xB80A, - 2399: 0xB80B, - 2400: 0xB80D, - 2401: 0xB80E, - 2402: 0xB80F, - 2403: 0xB811, - 2404: 0xB812, - 2405: 0xB813, - 2406: 0xB814, - 2407: 0xB815, - 2408: 0xB816, - 2409: 0xB817, - 2410: 0xB81A, - 2411: 0xB81C, - 2412: 0xB81E, - 2413: 0xB81F, - 2414: 0xB820, - 2415: 0xB821, - 2416: 0xB822, - 2417: 0xB823, - 2418: 0xB826, - 2419: 0xB827, - 2420: 0xB829, - 2421: 0xB82A, - 2422: 0xB82B, - 2423: 0xB82D, - 2424: 0xB82E, - 2425: 0xB82F, - 2426: 0xB830, - 2427: 0xB831, - 2428: 0xB832, - 2429: 0xB833, - 2430: 0xB836, - 2431: 0xB83A, - 2432: 0xB83B, - 2433: 0xB83C, - 2434: 0xB83D, - 2435: 0xB83E, - 2436: 0xB83F, - 2437: 0xB841, - 2438: 0xB842, - 2439: 0xB843, - 2440: 0xB845, - 2441: 0xB846, - 2442: 0xB847, - 2443: 0xB848, - 2444: 0xB849, - 2445: 0xB84A, - 2446: 0xB84B, - 2447: 0xB84C, - 2448: 0xB84D, - 2449: 0xB84E, - 2450: 0xB84F, - 2451: 0xB850, - 2452: 0xB852, - 2453: 0xB854, - 2454: 0xB855, - 2455: 0xB856, - 2456: 0xB857, - 2457: 0xB858, - 2458: 0xB859, - 2459: 0xB85A, - 2460: 0xB85B, - 2461: 0xB85E, - 2462: 0xB85F, - 2463: 0xB861, - 2464: 0xB862, - 2465: 0xB863, - 2466: 0xB865, - 2467: 0xB866, - 2468: 0xB867, - 2469: 0xB868, - 2470: 0xB869, - 2471: 0xB86A, - 2472: 0xB86B, - 2473: 0xB86E, - 2474: 0xB870, - 2475: 0xB872, - 2476: 0xB873, - 2477: 0xB874, - 2478: 0xB875, - 2479: 0xB876, - 2480: 0xB877, - 2481: 0xB879, - 2482: 0xB87A, - 2483: 0xB87B, - 2484: 0xB87D, - 2485: 0xB87E, - 2486: 0xB87F, - 2487: 0xB880, - 2488: 0xB881, - 2489: 0xB882, - 2490: 0xB883, - 2491: 0xB884, - 2492: 0xB885, - 2493: 0xB886, - 2494: 0xB887, - 2495: 0xB888, - 2496: 0xB889, - 2497: 0xB88A, - 2498: 0xB88B, - 2499: 0xB88C, - 2500: 0xB88E, - 2501: 0xB88F, - 2502: 0xB890, - 2503: 0xB891, - 2504: 0xB892, - 2505: 0xB893, - 2506: 0xB894, - 2507: 0xB895, - 2508: 0xB896, - 2509: 0xB897, - 2510: 0xB898, - 2511: 0xB899, - 2512: 0xB89A, - 2513: 0xB89B, - 2514: 0xB89C, - 2515: 0xB89D, - 2516: 0xB89E, - 2517: 0xB89F, - 2518: 0xB8A0, - 2519: 0xB8A1, - 2520: 0xB8A2, - 2521: 0xB8A3, - 2522: 0xB8A4, - 2523: 0xB8A5, - 2524: 0xB8A6, - 2525: 0xB8A7, - 2526: 0xB8A9, - 2527: 0xB8AA, - 2528: 0xB8AB, - 2529: 0xB8AC, - 2530: 0xB8AD, - 2531: 0xB8AE, - 2532: 0xB8AF, - 2533: 0xB8B1, - 2534: 0xB8B2, - 2535: 0xB8B3, - 2536: 0xB8B5, - 2537: 0xB8B6, - 2538: 0xB8B7, - 2539: 0xB8B9, - 2540: 0xB8BA, - 2541: 0xB8BB, - 2542: 0xB8BC, - 2543: 0xB8BD, - 2544: 0xB8BE, - 2545: 0xB8BF, - 2546: 0xB8C2, - 2547: 0xB8C4, - 2548: 0xB8C6, - 2549: 0xB8C7, - 2550: 0xB8C8, - 2551: 0xB8C9, - 2552: 0xB8CA, - 2553: 0xB8CB, - 2554: 0xB8CD, - 2555: 0xB8CE, - 2556: 0xB8CF, - 2557: 0xB8D1, - 2558: 0xB8D2, - 2559: 0xB8D3, - 2560: 0xB8D5, - 2561: 0xB8D6, - 2562: 0xB8D7, - 2563: 0xB8D8, - 2564: 0xB8D9, - 2565: 0xB8DA, - 2566: 0xB8DB, - 2567: 0xB8DC, - 2568: 0xB8DE, - 2569: 0xB8E0, - 2570: 0xB8E2, - 2571: 0xB8E3, - 2572: 0xB8E4, - 2573: 0xB8E5, - 2574: 0xB8E6, - 2575: 0xB8E7, - 2576: 0xB8EA, - 2577: 0xB8EB, - 2578: 0xB8ED, - 2579: 0xB8EE, - 2580: 0xB8EF, - 2581: 0xB8F1, - 2582: 0xB8F2, - 2583: 0xB8F3, - 2584: 0xB8F4, - 2585: 0xB8F5, - 2586: 0xB8F6, - 2587: 0xB8F7, - 2588: 0xB8FA, - 2589: 0xB8FC, - 2590: 0xB8FE, - 2591: 0xB8FF, - 2592: 0xB900, - 2593: 0xB901, - 2594: 0xB902, - 2595: 0xB903, - 2596: 0xB905, - 2597: 0xB906, - 2598: 0xB907, - 2599: 0xB908, - 2600: 0xB909, - 2601: 0xB90A, - 2602: 0xB90B, - 2603: 0xB90C, - 2604: 0xB90D, - 2605: 0xB90E, - 2606: 0xB90F, - 2607: 0xB910, - 2608: 0xB911, - 2609: 0xB912, - 2610: 0xB913, - 2611: 0xB914, - 2612: 0xB915, - 2613: 0xB916, - 2614: 0xB917, - 2615: 0xB919, - 2616: 0xB91A, - 2617: 0xB91B, - 2618: 0xB91C, - 2619: 0xB91D, - 2620: 0xB91E, - 2621: 0xB91F, - 2622: 0xB921, - 2623: 0xB922, - 2624: 0xB923, - 2625: 0xB924, - 2626: 0xB925, - 2627: 0xB926, - 2628: 0xB927, - 2629: 0xB928, - 2630: 0xB929, - 2631: 0xB92A, - 2632: 0xB92B, - 2633: 0xB92C, - 2634: 0xB92D, - 2635: 0xB92E, - 2636: 0xB92F, - 2637: 0xB930, - 2638: 0xB931, - 2639: 0xB932, - 2640: 0xB933, - 2641: 0xB934, - 2642: 0xB935, - 2643: 0xB936, - 2644: 0xB937, - 2645: 0xB938, - 2646: 0xB939, - 2647: 0xB93A, - 2648: 0xB93B, - 2649: 0xB93E, - 2650: 0xB93F, - 2651: 0xB941, - 2652: 0xB942, - 2653: 0xB943, - 2654: 0xB945, - 2655: 0xB946, - 2656: 0xB947, - 2657: 0xB948, - 2658: 0xB949, - 2659: 0xB94A, - 2660: 0xB94B, - 2661: 0xB94D, - 2662: 0xB94E, - 2663: 0xB950, - 2664: 0xB952, - 2665: 0xB953, - 2666: 0xB954, - 2667: 0xB955, - 2668: 0xB956, - 2669: 0xB957, - 2670: 0xB95A, - 2671: 0xB95B, - 2672: 0xB95D, - 2673: 0xB95E, - 2674: 0xB95F, - 2675: 0xB961, - 2676: 0xB962, - 2677: 0xB963, - 2678: 0xB964, - 2679: 0xB965, - 2680: 0xB966, - 2681: 0xB967, - 2682: 0xB96A, - 2683: 0xB96C, - 2684: 0xB96E, - 2685: 0xB96F, - 2686: 0xB970, - 2687: 0xB971, - 2688: 0xB972, - 2689: 0xB973, - 2690: 0xB976, - 2691: 0xB977, - 2692: 0xB979, - 2693: 0xB97A, - 2694: 0xB97B, - 2695: 0xB97D, - 2696: 0xB97E, - 2697: 0xB97F, - 2698: 0xB980, - 2699: 0xB981, - 2700: 0xB982, - 2701: 0xB983, - 2702: 0xB986, - 2703: 0xB988, - 2704: 0xB98B, - 2705: 0xB98C, - 2706: 0xB98F, - 2707: 0xB990, - 2708: 0xB991, - 2709: 0xB992, - 2710: 0xB993, - 2711: 0xB994, - 2712: 0xB995, - 2713: 0xB996, - 2714: 0xB997, - 2715: 0xB998, - 2716: 0xB999, - 2717: 0xB99A, - 2718: 0xB99B, - 2719: 0xB99C, - 2720: 0xB99D, - 2721: 0xB99E, - 2722: 0xB99F, - 2723: 0xB9A0, - 2724: 0xB9A1, - 2725: 0xB9A2, - 2726: 0xB9A3, - 2727: 0xB9A4, - 2728: 0xB9A5, - 2729: 0xB9A6, - 2730: 0xB9A7, - 2731: 0xB9A8, - 2732: 0xB9A9, - 2733: 0xB9AA, - 2734: 0xB9AB, - 2735: 0xB9AE, - 2736: 0xB9AF, - 2737: 0xB9B1, - 2738: 0xB9B2, - 2739: 0xB9B3, - 2740: 0xB9B5, - 2741: 0xB9B6, - 2742: 0xB9B7, - 2743: 0xB9B8, - 2744: 0xB9B9, - 2745: 0xB9BA, - 2746: 0xB9BB, - 2747: 0xB9BE, - 2748: 0xB9C0, - 2749: 0xB9C2, - 2750: 0xB9C3, - 2751: 0xB9C4, - 2752: 0xB9C5, - 2753: 0xB9C6, - 2754: 0xB9C7, - 2755: 0xB9CA, - 2756: 0xB9CB, - 2757: 0xB9CD, - 2758: 0xB9D3, - 2759: 0xB9D4, - 2760: 0xB9D5, - 2761: 0xB9D6, - 2762: 0xB9D7, - 2763: 0xB9DA, - 2764: 0xB9DC, - 2765: 0xB9DF, - 2766: 0xB9E0, - 2767: 0xB9E2, - 2768: 0xB9E6, - 2769: 0xB9E7, - 2770: 0xB9E9, - 2771: 0xB9EA, - 2772: 0xB9EB, - 2773: 0xB9ED, - 2774: 0xB9EE, - 2775: 0xB9EF, - 2776: 0xB9F0, - 2777: 0xB9F1, - 2778: 0xB9F2, - 2779: 0xB9F3, - 2780: 0xB9F6, - 2781: 0xB9FB, - 2782: 0xB9FC, - 2783: 0xB9FD, - 2784: 0xB9FE, - 2785: 0xB9FF, - 2786: 0xBA02, - 2787: 0xBA03, - 2788: 0xBA04, - 2789: 0xBA05, - 2790: 0xBA06, - 2791: 0xBA07, - 2792: 0xBA09, - 2793: 0xBA0A, - 2794: 0xBA0B, - 2795: 0xBA0C, - 2796: 0xBA0D, - 2797: 0xBA0E, - 2798: 0xBA0F, - 2799: 0xBA10, - 2800: 0xBA11, - 2801: 0xBA12, - 2802: 0xBA13, - 2803: 0xBA14, - 2804: 0xBA16, - 2805: 0xBA17, - 2806: 0xBA18, - 2807: 0xBA19, - 2808: 0xBA1A, - 2809: 0xBA1B, - 2810: 0xBA1C, - 2811: 0xBA1D, - 2812: 0xBA1E, - 2813: 0xBA1F, - 2814: 0xBA20, - 2815: 0xBA21, - 2816: 0xBA22, - 2817: 0xBA23, - 2818: 0xBA24, - 2819: 0xBA25, - 2820: 0xBA26, - 2821: 0xBA27, - 2822: 0xBA28, - 2823: 0xBA29, - 2824: 0xBA2A, - 2825: 0xBA2B, - 2826: 0xBA2C, - 2827: 0xBA2D, - 2828: 0xBA2E, - 2829: 0xBA2F, - 2830: 0xBA30, - 2831: 0xBA31, - 2832: 0xBA32, - 2833: 0xBA33, - 2834: 0xBA34, - 2835: 0xBA35, - 2836: 0xBA36, - 2837: 0xBA37, - 2838: 0xBA3A, - 2839: 0xBA3B, - 2840: 0xBA3D, - 2841: 0xBA3E, - 2842: 0xBA3F, - 2843: 0xBA41, - 2844: 0xBA43, - 2845: 0xBA44, - 2846: 0xBA45, - 2847: 0xBA46, - 2848: 0xBA47, - 2849: 0xBA4A, - 2850: 0xBA4C, - 2851: 0xBA4F, - 2852: 0xBA50, - 2853: 0xBA51, - 2854: 0xBA52, - 2855: 0xBA56, - 2856: 0xBA57, - 2857: 0xBA59, - 2858: 0xBA5A, - 2859: 0xBA5B, - 2860: 0xBA5D, - 2861: 0xBA5E, - 2862: 0xBA5F, - 2863: 0xBA60, - 2864: 0xBA61, - 2865: 0xBA62, - 2866: 0xBA63, - 2867: 0xBA66, - 2868: 0xBA6A, - 2869: 0xBA6B, - 2870: 0xBA6C, - 2871: 0xBA6D, - 2872: 0xBA6E, - 2873: 0xBA6F, - 2874: 0xBA72, - 2875: 0xBA73, - 2876: 0xBA75, - 2877: 0xBA76, - 2878: 0xBA77, - 2879: 0xBA79, - 2880: 0xBA7A, - 2881: 0xBA7B, - 2882: 0xBA7C, - 2883: 0xBA7D, - 2884: 0xBA7E, - 2885: 0xBA7F, - 2886: 0xBA80, - 2887: 0xBA81, - 2888: 0xBA82, - 2889: 0xBA86, - 2890: 0xBA88, - 2891: 0xBA89, - 2892: 0xBA8A, - 2893: 0xBA8B, - 2894: 0xBA8D, - 2895: 0xBA8E, - 2896: 0xBA8F, - 2897: 0xBA90, - 2898: 0xBA91, - 2899: 0xBA92, - 2900: 0xBA93, - 2901: 0xBA94, - 2902: 0xBA95, - 2903: 0xBA96, - 2904: 0xBA97, - 2905: 0xBA98, - 2906: 0xBA99, - 2907: 0xBA9A, - 2908: 0xBA9B, - 2909: 0xBA9C, - 2910: 0xBA9D, - 2911: 0xBA9E, - 2912: 0xBA9F, - 2913: 0xBAA0, - 2914: 0xBAA1, - 2915: 0xBAA2, - 2916: 0xBAA3, - 2917: 0xBAA4, - 2918: 0xBAA5, - 2919: 0xBAA6, - 2920: 0xBAA7, - 2921: 0xBAAA, - 2922: 0xBAAD, - 2923: 0xBAAE, - 2924: 0xBAAF, - 2925: 0xBAB1, - 2926: 0xBAB3, - 2927: 0xBAB4, - 2928: 0xBAB5, - 2929: 0xBAB6, - 2930: 0xBAB7, - 2931: 0xBABA, - 2932: 0xBABC, - 2933: 0xBABE, - 2934: 0xBABF, - 2935: 0xBAC0, - 2936: 0xBAC1, - 2937: 0xBAC2, - 2938: 0xBAC3, - 2939: 0xBAC5, - 2940: 0xBAC6, - 2941: 0xBAC7, - 2942: 0xBAC9, - 2943: 0xBACA, - 2944: 0xBACB, - 2945: 0xBACC, - 2946: 0xBACD, - 2947: 0xBACE, - 2948: 0xBACF, - 2949: 0xBAD0, - 2950: 0xBAD1, - 2951: 0xBAD2, - 2952: 0xBAD3, - 2953: 0xBAD4, - 2954: 0xBAD5, - 2955: 0xBAD6, - 2956: 0xBAD7, - 2957: 0xBADA, - 2958: 0xBADB, - 2959: 0xBADC, - 2960: 0xBADD, - 2961: 0xBADE, - 2962: 0xBADF, - 2963: 0xBAE0, - 2964: 0xBAE1, - 2965: 0xBAE2, - 2966: 0xBAE3, - 2967: 0xBAE4, - 2968: 0xBAE5, - 2969: 0xBAE6, - 2970: 0xBAE7, - 2971: 0xBAE8, - 2972: 0xBAE9, - 2973: 0xBAEA, - 2974: 0xBAEB, - 2975: 0xBAEC, - 2976: 0xBAED, - 2977: 0xBAEE, - 2978: 0xBAEF, - 2979: 0xBAF0, - 2980: 0xBAF1, - 2981: 0xBAF2, - 2982: 0xBAF3, - 2983: 0xBAF4, - 2984: 0xBAF5, - 2985: 0xBAF6, - 2986: 0xBAF7, - 2987: 0xBAF8, - 2988: 0xBAF9, - 2989: 0xBAFA, - 2990: 0xBAFB, - 2991: 0xBAFD, - 2992: 0xBAFE, - 2993: 0xBAFF, - 2994: 0xBB01, - 2995: 0xBB02, - 2996: 0xBB03, - 2997: 0xBB05, - 2998: 0xBB06, - 2999: 0xBB07, - 3000: 0xBB08, - 3001: 0xBB09, - 3002: 0xBB0A, - 3003: 0xBB0B, - 3004: 0xBB0C, - 3005: 0xBB0E, - 3006: 0xBB10, - 3007: 0xBB12, - 3008: 0xBB13, - 3009: 0xBB14, - 3010: 0xBB15, - 3011: 0xBB16, - 3012: 0xBB17, - 3013: 0xBB19, - 3014: 0xBB1A, - 3015: 0xBB1B, - 3016: 0xBB1D, - 3017: 0xBB1E, - 3018: 0xBB1F, - 3019: 0xBB21, - 3020: 0xBB22, - 3021: 0xBB23, - 3022: 0xBB24, - 3023: 0xBB25, - 3024: 0xBB26, - 3025: 0xBB27, - 3026: 0xBB28, - 3027: 0xBB2A, - 3028: 0xBB2C, - 3029: 0xBB2D, - 3030: 0xBB2E, - 3031: 0xBB2F, - 3032: 0xBB30, - 3033: 0xBB31, - 3034: 0xBB32, - 3035: 0xBB33, - 3036: 0xBB37, - 3037: 0xBB39, - 3038: 0xBB3A, - 3039: 0xBB3F, - 3040: 0xBB40, - 3041: 0xBB41, - 3042: 0xBB42, - 3043: 0xBB43, - 3044: 0xBB46, - 3045: 0xBB48, - 3046: 0xBB4A, - 3047: 0xBB4B, - 3048: 0xBB4C, - 3049: 0xBB4E, - 3050: 0xBB51, - 3051: 0xBB52, - 3052: 0xBB53, - 3053: 0xBB55, - 3054: 0xBB56, - 3055: 0xBB57, - 3056: 0xBB59, - 3057: 0xBB5A, - 3058: 0xBB5B, - 3059: 0xBB5C, - 3060: 0xBB5D, - 3061: 0xBB5E, - 3062: 0xBB5F, - 3063: 0xBB60, - 3064: 0xBB62, - 3065: 0xBB64, - 3066: 0xBB65, - 3067: 0xBB66, - 3068: 0xBB67, - 3069: 0xBB68, - 3070: 0xBB69, - 3071: 0xBB6A, - 3072: 0xBB6B, - 3073: 0xBB6D, - 3074: 0xBB6E, - 3075: 0xBB6F, - 3076: 0xBB70, - 3077: 0xBB71, - 3078: 0xBB72, - 3079: 0xBB73, - 3080: 0xBB74, - 3081: 0xBB75, - 3082: 0xBB76, - 3083: 0xBB77, - 3084: 0xBB78, - 3085: 0xBB79, - 3086: 0xBB7A, - 3087: 0xBB7B, - 3088: 0xBB7C, - 3089: 0xBB7D, - 3090: 0xBB7E, - 3091: 0xBB7F, - 3092: 0xBB80, - 3093: 0xBB81, - 3094: 0xBB82, - 3095: 0xBB83, - 3096: 0xBB84, - 3097: 0xBB85, - 3098: 0xBB86, - 3099: 0xBB87, - 3100: 0xBB89, - 3101: 0xBB8A, - 3102: 0xBB8B, - 3103: 0xBB8D, - 3104: 0xBB8E, - 3105: 0xBB8F, - 3106: 0xBB91, - 3107: 0xBB92, - 3108: 0xBB93, - 3109: 0xBB94, - 3110: 0xBB95, - 3111: 0xBB96, - 3112: 0xBB97, - 3113: 0xBB98, - 3114: 0xBB99, - 3115: 0xBB9A, - 3116: 0xBB9B, - 3117: 0xBB9C, - 3118: 0xBB9D, - 3119: 0xBB9E, - 3120: 0xBB9F, - 3121: 0xBBA0, - 3122: 0xBBA1, - 3123: 0xBBA2, - 3124: 0xBBA3, - 3125: 0xBBA5, - 3126: 0xBBA6, - 3127: 0xBBA7, - 3128: 0xBBA9, - 3129: 0xBBAA, - 3130: 0xBBAB, - 3131: 0xBBAD, - 3132: 0xBBAE, - 3133: 0xBBAF, - 3134: 0xBBB0, - 3135: 0xBBB1, - 3136: 0xBBB2, - 3137: 0xBBB3, - 3138: 0xBBB5, - 3139: 0xBBB6, - 3140: 0xBBB8, - 3141: 0xBBB9, - 3142: 0xBBBA, - 3143: 0xBBBB, - 3144: 0xBBBC, - 3145: 0xBBBD, - 3146: 0xBBBE, - 3147: 0xBBBF, - 3148: 0xBBC1, - 3149: 0xBBC2, - 3150: 0xBBC3, - 3151: 0xBBC5, - 3152: 0xBBC6, - 3153: 0xBBC7, - 3154: 0xBBC9, - 3155: 0xBBCA, - 3156: 0xBBCB, - 3157: 0xBBCC, - 3158: 0xBBCD, - 3159: 0xBBCE, - 3160: 0xBBCF, - 3161: 0xBBD1, - 3162: 0xBBD2, - 3163: 0xBBD4, - 3164: 0xBBD5, - 3165: 0xBBD6, - 3166: 0xBBD7, - 3167: 0xBBD8, - 3168: 0xBBD9, - 3169: 0xBBDA, - 3170: 0xBBDB, - 3171: 0xBBDC, - 3172: 0xBBDD, - 3173: 0xBBDE, - 3174: 0xBBDF, - 3175: 0xBBE0, - 3176: 0xBBE1, - 3177: 0xBBE2, - 3178: 0xBBE3, - 3179: 0xBBE4, - 3180: 0xBBE5, - 3181: 0xBBE6, - 3182: 0xBBE7, - 3183: 0xBBE8, - 3184: 0xBBE9, - 3185: 0xBBEA, - 3186: 0xBBEB, - 3187: 0xBBEC, - 3188: 0xBBED, - 3189: 0xBBEE, - 3190: 0xBBEF, - 3191: 0xBBF0, - 3192: 0xBBF1, - 3193: 0xBBF2, - 3194: 0xBBF3, - 3195: 0xBBF4, - 3196: 0xBBF5, - 3197: 0xBBF6, - 3198: 0xBBF7, - 3199: 0xBBFA, - 3200: 0xBBFB, - 3201: 0xBBFD, - 3202: 0xBBFE, - 3203: 0xBC01, - 3204: 0xBC03, - 3205: 0xBC04, - 3206: 0xBC05, - 3207: 0xBC06, - 3208: 0xBC07, - 3209: 0xBC0A, - 3210: 0xBC0E, - 3211: 0xBC10, - 3212: 0xBC12, - 3213: 0xBC13, - 3214: 0xBC19, - 3215: 0xBC1A, - 3216: 0xBC20, - 3217: 0xBC21, - 3218: 0xBC22, - 3219: 0xBC23, - 3220: 0xBC26, - 3221: 0xBC28, - 3222: 0xBC2A, - 3223: 0xBC2B, - 3224: 0xBC2C, - 3225: 0xBC2E, - 3226: 0xBC2F, - 3227: 0xBC32, - 3228: 0xBC33, - 3229: 0xBC35, - 3230: 0xBC36, - 3231: 0xBC37, - 3232: 0xBC39, - 3233: 0xBC3A, - 3234: 0xBC3B, - 3235: 0xBC3C, - 3236: 0xBC3D, - 3237: 0xBC3E, - 3238: 0xBC3F, - 3239: 0xBC42, - 3240: 0xBC46, - 3241: 0xBC47, - 3242: 0xBC48, - 3243: 0xBC4A, - 3244: 0xBC4B, - 3245: 0xBC4E, - 3246: 0xBC4F, - 3247: 0xBC51, - 3248: 0xBC52, - 3249: 0xBC53, - 3250: 0xBC54, - 3251: 0xBC55, - 3252: 0xBC56, - 3253: 0xBC57, - 3254: 0xBC58, - 3255: 0xBC59, - 3256: 0xBC5A, - 3257: 0xBC5B, - 3258: 0xBC5C, - 3259: 0xBC5E, - 3260: 0xBC5F, - 3261: 0xBC60, - 3262: 0xBC61, - 3263: 0xBC62, - 3264: 0xBC63, - 3265: 0xBC64, - 3266: 0xBC65, - 3267: 0xBC66, - 3268: 0xBC67, - 3269: 0xBC68, - 3270: 0xBC69, - 3271: 0xBC6A, - 3272: 0xBC6B, - 3273: 0xBC6C, - 3274: 0xBC6D, - 3275: 0xBC6E, - 3276: 0xBC6F, - 3277: 0xBC70, - 3278: 0xBC71, - 3279: 0xBC72, - 3280: 0xBC73, - 3281: 0xBC74, - 3282: 0xBC75, - 3283: 0xBC76, - 3284: 0xBC77, - 3285: 0xBC78, - 3286: 0xBC79, - 3287: 0xBC7A, - 3288: 0xBC7B, - 3289: 0xBC7C, - 3290: 0xBC7D, - 3291: 0xBC7E, - 3292: 0xBC7F, - 3293: 0xBC80, - 3294: 0xBC81, - 3295: 0xBC82, - 3296: 0xBC83, - 3297: 0xBC86, - 3298: 0xBC87, - 3299: 0xBC89, - 3300: 0xBC8A, - 3301: 0xBC8D, - 3302: 0xBC8F, - 3303: 0xBC90, - 3304: 0xBC91, - 3305: 0xBC92, - 3306: 0xBC93, - 3307: 0xBC96, - 3308: 0xBC98, - 3309: 0xBC9B, - 3310: 0xBC9C, - 3311: 0xBC9D, - 3312: 0xBC9E, - 3313: 0xBC9F, - 3314: 0xBCA2, - 3315: 0xBCA3, - 3316: 0xBCA5, - 3317: 0xBCA6, - 3318: 0xBCA9, - 3319: 0xBCAA, - 3320: 0xBCAB, - 3321: 0xBCAC, - 3322: 0xBCAD, - 3323: 0xBCAE, - 3324: 0xBCAF, - 3325: 0xBCB2, - 3326: 0xBCB6, - 3327: 0xBCB7, - 3328: 0xBCB8, - 3329: 0xBCB9, - 3330: 0xBCBA, - 3331: 0xBCBB, - 3332: 0xBCBE, - 3333: 0xBCBF, - 3334: 0xBCC1, - 3335: 0xBCC2, - 3336: 0xBCC3, - 3337: 0xBCC5, - 3338: 0xBCC6, - 3339: 0xBCC7, - 3340: 0xBCC8, - 3341: 0xBCC9, - 3342: 0xBCCA, - 3343: 0xBCCB, - 3344: 0xBCCC, - 3345: 0xBCCE, - 3346: 0xBCD2, - 3347: 0xBCD3, - 3348: 0xBCD4, - 3349: 0xBCD6, - 3350: 0xBCD7, - 3351: 0xBCD9, - 3352: 0xBCDA, - 3353: 0xBCDB, - 3354: 0xBCDD, - 3355: 0xBCDE, - 3356: 0xBCDF, - 3357: 0xBCE0, - 3358: 0xBCE1, - 3359: 0xBCE2, - 3360: 0xBCE3, - 3361: 0xBCE4, - 3362: 0xBCE5, - 3363: 0xBCE6, - 3364: 0xBCE7, - 3365: 0xBCE8, - 3366: 0xBCE9, - 3367: 0xBCEA, - 3368: 0xBCEB, - 3369: 0xBCEC, - 3370: 0xBCED, - 3371: 0xBCEE, - 3372: 0xBCEF, - 3373: 0xBCF0, - 3374: 0xBCF1, - 3375: 0xBCF2, - 3376: 0xBCF3, - 3377: 0xBCF7, - 3378: 0xBCF9, - 3379: 0xBCFA, - 3380: 0xBCFB, - 3381: 0xBCFD, - 3382: 0xBCFE, - 3383: 0xBCFF, - 3384: 0xBD00, - 3385: 0xBD01, - 3386: 0xBD02, - 3387: 0xBD03, - 3388: 0xBD06, - 3389: 0xBD08, - 3390: 0xBD0A, - 3391: 0xBD0B, - 3392: 0xBD0C, - 3393: 0xBD0D, - 3394: 0xBD0E, - 3395: 0xBD0F, - 3396: 0xBD11, - 3397: 0xBD12, - 3398: 0xBD13, - 3399: 0xBD15, - 3400: 0xBD16, - 3401: 0xBD17, - 3402: 0xBD18, - 3403: 0xBD19, - 3404: 0xBD1A, - 3405: 0xBD1B, - 3406: 0xBD1C, - 3407: 0xBD1D, - 3408: 0xBD1E, - 3409: 0xBD1F, - 3410: 0xBD20, - 3411: 0xBD21, - 3412: 0xBD22, - 3413: 0xBD23, - 3414: 0xBD25, - 3415: 0xBD26, - 3416: 0xBD27, - 3417: 0xBD28, - 3418: 0xBD29, - 3419: 0xBD2A, - 3420: 0xBD2B, - 3421: 0xBD2D, - 3422: 0xBD2E, - 3423: 0xBD2F, - 3424: 0xBD30, - 3425: 0xBD31, - 3426: 0xBD32, - 3427: 0xBD33, - 3428: 0xBD34, - 3429: 0xBD35, - 3430: 0xBD36, - 3431: 0xBD37, - 3432: 0xBD38, - 3433: 0xBD39, - 3434: 0xBD3A, - 3435: 0xBD3B, - 3436: 0xBD3C, - 3437: 0xBD3D, - 3438: 0xBD3E, - 3439: 0xBD3F, - 3440: 0xBD41, - 3441: 0xBD42, - 3442: 0xBD43, - 3443: 0xBD44, - 3444: 0xBD45, - 3445: 0xBD46, - 3446: 0xBD47, - 3447: 0xBD4A, - 3448: 0xBD4B, - 3449: 0xBD4D, - 3450: 0xBD4E, - 3451: 0xBD4F, - 3452: 0xBD51, - 3453: 0xBD52, - 3454: 0xBD53, - 3455: 0xBD54, - 3456: 0xBD55, - 3457: 0xBD56, - 3458: 0xBD57, - 3459: 0xBD5A, - 3460: 0xBD5B, - 3461: 0xBD5C, - 3462: 0xBD5D, - 3463: 0xBD5E, - 3464: 0xBD5F, - 3465: 0xBD60, - 3466: 0xBD61, - 3467: 0xBD62, - 3468: 0xBD63, - 3469: 0xBD65, - 3470: 0xBD66, - 3471: 0xBD67, - 3472: 0xBD69, - 3473: 0xBD6A, - 3474: 0xBD6B, - 3475: 0xBD6C, - 3476: 0xBD6D, - 3477: 0xBD6E, - 3478: 0xBD6F, - 3479: 0xBD70, - 3480: 0xBD71, - 3481: 0xBD72, - 3482: 0xBD73, - 3483: 0xBD74, - 3484: 0xBD75, - 3485: 0xBD76, - 3486: 0xBD77, - 3487: 0xBD78, - 3488: 0xBD79, - 3489: 0xBD7A, - 3490: 0xBD7B, - 3491: 0xBD7C, - 3492: 0xBD7D, - 3493: 0xBD7E, - 3494: 0xBD7F, - 3495: 0xBD82, - 3496: 0xBD83, - 3497: 0xBD85, - 3498: 0xBD86, - 3499: 0xBD8B, - 3500: 0xBD8C, - 3501: 0xBD8D, - 3502: 0xBD8E, - 3503: 0xBD8F, - 3504: 0xBD92, - 3505: 0xBD94, - 3506: 0xBD96, - 3507: 0xBD97, - 3508: 0xBD98, - 3509: 0xBD9B, - 3510: 0xBD9D, - 3511: 0xBD9E, - 3512: 0xBD9F, - 3513: 0xBDA0, - 3514: 0xBDA1, - 3515: 0xBDA2, - 3516: 0xBDA3, - 3517: 0xBDA5, - 3518: 0xBDA6, - 3519: 0xBDA7, - 3520: 0xBDA8, - 3521: 0xBDA9, - 3522: 0xBDAA, - 3523: 0xBDAB, - 3524: 0xBDAC, - 3525: 0xBDAD, - 3526: 0xBDAE, - 3527: 0xBDAF, - 3528: 0xBDB1, - 3529: 0xBDB2, - 3530: 0xBDB3, - 3531: 0xBDB4, - 3532: 0xBDB5, - 3533: 0xBDB6, - 3534: 0xBDB7, - 3535: 0xBDB9, - 3536: 0xBDBA, - 3537: 0xBDBB, - 3538: 0xBDBC, - 3539: 0xBDBD, - 3540: 0xBDBE, - 3541: 0xBDBF, - 3542: 0xBDC0, - 3543: 0xBDC1, - 3544: 0xBDC2, - 3545: 0xBDC3, - 3546: 0xBDC4, - 3547: 0xBDC5, - 3548: 0xBDC6, - 3549: 0xBDC7, - 3550: 0xBDC8, - 3551: 0xBDC9, - 3552: 0xBDCA, - 3553: 0xBDCB, - 3554: 0xBDCC, - 3555: 0xBDCD, - 3556: 0xBDCE, - 3557: 0xBDCF, - 3558: 0xBDD0, - 3559: 0xBDD1, - 3560: 0xBDD2, - 3561: 0xBDD3, - 3562: 0xBDD6, - 3563: 0xBDD7, - 3564: 0xBDD9, - 3565: 0xBDDA, - 3566: 0xBDDB, - 3567: 0xBDDD, - 3568: 0xBDDE, - 3569: 0xBDDF, - 3570: 0xBDE0, - 3571: 0xBDE1, - 3572: 0xBDE2, - 3573: 0xBDE3, - 3574: 0xBDE4, - 3575: 0xBDE5, - 3576: 0xBDE6, - 3577: 0xBDE7, - 3578: 0xBDE8, - 3579: 0xBDEA, - 3580: 0xBDEB, - 3581: 0xBDEC, - 3582: 0xBDED, - 3583: 0xBDEE, - 3584: 0xBDEF, - 3585: 0xBDF1, - 3586: 0xBDF2, - 3587: 0xBDF3, - 3588: 0xBDF5, - 3589: 0xBDF6, - 3590: 0xBDF7, - 3591: 0xBDF9, - 3592: 0xBDFA, - 3593: 0xBDFB, - 3594: 0xBDFC, - 3595: 0xBDFD, - 3596: 0xBDFE, - 3597: 0xBDFF, - 3598: 0xBE01, - 3599: 0xBE02, - 3600: 0xBE04, - 3601: 0xBE06, - 3602: 0xBE07, - 3603: 0xBE08, - 3604: 0xBE09, - 3605: 0xBE0A, - 3606: 0xBE0B, - 3607: 0xBE0E, - 3608: 0xBE0F, - 3609: 0xBE11, - 3610: 0xBE12, - 3611: 0xBE13, - 3612: 0xBE15, - 3613: 0xBE16, - 3614: 0xBE17, - 3615: 0xBE18, - 3616: 0xBE19, - 3617: 0xBE1A, - 3618: 0xBE1B, - 3619: 0xBE1E, - 3620: 0xBE20, - 3621: 0xBE21, - 3622: 0xBE22, - 3623: 0xBE23, - 3624: 0xBE24, - 3625: 0xBE25, - 3626: 0xBE26, - 3627: 0xBE27, - 3628: 0xBE28, - 3629: 0xBE29, - 3630: 0xBE2A, - 3631: 0xBE2B, - 3632: 0xBE2C, - 3633: 0xBE2D, - 3634: 0xBE2E, - 3635: 0xBE2F, - 3636: 0xBE30, - 3637: 0xBE31, - 3638: 0xBE32, - 3639: 0xBE33, - 3640: 0xBE34, - 3641: 0xBE35, - 3642: 0xBE36, - 3643: 0xBE37, - 3644: 0xBE38, - 3645: 0xBE39, - 3646: 0xBE3A, - 3647: 0xBE3B, - 3648: 0xBE3C, - 3649: 0xBE3D, - 3650: 0xBE3E, - 3651: 0xBE3F, - 3652: 0xBE40, - 3653: 0xBE41, - 3654: 0xBE42, - 3655: 0xBE43, - 3656: 0xBE46, - 3657: 0xBE47, - 3658: 0xBE49, - 3659: 0xBE4A, - 3660: 0xBE4B, - 3661: 0xBE4D, - 3662: 0xBE4F, - 3663: 0xBE50, - 3664: 0xBE51, - 3665: 0xBE52, - 3666: 0xBE53, - 3667: 0xBE56, - 3668: 0xBE58, - 3669: 0xBE5C, - 3670: 0xBE5D, - 3671: 0xBE5E, - 3672: 0xBE5F, - 3673: 0xBE62, - 3674: 0xBE63, - 3675: 0xBE65, - 3676: 0xBE66, - 3677: 0xBE67, - 3678: 0xBE69, - 3679: 0xBE6B, - 3680: 0xBE6C, - 3681: 0xBE6D, - 3682: 0xBE6E, - 3683: 0xBE6F, - 3684: 0xBE72, - 3685: 0xBE76, - 3686: 0xBE77, - 3687: 0xBE78, - 3688: 0xBE79, - 3689: 0xBE7A, - 3690: 0xBE7E, - 3691: 0xBE7F, - 3692: 0xBE81, - 3693: 0xBE82, - 3694: 0xBE83, - 3695: 0xBE85, - 3696: 0xBE86, - 3697: 0xBE87, - 3698: 0xBE88, - 3699: 0xBE89, - 3700: 0xBE8A, - 3701: 0xBE8B, - 3702: 0xBE8E, - 3703: 0xBE92, - 3704: 0xBE93, - 3705: 0xBE94, - 3706: 0xBE95, - 3707: 0xBE96, - 3708: 0xBE97, - 3709: 0xBE9A, - 3710: 0xBE9B, - 3711: 0xBE9C, - 3712: 0xBE9D, - 3713: 0xBE9E, - 3714: 0xBE9F, - 3715: 0xBEA0, - 3716: 0xBEA1, - 3717: 0xBEA2, - 3718: 0xBEA3, - 3719: 0xBEA4, - 3720: 0xBEA5, - 3721: 0xBEA6, - 3722: 0xBEA7, - 3723: 0xBEA9, - 3724: 0xBEAA, - 3725: 0xBEAB, - 3726: 0xBEAC, - 3727: 0xBEAD, - 3728: 0xBEAE, - 3729: 0xBEAF, - 3730: 0xBEB0, - 3731: 0xBEB1, - 3732: 0xBEB2, - 3733: 0xBEB3, - 3734: 0xBEB4, - 3735: 0xBEB5, - 3736: 0xBEB6, - 3737: 0xBEB7, - 3738: 0xBEB8, - 3739: 0xBEB9, - 3740: 0xBEBA, - 3741: 0xBEBB, - 3742: 0xBEBC, - 3743: 0xBEBD, - 3744: 0xBEBE, - 3745: 0xBEBF, - 3746: 0xBEC0, - 3747: 0xBEC1, - 3748: 0xBEC2, - 3749: 0xBEC3, - 3750: 0xBEC4, - 3751: 0xBEC5, - 3752: 0xBEC6, - 3753: 0xBEC7, - 3754: 0xBEC8, - 3755: 0xBEC9, - 3756: 0xBECA, - 3757: 0xBECB, - 3758: 0xBECC, - 3759: 0xBECD, - 3760: 0xBECE, - 3761: 0xBECF, - 3762: 0xBED2, - 3763: 0xBED3, - 3764: 0xBED5, - 3765: 0xBED6, - 3766: 0xBED9, - 3767: 0xBEDA, - 3768: 0xBEDB, - 3769: 0xBEDC, - 3770: 0xBEDD, - 3771: 0xBEDE, - 3772: 0xBEDF, - 3773: 0xBEE1, - 3774: 0xBEE2, - 3775: 0xBEE6, - 3776: 0xBEE7, - 3777: 0xBEE8, - 3778: 0xBEE9, - 3779: 0xBEEA, - 3780: 0xBEEB, - 3781: 0xBEED, - 3782: 0xBEEE, - 3783: 0xBEEF, - 3784: 0xBEF0, - 3785: 0xBEF1, - 3786: 0xBEF2, - 3787: 0xBEF3, - 3788: 0xBEF4, - 3789: 0xBEF5, - 3790: 0xBEF6, - 3791: 0xBEF7, - 3792: 0xBEF8, - 3793: 0xBEF9, - 3794: 0xBEFA, - 3795: 0xBEFB, - 3796: 0xBEFC, - 3797: 0xBEFD, - 3798: 0xBEFE, - 3799: 0xBEFF, - 3800: 0xBF00, - 3801: 0xBF02, - 3802: 0xBF03, - 3803: 0xBF04, - 3804: 0xBF05, - 3805: 0xBF06, - 3806: 0xBF07, - 3807: 0xBF0A, - 3808: 0xBF0B, - 3809: 0xBF0C, - 3810: 0xBF0D, - 3811: 0xBF0E, - 3812: 0xBF0F, - 3813: 0xBF10, - 3814: 0xBF11, - 3815: 0xBF12, - 3816: 0xBF13, - 3817: 0xBF14, - 3818: 0xBF15, - 3819: 0xBF16, - 3820: 0xBF17, - 3821: 0xBF1A, - 3822: 0xBF1E, - 3823: 0xBF1F, - 3824: 0xBF20, - 3825: 0xBF21, - 3826: 0xBF22, - 3827: 0xBF23, - 3828: 0xBF24, - 3829: 0xBF25, - 3830: 0xBF26, - 3831: 0xBF27, - 3832: 0xBF28, - 3833: 0xBF29, - 3834: 0xBF2A, - 3835: 0xBF2B, - 3836: 0xBF2C, - 3837: 0xBF2D, - 3838: 0xBF2E, - 3839: 0xBF2F, - 3840: 0xBF30, - 3841: 0xBF31, - 3842: 0xBF32, - 3843: 0xBF33, - 3844: 0xBF34, - 3845: 0xBF35, - 3846: 0xBF36, - 3847: 0xBF37, - 3848: 0xBF38, - 3849: 0xBF39, - 3850: 0xBF3A, - 3851: 0xBF3B, - 3852: 0xBF3C, - 3853: 0xBF3D, - 3854: 0xBF3E, - 3855: 0xBF3F, - 3856: 0xBF42, - 3857: 0xBF43, - 3858: 0xBF45, - 3859: 0xBF46, - 3860: 0xBF47, - 3861: 0xBF49, - 3862: 0xBF4A, - 3863: 0xBF4B, - 3864: 0xBF4C, - 3865: 0xBF4D, - 3866: 0xBF4E, - 3867: 0xBF4F, - 3868: 0xBF52, - 3869: 0xBF53, - 3870: 0xBF54, - 3871: 0xBF56, - 3872: 0xBF57, - 3873: 0xBF58, - 3874: 0xBF59, - 3875: 0xBF5A, - 3876: 0xBF5B, - 3877: 0xBF5C, - 3878: 0xBF5D, - 3879: 0xBF5E, - 3880: 0xBF5F, - 3881: 0xBF60, - 3882: 0xBF61, - 3883: 0xBF62, - 3884: 0xBF63, - 3885: 0xBF64, - 3886: 0xBF65, - 3887: 0xBF66, - 3888: 0xBF67, - 3889: 0xBF68, - 3890: 0xBF69, - 3891: 0xBF6A, - 3892: 0xBF6B, - 3893: 0xBF6C, - 3894: 0xBF6D, - 3895: 0xBF6E, - 3896: 0xBF6F, - 3897: 0xBF70, - 3898: 0xBF71, - 3899: 0xBF72, - 3900: 0xBF73, - 3901: 0xBF74, - 3902: 0xBF75, - 3903: 0xBF76, - 3904: 0xBF77, - 3905: 0xBF78, - 3906: 0xBF79, - 3907: 0xBF7A, - 3908: 0xBF7B, - 3909: 0xBF7C, - 3910: 0xBF7D, - 3911: 0xBF7E, - 3912: 0xBF7F, - 3913: 0xBF80, - 3914: 0xBF81, - 3915: 0xBF82, - 3916: 0xBF83, - 3917: 0xBF84, - 3918: 0xBF85, - 3919: 0xBF86, - 3920: 0xBF87, - 3921: 0xBF88, - 3922: 0xBF89, - 3923: 0xBF8A, - 3924: 0xBF8B, - 3925: 0xBF8C, - 3926: 0xBF8D, - 3927: 0xBF8E, - 3928: 0xBF8F, - 3929: 0xBF90, - 3930: 0xBF91, - 3931: 0xBF92, - 3932: 0xBF93, - 3933: 0xBF95, - 3934: 0xBF96, - 3935: 0xBF97, - 3936: 0xBF98, - 3937: 0xBF99, - 3938: 0xBF9A, - 3939: 0xBF9B, - 3940: 0xBF9C, - 3941: 0xBF9D, - 3942: 0xBF9E, - 3943: 0xBF9F, - 3944: 0xBFA0, - 3945: 0xBFA1, - 3946: 0xBFA2, - 3947: 0xBFA3, - 3948: 0xBFA4, - 3949: 0xBFA5, - 3950: 0xBFA6, - 3951: 0xBFA7, - 3952: 0xBFA8, - 3953: 0xBFA9, - 3954: 0xBFAA, - 3955: 0xBFAB, - 3956: 0xBFAC, - 3957: 0xBFAD, - 3958: 0xBFAE, - 3959: 0xBFAF, - 3960: 0xBFB1, - 3961: 0xBFB2, - 3962: 0xBFB3, - 3963: 0xBFB4, - 3964: 0xBFB5, - 3965: 0xBFB6, - 3966: 0xBFB7, - 3967: 0xBFB8, - 3968: 0xBFB9, - 3969: 0xBFBA, - 3970: 0xBFBB, - 3971: 0xBFBC, - 3972: 0xBFBD, - 3973: 0xBFBE, - 3974: 0xBFBF, - 3975: 0xBFC0, - 3976: 0xBFC1, - 3977: 0xBFC2, - 3978: 0xBFC3, - 3979: 0xBFC4, - 3980: 0xBFC6, - 3981: 0xBFC7, - 3982: 0xBFC8, - 3983: 0xBFC9, - 3984: 0xBFCA, - 3985: 0xBFCB, - 3986: 0xBFCE, - 3987: 0xBFCF, - 3988: 0xBFD1, - 3989: 0xBFD2, - 3990: 0xBFD3, - 3991: 0xBFD5, - 3992: 0xBFD6, - 3993: 0xBFD7, - 3994: 0xBFD8, - 3995: 0xBFD9, - 3996: 0xBFDA, - 3997: 0xBFDB, - 3998: 0xBFDD, - 3999: 0xBFDE, - 4000: 0xBFE0, - 4001: 0xBFE2, - 4002: 0xBFE3, - 4003: 0xBFE4, - 4004: 0xBFE5, - 4005: 0xBFE6, - 4006: 0xBFE7, - 4007: 0xBFE8, - 4008: 0xBFE9, - 4009: 0xBFEA, - 4010: 0xBFEB, - 4011: 0xBFEC, - 4012: 0xBFED, - 4013: 0xBFEE, - 4014: 0xBFEF, - 4015: 0xBFF0, - 4016: 0xBFF1, - 4017: 0xBFF2, - 4018: 0xBFF3, - 4019: 0xBFF4, - 4020: 0xBFF5, - 4021: 0xBFF6, - 4022: 0xBFF7, - 4023: 0xBFF8, - 4024: 0xBFF9, - 4025: 0xBFFA, - 4026: 0xBFFB, - 4027: 0xBFFC, - 4028: 0xBFFD, - 4029: 0xBFFE, - 4030: 0xBFFF, - 4031: 0xC000, - 4032: 0xC001, - 4033: 0xC002, - 4034: 0xC003, - 4035: 0xC004, - 4036: 0xC005, - 4037: 0xC006, - 4038: 0xC007, - 4039: 0xC008, - 4040: 0xC009, - 4041: 0xC00A, - 4042: 0xC00B, - 4043: 0xC00C, - 4044: 0xC00D, - 4045: 0xC00E, - 4046: 0xC00F, - 4047: 0xC010, - 4048: 0xC011, - 4049: 0xC012, - 4050: 0xC013, - 4051: 0xC014, - 4052: 0xC015, - 4053: 0xC016, - 4054: 0xC017, - 4055: 0xC018, - 4056: 0xC019, - 4057: 0xC01A, - 4058: 0xC01B, - 4059: 0xC01C, - 4060: 0xC01D, - 4061: 0xC01E, - 4062: 0xC01F, - 4063: 0xC020, - 4064: 0xC021, - 4065: 0xC022, - 4066: 0xC023, - 4067: 0xC024, - 4068: 0xC025, - 4069: 0xC026, - 4070: 0xC027, - 4071: 0xC028, - 4072: 0xC029, - 4073: 0xC02A, - 4074: 0xC02B, - 4075: 0xC02C, - 4076: 0xC02D, - 4077: 0xC02E, - 4078: 0xC02F, - 4079: 0xC030, - 4080: 0xC031, - 4081: 0xC032, - 4082: 0xC033, - 4083: 0xC034, - 4084: 0xC035, - 4085: 0xC036, - 4086: 0xC037, - 4087: 0xC038, - 4088: 0xC039, - 4089: 0xC03A, - 4090: 0xC03B, - 4091: 0xC03D, - 4092: 0xC03E, - 4093: 0xC03F, - 4094: 0xC040, - 4095: 0xC041, - 4096: 0xC042, - 4097: 0xC043, - 4098: 0xC044, - 4099: 0xC045, - 4100: 0xC046, - 4101: 0xC047, - 4102: 0xC048, - 4103: 0xC049, - 4104: 0xC04A, - 4105: 0xC04B, - 4106: 0xC04C, - 4107: 0xC04D, - 4108: 0xC04E, - 4109: 0xC04F, - 4110: 0xC050, - 4111: 0xC052, - 4112: 0xC053, - 4113: 0xC054, - 4114: 0xC055, - 4115: 0xC056, - 4116: 0xC057, - 4117: 0xC059, - 4118: 0xC05A, - 4119: 0xC05B, - 4120: 0xC05D, - 4121: 0xC05E, - 4122: 0xC05F, - 4123: 0xC061, - 4124: 0xC062, - 4125: 0xC063, - 4126: 0xC064, - 4127: 0xC065, - 4128: 0xC066, - 4129: 0xC067, - 4130: 0xC06A, - 4131: 0xC06B, - 4132: 0xC06C, - 4133: 0xC06D, - 4134: 0xC06E, - 4135: 0xC06F, - 4136: 0xC070, - 4137: 0xC071, - 4138: 0xC072, - 4139: 0xC073, - 4140: 0xC074, - 4141: 0xC075, - 4142: 0xC076, - 4143: 0xC077, - 4144: 0xC078, - 4145: 0xC079, - 4146: 0xC07A, - 4147: 0xC07B, - 4148: 0xC07C, - 4149: 0xC07D, - 4150: 0xC07E, - 4151: 0xC07F, - 4152: 0xC080, - 4153: 0xC081, - 4154: 0xC082, - 4155: 0xC083, - 4156: 0xC084, - 4157: 0xC085, - 4158: 0xC086, - 4159: 0xC087, - 4160: 0xC088, - 4161: 0xC089, - 4162: 0xC08A, - 4163: 0xC08B, - 4164: 0xC08C, - 4165: 0xC08D, - 4166: 0xC08E, - 4167: 0xC08F, - 4168: 0xC092, - 4169: 0xC093, - 4170: 0xC095, - 4171: 0xC096, - 4172: 0xC097, - 4173: 0xC099, - 4174: 0xC09A, - 4175: 0xC09B, - 4176: 0xC09C, - 4177: 0xC09D, - 4178: 0xC09E, - 4179: 0xC09F, - 4180: 0xC0A2, - 4181: 0xC0A4, - 4182: 0xC0A6, - 4183: 0xC0A7, - 4184: 0xC0A8, - 4185: 0xC0A9, - 4186: 0xC0AA, - 4187: 0xC0AB, - 4188: 0xC0AE, - 4189: 0xC0B1, - 4190: 0xC0B2, - 4191: 0xC0B7, - 4192: 0xC0B8, - 4193: 0xC0B9, - 4194: 0xC0BA, - 4195: 0xC0BB, - 4196: 0xC0BE, - 4197: 0xC0C2, - 4198: 0xC0C3, - 4199: 0xC0C4, - 4200: 0xC0C6, - 4201: 0xC0C7, - 4202: 0xC0CA, - 4203: 0xC0CB, - 4204: 0xC0CD, - 4205: 0xC0CE, - 4206: 0xC0CF, - 4207: 0xC0D1, - 4208: 0xC0D2, - 4209: 0xC0D3, - 4210: 0xC0D4, - 4211: 0xC0D5, - 4212: 0xC0D6, - 4213: 0xC0D7, - 4214: 0xC0DA, - 4215: 0xC0DE, - 4216: 0xC0DF, - 4217: 0xC0E0, - 4218: 0xC0E1, - 4219: 0xC0E2, - 4220: 0xC0E3, - 4221: 0xC0E6, - 4222: 0xC0E7, - 4223: 0xC0E9, - 4224: 0xC0EA, - 4225: 0xC0EB, - 4226: 0xC0ED, - 4227: 0xC0EE, - 4228: 0xC0EF, - 4229: 0xC0F0, - 4230: 0xC0F1, - 4231: 0xC0F2, - 4232: 0xC0F3, - 4233: 0xC0F6, - 4234: 0xC0F8, - 4235: 0xC0FA, - 4236: 0xC0FB, - 4237: 0xC0FC, - 4238: 0xC0FD, - 4239: 0xC0FE, - 4240: 0xC0FF, - 4241: 0xC101, - 4242: 0xC102, - 4243: 0xC103, - 4244: 0xC105, - 4245: 0xC106, - 4246: 0xC107, - 4247: 0xC109, - 4248: 0xC10A, - 4249: 0xC10B, - 4250: 0xC10C, - 4251: 0xC10D, - 4252: 0xC10E, - 4253: 0xC10F, - 4254: 0xC111, - 4255: 0xC112, - 4256: 0xC113, - 4257: 0xC114, - 4258: 0xC116, - 4259: 0xC117, - 4260: 0xC118, - 4261: 0xC119, - 4262: 0xC11A, - 4263: 0xC11B, - 4264: 0xC121, - 4265: 0xC122, - 4266: 0xC125, - 4267: 0xC128, - 4268: 0xC129, - 4269: 0xC12A, - 4270: 0xC12B, - 4271: 0xC12E, - 4272: 0xC132, - 4273: 0xC133, - 4274: 0xC134, - 4275: 0xC135, - 4276: 0xC137, - 4277: 0xC13A, - 4278: 0xC13B, - 4279: 0xC13D, - 4280: 0xC13E, - 4281: 0xC13F, - 4282: 0xC141, - 4283: 0xC142, - 4284: 0xC143, - 4285: 0xC144, - 4286: 0xC145, - 4287: 0xC146, - 4288: 0xC147, - 4289: 0xC14A, - 4290: 0xC14E, - 4291: 0xC14F, - 4292: 0xC150, - 4293: 0xC151, - 4294: 0xC152, - 4295: 0xC153, - 4296: 0xC156, - 4297: 0xC157, - 4298: 0xC159, - 4299: 0xC15A, - 4300: 0xC15B, - 4301: 0xC15D, - 4302: 0xC15E, - 4303: 0xC15F, - 4304: 0xC160, - 4305: 0xC161, - 4306: 0xC162, - 4307: 0xC163, - 4308: 0xC166, - 4309: 0xC16A, - 4310: 0xC16B, - 4311: 0xC16C, - 4312: 0xC16D, - 4313: 0xC16E, - 4314: 0xC16F, - 4315: 0xC171, - 4316: 0xC172, - 4317: 0xC173, - 4318: 0xC175, - 4319: 0xC176, - 4320: 0xC177, - 4321: 0xC179, - 4322: 0xC17A, - 4323: 0xC17B, - 4324: 0xC17C, - 4325: 0xC17D, - 4326: 0xC17E, - 4327: 0xC17F, - 4328: 0xC180, - 4329: 0xC181, - 4330: 0xC182, - 4331: 0xC183, - 4332: 0xC184, - 4333: 0xC186, - 4334: 0xC187, - 4335: 0xC188, - 4336: 0xC189, - 4337: 0xC18A, - 4338: 0xC18B, - 4339: 0xC18F, - 4340: 0xC191, - 4341: 0xC192, - 4342: 0xC193, - 4343: 0xC195, - 4344: 0xC197, - 4345: 0xC198, - 4346: 0xC199, - 4347: 0xC19A, - 4348: 0xC19B, - 4349: 0xC19E, - 4350: 0xC1A0, - 4351: 0xC1A2, - 4352: 0xC1A3, - 4353: 0xC1A4, - 4354: 0xC1A6, - 4355: 0xC1A7, - 4356: 0xC1AA, - 4357: 0xC1AB, - 4358: 0xC1AD, - 4359: 0xC1AE, - 4360: 0xC1AF, - 4361: 0xC1B1, - 4362: 0xC1B2, - 4363: 0xC1B3, - 4364: 0xC1B4, - 4365: 0xC1B5, - 4366: 0xC1B6, - 4367: 0xC1B7, - 4368: 0xC1B8, - 4369: 0xC1B9, - 4370: 0xC1BA, - 4371: 0xC1BB, - 4372: 0xC1BC, - 4373: 0xC1BE, - 4374: 0xC1BF, - 4375: 0xC1C0, - 4376: 0xC1C1, - 4377: 0xC1C2, - 4378: 0xC1C3, - 4379: 0xC1C5, - 4380: 0xC1C6, - 4381: 0xC1C7, - 4382: 0xC1C9, - 4383: 0xC1CA, - 4384: 0xC1CB, - 4385: 0xC1CD, - 4386: 0xC1CE, - 4387: 0xC1CF, - 4388: 0xC1D0, - 4389: 0xC1D1, - 4390: 0xC1D2, - 4391: 0xC1D3, - 4392: 0xC1D5, - 4393: 0xC1D6, - 4394: 0xC1D9, - 4395: 0xC1DA, - 4396: 0xC1DB, - 4397: 0xC1DC, - 4398: 0xC1DD, - 4399: 0xC1DE, - 4400: 0xC1DF, - 4401: 0xC1E1, - 4402: 0xC1E2, - 4403: 0xC1E3, - 4404: 0xC1E5, - 4405: 0xC1E6, - 4406: 0xC1E7, - 4407: 0xC1E9, - 4408: 0xC1EA, - 4409: 0xC1EB, - 4410: 0xC1EC, - 4411: 0xC1ED, - 4412: 0xC1EE, - 4413: 0xC1EF, - 4414: 0xC1F2, - 4415: 0xC1F4, - 4416: 0xC1F5, - 4417: 0xC1F6, - 4418: 0xC1F7, - 4419: 0xC1F8, - 4420: 0xC1F9, - 4421: 0xC1FA, - 4422: 0xC1FB, - 4423: 0xC1FE, - 4424: 0xC1FF, - 4425: 0xC201, - 4426: 0xC202, - 4427: 0xC203, - 4428: 0xC205, - 4429: 0xC206, - 4430: 0xC207, - 4431: 0xC208, - 4432: 0xC209, - 4433: 0xC20A, - 4434: 0xC20B, - 4435: 0xC20E, - 4436: 0xC210, - 4437: 0xC212, - 4438: 0xC213, - 4439: 0xC214, - 4440: 0xC215, - 4441: 0xC216, - 4442: 0xC217, - 4443: 0xC21A, - 4444: 0xC21B, - 4445: 0xC21D, - 4446: 0xC21E, - 4447: 0xC221, - 4448: 0xC222, - 4449: 0xC223, - 4450: 0xC224, - 4451: 0xC225, - 4452: 0xC226, - 4453: 0xC227, - 4454: 0xC22A, - 4455: 0xC22C, - 4456: 0xC22E, - 4457: 0xC230, - 4458: 0xC233, - 4459: 0xC235, - 4460: 0xC236, - 4461: 0xC237, - 4462: 0xC238, - 4463: 0xC239, - 4464: 0xC23A, - 4465: 0xC23B, - 4466: 0xC23C, - 4467: 0xC23D, - 4468: 0xC23E, - 4469: 0xC23F, - 4470: 0xC240, - 4471: 0xC241, - 4472: 0xC242, - 4473: 0xC243, - 4474: 0xC244, - 4475: 0xC245, - 4476: 0xC246, - 4477: 0xC247, - 4478: 0xC249, - 4479: 0xC24A, - 4480: 0xC24B, - 4481: 0xC24C, - 4482: 0xC24D, - 4483: 0xC24E, - 4484: 0xC24F, - 4485: 0xC252, - 4486: 0xC253, - 4487: 0xC255, - 4488: 0xC256, - 4489: 0xC257, - 4490: 0xC259, - 4491: 0xC25A, - 4492: 0xC25B, - 4493: 0xC25C, - 4494: 0xC25D, - 4495: 0xC25E, - 4496: 0xC25F, - 4497: 0xC261, - 4498: 0xC262, - 4499: 0xC263, - 4500: 0xC264, - 4501: 0xC266, - 4502: 0xC267, - 4503: 0xC268, - 4504: 0xC269, - 4505: 0xC26A, - 4506: 0xC26B, - 4507: 0xC26E, - 4508: 0xC26F, - 4509: 0xC271, - 4510: 0xC272, - 4511: 0xC273, - 4512: 0xC275, - 4513: 0xC276, - 4514: 0xC277, - 4515: 0xC278, - 4516: 0xC279, - 4517: 0xC27A, - 4518: 0xC27B, - 4519: 0xC27E, - 4520: 0xC280, - 4521: 0xC282, - 4522: 0xC283, - 4523: 0xC284, - 4524: 0xC285, - 4525: 0xC286, - 4526: 0xC287, - 4527: 0xC28A, - 4528: 0xC28B, - 4529: 0xC28C, - 4530: 0xC28D, - 4531: 0xC28E, - 4532: 0xC28F, - 4533: 0xC291, - 4534: 0xC292, - 4535: 0xC293, - 4536: 0xC294, - 4537: 0xC295, - 4538: 0xC296, - 4539: 0xC297, - 4540: 0xC299, - 4541: 0xC29A, - 4542: 0xC29C, - 4543: 0xC29E, - 4544: 0xC29F, - 4545: 0xC2A0, - 4546: 0xC2A1, - 4547: 0xC2A2, - 4548: 0xC2A3, - 4549: 0xC2A6, - 4550: 0xC2A7, - 4551: 0xC2A9, - 4552: 0xC2AA, - 4553: 0xC2AB, - 4554: 0xC2AE, - 4555: 0xC2AF, - 4556: 0xC2B0, - 4557: 0xC2B1, - 4558: 0xC2B2, - 4559: 0xC2B3, - 4560: 0xC2B6, - 4561: 0xC2B8, - 4562: 0xC2BA, - 4563: 0xC2BB, - 4564: 0xC2BC, - 4565: 0xC2BD, - 4566: 0xC2BE, - 4567: 0xC2BF, - 4568: 0xC2C0, - 4569: 0xC2C1, - 4570: 0xC2C2, - 4571: 0xC2C3, - 4572: 0xC2C4, - 4573: 0xC2C5, - 4574: 0xC2C6, - 4575: 0xC2C7, - 4576: 0xC2C8, - 4577: 0xC2C9, - 4578: 0xC2CA, - 4579: 0xC2CB, - 4580: 0xC2CC, - 4581: 0xC2CD, - 4582: 0xC2CE, - 4583: 0xC2CF, - 4584: 0xC2D0, - 4585: 0xC2D1, - 4586: 0xC2D2, - 4587: 0xC2D3, - 4588: 0xC2D4, - 4589: 0xC2D5, - 4590: 0xC2D6, - 4591: 0xC2D7, - 4592: 0xC2D8, - 4593: 0xC2D9, - 4594: 0xC2DA, - 4595: 0xC2DB, - 4596: 0xC2DE, - 4597: 0xC2DF, - 4598: 0xC2E1, - 4599: 0xC2E2, - 4600: 0xC2E5, - 4601: 0xC2E6, - 4602: 0xC2E7, - 4603: 0xC2E8, - 4604: 0xC2E9, - 4605: 0xC2EA, - 4606: 0xC2EE, - 4607: 0xC2F0, - 4608: 0xC2F2, - 4609: 0xC2F3, - 4610: 0xC2F4, - 4611: 0xC2F5, - 4612: 0xC2F7, - 4613: 0xC2FA, - 4614: 0xC2FD, - 4615: 0xC2FE, - 4616: 0xC2FF, - 4617: 0xC301, - 4618: 0xC302, - 4619: 0xC303, - 4620: 0xC304, - 4621: 0xC305, - 4622: 0xC306, - 4623: 0xC307, - 4624: 0xC30A, - 4625: 0xC30B, - 4626: 0xC30E, - 4627: 0xC30F, - 4628: 0xC310, - 4629: 0xC311, - 4630: 0xC312, - 4631: 0xC316, - 4632: 0xC317, - 4633: 0xC319, - 4634: 0xC31A, - 4635: 0xC31B, - 4636: 0xC31D, - 4637: 0xC31E, - 4638: 0xC31F, - 4639: 0xC320, - 4640: 0xC321, - 4641: 0xC322, - 4642: 0xC323, - 4643: 0xC326, - 4644: 0xC327, - 4645: 0xC32A, - 4646: 0xC32B, - 4647: 0xC32C, - 4648: 0xC32D, - 4649: 0xC32E, - 4650: 0xC32F, - 4651: 0xC330, - 4652: 0xC331, - 4653: 0xC332, - 4654: 0xC333, - 4655: 0xC334, - 4656: 0xC335, - 4657: 0xC336, - 4658: 0xC337, - 4659: 0xC338, - 4660: 0xC339, - 4661: 0xC33A, - 4662: 0xC33B, - 4663: 0xC33C, - 4664: 0xC33D, - 4665: 0xC33E, - 4666: 0xC33F, - 4667: 0xC340, - 4668: 0xC341, - 4669: 0xC342, - 4670: 0xC343, - 4671: 0xC344, - 4672: 0xC346, - 4673: 0xC347, - 4674: 0xC348, - 4675: 0xC349, - 4676: 0xC34A, - 4677: 0xC34B, - 4678: 0xC34C, - 4679: 0xC34D, - 4680: 0xC34E, - 4681: 0xC34F, - 4682: 0xC350, - 4683: 0xC351, - 4684: 0xC352, - 4685: 0xC353, - 4686: 0xC354, - 4687: 0xC355, - 4688: 0xC356, - 4689: 0xC357, - 4690: 0xC358, - 4691: 0xC359, - 4692: 0xC35A, - 4693: 0xC35B, - 4694: 0xC35C, - 4695: 0xC35D, - 4696: 0xC35E, - 4697: 0xC35F, - 4698: 0xC360, - 4699: 0xC361, - 4700: 0xC362, - 4701: 0xC363, - 4702: 0xC364, - 4703: 0xC365, - 4704: 0xC366, - 4705: 0xC367, - 4706: 0xC36A, - 4707: 0xC36B, - 4708: 0xC36D, - 4709: 0xC36E, - 4710: 0xC36F, - 4711: 0xC371, - 4712: 0xC373, - 4713: 0xC374, - 4714: 0xC375, - 4715: 0xC376, - 4716: 0xC377, - 4717: 0xC37A, - 4718: 0xC37B, - 4719: 0xC37E, - 4720: 0xC37F, - 4721: 0xC380, - 4722: 0xC381, - 4723: 0xC382, - 4724: 0xC383, - 4725: 0xC385, - 4726: 0xC386, - 4727: 0xC387, - 4728: 0xC389, - 4729: 0xC38A, - 4730: 0xC38B, - 4731: 0xC38D, - 4732: 0xC38E, - 4733: 0xC38F, - 4734: 0xC390, - 4735: 0xC391, - 4736: 0xC392, - 4737: 0xC393, - 4738: 0xC394, - 4739: 0xC395, - 4740: 0xC396, - 4741: 0xC397, - 4742: 0xC398, - 4743: 0xC399, - 4744: 0xC39A, - 4745: 0xC39B, - 4746: 0xC39C, - 4747: 0xC39D, - 4748: 0xC39E, - 4749: 0xC39F, - 4750: 0xC3A0, - 4751: 0xC3A1, - 4752: 0xC3A2, - 4753: 0xC3A3, - 4754: 0xC3A4, - 4755: 0xC3A5, - 4756: 0xC3A6, - 4757: 0xC3A7, - 4758: 0xC3A8, - 4759: 0xC3A9, - 4760: 0xC3AA, - 4761: 0xC3AB, - 4762: 0xC3AC, - 4763: 0xC3AD, - 4764: 0xC3AE, - 4765: 0xC3AF, - 4766: 0xC3B0, - 4767: 0xC3B1, - 4768: 0xC3B2, - 4769: 0xC3B3, - 4770: 0xC3B4, - 4771: 0xC3B5, - 4772: 0xC3B6, - 4773: 0xC3B7, - 4774: 0xC3B8, - 4775: 0xC3B9, - 4776: 0xC3BA, - 4777: 0xC3BB, - 4778: 0xC3BC, - 4779: 0xC3BD, - 4780: 0xC3BE, - 4781: 0xC3BF, - 4782: 0xC3C1, - 4783: 0xC3C2, - 4784: 0xC3C3, - 4785: 0xC3C4, - 4786: 0xC3C5, - 4787: 0xC3C6, - 4788: 0xC3C7, - 4789: 0xC3C8, - 4790: 0xC3C9, - 4791: 0xC3CA, - 4792: 0xC3CB, - 4793: 0xC3CC, - 4794: 0xC3CD, - 4795: 0xC3CE, - 4796: 0xC3CF, - 4797: 0xC3D0, - 4798: 0xC3D1, - 4799: 0xC3D2, - 4800: 0xC3D3, - 4801: 0xC3D4, - 4802: 0xC3D5, - 4803: 0xC3D6, - 4804: 0xC3D7, - 4805: 0xC3DA, - 4806: 0xC3DB, - 4807: 0xC3DD, - 4808: 0xC3DE, - 4809: 0xC3E1, - 4810: 0xC3E3, - 4811: 0xC3E4, - 4812: 0xC3E5, - 4813: 0xC3E6, - 4814: 0xC3E7, - 4815: 0xC3EA, - 4816: 0xC3EB, - 4817: 0xC3EC, - 4818: 0xC3EE, - 4819: 0xC3EF, - 4820: 0xC3F0, - 4821: 0xC3F1, - 4822: 0xC3F2, - 4823: 0xC3F3, - 4824: 0xC3F6, - 4825: 0xC3F7, - 4826: 0xC3F9, - 4827: 0xC3FA, - 4828: 0xC3FB, - 4829: 0xC3FC, - 4830: 0xC3FD, - 4831: 0xC3FE, - 4832: 0xC3FF, - 4833: 0xC400, - 4834: 0xC401, - 4835: 0xC402, - 4836: 0xC403, - 4837: 0xC404, - 4838: 0xC405, - 4839: 0xC406, - 4840: 0xC407, - 4841: 0xC409, - 4842: 0xC40A, - 4843: 0xC40B, - 4844: 0xC40C, - 4845: 0xC40D, - 4846: 0xC40E, - 4847: 0xC40F, - 4848: 0xC411, - 4849: 0xC412, - 4850: 0xC413, - 4851: 0xC414, - 4852: 0xC415, - 4853: 0xC416, - 4854: 0xC417, - 4855: 0xC418, - 4856: 0xC419, - 4857: 0xC41A, - 4858: 0xC41B, - 4859: 0xC41C, - 4860: 0xC41D, - 4861: 0xC41E, - 4862: 0xC41F, - 4863: 0xC420, - 4864: 0xC421, - 4865: 0xC422, - 4866: 0xC423, - 4867: 0xC425, - 4868: 0xC426, - 4869: 0xC427, - 4870: 0xC428, - 4871: 0xC429, - 4872: 0xC42A, - 4873: 0xC42B, - 4874: 0xC42D, - 4875: 0xC42E, - 4876: 0xC42F, - 4877: 0xC431, - 4878: 0xC432, - 4879: 0xC433, - 4880: 0xC435, - 4881: 0xC436, - 4882: 0xC437, - 4883: 0xC438, - 4884: 0xC439, - 4885: 0xC43A, - 4886: 0xC43B, - 4887: 0xC43E, - 4888: 0xC43F, - 4889: 0xC440, - 4890: 0xC441, - 4891: 0xC442, - 4892: 0xC443, - 4893: 0xC444, - 4894: 0xC445, - 4895: 0xC446, - 4896: 0xC447, - 4897: 0xC449, - 4898: 0xC44A, - 4899: 0xC44B, - 4900: 0xC44C, - 4901: 0xC44D, - 4902: 0xC44E, - 4903: 0xC44F, - 4904: 0xC450, - 4905: 0xC451, - 4906: 0xC452, - 4907: 0xC453, - 4908: 0xC454, - 4909: 0xC455, - 4910: 0xC456, - 4911: 0xC457, - 4912: 0xC458, - 4913: 0xC459, - 4914: 0xC45A, - 4915: 0xC45B, - 4916: 0xC45C, - 4917: 0xC45D, - 4918: 0xC45E, - 4919: 0xC45F, - 4920: 0xC460, - 4921: 0xC461, - 4922: 0xC462, - 4923: 0xC463, - 4924: 0xC466, - 4925: 0xC467, - 4926: 0xC469, - 4927: 0xC46A, - 4928: 0xC46B, - 4929: 0xC46D, - 4930: 0xC46E, - 4931: 0xC46F, - 4932: 0xC470, - 4933: 0xC471, - 4934: 0xC472, - 4935: 0xC473, - 4936: 0xC476, - 4937: 0xC477, - 4938: 0xC478, - 4939: 0xC47A, - 4940: 0xC47B, - 4941: 0xC47C, - 4942: 0xC47D, - 4943: 0xC47E, - 4944: 0xC47F, - 4945: 0xC481, - 4946: 0xC482, - 4947: 0xC483, - 4948: 0xC484, - 4949: 0xC485, - 4950: 0xC486, - 4951: 0xC487, - 4952: 0xC488, - 4953: 0xC489, - 4954: 0xC48A, - 4955: 0xC48B, - 4956: 0xC48C, - 4957: 0xC48D, - 4958: 0xC48E, - 4959: 0xC48F, - 4960: 0xC490, - 4961: 0xC491, - 4962: 0xC492, - 4963: 0xC493, - 4964: 0xC495, - 4965: 0xC496, - 4966: 0xC497, - 4967: 0xC498, - 4968: 0xC499, - 4969: 0xC49A, - 4970: 0xC49B, - 4971: 0xC49D, - 4972: 0xC49E, - 4973: 0xC49F, - 4974: 0xC4A0, - 4975: 0xC4A1, - 4976: 0xC4A2, - 4977: 0xC4A3, - 4978: 0xC4A4, - 4979: 0xC4A5, - 4980: 0xC4A6, - 4981: 0xC4A7, - 4982: 0xC4A8, - 4983: 0xC4A9, - 4984: 0xC4AA, - 4985: 0xC4AB, - 4986: 0xC4AC, - 4987: 0xC4AD, - 4988: 0xC4AE, - 4989: 0xC4AF, - 4990: 0xC4B0, - 4991: 0xC4B1, - 4992: 0xC4B2, - 4993: 0xC4B3, - 4994: 0xC4B4, - 4995: 0xC4B5, - 4996: 0xC4B6, - 4997: 0xC4B7, - 4998: 0xC4B9, - 4999: 0xC4BA, - 5000: 0xC4BB, - 5001: 0xC4BD, - 5002: 0xC4BE, - 5003: 0xC4BF, - 5004: 0xC4C0, - 5005: 0xC4C1, - 5006: 0xC4C2, - 5007: 0xC4C3, - 5008: 0xC4C4, - 5009: 0xC4C5, - 5010: 0xC4C6, - 5011: 0xC4C7, - 5012: 0xC4C8, - 5013: 0xC4C9, - 5014: 0xC4CA, - 5015: 0xC4CB, - 5016: 0xC4CC, - 5017: 0xC4CD, - 5018: 0xC4CE, - 5019: 0xC4CF, - 5020: 0xC4D0, - 5021: 0xC4D1, - 5022: 0xC4D2, - 5023: 0xC4D3, - 5024: 0xC4D4, - 5025: 0xC4D5, - 5026: 0xC4D6, - 5027: 0xC4D7, - 5028: 0xC4D8, - 5029: 0xC4D9, - 5030: 0xC4DA, - 5031: 0xC4DB, - 5032: 0xC4DC, - 5033: 0xC4DD, - 5034: 0xC4DE, - 5035: 0xC4DF, - 5036: 0xC4E0, - 5037: 0xC4E1, - 5038: 0xC4E2, - 5039: 0xC4E3, - 5040: 0xC4E4, - 5041: 0xC4E5, - 5042: 0xC4E6, - 5043: 0xC4E7, - 5044: 0xC4E8, - 5045: 0xC4EA, - 5046: 0xC4EB, - 5047: 0xC4EC, - 5048: 0xC4ED, - 5049: 0xC4EE, - 5050: 0xC4EF, - 5051: 0xC4F2, - 5052: 0xC4F3, - 5053: 0xC4F5, - 5054: 0xC4F6, - 5055: 0xC4F7, - 5056: 0xC4F9, - 5057: 0xC4FB, - 5058: 0xC4FC, - 5059: 0xC4FD, - 5060: 0xC4FE, - 5061: 0xC502, - 5062: 0xC503, - 5063: 0xC504, - 5064: 0xC505, - 5065: 0xC506, - 5066: 0xC507, - 5067: 0xC508, - 5068: 0xC509, - 5069: 0xC50A, - 5070: 0xC50B, - 5071: 0xC50D, - 5072: 0xC50E, - 5073: 0xC50F, - 5074: 0xC511, - 5075: 0xC512, - 5076: 0xC513, - 5077: 0xC515, - 5078: 0xC516, - 5079: 0xC517, - 5080: 0xC518, - 5081: 0xC519, - 5082: 0xC51A, - 5083: 0xC51B, - 5084: 0xC51D, - 5085: 0xC51E, - 5086: 0xC51F, - 5087: 0xC520, - 5088: 0xC521, - 5089: 0xC522, - 5090: 0xC523, - 5091: 0xC524, - 5092: 0xC525, - 5093: 0xC526, - 5094: 0xC527, - 5095: 0xC52A, - 5096: 0xC52B, - 5097: 0xC52D, - 5098: 0xC52E, - 5099: 0xC52F, - 5100: 0xC531, - 5101: 0xC532, - 5102: 0xC533, - 5103: 0xC534, - 5104: 0xC535, - 5105: 0xC536, - 5106: 0xC537, - 5107: 0xC53A, - 5108: 0xC53C, - 5109: 0xC53E, - 5110: 0xC53F, - 5111: 0xC540, - 5112: 0xC541, - 5113: 0xC542, - 5114: 0xC543, - 5115: 0xC546, - 5116: 0xC547, - 5117: 0xC54B, - 5118: 0xC54F, - 5119: 0xC550, - 5120: 0xC551, - 5121: 0xC552, - 5122: 0xC556, - 5123: 0xC55A, - 5124: 0xC55B, - 5125: 0xC55C, - 5126: 0xC55F, - 5127: 0xC562, - 5128: 0xC563, - 5129: 0xC565, - 5130: 0xC566, - 5131: 0xC567, - 5132: 0xC569, - 5133: 0xC56A, - 5134: 0xC56B, - 5135: 0xC56C, - 5136: 0xC56D, - 5137: 0xC56E, - 5138: 0xC56F, - 5139: 0xC572, - 5140: 0xC576, - 5141: 0xC577, - 5142: 0xC578, - 5143: 0xC579, - 5144: 0xC57A, - 5145: 0xC57B, - 5146: 0xC57E, - 5147: 0xC57F, - 5148: 0xC581, - 5149: 0xC582, - 5150: 0xC583, - 5151: 0xC585, - 5152: 0xC586, - 5153: 0xC588, - 5154: 0xC589, - 5155: 0xC58A, - 5156: 0xC58B, - 5157: 0xC58E, - 5158: 0xC590, - 5159: 0xC592, - 5160: 0xC593, - 5161: 0xC594, - 5162: 0xC596, - 5163: 0xC599, - 5164: 0xC59A, - 5165: 0xC59B, - 5166: 0xC59D, - 5167: 0xC59E, - 5168: 0xC59F, - 5169: 0xC5A1, - 5170: 0xC5A2, - 5171: 0xC5A3, - 5172: 0xC5A4, - 5173: 0xC5A5, - 5174: 0xC5A6, - 5175: 0xC5A7, - 5176: 0xC5A8, - 5177: 0xC5AA, - 5178: 0xC5AB, - 5179: 0xC5AC, - 5180: 0xC5AD, - 5181: 0xC5AE, - 5182: 0xC5AF, - 5183: 0xC5B0, - 5184: 0xC5B1, - 5185: 0xC5B2, - 5186: 0xC5B3, - 5187: 0xC5B6, - 5188: 0xC5B7, - 5189: 0xC5BA, - 5190: 0xC5BF, - 5191: 0xC5C0, - 5192: 0xC5C1, - 5193: 0xC5C2, - 5194: 0xC5C3, - 5195: 0xC5CB, - 5196: 0xC5CD, - 5197: 0xC5CF, - 5198: 0xC5D2, - 5199: 0xC5D3, - 5200: 0xC5D5, - 5201: 0xC5D6, - 5202: 0xC5D7, - 5203: 0xC5D9, - 5204: 0xC5DA, - 5205: 0xC5DB, - 5206: 0xC5DC, - 5207: 0xC5DD, - 5208: 0xC5DE, - 5209: 0xC5DF, - 5210: 0xC5E2, - 5211: 0xC5E4, - 5212: 0xC5E6, - 5213: 0xC5E7, - 5214: 0xC5E8, - 5215: 0xC5E9, - 5216: 0xC5EA, - 5217: 0xC5EB, - 5218: 0xC5EF, - 5219: 0xC5F1, - 5220: 0xC5F2, - 5221: 0xC5F3, - 5222: 0xC5F5, - 5223: 0xC5F8, - 5224: 0xC5F9, - 5225: 0xC5FA, - 5226: 0xC5FB, - 5227: 0xC602, - 5228: 0xC603, - 5229: 0xC604, - 5230: 0xC609, - 5231: 0xC60A, - 5232: 0xC60B, - 5233: 0xC60D, - 5234: 0xC60E, - 5235: 0xC60F, - 5236: 0xC611, - 5237: 0xC612, - 5238: 0xC613, - 5239: 0xC614, - 5240: 0xC615, - 5241: 0xC616, - 5242: 0xC617, - 5243: 0xC61A, - 5244: 0xC61D, - 5245: 0xC61E, - 5246: 0xC61F, - 5247: 0xC620, - 5248: 0xC621, - 5249: 0xC622, - 5250: 0xC623, - 5251: 0xC626, - 5252: 0xC627, - 5253: 0xC629, - 5254: 0xC62A, - 5255: 0xC62B, - 5256: 0xC62F, - 5257: 0xC631, - 5258: 0xC632, - 5259: 0xC636, - 5260: 0xC638, - 5261: 0xC63A, - 5262: 0xC63C, - 5263: 0xC63D, - 5264: 0xC63E, - 5265: 0xC63F, - 5266: 0xC642, - 5267: 0xC643, - 5268: 0xC645, - 5269: 0xC646, - 5270: 0xC647, - 5271: 0xC649, - 5272: 0xC64A, - 5273: 0xC64B, - 5274: 0xC64C, - 5275: 0xC64D, - 5276: 0xC64E, - 5277: 0xC64F, - 5278: 0xC652, - 5279: 0xC656, - 5280: 0xC657, - 5281: 0xC658, - 5282: 0xC659, - 5283: 0xC65A, - 5284: 0xC65B, - 5285: 0xC65E, - 5286: 0xC65F, - 5287: 0xC661, - 5288: 0xC662, - 5289: 0xC663, - 5290: 0xC664, - 5291: 0xC665, - 5292: 0xC666, - 5293: 0xC667, - 5294: 0xC668, - 5295: 0xC669, - 5296: 0xC66A, - 5297: 0xC66B, - 5298: 0xC66D, - 5299: 0xC66E, - 5300: 0xC670, - 5301: 0xC672, - 5302: 0xC673, - 5303: 0xC674, - 5304: 0xC675, - 5305: 0xC676, - 5306: 0xC677, - 5307: 0xC67A, - 5308: 0xC67B, - 5309: 0xC67D, - 5310: 0xC67E, - 5311: 0xC67F, - 5312: 0xC681, - 5313: 0xC682, - 5314: 0xC683, - 5315: 0xC684, - 5316: 0xC685, - 5317: 0xC686, - 5318: 0xC687, - 5319: 0xC68A, - 5320: 0xC68C, - 5321: 0xC68E, - 5322: 0xC68F, - 5323: 0xC690, - 5324: 0xC691, - 5325: 0xC692, - 5326: 0xC693, - 5327: 0xC696, - 5328: 0xC697, - 5329: 0xC699, - 5330: 0xC69A, - 5331: 0xC69B, - 5332: 0xC69D, - 5333: 0xC69E, - 5334: 0xC69F, - 5335: 0xC6A0, - 5336: 0xC6A1, - 5337: 0xC6A2, - 5338: 0xC6A3, - 5339: 0xC6A6, - 5340: 0xC6A8, - 5341: 0xC6AA, - 5342: 0xC6AB, - 5343: 0xC6AC, - 5344: 0xC6AD, - 5345: 0xC6AE, - 5346: 0xC6AF, - 5347: 0xC6B2, - 5348: 0xC6B3, - 5349: 0xC6B5, - 5350: 0xC6B6, - 5351: 0xC6B7, - 5352: 0xC6BB, - 5353: 0xC6BC, - 5354: 0xC6BD, - 5355: 0xC6BE, - 5356: 0xC6BF, - 5357: 0xC6C2, - 5358: 0xC6C4, - 5359: 0xC6C6, - 5360: 0xC6C7, - 5361: 0xC6C8, - 5362: 0xC6C9, - 5363: 0xC6CA, - 5364: 0xC6CB, - 5365: 0xC6CE, - 5366: 0xC6CF, - 5367: 0xC6D1, - 5368: 0xC6D2, - 5369: 0xC6D3, - 5370: 0xC6D5, - 5371: 0xC6D6, - 5372: 0xC6D7, - 5373: 0xC6D8, - 5374: 0xC6D9, - 5375: 0xC6DA, - 5376: 0xC6DB, - 5377: 0xC6DE, - 5378: 0xC6DF, - 5379: 0xC6E2, - 5380: 0xC6E3, - 5381: 0xC6E4, - 5382: 0xC6E5, - 5383: 0xC6E6, - 5384: 0xC6E7, - 5385: 0xC6EA, - 5386: 0xC6EB, - 5387: 0xC6ED, - 5388: 0xC6EE, - 5389: 0xC6EF, - 5390: 0xC6F1, - 5391: 0xC6F2, - 5392: 0xC6F3, - 5393: 0xC6F4, - 5394: 0xC6F5, - 5395: 0xC6F6, - 5396: 0xC6F7, - 5397: 0xC6FA, - 5398: 0xC6FB, - 5399: 0xC6FC, - 5400: 0xC6FE, - 5401: 0xC6FF, - 5402: 0xC700, - 5403: 0xC701, - 5404: 0xC702, - 5405: 0xC703, - 5406: 0xC706, - 5407: 0xC707, - 5408: 0xC709, - 5409: 0xC70A, - 5410: 0xC70B, - 5411: 0xC70D, - 5412: 0xC70E, - 5413: 0xC70F, - 5414: 0xC710, - 5415: 0xC711, - 5416: 0xC712, - 5417: 0xC713, - 5418: 0xC716, - 5419: 0xC718, - 5420: 0xC71A, - 5421: 0xC71B, - 5422: 0xC71C, - 5423: 0xC71D, - 5424: 0xC71E, - 5425: 0xC71F, - 5426: 0xC722, - 5427: 0xC723, - 5428: 0xC725, - 5429: 0xC726, - 5430: 0xC727, - 5431: 0xC729, - 5432: 0xC72A, - 5433: 0xC72B, - 5434: 0xC72C, - 5435: 0xC72D, - 5436: 0xC72E, - 5437: 0xC72F, - 5438: 0xC732, - 5439: 0xC734, - 5440: 0xC736, - 5441: 0xC738, - 5442: 0xC739, - 5443: 0xC73A, - 5444: 0xC73B, - 5445: 0xC73E, - 5446: 0xC73F, - 5447: 0xC741, - 5448: 0xC742, - 5449: 0xC743, - 5450: 0xC745, - 5451: 0xC746, - 5452: 0xC747, - 5453: 0xC748, - 5454: 0xC749, - 5455: 0xC74B, - 5456: 0xC74E, - 5457: 0xC750, - 5458: 0xC759, - 5459: 0xC75A, - 5460: 0xC75B, - 5461: 0xC75D, - 5462: 0xC75E, - 5463: 0xC75F, - 5464: 0xC761, - 5465: 0xC762, - 5466: 0xC763, - 5467: 0xC764, - 5468: 0xC765, - 5469: 0xC766, - 5470: 0xC767, - 5471: 0xC769, - 5472: 0xC76A, - 5473: 0xC76C, - 5474: 0xC76D, - 5475: 0xC76E, - 5476: 0xC76F, - 5477: 0xC770, - 5478: 0xC771, - 5479: 0xC772, - 5480: 0xC773, - 5481: 0xC776, - 5482: 0xC777, - 5483: 0xC779, - 5484: 0xC77A, - 5485: 0xC77B, - 5486: 0xC77F, - 5487: 0xC780, - 5488: 0xC781, - 5489: 0xC782, - 5490: 0xC786, - 5491: 0xC78B, - 5492: 0xC78C, - 5493: 0xC78D, - 5494: 0xC78F, - 5495: 0xC792, - 5496: 0xC793, - 5497: 0xC795, - 5498: 0xC799, - 5499: 0xC79B, - 5500: 0xC79C, - 5501: 0xC79D, - 5502: 0xC79E, - 5503: 0xC79F, - 5504: 0xC7A2, - 5505: 0xC7A7, - 5506: 0xC7A8, - 5507: 0xC7A9, - 5508: 0xC7AA, - 5509: 0xC7AB, - 5510: 0xC7AE, - 5511: 0xC7AF, - 5512: 0xC7B1, - 5513: 0xC7B2, - 5514: 0xC7B3, - 5515: 0xC7B5, - 5516: 0xC7B6, - 5517: 0xC7B7, - 5518: 0xC7B8, - 5519: 0xC7B9, - 5520: 0xC7BA, - 5521: 0xC7BB, - 5522: 0xC7BE, - 5523: 0xC7C2, - 5524: 0xC7C3, - 5525: 0xC7C4, - 5526: 0xC7C5, - 5527: 0xC7C6, - 5528: 0xC7C7, - 5529: 0xC7CA, - 5530: 0xC7CB, - 5531: 0xC7CD, - 5532: 0xC7CF, - 5533: 0xC7D1, - 5534: 0xC7D2, - 5535: 0xC7D3, - 5536: 0xC7D4, - 5537: 0xC7D5, - 5538: 0xC7D6, - 5539: 0xC7D7, - 5540: 0xC7D9, - 5541: 0xC7DA, - 5542: 0xC7DB, - 5543: 0xC7DC, - 5544: 0xC7DE, - 5545: 0xC7DF, - 5546: 0xC7E0, - 5547: 0xC7E1, - 5548: 0xC7E2, - 5549: 0xC7E3, - 5550: 0xC7E5, - 5551: 0xC7E6, - 5552: 0xC7E7, - 5553: 0xC7E9, - 5554: 0xC7EA, - 5555: 0xC7EB, - 5556: 0xC7ED, - 5557: 0xC7EE, - 5558: 0xC7EF, - 5559: 0xC7F0, - 5560: 0xC7F1, - 5561: 0xC7F2, - 5562: 0xC7F3, - 5563: 0xC7F4, - 5564: 0xC7F5, - 5565: 0xC7F6, - 5566: 0xC7F7, - 5567: 0xC7F8, - 5568: 0xC7F9, - 5569: 0xC7FA, - 5570: 0xC7FB, - 5571: 0xC7FC, - 5572: 0xC7FD, - 5573: 0xC7FE, - 5574: 0xC7FF, - 5575: 0xC802, - 5576: 0xC803, - 5577: 0xC805, - 5578: 0xC806, - 5579: 0xC807, - 5580: 0xC809, - 5581: 0xC80B, - 5582: 0xC80C, - 5583: 0xC80D, - 5584: 0xC80E, - 5585: 0xC80F, - 5586: 0xC812, - 5587: 0xC814, - 5588: 0xC817, - 5589: 0xC818, - 5590: 0xC819, - 5591: 0xC81A, - 5592: 0xC81B, - 5593: 0xC81E, - 5594: 0xC81F, - 5595: 0xC821, - 5596: 0xC822, - 5597: 0xC823, - 5598: 0xC825, - 5599: 0xC826, - 5600: 0xC827, - 5601: 0xC828, - 5602: 0xC829, - 5603: 0xC82A, - 5604: 0xC82B, - 5605: 0xC82E, - 5606: 0xC830, - 5607: 0xC832, - 5608: 0xC833, - 5609: 0xC834, - 5610: 0xC835, - 5611: 0xC836, - 5612: 0xC837, - 5613: 0xC839, - 5614: 0xC83A, - 5615: 0xC83B, - 5616: 0xC83D, - 5617: 0xC83E, - 5618: 0xC83F, - 5619: 0xC841, - 5620: 0xC842, - 5621: 0xC843, - 5622: 0xC844, - 5623: 0xC845, - 5624: 0xC846, - 5625: 0xC847, - 5626: 0xC84A, - 5627: 0xC84B, - 5628: 0xC84E, - 5629: 0xC84F, - 5630: 0xC850, - 5631: 0xC851, - 5632: 0xC852, - 5633: 0xC853, - 5634: 0xC855, - 5635: 0xC856, - 5636: 0xC857, - 5637: 0xC858, - 5638: 0xC859, - 5639: 0xC85A, - 5640: 0xC85B, - 5641: 0xC85C, - 5642: 0xC85D, - 5643: 0xC85E, - 5644: 0xC85F, - 5645: 0xC860, - 5646: 0xC861, - 5647: 0xC862, - 5648: 0xC863, - 5649: 0xC864, - 5650: 0xC865, - 5651: 0xC866, - 5652: 0xC867, - 5653: 0xC868, - 5654: 0xC869, - 5655: 0xC86A, - 5656: 0xC86B, - 5657: 0xC86C, - 5658: 0xC86D, - 5659: 0xC86E, - 5660: 0xC86F, - 5661: 0xC872, - 5662: 0xC873, - 5663: 0xC875, - 5664: 0xC876, - 5665: 0xC877, - 5666: 0xC879, - 5667: 0xC87B, - 5668: 0xC87C, - 5669: 0xC87D, - 5670: 0xC87E, - 5671: 0xC87F, - 5672: 0xC882, - 5673: 0xC884, - 5674: 0xC888, - 5675: 0xC889, - 5676: 0xC88A, - 5677: 0xC88E, - 5678: 0xC88F, - 5679: 0xC890, - 5680: 0xC891, - 5681: 0xC892, - 5682: 0xC893, - 5683: 0xC895, - 5684: 0xC896, - 5685: 0xC897, - 5686: 0xC898, - 5687: 0xC899, - 5688: 0xC89A, - 5689: 0xC89B, - 5690: 0xC89C, - 5691: 0xC89E, - 5692: 0xC8A0, - 5693: 0xC8A2, - 5694: 0xC8A3, - 5695: 0xC8A4, - 5696: 0xC8A5, - 5697: 0xC8A6, - 5698: 0xC8A7, - 5699: 0xC8A9, - 5700: 0xC8AA, - 5701: 0xC8AB, - 5702: 0xC8AC, - 5703: 0xC8AD, - 5704: 0xC8AE, - 5705: 0xC8AF, - 5706: 0xC8B0, - 5707: 0xC8B1, - 5708: 0xC8B2, - 5709: 0xC8B3, - 5710: 0xC8B4, - 5711: 0xC8B5, - 5712: 0xC8B6, - 5713: 0xC8B7, - 5714: 0xC8B8, - 5715: 0xC8B9, - 5716: 0xC8BA, - 5717: 0xC8BB, - 5718: 0xC8BE, - 5719: 0xC8BF, - 5720: 0xC8C0, - 5721: 0xC8C1, - 5722: 0xC8C2, - 5723: 0xC8C3, - 5724: 0xC8C5, - 5725: 0xC8C6, - 5726: 0xC8C7, - 5727: 0xC8C9, - 5728: 0xC8CA, - 5729: 0xC8CB, - 5730: 0xC8CD, - 5731: 0xC8CE, - 5732: 0xC8CF, - 5733: 0xC8D0, - 5734: 0xC8D1, - 5735: 0xC8D2, - 5736: 0xC8D3, - 5737: 0xC8D6, - 5738: 0xC8D8, - 5739: 0xC8DA, - 5740: 0xC8DB, - 5741: 0xC8DC, - 5742: 0xC8DD, - 5743: 0xC8DE, - 5744: 0xC8DF, - 5745: 0xC8E2, - 5746: 0xC8E3, - 5747: 0xC8E5, - 5748: 0xC8E6, - 5749: 0xC8E7, - 5750: 0xC8E8, - 5751: 0xC8E9, - 5752: 0xC8EA, - 5753: 0xC8EB, - 5754: 0xC8EC, - 5755: 0xC8ED, - 5756: 0xC8EE, - 5757: 0xC8EF, - 5758: 0xC8F0, - 5759: 0xC8F1, - 5760: 0xC8F2, - 5761: 0xC8F3, - 5762: 0xC8F4, - 5763: 0xC8F6, - 5764: 0xC8F7, - 5765: 0xC8F8, - 5766: 0xC8F9, - 5767: 0xC8FA, - 5768: 0xC8FB, - 5769: 0xC8FE, - 5770: 0xC8FF, - 5771: 0xC901, - 5772: 0xC902, - 5773: 0xC903, - 5774: 0xC907, - 5775: 0xC908, - 5776: 0xC909, - 5777: 0xC90A, - 5778: 0xC90B, - 5779: 0xC90E, - 5780: 0x3000, - 5781: 0x3001, - 5782: 0x3002, - 5783: 0x00B7, - 5784: 0x2025, - 5785: 0x2026, - 5786: 0x00A8, - 5787: 0x3003, - 5788: 0x00AD, - 5789: 0x2015, - 5790: 0x2225, - 5791: 0xFF3C, - 5792: 0x223C, - 5793: 0x2018, - 5794: 0x2019, - 5795: 0x201C, - 5796: 0x201D, - 5797: 0x3014, - 5798: 0x3015, - 5799: 0x3008, - 5800: 0x3009, - 5801: 0x300A, - 5802: 0x300B, - 5803: 0x300C, - 5804: 0x300D, - 5805: 0x300E, - 5806: 0x300F, - 5807: 0x3010, - 5808: 0x3011, - 5809: 0x00B1, - 5810: 0x00D7, - 5811: 0x00F7, - 5812: 0x2260, - 5813: 0x2264, - 5814: 0x2265, - 5815: 0x221E, - 5816: 0x2234, - 5817: 0x00B0, - 5818: 0x2032, - 5819: 0x2033, - 5820: 0x2103, - 5821: 0x212B, - 5822: 0xFFE0, - 5823: 0xFFE1, - 5824: 0xFFE5, - 5825: 0x2642, - 5826: 0x2640, - 5827: 0x2220, - 5828: 0x22A5, - 5829: 0x2312, - 5830: 0x2202, - 5831: 0x2207, - 5832: 0x2261, - 5833: 0x2252, - 5834: 0x00A7, - 5835: 0x203B, - 5836: 0x2606, - 5837: 0x2605, - 5838: 0x25CB, - 5839: 0x25CF, - 5840: 0x25CE, - 5841: 0x25C7, - 5842: 0x25C6, - 5843: 0x25A1, - 5844: 0x25A0, - 5845: 0x25B3, - 5846: 0x25B2, - 5847: 0x25BD, - 5848: 0x25BC, - 5849: 0x2192, - 5850: 0x2190, - 5851: 0x2191, - 5852: 0x2193, - 5853: 0x2194, - 5854: 0x3013, - 5855: 0x226A, - 5856: 0x226B, - 5857: 0x221A, - 5858: 0x223D, - 5859: 0x221D, - 5860: 0x2235, - 5861: 0x222B, - 5862: 0x222C, - 5863: 0x2208, - 5864: 0x220B, - 5865: 0x2286, - 5866: 0x2287, - 5867: 0x2282, - 5868: 0x2283, - 5869: 0x222A, - 5870: 0x2229, - 5871: 0x2227, - 5872: 0x2228, - 5873: 0xFFE2, - 5874: 0xC910, - 5875: 0xC912, - 5876: 0xC913, - 5877: 0xC914, - 5878: 0xC915, - 5879: 0xC916, - 5880: 0xC917, - 5881: 0xC919, - 5882: 0xC91A, - 5883: 0xC91B, - 5884: 0xC91C, - 5885: 0xC91D, - 5886: 0xC91E, - 5887: 0xC91F, - 5888: 0xC920, - 5889: 0xC921, - 5890: 0xC922, - 5891: 0xC923, - 5892: 0xC924, - 5893: 0xC925, - 5894: 0xC926, - 5895: 0xC927, - 5896: 0xC928, - 5897: 0xC929, - 5898: 0xC92A, - 5899: 0xC92B, - 5900: 0xC92D, - 5901: 0xC92E, - 5902: 0xC92F, - 5903: 0xC930, - 5904: 0xC931, - 5905: 0xC932, - 5906: 0xC933, - 5907: 0xC935, - 5908: 0xC936, - 5909: 0xC937, - 5910: 0xC938, - 5911: 0xC939, - 5912: 0xC93A, - 5913: 0xC93B, - 5914: 0xC93C, - 5915: 0xC93D, - 5916: 0xC93E, - 5917: 0xC93F, - 5918: 0xC940, - 5919: 0xC941, - 5920: 0xC942, - 5921: 0xC943, - 5922: 0xC944, - 5923: 0xC945, - 5924: 0xC946, - 5925: 0xC947, - 5926: 0xC948, - 5927: 0xC949, - 5928: 0xC94A, - 5929: 0xC94B, - 5930: 0xC94C, - 5931: 0xC94D, - 5932: 0xC94E, - 5933: 0xC94F, - 5934: 0xC952, - 5935: 0xC953, - 5936: 0xC955, - 5937: 0xC956, - 5938: 0xC957, - 5939: 0xC959, - 5940: 0xC95A, - 5941: 0xC95B, - 5942: 0xC95C, - 5943: 0xC95D, - 5944: 0xC95E, - 5945: 0xC95F, - 5946: 0xC962, - 5947: 0xC964, - 5948: 0xC965, - 5949: 0xC966, - 5950: 0xC967, - 5951: 0xC968, - 5952: 0xC969, - 5953: 0xC96A, - 5954: 0xC96B, - 5955: 0xC96D, - 5956: 0xC96E, - 5957: 0xC96F, - 5958: 0x21D2, - 5959: 0x21D4, - 5960: 0x2200, - 5961: 0x2203, - 5962: 0x00B4, - 5963: 0xFF5E, - 5964: 0x02C7, - 5965: 0x02D8, - 5966: 0x02DD, - 5967: 0x02DA, - 5968: 0x02D9, - 5969: 0x00B8, - 5970: 0x02DB, - 5971: 0x00A1, - 5972: 0x00BF, - 5973: 0x02D0, - 5974: 0x222E, - 5975: 0x2211, - 5976: 0x220F, - 5977: 0x00A4, - 5978: 0x2109, - 5979: 0x2030, - 5980: 0x25C1, - 5981: 0x25C0, - 5982: 0x25B7, - 5983: 0x25B6, - 5984: 0x2664, - 5985: 0x2660, - 5986: 0x2661, - 5987: 0x2665, - 5988: 0x2667, - 5989: 0x2663, - 5990: 0x2299, - 5991: 0x25C8, - 5992: 0x25A3, - 5993: 0x25D0, - 5994: 0x25D1, - 5995: 0x2592, - 5996: 0x25A4, - 5997: 0x25A5, - 5998: 0x25A8, - 5999: 0x25A7, - 6000: 0x25A6, - 6001: 0x25A9, - 6002: 0x2668, - 6003: 0x260F, - 6004: 0x260E, - 6005: 0x261C, - 6006: 0x261E, - 6007: 0x00B6, - 6008: 0x2020, - 6009: 0x2021, - 6010: 0x2195, - 6011: 0x2197, - 6012: 0x2199, - 6013: 0x2196, - 6014: 0x2198, - 6015: 0x266D, - 6016: 0x2669, - 6017: 0x266A, - 6018: 0x266C, - 6019: 0x327F, - 6020: 0x321C, - 6021: 0x2116, - 6022: 0x33C7, - 6023: 0x2122, - 6024: 0x33C2, - 6025: 0x33D8, - 6026: 0x2121, - 6027: 0x20AC, - 6028: 0x00AE, - 6052: 0xC971, - 6053: 0xC972, - 6054: 0xC973, - 6055: 0xC975, - 6056: 0xC976, - 6057: 0xC977, - 6058: 0xC978, - 6059: 0xC979, - 6060: 0xC97A, - 6061: 0xC97B, - 6062: 0xC97D, - 6063: 0xC97E, - 6064: 0xC97F, - 6065: 0xC980, - 6066: 0xC981, - 6067: 0xC982, - 6068: 0xC983, - 6069: 0xC984, - 6070: 0xC985, - 6071: 0xC986, - 6072: 0xC987, - 6073: 0xC98A, - 6074: 0xC98B, - 6075: 0xC98D, - 6076: 0xC98E, - 6077: 0xC98F, - 6078: 0xC991, - 6079: 0xC992, - 6080: 0xC993, - 6081: 0xC994, - 6082: 0xC995, - 6083: 0xC996, - 6084: 0xC997, - 6085: 0xC99A, - 6086: 0xC99C, - 6087: 0xC99E, - 6088: 0xC99F, - 6089: 0xC9A0, - 6090: 0xC9A1, - 6091: 0xC9A2, - 6092: 0xC9A3, - 6093: 0xC9A4, - 6094: 0xC9A5, - 6095: 0xC9A6, - 6096: 0xC9A7, - 6097: 0xC9A8, - 6098: 0xC9A9, - 6099: 0xC9AA, - 6100: 0xC9AB, - 6101: 0xC9AC, - 6102: 0xC9AD, - 6103: 0xC9AE, - 6104: 0xC9AF, - 6105: 0xC9B0, - 6106: 0xC9B1, - 6107: 0xC9B2, - 6108: 0xC9B3, - 6109: 0xC9B4, - 6110: 0xC9B5, - 6111: 0xC9B6, - 6112: 0xC9B7, - 6113: 0xC9B8, - 6114: 0xC9B9, - 6115: 0xC9BA, - 6116: 0xC9BB, - 6117: 0xC9BC, - 6118: 0xC9BD, - 6119: 0xC9BE, - 6120: 0xC9BF, - 6121: 0xC9C2, - 6122: 0xC9C3, - 6123: 0xC9C5, - 6124: 0xC9C6, - 6125: 0xC9C9, - 6126: 0xC9CB, - 6127: 0xC9CC, - 6128: 0xC9CD, - 6129: 0xC9CE, - 6130: 0xC9CF, - 6131: 0xC9D2, - 6132: 0xC9D4, - 6133: 0xC9D7, - 6134: 0xC9D8, - 6135: 0xC9DB, - 6136: 0xFF01, - 6137: 0xFF02, - 6138: 0xFF03, - 6139: 0xFF04, - 6140: 0xFF05, - 6141: 0xFF06, - 6142: 0xFF07, - 6143: 0xFF08, - 6144: 0xFF09, - 6145: 0xFF0A, - 6146: 0xFF0B, - 6147: 0xFF0C, - 6148: 0xFF0D, - 6149: 0xFF0E, - 6150: 0xFF0F, - 6151: 0xFF10, - 6152: 0xFF11, - 6153: 0xFF12, - 6154: 0xFF13, - 6155: 0xFF14, - 6156: 0xFF15, - 6157: 0xFF16, - 6158: 0xFF17, - 6159: 0xFF18, - 6160: 0xFF19, - 6161: 0xFF1A, - 6162: 0xFF1B, - 6163: 0xFF1C, - 6164: 0xFF1D, - 6165: 0xFF1E, - 6166: 0xFF1F, - 6167: 0xFF20, - 6168: 0xFF21, - 6169: 0xFF22, - 6170: 0xFF23, - 6171: 0xFF24, - 6172: 0xFF25, - 6173: 0xFF26, - 6174: 0xFF27, - 6175: 0xFF28, - 6176: 0xFF29, - 6177: 0xFF2A, - 6178: 0xFF2B, - 6179: 0xFF2C, - 6180: 0xFF2D, - 6181: 0xFF2E, - 6182: 0xFF2F, - 6183: 0xFF30, - 6184: 0xFF31, - 6185: 0xFF32, - 6186: 0xFF33, - 6187: 0xFF34, - 6188: 0xFF35, - 6189: 0xFF36, - 6190: 0xFF37, - 6191: 0xFF38, - 6192: 0xFF39, - 6193: 0xFF3A, - 6194: 0xFF3B, - 6195: 0xFFE6, - 6196: 0xFF3D, - 6197: 0xFF3E, - 6198: 0xFF3F, - 6199: 0xFF40, - 6200: 0xFF41, - 6201: 0xFF42, - 6202: 0xFF43, - 6203: 0xFF44, - 6204: 0xFF45, - 6205: 0xFF46, - 6206: 0xFF47, - 6207: 0xFF48, - 6208: 0xFF49, - 6209: 0xFF4A, - 6210: 0xFF4B, - 6211: 0xFF4C, - 6212: 0xFF4D, - 6213: 0xFF4E, - 6214: 0xFF4F, - 6215: 0xFF50, - 6216: 0xFF51, - 6217: 0xFF52, - 6218: 0xFF53, - 6219: 0xFF54, - 6220: 0xFF55, - 6221: 0xFF56, - 6222: 0xFF57, - 6223: 0xFF58, - 6224: 0xFF59, - 6225: 0xFF5A, - 6226: 0xFF5B, - 6227: 0xFF5C, - 6228: 0xFF5D, - 6229: 0xFFE3, - 6230: 0xC9DE, - 6231: 0xC9DF, - 6232: 0xC9E1, - 6233: 0xC9E3, - 6234: 0xC9E5, - 6235: 0xC9E6, - 6236: 0xC9E8, - 6237: 0xC9E9, - 6238: 0xC9EA, - 6239: 0xC9EB, - 6240: 0xC9EE, - 6241: 0xC9F2, - 6242: 0xC9F3, - 6243: 0xC9F4, - 6244: 0xC9F5, - 6245: 0xC9F6, - 6246: 0xC9F7, - 6247: 0xC9FA, - 6248: 0xC9FB, - 6249: 0xC9FD, - 6250: 0xC9FE, - 6251: 0xC9FF, - 6252: 0xCA01, - 6253: 0xCA02, - 6254: 0xCA03, - 6255: 0xCA04, - 6256: 0xCA05, - 6257: 0xCA06, - 6258: 0xCA07, - 6259: 0xCA0A, - 6260: 0xCA0E, - 6261: 0xCA0F, - 6262: 0xCA10, - 6263: 0xCA11, - 6264: 0xCA12, - 6265: 0xCA13, - 6266: 0xCA15, - 6267: 0xCA16, - 6268: 0xCA17, - 6269: 0xCA19, - 6270: 0xCA1A, - 6271: 0xCA1B, - 6272: 0xCA1C, - 6273: 0xCA1D, - 6274: 0xCA1E, - 6275: 0xCA1F, - 6276: 0xCA20, - 6277: 0xCA21, - 6278: 0xCA22, - 6279: 0xCA23, - 6280: 0xCA24, - 6281: 0xCA25, - 6282: 0xCA26, - 6283: 0xCA27, - 6284: 0xCA28, - 6285: 0xCA2A, - 6286: 0xCA2B, - 6287: 0xCA2C, - 6288: 0xCA2D, - 6289: 0xCA2E, - 6290: 0xCA2F, - 6291: 0xCA30, - 6292: 0xCA31, - 6293: 0xCA32, - 6294: 0xCA33, - 6295: 0xCA34, - 6296: 0xCA35, - 6297: 0xCA36, - 6298: 0xCA37, - 6299: 0xCA38, - 6300: 0xCA39, - 6301: 0xCA3A, - 6302: 0xCA3B, - 6303: 0xCA3C, - 6304: 0xCA3D, - 6305: 0xCA3E, - 6306: 0xCA3F, - 6307: 0xCA40, - 6308: 0xCA41, - 6309: 0xCA42, - 6310: 0xCA43, - 6311: 0xCA44, - 6312: 0xCA45, - 6313: 0xCA46, - 6314: 0x3131, - 6315: 0x3132, - 6316: 0x3133, - 6317: 0x3134, - 6318: 0x3135, - 6319: 0x3136, - 6320: 0x3137, - 6321: 0x3138, - 6322: 0x3139, - 6323: 0x313A, - 6324: 0x313B, - 6325: 0x313C, - 6326: 0x313D, - 6327: 0x313E, - 6328: 0x313F, - 6329: 0x3140, - 6330: 0x3141, - 6331: 0x3142, - 6332: 0x3143, - 6333: 0x3144, - 6334: 0x3145, - 6335: 0x3146, - 6336: 0x3147, - 6337: 0x3148, - 6338: 0x3149, - 6339: 0x314A, - 6340: 0x314B, - 6341: 0x314C, - 6342: 0x314D, - 6343: 0x314E, - 6344: 0x314F, - 6345: 0x3150, - 6346: 0x3151, - 6347: 0x3152, - 6348: 0x3153, - 6349: 0x3154, - 6350: 0x3155, - 6351: 0x3156, - 6352: 0x3157, - 6353: 0x3158, - 6354: 0x3159, - 6355: 0x315A, - 6356: 0x315B, - 6357: 0x315C, - 6358: 0x315D, - 6359: 0x315E, - 6360: 0x315F, - 6361: 0x3160, - 6362: 0x3161, - 6363: 0x3162, - 6364: 0x3163, - 6365: 0x3164, - 6366: 0x3165, - 6367: 0x3166, - 6368: 0x3167, - 6369: 0x3168, - 6370: 0x3169, - 6371: 0x316A, - 6372: 0x316B, - 6373: 0x316C, - 6374: 0x316D, - 6375: 0x316E, - 6376: 0x316F, - 6377: 0x3170, - 6378: 0x3171, - 6379: 0x3172, - 6380: 0x3173, - 6381: 0x3174, - 6382: 0x3175, - 6383: 0x3176, - 6384: 0x3177, - 6385: 0x3178, - 6386: 0x3179, - 6387: 0x317A, - 6388: 0x317B, - 6389: 0x317C, - 6390: 0x317D, - 6391: 0x317E, - 6392: 0x317F, - 6393: 0x3180, - 6394: 0x3181, - 6395: 0x3182, - 6396: 0x3183, - 6397: 0x3184, - 6398: 0x3185, - 6399: 0x3186, - 6400: 0x3187, - 6401: 0x3188, - 6402: 0x3189, - 6403: 0x318A, - 6404: 0x318B, - 6405: 0x318C, - 6406: 0x318D, - 6407: 0x318E, - 6408: 0xCA47, - 6409: 0xCA48, - 6410: 0xCA49, - 6411: 0xCA4A, - 6412: 0xCA4B, - 6413: 0xCA4E, - 6414: 0xCA4F, - 6415: 0xCA51, - 6416: 0xCA52, - 6417: 0xCA53, - 6418: 0xCA55, - 6419: 0xCA56, - 6420: 0xCA57, - 6421: 0xCA58, - 6422: 0xCA59, - 6423: 0xCA5A, - 6424: 0xCA5B, - 6425: 0xCA5E, - 6426: 0xCA62, - 6427: 0xCA63, - 6428: 0xCA64, - 6429: 0xCA65, - 6430: 0xCA66, - 6431: 0xCA67, - 6432: 0xCA69, - 6433: 0xCA6A, - 6434: 0xCA6B, - 6435: 0xCA6C, - 6436: 0xCA6D, - 6437: 0xCA6E, - 6438: 0xCA6F, - 6439: 0xCA70, - 6440: 0xCA71, - 6441: 0xCA72, - 6442: 0xCA73, - 6443: 0xCA74, - 6444: 0xCA75, - 6445: 0xCA76, - 6446: 0xCA77, - 6447: 0xCA78, - 6448: 0xCA79, - 6449: 0xCA7A, - 6450: 0xCA7B, - 6451: 0xCA7C, - 6452: 0xCA7E, - 6453: 0xCA7F, - 6454: 0xCA80, - 6455: 0xCA81, - 6456: 0xCA82, - 6457: 0xCA83, - 6458: 0xCA85, - 6459: 0xCA86, - 6460: 0xCA87, - 6461: 0xCA88, - 6462: 0xCA89, - 6463: 0xCA8A, - 6464: 0xCA8B, - 6465: 0xCA8C, - 6466: 0xCA8D, - 6467: 0xCA8E, - 6468: 0xCA8F, - 6469: 0xCA90, - 6470: 0xCA91, - 6471: 0xCA92, - 6472: 0xCA93, - 6473: 0xCA94, - 6474: 0xCA95, - 6475: 0xCA96, - 6476: 0xCA97, - 6477: 0xCA99, - 6478: 0xCA9A, - 6479: 0xCA9B, - 6480: 0xCA9C, - 6481: 0xCA9D, - 6482: 0xCA9E, - 6483: 0xCA9F, - 6484: 0xCAA0, - 6485: 0xCAA1, - 6486: 0xCAA2, - 6487: 0xCAA3, - 6488: 0xCAA4, - 6489: 0xCAA5, - 6490: 0xCAA6, - 6491: 0xCAA7, - 6492: 0x2170, - 6493: 0x2171, - 6494: 0x2172, - 6495: 0x2173, - 6496: 0x2174, - 6497: 0x2175, - 6498: 0x2176, - 6499: 0x2177, - 6500: 0x2178, - 6501: 0x2179, - 6507: 0x2160, - 6508: 0x2161, - 6509: 0x2162, - 6510: 0x2163, - 6511: 0x2164, - 6512: 0x2165, - 6513: 0x2166, - 6514: 0x2167, - 6515: 0x2168, - 6516: 0x2169, - 6524: 0x0391, - 6525: 0x0392, - 6526: 0x0393, - 6527: 0x0394, - 6528: 0x0395, - 6529: 0x0396, - 6530: 0x0397, - 6531: 0x0398, - 6532: 0x0399, - 6533: 0x039A, - 6534: 0x039B, - 6535: 0x039C, - 6536: 0x039D, - 6537: 0x039E, - 6538: 0x039F, - 6539: 0x03A0, - 6540: 0x03A1, - 6541: 0x03A3, - 6542: 0x03A4, - 6543: 0x03A5, - 6544: 0x03A6, - 6545: 0x03A7, - 6546: 0x03A8, - 6547: 0x03A9, - 6556: 0x03B1, - 6557: 0x03B2, - 6558: 0x03B3, - 6559: 0x03B4, - 6560: 0x03B5, - 6561: 0x03B6, - 6562: 0x03B7, - 6563: 0x03B8, - 6564: 0x03B9, - 6565: 0x03BA, - 6566: 0x03BB, - 6567: 0x03BC, - 6568: 0x03BD, - 6569: 0x03BE, - 6570: 0x03BF, - 6571: 0x03C0, - 6572: 0x03C1, - 6573: 0x03C3, - 6574: 0x03C4, - 6575: 0x03C5, - 6576: 0x03C6, - 6577: 0x03C7, - 6578: 0x03C8, - 6579: 0x03C9, - 6586: 0xCAA8, - 6587: 0xCAA9, - 6588: 0xCAAA, - 6589: 0xCAAB, - 6590: 0xCAAC, - 6591: 0xCAAD, - 6592: 0xCAAE, - 6593: 0xCAAF, - 6594: 0xCAB0, - 6595: 0xCAB1, - 6596: 0xCAB2, - 6597: 0xCAB3, - 6598: 0xCAB4, - 6599: 0xCAB5, - 6600: 0xCAB6, - 6601: 0xCAB7, - 6602: 0xCAB8, - 6603: 0xCAB9, - 6604: 0xCABA, - 6605: 0xCABB, - 6606: 0xCABE, - 6607: 0xCABF, - 6608: 0xCAC1, - 6609: 0xCAC2, - 6610: 0xCAC3, - 6611: 0xCAC5, - 6612: 0xCAC6, - 6613: 0xCAC7, - 6614: 0xCAC8, - 6615: 0xCAC9, - 6616: 0xCACA, - 6617: 0xCACB, - 6618: 0xCACE, - 6619: 0xCAD0, - 6620: 0xCAD2, - 6621: 0xCAD4, - 6622: 0xCAD5, - 6623: 0xCAD6, - 6624: 0xCAD7, - 6625: 0xCADA, - 6626: 0xCADB, - 6627: 0xCADC, - 6628: 0xCADD, - 6629: 0xCADE, - 6630: 0xCADF, - 6631: 0xCAE1, - 6632: 0xCAE2, - 6633: 0xCAE3, - 6634: 0xCAE4, - 6635: 0xCAE5, - 6636: 0xCAE6, - 6637: 0xCAE7, - 6638: 0xCAE8, - 6639: 0xCAE9, - 6640: 0xCAEA, - 6641: 0xCAEB, - 6642: 0xCAED, - 6643: 0xCAEE, - 6644: 0xCAEF, - 6645: 0xCAF0, - 6646: 0xCAF1, - 6647: 0xCAF2, - 6648: 0xCAF3, - 6649: 0xCAF5, - 6650: 0xCAF6, - 6651: 0xCAF7, - 6652: 0xCAF8, - 6653: 0xCAF9, - 6654: 0xCAFA, - 6655: 0xCAFB, - 6656: 0xCAFC, - 6657: 0xCAFD, - 6658: 0xCAFE, - 6659: 0xCAFF, - 6660: 0xCB00, - 6661: 0xCB01, - 6662: 0xCB02, - 6663: 0xCB03, - 6664: 0xCB04, - 6665: 0xCB05, - 6666: 0xCB06, - 6667: 0xCB07, - 6668: 0xCB09, - 6669: 0xCB0A, - 6670: 0x2500, - 6671: 0x2502, - 6672: 0x250C, - 6673: 0x2510, - 6674: 0x2518, - 6675: 0x2514, - 6676: 0x251C, - 6677: 0x252C, - 6678: 0x2524, - 6679: 0x2534, - 6680: 0x253C, - 6681: 0x2501, - 6682: 0x2503, - 6683: 0x250F, - 6684: 0x2513, - 6685: 0x251B, - 6686: 0x2517, - 6687: 0x2523, - 6688: 0x2533, - 6689: 0x252B, - 6690: 0x253B, - 6691: 0x254B, - 6692: 0x2520, - 6693: 0x252F, - 6694: 0x2528, - 6695: 0x2537, - 6696: 0x253F, - 6697: 0x251D, - 6698: 0x2530, - 6699: 0x2525, - 6700: 0x2538, - 6701: 0x2542, - 6702: 0x2512, - 6703: 0x2511, - 6704: 0x251A, - 6705: 0x2519, - 6706: 0x2516, - 6707: 0x2515, - 6708: 0x250E, - 6709: 0x250D, - 6710: 0x251E, - 6711: 0x251F, - 6712: 0x2521, - 6713: 0x2522, - 6714: 0x2526, - 6715: 0x2527, - 6716: 0x2529, - 6717: 0x252A, - 6718: 0x252D, - 6719: 0x252E, - 6720: 0x2531, - 6721: 0x2532, - 6722: 0x2535, - 6723: 0x2536, - 6724: 0x2539, - 6725: 0x253A, - 6726: 0x253D, - 6727: 0x253E, - 6728: 0x2540, - 6729: 0x2541, - 6730: 0x2543, - 6731: 0x2544, - 6732: 0x2545, - 6733: 0x2546, - 6734: 0x2547, - 6735: 0x2548, - 6736: 0x2549, - 6737: 0x254A, - 6764: 0xCB0B, - 6765: 0xCB0C, - 6766: 0xCB0D, - 6767: 0xCB0E, - 6768: 0xCB0F, - 6769: 0xCB11, - 6770: 0xCB12, - 6771: 0xCB13, - 6772: 0xCB15, - 6773: 0xCB16, - 6774: 0xCB17, - 6775: 0xCB19, - 6776: 0xCB1A, - 6777: 0xCB1B, - 6778: 0xCB1C, - 6779: 0xCB1D, - 6780: 0xCB1E, - 6781: 0xCB1F, - 6782: 0xCB22, - 6783: 0xCB23, - 6784: 0xCB24, - 6785: 0xCB25, - 6786: 0xCB26, - 6787: 0xCB27, - 6788: 0xCB28, - 6789: 0xCB29, - 6790: 0xCB2A, - 6791: 0xCB2B, - 6792: 0xCB2C, - 6793: 0xCB2D, - 6794: 0xCB2E, - 6795: 0xCB2F, - 6796: 0xCB30, - 6797: 0xCB31, - 6798: 0xCB32, - 6799: 0xCB33, - 6800: 0xCB34, - 6801: 0xCB35, - 6802: 0xCB36, - 6803: 0xCB37, - 6804: 0xCB38, - 6805: 0xCB39, - 6806: 0xCB3A, - 6807: 0xCB3B, - 6808: 0xCB3C, - 6809: 0xCB3D, - 6810: 0xCB3E, - 6811: 0xCB3F, - 6812: 0xCB40, - 6813: 0xCB42, - 6814: 0xCB43, - 6815: 0xCB44, - 6816: 0xCB45, - 6817: 0xCB46, - 6818: 0xCB47, - 6819: 0xCB4A, - 6820: 0xCB4B, - 6821: 0xCB4D, - 6822: 0xCB4E, - 6823: 0xCB4F, - 6824: 0xCB51, - 6825: 0xCB52, - 6826: 0xCB53, - 6827: 0xCB54, - 6828: 0xCB55, - 6829: 0xCB56, - 6830: 0xCB57, - 6831: 0xCB5A, - 6832: 0xCB5B, - 6833: 0xCB5C, - 6834: 0xCB5E, - 6835: 0xCB5F, - 6836: 0xCB60, - 6837: 0xCB61, - 6838: 0xCB62, - 6839: 0xCB63, - 6840: 0xCB65, - 6841: 0xCB66, - 6842: 0xCB67, - 6843: 0xCB68, - 6844: 0xCB69, - 6845: 0xCB6A, - 6846: 0xCB6B, - 6847: 0xCB6C, - 6848: 0x3395, - 6849: 0x3396, - 6850: 0x3397, - 6851: 0x2113, - 6852: 0x3398, - 6853: 0x33C4, - 6854: 0x33A3, - 6855: 0x33A4, - 6856: 0x33A5, - 6857: 0x33A6, - 6858: 0x3399, - 6859: 0x339A, - 6860: 0x339B, - 6861: 0x339C, - 6862: 0x339D, - 6863: 0x339E, - 6864: 0x339F, - 6865: 0x33A0, - 6866: 0x33A1, - 6867: 0x33A2, - 6868: 0x33CA, - 6869: 0x338D, - 6870: 0x338E, - 6871: 0x338F, - 6872: 0x33CF, - 6873: 0x3388, - 6874: 0x3389, - 6875: 0x33C8, - 6876: 0x33A7, - 6877: 0x33A8, - 6878: 0x33B0, - 6879: 0x33B1, - 6880: 0x33B2, - 6881: 0x33B3, - 6882: 0x33B4, - 6883: 0x33B5, - 6884: 0x33B6, - 6885: 0x33B7, - 6886: 0x33B8, - 6887: 0x33B9, - 6888: 0x3380, - 6889: 0x3381, - 6890: 0x3382, - 6891: 0x3383, - 6892: 0x3384, - 6893: 0x33BA, - 6894: 0x33BB, - 6895: 0x33BC, - 6896: 0x33BD, - 6897: 0x33BE, - 6898: 0x33BF, - 6899: 0x3390, - 6900: 0x3391, - 6901: 0x3392, - 6902: 0x3393, - 6903: 0x3394, - 6904: 0x2126, - 6905: 0x33C0, - 6906: 0x33C1, - 6907: 0x338A, - 6908: 0x338B, - 6909: 0x338C, - 6910: 0x33D6, - 6911: 0x33C5, - 6912: 0x33AD, - 6913: 0x33AE, - 6914: 0x33AF, - 6915: 0x33DB, - 6916: 0x33A9, - 6917: 0x33AA, - 6918: 0x33AB, - 6919: 0x33AC, - 6920: 0x33DD, - 6921: 0x33D0, - 6922: 0x33D3, - 6923: 0x33C3, - 6924: 0x33C9, - 6925: 0x33DC, - 6926: 0x33C6, - 6942: 0xCB6D, - 6943: 0xCB6E, - 6944: 0xCB6F, - 6945: 0xCB70, - 6946: 0xCB71, - 6947: 0xCB72, - 6948: 0xCB73, - 6949: 0xCB74, - 6950: 0xCB75, - 6951: 0xCB76, - 6952: 0xCB77, - 6953: 0xCB7A, - 6954: 0xCB7B, - 6955: 0xCB7C, - 6956: 0xCB7D, - 6957: 0xCB7E, - 6958: 0xCB7F, - 6959: 0xCB80, - 6960: 0xCB81, - 6961: 0xCB82, - 6962: 0xCB83, - 6963: 0xCB84, - 6964: 0xCB85, - 6965: 0xCB86, - 6966: 0xCB87, - 6967: 0xCB88, - 6968: 0xCB89, - 6969: 0xCB8A, - 6970: 0xCB8B, - 6971: 0xCB8C, - 6972: 0xCB8D, - 6973: 0xCB8E, - 6974: 0xCB8F, - 6975: 0xCB90, - 6976: 0xCB91, - 6977: 0xCB92, - 6978: 0xCB93, - 6979: 0xCB94, - 6980: 0xCB95, - 6981: 0xCB96, - 6982: 0xCB97, - 6983: 0xCB98, - 6984: 0xCB99, - 6985: 0xCB9A, - 6986: 0xCB9B, - 6987: 0xCB9D, - 6988: 0xCB9E, - 6989: 0xCB9F, - 6990: 0xCBA0, - 6991: 0xCBA1, - 6992: 0xCBA2, - 6993: 0xCBA3, - 6994: 0xCBA4, - 6995: 0xCBA5, - 6996: 0xCBA6, - 6997: 0xCBA7, - 6998: 0xCBA8, - 6999: 0xCBA9, - 7000: 0xCBAA, - 7001: 0xCBAB, - 7002: 0xCBAC, - 7003: 0xCBAD, - 7004: 0xCBAE, - 7005: 0xCBAF, - 7006: 0xCBB0, - 7007: 0xCBB1, - 7008: 0xCBB2, - 7009: 0xCBB3, - 7010: 0xCBB4, - 7011: 0xCBB5, - 7012: 0xCBB6, - 7013: 0xCBB7, - 7014: 0xCBB9, - 7015: 0xCBBA, - 7016: 0xCBBB, - 7017: 0xCBBC, - 7018: 0xCBBD, - 7019: 0xCBBE, - 7020: 0xCBBF, - 7021: 0xCBC0, - 7022: 0xCBC1, - 7023: 0xCBC2, - 7024: 0xCBC3, - 7025: 0xCBC4, - 7026: 0x00C6, - 7027: 0x00D0, - 7028: 0x00AA, - 7029: 0x0126, - 7031: 0x0132, - 7033: 0x013F, - 7034: 0x0141, - 7035: 0x00D8, - 7036: 0x0152, - 7037: 0x00BA, - 7038: 0x00DE, - 7039: 0x0166, - 7040: 0x014A, - 7042: 0x3260, - 7043: 0x3261, - 7044: 0x3262, - 7045: 0x3263, - 7046: 0x3264, - 7047: 0x3265, - 7048: 0x3266, - 7049: 0x3267, - 7050: 0x3268, - 7051: 0x3269, - 7052: 0x326A, - 7053: 0x326B, - 7054: 0x326C, - 7055: 0x326D, - 7056: 0x326E, - 7057: 0x326F, - 7058: 0x3270, - 7059: 0x3271, - 7060: 0x3272, - 7061: 0x3273, - 7062: 0x3274, - 7063: 0x3275, - 7064: 0x3276, - 7065: 0x3277, - 7066: 0x3278, - 7067: 0x3279, - 7068: 0x327A, - 7069: 0x327B, - 7070: 0x24D0, - 7071: 0x24D1, - 7072: 0x24D2, - 7073: 0x24D3, - 7074: 0x24D4, - 7075: 0x24D5, - 7076: 0x24D6, - 7077: 0x24D7, - 7078: 0x24D8, - 7079: 0x24D9, - 7080: 0x24DA, - 7081: 0x24DB, - 7082: 0x24DC, - 7083: 0x24DD, - 7084: 0x24DE, - 7085: 0x24DF, - 7086: 0x24E0, - 7087: 0x24E1, - 7088: 0x24E2, - 7089: 0x24E3, - 7090: 0x24E4, - 7091: 0x24E5, - 7092: 0x24E6, - 7093: 0x24E7, - 7094: 0x24E8, - 7095: 0x24E9, - 7096: 0x2460, - 7097: 0x2461, - 7098: 0x2462, - 7099: 0x2463, - 7100: 0x2464, - 7101: 0x2465, - 7102: 0x2466, - 7103: 0x2467, - 7104: 0x2468, - 7105: 0x2469, - 7106: 0x246A, - 7107: 0x246B, - 7108: 0x246C, - 7109: 0x246D, - 7110: 0x246E, - 7111: 0x00BD, - 7112: 0x2153, - 7113: 0x2154, - 7114: 0x00BC, - 7115: 0x00BE, - 7116: 0x215B, - 7117: 0x215C, - 7118: 0x215D, - 7119: 0x215E, - 7120: 0xCBC5, - 7121: 0xCBC6, - 7122: 0xCBC7, - 7123: 0xCBC8, - 7124: 0xCBC9, - 7125: 0xCBCA, - 7126: 0xCBCB, - 7127: 0xCBCC, - 7128: 0xCBCD, - 7129: 0xCBCE, - 7130: 0xCBCF, - 7131: 0xCBD0, - 7132: 0xCBD1, - 7133: 0xCBD2, - 7134: 0xCBD3, - 7135: 0xCBD5, - 7136: 0xCBD6, - 7137: 0xCBD7, - 7138: 0xCBD8, - 7139: 0xCBD9, - 7140: 0xCBDA, - 7141: 0xCBDB, - 7142: 0xCBDC, - 7143: 0xCBDD, - 7144: 0xCBDE, - 7145: 0xCBDF, - 7146: 0xCBE0, - 7147: 0xCBE1, - 7148: 0xCBE2, - 7149: 0xCBE3, - 7150: 0xCBE5, - 7151: 0xCBE6, - 7152: 0xCBE8, - 7153: 0xCBEA, - 7154: 0xCBEB, - 7155: 0xCBEC, - 7156: 0xCBED, - 7157: 0xCBEE, - 7158: 0xCBEF, - 7159: 0xCBF0, - 7160: 0xCBF1, - 7161: 0xCBF2, - 7162: 0xCBF3, - 7163: 0xCBF4, - 7164: 0xCBF5, - 7165: 0xCBF6, - 7166: 0xCBF7, - 7167: 0xCBF8, - 7168: 0xCBF9, - 7169: 0xCBFA, - 7170: 0xCBFB, - 7171: 0xCBFC, - 7172: 0xCBFD, - 7173: 0xCBFE, - 7174: 0xCBFF, - 7175: 0xCC00, - 7176: 0xCC01, - 7177: 0xCC02, - 7178: 0xCC03, - 7179: 0xCC04, - 7180: 0xCC05, - 7181: 0xCC06, - 7182: 0xCC07, - 7183: 0xCC08, - 7184: 0xCC09, - 7185: 0xCC0A, - 7186: 0xCC0B, - 7187: 0xCC0E, - 7188: 0xCC0F, - 7189: 0xCC11, - 7190: 0xCC12, - 7191: 0xCC13, - 7192: 0xCC15, - 7193: 0xCC16, - 7194: 0xCC17, - 7195: 0xCC18, - 7196: 0xCC19, - 7197: 0xCC1A, - 7198: 0xCC1B, - 7199: 0xCC1E, - 7200: 0xCC1F, - 7201: 0xCC20, - 7202: 0xCC23, - 7203: 0xCC24, - 7204: 0x00E6, - 7205: 0x0111, - 7206: 0x00F0, - 7207: 0x0127, - 7208: 0x0131, - 7209: 0x0133, - 7210: 0x0138, - 7211: 0x0140, - 7212: 0x0142, - 7213: 0x00F8, - 7214: 0x0153, - 7215: 0x00DF, - 7216: 0x00FE, - 7217: 0x0167, - 7218: 0x014B, - 7219: 0x0149, - 7220: 0x3200, - 7221: 0x3201, - 7222: 0x3202, - 7223: 0x3203, - 7224: 0x3204, - 7225: 0x3205, - 7226: 0x3206, - 7227: 0x3207, - 7228: 0x3208, - 7229: 0x3209, - 7230: 0x320A, - 7231: 0x320B, - 7232: 0x320C, - 7233: 0x320D, - 7234: 0x320E, - 7235: 0x320F, - 7236: 0x3210, - 7237: 0x3211, - 7238: 0x3212, - 7239: 0x3213, - 7240: 0x3214, - 7241: 0x3215, - 7242: 0x3216, - 7243: 0x3217, - 7244: 0x3218, - 7245: 0x3219, - 7246: 0x321A, - 7247: 0x321B, - 7248: 0x249C, - 7249: 0x249D, - 7250: 0x249E, - 7251: 0x249F, - 7252: 0x24A0, - 7253: 0x24A1, - 7254: 0x24A2, - 7255: 0x24A3, - 7256: 0x24A4, - 7257: 0x24A5, - 7258: 0x24A6, - 7259: 0x24A7, - 7260: 0x24A8, - 7261: 0x24A9, - 7262: 0x24AA, - 7263: 0x24AB, - 7264: 0x24AC, - 7265: 0x24AD, - 7266: 0x24AE, - 7267: 0x24AF, - 7268: 0x24B0, - 7269: 0x24B1, - 7270: 0x24B2, - 7271: 0x24B3, - 7272: 0x24B4, - 7273: 0x24B5, - 7274: 0x2474, - 7275: 0x2475, - 7276: 0x2476, - 7277: 0x2477, - 7278: 0x2478, - 7279: 0x2479, - 7280: 0x247A, - 7281: 0x247B, - 7282: 0x247C, - 7283: 0x247D, - 7284: 0x247E, - 7285: 0x247F, - 7286: 0x2480, - 7287: 0x2481, - 7288: 0x2482, - 7289: 0x00B9, - 7290: 0x00B2, - 7291: 0x00B3, - 7292: 0x2074, - 7293: 0x207F, - 7294: 0x2081, - 7295: 0x2082, - 7296: 0x2083, - 7297: 0x2084, - 7298: 0xCC25, - 7299: 0xCC26, - 7300: 0xCC2A, - 7301: 0xCC2B, - 7302: 0xCC2D, - 7303: 0xCC2F, - 7304: 0xCC31, - 7305: 0xCC32, - 7306: 0xCC33, - 7307: 0xCC34, - 7308: 0xCC35, - 7309: 0xCC36, - 7310: 0xCC37, - 7311: 0xCC3A, - 7312: 0xCC3F, - 7313: 0xCC40, - 7314: 0xCC41, - 7315: 0xCC42, - 7316: 0xCC43, - 7317: 0xCC46, - 7318: 0xCC47, - 7319: 0xCC49, - 7320: 0xCC4A, - 7321: 0xCC4B, - 7322: 0xCC4D, - 7323: 0xCC4E, - 7324: 0xCC4F, - 7325: 0xCC50, - 7326: 0xCC51, - 7327: 0xCC52, - 7328: 0xCC53, - 7329: 0xCC56, - 7330: 0xCC5A, - 7331: 0xCC5B, - 7332: 0xCC5C, - 7333: 0xCC5D, - 7334: 0xCC5E, - 7335: 0xCC5F, - 7336: 0xCC61, - 7337: 0xCC62, - 7338: 0xCC63, - 7339: 0xCC65, - 7340: 0xCC67, - 7341: 0xCC69, - 7342: 0xCC6A, - 7343: 0xCC6B, - 7344: 0xCC6C, - 7345: 0xCC6D, - 7346: 0xCC6E, - 7347: 0xCC6F, - 7348: 0xCC71, - 7349: 0xCC72, - 7350: 0xCC73, - 7351: 0xCC74, - 7352: 0xCC76, - 7353: 0xCC77, - 7354: 0xCC78, - 7355: 0xCC79, - 7356: 0xCC7A, - 7357: 0xCC7B, - 7358: 0xCC7C, - 7359: 0xCC7D, - 7360: 0xCC7E, - 7361: 0xCC7F, - 7362: 0xCC80, - 7363: 0xCC81, - 7364: 0xCC82, - 7365: 0xCC83, - 7366: 0xCC84, - 7367: 0xCC85, - 7368: 0xCC86, - 7369: 0xCC87, - 7370: 0xCC88, - 7371: 0xCC89, - 7372: 0xCC8A, - 7373: 0xCC8B, - 7374: 0xCC8C, - 7375: 0xCC8D, - 7376: 0xCC8E, - 7377: 0xCC8F, - 7378: 0xCC90, - 7379: 0xCC91, - 7380: 0xCC92, - 7381: 0xCC93, - 7382: 0x3041, - 7383: 0x3042, - 7384: 0x3043, - 7385: 0x3044, - 7386: 0x3045, - 7387: 0x3046, - 7388: 0x3047, - 7389: 0x3048, - 7390: 0x3049, - 7391: 0x304A, - 7392: 0x304B, - 7393: 0x304C, - 7394: 0x304D, - 7395: 0x304E, - 7396: 0x304F, - 7397: 0x3050, - 7398: 0x3051, - 7399: 0x3052, - 7400: 0x3053, - 7401: 0x3054, - 7402: 0x3055, - 7403: 0x3056, - 7404: 0x3057, - 7405: 0x3058, - 7406: 0x3059, - 7407: 0x305A, - 7408: 0x305B, - 7409: 0x305C, - 7410: 0x305D, - 7411: 0x305E, - 7412: 0x305F, - 7413: 0x3060, - 7414: 0x3061, - 7415: 0x3062, - 7416: 0x3063, - 7417: 0x3064, - 7418: 0x3065, - 7419: 0x3066, - 7420: 0x3067, - 7421: 0x3068, - 7422: 0x3069, - 7423: 0x306A, - 7424: 0x306B, - 7425: 0x306C, - 7426: 0x306D, - 7427: 0x306E, - 7428: 0x306F, - 7429: 0x3070, - 7430: 0x3071, - 7431: 0x3072, - 7432: 0x3073, - 7433: 0x3074, - 7434: 0x3075, - 7435: 0x3076, - 7436: 0x3077, - 7437: 0x3078, - 7438: 0x3079, - 7439: 0x307A, - 7440: 0x307B, - 7441: 0x307C, - 7442: 0x307D, - 7443: 0x307E, - 7444: 0x307F, - 7445: 0x3080, - 7446: 0x3081, - 7447: 0x3082, - 7448: 0x3083, - 7449: 0x3084, - 7450: 0x3085, - 7451: 0x3086, - 7452: 0x3087, - 7453: 0x3088, - 7454: 0x3089, - 7455: 0x308A, - 7456: 0x308B, - 7457: 0x308C, - 7458: 0x308D, - 7459: 0x308E, - 7460: 0x308F, - 7461: 0x3090, - 7462: 0x3091, - 7463: 0x3092, - 7464: 0x3093, - 7476: 0xCC94, - 7477: 0xCC95, - 7478: 0xCC96, - 7479: 0xCC97, - 7480: 0xCC9A, - 7481: 0xCC9B, - 7482: 0xCC9D, - 7483: 0xCC9E, - 7484: 0xCC9F, - 7485: 0xCCA1, - 7486: 0xCCA2, - 7487: 0xCCA3, - 7488: 0xCCA4, - 7489: 0xCCA5, - 7490: 0xCCA6, - 7491: 0xCCA7, - 7492: 0xCCAA, - 7493: 0xCCAE, - 7494: 0xCCAF, - 7495: 0xCCB0, - 7496: 0xCCB1, - 7497: 0xCCB2, - 7498: 0xCCB3, - 7499: 0xCCB6, - 7500: 0xCCB7, - 7501: 0xCCB9, - 7502: 0xCCBA, - 7503: 0xCCBB, - 7504: 0xCCBD, - 7505: 0xCCBE, - 7506: 0xCCBF, - 7507: 0xCCC0, - 7508: 0xCCC1, - 7509: 0xCCC2, - 7510: 0xCCC3, - 7511: 0xCCC6, - 7512: 0xCCC8, - 7513: 0xCCCA, - 7514: 0xCCCB, - 7515: 0xCCCC, - 7516: 0xCCCD, - 7517: 0xCCCE, - 7518: 0xCCCF, - 7519: 0xCCD1, - 7520: 0xCCD2, - 7521: 0xCCD3, - 7522: 0xCCD5, - 7523: 0xCCD6, - 7524: 0xCCD7, - 7525: 0xCCD8, - 7526: 0xCCD9, - 7527: 0xCCDA, - 7528: 0xCCDB, - 7529: 0xCCDC, - 7530: 0xCCDD, - 7531: 0xCCDE, - 7532: 0xCCDF, - 7533: 0xCCE0, - 7534: 0xCCE1, - 7535: 0xCCE2, - 7536: 0xCCE3, - 7537: 0xCCE5, - 7538: 0xCCE6, - 7539: 0xCCE7, - 7540: 0xCCE8, - 7541: 0xCCE9, - 7542: 0xCCEA, - 7543: 0xCCEB, - 7544: 0xCCED, - 7545: 0xCCEE, - 7546: 0xCCEF, - 7547: 0xCCF1, - 7548: 0xCCF2, - 7549: 0xCCF3, - 7550: 0xCCF4, - 7551: 0xCCF5, - 7552: 0xCCF6, - 7553: 0xCCF7, - 7554: 0xCCF8, - 7555: 0xCCF9, - 7556: 0xCCFA, - 7557: 0xCCFB, - 7558: 0xCCFC, - 7559: 0xCCFD, - 7560: 0x30A1, - 7561: 0x30A2, - 7562: 0x30A3, - 7563: 0x30A4, - 7564: 0x30A5, - 7565: 0x30A6, - 7566: 0x30A7, - 7567: 0x30A8, - 7568: 0x30A9, - 7569: 0x30AA, - 7570: 0x30AB, - 7571: 0x30AC, - 7572: 0x30AD, - 7573: 0x30AE, - 7574: 0x30AF, - 7575: 0x30B0, - 7576: 0x30B1, - 7577: 0x30B2, - 7578: 0x30B3, - 7579: 0x30B4, - 7580: 0x30B5, - 7581: 0x30B6, - 7582: 0x30B7, - 7583: 0x30B8, - 7584: 0x30B9, - 7585: 0x30BA, - 7586: 0x30BB, - 7587: 0x30BC, - 7588: 0x30BD, - 7589: 0x30BE, - 7590: 0x30BF, - 7591: 0x30C0, - 7592: 0x30C1, - 7593: 0x30C2, - 7594: 0x30C3, - 7595: 0x30C4, - 7596: 0x30C5, - 7597: 0x30C6, - 7598: 0x30C7, - 7599: 0x30C8, - 7600: 0x30C9, - 7601: 0x30CA, - 7602: 0x30CB, - 7603: 0x30CC, - 7604: 0x30CD, - 7605: 0x30CE, - 7606: 0x30CF, - 7607: 0x30D0, - 7608: 0x30D1, - 7609: 0x30D2, - 7610: 0x30D3, - 7611: 0x30D4, - 7612: 0x30D5, - 7613: 0x30D6, - 7614: 0x30D7, - 7615: 0x30D8, - 7616: 0x30D9, - 7617: 0x30DA, - 7618: 0x30DB, - 7619: 0x30DC, - 7620: 0x30DD, - 7621: 0x30DE, - 7622: 0x30DF, - 7623: 0x30E0, - 7624: 0x30E1, - 7625: 0x30E2, - 7626: 0x30E3, - 7627: 0x30E4, - 7628: 0x30E5, - 7629: 0x30E6, - 7630: 0x30E7, - 7631: 0x30E8, - 7632: 0x30E9, - 7633: 0x30EA, - 7634: 0x30EB, - 7635: 0x30EC, - 7636: 0x30ED, - 7637: 0x30EE, - 7638: 0x30EF, - 7639: 0x30F0, - 7640: 0x30F1, - 7641: 0x30F2, - 7642: 0x30F3, - 7643: 0x30F4, - 7644: 0x30F5, - 7645: 0x30F6, - 7654: 0xCCFE, - 7655: 0xCCFF, - 7656: 0xCD00, - 7657: 0xCD02, - 7658: 0xCD03, - 7659: 0xCD04, - 7660: 0xCD05, - 7661: 0xCD06, - 7662: 0xCD07, - 7663: 0xCD0A, - 7664: 0xCD0B, - 7665: 0xCD0D, - 7666: 0xCD0E, - 7667: 0xCD0F, - 7668: 0xCD11, - 7669: 0xCD12, - 7670: 0xCD13, - 7671: 0xCD14, - 7672: 0xCD15, - 7673: 0xCD16, - 7674: 0xCD17, - 7675: 0xCD1A, - 7676: 0xCD1C, - 7677: 0xCD1E, - 7678: 0xCD1F, - 7679: 0xCD20, - 7680: 0xCD21, - 7681: 0xCD22, - 7682: 0xCD23, - 7683: 0xCD25, - 7684: 0xCD26, - 7685: 0xCD27, - 7686: 0xCD29, - 7687: 0xCD2A, - 7688: 0xCD2B, - 7689: 0xCD2D, - 7690: 0xCD2E, - 7691: 0xCD2F, - 7692: 0xCD30, - 7693: 0xCD31, - 7694: 0xCD32, - 7695: 0xCD33, - 7696: 0xCD34, - 7697: 0xCD35, - 7698: 0xCD36, - 7699: 0xCD37, - 7700: 0xCD38, - 7701: 0xCD3A, - 7702: 0xCD3B, - 7703: 0xCD3C, - 7704: 0xCD3D, - 7705: 0xCD3E, - 7706: 0xCD3F, - 7707: 0xCD40, - 7708: 0xCD41, - 7709: 0xCD42, - 7710: 0xCD43, - 7711: 0xCD44, - 7712: 0xCD45, - 7713: 0xCD46, - 7714: 0xCD47, - 7715: 0xCD48, - 7716: 0xCD49, - 7717: 0xCD4A, - 7718: 0xCD4B, - 7719: 0xCD4C, - 7720: 0xCD4D, - 7721: 0xCD4E, - 7722: 0xCD4F, - 7723: 0xCD50, - 7724: 0xCD51, - 7725: 0xCD52, - 7726: 0xCD53, - 7727: 0xCD54, - 7728: 0xCD55, - 7729: 0xCD56, - 7730: 0xCD57, - 7731: 0xCD58, - 7732: 0xCD59, - 7733: 0xCD5A, - 7734: 0xCD5B, - 7735: 0xCD5D, - 7736: 0xCD5E, - 7737: 0xCD5F, - 7738: 0x0410, - 7739: 0x0411, - 7740: 0x0412, - 7741: 0x0413, - 7742: 0x0414, - 7743: 0x0415, - 7744: 0x0401, - 7745: 0x0416, - 7746: 0x0417, - 7747: 0x0418, - 7748: 0x0419, - 7749: 0x041A, - 7750: 0x041B, - 7751: 0x041C, - 7752: 0x041D, - 7753: 0x041E, - 7754: 0x041F, - 7755: 0x0420, - 7756: 0x0421, - 7757: 0x0422, - 7758: 0x0423, - 7759: 0x0424, - 7760: 0x0425, - 7761: 0x0426, - 7762: 0x0427, - 7763: 0x0428, - 7764: 0x0429, - 7765: 0x042A, - 7766: 0x042B, - 7767: 0x042C, - 7768: 0x042D, - 7769: 0x042E, - 7770: 0x042F, - 7786: 0x0430, - 7787: 0x0431, - 7788: 0x0432, - 7789: 0x0433, - 7790: 0x0434, - 7791: 0x0435, - 7792: 0x0451, - 7793: 0x0436, - 7794: 0x0437, - 7795: 0x0438, - 7796: 0x0439, - 7797: 0x043A, - 7798: 0x043B, - 7799: 0x043C, - 7800: 0x043D, - 7801: 0x043E, - 7802: 0x043F, - 7803: 0x0440, - 7804: 0x0441, - 7805: 0x0442, - 7806: 0x0443, - 7807: 0x0444, - 7808: 0x0445, - 7809: 0x0446, - 7810: 0x0447, - 7811: 0x0448, - 7812: 0x0449, - 7813: 0x044A, - 7814: 0x044B, - 7815: 0x044C, - 7816: 0x044D, - 7817: 0x044E, - 7818: 0x044F, - 7832: 0xCD61, - 7833: 0xCD62, - 7834: 0xCD63, - 7835: 0xCD65, - 7836: 0xCD66, - 7837: 0xCD67, - 7838: 0xCD68, - 7839: 0xCD69, - 7840: 0xCD6A, - 7841: 0xCD6B, - 7842: 0xCD6E, - 7843: 0xCD70, - 7844: 0xCD72, - 7845: 0xCD73, - 7846: 0xCD74, - 7847: 0xCD75, - 7848: 0xCD76, - 7849: 0xCD77, - 7850: 0xCD79, - 7851: 0xCD7A, - 7852: 0xCD7B, - 7853: 0xCD7C, - 7854: 0xCD7D, - 7855: 0xCD7E, - 7856: 0xCD7F, - 7857: 0xCD80, - 7858: 0xCD81, - 7859: 0xCD82, - 7860: 0xCD83, - 7861: 0xCD84, - 7862: 0xCD85, - 7863: 0xCD86, - 7864: 0xCD87, - 7865: 0xCD89, - 7866: 0xCD8A, - 7867: 0xCD8B, - 7868: 0xCD8C, - 7869: 0xCD8D, - 7870: 0xCD8E, - 7871: 0xCD8F, - 7872: 0xCD90, - 7873: 0xCD91, - 7874: 0xCD92, - 7875: 0xCD93, - 7876: 0xCD96, - 7877: 0xCD97, - 7878: 0xCD99, - 7879: 0xCD9A, - 7880: 0xCD9B, - 7881: 0xCD9D, - 7882: 0xCD9E, - 7883: 0xCD9F, - 7884: 0xCDA0, - 7885: 0xCDA1, - 7886: 0xCDA2, - 7887: 0xCDA3, - 7888: 0xCDA6, - 7889: 0xCDA8, - 7890: 0xCDAA, - 7891: 0xCDAB, - 7892: 0xCDAC, - 7893: 0xCDAD, - 7894: 0xCDAE, - 7895: 0xCDAF, - 7896: 0xCDB1, - 7897: 0xCDB2, - 7898: 0xCDB3, - 7899: 0xCDB4, - 7900: 0xCDB5, - 7901: 0xCDB6, - 7902: 0xCDB7, - 7903: 0xCDB8, - 7904: 0xCDB9, - 7905: 0xCDBA, - 7906: 0xCDBB, - 7907: 0xCDBC, - 7908: 0xCDBD, - 7909: 0xCDBE, - 7910: 0xCDBF, - 7911: 0xCDC0, - 7912: 0xCDC1, - 7913: 0xCDC2, - 7914: 0xCDC3, - 7915: 0xCDC5, - 8010: 0xCDC6, - 8011: 0xCDC7, - 8012: 0xCDC8, - 8013: 0xCDC9, - 8014: 0xCDCA, - 8015: 0xCDCB, - 8016: 0xCDCD, - 8017: 0xCDCE, - 8018: 0xCDCF, - 8019: 0xCDD1, - 8020: 0xCDD2, - 8021: 0xCDD3, - 8022: 0xCDD4, - 8023: 0xCDD5, - 8024: 0xCDD6, - 8025: 0xCDD7, - 8026: 0xCDD8, - 8027: 0xCDD9, - 8028: 0xCDDA, - 8029: 0xCDDB, - 8030: 0xCDDC, - 8031: 0xCDDD, - 8032: 0xCDDE, - 8033: 0xCDDF, - 8034: 0xCDE0, - 8035: 0xCDE1, - 8036: 0xCDE2, - 8037: 0xCDE3, - 8038: 0xCDE4, - 8039: 0xCDE5, - 8040: 0xCDE6, - 8041: 0xCDE7, - 8042: 0xCDE9, - 8043: 0xCDEA, - 8044: 0xCDEB, - 8045: 0xCDED, - 8046: 0xCDEE, - 8047: 0xCDEF, - 8048: 0xCDF1, - 8049: 0xCDF2, - 8050: 0xCDF3, - 8051: 0xCDF4, - 8052: 0xCDF5, - 8053: 0xCDF6, - 8054: 0xCDF7, - 8055: 0xCDFA, - 8056: 0xCDFC, - 8057: 0xCDFE, - 8058: 0xCDFF, - 8059: 0xCE00, - 8060: 0xCE01, - 8061: 0xCE02, - 8062: 0xCE03, - 8063: 0xCE05, - 8064: 0xCE06, - 8065: 0xCE07, - 8066: 0xCE09, - 8067: 0xCE0A, - 8068: 0xCE0B, - 8069: 0xCE0D, - 8070: 0xCE0E, - 8071: 0xCE0F, - 8072: 0xCE10, - 8073: 0xCE11, - 8074: 0xCE12, - 8075: 0xCE13, - 8076: 0xCE15, - 8077: 0xCE16, - 8078: 0xCE17, - 8079: 0xCE18, - 8080: 0xCE1A, - 8081: 0xCE1B, - 8082: 0xCE1C, - 8083: 0xCE1D, - 8084: 0xCE1E, - 8085: 0xCE1F, - 8086: 0xCE22, - 8087: 0xCE23, - 8088: 0xCE25, - 8089: 0xCE26, - 8090: 0xCE27, - 8091: 0xCE29, - 8092: 0xCE2A, - 8093: 0xCE2B, - 8188: 0xCE2C, - 8189: 0xCE2D, - 8190: 0xCE2E, - 8191: 0xCE2F, - 8192: 0xCE32, - 8193: 0xCE34, - 8194: 0xCE36, - 8195: 0xCE37, - 8196: 0xCE38, - 8197: 0xCE39, - 8198: 0xCE3A, - 8199: 0xCE3B, - 8200: 0xCE3C, - 8201: 0xCE3D, - 8202: 0xCE3E, - 8203: 0xCE3F, - 8204: 0xCE40, - 8205: 0xCE41, - 8206: 0xCE42, - 8207: 0xCE43, - 8208: 0xCE44, - 8209: 0xCE45, - 8210: 0xCE46, - 8211: 0xCE47, - 8212: 0xCE48, - 8213: 0xCE49, - 8214: 0xCE4A, - 8215: 0xCE4B, - 8216: 0xCE4C, - 8217: 0xCE4D, - 8218: 0xCE4E, - 8219: 0xCE4F, - 8220: 0xCE50, - 8221: 0xCE51, - 8222: 0xCE52, - 8223: 0xCE53, - 8224: 0xCE54, - 8225: 0xCE55, - 8226: 0xCE56, - 8227: 0xCE57, - 8228: 0xCE5A, - 8229: 0xCE5B, - 8230: 0xCE5D, - 8231: 0xCE5E, - 8232: 0xCE62, - 8233: 0xCE63, - 8234: 0xCE64, - 8235: 0xCE65, - 8236: 0xCE66, - 8237: 0xCE67, - 8238: 0xCE6A, - 8239: 0xCE6C, - 8240: 0xCE6E, - 8241: 0xCE6F, - 8242: 0xCE70, - 8243: 0xCE71, - 8244: 0xCE72, - 8245: 0xCE73, - 8246: 0xCE76, - 8247: 0xCE77, - 8248: 0xCE79, - 8249: 0xCE7A, - 8250: 0xCE7B, - 8251: 0xCE7D, - 8252: 0xCE7E, - 8253: 0xCE7F, - 8254: 0xCE80, - 8255: 0xCE81, - 8256: 0xCE82, - 8257: 0xCE83, - 8258: 0xCE86, - 8259: 0xCE88, - 8260: 0xCE8A, - 8261: 0xCE8B, - 8262: 0xCE8C, - 8263: 0xCE8D, - 8264: 0xCE8E, - 8265: 0xCE8F, - 8266: 0xCE92, - 8267: 0xCE93, - 8268: 0xCE95, - 8269: 0xCE96, - 8270: 0xCE97, - 8271: 0xCE99, - 8366: 0xCE9A, - 8367: 0xCE9B, - 8368: 0xCE9C, - 8369: 0xCE9D, - 8370: 0xCE9E, - 8371: 0xCE9F, - 8372: 0xCEA2, - 8373: 0xCEA6, - 8374: 0xCEA7, - 8375: 0xCEA8, - 8376: 0xCEA9, - 8377: 0xCEAA, - 8378: 0xCEAB, - 8379: 0xCEAE, - 8380: 0xCEAF, - 8381: 0xCEB0, - 8382: 0xCEB1, - 8383: 0xCEB2, - 8384: 0xCEB3, - 8385: 0xCEB4, - 8386: 0xCEB5, - 8387: 0xCEB6, - 8388: 0xCEB7, - 8389: 0xCEB8, - 8390: 0xCEB9, - 8391: 0xCEBA, - 8392: 0xCEBB, - 8393: 0xCEBC, - 8394: 0xCEBD, - 8395: 0xCEBE, - 8396: 0xCEBF, - 8397: 0xCEC0, - 8398: 0xCEC2, - 8399: 0xCEC3, - 8400: 0xCEC4, - 8401: 0xCEC5, - 8402: 0xCEC6, - 8403: 0xCEC7, - 8404: 0xCEC8, - 8405: 0xCEC9, - 8406: 0xCECA, - 8407: 0xCECB, - 8408: 0xCECC, - 8409: 0xCECD, - 8410: 0xCECE, - 8411: 0xCECF, - 8412: 0xCED0, - 8413: 0xCED1, - 8414: 0xCED2, - 8415: 0xCED3, - 8416: 0xCED4, - 8417: 0xCED5, - 8418: 0xCED6, - 8419: 0xCED7, - 8420: 0xCED8, - 8421: 0xCED9, - 8422: 0xCEDA, - 8423: 0xCEDB, - 8424: 0xCEDC, - 8425: 0xCEDD, - 8426: 0xCEDE, - 8427: 0xCEDF, - 8428: 0xCEE0, - 8429: 0xCEE1, - 8430: 0xCEE2, - 8431: 0xCEE3, - 8432: 0xCEE6, - 8433: 0xCEE7, - 8434: 0xCEE9, - 8435: 0xCEEA, - 8436: 0xCEED, - 8437: 0xCEEE, - 8438: 0xCEEF, - 8439: 0xCEF0, - 8440: 0xCEF1, - 8441: 0xCEF2, - 8442: 0xCEF3, - 8443: 0xCEF6, - 8444: 0xCEFA, - 8445: 0xCEFB, - 8446: 0xCEFC, - 8447: 0xCEFD, - 8448: 0xCEFE, - 8449: 0xCEFF, - 8450: 0xAC00, - 8451: 0xAC01, - 8452: 0xAC04, - 8453: 0xAC07, - 8454: 0xAC08, - 8455: 0xAC09, - 8456: 0xAC0A, - 8457: 0xAC10, - 8458: 0xAC11, - 8459: 0xAC12, - 8460: 0xAC13, - 8461: 0xAC14, - 8462: 0xAC15, - 8463: 0xAC16, - 8464: 0xAC17, - 8465: 0xAC19, - 8466: 0xAC1A, - 8467: 0xAC1B, - 8468: 0xAC1C, - 8469: 0xAC1D, - 8470: 0xAC20, - 8471: 0xAC24, - 8472: 0xAC2C, - 8473: 0xAC2D, - 8474: 0xAC2F, - 8475: 0xAC30, - 8476: 0xAC31, - 8477: 0xAC38, - 8478: 0xAC39, - 8479: 0xAC3C, - 8480: 0xAC40, - 8481: 0xAC4B, - 8482: 0xAC4D, - 8483: 0xAC54, - 8484: 0xAC58, - 8485: 0xAC5C, - 8486: 0xAC70, - 8487: 0xAC71, - 8488: 0xAC74, - 8489: 0xAC77, - 8490: 0xAC78, - 8491: 0xAC7A, - 8492: 0xAC80, - 8493: 0xAC81, - 8494: 0xAC83, - 8495: 0xAC84, - 8496: 0xAC85, - 8497: 0xAC86, - 8498: 0xAC89, - 8499: 0xAC8A, - 8500: 0xAC8B, - 8501: 0xAC8C, - 8502: 0xAC90, - 8503: 0xAC94, - 8504: 0xAC9C, - 8505: 0xAC9D, - 8506: 0xAC9F, - 8507: 0xACA0, - 8508: 0xACA1, - 8509: 0xACA8, - 8510: 0xACA9, - 8511: 0xACAA, - 8512: 0xACAC, - 8513: 0xACAF, - 8514: 0xACB0, - 8515: 0xACB8, - 8516: 0xACB9, - 8517: 0xACBB, - 8518: 0xACBC, - 8519: 0xACBD, - 8520: 0xACC1, - 8521: 0xACC4, - 8522: 0xACC8, - 8523: 0xACCC, - 8524: 0xACD5, - 8525: 0xACD7, - 8526: 0xACE0, - 8527: 0xACE1, - 8528: 0xACE4, - 8529: 0xACE7, - 8530: 0xACE8, - 8531: 0xACEA, - 8532: 0xACEC, - 8533: 0xACEF, - 8534: 0xACF0, - 8535: 0xACF1, - 8536: 0xACF3, - 8537: 0xACF5, - 8538: 0xACF6, - 8539: 0xACFC, - 8540: 0xACFD, - 8541: 0xAD00, - 8542: 0xAD04, - 8543: 0xAD06, - 8544: 0xCF02, - 8545: 0xCF03, - 8546: 0xCF05, - 8547: 0xCF06, - 8548: 0xCF07, - 8549: 0xCF09, - 8550: 0xCF0A, - 8551: 0xCF0B, - 8552: 0xCF0C, - 8553: 0xCF0D, - 8554: 0xCF0E, - 8555: 0xCF0F, - 8556: 0xCF12, - 8557: 0xCF14, - 8558: 0xCF16, - 8559: 0xCF17, - 8560: 0xCF18, - 8561: 0xCF19, - 8562: 0xCF1A, - 8563: 0xCF1B, - 8564: 0xCF1D, - 8565: 0xCF1E, - 8566: 0xCF1F, - 8567: 0xCF21, - 8568: 0xCF22, - 8569: 0xCF23, - 8570: 0xCF25, - 8571: 0xCF26, - 8572: 0xCF27, - 8573: 0xCF28, - 8574: 0xCF29, - 8575: 0xCF2A, - 8576: 0xCF2B, - 8577: 0xCF2E, - 8578: 0xCF32, - 8579: 0xCF33, - 8580: 0xCF34, - 8581: 0xCF35, - 8582: 0xCF36, - 8583: 0xCF37, - 8584: 0xCF39, - 8585: 0xCF3A, - 8586: 0xCF3B, - 8587: 0xCF3C, - 8588: 0xCF3D, - 8589: 0xCF3E, - 8590: 0xCF3F, - 8591: 0xCF40, - 8592: 0xCF41, - 8593: 0xCF42, - 8594: 0xCF43, - 8595: 0xCF44, - 8596: 0xCF45, - 8597: 0xCF46, - 8598: 0xCF47, - 8599: 0xCF48, - 8600: 0xCF49, - 8601: 0xCF4A, - 8602: 0xCF4B, - 8603: 0xCF4C, - 8604: 0xCF4D, - 8605: 0xCF4E, - 8606: 0xCF4F, - 8607: 0xCF50, - 8608: 0xCF51, - 8609: 0xCF52, - 8610: 0xCF53, - 8611: 0xCF56, - 8612: 0xCF57, - 8613: 0xCF59, - 8614: 0xCF5A, - 8615: 0xCF5B, - 8616: 0xCF5D, - 8617: 0xCF5E, - 8618: 0xCF5F, - 8619: 0xCF60, - 8620: 0xCF61, - 8621: 0xCF62, - 8622: 0xCF63, - 8623: 0xCF66, - 8624: 0xCF68, - 8625: 0xCF6A, - 8626: 0xCF6B, - 8627: 0xCF6C, - 8628: 0xAD0C, - 8629: 0xAD0D, - 8630: 0xAD0F, - 8631: 0xAD11, - 8632: 0xAD18, - 8633: 0xAD1C, - 8634: 0xAD20, - 8635: 0xAD29, - 8636: 0xAD2C, - 8637: 0xAD2D, - 8638: 0xAD34, - 8639: 0xAD35, - 8640: 0xAD38, - 8641: 0xAD3C, - 8642: 0xAD44, - 8643: 0xAD45, - 8644: 0xAD47, - 8645: 0xAD49, - 8646: 0xAD50, - 8647: 0xAD54, - 8648: 0xAD58, - 8649: 0xAD61, - 8650: 0xAD63, - 8651: 0xAD6C, - 8652: 0xAD6D, - 8653: 0xAD70, - 8654: 0xAD73, - 8655: 0xAD74, - 8656: 0xAD75, - 8657: 0xAD76, - 8658: 0xAD7B, - 8659: 0xAD7C, - 8660: 0xAD7D, - 8661: 0xAD7F, - 8662: 0xAD81, - 8663: 0xAD82, - 8664: 0xAD88, - 8665: 0xAD89, - 8666: 0xAD8C, - 8667: 0xAD90, - 8668: 0xAD9C, - 8669: 0xAD9D, - 8670: 0xADA4, - 8671: 0xADB7, - 8672: 0xADC0, - 8673: 0xADC1, - 8674: 0xADC4, - 8675: 0xADC8, - 8676: 0xADD0, - 8677: 0xADD1, - 8678: 0xADD3, - 8679: 0xADDC, - 8680: 0xADE0, - 8681: 0xADE4, - 8682: 0xADF8, - 8683: 0xADF9, - 8684: 0xADFC, - 8685: 0xADFF, - 8686: 0xAE00, - 8687: 0xAE01, - 8688: 0xAE08, - 8689: 0xAE09, - 8690: 0xAE0B, - 8691: 0xAE0D, - 8692: 0xAE14, - 8693: 0xAE30, - 8694: 0xAE31, - 8695: 0xAE34, - 8696: 0xAE37, - 8697: 0xAE38, - 8698: 0xAE3A, - 8699: 0xAE40, - 8700: 0xAE41, - 8701: 0xAE43, - 8702: 0xAE45, - 8703: 0xAE46, - 8704: 0xAE4A, - 8705: 0xAE4C, - 8706: 0xAE4D, - 8707: 0xAE4E, - 8708: 0xAE50, - 8709: 0xAE54, - 8710: 0xAE56, - 8711: 0xAE5C, - 8712: 0xAE5D, - 8713: 0xAE5F, - 8714: 0xAE60, - 8715: 0xAE61, - 8716: 0xAE65, - 8717: 0xAE68, - 8718: 0xAE69, - 8719: 0xAE6C, - 8720: 0xAE70, - 8721: 0xAE78, - 8722: 0xCF6D, - 8723: 0xCF6E, - 8724: 0xCF6F, - 8725: 0xCF72, - 8726: 0xCF73, - 8727: 0xCF75, - 8728: 0xCF76, - 8729: 0xCF77, - 8730: 0xCF79, - 8731: 0xCF7A, - 8732: 0xCF7B, - 8733: 0xCF7C, - 8734: 0xCF7D, - 8735: 0xCF7E, - 8736: 0xCF7F, - 8737: 0xCF81, - 8738: 0xCF82, - 8739: 0xCF83, - 8740: 0xCF84, - 8741: 0xCF86, - 8742: 0xCF87, - 8743: 0xCF88, - 8744: 0xCF89, - 8745: 0xCF8A, - 8746: 0xCF8B, - 8747: 0xCF8D, - 8748: 0xCF8E, - 8749: 0xCF8F, - 8750: 0xCF90, - 8751: 0xCF91, - 8752: 0xCF92, - 8753: 0xCF93, - 8754: 0xCF94, - 8755: 0xCF95, - 8756: 0xCF96, - 8757: 0xCF97, - 8758: 0xCF98, - 8759: 0xCF99, - 8760: 0xCF9A, - 8761: 0xCF9B, - 8762: 0xCF9C, - 8763: 0xCF9D, - 8764: 0xCF9E, - 8765: 0xCF9F, - 8766: 0xCFA0, - 8767: 0xCFA2, - 8768: 0xCFA3, - 8769: 0xCFA4, - 8770: 0xCFA5, - 8771: 0xCFA6, - 8772: 0xCFA7, - 8773: 0xCFA9, - 8774: 0xCFAA, - 8775: 0xCFAB, - 8776: 0xCFAC, - 8777: 0xCFAD, - 8778: 0xCFAE, - 8779: 0xCFAF, - 8780: 0xCFB1, - 8781: 0xCFB2, - 8782: 0xCFB3, - 8783: 0xCFB4, - 8784: 0xCFB5, - 8785: 0xCFB6, - 8786: 0xCFB7, - 8787: 0xCFB8, - 8788: 0xCFB9, - 8789: 0xCFBA, - 8790: 0xCFBB, - 8791: 0xCFBC, - 8792: 0xCFBD, - 8793: 0xCFBE, - 8794: 0xCFBF, - 8795: 0xCFC0, - 8796: 0xCFC1, - 8797: 0xCFC2, - 8798: 0xCFC3, - 8799: 0xCFC5, - 8800: 0xCFC6, - 8801: 0xCFC7, - 8802: 0xCFC8, - 8803: 0xCFC9, - 8804: 0xCFCA, - 8805: 0xCFCB, - 8806: 0xAE79, - 8807: 0xAE7B, - 8808: 0xAE7C, - 8809: 0xAE7D, - 8810: 0xAE84, - 8811: 0xAE85, - 8812: 0xAE8C, - 8813: 0xAEBC, - 8814: 0xAEBD, - 8815: 0xAEBE, - 8816: 0xAEC0, - 8817: 0xAEC4, - 8818: 0xAECC, - 8819: 0xAECD, - 8820: 0xAECF, - 8821: 0xAED0, - 8822: 0xAED1, - 8823: 0xAED8, - 8824: 0xAED9, - 8825: 0xAEDC, - 8826: 0xAEE8, - 8827: 0xAEEB, - 8828: 0xAEED, - 8829: 0xAEF4, - 8830: 0xAEF8, - 8831: 0xAEFC, - 8832: 0xAF07, - 8833: 0xAF08, - 8834: 0xAF0D, - 8835: 0xAF10, - 8836: 0xAF2C, - 8837: 0xAF2D, - 8838: 0xAF30, - 8839: 0xAF32, - 8840: 0xAF34, - 8841: 0xAF3C, - 8842: 0xAF3D, - 8843: 0xAF3F, - 8844: 0xAF41, - 8845: 0xAF42, - 8846: 0xAF43, - 8847: 0xAF48, - 8848: 0xAF49, - 8849: 0xAF50, - 8850: 0xAF5C, - 8851: 0xAF5D, - 8852: 0xAF64, - 8853: 0xAF65, - 8854: 0xAF79, - 8855: 0xAF80, - 8856: 0xAF84, - 8857: 0xAF88, - 8858: 0xAF90, - 8859: 0xAF91, - 8860: 0xAF95, - 8861: 0xAF9C, - 8862: 0xAFB8, - 8863: 0xAFB9, - 8864: 0xAFBC, - 8865: 0xAFC0, - 8866: 0xAFC7, - 8867: 0xAFC8, - 8868: 0xAFC9, - 8869: 0xAFCB, - 8870: 0xAFCD, - 8871: 0xAFCE, - 8872: 0xAFD4, - 8873: 0xAFDC, - 8874: 0xAFE8, - 8875: 0xAFE9, - 8876: 0xAFF0, - 8877: 0xAFF1, - 8878: 0xAFF4, - 8879: 0xAFF8, - 8880: 0xB000, - 8881: 0xB001, - 8882: 0xB004, - 8883: 0xB00C, - 8884: 0xB010, - 8885: 0xB014, - 8886: 0xB01C, - 8887: 0xB01D, - 8888: 0xB028, - 8889: 0xB044, - 8890: 0xB045, - 8891: 0xB048, - 8892: 0xB04A, - 8893: 0xB04C, - 8894: 0xB04E, - 8895: 0xB053, - 8896: 0xB054, - 8897: 0xB055, - 8898: 0xB057, - 8899: 0xB059, - 8900: 0xCFCC, - 8901: 0xCFCD, - 8902: 0xCFCE, - 8903: 0xCFCF, - 8904: 0xCFD0, - 8905: 0xCFD1, - 8906: 0xCFD2, - 8907: 0xCFD3, - 8908: 0xCFD4, - 8909: 0xCFD5, - 8910: 0xCFD6, - 8911: 0xCFD7, - 8912: 0xCFD8, - 8913: 0xCFD9, - 8914: 0xCFDA, - 8915: 0xCFDB, - 8916: 0xCFDC, - 8917: 0xCFDD, - 8918: 0xCFDE, - 8919: 0xCFDF, - 8920: 0xCFE2, - 8921: 0xCFE3, - 8922: 0xCFE5, - 8923: 0xCFE6, - 8924: 0xCFE7, - 8925: 0xCFE9, - 8926: 0xCFEA, - 8927: 0xCFEB, - 8928: 0xCFEC, - 8929: 0xCFED, - 8930: 0xCFEE, - 8931: 0xCFEF, - 8932: 0xCFF2, - 8933: 0xCFF4, - 8934: 0xCFF6, - 8935: 0xCFF7, - 8936: 0xCFF8, - 8937: 0xCFF9, - 8938: 0xCFFA, - 8939: 0xCFFB, - 8940: 0xCFFD, - 8941: 0xCFFE, - 8942: 0xCFFF, - 8943: 0xD001, - 8944: 0xD002, - 8945: 0xD003, - 8946: 0xD005, - 8947: 0xD006, - 8948: 0xD007, - 8949: 0xD008, - 8950: 0xD009, - 8951: 0xD00A, - 8952: 0xD00B, - 8953: 0xD00C, - 8954: 0xD00D, - 8955: 0xD00E, - 8956: 0xD00F, - 8957: 0xD010, - 8958: 0xD012, - 8959: 0xD013, - 8960: 0xD014, - 8961: 0xD015, - 8962: 0xD016, - 8963: 0xD017, - 8964: 0xD019, - 8965: 0xD01A, - 8966: 0xD01B, - 8967: 0xD01C, - 8968: 0xD01D, - 8969: 0xD01E, - 8970: 0xD01F, - 8971: 0xD020, - 8972: 0xD021, - 8973: 0xD022, - 8974: 0xD023, - 8975: 0xD024, - 8976: 0xD025, - 8977: 0xD026, - 8978: 0xD027, - 8979: 0xD028, - 8980: 0xD029, - 8981: 0xD02A, - 8982: 0xD02B, - 8983: 0xD02C, - 8984: 0xB05D, - 8985: 0xB07C, - 8986: 0xB07D, - 8987: 0xB080, - 8988: 0xB084, - 8989: 0xB08C, - 8990: 0xB08D, - 8991: 0xB08F, - 8992: 0xB091, - 8993: 0xB098, - 8994: 0xB099, - 8995: 0xB09A, - 8996: 0xB09C, - 8997: 0xB09F, - 8998: 0xB0A0, - 8999: 0xB0A1, - 9000: 0xB0A2, - 9001: 0xB0A8, - 9002: 0xB0A9, - 9003: 0xB0AB, - 9004: 0xB0AC, - 9005: 0xB0AD, - 9006: 0xB0AE, - 9007: 0xB0AF, - 9008: 0xB0B1, - 9009: 0xB0B3, - 9010: 0xB0B4, - 9011: 0xB0B5, - 9012: 0xB0B8, - 9013: 0xB0BC, - 9014: 0xB0C4, - 9015: 0xB0C5, - 9016: 0xB0C7, - 9017: 0xB0C8, - 9018: 0xB0C9, - 9019: 0xB0D0, - 9020: 0xB0D1, - 9021: 0xB0D4, - 9022: 0xB0D8, - 9023: 0xB0E0, - 9024: 0xB0E5, - 9025: 0xB108, - 9026: 0xB109, - 9027: 0xB10B, - 9028: 0xB10C, - 9029: 0xB110, - 9030: 0xB112, - 9031: 0xB113, - 9032: 0xB118, - 9033: 0xB119, - 9034: 0xB11B, - 9035: 0xB11C, - 9036: 0xB11D, - 9037: 0xB123, - 9038: 0xB124, - 9039: 0xB125, - 9040: 0xB128, - 9041: 0xB12C, - 9042: 0xB134, - 9043: 0xB135, - 9044: 0xB137, - 9045: 0xB138, - 9046: 0xB139, - 9047: 0xB140, - 9048: 0xB141, - 9049: 0xB144, - 9050: 0xB148, - 9051: 0xB150, - 9052: 0xB151, - 9053: 0xB154, - 9054: 0xB155, - 9055: 0xB158, - 9056: 0xB15C, - 9057: 0xB160, - 9058: 0xB178, - 9059: 0xB179, - 9060: 0xB17C, - 9061: 0xB180, - 9062: 0xB182, - 9063: 0xB188, - 9064: 0xB189, - 9065: 0xB18B, - 9066: 0xB18D, - 9067: 0xB192, - 9068: 0xB193, - 9069: 0xB194, - 9070: 0xB198, - 9071: 0xB19C, - 9072: 0xB1A8, - 9073: 0xB1CC, - 9074: 0xB1D0, - 9075: 0xB1D4, - 9076: 0xB1DC, - 9077: 0xB1DD, - 9078: 0xD02E, - 9079: 0xD02F, - 9080: 0xD030, - 9081: 0xD031, - 9082: 0xD032, - 9083: 0xD033, - 9084: 0xD036, - 9085: 0xD037, - 9086: 0xD039, - 9087: 0xD03A, - 9088: 0xD03B, - 9089: 0xD03D, - 9090: 0xD03E, - 9091: 0xD03F, - 9092: 0xD040, - 9093: 0xD041, - 9094: 0xD042, - 9095: 0xD043, - 9096: 0xD046, - 9097: 0xD048, - 9098: 0xD04A, - 9099: 0xD04B, - 9100: 0xD04C, - 9101: 0xD04D, - 9102: 0xD04E, - 9103: 0xD04F, - 9104: 0xD051, - 9105: 0xD052, - 9106: 0xD053, - 9107: 0xD055, - 9108: 0xD056, - 9109: 0xD057, - 9110: 0xD059, - 9111: 0xD05A, - 9112: 0xD05B, - 9113: 0xD05C, - 9114: 0xD05D, - 9115: 0xD05E, - 9116: 0xD05F, - 9117: 0xD061, - 9118: 0xD062, - 9119: 0xD063, - 9120: 0xD064, - 9121: 0xD065, - 9122: 0xD066, - 9123: 0xD067, - 9124: 0xD068, - 9125: 0xD069, - 9126: 0xD06A, - 9127: 0xD06B, - 9128: 0xD06E, - 9129: 0xD06F, - 9130: 0xD071, - 9131: 0xD072, - 9132: 0xD073, - 9133: 0xD075, - 9134: 0xD076, - 9135: 0xD077, - 9136: 0xD078, - 9137: 0xD079, - 9138: 0xD07A, - 9139: 0xD07B, - 9140: 0xD07E, - 9141: 0xD07F, - 9142: 0xD080, - 9143: 0xD082, - 9144: 0xD083, - 9145: 0xD084, - 9146: 0xD085, - 9147: 0xD086, - 9148: 0xD087, - 9149: 0xD088, - 9150: 0xD089, - 9151: 0xD08A, - 9152: 0xD08B, - 9153: 0xD08C, - 9154: 0xD08D, - 9155: 0xD08E, - 9156: 0xD08F, - 9157: 0xD090, - 9158: 0xD091, - 9159: 0xD092, - 9160: 0xD093, - 9161: 0xD094, - 9162: 0xB1DF, - 9163: 0xB1E8, - 9164: 0xB1E9, - 9165: 0xB1EC, - 9166: 0xB1F0, - 9167: 0xB1F9, - 9168: 0xB1FB, - 9169: 0xB1FD, - 9170: 0xB204, - 9171: 0xB205, - 9172: 0xB208, - 9173: 0xB20B, - 9174: 0xB20C, - 9175: 0xB214, - 9176: 0xB215, - 9177: 0xB217, - 9178: 0xB219, - 9179: 0xB220, - 9180: 0xB234, - 9181: 0xB23C, - 9182: 0xB258, - 9183: 0xB25C, - 9184: 0xB260, - 9185: 0xB268, - 9186: 0xB269, - 9187: 0xB274, - 9188: 0xB275, - 9189: 0xB27C, - 9190: 0xB284, - 9191: 0xB285, - 9192: 0xB289, - 9193: 0xB290, - 9194: 0xB291, - 9195: 0xB294, - 9196: 0xB298, - 9197: 0xB299, - 9198: 0xB29A, - 9199: 0xB2A0, - 9200: 0xB2A1, - 9201: 0xB2A3, - 9202: 0xB2A5, - 9203: 0xB2A6, - 9204: 0xB2AA, - 9205: 0xB2AC, - 9206: 0xB2B0, - 9207: 0xB2B4, - 9208: 0xB2C8, - 9209: 0xB2C9, - 9210: 0xB2CC, - 9211: 0xB2D0, - 9212: 0xB2D2, - 9213: 0xB2D8, - 9214: 0xB2D9, - 9215: 0xB2DB, - 9216: 0xB2DD, - 9217: 0xB2E2, - 9218: 0xB2E4, - 9219: 0xB2E5, - 9220: 0xB2E6, - 9221: 0xB2E8, - 9222: 0xB2EB, - 9223: 0xB2EC, - 9224: 0xB2ED, - 9225: 0xB2EE, - 9226: 0xB2EF, - 9227: 0xB2F3, - 9228: 0xB2F4, - 9229: 0xB2F5, - 9230: 0xB2F7, - 9231: 0xB2F8, - 9232: 0xB2F9, - 9233: 0xB2FA, - 9234: 0xB2FB, - 9235: 0xB2FF, - 9236: 0xB300, - 9237: 0xB301, - 9238: 0xB304, - 9239: 0xB308, - 9240: 0xB310, - 9241: 0xB311, - 9242: 0xB313, - 9243: 0xB314, - 9244: 0xB315, - 9245: 0xB31C, - 9246: 0xB354, - 9247: 0xB355, - 9248: 0xB356, - 9249: 0xB358, - 9250: 0xB35B, - 9251: 0xB35C, - 9252: 0xB35E, - 9253: 0xB35F, - 9254: 0xB364, - 9255: 0xB365, - 9256: 0xD095, - 9257: 0xD096, - 9258: 0xD097, - 9259: 0xD098, - 9260: 0xD099, - 9261: 0xD09A, - 9262: 0xD09B, - 9263: 0xD09C, - 9264: 0xD09D, - 9265: 0xD09E, - 9266: 0xD09F, - 9267: 0xD0A0, - 9268: 0xD0A1, - 9269: 0xD0A2, - 9270: 0xD0A3, - 9271: 0xD0A6, - 9272: 0xD0A7, - 9273: 0xD0A9, - 9274: 0xD0AA, - 9275: 0xD0AB, - 9276: 0xD0AD, - 9277: 0xD0AE, - 9278: 0xD0AF, - 9279: 0xD0B0, - 9280: 0xD0B1, - 9281: 0xD0B2, - 9282: 0xD0B3, - 9283: 0xD0B6, - 9284: 0xD0B8, - 9285: 0xD0BA, - 9286: 0xD0BB, - 9287: 0xD0BC, - 9288: 0xD0BD, - 9289: 0xD0BE, - 9290: 0xD0BF, - 9291: 0xD0C2, - 9292: 0xD0C3, - 9293: 0xD0C5, - 9294: 0xD0C6, - 9295: 0xD0C7, - 9296: 0xD0CA, - 9297: 0xD0CB, - 9298: 0xD0CC, - 9299: 0xD0CD, - 9300: 0xD0CE, - 9301: 0xD0CF, - 9302: 0xD0D2, - 9303: 0xD0D6, - 9304: 0xD0D7, - 9305: 0xD0D8, - 9306: 0xD0D9, - 9307: 0xD0DA, - 9308: 0xD0DB, - 9309: 0xD0DE, - 9310: 0xD0DF, - 9311: 0xD0E1, - 9312: 0xD0E2, - 9313: 0xD0E3, - 9314: 0xD0E5, - 9315: 0xD0E6, - 9316: 0xD0E7, - 9317: 0xD0E8, - 9318: 0xD0E9, - 9319: 0xD0EA, - 9320: 0xD0EB, - 9321: 0xD0EE, - 9322: 0xD0F2, - 9323: 0xD0F3, - 9324: 0xD0F4, - 9325: 0xD0F5, - 9326: 0xD0F6, - 9327: 0xD0F7, - 9328: 0xD0F9, - 9329: 0xD0FA, - 9330: 0xD0FB, - 9331: 0xD0FC, - 9332: 0xD0FD, - 9333: 0xD0FE, - 9334: 0xD0FF, - 9335: 0xD100, - 9336: 0xD101, - 9337: 0xD102, - 9338: 0xD103, - 9339: 0xD104, - 9340: 0xB367, - 9341: 0xB369, - 9342: 0xB36B, - 9343: 0xB36E, - 9344: 0xB370, - 9345: 0xB371, - 9346: 0xB374, - 9347: 0xB378, - 9348: 0xB380, - 9349: 0xB381, - 9350: 0xB383, - 9351: 0xB384, - 9352: 0xB385, - 9353: 0xB38C, - 9354: 0xB390, - 9355: 0xB394, - 9356: 0xB3A0, - 9357: 0xB3A1, - 9358: 0xB3A8, - 9359: 0xB3AC, - 9360: 0xB3C4, - 9361: 0xB3C5, - 9362: 0xB3C8, - 9363: 0xB3CB, - 9364: 0xB3CC, - 9365: 0xB3CE, - 9366: 0xB3D0, - 9367: 0xB3D4, - 9368: 0xB3D5, - 9369: 0xB3D7, - 9370: 0xB3D9, - 9371: 0xB3DB, - 9372: 0xB3DD, - 9373: 0xB3E0, - 9374: 0xB3E4, - 9375: 0xB3E8, - 9376: 0xB3FC, - 9377: 0xB410, - 9378: 0xB418, - 9379: 0xB41C, - 9380: 0xB420, - 9381: 0xB428, - 9382: 0xB429, - 9383: 0xB42B, - 9384: 0xB434, - 9385: 0xB450, - 9386: 0xB451, - 9387: 0xB454, - 9388: 0xB458, - 9389: 0xB460, - 9390: 0xB461, - 9391: 0xB463, - 9392: 0xB465, - 9393: 0xB46C, - 9394: 0xB480, - 9395: 0xB488, - 9396: 0xB49D, - 9397: 0xB4A4, - 9398: 0xB4A8, - 9399: 0xB4AC, - 9400: 0xB4B5, - 9401: 0xB4B7, - 9402: 0xB4B9, - 9403: 0xB4C0, - 9404: 0xB4C4, - 9405: 0xB4C8, - 9406: 0xB4D0, - 9407: 0xB4D5, - 9408: 0xB4DC, - 9409: 0xB4DD, - 9410: 0xB4E0, - 9411: 0xB4E3, - 9412: 0xB4E4, - 9413: 0xB4E6, - 9414: 0xB4EC, - 9415: 0xB4ED, - 9416: 0xB4EF, - 9417: 0xB4F1, - 9418: 0xB4F8, - 9419: 0xB514, - 9420: 0xB515, - 9421: 0xB518, - 9422: 0xB51B, - 9423: 0xB51C, - 9424: 0xB524, - 9425: 0xB525, - 9426: 0xB527, - 9427: 0xB528, - 9428: 0xB529, - 9429: 0xB52A, - 9430: 0xB530, - 9431: 0xB531, - 9432: 0xB534, - 9433: 0xB538, - 9434: 0xD105, - 9435: 0xD106, - 9436: 0xD107, - 9437: 0xD108, - 9438: 0xD109, - 9439: 0xD10A, - 9440: 0xD10B, - 9441: 0xD10C, - 9442: 0xD10E, - 9443: 0xD10F, - 9444: 0xD110, - 9445: 0xD111, - 9446: 0xD112, - 9447: 0xD113, - 9448: 0xD114, - 9449: 0xD115, - 9450: 0xD116, - 9451: 0xD117, - 9452: 0xD118, - 9453: 0xD119, - 9454: 0xD11A, - 9455: 0xD11B, - 9456: 0xD11C, - 9457: 0xD11D, - 9458: 0xD11E, - 9459: 0xD11F, - 9460: 0xD120, - 9461: 0xD121, - 9462: 0xD122, - 9463: 0xD123, - 9464: 0xD124, - 9465: 0xD125, - 9466: 0xD126, - 9467: 0xD127, - 9468: 0xD128, - 9469: 0xD129, - 9470: 0xD12A, - 9471: 0xD12B, - 9472: 0xD12C, - 9473: 0xD12D, - 9474: 0xD12E, - 9475: 0xD12F, - 9476: 0xD132, - 9477: 0xD133, - 9478: 0xD135, - 9479: 0xD136, - 9480: 0xD137, - 9481: 0xD139, - 9482: 0xD13B, - 9483: 0xD13C, - 9484: 0xD13D, - 9485: 0xD13E, - 9486: 0xD13F, - 9487: 0xD142, - 9488: 0xD146, - 9489: 0xD147, - 9490: 0xD148, - 9491: 0xD149, - 9492: 0xD14A, - 9493: 0xD14B, - 9494: 0xD14E, - 9495: 0xD14F, - 9496: 0xD151, - 9497: 0xD152, - 9498: 0xD153, - 9499: 0xD155, - 9500: 0xD156, - 9501: 0xD157, - 9502: 0xD158, - 9503: 0xD159, - 9504: 0xD15A, - 9505: 0xD15B, - 9506: 0xD15E, - 9507: 0xD160, - 9508: 0xD162, - 9509: 0xD163, - 9510: 0xD164, - 9511: 0xD165, - 9512: 0xD166, - 9513: 0xD167, - 9514: 0xD169, - 9515: 0xD16A, - 9516: 0xD16B, - 9517: 0xD16D, - 9518: 0xB540, - 9519: 0xB541, - 9520: 0xB543, - 9521: 0xB544, - 9522: 0xB545, - 9523: 0xB54B, - 9524: 0xB54C, - 9525: 0xB54D, - 9526: 0xB550, - 9527: 0xB554, - 9528: 0xB55C, - 9529: 0xB55D, - 9530: 0xB55F, - 9531: 0xB560, - 9532: 0xB561, - 9533: 0xB5A0, - 9534: 0xB5A1, - 9535: 0xB5A4, - 9536: 0xB5A8, - 9537: 0xB5AA, - 9538: 0xB5AB, - 9539: 0xB5B0, - 9540: 0xB5B1, - 9541: 0xB5B3, - 9542: 0xB5B4, - 9543: 0xB5B5, - 9544: 0xB5BB, - 9545: 0xB5BC, - 9546: 0xB5BD, - 9547: 0xB5C0, - 9548: 0xB5C4, - 9549: 0xB5CC, - 9550: 0xB5CD, - 9551: 0xB5CF, - 9552: 0xB5D0, - 9553: 0xB5D1, - 9554: 0xB5D8, - 9555: 0xB5EC, - 9556: 0xB610, - 9557: 0xB611, - 9558: 0xB614, - 9559: 0xB618, - 9560: 0xB625, - 9561: 0xB62C, - 9562: 0xB634, - 9563: 0xB648, - 9564: 0xB664, - 9565: 0xB668, - 9566: 0xB69C, - 9567: 0xB69D, - 9568: 0xB6A0, - 9569: 0xB6A4, - 9570: 0xB6AB, - 9571: 0xB6AC, - 9572: 0xB6B1, - 9573: 0xB6D4, - 9574: 0xB6F0, - 9575: 0xB6F4, - 9576: 0xB6F8, - 9577: 0xB700, - 9578: 0xB701, - 9579: 0xB705, - 9580: 0xB728, - 9581: 0xB729, - 9582: 0xB72C, - 9583: 0xB72F, - 9584: 0xB730, - 9585: 0xB738, - 9586: 0xB739, - 9587: 0xB73B, - 9588: 0xB744, - 9589: 0xB748, - 9590: 0xB74C, - 9591: 0xB754, - 9592: 0xB755, - 9593: 0xB760, - 9594: 0xB764, - 9595: 0xB768, - 9596: 0xB770, - 9597: 0xB771, - 9598: 0xB773, - 9599: 0xB775, - 9600: 0xB77C, - 9601: 0xB77D, - 9602: 0xB780, - 9603: 0xB784, - 9604: 0xB78C, - 9605: 0xB78D, - 9606: 0xB78F, - 9607: 0xB790, - 9608: 0xB791, - 9609: 0xB792, - 9610: 0xB796, - 9611: 0xB797, - 9612: 0xD16E, - 9613: 0xD16F, - 9614: 0xD170, - 9615: 0xD171, - 9616: 0xD172, - 9617: 0xD173, - 9618: 0xD174, - 9619: 0xD175, - 9620: 0xD176, - 9621: 0xD177, - 9622: 0xD178, - 9623: 0xD179, - 9624: 0xD17A, - 9625: 0xD17B, - 9626: 0xD17D, - 9627: 0xD17E, - 9628: 0xD17F, - 9629: 0xD180, - 9630: 0xD181, - 9631: 0xD182, - 9632: 0xD183, - 9633: 0xD185, - 9634: 0xD186, - 9635: 0xD187, - 9636: 0xD189, - 9637: 0xD18A, - 9638: 0xD18B, - 9639: 0xD18C, - 9640: 0xD18D, - 9641: 0xD18E, - 9642: 0xD18F, - 9643: 0xD190, - 9644: 0xD191, - 9645: 0xD192, - 9646: 0xD193, - 9647: 0xD194, - 9648: 0xD195, - 9649: 0xD196, - 9650: 0xD197, - 9651: 0xD198, - 9652: 0xD199, - 9653: 0xD19A, - 9654: 0xD19B, - 9655: 0xD19C, - 9656: 0xD19D, - 9657: 0xD19E, - 9658: 0xD19F, - 9659: 0xD1A2, - 9660: 0xD1A3, - 9661: 0xD1A5, - 9662: 0xD1A6, - 9663: 0xD1A7, - 9664: 0xD1A9, - 9665: 0xD1AA, - 9666: 0xD1AB, - 9667: 0xD1AC, - 9668: 0xD1AD, - 9669: 0xD1AE, - 9670: 0xD1AF, - 9671: 0xD1B2, - 9672: 0xD1B4, - 9673: 0xD1B6, - 9674: 0xD1B7, - 9675: 0xD1B8, - 9676: 0xD1B9, - 9677: 0xD1BB, - 9678: 0xD1BD, - 9679: 0xD1BE, - 9680: 0xD1BF, - 9681: 0xD1C1, - 9682: 0xD1C2, - 9683: 0xD1C3, - 9684: 0xD1C4, - 9685: 0xD1C5, - 9686: 0xD1C6, - 9687: 0xD1C7, - 9688: 0xD1C8, - 9689: 0xD1C9, - 9690: 0xD1CA, - 9691: 0xD1CB, - 9692: 0xD1CC, - 9693: 0xD1CD, - 9694: 0xD1CE, - 9695: 0xD1CF, - 9696: 0xB798, - 9697: 0xB799, - 9698: 0xB79C, - 9699: 0xB7A0, - 9700: 0xB7A8, - 9701: 0xB7A9, - 9702: 0xB7AB, - 9703: 0xB7AC, - 9704: 0xB7AD, - 9705: 0xB7B4, - 9706: 0xB7B5, - 9707: 0xB7B8, - 9708: 0xB7C7, - 9709: 0xB7C9, - 9710: 0xB7EC, - 9711: 0xB7ED, - 9712: 0xB7F0, - 9713: 0xB7F4, - 9714: 0xB7FC, - 9715: 0xB7FD, - 9716: 0xB7FF, - 9717: 0xB800, - 9718: 0xB801, - 9719: 0xB807, - 9720: 0xB808, - 9721: 0xB809, - 9722: 0xB80C, - 9723: 0xB810, - 9724: 0xB818, - 9725: 0xB819, - 9726: 0xB81B, - 9727: 0xB81D, - 9728: 0xB824, - 9729: 0xB825, - 9730: 0xB828, - 9731: 0xB82C, - 9732: 0xB834, - 9733: 0xB835, - 9734: 0xB837, - 9735: 0xB838, - 9736: 0xB839, - 9737: 0xB840, - 9738: 0xB844, - 9739: 0xB851, - 9740: 0xB853, - 9741: 0xB85C, - 9742: 0xB85D, - 9743: 0xB860, - 9744: 0xB864, - 9745: 0xB86C, - 9746: 0xB86D, - 9747: 0xB86F, - 9748: 0xB871, - 9749: 0xB878, - 9750: 0xB87C, - 9751: 0xB88D, - 9752: 0xB8A8, - 9753: 0xB8B0, - 9754: 0xB8B4, - 9755: 0xB8B8, - 9756: 0xB8C0, - 9757: 0xB8C1, - 9758: 0xB8C3, - 9759: 0xB8C5, - 9760: 0xB8CC, - 9761: 0xB8D0, - 9762: 0xB8D4, - 9763: 0xB8DD, - 9764: 0xB8DF, - 9765: 0xB8E1, - 9766: 0xB8E8, - 9767: 0xB8E9, - 9768: 0xB8EC, - 9769: 0xB8F0, - 9770: 0xB8F8, - 9771: 0xB8F9, - 9772: 0xB8FB, - 9773: 0xB8FD, - 9774: 0xB904, - 9775: 0xB918, - 9776: 0xB920, - 9777: 0xB93C, - 9778: 0xB93D, - 9779: 0xB940, - 9780: 0xB944, - 9781: 0xB94C, - 9782: 0xB94F, - 9783: 0xB951, - 9784: 0xB958, - 9785: 0xB959, - 9786: 0xB95C, - 9787: 0xB960, - 9788: 0xB968, - 9789: 0xB969, - 9790: 0xD1D0, - 9791: 0xD1D1, - 9792: 0xD1D2, - 9793: 0xD1D3, - 9794: 0xD1D4, - 9795: 0xD1D5, - 9796: 0xD1D6, - 9797: 0xD1D7, - 9798: 0xD1D9, - 9799: 0xD1DA, - 9800: 0xD1DB, - 9801: 0xD1DC, - 9802: 0xD1DD, - 9803: 0xD1DE, - 9804: 0xD1DF, - 9805: 0xD1E0, - 9806: 0xD1E1, - 9807: 0xD1E2, - 9808: 0xD1E3, - 9809: 0xD1E4, - 9810: 0xD1E5, - 9811: 0xD1E6, - 9812: 0xD1E7, - 9813: 0xD1E8, - 9814: 0xD1E9, - 9815: 0xD1EA, - 9816: 0xD1EB, - 9817: 0xD1EC, - 9818: 0xD1ED, - 9819: 0xD1EE, - 9820: 0xD1EF, - 9821: 0xD1F0, - 9822: 0xD1F1, - 9823: 0xD1F2, - 9824: 0xD1F3, - 9825: 0xD1F5, - 9826: 0xD1F6, - 9827: 0xD1F7, - 9828: 0xD1F9, - 9829: 0xD1FA, - 9830: 0xD1FB, - 9831: 0xD1FC, - 9832: 0xD1FD, - 9833: 0xD1FE, - 9834: 0xD1FF, - 9835: 0xD200, - 9836: 0xD201, - 9837: 0xD202, - 9838: 0xD203, - 9839: 0xD204, - 9840: 0xD205, - 9841: 0xD206, - 9842: 0xD208, - 9843: 0xD20A, - 9844: 0xD20B, - 9845: 0xD20C, - 9846: 0xD20D, - 9847: 0xD20E, - 9848: 0xD20F, - 9849: 0xD211, - 9850: 0xD212, - 9851: 0xD213, - 9852: 0xD214, - 9853: 0xD215, - 9854: 0xD216, - 9855: 0xD217, - 9856: 0xD218, - 9857: 0xD219, - 9858: 0xD21A, - 9859: 0xD21B, - 9860: 0xD21C, - 9861: 0xD21D, - 9862: 0xD21E, - 9863: 0xD21F, - 9864: 0xD220, - 9865: 0xD221, - 9866: 0xD222, - 9867: 0xD223, - 9868: 0xD224, - 9869: 0xD225, - 9870: 0xD226, - 9871: 0xD227, - 9872: 0xD228, - 9873: 0xD229, - 9874: 0xB96B, - 9875: 0xB96D, - 9876: 0xB974, - 9877: 0xB975, - 9878: 0xB978, - 9879: 0xB97C, - 9880: 0xB984, - 9881: 0xB985, - 9882: 0xB987, - 9883: 0xB989, - 9884: 0xB98A, - 9885: 0xB98D, - 9886: 0xB98E, - 9887: 0xB9AC, - 9888: 0xB9AD, - 9889: 0xB9B0, - 9890: 0xB9B4, - 9891: 0xB9BC, - 9892: 0xB9BD, - 9893: 0xB9BF, - 9894: 0xB9C1, - 9895: 0xB9C8, - 9896: 0xB9C9, - 9897: 0xB9CC, - 9898: 0xB9CE, - 9899: 0xB9CF, - 9900: 0xB9D0, - 9901: 0xB9D1, - 9902: 0xB9D2, - 9903: 0xB9D8, - 9904: 0xB9D9, - 9905: 0xB9DB, - 9906: 0xB9DD, - 9907: 0xB9DE, - 9908: 0xB9E1, - 9909: 0xB9E3, - 9910: 0xB9E4, - 9911: 0xB9E5, - 9912: 0xB9E8, - 9913: 0xB9EC, - 9914: 0xB9F4, - 9915: 0xB9F5, - 9916: 0xB9F7, - 9917: 0xB9F8, - 9918: 0xB9F9, - 9919: 0xB9FA, - 9920: 0xBA00, - 9921: 0xBA01, - 9922: 0xBA08, - 9923: 0xBA15, - 9924: 0xBA38, - 9925: 0xBA39, - 9926: 0xBA3C, - 9927: 0xBA40, - 9928: 0xBA42, - 9929: 0xBA48, - 9930: 0xBA49, - 9931: 0xBA4B, - 9932: 0xBA4D, - 9933: 0xBA4E, - 9934: 0xBA53, - 9935: 0xBA54, - 9936: 0xBA55, - 9937: 0xBA58, - 9938: 0xBA5C, - 9939: 0xBA64, - 9940: 0xBA65, - 9941: 0xBA67, - 9942: 0xBA68, - 9943: 0xBA69, - 9944: 0xBA70, - 9945: 0xBA71, - 9946: 0xBA74, - 9947: 0xBA78, - 9948: 0xBA83, - 9949: 0xBA84, - 9950: 0xBA85, - 9951: 0xBA87, - 9952: 0xBA8C, - 9953: 0xBAA8, - 9954: 0xBAA9, - 9955: 0xBAAB, - 9956: 0xBAAC, - 9957: 0xBAB0, - 9958: 0xBAB2, - 9959: 0xBAB8, - 9960: 0xBAB9, - 9961: 0xBABB, - 9962: 0xBABD, - 9963: 0xBAC4, - 9964: 0xBAC8, - 9965: 0xBAD8, - 9966: 0xBAD9, - 9967: 0xBAFC, - 9968: 0xD22A, - 9969: 0xD22B, - 9970: 0xD22E, - 9971: 0xD22F, - 9972: 0xD231, - 9973: 0xD232, - 9974: 0xD233, - 9975: 0xD235, - 9976: 0xD236, - 9977: 0xD237, - 9978: 0xD238, - 9979: 0xD239, - 9980: 0xD23A, - 9981: 0xD23B, - 9982: 0xD23E, - 9983: 0xD240, - 9984: 0xD242, - 9985: 0xD243, - 9986: 0xD244, - 9987: 0xD245, - 9988: 0xD246, - 9989: 0xD247, - 9990: 0xD249, - 9991: 0xD24A, - 9992: 0xD24B, - 9993: 0xD24C, - 9994: 0xD24D, - 9995: 0xD24E, - 9996: 0xD24F, - 9997: 0xD250, - 9998: 0xD251, - 9999: 0xD252, - 10000: 0xD253, - 10001: 0xD254, - 10002: 0xD255, - 10003: 0xD256, - 10004: 0xD257, - 10005: 0xD258, - 10006: 0xD259, - 10007: 0xD25A, - 10008: 0xD25B, - 10009: 0xD25D, - 10010: 0xD25E, - 10011: 0xD25F, - 10012: 0xD260, - 10013: 0xD261, - 10014: 0xD262, - 10015: 0xD263, - 10016: 0xD265, - 10017: 0xD266, - 10018: 0xD267, - 10019: 0xD268, - 10020: 0xD269, - 10021: 0xD26A, - 10022: 0xD26B, - 10023: 0xD26C, - 10024: 0xD26D, - 10025: 0xD26E, - 10026: 0xD26F, - 10027: 0xD270, - 10028: 0xD271, - 10029: 0xD272, - 10030: 0xD273, - 10031: 0xD274, - 10032: 0xD275, - 10033: 0xD276, - 10034: 0xD277, - 10035: 0xD278, - 10036: 0xD279, - 10037: 0xD27A, - 10038: 0xD27B, - 10039: 0xD27C, - 10040: 0xD27D, - 10041: 0xD27E, - 10042: 0xD27F, - 10043: 0xD282, - 10044: 0xD283, - 10045: 0xD285, - 10046: 0xD286, - 10047: 0xD287, - 10048: 0xD289, - 10049: 0xD28A, - 10050: 0xD28B, - 10051: 0xD28C, - 10052: 0xBB00, - 10053: 0xBB04, - 10054: 0xBB0D, - 10055: 0xBB0F, - 10056: 0xBB11, - 10057: 0xBB18, - 10058: 0xBB1C, - 10059: 0xBB20, - 10060: 0xBB29, - 10061: 0xBB2B, - 10062: 0xBB34, - 10063: 0xBB35, - 10064: 0xBB36, - 10065: 0xBB38, - 10066: 0xBB3B, - 10067: 0xBB3C, - 10068: 0xBB3D, - 10069: 0xBB3E, - 10070: 0xBB44, - 10071: 0xBB45, - 10072: 0xBB47, - 10073: 0xBB49, - 10074: 0xBB4D, - 10075: 0xBB4F, - 10076: 0xBB50, - 10077: 0xBB54, - 10078: 0xBB58, - 10079: 0xBB61, - 10080: 0xBB63, - 10081: 0xBB6C, - 10082: 0xBB88, - 10083: 0xBB8C, - 10084: 0xBB90, - 10085: 0xBBA4, - 10086: 0xBBA8, - 10087: 0xBBAC, - 10088: 0xBBB4, - 10089: 0xBBB7, - 10090: 0xBBC0, - 10091: 0xBBC4, - 10092: 0xBBC8, - 10093: 0xBBD0, - 10094: 0xBBD3, - 10095: 0xBBF8, - 10096: 0xBBF9, - 10097: 0xBBFC, - 10098: 0xBBFF, - 10099: 0xBC00, - 10100: 0xBC02, - 10101: 0xBC08, - 10102: 0xBC09, - 10103: 0xBC0B, - 10104: 0xBC0C, - 10105: 0xBC0D, - 10106: 0xBC0F, - 10107: 0xBC11, - 10108: 0xBC14, - 10109: 0xBC15, - 10110: 0xBC16, - 10111: 0xBC17, - 10112: 0xBC18, - 10113: 0xBC1B, - 10114: 0xBC1C, - 10115: 0xBC1D, - 10116: 0xBC1E, - 10117: 0xBC1F, - 10118: 0xBC24, - 10119: 0xBC25, - 10120: 0xBC27, - 10121: 0xBC29, - 10122: 0xBC2D, - 10123: 0xBC30, - 10124: 0xBC31, - 10125: 0xBC34, - 10126: 0xBC38, - 10127: 0xBC40, - 10128: 0xBC41, - 10129: 0xBC43, - 10130: 0xBC44, - 10131: 0xBC45, - 10132: 0xBC49, - 10133: 0xBC4C, - 10134: 0xBC4D, - 10135: 0xBC50, - 10136: 0xBC5D, - 10137: 0xBC84, - 10138: 0xBC85, - 10139: 0xBC88, - 10140: 0xBC8B, - 10141: 0xBC8C, - 10142: 0xBC8E, - 10143: 0xBC94, - 10144: 0xBC95, - 10145: 0xBC97, - 10146: 0xD28D, - 10147: 0xD28E, - 10148: 0xD28F, - 10149: 0xD292, - 10150: 0xD293, - 10151: 0xD294, - 10152: 0xD296, - 10153: 0xD297, - 10154: 0xD298, - 10155: 0xD299, - 10156: 0xD29A, - 10157: 0xD29B, - 10158: 0xD29D, - 10159: 0xD29E, - 10160: 0xD29F, - 10161: 0xD2A1, - 10162: 0xD2A2, - 10163: 0xD2A3, - 10164: 0xD2A5, - 10165: 0xD2A6, - 10166: 0xD2A7, - 10167: 0xD2A8, - 10168: 0xD2A9, - 10169: 0xD2AA, - 10170: 0xD2AB, - 10171: 0xD2AD, - 10172: 0xD2AE, - 10173: 0xD2AF, - 10174: 0xD2B0, - 10175: 0xD2B2, - 10176: 0xD2B3, - 10177: 0xD2B4, - 10178: 0xD2B5, - 10179: 0xD2B6, - 10180: 0xD2B7, - 10181: 0xD2BA, - 10182: 0xD2BB, - 10183: 0xD2BD, - 10184: 0xD2BE, - 10185: 0xD2C1, - 10186: 0xD2C3, - 10187: 0xD2C4, - 10188: 0xD2C5, - 10189: 0xD2C6, - 10190: 0xD2C7, - 10191: 0xD2CA, - 10192: 0xD2CC, - 10193: 0xD2CD, - 10194: 0xD2CE, - 10195: 0xD2CF, - 10196: 0xD2D0, - 10197: 0xD2D1, - 10198: 0xD2D2, - 10199: 0xD2D3, - 10200: 0xD2D5, - 10201: 0xD2D6, - 10202: 0xD2D7, - 10203: 0xD2D9, - 10204: 0xD2DA, - 10205: 0xD2DB, - 10206: 0xD2DD, - 10207: 0xD2DE, - 10208: 0xD2DF, - 10209: 0xD2E0, - 10210: 0xD2E1, - 10211: 0xD2E2, - 10212: 0xD2E3, - 10213: 0xD2E6, - 10214: 0xD2E7, - 10215: 0xD2E8, - 10216: 0xD2E9, - 10217: 0xD2EA, - 10218: 0xD2EB, - 10219: 0xD2EC, - 10220: 0xD2ED, - 10221: 0xD2EE, - 10222: 0xD2EF, - 10223: 0xD2F2, - 10224: 0xD2F3, - 10225: 0xD2F5, - 10226: 0xD2F6, - 10227: 0xD2F7, - 10228: 0xD2F9, - 10229: 0xD2FA, - 10230: 0xBC99, - 10231: 0xBC9A, - 10232: 0xBCA0, - 10233: 0xBCA1, - 10234: 0xBCA4, - 10235: 0xBCA7, - 10236: 0xBCA8, - 10237: 0xBCB0, - 10238: 0xBCB1, - 10239: 0xBCB3, - 10240: 0xBCB4, - 10241: 0xBCB5, - 10242: 0xBCBC, - 10243: 0xBCBD, - 10244: 0xBCC0, - 10245: 0xBCC4, - 10246: 0xBCCD, - 10247: 0xBCCF, - 10248: 0xBCD0, - 10249: 0xBCD1, - 10250: 0xBCD5, - 10251: 0xBCD8, - 10252: 0xBCDC, - 10253: 0xBCF4, - 10254: 0xBCF5, - 10255: 0xBCF6, - 10256: 0xBCF8, - 10257: 0xBCFC, - 10258: 0xBD04, - 10259: 0xBD05, - 10260: 0xBD07, - 10261: 0xBD09, - 10262: 0xBD10, - 10263: 0xBD14, - 10264: 0xBD24, - 10265: 0xBD2C, - 10266: 0xBD40, - 10267: 0xBD48, - 10268: 0xBD49, - 10269: 0xBD4C, - 10270: 0xBD50, - 10271: 0xBD58, - 10272: 0xBD59, - 10273: 0xBD64, - 10274: 0xBD68, - 10275: 0xBD80, - 10276: 0xBD81, - 10277: 0xBD84, - 10278: 0xBD87, - 10279: 0xBD88, - 10280: 0xBD89, - 10281: 0xBD8A, - 10282: 0xBD90, - 10283: 0xBD91, - 10284: 0xBD93, - 10285: 0xBD95, - 10286: 0xBD99, - 10287: 0xBD9A, - 10288: 0xBD9C, - 10289: 0xBDA4, - 10290: 0xBDB0, - 10291: 0xBDB8, - 10292: 0xBDD4, - 10293: 0xBDD5, - 10294: 0xBDD8, - 10295: 0xBDDC, - 10296: 0xBDE9, - 10297: 0xBDF0, - 10298: 0xBDF4, - 10299: 0xBDF8, - 10300: 0xBE00, - 10301: 0xBE03, - 10302: 0xBE05, - 10303: 0xBE0C, - 10304: 0xBE0D, - 10305: 0xBE10, - 10306: 0xBE14, - 10307: 0xBE1C, - 10308: 0xBE1D, - 10309: 0xBE1F, - 10310: 0xBE44, - 10311: 0xBE45, - 10312: 0xBE48, - 10313: 0xBE4C, - 10314: 0xBE4E, - 10315: 0xBE54, - 10316: 0xBE55, - 10317: 0xBE57, - 10318: 0xBE59, - 10319: 0xBE5A, - 10320: 0xBE5B, - 10321: 0xBE60, - 10322: 0xBE61, - 10323: 0xBE64, - 10324: 0xD2FB, - 10325: 0xD2FC, - 10326: 0xD2FD, - 10327: 0xD2FE, - 10328: 0xD2FF, - 10329: 0xD302, - 10330: 0xD304, - 10331: 0xD306, - 10332: 0xD307, - 10333: 0xD308, - 10334: 0xD309, - 10335: 0xD30A, - 10336: 0xD30B, - 10337: 0xD30F, - 10338: 0xD311, - 10339: 0xD312, - 10340: 0xD313, - 10341: 0xD315, - 10342: 0xD317, - 10343: 0xD318, - 10344: 0xD319, - 10345: 0xD31A, - 10346: 0xD31B, - 10347: 0xD31E, - 10348: 0xD322, - 10349: 0xD323, - 10350: 0xD324, - 10351: 0xD326, - 10352: 0xD327, - 10353: 0xD32A, - 10354: 0xD32B, - 10355: 0xD32D, - 10356: 0xD32E, - 10357: 0xD32F, - 10358: 0xD331, - 10359: 0xD332, - 10360: 0xD333, - 10361: 0xD334, - 10362: 0xD335, - 10363: 0xD336, - 10364: 0xD337, - 10365: 0xD33A, - 10366: 0xD33E, - 10367: 0xD33F, - 10368: 0xD340, - 10369: 0xD341, - 10370: 0xD342, - 10371: 0xD343, - 10372: 0xD346, - 10373: 0xD347, - 10374: 0xD348, - 10375: 0xD349, - 10376: 0xD34A, - 10377: 0xD34B, - 10378: 0xD34C, - 10379: 0xD34D, - 10380: 0xD34E, - 10381: 0xD34F, - 10382: 0xD350, - 10383: 0xD351, - 10384: 0xD352, - 10385: 0xD353, - 10386: 0xD354, - 10387: 0xD355, - 10388: 0xD356, - 10389: 0xD357, - 10390: 0xD358, - 10391: 0xD359, - 10392: 0xD35A, - 10393: 0xD35B, - 10394: 0xD35C, - 10395: 0xD35D, - 10396: 0xD35E, - 10397: 0xD35F, - 10398: 0xD360, - 10399: 0xD361, - 10400: 0xD362, - 10401: 0xD363, - 10402: 0xD364, - 10403: 0xD365, - 10404: 0xD366, - 10405: 0xD367, - 10406: 0xD368, - 10407: 0xD369, - 10408: 0xBE68, - 10409: 0xBE6A, - 10410: 0xBE70, - 10411: 0xBE71, - 10412: 0xBE73, - 10413: 0xBE74, - 10414: 0xBE75, - 10415: 0xBE7B, - 10416: 0xBE7C, - 10417: 0xBE7D, - 10418: 0xBE80, - 10419: 0xBE84, - 10420: 0xBE8C, - 10421: 0xBE8D, - 10422: 0xBE8F, - 10423: 0xBE90, - 10424: 0xBE91, - 10425: 0xBE98, - 10426: 0xBE99, - 10427: 0xBEA8, - 10428: 0xBED0, - 10429: 0xBED1, - 10430: 0xBED4, - 10431: 0xBED7, - 10432: 0xBED8, - 10433: 0xBEE0, - 10434: 0xBEE3, - 10435: 0xBEE4, - 10436: 0xBEE5, - 10437: 0xBEEC, - 10438: 0xBF01, - 10439: 0xBF08, - 10440: 0xBF09, - 10441: 0xBF18, - 10442: 0xBF19, - 10443: 0xBF1B, - 10444: 0xBF1C, - 10445: 0xBF1D, - 10446: 0xBF40, - 10447: 0xBF41, - 10448: 0xBF44, - 10449: 0xBF48, - 10450: 0xBF50, - 10451: 0xBF51, - 10452: 0xBF55, - 10453: 0xBF94, - 10454: 0xBFB0, - 10455: 0xBFC5, - 10456: 0xBFCC, - 10457: 0xBFCD, - 10458: 0xBFD0, - 10459: 0xBFD4, - 10460: 0xBFDC, - 10461: 0xBFDF, - 10462: 0xBFE1, - 10463: 0xC03C, - 10464: 0xC051, - 10465: 0xC058, - 10466: 0xC05C, - 10467: 0xC060, - 10468: 0xC068, - 10469: 0xC069, - 10470: 0xC090, - 10471: 0xC091, - 10472: 0xC094, - 10473: 0xC098, - 10474: 0xC0A0, - 10475: 0xC0A1, - 10476: 0xC0A3, - 10477: 0xC0A5, - 10478: 0xC0AC, - 10479: 0xC0AD, - 10480: 0xC0AF, - 10481: 0xC0B0, - 10482: 0xC0B3, - 10483: 0xC0B4, - 10484: 0xC0B5, - 10485: 0xC0B6, - 10486: 0xC0BC, - 10487: 0xC0BD, - 10488: 0xC0BF, - 10489: 0xC0C0, - 10490: 0xC0C1, - 10491: 0xC0C5, - 10492: 0xC0C8, - 10493: 0xC0C9, - 10494: 0xC0CC, - 10495: 0xC0D0, - 10496: 0xC0D8, - 10497: 0xC0D9, - 10498: 0xC0DB, - 10499: 0xC0DC, - 10500: 0xC0DD, - 10501: 0xC0E4, - 10502: 0xD36A, - 10503: 0xD36B, - 10504: 0xD36C, - 10505: 0xD36D, - 10506: 0xD36E, - 10507: 0xD36F, - 10508: 0xD370, - 10509: 0xD371, - 10510: 0xD372, - 10511: 0xD373, - 10512: 0xD374, - 10513: 0xD375, - 10514: 0xD376, - 10515: 0xD377, - 10516: 0xD378, - 10517: 0xD379, - 10518: 0xD37A, - 10519: 0xD37B, - 10520: 0xD37E, - 10521: 0xD37F, - 10522: 0xD381, - 10523: 0xD382, - 10524: 0xD383, - 10525: 0xD385, - 10526: 0xD386, - 10527: 0xD387, - 10528: 0xD388, - 10529: 0xD389, - 10530: 0xD38A, - 10531: 0xD38B, - 10532: 0xD38E, - 10533: 0xD392, - 10534: 0xD393, - 10535: 0xD394, - 10536: 0xD395, - 10537: 0xD396, - 10538: 0xD397, - 10539: 0xD39A, - 10540: 0xD39B, - 10541: 0xD39D, - 10542: 0xD39E, - 10543: 0xD39F, - 10544: 0xD3A1, - 10545: 0xD3A2, - 10546: 0xD3A3, - 10547: 0xD3A4, - 10548: 0xD3A5, - 10549: 0xD3A6, - 10550: 0xD3A7, - 10551: 0xD3AA, - 10552: 0xD3AC, - 10553: 0xD3AE, - 10554: 0xD3AF, - 10555: 0xD3B0, - 10556: 0xD3B1, - 10557: 0xD3B2, - 10558: 0xD3B3, - 10559: 0xD3B5, - 10560: 0xD3B6, - 10561: 0xD3B7, - 10562: 0xD3B9, - 10563: 0xD3BA, - 10564: 0xD3BB, - 10565: 0xD3BD, - 10566: 0xD3BE, - 10567: 0xD3BF, - 10568: 0xD3C0, - 10569: 0xD3C1, - 10570: 0xD3C2, - 10571: 0xD3C3, - 10572: 0xD3C6, - 10573: 0xD3C7, - 10574: 0xD3CA, - 10575: 0xD3CB, - 10576: 0xD3CC, - 10577: 0xD3CD, - 10578: 0xD3CE, - 10579: 0xD3CF, - 10580: 0xD3D1, - 10581: 0xD3D2, - 10582: 0xD3D3, - 10583: 0xD3D4, - 10584: 0xD3D5, - 10585: 0xD3D6, - 10586: 0xC0E5, - 10587: 0xC0E8, - 10588: 0xC0EC, - 10589: 0xC0F4, - 10590: 0xC0F5, - 10591: 0xC0F7, - 10592: 0xC0F9, - 10593: 0xC100, - 10594: 0xC104, - 10595: 0xC108, - 10596: 0xC110, - 10597: 0xC115, - 10598: 0xC11C, - 10599: 0xC11D, - 10600: 0xC11E, - 10601: 0xC11F, - 10602: 0xC120, - 10603: 0xC123, - 10604: 0xC124, - 10605: 0xC126, - 10606: 0xC127, - 10607: 0xC12C, - 10608: 0xC12D, - 10609: 0xC12F, - 10610: 0xC130, - 10611: 0xC131, - 10612: 0xC136, - 10613: 0xC138, - 10614: 0xC139, - 10615: 0xC13C, - 10616: 0xC140, - 10617: 0xC148, - 10618: 0xC149, - 10619: 0xC14B, - 10620: 0xC14C, - 10621: 0xC14D, - 10622: 0xC154, - 10623: 0xC155, - 10624: 0xC158, - 10625: 0xC15C, - 10626: 0xC164, - 10627: 0xC165, - 10628: 0xC167, - 10629: 0xC168, - 10630: 0xC169, - 10631: 0xC170, - 10632: 0xC174, - 10633: 0xC178, - 10634: 0xC185, - 10635: 0xC18C, - 10636: 0xC18D, - 10637: 0xC18E, - 10638: 0xC190, - 10639: 0xC194, - 10640: 0xC196, - 10641: 0xC19C, - 10642: 0xC19D, - 10643: 0xC19F, - 10644: 0xC1A1, - 10645: 0xC1A5, - 10646: 0xC1A8, - 10647: 0xC1A9, - 10648: 0xC1AC, - 10649: 0xC1B0, - 10650: 0xC1BD, - 10651: 0xC1C4, - 10652: 0xC1C8, - 10653: 0xC1CC, - 10654: 0xC1D4, - 10655: 0xC1D7, - 10656: 0xC1D8, - 10657: 0xC1E0, - 10658: 0xC1E4, - 10659: 0xC1E8, - 10660: 0xC1F0, - 10661: 0xC1F1, - 10662: 0xC1F3, - 10663: 0xC1FC, - 10664: 0xC1FD, - 10665: 0xC200, - 10666: 0xC204, - 10667: 0xC20C, - 10668: 0xC20D, - 10669: 0xC20F, - 10670: 0xC211, - 10671: 0xC218, - 10672: 0xC219, - 10673: 0xC21C, - 10674: 0xC21F, - 10675: 0xC220, - 10676: 0xC228, - 10677: 0xC229, - 10678: 0xC22B, - 10679: 0xC22D, - 10680: 0xD3D7, - 10681: 0xD3D9, - 10682: 0xD3DA, - 10683: 0xD3DB, - 10684: 0xD3DC, - 10685: 0xD3DD, - 10686: 0xD3DE, - 10687: 0xD3DF, - 10688: 0xD3E0, - 10689: 0xD3E2, - 10690: 0xD3E4, - 10691: 0xD3E5, - 10692: 0xD3E6, - 10693: 0xD3E7, - 10694: 0xD3E8, - 10695: 0xD3E9, - 10696: 0xD3EA, - 10697: 0xD3EB, - 10698: 0xD3EE, - 10699: 0xD3EF, - 10700: 0xD3F1, - 10701: 0xD3F2, - 10702: 0xD3F3, - 10703: 0xD3F5, - 10704: 0xD3F6, - 10705: 0xD3F7, - 10706: 0xD3F8, - 10707: 0xD3F9, - 10708: 0xD3FA, - 10709: 0xD3FB, - 10710: 0xD3FE, - 10711: 0xD400, - 10712: 0xD402, - 10713: 0xD403, - 10714: 0xD404, - 10715: 0xD405, - 10716: 0xD406, - 10717: 0xD407, - 10718: 0xD409, - 10719: 0xD40A, - 10720: 0xD40B, - 10721: 0xD40C, - 10722: 0xD40D, - 10723: 0xD40E, - 10724: 0xD40F, - 10725: 0xD410, - 10726: 0xD411, - 10727: 0xD412, - 10728: 0xD413, - 10729: 0xD414, - 10730: 0xD415, - 10731: 0xD416, - 10732: 0xD417, - 10733: 0xD418, - 10734: 0xD419, - 10735: 0xD41A, - 10736: 0xD41B, - 10737: 0xD41C, - 10738: 0xD41E, - 10739: 0xD41F, - 10740: 0xD420, - 10741: 0xD421, - 10742: 0xD422, - 10743: 0xD423, - 10744: 0xD424, - 10745: 0xD425, - 10746: 0xD426, - 10747: 0xD427, - 10748: 0xD428, - 10749: 0xD429, - 10750: 0xD42A, - 10751: 0xD42B, - 10752: 0xD42C, - 10753: 0xD42D, - 10754: 0xD42E, - 10755: 0xD42F, - 10756: 0xD430, - 10757: 0xD431, - 10758: 0xD432, - 10759: 0xD433, - 10760: 0xD434, - 10761: 0xD435, - 10762: 0xD436, - 10763: 0xD437, - 10764: 0xC22F, - 10765: 0xC231, - 10766: 0xC232, - 10767: 0xC234, - 10768: 0xC248, - 10769: 0xC250, - 10770: 0xC251, - 10771: 0xC254, - 10772: 0xC258, - 10773: 0xC260, - 10774: 0xC265, - 10775: 0xC26C, - 10776: 0xC26D, - 10777: 0xC270, - 10778: 0xC274, - 10779: 0xC27C, - 10780: 0xC27D, - 10781: 0xC27F, - 10782: 0xC281, - 10783: 0xC288, - 10784: 0xC289, - 10785: 0xC290, - 10786: 0xC298, - 10787: 0xC29B, - 10788: 0xC29D, - 10789: 0xC2A4, - 10790: 0xC2A5, - 10791: 0xC2A8, - 10792: 0xC2AC, - 10793: 0xC2AD, - 10794: 0xC2B4, - 10795: 0xC2B5, - 10796: 0xC2B7, - 10797: 0xC2B9, - 10798: 0xC2DC, - 10799: 0xC2DD, - 10800: 0xC2E0, - 10801: 0xC2E3, - 10802: 0xC2E4, - 10803: 0xC2EB, - 10804: 0xC2EC, - 10805: 0xC2ED, - 10806: 0xC2EF, - 10807: 0xC2F1, - 10808: 0xC2F6, - 10809: 0xC2F8, - 10810: 0xC2F9, - 10811: 0xC2FB, - 10812: 0xC2FC, - 10813: 0xC300, - 10814: 0xC308, - 10815: 0xC309, - 10816: 0xC30C, - 10817: 0xC30D, - 10818: 0xC313, - 10819: 0xC314, - 10820: 0xC315, - 10821: 0xC318, - 10822: 0xC31C, - 10823: 0xC324, - 10824: 0xC325, - 10825: 0xC328, - 10826: 0xC329, - 10827: 0xC345, - 10828: 0xC368, - 10829: 0xC369, - 10830: 0xC36C, - 10831: 0xC370, - 10832: 0xC372, - 10833: 0xC378, - 10834: 0xC379, - 10835: 0xC37C, - 10836: 0xC37D, - 10837: 0xC384, - 10838: 0xC388, - 10839: 0xC38C, - 10840: 0xC3C0, - 10841: 0xC3D8, - 10842: 0xC3D9, - 10843: 0xC3DC, - 10844: 0xC3DF, - 10845: 0xC3E0, - 10846: 0xC3E2, - 10847: 0xC3E8, - 10848: 0xC3E9, - 10849: 0xC3ED, - 10850: 0xC3F4, - 10851: 0xC3F5, - 10852: 0xC3F8, - 10853: 0xC408, - 10854: 0xC410, - 10855: 0xC424, - 10856: 0xC42C, - 10857: 0xC430, - 10858: 0xD438, - 10859: 0xD439, - 10860: 0xD43A, - 10861: 0xD43B, - 10862: 0xD43C, - 10863: 0xD43D, - 10864: 0xD43E, - 10865: 0xD43F, - 10866: 0xD441, - 10867: 0xD442, - 10868: 0xD443, - 10869: 0xD445, - 10870: 0xD446, - 10871: 0xD447, - 10872: 0xD448, - 10873: 0xD449, - 10874: 0xD44A, - 10875: 0xD44B, - 10876: 0xD44C, - 10877: 0xD44D, - 10878: 0xD44E, - 10879: 0xD44F, - 10880: 0xD450, - 10881: 0xD451, - 10882: 0xD452, - 10883: 0xD453, - 10884: 0xD454, - 10885: 0xD455, - 10886: 0xD456, - 10887: 0xD457, - 10888: 0xD458, - 10889: 0xD459, - 10890: 0xD45A, - 10891: 0xD45B, - 10892: 0xD45D, - 10893: 0xD45E, - 10894: 0xD45F, - 10895: 0xD461, - 10896: 0xD462, - 10897: 0xD463, - 10898: 0xD465, - 10899: 0xD466, - 10900: 0xD467, - 10901: 0xD468, - 10902: 0xD469, - 10903: 0xD46A, - 10904: 0xD46B, - 10905: 0xD46C, - 10906: 0xD46E, - 10907: 0xD470, - 10908: 0xD471, - 10909: 0xD472, - 10910: 0xD473, - 10911: 0xD474, - 10912: 0xD475, - 10913: 0xD476, - 10914: 0xD477, - 10915: 0xD47A, - 10916: 0xD47B, - 10917: 0xD47D, - 10918: 0xD47E, - 10919: 0xD481, - 10920: 0xD483, - 10921: 0xD484, - 10922: 0xD485, - 10923: 0xD486, - 10924: 0xD487, - 10925: 0xD48A, - 10926: 0xD48C, - 10927: 0xD48E, - 10928: 0xD48F, - 10929: 0xD490, - 10930: 0xD491, - 10931: 0xD492, - 10932: 0xD493, - 10933: 0xD495, - 10934: 0xD496, - 10935: 0xD497, - 10936: 0xD498, - 10937: 0xD499, - 10938: 0xD49A, - 10939: 0xD49B, - 10940: 0xD49C, - 10941: 0xD49D, - 10942: 0xC434, - 10943: 0xC43C, - 10944: 0xC43D, - 10945: 0xC448, - 10946: 0xC464, - 10947: 0xC465, - 10948: 0xC468, - 10949: 0xC46C, - 10950: 0xC474, - 10951: 0xC475, - 10952: 0xC479, - 10953: 0xC480, - 10954: 0xC494, - 10955: 0xC49C, - 10956: 0xC4B8, - 10957: 0xC4BC, - 10958: 0xC4E9, - 10959: 0xC4F0, - 10960: 0xC4F1, - 10961: 0xC4F4, - 10962: 0xC4F8, - 10963: 0xC4FA, - 10964: 0xC4FF, - 10965: 0xC500, - 10966: 0xC501, - 10967: 0xC50C, - 10968: 0xC510, - 10969: 0xC514, - 10970: 0xC51C, - 10971: 0xC528, - 10972: 0xC529, - 10973: 0xC52C, - 10974: 0xC530, - 10975: 0xC538, - 10976: 0xC539, - 10977: 0xC53B, - 10978: 0xC53D, - 10979: 0xC544, - 10980: 0xC545, - 10981: 0xC548, - 10982: 0xC549, - 10983: 0xC54A, - 10984: 0xC54C, - 10985: 0xC54D, - 10986: 0xC54E, - 10987: 0xC553, - 10988: 0xC554, - 10989: 0xC555, - 10990: 0xC557, - 10991: 0xC558, - 10992: 0xC559, - 10993: 0xC55D, - 10994: 0xC55E, - 10995: 0xC560, - 10996: 0xC561, - 10997: 0xC564, - 10998: 0xC568, - 10999: 0xC570, - 11000: 0xC571, - 11001: 0xC573, - 11002: 0xC574, - 11003: 0xC575, - 11004: 0xC57C, - 11005: 0xC57D, - 11006: 0xC580, - 11007: 0xC584, - 11008: 0xC587, - 11009: 0xC58C, - 11010: 0xC58D, - 11011: 0xC58F, - 11012: 0xC591, - 11013: 0xC595, - 11014: 0xC597, - 11015: 0xC598, - 11016: 0xC59C, - 11017: 0xC5A0, - 11018: 0xC5A9, - 11019: 0xC5B4, - 11020: 0xC5B5, - 11021: 0xC5B8, - 11022: 0xC5B9, - 11023: 0xC5BB, - 11024: 0xC5BC, - 11025: 0xC5BD, - 11026: 0xC5BE, - 11027: 0xC5C4, - 11028: 0xC5C5, - 11029: 0xC5C6, - 11030: 0xC5C7, - 11031: 0xC5C8, - 11032: 0xC5C9, - 11033: 0xC5CA, - 11034: 0xC5CC, - 11035: 0xC5CE, - 11036: 0xD49E, - 11037: 0xD49F, - 11038: 0xD4A0, - 11039: 0xD4A1, - 11040: 0xD4A2, - 11041: 0xD4A3, - 11042: 0xD4A4, - 11043: 0xD4A5, - 11044: 0xD4A6, - 11045: 0xD4A7, - 11046: 0xD4A8, - 11047: 0xD4AA, - 11048: 0xD4AB, - 11049: 0xD4AC, - 11050: 0xD4AD, - 11051: 0xD4AE, - 11052: 0xD4AF, - 11053: 0xD4B0, - 11054: 0xD4B1, - 11055: 0xD4B2, - 11056: 0xD4B3, - 11057: 0xD4B4, - 11058: 0xD4B5, - 11059: 0xD4B6, - 11060: 0xD4B7, - 11061: 0xD4B8, - 11062: 0xD4B9, - 11063: 0xD4BA, - 11064: 0xD4BB, - 11065: 0xD4BC, - 11066: 0xD4BD, - 11067: 0xD4BE, - 11068: 0xD4BF, - 11069: 0xD4C0, - 11070: 0xD4C1, - 11071: 0xD4C2, - 11072: 0xD4C3, - 11073: 0xD4C4, - 11074: 0xD4C5, - 11075: 0xD4C6, - 11076: 0xD4C7, - 11077: 0xD4C8, - 11078: 0xD4C9, - 11079: 0xD4CA, - 11080: 0xD4CB, - 11081: 0xD4CD, - 11082: 0xD4CE, - 11083: 0xD4CF, - 11084: 0xD4D1, - 11085: 0xD4D2, - 11086: 0xD4D3, - 11087: 0xD4D5, - 11088: 0xD4D6, - 11089: 0xD4D7, - 11090: 0xD4D8, - 11091: 0xD4D9, - 11092: 0xD4DA, - 11093: 0xD4DB, - 11094: 0xD4DD, - 11095: 0xD4DE, - 11096: 0xD4E0, - 11097: 0xD4E1, - 11098: 0xD4E2, - 11099: 0xD4E3, - 11100: 0xD4E4, - 11101: 0xD4E5, - 11102: 0xD4E6, - 11103: 0xD4E7, - 11104: 0xD4E9, - 11105: 0xD4EA, - 11106: 0xD4EB, - 11107: 0xD4ED, - 11108: 0xD4EE, - 11109: 0xD4EF, - 11110: 0xD4F1, - 11111: 0xD4F2, - 11112: 0xD4F3, - 11113: 0xD4F4, - 11114: 0xD4F5, - 11115: 0xD4F6, - 11116: 0xD4F7, - 11117: 0xD4F9, - 11118: 0xD4FA, - 11119: 0xD4FC, - 11120: 0xC5D0, - 11121: 0xC5D1, - 11122: 0xC5D4, - 11123: 0xC5D8, - 11124: 0xC5E0, - 11125: 0xC5E1, - 11126: 0xC5E3, - 11127: 0xC5E5, - 11128: 0xC5EC, - 11129: 0xC5ED, - 11130: 0xC5EE, - 11131: 0xC5F0, - 11132: 0xC5F4, - 11133: 0xC5F6, - 11134: 0xC5F7, - 11135: 0xC5FC, - 11136: 0xC5FD, - 11137: 0xC5FE, - 11138: 0xC5FF, - 11139: 0xC600, - 11140: 0xC601, - 11141: 0xC605, - 11142: 0xC606, - 11143: 0xC607, - 11144: 0xC608, - 11145: 0xC60C, - 11146: 0xC610, - 11147: 0xC618, - 11148: 0xC619, - 11149: 0xC61B, - 11150: 0xC61C, - 11151: 0xC624, - 11152: 0xC625, - 11153: 0xC628, - 11154: 0xC62C, - 11155: 0xC62D, - 11156: 0xC62E, - 11157: 0xC630, - 11158: 0xC633, - 11159: 0xC634, - 11160: 0xC635, - 11161: 0xC637, - 11162: 0xC639, - 11163: 0xC63B, - 11164: 0xC640, - 11165: 0xC641, - 11166: 0xC644, - 11167: 0xC648, - 11168: 0xC650, - 11169: 0xC651, - 11170: 0xC653, - 11171: 0xC654, - 11172: 0xC655, - 11173: 0xC65C, - 11174: 0xC65D, - 11175: 0xC660, - 11176: 0xC66C, - 11177: 0xC66F, - 11178: 0xC671, - 11179: 0xC678, - 11180: 0xC679, - 11181: 0xC67C, - 11182: 0xC680, - 11183: 0xC688, - 11184: 0xC689, - 11185: 0xC68B, - 11186: 0xC68D, - 11187: 0xC694, - 11188: 0xC695, - 11189: 0xC698, - 11190: 0xC69C, - 11191: 0xC6A4, - 11192: 0xC6A5, - 11193: 0xC6A7, - 11194: 0xC6A9, - 11195: 0xC6B0, - 11196: 0xC6B1, - 11197: 0xC6B4, - 11198: 0xC6B8, - 11199: 0xC6B9, - 11200: 0xC6BA, - 11201: 0xC6C0, - 11202: 0xC6C1, - 11203: 0xC6C3, - 11204: 0xC6C5, - 11205: 0xC6CC, - 11206: 0xC6CD, - 11207: 0xC6D0, - 11208: 0xC6D4, - 11209: 0xC6DC, - 11210: 0xC6DD, - 11211: 0xC6E0, - 11212: 0xC6E1, - 11213: 0xC6E8, - 11214: 0xD4FE, - 11215: 0xD4FF, - 11216: 0xD500, - 11217: 0xD501, - 11218: 0xD502, - 11219: 0xD503, - 11220: 0xD505, - 11221: 0xD506, - 11222: 0xD507, - 11223: 0xD509, - 11224: 0xD50A, - 11225: 0xD50B, - 11226: 0xD50D, - 11227: 0xD50E, - 11228: 0xD50F, - 11229: 0xD510, - 11230: 0xD511, - 11231: 0xD512, - 11232: 0xD513, - 11233: 0xD516, - 11234: 0xD518, - 11235: 0xD519, - 11236: 0xD51A, - 11237: 0xD51B, - 11238: 0xD51C, - 11239: 0xD51D, - 11240: 0xD51E, - 11241: 0xD51F, - 11242: 0xD520, - 11243: 0xD521, - 11244: 0xD522, - 11245: 0xD523, - 11246: 0xD524, - 11247: 0xD525, - 11248: 0xD526, - 11249: 0xD527, - 11250: 0xD528, - 11251: 0xD529, - 11252: 0xD52A, - 11253: 0xD52B, - 11254: 0xD52C, - 11255: 0xD52D, - 11256: 0xD52E, - 11257: 0xD52F, - 11258: 0xD530, - 11259: 0xD531, - 11260: 0xD532, - 11261: 0xD533, - 11262: 0xD534, - 11263: 0xD535, - 11264: 0xD536, - 11265: 0xD537, - 11266: 0xD538, - 11267: 0xD539, - 11268: 0xD53A, - 11269: 0xD53B, - 11270: 0xD53E, - 11271: 0xD53F, - 11272: 0xD541, - 11273: 0xD542, - 11274: 0xD543, - 11275: 0xD545, - 11276: 0xD546, - 11277: 0xD547, - 11278: 0xD548, - 11279: 0xD549, - 11280: 0xD54A, - 11281: 0xD54B, - 11282: 0xD54E, - 11283: 0xD550, - 11284: 0xD552, - 11285: 0xD553, - 11286: 0xD554, - 11287: 0xD555, - 11288: 0xD556, - 11289: 0xD557, - 11290: 0xD55A, - 11291: 0xD55B, - 11292: 0xD55D, - 11293: 0xD55E, - 11294: 0xD55F, - 11295: 0xD561, - 11296: 0xD562, - 11297: 0xD563, - 11298: 0xC6E9, - 11299: 0xC6EC, - 11300: 0xC6F0, - 11301: 0xC6F8, - 11302: 0xC6F9, - 11303: 0xC6FD, - 11304: 0xC704, - 11305: 0xC705, - 11306: 0xC708, - 11307: 0xC70C, - 11308: 0xC714, - 11309: 0xC715, - 11310: 0xC717, - 11311: 0xC719, - 11312: 0xC720, - 11313: 0xC721, - 11314: 0xC724, - 11315: 0xC728, - 11316: 0xC730, - 11317: 0xC731, - 11318: 0xC733, - 11319: 0xC735, - 11320: 0xC737, - 11321: 0xC73C, - 11322: 0xC73D, - 11323: 0xC740, - 11324: 0xC744, - 11325: 0xC74A, - 11326: 0xC74C, - 11327: 0xC74D, - 11328: 0xC74F, - 11329: 0xC751, - 11330: 0xC752, - 11331: 0xC753, - 11332: 0xC754, - 11333: 0xC755, - 11334: 0xC756, - 11335: 0xC757, - 11336: 0xC758, - 11337: 0xC75C, - 11338: 0xC760, - 11339: 0xC768, - 11340: 0xC76B, - 11341: 0xC774, - 11342: 0xC775, - 11343: 0xC778, - 11344: 0xC77C, - 11345: 0xC77D, - 11346: 0xC77E, - 11347: 0xC783, - 11348: 0xC784, - 11349: 0xC785, - 11350: 0xC787, - 11351: 0xC788, - 11352: 0xC789, - 11353: 0xC78A, - 11354: 0xC78E, - 11355: 0xC790, - 11356: 0xC791, - 11357: 0xC794, - 11358: 0xC796, - 11359: 0xC797, - 11360: 0xC798, - 11361: 0xC79A, - 11362: 0xC7A0, - 11363: 0xC7A1, - 11364: 0xC7A3, - 11365: 0xC7A4, - 11366: 0xC7A5, - 11367: 0xC7A6, - 11368: 0xC7AC, - 11369: 0xC7AD, - 11370: 0xC7B0, - 11371: 0xC7B4, - 11372: 0xC7BC, - 11373: 0xC7BD, - 11374: 0xC7BF, - 11375: 0xC7C0, - 11376: 0xC7C1, - 11377: 0xC7C8, - 11378: 0xC7C9, - 11379: 0xC7CC, - 11380: 0xC7CE, - 11381: 0xC7D0, - 11382: 0xC7D8, - 11383: 0xC7DD, - 11384: 0xC7E4, - 11385: 0xC7E8, - 11386: 0xC7EC, - 11387: 0xC800, - 11388: 0xC801, - 11389: 0xC804, - 11390: 0xC808, - 11391: 0xC80A, - 11392: 0xD564, - 11393: 0xD566, - 11394: 0xD567, - 11395: 0xD56A, - 11396: 0xD56C, - 11397: 0xD56E, - 11398: 0xD56F, - 11399: 0xD570, - 11400: 0xD571, - 11401: 0xD572, - 11402: 0xD573, - 11403: 0xD576, - 11404: 0xD577, - 11405: 0xD579, - 11406: 0xD57A, - 11407: 0xD57B, - 11408: 0xD57D, - 11409: 0xD57E, - 11410: 0xD57F, - 11411: 0xD580, - 11412: 0xD581, - 11413: 0xD582, - 11414: 0xD583, - 11415: 0xD586, - 11416: 0xD58A, - 11417: 0xD58B, - 11418: 0xD58C, - 11419: 0xD58D, - 11420: 0xD58E, - 11421: 0xD58F, - 11422: 0xD591, - 11423: 0xD592, - 11424: 0xD593, - 11425: 0xD594, - 11426: 0xD595, - 11427: 0xD596, - 11428: 0xD597, - 11429: 0xD598, - 11430: 0xD599, - 11431: 0xD59A, - 11432: 0xD59B, - 11433: 0xD59C, - 11434: 0xD59D, - 11435: 0xD59E, - 11436: 0xD59F, - 11437: 0xD5A0, - 11438: 0xD5A1, - 11439: 0xD5A2, - 11440: 0xD5A3, - 11441: 0xD5A4, - 11442: 0xD5A6, - 11443: 0xD5A7, - 11444: 0xD5A8, - 11445: 0xD5A9, - 11446: 0xD5AA, - 11447: 0xD5AB, - 11448: 0xD5AC, - 11449: 0xD5AD, - 11450: 0xD5AE, - 11451: 0xD5AF, - 11452: 0xD5B0, - 11453: 0xD5B1, - 11454: 0xD5B2, - 11455: 0xD5B3, - 11456: 0xD5B4, - 11457: 0xD5B5, - 11458: 0xD5B6, - 11459: 0xD5B7, - 11460: 0xD5B8, - 11461: 0xD5B9, - 11462: 0xD5BA, - 11463: 0xD5BB, - 11464: 0xD5BC, - 11465: 0xD5BD, - 11466: 0xD5BE, - 11467: 0xD5BF, - 11468: 0xD5C0, - 11469: 0xD5C1, - 11470: 0xD5C2, - 11471: 0xD5C3, - 11472: 0xD5C4, - 11473: 0xD5C5, - 11474: 0xD5C6, - 11475: 0xD5C7, - 11476: 0xC810, - 11477: 0xC811, - 11478: 0xC813, - 11479: 0xC815, - 11480: 0xC816, - 11481: 0xC81C, - 11482: 0xC81D, - 11483: 0xC820, - 11484: 0xC824, - 11485: 0xC82C, - 11486: 0xC82D, - 11487: 0xC82F, - 11488: 0xC831, - 11489: 0xC838, - 11490: 0xC83C, - 11491: 0xC840, - 11492: 0xC848, - 11493: 0xC849, - 11494: 0xC84C, - 11495: 0xC84D, - 11496: 0xC854, - 11497: 0xC870, - 11498: 0xC871, - 11499: 0xC874, - 11500: 0xC878, - 11501: 0xC87A, - 11502: 0xC880, - 11503: 0xC881, - 11504: 0xC883, - 11505: 0xC885, - 11506: 0xC886, - 11507: 0xC887, - 11508: 0xC88B, - 11509: 0xC88C, - 11510: 0xC88D, - 11511: 0xC894, - 11512: 0xC89D, - 11513: 0xC89F, - 11514: 0xC8A1, - 11515: 0xC8A8, - 11516: 0xC8BC, - 11517: 0xC8BD, - 11518: 0xC8C4, - 11519: 0xC8C8, - 11520: 0xC8CC, - 11521: 0xC8D4, - 11522: 0xC8D5, - 11523: 0xC8D7, - 11524: 0xC8D9, - 11525: 0xC8E0, - 11526: 0xC8E1, - 11527: 0xC8E4, - 11528: 0xC8F5, - 11529: 0xC8FC, - 11530: 0xC8FD, - 11531: 0xC900, - 11532: 0xC904, - 11533: 0xC905, - 11534: 0xC906, - 11535: 0xC90C, - 11536: 0xC90D, - 11537: 0xC90F, - 11538: 0xC911, - 11539: 0xC918, - 11540: 0xC92C, - 11541: 0xC934, - 11542: 0xC950, - 11543: 0xC951, - 11544: 0xC954, - 11545: 0xC958, - 11546: 0xC960, - 11547: 0xC961, - 11548: 0xC963, - 11549: 0xC96C, - 11550: 0xC970, - 11551: 0xC974, - 11552: 0xC97C, - 11553: 0xC988, - 11554: 0xC989, - 11555: 0xC98C, - 11556: 0xC990, - 11557: 0xC998, - 11558: 0xC999, - 11559: 0xC99B, - 11560: 0xC99D, - 11561: 0xC9C0, - 11562: 0xC9C1, - 11563: 0xC9C4, - 11564: 0xC9C7, - 11565: 0xC9C8, - 11566: 0xC9CA, - 11567: 0xC9D0, - 11568: 0xC9D1, - 11569: 0xC9D3, - 11570: 0xD5CA, - 11571: 0xD5CB, - 11572: 0xD5CD, - 11573: 0xD5CE, - 11574: 0xD5CF, - 11575: 0xD5D1, - 11576: 0xD5D3, - 11577: 0xD5D4, - 11578: 0xD5D5, - 11579: 0xD5D6, - 11580: 0xD5D7, - 11581: 0xD5DA, - 11582: 0xD5DC, - 11583: 0xD5DE, - 11584: 0xD5DF, - 11585: 0xD5E0, - 11586: 0xD5E1, - 11587: 0xD5E2, - 11588: 0xD5E3, - 11589: 0xD5E6, - 11590: 0xD5E7, - 11591: 0xD5E9, - 11592: 0xD5EA, - 11593: 0xD5EB, - 11594: 0xD5ED, - 11595: 0xD5EE, - 11596: 0xD5EF, - 11597: 0xD5F0, - 11598: 0xD5F1, - 11599: 0xD5F2, - 11600: 0xD5F3, - 11601: 0xD5F6, - 11602: 0xD5F8, - 11603: 0xD5FA, - 11604: 0xD5FB, - 11605: 0xD5FC, - 11606: 0xD5FD, - 11607: 0xD5FE, - 11608: 0xD5FF, - 11609: 0xD602, - 11610: 0xD603, - 11611: 0xD605, - 11612: 0xD606, - 11613: 0xD607, - 11614: 0xD609, - 11615: 0xD60A, - 11616: 0xD60B, - 11617: 0xD60C, - 11618: 0xD60D, - 11619: 0xD60E, - 11620: 0xD60F, - 11621: 0xD612, - 11622: 0xD616, - 11623: 0xD617, - 11624: 0xD618, - 11625: 0xD619, - 11626: 0xD61A, - 11627: 0xD61B, - 11628: 0xD61D, - 11629: 0xD61E, - 11630: 0xD61F, - 11631: 0xD621, - 11632: 0xD622, - 11633: 0xD623, - 11634: 0xD625, - 11635: 0xD626, - 11636: 0xD627, - 11637: 0xD628, - 11638: 0xD629, - 11639: 0xD62A, - 11640: 0xD62B, - 11641: 0xD62C, - 11642: 0xD62E, - 11643: 0xD62F, - 11644: 0xD630, - 11645: 0xD631, - 11646: 0xD632, - 11647: 0xD633, - 11648: 0xD634, - 11649: 0xD635, - 11650: 0xD636, - 11651: 0xD637, - 11652: 0xD63A, - 11653: 0xD63B, - 11654: 0xC9D5, - 11655: 0xC9D6, - 11656: 0xC9D9, - 11657: 0xC9DA, - 11658: 0xC9DC, - 11659: 0xC9DD, - 11660: 0xC9E0, - 11661: 0xC9E2, - 11662: 0xC9E4, - 11663: 0xC9E7, - 11664: 0xC9EC, - 11665: 0xC9ED, - 11666: 0xC9EF, - 11667: 0xC9F0, - 11668: 0xC9F1, - 11669: 0xC9F8, - 11670: 0xC9F9, - 11671: 0xC9FC, - 11672: 0xCA00, - 11673: 0xCA08, - 11674: 0xCA09, - 11675: 0xCA0B, - 11676: 0xCA0C, - 11677: 0xCA0D, - 11678: 0xCA14, - 11679: 0xCA18, - 11680: 0xCA29, - 11681: 0xCA4C, - 11682: 0xCA4D, - 11683: 0xCA50, - 11684: 0xCA54, - 11685: 0xCA5C, - 11686: 0xCA5D, - 11687: 0xCA5F, - 11688: 0xCA60, - 11689: 0xCA61, - 11690: 0xCA68, - 11691: 0xCA7D, - 11692: 0xCA84, - 11693: 0xCA98, - 11694: 0xCABC, - 11695: 0xCABD, - 11696: 0xCAC0, - 11697: 0xCAC4, - 11698: 0xCACC, - 11699: 0xCACD, - 11700: 0xCACF, - 11701: 0xCAD1, - 11702: 0xCAD3, - 11703: 0xCAD8, - 11704: 0xCAD9, - 11705: 0xCAE0, - 11706: 0xCAEC, - 11707: 0xCAF4, - 11708: 0xCB08, - 11709: 0xCB10, - 11710: 0xCB14, - 11711: 0xCB18, - 11712: 0xCB20, - 11713: 0xCB21, - 11714: 0xCB41, - 11715: 0xCB48, - 11716: 0xCB49, - 11717: 0xCB4C, - 11718: 0xCB50, - 11719: 0xCB58, - 11720: 0xCB59, - 11721: 0xCB5D, - 11722: 0xCB64, - 11723: 0xCB78, - 11724: 0xCB79, - 11725: 0xCB9C, - 11726: 0xCBB8, - 11727: 0xCBD4, - 11728: 0xCBE4, - 11729: 0xCBE7, - 11730: 0xCBE9, - 11731: 0xCC0C, - 11732: 0xCC0D, - 11733: 0xCC10, - 11734: 0xCC14, - 11735: 0xCC1C, - 11736: 0xCC1D, - 11737: 0xCC21, - 11738: 0xCC22, - 11739: 0xCC27, - 11740: 0xCC28, - 11741: 0xCC29, - 11742: 0xCC2C, - 11743: 0xCC2E, - 11744: 0xCC30, - 11745: 0xCC38, - 11746: 0xCC39, - 11747: 0xCC3B, - 11748: 0xD63D, - 11749: 0xD63E, - 11750: 0xD63F, - 11751: 0xD641, - 11752: 0xD642, - 11753: 0xD643, - 11754: 0xD644, - 11755: 0xD646, - 11756: 0xD647, - 11757: 0xD64A, - 11758: 0xD64C, - 11759: 0xD64E, - 11760: 0xD64F, - 11761: 0xD650, - 11762: 0xD652, - 11763: 0xD653, - 11764: 0xD656, - 11765: 0xD657, - 11766: 0xD659, - 11767: 0xD65A, - 11768: 0xD65B, - 11769: 0xD65D, - 11770: 0xD65E, - 11771: 0xD65F, - 11772: 0xD660, - 11773: 0xD661, - 11774: 0xD662, - 11775: 0xD663, - 11776: 0xD664, - 11777: 0xD665, - 11778: 0xD666, - 11779: 0xD668, - 11780: 0xD66A, - 11781: 0xD66B, - 11782: 0xD66C, - 11783: 0xD66D, - 11784: 0xD66E, - 11785: 0xD66F, - 11786: 0xD672, - 11787: 0xD673, - 11788: 0xD675, - 11789: 0xD676, - 11790: 0xD677, - 11791: 0xD678, - 11792: 0xD679, - 11793: 0xD67A, - 11794: 0xD67B, - 11795: 0xD67C, - 11796: 0xD67D, - 11797: 0xD67E, - 11798: 0xD67F, - 11799: 0xD680, - 11800: 0xD681, - 11801: 0xD682, - 11802: 0xD684, - 11803: 0xD686, - 11804: 0xD687, - 11805: 0xD688, - 11806: 0xD689, - 11807: 0xD68A, - 11808: 0xD68B, - 11809: 0xD68E, - 11810: 0xD68F, - 11811: 0xD691, - 11812: 0xD692, - 11813: 0xD693, - 11814: 0xD695, - 11815: 0xD696, - 11816: 0xD697, - 11817: 0xD698, - 11818: 0xD699, - 11819: 0xD69A, - 11820: 0xD69B, - 11821: 0xD69C, - 11822: 0xD69E, - 11823: 0xD6A0, - 11824: 0xD6A2, - 11825: 0xD6A3, - 11826: 0xD6A4, - 11827: 0xD6A5, - 11828: 0xD6A6, - 11829: 0xD6A7, - 11830: 0xD6A9, - 11831: 0xD6AA, - 11832: 0xCC3C, - 11833: 0xCC3D, - 11834: 0xCC3E, - 11835: 0xCC44, - 11836: 0xCC45, - 11837: 0xCC48, - 11838: 0xCC4C, - 11839: 0xCC54, - 11840: 0xCC55, - 11841: 0xCC57, - 11842: 0xCC58, - 11843: 0xCC59, - 11844: 0xCC60, - 11845: 0xCC64, - 11846: 0xCC66, - 11847: 0xCC68, - 11848: 0xCC70, - 11849: 0xCC75, - 11850: 0xCC98, - 11851: 0xCC99, - 11852: 0xCC9C, - 11853: 0xCCA0, - 11854: 0xCCA8, - 11855: 0xCCA9, - 11856: 0xCCAB, - 11857: 0xCCAC, - 11858: 0xCCAD, - 11859: 0xCCB4, - 11860: 0xCCB5, - 11861: 0xCCB8, - 11862: 0xCCBC, - 11863: 0xCCC4, - 11864: 0xCCC5, - 11865: 0xCCC7, - 11866: 0xCCC9, - 11867: 0xCCD0, - 11868: 0xCCD4, - 11869: 0xCCE4, - 11870: 0xCCEC, - 11871: 0xCCF0, - 11872: 0xCD01, - 11873: 0xCD08, - 11874: 0xCD09, - 11875: 0xCD0C, - 11876: 0xCD10, - 11877: 0xCD18, - 11878: 0xCD19, - 11879: 0xCD1B, - 11880: 0xCD1D, - 11881: 0xCD24, - 11882: 0xCD28, - 11883: 0xCD2C, - 11884: 0xCD39, - 11885: 0xCD5C, - 11886: 0xCD60, - 11887: 0xCD64, - 11888: 0xCD6C, - 11889: 0xCD6D, - 11890: 0xCD6F, - 11891: 0xCD71, - 11892: 0xCD78, - 11893: 0xCD88, - 11894: 0xCD94, - 11895: 0xCD95, - 11896: 0xCD98, - 11897: 0xCD9C, - 11898: 0xCDA4, - 11899: 0xCDA5, - 11900: 0xCDA7, - 11901: 0xCDA9, - 11902: 0xCDB0, - 11903: 0xCDC4, - 11904: 0xCDCC, - 11905: 0xCDD0, - 11906: 0xCDE8, - 11907: 0xCDEC, - 11908: 0xCDF0, - 11909: 0xCDF8, - 11910: 0xCDF9, - 11911: 0xCDFB, - 11912: 0xCDFD, - 11913: 0xCE04, - 11914: 0xCE08, - 11915: 0xCE0C, - 11916: 0xCE14, - 11917: 0xCE19, - 11918: 0xCE20, - 11919: 0xCE21, - 11920: 0xCE24, - 11921: 0xCE28, - 11922: 0xCE30, - 11923: 0xCE31, - 11924: 0xCE33, - 11925: 0xCE35, - 11926: 0xD6AB, - 11927: 0xD6AD, - 11928: 0xD6AE, - 11929: 0xD6AF, - 11930: 0xD6B1, - 11931: 0xD6B2, - 11932: 0xD6B3, - 11933: 0xD6B4, - 11934: 0xD6B5, - 11935: 0xD6B6, - 11936: 0xD6B7, - 11937: 0xD6B8, - 11938: 0xD6BA, - 11939: 0xD6BC, - 11940: 0xD6BD, - 11941: 0xD6BE, - 11942: 0xD6BF, - 11943: 0xD6C0, - 11944: 0xD6C1, - 11945: 0xD6C2, - 11946: 0xD6C3, - 11947: 0xD6C6, - 11948: 0xD6C7, - 11949: 0xD6C9, - 11950: 0xD6CA, - 11951: 0xD6CB, - 11952: 0xD6CD, - 11953: 0xD6CE, - 11954: 0xD6CF, - 11955: 0xD6D0, - 11956: 0xD6D2, - 11957: 0xD6D3, - 11958: 0xD6D5, - 11959: 0xD6D6, - 11960: 0xD6D8, - 11961: 0xD6DA, - 11962: 0xD6DB, - 11963: 0xD6DC, - 11964: 0xD6DD, - 11965: 0xD6DE, - 11966: 0xD6DF, - 11967: 0xD6E1, - 11968: 0xD6E2, - 11969: 0xD6E3, - 11970: 0xD6E5, - 11971: 0xD6E6, - 11972: 0xD6E7, - 11973: 0xD6E9, - 11974: 0xD6EA, - 11975: 0xD6EB, - 11976: 0xD6EC, - 11977: 0xD6ED, - 11978: 0xD6EE, - 11979: 0xD6EF, - 11980: 0xD6F1, - 11981: 0xD6F2, - 11982: 0xD6F3, - 11983: 0xD6F4, - 11984: 0xD6F6, - 11985: 0xD6F7, - 11986: 0xD6F8, - 11987: 0xD6F9, - 11988: 0xD6FA, - 11989: 0xD6FB, - 11990: 0xD6FE, - 11991: 0xD6FF, - 11992: 0xD701, - 11993: 0xD702, - 11994: 0xD703, - 11995: 0xD705, - 11996: 0xD706, - 11997: 0xD707, - 11998: 0xD708, - 11999: 0xD709, - 12000: 0xD70A, - 12001: 0xD70B, - 12002: 0xD70C, - 12003: 0xD70D, - 12004: 0xD70E, - 12005: 0xD70F, - 12006: 0xD710, - 12007: 0xD712, - 12008: 0xD713, - 12009: 0xD714, - 12010: 0xCE58, - 12011: 0xCE59, - 12012: 0xCE5C, - 12013: 0xCE5F, - 12014: 0xCE60, - 12015: 0xCE61, - 12016: 0xCE68, - 12017: 0xCE69, - 12018: 0xCE6B, - 12019: 0xCE6D, - 12020: 0xCE74, - 12021: 0xCE75, - 12022: 0xCE78, - 12023: 0xCE7C, - 12024: 0xCE84, - 12025: 0xCE85, - 12026: 0xCE87, - 12027: 0xCE89, - 12028: 0xCE90, - 12029: 0xCE91, - 12030: 0xCE94, - 12031: 0xCE98, - 12032: 0xCEA0, - 12033: 0xCEA1, - 12034: 0xCEA3, - 12035: 0xCEA4, - 12036: 0xCEA5, - 12037: 0xCEAC, - 12038: 0xCEAD, - 12039: 0xCEC1, - 12040: 0xCEE4, - 12041: 0xCEE5, - 12042: 0xCEE8, - 12043: 0xCEEB, - 12044: 0xCEEC, - 12045: 0xCEF4, - 12046: 0xCEF5, - 12047: 0xCEF7, - 12048: 0xCEF8, - 12049: 0xCEF9, - 12050: 0xCF00, - 12051: 0xCF01, - 12052: 0xCF04, - 12053: 0xCF08, - 12054: 0xCF10, - 12055: 0xCF11, - 12056: 0xCF13, - 12057: 0xCF15, - 12058: 0xCF1C, - 12059: 0xCF20, - 12060: 0xCF24, - 12061: 0xCF2C, - 12062: 0xCF2D, - 12063: 0xCF2F, - 12064: 0xCF30, - 12065: 0xCF31, - 12066: 0xCF38, - 12067: 0xCF54, - 12068: 0xCF55, - 12069: 0xCF58, - 12070: 0xCF5C, - 12071: 0xCF64, - 12072: 0xCF65, - 12073: 0xCF67, - 12074: 0xCF69, - 12075: 0xCF70, - 12076: 0xCF71, - 12077: 0xCF74, - 12078: 0xCF78, - 12079: 0xCF80, - 12080: 0xCF85, - 12081: 0xCF8C, - 12082: 0xCFA1, - 12083: 0xCFA8, - 12084: 0xCFB0, - 12085: 0xCFC4, - 12086: 0xCFE0, - 12087: 0xCFE1, - 12088: 0xCFE4, - 12089: 0xCFE8, - 12090: 0xCFF0, - 12091: 0xCFF1, - 12092: 0xCFF3, - 12093: 0xCFF5, - 12094: 0xCFFC, - 12095: 0xD000, - 12096: 0xD004, - 12097: 0xD011, - 12098: 0xD018, - 12099: 0xD02D, - 12100: 0xD034, - 12101: 0xD035, - 12102: 0xD038, - 12103: 0xD03C, - 12104: 0xD715, - 12105: 0xD716, - 12106: 0xD717, - 12107: 0xD71A, - 12108: 0xD71B, - 12109: 0xD71D, - 12110: 0xD71E, - 12111: 0xD71F, - 12112: 0xD721, - 12113: 0xD722, - 12114: 0xD723, - 12115: 0xD724, - 12116: 0xD725, - 12117: 0xD726, - 12118: 0xD727, - 12119: 0xD72A, - 12120: 0xD72C, - 12121: 0xD72E, - 12122: 0xD72F, - 12123: 0xD730, - 12124: 0xD731, - 12125: 0xD732, - 12126: 0xD733, - 12127: 0xD736, - 12128: 0xD737, - 12129: 0xD739, - 12130: 0xD73A, - 12131: 0xD73B, - 12132: 0xD73D, - 12133: 0xD73E, - 12134: 0xD73F, - 12135: 0xD740, - 12136: 0xD741, - 12137: 0xD742, - 12138: 0xD743, - 12139: 0xD745, - 12140: 0xD746, - 12141: 0xD748, - 12142: 0xD74A, - 12143: 0xD74B, - 12144: 0xD74C, - 12145: 0xD74D, - 12146: 0xD74E, - 12147: 0xD74F, - 12148: 0xD752, - 12149: 0xD753, - 12150: 0xD755, - 12151: 0xD75A, - 12152: 0xD75B, - 12153: 0xD75C, - 12154: 0xD75D, - 12155: 0xD75E, - 12156: 0xD75F, - 12157: 0xD762, - 12158: 0xD764, - 12159: 0xD766, - 12160: 0xD767, - 12161: 0xD768, - 12162: 0xD76A, - 12163: 0xD76B, - 12164: 0xD76D, - 12165: 0xD76E, - 12166: 0xD76F, - 12167: 0xD771, - 12168: 0xD772, - 12169: 0xD773, - 12170: 0xD775, - 12171: 0xD776, - 12172: 0xD777, - 12173: 0xD778, - 12174: 0xD779, - 12175: 0xD77A, - 12176: 0xD77B, - 12177: 0xD77E, - 12178: 0xD77F, - 12179: 0xD780, - 12180: 0xD782, - 12181: 0xD783, - 12182: 0xD784, - 12183: 0xD785, - 12184: 0xD786, - 12185: 0xD787, - 12186: 0xD78A, - 12187: 0xD78B, - 12188: 0xD044, - 12189: 0xD045, - 12190: 0xD047, - 12191: 0xD049, - 12192: 0xD050, - 12193: 0xD054, - 12194: 0xD058, - 12195: 0xD060, - 12196: 0xD06C, - 12197: 0xD06D, - 12198: 0xD070, - 12199: 0xD074, - 12200: 0xD07C, - 12201: 0xD07D, - 12202: 0xD081, - 12203: 0xD0A4, - 12204: 0xD0A5, - 12205: 0xD0A8, - 12206: 0xD0AC, - 12207: 0xD0B4, - 12208: 0xD0B5, - 12209: 0xD0B7, - 12210: 0xD0B9, - 12211: 0xD0C0, - 12212: 0xD0C1, - 12213: 0xD0C4, - 12214: 0xD0C8, - 12215: 0xD0C9, - 12216: 0xD0D0, - 12217: 0xD0D1, - 12218: 0xD0D3, - 12219: 0xD0D4, - 12220: 0xD0D5, - 12221: 0xD0DC, - 12222: 0xD0DD, - 12223: 0xD0E0, - 12224: 0xD0E4, - 12225: 0xD0EC, - 12226: 0xD0ED, - 12227: 0xD0EF, - 12228: 0xD0F0, - 12229: 0xD0F1, - 12230: 0xD0F8, - 12231: 0xD10D, - 12232: 0xD130, - 12233: 0xD131, - 12234: 0xD134, - 12235: 0xD138, - 12236: 0xD13A, - 12237: 0xD140, - 12238: 0xD141, - 12239: 0xD143, - 12240: 0xD144, - 12241: 0xD145, - 12242: 0xD14C, - 12243: 0xD14D, - 12244: 0xD150, - 12245: 0xD154, - 12246: 0xD15C, - 12247: 0xD15D, - 12248: 0xD15F, - 12249: 0xD161, - 12250: 0xD168, - 12251: 0xD16C, - 12252: 0xD17C, - 12253: 0xD184, - 12254: 0xD188, - 12255: 0xD1A0, - 12256: 0xD1A1, - 12257: 0xD1A4, - 12258: 0xD1A8, - 12259: 0xD1B0, - 12260: 0xD1B1, - 12261: 0xD1B3, - 12262: 0xD1B5, - 12263: 0xD1BA, - 12264: 0xD1BC, - 12265: 0xD1C0, - 12266: 0xD1D8, - 12267: 0xD1F4, - 12268: 0xD1F8, - 12269: 0xD207, - 12270: 0xD209, - 12271: 0xD210, - 12272: 0xD22C, - 12273: 0xD22D, - 12274: 0xD230, - 12275: 0xD234, - 12276: 0xD23C, - 12277: 0xD23D, - 12278: 0xD23F, - 12279: 0xD241, - 12280: 0xD248, - 12281: 0xD25C, - 12282: 0xD78D, - 12283: 0xD78E, - 12284: 0xD78F, - 12285: 0xD791, - 12286: 0xD792, - 12287: 0xD793, - 12288: 0xD794, - 12289: 0xD795, - 12290: 0xD796, - 12291: 0xD797, - 12292: 0xD79A, - 12293: 0xD79C, - 12294: 0xD79E, - 12295: 0xD79F, - 12296: 0xD7A0, - 12297: 0xD7A1, - 12298: 0xD7A2, - 12299: 0xD7A3, - 12366: 0xD264, - 12367: 0xD280, - 12368: 0xD281, - 12369: 0xD284, - 12370: 0xD288, - 12371: 0xD290, - 12372: 0xD291, - 12373: 0xD295, - 12374: 0xD29C, - 12375: 0xD2A0, - 12376: 0xD2A4, - 12377: 0xD2AC, - 12378: 0xD2B1, - 12379: 0xD2B8, - 12380: 0xD2B9, - 12381: 0xD2BC, - 12382: 0xD2BF, - 12383: 0xD2C0, - 12384: 0xD2C2, - 12385: 0xD2C8, - 12386: 0xD2C9, - 12387: 0xD2CB, - 12388: 0xD2D4, - 12389: 0xD2D8, - 12390: 0xD2DC, - 12391: 0xD2E4, - 12392: 0xD2E5, - 12393: 0xD2F0, - 12394: 0xD2F1, - 12395: 0xD2F4, - 12396: 0xD2F8, - 12397: 0xD300, - 12398: 0xD301, - 12399: 0xD303, - 12400: 0xD305, - 12401: 0xD30C, - 12402: 0xD30D, - 12403: 0xD30E, - 12404: 0xD310, - 12405: 0xD314, - 12406: 0xD316, - 12407: 0xD31C, - 12408: 0xD31D, - 12409: 0xD31F, - 12410: 0xD320, - 12411: 0xD321, - 12412: 0xD325, - 12413: 0xD328, - 12414: 0xD329, - 12415: 0xD32C, - 12416: 0xD330, - 12417: 0xD338, - 12418: 0xD339, - 12419: 0xD33B, - 12420: 0xD33C, - 12421: 0xD33D, - 12422: 0xD344, - 12423: 0xD345, - 12424: 0xD37C, - 12425: 0xD37D, - 12426: 0xD380, - 12427: 0xD384, - 12428: 0xD38C, - 12429: 0xD38D, - 12430: 0xD38F, - 12431: 0xD390, - 12432: 0xD391, - 12433: 0xD398, - 12434: 0xD399, - 12435: 0xD39C, - 12436: 0xD3A0, - 12437: 0xD3A8, - 12438: 0xD3A9, - 12439: 0xD3AB, - 12440: 0xD3AD, - 12441: 0xD3B4, - 12442: 0xD3B8, - 12443: 0xD3BC, - 12444: 0xD3C4, - 12445: 0xD3C5, - 12446: 0xD3C8, - 12447: 0xD3C9, - 12448: 0xD3D0, - 12449: 0xD3D8, - 12450: 0xD3E1, - 12451: 0xD3E3, - 12452: 0xD3EC, - 12453: 0xD3ED, - 12454: 0xD3F0, - 12455: 0xD3F4, - 12456: 0xD3FC, - 12457: 0xD3FD, - 12458: 0xD3FF, - 12459: 0xD401, - 12460: 0xD408, - 12461: 0xD41D, - 12462: 0xD440, - 12463: 0xD444, - 12464: 0xD45C, - 12465: 0xD460, - 12466: 0xD464, - 12467: 0xD46D, - 12468: 0xD46F, - 12469: 0xD478, - 12470: 0xD479, - 12471: 0xD47C, - 12472: 0xD47F, - 12473: 0xD480, - 12474: 0xD482, - 12475: 0xD488, - 12476: 0xD489, - 12477: 0xD48B, - 12478: 0xD48D, - 12479: 0xD494, - 12480: 0xD4A9, - 12481: 0xD4CC, - 12482: 0xD4D0, - 12483: 0xD4D4, - 12484: 0xD4DC, - 12485: 0xD4DF, - 12486: 0xD4E8, - 12487: 0xD4EC, - 12488: 0xD4F0, - 12489: 0xD4F8, - 12490: 0xD4FB, - 12491: 0xD4FD, - 12492: 0xD504, - 12493: 0xD508, - 12494: 0xD50C, - 12495: 0xD514, - 12496: 0xD515, - 12497: 0xD517, - 12498: 0xD53C, - 12499: 0xD53D, - 12500: 0xD540, - 12501: 0xD544, - 12502: 0xD54C, - 12503: 0xD54D, - 12504: 0xD54F, - 12505: 0xD551, - 12506: 0xD558, - 12507: 0xD559, - 12508: 0xD55C, - 12509: 0xD560, - 12510: 0xD565, - 12511: 0xD568, - 12512: 0xD569, - 12513: 0xD56B, - 12514: 0xD56D, - 12515: 0xD574, - 12516: 0xD575, - 12517: 0xD578, - 12518: 0xD57C, - 12519: 0xD584, - 12520: 0xD585, - 12521: 0xD587, - 12522: 0xD588, - 12523: 0xD589, - 12524: 0xD590, - 12525: 0xD5A5, - 12526: 0xD5C8, - 12527: 0xD5C9, - 12528: 0xD5CC, - 12529: 0xD5D0, - 12530: 0xD5D2, - 12531: 0xD5D8, - 12532: 0xD5D9, - 12533: 0xD5DB, - 12534: 0xD5DD, - 12535: 0xD5E4, - 12536: 0xD5E5, - 12537: 0xD5E8, - 12538: 0xD5EC, - 12539: 0xD5F4, - 12540: 0xD5F5, - 12541: 0xD5F7, - 12542: 0xD5F9, - 12543: 0xD600, - 12544: 0xD601, - 12545: 0xD604, - 12546: 0xD608, - 12547: 0xD610, - 12548: 0xD611, - 12549: 0xD613, - 12550: 0xD614, - 12551: 0xD615, - 12552: 0xD61C, - 12553: 0xD620, - 12554: 0xD624, - 12555: 0xD62D, - 12556: 0xD638, - 12557: 0xD639, - 12558: 0xD63C, - 12559: 0xD640, - 12560: 0xD645, - 12561: 0xD648, - 12562: 0xD649, - 12563: 0xD64B, - 12564: 0xD64D, - 12565: 0xD651, - 12566: 0xD654, - 12567: 0xD655, - 12568: 0xD658, - 12569: 0xD65C, - 12570: 0xD667, - 12571: 0xD669, - 12572: 0xD670, - 12573: 0xD671, - 12574: 0xD674, - 12575: 0xD683, - 12576: 0xD685, - 12577: 0xD68C, - 12578: 0xD68D, - 12579: 0xD690, - 12580: 0xD694, - 12581: 0xD69D, - 12582: 0xD69F, - 12583: 0xD6A1, - 12584: 0xD6A8, - 12585: 0xD6AC, - 12586: 0xD6B0, - 12587: 0xD6B9, - 12588: 0xD6BB, - 12589: 0xD6C4, - 12590: 0xD6C5, - 12591: 0xD6C8, - 12592: 0xD6CC, - 12593: 0xD6D1, - 12594: 0xD6D4, - 12595: 0xD6D7, - 12596: 0xD6D9, - 12597: 0xD6E0, - 12598: 0xD6E4, - 12599: 0xD6E8, - 12600: 0xD6F0, - 12601: 0xD6F5, - 12602: 0xD6FC, - 12603: 0xD6FD, - 12604: 0xD700, - 12605: 0xD704, - 12606: 0xD711, - 12607: 0xD718, - 12608: 0xD719, - 12609: 0xD71C, - 12610: 0xD720, - 12611: 0xD728, - 12612: 0xD729, - 12613: 0xD72B, - 12614: 0xD72D, - 12615: 0xD734, - 12616: 0xD735, - 12617: 0xD738, - 12618: 0xD73C, - 12619: 0xD744, - 12620: 0xD747, - 12621: 0xD749, - 12622: 0xD750, - 12623: 0xD751, - 12624: 0xD754, - 12625: 0xD756, - 12626: 0xD757, - 12627: 0xD758, - 12628: 0xD759, - 12629: 0xD760, - 12630: 0xD761, - 12631: 0xD763, - 12632: 0xD765, - 12633: 0xD769, - 12634: 0xD76C, - 12635: 0xD770, - 12636: 0xD774, - 12637: 0xD77C, - 12638: 0xD77D, - 12639: 0xD781, - 12640: 0xD788, - 12641: 0xD789, - 12642: 0xD78C, - 12643: 0xD790, - 12644: 0xD798, - 12645: 0xD799, - 12646: 0xD79B, - 12647: 0xD79D, - 12742: 0x4F3D, - 12743: 0x4F73, - 12744: 0x5047, - 12745: 0x50F9, - 12746: 0x52A0, - 12747: 0x53EF, - 12748: 0x5475, - 12749: 0x54E5, - 12750: 0x5609, - 12751: 0x5AC1, - 12752: 0x5BB6, - 12753: 0x6687, - 12754: 0x67B6, - 12755: 0x67B7, - 12756: 0x67EF, - 12757: 0x6B4C, - 12758: 0x73C2, - 12759: 0x75C2, - 12760: 0x7A3C, - 12761: 0x82DB, - 12762: 0x8304, - 12763: 0x8857, - 12764: 0x8888, - 12765: 0x8A36, - 12766: 0x8CC8, - 12767: 0x8DCF, - 12768: 0x8EFB, - 12769: 0x8FE6, - 12770: 0x99D5, - 12771: 0x523B, - 12772: 0x5374, - 12773: 0x5404, - 12774: 0x606A, - 12775: 0x6164, - 12776: 0x6BBC, - 12777: 0x73CF, - 12778: 0x811A, - 12779: 0x89BA, - 12780: 0x89D2, - 12781: 0x95A3, - 12782: 0x4F83, - 12783: 0x520A, - 12784: 0x58BE, - 12785: 0x5978, - 12786: 0x59E6, - 12787: 0x5E72, - 12788: 0x5E79, - 12789: 0x61C7, - 12790: 0x63C0, - 12791: 0x6746, - 12792: 0x67EC, - 12793: 0x687F, - 12794: 0x6F97, - 12795: 0x764E, - 12796: 0x770B, - 12797: 0x78F5, - 12798: 0x7A08, - 12799: 0x7AFF, - 12800: 0x7C21, - 12801: 0x809D, - 12802: 0x826E, - 12803: 0x8271, - 12804: 0x8AEB, - 12805: 0x9593, - 12806: 0x4E6B, - 12807: 0x559D, - 12808: 0x66F7, - 12809: 0x6E34, - 12810: 0x78A3, - 12811: 0x7AED, - 12812: 0x845B, - 12813: 0x8910, - 12814: 0x874E, - 12815: 0x97A8, - 12816: 0x52D8, - 12817: 0x574E, - 12818: 0x582A, - 12819: 0x5D4C, - 12820: 0x611F, - 12821: 0x61BE, - 12822: 0x6221, - 12823: 0x6562, - 12824: 0x67D1, - 12825: 0x6A44, - 12826: 0x6E1B, - 12827: 0x7518, - 12828: 0x75B3, - 12829: 0x76E3, - 12830: 0x77B0, - 12831: 0x7D3A, - 12832: 0x90AF, - 12833: 0x9451, - 12834: 0x9452, - 12835: 0x9F95, - 12836: 0x5323, - 12837: 0x5CAC, - 12838: 0x7532, - 12839: 0x80DB, - 12840: 0x9240, - 12841: 0x9598, - 12842: 0x525B, - 12843: 0x5808, - 12844: 0x59DC, - 12845: 0x5CA1, - 12846: 0x5D17, - 12847: 0x5EB7, - 12848: 0x5F3A, - 12849: 0x5F4A, - 12850: 0x6177, - 12851: 0x6C5F, - 12852: 0x757A, - 12853: 0x7586, - 12854: 0x7CE0, - 12855: 0x7D73, - 12856: 0x7DB1, - 12857: 0x7F8C, - 12858: 0x8154, - 12859: 0x8221, - 12860: 0x8591, - 12861: 0x8941, - 12862: 0x8B1B, - 12863: 0x92FC, - 12864: 0x964D, - 12865: 0x9C47, - 12866: 0x4ECB, - 12867: 0x4EF7, - 12868: 0x500B, - 12869: 0x51F1, - 12870: 0x584F, - 12871: 0x6137, - 12872: 0x613E, - 12873: 0x6168, - 12874: 0x6539, - 12875: 0x69EA, - 12876: 0x6F11, - 12877: 0x75A5, - 12878: 0x7686, - 12879: 0x76D6, - 12880: 0x7B87, - 12881: 0x82A5, - 12882: 0x84CB, - 12883: 0xF900, - 12884: 0x93A7, - 12885: 0x958B, - 12886: 0x5580, - 12887: 0x5BA2, - 12888: 0x5751, - 12889: 0xF901, - 12890: 0x7CB3, - 12891: 0x7FB9, - 12892: 0x91B5, - 12893: 0x5028, - 12894: 0x53BB, - 12895: 0x5C45, - 12896: 0x5DE8, - 12897: 0x62D2, - 12898: 0x636E, - 12899: 0x64DA, - 12900: 0x64E7, - 12901: 0x6E20, - 12902: 0x70AC, - 12903: 0x795B, - 12904: 0x8DDD, - 12905: 0x8E1E, - 12906: 0xF902, - 12907: 0x907D, - 12908: 0x9245, - 12909: 0x92F8, - 12910: 0x4E7E, - 12911: 0x4EF6, - 12912: 0x5065, - 12913: 0x5DFE, - 12914: 0x5EFA, - 12915: 0x6106, - 12916: 0x6957, - 12917: 0x8171, - 12918: 0x8654, - 12919: 0x8E47, - 12920: 0x9375, - 12921: 0x9A2B, - 12922: 0x4E5E, - 12923: 0x5091, - 12924: 0x6770, - 12925: 0x6840, - 12926: 0x5109, - 12927: 0x528D, - 12928: 0x5292, - 12929: 0x6AA2, - 12930: 0x77BC, - 12931: 0x9210, - 12932: 0x9ED4, - 12933: 0x52AB, - 12934: 0x602F, - 12935: 0x8FF2, - 12936: 0x5048, - 12937: 0x61A9, - 12938: 0x63ED, - 12939: 0x64CA, - 12940: 0x683C, - 12941: 0x6A84, - 12942: 0x6FC0, - 12943: 0x8188, - 12944: 0x89A1, - 12945: 0x9694, - 12946: 0x5805, - 12947: 0x727D, - 12948: 0x72AC, - 12949: 0x7504, - 12950: 0x7D79, - 12951: 0x7E6D, - 12952: 0x80A9, - 12953: 0x898B, - 12954: 0x8B74, - 12955: 0x9063, - 12956: 0x9D51, - 12957: 0x6289, - 12958: 0x6C7A, - 12959: 0x6F54, - 12960: 0x7D50, - 12961: 0x7F3A, - 12962: 0x8A23, - 12963: 0x517C, - 12964: 0x614A, - 12965: 0x7B9D, - 12966: 0x8B19, - 12967: 0x9257, - 12968: 0x938C, - 12969: 0x4EAC, - 12970: 0x4FD3, - 12971: 0x501E, - 12972: 0x50BE, - 12973: 0x5106, - 12974: 0x52C1, - 12975: 0x52CD, - 12976: 0x537F, - 12977: 0x5770, - 12978: 0x5883, - 12979: 0x5E9A, - 12980: 0x5F91, - 12981: 0x6176, - 12982: 0x61AC, - 12983: 0x64CE, - 12984: 0x656C, - 12985: 0x666F, - 12986: 0x66BB, - 12987: 0x66F4, - 12988: 0x6897, - 12989: 0x6D87, - 12990: 0x7085, - 12991: 0x70F1, - 12992: 0x749F, - 12993: 0x74A5, - 12994: 0x74CA, - 12995: 0x75D9, - 12996: 0x786C, - 12997: 0x78EC, - 12998: 0x7ADF, - 12999: 0x7AF6, - 13000: 0x7D45, - 13001: 0x7D93, - 13002: 0x8015, - 13003: 0x803F, - 13004: 0x811B, - 13005: 0x8396, - 13006: 0x8B66, - 13007: 0x8F15, - 13008: 0x9015, - 13009: 0x93E1, - 13010: 0x9803, - 13011: 0x9838, - 13012: 0x9A5A, - 13013: 0x9BE8, - 13014: 0x4FC2, - 13015: 0x5553, - 13016: 0x583A, - 13017: 0x5951, - 13018: 0x5B63, - 13019: 0x5C46, - 13020: 0x60B8, - 13021: 0x6212, - 13022: 0x6842, - 13023: 0x68B0, - 13024: 0x68E8, - 13025: 0x6EAA, - 13026: 0x754C, - 13027: 0x7678, - 13028: 0x78CE, - 13029: 0x7A3D, - 13030: 0x7CFB, - 13031: 0x7E6B, - 13032: 0x7E7C, - 13033: 0x8A08, - 13034: 0x8AA1, - 13035: 0x8C3F, - 13036: 0x968E, - 13037: 0x9DC4, - 13038: 0x53E4, - 13039: 0x53E9, - 13040: 0x544A, - 13041: 0x5471, - 13042: 0x56FA, - 13043: 0x59D1, - 13044: 0x5B64, - 13045: 0x5C3B, - 13046: 0x5EAB, - 13047: 0x62F7, - 13048: 0x6537, - 13049: 0x6545, - 13050: 0x6572, - 13051: 0x66A0, - 13052: 0x67AF, - 13053: 0x69C1, - 13054: 0x6CBD, - 13055: 0x75FC, - 13056: 0x7690, - 13057: 0x777E, - 13058: 0x7A3F, - 13059: 0x7F94, - 13060: 0x8003, - 13061: 0x80A1, - 13062: 0x818F, - 13063: 0x82E6, - 13064: 0x82FD, - 13065: 0x83F0, - 13066: 0x85C1, - 13067: 0x8831, - 13068: 0x88B4, - 13069: 0x8AA5, - 13070: 0xF903, - 13071: 0x8F9C, - 13072: 0x932E, - 13073: 0x96C7, - 13074: 0x9867, - 13075: 0x9AD8, - 13076: 0x9F13, - 13077: 0x54ED, - 13078: 0x659B, - 13079: 0x66F2, - 13080: 0x688F, - 13081: 0x7A40, - 13082: 0x8C37, - 13083: 0x9D60, - 13084: 0x56F0, - 13085: 0x5764, - 13086: 0x5D11, - 13087: 0x6606, - 13088: 0x68B1, - 13089: 0x68CD, - 13090: 0x6EFE, - 13091: 0x7428, - 13092: 0x889E, - 13093: 0x9BE4, - 13094: 0x6C68, - 13095: 0xF904, - 13096: 0x9AA8, - 13097: 0x4F9B, - 13098: 0x516C, - 13099: 0x5171, - 13100: 0x529F, - 13101: 0x5B54, - 13102: 0x5DE5, - 13103: 0x6050, - 13104: 0x606D, - 13105: 0x62F1, - 13106: 0x63A7, - 13107: 0x653B, - 13108: 0x73D9, - 13109: 0x7A7A, - 13110: 0x86A3, - 13111: 0x8CA2, - 13112: 0x978F, - 13113: 0x4E32, - 13114: 0x5BE1, - 13115: 0x6208, - 13116: 0x679C, - 13117: 0x74DC, - 13118: 0x79D1, - 13119: 0x83D3, - 13120: 0x8A87, - 13121: 0x8AB2, - 13122: 0x8DE8, - 13123: 0x904E, - 13124: 0x934B, - 13125: 0x9846, - 13126: 0x5ED3, - 13127: 0x69E8, - 13128: 0x85FF, - 13129: 0x90ED, - 13130: 0xF905, - 13131: 0x51A0, - 13132: 0x5B98, - 13133: 0x5BEC, - 13134: 0x6163, - 13135: 0x68FA, - 13136: 0x6B3E, - 13137: 0x704C, - 13138: 0x742F, - 13139: 0x74D8, - 13140: 0x7BA1, - 13141: 0x7F50, - 13142: 0x83C5, - 13143: 0x89C0, - 13144: 0x8CAB, - 13145: 0x95DC, - 13146: 0x9928, - 13147: 0x522E, - 13148: 0x605D, - 13149: 0x62EC, - 13150: 0x9002, - 13151: 0x4F8A, - 13152: 0x5149, - 13153: 0x5321, - 13154: 0x58D9, - 13155: 0x5EE3, - 13156: 0x66E0, - 13157: 0x6D38, - 13158: 0x709A, - 13159: 0x72C2, - 13160: 0x73D6, - 13161: 0x7B50, - 13162: 0x80F1, - 13163: 0x945B, - 13164: 0x5366, - 13165: 0x639B, - 13166: 0x7F6B, - 13167: 0x4E56, - 13168: 0x5080, - 13169: 0x584A, - 13170: 0x58DE, - 13171: 0x602A, - 13172: 0x6127, - 13173: 0x62D0, - 13174: 0x69D0, - 13175: 0x9B41, - 13176: 0x5B8F, - 13177: 0x7D18, - 13178: 0x80B1, - 13179: 0x8F5F, - 13180: 0x4EA4, - 13181: 0x50D1, - 13182: 0x54AC, - 13183: 0x55AC, - 13184: 0x5B0C, - 13185: 0x5DA0, - 13186: 0x5DE7, - 13187: 0x652A, - 13188: 0x654E, - 13189: 0x6821, - 13190: 0x6A4B, - 13191: 0x72E1, - 13192: 0x768E, - 13193: 0x77EF, - 13194: 0x7D5E, - 13195: 0x7FF9, - 13196: 0x81A0, - 13197: 0x854E, - 13198: 0x86DF, - 13199: 0x8F03, - 13200: 0x8F4E, - 13201: 0x90CA, - 13202: 0x9903, - 13203: 0x9A55, - 13204: 0x9BAB, - 13205: 0x4E18, - 13206: 0x4E45, - 13207: 0x4E5D, - 13208: 0x4EC7, - 13209: 0x4FF1, - 13210: 0x5177, - 13211: 0x52FE, - 13212: 0x5340, - 13213: 0x53E3, - 13214: 0x53E5, - 13215: 0x548E, - 13216: 0x5614, - 13217: 0x5775, - 13218: 0x57A2, - 13219: 0x5BC7, - 13220: 0x5D87, - 13221: 0x5ED0, - 13222: 0x61FC, - 13223: 0x62D8, - 13224: 0x6551, - 13225: 0x67B8, - 13226: 0x67E9, - 13227: 0x69CB, - 13228: 0x6B50, - 13229: 0x6BC6, - 13230: 0x6BEC, - 13231: 0x6C42, - 13232: 0x6E9D, - 13233: 0x7078, - 13234: 0x72D7, - 13235: 0x7396, - 13236: 0x7403, - 13237: 0x77BF, - 13238: 0x77E9, - 13239: 0x7A76, - 13240: 0x7D7F, - 13241: 0x8009, - 13242: 0x81FC, - 13243: 0x8205, - 13244: 0x820A, - 13245: 0x82DF, - 13246: 0x8862, - 13247: 0x8B33, - 13248: 0x8CFC, - 13249: 0x8EC0, - 13250: 0x9011, - 13251: 0x90B1, - 13252: 0x9264, - 13253: 0x92B6, - 13254: 0x99D2, - 13255: 0x9A45, - 13256: 0x9CE9, - 13257: 0x9DD7, - 13258: 0x9F9C, - 13259: 0x570B, - 13260: 0x5C40, - 13261: 0x83CA, - 13262: 0x97A0, - 13263: 0x97AB, - 13264: 0x9EB4, - 13265: 0x541B, - 13266: 0x7A98, - 13267: 0x7FA4, - 13268: 0x88D9, - 13269: 0x8ECD, - 13270: 0x90E1, - 13271: 0x5800, - 13272: 0x5C48, - 13273: 0x6398, - 13274: 0x7A9F, - 13275: 0x5BAE, - 13276: 0x5F13, - 13277: 0x7A79, - 13278: 0x7AAE, - 13279: 0x828E, - 13280: 0x8EAC, - 13281: 0x5026, - 13282: 0x5238, - 13283: 0x52F8, - 13284: 0x5377, - 13285: 0x5708, - 13286: 0x62F3, - 13287: 0x6372, - 13288: 0x6B0A, - 13289: 0x6DC3, - 13290: 0x7737, - 13291: 0x53A5, - 13292: 0x7357, - 13293: 0x8568, - 13294: 0x8E76, - 13295: 0x95D5, - 13296: 0x673A, - 13297: 0x6AC3, - 13298: 0x6F70, - 13299: 0x8A6D, - 13300: 0x8ECC, - 13301: 0x994B, - 13302: 0xF906, - 13303: 0x6677, - 13304: 0x6B78, - 13305: 0x8CB4, - 13306: 0x9B3C, - 13307: 0xF907, - 13308: 0x53EB, - 13309: 0x572D, - 13310: 0x594E, - 13311: 0x63C6, - 13312: 0x69FB, - 13313: 0x73EA, - 13314: 0x7845, - 13315: 0x7ABA, - 13316: 0x7AC5, - 13317: 0x7CFE, - 13318: 0x8475, - 13319: 0x898F, - 13320: 0x8D73, - 13321: 0x9035, - 13322: 0x95A8, - 13323: 0x52FB, - 13324: 0x5747, - 13325: 0x7547, - 13326: 0x7B60, - 13327: 0x83CC, - 13328: 0x921E, - 13329: 0xF908, - 13330: 0x6A58, - 13331: 0x514B, - 13332: 0x524B, - 13333: 0x5287, - 13334: 0x621F, - 13335: 0x68D8, - 13336: 0x6975, - 13337: 0x9699, - 13338: 0x50C5, - 13339: 0x52A4, - 13340: 0x52E4, - 13341: 0x61C3, - 13342: 0x65A4, - 13343: 0x6839, - 13344: 0x69FF, - 13345: 0x747E, - 13346: 0x7B4B, - 13347: 0x82B9, - 13348: 0x83EB, - 13349: 0x89B2, - 13350: 0x8B39, - 13351: 0x8FD1, - 13352: 0x9949, - 13353: 0xF909, - 13354: 0x4ECA, - 13355: 0x5997, - 13356: 0x64D2, - 13357: 0x6611, - 13358: 0x6A8E, - 13359: 0x7434, - 13360: 0x7981, - 13361: 0x79BD, - 13362: 0x82A9, - 13363: 0x887E, - 13364: 0x887F, - 13365: 0x895F, - 13366: 0xF90A, - 13367: 0x9326, - 13368: 0x4F0B, - 13369: 0x53CA, - 13370: 0x6025, - 13371: 0x6271, - 13372: 0x6C72, - 13373: 0x7D1A, - 13374: 0x7D66, - 13375: 0x4E98, - 13376: 0x5162, - 13377: 0x77DC, - 13378: 0x80AF, - 13379: 0x4F01, - 13380: 0x4F0E, - 13381: 0x5176, - 13382: 0x5180, - 13383: 0x55DC, - 13384: 0x5668, - 13385: 0x573B, - 13386: 0x57FA, - 13387: 0x57FC, - 13388: 0x5914, - 13389: 0x5947, - 13390: 0x5993, - 13391: 0x5BC4, - 13392: 0x5C90, - 13393: 0x5D0E, - 13394: 0x5DF1, - 13395: 0x5E7E, - 13396: 0x5FCC, - 13397: 0x6280, - 13398: 0x65D7, - 13399: 0x65E3, - 13400: 0x671E, - 13401: 0x671F, - 13402: 0x675E, - 13403: 0x68CB, - 13404: 0x68C4, - 13405: 0x6A5F, - 13406: 0x6B3A, - 13407: 0x6C23, - 13408: 0x6C7D, - 13409: 0x6C82, - 13410: 0x6DC7, - 13411: 0x7398, - 13412: 0x7426, - 13413: 0x742A, - 13414: 0x7482, - 13415: 0x74A3, - 13416: 0x7578, - 13417: 0x757F, - 13418: 0x7881, - 13419: 0x78EF, - 13420: 0x7941, - 13421: 0x7947, - 13422: 0x7948, - 13423: 0x797A, - 13424: 0x7B95, - 13425: 0x7D00, - 13426: 0x7DBA, - 13427: 0x7F88, - 13428: 0x8006, - 13429: 0x802D, - 13430: 0x808C, - 13431: 0x8A18, - 13432: 0x8B4F, - 13433: 0x8C48, - 13434: 0x8D77, - 13435: 0x9321, - 13436: 0x9324, - 13437: 0x98E2, - 13438: 0x9951, - 13439: 0x9A0E, - 13440: 0x9A0F, - 13441: 0x9A65, - 13442: 0x9E92, - 13443: 0x7DCA, - 13444: 0x4F76, - 13445: 0x5409, - 13446: 0x62EE, - 13447: 0x6854, - 13448: 0x91D1, - 13449: 0x55AB, - 13450: 0x513A, - 13451: 0xF90B, - 13452: 0xF90C, - 13453: 0x5A1C, - 13454: 0x61E6, - 13455: 0xF90D, - 13456: 0x62CF, - 13457: 0x62FF, - 13458: 0xF90E, - 13459: 0xF90F, - 13460: 0xF910, - 13461: 0xF911, - 13462: 0xF912, - 13463: 0xF913, - 13464: 0x90A3, - 13465: 0xF914, - 13466: 0xF915, - 13467: 0xF916, - 13468: 0xF917, - 13469: 0xF918, - 13470: 0x8AFE, - 13471: 0xF919, - 13472: 0xF91A, - 13473: 0xF91B, - 13474: 0xF91C, - 13475: 0x6696, - 13476: 0xF91D, - 13477: 0x7156, - 13478: 0xF91E, - 13479: 0xF91F, - 13480: 0x96E3, - 13481: 0xF920, - 13482: 0x634F, - 13483: 0x637A, - 13484: 0x5357, - 13485: 0xF921, - 13486: 0x678F, - 13487: 0x6960, - 13488: 0x6E73, - 13489: 0xF922, - 13490: 0x7537, - 13491: 0xF923, - 13492: 0xF924, - 13493: 0xF925, - 13494: 0x7D0D, - 13495: 0xF926, - 13496: 0xF927, - 13497: 0x8872, - 13498: 0x56CA, - 13499: 0x5A18, - 13500: 0xF928, - 13501: 0xF929, - 13502: 0xF92A, - 13503: 0xF92B, - 13504: 0xF92C, - 13505: 0x4E43, - 13506: 0xF92D, - 13507: 0x5167, - 13508: 0x5948, - 13509: 0x67F0, - 13510: 0x8010, - 13511: 0xF92E, - 13512: 0x5973, - 13513: 0x5E74, - 13514: 0x649A, - 13515: 0x79CA, - 13516: 0x5FF5, - 13517: 0x606C, - 13518: 0x62C8, - 13519: 0x637B, - 13520: 0x5BE7, - 13521: 0x5BD7, - 13522: 0x52AA, - 13523: 0xF92F, - 13524: 0x5974, - 13525: 0x5F29, - 13526: 0x6012, - 13527: 0xF930, - 13528: 0xF931, - 13529: 0xF932, - 13530: 0x7459, - 13531: 0xF933, - 13532: 0xF934, - 13533: 0xF935, - 13534: 0xF936, - 13535: 0xF937, - 13536: 0xF938, - 13537: 0x99D1, - 13538: 0xF939, - 13539: 0xF93A, - 13540: 0xF93B, - 13541: 0xF93C, - 13542: 0xF93D, - 13543: 0xF93E, - 13544: 0xF93F, - 13545: 0xF940, - 13546: 0xF941, - 13547: 0xF942, - 13548: 0xF943, - 13549: 0x6FC3, - 13550: 0xF944, - 13551: 0xF945, - 13552: 0x81BF, - 13553: 0x8FB2, - 13554: 0x60F1, - 13555: 0xF946, - 13556: 0xF947, - 13557: 0x8166, - 13558: 0xF948, - 13559: 0xF949, - 13560: 0x5C3F, - 13561: 0xF94A, - 13562: 0xF94B, - 13563: 0xF94C, - 13564: 0xF94D, - 13565: 0xF94E, - 13566: 0xF94F, - 13567: 0xF950, - 13568: 0xF951, - 13569: 0x5AE9, - 13570: 0x8A25, - 13571: 0x677B, - 13572: 0x7D10, - 13573: 0xF952, - 13574: 0xF953, - 13575: 0xF954, - 13576: 0xF955, - 13577: 0xF956, - 13578: 0xF957, - 13579: 0x80FD, - 13580: 0xF958, - 13581: 0xF959, - 13582: 0x5C3C, - 13583: 0x6CE5, - 13584: 0x533F, - 13585: 0x6EBA, - 13586: 0x591A, - 13587: 0x8336, - 13588: 0x4E39, - 13589: 0x4EB6, - 13590: 0x4F46, - 13591: 0x55AE, - 13592: 0x5718, - 13593: 0x58C7, - 13594: 0x5F56, - 13595: 0x65B7, - 13596: 0x65E6, - 13597: 0x6A80, - 13598: 0x6BB5, - 13599: 0x6E4D, - 13600: 0x77ED, - 13601: 0x7AEF, - 13602: 0x7C1E, - 13603: 0x7DDE, - 13604: 0x86CB, - 13605: 0x8892, - 13606: 0x9132, - 13607: 0x935B, - 13608: 0x64BB, - 13609: 0x6FBE, - 13610: 0x737A, - 13611: 0x75B8, - 13612: 0x9054, - 13613: 0x5556, - 13614: 0x574D, - 13615: 0x61BA, - 13616: 0x64D4, - 13617: 0x66C7, - 13618: 0x6DE1, - 13619: 0x6E5B, - 13620: 0x6F6D, - 13621: 0x6FB9, - 13622: 0x75F0, - 13623: 0x8043, - 13624: 0x81BD, - 13625: 0x8541, - 13626: 0x8983, - 13627: 0x8AC7, - 13628: 0x8B5A, - 13629: 0x931F, - 13630: 0x6C93, - 13631: 0x7553, - 13632: 0x7B54, - 13633: 0x8E0F, - 13634: 0x905D, - 13635: 0x5510, - 13636: 0x5802, - 13637: 0x5858, - 13638: 0x5E62, - 13639: 0x6207, - 13640: 0x649E, - 13641: 0x68E0, - 13642: 0x7576, - 13643: 0x7CD6, - 13644: 0x87B3, - 13645: 0x9EE8, - 13646: 0x4EE3, - 13647: 0x5788, - 13648: 0x576E, - 13649: 0x5927, - 13650: 0x5C0D, - 13651: 0x5CB1, - 13652: 0x5E36, - 13653: 0x5F85, - 13654: 0x6234, - 13655: 0x64E1, - 13656: 0x73B3, - 13657: 0x81FA, - 13658: 0x888B, - 13659: 0x8CB8, - 13660: 0x968A, - 13661: 0x9EDB, - 13662: 0x5B85, - 13663: 0x5FB7, - 13664: 0x60B3, - 13665: 0x5012, - 13666: 0x5200, - 13667: 0x5230, - 13668: 0x5716, - 13669: 0x5835, - 13670: 0x5857, - 13671: 0x5C0E, - 13672: 0x5C60, - 13673: 0x5CF6, - 13674: 0x5D8B, - 13675: 0x5EA6, - 13676: 0x5F92, - 13677: 0x60BC, - 13678: 0x6311, - 13679: 0x6389, - 13680: 0x6417, - 13681: 0x6843, - 13682: 0x68F9, - 13683: 0x6AC2, - 13684: 0x6DD8, - 13685: 0x6E21, - 13686: 0x6ED4, - 13687: 0x6FE4, - 13688: 0x71FE, - 13689: 0x76DC, - 13690: 0x7779, - 13691: 0x79B1, - 13692: 0x7A3B, - 13693: 0x8404, - 13694: 0x89A9, - 13695: 0x8CED, - 13696: 0x8DF3, - 13697: 0x8E48, - 13698: 0x9003, - 13699: 0x9014, - 13700: 0x9053, - 13701: 0x90FD, - 13702: 0x934D, - 13703: 0x9676, - 13704: 0x97DC, - 13705: 0x6BD2, - 13706: 0x7006, - 13707: 0x7258, - 13708: 0x72A2, - 13709: 0x7368, - 13710: 0x7763, - 13711: 0x79BF, - 13712: 0x7BE4, - 13713: 0x7E9B, - 13714: 0x8B80, - 13715: 0x58A9, - 13716: 0x60C7, - 13717: 0x6566, - 13718: 0x65FD, - 13719: 0x66BE, - 13720: 0x6C8C, - 13721: 0x711E, - 13722: 0x71C9, - 13723: 0x8C5A, - 13724: 0x9813, - 13725: 0x4E6D, - 13726: 0x7A81, - 13727: 0x4EDD, - 13728: 0x51AC, - 13729: 0x51CD, - 13730: 0x52D5, - 13731: 0x540C, - 13732: 0x61A7, - 13733: 0x6771, - 13734: 0x6850, - 13735: 0x68DF, - 13736: 0x6D1E, - 13737: 0x6F7C, - 13738: 0x75BC, - 13739: 0x77B3, - 13740: 0x7AE5, - 13741: 0x80F4, - 13742: 0x8463, - 13743: 0x9285, - 13744: 0x515C, - 13745: 0x6597, - 13746: 0x675C, - 13747: 0x6793, - 13748: 0x75D8, - 13749: 0x7AC7, - 13750: 0x8373, - 13751: 0xF95A, - 13752: 0x8C46, - 13753: 0x9017, - 13754: 0x982D, - 13755: 0x5C6F, - 13756: 0x81C0, - 13757: 0x829A, - 13758: 0x9041, - 13759: 0x906F, - 13760: 0x920D, - 13761: 0x5F97, - 13762: 0x5D9D, - 13763: 0x6A59, - 13764: 0x71C8, - 13765: 0x767B, - 13766: 0x7B49, - 13767: 0x85E4, - 13768: 0x8B04, - 13769: 0x9127, - 13770: 0x9A30, - 13771: 0x5587, - 13772: 0x61F6, - 13773: 0xF95B, - 13774: 0x7669, - 13775: 0x7F85, - 13776: 0x863F, - 13777: 0x87BA, - 13778: 0x88F8, - 13779: 0x908F, - 13780: 0xF95C, - 13781: 0x6D1B, - 13782: 0x70D9, - 13783: 0x73DE, - 13784: 0x7D61, - 13785: 0x843D, - 13786: 0xF95D, - 13787: 0x916A, - 13788: 0x99F1, - 13789: 0xF95E, - 13790: 0x4E82, - 13791: 0x5375, - 13792: 0x6B04, - 13793: 0x6B12, - 13794: 0x703E, - 13795: 0x721B, - 13796: 0x862D, - 13797: 0x9E1E, - 13798: 0x524C, - 13799: 0x8FA3, - 13800: 0x5D50, - 13801: 0x64E5, - 13802: 0x652C, - 13803: 0x6B16, - 13804: 0x6FEB, - 13805: 0x7C43, - 13806: 0x7E9C, - 13807: 0x85CD, - 13808: 0x8964, - 13809: 0x89BD, - 13810: 0x62C9, - 13811: 0x81D8, - 13812: 0x881F, - 13813: 0x5ECA, - 13814: 0x6717, - 13815: 0x6D6A, - 13816: 0x72FC, - 13817: 0x7405, - 13818: 0x746F, - 13819: 0x8782, - 13820: 0x90DE, - 13821: 0x4F86, - 13822: 0x5D0D, - 13823: 0x5FA0, - 13824: 0x840A, - 13825: 0x51B7, - 13826: 0x63A0, - 13827: 0x7565, - 13828: 0x4EAE, - 13829: 0x5006, - 13830: 0x5169, - 13831: 0x51C9, - 13832: 0x6881, - 13833: 0x6A11, - 13834: 0x7CAE, - 13835: 0x7CB1, - 13836: 0x7CE7, - 13837: 0x826F, - 13838: 0x8AD2, - 13839: 0x8F1B, - 13840: 0x91CF, - 13841: 0x4FB6, - 13842: 0x5137, - 13843: 0x52F5, - 13844: 0x5442, - 13845: 0x5EEC, - 13846: 0x616E, - 13847: 0x623E, - 13848: 0x65C5, - 13849: 0x6ADA, - 13850: 0x6FFE, - 13851: 0x792A, - 13852: 0x85DC, - 13853: 0x8823, - 13854: 0x95AD, - 13855: 0x9A62, - 13856: 0x9A6A, - 13857: 0x9E97, - 13858: 0x9ECE, - 13859: 0x529B, - 13860: 0x66C6, - 13861: 0x6B77, - 13862: 0x701D, - 13863: 0x792B, - 13864: 0x8F62, - 13865: 0x9742, - 13866: 0x6190, - 13867: 0x6200, - 13868: 0x6523, - 13869: 0x6F23, - 13870: 0x7149, - 13871: 0x7489, - 13872: 0x7DF4, - 13873: 0x806F, - 13874: 0x84EE, - 13875: 0x8F26, - 13876: 0x9023, - 13877: 0x934A, - 13878: 0x51BD, - 13879: 0x5217, - 13880: 0x52A3, - 13881: 0x6D0C, - 13882: 0x70C8, - 13883: 0x88C2, - 13884: 0x5EC9, - 13885: 0x6582, - 13886: 0x6BAE, - 13887: 0x6FC2, - 13888: 0x7C3E, - 13889: 0x7375, - 13890: 0x4EE4, - 13891: 0x4F36, - 13892: 0x56F9, - 13893: 0xF95F, - 13894: 0x5CBA, - 13895: 0x5DBA, - 13896: 0x601C, - 13897: 0x73B2, - 13898: 0x7B2D, - 13899: 0x7F9A, - 13900: 0x7FCE, - 13901: 0x8046, - 13902: 0x901E, - 13903: 0x9234, - 13904: 0x96F6, - 13905: 0x9748, - 13906: 0x9818, - 13907: 0x9F61, - 13908: 0x4F8B, - 13909: 0x6FA7, - 13910: 0x79AE, - 13911: 0x91B4, - 13912: 0x96B7, - 13913: 0x52DE, - 13914: 0xF960, - 13915: 0x6488, - 13916: 0x64C4, - 13917: 0x6AD3, - 13918: 0x6F5E, - 13919: 0x7018, - 13920: 0x7210, - 13921: 0x76E7, - 13922: 0x8001, - 13923: 0x8606, - 13924: 0x865C, - 13925: 0x8DEF, - 13926: 0x8F05, - 13927: 0x9732, - 13928: 0x9B6F, - 13929: 0x9DFA, - 13930: 0x9E75, - 13931: 0x788C, - 13932: 0x797F, - 13933: 0x7DA0, - 13934: 0x83C9, - 13935: 0x9304, - 13936: 0x9E7F, - 13937: 0x9E93, - 13938: 0x8AD6, - 13939: 0x58DF, - 13940: 0x5F04, - 13941: 0x6727, - 13942: 0x7027, - 13943: 0x74CF, - 13944: 0x7C60, - 13945: 0x807E, - 13946: 0x5121, - 13947: 0x7028, - 13948: 0x7262, - 13949: 0x78CA, - 13950: 0x8CC2, - 13951: 0x8CDA, - 13952: 0x8CF4, - 13953: 0x96F7, - 13954: 0x4E86, - 13955: 0x50DA, - 13956: 0x5BEE, - 13957: 0x5ED6, - 13958: 0x6599, - 13959: 0x71CE, - 13960: 0x7642, - 13961: 0x77AD, - 13962: 0x804A, - 13963: 0x84FC, - 13964: 0x907C, - 13965: 0x9B27, - 13966: 0x9F8D, - 13967: 0x58D8, - 13968: 0x5A41, - 13969: 0x5C62, - 13970: 0x6A13, - 13971: 0x6DDA, - 13972: 0x6F0F, - 13973: 0x763B, - 13974: 0x7D2F, - 13975: 0x7E37, - 13976: 0x851E, - 13977: 0x8938, - 13978: 0x93E4, - 13979: 0x964B, - 13980: 0x5289, - 13981: 0x65D2, - 13982: 0x67F3, - 13983: 0x69B4, - 13984: 0x6D41, - 13985: 0x6E9C, - 13986: 0x700F, - 13987: 0x7409, - 13988: 0x7460, - 13989: 0x7559, - 13990: 0x7624, - 13991: 0x786B, - 13992: 0x8B2C, - 13993: 0x985E, - 13994: 0x516D, - 13995: 0x622E, - 13996: 0x9678, - 13997: 0x4F96, - 13998: 0x502B, - 13999: 0x5D19, - 14000: 0x6DEA, - 14001: 0x7DB8, - 14002: 0x8F2A, - 14003: 0x5F8B, - 14004: 0x6144, - 14005: 0x6817, - 14006: 0xF961, - 14007: 0x9686, - 14008: 0x52D2, - 14009: 0x808B, - 14010: 0x51DC, - 14011: 0x51CC, - 14012: 0x695E, - 14013: 0x7A1C, - 14014: 0x7DBE, - 14015: 0x83F1, - 14016: 0x9675, - 14017: 0x4FDA, - 14018: 0x5229, - 14019: 0x5398, - 14020: 0x540F, - 14021: 0x550E, - 14022: 0x5C65, - 14023: 0x60A7, - 14024: 0x674E, - 14025: 0x68A8, - 14026: 0x6D6C, - 14027: 0x7281, - 14028: 0x72F8, - 14029: 0x7406, - 14030: 0x7483, - 14031: 0xF962, - 14032: 0x75E2, - 14033: 0x7C6C, - 14034: 0x7F79, - 14035: 0x7FB8, - 14036: 0x8389, - 14037: 0x88CF, - 14038: 0x88E1, - 14039: 0x91CC, - 14040: 0x91D0, - 14041: 0x96E2, - 14042: 0x9BC9, - 14043: 0x541D, - 14044: 0x6F7E, - 14045: 0x71D0, - 14046: 0x7498, - 14047: 0x85FA, - 14048: 0x8EAA, - 14049: 0x96A3, - 14050: 0x9C57, - 14051: 0x9E9F, - 14052: 0x6797, - 14053: 0x6DCB, - 14054: 0x7433, - 14055: 0x81E8, - 14056: 0x9716, - 14057: 0x782C, - 14058: 0x7ACB, - 14059: 0x7B20, - 14060: 0x7C92, - 14061: 0x6469, - 14062: 0x746A, - 14063: 0x75F2, - 14064: 0x78BC, - 14065: 0x78E8, - 14066: 0x99AC, - 14067: 0x9B54, - 14068: 0x9EBB, - 14069: 0x5BDE, - 14070: 0x5E55, - 14071: 0x6F20, - 14072: 0x819C, - 14073: 0x83AB, - 14074: 0x9088, - 14075: 0x4E07, - 14076: 0x534D, - 14077: 0x5A29, - 14078: 0x5DD2, - 14079: 0x5F4E, - 14080: 0x6162, - 14081: 0x633D, - 14082: 0x6669, - 14083: 0x66FC, - 14084: 0x6EFF, - 14085: 0x6F2B, - 14086: 0x7063, - 14087: 0x779E, - 14088: 0x842C, - 14089: 0x8513, - 14090: 0x883B, - 14091: 0x8F13, - 14092: 0x9945, - 14093: 0x9C3B, - 14094: 0x551C, - 14095: 0x62B9, - 14096: 0x672B, - 14097: 0x6CAB, - 14098: 0x8309, - 14099: 0x896A, - 14100: 0x977A, - 14101: 0x4EA1, - 14102: 0x5984, - 14103: 0x5FD8, - 14104: 0x5FD9, - 14105: 0x671B, - 14106: 0x7DB2, - 14107: 0x7F54, - 14108: 0x8292, - 14109: 0x832B, - 14110: 0x83BD, - 14111: 0x8F1E, - 14112: 0x9099, - 14113: 0x57CB, - 14114: 0x59B9, - 14115: 0x5A92, - 14116: 0x5BD0, - 14117: 0x6627, - 14118: 0x679A, - 14119: 0x6885, - 14120: 0x6BCF, - 14121: 0x7164, - 14122: 0x7F75, - 14123: 0x8CB7, - 14124: 0x8CE3, - 14125: 0x9081, - 14126: 0x9B45, - 14127: 0x8108, - 14128: 0x8C8A, - 14129: 0x964C, - 14130: 0x9A40, - 14131: 0x9EA5, - 14132: 0x5B5F, - 14133: 0x6C13, - 14134: 0x731B, - 14135: 0x76F2, - 14136: 0x76DF, - 14137: 0x840C, - 14138: 0x51AA, - 14139: 0x8993, - 14140: 0x514D, - 14141: 0x5195, - 14142: 0x52C9, - 14143: 0x68C9, - 14144: 0x6C94, - 14145: 0x7704, - 14146: 0x7720, - 14147: 0x7DBF, - 14148: 0x7DEC, - 14149: 0x9762, - 14150: 0x9EB5, - 14151: 0x6EC5, - 14152: 0x8511, - 14153: 0x51A5, - 14154: 0x540D, - 14155: 0x547D, - 14156: 0x660E, - 14157: 0x669D, - 14158: 0x6927, - 14159: 0x6E9F, - 14160: 0x76BF, - 14161: 0x7791, - 14162: 0x8317, - 14163: 0x84C2, - 14164: 0x879F, - 14165: 0x9169, - 14166: 0x9298, - 14167: 0x9CF4, - 14168: 0x8882, - 14169: 0x4FAE, - 14170: 0x5192, - 14171: 0x52DF, - 14172: 0x59C6, - 14173: 0x5E3D, - 14174: 0x6155, - 14175: 0x6478, - 14176: 0x6479, - 14177: 0x66AE, - 14178: 0x67D0, - 14179: 0x6A21, - 14180: 0x6BCD, - 14181: 0x6BDB, - 14182: 0x725F, - 14183: 0x7261, - 14184: 0x7441, - 14185: 0x7738, - 14186: 0x77DB, - 14187: 0x8017, - 14188: 0x82BC, - 14189: 0x8305, - 14190: 0x8B00, - 14191: 0x8B28, - 14192: 0x8C8C, - 14193: 0x6728, - 14194: 0x6C90, - 14195: 0x7267, - 14196: 0x76EE, - 14197: 0x7766, - 14198: 0x7A46, - 14199: 0x9DA9, - 14200: 0x6B7F, - 14201: 0x6C92, - 14202: 0x5922, - 14203: 0x6726, - 14204: 0x8499, - 14205: 0x536F, - 14206: 0x5893, - 14207: 0x5999, - 14208: 0x5EDF, - 14209: 0x63CF, - 14210: 0x6634, - 14211: 0x6773, - 14212: 0x6E3A, - 14213: 0x732B, - 14214: 0x7AD7, - 14215: 0x82D7, - 14216: 0x9328, - 14217: 0x52D9, - 14218: 0x5DEB, - 14219: 0x61AE, - 14220: 0x61CB, - 14221: 0x620A, - 14222: 0x62C7, - 14223: 0x64AB, - 14224: 0x65E0, - 14225: 0x6959, - 14226: 0x6B66, - 14227: 0x6BCB, - 14228: 0x7121, - 14229: 0x73F7, - 14230: 0x755D, - 14231: 0x7E46, - 14232: 0x821E, - 14233: 0x8302, - 14234: 0x856A, - 14235: 0x8AA3, - 14236: 0x8CBF, - 14237: 0x9727, - 14238: 0x9D61, - 14239: 0x58A8, - 14240: 0x9ED8, - 14241: 0x5011, - 14242: 0x520E, - 14243: 0x543B, - 14244: 0x554F, - 14245: 0x6587, - 14246: 0x6C76, - 14247: 0x7D0A, - 14248: 0x7D0B, - 14249: 0x805E, - 14250: 0x868A, - 14251: 0x9580, - 14252: 0x96EF, - 14253: 0x52FF, - 14254: 0x6C95, - 14255: 0x7269, - 14256: 0x5473, - 14257: 0x5A9A, - 14258: 0x5C3E, - 14259: 0x5D4B, - 14260: 0x5F4C, - 14261: 0x5FAE, - 14262: 0x672A, - 14263: 0x68B6, - 14264: 0x6963, - 14265: 0x6E3C, - 14266: 0x6E44, - 14267: 0x7709, - 14268: 0x7C73, - 14269: 0x7F8E, - 14270: 0x8587, - 14271: 0x8B0E, - 14272: 0x8FF7, - 14273: 0x9761, - 14274: 0x9EF4, - 14275: 0x5CB7, - 14276: 0x60B6, - 14277: 0x610D, - 14278: 0x61AB, - 14279: 0x654F, - 14280: 0x65FB, - 14281: 0x65FC, - 14282: 0x6C11, - 14283: 0x6CEF, - 14284: 0x739F, - 14285: 0x73C9, - 14286: 0x7DE1, - 14287: 0x9594, - 14288: 0x5BC6, - 14289: 0x871C, - 14290: 0x8B10, - 14291: 0x525D, - 14292: 0x535A, - 14293: 0x62CD, - 14294: 0x640F, - 14295: 0x64B2, - 14296: 0x6734, - 14297: 0x6A38, - 14298: 0x6CCA, - 14299: 0x73C0, - 14300: 0x749E, - 14301: 0x7B94, - 14302: 0x7C95, - 14303: 0x7E1B, - 14304: 0x818A, - 14305: 0x8236, - 14306: 0x8584, - 14307: 0x8FEB, - 14308: 0x96F9, - 14309: 0x99C1, - 14310: 0x4F34, - 14311: 0x534A, - 14312: 0x53CD, - 14313: 0x53DB, - 14314: 0x62CC, - 14315: 0x642C, - 14316: 0x6500, - 14317: 0x6591, - 14318: 0x69C3, - 14319: 0x6CEE, - 14320: 0x6F58, - 14321: 0x73ED, - 14322: 0x7554, - 14323: 0x7622, - 14324: 0x76E4, - 14325: 0x76FC, - 14326: 0x78D0, - 14327: 0x78FB, - 14328: 0x792C, - 14329: 0x7D46, - 14330: 0x822C, - 14331: 0x87E0, - 14332: 0x8FD4, - 14333: 0x9812, - 14334: 0x98EF, - 14335: 0x52C3, - 14336: 0x62D4, - 14337: 0x64A5, - 14338: 0x6E24, - 14339: 0x6F51, - 14340: 0x767C, - 14341: 0x8DCB, - 14342: 0x91B1, - 14343: 0x9262, - 14344: 0x9AEE, - 14345: 0x9B43, - 14346: 0x5023, - 14347: 0x508D, - 14348: 0x574A, - 14349: 0x59A8, - 14350: 0x5C28, - 14351: 0x5E47, - 14352: 0x5F77, - 14353: 0x623F, - 14354: 0x653E, - 14355: 0x65B9, - 14356: 0x65C1, - 14357: 0x6609, - 14358: 0x678B, - 14359: 0x699C, - 14360: 0x6EC2, - 14361: 0x78C5, - 14362: 0x7D21, - 14363: 0x80AA, - 14364: 0x8180, - 14365: 0x822B, - 14366: 0x82B3, - 14367: 0x84A1, - 14368: 0x868C, - 14369: 0x8A2A, - 14370: 0x8B17, - 14371: 0x90A6, - 14372: 0x9632, - 14373: 0x9F90, - 14374: 0x500D, - 14375: 0x4FF3, - 14376: 0xF963, - 14377: 0x57F9, - 14378: 0x5F98, - 14379: 0x62DC, - 14380: 0x6392, - 14381: 0x676F, - 14382: 0x6E43, - 14383: 0x7119, - 14384: 0x76C3, - 14385: 0x80CC, - 14386: 0x80DA, - 14387: 0x88F4, - 14388: 0x88F5, - 14389: 0x8919, - 14390: 0x8CE0, - 14391: 0x8F29, - 14392: 0x914D, - 14393: 0x966A, - 14394: 0x4F2F, - 14395: 0x4F70, - 14396: 0x5E1B, - 14397: 0x67CF, - 14398: 0x6822, - 14399: 0x767D, - 14400: 0x767E, - 14401: 0x9B44, - 14402: 0x5E61, - 14403: 0x6A0A, - 14404: 0x7169, - 14405: 0x71D4, - 14406: 0x756A, - 14407: 0xF964, - 14408: 0x7E41, - 14409: 0x8543, - 14410: 0x85E9, - 14411: 0x98DC, - 14412: 0x4F10, - 14413: 0x7B4F, - 14414: 0x7F70, - 14415: 0x95A5, - 14416: 0x51E1, - 14417: 0x5E06, - 14418: 0x68B5, - 14419: 0x6C3E, - 14420: 0x6C4E, - 14421: 0x6CDB, - 14422: 0x72AF, - 14423: 0x7BC4, - 14424: 0x8303, - 14425: 0x6CD5, - 14426: 0x743A, - 14427: 0x50FB, - 14428: 0x5288, - 14429: 0x58C1, - 14430: 0x64D8, - 14431: 0x6A97, - 14432: 0x74A7, - 14433: 0x7656, - 14434: 0x78A7, - 14435: 0x8617, - 14436: 0x95E2, - 14437: 0x9739, - 14438: 0xF965, - 14439: 0x535E, - 14440: 0x5F01, - 14441: 0x8B8A, - 14442: 0x8FA8, - 14443: 0x8FAF, - 14444: 0x908A, - 14445: 0x5225, - 14446: 0x77A5, - 14447: 0x9C49, - 14448: 0x9F08, - 14449: 0x4E19, - 14450: 0x5002, - 14451: 0x5175, - 14452: 0x5C5B, - 14453: 0x5E77, - 14454: 0x661E, - 14455: 0x663A, - 14456: 0x67C4, - 14457: 0x68C5, - 14458: 0x70B3, - 14459: 0x7501, - 14460: 0x75C5, - 14461: 0x79C9, - 14462: 0x7ADD, - 14463: 0x8F27, - 14464: 0x9920, - 14465: 0x9A08, - 14466: 0x4FDD, - 14467: 0x5821, - 14468: 0x5831, - 14469: 0x5BF6, - 14470: 0x666E, - 14471: 0x6B65, - 14472: 0x6D11, - 14473: 0x6E7A, - 14474: 0x6F7D, - 14475: 0x73E4, - 14476: 0x752B, - 14477: 0x83E9, - 14478: 0x88DC, - 14479: 0x8913, - 14480: 0x8B5C, - 14481: 0x8F14, - 14482: 0x4F0F, - 14483: 0x50D5, - 14484: 0x5310, - 14485: 0x535C, - 14486: 0x5B93, - 14487: 0x5FA9, - 14488: 0x670D, - 14489: 0x798F, - 14490: 0x8179, - 14491: 0x832F, - 14492: 0x8514, - 14493: 0x8907, - 14494: 0x8986, - 14495: 0x8F39, - 14496: 0x8F3B, - 14497: 0x99A5, - 14498: 0x9C12, - 14499: 0x672C, - 14500: 0x4E76, - 14501: 0x4FF8, - 14502: 0x5949, - 14503: 0x5C01, - 14504: 0x5CEF, - 14505: 0x5CF0, - 14506: 0x6367, - 14507: 0x68D2, - 14508: 0x70FD, - 14509: 0x71A2, - 14510: 0x742B, - 14511: 0x7E2B, - 14512: 0x84EC, - 14513: 0x8702, - 14514: 0x9022, - 14515: 0x92D2, - 14516: 0x9CF3, - 14517: 0x4E0D, - 14518: 0x4ED8, - 14519: 0x4FEF, - 14520: 0x5085, - 14521: 0x5256, - 14522: 0x526F, - 14523: 0x5426, - 14524: 0x5490, - 14525: 0x57E0, - 14526: 0x592B, - 14527: 0x5A66, - 14528: 0x5B5A, - 14529: 0x5B75, - 14530: 0x5BCC, - 14531: 0x5E9C, - 14532: 0xF966, - 14533: 0x6276, - 14534: 0x6577, - 14535: 0x65A7, - 14536: 0x6D6E, - 14537: 0x6EA5, - 14538: 0x7236, - 14539: 0x7B26, - 14540: 0x7C3F, - 14541: 0x7F36, - 14542: 0x8150, - 14543: 0x8151, - 14544: 0x819A, - 14545: 0x8240, - 14546: 0x8299, - 14547: 0x83A9, - 14548: 0x8A03, - 14549: 0x8CA0, - 14550: 0x8CE6, - 14551: 0x8CFB, - 14552: 0x8D74, - 14553: 0x8DBA, - 14554: 0x90E8, - 14555: 0x91DC, - 14556: 0x961C, - 14557: 0x9644, - 14558: 0x99D9, - 14559: 0x9CE7, - 14560: 0x5317, - 14561: 0x5206, - 14562: 0x5429, - 14563: 0x5674, - 14564: 0x58B3, - 14565: 0x5954, - 14566: 0x596E, - 14567: 0x5FFF, - 14568: 0x61A4, - 14569: 0x626E, - 14570: 0x6610, - 14571: 0x6C7E, - 14572: 0x711A, - 14573: 0x76C6, - 14574: 0x7C89, - 14575: 0x7CDE, - 14576: 0x7D1B, - 14577: 0x82AC, - 14578: 0x8CC1, - 14579: 0x96F0, - 14580: 0xF967, - 14581: 0x4F5B, - 14582: 0x5F17, - 14583: 0x5F7F, - 14584: 0x62C2, - 14585: 0x5D29, - 14586: 0x670B, - 14587: 0x68DA, - 14588: 0x787C, - 14589: 0x7E43, - 14590: 0x9D6C, - 14591: 0x4E15, - 14592: 0x5099, - 14593: 0x5315, - 14594: 0x532A, - 14595: 0x5351, - 14596: 0x5983, - 14597: 0x5A62, - 14598: 0x5E87, - 14599: 0x60B2, - 14600: 0x618A, - 14601: 0x6249, - 14602: 0x6279, - 14603: 0x6590, - 14604: 0x6787, - 14605: 0x69A7, - 14606: 0x6BD4, - 14607: 0x6BD6, - 14608: 0x6BD7, - 14609: 0x6BD8, - 14610: 0x6CB8, - 14611: 0xF968, - 14612: 0x7435, - 14613: 0x75FA, - 14614: 0x7812, - 14615: 0x7891, - 14616: 0x79D5, - 14617: 0x79D8, - 14618: 0x7C83, - 14619: 0x7DCB, - 14620: 0x7FE1, - 14621: 0x80A5, - 14622: 0x813E, - 14623: 0x81C2, - 14624: 0x83F2, - 14625: 0x871A, - 14626: 0x88E8, - 14627: 0x8AB9, - 14628: 0x8B6C, - 14629: 0x8CBB, - 14630: 0x9119, - 14631: 0x975E, - 14632: 0x98DB, - 14633: 0x9F3B, - 14634: 0x56AC, - 14635: 0x5B2A, - 14636: 0x5F6C, - 14637: 0x658C, - 14638: 0x6AB3, - 14639: 0x6BAF, - 14640: 0x6D5C, - 14641: 0x6FF1, - 14642: 0x7015, - 14643: 0x725D, - 14644: 0x73AD, - 14645: 0x8CA7, - 14646: 0x8CD3, - 14647: 0x983B, - 14648: 0x6191, - 14649: 0x6C37, - 14650: 0x8058, - 14651: 0x9A01, - 14652: 0x4E4D, - 14653: 0x4E8B, - 14654: 0x4E9B, - 14655: 0x4ED5, - 14656: 0x4F3A, - 14657: 0x4F3C, - 14658: 0x4F7F, - 14659: 0x4FDF, - 14660: 0x50FF, - 14661: 0x53F2, - 14662: 0x53F8, - 14663: 0x5506, - 14664: 0x55E3, - 14665: 0x56DB, - 14666: 0x58EB, - 14667: 0x5962, - 14668: 0x5A11, - 14669: 0x5BEB, - 14670: 0x5BFA, - 14671: 0x5C04, - 14672: 0x5DF3, - 14673: 0x5E2B, - 14674: 0x5F99, - 14675: 0x601D, - 14676: 0x6368, - 14677: 0x659C, - 14678: 0x65AF, - 14679: 0x67F6, - 14680: 0x67FB, - 14681: 0x68AD, - 14682: 0x6B7B, - 14683: 0x6C99, - 14684: 0x6CD7, - 14685: 0x6E23, - 14686: 0x7009, - 14687: 0x7345, - 14688: 0x7802, - 14689: 0x793E, - 14690: 0x7940, - 14691: 0x7960, - 14692: 0x79C1, - 14693: 0x7BE9, - 14694: 0x7D17, - 14695: 0x7D72, - 14696: 0x8086, - 14697: 0x820D, - 14698: 0x838E, - 14699: 0x84D1, - 14700: 0x86C7, - 14701: 0x88DF, - 14702: 0x8A50, - 14703: 0x8A5E, - 14704: 0x8B1D, - 14705: 0x8CDC, - 14706: 0x8D66, - 14707: 0x8FAD, - 14708: 0x90AA, - 14709: 0x98FC, - 14710: 0x99DF, - 14711: 0x9E9D, - 14712: 0x524A, - 14713: 0xF969, - 14714: 0x6714, - 14715: 0xF96A, - 14716: 0x5098, - 14717: 0x522A, - 14718: 0x5C71, - 14719: 0x6563, - 14720: 0x6C55, - 14721: 0x73CA, - 14722: 0x7523, - 14723: 0x759D, - 14724: 0x7B97, - 14725: 0x849C, - 14726: 0x9178, - 14727: 0x9730, - 14728: 0x4E77, - 14729: 0x6492, - 14730: 0x6BBA, - 14731: 0x715E, - 14732: 0x85A9, - 14733: 0x4E09, - 14734: 0xF96B, - 14735: 0x6749, - 14736: 0x68EE, - 14737: 0x6E17, - 14738: 0x829F, - 14739: 0x8518, - 14740: 0x886B, - 14741: 0x63F7, - 14742: 0x6F81, - 14743: 0x9212, - 14744: 0x98AF, - 14745: 0x4E0A, - 14746: 0x50B7, - 14747: 0x50CF, - 14748: 0x511F, - 14749: 0x5546, - 14750: 0x55AA, - 14751: 0x5617, - 14752: 0x5B40, - 14753: 0x5C19, - 14754: 0x5CE0, - 14755: 0x5E38, - 14756: 0x5E8A, - 14757: 0x5EA0, - 14758: 0x5EC2, - 14759: 0x60F3, - 14760: 0x6851, - 14761: 0x6A61, - 14762: 0x6E58, - 14763: 0x723D, - 14764: 0x7240, - 14765: 0x72C0, - 14766: 0x76F8, - 14767: 0x7965, - 14768: 0x7BB1, - 14769: 0x7FD4, - 14770: 0x88F3, - 14771: 0x89F4, - 14772: 0x8A73, - 14773: 0x8C61, - 14774: 0x8CDE, - 14775: 0x971C, - 14776: 0x585E, - 14777: 0x74BD, - 14778: 0x8CFD, - 14779: 0x55C7, - 14780: 0xF96C, - 14781: 0x7A61, - 14782: 0x7D22, - 14783: 0x8272, - 14784: 0x7272, - 14785: 0x751F, - 14786: 0x7525, - 14787: 0xF96D, - 14788: 0x7B19, - 14789: 0x5885, - 14790: 0x58FB, - 14791: 0x5DBC, - 14792: 0x5E8F, - 14793: 0x5EB6, - 14794: 0x5F90, - 14795: 0x6055, - 14796: 0x6292, - 14797: 0x637F, - 14798: 0x654D, - 14799: 0x6691, - 14800: 0x66D9, - 14801: 0x66F8, - 14802: 0x6816, - 14803: 0x68F2, - 14804: 0x7280, - 14805: 0x745E, - 14806: 0x7B6E, - 14807: 0x7D6E, - 14808: 0x7DD6, - 14809: 0x7F72, - 14810: 0x80E5, - 14811: 0x8212, - 14812: 0x85AF, - 14813: 0x897F, - 14814: 0x8A93, - 14815: 0x901D, - 14816: 0x92E4, - 14817: 0x9ECD, - 14818: 0x9F20, - 14819: 0x5915, - 14820: 0x596D, - 14821: 0x5E2D, - 14822: 0x60DC, - 14823: 0x6614, - 14824: 0x6673, - 14825: 0x6790, - 14826: 0x6C50, - 14827: 0x6DC5, - 14828: 0x6F5F, - 14829: 0x77F3, - 14830: 0x78A9, - 14831: 0x84C6, - 14832: 0x91CB, - 14833: 0x932B, - 14834: 0x4ED9, - 14835: 0x50CA, - 14836: 0x5148, - 14837: 0x5584, - 14838: 0x5B0B, - 14839: 0x5BA3, - 14840: 0x6247, - 14841: 0x657E, - 14842: 0x65CB, - 14843: 0x6E32, - 14844: 0x717D, - 14845: 0x7401, - 14846: 0x7444, - 14847: 0x7487, - 14848: 0x74BF, - 14849: 0x766C, - 14850: 0x79AA, - 14851: 0x7DDA, - 14852: 0x7E55, - 14853: 0x7FA8, - 14854: 0x817A, - 14855: 0x81B3, - 14856: 0x8239, - 14857: 0x861A, - 14858: 0x87EC, - 14859: 0x8A75, - 14860: 0x8DE3, - 14861: 0x9078, - 14862: 0x9291, - 14863: 0x9425, - 14864: 0x994D, - 14865: 0x9BAE, - 14866: 0x5368, - 14867: 0x5C51, - 14868: 0x6954, - 14869: 0x6CC4, - 14870: 0x6D29, - 14871: 0x6E2B, - 14872: 0x820C, - 14873: 0x859B, - 14874: 0x893B, - 14875: 0x8A2D, - 14876: 0x8AAA, - 14877: 0x96EA, - 14878: 0x9F67, - 14879: 0x5261, - 14880: 0x66B9, - 14881: 0x6BB2, - 14882: 0x7E96, - 14883: 0x87FE, - 14884: 0x8D0D, - 14885: 0x9583, - 14886: 0x965D, - 14887: 0x651D, - 14888: 0x6D89, - 14889: 0x71EE, - 14890: 0xF96E, - 14891: 0x57CE, - 14892: 0x59D3, - 14893: 0x5BAC, - 14894: 0x6027, - 14895: 0x60FA, - 14896: 0x6210, - 14897: 0x661F, - 14898: 0x665F, - 14899: 0x7329, - 14900: 0x73F9, - 14901: 0x76DB, - 14902: 0x7701, - 14903: 0x7B6C, - 14904: 0x8056, - 14905: 0x8072, - 14906: 0x8165, - 14907: 0x8AA0, - 14908: 0x9192, - 14909: 0x4E16, - 14910: 0x52E2, - 14911: 0x6B72, - 14912: 0x6D17, - 14913: 0x7A05, - 14914: 0x7B39, - 14915: 0x7D30, - 14916: 0xF96F, - 14917: 0x8CB0, - 14918: 0x53EC, - 14919: 0x562F, - 14920: 0x5851, - 14921: 0x5BB5, - 14922: 0x5C0F, - 14923: 0x5C11, - 14924: 0x5DE2, - 14925: 0x6240, - 14926: 0x6383, - 14927: 0x6414, - 14928: 0x662D, - 14929: 0x68B3, - 14930: 0x6CBC, - 14931: 0x6D88, - 14932: 0x6EAF, - 14933: 0x701F, - 14934: 0x70A4, - 14935: 0x71D2, - 14936: 0x7526, - 14937: 0x758F, - 14938: 0x758E, - 14939: 0x7619, - 14940: 0x7B11, - 14941: 0x7BE0, - 14942: 0x7C2B, - 14943: 0x7D20, - 14944: 0x7D39, - 14945: 0x852C, - 14946: 0x856D, - 14947: 0x8607, - 14948: 0x8A34, - 14949: 0x900D, - 14950: 0x9061, - 14951: 0x90B5, - 14952: 0x92B7, - 14953: 0x97F6, - 14954: 0x9A37, - 14955: 0x4FD7, - 14956: 0x5C6C, - 14957: 0x675F, - 14958: 0x6D91, - 14959: 0x7C9F, - 14960: 0x7E8C, - 14961: 0x8B16, - 14962: 0x8D16, - 14963: 0x901F, - 14964: 0x5B6B, - 14965: 0x5DFD, - 14966: 0x640D, - 14967: 0x84C0, - 14968: 0x905C, - 14969: 0x98E1, - 14970: 0x7387, - 14971: 0x5B8B, - 14972: 0x609A, - 14973: 0x677E, - 14974: 0x6DDE, - 14975: 0x8A1F, - 14976: 0x8AA6, - 14977: 0x9001, - 14978: 0x980C, - 14979: 0x5237, - 14980: 0xF970, - 14981: 0x7051, - 14982: 0x788E, - 14983: 0x9396, - 14984: 0x8870, - 14985: 0x91D7, - 14986: 0x4FEE, - 14987: 0x53D7, - 14988: 0x55FD, - 14989: 0x56DA, - 14990: 0x5782, - 14991: 0x58FD, - 14992: 0x5AC2, - 14993: 0x5B88, - 14994: 0x5CAB, - 14995: 0x5CC0, - 14996: 0x5E25, - 14997: 0x6101, - 14998: 0x620D, - 14999: 0x624B, - 15000: 0x6388, - 15001: 0x641C, - 15002: 0x6536, - 15003: 0x6578, - 15004: 0x6A39, - 15005: 0x6B8A, - 15006: 0x6C34, - 15007: 0x6D19, - 15008: 0x6F31, - 15009: 0x71E7, - 15010: 0x72E9, - 15011: 0x7378, - 15012: 0x7407, - 15013: 0x74B2, - 15014: 0x7626, - 15015: 0x7761, - 15016: 0x79C0, - 15017: 0x7A57, - 15018: 0x7AEA, - 15019: 0x7CB9, - 15020: 0x7D8F, - 15021: 0x7DAC, - 15022: 0x7E61, - 15023: 0x7F9E, - 15024: 0x8129, - 15025: 0x8331, - 15026: 0x8490, - 15027: 0x84DA, - 15028: 0x85EA, - 15029: 0x8896, - 15030: 0x8AB0, - 15031: 0x8B90, - 15032: 0x8F38, - 15033: 0x9042, - 15034: 0x9083, - 15035: 0x916C, - 15036: 0x9296, - 15037: 0x92B9, - 15038: 0x968B, - 15039: 0x96A7, - 15040: 0x96A8, - 15041: 0x96D6, - 15042: 0x9700, - 15043: 0x9808, - 15044: 0x9996, - 15045: 0x9AD3, - 15046: 0x9B1A, - 15047: 0x53D4, - 15048: 0x587E, - 15049: 0x5919, - 15050: 0x5B70, - 15051: 0x5BBF, - 15052: 0x6DD1, - 15053: 0x6F5A, - 15054: 0x719F, - 15055: 0x7421, - 15056: 0x74B9, - 15057: 0x8085, - 15058: 0x83FD, - 15059: 0x5DE1, - 15060: 0x5F87, - 15061: 0x5FAA, - 15062: 0x6042, - 15063: 0x65EC, - 15064: 0x6812, - 15065: 0x696F, - 15066: 0x6A53, - 15067: 0x6B89, - 15068: 0x6D35, - 15069: 0x6DF3, - 15070: 0x73E3, - 15071: 0x76FE, - 15072: 0x77AC, - 15073: 0x7B4D, - 15074: 0x7D14, - 15075: 0x8123, - 15076: 0x821C, - 15077: 0x8340, - 15078: 0x84F4, - 15079: 0x8563, - 15080: 0x8A62, - 15081: 0x8AC4, - 15082: 0x9187, - 15083: 0x931E, - 15084: 0x9806, - 15085: 0x99B4, - 15086: 0x620C, - 15087: 0x8853, - 15088: 0x8FF0, - 15089: 0x9265, - 15090: 0x5D07, - 15091: 0x5D27, - 15092: 0x5D69, - 15093: 0x745F, - 15094: 0x819D, - 15095: 0x8768, - 15096: 0x6FD5, - 15097: 0x62FE, - 15098: 0x7FD2, - 15099: 0x8936, - 15100: 0x8972, - 15101: 0x4E1E, - 15102: 0x4E58, - 15103: 0x50E7, - 15104: 0x52DD, - 15105: 0x5347, - 15106: 0x627F, - 15107: 0x6607, - 15108: 0x7E69, - 15109: 0x8805, - 15110: 0x965E, - 15111: 0x4F8D, - 15112: 0x5319, - 15113: 0x5636, - 15114: 0x59CB, - 15115: 0x5AA4, - 15116: 0x5C38, - 15117: 0x5C4E, - 15118: 0x5C4D, - 15119: 0x5E02, - 15120: 0x5F11, - 15121: 0x6043, - 15122: 0x65BD, - 15123: 0x662F, - 15124: 0x6642, - 15125: 0x67BE, - 15126: 0x67F4, - 15127: 0x731C, - 15128: 0x77E2, - 15129: 0x793A, - 15130: 0x7FC5, - 15131: 0x8494, - 15132: 0x84CD, - 15133: 0x8996, - 15134: 0x8A66, - 15135: 0x8A69, - 15136: 0x8AE1, - 15137: 0x8C55, - 15138: 0x8C7A, - 15139: 0x57F4, - 15140: 0x5BD4, - 15141: 0x5F0F, - 15142: 0x606F, - 15143: 0x62ED, - 15144: 0x690D, - 15145: 0x6B96, - 15146: 0x6E5C, - 15147: 0x7184, - 15148: 0x7BD2, - 15149: 0x8755, - 15150: 0x8B58, - 15151: 0x8EFE, - 15152: 0x98DF, - 15153: 0x98FE, - 15154: 0x4F38, - 15155: 0x4F81, - 15156: 0x4FE1, - 15157: 0x547B, - 15158: 0x5A20, - 15159: 0x5BB8, - 15160: 0x613C, - 15161: 0x65B0, - 15162: 0x6668, - 15163: 0x71FC, - 15164: 0x7533, - 15165: 0x795E, - 15166: 0x7D33, - 15167: 0x814E, - 15168: 0x81E3, - 15169: 0x8398, - 15170: 0x85AA, - 15171: 0x85CE, - 15172: 0x8703, - 15173: 0x8A0A, - 15174: 0x8EAB, - 15175: 0x8F9B, - 15176: 0xF971, - 15177: 0x8FC5, - 15178: 0x5931, - 15179: 0x5BA4, - 15180: 0x5BE6, - 15181: 0x6089, - 15182: 0x5BE9, - 15183: 0x5C0B, - 15184: 0x5FC3, - 15185: 0x6C81, - 15186: 0xF972, - 15187: 0x6DF1, - 15188: 0x700B, - 15189: 0x751A, - 15190: 0x82AF, - 15191: 0x8AF6, - 15192: 0x4EC0, - 15193: 0x5341, - 15194: 0xF973, - 15195: 0x96D9, - 15196: 0x6C0F, - 15197: 0x4E9E, - 15198: 0x4FC4, - 15199: 0x5152, - 15200: 0x555E, - 15201: 0x5A25, - 15202: 0x5CE8, - 15203: 0x6211, - 15204: 0x7259, - 15205: 0x82BD, - 15206: 0x83AA, - 15207: 0x86FE, - 15208: 0x8859, - 15209: 0x8A1D, - 15210: 0x963F, - 15211: 0x96C5, - 15212: 0x9913, - 15213: 0x9D09, - 15214: 0x9D5D, - 15215: 0x580A, - 15216: 0x5CB3, - 15217: 0x5DBD, - 15218: 0x5E44, - 15219: 0x60E1, - 15220: 0x6115, - 15221: 0x63E1, - 15222: 0x6A02, - 15223: 0x6E25, - 15224: 0x9102, - 15225: 0x9354, - 15226: 0x984E, - 15227: 0x9C10, - 15228: 0x9F77, - 15229: 0x5B89, - 15230: 0x5CB8, - 15231: 0x6309, - 15232: 0x664F, - 15233: 0x6848, - 15234: 0x773C, - 15235: 0x96C1, - 15236: 0x978D, - 15237: 0x9854, - 15238: 0x9B9F, - 15239: 0x65A1, - 15240: 0x8B01, - 15241: 0x8ECB, - 15242: 0x95BC, - 15243: 0x5535, - 15244: 0x5CA9, - 15245: 0x5DD6, - 15246: 0x5EB5, - 15247: 0x6697, - 15248: 0x764C, - 15249: 0x83F4, - 15250: 0x95C7, - 15251: 0x58D3, - 15252: 0x62BC, - 15253: 0x72CE, - 15254: 0x9D28, - 15255: 0x4EF0, - 15256: 0x592E, - 15257: 0x600F, - 15258: 0x663B, - 15259: 0x6B83, - 15260: 0x79E7, - 15261: 0x9D26, - 15262: 0x5393, - 15263: 0x54C0, - 15264: 0x57C3, - 15265: 0x5D16, - 15266: 0x611B, - 15267: 0x66D6, - 15268: 0x6DAF, - 15269: 0x788D, - 15270: 0x827E, - 15271: 0x9698, - 15272: 0x9744, - 15273: 0x5384, - 15274: 0x627C, - 15275: 0x6396, - 15276: 0x6DB2, - 15277: 0x7E0A, - 15278: 0x814B, - 15279: 0x984D, - 15280: 0x6AFB, - 15281: 0x7F4C, - 15282: 0x9DAF, - 15283: 0x9E1A, - 15284: 0x4E5F, - 15285: 0x503B, - 15286: 0x51B6, - 15287: 0x591C, - 15288: 0x60F9, - 15289: 0x63F6, - 15290: 0x6930, - 15291: 0x723A, - 15292: 0x8036, - 15293: 0xF974, - 15294: 0x91CE, - 15295: 0x5F31, - 15296: 0xF975, - 15297: 0xF976, - 15298: 0x7D04, - 15299: 0x82E5, - 15300: 0x846F, - 15301: 0x84BB, - 15302: 0x85E5, - 15303: 0x8E8D, - 15304: 0xF977, - 15305: 0x4F6F, - 15306: 0xF978, - 15307: 0xF979, - 15308: 0x58E4, - 15309: 0x5B43, - 15310: 0x6059, - 15311: 0x63DA, - 15312: 0x6518, - 15313: 0x656D, - 15314: 0x6698, - 15315: 0xF97A, - 15316: 0x694A, - 15317: 0x6A23, - 15318: 0x6D0B, - 15319: 0x7001, - 15320: 0x716C, - 15321: 0x75D2, - 15322: 0x760D, - 15323: 0x79B3, - 15324: 0x7A70, - 15325: 0xF97B, - 15326: 0x7F8A, - 15327: 0xF97C, - 15328: 0x8944, - 15329: 0xF97D, - 15330: 0x8B93, - 15331: 0x91C0, - 15332: 0x967D, - 15333: 0xF97E, - 15334: 0x990A, - 15335: 0x5704, - 15336: 0x5FA1, - 15337: 0x65BC, - 15338: 0x6F01, - 15339: 0x7600, - 15340: 0x79A6, - 15341: 0x8A9E, - 15342: 0x99AD, - 15343: 0x9B5A, - 15344: 0x9F6C, - 15345: 0x5104, - 15346: 0x61B6, - 15347: 0x6291, - 15348: 0x6A8D, - 15349: 0x81C6, - 15350: 0x5043, - 15351: 0x5830, - 15352: 0x5F66, - 15353: 0x7109, - 15354: 0x8A00, - 15355: 0x8AFA, - 15356: 0x5B7C, - 15357: 0x8616, - 15358: 0x4FFA, - 15359: 0x513C, - 15360: 0x56B4, - 15361: 0x5944, - 15362: 0x63A9, - 15363: 0x6DF9, - 15364: 0x5DAA, - 15365: 0x696D, - 15366: 0x5186, - 15367: 0x4E88, - 15368: 0x4F59, - 15369: 0xF97F, - 15370: 0xF980, - 15371: 0xF981, - 15372: 0x5982, - 15373: 0xF982, - 15374: 0xF983, - 15375: 0x6B5F, - 15376: 0x6C5D, - 15377: 0xF984, - 15378: 0x74B5, - 15379: 0x7916, - 15380: 0xF985, - 15381: 0x8207, - 15382: 0x8245, - 15383: 0x8339, - 15384: 0x8F3F, - 15385: 0x8F5D, - 15386: 0xF986, - 15387: 0x9918, - 15388: 0xF987, - 15389: 0xF988, - 15390: 0xF989, - 15391: 0x4EA6, - 15392: 0xF98A, - 15393: 0x57DF, - 15394: 0x5F79, - 15395: 0x6613, - 15396: 0xF98B, - 15397: 0xF98C, - 15398: 0x75AB, - 15399: 0x7E79, - 15400: 0x8B6F, - 15401: 0xF98D, - 15402: 0x9006, - 15403: 0x9A5B, - 15404: 0x56A5, - 15405: 0x5827, - 15406: 0x59F8, - 15407: 0x5A1F, - 15408: 0x5BB4, - 15409: 0xF98E, - 15410: 0x5EF6, - 15411: 0xF98F, - 15412: 0xF990, - 15413: 0x6350, - 15414: 0x633B, - 15415: 0xF991, - 15416: 0x693D, - 15417: 0x6C87, - 15418: 0x6CBF, - 15419: 0x6D8E, - 15420: 0x6D93, - 15421: 0x6DF5, - 15422: 0x6F14, - 15423: 0xF992, - 15424: 0x70DF, - 15425: 0x7136, - 15426: 0x7159, - 15427: 0xF993, - 15428: 0x71C3, - 15429: 0x71D5, - 15430: 0xF994, - 15431: 0x784F, - 15432: 0x786F, - 15433: 0xF995, - 15434: 0x7B75, - 15435: 0x7DE3, - 15436: 0xF996, - 15437: 0x7E2F, - 15438: 0xF997, - 15439: 0x884D, - 15440: 0x8EDF, - 15441: 0xF998, - 15442: 0xF999, - 15443: 0xF99A, - 15444: 0x925B, - 15445: 0xF99B, - 15446: 0x9CF6, - 15447: 0xF99C, - 15448: 0xF99D, - 15449: 0xF99E, - 15450: 0x6085, - 15451: 0x6D85, - 15452: 0xF99F, - 15453: 0x71B1, - 15454: 0xF9A0, - 15455: 0xF9A1, - 15456: 0x95B1, - 15457: 0x53AD, - 15458: 0xF9A2, - 15459: 0xF9A3, - 15460: 0xF9A4, - 15461: 0x67D3, - 15462: 0xF9A5, - 15463: 0x708E, - 15464: 0x7130, - 15465: 0x7430, - 15466: 0x8276, - 15467: 0x82D2, - 15468: 0xF9A6, - 15469: 0x95BB, - 15470: 0x9AE5, - 15471: 0x9E7D, - 15472: 0x66C4, - 15473: 0xF9A7, - 15474: 0x71C1, - 15475: 0x8449, - 15476: 0xF9A8, - 15477: 0xF9A9, - 15478: 0x584B, - 15479: 0xF9AA, - 15480: 0xF9AB, - 15481: 0x5DB8, - 15482: 0x5F71, - 15483: 0xF9AC, - 15484: 0x6620, - 15485: 0x668E, - 15486: 0x6979, - 15487: 0x69AE, - 15488: 0x6C38, - 15489: 0x6CF3, - 15490: 0x6E36, - 15491: 0x6F41, - 15492: 0x6FDA, - 15493: 0x701B, - 15494: 0x702F, - 15495: 0x7150, - 15496: 0x71DF, - 15497: 0x7370, - 15498: 0xF9AD, - 15499: 0x745B, - 15500: 0xF9AE, - 15501: 0x74D4, - 15502: 0x76C8, - 15503: 0x7A4E, - 15504: 0x7E93, - 15505: 0xF9AF, - 15506: 0xF9B0, - 15507: 0x82F1, - 15508: 0x8A60, - 15509: 0x8FCE, - 15510: 0xF9B1, - 15511: 0x9348, - 15512: 0xF9B2, - 15513: 0x9719, - 15514: 0xF9B3, - 15515: 0xF9B4, - 15516: 0x4E42, - 15517: 0x502A, - 15518: 0xF9B5, - 15519: 0x5208, - 15520: 0x53E1, - 15521: 0x66F3, - 15522: 0x6C6D, - 15523: 0x6FCA, - 15524: 0x730A, - 15525: 0x777F, - 15526: 0x7A62, - 15527: 0x82AE, - 15528: 0x85DD, - 15529: 0x8602, - 15530: 0xF9B6, - 15531: 0x88D4, - 15532: 0x8A63, - 15533: 0x8B7D, - 15534: 0x8C6B, - 15535: 0xF9B7, - 15536: 0x92B3, - 15537: 0xF9B8, - 15538: 0x9713, - 15539: 0x9810, - 15540: 0x4E94, - 15541: 0x4F0D, - 15542: 0x4FC9, - 15543: 0x50B2, - 15544: 0x5348, - 15545: 0x543E, - 15546: 0x5433, - 15547: 0x55DA, - 15548: 0x5862, - 15549: 0x58BA, - 15550: 0x5967, - 15551: 0x5A1B, - 15552: 0x5BE4, - 15553: 0x609F, - 15554: 0xF9B9, - 15555: 0x61CA, - 15556: 0x6556, - 15557: 0x65FF, - 15558: 0x6664, - 15559: 0x68A7, - 15560: 0x6C5A, - 15561: 0x6FB3, - 15562: 0x70CF, - 15563: 0x71AC, - 15564: 0x7352, - 15565: 0x7B7D, - 15566: 0x8708, - 15567: 0x8AA4, - 15568: 0x9C32, - 15569: 0x9F07, - 15570: 0x5C4B, - 15571: 0x6C83, - 15572: 0x7344, - 15573: 0x7389, - 15574: 0x923A, - 15575: 0x6EAB, - 15576: 0x7465, - 15577: 0x761F, - 15578: 0x7A69, - 15579: 0x7E15, - 15580: 0x860A, - 15581: 0x5140, - 15582: 0x58C5, - 15583: 0x64C1, - 15584: 0x74EE, - 15585: 0x7515, - 15586: 0x7670, - 15587: 0x7FC1, - 15588: 0x9095, - 15589: 0x96CD, - 15590: 0x9954, - 15591: 0x6E26, - 15592: 0x74E6, - 15593: 0x7AA9, - 15594: 0x7AAA, - 15595: 0x81E5, - 15596: 0x86D9, - 15597: 0x8778, - 15598: 0x8A1B, - 15599: 0x5A49, - 15600: 0x5B8C, - 15601: 0x5B9B, - 15602: 0x68A1, - 15603: 0x6900, - 15604: 0x6D63, - 15605: 0x73A9, - 15606: 0x7413, - 15607: 0x742C, - 15608: 0x7897, - 15609: 0x7DE9, - 15610: 0x7FEB, - 15611: 0x8118, - 15612: 0x8155, - 15613: 0x839E, - 15614: 0x8C4C, - 15615: 0x962E, - 15616: 0x9811, - 15617: 0x66F0, - 15618: 0x5F80, - 15619: 0x65FA, - 15620: 0x6789, - 15621: 0x6C6A, - 15622: 0x738B, - 15623: 0x502D, - 15624: 0x5A03, - 15625: 0x6B6A, - 15626: 0x77EE, - 15627: 0x5916, - 15628: 0x5D6C, - 15629: 0x5DCD, - 15630: 0x7325, - 15631: 0x754F, - 15632: 0xF9BA, - 15633: 0xF9BB, - 15634: 0x50E5, - 15635: 0x51F9, - 15636: 0x582F, - 15637: 0x592D, - 15638: 0x5996, - 15639: 0x59DA, - 15640: 0x5BE5, - 15641: 0xF9BC, - 15642: 0xF9BD, - 15643: 0x5DA2, - 15644: 0x62D7, - 15645: 0x6416, - 15646: 0x6493, - 15647: 0x64FE, - 15648: 0xF9BE, - 15649: 0x66DC, - 15650: 0xF9BF, - 15651: 0x6A48, - 15652: 0xF9C0, - 15653: 0x71FF, - 15654: 0x7464, - 15655: 0xF9C1, - 15656: 0x7A88, - 15657: 0x7AAF, - 15658: 0x7E47, - 15659: 0x7E5E, - 15660: 0x8000, - 15661: 0x8170, - 15662: 0xF9C2, - 15663: 0x87EF, - 15664: 0x8981, - 15665: 0x8B20, - 15666: 0x9059, - 15667: 0xF9C3, - 15668: 0x9080, - 15669: 0x9952, - 15670: 0x617E, - 15671: 0x6B32, - 15672: 0x6D74, - 15673: 0x7E1F, - 15674: 0x8925, - 15675: 0x8FB1, - 15676: 0x4FD1, - 15677: 0x50AD, - 15678: 0x5197, - 15679: 0x52C7, - 15680: 0x57C7, - 15681: 0x5889, - 15682: 0x5BB9, - 15683: 0x5EB8, - 15684: 0x6142, - 15685: 0x6995, - 15686: 0x6D8C, - 15687: 0x6E67, - 15688: 0x6EB6, - 15689: 0x7194, - 15690: 0x7462, - 15691: 0x7528, - 15692: 0x752C, - 15693: 0x8073, - 15694: 0x8338, - 15695: 0x84C9, - 15696: 0x8E0A, - 15697: 0x9394, - 15698: 0x93DE, - 15699: 0xF9C4, - 15700: 0x4E8E, - 15701: 0x4F51, - 15702: 0x5076, - 15703: 0x512A, - 15704: 0x53C8, - 15705: 0x53CB, - 15706: 0x53F3, - 15707: 0x5B87, - 15708: 0x5BD3, - 15709: 0x5C24, - 15710: 0x611A, - 15711: 0x6182, - 15712: 0x65F4, - 15713: 0x725B, - 15714: 0x7397, - 15715: 0x7440, - 15716: 0x76C2, - 15717: 0x7950, - 15718: 0x7991, - 15719: 0x79B9, - 15720: 0x7D06, - 15721: 0x7FBD, - 15722: 0x828B, - 15723: 0x85D5, - 15724: 0x865E, - 15725: 0x8FC2, - 15726: 0x9047, - 15727: 0x90F5, - 15728: 0x91EA, - 15729: 0x9685, - 15730: 0x96E8, - 15731: 0x96E9, - 15732: 0x52D6, - 15733: 0x5F67, - 15734: 0x65ED, - 15735: 0x6631, - 15736: 0x682F, - 15737: 0x715C, - 15738: 0x7A36, - 15739: 0x90C1, - 15740: 0x980A, - 15741: 0x4E91, - 15742: 0xF9C5, - 15743: 0x6A52, - 15744: 0x6B9E, - 15745: 0x6F90, - 15746: 0x7189, - 15747: 0x8018, - 15748: 0x82B8, - 15749: 0x8553, - 15750: 0x904B, - 15751: 0x9695, - 15752: 0x96F2, - 15753: 0x97FB, - 15754: 0x851A, - 15755: 0x9B31, - 15756: 0x4E90, - 15757: 0x718A, - 15758: 0x96C4, - 15759: 0x5143, - 15760: 0x539F, - 15761: 0x54E1, - 15762: 0x5713, - 15763: 0x5712, - 15764: 0x57A3, - 15765: 0x5A9B, - 15766: 0x5AC4, - 15767: 0x5BC3, - 15768: 0x6028, - 15769: 0x613F, - 15770: 0x63F4, - 15771: 0x6C85, - 15772: 0x6D39, - 15773: 0x6E72, - 15774: 0x6E90, - 15775: 0x7230, - 15776: 0x733F, - 15777: 0x7457, - 15778: 0x82D1, - 15779: 0x8881, - 15780: 0x8F45, - 15781: 0x9060, - 15782: 0xF9C6, - 15783: 0x9662, - 15784: 0x9858, - 15785: 0x9D1B, - 15786: 0x6708, - 15787: 0x8D8A, - 15788: 0x925E, - 15789: 0x4F4D, - 15790: 0x5049, - 15791: 0x50DE, - 15792: 0x5371, - 15793: 0x570D, - 15794: 0x59D4, - 15795: 0x5A01, - 15796: 0x5C09, - 15797: 0x6170, - 15798: 0x6690, - 15799: 0x6E2D, - 15800: 0x7232, - 15801: 0x744B, - 15802: 0x7DEF, - 15803: 0x80C3, - 15804: 0x840E, - 15805: 0x8466, - 15806: 0x853F, - 15807: 0x875F, - 15808: 0x885B, - 15809: 0x8918, - 15810: 0x8B02, - 15811: 0x9055, - 15812: 0x97CB, - 15813: 0x9B4F, - 15814: 0x4E73, - 15815: 0x4F91, - 15816: 0x5112, - 15817: 0x516A, - 15818: 0xF9C7, - 15819: 0x552F, - 15820: 0x55A9, - 15821: 0x5B7A, - 15822: 0x5BA5, - 15823: 0x5E7C, - 15824: 0x5E7D, - 15825: 0x5EBE, - 15826: 0x60A0, - 15827: 0x60DF, - 15828: 0x6108, - 15829: 0x6109, - 15830: 0x63C4, - 15831: 0x6538, - 15832: 0x6709, - 15833: 0xF9C8, - 15834: 0x67D4, - 15835: 0x67DA, - 15836: 0xF9C9, - 15837: 0x6961, - 15838: 0x6962, - 15839: 0x6CB9, - 15840: 0x6D27, - 15841: 0xF9CA, - 15842: 0x6E38, - 15843: 0xF9CB, - 15844: 0x6FE1, - 15845: 0x7336, - 15846: 0x7337, - 15847: 0xF9CC, - 15848: 0x745C, - 15849: 0x7531, - 15850: 0xF9CD, - 15851: 0x7652, - 15852: 0xF9CE, - 15853: 0xF9CF, - 15854: 0x7DAD, - 15855: 0x81FE, - 15856: 0x8438, - 15857: 0x88D5, - 15858: 0x8A98, - 15859: 0x8ADB, - 15860: 0x8AED, - 15861: 0x8E30, - 15862: 0x8E42, - 15863: 0x904A, - 15864: 0x903E, - 15865: 0x907A, - 15866: 0x9149, - 15867: 0x91C9, - 15868: 0x936E, - 15869: 0xF9D0, - 15870: 0xF9D1, - 15871: 0x5809, - 15872: 0xF9D2, - 15873: 0x6BD3, - 15874: 0x8089, - 15875: 0x80B2, - 15876: 0xF9D3, - 15877: 0xF9D4, - 15878: 0x5141, - 15879: 0x596B, - 15880: 0x5C39, - 15881: 0xF9D5, - 15882: 0xF9D6, - 15883: 0x6F64, - 15884: 0x73A7, - 15885: 0x80E4, - 15886: 0x8D07, - 15887: 0xF9D7, - 15888: 0x9217, - 15889: 0x958F, - 15890: 0xF9D8, - 15891: 0xF9D9, - 15892: 0xF9DA, - 15893: 0xF9DB, - 15894: 0x807F, - 15895: 0x620E, - 15896: 0x701C, - 15897: 0x7D68, - 15898: 0x878D, - 15899: 0xF9DC, - 15900: 0x57A0, - 15901: 0x6069, - 15902: 0x6147, - 15903: 0x6BB7, - 15904: 0x8ABE, - 15905: 0x9280, - 15906: 0x96B1, - 15907: 0x4E59, - 15908: 0x541F, - 15909: 0x6DEB, - 15910: 0x852D, - 15911: 0x9670, - 15912: 0x97F3, - 15913: 0x98EE, - 15914: 0x63D6, - 15915: 0x6CE3, - 15916: 0x9091, - 15917: 0x51DD, - 15918: 0x61C9, - 15919: 0x81BA, - 15920: 0x9DF9, - 15921: 0x4F9D, - 15922: 0x501A, - 15923: 0x5100, - 15924: 0x5B9C, - 15925: 0x610F, - 15926: 0x61FF, - 15927: 0x64EC, - 15928: 0x6905, - 15929: 0x6BC5, - 15930: 0x7591, - 15931: 0x77E3, - 15932: 0x7FA9, - 15933: 0x8264, - 15934: 0x858F, - 15935: 0x87FB, - 15936: 0x8863, - 15937: 0x8ABC, - 15938: 0x8B70, - 15939: 0x91AB, - 15940: 0x4E8C, - 15941: 0x4EE5, - 15942: 0x4F0A, - 15943: 0xF9DD, - 15944: 0xF9DE, - 15945: 0x5937, - 15946: 0x59E8, - 15947: 0xF9DF, - 15948: 0x5DF2, - 15949: 0x5F1B, - 15950: 0x5F5B, - 15951: 0x6021, - 15952: 0xF9E0, - 15953: 0xF9E1, - 15954: 0xF9E2, - 15955: 0xF9E3, - 15956: 0x723E, - 15957: 0x73E5, - 15958: 0xF9E4, - 15959: 0x7570, - 15960: 0x75CD, - 15961: 0xF9E5, - 15962: 0x79FB, - 15963: 0xF9E6, - 15964: 0x800C, - 15965: 0x8033, - 15966: 0x8084, - 15967: 0x82E1, - 15968: 0x8351, - 15969: 0xF9E7, - 15970: 0xF9E8, - 15971: 0x8CBD, - 15972: 0x8CB3, - 15973: 0x9087, - 15974: 0xF9E9, - 15975: 0xF9EA, - 15976: 0x98F4, - 15977: 0x990C, - 15978: 0xF9EB, - 15979: 0xF9EC, - 15980: 0x7037, - 15981: 0x76CA, - 15982: 0x7FCA, - 15983: 0x7FCC, - 15984: 0x7FFC, - 15985: 0x8B1A, - 15986: 0x4EBA, - 15987: 0x4EC1, - 15988: 0x5203, - 15989: 0x5370, - 15990: 0xF9ED, - 15991: 0x54BD, - 15992: 0x56E0, - 15993: 0x59FB, - 15994: 0x5BC5, - 15995: 0x5F15, - 15996: 0x5FCD, - 15997: 0x6E6E, - 15998: 0xF9EE, - 15999: 0xF9EF, - 16000: 0x7D6A, - 16001: 0x8335, - 16002: 0xF9F0, - 16003: 0x8693, - 16004: 0x8A8D, - 16005: 0xF9F1, - 16006: 0x976D, - 16007: 0x9777, - 16008: 0xF9F2, - 16009: 0xF9F3, - 16010: 0x4E00, - 16011: 0x4F5A, - 16012: 0x4F7E, - 16013: 0x58F9, - 16014: 0x65E5, - 16015: 0x6EA2, - 16016: 0x9038, - 16017: 0x93B0, - 16018: 0x99B9, - 16019: 0x4EFB, - 16020: 0x58EC, - 16021: 0x598A, - 16022: 0x59D9, - 16023: 0x6041, - 16024: 0xF9F4, - 16025: 0xF9F5, - 16026: 0x7A14, - 16027: 0xF9F6, - 16028: 0x834F, - 16029: 0x8CC3, - 16030: 0x5165, - 16031: 0x5344, - 16032: 0xF9F7, - 16033: 0xF9F8, - 16034: 0xF9F9, - 16035: 0x4ECD, - 16036: 0x5269, - 16037: 0x5B55, - 16038: 0x82BF, - 16039: 0x4ED4, - 16040: 0x523A, - 16041: 0x54A8, - 16042: 0x59C9, - 16043: 0x59FF, - 16044: 0x5B50, - 16045: 0x5B57, - 16046: 0x5B5C, - 16047: 0x6063, - 16048: 0x6148, - 16049: 0x6ECB, - 16050: 0x7099, - 16051: 0x716E, - 16052: 0x7386, - 16053: 0x74F7, - 16054: 0x75B5, - 16055: 0x78C1, - 16056: 0x7D2B, - 16057: 0x8005, - 16058: 0x81EA, - 16059: 0x8328, - 16060: 0x8517, - 16061: 0x85C9, - 16062: 0x8AEE, - 16063: 0x8CC7, - 16064: 0x96CC, - 16065: 0x4F5C, - 16066: 0x52FA, - 16067: 0x56BC, - 16068: 0x65AB, - 16069: 0x6628, - 16070: 0x707C, - 16071: 0x70B8, - 16072: 0x7235, - 16073: 0x7DBD, - 16074: 0x828D, - 16075: 0x914C, - 16076: 0x96C0, - 16077: 0x9D72, - 16078: 0x5B71, - 16079: 0x68E7, - 16080: 0x6B98, - 16081: 0x6F7A, - 16082: 0x76DE, - 16083: 0x5C91, - 16084: 0x66AB, - 16085: 0x6F5B, - 16086: 0x7BB4, - 16087: 0x7C2A, - 16088: 0x8836, - 16089: 0x96DC, - 16090: 0x4E08, - 16091: 0x4ED7, - 16092: 0x5320, - 16093: 0x5834, - 16094: 0x58BB, - 16095: 0x58EF, - 16096: 0x596C, - 16097: 0x5C07, - 16098: 0x5E33, - 16099: 0x5E84, - 16100: 0x5F35, - 16101: 0x638C, - 16102: 0x66B2, - 16103: 0x6756, - 16104: 0x6A1F, - 16105: 0x6AA3, - 16106: 0x6B0C, - 16107: 0x6F3F, - 16108: 0x7246, - 16109: 0xF9FA, - 16110: 0x7350, - 16111: 0x748B, - 16112: 0x7AE0, - 16113: 0x7CA7, - 16114: 0x8178, - 16115: 0x81DF, - 16116: 0x81E7, - 16117: 0x838A, - 16118: 0x846C, - 16119: 0x8523, - 16120: 0x8594, - 16121: 0x85CF, - 16122: 0x88DD, - 16123: 0x8D13, - 16124: 0x91AC, - 16125: 0x9577, - 16126: 0x969C, - 16127: 0x518D, - 16128: 0x54C9, - 16129: 0x5728, - 16130: 0x5BB0, - 16131: 0x624D, - 16132: 0x6750, - 16133: 0x683D, - 16134: 0x6893, - 16135: 0x6E3D, - 16136: 0x6ED3, - 16137: 0x707D, - 16138: 0x7E21, - 16139: 0x88C1, - 16140: 0x8CA1, - 16141: 0x8F09, - 16142: 0x9F4B, - 16143: 0x9F4E, - 16144: 0x722D, - 16145: 0x7B8F, - 16146: 0x8ACD, - 16147: 0x931A, - 16148: 0x4F47, - 16149: 0x4F4E, - 16150: 0x5132, - 16151: 0x5480, - 16152: 0x59D0, - 16153: 0x5E95, - 16154: 0x62B5, - 16155: 0x6775, - 16156: 0x696E, - 16157: 0x6A17, - 16158: 0x6CAE, - 16159: 0x6E1A, - 16160: 0x72D9, - 16161: 0x732A, - 16162: 0x75BD, - 16163: 0x7BB8, - 16164: 0x7D35, - 16165: 0x82E7, - 16166: 0x83F9, - 16167: 0x8457, - 16168: 0x85F7, - 16169: 0x8A5B, - 16170: 0x8CAF, - 16171: 0x8E87, - 16172: 0x9019, - 16173: 0x90B8, - 16174: 0x96CE, - 16175: 0x9F5F, - 16176: 0x52E3, - 16177: 0x540A, - 16178: 0x5AE1, - 16179: 0x5BC2, - 16180: 0x6458, - 16181: 0x6575, - 16182: 0x6EF4, - 16183: 0x72C4, - 16184: 0xF9FB, - 16185: 0x7684, - 16186: 0x7A4D, - 16187: 0x7B1B, - 16188: 0x7C4D, - 16189: 0x7E3E, - 16190: 0x7FDF, - 16191: 0x837B, - 16192: 0x8B2B, - 16193: 0x8CCA, - 16194: 0x8D64, - 16195: 0x8DE1, - 16196: 0x8E5F, - 16197: 0x8FEA, - 16198: 0x8FF9, - 16199: 0x9069, - 16200: 0x93D1, - 16201: 0x4F43, - 16202: 0x4F7A, - 16203: 0x50B3, - 16204: 0x5168, - 16205: 0x5178, - 16206: 0x524D, - 16207: 0x526A, - 16208: 0x5861, - 16209: 0x587C, - 16210: 0x5960, - 16211: 0x5C08, - 16212: 0x5C55, - 16213: 0x5EDB, - 16214: 0x609B, - 16215: 0x6230, - 16216: 0x6813, - 16217: 0x6BBF, - 16218: 0x6C08, - 16219: 0x6FB1, - 16220: 0x714E, - 16221: 0x7420, - 16222: 0x7530, - 16223: 0x7538, - 16224: 0x7551, - 16225: 0x7672, - 16226: 0x7B4C, - 16227: 0x7B8B, - 16228: 0x7BAD, - 16229: 0x7BC6, - 16230: 0x7E8F, - 16231: 0x8A6E, - 16232: 0x8F3E, - 16233: 0x8F49, - 16234: 0x923F, - 16235: 0x9293, - 16236: 0x9322, - 16237: 0x942B, - 16238: 0x96FB, - 16239: 0x985A, - 16240: 0x986B, - 16241: 0x991E, - 16242: 0x5207, - 16243: 0x622A, - 16244: 0x6298, - 16245: 0x6D59, - 16246: 0x7664, - 16247: 0x7ACA, - 16248: 0x7BC0, - 16249: 0x7D76, - 16250: 0x5360, - 16251: 0x5CBE, - 16252: 0x5E97, - 16253: 0x6F38, - 16254: 0x70B9, - 16255: 0x7C98, - 16256: 0x9711, - 16257: 0x9B8E, - 16258: 0x9EDE, - 16259: 0x63A5, - 16260: 0x647A, - 16261: 0x8776, - 16262: 0x4E01, - 16263: 0x4E95, - 16264: 0x4EAD, - 16265: 0x505C, - 16266: 0x5075, - 16267: 0x5448, - 16268: 0x59C3, - 16269: 0x5B9A, - 16270: 0x5E40, - 16271: 0x5EAD, - 16272: 0x5EF7, - 16273: 0x5F81, - 16274: 0x60C5, - 16275: 0x633A, - 16276: 0x653F, - 16277: 0x6574, - 16278: 0x65CC, - 16279: 0x6676, - 16280: 0x6678, - 16281: 0x67FE, - 16282: 0x6968, - 16283: 0x6A89, - 16284: 0x6B63, - 16285: 0x6C40, - 16286: 0x6DC0, - 16287: 0x6DE8, - 16288: 0x6E1F, - 16289: 0x6E5E, - 16290: 0x701E, - 16291: 0x70A1, - 16292: 0x738E, - 16293: 0x73FD, - 16294: 0x753A, - 16295: 0x775B, - 16296: 0x7887, - 16297: 0x798E, - 16298: 0x7A0B, - 16299: 0x7A7D, - 16300: 0x7CBE, - 16301: 0x7D8E, - 16302: 0x8247, - 16303: 0x8A02, - 16304: 0x8AEA, - 16305: 0x8C9E, - 16306: 0x912D, - 16307: 0x914A, - 16308: 0x91D8, - 16309: 0x9266, - 16310: 0x92CC, - 16311: 0x9320, - 16312: 0x9706, - 16313: 0x9756, - 16314: 0x975C, - 16315: 0x9802, - 16316: 0x9F0E, - 16317: 0x5236, - 16318: 0x5291, - 16319: 0x557C, - 16320: 0x5824, - 16321: 0x5E1D, - 16322: 0x5F1F, - 16323: 0x608C, - 16324: 0x63D0, - 16325: 0x68AF, - 16326: 0x6FDF, - 16327: 0x796D, - 16328: 0x7B2C, - 16329: 0x81CD, - 16330: 0x85BA, - 16331: 0x88FD, - 16332: 0x8AF8, - 16333: 0x8E44, - 16334: 0x918D, - 16335: 0x9664, - 16336: 0x969B, - 16337: 0x973D, - 16338: 0x984C, - 16339: 0x9F4A, - 16340: 0x4FCE, - 16341: 0x5146, - 16342: 0x51CB, - 16343: 0x52A9, - 16344: 0x5632, - 16345: 0x5F14, - 16346: 0x5F6B, - 16347: 0x63AA, - 16348: 0x64CD, - 16349: 0x65E9, - 16350: 0x6641, - 16351: 0x66FA, - 16352: 0x66F9, - 16353: 0x671D, - 16354: 0x689D, - 16355: 0x68D7, - 16356: 0x69FD, - 16357: 0x6F15, - 16358: 0x6F6E, - 16359: 0x7167, - 16360: 0x71E5, - 16361: 0x722A, - 16362: 0x74AA, - 16363: 0x773A, - 16364: 0x7956, - 16365: 0x795A, - 16366: 0x79DF, - 16367: 0x7A20, - 16368: 0x7A95, - 16369: 0x7C97, - 16370: 0x7CDF, - 16371: 0x7D44, - 16372: 0x7E70, - 16373: 0x8087, - 16374: 0x85FB, - 16375: 0x86A4, - 16376: 0x8A54, - 16377: 0x8ABF, - 16378: 0x8D99, - 16379: 0x8E81, - 16380: 0x9020, - 16381: 0x906D, - 16382: 0x91E3, - 16383: 0x963B, - 16384: 0x96D5, - 16385: 0x9CE5, - 16386: 0x65CF, - 16387: 0x7C07, - 16388: 0x8DB3, - 16389: 0x93C3, - 16390: 0x5B58, - 16391: 0x5C0A, - 16392: 0x5352, - 16393: 0x62D9, - 16394: 0x731D, - 16395: 0x5027, - 16396: 0x5B97, - 16397: 0x5F9E, - 16398: 0x60B0, - 16399: 0x616B, - 16400: 0x68D5, - 16401: 0x6DD9, - 16402: 0x742E, - 16403: 0x7A2E, - 16404: 0x7D42, - 16405: 0x7D9C, - 16406: 0x7E31, - 16407: 0x816B, - 16408: 0x8E2A, - 16409: 0x8E35, - 16410: 0x937E, - 16411: 0x9418, - 16412: 0x4F50, - 16413: 0x5750, - 16414: 0x5DE6, - 16415: 0x5EA7, - 16416: 0x632B, - 16417: 0x7F6A, - 16418: 0x4E3B, - 16419: 0x4F4F, - 16420: 0x4F8F, - 16421: 0x505A, - 16422: 0x59DD, - 16423: 0x80C4, - 16424: 0x546A, - 16425: 0x5468, - 16426: 0x55FE, - 16427: 0x594F, - 16428: 0x5B99, - 16429: 0x5DDE, - 16430: 0x5EDA, - 16431: 0x665D, - 16432: 0x6731, - 16433: 0x67F1, - 16434: 0x682A, - 16435: 0x6CE8, - 16436: 0x6D32, - 16437: 0x6E4A, - 16438: 0x6F8D, - 16439: 0x70B7, - 16440: 0x73E0, - 16441: 0x7587, - 16442: 0x7C4C, - 16443: 0x7D02, - 16444: 0x7D2C, - 16445: 0x7DA2, - 16446: 0x821F, - 16447: 0x86DB, - 16448: 0x8A3B, - 16449: 0x8A85, - 16450: 0x8D70, - 16451: 0x8E8A, - 16452: 0x8F33, - 16453: 0x9031, - 16454: 0x914E, - 16455: 0x9152, - 16456: 0x9444, - 16457: 0x99D0, - 16458: 0x7AF9, - 16459: 0x7CA5, - 16460: 0x4FCA, - 16461: 0x5101, - 16462: 0x51C6, - 16463: 0x57C8, - 16464: 0x5BEF, - 16465: 0x5CFB, - 16466: 0x6659, - 16467: 0x6A3D, - 16468: 0x6D5A, - 16469: 0x6E96, - 16470: 0x6FEC, - 16471: 0x710C, - 16472: 0x756F, - 16473: 0x7AE3, - 16474: 0x8822, - 16475: 0x9021, - 16476: 0x9075, - 16477: 0x96CB, - 16478: 0x99FF, - 16479: 0x8301, - 16480: 0x4E2D, - 16481: 0x4EF2, - 16482: 0x8846, - 16483: 0x91CD, - 16484: 0x537D, - 16485: 0x6ADB, - 16486: 0x696B, - 16487: 0x6C41, - 16488: 0x847A, - 16489: 0x589E, - 16490: 0x618E, - 16491: 0x66FE, - 16492: 0x62EF, - 16493: 0x70DD, - 16494: 0x7511, - 16495: 0x75C7, - 16496: 0x7E52, - 16497: 0x84B8, - 16498: 0x8B49, - 16499: 0x8D08, - 16500: 0x4E4B, - 16501: 0x53EA, - 16502: 0x54AB, - 16503: 0x5730, - 16504: 0x5740, - 16505: 0x5FD7, - 16506: 0x6301, - 16507: 0x6307, - 16508: 0x646F, - 16509: 0x652F, - 16510: 0x65E8, - 16511: 0x667A, - 16512: 0x679D, - 16513: 0x67B3, - 16514: 0x6B62, - 16515: 0x6C60, - 16516: 0x6C9A, - 16517: 0x6F2C, - 16518: 0x77E5, - 16519: 0x7825, - 16520: 0x7949, - 16521: 0x7957, - 16522: 0x7D19, - 16523: 0x80A2, - 16524: 0x8102, - 16525: 0x81F3, - 16526: 0x829D, - 16527: 0x82B7, - 16528: 0x8718, - 16529: 0x8A8C, - 16530: 0xF9FC, - 16531: 0x8D04, - 16532: 0x8DBE, - 16533: 0x9072, - 16534: 0x76F4, - 16535: 0x7A19, - 16536: 0x7A37, - 16537: 0x7E54, - 16538: 0x8077, - 16539: 0x5507, - 16540: 0x55D4, - 16541: 0x5875, - 16542: 0x632F, - 16543: 0x6422, - 16544: 0x6649, - 16545: 0x664B, - 16546: 0x686D, - 16547: 0x699B, - 16548: 0x6B84, - 16549: 0x6D25, - 16550: 0x6EB1, - 16551: 0x73CD, - 16552: 0x7468, - 16553: 0x74A1, - 16554: 0x755B, - 16555: 0x75B9, - 16556: 0x76E1, - 16557: 0x771E, - 16558: 0x778B, - 16559: 0x79E6, - 16560: 0x7E09, - 16561: 0x7E1D, - 16562: 0x81FB, - 16563: 0x852F, - 16564: 0x8897, - 16565: 0x8A3A, - 16566: 0x8CD1, - 16567: 0x8EEB, - 16568: 0x8FB0, - 16569: 0x9032, - 16570: 0x93AD, - 16571: 0x9663, - 16572: 0x9673, - 16573: 0x9707, - 16574: 0x4F84, - 16575: 0x53F1, - 16576: 0x59EA, - 16577: 0x5AC9, - 16578: 0x5E19, - 16579: 0x684E, - 16580: 0x74C6, - 16581: 0x75BE, - 16582: 0x79E9, - 16583: 0x7A92, - 16584: 0x81A3, - 16585: 0x86ED, - 16586: 0x8CEA, - 16587: 0x8DCC, - 16588: 0x8FED, - 16589: 0x659F, - 16590: 0x6715, - 16591: 0xF9FD, - 16592: 0x57F7, - 16593: 0x6F57, - 16594: 0x7DDD, - 16595: 0x8F2F, - 16596: 0x93F6, - 16597: 0x96C6, - 16598: 0x5FB5, - 16599: 0x61F2, - 16600: 0x6F84, - 16601: 0x4E14, - 16602: 0x4F98, - 16603: 0x501F, - 16604: 0x53C9, - 16605: 0x55DF, - 16606: 0x5D6F, - 16607: 0x5DEE, - 16608: 0x6B21, - 16609: 0x6B64, - 16610: 0x78CB, - 16611: 0x7B9A, - 16612: 0xF9FE, - 16613: 0x8E49, - 16614: 0x8ECA, - 16615: 0x906E, - 16616: 0x6349, - 16617: 0x643E, - 16618: 0x7740, - 16619: 0x7A84, - 16620: 0x932F, - 16621: 0x947F, - 16622: 0x9F6A, - 16623: 0x64B0, - 16624: 0x6FAF, - 16625: 0x71E6, - 16626: 0x74A8, - 16627: 0x74DA, - 16628: 0x7AC4, - 16629: 0x7C12, - 16630: 0x7E82, - 16631: 0x7CB2, - 16632: 0x7E98, - 16633: 0x8B9A, - 16634: 0x8D0A, - 16635: 0x947D, - 16636: 0x9910, - 16637: 0x994C, - 16638: 0x5239, - 16639: 0x5BDF, - 16640: 0x64E6, - 16641: 0x672D, - 16642: 0x7D2E, - 16643: 0x50ED, - 16644: 0x53C3, - 16645: 0x5879, - 16646: 0x6158, - 16647: 0x6159, - 16648: 0x61FA, - 16649: 0x65AC, - 16650: 0x7AD9, - 16651: 0x8B92, - 16652: 0x8B96, - 16653: 0x5009, - 16654: 0x5021, - 16655: 0x5275, - 16656: 0x5531, - 16657: 0x5A3C, - 16658: 0x5EE0, - 16659: 0x5F70, - 16660: 0x6134, - 16661: 0x655E, - 16662: 0x660C, - 16663: 0x6636, - 16664: 0x66A2, - 16665: 0x69CD, - 16666: 0x6EC4, - 16667: 0x6F32, - 16668: 0x7316, - 16669: 0x7621, - 16670: 0x7A93, - 16671: 0x8139, - 16672: 0x8259, - 16673: 0x83D6, - 16674: 0x84BC, - 16675: 0x50B5, - 16676: 0x57F0, - 16677: 0x5BC0, - 16678: 0x5BE8, - 16679: 0x5F69, - 16680: 0x63A1, - 16681: 0x7826, - 16682: 0x7DB5, - 16683: 0x83DC, - 16684: 0x8521, - 16685: 0x91C7, - 16686: 0x91F5, - 16687: 0x518A, - 16688: 0x67F5, - 16689: 0x7B56, - 16690: 0x8CAC, - 16691: 0x51C4, - 16692: 0x59BB, - 16693: 0x60BD, - 16694: 0x8655, - 16695: 0x501C, - 16696: 0xF9FF, - 16697: 0x5254, - 16698: 0x5C3A, - 16699: 0x617D, - 16700: 0x621A, - 16701: 0x62D3, - 16702: 0x64F2, - 16703: 0x65A5, - 16704: 0x6ECC, - 16705: 0x7620, - 16706: 0x810A, - 16707: 0x8E60, - 16708: 0x965F, - 16709: 0x96BB, - 16710: 0x4EDF, - 16711: 0x5343, - 16712: 0x5598, - 16713: 0x5929, - 16714: 0x5DDD, - 16715: 0x64C5, - 16716: 0x6CC9, - 16717: 0x6DFA, - 16718: 0x7394, - 16719: 0x7A7F, - 16720: 0x821B, - 16721: 0x85A6, - 16722: 0x8CE4, - 16723: 0x8E10, - 16724: 0x9077, - 16725: 0x91E7, - 16726: 0x95E1, - 16727: 0x9621, - 16728: 0x97C6, - 16729: 0x51F8, - 16730: 0x54F2, - 16731: 0x5586, - 16732: 0x5FB9, - 16733: 0x64A4, - 16734: 0x6F88, - 16735: 0x7DB4, - 16736: 0x8F1F, - 16737: 0x8F4D, - 16738: 0x9435, - 16739: 0x50C9, - 16740: 0x5C16, - 16741: 0x6CBE, - 16742: 0x6DFB, - 16743: 0x751B, - 16744: 0x77BB, - 16745: 0x7C3D, - 16746: 0x7C64, - 16747: 0x8A79, - 16748: 0x8AC2, - 16749: 0x581E, - 16750: 0x59BE, - 16751: 0x5E16, - 16752: 0x6377, - 16753: 0x7252, - 16754: 0x758A, - 16755: 0x776B, - 16756: 0x8ADC, - 16757: 0x8CBC, - 16758: 0x8F12, - 16759: 0x5EF3, - 16760: 0x6674, - 16761: 0x6DF8, - 16762: 0x807D, - 16763: 0x83C1, - 16764: 0x8ACB, - 16765: 0x9751, - 16766: 0x9BD6, - 16767: 0xFA00, - 16768: 0x5243, - 16769: 0x66FF, - 16770: 0x6D95, - 16771: 0x6EEF, - 16772: 0x7DE0, - 16773: 0x8AE6, - 16774: 0x902E, - 16775: 0x905E, - 16776: 0x9AD4, - 16777: 0x521D, - 16778: 0x527F, - 16779: 0x54E8, - 16780: 0x6194, - 16781: 0x6284, - 16782: 0x62DB, - 16783: 0x68A2, - 16784: 0x6912, - 16785: 0x695A, - 16786: 0x6A35, - 16787: 0x7092, - 16788: 0x7126, - 16789: 0x785D, - 16790: 0x7901, - 16791: 0x790E, - 16792: 0x79D2, - 16793: 0x7A0D, - 16794: 0x8096, - 16795: 0x8278, - 16796: 0x82D5, - 16797: 0x8349, - 16798: 0x8549, - 16799: 0x8C82, - 16800: 0x8D85, - 16801: 0x9162, - 16802: 0x918B, - 16803: 0x91AE, - 16804: 0x4FC3, - 16805: 0x56D1, - 16806: 0x71ED, - 16807: 0x77D7, - 16808: 0x8700, - 16809: 0x89F8, - 16810: 0x5BF8, - 16811: 0x5FD6, - 16812: 0x6751, - 16813: 0x90A8, - 16814: 0x53E2, - 16815: 0x585A, - 16816: 0x5BF5, - 16817: 0x60A4, - 16818: 0x6181, - 16819: 0x6460, - 16820: 0x7E3D, - 16821: 0x8070, - 16822: 0x8525, - 16823: 0x9283, - 16824: 0x64AE, - 16825: 0x50AC, - 16826: 0x5D14, - 16827: 0x6700, - 16828: 0x589C, - 16829: 0x62BD, - 16830: 0x63A8, - 16831: 0x690E, - 16832: 0x6978, - 16833: 0x6A1E, - 16834: 0x6E6B, - 16835: 0x76BA, - 16836: 0x79CB, - 16837: 0x82BB, - 16838: 0x8429, - 16839: 0x8ACF, - 16840: 0x8DA8, - 16841: 0x8FFD, - 16842: 0x9112, - 16843: 0x914B, - 16844: 0x919C, - 16845: 0x9310, - 16846: 0x9318, - 16847: 0x939A, - 16848: 0x96DB, - 16849: 0x9A36, - 16850: 0x9C0D, - 16851: 0x4E11, - 16852: 0x755C, - 16853: 0x795D, - 16854: 0x7AFA, - 16855: 0x7B51, - 16856: 0x7BC9, - 16857: 0x7E2E, - 16858: 0x84C4, - 16859: 0x8E59, - 16860: 0x8E74, - 16861: 0x8EF8, - 16862: 0x9010, - 16863: 0x6625, - 16864: 0x693F, - 16865: 0x7443, - 16866: 0x51FA, - 16867: 0x672E, - 16868: 0x9EDC, - 16869: 0x5145, - 16870: 0x5FE0, - 16871: 0x6C96, - 16872: 0x87F2, - 16873: 0x885D, - 16874: 0x8877, - 16875: 0x60B4, - 16876: 0x81B5, - 16877: 0x8403, - 16878: 0x8D05, - 16879: 0x53D6, - 16880: 0x5439, - 16881: 0x5634, - 16882: 0x5A36, - 16883: 0x5C31, - 16884: 0x708A, - 16885: 0x7FE0, - 16886: 0x805A, - 16887: 0x8106, - 16888: 0x81ED, - 16889: 0x8DA3, - 16890: 0x9189, - 16891: 0x9A5F, - 16892: 0x9DF2, - 16893: 0x5074, - 16894: 0x4EC4, - 16895: 0x53A0, - 16896: 0x60FB, - 16897: 0x6E2C, - 16898: 0x5C64, - 16899: 0x4F88, - 16900: 0x5024, - 16901: 0x55E4, - 16902: 0x5CD9, - 16903: 0x5E5F, - 16904: 0x6065, - 16905: 0x6894, - 16906: 0x6CBB, - 16907: 0x6DC4, - 16908: 0x71BE, - 16909: 0x75D4, - 16910: 0x75F4, - 16911: 0x7661, - 16912: 0x7A1A, - 16913: 0x7A49, - 16914: 0x7DC7, - 16915: 0x7DFB, - 16916: 0x7F6E, - 16917: 0x81F4, - 16918: 0x86A9, - 16919: 0x8F1C, - 16920: 0x96C9, - 16921: 0x99B3, - 16922: 0x9F52, - 16923: 0x5247, - 16924: 0x52C5, - 16925: 0x98ED, - 16926: 0x89AA, - 16927: 0x4E03, - 16928: 0x67D2, - 16929: 0x6F06, - 16930: 0x4FB5, - 16931: 0x5BE2, - 16932: 0x6795, - 16933: 0x6C88, - 16934: 0x6D78, - 16935: 0x741B, - 16936: 0x7827, - 16937: 0x91DD, - 16938: 0x937C, - 16939: 0x87C4, - 16940: 0x79E4, - 16941: 0x7A31, - 16942: 0x5FEB, - 16943: 0x4ED6, - 16944: 0x54A4, - 16945: 0x553E, - 16946: 0x58AE, - 16947: 0x59A5, - 16948: 0x60F0, - 16949: 0x6253, - 16950: 0x62D6, - 16951: 0x6736, - 16952: 0x6955, - 16953: 0x8235, - 16954: 0x9640, - 16955: 0x99B1, - 16956: 0x99DD, - 16957: 0x502C, - 16958: 0x5353, - 16959: 0x5544, - 16960: 0x577C, - 16961: 0xFA01, - 16962: 0x6258, - 16963: 0xFA02, - 16964: 0x64E2, - 16965: 0x666B, - 16966: 0x67DD, - 16967: 0x6FC1, - 16968: 0x6FEF, - 16969: 0x7422, - 16970: 0x7438, - 16971: 0x8A17, - 16972: 0x9438, - 16973: 0x5451, - 16974: 0x5606, - 16975: 0x5766, - 16976: 0x5F48, - 16977: 0x619A, - 16978: 0x6B4E, - 16979: 0x7058, - 16980: 0x70AD, - 16981: 0x7DBB, - 16982: 0x8A95, - 16983: 0x596A, - 16984: 0x812B, - 16985: 0x63A2, - 16986: 0x7708, - 16987: 0x803D, - 16988: 0x8CAA, - 16989: 0x5854, - 16990: 0x642D, - 16991: 0x69BB, - 16992: 0x5B95, - 16993: 0x5E11, - 16994: 0x6E6F, - 16995: 0xFA03, - 16996: 0x8569, - 16997: 0x514C, - 16998: 0x53F0, - 16999: 0x592A, - 17000: 0x6020, - 17001: 0x614B, - 17002: 0x6B86, - 17003: 0x6C70, - 17004: 0x6CF0, - 17005: 0x7B1E, - 17006: 0x80CE, - 17007: 0x82D4, - 17008: 0x8DC6, - 17009: 0x90B0, - 17010: 0x98B1, - 17011: 0xFA04, - 17012: 0x64C7, - 17013: 0x6FA4, - 17014: 0x6491, - 17015: 0x6504, - 17016: 0x514E, - 17017: 0x5410, - 17018: 0x571F, - 17019: 0x8A0E, - 17020: 0x615F, - 17021: 0x6876, - 17022: 0xFA05, - 17023: 0x75DB, - 17024: 0x7B52, - 17025: 0x7D71, - 17026: 0x901A, - 17027: 0x5806, - 17028: 0x69CC, - 17029: 0x817F, - 17030: 0x892A, - 17031: 0x9000, - 17032: 0x9839, - 17033: 0x5078, - 17034: 0x5957, - 17035: 0x59AC, - 17036: 0x6295, - 17037: 0x900F, - 17038: 0x9B2A, - 17039: 0x615D, - 17040: 0x7279, - 17041: 0x95D6, - 17042: 0x5761, - 17043: 0x5A46, - 17044: 0x5DF4, - 17045: 0x628A, - 17046: 0x64AD, - 17047: 0x64FA, - 17048: 0x6777, - 17049: 0x6CE2, - 17050: 0x6D3E, - 17051: 0x722C, - 17052: 0x7436, - 17053: 0x7834, - 17054: 0x7F77, - 17055: 0x82AD, - 17056: 0x8DDB, - 17057: 0x9817, - 17058: 0x5224, - 17059: 0x5742, - 17060: 0x677F, - 17061: 0x7248, - 17062: 0x74E3, - 17063: 0x8CA9, - 17064: 0x8FA6, - 17065: 0x9211, - 17066: 0x962A, - 17067: 0x516B, - 17068: 0x53ED, - 17069: 0x634C, - 17070: 0x4F69, - 17071: 0x5504, - 17072: 0x6096, - 17073: 0x6557, - 17074: 0x6C9B, - 17075: 0x6D7F, - 17076: 0x724C, - 17077: 0x72FD, - 17078: 0x7A17, - 17079: 0x8987, - 17080: 0x8C9D, - 17081: 0x5F6D, - 17082: 0x6F8E, - 17083: 0x70F9, - 17084: 0x81A8, - 17085: 0x610E, - 17086: 0x4FBF, - 17087: 0x504F, - 17088: 0x6241, - 17089: 0x7247, - 17090: 0x7BC7, - 17091: 0x7DE8, - 17092: 0x7FE9, - 17093: 0x904D, - 17094: 0x97AD, - 17095: 0x9A19, - 17096: 0x8CB6, - 17097: 0x576A, - 17098: 0x5E73, - 17099: 0x67B0, - 17100: 0x840D, - 17101: 0x8A55, - 17102: 0x5420, - 17103: 0x5B16, - 17104: 0x5E63, - 17105: 0x5EE2, - 17106: 0x5F0A, - 17107: 0x6583, - 17108: 0x80BA, - 17109: 0x853D, - 17110: 0x9589, - 17111: 0x965B, - 17112: 0x4F48, - 17113: 0x5305, - 17114: 0x530D, - 17115: 0x530F, - 17116: 0x5486, - 17117: 0x54FA, - 17118: 0x5703, - 17119: 0x5E03, - 17120: 0x6016, - 17121: 0x629B, - 17122: 0x62B1, - 17123: 0x6355, - 17124: 0xFA06, - 17125: 0x6CE1, - 17126: 0x6D66, - 17127: 0x75B1, - 17128: 0x7832, - 17129: 0x80DE, - 17130: 0x812F, - 17131: 0x82DE, - 17132: 0x8461, - 17133: 0x84B2, - 17134: 0x888D, - 17135: 0x8912, - 17136: 0x900B, - 17137: 0x92EA, - 17138: 0x98FD, - 17139: 0x9B91, - 17140: 0x5E45, - 17141: 0x66B4, - 17142: 0x66DD, - 17143: 0x7011, - 17144: 0x7206, - 17145: 0xFA07, - 17146: 0x4FF5, - 17147: 0x527D, - 17148: 0x5F6A, - 17149: 0x6153, - 17150: 0x6753, - 17151: 0x6A19, - 17152: 0x6F02, - 17153: 0x74E2, - 17154: 0x7968, - 17155: 0x8868, - 17156: 0x8C79, - 17157: 0x98C7, - 17158: 0x98C4, - 17159: 0x9A43, - 17160: 0x54C1, - 17161: 0x7A1F, - 17162: 0x6953, - 17163: 0x8AF7, - 17164: 0x8C4A, - 17165: 0x98A8, - 17166: 0x99AE, - 17167: 0x5F7C, - 17168: 0x62AB, - 17169: 0x75B2, - 17170: 0x76AE, - 17171: 0x88AB, - 17172: 0x907F, - 17173: 0x9642, - 17174: 0x5339, - 17175: 0x5F3C, - 17176: 0x5FC5, - 17177: 0x6CCC, - 17178: 0x73CC, - 17179: 0x7562, - 17180: 0x758B, - 17181: 0x7B46, - 17182: 0x82FE, - 17183: 0x999D, - 17184: 0x4E4F, - 17185: 0x903C, - 17186: 0x4E0B, - 17187: 0x4F55, - 17188: 0x53A6, - 17189: 0x590F, - 17190: 0x5EC8, - 17191: 0x6630, - 17192: 0x6CB3, - 17193: 0x7455, - 17194: 0x8377, - 17195: 0x8766, - 17196: 0x8CC0, - 17197: 0x9050, - 17198: 0x971E, - 17199: 0x9C15, - 17200: 0x58D1, - 17201: 0x5B78, - 17202: 0x8650, - 17203: 0x8B14, - 17204: 0x9DB4, - 17205: 0x5BD2, - 17206: 0x6068, - 17207: 0x608D, - 17208: 0x65F1, - 17209: 0x6C57, - 17210: 0x6F22, - 17211: 0x6FA3, - 17212: 0x701A, - 17213: 0x7F55, - 17214: 0x7FF0, - 17215: 0x9591, - 17216: 0x9592, - 17217: 0x9650, - 17218: 0x97D3, - 17219: 0x5272, - 17220: 0x8F44, - 17221: 0x51FD, - 17222: 0x542B, - 17223: 0x54B8, - 17224: 0x5563, - 17225: 0x558A, - 17226: 0x6ABB, - 17227: 0x6DB5, - 17228: 0x7DD8, - 17229: 0x8266, - 17230: 0x929C, - 17231: 0x9677, - 17232: 0x9E79, - 17233: 0x5408, - 17234: 0x54C8, - 17235: 0x76D2, - 17236: 0x86E4, - 17237: 0x95A4, - 17238: 0x95D4, - 17239: 0x965C, - 17240: 0x4EA2, - 17241: 0x4F09, - 17242: 0x59EE, - 17243: 0x5AE6, - 17244: 0x5DF7, - 17245: 0x6052, - 17246: 0x6297, - 17247: 0x676D, - 17248: 0x6841, - 17249: 0x6C86, - 17250: 0x6E2F, - 17251: 0x7F38, - 17252: 0x809B, - 17253: 0x822A, - 17254: 0xFA08, - 17255: 0xFA09, - 17256: 0x9805, - 17257: 0x4EA5, - 17258: 0x5055, - 17259: 0x54B3, - 17260: 0x5793, - 17261: 0x595A, - 17262: 0x5B69, - 17263: 0x5BB3, - 17264: 0x61C8, - 17265: 0x6977, - 17266: 0x6D77, - 17267: 0x7023, - 17268: 0x87F9, - 17269: 0x89E3, - 17270: 0x8A72, - 17271: 0x8AE7, - 17272: 0x9082, - 17273: 0x99ED, - 17274: 0x9AB8, - 17275: 0x52BE, - 17276: 0x6838, - 17277: 0x5016, - 17278: 0x5E78, - 17279: 0x674F, - 17280: 0x8347, - 17281: 0x884C, - 17282: 0x4EAB, - 17283: 0x5411, - 17284: 0x56AE, - 17285: 0x73E6, - 17286: 0x9115, - 17287: 0x97FF, - 17288: 0x9909, - 17289: 0x9957, - 17290: 0x9999, - 17291: 0x5653, - 17292: 0x589F, - 17293: 0x865B, - 17294: 0x8A31, - 17295: 0x61B2, - 17296: 0x6AF6, - 17297: 0x737B, - 17298: 0x8ED2, - 17299: 0x6B47, - 17300: 0x96AA, - 17301: 0x9A57, - 17302: 0x5955, - 17303: 0x7200, - 17304: 0x8D6B, - 17305: 0x9769, - 17306: 0x4FD4, - 17307: 0x5CF4, - 17308: 0x5F26, - 17309: 0x61F8, - 17310: 0x665B, - 17311: 0x6CEB, - 17312: 0x70AB, - 17313: 0x7384, - 17314: 0x73B9, - 17315: 0x73FE, - 17316: 0x7729, - 17317: 0x774D, - 17318: 0x7D43, - 17319: 0x7D62, - 17320: 0x7E23, - 17321: 0x8237, - 17322: 0x8852, - 17323: 0xFA0A, - 17324: 0x8CE2, - 17325: 0x9249, - 17326: 0x986F, - 17327: 0x5B51, - 17328: 0x7A74, - 17329: 0x8840, - 17330: 0x9801, - 17331: 0x5ACC, - 17332: 0x4FE0, - 17333: 0x5354, - 17334: 0x593E, - 17335: 0x5CFD, - 17336: 0x633E, - 17337: 0x6D79, - 17338: 0x72F9, - 17339: 0x8105, - 17340: 0x8107, - 17341: 0x83A2, - 17342: 0x92CF, - 17343: 0x9830, - 17344: 0x4EA8, - 17345: 0x5144, - 17346: 0x5211, - 17347: 0x578B, - 17348: 0x5F62, - 17349: 0x6CC2, - 17350: 0x6ECE, - 17351: 0x7005, - 17352: 0x7050, - 17353: 0x70AF, - 17354: 0x7192, - 17355: 0x73E9, - 17356: 0x7469, - 17357: 0x834A, - 17358: 0x87A2, - 17359: 0x8861, - 17360: 0x9008, - 17361: 0x90A2, - 17362: 0x93A3, - 17363: 0x99A8, - 17364: 0x516E, - 17365: 0x5F57, - 17366: 0x60E0, - 17367: 0x6167, - 17368: 0x66B3, - 17369: 0x8559, - 17370: 0x8E4A, - 17371: 0x91AF, - 17372: 0x978B, - 17373: 0x4E4E, - 17374: 0x4E92, - 17375: 0x547C, - 17376: 0x58D5, - 17377: 0x58FA, - 17378: 0x597D, - 17379: 0x5CB5, - 17380: 0x5F27, - 17381: 0x6236, - 17382: 0x6248, - 17383: 0x660A, - 17384: 0x6667, - 17385: 0x6BEB, - 17386: 0x6D69, - 17387: 0x6DCF, - 17388: 0x6E56, - 17389: 0x6EF8, - 17390: 0x6F94, - 17391: 0x6FE0, - 17392: 0x6FE9, - 17393: 0x705D, - 17394: 0x72D0, - 17395: 0x7425, - 17396: 0x745A, - 17397: 0x74E0, - 17398: 0x7693, - 17399: 0x795C, - 17400: 0x7CCA, - 17401: 0x7E1E, - 17402: 0x80E1, - 17403: 0x82A6, - 17404: 0x846B, - 17405: 0x84BF, - 17406: 0x864E, - 17407: 0x865F, - 17408: 0x8774, - 17409: 0x8B77, - 17410: 0x8C6A, - 17411: 0x93AC, - 17412: 0x9800, - 17413: 0x9865, - 17414: 0x60D1, - 17415: 0x6216, - 17416: 0x9177, - 17417: 0x5A5A, - 17418: 0x660F, - 17419: 0x6DF7, - 17420: 0x6E3E, - 17421: 0x743F, - 17422: 0x9B42, - 17423: 0x5FFD, - 17424: 0x60DA, - 17425: 0x7B0F, - 17426: 0x54C4, - 17427: 0x5F18, - 17428: 0x6C5E, - 17429: 0x6CD3, - 17430: 0x6D2A, - 17431: 0x70D8, - 17432: 0x7D05, - 17433: 0x8679, - 17434: 0x8A0C, - 17435: 0x9D3B, - 17436: 0x5316, - 17437: 0x548C, - 17438: 0x5B05, - 17439: 0x6A3A, - 17440: 0x706B, - 17441: 0x7575, - 17442: 0x798D, - 17443: 0x79BE, - 17444: 0x82B1, - 17445: 0x83EF, - 17446: 0x8A71, - 17447: 0x8B41, - 17448: 0x8CA8, - 17449: 0x9774, - 17450: 0xFA0B, - 17451: 0x64F4, - 17452: 0x652B, - 17453: 0x78BA, - 17454: 0x78BB, - 17455: 0x7A6B, - 17456: 0x4E38, - 17457: 0x559A, - 17458: 0x5950, - 17459: 0x5BA6, - 17460: 0x5E7B, - 17461: 0x60A3, - 17462: 0x63DB, - 17463: 0x6B61, - 17464: 0x6665, - 17465: 0x6853, - 17466: 0x6E19, - 17467: 0x7165, - 17468: 0x74B0, - 17469: 0x7D08, - 17470: 0x9084, - 17471: 0x9A69, - 17472: 0x9C25, - 17473: 0x6D3B, - 17474: 0x6ED1, - 17475: 0x733E, - 17476: 0x8C41, - 17477: 0x95CA, - 17478: 0x51F0, - 17479: 0x5E4C, - 17480: 0x5FA8, - 17481: 0x604D, - 17482: 0x60F6, - 17483: 0x6130, - 17484: 0x614C, - 17485: 0x6643, - 17486: 0x6644, - 17487: 0x69A5, - 17488: 0x6CC1, - 17489: 0x6E5F, - 17490: 0x6EC9, - 17491: 0x6F62, - 17492: 0x714C, - 17493: 0x749C, - 17494: 0x7687, - 17495: 0x7BC1, - 17496: 0x7C27, - 17497: 0x8352, - 17498: 0x8757, - 17499: 0x9051, - 17500: 0x968D, - 17501: 0x9EC3, - 17502: 0x532F, - 17503: 0x56DE, - 17504: 0x5EFB, - 17505: 0x5F8A, - 17506: 0x6062, - 17507: 0x6094, - 17508: 0x61F7, - 17509: 0x6666, - 17510: 0x6703, - 17511: 0x6A9C, - 17512: 0x6DEE, - 17513: 0x6FAE, - 17514: 0x7070, - 17515: 0x736A, - 17516: 0x7E6A, - 17517: 0x81BE, - 17518: 0x8334, - 17519: 0x86D4, - 17520: 0x8AA8, - 17521: 0x8CC4, - 17522: 0x5283, - 17523: 0x7372, - 17524: 0x5B96, - 17525: 0x6A6B, - 17526: 0x9404, - 17527: 0x54EE, - 17528: 0x5686, - 17529: 0x5B5D, - 17530: 0x6548, - 17531: 0x6585, - 17532: 0x66C9, - 17533: 0x689F, - 17534: 0x6D8D, - 17535: 0x6DC6, - 17536: 0x723B, - 17537: 0x80B4, - 17538: 0x9175, - 17539: 0x9A4D, - 17540: 0x4FAF, - 17541: 0x5019, - 17542: 0x539A, - 17543: 0x540E, - 17544: 0x543C, - 17545: 0x5589, - 17546: 0x55C5, - 17547: 0x5E3F, - 17548: 0x5F8C, - 17549: 0x673D, - 17550: 0x7166, - 17551: 0x73DD, - 17552: 0x9005, - 17553: 0x52DB, - 17554: 0x52F3, - 17555: 0x5864, - 17556: 0x58CE, - 17557: 0x7104, - 17558: 0x718F, - 17559: 0x71FB, - 17560: 0x85B0, - 17561: 0x8A13, - 17562: 0x6688, - 17563: 0x85A8, - 17564: 0x55A7, - 17565: 0x6684, - 17566: 0x714A, - 17567: 0x8431, - 17568: 0x5349, - 17569: 0x5599, - 17570: 0x6BC1, - 17571: 0x5F59, - 17572: 0x5FBD, - 17573: 0x63EE, - 17574: 0x6689, - 17575: 0x7147, - 17576: 0x8AF1, - 17577: 0x8F1D, - 17578: 0x9EBE, - 17579: 0x4F11, - 17580: 0x643A, - 17581: 0x70CB, - 17582: 0x7566, - 17583: 0x8667, - 17584: 0x6064, - 17585: 0x8B4E, - 17586: 0x9DF8, - 17587: 0x5147, - 17588: 0x51F6, - 17589: 0x5308, - 17590: 0x6D36, - 17591: 0x80F8, - 17592: 0x9ED1, - 17593: 0x6615, - 17594: 0x6B23, - 17595: 0x7098, - 17596: 0x75D5, - 17597: 0x5403, - 17598: 0x5C79, - 17599: 0x7D07, - 17600: 0x8A16, - 17601: 0x6B20, - 17602: 0x6B3D, - 17603: 0x6B46, - 17604: 0x5438, - 17605: 0x6070, - 17606: 0x6D3D, - 17607: 0x7FD5, - 17608: 0x8208, - 17609: 0x50D6, - 17610: 0x51DE, - 17611: 0x559C, - 17612: 0x566B, - 17613: 0x56CD, - 17614: 0x59EC, - 17615: 0x5B09, - 17616: 0x5E0C, - 17617: 0x6199, - 17618: 0x6198, - 17619: 0x6231, - 17620: 0x665E, - 17621: 0x66E6, - 17622: 0x7199, - 17623: 0x71B9, - 17624: 0x71BA, - 17625: 0x72A7, - 17626: 0x79A7, - 17627: 0x7A00, - 17628: 0x7FB2, - 17629: 0x8A70, -} - -const numEncodeTables = 7 - -// encodeX are the encoding tables from Unicode to EUC-KR code, -// sorted by decreasing length. -// encode0: 20893 entries for runes in [19968, 40861). -// encode1: 11172 entries for runes in [44032, 55204). -// encode2: 1625 entries for runes in [ 8213, 9838). -// encode3: 990 entries for runes in [12288, 13278). -// encode4: 945 entries for runes in [ 161, 1106). -// encode5: 268 entries for runes in [63744, 64012). -// encode6: 230 entries for runes in [65281, 65511). - -const encode0Low, encode0High = 19968, 40861 - -var encode0 = [...]uint16{ - 19968 - 19968: 0xECE9, - 19969 - 19968: 0xEFCB, - 19971 - 19968: 0xF6D2, - 19975 - 19968: 0xD8B2, - 19976 - 19968: 0xEDDB, - 19977 - 19968: 0xDFB2, - 19978 - 19968: 0xDFBE, - 19979 - 19968: 0xF9BB, - 19981 - 19968: 0xDCF4, - 19985 - 19968: 0xF5E4, - 19988 - 19968: 0xF3A6, - 19989 - 19968: 0xDDE0, - 19990 - 19968: 0xE1A6, - 19992 - 19968: 0xCEF8, - 19993 - 19968: 0xDCB0, - 19998 - 19968: 0xE3AA, - 20013 - 19968: 0xF1E9, - 20018 - 19968: 0xCDFA, - 20024 - 19968: 0xFCAF, - 20025 - 19968: 0xD3A1, - 20027 - 19968: 0xF1AB, - 20034 - 19968: 0xE7D1, - 20035 - 19968: 0xD2AC, - 20037 - 19968: 0xCEF9, - 20043 - 19968: 0xF1FD, - 20045 - 19968: 0xDEBF, - 20046 - 19968: 0xFBBA, - 20047 - 19968: 0xF9B9, - 20054 - 19968: 0xCED2, - 20056 - 19968: 0xE3AB, - 20057 - 19968: 0xEBE0, - 20061 - 19968: 0xCEFA, - 20062 - 19968: 0xCBF7, - 20063 - 19968: 0xE5A5, - 20075 - 19968: 0xCAE1, - 20077 - 19968: 0xD4CC, - 20083 - 19968: 0xEAE1, - 20086 - 19968: 0xDCE3, - 20087 - 19968: 0xDFAD, - 20094 - 19968: 0xCBEB, - 20098 - 19968: 0xD5AF, - 20102 - 19968: 0xD6F5, - 20104 - 19968: 0xE5F8, - 20107 - 19968: 0xDEC0, - 20108 - 19968: 0xECA3, - 20110 - 19968: 0xE9CD, - 20112 - 19968: 0xEAA7, - 20113 - 19968: 0xE9F6, - 20114 - 19968: 0xFBBB, - 20116 - 19968: 0xE7E9, - 20117 - 19968: 0xEFCC, - 20120 - 19968: 0xD0E6, - 20123 - 19968: 0xDEC1, - 20126 - 19968: 0xE4AC, - 20129 - 19968: 0xD8CC, - 20130 - 19968: 0xF9F1, - 20132 - 19968: 0xCEDF, - 20133 - 19968: 0xFAA4, - 20134 - 19968: 0xE6B2, - 20136 - 19968: 0xFAFB, - 20139 - 19968: 0xFABD, - 20140 - 19968: 0xCCC8, - 20141 - 19968: 0xEFCD, - 20142 - 19968: 0xD5D5, - 20150 - 19968: 0xD3A2, - 20154 - 19968: 0xECD1, - 20160 - 19968: 0xE4A7, - 20161 - 19968: 0xECD2, - 20164 - 19968: 0xF6B1, - 20167 - 19968: 0xCEFB, - 20170 - 19968: 0xD0D1, - 20171 - 19968: 0xCBBF, - 20173 - 19968: 0xEDA4, - 20180 - 19968: 0xEDA8, - 20181 - 19968: 0xDEC2, - 20182 - 19968: 0xF6E2, - 20183 - 19968: 0xEDDC, - 20184 - 19968: 0xDCF5, - 20185 - 19968: 0xE0B9, - 20189 - 19968: 0xD4CE, - 20191 - 19968: 0xF4B5, - 20195 - 19968: 0xD3DB, - 20196 - 19968: 0xD6B5, - 20197 - 19968: 0xECA4, - 20208 - 19968: 0xE4E6, - 20210 - 19968: 0xF1EA, - 20214 - 19968: 0xCBEC, - 20215 - 19968: 0xCBC0, - 20219 - 19968: 0xECF2, - 20225 - 19968: 0xD0EA, - 20233 - 19968: 0xF9F2, - 20234 - 19968: 0xECA5, - 20235 - 19968: 0xD0DF, - 20237 - 19968: 0xE7EA, - 20238 - 19968: 0xD0EB, - 20239 - 19968: 0xDCD1, - 20240 - 19968: 0xDBE9, - 20241 - 19968: 0xFDCC, - 20271 - 19968: 0xDBD7, - 20276 - 19968: 0xDAE1, - 20278 - 19968: 0xD6B6, - 20280 - 19968: 0xE3DF, - 20282 - 19968: 0xDEC3, - 20284 - 19968: 0xDEC4, - 20285 - 19968: 0xCAA1, - 20291 - 19968: 0xEEEC, - 20294 - 19968: 0xD3A3, - 20295 - 19968: 0xEEB7, - 20296 - 19968: 0xF8CF, - 20301 - 19968: 0xEAC8, - 20302 - 19968: 0xEEB8, - 20303 - 19968: 0xF1AC, - 20304 - 19968: 0xF1A5, - 20305 - 19968: 0xE9CE, - 20309 - 19968: 0xF9BC, - 20313 - 19968: 0xE5F9, - 20314 - 19968: 0xECEA, - 20315 - 19968: 0xDDD6, - 20316 - 19968: 0xEDC2, - 20329 - 19968: 0xF8A5, - 20335 - 19968: 0xE5BA, - 20336 - 19968: 0xDBD8, - 20339 - 19968: 0xCAA2, - 20342 - 19968: 0xD1CD, - 20346 - 19968: 0xEEED, - 20350 - 19968: 0xECEB, - 20351 - 19968: 0xDEC5, - 20353 - 19968: 0xE3E0, - 20355 - 19968: 0xCAC9, - 20356 - 19968: 0xF2E9, - 20358 - 19968: 0xD5CE, - 20360 - 19968: 0xF6B6, - 20362 - 19968: 0xCEC2, - 20363 - 19968: 0xD6C7, - 20365 - 19968: 0xE3B4, - 20367 - 19968: 0xF1AD, - 20369 - 19968: 0xEAE2, - 20374 - 19968: 0xD7C2, - 20376 - 19968: 0xF3A7, - 20379 - 19968: 0xCDEA, - 20381 - 19968: 0xEBEE, - 20398 - 19968: 0xD9B2, - 20399 - 19968: 0xFDA5, - 20405 - 19968: 0xF6D5, - 20406 - 19968: 0xD5E2, - 20415 - 19968: 0xF8B5, - 20418 - 19968: 0xCCF5, - 20419 - 19968: 0xF5B5, - 20420 - 19968: 0xE4AD, - 20425 - 19968: 0xE7EB, - 20426 - 19968: 0xF1D5, - 20430 - 19968: 0xF0BB, - 20433 - 19968: 0xE9B5, - 20435 - 19968: 0xCCC9, - 20436 - 19968: 0xFAD5, - 20439 - 19968: 0xE1D4, - 20442 - 19968: 0xD7D6, - 20445 - 19968: 0xDCC1, - 20447 - 19968: 0xDEC6, - 20448 - 19968: 0xFAEF, - 20449 - 19968: 0xE3E1, - 20462 - 19968: 0xE1F3, - 20463 - 19968: 0xDCF6, - 20465 - 19968: 0xCEFC, - 20467 - 19968: 0xDBC4, - 20469 - 19968: 0xF8F1, - 20472 - 19968: 0xDCE4, - 20474 - 19968: 0xE5EF, - 20482 - 19968: 0xDCB1, - 20486 - 19968: 0xD5D6, - 20489 - 19968: 0xF3DA, - 20491 - 19968: 0xCBC1, - 20493 - 19968: 0xDBC3, - 20497 - 19968: 0xD9FA, - 20498 - 19968: 0xD3EE, - 20502 - 19968: 0xFAB8, - 20505 - 19968: 0xFDA6, - 20506 - 19968: 0xEBEF, - 20508 - 19968: 0xF4A6, - 20510 - 19968: 0xCCCA, - 20511 - 19968: 0xF3A8, - 20513 - 19968: 0xF3DB, - 20515 - 19968: 0xDBA7, - 20516 - 19968: 0xF6B7, - 20518 - 19968: 0xCFE6, - 20519 - 19968: 0xF0F2, - 20520 - 19968: 0xCBDA, - 20522 - 19968: 0xE7D2, - 20523 - 19968: 0xD7C3, - 20524 - 19968: 0xF6F0, - 20525 - 19968: 0xE8DE, - 20539 - 19968: 0xE5A6, - 20547 - 19968: 0xE5E7, - 20551 - 19968: 0xCAA3, - 20552 - 19968: 0xCCA7, - 20553 - 19968: 0xEAC9, - 20559 - 19968: 0xF8B6, - 20565 - 19968: 0xFAA5, - 20570 - 19968: 0xF1AE, - 20572 - 19968: 0xEFCE, - 20581 - 19968: 0xCBED, - 20596 - 19968: 0xF6B0, - 20597 - 19968: 0xEFCF, - 20598 - 19968: 0xE9CF, - 20600 - 19968: 0xF7DE, - 20608 - 19968: 0xCED3, - 20613 - 19968: 0xDCF7, - 20621 - 19968: 0xDBA8, - 20625 - 19968: 0xCBF8, - 20632 - 19968: 0xDFA1, - 20633 - 19968: 0xDDE1, - 20652 - 19968: 0xF5CA, - 20653 - 19968: 0xE9B6, - 20658 - 19968: 0xE7EC, - 20659 - 19968: 0xEEEE, - 20661 - 19968: 0xF3F0, - 20663 - 19968: 0xDFBF, - 20670 - 19968: 0xCCCB, - 20677 - 19968: 0xD0C1, - 20681 - 19968: 0xF4D2, - 20682 - 19968: 0xE0BA, - 20687 - 19968: 0xDFC0, - 20689 - 19968: 0xCEE0, - 20693 - 19968: 0xDCD2, - 20694 - 19968: 0xFDEA, - 20698 - 19968: 0xD6F6, - 20702 - 19968: 0xEACA, - 20709 - 19968: 0xE8E9, - 20711 - 19968: 0xE3AC, - 20717 - 19968: 0xF3D0, - 20729 - 19968: 0xCAA4, - 20731 - 19968: 0xDBF8, - 20735 - 19968: 0xDEC7, - 20736 - 19968: 0xEBF0, - 20737 - 19968: 0xF1D6, - 20740 - 19968: 0xE5E2, - 20742 - 19968: 0xCCCC, - 20745 - 19968: 0xCBFB, - 20754 - 19968: 0xEAE3, - 20767 - 19968: 0xDFC1, - 20769 - 19968: 0xD6ED, - 20778 - 19968: 0xE9D0, - 20786 - 19968: 0xEEB9, - 20791 - 19968: 0xD5E3, - 20794 - 19968: 0xD1D3, - 20796 - 19968: 0xE5F0, - 20800 - 19968: 0xE8B4, - 20801 - 19968: 0xEBC3, - 20803 - 19968: 0xEAAA, - 20804 - 19968: 0xFAFC, - 20805 - 19968: 0xF5F6, - 20806 - 19968: 0xF0BC, - 20807 - 19968: 0xFDD4, - 20808 - 19968: 0xE0BB, - 20809 - 19968: 0xCEC3, - 20811 - 19968: 0xD0BA, - 20812 - 19968: 0xF7BA, - 20813 - 19968: 0xD8F3, - 20814 - 19968: 0xF7CD, - 20818 - 19968: 0xE4AE, - 20828 - 19968: 0xD4DF, - 20834 - 19968: 0xD0E7, - 20837 - 19968: 0xECFD, - 20839 - 19968: 0xD2AE, - 20840 - 19968: 0xEEEF, - 20841 - 19968: 0xD5D7, - 20842 - 19968: 0xEAE4, - 20843 - 19968: 0xF8A2, - 20844 - 19968: 0xCDEB, - 20845 - 19968: 0xD7BF, - 20846 - 19968: 0xFBB1, - 20849 - 19968: 0xCDEC, - 20853 - 19968: 0xDCB2, - 20854 - 19968: 0xD0EC, - 20855 - 19968: 0xCEFD, - 20856 - 19968: 0xEEF0, - 20860 - 19968: 0xCCC2, - 20864 - 19968: 0xD0ED, - 20870 - 19968: 0xE5F7, - 20874 - 19968: 0xF3FC, - 20877 - 19968: 0xEEA2, - 20882 - 19968: 0xD9B3, - 20885 - 19968: 0xD8F4, - 20887 - 19968: 0xE9B7, - 20896 - 19968: 0xCEAE, - 20901 - 19968: 0xD9A2, - 20906 - 19968: 0xD8F1, - 20908 - 19968: 0xD4CF, - 20918 - 19968: 0xE5A7, - 20919 - 19968: 0xD5D2, - 20925 - 19968: 0xD6A9, - 20932 - 19968: 0xF4A2, - 20934 - 19968: 0xF1D7, - 20937 - 19968: 0xD5D8, - 20939 - 19968: 0xF0BD, - 20940 - 19968: 0xD7D0, - 20941 - 19968: 0xD4D0, - 20956 - 19968: 0xD7CF, - 20957 - 19968: 0xEBEA, - 20958 - 19968: 0xFDEB, - 20961 - 19968: 0xDBED, - 20976 - 19968: 0xFCC5, - 20977 - 19968: 0xCBC2, - 20982 - 19968: 0xFDD5, - 20984 - 19968: 0xF4C8, - 20985 - 19968: 0xE8EA, - 20986 - 19968: 0xF5F3, - 20989 - 19968: 0xF9DE, - 20992 - 19968: 0xD3EF, - 20995 - 19968: 0xECD3, - 20998 - 19968: 0xDDC2, - 20999 - 19968: 0xEFB7, - 21000 - 19968: 0xE7D4, - 21002 - 19968: 0xCACA, - 21006 - 19968: 0xD9FB, - 21009 - 19968: 0xFAFD, - 21015 - 19968: 0xD6AA, - 21021 - 19968: 0xF4F8, - 21028 - 19968: 0xF7F7, - 21029 - 19968: 0xDCAC, - 21033 - 19968: 0xD7D7, - 21034 - 19968: 0xDFA2, - 21038 - 19968: 0xCEBE, - 21040 - 19968: 0xD3F0, - 21046 - 19968: 0xF0A4, - 21047 - 19968: 0xE1EC, - 21048 - 19968: 0xCFE7, - 21049 - 19968: 0xF3CB, - 21050 - 19968: 0xEDA9, - 21051 - 19968: 0xCABE, - 21059 - 19968: 0xF4EF, - 21063 - 19968: 0xF6CE, - 21066 - 19968: 0xDEFB, - 21067 - 19968: 0xD0BB, - 21068 - 19968: 0xD5B7, - 21069 - 19968: 0xEEF1, - 21076 - 19968: 0xF4A8, - 21078 - 19968: 0xDCF8, - 21083 - 19968: 0xCBA7, - 21085 - 19968: 0xDACE, - 21089 - 19968: 0xE0E6, - 21097 - 19968: 0xEDA5, - 21098 - 19968: 0xEEF2, - 21103 - 19968: 0xDCF9, - 21106 - 19968: 0xF9DC, - 21109 - 19968: 0xF3DC, - 21117 - 19968: 0xF8F2, - 21119 - 19968: 0xF4F9, - 21123 - 19968: 0xFCF1, - 21127 - 19968: 0xD0BC, - 21128 - 19968: 0xDBF9, - 21129 - 19968: 0xD7B1, - 21133 - 19968: 0xCBFC, - 21137 - 19968: 0xF0A5, - 21138 - 19968: 0xCBFD, - 21147 - 19968: 0xD5F4, - 21151 - 19968: 0xCDED, - 21152 - 19968: 0xCAA5, - 21155 - 19968: 0xD6AB, - 21156 - 19968: 0xD0C2, - 21161 - 19968: 0xF0BE, - 21162 - 19968: 0xD2BD, - 21163 - 19968: 0xCCA4, - 21182 - 19968: 0xFAB6, - 21185 - 19968: 0xCCCD, - 21187 - 19968: 0xDAFA, - 21189 - 19968: 0xF6CF, - 21191 - 19968: 0xE9B8, - 21193 - 19968: 0xD8F5, - 21197 - 19968: 0xCCCE, - 21202 - 19968: 0xD7CD, - 21205 - 19968: 0xD4D1, - 21206 - 19968: 0xE9ED, - 21208 - 19968: 0xCAEB, - 21209 - 19968: 0xD9E2, - 21211 - 19968: 0xFDB2, - 21213 - 19968: 0xE3AD, - 21214 - 19968: 0xD6CC, - 21215 - 19968: 0xD9B4, - 21218 - 19968: 0xE1A7, - 21219 - 19968: 0xEED3, - 21220 - 19968: 0xD0C3, - 21235 - 19968: 0xFDB3, - 21237 - 19968: 0xD5E4, - 21240 - 19968: 0xCFE8, - 21242 - 19968: 0xEDC3, - 21243 - 19968: 0xD0B2, - 21246 - 19968: 0xCEFE, - 21247 - 19968: 0xDAA8, - 21253 - 19968: 0xF8D0, - 21256 - 19968: 0xFDD6, - 21261 - 19968: 0xF8D1, - 21263 - 19968: 0xF8D2, - 21264 - 19968: 0xDCD3, - 21269 - 19968: 0xDDE2, - 21270 - 19968: 0xFBF9, - 21271 - 19968: 0xDDC1, - 21273 - 19968: 0xE3B5, - 21280 - 19968: 0xEDDD, - 21281 - 19968: 0xCEC4, - 21283 - 19968: 0xCBA1, - 21290 - 19968: 0xDDE3, - 21295 - 19968: 0xFCDD, - 21305 - 19968: 0xF9AF, - 21311 - 19968: 0xD2FB, - 21312 - 19968: 0xCFA1, - 21313 - 19968: 0xE4A8, - 21315 - 19968: 0xF4B6, - 21316 - 19968: 0xECFE, - 21319 - 19968: 0xE3AE, - 21320 - 19968: 0xE7ED, - 21321 - 19968: 0xFDC1, - 21322 - 19968: 0xDAE2, - 21325 - 19968: 0xD8B3, - 21329 - 19968: 0xDDE4, - 21330 - 19968: 0xF0EF, - 21331 - 19968: 0xF6F1, - 21332 - 19968: 0xFAF0, - 21335 - 19968: 0xD1F5, - 21338 - 19968: 0xDACF, - 21340 - 19968: 0xDCD4, - 21342 - 19968: 0xDCA6, - 21344 - 19968: 0xEFBF, - 21350 - 19968: 0xCECF, - 21352 - 19968: 0xE0D9, - 21359 - 19968: 0xD9D6, - 21360 - 19968: 0xECD4, - 21361 - 19968: 0xEACB, - 21364 - 19968: 0xCABF, - 21365 - 19968: 0xD5B0, - 21367 - 19968: 0xCFE9, - 21373 - 19968: 0xF1ED, - 21375 - 19968: 0xCCCF, - 21380 - 19968: 0xE4F8, - 21395 - 19968: 0xE4ED, - 21400 - 19968: 0xD7D8, - 21402 - 19968: 0xFDA7, - 21407 - 19968: 0xEAAB, - 21408 - 19968: 0xF6B2, - 21413 - 19968: 0xCFF0, - 21414 - 19968: 0xF9BD, - 21421 - 19968: 0xE6F4, - 21435 - 19968: 0xCBDB, - 21443 - 19968: 0xF3D1, - 21448 - 19968: 0xE9D1, - 21449 - 19968: 0xF3A9, - 21450 - 19968: 0xD0E0, - 21451 - 19968: 0xE9D2, - 21453 - 19968: 0xDAE3, - 21460 - 19968: 0xE2D2, - 21462 - 19968: 0xF6A2, - 21463 - 19968: 0xE1F4, - 21467 - 19968: 0xDAE4, - 21473 - 19968: 0xE7D5, - 21474 - 19968: 0xF5BF, - 21475 - 19968: 0xCFA2, - 21476 - 19968: 0xCDAF, - 21477 - 19968: 0xCFA3, - 21481 - 19968: 0xCDB0, - 21482 - 19968: 0xF1FE, - 21483 - 19968: 0xD0A3, - 21484 - 19968: 0xE1AF, - 21485 - 19968: 0xF8A3, - 21487 - 19968: 0xCAA6, - 21488 - 19968: 0xF7BB, - 21489 - 19968: 0xF2EA, - 21490 - 19968: 0xDEC8, - 21491 - 19968: 0xE9D3, - 21496 - 19968: 0xDEC9, - 21507 - 19968: 0xFDDE, - 21508 - 19968: 0xCAC0, - 21512 - 19968: 0xF9EA, - 21513 - 19968: 0xD1CE, - 21514 - 19968: 0xEED4, - 21516 - 19968: 0xD4D2, - 21517 - 19968: 0xD9A3, - 21518 - 19968: 0xFDA8, - 21519 - 19968: 0xD7D9, - 21520 - 19968: 0xF7CE, - 21521 - 19968: 0xFABE, - 21531 - 19968: 0xCFD6, - 21533 - 19968: 0xD7F0, - 21535 - 19968: 0xEBE1, - 21536 - 19968: 0xF8C5, - 21542 - 19968: 0xDCFA, - 21545 - 19968: 0xDDC3, - 21547 - 19968: 0xF9DF, - 21555 - 19968: 0xE7EF, - 21560 - 19968: 0xFDE5, - 21561 - 19968: 0xF6A3, - 21563 - 19968: 0xD9FC, - 21564 - 19968: 0xFDA9, - 21566 - 19968: 0xE7EE, - 21570 - 19968: 0xD5E5, - 21576 - 19968: 0xEFD0, - 21578 - 19968: 0xCDB1, - 21585 - 19968: 0xF7A2, - 21608 - 19968: 0xF1B2, - 21610 - 19968: 0xF1B1, - 21617 - 19968: 0xCDB2, - 21619 - 19968: 0xDAAB, - 21621 - 19968: 0xCAA7, - 21627 - 19968: 0xE3E2, - 21628 - 19968: 0xFBBC, - 21629 - 19968: 0xD9A4, - 21632 - 19968: 0xEEBA, - 21638 - 19968: 0xF8D3, - 21644 - 19968: 0xFBFA, - 21646 - 19968: 0xCFA4, - 21648 - 19968: 0xDCFB, - 21668 - 19968: 0xF6E3, - 21672 - 19968: 0xEDAA, - 21675 - 19968: 0xF2A1, - 21676 - 19968: 0xCEE1, - 21683 - 19968: 0xFAA6, - 21688 - 19968: 0xF9E0, - 21693 - 19968: 0xECD6, - 21696 - 19968: 0xE4EE, - 21697 - 19968: 0xF9A1, - 21700 - 19968: 0xFBEF, - 21704 - 19968: 0xF9EB, - 21705 - 19968: 0xEEA3, - 21729 - 19968: 0xEAAC, - 21733 - 19968: 0xCAA8, - 21736 - 19968: 0xF4FA, - 21741 - 19968: 0xCDD6, - 21742 - 19968: 0xFCF6, - 21746 - 19968: 0xF4C9, - 21754 - 19968: 0xF8D4, - 21764 - 19968: 0xF8A6, - 21766 - 19968: 0xDECA, - 21767 - 19968: 0xF2C6, - 21774 - 19968: 0xD7DA, - 21776 - 19968: 0xD3D0, - 21788 - 19968: 0xD8C5, - 21807 - 19968: 0xEAE6, - 21809 - 19968: 0xF3DD, - 21813 - 19968: 0xE4DA, - 21822 - 19968: 0xF6E4, - 21828 - 19968: 0xF6F2, - 21830 - 19968: 0xDFC2, - 21839 - 19968: 0xD9FD, - 21843 - 19968: 0xCCF6, - 21846 - 19968: 0xD3BA, - 21854 - 19968: 0xE4AF, - 21859 - 19968: 0xF9E1, - 21884 - 19968: 0xF0A6, - 21888 - 19968: 0xCBD3, - 21892 - 19968: 0xE0BC, - 21894 - 19968: 0xF4CA, - 21895 - 19968: 0xD4FA, - 21897 - 19968: 0xFDAA, - 21898 - 19968: 0xF9E2, - 21912 - 19968: 0xF4B7, - 21913 - 19968: 0xFDC2, - 21914 - 19968: 0xFCB0, - 21916 - 19968: 0xFDEC, - 21917 - 19968: 0xCAE2, - 21927 - 19968: 0xFDBD, - 21929 - 19968: 0xEAE7, - 21930 - 19968: 0xDFC3, - 21931 - 19968: 0xD1D2, - 21932 - 19968: 0xCEE2, - 21934 - 19968: 0xD3A4, - 21957 - 19968: 0xFDAB, - 21959 - 19968: 0xDFE0, - 21972 - 19968: 0xF2C7, - 21978 - 19968: 0xE7F0, - 21980 - 19968: 0xD0EE, - 21983 - 19968: 0xF3AA, - 21987 - 19968: 0xDECB, - 21988 - 19968: 0xF6B8, - 22013 - 19968: 0xE1F5, - 22014 - 19968: 0xF1B3, - 22022 - 19968: 0xF7A3, - 22025 - 19968: 0xCAA9, - 22036 - 19968: 0xCFA5, - 22039 - 19968: 0xDFC4, - 22063 - 19968: 0xE1B0, - 22066 - 19968: 0xF0BF, - 22068 - 19968: 0xF6A4, - 22070 - 19968: 0xE3B6, - 22099 - 19968: 0xFAC6, - 22120 - 19968: 0xD0EF, - 22123 - 19968: 0xFDED, - 22132 - 19968: 0xDDC4, - 22150 - 19968: 0xFCF7, - 22181 - 19968: 0xE6BF, - 22188 - 19968: 0xDEAD, - 22190 - 19968: 0xFABF, - 22196 - 19968: 0xE5F1, - 22204 - 19968: 0xEDC4, - 22218 - 19968: 0xD2A5, - 22221 - 19968: 0xFDEE, - 22225 - 19968: 0xF5B6, - 22234 - 19968: 0xE1F6, - 22235 - 19968: 0xDECC, - 22238 - 19968: 0xFCDE, - 22240 - 19968: 0xECD7, - 22256 - 19968: 0xCDDD, - 22265 - 19968: 0xD6B7, - 22266 - 19968: 0xCDB3, - 22275 - 19968: 0xF8D5, - 22276 - 19968: 0xE5D8, - 22280 - 19968: 0xCFEA, - 22283 - 19968: 0xCFD0, - 22285 - 19968: 0xEACC, - 22290 - 19968: 0xEAAE, - 22291 - 19968: 0xEAAD, - 22294 - 19968: 0xD3F1, - 22296 - 19968: 0xD3A5, - 22303 - 19968: 0xF7CF, - 22312 - 19968: 0xEEA4, - 22317 - 19968: 0xD0A4, - 22320 - 19968: 0xF2A2, - 22331 - 19968: 0xD0F0, - 22336 - 19968: 0xF2A3, - 22338 - 19968: 0xF7F8, - 22343 - 19968: 0xD0B3, - 22346 - 19968: 0xDBA9, - 22349 - 19968: 0xD3BB, - 22350 - 19968: 0xCAEC, - 22352 - 19968: 0xF1A6, - 22353 - 19968: 0xCBD5, - 22369 - 19968: 0xF7E7, - 22372 - 19968: 0xCDDE, - 22374 - 19968: 0xF7A4, - 22378 - 19968: 0xF8C0, - 22382 - 19968: 0xD3DD, - 22384 - 19968: 0xCCD0, - 22389 - 19968: 0xCFA6, - 22396 - 19968: 0xF6F3, - 22402 - 19968: 0xE1F7, - 22408 - 19968: 0xD3DC, - 22411 - 19968: 0xFAFE, - 22419 - 19968: 0xFAA7, - 22432 - 19968: 0xEBD9, - 22434 - 19968: 0xCFA7, - 22435 - 19968: 0xEAAF, - 22467 - 19968: 0xE4EF, - 22471 - 19968: 0xE9B9, - 22472 - 19968: 0xF1D8, - 22475 - 19968: 0xD8D8, - 22478 - 19968: 0xE0F2, - 22495 - 19968: 0xE6B4, - 22496 - 19968: 0xDCFC, - 22512 - 19968: 0xF3F1, - 22516 - 19968: 0xE3D0, - 22519 - 19968: 0xF2FB, - 22521 - 19968: 0xDBC6, - 22522 - 19968: 0xD0F1, - 22524 - 19968: 0xD0F2, - 22528 - 19968: 0xCFDC, - 22530 - 19968: 0xD3D1, - 22533 - 19968: 0xCCB1, - 22534 - 19968: 0xF7D8, - 22536 - 19968: 0xCBA8, - 22537 - 19968: 0xEBBC, - 22538 - 19968: 0xE4BE, - 22558 - 19968: 0xF4DC, - 22561 - 19968: 0xDCC2, - 22564 - 19968: 0xF0A7, - 22567 - 19968: 0xE6C0, - 22570 - 19968: 0xCAED, - 22575 - 19968: 0xE8EB, - 22576 - 19968: 0xE5E8, - 22577 - 19968: 0xDCC3, - 22580 - 19968: 0xEDDE, - 22581 - 19968: 0xD3F2, - 22586 - 19968: 0xCCF7, - 22602 - 19968: 0xCED4, - 22603 - 19968: 0xE7AB, - 22607 - 19968: 0xCBC3, - 22609 - 19968: 0xE1B1, - 22612 - 19968: 0xF7B2, - 22615 - 19968: 0xD3F3, - 22616 - 19968: 0xD3D2, - 22618 - 19968: 0xF5C0, - 22622 - 19968: 0xDFDD, - 22625 - 19968: 0xEEF3, - 22626 - 19968: 0xE7F1, - 22628 - 19968: 0xFDB4, - 22645 - 19968: 0xF2C8, - 22649 - 19968: 0xF3D2, - 22652 - 19968: 0xEEF4, - 22654 - 19968: 0xE2D3, - 22659 - 19968: 0xCCD1, - 22661 - 19968: 0xDFEA, - 22665 - 19968: 0xE9BA, - 22675 - 19968: 0xD9D7, - 22684 - 19968: 0xF5CD, - 22686 - 19968: 0xF1F2, - 22687 - 19968: 0xFAC7, - 22696 - 19968: 0xD9F8, - 22697 - 19968: 0xD4C2, - 22702 - 19968: 0xF6E5, - 22707 - 19968: 0xDDC5, - 22714 - 19968: 0xE7F2, - 22715 - 19968: 0xEDDF, - 22718 - 19968: 0xCACB, - 22721 - 19968: 0xDBFA, - 22725 - 19968: 0xE8B5, - 22727 - 19968: 0xD3A6, - 22734 - 19968: 0xFDB5, - 22737 - 19968: 0xF9C9, - 22739 - 19968: 0xE4E2, - 22741 - 19968: 0xFBBD, - 22744 - 19968: 0xD7A4, - 22745 - 19968: 0xCEC5, - 22750 - 19968: 0xCED5, - 22751 - 19968: 0xD6E6, - 22756 - 19968: 0xE5BD, - 22763 - 19968: 0xDECD, - 22764 - 19968: 0xECF3, - 22767 - 19968: 0xEDE0, - 22777 - 19968: 0xECEC, - 22778 - 19968: 0xFBBE, - 22779 - 19968: 0xDFEB, - 22781 - 19968: 0xE1F8, - 22799 - 19968: 0xF9BE, - 22804 - 19968: 0xD0F3, - 22805 - 19968: 0xE0AA, - 22806 - 19968: 0xE8E2, - 22809 - 19968: 0xE2D4, - 22810 - 19968: 0xD2FD, - 22812 - 19968: 0xE5A8, - 22818 - 19968: 0xD9D3, - 22823 - 19968: 0xD3DE, - 22825 - 19968: 0xF4B8, - 22826 - 19968: 0xF7BC, - 22827 - 19968: 0xDCFD, - 22829 - 19968: 0xE8EC, - 22830 - 19968: 0xE4E7, - 22833 - 19968: 0xE3F7, - 22839 - 19968: 0xECA8, - 22846 - 19968: 0xFAF1, - 22852 - 19968: 0xE5F2, - 22855 - 19968: 0xD0F4, - 22856 - 19968: 0xD2AF, - 22857 - 19968: 0xDCE5, - 22862 - 19968: 0xD0A5, - 22863 - 19968: 0xF1B4, - 22864 - 19968: 0xFCB1, - 22865 - 19968: 0xCCF8, - 22868 - 19968: 0xDDC6, - 22869 - 19968: 0xFAD1, - 22871 - 19968: 0xF7DF, - 22874 - 19968: 0xFAA8, - 22880 - 19968: 0xEEF5, - 22882 - 19968: 0xDECE, - 22887 - 19968: 0xE7F3, - 22890 - 19968: 0xF7AC, - 22891 - 19968: 0xEBC4, - 22892 - 19968: 0xEDE1, - 22893 - 19968: 0xE0AB, - 22894 - 19968: 0xDDC7, - 22899 - 19968: 0xD2B3, - 22900 - 19968: 0xD2BF, - 22904 - 19968: 0xCACC, - 22909 - 19968: 0xFBBF, - 22914 - 19968: 0xE5FD, - 22915 - 19968: 0xDDE5, - 22916 - 19968: 0xD8CD, - 22922 - 19968: 0xECF4, - 22931 - 19968: 0xD0F5, - 22934 - 19968: 0xE8ED, - 22935 - 19968: 0xD0D2, - 22937 - 19968: 0xD9D8, - 22949 - 19968: 0xF6E6, - 22952 - 19968: 0xDBAA, - 22956 - 19968: 0xF7E0, - 22969 - 19968: 0xD8D9, - 22971 - 19968: 0xF4A3, - 22974 - 19968: 0xF4DD, - 22979 - 19968: 0xEFD1, - 22982 - 19968: 0xD9B5, - 22985 - 19968: 0xEDAB, - 22987 - 19968: 0xE3B7, - 22992 - 19968: 0xEEBB, - 22993 - 19968: 0xCDB4, - 22995 - 19968: 0xE0F3, - 22996 - 19968: 0xEACD, - 23001 - 19968: 0xECF5, - 23002 - 19968: 0xE8EE, - 23004 - 19968: 0xCBA9, - 23005 - 19968: 0xF1AF, - 23014 - 19968: 0xCACD, - 23016 - 19968: 0xECA9, - 23018 - 19968: 0xF2EB, - 23020 - 19968: 0xFDEF, - 23022 - 19968: 0xF9F3, - 23032 - 19968: 0xE6C1, - 23035 - 19968: 0xECD8, - 23039 - 19968: 0xEDAC, - 23041 - 19968: 0xEACE, - 23043 - 19968: 0xE8DF, - 23057 - 19968: 0xDECF, - 23064 - 19968: 0xD2A6, - 23067 - 19968: 0xE7F4, - 23068 - 19968: 0xD1D6, - 23071 - 19968: 0xE6C2, - 23072 - 19968: 0xE3E3, - 23077 - 19968: 0xE4B0, - 23081 - 19968: 0xD8B4, - 23094 - 19968: 0xF6A5, - 23100 - 19968: 0xF3DE, - 23105 - 19968: 0xD7A5, - 23110 - 19968: 0xF7E8, - 23113 - 19968: 0xE8C6, - 23130 - 19968: 0xFBE6, - 23138 - 19968: 0xDDE6, - 23142 - 19968: 0xDCFE, - 23186 - 19968: 0xD8DA, - 23194 - 19968: 0xDAAC, - 23195 - 19968: 0xEAB0, - 23204 - 19968: 0xE3B8, - 23233 - 19968: 0xCAAA, - 23234 - 19968: 0xE1F9, - 23236 - 19968: 0xEAB1, - 23241 - 19968: 0xF2EC, - 23244 - 19968: 0xFAEE, - 23265 - 19968: 0xEED5, - 23270 - 19968: 0xF9F4, - 23273 - 19968: 0xD2EC, - 23301 - 19968: 0xFBFB, - 23305 - 19968: 0xFDF0, - 23307 - 19968: 0xE0BD, - 23308 - 19968: 0xCEE3, - 23318 - 19968: 0xF8C6, - 23338 - 19968: 0xDEAE, - 23360 - 19968: 0xDFC5, - 23363 - 19968: 0xE5BE, - 23376 - 19968: 0xEDAD, - 23377 - 19968: 0xFAEA, - 23380 - 19968: 0xCDEE, - 23381 - 19968: 0xEDA6, - 23383 - 19968: 0xEDAE, - 23384 - 19968: 0xF0ED, - 23386 - 19968: 0xDDA1, - 23388 - 19968: 0xEDAF, - 23389 - 19968: 0xFCF8, - 23391 - 19968: 0xD8EB, - 23395 - 19968: 0xCCF9, - 23396 - 19968: 0xCDB5, - 23401 - 19968: 0xFAA9, - 23403 - 19968: 0xE1DD, - 23408 - 19968: 0xE2D5, - 23409 - 19968: 0xEDCF, - 23413 - 19968: 0xDDA2, - 23416 - 19968: 0xF9CA, - 23418 - 19968: 0xEAE8, - 23420 - 19968: 0xE5ED, - 23429 - 19968: 0xD3EB, - 23431 - 19968: 0xE9D4, - 23432 - 19968: 0xE1FA, - 23433 - 19968: 0xE4CC, - 23435 - 19968: 0xE1E4, - 23436 - 19968: 0xE8C7, - 23439 - 19968: 0xCEDB, - 23443 - 19968: 0xDCD5, - 23445 - 19968: 0xF7B5, - 23446 - 19968: 0xFCF3, - 23447 - 19968: 0xF0F3, - 23448 - 19968: 0xCEAF, - 23449 - 19968: 0xF1B5, - 23450 - 19968: 0xEFD2, - 23451 - 19968: 0xE8C8, - 23452 - 19968: 0xEBF1, - 23458 - 19968: 0xCBD4, - 23459 - 19968: 0xE0BE, - 23460 - 19968: 0xE3F8, - 23461 - 19968: 0xEAE9, - 23462 - 19968: 0xFCB2, - 23468 - 19968: 0xE0F4, - 23470 - 19968: 0xCFE0, - 23472 - 19968: 0xEEA5, - 23475 - 19968: 0xFAAA, - 23476 - 19968: 0xE6C3, - 23477 - 19968: 0xE1B2, - 23478 - 19968: 0xCAAB, - 23480 - 19968: 0xE3E4, - 23481 - 19968: 0xE9BB, - 23487 - 19968: 0xE2D6, - 23488 - 19968: 0xF3F2, - 23490 - 19968: 0xEED6, - 23491 - 19968: 0xEAB2, - 23492 - 19968: 0xD0F6, - 23493 - 19968: 0xECD9, - 23494 - 19968: 0xDACB, - 23495 - 19968: 0xCFA8, - 23500 - 19968: 0xDDA3, - 23504 - 19968: 0xD8DB, - 23506 - 19968: 0xF9CE, - 23507 - 19968: 0xE9D5, - 23508 - 19968: 0xE3D1, - 23511 - 19968: 0xD2BC, - 23518 - 19968: 0xD8AC, - 23519 - 19968: 0xF3CC, - 23521 - 19968: 0xCDFB, - 23522 - 19968: 0xF6D6, - 23524 - 19968: 0xE7F5, - 23525 - 19968: 0xE8EF, - 23526 - 19968: 0xE3F9, - 23527 - 19968: 0xD2BB, - 23528 - 19968: 0xF3F3, - 23529 - 19968: 0xE3FB, - 23531 - 19968: 0xDED0, - 23532 - 19968: 0xCEB0, - 23534 - 19968: 0xD6F7, - 23535 - 19968: 0xF1D9, - 23541 - 19968: 0xF5C1, - 23542 - 19968: 0xDCC4, - 23544 - 19968: 0xF5BB, - 23546 - 19968: 0xDED1, - 23553 - 19968: 0xDCE6, - 23556 - 19968: 0xDED2, - 23559 - 19968: 0xEDE2, - 23560 - 19968: 0xEEF6, - 23561 - 19968: 0xEACF, - 23562 - 19968: 0xF0EE, - 23563 - 19968: 0xE3FC, - 23565 - 19968: 0xD3DF, - 23566 - 19968: 0xD3F4, - 23567 - 19968: 0xE1B3, - 23569 - 19968: 0xE1B4, - 23574 - 19968: 0xF4D3, - 23577 - 19968: 0xDFC6, - 23588 - 19968: 0xE9D6, - 23592 - 19968: 0xDBAB, - 23601 - 19968: 0xF6A6, - 23608 - 19968: 0xE3B9, - 23609 - 19968: 0xEBC5, - 23610 - 19968: 0xF4A9, - 23611 - 19968: 0xCDB6, - 23612 - 19968: 0xD2F9, - 23614 - 19968: 0xDAAD, - 23615 - 19968: 0xD2E3, - 23616 - 19968: 0xCFD1, - 23621 - 19968: 0xCBDC, - 23622 - 19968: 0xCCFA, - 23624 - 19968: 0xCFDD, - 23627 - 19968: 0xE8A9, - 23629 - 19968: 0xE3BB, - 23630 - 19968: 0xE3BA, - 23633 - 19968: 0xE0DA, - 23637 - 19968: 0xEEF7, - 23643 - 19968: 0xDCB3, - 23648 - 19968: 0xD3F5, - 23650 - 19968: 0xD7A6, - 23652 - 19968: 0xF6B5, - 23653 - 19968: 0xD7DB, - 23660 - 19968: 0xE1D5, - 23663 - 19968: 0xD4EA, - 23665 - 19968: 0xDFA3, - 23673 - 19968: 0xFDDF, - 23696 - 19968: 0xD0F7, - 23697 - 19968: 0xEDD4, - 23713 - 19968: 0xCBAA, - 23721 - 19968: 0xE4DB, - 23723 - 19968: 0xE1FB, - 23724 - 19968: 0xCBA2, - 23729 - 19968: 0xD3E0, - 23731 - 19968: 0xE4BF, - 23733 - 19968: 0xFBC0, - 23735 - 19968: 0xDABE, - 23736 - 19968: 0xE4CD, - 23738 - 19968: 0xD6B9, - 23742 - 19968: 0xEFC0, - 23744 - 19968: 0xE1FC, - 23769 - 19968: 0xF6B9, - 23776 - 19968: 0xDFC7, - 23784 - 19968: 0xE4B1, - 23791 - 19968: 0xDCE7, - 23792 - 19968: 0xDCE8, - 23796 - 19968: 0xFAD6, - 23798 - 19968: 0xD3F6, - 23803 - 19968: 0xF1DA, - 23805 - 19968: 0xFAF2, - 23815 - 19968: 0xE2FD, - 23821 - 19968: 0xD5CF, - 23822 - 19968: 0xD0F8, - 23825 - 19968: 0xCDDF, - 23828 - 19968: 0xF5CB, - 23830 - 19968: 0xE4F0, - 23831 - 19968: 0xCBAB, - 23833 - 19968: 0xD7C4, - 23847 - 19968: 0xE2FE, - 23849 - 19968: 0xDDDA, - 23883 - 19968: 0xDAAE, - 23884 - 19968: 0xCAEE, - 23888 - 19968: 0xD5B9, - 23913 - 19968: 0xE3A1, - 23916 - 19968: 0xE8E3, - 23919 - 19968: 0xF3AB, - 23943 - 19968: 0xCFA9, - 23947 - 19968: 0xD3F7, - 23965 - 19968: 0xD4F1, - 23968 - 19968: 0xCEE4, - 23970 - 19968: 0xE8F2, - 23978 - 19968: 0xE5F5, - 23992 - 19968: 0xE7AE, - 23994 - 19968: 0xD6BA, - 23996 - 19968: 0xDFEC, - 23997 - 19968: 0xE4C0, - 24013 - 19968: 0xE8E4, - 24018 - 19968: 0xD8B5, - 24022 - 19968: 0xE4DC, - 24029 - 19968: 0xF4B9, - 24030 - 19968: 0xF1B6, - 24033 - 19968: 0xE2DE, - 24034 - 19968: 0xE1B5, - 24037 - 19968: 0xCDEF, - 24038 - 19968: 0xF1A7, - 24039 - 19968: 0xCEE5, - 24040 - 19968: 0xCBDD, - 24043 - 19968: 0xD9E3, - 24046 - 19968: 0xF3AC, - 24049 - 19968: 0xD0F9, - 24050 - 19968: 0xECAB, - 24051 - 19968: 0xDED3, - 24052 - 19968: 0xF7E9, - 24055 - 19968: 0xF9F5, - 24061 - 19968: 0xE1DE, - 24062 - 19968: 0xCBEE, - 24066 - 19968: 0xE3BC, - 24067 - 19968: 0xF8D6, - 24070 - 19968: 0xDBEE, - 24076 - 19968: 0xFDF1, - 24081 - 19968: 0xF7B6, - 24086 - 19968: 0xF4DE, - 24089 - 19968: 0xF2ED, - 24091 - 19968: 0xDBD9, - 24093 - 19968: 0xF0A8, - 24101 - 19968: 0xE1FD, - 24107 - 19968: 0xDED4, - 24109 - 19968: 0xE0AC, - 24115 - 19968: 0xEDE3, - 24118 - 19968: 0xD3E1, - 24120 - 19968: 0xDFC8, - 24125 - 19968: 0xD9B6, - 24127 - 19968: 0xFDAC, - 24128 - 19968: 0xEFD3, - 24132 - 19968: 0xE4C1, - 24133 - 19968: 0xF8EB, - 24135 - 19968: 0xDBAC, - 24140 - 19968: 0xFCC6, - 24149 - 19968: 0xD8AD, - 24159 - 19968: 0xF6BA, - 24161 - 19968: 0xDBDF, - 24162 - 19968: 0xD3D3, - 24163 - 19968: 0xF8C7, - 24178 - 19968: 0xCACE, - 24179 - 19968: 0xF8C1, - 24180 - 19968: 0xD2B4, - 24183 - 19968: 0xDCB4, - 24184 - 19968: 0xFAB9, - 24185 - 19968: 0xCACF, - 24187 - 19968: 0xFCB3, - 24188 - 19968: 0xEAEA, - 24189 - 19968: 0xEAEB, - 24190 - 19968: 0xD0FA, - 24196 - 19968: 0xEDE4, - 24199 - 19968: 0xDDE7, - 24202 - 19968: 0xDFC9, - 24207 - 19968: 0xDFED, - 24213 - 19968: 0xEEBC, - 24215 - 19968: 0xEFC1, - 24218 - 19968: 0xCCD2, - 24220 - 19968: 0xDDA4, - 24224 - 19968: 0xDFCA, - 24230 - 19968: 0xD3F8, - 24231 - 19968: 0xF1A8, - 24235 - 19968: 0xCDB7, - 24237 - 19968: 0xEFD4, - 24245 - 19968: 0xE4DD, - 24246 - 19968: 0xDFEE, - 24247 - 19968: 0xCBAC, - 24248 - 19968: 0xE9BC, - 24254 - 19968: 0xEAEC, - 24258 - 19968: 0xDFCB, - 24264 - 19968: 0xF9BF, - 24265 - 19968: 0xD6AF, - 24266 - 19968: 0xD5C6, - 24272 - 19968: 0xCFAA, - 24275 - 19968: 0xCEA9, - 24278 - 19968: 0xD6F8, - 24282 - 19968: 0xF1B7, - 24283 - 19968: 0xEEF8, - 24287 - 19968: 0xD9D9, - 24288 - 19968: 0xF3DF, - 24290 - 19968: 0xF8C8, - 24291 - 19968: 0xCEC6, - 24300 - 19968: 0xD5E6, - 24307 - 19968: 0xF4E6, - 24310 - 19968: 0xE6C5, - 24311 - 19968: 0xEFD5, - 24314 - 19968: 0xCBEF, - 24315 - 19968: 0xFCDF, - 24321 - 19968: 0xDCA7, - 24324 - 19968: 0xD6E7, - 24330 - 19968: 0xF8C9, - 24335 - 19968: 0xE3D2, - 24337 - 19968: 0xE3BD, - 24339 - 19968: 0xCFE1, - 24340 - 19968: 0xF0C0, - 24341 - 19968: 0xECDA, - 24343 - 19968: 0xDDD7, - 24344 - 19968: 0xFBF0, - 24347 - 19968: 0xECAC, - 24351 - 19968: 0xF0A9, - 24358 - 19968: 0xFAD7, - 24359 - 19968: 0xFBC1, - 24361 - 19968: 0xD2C0, - 24369 - 19968: 0xE5B0, - 24373 - 19968: 0xEDE5, - 24378 - 19968: 0xCBAD, - 24380 - 19968: 0xF9B0, - 24392 - 19968: 0xF7A5, - 24394 - 19968: 0xCBAE, - 24396 - 19968: 0xDAAF, - 24398 - 19968: 0xD8B6, - 24406 - 19968: 0xD3A7, - 24407 - 19968: 0xFBB2, - 24409 - 19968: 0xFDC4, - 24411 - 19968: 0xECAD, - 24418 - 19968: 0xFBA1, - 24422 - 19968: 0xE5E9, - 24423 - 19968: 0xE9EE, - 24425 - 19968: 0xF3F4, - 24426 - 19968: 0xF8F3, - 24427 - 19968: 0xF0C1, - 24428 - 19968: 0xDEAF, - 24429 - 19968: 0xF8B0, - 24432 - 19968: 0xF3E0, - 24433 - 19968: 0xE7AF, - 24439 - 19968: 0xDBAD, - 24441 - 19968: 0xE6B5, - 24444 - 19968: 0xF9A8, - 24447 - 19968: 0xDDD8, - 24448 - 19968: 0xE8D9, - 24449 - 19968: 0xEFD6, - 24453 - 19968: 0xD3E2, - 24455 - 19968: 0xE2DF, - 24458 - 19968: 0xFCE0, - 24459 - 19968: 0xD7C8, - 24460 - 19968: 0xFDAD, - 24464 - 19968: 0xDFEF, - 24465 - 19968: 0xCCD3, - 24466 - 19968: 0xD3F9, - 24471 - 19968: 0xD4F0, - 24472 - 19968: 0xDBC7, - 24473 - 19968: 0xDED5, - 24478 - 19968: 0xF0F4, - 24480 - 19968: 0xD5D0, - 24481 - 19968: 0xE5D9, - 24488 - 19968: 0xFCC7, - 24489 - 19968: 0xDCD6, - 24490 - 19968: 0xE2E0, - 24494 - 19968: 0xDAB0, - 24501 - 19968: 0xF3A3, - 24503 - 19968: 0xD3EC, - 24505 - 19968: 0xF4CB, - 24509 - 19968: 0xFDC5, - 24515 - 19968: 0xE3FD, - 24517 - 19968: 0xF9B1, - 24524 - 19968: 0xD0FB, - 24525 - 19968: 0xECDB, - 24534 - 19968: 0xF5BC, - 24535 - 19968: 0xF2A4, - 24536 - 19968: 0xD8CE, - 24537 - 19968: 0xD8CF, - 24544 - 19968: 0xF5F7, - 24555 - 19968: 0xF6E1, - 24565 - 19968: 0xD2B7, - 24573 - 19968: 0xFBEC, - 24575 - 19968: 0xDDC8, - 24591 - 19968: 0xE4E8, - 24594 - 19968: 0xD2C1, - 24598 - 19968: 0xF8D7, - 24604 - 19968: 0xD6BB, - 24605 - 19968: 0xDED6, - 24608 - 19968: 0xF7BD, - 24609 - 19968: 0xECAE, - 24613 - 19968: 0xD0E1, - 24615 - 19968: 0xE0F5, - 24616 - 19968: 0xEAB3, - 24618 - 19968: 0xCED6, - 24623 - 19968: 0xCCA5, - 24641 - 19968: 0xECF6, - 24642 - 19968: 0xE2E1, - 24643 - 19968: 0xE3BE, - 24653 - 19968: 0xFCC8, - 24656 - 19968: 0xCDF0, - 24658 - 19968: 0xF9F6, - 24661 - 19968: 0xDFF0, - 24665 - 19968: 0xE5BF, - 24669 - 19968: 0xCEBF, - 24674 - 19968: 0xFCE1, - 24675 - 19968: 0xEDB0, - 24676 - 19968: 0xFDD1, - 24677 - 19968: 0xF6BB, - 24680 - 19968: 0xF9CF, - 24681 - 19968: 0xEBDA, - 24682 - 19968: 0xCAC1, - 24684 - 19968: 0xD2B8, - 24685 - 19968: 0xCDF1, - 24687 - 19968: 0xE3D3, - 24688 - 19968: 0xFDE6, - 24709 - 19968: 0xE6ED, - 24713 - 19968: 0xE3FA, - 24716 - 19968: 0xF0AA, - 24717 - 19968: 0xF9D0, - 24724 - 19968: 0xFCE2, - 24726 - 19968: 0xF8A7, - 24730 - 19968: 0xE1E5, - 24731 - 19968: 0xEEF9, - 24735 - 19968: 0xE7F6, - 24736 - 19968: 0xEAED, - 24739 - 19968: 0xFCB4, - 24740 - 19968: 0xF5C2, - 24743 - 19968: 0xD7DC, - 24752 - 19968: 0xF0F5, - 24754 - 19968: 0xDDE8, - 24755 - 19968: 0xD3ED, - 24756 - 19968: 0xF5FC, - 24758 - 19968: 0xDABF, - 24760 - 19968: 0xCCFB, - 24764 - 19968: 0xD3FA, - 24765 - 19968: 0xF4A4, - 24773 - 19968: 0xEFD7, - 24775 - 19968: 0xD4C3, - 24785 - 19968: 0xFBE3, - 24794 - 19968: 0xFBED, - 24796 - 19968: 0xE0AD, - 24799 - 19968: 0xEAEE, - 24800 - 19968: 0xFBB3, - 24801 - 19968: 0xE4C2, - 24816 - 19968: 0xF6E7, - 24817 - 19968: 0xD2DD, - 24819 - 19968: 0xDFCC, - 24822 - 19968: 0xFCC9, - 24825 - 19968: 0xE5A9, - 24826 - 19968: 0xE0F6, - 24827 - 19968: 0xF6B3, - 24833 - 19968: 0xE1FE, - 24838 - 19968: 0xCBF0, - 24840 - 19968: 0xEAEF, - 24841 - 19968: 0xEAF0, - 24845 - 19968: 0xDAC0, - 24846 - 19968: 0xF8B4, - 24847 - 19968: 0xEBF2, - 24853 - 19968: 0xE4C3, - 24858 - 19968: 0xE9D7, - 24859 - 19968: 0xE4F1, - 24863 - 19968: 0xCAEF, - 24871 - 19968: 0xCED7, - 24880 - 19968: 0xFCCA, - 24884 - 19968: 0xF3E1, - 24887 - 19968: 0xCBC4, - 24892 - 19968: 0xE3E5, - 24894 - 19968: 0xCBC5, - 24895 - 19968: 0xEAB4, - 24898 - 19968: 0xE9BD, - 24900 - 19968: 0xD7C9, - 24903 - 19968: 0xEBDB, - 24904 - 19968: 0xEDB1, - 24906 - 19968: 0xCCC3, - 24907 - 19968: 0xF7BE, - 24908 - 19968: 0xFCCB, - 24915 - 19968: 0xF8F4, - 24917 - 19968: 0xD9B7, - 24920 - 19968: 0xF3D3, - 24921 - 19968: 0xF3D4, - 24925 - 19968: 0xF7E4, - 24927 - 19968: 0xF7D1, - 24930 - 19968: 0xD8B7, - 24931 - 19968: 0xCEB1, - 24932 - 19968: 0xCAC2, - 24935 - 19968: 0xFBB4, - 24936 - 19968: 0xCBC6, - 24939 - 19968: 0xF0F6, - 24942 - 19968: 0xD5E7, - 24944 - 19968: 0xEAD0, - 24950 - 19968: 0xCCD4, - 24951 - 19968: 0xCBAF, - 24957 - 19968: 0xF4AA, - 24958 - 19968: 0xE9AF, - 24961 - 19968: 0xF5C3, - 24962 - 19968: 0xE9D8, - 24970 - 19968: 0xDDE9, - 24974 - 19968: 0xF1F3, - 24976 - 19968: 0xD5FB, - 24977 - 19968: 0xDEBB, - 24980 - 19968: 0xF4FB, - 24984 - 19968: 0xFDF3, - 24985 - 19968: 0xFDF2, - 24986 - 19968: 0xF7A6, - 24996 - 19968: 0xDDC9, - 24999 - 19968: 0xD4D3, - 25001 - 19968: 0xCCA8, - 25003 - 19968: 0xDAC1, - 25004 - 19968: 0xCCD5, - 25006 - 19968: 0xD9E4, - 25010 - 19968: 0xFACA, - 25014 - 19968: 0xE5E3, - 25018 - 19968: 0xD3BC, - 25022 - 19968: 0xCAF0, - 25027 - 19968: 0xD0C4, - 25031 - 19968: 0xCAD0, - 25032 - 19968: 0xFAAB, - 25033 - 19968: 0xEBEB, - 25034 - 19968: 0xE7F8, - 25035 - 19968: 0xD9E5, - 25062 - 19968: 0xD1D7, - 25074 - 19968: 0xF3A4, - 25078 - 19968: 0xD4FB, - 25079 - 19968: 0xFCE3, - 25080 - 19968: 0xFAD8, - 25082 - 19968: 0xF3D5, - 25084 - 19968: 0xCFAB, - 25087 - 19968: 0xEBF3, - 25088 - 19968: 0xD5FC, - 25095 - 19968: 0xD3D4, - 25096 - 19968: 0xCDFC, - 25098 - 19968: 0xD9E6, - 25100 - 19968: 0xE2F9, - 25101 - 19968: 0xE2A1, - 25102 - 19968: 0xEBD4, - 25104 - 19968: 0xE0F7, - 25105 - 19968: 0xE4B2, - 25106 - 19968: 0xCCFC, - 25110 - 19968: 0xFBE4, - 25114 - 19968: 0xF4AB, - 25119 - 19968: 0xD0BD, - 25121 - 19968: 0xCAF1, - 25130 - 19968: 0xEFB8, - 25134 - 19968: 0xD7C0, - 25136 - 19968: 0xEEFA, - 25137 - 19968: 0xFDF4, - 25140 - 19968: 0xD3E3, - 25142 - 19968: 0xFBC2, - 25150 - 19968: 0xD5E8, - 25151 - 19968: 0xDBAE, - 25152 - 19968: 0xE1B6, - 25153 - 19968: 0xF8B7, - 25159 - 19968: 0xE0BF, - 25160 - 19968: 0xFBC3, - 25161 - 19968: 0xDDEA, - 25163 - 19968: 0xE2A2, - 25165 - 19968: 0xEEA6, - 25171 - 19968: 0xF6E8, - 25176 - 19968: 0xF6F5, - 25198 - 19968: 0xDDCA, - 25201 - 19968: 0xD0E2, - 25206 - 19968: 0xDDA6, - 25209 - 19968: 0xDDEB, - 25212 - 19968: 0xE4F9, - 25215 - 19968: 0xE3AF, - 25216 - 19968: 0xD0FC, - 25220 - 19968: 0xF4FC, - 25225 - 19968: 0xCCBC, - 25226 - 19968: 0xF7EA, - 25233 - 19968: 0xE5E4, - 25234 - 19968: 0xDFF1, - 25237 - 19968: 0xF7E1, - 25239 - 19968: 0xF9F7, - 25240 - 19968: 0xEFB9, - 25243 - 19968: 0xF8D8, - 25259 - 19968: 0xF9A9, - 25265 - 19968: 0xF8D9, - 25269 - 19968: 0xEEBD, - 25273 - 19968: 0xD8C6, - 25276 - 19968: 0xE4E3, - 25277 - 19968: 0xF5CE, - 25282 - 19968: 0xDDD9, - 25287 - 19968: 0xD9E7, - 25288 - 19968: 0xD2B9, - 25289 - 19968: 0xD5C3, - 25292 - 19968: 0xDAE5, - 25293 - 19968: 0xDAD0, - 25295 - 19968: 0xD1D9, - 25296 - 19968: 0xCED8, - 25298 - 19968: 0xCBDE, - 25299 - 19968: 0xF4AC, - 25300 - 19968: 0xDAFB, - 25302 - 19968: 0xF6E9, - 25303 - 19968: 0xE8F3, - 25304 - 19968: 0xCFAC, - 25305 - 19968: 0xF0F0, - 25307 - 19968: 0xF4FD, - 25308 - 19968: 0xDBC8, - 25324 - 19968: 0xCEC0, - 25325 - 19968: 0xE3D4, - 25326 - 19968: 0xD1CF, - 25327 - 19968: 0xF1F5, - 25329 - 19968: 0xCDF2, - 25331 - 19968: 0xCFEB, - 25335 - 19968: 0xCDB8, - 25342 - 19968: 0xE3A6, - 25343 - 19968: 0xD1DA, - 25345 - 19968: 0xF2A5, - 25351 - 19968: 0xF2A6, - 25353 - 19968: 0xE4CE, - 25361 - 19968: 0xD3FB, - 25387 - 19968: 0xF1A9, - 25391 - 19968: 0xF2C9, - 25402 - 19968: 0xEFD8, - 25403 - 19968: 0xE6C9, - 25405 - 19968: 0xD8B8, - 25406 - 19968: 0xFAF3, - 25417 - 19968: 0xF3B5, - 25420 - 19968: 0xF8A4, - 25423 - 19968: 0xD1F3, - 25424 - 19968: 0xE6C8, - 25429 - 19968: 0xF8DA, - 25447 - 19968: 0xDCE9, - 25448 - 19968: 0xDED7, - 25454 - 19968: 0xCBDF, - 25458 - 19968: 0xCFEC, - 25463 - 19968: 0xF4DF, - 25466 - 19968: 0xD1F4, - 25467 - 19968: 0xD2BA, - 25471 - 19968: 0xDFF2, - 25475 - 19968: 0xE1B7, - 25480 - 19968: 0xE2A3, - 25481 - 19968: 0xD3FC, - 25484 - 19968: 0xEDE6, - 25490 - 19968: 0xDBC9, - 25494 - 19968: 0xE4FA, - 25496 - 19968: 0xCFDE, - 25499 - 19968: 0xCED0, - 25504 - 19968: 0xD5D3, - 25505 - 19968: 0xF3F5, - 25506 - 19968: 0xF7AE, - 25509 - 19968: 0xEFC8, - 25511 - 19968: 0xCDF3, - 25512 - 19968: 0xF5CF, - 25513 - 19968: 0xE5F3, - 25514 - 19968: 0xF0C2, - 25536 - 19968: 0xCAD1, - 25540 - 19968: 0xEAF1, - 25542 - 19968: 0xD0A6, - 25551 - 19968: 0xD9DA, - 25552 - 19968: 0xF0AB, - 25558 - 19968: 0xEBE7, - 25562 - 19968: 0xE5C0, - 25563 - 19968: 0xFCB5, - 25569 - 19968: 0xE4C4, - 25581 - 19968: 0xCCA9, - 25582 - 19968: 0xFDC6, - 25588 - 19968: 0xEAB5, - 25590 - 19968: 0xE5AA, - 25591 - 19968: 0xDFBA, - 25613 - 19968: 0xE1DF, - 25615 - 19968: 0xDAD1, - 25620 - 19968: 0xE1B8, - 25622 - 19968: 0xE8F4, - 25623 - 19968: 0xD3FD, - 25628 - 19968: 0xE2A4, - 25634 - 19968: 0xF2CA, - 25644 - 19968: 0xDAE6, - 25645 - 19968: 0xF7B3, - 25658 - 19968: 0xFDCD, - 25662 - 19968: 0xF3B6, - 25688 - 19968: 0xEED7, - 25696 - 19968: 0xF5C4, - 25705 - 19968: 0xD8A4, - 25711 - 19968: 0xF2A7, - 25720 - 19968: 0xD9B8, - 25721 - 19968: 0xD9B9, - 25722 - 19968: 0xEFC9, - 25736 - 19968: 0xD6CE, - 25745 - 19968: 0xF7CB, - 25746 - 19968: 0xDFAE, - 25747 - 19968: 0xE8F5, - 25754 - 19968: 0xD2B5, - 25758 - 19968: 0xD3D5, - 25764 - 19968: 0xF4CC, - 25765 - 19968: 0xDAFC, - 25771 - 19968: 0xD9E8, - 25773 - 19968: 0xF7EB, - 25774 - 19968: 0xF5C9, - 25776 - 19968: 0xF3BC, - 25778 - 19968: 0xDAD2, - 25787 - 19968: 0xD3B5, - 25793 - 19968: 0xE8B6, - 25796 - 19968: 0xD6CF, - 25797 - 19968: 0xF4BA, - 25799 - 19968: 0xF7C9, - 25802 - 19968: 0xCCAA, - 25805 - 19968: 0xF0C3, - 25806 - 19968: 0xCCD6, - 25810 - 19968: 0xD0D3, - 25812 - 19968: 0xD3BD, - 25816 - 19968: 0xDBFB, - 25818 - 19968: 0xCBE0, - 25825 - 19968: 0xD3E4, - 25826 - 19968: 0xF6F7, - 25829 - 19968: 0xD5BA, - 25830 - 19968: 0xF3CD, - 25831 - 19968: 0xCBE1, - 25836 - 19968: 0xEBF4, - 25842 - 19968: 0xF4AD, - 25844 - 19968: 0xFCAA, - 25850 - 19968: 0xF7EC, - 25854 - 19968: 0xE8F6, - 25856 - 19968: 0xDAE7, - 25860 - 19968: 0xF7CC, - 25880 - 19968: 0xE5C1, - 25885 - 19968: 0xE0EE, - 25891 - 19968: 0xD5FD, - 25898 - 19968: 0xCEE6, - 25899 - 19968: 0xFCAB, - 25900 - 19968: 0xD5BB, - 25903 - 19968: 0xF2A8, - 25910 - 19968: 0xE2A5, - 25911 - 19968: 0xCDB9, - 25912 - 19968: 0xEAF2, - 25913 - 19968: 0xCBC7, - 25915 - 19968: 0xCDF4, - 25918 - 19968: 0xDBAF, - 25919 - 19968: 0xEFD9, - 25925 - 19968: 0xCDBA, - 25928 - 19968: 0xFCF9, - 25933 - 19968: 0xDFF3, - 25934 - 19968: 0xCEE7, - 25935 - 19968: 0xDAC2, - 25937 - 19968: 0xCFAD, - 25942 - 19968: 0xE7F9, - 25943 - 19968: 0xF8A8, - 25950 - 19968: 0xF3E2, - 25954 - 19968: 0xCAF2, - 25955 - 19968: 0xDFA4, - 25958 - 19968: 0xD4C4, - 25964 - 19968: 0xCCD7, - 25965 - 19968: 0xE5C2, - 25970 - 19968: 0xCDBB, - 25972 - 19968: 0xEFDA, - 25973 - 19968: 0xEED8, - 25975 - 19968: 0xDDA7, - 25976 - 19968: 0xE2A6, - 25982 - 19968: 0xE0C0, - 25986 - 19968: 0xD6B0, - 25987 - 19968: 0xF8CA, - 25989 - 19968: 0xFCFA, - 25991 - 19968: 0xD9FE, - 25996 - 19968: 0xDEB0, - 26000 - 19968: 0xDDEC, - 26001 - 19968: 0xDAE8, - 26007 - 19968: 0xD4E0, - 26009 - 19968: 0xD6F9, - 26011 - 19968: 0xCDD7, - 26012 - 19968: 0xDED8, - 26015 - 19968: 0xF2F8, - 26017 - 19968: 0xE4D6, - 26020 - 19968: 0xD0C5, - 26021 - 19968: 0xF4AE, - 26023 - 19968: 0xDDA8, - 26027 - 19968: 0xEDC5, - 26028 - 19968: 0xF3D6, - 26031 - 19968: 0xDED9, - 26032 - 19968: 0xE3E6, - 26039 - 19968: 0xD3A8, - 26041 - 19968: 0xDBB0, - 26044 - 19968: 0xE5DA, - 26045 - 19968: 0xE3BF, - 26049 - 19968: 0xDBB1, - 26053 - 19968: 0xD5E9, - 26059 - 19968: 0xE0C1, - 26060 - 19968: 0xEFDB, - 26063 - 19968: 0xF0E9, - 26066 - 19968: 0xD7B2, - 26071 - 19968: 0xD0FD, - 26080 - 19968: 0xD9E9, - 26083 - 19968: 0xD0FE, - 26085 - 19968: 0xECED, - 26086 - 19968: 0xD3A9, - 26088 - 19968: 0xF2A9, - 26089 - 19968: 0xF0C4, - 26092 - 19968: 0xE2E2, - 26093 - 19968: 0xE9EF, - 26097 - 19968: 0xF9D1, - 26100 - 19968: 0xE9D9, - 26106 - 19968: 0xE8DA, - 26107 - 19968: 0xDAC3, - 26108 - 19968: 0xDAC4, - 26109 - 19968: 0xD4C5, - 26111 - 19968: 0xE7FA, - 26118 - 19968: 0xCDE0, - 26119 - 19968: 0xE3B0, - 26121 - 19968: 0xDBB2, - 26122 - 19968: 0xFBC4, - 26124 - 19968: 0xF3E3, - 26126 - 19968: 0xD9A5, - 26127 - 19968: 0xFBE7, - 26128 - 19968: 0xDDCB, - 26129 - 19968: 0xD0D4, - 26131 - 19968: 0xE6B6, - 26132 - 19968: 0xE0AE, - 26133 - 19968: 0xFDDA, - 26142 - 19968: 0xDCB5, - 26143 - 19968: 0xE0F8, - 26144 - 19968: 0xE7B1, - 26149 - 19968: 0xF5F0, - 26151 - 19968: 0xD8DC, - 26152 - 19968: 0xEDC6, - 26157 - 19968: 0xE1B9, - 26159 - 19968: 0xE3C0, - 26160 - 19968: 0xF9C0, - 26161 - 19968: 0xE9F0, - 26164 - 19968: 0xD9DB, - 26166 - 19968: 0xF3E4, - 26170 - 19968: 0xDCB6, - 26171 - 19968: 0xE4E9, - 26177 - 19968: 0xF0C5, - 26178 - 19968: 0xE3C1, - 26179 - 19968: 0xFCCC, - 26180 - 19968: 0xFCCD, - 26185 - 19968: 0xF2CB, - 26187 - 19968: 0xF2CC, - 26191 - 19968: 0xE4CF, - 26201 - 19968: 0xF1DB, - 26203 - 19968: 0xFAD9, - 26205 - 19968: 0xF1B8, - 26206 - 19968: 0xFDF5, - 26207 - 19968: 0xE0F9, - 26212 - 19968: 0xE7FB, - 26213 - 19968: 0xFCB7, - 26214 - 19968: 0xFCE4, - 26215 - 19968: 0xFBC5, - 26216 - 19968: 0xE3E7, - 26217 - 19968: 0xD8B9, - 26219 - 19968: 0xF6F8, - 26222 - 19968: 0xDCC5, - 26223 - 19968: 0xCCD8, - 26227 - 19968: 0xE0AF, - 26228 - 19968: 0xF4E7, - 26230 - 19968: 0xEFDC, - 26231 - 19968: 0xCFFC, - 26232 - 19968: 0xEFDD, - 26234 - 19968: 0xF2AA, - 26244 - 19968: 0xFDBE, - 26247 - 19968: 0xCAAC, - 26248 - 19968: 0xFDBB, - 26249 - 19968: 0xFDC7, - 26254 - 19968: 0xE7B2, - 26256 - 19968: 0xEAD1, - 26257 - 19968: 0xDFF4, - 26262 - 19968: 0xD1EC, - 26263 - 19968: 0xE4DE, - 26264 - 19968: 0xE5C3, - 26269 - 19968: 0xD9A6, - 26272 - 19968: 0xCDBC, - 26274 - 19968: 0xF3E5, - 26283 - 19968: 0xEDD5, - 26286 - 19968: 0xD9BA, - 26290 - 19968: 0xEDE7, - 26291 - 19968: 0xFBB5, - 26292 - 19968: 0xF8EC, - 26297 - 19968: 0xE0E7, - 26299 - 19968: 0xCCD9, - 26302 - 19968: 0xD4C6, - 26308 - 19968: 0xE7A5, - 26310 - 19968: 0xD5F5, - 26311 - 19968: 0xD3BE, - 26313 - 19968: 0xFCFB, - 26326 - 19968: 0xE4F2, - 26329 - 19968: 0xDFF5, - 26332 - 19968: 0xE8F8, - 26333 - 19968: 0xF8ED, - 26336 - 19968: 0xCEC7, - 26342 - 19968: 0xFDF6, - 26352 - 19968: 0xE8D8, - 26354 - 19968: 0xCDD8, - 26355 - 19968: 0xE7D6, - 26356 - 19968: 0xCCDA, - 26359 - 19968: 0xCAE3, - 26360 - 19968: 0xDFF6, - 26361 - 19968: 0xF0C7, - 26362 - 19968: 0xF0C6, - 26364 - 19968: 0xD8BA, - 26366 - 19968: 0xF1F4, - 26367 - 19968: 0xF4F0, - 26368 - 19968: 0xF5CC, - 26371 - 19968: 0xFCE5, - 26376 - 19968: 0xEAC5, - 26377 - 19968: 0xEAF3, - 26379 - 19968: 0xDDDB, - 26381 - 19968: 0xDCD7, - 26388 - 19968: 0xDEFD, - 26389 - 19968: 0xF2F9, - 26391 - 19968: 0xD5C7, - 26395 - 19968: 0xD8D0, - 26397 - 19968: 0xF0C8, - 26398 - 19968: 0xD1A1, - 26399 - 19968: 0xD1A2, - 26406 - 19968: 0xD9D4, - 26407 - 19968: 0xD6E8, - 26408 - 19968: 0xD9CA, - 26410 - 19968: 0xDAB1, - 26411 - 19968: 0xD8C7, - 26412 - 19968: 0xDCE2, - 26413 - 19968: 0xF3CE, - 26414 - 19968: 0xF5F4, - 26417 - 19968: 0xF1B9, - 26420 - 19968: 0xDAD3, - 26422 - 19968: 0xF6EA, - 26426 - 19968: 0xCFF5, - 26429 - 19968: 0xFDAE, - 26438 - 19968: 0xCAD2, - 26441 - 19968: 0xDFB4, - 26446 - 19968: 0xD7DD, - 26447 - 19968: 0xFABA, - 26448 - 19968: 0xEEA7, - 26449 - 19968: 0xF5BD, - 26451 - 19968: 0xF8F5, - 26454 - 19968: 0xEDE8, - 26460 - 19968: 0xD4E1, - 26462 - 19968: 0xD1A3, - 26463 - 19968: 0xE1D6, - 26477 - 19968: 0xF9F8, - 26479 - 19968: 0xDBCA, - 26480 - 19968: 0xCBF9, - 26481 - 19968: 0xD4D4, - 26483 - 19968: 0xD9DC, - 26485 - 19968: 0xEEBE, - 26487 - 19968: 0xF7ED, - 26491 - 19968: 0xD2EE, - 26494 - 19968: 0xE1E6, - 26495 - 19968: 0xF7F9, - 26503 - 19968: 0xDDED, - 26505 - 19968: 0xE8DB, - 26507 - 19968: 0xDBB3, - 26511 - 19968: 0xD1F7, - 26512 - 19968: 0xE0B0, - 26515 - 19968: 0xD4E2, - 26517 - 19968: 0xF6D7, - 26519 - 19968: 0xD7F9, - 26522 - 19968: 0xD8DD, - 26524 - 19968: 0xCDFD, - 26525 - 19968: 0xF2AB, - 26543 - 19968: 0xCDBD, - 26544 - 19968: 0xF8C2, - 26547 - 19968: 0xF2AC, - 26550 - 19968: 0xCAAD, - 26551 - 19968: 0xCAAE, - 26552 - 19968: 0xCFAE, - 26558 - 19968: 0xE3C2, - 26564 - 19968: 0xDCB7, - 26575 - 19968: 0xDBDA, - 26576 - 19968: 0xD9BB, - 26577 - 19968: 0xCAF3, - 26578 - 19968: 0xF6D3, - 26579 - 19968: 0xE6F8, - 26580 - 19968: 0xEAF5, - 26586 - 19968: 0xEAF6, - 26589 - 19968: 0xF6F9, - 26601 - 19968: 0xCFAF, - 26604 - 19968: 0xCAD3, - 26607 - 19968: 0xCAAF, - 26608 - 19968: 0xD2B0, - 26609 - 19968: 0xF1BA, - 26611 - 19968: 0xD7B3, - 26612 - 19968: 0xE3C3, - 26613 - 19968: 0xF3FD, - 26614 - 19968: 0xDEDA, - 26619 - 19968: 0xDEDB, - 26622 - 19968: 0xEFDE, - 26642 - 19968: 0xE2E3, - 26643 - 19968: 0xEEFB, - 26646 - 19968: 0xDFF7, - 26647 - 19968: 0xD7CA, - 26657 - 19968: 0xCEE8, - 26658 - 19968: 0xDBDB, - 26666 - 19968: 0xF1BB, - 26671 - 19968: 0xE9F1, - 26680 - 19968: 0xFAB7, - 26681 - 19968: 0xD0C6, - 26684 - 19968: 0xCCAB, - 26685 - 19968: 0xEEA8, - 26688 - 19968: 0xCBFA, - 26689 - 19968: 0xF9F9, - 26690 - 19968: 0xCCFD, - 26691 - 19968: 0xD3FE, - 26696 - 19968: 0xE4D0, - 26702 - 19968: 0xF2EE, - 26704 - 19968: 0xD4D5, - 26705 - 19968: 0xDFCD, - 26707 - 19968: 0xFCB8, - 26708 - 19968: 0xD1D0, - 26733 - 19968: 0xF2CD, - 26742 - 19968: 0xF7D2, - 26751 - 19968: 0xCAD4, - 26753 - 19968: 0xD5D9, - 26757 - 19968: 0xD8DE, - 26767 - 19968: 0xCDD9, - 26771 - 19968: 0xEEA9, - 26772 - 19968: 0xF6BC, - 26775 - 19968: 0xCCDB, - 26781 - 19968: 0xF0C9, - 26783 - 19968: 0xFCFC, - 26785 - 19968: 0xE8C9, - 26786 - 19968: 0xF4FE, - 26791 - 19968: 0xE7FC, - 26792 - 19968: 0xD7DE, - 26797 - 19968: 0xDEDC, - 26799 - 19968: 0xF0AC, - 26800 - 19968: 0xCCFE, - 26801 - 19968: 0xCDE1, - 26803 - 19968: 0xE1BA, - 26805 - 19968: 0xDBEF, - 26806 - 19968: 0xDAB2, - 26820 - 19968: 0xD1A5, - 26821 - 19968: 0xDCB8, - 26825 - 19968: 0xD8F6, - 26827 - 19968: 0xD1A4, - 26829 - 19968: 0xCDE2, - 26834 - 19968: 0xDCEA, - 26837 - 19968: 0xF0F7, - 26839 - 19968: 0xF0CA, - 26840 - 19968: 0xD0BE, - 26842 - 19968: 0xDDDC, - 26847 - 19968: 0xD4D6, - 26848 - 19968: 0xD3D6, - 26855 - 19968: 0xEDD0, - 26856 - 19968: 0xCDA1, - 26862 - 19968: 0xDFB5, - 26866 - 19968: 0xDFF8, - 26873 - 19968: 0xD4A1, - 26874 - 19968: 0xCEB2, - 26880 - 19968: 0xE8CA, - 26885 - 19968: 0xEBF5, - 26893 - 19968: 0xE3D5, - 26894 - 19968: 0xF5D0, - 26898 - 19968: 0xF5A1, - 26919 - 19968: 0xD9A7, - 26928 - 19968: 0xE5AB, - 26941 - 19968: 0xE6CB, - 26943 - 19968: 0xF5F1, - 26954 - 19968: 0xE5C5, - 26963 - 19968: 0xF9A3, - 26964 - 19968: 0xE0DB, - 26965 - 19968: 0xF6EB, - 26967 - 19968: 0xCBF1, - 26969 - 19968: 0xD9EA, - 26970 - 19968: 0xF5A2, - 26974 - 19968: 0xD7D1, - 26976 - 19968: 0xD1F8, - 26977 - 19968: 0xEAF8, - 26978 - 19968: 0xEAF9, - 26979 - 19968: 0xDAB3, - 26984 - 19968: 0xEFDF, - 26987 - 19968: 0xF1EF, - 26989 - 19968: 0xE5F6, - 26990 - 19968: 0xEEBF, - 26991 - 19968: 0xE2E4, - 26997 - 19968: 0xD0BF, - 26999 - 19968: 0xFAAC, - 27000 - 19968: 0xF5D1, - 27001 - 19968: 0xE7B3, - 27029 - 19968: 0xE9BE, - 27035 - 19968: 0xF2CE, - 27036 - 19968: 0xDBB4, - 27045 - 19968: 0xFCCE, - 27047 - 19968: 0xDDEE, - 27054 - 19968: 0xE7B4, - 27060 - 19968: 0xD7B4, - 27067 - 19968: 0xF7B4, - 27073 - 19968: 0xCDBE, - 27075 - 19968: 0xDAE9, - 27083 - 19968: 0xCFB0, - 27084 - 19968: 0xF7D9, - 27085 - 19968: 0xF3E6, - 27088 - 19968: 0xCED9, - 27112 - 19968: 0xCEAA, - 27114 - 19968: 0xCBC8, - 27131 - 19968: 0xD0A7, - 27133 - 19968: 0xF0CB, - 27135 - 19968: 0xD0C7, - 27138 - 19968: 0xE4C5, - 27146 - 19968: 0xDBE0, - 27153 - 19968: 0xD5DA, - 27155 - 19968: 0xD7A7, - 27159 - 19968: 0xEEC0, - 27161 - 19968: 0xF8F6, - 27166 - 19968: 0xF5D2, - 27167 - 19968: 0xEDE9, - 27169 - 19968: 0xD9BC, - 27171 - 19968: 0xE5C6, - 27189 - 19968: 0xF5A3, - 27192 - 19968: 0xDAD4, - 27193 - 19968: 0xE2A7, - 27194 - 19968: 0xFBFC, - 27197 - 19968: 0xF1DC, - 27204 - 19968: 0xCAF4, - 27208 - 19968: 0xE8FA, - 27211 - 19968: 0xCEE9, - 27218 - 19968: 0xE9F8, - 27219 - 19968: 0xE2E5, - 27224 - 19968: 0xD0B9, - 27225 - 19968: 0xD4F2, - 27231 - 19968: 0xD1A6, - 27233 - 19968: 0xDFCE, - 27243 - 19968: 0xFCF4, - 27264 - 19968: 0xD3AA, - 27268 - 19968: 0xCCAC, - 27273 - 19968: 0xEFE0, - 27277 - 19968: 0xE5E5, - 27278 - 19968: 0xD0D5, - 27287 - 19968: 0xDBFC, - 27292 - 19968: 0xFCE6, - 27298 - 19968: 0xCBFE, - 27299 - 19968: 0xEDEA, - 27315 - 19968: 0xDEB1, - 27323 - 19968: 0xF9E3, - 27330 - 19968: 0xD4A2, - 27331 - 19968: 0xCFF6, - 27347 - 19968: 0xD6D0, - 27354 - 19968: 0xD5EA, - 27355 - 19968: 0xF1EE, - 27382 - 19968: 0xFACB, - 27387 - 19968: 0xE5A1, - 27396 - 19968: 0xD5B1, - 27402 - 19968: 0xCFED, - 27404 - 19968: 0xEDEB, - 27410 - 19968: 0xD5B2, - 27414 - 19968: 0xD5BC, - 27424 - 19968: 0xFDE2, - 27425 - 19968: 0xF3AD, - 27427 - 19968: 0xFDDB, - 27442 - 19968: 0xE9B0, - 27450 - 19968: 0xD1A7, - 27453 - 19968: 0xFDE3, - 27454 - 19968: 0xCEB3, - 27462 - 19968: 0xFDE4, - 27463 - 19968: 0xFACE, - 27468 - 19968: 0xCAB0, - 27470 - 19968: 0xF7A7, - 27472 - 19968: 0xCFB1, - 27487 - 19968: 0xE6A2, - 27489 - 19968: 0xFCB6, - 27490 - 19968: 0xF2AD, - 27491 - 19968: 0xEFE1, - 27492 - 19968: 0xF3AE, - 27493 - 19968: 0xDCC6, - 27494 - 19968: 0xD9EB, - 27498 - 19968: 0xE8E0, - 27506 - 19968: 0xE1A8, - 27511 - 19968: 0xD5F6, - 27512 - 19968: 0xCFFD, - 27515 - 19968: 0xDEDD, - 27519 - 19968: 0xD9D1, - 27523 - 19968: 0xE4EA, - 27524 - 19968: 0xF2CF, - 27526 - 19968: 0xF7BF, - 27529 - 19968: 0xE2E6, - 27530 - 19968: 0xE2A8, - 27542 - 19968: 0xE3D6, - 27544 - 19968: 0xEDD1, - 27550 - 19968: 0xE9F9, - 27566 - 19968: 0xD6B1, - 27567 - 19968: 0xDEB2, - 27570 - 19968: 0xE0E8, - 27573 - 19968: 0xD3AB, - 27575 - 19968: 0xEBDC, - 27578 - 19968: 0xDFAF, - 27580 - 19968: 0xCAC3, - 27583 - 19968: 0xEEFC, - 27585 - 19968: 0xFDC3, - 27589 - 19968: 0xEBF6, - 27590 - 19968: 0xCFB2, - 27595 - 19968: 0xD9EC, - 27597 - 19968: 0xD9BD, - 27599 - 19968: 0xD8DF, - 27602 - 19968: 0xD4B8, - 27603 - 19968: 0xEBBE, - 27604 - 19968: 0xDDEF, - 27606 - 19968: 0xDDF0, - 27607 - 19968: 0xDDF1, - 27608 - 19968: 0xDDF2, - 27611 - 19968: 0xD9BE, - 27627 - 19968: 0xFBC6, - 27628 - 19968: 0xCFB3, - 27656 - 19968: 0xEEFD, - 27663 - 19968: 0xE4AB, - 27665 - 19968: 0xDAC5, - 27667 - 19968: 0xD8EC, - 27683 - 19968: 0xD1A8, - 27700 - 19968: 0xE2A9, - 27703 - 19968: 0xDEBC, - 27704 - 19968: 0xE7B5, - 27710 - 19968: 0xDBF0, - 27712 - 19968: 0xEFE2, - 27713 - 19968: 0xF1F0, - 27714 - 19968: 0xCFB4, - 27726 - 19968: 0xDBF1, - 27728 - 19968: 0xE0B1, - 27733 - 19968: 0xDFA5, - 27735 - 19968: 0xF9D2, - 27738 - 19968: 0xE7FD, - 27741 - 19968: 0xE6A3, - 27742 - 19968: 0xFBF1, - 27743 - 19968: 0xCBB0, - 27744 - 19968: 0xF2AE, - 27752 - 19968: 0xCDE7, - 27754 - 19968: 0xE8DC, - 27757 - 19968: 0xE7D7, - 27760 - 19968: 0xF7C0, - 27762 - 19968: 0xD0E3, - 27766 - 19968: 0xDAA1, - 27770 - 19968: 0xCCBD, - 27773 - 19968: 0xD1A9, - 27774 - 19968: 0xDDCC, - 27777 - 19968: 0xE3FE, - 27778 - 19968: 0xD1AA, - 27779 - 19968: 0xE8AA, - 27781 - 19968: 0xEAB6, - 27782 - 19968: 0xF9FA, - 27783 - 19968: 0xE6CC, - 27784 - 19968: 0xF6D8, - 27788 - 19968: 0xD4C7, - 27792 - 19968: 0xD9CB, - 27794 - 19968: 0xD9D2, - 27795 - 19968: 0xD3CB, - 27796 - 19968: 0xD8F7, - 27797 - 19968: 0xDAA9, - 27798 - 19968: 0xF5F8, - 27801 - 19968: 0xDEDE, - 27802 - 19968: 0xF2AF, - 27803 - 19968: 0xF8A9, - 27819 - 19968: 0xD8C8, - 27822 - 19968: 0xEEC1, - 27827 - 19968: 0xF9C1, - 27832 - 19968: 0xDDF3, - 27833 - 19968: 0xEAFA, - 27835 - 19968: 0xF6BD, - 27836 - 19968: 0xE1BB, - 27837 - 19968: 0xCDBF, - 27838 - 19968: 0xF4D4, - 27839 - 19968: 0xE6CD, - 27841 - 19968: 0xFCCF, - 27842 - 19968: 0xFBA2, - 27844 - 19968: 0xE0DC, - 27849 - 19968: 0xF4BB, - 27850 - 19968: 0xDAD5, - 27852 - 19968: 0xF9B2, - 27859 - 19968: 0xFBF2, - 27861 - 19968: 0xDBF6, - 27863 - 19968: 0xDEDF, - 27867 - 19968: 0xDBF2, - 27873 - 19968: 0xF8DC, - 27874 - 19968: 0xF7EE, - 27875 - 19968: 0xEBE8, - 27877 - 19968: 0xD2FA, - 27880 - 19968: 0xF1BC, - 27883 - 19968: 0xFADA, - 27886 - 19968: 0xDAEA, - 27887 - 19968: 0xDAC6, - 27888 - 19968: 0xF7C1, - 27891 - 19968: 0xE7B6, - 27915 - 19968: 0xE5C7, - 27916 - 19968: 0xD6AC, - 27921 - 19968: 0xDCC7, - 27927 - 19968: 0xE1A9, - 27929 - 19968: 0xE2AA, - 27931 - 19968: 0xD5A6, - 27934 - 19968: 0xD4D7, - 27941 - 19968: 0xF2D0, - 27943 - 19968: 0xEAFB, - 27945 - 19968: 0xE0DD, - 27946 - 19968: 0xFBF3, - 27954 - 19968: 0xF1BD, - 27957 - 19968: 0xE2E7, - 27958 - 19968: 0xFDD7, - 27960 - 19968: 0xCEC8, - 27961 - 19968: 0xEAB7, - 27963 - 19968: 0xFCC0, - 27965 - 19968: 0xFDE7, - 27966 - 19968: 0xF7EF, - 27969 - 19968: 0xD7B5, - 27993 - 19968: 0xEFBA, - 27994 - 19968: 0xF1DD, - 27996 - 19968: 0xDEB3, - 28003 - 19968: 0xE8CB, - 28006 - 19968: 0xF8DD, - 28009 - 19968: 0xFBC7, - 28010 - 19968: 0xD5C8, - 28012 - 19968: 0xD7DF, - 28014 - 19968: 0xDDA9, - 28020 - 19968: 0xE9B1, - 28023 - 19968: 0xFAAD, - 28024 - 19968: 0xF6D9, - 28025 - 19968: 0xFAF4, - 28031 - 19968: 0xF8AA, - 28037 - 19968: 0xE6EE, - 28039 - 19968: 0xCCDC, - 28040 - 19968: 0xE1BC, - 28041 - 19968: 0xE0EF, - 28044 - 19968: 0xE9BF, - 28045 - 19968: 0xFCFD, - 28046 - 19968: 0xE6CE, - 28049 - 19968: 0xE1D7, - 28051 - 19968: 0xE6CF, - 28053 - 19968: 0xF4F1, - 28079 - 19968: 0xE4F3, - 28082 - 19968: 0xE4FB, - 28085 - 19968: 0xF9E4, - 28096 - 19968: 0xEFE3, - 28099 - 19968: 0xCFEE, - 28100 - 19968: 0xF6BE, - 28101 - 19968: 0xE0B2, - 28102 - 19968: 0xFCFE, - 28103 - 19968: 0xD1AB, - 28107 - 19968: 0xD7FA, - 28111 - 19968: 0xFBC8, - 28113 - 19968: 0xE2D7, - 28120 - 19968: 0xD4A3, - 28121 - 19968: 0xF0F8, - 28122 - 19968: 0xD7A8, - 28126 - 19968: 0xE1E7, - 28129 - 19968: 0xD3BF, - 28136 - 19968: 0xEFE4, - 28138 - 19968: 0xD7C5, - 28139 - 19968: 0xEBE2, - 28142 - 19968: 0xFCE7, - 28145 - 19968: 0xE4A2, - 28147 - 19968: 0xE2E8, - 28149 - 19968: 0xE6D0, - 28151 - 19968: 0xFBE8, - 28152 - 19968: 0xF4E8, - 28153 - 19968: 0xE5F4, - 28154 - 19968: 0xF4BC, - 28155 - 19968: 0xF4D5, - 28183 - 19968: 0xDFB6, - 28185 - 19968: 0xFCB9, - 28186 - 19968: 0xEEC2, - 28187 - 19968: 0xCAF5, - 28191 - 19968: 0xEFE5, - 28192 - 19968: 0xCBE2, - 28193 - 19968: 0xD4A4, - 28195 - 19968: 0xDEE0, - 28196 - 19968: 0xDAFD, - 28197 - 19968: 0xE4C6, - 28198 - 19968: 0xE8BE, - 28203 - 19968: 0xE0DE, - 28204 - 19968: 0xF6B4, - 28205 - 19968: 0xEAD2, - 28207 - 19968: 0xF9FB, - 28210 - 19968: 0xE0C2, - 28212 - 19968: 0xCAE4, - 28214 - 19968: 0xE7B7, - 28216 - 19968: 0xEAFD, - 28218 - 19968: 0xD9DD, - 28220 - 19968: 0xDAB4, - 28221 - 19968: 0xEEAA, - 28222 - 19968: 0xFBE9, - 28227 - 19968: 0xDBCB, - 28228 - 19968: 0xDAB5, - 28234 - 19968: 0xF1BE, - 28237 - 19968: 0xD3AC, - 28246 - 19968: 0xFBC9, - 28248 - 19968: 0xDFCF, - 28251 - 19968: 0xD3C0, - 28252 - 19968: 0xE3D7, - 28254 - 19968: 0xEFE6, - 28255 - 19968: 0xFCD0, - 28263 - 19968: 0xE9C0, - 28267 - 19968: 0xF5D3, - 28270 - 19968: 0xECDC, - 28271 - 19968: 0xF7B7, - 28274 - 19968: 0xEAB8, - 28275 - 19968: 0xD1F9, - 28282 - 19968: 0xDCC8, - 28304 - 19968: 0xEAB9, - 28310 - 19968: 0xF1DE, - 28316 - 19968: 0xD7B6, - 28317 - 19968: 0xCFB5, - 28319 - 19968: 0xD9A8, - 28322 - 19968: 0xECEE, - 28325 - 19968: 0xDDAA, - 28330 - 19968: 0xCDA2, - 28331 - 19968: 0xE8AE, - 28335 - 19968: 0xE1BD, - 28337 - 19968: 0xF2D1, - 28342 - 19968: 0xE9C1, - 28346 - 19968: 0xD2FC, - 28354 - 19968: 0xDBB5, - 28356 - 19968: 0xF3E7, - 28357 - 19968: 0xD8FE, - 28361 - 19968: 0xFCD1, - 28363 - 19968: 0xEDB2, - 28364 - 19968: 0xF4AF, - 28366 - 19968: 0xFBA3, - 28369 - 19968: 0xFCC1, - 28371 - 19968: 0xEEAB, - 28372 - 19968: 0xD4A5, - 28399 - 19968: 0xF4F2, - 28404 - 19968: 0xEED9, - 28408 - 19968: 0xFBCA, - 28414 - 19968: 0xCDE3, - 28415 - 19968: 0xD8BB, - 28417 - 19968: 0xE5DB, - 28418 - 19968: 0xF8F7, - 28422 - 19968: 0xF6D4, - 28431 - 19968: 0xD7A9, - 28433 - 19968: 0xCBC9, - 28436 - 19968: 0xE6D1, - 28437 - 19968: 0xF0CC, - 28448 - 19968: 0xD8AE, - 28450 - 19968: 0xF9D3, - 28451 - 19968: 0xD5FE, - 28459 - 19968: 0xD8BC, - 28460 - 19968: 0xF2B0, - 28465 - 19968: 0xE2AB, - 28466 - 19968: 0xF3E8, - 28472 - 19968: 0xEFC2, - 28479 - 19968: 0xEDEC, - 28481 - 19968: 0xE7B8, - 28497 - 19968: 0xDAFE, - 28500 - 19968: 0xCCBE, - 28503 - 19968: 0xF2FC, - 28504 - 19968: 0xDAEB, - 28506 - 19968: 0xE2D8, - 28507 - 19968: 0xEDD6, - 28510 - 19968: 0xD6D1, - 28511 - 19968: 0xE0B3, - 28514 - 19968: 0xFCD2, - 28516 - 19968: 0xEBC8, - 28525 - 19968: 0xD3C1, - 28526 - 19968: 0xF0CD, - 28528 - 19968: 0xCFF7, - 28538 - 19968: 0xEDD2, - 28540 - 19968: 0xD4D8, - 28541 - 19968: 0xDCC9, - 28542 - 19968: 0xD7F1, - 28545 - 19968: 0xDFBB, - 28548 - 19968: 0xF3A5, - 28552 - 19968: 0xF4CD, - 28557 - 19968: 0xF1BF, - 28558 - 19968: 0xF8B1, - 28560 - 19968: 0xE9FA, - 28564 - 19968: 0xFBCB, - 28567 - 19968: 0xCAD5, - 28579 - 19968: 0xF9D4, - 28580 - 19968: 0xF7CA, - 28583 - 19968: 0xD6C8, - 28590 - 19968: 0xFCE8, - 28591 - 19968: 0xF3BD, - 28593 - 19968: 0xEEFE, - 28595 - 19968: 0xE7FE, - 28601 - 19968: 0xD3C2, - 28606 - 19968: 0xD3B6, - 28608 - 19968: 0xCCAD, - 28609 - 19968: 0xF6FA, - 28610 - 19968: 0xD6B2, - 28611 - 19968: 0xD2D8, - 28618 - 19968: 0xE7D8, - 28629 - 19968: 0xE3A5, - 28634 - 19968: 0xE7B9, - 28639 - 19968: 0xF0AD, - 28640 - 19968: 0xFBCC, - 28641 - 19968: 0xEBA1, - 28644 - 19968: 0xD4A6, - 28649 - 19968: 0xFBCD, - 28651 - 19968: 0xD5BD, - 28652 - 19968: 0xF1DF, - 28655 - 19968: 0xF6FB, - 28657 - 19968: 0xDEB4, - 28670 - 19968: 0xD5EB, - 28673 - 19968: 0xE5C8, - 28677 - 19968: 0xFBA4, - 28678 - 19968: 0xD4B9, - 28681 - 19968: 0xDEE1, - 28683 - 19968: 0xE4A3, - 28687 - 19968: 0xD7B7, - 28689 - 19968: 0xF8EE, - 28693 - 19968: 0xDEB5, - 28696 - 19968: 0xD6D2, - 28698 - 19968: 0xF9D5, - 28699 - 19968: 0xE7BA, - 28700 - 19968: 0xEBD5, - 28701 - 19968: 0xD5F7, - 28702 - 19968: 0xEFE7, - 28703 - 19968: 0xE1BE, - 28707 - 19968: 0xFAAE, - 28711 - 19968: 0xD6E9, - 28712 - 19968: 0xD6EE, - 28719 - 19968: 0xE7BB, - 28727 - 19968: 0xECCB, - 28734 - 19968: 0xD5B3, - 28748 - 19968: 0xCEB4, - 28752 - 19968: 0xFBA5, - 28753 - 19968: 0xE1EE, - 28760 - 19968: 0xF7A8, - 28765 - 19968: 0xFBCE, - 28771 - 19968: 0xD8BD, - 28779 - 19968: 0xFBFD, - 28784 - 19968: 0xFCE9, - 28792 - 19968: 0xCFB6, - 28796 - 19968: 0xEDC7, - 28797 - 19968: 0xEEAC, - 28805 - 19968: 0xCCDD, - 28810 - 19968: 0xF6A7, - 28814 - 19968: 0xE6FA, - 28818 - 19968: 0xF5A4, - 28824 - 19968: 0xFDDC, - 28825 - 19968: 0xEDB3, - 28826 - 19968: 0xCEC9, - 28833 - 19968: 0xEFE8, - 28836 - 19968: 0xE1BF, - 28843 - 19968: 0xFADB, - 28844 - 19968: 0xCBE3, - 28845 - 19968: 0xF7A9, - 28847 - 19968: 0xFBA6, - 28851 - 19968: 0xDCB9, - 28855 - 19968: 0xF1C0, - 28856 - 19968: 0xEDC8, - 28857 - 19968: 0xEFC3, - 28872 - 19968: 0xD6AD, - 28875 - 19968: 0xFDCE, - 28879 - 19968: 0xE8A1, - 28888 - 19968: 0xFBF4, - 28889 - 19968: 0xD5A7, - 28893 - 19968: 0xF1F6, - 28895 - 19968: 0xE6D3, - 28913 - 19968: 0xCCDE, - 28921 - 19968: 0xF8B2, - 28925 - 19968: 0xDCEB, - 28932 - 19968: 0xFDB6, - 28937 - 19968: 0xE5EA, - 28940 - 19968: 0xF1E0, - 28953 - 19968: 0xDBCC, - 28954 - 19968: 0xDDCD, - 28958 - 19968: 0xD4C8, - 28961 - 19968: 0xD9ED, - 28966 - 19968: 0xF5A5, - 28976 - 19968: 0xE6FB, - 28982 - 19968: 0xE6D4, - 28999 - 19968: 0xFDC8, - 29001 - 19968: 0xD6A1, - 29002 - 19968: 0xFDBF, - 29004 - 19968: 0xFCD3, - 29006 - 19968: 0xEFA1, - 29008 - 19968: 0xE7BC, - 29014 - 19968: 0xD1EE, - 29017 - 19968: 0xE6D5, - 29020 - 19968: 0xE9F2, - 29022 - 19968: 0xDFB0, - 29028 - 19968: 0xD8E0, - 29029 - 19968: 0xFCBA, - 29030 - 19968: 0xFDAF, - 29031 - 19968: 0xF0CE, - 29033 - 19968: 0xDBE1, - 29036 - 19968: 0xE5C9, - 29038 - 19968: 0xEDB4, - 29053 - 19968: 0xE0C3, - 29060 - 19968: 0xE3D8, - 29065 - 19968: 0xE9FB, - 29066 - 19968: 0xEAA8, - 29071 - 19968: 0xFDB7, - 29074 - 19968: 0xFBA7, - 29076 - 19968: 0xE9C2, - 29081 - 19968: 0xFDF7, - 29087 - 19968: 0xE2D9, - 29090 - 19968: 0xDCEC, - 29100 - 19968: 0xE8A2, - 29105 - 19968: 0xE6F0, - 29113 - 19968: 0xFDF8, - 29114 - 19968: 0xFDF9, - 29118 - 19968: 0xF6BF, - 29121 - 19968: 0xE7A7, - 29123 - 19968: 0xE6D7, - 29128 - 19968: 0xD4F3, - 29129 - 19968: 0xD4C9, - 29134 - 19968: 0xD6FA, - 29136 - 19968: 0xD7F2, - 29138 - 19968: 0xE1C0, - 29140 - 19968: 0xDBE2, - 29141 - 19968: 0xE6D8, - 29151 - 19968: 0xE7BD, - 29157 - 19968: 0xF0CF, - 29158 - 19968: 0xF3BE, - 29159 - 19968: 0xE2AC, - 29165 - 19968: 0xF5B7, - 29166 - 19968: 0xE0F0, - 29179 - 19968: 0xFDB8, - 29180 - 19968: 0xE3E8, - 29182 - 19968: 0xD4A7, - 29183 - 19968: 0xE8FC, - 29184 - 19968: 0xFAD2, - 29190 - 19968: 0xF8EF, - 29200 - 19968: 0xD6D3, - 29211 - 19968: 0xD5B4, - 29226 - 19968: 0xF0D0, - 29228 - 19968: 0xF7F0, - 29229 - 19968: 0xEEB3, - 29232 - 19968: 0xEABA, - 29234 - 19968: 0xEAD3, - 29237 - 19968: 0xEDC9, - 29238 - 19968: 0xDDAB, - 29242 - 19968: 0xE5AC, - 29243 - 19968: 0xFDA1, - 29245 - 19968: 0xDFD0, - 29246 - 19968: 0xECB3, - 29248 - 19968: 0xDFD1, - 29254 - 19968: 0xEDED, - 29255 - 19968: 0xF8B8, - 29256 - 19968: 0xF7FA, - 29260 - 19968: 0xF8AB, - 29266 - 19968: 0xF4E0, - 29272 - 19968: 0xD4BA, - 29273 - 19968: 0xE4B3, - 29275 - 19968: 0xE9DA, - 29277 - 19968: 0xDEB6, - 29279 - 19968: 0xD9BF, - 29281 - 19968: 0xD9C0, - 29282 - 19968: 0xD6EF, - 29287 - 19968: 0xD9CC, - 29289 - 19968: 0xDAAA, - 29298 - 19968: 0xDFE5, - 29305 - 19968: 0xF7E5, - 29309 - 19968: 0xCCB2, - 29312 - 19968: 0xDFF9, - 29313 - 19968: 0xD7E0, - 29346 - 19968: 0xD4BB, - 29351 - 19968: 0xFDFA, - 29356 - 19968: 0xCCB3, - 29359 - 19968: 0xDBF3, - 29376 - 19968: 0xDFD2, - 29378 - 19968: 0xCECA, - 29380 - 19968: 0xEEDA, - 29390 - 19968: 0xE4E4, - 29392 - 19968: 0xFBCF, - 29399 - 19968: 0xCFB7, - 29401 - 19968: 0xEEC3, - 29409 - 19968: 0xCEEA, - 29417 - 19968: 0xE2AD, - 29432 - 19968: 0xD7E1, - 29433 - 19968: 0xFAF5, - 29436 - 19968: 0xD5C9, - 29437 - 19968: 0xF8AC, - 29450 - 19968: 0xE7D9, - 29462 - 19968: 0xF3E9, - 29467 - 19968: 0xD8ED, - 29468 - 19968: 0xE3C4, - 29469 - 19968: 0xF0F1, - 29477 - 19968: 0xE8E5, - 29481 - 19968: 0xE0FA, - 29482 - 19968: 0xEEC4, - 29483 - 19968: 0xD9DE, - 29494 - 19968: 0xEBA2, - 29495 - 19968: 0xEBA3, - 29502 - 19968: 0xFCC2, - 29503 - 19968: 0xEABB, - 29508 - 19968: 0xE8AB, - 29509 - 19968: 0xDEE2, - 29520 - 19968: 0xEDEF, - 29522 - 19968: 0xE8A3, - 29527 - 19968: 0xCFF1, - 29544 - 19968: 0xD4BC, - 29546 - 19968: 0xFCEA, - 29552 - 19968: 0xE7BE, - 29554 - 19968: 0xFCF2, - 29557 - 19968: 0xD6B4, - 29560 - 19968: 0xE2AE, - 29562 - 19968: 0xD3B7, - 29563 - 19968: 0xFACC, - 29572 - 19968: 0xFADC, - 29574 - 19968: 0xEDB5, - 29575 - 19968: 0xE1E3, - 29577 - 19968: 0xE8AC, - 29579 - 19968: 0xE8DD, - 29582 - 19968: 0xEFE9, - 29588 - 19968: 0xF4BD, - 29590 - 19968: 0xCFB8, - 29591 - 19968: 0xE9DB, - 29592 - 19968: 0xD1AC, - 29599 - 19968: 0xDAC7, - 29607 - 19968: 0xEBC9, - 29609 - 19968: 0xE8CC, - 29613 - 19968: 0xDEB7, - 29618 - 19968: 0xD6BC, - 29619 - 19968: 0xD3E5, - 29625 - 19968: 0xFADD, - 29632 - 19968: 0xDAD6, - 29634 - 19968: 0xCAB1, - 29641 - 19968: 0xDAC8, - 29642 - 19968: 0xDFA6, - 29644 - 19968: 0xF9B3, - 29645 - 19968: 0xF2D2, - 29647 - 19968: 0xCAC4, - 29654 - 19968: 0xCECB, - 29657 - 19968: 0xCDF5, - 29661 - 19968: 0xFDB0, - 29662 - 19968: 0xD5A8, - 29664 - 19968: 0xF1C1, - 29667 - 19968: 0xE2E9, - 29668 - 19968: 0xDCCA, - 29669 - 19968: 0xECB4, - 29670 - 19968: 0xFAC0, - 29673 - 19968: 0xFBA8, - 29674 - 19968: 0xD0A8, - 29677 - 19968: 0xDAEC, - 29687 - 19968: 0xD9EE, - 29689 - 19968: 0xE0FB, - 29693 - 19968: 0xEFEA, - 29694 - 19968: 0xFADE, - 29697 - 19968: 0xE0C4, - 29699 - 19968: 0xCFB9, - 29701 - 19968: 0xD5CA, - 29702 - 19968: 0xD7E2, - 29703 - 19968: 0xE2AF, - 29705 - 19968: 0xD7B8, - 29715 - 19968: 0xE8CD, - 29723 - 19968: 0xF6DA, - 29728 - 19968: 0xEFA2, - 29729 - 19968: 0xE2DA, - 29730 - 19968: 0xF6FC, - 29733 - 19968: 0xFBD0, - 29734 - 19968: 0xD1AD, - 29736 - 19968: 0xCDE4, - 29738 - 19968: 0xD1AE, - 29739 - 19968: 0xDCED, - 29740 - 19968: 0xE8CE, - 29742 - 19968: 0xF0F9, - 29743 - 19968: 0xCEB5, - 29744 - 19968: 0xE6FC, - 29747 - 19968: 0xD7FB, - 29748 - 19968: 0xD0D6, - 29749 - 19968: 0xDDF5, - 29750 - 19968: 0xF7F1, - 29752 - 19968: 0xF6FD, - 29754 - 19968: 0xDBF7, - 29759 - 19968: 0xFBEA, - 29760 - 19968: 0xE9DC, - 29761 - 19968: 0xD9C1, - 29763 - 19968: 0xF5F2, - 29764 - 19968: 0xE0C5, - 29771 - 19968: 0xEAD4, - 29781 - 19968: 0xF9C2, - 29783 - 19968: 0xEABC, - 29785 - 19968: 0xD2C5, - 29786 - 19968: 0xFBD1, - 29787 - 19968: 0xE7C0, - 29788 - 19968: 0xEBA5, - 29790 - 19968: 0xDFFA, - 29791 - 19968: 0xE3A2, - 29792 - 19968: 0xD7B9, - 29794 - 19968: 0xE9C3, - 29796 - 19968: 0xE8FD, - 29797 - 19968: 0xE8AF, - 29800 - 19968: 0xF2D3, - 29801 - 19968: 0xFBA9, - 29802 - 19968: 0xD8A5, - 29807 - 19968: 0xD5CB, - 29822 - 19968: 0xD0C8, - 29826 - 19968: 0xD1AF, - 29827 - 19968: 0xD7E3, - 29831 - 19968: 0xE0C6, - 29833 - 19968: 0xD6A2, - 29835 - 19968: 0xEDF0, - 29848 - 19968: 0xD7F3, - 29852 - 19968: 0xFCD4, - 29854 - 19968: 0xDAD7, - 29855 - 19968: 0xCCDF, - 29857 - 19968: 0xF2D4, - 29859 - 19968: 0xD1B0, - 29861 - 19968: 0xCCE0, - 29863 - 19968: 0xDBFD, - 29864 - 19968: 0xF3BF, - 29866 - 19968: 0xF0D1, - 29872 - 19968: 0xFCBB, - 29874 - 19968: 0xE2B0, - 29877 - 19968: 0xE6A5, - 29881 - 19968: 0xE2DB, - 29885 - 19968: 0xDFDE, - 29887 - 19968: 0xE0C7, - 29894 - 19968: 0xF2EF, - 29898 - 19968: 0xCCE1, - 29903 - 19968: 0xD6EA, - 29908 - 19968: 0xE7C2, - 29912 - 19968: 0xCEB6, - 29914 - 19968: 0xF3C0, - 29916 - 19968: 0xCDFE, - 29920 - 19968: 0xFBD2, - 29922 - 19968: 0xF8F8, - 29923 - 19968: 0xF7FB, - 29926 - 19968: 0xE8BF, - 29934 - 19968: 0xE8B7, - 29943 - 19968: 0xEDB6, - 29953 - 19968: 0xDCBA, - 29956 - 19968: 0xCCB4, - 29969 - 19968: 0xF1F7, - 29973 - 19968: 0xE8B8, - 29976 - 19968: 0xCAF6, - 29978 - 19968: 0xE4A4, - 29979 - 19968: 0xF4D6, - 29983 - 19968: 0xDFE6, - 29987 - 19968: 0xDFA7, - 29989 - 19968: 0xDFE7, - 29990 - 19968: 0xE1C1, - 29992 - 19968: 0xE9C4, - 29995 - 19968: 0xDCCB, - 29996 - 19968: 0xE9C5, - 30000 - 19968: 0xEFA3, - 30001 - 19968: 0xEBA6, - 30002 - 19968: 0xCBA3, - 30003 - 19968: 0xE3E9, - 30007 - 19968: 0xD1FB, - 30008 - 19968: 0xEFA4, - 30010 - 19968: 0xEFEB, - 30023 - 19968: 0xD0B4, - 30028 - 19968: 0xCDA3, - 30031 - 19968: 0xE8E6, - 30033 - 19968: 0xEFA5, - 30035 - 19968: 0xD3CC, - 30036 - 19968: 0xDAED, - 30041 - 19968: 0xD7BA, - 30043 - 19968: 0xF2D5, - 30044 - 19968: 0xF5E5, - 30045 - 19968: 0xD9EF, - 30050 - 19968: 0xF9B4, - 30053 - 19968: 0xD5D4, - 30054 - 19968: 0xFDCF, - 30058 - 19968: 0xDBE3, - 30063 - 19968: 0xF1E1, - 30064 - 19968: 0xECB6, - 30069 - 19968: 0xFBFE, - 30070 - 19968: 0xD3D7, - 30072 - 19968: 0xD1B1, - 30074 - 19968: 0xCBB1, - 30079 - 19968: 0xD1B2, - 30086 - 19968: 0xCBB2, - 30087 - 19968: 0xF1C2, - 30090 - 19968: 0xF4E1, - 30091 - 19968: 0xF9B5, - 30094 - 19968: 0xE1C3, - 30095 - 19968: 0xE1C2, - 30097 - 19968: 0xEBF7, - 30109 - 19968: 0xDFA8, - 30117 - 19968: 0xCBCA, - 30123 - 19968: 0xE6B9, - 30129 - 19968: 0xF8DE, - 30130 - 19968: 0xF9AA, - 30131 - 19968: 0xCAF7, - 30133 - 19968: 0xEDB7, - 30136 - 19968: 0xD3B8, - 30137 - 19968: 0xF2D6, - 30140 - 19968: 0xD4D9, - 30141 - 19968: 0xEEC5, - 30142 - 19968: 0xF2F0, - 30146 - 19968: 0xCAB2, - 30149 - 19968: 0xDCBB, - 30151 - 19968: 0xF1F8, - 30157 - 19968: 0xECB7, - 30162 - 19968: 0xE5CA, - 30164 - 19968: 0xF6C0, - 30165 - 19968: 0xFDDD, - 30168 - 19968: 0xD4E3, - 30169 - 19968: 0xCCE2, - 30171 - 19968: 0xF7D4, - 30178 - 19968: 0xD7E5, - 30192 - 19968: 0xD3C3, - 30194 - 19968: 0xD8A6, - 30196 - 19968: 0xF6C1, - 30202 - 19968: 0xDDF6, - 30204 - 19968: 0xCDC0, - 30208 - 19968: 0xE5DC, - 30221 - 19968: 0xE5CB, - 30233 - 19968: 0xE1C4, - 30239 - 19968: 0xE8B0, - 30240 - 19968: 0xF4B0, - 30241 - 19968: 0xF3EA, - 30242 - 19968: 0xDAEE, - 30244 - 19968: 0xD7BB, - 30246 - 19968: 0xE2B1, - 30267 - 19968: 0xD7AA, - 30274 - 19968: 0xD6FB, - 30284 - 19968: 0xE4DF, - 30286 - 19968: 0xCAD6, - 30290 - 19968: 0xEBA8, - 30294 - 19968: 0xDBFE, - 30305 - 19968: 0xF6C2, - 30308 - 19968: 0xEFBB, - 30313 - 19968: 0xD4FD, - 30316 - 19968: 0xE0C8, - 30320 - 19968: 0xE8B9, - 30322 - 19968: 0xEFA6, - 30328 - 19968: 0xCDA4, - 30331 - 19968: 0xD4F4, - 30332 - 19968: 0xDBA1, - 30333 - 19968: 0xDBDC, - 30334 - 19968: 0xDBDD, - 30340 - 19968: 0xEEDC, - 30342 - 19968: 0xCBCB, - 30343 - 19968: 0xFCD5, - 30350 - 19968: 0xCEEB, - 30352 - 19968: 0xCDC1, - 30355 - 19968: 0xFBD3, - 30382 - 19968: 0xF9AB, - 30394 - 19968: 0xF5D4, - 30399 - 19968: 0xD9A9, - 30402 - 19968: 0xE9DD, - 30403 - 19968: 0xDBCD, - 30406 - 19968: 0xDDCE, - 30408 - 19968: 0xE7C3, - 30410 - 19968: 0xECCC, - 30418 - 19968: 0xF9EC, - 30422 - 19968: 0xCBCC, - 30427 - 19968: 0xE0FC, - 30428 - 19968: 0xD4A8, - 30430 - 19968: 0xEDD3, - 30431 - 19968: 0xD8EF, - 30433 - 19968: 0xF2D7, - 30435 - 19968: 0xCAF8, - 30436 - 19968: 0xDAEF, - 30439 - 19968: 0xD6D4, - 30446 - 19968: 0xD9CD, - 30450 - 19968: 0xD8EE, - 30452 - 19968: 0xF2C1, - 30456 - 19968: 0xDFD3, - 30460 - 19968: 0xDAF0, - 30462 - 19968: 0xE2EA, - 30465 - 19968: 0xE0FD, - 30468 - 19968: 0xD8F8, - 30472 - 19968: 0xF7AF, - 30473 - 19968: 0xDAB6, - 30475 - 19968: 0xCAD7, - 30494 - 19968: 0xF2D8, - 30496 - 19968: 0xD8F9, - 30505 - 19968: 0xFADF, - 30519 - 19968: 0xCFEF, - 30520 - 19968: 0xD9C2, - 30522 - 19968: 0xF0D2, - 30524 - 19968: 0xE4D1, - 30528 - 19968: 0xF3B7, - 30541 - 19968: 0xFAE0, - 30555 - 19968: 0xEFEC, - 30561 - 19968: 0xE2B2, - 30563 - 19968: 0xD4BD, - 30566 - 19968: 0xD9CE, - 30571 - 19968: 0xF4E2, - 30585 - 19968: 0xD4A9, - 30590 - 19968: 0xCDC2, - 30591 - 19968: 0xE7DA, - 30603 - 19968: 0xF2D9, - 30609 - 19968: 0xD9AA, - 30622 - 19968: 0xD8BE, - 30629 - 19968: 0xDCAD, - 30636 - 19968: 0xE2EB, - 30637 - 19968: 0xD6FC, - 30640 - 19968: 0xCAF9, - 30643 - 19968: 0xD4DA, - 30651 - 19968: 0xF4D7, - 30652 - 19968: 0xCCA1, - 30655 - 19968: 0xCFBA, - 30679 - 19968: 0xF5B8, - 30683 - 19968: 0xD9C3, - 30684 - 19968: 0xD0E8, - 30690 - 19968: 0xE3C5, - 30691 - 19968: 0xEBF8, - 30693 - 19968: 0xF2B1, - 30697 - 19968: 0xCFBB, - 30701 - 19968: 0xD3AD, - 30702 - 19968: 0xE8E1, - 30703 - 19968: 0xCEEC, - 30707 - 19968: 0xE0B4, - 30722 - 19968: 0xDEE3, - 30738 - 19968: 0xDDF7, - 30757 - 19968: 0xF2B2, - 30758 - 19968: 0xF3F6, - 30759 - 19968: 0xF6DB, - 30764 - 19968: 0xD7FE, - 30770 - 19968: 0xF8DF, - 30772 - 19968: 0xF7F2, - 30789 - 19968: 0xD0A9, - 30799 - 19968: 0xE6DA, - 30813 - 19968: 0xF5A6, - 30827 - 19968: 0xD7BC, - 30828 - 19968: 0xCCE3, - 30831 - 19968: 0xE6DB, - 30844 - 19968: 0xDDDD, - 30849 - 19968: 0xD1B3, - 30855 - 19968: 0xEFED, - 30860 - 19968: 0xD6DE, - 30861 - 19968: 0xE4F4, - 30862 - 19968: 0xE1EF, - 30865 - 19968: 0xDDF8, - 30871 - 19968: 0xE8CF, - 30883 - 19968: 0xCAE5, - 30887 - 19968: 0xDCA1, - 30889 - 19968: 0xE0B5, - 30906 - 19968: 0xFCAC, - 30907 - 19968: 0xFCAD, - 30908 - 19968: 0xD8A7, - 30913 - 19968: 0xEDB8, - 30917 - 19968: 0xDBB6, - 30922 - 19968: 0xD6F0, - 30923 - 19968: 0xF3AF, - 30926 - 19968: 0xCDA5, - 30928 - 19968: 0xDAF1, - 30952 - 19968: 0xD8A8, - 30956 - 19968: 0xCCE4, - 30959 - 19968: 0xD1B4, - 30965 - 19968: 0xCAD8, - 30971 - 19968: 0xDAF2, - 30977 - 19968: 0xF5A7, - 30990 - 19968: 0xF5A8, - 30998 - 19968: 0xE6A6, - 31018 - 19968: 0xD5EC, - 31019 - 19968: 0xD5F8, - 31020 - 19968: 0xDAF3, - 31034 - 19968: 0xE3C6, - 31038 - 19968: 0xDEE4, - 31040 - 19968: 0xDEE5, - 31041 - 19968: 0xD1B5, - 31047 - 19968: 0xD1B6, - 31048 - 19968: 0xD1B7, - 31049 - 19968: 0xF2B3, - 31056 - 19968: 0xE9DE, - 31062 - 19968: 0xF0D3, - 31063 - 19968: 0xF2B4, - 31066 - 19968: 0xF0D4, - 31067 - 19968: 0xCBE4, - 31068 - 19968: 0xFBD4, - 31069 - 19968: 0xF5E6, - 31070 - 19968: 0xE3EA, - 31072 - 19968: 0xDEE6, - 31077 - 19968: 0xDFD4, - 31080 - 19968: 0xF8F9, - 31085 - 19968: 0xF0AE, - 31098 - 19968: 0xD1B8, - 31103 - 19968: 0xD6DF, - 31105 - 19968: 0xD0D7, - 31117 - 19968: 0xFCA1, - 31118 - 19968: 0xEFEE, - 31119 - 19968: 0xDCD8, - 31121 - 19968: 0xE9DF, - 31142 - 19968: 0xE5DD, - 31143 - 19968: 0xFDFB, - 31146 - 19968: 0xE0C9, - 31150 - 19968: 0xD6C9, - 31153 - 19968: 0xD4AA, - 31155 - 19968: 0xE5CC, - 31161 - 19968: 0xE9E0, - 31165 - 19968: 0xD0D8, - 31166 - 19968: 0xFCA2, - 31167 - 19968: 0xD4BE, - 31168 - 19968: 0xE2B3, - 31169 - 19968: 0xDEE7, - 31177 - 19968: 0xDCBC, - 31178 - 19968: 0xD2B6, - 31179 - 19968: 0xF5D5, - 31185 - 19968: 0xCEA1, - 31186 - 19968: 0xF5A9, - 31189 - 19968: 0xDDF9, - 31192 - 19968: 0xDDFA, - 31199 - 19968: 0xF0D5, - 31204 - 19968: 0xF6DF, - 31206 - 19968: 0xF2DA, - 31207 - 19968: 0xE4EB, - 31209 - 19968: 0xF2F1, - 31227 - 19968: 0xECB9, - 31232 - 19968: 0xFDFC, - 31237 - 19968: 0xE1AA, - 31240 - 19968: 0xCAD9, - 31243 - 19968: 0xEFEF, - 31245 - 19968: 0xF5AA, - 31252 - 19968: 0xECF9, - 31255 - 19968: 0xF8AD, - 31257 - 19968: 0xF2C2, - 31258 - 19968: 0xF6C3, - 31260 - 19968: 0xD7D2, - 31263 - 19968: 0xF9A2, - 31264 - 19968: 0xF0D6, - 31278 - 19968: 0xF0FA, - 31281 - 19968: 0xF6E0, - 31286 - 19968: 0xE9F3, - 31287 - 19968: 0xF2C3, - 31291 - 19968: 0xD4AB, - 31292 - 19968: 0xCAB3, - 31293 - 19968: 0xCDA6, - 31295 - 19968: 0xCDC3, - 31296 - 19968: 0xCDDA, - 31302 - 19968: 0xD9CF, - 31305 - 19968: 0xF6C4, - 31309 - 19968: 0xEEDD, - 31310 - 19968: 0xE7C4, - 31319 - 19968: 0xE2B4, - 31329 - 19968: 0xDFE2, - 31330 - 19968: 0xE7DB, - 31337 - 19968: 0xE8B1, - 31339 - 19968: 0xFCAE, - 31344 - 19968: 0xE5CD, - 31348 - 19968: 0xFAEB, - 31350 - 19968: 0xCFBC, - 31353 - 19968: 0xCFE2, - 31354 - 19968: 0xCDF6, - 31357 - 19968: 0xEFF0, - 31359 - 19968: 0xF4BE, - 31361 - 19968: 0xD4CD, - 31364 - 19968: 0xF3B8, - 31368 - 19968: 0xE9A1, - 31378 - 19968: 0xF2F2, - 31379 - 19968: 0xF3EB, - 31381 - 19968: 0xF0D7, - 31384 - 19968: 0xCFD7, - 31391 - 19968: 0xCFDF, - 31401 - 19968: 0xE8C0, - 31402 - 19968: 0xE8C1, - 31406 - 19968: 0xCFE3, - 31407 - 19968: 0xE9A2, - 31418 - 19968: 0xD0AA, - 31428 - 19968: 0xF3C1, - 31429 - 19968: 0xD0AB, - 31431 - 19968: 0xD4E4, - 31434 - 19968: 0xEFBC, - 31435 - 19968: 0xD8A1, - 31447 - 19968: 0xD9DF, - 31449 - 19968: 0xF3D7, - 31453 - 19968: 0xDCBD, - 31455 - 19968: 0xCCE5, - 31456 - 19968: 0xEDF1, - 31459 - 19968: 0xF1E2, - 31461 - 19968: 0xD4DB, - 31466 - 19968: 0xE2B5, - 31469 - 19968: 0xCAE6, - 31471 - 19968: 0xD3AE, - 31478 - 19968: 0xCCE6, - 31481 - 19968: 0xF1D3, - 31482 - 19968: 0xF5E7, - 31487 - 19968: 0xCADA, - 31503 - 19968: 0xFBEE, - 31505 - 19968: 0xE1C5, - 31513 - 19968: 0xDFE9, - 31515 - 19968: 0xEEDE, - 31518 - 19968: 0xF7C2, - 31520 - 19968: 0xD8A2, - 31526 - 19968: 0xDDAC, - 31532 - 19968: 0xF0AF, - 31533 - 19968: 0xD6BD, - 31545 - 19968: 0xE1AB, - 31558 - 19968: 0xF9B6, - 31561 - 19968: 0xD4F5, - 31563 - 19968: 0xD0C9, - 31564 - 19968: 0xEFA7, - 31565 - 19968: 0xE2EC, - 31567 - 19968: 0xDBEA, - 31568 - 19968: 0xCECC, - 31569 - 19968: 0xF5E8, - 31570 - 19968: 0xF7D5, - 31572 - 19968: 0xD3CD, - 31574 - 19968: 0xF3FE, - 31584 - 19968: 0xD0B5, - 31596 - 19968: 0xE0FE, - 31598 - 19968: 0xDFFB, - 31605 - 19968: 0xE6DD, - 31613 - 19968: 0xE8A4, - 31623 - 19968: 0xCBCD, - 31627 - 19968: 0xEFA8, - 31631 - 19968: 0xEEB4, - 31636 - 19968: 0xDAD8, - 31637 - 19968: 0xD1B9, - 31639 - 19968: 0xDFA9, - 31642 - 19968: 0xF3B0, - 31645 - 19968: 0xCCC4, - 31649 - 19968: 0xCEB7, - 31661 - 19968: 0xEFA9, - 31665 - 19968: 0xDFD5, - 31668 - 19968: 0xEDD7, - 31672 - 19968: 0xEEC6, - 31680 - 19968: 0xEFBD, - 31681 - 19968: 0xFCD6, - 31684 - 19968: 0xDBF4, - 31686 - 19968: 0xEFAA, - 31687 - 19968: 0xF8B9, - 31689 - 19968: 0xF5E9, - 31698 - 19968: 0xE3D9, - 31712 - 19968: 0xE1C6, - 31716 - 19968: 0xD4BF, - 31721 - 19968: 0xDEE8, - 31751 - 19968: 0xF0EA, - 31762 - 19968: 0xF3C2, - 31774 - 19968: 0xD3AF, - 31777 - 19968: 0xCADB, - 31783 - 19968: 0xFCD7, - 31786 - 19968: 0xEDD8, - 31787 - 19968: 0xE1C7, - 31805 - 19968: 0xF4D8, - 31806 - 19968: 0xD6B3, - 31807 - 19968: 0xDDAD, - 31811 - 19968: 0xD5BE, - 31820 - 19968: 0xF1C3, - 31821 - 19968: 0xEEDF, - 31840 - 19968: 0xD6EB, - 31844 - 19968: 0xF4D9, - 31852 - 19968: 0xD7E6, - 31859 - 19968: 0xDAB7, - 31875 - 19968: 0xDDFB, - 31881 - 19968: 0xDDCF, - 31890 - 19968: 0xD8A3, - 31893 - 19968: 0xDAD9, - 31895 - 19968: 0xF0D8, - 31896 - 19968: 0xEFC4, - 31903 - 19968: 0xE1D8, - 31909 - 19968: 0xF1D4, - 31911 - 19968: 0xEDF2, - 31918 - 19968: 0xD5DB, - 31921 - 19968: 0xD5DC, - 31922 - 19968: 0xF3C4, - 31923 - 19968: 0xCBD7, - 31929 - 19968: 0xE2B6, - 31934 - 19968: 0xEFF1, - 31946 - 19968: 0xFBD5, - 31958 - 19968: 0xD3D8, - 31966 - 19968: 0xDDD0, - 31967 - 19968: 0xF0D9, - 31968 - 19968: 0xCBB3, - 31975 - 19968: 0xD5DD, - 31995 - 19968: 0xCDA7, - 31998 - 19968: 0xD0AC, - 32000 - 19968: 0xD1BA, - 32002 - 19968: 0xF1C4, - 32004 - 19968: 0xE5B3, - 32005 - 19968: 0xFBF5, - 32006 - 19968: 0xE9E1, - 32007 - 19968: 0xFDE0, - 32008 - 19968: 0xFCBC, - 32010 - 19968: 0xDAA2, - 32011 - 19968: 0xDAA3, - 32013 - 19968: 0xD2A1, - 32016 - 19968: 0xD2EF, - 32020 - 19968: 0xE2ED, - 32023 - 19968: 0xDEE9, - 32024 - 19968: 0xCEDC, - 32025 - 19968: 0xF2B5, - 32026 - 19968: 0xD0E4, - 32027 - 19968: 0xDDD1, - 32032 - 19968: 0xE1C8, - 32033 - 19968: 0xDBB7, - 32034 - 19968: 0xDFE3, - 32043 - 19968: 0xEDB9, - 32044 - 19968: 0xF1C5, - 32046 - 19968: 0xF3CF, - 32047 - 19968: 0xD7AB, - 32048 - 19968: 0xE1AC, - 32051 - 19968: 0xE3EB, - 32053 - 19968: 0xEEC7, - 32057 - 19968: 0xE1C9, - 32058 - 19968: 0xCAFA, - 32066 - 19968: 0xF0FB, - 32067 - 19968: 0xFAE1, - 32068 - 19968: 0xF0DA, - 32069 - 19968: 0xCCE7, - 32070 - 19968: 0xDAF4, - 32080 - 19968: 0xCCBF, - 32094 - 19968: 0xCEED, - 32097 - 19968: 0xD5A9, - 32098 - 19968: 0xFAE2, - 32102 - 19968: 0xD0E5, - 32104 - 19968: 0xEBD6, - 32106 - 19968: 0xECDF, - 32110 - 19968: 0xDFFC, - 32113 - 19968: 0xF7D6, - 32114 - 19968: 0xDEEA, - 32115 - 19968: 0xCBB4, - 32118 - 19968: 0xEFBE, - 32121 - 19968: 0xCCB5, - 32127 - 19968: 0xCFBD, - 32142 - 19968: 0xEFF2, - 32143 - 19968: 0xE2B7, - 32147 - 19968: 0xCCE8, - 32156 - 19968: 0xF0FC, - 32160 - 19968: 0xD6E0, - 32162 - 19968: 0xF1C6, - 32172 - 19968: 0xE2B8, - 32173 - 19968: 0xEBAB, - 32177 - 19968: 0xCBB5, - 32178 - 19968: 0xD8D1, - 32180 - 19968: 0xF4CE, - 32181 - 19968: 0xF3F7, - 32184 - 19968: 0xD7C6, - 32186 - 19968: 0xD1BB, - 32187 - 19968: 0xF7AA, - 32189 - 19968: 0xEDCA, - 32190 - 19968: 0xD7D3, - 32191 - 19968: 0xD8FA, - 32199 - 19968: 0xF6C5, - 32202 - 19968: 0xD1CC, - 32203 - 19968: 0xDDFC, - 32214 - 19968: 0xDFFD, - 32216 - 19968: 0xF9E5, - 32218 - 19968: 0xE0CA, - 32221 - 19968: 0xF2FD, - 32222 - 19968: 0xD3B0, - 32224 - 19968: 0xF4F3, - 32225 - 19968: 0xDAC9, - 32227 - 19968: 0xE6DE, - 32232 - 19968: 0xF8BA, - 32233 - 19968: 0xE8D0, - 32236 - 19968: 0xD8FB, - 32239 - 19968: 0xEAD5, - 32244 - 19968: 0xD6A3, - 32251 - 19968: 0xF6C6, - 32265 - 19968: 0xF2DB, - 32266 - 19968: 0xE4FC, - 32277 - 19968: 0xE8B2, - 32283 - 19968: 0xDADA, - 32285 - 19968: 0xF2DC, - 32286 - 19968: 0xFBD6, - 32287 - 19968: 0xE9B2, - 32289 - 19968: 0xEEAD, - 32291 - 19968: 0xFAE3, - 32299 - 19968: 0xDCEE, - 32302 - 19968: 0xF5EA, - 32303 - 19968: 0xE6E0, - 32305 - 19968: 0xF0FD, - 32311 - 19968: 0xD7AC, - 32317 - 19968: 0xF5C5, - 32318 - 19968: 0xEEE0, - 32321 - 19968: 0xDBE5, - 32323 - 19968: 0xDDDE, - 32326 - 19968: 0xD9F0, - 32327 - 19968: 0xE9A3, - 32338 - 19968: 0xF1F9, - 32340 - 19968: 0xF2C4, - 32341 - 19968: 0xE0CB, - 32350 - 19968: 0xE9A4, - 32353 - 19968: 0xE2B9, - 32361 - 19968: 0xE3B1, - 32362 - 19968: 0xFCEB, - 32363 - 19968: 0xCDA8, - 32365 - 19968: 0xCCB6, - 32368 - 19968: 0xF0DB, - 32377 - 19968: 0xE6BA, - 32380 - 19968: 0xCDA9, - 32386 - 19968: 0xF3C3, - 32396 - 19968: 0xE1D9, - 32399 - 19968: 0xEFAB, - 32403 - 19968: 0xE7C5, - 32406 - 19968: 0xE0E9, - 32408 - 19968: 0xF3C5, - 32411 - 19968: 0xD4C0, - 32412 - 19968: 0xD5BF, - 32566 - 19968: 0xDDAE, - 32568 - 19968: 0xF9FC, - 32570 - 19968: 0xCCC0, - 32588 - 19968: 0xE5A2, - 32592 - 19968: 0xCEB8, - 32596 - 19968: 0xD8D2, - 32597 - 19968: 0xF9D6, - 32618 - 19968: 0xF1AA, - 32619 - 19968: 0xCED1, - 32622 - 19968: 0xF6C7, - 32624 - 19968: 0xDBEB, - 32626 - 19968: 0xDFFE, - 32629 - 19968: 0xD8E1, - 32631 - 19968: 0xF7F3, - 32633 - 19968: 0xD7E7, - 32645 - 19968: 0xD4FE, - 32648 - 19968: 0xD1BC, - 32650 - 19968: 0xE5CF, - 32652 - 19968: 0xCBB6, - 32654 - 19968: 0xDAB8, - 32660 - 19968: 0xCDC4, - 32666 - 19968: 0xD6BE, - 32670 - 19968: 0xE2BA, - 32676 - 19968: 0xCFD8, - 32680 - 19968: 0xE0CC, - 32681 - 19968: 0xEBF9, - 32690 - 19968: 0xFDFD, - 32696 - 19968: 0xD7E8, - 32697 - 19968: 0xCBD8, - 32701 - 19968: 0xE9E2, - 32705 - 19968: 0xE8BA, - 32709 - 19968: 0xE3C7, - 32714 - 19968: 0xECCD, - 32716 - 19968: 0xECCE, - 32718 - 19968: 0xD6BF, - 32722 - 19968: 0xE3A7, - 32724 - 19968: 0xDFD6, - 32725 - 19968: 0xFDE8, - 32735 - 19968: 0xEEE1, - 32736 - 19968: 0xF6A8, - 32737 - 19968: 0xDDFD, - 32745 - 19968: 0xF8BB, - 32747 - 19968: 0xE8D1, - 32752 - 19968: 0xF9D7, - 32761 - 19968: 0xCEEE, - 32764 - 19968: 0xECCF, - 32768 - 19968: 0xE9A5, - 32769 - 19968: 0xD6D5, - 32771 - 19968: 0xCDC5, - 32773 - 19968: 0xEDBA, - 32774 - 19968: 0xD1BD, - 32777 - 19968: 0xCFBE, - 32780 - 19968: 0xECBB, - 32784 - 19968: 0xD2B1, - 32789 - 19968: 0xCCE9, - 32791 - 19968: 0xD9C4, - 32792 - 19968: 0xE9FC, - 32813 - 19968: 0xD1BE, - 32819 - 19968: 0xECBC, - 32822 - 19968: 0xE5AD, - 32829 - 19968: 0xF7B0, - 32831 - 19968: 0xCCEA, - 32835 - 19968: 0xD3C4, - 32838 - 19968: 0xD6C0, - 32842 - 19968: 0xD6FD, - 32854 - 19968: 0xE1A1, - 32856 - 19968: 0xDEBD, - 32858 - 19968: 0xF6A9, - 32862 - 19968: 0xDAA4, - 32879 - 19968: 0xD6A4, - 32880 - 19968: 0xF5C6, - 32882 - 19968: 0xE1A2, - 32883 - 19968: 0xE9C6, - 32887 - 19968: 0xF2C5, - 32893 - 19968: 0xF4E9, - 32894 - 19968: 0xD6EC, - 32895 - 19968: 0xEBD3, - 32900 - 19968: 0xECBD, - 32901 - 19968: 0xE2DC, - 32902 - 19968: 0xDEEB, - 32903 - 19968: 0xF0DC, - 32905 - 19968: 0xEBBF, - 32907 - 19968: 0xD7CE, - 32908 - 19968: 0xD1BF, - 32918 - 19968: 0xF5AB, - 32923 - 19968: 0xF9FD, - 32925 - 19968: 0xCADC, - 32929 - 19968: 0xCDC6, - 32930 - 19968: 0xF2B6, - 32933 - 19968: 0xDDFE, - 32937 - 19968: 0xCCB7, - 32938 - 19968: 0xDBB8, - 32943 - 19968: 0xD0E9, - 32945 - 19968: 0xCEDD, - 32946 - 19968: 0xEBC0, - 32948 - 19968: 0xFDA2, - 32954 - 19968: 0xF8CB, - 32963 - 19968: 0xEAD6, - 32964 - 19968: 0xF1B0, - 32972 - 19968: 0xDBCE, - 32974 - 19968: 0xF7C3, - 32986 - 19968: 0xDBCF, - 32987 - 19968: 0xCBA4, - 32990 - 19968: 0xF8E0, - 32993 - 19968: 0xFBD7, - 32996 - 19968: 0xEBCA, - 32997 - 19968: 0xE0A1, - 33009 - 19968: 0xCECD, - 33012 - 19968: 0xD4DC, - 33016 - 19968: 0xFDD8, - 33021 - 19968: 0xD2F6, - 33026 - 19968: 0xF2B7, - 33029 - 19968: 0xFAF6, - 33030 - 19968: 0xF6AA, - 33031 - 19968: 0xFAF7, - 33032 - 19968: 0xD8E6, - 33034 - 19968: 0xF4B1, - 33048 - 19968: 0xE8D2, - 33050 - 19968: 0xCAC5, - 33051 - 19968: 0xCCEB, - 33059 - 19968: 0xE2EE, - 33065 - 19968: 0xE2BB, - 33067 - 19968: 0xF7AD, - 33071 - 19968: 0xF8E1, - 33081 - 19968: 0xF3EC, - 33086 - 19968: 0xDEA1, - 33099 - 19968: 0xE4FD, - 33102 - 19968: 0xE3EC, - 33104 - 19968: 0xDDAF, - 33105 - 19968: 0xDDB0, - 33108 - 19968: 0xCBB7, - 33109 - 19968: 0xE8D3, - 33125 - 19968: 0xE1A3, - 33126 - 19968: 0xD2E0, - 33131 - 19968: 0xF0FE, - 33136 - 19968: 0xE9A6, - 33137 - 19968: 0xCBF2, - 33144 - 19968: 0xEDF3, - 33145 - 19968: 0xDCD9, - 33146 - 19968: 0xE0CD, - 33151 - 19968: 0xF7DA, - 33152 - 19968: 0xDBB9, - 33160 - 19968: 0xCCAE, - 33162 - 19968: 0xDADB, - 33167 - 19968: 0xCDC7, - 33178 - 19968: 0xDDB1, - 33180 - 19968: 0xD8AF, - 33181 - 19968: 0xE3A3, - 33184 - 19968: 0xCEEF, - 33187 - 19968: 0xF2F3, - 33192 - 19968: 0xF8B3, - 33203 - 19968: 0xE0CE, - 33205 - 19968: 0xF5FD, - 33210 - 19968: 0xEBEC, - 33213 - 19968: 0xD3C5, - 33214 - 19968: 0xFCEC, - 33215 - 19968: 0xD2DB, - 33216 - 19968: 0xD4EB, - 33218 - 19968: 0xDEA2, - 33222 - 19968: 0xE5E6, - 33229 - 19968: 0xF0B0, - 33240 - 19968: 0xD5C4, - 33247 - 19968: 0xEDF4, - 33251 - 19968: 0xE3ED, - 33253 - 19968: 0xE8C2, - 33255 - 19968: 0xEDF5, - 33256 - 19968: 0xD7FC, - 33258 - 19968: 0xEDBB, - 33261 - 19968: 0xF6AB, - 33267 - 19968: 0xF2B8, - 33268 - 19968: 0xF6C8, - 33274 - 19968: 0xD3E6, - 33275 - 19968: 0xF2DD, - 33276 - 19968: 0xCFBF, - 33278 - 19968: 0xEBAC, - 33285 - 19968: 0xCFC0, - 33287 - 19968: 0xE6A8, - 33288 - 19968: 0xFDE9, - 33290 - 19968: 0xCFC1, - 33292 - 19968: 0xE0DF, - 33293 - 19968: 0xDEEC, - 33298 - 19968: 0xE0A2, - 33307 - 19968: 0xF4BF, - 33308 - 19968: 0xE2EF, - 33310 - 19968: 0xD9F1, - 33311 - 19968: 0xF1C7, - 33313 - 19968: 0xCBB8, - 33322 - 19968: 0xF9FE, - 33323 - 19968: 0xDBBA, - 33324 - 19968: 0xDAF5, - 33333 - 19968: 0xF6EC, - 33334 - 19968: 0xDADC, - 33335 - 19968: 0xFAE4, - 33337 - 19968: 0xE0CF, - 33344 - 19968: 0xDDB2, - 33349 - 19968: 0xE6A9, - 33351 - 19968: 0xEFF3, - 33369 - 19968: 0xF3ED, - 33380 - 19968: 0xEBFA, - 33382 - 19968: 0xF9E6, - 33390 - 19968: 0xCADD, - 33391 - 19968: 0xD5DE, - 33393 - 19968: 0xCADE, - 33394 - 19968: 0xDFE4, - 33398 - 19968: 0xE6FD, - 33400 - 19968: 0xF5AC, - 33406 - 19968: 0xE4F5, - 33419 - 19968: 0xE9E3, - 33421 - 19968: 0xEDCB, - 33422 - 19968: 0xCFE4, - 33426 - 19968: 0xD8D3, - 33433 - 19968: 0xDDB3, - 33434 - 19968: 0xD4EC, - 33437 - 19968: 0xF2B9, - 33439 - 19968: 0xDFB7, - 33445 - 19968: 0xCBCE, - 33446 - 19968: 0xFBD8, - 33449 - 19968: 0xD0D9, - 33452 - 19968: 0xDDD2, - 33453 - 19968: 0xF7F4, - 33454 - 19968: 0xE7DC, - 33455 - 19968: 0xE4A5, - 33457 - 19968: 0xFCA3, - 33459 - 19968: 0xDBBB, - 33463 - 19968: 0xF2BA, - 33464 - 19968: 0xE9FD, - 33465 - 19968: 0xD0CA, - 33467 - 19968: 0xF5D6, - 33468 - 19968: 0xD9C5, - 33469 - 19968: 0xE4B4, - 33471 - 19968: 0xEDA7, - 33489 - 19968: 0xEABD, - 33490 - 19968: 0xE6FE, - 33492 - 19968: 0xF7C4, - 33493 - 19968: 0xF5AD, - 33495 - 19968: 0xD9E0, - 33499 - 19968: 0xCAB4, - 33502 - 19968: 0xF8E2, - 33503 - 19968: 0xCFC2, - 33505 - 19968: 0xECBE, - 33509 - 19968: 0xE5B4, - 33510 - 19968: 0xCDC8, - 33511 - 19968: 0xEEC8, - 33521 - 19968: 0xE7C8, - 33533 - 19968: 0xCDC9, - 33534 - 19968: 0xF9B7, - 33537 - 19968: 0xF1E8, - 33538 - 19968: 0xD9F2, - 33539 - 19968: 0xDBF5, - 33540 - 19968: 0xCAB5, - 33541 - 19968: 0xD9C6, - 33545 - 19968: 0xD8C9, - 33559 - 19968: 0xD9AB, - 33576 - 19968: 0xEDBC, - 33579 - 19968: 0xD8D4, - 33583 - 19968: 0xDCDA, - 33585 - 19968: 0xE2BC, - 33588 - 19968: 0xFCED, - 33589 - 19968: 0xECE0, - 33590 - 19968: 0xD2FE, - 33592 - 19968: 0xE9C7, - 33593 - 19968: 0xE6AA, - 33600 - 19968: 0xE2F0, - 33607 - 19968: 0xFABB, - 33609 - 19968: 0xF5AE, - 33610 - 19968: 0xFBAA, - 33615 - 19968: 0xECFB, - 33617 - 19968: 0xECBF, - 33618 - 19968: 0xFCD8, - 33651 - 19968: 0xD4E5, - 33655 - 19968: 0xF9C3, - 33659 - 19968: 0xEEE2, - 33673 - 19968: 0xD7E9, - 33674 - 19968: 0xEDF6, - 33678 - 19968: 0xDEED, - 33686 - 19968: 0xCCEC, - 33688 - 19968: 0xE3EE, - 33694 - 19968: 0xE8D4, - 33698 - 19968: 0xFAF8, - 33705 - 19968: 0xDDB4, - 33706 - 19968: 0xE4B5, - 33707 - 19968: 0xD8B0, - 33725 - 19968: 0xD8D5, - 33729 - 19968: 0xF4EA, - 33733 - 19968: 0xCEB9, - 33737 - 19968: 0xD6E1, - 33738 - 19968: 0xCFD2, - 33740 - 19968: 0xD0B6, - 33747 - 19968: 0xCEA2, - 33750 - 19968: 0xF3EE, - 33756 - 19968: 0xF3F8, - 33769 - 19968: 0xDCCC, - 33771 - 19968: 0xD0CB, - 33775 - 19968: 0xFCA4, - 33776 - 19968: 0xCDCA, - 33777 - 19968: 0xD7D4, - 33778 - 19968: 0xDEA3, - 33780 - 19968: 0xE4E0, - 33785 - 19968: 0xEEC9, - 33789 - 19968: 0xE2DD, - 33795 - 19968: 0xF5FE, - 33796 - 19968: 0xD4AC, - 33802 - 19968: 0xD5D1, - 33804 - 19968: 0xD8F0, - 33805 - 19968: 0xF8C3, - 33806 - 19968: 0xEAD7, - 33833 - 19968: 0xF5D7, - 33836 - 19968: 0xD8BF, - 33841 - 19968: 0xFDC0, - 33848 - 19968: 0xEBAD, - 33853 - 19968: 0xD5AA, - 33865 - 19968: 0xE7A8, - 33879 - 19968: 0xEECA, - 33883 - 19968: 0xCAE7, - 33889 - 19968: 0xF8E3, - 33891 - 19968: 0xD4DD, - 33894 - 19968: 0xEAD8, - 33899 - 19968: 0xFBD9, - 33900 - 19968: 0xEDF7, - 33903 - 19968: 0xE5B5, - 33909 - 19968: 0xD0AD, - 33914 - 19968: 0xF1F1, - 33936 - 19968: 0xE2BD, - 33940 - 19968: 0xE3C8, - 33945 - 19968: 0xD9D5, - 33948 - 19968: 0xDFAA, - 33953 - 19968: 0xDBBC, - 33970 - 19968: 0xF8E4, - 33976 - 19968: 0xF1FA, - 33979 - 19968: 0xE5B6, - 33980 - 19968: 0xF3EF, - 33983 - 19968: 0xFBDA, - 33984 - 19968: 0xE1E0, - 33986 - 19968: 0xD9AC, - 33988 - 19968: 0xF5EB, - 33990 - 19968: 0xE0B6, - 33993 - 19968: 0xE9C8, - 33995 - 19968: 0xCBCF, - 33997 - 19968: 0xE3C9, - 34001 - 19968: 0xDEEE, - 34010 - 19968: 0xE2BE, - 34028 - 19968: 0xDCEF, - 34030 - 19968: 0xD6A5, - 34036 - 19968: 0xE2F1, - 34044 - 19968: 0xD6FE, - 34065 - 19968: 0xD9A1, - 34067 - 19968: 0xD8C0, - 34068 - 19968: 0xDCDB, - 34071 - 19968: 0xEDBD, - 34072 - 19968: 0xDFB8, - 34074 - 19968: 0xEAA5, - 34078 - 19968: 0xD7AD, - 34081 - 19968: 0xF3F9, - 34083 - 19968: 0xEDF8, - 34085 - 19968: 0xF5C7, - 34092 - 19968: 0xE1CA, - 34093 - 19968: 0xEBE3, - 34095 - 19968: 0xF2DE, - 34109 - 19968: 0xF8CC, - 34111 - 19968: 0xEAD9, - 34113 - 19968: 0xD3C6, - 34115 - 19968: 0xDBE6, - 34121 - 19968: 0xF5AF, - 34126 - 19968: 0xCEF0, - 34131 - 19968: 0xE9FE, - 34137 - 19968: 0xFBB6, - 34147 - 19968: 0xE2F2, - 34152 - 19968: 0xCFF2, - 34153 - 19968: 0xF7B9, - 34154 - 19968: 0xD9F3, - 34157 - 19968: 0xE1CB, - 34180 - 19968: 0xDADD, - 34183 - 19968: 0xDAB9, - 34191 - 19968: 0xEBFB, - 34193 - 19968: 0xCBB9, - 34196 - 19968: 0xEDF9, - 34203 - 19968: 0xE0E0, - 34214 - 19968: 0xF4C0, - 34216 - 19968: 0xFDBC, - 34217 - 19968: 0xDFB1, - 34218 - 19968: 0xE3EF, - 34223 - 19968: 0xE0A3, - 34224 - 19968: 0xFDB9, - 34234 - 19968: 0xF0B1, - 34241 - 19968: 0xCDCB, - 34249 - 19968: 0xEDBE, - 34253 - 19968: 0xD5C0, - 34254 - 19968: 0xE3F0, - 34255 - 19968: 0xEDFA, - 34261 - 19968: 0xE9E4, - 34268 - 19968: 0xD5ED, - 34269 - 19968: 0xE7DD, - 34276 - 19968: 0xD4F6, - 34277 - 19968: 0xE5B7, - 34281 - 19968: 0xDBE7, - 34282 - 19968: 0xE2BF, - 34295 - 19968: 0xEECB, - 34298 - 19968: 0xD7F4, - 34299 - 19968: 0xF0DD, - 34303 - 19968: 0xCEAB, - 34306 - 19968: 0xE7DE, - 34310 - 19968: 0xD6D6, - 34311 - 19968: 0xE1CC, - 34314 - 19968: 0xE8B3, - 34326 - 19968: 0xE5EE, - 34327 - 19968: 0xDCA2, - 34330 - 19968: 0xE0D0, - 34349 - 19968: 0xD5B5, - 34367 - 19968: 0xD5A1, - 34382 - 19968: 0xFBDB, - 34384 - 19968: 0xF9CB, - 34388 - 19968: 0xCBF3, - 34389 - 19968: 0xF4A5, - 34395 - 19968: 0xFAC8, - 34396 - 19968: 0xD6D7, - 34398 - 19968: 0xE9E5, - 34399 - 19968: 0xFBDC, - 34407 - 19968: 0xFDD0, - 34425 - 19968: 0xFBF6, - 34442 - 19968: 0xDAA5, - 34444 - 19968: 0xDBBD, - 34451 - 19968: 0xECE2, - 34467 - 19968: 0xCDF7, - 34468 - 19968: 0xF0DE, - 34473 - 19968: 0xF6C9, - 34503 - 19968: 0xDEEF, - 34507 - 19968: 0xD3B1, - 34516 - 19968: 0xFCEE, - 34521 - 19968: 0xE8C3, - 34523 - 19968: 0xF1C8, - 34527 - 19968: 0xCEF1, - 34532 - 19968: 0xF9ED, - 34541 - 19968: 0xF2F4, - 34558 - 19968: 0xE4B6, - 34560 - 19968: 0xF5B9, - 34562 - 19968: 0xDCF0, - 34563 - 19968: 0xE3F1, - 34568 - 19968: 0xE8A5, - 34584 - 19968: 0xF2BB, - 34586 - 19968: 0xDEA4, - 34588 - 19968: 0xDACC, - 34638 - 19968: 0xCAE9, - 34645 - 19968: 0xE3DA, - 34647 - 19968: 0xFCD9, - 34655 - 19968: 0xEADA, - 34662 - 19968: 0xF9C4, - 34664 - 19968: 0xE3A4, - 34676 - 19968: 0xFBDD, - 34678 - 19968: 0xEFCA, - 34680 - 19968: 0xE8C4, - 34690 - 19968: 0xD5CC, - 34701 - 19968: 0xEBD7, - 34719 - 19968: 0xD9AD, - 34722 - 19968: 0xFBAB, - 34739 - 19968: 0xD3D9, - 34746 - 19968: 0xD5A2, - 34756 - 19968: 0xF6DE, - 34784 - 19968: 0xDAF6, - 34796 - 19968: 0xE0D1, - 34799 - 19968: 0xE9A8, - 34802 - 19968: 0xF5F9, - 34809 - 19968: 0xFAAF, - 34811 - 19968: 0xEBFC, - 34814 - 19968: 0xE0EA, - 34821 - 19968: 0xE3B2, - 34847 - 19968: 0xD5C5, - 34850 - 19968: 0xF1E3, - 34851 - 19968: 0xD5EE, - 34865 - 19968: 0xCDCC, - 34870 - 19968: 0xEDD9, - 34875 - 19968: 0xD8C1, - 34880 - 19968: 0xFAEC, - 34886 - 19968: 0xF1EB, - 34892 - 19968: 0xFABC, - 34893 - 19968: 0xE6E2, - 34898 - 19968: 0xFAE5, - 34899 - 19968: 0xE2FA, - 34903 - 19968: 0xCAB6, - 34905 - 19968: 0xE4B7, - 34907 - 19968: 0xEADB, - 34909 - 19968: 0xF5FA, - 34913 - 19968: 0xFBAC, - 34914 - 19968: 0xCFC3, - 34915 - 19968: 0xEBFD, - 34920 - 19968: 0xF8FA, - 34923 - 19968: 0xDFB9, - 34928 - 19968: 0xE1F1, - 34930 - 19968: 0xD2A4, - 34935 - 19968: 0xF5FB, - 34942 - 19968: 0xD0DA, - 34943 - 19968: 0xD0DB, - 34945 - 19968: 0xEABE, - 34946 - 19968: 0xD9B1, - 34952 - 19968: 0xCAB7, - 34955 - 19968: 0xD3E7, - 34957 - 19968: 0xF8E5, - 34962 - 19968: 0xD3B2, - 34966 - 19968: 0xE2C0, - 34967 - 19968: 0xF2DF, - 34974 - 19968: 0xCDE5, - 34987 - 19968: 0xF9AC, - 34996 - 19968: 0xCDCD, - 35009 - 19968: 0xEEAE, - 35010 - 19968: 0xD6AE, - 35023 - 19968: 0xD7EA, - 35028 - 19968: 0xE7E0, - 35029 - 19968: 0xEBAE, - 35033 - 19968: 0xCFD9, - 35036 - 19968: 0xDCCD, - 35037 - 19968: 0xEDFB, - 35039 - 19968: 0xDEF0, - 35041 - 19968: 0xD7EB, - 35048 - 19968: 0xDEA5, - 35059 - 19968: 0xDFD7, - 35060 - 19968: 0xDBD0, - 35061 - 19968: 0xDBD1, - 35064 - 19968: 0xD5A3, - 35069 - 19968: 0xF0B2, - 35079 - 19968: 0xDCDC, - 35088 - 19968: 0xCAE8, - 35090 - 19968: 0xF8E6, - 35091 - 19968: 0xDCCE, - 35096 - 19968: 0xEADC, - 35097 - 19968: 0xDBD2, - 35109 - 19968: 0xE9B3, - 35114 - 19968: 0xF7DB, - 35126 - 19968: 0xE3A8, - 35128 - 19968: 0xD7AE, - 35131 - 19968: 0xE0E1, - 35137 - 19968: 0xCBBA, - 35140 - 19968: 0xE5D1, - 35167 - 19968: 0xD0DC, - 35172 - 19968: 0xD5C1, - 35178 - 19968: 0xD8CA, - 35186 - 19968: 0xE3A9, - 35199 - 19968: 0xE0A4, - 35201 - 19968: 0xE9A9, - 35203 - 19968: 0xD3C7, - 35206 - 19968: 0xDCDD, - 35207 - 19968: 0xF8AE, - 35211 - 19968: 0xCCB8, - 35215 - 19968: 0xD0AE, - 35219 - 19968: 0xD8F2, - 35222 - 19968: 0xE3CA, - 35233 - 19968: 0xCCAF, - 35241 - 19968: 0xD4AD, - 35242 - 19968: 0xF6D1, - 35250 - 19968: 0xD0CC, - 35258 - 19968: 0xCAC6, - 35261 - 19968: 0xD5C2, - 35264 - 19968: 0xCEBA, - 35282 - 19968: 0xCAC7, - 35299 - 19968: 0xFAB0, - 35316 - 19968: 0xDFD8, - 35320 - 19968: 0xF5BA, - 35328 - 19968: 0xE5EB, - 35330 - 19968: 0xEFF4, - 35331 - 19968: 0xDDB5, - 35336 - 19968: 0xCDAA, - 35338 - 19968: 0xE3F2, - 35340 - 19968: 0xFBF7, - 35342 - 19968: 0xF7D0, - 35347 - 19968: 0xFDBA, - 35350 - 19968: 0xFDE1, - 35351 - 19968: 0xF6FE, - 35352 - 19968: 0xD1C0, - 35355 - 19968: 0xE8C5, - 35357 - 19968: 0xE4B8, - 35359 - 19968: 0xE1E8, - 35363 - 19968: 0xCCC1, - 35365 - 19968: 0xD2ED, - 35370 - 19968: 0xDBBE, - 35373 - 19968: 0xE0E2, - 35377 - 19968: 0xFAC9, - 35380 - 19968: 0xE1CD, - 35382 - 19968: 0xCAB8, - 35386 - 19968: 0xF2E0, - 35387 - 19968: 0xF1C9, - 35408 - 19968: 0xDEF1, - 35412 - 19968: 0xF0DF, - 35413 - 19968: 0xF8C4, - 35419 - 19968: 0xEECC, - 35422 - 19968: 0xDEF2, - 35424 - 19968: 0xE7C9, - 35426 - 19968: 0xE2F3, - 35427 - 19968: 0xE7E1, - 35430 - 19968: 0xE3CB, - 35433 - 19968: 0xE3CC, - 35437 - 19968: 0xCFF8, - 35438 - 19968: 0xEFAC, - 35440 - 19968: 0xFDFE, - 35441 - 19968: 0xFCA5, - 35442 - 19968: 0xFAB1, - 35443 - 19968: 0xDFD9, - 35445 - 19968: 0xE0D2, - 35449 - 19968: 0xF4DA, - 35461 - 19968: 0xF1CA, - 35463 - 19968: 0xCEA3, - 35468 - 19968: 0xF2BC, - 35469 - 19968: 0xECE3, - 35475 - 19968: 0xE0A5, - 35477 - 19968: 0xF7AB, - 35480 - 19968: 0xEBAF, - 35486 - 19968: 0xE5DE, - 35488 - 19968: 0xE1A4, - 35489 - 19968: 0xCDAB, - 35491 - 19968: 0xD9F4, - 35492 - 19968: 0xE8A6, - 35493 - 19968: 0xCDCE, - 35494 - 19968: 0xE1E9, - 35496 - 19968: 0xFCEF, - 35498 - 19968: 0xE0E3, - 35504 - 19968: 0xE2C1, - 35506 - 19968: 0xCEA4, - 35513 - 19968: 0xDEA6, - 35516 - 19968: 0xEBFE, - 35518 - 19968: 0xEBDD, - 35519 - 19968: 0xF0E0, - 35522 - 19968: 0xF4DB, - 35524 - 19968: 0xE2F4, - 35527 - 19968: 0xD3C8, - 35531 - 19968: 0xF4EB, - 35533 - 19968: 0xEEB5, - 35535 - 19968: 0xF5D8, - 35538 - 19968: 0xD5DF, - 35542 - 19968: 0xD6E5, - 35547 - 19968: 0xEBB0, - 35548 - 19968: 0xF4E3, - 35553 - 19968: 0xE3CD, - 35558 - 19968: 0xF4F4, - 35559 - 19968: 0xFAB2, - 35562 - 19968: 0xEFF5, - 35563 - 19968: 0xCADF, - 35565 - 19968: 0xEBB1, - 35566 - 19968: 0xEDBF, - 35569 - 19968: 0xFDC9, - 35574 - 19968: 0xE4A6, - 35575 - 19968: 0xF9A4, - 35576 - 19968: 0xF0B3, - 35578 - 19968: 0xE5EC, - 35582 - 19968: 0xD1E7, - 35584 - 19968: 0xD9C7, - 35585 - 19968: 0xE4D7, - 35586 - 19968: 0xEADD, - 35588 - 19968: 0xD4F7, - 35598 - 19968: 0xDABA, - 35600 - 19968: 0xDACD, - 35604 - 19968: 0xF9CC, - 35606 - 19968: 0xE1DA, - 35607 - 19968: 0xDBBF, - 35609 - 19968: 0xCCC5, - 35610 - 19968: 0xECD0, - 35611 - 19968: 0xCBBB, - 35613 - 19968: 0xDEF3, - 35616 - 19968: 0xE9AA, - 35624 - 19968: 0xD9C8, - 35627 - 19968: 0xEEE3, - 35628 - 19968: 0xD7BD, - 35635 - 19968: 0xCFC4, - 35641 - 19968: 0xD0CD, - 35649 - 19968: 0xFCA6, - 35657 - 19968: 0xF1FB, - 35662 - 19968: 0xFDD2, - 35663 - 19968: 0xD1C1, - 35672 - 19968: 0xE3DB, - 35674 - 19968: 0xD3C9, - 35676 - 19968: 0xDCCF, - 35686 - 19968: 0xCCED, - 35692 - 19968: 0xDEA7, - 35695 - 19968: 0xE6BB, - 35696 - 19968: 0xECA1, - 35700 - 19968: 0xCCB9, - 35703 - 19968: 0xFBDE, - 35709 - 19968: 0xE7E2, - 35712 - 19968: 0xD4C1, - 35722 - 19968: 0xDCA8, - 35728 - 19968: 0xE2C2, - 35730 - 19968: 0xF3D8, - 35731 - 19968: 0xE5D3, - 35734 - 19968: 0xF3D9, - 35738 - 19968: 0xF3C6, - 35895 - 19968: 0xCDDB, - 35903 - 19968: 0xCDAC, - 35905 - 19968: 0xFCC3, - 35910 - 19968: 0xD4E7, - 35912 - 19968: 0xD1C2, - 35914 - 19968: 0xF9A5, - 35916 - 19968: 0xE8D5, - 35925 - 19968: 0xE3CE, - 35930 - 19968: 0xD4CA, - 35937 - 19968: 0xDFDA, - 35946 - 19968: 0xFBDF, - 35947 - 19968: 0xE7E3, - 35961 - 19968: 0xF8FB, - 35962 - 19968: 0xE3CF, - 35970 - 19968: 0xF5B0, - 35978 - 19968: 0xD8E7, - 35980 - 19968: 0xD9C9, - 35997 - 19968: 0xF8AF, - 35998 - 19968: 0xEFF6, - 36000 - 19968: 0xDDB6, - 36001 - 19968: 0xEEAF, - 36002 - 19968: 0xCDF8, - 36007 - 19968: 0xDEB8, - 36008 - 19968: 0xFCA7, - 36009 - 19968: 0xF7FC, - 36010 - 19968: 0xF7B1, - 36011 - 19968: 0xCEBB, - 36012 - 19968: 0xF4A1, - 36015 - 19968: 0xEECD, - 36016 - 19968: 0xE1AE, - 36019 - 19968: 0xECC3, - 36020 - 19968: 0xCFFE, - 36022 - 19968: 0xF8BF, - 36023 - 19968: 0xD8E2, - 36024 - 19968: 0xD3E8, - 36027 - 19968: 0xDEA8, - 36028 - 19968: 0xF4E4, - 36029 - 19968: 0xECC2, - 36031 - 19968: 0xD9F5, - 36032 - 19968: 0xF9C5, - 36033 - 19968: 0xDDD3, - 36034 - 19968: 0xD6F1, - 36035 - 19968: 0xECFC, - 36036 - 19968: 0xFCF0, - 36039 - 19968: 0xEDC0, - 36040 - 19968: 0xCAB9, - 36042 - 19968: 0xEEE4, - 36049 - 19968: 0xF2E1, - 36051 - 19968: 0xDEB9, - 36058 - 19968: 0xD6F2, - 36060 - 19968: 0xDEF4, - 36062 - 19968: 0xDFDB, - 36064 - 19968: 0xDBD3, - 36066 - 19968: 0xFAE7, - 36067 - 19968: 0xD8E3, - 36068 - 19968: 0xF4C1, - 36070 - 19968: 0xDDB7, - 36074 - 19968: 0xF2F5, - 36077 - 19968: 0xD4AE, - 36084 - 19968: 0xD6F3, - 36091 - 19968: 0xDDB8, - 36092 - 19968: 0xCFC5, - 36093 - 19968: 0xDFDF, - 36100 - 19968: 0xF2BE, - 36101 - 19968: 0xF6A1, - 36103 - 19968: 0xEBCB, - 36104 - 19968: 0xF1FC, - 36106 - 19968: 0xF3C7, - 36109 - 19968: 0xE0EB, - 36115 - 19968: 0xEDFC, - 36118 - 19968: 0xE1DB, - 36196 - 19968: 0xEEE5, - 36198 - 19968: 0xDEF5, - 36203 - 19968: 0xFAD3, - 36208 - 19968: 0xF1CB, - 36211 - 19968: 0xD0AF, - 36212 - 19968: 0xDDB9, - 36215 - 19968: 0xD1C3, - 36229 - 19968: 0xF5B1, - 36234 - 19968: 0xEAC6, - 36249 - 19968: 0xF0E1, - 36259 - 19968: 0xF6AC, - 36264 - 19968: 0xF5D9, - 36275 - 19968: 0xF0EB, - 36282 - 19968: 0xDDBA, - 36286 - 19968: 0xF2BF, - 36294 - 19968: 0xF7C5, - 36299 - 19968: 0xDBA2, - 36300 - 19968: 0xF2F6, - 36303 - 19968: 0xCABA, - 36315 - 19968: 0xF7F5, - 36317 - 19968: 0xCBE5, - 36321 - 19968: 0xEEE6, - 36323 - 19968: 0xE0D3, - 36328 - 19968: 0xCEA5, - 36335 - 19968: 0xD6D8, - 36339 - 19968: 0xD4AF, - 36362 - 19968: 0xE9C9, - 36367 - 19968: 0xD3CE, - 36368 - 19968: 0xF4C2, - 36382 - 19968: 0xCBE6, - 36394 - 19968: 0xF1A1, - 36400 - 19968: 0xEBB2, - 36405 - 19968: 0xF1A2, - 36418 - 19968: 0xEBB3, - 36420 - 19968: 0xF0B4, - 36423 - 19968: 0xCBF4, - 36424 - 19968: 0xD4B0, - 36425 - 19968: 0xF3B2, - 36426 - 19968: 0xFBB7, - 36441 - 19968: 0xF5EC, - 36447 - 19968: 0xEEE7, - 36448 - 19968: 0xF4B2, - 36468 - 19968: 0xF5ED, - 36470 - 19968: 0xCFF3, - 36481 - 19968: 0xF0E2, - 36487 - 19968: 0xEECE, - 36490 - 19968: 0xF1CC, - 36493 - 19968: 0xE5B8, - 36522 - 19968: 0xD7F5, - 36523 - 19968: 0xE3F3, - 36524 - 19968: 0xCFE5, - 36544 - 19968: 0xCFC6, - 36554 - 19968: 0xF3B3, - 36555 - 19968: 0xE4D8, - 36556 - 19968: 0xCFF9, - 36557 - 19968: 0xCFDA, - 36562 - 19968: 0xFACD, - 36575 - 19968: 0xE6E3, - 36587 - 19968: 0xF2E2, - 36600 - 19968: 0xF5EE, - 36603 - 19968: 0xCABB, - 36606 - 19968: 0xE3DC, - 36611 - 19968: 0xCEF2, - 36613 - 19968: 0xD6D9, - 36617 - 19968: 0xEEB0, - 36626 - 19968: 0xF4E5, - 36627 - 19968: 0xD8C2, - 36628 - 19968: 0xDCD0, - 36629 - 19968: 0xCCEE, - 36635 - 19968: 0xD5E0, - 36636 - 19968: 0xF6CA, - 36637 - 19968: 0xFDCA, - 36638 - 19968: 0xD8D6, - 36639 - 19968: 0xF4CF, - 36646 - 19968: 0xD6A6, - 36647 - 19968: 0xDCBE, - 36649 - 19968: 0xDBD4, - 36650 - 19968: 0xD7C7, - 36655 - 19968: 0xF2FE, - 36659 - 19968: 0xF1CD, - 36664 - 19968: 0xE2C3, - 36665 - 19968: 0xDCDE, - 36667 - 19968: 0xDCDF, - 36670 - 19968: 0xEFAD, - 36671 - 19968: 0xE6AB, - 36676 - 19968: 0xF9DD, - 36677 - 19968: 0xEABF, - 36681 - 19968: 0xEFAE, - 36685 - 19968: 0xF4D0, - 36686 - 19968: 0xCEF3, - 36701 - 19968: 0xE6AC, - 36703 - 19968: 0xCEDE, - 36706 - 19968: 0xD5F9, - 36763 - 19968: 0xE3F4, - 36764 - 19968: 0xCDD0, - 36771 - 19968: 0xD5B8, - 36774 - 19968: 0xF7FD, - 36776 - 19968: 0xDCA9, - 36781 - 19968: 0xDEF6, - 36783 - 19968: 0xDCAA, - 36784 - 19968: 0xF2E3, - 36785 - 19968: 0xE9B4, - 36786 - 19968: 0xD2DC, - 36802 - 19968: 0xE9E6, - 36805 - 19968: 0xE3F6, - 36814 - 19968: 0xE7CA, - 36817 - 19968: 0xD0CE, - 36820 - 19968: 0xDAF7, - 36838 - 19968: 0xCABC, - 36842 - 19968: 0xEEE8, - 36843 - 19968: 0xDADE, - 36845 - 19968: 0xF2F7, - 36848 - 19968: 0xE2FB, - 36850 - 19968: 0xCCA6, - 36855 - 19968: 0xDABB, - 36857 - 19968: 0xEEE9, - 36861 - 19968: 0xF5DA, - 36864 - 19968: 0xF7DC, - 36865 - 19968: 0xE1EA, - 36866 - 19968: 0xCEC1, - 36867 - 19968: 0xD4B1, - 36869 - 19968: 0xFDB1, - 36870 - 19968: 0xE6BD, - 36872 - 19968: 0xFBAD, - 36875 - 19968: 0xF8E7, - 36877 - 19968: 0xE1CE, - 36879 - 19968: 0xF7E2, - 36880 - 19968: 0xF5EF, - 36881 - 19968: 0xCFC7, - 36884 - 19968: 0xD4B2, - 36885 - 19968: 0xCCEF, - 36887 - 19968: 0xD4E8, - 36889 - 19968: 0xEECF, - 36890 - 19968: 0xF7D7, - 36893 - 19968: 0xE0A6, - 36894 - 19968: 0xD6C1, - 36895 - 19968: 0xE1DC, - 36896 - 19968: 0xF0E3, - 36897 - 19968: 0xF1E4, - 36898 - 19968: 0xDCF1, - 36899 - 19968: 0xD6A7, - 36910 - 19968: 0xF4F5, - 36913 - 19968: 0xF1CE, - 36914 - 19968: 0xF2E4, - 36917 - 19968: 0xD0B0, - 36920 - 19968: 0xECEF, - 36924 - 19968: 0xF9BA, - 36926 - 19968: 0xEBB5, - 36929 - 19968: 0xD4ED, - 36930 - 19968: 0xE2C4, - 36935 - 19968: 0xE9E7, - 36938 - 19968: 0xEBB4, - 36939 - 19968: 0xEAA1, - 36941 - 19968: 0xF8BC, - 36942 - 19968: 0xCEA6, - 36944 - 19968: 0xF9C6, - 36945 - 19968: 0xFCDA, - 36947 - 19968: 0xD4B3, - 36948 - 19968: 0xD3B9, - 36949 - 19968: 0xEADE, - 36953 - 19968: 0xE9AB, - 36956 - 19968: 0xE1E1, - 36957 - 19968: 0xD3CF, - 36958 - 19968: 0xF4F6, - 36960 - 19968: 0xEAC0, - 36961 - 19968: 0xE1CF, - 36963 - 19968: 0xCCBA, - 36969 - 19968: 0xEEEA, - 36973 - 19968: 0xF0E4, - 36974 - 19968: 0xF3B4, - 36975 - 19968: 0xD4EE, - 36978 - 19968: 0xF2C0, - 36981 - 19968: 0xF1E5, - 36983 - 19968: 0xF4C3, - 36984 - 19968: 0xE0D4, - 36986 - 19968: 0xEBB6, - 36988 - 19968: 0xD7A1, - 36989 - 19968: 0xCBE8, - 36991 - 19968: 0xF9AD, - 36992 - 19968: 0xE9AD, - 36993 - 19968: 0xD8E4, - 36994 - 19968: 0xFAB3, - 36995 - 19968: 0xE2C5, - 36996 - 19968: 0xFCBD, - 36999 - 19968: 0xECC4, - 37000 - 19968: 0xD8B1, - 37002 - 19968: 0xDCAB, - 37007 - 19968: 0xD5A4, - 37009 - 19968: 0xEBE9, - 37013 - 19968: 0xE8BB, - 37017 - 19968: 0xD8D7, - 37026 - 19968: 0xFBAE, - 37027 - 19968: 0xD1E1, - 37030 - 19968: 0xDBC0, - 37032 - 19968: 0xF5BE, - 37034 - 19968: 0xDEF7, - 37039 - 19968: 0xCAFB, - 37040 - 19968: 0xF7C6, - 37041 - 19968: 0xCFC8, - 37045 - 19968: 0xE1D0, - 37048 - 19968: 0xEED0, - 37057 - 19968: 0xE9F4, - 37066 - 19968: 0xCEF4, - 37086 - 19968: 0xD5CD, - 37089 - 19968: 0xCFDB, - 37096 - 19968: 0xDDBB, - 37101 - 19968: 0xCEAC, - 37109 - 19968: 0xE9E8, - 37117 - 19968: 0xD4B4, - 37122 - 19968: 0xE4C7, - 37138 - 19968: 0xF5DB, - 37141 - 19968: 0xFAC1, - 37145 - 19968: 0xDEA9, - 37159 - 19968: 0xD4F8, - 37165 - 19968: 0xEFF7, - 37170 - 19968: 0xD3B3, - 37193 - 19968: 0xEBB7, - 37194 - 19968: 0xEFF8, - 37195 - 19968: 0xF5DC, - 37196 - 19968: 0xEDCC, - 37197 - 19968: 0xDBD5, - 37198 - 19968: 0xF1CF, - 37202 - 19968: 0xF1D0, - 37218 - 19968: 0xF5B2, - 37225 - 19968: 0xD9AE, - 37226 - 19968: 0xD5AC, - 37228 - 19968: 0xE2C6, - 37237 - 19968: 0xFDA3, - 37239 - 19968: 0xFBE5, - 37240 - 19968: 0xDFAB, - 37255 - 19968: 0xE2F5, - 37257 - 19968: 0xF6AD, - 37259 - 19968: 0xF5B3, - 37261 - 19968: 0xF0B5, - 37266 - 19968: 0xE1A5, - 37276 - 19968: 0xF5DD, - 37291 - 19968: 0xECA2, - 37292 - 19968: 0xEDFD, - 37294 - 19968: 0xF5B4, - 37295 - 19968: 0xFBB8, - 37297 - 19968: 0xDBA3, - 37300 - 19968: 0xD6CA, - 37301 - 19968: 0xCBD9, - 37312 - 19968: 0xE5D4, - 37319 - 19968: 0xF3FA, - 37321 - 19968: 0xEBB8, - 37323 - 19968: 0xE0B7, - 37324 - 19968: 0xD7EC, - 37325 - 19968: 0xF1EC, - 37326 - 19968: 0xE5AF, - 37327 - 19968: 0xD5E1, - 37328 - 19968: 0xD7ED, - 37329 - 19968: 0xD1D1, - 37335 - 19968: 0xE1F2, - 37336 - 19968: 0xEFF9, - 37340 - 19968: 0xDDBC, - 37341 - 19968: 0xF6DC, - 37347 - 19968: 0xF0E5, - 37351 - 19968: 0xF4C4, - 37354 - 19968: 0xE9E9, - 37365 - 19968: 0xF3FB, - 37389 - 19968: 0xD4EF, - 37392 - 19968: 0xCCA2, - 37393 - 19968: 0xF7FE, - 37394 - 19968: 0xDFBC, - 37399 - 19968: 0xEBCD, - 37406 - 19968: 0xD0B7, - 37428 - 19968: 0xD6C2, - 37434 - 19968: 0xE8AD, - 37439 - 19968: 0xEFAF, - 37440 - 19968: 0xCBA5, - 37445 - 19968: 0xCBE9, - 37449 - 19968: 0xFAE8, - 37463 - 19968: 0xCCC6, - 37467 - 19968: 0xE6E7, - 37470 - 19968: 0xEAC7, - 37474 - 19968: 0xDBA4, - 37476 - 19968: 0xCFC9, - 37477 - 19968: 0xE2FC, - 37478 - 19968: 0xEFFA, - 37504 - 19968: 0xEBDE, - 37507 - 19968: 0xF5C8, - 37509 - 19968: 0xD4DE, - 37521 - 19968: 0xE0D5, - 37523 - 19968: 0xEFB0, - 37526 - 19968: 0xE2C7, - 37528 - 19968: 0xD9AF, - 37532 - 19968: 0xF9E7, - 37555 - 19968: 0xE7E5, - 37558 - 19968: 0xCFCA, - 37559 - 19968: 0xE1D1, - 37561 - 19968: 0xE2C8, - 37580 - 19968: 0xEFFB, - 37583 - 19968: 0xFAF9, - 37586 - 19968: 0xDCF2, - 37604 - 19968: 0xE0A7, - 37610 - 19968: 0xF8E8, - 37624 - 19968: 0xCBEA, - 37628 - 19968: 0xCBBC, - 37636 - 19968: 0xD6E2, - 37648 - 19968: 0xF5DE, - 37656 - 19968: 0xF5DF, - 37658 - 19968: 0xEEB6, - 37662 - 19968: 0xE2F6, - 37663 - 19968: 0xD3CA, - 37664 - 19968: 0xEFFC, - 37665 - 19968: 0xD1C4, - 37666 - 19968: 0xEFB1, - 37668 - 19968: 0xD1C5, - 37670 - 19968: 0xD0DE, - 37672 - 19968: 0xD9E1, - 37675 - 19968: 0xE0B8, - 37678 - 19968: 0xCDD1, - 37679 - 19968: 0xF3B9, - 37704 - 19968: 0xE7CC, - 37706 - 19968: 0xD6A8, - 37707 - 19968: 0xCEA7, - 37709 - 19968: 0xD4B5, - 37716 - 19968: 0xE4C8, - 37723 - 19968: 0xD3B4, - 37742 - 19968: 0xEBB9, - 37749 - 19968: 0xCBF5, - 37756 - 19968: 0xF6DD, - 37758 - 19968: 0xF1A3, - 37772 - 19968: 0xCCC7, - 37780 - 19968: 0xE9CA, - 37782 - 19968: 0xE1F0, - 37786 - 19968: 0xF5E0, - 37795 - 19968: 0xFBAF, - 37799 - 19968: 0xCBD1, - 37804 - 19968: 0xFBE0, - 37805 - 19968: 0xF2E5, - 37808 - 19968: 0xECF0, - 37827 - 19968: 0xF0EC, - 37841 - 19968: 0xEEEB, - 37854 - 19968: 0xE9CB, - 37857 - 19968: 0xCCF0, - 37860 - 19968: 0xD7AF, - 37878 - 19968: 0xF3A1, - 37892 - 19968: 0xFCF5, - 37912 - 19968: 0xF1A4, - 37925 - 19968: 0xE0D6, - 37931 - 19968: 0xEFB2, - 37941 - 19968: 0xF4D1, - 37944 - 19968: 0xF7A1, - 37956 - 19968: 0xF1D1, - 37969 - 19968: 0xCAFC, - 37970 - 19968: 0xCAFD, - 37979 - 19968: 0xCECE, - 38013 - 19968: 0xF3C8, - 38015 - 19968: 0xF3BA, - 38263 - 19968: 0xEDFE, - 38272 - 19968: 0xDAA6, - 38275 - 19968: 0xE0EC, - 38281 - 19968: 0xF8CD, - 38283 - 19968: 0xCBD2, - 38287 - 19968: 0xEBCE, - 38289 - 19968: 0xF9D8, - 38290 - 19968: 0xF9D9, - 38291 - 19968: 0xCAE0, - 38292 - 19968: 0xDACA, - 38296 - 19968: 0xCBA6, - 38307 - 19968: 0xCAC8, - 38308 - 19968: 0xF9EE, - 38309 - 19968: 0xDBEC, - 38312 - 19968: 0xD0B1, - 38317 - 19968: 0xD5EF, - 38321 - 19968: 0xE6F3, - 38331 - 19968: 0xE7A2, - 38332 - 19968: 0xE4D9, - 38343 - 19968: 0xE4E1, - 38346 - 19968: 0xFCC4, - 38356 - 19968: 0xF9EF, - 38357 - 19968: 0xCFF4, - 38358 - 19968: 0xF7E6, - 38364 - 19968: 0xCEBC, - 38369 - 19968: 0xF4C5, - 38370 - 19968: 0xDCA3, - 38428 - 19968: 0xDDBD, - 38433 - 19968: 0xF4C6, - 38442 - 19968: 0xF8A1, - 38446 - 19968: 0xE8D6, - 38450 - 19968: 0xDBC1, - 38459 - 19968: 0xF0E6, - 38463 - 19968: 0xE4B9, - 38464 - 19968: 0xF6ED, - 38466 - 19968: 0xF9AE, - 38468 - 19968: 0xDDBE, - 38475 - 19968: 0xD7B0, - 38476 - 19968: 0xD8E8, - 38477 - 19968: 0xCBBD, - 38480 - 19968: 0xF9DA, - 38491 - 19968: 0xF8CE, - 38492 - 19968: 0xF9F0, - 38493 - 19968: 0xE0ED, - 38494 - 19968: 0xE3B3, - 38495 - 19968: 0xF4B3, - 38498 - 19968: 0xEAC2, - 38499 - 19968: 0xF2E6, - 38500 - 19968: 0xF0B6, - 38506 - 19968: 0xDBD6, - 38512 - 19968: 0xEBE4, - 38515 - 19968: 0xF2E7, - 38517 - 19968: 0xD7D5, - 38518 - 19968: 0xD4B6, - 38519 - 19968: 0xF9E8, - 38520 - 19968: 0xD7C1, - 38525 - 19968: 0xE5D5, - 38533 - 19968: 0xE9EA, - 38534 - 19968: 0xD7CC, - 38538 - 19968: 0xD3E9, - 38539 - 19968: 0xE2C9, - 38541 - 19968: 0xFCDB, - 38542 - 19968: 0xCDAD, - 38548 - 19968: 0xCCB0, - 38549 - 19968: 0xEAA2, - 38552 - 19968: 0xE4F6, - 38553 - 19968: 0xD0C0, - 38555 - 19968: 0xF0B7, - 38556 - 19968: 0xEEA1, - 38563 - 19968: 0xD7F6, - 38567 - 19968: 0xE2CA, - 38568 - 19968: 0xE2CB, - 38570 - 19968: 0xFACF, - 38577 - 19968: 0xEBDF, - 38583 - 19968: 0xD6CB, - 38587 - 19968: 0xF4B4, - 38592 - 19968: 0xEDCD, - 38593 - 19968: 0xE4D2, - 38596 - 19968: 0xEAA9, - 38597 - 19968: 0xE4BA, - 38598 - 19968: 0xF3A2, - 38599 - 19968: 0xCDD2, - 38601 - 19968: 0xF6CB, - 38603 - 19968: 0xF1E6, - 38604 - 19968: 0xEDC1, - 38605 - 19968: 0xE8BC, - 38606 - 19968: 0xEED1, - 38613 - 19968: 0xF0E7, - 38614 - 19968: 0xE2CC, - 38617 - 19968: 0xE4AA, - 38619 - 19968: 0xF5E1, - 38620 - 19968: 0xEDDA, - 38626 - 19968: 0xD7EE, - 38627 - 19968: 0xD1F1, - 38632 - 19968: 0xE9EB, - 38633 - 19968: 0xE9EC, - 38634 - 19968: 0xE0E4, - 38639 - 19968: 0xDAA7, - 38640 - 19968: 0xDDD4, - 38642 - 19968: 0xEAA3, - 38646 - 19968: 0xD6C3, - 38647 - 19968: 0xD6F4, - 38649 - 19968: 0xDADF, - 38651 - 19968: 0xEFB3, - 38656 - 19968: 0xE2CD, - 38662 - 19968: 0xEFFD, - 38663 - 19968: 0xF2E8, - 38673 - 19968: 0xEFC5, - 38675 - 19968: 0xE7E7, - 38678 - 19968: 0xD7FD, - 38681 - 19968: 0xE7CE, - 38684 - 19968: 0xDFDC, - 38686 - 19968: 0xF9C7, - 38695 - 19968: 0xD9F6, - 38704 - 19968: 0xDFAC, - 38706 - 19968: 0xD6DA, - 38713 - 19968: 0xDCA4, - 38717 - 19968: 0xF0B8, - 38722 - 19968: 0xD5FA, - 38724 - 19968: 0xE4F7, - 38728 - 19968: 0xD6C4, - 38737 - 19968: 0xF4EC, - 38742 - 19968: 0xEFFE, - 38748 - 19968: 0xF0A1, - 38750 - 19968: 0xDEAA, - 38753 - 19968: 0xDABC, - 38754 - 19968: 0xD8FC, - 38761 - 19968: 0xFAD4, - 38765 - 19968: 0xECE5, - 38772 - 19968: 0xFCA8, - 38775 - 19968: 0xECE6, - 38778 - 19968: 0xD8CB, - 38795 - 19968: 0xFBB9, - 38797 - 19968: 0xE4D3, - 38799 - 19968: 0xCDF9, - 38816 - 19968: 0xCFD3, - 38824 - 19968: 0xCAEA, - 38827 - 19968: 0xCFD4, - 38829 - 19968: 0xF8BD, - 38854 - 19968: 0xF4C7, - 38859 - 19968: 0xEADF, - 38867 - 19968: 0xF9DB, - 38876 - 19968: 0xD4B7, - 38899 - 19968: 0xEBE5, - 38902 - 19968: 0xE1D2, - 38907 - 19968: 0xEAA4, - 38911 - 19968: 0xFAC2, - 38912 - 19968: 0xFBE1, - 38913 - 19968: 0xFAED, - 38914 - 19968: 0xF0A2, - 38915 - 19968: 0xCCF1, - 38917 - 19968: 0xFAA3, - 38918 - 19968: 0xE2F7, - 38920 - 19968: 0xE2CE, - 38922 - 19968: 0xE9F5, - 38924 - 19968: 0xE1EB, - 38928 - 19968: 0xE7E8, - 38929 - 19968: 0xE8D7, - 38930 - 19968: 0xDAF8, - 38931 - 19968: 0xD4CB, - 38935 - 19968: 0xF7F6, - 38936 - 19968: 0xD6C5, - 38957 - 19968: 0xD4E9, - 38960 - 19968: 0xFAFA, - 38968 - 19968: 0xCCF2, - 38969 - 19968: 0xF7DD, - 38971 - 19968: 0xDEBA, - 38982 - 19968: 0xCEA8, - 38988 - 19968: 0xF0B9, - 38989 - 19968: 0xE4FE, - 38990 - 19968: 0xE4C9, - 38996 - 19968: 0xE4D4, - 39000 - 19968: 0xEAC3, - 39002 - 19968: 0xEFB4, - 39006 - 19968: 0xD7BE, - 39013 - 19968: 0xFBE2, - 39015 - 19968: 0xCDD3, - 39019 - 19968: 0xEFB5, - 39023 - 19968: 0xFAE9, - 39080 - 19968: 0xF9A6, - 39087 - 19968: 0xDFBD, - 39089 - 19968: 0xF7C7, - 39108 - 19968: 0xF8FD, - 39111 - 19968: 0xF8FC, - 39131 - 19968: 0xDEAB, - 39132 - 19968: 0xDBE8, - 39135 - 19968: 0xE3DD, - 39137 - 19968: 0xE1E2, - 39138 - 19968: 0xD1C6, - 39149 - 19968: 0xF6D0, - 39150 - 19968: 0xEBE6, - 39151 - 19968: 0xDAF9, - 39156 - 19968: 0xECC7, - 39164 - 19968: 0xDEF8, - 39165 - 19968: 0xF8E9, - 39166 - 19968: 0xE3DE, - 39171 - 19968: 0xCEF5, - 39177 - 19968: 0xFAC3, - 39178 - 19968: 0xE5D7, - 39180 - 19968: 0xECC8, - 39184 - 19968: 0xF3C9, - 39187 - 19968: 0xE4BB, - 39192 - 19968: 0xE6AE, - 39198 - 19968: 0xEFB6, - 39200 - 19968: 0xDCBF, - 39208 - 19968: 0xCEBD, - 39237 - 19968: 0xD8C3, - 39241 - 19968: 0xD0CF, - 39243 - 19968: 0xCFFA, - 39244 - 19968: 0xF3CA, - 39245 - 19968: 0xE0D7, - 39249 - 19968: 0xD1C7, - 39250 - 19968: 0xE9AE, - 39252 - 19968: 0xE8BD, - 39255 - 19968: 0xFAC4, - 39318 - 19968: 0xE2CF, - 39321 - 19968: 0xFAC5, - 39325 - 19968: 0xF9B8, - 39333 - 19968: 0xDCE0, - 39336 - 19968: 0xFBB0, - 39340 - 19968: 0xD8A9, - 39341 - 19968: 0xE5DF, - 39342 - 19968: 0xF9A7, - 39345 - 19968: 0xF6EE, - 39347 - 19968: 0xF6CC, - 39348 - 19968: 0xE2F8, - 39353 - 19968: 0xECF1, - 39361 - 19968: 0xDAE0, - 39376 - 19968: 0xF1D2, - 39377 - 19968: 0xD2CC, - 39378 - 19968: 0xCFCB, - 39381 - 19968: 0xCABD, - 39385 - 19968: 0xDDBF, - 39389 - 19968: 0xF6EF, - 39391 - 19968: 0xDEF9, - 39405 - 19968: 0xFAB4, - 39409 - 19968: 0xD5AD, - 39423 - 19968: 0xF1E7, - 39425 - 19968: 0xDEBE, - 39432 - 19968: 0xDCC0, - 39438 - 19968: 0xD1C8, - 39439 - 19968: 0xD1C9, - 39449 - 19968: 0xF8BE, - 39467 - 19968: 0xCBF6, - 39472 - 19968: 0xD4F9, - 39478 - 19968: 0xF5E2, - 39479 - 19968: 0xE1D3, - 39488 - 19968: 0xD8E9, - 39491 - 19968: 0xF8FE, - 39493 - 19968: 0xCFCC, - 39501 - 19968: 0xFDA4, - 39509 - 19968: 0xCEF6, - 39511 - 19968: 0xFAD0, - 39514 - 19968: 0xCCF3, - 39515 - 19968: 0xE6BE, - 39519 - 19968: 0xF6AE, - 39522 - 19968: 0xD5F0, - 39525 - 19968: 0xD1CA, - 39529 - 19968: 0xFCBE, - 39530 - 19968: 0xD5F1, - 39592 - 19968: 0xCDE9, - 39608 - 19968: 0xFAB5, - 39635 - 19968: 0xE2D0, - 39636 - 19968: 0xF4F7, - 39640 - 19968: 0xCDD4, - 39653 - 19968: 0xE7A3, - 39662 - 19968: 0xDBA5, - 39706 - 19968: 0xE2D1, - 39719 - 19968: 0xD7A2, - 39722 - 19968: 0xF7E3, - 39729 - 19968: 0xEAA6, - 39740 - 19968: 0xD0A1, - 39745 - 19968: 0xCEDA, - 39746 - 19968: 0xFBEB, - 39747 - 19968: 0xDBA6, - 39748 - 19968: 0xDBDE, - 39749 - 19968: 0xD8E5, - 39759 - 19968: 0xEAE0, - 39764 - 19968: 0xD8AA, - 39770 - 19968: 0xE5E0, - 39791 - 19968: 0xD6DB, - 39822 - 19968: 0xEFC6, - 39825 - 19968: 0xF8EA, - 39839 - 19968: 0xE4D5, - 39851 - 19968: 0xCEF7, - 39854 - 19968: 0xE0D8, - 39881 - 19968: 0xD7EF, - 39894 - 19968: 0xF4ED, - 39908 - 19968: 0xCDE6, - 39912 - 19968: 0xCCF4, - 39949 - 19968: 0xF5E3, - 39952 - 19968: 0xE4CA, - 39954 - 19968: 0xDCE1, - 39957 - 19968: 0xF9C8, - 39973 - 19968: 0xFCBF, - 39986 - 19968: 0xE8A7, - 39995 - 19968: 0xD8C4, - 40007 - 19968: 0xCBBE, - 40009 - 19968: 0xDCAE, - 40023 - 19968: 0xD7F7, - 40165 - 19968: 0xF0E8, - 40167 - 19968: 0xDDC0, - 40169 - 19968: 0xCFCD, - 40179 - 19968: 0xDCF3, - 40180 - 19968: 0xD9B0, - 40182 - 19968: 0xE6E9, - 40201 - 19968: 0xE4BC, - 40219 - 19968: 0xEAC4, - 40230 - 19968: 0xE4EC, - 40232 - 19968: 0xE4E5, - 40251 - 19968: 0xFBF8, - 40273 - 19968: 0xCCBB, - 40285 - 19968: 0xE4BD, - 40288 - 19968: 0xCDDC, - 40289 - 19968: 0xD9F7, - 40300 - 19968: 0xDDDF, - 40306 - 19968: 0xEDCE, - 40361 - 19968: 0xD9D0, - 40367 - 19968: 0xE5A3, - 40372 - 19968: 0xF9CD, - 40388 - 19968: 0xCDAE, - 40407 - 19968: 0xCFCE, - 40434 - 19968: 0xF6AF, - 40440 - 19968: 0xFDD3, - 40441 - 19968: 0xEBED, - 40442 - 19968: 0xD6DC, - 40474 - 19968: 0xE5A4, - 40478 - 19968: 0xD5B6, - 40565 - 19968: 0xD6DD, - 40569 - 19968: 0xF9E9, - 40573 - 19968: 0xE7A4, - 40575 - 19968: 0xD6E3, - 40594 - 19968: 0xD1CB, - 40595 - 19968: 0xD6E4, - 40599 - 19968: 0xD5F2, - 40605 - 19968: 0xDEFA, - 40607 - 19968: 0xD7F8, - 40613 - 19968: 0xD8EA, - 40628 - 19968: 0xCFD5, - 40629 - 19968: 0xD8FD, - 40635 - 19968: 0xD8AB, - 40638 - 19968: 0xFDCB, - 40643 - 19968: 0xFCDC, - 40653 - 19968: 0xE0A8, - 40654 - 19968: 0xD5F3, - 40657 - 19968: 0xFDD9, - 40660 - 19968: 0xCCA3, - 40664 - 19968: 0xD9F9, - 40667 - 19968: 0xD3EA, - 40668 - 19968: 0xF5F5, - 40670 - 19968: 0xEFC7, - 40680 - 19968: 0xD3DA, - 40692 - 19968: 0xDABD, - 40711 - 19968: 0xE8A8, - 40712 - 19968: 0xDCAF, - 40718 - 19968: 0xF0A3, - 40723 - 19968: 0xCDD5, - 40736 - 19968: 0xE0A9, - 40763 - 19968: 0xDEAC, - 40778 - 19968: 0xF0BA, - 40779 - 19968: 0xEEB1, - 40782 - 19968: 0xEEB2, - 40786 - 19968: 0xF6CD, - 40799 - 19968: 0xEED2, - 40801 - 19968: 0xD6C6, - 40807 - 19968: 0xE0E5, - 40810 - 19968: 0xF3BB, - 40812 - 19968: 0xE5E1, - 40823 - 19968: 0xE4CB, - 40845 - 19968: 0xD7A3, - 40848 - 19968: 0xDBC2, - 40853 - 19968: 0xCAFE, - 40860 - 19968: 0xCFCF, -} - -const encode1Low, encode1High = 44032, 55204 - -var encode1 = [...]uint16{ - 44032 - 44032: 0xB0A1, - 44033 - 44032: 0xB0A2, - 44034 - 44032: 0x8141, - 44035 - 44032: 0x8142, - 44036 - 44032: 0xB0A3, - 44037 - 44032: 0x8143, - 44038 - 44032: 0x8144, - 44039 - 44032: 0xB0A4, - 44040 - 44032: 0xB0A5, - 44041 - 44032: 0xB0A6, - 44042 - 44032: 0xB0A7, - 44043 - 44032: 0x8145, - 44044 - 44032: 0x8146, - 44045 - 44032: 0x8147, - 44046 - 44032: 0x8148, - 44047 - 44032: 0x8149, - 44048 - 44032: 0xB0A8, - 44049 - 44032: 0xB0A9, - 44050 - 44032: 0xB0AA, - 44051 - 44032: 0xB0AB, - 44052 - 44032: 0xB0AC, - 44053 - 44032: 0xB0AD, - 44054 - 44032: 0xB0AE, - 44055 - 44032: 0xB0AF, - 44056 - 44032: 0x814A, - 44057 - 44032: 0xB0B0, - 44058 - 44032: 0xB0B1, - 44059 - 44032: 0xB0B2, - 44060 - 44032: 0xB0B3, - 44061 - 44032: 0xB0B4, - 44062 - 44032: 0x814B, - 44063 - 44032: 0x814C, - 44064 - 44032: 0xB0B5, - 44065 - 44032: 0x814D, - 44066 - 44032: 0x814E, - 44067 - 44032: 0x814F, - 44068 - 44032: 0xB0B6, - 44069 - 44032: 0x8150, - 44070 - 44032: 0x8151, - 44071 - 44032: 0x8152, - 44072 - 44032: 0x8153, - 44073 - 44032: 0x8154, - 44074 - 44032: 0x8155, - 44075 - 44032: 0x8156, - 44076 - 44032: 0xB0B7, - 44077 - 44032: 0xB0B8, - 44078 - 44032: 0x8157, - 44079 - 44032: 0xB0B9, - 44080 - 44032: 0xB0BA, - 44081 - 44032: 0xB0BB, - 44082 - 44032: 0x8158, - 44083 - 44032: 0x8159, - 44084 - 44032: 0x815A, - 44085 - 44032: 0x8161, - 44086 - 44032: 0x8162, - 44087 - 44032: 0x8163, - 44088 - 44032: 0xB0BC, - 44089 - 44032: 0xB0BD, - 44090 - 44032: 0x8164, - 44091 - 44032: 0x8165, - 44092 - 44032: 0xB0BE, - 44093 - 44032: 0x8166, - 44094 - 44032: 0x8167, - 44095 - 44032: 0x8168, - 44096 - 44032: 0xB0BF, - 44097 - 44032: 0x8169, - 44098 - 44032: 0x816A, - 44099 - 44032: 0x816B, - 44100 - 44032: 0x816C, - 44101 - 44032: 0x816D, - 44102 - 44032: 0x816E, - 44103 - 44032: 0x816F, - 44104 - 44032: 0x8170, - 44105 - 44032: 0x8171, - 44106 - 44032: 0x8172, - 44107 - 44032: 0xB0C0, - 44108 - 44032: 0x8173, - 44109 - 44032: 0xB0C1, - 44110 - 44032: 0x8174, - 44111 - 44032: 0x8175, - 44112 - 44032: 0x8176, - 44113 - 44032: 0x8177, - 44114 - 44032: 0x8178, - 44115 - 44032: 0x8179, - 44116 - 44032: 0xB0C2, - 44117 - 44032: 0x817A, - 44118 - 44032: 0x8181, - 44119 - 44032: 0x8182, - 44120 - 44032: 0xB0C3, - 44121 - 44032: 0x8183, - 44122 - 44032: 0x8184, - 44123 - 44032: 0x8185, - 44124 - 44032: 0xB0C4, - 44125 - 44032: 0x8186, - 44126 - 44032: 0x8187, - 44127 - 44032: 0x8188, - 44128 - 44032: 0x8189, - 44129 - 44032: 0x818A, - 44130 - 44032: 0x818B, - 44131 - 44032: 0x818C, - 44132 - 44032: 0x818D, - 44133 - 44032: 0x818E, - 44134 - 44032: 0x818F, - 44135 - 44032: 0x8190, - 44136 - 44032: 0x8191, - 44137 - 44032: 0x8192, - 44138 - 44032: 0x8193, - 44139 - 44032: 0x8194, - 44140 - 44032: 0x8195, - 44141 - 44032: 0x8196, - 44142 - 44032: 0x8197, - 44143 - 44032: 0x8198, - 44144 - 44032: 0xB0C5, - 44145 - 44032: 0xB0C6, - 44146 - 44032: 0x8199, - 44147 - 44032: 0x819A, - 44148 - 44032: 0xB0C7, - 44149 - 44032: 0x819B, - 44150 - 44032: 0x819C, - 44151 - 44032: 0xB0C8, - 44152 - 44032: 0xB0C9, - 44153 - 44032: 0x819D, - 44154 - 44032: 0xB0CA, - 44155 - 44032: 0x819E, - 44156 - 44032: 0x819F, - 44157 - 44032: 0x81A0, - 44158 - 44032: 0x81A1, - 44159 - 44032: 0x81A2, - 44160 - 44032: 0xB0CB, - 44161 - 44032: 0xB0CC, - 44162 - 44032: 0x81A3, - 44163 - 44032: 0xB0CD, - 44164 - 44032: 0xB0CE, - 44165 - 44032: 0xB0CF, - 44166 - 44032: 0xB0D0, - 44167 - 44032: 0x81A4, - 44168 - 44032: 0x81A5, - 44169 - 44032: 0xB0D1, - 44170 - 44032: 0xB0D2, - 44171 - 44032: 0xB0D3, - 44172 - 44032: 0xB0D4, - 44173 - 44032: 0x81A6, - 44174 - 44032: 0x81A7, - 44175 - 44032: 0x81A8, - 44176 - 44032: 0xB0D5, - 44177 - 44032: 0x81A9, - 44178 - 44032: 0x81AA, - 44179 - 44032: 0x81AB, - 44180 - 44032: 0xB0D6, - 44181 - 44032: 0x81AC, - 44182 - 44032: 0x81AD, - 44183 - 44032: 0x81AE, - 44184 - 44032: 0x81AF, - 44185 - 44032: 0x81B0, - 44186 - 44032: 0x81B1, - 44187 - 44032: 0x81B2, - 44188 - 44032: 0xB0D7, - 44189 - 44032: 0xB0D8, - 44190 - 44032: 0x81B3, - 44191 - 44032: 0xB0D9, - 44192 - 44032: 0xB0DA, - 44193 - 44032: 0xB0DB, - 44194 - 44032: 0x81B4, - 44195 - 44032: 0x81B5, - 44196 - 44032: 0x81B6, - 44197 - 44032: 0x81B7, - 44198 - 44032: 0x81B8, - 44199 - 44032: 0x81B9, - 44200 - 44032: 0xB0DC, - 44201 - 44032: 0xB0DD, - 44202 - 44032: 0xB0DE, - 44203 - 44032: 0x81BA, - 44204 - 44032: 0xB0DF, - 44205 - 44032: 0x81BB, - 44206 - 44032: 0x81BC, - 44207 - 44032: 0xB0E0, - 44208 - 44032: 0xB0E1, - 44209 - 44032: 0x81BD, - 44210 - 44032: 0x81BE, - 44211 - 44032: 0x81BF, - 44212 - 44032: 0x81C0, - 44213 - 44032: 0x81C1, - 44214 - 44032: 0x81C2, - 44215 - 44032: 0x81C3, - 44216 - 44032: 0xB0E2, - 44217 - 44032: 0xB0E3, - 44218 - 44032: 0x81C4, - 44219 - 44032: 0xB0E4, - 44220 - 44032: 0xB0E5, - 44221 - 44032: 0xB0E6, - 44222 - 44032: 0x81C5, - 44223 - 44032: 0x81C6, - 44224 - 44032: 0x81C7, - 44225 - 44032: 0xB0E7, - 44226 - 44032: 0x81C8, - 44227 - 44032: 0x81C9, - 44228 - 44032: 0xB0E8, - 44229 - 44032: 0x81CA, - 44230 - 44032: 0x81CB, - 44231 - 44032: 0x81CC, - 44232 - 44032: 0xB0E9, - 44233 - 44032: 0x81CD, - 44234 - 44032: 0x81CE, - 44235 - 44032: 0x81CF, - 44236 - 44032: 0xB0EA, - 44237 - 44032: 0x81D0, - 44238 - 44032: 0x81D1, - 44239 - 44032: 0x81D2, - 44240 - 44032: 0x81D3, - 44241 - 44032: 0x81D4, - 44242 - 44032: 0x81D5, - 44243 - 44032: 0x81D6, - 44244 - 44032: 0x81D7, - 44245 - 44032: 0xB0EB, - 44246 - 44032: 0x81D8, - 44247 - 44032: 0xB0EC, - 44248 - 44032: 0x81D9, - 44249 - 44032: 0x81DA, - 44250 - 44032: 0x81DB, - 44251 - 44032: 0x81DC, - 44252 - 44032: 0x81DD, - 44253 - 44032: 0x81DE, - 44254 - 44032: 0x81DF, - 44255 - 44032: 0x81E0, - 44256 - 44032: 0xB0ED, - 44257 - 44032: 0xB0EE, - 44258 - 44032: 0x81E1, - 44259 - 44032: 0x81E2, - 44260 - 44032: 0xB0EF, - 44261 - 44032: 0x81E3, - 44262 - 44032: 0x81E4, - 44263 - 44032: 0xB0F0, - 44264 - 44032: 0xB0F1, - 44265 - 44032: 0x81E5, - 44266 - 44032: 0xB0F2, - 44267 - 44032: 0x81E6, - 44268 - 44032: 0xB0F3, - 44269 - 44032: 0x81E7, - 44270 - 44032: 0x81E8, - 44271 - 44032: 0xB0F4, - 44272 - 44032: 0xB0F5, - 44273 - 44032: 0xB0F6, - 44274 - 44032: 0x81E9, - 44275 - 44032: 0xB0F7, - 44276 - 44032: 0x81EA, - 44277 - 44032: 0xB0F8, - 44278 - 44032: 0xB0F9, - 44279 - 44032: 0x81EB, - 44280 - 44032: 0x81EC, - 44281 - 44032: 0x81ED, - 44282 - 44032: 0x81EE, - 44283 - 44032: 0x81EF, - 44284 - 44032: 0xB0FA, - 44285 - 44032: 0xB0FB, - 44286 - 44032: 0x81F0, - 44287 - 44032: 0x81F1, - 44288 - 44032: 0xB0FC, - 44289 - 44032: 0x81F2, - 44290 - 44032: 0x81F3, - 44291 - 44032: 0x81F4, - 44292 - 44032: 0xB0FD, - 44293 - 44032: 0x81F5, - 44294 - 44032: 0xB0FE, - 44295 - 44032: 0x81F6, - 44296 - 44032: 0x81F7, - 44297 - 44032: 0x81F8, - 44298 - 44032: 0x81F9, - 44299 - 44032: 0x81FA, - 44300 - 44032: 0xB1A1, - 44301 - 44032: 0xB1A2, - 44302 - 44032: 0x81FB, - 44303 - 44032: 0xB1A3, - 44304 - 44032: 0x81FC, - 44305 - 44032: 0xB1A4, - 44306 - 44032: 0x81FD, - 44307 - 44032: 0x81FE, - 44308 - 44032: 0x8241, - 44309 - 44032: 0x8242, - 44310 - 44032: 0x8243, - 44311 - 44032: 0x8244, - 44312 - 44032: 0xB1A5, - 44313 - 44032: 0x8245, - 44314 - 44032: 0x8246, - 44315 - 44032: 0x8247, - 44316 - 44032: 0xB1A6, - 44317 - 44032: 0x8248, - 44318 - 44032: 0x8249, - 44319 - 44032: 0x824A, - 44320 - 44032: 0xB1A7, - 44321 - 44032: 0x824B, - 44322 - 44032: 0x824C, - 44323 - 44032: 0x824D, - 44324 - 44032: 0x824E, - 44325 - 44032: 0x824F, - 44326 - 44032: 0x8250, - 44327 - 44032: 0x8251, - 44328 - 44032: 0x8252, - 44329 - 44032: 0xB1A8, - 44330 - 44032: 0x8253, - 44331 - 44032: 0x8254, - 44332 - 44032: 0xB1A9, - 44333 - 44032: 0xB1AA, - 44334 - 44032: 0x8255, - 44335 - 44032: 0x8256, - 44336 - 44032: 0x8257, - 44337 - 44032: 0x8258, - 44338 - 44032: 0x8259, - 44339 - 44032: 0x825A, - 44340 - 44032: 0xB1AB, - 44341 - 44032: 0xB1AC, - 44342 - 44032: 0x8261, - 44343 - 44032: 0x8262, - 44344 - 44032: 0xB1AD, - 44345 - 44032: 0x8263, - 44346 - 44032: 0x8264, - 44347 - 44032: 0x8265, - 44348 - 44032: 0xB1AE, - 44349 - 44032: 0x8266, - 44350 - 44032: 0x8267, - 44351 - 44032: 0x8268, - 44352 - 44032: 0x8269, - 44353 - 44032: 0x826A, - 44354 - 44032: 0x826B, - 44355 - 44032: 0x826C, - 44356 - 44032: 0xB1AF, - 44357 - 44032: 0xB1B0, - 44358 - 44032: 0x826D, - 44359 - 44032: 0xB1B1, - 44360 - 44032: 0x826E, - 44361 - 44032: 0xB1B2, - 44362 - 44032: 0x826F, - 44363 - 44032: 0x8270, - 44364 - 44032: 0x8271, - 44365 - 44032: 0x8272, - 44366 - 44032: 0x8273, - 44367 - 44032: 0x8274, - 44368 - 44032: 0xB1B3, - 44369 - 44032: 0x8275, - 44370 - 44032: 0x8276, - 44371 - 44032: 0x8277, - 44372 - 44032: 0xB1B4, - 44373 - 44032: 0x8278, - 44374 - 44032: 0x8279, - 44375 - 44032: 0x827A, - 44376 - 44032: 0xB1B5, - 44377 - 44032: 0x8281, - 44378 - 44032: 0x8282, - 44379 - 44032: 0x8283, - 44380 - 44032: 0x8284, - 44381 - 44032: 0x8285, - 44382 - 44032: 0x8286, - 44383 - 44032: 0x8287, - 44384 - 44032: 0x8288, - 44385 - 44032: 0xB1B6, - 44386 - 44032: 0x8289, - 44387 - 44032: 0xB1B7, - 44388 - 44032: 0x828A, - 44389 - 44032: 0x828B, - 44390 - 44032: 0x828C, - 44391 - 44032: 0x828D, - 44392 - 44032: 0x828E, - 44393 - 44032: 0x828F, - 44394 - 44032: 0x8290, - 44395 - 44032: 0x8291, - 44396 - 44032: 0xB1B8, - 44397 - 44032: 0xB1B9, - 44398 - 44032: 0x8292, - 44399 - 44032: 0x8293, - 44400 - 44032: 0xB1BA, - 44401 - 44032: 0x8294, - 44402 - 44032: 0x8295, - 44403 - 44032: 0xB1BB, - 44404 - 44032: 0xB1BC, - 44405 - 44032: 0xB1BD, - 44406 - 44032: 0xB1BE, - 44407 - 44032: 0x8296, - 44408 - 44032: 0x8297, - 44409 - 44032: 0x8298, - 44410 - 44032: 0x8299, - 44411 - 44032: 0xB1BF, - 44412 - 44032: 0xB1C0, - 44413 - 44032: 0xB1C1, - 44414 - 44032: 0x829A, - 44415 - 44032: 0xB1C2, - 44416 - 44032: 0x829B, - 44417 - 44032: 0xB1C3, - 44418 - 44032: 0xB1C4, - 44419 - 44032: 0x829C, - 44420 - 44032: 0x829D, - 44421 - 44032: 0x829E, - 44422 - 44032: 0x829F, - 44423 - 44032: 0x82A0, - 44424 - 44032: 0xB1C5, - 44425 - 44032: 0xB1C6, - 44426 - 44032: 0x82A1, - 44427 - 44032: 0x82A2, - 44428 - 44032: 0xB1C7, - 44429 - 44032: 0x82A3, - 44430 - 44032: 0x82A4, - 44431 - 44032: 0x82A5, - 44432 - 44032: 0xB1C8, - 44433 - 44032: 0x82A6, - 44434 - 44032: 0x82A7, - 44435 - 44032: 0x82A8, - 44436 - 44032: 0x82A9, - 44437 - 44032: 0x82AA, - 44438 - 44032: 0x82AB, - 44439 - 44032: 0x82AC, - 44440 - 44032: 0x82AD, - 44441 - 44032: 0x82AE, - 44442 - 44032: 0x82AF, - 44443 - 44032: 0x82B0, - 44444 - 44032: 0xB1C9, - 44445 - 44032: 0xB1CA, - 44446 - 44032: 0x82B1, - 44447 - 44032: 0x82B2, - 44448 - 44032: 0x82B3, - 44449 - 44032: 0x82B4, - 44450 - 44032: 0x82B5, - 44451 - 44032: 0x82B6, - 44452 - 44032: 0xB1CB, - 44453 - 44032: 0x82B7, - 44454 - 44032: 0x82B8, - 44455 - 44032: 0x82B9, - 44456 - 44032: 0x82BA, - 44457 - 44032: 0x82BB, - 44458 - 44032: 0x82BC, - 44459 - 44032: 0x82BD, - 44460 - 44032: 0x82BE, - 44461 - 44032: 0x82BF, - 44462 - 44032: 0x82C0, - 44463 - 44032: 0x82C1, - 44464 - 44032: 0x82C2, - 44465 - 44032: 0x82C3, - 44466 - 44032: 0x82C4, - 44467 - 44032: 0x82C5, - 44468 - 44032: 0x82C6, - 44469 - 44032: 0x82C7, - 44470 - 44032: 0x82C8, - 44471 - 44032: 0xB1CC, - 44472 - 44032: 0x82C9, - 44473 - 44032: 0x82CA, - 44474 - 44032: 0x82CB, - 44475 - 44032: 0x82CC, - 44476 - 44032: 0x82CD, - 44477 - 44032: 0x82CE, - 44478 - 44032: 0x82CF, - 44479 - 44032: 0x82D0, - 44480 - 44032: 0xB1CD, - 44481 - 44032: 0xB1CE, - 44482 - 44032: 0x82D1, - 44483 - 44032: 0x82D2, - 44484 - 44032: 0xB1CF, - 44485 - 44032: 0x82D3, - 44486 - 44032: 0x82D4, - 44487 - 44032: 0x82D5, - 44488 - 44032: 0xB1D0, - 44489 - 44032: 0x82D6, - 44490 - 44032: 0x82D7, - 44491 - 44032: 0x82D8, - 44492 - 44032: 0x82D9, - 44493 - 44032: 0x82DA, - 44494 - 44032: 0x82DB, - 44495 - 44032: 0x82DC, - 44496 - 44032: 0xB1D1, - 44497 - 44032: 0xB1D2, - 44498 - 44032: 0x82DD, - 44499 - 44032: 0xB1D3, - 44500 - 44032: 0x82DE, - 44501 - 44032: 0x82DF, - 44502 - 44032: 0x82E0, - 44503 - 44032: 0x82E1, - 44504 - 44032: 0x82E2, - 44505 - 44032: 0x82E3, - 44506 - 44032: 0x82E4, - 44507 - 44032: 0x82E5, - 44508 - 44032: 0xB1D4, - 44509 - 44032: 0x82E6, - 44510 - 44032: 0x82E7, - 44511 - 44032: 0x82E8, - 44512 - 44032: 0xB1D5, - 44513 - 44032: 0x82E9, - 44514 - 44032: 0x82EA, - 44515 - 44032: 0x82EB, - 44516 - 44032: 0xB1D6, - 44517 - 44032: 0x82EC, - 44518 - 44032: 0x82ED, - 44519 - 44032: 0x82EE, - 44520 - 44032: 0x82EF, - 44521 - 44032: 0x82F0, - 44522 - 44032: 0x82F1, - 44523 - 44032: 0x82F2, - 44524 - 44032: 0x82F3, - 44525 - 44032: 0x82F4, - 44526 - 44032: 0x82F5, - 44527 - 44032: 0x82F6, - 44528 - 44032: 0x82F7, - 44529 - 44032: 0x82F8, - 44530 - 44032: 0x82F9, - 44531 - 44032: 0x82FA, - 44532 - 44032: 0x82FB, - 44533 - 44032: 0x82FC, - 44534 - 44032: 0x82FD, - 44535 - 44032: 0x82FE, - 44536 - 44032: 0xB1D7, - 44537 - 44032: 0xB1D8, - 44538 - 44032: 0x8341, - 44539 - 44032: 0x8342, - 44540 - 44032: 0xB1D9, - 44541 - 44032: 0x8343, - 44542 - 44032: 0x8344, - 44543 - 44032: 0xB1DA, - 44544 - 44032: 0xB1DB, - 44545 - 44032: 0xB1DC, - 44546 - 44032: 0x8345, - 44547 - 44032: 0x8346, - 44548 - 44032: 0x8347, - 44549 - 44032: 0x8348, - 44550 - 44032: 0x8349, - 44551 - 44032: 0x834A, - 44552 - 44032: 0xB1DD, - 44553 - 44032: 0xB1DE, - 44554 - 44032: 0x834B, - 44555 - 44032: 0xB1DF, - 44556 - 44032: 0x834C, - 44557 - 44032: 0xB1E0, - 44558 - 44032: 0x834D, - 44559 - 44032: 0x834E, - 44560 - 44032: 0x834F, - 44561 - 44032: 0x8350, - 44562 - 44032: 0x8351, - 44563 - 44032: 0x8352, - 44564 - 44032: 0xB1E1, - 44565 - 44032: 0x8353, - 44566 - 44032: 0x8354, - 44567 - 44032: 0x8355, - 44568 - 44032: 0x8356, - 44569 - 44032: 0x8357, - 44570 - 44032: 0x8358, - 44571 - 44032: 0x8359, - 44572 - 44032: 0x835A, - 44573 - 44032: 0x8361, - 44574 - 44032: 0x8362, - 44575 - 44032: 0x8363, - 44576 - 44032: 0x8364, - 44577 - 44032: 0x8365, - 44578 - 44032: 0x8366, - 44579 - 44032: 0x8367, - 44580 - 44032: 0x8368, - 44581 - 44032: 0x8369, - 44582 - 44032: 0x836A, - 44583 - 44032: 0x836B, - 44584 - 44032: 0x836C, - 44585 - 44032: 0x836D, - 44586 - 44032: 0x836E, - 44587 - 44032: 0x836F, - 44588 - 44032: 0x8370, - 44589 - 44032: 0x8371, - 44590 - 44032: 0x8372, - 44591 - 44032: 0x8373, - 44592 - 44032: 0xB1E2, - 44593 - 44032: 0xB1E3, - 44594 - 44032: 0x8374, - 44595 - 44032: 0x8375, - 44596 - 44032: 0xB1E4, - 44597 - 44032: 0x8376, - 44598 - 44032: 0x8377, - 44599 - 44032: 0xB1E5, - 44600 - 44032: 0xB1E6, - 44601 - 44032: 0x8378, - 44602 - 44032: 0xB1E7, - 44603 - 44032: 0x8379, - 44604 - 44032: 0x837A, - 44605 - 44032: 0x8381, - 44606 - 44032: 0x8382, - 44607 - 44032: 0x8383, - 44608 - 44032: 0xB1E8, - 44609 - 44032: 0xB1E9, - 44610 - 44032: 0x8384, - 44611 - 44032: 0xB1EA, - 44612 - 44032: 0x8385, - 44613 - 44032: 0xB1EB, - 44614 - 44032: 0xB1EC, - 44615 - 44032: 0x8386, - 44616 - 44032: 0x8387, - 44617 - 44032: 0x8388, - 44618 - 44032: 0xB1ED, - 44619 - 44032: 0x8389, - 44620 - 44032: 0xB1EE, - 44621 - 44032: 0xB1EF, - 44622 - 44032: 0xB1F0, - 44623 - 44032: 0x838A, - 44624 - 44032: 0xB1F1, - 44625 - 44032: 0x838B, - 44626 - 44032: 0x838C, - 44627 - 44032: 0x838D, - 44628 - 44032: 0xB1F2, - 44629 - 44032: 0x838E, - 44630 - 44032: 0xB1F3, - 44631 - 44032: 0x838F, - 44632 - 44032: 0x8390, - 44633 - 44032: 0x8391, - 44634 - 44032: 0x8392, - 44635 - 44032: 0x8393, - 44636 - 44032: 0xB1F4, - 44637 - 44032: 0xB1F5, - 44638 - 44032: 0x8394, - 44639 - 44032: 0xB1F6, - 44640 - 44032: 0xB1F7, - 44641 - 44032: 0xB1F8, - 44642 - 44032: 0x8395, - 44643 - 44032: 0x8396, - 44644 - 44032: 0x8397, - 44645 - 44032: 0xB1F9, - 44646 - 44032: 0x8398, - 44647 - 44032: 0x8399, - 44648 - 44032: 0xB1FA, - 44649 - 44032: 0xB1FB, - 44650 - 44032: 0x839A, - 44651 - 44032: 0x839B, - 44652 - 44032: 0xB1FC, - 44653 - 44032: 0x839C, - 44654 - 44032: 0x839D, - 44655 - 44032: 0x839E, - 44656 - 44032: 0xB1FD, - 44657 - 44032: 0x839F, - 44658 - 44032: 0x83A0, - 44659 - 44032: 0x83A1, - 44660 - 44032: 0x83A2, - 44661 - 44032: 0x83A3, - 44662 - 44032: 0x83A4, - 44663 - 44032: 0x83A5, - 44664 - 44032: 0xB1FE, - 44665 - 44032: 0xB2A1, - 44666 - 44032: 0x83A6, - 44667 - 44032: 0xB2A2, - 44668 - 44032: 0xB2A3, - 44669 - 44032: 0xB2A4, - 44670 - 44032: 0x83A7, - 44671 - 44032: 0x83A8, - 44672 - 44032: 0x83A9, - 44673 - 44032: 0x83AA, - 44674 - 44032: 0x83AB, - 44675 - 44032: 0x83AC, - 44676 - 44032: 0xB2A5, - 44677 - 44032: 0xB2A6, - 44678 - 44032: 0x83AD, - 44679 - 44032: 0x83AE, - 44680 - 44032: 0x83AF, - 44681 - 44032: 0x83B0, - 44682 - 44032: 0x83B1, - 44683 - 44032: 0x83B2, - 44684 - 44032: 0xB2A7, - 44685 - 44032: 0x83B3, - 44686 - 44032: 0x83B4, - 44687 - 44032: 0x83B5, - 44688 - 44032: 0x83B6, - 44689 - 44032: 0x83B7, - 44690 - 44032: 0x83B8, - 44691 - 44032: 0x83B9, - 44692 - 44032: 0x83BA, - 44693 - 44032: 0x83BB, - 44694 - 44032: 0x83BC, - 44695 - 44032: 0x83BD, - 44696 - 44032: 0x83BE, - 44697 - 44032: 0x83BF, - 44698 - 44032: 0x83C0, - 44699 - 44032: 0x83C1, - 44700 - 44032: 0x83C2, - 44701 - 44032: 0x83C3, - 44702 - 44032: 0x83C4, - 44703 - 44032: 0x83C5, - 44704 - 44032: 0x83C6, - 44705 - 44032: 0x83C7, - 44706 - 44032: 0x83C8, - 44707 - 44032: 0x83C9, - 44708 - 44032: 0x83CA, - 44709 - 44032: 0x83CB, - 44710 - 44032: 0x83CC, - 44711 - 44032: 0x83CD, - 44712 - 44032: 0x83CE, - 44713 - 44032: 0x83CF, - 44714 - 44032: 0x83D0, - 44715 - 44032: 0x83D1, - 44716 - 44032: 0x83D2, - 44717 - 44032: 0x83D3, - 44718 - 44032: 0x83D4, - 44719 - 44032: 0x83D5, - 44720 - 44032: 0x83D6, - 44721 - 44032: 0x83D7, - 44722 - 44032: 0x83D8, - 44723 - 44032: 0x83D9, - 44724 - 44032: 0x83DA, - 44725 - 44032: 0x83DB, - 44726 - 44032: 0x83DC, - 44727 - 44032: 0x83DD, - 44728 - 44032: 0x83DE, - 44729 - 44032: 0x83DF, - 44730 - 44032: 0x83E0, - 44731 - 44032: 0x83E1, - 44732 - 44032: 0xB2A8, - 44733 - 44032: 0xB2A9, - 44734 - 44032: 0xB2AA, - 44735 - 44032: 0x83E2, - 44736 - 44032: 0xB2AB, - 44737 - 44032: 0x83E3, - 44738 - 44032: 0x83E4, - 44739 - 44032: 0x83E5, - 44740 - 44032: 0xB2AC, - 44741 - 44032: 0x83E6, - 44742 - 44032: 0x83E7, - 44743 - 44032: 0x83E8, - 44744 - 44032: 0x83E9, - 44745 - 44032: 0x83EA, - 44746 - 44032: 0x83EB, - 44747 - 44032: 0x83EC, - 44748 - 44032: 0xB2AD, - 44749 - 44032: 0xB2AE, - 44750 - 44032: 0x83ED, - 44751 - 44032: 0xB2AF, - 44752 - 44032: 0xB2B0, - 44753 - 44032: 0xB2B1, - 44754 - 44032: 0x83EE, - 44755 - 44032: 0x83EF, - 44756 - 44032: 0x83F0, - 44757 - 44032: 0x83F1, - 44758 - 44032: 0x83F2, - 44759 - 44032: 0x83F3, - 44760 - 44032: 0xB2B2, - 44761 - 44032: 0xB2B3, - 44762 - 44032: 0x83F4, - 44763 - 44032: 0x83F5, - 44764 - 44032: 0xB2B4, - 44765 - 44032: 0x83F6, - 44766 - 44032: 0x83F7, - 44767 - 44032: 0x83F8, - 44768 - 44032: 0x83F9, - 44769 - 44032: 0x83FA, - 44770 - 44032: 0x83FB, - 44771 - 44032: 0x83FC, - 44772 - 44032: 0x83FD, - 44773 - 44032: 0x83FE, - 44774 - 44032: 0x8441, - 44775 - 44032: 0x8442, - 44776 - 44032: 0xB2B5, - 44777 - 44032: 0x8443, - 44778 - 44032: 0x8444, - 44779 - 44032: 0xB2B6, - 44780 - 44032: 0x8445, - 44781 - 44032: 0xB2B7, - 44782 - 44032: 0x8446, - 44783 - 44032: 0x8447, - 44784 - 44032: 0x8448, - 44785 - 44032: 0x8449, - 44786 - 44032: 0x844A, - 44787 - 44032: 0x844B, - 44788 - 44032: 0xB2B8, - 44789 - 44032: 0x844C, - 44790 - 44032: 0x844D, - 44791 - 44032: 0x844E, - 44792 - 44032: 0xB2B9, - 44793 - 44032: 0x844F, - 44794 - 44032: 0x8450, - 44795 - 44032: 0x8451, - 44796 - 44032: 0xB2BA, - 44797 - 44032: 0x8452, - 44798 - 44032: 0x8453, - 44799 - 44032: 0x8454, - 44800 - 44032: 0x8455, - 44801 - 44032: 0x8456, - 44802 - 44032: 0x8457, - 44803 - 44032: 0x8458, - 44804 - 44032: 0x8459, - 44805 - 44032: 0x845A, - 44806 - 44032: 0x8461, - 44807 - 44032: 0xB2BB, - 44808 - 44032: 0xB2BC, - 44809 - 44032: 0x8462, - 44810 - 44032: 0x8463, - 44811 - 44032: 0x8464, - 44812 - 44032: 0x8465, - 44813 - 44032: 0xB2BD, - 44814 - 44032: 0x8466, - 44815 - 44032: 0x8467, - 44816 - 44032: 0xB2BE, - 44817 - 44032: 0x8468, - 44818 - 44032: 0x8469, - 44819 - 44032: 0x846A, - 44820 - 44032: 0x846B, - 44821 - 44032: 0x846C, - 44822 - 44032: 0x846D, - 44823 - 44032: 0x846E, - 44824 - 44032: 0x846F, - 44825 - 44032: 0x8470, - 44826 - 44032: 0x8471, - 44827 - 44032: 0x8472, - 44828 - 44032: 0x8473, - 44829 - 44032: 0x8474, - 44830 - 44032: 0x8475, - 44831 - 44032: 0x8476, - 44832 - 44032: 0x8477, - 44833 - 44032: 0x8478, - 44834 - 44032: 0x8479, - 44835 - 44032: 0x847A, - 44836 - 44032: 0x8481, - 44837 - 44032: 0x8482, - 44838 - 44032: 0x8483, - 44839 - 44032: 0x8484, - 44840 - 44032: 0x8485, - 44841 - 44032: 0x8486, - 44842 - 44032: 0x8487, - 44843 - 44032: 0x8488, - 44844 - 44032: 0xB2BF, - 44845 - 44032: 0xB2C0, - 44846 - 44032: 0x8489, - 44847 - 44032: 0x848A, - 44848 - 44032: 0xB2C1, - 44849 - 44032: 0x848B, - 44850 - 44032: 0xB2C2, - 44851 - 44032: 0x848C, - 44852 - 44032: 0xB2C3, - 44853 - 44032: 0x848D, - 44854 - 44032: 0x848E, - 44855 - 44032: 0x848F, - 44856 - 44032: 0x8490, - 44857 - 44032: 0x8491, - 44858 - 44032: 0x8492, - 44859 - 44032: 0x8493, - 44860 - 44032: 0xB2C4, - 44861 - 44032: 0xB2C5, - 44862 - 44032: 0x8494, - 44863 - 44032: 0xB2C6, - 44864 - 44032: 0x8495, - 44865 - 44032: 0xB2C7, - 44866 - 44032: 0xB2C8, - 44867 - 44032: 0xB2C9, - 44868 - 44032: 0x8496, - 44869 - 44032: 0x8497, - 44870 - 44032: 0x8498, - 44871 - 44032: 0x8499, - 44872 - 44032: 0xB2CA, - 44873 - 44032: 0xB2CB, - 44874 - 44032: 0x849A, - 44875 - 44032: 0x849B, - 44876 - 44032: 0x849C, - 44877 - 44032: 0x849D, - 44878 - 44032: 0x849E, - 44879 - 44032: 0x849F, - 44880 - 44032: 0xB2CC, - 44881 - 44032: 0x84A0, - 44882 - 44032: 0x84A1, - 44883 - 44032: 0x84A2, - 44884 - 44032: 0x84A3, - 44885 - 44032: 0x84A4, - 44886 - 44032: 0x84A5, - 44887 - 44032: 0x84A6, - 44888 - 44032: 0x84A7, - 44889 - 44032: 0x84A8, - 44890 - 44032: 0x84A9, - 44891 - 44032: 0x84AA, - 44892 - 44032: 0xB2CD, - 44893 - 44032: 0xB2CE, - 44894 - 44032: 0x84AB, - 44895 - 44032: 0x84AC, - 44896 - 44032: 0x84AD, - 44897 - 44032: 0x84AE, - 44898 - 44032: 0x84AF, - 44899 - 44032: 0x84B0, - 44900 - 44032: 0xB2CF, - 44901 - 44032: 0xB2D0, - 44902 - 44032: 0x84B1, - 44903 - 44032: 0x84B2, - 44904 - 44032: 0x84B3, - 44905 - 44032: 0x84B4, - 44906 - 44032: 0x84B5, - 44907 - 44032: 0x84B6, - 44908 - 44032: 0x84B7, - 44909 - 44032: 0x84B8, - 44910 - 44032: 0x84B9, - 44911 - 44032: 0x84BA, - 44912 - 44032: 0x84BB, - 44913 - 44032: 0x84BC, - 44914 - 44032: 0x84BD, - 44915 - 44032: 0x84BE, - 44916 - 44032: 0x84BF, - 44917 - 44032: 0x84C0, - 44918 - 44032: 0x84C1, - 44919 - 44032: 0x84C2, - 44920 - 44032: 0x84C3, - 44921 - 44032: 0xB2D1, - 44922 - 44032: 0x84C4, - 44923 - 44032: 0x84C5, - 44924 - 44032: 0x84C6, - 44925 - 44032: 0x84C7, - 44926 - 44032: 0x84C8, - 44927 - 44032: 0x84C9, - 44928 - 44032: 0xB2D2, - 44929 - 44032: 0x84CA, - 44930 - 44032: 0x84CB, - 44931 - 44032: 0x84CC, - 44932 - 44032: 0xB2D3, - 44933 - 44032: 0x84CD, - 44934 - 44032: 0x84CE, - 44935 - 44032: 0x84CF, - 44936 - 44032: 0xB2D4, - 44937 - 44032: 0x84D0, - 44938 - 44032: 0x84D1, - 44939 - 44032: 0x84D2, - 44940 - 44032: 0x84D3, - 44941 - 44032: 0x84D4, - 44942 - 44032: 0x84D5, - 44943 - 44032: 0x84D6, - 44944 - 44032: 0xB2D5, - 44945 - 44032: 0xB2D6, - 44946 - 44032: 0x84D7, - 44947 - 44032: 0x84D8, - 44948 - 44032: 0x84D9, - 44949 - 44032: 0xB2D7, - 44950 - 44032: 0x84DA, - 44951 - 44032: 0x84DB, - 44952 - 44032: 0x84DC, - 44953 - 44032: 0x84DD, - 44954 - 44032: 0x84DE, - 44955 - 44032: 0x84DF, - 44956 - 44032: 0xB2D8, - 44957 - 44032: 0x84E0, - 44958 - 44032: 0x84E1, - 44959 - 44032: 0x84E2, - 44960 - 44032: 0x84E3, - 44961 - 44032: 0x84E4, - 44962 - 44032: 0x84E5, - 44963 - 44032: 0x84E6, - 44964 - 44032: 0x84E7, - 44965 - 44032: 0x84E8, - 44966 - 44032: 0x84E9, - 44967 - 44032: 0x84EA, - 44968 - 44032: 0x84EB, - 44969 - 44032: 0x84EC, - 44970 - 44032: 0x84ED, - 44971 - 44032: 0x84EE, - 44972 - 44032: 0x84EF, - 44973 - 44032: 0x84F0, - 44974 - 44032: 0x84F1, - 44975 - 44032: 0x84F2, - 44976 - 44032: 0x84F3, - 44977 - 44032: 0x84F4, - 44978 - 44032: 0x84F5, - 44979 - 44032: 0x84F6, - 44980 - 44032: 0x84F7, - 44981 - 44032: 0x84F8, - 44982 - 44032: 0x84F9, - 44983 - 44032: 0x84FA, - 44984 - 44032: 0xB2D9, - 44985 - 44032: 0xB2DA, - 44986 - 44032: 0x84FB, - 44987 - 44032: 0x84FC, - 44988 - 44032: 0xB2DB, - 44989 - 44032: 0x84FD, - 44990 - 44032: 0x84FE, - 44991 - 44032: 0x8541, - 44992 - 44032: 0xB2DC, - 44993 - 44032: 0x8542, - 44994 - 44032: 0x8543, - 44995 - 44032: 0x8544, - 44996 - 44032: 0x8545, - 44997 - 44032: 0x8546, - 44998 - 44032: 0x8547, - 44999 - 44032: 0xB2DD, - 45000 - 44032: 0xB2DE, - 45001 - 44032: 0xB2DF, - 45002 - 44032: 0x8548, - 45003 - 44032: 0xB2E0, - 45004 - 44032: 0x8549, - 45005 - 44032: 0xB2E1, - 45006 - 44032: 0xB2E2, - 45007 - 44032: 0x854A, - 45008 - 44032: 0x854B, - 45009 - 44032: 0x854C, - 45010 - 44032: 0x854D, - 45011 - 44032: 0x854E, - 45012 - 44032: 0xB2E3, - 45013 - 44032: 0x854F, - 45014 - 44032: 0x8550, - 45015 - 44032: 0x8551, - 45016 - 44032: 0x8552, - 45017 - 44032: 0x8553, - 45018 - 44032: 0x8554, - 45019 - 44032: 0x8555, - 45020 - 44032: 0xB2E4, - 45021 - 44032: 0x8556, - 45022 - 44032: 0x8557, - 45023 - 44032: 0x8558, - 45024 - 44032: 0x8559, - 45025 - 44032: 0x855A, - 45026 - 44032: 0x8561, - 45027 - 44032: 0x8562, - 45028 - 44032: 0x8563, - 45029 - 44032: 0x8564, - 45030 - 44032: 0x8565, - 45031 - 44032: 0x8566, - 45032 - 44032: 0xB2E5, - 45033 - 44032: 0xB2E6, - 45034 - 44032: 0x8567, - 45035 - 44032: 0x8568, - 45036 - 44032: 0x8569, - 45037 - 44032: 0x856A, - 45038 - 44032: 0x856B, - 45039 - 44032: 0x856C, - 45040 - 44032: 0xB2E7, - 45041 - 44032: 0xB2E8, - 45042 - 44032: 0x856D, - 45043 - 44032: 0x856E, - 45044 - 44032: 0xB2E9, - 45045 - 44032: 0x856F, - 45046 - 44032: 0x8570, - 45047 - 44032: 0x8571, - 45048 - 44032: 0xB2EA, - 45049 - 44032: 0x8572, - 45050 - 44032: 0x8573, - 45051 - 44032: 0x8574, - 45052 - 44032: 0x8575, - 45053 - 44032: 0x8576, - 45054 - 44032: 0x8577, - 45055 - 44032: 0x8578, - 45056 - 44032: 0xB2EB, - 45057 - 44032: 0xB2EC, - 45058 - 44032: 0x8579, - 45059 - 44032: 0x857A, - 45060 - 44032: 0xB2ED, - 45061 - 44032: 0x8581, - 45062 - 44032: 0x8582, - 45063 - 44032: 0x8583, - 45064 - 44032: 0x8584, - 45065 - 44032: 0x8585, - 45066 - 44032: 0x8586, - 45067 - 44032: 0x8587, - 45068 - 44032: 0xB2EE, - 45069 - 44032: 0x8588, - 45070 - 44032: 0x8589, - 45071 - 44032: 0x858A, - 45072 - 44032: 0xB2EF, - 45073 - 44032: 0x858B, - 45074 - 44032: 0x858C, - 45075 - 44032: 0x858D, - 45076 - 44032: 0xB2F0, - 45077 - 44032: 0x858E, - 45078 - 44032: 0x858F, - 45079 - 44032: 0x8590, - 45080 - 44032: 0x8591, - 45081 - 44032: 0x8592, - 45082 - 44032: 0x8593, - 45083 - 44032: 0x8594, - 45084 - 44032: 0xB2F1, - 45085 - 44032: 0xB2F2, - 45086 - 44032: 0x8595, - 45087 - 44032: 0x8596, - 45088 - 44032: 0x8597, - 45089 - 44032: 0x8598, - 45090 - 44032: 0x8599, - 45091 - 44032: 0x859A, - 45092 - 44032: 0x859B, - 45093 - 44032: 0x859C, - 45094 - 44032: 0x859D, - 45095 - 44032: 0x859E, - 45096 - 44032: 0xB2F3, - 45097 - 44032: 0x859F, - 45098 - 44032: 0x85A0, - 45099 - 44032: 0x85A1, - 45100 - 44032: 0x85A2, - 45101 - 44032: 0x85A3, - 45102 - 44032: 0x85A4, - 45103 - 44032: 0x85A5, - 45104 - 44032: 0x85A6, - 45105 - 44032: 0x85A7, - 45106 - 44032: 0x85A8, - 45107 - 44032: 0x85A9, - 45108 - 44032: 0x85AA, - 45109 - 44032: 0x85AB, - 45110 - 44032: 0x85AC, - 45111 - 44032: 0x85AD, - 45112 - 44032: 0x85AE, - 45113 - 44032: 0x85AF, - 45114 - 44032: 0x85B0, - 45115 - 44032: 0x85B1, - 45116 - 44032: 0x85B2, - 45117 - 44032: 0x85B3, - 45118 - 44032: 0x85B4, - 45119 - 44032: 0x85B5, - 45120 - 44032: 0x85B6, - 45121 - 44032: 0x85B7, - 45122 - 44032: 0x85B8, - 45123 - 44032: 0x85B9, - 45124 - 44032: 0xB2F4, - 45125 - 44032: 0xB2F5, - 45126 - 44032: 0x85BA, - 45127 - 44032: 0x85BB, - 45128 - 44032: 0xB2F6, - 45129 - 44032: 0x85BC, - 45130 - 44032: 0xB2F7, - 45131 - 44032: 0x85BD, - 45132 - 44032: 0xB2F8, - 45133 - 44032: 0x85BE, - 45134 - 44032: 0xB2F9, - 45135 - 44032: 0x85BF, - 45136 - 44032: 0x85C0, - 45137 - 44032: 0x85C1, - 45138 - 44032: 0x85C2, - 45139 - 44032: 0xB2FA, - 45140 - 44032: 0xB2FB, - 45141 - 44032: 0xB2FC, - 45142 - 44032: 0x85C3, - 45143 - 44032: 0xB2FD, - 45144 - 44032: 0x85C4, - 45145 - 44032: 0xB2FE, - 45146 - 44032: 0x85C5, - 45147 - 44032: 0x85C6, - 45148 - 44032: 0x85C7, - 45149 - 44032: 0xB3A1, - 45150 - 44032: 0x85C8, - 45151 - 44032: 0x85C9, - 45152 - 44032: 0x85CA, - 45153 - 44032: 0x85CB, - 45154 - 44032: 0x85CC, - 45155 - 44032: 0x85CD, - 45156 - 44032: 0x85CE, - 45157 - 44032: 0x85CF, - 45158 - 44032: 0x85D0, - 45159 - 44032: 0x85D1, - 45160 - 44032: 0x85D2, - 45161 - 44032: 0x85D3, - 45162 - 44032: 0x85D4, - 45163 - 44032: 0x85D5, - 45164 - 44032: 0x85D6, - 45165 - 44032: 0x85D7, - 45166 - 44032: 0x85D8, - 45167 - 44032: 0x85D9, - 45168 - 44032: 0x85DA, - 45169 - 44032: 0x85DB, - 45170 - 44032: 0x85DC, - 45171 - 44032: 0x85DD, - 45172 - 44032: 0x85DE, - 45173 - 44032: 0x85DF, - 45174 - 44032: 0x85E0, - 45175 - 44032: 0x85E1, - 45176 - 44032: 0x85E2, - 45177 - 44032: 0x85E3, - 45178 - 44032: 0x85E4, - 45179 - 44032: 0x85E5, - 45180 - 44032: 0xB3A2, - 45181 - 44032: 0xB3A3, - 45182 - 44032: 0x85E6, - 45183 - 44032: 0x85E7, - 45184 - 44032: 0xB3A4, - 45185 - 44032: 0x85E8, - 45186 - 44032: 0x85E9, - 45187 - 44032: 0x85EA, - 45188 - 44032: 0xB3A5, - 45189 - 44032: 0x85EB, - 45190 - 44032: 0x85EC, - 45191 - 44032: 0x85ED, - 45192 - 44032: 0x85EE, - 45193 - 44032: 0x85EF, - 45194 - 44032: 0x85F0, - 45195 - 44032: 0x85F1, - 45196 - 44032: 0xB3A6, - 45197 - 44032: 0xB3A7, - 45198 - 44032: 0x85F2, - 45199 - 44032: 0xB3A8, - 45200 - 44032: 0x85F3, - 45201 - 44032: 0xB3A9, - 45202 - 44032: 0x85F4, - 45203 - 44032: 0x85F5, - 45204 - 44032: 0x85F6, - 45205 - 44032: 0x85F7, - 45206 - 44032: 0x85F8, - 45207 - 44032: 0x85F9, - 45208 - 44032: 0xB3AA, - 45209 - 44032: 0xB3AB, - 45210 - 44032: 0xB3AC, - 45211 - 44032: 0x85FA, - 45212 - 44032: 0xB3AD, - 45213 - 44032: 0x85FB, - 45214 - 44032: 0x85FC, - 45215 - 44032: 0xB3AE, - 45216 - 44032: 0xB3AF, - 45217 - 44032: 0xB3B0, - 45218 - 44032: 0xB3B1, - 45219 - 44032: 0x85FD, - 45220 - 44032: 0x85FE, - 45221 - 44032: 0x8641, - 45222 - 44032: 0x8642, - 45223 - 44032: 0x8643, - 45224 - 44032: 0xB3B2, - 45225 - 44032: 0xB3B3, - 45226 - 44032: 0x8644, - 45227 - 44032: 0xB3B4, - 45228 - 44032: 0xB3B5, - 45229 - 44032: 0xB3B6, - 45230 - 44032: 0xB3B7, - 45231 - 44032: 0xB3B8, - 45232 - 44032: 0x8645, - 45233 - 44032: 0xB3B9, - 45234 - 44032: 0x8646, - 45235 - 44032: 0xB3BA, - 45236 - 44032: 0xB3BB, - 45237 - 44032: 0xB3BC, - 45238 - 44032: 0x8647, - 45239 - 44032: 0x8648, - 45240 - 44032: 0xB3BD, - 45241 - 44032: 0x8649, - 45242 - 44032: 0x864A, - 45243 - 44032: 0x864B, - 45244 - 44032: 0xB3BE, - 45245 - 44032: 0x864C, - 45246 - 44032: 0x864D, - 45247 - 44032: 0x864E, - 45248 - 44032: 0x864F, - 45249 - 44032: 0x8650, - 45250 - 44032: 0x8651, - 45251 - 44032: 0x8652, - 45252 - 44032: 0xB3BF, - 45253 - 44032: 0xB3C0, - 45254 - 44032: 0x8653, - 45255 - 44032: 0xB3C1, - 45256 - 44032: 0xB3C2, - 45257 - 44032: 0xB3C3, - 45258 - 44032: 0x8654, - 45259 - 44032: 0x8655, - 45260 - 44032: 0x8656, - 45261 - 44032: 0x8657, - 45262 - 44032: 0x8658, - 45263 - 44032: 0x8659, - 45264 - 44032: 0xB3C4, - 45265 - 44032: 0xB3C5, - 45266 - 44032: 0x865A, - 45267 - 44032: 0x8661, - 45268 - 44032: 0xB3C6, - 45269 - 44032: 0x8662, - 45270 - 44032: 0x8663, - 45271 - 44032: 0x8664, - 45272 - 44032: 0xB3C7, - 45273 - 44032: 0x8665, - 45274 - 44032: 0x8666, - 45275 - 44032: 0x8667, - 45276 - 44032: 0x8668, - 45277 - 44032: 0x8669, - 45278 - 44032: 0x866A, - 45279 - 44032: 0x866B, - 45280 - 44032: 0xB3C8, - 45281 - 44032: 0x866C, - 45282 - 44032: 0x866D, - 45283 - 44032: 0x866E, - 45284 - 44032: 0x866F, - 45285 - 44032: 0xB3C9, - 45286 - 44032: 0x8670, - 45287 - 44032: 0x8671, - 45288 - 44032: 0x8672, - 45289 - 44032: 0x8673, - 45290 - 44032: 0x8674, - 45291 - 44032: 0x8675, - 45292 - 44032: 0x8676, - 45293 - 44032: 0x8677, - 45294 - 44032: 0x8678, - 45295 - 44032: 0x8679, - 45296 - 44032: 0x867A, - 45297 - 44032: 0x8681, - 45298 - 44032: 0x8682, - 45299 - 44032: 0x8683, - 45300 - 44032: 0x8684, - 45301 - 44032: 0x8685, - 45302 - 44032: 0x8686, - 45303 - 44032: 0x8687, - 45304 - 44032: 0x8688, - 45305 - 44032: 0x8689, - 45306 - 44032: 0x868A, - 45307 - 44032: 0x868B, - 45308 - 44032: 0x868C, - 45309 - 44032: 0x868D, - 45310 - 44032: 0x868E, - 45311 - 44032: 0x868F, - 45312 - 44032: 0x8690, - 45313 - 44032: 0x8691, - 45314 - 44032: 0x8692, - 45315 - 44032: 0x8693, - 45316 - 44032: 0x8694, - 45317 - 44032: 0x8695, - 45318 - 44032: 0x8696, - 45319 - 44032: 0x8697, - 45320 - 44032: 0xB3CA, - 45321 - 44032: 0xB3CB, - 45322 - 44032: 0x8698, - 45323 - 44032: 0xB3CC, - 45324 - 44032: 0xB3CD, - 45325 - 44032: 0x8699, - 45326 - 44032: 0x869A, - 45327 - 44032: 0x869B, - 45328 - 44032: 0xB3CE, - 45329 - 44032: 0x869C, - 45330 - 44032: 0xB3CF, - 45331 - 44032: 0xB3D0, - 45332 - 44032: 0x869D, - 45333 - 44032: 0x869E, - 45334 - 44032: 0x869F, - 45335 - 44032: 0x86A0, - 45336 - 44032: 0xB3D1, - 45337 - 44032: 0xB3D2, - 45338 - 44032: 0x86A1, - 45339 - 44032: 0xB3D3, - 45340 - 44032: 0xB3D4, - 45341 - 44032: 0xB3D5, - 45342 - 44032: 0x86A2, - 45343 - 44032: 0x86A3, - 45344 - 44032: 0x86A4, - 45345 - 44032: 0x86A5, - 45346 - 44032: 0x86A6, - 45347 - 44032: 0xB3D6, - 45348 - 44032: 0xB3D7, - 45349 - 44032: 0xB3D8, - 45350 - 44032: 0x86A7, - 45351 - 44032: 0x86A8, - 45352 - 44032: 0xB3D9, - 45353 - 44032: 0x86A9, - 45354 - 44032: 0x86AA, - 45355 - 44032: 0x86AB, - 45356 - 44032: 0xB3DA, - 45357 - 44032: 0x86AC, - 45358 - 44032: 0x86AD, - 45359 - 44032: 0x86AE, - 45360 - 44032: 0x86AF, - 45361 - 44032: 0x86B0, - 45362 - 44032: 0x86B1, - 45363 - 44032: 0x86B2, - 45364 - 44032: 0xB3DB, - 45365 - 44032: 0xB3DC, - 45366 - 44032: 0x86B3, - 45367 - 44032: 0xB3DD, - 45368 - 44032: 0xB3DE, - 45369 - 44032: 0xB3DF, - 45370 - 44032: 0x86B4, - 45371 - 44032: 0x86B5, - 45372 - 44032: 0x86B6, - 45373 - 44032: 0x86B7, - 45374 - 44032: 0x86B8, - 45375 - 44032: 0x86B9, - 45376 - 44032: 0xB3E0, - 45377 - 44032: 0xB3E1, - 45378 - 44032: 0x86BA, - 45379 - 44032: 0x86BB, - 45380 - 44032: 0xB3E2, - 45381 - 44032: 0x86BC, - 45382 - 44032: 0x86BD, - 45383 - 44032: 0x86BE, - 45384 - 44032: 0xB3E3, - 45385 - 44032: 0x86BF, - 45386 - 44032: 0x86C0, - 45387 - 44032: 0x86C1, - 45388 - 44032: 0x86C2, - 45389 - 44032: 0x86C3, - 45390 - 44032: 0x86C4, - 45391 - 44032: 0x86C5, - 45392 - 44032: 0xB3E4, - 45393 - 44032: 0xB3E5, - 45394 - 44032: 0x86C6, - 45395 - 44032: 0x86C7, - 45396 - 44032: 0xB3E6, - 45397 - 44032: 0xB3E7, - 45398 - 44032: 0x86C8, - 45399 - 44032: 0x86C9, - 45400 - 44032: 0xB3E8, - 45401 - 44032: 0x86CA, - 45402 - 44032: 0x86CB, - 45403 - 44032: 0x86CC, - 45404 - 44032: 0xB3E9, - 45405 - 44032: 0x86CD, - 45406 - 44032: 0x86CE, - 45407 - 44032: 0x86CF, - 45408 - 44032: 0xB3EA, - 45409 - 44032: 0x86D0, - 45410 - 44032: 0x86D1, - 45411 - 44032: 0x86D2, - 45412 - 44032: 0x86D3, - 45413 - 44032: 0x86D4, - 45414 - 44032: 0x86D5, - 45415 - 44032: 0x86D6, - 45416 - 44032: 0x86D7, - 45417 - 44032: 0x86D8, - 45418 - 44032: 0x86D9, - 45419 - 44032: 0x86DA, - 45420 - 44032: 0x86DB, - 45421 - 44032: 0x86DC, - 45422 - 44032: 0x86DD, - 45423 - 44032: 0x86DE, - 45424 - 44032: 0x86DF, - 45425 - 44032: 0x86E0, - 45426 - 44032: 0x86E1, - 45427 - 44032: 0x86E2, - 45428 - 44032: 0x86E3, - 45429 - 44032: 0x86E4, - 45430 - 44032: 0x86E5, - 45431 - 44032: 0x86E6, - 45432 - 44032: 0xB3EB, - 45433 - 44032: 0xB3EC, - 45434 - 44032: 0x86E7, - 45435 - 44032: 0x86E8, - 45436 - 44032: 0xB3ED, - 45437 - 44032: 0x86E9, - 45438 - 44032: 0x86EA, - 45439 - 44032: 0x86EB, - 45440 - 44032: 0xB3EE, - 45441 - 44032: 0x86EC, - 45442 - 44032: 0xB3EF, - 45443 - 44032: 0x86ED, - 45444 - 44032: 0x86EE, - 45445 - 44032: 0x86EF, - 45446 - 44032: 0x86F0, - 45447 - 44032: 0x86F1, - 45448 - 44032: 0xB3F0, - 45449 - 44032: 0xB3F1, - 45450 - 44032: 0x86F2, - 45451 - 44032: 0xB3F2, - 45452 - 44032: 0x86F3, - 45453 - 44032: 0xB3F3, - 45454 - 44032: 0x86F4, - 45455 - 44032: 0x86F5, - 45456 - 44032: 0x86F6, - 45457 - 44032: 0x86F7, - 45458 - 44032: 0xB3F4, - 45459 - 44032: 0xB3F5, - 45460 - 44032: 0xB3F6, - 45461 - 44032: 0x86F8, - 45462 - 44032: 0x86F9, - 45463 - 44032: 0x86FA, - 45464 - 44032: 0xB3F7, - 45465 - 44032: 0x86FB, - 45466 - 44032: 0x86FC, - 45467 - 44032: 0x86FD, - 45468 - 44032: 0xB3F8, - 45469 - 44032: 0x86FE, - 45470 - 44032: 0x8741, - 45471 - 44032: 0x8742, - 45472 - 44032: 0x8743, - 45473 - 44032: 0x8744, - 45474 - 44032: 0x8745, - 45475 - 44032: 0x8746, - 45476 - 44032: 0x8747, - 45477 - 44032: 0x8748, - 45478 - 44032: 0x8749, - 45479 - 44032: 0x874A, - 45480 - 44032: 0xB3F9, - 45481 - 44032: 0x874B, - 45482 - 44032: 0x874C, - 45483 - 44032: 0x874D, - 45484 - 44032: 0x874E, - 45485 - 44032: 0x874F, - 45486 - 44032: 0x8750, - 45487 - 44032: 0x8751, - 45488 - 44032: 0x8752, - 45489 - 44032: 0x8753, - 45490 - 44032: 0x8754, - 45491 - 44032: 0x8755, - 45492 - 44032: 0x8756, - 45493 - 44032: 0x8757, - 45494 - 44032: 0x8758, - 45495 - 44032: 0x8759, - 45496 - 44032: 0x875A, - 45497 - 44032: 0x8761, - 45498 - 44032: 0x8762, - 45499 - 44032: 0x8763, - 45500 - 44032: 0x8764, - 45501 - 44032: 0x8765, - 45502 - 44032: 0x8766, - 45503 - 44032: 0x8767, - 45504 - 44032: 0x8768, - 45505 - 44032: 0x8769, - 45506 - 44032: 0x876A, - 45507 - 44032: 0x876B, - 45508 - 44032: 0x876C, - 45509 - 44032: 0x876D, - 45510 - 44032: 0x876E, - 45511 - 44032: 0x876F, - 45512 - 44032: 0x8770, - 45513 - 44032: 0x8771, - 45514 - 44032: 0x8772, - 45515 - 44032: 0x8773, - 45516 - 44032: 0xB3FA, - 45517 - 44032: 0x8774, - 45518 - 44032: 0x8775, - 45519 - 44032: 0x8776, - 45520 - 44032: 0xB3FB, - 45521 - 44032: 0x8777, - 45522 - 44032: 0x8778, - 45523 - 44032: 0x8779, - 45524 - 44032: 0xB3FC, - 45525 - 44032: 0x877A, - 45526 - 44032: 0x8781, - 45527 - 44032: 0x8782, - 45528 - 44032: 0x8783, - 45529 - 44032: 0x8784, - 45530 - 44032: 0x8785, - 45531 - 44032: 0x8786, - 45532 - 44032: 0xB3FD, - 45533 - 44032: 0xB3FE, - 45534 - 44032: 0x8787, - 45535 - 44032: 0xB4A1, - 45536 - 44032: 0x8788, - 45537 - 44032: 0x8789, - 45538 - 44032: 0x878A, - 45539 - 44032: 0x878B, - 45540 - 44032: 0x878C, - 45541 - 44032: 0x878D, - 45542 - 44032: 0x878E, - 45543 - 44032: 0x878F, - 45544 - 44032: 0xB4A2, - 45545 - 44032: 0xB4A3, - 45546 - 44032: 0x8790, - 45547 - 44032: 0x8791, - 45548 - 44032: 0xB4A4, - 45549 - 44032: 0x8792, - 45550 - 44032: 0x8793, - 45551 - 44032: 0x8794, - 45552 - 44032: 0xB4A5, - 45553 - 44032: 0x8795, - 45554 - 44032: 0x8796, - 45555 - 44032: 0x8797, - 45556 - 44032: 0x8798, - 45557 - 44032: 0x8799, - 45558 - 44032: 0x879A, - 45559 - 44032: 0x879B, - 45560 - 44032: 0x879C, - 45561 - 44032: 0xB4A6, - 45562 - 44032: 0x879D, - 45563 - 44032: 0xB4A7, - 45564 - 44032: 0x879E, - 45565 - 44032: 0xB4A8, - 45566 - 44032: 0x879F, - 45567 - 44032: 0x87A0, - 45568 - 44032: 0x87A1, - 45569 - 44032: 0x87A2, - 45570 - 44032: 0x87A3, - 45571 - 44032: 0x87A4, - 45572 - 44032: 0xB4A9, - 45573 - 44032: 0xB4AA, - 45574 - 44032: 0x87A5, - 45575 - 44032: 0x87A6, - 45576 - 44032: 0xB4AB, - 45577 - 44032: 0x87A7, - 45578 - 44032: 0x87A8, - 45579 - 44032: 0xB4AC, - 45580 - 44032: 0xB4AD, - 45581 - 44032: 0x87A9, - 45582 - 44032: 0x87AA, - 45583 - 44032: 0x87AB, - 45584 - 44032: 0x87AC, - 45585 - 44032: 0x87AD, - 45586 - 44032: 0x87AE, - 45587 - 44032: 0x87AF, - 45588 - 44032: 0xB4AE, - 45589 - 44032: 0xB4AF, - 45590 - 44032: 0x87B0, - 45591 - 44032: 0xB4B0, - 45592 - 44032: 0x87B1, - 45593 - 44032: 0xB4B1, - 45594 - 44032: 0x87B2, - 45595 - 44032: 0x87B3, - 45596 - 44032: 0x87B4, - 45597 - 44032: 0x87B5, - 45598 - 44032: 0x87B6, - 45599 - 44032: 0x87B7, - 45600 - 44032: 0xB4B2, - 45601 - 44032: 0x87B8, - 45602 - 44032: 0x87B9, - 45603 - 44032: 0x87BA, - 45604 - 44032: 0x87BB, - 45605 - 44032: 0x87BC, - 45606 - 44032: 0x87BD, - 45607 - 44032: 0x87BE, - 45608 - 44032: 0x87BF, - 45609 - 44032: 0x87C0, - 45610 - 44032: 0x87C1, - 45611 - 44032: 0x87C2, - 45612 - 44032: 0x87C3, - 45613 - 44032: 0x87C4, - 45614 - 44032: 0x87C5, - 45615 - 44032: 0x87C6, - 45616 - 44032: 0x87C7, - 45617 - 44032: 0x87C8, - 45618 - 44032: 0x87C9, - 45619 - 44032: 0x87CA, - 45620 - 44032: 0xB4B3, - 45621 - 44032: 0x87CB, - 45622 - 44032: 0x87CC, - 45623 - 44032: 0x87CD, - 45624 - 44032: 0x87CE, - 45625 - 44032: 0x87CF, - 45626 - 44032: 0x87D0, - 45627 - 44032: 0x87D1, - 45628 - 44032: 0xB4B4, - 45629 - 44032: 0x87D2, - 45630 - 44032: 0x87D3, - 45631 - 44032: 0x87D4, - 45632 - 44032: 0x87D5, - 45633 - 44032: 0x87D6, - 45634 - 44032: 0x87D7, - 45635 - 44032: 0x87D8, - 45636 - 44032: 0x87D9, - 45637 - 44032: 0x87DA, - 45638 - 44032: 0x87DB, - 45639 - 44032: 0x87DC, - 45640 - 44032: 0x87DD, - 45641 - 44032: 0x87DE, - 45642 - 44032: 0x87DF, - 45643 - 44032: 0x87E0, - 45644 - 44032: 0x87E1, - 45645 - 44032: 0x87E2, - 45646 - 44032: 0x87E3, - 45647 - 44032: 0x87E4, - 45648 - 44032: 0x87E5, - 45649 - 44032: 0x87E6, - 45650 - 44032: 0x87E7, - 45651 - 44032: 0x87E8, - 45652 - 44032: 0x87E9, - 45653 - 44032: 0x87EA, - 45654 - 44032: 0x87EB, - 45655 - 44032: 0x87EC, - 45656 - 44032: 0xB4B5, - 45657 - 44032: 0x87ED, - 45658 - 44032: 0x87EE, - 45659 - 44032: 0x87EF, - 45660 - 44032: 0xB4B6, - 45661 - 44032: 0x87F0, - 45662 - 44032: 0x87F1, - 45663 - 44032: 0x87F2, - 45664 - 44032: 0xB4B7, - 45665 - 44032: 0x87F3, - 45666 - 44032: 0x87F4, - 45667 - 44032: 0x87F5, - 45668 - 44032: 0x87F6, - 45669 - 44032: 0x87F7, - 45670 - 44032: 0x87F8, - 45671 - 44032: 0x87F9, - 45672 - 44032: 0xB4B8, - 45673 - 44032: 0xB4B9, - 45674 - 44032: 0x87FA, - 45675 - 44032: 0x87FB, - 45676 - 44032: 0x87FC, - 45677 - 44032: 0x87FD, - 45678 - 44032: 0x87FE, - 45679 - 44032: 0x8841, - 45680 - 44032: 0x8842, - 45681 - 44032: 0x8843, - 45682 - 44032: 0x8844, - 45683 - 44032: 0x8845, - 45684 - 44032: 0xB4BA, - 45685 - 44032: 0xB4BB, - 45686 - 44032: 0x8846, - 45687 - 44032: 0x8847, - 45688 - 44032: 0x8848, - 45689 - 44032: 0x8849, - 45690 - 44032: 0x884A, - 45691 - 44032: 0x884B, - 45692 - 44032: 0xB4BC, - 45693 - 44032: 0x884C, - 45694 - 44032: 0x884D, - 45695 - 44032: 0x884E, - 45696 - 44032: 0x884F, - 45697 - 44032: 0x8850, - 45698 - 44032: 0x8851, - 45699 - 44032: 0x8852, - 45700 - 44032: 0xB4BD, - 45701 - 44032: 0xB4BE, - 45702 - 44032: 0x8853, - 45703 - 44032: 0x8854, - 45704 - 44032: 0x8855, - 45705 - 44032: 0xB4BF, - 45706 - 44032: 0x8856, - 45707 - 44032: 0x8857, - 45708 - 44032: 0x8858, - 45709 - 44032: 0x8859, - 45710 - 44032: 0x885A, - 45711 - 44032: 0x8861, - 45712 - 44032: 0xB4C0, - 45713 - 44032: 0xB4C1, - 45714 - 44032: 0x8862, - 45715 - 44032: 0x8863, - 45716 - 44032: 0xB4C2, - 45717 - 44032: 0x8864, - 45718 - 44032: 0x8865, - 45719 - 44032: 0x8866, - 45720 - 44032: 0xB4C3, - 45721 - 44032: 0xB4C4, - 45722 - 44032: 0xB4C5, - 45723 - 44032: 0x8867, - 45724 - 44032: 0x8868, - 45725 - 44032: 0x8869, - 45726 - 44032: 0x886A, - 45727 - 44032: 0x886B, - 45728 - 44032: 0xB4C6, - 45729 - 44032: 0xB4C7, - 45730 - 44032: 0x886C, - 45731 - 44032: 0xB4C8, - 45732 - 44032: 0x886D, - 45733 - 44032: 0xB4C9, - 45734 - 44032: 0xB4CA, - 45735 - 44032: 0x886E, - 45736 - 44032: 0x886F, - 45737 - 44032: 0x8870, - 45738 - 44032: 0xB4CB, - 45739 - 44032: 0x8871, - 45740 - 44032: 0xB4CC, - 45741 - 44032: 0x8872, - 45742 - 44032: 0x8873, - 45743 - 44032: 0x8874, - 45744 - 44032: 0xB4CD, - 45745 - 44032: 0x8875, - 45746 - 44032: 0x8876, - 45747 - 44032: 0x8877, - 45748 - 44032: 0xB4CE, - 45749 - 44032: 0x8878, - 45750 - 44032: 0x8879, - 45751 - 44032: 0x887A, - 45752 - 44032: 0x8881, - 45753 - 44032: 0x8882, - 45754 - 44032: 0x8883, - 45755 - 44032: 0x8884, - 45756 - 44032: 0x8885, - 45757 - 44032: 0x8886, - 45758 - 44032: 0x8887, - 45759 - 44032: 0x8888, - 45760 - 44032: 0x8889, - 45761 - 44032: 0x888A, - 45762 - 44032: 0x888B, - 45763 - 44032: 0x888C, - 45764 - 44032: 0x888D, - 45765 - 44032: 0x888E, - 45766 - 44032: 0x888F, - 45767 - 44032: 0x8890, - 45768 - 44032: 0xB4CF, - 45769 - 44032: 0xB4D0, - 45770 - 44032: 0x8891, - 45771 - 44032: 0x8892, - 45772 - 44032: 0xB4D1, - 45773 - 44032: 0x8893, - 45774 - 44032: 0x8894, - 45775 - 44032: 0x8895, - 45776 - 44032: 0xB4D2, - 45777 - 44032: 0x8896, - 45778 - 44032: 0xB4D3, - 45779 - 44032: 0x8897, - 45780 - 44032: 0x8898, - 45781 - 44032: 0x8899, - 45782 - 44032: 0x889A, - 45783 - 44032: 0x889B, - 45784 - 44032: 0xB4D4, - 45785 - 44032: 0xB4D5, - 45786 - 44032: 0x889C, - 45787 - 44032: 0xB4D6, - 45788 - 44032: 0x889D, - 45789 - 44032: 0xB4D7, - 45790 - 44032: 0x889E, - 45791 - 44032: 0x889F, - 45792 - 44032: 0x88A0, - 45793 - 44032: 0x88A1, - 45794 - 44032: 0xB4D8, - 45795 - 44032: 0x88A2, - 45796 - 44032: 0xB4D9, - 45797 - 44032: 0xB4DA, - 45798 - 44032: 0xB4DB, - 45799 - 44032: 0x88A3, - 45800 - 44032: 0xB4DC, - 45801 - 44032: 0x88A4, - 45802 - 44032: 0x88A5, - 45803 - 44032: 0xB4DD, - 45804 - 44032: 0xB4DE, - 45805 - 44032: 0xB4DF, - 45806 - 44032: 0xB4E0, - 45807 - 44032: 0xB4E1, - 45808 - 44032: 0x88A6, - 45809 - 44032: 0x88A7, - 45810 - 44032: 0x88A8, - 45811 - 44032: 0xB4E2, - 45812 - 44032: 0xB4E3, - 45813 - 44032: 0xB4E4, - 45814 - 44032: 0x88A9, - 45815 - 44032: 0xB4E5, - 45816 - 44032: 0xB4E6, - 45817 - 44032: 0xB4E7, - 45818 - 44032: 0xB4E8, - 45819 - 44032: 0xB4E9, - 45820 - 44032: 0x88AA, - 45821 - 44032: 0x88AB, - 45822 - 44032: 0x88AC, - 45823 - 44032: 0xB4EA, - 45824 - 44032: 0xB4EB, - 45825 - 44032: 0xB4EC, - 45826 - 44032: 0x88AD, - 45827 - 44032: 0x88AE, - 45828 - 44032: 0xB4ED, - 45829 - 44032: 0x88AF, - 45830 - 44032: 0x88B0, - 45831 - 44032: 0x88B1, - 45832 - 44032: 0xB4EE, - 45833 - 44032: 0x88B2, - 45834 - 44032: 0x88B3, - 45835 - 44032: 0x88B4, - 45836 - 44032: 0x88B5, - 45837 - 44032: 0x88B6, - 45838 - 44032: 0x88B7, - 45839 - 44032: 0x88B8, - 45840 - 44032: 0xB4EF, - 45841 - 44032: 0xB4F0, - 45842 - 44032: 0x88B9, - 45843 - 44032: 0xB4F1, - 45844 - 44032: 0xB4F2, - 45845 - 44032: 0xB4F3, - 45846 - 44032: 0x88BA, - 45847 - 44032: 0x88BB, - 45848 - 44032: 0x88BC, - 45849 - 44032: 0x88BD, - 45850 - 44032: 0x88BE, - 45851 - 44032: 0x88BF, - 45852 - 44032: 0xB4F4, - 45853 - 44032: 0x88C0, - 45854 - 44032: 0x88C1, - 45855 - 44032: 0x88C2, - 45856 - 44032: 0x88C3, - 45857 - 44032: 0x88C4, - 45858 - 44032: 0x88C5, - 45859 - 44032: 0x88C6, - 45860 - 44032: 0x88C7, - 45861 - 44032: 0x88C8, - 45862 - 44032: 0x88C9, - 45863 - 44032: 0x88CA, - 45864 - 44032: 0x88CB, - 45865 - 44032: 0x88CC, - 45866 - 44032: 0x88CD, - 45867 - 44032: 0x88CE, - 45868 - 44032: 0x88CF, - 45869 - 44032: 0x88D0, - 45870 - 44032: 0x88D1, - 45871 - 44032: 0x88D2, - 45872 - 44032: 0x88D3, - 45873 - 44032: 0x88D4, - 45874 - 44032: 0x88D5, - 45875 - 44032: 0x88D6, - 45876 - 44032: 0x88D7, - 45877 - 44032: 0x88D8, - 45878 - 44032: 0x88D9, - 45879 - 44032: 0x88DA, - 45880 - 44032: 0x88DB, - 45881 - 44032: 0x88DC, - 45882 - 44032: 0x88DD, - 45883 - 44032: 0x88DE, - 45884 - 44032: 0x88DF, - 45885 - 44032: 0x88E0, - 45886 - 44032: 0x88E1, - 45887 - 44032: 0x88E2, - 45888 - 44032: 0x88E3, - 45889 - 44032: 0x88E4, - 45890 - 44032: 0x88E5, - 45891 - 44032: 0x88E6, - 45892 - 44032: 0x88E7, - 45893 - 44032: 0x88E8, - 45894 - 44032: 0x88E9, - 45895 - 44032: 0x88EA, - 45896 - 44032: 0x88EB, - 45897 - 44032: 0x88EC, - 45898 - 44032: 0x88ED, - 45899 - 44032: 0x88EE, - 45900 - 44032: 0x88EF, - 45901 - 44032: 0x88F0, - 45902 - 44032: 0x88F1, - 45903 - 44032: 0x88F2, - 45904 - 44032: 0x88F3, - 45905 - 44032: 0x88F4, - 45906 - 44032: 0x88F5, - 45907 - 44032: 0x88F6, - 45908 - 44032: 0xB4F5, - 45909 - 44032: 0xB4F6, - 45910 - 44032: 0xB4F7, - 45911 - 44032: 0x88F7, - 45912 - 44032: 0xB4F8, - 45913 - 44032: 0x88F8, - 45914 - 44032: 0x88F9, - 45915 - 44032: 0xB4F9, - 45916 - 44032: 0xB4FA, - 45917 - 44032: 0x88FA, - 45918 - 44032: 0xB4FB, - 45919 - 44032: 0xB4FC, - 45920 - 44032: 0x88FB, - 45921 - 44032: 0x88FC, - 45922 - 44032: 0x88FD, - 45923 - 44032: 0x88FE, - 45924 - 44032: 0xB4FD, - 45925 - 44032: 0xB4FE, - 45926 - 44032: 0x8941, - 45927 - 44032: 0xB5A1, - 45928 - 44032: 0x8942, - 45929 - 44032: 0xB5A2, - 45930 - 44032: 0x8943, - 45931 - 44032: 0xB5A3, - 45932 - 44032: 0x8944, - 45933 - 44032: 0x8945, - 45934 - 44032: 0xB5A4, - 45935 - 44032: 0x8946, - 45936 - 44032: 0xB5A5, - 45937 - 44032: 0xB5A6, - 45938 - 44032: 0x8947, - 45939 - 44032: 0x8948, - 45940 - 44032: 0xB5A7, - 45941 - 44032: 0x8949, - 45942 - 44032: 0x894A, - 45943 - 44032: 0x894B, - 45944 - 44032: 0xB5A8, - 45945 - 44032: 0x894C, - 45946 - 44032: 0x894D, - 45947 - 44032: 0x894E, - 45948 - 44032: 0x894F, - 45949 - 44032: 0x8950, - 45950 - 44032: 0x8951, - 45951 - 44032: 0x8952, - 45952 - 44032: 0xB5A9, - 45953 - 44032: 0xB5AA, - 45954 - 44032: 0x8953, - 45955 - 44032: 0xB5AB, - 45956 - 44032: 0xB5AC, - 45957 - 44032: 0xB5AD, - 45958 - 44032: 0x8954, - 45959 - 44032: 0x8955, - 45960 - 44032: 0x8956, - 45961 - 44032: 0x8957, - 45962 - 44032: 0x8958, - 45963 - 44032: 0x8959, - 45964 - 44032: 0xB5AE, - 45965 - 44032: 0x895A, - 45966 - 44032: 0x8961, - 45967 - 44032: 0x8962, - 45968 - 44032: 0xB5AF, - 45969 - 44032: 0x8963, - 45970 - 44032: 0x8964, - 45971 - 44032: 0x8965, - 45972 - 44032: 0xB5B0, - 45973 - 44032: 0x8966, - 45974 - 44032: 0x8967, - 45975 - 44032: 0x8968, - 45976 - 44032: 0x8969, - 45977 - 44032: 0x896A, - 45978 - 44032: 0x896B, - 45979 - 44032: 0x896C, - 45980 - 44032: 0x896D, - 45981 - 44032: 0x896E, - 45982 - 44032: 0x896F, - 45983 - 44032: 0x8970, - 45984 - 44032: 0xB5B1, - 45985 - 44032: 0xB5B2, - 45986 - 44032: 0x8971, - 45987 - 44032: 0x8972, - 45988 - 44032: 0x8973, - 45989 - 44032: 0x8974, - 45990 - 44032: 0x8975, - 45991 - 44032: 0x8976, - 45992 - 44032: 0xB5B3, - 45993 - 44032: 0x8977, - 45994 - 44032: 0x8978, - 45995 - 44032: 0x8979, - 45996 - 44032: 0xB5B4, - 45997 - 44032: 0x897A, - 45998 - 44032: 0x8981, - 45999 - 44032: 0x8982, - 46000 - 44032: 0x8983, - 46001 - 44032: 0x8984, - 46002 - 44032: 0x8985, - 46003 - 44032: 0x8986, - 46004 - 44032: 0x8987, - 46005 - 44032: 0x8988, - 46006 - 44032: 0x8989, - 46007 - 44032: 0x898A, - 46008 - 44032: 0x898B, - 46009 - 44032: 0x898C, - 46010 - 44032: 0x898D, - 46011 - 44032: 0x898E, - 46012 - 44032: 0x898F, - 46013 - 44032: 0x8990, - 46014 - 44032: 0x8991, - 46015 - 44032: 0x8992, - 46016 - 44032: 0x8993, - 46017 - 44032: 0x8994, - 46018 - 44032: 0x8995, - 46019 - 44032: 0x8996, - 46020 - 44032: 0xB5B5, - 46021 - 44032: 0xB5B6, - 46022 - 44032: 0x8997, - 46023 - 44032: 0x8998, - 46024 - 44032: 0xB5B7, - 46025 - 44032: 0x8999, - 46026 - 44032: 0x899A, - 46027 - 44032: 0xB5B8, - 46028 - 44032: 0xB5B9, - 46029 - 44032: 0x899B, - 46030 - 44032: 0xB5BA, - 46031 - 44032: 0x899C, - 46032 - 44032: 0xB5BB, - 46033 - 44032: 0x899D, - 46034 - 44032: 0x899E, - 46035 - 44032: 0x899F, - 46036 - 44032: 0xB5BC, - 46037 - 44032: 0xB5BD, - 46038 - 44032: 0x89A0, - 46039 - 44032: 0xB5BE, - 46040 - 44032: 0x89A1, - 46041 - 44032: 0xB5BF, - 46042 - 44032: 0x89A2, - 46043 - 44032: 0xB5C0, - 46044 - 44032: 0x89A3, - 46045 - 44032: 0xB5C1, - 46046 - 44032: 0x89A4, - 46047 - 44032: 0x89A5, - 46048 - 44032: 0xB5C2, - 46049 - 44032: 0x89A6, - 46050 - 44032: 0x89A7, - 46051 - 44032: 0x89A8, - 46052 - 44032: 0xB5C3, - 46053 - 44032: 0x89A9, - 46054 - 44032: 0x89AA, - 46055 - 44032: 0x89AB, - 46056 - 44032: 0xB5C4, - 46057 - 44032: 0x89AC, - 46058 - 44032: 0x89AD, - 46059 - 44032: 0x89AE, - 46060 - 44032: 0x89AF, - 46061 - 44032: 0x89B0, - 46062 - 44032: 0x89B1, - 46063 - 44032: 0x89B2, - 46064 - 44032: 0x89B3, - 46065 - 44032: 0x89B4, - 46066 - 44032: 0x89B5, - 46067 - 44032: 0x89B6, - 46068 - 44032: 0x89B7, - 46069 - 44032: 0x89B8, - 46070 - 44032: 0x89B9, - 46071 - 44032: 0x89BA, - 46072 - 44032: 0x89BB, - 46073 - 44032: 0x89BC, - 46074 - 44032: 0x89BD, - 46075 - 44032: 0x89BE, - 46076 - 44032: 0xB5C5, - 46077 - 44032: 0x89BF, - 46078 - 44032: 0x89C0, - 46079 - 44032: 0x89C1, - 46080 - 44032: 0x89C2, - 46081 - 44032: 0x89C3, - 46082 - 44032: 0x89C4, - 46083 - 44032: 0x89C5, - 46084 - 44032: 0x89C6, - 46085 - 44032: 0x89C7, - 46086 - 44032: 0x89C8, - 46087 - 44032: 0x89C9, - 46088 - 44032: 0x89CA, - 46089 - 44032: 0x89CB, - 46090 - 44032: 0x89CC, - 46091 - 44032: 0x89CD, - 46092 - 44032: 0x89CE, - 46093 - 44032: 0x89CF, - 46094 - 44032: 0x89D0, - 46095 - 44032: 0x89D1, - 46096 - 44032: 0xB5C6, - 46097 - 44032: 0x89D2, - 46098 - 44032: 0x89D3, - 46099 - 44032: 0x89D4, - 46100 - 44032: 0x89D5, - 46101 - 44032: 0x89D6, - 46102 - 44032: 0x89D7, - 46103 - 44032: 0x89D8, - 46104 - 44032: 0xB5C7, - 46105 - 44032: 0x89D9, - 46106 - 44032: 0x89DA, - 46107 - 44032: 0x89DB, - 46108 - 44032: 0xB5C8, - 46109 - 44032: 0x89DC, - 46110 - 44032: 0x89DD, - 46111 - 44032: 0x89DE, - 46112 - 44032: 0xB5C9, - 46113 - 44032: 0x89DF, - 46114 - 44032: 0x89E0, - 46115 - 44032: 0x89E1, - 46116 - 44032: 0x89E2, - 46117 - 44032: 0x89E3, - 46118 - 44032: 0x89E4, - 46119 - 44032: 0x89E5, - 46120 - 44032: 0xB5CA, - 46121 - 44032: 0xB5CB, - 46122 - 44032: 0x89E6, - 46123 - 44032: 0xB5CC, - 46124 - 44032: 0x89E7, - 46125 - 44032: 0x89E8, - 46126 - 44032: 0x89E9, - 46127 - 44032: 0x89EA, - 46128 - 44032: 0x89EB, - 46129 - 44032: 0x89EC, - 46130 - 44032: 0x89ED, - 46131 - 44032: 0x89EE, - 46132 - 44032: 0xB5CD, - 46133 - 44032: 0x89EF, - 46134 - 44032: 0x89F0, - 46135 - 44032: 0x89F1, - 46136 - 44032: 0x89F2, - 46137 - 44032: 0x89F3, - 46138 - 44032: 0x89F4, - 46139 - 44032: 0x89F5, - 46140 - 44032: 0x89F6, - 46141 - 44032: 0x89F7, - 46142 - 44032: 0x89F8, - 46143 - 44032: 0x89F9, - 46144 - 44032: 0x89FA, - 46145 - 44032: 0x89FB, - 46146 - 44032: 0x89FC, - 46147 - 44032: 0x89FD, - 46148 - 44032: 0x89FE, - 46149 - 44032: 0x8A41, - 46150 - 44032: 0x8A42, - 46151 - 44032: 0x8A43, - 46152 - 44032: 0x8A44, - 46153 - 44032: 0x8A45, - 46154 - 44032: 0x8A46, - 46155 - 44032: 0x8A47, - 46156 - 44032: 0x8A48, - 46157 - 44032: 0x8A49, - 46158 - 44032: 0x8A4A, - 46159 - 44032: 0x8A4B, - 46160 - 44032: 0xB5CE, - 46161 - 44032: 0xB5CF, - 46162 - 44032: 0x8A4C, - 46163 - 44032: 0x8A4D, - 46164 - 44032: 0xB5D0, - 46165 - 44032: 0x8A4E, - 46166 - 44032: 0x8A4F, - 46167 - 44032: 0x8A50, - 46168 - 44032: 0xB5D1, - 46169 - 44032: 0x8A51, - 46170 - 44032: 0x8A52, - 46171 - 44032: 0x8A53, - 46172 - 44032: 0x8A54, - 46173 - 44032: 0x8A55, - 46174 - 44032: 0x8A56, - 46175 - 44032: 0x8A57, - 46176 - 44032: 0xB5D2, - 46177 - 44032: 0xB5D3, - 46178 - 44032: 0x8A58, - 46179 - 44032: 0xB5D4, - 46180 - 44032: 0x8A59, - 46181 - 44032: 0xB5D5, - 46182 - 44032: 0x8A5A, - 46183 - 44032: 0x8A61, - 46184 - 44032: 0x8A62, - 46185 - 44032: 0x8A63, - 46186 - 44032: 0x8A64, - 46187 - 44032: 0x8A65, - 46188 - 44032: 0xB5D6, - 46189 - 44032: 0x8A66, - 46190 - 44032: 0x8A67, - 46191 - 44032: 0x8A68, - 46192 - 44032: 0x8A69, - 46193 - 44032: 0x8A6A, - 46194 - 44032: 0x8A6B, - 46195 - 44032: 0x8A6C, - 46196 - 44032: 0x8A6D, - 46197 - 44032: 0x8A6E, - 46198 - 44032: 0x8A6F, - 46199 - 44032: 0x8A70, - 46200 - 44032: 0x8A71, - 46201 - 44032: 0x8A72, - 46202 - 44032: 0x8A73, - 46203 - 44032: 0x8A74, - 46204 - 44032: 0x8A75, - 46205 - 44032: 0x8A76, - 46206 - 44032: 0x8A77, - 46207 - 44032: 0x8A78, - 46208 - 44032: 0xB5D7, - 46209 - 44032: 0x8A79, - 46210 - 44032: 0x8A7A, - 46211 - 44032: 0x8A81, - 46212 - 44032: 0x8A82, - 46213 - 44032: 0x8A83, - 46214 - 44032: 0x8A84, - 46215 - 44032: 0x8A85, - 46216 - 44032: 0xB5D8, - 46217 - 44032: 0x8A86, - 46218 - 44032: 0x8A87, - 46219 - 44032: 0x8A88, - 46220 - 44032: 0x8A89, - 46221 - 44032: 0x8A8A, - 46222 - 44032: 0x8A8B, - 46223 - 44032: 0x8A8C, - 46224 - 44032: 0x8A8D, - 46225 - 44032: 0x8A8E, - 46226 - 44032: 0x8A8F, - 46227 - 44032: 0x8A90, - 46228 - 44032: 0x8A91, - 46229 - 44032: 0x8A92, - 46230 - 44032: 0x8A93, - 46231 - 44032: 0x8A94, - 46232 - 44032: 0x8A95, - 46233 - 44032: 0x8A96, - 46234 - 44032: 0x8A97, - 46235 - 44032: 0x8A98, - 46236 - 44032: 0x8A99, - 46237 - 44032: 0xB5D9, - 46238 - 44032: 0x8A9A, - 46239 - 44032: 0x8A9B, - 46240 - 44032: 0x8A9C, - 46241 - 44032: 0x8A9D, - 46242 - 44032: 0x8A9E, - 46243 - 44032: 0x8A9F, - 46244 - 44032: 0xB5DA, - 46245 - 44032: 0x8AA0, - 46246 - 44032: 0x8AA1, - 46247 - 44032: 0x8AA2, - 46248 - 44032: 0xB5DB, - 46249 - 44032: 0x8AA3, - 46250 - 44032: 0x8AA4, - 46251 - 44032: 0x8AA5, - 46252 - 44032: 0xB5DC, - 46253 - 44032: 0x8AA6, - 46254 - 44032: 0x8AA7, - 46255 - 44032: 0x8AA8, - 46256 - 44032: 0x8AA9, - 46257 - 44032: 0x8AAA, - 46258 - 44032: 0x8AAB, - 46259 - 44032: 0x8AAC, - 46260 - 44032: 0x8AAD, - 46261 - 44032: 0xB5DD, - 46262 - 44032: 0x8AAE, - 46263 - 44032: 0xB5DE, - 46264 - 44032: 0x8AAF, - 46265 - 44032: 0xB5DF, - 46266 - 44032: 0x8AB0, - 46267 - 44032: 0x8AB1, - 46268 - 44032: 0x8AB2, - 46269 - 44032: 0x8AB3, - 46270 - 44032: 0x8AB4, - 46271 - 44032: 0x8AB5, - 46272 - 44032: 0xB5E0, - 46273 - 44032: 0x8AB6, - 46274 - 44032: 0x8AB7, - 46275 - 44032: 0x8AB8, - 46276 - 44032: 0xB5E1, - 46277 - 44032: 0x8AB9, - 46278 - 44032: 0x8ABA, - 46279 - 44032: 0x8ABB, - 46280 - 44032: 0xB5E2, - 46281 - 44032: 0x8ABC, - 46282 - 44032: 0x8ABD, - 46283 - 44032: 0x8ABE, - 46284 - 44032: 0x8ABF, - 46285 - 44032: 0x8AC0, - 46286 - 44032: 0x8AC1, - 46287 - 44032: 0x8AC2, - 46288 - 44032: 0xB5E3, - 46289 - 44032: 0x8AC3, - 46290 - 44032: 0x8AC4, - 46291 - 44032: 0x8AC5, - 46292 - 44032: 0x8AC6, - 46293 - 44032: 0xB5E4, - 46294 - 44032: 0x8AC7, - 46295 - 44032: 0x8AC8, - 46296 - 44032: 0x8AC9, - 46297 - 44032: 0x8ACA, - 46298 - 44032: 0x8ACB, - 46299 - 44032: 0x8ACC, - 46300 - 44032: 0xB5E5, - 46301 - 44032: 0xB5E6, - 46302 - 44032: 0x8ACD, - 46303 - 44032: 0x8ACE, - 46304 - 44032: 0xB5E7, - 46305 - 44032: 0x8ACF, - 46306 - 44032: 0x8AD0, - 46307 - 44032: 0xB5E8, - 46308 - 44032: 0xB5E9, - 46309 - 44032: 0x8AD1, - 46310 - 44032: 0xB5EA, - 46311 - 44032: 0x8AD2, - 46312 - 44032: 0x8AD3, - 46313 - 44032: 0x8AD4, - 46314 - 44032: 0x8AD5, - 46315 - 44032: 0x8AD6, - 46316 - 44032: 0xB5EB, - 46317 - 44032: 0xB5EC, - 46318 - 44032: 0x8AD7, - 46319 - 44032: 0xB5ED, - 46320 - 44032: 0x8AD8, - 46321 - 44032: 0xB5EE, - 46322 - 44032: 0x8AD9, - 46323 - 44032: 0x8ADA, - 46324 - 44032: 0x8ADB, - 46325 - 44032: 0x8ADC, - 46326 - 44032: 0x8ADD, - 46327 - 44032: 0x8ADE, - 46328 - 44032: 0xB5EF, - 46329 - 44032: 0x8ADF, - 46330 - 44032: 0x8AE0, - 46331 - 44032: 0x8AE1, - 46332 - 44032: 0x8AE2, - 46333 - 44032: 0x8AE3, - 46334 - 44032: 0x8AE4, - 46335 - 44032: 0x8AE5, - 46336 - 44032: 0x8AE6, - 46337 - 44032: 0x8AE7, - 46338 - 44032: 0x8AE8, - 46339 - 44032: 0x8AE9, - 46340 - 44032: 0x8AEA, - 46341 - 44032: 0x8AEB, - 46342 - 44032: 0x8AEC, - 46343 - 44032: 0x8AED, - 46344 - 44032: 0x8AEE, - 46345 - 44032: 0x8AEF, - 46346 - 44032: 0x8AF0, - 46347 - 44032: 0x8AF1, - 46348 - 44032: 0x8AF2, - 46349 - 44032: 0x8AF3, - 46350 - 44032: 0x8AF4, - 46351 - 44032: 0x8AF5, - 46352 - 44032: 0x8AF6, - 46353 - 44032: 0x8AF7, - 46354 - 44032: 0x8AF8, - 46355 - 44032: 0x8AF9, - 46356 - 44032: 0xB5F0, - 46357 - 44032: 0xB5F1, - 46358 - 44032: 0x8AFA, - 46359 - 44032: 0x8AFB, - 46360 - 44032: 0xB5F2, - 46361 - 44032: 0x8AFC, - 46362 - 44032: 0x8AFD, - 46363 - 44032: 0xB5F3, - 46364 - 44032: 0xB5F4, - 46365 - 44032: 0x8AFE, - 46366 - 44032: 0x8B41, - 46367 - 44032: 0x8B42, - 46368 - 44032: 0x8B43, - 46369 - 44032: 0x8B44, - 46370 - 44032: 0x8B45, - 46371 - 44032: 0x8B46, - 46372 - 44032: 0xB5F5, - 46373 - 44032: 0xB5F6, - 46374 - 44032: 0x8B47, - 46375 - 44032: 0xB5F7, - 46376 - 44032: 0xB5F8, - 46377 - 44032: 0xB5F9, - 46378 - 44032: 0xB5FA, - 46379 - 44032: 0x8B48, - 46380 - 44032: 0x8B49, - 46381 - 44032: 0x8B4A, - 46382 - 44032: 0x8B4B, - 46383 - 44032: 0x8B4C, - 46384 - 44032: 0xB5FB, - 46385 - 44032: 0xB5FC, - 46386 - 44032: 0x8B4D, - 46387 - 44032: 0x8B4E, - 46388 - 44032: 0xB5FD, - 46389 - 44032: 0x8B4F, - 46390 - 44032: 0x8B50, - 46391 - 44032: 0x8B51, - 46392 - 44032: 0xB5FE, - 46393 - 44032: 0x8B52, - 46394 - 44032: 0x8B53, - 46395 - 44032: 0x8B54, - 46396 - 44032: 0x8B55, - 46397 - 44032: 0x8B56, - 46398 - 44032: 0x8B57, - 46399 - 44032: 0x8B58, - 46400 - 44032: 0xB6A1, - 46401 - 44032: 0xB6A2, - 46402 - 44032: 0x8B59, - 46403 - 44032: 0xB6A3, - 46404 - 44032: 0xB6A4, - 46405 - 44032: 0xB6A5, - 46406 - 44032: 0x8B5A, - 46407 - 44032: 0x8B61, - 46408 - 44032: 0x8B62, - 46409 - 44032: 0x8B63, - 46410 - 44032: 0x8B64, - 46411 - 44032: 0xB6A6, - 46412 - 44032: 0xB6A7, - 46413 - 44032: 0xB6A8, - 46414 - 44032: 0x8B65, - 46415 - 44032: 0x8B66, - 46416 - 44032: 0xB6A9, - 46417 - 44032: 0x8B67, - 46418 - 44032: 0x8B68, - 46419 - 44032: 0x8B69, - 46420 - 44032: 0xB6AA, - 46421 - 44032: 0x8B6A, - 46422 - 44032: 0x8B6B, - 46423 - 44032: 0x8B6C, - 46424 - 44032: 0x8B6D, - 46425 - 44032: 0x8B6E, - 46426 - 44032: 0x8B6F, - 46427 - 44032: 0x8B70, - 46428 - 44032: 0xB6AB, - 46429 - 44032: 0xB6AC, - 46430 - 44032: 0x8B71, - 46431 - 44032: 0xB6AD, - 46432 - 44032: 0xB6AE, - 46433 - 44032: 0xB6AF, - 46434 - 44032: 0x8B72, - 46435 - 44032: 0x8B73, - 46436 - 44032: 0x8B74, - 46437 - 44032: 0x8B75, - 46438 - 44032: 0x8B76, - 46439 - 44032: 0x8B77, - 46440 - 44032: 0x8B78, - 46441 - 44032: 0x8B79, - 46442 - 44032: 0x8B7A, - 46443 - 44032: 0x8B81, - 46444 - 44032: 0x8B82, - 46445 - 44032: 0x8B83, - 46446 - 44032: 0x8B84, - 46447 - 44032: 0x8B85, - 46448 - 44032: 0x8B86, - 46449 - 44032: 0x8B87, - 46450 - 44032: 0x8B88, - 46451 - 44032: 0x8B89, - 46452 - 44032: 0x8B8A, - 46453 - 44032: 0x8B8B, - 46454 - 44032: 0x8B8C, - 46455 - 44032: 0x8B8D, - 46456 - 44032: 0x8B8E, - 46457 - 44032: 0x8B8F, - 46458 - 44032: 0x8B90, - 46459 - 44032: 0x8B91, - 46460 - 44032: 0x8B92, - 46461 - 44032: 0x8B93, - 46462 - 44032: 0x8B94, - 46463 - 44032: 0x8B95, - 46464 - 44032: 0x8B96, - 46465 - 44032: 0x8B97, - 46466 - 44032: 0x8B98, - 46467 - 44032: 0x8B99, - 46468 - 44032: 0x8B9A, - 46469 - 44032: 0x8B9B, - 46470 - 44032: 0x8B9C, - 46471 - 44032: 0x8B9D, - 46472 - 44032: 0x8B9E, - 46473 - 44032: 0x8B9F, - 46474 - 44032: 0x8BA0, - 46475 - 44032: 0x8BA1, - 46476 - 44032: 0x8BA2, - 46477 - 44032: 0x8BA3, - 46478 - 44032: 0x8BA4, - 46479 - 44032: 0x8BA5, - 46480 - 44032: 0x8BA6, - 46481 - 44032: 0x8BA7, - 46482 - 44032: 0x8BA8, - 46483 - 44032: 0x8BA9, - 46484 - 44032: 0x8BAA, - 46485 - 44032: 0x8BAB, - 46486 - 44032: 0x8BAC, - 46487 - 44032: 0x8BAD, - 46488 - 44032: 0x8BAE, - 46489 - 44032: 0x8BAF, - 46490 - 44032: 0x8BB0, - 46491 - 44032: 0x8BB1, - 46492 - 44032: 0x8BB2, - 46493 - 44032: 0x8BB3, - 46494 - 44032: 0x8BB4, - 46495 - 44032: 0x8BB5, - 46496 - 44032: 0xB6B0, - 46497 - 44032: 0xB6B1, - 46498 - 44032: 0x8BB6, - 46499 - 44032: 0x8BB7, - 46500 - 44032: 0xB6B2, - 46501 - 44032: 0x8BB8, - 46502 - 44032: 0x8BB9, - 46503 - 44032: 0x8BBA, - 46504 - 44032: 0xB6B3, - 46505 - 44032: 0x8BBB, - 46506 - 44032: 0xB6B4, - 46507 - 44032: 0xB6B5, - 46508 - 44032: 0x8BBC, - 46509 - 44032: 0x8BBD, - 46510 - 44032: 0x8BBE, - 46511 - 44032: 0x8BBF, - 46512 - 44032: 0xB6B6, - 46513 - 44032: 0xB6B7, - 46514 - 44032: 0x8BC0, - 46515 - 44032: 0xB6B8, - 46516 - 44032: 0xB6B9, - 46517 - 44032: 0xB6BA, - 46518 - 44032: 0x8BC1, - 46519 - 44032: 0x8BC2, - 46520 - 44032: 0x8BC3, - 46521 - 44032: 0x8BC4, - 46522 - 44032: 0x8BC5, - 46523 - 44032: 0xB6BB, - 46524 - 44032: 0xB6BC, - 46525 - 44032: 0xB6BD, - 46526 - 44032: 0x8BC6, - 46527 - 44032: 0x8BC7, - 46528 - 44032: 0xB6BE, - 46529 - 44032: 0x8BC8, - 46530 - 44032: 0x8BC9, - 46531 - 44032: 0x8BCA, - 46532 - 44032: 0xB6BF, - 46533 - 44032: 0x8BCB, - 46534 - 44032: 0x8BCC, - 46535 - 44032: 0x8BCD, - 46536 - 44032: 0x8BCE, - 46537 - 44032: 0x8BCF, - 46538 - 44032: 0x8BD0, - 46539 - 44032: 0x8BD1, - 46540 - 44032: 0xB6C0, - 46541 - 44032: 0xB6C1, - 46542 - 44032: 0x8BD2, - 46543 - 44032: 0xB6C2, - 46544 - 44032: 0xB6C3, - 46545 - 44032: 0xB6C4, - 46546 - 44032: 0x8BD3, - 46547 - 44032: 0x8BD4, - 46548 - 44032: 0x8BD5, - 46549 - 44032: 0x8BD6, - 46550 - 44032: 0x8BD7, - 46551 - 44032: 0x8BD8, - 46552 - 44032: 0xB6C5, - 46553 - 44032: 0x8BD9, - 46554 - 44032: 0x8BDA, - 46555 - 44032: 0x8BDB, - 46556 - 44032: 0x8BDC, - 46557 - 44032: 0x8BDD, - 46558 - 44032: 0x8BDE, - 46559 - 44032: 0x8BDF, - 46560 - 44032: 0x8BE0, - 46561 - 44032: 0x8BE1, - 46562 - 44032: 0x8BE2, - 46563 - 44032: 0x8BE3, - 46564 - 44032: 0x8BE4, - 46565 - 44032: 0x8BE5, - 46566 - 44032: 0x8BE6, - 46567 - 44032: 0x8BE7, - 46568 - 44032: 0x8BE8, - 46569 - 44032: 0x8BE9, - 46570 - 44032: 0x8BEA, - 46571 - 44032: 0x8BEB, - 46572 - 44032: 0xB6C6, - 46573 - 44032: 0x8BEC, - 46574 - 44032: 0x8BED, - 46575 - 44032: 0x8BEE, - 46576 - 44032: 0x8BEF, - 46577 - 44032: 0x8BF0, - 46578 - 44032: 0x8BF1, - 46579 - 44032: 0x8BF2, - 46580 - 44032: 0x8BF3, - 46581 - 44032: 0x8BF4, - 46582 - 44032: 0x8BF5, - 46583 - 44032: 0x8BF6, - 46584 - 44032: 0x8BF7, - 46585 - 44032: 0x8BF8, - 46586 - 44032: 0x8BF9, - 46587 - 44032: 0x8BFA, - 46588 - 44032: 0x8BFB, - 46589 - 44032: 0x8BFC, - 46590 - 44032: 0x8BFD, - 46591 - 44032: 0x8BFE, - 46592 - 44032: 0x8C41, - 46593 - 44032: 0x8C42, - 46594 - 44032: 0x8C43, - 46595 - 44032: 0x8C44, - 46596 - 44032: 0x8C45, - 46597 - 44032: 0x8C46, - 46598 - 44032: 0x8C47, - 46599 - 44032: 0x8C48, - 46600 - 44032: 0x8C49, - 46601 - 44032: 0x8C4A, - 46602 - 44032: 0x8C4B, - 46603 - 44032: 0x8C4C, - 46604 - 44032: 0x8C4D, - 46605 - 44032: 0x8C4E, - 46606 - 44032: 0x8C4F, - 46607 - 44032: 0x8C50, - 46608 - 44032: 0xB6C7, - 46609 - 44032: 0xB6C8, - 46610 - 44032: 0x8C51, - 46611 - 44032: 0x8C52, - 46612 - 44032: 0xB6C9, - 46613 - 44032: 0x8C53, - 46614 - 44032: 0x8C54, - 46615 - 44032: 0x8C55, - 46616 - 44032: 0xB6CA, - 46617 - 44032: 0x8C56, - 46618 - 44032: 0x8C57, - 46619 - 44032: 0x8C58, - 46620 - 44032: 0x8C59, - 46621 - 44032: 0x8C5A, - 46622 - 44032: 0x8C61, - 46623 - 44032: 0x8C62, - 46624 - 44032: 0x8C63, - 46625 - 44032: 0x8C64, - 46626 - 44032: 0x8C65, - 46627 - 44032: 0x8C66, - 46628 - 44032: 0x8C67, - 46629 - 44032: 0xB6CB, - 46630 - 44032: 0x8C68, - 46631 - 44032: 0x8C69, - 46632 - 44032: 0x8C6A, - 46633 - 44032: 0x8C6B, - 46634 - 44032: 0x8C6C, - 46635 - 44032: 0x8C6D, - 46636 - 44032: 0xB6CC, - 46637 - 44032: 0x8C6E, - 46638 - 44032: 0x8C6F, - 46639 - 44032: 0x8C70, - 46640 - 44032: 0x8C71, - 46641 - 44032: 0x8C72, - 46642 - 44032: 0x8C73, - 46643 - 44032: 0x8C74, - 46644 - 44032: 0xB6CD, - 46645 - 44032: 0x8C75, - 46646 - 44032: 0x8C76, - 46647 - 44032: 0x8C77, - 46648 - 44032: 0x8C78, - 46649 - 44032: 0x8C79, - 46650 - 44032: 0x8C7A, - 46651 - 44032: 0x8C81, - 46652 - 44032: 0x8C82, - 46653 - 44032: 0x8C83, - 46654 - 44032: 0x8C84, - 46655 - 44032: 0x8C85, - 46656 - 44032: 0x8C86, - 46657 - 44032: 0x8C87, - 46658 - 44032: 0x8C88, - 46659 - 44032: 0x8C89, - 46660 - 44032: 0x8C8A, - 46661 - 44032: 0x8C8B, - 46662 - 44032: 0x8C8C, - 46663 - 44032: 0x8C8D, - 46664 - 44032: 0xB6CE, - 46665 - 44032: 0x8C8E, - 46666 - 44032: 0x8C8F, - 46667 - 44032: 0x8C90, - 46668 - 44032: 0x8C91, - 46669 - 44032: 0x8C92, - 46670 - 44032: 0x8C93, - 46671 - 44032: 0x8C94, - 46672 - 44032: 0x8C95, - 46673 - 44032: 0x8C96, - 46674 - 44032: 0x8C97, - 46675 - 44032: 0x8C98, - 46676 - 44032: 0x8C99, - 46677 - 44032: 0x8C9A, - 46678 - 44032: 0x8C9B, - 46679 - 44032: 0x8C9C, - 46680 - 44032: 0x8C9D, - 46681 - 44032: 0x8C9E, - 46682 - 44032: 0x8C9F, - 46683 - 44032: 0x8CA0, - 46684 - 44032: 0x8CA1, - 46685 - 44032: 0x8CA2, - 46686 - 44032: 0x8CA3, - 46687 - 44032: 0x8CA4, - 46688 - 44032: 0x8CA5, - 46689 - 44032: 0x8CA6, - 46690 - 44032: 0x8CA7, - 46691 - 44032: 0x8CA8, - 46692 - 44032: 0xB6CF, - 46693 - 44032: 0x8CA9, - 46694 - 44032: 0x8CAA, - 46695 - 44032: 0x8CAB, - 46696 - 44032: 0xB6D0, - 46697 - 44032: 0x8CAC, - 46698 - 44032: 0x8CAD, - 46699 - 44032: 0x8CAE, - 46700 - 44032: 0x8CAF, - 46701 - 44032: 0x8CB0, - 46702 - 44032: 0x8CB1, - 46703 - 44032: 0x8CB2, - 46704 - 44032: 0x8CB3, - 46705 - 44032: 0x8CB4, - 46706 - 44032: 0x8CB5, - 46707 - 44032: 0x8CB6, - 46708 - 44032: 0x8CB7, - 46709 - 44032: 0x8CB8, - 46710 - 44032: 0x8CB9, - 46711 - 44032: 0x8CBA, - 46712 - 44032: 0x8CBB, - 46713 - 44032: 0x8CBC, - 46714 - 44032: 0x8CBD, - 46715 - 44032: 0x8CBE, - 46716 - 44032: 0x8CBF, - 46717 - 44032: 0x8CC0, - 46718 - 44032: 0x8CC1, - 46719 - 44032: 0x8CC2, - 46720 - 44032: 0x8CC3, - 46721 - 44032: 0x8CC4, - 46722 - 44032: 0x8CC5, - 46723 - 44032: 0x8CC6, - 46724 - 44032: 0x8CC7, - 46725 - 44032: 0x8CC8, - 46726 - 44032: 0x8CC9, - 46727 - 44032: 0x8CCA, - 46728 - 44032: 0x8CCB, - 46729 - 44032: 0x8CCC, - 46730 - 44032: 0x8CCD, - 46731 - 44032: 0x8CCE, - 46732 - 44032: 0x8CCF, - 46733 - 44032: 0x8CD0, - 46734 - 44032: 0x8CD1, - 46735 - 44032: 0x8CD2, - 46736 - 44032: 0x8CD3, - 46737 - 44032: 0x8CD4, - 46738 - 44032: 0x8CD5, - 46739 - 44032: 0x8CD6, - 46740 - 44032: 0x8CD7, - 46741 - 44032: 0x8CD8, - 46742 - 44032: 0x8CD9, - 46743 - 44032: 0x8CDA, - 46744 - 44032: 0x8CDB, - 46745 - 44032: 0x8CDC, - 46746 - 44032: 0x8CDD, - 46747 - 44032: 0x8CDE, - 46748 - 44032: 0xB6D1, - 46749 - 44032: 0xB6D2, - 46750 - 44032: 0x8CDF, - 46751 - 44032: 0x8CE0, - 46752 - 44032: 0xB6D3, - 46753 - 44032: 0x8CE1, - 46754 - 44032: 0x8CE2, - 46755 - 44032: 0x8CE3, - 46756 - 44032: 0xB6D4, - 46757 - 44032: 0x8CE4, - 46758 - 44032: 0x8CE5, - 46759 - 44032: 0x8CE6, - 46760 - 44032: 0x8CE7, - 46761 - 44032: 0x8CE8, - 46762 - 44032: 0x8CE9, - 46763 - 44032: 0xB6D5, - 46764 - 44032: 0xB6D6, - 46765 - 44032: 0x8CEA, - 46766 - 44032: 0x8CEB, - 46767 - 44032: 0x8CEC, - 46768 - 44032: 0x8CED, - 46769 - 44032: 0xB6D7, - 46770 - 44032: 0x8CEE, - 46771 - 44032: 0x8CEF, - 46772 - 44032: 0x8CF0, - 46773 - 44032: 0x8CF1, - 46774 - 44032: 0x8CF2, - 46775 - 44032: 0x8CF3, - 46776 - 44032: 0x8CF4, - 46777 - 44032: 0x8CF5, - 46778 - 44032: 0x8CF6, - 46779 - 44032: 0x8CF7, - 46780 - 44032: 0x8CF8, - 46781 - 44032: 0x8CF9, - 46782 - 44032: 0x8CFA, - 46783 - 44032: 0x8CFB, - 46784 - 44032: 0x8CFC, - 46785 - 44032: 0x8CFD, - 46786 - 44032: 0x8CFE, - 46787 - 44032: 0x8D41, - 46788 - 44032: 0x8D42, - 46789 - 44032: 0x8D43, - 46790 - 44032: 0x8D44, - 46791 - 44032: 0x8D45, - 46792 - 44032: 0x8D46, - 46793 - 44032: 0x8D47, - 46794 - 44032: 0x8D48, - 46795 - 44032: 0x8D49, - 46796 - 44032: 0x8D4A, - 46797 - 44032: 0x8D4B, - 46798 - 44032: 0x8D4C, - 46799 - 44032: 0x8D4D, - 46800 - 44032: 0x8D4E, - 46801 - 44032: 0x8D4F, - 46802 - 44032: 0x8D50, - 46803 - 44032: 0x8D51, - 46804 - 44032: 0xB6D8, - 46805 - 44032: 0x8D52, - 46806 - 44032: 0x8D53, - 46807 - 44032: 0x8D54, - 46808 - 44032: 0x8D55, - 46809 - 44032: 0x8D56, - 46810 - 44032: 0x8D57, - 46811 - 44032: 0x8D58, - 46812 - 44032: 0x8D59, - 46813 - 44032: 0x8D5A, - 46814 - 44032: 0x8D61, - 46815 - 44032: 0x8D62, - 46816 - 44032: 0x8D63, - 46817 - 44032: 0x8D64, - 46818 - 44032: 0x8D65, - 46819 - 44032: 0x8D66, - 46820 - 44032: 0x8D67, - 46821 - 44032: 0x8D68, - 46822 - 44032: 0x8D69, - 46823 - 44032: 0x8D6A, - 46824 - 44032: 0x8D6B, - 46825 - 44032: 0x8D6C, - 46826 - 44032: 0x8D6D, - 46827 - 44032: 0x8D6E, - 46828 - 44032: 0x8D6F, - 46829 - 44032: 0x8D70, - 46830 - 44032: 0x8D71, - 46831 - 44032: 0x8D72, - 46832 - 44032: 0xB6D9, - 46833 - 44032: 0x8D73, - 46834 - 44032: 0x8D74, - 46835 - 44032: 0x8D75, - 46836 - 44032: 0xB6DA, - 46837 - 44032: 0x8D76, - 46838 - 44032: 0x8D77, - 46839 - 44032: 0x8D78, - 46840 - 44032: 0xB6DB, - 46841 - 44032: 0x8D79, - 46842 - 44032: 0x8D7A, - 46843 - 44032: 0x8D81, - 46844 - 44032: 0x8D82, - 46845 - 44032: 0x8D83, - 46846 - 44032: 0x8D84, - 46847 - 44032: 0x8D85, - 46848 - 44032: 0xB6DC, - 46849 - 44032: 0xB6DD, - 46850 - 44032: 0x8D86, - 46851 - 44032: 0x8D87, - 46852 - 44032: 0x8D88, - 46853 - 44032: 0xB6DE, - 46854 - 44032: 0x8D89, - 46855 - 44032: 0x8D8A, - 46856 - 44032: 0x8D8B, - 46857 - 44032: 0x8D8C, - 46858 - 44032: 0x8D8D, - 46859 - 44032: 0x8D8E, - 46860 - 44032: 0x8D8F, - 46861 - 44032: 0x8D90, - 46862 - 44032: 0x8D91, - 46863 - 44032: 0x8D92, - 46864 - 44032: 0x8D93, - 46865 - 44032: 0x8D94, - 46866 - 44032: 0x8D95, - 46867 - 44032: 0x8D96, - 46868 - 44032: 0x8D97, - 46869 - 44032: 0x8D98, - 46870 - 44032: 0x8D99, - 46871 - 44032: 0x8D9A, - 46872 - 44032: 0x8D9B, - 46873 - 44032: 0x8D9C, - 46874 - 44032: 0x8D9D, - 46875 - 44032: 0x8D9E, - 46876 - 44032: 0x8D9F, - 46877 - 44032: 0x8DA0, - 46878 - 44032: 0x8DA1, - 46879 - 44032: 0x8DA2, - 46880 - 44032: 0x8DA3, - 46881 - 44032: 0x8DA4, - 46882 - 44032: 0x8DA5, - 46883 - 44032: 0x8DA6, - 46884 - 44032: 0x8DA7, - 46885 - 44032: 0x8DA8, - 46886 - 44032: 0x8DA9, - 46887 - 44032: 0x8DAA, - 46888 - 44032: 0xB6DF, - 46889 - 44032: 0xB6E0, - 46890 - 44032: 0x8DAB, - 46891 - 44032: 0x8DAC, - 46892 - 44032: 0xB6E1, - 46893 - 44032: 0x8DAD, - 46894 - 44032: 0x8DAE, - 46895 - 44032: 0xB6E2, - 46896 - 44032: 0xB6E3, - 46897 - 44032: 0x8DAF, - 46898 - 44032: 0x8DB0, - 46899 - 44032: 0x8DB1, - 46900 - 44032: 0x8DB2, - 46901 - 44032: 0x8DB3, - 46902 - 44032: 0x8DB4, - 46903 - 44032: 0x8DB5, - 46904 - 44032: 0xB6E4, - 46905 - 44032: 0xB6E5, - 46906 - 44032: 0x8DB6, - 46907 - 44032: 0xB6E6, - 46908 - 44032: 0x8DB7, - 46909 - 44032: 0x8DB8, - 46910 - 44032: 0x8DB9, - 46911 - 44032: 0x8DBA, - 46912 - 44032: 0x8DBB, - 46913 - 44032: 0x8DBC, - 46914 - 44032: 0x8DBD, - 46915 - 44032: 0x8DBE, - 46916 - 44032: 0xB6E7, - 46917 - 44032: 0x8DBF, - 46918 - 44032: 0x8DC0, - 46919 - 44032: 0x8DC1, - 46920 - 44032: 0xB6E8, - 46921 - 44032: 0x8DC2, - 46922 - 44032: 0x8DC3, - 46923 - 44032: 0x8DC4, - 46924 - 44032: 0xB6E9, - 46925 - 44032: 0x8DC5, - 46926 - 44032: 0x8DC6, - 46927 - 44032: 0x8DC7, - 46928 - 44032: 0x8DC8, - 46929 - 44032: 0x8DC9, - 46930 - 44032: 0x8DCA, - 46931 - 44032: 0x8DCB, - 46932 - 44032: 0xB6EA, - 46933 - 44032: 0xB6EB, - 46934 - 44032: 0x8DCC, - 46935 - 44032: 0x8DCD, - 46936 - 44032: 0x8DCE, - 46937 - 44032: 0x8DCF, - 46938 - 44032: 0x8DD0, - 46939 - 44032: 0x8DD1, - 46940 - 44032: 0x8DD2, - 46941 - 44032: 0x8DD3, - 46942 - 44032: 0x8DD4, - 46943 - 44032: 0x8DD5, - 46944 - 44032: 0xB6EC, - 46945 - 44032: 0x8DD6, - 46946 - 44032: 0x8DD7, - 46947 - 44032: 0x8DD8, - 46948 - 44032: 0xB6ED, - 46949 - 44032: 0x8DD9, - 46950 - 44032: 0x8DDA, - 46951 - 44032: 0x8DDB, - 46952 - 44032: 0xB6EE, - 46953 - 44032: 0x8DDC, - 46954 - 44032: 0x8DDD, - 46955 - 44032: 0x8DDE, - 46956 - 44032: 0x8DDF, - 46957 - 44032: 0x8DE0, - 46958 - 44032: 0x8DE1, - 46959 - 44032: 0x8DE2, - 46960 - 44032: 0xB6EF, - 46961 - 44032: 0xB6F0, - 46962 - 44032: 0x8DE3, - 46963 - 44032: 0xB6F1, - 46964 - 44032: 0x8DE4, - 46965 - 44032: 0xB6F2, - 46966 - 44032: 0x8DE5, - 46967 - 44032: 0x8DE6, - 46968 - 44032: 0x8DE7, - 46969 - 44032: 0x8DE8, - 46970 - 44032: 0x8DE9, - 46971 - 44032: 0x8DEA, - 46972 - 44032: 0xB6F3, - 46973 - 44032: 0xB6F4, - 46974 - 44032: 0x8DEB, - 46975 - 44032: 0x8DEC, - 46976 - 44032: 0xB6F5, - 46977 - 44032: 0x8DED, - 46978 - 44032: 0x8DEE, - 46979 - 44032: 0x8DEF, - 46980 - 44032: 0xB6F6, - 46981 - 44032: 0x8DF0, - 46982 - 44032: 0x8DF1, - 46983 - 44032: 0x8DF2, - 46984 - 44032: 0x8DF3, - 46985 - 44032: 0x8DF4, - 46986 - 44032: 0x8DF5, - 46987 - 44032: 0x8DF6, - 46988 - 44032: 0xB6F7, - 46989 - 44032: 0xB6F8, - 46990 - 44032: 0x8DF7, - 46991 - 44032: 0xB6F9, - 46992 - 44032: 0xB6FA, - 46993 - 44032: 0xB6FB, - 46994 - 44032: 0xB6FC, - 46995 - 44032: 0x8DF8, - 46996 - 44032: 0x8DF9, - 46997 - 44032: 0x8DFA, - 46998 - 44032: 0xB6FD, - 46999 - 44032: 0xB6FE, - 47000 - 44032: 0xB7A1, - 47001 - 44032: 0xB7A2, - 47002 - 44032: 0x8DFB, - 47003 - 44032: 0x8DFC, - 47004 - 44032: 0xB7A3, - 47005 - 44032: 0x8DFD, - 47006 - 44032: 0x8DFE, - 47007 - 44032: 0x8E41, - 47008 - 44032: 0xB7A4, - 47009 - 44032: 0x8E42, - 47010 - 44032: 0x8E43, - 47011 - 44032: 0x8E44, - 47012 - 44032: 0x8E45, - 47013 - 44032: 0x8E46, - 47014 - 44032: 0x8E47, - 47015 - 44032: 0x8E48, - 47016 - 44032: 0xB7A5, - 47017 - 44032: 0xB7A6, - 47018 - 44032: 0x8E49, - 47019 - 44032: 0xB7A7, - 47020 - 44032: 0xB7A8, - 47021 - 44032: 0xB7A9, - 47022 - 44032: 0x8E4A, - 47023 - 44032: 0x8E4B, - 47024 - 44032: 0x8E4C, - 47025 - 44032: 0x8E4D, - 47026 - 44032: 0x8E4E, - 47027 - 44032: 0x8E4F, - 47028 - 44032: 0xB7AA, - 47029 - 44032: 0xB7AB, - 47030 - 44032: 0x8E50, - 47031 - 44032: 0x8E51, - 47032 - 44032: 0xB7AC, - 47033 - 44032: 0x8E52, - 47034 - 44032: 0x8E53, - 47035 - 44032: 0x8E54, - 47036 - 44032: 0x8E55, - 47037 - 44032: 0x8E56, - 47038 - 44032: 0x8E57, - 47039 - 44032: 0x8E58, - 47040 - 44032: 0x8E59, - 47041 - 44032: 0x8E5A, - 47042 - 44032: 0x8E61, - 47043 - 44032: 0x8E62, - 47044 - 44032: 0x8E63, - 47045 - 44032: 0x8E64, - 47046 - 44032: 0x8E65, - 47047 - 44032: 0xB7AD, - 47048 - 44032: 0x8E66, - 47049 - 44032: 0xB7AE, - 47050 - 44032: 0x8E67, - 47051 - 44032: 0x8E68, - 47052 - 44032: 0x8E69, - 47053 - 44032: 0x8E6A, - 47054 - 44032: 0x8E6B, - 47055 - 44032: 0x8E6C, - 47056 - 44032: 0x8E6D, - 47057 - 44032: 0x8E6E, - 47058 - 44032: 0x8E6F, - 47059 - 44032: 0x8E70, - 47060 - 44032: 0x8E71, - 47061 - 44032: 0x8E72, - 47062 - 44032: 0x8E73, - 47063 - 44032: 0x8E74, - 47064 - 44032: 0x8E75, - 47065 - 44032: 0x8E76, - 47066 - 44032: 0x8E77, - 47067 - 44032: 0x8E78, - 47068 - 44032: 0x8E79, - 47069 - 44032: 0x8E7A, - 47070 - 44032: 0x8E81, - 47071 - 44032: 0x8E82, - 47072 - 44032: 0x8E83, - 47073 - 44032: 0x8E84, - 47074 - 44032: 0x8E85, - 47075 - 44032: 0x8E86, - 47076 - 44032: 0x8E87, - 47077 - 44032: 0x8E88, - 47078 - 44032: 0x8E89, - 47079 - 44032: 0x8E8A, - 47080 - 44032: 0x8E8B, - 47081 - 44032: 0x8E8C, - 47082 - 44032: 0x8E8D, - 47083 - 44032: 0x8E8E, - 47084 - 44032: 0xB7AF, - 47085 - 44032: 0xB7B0, - 47086 - 44032: 0x8E8F, - 47087 - 44032: 0x8E90, - 47088 - 44032: 0xB7B1, - 47089 - 44032: 0x8E91, - 47090 - 44032: 0x8E92, - 47091 - 44032: 0x8E93, - 47092 - 44032: 0xB7B2, - 47093 - 44032: 0x8E94, - 47094 - 44032: 0x8E95, - 47095 - 44032: 0x8E96, - 47096 - 44032: 0x8E97, - 47097 - 44032: 0x8E98, - 47098 - 44032: 0x8E99, - 47099 - 44032: 0x8E9A, - 47100 - 44032: 0xB7B3, - 47101 - 44032: 0xB7B4, - 47102 - 44032: 0x8E9B, - 47103 - 44032: 0xB7B5, - 47104 - 44032: 0xB7B6, - 47105 - 44032: 0xB7B7, - 47106 - 44032: 0x8E9C, - 47107 - 44032: 0x8E9D, - 47108 - 44032: 0x8E9E, - 47109 - 44032: 0x8E9F, - 47110 - 44032: 0x8EA0, - 47111 - 44032: 0xB7B8, - 47112 - 44032: 0xB7B9, - 47113 - 44032: 0xB7BA, - 47114 - 44032: 0x8EA1, - 47115 - 44032: 0x8EA2, - 47116 - 44032: 0xB7BB, - 47117 - 44032: 0x8EA3, - 47118 - 44032: 0x8EA4, - 47119 - 44032: 0x8EA5, - 47120 - 44032: 0xB7BC, - 47121 - 44032: 0x8EA6, - 47122 - 44032: 0x8EA7, - 47123 - 44032: 0x8EA8, - 47124 - 44032: 0x8EA9, - 47125 - 44032: 0x8EAA, - 47126 - 44032: 0x8EAB, - 47127 - 44032: 0x8EAC, - 47128 - 44032: 0xB7BD, - 47129 - 44032: 0xB7BE, - 47130 - 44032: 0x8EAD, - 47131 - 44032: 0xB7BF, - 47132 - 44032: 0x8EAE, - 47133 - 44032: 0xB7C0, - 47134 - 44032: 0x8EAF, - 47135 - 44032: 0x8EB0, - 47136 - 44032: 0x8EB1, - 47137 - 44032: 0x8EB2, - 47138 - 44032: 0x8EB3, - 47139 - 44032: 0x8EB4, - 47140 - 44032: 0xB7C1, - 47141 - 44032: 0xB7C2, - 47142 - 44032: 0x8EB5, - 47143 - 44032: 0x8EB6, - 47144 - 44032: 0xB7C3, - 47145 - 44032: 0x8EB7, - 47146 - 44032: 0x8EB8, - 47147 - 44032: 0x8EB9, - 47148 - 44032: 0xB7C4, - 47149 - 44032: 0x8EBA, - 47150 - 44032: 0x8EBB, - 47151 - 44032: 0x8EBC, - 47152 - 44032: 0x8EBD, - 47153 - 44032: 0x8EBE, - 47154 - 44032: 0x8EBF, - 47155 - 44032: 0x8EC0, - 47156 - 44032: 0xB7C5, - 47157 - 44032: 0xB7C6, - 47158 - 44032: 0x8EC1, - 47159 - 44032: 0xB7C7, - 47160 - 44032: 0xB7C8, - 47161 - 44032: 0xB7C9, - 47162 - 44032: 0x8EC2, - 47163 - 44032: 0x8EC3, - 47164 - 44032: 0x8EC4, - 47165 - 44032: 0x8EC5, - 47166 - 44032: 0x8EC6, - 47167 - 44032: 0x8EC7, - 47168 - 44032: 0xB7CA, - 47169 - 44032: 0x8EC8, - 47170 - 44032: 0x8EC9, - 47171 - 44032: 0x8ECA, - 47172 - 44032: 0xB7CB, - 47173 - 44032: 0x8ECB, - 47174 - 44032: 0x8ECC, - 47175 - 44032: 0x8ECD, - 47176 - 44032: 0x8ECE, - 47177 - 44032: 0x8ECF, - 47178 - 44032: 0x8ED0, - 47179 - 44032: 0x8ED1, - 47180 - 44032: 0x8ED2, - 47181 - 44032: 0x8ED3, - 47182 - 44032: 0x8ED4, - 47183 - 44032: 0x8ED5, - 47184 - 44032: 0x8ED6, - 47185 - 44032: 0xB7CC, - 47186 - 44032: 0x8ED7, - 47187 - 44032: 0xB7CD, - 47188 - 44032: 0x8ED8, - 47189 - 44032: 0x8ED9, - 47190 - 44032: 0x8EDA, - 47191 - 44032: 0x8EDB, - 47192 - 44032: 0x8EDC, - 47193 - 44032: 0x8EDD, - 47194 - 44032: 0x8EDE, - 47195 - 44032: 0x8EDF, - 47196 - 44032: 0xB7CE, - 47197 - 44032: 0xB7CF, - 47198 - 44032: 0x8EE0, - 47199 - 44032: 0x8EE1, - 47200 - 44032: 0xB7D0, - 47201 - 44032: 0x8EE2, - 47202 - 44032: 0x8EE3, - 47203 - 44032: 0x8EE4, - 47204 - 44032: 0xB7D1, - 47205 - 44032: 0x8EE5, - 47206 - 44032: 0x8EE6, - 47207 - 44032: 0x8EE7, - 47208 - 44032: 0x8EE8, - 47209 - 44032: 0x8EE9, - 47210 - 44032: 0x8EEA, - 47211 - 44032: 0x8EEB, - 47212 - 44032: 0xB7D2, - 47213 - 44032: 0xB7D3, - 47214 - 44032: 0x8EEC, - 47215 - 44032: 0xB7D4, - 47216 - 44032: 0x8EED, - 47217 - 44032: 0xB7D5, - 47218 - 44032: 0x8EEE, - 47219 - 44032: 0x8EEF, - 47220 - 44032: 0x8EF0, - 47221 - 44032: 0x8EF1, - 47222 - 44032: 0x8EF2, - 47223 - 44032: 0x8EF3, - 47224 - 44032: 0xB7D6, - 47225 - 44032: 0x8EF4, - 47226 - 44032: 0x8EF5, - 47227 - 44032: 0x8EF6, - 47228 - 44032: 0xB7D7, - 47229 - 44032: 0x8EF7, - 47230 - 44032: 0x8EF8, - 47231 - 44032: 0x8EF9, - 47232 - 44032: 0x8EFA, - 47233 - 44032: 0x8EFB, - 47234 - 44032: 0x8EFC, - 47235 - 44032: 0x8EFD, - 47236 - 44032: 0x8EFE, - 47237 - 44032: 0x8F41, - 47238 - 44032: 0x8F42, - 47239 - 44032: 0x8F43, - 47240 - 44032: 0x8F44, - 47241 - 44032: 0x8F45, - 47242 - 44032: 0x8F46, - 47243 - 44032: 0x8F47, - 47244 - 44032: 0x8F48, - 47245 - 44032: 0xB7D8, - 47246 - 44032: 0x8F49, - 47247 - 44032: 0x8F4A, - 47248 - 44032: 0x8F4B, - 47249 - 44032: 0x8F4C, - 47250 - 44032: 0x8F4D, - 47251 - 44032: 0x8F4E, - 47252 - 44032: 0x8F4F, - 47253 - 44032: 0x8F50, - 47254 - 44032: 0x8F51, - 47255 - 44032: 0x8F52, - 47256 - 44032: 0x8F53, - 47257 - 44032: 0x8F54, - 47258 - 44032: 0x8F55, - 47259 - 44032: 0x8F56, - 47260 - 44032: 0x8F57, - 47261 - 44032: 0x8F58, - 47262 - 44032: 0x8F59, - 47263 - 44032: 0x8F5A, - 47264 - 44032: 0x8F61, - 47265 - 44032: 0x8F62, - 47266 - 44032: 0x8F63, - 47267 - 44032: 0x8F64, - 47268 - 44032: 0x8F65, - 47269 - 44032: 0x8F66, - 47270 - 44032: 0x8F67, - 47271 - 44032: 0x8F68, - 47272 - 44032: 0xB7D9, - 47273 - 44032: 0x8F69, - 47274 - 44032: 0x8F6A, - 47275 - 44032: 0x8F6B, - 47276 - 44032: 0x8F6C, - 47277 - 44032: 0x8F6D, - 47278 - 44032: 0x8F6E, - 47279 - 44032: 0x8F6F, - 47280 - 44032: 0xB7DA, - 47281 - 44032: 0x8F70, - 47282 - 44032: 0x8F71, - 47283 - 44032: 0x8F72, - 47284 - 44032: 0xB7DB, - 47285 - 44032: 0x8F73, - 47286 - 44032: 0x8F74, - 47287 - 44032: 0x8F75, - 47288 - 44032: 0xB7DC, - 47289 - 44032: 0x8F76, - 47290 - 44032: 0x8F77, - 47291 - 44032: 0x8F78, - 47292 - 44032: 0x8F79, - 47293 - 44032: 0x8F7A, - 47294 - 44032: 0x8F81, - 47295 - 44032: 0x8F82, - 47296 - 44032: 0xB7DD, - 47297 - 44032: 0xB7DE, - 47298 - 44032: 0x8F83, - 47299 - 44032: 0xB7DF, - 47300 - 44032: 0x8F84, - 47301 - 44032: 0xB7E0, - 47302 - 44032: 0x8F85, - 47303 - 44032: 0x8F86, - 47304 - 44032: 0x8F87, - 47305 - 44032: 0x8F88, - 47306 - 44032: 0x8F89, - 47307 - 44032: 0x8F8A, - 47308 - 44032: 0xB7E1, - 47309 - 44032: 0x8F8B, - 47310 - 44032: 0x8F8C, - 47311 - 44032: 0x8F8D, - 47312 - 44032: 0xB7E2, - 47313 - 44032: 0x8F8E, - 47314 - 44032: 0x8F8F, - 47315 - 44032: 0x8F90, - 47316 - 44032: 0xB7E3, - 47317 - 44032: 0x8F91, - 47318 - 44032: 0x8F92, - 47319 - 44032: 0x8F93, - 47320 - 44032: 0x8F94, - 47321 - 44032: 0x8F95, - 47322 - 44032: 0x8F96, - 47323 - 44032: 0x8F97, - 47324 - 44032: 0x8F98, - 47325 - 44032: 0xB7E4, - 47326 - 44032: 0x8F99, - 47327 - 44032: 0xB7E5, - 47328 - 44032: 0x8F9A, - 47329 - 44032: 0xB7E6, - 47330 - 44032: 0x8F9B, - 47331 - 44032: 0x8F9C, - 47332 - 44032: 0x8F9D, - 47333 - 44032: 0x8F9E, - 47334 - 44032: 0x8F9F, - 47335 - 44032: 0x8FA0, - 47336 - 44032: 0xB7E7, - 47337 - 44032: 0xB7E8, - 47338 - 44032: 0x8FA1, - 47339 - 44032: 0x8FA2, - 47340 - 44032: 0xB7E9, - 47341 - 44032: 0x8FA3, - 47342 - 44032: 0x8FA4, - 47343 - 44032: 0x8FA5, - 47344 - 44032: 0xB7EA, - 47345 - 44032: 0x8FA6, - 47346 - 44032: 0x8FA7, - 47347 - 44032: 0x8FA8, - 47348 - 44032: 0x8FA9, - 47349 - 44032: 0x8FAA, - 47350 - 44032: 0x8FAB, - 47351 - 44032: 0x8FAC, - 47352 - 44032: 0xB7EB, - 47353 - 44032: 0xB7EC, - 47354 - 44032: 0x8FAD, - 47355 - 44032: 0xB7ED, - 47356 - 44032: 0x8FAE, - 47357 - 44032: 0xB7EE, - 47358 - 44032: 0x8FAF, - 47359 - 44032: 0x8FB0, - 47360 - 44032: 0x8FB1, - 47361 - 44032: 0x8FB2, - 47362 - 44032: 0x8FB3, - 47363 - 44032: 0x8FB4, - 47364 - 44032: 0xB7EF, - 47365 - 44032: 0x8FB5, - 47366 - 44032: 0x8FB6, - 47367 - 44032: 0x8FB7, - 47368 - 44032: 0x8FB8, - 47369 - 44032: 0x8FB9, - 47370 - 44032: 0x8FBA, - 47371 - 44032: 0x8FBB, - 47372 - 44032: 0x8FBC, - 47373 - 44032: 0x8FBD, - 47374 - 44032: 0x8FBE, - 47375 - 44032: 0x8FBF, - 47376 - 44032: 0x8FC0, - 47377 - 44032: 0x8FC1, - 47378 - 44032: 0x8FC2, - 47379 - 44032: 0x8FC3, - 47380 - 44032: 0x8FC4, - 47381 - 44032: 0x8FC5, - 47382 - 44032: 0x8FC6, - 47383 - 44032: 0x8FC7, - 47384 - 44032: 0xB7F0, - 47385 - 44032: 0x8FC8, - 47386 - 44032: 0x8FC9, - 47387 - 44032: 0x8FCA, - 47388 - 44032: 0x8FCB, - 47389 - 44032: 0x8FCC, - 47390 - 44032: 0x8FCD, - 47391 - 44032: 0x8FCE, - 47392 - 44032: 0xB7F1, - 47393 - 44032: 0x8FCF, - 47394 - 44032: 0x8FD0, - 47395 - 44032: 0x8FD1, - 47396 - 44032: 0x8FD2, - 47397 - 44032: 0x8FD3, - 47398 - 44032: 0x8FD4, - 47399 - 44032: 0x8FD5, - 47400 - 44032: 0x8FD6, - 47401 - 44032: 0x8FD7, - 47402 - 44032: 0x8FD8, - 47403 - 44032: 0x8FD9, - 47404 - 44032: 0x8FDA, - 47405 - 44032: 0x8FDB, - 47406 - 44032: 0x8FDC, - 47407 - 44032: 0x8FDD, - 47408 - 44032: 0x8FDE, - 47409 - 44032: 0x8FDF, - 47410 - 44032: 0x8FE0, - 47411 - 44032: 0x8FE1, - 47412 - 44032: 0x8FE2, - 47413 - 44032: 0x8FE3, - 47414 - 44032: 0x8FE4, - 47415 - 44032: 0x8FE5, - 47416 - 44032: 0x8FE6, - 47417 - 44032: 0x8FE7, - 47418 - 44032: 0x8FE8, - 47419 - 44032: 0x8FE9, - 47420 - 44032: 0xB7F2, - 47421 - 44032: 0xB7F3, - 47422 - 44032: 0x8FEA, - 47423 - 44032: 0x8FEB, - 47424 - 44032: 0xB7F4, - 47425 - 44032: 0x8FEC, - 47426 - 44032: 0x8FED, - 47427 - 44032: 0x8FEE, - 47428 - 44032: 0xB7F5, - 47429 - 44032: 0x8FEF, - 47430 - 44032: 0x8FF0, - 47431 - 44032: 0x8FF1, - 47432 - 44032: 0x8FF2, - 47433 - 44032: 0x8FF3, - 47434 - 44032: 0x8FF4, - 47435 - 44032: 0x8FF5, - 47436 - 44032: 0xB7F6, - 47437 - 44032: 0x8FF6, - 47438 - 44032: 0x8FF7, - 47439 - 44032: 0xB7F7, - 47440 - 44032: 0x8FF8, - 47441 - 44032: 0xB7F8, - 47442 - 44032: 0x8FF9, - 47443 - 44032: 0x8FFA, - 47444 - 44032: 0x8FFB, - 47445 - 44032: 0x8FFC, - 47446 - 44032: 0x8FFD, - 47447 - 44032: 0x8FFE, - 47448 - 44032: 0xB7F9, - 47449 - 44032: 0xB7FA, - 47450 - 44032: 0x9041, - 47451 - 44032: 0x9042, - 47452 - 44032: 0xB7FB, - 47453 - 44032: 0x9043, - 47454 - 44032: 0x9044, - 47455 - 44032: 0x9045, - 47456 - 44032: 0xB7FC, - 47457 - 44032: 0x9046, - 47458 - 44032: 0x9047, - 47459 - 44032: 0x9048, - 47460 - 44032: 0x9049, - 47461 - 44032: 0x904A, - 47462 - 44032: 0x904B, - 47463 - 44032: 0x904C, - 47464 - 44032: 0xB7FD, - 47465 - 44032: 0xB7FE, - 47466 - 44032: 0x904D, - 47467 - 44032: 0xB8A1, - 47468 - 44032: 0x904E, - 47469 - 44032: 0xB8A2, - 47470 - 44032: 0x904F, - 47471 - 44032: 0x9050, - 47472 - 44032: 0x9051, - 47473 - 44032: 0x9052, - 47474 - 44032: 0x9053, - 47475 - 44032: 0x9054, - 47476 - 44032: 0xB8A3, - 47477 - 44032: 0xB8A4, - 47478 - 44032: 0x9055, - 47479 - 44032: 0x9056, - 47480 - 44032: 0xB8A5, - 47481 - 44032: 0x9057, - 47482 - 44032: 0x9058, - 47483 - 44032: 0x9059, - 47484 - 44032: 0xB8A6, - 47485 - 44032: 0x905A, - 47486 - 44032: 0x9061, - 47487 - 44032: 0x9062, - 47488 - 44032: 0x9063, - 47489 - 44032: 0x9064, - 47490 - 44032: 0x9065, - 47491 - 44032: 0x9066, - 47492 - 44032: 0xB8A7, - 47493 - 44032: 0xB8A8, - 47494 - 44032: 0x9067, - 47495 - 44032: 0xB8A9, - 47496 - 44032: 0x9068, - 47497 - 44032: 0xB8AA, - 47498 - 44032: 0xB8AB, - 47499 - 44032: 0x9069, - 47500 - 44032: 0x906A, - 47501 - 44032: 0xB8AC, - 47502 - 44032: 0xB8AD, - 47503 - 44032: 0x906B, - 47504 - 44032: 0x906C, - 47505 - 44032: 0x906D, - 47506 - 44032: 0x906E, - 47507 - 44032: 0x906F, - 47508 - 44032: 0x9070, - 47509 - 44032: 0x9071, - 47510 - 44032: 0x9072, - 47511 - 44032: 0x9073, - 47512 - 44032: 0x9074, - 47513 - 44032: 0x9075, - 47514 - 44032: 0x9076, - 47515 - 44032: 0x9077, - 47516 - 44032: 0x9078, - 47517 - 44032: 0x9079, - 47518 - 44032: 0x907A, - 47519 - 44032: 0x9081, - 47520 - 44032: 0x9082, - 47521 - 44032: 0x9083, - 47522 - 44032: 0x9084, - 47523 - 44032: 0x9085, - 47524 - 44032: 0x9086, - 47525 - 44032: 0x9087, - 47526 - 44032: 0x9088, - 47527 - 44032: 0x9089, - 47528 - 44032: 0x908A, - 47529 - 44032: 0x908B, - 47530 - 44032: 0x908C, - 47531 - 44032: 0x908D, - 47532 - 44032: 0xB8AE, - 47533 - 44032: 0xB8AF, - 47534 - 44032: 0x908E, - 47535 - 44032: 0x908F, - 47536 - 44032: 0xB8B0, - 47537 - 44032: 0x9090, - 47538 - 44032: 0x9091, - 47539 - 44032: 0x9092, - 47540 - 44032: 0xB8B1, - 47541 - 44032: 0x9093, - 47542 - 44032: 0x9094, - 47543 - 44032: 0x9095, - 47544 - 44032: 0x9096, - 47545 - 44032: 0x9097, - 47546 - 44032: 0x9098, - 47547 - 44032: 0x9099, - 47548 - 44032: 0xB8B2, - 47549 - 44032: 0xB8B3, - 47550 - 44032: 0x909A, - 47551 - 44032: 0xB8B4, - 47552 - 44032: 0x909B, - 47553 - 44032: 0xB8B5, - 47554 - 44032: 0x909C, - 47555 - 44032: 0x909D, - 47556 - 44032: 0x909E, - 47557 - 44032: 0x909F, - 47558 - 44032: 0x90A0, - 47559 - 44032: 0x90A1, - 47560 - 44032: 0xB8B6, - 47561 - 44032: 0xB8B7, - 47562 - 44032: 0x90A2, - 47563 - 44032: 0x90A3, - 47564 - 44032: 0xB8B8, - 47565 - 44032: 0x90A4, - 47566 - 44032: 0xB8B9, - 47567 - 44032: 0xB8BA, - 47568 - 44032: 0xB8BB, - 47569 - 44032: 0xB8BC, - 47570 - 44032: 0xB8BD, - 47571 - 44032: 0x90A5, - 47572 - 44032: 0x90A6, - 47573 - 44032: 0x90A7, - 47574 - 44032: 0x90A8, - 47575 - 44032: 0x90A9, - 47576 - 44032: 0xB8BE, - 47577 - 44032: 0xB8BF, - 47578 - 44032: 0x90AA, - 47579 - 44032: 0xB8C0, - 47580 - 44032: 0x90AB, - 47581 - 44032: 0xB8C1, - 47582 - 44032: 0xB8C2, - 47583 - 44032: 0x90AC, - 47584 - 44032: 0x90AD, - 47585 - 44032: 0xB8C3, - 47586 - 44032: 0x90AE, - 47587 - 44032: 0xB8C4, - 47588 - 44032: 0xB8C5, - 47589 - 44032: 0xB8C6, - 47590 - 44032: 0x90AF, - 47591 - 44032: 0x90B0, - 47592 - 44032: 0xB8C7, - 47593 - 44032: 0x90B1, - 47594 - 44032: 0x90B2, - 47595 - 44032: 0x90B3, - 47596 - 44032: 0xB8C8, - 47597 - 44032: 0x90B4, - 47598 - 44032: 0x90B5, - 47599 - 44032: 0x90B6, - 47600 - 44032: 0x90B7, - 47601 - 44032: 0x90B8, - 47602 - 44032: 0x90B9, - 47603 - 44032: 0x90BA, - 47604 - 44032: 0xB8C9, - 47605 - 44032: 0xB8CA, - 47606 - 44032: 0x90BB, - 47607 - 44032: 0xB8CB, - 47608 - 44032: 0xB8CC, - 47609 - 44032: 0xB8CD, - 47610 - 44032: 0xB8CE, - 47611 - 44032: 0x90BC, - 47612 - 44032: 0x90BD, - 47613 - 44032: 0x90BE, - 47614 - 44032: 0x90BF, - 47615 - 44032: 0x90C0, - 47616 - 44032: 0xB8CF, - 47617 - 44032: 0xB8D0, - 47618 - 44032: 0x90C1, - 47619 - 44032: 0x90C2, - 47620 - 44032: 0x90C3, - 47621 - 44032: 0x90C4, - 47622 - 44032: 0x90C5, - 47623 - 44032: 0x90C6, - 47624 - 44032: 0xB8D1, - 47625 - 44032: 0x90C7, - 47626 - 44032: 0x90C8, - 47627 - 44032: 0x90C9, - 47628 - 44032: 0x90CA, - 47629 - 44032: 0x90CB, - 47630 - 44032: 0x90CC, - 47631 - 44032: 0x90CD, - 47632 - 44032: 0x90CE, - 47633 - 44032: 0x90CF, - 47634 - 44032: 0x90D0, - 47635 - 44032: 0x90D1, - 47636 - 44032: 0x90D2, - 47637 - 44032: 0xB8D2, - 47638 - 44032: 0x90D3, - 47639 - 44032: 0x90D4, - 47640 - 44032: 0x90D5, - 47641 - 44032: 0x90D6, - 47642 - 44032: 0x90D7, - 47643 - 44032: 0x90D8, - 47644 - 44032: 0x90D9, - 47645 - 44032: 0x90DA, - 47646 - 44032: 0x90DB, - 47647 - 44032: 0x90DC, - 47648 - 44032: 0x90DD, - 47649 - 44032: 0x90DE, - 47650 - 44032: 0x90DF, - 47651 - 44032: 0x90E0, - 47652 - 44032: 0x90E1, - 47653 - 44032: 0x90E2, - 47654 - 44032: 0x90E3, - 47655 - 44032: 0x90E4, - 47656 - 44032: 0x90E5, - 47657 - 44032: 0x90E6, - 47658 - 44032: 0x90E7, - 47659 - 44032: 0x90E8, - 47660 - 44032: 0x90E9, - 47661 - 44032: 0x90EA, - 47662 - 44032: 0x90EB, - 47663 - 44032: 0x90EC, - 47664 - 44032: 0x90ED, - 47665 - 44032: 0x90EE, - 47666 - 44032: 0x90EF, - 47667 - 44032: 0x90F0, - 47668 - 44032: 0x90F1, - 47669 - 44032: 0x90F2, - 47670 - 44032: 0x90F3, - 47671 - 44032: 0x90F4, - 47672 - 44032: 0xB8D3, - 47673 - 44032: 0xB8D4, - 47674 - 44032: 0x90F5, - 47675 - 44032: 0x90F6, - 47676 - 44032: 0xB8D5, - 47677 - 44032: 0x90F7, - 47678 - 44032: 0x90F8, - 47679 - 44032: 0x90F9, - 47680 - 44032: 0xB8D6, - 47681 - 44032: 0x90FA, - 47682 - 44032: 0xB8D7, - 47683 - 44032: 0x90FB, - 47684 - 44032: 0x90FC, - 47685 - 44032: 0x90FD, - 47686 - 44032: 0x90FE, - 47687 - 44032: 0x9141, - 47688 - 44032: 0xB8D8, - 47689 - 44032: 0xB8D9, - 47690 - 44032: 0x9142, - 47691 - 44032: 0xB8DA, - 47692 - 44032: 0x9143, - 47693 - 44032: 0xB8DB, - 47694 - 44032: 0xB8DC, - 47695 - 44032: 0x9144, - 47696 - 44032: 0x9145, - 47697 - 44032: 0x9146, - 47698 - 44032: 0x9147, - 47699 - 44032: 0xB8DD, - 47700 - 44032: 0xB8DE, - 47701 - 44032: 0xB8DF, - 47702 - 44032: 0x9148, - 47703 - 44032: 0x9149, - 47704 - 44032: 0xB8E0, - 47705 - 44032: 0x914A, - 47706 - 44032: 0x914B, - 47707 - 44032: 0x914C, - 47708 - 44032: 0xB8E1, - 47709 - 44032: 0x914D, - 47710 - 44032: 0x914E, - 47711 - 44032: 0x914F, - 47712 - 44032: 0x9150, - 47713 - 44032: 0x9151, - 47714 - 44032: 0x9152, - 47715 - 44032: 0x9153, - 47716 - 44032: 0xB8E2, - 47717 - 44032: 0xB8E3, - 47718 - 44032: 0x9154, - 47719 - 44032: 0xB8E4, - 47720 - 44032: 0xB8E5, - 47721 - 44032: 0xB8E6, - 47722 - 44032: 0x9155, - 47723 - 44032: 0x9156, - 47724 - 44032: 0x9157, - 47725 - 44032: 0x9158, - 47726 - 44032: 0x9159, - 47727 - 44032: 0x915A, - 47728 - 44032: 0xB8E7, - 47729 - 44032: 0xB8E8, - 47730 - 44032: 0x9161, - 47731 - 44032: 0x9162, - 47732 - 44032: 0xB8E9, - 47733 - 44032: 0x9163, - 47734 - 44032: 0x9164, - 47735 - 44032: 0x9165, - 47736 - 44032: 0xB8EA, - 47737 - 44032: 0x9166, - 47738 - 44032: 0x9167, - 47739 - 44032: 0x9168, - 47740 - 44032: 0x9169, - 47741 - 44032: 0x916A, - 47742 - 44032: 0x916B, - 47743 - 44032: 0x916C, - 47744 - 44032: 0x916D, - 47745 - 44032: 0x916E, - 47746 - 44032: 0x916F, - 47747 - 44032: 0xB8EB, - 47748 - 44032: 0xB8EC, - 47749 - 44032: 0xB8ED, - 47750 - 44032: 0x9170, - 47751 - 44032: 0xB8EE, - 47752 - 44032: 0x9171, - 47753 - 44032: 0x9172, - 47754 - 44032: 0x9173, - 47755 - 44032: 0x9174, - 47756 - 44032: 0xB8EF, - 47757 - 44032: 0x9175, - 47758 - 44032: 0x9176, - 47759 - 44032: 0x9177, - 47760 - 44032: 0x9178, - 47761 - 44032: 0x9179, - 47762 - 44032: 0x917A, - 47763 - 44032: 0x9181, - 47764 - 44032: 0x9182, - 47765 - 44032: 0x9183, - 47766 - 44032: 0x9184, - 47767 - 44032: 0x9185, - 47768 - 44032: 0x9186, - 47769 - 44032: 0x9187, - 47770 - 44032: 0x9188, - 47771 - 44032: 0x9189, - 47772 - 44032: 0x918A, - 47773 - 44032: 0x918B, - 47774 - 44032: 0x918C, - 47775 - 44032: 0x918D, - 47776 - 44032: 0x918E, - 47777 - 44032: 0x918F, - 47778 - 44032: 0x9190, - 47779 - 44032: 0x9191, - 47780 - 44032: 0x9192, - 47781 - 44032: 0x9193, - 47782 - 44032: 0x9194, - 47783 - 44032: 0x9195, - 47784 - 44032: 0xB8F0, - 47785 - 44032: 0xB8F1, - 47786 - 44032: 0x9196, - 47787 - 44032: 0xB8F2, - 47788 - 44032: 0xB8F3, - 47789 - 44032: 0x9197, - 47790 - 44032: 0x9198, - 47791 - 44032: 0x9199, - 47792 - 44032: 0xB8F4, - 47793 - 44032: 0x919A, - 47794 - 44032: 0xB8F5, - 47795 - 44032: 0x919B, - 47796 - 44032: 0x919C, - 47797 - 44032: 0x919D, - 47798 - 44032: 0x919E, - 47799 - 44032: 0x919F, - 47800 - 44032: 0xB8F6, - 47801 - 44032: 0xB8F7, - 47802 - 44032: 0x91A0, - 47803 - 44032: 0xB8F8, - 47804 - 44032: 0x91A1, - 47805 - 44032: 0xB8F9, - 47806 - 44032: 0x91A2, - 47807 - 44032: 0x91A3, - 47808 - 44032: 0x91A4, - 47809 - 44032: 0x91A5, - 47810 - 44032: 0x91A6, - 47811 - 44032: 0x91A7, - 47812 - 44032: 0xB8FA, - 47813 - 44032: 0x91A8, - 47814 - 44032: 0x91A9, - 47815 - 44032: 0x91AA, - 47816 - 44032: 0xB8FB, - 47817 - 44032: 0x91AB, - 47818 - 44032: 0x91AC, - 47819 - 44032: 0x91AD, - 47820 - 44032: 0x91AE, - 47821 - 44032: 0x91AF, - 47822 - 44032: 0x91B0, - 47823 - 44032: 0x91B1, - 47824 - 44032: 0x91B2, - 47825 - 44032: 0x91B3, - 47826 - 44032: 0x91B4, - 47827 - 44032: 0x91B5, - 47828 - 44032: 0x91B6, - 47829 - 44032: 0x91B7, - 47830 - 44032: 0x91B8, - 47831 - 44032: 0x91B9, - 47832 - 44032: 0xB8FC, - 47833 - 44032: 0xB8FD, - 47834 - 44032: 0x91BA, - 47835 - 44032: 0x91BB, - 47836 - 44032: 0x91BC, - 47837 - 44032: 0x91BD, - 47838 - 44032: 0x91BE, - 47839 - 44032: 0x91BF, - 47840 - 44032: 0x91C0, - 47841 - 44032: 0x91C1, - 47842 - 44032: 0x91C2, - 47843 - 44032: 0x91C3, - 47844 - 44032: 0x91C4, - 47845 - 44032: 0x91C5, - 47846 - 44032: 0x91C6, - 47847 - 44032: 0x91C7, - 47848 - 44032: 0x91C8, - 47849 - 44032: 0x91C9, - 47850 - 44032: 0x91CA, - 47851 - 44032: 0x91CB, - 47852 - 44032: 0x91CC, - 47853 - 44032: 0x91CD, - 47854 - 44032: 0x91CE, - 47855 - 44032: 0x91CF, - 47856 - 44032: 0x91D0, - 47857 - 44032: 0x91D1, - 47858 - 44032: 0x91D2, - 47859 - 44032: 0x91D3, - 47860 - 44032: 0x91D4, - 47861 - 44032: 0x91D5, - 47862 - 44032: 0x91D6, - 47863 - 44032: 0x91D7, - 47864 - 44032: 0x91D8, - 47865 - 44032: 0x91D9, - 47866 - 44032: 0x91DA, - 47867 - 44032: 0x91DB, - 47868 - 44032: 0xB8FE, - 47869 - 44032: 0x91DC, - 47870 - 44032: 0x91DD, - 47871 - 44032: 0x91DE, - 47872 - 44032: 0xB9A1, - 47873 - 44032: 0x91DF, - 47874 - 44032: 0x91E0, - 47875 - 44032: 0x91E1, - 47876 - 44032: 0xB9A2, - 47877 - 44032: 0x91E2, - 47878 - 44032: 0x91E3, - 47879 - 44032: 0x91E4, - 47880 - 44032: 0x91E5, - 47881 - 44032: 0x91E6, - 47882 - 44032: 0x91E7, - 47883 - 44032: 0x91E8, - 47884 - 44032: 0x91E9, - 47885 - 44032: 0xB9A3, - 47886 - 44032: 0x91EA, - 47887 - 44032: 0xB9A4, - 47888 - 44032: 0x91EB, - 47889 - 44032: 0xB9A5, - 47890 - 44032: 0x91EC, - 47891 - 44032: 0x91ED, - 47892 - 44032: 0x91EE, - 47893 - 44032: 0x91EF, - 47894 - 44032: 0x91F0, - 47895 - 44032: 0x91F1, - 47896 - 44032: 0xB9A6, - 47897 - 44032: 0x91F2, - 47898 - 44032: 0x91F3, - 47899 - 44032: 0x91F4, - 47900 - 44032: 0xB9A7, - 47901 - 44032: 0x91F5, - 47902 - 44032: 0x91F6, - 47903 - 44032: 0x91F7, - 47904 - 44032: 0xB9A8, - 47905 - 44032: 0x91F8, - 47906 - 44032: 0x91F9, - 47907 - 44032: 0x91FA, - 47908 - 44032: 0x91FB, - 47909 - 44032: 0x91FC, - 47910 - 44032: 0x91FD, - 47911 - 44032: 0x91FE, - 47912 - 44032: 0x9241, - 47913 - 44032: 0xB9A9, - 47914 - 44032: 0x9242, - 47915 - 44032: 0xB9AA, - 47916 - 44032: 0x9243, - 47917 - 44032: 0x9244, - 47918 - 44032: 0x9245, - 47919 - 44032: 0x9246, - 47920 - 44032: 0x9247, - 47921 - 44032: 0x9248, - 47922 - 44032: 0x9249, - 47923 - 44032: 0x924A, - 47924 - 44032: 0xB9AB, - 47925 - 44032: 0xB9AC, - 47926 - 44032: 0xB9AD, - 47927 - 44032: 0x924B, - 47928 - 44032: 0xB9AE, - 47929 - 44032: 0x924C, - 47930 - 44032: 0x924D, - 47931 - 44032: 0xB9AF, - 47932 - 44032: 0xB9B0, - 47933 - 44032: 0xB9B1, - 47934 - 44032: 0xB9B2, - 47935 - 44032: 0x924E, - 47936 - 44032: 0x924F, - 47937 - 44032: 0x9250, - 47938 - 44032: 0x9251, - 47939 - 44032: 0x9252, - 47940 - 44032: 0xB9B3, - 47941 - 44032: 0xB9B4, - 47942 - 44032: 0x9253, - 47943 - 44032: 0xB9B5, - 47944 - 44032: 0x9254, - 47945 - 44032: 0xB9B6, - 47946 - 44032: 0x9255, - 47947 - 44032: 0x9256, - 47948 - 44032: 0x9257, - 47949 - 44032: 0xB9B7, - 47950 - 44032: 0x9258, - 47951 - 44032: 0xB9B8, - 47952 - 44032: 0xB9B9, - 47953 - 44032: 0x9259, - 47954 - 44032: 0x925A, - 47955 - 44032: 0x9261, - 47956 - 44032: 0xB9BA, - 47957 - 44032: 0x9262, - 47958 - 44032: 0x9263, - 47959 - 44032: 0x9264, - 47960 - 44032: 0xB9BB, - 47961 - 44032: 0x9265, - 47962 - 44032: 0x9266, - 47963 - 44032: 0x9267, - 47964 - 44032: 0x9268, - 47965 - 44032: 0x9269, - 47966 - 44032: 0x926A, - 47967 - 44032: 0x926B, - 47968 - 44032: 0x926C, - 47969 - 44032: 0xB9BC, - 47970 - 44032: 0x926D, - 47971 - 44032: 0xB9BD, - 47972 - 44032: 0x926E, - 47973 - 44032: 0x926F, - 47974 - 44032: 0x9270, - 47975 - 44032: 0x9271, - 47976 - 44032: 0x9272, - 47977 - 44032: 0x9273, - 47978 - 44032: 0x9274, - 47979 - 44032: 0x9275, - 47980 - 44032: 0xB9BE, - 47981 - 44032: 0x9276, - 47982 - 44032: 0x9277, - 47983 - 44032: 0x9278, - 47984 - 44032: 0x9279, - 47985 - 44032: 0x927A, - 47986 - 44032: 0x9281, - 47987 - 44032: 0x9282, - 47988 - 44032: 0x9283, - 47989 - 44032: 0x9284, - 47990 - 44032: 0x9285, - 47991 - 44032: 0x9286, - 47992 - 44032: 0x9287, - 47993 - 44032: 0x9288, - 47994 - 44032: 0x9289, - 47995 - 44032: 0x928A, - 47996 - 44032: 0x928B, - 47997 - 44032: 0x928C, - 47998 - 44032: 0x928D, - 47999 - 44032: 0x928E, - 48000 - 44032: 0x928F, - 48001 - 44032: 0x9290, - 48002 - 44032: 0x9291, - 48003 - 44032: 0x9292, - 48004 - 44032: 0x9293, - 48005 - 44032: 0x9294, - 48006 - 44032: 0x9295, - 48007 - 44032: 0x9296, - 48008 - 44032: 0xB9BF, - 48009 - 44032: 0x9297, - 48010 - 44032: 0x9298, - 48011 - 44032: 0x9299, - 48012 - 44032: 0xB9C0, - 48013 - 44032: 0x929A, - 48014 - 44032: 0x929B, - 48015 - 44032: 0x929C, - 48016 - 44032: 0xB9C1, - 48017 - 44032: 0x929D, - 48018 - 44032: 0x929E, - 48019 - 44032: 0x929F, - 48020 - 44032: 0x92A0, - 48021 - 44032: 0x92A1, - 48022 - 44032: 0x92A2, - 48023 - 44032: 0x92A3, - 48024 - 44032: 0x92A4, - 48025 - 44032: 0x92A5, - 48026 - 44032: 0x92A6, - 48027 - 44032: 0x92A7, - 48028 - 44032: 0x92A8, - 48029 - 44032: 0x92A9, - 48030 - 44032: 0x92AA, - 48031 - 44032: 0x92AB, - 48032 - 44032: 0x92AC, - 48033 - 44032: 0x92AD, - 48034 - 44032: 0x92AE, - 48035 - 44032: 0x92AF, - 48036 - 44032: 0xB9C2, - 48037 - 44032: 0x92B0, - 48038 - 44032: 0x92B1, - 48039 - 44032: 0x92B2, - 48040 - 44032: 0xB9C3, - 48041 - 44032: 0x92B3, - 48042 - 44032: 0x92B4, - 48043 - 44032: 0x92B5, - 48044 - 44032: 0xB9C4, - 48045 - 44032: 0x92B6, - 48046 - 44032: 0x92B7, - 48047 - 44032: 0x92B8, - 48048 - 44032: 0x92B9, - 48049 - 44032: 0x92BA, - 48050 - 44032: 0x92BB, - 48051 - 44032: 0x92BC, - 48052 - 44032: 0xB9C5, - 48053 - 44032: 0x92BD, - 48054 - 44032: 0x92BE, - 48055 - 44032: 0xB9C6, - 48056 - 44032: 0x92BF, - 48057 - 44032: 0x92C0, - 48058 - 44032: 0x92C1, - 48059 - 44032: 0x92C2, - 48060 - 44032: 0x92C3, - 48061 - 44032: 0x92C4, - 48062 - 44032: 0x92C5, - 48063 - 44032: 0x92C6, - 48064 - 44032: 0xB9C7, - 48065 - 44032: 0x92C7, - 48066 - 44032: 0x92C8, - 48067 - 44032: 0x92C9, - 48068 - 44032: 0xB9C8, - 48069 - 44032: 0x92CA, - 48070 - 44032: 0x92CB, - 48071 - 44032: 0x92CC, - 48072 - 44032: 0xB9C9, - 48073 - 44032: 0x92CD, - 48074 - 44032: 0x92CE, - 48075 - 44032: 0x92CF, - 48076 - 44032: 0x92D0, - 48077 - 44032: 0x92D1, - 48078 - 44032: 0x92D2, - 48079 - 44032: 0x92D3, - 48080 - 44032: 0xB9CA, - 48081 - 44032: 0x92D4, - 48082 - 44032: 0x92D5, - 48083 - 44032: 0xB9CB, - 48084 - 44032: 0x92D6, - 48085 - 44032: 0x92D7, - 48086 - 44032: 0x92D8, - 48087 - 44032: 0x92D9, - 48088 - 44032: 0x92DA, - 48089 - 44032: 0x92DB, - 48090 - 44032: 0x92DC, - 48091 - 44032: 0x92DD, - 48092 - 44032: 0x92DE, - 48093 - 44032: 0x92DF, - 48094 - 44032: 0x92E0, - 48095 - 44032: 0x92E1, - 48096 - 44032: 0x92E2, - 48097 - 44032: 0x92E3, - 48098 - 44032: 0x92E4, - 48099 - 44032: 0x92E5, - 48100 - 44032: 0x92E6, - 48101 - 44032: 0x92E7, - 48102 - 44032: 0x92E8, - 48103 - 44032: 0x92E9, - 48104 - 44032: 0x92EA, - 48105 - 44032: 0x92EB, - 48106 - 44032: 0x92EC, - 48107 - 44032: 0x92ED, - 48108 - 44032: 0x92EE, - 48109 - 44032: 0x92EF, - 48110 - 44032: 0x92F0, - 48111 - 44032: 0x92F1, - 48112 - 44032: 0x92F2, - 48113 - 44032: 0x92F3, - 48114 - 44032: 0x92F4, - 48115 - 44032: 0x92F5, - 48116 - 44032: 0x92F6, - 48117 - 44032: 0x92F7, - 48118 - 44032: 0x92F8, - 48119 - 44032: 0x92F9, - 48120 - 44032: 0xB9CC, - 48121 - 44032: 0xB9CD, - 48122 - 44032: 0x92FA, - 48123 - 44032: 0x92FB, - 48124 - 44032: 0xB9CE, - 48125 - 44032: 0x92FC, - 48126 - 44032: 0x92FD, - 48127 - 44032: 0xB9CF, - 48128 - 44032: 0xB9D0, - 48129 - 44032: 0x92FE, - 48130 - 44032: 0xB9D1, - 48131 - 44032: 0x9341, - 48132 - 44032: 0x9342, - 48133 - 44032: 0x9343, - 48134 - 44032: 0x9344, - 48135 - 44032: 0x9345, - 48136 - 44032: 0xB9D2, - 48137 - 44032: 0xB9D3, - 48138 - 44032: 0x9346, - 48139 - 44032: 0xB9D4, - 48140 - 44032: 0xB9D5, - 48141 - 44032: 0xB9D6, - 48142 - 44032: 0x9347, - 48143 - 44032: 0xB9D7, - 48144 - 44032: 0x9348, - 48145 - 44032: 0xB9D8, - 48146 - 44032: 0x9349, - 48147 - 44032: 0x934A, - 48148 - 44032: 0xB9D9, - 48149 - 44032: 0xB9DA, - 48150 - 44032: 0xB9DB, - 48151 - 44032: 0xB9DC, - 48152 - 44032: 0xB9DD, - 48153 - 44032: 0x934B, - 48154 - 44032: 0x934C, - 48155 - 44032: 0xB9DE, - 48156 - 44032: 0xB9DF, - 48157 - 44032: 0xB9E0, - 48158 - 44032: 0xB9E1, - 48159 - 44032: 0xB9E2, - 48160 - 44032: 0x934D, - 48161 - 44032: 0x934E, - 48162 - 44032: 0x934F, - 48163 - 44032: 0x9350, - 48164 - 44032: 0xB9E3, - 48165 - 44032: 0xB9E4, - 48166 - 44032: 0x9351, - 48167 - 44032: 0xB9E5, - 48168 - 44032: 0x9352, - 48169 - 44032: 0xB9E6, - 48170 - 44032: 0x9353, - 48171 - 44032: 0x9354, - 48172 - 44032: 0x9355, - 48173 - 44032: 0xB9E7, - 48174 - 44032: 0x9356, - 48175 - 44032: 0x9357, - 48176 - 44032: 0xB9E8, - 48177 - 44032: 0xB9E9, - 48178 - 44032: 0x9358, - 48179 - 44032: 0x9359, - 48180 - 44032: 0xB9EA, - 48181 - 44032: 0x935A, - 48182 - 44032: 0x9361, - 48183 - 44032: 0x9362, - 48184 - 44032: 0xB9EB, - 48185 - 44032: 0x9363, - 48186 - 44032: 0x9364, - 48187 - 44032: 0x9365, - 48188 - 44032: 0x9366, - 48189 - 44032: 0x9367, - 48190 - 44032: 0x9368, - 48191 - 44032: 0x9369, - 48192 - 44032: 0xB9EC, - 48193 - 44032: 0xB9ED, - 48194 - 44032: 0x936A, - 48195 - 44032: 0xB9EE, - 48196 - 44032: 0xB9EF, - 48197 - 44032: 0xB9F0, - 48198 - 44032: 0x936B, - 48199 - 44032: 0x936C, - 48200 - 44032: 0x936D, - 48201 - 44032: 0xB9F1, - 48202 - 44032: 0x936E, - 48203 - 44032: 0x936F, - 48204 - 44032: 0xB9F2, - 48205 - 44032: 0xB9F3, - 48206 - 44032: 0x9370, - 48207 - 44032: 0x9371, - 48208 - 44032: 0xB9F4, - 48209 - 44032: 0x9372, - 48210 - 44032: 0x9373, - 48211 - 44032: 0x9374, - 48212 - 44032: 0x9375, - 48213 - 44032: 0x9376, - 48214 - 44032: 0x9377, - 48215 - 44032: 0x9378, - 48216 - 44032: 0x9379, - 48217 - 44032: 0x937A, - 48218 - 44032: 0x9381, - 48219 - 44032: 0x9382, - 48220 - 44032: 0x9383, - 48221 - 44032: 0xB9F5, - 48222 - 44032: 0x9384, - 48223 - 44032: 0x9385, - 48224 - 44032: 0x9386, - 48225 - 44032: 0x9387, - 48226 - 44032: 0x9388, - 48227 - 44032: 0x9389, - 48228 - 44032: 0x938A, - 48229 - 44032: 0x938B, - 48230 - 44032: 0x938C, - 48231 - 44032: 0x938D, - 48232 - 44032: 0x938E, - 48233 - 44032: 0x938F, - 48234 - 44032: 0x9390, - 48235 - 44032: 0x9391, - 48236 - 44032: 0x9392, - 48237 - 44032: 0x9393, - 48238 - 44032: 0x9394, - 48239 - 44032: 0x9395, - 48240 - 44032: 0x9396, - 48241 - 44032: 0x9397, - 48242 - 44032: 0x9398, - 48243 - 44032: 0x9399, - 48244 - 44032: 0x939A, - 48245 - 44032: 0x939B, - 48246 - 44032: 0x939C, - 48247 - 44032: 0x939D, - 48248 - 44032: 0x939E, - 48249 - 44032: 0x939F, - 48250 - 44032: 0x93A0, - 48251 - 44032: 0x93A1, - 48252 - 44032: 0x93A2, - 48253 - 44032: 0x93A3, - 48254 - 44032: 0x93A4, - 48255 - 44032: 0x93A5, - 48256 - 44032: 0x93A6, - 48257 - 44032: 0x93A7, - 48258 - 44032: 0x93A8, - 48259 - 44032: 0x93A9, - 48260 - 44032: 0xB9F6, - 48261 - 44032: 0xB9F7, - 48262 - 44032: 0x93AA, - 48263 - 44032: 0x93AB, - 48264 - 44032: 0xB9F8, - 48265 - 44032: 0x93AC, - 48266 - 44032: 0x93AD, - 48267 - 44032: 0xB9F9, - 48268 - 44032: 0xB9FA, - 48269 - 44032: 0x93AE, - 48270 - 44032: 0xB9FB, - 48271 - 44032: 0x93AF, - 48272 - 44032: 0x93B0, - 48273 - 44032: 0x93B1, - 48274 - 44032: 0x93B2, - 48275 - 44032: 0x93B3, - 48276 - 44032: 0xB9FC, - 48277 - 44032: 0xB9FD, - 48278 - 44032: 0x93B4, - 48279 - 44032: 0xB9FE, - 48280 - 44032: 0x93B5, - 48281 - 44032: 0xBAA1, - 48282 - 44032: 0xBAA2, - 48283 - 44032: 0x93B6, - 48284 - 44032: 0x93B7, - 48285 - 44032: 0x93B8, - 48286 - 44032: 0x93B9, - 48287 - 44032: 0x93BA, - 48288 - 44032: 0xBAA3, - 48289 - 44032: 0xBAA4, - 48290 - 44032: 0x93BB, - 48291 - 44032: 0x93BC, - 48292 - 44032: 0xBAA5, - 48293 - 44032: 0x93BD, - 48294 - 44032: 0x93BE, - 48295 - 44032: 0xBAA6, - 48296 - 44032: 0xBAA7, - 48297 - 44032: 0x93BF, - 48298 - 44032: 0x93C0, - 48299 - 44032: 0x93C1, - 48300 - 44032: 0x93C2, - 48301 - 44032: 0x93C3, - 48302 - 44032: 0x93C4, - 48303 - 44032: 0x93C5, - 48304 - 44032: 0xBAA8, - 48305 - 44032: 0xBAA9, - 48306 - 44032: 0x93C6, - 48307 - 44032: 0xBAAA, - 48308 - 44032: 0xBAAB, - 48309 - 44032: 0xBAAC, - 48310 - 44032: 0x93C7, - 48311 - 44032: 0x93C8, - 48312 - 44032: 0x93C9, - 48313 - 44032: 0x93CA, - 48314 - 44032: 0x93CB, - 48315 - 44032: 0x93CC, - 48316 - 44032: 0xBAAD, - 48317 - 44032: 0xBAAE, - 48318 - 44032: 0x93CD, - 48319 - 44032: 0x93CE, - 48320 - 44032: 0xBAAF, - 48321 - 44032: 0x93CF, - 48322 - 44032: 0x93D0, - 48323 - 44032: 0x93D1, - 48324 - 44032: 0xBAB0, - 48325 - 44032: 0x93D2, - 48326 - 44032: 0x93D3, - 48327 - 44032: 0x93D4, - 48328 - 44032: 0x93D5, - 48329 - 44032: 0x93D6, - 48330 - 44032: 0x93D7, - 48331 - 44032: 0x93D8, - 48332 - 44032: 0x93D9, - 48333 - 44032: 0xBAB1, - 48334 - 44032: 0x93DA, - 48335 - 44032: 0xBAB2, - 48336 - 44032: 0xBAB3, - 48337 - 44032: 0xBAB4, - 48338 - 44032: 0x93DB, - 48339 - 44032: 0x93DC, - 48340 - 44032: 0x93DD, - 48341 - 44032: 0xBAB5, - 48342 - 44032: 0x93DE, - 48343 - 44032: 0x93DF, - 48344 - 44032: 0xBAB6, - 48345 - 44032: 0x93E0, - 48346 - 44032: 0x93E1, - 48347 - 44032: 0x93E2, - 48348 - 44032: 0xBAB7, - 48349 - 44032: 0x93E3, - 48350 - 44032: 0x93E4, - 48351 - 44032: 0x93E5, - 48352 - 44032: 0x93E6, - 48353 - 44032: 0x93E7, - 48354 - 44032: 0x93E8, - 48355 - 44032: 0x93E9, - 48356 - 44032: 0x93EA, - 48357 - 44032: 0x93EB, - 48358 - 44032: 0x93EC, - 48359 - 44032: 0x93ED, - 48360 - 44032: 0x93EE, - 48361 - 44032: 0x93EF, - 48362 - 44032: 0x93F0, - 48363 - 44032: 0x93F1, - 48364 - 44032: 0x93F2, - 48365 - 44032: 0x93F3, - 48366 - 44032: 0x93F4, - 48367 - 44032: 0x93F5, - 48368 - 44032: 0x93F6, - 48369 - 44032: 0x93F7, - 48370 - 44032: 0x93F8, - 48371 - 44032: 0x93F9, - 48372 - 44032: 0xBAB8, - 48373 - 44032: 0xBAB9, - 48374 - 44032: 0xBABA, - 48375 - 44032: 0x93FA, - 48376 - 44032: 0xBABB, - 48377 - 44032: 0x93FB, - 48378 - 44032: 0x93FC, - 48379 - 44032: 0x93FD, - 48380 - 44032: 0xBABC, - 48381 - 44032: 0x93FE, - 48382 - 44032: 0x9441, - 48383 - 44032: 0x9442, - 48384 - 44032: 0x9443, - 48385 - 44032: 0x9444, - 48386 - 44032: 0x9445, - 48387 - 44032: 0x9446, - 48388 - 44032: 0xBABD, - 48389 - 44032: 0xBABE, - 48390 - 44032: 0x9447, - 48391 - 44032: 0xBABF, - 48392 - 44032: 0x9448, - 48393 - 44032: 0xBAC0, - 48394 - 44032: 0x9449, - 48395 - 44032: 0x944A, - 48396 - 44032: 0x944B, - 48397 - 44032: 0x944C, - 48398 - 44032: 0x944D, - 48399 - 44032: 0x944E, - 48400 - 44032: 0xBAC1, - 48401 - 44032: 0x944F, - 48402 - 44032: 0x9450, - 48403 - 44032: 0x9451, - 48404 - 44032: 0xBAC2, - 48405 - 44032: 0x9452, - 48406 - 44032: 0x9453, - 48407 - 44032: 0x9454, - 48408 - 44032: 0x9455, - 48409 - 44032: 0x9456, - 48410 - 44032: 0x9457, - 48411 - 44032: 0x9458, - 48412 - 44032: 0x9459, - 48413 - 44032: 0x945A, - 48414 - 44032: 0x9461, - 48415 - 44032: 0x9462, - 48416 - 44032: 0x9463, - 48417 - 44032: 0x9464, - 48418 - 44032: 0x9465, - 48419 - 44032: 0x9466, - 48420 - 44032: 0xBAC3, - 48421 - 44032: 0x9467, - 48422 - 44032: 0x9468, - 48423 - 44032: 0x9469, - 48424 - 44032: 0x946A, - 48425 - 44032: 0x946B, - 48426 - 44032: 0x946C, - 48427 - 44032: 0x946D, - 48428 - 44032: 0xBAC4, - 48429 - 44032: 0x946E, - 48430 - 44032: 0x946F, - 48431 - 44032: 0x9470, - 48432 - 44032: 0x9471, - 48433 - 44032: 0x9472, - 48434 - 44032: 0x9473, - 48435 - 44032: 0x9474, - 48436 - 44032: 0x9475, - 48437 - 44032: 0x9476, - 48438 - 44032: 0x9477, - 48439 - 44032: 0x9478, - 48440 - 44032: 0x9479, - 48441 - 44032: 0x947A, - 48442 - 44032: 0x9481, - 48443 - 44032: 0x9482, - 48444 - 44032: 0x9483, - 48445 - 44032: 0x9484, - 48446 - 44032: 0x9485, - 48447 - 44032: 0x9486, - 48448 - 44032: 0xBAC5, - 48449 - 44032: 0x9487, - 48450 - 44032: 0x9488, - 48451 - 44032: 0x9489, - 48452 - 44032: 0x948A, - 48453 - 44032: 0x948B, - 48454 - 44032: 0x948C, - 48455 - 44032: 0x948D, - 48456 - 44032: 0xBAC6, - 48457 - 44032: 0xBAC7, - 48458 - 44032: 0x948E, - 48459 - 44032: 0x948F, - 48460 - 44032: 0xBAC8, - 48461 - 44032: 0x9490, - 48462 - 44032: 0x9491, - 48463 - 44032: 0x9492, - 48464 - 44032: 0xBAC9, - 48465 - 44032: 0x9493, - 48466 - 44032: 0x9494, - 48467 - 44032: 0x9495, - 48468 - 44032: 0x9496, - 48469 - 44032: 0x9497, - 48470 - 44032: 0x9498, - 48471 - 44032: 0x9499, - 48472 - 44032: 0xBACA, - 48473 - 44032: 0xBACB, - 48474 - 44032: 0x949A, - 48475 - 44032: 0x949B, - 48476 - 44032: 0x949C, - 48477 - 44032: 0x949D, - 48478 - 44032: 0x949E, - 48479 - 44032: 0x949F, - 48480 - 44032: 0x94A0, - 48481 - 44032: 0x94A1, - 48482 - 44032: 0x94A2, - 48483 - 44032: 0x94A3, - 48484 - 44032: 0xBACC, - 48485 - 44032: 0x94A4, - 48486 - 44032: 0x94A5, - 48487 - 44032: 0x94A6, - 48488 - 44032: 0xBACD, - 48489 - 44032: 0x94A7, - 48490 - 44032: 0x94A8, - 48491 - 44032: 0x94A9, - 48492 - 44032: 0x94AA, - 48493 - 44032: 0x94AB, - 48494 - 44032: 0x94AC, - 48495 - 44032: 0x94AD, - 48496 - 44032: 0x94AE, - 48497 - 44032: 0x94AF, - 48498 - 44032: 0x94B0, - 48499 - 44032: 0x94B1, - 48500 - 44032: 0x94B2, - 48501 - 44032: 0x94B3, - 48502 - 44032: 0x94B4, - 48503 - 44032: 0x94B5, - 48504 - 44032: 0x94B6, - 48505 - 44032: 0x94B7, - 48506 - 44032: 0x94B8, - 48507 - 44032: 0x94B9, - 48508 - 44032: 0x94BA, - 48509 - 44032: 0x94BB, - 48510 - 44032: 0x94BC, - 48511 - 44032: 0x94BD, - 48512 - 44032: 0xBACE, - 48513 - 44032: 0xBACF, - 48514 - 44032: 0x94BE, - 48515 - 44032: 0x94BF, - 48516 - 44032: 0xBAD0, - 48517 - 44032: 0x94C0, - 48518 - 44032: 0x94C1, - 48519 - 44032: 0xBAD1, - 48520 - 44032: 0xBAD2, - 48521 - 44032: 0xBAD3, - 48522 - 44032: 0xBAD4, - 48523 - 44032: 0x94C2, - 48524 - 44032: 0x94C3, - 48525 - 44032: 0x94C4, - 48526 - 44032: 0x94C5, - 48527 - 44032: 0x94C6, - 48528 - 44032: 0xBAD5, - 48529 - 44032: 0xBAD6, - 48530 - 44032: 0x94C7, - 48531 - 44032: 0xBAD7, - 48532 - 44032: 0x94C8, - 48533 - 44032: 0xBAD8, - 48534 - 44032: 0x94C9, - 48535 - 44032: 0x94CA, - 48536 - 44032: 0x94CB, - 48537 - 44032: 0xBAD9, - 48538 - 44032: 0xBADA, - 48539 - 44032: 0x94CC, - 48540 - 44032: 0xBADB, - 48541 - 44032: 0x94CD, - 48542 - 44032: 0x94CE, - 48543 - 44032: 0x94CF, - 48544 - 44032: 0x94D0, - 48545 - 44032: 0x94D1, - 48546 - 44032: 0x94D2, - 48547 - 44032: 0x94D3, - 48548 - 44032: 0xBADC, - 48549 - 44032: 0x94D4, - 48550 - 44032: 0x94D5, - 48551 - 44032: 0x94D6, - 48552 - 44032: 0x94D7, - 48553 - 44032: 0x94D8, - 48554 - 44032: 0x94D9, - 48555 - 44032: 0x94DA, - 48556 - 44032: 0x94DB, - 48557 - 44032: 0x94DC, - 48558 - 44032: 0x94DD, - 48559 - 44032: 0x94DE, - 48560 - 44032: 0xBADD, - 48561 - 44032: 0x94DF, - 48562 - 44032: 0x94E0, - 48563 - 44032: 0x94E1, - 48564 - 44032: 0x94E2, - 48565 - 44032: 0x94E3, - 48566 - 44032: 0x94E4, - 48567 - 44032: 0x94E5, - 48568 - 44032: 0xBADE, - 48569 - 44032: 0x94E6, - 48570 - 44032: 0x94E7, - 48571 - 44032: 0x94E8, - 48572 - 44032: 0x94E9, - 48573 - 44032: 0x94EA, - 48574 - 44032: 0x94EB, - 48575 - 44032: 0x94EC, - 48576 - 44032: 0x94ED, - 48577 - 44032: 0x94EE, - 48578 - 44032: 0x94EF, - 48579 - 44032: 0x94F0, - 48580 - 44032: 0x94F1, - 48581 - 44032: 0x94F2, - 48582 - 44032: 0x94F3, - 48583 - 44032: 0x94F4, - 48584 - 44032: 0x94F5, - 48585 - 44032: 0x94F6, - 48586 - 44032: 0x94F7, - 48587 - 44032: 0x94F8, - 48588 - 44032: 0x94F9, - 48589 - 44032: 0x94FA, - 48590 - 44032: 0x94FB, - 48591 - 44032: 0x94FC, - 48592 - 44032: 0x94FD, - 48593 - 44032: 0x94FE, - 48594 - 44032: 0x9541, - 48595 - 44032: 0x9542, - 48596 - 44032: 0xBADF, - 48597 - 44032: 0xBAE0, - 48598 - 44032: 0x9543, - 48599 - 44032: 0x9544, - 48600 - 44032: 0xBAE1, - 48601 - 44032: 0x9545, - 48602 - 44032: 0x9546, - 48603 - 44032: 0x9547, - 48604 - 44032: 0xBAE2, - 48605 - 44032: 0x9548, - 48606 - 44032: 0x9549, - 48607 - 44032: 0x954A, - 48608 - 44032: 0x954B, - 48609 - 44032: 0x954C, - 48610 - 44032: 0x954D, - 48611 - 44032: 0x954E, - 48612 - 44032: 0x954F, - 48613 - 44032: 0x9550, - 48614 - 44032: 0x9551, - 48615 - 44032: 0x9552, - 48616 - 44032: 0x9553, - 48617 - 44032: 0xBAE3, - 48618 - 44032: 0x9554, - 48619 - 44032: 0x9555, - 48620 - 44032: 0x9556, - 48621 - 44032: 0x9557, - 48622 - 44032: 0x9558, - 48623 - 44032: 0x9559, - 48624 - 44032: 0xBAE4, - 48625 - 44032: 0x955A, - 48626 - 44032: 0x9561, - 48627 - 44032: 0x9562, - 48628 - 44032: 0xBAE5, - 48629 - 44032: 0x9563, - 48630 - 44032: 0x9564, - 48631 - 44032: 0x9565, - 48632 - 44032: 0xBAE6, - 48633 - 44032: 0x9566, - 48634 - 44032: 0x9567, - 48635 - 44032: 0x9568, - 48636 - 44032: 0x9569, - 48637 - 44032: 0x956A, - 48638 - 44032: 0x956B, - 48639 - 44032: 0x956C, - 48640 - 44032: 0xBAE7, - 48641 - 44032: 0x956D, - 48642 - 44032: 0x956E, - 48643 - 44032: 0xBAE8, - 48644 - 44032: 0x956F, - 48645 - 44032: 0xBAE9, - 48646 - 44032: 0x9570, - 48647 - 44032: 0x9571, - 48648 - 44032: 0x9572, - 48649 - 44032: 0x9573, - 48650 - 44032: 0x9574, - 48651 - 44032: 0x9575, - 48652 - 44032: 0xBAEA, - 48653 - 44032: 0xBAEB, - 48654 - 44032: 0x9576, - 48655 - 44032: 0x9577, - 48656 - 44032: 0xBAEC, - 48657 - 44032: 0x9578, - 48658 - 44032: 0x9579, - 48659 - 44032: 0x957A, - 48660 - 44032: 0xBAED, - 48661 - 44032: 0x9581, - 48662 - 44032: 0x9582, - 48663 - 44032: 0x9583, - 48664 - 44032: 0x9584, - 48665 - 44032: 0x9585, - 48666 - 44032: 0x9586, - 48667 - 44032: 0x9587, - 48668 - 44032: 0xBAEE, - 48669 - 44032: 0xBAEF, - 48670 - 44032: 0x9588, - 48671 - 44032: 0xBAF0, - 48672 - 44032: 0x9589, - 48673 - 44032: 0x958A, - 48674 - 44032: 0x958B, - 48675 - 44032: 0x958C, - 48676 - 44032: 0x958D, - 48677 - 44032: 0x958E, - 48678 - 44032: 0x958F, - 48679 - 44032: 0x9590, - 48680 - 44032: 0x9591, - 48681 - 44032: 0x9592, - 48682 - 44032: 0x9593, - 48683 - 44032: 0x9594, - 48684 - 44032: 0x9595, - 48685 - 44032: 0x9596, - 48686 - 44032: 0x9597, - 48687 - 44032: 0x9598, - 48688 - 44032: 0x9599, - 48689 - 44032: 0x959A, - 48690 - 44032: 0x959B, - 48691 - 44032: 0x959C, - 48692 - 44032: 0x959D, - 48693 - 44032: 0x959E, - 48694 - 44032: 0x959F, - 48695 - 44032: 0x95A0, - 48696 - 44032: 0x95A1, - 48697 - 44032: 0x95A2, - 48698 - 44032: 0x95A3, - 48699 - 44032: 0x95A4, - 48700 - 44032: 0x95A5, - 48701 - 44032: 0x95A6, - 48702 - 44032: 0x95A7, - 48703 - 44032: 0x95A8, - 48704 - 44032: 0x95A9, - 48705 - 44032: 0x95AA, - 48706 - 44032: 0x95AB, - 48707 - 44032: 0x95AC, - 48708 - 44032: 0xBAF1, - 48709 - 44032: 0xBAF2, - 48710 - 44032: 0x95AD, - 48711 - 44032: 0x95AE, - 48712 - 44032: 0xBAF3, - 48713 - 44032: 0x95AF, - 48714 - 44032: 0x95B0, - 48715 - 44032: 0x95B1, - 48716 - 44032: 0xBAF4, - 48717 - 44032: 0x95B2, - 48718 - 44032: 0xBAF5, - 48719 - 44032: 0x95B3, - 48720 - 44032: 0x95B4, - 48721 - 44032: 0x95B5, - 48722 - 44032: 0x95B6, - 48723 - 44032: 0x95B7, - 48724 - 44032: 0xBAF6, - 48725 - 44032: 0xBAF7, - 48726 - 44032: 0x95B8, - 48727 - 44032: 0xBAF8, - 48728 - 44032: 0x95B9, - 48729 - 44032: 0xBAF9, - 48730 - 44032: 0xBAFA, - 48731 - 44032: 0xBAFB, - 48732 - 44032: 0x95BA, - 48733 - 44032: 0x95BB, - 48734 - 44032: 0x95BC, - 48735 - 44032: 0x95BD, - 48736 - 44032: 0xBAFC, - 48737 - 44032: 0xBAFD, - 48738 - 44032: 0x95BE, - 48739 - 44032: 0x95BF, - 48740 - 44032: 0xBAFE, - 48741 - 44032: 0x95C0, - 48742 - 44032: 0x95C1, - 48743 - 44032: 0x95C2, - 48744 - 44032: 0xBBA1, - 48745 - 44032: 0x95C3, - 48746 - 44032: 0xBBA2, - 48747 - 44032: 0x95C4, - 48748 - 44032: 0x95C5, - 48749 - 44032: 0x95C6, - 48750 - 44032: 0x95C7, - 48751 - 44032: 0x95C8, - 48752 - 44032: 0xBBA3, - 48753 - 44032: 0xBBA4, - 48754 - 44032: 0x95C9, - 48755 - 44032: 0xBBA5, - 48756 - 44032: 0xBBA6, - 48757 - 44032: 0xBBA7, - 48758 - 44032: 0x95CA, - 48759 - 44032: 0x95CB, - 48760 - 44032: 0x95CC, - 48761 - 44032: 0x95CD, - 48762 - 44032: 0x95CE, - 48763 - 44032: 0xBBA8, - 48764 - 44032: 0xBBA9, - 48765 - 44032: 0xBBAA, - 48766 - 44032: 0x95CF, - 48767 - 44032: 0x95D0, - 48768 - 44032: 0xBBAB, - 48769 - 44032: 0x95D1, - 48770 - 44032: 0x95D2, - 48771 - 44032: 0x95D3, - 48772 - 44032: 0xBBAC, - 48773 - 44032: 0x95D4, - 48774 - 44032: 0x95D5, - 48775 - 44032: 0x95D6, - 48776 - 44032: 0x95D7, - 48777 - 44032: 0x95D8, - 48778 - 44032: 0x95D9, - 48779 - 44032: 0x95DA, - 48780 - 44032: 0xBBAD, - 48781 - 44032: 0xBBAE, - 48782 - 44032: 0x95DB, - 48783 - 44032: 0xBBAF, - 48784 - 44032: 0xBBB0, - 48785 - 44032: 0xBBB1, - 48786 - 44032: 0x95DC, - 48787 - 44032: 0x95DD, - 48788 - 44032: 0x95DE, - 48789 - 44032: 0x95DF, - 48790 - 44032: 0x95E0, - 48791 - 44032: 0x95E1, - 48792 - 44032: 0xBBB2, - 48793 - 44032: 0xBBB3, - 48794 - 44032: 0x95E2, - 48795 - 44032: 0x95E3, - 48796 - 44032: 0x95E4, - 48797 - 44032: 0x95E5, - 48798 - 44032: 0x95E6, - 48799 - 44032: 0x95E7, - 48800 - 44032: 0x95E8, - 48801 - 44032: 0x95E9, - 48802 - 44032: 0x95EA, - 48803 - 44032: 0x95EB, - 48804 - 44032: 0x95EC, - 48805 - 44032: 0x95ED, - 48806 - 44032: 0x95EE, - 48807 - 44032: 0x95EF, - 48808 - 44032: 0xBBB4, - 48809 - 44032: 0x95F0, - 48810 - 44032: 0x95F1, - 48811 - 44032: 0x95F2, - 48812 - 44032: 0x95F3, - 48813 - 44032: 0x95F4, - 48814 - 44032: 0x95F5, - 48815 - 44032: 0x95F6, - 48816 - 44032: 0x95F7, - 48817 - 44032: 0x95F8, - 48818 - 44032: 0x95F9, - 48819 - 44032: 0x95FA, - 48820 - 44032: 0x95FB, - 48821 - 44032: 0x95FC, - 48822 - 44032: 0x95FD, - 48823 - 44032: 0x95FE, - 48824 - 44032: 0x9641, - 48825 - 44032: 0x9642, - 48826 - 44032: 0x9643, - 48827 - 44032: 0x9644, - 48828 - 44032: 0x9645, - 48829 - 44032: 0x9646, - 48830 - 44032: 0x9647, - 48831 - 44032: 0x9648, - 48832 - 44032: 0x9649, - 48833 - 44032: 0x964A, - 48834 - 44032: 0x964B, - 48835 - 44032: 0x964C, - 48836 - 44032: 0x964D, - 48837 - 44032: 0x964E, - 48838 - 44032: 0x964F, - 48839 - 44032: 0x9650, - 48840 - 44032: 0x9651, - 48841 - 44032: 0x9652, - 48842 - 44032: 0x9653, - 48843 - 44032: 0x9654, - 48844 - 44032: 0x9655, - 48845 - 44032: 0x9656, - 48846 - 44032: 0x9657, - 48847 - 44032: 0x9658, - 48848 - 44032: 0xBBB5, - 48849 - 44032: 0xBBB6, - 48850 - 44032: 0x9659, - 48851 - 44032: 0x965A, - 48852 - 44032: 0xBBB7, - 48853 - 44032: 0x9661, - 48854 - 44032: 0x9662, - 48855 - 44032: 0xBBB8, - 48856 - 44032: 0xBBB9, - 48857 - 44032: 0x9663, - 48858 - 44032: 0x9664, - 48859 - 44032: 0x9665, - 48860 - 44032: 0x9666, - 48861 - 44032: 0x9667, - 48862 - 44032: 0x9668, - 48863 - 44032: 0x9669, - 48864 - 44032: 0xBBBA, - 48865 - 44032: 0x966A, - 48866 - 44032: 0x966B, - 48867 - 44032: 0xBBBB, - 48868 - 44032: 0xBBBC, - 48869 - 44032: 0xBBBD, - 48870 - 44032: 0x966C, - 48871 - 44032: 0x966D, - 48872 - 44032: 0x966E, - 48873 - 44032: 0x966F, - 48874 - 44032: 0x9670, - 48875 - 44032: 0x9671, - 48876 - 44032: 0xBBBE, - 48877 - 44032: 0x9672, - 48878 - 44032: 0x9673, - 48879 - 44032: 0x9674, - 48880 - 44032: 0x9675, - 48881 - 44032: 0x9676, - 48882 - 44032: 0x9677, - 48883 - 44032: 0x9678, - 48884 - 44032: 0x9679, - 48885 - 44032: 0x967A, - 48886 - 44032: 0x9681, - 48887 - 44032: 0x9682, - 48888 - 44032: 0x9683, - 48889 - 44032: 0x9684, - 48890 - 44032: 0x9685, - 48891 - 44032: 0x9686, - 48892 - 44032: 0x9687, - 48893 - 44032: 0x9688, - 48894 - 44032: 0x9689, - 48895 - 44032: 0x968A, - 48896 - 44032: 0x968B, - 48897 - 44032: 0xBBBF, - 48898 - 44032: 0x968C, - 48899 - 44032: 0x968D, - 48900 - 44032: 0x968E, - 48901 - 44032: 0x968F, - 48902 - 44032: 0x9690, - 48903 - 44032: 0x9691, - 48904 - 44032: 0xBBC0, - 48905 - 44032: 0xBBC1, - 48906 - 44032: 0x9692, - 48907 - 44032: 0x9693, - 48908 - 44032: 0x9694, - 48909 - 44032: 0x9695, - 48910 - 44032: 0x9696, - 48911 - 44032: 0x9697, - 48912 - 44032: 0x9698, - 48913 - 44032: 0x9699, - 48914 - 44032: 0x969A, - 48915 - 44032: 0x969B, - 48916 - 44032: 0x969C, - 48917 - 44032: 0x969D, - 48918 - 44032: 0x969E, - 48919 - 44032: 0x969F, - 48920 - 44032: 0xBBC2, - 48921 - 44032: 0xBBC3, - 48922 - 44032: 0x96A0, - 48923 - 44032: 0xBBC4, - 48924 - 44032: 0xBBC5, - 48925 - 44032: 0xBBC6, - 48926 - 44032: 0x96A1, - 48927 - 44032: 0x96A2, - 48928 - 44032: 0x96A3, - 48929 - 44032: 0x96A4, - 48930 - 44032: 0x96A5, - 48931 - 44032: 0x96A6, - 48932 - 44032: 0x96A7, - 48933 - 44032: 0x96A8, - 48934 - 44032: 0x96A9, - 48935 - 44032: 0x96AA, - 48936 - 44032: 0x96AB, - 48937 - 44032: 0x96AC, - 48938 - 44032: 0x96AD, - 48939 - 44032: 0x96AE, - 48940 - 44032: 0x96AF, - 48941 - 44032: 0x96B0, - 48942 - 44032: 0x96B1, - 48943 - 44032: 0x96B2, - 48944 - 44032: 0x96B3, - 48945 - 44032: 0x96B4, - 48946 - 44032: 0x96B5, - 48947 - 44032: 0x96B6, - 48948 - 44032: 0x96B7, - 48949 - 44032: 0x96B8, - 48950 - 44032: 0x96B9, - 48951 - 44032: 0x96BA, - 48952 - 44032: 0x96BB, - 48953 - 44032: 0x96BC, - 48954 - 44032: 0x96BD, - 48955 - 44032: 0x96BE, - 48956 - 44032: 0x96BF, - 48957 - 44032: 0x96C0, - 48958 - 44032: 0x96C1, - 48959 - 44032: 0x96C2, - 48960 - 44032: 0xBBC7, - 48961 - 44032: 0xBBC8, - 48962 - 44032: 0x96C3, - 48963 - 44032: 0x96C4, - 48964 - 44032: 0xBBC9, - 48965 - 44032: 0x96C5, - 48966 - 44032: 0x96C6, - 48967 - 44032: 0x96C7, - 48968 - 44032: 0xBBCA, - 48969 - 44032: 0x96C8, - 48970 - 44032: 0x96C9, - 48971 - 44032: 0x96CA, - 48972 - 44032: 0x96CB, - 48973 - 44032: 0x96CC, - 48974 - 44032: 0x96CD, - 48975 - 44032: 0x96CE, - 48976 - 44032: 0xBBCB, - 48977 - 44032: 0xBBCC, - 48978 - 44032: 0x96CF, - 48979 - 44032: 0x96D0, - 48980 - 44032: 0x96D1, - 48981 - 44032: 0xBBCD, - 48982 - 44032: 0x96D2, - 48983 - 44032: 0x96D3, - 48984 - 44032: 0x96D4, - 48985 - 44032: 0x96D5, - 48986 - 44032: 0x96D6, - 48987 - 44032: 0x96D7, - 48988 - 44032: 0x96D8, - 48989 - 44032: 0x96D9, - 48990 - 44032: 0x96DA, - 48991 - 44032: 0x96DB, - 48992 - 44032: 0x96DC, - 48993 - 44032: 0x96DD, - 48994 - 44032: 0x96DE, - 48995 - 44032: 0x96DF, - 48996 - 44032: 0x96E0, - 48997 - 44032: 0x96E1, - 48998 - 44032: 0x96E2, - 48999 - 44032: 0x96E3, - 49000 - 44032: 0x96E4, - 49001 - 44032: 0x96E5, - 49002 - 44032: 0x96E6, - 49003 - 44032: 0x96E7, - 49004 - 44032: 0x96E8, - 49005 - 44032: 0x96E9, - 49006 - 44032: 0x96EA, - 49007 - 44032: 0x96EB, - 49008 - 44032: 0x96EC, - 49009 - 44032: 0x96ED, - 49010 - 44032: 0x96EE, - 49011 - 44032: 0x96EF, - 49012 - 44032: 0x96F0, - 49013 - 44032: 0x96F1, - 49014 - 44032: 0x96F2, - 49015 - 44032: 0x96F3, - 49016 - 44032: 0x96F4, - 49017 - 44032: 0x96F5, - 49018 - 44032: 0x96F6, - 49019 - 44032: 0x96F7, - 49020 - 44032: 0x96F8, - 49021 - 44032: 0x96F9, - 49022 - 44032: 0x96FA, - 49023 - 44032: 0x96FB, - 49024 - 44032: 0x96FC, - 49025 - 44032: 0x96FD, - 49026 - 44032: 0x96FE, - 49027 - 44032: 0x9741, - 49028 - 44032: 0x9742, - 49029 - 44032: 0x9743, - 49030 - 44032: 0x9744, - 49031 - 44032: 0x9745, - 49032 - 44032: 0x9746, - 49033 - 44032: 0x9747, - 49034 - 44032: 0x9748, - 49035 - 44032: 0x9749, - 49036 - 44032: 0x974A, - 49037 - 44032: 0x974B, - 49038 - 44032: 0x974C, - 49039 - 44032: 0x974D, - 49040 - 44032: 0x974E, - 49041 - 44032: 0x974F, - 49042 - 44032: 0x9750, - 49043 - 44032: 0x9751, - 49044 - 44032: 0xBBCE, - 49045 - 44032: 0x9752, - 49046 - 44032: 0x9753, - 49047 - 44032: 0x9754, - 49048 - 44032: 0x9755, - 49049 - 44032: 0x9756, - 49050 - 44032: 0x9757, - 49051 - 44032: 0x9758, - 49052 - 44032: 0x9759, - 49053 - 44032: 0x975A, - 49054 - 44032: 0x9761, - 49055 - 44032: 0x9762, - 49056 - 44032: 0x9763, - 49057 - 44032: 0x9764, - 49058 - 44032: 0x9765, - 49059 - 44032: 0x9766, - 49060 - 44032: 0x9767, - 49061 - 44032: 0x9768, - 49062 - 44032: 0x9769, - 49063 - 44032: 0x976A, - 49064 - 44032: 0x976B, - 49065 - 44032: 0x976C, - 49066 - 44032: 0x976D, - 49067 - 44032: 0x976E, - 49068 - 44032: 0x976F, - 49069 - 44032: 0x9770, - 49070 - 44032: 0x9771, - 49071 - 44032: 0x9772, - 49072 - 44032: 0xBBCF, - 49073 - 44032: 0x9773, - 49074 - 44032: 0x9774, - 49075 - 44032: 0x9775, - 49076 - 44032: 0x9776, - 49077 - 44032: 0x9777, - 49078 - 44032: 0x9778, - 49079 - 44032: 0x9779, - 49080 - 44032: 0x977A, - 49081 - 44032: 0x9781, - 49082 - 44032: 0x9782, - 49083 - 44032: 0x9783, - 49084 - 44032: 0x9784, - 49085 - 44032: 0x9785, - 49086 - 44032: 0x9786, - 49087 - 44032: 0x9787, - 49088 - 44032: 0x9788, - 49089 - 44032: 0x9789, - 49090 - 44032: 0x978A, - 49091 - 44032: 0x978B, - 49092 - 44032: 0x978C, - 49093 - 44032: 0xBBD0, - 49094 - 44032: 0x978D, - 49095 - 44032: 0x978E, - 49096 - 44032: 0x978F, - 49097 - 44032: 0x9790, - 49098 - 44032: 0x9791, - 49099 - 44032: 0x9792, - 49100 - 44032: 0xBBD1, - 49101 - 44032: 0xBBD2, - 49102 - 44032: 0x9793, - 49103 - 44032: 0x9794, - 49104 - 44032: 0xBBD3, - 49105 - 44032: 0x9795, - 49106 - 44032: 0x9796, - 49107 - 44032: 0x9797, - 49108 - 44032: 0xBBD4, - 49109 - 44032: 0x9798, - 49110 - 44032: 0x9799, - 49111 - 44032: 0x979A, - 49112 - 44032: 0x979B, - 49113 - 44032: 0x979C, - 49114 - 44032: 0x979D, - 49115 - 44032: 0x979E, - 49116 - 44032: 0xBBD5, - 49117 - 44032: 0x979F, - 49118 - 44032: 0x97A0, - 49119 - 44032: 0xBBD6, - 49120 - 44032: 0x97A1, - 49121 - 44032: 0xBBD7, - 49122 - 44032: 0x97A2, - 49123 - 44032: 0x97A3, - 49124 - 44032: 0x97A4, - 49125 - 44032: 0x97A5, - 49126 - 44032: 0x97A6, - 49127 - 44032: 0x97A7, - 49128 - 44032: 0x97A8, - 49129 - 44032: 0x97A9, - 49130 - 44032: 0x97AA, - 49131 - 44032: 0x97AB, - 49132 - 44032: 0x97AC, - 49133 - 44032: 0x97AD, - 49134 - 44032: 0x97AE, - 49135 - 44032: 0x97AF, - 49136 - 44032: 0x97B0, - 49137 - 44032: 0x97B1, - 49138 - 44032: 0x97B2, - 49139 - 44032: 0x97B3, - 49140 - 44032: 0x97B4, - 49141 - 44032: 0x97B5, - 49142 - 44032: 0x97B6, - 49143 - 44032: 0x97B7, - 49144 - 44032: 0x97B8, - 49145 - 44032: 0x97B9, - 49146 - 44032: 0x97BA, - 49147 - 44032: 0x97BB, - 49148 - 44032: 0x97BC, - 49149 - 44032: 0x97BD, - 49150 - 44032: 0x97BE, - 49151 - 44032: 0x97BF, - 49152 - 44032: 0x97C0, - 49153 - 44032: 0x97C1, - 49154 - 44032: 0x97C2, - 49155 - 44032: 0x97C3, - 49156 - 44032: 0x97C4, - 49157 - 44032: 0x97C5, - 49158 - 44032: 0x97C6, - 49159 - 44032: 0x97C7, - 49160 - 44032: 0x97C8, - 49161 - 44032: 0x97C9, - 49162 - 44032: 0x97CA, - 49163 - 44032: 0x97CB, - 49164 - 44032: 0x97CC, - 49165 - 44032: 0x97CD, - 49166 - 44032: 0x97CE, - 49167 - 44032: 0x97CF, - 49168 - 44032: 0x97D0, - 49169 - 44032: 0x97D1, - 49170 - 44032: 0x97D2, - 49171 - 44032: 0x97D3, - 49172 - 44032: 0x97D4, - 49173 - 44032: 0x97D5, - 49174 - 44032: 0x97D6, - 49175 - 44032: 0x97D7, - 49176 - 44032: 0x97D8, - 49177 - 44032: 0x97D9, - 49178 - 44032: 0x97DA, - 49179 - 44032: 0x97DB, - 49180 - 44032: 0x97DC, - 49181 - 44032: 0x97DD, - 49182 - 44032: 0x97DE, - 49183 - 44032: 0x97DF, - 49184 - 44032: 0x97E0, - 49185 - 44032: 0x97E1, - 49186 - 44032: 0x97E2, - 49187 - 44032: 0x97E3, - 49188 - 44032: 0x97E4, - 49189 - 44032: 0x97E5, - 49190 - 44032: 0x97E6, - 49191 - 44032: 0x97E7, - 49192 - 44032: 0x97E8, - 49193 - 44032: 0x97E9, - 49194 - 44032: 0x97EA, - 49195 - 44032: 0x97EB, - 49196 - 44032: 0x97EC, - 49197 - 44032: 0x97ED, - 49198 - 44032: 0x97EE, - 49199 - 44032: 0x97EF, - 49200 - 44032: 0x97F0, - 49201 - 44032: 0x97F1, - 49202 - 44032: 0x97F2, - 49203 - 44032: 0x97F3, - 49204 - 44032: 0x97F4, - 49205 - 44032: 0x97F5, - 49206 - 44032: 0x97F6, - 49207 - 44032: 0x97F7, - 49208 - 44032: 0x97F8, - 49209 - 44032: 0x97F9, - 49210 - 44032: 0x97FA, - 49211 - 44032: 0x97FB, - 49212 - 44032: 0xBBD8, - 49213 - 44032: 0x97FC, - 49214 - 44032: 0x97FD, - 49215 - 44032: 0x97FE, - 49216 - 44032: 0x9841, - 49217 - 44032: 0x9842, - 49218 - 44032: 0x9843, - 49219 - 44032: 0x9844, - 49220 - 44032: 0x9845, - 49221 - 44032: 0x9846, - 49222 - 44032: 0x9847, - 49223 - 44032: 0x9848, - 49224 - 44032: 0x9849, - 49225 - 44032: 0x984A, - 49226 - 44032: 0x984B, - 49227 - 44032: 0x984C, - 49228 - 44032: 0x984D, - 49229 - 44032: 0x984E, - 49230 - 44032: 0x984F, - 49231 - 44032: 0x9850, - 49232 - 44032: 0x9851, - 49233 - 44032: 0xBBD9, - 49234 - 44032: 0x9852, - 49235 - 44032: 0x9853, - 49236 - 44032: 0x9854, - 49237 - 44032: 0x9855, - 49238 - 44032: 0x9856, - 49239 - 44032: 0x9857, - 49240 - 44032: 0xBBDA, - 49241 - 44032: 0x9858, - 49242 - 44032: 0x9859, - 49243 - 44032: 0x985A, - 49244 - 44032: 0xBBDB, - 49245 - 44032: 0x9861, - 49246 - 44032: 0x9862, - 49247 - 44032: 0x9863, - 49248 - 44032: 0xBBDC, - 49249 - 44032: 0x9864, - 49250 - 44032: 0x9865, - 49251 - 44032: 0x9866, - 49252 - 44032: 0x9867, - 49253 - 44032: 0x9868, - 49254 - 44032: 0x9869, - 49255 - 44032: 0x986A, - 49256 - 44032: 0xBBDD, - 49257 - 44032: 0xBBDE, - 49258 - 44032: 0x986B, - 49259 - 44032: 0x986C, - 49260 - 44032: 0x986D, - 49261 - 44032: 0x986E, - 49262 - 44032: 0x986F, - 49263 - 44032: 0x9870, - 49264 - 44032: 0x9871, - 49265 - 44032: 0x9872, - 49266 - 44032: 0x9873, - 49267 - 44032: 0x9874, - 49268 - 44032: 0x9875, - 49269 - 44032: 0x9876, - 49270 - 44032: 0x9877, - 49271 - 44032: 0x9878, - 49272 - 44032: 0x9879, - 49273 - 44032: 0x987A, - 49274 - 44032: 0x9881, - 49275 - 44032: 0x9882, - 49276 - 44032: 0x9883, - 49277 - 44032: 0x9884, - 49278 - 44032: 0x9885, - 49279 - 44032: 0x9886, - 49280 - 44032: 0x9887, - 49281 - 44032: 0x9888, - 49282 - 44032: 0x9889, - 49283 - 44032: 0x988A, - 49284 - 44032: 0x988B, - 49285 - 44032: 0x988C, - 49286 - 44032: 0x988D, - 49287 - 44032: 0x988E, - 49288 - 44032: 0x988F, - 49289 - 44032: 0x9890, - 49290 - 44032: 0x9891, - 49291 - 44032: 0x9892, - 49292 - 44032: 0x9893, - 49293 - 44032: 0x9894, - 49294 - 44032: 0x9895, - 49295 - 44032: 0x9896, - 49296 - 44032: 0xBBDF, - 49297 - 44032: 0xBBE0, - 49298 - 44032: 0x9897, - 49299 - 44032: 0x9898, - 49300 - 44032: 0xBBE1, - 49301 - 44032: 0x9899, - 49302 - 44032: 0x989A, - 49303 - 44032: 0x989B, - 49304 - 44032: 0xBBE2, - 49305 - 44032: 0x989C, - 49306 - 44032: 0x989D, - 49307 - 44032: 0x989E, - 49308 - 44032: 0x989F, - 49309 - 44032: 0x98A0, - 49310 - 44032: 0x98A1, - 49311 - 44032: 0x98A2, - 49312 - 44032: 0xBBE3, - 49313 - 44032: 0xBBE4, - 49314 - 44032: 0x98A3, - 49315 - 44032: 0xBBE5, - 49316 - 44032: 0x98A4, - 49317 - 44032: 0xBBE6, - 49318 - 44032: 0x98A5, - 49319 - 44032: 0x98A6, - 49320 - 44032: 0x98A7, - 49321 - 44032: 0x98A8, - 49322 - 44032: 0x98A9, - 49323 - 44032: 0x98AA, - 49324 - 44032: 0xBBE7, - 49325 - 44032: 0xBBE8, - 49326 - 44032: 0x98AB, - 49327 - 44032: 0xBBE9, - 49328 - 44032: 0xBBEA, - 49329 - 44032: 0x98AC, - 49330 - 44032: 0x98AD, - 49331 - 44032: 0xBBEB, - 49332 - 44032: 0xBBEC, - 49333 - 44032: 0xBBED, - 49334 - 44032: 0xBBEE, - 49335 - 44032: 0x98AE, - 49336 - 44032: 0x98AF, - 49337 - 44032: 0x98B0, - 49338 - 44032: 0x98B1, - 49339 - 44032: 0x98B2, - 49340 - 44032: 0xBBEF, - 49341 - 44032: 0xBBF0, - 49342 - 44032: 0x98B3, - 49343 - 44032: 0xBBF1, - 49344 - 44032: 0xBBF2, - 49345 - 44032: 0xBBF3, - 49346 - 44032: 0x98B4, - 49347 - 44032: 0x98B5, - 49348 - 44032: 0x98B6, - 49349 - 44032: 0xBBF4, - 49350 - 44032: 0x98B7, - 49351 - 44032: 0x98B8, - 49352 - 44032: 0xBBF5, - 49353 - 44032: 0xBBF6, - 49354 - 44032: 0x98B9, - 49355 - 44032: 0x98BA, - 49356 - 44032: 0xBBF7, - 49357 - 44032: 0x98BB, - 49358 - 44032: 0x98BC, - 49359 - 44032: 0x98BD, - 49360 - 44032: 0xBBF8, - 49361 - 44032: 0x98BE, - 49362 - 44032: 0x98BF, - 49363 - 44032: 0x98C0, - 49364 - 44032: 0x98C1, - 49365 - 44032: 0x98C2, - 49366 - 44032: 0x98C3, - 49367 - 44032: 0x98C4, - 49368 - 44032: 0xBBF9, - 49369 - 44032: 0xBBFA, - 49370 - 44032: 0x98C5, - 49371 - 44032: 0xBBFB, - 49372 - 44032: 0xBBFC, - 49373 - 44032: 0xBBFD, - 49374 - 44032: 0x98C6, - 49375 - 44032: 0x98C7, - 49376 - 44032: 0x98C8, - 49377 - 44032: 0x98C9, - 49378 - 44032: 0x98CA, - 49379 - 44032: 0x98CB, - 49380 - 44032: 0xBBFE, - 49381 - 44032: 0xBCA1, - 49382 - 44032: 0x98CC, - 49383 - 44032: 0x98CD, - 49384 - 44032: 0xBCA2, - 49385 - 44032: 0x98CE, - 49386 - 44032: 0x98CF, - 49387 - 44032: 0x98D0, - 49388 - 44032: 0xBCA3, - 49389 - 44032: 0x98D1, - 49390 - 44032: 0x98D2, - 49391 - 44032: 0x98D3, - 49392 - 44032: 0x98D4, - 49393 - 44032: 0x98D5, - 49394 - 44032: 0x98D6, - 49395 - 44032: 0x98D7, - 49396 - 44032: 0xBCA4, - 49397 - 44032: 0xBCA5, - 49398 - 44032: 0x98D8, - 49399 - 44032: 0xBCA6, - 49400 - 44032: 0x98D9, - 49401 - 44032: 0xBCA7, - 49402 - 44032: 0x98DA, - 49403 - 44032: 0x98DB, - 49404 - 44032: 0x98DC, - 49405 - 44032: 0x98DD, - 49406 - 44032: 0x98DE, - 49407 - 44032: 0x98DF, - 49408 - 44032: 0xBCA8, - 49409 - 44032: 0x98E0, - 49410 - 44032: 0x98E1, - 49411 - 44032: 0x98E2, - 49412 - 44032: 0xBCA9, - 49413 - 44032: 0x98E3, - 49414 - 44032: 0x98E4, - 49415 - 44032: 0x98E5, - 49416 - 44032: 0xBCAA, - 49417 - 44032: 0x98E6, - 49418 - 44032: 0x98E7, - 49419 - 44032: 0x98E8, - 49420 - 44032: 0x98E9, - 49421 - 44032: 0x98EA, - 49422 - 44032: 0x98EB, - 49423 - 44032: 0x98EC, - 49424 - 44032: 0xBCAB, - 49425 - 44032: 0x98ED, - 49426 - 44032: 0x98EE, - 49427 - 44032: 0x98EF, - 49428 - 44032: 0x98F0, - 49429 - 44032: 0xBCAC, - 49430 - 44032: 0x98F1, - 49431 - 44032: 0x98F2, - 49432 - 44032: 0x98F3, - 49433 - 44032: 0x98F4, - 49434 - 44032: 0x98F5, - 49435 - 44032: 0x98F6, - 49436 - 44032: 0xBCAD, - 49437 - 44032: 0xBCAE, - 49438 - 44032: 0xBCAF, - 49439 - 44032: 0xBCB0, - 49440 - 44032: 0xBCB1, - 49441 - 44032: 0x98F7, - 49442 - 44032: 0x98F8, - 49443 - 44032: 0xBCB2, - 49444 - 44032: 0xBCB3, - 49445 - 44032: 0x98F9, - 49446 - 44032: 0xBCB4, - 49447 - 44032: 0xBCB5, - 49448 - 44032: 0x98FA, - 49449 - 44032: 0x98FB, - 49450 - 44032: 0x98FC, - 49451 - 44032: 0x98FD, - 49452 - 44032: 0xBCB6, - 49453 - 44032: 0xBCB7, - 49454 - 44032: 0x98FE, - 49455 - 44032: 0xBCB8, - 49456 - 44032: 0xBCB9, - 49457 - 44032: 0xBCBA, - 49458 - 44032: 0x9941, - 49459 - 44032: 0x9942, - 49460 - 44032: 0x9943, - 49461 - 44032: 0x9944, - 49462 - 44032: 0xBCBB, - 49463 - 44032: 0x9945, - 49464 - 44032: 0xBCBC, - 49465 - 44032: 0xBCBD, - 49466 - 44032: 0x9946, - 49467 - 44032: 0x9947, - 49468 - 44032: 0xBCBE, - 49469 - 44032: 0x9948, - 49470 - 44032: 0x9949, - 49471 - 44032: 0x994A, - 49472 - 44032: 0xBCBF, - 49473 - 44032: 0x994B, - 49474 - 44032: 0x994C, - 49475 - 44032: 0x994D, - 49476 - 44032: 0x994E, - 49477 - 44032: 0x994F, - 49478 - 44032: 0x9950, - 49479 - 44032: 0x9951, - 49480 - 44032: 0xBCC0, - 49481 - 44032: 0xBCC1, - 49482 - 44032: 0x9952, - 49483 - 44032: 0xBCC2, - 49484 - 44032: 0xBCC3, - 49485 - 44032: 0xBCC4, - 49486 - 44032: 0x9953, - 49487 - 44032: 0x9954, - 49488 - 44032: 0x9955, - 49489 - 44032: 0x9956, - 49490 - 44032: 0x9957, - 49491 - 44032: 0x9958, - 49492 - 44032: 0xBCC5, - 49493 - 44032: 0xBCC6, - 49494 - 44032: 0x9959, - 49495 - 44032: 0x995A, - 49496 - 44032: 0xBCC7, - 49497 - 44032: 0x9961, - 49498 - 44032: 0x9962, - 49499 - 44032: 0x9963, - 49500 - 44032: 0xBCC8, - 49501 - 44032: 0x9964, - 49502 - 44032: 0x9965, - 49503 - 44032: 0x9966, - 49504 - 44032: 0x9967, - 49505 - 44032: 0x9968, - 49506 - 44032: 0x9969, - 49507 - 44032: 0x996A, - 49508 - 44032: 0xBCC9, - 49509 - 44032: 0xBCCA, - 49510 - 44032: 0x996B, - 49511 - 44032: 0xBCCB, - 49512 - 44032: 0xBCCC, - 49513 - 44032: 0xBCCD, - 49514 - 44032: 0x996C, - 49515 - 44032: 0x996D, - 49516 - 44032: 0x996E, - 49517 - 44032: 0x996F, - 49518 - 44032: 0x9970, - 49519 - 44032: 0x9971, - 49520 - 44032: 0xBCCE, - 49521 - 44032: 0x9972, - 49522 - 44032: 0x9973, - 49523 - 44032: 0x9974, - 49524 - 44032: 0xBCCF, - 49525 - 44032: 0x9975, - 49526 - 44032: 0x9976, - 49527 - 44032: 0x9977, - 49528 - 44032: 0xBCD0, - 49529 - 44032: 0x9978, - 49530 - 44032: 0x9979, - 49531 - 44032: 0x997A, - 49532 - 44032: 0x9981, - 49533 - 44032: 0x9982, - 49534 - 44032: 0x9983, - 49535 - 44032: 0x9984, - 49536 - 44032: 0x9985, - 49537 - 44032: 0x9986, - 49538 - 44032: 0x9987, - 49539 - 44032: 0x9988, - 49540 - 44032: 0x9989, - 49541 - 44032: 0xBCD1, - 49542 - 44032: 0x998A, - 49543 - 44032: 0x998B, - 49544 - 44032: 0x998C, - 49545 - 44032: 0x998D, - 49546 - 44032: 0x998E, - 49547 - 44032: 0x998F, - 49548 - 44032: 0xBCD2, - 49549 - 44032: 0xBCD3, - 49550 - 44032: 0xBCD4, - 49551 - 44032: 0x9990, - 49552 - 44032: 0xBCD5, - 49553 - 44032: 0x9991, - 49554 - 44032: 0x9992, - 49555 - 44032: 0x9993, - 49556 - 44032: 0xBCD6, - 49557 - 44032: 0x9994, - 49558 - 44032: 0xBCD7, - 49559 - 44032: 0x9995, - 49560 - 44032: 0x9996, - 49561 - 44032: 0x9997, - 49562 - 44032: 0x9998, - 49563 - 44032: 0x9999, - 49564 - 44032: 0xBCD8, - 49565 - 44032: 0xBCD9, - 49566 - 44032: 0x999A, - 49567 - 44032: 0xBCDA, - 49568 - 44032: 0x999B, - 49569 - 44032: 0xBCDB, - 49570 - 44032: 0x999C, - 49571 - 44032: 0x999D, - 49572 - 44032: 0x999E, - 49573 - 44032: 0xBCDC, - 49574 - 44032: 0x999F, - 49575 - 44032: 0x99A0, - 49576 - 44032: 0xBCDD, - 49577 - 44032: 0xBCDE, - 49578 - 44032: 0x99A1, - 49579 - 44032: 0x99A2, - 49580 - 44032: 0xBCDF, - 49581 - 44032: 0x99A3, - 49582 - 44032: 0x99A4, - 49583 - 44032: 0x99A5, - 49584 - 44032: 0xBCE0, - 49585 - 44032: 0x99A6, - 49586 - 44032: 0x99A7, - 49587 - 44032: 0x99A8, - 49588 - 44032: 0x99A9, - 49589 - 44032: 0x99AA, - 49590 - 44032: 0x99AB, - 49591 - 44032: 0x99AC, - 49592 - 44032: 0x99AD, - 49593 - 44032: 0x99AE, - 49594 - 44032: 0x99AF, - 49595 - 44032: 0x99B0, - 49596 - 44032: 0x99B1, - 49597 - 44032: 0xBCE1, - 49598 - 44032: 0x99B2, - 49599 - 44032: 0x99B3, - 49600 - 44032: 0x99B4, - 49601 - 44032: 0x99B5, - 49602 - 44032: 0x99B6, - 49603 - 44032: 0x99B7, - 49604 - 44032: 0xBCE2, - 49605 - 44032: 0x99B8, - 49606 - 44032: 0x99B9, - 49607 - 44032: 0x99BA, - 49608 - 44032: 0xBCE3, - 49609 - 44032: 0x99BB, - 49610 - 44032: 0x99BC, - 49611 - 44032: 0x99BD, - 49612 - 44032: 0xBCE4, - 49613 - 44032: 0x99BE, - 49614 - 44032: 0x99BF, - 49615 - 44032: 0x99C0, - 49616 - 44032: 0x99C1, - 49617 - 44032: 0x99C2, - 49618 - 44032: 0x99C3, - 49619 - 44032: 0x99C4, - 49620 - 44032: 0xBCE5, - 49621 - 44032: 0x99C5, - 49622 - 44032: 0x99C6, - 49623 - 44032: 0xBCE6, - 49624 - 44032: 0xBCE7, - 49625 - 44032: 0x99C7, - 49626 - 44032: 0x99C8, - 49627 - 44032: 0x99C9, - 49628 - 44032: 0x99CA, - 49629 - 44032: 0x99CB, - 49630 - 44032: 0x99CC, - 49631 - 44032: 0x99CD, - 49632 - 44032: 0xBCE8, - 49633 - 44032: 0x99CE, - 49634 - 44032: 0x99CF, - 49635 - 44032: 0x99D0, - 49636 - 44032: 0xBCE9, - 49637 - 44032: 0x99D1, - 49638 - 44032: 0x99D2, - 49639 - 44032: 0x99D3, - 49640 - 44032: 0xBCEA, - 49641 - 44032: 0x99D4, - 49642 - 44032: 0x99D5, - 49643 - 44032: 0x99D6, - 49644 - 44032: 0x99D7, - 49645 - 44032: 0x99D8, - 49646 - 44032: 0x99D9, - 49647 - 44032: 0x99DA, - 49648 - 44032: 0xBCEB, - 49649 - 44032: 0xBCEC, - 49650 - 44032: 0x99DB, - 49651 - 44032: 0xBCED, - 49652 - 44032: 0x99DC, - 49653 - 44032: 0x99DD, - 49654 - 44032: 0x99DE, - 49655 - 44032: 0x99DF, - 49656 - 44032: 0x99E0, - 49657 - 44032: 0x99E1, - 49658 - 44032: 0x99E2, - 49659 - 44032: 0x99E3, - 49660 - 44032: 0xBCEE, - 49661 - 44032: 0xBCEF, - 49662 - 44032: 0x99E4, - 49663 - 44032: 0x99E5, - 49664 - 44032: 0xBCF0, - 49665 - 44032: 0x99E6, - 49666 - 44032: 0x99E7, - 49667 - 44032: 0x99E8, - 49668 - 44032: 0xBCF1, - 49669 - 44032: 0x99E9, - 49670 - 44032: 0x99EA, - 49671 - 44032: 0x99EB, - 49672 - 44032: 0x99EC, - 49673 - 44032: 0x99ED, - 49674 - 44032: 0x99EE, - 49675 - 44032: 0x99EF, - 49676 - 44032: 0xBCF2, - 49677 - 44032: 0xBCF3, - 49678 - 44032: 0x99F0, - 49679 - 44032: 0xBCF4, - 49680 - 44032: 0x99F1, - 49681 - 44032: 0xBCF5, - 49682 - 44032: 0x99F2, - 49683 - 44032: 0x99F3, - 49684 - 44032: 0x99F4, - 49685 - 44032: 0x99F5, - 49686 - 44032: 0x99F6, - 49687 - 44032: 0x99F7, - 49688 - 44032: 0xBCF6, - 49689 - 44032: 0xBCF7, - 49690 - 44032: 0x99F8, - 49691 - 44032: 0x99F9, - 49692 - 44032: 0xBCF8, - 49693 - 44032: 0x99FA, - 49694 - 44032: 0x99FB, - 49695 - 44032: 0xBCF9, - 49696 - 44032: 0xBCFA, - 49697 - 44032: 0x99FC, - 49698 - 44032: 0x99FD, - 49699 - 44032: 0x99FE, - 49700 - 44032: 0x9A41, - 49701 - 44032: 0x9A42, - 49702 - 44032: 0x9A43, - 49703 - 44032: 0x9A44, - 49704 - 44032: 0xBCFB, - 49705 - 44032: 0xBCFC, - 49706 - 44032: 0x9A45, - 49707 - 44032: 0xBCFD, - 49708 - 44032: 0x9A46, - 49709 - 44032: 0xBCFE, - 49710 - 44032: 0x9A47, - 49711 - 44032: 0xBDA1, - 49712 - 44032: 0x9A48, - 49713 - 44032: 0xBDA2, - 49714 - 44032: 0xBDA3, - 49715 - 44032: 0x9A49, - 49716 - 44032: 0xBDA4, - 49717 - 44032: 0x9A4A, - 49718 - 44032: 0x9A4B, - 49719 - 44032: 0x9A4C, - 49720 - 44032: 0x9A4D, - 49721 - 44032: 0x9A4E, - 49722 - 44032: 0x9A4F, - 49723 - 44032: 0x9A50, - 49724 - 44032: 0x9A51, - 49725 - 44032: 0x9A52, - 49726 - 44032: 0x9A53, - 49727 - 44032: 0x9A54, - 49728 - 44032: 0x9A55, - 49729 - 44032: 0x9A56, - 49730 - 44032: 0x9A57, - 49731 - 44032: 0x9A58, - 49732 - 44032: 0x9A59, - 49733 - 44032: 0x9A5A, - 49734 - 44032: 0x9A61, - 49735 - 44032: 0x9A62, - 49736 - 44032: 0xBDA5, - 49737 - 44032: 0x9A63, - 49738 - 44032: 0x9A64, - 49739 - 44032: 0x9A65, - 49740 - 44032: 0x9A66, - 49741 - 44032: 0x9A67, - 49742 - 44032: 0x9A68, - 49743 - 44032: 0x9A69, - 49744 - 44032: 0xBDA6, - 49745 - 44032: 0xBDA7, - 49746 - 44032: 0x9A6A, - 49747 - 44032: 0x9A6B, - 49748 - 44032: 0xBDA8, - 49749 - 44032: 0x9A6C, - 49750 - 44032: 0x9A6D, - 49751 - 44032: 0x9A6E, - 49752 - 44032: 0xBDA9, - 49753 - 44032: 0x9A6F, - 49754 - 44032: 0x9A70, - 49755 - 44032: 0x9A71, - 49756 - 44032: 0x9A72, - 49757 - 44032: 0x9A73, - 49758 - 44032: 0x9A74, - 49759 - 44032: 0x9A75, - 49760 - 44032: 0xBDAA, - 49761 - 44032: 0x9A76, - 49762 - 44032: 0x9A77, - 49763 - 44032: 0x9A78, - 49764 - 44032: 0x9A79, - 49765 - 44032: 0xBDAB, - 49766 - 44032: 0x9A7A, - 49767 - 44032: 0x9A81, - 49768 - 44032: 0x9A82, - 49769 - 44032: 0x9A83, - 49770 - 44032: 0x9A84, - 49771 - 44032: 0x9A85, - 49772 - 44032: 0xBDAC, - 49773 - 44032: 0xBDAD, - 49774 - 44032: 0x9A86, - 49775 - 44032: 0x9A87, - 49776 - 44032: 0xBDAE, - 49777 - 44032: 0x9A88, - 49778 - 44032: 0x9A89, - 49779 - 44032: 0x9A8A, - 49780 - 44032: 0xBDAF, - 49781 - 44032: 0x9A8B, - 49782 - 44032: 0x9A8C, - 49783 - 44032: 0x9A8D, - 49784 - 44032: 0x9A8E, - 49785 - 44032: 0x9A8F, - 49786 - 44032: 0x9A90, - 49787 - 44032: 0x9A91, - 49788 - 44032: 0xBDB0, - 49789 - 44032: 0xBDB1, - 49790 - 44032: 0x9A92, - 49791 - 44032: 0xBDB2, - 49792 - 44032: 0x9A93, - 49793 - 44032: 0xBDB3, - 49794 - 44032: 0x9A94, - 49795 - 44032: 0x9A95, - 49796 - 44032: 0x9A96, - 49797 - 44032: 0x9A97, - 49798 - 44032: 0x9A98, - 49799 - 44032: 0x9A99, - 49800 - 44032: 0xBDB4, - 49801 - 44032: 0xBDB5, - 49802 - 44032: 0x9A9A, - 49803 - 44032: 0x9A9B, - 49804 - 44032: 0x9A9C, - 49805 - 44032: 0x9A9D, - 49806 - 44032: 0x9A9E, - 49807 - 44032: 0x9A9F, - 49808 - 44032: 0xBDB6, - 49809 - 44032: 0x9AA0, - 49810 - 44032: 0x9AA1, - 49811 - 44032: 0x9AA2, - 49812 - 44032: 0x9AA3, - 49813 - 44032: 0x9AA4, - 49814 - 44032: 0x9AA5, - 49815 - 44032: 0x9AA6, - 49816 - 44032: 0xBDB7, - 49817 - 44032: 0x9AA7, - 49818 - 44032: 0x9AA8, - 49819 - 44032: 0xBDB8, - 49820 - 44032: 0x9AA9, - 49821 - 44032: 0xBDB9, - 49822 - 44032: 0x9AAA, - 49823 - 44032: 0x9AAB, - 49824 - 44032: 0x9AAC, - 49825 - 44032: 0x9AAD, - 49826 - 44032: 0x9AAE, - 49827 - 44032: 0x9AAF, - 49828 - 44032: 0xBDBA, - 49829 - 44032: 0xBDBB, - 49830 - 44032: 0x9AB0, - 49831 - 44032: 0x9AB1, - 49832 - 44032: 0xBDBC, - 49833 - 44032: 0x9AB2, - 49834 - 44032: 0x9AB3, - 49835 - 44032: 0x9AB4, - 49836 - 44032: 0xBDBD, - 49837 - 44032: 0xBDBE, - 49838 - 44032: 0x9AB5, - 49839 - 44032: 0x9AB6, - 49840 - 44032: 0x9AB7, - 49841 - 44032: 0x9AB8, - 49842 - 44032: 0x9AB9, - 49843 - 44032: 0x9ABA, - 49844 - 44032: 0xBDBF, - 49845 - 44032: 0xBDC0, - 49846 - 44032: 0x9ABB, - 49847 - 44032: 0xBDC1, - 49848 - 44032: 0x9ABC, - 49849 - 44032: 0xBDC2, - 49850 - 44032: 0x9ABD, - 49851 - 44032: 0x9ABE, - 49852 - 44032: 0x9ABF, - 49853 - 44032: 0x9AC0, - 49854 - 44032: 0x9AC1, - 49855 - 44032: 0x9AC2, - 49856 - 44032: 0x9AC3, - 49857 - 44032: 0x9AC4, - 49858 - 44032: 0x9AC5, - 49859 - 44032: 0x9AC6, - 49860 - 44032: 0x9AC7, - 49861 - 44032: 0x9AC8, - 49862 - 44032: 0x9AC9, - 49863 - 44032: 0x9ACA, - 49864 - 44032: 0x9ACB, - 49865 - 44032: 0x9ACC, - 49866 - 44032: 0x9ACD, - 49867 - 44032: 0x9ACE, - 49868 - 44032: 0x9ACF, - 49869 - 44032: 0x9AD0, - 49870 - 44032: 0x9AD1, - 49871 - 44032: 0x9AD2, - 49872 - 44032: 0x9AD3, - 49873 - 44032: 0x9AD4, - 49874 - 44032: 0x9AD5, - 49875 - 44032: 0x9AD6, - 49876 - 44032: 0x9AD7, - 49877 - 44032: 0x9AD8, - 49878 - 44032: 0x9AD9, - 49879 - 44032: 0x9ADA, - 49880 - 44032: 0x9ADB, - 49881 - 44032: 0x9ADC, - 49882 - 44032: 0x9ADD, - 49883 - 44032: 0x9ADE, - 49884 - 44032: 0xBDC3, - 49885 - 44032: 0xBDC4, - 49886 - 44032: 0x9ADF, - 49887 - 44032: 0x9AE0, - 49888 - 44032: 0xBDC5, - 49889 - 44032: 0x9AE1, - 49890 - 44032: 0x9AE2, - 49891 - 44032: 0xBDC6, - 49892 - 44032: 0xBDC7, - 49893 - 44032: 0x9AE3, - 49894 - 44032: 0x9AE4, - 49895 - 44032: 0x9AE5, - 49896 - 44032: 0x9AE6, - 49897 - 44032: 0x9AE7, - 49898 - 44032: 0x9AE8, - 49899 - 44032: 0xBDC8, - 49900 - 44032: 0xBDC9, - 49901 - 44032: 0xBDCA, - 49902 - 44032: 0x9AE9, - 49903 - 44032: 0xBDCB, - 49904 - 44032: 0x9AEA, - 49905 - 44032: 0xBDCC, - 49906 - 44032: 0x9AEB, - 49907 - 44032: 0x9AEC, - 49908 - 44032: 0x9AED, - 49909 - 44032: 0x9AEE, - 49910 - 44032: 0xBDCD, - 49911 - 44032: 0x9AEF, - 49912 - 44032: 0xBDCE, - 49913 - 44032: 0xBDCF, - 49914 - 44032: 0x9AF0, - 49915 - 44032: 0xBDD0, - 49916 - 44032: 0xBDD1, - 49917 - 44032: 0x9AF1, - 49918 - 44032: 0x9AF2, - 49919 - 44032: 0x9AF3, - 49920 - 44032: 0xBDD2, - 49921 - 44032: 0x9AF4, - 49922 - 44032: 0x9AF5, - 49923 - 44032: 0x9AF6, - 49924 - 44032: 0x9AF7, - 49925 - 44032: 0x9AF8, - 49926 - 44032: 0x9AF9, - 49927 - 44032: 0x9AFA, - 49928 - 44032: 0xBDD3, - 49929 - 44032: 0xBDD4, - 49930 - 44032: 0x9AFB, - 49931 - 44032: 0x9AFC, - 49932 - 44032: 0xBDD5, - 49933 - 44032: 0xBDD6, - 49934 - 44032: 0x9AFD, - 49935 - 44032: 0x9AFE, - 49936 - 44032: 0x9B41, - 49937 - 44032: 0x9B42, - 49938 - 44032: 0x9B43, - 49939 - 44032: 0xBDD7, - 49940 - 44032: 0xBDD8, - 49941 - 44032: 0xBDD9, - 49942 - 44032: 0x9B44, - 49943 - 44032: 0x9B45, - 49944 - 44032: 0xBDDA, - 49945 - 44032: 0x9B46, - 49946 - 44032: 0x9B47, - 49947 - 44032: 0x9B48, - 49948 - 44032: 0xBDDB, - 49949 - 44032: 0x9B49, - 49950 - 44032: 0x9B4A, - 49951 - 44032: 0x9B4B, - 49952 - 44032: 0x9B4C, - 49953 - 44032: 0x9B4D, - 49954 - 44032: 0x9B4E, - 49955 - 44032: 0x9B4F, - 49956 - 44032: 0xBDDC, - 49957 - 44032: 0xBDDD, - 49958 - 44032: 0x9B50, - 49959 - 44032: 0x9B51, - 49960 - 44032: 0xBDDE, - 49961 - 44032: 0xBDDF, - 49962 - 44032: 0x9B52, - 49963 - 44032: 0x9B53, - 49964 - 44032: 0x9B54, - 49965 - 44032: 0x9B55, - 49966 - 44032: 0x9B56, - 49967 - 44032: 0x9B57, - 49968 - 44032: 0x9B58, - 49969 - 44032: 0x9B59, - 49970 - 44032: 0x9B5A, - 49971 - 44032: 0x9B61, - 49972 - 44032: 0x9B62, - 49973 - 44032: 0x9B63, - 49974 - 44032: 0x9B64, - 49975 - 44032: 0x9B65, - 49976 - 44032: 0x9B66, - 49977 - 44032: 0x9B67, - 49978 - 44032: 0x9B68, - 49979 - 44032: 0x9B69, - 49980 - 44032: 0x9B6A, - 49981 - 44032: 0x9B6B, - 49982 - 44032: 0x9B6C, - 49983 - 44032: 0x9B6D, - 49984 - 44032: 0x9B6E, - 49985 - 44032: 0x9B6F, - 49986 - 44032: 0x9B70, - 49987 - 44032: 0x9B71, - 49988 - 44032: 0x9B72, - 49989 - 44032: 0xBDE0, - 49990 - 44032: 0x9B73, - 49991 - 44032: 0x9B74, - 49992 - 44032: 0x9B75, - 49993 - 44032: 0x9B76, - 49994 - 44032: 0x9B77, - 49995 - 44032: 0x9B78, - 49996 - 44032: 0x9B79, - 49997 - 44032: 0x9B7A, - 49998 - 44032: 0x9B81, - 49999 - 44032: 0x9B82, - 50000 - 44032: 0x9B83, - 50001 - 44032: 0x9B84, - 50002 - 44032: 0x9B85, - 50003 - 44032: 0x9B86, - 50004 - 44032: 0x9B87, - 50005 - 44032: 0x9B88, - 50006 - 44032: 0x9B89, - 50007 - 44032: 0x9B8A, - 50008 - 44032: 0x9B8B, - 50009 - 44032: 0x9B8C, - 50010 - 44032: 0x9B8D, - 50011 - 44032: 0x9B8E, - 50012 - 44032: 0x9B8F, - 50013 - 44032: 0x9B90, - 50014 - 44032: 0x9B91, - 50015 - 44032: 0x9B92, - 50016 - 44032: 0x9B93, - 50017 - 44032: 0x9B94, - 50018 - 44032: 0x9B95, - 50019 - 44032: 0x9B96, - 50020 - 44032: 0x9B97, - 50021 - 44032: 0x9B98, - 50022 - 44032: 0x9B99, - 50023 - 44032: 0x9B9A, - 50024 - 44032: 0xBDE1, - 50025 - 44032: 0xBDE2, - 50026 - 44032: 0x9B9B, - 50027 - 44032: 0x9B9C, - 50028 - 44032: 0xBDE3, - 50029 - 44032: 0x9B9D, - 50030 - 44032: 0x9B9E, - 50031 - 44032: 0x9B9F, - 50032 - 44032: 0xBDE4, - 50033 - 44032: 0x9BA0, - 50034 - 44032: 0xBDE5, - 50035 - 44032: 0x9BA1, - 50036 - 44032: 0x9BA2, - 50037 - 44032: 0x9BA3, - 50038 - 44032: 0x9BA4, - 50039 - 44032: 0x9BA5, - 50040 - 44032: 0xBDE6, - 50041 - 44032: 0xBDE7, - 50042 - 44032: 0x9BA6, - 50043 - 44032: 0x9BA7, - 50044 - 44032: 0xBDE8, - 50045 - 44032: 0xBDE9, - 50046 - 44032: 0x9BA8, - 50047 - 44032: 0x9BA9, - 50048 - 44032: 0x9BAA, - 50049 - 44032: 0x9BAB, - 50050 - 44032: 0x9BAC, - 50051 - 44032: 0x9BAD, - 50052 - 44032: 0xBDEA, - 50053 - 44032: 0x9BAE, - 50054 - 44032: 0x9BAF, - 50055 - 44032: 0x9BB0, - 50056 - 44032: 0xBDEB, - 50057 - 44032: 0x9BB1, - 50058 - 44032: 0x9BB2, - 50059 - 44032: 0x9BB3, - 50060 - 44032: 0xBDEC, - 50061 - 44032: 0x9BB4, - 50062 - 44032: 0x9BB5, - 50063 - 44032: 0x9BB6, - 50064 - 44032: 0x9BB7, - 50065 - 44032: 0x9BB8, - 50066 - 44032: 0x9BB9, - 50067 - 44032: 0x9BBA, - 50068 - 44032: 0x9BBB, - 50069 - 44032: 0x9BBC, - 50070 - 44032: 0x9BBD, - 50071 - 44032: 0x9BBE, - 50072 - 44032: 0x9BBF, - 50073 - 44032: 0x9BC0, - 50074 - 44032: 0x9BC1, - 50075 - 44032: 0x9BC2, - 50076 - 44032: 0x9BC3, - 50077 - 44032: 0x9BC4, - 50078 - 44032: 0x9BC5, - 50079 - 44032: 0x9BC6, - 50080 - 44032: 0x9BC7, - 50081 - 44032: 0x9BC8, - 50082 - 44032: 0x9BC9, - 50083 - 44032: 0x9BCA, - 50084 - 44032: 0x9BCB, - 50085 - 44032: 0x9BCC, - 50086 - 44032: 0x9BCD, - 50087 - 44032: 0x9BCE, - 50088 - 44032: 0x9BCF, - 50089 - 44032: 0x9BD0, - 50090 - 44032: 0x9BD1, - 50091 - 44032: 0x9BD2, - 50092 - 44032: 0x9BD3, - 50093 - 44032: 0x9BD4, - 50094 - 44032: 0x9BD5, - 50095 - 44032: 0x9BD6, - 50096 - 44032: 0x9BD7, - 50097 - 44032: 0x9BD8, - 50098 - 44032: 0x9BD9, - 50099 - 44032: 0x9BDA, - 50100 - 44032: 0x9BDB, - 50101 - 44032: 0x9BDC, - 50102 - 44032: 0x9BDD, - 50103 - 44032: 0x9BDE, - 50104 - 44032: 0x9BDF, - 50105 - 44032: 0x9BE0, - 50106 - 44032: 0x9BE1, - 50107 - 44032: 0x9BE2, - 50108 - 44032: 0x9BE3, - 50109 - 44032: 0x9BE4, - 50110 - 44032: 0x9BE5, - 50111 - 44032: 0x9BE6, - 50112 - 44032: 0xBDED, - 50113 - 44032: 0x9BE7, - 50114 - 44032: 0x9BE8, - 50115 - 44032: 0x9BE9, - 50116 - 44032: 0x9BEA, - 50117 - 44032: 0x9BEB, - 50118 - 44032: 0x9BEC, - 50119 - 44032: 0x9BED, - 50120 - 44032: 0x9BEE, - 50121 - 44032: 0x9BEF, - 50122 - 44032: 0x9BF0, - 50123 - 44032: 0x9BF1, - 50124 - 44032: 0x9BF2, - 50125 - 44032: 0x9BF3, - 50126 - 44032: 0x9BF4, - 50127 - 44032: 0x9BF5, - 50128 - 44032: 0x9BF6, - 50129 - 44032: 0x9BF7, - 50130 - 44032: 0x9BF8, - 50131 - 44032: 0x9BF9, - 50132 - 44032: 0x9BFA, - 50133 - 44032: 0x9BFB, - 50134 - 44032: 0x9BFC, - 50135 - 44032: 0x9BFD, - 50136 - 44032: 0xBDEE, - 50137 - 44032: 0xBDEF, - 50138 - 44032: 0x9BFE, - 50139 - 44032: 0x9C41, - 50140 - 44032: 0xBDF0, - 50141 - 44032: 0x9C42, - 50142 - 44032: 0x9C43, - 50143 - 44032: 0xBDF1, - 50144 - 44032: 0xBDF2, - 50145 - 44032: 0x9C44, - 50146 - 44032: 0xBDF3, - 50147 - 44032: 0x9C45, - 50148 - 44032: 0x9C46, - 50149 - 44032: 0x9C47, - 50150 - 44032: 0x9C48, - 50151 - 44032: 0x9C49, - 50152 - 44032: 0xBDF4, - 50153 - 44032: 0xBDF5, - 50154 - 44032: 0x9C4A, - 50155 - 44032: 0x9C4B, - 50156 - 44032: 0x9C4C, - 50157 - 44032: 0xBDF6, - 50158 - 44032: 0x9C4D, - 50159 - 44032: 0x9C4E, - 50160 - 44032: 0x9C4F, - 50161 - 44032: 0x9C50, - 50162 - 44032: 0x9C51, - 50163 - 44032: 0x9C52, - 50164 - 44032: 0xBDF7, - 50165 - 44032: 0xBDF8, - 50166 - 44032: 0x9C53, - 50167 - 44032: 0x9C54, - 50168 - 44032: 0xBDF9, - 50169 - 44032: 0x9C55, - 50170 - 44032: 0x9C56, - 50171 - 44032: 0x9C57, - 50172 - 44032: 0x9C58, - 50173 - 44032: 0x9C59, - 50174 - 44032: 0x9C5A, - 50175 - 44032: 0x9C61, - 50176 - 44032: 0x9C62, - 50177 - 44032: 0x9C63, - 50178 - 44032: 0x9C64, - 50179 - 44032: 0x9C65, - 50180 - 44032: 0x9C66, - 50181 - 44032: 0x9C67, - 50182 - 44032: 0x9C68, - 50183 - 44032: 0x9C69, - 50184 - 44032: 0xBDFA, - 50185 - 44032: 0x9C6A, - 50186 - 44032: 0x9C6B, - 50187 - 44032: 0x9C6C, - 50188 - 44032: 0x9C6D, - 50189 - 44032: 0x9C6E, - 50190 - 44032: 0x9C6F, - 50191 - 44032: 0x9C70, - 50192 - 44032: 0xBDFB, - 50193 - 44032: 0x9C71, - 50194 - 44032: 0x9C72, - 50195 - 44032: 0x9C73, - 50196 - 44032: 0x9C74, - 50197 - 44032: 0x9C75, - 50198 - 44032: 0x9C76, - 50199 - 44032: 0x9C77, - 50200 - 44032: 0x9C78, - 50201 - 44032: 0x9C79, - 50202 - 44032: 0x9C7A, - 50203 - 44032: 0x9C81, - 50204 - 44032: 0x9C82, - 50205 - 44032: 0x9C83, - 50206 - 44032: 0x9C84, - 50207 - 44032: 0x9C85, - 50208 - 44032: 0x9C86, - 50209 - 44032: 0x9C87, - 50210 - 44032: 0x9C88, - 50211 - 44032: 0x9C89, - 50212 - 44032: 0xBDFC, - 50213 - 44032: 0x9C8A, - 50214 - 44032: 0x9C8B, - 50215 - 44032: 0x9C8C, - 50216 - 44032: 0x9C8D, - 50217 - 44032: 0x9C8E, - 50218 - 44032: 0x9C8F, - 50219 - 44032: 0x9C90, - 50220 - 44032: 0xBDFD, - 50221 - 44032: 0x9C91, - 50222 - 44032: 0x9C92, - 50223 - 44032: 0x9C93, - 50224 - 44032: 0xBDFE, - 50225 - 44032: 0x9C94, - 50226 - 44032: 0x9C95, - 50227 - 44032: 0x9C96, - 50228 - 44032: 0xBEA1, - 50229 - 44032: 0x9C97, - 50230 - 44032: 0x9C98, - 50231 - 44032: 0x9C99, - 50232 - 44032: 0x9C9A, - 50233 - 44032: 0x9C9B, - 50234 - 44032: 0x9C9C, - 50235 - 44032: 0x9C9D, - 50236 - 44032: 0xBEA2, - 50237 - 44032: 0xBEA3, - 50238 - 44032: 0x9C9E, - 50239 - 44032: 0x9C9F, - 50240 - 44032: 0x9CA0, - 50241 - 44032: 0x9CA1, - 50242 - 44032: 0x9CA2, - 50243 - 44032: 0x9CA3, - 50244 - 44032: 0x9CA4, - 50245 - 44032: 0x9CA5, - 50246 - 44032: 0x9CA6, - 50247 - 44032: 0x9CA7, - 50248 - 44032: 0xBEA4, - 50249 - 44032: 0x9CA8, - 50250 - 44032: 0x9CA9, - 50251 - 44032: 0x9CAA, - 50252 - 44032: 0x9CAB, - 50253 - 44032: 0x9CAC, - 50254 - 44032: 0x9CAD, - 50255 - 44032: 0x9CAE, - 50256 - 44032: 0x9CAF, - 50257 - 44032: 0x9CB0, - 50258 - 44032: 0x9CB1, - 50259 - 44032: 0x9CB2, - 50260 - 44032: 0x9CB3, - 50261 - 44032: 0x9CB4, - 50262 - 44032: 0x9CB5, - 50263 - 44032: 0x9CB6, - 50264 - 44032: 0x9CB7, - 50265 - 44032: 0x9CB8, - 50266 - 44032: 0x9CB9, - 50267 - 44032: 0x9CBA, - 50268 - 44032: 0x9CBB, - 50269 - 44032: 0x9CBC, - 50270 - 44032: 0x9CBD, - 50271 - 44032: 0x9CBE, - 50272 - 44032: 0x9CBF, - 50273 - 44032: 0x9CC0, - 50274 - 44032: 0x9CC1, - 50275 - 44032: 0x9CC2, - 50276 - 44032: 0xBEA5, - 50277 - 44032: 0xBEA6, - 50278 - 44032: 0x9CC3, - 50279 - 44032: 0x9CC4, - 50280 - 44032: 0xBEA7, - 50281 - 44032: 0x9CC5, - 50282 - 44032: 0x9CC6, - 50283 - 44032: 0x9CC7, - 50284 - 44032: 0xBEA8, - 50285 - 44032: 0x9CC8, - 50286 - 44032: 0x9CC9, - 50287 - 44032: 0x9CCA, - 50288 - 44032: 0x9CCB, - 50289 - 44032: 0x9CCC, - 50290 - 44032: 0x9CCD, - 50291 - 44032: 0x9CCE, - 50292 - 44032: 0xBEA9, - 50293 - 44032: 0xBEAA, - 50294 - 44032: 0x9CCF, - 50295 - 44032: 0x9CD0, - 50296 - 44032: 0x9CD1, - 50297 - 44032: 0xBEAB, - 50298 - 44032: 0x9CD2, - 50299 - 44032: 0x9CD3, - 50300 - 44032: 0x9CD4, - 50301 - 44032: 0x9CD5, - 50302 - 44032: 0x9CD6, - 50303 - 44032: 0x9CD7, - 50304 - 44032: 0xBEAC, - 50305 - 44032: 0x9CD8, - 50306 - 44032: 0x9CD9, - 50307 - 44032: 0x9CDA, - 50308 - 44032: 0x9CDB, - 50309 - 44032: 0x9CDC, - 50310 - 44032: 0x9CDD, - 50311 - 44032: 0x9CDE, - 50312 - 44032: 0x9CDF, - 50313 - 44032: 0x9CE0, - 50314 - 44032: 0x9CE1, - 50315 - 44032: 0x9CE2, - 50316 - 44032: 0x9CE3, - 50317 - 44032: 0x9CE4, - 50318 - 44032: 0x9CE5, - 50319 - 44032: 0x9CE6, - 50320 - 44032: 0x9CE7, - 50321 - 44032: 0x9CE8, - 50322 - 44032: 0x9CE9, - 50323 - 44032: 0x9CEA, - 50324 - 44032: 0xBEAD, - 50325 - 44032: 0x9CEB, - 50326 - 44032: 0x9CEC, - 50327 - 44032: 0x9CED, - 50328 - 44032: 0x9CEE, - 50329 - 44032: 0x9CEF, - 50330 - 44032: 0x9CF0, - 50331 - 44032: 0x9CF1, - 50332 - 44032: 0xBEAE, - 50333 - 44032: 0x9CF2, - 50334 - 44032: 0x9CF3, - 50335 - 44032: 0x9CF4, - 50336 - 44032: 0x9CF5, - 50337 - 44032: 0x9CF6, - 50338 - 44032: 0x9CF7, - 50339 - 44032: 0x9CF8, - 50340 - 44032: 0x9CF9, - 50341 - 44032: 0x9CFA, - 50342 - 44032: 0x9CFB, - 50343 - 44032: 0x9CFC, - 50344 - 44032: 0x9CFD, - 50345 - 44032: 0x9CFE, - 50346 - 44032: 0x9D41, - 50347 - 44032: 0x9D42, - 50348 - 44032: 0x9D43, - 50349 - 44032: 0x9D44, - 50350 - 44032: 0x9D45, - 50351 - 44032: 0x9D46, - 50352 - 44032: 0x9D47, - 50353 - 44032: 0x9D48, - 50354 - 44032: 0x9D49, - 50355 - 44032: 0x9D4A, - 50356 - 44032: 0x9D4B, - 50357 - 44032: 0x9D4C, - 50358 - 44032: 0x9D4D, - 50359 - 44032: 0x9D4E, - 50360 - 44032: 0xBEAF, - 50361 - 44032: 0x9D4F, - 50362 - 44032: 0x9D50, - 50363 - 44032: 0x9D51, - 50364 - 44032: 0xBEB0, - 50365 - 44032: 0x9D52, - 50366 - 44032: 0x9D53, - 50367 - 44032: 0x9D54, - 50368 - 44032: 0x9D55, - 50369 - 44032: 0x9D56, - 50370 - 44032: 0x9D57, - 50371 - 44032: 0x9D58, - 50372 - 44032: 0x9D59, - 50373 - 44032: 0x9D5A, - 50374 - 44032: 0x9D61, - 50375 - 44032: 0x9D62, - 50376 - 44032: 0x9D63, - 50377 - 44032: 0x9D64, - 50378 - 44032: 0x9D65, - 50379 - 44032: 0x9D66, - 50380 - 44032: 0x9D67, - 50381 - 44032: 0x9D68, - 50382 - 44032: 0x9D69, - 50383 - 44032: 0x9D6A, - 50384 - 44032: 0x9D6B, - 50385 - 44032: 0x9D6C, - 50386 - 44032: 0x9D6D, - 50387 - 44032: 0x9D6E, - 50388 - 44032: 0x9D6F, - 50389 - 44032: 0x9D70, - 50390 - 44032: 0x9D71, - 50391 - 44032: 0x9D72, - 50392 - 44032: 0x9D73, - 50393 - 44032: 0x9D74, - 50394 - 44032: 0x9D75, - 50395 - 44032: 0x9D76, - 50396 - 44032: 0x9D77, - 50397 - 44032: 0x9D78, - 50398 - 44032: 0x9D79, - 50399 - 44032: 0x9D7A, - 50400 - 44032: 0x9D81, - 50401 - 44032: 0x9D82, - 50402 - 44032: 0x9D83, - 50403 - 44032: 0x9D84, - 50404 - 44032: 0x9D85, - 50405 - 44032: 0x9D86, - 50406 - 44032: 0x9D87, - 50407 - 44032: 0x9D88, - 50408 - 44032: 0x9D89, - 50409 - 44032: 0xBEB1, - 50410 - 44032: 0x9D8A, - 50411 - 44032: 0x9D8B, - 50412 - 44032: 0x9D8C, - 50413 - 44032: 0x9D8D, - 50414 - 44032: 0x9D8E, - 50415 - 44032: 0x9D8F, - 50416 - 44032: 0xBEB2, - 50417 - 44032: 0xBEB3, - 50418 - 44032: 0x9D90, - 50419 - 44032: 0x9D91, - 50420 - 44032: 0xBEB4, - 50421 - 44032: 0x9D92, - 50422 - 44032: 0x9D93, - 50423 - 44032: 0x9D94, - 50424 - 44032: 0xBEB5, - 50425 - 44032: 0x9D95, - 50426 - 44032: 0xBEB6, - 50427 - 44032: 0x9D96, - 50428 - 44032: 0x9D97, - 50429 - 44032: 0x9D98, - 50430 - 44032: 0x9D99, - 50431 - 44032: 0xBEB7, - 50432 - 44032: 0xBEB8, - 50433 - 44032: 0xBEB9, - 50434 - 44032: 0x9D9A, - 50435 - 44032: 0x9D9B, - 50436 - 44032: 0x9D9C, - 50437 - 44032: 0x9D9D, - 50438 - 44032: 0x9D9E, - 50439 - 44032: 0x9D9F, - 50440 - 44032: 0x9DA0, - 50441 - 44032: 0x9DA1, - 50442 - 44032: 0x9DA2, - 50443 - 44032: 0x9DA3, - 50444 - 44032: 0xBEBA, - 50445 - 44032: 0x9DA4, - 50446 - 44032: 0x9DA5, - 50447 - 44032: 0x9DA6, - 50448 - 44032: 0xBEBB, - 50449 - 44032: 0x9DA7, - 50450 - 44032: 0x9DA8, - 50451 - 44032: 0x9DA9, - 50452 - 44032: 0xBEBC, - 50453 - 44032: 0x9DAA, - 50454 - 44032: 0x9DAB, - 50455 - 44032: 0x9DAC, - 50456 - 44032: 0x9DAD, - 50457 - 44032: 0x9DAE, - 50458 - 44032: 0x9DAF, - 50459 - 44032: 0x9DB0, - 50460 - 44032: 0xBEBD, - 50461 - 44032: 0x9DB1, - 50462 - 44032: 0x9DB2, - 50463 - 44032: 0x9DB3, - 50464 - 44032: 0x9DB4, - 50465 - 44032: 0x9DB5, - 50466 - 44032: 0x9DB6, - 50467 - 44032: 0x9DB7, - 50468 - 44032: 0x9DB8, - 50469 - 44032: 0x9DB9, - 50470 - 44032: 0x9DBA, - 50471 - 44032: 0x9DBB, - 50472 - 44032: 0xBEBE, - 50473 - 44032: 0xBEBF, - 50474 - 44032: 0x9DBC, - 50475 - 44032: 0x9DBD, - 50476 - 44032: 0xBEC0, - 50477 - 44032: 0x9DBE, - 50478 - 44032: 0x9DBF, - 50479 - 44032: 0x9DC0, - 50480 - 44032: 0xBEC1, - 50481 - 44032: 0x9DC1, - 50482 - 44032: 0x9DC2, - 50483 - 44032: 0x9DC3, - 50484 - 44032: 0x9DC4, - 50485 - 44032: 0x9DC5, - 50486 - 44032: 0x9DC6, - 50487 - 44032: 0x9DC7, - 50488 - 44032: 0xBEC2, - 50489 - 44032: 0xBEC3, - 50490 - 44032: 0x9DC8, - 50491 - 44032: 0xBEC4, - 50492 - 44032: 0x9DC9, - 50493 - 44032: 0xBEC5, - 50494 - 44032: 0x9DCA, - 50495 - 44032: 0x9DCB, - 50496 - 44032: 0x9DCC, - 50497 - 44032: 0x9DCD, - 50498 - 44032: 0x9DCE, - 50499 - 44032: 0x9DCF, - 50500 - 44032: 0xBEC6, - 50501 - 44032: 0xBEC7, - 50502 - 44032: 0x9DD0, - 50503 - 44032: 0x9DD1, - 50504 - 44032: 0xBEC8, - 50505 - 44032: 0xBEC9, - 50506 - 44032: 0xBECA, - 50507 - 44032: 0x9DD2, - 50508 - 44032: 0xBECB, - 50509 - 44032: 0xBECC, - 50510 - 44032: 0xBECD, - 50511 - 44032: 0x9DD3, - 50512 - 44032: 0x9DD4, - 50513 - 44032: 0x9DD5, - 50514 - 44032: 0x9DD6, - 50515 - 44032: 0xBECE, - 50516 - 44032: 0xBECF, - 50517 - 44032: 0xBED0, - 50518 - 44032: 0x9DD7, - 50519 - 44032: 0xBED1, - 50520 - 44032: 0xBED2, - 50521 - 44032: 0xBED3, - 50522 - 44032: 0x9DD8, - 50523 - 44032: 0x9DD9, - 50524 - 44032: 0x9DDA, - 50525 - 44032: 0xBED4, - 50526 - 44032: 0xBED5, - 50527 - 44032: 0x9DDB, - 50528 - 44032: 0xBED6, - 50529 - 44032: 0xBED7, - 50530 - 44032: 0x9DDC, - 50531 - 44032: 0x9DDD, - 50532 - 44032: 0xBED8, - 50533 - 44032: 0x9DDE, - 50534 - 44032: 0x9DDF, - 50535 - 44032: 0x9DE0, - 50536 - 44032: 0xBED9, - 50537 - 44032: 0x9DE1, - 50538 - 44032: 0x9DE2, - 50539 - 44032: 0x9DE3, - 50540 - 44032: 0x9DE4, - 50541 - 44032: 0x9DE5, - 50542 - 44032: 0x9DE6, - 50543 - 44032: 0x9DE7, - 50544 - 44032: 0xBEDA, - 50545 - 44032: 0xBEDB, - 50546 - 44032: 0x9DE8, - 50547 - 44032: 0xBEDC, - 50548 - 44032: 0xBEDD, - 50549 - 44032: 0xBEDE, - 50550 - 44032: 0x9DE9, - 50551 - 44032: 0x9DEA, - 50552 - 44032: 0x9DEB, - 50553 - 44032: 0x9DEC, - 50554 - 44032: 0x9DED, - 50555 - 44032: 0x9DEE, - 50556 - 44032: 0xBEDF, - 50557 - 44032: 0xBEE0, - 50558 - 44032: 0x9DEF, - 50559 - 44032: 0x9DF0, - 50560 - 44032: 0xBEE1, - 50561 - 44032: 0x9DF1, - 50562 - 44032: 0x9DF2, - 50563 - 44032: 0x9DF3, - 50564 - 44032: 0xBEE2, - 50565 - 44032: 0x9DF4, - 50566 - 44032: 0x9DF5, - 50567 - 44032: 0xBEE3, - 50568 - 44032: 0x9DF6, - 50569 - 44032: 0x9DF7, - 50570 - 44032: 0x9DF8, - 50571 - 44032: 0x9DF9, - 50572 - 44032: 0xBEE4, - 50573 - 44032: 0xBEE5, - 50574 - 44032: 0x9DFA, - 50575 - 44032: 0xBEE6, - 50576 - 44032: 0x9DFB, - 50577 - 44032: 0xBEE7, - 50578 - 44032: 0x9DFC, - 50579 - 44032: 0x9DFD, - 50580 - 44032: 0x9DFE, - 50581 - 44032: 0xBEE8, - 50582 - 44032: 0x9E41, - 50583 - 44032: 0xBEE9, - 50584 - 44032: 0xBEEA, - 50585 - 44032: 0x9E42, - 50586 - 44032: 0x9E43, - 50587 - 44032: 0x9E44, - 50588 - 44032: 0xBEEB, - 50589 - 44032: 0x9E45, - 50590 - 44032: 0x9E46, - 50591 - 44032: 0x9E47, - 50592 - 44032: 0xBEEC, - 50593 - 44032: 0x9E48, - 50594 - 44032: 0x9E49, - 50595 - 44032: 0x9E4A, - 50596 - 44032: 0x9E4B, - 50597 - 44032: 0x9E4C, - 50598 - 44032: 0x9E4D, - 50599 - 44032: 0x9E4E, - 50600 - 44032: 0x9E4F, - 50601 - 44032: 0xBEED, - 50602 - 44032: 0x9E50, - 50603 - 44032: 0x9E51, - 50604 - 44032: 0x9E52, - 50605 - 44032: 0x9E53, - 50606 - 44032: 0x9E54, - 50607 - 44032: 0x9E55, - 50608 - 44032: 0x9E56, - 50609 - 44032: 0x9E57, - 50610 - 44032: 0x9E58, - 50611 - 44032: 0x9E59, - 50612 - 44032: 0xBEEE, - 50613 - 44032: 0xBEEF, - 50614 - 44032: 0x9E5A, - 50615 - 44032: 0x9E61, - 50616 - 44032: 0xBEF0, - 50617 - 44032: 0xBEF1, - 50618 - 44032: 0x9E62, - 50619 - 44032: 0xBEF2, - 50620 - 44032: 0xBEF3, - 50621 - 44032: 0xBEF4, - 50622 - 44032: 0xBEF5, - 50623 - 44032: 0x9E63, - 50624 - 44032: 0x9E64, - 50625 - 44032: 0x9E65, - 50626 - 44032: 0x9E66, - 50627 - 44032: 0x9E67, - 50628 - 44032: 0xBEF6, - 50629 - 44032: 0xBEF7, - 50630 - 44032: 0xBEF8, - 50631 - 44032: 0xBEF9, - 50632 - 44032: 0xBEFA, - 50633 - 44032: 0xBEFB, - 50634 - 44032: 0xBEFC, - 50635 - 44032: 0x9E68, - 50636 - 44032: 0xBEFD, - 50637 - 44032: 0x9E69, - 50638 - 44032: 0xBEFE, - 50639 - 44032: 0x9E6A, - 50640 - 44032: 0xBFA1, - 50641 - 44032: 0xBFA2, - 50642 - 44032: 0x9E6B, - 50643 - 44032: 0x9E6C, - 50644 - 44032: 0xBFA3, - 50645 - 44032: 0x9E6D, - 50646 - 44032: 0x9E6E, - 50647 - 44032: 0x9E6F, - 50648 - 44032: 0xBFA4, - 50649 - 44032: 0x9E70, - 50650 - 44032: 0x9E71, - 50651 - 44032: 0x9E72, - 50652 - 44032: 0x9E73, - 50653 - 44032: 0x9E74, - 50654 - 44032: 0x9E75, - 50655 - 44032: 0x9E76, - 50656 - 44032: 0xBFA5, - 50657 - 44032: 0xBFA6, - 50658 - 44032: 0x9E77, - 50659 - 44032: 0xBFA7, - 50660 - 44032: 0x9E78, - 50661 - 44032: 0xBFA8, - 50662 - 44032: 0x9E79, - 50663 - 44032: 0x9E7A, - 50664 - 44032: 0x9E81, - 50665 - 44032: 0x9E82, - 50666 - 44032: 0x9E83, - 50667 - 44032: 0x9E84, - 50668 - 44032: 0xBFA9, - 50669 - 44032: 0xBFAA, - 50670 - 44032: 0xBFAB, - 50671 - 44032: 0x9E85, - 50672 - 44032: 0xBFAC, - 50673 - 44032: 0x9E86, - 50674 - 44032: 0x9E87, - 50675 - 44032: 0x9E88, - 50676 - 44032: 0xBFAD, - 50677 - 44032: 0x9E89, - 50678 - 44032: 0xBFAE, - 50679 - 44032: 0xBFAF, - 50680 - 44032: 0x9E8A, - 50681 - 44032: 0x9E8B, - 50682 - 44032: 0x9E8C, - 50683 - 44032: 0x9E8D, - 50684 - 44032: 0xBFB0, - 50685 - 44032: 0xBFB1, - 50686 - 44032: 0xBFB2, - 50687 - 44032: 0xBFB3, - 50688 - 44032: 0xBFB4, - 50689 - 44032: 0xBFB5, - 50690 - 44032: 0x9E8E, - 50691 - 44032: 0x9E8F, - 50692 - 44032: 0x9E90, - 50693 - 44032: 0xBFB6, - 50694 - 44032: 0xBFB7, - 50695 - 44032: 0xBFB8, - 50696 - 44032: 0xBFB9, - 50697 - 44032: 0x9E91, - 50698 - 44032: 0x9E92, - 50699 - 44032: 0x9E93, - 50700 - 44032: 0xBFBA, - 50701 - 44032: 0x9E94, - 50702 - 44032: 0x9E95, - 50703 - 44032: 0x9E96, - 50704 - 44032: 0xBFBB, - 50705 - 44032: 0x9E97, - 50706 - 44032: 0x9E98, - 50707 - 44032: 0x9E99, - 50708 - 44032: 0x9E9A, - 50709 - 44032: 0x9E9B, - 50710 - 44032: 0x9E9C, - 50711 - 44032: 0x9E9D, - 50712 - 44032: 0xBFBC, - 50713 - 44032: 0xBFBD, - 50714 - 44032: 0x9E9E, - 50715 - 44032: 0xBFBE, - 50716 - 44032: 0xBFBF, - 50717 - 44032: 0x9E9F, - 50718 - 44032: 0x9EA0, - 50719 - 44032: 0x9EA1, - 50720 - 44032: 0x9EA2, - 50721 - 44032: 0x9EA3, - 50722 - 44032: 0x9EA4, - 50723 - 44032: 0x9EA5, - 50724 - 44032: 0xBFC0, - 50725 - 44032: 0xBFC1, - 50726 - 44032: 0x9EA6, - 50727 - 44032: 0x9EA7, - 50728 - 44032: 0xBFC2, - 50729 - 44032: 0x9EA8, - 50730 - 44032: 0x9EA9, - 50731 - 44032: 0x9EAA, - 50732 - 44032: 0xBFC3, - 50733 - 44032: 0xBFC4, - 50734 - 44032: 0xBFC5, - 50735 - 44032: 0x9EAB, - 50736 - 44032: 0xBFC6, - 50737 - 44032: 0x9EAC, - 50738 - 44032: 0x9EAD, - 50739 - 44032: 0xBFC7, - 50740 - 44032: 0xBFC8, - 50741 - 44032: 0xBFC9, - 50742 - 44032: 0x9EAE, - 50743 - 44032: 0xBFCA, - 50744 - 44032: 0x9EAF, - 50745 - 44032: 0xBFCB, - 50746 - 44032: 0x9EB0, - 50747 - 44032: 0xBFCC, - 50748 - 44032: 0x9EB1, - 50749 - 44032: 0x9EB2, - 50750 - 44032: 0x9EB3, - 50751 - 44032: 0x9EB4, - 50752 - 44032: 0xBFCD, - 50753 - 44032: 0xBFCE, - 50754 - 44032: 0x9EB5, - 50755 - 44032: 0x9EB6, - 50756 - 44032: 0xBFCF, - 50757 - 44032: 0x9EB7, - 50758 - 44032: 0x9EB8, - 50759 - 44032: 0x9EB9, - 50760 - 44032: 0xBFD0, - 50761 - 44032: 0x9EBA, - 50762 - 44032: 0x9EBB, - 50763 - 44032: 0x9EBC, - 50764 - 44032: 0x9EBD, - 50765 - 44032: 0x9EBE, - 50766 - 44032: 0x9EBF, - 50767 - 44032: 0x9EC0, - 50768 - 44032: 0xBFD1, - 50769 - 44032: 0xBFD2, - 50770 - 44032: 0x9EC1, - 50771 - 44032: 0xBFD3, - 50772 - 44032: 0xBFD4, - 50773 - 44032: 0xBFD5, - 50774 - 44032: 0x9EC2, - 50775 - 44032: 0x9EC3, - 50776 - 44032: 0x9EC4, - 50777 - 44032: 0x9EC5, - 50778 - 44032: 0x9EC6, - 50779 - 44032: 0x9EC7, - 50780 - 44032: 0xBFD6, - 50781 - 44032: 0xBFD7, - 50782 - 44032: 0x9EC8, - 50783 - 44032: 0x9EC9, - 50784 - 44032: 0xBFD8, - 50785 - 44032: 0x9ECA, - 50786 - 44032: 0x9ECB, - 50787 - 44032: 0x9ECC, - 50788 - 44032: 0x9ECD, - 50789 - 44032: 0x9ECE, - 50790 - 44032: 0x9ECF, - 50791 - 44032: 0x9ED0, - 50792 - 44032: 0x9ED1, - 50793 - 44032: 0x9ED2, - 50794 - 44032: 0x9ED3, - 50795 - 44032: 0x9ED4, - 50796 - 44032: 0xBFD9, - 50797 - 44032: 0x9ED5, - 50798 - 44032: 0x9ED6, - 50799 - 44032: 0xBFDA, - 50800 - 44032: 0x9ED7, - 50801 - 44032: 0xBFDB, - 50802 - 44032: 0x9ED8, - 50803 - 44032: 0x9ED9, - 50804 - 44032: 0x9EDA, - 50805 - 44032: 0x9EDB, - 50806 - 44032: 0x9EDC, - 50807 - 44032: 0x9EDD, - 50808 - 44032: 0xBFDC, - 50809 - 44032: 0xBFDD, - 50810 - 44032: 0x9EDE, - 50811 - 44032: 0x9EDF, - 50812 - 44032: 0xBFDE, - 50813 - 44032: 0x9EE0, - 50814 - 44032: 0x9EE1, - 50815 - 44032: 0x9EE2, - 50816 - 44032: 0xBFDF, - 50817 - 44032: 0x9EE3, - 50818 - 44032: 0x9EE4, - 50819 - 44032: 0x9EE5, - 50820 - 44032: 0x9EE6, - 50821 - 44032: 0x9EE7, - 50822 - 44032: 0x9EE8, - 50823 - 44032: 0x9EE9, - 50824 - 44032: 0xBFE0, - 50825 - 44032: 0xBFE1, - 50826 - 44032: 0x9EEA, - 50827 - 44032: 0xBFE2, - 50828 - 44032: 0x9EEB, - 50829 - 44032: 0xBFE3, - 50830 - 44032: 0x9EEC, - 50831 - 44032: 0x9EED, - 50832 - 44032: 0x9EEE, - 50833 - 44032: 0x9EEF, - 50834 - 44032: 0x9EF0, - 50835 - 44032: 0x9EF1, - 50836 - 44032: 0xBFE4, - 50837 - 44032: 0xBFE5, - 50838 - 44032: 0x9EF2, - 50839 - 44032: 0x9EF3, - 50840 - 44032: 0xBFE6, - 50841 - 44032: 0x9EF4, - 50842 - 44032: 0x9EF5, - 50843 - 44032: 0x9EF6, - 50844 - 44032: 0xBFE7, - 50845 - 44032: 0x9EF7, - 50846 - 44032: 0x9EF8, - 50847 - 44032: 0x9EF9, - 50848 - 44032: 0x9EFA, - 50849 - 44032: 0x9EFB, - 50850 - 44032: 0x9EFC, - 50851 - 44032: 0x9EFD, - 50852 - 44032: 0xBFE8, - 50853 - 44032: 0xBFE9, - 50854 - 44032: 0x9EFE, - 50855 - 44032: 0xBFEA, - 50856 - 44032: 0x9F41, - 50857 - 44032: 0xBFEB, - 50858 - 44032: 0x9F42, - 50859 - 44032: 0x9F43, - 50860 - 44032: 0x9F44, - 50861 - 44032: 0x9F45, - 50862 - 44032: 0x9F46, - 50863 - 44032: 0x9F47, - 50864 - 44032: 0xBFEC, - 50865 - 44032: 0xBFED, - 50866 - 44032: 0x9F48, - 50867 - 44032: 0x9F49, - 50868 - 44032: 0xBFEE, - 50869 - 44032: 0x9F4A, - 50870 - 44032: 0x9F4B, - 50871 - 44032: 0x9F4C, - 50872 - 44032: 0xBFEF, - 50873 - 44032: 0xBFF0, - 50874 - 44032: 0xBFF1, - 50875 - 44032: 0x9F4D, - 50876 - 44032: 0x9F4E, - 50877 - 44032: 0x9F4F, - 50878 - 44032: 0x9F50, - 50879 - 44032: 0x9F51, - 50880 - 44032: 0xBFF2, - 50881 - 44032: 0xBFF3, - 50882 - 44032: 0x9F52, - 50883 - 44032: 0xBFF4, - 50884 - 44032: 0x9F53, - 50885 - 44032: 0xBFF5, - 50886 - 44032: 0x9F54, - 50887 - 44032: 0x9F55, - 50888 - 44032: 0x9F56, - 50889 - 44032: 0x9F57, - 50890 - 44032: 0x9F58, - 50891 - 44032: 0x9F59, - 50892 - 44032: 0xBFF6, - 50893 - 44032: 0xBFF7, - 50894 - 44032: 0x9F5A, - 50895 - 44032: 0x9F61, - 50896 - 44032: 0xBFF8, - 50897 - 44032: 0x9F62, - 50898 - 44032: 0x9F63, - 50899 - 44032: 0x9F64, - 50900 - 44032: 0xBFF9, - 50901 - 44032: 0x9F65, - 50902 - 44032: 0x9F66, - 50903 - 44032: 0x9F67, - 50904 - 44032: 0x9F68, - 50905 - 44032: 0x9F69, - 50906 - 44032: 0x9F6A, - 50907 - 44032: 0x9F6B, - 50908 - 44032: 0xBFFA, - 50909 - 44032: 0xBFFB, - 50910 - 44032: 0x9F6C, - 50911 - 44032: 0x9F6D, - 50912 - 44032: 0xBFFC, - 50913 - 44032: 0xBFFD, - 50914 - 44032: 0x9F6E, - 50915 - 44032: 0x9F6F, - 50916 - 44032: 0x9F70, - 50917 - 44032: 0x9F71, - 50918 - 44032: 0x9F72, - 50919 - 44032: 0x9F73, - 50920 - 44032: 0xBFFE, - 50921 - 44032: 0xC0A1, - 50922 - 44032: 0x9F74, - 50923 - 44032: 0x9F75, - 50924 - 44032: 0xC0A2, - 50925 - 44032: 0x9F76, - 50926 - 44032: 0x9F77, - 50927 - 44032: 0x9F78, - 50928 - 44032: 0xC0A3, - 50929 - 44032: 0x9F79, - 50930 - 44032: 0x9F7A, - 50931 - 44032: 0x9F81, - 50932 - 44032: 0x9F82, - 50933 - 44032: 0x9F83, - 50934 - 44032: 0x9F84, - 50935 - 44032: 0x9F85, - 50936 - 44032: 0xC0A4, - 50937 - 44032: 0xC0A5, - 50938 - 44032: 0x9F86, - 50939 - 44032: 0x9F87, - 50940 - 44032: 0x9F88, - 50941 - 44032: 0xC0A6, - 50942 - 44032: 0x9F89, - 50943 - 44032: 0x9F8A, - 50944 - 44032: 0x9F8B, - 50945 - 44032: 0x9F8C, - 50946 - 44032: 0x9F8D, - 50947 - 44032: 0x9F8E, - 50948 - 44032: 0xC0A7, - 50949 - 44032: 0xC0A8, - 50950 - 44032: 0x9F8F, - 50951 - 44032: 0x9F90, - 50952 - 44032: 0xC0A9, - 50953 - 44032: 0x9F91, - 50954 - 44032: 0x9F92, - 50955 - 44032: 0x9F93, - 50956 - 44032: 0xC0AA, - 50957 - 44032: 0x9F94, - 50958 - 44032: 0x9F95, - 50959 - 44032: 0x9F96, - 50960 - 44032: 0x9F97, - 50961 - 44032: 0x9F98, - 50962 - 44032: 0x9F99, - 50963 - 44032: 0x9F9A, - 50964 - 44032: 0xC0AB, - 50965 - 44032: 0xC0AC, - 50966 - 44032: 0x9F9B, - 50967 - 44032: 0xC0AD, - 50968 - 44032: 0x9F9C, - 50969 - 44032: 0xC0AE, - 50970 - 44032: 0x9F9D, - 50971 - 44032: 0x9F9E, - 50972 - 44032: 0x9F9F, - 50973 - 44032: 0x9FA0, - 50974 - 44032: 0x9FA1, - 50975 - 44032: 0x9FA2, - 50976 - 44032: 0xC0AF, - 50977 - 44032: 0xC0B0, - 50978 - 44032: 0x9FA3, - 50979 - 44032: 0x9FA4, - 50980 - 44032: 0xC0B1, - 50981 - 44032: 0x9FA5, - 50982 - 44032: 0x9FA6, - 50983 - 44032: 0x9FA7, - 50984 - 44032: 0xC0B2, - 50985 - 44032: 0x9FA8, - 50986 - 44032: 0x9FA9, - 50987 - 44032: 0x9FAA, - 50988 - 44032: 0x9FAB, - 50989 - 44032: 0x9FAC, - 50990 - 44032: 0x9FAD, - 50991 - 44032: 0x9FAE, - 50992 - 44032: 0xC0B3, - 50993 - 44032: 0xC0B4, - 50994 - 44032: 0x9FAF, - 50995 - 44032: 0xC0B5, - 50996 - 44032: 0x9FB0, - 50997 - 44032: 0xC0B6, - 50998 - 44032: 0x9FB1, - 50999 - 44032: 0xC0B7, - 51000 - 44032: 0x9FB2, - 51001 - 44032: 0x9FB3, - 51002 - 44032: 0x9FB4, - 51003 - 44032: 0x9FB5, - 51004 - 44032: 0xC0B8, - 51005 - 44032: 0xC0B9, - 51006 - 44032: 0x9FB6, - 51007 - 44032: 0x9FB7, - 51008 - 44032: 0xC0BA, - 51009 - 44032: 0x9FB8, - 51010 - 44032: 0x9FB9, - 51011 - 44032: 0x9FBA, - 51012 - 44032: 0xC0BB, - 51013 - 44032: 0x9FBB, - 51014 - 44032: 0x9FBC, - 51015 - 44032: 0x9FBD, - 51016 - 44032: 0x9FBE, - 51017 - 44032: 0x9FBF, - 51018 - 44032: 0xC0BC, - 51019 - 44032: 0x9FC0, - 51020 - 44032: 0xC0BD, - 51021 - 44032: 0xC0BE, - 51022 - 44032: 0x9FC1, - 51023 - 44032: 0xC0BF, - 51024 - 44032: 0x9FC2, - 51025 - 44032: 0xC0C0, - 51026 - 44032: 0xC0C1, - 51027 - 44032: 0xC0C2, - 51028 - 44032: 0xC0C3, - 51029 - 44032: 0xC0C4, - 51030 - 44032: 0xC0C5, - 51031 - 44032: 0xC0C6, - 51032 - 44032: 0xC0C7, - 51033 - 44032: 0x9FC3, - 51034 - 44032: 0x9FC4, - 51035 - 44032: 0x9FC5, - 51036 - 44032: 0xC0C8, - 51037 - 44032: 0x9FC6, - 51038 - 44032: 0x9FC7, - 51039 - 44032: 0x9FC8, - 51040 - 44032: 0xC0C9, - 51041 - 44032: 0x9FC9, - 51042 - 44032: 0x9FCA, - 51043 - 44032: 0x9FCB, - 51044 - 44032: 0x9FCC, - 51045 - 44032: 0x9FCD, - 51046 - 44032: 0x9FCE, - 51047 - 44032: 0x9FCF, - 51048 - 44032: 0xC0CA, - 51049 - 44032: 0x9FD0, - 51050 - 44032: 0x9FD1, - 51051 - 44032: 0xC0CB, - 51052 - 44032: 0x9FD2, - 51053 - 44032: 0x9FD3, - 51054 - 44032: 0x9FD4, - 51055 - 44032: 0x9FD5, - 51056 - 44032: 0x9FD6, - 51057 - 44032: 0x9FD7, - 51058 - 44032: 0x9FD8, - 51059 - 44032: 0x9FD9, - 51060 - 44032: 0xC0CC, - 51061 - 44032: 0xC0CD, - 51062 - 44032: 0x9FDA, - 51063 - 44032: 0x9FDB, - 51064 - 44032: 0xC0CE, - 51065 - 44032: 0x9FDC, - 51066 - 44032: 0x9FDD, - 51067 - 44032: 0x9FDE, - 51068 - 44032: 0xC0CF, - 51069 - 44032: 0xC0D0, - 51070 - 44032: 0xC0D1, - 51071 - 44032: 0x9FDF, - 51072 - 44032: 0x9FE0, - 51073 - 44032: 0x9FE1, - 51074 - 44032: 0x9FE2, - 51075 - 44032: 0xC0D2, - 51076 - 44032: 0xC0D3, - 51077 - 44032: 0xC0D4, - 51078 - 44032: 0x9FE3, - 51079 - 44032: 0xC0D5, - 51080 - 44032: 0xC0D6, - 51081 - 44032: 0xC0D7, - 51082 - 44032: 0xC0D8, - 51083 - 44032: 0x9FE4, - 51084 - 44032: 0x9FE5, - 51085 - 44032: 0x9FE6, - 51086 - 44032: 0xC0D9, - 51087 - 44032: 0x9FE7, - 51088 - 44032: 0xC0DA, - 51089 - 44032: 0xC0DB, - 51090 - 44032: 0x9FE8, - 51091 - 44032: 0x9FE9, - 51092 - 44032: 0xC0DC, - 51093 - 44032: 0x9FEA, - 51094 - 44032: 0xC0DD, - 51095 - 44032: 0xC0DE, - 51096 - 44032: 0xC0DF, - 51097 - 44032: 0x9FEB, - 51098 - 44032: 0xC0E0, - 51099 - 44032: 0x9FEC, - 51100 - 44032: 0x9FED, - 51101 - 44032: 0x9FEE, - 51102 - 44032: 0x9FEF, - 51103 - 44032: 0x9FF0, - 51104 - 44032: 0xC0E1, - 51105 - 44032: 0xC0E2, - 51106 - 44032: 0x9FF1, - 51107 - 44032: 0xC0E3, - 51108 - 44032: 0xC0E4, - 51109 - 44032: 0xC0E5, - 51110 - 44032: 0xC0E6, - 51111 - 44032: 0x9FF2, - 51112 - 44032: 0x9FF3, - 51113 - 44032: 0x9FF4, - 51114 - 44032: 0x9FF5, - 51115 - 44032: 0x9FF6, - 51116 - 44032: 0xC0E7, - 51117 - 44032: 0xC0E8, - 51118 - 44032: 0x9FF7, - 51119 - 44032: 0x9FF8, - 51120 - 44032: 0xC0E9, - 51121 - 44032: 0x9FF9, - 51122 - 44032: 0x9FFA, - 51123 - 44032: 0x9FFB, - 51124 - 44032: 0xC0EA, - 51125 - 44032: 0x9FFC, - 51126 - 44032: 0x9FFD, - 51127 - 44032: 0x9FFE, - 51128 - 44032: 0xA041, - 51129 - 44032: 0xA042, - 51130 - 44032: 0xA043, - 51131 - 44032: 0xA044, - 51132 - 44032: 0xC0EB, - 51133 - 44032: 0xC0EC, - 51134 - 44032: 0xA045, - 51135 - 44032: 0xC0ED, - 51136 - 44032: 0xC0EE, - 51137 - 44032: 0xC0EF, - 51138 - 44032: 0xA046, - 51139 - 44032: 0xA047, - 51140 - 44032: 0xA048, - 51141 - 44032: 0xA049, - 51142 - 44032: 0xA04A, - 51143 - 44032: 0xA04B, - 51144 - 44032: 0xC0F0, - 51145 - 44032: 0xC0F1, - 51146 - 44032: 0xA04C, - 51147 - 44032: 0xA04D, - 51148 - 44032: 0xC0F2, - 51149 - 44032: 0xA04E, - 51150 - 44032: 0xC0F3, - 51151 - 44032: 0xA04F, - 51152 - 44032: 0xC0F4, - 51153 - 44032: 0xA050, - 51154 - 44032: 0xA051, - 51155 - 44032: 0xA052, - 51156 - 44032: 0xA053, - 51157 - 44032: 0xA054, - 51158 - 44032: 0xA055, - 51159 - 44032: 0xA056, - 51160 - 44032: 0xC0F5, - 51161 - 44032: 0xA057, - 51162 - 44032: 0xA058, - 51163 - 44032: 0xA059, - 51164 - 44032: 0xA05A, - 51165 - 44032: 0xC0F6, - 51166 - 44032: 0xA061, - 51167 - 44032: 0xA062, - 51168 - 44032: 0xA063, - 51169 - 44032: 0xA064, - 51170 - 44032: 0xA065, - 51171 - 44032: 0xA066, - 51172 - 44032: 0xC0F7, - 51173 - 44032: 0xA067, - 51174 - 44032: 0xA068, - 51175 - 44032: 0xA069, - 51176 - 44032: 0xC0F8, - 51177 - 44032: 0xA06A, - 51178 - 44032: 0xA06B, - 51179 - 44032: 0xA06C, - 51180 - 44032: 0xC0F9, - 51181 - 44032: 0xA06D, - 51182 - 44032: 0xA06E, - 51183 - 44032: 0xA06F, - 51184 - 44032: 0xA070, - 51185 - 44032: 0xA071, - 51186 - 44032: 0xA072, - 51187 - 44032: 0xA073, - 51188 - 44032: 0xA074, - 51189 - 44032: 0xA075, - 51190 - 44032: 0xA076, - 51191 - 44032: 0xA077, - 51192 - 44032: 0xA078, - 51193 - 44032: 0xA079, - 51194 - 44032: 0xA07A, - 51195 - 44032: 0xA081, - 51196 - 44032: 0xA082, - 51197 - 44032: 0xA083, - 51198 - 44032: 0xA084, - 51199 - 44032: 0xA085, - 51200 - 44032: 0xC0FA, - 51201 - 44032: 0xC0FB, - 51202 - 44032: 0xA086, - 51203 - 44032: 0xA087, - 51204 - 44032: 0xC0FC, - 51205 - 44032: 0xA088, - 51206 - 44032: 0xA089, - 51207 - 44032: 0xA08A, - 51208 - 44032: 0xC0FD, - 51209 - 44032: 0xA08B, - 51210 - 44032: 0xC0FE, - 51211 - 44032: 0xA08C, - 51212 - 44032: 0xA08D, - 51213 - 44032: 0xA08E, - 51214 - 44032: 0xA08F, - 51215 - 44032: 0xA090, - 51216 - 44032: 0xC1A1, - 51217 - 44032: 0xC1A2, - 51218 - 44032: 0xA091, - 51219 - 44032: 0xC1A3, - 51220 - 44032: 0xA092, - 51221 - 44032: 0xC1A4, - 51222 - 44032: 0xC1A5, - 51223 - 44032: 0xA093, - 51224 - 44032: 0xA094, - 51225 - 44032: 0xA095, - 51226 - 44032: 0xA096, - 51227 - 44032: 0xA097, - 51228 - 44032: 0xC1A6, - 51229 - 44032: 0xC1A7, - 51230 - 44032: 0xA098, - 51231 - 44032: 0xA099, - 51232 - 44032: 0xC1A8, - 51233 - 44032: 0xA09A, - 51234 - 44032: 0xA09B, - 51235 - 44032: 0xA09C, - 51236 - 44032: 0xC1A9, - 51237 - 44032: 0xA09D, - 51238 - 44032: 0xA09E, - 51239 - 44032: 0xA09F, - 51240 - 44032: 0xA0A0, - 51241 - 44032: 0xA0A1, - 51242 - 44032: 0xA0A2, - 51243 - 44032: 0xA0A3, - 51244 - 44032: 0xC1AA, - 51245 - 44032: 0xC1AB, - 51246 - 44032: 0xA0A4, - 51247 - 44032: 0xC1AC, - 51248 - 44032: 0xA0A5, - 51249 - 44032: 0xC1AD, - 51250 - 44032: 0xA0A6, - 51251 - 44032: 0xA0A7, - 51252 - 44032: 0xA0A8, - 51253 - 44032: 0xA0A9, - 51254 - 44032: 0xA0AA, - 51255 - 44032: 0xA0AB, - 51256 - 44032: 0xC1AE, - 51257 - 44032: 0xA0AC, - 51258 - 44032: 0xA0AD, - 51259 - 44032: 0xA0AE, - 51260 - 44032: 0xC1AF, - 51261 - 44032: 0xA0AF, - 51262 - 44032: 0xA0B0, - 51263 - 44032: 0xA0B1, - 51264 - 44032: 0xC1B0, - 51265 - 44032: 0xA0B2, - 51266 - 44032: 0xA0B3, - 51267 - 44032: 0xA0B4, - 51268 - 44032: 0xA0B5, - 51269 - 44032: 0xA0B6, - 51270 - 44032: 0xA0B7, - 51271 - 44032: 0xA0B8, - 51272 - 44032: 0xC1B1, - 51273 - 44032: 0xC1B2, - 51274 - 44032: 0xA0B9, - 51275 - 44032: 0xA0BA, - 51276 - 44032: 0xC1B3, - 51277 - 44032: 0xC1B4, - 51278 - 44032: 0xA0BB, - 51279 - 44032: 0xA0BC, - 51280 - 44032: 0xA0BD, - 51281 - 44032: 0xA0BE, - 51282 - 44032: 0xA0BF, - 51283 - 44032: 0xA0C0, - 51284 - 44032: 0xC1B5, - 51285 - 44032: 0xA0C1, - 51286 - 44032: 0xA0C2, - 51287 - 44032: 0xA0C3, - 51288 - 44032: 0xA0C4, - 51289 - 44032: 0xA0C5, - 51290 - 44032: 0xA0C6, - 51291 - 44032: 0xA0C7, - 51292 - 44032: 0xA0C8, - 51293 - 44032: 0xA0C9, - 51294 - 44032: 0xA0CA, - 51295 - 44032: 0xA0CB, - 51296 - 44032: 0xA0CC, - 51297 - 44032: 0xA0CD, - 51298 - 44032: 0xA0CE, - 51299 - 44032: 0xA0CF, - 51300 - 44032: 0xA0D0, - 51301 - 44032: 0xA0D1, - 51302 - 44032: 0xA0D2, - 51303 - 44032: 0xA0D3, - 51304 - 44032: 0xA0D4, - 51305 - 44032: 0xA0D5, - 51306 - 44032: 0xA0D6, - 51307 - 44032: 0xA0D7, - 51308 - 44032: 0xA0D8, - 51309 - 44032: 0xA0D9, - 51310 - 44032: 0xA0DA, - 51311 - 44032: 0xA0DB, - 51312 - 44032: 0xC1B6, - 51313 - 44032: 0xC1B7, - 51314 - 44032: 0xA0DC, - 51315 - 44032: 0xA0DD, - 51316 - 44032: 0xC1B8, - 51317 - 44032: 0xA0DE, - 51318 - 44032: 0xA0DF, - 51319 - 44032: 0xA0E0, - 51320 - 44032: 0xC1B9, - 51321 - 44032: 0xA0E1, - 51322 - 44032: 0xC1BA, - 51323 - 44032: 0xA0E2, - 51324 - 44032: 0xA0E3, - 51325 - 44032: 0xA0E4, - 51326 - 44032: 0xA0E5, - 51327 - 44032: 0xA0E6, - 51328 - 44032: 0xC1BB, - 51329 - 44032: 0xC1BC, - 51330 - 44032: 0xA0E7, - 51331 - 44032: 0xC1BD, - 51332 - 44032: 0xA0E8, - 51333 - 44032: 0xC1BE, - 51334 - 44032: 0xC1BF, - 51335 - 44032: 0xC1C0, - 51336 - 44032: 0xA0E9, - 51337 - 44032: 0xA0EA, - 51338 - 44032: 0xA0EB, - 51339 - 44032: 0xC1C1, - 51340 - 44032: 0xC1C2, - 51341 - 44032: 0xC1C3, - 51342 - 44032: 0xA0EC, - 51343 - 44032: 0xA0ED, - 51344 - 44032: 0xA0EE, - 51345 - 44032: 0xA0EF, - 51346 - 44032: 0xA0F0, - 51347 - 44032: 0xA0F1, - 51348 - 44032: 0xC1C4, - 51349 - 44032: 0xA0F2, - 51350 - 44032: 0xA0F3, - 51351 - 44032: 0xA0F4, - 51352 - 44032: 0xA0F5, - 51353 - 44032: 0xA0F6, - 51354 - 44032: 0xA0F7, - 51355 - 44032: 0xA0F8, - 51356 - 44032: 0xA0F9, - 51357 - 44032: 0xC1C5, - 51358 - 44032: 0xA0FA, - 51359 - 44032: 0xC1C6, - 51360 - 44032: 0xA0FB, - 51361 - 44032: 0xC1C7, - 51362 - 44032: 0xA0FC, - 51363 - 44032: 0xA0FD, - 51364 - 44032: 0xA0FE, - 51365 - 44032: 0xA141, - 51366 - 44032: 0xA142, - 51367 - 44032: 0xA143, - 51368 - 44032: 0xC1C8, - 51369 - 44032: 0xA144, - 51370 - 44032: 0xA145, - 51371 - 44032: 0xA146, - 51372 - 44032: 0xA147, - 51373 - 44032: 0xA148, - 51374 - 44032: 0xA149, - 51375 - 44032: 0xA14A, - 51376 - 44032: 0xA14B, - 51377 - 44032: 0xA14C, - 51378 - 44032: 0xA14D, - 51379 - 44032: 0xA14E, - 51380 - 44032: 0xA14F, - 51381 - 44032: 0xA150, - 51382 - 44032: 0xA151, - 51383 - 44032: 0xA152, - 51384 - 44032: 0xA153, - 51385 - 44032: 0xA154, - 51386 - 44032: 0xA155, - 51387 - 44032: 0xA156, - 51388 - 44032: 0xC1C9, - 51389 - 44032: 0xC1CA, - 51390 - 44032: 0xA157, - 51391 - 44032: 0xA158, - 51392 - 44032: 0xA159, - 51393 - 44032: 0xA15A, - 51394 - 44032: 0xA161, - 51395 - 44032: 0xA162, - 51396 - 44032: 0xC1CB, - 51397 - 44032: 0xA163, - 51398 - 44032: 0xA164, - 51399 - 44032: 0xA165, - 51400 - 44032: 0xC1CC, - 51401 - 44032: 0xA166, - 51402 - 44032: 0xA167, - 51403 - 44032: 0xA168, - 51404 - 44032: 0xC1CD, - 51405 - 44032: 0xA169, - 51406 - 44032: 0xA16A, - 51407 - 44032: 0xA16B, - 51408 - 44032: 0xA16C, - 51409 - 44032: 0xA16D, - 51410 - 44032: 0xA16E, - 51411 - 44032: 0xA16F, - 51412 - 44032: 0xC1CE, - 51413 - 44032: 0xC1CF, - 51414 - 44032: 0xA170, - 51415 - 44032: 0xC1D0, - 51416 - 44032: 0xA171, - 51417 - 44032: 0xC1D1, - 51418 - 44032: 0xA172, - 51419 - 44032: 0xA173, - 51420 - 44032: 0xA174, - 51421 - 44032: 0xA175, - 51422 - 44032: 0xA176, - 51423 - 44032: 0xA177, - 51424 - 44032: 0xC1D2, - 51425 - 44032: 0xC1D3, - 51426 - 44032: 0xA178, - 51427 - 44032: 0xA179, - 51428 - 44032: 0xC1D4, - 51429 - 44032: 0xA17A, - 51430 - 44032: 0xA181, - 51431 - 44032: 0xA182, - 51432 - 44032: 0xA183, - 51433 - 44032: 0xA184, - 51434 - 44032: 0xA185, - 51435 - 44032: 0xA186, - 51436 - 44032: 0xA187, - 51437 - 44032: 0xA188, - 51438 - 44032: 0xA189, - 51439 - 44032: 0xA18A, - 51440 - 44032: 0xA18B, - 51441 - 44032: 0xA18C, - 51442 - 44032: 0xA18D, - 51443 - 44032: 0xA18E, - 51444 - 44032: 0xA18F, - 51445 - 44032: 0xC1D5, - 51446 - 44032: 0xA190, - 51447 - 44032: 0xA191, - 51448 - 44032: 0xA192, - 51449 - 44032: 0xA193, - 51450 - 44032: 0xA194, - 51451 - 44032: 0xA195, - 51452 - 44032: 0xC1D6, - 51453 - 44032: 0xC1D7, - 51454 - 44032: 0xA196, - 51455 - 44032: 0xA197, - 51456 - 44032: 0xC1D8, - 51457 - 44032: 0xA198, - 51458 - 44032: 0xA199, - 51459 - 44032: 0xA19A, - 51460 - 44032: 0xC1D9, - 51461 - 44032: 0xC1DA, - 51462 - 44032: 0xC1DB, - 51463 - 44032: 0xA19B, - 51464 - 44032: 0xA19C, - 51465 - 44032: 0xA19D, - 51466 - 44032: 0xA19E, - 51467 - 44032: 0xA19F, - 51468 - 44032: 0xC1DC, - 51469 - 44032: 0xC1DD, - 51470 - 44032: 0xA1A0, - 51471 - 44032: 0xC1DE, - 51472 - 44032: 0xA241, - 51473 - 44032: 0xC1DF, - 51474 - 44032: 0xA242, - 51475 - 44032: 0xA243, - 51476 - 44032: 0xA244, - 51477 - 44032: 0xA245, - 51478 - 44032: 0xA246, - 51479 - 44032: 0xA247, - 51480 - 44032: 0xC1E0, - 51481 - 44032: 0xA248, - 51482 - 44032: 0xA249, - 51483 - 44032: 0xA24A, - 51484 - 44032: 0xA24B, - 51485 - 44032: 0xA24C, - 51486 - 44032: 0xA24D, - 51487 - 44032: 0xA24E, - 51488 - 44032: 0xA24F, - 51489 - 44032: 0xA250, - 51490 - 44032: 0xA251, - 51491 - 44032: 0xA252, - 51492 - 44032: 0xA253, - 51493 - 44032: 0xA254, - 51494 - 44032: 0xA255, - 51495 - 44032: 0xA256, - 51496 - 44032: 0xA257, - 51497 - 44032: 0xA258, - 51498 - 44032: 0xA259, - 51499 - 44032: 0xA25A, - 51500 - 44032: 0xC1E1, - 51501 - 44032: 0xA261, - 51502 - 44032: 0xA262, - 51503 - 44032: 0xA263, - 51504 - 44032: 0xA264, - 51505 - 44032: 0xA265, - 51506 - 44032: 0xA266, - 51507 - 44032: 0xA267, - 51508 - 44032: 0xC1E2, - 51509 - 44032: 0xA268, - 51510 - 44032: 0xA269, - 51511 - 44032: 0xA26A, - 51512 - 44032: 0xA26B, - 51513 - 44032: 0xA26C, - 51514 - 44032: 0xA26D, - 51515 - 44032: 0xA26E, - 51516 - 44032: 0xA26F, - 51517 - 44032: 0xA270, - 51518 - 44032: 0xA271, - 51519 - 44032: 0xA272, - 51520 - 44032: 0xA273, - 51521 - 44032: 0xA274, - 51522 - 44032: 0xA275, - 51523 - 44032: 0xA276, - 51524 - 44032: 0xA277, - 51525 - 44032: 0xA278, - 51526 - 44032: 0xA279, - 51527 - 44032: 0xA27A, - 51528 - 44032: 0xA281, - 51529 - 44032: 0xA282, - 51530 - 44032: 0xA283, - 51531 - 44032: 0xA284, - 51532 - 44032: 0xA285, - 51533 - 44032: 0xA286, - 51534 - 44032: 0xA287, - 51535 - 44032: 0xA288, - 51536 - 44032: 0xC1E3, - 51537 - 44032: 0xC1E4, - 51538 - 44032: 0xA289, - 51539 - 44032: 0xA28A, - 51540 - 44032: 0xC1E5, - 51541 - 44032: 0xA28B, - 51542 - 44032: 0xA28C, - 51543 - 44032: 0xA28D, - 51544 - 44032: 0xC1E6, - 51545 - 44032: 0xA28E, - 51546 - 44032: 0xA28F, - 51547 - 44032: 0xA290, - 51548 - 44032: 0xA291, - 51549 - 44032: 0xA292, - 51550 - 44032: 0xA293, - 51551 - 44032: 0xA294, - 51552 - 44032: 0xC1E7, - 51553 - 44032: 0xC1E8, - 51554 - 44032: 0xA295, - 51555 - 44032: 0xC1E9, - 51556 - 44032: 0xA296, - 51557 - 44032: 0xA297, - 51558 - 44032: 0xA298, - 51559 - 44032: 0xA299, - 51560 - 44032: 0xA29A, - 51561 - 44032: 0xA29B, - 51562 - 44032: 0xA29C, - 51563 - 44032: 0xA29D, - 51564 - 44032: 0xC1EA, - 51565 - 44032: 0xA29E, - 51566 - 44032: 0xA29F, - 51567 - 44032: 0xA2A0, - 51568 - 44032: 0xC1EB, - 51569 - 44032: 0xA341, - 51570 - 44032: 0xA342, - 51571 - 44032: 0xA343, - 51572 - 44032: 0xC1EC, - 51573 - 44032: 0xA344, - 51574 - 44032: 0xA345, - 51575 - 44032: 0xA346, - 51576 - 44032: 0xA347, - 51577 - 44032: 0xA348, - 51578 - 44032: 0xA349, - 51579 - 44032: 0xA34A, - 51580 - 44032: 0xC1ED, - 51581 - 44032: 0xA34B, - 51582 - 44032: 0xA34C, - 51583 - 44032: 0xA34D, - 51584 - 44032: 0xA34E, - 51585 - 44032: 0xA34F, - 51586 - 44032: 0xA350, - 51587 - 44032: 0xA351, - 51588 - 44032: 0xA352, - 51589 - 44032: 0xA353, - 51590 - 44032: 0xA354, - 51591 - 44032: 0xA355, - 51592 - 44032: 0xC1EE, - 51593 - 44032: 0xC1EF, - 51594 - 44032: 0xA356, - 51595 - 44032: 0xA357, - 51596 - 44032: 0xC1F0, - 51597 - 44032: 0xA358, - 51598 - 44032: 0xA359, - 51599 - 44032: 0xA35A, - 51600 - 44032: 0xC1F1, - 51601 - 44032: 0xA361, - 51602 - 44032: 0xA362, - 51603 - 44032: 0xA363, - 51604 - 44032: 0xA364, - 51605 - 44032: 0xA365, - 51606 - 44032: 0xA366, - 51607 - 44032: 0xA367, - 51608 - 44032: 0xC1F2, - 51609 - 44032: 0xC1F3, - 51610 - 44032: 0xA368, - 51611 - 44032: 0xC1F4, - 51612 - 44032: 0xA369, - 51613 - 44032: 0xC1F5, - 51614 - 44032: 0xA36A, - 51615 - 44032: 0xA36B, - 51616 - 44032: 0xA36C, - 51617 - 44032: 0xA36D, - 51618 - 44032: 0xA36E, - 51619 - 44032: 0xA36F, - 51620 - 44032: 0xA370, - 51621 - 44032: 0xA371, - 51622 - 44032: 0xA372, - 51623 - 44032: 0xA373, - 51624 - 44032: 0xA374, - 51625 - 44032: 0xA375, - 51626 - 44032: 0xA376, - 51627 - 44032: 0xA377, - 51628 - 44032: 0xA378, - 51629 - 44032: 0xA379, - 51630 - 44032: 0xA37A, - 51631 - 44032: 0xA381, - 51632 - 44032: 0xA382, - 51633 - 44032: 0xA383, - 51634 - 44032: 0xA384, - 51635 - 44032: 0xA385, - 51636 - 44032: 0xA386, - 51637 - 44032: 0xA387, - 51638 - 44032: 0xA388, - 51639 - 44032: 0xA389, - 51640 - 44032: 0xA38A, - 51641 - 44032: 0xA38B, - 51642 - 44032: 0xA38C, - 51643 - 44032: 0xA38D, - 51644 - 44032: 0xA38E, - 51645 - 44032: 0xA38F, - 51646 - 44032: 0xA390, - 51647 - 44032: 0xA391, - 51648 - 44032: 0xC1F6, - 51649 - 44032: 0xC1F7, - 51650 - 44032: 0xA392, - 51651 - 44032: 0xA393, - 51652 - 44032: 0xC1F8, - 51653 - 44032: 0xA394, - 51654 - 44032: 0xA395, - 51655 - 44032: 0xC1F9, - 51656 - 44032: 0xC1FA, - 51657 - 44032: 0xA396, - 51658 - 44032: 0xC1FB, - 51659 - 44032: 0xA397, - 51660 - 44032: 0xA398, - 51661 - 44032: 0xA399, - 51662 - 44032: 0xA39A, - 51663 - 44032: 0xA39B, - 51664 - 44032: 0xC1FC, - 51665 - 44032: 0xC1FD, - 51666 - 44032: 0xA39C, - 51667 - 44032: 0xC1FE, - 51668 - 44032: 0xA39D, - 51669 - 44032: 0xC2A1, - 51670 - 44032: 0xC2A2, - 51671 - 44032: 0xA39E, - 51672 - 44032: 0xA39F, - 51673 - 44032: 0xC2A3, - 51674 - 44032: 0xC2A4, - 51675 - 44032: 0xA3A0, - 51676 - 44032: 0xC2A5, - 51677 - 44032: 0xC2A6, - 51678 - 44032: 0xA441, - 51679 - 44032: 0xA442, - 51680 - 44032: 0xC2A7, - 51681 - 44032: 0xA443, - 51682 - 44032: 0xC2A8, - 51683 - 44032: 0xA444, - 51684 - 44032: 0xC2A9, - 51685 - 44032: 0xA445, - 51686 - 44032: 0xA446, - 51687 - 44032: 0xC2AA, - 51688 - 44032: 0xA447, - 51689 - 44032: 0xA448, - 51690 - 44032: 0xA449, - 51691 - 44032: 0xA44A, - 51692 - 44032: 0xC2AB, - 51693 - 44032: 0xC2AC, - 51694 - 44032: 0xA44B, - 51695 - 44032: 0xC2AD, - 51696 - 44032: 0xC2AE, - 51697 - 44032: 0xC2AF, - 51698 - 44032: 0xA44C, - 51699 - 44032: 0xA44D, - 51700 - 44032: 0xA44E, - 51701 - 44032: 0xA44F, - 51702 - 44032: 0xA450, - 51703 - 44032: 0xA451, - 51704 - 44032: 0xC2B0, - 51705 - 44032: 0xC2B1, - 51706 - 44032: 0xA452, - 51707 - 44032: 0xA453, - 51708 - 44032: 0xC2B2, - 51709 - 44032: 0xA454, - 51710 - 44032: 0xA455, - 51711 - 44032: 0xA456, - 51712 - 44032: 0xC2B3, - 51713 - 44032: 0xA457, - 51714 - 44032: 0xA458, - 51715 - 44032: 0xA459, - 51716 - 44032: 0xA45A, - 51717 - 44032: 0xA461, - 51718 - 44032: 0xA462, - 51719 - 44032: 0xA463, - 51720 - 44032: 0xC2B4, - 51721 - 44032: 0xC2B5, - 51722 - 44032: 0xA464, - 51723 - 44032: 0xC2B6, - 51724 - 44032: 0xC2B7, - 51725 - 44032: 0xC2B8, - 51726 - 44032: 0xA465, - 51727 - 44032: 0xA466, - 51728 - 44032: 0xA467, - 51729 - 44032: 0xA468, - 51730 - 44032: 0xA469, - 51731 - 44032: 0xA46A, - 51732 - 44032: 0xC2B9, - 51733 - 44032: 0xA46B, - 51734 - 44032: 0xA46C, - 51735 - 44032: 0xA46D, - 51736 - 44032: 0xC2BA, - 51737 - 44032: 0xA46E, - 51738 - 44032: 0xA46F, - 51739 - 44032: 0xA470, - 51740 - 44032: 0xA471, - 51741 - 44032: 0xA472, - 51742 - 44032: 0xA473, - 51743 - 44032: 0xA474, - 51744 - 44032: 0xA475, - 51745 - 44032: 0xA476, - 51746 - 44032: 0xA477, - 51747 - 44032: 0xA478, - 51748 - 44032: 0xA479, - 51749 - 44032: 0xA47A, - 51750 - 44032: 0xA481, - 51751 - 44032: 0xA482, - 51752 - 44032: 0xA483, - 51753 - 44032: 0xC2BB, - 51754 - 44032: 0xA484, - 51755 - 44032: 0xA485, - 51756 - 44032: 0xA486, - 51757 - 44032: 0xA487, - 51758 - 44032: 0xA488, - 51759 - 44032: 0xA489, - 51760 - 44032: 0xA48A, - 51761 - 44032: 0xA48B, - 51762 - 44032: 0xA48C, - 51763 - 44032: 0xA48D, - 51764 - 44032: 0xA48E, - 51765 - 44032: 0xA48F, - 51766 - 44032: 0xA490, - 51767 - 44032: 0xA491, - 51768 - 44032: 0xA492, - 51769 - 44032: 0xA493, - 51770 - 44032: 0xA494, - 51771 - 44032: 0xA495, - 51772 - 44032: 0xA496, - 51773 - 44032: 0xA497, - 51774 - 44032: 0xA498, - 51775 - 44032: 0xA499, - 51776 - 44032: 0xA49A, - 51777 - 44032: 0xA49B, - 51778 - 44032: 0xA49C, - 51779 - 44032: 0xA49D, - 51780 - 44032: 0xA49E, - 51781 - 44032: 0xA49F, - 51782 - 44032: 0xA4A0, - 51783 - 44032: 0xA541, - 51784 - 44032: 0xA542, - 51785 - 44032: 0xA543, - 51786 - 44032: 0xA544, - 51787 - 44032: 0xA545, - 51788 - 44032: 0xC2BC, - 51789 - 44032: 0xC2BD, - 51790 - 44032: 0xA546, - 51791 - 44032: 0xA547, - 51792 - 44032: 0xC2BE, - 51793 - 44032: 0xA548, - 51794 - 44032: 0xA549, - 51795 - 44032: 0xA54A, - 51796 - 44032: 0xC2BF, - 51797 - 44032: 0xA54B, - 51798 - 44032: 0xA54C, - 51799 - 44032: 0xA54D, - 51800 - 44032: 0xA54E, - 51801 - 44032: 0xA54F, - 51802 - 44032: 0xA550, - 51803 - 44032: 0xA551, - 51804 - 44032: 0xC2C0, - 51805 - 44032: 0xC2C1, - 51806 - 44032: 0xA552, - 51807 - 44032: 0xC2C2, - 51808 - 44032: 0xC2C3, - 51809 - 44032: 0xC2C4, - 51810 - 44032: 0xA553, - 51811 - 44032: 0xA554, - 51812 - 44032: 0xA555, - 51813 - 44032: 0xA556, - 51814 - 44032: 0xA557, - 51815 - 44032: 0xA558, - 51816 - 44032: 0xC2C5, - 51817 - 44032: 0xA559, - 51818 - 44032: 0xA55A, - 51819 - 44032: 0xA561, - 51820 - 44032: 0xA562, - 51821 - 44032: 0xA563, - 51822 - 44032: 0xA564, - 51823 - 44032: 0xA565, - 51824 - 44032: 0xA566, - 51825 - 44032: 0xA567, - 51826 - 44032: 0xA568, - 51827 - 44032: 0xA569, - 51828 - 44032: 0xA56A, - 51829 - 44032: 0xA56B, - 51830 - 44032: 0xA56C, - 51831 - 44032: 0xA56D, - 51832 - 44032: 0xA56E, - 51833 - 44032: 0xA56F, - 51834 - 44032: 0xA570, - 51835 - 44032: 0xA571, - 51836 - 44032: 0xA572, - 51837 - 44032: 0xC2C6, - 51838 - 44032: 0xA573, - 51839 - 44032: 0xA574, - 51840 - 44032: 0xA575, - 51841 - 44032: 0xA576, - 51842 - 44032: 0xA577, - 51843 - 44032: 0xA578, - 51844 - 44032: 0xC2C7, - 51845 - 44032: 0xA579, - 51846 - 44032: 0xA57A, - 51847 - 44032: 0xA581, - 51848 - 44032: 0xA582, - 51849 - 44032: 0xA583, - 51850 - 44032: 0xA584, - 51851 - 44032: 0xA585, - 51852 - 44032: 0xA586, - 51853 - 44032: 0xA587, - 51854 - 44032: 0xA588, - 51855 - 44032: 0xA589, - 51856 - 44032: 0xA58A, - 51857 - 44032: 0xA58B, - 51858 - 44032: 0xA58C, - 51859 - 44032: 0xA58D, - 51860 - 44032: 0xA58E, - 51861 - 44032: 0xA58F, - 51862 - 44032: 0xA590, - 51863 - 44032: 0xA591, - 51864 - 44032: 0xC2C8, - 51865 - 44032: 0xA592, - 51866 - 44032: 0xA593, - 51867 - 44032: 0xA594, - 51868 - 44032: 0xA595, - 51869 - 44032: 0xA596, - 51870 - 44032: 0xA597, - 51871 - 44032: 0xA598, - 51872 - 44032: 0xA599, - 51873 - 44032: 0xA59A, - 51874 - 44032: 0xA59B, - 51875 - 44032: 0xA59C, - 51876 - 44032: 0xA59D, - 51877 - 44032: 0xA59E, - 51878 - 44032: 0xA59F, - 51879 - 44032: 0xA5A0, - 51880 - 44032: 0xA641, - 51881 - 44032: 0xA642, - 51882 - 44032: 0xA643, - 51883 - 44032: 0xA644, - 51884 - 44032: 0xA645, - 51885 - 44032: 0xA646, - 51886 - 44032: 0xA647, - 51887 - 44032: 0xA648, - 51888 - 44032: 0xA649, - 51889 - 44032: 0xA64A, - 51890 - 44032: 0xA64B, - 51891 - 44032: 0xA64C, - 51892 - 44032: 0xA64D, - 51893 - 44032: 0xA64E, - 51894 - 44032: 0xA64F, - 51895 - 44032: 0xA650, - 51896 - 44032: 0xA651, - 51897 - 44032: 0xA652, - 51898 - 44032: 0xA653, - 51899 - 44032: 0xA654, - 51900 - 44032: 0xC2C9, - 51901 - 44032: 0xC2CA, - 51902 - 44032: 0xA655, - 51903 - 44032: 0xA656, - 51904 - 44032: 0xC2CB, - 51905 - 44032: 0xA657, - 51906 - 44032: 0xA658, - 51907 - 44032: 0xA659, - 51908 - 44032: 0xC2CC, - 51909 - 44032: 0xA65A, - 51910 - 44032: 0xA661, - 51911 - 44032: 0xA662, - 51912 - 44032: 0xA663, - 51913 - 44032: 0xA664, - 51914 - 44032: 0xA665, - 51915 - 44032: 0xA666, - 51916 - 44032: 0xC2CD, - 51917 - 44032: 0xC2CE, - 51918 - 44032: 0xA667, - 51919 - 44032: 0xC2CF, - 51920 - 44032: 0xA668, - 51921 - 44032: 0xC2D0, - 51922 - 44032: 0xA669, - 51923 - 44032: 0xC2D1, - 51924 - 44032: 0xA66A, - 51925 - 44032: 0xA66B, - 51926 - 44032: 0xA66C, - 51927 - 44032: 0xA66D, - 51928 - 44032: 0xC2D2, - 51929 - 44032: 0xC2D3, - 51930 - 44032: 0xA66E, - 51931 - 44032: 0xA66F, - 51932 - 44032: 0xA670, - 51933 - 44032: 0xA671, - 51934 - 44032: 0xA672, - 51935 - 44032: 0xA673, - 51936 - 44032: 0xC2D4, - 51937 - 44032: 0xA674, - 51938 - 44032: 0xA675, - 51939 - 44032: 0xA676, - 51940 - 44032: 0xA677, - 51941 - 44032: 0xA678, - 51942 - 44032: 0xA679, - 51943 - 44032: 0xA67A, - 51944 - 44032: 0xA681, - 51945 - 44032: 0xA682, - 51946 - 44032: 0xA683, - 51947 - 44032: 0xA684, - 51948 - 44032: 0xC2D5, - 51949 - 44032: 0xA685, - 51950 - 44032: 0xA686, - 51951 - 44032: 0xA687, - 51952 - 44032: 0xA688, - 51953 - 44032: 0xA689, - 51954 - 44032: 0xA68A, - 51955 - 44032: 0xA68B, - 51956 - 44032: 0xC2D6, - 51957 - 44032: 0xA68C, - 51958 - 44032: 0xA68D, - 51959 - 44032: 0xA68E, - 51960 - 44032: 0xA68F, - 51961 - 44032: 0xA690, - 51962 - 44032: 0xA691, - 51963 - 44032: 0xA692, - 51964 - 44032: 0xA693, - 51965 - 44032: 0xA694, - 51966 - 44032: 0xA695, - 51967 - 44032: 0xA696, - 51968 - 44032: 0xA697, - 51969 - 44032: 0xA698, - 51970 - 44032: 0xA699, - 51971 - 44032: 0xA69A, - 51972 - 44032: 0xA69B, - 51973 - 44032: 0xA69C, - 51974 - 44032: 0xA69D, - 51975 - 44032: 0xA69E, - 51976 - 44032: 0xC2D7, - 51977 - 44032: 0xA69F, - 51978 - 44032: 0xA6A0, - 51979 - 44032: 0xA741, - 51980 - 44032: 0xA742, - 51981 - 44032: 0xA743, - 51982 - 44032: 0xA744, - 51983 - 44032: 0xA745, - 51984 - 44032: 0xC2D8, - 51985 - 44032: 0xA746, - 51986 - 44032: 0xA747, - 51987 - 44032: 0xA748, - 51988 - 44032: 0xC2D9, - 51989 - 44032: 0xA749, - 51990 - 44032: 0xA74A, - 51991 - 44032: 0xA74B, - 51992 - 44032: 0xC2DA, - 51993 - 44032: 0xA74C, - 51994 - 44032: 0xA74D, - 51995 - 44032: 0xA74E, - 51996 - 44032: 0xA74F, - 51997 - 44032: 0xA750, - 51998 - 44032: 0xA751, - 51999 - 44032: 0xA752, - 52000 - 44032: 0xC2DB, - 52001 - 44032: 0xC2DC, - 52002 - 44032: 0xA753, - 52003 - 44032: 0xA754, - 52004 - 44032: 0xA755, - 52005 - 44032: 0xA756, - 52006 - 44032: 0xA757, - 52007 - 44032: 0xA758, - 52008 - 44032: 0xA759, - 52009 - 44032: 0xA75A, - 52010 - 44032: 0xA761, - 52011 - 44032: 0xA762, - 52012 - 44032: 0xA763, - 52013 - 44032: 0xA764, - 52014 - 44032: 0xA765, - 52015 - 44032: 0xA766, - 52016 - 44032: 0xA767, - 52017 - 44032: 0xA768, - 52018 - 44032: 0xA769, - 52019 - 44032: 0xA76A, - 52020 - 44032: 0xA76B, - 52021 - 44032: 0xA76C, - 52022 - 44032: 0xA76D, - 52023 - 44032: 0xA76E, - 52024 - 44032: 0xA76F, - 52025 - 44032: 0xA770, - 52026 - 44032: 0xA771, - 52027 - 44032: 0xA772, - 52028 - 44032: 0xA773, - 52029 - 44032: 0xA774, - 52030 - 44032: 0xA775, - 52031 - 44032: 0xA776, - 52032 - 44032: 0xA777, - 52033 - 44032: 0xC2DD, - 52034 - 44032: 0xA778, - 52035 - 44032: 0xA779, - 52036 - 44032: 0xA77A, - 52037 - 44032: 0xA781, - 52038 - 44032: 0xA782, - 52039 - 44032: 0xA783, - 52040 - 44032: 0xC2DE, - 52041 - 44032: 0xC2DF, - 52042 - 44032: 0xA784, - 52043 - 44032: 0xA785, - 52044 - 44032: 0xC2E0, - 52045 - 44032: 0xA786, - 52046 - 44032: 0xA787, - 52047 - 44032: 0xA788, - 52048 - 44032: 0xC2E1, - 52049 - 44032: 0xA789, - 52050 - 44032: 0xA78A, - 52051 - 44032: 0xA78B, - 52052 - 44032: 0xA78C, - 52053 - 44032: 0xA78D, - 52054 - 44032: 0xA78E, - 52055 - 44032: 0xA78F, - 52056 - 44032: 0xC2E2, - 52057 - 44032: 0xC2E3, - 52058 - 44032: 0xA790, - 52059 - 44032: 0xA791, - 52060 - 44032: 0xA792, - 52061 - 44032: 0xC2E4, - 52062 - 44032: 0xA793, - 52063 - 44032: 0xA794, - 52064 - 44032: 0xA795, - 52065 - 44032: 0xA796, - 52066 - 44032: 0xA797, - 52067 - 44032: 0xA798, - 52068 - 44032: 0xC2E5, - 52069 - 44032: 0xA799, - 52070 - 44032: 0xA79A, - 52071 - 44032: 0xA79B, - 52072 - 44032: 0xA79C, - 52073 - 44032: 0xA79D, - 52074 - 44032: 0xA79E, - 52075 - 44032: 0xA79F, - 52076 - 44032: 0xA7A0, - 52077 - 44032: 0xA841, - 52078 - 44032: 0xA842, - 52079 - 44032: 0xA843, - 52080 - 44032: 0xA844, - 52081 - 44032: 0xA845, - 52082 - 44032: 0xA846, - 52083 - 44032: 0xA847, - 52084 - 44032: 0xA848, - 52085 - 44032: 0xA849, - 52086 - 44032: 0xA84A, - 52087 - 44032: 0xA84B, - 52088 - 44032: 0xC2E6, - 52089 - 44032: 0xC2E7, - 52090 - 44032: 0xA84C, - 52091 - 44032: 0xA84D, - 52092 - 44032: 0xA84E, - 52093 - 44032: 0xA84F, - 52094 - 44032: 0xA850, - 52095 - 44032: 0xA851, - 52096 - 44032: 0xA852, - 52097 - 44032: 0xA853, - 52098 - 44032: 0xA854, - 52099 - 44032: 0xA855, - 52100 - 44032: 0xA856, - 52101 - 44032: 0xA857, - 52102 - 44032: 0xA858, - 52103 - 44032: 0xA859, - 52104 - 44032: 0xA85A, - 52105 - 44032: 0xA861, - 52106 - 44032: 0xA862, - 52107 - 44032: 0xA863, - 52108 - 44032: 0xA864, - 52109 - 44032: 0xA865, - 52110 - 44032: 0xA866, - 52111 - 44032: 0xA867, - 52112 - 44032: 0xA868, - 52113 - 44032: 0xA869, - 52114 - 44032: 0xA86A, - 52115 - 44032: 0xA86B, - 52116 - 44032: 0xA86C, - 52117 - 44032: 0xA86D, - 52118 - 44032: 0xA86E, - 52119 - 44032: 0xA86F, - 52120 - 44032: 0xA870, - 52121 - 44032: 0xA871, - 52122 - 44032: 0xA872, - 52123 - 44032: 0xA873, - 52124 - 44032: 0xC2E8, - 52125 - 44032: 0xA874, - 52126 - 44032: 0xA875, - 52127 - 44032: 0xA876, - 52128 - 44032: 0xA877, - 52129 - 44032: 0xA878, - 52130 - 44032: 0xA879, - 52131 - 44032: 0xA87A, - 52132 - 44032: 0xA881, - 52133 - 44032: 0xA882, - 52134 - 44032: 0xA883, - 52135 - 44032: 0xA884, - 52136 - 44032: 0xA885, - 52137 - 44032: 0xA886, - 52138 - 44032: 0xA887, - 52139 - 44032: 0xA888, - 52140 - 44032: 0xA889, - 52141 - 44032: 0xA88A, - 52142 - 44032: 0xA88B, - 52143 - 44032: 0xA88C, - 52144 - 44032: 0xA88D, - 52145 - 44032: 0xA88E, - 52146 - 44032: 0xA88F, - 52147 - 44032: 0xA890, - 52148 - 44032: 0xA891, - 52149 - 44032: 0xA892, - 52150 - 44032: 0xA893, - 52151 - 44032: 0xA894, - 52152 - 44032: 0xC2E9, - 52153 - 44032: 0xA895, - 52154 - 44032: 0xA896, - 52155 - 44032: 0xA897, - 52156 - 44032: 0xA898, - 52157 - 44032: 0xA899, - 52158 - 44032: 0xA89A, - 52159 - 44032: 0xA89B, - 52160 - 44032: 0xA89C, - 52161 - 44032: 0xA89D, - 52162 - 44032: 0xA89E, - 52163 - 44032: 0xA89F, - 52164 - 44032: 0xA8A0, - 52165 - 44032: 0xA941, - 52166 - 44032: 0xA942, - 52167 - 44032: 0xA943, - 52168 - 44032: 0xA944, - 52169 - 44032: 0xA945, - 52170 - 44032: 0xA946, - 52171 - 44032: 0xA947, - 52172 - 44032: 0xA948, - 52173 - 44032: 0xA949, - 52174 - 44032: 0xA94A, - 52175 - 44032: 0xA94B, - 52176 - 44032: 0xA94C, - 52177 - 44032: 0xA94D, - 52178 - 44032: 0xA94E, - 52179 - 44032: 0xA94F, - 52180 - 44032: 0xC2EA, - 52181 - 44032: 0xA950, - 52182 - 44032: 0xA951, - 52183 - 44032: 0xA952, - 52184 - 44032: 0xA953, - 52185 - 44032: 0xA954, - 52186 - 44032: 0xA955, - 52187 - 44032: 0xA956, - 52188 - 44032: 0xA957, - 52189 - 44032: 0xA958, - 52190 - 44032: 0xA959, - 52191 - 44032: 0xA95A, - 52192 - 44032: 0xA961, - 52193 - 44032: 0xA962, - 52194 - 44032: 0xA963, - 52195 - 44032: 0xA964, - 52196 - 44032: 0xC2EB, - 52197 - 44032: 0xA965, - 52198 - 44032: 0xA966, - 52199 - 44032: 0xC2EC, - 52200 - 44032: 0xA967, - 52201 - 44032: 0xC2ED, - 52202 - 44032: 0xA968, - 52203 - 44032: 0xA969, - 52204 - 44032: 0xA96A, - 52205 - 44032: 0xA96B, - 52206 - 44032: 0xA96C, - 52207 - 44032: 0xA96D, - 52208 - 44032: 0xA96E, - 52209 - 44032: 0xA96F, - 52210 - 44032: 0xA970, - 52211 - 44032: 0xA971, - 52212 - 44032: 0xA972, - 52213 - 44032: 0xA973, - 52214 - 44032: 0xA974, - 52215 - 44032: 0xA975, - 52216 - 44032: 0xA976, - 52217 - 44032: 0xA977, - 52218 - 44032: 0xA978, - 52219 - 44032: 0xA979, - 52220 - 44032: 0xA97A, - 52221 - 44032: 0xA981, - 52222 - 44032: 0xA982, - 52223 - 44032: 0xA983, - 52224 - 44032: 0xA984, - 52225 - 44032: 0xA985, - 52226 - 44032: 0xA986, - 52227 - 44032: 0xA987, - 52228 - 44032: 0xA988, - 52229 - 44032: 0xA989, - 52230 - 44032: 0xA98A, - 52231 - 44032: 0xA98B, - 52232 - 44032: 0xA98C, - 52233 - 44032: 0xA98D, - 52234 - 44032: 0xA98E, - 52235 - 44032: 0xA98F, - 52236 - 44032: 0xC2EE, - 52237 - 44032: 0xC2EF, - 52238 - 44032: 0xA990, - 52239 - 44032: 0xA991, - 52240 - 44032: 0xC2F0, - 52241 - 44032: 0xA992, - 52242 - 44032: 0xA993, - 52243 - 44032: 0xA994, - 52244 - 44032: 0xC2F1, - 52245 - 44032: 0xA995, - 52246 - 44032: 0xA996, - 52247 - 44032: 0xA997, - 52248 - 44032: 0xA998, - 52249 - 44032: 0xA999, - 52250 - 44032: 0xA99A, - 52251 - 44032: 0xA99B, - 52252 - 44032: 0xC2F2, - 52253 - 44032: 0xC2F3, - 52254 - 44032: 0xA99C, - 52255 - 44032: 0xA99D, - 52256 - 44032: 0xA99E, - 52257 - 44032: 0xC2F4, - 52258 - 44032: 0xC2F5, - 52259 - 44032: 0xA99F, - 52260 - 44032: 0xA9A0, - 52261 - 44032: 0xAA41, - 52262 - 44032: 0xAA42, - 52263 - 44032: 0xC2F6, - 52264 - 44032: 0xC2F7, - 52265 - 44032: 0xC2F8, - 52266 - 44032: 0xAA43, - 52267 - 44032: 0xAA44, - 52268 - 44032: 0xC2F9, - 52269 - 44032: 0xAA45, - 52270 - 44032: 0xC2FA, - 52271 - 44032: 0xAA46, - 52272 - 44032: 0xC2FB, - 52273 - 44032: 0xAA47, - 52274 - 44032: 0xAA48, - 52275 - 44032: 0xAA49, - 52276 - 44032: 0xAA4A, - 52277 - 44032: 0xAA4B, - 52278 - 44032: 0xAA4C, - 52279 - 44032: 0xAA4D, - 52280 - 44032: 0xC2FC, - 52281 - 44032: 0xC2FD, - 52282 - 44032: 0xAA4E, - 52283 - 44032: 0xC2FE, - 52284 - 44032: 0xC3A1, - 52285 - 44032: 0xC3A2, - 52286 - 44032: 0xC3A3, - 52287 - 44032: 0xAA4F, - 52288 - 44032: 0xAA50, - 52289 - 44032: 0xAA51, - 52290 - 44032: 0xAA52, - 52291 - 44032: 0xAA53, - 52292 - 44032: 0xC3A4, - 52293 - 44032: 0xC3A5, - 52294 - 44032: 0xAA54, - 52295 - 44032: 0xAA55, - 52296 - 44032: 0xC3A6, - 52297 - 44032: 0xAA56, - 52298 - 44032: 0xAA57, - 52299 - 44032: 0xAA58, - 52300 - 44032: 0xC3A7, - 52301 - 44032: 0xAA59, - 52302 - 44032: 0xAA5A, - 52303 - 44032: 0xAA61, - 52304 - 44032: 0xAA62, - 52305 - 44032: 0xAA63, - 52306 - 44032: 0xAA64, - 52307 - 44032: 0xAA65, - 52308 - 44032: 0xC3A8, - 52309 - 44032: 0xC3A9, - 52310 - 44032: 0xAA66, - 52311 - 44032: 0xC3AA, - 52312 - 44032: 0xC3AB, - 52313 - 44032: 0xC3AC, - 52314 - 44032: 0xAA67, - 52315 - 44032: 0xAA68, - 52316 - 44032: 0xAA69, - 52317 - 44032: 0xAA6A, - 52318 - 44032: 0xAA6B, - 52319 - 44032: 0xAA6C, - 52320 - 44032: 0xC3AD, - 52321 - 44032: 0xAA6D, - 52322 - 44032: 0xAA6E, - 52323 - 44032: 0xAA6F, - 52324 - 44032: 0xC3AE, - 52325 - 44032: 0xAA70, - 52326 - 44032: 0xC3AF, - 52327 - 44032: 0xAA71, - 52328 - 44032: 0xC3B0, - 52329 - 44032: 0xAA72, - 52330 - 44032: 0xAA73, - 52331 - 44032: 0xAA74, - 52332 - 44032: 0xAA75, - 52333 - 44032: 0xAA76, - 52334 - 44032: 0xAA77, - 52335 - 44032: 0xAA78, - 52336 - 44032: 0xC3B1, - 52337 - 44032: 0xAA79, - 52338 - 44032: 0xAA7A, - 52339 - 44032: 0xAA81, - 52340 - 44032: 0xAA82, - 52341 - 44032: 0xC3B2, - 52342 - 44032: 0xAA83, - 52343 - 44032: 0xAA84, - 52344 - 44032: 0xAA85, - 52345 - 44032: 0xAA86, - 52346 - 44032: 0xAA87, - 52347 - 44032: 0xAA88, - 52348 - 44032: 0xAA89, - 52349 - 44032: 0xAA8A, - 52350 - 44032: 0xAA8B, - 52351 - 44032: 0xAA8C, - 52352 - 44032: 0xAA8D, - 52353 - 44032: 0xAA8E, - 52354 - 44032: 0xAA8F, - 52355 - 44032: 0xAA90, - 52356 - 44032: 0xAA91, - 52357 - 44032: 0xAA92, - 52358 - 44032: 0xAA93, - 52359 - 44032: 0xAA94, - 52360 - 44032: 0xAA95, - 52361 - 44032: 0xAA96, - 52362 - 44032: 0xAA97, - 52363 - 44032: 0xAA98, - 52364 - 44032: 0xAA99, - 52365 - 44032: 0xAA9A, - 52366 - 44032: 0xAA9B, - 52367 - 44032: 0xAA9C, - 52368 - 44032: 0xAA9D, - 52369 - 44032: 0xAA9E, - 52370 - 44032: 0xAA9F, - 52371 - 44032: 0xAAA0, - 52372 - 44032: 0xAB41, - 52373 - 44032: 0xAB42, - 52374 - 44032: 0xAB43, - 52375 - 44032: 0xAB44, - 52376 - 44032: 0xC3B3, - 52377 - 44032: 0xC3B4, - 52378 - 44032: 0xAB45, - 52379 - 44032: 0xAB46, - 52380 - 44032: 0xC3B5, - 52381 - 44032: 0xAB47, - 52382 - 44032: 0xAB48, - 52383 - 44032: 0xAB49, - 52384 - 44032: 0xC3B6, - 52385 - 44032: 0xAB4A, - 52386 - 44032: 0xAB4B, - 52387 - 44032: 0xAB4C, - 52388 - 44032: 0xAB4D, - 52389 - 44032: 0xAB4E, - 52390 - 44032: 0xAB4F, - 52391 - 44032: 0xAB50, - 52392 - 44032: 0xC3B7, - 52393 - 44032: 0xC3B8, - 52394 - 44032: 0xAB51, - 52395 - 44032: 0xC3B9, - 52396 - 44032: 0xC3BA, - 52397 - 44032: 0xC3BB, - 52398 - 44032: 0xAB52, - 52399 - 44032: 0xAB53, - 52400 - 44032: 0xAB54, - 52401 - 44032: 0xAB55, - 52402 - 44032: 0xAB56, - 52403 - 44032: 0xAB57, - 52404 - 44032: 0xC3BC, - 52405 - 44032: 0xC3BD, - 52406 - 44032: 0xAB58, - 52407 - 44032: 0xAB59, - 52408 - 44032: 0xC3BE, - 52409 - 44032: 0xAB5A, - 52410 - 44032: 0xAB61, - 52411 - 44032: 0xAB62, - 52412 - 44032: 0xC3BF, - 52413 - 44032: 0xAB63, - 52414 - 44032: 0xAB64, - 52415 - 44032: 0xAB65, - 52416 - 44032: 0xAB66, - 52417 - 44032: 0xAB67, - 52418 - 44032: 0xAB68, - 52419 - 44032: 0xAB69, - 52420 - 44032: 0xC3C0, - 52421 - 44032: 0xC3C1, - 52422 - 44032: 0xAB6A, - 52423 - 44032: 0xC3C2, - 52424 - 44032: 0xAB6B, - 52425 - 44032: 0xC3C3, - 52426 - 44032: 0xAB6C, - 52427 - 44032: 0xAB6D, - 52428 - 44032: 0xAB6E, - 52429 - 44032: 0xAB6F, - 52430 - 44032: 0xAB70, - 52431 - 44032: 0xAB71, - 52432 - 44032: 0xC3C4, - 52433 - 44032: 0xAB72, - 52434 - 44032: 0xAB73, - 52435 - 44032: 0xAB74, - 52436 - 44032: 0xC3C5, - 52437 - 44032: 0xAB75, - 52438 - 44032: 0xAB76, - 52439 - 44032: 0xAB77, - 52440 - 44032: 0xAB78, - 52441 - 44032: 0xAB79, - 52442 - 44032: 0xAB7A, - 52443 - 44032: 0xAB81, - 52444 - 44032: 0xAB82, - 52445 - 44032: 0xAB83, - 52446 - 44032: 0xAB84, - 52447 - 44032: 0xAB85, - 52448 - 44032: 0xAB86, - 52449 - 44032: 0xAB87, - 52450 - 44032: 0xAB88, - 52451 - 44032: 0xAB89, - 52452 - 44032: 0xC3C6, - 52453 - 44032: 0xAB8A, - 52454 - 44032: 0xAB8B, - 52455 - 44032: 0xAB8C, - 52456 - 44032: 0xAB8D, - 52457 - 44032: 0xAB8E, - 52458 - 44032: 0xAB8F, - 52459 - 44032: 0xAB90, - 52460 - 44032: 0xC3C7, - 52461 - 44032: 0xAB91, - 52462 - 44032: 0xAB92, - 52463 - 44032: 0xAB93, - 52464 - 44032: 0xC3C8, - 52465 - 44032: 0xAB94, - 52466 - 44032: 0xAB95, - 52467 - 44032: 0xAB96, - 52468 - 44032: 0xAB97, - 52469 - 44032: 0xAB98, - 52470 - 44032: 0xAB99, - 52471 - 44032: 0xAB9A, - 52472 - 44032: 0xAB9B, - 52473 - 44032: 0xAB9C, - 52474 - 44032: 0xAB9D, - 52475 - 44032: 0xAB9E, - 52476 - 44032: 0xAB9F, - 52477 - 44032: 0xABA0, - 52478 - 44032: 0xAC41, - 52479 - 44032: 0xAC42, - 52480 - 44032: 0xAC43, - 52481 - 44032: 0xC3C9, - 52482 - 44032: 0xAC44, - 52483 - 44032: 0xAC45, - 52484 - 44032: 0xAC46, - 52485 - 44032: 0xAC47, - 52486 - 44032: 0xAC48, - 52487 - 44032: 0xAC49, - 52488 - 44032: 0xC3CA, - 52489 - 44032: 0xC3CB, - 52490 - 44032: 0xAC4A, - 52491 - 44032: 0xAC4B, - 52492 - 44032: 0xC3CC, - 52493 - 44032: 0xAC4C, - 52494 - 44032: 0xAC4D, - 52495 - 44032: 0xAC4E, - 52496 - 44032: 0xC3CD, - 52497 - 44032: 0xAC4F, - 52498 - 44032: 0xAC50, - 52499 - 44032: 0xAC51, - 52500 - 44032: 0xAC52, - 52501 - 44032: 0xAC53, - 52502 - 44032: 0xAC54, - 52503 - 44032: 0xAC55, - 52504 - 44032: 0xC3CE, - 52505 - 44032: 0xC3CF, - 52506 - 44032: 0xAC56, - 52507 - 44032: 0xC3D0, - 52508 - 44032: 0xAC57, - 52509 - 44032: 0xC3D1, - 52510 - 44032: 0xAC58, - 52511 - 44032: 0xAC59, - 52512 - 44032: 0xAC5A, - 52513 - 44032: 0xAC61, - 52514 - 44032: 0xAC62, - 52515 - 44032: 0xAC63, - 52516 - 44032: 0xC3D2, - 52517 - 44032: 0xAC64, - 52518 - 44032: 0xAC65, - 52519 - 44032: 0xAC66, - 52520 - 44032: 0xC3D3, - 52521 - 44032: 0xAC67, - 52522 - 44032: 0xAC68, - 52523 - 44032: 0xAC69, - 52524 - 44032: 0xC3D4, - 52525 - 44032: 0xAC6A, - 52526 - 44032: 0xAC6B, - 52527 - 44032: 0xAC6C, - 52528 - 44032: 0xAC6D, - 52529 - 44032: 0xAC6E, - 52530 - 44032: 0xAC6F, - 52531 - 44032: 0xAC70, - 52532 - 44032: 0xAC71, - 52533 - 44032: 0xAC72, - 52534 - 44032: 0xAC73, - 52535 - 44032: 0xAC74, - 52536 - 44032: 0xAC75, - 52537 - 44032: 0xC3D5, - 52538 - 44032: 0xAC76, - 52539 - 44032: 0xAC77, - 52540 - 44032: 0xAC78, - 52541 - 44032: 0xAC79, - 52542 - 44032: 0xAC7A, - 52543 - 44032: 0xAC81, - 52544 - 44032: 0xAC82, - 52545 - 44032: 0xAC83, - 52546 - 44032: 0xAC84, - 52547 - 44032: 0xAC85, - 52548 - 44032: 0xAC86, - 52549 - 44032: 0xAC87, - 52550 - 44032: 0xAC88, - 52551 - 44032: 0xAC89, - 52552 - 44032: 0xAC8A, - 52553 - 44032: 0xAC8B, - 52554 - 44032: 0xAC8C, - 52555 - 44032: 0xAC8D, - 52556 - 44032: 0xAC8E, - 52557 - 44032: 0xAC8F, - 52558 - 44032: 0xAC90, - 52559 - 44032: 0xAC91, - 52560 - 44032: 0xAC92, - 52561 - 44032: 0xAC93, - 52562 - 44032: 0xAC94, - 52563 - 44032: 0xAC95, - 52564 - 44032: 0xAC96, - 52565 - 44032: 0xAC97, - 52566 - 44032: 0xAC98, - 52567 - 44032: 0xAC99, - 52568 - 44032: 0xAC9A, - 52569 - 44032: 0xAC9B, - 52570 - 44032: 0xAC9C, - 52571 - 44032: 0xAC9D, - 52572 - 44032: 0xC3D6, - 52573 - 44032: 0xAC9E, - 52574 - 44032: 0xAC9F, - 52575 - 44032: 0xACA0, - 52576 - 44032: 0xC3D7, - 52577 - 44032: 0xAD41, - 52578 - 44032: 0xAD42, - 52579 - 44032: 0xAD43, - 52580 - 44032: 0xC3D8, - 52581 - 44032: 0xAD44, - 52582 - 44032: 0xAD45, - 52583 - 44032: 0xAD46, - 52584 - 44032: 0xAD47, - 52585 - 44032: 0xAD48, - 52586 - 44032: 0xAD49, - 52587 - 44032: 0xAD4A, - 52588 - 44032: 0xC3D9, - 52589 - 44032: 0xC3DA, - 52590 - 44032: 0xAD4B, - 52591 - 44032: 0xC3DB, - 52592 - 44032: 0xAD4C, - 52593 - 44032: 0xC3DC, - 52594 - 44032: 0xAD4D, - 52595 - 44032: 0xAD4E, - 52596 - 44032: 0xAD4F, - 52597 - 44032: 0xAD50, - 52598 - 44032: 0xAD51, - 52599 - 44032: 0xAD52, - 52600 - 44032: 0xC3DD, - 52601 - 44032: 0xAD53, - 52602 - 44032: 0xAD54, - 52603 - 44032: 0xAD55, - 52604 - 44032: 0xAD56, - 52605 - 44032: 0xAD57, - 52606 - 44032: 0xAD58, - 52607 - 44032: 0xAD59, - 52608 - 44032: 0xAD5A, - 52609 - 44032: 0xAD61, - 52610 - 44032: 0xAD62, - 52611 - 44032: 0xAD63, - 52612 - 44032: 0xAD64, - 52613 - 44032: 0xAD65, - 52614 - 44032: 0xAD66, - 52615 - 44032: 0xAD67, - 52616 - 44032: 0xC3DE, - 52617 - 44032: 0xAD68, - 52618 - 44032: 0xAD69, - 52619 - 44032: 0xAD6A, - 52620 - 44032: 0xAD6B, - 52621 - 44032: 0xAD6C, - 52622 - 44032: 0xAD6D, - 52623 - 44032: 0xAD6E, - 52624 - 44032: 0xAD6F, - 52625 - 44032: 0xAD70, - 52626 - 44032: 0xAD71, - 52627 - 44032: 0xAD72, - 52628 - 44032: 0xC3DF, - 52629 - 44032: 0xC3E0, - 52630 - 44032: 0xAD73, - 52631 - 44032: 0xAD74, - 52632 - 44032: 0xC3E1, - 52633 - 44032: 0xAD75, - 52634 - 44032: 0xAD76, - 52635 - 44032: 0xAD77, - 52636 - 44032: 0xC3E2, - 52637 - 44032: 0xAD78, - 52638 - 44032: 0xAD79, - 52639 - 44032: 0xAD7A, - 52640 - 44032: 0xAD81, - 52641 - 44032: 0xAD82, - 52642 - 44032: 0xAD83, - 52643 - 44032: 0xAD84, - 52644 - 44032: 0xC3E3, - 52645 - 44032: 0xC3E4, - 52646 - 44032: 0xAD85, - 52647 - 44032: 0xC3E5, - 52648 - 44032: 0xAD86, - 52649 - 44032: 0xC3E6, - 52650 - 44032: 0xAD87, - 52651 - 44032: 0xAD88, - 52652 - 44032: 0xAD89, - 52653 - 44032: 0xAD8A, - 52654 - 44032: 0xAD8B, - 52655 - 44032: 0xAD8C, - 52656 - 44032: 0xC3E7, - 52657 - 44032: 0xAD8D, - 52658 - 44032: 0xAD8E, - 52659 - 44032: 0xAD8F, - 52660 - 44032: 0xAD90, - 52661 - 44032: 0xAD91, - 52662 - 44032: 0xAD92, - 52663 - 44032: 0xAD93, - 52664 - 44032: 0xAD94, - 52665 - 44032: 0xAD95, - 52666 - 44032: 0xAD96, - 52667 - 44032: 0xAD97, - 52668 - 44032: 0xAD98, - 52669 - 44032: 0xAD99, - 52670 - 44032: 0xAD9A, - 52671 - 44032: 0xAD9B, - 52672 - 44032: 0xAD9C, - 52673 - 44032: 0xAD9D, - 52674 - 44032: 0xAD9E, - 52675 - 44032: 0xAD9F, - 52676 - 44032: 0xC3E8, - 52677 - 44032: 0xADA0, - 52678 - 44032: 0xAE41, - 52679 - 44032: 0xAE42, - 52680 - 44032: 0xAE43, - 52681 - 44032: 0xAE44, - 52682 - 44032: 0xAE45, - 52683 - 44032: 0xAE46, - 52684 - 44032: 0xC3E9, - 52685 - 44032: 0xAE47, - 52686 - 44032: 0xAE48, - 52687 - 44032: 0xAE49, - 52688 - 44032: 0xC3EA, - 52689 - 44032: 0xAE4A, - 52690 - 44032: 0xAE4B, - 52691 - 44032: 0xAE4C, - 52692 - 44032: 0xAE4D, - 52693 - 44032: 0xAE4E, - 52694 - 44032: 0xAE4F, - 52695 - 44032: 0xAE50, - 52696 - 44032: 0xAE51, - 52697 - 44032: 0xAE52, - 52698 - 44032: 0xAE53, - 52699 - 44032: 0xAE54, - 52700 - 44032: 0xAE55, - 52701 - 44032: 0xAE56, - 52702 - 44032: 0xAE57, - 52703 - 44032: 0xAE58, - 52704 - 44032: 0xAE59, - 52705 - 44032: 0xAE5A, - 52706 - 44032: 0xAE61, - 52707 - 44032: 0xAE62, - 52708 - 44032: 0xAE63, - 52709 - 44032: 0xAE64, - 52710 - 44032: 0xAE65, - 52711 - 44032: 0xAE66, - 52712 - 44032: 0xC3EB, - 52713 - 44032: 0xAE67, - 52714 - 44032: 0xAE68, - 52715 - 44032: 0xAE69, - 52716 - 44032: 0xC3EC, - 52717 - 44032: 0xAE6A, - 52718 - 44032: 0xAE6B, - 52719 - 44032: 0xAE6C, - 52720 - 44032: 0xC3ED, - 52721 - 44032: 0xAE6D, - 52722 - 44032: 0xAE6E, - 52723 - 44032: 0xAE6F, - 52724 - 44032: 0xAE70, - 52725 - 44032: 0xAE71, - 52726 - 44032: 0xAE72, - 52727 - 44032: 0xAE73, - 52728 - 44032: 0xC3EE, - 52729 - 44032: 0xC3EF, - 52730 - 44032: 0xAE74, - 52731 - 44032: 0xC3F0, - 52732 - 44032: 0xAE75, - 52733 - 44032: 0xC3F1, - 52734 - 44032: 0xAE76, - 52735 - 44032: 0xAE77, - 52736 - 44032: 0xAE78, - 52737 - 44032: 0xAE79, - 52738 - 44032: 0xAE7A, - 52739 - 44032: 0xAE81, - 52740 - 44032: 0xC3F2, - 52741 - 44032: 0xAE82, - 52742 - 44032: 0xAE83, - 52743 - 44032: 0xAE84, - 52744 - 44032: 0xC3F3, - 52745 - 44032: 0xAE85, - 52746 - 44032: 0xAE86, - 52747 - 44032: 0xAE87, - 52748 - 44032: 0xC3F4, - 52749 - 44032: 0xAE88, - 52750 - 44032: 0xAE89, - 52751 - 44032: 0xAE8A, - 52752 - 44032: 0xAE8B, - 52753 - 44032: 0xAE8C, - 52754 - 44032: 0xAE8D, - 52755 - 44032: 0xAE8E, - 52756 - 44032: 0xC3F5, - 52757 - 44032: 0xAE8F, - 52758 - 44032: 0xAE90, - 52759 - 44032: 0xAE91, - 52760 - 44032: 0xAE92, - 52761 - 44032: 0xC3F6, - 52762 - 44032: 0xAE93, - 52763 - 44032: 0xAE94, - 52764 - 44032: 0xAE95, - 52765 - 44032: 0xAE96, - 52766 - 44032: 0xAE97, - 52767 - 44032: 0xAE98, - 52768 - 44032: 0xC3F7, - 52769 - 44032: 0xC3F8, - 52770 - 44032: 0xAE99, - 52771 - 44032: 0xAE9A, - 52772 - 44032: 0xC3F9, - 52773 - 44032: 0xAE9B, - 52774 - 44032: 0xAE9C, - 52775 - 44032: 0xAE9D, - 52776 - 44032: 0xC3FA, - 52777 - 44032: 0xAE9E, - 52778 - 44032: 0xAE9F, - 52779 - 44032: 0xAEA0, - 52780 - 44032: 0xAF41, - 52781 - 44032: 0xAF42, - 52782 - 44032: 0xAF43, - 52783 - 44032: 0xAF44, - 52784 - 44032: 0xC3FB, - 52785 - 44032: 0xC3FC, - 52786 - 44032: 0xAF45, - 52787 - 44032: 0xC3FD, - 52788 - 44032: 0xAF46, - 52789 - 44032: 0xC3FE, - 52790 - 44032: 0xAF47, - 52791 - 44032: 0xAF48, - 52792 - 44032: 0xAF49, - 52793 - 44032: 0xAF4A, - 52794 - 44032: 0xAF4B, - 52795 - 44032: 0xAF4C, - 52796 - 44032: 0xAF4D, - 52797 - 44032: 0xAF4E, - 52798 - 44032: 0xAF4F, - 52799 - 44032: 0xAF50, - 52800 - 44032: 0xAF51, - 52801 - 44032: 0xAF52, - 52802 - 44032: 0xAF53, - 52803 - 44032: 0xAF54, - 52804 - 44032: 0xAF55, - 52805 - 44032: 0xAF56, - 52806 - 44032: 0xAF57, - 52807 - 44032: 0xAF58, - 52808 - 44032: 0xAF59, - 52809 - 44032: 0xAF5A, - 52810 - 44032: 0xAF61, - 52811 - 44032: 0xAF62, - 52812 - 44032: 0xAF63, - 52813 - 44032: 0xAF64, - 52814 - 44032: 0xAF65, - 52815 - 44032: 0xAF66, - 52816 - 44032: 0xAF67, - 52817 - 44032: 0xAF68, - 52818 - 44032: 0xAF69, - 52819 - 44032: 0xAF6A, - 52820 - 44032: 0xAF6B, - 52821 - 44032: 0xAF6C, - 52822 - 44032: 0xAF6D, - 52823 - 44032: 0xAF6E, - 52824 - 44032: 0xC4A1, - 52825 - 44032: 0xC4A2, - 52826 - 44032: 0xAF6F, - 52827 - 44032: 0xAF70, - 52828 - 44032: 0xC4A3, - 52829 - 44032: 0xAF71, - 52830 - 44032: 0xAF72, - 52831 - 44032: 0xC4A4, - 52832 - 44032: 0xC4A5, - 52833 - 44032: 0xC4A6, - 52834 - 44032: 0xAF73, - 52835 - 44032: 0xAF74, - 52836 - 44032: 0xAF75, - 52837 - 44032: 0xAF76, - 52838 - 44032: 0xAF77, - 52839 - 44032: 0xAF78, - 52840 - 44032: 0xC4A7, - 52841 - 44032: 0xC4A8, - 52842 - 44032: 0xAF79, - 52843 - 44032: 0xC4A9, - 52844 - 44032: 0xAF7A, - 52845 - 44032: 0xC4AA, - 52846 - 44032: 0xAF81, - 52847 - 44032: 0xAF82, - 52848 - 44032: 0xAF83, - 52849 - 44032: 0xAF84, - 52850 - 44032: 0xAF85, - 52851 - 44032: 0xAF86, - 52852 - 44032: 0xC4AB, - 52853 - 44032: 0xC4AC, - 52854 - 44032: 0xAF87, - 52855 - 44032: 0xAF88, - 52856 - 44032: 0xC4AD, - 52857 - 44032: 0xAF89, - 52858 - 44032: 0xAF8A, - 52859 - 44032: 0xAF8B, - 52860 - 44032: 0xC4AE, - 52861 - 44032: 0xAF8C, - 52862 - 44032: 0xAF8D, - 52863 - 44032: 0xAF8E, - 52864 - 44032: 0xAF8F, - 52865 - 44032: 0xAF90, - 52866 - 44032: 0xAF91, - 52867 - 44032: 0xAF92, - 52868 - 44032: 0xC4AF, - 52869 - 44032: 0xC4B0, - 52870 - 44032: 0xAF93, - 52871 - 44032: 0xC4B1, - 52872 - 44032: 0xAF94, - 52873 - 44032: 0xC4B2, - 52874 - 44032: 0xAF95, - 52875 - 44032: 0xAF96, - 52876 - 44032: 0xAF97, - 52877 - 44032: 0xAF98, - 52878 - 44032: 0xAF99, - 52879 - 44032: 0xAF9A, - 52880 - 44032: 0xC4B3, - 52881 - 44032: 0xC4B4, - 52882 - 44032: 0xAF9B, - 52883 - 44032: 0xAF9C, - 52884 - 44032: 0xC4B5, - 52885 - 44032: 0xAF9D, - 52886 - 44032: 0xAF9E, - 52887 - 44032: 0xAF9F, - 52888 - 44032: 0xC4B6, - 52889 - 44032: 0xAFA0, - 52890 - 44032: 0xB041, - 52891 - 44032: 0xB042, - 52892 - 44032: 0xB043, - 52893 - 44032: 0xB044, - 52894 - 44032: 0xB045, - 52895 - 44032: 0xB046, - 52896 - 44032: 0xC4B7, - 52897 - 44032: 0xC4B8, - 52898 - 44032: 0xB047, - 52899 - 44032: 0xC4B9, - 52900 - 44032: 0xC4BA, - 52901 - 44032: 0xC4BB, - 52902 - 44032: 0xB048, - 52903 - 44032: 0xB049, - 52904 - 44032: 0xB04A, - 52905 - 44032: 0xB04B, - 52906 - 44032: 0xB04C, - 52907 - 44032: 0xB04D, - 52908 - 44032: 0xC4BC, - 52909 - 44032: 0xC4BD, - 52910 - 44032: 0xB04E, - 52911 - 44032: 0xB04F, - 52912 - 44032: 0xB050, - 52913 - 44032: 0xB051, - 52914 - 44032: 0xB052, - 52915 - 44032: 0xB053, - 52916 - 44032: 0xB054, - 52917 - 44032: 0xB055, - 52918 - 44032: 0xB056, - 52919 - 44032: 0xB057, - 52920 - 44032: 0xB058, - 52921 - 44032: 0xB059, - 52922 - 44032: 0xB05A, - 52923 - 44032: 0xB061, - 52924 - 44032: 0xB062, - 52925 - 44032: 0xB063, - 52926 - 44032: 0xB064, - 52927 - 44032: 0xB065, - 52928 - 44032: 0xB066, - 52929 - 44032: 0xC4BE, - 52930 - 44032: 0xB067, - 52931 - 44032: 0xB068, - 52932 - 44032: 0xB069, - 52933 - 44032: 0xB06A, - 52934 - 44032: 0xB06B, - 52935 - 44032: 0xB06C, - 52936 - 44032: 0xB06D, - 52937 - 44032: 0xB06E, - 52938 - 44032: 0xB06F, - 52939 - 44032: 0xB070, - 52940 - 44032: 0xB071, - 52941 - 44032: 0xB072, - 52942 - 44032: 0xB073, - 52943 - 44032: 0xB074, - 52944 - 44032: 0xB075, - 52945 - 44032: 0xB076, - 52946 - 44032: 0xB077, - 52947 - 44032: 0xB078, - 52948 - 44032: 0xB079, - 52949 - 44032: 0xB07A, - 52950 - 44032: 0xB081, - 52951 - 44032: 0xB082, - 52952 - 44032: 0xB083, - 52953 - 44032: 0xB084, - 52954 - 44032: 0xB085, - 52955 - 44032: 0xB086, - 52956 - 44032: 0xB087, - 52957 - 44032: 0xB088, - 52958 - 44032: 0xB089, - 52959 - 44032: 0xB08A, - 52960 - 44032: 0xB08B, - 52961 - 44032: 0xB08C, - 52962 - 44032: 0xB08D, - 52963 - 44032: 0xB08E, - 52964 - 44032: 0xC4BF, - 52965 - 44032: 0xC4C0, - 52966 - 44032: 0xB08F, - 52967 - 44032: 0xB090, - 52968 - 44032: 0xC4C1, - 52969 - 44032: 0xB091, - 52970 - 44032: 0xB092, - 52971 - 44032: 0xC4C2, - 52972 - 44032: 0xC4C3, - 52973 - 44032: 0xB093, - 52974 - 44032: 0xB094, - 52975 - 44032: 0xB095, - 52976 - 44032: 0xB096, - 52977 - 44032: 0xB097, - 52978 - 44032: 0xB098, - 52979 - 44032: 0xB099, - 52980 - 44032: 0xC4C4, - 52981 - 44032: 0xC4C5, - 52982 - 44032: 0xB09A, - 52983 - 44032: 0xC4C6, - 52984 - 44032: 0xC4C7, - 52985 - 44032: 0xC4C8, - 52986 - 44032: 0xB09B, - 52987 - 44032: 0xB09C, - 52988 - 44032: 0xB09D, - 52989 - 44032: 0xB09E, - 52990 - 44032: 0xB09F, - 52991 - 44032: 0xB0A0, - 52992 - 44032: 0xC4C9, - 52993 - 44032: 0xC4CA, - 52994 - 44032: 0xB141, - 52995 - 44032: 0xB142, - 52996 - 44032: 0xC4CB, - 52997 - 44032: 0xB143, - 52998 - 44032: 0xB144, - 52999 - 44032: 0xB145, - 53000 - 44032: 0xC4CC, - 53001 - 44032: 0xB146, - 53002 - 44032: 0xB147, - 53003 - 44032: 0xB148, - 53004 - 44032: 0xB149, - 53005 - 44032: 0xB14A, - 53006 - 44032: 0xB14B, - 53007 - 44032: 0xB14C, - 53008 - 44032: 0xC4CD, - 53009 - 44032: 0xC4CE, - 53010 - 44032: 0xB14D, - 53011 - 44032: 0xC4CF, - 53012 - 44032: 0xB14E, - 53013 - 44032: 0xC4D0, - 53014 - 44032: 0xB14F, - 53015 - 44032: 0xB150, - 53016 - 44032: 0xB151, - 53017 - 44032: 0xB152, - 53018 - 44032: 0xB153, - 53019 - 44032: 0xB154, - 53020 - 44032: 0xC4D1, - 53021 - 44032: 0xB155, - 53022 - 44032: 0xB156, - 53023 - 44032: 0xB157, - 53024 - 44032: 0xC4D2, - 53025 - 44032: 0xB158, - 53026 - 44032: 0xB159, - 53027 - 44032: 0xB15A, - 53028 - 44032: 0xC4D3, - 53029 - 44032: 0xB161, - 53030 - 44032: 0xB162, - 53031 - 44032: 0xB163, - 53032 - 44032: 0xB164, - 53033 - 44032: 0xB165, - 53034 - 44032: 0xB166, - 53035 - 44032: 0xB167, - 53036 - 44032: 0xC4D4, - 53037 - 44032: 0xC4D5, - 53038 - 44032: 0xB168, - 53039 - 44032: 0xC4D6, - 53040 - 44032: 0xC4D7, - 53041 - 44032: 0xC4D8, - 53042 - 44032: 0xB169, - 53043 - 44032: 0xB16A, - 53044 - 44032: 0xB16B, - 53045 - 44032: 0xB16C, - 53046 - 44032: 0xB16D, - 53047 - 44032: 0xB16E, - 53048 - 44032: 0xC4D9, - 53049 - 44032: 0xB16F, - 53050 - 44032: 0xB170, - 53051 - 44032: 0xB171, - 53052 - 44032: 0xB172, - 53053 - 44032: 0xB173, - 53054 - 44032: 0xB174, - 53055 - 44032: 0xB175, - 53056 - 44032: 0xB176, - 53057 - 44032: 0xB177, - 53058 - 44032: 0xB178, - 53059 - 44032: 0xB179, - 53060 - 44032: 0xB17A, - 53061 - 44032: 0xB181, - 53062 - 44032: 0xB182, - 53063 - 44032: 0xB183, - 53064 - 44032: 0xB184, - 53065 - 44032: 0xB185, - 53066 - 44032: 0xB186, - 53067 - 44032: 0xB187, - 53068 - 44032: 0xB188, - 53069 - 44032: 0xB189, - 53070 - 44032: 0xB18A, - 53071 - 44032: 0xB18B, - 53072 - 44032: 0xB18C, - 53073 - 44032: 0xB18D, - 53074 - 44032: 0xB18E, - 53075 - 44032: 0xB18F, - 53076 - 44032: 0xC4DA, - 53077 - 44032: 0xC4DB, - 53078 - 44032: 0xB190, - 53079 - 44032: 0xB191, - 53080 - 44032: 0xC4DC, - 53081 - 44032: 0xB192, - 53082 - 44032: 0xB193, - 53083 - 44032: 0xB194, - 53084 - 44032: 0xC4DD, - 53085 - 44032: 0xB195, - 53086 - 44032: 0xB196, - 53087 - 44032: 0xB197, - 53088 - 44032: 0xB198, - 53089 - 44032: 0xB199, - 53090 - 44032: 0xB19A, - 53091 - 44032: 0xB19B, - 53092 - 44032: 0xC4DE, - 53093 - 44032: 0xC4DF, - 53094 - 44032: 0xB19C, - 53095 - 44032: 0xC4E0, - 53096 - 44032: 0xB19D, - 53097 - 44032: 0xC4E1, - 53098 - 44032: 0xB19E, - 53099 - 44032: 0xB19F, - 53100 - 44032: 0xB1A0, - 53101 - 44032: 0xB241, - 53102 - 44032: 0xB242, - 53103 - 44032: 0xB243, - 53104 - 44032: 0xC4E2, - 53105 - 44032: 0xC4E3, - 53106 - 44032: 0xB244, - 53107 - 44032: 0xB245, - 53108 - 44032: 0xC4E4, - 53109 - 44032: 0xB246, - 53110 - 44032: 0xB247, - 53111 - 44032: 0xB248, - 53112 - 44032: 0xC4E5, - 53113 - 44032: 0xB249, - 53114 - 44032: 0xB24A, - 53115 - 44032: 0xB24B, - 53116 - 44032: 0xB24C, - 53117 - 44032: 0xB24D, - 53118 - 44032: 0xB24E, - 53119 - 44032: 0xB24F, - 53120 - 44032: 0xC4E6, - 53121 - 44032: 0xB250, - 53122 - 44032: 0xB251, - 53123 - 44032: 0xB252, - 53124 - 44032: 0xB253, - 53125 - 44032: 0xC4E7, - 53126 - 44032: 0xB254, - 53127 - 44032: 0xB255, - 53128 - 44032: 0xB256, - 53129 - 44032: 0xB257, - 53130 - 44032: 0xB258, - 53131 - 44032: 0xB259, - 53132 - 44032: 0xC4E8, - 53133 - 44032: 0xB25A, - 53134 - 44032: 0xB261, - 53135 - 44032: 0xB262, - 53136 - 44032: 0xB263, - 53137 - 44032: 0xB264, - 53138 - 44032: 0xB265, - 53139 - 44032: 0xB266, - 53140 - 44032: 0xB267, - 53141 - 44032: 0xB268, - 53142 - 44032: 0xB269, - 53143 - 44032: 0xB26A, - 53144 - 44032: 0xB26B, - 53145 - 44032: 0xB26C, - 53146 - 44032: 0xB26D, - 53147 - 44032: 0xB26E, - 53148 - 44032: 0xB26F, - 53149 - 44032: 0xB270, - 53150 - 44032: 0xB271, - 53151 - 44032: 0xB272, - 53152 - 44032: 0xB273, - 53153 - 44032: 0xC4E9, - 53154 - 44032: 0xB274, - 53155 - 44032: 0xB275, - 53156 - 44032: 0xB276, - 53157 - 44032: 0xB277, - 53158 - 44032: 0xB278, - 53159 - 44032: 0xB279, - 53160 - 44032: 0xC4EA, - 53161 - 44032: 0xB27A, - 53162 - 44032: 0xB281, - 53163 - 44032: 0xB282, - 53164 - 44032: 0xB283, - 53165 - 44032: 0xB284, - 53166 - 44032: 0xB285, - 53167 - 44032: 0xB286, - 53168 - 44032: 0xC4EB, - 53169 - 44032: 0xB287, - 53170 - 44032: 0xB288, - 53171 - 44032: 0xB289, - 53172 - 44032: 0xB28A, - 53173 - 44032: 0xB28B, - 53174 - 44032: 0xB28C, - 53175 - 44032: 0xB28D, - 53176 - 44032: 0xB28E, - 53177 - 44032: 0xB28F, - 53178 - 44032: 0xB290, - 53179 - 44032: 0xB291, - 53180 - 44032: 0xB292, - 53181 - 44032: 0xB293, - 53182 - 44032: 0xB294, - 53183 - 44032: 0xB295, - 53184 - 44032: 0xB296, - 53185 - 44032: 0xB297, - 53186 - 44032: 0xB298, - 53187 - 44032: 0xB299, - 53188 - 44032: 0xC4EC, - 53189 - 44032: 0xB29A, - 53190 - 44032: 0xB29B, - 53191 - 44032: 0xB29C, - 53192 - 44032: 0xB29D, - 53193 - 44032: 0xB29E, - 53194 - 44032: 0xB29F, - 53195 - 44032: 0xB2A0, - 53196 - 44032: 0xB341, - 53197 - 44032: 0xB342, - 53198 - 44032: 0xB343, - 53199 - 44032: 0xB344, - 53200 - 44032: 0xB345, - 53201 - 44032: 0xB346, - 53202 - 44032: 0xB347, - 53203 - 44032: 0xB348, - 53204 - 44032: 0xB349, - 53205 - 44032: 0xB34A, - 53206 - 44032: 0xB34B, - 53207 - 44032: 0xB34C, - 53208 - 44032: 0xB34D, - 53209 - 44032: 0xB34E, - 53210 - 44032: 0xB34F, - 53211 - 44032: 0xB350, - 53212 - 44032: 0xB351, - 53213 - 44032: 0xB352, - 53214 - 44032: 0xB353, - 53215 - 44032: 0xB354, - 53216 - 44032: 0xC4ED, - 53217 - 44032: 0xC4EE, - 53218 - 44032: 0xB355, - 53219 - 44032: 0xB356, - 53220 - 44032: 0xC4EF, - 53221 - 44032: 0xB357, - 53222 - 44032: 0xB358, - 53223 - 44032: 0xB359, - 53224 - 44032: 0xC4F0, - 53225 - 44032: 0xB35A, - 53226 - 44032: 0xB361, - 53227 - 44032: 0xB362, - 53228 - 44032: 0xB363, - 53229 - 44032: 0xB364, - 53230 - 44032: 0xB365, - 53231 - 44032: 0xB366, - 53232 - 44032: 0xC4F1, - 53233 - 44032: 0xC4F2, - 53234 - 44032: 0xB367, - 53235 - 44032: 0xC4F3, - 53236 - 44032: 0xB368, - 53237 - 44032: 0xC4F4, - 53238 - 44032: 0xB369, - 53239 - 44032: 0xB36A, - 53240 - 44032: 0xB36B, - 53241 - 44032: 0xB36C, - 53242 - 44032: 0xB36D, - 53243 - 44032: 0xB36E, - 53244 - 44032: 0xC4F5, - 53245 - 44032: 0xB36F, - 53246 - 44032: 0xB370, - 53247 - 44032: 0xB371, - 53248 - 44032: 0xC4F6, - 53249 - 44032: 0xB372, - 53250 - 44032: 0xB373, - 53251 - 44032: 0xB374, - 53252 - 44032: 0xC4F7, - 53253 - 44032: 0xB375, - 53254 - 44032: 0xB376, - 53255 - 44032: 0xB377, - 53256 - 44032: 0xB378, - 53257 - 44032: 0xB379, - 53258 - 44032: 0xB37A, - 53259 - 44032: 0xB381, - 53260 - 44032: 0xB382, - 53261 - 44032: 0xB383, - 53262 - 44032: 0xB384, - 53263 - 44032: 0xB385, - 53264 - 44032: 0xB386, - 53265 - 44032: 0xC4F8, - 53266 - 44032: 0xB387, - 53267 - 44032: 0xB388, - 53268 - 44032: 0xB389, - 53269 - 44032: 0xB38A, - 53270 - 44032: 0xB38B, - 53271 - 44032: 0xB38C, - 53272 - 44032: 0xC4F9, - 53273 - 44032: 0xB38D, - 53274 - 44032: 0xB38E, - 53275 - 44032: 0xB38F, - 53276 - 44032: 0xB390, - 53277 - 44032: 0xB391, - 53278 - 44032: 0xB392, - 53279 - 44032: 0xB393, - 53280 - 44032: 0xB394, - 53281 - 44032: 0xB395, - 53282 - 44032: 0xB396, - 53283 - 44032: 0xB397, - 53284 - 44032: 0xB398, - 53285 - 44032: 0xB399, - 53286 - 44032: 0xB39A, - 53287 - 44032: 0xB39B, - 53288 - 44032: 0xB39C, - 53289 - 44032: 0xB39D, - 53290 - 44032: 0xB39E, - 53291 - 44032: 0xB39F, - 53292 - 44032: 0xB3A0, - 53293 - 44032: 0xC4FA, - 53294 - 44032: 0xB441, - 53295 - 44032: 0xB442, - 53296 - 44032: 0xB443, - 53297 - 44032: 0xB444, - 53298 - 44032: 0xB445, - 53299 - 44032: 0xB446, - 53300 - 44032: 0xC4FB, - 53301 - 44032: 0xC4FC, - 53302 - 44032: 0xB447, - 53303 - 44032: 0xB448, - 53304 - 44032: 0xC4FD, - 53305 - 44032: 0xB449, - 53306 - 44032: 0xB44A, - 53307 - 44032: 0xB44B, - 53308 - 44032: 0xC4FE, - 53309 - 44032: 0xB44C, - 53310 - 44032: 0xB44D, - 53311 - 44032: 0xB44E, - 53312 - 44032: 0xB44F, - 53313 - 44032: 0xB450, - 53314 - 44032: 0xB451, - 53315 - 44032: 0xB452, - 53316 - 44032: 0xC5A1, - 53317 - 44032: 0xC5A2, - 53318 - 44032: 0xB453, - 53319 - 44032: 0xC5A3, - 53320 - 44032: 0xB454, - 53321 - 44032: 0xC5A4, - 53322 - 44032: 0xB455, - 53323 - 44032: 0xB456, - 53324 - 44032: 0xB457, - 53325 - 44032: 0xB458, - 53326 - 44032: 0xB459, - 53327 - 44032: 0xB45A, - 53328 - 44032: 0xC5A5, - 53329 - 44032: 0xB461, - 53330 - 44032: 0xB462, - 53331 - 44032: 0xB463, - 53332 - 44032: 0xC5A6, - 53333 - 44032: 0xB464, - 53334 - 44032: 0xB465, - 53335 - 44032: 0xB466, - 53336 - 44032: 0xC5A7, - 53337 - 44032: 0xB467, - 53338 - 44032: 0xB468, - 53339 - 44032: 0xB469, - 53340 - 44032: 0xB46A, - 53341 - 44032: 0xB46B, - 53342 - 44032: 0xB46C, - 53343 - 44032: 0xB46D, - 53344 - 44032: 0xC5A8, - 53345 - 44032: 0xB46E, - 53346 - 44032: 0xB46F, - 53347 - 44032: 0xB470, - 53348 - 44032: 0xB471, - 53349 - 44032: 0xB472, - 53350 - 44032: 0xB473, - 53351 - 44032: 0xB474, - 53352 - 44032: 0xB475, - 53353 - 44032: 0xB476, - 53354 - 44032: 0xB477, - 53355 - 44032: 0xB478, - 53356 - 44032: 0xC5A9, - 53357 - 44032: 0xC5AA, - 53358 - 44032: 0xB479, - 53359 - 44032: 0xB47A, - 53360 - 44032: 0xC5AB, - 53361 - 44032: 0xB481, - 53362 - 44032: 0xB482, - 53363 - 44032: 0xB483, - 53364 - 44032: 0xC5AC, - 53365 - 44032: 0xB484, - 53366 - 44032: 0xB485, - 53367 - 44032: 0xB486, - 53368 - 44032: 0xB487, - 53369 - 44032: 0xB488, - 53370 - 44032: 0xB489, - 53371 - 44032: 0xB48A, - 53372 - 44032: 0xC5AD, - 53373 - 44032: 0xC5AE, - 53374 - 44032: 0xB48B, - 53375 - 44032: 0xB48C, - 53376 - 44032: 0xB48D, - 53377 - 44032: 0xC5AF, - 53378 - 44032: 0xB48E, - 53379 - 44032: 0xB48F, - 53380 - 44032: 0xB490, - 53381 - 44032: 0xB491, - 53382 - 44032: 0xB492, - 53383 - 44032: 0xB493, - 53384 - 44032: 0xB494, - 53385 - 44032: 0xB495, - 53386 - 44032: 0xB496, - 53387 - 44032: 0xB497, - 53388 - 44032: 0xB498, - 53389 - 44032: 0xB499, - 53390 - 44032: 0xB49A, - 53391 - 44032: 0xB49B, - 53392 - 44032: 0xB49C, - 53393 - 44032: 0xB49D, - 53394 - 44032: 0xB49E, - 53395 - 44032: 0xB49F, - 53396 - 44032: 0xB4A0, - 53397 - 44032: 0xB541, - 53398 - 44032: 0xB542, - 53399 - 44032: 0xB543, - 53400 - 44032: 0xB544, - 53401 - 44032: 0xB545, - 53402 - 44032: 0xB546, - 53403 - 44032: 0xB547, - 53404 - 44032: 0xB548, - 53405 - 44032: 0xB549, - 53406 - 44032: 0xB54A, - 53407 - 44032: 0xB54B, - 53408 - 44032: 0xB54C, - 53409 - 44032: 0xB54D, - 53410 - 44032: 0xB54E, - 53411 - 44032: 0xB54F, - 53412 - 44032: 0xC5B0, - 53413 - 44032: 0xC5B1, - 53414 - 44032: 0xB550, - 53415 - 44032: 0xB551, - 53416 - 44032: 0xC5B2, - 53417 - 44032: 0xB552, - 53418 - 44032: 0xB553, - 53419 - 44032: 0xB554, - 53420 - 44032: 0xC5B3, - 53421 - 44032: 0xB555, - 53422 - 44032: 0xB556, - 53423 - 44032: 0xB557, - 53424 - 44032: 0xB558, - 53425 - 44032: 0xB559, - 53426 - 44032: 0xB55A, - 53427 - 44032: 0xB561, - 53428 - 44032: 0xC5B4, - 53429 - 44032: 0xC5B5, - 53430 - 44032: 0xB562, - 53431 - 44032: 0xC5B6, - 53432 - 44032: 0xB563, - 53433 - 44032: 0xC5B7, - 53434 - 44032: 0xB564, - 53435 - 44032: 0xB565, - 53436 - 44032: 0xB566, - 53437 - 44032: 0xB567, - 53438 - 44032: 0xB568, - 53439 - 44032: 0xB569, - 53440 - 44032: 0xC5B8, - 53441 - 44032: 0xC5B9, - 53442 - 44032: 0xB56A, - 53443 - 44032: 0xB56B, - 53444 - 44032: 0xC5BA, - 53445 - 44032: 0xB56C, - 53446 - 44032: 0xB56D, - 53447 - 44032: 0xB56E, - 53448 - 44032: 0xC5BB, - 53449 - 44032: 0xC5BC, - 53450 - 44032: 0xB56F, - 53451 - 44032: 0xB570, - 53452 - 44032: 0xB571, - 53453 - 44032: 0xB572, - 53454 - 44032: 0xB573, - 53455 - 44032: 0xB574, - 53456 - 44032: 0xC5BD, - 53457 - 44032: 0xC5BE, - 53458 - 44032: 0xB575, - 53459 - 44032: 0xC5BF, - 53460 - 44032: 0xC5C0, - 53461 - 44032: 0xC5C1, - 53462 - 44032: 0xB576, - 53463 - 44032: 0xB577, - 53464 - 44032: 0xB578, - 53465 - 44032: 0xB579, - 53466 - 44032: 0xB57A, - 53467 - 44032: 0xB581, - 53468 - 44032: 0xC5C2, - 53469 - 44032: 0xC5C3, - 53470 - 44032: 0xB582, - 53471 - 44032: 0xB583, - 53472 - 44032: 0xC5C4, - 53473 - 44032: 0xB584, - 53474 - 44032: 0xB585, - 53475 - 44032: 0xB586, - 53476 - 44032: 0xC5C5, - 53477 - 44032: 0xB587, - 53478 - 44032: 0xB588, - 53479 - 44032: 0xB589, - 53480 - 44032: 0xB58A, - 53481 - 44032: 0xB58B, - 53482 - 44032: 0xB58C, - 53483 - 44032: 0xB58D, - 53484 - 44032: 0xC5C6, - 53485 - 44032: 0xC5C7, - 53486 - 44032: 0xB58E, - 53487 - 44032: 0xC5C8, - 53488 - 44032: 0xC5C9, - 53489 - 44032: 0xC5CA, - 53490 - 44032: 0xB58F, - 53491 - 44032: 0xB590, - 53492 - 44032: 0xB591, - 53493 - 44032: 0xB592, - 53494 - 44032: 0xB593, - 53495 - 44032: 0xB594, - 53496 - 44032: 0xC5CB, - 53497 - 44032: 0xB595, - 53498 - 44032: 0xB596, - 53499 - 44032: 0xB597, - 53500 - 44032: 0xB598, - 53501 - 44032: 0xB599, - 53502 - 44032: 0xB59A, - 53503 - 44032: 0xB59B, - 53504 - 44032: 0xB59C, - 53505 - 44032: 0xB59D, - 53506 - 44032: 0xB59E, - 53507 - 44032: 0xB59F, - 53508 - 44032: 0xB5A0, - 53509 - 44032: 0xB641, - 53510 - 44032: 0xB642, - 53511 - 44032: 0xB643, - 53512 - 44032: 0xB644, - 53513 - 44032: 0xB645, - 53514 - 44032: 0xB646, - 53515 - 44032: 0xB647, - 53516 - 44032: 0xB648, - 53517 - 44032: 0xC5CC, - 53518 - 44032: 0xB649, - 53519 - 44032: 0xB64A, - 53520 - 44032: 0xB64B, - 53521 - 44032: 0xB64C, - 53522 - 44032: 0xB64D, - 53523 - 44032: 0xB64E, - 53524 - 44032: 0xB64F, - 53525 - 44032: 0xB650, - 53526 - 44032: 0xB651, - 53527 - 44032: 0xB652, - 53528 - 44032: 0xB653, - 53529 - 44032: 0xB654, - 53530 - 44032: 0xB655, - 53531 - 44032: 0xB656, - 53532 - 44032: 0xB657, - 53533 - 44032: 0xB658, - 53534 - 44032: 0xB659, - 53535 - 44032: 0xB65A, - 53536 - 44032: 0xB661, - 53537 - 44032: 0xB662, - 53538 - 44032: 0xB663, - 53539 - 44032: 0xB664, - 53540 - 44032: 0xB665, - 53541 - 44032: 0xB666, - 53542 - 44032: 0xB667, - 53543 - 44032: 0xB668, - 53544 - 44032: 0xB669, - 53545 - 44032: 0xB66A, - 53546 - 44032: 0xB66B, - 53547 - 44032: 0xB66C, - 53548 - 44032: 0xB66D, - 53549 - 44032: 0xB66E, - 53550 - 44032: 0xB66F, - 53551 - 44032: 0xB670, - 53552 - 44032: 0xC5CD, - 53553 - 44032: 0xC5CE, - 53554 - 44032: 0xB671, - 53555 - 44032: 0xB672, - 53556 - 44032: 0xC5CF, - 53557 - 44032: 0xB673, - 53558 - 44032: 0xB674, - 53559 - 44032: 0xB675, - 53560 - 44032: 0xC5D0, - 53561 - 44032: 0xB676, - 53562 - 44032: 0xC5D1, - 53563 - 44032: 0xB677, - 53564 - 44032: 0xB678, - 53565 - 44032: 0xB679, - 53566 - 44032: 0xB67A, - 53567 - 44032: 0xB681, - 53568 - 44032: 0xC5D2, - 53569 - 44032: 0xC5D3, - 53570 - 44032: 0xB682, - 53571 - 44032: 0xC5D4, - 53572 - 44032: 0xC5D5, - 53573 - 44032: 0xC5D6, - 53574 - 44032: 0xB683, - 53575 - 44032: 0xB684, - 53576 - 44032: 0xB685, - 53577 - 44032: 0xB686, - 53578 - 44032: 0xB687, - 53579 - 44032: 0xB688, - 53580 - 44032: 0xC5D7, - 53581 - 44032: 0xC5D8, - 53582 - 44032: 0xB689, - 53583 - 44032: 0xB68A, - 53584 - 44032: 0xC5D9, - 53585 - 44032: 0xB68B, - 53586 - 44032: 0xB68C, - 53587 - 44032: 0xB68D, - 53588 - 44032: 0xC5DA, - 53589 - 44032: 0xB68E, - 53590 - 44032: 0xB68F, - 53591 - 44032: 0xB690, - 53592 - 44032: 0xB691, - 53593 - 44032: 0xB692, - 53594 - 44032: 0xB693, - 53595 - 44032: 0xB694, - 53596 - 44032: 0xC5DB, - 53597 - 44032: 0xC5DC, - 53598 - 44032: 0xB695, - 53599 - 44032: 0xC5DD, - 53600 - 44032: 0xB696, - 53601 - 44032: 0xC5DE, - 53602 - 44032: 0xB697, - 53603 - 44032: 0xB698, - 53604 - 44032: 0xB699, - 53605 - 44032: 0xB69A, - 53606 - 44032: 0xB69B, - 53607 - 44032: 0xB69C, - 53608 - 44032: 0xC5DF, - 53609 - 44032: 0xB69D, - 53610 - 44032: 0xB69E, - 53611 - 44032: 0xB69F, - 53612 - 44032: 0xC5E0, - 53613 - 44032: 0xB6A0, - 53614 - 44032: 0xB741, - 53615 - 44032: 0xB742, - 53616 - 44032: 0xB743, - 53617 - 44032: 0xB744, - 53618 - 44032: 0xB745, - 53619 - 44032: 0xB746, - 53620 - 44032: 0xB747, - 53621 - 44032: 0xB748, - 53622 - 44032: 0xB749, - 53623 - 44032: 0xB74A, - 53624 - 44032: 0xB74B, - 53625 - 44032: 0xB74C, - 53626 - 44032: 0xB74D, - 53627 - 44032: 0xB74E, - 53628 - 44032: 0xC5E1, - 53629 - 44032: 0xB74F, - 53630 - 44032: 0xB750, - 53631 - 44032: 0xB751, - 53632 - 44032: 0xB752, - 53633 - 44032: 0xB753, - 53634 - 44032: 0xB754, - 53635 - 44032: 0xB755, - 53636 - 44032: 0xC5E2, - 53637 - 44032: 0xB756, - 53638 - 44032: 0xB757, - 53639 - 44032: 0xB758, - 53640 - 44032: 0xC5E3, - 53641 - 44032: 0xB759, - 53642 - 44032: 0xB75A, - 53643 - 44032: 0xB761, - 53644 - 44032: 0xB762, - 53645 - 44032: 0xB763, - 53646 - 44032: 0xB764, - 53647 - 44032: 0xB765, - 53648 - 44032: 0xB766, - 53649 - 44032: 0xB767, - 53650 - 44032: 0xB768, - 53651 - 44032: 0xB769, - 53652 - 44032: 0xB76A, - 53653 - 44032: 0xB76B, - 53654 - 44032: 0xB76C, - 53655 - 44032: 0xB76D, - 53656 - 44032: 0xB76E, - 53657 - 44032: 0xB76F, - 53658 - 44032: 0xB770, - 53659 - 44032: 0xB771, - 53660 - 44032: 0xB772, - 53661 - 44032: 0xB773, - 53662 - 44032: 0xB774, - 53663 - 44032: 0xB775, - 53664 - 44032: 0xC5E4, - 53665 - 44032: 0xC5E5, - 53666 - 44032: 0xB776, - 53667 - 44032: 0xB777, - 53668 - 44032: 0xC5E6, - 53669 - 44032: 0xB778, - 53670 - 44032: 0xB779, - 53671 - 44032: 0xB77A, - 53672 - 44032: 0xC5E7, - 53673 - 44032: 0xB781, - 53674 - 44032: 0xB782, - 53675 - 44032: 0xB783, - 53676 - 44032: 0xB784, - 53677 - 44032: 0xB785, - 53678 - 44032: 0xB786, - 53679 - 44032: 0xB787, - 53680 - 44032: 0xC5E8, - 53681 - 44032: 0xC5E9, - 53682 - 44032: 0xB788, - 53683 - 44032: 0xC5EA, - 53684 - 44032: 0xB789, - 53685 - 44032: 0xC5EB, - 53686 - 44032: 0xB78A, - 53687 - 44032: 0xB78B, - 53688 - 44032: 0xB78C, - 53689 - 44032: 0xB78D, - 53690 - 44032: 0xC5EC, - 53691 - 44032: 0xB78E, - 53692 - 44032: 0xC5ED, - 53693 - 44032: 0xB78F, - 53694 - 44032: 0xB790, - 53695 - 44032: 0xB791, - 53696 - 44032: 0xC5EE, - 53697 - 44032: 0xB792, - 53698 - 44032: 0xB793, - 53699 - 44032: 0xB794, - 53700 - 44032: 0xB795, - 53701 - 44032: 0xB796, - 53702 - 44032: 0xB797, - 53703 - 44032: 0xB798, - 53704 - 44032: 0xB799, - 53705 - 44032: 0xB79A, - 53706 - 44032: 0xB79B, - 53707 - 44032: 0xB79C, - 53708 - 44032: 0xB79D, - 53709 - 44032: 0xB79E, - 53710 - 44032: 0xB79F, - 53711 - 44032: 0xB7A0, - 53712 - 44032: 0xB841, - 53713 - 44032: 0xB842, - 53714 - 44032: 0xB843, - 53715 - 44032: 0xB844, - 53716 - 44032: 0xB845, - 53717 - 44032: 0xB846, - 53718 - 44032: 0xB847, - 53719 - 44032: 0xB848, - 53720 - 44032: 0xC5EF, - 53721 - 44032: 0xB849, - 53722 - 44032: 0xB84A, - 53723 - 44032: 0xB84B, - 53724 - 44032: 0xB84C, - 53725 - 44032: 0xB84D, - 53726 - 44032: 0xB84E, - 53727 - 44032: 0xB84F, - 53728 - 44032: 0xB850, - 53729 - 44032: 0xB851, - 53730 - 44032: 0xB852, - 53731 - 44032: 0xB853, - 53732 - 44032: 0xB854, - 53733 - 44032: 0xB855, - 53734 - 44032: 0xB856, - 53735 - 44032: 0xB857, - 53736 - 44032: 0xB858, - 53737 - 44032: 0xB859, - 53738 - 44032: 0xB85A, - 53739 - 44032: 0xB861, - 53740 - 44032: 0xB862, - 53741 - 44032: 0xB863, - 53742 - 44032: 0xB864, - 53743 - 44032: 0xB865, - 53744 - 44032: 0xB866, - 53745 - 44032: 0xB867, - 53746 - 44032: 0xB868, - 53747 - 44032: 0xB869, - 53748 - 44032: 0xC5F0, - 53749 - 44032: 0xB86A, - 53750 - 44032: 0xB86B, - 53751 - 44032: 0xB86C, - 53752 - 44032: 0xC5F1, - 53753 - 44032: 0xB86D, - 53754 - 44032: 0xB86E, - 53755 - 44032: 0xB86F, - 53756 - 44032: 0xB870, - 53757 - 44032: 0xB871, - 53758 - 44032: 0xB872, - 53759 - 44032: 0xB873, - 53760 - 44032: 0xB874, - 53761 - 44032: 0xB875, - 53762 - 44032: 0xB876, - 53763 - 44032: 0xB877, - 53764 - 44032: 0xB878, - 53765 - 44032: 0xB879, - 53766 - 44032: 0xB87A, - 53767 - 44032: 0xC5F2, - 53768 - 44032: 0xB881, - 53769 - 44032: 0xC5F3, - 53770 - 44032: 0xB882, - 53771 - 44032: 0xB883, - 53772 - 44032: 0xB884, - 53773 - 44032: 0xB885, - 53774 - 44032: 0xB886, - 53775 - 44032: 0xB887, - 53776 - 44032: 0xC5F4, - 53777 - 44032: 0xB888, - 53778 - 44032: 0xB889, - 53779 - 44032: 0xB88A, - 53780 - 44032: 0xB88B, - 53781 - 44032: 0xB88C, - 53782 - 44032: 0xB88D, - 53783 - 44032: 0xB88E, - 53784 - 44032: 0xB88F, - 53785 - 44032: 0xB890, - 53786 - 44032: 0xB891, - 53787 - 44032: 0xB892, - 53788 - 44032: 0xB893, - 53789 - 44032: 0xB894, - 53790 - 44032: 0xB895, - 53791 - 44032: 0xB896, - 53792 - 44032: 0xB897, - 53793 - 44032: 0xB898, - 53794 - 44032: 0xB899, - 53795 - 44032: 0xB89A, - 53796 - 44032: 0xB89B, - 53797 - 44032: 0xB89C, - 53798 - 44032: 0xB89D, - 53799 - 44032: 0xB89E, - 53800 - 44032: 0xB89F, - 53801 - 44032: 0xB8A0, - 53802 - 44032: 0xB941, - 53803 - 44032: 0xB942, - 53804 - 44032: 0xC5F5, - 53805 - 44032: 0xC5F6, - 53806 - 44032: 0xB943, - 53807 - 44032: 0xB944, - 53808 - 44032: 0xC5F7, - 53809 - 44032: 0xB945, - 53810 - 44032: 0xB946, - 53811 - 44032: 0xB947, - 53812 - 44032: 0xC5F8, - 53813 - 44032: 0xB948, - 53814 - 44032: 0xB949, - 53815 - 44032: 0xB94A, - 53816 - 44032: 0xB94B, - 53817 - 44032: 0xB94C, - 53818 - 44032: 0xB94D, - 53819 - 44032: 0xB94E, - 53820 - 44032: 0xC5F9, - 53821 - 44032: 0xC5FA, - 53822 - 44032: 0xB94F, - 53823 - 44032: 0xC5FB, - 53824 - 44032: 0xB950, - 53825 - 44032: 0xC5FC, - 53826 - 44032: 0xB951, - 53827 - 44032: 0xB952, - 53828 - 44032: 0xB953, - 53829 - 44032: 0xB954, - 53830 - 44032: 0xB955, - 53831 - 44032: 0xB956, - 53832 - 44032: 0xC5FD, - 53833 - 44032: 0xB957, - 53834 - 44032: 0xB958, - 53835 - 44032: 0xB959, - 53836 - 44032: 0xB95A, - 53837 - 44032: 0xB961, - 53838 - 44032: 0xB962, - 53839 - 44032: 0xB963, - 53840 - 44032: 0xB964, - 53841 - 44032: 0xB965, - 53842 - 44032: 0xB966, - 53843 - 44032: 0xB967, - 53844 - 44032: 0xB968, - 53845 - 44032: 0xB969, - 53846 - 44032: 0xB96A, - 53847 - 44032: 0xB96B, - 53848 - 44032: 0xB96C, - 53849 - 44032: 0xB96D, - 53850 - 44032: 0xB96E, - 53851 - 44032: 0xB96F, - 53852 - 44032: 0xC5FE, - 53853 - 44032: 0xB970, - 53854 - 44032: 0xB971, - 53855 - 44032: 0xB972, - 53856 - 44032: 0xB973, - 53857 - 44032: 0xB974, - 53858 - 44032: 0xB975, - 53859 - 44032: 0xB976, - 53860 - 44032: 0xC6A1, - 53861 - 44032: 0xB977, - 53862 - 44032: 0xB978, - 53863 - 44032: 0xB979, - 53864 - 44032: 0xB97A, - 53865 - 44032: 0xB981, - 53866 - 44032: 0xB982, - 53867 - 44032: 0xB983, - 53868 - 44032: 0xB984, - 53869 - 44032: 0xB985, - 53870 - 44032: 0xB986, - 53871 - 44032: 0xB987, - 53872 - 44032: 0xB988, - 53873 - 44032: 0xB989, - 53874 - 44032: 0xB98A, - 53875 - 44032: 0xB98B, - 53876 - 44032: 0xB98C, - 53877 - 44032: 0xB98D, - 53878 - 44032: 0xB98E, - 53879 - 44032: 0xB98F, - 53880 - 44032: 0xB990, - 53881 - 44032: 0xB991, - 53882 - 44032: 0xB992, - 53883 - 44032: 0xB993, - 53884 - 44032: 0xB994, - 53885 - 44032: 0xB995, - 53886 - 44032: 0xB996, - 53887 - 44032: 0xB997, - 53888 - 44032: 0xC6A2, - 53889 - 44032: 0xC6A3, - 53890 - 44032: 0xB998, - 53891 - 44032: 0xB999, - 53892 - 44032: 0xC6A4, - 53893 - 44032: 0xB99A, - 53894 - 44032: 0xB99B, - 53895 - 44032: 0xB99C, - 53896 - 44032: 0xC6A5, - 53897 - 44032: 0xB99D, - 53898 - 44032: 0xB99E, - 53899 - 44032: 0xB99F, - 53900 - 44032: 0xB9A0, - 53901 - 44032: 0xBA41, - 53902 - 44032: 0xBA42, - 53903 - 44032: 0xBA43, - 53904 - 44032: 0xC6A6, - 53905 - 44032: 0xC6A7, - 53906 - 44032: 0xBA44, - 53907 - 44032: 0xBA45, - 53908 - 44032: 0xBA46, - 53909 - 44032: 0xC6A8, - 53910 - 44032: 0xBA47, - 53911 - 44032: 0xBA48, - 53912 - 44032: 0xBA49, - 53913 - 44032: 0xBA4A, - 53914 - 44032: 0xBA4B, - 53915 - 44032: 0xBA4C, - 53916 - 44032: 0xC6A9, - 53917 - 44032: 0xBA4D, - 53918 - 44032: 0xBA4E, - 53919 - 44032: 0xBA4F, - 53920 - 44032: 0xC6AA, - 53921 - 44032: 0xBA50, - 53922 - 44032: 0xBA51, - 53923 - 44032: 0xBA52, - 53924 - 44032: 0xC6AB, - 53925 - 44032: 0xBA53, - 53926 - 44032: 0xBA54, - 53927 - 44032: 0xBA55, - 53928 - 44032: 0xBA56, - 53929 - 44032: 0xBA57, - 53930 - 44032: 0xBA58, - 53931 - 44032: 0xBA59, - 53932 - 44032: 0xC6AC, - 53933 - 44032: 0xBA5A, - 53934 - 44032: 0xBA61, - 53935 - 44032: 0xBA62, - 53936 - 44032: 0xBA63, - 53937 - 44032: 0xC6AD, - 53938 - 44032: 0xBA64, - 53939 - 44032: 0xBA65, - 53940 - 44032: 0xBA66, - 53941 - 44032: 0xBA67, - 53942 - 44032: 0xBA68, - 53943 - 44032: 0xBA69, - 53944 - 44032: 0xC6AE, - 53945 - 44032: 0xC6AF, - 53946 - 44032: 0xBA6A, - 53947 - 44032: 0xBA6B, - 53948 - 44032: 0xC6B0, - 53949 - 44032: 0xBA6C, - 53950 - 44032: 0xBA6D, - 53951 - 44032: 0xC6B1, - 53952 - 44032: 0xC6B2, - 53953 - 44032: 0xBA6E, - 53954 - 44032: 0xC6B3, - 53955 - 44032: 0xBA6F, - 53956 - 44032: 0xBA70, - 53957 - 44032: 0xBA71, - 53958 - 44032: 0xBA72, - 53959 - 44032: 0xBA73, - 53960 - 44032: 0xC6B4, - 53961 - 44032: 0xC6B5, - 53962 - 44032: 0xBA74, - 53963 - 44032: 0xC6B6, - 53964 - 44032: 0xBA75, - 53965 - 44032: 0xBA76, - 53966 - 44032: 0xBA77, - 53967 - 44032: 0xBA78, - 53968 - 44032: 0xBA79, - 53969 - 44032: 0xBA7A, - 53970 - 44032: 0xBA81, - 53971 - 44032: 0xBA82, - 53972 - 44032: 0xC6B7, - 53973 - 44032: 0xBA83, - 53974 - 44032: 0xBA84, - 53975 - 44032: 0xBA85, - 53976 - 44032: 0xC6B8, - 53977 - 44032: 0xBA86, - 53978 - 44032: 0xBA87, - 53979 - 44032: 0xBA88, - 53980 - 44032: 0xC6B9, - 53981 - 44032: 0xBA89, - 53982 - 44032: 0xBA8A, - 53983 - 44032: 0xBA8B, - 53984 - 44032: 0xBA8C, - 53985 - 44032: 0xBA8D, - 53986 - 44032: 0xBA8E, - 53987 - 44032: 0xBA8F, - 53988 - 44032: 0xC6BA, - 53989 - 44032: 0xC6BB, - 53990 - 44032: 0xBA90, - 53991 - 44032: 0xBA91, - 53992 - 44032: 0xBA92, - 53993 - 44032: 0xBA93, - 53994 - 44032: 0xBA94, - 53995 - 44032: 0xBA95, - 53996 - 44032: 0xBA96, - 53997 - 44032: 0xBA97, - 53998 - 44032: 0xBA98, - 53999 - 44032: 0xBA99, - 54000 - 44032: 0xC6BC, - 54001 - 44032: 0xC6BD, - 54002 - 44032: 0xBA9A, - 54003 - 44032: 0xBA9B, - 54004 - 44032: 0xC6BE, - 54005 - 44032: 0xBA9C, - 54006 - 44032: 0xBA9D, - 54007 - 44032: 0xBA9E, - 54008 - 44032: 0xC6BF, - 54009 - 44032: 0xBA9F, - 54010 - 44032: 0xBAA0, - 54011 - 44032: 0xBB41, - 54012 - 44032: 0xBB42, - 54013 - 44032: 0xBB43, - 54014 - 44032: 0xBB44, - 54015 - 44032: 0xBB45, - 54016 - 44032: 0xC6C0, - 54017 - 44032: 0xC6C1, - 54018 - 44032: 0xBB46, - 54019 - 44032: 0xC6C2, - 54020 - 44032: 0xBB47, - 54021 - 44032: 0xC6C3, - 54022 - 44032: 0xBB48, - 54023 - 44032: 0xBB49, - 54024 - 44032: 0xBB4A, - 54025 - 44032: 0xBB4B, - 54026 - 44032: 0xBB4C, - 54027 - 44032: 0xBB4D, - 54028 - 44032: 0xC6C4, - 54029 - 44032: 0xC6C5, - 54030 - 44032: 0xC6C6, - 54031 - 44032: 0xBB4E, - 54032 - 44032: 0xC6C7, - 54033 - 44032: 0xBB4F, - 54034 - 44032: 0xBB50, - 54035 - 44032: 0xBB51, - 54036 - 44032: 0xC6C8, - 54037 - 44032: 0xBB52, - 54038 - 44032: 0xC6C9, - 54039 - 44032: 0xBB53, - 54040 - 44032: 0xBB54, - 54041 - 44032: 0xBB55, - 54042 - 44032: 0xBB56, - 54043 - 44032: 0xBB57, - 54044 - 44032: 0xC6CA, - 54045 - 44032: 0xC6CB, - 54046 - 44032: 0xBB58, - 54047 - 44032: 0xC6CC, - 54048 - 44032: 0xC6CD, - 54049 - 44032: 0xC6CE, - 54050 - 44032: 0xBB59, - 54051 - 44032: 0xBB5A, - 54052 - 44032: 0xBB61, - 54053 - 44032: 0xC6CF, - 54054 - 44032: 0xBB62, - 54055 - 44032: 0xBB63, - 54056 - 44032: 0xC6D0, - 54057 - 44032: 0xC6D1, - 54058 - 44032: 0xBB64, - 54059 - 44032: 0xBB65, - 54060 - 44032: 0xC6D2, - 54061 - 44032: 0xBB66, - 54062 - 44032: 0xBB67, - 54063 - 44032: 0xBB68, - 54064 - 44032: 0xC6D3, - 54065 - 44032: 0xBB69, - 54066 - 44032: 0xBB6A, - 54067 - 44032: 0xBB6B, - 54068 - 44032: 0xBB6C, - 54069 - 44032: 0xBB6D, - 54070 - 44032: 0xBB6E, - 54071 - 44032: 0xBB6F, - 54072 - 44032: 0xC6D4, - 54073 - 44032: 0xC6D5, - 54074 - 44032: 0xBB70, - 54075 - 44032: 0xC6D6, - 54076 - 44032: 0xC6D7, - 54077 - 44032: 0xC6D8, - 54078 - 44032: 0xBB71, - 54079 - 44032: 0xBB72, - 54080 - 44032: 0xBB73, - 54081 - 44032: 0xBB74, - 54082 - 44032: 0xBB75, - 54083 - 44032: 0xBB76, - 54084 - 44032: 0xC6D9, - 54085 - 44032: 0xC6DA, - 54086 - 44032: 0xBB77, - 54087 - 44032: 0xBB78, - 54088 - 44032: 0xBB79, - 54089 - 44032: 0xBB7A, - 54090 - 44032: 0xBB81, - 54091 - 44032: 0xBB82, - 54092 - 44032: 0xBB83, - 54093 - 44032: 0xBB84, - 54094 - 44032: 0xBB85, - 54095 - 44032: 0xBB86, - 54096 - 44032: 0xBB87, - 54097 - 44032: 0xBB88, - 54098 - 44032: 0xBB89, - 54099 - 44032: 0xBB8A, - 54100 - 44032: 0xBB8B, - 54101 - 44032: 0xBB8C, - 54102 - 44032: 0xBB8D, - 54103 - 44032: 0xBB8E, - 54104 - 44032: 0xBB8F, - 54105 - 44032: 0xBB90, - 54106 - 44032: 0xBB91, - 54107 - 44032: 0xBB92, - 54108 - 44032: 0xBB93, - 54109 - 44032: 0xBB94, - 54110 - 44032: 0xBB95, - 54111 - 44032: 0xBB96, - 54112 - 44032: 0xBB97, - 54113 - 44032: 0xBB98, - 54114 - 44032: 0xBB99, - 54115 - 44032: 0xBB9A, - 54116 - 44032: 0xBB9B, - 54117 - 44032: 0xBB9C, - 54118 - 44032: 0xBB9D, - 54119 - 44032: 0xBB9E, - 54120 - 44032: 0xBB9F, - 54121 - 44032: 0xBBA0, - 54122 - 44032: 0xBC41, - 54123 - 44032: 0xBC42, - 54124 - 44032: 0xBC43, - 54125 - 44032: 0xBC44, - 54126 - 44032: 0xBC45, - 54127 - 44032: 0xBC46, - 54128 - 44032: 0xBC47, - 54129 - 44032: 0xBC48, - 54130 - 44032: 0xBC49, - 54131 - 44032: 0xBC4A, - 54132 - 44032: 0xBC4B, - 54133 - 44032: 0xBC4C, - 54134 - 44032: 0xBC4D, - 54135 - 44032: 0xBC4E, - 54136 - 44032: 0xBC4F, - 54137 - 44032: 0xBC50, - 54138 - 44032: 0xBC51, - 54139 - 44032: 0xBC52, - 54140 - 44032: 0xC6DB, - 54141 - 44032: 0xC6DC, - 54142 - 44032: 0xBC53, - 54143 - 44032: 0xBC54, - 54144 - 44032: 0xC6DD, - 54145 - 44032: 0xBC55, - 54146 - 44032: 0xBC56, - 54147 - 44032: 0xBC57, - 54148 - 44032: 0xC6DE, - 54149 - 44032: 0xBC58, - 54150 - 44032: 0xBC59, - 54151 - 44032: 0xBC5A, - 54152 - 44032: 0xBC61, - 54153 - 44032: 0xBC62, - 54154 - 44032: 0xBC63, - 54155 - 44032: 0xBC64, - 54156 - 44032: 0xC6DF, - 54157 - 44032: 0xC6E0, - 54158 - 44032: 0xBC65, - 54159 - 44032: 0xC6E1, - 54160 - 44032: 0xC6E2, - 54161 - 44032: 0xC6E3, - 54162 - 44032: 0xBC66, - 54163 - 44032: 0xBC67, - 54164 - 44032: 0xBC68, - 54165 - 44032: 0xBC69, - 54166 - 44032: 0xBC6A, - 54167 - 44032: 0xBC6B, - 54168 - 44032: 0xC6E4, - 54169 - 44032: 0xC6E5, - 54170 - 44032: 0xBC6C, - 54171 - 44032: 0xBC6D, - 54172 - 44032: 0xC6E6, - 54173 - 44032: 0xBC6E, - 54174 - 44032: 0xBC6F, - 54175 - 44032: 0xBC70, - 54176 - 44032: 0xC6E7, - 54177 - 44032: 0xBC71, - 54178 - 44032: 0xBC72, - 54179 - 44032: 0xBC73, - 54180 - 44032: 0xBC74, - 54181 - 44032: 0xBC75, - 54182 - 44032: 0xBC76, - 54183 - 44032: 0xBC77, - 54184 - 44032: 0xC6E8, - 54185 - 44032: 0xC6E9, - 54186 - 44032: 0xBC78, - 54187 - 44032: 0xC6EA, - 54188 - 44032: 0xBC79, - 54189 - 44032: 0xC6EB, - 54190 - 44032: 0xBC7A, - 54191 - 44032: 0xBC81, - 54192 - 44032: 0xBC82, - 54193 - 44032: 0xBC83, - 54194 - 44032: 0xBC84, - 54195 - 44032: 0xBC85, - 54196 - 44032: 0xC6EC, - 54197 - 44032: 0xBC86, - 54198 - 44032: 0xBC87, - 54199 - 44032: 0xBC88, - 54200 - 44032: 0xC6ED, - 54201 - 44032: 0xBC89, - 54202 - 44032: 0xBC8A, - 54203 - 44032: 0xBC8B, - 54204 - 44032: 0xC6EE, - 54205 - 44032: 0xBC8C, - 54206 - 44032: 0xBC8D, - 54207 - 44032: 0xBC8E, - 54208 - 44032: 0xBC8F, - 54209 - 44032: 0xBC90, - 54210 - 44032: 0xBC91, - 54211 - 44032: 0xBC92, - 54212 - 44032: 0xC6EF, - 54213 - 44032: 0xC6F0, - 54214 - 44032: 0xBC93, - 54215 - 44032: 0xBC94, - 54216 - 44032: 0xC6F1, - 54217 - 44032: 0xC6F2, - 54218 - 44032: 0xBC95, - 54219 - 44032: 0xBC96, - 54220 - 44032: 0xBC97, - 54221 - 44032: 0xBC98, - 54222 - 44032: 0xBC99, - 54223 - 44032: 0xBC9A, - 54224 - 44032: 0xC6F3, - 54225 - 44032: 0xBC9B, - 54226 - 44032: 0xBC9C, - 54227 - 44032: 0xBC9D, - 54228 - 44032: 0xBC9E, - 54229 - 44032: 0xBC9F, - 54230 - 44032: 0xBCA0, - 54231 - 44032: 0xBD41, - 54232 - 44032: 0xC6F4, - 54233 - 44032: 0xBD42, - 54234 - 44032: 0xBD43, - 54235 - 44032: 0xBD44, - 54236 - 44032: 0xBD45, - 54237 - 44032: 0xBD46, - 54238 - 44032: 0xBD47, - 54239 - 44032: 0xBD48, - 54240 - 44032: 0xBD49, - 54241 - 44032: 0xC6F5, - 54242 - 44032: 0xBD4A, - 54243 - 44032: 0xC6F6, - 54244 - 44032: 0xBD4B, - 54245 - 44032: 0xBD4C, - 54246 - 44032: 0xBD4D, - 54247 - 44032: 0xBD4E, - 54248 - 44032: 0xBD4F, - 54249 - 44032: 0xBD50, - 54250 - 44032: 0xBD51, - 54251 - 44032: 0xBD52, - 54252 - 44032: 0xC6F7, - 54253 - 44032: 0xC6F8, - 54254 - 44032: 0xBD53, - 54255 - 44032: 0xBD54, - 54256 - 44032: 0xC6F9, - 54257 - 44032: 0xBD55, - 54258 - 44032: 0xBD56, - 54259 - 44032: 0xBD57, - 54260 - 44032: 0xC6FA, - 54261 - 44032: 0xBD58, - 54262 - 44032: 0xBD59, - 54263 - 44032: 0xBD5A, - 54264 - 44032: 0xBD61, - 54265 - 44032: 0xBD62, - 54266 - 44032: 0xBD63, - 54267 - 44032: 0xBD64, - 54268 - 44032: 0xC6FB, - 54269 - 44032: 0xC6FC, - 54270 - 44032: 0xBD65, - 54271 - 44032: 0xC6FD, - 54272 - 44032: 0xBD66, - 54273 - 44032: 0xC6FE, - 54274 - 44032: 0xBD67, - 54275 - 44032: 0xBD68, - 54276 - 44032: 0xBD69, - 54277 - 44032: 0xBD6A, - 54278 - 44032: 0xBD6B, - 54279 - 44032: 0xBD6C, - 54280 - 44032: 0xC7A1, - 54281 - 44032: 0xBD6D, - 54282 - 44032: 0xBD6E, - 54283 - 44032: 0xBD6F, - 54284 - 44032: 0xBD70, - 54285 - 44032: 0xBD71, - 54286 - 44032: 0xBD72, - 54287 - 44032: 0xBD73, - 54288 - 44032: 0xBD74, - 54289 - 44032: 0xBD75, - 54290 - 44032: 0xBD76, - 54291 - 44032: 0xBD77, - 54292 - 44032: 0xBD78, - 54293 - 44032: 0xBD79, - 54294 - 44032: 0xBD7A, - 54295 - 44032: 0xBD81, - 54296 - 44032: 0xBD82, - 54297 - 44032: 0xBD83, - 54298 - 44032: 0xBD84, - 54299 - 44032: 0xBD85, - 54300 - 44032: 0xBD86, - 54301 - 44032: 0xC7A2, - 54302 - 44032: 0xBD87, - 54303 - 44032: 0xBD88, - 54304 - 44032: 0xBD89, - 54305 - 44032: 0xBD8A, - 54306 - 44032: 0xBD8B, - 54307 - 44032: 0xBD8C, - 54308 - 44032: 0xBD8D, - 54309 - 44032: 0xBD8E, - 54310 - 44032: 0xBD8F, - 54311 - 44032: 0xBD90, - 54312 - 44032: 0xBD91, - 54313 - 44032: 0xBD92, - 54314 - 44032: 0xBD93, - 54315 - 44032: 0xBD94, - 54316 - 44032: 0xBD95, - 54317 - 44032: 0xBD96, - 54318 - 44032: 0xBD97, - 54319 - 44032: 0xBD98, - 54320 - 44032: 0xBD99, - 54321 - 44032: 0xBD9A, - 54322 - 44032: 0xBD9B, - 54323 - 44032: 0xBD9C, - 54324 - 44032: 0xBD9D, - 54325 - 44032: 0xBD9E, - 54326 - 44032: 0xBD9F, - 54327 - 44032: 0xBDA0, - 54328 - 44032: 0xBE41, - 54329 - 44032: 0xBE42, - 54330 - 44032: 0xBE43, - 54331 - 44032: 0xBE44, - 54332 - 44032: 0xBE45, - 54333 - 44032: 0xBE46, - 54334 - 44032: 0xBE47, - 54335 - 44032: 0xBE48, - 54336 - 44032: 0xC7A3, - 54337 - 44032: 0xBE49, - 54338 - 44032: 0xBE4A, - 54339 - 44032: 0xBE4B, - 54340 - 44032: 0xC7A4, - 54341 - 44032: 0xBE4C, - 54342 - 44032: 0xBE4D, - 54343 - 44032: 0xBE4E, - 54344 - 44032: 0xBE4F, - 54345 - 44032: 0xBE50, - 54346 - 44032: 0xBE51, - 54347 - 44032: 0xBE52, - 54348 - 44032: 0xBE53, - 54349 - 44032: 0xBE54, - 54350 - 44032: 0xBE55, - 54351 - 44032: 0xBE56, - 54352 - 44032: 0xBE57, - 54353 - 44032: 0xBE58, - 54354 - 44032: 0xBE59, - 54355 - 44032: 0xBE5A, - 54356 - 44032: 0xBE61, - 54357 - 44032: 0xBE62, - 54358 - 44032: 0xBE63, - 54359 - 44032: 0xBE64, - 54360 - 44032: 0xBE65, - 54361 - 44032: 0xBE66, - 54362 - 44032: 0xBE67, - 54363 - 44032: 0xBE68, - 54364 - 44032: 0xC7A5, - 54365 - 44032: 0xBE69, - 54366 - 44032: 0xBE6A, - 54367 - 44032: 0xBE6B, - 54368 - 44032: 0xC7A6, - 54369 - 44032: 0xBE6C, - 54370 - 44032: 0xBE6D, - 54371 - 44032: 0xBE6E, - 54372 - 44032: 0xC7A7, - 54373 - 44032: 0xBE6F, - 54374 - 44032: 0xBE70, - 54375 - 44032: 0xBE71, - 54376 - 44032: 0xBE72, - 54377 - 44032: 0xBE73, - 54378 - 44032: 0xBE74, - 54379 - 44032: 0xBE75, - 54380 - 44032: 0xBE76, - 54381 - 44032: 0xC7A8, - 54382 - 44032: 0xBE77, - 54383 - 44032: 0xC7A9, - 54384 - 44032: 0xBE78, - 54385 - 44032: 0xBE79, - 54386 - 44032: 0xBE7A, - 54387 - 44032: 0xBE81, - 54388 - 44032: 0xBE82, - 54389 - 44032: 0xBE83, - 54390 - 44032: 0xBE84, - 54391 - 44032: 0xBE85, - 54392 - 44032: 0xC7AA, - 54393 - 44032: 0xC7AB, - 54394 - 44032: 0xBE86, - 54395 - 44032: 0xBE87, - 54396 - 44032: 0xC7AC, - 54397 - 44032: 0xBE88, - 54398 - 44032: 0xBE89, - 54399 - 44032: 0xC7AD, - 54400 - 44032: 0xC7AE, - 54401 - 44032: 0xBE8A, - 54402 - 44032: 0xC7AF, - 54403 - 44032: 0xBE8B, - 54404 - 44032: 0xBE8C, - 54405 - 44032: 0xBE8D, - 54406 - 44032: 0xBE8E, - 54407 - 44032: 0xBE8F, - 54408 - 44032: 0xC7B0, - 54409 - 44032: 0xC7B1, - 54410 - 44032: 0xBE90, - 54411 - 44032: 0xC7B2, - 54412 - 44032: 0xBE91, - 54413 - 44032: 0xC7B3, - 54414 - 44032: 0xBE92, - 54415 - 44032: 0xBE93, - 54416 - 44032: 0xBE94, - 54417 - 44032: 0xBE95, - 54418 - 44032: 0xBE96, - 54419 - 44032: 0xBE97, - 54420 - 44032: 0xC7B4, - 54421 - 44032: 0xBE98, - 54422 - 44032: 0xBE99, - 54423 - 44032: 0xBE9A, - 54424 - 44032: 0xBE9B, - 54425 - 44032: 0xBE9C, - 54426 - 44032: 0xBE9D, - 54427 - 44032: 0xBE9E, - 54428 - 44032: 0xBE9F, - 54429 - 44032: 0xBEA0, - 54430 - 44032: 0xBF41, - 54431 - 44032: 0xBF42, - 54432 - 44032: 0xBF43, - 54433 - 44032: 0xBF44, - 54434 - 44032: 0xBF45, - 54435 - 44032: 0xBF46, - 54436 - 44032: 0xBF47, - 54437 - 44032: 0xBF48, - 54438 - 44032: 0xBF49, - 54439 - 44032: 0xBF4A, - 54440 - 44032: 0xBF4B, - 54441 - 44032: 0xC7B5, - 54442 - 44032: 0xBF4C, - 54443 - 44032: 0xBF4D, - 54444 - 44032: 0xBF4E, - 54445 - 44032: 0xBF4F, - 54446 - 44032: 0xBF50, - 54447 - 44032: 0xBF51, - 54448 - 44032: 0xBF52, - 54449 - 44032: 0xBF53, - 54450 - 44032: 0xBF54, - 54451 - 44032: 0xBF55, - 54452 - 44032: 0xBF56, - 54453 - 44032: 0xBF57, - 54454 - 44032: 0xBF58, - 54455 - 44032: 0xBF59, - 54456 - 44032: 0xBF5A, - 54457 - 44032: 0xBF61, - 54458 - 44032: 0xBF62, - 54459 - 44032: 0xBF63, - 54460 - 44032: 0xBF64, - 54461 - 44032: 0xBF65, - 54462 - 44032: 0xBF66, - 54463 - 44032: 0xBF67, - 54464 - 44032: 0xBF68, - 54465 - 44032: 0xBF69, - 54466 - 44032: 0xBF6A, - 54467 - 44032: 0xBF6B, - 54468 - 44032: 0xBF6C, - 54469 - 44032: 0xBF6D, - 54470 - 44032: 0xBF6E, - 54471 - 44032: 0xBF6F, - 54472 - 44032: 0xBF70, - 54473 - 44032: 0xBF71, - 54474 - 44032: 0xBF72, - 54475 - 44032: 0xBF73, - 54476 - 44032: 0xC7B6, - 54477 - 44032: 0xBF74, - 54478 - 44032: 0xBF75, - 54479 - 44032: 0xBF76, - 54480 - 44032: 0xC7B7, - 54481 - 44032: 0xBF77, - 54482 - 44032: 0xBF78, - 54483 - 44032: 0xBF79, - 54484 - 44032: 0xC7B8, - 54485 - 44032: 0xBF7A, - 54486 - 44032: 0xBF81, - 54487 - 44032: 0xBF82, - 54488 - 44032: 0xBF83, - 54489 - 44032: 0xBF84, - 54490 - 44032: 0xBF85, - 54491 - 44032: 0xBF86, - 54492 - 44032: 0xC7B9, - 54493 - 44032: 0xBF87, - 54494 - 44032: 0xBF88, - 54495 - 44032: 0xC7BA, - 54496 - 44032: 0xBF89, - 54497 - 44032: 0xBF8A, - 54498 - 44032: 0xBF8B, - 54499 - 44032: 0xBF8C, - 54500 - 44032: 0xBF8D, - 54501 - 44032: 0xBF8E, - 54502 - 44032: 0xBF8F, - 54503 - 44032: 0xBF90, - 54504 - 44032: 0xC7BB, - 54505 - 44032: 0xBF91, - 54506 - 44032: 0xBF92, - 54507 - 44032: 0xBF93, - 54508 - 44032: 0xC7BC, - 54509 - 44032: 0xBF94, - 54510 - 44032: 0xBF95, - 54511 - 44032: 0xBF96, - 54512 - 44032: 0xC7BD, - 54513 - 44032: 0xBF97, - 54514 - 44032: 0xBF98, - 54515 - 44032: 0xBF99, - 54516 - 44032: 0xBF9A, - 54517 - 44032: 0xBF9B, - 54518 - 44032: 0xBF9C, - 54519 - 44032: 0xBF9D, - 54520 - 44032: 0xC7BE, - 54521 - 44032: 0xBF9E, - 54522 - 44032: 0xBF9F, - 54523 - 44032: 0xC7BF, - 54524 - 44032: 0xBFA0, - 54525 - 44032: 0xC7C0, - 54526 - 44032: 0xC041, - 54527 - 44032: 0xC042, - 54528 - 44032: 0xC043, - 54529 - 44032: 0xC044, - 54530 - 44032: 0xC045, - 54531 - 44032: 0xC046, - 54532 - 44032: 0xC7C1, - 54533 - 44032: 0xC047, - 54534 - 44032: 0xC048, - 54535 - 44032: 0xC049, - 54536 - 44032: 0xC7C2, - 54537 - 44032: 0xC04A, - 54538 - 44032: 0xC04B, - 54539 - 44032: 0xC04C, - 54540 - 44032: 0xC7C3, - 54541 - 44032: 0xC04D, - 54542 - 44032: 0xC04E, - 54543 - 44032: 0xC04F, - 54544 - 44032: 0xC050, - 54545 - 44032: 0xC051, - 54546 - 44032: 0xC052, - 54547 - 44032: 0xC053, - 54548 - 44032: 0xC7C4, - 54549 - 44032: 0xC7C5, - 54550 - 44032: 0xC054, - 54551 - 44032: 0xC7C6, - 54552 - 44032: 0xC055, - 54553 - 44032: 0xC056, - 54554 - 44032: 0xC057, - 54555 - 44032: 0xC058, - 54556 - 44032: 0xC059, - 54557 - 44032: 0xC05A, - 54558 - 44032: 0xC061, - 54559 - 44032: 0xC062, - 54560 - 44032: 0xC063, - 54561 - 44032: 0xC064, - 54562 - 44032: 0xC065, - 54563 - 44032: 0xC066, - 54564 - 44032: 0xC067, - 54565 - 44032: 0xC068, - 54566 - 44032: 0xC069, - 54567 - 44032: 0xC06A, - 54568 - 44032: 0xC06B, - 54569 - 44032: 0xC06C, - 54570 - 44032: 0xC06D, - 54571 - 44032: 0xC06E, - 54572 - 44032: 0xC06F, - 54573 - 44032: 0xC070, - 54574 - 44032: 0xC071, - 54575 - 44032: 0xC072, - 54576 - 44032: 0xC073, - 54577 - 44032: 0xC074, - 54578 - 44032: 0xC075, - 54579 - 44032: 0xC076, - 54580 - 44032: 0xC077, - 54581 - 44032: 0xC078, - 54582 - 44032: 0xC079, - 54583 - 44032: 0xC07A, - 54584 - 44032: 0xC081, - 54585 - 44032: 0xC082, - 54586 - 44032: 0xC083, - 54587 - 44032: 0xC084, - 54588 - 44032: 0xC7C7, - 54589 - 44032: 0xC7C8, - 54590 - 44032: 0xC085, - 54591 - 44032: 0xC086, - 54592 - 44032: 0xC7C9, - 54593 - 44032: 0xC087, - 54594 - 44032: 0xC088, - 54595 - 44032: 0xC089, - 54596 - 44032: 0xC7CA, - 54597 - 44032: 0xC08A, - 54598 - 44032: 0xC08B, - 54599 - 44032: 0xC08C, - 54600 - 44032: 0xC08D, - 54601 - 44032: 0xC08E, - 54602 - 44032: 0xC08F, - 54603 - 44032: 0xC090, - 54604 - 44032: 0xC7CB, - 54605 - 44032: 0xC7CC, - 54606 - 44032: 0xC091, - 54607 - 44032: 0xC7CD, - 54608 - 44032: 0xC092, - 54609 - 44032: 0xC7CE, - 54610 - 44032: 0xC093, - 54611 - 44032: 0xC094, - 54612 - 44032: 0xC095, - 54613 - 44032: 0xC096, - 54614 - 44032: 0xC097, - 54615 - 44032: 0xC098, - 54616 - 44032: 0xC7CF, - 54617 - 44032: 0xC7D0, - 54618 - 44032: 0xC099, - 54619 - 44032: 0xC09A, - 54620 - 44032: 0xC7D1, - 54621 - 44032: 0xC09B, - 54622 - 44032: 0xC09C, - 54623 - 44032: 0xC09D, - 54624 - 44032: 0xC7D2, - 54625 - 44032: 0xC09E, - 54626 - 44032: 0xC09F, - 54627 - 44032: 0xC0A0, - 54628 - 44032: 0xC141, - 54629 - 44032: 0xC7D3, - 54630 - 44032: 0xC142, - 54631 - 44032: 0xC143, - 54632 - 44032: 0xC7D4, - 54633 - 44032: 0xC7D5, - 54634 - 44032: 0xC144, - 54635 - 44032: 0xC7D6, - 54636 - 44032: 0xC145, - 54637 - 44032: 0xC7D7, - 54638 - 44032: 0xC146, - 54639 - 44032: 0xC147, - 54640 - 44032: 0xC148, - 54641 - 44032: 0xC149, - 54642 - 44032: 0xC14A, - 54643 - 44032: 0xC14B, - 54644 - 44032: 0xC7D8, - 54645 - 44032: 0xC7D9, - 54646 - 44032: 0xC14C, - 54647 - 44032: 0xC14D, - 54648 - 44032: 0xC7DA, - 54649 - 44032: 0xC14E, - 54650 - 44032: 0xC14F, - 54651 - 44032: 0xC150, - 54652 - 44032: 0xC7DB, - 54653 - 44032: 0xC151, - 54654 - 44032: 0xC152, - 54655 - 44032: 0xC153, - 54656 - 44032: 0xC154, - 54657 - 44032: 0xC155, - 54658 - 44032: 0xC156, - 54659 - 44032: 0xC157, - 54660 - 44032: 0xC7DC, - 54661 - 44032: 0xC7DD, - 54662 - 44032: 0xC158, - 54663 - 44032: 0xC7DE, - 54664 - 44032: 0xC7DF, - 54665 - 44032: 0xC7E0, - 54666 - 44032: 0xC159, - 54667 - 44032: 0xC15A, - 54668 - 44032: 0xC161, - 54669 - 44032: 0xC162, - 54670 - 44032: 0xC163, - 54671 - 44032: 0xC164, - 54672 - 44032: 0xC7E1, - 54673 - 44032: 0xC165, - 54674 - 44032: 0xC166, - 54675 - 44032: 0xC167, - 54676 - 44032: 0xC168, - 54677 - 44032: 0xC169, - 54678 - 44032: 0xC16A, - 54679 - 44032: 0xC16B, - 54680 - 44032: 0xC16C, - 54681 - 44032: 0xC16D, - 54682 - 44032: 0xC16E, - 54683 - 44032: 0xC16F, - 54684 - 44032: 0xC170, - 54685 - 44032: 0xC171, - 54686 - 44032: 0xC172, - 54687 - 44032: 0xC173, - 54688 - 44032: 0xC174, - 54689 - 44032: 0xC175, - 54690 - 44032: 0xC176, - 54691 - 44032: 0xC177, - 54692 - 44032: 0xC178, - 54693 - 44032: 0xC7E2, - 54694 - 44032: 0xC179, - 54695 - 44032: 0xC17A, - 54696 - 44032: 0xC181, - 54697 - 44032: 0xC182, - 54698 - 44032: 0xC183, - 54699 - 44032: 0xC184, - 54700 - 44032: 0xC185, - 54701 - 44032: 0xC186, - 54702 - 44032: 0xC187, - 54703 - 44032: 0xC188, - 54704 - 44032: 0xC189, - 54705 - 44032: 0xC18A, - 54706 - 44032: 0xC18B, - 54707 - 44032: 0xC18C, - 54708 - 44032: 0xC18D, - 54709 - 44032: 0xC18E, - 54710 - 44032: 0xC18F, - 54711 - 44032: 0xC190, - 54712 - 44032: 0xC191, - 54713 - 44032: 0xC192, - 54714 - 44032: 0xC193, - 54715 - 44032: 0xC194, - 54716 - 44032: 0xC195, - 54717 - 44032: 0xC196, - 54718 - 44032: 0xC197, - 54719 - 44032: 0xC198, - 54720 - 44032: 0xC199, - 54721 - 44032: 0xC19A, - 54722 - 44032: 0xC19B, - 54723 - 44032: 0xC19C, - 54724 - 44032: 0xC19D, - 54725 - 44032: 0xC19E, - 54726 - 44032: 0xC19F, - 54727 - 44032: 0xC1A0, - 54728 - 44032: 0xC7E3, - 54729 - 44032: 0xC7E4, - 54730 - 44032: 0xC241, - 54731 - 44032: 0xC242, - 54732 - 44032: 0xC7E5, - 54733 - 44032: 0xC243, - 54734 - 44032: 0xC244, - 54735 - 44032: 0xC245, - 54736 - 44032: 0xC7E6, - 54737 - 44032: 0xC246, - 54738 - 44032: 0xC7E7, - 54739 - 44032: 0xC247, - 54740 - 44032: 0xC248, - 54741 - 44032: 0xC249, - 54742 - 44032: 0xC24A, - 54743 - 44032: 0xC24B, - 54744 - 44032: 0xC7E8, - 54745 - 44032: 0xC7E9, - 54746 - 44032: 0xC24C, - 54747 - 44032: 0xC7EA, - 54748 - 44032: 0xC24D, - 54749 - 44032: 0xC7EB, - 54750 - 44032: 0xC24E, - 54751 - 44032: 0xC24F, - 54752 - 44032: 0xC250, - 54753 - 44032: 0xC251, - 54754 - 44032: 0xC252, - 54755 - 44032: 0xC253, - 54756 - 44032: 0xC7EC, - 54757 - 44032: 0xC7ED, - 54758 - 44032: 0xC254, - 54759 - 44032: 0xC255, - 54760 - 44032: 0xC7EE, - 54761 - 44032: 0xC256, - 54762 - 44032: 0xC257, - 54763 - 44032: 0xC258, - 54764 - 44032: 0xC7EF, - 54765 - 44032: 0xC259, - 54766 - 44032: 0xC25A, - 54767 - 44032: 0xC261, - 54768 - 44032: 0xC262, - 54769 - 44032: 0xC263, - 54770 - 44032: 0xC264, - 54771 - 44032: 0xC265, - 54772 - 44032: 0xC7F0, - 54773 - 44032: 0xC7F1, - 54774 - 44032: 0xC266, - 54775 - 44032: 0xC7F2, - 54776 - 44032: 0xC267, - 54777 - 44032: 0xC7F3, - 54778 - 44032: 0xC268, - 54779 - 44032: 0xC269, - 54780 - 44032: 0xC26A, - 54781 - 44032: 0xC26B, - 54782 - 44032: 0xC26C, - 54783 - 44032: 0xC26D, - 54784 - 44032: 0xC7F4, - 54785 - 44032: 0xC7F5, - 54786 - 44032: 0xC26E, - 54787 - 44032: 0xC26F, - 54788 - 44032: 0xC7F6, - 54789 - 44032: 0xC270, - 54790 - 44032: 0xC271, - 54791 - 44032: 0xC272, - 54792 - 44032: 0xC7F7, - 54793 - 44032: 0xC273, - 54794 - 44032: 0xC274, - 54795 - 44032: 0xC275, - 54796 - 44032: 0xC276, - 54797 - 44032: 0xC277, - 54798 - 44032: 0xC278, - 54799 - 44032: 0xC279, - 54800 - 44032: 0xC7F8, - 54801 - 44032: 0xC7F9, - 54802 - 44032: 0xC27A, - 54803 - 44032: 0xC7FA, - 54804 - 44032: 0xC7FB, - 54805 - 44032: 0xC7FC, - 54806 - 44032: 0xC281, - 54807 - 44032: 0xC282, - 54808 - 44032: 0xC283, - 54809 - 44032: 0xC284, - 54810 - 44032: 0xC285, - 54811 - 44032: 0xC286, - 54812 - 44032: 0xC7FD, - 54813 - 44032: 0xC287, - 54814 - 44032: 0xC288, - 54815 - 44032: 0xC289, - 54816 - 44032: 0xC7FE, - 54817 - 44032: 0xC28A, - 54818 - 44032: 0xC28B, - 54819 - 44032: 0xC28C, - 54820 - 44032: 0xC8A1, - 54821 - 44032: 0xC28D, - 54822 - 44032: 0xC28E, - 54823 - 44032: 0xC28F, - 54824 - 44032: 0xC290, - 54825 - 44032: 0xC291, - 54826 - 44032: 0xC292, - 54827 - 44032: 0xC293, - 54828 - 44032: 0xC294, - 54829 - 44032: 0xC8A2, - 54830 - 44032: 0xC295, - 54831 - 44032: 0xC296, - 54832 - 44032: 0xC297, - 54833 - 44032: 0xC298, - 54834 - 44032: 0xC299, - 54835 - 44032: 0xC29A, - 54836 - 44032: 0xC29B, - 54837 - 44032: 0xC29C, - 54838 - 44032: 0xC29D, - 54839 - 44032: 0xC29E, - 54840 - 44032: 0xC8A3, - 54841 - 44032: 0xC8A4, - 54842 - 44032: 0xC29F, - 54843 - 44032: 0xC2A0, - 54844 - 44032: 0xC8A5, - 54845 - 44032: 0xC341, - 54846 - 44032: 0xC342, - 54847 - 44032: 0xC343, - 54848 - 44032: 0xC8A6, - 54849 - 44032: 0xC344, - 54850 - 44032: 0xC345, - 54851 - 44032: 0xC346, - 54852 - 44032: 0xC347, - 54853 - 44032: 0xC8A7, - 54854 - 44032: 0xC348, - 54855 - 44032: 0xC349, - 54856 - 44032: 0xC8A8, - 54857 - 44032: 0xC8A9, - 54858 - 44032: 0xC34A, - 54859 - 44032: 0xC8AA, - 54860 - 44032: 0xC34B, - 54861 - 44032: 0xC8AB, - 54862 - 44032: 0xC34C, - 54863 - 44032: 0xC34D, - 54864 - 44032: 0xC34E, - 54865 - 44032: 0xC8AC, - 54866 - 44032: 0xC34F, - 54867 - 44032: 0xC350, - 54868 - 44032: 0xC8AD, - 54869 - 44032: 0xC8AE, - 54870 - 44032: 0xC351, - 54871 - 44032: 0xC352, - 54872 - 44032: 0xC8AF, - 54873 - 44032: 0xC353, - 54874 - 44032: 0xC354, - 54875 - 44032: 0xC355, - 54876 - 44032: 0xC8B0, - 54877 - 44032: 0xC356, - 54878 - 44032: 0xC357, - 54879 - 44032: 0xC358, - 54880 - 44032: 0xC359, - 54881 - 44032: 0xC35A, - 54882 - 44032: 0xC361, - 54883 - 44032: 0xC362, - 54884 - 44032: 0xC363, - 54885 - 44032: 0xC364, - 54886 - 44032: 0xC365, - 54887 - 44032: 0xC8B1, - 54888 - 44032: 0xC366, - 54889 - 44032: 0xC8B2, - 54890 - 44032: 0xC367, - 54891 - 44032: 0xC368, - 54892 - 44032: 0xC369, - 54893 - 44032: 0xC36A, - 54894 - 44032: 0xC36B, - 54895 - 44032: 0xC36C, - 54896 - 44032: 0xC8B3, - 54897 - 44032: 0xC8B4, - 54898 - 44032: 0xC36D, - 54899 - 44032: 0xC36E, - 54900 - 44032: 0xC8B5, - 54901 - 44032: 0xC36F, - 54902 - 44032: 0xC370, - 54903 - 44032: 0xC371, - 54904 - 44032: 0xC372, - 54905 - 44032: 0xC373, - 54906 - 44032: 0xC374, - 54907 - 44032: 0xC375, - 54908 - 44032: 0xC376, - 54909 - 44032: 0xC377, - 54910 - 44032: 0xC378, - 54911 - 44032: 0xC379, - 54912 - 44032: 0xC37A, - 54913 - 44032: 0xC381, - 54914 - 44032: 0xC382, - 54915 - 44032: 0xC8B6, - 54916 - 44032: 0xC383, - 54917 - 44032: 0xC8B7, - 54918 - 44032: 0xC384, - 54919 - 44032: 0xC385, - 54920 - 44032: 0xC386, - 54921 - 44032: 0xC387, - 54922 - 44032: 0xC388, - 54923 - 44032: 0xC389, - 54924 - 44032: 0xC8B8, - 54925 - 44032: 0xC8B9, - 54926 - 44032: 0xC38A, - 54927 - 44032: 0xC38B, - 54928 - 44032: 0xC8BA, - 54929 - 44032: 0xC38C, - 54930 - 44032: 0xC38D, - 54931 - 44032: 0xC38E, - 54932 - 44032: 0xC8BB, - 54933 - 44032: 0xC38F, - 54934 - 44032: 0xC390, - 54935 - 44032: 0xC391, - 54936 - 44032: 0xC392, - 54937 - 44032: 0xC393, - 54938 - 44032: 0xC394, - 54939 - 44032: 0xC395, - 54940 - 44032: 0xC396, - 54941 - 44032: 0xC8BC, - 54942 - 44032: 0xC397, - 54943 - 44032: 0xC8BD, - 54944 - 44032: 0xC398, - 54945 - 44032: 0xC8BE, - 54946 - 44032: 0xC399, - 54947 - 44032: 0xC39A, - 54948 - 44032: 0xC39B, - 54949 - 44032: 0xC39C, - 54950 - 44032: 0xC39D, - 54951 - 44032: 0xC39E, - 54952 - 44032: 0xC8BF, - 54953 - 44032: 0xC39F, - 54954 - 44032: 0xC3A0, - 54955 - 44032: 0xC441, - 54956 - 44032: 0xC8C0, - 54957 - 44032: 0xC442, - 54958 - 44032: 0xC443, - 54959 - 44032: 0xC444, - 54960 - 44032: 0xC8C1, - 54961 - 44032: 0xC445, - 54962 - 44032: 0xC446, - 54963 - 44032: 0xC447, - 54964 - 44032: 0xC448, - 54965 - 44032: 0xC449, - 54966 - 44032: 0xC44A, - 54967 - 44032: 0xC44B, - 54968 - 44032: 0xC44C, - 54969 - 44032: 0xC8C2, - 54970 - 44032: 0xC44D, - 54971 - 44032: 0xC8C3, - 54972 - 44032: 0xC44E, - 54973 - 44032: 0xC44F, - 54974 - 44032: 0xC450, - 54975 - 44032: 0xC451, - 54976 - 44032: 0xC452, - 54977 - 44032: 0xC453, - 54978 - 44032: 0xC454, - 54979 - 44032: 0xC455, - 54980 - 44032: 0xC8C4, - 54981 - 44032: 0xC8C5, - 54982 - 44032: 0xC456, - 54983 - 44032: 0xC457, - 54984 - 44032: 0xC8C6, - 54985 - 44032: 0xC458, - 54986 - 44032: 0xC459, - 54987 - 44032: 0xC45A, - 54988 - 44032: 0xC8C7, - 54989 - 44032: 0xC461, - 54990 - 44032: 0xC462, - 54991 - 44032: 0xC463, - 54992 - 44032: 0xC464, - 54993 - 44032: 0xC8C8, - 54994 - 44032: 0xC465, - 54995 - 44032: 0xC466, - 54996 - 44032: 0xC8C9, - 54997 - 44032: 0xC467, - 54998 - 44032: 0xC468, - 54999 - 44032: 0xC8CA, - 55000 - 44032: 0xC469, - 55001 - 44032: 0xC8CB, - 55002 - 44032: 0xC46A, - 55003 - 44032: 0xC46B, - 55004 - 44032: 0xC46C, - 55005 - 44032: 0xC46D, - 55006 - 44032: 0xC46E, - 55007 - 44032: 0xC46F, - 55008 - 44032: 0xC8CC, - 55009 - 44032: 0xC470, - 55010 - 44032: 0xC471, - 55011 - 44032: 0xC472, - 55012 - 44032: 0xC8CD, - 55013 - 44032: 0xC473, - 55014 - 44032: 0xC474, - 55015 - 44032: 0xC475, - 55016 - 44032: 0xC8CE, - 55017 - 44032: 0xC476, - 55018 - 44032: 0xC477, - 55019 - 44032: 0xC478, - 55020 - 44032: 0xC479, - 55021 - 44032: 0xC47A, - 55022 - 44032: 0xC481, - 55023 - 44032: 0xC482, - 55024 - 44032: 0xC8CF, - 55025 - 44032: 0xC483, - 55026 - 44032: 0xC484, - 55027 - 44032: 0xC485, - 55028 - 44032: 0xC486, - 55029 - 44032: 0xC8D0, - 55030 - 44032: 0xC487, - 55031 - 44032: 0xC488, - 55032 - 44032: 0xC489, - 55033 - 44032: 0xC48A, - 55034 - 44032: 0xC48B, - 55035 - 44032: 0xC48C, - 55036 - 44032: 0xC8D1, - 55037 - 44032: 0xC8D2, - 55038 - 44032: 0xC48D, - 55039 - 44032: 0xC48E, - 55040 - 44032: 0xC8D3, - 55041 - 44032: 0xC48F, - 55042 - 44032: 0xC490, - 55043 - 44032: 0xC491, - 55044 - 44032: 0xC8D4, - 55045 - 44032: 0xC492, - 55046 - 44032: 0xC493, - 55047 - 44032: 0xC494, - 55048 - 44032: 0xC495, - 55049 - 44032: 0xC496, - 55050 - 44032: 0xC497, - 55051 - 44032: 0xC498, - 55052 - 44032: 0xC499, - 55053 - 44032: 0xC49A, - 55054 - 44032: 0xC49B, - 55055 - 44032: 0xC49C, - 55056 - 44032: 0xC49D, - 55057 - 44032: 0xC8D5, - 55058 - 44032: 0xC49E, - 55059 - 44032: 0xC49F, - 55060 - 44032: 0xC4A0, - 55061 - 44032: 0xC541, - 55062 - 44032: 0xC542, - 55063 - 44032: 0xC543, - 55064 - 44032: 0xC8D6, - 55065 - 44032: 0xC8D7, - 55066 - 44032: 0xC544, - 55067 - 44032: 0xC545, - 55068 - 44032: 0xC8D8, - 55069 - 44032: 0xC546, - 55070 - 44032: 0xC547, - 55071 - 44032: 0xC548, - 55072 - 44032: 0xC8D9, - 55073 - 44032: 0xC549, - 55074 - 44032: 0xC54A, - 55075 - 44032: 0xC54B, - 55076 - 44032: 0xC54C, - 55077 - 44032: 0xC54D, - 55078 - 44032: 0xC54E, - 55079 - 44032: 0xC54F, - 55080 - 44032: 0xC8DA, - 55081 - 44032: 0xC8DB, - 55082 - 44032: 0xC550, - 55083 - 44032: 0xC8DC, - 55084 - 44032: 0xC551, - 55085 - 44032: 0xC8DD, - 55086 - 44032: 0xC552, - 55087 - 44032: 0xC553, - 55088 - 44032: 0xC554, - 55089 - 44032: 0xC555, - 55090 - 44032: 0xC556, - 55091 - 44032: 0xC557, - 55092 - 44032: 0xC8DE, - 55093 - 44032: 0xC8DF, - 55094 - 44032: 0xC558, - 55095 - 44032: 0xC559, - 55096 - 44032: 0xC8E0, - 55097 - 44032: 0xC55A, - 55098 - 44032: 0xC561, - 55099 - 44032: 0xC562, - 55100 - 44032: 0xC8E1, - 55101 - 44032: 0xC563, - 55102 - 44032: 0xC564, - 55103 - 44032: 0xC565, - 55104 - 44032: 0xC566, - 55105 - 44032: 0xC567, - 55106 - 44032: 0xC568, - 55107 - 44032: 0xC569, - 55108 - 44032: 0xC8E2, - 55109 - 44032: 0xC56A, - 55110 - 44032: 0xC56B, - 55111 - 44032: 0xC8E3, - 55112 - 44032: 0xC56C, - 55113 - 44032: 0xC8E4, - 55114 - 44032: 0xC56D, - 55115 - 44032: 0xC56E, - 55116 - 44032: 0xC56F, - 55117 - 44032: 0xC570, - 55118 - 44032: 0xC571, - 55119 - 44032: 0xC572, - 55120 - 44032: 0xC8E5, - 55121 - 44032: 0xC8E6, - 55122 - 44032: 0xC573, - 55123 - 44032: 0xC574, - 55124 - 44032: 0xC8E7, - 55125 - 44032: 0xC575, - 55126 - 44032: 0xC8E8, - 55127 - 44032: 0xC8E9, - 55128 - 44032: 0xC8EA, - 55129 - 44032: 0xC8EB, - 55130 - 44032: 0xC576, - 55131 - 44032: 0xC577, - 55132 - 44032: 0xC578, - 55133 - 44032: 0xC579, - 55134 - 44032: 0xC57A, - 55135 - 44032: 0xC581, - 55136 - 44032: 0xC8EC, - 55137 - 44032: 0xC8ED, - 55138 - 44032: 0xC582, - 55139 - 44032: 0xC8EE, - 55140 - 44032: 0xC583, - 55141 - 44032: 0xC8EF, - 55142 - 44032: 0xC584, - 55143 - 44032: 0xC585, - 55144 - 44032: 0xC586, - 55145 - 44032: 0xC8F0, - 55146 - 44032: 0xC587, - 55147 - 44032: 0xC588, - 55148 - 44032: 0xC8F1, - 55149 - 44032: 0xC589, - 55150 - 44032: 0xC58A, - 55151 - 44032: 0xC58B, - 55152 - 44032: 0xC8F2, - 55153 - 44032: 0xC58C, - 55154 - 44032: 0xC58D, - 55155 - 44032: 0xC58E, - 55156 - 44032: 0xC8F3, - 55157 - 44032: 0xC58F, - 55158 - 44032: 0xC590, - 55159 - 44032: 0xC591, - 55160 - 44032: 0xC592, - 55161 - 44032: 0xC593, - 55162 - 44032: 0xC594, - 55163 - 44032: 0xC595, - 55164 - 44032: 0xC8F4, - 55165 - 44032: 0xC8F5, - 55166 - 44032: 0xC596, - 55167 - 44032: 0xC597, - 55168 - 44032: 0xC598, - 55169 - 44032: 0xC8F6, - 55170 - 44032: 0xC599, - 55171 - 44032: 0xC59A, - 55172 - 44032: 0xC59B, - 55173 - 44032: 0xC59C, - 55174 - 44032: 0xC59D, - 55175 - 44032: 0xC59E, - 55176 - 44032: 0xC8F7, - 55177 - 44032: 0xC8F8, - 55178 - 44032: 0xC59F, - 55179 - 44032: 0xC5A0, - 55180 - 44032: 0xC8F9, - 55181 - 44032: 0xC641, - 55182 - 44032: 0xC642, - 55183 - 44032: 0xC643, - 55184 - 44032: 0xC8FA, - 55185 - 44032: 0xC644, - 55186 - 44032: 0xC645, - 55187 - 44032: 0xC646, - 55188 - 44032: 0xC647, - 55189 - 44032: 0xC648, - 55190 - 44032: 0xC649, - 55191 - 44032: 0xC64A, - 55192 - 44032: 0xC8FB, - 55193 - 44032: 0xC8FC, - 55194 - 44032: 0xC64B, - 55195 - 44032: 0xC8FD, - 55196 - 44032: 0xC64C, - 55197 - 44032: 0xC8FE, - 55198 - 44032: 0xC64D, - 55199 - 44032: 0xC64E, - 55200 - 44032: 0xC64F, - 55201 - 44032: 0xC650, - 55202 - 44032: 0xC651, - 55203 - 44032: 0xC652, -} - -const encode2Low, encode2High = 8213, 9838 - -var encode2 = [...]uint16{ - 8213 - 8213: 0xA1AA, - 8216 - 8213: 0xA1AE, - 8217 - 8213: 0xA1AF, - 8220 - 8213: 0xA1B0, - 8221 - 8213: 0xA1B1, - 8224 - 8213: 0xA2D3, - 8225 - 8213: 0xA2D4, - 8229 - 8213: 0xA1A5, - 8230 - 8213: 0xA1A6, - 8240 - 8213: 0xA2B6, - 8242 - 8213: 0xA1C7, - 8243 - 8213: 0xA1C8, - 8251 - 8213: 0xA1D8, - 8308 - 8213: 0xA9F9, - 8319 - 8213: 0xA9FA, - 8321 - 8213: 0xA9FB, - 8322 - 8213: 0xA9FC, - 8323 - 8213: 0xA9FD, - 8324 - 8213: 0xA9FE, - 8364 - 8213: 0xA2E6, - 8451 - 8213: 0xA1C9, - 8457 - 8213: 0xA2B5, - 8467 - 8213: 0xA7A4, - 8470 - 8213: 0xA2E0, - 8481 - 8213: 0xA2E5, - 8482 - 8213: 0xA2E2, - 8486 - 8213: 0xA7D9, - 8491 - 8213: 0xA1CA, - 8531 - 8213: 0xA8F7, - 8532 - 8213: 0xA8F8, - 8539 - 8213: 0xA8FB, - 8540 - 8213: 0xA8FC, - 8541 - 8213: 0xA8FD, - 8542 - 8213: 0xA8FE, - 8544 - 8213: 0xA5B0, - 8545 - 8213: 0xA5B1, - 8546 - 8213: 0xA5B2, - 8547 - 8213: 0xA5B3, - 8548 - 8213: 0xA5B4, - 8549 - 8213: 0xA5B5, - 8550 - 8213: 0xA5B6, - 8551 - 8213: 0xA5B7, - 8552 - 8213: 0xA5B8, - 8553 - 8213: 0xA5B9, - 8560 - 8213: 0xA5A1, - 8561 - 8213: 0xA5A2, - 8562 - 8213: 0xA5A3, - 8563 - 8213: 0xA5A4, - 8564 - 8213: 0xA5A5, - 8565 - 8213: 0xA5A6, - 8566 - 8213: 0xA5A7, - 8567 - 8213: 0xA5A8, - 8568 - 8213: 0xA5A9, - 8569 - 8213: 0xA5AA, - 8592 - 8213: 0xA1E7, - 8593 - 8213: 0xA1E8, - 8594 - 8213: 0xA1E6, - 8595 - 8213: 0xA1E9, - 8596 - 8213: 0xA1EA, - 8597 - 8213: 0xA2D5, - 8598 - 8213: 0xA2D8, - 8599 - 8213: 0xA2D6, - 8600 - 8213: 0xA2D9, - 8601 - 8213: 0xA2D7, - 8658 - 8213: 0xA2A1, - 8660 - 8213: 0xA2A2, - 8704 - 8213: 0xA2A3, - 8706 - 8213: 0xA1D3, - 8707 - 8213: 0xA2A4, - 8711 - 8213: 0xA1D4, - 8712 - 8213: 0xA1F4, - 8715 - 8213: 0xA1F5, - 8719 - 8213: 0xA2B3, - 8721 - 8213: 0xA2B2, - 8730 - 8213: 0xA1EE, - 8733 - 8213: 0xA1F0, - 8734 - 8213: 0xA1C4, - 8736 - 8213: 0xA1D0, - 8741 - 8213: 0xA1AB, - 8743 - 8213: 0xA1FC, - 8744 - 8213: 0xA1FD, - 8745 - 8213: 0xA1FB, - 8746 - 8213: 0xA1FA, - 8747 - 8213: 0xA1F2, - 8748 - 8213: 0xA1F3, - 8750 - 8213: 0xA2B1, - 8756 - 8213: 0xA1C5, - 8757 - 8213: 0xA1F1, - 8764 - 8213: 0xA1AD, - 8765 - 8213: 0xA1EF, - 8786 - 8213: 0xA1D6, - 8800 - 8213: 0xA1C1, - 8801 - 8213: 0xA1D5, - 8804 - 8213: 0xA1C2, - 8805 - 8213: 0xA1C3, - 8810 - 8213: 0xA1EC, - 8811 - 8213: 0xA1ED, - 8834 - 8213: 0xA1F8, - 8835 - 8213: 0xA1F9, - 8838 - 8213: 0xA1F6, - 8839 - 8213: 0xA1F7, - 8857 - 8213: 0xA2C1, - 8869 - 8213: 0xA1D1, - 8978 - 8213: 0xA1D2, - 9312 - 8213: 0xA8E7, - 9313 - 8213: 0xA8E8, - 9314 - 8213: 0xA8E9, - 9315 - 8213: 0xA8EA, - 9316 - 8213: 0xA8EB, - 9317 - 8213: 0xA8EC, - 9318 - 8213: 0xA8ED, - 9319 - 8213: 0xA8EE, - 9320 - 8213: 0xA8EF, - 9321 - 8213: 0xA8F0, - 9322 - 8213: 0xA8F1, - 9323 - 8213: 0xA8F2, - 9324 - 8213: 0xA8F3, - 9325 - 8213: 0xA8F4, - 9326 - 8213: 0xA8F5, - 9332 - 8213: 0xA9E7, - 9333 - 8213: 0xA9E8, - 9334 - 8213: 0xA9E9, - 9335 - 8213: 0xA9EA, - 9336 - 8213: 0xA9EB, - 9337 - 8213: 0xA9EC, - 9338 - 8213: 0xA9ED, - 9339 - 8213: 0xA9EE, - 9340 - 8213: 0xA9EF, - 9341 - 8213: 0xA9F0, - 9342 - 8213: 0xA9F1, - 9343 - 8213: 0xA9F2, - 9344 - 8213: 0xA9F3, - 9345 - 8213: 0xA9F4, - 9346 - 8213: 0xA9F5, - 9372 - 8213: 0xA9CD, - 9373 - 8213: 0xA9CE, - 9374 - 8213: 0xA9CF, - 9375 - 8213: 0xA9D0, - 9376 - 8213: 0xA9D1, - 9377 - 8213: 0xA9D2, - 9378 - 8213: 0xA9D3, - 9379 - 8213: 0xA9D4, - 9380 - 8213: 0xA9D5, - 9381 - 8213: 0xA9D6, - 9382 - 8213: 0xA9D7, - 9383 - 8213: 0xA9D8, - 9384 - 8213: 0xA9D9, - 9385 - 8213: 0xA9DA, - 9386 - 8213: 0xA9DB, - 9387 - 8213: 0xA9DC, - 9388 - 8213: 0xA9DD, - 9389 - 8213: 0xA9DE, - 9390 - 8213: 0xA9DF, - 9391 - 8213: 0xA9E0, - 9392 - 8213: 0xA9E1, - 9393 - 8213: 0xA9E2, - 9394 - 8213: 0xA9E3, - 9395 - 8213: 0xA9E4, - 9396 - 8213: 0xA9E5, - 9397 - 8213: 0xA9E6, - 9424 - 8213: 0xA8CD, - 9425 - 8213: 0xA8CE, - 9426 - 8213: 0xA8CF, - 9427 - 8213: 0xA8D0, - 9428 - 8213: 0xA8D1, - 9429 - 8213: 0xA8D2, - 9430 - 8213: 0xA8D3, - 9431 - 8213: 0xA8D4, - 9432 - 8213: 0xA8D5, - 9433 - 8213: 0xA8D6, - 9434 - 8213: 0xA8D7, - 9435 - 8213: 0xA8D8, - 9436 - 8213: 0xA8D9, - 9437 - 8213: 0xA8DA, - 9438 - 8213: 0xA8DB, - 9439 - 8213: 0xA8DC, - 9440 - 8213: 0xA8DD, - 9441 - 8213: 0xA8DE, - 9442 - 8213: 0xA8DF, - 9443 - 8213: 0xA8E0, - 9444 - 8213: 0xA8E1, - 9445 - 8213: 0xA8E2, - 9446 - 8213: 0xA8E3, - 9447 - 8213: 0xA8E4, - 9448 - 8213: 0xA8E5, - 9449 - 8213: 0xA8E6, - 9472 - 8213: 0xA6A1, - 9473 - 8213: 0xA6AC, - 9474 - 8213: 0xA6A2, - 9475 - 8213: 0xA6AD, - 9484 - 8213: 0xA6A3, - 9485 - 8213: 0xA6C8, - 9486 - 8213: 0xA6C7, - 9487 - 8213: 0xA6AE, - 9488 - 8213: 0xA6A4, - 9489 - 8213: 0xA6C2, - 9490 - 8213: 0xA6C1, - 9491 - 8213: 0xA6AF, - 9492 - 8213: 0xA6A6, - 9493 - 8213: 0xA6C6, - 9494 - 8213: 0xA6C5, - 9495 - 8213: 0xA6B1, - 9496 - 8213: 0xA6A5, - 9497 - 8213: 0xA6C4, - 9498 - 8213: 0xA6C3, - 9499 - 8213: 0xA6B0, - 9500 - 8213: 0xA6A7, - 9501 - 8213: 0xA6BC, - 9502 - 8213: 0xA6C9, - 9503 - 8213: 0xA6CA, - 9504 - 8213: 0xA6B7, - 9505 - 8213: 0xA6CB, - 9506 - 8213: 0xA6CC, - 9507 - 8213: 0xA6B2, - 9508 - 8213: 0xA6A9, - 9509 - 8213: 0xA6BE, - 9510 - 8213: 0xA6CD, - 9511 - 8213: 0xA6CE, - 9512 - 8213: 0xA6B9, - 9513 - 8213: 0xA6CF, - 9514 - 8213: 0xA6D0, - 9515 - 8213: 0xA6B4, - 9516 - 8213: 0xA6A8, - 9517 - 8213: 0xA6D1, - 9518 - 8213: 0xA6D2, - 9519 - 8213: 0xA6B8, - 9520 - 8213: 0xA6BD, - 9521 - 8213: 0xA6D3, - 9522 - 8213: 0xA6D4, - 9523 - 8213: 0xA6B3, - 9524 - 8213: 0xA6AA, - 9525 - 8213: 0xA6D5, - 9526 - 8213: 0xA6D6, - 9527 - 8213: 0xA6BA, - 9528 - 8213: 0xA6BF, - 9529 - 8213: 0xA6D7, - 9530 - 8213: 0xA6D8, - 9531 - 8213: 0xA6B5, - 9532 - 8213: 0xA6AB, - 9533 - 8213: 0xA6D9, - 9534 - 8213: 0xA6DA, - 9535 - 8213: 0xA6BB, - 9536 - 8213: 0xA6DB, - 9537 - 8213: 0xA6DC, - 9538 - 8213: 0xA6C0, - 9539 - 8213: 0xA6DD, - 9540 - 8213: 0xA6DE, - 9541 - 8213: 0xA6DF, - 9542 - 8213: 0xA6E0, - 9543 - 8213: 0xA6E1, - 9544 - 8213: 0xA6E2, - 9545 - 8213: 0xA6E3, - 9546 - 8213: 0xA6E4, - 9547 - 8213: 0xA6B6, - 9618 - 8213: 0xA2C6, - 9632 - 8213: 0xA1E1, - 9633 - 8213: 0xA1E0, - 9635 - 8213: 0xA2C3, - 9636 - 8213: 0xA2C7, - 9637 - 8213: 0xA2C8, - 9638 - 8213: 0xA2CB, - 9639 - 8213: 0xA2CA, - 9640 - 8213: 0xA2C9, - 9641 - 8213: 0xA2CC, - 9650 - 8213: 0xA1E3, - 9651 - 8213: 0xA1E2, - 9654 - 8213: 0xA2BA, - 9655 - 8213: 0xA2B9, - 9660 - 8213: 0xA1E5, - 9661 - 8213: 0xA1E4, - 9664 - 8213: 0xA2B8, - 9665 - 8213: 0xA2B7, - 9670 - 8213: 0xA1DF, - 9671 - 8213: 0xA1DE, - 9672 - 8213: 0xA2C2, - 9675 - 8213: 0xA1DB, - 9678 - 8213: 0xA1DD, - 9679 - 8213: 0xA1DC, - 9680 - 8213: 0xA2C4, - 9681 - 8213: 0xA2C5, - 9733 - 8213: 0xA1DA, - 9734 - 8213: 0xA1D9, - 9742 - 8213: 0xA2CF, - 9743 - 8213: 0xA2CE, - 9756 - 8213: 0xA2D0, - 9758 - 8213: 0xA2D1, - 9792 - 8213: 0xA1CF, - 9794 - 8213: 0xA1CE, - 9824 - 8213: 0xA2BC, - 9825 - 8213: 0xA2BD, - 9827 - 8213: 0xA2C0, - 9828 - 8213: 0xA2BB, - 9829 - 8213: 0xA2BE, - 9831 - 8213: 0xA2BF, - 9832 - 8213: 0xA2CD, - 9833 - 8213: 0xA2DB, - 9834 - 8213: 0xA2DC, - 9836 - 8213: 0xA2DD, - 9837 - 8213: 0xA2DA, -} - -const encode3Low, encode3High = 12288, 13278 - -var encode3 = [...]uint16{ - 12288 - 12288: 0xA1A1, - 12289 - 12288: 0xA1A2, - 12290 - 12288: 0xA1A3, - 12291 - 12288: 0xA1A8, - 12296 - 12288: 0xA1B4, - 12297 - 12288: 0xA1B5, - 12298 - 12288: 0xA1B6, - 12299 - 12288: 0xA1B7, - 12300 - 12288: 0xA1B8, - 12301 - 12288: 0xA1B9, - 12302 - 12288: 0xA1BA, - 12303 - 12288: 0xA1BB, - 12304 - 12288: 0xA1BC, - 12305 - 12288: 0xA1BD, - 12307 - 12288: 0xA1EB, - 12308 - 12288: 0xA1B2, - 12309 - 12288: 0xA1B3, - 12353 - 12288: 0xAAA1, - 12354 - 12288: 0xAAA2, - 12355 - 12288: 0xAAA3, - 12356 - 12288: 0xAAA4, - 12357 - 12288: 0xAAA5, - 12358 - 12288: 0xAAA6, - 12359 - 12288: 0xAAA7, - 12360 - 12288: 0xAAA8, - 12361 - 12288: 0xAAA9, - 12362 - 12288: 0xAAAA, - 12363 - 12288: 0xAAAB, - 12364 - 12288: 0xAAAC, - 12365 - 12288: 0xAAAD, - 12366 - 12288: 0xAAAE, - 12367 - 12288: 0xAAAF, - 12368 - 12288: 0xAAB0, - 12369 - 12288: 0xAAB1, - 12370 - 12288: 0xAAB2, - 12371 - 12288: 0xAAB3, - 12372 - 12288: 0xAAB4, - 12373 - 12288: 0xAAB5, - 12374 - 12288: 0xAAB6, - 12375 - 12288: 0xAAB7, - 12376 - 12288: 0xAAB8, - 12377 - 12288: 0xAAB9, - 12378 - 12288: 0xAABA, - 12379 - 12288: 0xAABB, - 12380 - 12288: 0xAABC, - 12381 - 12288: 0xAABD, - 12382 - 12288: 0xAABE, - 12383 - 12288: 0xAABF, - 12384 - 12288: 0xAAC0, - 12385 - 12288: 0xAAC1, - 12386 - 12288: 0xAAC2, - 12387 - 12288: 0xAAC3, - 12388 - 12288: 0xAAC4, - 12389 - 12288: 0xAAC5, - 12390 - 12288: 0xAAC6, - 12391 - 12288: 0xAAC7, - 12392 - 12288: 0xAAC8, - 12393 - 12288: 0xAAC9, - 12394 - 12288: 0xAACA, - 12395 - 12288: 0xAACB, - 12396 - 12288: 0xAACC, - 12397 - 12288: 0xAACD, - 12398 - 12288: 0xAACE, - 12399 - 12288: 0xAACF, - 12400 - 12288: 0xAAD0, - 12401 - 12288: 0xAAD1, - 12402 - 12288: 0xAAD2, - 12403 - 12288: 0xAAD3, - 12404 - 12288: 0xAAD4, - 12405 - 12288: 0xAAD5, - 12406 - 12288: 0xAAD6, - 12407 - 12288: 0xAAD7, - 12408 - 12288: 0xAAD8, - 12409 - 12288: 0xAAD9, - 12410 - 12288: 0xAADA, - 12411 - 12288: 0xAADB, - 12412 - 12288: 0xAADC, - 12413 - 12288: 0xAADD, - 12414 - 12288: 0xAADE, - 12415 - 12288: 0xAADF, - 12416 - 12288: 0xAAE0, - 12417 - 12288: 0xAAE1, - 12418 - 12288: 0xAAE2, - 12419 - 12288: 0xAAE3, - 12420 - 12288: 0xAAE4, - 12421 - 12288: 0xAAE5, - 12422 - 12288: 0xAAE6, - 12423 - 12288: 0xAAE7, - 12424 - 12288: 0xAAE8, - 12425 - 12288: 0xAAE9, - 12426 - 12288: 0xAAEA, - 12427 - 12288: 0xAAEB, - 12428 - 12288: 0xAAEC, - 12429 - 12288: 0xAAED, - 12430 - 12288: 0xAAEE, - 12431 - 12288: 0xAAEF, - 12432 - 12288: 0xAAF0, - 12433 - 12288: 0xAAF1, - 12434 - 12288: 0xAAF2, - 12435 - 12288: 0xAAF3, - 12449 - 12288: 0xABA1, - 12450 - 12288: 0xABA2, - 12451 - 12288: 0xABA3, - 12452 - 12288: 0xABA4, - 12453 - 12288: 0xABA5, - 12454 - 12288: 0xABA6, - 12455 - 12288: 0xABA7, - 12456 - 12288: 0xABA8, - 12457 - 12288: 0xABA9, - 12458 - 12288: 0xABAA, - 12459 - 12288: 0xABAB, - 12460 - 12288: 0xABAC, - 12461 - 12288: 0xABAD, - 12462 - 12288: 0xABAE, - 12463 - 12288: 0xABAF, - 12464 - 12288: 0xABB0, - 12465 - 12288: 0xABB1, - 12466 - 12288: 0xABB2, - 12467 - 12288: 0xABB3, - 12468 - 12288: 0xABB4, - 12469 - 12288: 0xABB5, - 12470 - 12288: 0xABB6, - 12471 - 12288: 0xABB7, - 12472 - 12288: 0xABB8, - 12473 - 12288: 0xABB9, - 12474 - 12288: 0xABBA, - 12475 - 12288: 0xABBB, - 12476 - 12288: 0xABBC, - 12477 - 12288: 0xABBD, - 12478 - 12288: 0xABBE, - 12479 - 12288: 0xABBF, - 12480 - 12288: 0xABC0, - 12481 - 12288: 0xABC1, - 12482 - 12288: 0xABC2, - 12483 - 12288: 0xABC3, - 12484 - 12288: 0xABC4, - 12485 - 12288: 0xABC5, - 12486 - 12288: 0xABC6, - 12487 - 12288: 0xABC7, - 12488 - 12288: 0xABC8, - 12489 - 12288: 0xABC9, - 12490 - 12288: 0xABCA, - 12491 - 12288: 0xABCB, - 12492 - 12288: 0xABCC, - 12493 - 12288: 0xABCD, - 12494 - 12288: 0xABCE, - 12495 - 12288: 0xABCF, - 12496 - 12288: 0xABD0, - 12497 - 12288: 0xABD1, - 12498 - 12288: 0xABD2, - 12499 - 12288: 0xABD3, - 12500 - 12288: 0xABD4, - 12501 - 12288: 0xABD5, - 12502 - 12288: 0xABD6, - 12503 - 12288: 0xABD7, - 12504 - 12288: 0xABD8, - 12505 - 12288: 0xABD9, - 12506 - 12288: 0xABDA, - 12507 - 12288: 0xABDB, - 12508 - 12288: 0xABDC, - 12509 - 12288: 0xABDD, - 12510 - 12288: 0xABDE, - 12511 - 12288: 0xABDF, - 12512 - 12288: 0xABE0, - 12513 - 12288: 0xABE1, - 12514 - 12288: 0xABE2, - 12515 - 12288: 0xABE3, - 12516 - 12288: 0xABE4, - 12517 - 12288: 0xABE5, - 12518 - 12288: 0xABE6, - 12519 - 12288: 0xABE7, - 12520 - 12288: 0xABE8, - 12521 - 12288: 0xABE9, - 12522 - 12288: 0xABEA, - 12523 - 12288: 0xABEB, - 12524 - 12288: 0xABEC, - 12525 - 12288: 0xABED, - 12526 - 12288: 0xABEE, - 12527 - 12288: 0xABEF, - 12528 - 12288: 0xABF0, - 12529 - 12288: 0xABF1, - 12530 - 12288: 0xABF2, - 12531 - 12288: 0xABF3, - 12532 - 12288: 0xABF4, - 12533 - 12288: 0xABF5, - 12534 - 12288: 0xABF6, - 12593 - 12288: 0xA4A1, - 12594 - 12288: 0xA4A2, - 12595 - 12288: 0xA4A3, - 12596 - 12288: 0xA4A4, - 12597 - 12288: 0xA4A5, - 12598 - 12288: 0xA4A6, - 12599 - 12288: 0xA4A7, - 12600 - 12288: 0xA4A8, - 12601 - 12288: 0xA4A9, - 12602 - 12288: 0xA4AA, - 12603 - 12288: 0xA4AB, - 12604 - 12288: 0xA4AC, - 12605 - 12288: 0xA4AD, - 12606 - 12288: 0xA4AE, - 12607 - 12288: 0xA4AF, - 12608 - 12288: 0xA4B0, - 12609 - 12288: 0xA4B1, - 12610 - 12288: 0xA4B2, - 12611 - 12288: 0xA4B3, - 12612 - 12288: 0xA4B4, - 12613 - 12288: 0xA4B5, - 12614 - 12288: 0xA4B6, - 12615 - 12288: 0xA4B7, - 12616 - 12288: 0xA4B8, - 12617 - 12288: 0xA4B9, - 12618 - 12288: 0xA4BA, - 12619 - 12288: 0xA4BB, - 12620 - 12288: 0xA4BC, - 12621 - 12288: 0xA4BD, - 12622 - 12288: 0xA4BE, - 12623 - 12288: 0xA4BF, - 12624 - 12288: 0xA4C0, - 12625 - 12288: 0xA4C1, - 12626 - 12288: 0xA4C2, - 12627 - 12288: 0xA4C3, - 12628 - 12288: 0xA4C4, - 12629 - 12288: 0xA4C5, - 12630 - 12288: 0xA4C6, - 12631 - 12288: 0xA4C7, - 12632 - 12288: 0xA4C8, - 12633 - 12288: 0xA4C9, - 12634 - 12288: 0xA4CA, - 12635 - 12288: 0xA4CB, - 12636 - 12288: 0xA4CC, - 12637 - 12288: 0xA4CD, - 12638 - 12288: 0xA4CE, - 12639 - 12288: 0xA4CF, - 12640 - 12288: 0xA4D0, - 12641 - 12288: 0xA4D1, - 12642 - 12288: 0xA4D2, - 12643 - 12288: 0xA4D3, - 12644 - 12288: 0xA4D4, - 12645 - 12288: 0xA4D5, - 12646 - 12288: 0xA4D6, - 12647 - 12288: 0xA4D7, - 12648 - 12288: 0xA4D8, - 12649 - 12288: 0xA4D9, - 12650 - 12288: 0xA4DA, - 12651 - 12288: 0xA4DB, - 12652 - 12288: 0xA4DC, - 12653 - 12288: 0xA4DD, - 12654 - 12288: 0xA4DE, - 12655 - 12288: 0xA4DF, - 12656 - 12288: 0xA4E0, - 12657 - 12288: 0xA4E1, - 12658 - 12288: 0xA4E2, - 12659 - 12288: 0xA4E3, - 12660 - 12288: 0xA4E4, - 12661 - 12288: 0xA4E5, - 12662 - 12288: 0xA4E6, - 12663 - 12288: 0xA4E7, - 12664 - 12288: 0xA4E8, - 12665 - 12288: 0xA4E9, - 12666 - 12288: 0xA4EA, - 12667 - 12288: 0xA4EB, - 12668 - 12288: 0xA4EC, - 12669 - 12288: 0xA4ED, - 12670 - 12288: 0xA4EE, - 12671 - 12288: 0xA4EF, - 12672 - 12288: 0xA4F0, - 12673 - 12288: 0xA4F1, - 12674 - 12288: 0xA4F2, - 12675 - 12288: 0xA4F3, - 12676 - 12288: 0xA4F4, - 12677 - 12288: 0xA4F5, - 12678 - 12288: 0xA4F6, - 12679 - 12288: 0xA4F7, - 12680 - 12288: 0xA4F8, - 12681 - 12288: 0xA4F9, - 12682 - 12288: 0xA4FA, - 12683 - 12288: 0xA4FB, - 12684 - 12288: 0xA4FC, - 12685 - 12288: 0xA4FD, - 12686 - 12288: 0xA4FE, - 12800 - 12288: 0xA9B1, - 12801 - 12288: 0xA9B2, - 12802 - 12288: 0xA9B3, - 12803 - 12288: 0xA9B4, - 12804 - 12288: 0xA9B5, - 12805 - 12288: 0xA9B6, - 12806 - 12288: 0xA9B7, - 12807 - 12288: 0xA9B8, - 12808 - 12288: 0xA9B9, - 12809 - 12288: 0xA9BA, - 12810 - 12288: 0xA9BB, - 12811 - 12288: 0xA9BC, - 12812 - 12288: 0xA9BD, - 12813 - 12288: 0xA9BE, - 12814 - 12288: 0xA9BF, - 12815 - 12288: 0xA9C0, - 12816 - 12288: 0xA9C1, - 12817 - 12288: 0xA9C2, - 12818 - 12288: 0xA9C3, - 12819 - 12288: 0xA9C4, - 12820 - 12288: 0xA9C5, - 12821 - 12288: 0xA9C6, - 12822 - 12288: 0xA9C7, - 12823 - 12288: 0xA9C8, - 12824 - 12288: 0xA9C9, - 12825 - 12288: 0xA9CA, - 12826 - 12288: 0xA9CB, - 12827 - 12288: 0xA9CC, - 12828 - 12288: 0xA2DF, - 12896 - 12288: 0xA8B1, - 12897 - 12288: 0xA8B2, - 12898 - 12288: 0xA8B3, - 12899 - 12288: 0xA8B4, - 12900 - 12288: 0xA8B5, - 12901 - 12288: 0xA8B6, - 12902 - 12288: 0xA8B7, - 12903 - 12288: 0xA8B8, - 12904 - 12288: 0xA8B9, - 12905 - 12288: 0xA8BA, - 12906 - 12288: 0xA8BB, - 12907 - 12288: 0xA8BC, - 12908 - 12288: 0xA8BD, - 12909 - 12288: 0xA8BE, - 12910 - 12288: 0xA8BF, - 12911 - 12288: 0xA8C0, - 12912 - 12288: 0xA8C1, - 12913 - 12288: 0xA8C2, - 12914 - 12288: 0xA8C3, - 12915 - 12288: 0xA8C4, - 12916 - 12288: 0xA8C5, - 12917 - 12288: 0xA8C6, - 12918 - 12288: 0xA8C7, - 12919 - 12288: 0xA8C8, - 12920 - 12288: 0xA8C9, - 12921 - 12288: 0xA8CA, - 12922 - 12288: 0xA8CB, - 12923 - 12288: 0xA8CC, - 12927 - 12288: 0xA2DE, - 13184 - 12288: 0xA7C9, - 13185 - 12288: 0xA7CA, - 13186 - 12288: 0xA7CB, - 13187 - 12288: 0xA7CC, - 13188 - 12288: 0xA7CD, - 13192 - 12288: 0xA7BA, - 13193 - 12288: 0xA7BB, - 13194 - 12288: 0xA7DC, - 13195 - 12288: 0xA7DD, - 13196 - 12288: 0xA7DE, - 13197 - 12288: 0xA7B6, - 13198 - 12288: 0xA7B7, - 13199 - 12288: 0xA7B8, - 13200 - 12288: 0xA7D4, - 13201 - 12288: 0xA7D5, - 13202 - 12288: 0xA7D6, - 13203 - 12288: 0xA7D7, - 13204 - 12288: 0xA7D8, - 13205 - 12288: 0xA7A1, - 13206 - 12288: 0xA7A2, - 13207 - 12288: 0xA7A3, - 13208 - 12288: 0xA7A5, - 13209 - 12288: 0xA7AB, - 13210 - 12288: 0xA7AC, - 13211 - 12288: 0xA7AD, - 13212 - 12288: 0xA7AE, - 13213 - 12288: 0xA7AF, - 13214 - 12288: 0xA7B0, - 13215 - 12288: 0xA7B1, - 13216 - 12288: 0xA7B2, - 13217 - 12288: 0xA7B3, - 13218 - 12288: 0xA7B4, - 13219 - 12288: 0xA7A7, - 13220 - 12288: 0xA7A8, - 13221 - 12288: 0xA7A9, - 13222 - 12288: 0xA7AA, - 13223 - 12288: 0xA7BD, - 13224 - 12288: 0xA7BE, - 13225 - 12288: 0xA7E5, - 13226 - 12288: 0xA7E6, - 13227 - 12288: 0xA7E7, - 13228 - 12288: 0xA7E8, - 13229 - 12288: 0xA7E1, - 13230 - 12288: 0xA7E2, - 13231 - 12288: 0xA7E3, - 13232 - 12288: 0xA7BF, - 13233 - 12288: 0xA7C0, - 13234 - 12288: 0xA7C1, - 13235 - 12288: 0xA7C2, - 13236 - 12288: 0xA7C3, - 13237 - 12288: 0xA7C4, - 13238 - 12288: 0xA7C5, - 13239 - 12288: 0xA7C6, - 13240 - 12288: 0xA7C7, - 13241 - 12288: 0xA7C8, - 13242 - 12288: 0xA7CE, - 13243 - 12288: 0xA7CF, - 13244 - 12288: 0xA7D0, - 13245 - 12288: 0xA7D1, - 13246 - 12288: 0xA7D2, - 13247 - 12288: 0xA7D3, - 13248 - 12288: 0xA7DA, - 13249 - 12288: 0xA7DB, - 13250 - 12288: 0xA2E3, - 13251 - 12288: 0xA7EC, - 13252 - 12288: 0xA7A6, - 13253 - 12288: 0xA7E0, - 13254 - 12288: 0xA7EF, - 13255 - 12288: 0xA2E1, - 13256 - 12288: 0xA7BC, - 13257 - 12288: 0xA7ED, - 13258 - 12288: 0xA7B5, - 13263 - 12288: 0xA7B9, - 13264 - 12288: 0xA7EA, - 13267 - 12288: 0xA7EB, - 13270 - 12288: 0xA7DF, - 13272 - 12288: 0xA2E4, - 13275 - 12288: 0xA7E4, - 13276 - 12288: 0xA7EE, - 13277 - 12288: 0xA7E9, -} - -const encode4Low, encode4High = 161, 1106 - -var encode4 = [...]uint16{ - 161 - 161: 0xA2AE, - 164 - 161: 0xA2B4, - 167 - 161: 0xA1D7, - 168 - 161: 0xA1A7, - 170 - 161: 0xA8A3, - 173 - 161: 0xA1A9, - 174 - 161: 0xA2E7, - 176 - 161: 0xA1C6, - 177 - 161: 0xA1BE, - 178 - 161: 0xA9F7, - 179 - 161: 0xA9F8, - 180 - 161: 0xA2A5, - 182 - 161: 0xA2D2, - 183 - 161: 0xA1A4, - 184 - 161: 0xA2AC, - 185 - 161: 0xA9F6, - 186 - 161: 0xA8AC, - 188 - 161: 0xA8F9, - 189 - 161: 0xA8F6, - 190 - 161: 0xA8FA, - 191 - 161: 0xA2AF, - 198 - 161: 0xA8A1, - 208 - 161: 0xA8A2, - 215 - 161: 0xA1BF, - 216 - 161: 0xA8AA, - 222 - 161: 0xA8AD, - 223 - 161: 0xA9AC, - 230 - 161: 0xA9A1, - 240 - 161: 0xA9A3, - 247 - 161: 0xA1C0, - 248 - 161: 0xA9AA, - 254 - 161: 0xA9AD, - 273 - 161: 0xA9A2, - 294 - 161: 0xA8A4, - 295 - 161: 0xA9A4, - 305 - 161: 0xA9A5, - 306 - 161: 0xA8A6, - 307 - 161: 0xA9A6, - 312 - 161: 0xA9A7, - 319 - 161: 0xA8A8, - 320 - 161: 0xA9A8, - 321 - 161: 0xA8A9, - 322 - 161: 0xA9A9, - 329 - 161: 0xA9B0, - 330 - 161: 0xA8AF, - 331 - 161: 0xA9AF, - 338 - 161: 0xA8AB, - 339 - 161: 0xA9AB, - 358 - 161: 0xA8AE, - 359 - 161: 0xA9AE, - 711 - 161: 0xA2A7, - 720 - 161: 0xA2B0, - 728 - 161: 0xA2A8, - 729 - 161: 0xA2AB, - 730 - 161: 0xA2AA, - 731 - 161: 0xA2AD, - 733 - 161: 0xA2A9, - 913 - 161: 0xA5C1, - 914 - 161: 0xA5C2, - 915 - 161: 0xA5C3, - 916 - 161: 0xA5C4, - 917 - 161: 0xA5C5, - 918 - 161: 0xA5C6, - 919 - 161: 0xA5C7, - 920 - 161: 0xA5C8, - 921 - 161: 0xA5C9, - 922 - 161: 0xA5CA, - 923 - 161: 0xA5CB, - 924 - 161: 0xA5CC, - 925 - 161: 0xA5CD, - 926 - 161: 0xA5CE, - 927 - 161: 0xA5CF, - 928 - 161: 0xA5D0, - 929 - 161: 0xA5D1, - 931 - 161: 0xA5D2, - 932 - 161: 0xA5D3, - 933 - 161: 0xA5D4, - 934 - 161: 0xA5D5, - 935 - 161: 0xA5D6, - 936 - 161: 0xA5D7, - 937 - 161: 0xA5D8, - 945 - 161: 0xA5E1, - 946 - 161: 0xA5E2, - 947 - 161: 0xA5E3, - 948 - 161: 0xA5E4, - 949 - 161: 0xA5E5, - 950 - 161: 0xA5E6, - 951 - 161: 0xA5E7, - 952 - 161: 0xA5E8, - 953 - 161: 0xA5E9, - 954 - 161: 0xA5EA, - 955 - 161: 0xA5EB, - 956 - 161: 0xA5EC, - 957 - 161: 0xA5ED, - 958 - 161: 0xA5EE, - 959 - 161: 0xA5EF, - 960 - 161: 0xA5F0, - 961 - 161: 0xA5F1, - 963 - 161: 0xA5F2, - 964 - 161: 0xA5F3, - 965 - 161: 0xA5F4, - 966 - 161: 0xA5F5, - 967 - 161: 0xA5F6, - 968 - 161: 0xA5F7, - 969 - 161: 0xA5F8, - 1025 - 161: 0xACA7, - 1040 - 161: 0xACA1, - 1041 - 161: 0xACA2, - 1042 - 161: 0xACA3, - 1043 - 161: 0xACA4, - 1044 - 161: 0xACA5, - 1045 - 161: 0xACA6, - 1046 - 161: 0xACA8, - 1047 - 161: 0xACA9, - 1048 - 161: 0xACAA, - 1049 - 161: 0xACAB, - 1050 - 161: 0xACAC, - 1051 - 161: 0xACAD, - 1052 - 161: 0xACAE, - 1053 - 161: 0xACAF, - 1054 - 161: 0xACB0, - 1055 - 161: 0xACB1, - 1056 - 161: 0xACB2, - 1057 - 161: 0xACB3, - 1058 - 161: 0xACB4, - 1059 - 161: 0xACB5, - 1060 - 161: 0xACB6, - 1061 - 161: 0xACB7, - 1062 - 161: 0xACB8, - 1063 - 161: 0xACB9, - 1064 - 161: 0xACBA, - 1065 - 161: 0xACBB, - 1066 - 161: 0xACBC, - 1067 - 161: 0xACBD, - 1068 - 161: 0xACBE, - 1069 - 161: 0xACBF, - 1070 - 161: 0xACC0, - 1071 - 161: 0xACC1, - 1072 - 161: 0xACD1, - 1073 - 161: 0xACD2, - 1074 - 161: 0xACD3, - 1075 - 161: 0xACD4, - 1076 - 161: 0xACD5, - 1077 - 161: 0xACD6, - 1078 - 161: 0xACD8, - 1079 - 161: 0xACD9, - 1080 - 161: 0xACDA, - 1081 - 161: 0xACDB, - 1082 - 161: 0xACDC, - 1083 - 161: 0xACDD, - 1084 - 161: 0xACDE, - 1085 - 161: 0xACDF, - 1086 - 161: 0xACE0, - 1087 - 161: 0xACE1, - 1088 - 161: 0xACE2, - 1089 - 161: 0xACE3, - 1090 - 161: 0xACE4, - 1091 - 161: 0xACE5, - 1092 - 161: 0xACE6, - 1093 - 161: 0xACE7, - 1094 - 161: 0xACE8, - 1095 - 161: 0xACE9, - 1096 - 161: 0xACEA, - 1097 - 161: 0xACEB, - 1098 - 161: 0xACEC, - 1099 - 161: 0xACED, - 1100 - 161: 0xACEE, - 1101 - 161: 0xACEF, - 1102 - 161: 0xACF0, - 1103 - 161: 0xACF1, - 1105 - 161: 0xACD7, -} - -const encode5Low, encode5High = 63744, 64012 - -var encode5 = [...]uint16{ - 63744 - 63744: 0xCBD0, - 63745 - 63744: 0xCBD6, - 63746 - 63744: 0xCBE7, - 63747 - 63744: 0xCDCF, - 63748 - 63744: 0xCDE8, - 63749 - 63744: 0xCEAD, - 63750 - 63744: 0xCFFB, - 63751 - 63744: 0xD0A2, - 63752 - 63744: 0xD0B8, - 63753 - 63744: 0xD0D0, - 63754 - 63744: 0xD0DD, - 63755 - 63744: 0xD1D4, - 63756 - 63744: 0xD1D5, - 63757 - 63744: 0xD1D8, - 63758 - 63744: 0xD1DB, - 63759 - 63744: 0xD1DC, - 63760 - 63744: 0xD1DD, - 63761 - 63744: 0xD1DE, - 63762 - 63744: 0xD1DF, - 63763 - 63744: 0xD1E0, - 63764 - 63744: 0xD1E2, - 63765 - 63744: 0xD1E3, - 63766 - 63744: 0xD1E4, - 63767 - 63744: 0xD1E5, - 63768 - 63744: 0xD1E6, - 63769 - 63744: 0xD1E8, - 63770 - 63744: 0xD1E9, - 63771 - 63744: 0xD1EA, - 63772 - 63744: 0xD1EB, - 63773 - 63744: 0xD1ED, - 63774 - 63744: 0xD1EF, - 63775 - 63744: 0xD1F0, - 63776 - 63744: 0xD1F2, - 63777 - 63744: 0xD1F6, - 63778 - 63744: 0xD1FA, - 63779 - 63744: 0xD1FC, - 63780 - 63744: 0xD1FD, - 63781 - 63744: 0xD1FE, - 63782 - 63744: 0xD2A2, - 63783 - 63744: 0xD2A3, - 63784 - 63744: 0xD2A7, - 63785 - 63744: 0xD2A8, - 63786 - 63744: 0xD2A9, - 63787 - 63744: 0xD2AA, - 63788 - 63744: 0xD2AB, - 63789 - 63744: 0xD2AD, - 63790 - 63744: 0xD2B2, - 63791 - 63744: 0xD2BE, - 63792 - 63744: 0xD2C2, - 63793 - 63744: 0xD2C3, - 63794 - 63744: 0xD2C4, - 63795 - 63744: 0xD2C6, - 63796 - 63744: 0xD2C7, - 63797 - 63744: 0xD2C8, - 63798 - 63744: 0xD2C9, - 63799 - 63744: 0xD2CA, - 63800 - 63744: 0xD2CB, - 63801 - 63744: 0xD2CD, - 63802 - 63744: 0xD2CE, - 63803 - 63744: 0xD2CF, - 63804 - 63744: 0xD2D0, - 63805 - 63744: 0xD2D1, - 63806 - 63744: 0xD2D2, - 63807 - 63744: 0xD2D3, - 63808 - 63744: 0xD2D4, - 63809 - 63744: 0xD2D5, - 63810 - 63744: 0xD2D6, - 63811 - 63744: 0xD2D7, - 63812 - 63744: 0xD2D9, - 63813 - 63744: 0xD2DA, - 63814 - 63744: 0xD2DE, - 63815 - 63744: 0xD2DF, - 63816 - 63744: 0xD2E1, - 63817 - 63744: 0xD2E2, - 63818 - 63744: 0xD2E4, - 63819 - 63744: 0xD2E5, - 63820 - 63744: 0xD2E6, - 63821 - 63744: 0xD2E7, - 63822 - 63744: 0xD2E8, - 63823 - 63744: 0xD2E9, - 63824 - 63744: 0xD2EA, - 63825 - 63744: 0xD2EB, - 63826 - 63744: 0xD2F0, - 63827 - 63744: 0xD2F1, - 63828 - 63744: 0xD2F2, - 63829 - 63744: 0xD2F3, - 63830 - 63744: 0xD2F4, - 63831 - 63744: 0xD2F5, - 63832 - 63744: 0xD2F7, - 63833 - 63744: 0xD2F8, - 63834 - 63744: 0xD4E6, - 63835 - 63744: 0xD4FC, - 63836 - 63744: 0xD5A5, - 63837 - 63744: 0xD5AB, - 63838 - 63744: 0xD5AE, - 63839 - 63744: 0xD6B8, - 63840 - 63744: 0xD6CD, - 63841 - 63744: 0xD7CB, - 63842 - 63744: 0xD7E4, - 63843 - 63744: 0xDBC5, - 63844 - 63744: 0xDBE4, - 63845 - 63744: 0xDCA5, - 63846 - 63744: 0xDDA5, - 63847 - 63744: 0xDDD5, - 63848 - 63744: 0xDDF4, - 63849 - 63744: 0xDEFC, - 63850 - 63744: 0xDEFE, - 63851 - 63744: 0xDFB3, - 63852 - 63744: 0xDFE1, - 63853 - 63744: 0xDFE8, - 63854 - 63744: 0xE0F1, - 63855 - 63744: 0xE1AD, - 63856 - 63744: 0xE1ED, - 63857 - 63744: 0xE3F5, - 63858 - 63744: 0xE4A1, - 63859 - 63744: 0xE4A9, - 63860 - 63744: 0xE5AE, - 63861 - 63744: 0xE5B1, - 63862 - 63744: 0xE5B2, - 63863 - 63744: 0xE5B9, - 63864 - 63744: 0xE5BB, - 63865 - 63744: 0xE5BC, - 63866 - 63744: 0xE5C4, - 63867 - 63744: 0xE5CE, - 63868 - 63744: 0xE5D0, - 63869 - 63744: 0xE5D2, - 63870 - 63744: 0xE5D6, - 63871 - 63744: 0xE5FA, - 63872 - 63744: 0xE5FB, - 63873 - 63744: 0xE5FC, - 63874 - 63744: 0xE5FE, - 63875 - 63744: 0xE6A1, - 63876 - 63744: 0xE6A4, - 63877 - 63744: 0xE6A7, - 63878 - 63744: 0xE6AD, - 63879 - 63744: 0xE6AF, - 63880 - 63744: 0xE6B0, - 63881 - 63744: 0xE6B1, - 63882 - 63744: 0xE6B3, - 63883 - 63744: 0xE6B7, - 63884 - 63744: 0xE6B8, - 63885 - 63744: 0xE6BC, - 63886 - 63744: 0xE6C4, - 63887 - 63744: 0xE6C6, - 63888 - 63744: 0xE6C7, - 63889 - 63744: 0xE6CA, - 63890 - 63744: 0xE6D2, - 63891 - 63744: 0xE6D6, - 63892 - 63744: 0xE6D9, - 63893 - 63744: 0xE6DC, - 63894 - 63744: 0xE6DF, - 63895 - 63744: 0xE6E1, - 63896 - 63744: 0xE6E4, - 63897 - 63744: 0xE6E5, - 63898 - 63744: 0xE6E6, - 63899 - 63744: 0xE6E8, - 63900 - 63744: 0xE6EA, - 63901 - 63744: 0xE6EB, - 63902 - 63744: 0xE6EC, - 63903 - 63744: 0xE6EF, - 63904 - 63744: 0xE6F1, - 63905 - 63744: 0xE6F2, - 63906 - 63744: 0xE6F5, - 63907 - 63744: 0xE6F6, - 63908 - 63744: 0xE6F7, - 63909 - 63744: 0xE6F9, - 63910 - 63744: 0xE7A1, - 63911 - 63744: 0xE7A6, - 63912 - 63744: 0xE7A9, - 63913 - 63744: 0xE7AA, - 63914 - 63744: 0xE7AC, - 63915 - 63744: 0xE7AD, - 63916 - 63744: 0xE7B0, - 63917 - 63744: 0xE7BF, - 63918 - 63744: 0xE7C1, - 63919 - 63744: 0xE7C6, - 63920 - 63744: 0xE7C7, - 63921 - 63744: 0xE7CB, - 63922 - 63744: 0xE7CD, - 63923 - 63744: 0xE7CF, - 63924 - 63744: 0xE7D0, - 63925 - 63744: 0xE7D3, - 63926 - 63744: 0xE7DF, - 63927 - 63744: 0xE7E4, - 63928 - 63744: 0xE7E6, - 63929 - 63744: 0xE7F7, - 63930 - 63744: 0xE8E7, - 63931 - 63744: 0xE8E8, - 63932 - 63744: 0xE8F0, - 63933 - 63744: 0xE8F1, - 63934 - 63744: 0xE8F7, - 63935 - 63744: 0xE8F9, - 63936 - 63744: 0xE8FB, - 63937 - 63744: 0xE8FE, - 63938 - 63744: 0xE9A7, - 63939 - 63744: 0xE9AC, - 63940 - 63744: 0xE9CC, - 63941 - 63744: 0xE9F7, - 63942 - 63744: 0xEAC1, - 63943 - 63744: 0xEAE5, - 63944 - 63744: 0xEAF4, - 63945 - 63744: 0xEAF7, - 63946 - 63744: 0xEAFC, - 63947 - 63744: 0xEAFE, - 63948 - 63744: 0xEBA4, - 63949 - 63744: 0xEBA7, - 63950 - 63744: 0xEBA9, - 63951 - 63744: 0xEBAA, - 63952 - 63744: 0xEBBA, - 63953 - 63744: 0xEBBB, - 63954 - 63744: 0xEBBD, - 63955 - 63744: 0xEBC1, - 63956 - 63744: 0xEBC2, - 63957 - 63744: 0xEBC6, - 63958 - 63744: 0xEBC7, - 63959 - 63744: 0xEBCC, - 63960 - 63744: 0xEBCF, - 63961 - 63744: 0xEBD0, - 63962 - 63744: 0xEBD1, - 63963 - 63744: 0xEBD2, - 63964 - 63744: 0xEBD8, - 63965 - 63744: 0xECA6, - 63966 - 63744: 0xECA7, - 63967 - 63744: 0xECAA, - 63968 - 63744: 0xECAF, - 63969 - 63744: 0xECB0, - 63970 - 63744: 0xECB1, - 63971 - 63744: 0xECB2, - 63972 - 63744: 0xECB5, - 63973 - 63744: 0xECB8, - 63974 - 63744: 0xECBA, - 63975 - 63744: 0xECC0, - 63976 - 63744: 0xECC1, - 63977 - 63744: 0xECC5, - 63978 - 63744: 0xECC6, - 63979 - 63744: 0xECC9, - 63980 - 63744: 0xECCA, - 63981 - 63744: 0xECD5, - 63982 - 63744: 0xECDD, - 63983 - 63744: 0xECDE, - 63984 - 63744: 0xECE1, - 63985 - 63744: 0xECE4, - 63986 - 63744: 0xECE7, - 63987 - 63744: 0xECE8, - 63988 - 63744: 0xECF7, - 63989 - 63744: 0xECF8, - 63990 - 63744: 0xECFA, - 63991 - 63744: 0xEDA1, - 63992 - 63744: 0xEDA2, - 63993 - 63744: 0xEDA3, - 63994 - 63744: 0xEDEE, - 63995 - 63744: 0xEEDB, - 63996 - 63744: 0xF2BD, - 63997 - 63744: 0xF2FA, - 63998 - 63744: 0xF3B1, - 63999 - 63744: 0xF4A7, - 64000 - 63744: 0xF4EE, - 64001 - 63744: 0xF6F4, - 64002 - 63744: 0xF6F6, - 64003 - 63744: 0xF7B8, - 64004 - 63744: 0xF7C8, - 64005 - 63744: 0xF7D3, - 64006 - 63744: 0xF8DB, - 64007 - 63744: 0xF8F0, - 64008 - 63744: 0xFAA1, - 64009 - 63744: 0xFAA2, - 64010 - 63744: 0xFAE6, - 64011 - 63744: 0xFCA9, -} - -const encode6Low, encode6High = 65281, 65511 - -var encode6 = [...]uint16{ - 65281 - 65281: 0xA3A1, - 65282 - 65281: 0xA3A2, - 65283 - 65281: 0xA3A3, - 65284 - 65281: 0xA3A4, - 65285 - 65281: 0xA3A5, - 65286 - 65281: 0xA3A6, - 65287 - 65281: 0xA3A7, - 65288 - 65281: 0xA3A8, - 65289 - 65281: 0xA3A9, - 65290 - 65281: 0xA3AA, - 65291 - 65281: 0xA3AB, - 65292 - 65281: 0xA3AC, - 65293 - 65281: 0xA3AD, - 65294 - 65281: 0xA3AE, - 65295 - 65281: 0xA3AF, - 65296 - 65281: 0xA3B0, - 65297 - 65281: 0xA3B1, - 65298 - 65281: 0xA3B2, - 65299 - 65281: 0xA3B3, - 65300 - 65281: 0xA3B4, - 65301 - 65281: 0xA3B5, - 65302 - 65281: 0xA3B6, - 65303 - 65281: 0xA3B7, - 65304 - 65281: 0xA3B8, - 65305 - 65281: 0xA3B9, - 65306 - 65281: 0xA3BA, - 65307 - 65281: 0xA3BB, - 65308 - 65281: 0xA3BC, - 65309 - 65281: 0xA3BD, - 65310 - 65281: 0xA3BE, - 65311 - 65281: 0xA3BF, - 65312 - 65281: 0xA3C0, - 65313 - 65281: 0xA3C1, - 65314 - 65281: 0xA3C2, - 65315 - 65281: 0xA3C3, - 65316 - 65281: 0xA3C4, - 65317 - 65281: 0xA3C5, - 65318 - 65281: 0xA3C6, - 65319 - 65281: 0xA3C7, - 65320 - 65281: 0xA3C8, - 65321 - 65281: 0xA3C9, - 65322 - 65281: 0xA3CA, - 65323 - 65281: 0xA3CB, - 65324 - 65281: 0xA3CC, - 65325 - 65281: 0xA3CD, - 65326 - 65281: 0xA3CE, - 65327 - 65281: 0xA3CF, - 65328 - 65281: 0xA3D0, - 65329 - 65281: 0xA3D1, - 65330 - 65281: 0xA3D2, - 65331 - 65281: 0xA3D3, - 65332 - 65281: 0xA3D4, - 65333 - 65281: 0xA3D5, - 65334 - 65281: 0xA3D6, - 65335 - 65281: 0xA3D7, - 65336 - 65281: 0xA3D8, - 65337 - 65281: 0xA3D9, - 65338 - 65281: 0xA3DA, - 65339 - 65281: 0xA3DB, - 65340 - 65281: 0xA1AC, - 65341 - 65281: 0xA3DD, - 65342 - 65281: 0xA3DE, - 65343 - 65281: 0xA3DF, - 65344 - 65281: 0xA3E0, - 65345 - 65281: 0xA3E1, - 65346 - 65281: 0xA3E2, - 65347 - 65281: 0xA3E3, - 65348 - 65281: 0xA3E4, - 65349 - 65281: 0xA3E5, - 65350 - 65281: 0xA3E6, - 65351 - 65281: 0xA3E7, - 65352 - 65281: 0xA3E8, - 65353 - 65281: 0xA3E9, - 65354 - 65281: 0xA3EA, - 65355 - 65281: 0xA3EB, - 65356 - 65281: 0xA3EC, - 65357 - 65281: 0xA3ED, - 65358 - 65281: 0xA3EE, - 65359 - 65281: 0xA3EF, - 65360 - 65281: 0xA3F0, - 65361 - 65281: 0xA3F1, - 65362 - 65281: 0xA3F2, - 65363 - 65281: 0xA3F3, - 65364 - 65281: 0xA3F4, - 65365 - 65281: 0xA3F5, - 65366 - 65281: 0xA3F6, - 65367 - 65281: 0xA3F7, - 65368 - 65281: 0xA3F8, - 65369 - 65281: 0xA3F9, - 65370 - 65281: 0xA3FA, - 65371 - 65281: 0xA3FB, - 65372 - 65281: 0xA3FC, - 65373 - 65281: 0xA3FD, - 65374 - 65281: 0xA2A6, - 65504 - 65281: 0xA1CB, - 65505 - 65281: 0xA1CC, - 65506 - 65281: 0xA1FE, - 65507 - 65281: 0xA3FE, - 65509 - 65281: 0xA1CD, - 65510 - 65281: 0xA3DC, -} diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go deleted file mode 100644 index 5ecc526cf8..0000000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package simplifiedchinese - -import ( - "golang.org/x/text/encoding" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{GB18030, GBK, HZGB2312} diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go deleted file mode 100644 index 0e0fabfd6b..0000000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go +++ /dev/null @@ -1,273 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package simplifiedchinese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -var ( - // GB18030 is the GB18030 encoding. - GB18030 encoding.Encoding = &gbk18030 - // GBK is the GBK encoding. It encodes an extension of the GB2312 character set - // and is also known as Code Page 936. - GBK encoding.Encoding = &gbk -) - -var gbk = internal.Encoding{ - &internal.SimpleEncoding{ - gbkDecoder{gb18030: false}, - gbkEncoder{gb18030: false}, - }, - "GBK", - identifier.GBK, -} - -var gbk18030 = internal.Encoding{ - &internal.SimpleEncoding{ - gbkDecoder{gb18030: true}, - gbkEncoder{gb18030: true}, - }, - "GB18030", - identifier.GB18030, -} - -type gbkDecoder struct { - transform.NopResetter - gb18030 bool -} - -func (d gbkDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC - // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk - // says to treat "gbk" as Code Page 936. - // GBK’s decoder is gb18030’s decoder. https://encoding.spec.whatwg.org/#gbk-decoder - // If byte is 0x80, return code point U+20AC. https://encoding.spec.whatwg.org/#gb18030-decoder - case c0 == 0x80: - r, size = '€', 1 - - case c0 < 0xff: - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - goto write - } - c1 := src[nSrc+1] - switch { - case 0x40 <= c1 && c1 < 0x7f: - c1 -= 0x40 - case 0x80 <= c1 && c1 < 0xff: - c1 -= 0x41 - case d.gb18030 && 0x30 <= c1 && c1 < 0x40: - if nSrc+3 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - // The second byte here is always ASCII, so we can set size - // to 1 in all cases. - r, size = utf8.RuneError, 1 - goto write - } - c2 := src[nSrc+2] - if c2 < 0x81 || 0xff <= c2 { - r, size = utf8.RuneError, 1 - goto write - } - c3 := src[nSrc+3] - if c3 < 0x30 || 0x3a <= c3 { - r, size = utf8.RuneError, 1 - goto write - } - size = 4 - r = ((rune(c0-0x81)*10+rune(c1-0x30))*126+rune(c2-0x81))*10 + rune(c3-0x30) - if r < 39420 { - i, j := 0, len(gb18030) - for i < j { - h := i + (j-i)/2 - if r >= rune(gb18030[h][0]) { - i = h + 1 - } else { - j = h - } - } - dec := &gb18030[i-1] - r += rune(dec[1]) - rune(dec[0]) - goto write - } - r -= 189000 - if 0 <= r && r < 0x100000 { - r += 0x10000 - } else { - r, size = utf8.RuneError, 1 - } - goto write - default: - r, size = utf8.RuneError, 1 - goto write - } - r, size = '\ufffd', 2 - if i := int(c0-0x81)*190 + int(c1); i < len(decode) { - r = rune(decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - r, size = utf8.RuneError, 1 - } - - write: - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type gbkEncoder struct { - transform.NopResetter - gb18030 bool -} - -func (e gbkEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, r2, size := rune(0), rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r2 = rune(encode0[r-encode0Low]); r2 != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC - // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk - // says to treat "gbk" as Code Page 936. - // GBK’s encoder is gb18030’s encoder with its _is GBK_ set to true. https://encoding.spec.whatwg.org/#gbk-encoder - // If _is GBK_ is true and code point is U+20AC, return byte 0x80. https://encoding.spec.whatwg.org/#gb18030-encoder - if !e.gb18030 && r == '€' { - r = 0x80 - goto write1 - } - if r2 = rune(encode1[r-encode1Low]); r2 != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r2 = rune(encode2[r-encode2Low]); r2 != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r2 = rune(encode3[r-encode3Low]); r2 != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r2 = rune(encode4[r-encode4Low]); r2 != 0 { - goto write2 - } - } - - if e.gb18030 { - if r < 0x10000 { - i, j := 0, len(gb18030) - for i < j { - h := i + (j-i)/2 - if r >= rune(gb18030[h][1]) { - i = h + 1 - } else { - j = h - } - } - dec := &gb18030[i-1] - r += rune(dec[0]) - rune(dec[1]) - goto write4 - } else if r < 0x110000 { - r += 189000 - 0x10000 - goto write4 - } - } - err = internal.ErrASCIIReplacement - break - } - - write1: - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r2 >> 8) - dst[nDst+1] = uint8(r2) - nDst += 2 - continue - - write4: - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+3] = uint8(r%10 + 0x30) - r /= 10 - dst[nDst+2] = uint8(r%126 + 0x81) - r /= 126 - dst[nDst+1] = uint8(r%10 + 0x30) - r /= 10 - dst[nDst+0] = uint8(r + 0x81) - nDst += 4 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 5 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go deleted file mode 100644 index e15b7bf6a7..0000000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go +++ /dev/null @@ -1,245 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package simplifiedchinese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// HZGB2312 is the HZ-GB2312 encoding. -var HZGB2312 encoding.Encoding = &hzGB2312 - -var hzGB2312 = internal.Encoding{ - internal.FuncEncoding{hzGB2312NewDecoder, hzGB2312NewEncoder}, - "HZ-GB2312", - identifier.HZGB2312, -} - -func hzGB2312NewDecoder() transform.Transformer { - return new(hzGB2312Decoder) -} - -func hzGB2312NewEncoder() transform.Transformer { - return new(hzGB2312Encoder) -} - -const ( - asciiState = iota - gbState -) - -type hzGB2312Decoder int - -func (d *hzGB2312Decoder) Reset() { - *d = asciiState -} - -func (d *hzGB2312Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 -loop: - for ; nSrc < len(src); nSrc += size { - c0 := src[nSrc] - if c0 >= utf8.RuneSelf { - r, size = utf8.RuneError, 1 - goto write - } - - if c0 == '~' { - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - goto write - } - size = 2 - switch src[nSrc+1] { - case '{': - *d = gbState - continue - case '}': - *d = asciiState - continue - case '~': - if nDst >= len(dst) { - err = transform.ErrShortDst - break loop - } - dst[nDst] = '~' - nDst++ - continue - case '\n': - continue - default: - r = utf8.RuneError - goto write - } - } - - if *d == asciiState { - r, size = rune(c0), 1 - } else { - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - goto write - } - size = 2 - c1 := src[nSrc+1] - if c0 < 0x21 || 0x7e <= c0 || c1 < 0x21 || 0x7f <= c1 { - // error - } else if i := int(c0-0x01)*190 + int(c1+0x3f); i < len(decode) { - r = rune(decode[i]) - if r != 0 { - goto write - } - } - if c1 > utf8.RuneSelf { - // Be consistent and always treat non-ASCII as a single error. - size = 1 - } - r = utf8.RuneError - } - - write: - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - } - return nDst, nSrc, err -} - -type hzGB2312Encoder int - -func (d *hzGB2312Encoder) Reset() { - *d = asciiState -} - -func (e *hzGB2312Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - if r == '~' { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = '~' - dst[nDst+1] = '~' - nDst += 2 - continue - } else if *e != asciiState { - if nDst+3 > len(dst) { - err = transform.ErrShortDst - break - } - *e = asciiState - dst[nDst+0] = '~' - dst[nDst+1] = '}' - nDst += 2 - } else if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst += 1 - continue - - } - - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto writeGB - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto writeGB - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto writeGB - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto writeGB - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto writeGB - } - } - - terminateInASCIIState: - // Switch back to ASCII state in case of error so that an ASCII - // replacement character can be written in the correct state. - if *e != asciiState { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = '~' - dst[nDst+1] = '}' - nDst += 2 - } - err = internal.ErrASCIIReplacement - break - - writeGB: - c0 := uint8(r>>8) - 0x80 - c1 := uint8(r) - 0x80 - if c0 < 0x21 || 0x7e <= c0 || c1 < 0x21 || 0x7f <= c1 { - goto terminateInASCIIState - } - if *e == asciiState { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - *e = gbState - dst[nDst+0] = '~' - dst[nDst+1] = '{' - nDst += 2 - } else if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = c0 - dst[nDst+1] = c1 - nDst += 2 - continue - } - // TODO: should one always terminate in ASCII state to make it safe to - // concatenate two HZ-GB2312-encoded strings? - return nDst, nSrc, err -} diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go deleted file mode 100644 index 415f52a111..0000000000 --- a/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go +++ /dev/null @@ -1,43999 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package simplifiedchinese provides Simplified Chinese encodings such as GBK. -package simplifiedchinese // import "golang.org/x/text/encoding/simplifiedchinese" - -// gb18030 is the table from http://encoding.spec.whatwg.org/index-gb18030.txt -var gb18030 = [...][2]uint16{ - {0x0000, 0x0080}, - {0x0024, 0x00a5}, - {0x0026, 0x00a9}, - {0x002d, 0x00b2}, - {0x0032, 0x00b8}, - {0x0051, 0x00d8}, - {0x0059, 0x00e2}, - {0x005f, 0x00eb}, - {0x0060, 0x00ee}, - {0x0064, 0x00f4}, - {0x0067, 0x00f8}, - {0x0068, 0x00fb}, - {0x0069, 0x00fd}, - {0x006d, 0x0102}, - {0x007e, 0x0114}, - {0x0085, 0x011c}, - {0x0094, 0x012c}, - {0x00ac, 0x0145}, - {0x00af, 0x0149}, - {0x00b3, 0x014e}, - {0x00d0, 0x016c}, - {0x0132, 0x01cf}, - {0x0133, 0x01d1}, - {0x0134, 0x01d3}, - {0x0135, 0x01d5}, - {0x0136, 0x01d7}, - {0x0137, 0x01d9}, - {0x0138, 0x01db}, - {0x0139, 0x01dd}, - {0x0155, 0x01fa}, - {0x01ac, 0x0252}, - {0x01bb, 0x0262}, - {0x0220, 0x02c8}, - {0x0221, 0x02cc}, - {0x022e, 0x02da}, - {0x02e5, 0x03a2}, - {0x02e6, 0x03aa}, - {0x02ed, 0x03c2}, - {0x02ee, 0x03ca}, - {0x0325, 0x0402}, - {0x0333, 0x0450}, - {0x0334, 0x0452}, - {0x1ef2, 0x2011}, - {0x1ef4, 0x2017}, - {0x1ef5, 0x201a}, - {0x1ef7, 0x201e}, - {0x1efe, 0x2027}, - {0x1f07, 0x2031}, - {0x1f08, 0x2034}, - {0x1f09, 0x2036}, - {0x1f0e, 0x203c}, - {0x1f7e, 0x20ad}, - {0x1fd4, 0x2104}, - {0x1fd5, 0x2106}, - {0x1fd8, 0x210a}, - {0x1fe4, 0x2117}, - {0x1fee, 0x2122}, - {0x202c, 0x216c}, - {0x2030, 0x217a}, - {0x2046, 0x2194}, - {0x2048, 0x219a}, - {0x20b6, 0x2209}, - {0x20bc, 0x2210}, - {0x20bd, 0x2212}, - {0x20c0, 0x2216}, - {0x20c4, 0x221b}, - {0x20c6, 0x2221}, - {0x20c8, 0x2224}, - {0x20c9, 0x2226}, - {0x20ca, 0x222c}, - {0x20cc, 0x222f}, - {0x20d1, 0x2238}, - {0x20d6, 0x223e}, - {0x20e0, 0x2249}, - {0x20e3, 0x224d}, - {0x20e8, 0x2253}, - {0x20f5, 0x2262}, - {0x20f7, 0x2268}, - {0x20fd, 0x2270}, - {0x2122, 0x2296}, - {0x2125, 0x229a}, - {0x2130, 0x22a6}, - {0x2149, 0x22c0}, - {0x219b, 0x2313}, - {0x22e8, 0x246a}, - {0x22f2, 0x249c}, - {0x2356, 0x254c}, - {0x235a, 0x2574}, - {0x2367, 0x2590}, - {0x236a, 0x2596}, - {0x2374, 0x25a2}, - {0x2384, 0x25b4}, - {0x238c, 0x25be}, - {0x2394, 0x25c8}, - {0x2397, 0x25cc}, - {0x2399, 0x25d0}, - {0x23ab, 0x25e6}, - {0x23ca, 0x2607}, - {0x23cc, 0x260a}, - {0x2402, 0x2641}, - {0x2403, 0x2643}, - {0x2c41, 0x2e82}, - {0x2c43, 0x2e85}, - {0x2c46, 0x2e89}, - {0x2c48, 0x2e8d}, - {0x2c52, 0x2e98}, - {0x2c61, 0x2ea8}, - {0x2c63, 0x2eab}, - {0x2c66, 0x2eaf}, - {0x2c6a, 0x2eb4}, - {0x2c6c, 0x2eb8}, - {0x2c6f, 0x2ebc}, - {0x2c7d, 0x2ecb}, - {0x2da2, 0x2ffc}, - {0x2da6, 0x3004}, - {0x2da7, 0x3018}, - {0x2dac, 0x301f}, - {0x2dae, 0x302a}, - {0x2dc2, 0x303f}, - {0x2dc4, 0x3094}, - {0x2dcb, 0x309f}, - {0x2dcd, 0x30f7}, - {0x2dd2, 0x30ff}, - {0x2dd8, 0x312a}, - {0x2ece, 0x322a}, - {0x2ed5, 0x3232}, - {0x2f46, 0x32a4}, - {0x3030, 0x3390}, - {0x303c, 0x339f}, - {0x303e, 0x33a2}, - {0x3060, 0x33c5}, - {0x3069, 0x33cf}, - {0x306b, 0x33d3}, - {0x306d, 0x33d6}, - {0x30de, 0x3448}, - {0x3109, 0x3474}, - {0x3233, 0x359f}, - {0x32a2, 0x360f}, - {0x32ad, 0x361b}, - {0x35aa, 0x3919}, - {0x35ff, 0x396f}, - {0x365f, 0x39d1}, - {0x366d, 0x39e0}, - {0x3700, 0x3a74}, - {0x37da, 0x3b4f}, - {0x38f9, 0x3c6f}, - {0x396a, 0x3ce1}, - {0x3cdf, 0x4057}, - {0x3de7, 0x4160}, - {0x3fbe, 0x4338}, - {0x4032, 0x43ad}, - {0x4036, 0x43b2}, - {0x4061, 0x43de}, - {0x4159, 0x44d7}, - {0x42ce, 0x464d}, - {0x42e2, 0x4662}, - {0x43a3, 0x4724}, - {0x43a8, 0x472a}, - {0x43fa, 0x477d}, - {0x440a, 0x478e}, - {0x45c3, 0x4948}, - {0x45f5, 0x497b}, - {0x45f7, 0x497e}, - {0x45fb, 0x4984}, - {0x45fc, 0x4987}, - {0x4610, 0x499c}, - {0x4613, 0x49a0}, - {0x4629, 0x49b8}, - {0x48e8, 0x4c78}, - {0x490f, 0x4ca4}, - {0x497e, 0x4d1a}, - {0x4a12, 0x4daf}, - {0x4a63, 0x9fa6}, - {0x82bd, 0xe76c}, - {0x82be, 0xe7c8}, - {0x82bf, 0xe7e7}, - {0x82cc, 0xe815}, - {0x82cd, 0xe819}, - {0x82d2, 0xe81f}, - {0x82d9, 0xe827}, - {0x82dd, 0xe82d}, - {0x82e1, 0xe833}, - {0x82e9, 0xe83c}, - {0x82f0, 0xe844}, - {0x8300, 0xe856}, - {0x830e, 0xe865}, - {0x93d5, 0xf92d}, - {0x9421, 0xf97a}, - {0x943c, 0xf996}, - {0x948d, 0xf9e8}, - {0x9496, 0xf9f2}, - {0x94b0, 0xfa10}, - {0x94b1, 0xfa12}, - {0x94b2, 0xfa15}, - {0x94b5, 0xfa19}, - {0x94bb, 0xfa22}, - {0x94bc, 0xfa25}, - {0x94be, 0xfa2a}, - {0x98c4, 0xfe32}, - {0x98c5, 0xfe45}, - {0x98c9, 0xfe53}, - {0x98ca, 0xfe58}, - {0x98cb, 0xfe67}, - {0x98cc, 0xfe6c}, - {0x9961, 0xff5f}, - {0x99e2, 0xffe6}, -} - -// decode is the decoding table from GBK code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-gbk.txt -var decode = [...]uint16{ - 0: 0x4E02, - 1: 0x4E04, - 2: 0x4E05, - 3: 0x4E06, - 4: 0x4E0F, - 5: 0x4E12, - 6: 0x4E17, - 7: 0x4E1F, - 8: 0x4E20, - 9: 0x4E21, - 10: 0x4E23, - 11: 0x4E26, - 12: 0x4E29, - 13: 0x4E2E, - 14: 0x4E2F, - 15: 0x4E31, - 16: 0x4E33, - 17: 0x4E35, - 18: 0x4E37, - 19: 0x4E3C, - 20: 0x4E40, - 21: 0x4E41, - 22: 0x4E42, - 23: 0x4E44, - 24: 0x4E46, - 25: 0x4E4A, - 26: 0x4E51, - 27: 0x4E55, - 28: 0x4E57, - 29: 0x4E5A, - 30: 0x4E5B, - 31: 0x4E62, - 32: 0x4E63, - 33: 0x4E64, - 34: 0x4E65, - 35: 0x4E67, - 36: 0x4E68, - 37: 0x4E6A, - 38: 0x4E6B, - 39: 0x4E6C, - 40: 0x4E6D, - 41: 0x4E6E, - 42: 0x4E6F, - 43: 0x4E72, - 44: 0x4E74, - 45: 0x4E75, - 46: 0x4E76, - 47: 0x4E77, - 48: 0x4E78, - 49: 0x4E79, - 50: 0x4E7A, - 51: 0x4E7B, - 52: 0x4E7C, - 53: 0x4E7D, - 54: 0x4E7F, - 55: 0x4E80, - 56: 0x4E81, - 57: 0x4E82, - 58: 0x4E83, - 59: 0x4E84, - 60: 0x4E85, - 61: 0x4E87, - 62: 0x4E8A, - 63: 0x4E90, - 64: 0x4E96, - 65: 0x4E97, - 66: 0x4E99, - 67: 0x4E9C, - 68: 0x4E9D, - 69: 0x4E9E, - 70: 0x4EA3, - 71: 0x4EAA, - 72: 0x4EAF, - 73: 0x4EB0, - 74: 0x4EB1, - 75: 0x4EB4, - 76: 0x4EB6, - 77: 0x4EB7, - 78: 0x4EB8, - 79: 0x4EB9, - 80: 0x4EBC, - 81: 0x4EBD, - 82: 0x4EBE, - 83: 0x4EC8, - 84: 0x4ECC, - 85: 0x4ECF, - 86: 0x4ED0, - 87: 0x4ED2, - 88: 0x4EDA, - 89: 0x4EDB, - 90: 0x4EDC, - 91: 0x4EE0, - 92: 0x4EE2, - 93: 0x4EE6, - 94: 0x4EE7, - 95: 0x4EE9, - 96: 0x4EED, - 97: 0x4EEE, - 98: 0x4EEF, - 99: 0x4EF1, - 100: 0x4EF4, - 101: 0x4EF8, - 102: 0x4EF9, - 103: 0x4EFA, - 104: 0x4EFC, - 105: 0x4EFE, - 106: 0x4F00, - 107: 0x4F02, - 108: 0x4F03, - 109: 0x4F04, - 110: 0x4F05, - 111: 0x4F06, - 112: 0x4F07, - 113: 0x4F08, - 114: 0x4F0B, - 115: 0x4F0C, - 116: 0x4F12, - 117: 0x4F13, - 118: 0x4F14, - 119: 0x4F15, - 120: 0x4F16, - 121: 0x4F1C, - 122: 0x4F1D, - 123: 0x4F21, - 124: 0x4F23, - 125: 0x4F28, - 126: 0x4F29, - 127: 0x4F2C, - 128: 0x4F2D, - 129: 0x4F2E, - 130: 0x4F31, - 131: 0x4F33, - 132: 0x4F35, - 133: 0x4F37, - 134: 0x4F39, - 135: 0x4F3B, - 136: 0x4F3E, - 137: 0x4F3F, - 138: 0x4F40, - 139: 0x4F41, - 140: 0x4F42, - 141: 0x4F44, - 142: 0x4F45, - 143: 0x4F47, - 144: 0x4F48, - 145: 0x4F49, - 146: 0x4F4A, - 147: 0x4F4B, - 148: 0x4F4C, - 149: 0x4F52, - 150: 0x4F54, - 151: 0x4F56, - 152: 0x4F61, - 153: 0x4F62, - 154: 0x4F66, - 155: 0x4F68, - 156: 0x4F6A, - 157: 0x4F6B, - 158: 0x4F6D, - 159: 0x4F6E, - 160: 0x4F71, - 161: 0x4F72, - 162: 0x4F75, - 163: 0x4F77, - 164: 0x4F78, - 165: 0x4F79, - 166: 0x4F7A, - 167: 0x4F7D, - 168: 0x4F80, - 169: 0x4F81, - 170: 0x4F82, - 171: 0x4F85, - 172: 0x4F86, - 173: 0x4F87, - 174: 0x4F8A, - 175: 0x4F8C, - 176: 0x4F8E, - 177: 0x4F90, - 178: 0x4F92, - 179: 0x4F93, - 180: 0x4F95, - 181: 0x4F96, - 182: 0x4F98, - 183: 0x4F99, - 184: 0x4F9A, - 185: 0x4F9C, - 186: 0x4F9E, - 187: 0x4F9F, - 188: 0x4FA1, - 189: 0x4FA2, - 190: 0x4FA4, - 191: 0x4FAB, - 192: 0x4FAD, - 193: 0x4FB0, - 194: 0x4FB1, - 195: 0x4FB2, - 196: 0x4FB3, - 197: 0x4FB4, - 198: 0x4FB6, - 199: 0x4FB7, - 200: 0x4FB8, - 201: 0x4FB9, - 202: 0x4FBA, - 203: 0x4FBB, - 204: 0x4FBC, - 205: 0x4FBD, - 206: 0x4FBE, - 207: 0x4FC0, - 208: 0x4FC1, - 209: 0x4FC2, - 210: 0x4FC6, - 211: 0x4FC7, - 212: 0x4FC8, - 213: 0x4FC9, - 214: 0x4FCB, - 215: 0x4FCC, - 216: 0x4FCD, - 217: 0x4FD2, - 218: 0x4FD3, - 219: 0x4FD4, - 220: 0x4FD5, - 221: 0x4FD6, - 222: 0x4FD9, - 223: 0x4FDB, - 224: 0x4FE0, - 225: 0x4FE2, - 226: 0x4FE4, - 227: 0x4FE5, - 228: 0x4FE7, - 229: 0x4FEB, - 230: 0x4FEC, - 231: 0x4FF0, - 232: 0x4FF2, - 233: 0x4FF4, - 234: 0x4FF5, - 235: 0x4FF6, - 236: 0x4FF7, - 237: 0x4FF9, - 238: 0x4FFB, - 239: 0x4FFC, - 240: 0x4FFD, - 241: 0x4FFF, - 242: 0x5000, - 243: 0x5001, - 244: 0x5002, - 245: 0x5003, - 246: 0x5004, - 247: 0x5005, - 248: 0x5006, - 249: 0x5007, - 250: 0x5008, - 251: 0x5009, - 252: 0x500A, - 253: 0x500B, - 254: 0x500E, - 255: 0x5010, - 256: 0x5011, - 257: 0x5013, - 258: 0x5015, - 259: 0x5016, - 260: 0x5017, - 261: 0x501B, - 262: 0x501D, - 263: 0x501E, - 264: 0x5020, - 265: 0x5022, - 266: 0x5023, - 267: 0x5024, - 268: 0x5027, - 269: 0x502B, - 270: 0x502F, - 271: 0x5030, - 272: 0x5031, - 273: 0x5032, - 274: 0x5033, - 275: 0x5034, - 276: 0x5035, - 277: 0x5036, - 278: 0x5037, - 279: 0x5038, - 280: 0x5039, - 281: 0x503B, - 282: 0x503D, - 283: 0x503F, - 284: 0x5040, - 285: 0x5041, - 286: 0x5042, - 287: 0x5044, - 288: 0x5045, - 289: 0x5046, - 290: 0x5049, - 291: 0x504A, - 292: 0x504B, - 293: 0x504D, - 294: 0x5050, - 295: 0x5051, - 296: 0x5052, - 297: 0x5053, - 298: 0x5054, - 299: 0x5056, - 300: 0x5057, - 301: 0x5058, - 302: 0x5059, - 303: 0x505B, - 304: 0x505D, - 305: 0x505E, - 306: 0x505F, - 307: 0x5060, - 308: 0x5061, - 309: 0x5062, - 310: 0x5063, - 311: 0x5064, - 312: 0x5066, - 313: 0x5067, - 314: 0x5068, - 315: 0x5069, - 316: 0x506A, - 317: 0x506B, - 318: 0x506D, - 319: 0x506E, - 320: 0x506F, - 321: 0x5070, - 322: 0x5071, - 323: 0x5072, - 324: 0x5073, - 325: 0x5074, - 326: 0x5075, - 327: 0x5078, - 328: 0x5079, - 329: 0x507A, - 330: 0x507C, - 331: 0x507D, - 332: 0x5081, - 333: 0x5082, - 334: 0x5083, - 335: 0x5084, - 336: 0x5086, - 337: 0x5087, - 338: 0x5089, - 339: 0x508A, - 340: 0x508B, - 341: 0x508C, - 342: 0x508E, - 343: 0x508F, - 344: 0x5090, - 345: 0x5091, - 346: 0x5092, - 347: 0x5093, - 348: 0x5094, - 349: 0x5095, - 350: 0x5096, - 351: 0x5097, - 352: 0x5098, - 353: 0x5099, - 354: 0x509A, - 355: 0x509B, - 356: 0x509C, - 357: 0x509D, - 358: 0x509E, - 359: 0x509F, - 360: 0x50A0, - 361: 0x50A1, - 362: 0x50A2, - 363: 0x50A4, - 364: 0x50A6, - 365: 0x50AA, - 366: 0x50AB, - 367: 0x50AD, - 368: 0x50AE, - 369: 0x50AF, - 370: 0x50B0, - 371: 0x50B1, - 372: 0x50B3, - 373: 0x50B4, - 374: 0x50B5, - 375: 0x50B6, - 376: 0x50B7, - 377: 0x50B8, - 378: 0x50B9, - 379: 0x50BC, - 380: 0x50BD, - 381: 0x50BE, - 382: 0x50BF, - 383: 0x50C0, - 384: 0x50C1, - 385: 0x50C2, - 386: 0x50C3, - 387: 0x50C4, - 388: 0x50C5, - 389: 0x50C6, - 390: 0x50C7, - 391: 0x50C8, - 392: 0x50C9, - 393: 0x50CA, - 394: 0x50CB, - 395: 0x50CC, - 396: 0x50CD, - 397: 0x50CE, - 398: 0x50D0, - 399: 0x50D1, - 400: 0x50D2, - 401: 0x50D3, - 402: 0x50D4, - 403: 0x50D5, - 404: 0x50D7, - 405: 0x50D8, - 406: 0x50D9, - 407: 0x50DB, - 408: 0x50DC, - 409: 0x50DD, - 410: 0x50DE, - 411: 0x50DF, - 412: 0x50E0, - 413: 0x50E1, - 414: 0x50E2, - 415: 0x50E3, - 416: 0x50E4, - 417: 0x50E5, - 418: 0x50E8, - 419: 0x50E9, - 420: 0x50EA, - 421: 0x50EB, - 422: 0x50EF, - 423: 0x50F0, - 424: 0x50F1, - 425: 0x50F2, - 426: 0x50F4, - 427: 0x50F6, - 428: 0x50F7, - 429: 0x50F8, - 430: 0x50F9, - 431: 0x50FA, - 432: 0x50FC, - 433: 0x50FD, - 434: 0x50FE, - 435: 0x50FF, - 436: 0x5100, - 437: 0x5101, - 438: 0x5102, - 439: 0x5103, - 440: 0x5104, - 441: 0x5105, - 442: 0x5108, - 443: 0x5109, - 444: 0x510A, - 445: 0x510C, - 446: 0x510D, - 447: 0x510E, - 448: 0x510F, - 449: 0x5110, - 450: 0x5111, - 451: 0x5113, - 452: 0x5114, - 453: 0x5115, - 454: 0x5116, - 455: 0x5117, - 456: 0x5118, - 457: 0x5119, - 458: 0x511A, - 459: 0x511B, - 460: 0x511C, - 461: 0x511D, - 462: 0x511E, - 463: 0x511F, - 464: 0x5120, - 465: 0x5122, - 466: 0x5123, - 467: 0x5124, - 468: 0x5125, - 469: 0x5126, - 470: 0x5127, - 471: 0x5128, - 472: 0x5129, - 473: 0x512A, - 474: 0x512B, - 475: 0x512C, - 476: 0x512D, - 477: 0x512E, - 478: 0x512F, - 479: 0x5130, - 480: 0x5131, - 481: 0x5132, - 482: 0x5133, - 483: 0x5134, - 484: 0x5135, - 485: 0x5136, - 486: 0x5137, - 487: 0x5138, - 488: 0x5139, - 489: 0x513A, - 490: 0x513B, - 491: 0x513C, - 492: 0x513D, - 493: 0x513E, - 494: 0x5142, - 495: 0x5147, - 496: 0x514A, - 497: 0x514C, - 498: 0x514E, - 499: 0x514F, - 500: 0x5150, - 501: 0x5152, - 502: 0x5153, - 503: 0x5157, - 504: 0x5158, - 505: 0x5159, - 506: 0x515B, - 507: 0x515D, - 508: 0x515E, - 509: 0x515F, - 510: 0x5160, - 511: 0x5161, - 512: 0x5163, - 513: 0x5164, - 514: 0x5166, - 515: 0x5167, - 516: 0x5169, - 517: 0x516A, - 518: 0x516F, - 519: 0x5172, - 520: 0x517A, - 521: 0x517E, - 522: 0x517F, - 523: 0x5183, - 524: 0x5184, - 525: 0x5186, - 526: 0x5187, - 527: 0x518A, - 528: 0x518B, - 529: 0x518E, - 530: 0x518F, - 531: 0x5190, - 532: 0x5191, - 533: 0x5193, - 534: 0x5194, - 535: 0x5198, - 536: 0x519A, - 537: 0x519D, - 538: 0x519E, - 539: 0x519F, - 540: 0x51A1, - 541: 0x51A3, - 542: 0x51A6, - 543: 0x51A7, - 544: 0x51A8, - 545: 0x51A9, - 546: 0x51AA, - 547: 0x51AD, - 548: 0x51AE, - 549: 0x51B4, - 550: 0x51B8, - 551: 0x51B9, - 552: 0x51BA, - 553: 0x51BE, - 554: 0x51BF, - 555: 0x51C1, - 556: 0x51C2, - 557: 0x51C3, - 558: 0x51C5, - 559: 0x51C8, - 560: 0x51CA, - 561: 0x51CD, - 562: 0x51CE, - 563: 0x51D0, - 564: 0x51D2, - 565: 0x51D3, - 566: 0x51D4, - 567: 0x51D5, - 568: 0x51D6, - 569: 0x51D7, - 570: 0x51D8, - 571: 0x51D9, - 572: 0x51DA, - 573: 0x51DC, - 574: 0x51DE, - 575: 0x51DF, - 576: 0x51E2, - 577: 0x51E3, - 578: 0x51E5, - 579: 0x51E6, - 580: 0x51E7, - 581: 0x51E8, - 582: 0x51E9, - 583: 0x51EA, - 584: 0x51EC, - 585: 0x51EE, - 586: 0x51F1, - 587: 0x51F2, - 588: 0x51F4, - 589: 0x51F7, - 590: 0x51FE, - 591: 0x5204, - 592: 0x5205, - 593: 0x5209, - 594: 0x520B, - 595: 0x520C, - 596: 0x520F, - 597: 0x5210, - 598: 0x5213, - 599: 0x5214, - 600: 0x5215, - 601: 0x521C, - 602: 0x521E, - 603: 0x521F, - 604: 0x5221, - 605: 0x5222, - 606: 0x5223, - 607: 0x5225, - 608: 0x5226, - 609: 0x5227, - 610: 0x522A, - 611: 0x522C, - 612: 0x522F, - 613: 0x5231, - 614: 0x5232, - 615: 0x5234, - 616: 0x5235, - 617: 0x523C, - 618: 0x523E, - 619: 0x5244, - 620: 0x5245, - 621: 0x5246, - 622: 0x5247, - 623: 0x5248, - 624: 0x5249, - 625: 0x524B, - 626: 0x524E, - 627: 0x524F, - 628: 0x5252, - 629: 0x5253, - 630: 0x5255, - 631: 0x5257, - 632: 0x5258, - 633: 0x5259, - 634: 0x525A, - 635: 0x525B, - 636: 0x525D, - 637: 0x525F, - 638: 0x5260, - 639: 0x5262, - 640: 0x5263, - 641: 0x5264, - 642: 0x5266, - 643: 0x5268, - 644: 0x526B, - 645: 0x526C, - 646: 0x526D, - 647: 0x526E, - 648: 0x5270, - 649: 0x5271, - 650: 0x5273, - 651: 0x5274, - 652: 0x5275, - 653: 0x5276, - 654: 0x5277, - 655: 0x5278, - 656: 0x5279, - 657: 0x527A, - 658: 0x527B, - 659: 0x527C, - 660: 0x527E, - 661: 0x5280, - 662: 0x5283, - 663: 0x5284, - 664: 0x5285, - 665: 0x5286, - 666: 0x5287, - 667: 0x5289, - 668: 0x528A, - 669: 0x528B, - 670: 0x528C, - 671: 0x528D, - 672: 0x528E, - 673: 0x528F, - 674: 0x5291, - 675: 0x5292, - 676: 0x5294, - 677: 0x5295, - 678: 0x5296, - 679: 0x5297, - 680: 0x5298, - 681: 0x5299, - 682: 0x529A, - 683: 0x529C, - 684: 0x52A4, - 685: 0x52A5, - 686: 0x52A6, - 687: 0x52A7, - 688: 0x52AE, - 689: 0x52AF, - 690: 0x52B0, - 691: 0x52B4, - 692: 0x52B5, - 693: 0x52B6, - 694: 0x52B7, - 695: 0x52B8, - 696: 0x52B9, - 697: 0x52BA, - 698: 0x52BB, - 699: 0x52BC, - 700: 0x52BD, - 701: 0x52C0, - 702: 0x52C1, - 703: 0x52C2, - 704: 0x52C4, - 705: 0x52C5, - 706: 0x52C6, - 707: 0x52C8, - 708: 0x52CA, - 709: 0x52CC, - 710: 0x52CD, - 711: 0x52CE, - 712: 0x52CF, - 713: 0x52D1, - 714: 0x52D3, - 715: 0x52D4, - 716: 0x52D5, - 717: 0x52D7, - 718: 0x52D9, - 719: 0x52DA, - 720: 0x52DB, - 721: 0x52DC, - 722: 0x52DD, - 723: 0x52DE, - 724: 0x52E0, - 725: 0x52E1, - 726: 0x52E2, - 727: 0x52E3, - 728: 0x52E5, - 729: 0x52E6, - 730: 0x52E7, - 731: 0x52E8, - 732: 0x52E9, - 733: 0x52EA, - 734: 0x52EB, - 735: 0x52EC, - 736: 0x52ED, - 737: 0x52EE, - 738: 0x52EF, - 739: 0x52F1, - 740: 0x52F2, - 741: 0x52F3, - 742: 0x52F4, - 743: 0x52F5, - 744: 0x52F6, - 745: 0x52F7, - 746: 0x52F8, - 747: 0x52FB, - 748: 0x52FC, - 749: 0x52FD, - 750: 0x5301, - 751: 0x5302, - 752: 0x5303, - 753: 0x5304, - 754: 0x5307, - 755: 0x5309, - 756: 0x530A, - 757: 0x530B, - 758: 0x530C, - 759: 0x530E, - 760: 0x5311, - 761: 0x5312, - 762: 0x5313, - 763: 0x5314, - 764: 0x5318, - 765: 0x531B, - 766: 0x531C, - 767: 0x531E, - 768: 0x531F, - 769: 0x5322, - 770: 0x5324, - 771: 0x5325, - 772: 0x5327, - 773: 0x5328, - 774: 0x5329, - 775: 0x532B, - 776: 0x532C, - 777: 0x532D, - 778: 0x532F, - 779: 0x5330, - 780: 0x5331, - 781: 0x5332, - 782: 0x5333, - 783: 0x5334, - 784: 0x5335, - 785: 0x5336, - 786: 0x5337, - 787: 0x5338, - 788: 0x533C, - 789: 0x533D, - 790: 0x5340, - 791: 0x5342, - 792: 0x5344, - 793: 0x5346, - 794: 0x534B, - 795: 0x534C, - 796: 0x534D, - 797: 0x5350, - 798: 0x5354, - 799: 0x5358, - 800: 0x5359, - 801: 0x535B, - 802: 0x535D, - 803: 0x5365, - 804: 0x5368, - 805: 0x536A, - 806: 0x536C, - 807: 0x536D, - 808: 0x5372, - 809: 0x5376, - 810: 0x5379, - 811: 0x537B, - 812: 0x537C, - 813: 0x537D, - 814: 0x537E, - 815: 0x5380, - 816: 0x5381, - 817: 0x5383, - 818: 0x5387, - 819: 0x5388, - 820: 0x538A, - 821: 0x538E, - 822: 0x538F, - 823: 0x5390, - 824: 0x5391, - 825: 0x5392, - 826: 0x5393, - 827: 0x5394, - 828: 0x5396, - 829: 0x5397, - 830: 0x5399, - 831: 0x539B, - 832: 0x539C, - 833: 0x539E, - 834: 0x53A0, - 835: 0x53A1, - 836: 0x53A4, - 837: 0x53A7, - 838: 0x53AA, - 839: 0x53AB, - 840: 0x53AC, - 841: 0x53AD, - 842: 0x53AF, - 843: 0x53B0, - 844: 0x53B1, - 845: 0x53B2, - 846: 0x53B3, - 847: 0x53B4, - 848: 0x53B5, - 849: 0x53B7, - 850: 0x53B8, - 851: 0x53B9, - 852: 0x53BA, - 853: 0x53BC, - 854: 0x53BD, - 855: 0x53BE, - 856: 0x53C0, - 857: 0x53C3, - 858: 0x53C4, - 859: 0x53C5, - 860: 0x53C6, - 861: 0x53C7, - 862: 0x53CE, - 863: 0x53CF, - 864: 0x53D0, - 865: 0x53D2, - 866: 0x53D3, - 867: 0x53D5, - 868: 0x53DA, - 869: 0x53DC, - 870: 0x53DD, - 871: 0x53DE, - 872: 0x53E1, - 873: 0x53E2, - 874: 0x53E7, - 875: 0x53F4, - 876: 0x53FA, - 877: 0x53FE, - 878: 0x53FF, - 879: 0x5400, - 880: 0x5402, - 881: 0x5405, - 882: 0x5407, - 883: 0x540B, - 884: 0x5414, - 885: 0x5418, - 886: 0x5419, - 887: 0x541A, - 888: 0x541C, - 889: 0x5422, - 890: 0x5424, - 891: 0x5425, - 892: 0x542A, - 893: 0x5430, - 894: 0x5433, - 895: 0x5436, - 896: 0x5437, - 897: 0x543A, - 898: 0x543D, - 899: 0x543F, - 900: 0x5441, - 901: 0x5442, - 902: 0x5444, - 903: 0x5445, - 904: 0x5447, - 905: 0x5449, - 906: 0x544C, - 907: 0x544D, - 908: 0x544E, - 909: 0x544F, - 910: 0x5451, - 911: 0x545A, - 912: 0x545D, - 913: 0x545E, - 914: 0x545F, - 915: 0x5460, - 916: 0x5461, - 917: 0x5463, - 918: 0x5465, - 919: 0x5467, - 920: 0x5469, - 921: 0x546A, - 922: 0x546B, - 923: 0x546C, - 924: 0x546D, - 925: 0x546E, - 926: 0x546F, - 927: 0x5470, - 928: 0x5474, - 929: 0x5479, - 930: 0x547A, - 931: 0x547E, - 932: 0x547F, - 933: 0x5481, - 934: 0x5483, - 935: 0x5485, - 936: 0x5487, - 937: 0x5488, - 938: 0x5489, - 939: 0x548A, - 940: 0x548D, - 941: 0x5491, - 942: 0x5493, - 943: 0x5497, - 944: 0x5498, - 945: 0x549C, - 946: 0x549E, - 947: 0x549F, - 948: 0x54A0, - 949: 0x54A1, - 950: 0x54A2, - 951: 0x54A5, - 952: 0x54AE, - 953: 0x54B0, - 954: 0x54B2, - 955: 0x54B5, - 956: 0x54B6, - 957: 0x54B7, - 958: 0x54B9, - 959: 0x54BA, - 960: 0x54BC, - 961: 0x54BE, - 962: 0x54C3, - 963: 0x54C5, - 964: 0x54CA, - 965: 0x54CB, - 966: 0x54D6, - 967: 0x54D8, - 968: 0x54DB, - 969: 0x54E0, - 970: 0x54E1, - 971: 0x54E2, - 972: 0x54E3, - 973: 0x54E4, - 974: 0x54EB, - 975: 0x54EC, - 976: 0x54EF, - 977: 0x54F0, - 978: 0x54F1, - 979: 0x54F4, - 980: 0x54F5, - 981: 0x54F6, - 982: 0x54F7, - 983: 0x54F8, - 984: 0x54F9, - 985: 0x54FB, - 986: 0x54FE, - 987: 0x5500, - 988: 0x5502, - 989: 0x5503, - 990: 0x5504, - 991: 0x5505, - 992: 0x5508, - 993: 0x550A, - 994: 0x550B, - 995: 0x550C, - 996: 0x550D, - 997: 0x550E, - 998: 0x5512, - 999: 0x5513, - 1000: 0x5515, - 1001: 0x5516, - 1002: 0x5517, - 1003: 0x5518, - 1004: 0x5519, - 1005: 0x551A, - 1006: 0x551C, - 1007: 0x551D, - 1008: 0x551E, - 1009: 0x551F, - 1010: 0x5521, - 1011: 0x5525, - 1012: 0x5526, - 1013: 0x5528, - 1014: 0x5529, - 1015: 0x552B, - 1016: 0x552D, - 1017: 0x5532, - 1018: 0x5534, - 1019: 0x5535, - 1020: 0x5536, - 1021: 0x5538, - 1022: 0x5539, - 1023: 0x553A, - 1024: 0x553B, - 1025: 0x553D, - 1026: 0x5540, - 1027: 0x5542, - 1028: 0x5545, - 1029: 0x5547, - 1030: 0x5548, - 1031: 0x554B, - 1032: 0x554C, - 1033: 0x554D, - 1034: 0x554E, - 1035: 0x554F, - 1036: 0x5551, - 1037: 0x5552, - 1038: 0x5553, - 1039: 0x5554, - 1040: 0x5557, - 1041: 0x5558, - 1042: 0x5559, - 1043: 0x555A, - 1044: 0x555B, - 1045: 0x555D, - 1046: 0x555E, - 1047: 0x555F, - 1048: 0x5560, - 1049: 0x5562, - 1050: 0x5563, - 1051: 0x5568, - 1052: 0x5569, - 1053: 0x556B, - 1054: 0x556F, - 1055: 0x5570, - 1056: 0x5571, - 1057: 0x5572, - 1058: 0x5573, - 1059: 0x5574, - 1060: 0x5579, - 1061: 0x557A, - 1062: 0x557D, - 1063: 0x557F, - 1064: 0x5585, - 1065: 0x5586, - 1066: 0x558C, - 1067: 0x558D, - 1068: 0x558E, - 1069: 0x5590, - 1070: 0x5592, - 1071: 0x5593, - 1072: 0x5595, - 1073: 0x5596, - 1074: 0x5597, - 1075: 0x559A, - 1076: 0x559B, - 1077: 0x559E, - 1078: 0x55A0, - 1079: 0x55A1, - 1080: 0x55A2, - 1081: 0x55A3, - 1082: 0x55A4, - 1083: 0x55A5, - 1084: 0x55A6, - 1085: 0x55A8, - 1086: 0x55A9, - 1087: 0x55AA, - 1088: 0x55AB, - 1089: 0x55AC, - 1090: 0x55AD, - 1091: 0x55AE, - 1092: 0x55AF, - 1093: 0x55B0, - 1094: 0x55B2, - 1095: 0x55B4, - 1096: 0x55B6, - 1097: 0x55B8, - 1098: 0x55BA, - 1099: 0x55BC, - 1100: 0x55BF, - 1101: 0x55C0, - 1102: 0x55C1, - 1103: 0x55C2, - 1104: 0x55C3, - 1105: 0x55C6, - 1106: 0x55C7, - 1107: 0x55C8, - 1108: 0x55CA, - 1109: 0x55CB, - 1110: 0x55CE, - 1111: 0x55CF, - 1112: 0x55D0, - 1113: 0x55D5, - 1114: 0x55D7, - 1115: 0x55D8, - 1116: 0x55D9, - 1117: 0x55DA, - 1118: 0x55DB, - 1119: 0x55DE, - 1120: 0x55E0, - 1121: 0x55E2, - 1122: 0x55E7, - 1123: 0x55E9, - 1124: 0x55ED, - 1125: 0x55EE, - 1126: 0x55F0, - 1127: 0x55F1, - 1128: 0x55F4, - 1129: 0x55F6, - 1130: 0x55F8, - 1131: 0x55F9, - 1132: 0x55FA, - 1133: 0x55FB, - 1134: 0x55FC, - 1135: 0x55FF, - 1136: 0x5602, - 1137: 0x5603, - 1138: 0x5604, - 1139: 0x5605, - 1140: 0x5606, - 1141: 0x5607, - 1142: 0x560A, - 1143: 0x560B, - 1144: 0x560D, - 1145: 0x5610, - 1146: 0x5611, - 1147: 0x5612, - 1148: 0x5613, - 1149: 0x5614, - 1150: 0x5615, - 1151: 0x5616, - 1152: 0x5617, - 1153: 0x5619, - 1154: 0x561A, - 1155: 0x561C, - 1156: 0x561D, - 1157: 0x5620, - 1158: 0x5621, - 1159: 0x5622, - 1160: 0x5625, - 1161: 0x5626, - 1162: 0x5628, - 1163: 0x5629, - 1164: 0x562A, - 1165: 0x562B, - 1166: 0x562E, - 1167: 0x562F, - 1168: 0x5630, - 1169: 0x5633, - 1170: 0x5635, - 1171: 0x5637, - 1172: 0x5638, - 1173: 0x563A, - 1174: 0x563C, - 1175: 0x563D, - 1176: 0x563E, - 1177: 0x5640, - 1178: 0x5641, - 1179: 0x5642, - 1180: 0x5643, - 1181: 0x5644, - 1182: 0x5645, - 1183: 0x5646, - 1184: 0x5647, - 1185: 0x5648, - 1186: 0x5649, - 1187: 0x564A, - 1188: 0x564B, - 1189: 0x564F, - 1190: 0x5650, - 1191: 0x5651, - 1192: 0x5652, - 1193: 0x5653, - 1194: 0x5655, - 1195: 0x5656, - 1196: 0x565A, - 1197: 0x565B, - 1198: 0x565D, - 1199: 0x565E, - 1200: 0x565F, - 1201: 0x5660, - 1202: 0x5661, - 1203: 0x5663, - 1204: 0x5665, - 1205: 0x5666, - 1206: 0x5667, - 1207: 0x566D, - 1208: 0x566E, - 1209: 0x566F, - 1210: 0x5670, - 1211: 0x5672, - 1212: 0x5673, - 1213: 0x5674, - 1214: 0x5675, - 1215: 0x5677, - 1216: 0x5678, - 1217: 0x5679, - 1218: 0x567A, - 1219: 0x567D, - 1220: 0x567E, - 1221: 0x567F, - 1222: 0x5680, - 1223: 0x5681, - 1224: 0x5682, - 1225: 0x5683, - 1226: 0x5684, - 1227: 0x5687, - 1228: 0x5688, - 1229: 0x5689, - 1230: 0x568A, - 1231: 0x568B, - 1232: 0x568C, - 1233: 0x568D, - 1234: 0x5690, - 1235: 0x5691, - 1236: 0x5692, - 1237: 0x5694, - 1238: 0x5695, - 1239: 0x5696, - 1240: 0x5697, - 1241: 0x5698, - 1242: 0x5699, - 1243: 0x569A, - 1244: 0x569B, - 1245: 0x569C, - 1246: 0x569D, - 1247: 0x569E, - 1248: 0x569F, - 1249: 0x56A0, - 1250: 0x56A1, - 1251: 0x56A2, - 1252: 0x56A4, - 1253: 0x56A5, - 1254: 0x56A6, - 1255: 0x56A7, - 1256: 0x56A8, - 1257: 0x56A9, - 1258: 0x56AA, - 1259: 0x56AB, - 1260: 0x56AC, - 1261: 0x56AD, - 1262: 0x56AE, - 1263: 0x56B0, - 1264: 0x56B1, - 1265: 0x56B2, - 1266: 0x56B3, - 1267: 0x56B4, - 1268: 0x56B5, - 1269: 0x56B6, - 1270: 0x56B8, - 1271: 0x56B9, - 1272: 0x56BA, - 1273: 0x56BB, - 1274: 0x56BD, - 1275: 0x56BE, - 1276: 0x56BF, - 1277: 0x56C0, - 1278: 0x56C1, - 1279: 0x56C2, - 1280: 0x56C3, - 1281: 0x56C4, - 1282: 0x56C5, - 1283: 0x56C6, - 1284: 0x56C7, - 1285: 0x56C8, - 1286: 0x56C9, - 1287: 0x56CB, - 1288: 0x56CC, - 1289: 0x56CD, - 1290: 0x56CE, - 1291: 0x56CF, - 1292: 0x56D0, - 1293: 0x56D1, - 1294: 0x56D2, - 1295: 0x56D3, - 1296: 0x56D5, - 1297: 0x56D6, - 1298: 0x56D8, - 1299: 0x56D9, - 1300: 0x56DC, - 1301: 0x56E3, - 1302: 0x56E5, - 1303: 0x56E6, - 1304: 0x56E7, - 1305: 0x56E8, - 1306: 0x56E9, - 1307: 0x56EA, - 1308: 0x56EC, - 1309: 0x56EE, - 1310: 0x56EF, - 1311: 0x56F2, - 1312: 0x56F3, - 1313: 0x56F6, - 1314: 0x56F7, - 1315: 0x56F8, - 1316: 0x56FB, - 1317: 0x56FC, - 1318: 0x5700, - 1319: 0x5701, - 1320: 0x5702, - 1321: 0x5705, - 1322: 0x5707, - 1323: 0x570B, - 1324: 0x570C, - 1325: 0x570D, - 1326: 0x570E, - 1327: 0x570F, - 1328: 0x5710, - 1329: 0x5711, - 1330: 0x5712, - 1331: 0x5713, - 1332: 0x5714, - 1333: 0x5715, - 1334: 0x5716, - 1335: 0x5717, - 1336: 0x5718, - 1337: 0x5719, - 1338: 0x571A, - 1339: 0x571B, - 1340: 0x571D, - 1341: 0x571E, - 1342: 0x5720, - 1343: 0x5721, - 1344: 0x5722, - 1345: 0x5724, - 1346: 0x5725, - 1347: 0x5726, - 1348: 0x5727, - 1349: 0x572B, - 1350: 0x5731, - 1351: 0x5732, - 1352: 0x5734, - 1353: 0x5735, - 1354: 0x5736, - 1355: 0x5737, - 1356: 0x5738, - 1357: 0x573C, - 1358: 0x573D, - 1359: 0x573F, - 1360: 0x5741, - 1361: 0x5743, - 1362: 0x5744, - 1363: 0x5745, - 1364: 0x5746, - 1365: 0x5748, - 1366: 0x5749, - 1367: 0x574B, - 1368: 0x5752, - 1369: 0x5753, - 1370: 0x5754, - 1371: 0x5755, - 1372: 0x5756, - 1373: 0x5758, - 1374: 0x5759, - 1375: 0x5762, - 1376: 0x5763, - 1377: 0x5765, - 1378: 0x5767, - 1379: 0x576C, - 1380: 0x576E, - 1381: 0x5770, - 1382: 0x5771, - 1383: 0x5772, - 1384: 0x5774, - 1385: 0x5775, - 1386: 0x5778, - 1387: 0x5779, - 1388: 0x577A, - 1389: 0x577D, - 1390: 0x577E, - 1391: 0x577F, - 1392: 0x5780, - 1393: 0x5781, - 1394: 0x5787, - 1395: 0x5788, - 1396: 0x5789, - 1397: 0x578A, - 1398: 0x578D, - 1399: 0x578E, - 1400: 0x578F, - 1401: 0x5790, - 1402: 0x5791, - 1403: 0x5794, - 1404: 0x5795, - 1405: 0x5796, - 1406: 0x5797, - 1407: 0x5798, - 1408: 0x5799, - 1409: 0x579A, - 1410: 0x579C, - 1411: 0x579D, - 1412: 0x579E, - 1413: 0x579F, - 1414: 0x57A5, - 1415: 0x57A8, - 1416: 0x57AA, - 1417: 0x57AC, - 1418: 0x57AF, - 1419: 0x57B0, - 1420: 0x57B1, - 1421: 0x57B3, - 1422: 0x57B5, - 1423: 0x57B6, - 1424: 0x57B7, - 1425: 0x57B9, - 1426: 0x57BA, - 1427: 0x57BB, - 1428: 0x57BC, - 1429: 0x57BD, - 1430: 0x57BE, - 1431: 0x57BF, - 1432: 0x57C0, - 1433: 0x57C1, - 1434: 0x57C4, - 1435: 0x57C5, - 1436: 0x57C6, - 1437: 0x57C7, - 1438: 0x57C8, - 1439: 0x57C9, - 1440: 0x57CA, - 1441: 0x57CC, - 1442: 0x57CD, - 1443: 0x57D0, - 1444: 0x57D1, - 1445: 0x57D3, - 1446: 0x57D6, - 1447: 0x57D7, - 1448: 0x57DB, - 1449: 0x57DC, - 1450: 0x57DE, - 1451: 0x57E1, - 1452: 0x57E2, - 1453: 0x57E3, - 1454: 0x57E5, - 1455: 0x57E6, - 1456: 0x57E7, - 1457: 0x57E8, - 1458: 0x57E9, - 1459: 0x57EA, - 1460: 0x57EB, - 1461: 0x57EC, - 1462: 0x57EE, - 1463: 0x57F0, - 1464: 0x57F1, - 1465: 0x57F2, - 1466: 0x57F3, - 1467: 0x57F5, - 1468: 0x57F6, - 1469: 0x57F7, - 1470: 0x57FB, - 1471: 0x57FC, - 1472: 0x57FE, - 1473: 0x57FF, - 1474: 0x5801, - 1475: 0x5803, - 1476: 0x5804, - 1477: 0x5805, - 1478: 0x5808, - 1479: 0x5809, - 1480: 0x580A, - 1481: 0x580C, - 1482: 0x580E, - 1483: 0x580F, - 1484: 0x5810, - 1485: 0x5812, - 1486: 0x5813, - 1487: 0x5814, - 1488: 0x5816, - 1489: 0x5817, - 1490: 0x5818, - 1491: 0x581A, - 1492: 0x581B, - 1493: 0x581C, - 1494: 0x581D, - 1495: 0x581F, - 1496: 0x5822, - 1497: 0x5823, - 1498: 0x5825, - 1499: 0x5826, - 1500: 0x5827, - 1501: 0x5828, - 1502: 0x5829, - 1503: 0x582B, - 1504: 0x582C, - 1505: 0x582D, - 1506: 0x582E, - 1507: 0x582F, - 1508: 0x5831, - 1509: 0x5832, - 1510: 0x5833, - 1511: 0x5834, - 1512: 0x5836, - 1513: 0x5837, - 1514: 0x5838, - 1515: 0x5839, - 1516: 0x583A, - 1517: 0x583B, - 1518: 0x583C, - 1519: 0x583D, - 1520: 0x583E, - 1521: 0x583F, - 1522: 0x5840, - 1523: 0x5841, - 1524: 0x5842, - 1525: 0x5843, - 1526: 0x5845, - 1527: 0x5846, - 1528: 0x5847, - 1529: 0x5848, - 1530: 0x5849, - 1531: 0x584A, - 1532: 0x584B, - 1533: 0x584E, - 1534: 0x584F, - 1535: 0x5850, - 1536: 0x5852, - 1537: 0x5853, - 1538: 0x5855, - 1539: 0x5856, - 1540: 0x5857, - 1541: 0x5859, - 1542: 0x585A, - 1543: 0x585B, - 1544: 0x585C, - 1545: 0x585D, - 1546: 0x585F, - 1547: 0x5860, - 1548: 0x5861, - 1549: 0x5862, - 1550: 0x5863, - 1551: 0x5864, - 1552: 0x5866, - 1553: 0x5867, - 1554: 0x5868, - 1555: 0x5869, - 1556: 0x586A, - 1557: 0x586D, - 1558: 0x586E, - 1559: 0x586F, - 1560: 0x5870, - 1561: 0x5871, - 1562: 0x5872, - 1563: 0x5873, - 1564: 0x5874, - 1565: 0x5875, - 1566: 0x5876, - 1567: 0x5877, - 1568: 0x5878, - 1569: 0x5879, - 1570: 0x587A, - 1571: 0x587B, - 1572: 0x587C, - 1573: 0x587D, - 1574: 0x587F, - 1575: 0x5882, - 1576: 0x5884, - 1577: 0x5886, - 1578: 0x5887, - 1579: 0x5888, - 1580: 0x588A, - 1581: 0x588B, - 1582: 0x588C, - 1583: 0x588D, - 1584: 0x588E, - 1585: 0x588F, - 1586: 0x5890, - 1587: 0x5891, - 1588: 0x5894, - 1589: 0x5895, - 1590: 0x5896, - 1591: 0x5897, - 1592: 0x5898, - 1593: 0x589B, - 1594: 0x589C, - 1595: 0x589D, - 1596: 0x58A0, - 1597: 0x58A1, - 1598: 0x58A2, - 1599: 0x58A3, - 1600: 0x58A4, - 1601: 0x58A5, - 1602: 0x58A6, - 1603: 0x58A7, - 1604: 0x58AA, - 1605: 0x58AB, - 1606: 0x58AC, - 1607: 0x58AD, - 1608: 0x58AE, - 1609: 0x58AF, - 1610: 0x58B0, - 1611: 0x58B1, - 1612: 0x58B2, - 1613: 0x58B3, - 1614: 0x58B4, - 1615: 0x58B5, - 1616: 0x58B6, - 1617: 0x58B7, - 1618: 0x58B8, - 1619: 0x58B9, - 1620: 0x58BA, - 1621: 0x58BB, - 1622: 0x58BD, - 1623: 0x58BE, - 1624: 0x58BF, - 1625: 0x58C0, - 1626: 0x58C2, - 1627: 0x58C3, - 1628: 0x58C4, - 1629: 0x58C6, - 1630: 0x58C7, - 1631: 0x58C8, - 1632: 0x58C9, - 1633: 0x58CA, - 1634: 0x58CB, - 1635: 0x58CC, - 1636: 0x58CD, - 1637: 0x58CE, - 1638: 0x58CF, - 1639: 0x58D0, - 1640: 0x58D2, - 1641: 0x58D3, - 1642: 0x58D4, - 1643: 0x58D6, - 1644: 0x58D7, - 1645: 0x58D8, - 1646: 0x58D9, - 1647: 0x58DA, - 1648: 0x58DB, - 1649: 0x58DC, - 1650: 0x58DD, - 1651: 0x58DE, - 1652: 0x58DF, - 1653: 0x58E0, - 1654: 0x58E1, - 1655: 0x58E2, - 1656: 0x58E3, - 1657: 0x58E5, - 1658: 0x58E6, - 1659: 0x58E7, - 1660: 0x58E8, - 1661: 0x58E9, - 1662: 0x58EA, - 1663: 0x58ED, - 1664: 0x58EF, - 1665: 0x58F1, - 1666: 0x58F2, - 1667: 0x58F4, - 1668: 0x58F5, - 1669: 0x58F7, - 1670: 0x58F8, - 1671: 0x58FA, - 1672: 0x58FB, - 1673: 0x58FC, - 1674: 0x58FD, - 1675: 0x58FE, - 1676: 0x58FF, - 1677: 0x5900, - 1678: 0x5901, - 1679: 0x5903, - 1680: 0x5905, - 1681: 0x5906, - 1682: 0x5908, - 1683: 0x5909, - 1684: 0x590A, - 1685: 0x590B, - 1686: 0x590C, - 1687: 0x590E, - 1688: 0x5910, - 1689: 0x5911, - 1690: 0x5912, - 1691: 0x5913, - 1692: 0x5917, - 1693: 0x5918, - 1694: 0x591B, - 1695: 0x591D, - 1696: 0x591E, - 1697: 0x5920, - 1698: 0x5921, - 1699: 0x5922, - 1700: 0x5923, - 1701: 0x5926, - 1702: 0x5928, - 1703: 0x592C, - 1704: 0x5930, - 1705: 0x5932, - 1706: 0x5933, - 1707: 0x5935, - 1708: 0x5936, - 1709: 0x593B, - 1710: 0x593D, - 1711: 0x593E, - 1712: 0x593F, - 1713: 0x5940, - 1714: 0x5943, - 1715: 0x5945, - 1716: 0x5946, - 1717: 0x594A, - 1718: 0x594C, - 1719: 0x594D, - 1720: 0x5950, - 1721: 0x5952, - 1722: 0x5953, - 1723: 0x5959, - 1724: 0x595B, - 1725: 0x595C, - 1726: 0x595D, - 1727: 0x595E, - 1728: 0x595F, - 1729: 0x5961, - 1730: 0x5963, - 1731: 0x5964, - 1732: 0x5966, - 1733: 0x5967, - 1734: 0x5968, - 1735: 0x5969, - 1736: 0x596A, - 1737: 0x596B, - 1738: 0x596C, - 1739: 0x596D, - 1740: 0x596E, - 1741: 0x596F, - 1742: 0x5970, - 1743: 0x5971, - 1744: 0x5972, - 1745: 0x5975, - 1746: 0x5977, - 1747: 0x597A, - 1748: 0x597B, - 1749: 0x597C, - 1750: 0x597E, - 1751: 0x597F, - 1752: 0x5980, - 1753: 0x5985, - 1754: 0x5989, - 1755: 0x598B, - 1756: 0x598C, - 1757: 0x598E, - 1758: 0x598F, - 1759: 0x5990, - 1760: 0x5991, - 1761: 0x5994, - 1762: 0x5995, - 1763: 0x5998, - 1764: 0x599A, - 1765: 0x599B, - 1766: 0x599C, - 1767: 0x599D, - 1768: 0x599F, - 1769: 0x59A0, - 1770: 0x59A1, - 1771: 0x59A2, - 1772: 0x59A6, - 1773: 0x59A7, - 1774: 0x59AC, - 1775: 0x59AD, - 1776: 0x59B0, - 1777: 0x59B1, - 1778: 0x59B3, - 1779: 0x59B4, - 1780: 0x59B5, - 1781: 0x59B6, - 1782: 0x59B7, - 1783: 0x59B8, - 1784: 0x59BA, - 1785: 0x59BC, - 1786: 0x59BD, - 1787: 0x59BF, - 1788: 0x59C0, - 1789: 0x59C1, - 1790: 0x59C2, - 1791: 0x59C3, - 1792: 0x59C4, - 1793: 0x59C5, - 1794: 0x59C7, - 1795: 0x59C8, - 1796: 0x59C9, - 1797: 0x59CC, - 1798: 0x59CD, - 1799: 0x59CE, - 1800: 0x59CF, - 1801: 0x59D5, - 1802: 0x59D6, - 1803: 0x59D9, - 1804: 0x59DB, - 1805: 0x59DE, - 1806: 0x59DF, - 1807: 0x59E0, - 1808: 0x59E1, - 1809: 0x59E2, - 1810: 0x59E4, - 1811: 0x59E6, - 1812: 0x59E7, - 1813: 0x59E9, - 1814: 0x59EA, - 1815: 0x59EB, - 1816: 0x59ED, - 1817: 0x59EE, - 1818: 0x59EF, - 1819: 0x59F0, - 1820: 0x59F1, - 1821: 0x59F2, - 1822: 0x59F3, - 1823: 0x59F4, - 1824: 0x59F5, - 1825: 0x59F6, - 1826: 0x59F7, - 1827: 0x59F8, - 1828: 0x59FA, - 1829: 0x59FC, - 1830: 0x59FD, - 1831: 0x59FE, - 1832: 0x5A00, - 1833: 0x5A02, - 1834: 0x5A0A, - 1835: 0x5A0B, - 1836: 0x5A0D, - 1837: 0x5A0E, - 1838: 0x5A0F, - 1839: 0x5A10, - 1840: 0x5A12, - 1841: 0x5A14, - 1842: 0x5A15, - 1843: 0x5A16, - 1844: 0x5A17, - 1845: 0x5A19, - 1846: 0x5A1A, - 1847: 0x5A1B, - 1848: 0x5A1D, - 1849: 0x5A1E, - 1850: 0x5A21, - 1851: 0x5A22, - 1852: 0x5A24, - 1853: 0x5A26, - 1854: 0x5A27, - 1855: 0x5A28, - 1856: 0x5A2A, - 1857: 0x5A2B, - 1858: 0x5A2C, - 1859: 0x5A2D, - 1860: 0x5A2E, - 1861: 0x5A2F, - 1862: 0x5A30, - 1863: 0x5A33, - 1864: 0x5A35, - 1865: 0x5A37, - 1866: 0x5A38, - 1867: 0x5A39, - 1868: 0x5A3A, - 1869: 0x5A3B, - 1870: 0x5A3D, - 1871: 0x5A3E, - 1872: 0x5A3F, - 1873: 0x5A41, - 1874: 0x5A42, - 1875: 0x5A43, - 1876: 0x5A44, - 1877: 0x5A45, - 1878: 0x5A47, - 1879: 0x5A48, - 1880: 0x5A4B, - 1881: 0x5A4C, - 1882: 0x5A4D, - 1883: 0x5A4E, - 1884: 0x5A4F, - 1885: 0x5A50, - 1886: 0x5A51, - 1887: 0x5A52, - 1888: 0x5A53, - 1889: 0x5A54, - 1890: 0x5A56, - 1891: 0x5A57, - 1892: 0x5A58, - 1893: 0x5A59, - 1894: 0x5A5B, - 1895: 0x5A5C, - 1896: 0x5A5D, - 1897: 0x5A5E, - 1898: 0x5A5F, - 1899: 0x5A60, - 1900: 0x5A61, - 1901: 0x5A63, - 1902: 0x5A64, - 1903: 0x5A65, - 1904: 0x5A66, - 1905: 0x5A68, - 1906: 0x5A69, - 1907: 0x5A6B, - 1908: 0x5A6C, - 1909: 0x5A6D, - 1910: 0x5A6E, - 1911: 0x5A6F, - 1912: 0x5A70, - 1913: 0x5A71, - 1914: 0x5A72, - 1915: 0x5A73, - 1916: 0x5A78, - 1917: 0x5A79, - 1918: 0x5A7B, - 1919: 0x5A7C, - 1920: 0x5A7D, - 1921: 0x5A7E, - 1922: 0x5A80, - 1923: 0x5A81, - 1924: 0x5A82, - 1925: 0x5A83, - 1926: 0x5A84, - 1927: 0x5A85, - 1928: 0x5A86, - 1929: 0x5A87, - 1930: 0x5A88, - 1931: 0x5A89, - 1932: 0x5A8A, - 1933: 0x5A8B, - 1934: 0x5A8C, - 1935: 0x5A8D, - 1936: 0x5A8E, - 1937: 0x5A8F, - 1938: 0x5A90, - 1939: 0x5A91, - 1940: 0x5A93, - 1941: 0x5A94, - 1942: 0x5A95, - 1943: 0x5A96, - 1944: 0x5A97, - 1945: 0x5A98, - 1946: 0x5A99, - 1947: 0x5A9C, - 1948: 0x5A9D, - 1949: 0x5A9E, - 1950: 0x5A9F, - 1951: 0x5AA0, - 1952: 0x5AA1, - 1953: 0x5AA2, - 1954: 0x5AA3, - 1955: 0x5AA4, - 1956: 0x5AA5, - 1957: 0x5AA6, - 1958: 0x5AA7, - 1959: 0x5AA8, - 1960: 0x5AA9, - 1961: 0x5AAB, - 1962: 0x5AAC, - 1963: 0x5AAD, - 1964: 0x5AAE, - 1965: 0x5AAF, - 1966: 0x5AB0, - 1967: 0x5AB1, - 1968: 0x5AB4, - 1969: 0x5AB6, - 1970: 0x5AB7, - 1971: 0x5AB9, - 1972: 0x5ABA, - 1973: 0x5ABB, - 1974: 0x5ABC, - 1975: 0x5ABD, - 1976: 0x5ABF, - 1977: 0x5AC0, - 1978: 0x5AC3, - 1979: 0x5AC4, - 1980: 0x5AC5, - 1981: 0x5AC6, - 1982: 0x5AC7, - 1983: 0x5AC8, - 1984: 0x5ACA, - 1985: 0x5ACB, - 1986: 0x5ACD, - 1987: 0x5ACE, - 1988: 0x5ACF, - 1989: 0x5AD0, - 1990: 0x5AD1, - 1991: 0x5AD3, - 1992: 0x5AD5, - 1993: 0x5AD7, - 1994: 0x5AD9, - 1995: 0x5ADA, - 1996: 0x5ADB, - 1997: 0x5ADD, - 1998: 0x5ADE, - 1999: 0x5ADF, - 2000: 0x5AE2, - 2001: 0x5AE4, - 2002: 0x5AE5, - 2003: 0x5AE7, - 2004: 0x5AE8, - 2005: 0x5AEA, - 2006: 0x5AEC, - 2007: 0x5AED, - 2008: 0x5AEE, - 2009: 0x5AEF, - 2010: 0x5AF0, - 2011: 0x5AF2, - 2012: 0x5AF3, - 2013: 0x5AF4, - 2014: 0x5AF5, - 2015: 0x5AF6, - 2016: 0x5AF7, - 2017: 0x5AF8, - 2018: 0x5AF9, - 2019: 0x5AFA, - 2020: 0x5AFB, - 2021: 0x5AFC, - 2022: 0x5AFD, - 2023: 0x5AFE, - 2024: 0x5AFF, - 2025: 0x5B00, - 2026: 0x5B01, - 2027: 0x5B02, - 2028: 0x5B03, - 2029: 0x5B04, - 2030: 0x5B05, - 2031: 0x5B06, - 2032: 0x5B07, - 2033: 0x5B08, - 2034: 0x5B0A, - 2035: 0x5B0B, - 2036: 0x5B0C, - 2037: 0x5B0D, - 2038: 0x5B0E, - 2039: 0x5B0F, - 2040: 0x5B10, - 2041: 0x5B11, - 2042: 0x5B12, - 2043: 0x5B13, - 2044: 0x5B14, - 2045: 0x5B15, - 2046: 0x5B18, - 2047: 0x5B19, - 2048: 0x5B1A, - 2049: 0x5B1B, - 2050: 0x5B1C, - 2051: 0x5B1D, - 2052: 0x5B1E, - 2053: 0x5B1F, - 2054: 0x5B20, - 2055: 0x5B21, - 2056: 0x5B22, - 2057: 0x5B23, - 2058: 0x5B24, - 2059: 0x5B25, - 2060: 0x5B26, - 2061: 0x5B27, - 2062: 0x5B28, - 2063: 0x5B29, - 2064: 0x5B2A, - 2065: 0x5B2B, - 2066: 0x5B2C, - 2067: 0x5B2D, - 2068: 0x5B2E, - 2069: 0x5B2F, - 2070: 0x5B30, - 2071: 0x5B31, - 2072: 0x5B33, - 2073: 0x5B35, - 2074: 0x5B36, - 2075: 0x5B38, - 2076: 0x5B39, - 2077: 0x5B3A, - 2078: 0x5B3B, - 2079: 0x5B3C, - 2080: 0x5B3D, - 2081: 0x5B3E, - 2082: 0x5B3F, - 2083: 0x5B41, - 2084: 0x5B42, - 2085: 0x5B43, - 2086: 0x5B44, - 2087: 0x5B45, - 2088: 0x5B46, - 2089: 0x5B47, - 2090: 0x5B48, - 2091: 0x5B49, - 2092: 0x5B4A, - 2093: 0x5B4B, - 2094: 0x5B4C, - 2095: 0x5B4D, - 2096: 0x5B4E, - 2097: 0x5B4F, - 2098: 0x5B52, - 2099: 0x5B56, - 2100: 0x5B5E, - 2101: 0x5B60, - 2102: 0x5B61, - 2103: 0x5B67, - 2104: 0x5B68, - 2105: 0x5B6B, - 2106: 0x5B6D, - 2107: 0x5B6E, - 2108: 0x5B6F, - 2109: 0x5B72, - 2110: 0x5B74, - 2111: 0x5B76, - 2112: 0x5B77, - 2113: 0x5B78, - 2114: 0x5B79, - 2115: 0x5B7B, - 2116: 0x5B7C, - 2117: 0x5B7E, - 2118: 0x5B7F, - 2119: 0x5B82, - 2120: 0x5B86, - 2121: 0x5B8A, - 2122: 0x5B8D, - 2123: 0x5B8E, - 2124: 0x5B90, - 2125: 0x5B91, - 2126: 0x5B92, - 2127: 0x5B94, - 2128: 0x5B96, - 2129: 0x5B9F, - 2130: 0x5BA7, - 2131: 0x5BA8, - 2132: 0x5BA9, - 2133: 0x5BAC, - 2134: 0x5BAD, - 2135: 0x5BAE, - 2136: 0x5BAF, - 2137: 0x5BB1, - 2138: 0x5BB2, - 2139: 0x5BB7, - 2140: 0x5BBA, - 2141: 0x5BBB, - 2142: 0x5BBC, - 2143: 0x5BC0, - 2144: 0x5BC1, - 2145: 0x5BC3, - 2146: 0x5BC8, - 2147: 0x5BC9, - 2148: 0x5BCA, - 2149: 0x5BCB, - 2150: 0x5BCD, - 2151: 0x5BCE, - 2152: 0x5BCF, - 2153: 0x5BD1, - 2154: 0x5BD4, - 2155: 0x5BD5, - 2156: 0x5BD6, - 2157: 0x5BD7, - 2158: 0x5BD8, - 2159: 0x5BD9, - 2160: 0x5BDA, - 2161: 0x5BDB, - 2162: 0x5BDC, - 2163: 0x5BE0, - 2164: 0x5BE2, - 2165: 0x5BE3, - 2166: 0x5BE6, - 2167: 0x5BE7, - 2168: 0x5BE9, - 2169: 0x5BEA, - 2170: 0x5BEB, - 2171: 0x5BEC, - 2172: 0x5BED, - 2173: 0x5BEF, - 2174: 0x5BF1, - 2175: 0x5BF2, - 2176: 0x5BF3, - 2177: 0x5BF4, - 2178: 0x5BF5, - 2179: 0x5BF6, - 2180: 0x5BF7, - 2181: 0x5BFD, - 2182: 0x5BFE, - 2183: 0x5C00, - 2184: 0x5C02, - 2185: 0x5C03, - 2186: 0x5C05, - 2187: 0x5C07, - 2188: 0x5C08, - 2189: 0x5C0B, - 2190: 0x5C0C, - 2191: 0x5C0D, - 2192: 0x5C0E, - 2193: 0x5C10, - 2194: 0x5C12, - 2195: 0x5C13, - 2196: 0x5C17, - 2197: 0x5C19, - 2198: 0x5C1B, - 2199: 0x5C1E, - 2200: 0x5C1F, - 2201: 0x5C20, - 2202: 0x5C21, - 2203: 0x5C23, - 2204: 0x5C26, - 2205: 0x5C28, - 2206: 0x5C29, - 2207: 0x5C2A, - 2208: 0x5C2B, - 2209: 0x5C2D, - 2210: 0x5C2E, - 2211: 0x5C2F, - 2212: 0x5C30, - 2213: 0x5C32, - 2214: 0x5C33, - 2215: 0x5C35, - 2216: 0x5C36, - 2217: 0x5C37, - 2218: 0x5C43, - 2219: 0x5C44, - 2220: 0x5C46, - 2221: 0x5C47, - 2222: 0x5C4C, - 2223: 0x5C4D, - 2224: 0x5C52, - 2225: 0x5C53, - 2226: 0x5C54, - 2227: 0x5C56, - 2228: 0x5C57, - 2229: 0x5C58, - 2230: 0x5C5A, - 2231: 0x5C5B, - 2232: 0x5C5C, - 2233: 0x5C5D, - 2234: 0x5C5F, - 2235: 0x5C62, - 2236: 0x5C64, - 2237: 0x5C67, - 2238: 0x5C68, - 2239: 0x5C69, - 2240: 0x5C6A, - 2241: 0x5C6B, - 2242: 0x5C6C, - 2243: 0x5C6D, - 2244: 0x5C70, - 2245: 0x5C72, - 2246: 0x5C73, - 2247: 0x5C74, - 2248: 0x5C75, - 2249: 0x5C76, - 2250: 0x5C77, - 2251: 0x5C78, - 2252: 0x5C7B, - 2253: 0x5C7C, - 2254: 0x5C7D, - 2255: 0x5C7E, - 2256: 0x5C80, - 2257: 0x5C83, - 2258: 0x5C84, - 2259: 0x5C85, - 2260: 0x5C86, - 2261: 0x5C87, - 2262: 0x5C89, - 2263: 0x5C8A, - 2264: 0x5C8B, - 2265: 0x5C8E, - 2266: 0x5C8F, - 2267: 0x5C92, - 2268: 0x5C93, - 2269: 0x5C95, - 2270: 0x5C9D, - 2271: 0x5C9E, - 2272: 0x5C9F, - 2273: 0x5CA0, - 2274: 0x5CA1, - 2275: 0x5CA4, - 2276: 0x5CA5, - 2277: 0x5CA6, - 2278: 0x5CA7, - 2279: 0x5CA8, - 2280: 0x5CAA, - 2281: 0x5CAE, - 2282: 0x5CAF, - 2283: 0x5CB0, - 2284: 0x5CB2, - 2285: 0x5CB4, - 2286: 0x5CB6, - 2287: 0x5CB9, - 2288: 0x5CBA, - 2289: 0x5CBB, - 2290: 0x5CBC, - 2291: 0x5CBE, - 2292: 0x5CC0, - 2293: 0x5CC2, - 2294: 0x5CC3, - 2295: 0x5CC5, - 2296: 0x5CC6, - 2297: 0x5CC7, - 2298: 0x5CC8, - 2299: 0x5CC9, - 2300: 0x5CCA, - 2301: 0x5CCC, - 2302: 0x5CCD, - 2303: 0x5CCE, - 2304: 0x5CCF, - 2305: 0x5CD0, - 2306: 0x5CD1, - 2307: 0x5CD3, - 2308: 0x5CD4, - 2309: 0x5CD5, - 2310: 0x5CD6, - 2311: 0x5CD7, - 2312: 0x5CD8, - 2313: 0x5CDA, - 2314: 0x5CDB, - 2315: 0x5CDC, - 2316: 0x5CDD, - 2317: 0x5CDE, - 2318: 0x5CDF, - 2319: 0x5CE0, - 2320: 0x5CE2, - 2321: 0x5CE3, - 2322: 0x5CE7, - 2323: 0x5CE9, - 2324: 0x5CEB, - 2325: 0x5CEC, - 2326: 0x5CEE, - 2327: 0x5CEF, - 2328: 0x5CF1, - 2329: 0x5CF2, - 2330: 0x5CF3, - 2331: 0x5CF4, - 2332: 0x5CF5, - 2333: 0x5CF6, - 2334: 0x5CF7, - 2335: 0x5CF8, - 2336: 0x5CF9, - 2337: 0x5CFA, - 2338: 0x5CFC, - 2339: 0x5CFD, - 2340: 0x5CFE, - 2341: 0x5CFF, - 2342: 0x5D00, - 2343: 0x5D01, - 2344: 0x5D04, - 2345: 0x5D05, - 2346: 0x5D08, - 2347: 0x5D09, - 2348: 0x5D0A, - 2349: 0x5D0B, - 2350: 0x5D0C, - 2351: 0x5D0D, - 2352: 0x5D0F, - 2353: 0x5D10, - 2354: 0x5D11, - 2355: 0x5D12, - 2356: 0x5D13, - 2357: 0x5D15, - 2358: 0x5D17, - 2359: 0x5D18, - 2360: 0x5D19, - 2361: 0x5D1A, - 2362: 0x5D1C, - 2363: 0x5D1D, - 2364: 0x5D1F, - 2365: 0x5D20, - 2366: 0x5D21, - 2367: 0x5D22, - 2368: 0x5D23, - 2369: 0x5D25, - 2370: 0x5D28, - 2371: 0x5D2A, - 2372: 0x5D2B, - 2373: 0x5D2C, - 2374: 0x5D2F, - 2375: 0x5D30, - 2376: 0x5D31, - 2377: 0x5D32, - 2378: 0x5D33, - 2379: 0x5D35, - 2380: 0x5D36, - 2381: 0x5D37, - 2382: 0x5D38, - 2383: 0x5D39, - 2384: 0x5D3A, - 2385: 0x5D3B, - 2386: 0x5D3C, - 2387: 0x5D3F, - 2388: 0x5D40, - 2389: 0x5D41, - 2390: 0x5D42, - 2391: 0x5D43, - 2392: 0x5D44, - 2393: 0x5D45, - 2394: 0x5D46, - 2395: 0x5D48, - 2396: 0x5D49, - 2397: 0x5D4D, - 2398: 0x5D4E, - 2399: 0x5D4F, - 2400: 0x5D50, - 2401: 0x5D51, - 2402: 0x5D52, - 2403: 0x5D53, - 2404: 0x5D54, - 2405: 0x5D55, - 2406: 0x5D56, - 2407: 0x5D57, - 2408: 0x5D59, - 2409: 0x5D5A, - 2410: 0x5D5C, - 2411: 0x5D5E, - 2412: 0x5D5F, - 2413: 0x5D60, - 2414: 0x5D61, - 2415: 0x5D62, - 2416: 0x5D63, - 2417: 0x5D64, - 2418: 0x5D65, - 2419: 0x5D66, - 2420: 0x5D67, - 2421: 0x5D68, - 2422: 0x5D6A, - 2423: 0x5D6D, - 2424: 0x5D6E, - 2425: 0x5D70, - 2426: 0x5D71, - 2427: 0x5D72, - 2428: 0x5D73, - 2429: 0x5D75, - 2430: 0x5D76, - 2431: 0x5D77, - 2432: 0x5D78, - 2433: 0x5D79, - 2434: 0x5D7A, - 2435: 0x5D7B, - 2436: 0x5D7C, - 2437: 0x5D7D, - 2438: 0x5D7E, - 2439: 0x5D7F, - 2440: 0x5D80, - 2441: 0x5D81, - 2442: 0x5D83, - 2443: 0x5D84, - 2444: 0x5D85, - 2445: 0x5D86, - 2446: 0x5D87, - 2447: 0x5D88, - 2448: 0x5D89, - 2449: 0x5D8A, - 2450: 0x5D8B, - 2451: 0x5D8C, - 2452: 0x5D8D, - 2453: 0x5D8E, - 2454: 0x5D8F, - 2455: 0x5D90, - 2456: 0x5D91, - 2457: 0x5D92, - 2458: 0x5D93, - 2459: 0x5D94, - 2460: 0x5D95, - 2461: 0x5D96, - 2462: 0x5D97, - 2463: 0x5D98, - 2464: 0x5D9A, - 2465: 0x5D9B, - 2466: 0x5D9C, - 2467: 0x5D9E, - 2468: 0x5D9F, - 2469: 0x5DA0, - 2470: 0x5DA1, - 2471: 0x5DA2, - 2472: 0x5DA3, - 2473: 0x5DA4, - 2474: 0x5DA5, - 2475: 0x5DA6, - 2476: 0x5DA7, - 2477: 0x5DA8, - 2478: 0x5DA9, - 2479: 0x5DAA, - 2480: 0x5DAB, - 2481: 0x5DAC, - 2482: 0x5DAD, - 2483: 0x5DAE, - 2484: 0x5DAF, - 2485: 0x5DB0, - 2486: 0x5DB1, - 2487: 0x5DB2, - 2488: 0x5DB3, - 2489: 0x5DB4, - 2490: 0x5DB5, - 2491: 0x5DB6, - 2492: 0x5DB8, - 2493: 0x5DB9, - 2494: 0x5DBA, - 2495: 0x5DBB, - 2496: 0x5DBC, - 2497: 0x5DBD, - 2498: 0x5DBE, - 2499: 0x5DBF, - 2500: 0x5DC0, - 2501: 0x5DC1, - 2502: 0x5DC2, - 2503: 0x5DC3, - 2504: 0x5DC4, - 2505: 0x5DC6, - 2506: 0x5DC7, - 2507: 0x5DC8, - 2508: 0x5DC9, - 2509: 0x5DCA, - 2510: 0x5DCB, - 2511: 0x5DCC, - 2512: 0x5DCE, - 2513: 0x5DCF, - 2514: 0x5DD0, - 2515: 0x5DD1, - 2516: 0x5DD2, - 2517: 0x5DD3, - 2518: 0x5DD4, - 2519: 0x5DD5, - 2520: 0x5DD6, - 2521: 0x5DD7, - 2522: 0x5DD8, - 2523: 0x5DD9, - 2524: 0x5DDA, - 2525: 0x5DDC, - 2526: 0x5DDF, - 2527: 0x5DE0, - 2528: 0x5DE3, - 2529: 0x5DE4, - 2530: 0x5DEA, - 2531: 0x5DEC, - 2532: 0x5DED, - 2533: 0x5DF0, - 2534: 0x5DF5, - 2535: 0x5DF6, - 2536: 0x5DF8, - 2537: 0x5DF9, - 2538: 0x5DFA, - 2539: 0x5DFB, - 2540: 0x5DFC, - 2541: 0x5DFF, - 2542: 0x5E00, - 2543: 0x5E04, - 2544: 0x5E07, - 2545: 0x5E09, - 2546: 0x5E0A, - 2547: 0x5E0B, - 2548: 0x5E0D, - 2549: 0x5E0E, - 2550: 0x5E12, - 2551: 0x5E13, - 2552: 0x5E17, - 2553: 0x5E1E, - 2554: 0x5E1F, - 2555: 0x5E20, - 2556: 0x5E21, - 2557: 0x5E22, - 2558: 0x5E23, - 2559: 0x5E24, - 2560: 0x5E25, - 2561: 0x5E28, - 2562: 0x5E29, - 2563: 0x5E2A, - 2564: 0x5E2B, - 2565: 0x5E2C, - 2566: 0x5E2F, - 2567: 0x5E30, - 2568: 0x5E32, - 2569: 0x5E33, - 2570: 0x5E34, - 2571: 0x5E35, - 2572: 0x5E36, - 2573: 0x5E39, - 2574: 0x5E3A, - 2575: 0x5E3E, - 2576: 0x5E3F, - 2577: 0x5E40, - 2578: 0x5E41, - 2579: 0x5E43, - 2580: 0x5E46, - 2581: 0x5E47, - 2582: 0x5E48, - 2583: 0x5E49, - 2584: 0x5E4A, - 2585: 0x5E4B, - 2586: 0x5E4D, - 2587: 0x5E4E, - 2588: 0x5E4F, - 2589: 0x5E50, - 2590: 0x5E51, - 2591: 0x5E52, - 2592: 0x5E53, - 2593: 0x5E56, - 2594: 0x5E57, - 2595: 0x5E58, - 2596: 0x5E59, - 2597: 0x5E5A, - 2598: 0x5E5C, - 2599: 0x5E5D, - 2600: 0x5E5F, - 2601: 0x5E60, - 2602: 0x5E63, - 2603: 0x5E64, - 2604: 0x5E65, - 2605: 0x5E66, - 2606: 0x5E67, - 2607: 0x5E68, - 2608: 0x5E69, - 2609: 0x5E6A, - 2610: 0x5E6B, - 2611: 0x5E6C, - 2612: 0x5E6D, - 2613: 0x5E6E, - 2614: 0x5E6F, - 2615: 0x5E70, - 2616: 0x5E71, - 2617: 0x5E75, - 2618: 0x5E77, - 2619: 0x5E79, - 2620: 0x5E7E, - 2621: 0x5E81, - 2622: 0x5E82, - 2623: 0x5E83, - 2624: 0x5E85, - 2625: 0x5E88, - 2626: 0x5E89, - 2627: 0x5E8C, - 2628: 0x5E8D, - 2629: 0x5E8E, - 2630: 0x5E92, - 2631: 0x5E98, - 2632: 0x5E9B, - 2633: 0x5E9D, - 2634: 0x5EA1, - 2635: 0x5EA2, - 2636: 0x5EA3, - 2637: 0x5EA4, - 2638: 0x5EA8, - 2639: 0x5EA9, - 2640: 0x5EAA, - 2641: 0x5EAB, - 2642: 0x5EAC, - 2643: 0x5EAE, - 2644: 0x5EAF, - 2645: 0x5EB0, - 2646: 0x5EB1, - 2647: 0x5EB2, - 2648: 0x5EB4, - 2649: 0x5EBA, - 2650: 0x5EBB, - 2651: 0x5EBC, - 2652: 0x5EBD, - 2653: 0x5EBF, - 2654: 0x5EC0, - 2655: 0x5EC1, - 2656: 0x5EC2, - 2657: 0x5EC3, - 2658: 0x5EC4, - 2659: 0x5EC5, - 2660: 0x5EC6, - 2661: 0x5EC7, - 2662: 0x5EC8, - 2663: 0x5ECB, - 2664: 0x5ECC, - 2665: 0x5ECD, - 2666: 0x5ECE, - 2667: 0x5ECF, - 2668: 0x5ED0, - 2669: 0x5ED4, - 2670: 0x5ED5, - 2671: 0x5ED7, - 2672: 0x5ED8, - 2673: 0x5ED9, - 2674: 0x5EDA, - 2675: 0x5EDC, - 2676: 0x5EDD, - 2677: 0x5EDE, - 2678: 0x5EDF, - 2679: 0x5EE0, - 2680: 0x5EE1, - 2681: 0x5EE2, - 2682: 0x5EE3, - 2683: 0x5EE4, - 2684: 0x5EE5, - 2685: 0x5EE6, - 2686: 0x5EE7, - 2687: 0x5EE9, - 2688: 0x5EEB, - 2689: 0x5EEC, - 2690: 0x5EED, - 2691: 0x5EEE, - 2692: 0x5EEF, - 2693: 0x5EF0, - 2694: 0x5EF1, - 2695: 0x5EF2, - 2696: 0x5EF3, - 2697: 0x5EF5, - 2698: 0x5EF8, - 2699: 0x5EF9, - 2700: 0x5EFB, - 2701: 0x5EFC, - 2702: 0x5EFD, - 2703: 0x5F05, - 2704: 0x5F06, - 2705: 0x5F07, - 2706: 0x5F09, - 2707: 0x5F0C, - 2708: 0x5F0D, - 2709: 0x5F0E, - 2710: 0x5F10, - 2711: 0x5F12, - 2712: 0x5F14, - 2713: 0x5F16, - 2714: 0x5F19, - 2715: 0x5F1A, - 2716: 0x5F1C, - 2717: 0x5F1D, - 2718: 0x5F1E, - 2719: 0x5F21, - 2720: 0x5F22, - 2721: 0x5F23, - 2722: 0x5F24, - 2723: 0x5F28, - 2724: 0x5F2B, - 2725: 0x5F2C, - 2726: 0x5F2E, - 2727: 0x5F30, - 2728: 0x5F32, - 2729: 0x5F33, - 2730: 0x5F34, - 2731: 0x5F35, - 2732: 0x5F36, - 2733: 0x5F37, - 2734: 0x5F38, - 2735: 0x5F3B, - 2736: 0x5F3D, - 2737: 0x5F3E, - 2738: 0x5F3F, - 2739: 0x5F41, - 2740: 0x5F42, - 2741: 0x5F43, - 2742: 0x5F44, - 2743: 0x5F45, - 2744: 0x5F46, - 2745: 0x5F47, - 2746: 0x5F48, - 2747: 0x5F49, - 2748: 0x5F4A, - 2749: 0x5F4B, - 2750: 0x5F4C, - 2751: 0x5F4D, - 2752: 0x5F4E, - 2753: 0x5F4F, - 2754: 0x5F51, - 2755: 0x5F54, - 2756: 0x5F59, - 2757: 0x5F5A, - 2758: 0x5F5B, - 2759: 0x5F5C, - 2760: 0x5F5E, - 2761: 0x5F5F, - 2762: 0x5F60, - 2763: 0x5F63, - 2764: 0x5F65, - 2765: 0x5F67, - 2766: 0x5F68, - 2767: 0x5F6B, - 2768: 0x5F6E, - 2769: 0x5F6F, - 2770: 0x5F72, - 2771: 0x5F74, - 2772: 0x5F75, - 2773: 0x5F76, - 2774: 0x5F78, - 2775: 0x5F7A, - 2776: 0x5F7D, - 2777: 0x5F7E, - 2778: 0x5F7F, - 2779: 0x5F83, - 2780: 0x5F86, - 2781: 0x5F8D, - 2782: 0x5F8E, - 2783: 0x5F8F, - 2784: 0x5F91, - 2785: 0x5F93, - 2786: 0x5F94, - 2787: 0x5F96, - 2788: 0x5F9A, - 2789: 0x5F9B, - 2790: 0x5F9D, - 2791: 0x5F9E, - 2792: 0x5F9F, - 2793: 0x5FA0, - 2794: 0x5FA2, - 2795: 0x5FA3, - 2796: 0x5FA4, - 2797: 0x5FA5, - 2798: 0x5FA6, - 2799: 0x5FA7, - 2800: 0x5FA9, - 2801: 0x5FAB, - 2802: 0x5FAC, - 2803: 0x5FAF, - 2804: 0x5FB0, - 2805: 0x5FB1, - 2806: 0x5FB2, - 2807: 0x5FB3, - 2808: 0x5FB4, - 2809: 0x5FB6, - 2810: 0x5FB8, - 2811: 0x5FB9, - 2812: 0x5FBA, - 2813: 0x5FBB, - 2814: 0x5FBE, - 2815: 0x5FBF, - 2816: 0x5FC0, - 2817: 0x5FC1, - 2818: 0x5FC2, - 2819: 0x5FC7, - 2820: 0x5FC8, - 2821: 0x5FCA, - 2822: 0x5FCB, - 2823: 0x5FCE, - 2824: 0x5FD3, - 2825: 0x5FD4, - 2826: 0x5FD5, - 2827: 0x5FDA, - 2828: 0x5FDB, - 2829: 0x5FDC, - 2830: 0x5FDE, - 2831: 0x5FDF, - 2832: 0x5FE2, - 2833: 0x5FE3, - 2834: 0x5FE5, - 2835: 0x5FE6, - 2836: 0x5FE8, - 2837: 0x5FE9, - 2838: 0x5FEC, - 2839: 0x5FEF, - 2840: 0x5FF0, - 2841: 0x5FF2, - 2842: 0x5FF3, - 2843: 0x5FF4, - 2844: 0x5FF6, - 2845: 0x5FF7, - 2846: 0x5FF9, - 2847: 0x5FFA, - 2848: 0x5FFC, - 2849: 0x6007, - 2850: 0x6008, - 2851: 0x6009, - 2852: 0x600B, - 2853: 0x600C, - 2854: 0x6010, - 2855: 0x6011, - 2856: 0x6013, - 2857: 0x6017, - 2858: 0x6018, - 2859: 0x601A, - 2860: 0x601E, - 2861: 0x601F, - 2862: 0x6022, - 2863: 0x6023, - 2864: 0x6024, - 2865: 0x602C, - 2866: 0x602D, - 2867: 0x602E, - 2868: 0x6030, - 2869: 0x6031, - 2870: 0x6032, - 2871: 0x6033, - 2872: 0x6034, - 2873: 0x6036, - 2874: 0x6037, - 2875: 0x6038, - 2876: 0x6039, - 2877: 0x603A, - 2878: 0x603D, - 2879: 0x603E, - 2880: 0x6040, - 2881: 0x6044, - 2882: 0x6045, - 2883: 0x6046, - 2884: 0x6047, - 2885: 0x6048, - 2886: 0x6049, - 2887: 0x604A, - 2888: 0x604C, - 2889: 0x604E, - 2890: 0x604F, - 2891: 0x6051, - 2892: 0x6053, - 2893: 0x6054, - 2894: 0x6056, - 2895: 0x6057, - 2896: 0x6058, - 2897: 0x605B, - 2898: 0x605C, - 2899: 0x605E, - 2900: 0x605F, - 2901: 0x6060, - 2902: 0x6061, - 2903: 0x6065, - 2904: 0x6066, - 2905: 0x606E, - 2906: 0x6071, - 2907: 0x6072, - 2908: 0x6074, - 2909: 0x6075, - 2910: 0x6077, - 2911: 0x607E, - 2912: 0x6080, - 2913: 0x6081, - 2914: 0x6082, - 2915: 0x6085, - 2916: 0x6086, - 2917: 0x6087, - 2918: 0x6088, - 2919: 0x608A, - 2920: 0x608B, - 2921: 0x608E, - 2922: 0x608F, - 2923: 0x6090, - 2924: 0x6091, - 2925: 0x6093, - 2926: 0x6095, - 2927: 0x6097, - 2928: 0x6098, - 2929: 0x6099, - 2930: 0x609C, - 2931: 0x609E, - 2932: 0x60A1, - 2933: 0x60A2, - 2934: 0x60A4, - 2935: 0x60A5, - 2936: 0x60A7, - 2937: 0x60A9, - 2938: 0x60AA, - 2939: 0x60AE, - 2940: 0x60B0, - 2941: 0x60B3, - 2942: 0x60B5, - 2943: 0x60B6, - 2944: 0x60B7, - 2945: 0x60B9, - 2946: 0x60BA, - 2947: 0x60BD, - 2948: 0x60BE, - 2949: 0x60BF, - 2950: 0x60C0, - 2951: 0x60C1, - 2952: 0x60C2, - 2953: 0x60C3, - 2954: 0x60C4, - 2955: 0x60C7, - 2956: 0x60C8, - 2957: 0x60C9, - 2958: 0x60CC, - 2959: 0x60CD, - 2960: 0x60CE, - 2961: 0x60CF, - 2962: 0x60D0, - 2963: 0x60D2, - 2964: 0x60D3, - 2965: 0x60D4, - 2966: 0x60D6, - 2967: 0x60D7, - 2968: 0x60D9, - 2969: 0x60DB, - 2970: 0x60DE, - 2971: 0x60E1, - 2972: 0x60E2, - 2973: 0x60E3, - 2974: 0x60E4, - 2975: 0x60E5, - 2976: 0x60EA, - 2977: 0x60F1, - 2978: 0x60F2, - 2979: 0x60F5, - 2980: 0x60F7, - 2981: 0x60F8, - 2982: 0x60FB, - 2983: 0x60FC, - 2984: 0x60FD, - 2985: 0x60FE, - 2986: 0x60FF, - 2987: 0x6102, - 2988: 0x6103, - 2989: 0x6104, - 2990: 0x6105, - 2991: 0x6107, - 2992: 0x610A, - 2993: 0x610B, - 2994: 0x610C, - 2995: 0x6110, - 2996: 0x6111, - 2997: 0x6112, - 2998: 0x6113, - 2999: 0x6114, - 3000: 0x6116, - 3001: 0x6117, - 3002: 0x6118, - 3003: 0x6119, - 3004: 0x611B, - 3005: 0x611C, - 3006: 0x611D, - 3007: 0x611E, - 3008: 0x6121, - 3009: 0x6122, - 3010: 0x6125, - 3011: 0x6128, - 3012: 0x6129, - 3013: 0x612A, - 3014: 0x612C, - 3015: 0x612D, - 3016: 0x612E, - 3017: 0x612F, - 3018: 0x6130, - 3019: 0x6131, - 3020: 0x6132, - 3021: 0x6133, - 3022: 0x6134, - 3023: 0x6135, - 3024: 0x6136, - 3025: 0x6137, - 3026: 0x6138, - 3027: 0x6139, - 3028: 0x613A, - 3029: 0x613B, - 3030: 0x613C, - 3031: 0x613D, - 3032: 0x613E, - 3033: 0x6140, - 3034: 0x6141, - 3035: 0x6142, - 3036: 0x6143, - 3037: 0x6144, - 3038: 0x6145, - 3039: 0x6146, - 3040: 0x6147, - 3041: 0x6149, - 3042: 0x614B, - 3043: 0x614D, - 3044: 0x614F, - 3045: 0x6150, - 3046: 0x6152, - 3047: 0x6153, - 3048: 0x6154, - 3049: 0x6156, - 3050: 0x6157, - 3051: 0x6158, - 3052: 0x6159, - 3053: 0x615A, - 3054: 0x615B, - 3055: 0x615C, - 3056: 0x615E, - 3057: 0x615F, - 3058: 0x6160, - 3059: 0x6161, - 3060: 0x6163, - 3061: 0x6164, - 3062: 0x6165, - 3063: 0x6166, - 3064: 0x6169, - 3065: 0x616A, - 3066: 0x616B, - 3067: 0x616C, - 3068: 0x616D, - 3069: 0x616E, - 3070: 0x616F, - 3071: 0x6171, - 3072: 0x6172, - 3073: 0x6173, - 3074: 0x6174, - 3075: 0x6176, - 3076: 0x6178, - 3077: 0x6179, - 3078: 0x617A, - 3079: 0x617B, - 3080: 0x617C, - 3081: 0x617D, - 3082: 0x617E, - 3083: 0x617F, - 3084: 0x6180, - 3085: 0x6181, - 3086: 0x6182, - 3087: 0x6183, - 3088: 0x6184, - 3089: 0x6185, - 3090: 0x6186, - 3091: 0x6187, - 3092: 0x6188, - 3093: 0x6189, - 3094: 0x618A, - 3095: 0x618C, - 3096: 0x618D, - 3097: 0x618F, - 3098: 0x6190, - 3099: 0x6191, - 3100: 0x6192, - 3101: 0x6193, - 3102: 0x6195, - 3103: 0x6196, - 3104: 0x6197, - 3105: 0x6198, - 3106: 0x6199, - 3107: 0x619A, - 3108: 0x619B, - 3109: 0x619C, - 3110: 0x619E, - 3111: 0x619F, - 3112: 0x61A0, - 3113: 0x61A1, - 3114: 0x61A2, - 3115: 0x61A3, - 3116: 0x61A4, - 3117: 0x61A5, - 3118: 0x61A6, - 3119: 0x61AA, - 3120: 0x61AB, - 3121: 0x61AD, - 3122: 0x61AE, - 3123: 0x61AF, - 3124: 0x61B0, - 3125: 0x61B1, - 3126: 0x61B2, - 3127: 0x61B3, - 3128: 0x61B4, - 3129: 0x61B5, - 3130: 0x61B6, - 3131: 0x61B8, - 3132: 0x61B9, - 3133: 0x61BA, - 3134: 0x61BB, - 3135: 0x61BC, - 3136: 0x61BD, - 3137: 0x61BF, - 3138: 0x61C0, - 3139: 0x61C1, - 3140: 0x61C3, - 3141: 0x61C4, - 3142: 0x61C5, - 3143: 0x61C6, - 3144: 0x61C7, - 3145: 0x61C9, - 3146: 0x61CC, - 3147: 0x61CD, - 3148: 0x61CE, - 3149: 0x61CF, - 3150: 0x61D0, - 3151: 0x61D3, - 3152: 0x61D5, - 3153: 0x61D6, - 3154: 0x61D7, - 3155: 0x61D8, - 3156: 0x61D9, - 3157: 0x61DA, - 3158: 0x61DB, - 3159: 0x61DC, - 3160: 0x61DD, - 3161: 0x61DE, - 3162: 0x61DF, - 3163: 0x61E0, - 3164: 0x61E1, - 3165: 0x61E2, - 3166: 0x61E3, - 3167: 0x61E4, - 3168: 0x61E5, - 3169: 0x61E7, - 3170: 0x61E8, - 3171: 0x61E9, - 3172: 0x61EA, - 3173: 0x61EB, - 3174: 0x61EC, - 3175: 0x61ED, - 3176: 0x61EE, - 3177: 0x61EF, - 3178: 0x61F0, - 3179: 0x61F1, - 3180: 0x61F2, - 3181: 0x61F3, - 3182: 0x61F4, - 3183: 0x61F6, - 3184: 0x61F7, - 3185: 0x61F8, - 3186: 0x61F9, - 3187: 0x61FA, - 3188: 0x61FB, - 3189: 0x61FC, - 3190: 0x61FD, - 3191: 0x61FE, - 3192: 0x6200, - 3193: 0x6201, - 3194: 0x6202, - 3195: 0x6203, - 3196: 0x6204, - 3197: 0x6205, - 3198: 0x6207, - 3199: 0x6209, - 3200: 0x6213, - 3201: 0x6214, - 3202: 0x6219, - 3203: 0x621C, - 3204: 0x621D, - 3205: 0x621E, - 3206: 0x6220, - 3207: 0x6223, - 3208: 0x6226, - 3209: 0x6227, - 3210: 0x6228, - 3211: 0x6229, - 3212: 0x622B, - 3213: 0x622D, - 3214: 0x622F, - 3215: 0x6230, - 3216: 0x6231, - 3217: 0x6232, - 3218: 0x6235, - 3219: 0x6236, - 3220: 0x6238, - 3221: 0x6239, - 3222: 0x623A, - 3223: 0x623B, - 3224: 0x623C, - 3225: 0x6242, - 3226: 0x6244, - 3227: 0x6245, - 3228: 0x6246, - 3229: 0x624A, - 3230: 0x624F, - 3231: 0x6250, - 3232: 0x6255, - 3233: 0x6256, - 3234: 0x6257, - 3235: 0x6259, - 3236: 0x625A, - 3237: 0x625C, - 3238: 0x625D, - 3239: 0x625E, - 3240: 0x625F, - 3241: 0x6260, - 3242: 0x6261, - 3243: 0x6262, - 3244: 0x6264, - 3245: 0x6265, - 3246: 0x6268, - 3247: 0x6271, - 3248: 0x6272, - 3249: 0x6274, - 3250: 0x6275, - 3251: 0x6277, - 3252: 0x6278, - 3253: 0x627A, - 3254: 0x627B, - 3255: 0x627D, - 3256: 0x6281, - 3257: 0x6282, - 3258: 0x6283, - 3259: 0x6285, - 3260: 0x6286, - 3261: 0x6287, - 3262: 0x6288, - 3263: 0x628B, - 3264: 0x628C, - 3265: 0x628D, - 3266: 0x628E, - 3267: 0x628F, - 3268: 0x6290, - 3269: 0x6294, - 3270: 0x6299, - 3271: 0x629C, - 3272: 0x629D, - 3273: 0x629E, - 3274: 0x62A3, - 3275: 0x62A6, - 3276: 0x62A7, - 3277: 0x62A9, - 3278: 0x62AA, - 3279: 0x62AD, - 3280: 0x62AE, - 3281: 0x62AF, - 3282: 0x62B0, - 3283: 0x62B2, - 3284: 0x62B3, - 3285: 0x62B4, - 3286: 0x62B6, - 3287: 0x62B7, - 3288: 0x62B8, - 3289: 0x62BA, - 3290: 0x62BE, - 3291: 0x62C0, - 3292: 0x62C1, - 3293: 0x62C3, - 3294: 0x62CB, - 3295: 0x62CF, - 3296: 0x62D1, - 3297: 0x62D5, - 3298: 0x62DD, - 3299: 0x62DE, - 3300: 0x62E0, - 3301: 0x62E1, - 3302: 0x62E4, - 3303: 0x62EA, - 3304: 0x62EB, - 3305: 0x62F0, - 3306: 0x62F2, - 3307: 0x62F5, - 3308: 0x62F8, - 3309: 0x62F9, - 3310: 0x62FA, - 3311: 0x62FB, - 3312: 0x6300, - 3313: 0x6303, - 3314: 0x6304, - 3315: 0x6305, - 3316: 0x6306, - 3317: 0x630A, - 3318: 0x630B, - 3319: 0x630C, - 3320: 0x630D, - 3321: 0x630F, - 3322: 0x6310, - 3323: 0x6312, - 3324: 0x6313, - 3325: 0x6314, - 3326: 0x6315, - 3327: 0x6317, - 3328: 0x6318, - 3329: 0x6319, - 3330: 0x631C, - 3331: 0x6326, - 3332: 0x6327, - 3333: 0x6329, - 3334: 0x632C, - 3335: 0x632D, - 3336: 0x632E, - 3337: 0x6330, - 3338: 0x6331, - 3339: 0x6333, - 3340: 0x6334, - 3341: 0x6335, - 3342: 0x6336, - 3343: 0x6337, - 3344: 0x6338, - 3345: 0x633B, - 3346: 0x633C, - 3347: 0x633E, - 3348: 0x633F, - 3349: 0x6340, - 3350: 0x6341, - 3351: 0x6344, - 3352: 0x6347, - 3353: 0x6348, - 3354: 0x634A, - 3355: 0x6351, - 3356: 0x6352, - 3357: 0x6353, - 3358: 0x6354, - 3359: 0x6356, - 3360: 0x6357, - 3361: 0x6358, - 3362: 0x6359, - 3363: 0x635A, - 3364: 0x635B, - 3365: 0x635C, - 3366: 0x635D, - 3367: 0x6360, - 3368: 0x6364, - 3369: 0x6365, - 3370: 0x6366, - 3371: 0x6368, - 3372: 0x636A, - 3373: 0x636B, - 3374: 0x636C, - 3375: 0x636F, - 3376: 0x6370, - 3377: 0x6372, - 3378: 0x6373, - 3379: 0x6374, - 3380: 0x6375, - 3381: 0x6378, - 3382: 0x6379, - 3383: 0x637C, - 3384: 0x637D, - 3385: 0x637E, - 3386: 0x637F, - 3387: 0x6381, - 3388: 0x6383, - 3389: 0x6384, - 3390: 0x6385, - 3391: 0x6386, - 3392: 0x638B, - 3393: 0x638D, - 3394: 0x6391, - 3395: 0x6393, - 3396: 0x6394, - 3397: 0x6395, - 3398: 0x6397, - 3399: 0x6399, - 3400: 0x639A, - 3401: 0x639B, - 3402: 0x639C, - 3403: 0x639D, - 3404: 0x639E, - 3405: 0x639F, - 3406: 0x63A1, - 3407: 0x63A4, - 3408: 0x63A6, - 3409: 0x63AB, - 3410: 0x63AF, - 3411: 0x63B1, - 3412: 0x63B2, - 3413: 0x63B5, - 3414: 0x63B6, - 3415: 0x63B9, - 3416: 0x63BB, - 3417: 0x63BD, - 3418: 0x63BF, - 3419: 0x63C0, - 3420: 0x63C1, - 3421: 0x63C2, - 3422: 0x63C3, - 3423: 0x63C5, - 3424: 0x63C7, - 3425: 0x63C8, - 3426: 0x63CA, - 3427: 0x63CB, - 3428: 0x63CC, - 3429: 0x63D1, - 3430: 0x63D3, - 3431: 0x63D4, - 3432: 0x63D5, - 3433: 0x63D7, - 3434: 0x63D8, - 3435: 0x63D9, - 3436: 0x63DA, - 3437: 0x63DB, - 3438: 0x63DC, - 3439: 0x63DD, - 3440: 0x63DF, - 3441: 0x63E2, - 3442: 0x63E4, - 3443: 0x63E5, - 3444: 0x63E6, - 3445: 0x63E7, - 3446: 0x63E8, - 3447: 0x63EB, - 3448: 0x63EC, - 3449: 0x63EE, - 3450: 0x63EF, - 3451: 0x63F0, - 3452: 0x63F1, - 3453: 0x63F3, - 3454: 0x63F5, - 3455: 0x63F7, - 3456: 0x63F9, - 3457: 0x63FA, - 3458: 0x63FB, - 3459: 0x63FC, - 3460: 0x63FE, - 3461: 0x6403, - 3462: 0x6404, - 3463: 0x6406, - 3464: 0x6407, - 3465: 0x6408, - 3466: 0x6409, - 3467: 0x640A, - 3468: 0x640D, - 3469: 0x640E, - 3470: 0x6411, - 3471: 0x6412, - 3472: 0x6415, - 3473: 0x6416, - 3474: 0x6417, - 3475: 0x6418, - 3476: 0x6419, - 3477: 0x641A, - 3478: 0x641D, - 3479: 0x641F, - 3480: 0x6422, - 3481: 0x6423, - 3482: 0x6424, - 3483: 0x6425, - 3484: 0x6427, - 3485: 0x6428, - 3486: 0x6429, - 3487: 0x642B, - 3488: 0x642E, - 3489: 0x642F, - 3490: 0x6430, - 3491: 0x6431, - 3492: 0x6432, - 3493: 0x6433, - 3494: 0x6435, - 3495: 0x6436, - 3496: 0x6437, - 3497: 0x6438, - 3498: 0x6439, - 3499: 0x643B, - 3500: 0x643C, - 3501: 0x643E, - 3502: 0x6440, - 3503: 0x6442, - 3504: 0x6443, - 3505: 0x6449, - 3506: 0x644B, - 3507: 0x644C, - 3508: 0x644D, - 3509: 0x644E, - 3510: 0x644F, - 3511: 0x6450, - 3512: 0x6451, - 3513: 0x6453, - 3514: 0x6455, - 3515: 0x6456, - 3516: 0x6457, - 3517: 0x6459, - 3518: 0x645A, - 3519: 0x645B, - 3520: 0x645C, - 3521: 0x645D, - 3522: 0x645F, - 3523: 0x6460, - 3524: 0x6461, - 3525: 0x6462, - 3526: 0x6463, - 3527: 0x6464, - 3528: 0x6465, - 3529: 0x6466, - 3530: 0x6468, - 3531: 0x646A, - 3532: 0x646B, - 3533: 0x646C, - 3534: 0x646E, - 3535: 0x646F, - 3536: 0x6470, - 3537: 0x6471, - 3538: 0x6472, - 3539: 0x6473, - 3540: 0x6474, - 3541: 0x6475, - 3542: 0x6476, - 3543: 0x6477, - 3544: 0x647B, - 3545: 0x647C, - 3546: 0x647D, - 3547: 0x647E, - 3548: 0x647F, - 3549: 0x6480, - 3550: 0x6481, - 3551: 0x6483, - 3552: 0x6486, - 3553: 0x6488, - 3554: 0x6489, - 3555: 0x648A, - 3556: 0x648B, - 3557: 0x648C, - 3558: 0x648D, - 3559: 0x648E, - 3560: 0x648F, - 3561: 0x6490, - 3562: 0x6493, - 3563: 0x6494, - 3564: 0x6497, - 3565: 0x6498, - 3566: 0x649A, - 3567: 0x649B, - 3568: 0x649C, - 3569: 0x649D, - 3570: 0x649F, - 3571: 0x64A0, - 3572: 0x64A1, - 3573: 0x64A2, - 3574: 0x64A3, - 3575: 0x64A5, - 3576: 0x64A6, - 3577: 0x64A7, - 3578: 0x64A8, - 3579: 0x64AA, - 3580: 0x64AB, - 3581: 0x64AF, - 3582: 0x64B1, - 3583: 0x64B2, - 3584: 0x64B3, - 3585: 0x64B4, - 3586: 0x64B6, - 3587: 0x64B9, - 3588: 0x64BB, - 3589: 0x64BD, - 3590: 0x64BE, - 3591: 0x64BF, - 3592: 0x64C1, - 3593: 0x64C3, - 3594: 0x64C4, - 3595: 0x64C6, - 3596: 0x64C7, - 3597: 0x64C8, - 3598: 0x64C9, - 3599: 0x64CA, - 3600: 0x64CB, - 3601: 0x64CC, - 3602: 0x64CF, - 3603: 0x64D1, - 3604: 0x64D3, - 3605: 0x64D4, - 3606: 0x64D5, - 3607: 0x64D6, - 3608: 0x64D9, - 3609: 0x64DA, - 3610: 0x64DB, - 3611: 0x64DC, - 3612: 0x64DD, - 3613: 0x64DF, - 3614: 0x64E0, - 3615: 0x64E1, - 3616: 0x64E3, - 3617: 0x64E5, - 3618: 0x64E7, - 3619: 0x64E8, - 3620: 0x64E9, - 3621: 0x64EA, - 3622: 0x64EB, - 3623: 0x64EC, - 3624: 0x64ED, - 3625: 0x64EE, - 3626: 0x64EF, - 3627: 0x64F0, - 3628: 0x64F1, - 3629: 0x64F2, - 3630: 0x64F3, - 3631: 0x64F4, - 3632: 0x64F5, - 3633: 0x64F6, - 3634: 0x64F7, - 3635: 0x64F8, - 3636: 0x64F9, - 3637: 0x64FA, - 3638: 0x64FB, - 3639: 0x64FC, - 3640: 0x64FD, - 3641: 0x64FE, - 3642: 0x64FF, - 3643: 0x6501, - 3644: 0x6502, - 3645: 0x6503, - 3646: 0x6504, - 3647: 0x6505, - 3648: 0x6506, - 3649: 0x6507, - 3650: 0x6508, - 3651: 0x650A, - 3652: 0x650B, - 3653: 0x650C, - 3654: 0x650D, - 3655: 0x650E, - 3656: 0x650F, - 3657: 0x6510, - 3658: 0x6511, - 3659: 0x6513, - 3660: 0x6514, - 3661: 0x6515, - 3662: 0x6516, - 3663: 0x6517, - 3664: 0x6519, - 3665: 0x651A, - 3666: 0x651B, - 3667: 0x651C, - 3668: 0x651D, - 3669: 0x651E, - 3670: 0x651F, - 3671: 0x6520, - 3672: 0x6521, - 3673: 0x6522, - 3674: 0x6523, - 3675: 0x6524, - 3676: 0x6526, - 3677: 0x6527, - 3678: 0x6528, - 3679: 0x6529, - 3680: 0x652A, - 3681: 0x652C, - 3682: 0x652D, - 3683: 0x6530, - 3684: 0x6531, - 3685: 0x6532, - 3686: 0x6533, - 3687: 0x6537, - 3688: 0x653A, - 3689: 0x653C, - 3690: 0x653D, - 3691: 0x6540, - 3692: 0x6541, - 3693: 0x6542, - 3694: 0x6543, - 3695: 0x6544, - 3696: 0x6546, - 3697: 0x6547, - 3698: 0x654A, - 3699: 0x654B, - 3700: 0x654D, - 3701: 0x654E, - 3702: 0x6550, - 3703: 0x6552, - 3704: 0x6553, - 3705: 0x6554, - 3706: 0x6557, - 3707: 0x6558, - 3708: 0x655A, - 3709: 0x655C, - 3710: 0x655F, - 3711: 0x6560, - 3712: 0x6561, - 3713: 0x6564, - 3714: 0x6565, - 3715: 0x6567, - 3716: 0x6568, - 3717: 0x6569, - 3718: 0x656A, - 3719: 0x656D, - 3720: 0x656E, - 3721: 0x656F, - 3722: 0x6571, - 3723: 0x6573, - 3724: 0x6575, - 3725: 0x6576, - 3726: 0x6578, - 3727: 0x6579, - 3728: 0x657A, - 3729: 0x657B, - 3730: 0x657C, - 3731: 0x657D, - 3732: 0x657E, - 3733: 0x657F, - 3734: 0x6580, - 3735: 0x6581, - 3736: 0x6582, - 3737: 0x6583, - 3738: 0x6584, - 3739: 0x6585, - 3740: 0x6586, - 3741: 0x6588, - 3742: 0x6589, - 3743: 0x658A, - 3744: 0x658D, - 3745: 0x658E, - 3746: 0x658F, - 3747: 0x6592, - 3748: 0x6594, - 3749: 0x6595, - 3750: 0x6596, - 3751: 0x6598, - 3752: 0x659A, - 3753: 0x659D, - 3754: 0x659E, - 3755: 0x65A0, - 3756: 0x65A2, - 3757: 0x65A3, - 3758: 0x65A6, - 3759: 0x65A8, - 3760: 0x65AA, - 3761: 0x65AC, - 3762: 0x65AE, - 3763: 0x65B1, - 3764: 0x65B2, - 3765: 0x65B3, - 3766: 0x65B4, - 3767: 0x65B5, - 3768: 0x65B6, - 3769: 0x65B7, - 3770: 0x65B8, - 3771: 0x65BA, - 3772: 0x65BB, - 3773: 0x65BE, - 3774: 0x65BF, - 3775: 0x65C0, - 3776: 0x65C2, - 3777: 0x65C7, - 3778: 0x65C8, - 3779: 0x65C9, - 3780: 0x65CA, - 3781: 0x65CD, - 3782: 0x65D0, - 3783: 0x65D1, - 3784: 0x65D3, - 3785: 0x65D4, - 3786: 0x65D5, - 3787: 0x65D8, - 3788: 0x65D9, - 3789: 0x65DA, - 3790: 0x65DB, - 3791: 0x65DC, - 3792: 0x65DD, - 3793: 0x65DE, - 3794: 0x65DF, - 3795: 0x65E1, - 3796: 0x65E3, - 3797: 0x65E4, - 3798: 0x65EA, - 3799: 0x65EB, - 3800: 0x65F2, - 3801: 0x65F3, - 3802: 0x65F4, - 3803: 0x65F5, - 3804: 0x65F8, - 3805: 0x65F9, - 3806: 0x65FB, - 3807: 0x65FC, - 3808: 0x65FD, - 3809: 0x65FE, - 3810: 0x65FF, - 3811: 0x6601, - 3812: 0x6604, - 3813: 0x6605, - 3814: 0x6607, - 3815: 0x6608, - 3816: 0x6609, - 3817: 0x660B, - 3818: 0x660D, - 3819: 0x6610, - 3820: 0x6611, - 3821: 0x6612, - 3822: 0x6616, - 3823: 0x6617, - 3824: 0x6618, - 3825: 0x661A, - 3826: 0x661B, - 3827: 0x661C, - 3828: 0x661E, - 3829: 0x6621, - 3830: 0x6622, - 3831: 0x6623, - 3832: 0x6624, - 3833: 0x6626, - 3834: 0x6629, - 3835: 0x662A, - 3836: 0x662B, - 3837: 0x662C, - 3838: 0x662E, - 3839: 0x6630, - 3840: 0x6632, - 3841: 0x6633, - 3842: 0x6637, - 3843: 0x6638, - 3844: 0x6639, - 3845: 0x663A, - 3846: 0x663B, - 3847: 0x663D, - 3848: 0x663F, - 3849: 0x6640, - 3850: 0x6642, - 3851: 0x6644, - 3852: 0x6645, - 3853: 0x6646, - 3854: 0x6647, - 3855: 0x6648, - 3856: 0x6649, - 3857: 0x664A, - 3858: 0x664D, - 3859: 0x664E, - 3860: 0x6650, - 3861: 0x6651, - 3862: 0x6658, - 3863: 0x6659, - 3864: 0x665B, - 3865: 0x665C, - 3866: 0x665D, - 3867: 0x665E, - 3868: 0x6660, - 3869: 0x6662, - 3870: 0x6663, - 3871: 0x6665, - 3872: 0x6667, - 3873: 0x6669, - 3874: 0x666A, - 3875: 0x666B, - 3876: 0x666C, - 3877: 0x666D, - 3878: 0x6671, - 3879: 0x6672, - 3880: 0x6673, - 3881: 0x6675, - 3882: 0x6678, - 3883: 0x6679, - 3884: 0x667B, - 3885: 0x667C, - 3886: 0x667D, - 3887: 0x667F, - 3888: 0x6680, - 3889: 0x6681, - 3890: 0x6683, - 3891: 0x6685, - 3892: 0x6686, - 3893: 0x6688, - 3894: 0x6689, - 3895: 0x668A, - 3896: 0x668B, - 3897: 0x668D, - 3898: 0x668E, - 3899: 0x668F, - 3900: 0x6690, - 3901: 0x6692, - 3902: 0x6693, - 3903: 0x6694, - 3904: 0x6695, - 3905: 0x6698, - 3906: 0x6699, - 3907: 0x669A, - 3908: 0x669B, - 3909: 0x669C, - 3910: 0x669E, - 3911: 0x669F, - 3912: 0x66A0, - 3913: 0x66A1, - 3914: 0x66A2, - 3915: 0x66A3, - 3916: 0x66A4, - 3917: 0x66A5, - 3918: 0x66A6, - 3919: 0x66A9, - 3920: 0x66AA, - 3921: 0x66AB, - 3922: 0x66AC, - 3923: 0x66AD, - 3924: 0x66AF, - 3925: 0x66B0, - 3926: 0x66B1, - 3927: 0x66B2, - 3928: 0x66B3, - 3929: 0x66B5, - 3930: 0x66B6, - 3931: 0x66B7, - 3932: 0x66B8, - 3933: 0x66BA, - 3934: 0x66BB, - 3935: 0x66BC, - 3936: 0x66BD, - 3937: 0x66BF, - 3938: 0x66C0, - 3939: 0x66C1, - 3940: 0x66C2, - 3941: 0x66C3, - 3942: 0x66C4, - 3943: 0x66C5, - 3944: 0x66C6, - 3945: 0x66C7, - 3946: 0x66C8, - 3947: 0x66C9, - 3948: 0x66CA, - 3949: 0x66CB, - 3950: 0x66CC, - 3951: 0x66CD, - 3952: 0x66CE, - 3953: 0x66CF, - 3954: 0x66D0, - 3955: 0x66D1, - 3956: 0x66D2, - 3957: 0x66D3, - 3958: 0x66D4, - 3959: 0x66D5, - 3960: 0x66D6, - 3961: 0x66D7, - 3962: 0x66D8, - 3963: 0x66DA, - 3964: 0x66DE, - 3965: 0x66DF, - 3966: 0x66E0, - 3967: 0x66E1, - 3968: 0x66E2, - 3969: 0x66E3, - 3970: 0x66E4, - 3971: 0x66E5, - 3972: 0x66E7, - 3973: 0x66E8, - 3974: 0x66EA, - 3975: 0x66EB, - 3976: 0x66EC, - 3977: 0x66ED, - 3978: 0x66EE, - 3979: 0x66EF, - 3980: 0x66F1, - 3981: 0x66F5, - 3982: 0x66F6, - 3983: 0x66F8, - 3984: 0x66FA, - 3985: 0x66FB, - 3986: 0x66FD, - 3987: 0x6701, - 3988: 0x6702, - 3989: 0x6703, - 3990: 0x6704, - 3991: 0x6705, - 3992: 0x6706, - 3993: 0x6707, - 3994: 0x670C, - 3995: 0x670E, - 3996: 0x670F, - 3997: 0x6711, - 3998: 0x6712, - 3999: 0x6713, - 4000: 0x6716, - 4001: 0x6718, - 4002: 0x6719, - 4003: 0x671A, - 4004: 0x671C, - 4005: 0x671E, - 4006: 0x6720, - 4007: 0x6721, - 4008: 0x6722, - 4009: 0x6723, - 4010: 0x6724, - 4011: 0x6725, - 4012: 0x6727, - 4013: 0x6729, - 4014: 0x672E, - 4015: 0x6730, - 4016: 0x6732, - 4017: 0x6733, - 4018: 0x6736, - 4019: 0x6737, - 4020: 0x6738, - 4021: 0x6739, - 4022: 0x673B, - 4023: 0x673C, - 4024: 0x673E, - 4025: 0x673F, - 4026: 0x6741, - 4027: 0x6744, - 4028: 0x6745, - 4029: 0x6747, - 4030: 0x674A, - 4031: 0x674B, - 4032: 0x674D, - 4033: 0x6752, - 4034: 0x6754, - 4035: 0x6755, - 4036: 0x6757, - 4037: 0x6758, - 4038: 0x6759, - 4039: 0x675A, - 4040: 0x675B, - 4041: 0x675D, - 4042: 0x6762, - 4043: 0x6763, - 4044: 0x6764, - 4045: 0x6766, - 4046: 0x6767, - 4047: 0x676B, - 4048: 0x676C, - 4049: 0x676E, - 4050: 0x6771, - 4051: 0x6774, - 4052: 0x6776, - 4053: 0x6778, - 4054: 0x6779, - 4055: 0x677A, - 4056: 0x677B, - 4057: 0x677D, - 4058: 0x6780, - 4059: 0x6782, - 4060: 0x6783, - 4061: 0x6785, - 4062: 0x6786, - 4063: 0x6788, - 4064: 0x678A, - 4065: 0x678C, - 4066: 0x678D, - 4067: 0x678E, - 4068: 0x678F, - 4069: 0x6791, - 4070: 0x6792, - 4071: 0x6793, - 4072: 0x6794, - 4073: 0x6796, - 4074: 0x6799, - 4075: 0x679B, - 4076: 0x679F, - 4077: 0x67A0, - 4078: 0x67A1, - 4079: 0x67A4, - 4080: 0x67A6, - 4081: 0x67A9, - 4082: 0x67AC, - 4083: 0x67AE, - 4084: 0x67B1, - 4085: 0x67B2, - 4086: 0x67B4, - 4087: 0x67B9, - 4088: 0x67BA, - 4089: 0x67BB, - 4090: 0x67BC, - 4091: 0x67BD, - 4092: 0x67BE, - 4093: 0x67BF, - 4094: 0x67C0, - 4095: 0x67C2, - 4096: 0x67C5, - 4097: 0x67C6, - 4098: 0x67C7, - 4099: 0x67C8, - 4100: 0x67C9, - 4101: 0x67CA, - 4102: 0x67CB, - 4103: 0x67CC, - 4104: 0x67CD, - 4105: 0x67CE, - 4106: 0x67D5, - 4107: 0x67D6, - 4108: 0x67D7, - 4109: 0x67DB, - 4110: 0x67DF, - 4111: 0x67E1, - 4112: 0x67E3, - 4113: 0x67E4, - 4114: 0x67E6, - 4115: 0x67E7, - 4116: 0x67E8, - 4117: 0x67EA, - 4118: 0x67EB, - 4119: 0x67ED, - 4120: 0x67EE, - 4121: 0x67F2, - 4122: 0x67F5, - 4123: 0x67F6, - 4124: 0x67F7, - 4125: 0x67F8, - 4126: 0x67F9, - 4127: 0x67FA, - 4128: 0x67FB, - 4129: 0x67FC, - 4130: 0x67FE, - 4131: 0x6801, - 4132: 0x6802, - 4133: 0x6803, - 4134: 0x6804, - 4135: 0x6806, - 4136: 0x680D, - 4137: 0x6810, - 4138: 0x6812, - 4139: 0x6814, - 4140: 0x6815, - 4141: 0x6818, - 4142: 0x6819, - 4143: 0x681A, - 4144: 0x681B, - 4145: 0x681C, - 4146: 0x681E, - 4147: 0x681F, - 4148: 0x6820, - 4149: 0x6822, - 4150: 0x6823, - 4151: 0x6824, - 4152: 0x6825, - 4153: 0x6826, - 4154: 0x6827, - 4155: 0x6828, - 4156: 0x682B, - 4157: 0x682C, - 4158: 0x682D, - 4159: 0x682E, - 4160: 0x682F, - 4161: 0x6830, - 4162: 0x6831, - 4163: 0x6834, - 4164: 0x6835, - 4165: 0x6836, - 4166: 0x683A, - 4167: 0x683B, - 4168: 0x683F, - 4169: 0x6847, - 4170: 0x684B, - 4171: 0x684D, - 4172: 0x684F, - 4173: 0x6852, - 4174: 0x6856, - 4175: 0x6857, - 4176: 0x6858, - 4177: 0x6859, - 4178: 0x685A, - 4179: 0x685B, - 4180: 0x685C, - 4181: 0x685D, - 4182: 0x685E, - 4183: 0x685F, - 4184: 0x686A, - 4185: 0x686C, - 4186: 0x686D, - 4187: 0x686E, - 4188: 0x686F, - 4189: 0x6870, - 4190: 0x6871, - 4191: 0x6872, - 4192: 0x6873, - 4193: 0x6875, - 4194: 0x6878, - 4195: 0x6879, - 4196: 0x687A, - 4197: 0x687B, - 4198: 0x687C, - 4199: 0x687D, - 4200: 0x687E, - 4201: 0x687F, - 4202: 0x6880, - 4203: 0x6882, - 4204: 0x6884, - 4205: 0x6887, - 4206: 0x6888, - 4207: 0x6889, - 4208: 0x688A, - 4209: 0x688B, - 4210: 0x688C, - 4211: 0x688D, - 4212: 0x688E, - 4213: 0x6890, - 4214: 0x6891, - 4215: 0x6892, - 4216: 0x6894, - 4217: 0x6895, - 4218: 0x6896, - 4219: 0x6898, - 4220: 0x6899, - 4221: 0x689A, - 4222: 0x689B, - 4223: 0x689C, - 4224: 0x689D, - 4225: 0x689E, - 4226: 0x689F, - 4227: 0x68A0, - 4228: 0x68A1, - 4229: 0x68A3, - 4230: 0x68A4, - 4231: 0x68A5, - 4232: 0x68A9, - 4233: 0x68AA, - 4234: 0x68AB, - 4235: 0x68AC, - 4236: 0x68AE, - 4237: 0x68B1, - 4238: 0x68B2, - 4239: 0x68B4, - 4240: 0x68B6, - 4241: 0x68B7, - 4242: 0x68B8, - 4243: 0x68B9, - 4244: 0x68BA, - 4245: 0x68BB, - 4246: 0x68BC, - 4247: 0x68BD, - 4248: 0x68BE, - 4249: 0x68BF, - 4250: 0x68C1, - 4251: 0x68C3, - 4252: 0x68C4, - 4253: 0x68C5, - 4254: 0x68C6, - 4255: 0x68C7, - 4256: 0x68C8, - 4257: 0x68CA, - 4258: 0x68CC, - 4259: 0x68CE, - 4260: 0x68CF, - 4261: 0x68D0, - 4262: 0x68D1, - 4263: 0x68D3, - 4264: 0x68D4, - 4265: 0x68D6, - 4266: 0x68D7, - 4267: 0x68D9, - 4268: 0x68DB, - 4269: 0x68DC, - 4270: 0x68DD, - 4271: 0x68DE, - 4272: 0x68DF, - 4273: 0x68E1, - 4274: 0x68E2, - 4275: 0x68E4, - 4276: 0x68E5, - 4277: 0x68E6, - 4278: 0x68E7, - 4279: 0x68E8, - 4280: 0x68E9, - 4281: 0x68EA, - 4282: 0x68EB, - 4283: 0x68EC, - 4284: 0x68ED, - 4285: 0x68EF, - 4286: 0x68F2, - 4287: 0x68F3, - 4288: 0x68F4, - 4289: 0x68F6, - 4290: 0x68F7, - 4291: 0x68F8, - 4292: 0x68FB, - 4293: 0x68FD, - 4294: 0x68FE, - 4295: 0x68FF, - 4296: 0x6900, - 4297: 0x6902, - 4298: 0x6903, - 4299: 0x6904, - 4300: 0x6906, - 4301: 0x6907, - 4302: 0x6908, - 4303: 0x6909, - 4304: 0x690A, - 4305: 0x690C, - 4306: 0x690F, - 4307: 0x6911, - 4308: 0x6913, - 4309: 0x6914, - 4310: 0x6915, - 4311: 0x6916, - 4312: 0x6917, - 4313: 0x6918, - 4314: 0x6919, - 4315: 0x691A, - 4316: 0x691B, - 4317: 0x691C, - 4318: 0x691D, - 4319: 0x691E, - 4320: 0x6921, - 4321: 0x6922, - 4322: 0x6923, - 4323: 0x6925, - 4324: 0x6926, - 4325: 0x6927, - 4326: 0x6928, - 4327: 0x6929, - 4328: 0x692A, - 4329: 0x692B, - 4330: 0x692C, - 4331: 0x692E, - 4332: 0x692F, - 4333: 0x6931, - 4334: 0x6932, - 4335: 0x6933, - 4336: 0x6935, - 4337: 0x6936, - 4338: 0x6937, - 4339: 0x6938, - 4340: 0x693A, - 4341: 0x693B, - 4342: 0x693C, - 4343: 0x693E, - 4344: 0x6940, - 4345: 0x6941, - 4346: 0x6943, - 4347: 0x6944, - 4348: 0x6945, - 4349: 0x6946, - 4350: 0x6947, - 4351: 0x6948, - 4352: 0x6949, - 4353: 0x694A, - 4354: 0x694B, - 4355: 0x694C, - 4356: 0x694D, - 4357: 0x694E, - 4358: 0x694F, - 4359: 0x6950, - 4360: 0x6951, - 4361: 0x6952, - 4362: 0x6953, - 4363: 0x6955, - 4364: 0x6956, - 4365: 0x6958, - 4366: 0x6959, - 4367: 0x695B, - 4368: 0x695C, - 4369: 0x695F, - 4370: 0x6961, - 4371: 0x6962, - 4372: 0x6964, - 4373: 0x6965, - 4374: 0x6967, - 4375: 0x6968, - 4376: 0x6969, - 4377: 0x696A, - 4378: 0x696C, - 4379: 0x696D, - 4380: 0x696F, - 4381: 0x6970, - 4382: 0x6972, - 4383: 0x6973, - 4384: 0x6974, - 4385: 0x6975, - 4386: 0x6976, - 4387: 0x697A, - 4388: 0x697B, - 4389: 0x697D, - 4390: 0x697E, - 4391: 0x697F, - 4392: 0x6981, - 4393: 0x6983, - 4394: 0x6985, - 4395: 0x698A, - 4396: 0x698B, - 4397: 0x698C, - 4398: 0x698E, - 4399: 0x698F, - 4400: 0x6990, - 4401: 0x6991, - 4402: 0x6992, - 4403: 0x6993, - 4404: 0x6996, - 4405: 0x6997, - 4406: 0x6999, - 4407: 0x699A, - 4408: 0x699D, - 4409: 0x699E, - 4410: 0x699F, - 4411: 0x69A0, - 4412: 0x69A1, - 4413: 0x69A2, - 4414: 0x69A3, - 4415: 0x69A4, - 4416: 0x69A5, - 4417: 0x69A6, - 4418: 0x69A9, - 4419: 0x69AA, - 4420: 0x69AC, - 4421: 0x69AE, - 4422: 0x69AF, - 4423: 0x69B0, - 4424: 0x69B2, - 4425: 0x69B3, - 4426: 0x69B5, - 4427: 0x69B6, - 4428: 0x69B8, - 4429: 0x69B9, - 4430: 0x69BA, - 4431: 0x69BC, - 4432: 0x69BD, - 4433: 0x69BE, - 4434: 0x69BF, - 4435: 0x69C0, - 4436: 0x69C2, - 4437: 0x69C3, - 4438: 0x69C4, - 4439: 0x69C5, - 4440: 0x69C6, - 4441: 0x69C7, - 4442: 0x69C8, - 4443: 0x69C9, - 4444: 0x69CB, - 4445: 0x69CD, - 4446: 0x69CF, - 4447: 0x69D1, - 4448: 0x69D2, - 4449: 0x69D3, - 4450: 0x69D5, - 4451: 0x69D6, - 4452: 0x69D7, - 4453: 0x69D8, - 4454: 0x69D9, - 4455: 0x69DA, - 4456: 0x69DC, - 4457: 0x69DD, - 4458: 0x69DE, - 4459: 0x69E1, - 4460: 0x69E2, - 4461: 0x69E3, - 4462: 0x69E4, - 4463: 0x69E5, - 4464: 0x69E6, - 4465: 0x69E7, - 4466: 0x69E8, - 4467: 0x69E9, - 4468: 0x69EA, - 4469: 0x69EB, - 4470: 0x69EC, - 4471: 0x69EE, - 4472: 0x69EF, - 4473: 0x69F0, - 4474: 0x69F1, - 4475: 0x69F3, - 4476: 0x69F4, - 4477: 0x69F5, - 4478: 0x69F6, - 4479: 0x69F7, - 4480: 0x69F8, - 4481: 0x69F9, - 4482: 0x69FA, - 4483: 0x69FB, - 4484: 0x69FC, - 4485: 0x69FE, - 4486: 0x6A00, - 4487: 0x6A01, - 4488: 0x6A02, - 4489: 0x6A03, - 4490: 0x6A04, - 4491: 0x6A05, - 4492: 0x6A06, - 4493: 0x6A07, - 4494: 0x6A08, - 4495: 0x6A09, - 4496: 0x6A0B, - 4497: 0x6A0C, - 4498: 0x6A0D, - 4499: 0x6A0E, - 4500: 0x6A0F, - 4501: 0x6A10, - 4502: 0x6A11, - 4503: 0x6A12, - 4504: 0x6A13, - 4505: 0x6A14, - 4506: 0x6A15, - 4507: 0x6A16, - 4508: 0x6A19, - 4509: 0x6A1A, - 4510: 0x6A1B, - 4511: 0x6A1C, - 4512: 0x6A1D, - 4513: 0x6A1E, - 4514: 0x6A20, - 4515: 0x6A22, - 4516: 0x6A23, - 4517: 0x6A24, - 4518: 0x6A25, - 4519: 0x6A26, - 4520: 0x6A27, - 4521: 0x6A29, - 4522: 0x6A2B, - 4523: 0x6A2C, - 4524: 0x6A2D, - 4525: 0x6A2E, - 4526: 0x6A30, - 4527: 0x6A32, - 4528: 0x6A33, - 4529: 0x6A34, - 4530: 0x6A36, - 4531: 0x6A37, - 4532: 0x6A38, - 4533: 0x6A39, - 4534: 0x6A3A, - 4535: 0x6A3B, - 4536: 0x6A3C, - 4537: 0x6A3F, - 4538: 0x6A40, - 4539: 0x6A41, - 4540: 0x6A42, - 4541: 0x6A43, - 4542: 0x6A45, - 4543: 0x6A46, - 4544: 0x6A48, - 4545: 0x6A49, - 4546: 0x6A4A, - 4547: 0x6A4B, - 4548: 0x6A4C, - 4549: 0x6A4D, - 4550: 0x6A4E, - 4551: 0x6A4F, - 4552: 0x6A51, - 4553: 0x6A52, - 4554: 0x6A53, - 4555: 0x6A54, - 4556: 0x6A55, - 4557: 0x6A56, - 4558: 0x6A57, - 4559: 0x6A5A, - 4560: 0x6A5C, - 4561: 0x6A5D, - 4562: 0x6A5E, - 4563: 0x6A5F, - 4564: 0x6A60, - 4565: 0x6A62, - 4566: 0x6A63, - 4567: 0x6A64, - 4568: 0x6A66, - 4569: 0x6A67, - 4570: 0x6A68, - 4571: 0x6A69, - 4572: 0x6A6A, - 4573: 0x6A6B, - 4574: 0x6A6C, - 4575: 0x6A6D, - 4576: 0x6A6E, - 4577: 0x6A6F, - 4578: 0x6A70, - 4579: 0x6A72, - 4580: 0x6A73, - 4581: 0x6A74, - 4582: 0x6A75, - 4583: 0x6A76, - 4584: 0x6A77, - 4585: 0x6A78, - 4586: 0x6A7A, - 4587: 0x6A7B, - 4588: 0x6A7D, - 4589: 0x6A7E, - 4590: 0x6A7F, - 4591: 0x6A81, - 4592: 0x6A82, - 4593: 0x6A83, - 4594: 0x6A85, - 4595: 0x6A86, - 4596: 0x6A87, - 4597: 0x6A88, - 4598: 0x6A89, - 4599: 0x6A8A, - 4600: 0x6A8B, - 4601: 0x6A8C, - 4602: 0x6A8D, - 4603: 0x6A8F, - 4604: 0x6A92, - 4605: 0x6A93, - 4606: 0x6A94, - 4607: 0x6A95, - 4608: 0x6A96, - 4609: 0x6A98, - 4610: 0x6A99, - 4611: 0x6A9A, - 4612: 0x6A9B, - 4613: 0x6A9C, - 4614: 0x6A9D, - 4615: 0x6A9E, - 4616: 0x6A9F, - 4617: 0x6AA1, - 4618: 0x6AA2, - 4619: 0x6AA3, - 4620: 0x6AA4, - 4621: 0x6AA5, - 4622: 0x6AA6, - 4623: 0x6AA7, - 4624: 0x6AA8, - 4625: 0x6AAA, - 4626: 0x6AAD, - 4627: 0x6AAE, - 4628: 0x6AAF, - 4629: 0x6AB0, - 4630: 0x6AB1, - 4631: 0x6AB2, - 4632: 0x6AB3, - 4633: 0x6AB4, - 4634: 0x6AB5, - 4635: 0x6AB6, - 4636: 0x6AB7, - 4637: 0x6AB8, - 4638: 0x6AB9, - 4639: 0x6ABA, - 4640: 0x6ABB, - 4641: 0x6ABC, - 4642: 0x6ABD, - 4643: 0x6ABE, - 4644: 0x6ABF, - 4645: 0x6AC0, - 4646: 0x6AC1, - 4647: 0x6AC2, - 4648: 0x6AC3, - 4649: 0x6AC4, - 4650: 0x6AC5, - 4651: 0x6AC6, - 4652: 0x6AC7, - 4653: 0x6AC8, - 4654: 0x6AC9, - 4655: 0x6ACA, - 4656: 0x6ACB, - 4657: 0x6ACC, - 4658: 0x6ACD, - 4659: 0x6ACE, - 4660: 0x6ACF, - 4661: 0x6AD0, - 4662: 0x6AD1, - 4663: 0x6AD2, - 4664: 0x6AD3, - 4665: 0x6AD4, - 4666: 0x6AD5, - 4667: 0x6AD6, - 4668: 0x6AD7, - 4669: 0x6AD8, - 4670: 0x6AD9, - 4671: 0x6ADA, - 4672: 0x6ADB, - 4673: 0x6ADC, - 4674: 0x6ADD, - 4675: 0x6ADE, - 4676: 0x6ADF, - 4677: 0x6AE0, - 4678: 0x6AE1, - 4679: 0x6AE2, - 4680: 0x6AE3, - 4681: 0x6AE4, - 4682: 0x6AE5, - 4683: 0x6AE6, - 4684: 0x6AE7, - 4685: 0x6AE8, - 4686: 0x6AE9, - 4687: 0x6AEA, - 4688: 0x6AEB, - 4689: 0x6AEC, - 4690: 0x6AED, - 4691: 0x6AEE, - 4692: 0x6AEF, - 4693: 0x6AF0, - 4694: 0x6AF1, - 4695: 0x6AF2, - 4696: 0x6AF3, - 4697: 0x6AF4, - 4698: 0x6AF5, - 4699: 0x6AF6, - 4700: 0x6AF7, - 4701: 0x6AF8, - 4702: 0x6AF9, - 4703: 0x6AFA, - 4704: 0x6AFB, - 4705: 0x6AFC, - 4706: 0x6AFD, - 4707: 0x6AFE, - 4708: 0x6AFF, - 4709: 0x6B00, - 4710: 0x6B01, - 4711: 0x6B02, - 4712: 0x6B03, - 4713: 0x6B04, - 4714: 0x6B05, - 4715: 0x6B06, - 4716: 0x6B07, - 4717: 0x6B08, - 4718: 0x6B09, - 4719: 0x6B0A, - 4720: 0x6B0B, - 4721: 0x6B0C, - 4722: 0x6B0D, - 4723: 0x6B0E, - 4724: 0x6B0F, - 4725: 0x6B10, - 4726: 0x6B11, - 4727: 0x6B12, - 4728: 0x6B13, - 4729: 0x6B14, - 4730: 0x6B15, - 4731: 0x6B16, - 4732: 0x6B17, - 4733: 0x6B18, - 4734: 0x6B19, - 4735: 0x6B1A, - 4736: 0x6B1B, - 4737: 0x6B1C, - 4738: 0x6B1D, - 4739: 0x6B1E, - 4740: 0x6B1F, - 4741: 0x6B25, - 4742: 0x6B26, - 4743: 0x6B28, - 4744: 0x6B29, - 4745: 0x6B2A, - 4746: 0x6B2B, - 4747: 0x6B2C, - 4748: 0x6B2D, - 4749: 0x6B2E, - 4750: 0x6B2F, - 4751: 0x6B30, - 4752: 0x6B31, - 4753: 0x6B33, - 4754: 0x6B34, - 4755: 0x6B35, - 4756: 0x6B36, - 4757: 0x6B38, - 4758: 0x6B3B, - 4759: 0x6B3C, - 4760: 0x6B3D, - 4761: 0x6B3F, - 4762: 0x6B40, - 4763: 0x6B41, - 4764: 0x6B42, - 4765: 0x6B44, - 4766: 0x6B45, - 4767: 0x6B48, - 4768: 0x6B4A, - 4769: 0x6B4B, - 4770: 0x6B4D, - 4771: 0x6B4E, - 4772: 0x6B4F, - 4773: 0x6B50, - 4774: 0x6B51, - 4775: 0x6B52, - 4776: 0x6B53, - 4777: 0x6B54, - 4778: 0x6B55, - 4779: 0x6B56, - 4780: 0x6B57, - 4781: 0x6B58, - 4782: 0x6B5A, - 4783: 0x6B5B, - 4784: 0x6B5C, - 4785: 0x6B5D, - 4786: 0x6B5E, - 4787: 0x6B5F, - 4788: 0x6B60, - 4789: 0x6B61, - 4790: 0x6B68, - 4791: 0x6B69, - 4792: 0x6B6B, - 4793: 0x6B6C, - 4794: 0x6B6D, - 4795: 0x6B6E, - 4796: 0x6B6F, - 4797: 0x6B70, - 4798: 0x6B71, - 4799: 0x6B72, - 4800: 0x6B73, - 4801: 0x6B74, - 4802: 0x6B75, - 4803: 0x6B76, - 4804: 0x6B77, - 4805: 0x6B78, - 4806: 0x6B7A, - 4807: 0x6B7D, - 4808: 0x6B7E, - 4809: 0x6B7F, - 4810: 0x6B80, - 4811: 0x6B85, - 4812: 0x6B88, - 4813: 0x6B8C, - 4814: 0x6B8E, - 4815: 0x6B8F, - 4816: 0x6B90, - 4817: 0x6B91, - 4818: 0x6B94, - 4819: 0x6B95, - 4820: 0x6B97, - 4821: 0x6B98, - 4822: 0x6B99, - 4823: 0x6B9C, - 4824: 0x6B9D, - 4825: 0x6B9E, - 4826: 0x6B9F, - 4827: 0x6BA0, - 4828: 0x6BA2, - 4829: 0x6BA3, - 4830: 0x6BA4, - 4831: 0x6BA5, - 4832: 0x6BA6, - 4833: 0x6BA7, - 4834: 0x6BA8, - 4835: 0x6BA9, - 4836: 0x6BAB, - 4837: 0x6BAC, - 4838: 0x6BAD, - 4839: 0x6BAE, - 4840: 0x6BAF, - 4841: 0x6BB0, - 4842: 0x6BB1, - 4843: 0x6BB2, - 4844: 0x6BB6, - 4845: 0x6BB8, - 4846: 0x6BB9, - 4847: 0x6BBA, - 4848: 0x6BBB, - 4849: 0x6BBC, - 4850: 0x6BBD, - 4851: 0x6BBE, - 4852: 0x6BC0, - 4853: 0x6BC3, - 4854: 0x6BC4, - 4855: 0x6BC6, - 4856: 0x6BC7, - 4857: 0x6BC8, - 4858: 0x6BC9, - 4859: 0x6BCA, - 4860: 0x6BCC, - 4861: 0x6BCE, - 4862: 0x6BD0, - 4863: 0x6BD1, - 4864: 0x6BD8, - 4865: 0x6BDA, - 4866: 0x6BDC, - 4867: 0x6BDD, - 4868: 0x6BDE, - 4869: 0x6BDF, - 4870: 0x6BE0, - 4871: 0x6BE2, - 4872: 0x6BE3, - 4873: 0x6BE4, - 4874: 0x6BE5, - 4875: 0x6BE6, - 4876: 0x6BE7, - 4877: 0x6BE8, - 4878: 0x6BE9, - 4879: 0x6BEC, - 4880: 0x6BED, - 4881: 0x6BEE, - 4882: 0x6BF0, - 4883: 0x6BF1, - 4884: 0x6BF2, - 4885: 0x6BF4, - 4886: 0x6BF6, - 4887: 0x6BF7, - 4888: 0x6BF8, - 4889: 0x6BFA, - 4890: 0x6BFB, - 4891: 0x6BFC, - 4892: 0x6BFE, - 4893: 0x6BFF, - 4894: 0x6C00, - 4895: 0x6C01, - 4896: 0x6C02, - 4897: 0x6C03, - 4898: 0x6C04, - 4899: 0x6C08, - 4900: 0x6C09, - 4901: 0x6C0A, - 4902: 0x6C0B, - 4903: 0x6C0C, - 4904: 0x6C0E, - 4905: 0x6C12, - 4906: 0x6C17, - 4907: 0x6C1C, - 4908: 0x6C1D, - 4909: 0x6C1E, - 4910: 0x6C20, - 4911: 0x6C23, - 4912: 0x6C25, - 4913: 0x6C2B, - 4914: 0x6C2C, - 4915: 0x6C2D, - 4916: 0x6C31, - 4917: 0x6C33, - 4918: 0x6C36, - 4919: 0x6C37, - 4920: 0x6C39, - 4921: 0x6C3A, - 4922: 0x6C3B, - 4923: 0x6C3C, - 4924: 0x6C3E, - 4925: 0x6C3F, - 4926: 0x6C43, - 4927: 0x6C44, - 4928: 0x6C45, - 4929: 0x6C48, - 4930: 0x6C4B, - 4931: 0x6C4C, - 4932: 0x6C4D, - 4933: 0x6C4E, - 4934: 0x6C4F, - 4935: 0x6C51, - 4936: 0x6C52, - 4937: 0x6C53, - 4938: 0x6C56, - 4939: 0x6C58, - 4940: 0x6C59, - 4941: 0x6C5A, - 4942: 0x6C62, - 4943: 0x6C63, - 4944: 0x6C65, - 4945: 0x6C66, - 4946: 0x6C67, - 4947: 0x6C6B, - 4948: 0x6C6C, - 4949: 0x6C6D, - 4950: 0x6C6E, - 4951: 0x6C6F, - 4952: 0x6C71, - 4953: 0x6C73, - 4954: 0x6C75, - 4955: 0x6C77, - 4956: 0x6C78, - 4957: 0x6C7A, - 4958: 0x6C7B, - 4959: 0x6C7C, - 4960: 0x6C7F, - 4961: 0x6C80, - 4962: 0x6C84, - 4963: 0x6C87, - 4964: 0x6C8A, - 4965: 0x6C8B, - 4966: 0x6C8D, - 4967: 0x6C8E, - 4968: 0x6C91, - 4969: 0x6C92, - 4970: 0x6C95, - 4971: 0x6C96, - 4972: 0x6C97, - 4973: 0x6C98, - 4974: 0x6C9A, - 4975: 0x6C9C, - 4976: 0x6C9D, - 4977: 0x6C9E, - 4978: 0x6CA0, - 4979: 0x6CA2, - 4980: 0x6CA8, - 4981: 0x6CAC, - 4982: 0x6CAF, - 4983: 0x6CB0, - 4984: 0x6CB4, - 4985: 0x6CB5, - 4986: 0x6CB6, - 4987: 0x6CB7, - 4988: 0x6CBA, - 4989: 0x6CC0, - 4990: 0x6CC1, - 4991: 0x6CC2, - 4992: 0x6CC3, - 4993: 0x6CC6, - 4994: 0x6CC7, - 4995: 0x6CC8, - 4996: 0x6CCB, - 4997: 0x6CCD, - 4998: 0x6CCE, - 4999: 0x6CCF, - 5000: 0x6CD1, - 5001: 0x6CD2, - 5002: 0x6CD8, - 5003: 0x6CD9, - 5004: 0x6CDA, - 5005: 0x6CDC, - 5006: 0x6CDD, - 5007: 0x6CDF, - 5008: 0x6CE4, - 5009: 0x6CE6, - 5010: 0x6CE7, - 5011: 0x6CE9, - 5012: 0x6CEC, - 5013: 0x6CED, - 5014: 0x6CF2, - 5015: 0x6CF4, - 5016: 0x6CF9, - 5017: 0x6CFF, - 5018: 0x6D00, - 5019: 0x6D02, - 5020: 0x6D03, - 5021: 0x6D05, - 5022: 0x6D06, - 5023: 0x6D08, - 5024: 0x6D09, - 5025: 0x6D0A, - 5026: 0x6D0D, - 5027: 0x6D0F, - 5028: 0x6D10, - 5029: 0x6D11, - 5030: 0x6D13, - 5031: 0x6D14, - 5032: 0x6D15, - 5033: 0x6D16, - 5034: 0x6D18, - 5035: 0x6D1C, - 5036: 0x6D1D, - 5037: 0x6D1F, - 5038: 0x6D20, - 5039: 0x6D21, - 5040: 0x6D22, - 5041: 0x6D23, - 5042: 0x6D24, - 5043: 0x6D26, - 5044: 0x6D28, - 5045: 0x6D29, - 5046: 0x6D2C, - 5047: 0x6D2D, - 5048: 0x6D2F, - 5049: 0x6D30, - 5050: 0x6D34, - 5051: 0x6D36, - 5052: 0x6D37, - 5053: 0x6D38, - 5054: 0x6D3A, - 5055: 0x6D3F, - 5056: 0x6D40, - 5057: 0x6D42, - 5058: 0x6D44, - 5059: 0x6D49, - 5060: 0x6D4C, - 5061: 0x6D50, - 5062: 0x6D55, - 5063: 0x6D56, - 5064: 0x6D57, - 5065: 0x6D58, - 5066: 0x6D5B, - 5067: 0x6D5D, - 5068: 0x6D5F, - 5069: 0x6D61, - 5070: 0x6D62, - 5071: 0x6D64, - 5072: 0x6D65, - 5073: 0x6D67, - 5074: 0x6D68, - 5075: 0x6D6B, - 5076: 0x6D6C, - 5077: 0x6D6D, - 5078: 0x6D70, - 5079: 0x6D71, - 5080: 0x6D72, - 5081: 0x6D73, - 5082: 0x6D75, - 5083: 0x6D76, - 5084: 0x6D79, - 5085: 0x6D7A, - 5086: 0x6D7B, - 5087: 0x6D7D, - 5088: 0x6D7E, - 5089: 0x6D7F, - 5090: 0x6D80, - 5091: 0x6D81, - 5092: 0x6D83, - 5093: 0x6D84, - 5094: 0x6D86, - 5095: 0x6D87, - 5096: 0x6D8A, - 5097: 0x6D8B, - 5098: 0x6D8D, - 5099: 0x6D8F, - 5100: 0x6D90, - 5101: 0x6D92, - 5102: 0x6D96, - 5103: 0x6D97, - 5104: 0x6D98, - 5105: 0x6D99, - 5106: 0x6D9A, - 5107: 0x6D9C, - 5108: 0x6DA2, - 5109: 0x6DA5, - 5110: 0x6DAC, - 5111: 0x6DAD, - 5112: 0x6DB0, - 5113: 0x6DB1, - 5114: 0x6DB3, - 5115: 0x6DB4, - 5116: 0x6DB6, - 5117: 0x6DB7, - 5118: 0x6DB9, - 5119: 0x6DBA, - 5120: 0x6DBB, - 5121: 0x6DBC, - 5122: 0x6DBD, - 5123: 0x6DBE, - 5124: 0x6DC1, - 5125: 0x6DC2, - 5126: 0x6DC3, - 5127: 0x6DC8, - 5128: 0x6DC9, - 5129: 0x6DCA, - 5130: 0x6DCD, - 5131: 0x6DCE, - 5132: 0x6DCF, - 5133: 0x6DD0, - 5134: 0x6DD2, - 5135: 0x6DD3, - 5136: 0x6DD4, - 5137: 0x6DD5, - 5138: 0x6DD7, - 5139: 0x6DDA, - 5140: 0x6DDB, - 5141: 0x6DDC, - 5142: 0x6DDF, - 5143: 0x6DE2, - 5144: 0x6DE3, - 5145: 0x6DE5, - 5146: 0x6DE7, - 5147: 0x6DE8, - 5148: 0x6DE9, - 5149: 0x6DEA, - 5150: 0x6DED, - 5151: 0x6DEF, - 5152: 0x6DF0, - 5153: 0x6DF2, - 5154: 0x6DF4, - 5155: 0x6DF5, - 5156: 0x6DF6, - 5157: 0x6DF8, - 5158: 0x6DFA, - 5159: 0x6DFD, - 5160: 0x6DFE, - 5161: 0x6DFF, - 5162: 0x6E00, - 5163: 0x6E01, - 5164: 0x6E02, - 5165: 0x6E03, - 5166: 0x6E04, - 5167: 0x6E06, - 5168: 0x6E07, - 5169: 0x6E08, - 5170: 0x6E09, - 5171: 0x6E0B, - 5172: 0x6E0F, - 5173: 0x6E12, - 5174: 0x6E13, - 5175: 0x6E15, - 5176: 0x6E18, - 5177: 0x6E19, - 5178: 0x6E1B, - 5179: 0x6E1C, - 5180: 0x6E1E, - 5181: 0x6E1F, - 5182: 0x6E22, - 5183: 0x6E26, - 5184: 0x6E27, - 5185: 0x6E28, - 5186: 0x6E2A, - 5187: 0x6E2C, - 5188: 0x6E2E, - 5189: 0x6E30, - 5190: 0x6E31, - 5191: 0x6E33, - 5192: 0x6E35, - 5193: 0x6E36, - 5194: 0x6E37, - 5195: 0x6E39, - 5196: 0x6E3B, - 5197: 0x6E3C, - 5198: 0x6E3D, - 5199: 0x6E3E, - 5200: 0x6E3F, - 5201: 0x6E40, - 5202: 0x6E41, - 5203: 0x6E42, - 5204: 0x6E45, - 5205: 0x6E46, - 5206: 0x6E47, - 5207: 0x6E48, - 5208: 0x6E49, - 5209: 0x6E4A, - 5210: 0x6E4B, - 5211: 0x6E4C, - 5212: 0x6E4F, - 5213: 0x6E50, - 5214: 0x6E51, - 5215: 0x6E52, - 5216: 0x6E55, - 5217: 0x6E57, - 5218: 0x6E59, - 5219: 0x6E5A, - 5220: 0x6E5C, - 5221: 0x6E5D, - 5222: 0x6E5E, - 5223: 0x6E60, - 5224: 0x6E61, - 5225: 0x6E62, - 5226: 0x6E63, - 5227: 0x6E64, - 5228: 0x6E65, - 5229: 0x6E66, - 5230: 0x6E67, - 5231: 0x6E68, - 5232: 0x6E69, - 5233: 0x6E6A, - 5234: 0x6E6C, - 5235: 0x6E6D, - 5236: 0x6E6F, - 5237: 0x6E70, - 5238: 0x6E71, - 5239: 0x6E72, - 5240: 0x6E73, - 5241: 0x6E74, - 5242: 0x6E75, - 5243: 0x6E76, - 5244: 0x6E77, - 5245: 0x6E78, - 5246: 0x6E79, - 5247: 0x6E7A, - 5248: 0x6E7B, - 5249: 0x6E7C, - 5250: 0x6E7D, - 5251: 0x6E80, - 5252: 0x6E81, - 5253: 0x6E82, - 5254: 0x6E84, - 5255: 0x6E87, - 5256: 0x6E88, - 5257: 0x6E8A, - 5258: 0x6E8B, - 5259: 0x6E8C, - 5260: 0x6E8D, - 5261: 0x6E8E, - 5262: 0x6E91, - 5263: 0x6E92, - 5264: 0x6E93, - 5265: 0x6E94, - 5266: 0x6E95, - 5267: 0x6E96, - 5268: 0x6E97, - 5269: 0x6E99, - 5270: 0x6E9A, - 5271: 0x6E9B, - 5272: 0x6E9D, - 5273: 0x6E9E, - 5274: 0x6EA0, - 5275: 0x6EA1, - 5276: 0x6EA3, - 5277: 0x6EA4, - 5278: 0x6EA6, - 5279: 0x6EA8, - 5280: 0x6EA9, - 5281: 0x6EAB, - 5282: 0x6EAC, - 5283: 0x6EAD, - 5284: 0x6EAE, - 5285: 0x6EB0, - 5286: 0x6EB3, - 5287: 0x6EB5, - 5288: 0x6EB8, - 5289: 0x6EB9, - 5290: 0x6EBC, - 5291: 0x6EBE, - 5292: 0x6EBF, - 5293: 0x6EC0, - 5294: 0x6EC3, - 5295: 0x6EC4, - 5296: 0x6EC5, - 5297: 0x6EC6, - 5298: 0x6EC8, - 5299: 0x6EC9, - 5300: 0x6ECA, - 5301: 0x6ECC, - 5302: 0x6ECD, - 5303: 0x6ECE, - 5304: 0x6ED0, - 5305: 0x6ED2, - 5306: 0x6ED6, - 5307: 0x6ED8, - 5308: 0x6ED9, - 5309: 0x6EDB, - 5310: 0x6EDC, - 5311: 0x6EDD, - 5312: 0x6EE3, - 5313: 0x6EE7, - 5314: 0x6EEA, - 5315: 0x6EEB, - 5316: 0x6EEC, - 5317: 0x6EED, - 5318: 0x6EEE, - 5319: 0x6EEF, - 5320: 0x6EF0, - 5321: 0x6EF1, - 5322: 0x6EF2, - 5323: 0x6EF3, - 5324: 0x6EF5, - 5325: 0x6EF6, - 5326: 0x6EF7, - 5327: 0x6EF8, - 5328: 0x6EFA, - 5329: 0x6EFB, - 5330: 0x6EFC, - 5331: 0x6EFD, - 5332: 0x6EFE, - 5333: 0x6EFF, - 5334: 0x6F00, - 5335: 0x6F01, - 5336: 0x6F03, - 5337: 0x6F04, - 5338: 0x6F05, - 5339: 0x6F07, - 5340: 0x6F08, - 5341: 0x6F0A, - 5342: 0x6F0B, - 5343: 0x6F0C, - 5344: 0x6F0D, - 5345: 0x6F0E, - 5346: 0x6F10, - 5347: 0x6F11, - 5348: 0x6F12, - 5349: 0x6F16, - 5350: 0x6F17, - 5351: 0x6F18, - 5352: 0x6F19, - 5353: 0x6F1A, - 5354: 0x6F1B, - 5355: 0x6F1C, - 5356: 0x6F1D, - 5357: 0x6F1E, - 5358: 0x6F1F, - 5359: 0x6F21, - 5360: 0x6F22, - 5361: 0x6F23, - 5362: 0x6F25, - 5363: 0x6F26, - 5364: 0x6F27, - 5365: 0x6F28, - 5366: 0x6F2C, - 5367: 0x6F2E, - 5368: 0x6F30, - 5369: 0x6F32, - 5370: 0x6F34, - 5371: 0x6F35, - 5372: 0x6F37, - 5373: 0x6F38, - 5374: 0x6F39, - 5375: 0x6F3A, - 5376: 0x6F3B, - 5377: 0x6F3C, - 5378: 0x6F3D, - 5379: 0x6F3F, - 5380: 0x6F40, - 5381: 0x6F41, - 5382: 0x6F42, - 5383: 0x6F43, - 5384: 0x6F44, - 5385: 0x6F45, - 5386: 0x6F48, - 5387: 0x6F49, - 5388: 0x6F4A, - 5389: 0x6F4C, - 5390: 0x6F4E, - 5391: 0x6F4F, - 5392: 0x6F50, - 5393: 0x6F51, - 5394: 0x6F52, - 5395: 0x6F53, - 5396: 0x6F54, - 5397: 0x6F55, - 5398: 0x6F56, - 5399: 0x6F57, - 5400: 0x6F59, - 5401: 0x6F5A, - 5402: 0x6F5B, - 5403: 0x6F5D, - 5404: 0x6F5F, - 5405: 0x6F60, - 5406: 0x6F61, - 5407: 0x6F63, - 5408: 0x6F64, - 5409: 0x6F65, - 5410: 0x6F67, - 5411: 0x6F68, - 5412: 0x6F69, - 5413: 0x6F6A, - 5414: 0x6F6B, - 5415: 0x6F6C, - 5416: 0x6F6F, - 5417: 0x6F70, - 5418: 0x6F71, - 5419: 0x6F73, - 5420: 0x6F75, - 5421: 0x6F76, - 5422: 0x6F77, - 5423: 0x6F79, - 5424: 0x6F7B, - 5425: 0x6F7D, - 5426: 0x6F7E, - 5427: 0x6F7F, - 5428: 0x6F80, - 5429: 0x6F81, - 5430: 0x6F82, - 5431: 0x6F83, - 5432: 0x6F85, - 5433: 0x6F86, - 5434: 0x6F87, - 5435: 0x6F8A, - 5436: 0x6F8B, - 5437: 0x6F8F, - 5438: 0x6F90, - 5439: 0x6F91, - 5440: 0x6F92, - 5441: 0x6F93, - 5442: 0x6F94, - 5443: 0x6F95, - 5444: 0x6F96, - 5445: 0x6F97, - 5446: 0x6F98, - 5447: 0x6F99, - 5448: 0x6F9A, - 5449: 0x6F9B, - 5450: 0x6F9D, - 5451: 0x6F9E, - 5452: 0x6F9F, - 5453: 0x6FA0, - 5454: 0x6FA2, - 5455: 0x6FA3, - 5456: 0x6FA4, - 5457: 0x6FA5, - 5458: 0x6FA6, - 5459: 0x6FA8, - 5460: 0x6FA9, - 5461: 0x6FAA, - 5462: 0x6FAB, - 5463: 0x6FAC, - 5464: 0x6FAD, - 5465: 0x6FAE, - 5466: 0x6FAF, - 5467: 0x6FB0, - 5468: 0x6FB1, - 5469: 0x6FB2, - 5470: 0x6FB4, - 5471: 0x6FB5, - 5472: 0x6FB7, - 5473: 0x6FB8, - 5474: 0x6FBA, - 5475: 0x6FBB, - 5476: 0x6FBC, - 5477: 0x6FBD, - 5478: 0x6FBE, - 5479: 0x6FBF, - 5480: 0x6FC1, - 5481: 0x6FC3, - 5482: 0x6FC4, - 5483: 0x6FC5, - 5484: 0x6FC6, - 5485: 0x6FC7, - 5486: 0x6FC8, - 5487: 0x6FCA, - 5488: 0x6FCB, - 5489: 0x6FCC, - 5490: 0x6FCD, - 5491: 0x6FCE, - 5492: 0x6FCF, - 5493: 0x6FD0, - 5494: 0x6FD3, - 5495: 0x6FD4, - 5496: 0x6FD5, - 5497: 0x6FD6, - 5498: 0x6FD7, - 5499: 0x6FD8, - 5500: 0x6FD9, - 5501: 0x6FDA, - 5502: 0x6FDB, - 5503: 0x6FDC, - 5504: 0x6FDD, - 5505: 0x6FDF, - 5506: 0x6FE2, - 5507: 0x6FE3, - 5508: 0x6FE4, - 5509: 0x6FE5, - 5510: 0x6FE6, - 5511: 0x6FE7, - 5512: 0x6FE8, - 5513: 0x6FE9, - 5514: 0x6FEA, - 5515: 0x6FEB, - 5516: 0x6FEC, - 5517: 0x6FED, - 5518: 0x6FF0, - 5519: 0x6FF1, - 5520: 0x6FF2, - 5521: 0x6FF3, - 5522: 0x6FF4, - 5523: 0x6FF5, - 5524: 0x6FF6, - 5525: 0x6FF7, - 5526: 0x6FF8, - 5527: 0x6FF9, - 5528: 0x6FFA, - 5529: 0x6FFB, - 5530: 0x6FFC, - 5531: 0x6FFD, - 5532: 0x6FFE, - 5533: 0x6FFF, - 5534: 0x7000, - 5535: 0x7001, - 5536: 0x7002, - 5537: 0x7003, - 5538: 0x7004, - 5539: 0x7005, - 5540: 0x7006, - 5541: 0x7007, - 5542: 0x7008, - 5543: 0x7009, - 5544: 0x700A, - 5545: 0x700B, - 5546: 0x700C, - 5547: 0x700D, - 5548: 0x700E, - 5549: 0x700F, - 5550: 0x7010, - 5551: 0x7012, - 5552: 0x7013, - 5553: 0x7014, - 5554: 0x7015, - 5555: 0x7016, - 5556: 0x7017, - 5557: 0x7018, - 5558: 0x7019, - 5559: 0x701C, - 5560: 0x701D, - 5561: 0x701E, - 5562: 0x701F, - 5563: 0x7020, - 5564: 0x7021, - 5565: 0x7022, - 5566: 0x7024, - 5567: 0x7025, - 5568: 0x7026, - 5569: 0x7027, - 5570: 0x7028, - 5571: 0x7029, - 5572: 0x702A, - 5573: 0x702B, - 5574: 0x702C, - 5575: 0x702D, - 5576: 0x702E, - 5577: 0x702F, - 5578: 0x7030, - 5579: 0x7031, - 5580: 0x7032, - 5581: 0x7033, - 5582: 0x7034, - 5583: 0x7036, - 5584: 0x7037, - 5585: 0x7038, - 5586: 0x703A, - 5587: 0x703B, - 5588: 0x703C, - 5589: 0x703D, - 5590: 0x703E, - 5591: 0x703F, - 5592: 0x7040, - 5593: 0x7041, - 5594: 0x7042, - 5595: 0x7043, - 5596: 0x7044, - 5597: 0x7045, - 5598: 0x7046, - 5599: 0x7047, - 5600: 0x7048, - 5601: 0x7049, - 5602: 0x704A, - 5603: 0x704B, - 5604: 0x704D, - 5605: 0x704E, - 5606: 0x7050, - 5607: 0x7051, - 5608: 0x7052, - 5609: 0x7053, - 5610: 0x7054, - 5611: 0x7055, - 5612: 0x7056, - 5613: 0x7057, - 5614: 0x7058, - 5615: 0x7059, - 5616: 0x705A, - 5617: 0x705B, - 5618: 0x705C, - 5619: 0x705D, - 5620: 0x705F, - 5621: 0x7060, - 5622: 0x7061, - 5623: 0x7062, - 5624: 0x7063, - 5625: 0x7064, - 5626: 0x7065, - 5627: 0x7066, - 5628: 0x7067, - 5629: 0x7068, - 5630: 0x7069, - 5631: 0x706A, - 5632: 0x706E, - 5633: 0x7071, - 5634: 0x7072, - 5635: 0x7073, - 5636: 0x7074, - 5637: 0x7077, - 5638: 0x7079, - 5639: 0x707A, - 5640: 0x707B, - 5641: 0x707D, - 5642: 0x7081, - 5643: 0x7082, - 5644: 0x7083, - 5645: 0x7084, - 5646: 0x7086, - 5647: 0x7087, - 5648: 0x7088, - 5649: 0x708B, - 5650: 0x708C, - 5651: 0x708D, - 5652: 0x708F, - 5653: 0x7090, - 5654: 0x7091, - 5655: 0x7093, - 5656: 0x7097, - 5657: 0x7098, - 5658: 0x709A, - 5659: 0x709B, - 5660: 0x709E, - 5661: 0x709F, - 5662: 0x70A0, - 5663: 0x70A1, - 5664: 0x70A2, - 5665: 0x70A3, - 5666: 0x70A4, - 5667: 0x70A5, - 5668: 0x70A6, - 5669: 0x70A7, - 5670: 0x70A8, - 5671: 0x70A9, - 5672: 0x70AA, - 5673: 0x70B0, - 5674: 0x70B2, - 5675: 0x70B4, - 5676: 0x70B5, - 5677: 0x70B6, - 5678: 0x70BA, - 5679: 0x70BE, - 5680: 0x70BF, - 5681: 0x70C4, - 5682: 0x70C5, - 5683: 0x70C6, - 5684: 0x70C7, - 5685: 0x70C9, - 5686: 0x70CB, - 5687: 0x70CC, - 5688: 0x70CD, - 5689: 0x70CE, - 5690: 0x70CF, - 5691: 0x70D0, - 5692: 0x70D1, - 5693: 0x70D2, - 5694: 0x70D3, - 5695: 0x70D4, - 5696: 0x70D5, - 5697: 0x70D6, - 5698: 0x70D7, - 5699: 0x70DA, - 5700: 0x70DC, - 5701: 0x70DD, - 5702: 0x70DE, - 5703: 0x70E0, - 5704: 0x70E1, - 5705: 0x70E2, - 5706: 0x70E3, - 5707: 0x70E5, - 5708: 0x70EA, - 5709: 0x70EE, - 5710: 0x70F0, - 5711: 0x70F1, - 5712: 0x70F2, - 5713: 0x70F3, - 5714: 0x70F4, - 5715: 0x70F5, - 5716: 0x70F6, - 5717: 0x70F8, - 5718: 0x70FA, - 5719: 0x70FB, - 5720: 0x70FC, - 5721: 0x70FE, - 5722: 0x70FF, - 5723: 0x7100, - 5724: 0x7101, - 5725: 0x7102, - 5726: 0x7103, - 5727: 0x7104, - 5728: 0x7105, - 5729: 0x7106, - 5730: 0x7107, - 5731: 0x7108, - 5732: 0x710B, - 5733: 0x710C, - 5734: 0x710D, - 5735: 0x710E, - 5736: 0x710F, - 5737: 0x7111, - 5738: 0x7112, - 5739: 0x7114, - 5740: 0x7117, - 5741: 0x711B, - 5742: 0x711C, - 5743: 0x711D, - 5744: 0x711E, - 5745: 0x711F, - 5746: 0x7120, - 5747: 0x7121, - 5748: 0x7122, - 5749: 0x7123, - 5750: 0x7124, - 5751: 0x7125, - 5752: 0x7127, - 5753: 0x7128, - 5754: 0x7129, - 5755: 0x712A, - 5756: 0x712B, - 5757: 0x712C, - 5758: 0x712D, - 5759: 0x712E, - 5760: 0x7132, - 5761: 0x7133, - 5762: 0x7134, - 5763: 0x7135, - 5764: 0x7137, - 5765: 0x7138, - 5766: 0x7139, - 5767: 0x713A, - 5768: 0x713B, - 5769: 0x713C, - 5770: 0x713D, - 5771: 0x713E, - 5772: 0x713F, - 5773: 0x7140, - 5774: 0x7141, - 5775: 0x7142, - 5776: 0x7143, - 5777: 0x7144, - 5778: 0x7146, - 5779: 0x7147, - 5780: 0x7148, - 5781: 0x7149, - 5782: 0x714B, - 5783: 0x714D, - 5784: 0x714F, - 5785: 0x7150, - 5786: 0x7151, - 5787: 0x7152, - 5788: 0x7153, - 5789: 0x7154, - 5790: 0x7155, - 5791: 0x7156, - 5792: 0x7157, - 5793: 0x7158, - 5794: 0x7159, - 5795: 0x715A, - 5796: 0x715B, - 5797: 0x715D, - 5798: 0x715F, - 5799: 0x7160, - 5800: 0x7161, - 5801: 0x7162, - 5802: 0x7163, - 5803: 0x7165, - 5804: 0x7169, - 5805: 0x716A, - 5806: 0x716B, - 5807: 0x716C, - 5808: 0x716D, - 5809: 0x716F, - 5810: 0x7170, - 5811: 0x7171, - 5812: 0x7174, - 5813: 0x7175, - 5814: 0x7176, - 5815: 0x7177, - 5816: 0x7179, - 5817: 0x717B, - 5818: 0x717C, - 5819: 0x717E, - 5820: 0x717F, - 5821: 0x7180, - 5822: 0x7181, - 5823: 0x7182, - 5824: 0x7183, - 5825: 0x7185, - 5826: 0x7186, - 5827: 0x7187, - 5828: 0x7188, - 5829: 0x7189, - 5830: 0x718B, - 5831: 0x718C, - 5832: 0x718D, - 5833: 0x718E, - 5834: 0x7190, - 5835: 0x7191, - 5836: 0x7192, - 5837: 0x7193, - 5838: 0x7195, - 5839: 0x7196, - 5840: 0x7197, - 5841: 0x719A, - 5842: 0x719B, - 5843: 0x719C, - 5844: 0x719D, - 5845: 0x719E, - 5846: 0x71A1, - 5847: 0x71A2, - 5848: 0x71A3, - 5849: 0x71A4, - 5850: 0x71A5, - 5851: 0x71A6, - 5852: 0x71A7, - 5853: 0x71A9, - 5854: 0x71AA, - 5855: 0x71AB, - 5856: 0x71AD, - 5857: 0x71AE, - 5858: 0x71AF, - 5859: 0x71B0, - 5860: 0x71B1, - 5861: 0x71B2, - 5862: 0x71B4, - 5863: 0x71B6, - 5864: 0x71B7, - 5865: 0x71B8, - 5866: 0x71BA, - 5867: 0x71BB, - 5868: 0x71BC, - 5869: 0x71BD, - 5870: 0x71BE, - 5871: 0x71BF, - 5872: 0x71C0, - 5873: 0x71C1, - 5874: 0x71C2, - 5875: 0x71C4, - 5876: 0x71C5, - 5877: 0x71C6, - 5878: 0x71C7, - 5879: 0x71C8, - 5880: 0x71C9, - 5881: 0x71CA, - 5882: 0x71CB, - 5883: 0x71CC, - 5884: 0x71CD, - 5885: 0x71CF, - 5886: 0x71D0, - 5887: 0x71D1, - 5888: 0x71D2, - 5889: 0x71D3, - 5890: 0x71D6, - 5891: 0x71D7, - 5892: 0x71D8, - 5893: 0x71D9, - 5894: 0x71DA, - 5895: 0x71DB, - 5896: 0x71DC, - 5897: 0x71DD, - 5898: 0x71DE, - 5899: 0x71DF, - 5900: 0x71E1, - 5901: 0x71E2, - 5902: 0x71E3, - 5903: 0x71E4, - 5904: 0x71E6, - 5905: 0x71E8, - 5906: 0x71E9, - 5907: 0x71EA, - 5908: 0x71EB, - 5909: 0x71EC, - 5910: 0x71ED, - 5911: 0x71EF, - 5912: 0x71F0, - 5913: 0x71F1, - 5914: 0x71F2, - 5915: 0x71F3, - 5916: 0x71F4, - 5917: 0x71F5, - 5918: 0x71F6, - 5919: 0x71F7, - 5920: 0x71F8, - 5921: 0x71FA, - 5922: 0x71FB, - 5923: 0x71FC, - 5924: 0x71FD, - 5925: 0x71FE, - 5926: 0x71FF, - 5927: 0x7200, - 5928: 0x7201, - 5929: 0x7202, - 5930: 0x7203, - 5931: 0x7204, - 5932: 0x7205, - 5933: 0x7207, - 5934: 0x7208, - 5935: 0x7209, - 5936: 0x720A, - 5937: 0x720B, - 5938: 0x720C, - 5939: 0x720D, - 5940: 0x720E, - 5941: 0x720F, - 5942: 0x7210, - 5943: 0x7211, - 5944: 0x7212, - 5945: 0x7213, - 5946: 0x7214, - 5947: 0x7215, - 5948: 0x7216, - 5949: 0x7217, - 5950: 0x7218, - 5951: 0x7219, - 5952: 0x721A, - 5953: 0x721B, - 5954: 0x721C, - 5955: 0x721E, - 5956: 0x721F, - 5957: 0x7220, - 5958: 0x7221, - 5959: 0x7222, - 5960: 0x7223, - 5961: 0x7224, - 5962: 0x7225, - 5963: 0x7226, - 5964: 0x7227, - 5965: 0x7229, - 5966: 0x722B, - 5967: 0x722D, - 5968: 0x722E, - 5969: 0x722F, - 5970: 0x7232, - 5971: 0x7233, - 5972: 0x7234, - 5973: 0x723A, - 5974: 0x723C, - 5975: 0x723E, - 5976: 0x7240, - 5977: 0x7241, - 5978: 0x7242, - 5979: 0x7243, - 5980: 0x7244, - 5981: 0x7245, - 5982: 0x7246, - 5983: 0x7249, - 5984: 0x724A, - 5985: 0x724B, - 5986: 0x724E, - 5987: 0x724F, - 5988: 0x7250, - 5989: 0x7251, - 5990: 0x7253, - 5991: 0x7254, - 5992: 0x7255, - 5993: 0x7257, - 5994: 0x7258, - 5995: 0x725A, - 5996: 0x725C, - 5997: 0x725E, - 5998: 0x7260, - 5999: 0x7263, - 6000: 0x7264, - 6001: 0x7265, - 6002: 0x7268, - 6003: 0x726A, - 6004: 0x726B, - 6005: 0x726C, - 6006: 0x726D, - 6007: 0x7270, - 6008: 0x7271, - 6009: 0x7273, - 6010: 0x7274, - 6011: 0x7276, - 6012: 0x7277, - 6013: 0x7278, - 6014: 0x727B, - 6015: 0x727C, - 6016: 0x727D, - 6017: 0x7282, - 6018: 0x7283, - 6019: 0x7285, - 6020: 0x7286, - 6021: 0x7287, - 6022: 0x7288, - 6023: 0x7289, - 6024: 0x728C, - 6025: 0x728E, - 6026: 0x7290, - 6027: 0x7291, - 6028: 0x7293, - 6029: 0x7294, - 6030: 0x7295, - 6031: 0x7296, - 6032: 0x7297, - 6033: 0x7298, - 6034: 0x7299, - 6035: 0x729A, - 6036: 0x729B, - 6037: 0x729C, - 6038: 0x729D, - 6039: 0x729E, - 6040: 0x72A0, - 6041: 0x72A1, - 6042: 0x72A2, - 6043: 0x72A3, - 6044: 0x72A4, - 6045: 0x72A5, - 6046: 0x72A6, - 6047: 0x72A7, - 6048: 0x72A8, - 6049: 0x72A9, - 6050: 0x72AA, - 6051: 0x72AB, - 6052: 0x72AE, - 6053: 0x72B1, - 6054: 0x72B2, - 6055: 0x72B3, - 6056: 0x72B5, - 6057: 0x72BA, - 6058: 0x72BB, - 6059: 0x72BC, - 6060: 0x72BD, - 6061: 0x72BE, - 6062: 0x72BF, - 6063: 0x72C0, - 6064: 0x72C5, - 6065: 0x72C6, - 6066: 0x72C7, - 6067: 0x72C9, - 6068: 0x72CA, - 6069: 0x72CB, - 6070: 0x72CC, - 6071: 0x72CF, - 6072: 0x72D1, - 6073: 0x72D3, - 6074: 0x72D4, - 6075: 0x72D5, - 6076: 0x72D6, - 6077: 0x72D8, - 6078: 0x72DA, - 6079: 0x72DB, - 6176: 0x3000, - 6177: 0x3001, - 6178: 0x3002, - 6179: 0x00B7, - 6180: 0x02C9, - 6181: 0x02C7, - 6182: 0x00A8, - 6183: 0x3003, - 6184: 0x3005, - 6185: 0x2014, - 6186: 0xFF5E, - 6187: 0x2016, - 6188: 0x2026, - 6189: 0x2018, - 6190: 0x2019, - 6191: 0x201C, - 6192: 0x201D, - 6193: 0x3014, - 6194: 0x3015, - 6195: 0x3008, - 6196: 0x3009, - 6197: 0x300A, - 6198: 0x300B, - 6199: 0x300C, - 6200: 0x300D, - 6201: 0x300E, - 6202: 0x300F, - 6203: 0x3016, - 6204: 0x3017, - 6205: 0x3010, - 6206: 0x3011, - 6207: 0x00B1, - 6208: 0x00D7, - 6209: 0x00F7, - 6210: 0x2236, - 6211: 0x2227, - 6212: 0x2228, - 6213: 0x2211, - 6214: 0x220F, - 6215: 0x222A, - 6216: 0x2229, - 6217: 0x2208, - 6218: 0x2237, - 6219: 0x221A, - 6220: 0x22A5, - 6221: 0x2225, - 6222: 0x2220, - 6223: 0x2312, - 6224: 0x2299, - 6225: 0x222B, - 6226: 0x222E, - 6227: 0x2261, - 6228: 0x224C, - 6229: 0x2248, - 6230: 0x223D, - 6231: 0x221D, - 6232: 0x2260, - 6233: 0x226E, - 6234: 0x226F, - 6235: 0x2264, - 6236: 0x2265, - 6237: 0x221E, - 6238: 0x2235, - 6239: 0x2234, - 6240: 0x2642, - 6241: 0x2640, - 6242: 0x00B0, - 6243: 0x2032, - 6244: 0x2033, - 6245: 0x2103, - 6246: 0xFF04, - 6247: 0x00A4, - 6248: 0xFFE0, - 6249: 0xFFE1, - 6250: 0x2030, - 6251: 0x00A7, - 6252: 0x2116, - 6253: 0x2606, - 6254: 0x2605, - 6255: 0x25CB, - 6256: 0x25CF, - 6257: 0x25CE, - 6258: 0x25C7, - 6259: 0x25C6, - 6260: 0x25A1, - 6261: 0x25A0, - 6262: 0x25B3, - 6263: 0x25B2, - 6264: 0x203B, - 6265: 0x2192, - 6266: 0x2190, - 6267: 0x2191, - 6268: 0x2193, - 6269: 0x3013, - 6366: 0x2170, - 6367: 0x2171, - 6368: 0x2172, - 6369: 0x2173, - 6370: 0x2174, - 6371: 0x2175, - 6372: 0x2176, - 6373: 0x2177, - 6374: 0x2178, - 6375: 0x2179, - 6382: 0x2488, - 6383: 0x2489, - 6384: 0x248A, - 6385: 0x248B, - 6386: 0x248C, - 6387: 0x248D, - 6388: 0x248E, - 6389: 0x248F, - 6390: 0x2490, - 6391: 0x2491, - 6392: 0x2492, - 6393: 0x2493, - 6394: 0x2494, - 6395: 0x2495, - 6396: 0x2496, - 6397: 0x2497, - 6398: 0x2498, - 6399: 0x2499, - 6400: 0x249A, - 6401: 0x249B, - 6402: 0x2474, - 6403: 0x2475, - 6404: 0x2476, - 6405: 0x2477, - 6406: 0x2478, - 6407: 0x2479, - 6408: 0x247A, - 6409: 0x247B, - 6410: 0x247C, - 6411: 0x247D, - 6412: 0x247E, - 6413: 0x247F, - 6414: 0x2480, - 6415: 0x2481, - 6416: 0x2482, - 6417: 0x2483, - 6418: 0x2484, - 6419: 0x2485, - 6420: 0x2486, - 6421: 0x2487, - 6422: 0x2460, - 6423: 0x2461, - 6424: 0x2462, - 6425: 0x2463, - 6426: 0x2464, - 6427: 0x2465, - 6428: 0x2466, - 6429: 0x2467, - 6430: 0x2468, - 6431: 0x2469, - 6432: 0x20AC, - 6434: 0x3220, - 6435: 0x3221, - 6436: 0x3222, - 6437: 0x3223, - 6438: 0x3224, - 6439: 0x3225, - 6440: 0x3226, - 6441: 0x3227, - 6442: 0x3228, - 6443: 0x3229, - 6446: 0x2160, - 6447: 0x2161, - 6448: 0x2162, - 6449: 0x2163, - 6450: 0x2164, - 6451: 0x2165, - 6452: 0x2166, - 6453: 0x2167, - 6454: 0x2168, - 6455: 0x2169, - 6456: 0x216A, - 6457: 0x216B, - 6555: 0x3000, - 6556: 0xFF01, - 6557: 0xFF02, - 6558: 0xFF03, - 6559: 0xFFE5, - 6560: 0xFF05, - 6561: 0xFF06, - 6562: 0xFF07, - 6563: 0xFF08, - 6564: 0xFF09, - 6565: 0xFF0A, - 6566: 0xFF0B, - 6567: 0xFF0C, - 6568: 0xFF0D, - 6569: 0xFF0E, - 6570: 0xFF0F, - 6571: 0xFF10, - 6572: 0xFF11, - 6573: 0xFF12, - 6574: 0xFF13, - 6575: 0xFF14, - 6576: 0xFF15, - 6577: 0xFF16, - 6578: 0xFF17, - 6579: 0xFF18, - 6580: 0xFF19, - 6581: 0xFF1A, - 6582: 0xFF1B, - 6583: 0xFF1C, - 6584: 0xFF1D, - 6585: 0xFF1E, - 6586: 0xFF1F, - 6587: 0xFF20, - 6588: 0xFF21, - 6589: 0xFF22, - 6590: 0xFF23, - 6591: 0xFF24, - 6592: 0xFF25, - 6593: 0xFF26, - 6594: 0xFF27, - 6595: 0xFF28, - 6596: 0xFF29, - 6597: 0xFF2A, - 6598: 0xFF2B, - 6599: 0xFF2C, - 6600: 0xFF2D, - 6601: 0xFF2E, - 6602: 0xFF2F, - 6603: 0xFF30, - 6604: 0xFF31, - 6605: 0xFF32, - 6606: 0xFF33, - 6607: 0xFF34, - 6608: 0xFF35, - 6609: 0xFF36, - 6610: 0xFF37, - 6611: 0xFF38, - 6612: 0xFF39, - 6613: 0xFF3A, - 6614: 0xFF3B, - 6615: 0xFF3C, - 6616: 0xFF3D, - 6617: 0xFF3E, - 6618: 0xFF3F, - 6619: 0xFF40, - 6620: 0xFF41, - 6621: 0xFF42, - 6622: 0xFF43, - 6623: 0xFF44, - 6624: 0xFF45, - 6625: 0xFF46, - 6626: 0xFF47, - 6627: 0xFF48, - 6628: 0xFF49, - 6629: 0xFF4A, - 6630: 0xFF4B, - 6631: 0xFF4C, - 6632: 0xFF4D, - 6633: 0xFF4E, - 6634: 0xFF4F, - 6635: 0xFF50, - 6636: 0xFF51, - 6637: 0xFF52, - 6638: 0xFF53, - 6639: 0xFF54, - 6640: 0xFF55, - 6641: 0xFF56, - 6642: 0xFF57, - 6643: 0xFF58, - 6644: 0xFF59, - 6645: 0xFF5A, - 6646: 0xFF5B, - 6647: 0xFF5C, - 6648: 0xFF5D, - 6649: 0xFFE3, - 6746: 0x3041, - 6747: 0x3042, - 6748: 0x3043, - 6749: 0x3044, - 6750: 0x3045, - 6751: 0x3046, - 6752: 0x3047, - 6753: 0x3048, - 6754: 0x3049, - 6755: 0x304A, - 6756: 0x304B, - 6757: 0x304C, - 6758: 0x304D, - 6759: 0x304E, - 6760: 0x304F, - 6761: 0x3050, - 6762: 0x3051, - 6763: 0x3052, - 6764: 0x3053, - 6765: 0x3054, - 6766: 0x3055, - 6767: 0x3056, - 6768: 0x3057, - 6769: 0x3058, - 6770: 0x3059, - 6771: 0x305A, - 6772: 0x305B, - 6773: 0x305C, - 6774: 0x305D, - 6775: 0x305E, - 6776: 0x305F, - 6777: 0x3060, - 6778: 0x3061, - 6779: 0x3062, - 6780: 0x3063, - 6781: 0x3064, - 6782: 0x3065, - 6783: 0x3066, - 6784: 0x3067, - 6785: 0x3068, - 6786: 0x3069, - 6787: 0x306A, - 6788: 0x306B, - 6789: 0x306C, - 6790: 0x306D, - 6791: 0x306E, - 6792: 0x306F, - 6793: 0x3070, - 6794: 0x3071, - 6795: 0x3072, - 6796: 0x3073, - 6797: 0x3074, - 6798: 0x3075, - 6799: 0x3076, - 6800: 0x3077, - 6801: 0x3078, - 6802: 0x3079, - 6803: 0x307A, - 6804: 0x307B, - 6805: 0x307C, - 6806: 0x307D, - 6807: 0x307E, - 6808: 0x307F, - 6809: 0x3080, - 6810: 0x3081, - 6811: 0x3082, - 6812: 0x3083, - 6813: 0x3084, - 6814: 0x3085, - 6815: 0x3086, - 6816: 0x3087, - 6817: 0x3088, - 6818: 0x3089, - 6819: 0x308A, - 6820: 0x308B, - 6821: 0x308C, - 6822: 0x308D, - 6823: 0x308E, - 6824: 0x308F, - 6825: 0x3090, - 6826: 0x3091, - 6827: 0x3092, - 6828: 0x3093, - 6936: 0x30A1, - 6937: 0x30A2, - 6938: 0x30A3, - 6939: 0x30A4, - 6940: 0x30A5, - 6941: 0x30A6, - 6942: 0x30A7, - 6943: 0x30A8, - 6944: 0x30A9, - 6945: 0x30AA, - 6946: 0x30AB, - 6947: 0x30AC, - 6948: 0x30AD, - 6949: 0x30AE, - 6950: 0x30AF, - 6951: 0x30B0, - 6952: 0x30B1, - 6953: 0x30B2, - 6954: 0x30B3, - 6955: 0x30B4, - 6956: 0x30B5, - 6957: 0x30B6, - 6958: 0x30B7, - 6959: 0x30B8, - 6960: 0x30B9, - 6961: 0x30BA, - 6962: 0x30BB, - 6963: 0x30BC, - 6964: 0x30BD, - 6965: 0x30BE, - 6966: 0x30BF, - 6967: 0x30C0, - 6968: 0x30C1, - 6969: 0x30C2, - 6970: 0x30C3, - 6971: 0x30C4, - 6972: 0x30C5, - 6973: 0x30C6, - 6974: 0x30C7, - 6975: 0x30C8, - 6976: 0x30C9, - 6977: 0x30CA, - 6978: 0x30CB, - 6979: 0x30CC, - 6980: 0x30CD, - 6981: 0x30CE, - 6982: 0x30CF, - 6983: 0x30D0, - 6984: 0x30D1, - 6985: 0x30D2, - 6986: 0x30D3, - 6987: 0x30D4, - 6988: 0x30D5, - 6989: 0x30D6, - 6990: 0x30D7, - 6991: 0x30D8, - 6992: 0x30D9, - 6993: 0x30DA, - 6994: 0x30DB, - 6995: 0x30DC, - 6996: 0x30DD, - 6997: 0x30DE, - 6998: 0x30DF, - 6999: 0x30E0, - 7000: 0x30E1, - 7001: 0x30E2, - 7002: 0x30E3, - 7003: 0x30E4, - 7004: 0x30E5, - 7005: 0x30E6, - 7006: 0x30E7, - 7007: 0x30E8, - 7008: 0x30E9, - 7009: 0x30EA, - 7010: 0x30EB, - 7011: 0x30EC, - 7012: 0x30ED, - 7013: 0x30EE, - 7014: 0x30EF, - 7015: 0x30F0, - 7016: 0x30F1, - 7017: 0x30F2, - 7018: 0x30F3, - 7019: 0x30F4, - 7020: 0x30F5, - 7021: 0x30F6, - 7126: 0x0391, - 7127: 0x0392, - 7128: 0x0393, - 7129: 0x0394, - 7130: 0x0395, - 7131: 0x0396, - 7132: 0x0397, - 7133: 0x0398, - 7134: 0x0399, - 7135: 0x039A, - 7136: 0x039B, - 7137: 0x039C, - 7138: 0x039D, - 7139: 0x039E, - 7140: 0x039F, - 7141: 0x03A0, - 7142: 0x03A1, - 7143: 0x03A3, - 7144: 0x03A4, - 7145: 0x03A5, - 7146: 0x03A6, - 7147: 0x03A7, - 7148: 0x03A8, - 7149: 0x03A9, - 7158: 0x03B1, - 7159: 0x03B2, - 7160: 0x03B3, - 7161: 0x03B4, - 7162: 0x03B5, - 7163: 0x03B6, - 7164: 0x03B7, - 7165: 0x03B8, - 7166: 0x03B9, - 7167: 0x03BA, - 7168: 0x03BB, - 7169: 0x03BC, - 7170: 0x03BD, - 7171: 0x03BE, - 7172: 0x03BF, - 7173: 0x03C0, - 7174: 0x03C1, - 7175: 0x03C3, - 7176: 0x03C4, - 7177: 0x03C5, - 7178: 0x03C6, - 7179: 0x03C7, - 7180: 0x03C8, - 7181: 0x03C9, - 7189: 0xFE35, - 7190: 0xFE36, - 7191: 0xFE39, - 7192: 0xFE3A, - 7193: 0xFE3F, - 7194: 0xFE40, - 7195: 0xFE3D, - 7196: 0xFE3E, - 7197: 0xFE41, - 7198: 0xFE42, - 7199: 0xFE43, - 7200: 0xFE44, - 7203: 0xFE3B, - 7204: 0xFE3C, - 7205: 0xFE37, - 7206: 0xFE38, - 7207: 0xFE31, - 7209: 0xFE33, - 7210: 0xFE34, - 7316: 0x0410, - 7317: 0x0411, - 7318: 0x0412, - 7319: 0x0413, - 7320: 0x0414, - 7321: 0x0415, - 7322: 0x0401, - 7323: 0x0416, - 7324: 0x0417, - 7325: 0x0418, - 7326: 0x0419, - 7327: 0x041A, - 7328: 0x041B, - 7329: 0x041C, - 7330: 0x041D, - 7331: 0x041E, - 7332: 0x041F, - 7333: 0x0420, - 7334: 0x0421, - 7335: 0x0422, - 7336: 0x0423, - 7337: 0x0424, - 7338: 0x0425, - 7339: 0x0426, - 7340: 0x0427, - 7341: 0x0428, - 7342: 0x0429, - 7343: 0x042A, - 7344: 0x042B, - 7345: 0x042C, - 7346: 0x042D, - 7347: 0x042E, - 7348: 0x042F, - 7364: 0x0430, - 7365: 0x0431, - 7366: 0x0432, - 7367: 0x0433, - 7368: 0x0434, - 7369: 0x0435, - 7370: 0x0451, - 7371: 0x0436, - 7372: 0x0437, - 7373: 0x0438, - 7374: 0x0439, - 7375: 0x043A, - 7376: 0x043B, - 7377: 0x043C, - 7378: 0x043D, - 7379: 0x043E, - 7380: 0x043F, - 7381: 0x0440, - 7382: 0x0441, - 7383: 0x0442, - 7384: 0x0443, - 7385: 0x0444, - 7386: 0x0445, - 7387: 0x0446, - 7388: 0x0447, - 7389: 0x0448, - 7390: 0x0449, - 7391: 0x044A, - 7392: 0x044B, - 7393: 0x044C, - 7394: 0x044D, - 7395: 0x044E, - 7396: 0x044F, - 7410: 0x02CA, - 7411: 0x02CB, - 7412: 0x02D9, - 7413: 0x2013, - 7414: 0x2015, - 7415: 0x2025, - 7416: 0x2035, - 7417: 0x2105, - 7418: 0x2109, - 7419: 0x2196, - 7420: 0x2197, - 7421: 0x2198, - 7422: 0x2199, - 7423: 0x2215, - 7424: 0x221F, - 7425: 0x2223, - 7426: 0x2252, - 7427: 0x2266, - 7428: 0x2267, - 7429: 0x22BF, - 7430: 0x2550, - 7431: 0x2551, - 7432: 0x2552, - 7433: 0x2553, - 7434: 0x2554, - 7435: 0x2555, - 7436: 0x2556, - 7437: 0x2557, - 7438: 0x2558, - 7439: 0x2559, - 7440: 0x255A, - 7441: 0x255B, - 7442: 0x255C, - 7443: 0x255D, - 7444: 0x255E, - 7445: 0x255F, - 7446: 0x2560, - 7447: 0x2561, - 7448: 0x2562, - 7449: 0x2563, - 7450: 0x2564, - 7451: 0x2565, - 7452: 0x2566, - 7453: 0x2567, - 7454: 0x2568, - 7455: 0x2569, - 7456: 0x256A, - 7457: 0x256B, - 7458: 0x256C, - 7459: 0x256D, - 7460: 0x256E, - 7461: 0x256F, - 7462: 0x2570, - 7463: 0x2571, - 7464: 0x2572, - 7465: 0x2573, - 7466: 0x2581, - 7467: 0x2582, - 7468: 0x2583, - 7469: 0x2584, - 7470: 0x2585, - 7471: 0x2586, - 7472: 0x2587, - 7473: 0x2588, - 7474: 0x2589, - 7475: 0x258A, - 7476: 0x258B, - 7477: 0x258C, - 7478: 0x258D, - 7479: 0x258E, - 7480: 0x258F, - 7481: 0x2593, - 7482: 0x2594, - 7483: 0x2595, - 7484: 0x25BC, - 7485: 0x25BD, - 7486: 0x25E2, - 7487: 0x25E3, - 7488: 0x25E4, - 7489: 0x25E5, - 7490: 0x2609, - 7491: 0x2295, - 7492: 0x3012, - 7493: 0x301D, - 7494: 0x301E, - 7506: 0x0101, - 7507: 0x00E1, - 7508: 0x01CE, - 7509: 0x00E0, - 7510: 0x0113, - 7511: 0x00E9, - 7512: 0x011B, - 7513: 0x00E8, - 7514: 0x012B, - 7515: 0x00ED, - 7516: 0x01D0, - 7517: 0x00EC, - 7518: 0x014D, - 7519: 0x00F3, - 7520: 0x01D2, - 7521: 0x00F2, - 7522: 0x016B, - 7523: 0x00FA, - 7524: 0x01D4, - 7525: 0x00F9, - 7526: 0x01D6, - 7527: 0x01D8, - 7528: 0x01DA, - 7529: 0x01DC, - 7530: 0x00FC, - 7531: 0x00EA, - 7532: 0x0251, - 7534: 0x0144, - 7535: 0x0148, - 7536: 0x01F9, - 7537: 0x0261, - 7542: 0x3105, - 7543: 0x3106, - 7544: 0x3107, - 7545: 0x3108, - 7546: 0x3109, - 7547: 0x310A, - 7548: 0x310B, - 7549: 0x310C, - 7550: 0x310D, - 7551: 0x310E, - 7552: 0x310F, - 7553: 0x3110, - 7554: 0x3111, - 7555: 0x3112, - 7556: 0x3113, - 7557: 0x3114, - 7558: 0x3115, - 7559: 0x3116, - 7560: 0x3117, - 7561: 0x3118, - 7562: 0x3119, - 7563: 0x311A, - 7564: 0x311B, - 7565: 0x311C, - 7566: 0x311D, - 7567: 0x311E, - 7568: 0x311F, - 7569: 0x3120, - 7570: 0x3121, - 7571: 0x3122, - 7572: 0x3123, - 7573: 0x3124, - 7574: 0x3125, - 7575: 0x3126, - 7576: 0x3127, - 7577: 0x3128, - 7578: 0x3129, - 7600: 0x3021, - 7601: 0x3022, - 7602: 0x3023, - 7603: 0x3024, - 7604: 0x3025, - 7605: 0x3026, - 7606: 0x3027, - 7607: 0x3028, - 7608: 0x3029, - 7609: 0x32A3, - 7610: 0x338E, - 7611: 0x338F, - 7612: 0x339C, - 7613: 0x339D, - 7614: 0x339E, - 7615: 0x33A1, - 7616: 0x33C4, - 7617: 0x33CE, - 7618: 0x33D1, - 7619: 0x33D2, - 7620: 0x33D5, - 7621: 0xFE30, - 7622: 0xFFE2, - 7623: 0xFFE4, - 7625: 0x2121, - 7626: 0x3231, - 7628: 0x2010, - 7632: 0x30FC, - 7633: 0x309B, - 7634: 0x309C, - 7635: 0x30FD, - 7636: 0x30FE, - 7637: 0x3006, - 7638: 0x309D, - 7639: 0x309E, - 7640: 0xFE49, - 7641: 0xFE4A, - 7642: 0xFE4B, - 7643: 0xFE4C, - 7644: 0xFE4D, - 7645: 0xFE4E, - 7646: 0xFE4F, - 7647: 0xFE50, - 7648: 0xFE51, - 7649: 0xFE52, - 7650: 0xFE54, - 7651: 0xFE55, - 7652: 0xFE56, - 7653: 0xFE57, - 7654: 0xFE59, - 7655: 0xFE5A, - 7656: 0xFE5B, - 7657: 0xFE5C, - 7658: 0xFE5D, - 7659: 0xFE5E, - 7660: 0xFE5F, - 7661: 0xFE60, - 7662: 0xFE61, - 7663: 0xFE62, - 7664: 0xFE63, - 7665: 0xFE64, - 7666: 0xFE65, - 7667: 0xFE66, - 7668: 0xFE68, - 7669: 0xFE69, - 7670: 0xFE6A, - 7671: 0xFE6B, - 7672: 0x303E, - 7673: 0x2FF0, - 7674: 0x2FF1, - 7675: 0x2FF2, - 7676: 0x2FF3, - 7677: 0x2FF4, - 7678: 0x2FF5, - 7679: 0x2FF6, - 7680: 0x2FF7, - 7681: 0x2FF8, - 7682: 0x2FF9, - 7683: 0x2FFA, - 7684: 0x2FFB, - 7685: 0x3007, - 7699: 0x2500, - 7700: 0x2501, - 7701: 0x2502, - 7702: 0x2503, - 7703: 0x2504, - 7704: 0x2505, - 7705: 0x2506, - 7706: 0x2507, - 7707: 0x2508, - 7708: 0x2509, - 7709: 0x250A, - 7710: 0x250B, - 7711: 0x250C, - 7712: 0x250D, - 7713: 0x250E, - 7714: 0x250F, - 7715: 0x2510, - 7716: 0x2511, - 7717: 0x2512, - 7718: 0x2513, - 7719: 0x2514, - 7720: 0x2515, - 7721: 0x2516, - 7722: 0x2517, - 7723: 0x2518, - 7724: 0x2519, - 7725: 0x251A, - 7726: 0x251B, - 7727: 0x251C, - 7728: 0x251D, - 7729: 0x251E, - 7730: 0x251F, - 7731: 0x2520, - 7732: 0x2521, - 7733: 0x2522, - 7734: 0x2523, - 7735: 0x2524, - 7736: 0x2525, - 7737: 0x2526, - 7738: 0x2527, - 7739: 0x2528, - 7740: 0x2529, - 7741: 0x252A, - 7742: 0x252B, - 7743: 0x252C, - 7744: 0x252D, - 7745: 0x252E, - 7746: 0x252F, - 7747: 0x2530, - 7748: 0x2531, - 7749: 0x2532, - 7750: 0x2533, - 7751: 0x2534, - 7752: 0x2535, - 7753: 0x2536, - 7754: 0x2537, - 7755: 0x2538, - 7756: 0x2539, - 7757: 0x253A, - 7758: 0x253B, - 7759: 0x253C, - 7760: 0x253D, - 7761: 0x253E, - 7762: 0x253F, - 7763: 0x2540, - 7764: 0x2541, - 7765: 0x2542, - 7766: 0x2543, - 7767: 0x2544, - 7768: 0x2545, - 7769: 0x2546, - 7770: 0x2547, - 7771: 0x2548, - 7772: 0x2549, - 7773: 0x254A, - 7774: 0x254B, - 7790: 0x72DC, - 7791: 0x72DD, - 7792: 0x72DF, - 7793: 0x72E2, - 7794: 0x72E3, - 7795: 0x72E4, - 7796: 0x72E5, - 7797: 0x72E6, - 7798: 0x72E7, - 7799: 0x72EA, - 7800: 0x72EB, - 7801: 0x72F5, - 7802: 0x72F6, - 7803: 0x72F9, - 7804: 0x72FD, - 7805: 0x72FE, - 7806: 0x72FF, - 7807: 0x7300, - 7808: 0x7302, - 7809: 0x7304, - 7810: 0x7305, - 7811: 0x7306, - 7812: 0x7307, - 7813: 0x7308, - 7814: 0x7309, - 7815: 0x730B, - 7816: 0x730C, - 7817: 0x730D, - 7818: 0x730F, - 7819: 0x7310, - 7820: 0x7311, - 7821: 0x7312, - 7822: 0x7314, - 7823: 0x7318, - 7824: 0x7319, - 7825: 0x731A, - 7826: 0x731F, - 7827: 0x7320, - 7828: 0x7323, - 7829: 0x7324, - 7830: 0x7326, - 7831: 0x7327, - 7832: 0x7328, - 7833: 0x732D, - 7834: 0x732F, - 7835: 0x7330, - 7836: 0x7332, - 7837: 0x7333, - 7838: 0x7335, - 7839: 0x7336, - 7840: 0x733A, - 7841: 0x733B, - 7842: 0x733C, - 7843: 0x733D, - 7844: 0x7340, - 7845: 0x7341, - 7846: 0x7342, - 7847: 0x7343, - 7848: 0x7344, - 7849: 0x7345, - 7850: 0x7346, - 7851: 0x7347, - 7852: 0x7348, - 7853: 0x7349, - 7854: 0x734A, - 7855: 0x734B, - 7856: 0x734C, - 7857: 0x734E, - 7858: 0x734F, - 7859: 0x7351, - 7860: 0x7353, - 7861: 0x7354, - 7862: 0x7355, - 7863: 0x7356, - 7864: 0x7358, - 7865: 0x7359, - 7866: 0x735A, - 7867: 0x735B, - 7868: 0x735C, - 7869: 0x735D, - 7870: 0x735E, - 7871: 0x735F, - 7872: 0x7361, - 7873: 0x7362, - 7874: 0x7363, - 7875: 0x7364, - 7876: 0x7365, - 7877: 0x7366, - 7878: 0x7367, - 7879: 0x7368, - 7880: 0x7369, - 7881: 0x736A, - 7882: 0x736B, - 7883: 0x736E, - 7884: 0x7370, - 7885: 0x7371, - 7980: 0x7372, - 7981: 0x7373, - 7982: 0x7374, - 7983: 0x7375, - 7984: 0x7376, - 7985: 0x7377, - 7986: 0x7378, - 7987: 0x7379, - 7988: 0x737A, - 7989: 0x737B, - 7990: 0x737C, - 7991: 0x737D, - 7992: 0x737F, - 7993: 0x7380, - 7994: 0x7381, - 7995: 0x7382, - 7996: 0x7383, - 7997: 0x7385, - 7998: 0x7386, - 7999: 0x7388, - 8000: 0x738A, - 8001: 0x738C, - 8002: 0x738D, - 8003: 0x738F, - 8004: 0x7390, - 8005: 0x7392, - 8006: 0x7393, - 8007: 0x7394, - 8008: 0x7395, - 8009: 0x7397, - 8010: 0x7398, - 8011: 0x7399, - 8012: 0x739A, - 8013: 0x739C, - 8014: 0x739D, - 8015: 0x739E, - 8016: 0x73A0, - 8017: 0x73A1, - 8018: 0x73A3, - 8019: 0x73A4, - 8020: 0x73A5, - 8021: 0x73A6, - 8022: 0x73A7, - 8023: 0x73A8, - 8024: 0x73AA, - 8025: 0x73AC, - 8026: 0x73AD, - 8027: 0x73B1, - 8028: 0x73B4, - 8029: 0x73B5, - 8030: 0x73B6, - 8031: 0x73B8, - 8032: 0x73B9, - 8033: 0x73BC, - 8034: 0x73BD, - 8035: 0x73BE, - 8036: 0x73BF, - 8037: 0x73C1, - 8038: 0x73C3, - 8039: 0x73C4, - 8040: 0x73C5, - 8041: 0x73C6, - 8042: 0x73C7, - 8043: 0x73CB, - 8044: 0x73CC, - 8045: 0x73CE, - 8046: 0x73D2, - 8047: 0x73D3, - 8048: 0x73D4, - 8049: 0x73D5, - 8050: 0x73D6, - 8051: 0x73D7, - 8052: 0x73D8, - 8053: 0x73DA, - 8054: 0x73DB, - 8055: 0x73DC, - 8056: 0x73DD, - 8057: 0x73DF, - 8058: 0x73E1, - 8059: 0x73E2, - 8060: 0x73E3, - 8061: 0x73E4, - 8062: 0x73E6, - 8063: 0x73E8, - 8064: 0x73EA, - 8065: 0x73EB, - 8066: 0x73EC, - 8067: 0x73EE, - 8068: 0x73EF, - 8069: 0x73F0, - 8070: 0x73F1, - 8071: 0x73F3, - 8072: 0x73F4, - 8073: 0x73F5, - 8074: 0x73F6, - 8075: 0x73F7, - 8170: 0x73F8, - 8171: 0x73F9, - 8172: 0x73FA, - 8173: 0x73FB, - 8174: 0x73FC, - 8175: 0x73FD, - 8176: 0x73FE, - 8177: 0x73FF, - 8178: 0x7400, - 8179: 0x7401, - 8180: 0x7402, - 8181: 0x7404, - 8182: 0x7407, - 8183: 0x7408, - 8184: 0x740B, - 8185: 0x740C, - 8186: 0x740D, - 8187: 0x740E, - 8188: 0x7411, - 8189: 0x7412, - 8190: 0x7413, - 8191: 0x7414, - 8192: 0x7415, - 8193: 0x7416, - 8194: 0x7417, - 8195: 0x7418, - 8196: 0x7419, - 8197: 0x741C, - 8198: 0x741D, - 8199: 0x741E, - 8200: 0x741F, - 8201: 0x7420, - 8202: 0x7421, - 8203: 0x7423, - 8204: 0x7424, - 8205: 0x7427, - 8206: 0x7429, - 8207: 0x742B, - 8208: 0x742D, - 8209: 0x742F, - 8210: 0x7431, - 8211: 0x7432, - 8212: 0x7437, - 8213: 0x7438, - 8214: 0x7439, - 8215: 0x743A, - 8216: 0x743B, - 8217: 0x743D, - 8218: 0x743E, - 8219: 0x743F, - 8220: 0x7440, - 8221: 0x7442, - 8222: 0x7443, - 8223: 0x7444, - 8224: 0x7445, - 8225: 0x7446, - 8226: 0x7447, - 8227: 0x7448, - 8228: 0x7449, - 8229: 0x744A, - 8230: 0x744B, - 8231: 0x744C, - 8232: 0x744D, - 8233: 0x744E, - 8234: 0x744F, - 8235: 0x7450, - 8236: 0x7451, - 8237: 0x7452, - 8238: 0x7453, - 8239: 0x7454, - 8240: 0x7456, - 8241: 0x7458, - 8242: 0x745D, - 8243: 0x7460, - 8244: 0x7461, - 8245: 0x7462, - 8246: 0x7463, - 8247: 0x7464, - 8248: 0x7465, - 8249: 0x7466, - 8250: 0x7467, - 8251: 0x7468, - 8252: 0x7469, - 8253: 0x746A, - 8254: 0x746B, - 8255: 0x746C, - 8256: 0x746E, - 8257: 0x746F, - 8258: 0x7471, - 8259: 0x7472, - 8260: 0x7473, - 8261: 0x7474, - 8262: 0x7475, - 8263: 0x7478, - 8264: 0x7479, - 8265: 0x747A, - 8360: 0x747B, - 8361: 0x747C, - 8362: 0x747D, - 8363: 0x747F, - 8364: 0x7482, - 8365: 0x7484, - 8366: 0x7485, - 8367: 0x7486, - 8368: 0x7488, - 8369: 0x7489, - 8370: 0x748A, - 8371: 0x748C, - 8372: 0x748D, - 8373: 0x748F, - 8374: 0x7491, - 8375: 0x7492, - 8376: 0x7493, - 8377: 0x7494, - 8378: 0x7495, - 8379: 0x7496, - 8380: 0x7497, - 8381: 0x7498, - 8382: 0x7499, - 8383: 0x749A, - 8384: 0x749B, - 8385: 0x749D, - 8386: 0x749F, - 8387: 0x74A0, - 8388: 0x74A1, - 8389: 0x74A2, - 8390: 0x74A3, - 8391: 0x74A4, - 8392: 0x74A5, - 8393: 0x74A6, - 8394: 0x74AA, - 8395: 0x74AB, - 8396: 0x74AC, - 8397: 0x74AD, - 8398: 0x74AE, - 8399: 0x74AF, - 8400: 0x74B0, - 8401: 0x74B1, - 8402: 0x74B2, - 8403: 0x74B3, - 8404: 0x74B4, - 8405: 0x74B5, - 8406: 0x74B6, - 8407: 0x74B7, - 8408: 0x74B8, - 8409: 0x74B9, - 8410: 0x74BB, - 8411: 0x74BC, - 8412: 0x74BD, - 8413: 0x74BE, - 8414: 0x74BF, - 8415: 0x74C0, - 8416: 0x74C1, - 8417: 0x74C2, - 8418: 0x74C3, - 8419: 0x74C4, - 8420: 0x74C5, - 8421: 0x74C6, - 8422: 0x74C7, - 8423: 0x74C8, - 8424: 0x74C9, - 8425: 0x74CA, - 8426: 0x74CB, - 8427: 0x74CC, - 8428: 0x74CD, - 8429: 0x74CE, - 8430: 0x74CF, - 8431: 0x74D0, - 8432: 0x74D1, - 8433: 0x74D3, - 8434: 0x74D4, - 8435: 0x74D5, - 8436: 0x74D6, - 8437: 0x74D7, - 8438: 0x74D8, - 8439: 0x74D9, - 8440: 0x74DA, - 8441: 0x74DB, - 8442: 0x74DD, - 8443: 0x74DF, - 8444: 0x74E1, - 8445: 0x74E5, - 8446: 0x74E7, - 8447: 0x74E8, - 8448: 0x74E9, - 8449: 0x74EA, - 8450: 0x74EB, - 8451: 0x74EC, - 8452: 0x74ED, - 8453: 0x74F0, - 8454: 0x74F1, - 8455: 0x74F2, - 8550: 0x74F3, - 8551: 0x74F5, - 8552: 0x74F8, - 8553: 0x74F9, - 8554: 0x74FA, - 8555: 0x74FB, - 8556: 0x74FC, - 8557: 0x74FD, - 8558: 0x74FE, - 8559: 0x7500, - 8560: 0x7501, - 8561: 0x7502, - 8562: 0x7503, - 8563: 0x7505, - 8564: 0x7506, - 8565: 0x7507, - 8566: 0x7508, - 8567: 0x7509, - 8568: 0x750A, - 8569: 0x750B, - 8570: 0x750C, - 8571: 0x750E, - 8572: 0x7510, - 8573: 0x7512, - 8574: 0x7514, - 8575: 0x7515, - 8576: 0x7516, - 8577: 0x7517, - 8578: 0x751B, - 8579: 0x751D, - 8580: 0x751E, - 8581: 0x7520, - 8582: 0x7521, - 8583: 0x7522, - 8584: 0x7523, - 8585: 0x7524, - 8586: 0x7526, - 8587: 0x7527, - 8588: 0x752A, - 8589: 0x752E, - 8590: 0x7534, - 8591: 0x7536, - 8592: 0x7539, - 8593: 0x753C, - 8594: 0x753D, - 8595: 0x753F, - 8596: 0x7541, - 8597: 0x7542, - 8598: 0x7543, - 8599: 0x7544, - 8600: 0x7546, - 8601: 0x7547, - 8602: 0x7549, - 8603: 0x754A, - 8604: 0x754D, - 8605: 0x7550, - 8606: 0x7551, - 8607: 0x7552, - 8608: 0x7553, - 8609: 0x7555, - 8610: 0x7556, - 8611: 0x7557, - 8612: 0x7558, - 8613: 0x755D, - 8614: 0x755E, - 8615: 0x755F, - 8616: 0x7560, - 8617: 0x7561, - 8618: 0x7562, - 8619: 0x7563, - 8620: 0x7564, - 8621: 0x7567, - 8622: 0x7568, - 8623: 0x7569, - 8624: 0x756B, - 8625: 0x756C, - 8626: 0x756D, - 8627: 0x756E, - 8628: 0x756F, - 8629: 0x7570, - 8630: 0x7571, - 8631: 0x7573, - 8632: 0x7575, - 8633: 0x7576, - 8634: 0x7577, - 8635: 0x757A, - 8636: 0x757B, - 8637: 0x757C, - 8638: 0x757D, - 8639: 0x757E, - 8640: 0x7580, - 8641: 0x7581, - 8642: 0x7582, - 8643: 0x7584, - 8644: 0x7585, - 8645: 0x7587, - 8740: 0x7588, - 8741: 0x7589, - 8742: 0x758A, - 8743: 0x758C, - 8744: 0x758D, - 8745: 0x758E, - 8746: 0x7590, - 8747: 0x7593, - 8748: 0x7595, - 8749: 0x7598, - 8750: 0x759B, - 8751: 0x759C, - 8752: 0x759E, - 8753: 0x75A2, - 8754: 0x75A6, - 8755: 0x75A7, - 8756: 0x75A8, - 8757: 0x75A9, - 8758: 0x75AA, - 8759: 0x75AD, - 8760: 0x75B6, - 8761: 0x75B7, - 8762: 0x75BA, - 8763: 0x75BB, - 8764: 0x75BF, - 8765: 0x75C0, - 8766: 0x75C1, - 8767: 0x75C6, - 8768: 0x75CB, - 8769: 0x75CC, - 8770: 0x75CE, - 8771: 0x75CF, - 8772: 0x75D0, - 8773: 0x75D1, - 8774: 0x75D3, - 8775: 0x75D7, - 8776: 0x75D9, - 8777: 0x75DA, - 8778: 0x75DC, - 8779: 0x75DD, - 8780: 0x75DF, - 8781: 0x75E0, - 8782: 0x75E1, - 8783: 0x75E5, - 8784: 0x75E9, - 8785: 0x75EC, - 8786: 0x75ED, - 8787: 0x75EE, - 8788: 0x75EF, - 8789: 0x75F2, - 8790: 0x75F3, - 8791: 0x75F5, - 8792: 0x75F6, - 8793: 0x75F7, - 8794: 0x75F8, - 8795: 0x75FA, - 8796: 0x75FB, - 8797: 0x75FD, - 8798: 0x75FE, - 8799: 0x7602, - 8800: 0x7604, - 8801: 0x7606, - 8802: 0x7607, - 8803: 0x7608, - 8804: 0x7609, - 8805: 0x760B, - 8806: 0x760D, - 8807: 0x760E, - 8808: 0x760F, - 8809: 0x7611, - 8810: 0x7612, - 8811: 0x7613, - 8812: 0x7614, - 8813: 0x7616, - 8814: 0x761A, - 8815: 0x761C, - 8816: 0x761D, - 8817: 0x761E, - 8818: 0x7621, - 8819: 0x7623, - 8820: 0x7627, - 8821: 0x7628, - 8822: 0x762C, - 8823: 0x762E, - 8824: 0x762F, - 8825: 0x7631, - 8826: 0x7632, - 8827: 0x7636, - 8828: 0x7637, - 8829: 0x7639, - 8830: 0x763A, - 8831: 0x763B, - 8832: 0x763D, - 8833: 0x7641, - 8834: 0x7642, - 8835: 0x7644, - 8930: 0x7645, - 8931: 0x7646, - 8932: 0x7647, - 8933: 0x7648, - 8934: 0x7649, - 8935: 0x764A, - 8936: 0x764B, - 8937: 0x764E, - 8938: 0x764F, - 8939: 0x7650, - 8940: 0x7651, - 8941: 0x7652, - 8942: 0x7653, - 8943: 0x7655, - 8944: 0x7657, - 8945: 0x7658, - 8946: 0x7659, - 8947: 0x765A, - 8948: 0x765B, - 8949: 0x765D, - 8950: 0x765F, - 8951: 0x7660, - 8952: 0x7661, - 8953: 0x7662, - 8954: 0x7664, - 8955: 0x7665, - 8956: 0x7666, - 8957: 0x7667, - 8958: 0x7668, - 8959: 0x7669, - 8960: 0x766A, - 8961: 0x766C, - 8962: 0x766D, - 8963: 0x766E, - 8964: 0x7670, - 8965: 0x7671, - 8966: 0x7672, - 8967: 0x7673, - 8968: 0x7674, - 8969: 0x7675, - 8970: 0x7676, - 8971: 0x7677, - 8972: 0x7679, - 8973: 0x767A, - 8974: 0x767C, - 8975: 0x767F, - 8976: 0x7680, - 8977: 0x7681, - 8978: 0x7683, - 8979: 0x7685, - 8980: 0x7689, - 8981: 0x768A, - 8982: 0x768C, - 8983: 0x768D, - 8984: 0x768F, - 8985: 0x7690, - 8986: 0x7692, - 8987: 0x7694, - 8988: 0x7695, - 8989: 0x7697, - 8990: 0x7698, - 8991: 0x769A, - 8992: 0x769B, - 8993: 0x769C, - 8994: 0x769D, - 8995: 0x769E, - 8996: 0x769F, - 8997: 0x76A0, - 8998: 0x76A1, - 8999: 0x76A2, - 9000: 0x76A3, - 9001: 0x76A5, - 9002: 0x76A6, - 9003: 0x76A7, - 9004: 0x76A8, - 9005: 0x76A9, - 9006: 0x76AA, - 9007: 0x76AB, - 9008: 0x76AC, - 9009: 0x76AD, - 9010: 0x76AF, - 9011: 0x76B0, - 9012: 0x76B3, - 9013: 0x76B5, - 9014: 0x76B6, - 9015: 0x76B7, - 9016: 0x76B8, - 9017: 0x76B9, - 9018: 0x76BA, - 9019: 0x76BB, - 9020: 0x76BC, - 9021: 0x76BD, - 9022: 0x76BE, - 9023: 0x76C0, - 9024: 0x76C1, - 9025: 0x76C3, - 9026: 0x554A, - 9027: 0x963F, - 9028: 0x57C3, - 9029: 0x6328, - 9030: 0x54CE, - 9031: 0x5509, - 9032: 0x54C0, - 9033: 0x7691, - 9034: 0x764C, - 9035: 0x853C, - 9036: 0x77EE, - 9037: 0x827E, - 9038: 0x788D, - 9039: 0x7231, - 9040: 0x9698, - 9041: 0x978D, - 9042: 0x6C28, - 9043: 0x5B89, - 9044: 0x4FFA, - 9045: 0x6309, - 9046: 0x6697, - 9047: 0x5CB8, - 9048: 0x80FA, - 9049: 0x6848, - 9050: 0x80AE, - 9051: 0x6602, - 9052: 0x76CE, - 9053: 0x51F9, - 9054: 0x6556, - 9055: 0x71AC, - 9056: 0x7FF1, - 9057: 0x8884, - 9058: 0x50B2, - 9059: 0x5965, - 9060: 0x61CA, - 9061: 0x6FB3, - 9062: 0x82AD, - 9063: 0x634C, - 9064: 0x6252, - 9065: 0x53ED, - 9066: 0x5427, - 9067: 0x7B06, - 9068: 0x516B, - 9069: 0x75A4, - 9070: 0x5DF4, - 9071: 0x62D4, - 9072: 0x8DCB, - 9073: 0x9776, - 9074: 0x628A, - 9075: 0x8019, - 9076: 0x575D, - 9077: 0x9738, - 9078: 0x7F62, - 9079: 0x7238, - 9080: 0x767D, - 9081: 0x67CF, - 9082: 0x767E, - 9083: 0x6446, - 9084: 0x4F70, - 9085: 0x8D25, - 9086: 0x62DC, - 9087: 0x7A17, - 9088: 0x6591, - 9089: 0x73ED, - 9090: 0x642C, - 9091: 0x6273, - 9092: 0x822C, - 9093: 0x9881, - 9094: 0x677F, - 9095: 0x7248, - 9096: 0x626E, - 9097: 0x62CC, - 9098: 0x4F34, - 9099: 0x74E3, - 9100: 0x534A, - 9101: 0x529E, - 9102: 0x7ECA, - 9103: 0x90A6, - 9104: 0x5E2E, - 9105: 0x6886, - 9106: 0x699C, - 9107: 0x8180, - 9108: 0x7ED1, - 9109: 0x68D2, - 9110: 0x78C5, - 9111: 0x868C, - 9112: 0x9551, - 9113: 0x508D, - 9114: 0x8C24, - 9115: 0x82DE, - 9116: 0x80DE, - 9117: 0x5305, - 9118: 0x8912, - 9119: 0x5265, - 9120: 0x76C4, - 9121: 0x76C7, - 9122: 0x76C9, - 9123: 0x76CB, - 9124: 0x76CC, - 9125: 0x76D3, - 9126: 0x76D5, - 9127: 0x76D9, - 9128: 0x76DA, - 9129: 0x76DC, - 9130: 0x76DD, - 9131: 0x76DE, - 9132: 0x76E0, - 9133: 0x76E1, - 9134: 0x76E2, - 9135: 0x76E3, - 9136: 0x76E4, - 9137: 0x76E6, - 9138: 0x76E7, - 9139: 0x76E8, - 9140: 0x76E9, - 9141: 0x76EA, - 9142: 0x76EB, - 9143: 0x76EC, - 9144: 0x76ED, - 9145: 0x76F0, - 9146: 0x76F3, - 9147: 0x76F5, - 9148: 0x76F6, - 9149: 0x76F7, - 9150: 0x76FA, - 9151: 0x76FB, - 9152: 0x76FD, - 9153: 0x76FF, - 9154: 0x7700, - 9155: 0x7702, - 9156: 0x7703, - 9157: 0x7705, - 9158: 0x7706, - 9159: 0x770A, - 9160: 0x770C, - 9161: 0x770E, - 9162: 0x770F, - 9163: 0x7710, - 9164: 0x7711, - 9165: 0x7712, - 9166: 0x7713, - 9167: 0x7714, - 9168: 0x7715, - 9169: 0x7716, - 9170: 0x7717, - 9171: 0x7718, - 9172: 0x771B, - 9173: 0x771C, - 9174: 0x771D, - 9175: 0x771E, - 9176: 0x7721, - 9177: 0x7723, - 9178: 0x7724, - 9179: 0x7725, - 9180: 0x7727, - 9181: 0x772A, - 9182: 0x772B, - 9183: 0x772C, - 9184: 0x772E, - 9185: 0x7730, - 9186: 0x7731, - 9187: 0x7732, - 9188: 0x7733, - 9189: 0x7734, - 9190: 0x7739, - 9191: 0x773B, - 9192: 0x773D, - 9193: 0x773E, - 9194: 0x773F, - 9195: 0x7742, - 9196: 0x7744, - 9197: 0x7745, - 9198: 0x7746, - 9199: 0x7748, - 9200: 0x7749, - 9201: 0x774A, - 9202: 0x774B, - 9203: 0x774C, - 9204: 0x774D, - 9205: 0x774E, - 9206: 0x774F, - 9207: 0x7752, - 9208: 0x7753, - 9209: 0x7754, - 9210: 0x7755, - 9211: 0x7756, - 9212: 0x7757, - 9213: 0x7758, - 9214: 0x7759, - 9215: 0x775C, - 9216: 0x8584, - 9217: 0x96F9, - 9218: 0x4FDD, - 9219: 0x5821, - 9220: 0x9971, - 9221: 0x5B9D, - 9222: 0x62B1, - 9223: 0x62A5, - 9224: 0x66B4, - 9225: 0x8C79, - 9226: 0x9C8D, - 9227: 0x7206, - 9228: 0x676F, - 9229: 0x7891, - 9230: 0x60B2, - 9231: 0x5351, - 9232: 0x5317, - 9233: 0x8F88, - 9234: 0x80CC, - 9235: 0x8D1D, - 9236: 0x94A1, - 9237: 0x500D, - 9238: 0x72C8, - 9239: 0x5907, - 9240: 0x60EB, - 9241: 0x7119, - 9242: 0x88AB, - 9243: 0x5954, - 9244: 0x82EF, - 9245: 0x672C, - 9246: 0x7B28, - 9247: 0x5D29, - 9248: 0x7EF7, - 9249: 0x752D, - 9250: 0x6CF5, - 9251: 0x8E66, - 9252: 0x8FF8, - 9253: 0x903C, - 9254: 0x9F3B, - 9255: 0x6BD4, - 9256: 0x9119, - 9257: 0x7B14, - 9258: 0x5F7C, - 9259: 0x78A7, - 9260: 0x84D6, - 9261: 0x853D, - 9262: 0x6BD5, - 9263: 0x6BD9, - 9264: 0x6BD6, - 9265: 0x5E01, - 9266: 0x5E87, - 9267: 0x75F9, - 9268: 0x95ED, - 9269: 0x655D, - 9270: 0x5F0A, - 9271: 0x5FC5, - 9272: 0x8F9F, - 9273: 0x58C1, - 9274: 0x81C2, - 9275: 0x907F, - 9276: 0x965B, - 9277: 0x97AD, - 9278: 0x8FB9, - 9279: 0x7F16, - 9280: 0x8D2C, - 9281: 0x6241, - 9282: 0x4FBF, - 9283: 0x53D8, - 9284: 0x535E, - 9285: 0x8FA8, - 9286: 0x8FA9, - 9287: 0x8FAB, - 9288: 0x904D, - 9289: 0x6807, - 9290: 0x5F6A, - 9291: 0x8198, - 9292: 0x8868, - 9293: 0x9CD6, - 9294: 0x618B, - 9295: 0x522B, - 9296: 0x762A, - 9297: 0x5F6C, - 9298: 0x658C, - 9299: 0x6FD2, - 9300: 0x6EE8, - 9301: 0x5BBE, - 9302: 0x6448, - 9303: 0x5175, - 9304: 0x51B0, - 9305: 0x67C4, - 9306: 0x4E19, - 9307: 0x79C9, - 9308: 0x997C, - 9309: 0x70B3, - 9310: 0x775D, - 9311: 0x775E, - 9312: 0x775F, - 9313: 0x7760, - 9314: 0x7764, - 9315: 0x7767, - 9316: 0x7769, - 9317: 0x776A, - 9318: 0x776D, - 9319: 0x776E, - 9320: 0x776F, - 9321: 0x7770, - 9322: 0x7771, - 9323: 0x7772, - 9324: 0x7773, - 9325: 0x7774, - 9326: 0x7775, - 9327: 0x7776, - 9328: 0x7777, - 9329: 0x7778, - 9330: 0x777A, - 9331: 0x777B, - 9332: 0x777C, - 9333: 0x7781, - 9334: 0x7782, - 9335: 0x7783, - 9336: 0x7786, - 9337: 0x7787, - 9338: 0x7788, - 9339: 0x7789, - 9340: 0x778A, - 9341: 0x778B, - 9342: 0x778F, - 9343: 0x7790, - 9344: 0x7793, - 9345: 0x7794, - 9346: 0x7795, - 9347: 0x7796, - 9348: 0x7797, - 9349: 0x7798, - 9350: 0x7799, - 9351: 0x779A, - 9352: 0x779B, - 9353: 0x779C, - 9354: 0x779D, - 9355: 0x779E, - 9356: 0x77A1, - 9357: 0x77A3, - 9358: 0x77A4, - 9359: 0x77A6, - 9360: 0x77A8, - 9361: 0x77AB, - 9362: 0x77AD, - 9363: 0x77AE, - 9364: 0x77AF, - 9365: 0x77B1, - 9366: 0x77B2, - 9367: 0x77B4, - 9368: 0x77B6, - 9369: 0x77B7, - 9370: 0x77B8, - 9371: 0x77B9, - 9372: 0x77BA, - 9373: 0x77BC, - 9374: 0x77BE, - 9375: 0x77C0, - 9376: 0x77C1, - 9377: 0x77C2, - 9378: 0x77C3, - 9379: 0x77C4, - 9380: 0x77C5, - 9381: 0x77C6, - 9382: 0x77C7, - 9383: 0x77C8, - 9384: 0x77C9, - 9385: 0x77CA, - 9386: 0x77CB, - 9387: 0x77CC, - 9388: 0x77CE, - 9389: 0x77CF, - 9390: 0x77D0, - 9391: 0x77D1, - 9392: 0x77D2, - 9393: 0x77D3, - 9394: 0x77D4, - 9395: 0x77D5, - 9396: 0x77D6, - 9397: 0x77D8, - 9398: 0x77D9, - 9399: 0x77DA, - 9400: 0x77DD, - 9401: 0x77DE, - 9402: 0x77DF, - 9403: 0x77E0, - 9404: 0x77E1, - 9405: 0x77E4, - 9406: 0x75C5, - 9407: 0x5E76, - 9408: 0x73BB, - 9409: 0x83E0, - 9410: 0x64AD, - 9411: 0x62E8, - 9412: 0x94B5, - 9413: 0x6CE2, - 9414: 0x535A, - 9415: 0x52C3, - 9416: 0x640F, - 9417: 0x94C2, - 9418: 0x7B94, - 9419: 0x4F2F, - 9420: 0x5E1B, - 9421: 0x8236, - 9422: 0x8116, - 9423: 0x818A, - 9424: 0x6E24, - 9425: 0x6CCA, - 9426: 0x9A73, - 9427: 0x6355, - 9428: 0x535C, - 9429: 0x54FA, - 9430: 0x8865, - 9431: 0x57E0, - 9432: 0x4E0D, - 9433: 0x5E03, - 9434: 0x6B65, - 9435: 0x7C3F, - 9436: 0x90E8, - 9437: 0x6016, - 9438: 0x64E6, - 9439: 0x731C, - 9440: 0x88C1, - 9441: 0x6750, - 9442: 0x624D, - 9443: 0x8D22, - 9444: 0x776C, - 9445: 0x8E29, - 9446: 0x91C7, - 9447: 0x5F69, - 9448: 0x83DC, - 9449: 0x8521, - 9450: 0x9910, - 9451: 0x53C2, - 9452: 0x8695, - 9453: 0x6B8B, - 9454: 0x60ED, - 9455: 0x60E8, - 9456: 0x707F, - 9457: 0x82CD, - 9458: 0x8231, - 9459: 0x4ED3, - 9460: 0x6CA7, - 9461: 0x85CF, - 9462: 0x64CD, - 9463: 0x7CD9, - 9464: 0x69FD, - 9465: 0x66F9, - 9466: 0x8349, - 9467: 0x5395, - 9468: 0x7B56, - 9469: 0x4FA7, - 9470: 0x518C, - 9471: 0x6D4B, - 9472: 0x5C42, - 9473: 0x8E6D, - 9474: 0x63D2, - 9475: 0x53C9, - 9476: 0x832C, - 9477: 0x8336, - 9478: 0x67E5, - 9479: 0x78B4, - 9480: 0x643D, - 9481: 0x5BDF, - 9482: 0x5C94, - 9483: 0x5DEE, - 9484: 0x8BE7, - 9485: 0x62C6, - 9486: 0x67F4, - 9487: 0x8C7A, - 9488: 0x6400, - 9489: 0x63BA, - 9490: 0x8749, - 9491: 0x998B, - 9492: 0x8C17, - 9493: 0x7F20, - 9494: 0x94F2, - 9495: 0x4EA7, - 9496: 0x9610, - 9497: 0x98A4, - 9498: 0x660C, - 9499: 0x7316, - 9500: 0x77E6, - 9501: 0x77E8, - 9502: 0x77EA, - 9503: 0x77EF, - 9504: 0x77F0, - 9505: 0x77F1, - 9506: 0x77F2, - 9507: 0x77F4, - 9508: 0x77F5, - 9509: 0x77F7, - 9510: 0x77F9, - 9511: 0x77FA, - 9512: 0x77FB, - 9513: 0x77FC, - 9514: 0x7803, - 9515: 0x7804, - 9516: 0x7805, - 9517: 0x7806, - 9518: 0x7807, - 9519: 0x7808, - 9520: 0x780A, - 9521: 0x780B, - 9522: 0x780E, - 9523: 0x780F, - 9524: 0x7810, - 9525: 0x7813, - 9526: 0x7815, - 9527: 0x7819, - 9528: 0x781B, - 9529: 0x781E, - 9530: 0x7820, - 9531: 0x7821, - 9532: 0x7822, - 9533: 0x7824, - 9534: 0x7828, - 9535: 0x782A, - 9536: 0x782B, - 9537: 0x782E, - 9538: 0x782F, - 9539: 0x7831, - 9540: 0x7832, - 9541: 0x7833, - 9542: 0x7835, - 9543: 0x7836, - 9544: 0x783D, - 9545: 0x783F, - 9546: 0x7841, - 9547: 0x7842, - 9548: 0x7843, - 9549: 0x7844, - 9550: 0x7846, - 9551: 0x7848, - 9552: 0x7849, - 9553: 0x784A, - 9554: 0x784B, - 9555: 0x784D, - 9556: 0x784F, - 9557: 0x7851, - 9558: 0x7853, - 9559: 0x7854, - 9560: 0x7858, - 9561: 0x7859, - 9562: 0x785A, - 9563: 0x785B, - 9564: 0x785C, - 9565: 0x785E, - 9566: 0x785F, - 9567: 0x7860, - 9568: 0x7861, - 9569: 0x7862, - 9570: 0x7863, - 9571: 0x7864, - 9572: 0x7865, - 9573: 0x7866, - 9574: 0x7867, - 9575: 0x7868, - 9576: 0x7869, - 9577: 0x786F, - 9578: 0x7870, - 9579: 0x7871, - 9580: 0x7872, - 9581: 0x7873, - 9582: 0x7874, - 9583: 0x7875, - 9584: 0x7876, - 9585: 0x7878, - 9586: 0x7879, - 9587: 0x787A, - 9588: 0x787B, - 9589: 0x787D, - 9590: 0x787E, - 9591: 0x787F, - 9592: 0x7880, - 9593: 0x7881, - 9594: 0x7882, - 9595: 0x7883, - 9596: 0x573A, - 9597: 0x5C1D, - 9598: 0x5E38, - 9599: 0x957F, - 9600: 0x507F, - 9601: 0x80A0, - 9602: 0x5382, - 9603: 0x655E, - 9604: 0x7545, - 9605: 0x5531, - 9606: 0x5021, - 9607: 0x8D85, - 9608: 0x6284, - 9609: 0x949E, - 9610: 0x671D, - 9611: 0x5632, - 9612: 0x6F6E, - 9613: 0x5DE2, - 9614: 0x5435, - 9615: 0x7092, - 9616: 0x8F66, - 9617: 0x626F, - 9618: 0x64A4, - 9619: 0x63A3, - 9620: 0x5F7B, - 9621: 0x6F88, - 9622: 0x90F4, - 9623: 0x81E3, - 9624: 0x8FB0, - 9625: 0x5C18, - 9626: 0x6668, - 9627: 0x5FF1, - 9628: 0x6C89, - 9629: 0x9648, - 9630: 0x8D81, - 9631: 0x886C, - 9632: 0x6491, - 9633: 0x79F0, - 9634: 0x57CE, - 9635: 0x6A59, - 9636: 0x6210, - 9637: 0x5448, - 9638: 0x4E58, - 9639: 0x7A0B, - 9640: 0x60E9, - 9641: 0x6F84, - 9642: 0x8BDA, - 9643: 0x627F, - 9644: 0x901E, - 9645: 0x9A8B, - 9646: 0x79E4, - 9647: 0x5403, - 9648: 0x75F4, - 9649: 0x6301, - 9650: 0x5319, - 9651: 0x6C60, - 9652: 0x8FDF, - 9653: 0x5F1B, - 9654: 0x9A70, - 9655: 0x803B, - 9656: 0x9F7F, - 9657: 0x4F88, - 9658: 0x5C3A, - 9659: 0x8D64, - 9660: 0x7FC5, - 9661: 0x65A5, - 9662: 0x70BD, - 9663: 0x5145, - 9664: 0x51B2, - 9665: 0x866B, - 9666: 0x5D07, - 9667: 0x5BA0, - 9668: 0x62BD, - 9669: 0x916C, - 9670: 0x7574, - 9671: 0x8E0C, - 9672: 0x7A20, - 9673: 0x6101, - 9674: 0x7B79, - 9675: 0x4EC7, - 9676: 0x7EF8, - 9677: 0x7785, - 9678: 0x4E11, - 9679: 0x81ED, - 9680: 0x521D, - 9681: 0x51FA, - 9682: 0x6A71, - 9683: 0x53A8, - 9684: 0x8E87, - 9685: 0x9504, - 9686: 0x96CF, - 9687: 0x6EC1, - 9688: 0x9664, - 9689: 0x695A, - 9690: 0x7884, - 9691: 0x7885, - 9692: 0x7886, - 9693: 0x7888, - 9694: 0x788A, - 9695: 0x788B, - 9696: 0x788F, - 9697: 0x7890, - 9698: 0x7892, - 9699: 0x7894, - 9700: 0x7895, - 9701: 0x7896, - 9702: 0x7899, - 9703: 0x789D, - 9704: 0x789E, - 9705: 0x78A0, - 9706: 0x78A2, - 9707: 0x78A4, - 9708: 0x78A6, - 9709: 0x78A8, - 9710: 0x78A9, - 9711: 0x78AA, - 9712: 0x78AB, - 9713: 0x78AC, - 9714: 0x78AD, - 9715: 0x78AE, - 9716: 0x78AF, - 9717: 0x78B5, - 9718: 0x78B6, - 9719: 0x78B7, - 9720: 0x78B8, - 9721: 0x78BA, - 9722: 0x78BB, - 9723: 0x78BC, - 9724: 0x78BD, - 9725: 0x78BF, - 9726: 0x78C0, - 9727: 0x78C2, - 9728: 0x78C3, - 9729: 0x78C4, - 9730: 0x78C6, - 9731: 0x78C7, - 9732: 0x78C8, - 9733: 0x78CC, - 9734: 0x78CD, - 9735: 0x78CE, - 9736: 0x78CF, - 9737: 0x78D1, - 9738: 0x78D2, - 9739: 0x78D3, - 9740: 0x78D6, - 9741: 0x78D7, - 9742: 0x78D8, - 9743: 0x78DA, - 9744: 0x78DB, - 9745: 0x78DC, - 9746: 0x78DD, - 9747: 0x78DE, - 9748: 0x78DF, - 9749: 0x78E0, - 9750: 0x78E1, - 9751: 0x78E2, - 9752: 0x78E3, - 9753: 0x78E4, - 9754: 0x78E5, - 9755: 0x78E6, - 9756: 0x78E7, - 9757: 0x78E9, - 9758: 0x78EA, - 9759: 0x78EB, - 9760: 0x78ED, - 9761: 0x78EE, - 9762: 0x78EF, - 9763: 0x78F0, - 9764: 0x78F1, - 9765: 0x78F3, - 9766: 0x78F5, - 9767: 0x78F6, - 9768: 0x78F8, - 9769: 0x78F9, - 9770: 0x78FB, - 9771: 0x78FC, - 9772: 0x78FD, - 9773: 0x78FE, - 9774: 0x78FF, - 9775: 0x7900, - 9776: 0x7902, - 9777: 0x7903, - 9778: 0x7904, - 9779: 0x7906, - 9780: 0x7907, - 9781: 0x7908, - 9782: 0x7909, - 9783: 0x790A, - 9784: 0x790B, - 9785: 0x790C, - 9786: 0x7840, - 9787: 0x50A8, - 9788: 0x77D7, - 9789: 0x6410, - 9790: 0x89E6, - 9791: 0x5904, - 9792: 0x63E3, - 9793: 0x5DDD, - 9794: 0x7A7F, - 9795: 0x693D, - 9796: 0x4F20, - 9797: 0x8239, - 9798: 0x5598, - 9799: 0x4E32, - 9800: 0x75AE, - 9801: 0x7A97, - 9802: 0x5E62, - 9803: 0x5E8A, - 9804: 0x95EF, - 9805: 0x521B, - 9806: 0x5439, - 9807: 0x708A, - 9808: 0x6376, - 9809: 0x9524, - 9810: 0x5782, - 9811: 0x6625, - 9812: 0x693F, - 9813: 0x9187, - 9814: 0x5507, - 9815: 0x6DF3, - 9816: 0x7EAF, - 9817: 0x8822, - 9818: 0x6233, - 9819: 0x7EF0, - 9820: 0x75B5, - 9821: 0x8328, - 9822: 0x78C1, - 9823: 0x96CC, - 9824: 0x8F9E, - 9825: 0x6148, - 9826: 0x74F7, - 9827: 0x8BCD, - 9828: 0x6B64, - 9829: 0x523A, - 9830: 0x8D50, - 9831: 0x6B21, - 9832: 0x806A, - 9833: 0x8471, - 9834: 0x56F1, - 9835: 0x5306, - 9836: 0x4ECE, - 9837: 0x4E1B, - 9838: 0x51D1, - 9839: 0x7C97, - 9840: 0x918B, - 9841: 0x7C07, - 9842: 0x4FC3, - 9843: 0x8E7F, - 9844: 0x7BE1, - 9845: 0x7A9C, - 9846: 0x6467, - 9847: 0x5D14, - 9848: 0x50AC, - 9849: 0x8106, - 9850: 0x7601, - 9851: 0x7CB9, - 9852: 0x6DEC, - 9853: 0x7FE0, - 9854: 0x6751, - 9855: 0x5B58, - 9856: 0x5BF8, - 9857: 0x78CB, - 9858: 0x64AE, - 9859: 0x6413, - 9860: 0x63AA, - 9861: 0x632B, - 9862: 0x9519, - 9863: 0x642D, - 9864: 0x8FBE, - 9865: 0x7B54, - 9866: 0x7629, - 9867: 0x6253, - 9868: 0x5927, - 9869: 0x5446, - 9870: 0x6B79, - 9871: 0x50A3, - 9872: 0x6234, - 9873: 0x5E26, - 9874: 0x6B86, - 9875: 0x4EE3, - 9876: 0x8D37, - 9877: 0x888B, - 9878: 0x5F85, - 9879: 0x902E, - 9880: 0x790D, - 9881: 0x790E, - 9882: 0x790F, - 9883: 0x7910, - 9884: 0x7911, - 9885: 0x7912, - 9886: 0x7914, - 9887: 0x7915, - 9888: 0x7916, - 9889: 0x7917, - 9890: 0x7918, - 9891: 0x7919, - 9892: 0x791A, - 9893: 0x791B, - 9894: 0x791C, - 9895: 0x791D, - 9896: 0x791F, - 9897: 0x7920, - 9898: 0x7921, - 9899: 0x7922, - 9900: 0x7923, - 9901: 0x7925, - 9902: 0x7926, - 9903: 0x7927, - 9904: 0x7928, - 9905: 0x7929, - 9906: 0x792A, - 9907: 0x792B, - 9908: 0x792C, - 9909: 0x792D, - 9910: 0x792E, - 9911: 0x792F, - 9912: 0x7930, - 9913: 0x7931, - 9914: 0x7932, - 9915: 0x7933, - 9916: 0x7935, - 9917: 0x7936, - 9918: 0x7937, - 9919: 0x7938, - 9920: 0x7939, - 9921: 0x793D, - 9922: 0x793F, - 9923: 0x7942, - 9924: 0x7943, - 9925: 0x7944, - 9926: 0x7945, - 9927: 0x7947, - 9928: 0x794A, - 9929: 0x794B, - 9930: 0x794C, - 9931: 0x794D, - 9932: 0x794E, - 9933: 0x794F, - 9934: 0x7950, - 9935: 0x7951, - 9936: 0x7952, - 9937: 0x7954, - 9938: 0x7955, - 9939: 0x7958, - 9940: 0x7959, - 9941: 0x7961, - 9942: 0x7963, - 9943: 0x7964, - 9944: 0x7966, - 9945: 0x7969, - 9946: 0x796A, - 9947: 0x796B, - 9948: 0x796C, - 9949: 0x796E, - 9950: 0x7970, - 9951: 0x7971, - 9952: 0x7972, - 9953: 0x7973, - 9954: 0x7974, - 9955: 0x7975, - 9956: 0x7976, - 9957: 0x7979, - 9958: 0x797B, - 9959: 0x797C, - 9960: 0x797D, - 9961: 0x797E, - 9962: 0x797F, - 9963: 0x7982, - 9964: 0x7983, - 9965: 0x7986, - 9966: 0x7987, - 9967: 0x7988, - 9968: 0x7989, - 9969: 0x798B, - 9970: 0x798C, - 9971: 0x798D, - 9972: 0x798E, - 9973: 0x7990, - 9974: 0x7991, - 9975: 0x7992, - 9976: 0x6020, - 9977: 0x803D, - 9978: 0x62C5, - 9979: 0x4E39, - 9980: 0x5355, - 9981: 0x90F8, - 9982: 0x63B8, - 9983: 0x80C6, - 9984: 0x65E6, - 9985: 0x6C2E, - 9986: 0x4F46, - 9987: 0x60EE, - 9988: 0x6DE1, - 9989: 0x8BDE, - 9990: 0x5F39, - 9991: 0x86CB, - 9992: 0x5F53, - 9993: 0x6321, - 9994: 0x515A, - 9995: 0x8361, - 9996: 0x6863, - 9997: 0x5200, - 9998: 0x6363, - 9999: 0x8E48, - 10000: 0x5012, - 10001: 0x5C9B, - 10002: 0x7977, - 10003: 0x5BFC, - 10004: 0x5230, - 10005: 0x7A3B, - 10006: 0x60BC, - 10007: 0x9053, - 10008: 0x76D7, - 10009: 0x5FB7, - 10010: 0x5F97, - 10011: 0x7684, - 10012: 0x8E6C, - 10013: 0x706F, - 10014: 0x767B, - 10015: 0x7B49, - 10016: 0x77AA, - 10017: 0x51F3, - 10018: 0x9093, - 10019: 0x5824, - 10020: 0x4F4E, - 10021: 0x6EF4, - 10022: 0x8FEA, - 10023: 0x654C, - 10024: 0x7B1B, - 10025: 0x72C4, - 10026: 0x6DA4, - 10027: 0x7FDF, - 10028: 0x5AE1, - 10029: 0x62B5, - 10030: 0x5E95, - 10031: 0x5730, - 10032: 0x8482, - 10033: 0x7B2C, - 10034: 0x5E1D, - 10035: 0x5F1F, - 10036: 0x9012, - 10037: 0x7F14, - 10038: 0x98A0, - 10039: 0x6382, - 10040: 0x6EC7, - 10041: 0x7898, - 10042: 0x70B9, - 10043: 0x5178, - 10044: 0x975B, - 10045: 0x57AB, - 10046: 0x7535, - 10047: 0x4F43, - 10048: 0x7538, - 10049: 0x5E97, - 10050: 0x60E6, - 10051: 0x5960, - 10052: 0x6DC0, - 10053: 0x6BBF, - 10054: 0x7889, - 10055: 0x53FC, - 10056: 0x96D5, - 10057: 0x51CB, - 10058: 0x5201, - 10059: 0x6389, - 10060: 0x540A, - 10061: 0x9493, - 10062: 0x8C03, - 10063: 0x8DCC, - 10064: 0x7239, - 10065: 0x789F, - 10066: 0x8776, - 10067: 0x8FED, - 10068: 0x8C0D, - 10069: 0x53E0, - 10070: 0x7993, - 10071: 0x7994, - 10072: 0x7995, - 10073: 0x7996, - 10074: 0x7997, - 10075: 0x7998, - 10076: 0x7999, - 10077: 0x799B, - 10078: 0x799C, - 10079: 0x799D, - 10080: 0x799E, - 10081: 0x799F, - 10082: 0x79A0, - 10083: 0x79A1, - 10084: 0x79A2, - 10085: 0x79A3, - 10086: 0x79A4, - 10087: 0x79A5, - 10088: 0x79A6, - 10089: 0x79A8, - 10090: 0x79A9, - 10091: 0x79AA, - 10092: 0x79AB, - 10093: 0x79AC, - 10094: 0x79AD, - 10095: 0x79AE, - 10096: 0x79AF, - 10097: 0x79B0, - 10098: 0x79B1, - 10099: 0x79B2, - 10100: 0x79B4, - 10101: 0x79B5, - 10102: 0x79B6, - 10103: 0x79B7, - 10104: 0x79B8, - 10105: 0x79BC, - 10106: 0x79BF, - 10107: 0x79C2, - 10108: 0x79C4, - 10109: 0x79C5, - 10110: 0x79C7, - 10111: 0x79C8, - 10112: 0x79CA, - 10113: 0x79CC, - 10114: 0x79CE, - 10115: 0x79CF, - 10116: 0x79D0, - 10117: 0x79D3, - 10118: 0x79D4, - 10119: 0x79D6, - 10120: 0x79D7, - 10121: 0x79D9, - 10122: 0x79DA, - 10123: 0x79DB, - 10124: 0x79DC, - 10125: 0x79DD, - 10126: 0x79DE, - 10127: 0x79E0, - 10128: 0x79E1, - 10129: 0x79E2, - 10130: 0x79E5, - 10131: 0x79E8, - 10132: 0x79EA, - 10133: 0x79EC, - 10134: 0x79EE, - 10135: 0x79F1, - 10136: 0x79F2, - 10137: 0x79F3, - 10138: 0x79F4, - 10139: 0x79F5, - 10140: 0x79F6, - 10141: 0x79F7, - 10142: 0x79F9, - 10143: 0x79FA, - 10144: 0x79FC, - 10145: 0x79FE, - 10146: 0x79FF, - 10147: 0x7A01, - 10148: 0x7A04, - 10149: 0x7A05, - 10150: 0x7A07, - 10151: 0x7A08, - 10152: 0x7A09, - 10153: 0x7A0A, - 10154: 0x7A0C, - 10155: 0x7A0F, - 10156: 0x7A10, - 10157: 0x7A11, - 10158: 0x7A12, - 10159: 0x7A13, - 10160: 0x7A15, - 10161: 0x7A16, - 10162: 0x7A18, - 10163: 0x7A19, - 10164: 0x7A1B, - 10165: 0x7A1C, - 10166: 0x4E01, - 10167: 0x76EF, - 10168: 0x53EE, - 10169: 0x9489, - 10170: 0x9876, - 10171: 0x9F0E, - 10172: 0x952D, - 10173: 0x5B9A, - 10174: 0x8BA2, - 10175: 0x4E22, - 10176: 0x4E1C, - 10177: 0x51AC, - 10178: 0x8463, - 10179: 0x61C2, - 10180: 0x52A8, - 10181: 0x680B, - 10182: 0x4F97, - 10183: 0x606B, - 10184: 0x51BB, - 10185: 0x6D1E, - 10186: 0x515C, - 10187: 0x6296, - 10188: 0x6597, - 10189: 0x9661, - 10190: 0x8C46, - 10191: 0x9017, - 10192: 0x75D8, - 10193: 0x90FD, - 10194: 0x7763, - 10195: 0x6BD2, - 10196: 0x728A, - 10197: 0x72EC, - 10198: 0x8BFB, - 10199: 0x5835, - 10200: 0x7779, - 10201: 0x8D4C, - 10202: 0x675C, - 10203: 0x9540, - 10204: 0x809A, - 10205: 0x5EA6, - 10206: 0x6E21, - 10207: 0x5992, - 10208: 0x7AEF, - 10209: 0x77ED, - 10210: 0x953B, - 10211: 0x6BB5, - 10212: 0x65AD, - 10213: 0x7F0E, - 10214: 0x5806, - 10215: 0x5151, - 10216: 0x961F, - 10217: 0x5BF9, - 10218: 0x58A9, - 10219: 0x5428, - 10220: 0x8E72, - 10221: 0x6566, - 10222: 0x987F, - 10223: 0x56E4, - 10224: 0x949D, - 10225: 0x76FE, - 10226: 0x9041, - 10227: 0x6387, - 10228: 0x54C6, - 10229: 0x591A, - 10230: 0x593A, - 10231: 0x579B, - 10232: 0x8EB2, - 10233: 0x6735, - 10234: 0x8DFA, - 10235: 0x8235, - 10236: 0x5241, - 10237: 0x60F0, - 10238: 0x5815, - 10239: 0x86FE, - 10240: 0x5CE8, - 10241: 0x9E45, - 10242: 0x4FC4, - 10243: 0x989D, - 10244: 0x8BB9, - 10245: 0x5A25, - 10246: 0x6076, - 10247: 0x5384, - 10248: 0x627C, - 10249: 0x904F, - 10250: 0x9102, - 10251: 0x997F, - 10252: 0x6069, - 10253: 0x800C, - 10254: 0x513F, - 10255: 0x8033, - 10256: 0x5C14, - 10257: 0x9975, - 10258: 0x6D31, - 10259: 0x4E8C, - 10260: 0x7A1D, - 10261: 0x7A1F, - 10262: 0x7A21, - 10263: 0x7A22, - 10264: 0x7A24, - 10265: 0x7A25, - 10266: 0x7A26, - 10267: 0x7A27, - 10268: 0x7A28, - 10269: 0x7A29, - 10270: 0x7A2A, - 10271: 0x7A2B, - 10272: 0x7A2C, - 10273: 0x7A2D, - 10274: 0x7A2E, - 10275: 0x7A2F, - 10276: 0x7A30, - 10277: 0x7A31, - 10278: 0x7A32, - 10279: 0x7A34, - 10280: 0x7A35, - 10281: 0x7A36, - 10282: 0x7A38, - 10283: 0x7A3A, - 10284: 0x7A3E, - 10285: 0x7A40, - 10286: 0x7A41, - 10287: 0x7A42, - 10288: 0x7A43, - 10289: 0x7A44, - 10290: 0x7A45, - 10291: 0x7A47, - 10292: 0x7A48, - 10293: 0x7A49, - 10294: 0x7A4A, - 10295: 0x7A4B, - 10296: 0x7A4C, - 10297: 0x7A4D, - 10298: 0x7A4E, - 10299: 0x7A4F, - 10300: 0x7A50, - 10301: 0x7A52, - 10302: 0x7A53, - 10303: 0x7A54, - 10304: 0x7A55, - 10305: 0x7A56, - 10306: 0x7A58, - 10307: 0x7A59, - 10308: 0x7A5A, - 10309: 0x7A5B, - 10310: 0x7A5C, - 10311: 0x7A5D, - 10312: 0x7A5E, - 10313: 0x7A5F, - 10314: 0x7A60, - 10315: 0x7A61, - 10316: 0x7A62, - 10317: 0x7A63, - 10318: 0x7A64, - 10319: 0x7A65, - 10320: 0x7A66, - 10321: 0x7A67, - 10322: 0x7A68, - 10323: 0x7A69, - 10324: 0x7A6A, - 10325: 0x7A6B, - 10326: 0x7A6C, - 10327: 0x7A6D, - 10328: 0x7A6E, - 10329: 0x7A6F, - 10330: 0x7A71, - 10331: 0x7A72, - 10332: 0x7A73, - 10333: 0x7A75, - 10334: 0x7A7B, - 10335: 0x7A7C, - 10336: 0x7A7D, - 10337: 0x7A7E, - 10338: 0x7A82, - 10339: 0x7A85, - 10340: 0x7A87, - 10341: 0x7A89, - 10342: 0x7A8A, - 10343: 0x7A8B, - 10344: 0x7A8C, - 10345: 0x7A8E, - 10346: 0x7A8F, - 10347: 0x7A90, - 10348: 0x7A93, - 10349: 0x7A94, - 10350: 0x7A99, - 10351: 0x7A9A, - 10352: 0x7A9B, - 10353: 0x7A9E, - 10354: 0x7AA1, - 10355: 0x7AA2, - 10356: 0x8D30, - 10357: 0x53D1, - 10358: 0x7F5A, - 10359: 0x7B4F, - 10360: 0x4F10, - 10361: 0x4E4F, - 10362: 0x9600, - 10363: 0x6CD5, - 10364: 0x73D0, - 10365: 0x85E9, - 10366: 0x5E06, - 10367: 0x756A, - 10368: 0x7FFB, - 10369: 0x6A0A, - 10370: 0x77FE, - 10371: 0x9492, - 10372: 0x7E41, - 10373: 0x51E1, - 10374: 0x70E6, - 10375: 0x53CD, - 10376: 0x8FD4, - 10377: 0x8303, - 10378: 0x8D29, - 10379: 0x72AF, - 10380: 0x996D, - 10381: 0x6CDB, - 10382: 0x574A, - 10383: 0x82B3, - 10384: 0x65B9, - 10385: 0x80AA, - 10386: 0x623F, - 10387: 0x9632, - 10388: 0x59A8, - 10389: 0x4EFF, - 10390: 0x8BBF, - 10391: 0x7EBA, - 10392: 0x653E, - 10393: 0x83F2, - 10394: 0x975E, - 10395: 0x5561, - 10396: 0x98DE, - 10397: 0x80A5, - 10398: 0x532A, - 10399: 0x8BFD, - 10400: 0x5420, - 10401: 0x80BA, - 10402: 0x5E9F, - 10403: 0x6CB8, - 10404: 0x8D39, - 10405: 0x82AC, - 10406: 0x915A, - 10407: 0x5429, - 10408: 0x6C1B, - 10409: 0x5206, - 10410: 0x7EB7, - 10411: 0x575F, - 10412: 0x711A, - 10413: 0x6C7E, - 10414: 0x7C89, - 10415: 0x594B, - 10416: 0x4EFD, - 10417: 0x5FFF, - 10418: 0x6124, - 10419: 0x7CAA, - 10420: 0x4E30, - 10421: 0x5C01, - 10422: 0x67AB, - 10423: 0x8702, - 10424: 0x5CF0, - 10425: 0x950B, - 10426: 0x98CE, - 10427: 0x75AF, - 10428: 0x70FD, - 10429: 0x9022, - 10430: 0x51AF, - 10431: 0x7F1D, - 10432: 0x8BBD, - 10433: 0x5949, - 10434: 0x51E4, - 10435: 0x4F5B, - 10436: 0x5426, - 10437: 0x592B, - 10438: 0x6577, - 10439: 0x80A4, - 10440: 0x5B75, - 10441: 0x6276, - 10442: 0x62C2, - 10443: 0x8F90, - 10444: 0x5E45, - 10445: 0x6C1F, - 10446: 0x7B26, - 10447: 0x4F0F, - 10448: 0x4FD8, - 10449: 0x670D, - 10450: 0x7AA3, - 10451: 0x7AA4, - 10452: 0x7AA7, - 10453: 0x7AA9, - 10454: 0x7AAA, - 10455: 0x7AAB, - 10456: 0x7AAE, - 10457: 0x7AAF, - 10458: 0x7AB0, - 10459: 0x7AB1, - 10460: 0x7AB2, - 10461: 0x7AB4, - 10462: 0x7AB5, - 10463: 0x7AB6, - 10464: 0x7AB7, - 10465: 0x7AB8, - 10466: 0x7AB9, - 10467: 0x7ABA, - 10468: 0x7ABB, - 10469: 0x7ABC, - 10470: 0x7ABD, - 10471: 0x7ABE, - 10472: 0x7AC0, - 10473: 0x7AC1, - 10474: 0x7AC2, - 10475: 0x7AC3, - 10476: 0x7AC4, - 10477: 0x7AC5, - 10478: 0x7AC6, - 10479: 0x7AC7, - 10480: 0x7AC8, - 10481: 0x7AC9, - 10482: 0x7ACA, - 10483: 0x7ACC, - 10484: 0x7ACD, - 10485: 0x7ACE, - 10486: 0x7ACF, - 10487: 0x7AD0, - 10488: 0x7AD1, - 10489: 0x7AD2, - 10490: 0x7AD3, - 10491: 0x7AD4, - 10492: 0x7AD5, - 10493: 0x7AD7, - 10494: 0x7AD8, - 10495: 0x7ADA, - 10496: 0x7ADB, - 10497: 0x7ADC, - 10498: 0x7ADD, - 10499: 0x7AE1, - 10500: 0x7AE2, - 10501: 0x7AE4, - 10502: 0x7AE7, - 10503: 0x7AE8, - 10504: 0x7AE9, - 10505: 0x7AEA, - 10506: 0x7AEB, - 10507: 0x7AEC, - 10508: 0x7AEE, - 10509: 0x7AF0, - 10510: 0x7AF1, - 10511: 0x7AF2, - 10512: 0x7AF3, - 10513: 0x7AF4, - 10514: 0x7AF5, - 10515: 0x7AF6, - 10516: 0x7AF7, - 10517: 0x7AF8, - 10518: 0x7AFB, - 10519: 0x7AFC, - 10520: 0x7AFE, - 10521: 0x7B00, - 10522: 0x7B01, - 10523: 0x7B02, - 10524: 0x7B05, - 10525: 0x7B07, - 10526: 0x7B09, - 10527: 0x7B0C, - 10528: 0x7B0D, - 10529: 0x7B0E, - 10530: 0x7B10, - 10531: 0x7B12, - 10532: 0x7B13, - 10533: 0x7B16, - 10534: 0x7B17, - 10535: 0x7B18, - 10536: 0x7B1A, - 10537: 0x7B1C, - 10538: 0x7B1D, - 10539: 0x7B1F, - 10540: 0x7B21, - 10541: 0x7B22, - 10542: 0x7B23, - 10543: 0x7B27, - 10544: 0x7B29, - 10545: 0x7B2D, - 10546: 0x6D6E, - 10547: 0x6DAA, - 10548: 0x798F, - 10549: 0x88B1, - 10550: 0x5F17, - 10551: 0x752B, - 10552: 0x629A, - 10553: 0x8F85, - 10554: 0x4FEF, - 10555: 0x91DC, - 10556: 0x65A7, - 10557: 0x812F, - 10558: 0x8151, - 10559: 0x5E9C, - 10560: 0x8150, - 10561: 0x8D74, - 10562: 0x526F, - 10563: 0x8986, - 10564: 0x8D4B, - 10565: 0x590D, - 10566: 0x5085, - 10567: 0x4ED8, - 10568: 0x961C, - 10569: 0x7236, - 10570: 0x8179, - 10571: 0x8D1F, - 10572: 0x5BCC, - 10573: 0x8BA3, - 10574: 0x9644, - 10575: 0x5987, - 10576: 0x7F1A, - 10577: 0x5490, - 10578: 0x5676, - 10579: 0x560E, - 10580: 0x8BE5, - 10581: 0x6539, - 10582: 0x6982, - 10583: 0x9499, - 10584: 0x76D6, - 10585: 0x6E89, - 10586: 0x5E72, - 10587: 0x7518, - 10588: 0x6746, - 10589: 0x67D1, - 10590: 0x7AFF, - 10591: 0x809D, - 10592: 0x8D76, - 10593: 0x611F, - 10594: 0x79C6, - 10595: 0x6562, - 10596: 0x8D63, - 10597: 0x5188, - 10598: 0x521A, - 10599: 0x94A2, - 10600: 0x7F38, - 10601: 0x809B, - 10602: 0x7EB2, - 10603: 0x5C97, - 10604: 0x6E2F, - 10605: 0x6760, - 10606: 0x7BD9, - 10607: 0x768B, - 10608: 0x9AD8, - 10609: 0x818F, - 10610: 0x7F94, - 10611: 0x7CD5, - 10612: 0x641E, - 10613: 0x9550, - 10614: 0x7A3F, - 10615: 0x544A, - 10616: 0x54E5, - 10617: 0x6B4C, - 10618: 0x6401, - 10619: 0x6208, - 10620: 0x9E3D, - 10621: 0x80F3, - 10622: 0x7599, - 10623: 0x5272, - 10624: 0x9769, - 10625: 0x845B, - 10626: 0x683C, - 10627: 0x86E4, - 10628: 0x9601, - 10629: 0x9694, - 10630: 0x94EC, - 10631: 0x4E2A, - 10632: 0x5404, - 10633: 0x7ED9, - 10634: 0x6839, - 10635: 0x8DDF, - 10636: 0x8015, - 10637: 0x66F4, - 10638: 0x5E9A, - 10639: 0x7FB9, - 10640: 0x7B2F, - 10641: 0x7B30, - 10642: 0x7B32, - 10643: 0x7B34, - 10644: 0x7B35, - 10645: 0x7B36, - 10646: 0x7B37, - 10647: 0x7B39, - 10648: 0x7B3B, - 10649: 0x7B3D, - 10650: 0x7B3F, - 10651: 0x7B40, - 10652: 0x7B41, - 10653: 0x7B42, - 10654: 0x7B43, - 10655: 0x7B44, - 10656: 0x7B46, - 10657: 0x7B48, - 10658: 0x7B4A, - 10659: 0x7B4D, - 10660: 0x7B4E, - 10661: 0x7B53, - 10662: 0x7B55, - 10663: 0x7B57, - 10664: 0x7B59, - 10665: 0x7B5C, - 10666: 0x7B5E, - 10667: 0x7B5F, - 10668: 0x7B61, - 10669: 0x7B63, - 10670: 0x7B64, - 10671: 0x7B65, - 10672: 0x7B66, - 10673: 0x7B67, - 10674: 0x7B68, - 10675: 0x7B69, - 10676: 0x7B6A, - 10677: 0x7B6B, - 10678: 0x7B6C, - 10679: 0x7B6D, - 10680: 0x7B6F, - 10681: 0x7B70, - 10682: 0x7B73, - 10683: 0x7B74, - 10684: 0x7B76, - 10685: 0x7B78, - 10686: 0x7B7A, - 10687: 0x7B7C, - 10688: 0x7B7D, - 10689: 0x7B7F, - 10690: 0x7B81, - 10691: 0x7B82, - 10692: 0x7B83, - 10693: 0x7B84, - 10694: 0x7B86, - 10695: 0x7B87, - 10696: 0x7B88, - 10697: 0x7B89, - 10698: 0x7B8A, - 10699: 0x7B8B, - 10700: 0x7B8C, - 10701: 0x7B8E, - 10702: 0x7B8F, - 10703: 0x7B91, - 10704: 0x7B92, - 10705: 0x7B93, - 10706: 0x7B96, - 10707: 0x7B98, - 10708: 0x7B99, - 10709: 0x7B9A, - 10710: 0x7B9B, - 10711: 0x7B9E, - 10712: 0x7B9F, - 10713: 0x7BA0, - 10714: 0x7BA3, - 10715: 0x7BA4, - 10716: 0x7BA5, - 10717: 0x7BAE, - 10718: 0x7BAF, - 10719: 0x7BB0, - 10720: 0x7BB2, - 10721: 0x7BB3, - 10722: 0x7BB5, - 10723: 0x7BB6, - 10724: 0x7BB7, - 10725: 0x7BB9, - 10726: 0x7BBA, - 10727: 0x7BBB, - 10728: 0x7BBC, - 10729: 0x7BBD, - 10730: 0x7BBE, - 10731: 0x7BBF, - 10732: 0x7BC0, - 10733: 0x7BC2, - 10734: 0x7BC3, - 10735: 0x7BC4, - 10736: 0x57C2, - 10737: 0x803F, - 10738: 0x6897, - 10739: 0x5DE5, - 10740: 0x653B, - 10741: 0x529F, - 10742: 0x606D, - 10743: 0x9F9A, - 10744: 0x4F9B, - 10745: 0x8EAC, - 10746: 0x516C, - 10747: 0x5BAB, - 10748: 0x5F13, - 10749: 0x5DE9, - 10750: 0x6C5E, - 10751: 0x62F1, - 10752: 0x8D21, - 10753: 0x5171, - 10754: 0x94A9, - 10755: 0x52FE, - 10756: 0x6C9F, - 10757: 0x82DF, - 10758: 0x72D7, - 10759: 0x57A2, - 10760: 0x6784, - 10761: 0x8D2D, - 10762: 0x591F, - 10763: 0x8F9C, - 10764: 0x83C7, - 10765: 0x5495, - 10766: 0x7B8D, - 10767: 0x4F30, - 10768: 0x6CBD, - 10769: 0x5B64, - 10770: 0x59D1, - 10771: 0x9F13, - 10772: 0x53E4, - 10773: 0x86CA, - 10774: 0x9AA8, - 10775: 0x8C37, - 10776: 0x80A1, - 10777: 0x6545, - 10778: 0x987E, - 10779: 0x56FA, - 10780: 0x96C7, - 10781: 0x522E, - 10782: 0x74DC, - 10783: 0x5250, - 10784: 0x5BE1, - 10785: 0x6302, - 10786: 0x8902, - 10787: 0x4E56, - 10788: 0x62D0, - 10789: 0x602A, - 10790: 0x68FA, - 10791: 0x5173, - 10792: 0x5B98, - 10793: 0x51A0, - 10794: 0x89C2, - 10795: 0x7BA1, - 10796: 0x9986, - 10797: 0x7F50, - 10798: 0x60EF, - 10799: 0x704C, - 10800: 0x8D2F, - 10801: 0x5149, - 10802: 0x5E7F, - 10803: 0x901B, - 10804: 0x7470, - 10805: 0x89C4, - 10806: 0x572D, - 10807: 0x7845, - 10808: 0x5F52, - 10809: 0x9F9F, - 10810: 0x95FA, - 10811: 0x8F68, - 10812: 0x9B3C, - 10813: 0x8BE1, - 10814: 0x7678, - 10815: 0x6842, - 10816: 0x67DC, - 10817: 0x8DEA, - 10818: 0x8D35, - 10819: 0x523D, - 10820: 0x8F8A, - 10821: 0x6EDA, - 10822: 0x68CD, - 10823: 0x9505, - 10824: 0x90ED, - 10825: 0x56FD, - 10826: 0x679C, - 10827: 0x88F9, - 10828: 0x8FC7, - 10829: 0x54C8, - 10830: 0x7BC5, - 10831: 0x7BC8, - 10832: 0x7BC9, - 10833: 0x7BCA, - 10834: 0x7BCB, - 10835: 0x7BCD, - 10836: 0x7BCE, - 10837: 0x7BCF, - 10838: 0x7BD0, - 10839: 0x7BD2, - 10840: 0x7BD4, - 10841: 0x7BD5, - 10842: 0x7BD6, - 10843: 0x7BD7, - 10844: 0x7BD8, - 10845: 0x7BDB, - 10846: 0x7BDC, - 10847: 0x7BDE, - 10848: 0x7BDF, - 10849: 0x7BE0, - 10850: 0x7BE2, - 10851: 0x7BE3, - 10852: 0x7BE4, - 10853: 0x7BE7, - 10854: 0x7BE8, - 10855: 0x7BE9, - 10856: 0x7BEB, - 10857: 0x7BEC, - 10858: 0x7BED, - 10859: 0x7BEF, - 10860: 0x7BF0, - 10861: 0x7BF2, - 10862: 0x7BF3, - 10863: 0x7BF4, - 10864: 0x7BF5, - 10865: 0x7BF6, - 10866: 0x7BF8, - 10867: 0x7BF9, - 10868: 0x7BFA, - 10869: 0x7BFB, - 10870: 0x7BFD, - 10871: 0x7BFF, - 10872: 0x7C00, - 10873: 0x7C01, - 10874: 0x7C02, - 10875: 0x7C03, - 10876: 0x7C04, - 10877: 0x7C05, - 10878: 0x7C06, - 10879: 0x7C08, - 10880: 0x7C09, - 10881: 0x7C0A, - 10882: 0x7C0D, - 10883: 0x7C0E, - 10884: 0x7C10, - 10885: 0x7C11, - 10886: 0x7C12, - 10887: 0x7C13, - 10888: 0x7C14, - 10889: 0x7C15, - 10890: 0x7C17, - 10891: 0x7C18, - 10892: 0x7C19, - 10893: 0x7C1A, - 10894: 0x7C1B, - 10895: 0x7C1C, - 10896: 0x7C1D, - 10897: 0x7C1E, - 10898: 0x7C20, - 10899: 0x7C21, - 10900: 0x7C22, - 10901: 0x7C23, - 10902: 0x7C24, - 10903: 0x7C25, - 10904: 0x7C28, - 10905: 0x7C29, - 10906: 0x7C2B, - 10907: 0x7C2C, - 10908: 0x7C2D, - 10909: 0x7C2E, - 10910: 0x7C2F, - 10911: 0x7C30, - 10912: 0x7C31, - 10913: 0x7C32, - 10914: 0x7C33, - 10915: 0x7C34, - 10916: 0x7C35, - 10917: 0x7C36, - 10918: 0x7C37, - 10919: 0x7C39, - 10920: 0x7C3A, - 10921: 0x7C3B, - 10922: 0x7C3C, - 10923: 0x7C3D, - 10924: 0x7C3E, - 10925: 0x7C42, - 10926: 0x9AB8, - 10927: 0x5B69, - 10928: 0x6D77, - 10929: 0x6C26, - 10930: 0x4EA5, - 10931: 0x5BB3, - 10932: 0x9A87, - 10933: 0x9163, - 10934: 0x61A8, - 10935: 0x90AF, - 10936: 0x97E9, - 10937: 0x542B, - 10938: 0x6DB5, - 10939: 0x5BD2, - 10940: 0x51FD, - 10941: 0x558A, - 10942: 0x7F55, - 10943: 0x7FF0, - 10944: 0x64BC, - 10945: 0x634D, - 10946: 0x65F1, - 10947: 0x61BE, - 10948: 0x608D, - 10949: 0x710A, - 10950: 0x6C57, - 10951: 0x6C49, - 10952: 0x592F, - 10953: 0x676D, - 10954: 0x822A, - 10955: 0x58D5, - 10956: 0x568E, - 10957: 0x8C6A, - 10958: 0x6BEB, - 10959: 0x90DD, - 10960: 0x597D, - 10961: 0x8017, - 10962: 0x53F7, - 10963: 0x6D69, - 10964: 0x5475, - 10965: 0x559D, - 10966: 0x8377, - 10967: 0x83CF, - 10968: 0x6838, - 10969: 0x79BE, - 10970: 0x548C, - 10971: 0x4F55, - 10972: 0x5408, - 10973: 0x76D2, - 10974: 0x8C89, - 10975: 0x9602, - 10976: 0x6CB3, - 10977: 0x6DB8, - 10978: 0x8D6B, - 10979: 0x8910, - 10980: 0x9E64, - 10981: 0x8D3A, - 10982: 0x563F, - 10983: 0x9ED1, - 10984: 0x75D5, - 10985: 0x5F88, - 10986: 0x72E0, - 10987: 0x6068, - 10988: 0x54FC, - 10989: 0x4EA8, - 10990: 0x6A2A, - 10991: 0x8861, - 10992: 0x6052, - 10993: 0x8F70, - 10994: 0x54C4, - 10995: 0x70D8, - 10996: 0x8679, - 10997: 0x9E3F, - 10998: 0x6D2A, - 10999: 0x5B8F, - 11000: 0x5F18, - 11001: 0x7EA2, - 11002: 0x5589, - 11003: 0x4FAF, - 11004: 0x7334, - 11005: 0x543C, - 11006: 0x539A, - 11007: 0x5019, - 11008: 0x540E, - 11009: 0x547C, - 11010: 0x4E4E, - 11011: 0x5FFD, - 11012: 0x745A, - 11013: 0x58F6, - 11014: 0x846B, - 11015: 0x80E1, - 11016: 0x8774, - 11017: 0x72D0, - 11018: 0x7CCA, - 11019: 0x6E56, - 11020: 0x7C43, - 11021: 0x7C44, - 11022: 0x7C45, - 11023: 0x7C46, - 11024: 0x7C47, - 11025: 0x7C48, - 11026: 0x7C49, - 11027: 0x7C4A, - 11028: 0x7C4B, - 11029: 0x7C4C, - 11030: 0x7C4E, - 11031: 0x7C4F, - 11032: 0x7C50, - 11033: 0x7C51, - 11034: 0x7C52, - 11035: 0x7C53, - 11036: 0x7C54, - 11037: 0x7C55, - 11038: 0x7C56, - 11039: 0x7C57, - 11040: 0x7C58, - 11041: 0x7C59, - 11042: 0x7C5A, - 11043: 0x7C5B, - 11044: 0x7C5C, - 11045: 0x7C5D, - 11046: 0x7C5E, - 11047: 0x7C5F, - 11048: 0x7C60, - 11049: 0x7C61, - 11050: 0x7C62, - 11051: 0x7C63, - 11052: 0x7C64, - 11053: 0x7C65, - 11054: 0x7C66, - 11055: 0x7C67, - 11056: 0x7C68, - 11057: 0x7C69, - 11058: 0x7C6A, - 11059: 0x7C6B, - 11060: 0x7C6C, - 11061: 0x7C6D, - 11062: 0x7C6E, - 11063: 0x7C6F, - 11064: 0x7C70, - 11065: 0x7C71, - 11066: 0x7C72, - 11067: 0x7C75, - 11068: 0x7C76, - 11069: 0x7C77, - 11070: 0x7C78, - 11071: 0x7C79, - 11072: 0x7C7A, - 11073: 0x7C7E, - 11074: 0x7C7F, - 11075: 0x7C80, - 11076: 0x7C81, - 11077: 0x7C82, - 11078: 0x7C83, - 11079: 0x7C84, - 11080: 0x7C85, - 11081: 0x7C86, - 11082: 0x7C87, - 11083: 0x7C88, - 11084: 0x7C8A, - 11085: 0x7C8B, - 11086: 0x7C8C, - 11087: 0x7C8D, - 11088: 0x7C8E, - 11089: 0x7C8F, - 11090: 0x7C90, - 11091: 0x7C93, - 11092: 0x7C94, - 11093: 0x7C96, - 11094: 0x7C99, - 11095: 0x7C9A, - 11096: 0x7C9B, - 11097: 0x7CA0, - 11098: 0x7CA1, - 11099: 0x7CA3, - 11100: 0x7CA6, - 11101: 0x7CA7, - 11102: 0x7CA8, - 11103: 0x7CA9, - 11104: 0x7CAB, - 11105: 0x7CAC, - 11106: 0x7CAD, - 11107: 0x7CAF, - 11108: 0x7CB0, - 11109: 0x7CB4, - 11110: 0x7CB5, - 11111: 0x7CB6, - 11112: 0x7CB7, - 11113: 0x7CB8, - 11114: 0x7CBA, - 11115: 0x7CBB, - 11116: 0x5F27, - 11117: 0x864E, - 11118: 0x552C, - 11119: 0x62A4, - 11120: 0x4E92, - 11121: 0x6CAA, - 11122: 0x6237, - 11123: 0x82B1, - 11124: 0x54D7, - 11125: 0x534E, - 11126: 0x733E, - 11127: 0x6ED1, - 11128: 0x753B, - 11129: 0x5212, - 11130: 0x5316, - 11131: 0x8BDD, - 11132: 0x69D0, - 11133: 0x5F8A, - 11134: 0x6000, - 11135: 0x6DEE, - 11136: 0x574F, - 11137: 0x6B22, - 11138: 0x73AF, - 11139: 0x6853, - 11140: 0x8FD8, - 11141: 0x7F13, - 11142: 0x6362, - 11143: 0x60A3, - 11144: 0x5524, - 11145: 0x75EA, - 11146: 0x8C62, - 11147: 0x7115, - 11148: 0x6DA3, - 11149: 0x5BA6, - 11150: 0x5E7B, - 11151: 0x8352, - 11152: 0x614C, - 11153: 0x9EC4, - 11154: 0x78FA, - 11155: 0x8757, - 11156: 0x7C27, - 11157: 0x7687, - 11158: 0x51F0, - 11159: 0x60F6, - 11160: 0x714C, - 11161: 0x6643, - 11162: 0x5E4C, - 11163: 0x604D, - 11164: 0x8C0E, - 11165: 0x7070, - 11166: 0x6325, - 11167: 0x8F89, - 11168: 0x5FBD, - 11169: 0x6062, - 11170: 0x86D4, - 11171: 0x56DE, - 11172: 0x6BC1, - 11173: 0x6094, - 11174: 0x6167, - 11175: 0x5349, - 11176: 0x60E0, - 11177: 0x6666, - 11178: 0x8D3F, - 11179: 0x79FD, - 11180: 0x4F1A, - 11181: 0x70E9, - 11182: 0x6C47, - 11183: 0x8BB3, - 11184: 0x8BF2, - 11185: 0x7ED8, - 11186: 0x8364, - 11187: 0x660F, - 11188: 0x5A5A, - 11189: 0x9B42, - 11190: 0x6D51, - 11191: 0x6DF7, - 11192: 0x8C41, - 11193: 0x6D3B, - 11194: 0x4F19, - 11195: 0x706B, - 11196: 0x83B7, - 11197: 0x6216, - 11198: 0x60D1, - 11199: 0x970D, - 11200: 0x8D27, - 11201: 0x7978, - 11202: 0x51FB, - 11203: 0x573E, - 11204: 0x57FA, - 11205: 0x673A, - 11206: 0x7578, - 11207: 0x7A3D, - 11208: 0x79EF, - 11209: 0x7B95, - 11210: 0x7CBF, - 11211: 0x7CC0, - 11212: 0x7CC2, - 11213: 0x7CC3, - 11214: 0x7CC4, - 11215: 0x7CC6, - 11216: 0x7CC9, - 11217: 0x7CCB, - 11218: 0x7CCE, - 11219: 0x7CCF, - 11220: 0x7CD0, - 11221: 0x7CD1, - 11222: 0x7CD2, - 11223: 0x7CD3, - 11224: 0x7CD4, - 11225: 0x7CD8, - 11226: 0x7CDA, - 11227: 0x7CDB, - 11228: 0x7CDD, - 11229: 0x7CDE, - 11230: 0x7CE1, - 11231: 0x7CE2, - 11232: 0x7CE3, - 11233: 0x7CE4, - 11234: 0x7CE5, - 11235: 0x7CE6, - 11236: 0x7CE7, - 11237: 0x7CE9, - 11238: 0x7CEA, - 11239: 0x7CEB, - 11240: 0x7CEC, - 11241: 0x7CED, - 11242: 0x7CEE, - 11243: 0x7CF0, - 11244: 0x7CF1, - 11245: 0x7CF2, - 11246: 0x7CF3, - 11247: 0x7CF4, - 11248: 0x7CF5, - 11249: 0x7CF6, - 11250: 0x7CF7, - 11251: 0x7CF9, - 11252: 0x7CFA, - 11253: 0x7CFC, - 11254: 0x7CFD, - 11255: 0x7CFE, - 11256: 0x7CFF, - 11257: 0x7D00, - 11258: 0x7D01, - 11259: 0x7D02, - 11260: 0x7D03, - 11261: 0x7D04, - 11262: 0x7D05, - 11263: 0x7D06, - 11264: 0x7D07, - 11265: 0x7D08, - 11266: 0x7D09, - 11267: 0x7D0B, - 11268: 0x7D0C, - 11269: 0x7D0D, - 11270: 0x7D0E, - 11271: 0x7D0F, - 11272: 0x7D10, - 11273: 0x7D11, - 11274: 0x7D12, - 11275: 0x7D13, - 11276: 0x7D14, - 11277: 0x7D15, - 11278: 0x7D16, - 11279: 0x7D17, - 11280: 0x7D18, - 11281: 0x7D19, - 11282: 0x7D1A, - 11283: 0x7D1B, - 11284: 0x7D1C, - 11285: 0x7D1D, - 11286: 0x7D1E, - 11287: 0x7D1F, - 11288: 0x7D21, - 11289: 0x7D23, - 11290: 0x7D24, - 11291: 0x7D25, - 11292: 0x7D26, - 11293: 0x7D28, - 11294: 0x7D29, - 11295: 0x7D2A, - 11296: 0x7D2C, - 11297: 0x7D2D, - 11298: 0x7D2E, - 11299: 0x7D30, - 11300: 0x7D31, - 11301: 0x7D32, - 11302: 0x7D33, - 11303: 0x7D34, - 11304: 0x7D35, - 11305: 0x7D36, - 11306: 0x808C, - 11307: 0x9965, - 11308: 0x8FF9, - 11309: 0x6FC0, - 11310: 0x8BA5, - 11311: 0x9E21, - 11312: 0x59EC, - 11313: 0x7EE9, - 11314: 0x7F09, - 11315: 0x5409, - 11316: 0x6781, - 11317: 0x68D8, - 11318: 0x8F91, - 11319: 0x7C4D, - 11320: 0x96C6, - 11321: 0x53CA, - 11322: 0x6025, - 11323: 0x75BE, - 11324: 0x6C72, - 11325: 0x5373, - 11326: 0x5AC9, - 11327: 0x7EA7, - 11328: 0x6324, - 11329: 0x51E0, - 11330: 0x810A, - 11331: 0x5DF1, - 11332: 0x84DF, - 11333: 0x6280, - 11334: 0x5180, - 11335: 0x5B63, - 11336: 0x4F0E, - 11337: 0x796D, - 11338: 0x5242, - 11339: 0x60B8, - 11340: 0x6D4E, - 11341: 0x5BC4, - 11342: 0x5BC2, - 11343: 0x8BA1, - 11344: 0x8BB0, - 11345: 0x65E2, - 11346: 0x5FCC, - 11347: 0x9645, - 11348: 0x5993, - 11349: 0x7EE7, - 11350: 0x7EAA, - 11351: 0x5609, - 11352: 0x67B7, - 11353: 0x5939, - 11354: 0x4F73, - 11355: 0x5BB6, - 11356: 0x52A0, - 11357: 0x835A, - 11358: 0x988A, - 11359: 0x8D3E, - 11360: 0x7532, - 11361: 0x94BE, - 11362: 0x5047, - 11363: 0x7A3C, - 11364: 0x4EF7, - 11365: 0x67B6, - 11366: 0x9A7E, - 11367: 0x5AC1, - 11368: 0x6B7C, - 11369: 0x76D1, - 11370: 0x575A, - 11371: 0x5C16, - 11372: 0x7B3A, - 11373: 0x95F4, - 11374: 0x714E, - 11375: 0x517C, - 11376: 0x80A9, - 11377: 0x8270, - 11378: 0x5978, - 11379: 0x7F04, - 11380: 0x8327, - 11381: 0x68C0, - 11382: 0x67EC, - 11383: 0x78B1, - 11384: 0x7877, - 11385: 0x62E3, - 11386: 0x6361, - 11387: 0x7B80, - 11388: 0x4FED, - 11389: 0x526A, - 11390: 0x51CF, - 11391: 0x8350, - 11392: 0x69DB, - 11393: 0x9274, - 11394: 0x8DF5, - 11395: 0x8D31, - 11396: 0x89C1, - 11397: 0x952E, - 11398: 0x7BAD, - 11399: 0x4EF6, - 11400: 0x7D37, - 11401: 0x7D38, - 11402: 0x7D39, - 11403: 0x7D3A, - 11404: 0x7D3B, - 11405: 0x7D3C, - 11406: 0x7D3D, - 11407: 0x7D3E, - 11408: 0x7D3F, - 11409: 0x7D40, - 11410: 0x7D41, - 11411: 0x7D42, - 11412: 0x7D43, - 11413: 0x7D44, - 11414: 0x7D45, - 11415: 0x7D46, - 11416: 0x7D47, - 11417: 0x7D48, - 11418: 0x7D49, - 11419: 0x7D4A, - 11420: 0x7D4B, - 11421: 0x7D4C, - 11422: 0x7D4D, - 11423: 0x7D4E, - 11424: 0x7D4F, - 11425: 0x7D50, - 11426: 0x7D51, - 11427: 0x7D52, - 11428: 0x7D53, - 11429: 0x7D54, - 11430: 0x7D55, - 11431: 0x7D56, - 11432: 0x7D57, - 11433: 0x7D58, - 11434: 0x7D59, - 11435: 0x7D5A, - 11436: 0x7D5B, - 11437: 0x7D5C, - 11438: 0x7D5D, - 11439: 0x7D5E, - 11440: 0x7D5F, - 11441: 0x7D60, - 11442: 0x7D61, - 11443: 0x7D62, - 11444: 0x7D63, - 11445: 0x7D64, - 11446: 0x7D65, - 11447: 0x7D66, - 11448: 0x7D67, - 11449: 0x7D68, - 11450: 0x7D69, - 11451: 0x7D6A, - 11452: 0x7D6B, - 11453: 0x7D6C, - 11454: 0x7D6D, - 11455: 0x7D6F, - 11456: 0x7D70, - 11457: 0x7D71, - 11458: 0x7D72, - 11459: 0x7D73, - 11460: 0x7D74, - 11461: 0x7D75, - 11462: 0x7D76, - 11463: 0x7D78, - 11464: 0x7D79, - 11465: 0x7D7A, - 11466: 0x7D7B, - 11467: 0x7D7C, - 11468: 0x7D7D, - 11469: 0x7D7E, - 11470: 0x7D7F, - 11471: 0x7D80, - 11472: 0x7D81, - 11473: 0x7D82, - 11474: 0x7D83, - 11475: 0x7D84, - 11476: 0x7D85, - 11477: 0x7D86, - 11478: 0x7D87, - 11479: 0x7D88, - 11480: 0x7D89, - 11481: 0x7D8A, - 11482: 0x7D8B, - 11483: 0x7D8C, - 11484: 0x7D8D, - 11485: 0x7D8E, - 11486: 0x7D8F, - 11487: 0x7D90, - 11488: 0x7D91, - 11489: 0x7D92, - 11490: 0x7D93, - 11491: 0x7D94, - 11492: 0x7D95, - 11493: 0x7D96, - 11494: 0x7D97, - 11495: 0x7D98, - 11496: 0x5065, - 11497: 0x8230, - 11498: 0x5251, - 11499: 0x996F, - 11500: 0x6E10, - 11501: 0x6E85, - 11502: 0x6DA7, - 11503: 0x5EFA, - 11504: 0x50F5, - 11505: 0x59DC, - 11506: 0x5C06, - 11507: 0x6D46, - 11508: 0x6C5F, - 11509: 0x7586, - 11510: 0x848B, - 11511: 0x6868, - 11512: 0x5956, - 11513: 0x8BB2, - 11514: 0x5320, - 11515: 0x9171, - 11516: 0x964D, - 11517: 0x8549, - 11518: 0x6912, - 11519: 0x7901, - 11520: 0x7126, - 11521: 0x80F6, - 11522: 0x4EA4, - 11523: 0x90CA, - 11524: 0x6D47, - 11525: 0x9A84, - 11526: 0x5A07, - 11527: 0x56BC, - 11528: 0x6405, - 11529: 0x94F0, - 11530: 0x77EB, - 11531: 0x4FA5, - 11532: 0x811A, - 11533: 0x72E1, - 11534: 0x89D2, - 11535: 0x997A, - 11536: 0x7F34, - 11537: 0x7EDE, - 11538: 0x527F, - 11539: 0x6559, - 11540: 0x9175, - 11541: 0x8F7F, - 11542: 0x8F83, - 11543: 0x53EB, - 11544: 0x7A96, - 11545: 0x63ED, - 11546: 0x63A5, - 11547: 0x7686, - 11548: 0x79F8, - 11549: 0x8857, - 11550: 0x9636, - 11551: 0x622A, - 11552: 0x52AB, - 11553: 0x8282, - 11554: 0x6854, - 11555: 0x6770, - 11556: 0x6377, - 11557: 0x776B, - 11558: 0x7AED, - 11559: 0x6D01, - 11560: 0x7ED3, - 11561: 0x89E3, - 11562: 0x59D0, - 11563: 0x6212, - 11564: 0x85C9, - 11565: 0x82A5, - 11566: 0x754C, - 11567: 0x501F, - 11568: 0x4ECB, - 11569: 0x75A5, - 11570: 0x8BEB, - 11571: 0x5C4A, - 11572: 0x5DFE, - 11573: 0x7B4B, - 11574: 0x65A4, - 11575: 0x91D1, - 11576: 0x4ECA, - 11577: 0x6D25, - 11578: 0x895F, - 11579: 0x7D27, - 11580: 0x9526, - 11581: 0x4EC5, - 11582: 0x8C28, - 11583: 0x8FDB, - 11584: 0x9773, - 11585: 0x664B, - 11586: 0x7981, - 11587: 0x8FD1, - 11588: 0x70EC, - 11589: 0x6D78, - 11590: 0x7D99, - 11591: 0x7D9A, - 11592: 0x7D9B, - 11593: 0x7D9C, - 11594: 0x7D9D, - 11595: 0x7D9E, - 11596: 0x7D9F, - 11597: 0x7DA0, - 11598: 0x7DA1, - 11599: 0x7DA2, - 11600: 0x7DA3, - 11601: 0x7DA4, - 11602: 0x7DA5, - 11603: 0x7DA7, - 11604: 0x7DA8, - 11605: 0x7DA9, - 11606: 0x7DAA, - 11607: 0x7DAB, - 11608: 0x7DAC, - 11609: 0x7DAD, - 11610: 0x7DAF, - 11611: 0x7DB0, - 11612: 0x7DB1, - 11613: 0x7DB2, - 11614: 0x7DB3, - 11615: 0x7DB4, - 11616: 0x7DB5, - 11617: 0x7DB6, - 11618: 0x7DB7, - 11619: 0x7DB8, - 11620: 0x7DB9, - 11621: 0x7DBA, - 11622: 0x7DBB, - 11623: 0x7DBC, - 11624: 0x7DBD, - 11625: 0x7DBE, - 11626: 0x7DBF, - 11627: 0x7DC0, - 11628: 0x7DC1, - 11629: 0x7DC2, - 11630: 0x7DC3, - 11631: 0x7DC4, - 11632: 0x7DC5, - 11633: 0x7DC6, - 11634: 0x7DC7, - 11635: 0x7DC8, - 11636: 0x7DC9, - 11637: 0x7DCA, - 11638: 0x7DCB, - 11639: 0x7DCC, - 11640: 0x7DCD, - 11641: 0x7DCE, - 11642: 0x7DCF, - 11643: 0x7DD0, - 11644: 0x7DD1, - 11645: 0x7DD2, - 11646: 0x7DD3, - 11647: 0x7DD4, - 11648: 0x7DD5, - 11649: 0x7DD6, - 11650: 0x7DD7, - 11651: 0x7DD8, - 11652: 0x7DD9, - 11653: 0x7DDA, - 11654: 0x7DDB, - 11655: 0x7DDC, - 11656: 0x7DDD, - 11657: 0x7DDE, - 11658: 0x7DDF, - 11659: 0x7DE0, - 11660: 0x7DE1, - 11661: 0x7DE2, - 11662: 0x7DE3, - 11663: 0x7DE4, - 11664: 0x7DE5, - 11665: 0x7DE6, - 11666: 0x7DE7, - 11667: 0x7DE8, - 11668: 0x7DE9, - 11669: 0x7DEA, - 11670: 0x7DEB, - 11671: 0x7DEC, - 11672: 0x7DED, - 11673: 0x7DEE, - 11674: 0x7DEF, - 11675: 0x7DF0, - 11676: 0x7DF1, - 11677: 0x7DF2, - 11678: 0x7DF3, - 11679: 0x7DF4, - 11680: 0x7DF5, - 11681: 0x7DF6, - 11682: 0x7DF7, - 11683: 0x7DF8, - 11684: 0x7DF9, - 11685: 0x7DFA, - 11686: 0x5C3D, - 11687: 0x52B2, - 11688: 0x8346, - 11689: 0x5162, - 11690: 0x830E, - 11691: 0x775B, - 11692: 0x6676, - 11693: 0x9CB8, - 11694: 0x4EAC, - 11695: 0x60CA, - 11696: 0x7CBE, - 11697: 0x7CB3, - 11698: 0x7ECF, - 11699: 0x4E95, - 11700: 0x8B66, - 11701: 0x666F, - 11702: 0x9888, - 11703: 0x9759, - 11704: 0x5883, - 11705: 0x656C, - 11706: 0x955C, - 11707: 0x5F84, - 11708: 0x75C9, - 11709: 0x9756, - 11710: 0x7ADF, - 11711: 0x7ADE, - 11712: 0x51C0, - 11713: 0x70AF, - 11714: 0x7A98, - 11715: 0x63EA, - 11716: 0x7A76, - 11717: 0x7EA0, - 11718: 0x7396, - 11719: 0x97ED, - 11720: 0x4E45, - 11721: 0x7078, - 11722: 0x4E5D, - 11723: 0x9152, - 11724: 0x53A9, - 11725: 0x6551, - 11726: 0x65E7, - 11727: 0x81FC, - 11728: 0x8205, - 11729: 0x548E, - 11730: 0x5C31, - 11731: 0x759A, - 11732: 0x97A0, - 11733: 0x62D8, - 11734: 0x72D9, - 11735: 0x75BD, - 11736: 0x5C45, - 11737: 0x9A79, - 11738: 0x83CA, - 11739: 0x5C40, - 11740: 0x5480, - 11741: 0x77E9, - 11742: 0x4E3E, - 11743: 0x6CAE, - 11744: 0x805A, - 11745: 0x62D2, - 11746: 0x636E, - 11747: 0x5DE8, - 11748: 0x5177, - 11749: 0x8DDD, - 11750: 0x8E1E, - 11751: 0x952F, - 11752: 0x4FF1, - 11753: 0x53E5, - 11754: 0x60E7, - 11755: 0x70AC, - 11756: 0x5267, - 11757: 0x6350, - 11758: 0x9E43, - 11759: 0x5A1F, - 11760: 0x5026, - 11761: 0x7737, - 11762: 0x5377, - 11763: 0x7EE2, - 11764: 0x6485, - 11765: 0x652B, - 11766: 0x6289, - 11767: 0x6398, - 11768: 0x5014, - 11769: 0x7235, - 11770: 0x89C9, - 11771: 0x51B3, - 11772: 0x8BC0, - 11773: 0x7EDD, - 11774: 0x5747, - 11775: 0x83CC, - 11776: 0x94A7, - 11777: 0x519B, - 11778: 0x541B, - 11779: 0x5CFB, - 11780: 0x7DFB, - 11781: 0x7DFC, - 11782: 0x7DFD, - 11783: 0x7DFE, - 11784: 0x7DFF, - 11785: 0x7E00, - 11786: 0x7E01, - 11787: 0x7E02, - 11788: 0x7E03, - 11789: 0x7E04, - 11790: 0x7E05, - 11791: 0x7E06, - 11792: 0x7E07, - 11793: 0x7E08, - 11794: 0x7E09, - 11795: 0x7E0A, - 11796: 0x7E0B, - 11797: 0x7E0C, - 11798: 0x7E0D, - 11799: 0x7E0E, - 11800: 0x7E0F, - 11801: 0x7E10, - 11802: 0x7E11, - 11803: 0x7E12, - 11804: 0x7E13, - 11805: 0x7E14, - 11806: 0x7E15, - 11807: 0x7E16, - 11808: 0x7E17, - 11809: 0x7E18, - 11810: 0x7E19, - 11811: 0x7E1A, - 11812: 0x7E1B, - 11813: 0x7E1C, - 11814: 0x7E1D, - 11815: 0x7E1E, - 11816: 0x7E1F, - 11817: 0x7E20, - 11818: 0x7E21, - 11819: 0x7E22, - 11820: 0x7E23, - 11821: 0x7E24, - 11822: 0x7E25, - 11823: 0x7E26, - 11824: 0x7E27, - 11825: 0x7E28, - 11826: 0x7E29, - 11827: 0x7E2A, - 11828: 0x7E2B, - 11829: 0x7E2C, - 11830: 0x7E2D, - 11831: 0x7E2E, - 11832: 0x7E2F, - 11833: 0x7E30, - 11834: 0x7E31, - 11835: 0x7E32, - 11836: 0x7E33, - 11837: 0x7E34, - 11838: 0x7E35, - 11839: 0x7E36, - 11840: 0x7E37, - 11841: 0x7E38, - 11842: 0x7E39, - 11843: 0x7E3A, - 11844: 0x7E3C, - 11845: 0x7E3D, - 11846: 0x7E3E, - 11847: 0x7E3F, - 11848: 0x7E40, - 11849: 0x7E42, - 11850: 0x7E43, - 11851: 0x7E44, - 11852: 0x7E45, - 11853: 0x7E46, - 11854: 0x7E48, - 11855: 0x7E49, - 11856: 0x7E4A, - 11857: 0x7E4B, - 11858: 0x7E4C, - 11859: 0x7E4D, - 11860: 0x7E4E, - 11861: 0x7E4F, - 11862: 0x7E50, - 11863: 0x7E51, - 11864: 0x7E52, - 11865: 0x7E53, - 11866: 0x7E54, - 11867: 0x7E55, - 11868: 0x7E56, - 11869: 0x7E57, - 11870: 0x7E58, - 11871: 0x7E59, - 11872: 0x7E5A, - 11873: 0x7E5B, - 11874: 0x7E5C, - 11875: 0x7E5D, - 11876: 0x4FCA, - 11877: 0x7AE3, - 11878: 0x6D5A, - 11879: 0x90E1, - 11880: 0x9A8F, - 11881: 0x5580, - 11882: 0x5496, - 11883: 0x5361, - 11884: 0x54AF, - 11885: 0x5F00, - 11886: 0x63E9, - 11887: 0x6977, - 11888: 0x51EF, - 11889: 0x6168, - 11890: 0x520A, - 11891: 0x582A, - 11892: 0x52D8, - 11893: 0x574E, - 11894: 0x780D, - 11895: 0x770B, - 11896: 0x5EB7, - 11897: 0x6177, - 11898: 0x7CE0, - 11899: 0x625B, - 11900: 0x6297, - 11901: 0x4EA2, - 11902: 0x7095, - 11903: 0x8003, - 11904: 0x62F7, - 11905: 0x70E4, - 11906: 0x9760, - 11907: 0x5777, - 11908: 0x82DB, - 11909: 0x67EF, - 11910: 0x68F5, - 11911: 0x78D5, - 11912: 0x9897, - 11913: 0x79D1, - 11914: 0x58F3, - 11915: 0x54B3, - 11916: 0x53EF, - 11917: 0x6E34, - 11918: 0x514B, - 11919: 0x523B, - 11920: 0x5BA2, - 11921: 0x8BFE, - 11922: 0x80AF, - 11923: 0x5543, - 11924: 0x57A6, - 11925: 0x6073, - 11926: 0x5751, - 11927: 0x542D, - 11928: 0x7A7A, - 11929: 0x6050, - 11930: 0x5B54, - 11931: 0x63A7, - 11932: 0x62A0, - 11933: 0x53E3, - 11934: 0x6263, - 11935: 0x5BC7, - 11936: 0x67AF, - 11937: 0x54ED, - 11938: 0x7A9F, - 11939: 0x82E6, - 11940: 0x9177, - 11941: 0x5E93, - 11942: 0x88E4, - 11943: 0x5938, - 11944: 0x57AE, - 11945: 0x630E, - 11946: 0x8DE8, - 11947: 0x80EF, - 11948: 0x5757, - 11949: 0x7B77, - 11950: 0x4FA9, - 11951: 0x5FEB, - 11952: 0x5BBD, - 11953: 0x6B3E, - 11954: 0x5321, - 11955: 0x7B50, - 11956: 0x72C2, - 11957: 0x6846, - 11958: 0x77FF, - 11959: 0x7736, - 11960: 0x65F7, - 11961: 0x51B5, - 11962: 0x4E8F, - 11963: 0x76D4, - 11964: 0x5CBF, - 11965: 0x7AA5, - 11966: 0x8475, - 11967: 0x594E, - 11968: 0x9B41, - 11969: 0x5080, - 11970: 0x7E5E, - 11971: 0x7E5F, - 11972: 0x7E60, - 11973: 0x7E61, - 11974: 0x7E62, - 11975: 0x7E63, - 11976: 0x7E64, - 11977: 0x7E65, - 11978: 0x7E66, - 11979: 0x7E67, - 11980: 0x7E68, - 11981: 0x7E69, - 11982: 0x7E6A, - 11983: 0x7E6B, - 11984: 0x7E6C, - 11985: 0x7E6D, - 11986: 0x7E6E, - 11987: 0x7E6F, - 11988: 0x7E70, - 11989: 0x7E71, - 11990: 0x7E72, - 11991: 0x7E73, - 11992: 0x7E74, - 11993: 0x7E75, - 11994: 0x7E76, - 11995: 0x7E77, - 11996: 0x7E78, - 11997: 0x7E79, - 11998: 0x7E7A, - 11999: 0x7E7B, - 12000: 0x7E7C, - 12001: 0x7E7D, - 12002: 0x7E7E, - 12003: 0x7E7F, - 12004: 0x7E80, - 12005: 0x7E81, - 12006: 0x7E83, - 12007: 0x7E84, - 12008: 0x7E85, - 12009: 0x7E86, - 12010: 0x7E87, - 12011: 0x7E88, - 12012: 0x7E89, - 12013: 0x7E8A, - 12014: 0x7E8B, - 12015: 0x7E8C, - 12016: 0x7E8D, - 12017: 0x7E8E, - 12018: 0x7E8F, - 12019: 0x7E90, - 12020: 0x7E91, - 12021: 0x7E92, - 12022: 0x7E93, - 12023: 0x7E94, - 12024: 0x7E95, - 12025: 0x7E96, - 12026: 0x7E97, - 12027: 0x7E98, - 12028: 0x7E99, - 12029: 0x7E9A, - 12030: 0x7E9C, - 12031: 0x7E9D, - 12032: 0x7E9E, - 12033: 0x7EAE, - 12034: 0x7EB4, - 12035: 0x7EBB, - 12036: 0x7EBC, - 12037: 0x7ED6, - 12038: 0x7EE4, - 12039: 0x7EEC, - 12040: 0x7EF9, - 12041: 0x7F0A, - 12042: 0x7F10, - 12043: 0x7F1E, - 12044: 0x7F37, - 12045: 0x7F39, - 12046: 0x7F3B, - 12047: 0x7F3C, - 12048: 0x7F3D, - 12049: 0x7F3E, - 12050: 0x7F3F, - 12051: 0x7F40, - 12052: 0x7F41, - 12053: 0x7F43, - 12054: 0x7F46, - 12055: 0x7F47, - 12056: 0x7F48, - 12057: 0x7F49, - 12058: 0x7F4A, - 12059: 0x7F4B, - 12060: 0x7F4C, - 12061: 0x7F4D, - 12062: 0x7F4E, - 12063: 0x7F4F, - 12064: 0x7F52, - 12065: 0x7F53, - 12066: 0x9988, - 12067: 0x6127, - 12068: 0x6E83, - 12069: 0x5764, - 12070: 0x6606, - 12071: 0x6346, - 12072: 0x56F0, - 12073: 0x62EC, - 12074: 0x6269, - 12075: 0x5ED3, - 12076: 0x9614, - 12077: 0x5783, - 12078: 0x62C9, - 12079: 0x5587, - 12080: 0x8721, - 12081: 0x814A, - 12082: 0x8FA3, - 12083: 0x5566, - 12084: 0x83B1, - 12085: 0x6765, - 12086: 0x8D56, - 12087: 0x84DD, - 12088: 0x5A6A, - 12089: 0x680F, - 12090: 0x62E6, - 12091: 0x7BEE, - 12092: 0x9611, - 12093: 0x5170, - 12094: 0x6F9C, - 12095: 0x8C30, - 12096: 0x63FD, - 12097: 0x89C8, - 12098: 0x61D2, - 12099: 0x7F06, - 12100: 0x70C2, - 12101: 0x6EE5, - 12102: 0x7405, - 12103: 0x6994, - 12104: 0x72FC, - 12105: 0x5ECA, - 12106: 0x90CE, - 12107: 0x6717, - 12108: 0x6D6A, - 12109: 0x635E, - 12110: 0x52B3, - 12111: 0x7262, - 12112: 0x8001, - 12113: 0x4F6C, - 12114: 0x59E5, - 12115: 0x916A, - 12116: 0x70D9, - 12117: 0x6D9D, - 12118: 0x52D2, - 12119: 0x4E50, - 12120: 0x96F7, - 12121: 0x956D, - 12122: 0x857E, - 12123: 0x78CA, - 12124: 0x7D2F, - 12125: 0x5121, - 12126: 0x5792, - 12127: 0x64C2, - 12128: 0x808B, - 12129: 0x7C7B, - 12130: 0x6CEA, - 12131: 0x68F1, - 12132: 0x695E, - 12133: 0x51B7, - 12134: 0x5398, - 12135: 0x68A8, - 12136: 0x7281, - 12137: 0x9ECE, - 12138: 0x7BF1, - 12139: 0x72F8, - 12140: 0x79BB, - 12141: 0x6F13, - 12142: 0x7406, - 12143: 0x674E, - 12144: 0x91CC, - 12145: 0x9CA4, - 12146: 0x793C, - 12147: 0x8389, - 12148: 0x8354, - 12149: 0x540F, - 12150: 0x6817, - 12151: 0x4E3D, - 12152: 0x5389, - 12153: 0x52B1, - 12154: 0x783E, - 12155: 0x5386, - 12156: 0x5229, - 12157: 0x5088, - 12158: 0x4F8B, - 12159: 0x4FD0, - 12160: 0x7F56, - 12161: 0x7F59, - 12162: 0x7F5B, - 12163: 0x7F5C, - 12164: 0x7F5D, - 12165: 0x7F5E, - 12166: 0x7F60, - 12167: 0x7F63, - 12168: 0x7F64, - 12169: 0x7F65, - 12170: 0x7F66, - 12171: 0x7F67, - 12172: 0x7F6B, - 12173: 0x7F6C, - 12174: 0x7F6D, - 12175: 0x7F6F, - 12176: 0x7F70, - 12177: 0x7F73, - 12178: 0x7F75, - 12179: 0x7F76, - 12180: 0x7F77, - 12181: 0x7F78, - 12182: 0x7F7A, - 12183: 0x7F7B, - 12184: 0x7F7C, - 12185: 0x7F7D, - 12186: 0x7F7F, - 12187: 0x7F80, - 12188: 0x7F82, - 12189: 0x7F83, - 12190: 0x7F84, - 12191: 0x7F85, - 12192: 0x7F86, - 12193: 0x7F87, - 12194: 0x7F88, - 12195: 0x7F89, - 12196: 0x7F8B, - 12197: 0x7F8D, - 12198: 0x7F8F, - 12199: 0x7F90, - 12200: 0x7F91, - 12201: 0x7F92, - 12202: 0x7F93, - 12203: 0x7F95, - 12204: 0x7F96, - 12205: 0x7F97, - 12206: 0x7F98, - 12207: 0x7F99, - 12208: 0x7F9B, - 12209: 0x7F9C, - 12210: 0x7FA0, - 12211: 0x7FA2, - 12212: 0x7FA3, - 12213: 0x7FA5, - 12214: 0x7FA6, - 12215: 0x7FA8, - 12216: 0x7FA9, - 12217: 0x7FAA, - 12218: 0x7FAB, - 12219: 0x7FAC, - 12220: 0x7FAD, - 12221: 0x7FAE, - 12222: 0x7FB1, - 12223: 0x7FB3, - 12224: 0x7FB4, - 12225: 0x7FB5, - 12226: 0x7FB6, - 12227: 0x7FB7, - 12228: 0x7FBA, - 12229: 0x7FBB, - 12230: 0x7FBE, - 12231: 0x7FC0, - 12232: 0x7FC2, - 12233: 0x7FC3, - 12234: 0x7FC4, - 12235: 0x7FC6, - 12236: 0x7FC7, - 12237: 0x7FC8, - 12238: 0x7FC9, - 12239: 0x7FCB, - 12240: 0x7FCD, - 12241: 0x7FCF, - 12242: 0x7FD0, - 12243: 0x7FD1, - 12244: 0x7FD2, - 12245: 0x7FD3, - 12246: 0x7FD6, - 12247: 0x7FD7, - 12248: 0x7FD9, - 12249: 0x7FDA, - 12250: 0x7FDB, - 12251: 0x7FDC, - 12252: 0x7FDD, - 12253: 0x7FDE, - 12254: 0x7FE2, - 12255: 0x7FE3, - 12256: 0x75E2, - 12257: 0x7ACB, - 12258: 0x7C92, - 12259: 0x6CA5, - 12260: 0x96B6, - 12261: 0x529B, - 12262: 0x7483, - 12263: 0x54E9, - 12264: 0x4FE9, - 12265: 0x8054, - 12266: 0x83B2, - 12267: 0x8FDE, - 12268: 0x9570, - 12269: 0x5EC9, - 12270: 0x601C, - 12271: 0x6D9F, - 12272: 0x5E18, - 12273: 0x655B, - 12274: 0x8138, - 12275: 0x94FE, - 12276: 0x604B, - 12277: 0x70BC, - 12278: 0x7EC3, - 12279: 0x7CAE, - 12280: 0x51C9, - 12281: 0x6881, - 12282: 0x7CB1, - 12283: 0x826F, - 12284: 0x4E24, - 12285: 0x8F86, - 12286: 0x91CF, - 12287: 0x667E, - 12288: 0x4EAE, - 12289: 0x8C05, - 12290: 0x64A9, - 12291: 0x804A, - 12292: 0x50DA, - 12293: 0x7597, - 12294: 0x71CE, - 12295: 0x5BE5, - 12296: 0x8FBD, - 12297: 0x6F66, - 12298: 0x4E86, - 12299: 0x6482, - 12300: 0x9563, - 12301: 0x5ED6, - 12302: 0x6599, - 12303: 0x5217, - 12304: 0x88C2, - 12305: 0x70C8, - 12306: 0x52A3, - 12307: 0x730E, - 12308: 0x7433, - 12309: 0x6797, - 12310: 0x78F7, - 12311: 0x9716, - 12312: 0x4E34, - 12313: 0x90BB, - 12314: 0x9CDE, - 12315: 0x6DCB, - 12316: 0x51DB, - 12317: 0x8D41, - 12318: 0x541D, - 12319: 0x62CE, - 12320: 0x73B2, - 12321: 0x83F1, - 12322: 0x96F6, - 12323: 0x9F84, - 12324: 0x94C3, - 12325: 0x4F36, - 12326: 0x7F9A, - 12327: 0x51CC, - 12328: 0x7075, - 12329: 0x9675, - 12330: 0x5CAD, - 12331: 0x9886, - 12332: 0x53E6, - 12333: 0x4EE4, - 12334: 0x6E9C, - 12335: 0x7409, - 12336: 0x69B4, - 12337: 0x786B, - 12338: 0x998F, - 12339: 0x7559, - 12340: 0x5218, - 12341: 0x7624, - 12342: 0x6D41, - 12343: 0x67F3, - 12344: 0x516D, - 12345: 0x9F99, - 12346: 0x804B, - 12347: 0x5499, - 12348: 0x7B3C, - 12349: 0x7ABF, - 12350: 0x7FE4, - 12351: 0x7FE7, - 12352: 0x7FE8, - 12353: 0x7FEA, - 12354: 0x7FEB, - 12355: 0x7FEC, - 12356: 0x7FED, - 12357: 0x7FEF, - 12358: 0x7FF2, - 12359: 0x7FF4, - 12360: 0x7FF5, - 12361: 0x7FF6, - 12362: 0x7FF7, - 12363: 0x7FF8, - 12364: 0x7FF9, - 12365: 0x7FFA, - 12366: 0x7FFD, - 12367: 0x7FFE, - 12368: 0x7FFF, - 12369: 0x8002, - 12370: 0x8007, - 12371: 0x8008, - 12372: 0x8009, - 12373: 0x800A, - 12374: 0x800E, - 12375: 0x800F, - 12376: 0x8011, - 12377: 0x8013, - 12378: 0x801A, - 12379: 0x801B, - 12380: 0x801D, - 12381: 0x801E, - 12382: 0x801F, - 12383: 0x8021, - 12384: 0x8023, - 12385: 0x8024, - 12386: 0x802B, - 12387: 0x802C, - 12388: 0x802D, - 12389: 0x802E, - 12390: 0x802F, - 12391: 0x8030, - 12392: 0x8032, - 12393: 0x8034, - 12394: 0x8039, - 12395: 0x803A, - 12396: 0x803C, - 12397: 0x803E, - 12398: 0x8040, - 12399: 0x8041, - 12400: 0x8044, - 12401: 0x8045, - 12402: 0x8047, - 12403: 0x8048, - 12404: 0x8049, - 12405: 0x804E, - 12406: 0x804F, - 12407: 0x8050, - 12408: 0x8051, - 12409: 0x8053, - 12410: 0x8055, - 12411: 0x8056, - 12412: 0x8057, - 12413: 0x8059, - 12414: 0x805B, - 12415: 0x805C, - 12416: 0x805D, - 12417: 0x805E, - 12418: 0x805F, - 12419: 0x8060, - 12420: 0x8061, - 12421: 0x8062, - 12422: 0x8063, - 12423: 0x8064, - 12424: 0x8065, - 12425: 0x8066, - 12426: 0x8067, - 12427: 0x8068, - 12428: 0x806B, - 12429: 0x806C, - 12430: 0x806D, - 12431: 0x806E, - 12432: 0x806F, - 12433: 0x8070, - 12434: 0x8072, - 12435: 0x8073, - 12436: 0x8074, - 12437: 0x8075, - 12438: 0x8076, - 12439: 0x8077, - 12440: 0x8078, - 12441: 0x8079, - 12442: 0x807A, - 12443: 0x807B, - 12444: 0x807C, - 12445: 0x807D, - 12446: 0x9686, - 12447: 0x5784, - 12448: 0x62E2, - 12449: 0x9647, - 12450: 0x697C, - 12451: 0x5A04, - 12452: 0x6402, - 12453: 0x7BD3, - 12454: 0x6F0F, - 12455: 0x964B, - 12456: 0x82A6, - 12457: 0x5362, - 12458: 0x9885, - 12459: 0x5E90, - 12460: 0x7089, - 12461: 0x63B3, - 12462: 0x5364, - 12463: 0x864F, - 12464: 0x9C81, - 12465: 0x9E93, - 12466: 0x788C, - 12467: 0x9732, - 12468: 0x8DEF, - 12469: 0x8D42, - 12470: 0x9E7F, - 12471: 0x6F5E, - 12472: 0x7984, - 12473: 0x5F55, - 12474: 0x9646, - 12475: 0x622E, - 12476: 0x9A74, - 12477: 0x5415, - 12478: 0x94DD, - 12479: 0x4FA3, - 12480: 0x65C5, - 12481: 0x5C65, - 12482: 0x5C61, - 12483: 0x7F15, - 12484: 0x8651, - 12485: 0x6C2F, - 12486: 0x5F8B, - 12487: 0x7387, - 12488: 0x6EE4, - 12489: 0x7EFF, - 12490: 0x5CE6, - 12491: 0x631B, - 12492: 0x5B6A, - 12493: 0x6EE6, - 12494: 0x5375, - 12495: 0x4E71, - 12496: 0x63A0, - 12497: 0x7565, - 12498: 0x62A1, - 12499: 0x8F6E, - 12500: 0x4F26, - 12501: 0x4ED1, - 12502: 0x6CA6, - 12503: 0x7EB6, - 12504: 0x8BBA, - 12505: 0x841D, - 12506: 0x87BA, - 12507: 0x7F57, - 12508: 0x903B, - 12509: 0x9523, - 12510: 0x7BA9, - 12511: 0x9AA1, - 12512: 0x88F8, - 12513: 0x843D, - 12514: 0x6D1B, - 12515: 0x9A86, - 12516: 0x7EDC, - 12517: 0x5988, - 12518: 0x9EBB, - 12519: 0x739B, - 12520: 0x7801, - 12521: 0x8682, - 12522: 0x9A6C, - 12523: 0x9A82, - 12524: 0x561B, - 12525: 0x5417, - 12526: 0x57CB, - 12527: 0x4E70, - 12528: 0x9EA6, - 12529: 0x5356, - 12530: 0x8FC8, - 12531: 0x8109, - 12532: 0x7792, - 12533: 0x9992, - 12534: 0x86EE, - 12535: 0x6EE1, - 12536: 0x8513, - 12537: 0x66FC, - 12538: 0x6162, - 12539: 0x6F2B, - 12540: 0x807E, - 12541: 0x8081, - 12542: 0x8082, - 12543: 0x8085, - 12544: 0x8088, - 12545: 0x808A, - 12546: 0x808D, - 12547: 0x808E, - 12548: 0x808F, - 12549: 0x8090, - 12550: 0x8091, - 12551: 0x8092, - 12552: 0x8094, - 12553: 0x8095, - 12554: 0x8097, - 12555: 0x8099, - 12556: 0x809E, - 12557: 0x80A3, - 12558: 0x80A6, - 12559: 0x80A7, - 12560: 0x80A8, - 12561: 0x80AC, - 12562: 0x80B0, - 12563: 0x80B3, - 12564: 0x80B5, - 12565: 0x80B6, - 12566: 0x80B8, - 12567: 0x80B9, - 12568: 0x80BB, - 12569: 0x80C5, - 12570: 0x80C7, - 12571: 0x80C8, - 12572: 0x80C9, - 12573: 0x80CA, - 12574: 0x80CB, - 12575: 0x80CF, - 12576: 0x80D0, - 12577: 0x80D1, - 12578: 0x80D2, - 12579: 0x80D3, - 12580: 0x80D4, - 12581: 0x80D5, - 12582: 0x80D8, - 12583: 0x80DF, - 12584: 0x80E0, - 12585: 0x80E2, - 12586: 0x80E3, - 12587: 0x80E6, - 12588: 0x80EE, - 12589: 0x80F5, - 12590: 0x80F7, - 12591: 0x80F9, - 12592: 0x80FB, - 12593: 0x80FE, - 12594: 0x80FF, - 12595: 0x8100, - 12596: 0x8101, - 12597: 0x8103, - 12598: 0x8104, - 12599: 0x8105, - 12600: 0x8107, - 12601: 0x8108, - 12602: 0x810B, - 12603: 0x810C, - 12604: 0x8115, - 12605: 0x8117, - 12606: 0x8119, - 12607: 0x811B, - 12608: 0x811C, - 12609: 0x811D, - 12610: 0x811F, - 12611: 0x8120, - 12612: 0x8121, - 12613: 0x8122, - 12614: 0x8123, - 12615: 0x8124, - 12616: 0x8125, - 12617: 0x8126, - 12618: 0x8127, - 12619: 0x8128, - 12620: 0x8129, - 12621: 0x812A, - 12622: 0x812B, - 12623: 0x812D, - 12624: 0x812E, - 12625: 0x8130, - 12626: 0x8133, - 12627: 0x8134, - 12628: 0x8135, - 12629: 0x8137, - 12630: 0x8139, - 12631: 0x813A, - 12632: 0x813B, - 12633: 0x813C, - 12634: 0x813D, - 12635: 0x813F, - 12636: 0x8C29, - 12637: 0x8292, - 12638: 0x832B, - 12639: 0x76F2, - 12640: 0x6C13, - 12641: 0x5FD9, - 12642: 0x83BD, - 12643: 0x732B, - 12644: 0x8305, - 12645: 0x951A, - 12646: 0x6BDB, - 12647: 0x77DB, - 12648: 0x94C6, - 12649: 0x536F, - 12650: 0x8302, - 12651: 0x5192, - 12652: 0x5E3D, - 12653: 0x8C8C, - 12654: 0x8D38, - 12655: 0x4E48, - 12656: 0x73AB, - 12657: 0x679A, - 12658: 0x6885, - 12659: 0x9176, - 12660: 0x9709, - 12661: 0x7164, - 12662: 0x6CA1, - 12663: 0x7709, - 12664: 0x5A92, - 12665: 0x9541, - 12666: 0x6BCF, - 12667: 0x7F8E, - 12668: 0x6627, - 12669: 0x5BD0, - 12670: 0x59B9, - 12671: 0x5A9A, - 12672: 0x95E8, - 12673: 0x95F7, - 12674: 0x4EEC, - 12675: 0x840C, - 12676: 0x8499, - 12677: 0x6AAC, - 12678: 0x76DF, - 12679: 0x9530, - 12680: 0x731B, - 12681: 0x68A6, - 12682: 0x5B5F, - 12683: 0x772F, - 12684: 0x919A, - 12685: 0x9761, - 12686: 0x7CDC, - 12687: 0x8FF7, - 12688: 0x8C1C, - 12689: 0x5F25, - 12690: 0x7C73, - 12691: 0x79D8, - 12692: 0x89C5, - 12693: 0x6CCC, - 12694: 0x871C, - 12695: 0x5BC6, - 12696: 0x5E42, - 12697: 0x68C9, - 12698: 0x7720, - 12699: 0x7EF5, - 12700: 0x5195, - 12701: 0x514D, - 12702: 0x52C9, - 12703: 0x5A29, - 12704: 0x7F05, - 12705: 0x9762, - 12706: 0x82D7, - 12707: 0x63CF, - 12708: 0x7784, - 12709: 0x85D0, - 12710: 0x79D2, - 12711: 0x6E3A, - 12712: 0x5E99, - 12713: 0x5999, - 12714: 0x8511, - 12715: 0x706D, - 12716: 0x6C11, - 12717: 0x62BF, - 12718: 0x76BF, - 12719: 0x654F, - 12720: 0x60AF, - 12721: 0x95FD, - 12722: 0x660E, - 12723: 0x879F, - 12724: 0x9E23, - 12725: 0x94ED, - 12726: 0x540D, - 12727: 0x547D, - 12728: 0x8C2C, - 12729: 0x6478, - 12730: 0x8140, - 12731: 0x8141, - 12732: 0x8142, - 12733: 0x8143, - 12734: 0x8144, - 12735: 0x8145, - 12736: 0x8147, - 12737: 0x8149, - 12738: 0x814D, - 12739: 0x814E, - 12740: 0x814F, - 12741: 0x8152, - 12742: 0x8156, - 12743: 0x8157, - 12744: 0x8158, - 12745: 0x815B, - 12746: 0x815C, - 12747: 0x815D, - 12748: 0x815E, - 12749: 0x815F, - 12750: 0x8161, - 12751: 0x8162, - 12752: 0x8163, - 12753: 0x8164, - 12754: 0x8166, - 12755: 0x8168, - 12756: 0x816A, - 12757: 0x816B, - 12758: 0x816C, - 12759: 0x816F, - 12760: 0x8172, - 12761: 0x8173, - 12762: 0x8175, - 12763: 0x8176, - 12764: 0x8177, - 12765: 0x8178, - 12766: 0x8181, - 12767: 0x8183, - 12768: 0x8184, - 12769: 0x8185, - 12770: 0x8186, - 12771: 0x8187, - 12772: 0x8189, - 12773: 0x818B, - 12774: 0x818C, - 12775: 0x818D, - 12776: 0x818E, - 12777: 0x8190, - 12778: 0x8192, - 12779: 0x8193, - 12780: 0x8194, - 12781: 0x8195, - 12782: 0x8196, - 12783: 0x8197, - 12784: 0x8199, - 12785: 0x819A, - 12786: 0x819E, - 12787: 0x819F, - 12788: 0x81A0, - 12789: 0x81A1, - 12790: 0x81A2, - 12791: 0x81A4, - 12792: 0x81A5, - 12793: 0x81A7, - 12794: 0x81A9, - 12795: 0x81AB, - 12796: 0x81AC, - 12797: 0x81AD, - 12798: 0x81AE, - 12799: 0x81AF, - 12800: 0x81B0, - 12801: 0x81B1, - 12802: 0x81B2, - 12803: 0x81B4, - 12804: 0x81B5, - 12805: 0x81B6, - 12806: 0x81B7, - 12807: 0x81B8, - 12808: 0x81B9, - 12809: 0x81BC, - 12810: 0x81BD, - 12811: 0x81BE, - 12812: 0x81BF, - 12813: 0x81C4, - 12814: 0x81C5, - 12815: 0x81C7, - 12816: 0x81C8, - 12817: 0x81C9, - 12818: 0x81CB, - 12819: 0x81CD, - 12820: 0x81CE, - 12821: 0x81CF, - 12822: 0x81D0, - 12823: 0x81D1, - 12824: 0x81D2, - 12825: 0x81D3, - 12826: 0x6479, - 12827: 0x8611, - 12828: 0x6A21, - 12829: 0x819C, - 12830: 0x78E8, - 12831: 0x6469, - 12832: 0x9B54, - 12833: 0x62B9, - 12834: 0x672B, - 12835: 0x83AB, - 12836: 0x58A8, - 12837: 0x9ED8, - 12838: 0x6CAB, - 12839: 0x6F20, - 12840: 0x5BDE, - 12841: 0x964C, - 12842: 0x8C0B, - 12843: 0x725F, - 12844: 0x67D0, - 12845: 0x62C7, - 12846: 0x7261, - 12847: 0x4EA9, - 12848: 0x59C6, - 12849: 0x6BCD, - 12850: 0x5893, - 12851: 0x66AE, - 12852: 0x5E55, - 12853: 0x52DF, - 12854: 0x6155, - 12855: 0x6728, - 12856: 0x76EE, - 12857: 0x7766, - 12858: 0x7267, - 12859: 0x7A46, - 12860: 0x62FF, - 12861: 0x54EA, - 12862: 0x5450, - 12863: 0x94A0, - 12864: 0x90A3, - 12865: 0x5A1C, - 12866: 0x7EB3, - 12867: 0x6C16, - 12868: 0x4E43, - 12869: 0x5976, - 12870: 0x8010, - 12871: 0x5948, - 12872: 0x5357, - 12873: 0x7537, - 12874: 0x96BE, - 12875: 0x56CA, - 12876: 0x6320, - 12877: 0x8111, - 12878: 0x607C, - 12879: 0x95F9, - 12880: 0x6DD6, - 12881: 0x5462, - 12882: 0x9981, - 12883: 0x5185, - 12884: 0x5AE9, - 12885: 0x80FD, - 12886: 0x59AE, - 12887: 0x9713, - 12888: 0x502A, - 12889: 0x6CE5, - 12890: 0x5C3C, - 12891: 0x62DF, - 12892: 0x4F60, - 12893: 0x533F, - 12894: 0x817B, - 12895: 0x9006, - 12896: 0x6EBA, - 12897: 0x852B, - 12898: 0x62C8, - 12899: 0x5E74, - 12900: 0x78BE, - 12901: 0x64B5, - 12902: 0x637B, - 12903: 0x5FF5, - 12904: 0x5A18, - 12905: 0x917F, - 12906: 0x9E1F, - 12907: 0x5C3F, - 12908: 0x634F, - 12909: 0x8042, - 12910: 0x5B7D, - 12911: 0x556E, - 12912: 0x954A, - 12913: 0x954D, - 12914: 0x6D85, - 12915: 0x60A8, - 12916: 0x67E0, - 12917: 0x72DE, - 12918: 0x51DD, - 12919: 0x5B81, - 12920: 0x81D4, - 12921: 0x81D5, - 12922: 0x81D6, - 12923: 0x81D7, - 12924: 0x81D8, - 12925: 0x81D9, - 12926: 0x81DA, - 12927: 0x81DB, - 12928: 0x81DC, - 12929: 0x81DD, - 12930: 0x81DE, - 12931: 0x81DF, - 12932: 0x81E0, - 12933: 0x81E1, - 12934: 0x81E2, - 12935: 0x81E4, - 12936: 0x81E5, - 12937: 0x81E6, - 12938: 0x81E8, - 12939: 0x81E9, - 12940: 0x81EB, - 12941: 0x81EE, - 12942: 0x81EF, - 12943: 0x81F0, - 12944: 0x81F1, - 12945: 0x81F2, - 12946: 0x81F5, - 12947: 0x81F6, - 12948: 0x81F7, - 12949: 0x81F8, - 12950: 0x81F9, - 12951: 0x81FA, - 12952: 0x81FD, - 12953: 0x81FF, - 12954: 0x8203, - 12955: 0x8207, - 12956: 0x8208, - 12957: 0x8209, - 12958: 0x820A, - 12959: 0x820B, - 12960: 0x820E, - 12961: 0x820F, - 12962: 0x8211, - 12963: 0x8213, - 12964: 0x8215, - 12965: 0x8216, - 12966: 0x8217, - 12967: 0x8218, - 12968: 0x8219, - 12969: 0x821A, - 12970: 0x821D, - 12971: 0x8220, - 12972: 0x8224, - 12973: 0x8225, - 12974: 0x8226, - 12975: 0x8227, - 12976: 0x8229, - 12977: 0x822E, - 12978: 0x8232, - 12979: 0x823A, - 12980: 0x823C, - 12981: 0x823D, - 12982: 0x823F, - 12983: 0x8240, - 12984: 0x8241, - 12985: 0x8242, - 12986: 0x8243, - 12987: 0x8245, - 12988: 0x8246, - 12989: 0x8248, - 12990: 0x824A, - 12991: 0x824C, - 12992: 0x824D, - 12993: 0x824E, - 12994: 0x8250, - 12995: 0x8251, - 12996: 0x8252, - 12997: 0x8253, - 12998: 0x8254, - 12999: 0x8255, - 13000: 0x8256, - 13001: 0x8257, - 13002: 0x8259, - 13003: 0x825B, - 13004: 0x825C, - 13005: 0x825D, - 13006: 0x825E, - 13007: 0x8260, - 13008: 0x8261, - 13009: 0x8262, - 13010: 0x8263, - 13011: 0x8264, - 13012: 0x8265, - 13013: 0x8266, - 13014: 0x8267, - 13015: 0x8269, - 13016: 0x62E7, - 13017: 0x6CDE, - 13018: 0x725B, - 13019: 0x626D, - 13020: 0x94AE, - 13021: 0x7EBD, - 13022: 0x8113, - 13023: 0x6D53, - 13024: 0x519C, - 13025: 0x5F04, - 13026: 0x5974, - 13027: 0x52AA, - 13028: 0x6012, - 13029: 0x5973, - 13030: 0x6696, - 13031: 0x8650, - 13032: 0x759F, - 13033: 0x632A, - 13034: 0x61E6, - 13035: 0x7CEF, - 13036: 0x8BFA, - 13037: 0x54E6, - 13038: 0x6B27, - 13039: 0x9E25, - 13040: 0x6BB4, - 13041: 0x85D5, - 13042: 0x5455, - 13043: 0x5076, - 13044: 0x6CA4, - 13045: 0x556A, - 13046: 0x8DB4, - 13047: 0x722C, - 13048: 0x5E15, - 13049: 0x6015, - 13050: 0x7436, - 13051: 0x62CD, - 13052: 0x6392, - 13053: 0x724C, - 13054: 0x5F98, - 13055: 0x6E43, - 13056: 0x6D3E, - 13057: 0x6500, - 13058: 0x6F58, - 13059: 0x76D8, - 13060: 0x78D0, - 13061: 0x76FC, - 13062: 0x7554, - 13063: 0x5224, - 13064: 0x53DB, - 13065: 0x4E53, - 13066: 0x5E9E, - 13067: 0x65C1, - 13068: 0x802A, - 13069: 0x80D6, - 13070: 0x629B, - 13071: 0x5486, - 13072: 0x5228, - 13073: 0x70AE, - 13074: 0x888D, - 13075: 0x8DD1, - 13076: 0x6CE1, - 13077: 0x5478, - 13078: 0x80DA, - 13079: 0x57F9, - 13080: 0x88F4, - 13081: 0x8D54, - 13082: 0x966A, - 13083: 0x914D, - 13084: 0x4F69, - 13085: 0x6C9B, - 13086: 0x55B7, - 13087: 0x76C6, - 13088: 0x7830, - 13089: 0x62A8, - 13090: 0x70F9, - 13091: 0x6F8E, - 13092: 0x5F6D, - 13093: 0x84EC, - 13094: 0x68DA, - 13095: 0x787C, - 13096: 0x7BF7, - 13097: 0x81A8, - 13098: 0x670B, - 13099: 0x9E4F, - 13100: 0x6367, - 13101: 0x78B0, - 13102: 0x576F, - 13103: 0x7812, - 13104: 0x9739, - 13105: 0x6279, - 13106: 0x62AB, - 13107: 0x5288, - 13108: 0x7435, - 13109: 0x6BD7, - 13110: 0x826A, - 13111: 0x826B, - 13112: 0x826C, - 13113: 0x826D, - 13114: 0x8271, - 13115: 0x8275, - 13116: 0x8276, - 13117: 0x8277, - 13118: 0x8278, - 13119: 0x827B, - 13120: 0x827C, - 13121: 0x8280, - 13122: 0x8281, - 13123: 0x8283, - 13124: 0x8285, - 13125: 0x8286, - 13126: 0x8287, - 13127: 0x8289, - 13128: 0x828C, - 13129: 0x8290, - 13130: 0x8293, - 13131: 0x8294, - 13132: 0x8295, - 13133: 0x8296, - 13134: 0x829A, - 13135: 0x829B, - 13136: 0x829E, - 13137: 0x82A0, - 13138: 0x82A2, - 13139: 0x82A3, - 13140: 0x82A7, - 13141: 0x82B2, - 13142: 0x82B5, - 13143: 0x82B6, - 13144: 0x82BA, - 13145: 0x82BB, - 13146: 0x82BC, - 13147: 0x82BF, - 13148: 0x82C0, - 13149: 0x82C2, - 13150: 0x82C3, - 13151: 0x82C5, - 13152: 0x82C6, - 13153: 0x82C9, - 13154: 0x82D0, - 13155: 0x82D6, - 13156: 0x82D9, - 13157: 0x82DA, - 13158: 0x82DD, - 13159: 0x82E2, - 13160: 0x82E7, - 13161: 0x82E8, - 13162: 0x82E9, - 13163: 0x82EA, - 13164: 0x82EC, - 13165: 0x82ED, - 13166: 0x82EE, - 13167: 0x82F0, - 13168: 0x82F2, - 13169: 0x82F3, - 13170: 0x82F5, - 13171: 0x82F6, - 13172: 0x82F8, - 13173: 0x82FA, - 13174: 0x82FC, - 13175: 0x82FD, - 13176: 0x82FE, - 13177: 0x82FF, - 13178: 0x8300, - 13179: 0x830A, - 13180: 0x830B, - 13181: 0x830D, - 13182: 0x8310, - 13183: 0x8312, - 13184: 0x8313, - 13185: 0x8316, - 13186: 0x8318, - 13187: 0x8319, - 13188: 0x831D, - 13189: 0x831E, - 13190: 0x831F, - 13191: 0x8320, - 13192: 0x8321, - 13193: 0x8322, - 13194: 0x8323, - 13195: 0x8324, - 13196: 0x8325, - 13197: 0x8326, - 13198: 0x8329, - 13199: 0x832A, - 13200: 0x832E, - 13201: 0x8330, - 13202: 0x8332, - 13203: 0x8337, - 13204: 0x833B, - 13205: 0x833D, - 13206: 0x5564, - 13207: 0x813E, - 13208: 0x75B2, - 13209: 0x76AE, - 13210: 0x5339, - 13211: 0x75DE, - 13212: 0x50FB, - 13213: 0x5C41, - 13214: 0x8B6C, - 13215: 0x7BC7, - 13216: 0x504F, - 13217: 0x7247, - 13218: 0x9A97, - 13219: 0x98D8, - 13220: 0x6F02, - 13221: 0x74E2, - 13222: 0x7968, - 13223: 0x6487, - 13224: 0x77A5, - 13225: 0x62FC, - 13226: 0x9891, - 13227: 0x8D2B, - 13228: 0x54C1, - 13229: 0x8058, - 13230: 0x4E52, - 13231: 0x576A, - 13232: 0x82F9, - 13233: 0x840D, - 13234: 0x5E73, - 13235: 0x51ED, - 13236: 0x74F6, - 13237: 0x8BC4, - 13238: 0x5C4F, - 13239: 0x5761, - 13240: 0x6CFC, - 13241: 0x9887, - 13242: 0x5A46, - 13243: 0x7834, - 13244: 0x9B44, - 13245: 0x8FEB, - 13246: 0x7C95, - 13247: 0x5256, - 13248: 0x6251, - 13249: 0x94FA, - 13250: 0x4EC6, - 13251: 0x8386, - 13252: 0x8461, - 13253: 0x83E9, - 13254: 0x84B2, - 13255: 0x57D4, - 13256: 0x6734, - 13257: 0x5703, - 13258: 0x666E, - 13259: 0x6D66, - 13260: 0x8C31, - 13261: 0x66DD, - 13262: 0x7011, - 13263: 0x671F, - 13264: 0x6B3A, - 13265: 0x6816, - 13266: 0x621A, - 13267: 0x59BB, - 13268: 0x4E03, - 13269: 0x51C4, - 13270: 0x6F06, - 13271: 0x67D2, - 13272: 0x6C8F, - 13273: 0x5176, - 13274: 0x68CB, - 13275: 0x5947, - 13276: 0x6B67, - 13277: 0x7566, - 13278: 0x5D0E, - 13279: 0x8110, - 13280: 0x9F50, - 13281: 0x65D7, - 13282: 0x7948, - 13283: 0x7941, - 13284: 0x9A91, - 13285: 0x8D77, - 13286: 0x5C82, - 13287: 0x4E5E, - 13288: 0x4F01, - 13289: 0x542F, - 13290: 0x5951, - 13291: 0x780C, - 13292: 0x5668, - 13293: 0x6C14, - 13294: 0x8FC4, - 13295: 0x5F03, - 13296: 0x6C7D, - 13297: 0x6CE3, - 13298: 0x8BAB, - 13299: 0x6390, - 13300: 0x833E, - 13301: 0x833F, - 13302: 0x8341, - 13303: 0x8342, - 13304: 0x8344, - 13305: 0x8345, - 13306: 0x8348, - 13307: 0x834A, - 13308: 0x834B, - 13309: 0x834C, - 13310: 0x834D, - 13311: 0x834E, - 13312: 0x8353, - 13313: 0x8355, - 13314: 0x8356, - 13315: 0x8357, - 13316: 0x8358, - 13317: 0x8359, - 13318: 0x835D, - 13319: 0x8362, - 13320: 0x8370, - 13321: 0x8371, - 13322: 0x8372, - 13323: 0x8373, - 13324: 0x8374, - 13325: 0x8375, - 13326: 0x8376, - 13327: 0x8379, - 13328: 0x837A, - 13329: 0x837E, - 13330: 0x837F, - 13331: 0x8380, - 13332: 0x8381, - 13333: 0x8382, - 13334: 0x8383, - 13335: 0x8384, - 13336: 0x8387, - 13337: 0x8388, - 13338: 0x838A, - 13339: 0x838B, - 13340: 0x838C, - 13341: 0x838D, - 13342: 0x838F, - 13343: 0x8390, - 13344: 0x8391, - 13345: 0x8394, - 13346: 0x8395, - 13347: 0x8396, - 13348: 0x8397, - 13349: 0x8399, - 13350: 0x839A, - 13351: 0x839D, - 13352: 0x839F, - 13353: 0x83A1, - 13354: 0x83A2, - 13355: 0x83A3, - 13356: 0x83A4, - 13357: 0x83A5, - 13358: 0x83A6, - 13359: 0x83A7, - 13360: 0x83AC, - 13361: 0x83AD, - 13362: 0x83AE, - 13363: 0x83AF, - 13364: 0x83B5, - 13365: 0x83BB, - 13366: 0x83BE, - 13367: 0x83BF, - 13368: 0x83C2, - 13369: 0x83C3, - 13370: 0x83C4, - 13371: 0x83C6, - 13372: 0x83C8, - 13373: 0x83C9, - 13374: 0x83CB, - 13375: 0x83CD, - 13376: 0x83CE, - 13377: 0x83D0, - 13378: 0x83D1, - 13379: 0x83D2, - 13380: 0x83D3, - 13381: 0x83D5, - 13382: 0x83D7, - 13383: 0x83D9, - 13384: 0x83DA, - 13385: 0x83DB, - 13386: 0x83DE, - 13387: 0x83E2, - 13388: 0x83E3, - 13389: 0x83E4, - 13390: 0x83E6, - 13391: 0x83E7, - 13392: 0x83E8, - 13393: 0x83EB, - 13394: 0x83EC, - 13395: 0x83ED, - 13396: 0x6070, - 13397: 0x6D3D, - 13398: 0x7275, - 13399: 0x6266, - 13400: 0x948E, - 13401: 0x94C5, - 13402: 0x5343, - 13403: 0x8FC1, - 13404: 0x7B7E, - 13405: 0x4EDF, - 13406: 0x8C26, - 13407: 0x4E7E, - 13408: 0x9ED4, - 13409: 0x94B1, - 13410: 0x94B3, - 13411: 0x524D, - 13412: 0x6F5C, - 13413: 0x9063, - 13414: 0x6D45, - 13415: 0x8C34, - 13416: 0x5811, - 13417: 0x5D4C, - 13418: 0x6B20, - 13419: 0x6B49, - 13420: 0x67AA, - 13421: 0x545B, - 13422: 0x8154, - 13423: 0x7F8C, - 13424: 0x5899, - 13425: 0x8537, - 13426: 0x5F3A, - 13427: 0x62A2, - 13428: 0x6A47, - 13429: 0x9539, - 13430: 0x6572, - 13431: 0x6084, - 13432: 0x6865, - 13433: 0x77A7, - 13434: 0x4E54, - 13435: 0x4FA8, - 13436: 0x5DE7, - 13437: 0x9798, - 13438: 0x64AC, - 13439: 0x7FD8, - 13440: 0x5CED, - 13441: 0x4FCF, - 13442: 0x7A8D, - 13443: 0x5207, - 13444: 0x8304, - 13445: 0x4E14, - 13446: 0x602F, - 13447: 0x7A83, - 13448: 0x94A6, - 13449: 0x4FB5, - 13450: 0x4EB2, - 13451: 0x79E6, - 13452: 0x7434, - 13453: 0x52E4, - 13454: 0x82B9, - 13455: 0x64D2, - 13456: 0x79BD, - 13457: 0x5BDD, - 13458: 0x6C81, - 13459: 0x9752, - 13460: 0x8F7B, - 13461: 0x6C22, - 13462: 0x503E, - 13463: 0x537F, - 13464: 0x6E05, - 13465: 0x64CE, - 13466: 0x6674, - 13467: 0x6C30, - 13468: 0x60C5, - 13469: 0x9877, - 13470: 0x8BF7, - 13471: 0x5E86, - 13472: 0x743C, - 13473: 0x7A77, - 13474: 0x79CB, - 13475: 0x4E18, - 13476: 0x90B1, - 13477: 0x7403, - 13478: 0x6C42, - 13479: 0x56DA, - 13480: 0x914B, - 13481: 0x6CC5, - 13482: 0x8D8B, - 13483: 0x533A, - 13484: 0x86C6, - 13485: 0x66F2, - 13486: 0x8EAF, - 13487: 0x5C48, - 13488: 0x9A71, - 13489: 0x6E20, - 13490: 0x83EE, - 13491: 0x83EF, - 13492: 0x83F3, - 13493: 0x83F4, - 13494: 0x83F5, - 13495: 0x83F6, - 13496: 0x83F7, - 13497: 0x83FA, - 13498: 0x83FB, - 13499: 0x83FC, - 13500: 0x83FE, - 13501: 0x83FF, - 13502: 0x8400, - 13503: 0x8402, - 13504: 0x8405, - 13505: 0x8407, - 13506: 0x8408, - 13507: 0x8409, - 13508: 0x840A, - 13509: 0x8410, - 13510: 0x8412, - 13511: 0x8413, - 13512: 0x8414, - 13513: 0x8415, - 13514: 0x8416, - 13515: 0x8417, - 13516: 0x8419, - 13517: 0x841A, - 13518: 0x841B, - 13519: 0x841E, - 13520: 0x841F, - 13521: 0x8420, - 13522: 0x8421, - 13523: 0x8422, - 13524: 0x8423, - 13525: 0x8429, - 13526: 0x842A, - 13527: 0x842B, - 13528: 0x842C, - 13529: 0x842D, - 13530: 0x842E, - 13531: 0x842F, - 13532: 0x8430, - 13533: 0x8432, - 13534: 0x8433, - 13535: 0x8434, - 13536: 0x8435, - 13537: 0x8436, - 13538: 0x8437, - 13539: 0x8439, - 13540: 0x843A, - 13541: 0x843B, - 13542: 0x843E, - 13543: 0x843F, - 13544: 0x8440, - 13545: 0x8441, - 13546: 0x8442, - 13547: 0x8443, - 13548: 0x8444, - 13549: 0x8445, - 13550: 0x8447, - 13551: 0x8448, - 13552: 0x8449, - 13553: 0x844A, - 13554: 0x844B, - 13555: 0x844C, - 13556: 0x844D, - 13557: 0x844E, - 13558: 0x844F, - 13559: 0x8450, - 13560: 0x8452, - 13561: 0x8453, - 13562: 0x8454, - 13563: 0x8455, - 13564: 0x8456, - 13565: 0x8458, - 13566: 0x845D, - 13567: 0x845E, - 13568: 0x845F, - 13569: 0x8460, - 13570: 0x8462, - 13571: 0x8464, - 13572: 0x8465, - 13573: 0x8466, - 13574: 0x8467, - 13575: 0x8468, - 13576: 0x846A, - 13577: 0x846E, - 13578: 0x846F, - 13579: 0x8470, - 13580: 0x8472, - 13581: 0x8474, - 13582: 0x8477, - 13583: 0x8479, - 13584: 0x847B, - 13585: 0x847C, - 13586: 0x53D6, - 13587: 0x5A36, - 13588: 0x9F8B, - 13589: 0x8DA3, - 13590: 0x53BB, - 13591: 0x5708, - 13592: 0x98A7, - 13593: 0x6743, - 13594: 0x919B, - 13595: 0x6CC9, - 13596: 0x5168, - 13597: 0x75CA, - 13598: 0x62F3, - 13599: 0x72AC, - 13600: 0x5238, - 13601: 0x529D, - 13602: 0x7F3A, - 13603: 0x7094, - 13604: 0x7638, - 13605: 0x5374, - 13606: 0x9E4A, - 13607: 0x69B7, - 13608: 0x786E, - 13609: 0x96C0, - 13610: 0x88D9, - 13611: 0x7FA4, - 13612: 0x7136, - 13613: 0x71C3, - 13614: 0x5189, - 13615: 0x67D3, - 13616: 0x74E4, - 13617: 0x58E4, - 13618: 0x6518, - 13619: 0x56B7, - 13620: 0x8BA9, - 13621: 0x9976, - 13622: 0x6270, - 13623: 0x7ED5, - 13624: 0x60F9, - 13625: 0x70ED, - 13626: 0x58EC, - 13627: 0x4EC1, - 13628: 0x4EBA, - 13629: 0x5FCD, - 13630: 0x97E7, - 13631: 0x4EFB, - 13632: 0x8BA4, - 13633: 0x5203, - 13634: 0x598A, - 13635: 0x7EAB, - 13636: 0x6254, - 13637: 0x4ECD, - 13638: 0x65E5, - 13639: 0x620E, - 13640: 0x8338, - 13641: 0x84C9, - 13642: 0x8363, - 13643: 0x878D, - 13644: 0x7194, - 13645: 0x6EB6, - 13646: 0x5BB9, - 13647: 0x7ED2, - 13648: 0x5197, - 13649: 0x63C9, - 13650: 0x67D4, - 13651: 0x8089, - 13652: 0x8339, - 13653: 0x8815, - 13654: 0x5112, - 13655: 0x5B7A, - 13656: 0x5982, - 13657: 0x8FB1, - 13658: 0x4E73, - 13659: 0x6C5D, - 13660: 0x5165, - 13661: 0x8925, - 13662: 0x8F6F, - 13663: 0x962E, - 13664: 0x854A, - 13665: 0x745E, - 13666: 0x9510, - 13667: 0x95F0, - 13668: 0x6DA6, - 13669: 0x82E5, - 13670: 0x5F31, - 13671: 0x6492, - 13672: 0x6D12, - 13673: 0x8428, - 13674: 0x816E, - 13675: 0x9CC3, - 13676: 0x585E, - 13677: 0x8D5B, - 13678: 0x4E09, - 13679: 0x53C1, - 13680: 0x847D, - 13681: 0x847E, - 13682: 0x847F, - 13683: 0x8480, - 13684: 0x8481, - 13685: 0x8483, - 13686: 0x8484, - 13687: 0x8485, - 13688: 0x8486, - 13689: 0x848A, - 13690: 0x848D, - 13691: 0x848F, - 13692: 0x8490, - 13693: 0x8491, - 13694: 0x8492, - 13695: 0x8493, - 13696: 0x8494, - 13697: 0x8495, - 13698: 0x8496, - 13699: 0x8498, - 13700: 0x849A, - 13701: 0x849B, - 13702: 0x849D, - 13703: 0x849E, - 13704: 0x849F, - 13705: 0x84A0, - 13706: 0x84A2, - 13707: 0x84A3, - 13708: 0x84A4, - 13709: 0x84A5, - 13710: 0x84A6, - 13711: 0x84A7, - 13712: 0x84A8, - 13713: 0x84A9, - 13714: 0x84AA, - 13715: 0x84AB, - 13716: 0x84AC, - 13717: 0x84AD, - 13718: 0x84AE, - 13719: 0x84B0, - 13720: 0x84B1, - 13721: 0x84B3, - 13722: 0x84B5, - 13723: 0x84B6, - 13724: 0x84B7, - 13725: 0x84BB, - 13726: 0x84BC, - 13727: 0x84BE, - 13728: 0x84C0, - 13729: 0x84C2, - 13730: 0x84C3, - 13731: 0x84C5, - 13732: 0x84C6, - 13733: 0x84C7, - 13734: 0x84C8, - 13735: 0x84CB, - 13736: 0x84CC, - 13737: 0x84CE, - 13738: 0x84CF, - 13739: 0x84D2, - 13740: 0x84D4, - 13741: 0x84D5, - 13742: 0x84D7, - 13743: 0x84D8, - 13744: 0x84D9, - 13745: 0x84DA, - 13746: 0x84DB, - 13747: 0x84DC, - 13748: 0x84DE, - 13749: 0x84E1, - 13750: 0x84E2, - 13751: 0x84E4, - 13752: 0x84E7, - 13753: 0x84E8, - 13754: 0x84E9, - 13755: 0x84EA, - 13756: 0x84EB, - 13757: 0x84ED, - 13758: 0x84EE, - 13759: 0x84EF, - 13760: 0x84F1, - 13761: 0x84F2, - 13762: 0x84F3, - 13763: 0x84F4, - 13764: 0x84F5, - 13765: 0x84F6, - 13766: 0x84F7, - 13767: 0x84F8, - 13768: 0x84F9, - 13769: 0x84FA, - 13770: 0x84FB, - 13771: 0x84FD, - 13772: 0x84FE, - 13773: 0x8500, - 13774: 0x8501, - 13775: 0x8502, - 13776: 0x4F1E, - 13777: 0x6563, - 13778: 0x6851, - 13779: 0x55D3, - 13780: 0x4E27, - 13781: 0x6414, - 13782: 0x9A9A, - 13783: 0x626B, - 13784: 0x5AC2, - 13785: 0x745F, - 13786: 0x8272, - 13787: 0x6DA9, - 13788: 0x68EE, - 13789: 0x50E7, - 13790: 0x838E, - 13791: 0x7802, - 13792: 0x6740, - 13793: 0x5239, - 13794: 0x6C99, - 13795: 0x7EB1, - 13796: 0x50BB, - 13797: 0x5565, - 13798: 0x715E, - 13799: 0x7B5B, - 13800: 0x6652, - 13801: 0x73CA, - 13802: 0x82EB, - 13803: 0x6749, - 13804: 0x5C71, - 13805: 0x5220, - 13806: 0x717D, - 13807: 0x886B, - 13808: 0x95EA, - 13809: 0x9655, - 13810: 0x64C5, - 13811: 0x8D61, - 13812: 0x81B3, - 13813: 0x5584, - 13814: 0x6C55, - 13815: 0x6247, - 13816: 0x7F2E, - 13817: 0x5892, - 13818: 0x4F24, - 13819: 0x5546, - 13820: 0x8D4F, - 13821: 0x664C, - 13822: 0x4E0A, - 13823: 0x5C1A, - 13824: 0x88F3, - 13825: 0x68A2, - 13826: 0x634E, - 13827: 0x7A0D, - 13828: 0x70E7, - 13829: 0x828D, - 13830: 0x52FA, - 13831: 0x97F6, - 13832: 0x5C11, - 13833: 0x54E8, - 13834: 0x90B5, - 13835: 0x7ECD, - 13836: 0x5962, - 13837: 0x8D4A, - 13838: 0x86C7, - 13839: 0x820C, - 13840: 0x820D, - 13841: 0x8D66, - 13842: 0x6444, - 13843: 0x5C04, - 13844: 0x6151, - 13845: 0x6D89, - 13846: 0x793E, - 13847: 0x8BBE, - 13848: 0x7837, - 13849: 0x7533, - 13850: 0x547B, - 13851: 0x4F38, - 13852: 0x8EAB, - 13853: 0x6DF1, - 13854: 0x5A20, - 13855: 0x7EC5, - 13856: 0x795E, - 13857: 0x6C88, - 13858: 0x5BA1, - 13859: 0x5A76, - 13860: 0x751A, - 13861: 0x80BE, - 13862: 0x614E, - 13863: 0x6E17, - 13864: 0x58F0, - 13865: 0x751F, - 13866: 0x7525, - 13867: 0x7272, - 13868: 0x5347, - 13869: 0x7EF3, - 13870: 0x8503, - 13871: 0x8504, - 13872: 0x8505, - 13873: 0x8506, - 13874: 0x8507, - 13875: 0x8508, - 13876: 0x8509, - 13877: 0x850A, - 13878: 0x850B, - 13879: 0x850D, - 13880: 0x850E, - 13881: 0x850F, - 13882: 0x8510, - 13883: 0x8512, - 13884: 0x8514, - 13885: 0x8515, - 13886: 0x8516, - 13887: 0x8518, - 13888: 0x8519, - 13889: 0x851B, - 13890: 0x851C, - 13891: 0x851D, - 13892: 0x851E, - 13893: 0x8520, - 13894: 0x8522, - 13895: 0x8523, - 13896: 0x8524, - 13897: 0x8525, - 13898: 0x8526, - 13899: 0x8527, - 13900: 0x8528, - 13901: 0x8529, - 13902: 0x852A, - 13903: 0x852D, - 13904: 0x852E, - 13905: 0x852F, - 13906: 0x8530, - 13907: 0x8531, - 13908: 0x8532, - 13909: 0x8533, - 13910: 0x8534, - 13911: 0x8535, - 13912: 0x8536, - 13913: 0x853E, - 13914: 0x853F, - 13915: 0x8540, - 13916: 0x8541, - 13917: 0x8542, - 13918: 0x8544, - 13919: 0x8545, - 13920: 0x8546, - 13921: 0x8547, - 13922: 0x854B, - 13923: 0x854C, - 13924: 0x854D, - 13925: 0x854E, - 13926: 0x854F, - 13927: 0x8550, - 13928: 0x8551, - 13929: 0x8552, - 13930: 0x8553, - 13931: 0x8554, - 13932: 0x8555, - 13933: 0x8557, - 13934: 0x8558, - 13935: 0x855A, - 13936: 0x855B, - 13937: 0x855C, - 13938: 0x855D, - 13939: 0x855F, - 13940: 0x8560, - 13941: 0x8561, - 13942: 0x8562, - 13943: 0x8563, - 13944: 0x8565, - 13945: 0x8566, - 13946: 0x8567, - 13947: 0x8569, - 13948: 0x856A, - 13949: 0x856B, - 13950: 0x856C, - 13951: 0x856D, - 13952: 0x856E, - 13953: 0x856F, - 13954: 0x8570, - 13955: 0x8571, - 13956: 0x8573, - 13957: 0x8575, - 13958: 0x8576, - 13959: 0x8577, - 13960: 0x8578, - 13961: 0x857C, - 13962: 0x857D, - 13963: 0x857F, - 13964: 0x8580, - 13965: 0x8581, - 13966: 0x7701, - 13967: 0x76DB, - 13968: 0x5269, - 13969: 0x80DC, - 13970: 0x5723, - 13971: 0x5E08, - 13972: 0x5931, - 13973: 0x72EE, - 13974: 0x65BD, - 13975: 0x6E7F, - 13976: 0x8BD7, - 13977: 0x5C38, - 13978: 0x8671, - 13979: 0x5341, - 13980: 0x77F3, - 13981: 0x62FE, - 13982: 0x65F6, - 13983: 0x4EC0, - 13984: 0x98DF, - 13985: 0x8680, - 13986: 0x5B9E, - 13987: 0x8BC6, - 13988: 0x53F2, - 13989: 0x77E2, - 13990: 0x4F7F, - 13991: 0x5C4E, - 13992: 0x9A76, - 13993: 0x59CB, - 13994: 0x5F0F, - 13995: 0x793A, - 13996: 0x58EB, - 13997: 0x4E16, - 13998: 0x67FF, - 13999: 0x4E8B, - 14000: 0x62ED, - 14001: 0x8A93, - 14002: 0x901D, - 14003: 0x52BF, - 14004: 0x662F, - 14005: 0x55DC, - 14006: 0x566C, - 14007: 0x9002, - 14008: 0x4ED5, - 14009: 0x4F8D, - 14010: 0x91CA, - 14011: 0x9970, - 14012: 0x6C0F, - 14013: 0x5E02, - 14014: 0x6043, - 14015: 0x5BA4, - 14016: 0x89C6, - 14017: 0x8BD5, - 14018: 0x6536, - 14019: 0x624B, - 14020: 0x9996, - 14021: 0x5B88, - 14022: 0x5BFF, - 14023: 0x6388, - 14024: 0x552E, - 14025: 0x53D7, - 14026: 0x7626, - 14027: 0x517D, - 14028: 0x852C, - 14029: 0x67A2, - 14030: 0x68B3, - 14031: 0x6B8A, - 14032: 0x6292, - 14033: 0x8F93, - 14034: 0x53D4, - 14035: 0x8212, - 14036: 0x6DD1, - 14037: 0x758F, - 14038: 0x4E66, - 14039: 0x8D4E, - 14040: 0x5B70, - 14041: 0x719F, - 14042: 0x85AF, - 14043: 0x6691, - 14044: 0x66D9, - 14045: 0x7F72, - 14046: 0x8700, - 14047: 0x9ECD, - 14048: 0x9F20, - 14049: 0x5C5E, - 14050: 0x672F, - 14051: 0x8FF0, - 14052: 0x6811, - 14053: 0x675F, - 14054: 0x620D, - 14055: 0x7AD6, - 14056: 0x5885, - 14057: 0x5EB6, - 14058: 0x6570, - 14059: 0x6F31, - 14060: 0x8582, - 14061: 0x8583, - 14062: 0x8586, - 14063: 0x8588, - 14064: 0x8589, - 14065: 0x858A, - 14066: 0x858B, - 14067: 0x858C, - 14068: 0x858D, - 14069: 0x858E, - 14070: 0x8590, - 14071: 0x8591, - 14072: 0x8592, - 14073: 0x8593, - 14074: 0x8594, - 14075: 0x8595, - 14076: 0x8596, - 14077: 0x8597, - 14078: 0x8598, - 14079: 0x8599, - 14080: 0x859A, - 14081: 0x859D, - 14082: 0x859E, - 14083: 0x859F, - 14084: 0x85A0, - 14085: 0x85A1, - 14086: 0x85A2, - 14087: 0x85A3, - 14088: 0x85A5, - 14089: 0x85A6, - 14090: 0x85A7, - 14091: 0x85A9, - 14092: 0x85AB, - 14093: 0x85AC, - 14094: 0x85AD, - 14095: 0x85B1, - 14096: 0x85B2, - 14097: 0x85B3, - 14098: 0x85B4, - 14099: 0x85B5, - 14100: 0x85B6, - 14101: 0x85B8, - 14102: 0x85BA, - 14103: 0x85BB, - 14104: 0x85BC, - 14105: 0x85BD, - 14106: 0x85BE, - 14107: 0x85BF, - 14108: 0x85C0, - 14109: 0x85C2, - 14110: 0x85C3, - 14111: 0x85C4, - 14112: 0x85C5, - 14113: 0x85C6, - 14114: 0x85C7, - 14115: 0x85C8, - 14116: 0x85CA, - 14117: 0x85CB, - 14118: 0x85CC, - 14119: 0x85CD, - 14120: 0x85CE, - 14121: 0x85D1, - 14122: 0x85D2, - 14123: 0x85D4, - 14124: 0x85D6, - 14125: 0x85D7, - 14126: 0x85D8, - 14127: 0x85D9, - 14128: 0x85DA, - 14129: 0x85DB, - 14130: 0x85DD, - 14131: 0x85DE, - 14132: 0x85DF, - 14133: 0x85E0, - 14134: 0x85E1, - 14135: 0x85E2, - 14136: 0x85E3, - 14137: 0x85E5, - 14138: 0x85E6, - 14139: 0x85E7, - 14140: 0x85E8, - 14141: 0x85EA, - 14142: 0x85EB, - 14143: 0x85EC, - 14144: 0x85ED, - 14145: 0x85EE, - 14146: 0x85EF, - 14147: 0x85F0, - 14148: 0x85F1, - 14149: 0x85F2, - 14150: 0x85F3, - 14151: 0x85F4, - 14152: 0x85F5, - 14153: 0x85F6, - 14154: 0x85F7, - 14155: 0x85F8, - 14156: 0x6055, - 14157: 0x5237, - 14158: 0x800D, - 14159: 0x6454, - 14160: 0x8870, - 14161: 0x7529, - 14162: 0x5E05, - 14163: 0x6813, - 14164: 0x62F4, - 14165: 0x971C, - 14166: 0x53CC, - 14167: 0x723D, - 14168: 0x8C01, - 14169: 0x6C34, - 14170: 0x7761, - 14171: 0x7A0E, - 14172: 0x542E, - 14173: 0x77AC, - 14174: 0x987A, - 14175: 0x821C, - 14176: 0x8BF4, - 14177: 0x7855, - 14178: 0x6714, - 14179: 0x70C1, - 14180: 0x65AF, - 14181: 0x6495, - 14182: 0x5636, - 14183: 0x601D, - 14184: 0x79C1, - 14185: 0x53F8, - 14186: 0x4E1D, - 14187: 0x6B7B, - 14188: 0x8086, - 14189: 0x5BFA, - 14190: 0x55E3, - 14191: 0x56DB, - 14192: 0x4F3A, - 14193: 0x4F3C, - 14194: 0x9972, - 14195: 0x5DF3, - 14196: 0x677E, - 14197: 0x8038, - 14198: 0x6002, - 14199: 0x9882, - 14200: 0x9001, - 14201: 0x5B8B, - 14202: 0x8BBC, - 14203: 0x8BF5, - 14204: 0x641C, - 14205: 0x8258, - 14206: 0x64DE, - 14207: 0x55FD, - 14208: 0x82CF, - 14209: 0x9165, - 14210: 0x4FD7, - 14211: 0x7D20, - 14212: 0x901F, - 14213: 0x7C9F, - 14214: 0x50F3, - 14215: 0x5851, - 14216: 0x6EAF, - 14217: 0x5BBF, - 14218: 0x8BC9, - 14219: 0x8083, - 14220: 0x9178, - 14221: 0x849C, - 14222: 0x7B97, - 14223: 0x867D, - 14224: 0x968B, - 14225: 0x968F, - 14226: 0x7EE5, - 14227: 0x9AD3, - 14228: 0x788E, - 14229: 0x5C81, - 14230: 0x7A57, - 14231: 0x9042, - 14232: 0x96A7, - 14233: 0x795F, - 14234: 0x5B59, - 14235: 0x635F, - 14236: 0x7B0B, - 14237: 0x84D1, - 14238: 0x68AD, - 14239: 0x5506, - 14240: 0x7F29, - 14241: 0x7410, - 14242: 0x7D22, - 14243: 0x9501, - 14244: 0x6240, - 14245: 0x584C, - 14246: 0x4ED6, - 14247: 0x5B83, - 14248: 0x5979, - 14249: 0x5854, - 14250: 0x85F9, - 14251: 0x85FA, - 14252: 0x85FC, - 14253: 0x85FD, - 14254: 0x85FE, - 14255: 0x8600, - 14256: 0x8601, - 14257: 0x8602, - 14258: 0x8603, - 14259: 0x8604, - 14260: 0x8606, - 14261: 0x8607, - 14262: 0x8608, - 14263: 0x8609, - 14264: 0x860A, - 14265: 0x860B, - 14266: 0x860C, - 14267: 0x860D, - 14268: 0x860E, - 14269: 0x860F, - 14270: 0x8610, - 14271: 0x8612, - 14272: 0x8613, - 14273: 0x8614, - 14274: 0x8615, - 14275: 0x8617, - 14276: 0x8618, - 14277: 0x8619, - 14278: 0x861A, - 14279: 0x861B, - 14280: 0x861C, - 14281: 0x861D, - 14282: 0x861E, - 14283: 0x861F, - 14284: 0x8620, - 14285: 0x8621, - 14286: 0x8622, - 14287: 0x8623, - 14288: 0x8624, - 14289: 0x8625, - 14290: 0x8626, - 14291: 0x8628, - 14292: 0x862A, - 14293: 0x862B, - 14294: 0x862C, - 14295: 0x862D, - 14296: 0x862E, - 14297: 0x862F, - 14298: 0x8630, - 14299: 0x8631, - 14300: 0x8632, - 14301: 0x8633, - 14302: 0x8634, - 14303: 0x8635, - 14304: 0x8636, - 14305: 0x8637, - 14306: 0x8639, - 14307: 0x863A, - 14308: 0x863B, - 14309: 0x863D, - 14310: 0x863E, - 14311: 0x863F, - 14312: 0x8640, - 14313: 0x8641, - 14314: 0x8642, - 14315: 0x8643, - 14316: 0x8644, - 14317: 0x8645, - 14318: 0x8646, - 14319: 0x8647, - 14320: 0x8648, - 14321: 0x8649, - 14322: 0x864A, - 14323: 0x864B, - 14324: 0x864C, - 14325: 0x8652, - 14326: 0x8653, - 14327: 0x8655, - 14328: 0x8656, - 14329: 0x8657, - 14330: 0x8658, - 14331: 0x8659, - 14332: 0x865B, - 14333: 0x865C, - 14334: 0x865D, - 14335: 0x865F, - 14336: 0x8660, - 14337: 0x8661, - 14338: 0x8663, - 14339: 0x8664, - 14340: 0x8665, - 14341: 0x8666, - 14342: 0x8667, - 14343: 0x8668, - 14344: 0x8669, - 14345: 0x866A, - 14346: 0x736D, - 14347: 0x631E, - 14348: 0x8E4B, - 14349: 0x8E0F, - 14350: 0x80CE, - 14351: 0x82D4, - 14352: 0x62AC, - 14353: 0x53F0, - 14354: 0x6CF0, - 14355: 0x915E, - 14356: 0x592A, - 14357: 0x6001, - 14358: 0x6C70, - 14359: 0x574D, - 14360: 0x644A, - 14361: 0x8D2A, - 14362: 0x762B, - 14363: 0x6EE9, - 14364: 0x575B, - 14365: 0x6A80, - 14366: 0x75F0, - 14367: 0x6F6D, - 14368: 0x8C2D, - 14369: 0x8C08, - 14370: 0x5766, - 14371: 0x6BEF, - 14372: 0x8892, - 14373: 0x78B3, - 14374: 0x63A2, - 14375: 0x53F9, - 14376: 0x70AD, - 14377: 0x6C64, - 14378: 0x5858, - 14379: 0x642A, - 14380: 0x5802, - 14381: 0x68E0, - 14382: 0x819B, - 14383: 0x5510, - 14384: 0x7CD6, - 14385: 0x5018, - 14386: 0x8EBA, - 14387: 0x6DCC, - 14388: 0x8D9F, - 14389: 0x70EB, - 14390: 0x638F, - 14391: 0x6D9B, - 14392: 0x6ED4, - 14393: 0x7EE6, - 14394: 0x8404, - 14395: 0x6843, - 14396: 0x9003, - 14397: 0x6DD8, - 14398: 0x9676, - 14399: 0x8BA8, - 14400: 0x5957, - 14401: 0x7279, - 14402: 0x85E4, - 14403: 0x817E, - 14404: 0x75BC, - 14405: 0x8A8A, - 14406: 0x68AF, - 14407: 0x5254, - 14408: 0x8E22, - 14409: 0x9511, - 14410: 0x63D0, - 14411: 0x9898, - 14412: 0x8E44, - 14413: 0x557C, - 14414: 0x4F53, - 14415: 0x66FF, - 14416: 0x568F, - 14417: 0x60D5, - 14418: 0x6D95, - 14419: 0x5243, - 14420: 0x5C49, - 14421: 0x5929, - 14422: 0x6DFB, - 14423: 0x586B, - 14424: 0x7530, - 14425: 0x751C, - 14426: 0x606C, - 14427: 0x8214, - 14428: 0x8146, - 14429: 0x6311, - 14430: 0x6761, - 14431: 0x8FE2, - 14432: 0x773A, - 14433: 0x8DF3, - 14434: 0x8D34, - 14435: 0x94C1, - 14436: 0x5E16, - 14437: 0x5385, - 14438: 0x542C, - 14439: 0x70C3, - 14440: 0x866D, - 14441: 0x866F, - 14442: 0x8670, - 14443: 0x8672, - 14444: 0x8673, - 14445: 0x8674, - 14446: 0x8675, - 14447: 0x8676, - 14448: 0x8677, - 14449: 0x8678, - 14450: 0x8683, - 14451: 0x8684, - 14452: 0x8685, - 14453: 0x8686, - 14454: 0x8687, - 14455: 0x8688, - 14456: 0x8689, - 14457: 0x868E, - 14458: 0x868F, - 14459: 0x8690, - 14460: 0x8691, - 14461: 0x8692, - 14462: 0x8694, - 14463: 0x8696, - 14464: 0x8697, - 14465: 0x8698, - 14466: 0x8699, - 14467: 0x869A, - 14468: 0x869B, - 14469: 0x869E, - 14470: 0x869F, - 14471: 0x86A0, - 14472: 0x86A1, - 14473: 0x86A2, - 14474: 0x86A5, - 14475: 0x86A6, - 14476: 0x86AB, - 14477: 0x86AD, - 14478: 0x86AE, - 14479: 0x86B2, - 14480: 0x86B3, - 14481: 0x86B7, - 14482: 0x86B8, - 14483: 0x86B9, - 14484: 0x86BB, - 14485: 0x86BC, - 14486: 0x86BD, - 14487: 0x86BE, - 14488: 0x86BF, - 14489: 0x86C1, - 14490: 0x86C2, - 14491: 0x86C3, - 14492: 0x86C5, - 14493: 0x86C8, - 14494: 0x86CC, - 14495: 0x86CD, - 14496: 0x86D2, - 14497: 0x86D3, - 14498: 0x86D5, - 14499: 0x86D6, - 14500: 0x86D7, - 14501: 0x86DA, - 14502: 0x86DC, - 14503: 0x86DD, - 14504: 0x86E0, - 14505: 0x86E1, - 14506: 0x86E2, - 14507: 0x86E3, - 14508: 0x86E5, - 14509: 0x86E6, - 14510: 0x86E7, - 14511: 0x86E8, - 14512: 0x86EA, - 14513: 0x86EB, - 14514: 0x86EC, - 14515: 0x86EF, - 14516: 0x86F5, - 14517: 0x86F6, - 14518: 0x86F7, - 14519: 0x86FA, - 14520: 0x86FB, - 14521: 0x86FC, - 14522: 0x86FD, - 14523: 0x86FF, - 14524: 0x8701, - 14525: 0x8704, - 14526: 0x8705, - 14527: 0x8706, - 14528: 0x870B, - 14529: 0x870C, - 14530: 0x870E, - 14531: 0x870F, - 14532: 0x8710, - 14533: 0x8711, - 14534: 0x8714, - 14535: 0x8716, - 14536: 0x6C40, - 14537: 0x5EF7, - 14538: 0x505C, - 14539: 0x4EAD, - 14540: 0x5EAD, - 14541: 0x633A, - 14542: 0x8247, - 14543: 0x901A, - 14544: 0x6850, - 14545: 0x916E, - 14546: 0x77B3, - 14547: 0x540C, - 14548: 0x94DC, - 14549: 0x5F64, - 14550: 0x7AE5, - 14551: 0x6876, - 14552: 0x6345, - 14553: 0x7B52, - 14554: 0x7EDF, - 14555: 0x75DB, - 14556: 0x5077, - 14557: 0x6295, - 14558: 0x5934, - 14559: 0x900F, - 14560: 0x51F8, - 14561: 0x79C3, - 14562: 0x7A81, - 14563: 0x56FE, - 14564: 0x5F92, - 14565: 0x9014, - 14566: 0x6D82, - 14567: 0x5C60, - 14568: 0x571F, - 14569: 0x5410, - 14570: 0x5154, - 14571: 0x6E4D, - 14572: 0x56E2, - 14573: 0x63A8, - 14574: 0x9893, - 14575: 0x817F, - 14576: 0x8715, - 14577: 0x892A, - 14578: 0x9000, - 14579: 0x541E, - 14580: 0x5C6F, - 14581: 0x81C0, - 14582: 0x62D6, - 14583: 0x6258, - 14584: 0x8131, - 14585: 0x9E35, - 14586: 0x9640, - 14587: 0x9A6E, - 14588: 0x9A7C, - 14589: 0x692D, - 14590: 0x59A5, - 14591: 0x62D3, - 14592: 0x553E, - 14593: 0x6316, - 14594: 0x54C7, - 14595: 0x86D9, - 14596: 0x6D3C, - 14597: 0x5A03, - 14598: 0x74E6, - 14599: 0x889C, - 14600: 0x6B6A, - 14601: 0x5916, - 14602: 0x8C4C, - 14603: 0x5F2F, - 14604: 0x6E7E, - 14605: 0x73A9, - 14606: 0x987D, - 14607: 0x4E38, - 14608: 0x70F7, - 14609: 0x5B8C, - 14610: 0x7897, - 14611: 0x633D, - 14612: 0x665A, - 14613: 0x7696, - 14614: 0x60CB, - 14615: 0x5B9B, - 14616: 0x5A49, - 14617: 0x4E07, - 14618: 0x8155, - 14619: 0x6C6A, - 14620: 0x738B, - 14621: 0x4EA1, - 14622: 0x6789, - 14623: 0x7F51, - 14624: 0x5F80, - 14625: 0x65FA, - 14626: 0x671B, - 14627: 0x5FD8, - 14628: 0x5984, - 14629: 0x5A01, - 14630: 0x8719, - 14631: 0x871B, - 14632: 0x871D, - 14633: 0x871F, - 14634: 0x8720, - 14635: 0x8724, - 14636: 0x8726, - 14637: 0x8727, - 14638: 0x8728, - 14639: 0x872A, - 14640: 0x872B, - 14641: 0x872C, - 14642: 0x872D, - 14643: 0x872F, - 14644: 0x8730, - 14645: 0x8732, - 14646: 0x8733, - 14647: 0x8735, - 14648: 0x8736, - 14649: 0x8738, - 14650: 0x8739, - 14651: 0x873A, - 14652: 0x873C, - 14653: 0x873D, - 14654: 0x8740, - 14655: 0x8741, - 14656: 0x8742, - 14657: 0x8743, - 14658: 0x8744, - 14659: 0x8745, - 14660: 0x8746, - 14661: 0x874A, - 14662: 0x874B, - 14663: 0x874D, - 14664: 0x874F, - 14665: 0x8750, - 14666: 0x8751, - 14667: 0x8752, - 14668: 0x8754, - 14669: 0x8755, - 14670: 0x8756, - 14671: 0x8758, - 14672: 0x875A, - 14673: 0x875B, - 14674: 0x875C, - 14675: 0x875D, - 14676: 0x875E, - 14677: 0x875F, - 14678: 0x8761, - 14679: 0x8762, - 14680: 0x8766, - 14681: 0x8767, - 14682: 0x8768, - 14683: 0x8769, - 14684: 0x876A, - 14685: 0x876B, - 14686: 0x876C, - 14687: 0x876D, - 14688: 0x876F, - 14689: 0x8771, - 14690: 0x8772, - 14691: 0x8773, - 14692: 0x8775, - 14693: 0x8777, - 14694: 0x8778, - 14695: 0x8779, - 14696: 0x877A, - 14697: 0x877F, - 14698: 0x8780, - 14699: 0x8781, - 14700: 0x8784, - 14701: 0x8786, - 14702: 0x8787, - 14703: 0x8789, - 14704: 0x878A, - 14705: 0x878C, - 14706: 0x878E, - 14707: 0x878F, - 14708: 0x8790, - 14709: 0x8791, - 14710: 0x8792, - 14711: 0x8794, - 14712: 0x8795, - 14713: 0x8796, - 14714: 0x8798, - 14715: 0x8799, - 14716: 0x879A, - 14717: 0x879B, - 14718: 0x879C, - 14719: 0x879D, - 14720: 0x879E, - 14721: 0x87A0, - 14722: 0x87A1, - 14723: 0x87A2, - 14724: 0x87A3, - 14725: 0x87A4, - 14726: 0x5DCD, - 14727: 0x5FAE, - 14728: 0x5371, - 14729: 0x97E6, - 14730: 0x8FDD, - 14731: 0x6845, - 14732: 0x56F4, - 14733: 0x552F, - 14734: 0x60DF, - 14735: 0x4E3A, - 14736: 0x6F4D, - 14737: 0x7EF4, - 14738: 0x82C7, - 14739: 0x840E, - 14740: 0x59D4, - 14741: 0x4F1F, - 14742: 0x4F2A, - 14743: 0x5C3E, - 14744: 0x7EAC, - 14745: 0x672A, - 14746: 0x851A, - 14747: 0x5473, - 14748: 0x754F, - 14749: 0x80C3, - 14750: 0x5582, - 14751: 0x9B4F, - 14752: 0x4F4D, - 14753: 0x6E2D, - 14754: 0x8C13, - 14755: 0x5C09, - 14756: 0x6170, - 14757: 0x536B, - 14758: 0x761F, - 14759: 0x6E29, - 14760: 0x868A, - 14761: 0x6587, - 14762: 0x95FB, - 14763: 0x7EB9, - 14764: 0x543B, - 14765: 0x7A33, - 14766: 0x7D0A, - 14767: 0x95EE, - 14768: 0x55E1, - 14769: 0x7FC1, - 14770: 0x74EE, - 14771: 0x631D, - 14772: 0x8717, - 14773: 0x6DA1, - 14774: 0x7A9D, - 14775: 0x6211, - 14776: 0x65A1, - 14777: 0x5367, - 14778: 0x63E1, - 14779: 0x6C83, - 14780: 0x5DEB, - 14781: 0x545C, - 14782: 0x94A8, - 14783: 0x4E4C, - 14784: 0x6C61, - 14785: 0x8BEC, - 14786: 0x5C4B, - 14787: 0x65E0, - 14788: 0x829C, - 14789: 0x68A7, - 14790: 0x543E, - 14791: 0x5434, - 14792: 0x6BCB, - 14793: 0x6B66, - 14794: 0x4E94, - 14795: 0x6342, - 14796: 0x5348, - 14797: 0x821E, - 14798: 0x4F0D, - 14799: 0x4FAE, - 14800: 0x575E, - 14801: 0x620A, - 14802: 0x96FE, - 14803: 0x6664, - 14804: 0x7269, - 14805: 0x52FF, - 14806: 0x52A1, - 14807: 0x609F, - 14808: 0x8BEF, - 14809: 0x6614, - 14810: 0x7199, - 14811: 0x6790, - 14812: 0x897F, - 14813: 0x7852, - 14814: 0x77FD, - 14815: 0x6670, - 14816: 0x563B, - 14817: 0x5438, - 14818: 0x9521, - 14819: 0x727A, - 14820: 0x87A5, - 14821: 0x87A6, - 14822: 0x87A7, - 14823: 0x87A9, - 14824: 0x87AA, - 14825: 0x87AE, - 14826: 0x87B0, - 14827: 0x87B1, - 14828: 0x87B2, - 14829: 0x87B4, - 14830: 0x87B6, - 14831: 0x87B7, - 14832: 0x87B8, - 14833: 0x87B9, - 14834: 0x87BB, - 14835: 0x87BC, - 14836: 0x87BE, - 14837: 0x87BF, - 14838: 0x87C1, - 14839: 0x87C2, - 14840: 0x87C3, - 14841: 0x87C4, - 14842: 0x87C5, - 14843: 0x87C7, - 14844: 0x87C8, - 14845: 0x87C9, - 14846: 0x87CC, - 14847: 0x87CD, - 14848: 0x87CE, - 14849: 0x87CF, - 14850: 0x87D0, - 14851: 0x87D4, - 14852: 0x87D5, - 14853: 0x87D6, - 14854: 0x87D7, - 14855: 0x87D8, - 14856: 0x87D9, - 14857: 0x87DA, - 14858: 0x87DC, - 14859: 0x87DD, - 14860: 0x87DE, - 14861: 0x87DF, - 14862: 0x87E1, - 14863: 0x87E2, - 14864: 0x87E3, - 14865: 0x87E4, - 14866: 0x87E6, - 14867: 0x87E7, - 14868: 0x87E8, - 14869: 0x87E9, - 14870: 0x87EB, - 14871: 0x87EC, - 14872: 0x87ED, - 14873: 0x87EF, - 14874: 0x87F0, - 14875: 0x87F1, - 14876: 0x87F2, - 14877: 0x87F3, - 14878: 0x87F4, - 14879: 0x87F5, - 14880: 0x87F6, - 14881: 0x87F7, - 14882: 0x87F8, - 14883: 0x87FA, - 14884: 0x87FB, - 14885: 0x87FC, - 14886: 0x87FD, - 14887: 0x87FF, - 14888: 0x8800, - 14889: 0x8801, - 14890: 0x8802, - 14891: 0x8804, - 14892: 0x8805, - 14893: 0x8806, - 14894: 0x8807, - 14895: 0x8808, - 14896: 0x8809, - 14897: 0x880B, - 14898: 0x880C, - 14899: 0x880D, - 14900: 0x880E, - 14901: 0x880F, - 14902: 0x8810, - 14903: 0x8811, - 14904: 0x8812, - 14905: 0x8814, - 14906: 0x8817, - 14907: 0x8818, - 14908: 0x8819, - 14909: 0x881A, - 14910: 0x881C, - 14911: 0x881D, - 14912: 0x881E, - 14913: 0x881F, - 14914: 0x8820, - 14915: 0x8823, - 14916: 0x7A00, - 14917: 0x606F, - 14918: 0x5E0C, - 14919: 0x6089, - 14920: 0x819D, - 14921: 0x5915, - 14922: 0x60DC, - 14923: 0x7184, - 14924: 0x70EF, - 14925: 0x6EAA, - 14926: 0x6C50, - 14927: 0x7280, - 14928: 0x6A84, - 14929: 0x88AD, - 14930: 0x5E2D, - 14931: 0x4E60, - 14932: 0x5AB3, - 14933: 0x559C, - 14934: 0x94E3, - 14935: 0x6D17, - 14936: 0x7CFB, - 14937: 0x9699, - 14938: 0x620F, - 14939: 0x7EC6, - 14940: 0x778E, - 14941: 0x867E, - 14942: 0x5323, - 14943: 0x971E, - 14944: 0x8F96, - 14945: 0x6687, - 14946: 0x5CE1, - 14947: 0x4FA0, - 14948: 0x72ED, - 14949: 0x4E0B, - 14950: 0x53A6, - 14951: 0x590F, - 14952: 0x5413, - 14953: 0x6380, - 14954: 0x9528, - 14955: 0x5148, - 14956: 0x4ED9, - 14957: 0x9C9C, - 14958: 0x7EA4, - 14959: 0x54B8, - 14960: 0x8D24, - 14961: 0x8854, - 14962: 0x8237, - 14963: 0x95F2, - 14964: 0x6D8E, - 14965: 0x5F26, - 14966: 0x5ACC, - 14967: 0x663E, - 14968: 0x9669, - 14969: 0x73B0, - 14970: 0x732E, - 14971: 0x53BF, - 14972: 0x817A, - 14973: 0x9985, - 14974: 0x7FA1, - 14975: 0x5BAA, - 14976: 0x9677, - 14977: 0x9650, - 14978: 0x7EBF, - 14979: 0x76F8, - 14980: 0x53A2, - 14981: 0x9576, - 14982: 0x9999, - 14983: 0x7BB1, - 14984: 0x8944, - 14985: 0x6E58, - 14986: 0x4E61, - 14987: 0x7FD4, - 14988: 0x7965, - 14989: 0x8BE6, - 14990: 0x60F3, - 14991: 0x54CD, - 14992: 0x4EAB, - 14993: 0x9879, - 14994: 0x5DF7, - 14995: 0x6A61, - 14996: 0x50CF, - 14997: 0x5411, - 14998: 0x8C61, - 14999: 0x8427, - 15000: 0x785D, - 15001: 0x9704, - 15002: 0x524A, - 15003: 0x54EE, - 15004: 0x56A3, - 15005: 0x9500, - 15006: 0x6D88, - 15007: 0x5BB5, - 15008: 0x6DC6, - 15009: 0x6653, - 15010: 0x8824, - 15011: 0x8825, - 15012: 0x8826, - 15013: 0x8827, - 15014: 0x8828, - 15015: 0x8829, - 15016: 0x882A, - 15017: 0x882B, - 15018: 0x882C, - 15019: 0x882D, - 15020: 0x882E, - 15021: 0x882F, - 15022: 0x8830, - 15023: 0x8831, - 15024: 0x8833, - 15025: 0x8834, - 15026: 0x8835, - 15027: 0x8836, - 15028: 0x8837, - 15029: 0x8838, - 15030: 0x883A, - 15031: 0x883B, - 15032: 0x883D, - 15033: 0x883E, - 15034: 0x883F, - 15035: 0x8841, - 15036: 0x8842, - 15037: 0x8843, - 15038: 0x8846, - 15039: 0x8847, - 15040: 0x8848, - 15041: 0x8849, - 15042: 0x884A, - 15043: 0x884B, - 15044: 0x884E, - 15045: 0x884F, - 15046: 0x8850, - 15047: 0x8851, - 15048: 0x8852, - 15049: 0x8853, - 15050: 0x8855, - 15051: 0x8856, - 15052: 0x8858, - 15053: 0x885A, - 15054: 0x885B, - 15055: 0x885C, - 15056: 0x885D, - 15057: 0x885E, - 15058: 0x885F, - 15059: 0x8860, - 15060: 0x8866, - 15061: 0x8867, - 15062: 0x886A, - 15063: 0x886D, - 15064: 0x886F, - 15065: 0x8871, - 15066: 0x8873, - 15067: 0x8874, - 15068: 0x8875, - 15069: 0x8876, - 15070: 0x8878, - 15071: 0x8879, - 15072: 0x887A, - 15073: 0x887B, - 15074: 0x887C, - 15075: 0x8880, - 15076: 0x8883, - 15077: 0x8886, - 15078: 0x8887, - 15079: 0x8889, - 15080: 0x888A, - 15081: 0x888C, - 15082: 0x888E, - 15083: 0x888F, - 15084: 0x8890, - 15085: 0x8891, - 15086: 0x8893, - 15087: 0x8894, - 15088: 0x8895, - 15089: 0x8897, - 15090: 0x8898, - 15091: 0x8899, - 15092: 0x889A, - 15093: 0x889B, - 15094: 0x889D, - 15095: 0x889E, - 15096: 0x889F, - 15097: 0x88A0, - 15098: 0x88A1, - 15099: 0x88A3, - 15100: 0x88A5, - 15101: 0x88A6, - 15102: 0x88A7, - 15103: 0x88A8, - 15104: 0x88A9, - 15105: 0x88AA, - 15106: 0x5C0F, - 15107: 0x5B5D, - 15108: 0x6821, - 15109: 0x8096, - 15110: 0x5578, - 15111: 0x7B11, - 15112: 0x6548, - 15113: 0x6954, - 15114: 0x4E9B, - 15115: 0x6B47, - 15116: 0x874E, - 15117: 0x978B, - 15118: 0x534F, - 15119: 0x631F, - 15120: 0x643A, - 15121: 0x90AA, - 15122: 0x659C, - 15123: 0x80C1, - 15124: 0x8C10, - 15125: 0x5199, - 15126: 0x68B0, - 15127: 0x5378, - 15128: 0x87F9, - 15129: 0x61C8, - 15130: 0x6CC4, - 15131: 0x6CFB, - 15132: 0x8C22, - 15133: 0x5C51, - 15134: 0x85AA, - 15135: 0x82AF, - 15136: 0x950C, - 15137: 0x6B23, - 15138: 0x8F9B, - 15139: 0x65B0, - 15140: 0x5FFB, - 15141: 0x5FC3, - 15142: 0x4FE1, - 15143: 0x8845, - 15144: 0x661F, - 15145: 0x8165, - 15146: 0x7329, - 15147: 0x60FA, - 15148: 0x5174, - 15149: 0x5211, - 15150: 0x578B, - 15151: 0x5F62, - 15152: 0x90A2, - 15153: 0x884C, - 15154: 0x9192, - 15155: 0x5E78, - 15156: 0x674F, - 15157: 0x6027, - 15158: 0x59D3, - 15159: 0x5144, - 15160: 0x51F6, - 15161: 0x80F8, - 15162: 0x5308, - 15163: 0x6C79, - 15164: 0x96C4, - 15165: 0x718A, - 15166: 0x4F11, - 15167: 0x4FEE, - 15168: 0x7F9E, - 15169: 0x673D, - 15170: 0x55C5, - 15171: 0x9508, - 15172: 0x79C0, - 15173: 0x8896, - 15174: 0x7EE3, - 15175: 0x589F, - 15176: 0x620C, - 15177: 0x9700, - 15178: 0x865A, - 15179: 0x5618, - 15180: 0x987B, - 15181: 0x5F90, - 15182: 0x8BB8, - 15183: 0x84C4, - 15184: 0x9157, - 15185: 0x53D9, - 15186: 0x65ED, - 15187: 0x5E8F, - 15188: 0x755C, - 15189: 0x6064, - 15190: 0x7D6E, - 15191: 0x5A7F, - 15192: 0x7EEA, - 15193: 0x7EED, - 15194: 0x8F69, - 15195: 0x55A7, - 15196: 0x5BA3, - 15197: 0x60AC, - 15198: 0x65CB, - 15199: 0x7384, - 15200: 0x88AC, - 15201: 0x88AE, - 15202: 0x88AF, - 15203: 0x88B0, - 15204: 0x88B2, - 15205: 0x88B3, - 15206: 0x88B4, - 15207: 0x88B5, - 15208: 0x88B6, - 15209: 0x88B8, - 15210: 0x88B9, - 15211: 0x88BA, - 15212: 0x88BB, - 15213: 0x88BD, - 15214: 0x88BE, - 15215: 0x88BF, - 15216: 0x88C0, - 15217: 0x88C3, - 15218: 0x88C4, - 15219: 0x88C7, - 15220: 0x88C8, - 15221: 0x88CA, - 15222: 0x88CB, - 15223: 0x88CC, - 15224: 0x88CD, - 15225: 0x88CF, - 15226: 0x88D0, - 15227: 0x88D1, - 15228: 0x88D3, - 15229: 0x88D6, - 15230: 0x88D7, - 15231: 0x88DA, - 15232: 0x88DB, - 15233: 0x88DC, - 15234: 0x88DD, - 15235: 0x88DE, - 15236: 0x88E0, - 15237: 0x88E1, - 15238: 0x88E6, - 15239: 0x88E7, - 15240: 0x88E9, - 15241: 0x88EA, - 15242: 0x88EB, - 15243: 0x88EC, - 15244: 0x88ED, - 15245: 0x88EE, - 15246: 0x88EF, - 15247: 0x88F2, - 15248: 0x88F5, - 15249: 0x88F6, - 15250: 0x88F7, - 15251: 0x88FA, - 15252: 0x88FB, - 15253: 0x88FD, - 15254: 0x88FF, - 15255: 0x8900, - 15256: 0x8901, - 15257: 0x8903, - 15258: 0x8904, - 15259: 0x8905, - 15260: 0x8906, - 15261: 0x8907, - 15262: 0x8908, - 15263: 0x8909, - 15264: 0x890B, - 15265: 0x890C, - 15266: 0x890D, - 15267: 0x890E, - 15268: 0x890F, - 15269: 0x8911, - 15270: 0x8914, - 15271: 0x8915, - 15272: 0x8916, - 15273: 0x8917, - 15274: 0x8918, - 15275: 0x891C, - 15276: 0x891D, - 15277: 0x891E, - 15278: 0x891F, - 15279: 0x8920, - 15280: 0x8922, - 15281: 0x8923, - 15282: 0x8924, - 15283: 0x8926, - 15284: 0x8927, - 15285: 0x8928, - 15286: 0x8929, - 15287: 0x892C, - 15288: 0x892D, - 15289: 0x892E, - 15290: 0x892F, - 15291: 0x8931, - 15292: 0x8932, - 15293: 0x8933, - 15294: 0x8935, - 15295: 0x8937, - 15296: 0x9009, - 15297: 0x7663, - 15298: 0x7729, - 15299: 0x7EDA, - 15300: 0x9774, - 15301: 0x859B, - 15302: 0x5B66, - 15303: 0x7A74, - 15304: 0x96EA, - 15305: 0x8840, - 15306: 0x52CB, - 15307: 0x718F, - 15308: 0x5FAA, - 15309: 0x65EC, - 15310: 0x8BE2, - 15311: 0x5BFB, - 15312: 0x9A6F, - 15313: 0x5DE1, - 15314: 0x6B89, - 15315: 0x6C5B, - 15316: 0x8BAD, - 15317: 0x8BAF, - 15318: 0x900A, - 15319: 0x8FC5, - 15320: 0x538B, - 15321: 0x62BC, - 15322: 0x9E26, - 15323: 0x9E2D, - 15324: 0x5440, - 15325: 0x4E2B, - 15326: 0x82BD, - 15327: 0x7259, - 15328: 0x869C, - 15329: 0x5D16, - 15330: 0x8859, - 15331: 0x6DAF, - 15332: 0x96C5, - 15333: 0x54D1, - 15334: 0x4E9A, - 15335: 0x8BB6, - 15336: 0x7109, - 15337: 0x54BD, - 15338: 0x9609, - 15339: 0x70DF, - 15340: 0x6DF9, - 15341: 0x76D0, - 15342: 0x4E25, - 15343: 0x7814, - 15344: 0x8712, - 15345: 0x5CA9, - 15346: 0x5EF6, - 15347: 0x8A00, - 15348: 0x989C, - 15349: 0x960E, - 15350: 0x708E, - 15351: 0x6CBF, - 15352: 0x5944, - 15353: 0x63A9, - 15354: 0x773C, - 15355: 0x884D, - 15356: 0x6F14, - 15357: 0x8273, - 15358: 0x5830, - 15359: 0x71D5, - 15360: 0x538C, - 15361: 0x781A, - 15362: 0x96C1, - 15363: 0x5501, - 15364: 0x5F66, - 15365: 0x7130, - 15366: 0x5BB4, - 15367: 0x8C1A, - 15368: 0x9A8C, - 15369: 0x6B83, - 15370: 0x592E, - 15371: 0x9E2F, - 15372: 0x79E7, - 15373: 0x6768, - 15374: 0x626C, - 15375: 0x4F6F, - 15376: 0x75A1, - 15377: 0x7F8A, - 15378: 0x6D0B, - 15379: 0x9633, - 15380: 0x6C27, - 15381: 0x4EF0, - 15382: 0x75D2, - 15383: 0x517B, - 15384: 0x6837, - 15385: 0x6F3E, - 15386: 0x9080, - 15387: 0x8170, - 15388: 0x5996, - 15389: 0x7476, - 15390: 0x8938, - 15391: 0x8939, - 15392: 0x893A, - 15393: 0x893B, - 15394: 0x893C, - 15395: 0x893D, - 15396: 0x893E, - 15397: 0x893F, - 15398: 0x8940, - 15399: 0x8942, - 15400: 0x8943, - 15401: 0x8945, - 15402: 0x8946, - 15403: 0x8947, - 15404: 0x8948, - 15405: 0x8949, - 15406: 0x894A, - 15407: 0x894B, - 15408: 0x894C, - 15409: 0x894D, - 15410: 0x894E, - 15411: 0x894F, - 15412: 0x8950, - 15413: 0x8951, - 15414: 0x8952, - 15415: 0x8953, - 15416: 0x8954, - 15417: 0x8955, - 15418: 0x8956, - 15419: 0x8957, - 15420: 0x8958, - 15421: 0x8959, - 15422: 0x895A, - 15423: 0x895B, - 15424: 0x895C, - 15425: 0x895D, - 15426: 0x8960, - 15427: 0x8961, - 15428: 0x8962, - 15429: 0x8963, - 15430: 0x8964, - 15431: 0x8965, - 15432: 0x8967, - 15433: 0x8968, - 15434: 0x8969, - 15435: 0x896A, - 15436: 0x896B, - 15437: 0x896C, - 15438: 0x896D, - 15439: 0x896E, - 15440: 0x896F, - 15441: 0x8970, - 15442: 0x8971, - 15443: 0x8972, - 15444: 0x8973, - 15445: 0x8974, - 15446: 0x8975, - 15447: 0x8976, - 15448: 0x8977, - 15449: 0x8978, - 15450: 0x8979, - 15451: 0x897A, - 15452: 0x897C, - 15453: 0x897D, - 15454: 0x897E, - 15455: 0x8980, - 15456: 0x8982, - 15457: 0x8984, - 15458: 0x8985, - 15459: 0x8987, - 15460: 0x8988, - 15461: 0x8989, - 15462: 0x898A, - 15463: 0x898B, - 15464: 0x898C, - 15465: 0x898D, - 15466: 0x898E, - 15467: 0x898F, - 15468: 0x8990, - 15469: 0x8991, - 15470: 0x8992, - 15471: 0x8993, - 15472: 0x8994, - 15473: 0x8995, - 15474: 0x8996, - 15475: 0x8997, - 15476: 0x8998, - 15477: 0x8999, - 15478: 0x899A, - 15479: 0x899B, - 15480: 0x899C, - 15481: 0x899D, - 15482: 0x899E, - 15483: 0x899F, - 15484: 0x89A0, - 15485: 0x89A1, - 15486: 0x6447, - 15487: 0x5C27, - 15488: 0x9065, - 15489: 0x7A91, - 15490: 0x8C23, - 15491: 0x59DA, - 15492: 0x54AC, - 15493: 0x8200, - 15494: 0x836F, - 15495: 0x8981, - 15496: 0x8000, - 15497: 0x6930, - 15498: 0x564E, - 15499: 0x8036, - 15500: 0x7237, - 15501: 0x91CE, - 15502: 0x51B6, - 15503: 0x4E5F, - 15504: 0x9875, - 15505: 0x6396, - 15506: 0x4E1A, - 15507: 0x53F6, - 15508: 0x66F3, - 15509: 0x814B, - 15510: 0x591C, - 15511: 0x6DB2, - 15512: 0x4E00, - 15513: 0x58F9, - 15514: 0x533B, - 15515: 0x63D6, - 15516: 0x94F1, - 15517: 0x4F9D, - 15518: 0x4F0A, - 15519: 0x8863, - 15520: 0x9890, - 15521: 0x5937, - 15522: 0x9057, - 15523: 0x79FB, - 15524: 0x4EEA, - 15525: 0x80F0, - 15526: 0x7591, - 15527: 0x6C82, - 15528: 0x5B9C, - 15529: 0x59E8, - 15530: 0x5F5D, - 15531: 0x6905, - 15532: 0x8681, - 15533: 0x501A, - 15534: 0x5DF2, - 15535: 0x4E59, - 15536: 0x77E3, - 15537: 0x4EE5, - 15538: 0x827A, - 15539: 0x6291, - 15540: 0x6613, - 15541: 0x9091, - 15542: 0x5C79, - 15543: 0x4EBF, - 15544: 0x5F79, - 15545: 0x81C6, - 15546: 0x9038, - 15547: 0x8084, - 15548: 0x75AB, - 15549: 0x4EA6, - 15550: 0x88D4, - 15551: 0x610F, - 15552: 0x6BC5, - 15553: 0x5FC6, - 15554: 0x4E49, - 15555: 0x76CA, - 15556: 0x6EA2, - 15557: 0x8BE3, - 15558: 0x8BAE, - 15559: 0x8C0A, - 15560: 0x8BD1, - 15561: 0x5F02, - 15562: 0x7FFC, - 15563: 0x7FCC, - 15564: 0x7ECE, - 15565: 0x8335, - 15566: 0x836B, - 15567: 0x56E0, - 15568: 0x6BB7, - 15569: 0x97F3, - 15570: 0x9634, - 15571: 0x59FB, - 15572: 0x541F, - 15573: 0x94F6, - 15574: 0x6DEB, - 15575: 0x5BC5, - 15576: 0x996E, - 15577: 0x5C39, - 15578: 0x5F15, - 15579: 0x9690, - 15580: 0x89A2, - 15581: 0x89A3, - 15582: 0x89A4, - 15583: 0x89A5, - 15584: 0x89A6, - 15585: 0x89A7, - 15586: 0x89A8, - 15587: 0x89A9, - 15588: 0x89AA, - 15589: 0x89AB, - 15590: 0x89AC, - 15591: 0x89AD, - 15592: 0x89AE, - 15593: 0x89AF, - 15594: 0x89B0, - 15595: 0x89B1, - 15596: 0x89B2, - 15597: 0x89B3, - 15598: 0x89B4, - 15599: 0x89B5, - 15600: 0x89B6, - 15601: 0x89B7, - 15602: 0x89B8, - 15603: 0x89B9, - 15604: 0x89BA, - 15605: 0x89BB, - 15606: 0x89BC, - 15607: 0x89BD, - 15608: 0x89BE, - 15609: 0x89BF, - 15610: 0x89C0, - 15611: 0x89C3, - 15612: 0x89CD, - 15613: 0x89D3, - 15614: 0x89D4, - 15615: 0x89D5, - 15616: 0x89D7, - 15617: 0x89D8, - 15618: 0x89D9, - 15619: 0x89DB, - 15620: 0x89DD, - 15621: 0x89DF, - 15622: 0x89E0, - 15623: 0x89E1, - 15624: 0x89E2, - 15625: 0x89E4, - 15626: 0x89E7, - 15627: 0x89E8, - 15628: 0x89E9, - 15629: 0x89EA, - 15630: 0x89EC, - 15631: 0x89ED, - 15632: 0x89EE, - 15633: 0x89F0, - 15634: 0x89F1, - 15635: 0x89F2, - 15636: 0x89F4, - 15637: 0x89F5, - 15638: 0x89F6, - 15639: 0x89F7, - 15640: 0x89F8, - 15641: 0x89F9, - 15642: 0x89FA, - 15643: 0x89FB, - 15644: 0x89FC, - 15645: 0x89FD, - 15646: 0x89FE, - 15647: 0x89FF, - 15648: 0x8A01, - 15649: 0x8A02, - 15650: 0x8A03, - 15651: 0x8A04, - 15652: 0x8A05, - 15653: 0x8A06, - 15654: 0x8A08, - 15655: 0x8A09, - 15656: 0x8A0A, - 15657: 0x8A0B, - 15658: 0x8A0C, - 15659: 0x8A0D, - 15660: 0x8A0E, - 15661: 0x8A0F, - 15662: 0x8A10, - 15663: 0x8A11, - 15664: 0x8A12, - 15665: 0x8A13, - 15666: 0x8A14, - 15667: 0x8A15, - 15668: 0x8A16, - 15669: 0x8A17, - 15670: 0x8A18, - 15671: 0x8A19, - 15672: 0x8A1A, - 15673: 0x8A1B, - 15674: 0x8A1C, - 15675: 0x8A1D, - 15676: 0x5370, - 15677: 0x82F1, - 15678: 0x6A31, - 15679: 0x5A74, - 15680: 0x9E70, - 15681: 0x5E94, - 15682: 0x7F28, - 15683: 0x83B9, - 15684: 0x8424, - 15685: 0x8425, - 15686: 0x8367, - 15687: 0x8747, - 15688: 0x8FCE, - 15689: 0x8D62, - 15690: 0x76C8, - 15691: 0x5F71, - 15692: 0x9896, - 15693: 0x786C, - 15694: 0x6620, - 15695: 0x54DF, - 15696: 0x62E5, - 15697: 0x4F63, - 15698: 0x81C3, - 15699: 0x75C8, - 15700: 0x5EB8, - 15701: 0x96CD, - 15702: 0x8E0A, - 15703: 0x86F9, - 15704: 0x548F, - 15705: 0x6CF3, - 15706: 0x6D8C, - 15707: 0x6C38, - 15708: 0x607F, - 15709: 0x52C7, - 15710: 0x7528, - 15711: 0x5E7D, - 15712: 0x4F18, - 15713: 0x60A0, - 15714: 0x5FE7, - 15715: 0x5C24, - 15716: 0x7531, - 15717: 0x90AE, - 15718: 0x94C0, - 15719: 0x72B9, - 15720: 0x6CB9, - 15721: 0x6E38, - 15722: 0x9149, - 15723: 0x6709, - 15724: 0x53CB, - 15725: 0x53F3, - 15726: 0x4F51, - 15727: 0x91C9, - 15728: 0x8BF1, - 15729: 0x53C8, - 15730: 0x5E7C, - 15731: 0x8FC2, - 15732: 0x6DE4, - 15733: 0x4E8E, - 15734: 0x76C2, - 15735: 0x6986, - 15736: 0x865E, - 15737: 0x611A, - 15738: 0x8206, - 15739: 0x4F59, - 15740: 0x4FDE, - 15741: 0x903E, - 15742: 0x9C7C, - 15743: 0x6109, - 15744: 0x6E1D, - 15745: 0x6E14, - 15746: 0x9685, - 15747: 0x4E88, - 15748: 0x5A31, - 15749: 0x96E8, - 15750: 0x4E0E, - 15751: 0x5C7F, - 15752: 0x79B9, - 15753: 0x5B87, - 15754: 0x8BED, - 15755: 0x7FBD, - 15756: 0x7389, - 15757: 0x57DF, - 15758: 0x828B, - 15759: 0x90C1, - 15760: 0x5401, - 15761: 0x9047, - 15762: 0x55BB, - 15763: 0x5CEA, - 15764: 0x5FA1, - 15765: 0x6108, - 15766: 0x6B32, - 15767: 0x72F1, - 15768: 0x80B2, - 15769: 0x8A89, - 15770: 0x8A1E, - 15771: 0x8A1F, - 15772: 0x8A20, - 15773: 0x8A21, - 15774: 0x8A22, - 15775: 0x8A23, - 15776: 0x8A24, - 15777: 0x8A25, - 15778: 0x8A26, - 15779: 0x8A27, - 15780: 0x8A28, - 15781: 0x8A29, - 15782: 0x8A2A, - 15783: 0x8A2B, - 15784: 0x8A2C, - 15785: 0x8A2D, - 15786: 0x8A2E, - 15787: 0x8A2F, - 15788: 0x8A30, - 15789: 0x8A31, - 15790: 0x8A32, - 15791: 0x8A33, - 15792: 0x8A34, - 15793: 0x8A35, - 15794: 0x8A36, - 15795: 0x8A37, - 15796: 0x8A38, - 15797: 0x8A39, - 15798: 0x8A3A, - 15799: 0x8A3B, - 15800: 0x8A3C, - 15801: 0x8A3D, - 15802: 0x8A3F, - 15803: 0x8A40, - 15804: 0x8A41, - 15805: 0x8A42, - 15806: 0x8A43, - 15807: 0x8A44, - 15808: 0x8A45, - 15809: 0x8A46, - 15810: 0x8A47, - 15811: 0x8A49, - 15812: 0x8A4A, - 15813: 0x8A4B, - 15814: 0x8A4C, - 15815: 0x8A4D, - 15816: 0x8A4E, - 15817: 0x8A4F, - 15818: 0x8A50, - 15819: 0x8A51, - 15820: 0x8A52, - 15821: 0x8A53, - 15822: 0x8A54, - 15823: 0x8A55, - 15824: 0x8A56, - 15825: 0x8A57, - 15826: 0x8A58, - 15827: 0x8A59, - 15828: 0x8A5A, - 15829: 0x8A5B, - 15830: 0x8A5C, - 15831: 0x8A5D, - 15832: 0x8A5E, - 15833: 0x8A5F, - 15834: 0x8A60, - 15835: 0x8A61, - 15836: 0x8A62, - 15837: 0x8A63, - 15838: 0x8A64, - 15839: 0x8A65, - 15840: 0x8A66, - 15841: 0x8A67, - 15842: 0x8A68, - 15843: 0x8A69, - 15844: 0x8A6A, - 15845: 0x8A6B, - 15846: 0x8A6C, - 15847: 0x8A6D, - 15848: 0x8A6E, - 15849: 0x8A6F, - 15850: 0x8A70, - 15851: 0x8A71, - 15852: 0x8A72, - 15853: 0x8A73, - 15854: 0x8A74, - 15855: 0x8A75, - 15856: 0x8A76, - 15857: 0x8A77, - 15858: 0x8A78, - 15859: 0x8A7A, - 15860: 0x8A7B, - 15861: 0x8A7C, - 15862: 0x8A7D, - 15863: 0x8A7E, - 15864: 0x8A7F, - 15865: 0x8A80, - 15866: 0x6D74, - 15867: 0x5BD3, - 15868: 0x88D5, - 15869: 0x9884, - 15870: 0x8C6B, - 15871: 0x9A6D, - 15872: 0x9E33, - 15873: 0x6E0A, - 15874: 0x51A4, - 15875: 0x5143, - 15876: 0x57A3, - 15877: 0x8881, - 15878: 0x539F, - 15879: 0x63F4, - 15880: 0x8F95, - 15881: 0x56ED, - 15882: 0x5458, - 15883: 0x5706, - 15884: 0x733F, - 15885: 0x6E90, - 15886: 0x7F18, - 15887: 0x8FDC, - 15888: 0x82D1, - 15889: 0x613F, - 15890: 0x6028, - 15891: 0x9662, - 15892: 0x66F0, - 15893: 0x7EA6, - 15894: 0x8D8A, - 15895: 0x8DC3, - 15896: 0x94A5, - 15897: 0x5CB3, - 15898: 0x7CA4, - 15899: 0x6708, - 15900: 0x60A6, - 15901: 0x9605, - 15902: 0x8018, - 15903: 0x4E91, - 15904: 0x90E7, - 15905: 0x5300, - 15906: 0x9668, - 15907: 0x5141, - 15908: 0x8FD0, - 15909: 0x8574, - 15910: 0x915D, - 15911: 0x6655, - 15912: 0x97F5, - 15913: 0x5B55, - 15914: 0x531D, - 15915: 0x7838, - 15916: 0x6742, - 15917: 0x683D, - 15918: 0x54C9, - 15919: 0x707E, - 15920: 0x5BB0, - 15921: 0x8F7D, - 15922: 0x518D, - 15923: 0x5728, - 15924: 0x54B1, - 15925: 0x6512, - 15926: 0x6682, - 15927: 0x8D5E, - 15928: 0x8D43, - 15929: 0x810F, - 15930: 0x846C, - 15931: 0x906D, - 15932: 0x7CDF, - 15933: 0x51FF, - 15934: 0x85FB, - 15935: 0x67A3, - 15936: 0x65E9, - 15937: 0x6FA1, - 15938: 0x86A4, - 15939: 0x8E81, - 15940: 0x566A, - 15941: 0x9020, - 15942: 0x7682, - 15943: 0x7076, - 15944: 0x71E5, - 15945: 0x8D23, - 15946: 0x62E9, - 15947: 0x5219, - 15948: 0x6CFD, - 15949: 0x8D3C, - 15950: 0x600E, - 15951: 0x589E, - 15952: 0x618E, - 15953: 0x66FE, - 15954: 0x8D60, - 15955: 0x624E, - 15956: 0x55B3, - 15957: 0x6E23, - 15958: 0x672D, - 15959: 0x8F67, - 15960: 0x8A81, - 15961: 0x8A82, - 15962: 0x8A83, - 15963: 0x8A84, - 15964: 0x8A85, - 15965: 0x8A86, - 15966: 0x8A87, - 15967: 0x8A88, - 15968: 0x8A8B, - 15969: 0x8A8C, - 15970: 0x8A8D, - 15971: 0x8A8E, - 15972: 0x8A8F, - 15973: 0x8A90, - 15974: 0x8A91, - 15975: 0x8A92, - 15976: 0x8A94, - 15977: 0x8A95, - 15978: 0x8A96, - 15979: 0x8A97, - 15980: 0x8A98, - 15981: 0x8A99, - 15982: 0x8A9A, - 15983: 0x8A9B, - 15984: 0x8A9C, - 15985: 0x8A9D, - 15986: 0x8A9E, - 15987: 0x8A9F, - 15988: 0x8AA0, - 15989: 0x8AA1, - 15990: 0x8AA2, - 15991: 0x8AA3, - 15992: 0x8AA4, - 15993: 0x8AA5, - 15994: 0x8AA6, - 15995: 0x8AA7, - 15996: 0x8AA8, - 15997: 0x8AA9, - 15998: 0x8AAA, - 15999: 0x8AAB, - 16000: 0x8AAC, - 16001: 0x8AAD, - 16002: 0x8AAE, - 16003: 0x8AAF, - 16004: 0x8AB0, - 16005: 0x8AB1, - 16006: 0x8AB2, - 16007: 0x8AB3, - 16008: 0x8AB4, - 16009: 0x8AB5, - 16010: 0x8AB6, - 16011: 0x8AB7, - 16012: 0x8AB8, - 16013: 0x8AB9, - 16014: 0x8ABA, - 16015: 0x8ABB, - 16016: 0x8ABC, - 16017: 0x8ABD, - 16018: 0x8ABE, - 16019: 0x8ABF, - 16020: 0x8AC0, - 16021: 0x8AC1, - 16022: 0x8AC2, - 16023: 0x8AC3, - 16024: 0x8AC4, - 16025: 0x8AC5, - 16026: 0x8AC6, - 16027: 0x8AC7, - 16028: 0x8AC8, - 16029: 0x8AC9, - 16030: 0x8ACA, - 16031: 0x8ACB, - 16032: 0x8ACC, - 16033: 0x8ACD, - 16034: 0x8ACE, - 16035: 0x8ACF, - 16036: 0x8AD0, - 16037: 0x8AD1, - 16038: 0x8AD2, - 16039: 0x8AD3, - 16040: 0x8AD4, - 16041: 0x8AD5, - 16042: 0x8AD6, - 16043: 0x8AD7, - 16044: 0x8AD8, - 16045: 0x8AD9, - 16046: 0x8ADA, - 16047: 0x8ADB, - 16048: 0x8ADC, - 16049: 0x8ADD, - 16050: 0x8ADE, - 16051: 0x8ADF, - 16052: 0x8AE0, - 16053: 0x8AE1, - 16054: 0x8AE2, - 16055: 0x8AE3, - 16056: 0x94E1, - 16057: 0x95F8, - 16058: 0x7728, - 16059: 0x6805, - 16060: 0x69A8, - 16061: 0x548B, - 16062: 0x4E4D, - 16063: 0x70B8, - 16064: 0x8BC8, - 16065: 0x6458, - 16066: 0x658B, - 16067: 0x5B85, - 16068: 0x7A84, - 16069: 0x503A, - 16070: 0x5BE8, - 16071: 0x77BB, - 16072: 0x6BE1, - 16073: 0x8A79, - 16074: 0x7C98, - 16075: 0x6CBE, - 16076: 0x76CF, - 16077: 0x65A9, - 16078: 0x8F97, - 16079: 0x5D2D, - 16080: 0x5C55, - 16081: 0x8638, - 16082: 0x6808, - 16083: 0x5360, - 16084: 0x6218, - 16085: 0x7AD9, - 16086: 0x6E5B, - 16087: 0x7EFD, - 16088: 0x6A1F, - 16089: 0x7AE0, - 16090: 0x5F70, - 16091: 0x6F33, - 16092: 0x5F20, - 16093: 0x638C, - 16094: 0x6DA8, - 16095: 0x6756, - 16096: 0x4E08, - 16097: 0x5E10, - 16098: 0x8D26, - 16099: 0x4ED7, - 16100: 0x80C0, - 16101: 0x7634, - 16102: 0x969C, - 16103: 0x62DB, - 16104: 0x662D, - 16105: 0x627E, - 16106: 0x6CBC, - 16107: 0x8D75, - 16108: 0x7167, - 16109: 0x7F69, - 16110: 0x5146, - 16111: 0x8087, - 16112: 0x53EC, - 16113: 0x906E, - 16114: 0x6298, - 16115: 0x54F2, - 16116: 0x86F0, - 16117: 0x8F99, - 16118: 0x8005, - 16119: 0x9517, - 16120: 0x8517, - 16121: 0x8FD9, - 16122: 0x6D59, - 16123: 0x73CD, - 16124: 0x659F, - 16125: 0x771F, - 16126: 0x7504, - 16127: 0x7827, - 16128: 0x81FB, - 16129: 0x8D1E, - 16130: 0x9488, - 16131: 0x4FA6, - 16132: 0x6795, - 16133: 0x75B9, - 16134: 0x8BCA, - 16135: 0x9707, - 16136: 0x632F, - 16137: 0x9547, - 16138: 0x9635, - 16139: 0x84B8, - 16140: 0x6323, - 16141: 0x7741, - 16142: 0x5F81, - 16143: 0x72F0, - 16144: 0x4E89, - 16145: 0x6014, - 16146: 0x6574, - 16147: 0x62EF, - 16148: 0x6B63, - 16149: 0x653F, - 16150: 0x8AE4, - 16151: 0x8AE5, - 16152: 0x8AE6, - 16153: 0x8AE7, - 16154: 0x8AE8, - 16155: 0x8AE9, - 16156: 0x8AEA, - 16157: 0x8AEB, - 16158: 0x8AEC, - 16159: 0x8AED, - 16160: 0x8AEE, - 16161: 0x8AEF, - 16162: 0x8AF0, - 16163: 0x8AF1, - 16164: 0x8AF2, - 16165: 0x8AF3, - 16166: 0x8AF4, - 16167: 0x8AF5, - 16168: 0x8AF6, - 16169: 0x8AF7, - 16170: 0x8AF8, - 16171: 0x8AF9, - 16172: 0x8AFA, - 16173: 0x8AFB, - 16174: 0x8AFC, - 16175: 0x8AFD, - 16176: 0x8AFE, - 16177: 0x8AFF, - 16178: 0x8B00, - 16179: 0x8B01, - 16180: 0x8B02, - 16181: 0x8B03, - 16182: 0x8B04, - 16183: 0x8B05, - 16184: 0x8B06, - 16185: 0x8B08, - 16186: 0x8B09, - 16187: 0x8B0A, - 16188: 0x8B0B, - 16189: 0x8B0C, - 16190: 0x8B0D, - 16191: 0x8B0E, - 16192: 0x8B0F, - 16193: 0x8B10, - 16194: 0x8B11, - 16195: 0x8B12, - 16196: 0x8B13, - 16197: 0x8B14, - 16198: 0x8B15, - 16199: 0x8B16, - 16200: 0x8B17, - 16201: 0x8B18, - 16202: 0x8B19, - 16203: 0x8B1A, - 16204: 0x8B1B, - 16205: 0x8B1C, - 16206: 0x8B1D, - 16207: 0x8B1E, - 16208: 0x8B1F, - 16209: 0x8B20, - 16210: 0x8B21, - 16211: 0x8B22, - 16212: 0x8B23, - 16213: 0x8B24, - 16214: 0x8B25, - 16215: 0x8B27, - 16216: 0x8B28, - 16217: 0x8B29, - 16218: 0x8B2A, - 16219: 0x8B2B, - 16220: 0x8B2C, - 16221: 0x8B2D, - 16222: 0x8B2E, - 16223: 0x8B2F, - 16224: 0x8B30, - 16225: 0x8B31, - 16226: 0x8B32, - 16227: 0x8B33, - 16228: 0x8B34, - 16229: 0x8B35, - 16230: 0x8B36, - 16231: 0x8B37, - 16232: 0x8B38, - 16233: 0x8B39, - 16234: 0x8B3A, - 16235: 0x8B3B, - 16236: 0x8B3C, - 16237: 0x8B3D, - 16238: 0x8B3E, - 16239: 0x8B3F, - 16240: 0x8B40, - 16241: 0x8B41, - 16242: 0x8B42, - 16243: 0x8B43, - 16244: 0x8B44, - 16245: 0x8B45, - 16246: 0x5E27, - 16247: 0x75C7, - 16248: 0x90D1, - 16249: 0x8BC1, - 16250: 0x829D, - 16251: 0x679D, - 16252: 0x652F, - 16253: 0x5431, - 16254: 0x8718, - 16255: 0x77E5, - 16256: 0x80A2, - 16257: 0x8102, - 16258: 0x6C41, - 16259: 0x4E4B, - 16260: 0x7EC7, - 16261: 0x804C, - 16262: 0x76F4, - 16263: 0x690D, - 16264: 0x6B96, - 16265: 0x6267, - 16266: 0x503C, - 16267: 0x4F84, - 16268: 0x5740, - 16269: 0x6307, - 16270: 0x6B62, - 16271: 0x8DBE, - 16272: 0x53EA, - 16273: 0x65E8, - 16274: 0x7EB8, - 16275: 0x5FD7, - 16276: 0x631A, - 16277: 0x63B7, - 16278: 0x81F3, - 16279: 0x81F4, - 16280: 0x7F6E, - 16281: 0x5E1C, - 16282: 0x5CD9, - 16283: 0x5236, - 16284: 0x667A, - 16285: 0x79E9, - 16286: 0x7A1A, - 16287: 0x8D28, - 16288: 0x7099, - 16289: 0x75D4, - 16290: 0x6EDE, - 16291: 0x6CBB, - 16292: 0x7A92, - 16293: 0x4E2D, - 16294: 0x76C5, - 16295: 0x5FE0, - 16296: 0x949F, - 16297: 0x8877, - 16298: 0x7EC8, - 16299: 0x79CD, - 16300: 0x80BF, - 16301: 0x91CD, - 16302: 0x4EF2, - 16303: 0x4F17, - 16304: 0x821F, - 16305: 0x5468, - 16306: 0x5DDE, - 16307: 0x6D32, - 16308: 0x8BCC, - 16309: 0x7CA5, - 16310: 0x8F74, - 16311: 0x8098, - 16312: 0x5E1A, - 16313: 0x5492, - 16314: 0x76B1, - 16315: 0x5B99, - 16316: 0x663C, - 16317: 0x9AA4, - 16318: 0x73E0, - 16319: 0x682A, - 16320: 0x86DB, - 16321: 0x6731, - 16322: 0x732A, - 16323: 0x8BF8, - 16324: 0x8BDB, - 16325: 0x9010, - 16326: 0x7AF9, - 16327: 0x70DB, - 16328: 0x716E, - 16329: 0x62C4, - 16330: 0x77A9, - 16331: 0x5631, - 16332: 0x4E3B, - 16333: 0x8457, - 16334: 0x67F1, - 16335: 0x52A9, - 16336: 0x86C0, - 16337: 0x8D2E, - 16338: 0x94F8, - 16339: 0x7B51, - 16340: 0x8B46, - 16341: 0x8B47, - 16342: 0x8B48, - 16343: 0x8B49, - 16344: 0x8B4A, - 16345: 0x8B4B, - 16346: 0x8B4C, - 16347: 0x8B4D, - 16348: 0x8B4E, - 16349: 0x8B4F, - 16350: 0x8B50, - 16351: 0x8B51, - 16352: 0x8B52, - 16353: 0x8B53, - 16354: 0x8B54, - 16355: 0x8B55, - 16356: 0x8B56, - 16357: 0x8B57, - 16358: 0x8B58, - 16359: 0x8B59, - 16360: 0x8B5A, - 16361: 0x8B5B, - 16362: 0x8B5C, - 16363: 0x8B5D, - 16364: 0x8B5E, - 16365: 0x8B5F, - 16366: 0x8B60, - 16367: 0x8B61, - 16368: 0x8B62, - 16369: 0x8B63, - 16370: 0x8B64, - 16371: 0x8B65, - 16372: 0x8B67, - 16373: 0x8B68, - 16374: 0x8B69, - 16375: 0x8B6A, - 16376: 0x8B6B, - 16377: 0x8B6D, - 16378: 0x8B6E, - 16379: 0x8B6F, - 16380: 0x8B70, - 16381: 0x8B71, - 16382: 0x8B72, - 16383: 0x8B73, - 16384: 0x8B74, - 16385: 0x8B75, - 16386: 0x8B76, - 16387: 0x8B77, - 16388: 0x8B78, - 16389: 0x8B79, - 16390: 0x8B7A, - 16391: 0x8B7B, - 16392: 0x8B7C, - 16393: 0x8B7D, - 16394: 0x8B7E, - 16395: 0x8B7F, - 16396: 0x8B80, - 16397: 0x8B81, - 16398: 0x8B82, - 16399: 0x8B83, - 16400: 0x8B84, - 16401: 0x8B85, - 16402: 0x8B86, - 16403: 0x8B87, - 16404: 0x8B88, - 16405: 0x8B89, - 16406: 0x8B8A, - 16407: 0x8B8B, - 16408: 0x8B8C, - 16409: 0x8B8D, - 16410: 0x8B8E, - 16411: 0x8B8F, - 16412: 0x8B90, - 16413: 0x8B91, - 16414: 0x8B92, - 16415: 0x8B93, - 16416: 0x8B94, - 16417: 0x8B95, - 16418: 0x8B96, - 16419: 0x8B97, - 16420: 0x8B98, - 16421: 0x8B99, - 16422: 0x8B9A, - 16423: 0x8B9B, - 16424: 0x8B9C, - 16425: 0x8B9D, - 16426: 0x8B9E, - 16427: 0x8B9F, - 16428: 0x8BAC, - 16429: 0x8BB1, - 16430: 0x8BBB, - 16431: 0x8BC7, - 16432: 0x8BD0, - 16433: 0x8BEA, - 16434: 0x8C09, - 16435: 0x8C1E, - 16436: 0x4F4F, - 16437: 0x6CE8, - 16438: 0x795D, - 16439: 0x9A7B, - 16440: 0x6293, - 16441: 0x722A, - 16442: 0x62FD, - 16443: 0x4E13, - 16444: 0x7816, - 16445: 0x8F6C, - 16446: 0x64B0, - 16447: 0x8D5A, - 16448: 0x7BC6, - 16449: 0x6869, - 16450: 0x5E84, - 16451: 0x88C5, - 16452: 0x5986, - 16453: 0x649E, - 16454: 0x58EE, - 16455: 0x72B6, - 16456: 0x690E, - 16457: 0x9525, - 16458: 0x8FFD, - 16459: 0x8D58, - 16460: 0x5760, - 16461: 0x7F00, - 16462: 0x8C06, - 16463: 0x51C6, - 16464: 0x6349, - 16465: 0x62D9, - 16466: 0x5353, - 16467: 0x684C, - 16468: 0x7422, - 16469: 0x8301, - 16470: 0x914C, - 16471: 0x5544, - 16472: 0x7740, - 16473: 0x707C, - 16474: 0x6D4A, - 16475: 0x5179, - 16476: 0x54A8, - 16477: 0x8D44, - 16478: 0x59FF, - 16479: 0x6ECB, - 16480: 0x6DC4, - 16481: 0x5B5C, - 16482: 0x7D2B, - 16483: 0x4ED4, - 16484: 0x7C7D, - 16485: 0x6ED3, - 16486: 0x5B50, - 16487: 0x81EA, - 16488: 0x6E0D, - 16489: 0x5B57, - 16490: 0x9B03, - 16491: 0x68D5, - 16492: 0x8E2A, - 16493: 0x5B97, - 16494: 0x7EFC, - 16495: 0x603B, - 16496: 0x7EB5, - 16497: 0x90B9, - 16498: 0x8D70, - 16499: 0x594F, - 16500: 0x63CD, - 16501: 0x79DF, - 16502: 0x8DB3, - 16503: 0x5352, - 16504: 0x65CF, - 16505: 0x7956, - 16506: 0x8BC5, - 16507: 0x963B, - 16508: 0x7EC4, - 16509: 0x94BB, - 16510: 0x7E82, - 16511: 0x5634, - 16512: 0x9189, - 16513: 0x6700, - 16514: 0x7F6A, - 16515: 0x5C0A, - 16516: 0x9075, - 16517: 0x6628, - 16518: 0x5DE6, - 16519: 0x4F50, - 16520: 0x67DE, - 16521: 0x505A, - 16522: 0x4F5C, - 16523: 0x5750, - 16524: 0x5EA7, - 16530: 0x8C38, - 16531: 0x8C39, - 16532: 0x8C3A, - 16533: 0x8C3B, - 16534: 0x8C3C, - 16535: 0x8C3D, - 16536: 0x8C3E, - 16537: 0x8C3F, - 16538: 0x8C40, - 16539: 0x8C42, - 16540: 0x8C43, - 16541: 0x8C44, - 16542: 0x8C45, - 16543: 0x8C48, - 16544: 0x8C4A, - 16545: 0x8C4B, - 16546: 0x8C4D, - 16547: 0x8C4E, - 16548: 0x8C4F, - 16549: 0x8C50, - 16550: 0x8C51, - 16551: 0x8C52, - 16552: 0x8C53, - 16553: 0x8C54, - 16554: 0x8C56, - 16555: 0x8C57, - 16556: 0x8C58, - 16557: 0x8C59, - 16558: 0x8C5B, - 16559: 0x8C5C, - 16560: 0x8C5D, - 16561: 0x8C5E, - 16562: 0x8C5F, - 16563: 0x8C60, - 16564: 0x8C63, - 16565: 0x8C64, - 16566: 0x8C65, - 16567: 0x8C66, - 16568: 0x8C67, - 16569: 0x8C68, - 16570: 0x8C69, - 16571: 0x8C6C, - 16572: 0x8C6D, - 16573: 0x8C6E, - 16574: 0x8C6F, - 16575: 0x8C70, - 16576: 0x8C71, - 16577: 0x8C72, - 16578: 0x8C74, - 16579: 0x8C75, - 16580: 0x8C76, - 16581: 0x8C77, - 16582: 0x8C7B, - 16583: 0x8C7C, - 16584: 0x8C7D, - 16585: 0x8C7E, - 16586: 0x8C7F, - 16587: 0x8C80, - 16588: 0x8C81, - 16589: 0x8C83, - 16590: 0x8C84, - 16591: 0x8C86, - 16592: 0x8C87, - 16593: 0x8C88, - 16594: 0x8C8B, - 16595: 0x8C8D, - 16596: 0x8C8E, - 16597: 0x8C8F, - 16598: 0x8C90, - 16599: 0x8C91, - 16600: 0x8C92, - 16601: 0x8C93, - 16602: 0x8C95, - 16603: 0x8C96, - 16604: 0x8C97, - 16605: 0x8C99, - 16606: 0x8C9A, - 16607: 0x8C9B, - 16608: 0x8C9C, - 16609: 0x8C9D, - 16610: 0x8C9E, - 16611: 0x8C9F, - 16612: 0x8CA0, - 16613: 0x8CA1, - 16614: 0x8CA2, - 16615: 0x8CA3, - 16616: 0x8CA4, - 16617: 0x8CA5, - 16618: 0x8CA6, - 16619: 0x8CA7, - 16620: 0x8CA8, - 16621: 0x8CA9, - 16622: 0x8CAA, - 16623: 0x8CAB, - 16624: 0x8CAC, - 16625: 0x8CAD, - 16626: 0x4E8D, - 16627: 0x4E0C, - 16628: 0x5140, - 16629: 0x4E10, - 16630: 0x5EFF, - 16631: 0x5345, - 16632: 0x4E15, - 16633: 0x4E98, - 16634: 0x4E1E, - 16635: 0x9B32, - 16636: 0x5B6C, - 16637: 0x5669, - 16638: 0x4E28, - 16639: 0x79BA, - 16640: 0x4E3F, - 16641: 0x5315, - 16642: 0x4E47, - 16643: 0x592D, - 16644: 0x723B, - 16645: 0x536E, - 16646: 0x6C10, - 16647: 0x56DF, - 16648: 0x80E4, - 16649: 0x9997, - 16650: 0x6BD3, - 16651: 0x777E, - 16652: 0x9F17, - 16653: 0x4E36, - 16654: 0x4E9F, - 16655: 0x9F10, - 16656: 0x4E5C, - 16657: 0x4E69, - 16658: 0x4E93, - 16659: 0x8288, - 16660: 0x5B5B, - 16661: 0x556C, - 16662: 0x560F, - 16663: 0x4EC4, - 16664: 0x538D, - 16665: 0x539D, - 16666: 0x53A3, - 16667: 0x53A5, - 16668: 0x53AE, - 16669: 0x9765, - 16670: 0x8D5D, - 16671: 0x531A, - 16672: 0x53F5, - 16673: 0x5326, - 16674: 0x532E, - 16675: 0x533E, - 16676: 0x8D5C, - 16677: 0x5366, - 16678: 0x5363, - 16679: 0x5202, - 16680: 0x5208, - 16681: 0x520E, - 16682: 0x522D, - 16683: 0x5233, - 16684: 0x523F, - 16685: 0x5240, - 16686: 0x524C, - 16687: 0x525E, - 16688: 0x5261, - 16689: 0x525C, - 16690: 0x84AF, - 16691: 0x527D, - 16692: 0x5282, - 16693: 0x5281, - 16694: 0x5290, - 16695: 0x5293, - 16696: 0x5182, - 16697: 0x7F54, - 16698: 0x4EBB, - 16699: 0x4EC3, - 16700: 0x4EC9, - 16701: 0x4EC2, - 16702: 0x4EE8, - 16703: 0x4EE1, - 16704: 0x4EEB, - 16705: 0x4EDE, - 16706: 0x4F1B, - 16707: 0x4EF3, - 16708: 0x4F22, - 16709: 0x4F64, - 16710: 0x4EF5, - 16711: 0x4F25, - 16712: 0x4F27, - 16713: 0x4F09, - 16714: 0x4F2B, - 16715: 0x4F5E, - 16716: 0x4F67, - 16717: 0x6538, - 16718: 0x4F5A, - 16719: 0x4F5D, - 16720: 0x8CAE, - 16721: 0x8CAF, - 16722: 0x8CB0, - 16723: 0x8CB1, - 16724: 0x8CB2, - 16725: 0x8CB3, - 16726: 0x8CB4, - 16727: 0x8CB5, - 16728: 0x8CB6, - 16729: 0x8CB7, - 16730: 0x8CB8, - 16731: 0x8CB9, - 16732: 0x8CBA, - 16733: 0x8CBB, - 16734: 0x8CBC, - 16735: 0x8CBD, - 16736: 0x8CBE, - 16737: 0x8CBF, - 16738: 0x8CC0, - 16739: 0x8CC1, - 16740: 0x8CC2, - 16741: 0x8CC3, - 16742: 0x8CC4, - 16743: 0x8CC5, - 16744: 0x8CC6, - 16745: 0x8CC7, - 16746: 0x8CC8, - 16747: 0x8CC9, - 16748: 0x8CCA, - 16749: 0x8CCB, - 16750: 0x8CCC, - 16751: 0x8CCD, - 16752: 0x8CCE, - 16753: 0x8CCF, - 16754: 0x8CD0, - 16755: 0x8CD1, - 16756: 0x8CD2, - 16757: 0x8CD3, - 16758: 0x8CD4, - 16759: 0x8CD5, - 16760: 0x8CD6, - 16761: 0x8CD7, - 16762: 0x8CD8, - 16763: 0x8CD9, - 16764: 0x8CDA, - 16765: 0x8CDB, - 16766: 0x8CDC, - 16767: 0x8CDD, - 16768: 0x8CDE, - 16769: 0x8CDF, - 16770: 0x8CE0, - 16771: 0x8CE1, - 16772: 0x8CE2, - 16773: 0x8CE3, - 16774: 0x8CE4, - 16775: 0x8CE5, - 16776: 0x8CE6, - 16777: 0x8CE7, - 16778: 0x8CE8, - 16779: 0x8CE9, - 16780: 0x8CEA, - 16781: 0x8CEB, - 16782: 0x8CEC, - 16783: 0x8CED, - 16784: 0x8CEE, - 16785: 0x8CEF, - 16786: 0x8CF0, - 16787: 0x8CF1, - 16788: 0x8CF2, - 16789: 0x8CF3, - 16790: 0x8CF4, - 16791: 0x8CF5, - 16792: 0x8CF6, - 16793: 0x8CF7, - 16794: 0x8CF8, - 16795: 0x8CF9, - 16796: 0x8CFA, - 16797: 0x8CFB, - 16798: 0x8CFC, - 16799: 0x8CFD, - 16800: 0x8CFE, - 16801: 0x8CFF, - 16802: 0x8D00, - 16803: 0x8D01, - 16804: 0x8D02, - 16805: 0x8D03, - 16806: 0x8D04, - 16807: 0x8D05, - 16808: 0x8D06, - 16809: 0x8D07, - 16810: 0x8D08, - 16811: 0x8D09, - 16812: 0x8D0A, - 16813: 0x8D0B, - 16814: 0x8D0C, - 16815: 0x8D0D, - 16816: 0x4F5F, - 16817: 0x4F57, - 16818: 0x4F32, - 16819: 0x4F3D, - 16820: 0x4F76, - 16821: 0x4F74, - 16822: 0x4F91, - 16823: 0x4F89, - 16824: 0x4F83, - 16825: 0x4F8F, - 16826: 0x4F7E, - 16827: 0x4F7B, - 16828: 0x4FAA, - 16829: 0x4F7C, - 16830: 0x4FAC, - 16831: 0x4F94, - 16832: 0x4FE6, - 16833: 0x4FE8, - 16834: 0x4FEA, - 16835: 0x4FC5, - 16836: 0x4FDA, - 16837: 0x4FE3, - 16838: 0x4FDC, - 16839: 0x4FD1, - 16840: 0x4FDF, - 16841: 0x4FF8, - 16842: 0x5029, - 16843: 0x504C, - 16844: 0x4FF3, - 16845: 0x502C, - 16846: 0x500F, - 16847: 0x502E, - 16848: 0x502D, - 16849: 0x4FFE, - 16850: 0x501C, - 16851: 0x500C, - 16852: 0x5025, - 16853: 0x5028, - 16854: 0x507E, - 16855: 0x5043, - 16856: 0x5055, - 16857: 0x5048, - 16858: 0x504E, - 16859: 0x506C, - 16860: 0x507B, - 16861: 0x50A5, - 16862: 0x50A7, - 16863: 0x50A9, - 16864: 0x50BA, - 16865: 0x50D6, - 16866: 0x5106, - 16867: 0x50ED, - 16868: 0x50EC, - 16869: 0x50E6, - 16870: 0x50EE, - 16871: 0x5107, - 16872: 0x510B, - 16873: 0x4EDD, - 16874: 0x6C3D, - 16875: 0x4F58, - 16876: 0x4F65, - 16877: 0x4FCE, - 16878: 0x9FA0, - 16879: 0x6C46, - 16880: 0x7C74, - 16881: 0x516E, - 16882: 0x5DFD, - 16883: 0x9EC9, - 16884: 0x9998, - 16885: 0x5181, - 16886: 0x5914, - 16887: 0x52F9, - 16888: 0x530D, - 16889: 0x8A07, - 16890: 0x5310, - 16891: 0x51EB, - 16892: 0x5919, - 16893: 0x5155, - 16894: 0x4EA0, - 16895: 0x5156, - 16896: 0x4EB3, - 16897: 0x886E, - 16898: 0x88A4, - 16899: 0x4EB5, - 16900: 0x8114, - 16901: 0x88D2, - 16902: 0x7980, - 16903: 0x5B34, - 16904: 0x8803, - 16905: 0x7FB8, - 16906: 0x51AB, - 16907: 0x51B1, - 16908: 0x51BD, - 16909: 0x51BC, - 16910: 0x8D0E, - 16911: 0x8D0F, - 16912: 0x8D10, - 16913: 0x8D11, - 16914: 0x8D12, - 16915: 0x8D13, - 16916: 0x8D14, - 16917: 0x8D15, - 16918: 0x8D16, - 16919: 0x8D17, - 16920: 0x8D18, - 16921: 0x8D19, - 16922: 0x8D1A, - 16923: 0x8D1B, - 16924: 0x8D1C, - 16925: 0x8D20, - 16926: 0x8D51, - 16927: 0x8D52, - 16928: 0x8D57, - 16929: 0x8D5F, - 16930: 0x8D65, - 16931: 0x8D68, - 16932: 0x8D69, - 16933: 0x8D6A, - 16934: 0x8D6C, - 16935: 0x8D6E, - 16936: 0x8D6F, - 16937: 0x8D71, - 16938: 0x8D72, - 16939: 0x8D78, - 16940: 0x8D79, - 16941: 0x8D7A, - 16942: 0x8D7B, - 16943: 0x8D7C, - 16944: 0x8D7D, - 16945: 0x8D7E, - 16946: 0x8D7F, - 16947: 0x8D80, - 16948: 0x8D82, - 16949: 0x8D83, - 16950: 0x8D86, - 16951: 0x8D87, - 16952: 0x8D88, - 16953: 0x8D89, - 16954: 0x8D8C, - 16955: 0x8D8D, - 16956: 0x8D8E, - 16957: 0x8D8F, - 16958: 0x8D90, - 16959: 0x8D92, - 16960: 0x8D93, - 16961: 0x8D95, - 16962: 0x8D96, - 16963: 0x8D97, - 16964: 0x8D98, - 16965: 0x8D99, - 16966: 0x8D9A, - 16967: 0x8D9B, - 16968: 0x8D9C, - 16969: 0x8D9D, - 16970: 0x8D9E, - 16971: 0x8DA0, - 16972: 0x8DA1, - 16973: 0x8DA2, - 16974: 0x8DA4, - 16975: 0x8DA5, - 16976: 0x8DA6, - 16977: 0x8DA7, - 16978: 0x8DA8, - 16979: 0x8DA9, - 16980: 0x8DAA, - 16981: 0x8DAB, - 16982: 0x8DAC, - 16983: 0x8DAD, - 16984: 0x8DAE, - 16985: 0x8DAF, - 16986: 0x8DB0, - 16987: 0x8DB2, - 16988: 0x8DB6, - 16989: 0x8DB7, - 16990: 0x8DB9, - 16991: 0x8DBB, - 16992: 0x8DBD, - 16993: 0x8DC0, - 16994: 0x8DC1, - 16995: 0x8DC2, - 16996: 0x8DC5, - 16997: 0x8DC7, - 16998: 0x8DC8, - 16999: 0x8DC9, - 17000: 0x8DCA, - 17001: 0x8DCD, - 17002: 0x8DD0, - 17003: 0x8DD2, - 17004: 0x8DD3, - 17005: 0x8DD4, - 17006: 0x51C7, - 17007: 0x5196, - 17008: 0x51A2, - 17009: 0x51A5, - 17010: 0x8BA0, - 17011: 0x8BA6, - 17012: 0x8BA7, - 17013: 0x8BAA, - 17014: 0x8BB4, - 17015: 0x8BB5, - 17016: 0x8BB7, - 17017: 0x8BC2, - 17018: 0x8BC3, - 17019: 0x8BCB, - 17020: 0x8BCF, - 17021: 0x8BCE, - 17022: 0x8BD2, - 17023: 0x8BD3, - 17024: 0x8BD4, - 17025: 0x8BD6, - 17026: 0x8BD8, - 17027: 0x8BD9, - 17028: 0x8BDC, - 17029: 0x8BDF, - 17030: 0x8BE0, - 17031: 0x8BE4, - 17032: 0x8BE8, - 17033: 0x8BE9, - 17034: 0x8BEE, - 17035: 0x8BF0, - 17036: 0x8BF3, - 17037: 0x8BF6, - 17038: 0x8BF9, - 17039: 0x8BFC, - 17040: 0x8BFF, - 17041: 0x8C00, - 17042: 0x8C02, - 17043: 0x8C04, - 17044: 0x8C07, - 17045: 0x8C0C, - 17046: 0x8C0F, - 17047: 0x8C11, - 17048: 0x8C12, - 17049: 0x8C14, - 17050: 0x8C15, - 17051: 0x8C16, - 17052: 0x8C19, - 17053: 0x8C1B, - 17054: 0x8C18, - 17055: 0x8C1D, - 17056: 0x8C1F, - 17057: 0x8C20, - 17058: 0x8C21, - 17059: 0x8C25, - 17060: 0x8C27, - 17061: 0x8C2A, - 17062: 0x8C2B, - 17063: 0x8C2E, - 17064: 0x8C2F, - 17065: 0x8C32, - 17066: 0x8C33, - 17067: 0x8C35, - 17068: 0x8C36, - 17069: 0x5369, - 17070: 0x537A, - 17071: 0x961D, - 17072: 0x9622, - 17073: 0x9621, - 17074: 0x9631, - 17075: 0x962A, - 17076: 0x963D, - 17077: 0x963C, - 17078: 0x9642, - 17079: 0x9649, - 17080: 0x9654, - 17081: 0x965F, - 17082: 0x9667, - 17083: 0x966C, - 17084: 0x9672, - 17085: 0x9674, - 17086: 0x9688, - 17087: 0x968D, - 17088: 0x9697, - 17089: 0x96B0, - 17090: 0x9097, - 17091: 0x909B, - 17092: 0x909D, - 17093: 0x9099, - 17094: 0x90AC, - 17095: 0x90A1, - 17096: 0x90B4, - 17097: 0x90B3, - 17098: 0x90B6, - 17099: 0x90BA, - 17100: 0x8DD5, - 17101: 0x8DD8, - 17102: 0x8DD9, - 17103: 0x8DDC, - 17104: 0x8DE0, - 17105: 0x8DE1, - 17106: 0x8DE2, - 17107: 0x8DE5, - 17108: 0x8DE6, - 17109: 0x8DE7, - 17110: 0x8DE9, - 17111: 0x8DED, - 17112: 0x8DEE, - 17113: 0x8DF0, - 17114: 0x8DF1, - 17115: 0x8DF2, - 17116: 0x8DF4, - 17117: 0x8DF6, - 17118: 0x8DFC, - 17119: 0x8DFE, - 17120: 0x8DFF, - 17121: 0x8E00, - 17122: 0x8E01, - 17123: 0x8E02, - 17124: 0x8E03, - 17125: 0x8E04, - 17126: 0x8E06, - 17127: 0x8E07, - 17128: 0x8E08, - 17129: 0x8E0B, - 17130: 0x8E0D, - 17131: 0x8E0E, - 17132: 0x8E10, - 17133: 0x8E11, - 17134: 0x8E12, - 17135: 0x8E13, - 17136: 0x8E15, - 17137: 0x8E16, - 17138: 0x8E17, - 17139: 0x8E18, - 17140: 0x8E19, - 17141: 0x8E1A, - 17142: 0x8E1B, - 17143: 0x8E1C, - 17144: 0x8E20, - 17145: 0x8E21, - 17146: 0x8E24, - 17147: 0x8E25, - 17148: 0x8E26, - 17149: 0x8E27, - 17150: 0x8E28, - 17151: 0x8E2B, - 17152: 0x8E2D, - 17153: 0x8E30, - 17154: 0x8E32, - 17155: 0x8E33, - 17156: 0x8E34, - 17157: 0x8E36, - 17158: 0x8E37, - 17159: 0x8E38, - 17160: 0x8E3B, - 17161: 0x8E3C, - 17162: 0x8E3E, - 17163: 0x8E3F, - 17164: 0x8E43, - 17165: 0x8E45, - 17166: 0x8E46, - 17167: 0x8E4C, - 17168: 0x8E4D, - 17169: 0x8E4E, - 17170: 0x8E4F, - 17171: 0x8E50, - 17172: 0x8E53, - 17173: 0x8E54, - 17174: 0x8E55, - 17175: 0x8E56, - 17176: 0x8E57, - 17177: 0x8E58, - 17178: 0x8E5A, - 17179: 0x8E5B, - 17180: 0x8E5C, - 17181: 0x8E5D, - 17182: 0x8E5E, - 17183: 0x8E5F, - 17184: 0x8E60, - 17185: 0x8E61, - 17186: 0x8E62, - 17187: 0x8E63, - 17188: 0x8E64, - 17189: 0x8E65, - 17190: 0x8E67, - 17191: 0x8E68, - 17192: 0x8E6A, - 17193: 0x8E6B, - 17194: 0x8E6E, - 17195: 0x8E71, - 17196: 0x90B8, - 17197: 0x90B0, - 17198: 0x90CF, - 17199: 0x90C5, - 17200: 0x90BE, - 17201: 0x90D0, - 17202: 0x90C4, - 17203: 0x90C7, - 17204: 0x90D3, - 17205: 0x90E6, - 17206: 0x90E2, - 17207: 0x90DC, - 17208: 0x90D7, - 17209: 0x90DB, - 17210: 0x90EB, - 17211: 0x90EF, - 17212: 0x90FE, - 17213: 0x9104, - 17214: 0x9122, - 17215: 0x911E, - 17216: 0x9123, - 17217: 0x9131, - 17218: 0x912F, - 17219: 0x9139, - 17220: 0x9143, - 17221: 0x9146, - 17222: 0x520D, - 17223: 0x5942, - 17224: 0x52A2, - 17225: 0x52AC, - 17226: 0x52AD, - 17227: 0x52BE, - 17228: 0x54FF, - 17229: 0x52D0, - 17230: 0x52D6, - 17231: 0x52F0, - 17232: 0x53DF, - 17233: 0x71EE, - 17234: 0x77CD, - 17235: 0x5EF4, - 17236: 0x51F5, - 17237: 0x51FC, - 17238: 0x9B2F, - 17239: 0x53B6, - 17240: 0x5F01, - 17241: 0x755A, - 17242: 0x5DEF, - 17243: 0x574C, - 17244: 0x57A9, - 17245: 0x57A1, - 17246: 0x587E, - 17247: 0x58BC, - 17248: 0x58C5, - 17249: 0x58D1, - 17250: 0x5729, - 17251: 0x572C, - 17252: 0x572A, - 17253: 0x5733, - 17254: 0x5739, - 17255: 0x572E, - 17256: 0x572F, - 17257: 0x575C, - 17258: 0x573B, - 17259: 0x5742, - 17260: 0x5769, - 17261: 0x5785, - 17262: 0x576B, - 17263: 0x5786, - 17264: 0x577C, - 17265: 0x577B, - 17266: 0x5768, - 17267: 0x576D, - 17268: 0x5776, - 17269: 0x5773, - 17270: 0x57AD, - 17271: 0x57A4, - 17272: 0x578C, - 17273: 0x57B2, - 17274: 0x57CF, - 17275: 0x57A7, - 17276: 0x57B4, - 17277: 0x5793, - 17278: 0x57A0, - 17279: 0x57D5, - 17280: 0x57D8, - 17281: 0x57DA, - 17282: 0x57D9, - 17283: 0x57D2, - 17284: 0x57B8, - 17285: 0x57F4, - 17286: 0x57EF, - 17287: 0x57F8, - 17288: 0x57E4, - 17289: 0x57DD, - 17290: 0x8E73, - 17291: 0x8E75, - 17292: 0x8E77, - 17293: 0x8E78, - 17294: 0x8E79, - 17295: 0x8E7A, - 17296: 0x8E7B, - 17297: 0x8E7D, - 17298: 0x8E7E, - 17299: 0x8E80, - 17300: 0x8E82, - 17301: 0x8E83, - 17302: 0x8E84, - 17303: 0x8E86, - 17304: 0x8E88, - 17305: 0x8E89, - 17306: 0x8E8A, - 17307: 0x8E8B, - 17308: 0x8E8C, - 17309: 0x8E8D, - 17310: 0x8E8E, - 17311: 0x8E91, - 17312: 0x8E92, - 17313: 0x8E93, - 17314: 0x8E95, - 17315: 0x8E96, - 17316: 0x8E97, - 17317: 0x8E98, - 17318: 0x8E99, - 17319: 0x8E9A, - 17320: 0x8E9B, - 17321: 0x8E9D, - 17322: 0x8E9F, - 17323: 0x8EA0, - 17324: 0x8EA1, - 17325: 0x8EA2, - 17326: 0x8EA3, - 17327: 0x8EA4, - 17328: 0x8EA5, - 17329: 0x8EA6, - 17330: 0x8EA7, - 17331: 0x8EA8, - 17332: 0x8EA9, - 17333: 0x8EAA, - 17334: 0x8EAD, - 17335: 0x8EAE, - 17336: 0x8EB0, - 17337: 0x8EB1, - 17338: 0x8EB3, - 17339: 0x8EB4, - 17340: 0x8EB5, - 17341: 0x8EB6, - 17342: 0x8EB7, - 17343: 0x8EB8, - 17344: 0x8EB9, - 17345: 0x8EBB, - 17346: 0x8EBC, - 17347: 0x8EBD, - 17348: 0x8EBE, - 17349: 0x8EBF, - 17350: 0x8EC0, - 17351: 0x8EC1, - 17352: 0x8EC2, - 17353: 0x8EC3, - 17354: 0x8EC4, - 17355: 0x8EC5, - 17356: 0x8EC6, - 17357: 0x8EC7, - 17358: 0x8EC8, - 17359: 0x8EC9, - 17360: 0x8ECA, - 17361: 0x8ECB, - 17362: 0x8ECC, - 17363: 0x8ECD, - 17364: 0x8ECF, - 17365: 0x8ED0, - 17366: 0x8ED1, - 17367: 0x8ED2, - 17368: 0x8ED3, - 17369: 0x8ED4, - 17370: 0x8ED5, - 17371: 0x8ED6, - 17372: 0x8ED7, - 17373: 0x8ED8, - 17374: 0x8ED9, - 17375: 0x8EDA, - 17376: 0x8EDB, - 17377: 0x8EDC, - 17378: 0x8EDD, - 17379: 0x8EDE, - 17380: 0x8EDF, - 17381: 0x8EE0, - 17382: 0x8EE1, - 17383: 0x8EE2, - 17384: 0x8EE3, - 17385: 0x8EE4, - 17386: 0x580B, - 17387: 0x580D, - 17388: 0x57FD, - 17389: 0x57ED, - 17390: 0x5800, - 17391: 0x581E, - 17392: 0x5819, - 17393: 0x5844, - 17394: 0x5820, - 17395: 0x5865, - 17396: 0x586C, - 17397: 0x5881, - 17398: 0x5889, - 17399: 0x589A, - 17400: 0x5880, - 17401: 0x99A8, - 17402: 0x9F19, - 17403: 0x61FF, - 17404: 0x8279, - 17405: 0x827D, - 17406: 0x827F, - 17407: 0x828F, - 17408: 0x828A, - 17409: 0x82A8, - 17410: 0x8284, - 17411: 0x828E, - 17412: 0x8291, - 17413: 0x8297, - 17414: 0x8299, - 17415: 0x82AB, - 17416: 0x82B8, - 17417: 0x82BE, - 17418: 0x82B0, - 17419: 0x82C8, - 17420: 0x82CA, - 17421: 0x82E3, - 17422: 0x8298, - 17423: 0x82B7, - 17424: 0x82AE, - 17425: 0x82CB, - 17426: 0x82CC, - 17427: 0x82C1, - 17428: 0x82A9, - 17429: 0x82B4, - 17430: 0x82A1, - 17431: 0x82AA, - 17432: 0x829F, - 17433: 0x82C4, - 17434: 0x82CE, - 17435: 0x82A4, - 17436: 0x82E1, - 17437: 0x8309, - 17438: 0x82F7, - 17439: 0x82E4, - 17440: 0x830F, - 17441: 0x8307, - 17442: 0x82DC, - 17443: 0x82F4, - 17444: 0x82D2, - 17445: 0x82D8, - 17446: 0x830C, - 17447: 0x82FB, - 17448: 0x82D3, - 17449: 0x8311, - 17450: 0x831A, - 17451: 0x8306, - 17452: 0x8314, - 17453: 0x8315, - 17454: 0x82E0, - 17455: 0x82D5, - 17456: 0x831C, - 17457: 0x8351, - 17458: 0x835B, - 17459: 0x835C, - 17460: 0x8308, - 17461: 0x8392, - 17462: 0x833C, - 17463: 0x8334, - 17464: 0x8331, - 17465: 0x839B, - 17466: 0x835E, - 17467: 0x832F, - 17468: 0x834F, - 17469: 0x8347, - 17470: 0x8343, - 17471: 0x835F, - 17472: 0x8340, - 17473: 0x8317, - 17474: 0x8360, - 17475: 0x832D, - 17476: 0x833A, - 17477: 0x8333, - 17478: 0x8366, - 17479: 0x8365, - 17480: 0x8EE5, - 17481: 0x8EE6, - 17482: 0x8EE7, - 17483: 0x8EE8, - 17484: 0x8EE9, - 17485: 0x8EEA, - 17486: 0x8EEB, - 17487: 0x8EEC, - 17488: 0x8EED, - 17489: 0x8EEE, - 17490: 0x8EEF, - 17491: 0x8EF0, - 17492: 0x8EF1, - 17493: 0x8EF2, - 17494: 0x8EF3, - 17495: 0x8EF4, - 17496: 0x8EF5, - 17497: 0x8EF6, - 17498: 0x8EF7, - 17499: 0x8EF8, - 17500: 0x8EF9, - 17501: 0x8EFA, - 17502: 0x8EFB, - 17503: 0x8EFC, - 17504: 0x8EFD, - 17505: 0x8EFE, - 17506: 0x8EFF, - 17507: 0x8F00, - 17508: 0x8F01, - 17509: 0x8F02, - 17510: 0x8F03, - 17511: 0x8F04, - 17512: 0x8F05, - 17513: 0x8F06, - 17514: 0x8F07, - 17515: 0x8F08, - 17516: 0x8F09, - 17517: 0x8F0A, - 17518: 0x8F0B, - 17519: 0x8F0C, - 17520: 0x8F0D, - 17521: 0x8F0E, - 17522: 0x8F0F, - 17523: 0x8F10, - 17524: 0x8F11, - 17525: 0x8F12, - 17526: 0x8F13, - 17527: 0x8F14, - 17528: 0x8F15, - 17529: 0x8F16, - 17530: 0x8F17, - 17531: 0x8F18, - 17532: 0x8F19, - 17533: 0x8F1A, - 17534: 0x8F1B, - 17535: 0x8F1C, - 17536: 0x8F1D, - 17537: 0x8F1E, - 17538: 0x8F1F, - 17539: 0x8F20, - 17540: 0x8F21, - 17541: 0x8F22, - 17542: 0x8F23, - 17543: 0x8F24, - 17544: 0x8F25, - 17545: 0x8F26, - 17546: 0x8F27, - 17547: 0x8F28, - 17548: 0x8F29, - 17549: 0x8F2A, - 17550: 0x8F2B, - 17551: 0x8F2C, - 17552: 0x8F2D, - 17553: 0x8F2E, - 17554: 0x8F2F, - 17555: 0x8F30, - 17556: 0x8F31, - 17557: 0x8F32, - 17558: 0x8F33, - 17559: 0x8F34, - 17560: 0x8F35, - 17561: 0x8F36, - 17562: 0x8F37, - 17563: 0x8F38, - 17564: 0x8F39, - 17565: 0x8F3A, - 17566: 0x8F3B, - 17567: 0x8F3C, - 17568: 0x8F3D, - 17569: 0x8F3E, - 17570: 0x8F3F, - 17571: 0x8F40, - 17572: 0x8F41, - 17573: 0x8F42, - 17574: 0x8F43, - 17575: 0x8F44, - 17576: 0x8368, - 17577: 0x831B, - 17578: 0x8369, - 17579: 0x836C, - 17580: 0x836A, - 17581: 0x836D, - 17582: 0x836E, - 17583: 0x83B0, - 17584: 0x8378, - 17585: 0x83B3, - 17586: 0x83B4, - 17587: 0x83A0, - 17588: 0x83AA, - 17589: 0x8393, - 17590: 0x839C, - 17591: 0x8385, - 17592: 0x837C, - 17593: 0x83B6, - 17594: 0x83A9, - 17595: 0x837D, - 17596: 0x83B8, - 17597: 0x837B, - 17598: 0x8398, - 17599: 0x839E, - 17600: 0x83A8, - 17601: 0x83BA, - 17602: 0x83BC, - 17603: 0x83C1, - 17604: 0x8401, - 17605: 0x83E5, - 17606: 0x83D8, - 17607: 0x5807, - 17608: 0x8418, - 17609: 0x840B, - 17610: 0x83DD, - 17611: 0x83FD, - 17612: 0x83D6, - 17613: 0x841C, - 17614: 0x8438, - 17615: 0x8411, - 17616: 0x8406, - 17617: 0x83D4, - 17618: 0x83DF, - 17619: 0x840F, - 17620: 0x8403, - 17621: 0x83F8, - 17622: 0x83F9, - 17623: 0x83EA, - 17624: 0x83C5, - 17625: 0x83C0, - 17626: 0x8426, - 17627: 0x83F0, - 17628: 0x83E1, - 17629: 0x845C, - 17630: 0x8451, - 17631: 0x845A, - 17632: 0x8459, - 17633: 0x8473, - 17634: 0x8487, - 17635: 0x8488, - 17636: 0x847A, - 17637: 0x8489, - 17638: 0x8478, - 17639: 0x843C, - 17640: 0x8446, - 17641: 0x8469, - 17642: 0x8476, - 17643: 0x848C, - 17644: 0x848E, - 17645: 0x8431, - 17646: 0x846D, - 17647: 0x84C1, - 17648: 0x84CD, - 17649: 0x84D0, - 17650: 0x84E6, - 17651: 0x84BD, - 17652: 0x84D3, - 17653: 0x84CA, - 17654: 0x84BF, - 17655: 0x84BA, - 17656: 0x84E0, - 17657: 0x84A1, - 17658: 0x84B9, - 17659: 0x84B4, - 17660: 0x8497, - 17661: 0x84E5, - 17662: 0x84E3, - 17663: 0x850C, - 17664: 0x750D, - 17665: 0x8538, - 17666: 0x84F0, - 17667: 0x8539, - 17668: 0x851F, - 17669: 0x853A, - 17670: 0x8F45, - 17671: 0x8F46, - 17672: 0x8F47, - 17673: 0x8F48, - 17674: 0x8F49, - 17675: 0x8F4A, - 17676: 0x8F4B, - 17677: 0x8F4C, - 17678: 0x8F4D, - 17679: 0x8F4E, - 17680: 0x8F4F, - 17681: 0x8F50, - 17682: 0x8F51, - 17683: 0x8F52, - 17684: 0x8F53, - 17685: 0x8F54, - 17686: 0x8F55, - 17687: 0x8F56, - 17688: 0x8F57, - 17689: 0x8F58, - 17690: 0x8F59, - 17691: 0x8F5A, - 17692: 0x8F5B, - 17693: 0x8F5C, - 17694: 0x8F5D, - 17695: 0x8F5E, - 17696: 0x8F5F, - 17697: 0x8F60, - 17698: 0x8F61, - 17699: 0x8F62, - 17700: 0x8F63, - 17701: 0x8F64, - 17702: 0x8F65, - 17703: 0x8F6A, - 17704: 0x8F80, - 17705: 0x8F8C, - 17706: 0x8F92, - 17707: 0x8F9D, - 17708: 0x8FA0, - 17709: 0x8FA1, - 17710: 0x8FA2, - 17711: 0x8FA4, - 17712: 0x8FA5, - 17713: 0x8FA6, - 17714: 0x8FA7, - 17715: 0x8FAA, - 17716: 0x8FAC, - 17717: 0x8FAD, - 17718: 0x8FAE, - 17719: 0x8FAF, - 17720: 0x8FB2, - 17721: 0x8FB3, - 17722: 0x8FB4, - 17723: 0x8FB5, - 17724: 0x8FB7, - 17725: 0x8FB8, - 17726: 0x8FBA, - 17727: 0x8FBB, - 17728: 0x8FBC, - 17729: 0x8FBF, - 17730: 0x8FC0, - 17731: 0x8FC3, - 17732: 0x8FC6, - 17733: 0x8FC9, - 17734: 0x8FCA, - 17735: 0x8FCB, - 17736: 0x8FCC, - 17737: 0x8FCD, - 17738: 0x8FCF, - 17739: 0x8FD2, - 17740: 0x8FD6, - 17741: 0x8FD7, - 17742: 0x8FDA, - 17743: 0x8FE0, - 17744: 0x8FE1, - 17745: 0x8FE3, - 17746: 0x8FE7, - 17747: 0x8FEC, - 17748: 0x8FEF, - 17749: 0x8FF1, - 17750: 0x8FF2, - 17751: 0x8FF4, - 17752: 0x8FF5, - 17753: 0x8FF6, - 17754: 0x8FFA, - 17755: 0x8FFB, - 17756: 0x8FFC, - 17757: 0x8FFE, - 17758: 0x8FFF, - 17759: 0x9007, - 17760: 0x9008, - 17761: 0x900C, - 17762: 0x900E, - 17763: 0x9013, - 17764: 0x9015, - 17765: 0x9018, - 17766: 0x8556, - 17767: 0x853B, - 17768: 0x84FF, - 17769: 0x84FC, - 17770: 0x8559, - 17771: 0x8548, - 17772: 0x8568, - 17773: 0x8564, - 17774: 0x855E, - 17775: 0x857A, - 17776: 0x77A2, - 17777: 0x8543, - 17778: 0x8572, - 17779: 0x857B, - 17780: 0x85A4, - 17781: 0x85A8, - 17782: 0x8587, - 17783: 0x858F, - 17784: 0x8579, - 17785: 0x85AE, - 17786: 0x859C, - 17787: 0x8585, - 17788: 0x85B9, - 17789: 0x85B7, - 17790: 0x85B0, - 17791: 0x85D3, - 17792: 0x85C1, - 17793: 0x85DC, - 17794: 0x85FF, - 17795: 0x8627, - 17796: 0x8605, - 17797: 0x8629, - 17798: 0x8616, - 17799: 0x863C, - 17800: 0x5EFE, - 17801: 0x5F08, - 17802: 0x593C, - 17803: 0x5941, - 17804: 0x8037, - 17805: 0x5955, - 17806: 0x595A, - 17807: 0x5958, - 17808: 0x530F, - 17809: 0x5C22, - 17810: 0x5C25, - 17811: 0x5C2C, - 17812: 0x5C34, - 17813: 0x624C, - 17814: 0x626A, - 17815: 0x629F, - 17816: 0x62BB, - 17817: 0x62CA, - 17818: 0x62DA, - 17819: 0x62D7, - 17820: 0x62EE, - 17821: 0x6322, - 17822: 0x62F6, - 17823: 0x6339, - 17824: 0x634B, - 17825: 0x6343, - 17826: 0x63AD, - 17827: 0x63F6, - 17828: 0x6371, - 17829: 0x637A, - 17830: 0x638E, - 17831: 0x63B4, - 17832: 0x636D, - 17833: 0x63AC, - 17834: 0x638A, - 17835: 0x6369, - 17836: 0x63AE, - 17837: 0x63BC, - 17838: 0x63F2, - 17839: 0x63F8, - 17840: 0x63E0, - 17841: 0x63FF, - 17842: 0x63C4, - 17843: 0x63DE, - 17844: 0x63CE, - 17845: 0x6452, - 17846: 0x63C6, - 17847: 0x63BE, - 17848: 0x6445, - 17849: 0x6441, - 17850: 0x640B, - 17851: 0x641B, - 17852: 0x6420, - 17853: 0x640C, - 17854: 0x6426, - 17855: 0x6421, - 17856: 0x645E, - 17857: 0x6484, - 17858: 0x646D, - 17859: 0x6496, - 17860: 0x9019, - 17861: 0x901C, - 17862: 0x9023, - 17863: 0x9024, - 17864: 0x9025, - 17865: 0x9027, - 17866: 0x9028, - 17867: 0x9029, - 17868: 0x902A, - 17869: 0x902B, - 17870: 0x902C, - 17871: 0x9030, - 17872: 0x9031, - 17873: 0x9032, - 17874: 0x9033, - 17875: 0x9034, - 17876: 0x9037, - 17877: 0x9039, - 17878: 0x903A, - 17879: 0x903D, - 17880: 0x903F, - 17881: 0x9040, - 17882: 0x9043, - 17883: 0x9045, - 17884: 0x9046, - 17885: 0x9048, - 17886: 0x9049, - 17887: 0x904A, - 17888: 0x904B, - 17889: 0x904C, - 17890: 0x904E, - 17891: 0x9054, - 17892: 0x9055, - 17893: 0x9056, - 17894: 0x9059, - 17895: 0x905A, - 17896: 0x905C, - 17897: 0x905D, - 17898: 0x905E, - 17899: 0x905F, - 17900: 0x9060, - 17901: 0x9061, - 17902: 0x9064, - 17903: 0x9066, - 17904: 0x9067, - 17905: 0x9069, - 17906: 0x906A, - 17907: 0x906B, - 17908: 0x906C, - 17909: 0x906F, - 17910: 0x9070, - 17911: 0x9071, - 17912: 0x9072, - 17913: 0x9073, - 17914: 0x9076, - 17915: 0x9077, - 17916: 0x9078, - 17917: 0x9079, - 17918: 0x907A, - 17919: 0x907B, - 17920: 0x907C, - 17921: 0x907E, - 17922: 0x9081, - 17923: 0x9084, - 17924: 0x9085, - 17925: 0x9086, - 17926: 0x9087, - 17927: 0x9089, - 17928: 0x908A, - 17929: 0x908C, - 17930: 0x908D, - 17931: 0x908E, - 17932: 0x908F, - 17933: 0x9090, - 17934: 0x9092, - 17935: 0x9094, - 17936: 0x9096, - 17937: 0x9098, - 17938: 0x909A, - 17939: 0x909C, - 17940: 0x909E, - 17941: 0x909F, - 17942: 0x90A0, - 17943: 0x90A4, - 17944: 0x90A5, - 17945: 0x90A7, - 17946: 0x90A8, - 17947: 0x90A9, - 17948: 0x90AB, - 17949: 0x90AD, - 17950: 0x90B2, - 17951: 0x90B7, - 17952: 0x90BC, - 17953: 0x90BD, - 17954: 0x90BF, - 17955: 0x90C0, - 17956: 0x647A, - 17957: 0x64B7, - 17958: 0x64B8, - 17959: 0x6499, - 17960: 0x64BA, - 17961: 0x64C0, - 17962: 0x64D0, - 17963: 0x64D7, - 17964: 0x64E4, - 17965: 0x64E2, - 17966: 0x6509, - 17967: 0x6525, - 17968: 0x652E, - 17969: 0x5F0B, - 17970: 0x5FD2, - 17971: 0x7519, - 17972: 0x5F11, - 17973: 0x535F, - 17974: 0x53F1, - 17975: 0x53FD, - 17976: 0x53E9, - 17977: 0x53E8, - 17978: 0x53FB, - 17979: 0x5412, - 17980: 0x5416, - 17981: 0x5406, - 17982: 0x544B, - 17983: 0x5452, - 17984: 0x5453, - 17985: 0x5454, - 17986: 0x5456, - 17987: 0x5443, - 17988: 0x5421, - 17989: 0x5457, - 17990: 0x5459, - 17991: 0x5423, - 17992: 0x5432, - 17993: 0x5482, - 17994: 0x5494, - 17995: 0x5477, - 17996: 0x5471, - 17997: 0x5464, - 17998: 0x549A, - 17999: 0x549B, - 18000: 0x5484, - 18001: 0x5476, - 18002: 0x5466, - 18003: 0x549D, - 18004: 0x54D0, - 18005: 0x54AD, - 18006: 0x54C2, - 18007: 0x54B4, - 18008: 0x54D2, - 18009: 0x54A7, - 18010: 0x54A6, - 18011: 0x54D3, - 18012: 0x54D4, - 18013: 0x5472, - 18014: 0x54A3, - 18015: 0x54D5, - 18016: 0x54BB, - 18017: 0x54BF, - 18018: 0x54CC, - 18019: 0x54D9, - 18020: 0x54DA, - 18021: 0x54DC, - 18022: 0x54A9, - 18023: 0x54AA, - 18024: 0x54A4, - 18025: 0x54DD, - 18026: 0x54CF, - 18027: 0x54DE, - 18028: 0x551B, - 18029: 0x54E7, - 18030: 0x5520, - 18031: 0x54FD, - 18032: 0x5514, - 18033: 0x54F3, - 18034: 0x5522, - 18035: 0x5523, - 18036: 0x550F, - 18037: 0x5511, - 18038: 0x5527, - 18039: 0x552A, - 18040: 0x5567, - 18041: 0x558F, - 18042: 0x55B5, - 18043: 0x5549, - 18044: 0x556D, - 18045: 0x5541, - 18046: 0x5555, - 18047: 0x553F, - 18048: 0x5550, - 18049: 0x553C, - 18050: 0x90C2, - 18051: 0x90C3, - 18052: 0x90C6, - 18053: 0x90C8, - 18054: 0x90C9, - 18055: 0x90CB, - 18056: 0x90CC, - 18057: 0x90CD, - 18058: 0x90D2, - 18059: 0x90D4, - 18060: 0x90D5, - 18061: 0x90D6, - 18062: 0x90D8, - 18063: 0x90D9, - 18064: 0x90DA, - 18065: 0x90DE, - 18066: 0x90DF, - 18067: 0x90E0, - 18068: 0x90E3, - 18069: 0x90E4, - 18070: 0x90E5, - 18071: 0x90E9, - 18072: 0x90EA, - 18073: 0x90EC, - 18074: 0x90EE, - 18075: 0x90F0, - 18076: 0x90F1, - 18077: 0x90F2, - 18078: 0x90F3, - 18079: 0x90F5, - 18080: 0x90F6, - 18081: 0x90F7, - 18082: 0x90F9, - 18083: 0x90FA, - 18084: 0x90FB, - 18085: 0x90FC, - 18086: 0x90FF, - 18087: 0x9100, - 18088: 0x9101, - 18089: 0x9103, - 18090: 0x9105, - 18091: 0x9106, - 18092: 0x9107, - 18093: 0x9108, - 18094: 0x9109, - 18095: 0x910A, - 18096: 0x910B, - 18097: 0x910C, - 18098: 0x910D, - 18099: 0x910E, - 18100: 0x910F, - 18101: 0x9110, - 18102: 0x9111, - 18103: 0x9112, - 18104: 0x9113, - 18105: 0x9114, - 18106: 0x9115, - 18107: 0x9116, - 18108: 0x9117, - 18109: 0x9118, - 18110: 0x911A, - 18111: 0x911B, - 18112: 0x911C, - 18113: 0x911D, - 18114: 0x911F, - 18115: 0x9120, - 18116: 0x9121, - 18117: 0x9124, - 18118: 0x9125, - 18119: 0x9126, - 18120: 0x9127, - 18121: 0x9128, - 18122: 0x9129, - 18123: 0x912A, - 18124: 0x912B, - 18125: 0x912C, - 18126: 0x912D, - 18127: 0x912E, - 18128: 0x9130, - 18129: 0x9132, - 18130: 0x9133, - 18131: 0x9134, - 18132: 0x9135, - 18133: 0x9136, - 18134: 0x9137, - 18135: 0x9138, - 18136: 0x913A, - 18137: 0x913B, - 18138: 0x913C, - 18139: 0x913D, - 18140: 0x913E, - 18141: 0x913F, - 18142: 0x9140, - 18143: 0x9141, - 18144: 0x9142, - 18145: 0x9144, - 18146: 0x5537, - 18147: 0x5556, - 18148: 0x5575, - 18149: 0x5576, - 18150: 0x5577, - 18151: 0x5533, - 18152: 0x5530, - 18153: 0x555C, - 18154: 0x558B, - 18155: 0x55D2, - 18156: 0x5583, - 18157: 0x55B1, - 18158: 0x55B9, - 18159: 0x5588, - 18160: 0x5581, - 18161: 0x559F, - 18162: 0x557E, - 18163: 0x55D6, - 18164: 0x5591, - 18165: 0x557B, - 18166: 0x55DF, - 18167: 0x55BD, - 18168: 0x55BE, - 18169: 0x5594, - 18170: 0x5599, - 18171: 0x55EA, - 18172: 0x55F7, - 18173: 0x55C9, - 18174: 0x561F, - 18175: 0x55D1, - 18176: 0x55EB, - 18177: 0x55EC, - 18178: 0x55D4, - 18179: 0x55E6, - 18180: 0x55DD, - 18181: 0x55C4, - 18182: 0x55EF, - 18183: 0x55E5, - 18184: 0x55F2, - 18185: 0x55F3, - 18186: 0x55CC, - 18187: 0x55CD, - 18188: 0x55E8, - 18189: 0x55F5, - 18190: 0x55E4, - 18191: 0x8F94, - 18192: 0x561E, - 18193: 0x5608, - 18194: 0x560C, - 18195: 0x5601, - 18196: 0x5624, - 18197: 0x5623, - 18198: 0x55FE, - 18199: 0x5600, - 18200: 0x5627, - 18201: 0x562D, - 18202: 0x5658, - 18203: 0x5639, - 18204: 0x5657, - 18205: 0x562C, - 18206: 0x564D, - 18207: 0x5662, - 18208: 0x5659, - 18209: 0x565C, - 18210: 0x564C, - 18211: 0x5654, - 18212: 0x5686, - 18213: 0x5664, - 18214: 0x5671, - 18215: 0x566B, - 18216: 0x567B, - 18217: 0x567C, - 18218: 0x5685, - 18219: 0x5693, - 18220: 0x56AF, - 18221: 0x56D4, - 18222: 0x56D7, - 18223: 0x56DD, - 18224: 0x56E1, - 18225: 0x56F5, - 18226: 0x56EB, - 18227: 0x56F9, - 18228: 0x56FF, - 18229: 0x5704, - 18230: 0x570A, - 18231: 0x5709, - 18232: 0x571C, - 18233: 0x5E0F, - 18234: 0x5E19, - 18235: 0x5E14, - 18236: 0x5E11, - 18237: 0x5E31, - 18238: 0x5E3B, - 18239: 0x5E3C, - 18240: 0x9145, - 18241: 0x9147, - 18242: 0x9148, - 18243: 0x9151, - 18244: 0x9153, - 18245: 0x9154, - 18246: 0x9155, - 18247: 0x9156, - 18248: 0x9158, - 18249: 0x9159, - 18250: 0x915B, - 18251: 0x915C, - 18252: 0x915F, - 18253: 0x9160, - 18254: 0x9166, - 18255: 0x9167, - 18256: 0x9168, - 18257: 0x916B, - 18258: 0x916D, - 18259: 0x9173, - 18260: 0x917A, - 18261: 0x917B, - 18262: 0x917C, - 18263: 0x9180, - 18264: 0x9181, - 18265: 0x9182, - 18266: 0x9183, - 18267: 0x9184, - 18268: 0x9186, - 18269: 0x9188, - 18270: 0x918A, - 18271: 0x918E, - 18272: 0x918F, - 18273: 0x9193, - 18274: 0x9194, - 18275: 0x9195, - 18276: 0x9196, - 18277: 0x9197, - 18278: 0x9198, - 18279: 0x9199, - 18280: 0x919C, - 18281: 0x919D, - 18282: 0x919E, - 18283: 0x919F, - 18284: 0x91A0, - 18285: 0x91A1, - 18286: 0x91A4, - 18287: 0x91A5, - 18288: 0x91A6, - 18289: 0x91A7, - 18290: 0x91A8, - 18291: 0x91A9, - 18292: 0x91AB, - 18293: 0x91AC, - 18294: 0x91B0, - 18295: 0x91B1, - 18296: 0x91B2, - 18297: 0x91B3, - 18298: 0x91B6, - 18299: 0x91B7, - 18300: 0x91B8, - 18301: 0x91B9, - 18302: 0x91BB, - 18303: 0x91BC, - 18304: 0x91BD, - 18305: 0x91BE, - 18306: 0x91BF, - 18307: 0x91C0, - 18308: 0x91C1, - 18309: 0x91C2, - 18310: 0x91C3, - 18311: 0x91C4, - 18312: 0x91C5, - 18313: 0x91C6, - 18314: 0x91C8, - 18315: 0x91CB, - 18316: 0x91D0, - 18317: 0x91D2, - 18318: 0x91D3, - 18319: 0x91D4, - 18320: 0x91D5, - 18321: 0x91D6, - 18322: 0x91D7, - 18323: 0x91D8, - 18324: 0x91D9, - 18325: 0x91DA, - 18326: 0x91DB, - 18327: 0x91DD, - 18328: 0x91DE, - 18329: 0x91DF, - 18330: 0x91E0, - 18331: 0x91E1, - 18332: 0x91E2, - 18333: 0x91E3, - 18334: 0x91E4, - 18335: 0x91E5, - 18336: 0x5E37, - 18337: 0x5E44, - 18338: 0x5E54, - 18339: 0x5E5B, - 18340: 0x5E5E, - 18341: 0x5E61, - 18342: 0x5C8C, - 18343: 0x5C7A, - 18344: 0x5C8D, - 18345: 0x5C90, - 18346: 0x5C96, - 18347: 0x5C88, - 18348: 0x5C98, - 18349: 0x5C99, - 18350: 0x5C91, - 18351: 0x5C9A, - 18352: 0x5C9C, - 18353: 0x5CB5, - 18354: 0x5CA2, - 18355: 0x5CBD, - 18356: 0x5CAC, - 18357: 0x5CAB, - 18358: 0x5CB1, - 18359: 0x5CA3, - 18360: 0x5CC1, - 18361: 0x5CB7, - 18362: 0x5CC4, - 18363: 0x5CD2, - 18364: 0x5CE4, - 18365: 0x5CCB, - 18366: 0x5CE5, - 18367: 0x5D02, - 18368: 0x5D03, - 18369: 0x5D27, - 18370: 0x5D26, - 18371: 0x5D2E, - 18372: 0x5D24, - 18373: 0x5D1E, - 18374: 0x5D06, - 18375: 0x5D1B, - 18376: 0x5D58, - 18377: 0x5D3E, - 18378: 0x5D34, - 18379: 0x5D3D, - 18380: 0x5D6C, - 18381: 0x5D5B, - 18382: 0x5D6F, - 18383: 0x5D5D, - 18384: 0x5D6B, - 18385: 0x5D4B, - 18386: 0x5D4A, - 18387: 0x5D69, - 18388: 0x5D74, - 18389: 0x5D82, - 18390: 0x5D99, - 18391: 0x5D9D, - 18392: 0x8C73, - 18393: 0x5DB7, - 18394: 0x5DC5, - 18395: 0x5F73, - 18396: 0x5F77, - 18397: 0x5F82, - 18398: 0x5F87, - 18399: 0x5F89, - 18400: 0x5F8C, - 18401: 0x5F95, - 18402: 0x5F99, - 18403: 0x5F9C, - 18404: 0x5FA8, - 18405: 0x5FAD, - 18406: 0x5FB5, - 18407: 0x5FBC, - 18408: 0x8862, - 18409: 0x5F61, - 18410: 0x72AD, - 18411: 0x72B0, - 18412: 0x72B4, - 18413: 0x72B7, - 18414: 0x72B8, - 18415: 0x72C3, - 18416: 0x72C1, - 18417: 0x72CE, - 18418: 0x72CD, - 18419: 0x72D2, - 18420: 0x72E8, - 18421: 0x72EF, - 18422: 0x72E9, - 18423: 0x72F2, - 18424: 0x72F4, - 18425: 0x72F7, - 18426: 0x7301, - 18427: 0x72F3, - 18428: 0x7303, - 18429: 0x72FA, - 18430: 0x91E6, - 18431: 0x91E7, - 18432: 0x91E8, - 18433: 0x91E9, - 18434: 0x91EA, - 18435: 0x91EB, - 18436: 0x91EC, - 18437: 0x91ED, - 18438: 0x91EE, - 18439: 0x91EF, - 18440: 0x91F0, - 18441: 0x91F1, - 18442: 0x91F2, - 18443: 0x91F3, - 18444: 0x91F4, - 18445: 0x91F5, - 18446: 0x91F6, - 18447: 0x91F7, - 18448: 0x91F8, - 18449: 0x91F9, - 18450: 0x91FA, - 18451: 0x91FB, - 18452: 0x91FC, - 18453: 0x91FD, - 18454: 0x91FE, - 18455: 0x91FF, - 18456: 0x9200, - 18457: 0x9201, - 18458: 0x9202, - 18459: 0x9203, - 18460: 0x9204, - 18461: 0x9205, - 18462: 0x9206, - 18463: 0x9207, - 18464: 0x9208, - 18465: 0x9209, - 18466: 0x920A, - 18467: 0x920B, - 18468: 0x920C, - 18469: 0x920D, - 18470: 0x920E, - 18471: 0x920F, - 18472: 0x9210, - 18473: 0x9211, - 18474: 0x9212, - 18475: 0x9213, - 18476: 0x9214, - 18477: 0x9215, - 18478: 0x9216, - 18479: 0x9217, - 18480: 0x9218, - 18481: 0x9219, - 18482: 0x921A, - 18483: 0x921B, - 18484: 0x921C, - 18485: 0x921D, - 18486: 0x921E, - 18487: 0x921F, - 18488: 0x9220, - 18489: 0x9221, - 18490: 0x9222, - 18491: 0x9223, - 18492: 0x9224, - 18493: 0x9225, - 18494: 0x9226, - 18495: 0x9227, - 18496: 0x9228, - 18497: 0x9229, - 18498: 0x922A, - 18499: 0x922B, - 18500: 0x922C, - 18501: 0x922D, - 18502: 0x922E, - 18503: 0x922F, - 18504: 0x9230, - 18505: 0x9231, - 18506: 0x9232, - 18507: 0x9233, - 18508: 0x9234, - 18509: 0x9235, - 18510: 0x9236, - 18511: 0x9237, - 18512: 0x9238, - 18513: 0x9239, - 18514: 0x923A, - 18515: 0x923B, - 18516: 0x923C, - 18517: 0x923D, - 18518: 0x923E, - 18519: 0x923F, - 18520: 0x9240, - 18521: 0x9241, - 18522: 0x9242, - 18523: 0x9243, - 18524: 0x9244, - 18525: 0x9245, - 18526: 0x72FB, - 18527: 0x7317, - 18528: 0x7313, - 18529: 0x7321, - 18530: 0x730A, - 18531: 0x731E, - 18532: 0x731D, - 18533: 0x7315, - 18534: 0x7322, - 18535: 0x7339, - 18536: 0x7325, - 18537: 0x732C, - 18538: 0x7338, - 18539: 0x7331, - 18540: 0x7350, - 18541: 0x734D, - 18542: 0x7357, - 18543: 0x7360, - 18544: 0x736C, - 18545: 0x736F, - 18546: 0x737E, - 18547: 0x821B, - 18548: 0x5925, - 18549: 0x98E7, - 18550: 0x5924, - 18551: 0x5902, - 18552: 0x9963, - 18553: 0x9967, - 18554: 0x9968, - 18555: 0x9969, - 18556: 0x996A, - 18557: 0x996B, - 18558: 0x996C, - 18559: 0x9974, - 18560: 0x9977, - 18561: 0x997D, - 18562: 0x9980, - 18563: 0x9984, - 18564: 0x9987, - 18565: 0x998A, - 18566: 0x998D, - 18567: 0x9990, - 18568: 0x9991, - 18569: 0x9993, - 18570: 0x9994, - 18571: 0x9995, - 18572: 0x5E80, - 18573: 0x5E91, - 18574: 0x5E8B, - 18575: 0x5E96, - 18576: 0x5EA5, - 18577: 0x5EA0, - 18578: 0x5EB9, - 18579: 0x5EB5, - 18580: 0x5EBE, - 18581: 0x5EB3, - 18582: 0x8D53, - 18583: 0x5ED2, - 18584: 0x5ED1, - 18585: 0x5EDB, - 18586: 0x5EE8, - 18587: 0x5EEA, - 18588: 0x81BA, - 18589: 0x5FC4, - 18590: 0x5FC9, - 18591: 0x5FD6, - 18592: 0x5FCF, - 18593: 0x6003, - 18594: 0x5FEE, - 18595: 0x6004, - 18596: 0x5FE1, - 18597: 0x5FE4, - 18598: 0x5FFE, - 18599: 0x6005, - 18600: 0x6006, - 18601: 0x5FEA, - 18602: 0x5FED, - 18603: 0x5FF8, - 18604: 0x6019, - 18605: 0x6035, - 18606: 0x6026, - 18607: 0x601B, - 18608: 0x600F, - 18609: 0x600D, - 18610: 0x6029, - 18611: 0x602B, - 18612: 0x600A, - 18613: 0x603F, - 18614: 0x6021, - 18615: 0x6078, - 18616: 0x6079, - 18617: 0x607B, - 18618: 0x607A, - 18619: 0x6042, - 18620: 0x9246, - 18621: 0x9247, - 18622: 0x9248, - 18623: 0x9249, - 18624: 0x924A, - 18625: 0x924B, - 18626: 0x924C, - 18627: 0x924D, - 18628: 0x924E, - 18629: 0x924F, - 18630: 0x9250, - 18631: 0x9251, - 18632: 0x9252, - 18633: 0x9253, - 18634: 0x9254, - 18635: 0x9255, - 18636: 0x9256, - 18637: 0x9257, - 18638: 0x9258, - 18639: 0x9259, - 18640: 0x925A, - 18641: 0x925B, - 18642: 0x925C, - 18643: 0x925D, - 18644: 0x925E, - 18645: 0x925F, - 18646: 0x9260, - 18647: 0x9261, - 18648: 0x9262, - 18649: 0x9263, - 18650: 0x9264, - 18651: 0x9265, - 18652: 0x9266, - 18653: 0x9267, - 18654: 0x9268, - 18655: 0x9269, - 18656: 0x926A, - 18657: 0x926B, - 18658: 0x926C, - 18659: 0x926D, - 18660: 0x926E, - 18661: 0x926F, - 18662: 0x9270, - 18663: 0x9271, - 18664: 0x9272, - 18665: 0x9273, - 18666: 0x9275, - 18667: 0x9276, - 18668: 0x9277, - 18669: 0x9278, - 18670: 0x9279, - 18671: 0x927A, - 18672: 0x927B, - 18673: 0x927C, - 18674: 0x927D, - 18675: 0x927E, - 18676: 0x927F, - 18677: 0x9280, - 18678: 0x9281, - 18679: 0x9282, - 18680: 0x9283, - 18681: 0x9284, - 18682: 0x9285, - 18683: 0x9286, - 18684: 0x9287, - 18685: 0x9288, - 18686: 0x9289, - 18687: 0x928A, - 18688: 0x928B, - 18689: 0x928C, - 18690: 0x928D, - 18691: 0x928F, - 18692: 0x9290, - 18693: 0x9291, - 18694: 0x9292, - 18695: 0x9293, - 18696: 0x9294, - 18697: 0x9295, - 18698: 0x9296, - 18699: 0x9297, - 18700: 0x9298, - 18701: 0x9299, - 18702: 0x929A, - 18703: 0x929B, - 18704: 0x929C, - 18705: 0x929D, - 18706: 0x929E, - 18707: 0x929F, - 18708: 0x92A0, - 18709: 0x92A1, - 18710: 0x92A2, - 18711: 0x92A3, - 18712: 0x92A4, - 18713: 0x92A5, - 18714: 0x92A6, - 18715: 0x92A7, - 18716: 0x606A, - 18717: 0x607D, - 18718: 0x6096, - 18719: 0x609A, - 18720: 0x60AD, - 18721: 0x609D, - 18722: 0x6083, - 18723: 0x6092, - 18724: 0x608C, - 18725: 0x609B, - 18726: 0x60EC, - 18727: 0x60BB, - 18728: 0x60B1, - 18729: 0x60DD, - 18730: 0x60D8, - 18731: 0x60C6, - 18732: 0x60DA, - 18733: 0x60B4, - 18734: 0x6120, - 18735: 0x6126, - 18736: 0x6115, - 18737: 0x6123, - 18738: 0x60F4, - 18739: 0x6100, - 18740: 0x610E, - 18741: 0x612B, - 18742: 0x614A, - 18743: 0x6175, - 18744: 0x61AC, - 18745: 0x6194, - 18746: 0x61A7, - 18747: 0x61B7, - 18748: 0x61D4, - 18749: 0x61F5, - 18750: 0x5FDD, - 18751: 0x96B3, - 18752: 0x95E9, - 18753: 0x95EB, - 18754: 0x95F1, - 18755: 0x95F3, - 18756: 0x95F5, - 18757: 0x95F6, - 18758: 0x95FC, - 18759: 0x95FE, - 18760: 0x9603, - 18761: 0x9604, - 18762: 0x9606, - 18763: 0x9608, - 18764: 0x960A, - 18765: 0x960B, - 18766: 0x960C, - 18767: 0x960D, - 18768: 0x960F, - 18769: 0x9612, - 18770: 0x9615, - 18771: 0x9616, - 18772: 0x9617, - 18773: 0x9619, - 18774: 0x961A, - 18775: 0x4E2C, - 18776: 0x723F, - 18777: 0x6215, - 18778: 0x6C35, - 18779: 0x6C54, - 18780: 0x6C5C, - 18781: 0x6C4A, - 18782: 0x6CA3, - 18783: 0x6C85, - 18784: 0x6C90, - 18785: 0x6C94, - 18786: 0x6C8C, - 18787: 0x6C68, - 18788: 0x6C69, - 18789: 0x6C74, - 18790: 0x6C76, - 18791: 0x6C86, - 18792: 0x6CA9, - 18793: 0x6CD0, - 18794: 0x6CD4, - 18795: 0x6CAD, - 18796: 0x6CF7, - 18797: 0x6CF8, - 18798: 0x6CF1, - 18799: 0x6CD7, - 18800: 0x6CB2, - 18801: 0x6CE0, - 18802: 0x6CD6, - 18803: 0x6CFA, - 18804: 0x6CEB, - 18805: 0x6CEE, - 18806: 0x6CB1, - 18807: 0x6CD3, - 18808: 0x6CEF, - 18809: 0x6CFE, - 18810: 0x92A8, - 18811: 0x92A9, - 18812: 0x92AA, - 18813: 0x92AB, - 18814: 0x92AC, - 18815: 0x92AD, - 18816: 0x92AF, - 18817: 0x92B0, - 18818: 0x92B1, - 18819: 0x92B2, - 18820: 0x92B3, - 18821: 0x92B4, - 18822: 0x92B5, - 18823: 0x92B6, - 18824: 0x92B7, - 18825: 0x92B8, - 18826: 0x92B9, - 18827: 0x92BA, - 18828: 0x92BB, - 18829: 0x92BC, - 18830: 0x92BD, - 18831: 0x92BE, - 18832: 0x92BF, - 18833: 0x92C0, - 18834: 0x92C1, - 18835: 0x92C2, - 18836: 0x92C3, - 18837: 0x92C4, - 18838: 0x92C5, - 18839: 0x92C6, - 18840: 0x92C7, - 18841: 0x92C9, - 18842: 0x92CA, - 18843: 0x92CB, - 18844: 0x92CC, - 18845: 0x92CD, - 18846: 0x92CE, - 18847: 0x92CF, - 18848: 0x92D0, - 18849: 0x92D1, - 18850: 0x92D2, - 18851: 0x92D3, - 18852: 0x92D4, - 18853: 0x92D5, - 18854: 0x92D6, - 18855: 0x92D7, - 18856: 0x92D8, - 18857: 0x92D9, - 18858: 0x92DA, - 18859: 0x92DB, - 18860: 0x92DC, - 18861: 0x92DD, - 18862: 0x92DE, - 18863: 0x92DF, - 18864: 0x92E0, - 18865: 0x92E1, - 18866: 0x92E2, - 18867: 0x92E3, - 18868: 0x92E4, - 18869: 0x92E5, - 18870: 0x92E6, - 18871: 0x92E7, - 18872: 0x92E8, - 18873: 0x92E9, - 18874: 0x92EA, - 18875: 0x92EB, - 18876: 0x92EC, - 18877: 0x92ED, - 18878: 0x92EE, - 18879: 0x92EF, - 18880: 0x92F0, - 18881: 0x92F1, - 18882: 0x92F2, - 18883: 0x92F3, - 18884: 0x92F4, - 18885: 0x92F5, - 18886: 0x92F6, - 18887: 0x92F7, - 18888: 0x92F8, - 18889: 0x92F9, - 18890: 0x92FA, - 18891: 0x92FB, - 18892: 0x92FC, - 18893: 0x92FD, - 18894: 0x92FE, - 18895: 0x92FF, - 18896: 0x9300, - 18897: 0x9301, - 18898: 0x9302, - 18899: 0x9303, - 18900: 0x9304, - 18901: 0x9305, - 18902: 0x9306, - 18903: 0x9307, - 18904: 0x9308, - 18905: 0x9309, - 18906: 0x6D39, - 18907: 0x6D27, - 18908: 0x6D0C, - 18909: 0x6D43, - 18910: 0x6D48, - 18911: 0x6D07, - 18912: 0x6D04, - 18913: 0x6D19, - 18914: 0x6D0E, - 18915: 0x6D2B, - 18916: 0x6D4D, - 18917: 0x6D2E, - 18918: 0x6D35, - 18919: 0x6D1A, - 18920: 0x6D4F, - 18921: 0x6D52, - 18922: 0x6D54, - 18923: 0x6D33, - 18924: 0x6D91, - 18925: 0x6D6F, - 18926: 0x6D9E, - 18927: 0x6DA0, - 18928: 0x6D5E, - 18929: 0x6D93, - 18930: 0x6D94, - 18931: 0x6D5C, - 18932: 0x6D60, - 18933: 0x6D7C, - 18934: 0x6D63, - 18935: 0x6E1A, - 18936: 0x6DC7, - 18937: 0x6DC5, - 18938: 0x6DDE, - 18939: 0x6E0E, - 18940: 0x6DBF, - 18941: 0x6DE0, - 18942: 0x6E11, - 18943: 0x6DE6, - 18944: 0x6DDD, - 18945: 0x6DD9, - 18946: 0x6E16, - 18947: 0x6DAB, - 18948: 0x6E0C, - 18949: 0x6DAE, - 18950: 0x6E2B, - 18951: 0x6E6E, - 18952: 0x6E4E, - 18953: 0x6E6B, - 18954: 0x6EB2, - 18955: 0x6E5F, - 18956: 0x6E86, - 18957: 0x6E53, - 18958: 0x6E54, - 18959: 0x6E32, - 18960: 0x6E25, - 18961: 0x6E44, - 18962: 0x6EDF, - 18963: 0x6EB1, - 18964: 0x6E98, - 18965: 0x6EE0, - 18966: 0x6F2D, - 18967: 0x6EE2, - 18968: 0x6EA5, - 18969: 0x6EA7, - 18970: 0x6EBD, - 18971: 0x6EBB, - 18972: 0x6EB7, - 18973: 0x6ED7, - 18974: 0x6EB4, - 18975: 0x6ECF, - 18976: 0x6E8F, - 18977: 0x6EC2, - 18978: 0x6E9F, - 18979: 0x6F62, - 18980: 0x6F46, - 18981: 0x6F47, - 18982: 0x6F24, - 18983: 0x6F15, - 18984: 0x6EF9, - 18985: 0x6F2F, - 18986: 0x6F36, - 18987: 0x6F4B, - 18988: 0x6F74, - 18989: 0x6F2A, - 18990: 0x6F09, - 18991: 0x6F29, - 18992: 0x6F89, - 18993: 0x6F8D, - 18994: 0x6F8C, - 18995: 0x6F78, - 18996: 0x6F72, - 18997: 0x6F7C, - 18998: 0x6F7A, - 18999: 0x6FD1, - 19000: 0x930A, - 19001: 0x930B, - 19002: 0x930C, - 19003: 0x930D, - 19004: 0x930E, - 19005: 0x930F, - 19006: 0x9310, - 19007: 0x9311, - 19008: 0x9312, - 19009: 0x9313, - 19010: 0x9314, - 19011: 0x9315, - 19012: 0x9316, - 19013: 0x9317, - 19014: 0x9318, - 19015: 0x9319, - 19016: 0x931A, - 19017: 0x931B, - 19018: 0x931C, - 19019: 0x931D, - 19020: 0x931E, - 19021: 0x931F, - 19022: 0x9320, - 19023: 0x9321, - 19024: 0x9322, - 19025: 0x9323, - 19026: 0x9324, - 19027: 0x9325, - 19028: 0x9326, - 19029: 0x9327, - 19030: 0x9328, - 19031: 0x9329, - 19032: 0x932A, - 19033: 0x932B, - 19034: 0x932C, - 19035: 0x932D, - 19036: 0x932E, - 19037: 0x932F, - 19038: 0x9330, - 19039: 0x9331, - 19040: 0x9332, - 19041: 0x9333, - 19042: 0x9334, - 19043: 0x9335, - 19044: 0x9336, - 19045: 0x9337, - 19046: 0x9338, - 19047: 0x9339, - 19048: 0x933A, - 19049: 0x933B, - 19050: 0x933C, - 19051: 0x933D, - 19052: 0x933F, - 19053: 0x9340, - 19054: 0x9341, - 19055: 0x9342, - 19056: 0x9343, - 19057: 0x9344, - 19058: 0x9345, - 19059: 0x9346, - 19060: 0x9347, - 19061: 0x9348, - 19062: 0x9349, - 19063: 0x934A, - 19064: 0x934B, - 19065: 0x934C, - 19066: 0x934D, - 19067: 0x934E, - 19068: 0x934F, - 19069: 0x9350, - 19070: 0x9351, - 19071: 0x9352, - 19072: 0x9353, - 19073: 0x9354, - 19074: 0x9355, - 19075: 0x9356, - 19076: 0x9357, - 19077: 0x9358, - 19078: 0x9359, - 19079: 0x935A, - 19080: 0x935B, - 19081: 0x935C, - 19082: 0x935D, - 19083: 0x935E, - 19084: 0x935F, - 19085: 0x9360, - 19086: 0x9361, - 19087: 0x9362, - 19088: 0x9363, - 19089: 0x9364, - 19090: 0x9365, - 19091: 0x9366, - 19092: 0x9367, - 19093: 0x9368, - 19094: 0x9369, - 19095: 0x936B, - 19096: 0x6FC9, - 19097: 0x6FA7, - 19098: 0x6FB9, - 19099: 0x6FB6, - 19100: 0x6FC2, - 19101: 0x6FE1, - 19102: 0x6FEE, - 19103: 0x6FDE, - 19104: 0x6FE0, - 19105: 0x6FEF, - 19106: 0x701A, - 19107: 0x7023, - 19108: 0x701B, - 19109: 0x7039, - 19110: 0x7035, - 19111: 0x704F, - 19112: 0x705E, - 19113: 0x5B80, - 19114: 0x5B84, - 19115: 0x5B95, - 19116: 0x5B93, - 19117: 0x5BA5, - 19118: 0x5BB8, - 19119: 0x752F, - 19120: 0x9A9E, - 19121: 0x6434, - 19122: 0x5BE4, - 19123: 0x5BEE, - 19124: 0x8930, - 19125: 0x5BF0, - 19126: 0x8E47, - 19127: 0x8B07, - 19128: 0x8FB6, - 19129: 0x8FD3, - 19130: 0x8FD5, - 19131: 0x8FE5, - 19132: 0x8FEE, - 19133: 0x8FE4, - 19134: 0x8FE9, - 19135: 0x8FE6, - 19136: 0x8FF3, - 19137: 0x8FE8, - 19138: 0x9005, - 19139: 0x9004, - 19140: 0x900B, - 19141: 0x9026, - 19142: 0x9011, - 19143: 0x900D, - 19144: 0x9016, - 19145: 0x9021, - 19146: 0x9035, - 19147: 0x9036, - 19148: 0x902D, - 19149: 0x902F, - 19150: 0x9044, - 19151: 0x9051, - 19152: 0x9052, - 19153: 0x9050, - 19154: 0x9068, - 19155: 0x9058, - 19156: 0x9062, - 19157: 0x905B, - 19158: 0x66B9, - 19159: 0x9074, - 19160: 0x907D, - 19161: 0x9082, - 19162: 0x9088, - 19163: 0x9083, - 19164: 0x908B, - 19165: 0x5F50, - 19166: 0x5F57, - 19167: 0x5F56, - 19168: 0x5F58, - 19169: 0x5C3B, - 19170: 0x54AB, - 19171: 0x5C50, - 19172: 0x5C59, - 19173: 0x5B71, - 19174: 0x5C63, - 19175: 0x5C66, - 19176: 0x7FBC, - 19177: 0x5F2A, - 19178: 0x5F29, - 19179: 0x5F2D, - 19180: 0x8274, - 19181: 0x5F3C, - 19182: 0x9B3B, - 19183: 0x5C6E, - 19184: 0x5981, - 19185: 0x5983, - 19186: 0x598D, - 19187: 0x59A9, - 19188: 0x59AA, - 19189: 0x59A3, - 19190: 0x936C, - 19191: 0x936D, - 19192: 0x936E, - 19193: 0x936F, - 19194: 0x9370, - 19195: 0x9371, - 19196: 0x9372, - 19197: 0x9373, - 19198: 0x9374, - 19199: 0x9375, - 19200: 0x9376, - 19201: 0x9377, - 19202: 0x9378, - 19203: 0x9379, - 19204: 0x937A, - 19205: 0x937B, - 19206: 0x937C, - 19207: 0x937D, - 19208: 0x937E, - 19209: 0x937F, - 19210: 0x9380, - 19211: 0x9381, - 19212: 0x9382, - 19213: 0x9383, - 19214: 0x9384, - 19215: 0x9385, - 19216: 0x9386, - 19217: 0x9387, - 19218: 0x9388, - 19219: 0x9389, - 19220: 0x938A, - 19221: 0x938B, - 19222: 0x938C, - 19223: 0x938D, - 19224: 0x938E, - 19225: 0x9390, - 19226: 0x9391, - 19227: 0x9392, - 19228: 0x9393, - 19229: 0x9394, - 19230: 0x9395, - 19231: 0x9396, - 19232: 0x9397, - 19233: 0x9398, - 19234: 0x9399, - 19235: 0x939A, - 19236: 0x939B, - 19237: 0x939C, - 19238: 0x939D, - 19239: 0x939E, - 19240: 0x939F, - 19241: 0x93A0, - 19242: 0x93A1, - 19243: 0x93A2, - 19244: 0x93A3, - 19245: 0x93A4, - 19246: 0x93A5, - 19247: 0x93A6, - 19248: 0x93A7, - 19249: 0x93A8, - 19250: 0x93A9, - 19251: 0x93AA, - 19252: 0x93AB, - 19253: 0x93AC, - 19254: 0x93AD, - 19255: 0x93AE, - 19256: 0x93AF, - 19257: 0x93B0, - 19258: 0x93B1, - 19259: 0x93B2, - 19260: 0x93B3, - 19261: 0x93B4, - 19262: 0x93B5, - 19263: 0x93B6, - 19264: 0x93B7, - 19265: 0x93B8, - 19266: 0x93B9, - 19267: 0x93BA, - 19268: 0x93BB, - 19269: 0x93BC, - 19270: 0x93BD, - 19271: 0x93BE, - 19272: 0x93BF, - 19273: 0x93C0, - 19274: 0x93C1, - 19275: 0x93C2, - 19276: 0x93C3, - 19277: 0x93C4, - 19278: 0x93C5, - 19279: 0x93C6, - 19280: 0x93C7, - 19281: 0x93C8, - 19282: 0x93C9, - 19283: 0x93CB, - 19284: 0x93CC, - 19285: 0x93CD, - 19286: 0x5997, - 19287: 0x59CA, - 19288: 0x59AB, - 19289: 0x599E, - 19290: 0x59A4, - 19291: 0x59D2, - 19292: 0x59B2, - 19293: 0x59AF, - 19294: 0x59D7, - 19295: 0x59BE, - 19296: 0x5A05, - 19297: 0x5A06, - 19298: 0x59DD, - 19299: 0x5A08, - 19300: 0x59E3, - 19301: 0x59D8, - 19302: 0x59F9, - 19303: 0x5A0C, - 19304: 0x5A09, - 19305: 0x5A32, - 19306: 0x5A34, - 19307: 0x5A11, - 19308: 0x5A23, - 19309: 0x5A13, - 19310: 0x5A40, - 19311: 0x5A67, - 19312: 0x5A4A, - 19313: 0x5A55, - 19314: 0x5A3C, - 19315: 0x5A62, - 19316: 0x5A75, - 19317: 0x80EC, - 19318: 0x5AAA, - 19319: 0x5A9B, - 19320: 0x5A77, - 19321: 0x5A7A, - 19322: 0x5ABE, - 19323: 0x5AEB, - 19324: 0x5AB2, - 19325: 0x5AD2, - 19326: 0x5AD4, - 19327: 0x5AB8, - 19328: 0x5AE0, - 19329: 0x5AE3, - 19330: 0x5AF1, - 19331: 0x5AD6, - 19332: 0x5AE6, - 19333: 0x5AD8, - 19334: 0x5ADC, - 19335: 0x5B09, - 19336: 0x5B17, - 19337: 0x5B16, - 19338: 0x5B32, - 19339: 0x5B37, - 19340: 0x5B40, - 19341: 0x5C15, - 19342: 0x5C1C, - 19343: 0x5B5A, - 19344: 0x5B65, - 19345: 0x5B73, - 19346: 0x5B51, - 19347: 0x5B53, - 19348: 0x5B62, - 19349: 0x9A75, - 19350: 0x9A77, - 19351: 0x9A78, - 19352: 0x9A7A, - 19353: 0x9A7F, - 19354: 0x9A7D, - 19355: 0x9A80, - 19356: 0x9A81, - 19357: 0x9A85, - 19358: 0x9A88, - 19359: 0x9A8A, - 19360: 0x9A90, - 19361: 0x9A92, - 19362: 0x9A93, - 19363: 0x9A96, - 19364: 0x9A98, - 19365: 0x9A9B, - 19366: 0x9A9C, - 19367: 0x9A9D, - 19368: 0x9A9F, - 19369: 0x9AA0, - 19370: 0x9AA2, - 19371: 0x9AA3, - 19372: 0x9AA5, - 19373: 0x9AA7, - 19374: 0x7E9F, - 19375: 0x7EA1, - 19376: 0x7EA3, - 19377: 0x7EA5, - 19378: 0x7EA8, - 19379: 0x7EA9, - 19380: 0x93CE, - 19381: 0x93CF, - 19382: 0x93D0, - 19383: 0x93D1, - 19384: 0x93D2, - 19385: 0x93D3, - 19386: 0x93D4, - 19387: 0x93D5, - 19388: 0x93D7, - 19389: 0x93D8, - 19390: 0x93D9, - 19391: 0x93DA, - 19392: 0x93DB, - 19393: 0x93DC, - 19394: 0x93DD, - 19395: 0x93DE, - 19396: 0x93DF, - 19397: 0x93E0, - 19398: 0x93E1, - 19399: 0x93E2, - 19400: 0x93E3, - 19401: 0x93E4, - 19402: 0x93E5, - 19403: 0x93E6, - 19404: 0x93E7, - 19405: 0x93E8, - 19406: 0x93E9, - 19407: 0x93EA, - 19408: 0x93EB, - 19409: 0x93EC, - 19410: 0x93ED, - 19411: 0x93EE, - 19412: 0x93EF, - 19413: 0x93F0, - 19414: 0x93F1, - 19415: 0x93F2, - 19416: 0x93F3, - 19417: 0x93F4, - 19418: 0x93F5, - 19419: 0x93F6, - 19420: 0x93F7, - 19421: 0x93F8, - 19422: 0x93F9, - 19423: 0x93FA, - 19424: 0x93FB, - 19425: 0x93FC, - 19426: 0x93FD, - 19427: 0x93FE, - 19428: 0x93FF, - 19429: 0x9400, - 19430: 0x9401, - 19431: 0x9402, - 19432: 0x9403, - 19433: 0x9404, - 19434: 0x9405, - 19435: 0x9406, - 19436: 0x9407, - 19437: 0x9408, - 19438: 0x9409, - 19439: 0x940A, - 19440: 0x940B, - 19441: 0x940C, - 19442: 0x940D, - 19443: 0x940E, - 19444: 0x940F, - 19445: 0x9410, - 19446: 0x9411, - 19447: 0x9412, - 19448: 0x9413, - 19449: 0x9414, - 19450: 0x9415, - 19451: 0x9416, - 19452: 0x9417, - 19453: 0x9418, - 19454: 0x9419, - 19455: 0x941A, - 19456: 0x941B, - 19457: 0x941C, - 19458: 0x941D, - 19459: 0x941E, - 19460: 0x941F, - 19461: 0x9420, - 19462: 0x9421, - 19463: 0x9422, - 19464: 0x9423, - 19465: 0x9424, - 19466: 0x9425, - 19467: 0x9426, - 19468: 0x9427, - 19469: 0x9428, - 19470: 0x9429, - 19471: 0x942A, - 19472: 0x942B, - 19473: 0x942C, - 19474: 0x942D, - 19475: 0x942E, - 19476: 0x7EAD, - 19477: 0x7EB0, - 19478: 0x7EBE, - 19479: 0x7EC0, - 19480: 0x7EC1, - 19481: 0x7EC2, - 19482: 0x7EC9, - 19483: 0x7ECB, - 19484: 0x7ECC, - 19485: 0x7ED0, - 19486: 0x7ED4, - 19487: 0x7ED7, - 19488: 0x7EDB, - 19489: 0x7EE0, - 19490: 0x7EE1, - 19491: 0x7EE8, - 19492: 0x7EEB, - 19493: 0x7EEE, - 19494: 0x7EEF, - 19495: 0x7EF1, - 19496: 0x7EF2, - 19497: 0x7F0D, - 19498: 0x7EF6, - 19499: 0x7EFA, - 19500: 0x7EFB, - 19501: 0x7EFE, - 19502: 0x7F01, - 19503: 0x7F02, - 19504: 0x7F03, - 19505: 0x7F07, - 19506: 0x7F08, - 19507: 0x7F0B, - 19508: 0x7F0C, - 19509: 0x7F0F, - 19510: 0x7F11, - 19511: 0x7F12, - 19512: 0x7F17, - 19513: 0x7F19, - 19514: 0x7F1C, - 19515: 0x7F1B, - 19516: 0x7F1F, - 19517: 0x7F21, - 19518: 0x7F22, - 19519: 0x7F23, - 19520: 0x7F24, - 19521: 0x7F25, - 19522: 0x7F26, - 19523: 0x7F27, - 19524: 0x7F2A, - 19525: 0x7F2B, - 19526: 0x7F2C, - 19527: 0x7F2D, - 19528: 0x7F2F, - 19529: 0x7F30, - 19530: 0x7F31, - 19531: 0x7F32, - 19532: 0x7F33, - 19533: 0x7F35, - 19534: 0x5E7A, - 19535: 0x757F, - 19536: 0x5DDB, - 19537: 0x753E, - 19538: 0x9095, - 19539: 0x738E, - 19540: 0x7391, - 19541: 0x73AE, - 19542: 0x73A2, - 19543: 0x739F, - 19544: 0x73CF, - 19545: 0x73C2, - 19546: 0x73D1, - 19547: 0x73B7, - 19548: 0x73B3, - 19549: 0x73C0, - 19550: 0x73C9, - 19551: 0x73C8, - 19552: 0x73E5, - 19553: 0x73D9, - 19554: 0x987C, - 19555: 0x740A, - 19556: 0x73E9, - 19557: 0x73E7, - 19558: 0x73DE, - 19559: 0x73BA, - 19560: 0x73F2, - 19561: 0x740F, - 19562: 0x742A, - 19563: 0x745B, - 19564: 0x7426, - 19565: 0x7425, - 19566: 0x7428, - 19567: 0x7430, - 19568: 0x742E, - 19569: 0x742C, - 19570: 0x942F, - 19571: 0x9430, - 19572: 0x9431, - 19573: 0x9432, - 19574: 0x9433, - 19575: 0x9434, - 19576: 0x9435, - 19577: 0x9436, - 19578: 0x9437, - 19579: 0x9438, - 19580: 0x9439, - 19581: 0x943A, - 19582: 0x943B, - 19583: 0x943C, - 19584: 0x943D, - 19585: 0x943F, - 19586: 0x9440, - 19587: 0x9441, - 19588: 0x9442, - 19589: 0x9443, - 19590: 0x9444, - 19591: 0x9445, - 19592: 0x9446, - 19593: 0x9447, - 19594: 0x9448, - 19595: 0x9449, - 19596: 0x944A, - 19597: 0x944B, - 19598: 0x944C, - 19599: 0x944D, - 19600: 0x944E, - 19601: 0x944F, - 19602: 0x9450, - 19603: 0x9451, - 19604: 0x9452, - 19605: 0x9453, - 19606: 0x9454, - 19607: 0x9455, - 19608: 0x9456, - 19609: 0x9457, - 19610: 0x9458, - 19611: 0x9459, - 19612: 0x945A, - 19613: 0x945B, - 19614: 0x945C, - 19615: 0x945D, - 19616: 0x945E, - 19617: 0x945F, - 19618: 0x9460, - 19619: 0x9461, - 19620: 0x9462, - 19621: 0x9463, - 19622: 0x9464, - 19623: 0x9465, - 19624: 0x9466, - 19625: 0x9467, - 19626: 0x9468, - 19627: 0x9469, - 19628: 0x946A, - 19629: 0x946C, - 19630: 0x946D, - 19631: 0x946E, - 19632: 0x946F, - 19633: 0x9470, - 19634: 0x9471, - 19635: 0x9472, - 19636: 0x9473, - 19637: 0x9474, - 19638: 0x9475, - 19639: 0x9476, - 19640: 0x9477, - 19641: 0x9478, - 19642: 0x9479, - 19643: 0x947A, - 19644: 0x947B, - 19645: 0x947C, - 19646: 0x947D, - 19647: 0x947E, - 19648: 0x947F, - 19649: 0x9480, - 19650: 0x9481, - 19651: 0x9482, - 19652: 0x9483, - 19653: 0x9484, - 19654: 0x9491, - 19655: 0x9496, - 19656: 0x9498, - 19657: 0x94C7, - 19658: 0x94CF, - 19659: 0x94D3, - 19660: 0x94D4, - 19661: 0x94DA, - 19662: 0x94E6, - 19663: 0x94FB, - 19664: 0x951C, - 19665: 0x9520, - 19666: 0x741B, - 19667: 0x741A, - 19668: 0x7441, - 19669: 0x745C, - 19670: 0x7457, - 19671: 0x7455, - 19672: 0x7459, - 19673: 0x7477, - 19674: 0x746D, - 19675: 0x747E, - 19676: 0x749C, - 19677: 0x748E, - 19678: 0x7480, - 19679: 0x7481, - 19680: 0x7487, - 19681: 0x748B, - 19682: 0x749E, - 19683: 0x74A8, - 19684: 0x74A9, - 19685: 0x7490, - 19686: 0x74A7, - 19687: 0x74D2, - 19688: 0x74BA, - 19689: 0x97EA, - 19690: 0x97EB, - 19691: 0x97EC, - 19692: 0x674C, - 19693: 0x6753, - 19694: 0x675E, - 19695: 0x6748, - 19696: 0x6769, - 19697: 0x67A5, - 19698: 0x6787, - 19699: 0x676A, - 19700: 0x6773, - 19701: 0x6798, - 19702: 0x67A7, - 19703: 0x6775, - 19704: 0x67A8, - 19705: 0x679E, - 19706: 0x67AD, - 19707: 0x678B, - 19708: 0x6777, - 19709: 0x677C, - 19710: 0x67F0, - 19711: 0x6809, - 19712: 0x67D8, - 19713: 0x680A, - 19714: 0x67E9, - 19715: 0x67B0, - 19716: 0x680C, - 19717: 0x67D9, - 19718: 0x67B5, - 19719: 0x67DA, - 19720: 0x67B3, - 19721: 0x67DD, - 19722: 0x6800, - 19723: 0x67C3, - 19724: 0x67B8, - 19725: 0x67E2, - 19726: 0x680E, - 19727: 0x67C1, - 19728: 0x67FD, - 19729: 0x6832, - 19730: 0x6833, - 19731: 0x6860, - 19732: 0x6861, - 19733: 0x684E, - 19734: 0x6862, - 19735: 0x6844, - 19736: 0x6864, - 19737: 0x6883, - 19738: 0x681D, - 19739: 0x6855, - 19740: 0x6866, - 19741: 0x6841, - 19742: 0x6867, - 19743: 0x6840, - 19744: 0x683E, - 19745: 0x684A, - 19746: 0x6849, - 19747: 0x6829, - 19748: 0x68B5, - 19749: 0x688F, - 19750: 0x6874, - 19751: 0x6877, - 19752: 0x6893, - 19753: 0x686B, - 19754: 0x68C2, - 19755: 0x696E, - 19756: 0x68FC, - 19757: 0x691F, - 19758: 0x6920, - 19759: 0x68F9, - 19760: 0x9527, - 19761: 0x9533, - 19762: 0x953D, - 19763: 0x9543, - 19764: 0x9548, - 19765: 0x954B, - 19766: 0x9555, - 19767: 0x955A, - 19768: 0x9560, - 19769: 0x956E, - 19770: 0x9574, - 19771: 0x9575, - 19772: 0x9577, - 19773: 0x9578, - 19774: 0x9579, - 19775: 0x957A, - 19776: 0x957B, - 19777: 0x957C, - 19778: 0x957D, - 19779: 0x957E, - 19780: 0x9580, - 19781: 0x9581, - 19782: 0x9582, - 19783: 0x9583, - 19784: 0x9584, - 19785: 0x9585, - 19786: 0x9586, - 19787: 0x9587, - 19788: 0x9588, - 19789: 0x9589, - 19790: 0x958A, - 19791: 0x958B, - 19792: 0x958C, - 19793: 0x958D, - 19794: 0x958E, - 19795: 0x958F, - 19796: 0x9590, - 19797: 0x9591, - 19798: 0x9592, - 19799: 0x9593, - 19800: 0x9594, - 19801: 0x9595, - 19802: 0x9596, - 19803: 0x9597, - 19804: 0x9598, - 19805: 0x9599, - 19806: 0x959A, - 19807: 0x959B, - 19808: 0x959C, - 19809: 0x959D, - 19810: 0x959E, - 19811: 0x959F, - 19812: 0x95A0, - 19813: 0x95A1, - 19814: 0x95A2, - 19815: 0x95A3, - 19816: 0x95A4, - 19817: 0x95A5, - 19818: 0x95A6, - 19819: 0x95A7, - 19820: 0x95A8, - 19821: 0x95A9, - 19822: 0x95AA, - 19823: 0x95AB, - 19824: 0x95AC, - 19825: 0x95AD, - 19826: 0x95AE, - 19827: 0x95AF, - 19828: 0x95B0, - 19829: 0x95B1, - 19830: 0x95B2, - 19831: 0x95B3, - 19832: 0x95B4, - 19833: 0x95B5, - 19834: 0x95B6, - 19835: 0x95B7, - 19836: 0x95B8, - 19837: 0x95B9, - 19838: 0x95BA, - 19839: 0x95BB, - 19840: 0x95BC, - 19841: 0x95BD, - 19842: 0x95BE, - 19843: 0x95BF, - 19844: 0x95C0, - 19845: 0x95C1, - 19846: 0x95C2, - 19847: 0x95C3, - 19848: 0x95C4, - 19849: 0x95C5, - 19850: 0x95C6, - 19851: 0x95C7, - 19852: 0x95C8, - 19853: 0x95C9, - 19854: 0x95CA, - 19855: 0x95CB, - 19856: 0x6924, - 19857: 0x68F0, - 19858: 0x690B, - 19859: 0x6901, - 19860: 0x6957, - 19861: 0x68E3, - 19862: 0x6910, - 19863: 0x6971, - 19864: 0x6939, - 19865: 0x6960, - 19866: 0x6942, - 19867: 0x695D, - 19868: 0x6984, - 19869: 0x696B, - 19870: 0x6980, - 19871: 0x6998, - 19872: 0x6978, - 19873: 0x6934, - 19874: 0x69CC, - 19875: 0x6987, - 19876: 0x6988, - 19877: 0x69CE, - 19878: 0x6989, - 19879: 0x6966, - 19880: 0x6963, - 19881: 0x6979, - 19882: 0x699B, - 19883: 0x69A7, - 19884: 0x69BB, - 19885: 0x69AB, - 19886: 0x69AD, - 19887: 0x69D4, - 19888: 0x69B1, - 19889: 0x69C1, - 19890: 0x69CA, - 19891: 0x69DF, - 19892: 0x6995, - 19893: 0x69E0, - 19894: 0x698D, - 19895: 0x69FF, - 19896: 0x6A2F, - 19897: 0x69ED, - 19898: 0x6A17, - 19899: 0x6A18, - 19900: 0x6A65, - 19901: 0x69F2, - 19902: 0x6A44, - 19903: 0x6A3E, - 19904: 0x6AA0, - 19905: 0x6A50, - 19906: 0x6A5B, - 19907: 0x6A35, - 19908: 0x6A8E, - 19909: 0x6A79, - 19910: 0x6A3D, - 19911: 0x6A28, - 19912: 0x6A58, - 19913: 0x6A7C, - 19914: 0x6A91, - 19915: 0x6A90, - 19916: 0x6AA9, - 19917: 0x6A97, - 19918: 0x6AAB, - 19919: 0x7337, - 19920: 0x7352, - 19921: 0x6B81, - 19922: 0x6B82, - 19923: 0x6B87, - 19924: 0x6B84, - 19925: 0x6B92, - 19926: 0x6B93, - 19927: 0x6B8D, - 19928: 0x6B9A, - 19929: 0x6B9B, - 19930: 0x6BA1, - 19931: 0x6BAA, - 19932: 0x8F6B, - 19933: 0x8F6D, - 19934: 0x8F71, - 19935: 0x8F72, - 19936: 0x8F73, - 19937: 0x8F75, - 19938: 0x8F76, - 19939: 0x8F78, - 19940: 0x8F77, - 19941: 0x8F79, - 19942: 0x8F7A, - 19943: 0x8F7C, - 19944: 0x8F7E, - 19945: 0x8F81, - 19946: 0x8F82, - 19947: 0x8F84, - 19948: 0x8F87, - 19949: 0x8F8B, - 19950: 0x95CC, - 19951: 0x95CD, - 19952: 0x95CE, - 19953: 0x95CF, - 19954: 0x95D0, - 19955: 0x95D1, - 19956: 0x95D2, - 19957: 0x95D3, - 19958: 0x95D4, - 19959: 0x95D5, - 19960: 0x95D6, - 19961: 0x95D7, - 19962: 0x95D8, - 19963: 0x95D9, - 19964: 0x95DA, - 19965: 0x95DB, - 19966: 0x95DC, - 19967: 0x95DD, - 19968: 0x95DE, - 19969: 0x95DF, - 19970: 0x95E0, - 19971: 0x95E1, - 19972: 0x95E2, - 19973: 0x95E3, - 19974: 0x95E4, - 19975: 0x95E5, - 19976: 0x95E6, - 19977: 0x95E7, - 19978: 0x95EC, - 19979: 0x95FF, - 19980: 0x9607, - 19981: 0x9613, - 19982: 0x9618, - 19983: 0x961B, - 19984: 0x961E, - 19985: 0x9620, - 19986: 0x9623, - 19987: 0x9624, - 19988: 0x9625, - 19989: 0x9626, - 19990: 0x9627, - 19991: 0x9628, - 19992: 0x9629, - 19993: 0x962B, - 19994: 0x962C, - 19995: 0x962D, - 19996: 0x962F, - 19997: 0x9630, - 19998: 0x9637, - 19999: 0x9638, - 20000: 0x9639, - 20001: 0x963A, - 20002: 0x963E, - 20003: 0x9641, - 20004: 0x9643, - 20005: 0x964A, - 20006: 0x964E, - 20007: 0x964F, - 20008: 0x9651, - 20009: 0x9652, - 20010: 0x9653, - 20011: 0x9656, - 20012: 0x9657, - 20013: 0x9658, - 20014: 0x9659, - 20015: 0x965A, - 20016: 0x965C, - 20017: 0x965D, - 20018: 0x965E, - 20019: 0x9660, - 20020: 0x9663, - 20021: 0x9665, - 20022: 0x9666, - 20023: 0x966B, - 20024: 0x966D, - 20025: 0x966E, - 20026: 0x966F, - 20027: 0x9670, - 20028: 0x9671, - 20029: 0x9673, - 20030: 0x9678, - 20031: 0x9679, - 20032: 0x967A, - 20033: 0x967B, - 20034: 0x967C, - 20035: 0x967D, - 20036: 0x967E, - 20037: 0x967F, - 20038: 0x9680, - 20039: 0x9681, - 20040: 0x9682, - 20041: 0x9683, - 20042: 0x9684, - 20043: 0x9687, - 20044: 0x9689, - 20045: 0x968A, - 20046: 0x8F8D, - 20047: 0x8F8E, - 20048: 0x8F8F, - 20049: 0x8F98, - 20050: 0x8F9A, - 20051: 0x8ECE, - 20052: 0x620B, - 20053: 0x6217, - 20054: 0x621B, - 20055: 0x621F, - 20056: 0x6222, - 20057: 0x6221, - 20058: 0x6225, - 20059: 0x6224, - 20060: 0x622C, - 20061: 0x81E7, - 20062: 0x74EF, - 20063: 0x74F4, - 20064: 0x74FF, - 20065: 0x750F, - 20066: 0x7511, - 20067: 0x7513, - 20068: 0x6534, - 20069: 0x65EE, - 20070: 0x65EF, - 20071: 0x65F0, - 20072: 0x660A, - 20073: 0x6619, - 20074: 0x6772, - 20075: 0x6603, - 20076: 0x6615, - 20077: 0x6600, - 20078: 0x7085, - 20079: 0x66F7, - 20080: 0x661D, - 20081: 0x6634, - 20082: 0x6631, - 20083: 0x6636, - 20084: 0x6635, - 20085: 0x8006, - 20086: 0x665F, - 20087: 0x6654, - 20088: 0x6641, - 20089: 0x664F, - 20090: 0x6656, - 20091: 0x6661, - 20092: 0x6657, - 20093: 0x6677, - 20094: 0x6684, - 20095: 0x668C, - 20096: 0x66A7, - 20097: 0x669D, - 20098: 0x66BE, - 20099: 0x66DB, - 20100: 0x66DC, - 20101: 0x66E6, - 20102: 0x66E9, - 20103: 0x8D32, - 20104: 0x8D33, - 20105: 0x8D36, - 20106: 0x8D3B, - 20107: 0x8D3D, - 20108: 0x8D40, - 20109: 0x8D45, - 20110: 0x8D46, - 20111: 0x8D48, - 20112: 0x8D49, - 20113: 0x8D47, - 20114: 0x8D4D, - 20115: 0x8D55, - 20116: 0x8D59, - 20117: 0x89C7, - 20118: 0x89CA, - 20119: 0x89CB, - 20120: 0x89CC, - 20121: 0x89CE, - 20122: 0x89CF, - 20123: 0x89D0, - 20124: 0x89D1, - 20125: 0x726E, - 20126: 0x729F, - 20127: 0x725D, - 20128: 0x7266, - 20129: 0x726F, - 20130: 0x727E, - 20131: 0x727F, - 20132: 0x7284, - 20133: 0x728B, - 20134: 0x728D, - 20135: 0x728F, - 20136: 0x7292, - 20137: 0x6308, - 20138: 0x6332, - 20139: 0x63B0, - 20140: 0x968C, - 20141: 0x968E, - 20142: 0x9691, - 20143: 0x9692, - 20144: 0x9693, - 20145: 0x9695, - 20146: 0x9696, - 20147: 0x969A, - 20148: 0x969B, - 20149: 0x969D, - 20150: 0x969E, - 20151: 0x969F, - 20152: 0x96A0, - 20153: 0x96A1, - 20154: 0x96A2, - 20155: 0x96A3, - 20156: 0x96A4, - 20157: 0x96A5, - 20158: 0x96A6, - 20159: 0x96A8, - 20160: 0x96A9, - 20161: 0x96AA, - 20162: 0x96AB, - 20163: 0x96AC, - 20164: 0x96AD, - 20165: 0x96AE, - 20166: 0x96AF, - 20167: 0x96B1, - 20168: 0x96B2, - 20169: 0x96B4, - 20170: 0x96B5, - 20171: 0x96B7, - 20172: 0x96B8, - 20173: 0x96BA, - 20174: 0x96BB, - 20175: 0x96BF, - 20176: 0x96C2, - 20177: 0x96C3, - 20178: 0x96C8, - 20179: 0x96CA, - 20180: 0x96CB, - 20181: 0x96D0, - 20182: 0x96D1, - 20183: 0x96D3, - 20184: 0x96D4, - 20185: 0x96D6, - 20186: 0x96D7, - 20187: 0x96D8, - 20188: 0x96D9, - 20189: 0x96DA, - 20190: 0x96DB, - 20191: 0x96DC, - 20192: 0x96DD, - 20193: 0x96DE, - 20194: 0x96DF, - 20195: 0x96E1, - 20196: 0x96E2, - 20197: 0x96E3, - 20198: 0x96E4, - 20199: 0x96E5, - 20200: 0x96E6, - 20201: 0x96E7, - 20202: 0x96EB, - 20203: 0x96EC, - 20204: 0x96ED, - 20205: 0x96EE, - 20206: 0x96F0, - 20207: 0x96F1, - 20208: 0x96F2, - 20209: 0x96F4, - 20210: 0x96F5, - 20211: 0x96F8, - 20212: 0x96FA, - 20213: 0x96FB, - 20214: 0x96FC, - 20215: 0x96FD, - 20216: 0x96FF, - 20217: 0x9702, - 20218: 0x9703, - 20219: 0x9705, - 20220: 0x970A, - 20221: 0x970B, - 20222: 0x970C, - 20223: 0x9710, - 20224: 0x9711, - 20225: 0x9712, - 20226: 0x9714, - 20227: 0x9715, - 20228: 0x9717, - 20229: 0x9718, - 20230: 0x9719, - 20231: 0x971A, - 20232: 0x971B, - 20233: 0x971D, - 20234: 0x971F, - 20235: 0x9720, - 20236: 0x643F, - 20237: 0x64D8, - 20238: 0x8004, - 20239: 0x6BEA, - 20240: 0x6BF3, - 20241: 0x6BFD, - 20242: 0x6BF5, - 20243: 0x6BF9, - 20244: 0x6C05, - 20245: 0x6C07, - 20246: 0x6C06, - 20247: 0x6C0D, - 20248: 0x6C15, - 20249: 0x6C18, - 20250: 0x6C19, - 20251: 0x6C1A, - 20252: 0x6C21, - 20253: 0x6C29, - 20254: 0x6C24, - 20255: 0x6C2A, - 20256: 0x6C32, - 20257: 0x6535, - 20258: 0x6555, - 20259: 0x656B, - 20260: 0x724D, - 20261: 0x7252, - 20262: 0x7256, - 20263: 0x7230, - 20264: 0x8662, - 20265: 0x5216, - 20266: 0x809F, - 20267: 0x809C, - 20268: 0x8093, - 20269: 0x80BC, - 20270: 0x670A, - 20271: 0x80BD, - 20272: 0x80B1, - 20273: 0x80AB, - 20274: 0x80AD, - 20275: 0x80B4, - 20276: 0x80B7, - 20277: 0x80E7, - 20278: 0x80E8, - 20279: 0x80E9, - 20280: 0x80EA, - 20281: 0x80DB, - 20282: 0x80C2, - 20283: 0x80C4, - 20284: 0x80D9, - 20285: 0x80CD, - 20286: 0x80D7, - 20287: 0x6710, - 20288: 0x80DD, - 20289: 0x80EB, - 20290: 0x80F1, - 20291: 0x80F4, - 20292: 0x80ED, - 20293: 0x810D, - 20294: 0x810E, - 20295: 0x80F2, - 20296: 0x80FC, - 20297: 0x6715, - 20298: 0x8112, - 20299: 0x8C5A, - 20300: 0x8136, - 20301: 0x811E, - 20302: 0x812C, - 20303: 0x8118, - 20304: 0x8132, - 20305: 0x8148, - 20306: 0x814C, - 20307: 0x8153, - 20308: 0x8174, - 20309: 0x8159, - 20310: 0x815A, - 20311: 0x8171, - 20312: 0x8160, - 20313: 0x8169, - 20314: 0x817C, - 20315: 0x817D, - 20316: 0x816D, - 20317: 0x8167, - 20318: 0x584D, - 20319: 0x5AB5, - 20320: 0x8188, - 20321: 0x8182, - 20322: 0x8191, - 20323: 0x6ED5, - 20324: 0x81A3, - 20325: 0x81AA, - 20326: 0x81CC, - 20327: 0x6726, - 20328: 0x81CA, - 20329: 0x81BB, - 20330: 0x9721, - 20331: 0x9722, - 20332: 0x9723, - 20333: 0x9724, - 20334: 0x9725, - 20335: 0x9726, - 20336: 0x9727, - 20337: 0x9728, - 20338: 0x9729, - 20339: 0x972B, - 20340: 0x972C, - 20341: 0x972E, - 20342: 0x972F, - 20343: 0x9731, - 20344: 0x9733, - 20345: 0x9734, - 20346: 0x9735, - 20347: 0x9736, - 20348: 0x9737, - 20349: 0x973A, - 20350: 0x973B, - 20351: 0x973C, - 20352: 0x973D, - 20353: 0x973F, - 20354: 0x9740, - 20355: 0x9741, - 20356: 0x9742, - 20357: 0x9743, - 20358: 0x9744, - 20359: 0x9745, - 20360: 0x9746, - 20361: 0x9747, - 20362: 0x9748, - 20363: 0x9749, - 20364: 0x974A, - 20365: 0x974B, - 20366: 0x974C, - 20367: 0x974D, - 20368: 0x974E, - 20369: 0x974F, - 20370: 0x9750, - 20371: 0x9751, - 20372: 0x9754, - 20373: 0x9755, - 20374: 0x9757, - 20375: 0x9758, - 20376: 0x975A, - 20377: 0x975C, - 20378: 0x975D, - 20379: 0x975F, - 20380: 0x9763, - 20381: 0x9764, - 20382: 0x9766, - 20383: 0x9767, - 20384: 0x9768, - 20385: 0x976A, - 20386: 0x976B, - 20387: 0x976C, - 20388: 0x976D, - 20389: 0x976E, - 20390: 0x976F, - 20391: 0x9770, - 20392: 0x9771, - 20393: 0x9772, - 20394: 0x9775, - 20395: 0x9777, - 20396: 0x9778, - 20397: 0x9779, - 20398: 0x977A, - 20399: 0x977B, - 20400: 0x977D, - 20401: 0x977E, - 20402: 0x977F, - 20403: 0x9780, - 20404: 0x9781, - 20405: 0x9782, - 20406: 0x9783, - 20407: 0x9784, - 20408: 0x9786, - 20409: 0x9787, - 20410: 0x9788, - 20411: 0x9789, - 20412: 0x978A, - 20413: 0x978C, - 20414: 0x978E, - 20415: 0x978F, - 20416: 0x9790, - 20417: 0x9793, - 20418: 0x9795, - 20419: 0x9796, - 20420: 0x9797, - 20421: 0x9799, - 20422: 0x979A, - 20423: 0x979B, - 20424: 0x979C, - 20425: 0x979D, - 20426: 0x81C1, - 20427: 0x81A6, - 20428: 0x6B24, - 20429: 0x6B37, - 20430: 0x6B39, - 20431: 0x6B43, - 20432: 0x6B46, - 20433: 0x6B59, - 20434: 0x98D1, - 20435: 0x98D2, - 20436: 0x98D3, - 20437: 0x98D5, - 20438: 0x98D9, - 20439: 0x98DA, - 20440: 0x6BB3, - 20441: 0x5F40, - 20442: 0x6BC2, - 20443: 0x89F3, - 20444: 0x6590, - 20445: 0x9F51, - 20446: 0x6593, - 20447: 0x65BC, - 20448: 0x65C6, - 20449: 0x65C4, - 20450: 0x65C3, - 20451: 0x65CC, - 20452: 0x65CE, - 20453: 0x65D2, - 20454: 0x65D6, - 20455: 0x7080, - 20456: 0x709C, - 20457: 0x7096, - 20458: 0x709D, - 20459: 0x70BB, - 20460: 0x70C0, - 20461: 0x70B7, - 20462: 0x70AB, - 20463: 0x70B1, - 20464: 0x70E8, - 20465: 0x70CA, - 20466: 0x7110, - 20467: 0x7113, - 20468: 0x7116, - 20469: 0x712F, - 20470: 0x7131, - 20471: 0x7173, - 20472: 0x715C, - 20473: 0x7168, - 20474: 0x7145, - 20475: 0x7172, - 20476: 0x714A, - 20477: 0x7178, - 20478: 0x717A, - 20479: 0x7198, - 20480: 0x71B3, - 20481: 0x71B5, - 20482: 0x71A8, - 20483: 0x71A0, - 20484: 0x71E0, - 20485: 0x71D4, - 20486: 0x71E7, - 20487: 0x71F9, - 20488: 0x721D, - 20489: 0x7228, - 20490: 0x706C, - 20491: 0x7118, - 20492: 0x7166, - 20493: 0x71B9, - 20494: 0x623E, - 20495: 0x623D, - 20496: 0x6243, - 20497: 0x6248, - 20498: 0x6249, - 20499: 0x793B, - 20500: 0x7940, - 20501: 0x7946, - 20502: 0x7949, - 20503: 0x795B, - 20504: 0x795C, - 20505: 0x7953, - 20506: 0x795A, - 20507: 0x7962, - 20508: 0x7957, - 20509: 0x7960, - 20510: 0x796F, - 20511: 0x7967, - 20512: 0x797A, - 20513: 0x7985, - 20514: 0x798A, - 20515: 0x799A, - 20516: 0x79A7, - 20517: 0x79B3, - 20518: 0x5FD1, - 20519: 0x5FD0, - 20520: 0x979E, - 20521: 0x979F, - 20522: 0x97A1, - 20523: 0x97A2, - 20524: 0x97A4, - 20525: 0x97A5, - 20526: 0x97A6, - 20527: 0x97A7, - 20528: 0x97A8, - 20529: 0x97A9, - 20530: 0x97AA, - 20531: 0x97AC, - 20532: 0x97AE, - 20533: 0x97B0, - 20534: 0x97B1, - 20535: 0x97B3, - 20536: 0x97B5, - 20537: 0x97B6, - 20538: 0x97B7, - 20539: 0x97B8, - 20540: 0x97B9, - 20541: 0x97BA, - 20542: 0x97BB, - 20543: 0x97BC, - 20544: 0x97BD, - 20545: 0x97BE, - 20546: 0x97BF, - 20547: 0x97C0, - 20548: 0x97C1, - 20549: 0x97C2, - 20550: 0x97C3, - 20551: 0x97C4, - 20552: 0x97C5, - 20553: 0x97C6, - 20554: 0x97C7, - 20555: 0x97C8, - 20556: 0x97C9, - 20557: 0x97CA, - 20558: 0x97CB, - 20559: 0x97CC, - 20560: 0x97CD, - 20561: 0x97CE, - 20562: 0x97CF, - 20563: 0x97D0, - 20564: 0x97D1, - 20565: 0x97D2, - 20566: 0x97D3, - 20567: 0x97D4, - 20568: 0x97D5, - 20569: 0x97D6, - 20570: 0x97D7, - 20571: 0x97D8, - 20572: 0x97D9, - 20573: 0x97DA, - 20574: 0x97DB, - 20575: 0x97DC, - 20576: 0x97DD, - 20577: 0x97DE, - 20578: 0x97DF, - 20579: 0x97E0, - 20580: 0x97E1, - 20581: 0x97E2, - 20582: 0x97E3, - 20583: 0x97E4, - 20584: 0x97E5, - 20585: 0x97E8, - 20586: 0x97EE, - 20587: 0x97EF, - 20588: 0x97F0, - 20589: 0x97F1, - 20590: 0x97F2, - 20591: 0x97F4, - 20592: 0x97F7, - 20593: 0x97F8, - 20594: 0x97F9, - 20595: 0x97FA, - 20596: 0x97FB, - 20597: 0x97FC, - 20598: 0x97FD, - 20599: 0x97FE, - 20600: 0x97FF, - 20601: 0x9800, - 20602: 0x9801, - 20603: 0x9802, - 20604: 0x9803, - 20605: 0x9804, - 20606: 0x9805, - 20607: 0x9806, - 20608: 0x9807, - 20609: 0x9808, - 20610: 0x9809, - 20611: 0x980A, - 20612: 0x980B, - 20613: 0x980C, - 20614: 0x980D, - 20615: 0x980E, - 20616: 0x603C, - 20617: 0x605D, - 20618: 0x605A, - 20619: 0x6067, - 20620: 0x6041, - 20621: 0x6059, - 20622: 0x6063, - 20623: 0x60AB, - 20624: 0x6106, - 20625: 0x610D, - 20626: 0x615D, - 20627: 0x61A9, - 20628: 0x619D, - 20629: 0x61CB, - 20630: 0x61D1, - 20631: 0x6206, - 20632: 0x8080, - 20633: 0x807F, - 20634: 0x6C93, - 20635: 0x6CF6, - 20636: 0x6DFC, - 20637: 0x77F6, - 20638: 0x77F8, - 20639: 0x7800, - 20640: 0x7809, - 20641: 0x7817, - 20642: 0x7818, - 20643: 0x7811, - 20644: 0x65AB, - 20645: 0x782D, - 20646: 0x781C, - 20647: 0x781D, - 20648: 0x7839, - 20649: 0x783A, - 20650: 0x783B, - 20651: 0x781F, - 20652: 0x783C, - 20653: 0x7825, - 20654: 0x782C, - 20655: 0x7823, - 20656: 0x7829, - 20657: 0x784E, - 20658: 0x786D, - 20659: 0x7856, - 20660: 0x7857, - 20661: 0x7826, - 20662: 0x7850, - 20663: 0x7847, - 20664: 0x784C, - 20665: 0x786A, - 20666: 0x789B, - 20667: 0x7893, - 20668: 0x789A, - 20669: 0x7887, - 20670: 0x789C, - 20671: 0x78A1, - 20672: 0x78A3, - 20673: 0x78B2, - 20674: 0x78B9, - 20675: 0x78A5, - 20676: 0x78D4, - 20677: 0x78D9, - 20678: 0x78C9, - 20679: 0x78EC, - 20680: 0x78F2, - 20681: 0x7905, - 20682: 0x78F4, - 20683: 0x7913, - 20684: 0x7924, - 20685: 0x791E, - 20686: 0x7934, - 20687: 0x9F9B, - 20688: 0x9EF9, - 20689: 0x9EFB, - 20690: 0x9EFC, - 20691: 0x76F1, - 20692: 0x7704, - 20693: 0x770D, - 20694: 0x76F9, - 20695: 0x7707, - 20696: 0x7708, - 20697: 0x771A, - 20698: 0x7722, - 20699: 0x7719, - 20700: 0x772D, - 20701: 0x7726, - 20702: 0x7735, - 20703: 0x7738, - 20704: 0x7750, - 20705: 0x7751, - 20706: 0x7747, - 20707: 0x7743, - 20708: 0x775A, - 20709: 0x7768, - 20710: 0x980F, - 20711: 0x9810, - 20712: 0x9811, - 20713: 0x9812, - 20714: 0x9813, - 20715: 0x9814, - 20716: 0x9815, - 20717: 0x9816, - 20718: 0x9817, - 20719: 0x9818, - 20720: 0x9819, - 20721: 0x981A, - 20722: 0x981B, - 20723: 0x981C, - 20724: 0x981D, - 20725: 0x981E, - 20726: 0x981F, - 20727: 0x9820, - 20728: 0x9821, - 20729: 0x9822, - 20730: 0x9823, - 20731: 0x9824, - 20732: 0x9825, - 20733: 0x9826, - 20734: 0x9827, - 20735: 0x9828, - 20736: 0x9829, - 20737: 0x982A, - 20738: 0x982B, - 20739: 0x982C, - 20740: 0x982D, - 20741: 0x982E, - 20742: 0x982F, - 20743: 0x9830, - 20744: 0x9831, - 20745: 0x9832, - 20746: 0x9833, - 20747: 0x9834, - 20748: 0x9835, - 20749: 0x9836, - 20750: 0x9837, - 20751: 0x9838, - 20752: 0x9839, - 20753: 0x983A, - 20754: 0x983B, - 20755: 0x983C, - 20756: 0x983D, - 20757: 0x983E, - 20758: 0x983F, - 20759: 0x9840, - 20760: 0x9841, - 20761: 0x9842, - 20762: 0x9843, - 20763: 0x9844, - 20764: 0x9845, - 20765: 0x9846, - 20766: 0x9847, - 20767: 0x9848, - 20768: 0x9849, - 20769: 0x984A, - 20770: 0x984B, - 20771: 0x984C, - 20772: 0x984D, - 20773: 0x984E, - 20774: 0x984F, - 20775: 0x9850, - 20776: 0x9851, - 20777: 0x9852, - 20778: 0x9853, - 20779: 0x9854, - 20780: 0x9855, - 20781: 0x9856, - 20782: 0x9857, - 20783: 0x9858, - 20784: 0x9859, - 20785: 0x985A, - 20786: 0x985B, - 20787: 0x985C, - 20788: 0x985D, - 20789: 0x985E, - 20790: 0x985F, - 20791: 0x9860, - 20792: 0x9861, - 20793: 0x9862, - 20794: 0x9863, - 20795: 0x9864, - 20796: 0x9865, - 20797: 0x9866, - 20798: 0x9867, - 20799: 0x9868, - 20800: 0x9869, - 20801: 0x986A, - 20802: 0x986B, - 20803: 0x986C, - 20804: 0x986D, - 20805: 0x986E, - 20806: 0x7762, - 20807: 0x7765, - 20808: 0x777F, - 20809: 0x778D, - 20810: 0x777D, - 20811: 0x7780, - 20812: 0x778C, - 20813: 0x7791, - 20814: 0x779F, - 20815: 0x77A0, - 20816: 0x77B0, - 20817: 0x77B5, - 20818: 0x77BD, - 20819: 0x753A, - 20820: 0x7540, - 20821: 0x754E, - 20822: 0x754B, - 20823: 0x7548, - 20824: 0x755B, - 20825: 0x7572, - 20826: 0x7579, - 20827: 0x7583, - 20828: 0x7F58, - 20829: 0x7F61, - 20830: 0x7F5F, - 20831: 0x8A48, - 20832: 0x7F68, - 20833: 0x7F74, - 20834: 0x7F71, - 20835: 0x7F79, - 20836: 0x7F81, - 20837: 0x7F7E, - 20838: 0x76CD, - 20839: 0x76E5, - 20840: 0x8832, - 20841: 0x9485, - 20842: 0x9486, - 20843: 0x9487, - 20844: 0x948B, - 20845: 0x948A, - 20846: 0x948C, - 20847: 0x948D, - 20848: 0x948F, - 20849: 0x9490, - 20850: 0x9494, - 20851: 0x9497, - 20852: 0x9495, - 20853: 0x949A, - 20854: 0x949B, - 20855: 0x949C, - 20856: 0x94A3, - 20857: 0x94A4, - 20858: 0x94AB, - 20859: 0x94AA, - 20860: 0x94AD, - 20861: 0x94AC, - 20862: 0x94AF, - 20863: 0x94B0, - 20864: 0x94B2, - 20865: 0x94B4, - 20866: 0x94B6, - 20867: 0x94B7, - 20868: 0x94B8, - 20869: 0x94B9, - 20870: 0x94BA, - 20871: 0x94BC, - 20872: 0x94BD, - 20873: 0x94BF, - 20874: 0x94C4, - 20875: 0x94C8, - 20876: 0x94C9, - 20877: 0x94CA, - 20878: 0x94CB, - 20879: 0x94CC, - 20880: 0x94CD, - 20881: 0x94CE, - 20882: 0x94D0, - 20883: 0x94D1, - 20884: 0x94D2, - 20885: 0x94D5, - 20886: 0x94D6, - 20887: 0x94D7, - 20888: 0x94D9, - 20889: 0x94D8, - 20890: 0x94DB, - 20891: 0x94DE, - 20892: 0x94DF, - 20893: 0x94E0, - 20894: 0x94E2, - 20895: 0x94E4, - 20896: 0x94E5, - 20897: 0x94E7, - 20898: 0x94E8, - 20899: 0x94EA, - 20900: 0x986F, - 20901: 0x9870, - 20902: 0x9871, - 20903: 0x9872, - 20904: 0x9873, - 20905: 0x9874, - 20906: 0x988B, - 20907: 0x988E, - 20908: 0x9892, - 20909: 0x9895, - 20910: 0x9899, - 20911: 0x98A3, - 20912: 0x98A8, - 20913: 0x98A9, - 20914: 0x98AA, - 20915: 0x98AB, - 20916: 0x98AC, - 20917: 0x98AD, - 20918: 0x98AE, - 20919: 0x98AF, - 20920: 0x98B0, - 20921: 0x98B1, - 20922: 0x98B2, - 20923: 0x98B3, - 20924: 0x98B4, - 20925: 0x98B5, - 20926: 0x98B6, - 20927: 0x98B7, - 20928: 0x98B8, - 20929: 0x98B9, - 20930: 0x98BA, - 20931: 0x98BB, - 20932: 0x98BC, - 20933: 0x98BD, - 20934: 0x98BE, - 20935: 0x98BF, - 20936: 0x98C0, - 20937: 0x98C1, - 20938: 0x98C2, - 20939: 0x98C3, - 20940: 0x98C4, - 20941: 0x98C5, - 20942: 0x98C6, - 20943: 0x98C7, - 20944: 0x98C8, - 20945: 0x98C9, - 20946: 0x98CA, - 20947: 0x98CB, - 20948: 0x98CC, - 20949: 0x98CD, - 20950: 0x98CF, - 20951: 0x98D0, - 20952: 0x98D4, - 20953: 0x98D6, - 20954: 0x98D7, - 20955: 0x98DB, - 20956: 0x98DC, - 20957: 0x98DD, - 20958: 0x98E0, - 20959: 0x98E1, - 20960: 0x98E2, - 20961: 0x98E3, - 20962: 0x98E4, - 20963: 0x98E5, - 20964: 0x98E6, - 20965: 0x98E9, - 20966: 0x98EA, - 20967: 0x98EB, - 20968: 0x98EC, - 20969: 0x98ED, - 20970: 0x98EE, - 20971: 0x98EF, - 20972: 0x98F0, - 20973: 0x98F1, - 20974: 0x98F2, - 20975: 0x98F3, - 20976: 0x98F4, - 20977: 0x98F5, - 20978: 0x98F6, - 20979: 0x98F7, - 20980: 0x98F8, - 20981: 0x98F9, - 20982: 0x98FA, - 20983: 0x98FB, - 20984: 0x98FC, - 20985: 0x98FD, - 20986: 0x98FE, - 20987: 0x98FF, - 20988: 0x9900, - 20989: 0x9901, - 20990: 0x9902, - 20991: 0x9903, - 20992: 0x9904, - 20993: 0x9905, - 20994: 0x9906, - 20995: 0x9907, - 20996: 0x94E9, - 20997: 0x94EB, - 20998: 0x94EE, - 20999: 0x94EF, - 21000: 0x94F3, - 21001: 0x94F4, - 21002: 0x94F5, - 21003: 0x94F7, - 21004: 0x94F9, - 21005: 0x94FC, - 21006: 0x94FD, - 21007: 0x94FF, - 21008: 0x9503, - 21009: 0x9502, - 21010: 0x9506, - 21011: 0x9507, - 21012: 0x9509, - 21013: 0x950A, - 21014: 0x950D, - 21015: 0x950E, - 21016: 0x950F, - 21017: 0x9512, - 21018: 0x9513, - 21019: 0x9514, - 21020: 0x9515, - 21021: 0x9516, - 21022: 0x9518, - 21023: 0x951B, - 21024: 0x951D, - 21025: 0x951E, - 21026: 0x951F, - 21027: 0x9522, - 21028: 0x952A, - 21029: 0x952B, - 21030: 0x9529, - 21031: 0x952C, - 21032: 0x9531, - 21033: 0x9532, - 21034: 0x9534, - 21035: 0x9536, - 21036: 0x9537, - 21037: 0x9538, - 21038: 0x953C, - 21039: 0x953E, - 21040: 0x953F, - 21041: 0x9542, - 21042: 0x9535, - 21043: 0x9544, - 21044: 0x9545, - 21045: 0x9546, - 21046: 0x9549, - 21047: 0x954C, - 21048: 0x954E, - 21049: 0x954F, - 21050: 0x9552, - 21051: 0x9553, - 21052: 0x9554, - 21053: 0x9556, - 21054: 0x9557, - 21055: 0x9558, - 21056: 0x9559, - 21057: 0x955B, - 21058: 0x955E, - 21059: 0x955F, - 21060: 0x955D, - 21061: 0x9561, - 21062: 0x9562, - 21063: 0x9564, - 21064: 0x9565, - 21065: 0x9566, - 21066: 0x9567, - 21067: 0x9568, - 21068: 0x9569, - 21069: 0x956A, - 21070: 0x956B, - 21071: 0x956C, - 21072: 0x956F, - 21073: 0x9571, - 21074: 0x9572, - 21075: 0x9573, - 21076: 0x953A, - 21077: 0x77E7, - 21078: 0x77EC, - 21079: 0x96C9, - 21080: 0x79D5, - 21081: 0x79ED, - 21082: 0x79E3, - 21083: 0x79EB, - 21084: 0x7A06, - 21085: 0x5D47, - 21086: 0x7A03, - 21087: 0x7A02, - 21088: 0x7A1E, - 21089: 0x7A14, - 21090: 0x9908, - 21091: 0x9909, - 21092: 0x990A, - 21093: 0x990B, - 21094: 0x990C, - 21095: 0x990E, - 21096: 0x990F, - 21097: 0x9911, - 21098: 0x9912, - 21099: 0x9913, - 21100: 0x9914, - 21101: 0x9915, - 21102: 0x9916, - 21103: 0x9917, - 21104: 0x9918, - 21105: 0x9919, - 21106: 0x991A, - 21107: 0x991B, - 21108: 0x991C, - 21109: 0x991D, - 21110: 0x991E, - 21111: 0x991F, - 21112: 0x9920, - 21113: 0x9921, - 21114: 0x9922, - 21115: 0x9923, - 21116: 0x9924, - 21117: 0x9925, - 21118: 0x9926, - 21119: 0x9927, - 21120: 0x9928, - 21121: 0x9929, - 21122: 0x992A, - 21123: 0x992B, - 21124: 0x992C, - 21125: 0x992D, - 21126: 0x992F, - 21127: 0x9930, - 21128: 0x9931, - 21129: 0x9932, - 21130: 0x9933, - 21131: 0x9934, - 21132: 0x9935, - 21133: 0x9936, - 21134: 0x9937, - 21135: 0x9938, - 21136: 0x9939, - 21137: 0x993A, - 21138: 0x993B, - 21139: 0x993C, - 21140: 0x993D, - 21141: 0x993E, - 21142: 0x993F, - 21143: 0x9940, - 21144: 0x9941, - 21145: 0x9942, - 21146: 0x9943, - 21147: 0x9944, - 21148: 0x9945, - 21149: 0x9946, - 21150: 0x9947, - 21151: 0x9948, - 21152: 0x9949, - 21153: 0x994A, - 21154: 0x994B, - 21155: 0x994C, - 21156: 0x994D, - 21157: 0x994E, - 21158: 0x994F, - 21159: 0x9950, - 21160: 0x9951, - 21161: 0x9952, - 21162: 0x9953, - 21163: 0x9956, - 21164: 0x9957, - 21165: 0x9958, - 21166: 0x9959, - 21167: 0x995A, - 21168: 0x995B, - 21169: 0x995C, - 21170: 0x995D, - 21171: 0x995E, - 21172: 0x995F, - 21173: 0x9960, - 21174: 0x9961, - 21175: 0x9962, - 21176: 0x9964, - 21177: 0x9966, - 21178: 0x9973, - 21179: 0x9978, - 21180: 0x9979, - 21181: 0x997B, - 21182: 0x997E, - 21183: 0x9982, - 21184: 0x9983, - 21185: 0x9989, - 21186: 0x7A39, - 21187: 0x7A37, - 21188: 0x7A51, - 21189: 0x9ECF, - 21190: 0x99A5, - 21191: 0x7A70, - 21192: 0x7688, - 21193: 0x768E, - 21194: 0x7693, - 21195: 0x7699, - 21196: 0x76A4, - 21197: 0x74DE, - 21198: 0x74E0, - 21199: 0x752C, - 21200: 0x9E20, - 21201: 0x9E22, - 21202: 0x9E28, - 21203: 0x9E29, - 21204: 0x9E2A, - 21205: 0x9E2B, - 21206: 0x9E2C, - 21207: 0x9E32, - 21208: 0x9E31, - 21209: 0x9E36, - 21210: 0x9E38, - 21211: 0x9E37, - 21212: 0x9E39, - 21213: 0x9E3A, - 21214: 0x9E3E, - 21215: 0x9E41, - 21216: 0x9E42, - 21217: 0x9E44, - 21218: 0x9E46, - 21219: 0x9E47, - 21220: 0x9E48, - 21221: 0x9E49, - 21222: 0x9E4B, - 21223: 0x9E4C, - 21224: 0x9E4E, - 21225: 0x9E51, - 21226: 0x9E55, - 21227: 0x9E57, - 21228: 0x9E5A, - 21229: 0x9E5B, - 21230: 0x9E5C, - 21231: 0x9E5E, - 21232: 0x9E63, - 21233: 0x9E66, - 21234: 0x9E67, - 21235: 0x9E68, - 21236: 0x9E69, - 21237: 0x9E6A, - 21238: 0x9E6B, - 21239: 0x9E6C, - 21240: 0x9E71, - 21241: 0x9E6D, - 21242: 0x9E73, - 21243: 0x7592, - 21244: 0x7594, - 21245: 0x7596, - 21246: 0x75A0, - 21247: 0x759D, - 21248: 0x75AC, - 21249: 0x75A3, - 21250: 0x75B3, - 21251: 0x75B4, - 21252: 0x75B8, - 21253: 0x75C4, - 21254: 0x75B1, - 21255: 0x75B0, - 21256: 0x75C3, - 21257: 0x75C2, - 21258: 0x75D6, - 21259: 0x75CD, - 21260: 0x75E3, - 21261: 0x75E8, - 21262: 0x75E6, - 21263: 0x75E4, - 21264: 0x75EB, - 21265: 0x75E7, - 21266: 0x7603, - 21267: 0x75F1, - 21268: 0x75FC, - 21269: 0x75FF, - 21270: 0x7610, - 21271: 0x7600, - 21272: 0x7605, - 21273: 0x760C, - 21274: 0x7617, - 21275: 0x760A, - 21276: 0x7625, - 21277: 0x7618, - 21278: 0x7615, - 21279: 0x7619, - 21280: 0x998C, - 21281: 0x998E, - 21282: 0x999A, - 21283: 0x999B, - 21284: 0x999C, - 21285: 0x999D, - 21286: 0x999E, - 21287: 0x999F, - 21288: 0x99A0, - 21289: 0x99A1, - 21290: 0x99A2, - 21291: 0x99A3, - 21292: 0x99A4, - 21293: 0x99A6, - 21294: 0x99A7, - 21295: 0x99A9, - 21296: 0x99AA, - 21297: 0x99AB, - 21298: 0x99AC, - 21299: 0x99AD, - 21300: 0x99AE, - 21301: 0x99AF, - 21302: 0x99B0, - 21303: 0x99B1, - 21304: 0x99B2, - 21305: 0x99B3, - 21306: 0x99B4, - 21307: 0x99B5, - 21308: 0x99B6, - 21309: 0x99B7, - 21310: 0x99B8, - 21311: 0x99B9, - 21312: 0x99BA, - 21313: 0x99BB, - 21314: 0x99BC, - 21315: 0x99BD, - 21316: 0x99BE, - 21317: 0x99BF, - 21318: 0x99C0, - 21319: 0x99C1, - 21320: 0x99C2, - 21321: 0x99C3, - 21322: 0x99C4, - 21323: 0x99C5, - 21324: 0x99C6, - 21325: 0x99C7, - 21326: 0x99C8, - 21327: 0x99C9, - 21328: 0x99CA, - 21329: 0x99CB, - 21330: 0x99CC, - 21331: 0x99CD, - 21332: 0x99CE, - 21333: 0x99CF, - 21334: 0x99D0, - 21335: 0x99D1, - 21336: 0x99D2, - 21337: 0x99D3, - 21338: 0x99D4, - 21339: 0x99D5, - 21340: 0x99D6, - 21341: 0x99D7, - 21342: 0x99D8, - 21343: 0x99D9, - 21344: 0x99DA, - 21345: 0x99DB, - 21346: 0x99DC, - 21347: 0x99DD, - 21348: 0x99DE, - 21349: 0x99DF, - 21350: 0x99E0, - 21351: 0x99E1, - 21352: 0x99E2, - 21353: 0x99E3, - 21354: 0x99E4, - 21355: 0x99E5, - 21356: 0x99E6, - 21357: 0x99E7, - 21358: 0x99E8, - 21359: 0x99E9, - 21360: 0x99EA, - 21361: 0x99EB, - 21362: 0x99EC, - 21363: 0x99ED, - 21364: 0x99EE, - 21365: 0x99EF, - 21366: 0x99F0, - 21367: 0x99F1, - 21368: 0x99F2, - 21369: 0x99F3, - 21370: 0x99F4, - 21371: 0x99F5, - 21372: 0x99F6, - 21373: 0x99F7, - 21374: 0x99F8, - 21375: 0x99F9, - 21376: 0x761B, - 21377: 0x763C, - 21378: 0x7622, - 21379: 0x7620, - 21380: 0x7640, - 21381: 0x762D, - 21382: 0x7630, - 21383: 0x763F, - 21384: 0x7635, - 21385: 0x7643, - 21386: 0x763E, - 21387: 0x7633, - 21388: 0x764D, - 21389: 0x765E, - 21390: 0x7654, - 21391: 0x765C, - 21392: 0x7656, - 21393: 0x766B, - 21394: 0x766F, - 21395: 0x7FCA, - 21396: 0x7AE6, - 21397: 0x7A78, - 21398: 0x7A79, - 21399: 0x7A80, - 21400: 0x7A86, - 21401: 0x7A88, - 21402: 0x7A95, - 21403: 0x7AA6, - 21404: 0x7AA0, - 21405: 0x7AAC, - 21406: 0x7AA8, - 21407: 0x7AAD, - 21408: 0x7AB3, - 21409: 0x8864, - 21410: 0x8869, - 21411: 0x8872, - 21412: 0x887D, - 21413: 0x887F, - 21414: 0x8882, - 21415: 0x88A2, - 21416: 0x88C6, - 21417: 0x88B7, - 21418: 0x88BC, - 21419: 0x88C9, - 21420: 0x88E2, - 21421: 0x88CE, - 21422: 0x88E3, - 21423: 0x88E5, - 21424: 0x88F1, - 21425: 0x891A, - 21426: 0x88FC, - 21427: 0x88E8, - 21428: 0x88FE, - 21429: 0x88F0, - 21430: 0x8921, - 21431: 0x8919, - 21432: 0x8913, - 21433: 0x891B, - 21434: 0x890A, - 21435: 0x8934, - 21436: 0x892B, - 21437: 0x8936, - 21438: 0x8941, - 21439: 0x8966, - 21440: 0x897B, - 21441: 0x758B, - 21442: 0x80E5, - 21443: 0x76B2, - 21444: 0x76B4, - 21445: 0x77DC, - 21446: 0x8012, - 21447: 0x8014, - 21448: 0x8016, - 21449: 0x801C, - 21450: 0x8020, - 21451: 0x8022, - 21452: 0x8025, - 21453: 0x8026, - 21454: 0x8027, - 21455: 0x8029, - 21456: 0x8028, - 21457: 0x8031, - 21458: 0x800B, - 21459: 0x8035, - 21460: 0x8043, - 21461: 0x8046, - 21462: 0x804D, - 21463: 0x8052, - 21464: 0x8069, - 21465: 0x8071, - 21466: 0x8983, - 21467: 0x9878, - 21468: 0x9880, - 21469: 0x9883, - 21470: 0x99FA, - 21471: 0x99FB, - 21472: 0x99FC, - 21473: 0x99FD, - 21474: 0x99FE, - 21475: 0x99FF, - 21476: 0x9A00, - 21477: 0x9A01, - 21478: 0x9A02, - 21479: 0x9A03, - 21480: 0x9A04, - 21481: 0x9A05, - 21482: 0x9A06, - 21483: 0x9A07, - 21484: 0x9A08, - 21485: 0x9A09, - 21486: 0x9A0A, - 21487: 0x9A0B, - 21488: 0x9A0C, - 21489: 0x9A0D, - 21490: 0x9A0E, - 21491: 0x9A0F, - 21492: 0x9A10, - 21493: 0x9A11, - 21494: 0x9A12, - 21495: 0x9A13, - 21496: 0x9A14, - 21497: 0x9A15, - 21498: 0x9A16, - 21499: 0x9A17, - 21500: 0x9A18, - 21501: 0x9A19, - 21502: 0x9A1A, - 21503: 0x9A1B, - 21504: 0x9A1C, - 21505: 0x9A1D, - 21506: 0x9A1E, - 21507: 0x9A1F, - 21508: 0x9A20, - 21509: 0x9A21, - 21510: 0x9A22, - 21511: 0x9A23, - 21512: 0x9A24, - 21513: 0x9A25, - 21514: 0x9A26, - 21515: 0x9A27, - 21516: 0x9A28, - 21517: 0x9A29, - 21518: 0x9A2A, - 21519: 0x9A2B, - 21520: 0x9A2C, - 21521: 0x9A2D, - 21522: 0x9A2E, - 21523: 0x9A2F, - 21524: 0x9A30, - 21525: 0x9A31, - 21526: 0x9A32, - 21527: 0x9A33, - 21528: 0x9A34, - 21529: 0x9A35, - 21530: 0x9A36, - 21531: 0x9A37, - 21532: 0x9A38, - 21533: 0x9A39, - 21534: 0x9A3A, - 21535: 0x9A3B, - 21536: 0x9A3C, - 21537: 0x9A3D, - 21538: 0x9A3E, - 21539: 0x9A3F, - 21540: 0x9A40, - 21541: 0x9A41, - 21542: 0x9A42, - 21543: 0x9A43, - 21544: 0x9A44, - 21545: 0x9A45, - 21546: 0x9A46, - 21547: 0x9A47, - 21548: 0x9A48, - 21549: 0x9A49, - 21550: 0x9A4A, - 21551: 0x9A4B, - 21552: 0x9A4C, - 21553: 0x9A4D, - 21554: 0x9A4E, - 21555: 0x9A4F, - 21556: 0x9A50, - 21557: 0x9A51, - 21558: 0x9A52, - 21559: 0x9A53, - 21560: 0x9A54, - 21561: 0x9A55, - 21562: 0x9A56, - 21563: 0x9A57, - 21564: 0x9A58, - 21565: 0x9A59, - 21566: 0x9889, - 21567: 0x988C, - 21568: 0x988D, - 21569: 0x988F, - 21570: 0x9894, - 21571: 0x989A, - 21572: 0x989B, - 21573: 0x989E, - 21574: 0x989F, - 21575: 0x98A1, - 21576: 0x98A2, - 21577: 0x98A5, - 21578: 0x98A6, - 21579: 0x864D, - 21580: 0x8654, - 21581: 0x866C, - 21582: 0x866E, - 21583: 0x867F, - 21584: 0x867A, - 21585: 0x867C, - 21586: 0x867B, - 21587: 0x86A8, - 21588: 0x868D, - 21589: 0x868B, - 21590: 0x86AC, - 21591: 0x869D, - 21592: 0x86A7, - 21593: 0x86A3, - 21594: 0x86AA, - 21595: 0x8693, - 21596: 0x86A9, - 21597: 0x86B6, - 21598: 0x86C4, - 21599: 0x86B5, - 21600: 0x86CE, - 21601: 0x86B0, - 21602: 0x86BA, - 21603: 0x86B1, - 21604: 0x86AF, - 21605: 0x86C9, - 21606: 0x86CF, - 21607: 0x86B4, - 21608: 0x86E9, - 21609: 0x86F1, - 21610: 0x86F2, - 21611: 0x86ED, - 21612: 0x86F3, - 21613: 0x86D0, - 21614: 0x8713, - 21615: 0x86DE, - 21616: 0x86F4, - 21617: 0x86DF, - 21618: 0x86D8, - 21619: 0x86D1, - 21620: 0x8703, - 21621: 0x8707, - 21622: 0x86F8, - 21623: 0x8708, - 21624: 0x870A, - 21625: 0x870D, - 21626: 0x8709, - 21627: 0x8723, - 21628: 0x873B, - 21629: 0x871E, - 21630: 0x8725, - 21631: 0x872E, - 21632: 0x871A, - 21633: 0x873E, - 21634: 0x8748, - 21635: 0x8734, - 21636: 0x8731, - 21637: 0x8729, - 21638: 0x8737, - 21639: 0x873F, - 21640: 0x8782, - 21641: 0x8722, - 21642: 0x877D, - 21643: 0x877E, - 21644: 0x877B, - 21645: 0x8760, - 21646: 0x8770, - 21647: 0x874C, - 21648: 0x876E, - 21649: 0x878B, - 21650: 0x8753, - 21651: 0x8763, - 21652: 0x877C, - 21653: 0x8764, - 21654: 0x8759, - 21655: 0x8765, - 21656: 0x8793, - 21657: 0x87AF, - 21658: 0x87A8, - 21659: 0x87D2, - 21660: 0x9A5A, - 21661: 0x9A5B, - 21662: 0x9A5C, - 21663: 0x9A5D, - 21664: 0x9A5E, - 21665: 0x9A5F, - 21666: 0x9A60, - 21667: 0x9A61, - 21668: 0x9A62, - 21669: 0x9A63, - 21670: 0x9A64, - 21671: 0x9A65, - 21672: 0x9A66, - 21673: 0x9A67, - 21674: 0x9A68, - 21675: 0x9A69, - 21676: 0x9A6A, - 21677: 0x9A6B, - 21678: 0x9A72, - 21679: 0x9A83, - 21680: 0x9A89, - 21681: 0x9A8D, - 21682: 0x9A8E, - 21683: 0x9A94, - 21684: 0x9A95, - 21685: 0x9A99, - 21686: 0x9AA6, - 21687: 0x9AA9, - 21688: 0x9AAA, - 21689: 0x9AAB, - 21690: 0x9AAC, - 21691: 0x9AAD, - 21692: 0x9AAE, - 21693: 0x9AAF, - 21694: 0x9AB2, - 21695: 0x9AB3, - 21696: 0x9AB4, - 21697: 0x9AB5, - 21698: 0x9AB9, - 21699: 0x9ABB, - 21700: 0x9ABD, - 21701: 0x9ABE, - 21702: 0x9ABF, - 21703: 0x9AC3, - 21704: 0x9AC4, - 21705: 0x9AC6, - 21706: 0x9AC7, - 21707: 0x9AC8, - 21708: 0x9AC9, - 21709: 0x9ACA, - 21710: 0x9ACD, - 21711: 0x9ACE, - 21712: 0x9ACF, - 21713: 0x9AD0, - 21714: 0x9AD2, - 21715: 0x9AD4, - 21716: 0x9AD5, - 21717: 0x9AD6, - 21718: 0x9AD7, - 21719: 0x9AD9, - 21720: 0x9ADA, - 21721: 0x9ADB, - 21722: 0x9ADC, - 21723: 0x9ADD, - 21724: 0x9ADE, - 21725: 0x9AE0, - 21726: 0x9AE2, - 21727: 0x9AE3, - 21728: 0x9AE4, - 21729: 0x9AE5, - 21730: 0x9AE7, - 21731: 0x9AE8, - 21732: 0x9AE9, - 21733: 0x9AEA, - 21734: 0x9AEC, - 21735: 0x9AEE, - 21736: 0x9AF0, - 21737: 0x9AF1, - 21738: 0x9AF2, - 21739: 0x9AF3, - 21740: 0x9AF4, - 21741: 0x9AF5, - 21742: 0x9AF6, - 21743: 0x9AF7, - 21744: 0x9AF8, - 21745: 0x9AFA, - 21746: 0x9AFC, - 21747: 0x9AFD, - 21748: 0x9AFE, - 21749: 0x9AFF, - 21750: 0x9B00, - 21751: 0x9B01, - 21752: 0x9B02, - 21753: 0x9B04, - 21754: 0x9B05, - 21755: 0x9B06, - 21756: 0x87C6, - 21757: 0x8788, - 21758: 0x8785, - 21759: 0x87AD, - 21760: 0x8797, - 21761: 0x8783, - 21762: 0x87AB, - 21763: 0x87E5, - 21764: 0x87AC, - 21765: 0x87B5, - 21766: 0x87B3, - 21767: 0x87CB, - 21768: 0x87D3, - 21769: 0x87BD, - 21770: 0x87D1, - 21771: 0x87C0, - 21772: 0x87CA, - 21773: 0x87DB, - 21774: 0x87EA, - 21775: 0x87E0, - 21776: 0x87EE, - 21777: 0x8816, - 21778: 0x8813, - 21779: 0x87FE, - 21780: 0x880A, - 21781: 0x881B, - 21782: 0x8821, - 21783: 0x8839, - 21784: 0x883C, - 21785: 0x7F36, - 21786: 0x7F42, - 21787: 0x7F44, - 21788: 0x7F45, - 21789: 0x8210, - 21790: 0x7AFA, - 21791: 0x7AFD, - 21792: 0x7B08, - 21793: 0x7B03, - 21794: 0x7B04, - 21795: 0x7B15, - 21796: 0x7B0A, - 21797: 0x7B2B, - 21798: 0x7B0F, - 21799: 0x7B47, - 21800: 0x7B38, - 21801: 0x7B2A, - 21802: 0x7B19, - 21803: 0x7B2E, - 21804: 0x7B31, - 21805: 0x7B20, - 21806: 0x7B25, - 21807: 0x7B24, - 21808: 0x7B33, - 21809: 0x7B3E, - 21810: 0x7B1E, - 21811: 0x7B58, - 21812: 0x7B5A, - 21813: 0x7B45, - 21814: 0x7B75, - 21815: 0x7B4C, - 21816: 0x7B5D, - 21817: 0x7B60, - 21818: 0x7B6E, - 21819: 0x7B7B, - 21820: 0x7B62, - 21821: 0x7B72, - 21822: 0x7B71, - 21823: 0x7B90, - 21824: 0x7BA6, - 21825: 0x7BA7, - 21826: 0x7BB8, - 21827: 0x7BAC, - 21828: 0x7B9D, - 21829: 0x7BA8, - 21830: 0x7B85, - 21831: 0x7BAA, - 21832: 0x7B9C, - 21833: 0x7BA2, - 21834: 0x7BAB, - 21835: 0x7BB4, - 21836: 0x7BD1, - 21837: 0x7BC1, - 21838: 0x7BCC, - 21839: 0x7BDD, - 21840: 0x7BDA, - 21841: 0x7BE5, - 21842: 0x7BE6, - 21843: 0x7BEA, - 21844: 0x7C0C, - 21845: 0x7BFE, - 21846: 0x7BFC, - 21847: 0x7C0F, - 21848: 0x7C16, - 21849: 0x7C0B, - 21850: 0x9B07, - 21851: 0x9B09, - 21852: 0x9B0A, - 21853: 0x9B0B, - 21854: 0x9B0C, - 21855: 0x9B0D, - 21856: 0x9B0E, - 21857: 0x9B10, - 21858: 0x9B11, - 21859: 0x9B12, - 21860: 0x9B14, - 21861: 0x9B15, - 21862: 0x9B16, - 21863: 0x9B17, - 21864: 0x9B18, - 21865: 0x9B19, - 21866: 0x9B1A, - 21867: 0x9B1B, - 21868: 0x9B1C, - 21869: 0x9B1D, - 21870: 0x9B1E, - 21871: 0x9B20, - 21872: 0x9B21, - 21873: 0x9B22, - 21874: 0x9B24, - 21875: 0x9B25, - 21876: 0x9B26, - 21877: 0x9B27, - 21878: 0x9B28, - 21879: 0x9B29, - 21880: 0x9B2A, - 21881: 0x9B2B, - 21882: 0x9B2C, - 21883: 0x9B2D, - 21884: 0x9B2E, - 21885: 0x9B30, - 21886: 0x9B31, - 21887: 0x9B33, - 21888: 0x9B34, - 21889: 0x9B35, - 21890: 0x9B36, - 21891: 0x9B37, - 21892: 0x9B38, - 21893: 0x9B39, - 21894: 0x9B3A, - 21895: 0x9B3D, - 21896: 0x9B3E, - 21897: 0x9B3F, - 21898: 0x9B40, - 21899: 0x9B46, - 21900: 0x9B4A, - 21901: 0x9B4B, - 21902: 0x9B4C, - 21903: 0x9B4E, - 21904: 0x9B50, - 21905: 0x9B52, - 21906: 0x9B53, - 21907: 0x9B55, - 21908: 0x9B56, - 21909: 0x9B57, - 21910: 0x9B58, - 21911: 0x9B59, - 21912: 0x9B5A, - 21913: 0x9B5B, - 21914: 0x9B5C, - 21915: 0x9B5D, - 21916: 0x9B5E, - 21917: 0x9B5F, - 21918: 0x9B60, - 21919: 0x9B61, - 21920: 0x9B62, - 21921: 0x9B63, - 21922: 0x9B64, - 21923: 0x9B65, - 21924: 0x9B66, - 21925: 0x9B67, - 21926: 0x9B68, - 21927: 0x9B69, - 21928: 0x9B6A, - 21929: 0x9B6B, - 21930: 0x9B6C, - 21931: 0x9B6D, - 21932: 0x9B6E, - 21933: 0x9B6F, - 21934: 0x9B70, - 21935: 0x9B71, - 21936: 0x9B72, - 21937: 0x9B73, - 21938: 0x9B74, - 21939: 0x9B75, - 21940: 0x9B76, - 21941: 0x9B77, - 21942: 0x9B78, - 21943: 0x9B79, - 21944: 0x9B7A, - 21945: 0x9B7B, - 21946: 0x7C1F, - 21947: 0x7C2A, - 21948: 0x7C26, - 21949: 0x7C38, - 21950: 0x7C41, - 21951: 0x7C40, - 21952: 0x81FE, - 21953: 0x8201, - 21954: 0x8202, - 21955: 0x8204, - 21956: 0x81EC, - 21957: 0x8844, - 21958: 0x8221, - 21959: 0x8222, - 21960: 0x8223, - 21961: 0x822D, - 21962: 0x822F, - 21963: 0x8228, - 21964: 0x822B, - 21965: 0x8238, - 21966: 0x823B, - 21967: 0x8233, - 21968: 0x8234, - 21969: 0x823E, - 21970: 0x8244, - 21971: 0x8249, - 21972: 0x824B, - 21973: 0x824F, - 21974: 0x825A, - 21975: 0x825F, - 21976: 0x8268, - 21977: 0x887E, - 21978: 0x8885, - 21979: 0x8888, - 21980: 0x88D8, - 21981: 0x88DF, - 21982: 0x895E, - 21983: 0x7F9D, - 21984: 0x7F9F, - 21985: 0x7FA7, - 21986: 0x7FAF, - 21987: 0x7FB0, - 21988: 0x7FB2, - 21989: 0x7C7C, - 21990: 0x6549, - 21991: 0x7C91, - 21992: 0x7C9D, - 21993: 0x7C9C, - 21994: 0x7C9E, - 21995: 0x7CA2, - 21996: 0x7CB2, - 21997: 0x7CBC, - 21998: 0x7CBD, - 21999: 0x7CC1, - 22000: 0x7CC7, - 22001: 0x7CCC, - 22002: 0x7CCD, - 22003: 0x7CC8, - 22004: 0x7CC5, - 22005: 0x7CD7, - 22006: 0x7CE8, - 22007: 0x826E, - 22008: 0x66A8, - 22009: 0x7FBF, - 22010: 0x7FCE, - 22011: 0x7FD5, - 22012: 0x7FE5, - 22013: 0x7FE1, - 22014: 0x7FE6, - 22015: 0x7FE9, - 22016: 0x7FEE, - 22017: 0x7FF3, - 22018: 0x7CF8, - 22019: 0x7D77, - 22020: 0x7DA6, - 22021: 0x7DAE, - 22022: 0x7E47, - 22023: 0x7E9B, - 22024: 0x9EB8, - 22025: 0x9EB4, - 22026: 0x8D73, - 22027: 0x8D84, - 22028: 0x8D94, - 22029: 0x8D91, - 22030: 0x8DB1, - 22031: 0x8D67, - 22032: 0x8D6D, - 22033: 0x8C47, - 22034: 0x8C49, - 22035: 0x914A, - 22036: 0x9150, - 22037: 0x914E, - 22038: 0x914F, - 22039: 0x9164, - 22040: 0x9B7C, - 22041: 0x9B7D, - 22042: 0x9B7E, - 22043: 0x9B7F, - 22044: 0x9B80, - 22045: 0x9B81, - 22046: 0x9B82, - 22047: 0x9B83, - 22048: 0x9B84, - 22049: 0x9B85, - 22050: 0x9B86, - 22051: 0x9B87, - 22052: 0x9B88, - 22053: 0x9B89, - 22054: 0x9B8A, - 22055: 0x9B8B, - 22056: 0x9B8C, - 22057: 0x9B8D, - 22058: 0x9B8E, - 22059: 0x9B8F, - 22060: 0x9B90, - 22061: 0x9B91, - 22062: 0x9B92, - 22063: 0x9B93, - 22064: 0x9B94, - 22065: 0x9B95, - 22066: 0x9B96, - 22067: 0x9B97, - 22068: 0x9B98, - 22069: 0x9B99, - 22070: 0x9B9A, - 22071: 0x9B9B, - 22072: 0x9B9C, - 22073: 0x9B9D, - 22074: 0x9B9E, - 22075: 0x9B9F, - 22076: 0x9BA0, - 22077: 0x9BA1, - 22078: 0x9BA2, - 22079: 0x9BA3, - 22080: 0x9BA4, - 22081: 0x9BA5, - 22082: 0x9BA6, - 22083: 0x9BA7, - 22084: 0x9BA8, - 22085: 0x9BA9, - 22086: 0x9BAA, - 22087: 0x9BAB, - 22088: 0x9BAC, - 22089: 0x9BAD, - 22090: 0x9BAE, - 22091: 0x9BAF, - 22092: 0x9BB0, - 22093: 0x9BB1, - 22094: 0x9BB2, - 22095: 0x9BB3, - 22096: 0x9BB4, - 22097: 0x9BB5, - 22098: 0x9BB6, - 22099: 0x9BB7, - 22100: 0x9BB8, - 22101: 0x9BB9, - 22102: 0x9BBA, - 22103: 0x9BBB, - 22104: 0x9BBC, - 22105: 0x9BBD, - 22106: 0x9BBE, - 22107: 0x9BBF, - 22108: 0x9BC0, - 22109: 0x9BC1, - 22110: 0x9BC2, - 22111: 0x9BC3, - 22112: 0x9BC4, - 22113: 0x9BC5, - 22114: 0x9BC6, - 22115: 0x9BC7, - 22116: 0x9BC8, - 22117: 0x9BC9, - 22118: 0x9BCA, - 22119: 0x9BCB, - 22120: 0x9BCC, - 22121: 0x9BCD, - 22122: 0x9BCE, - 22123: 0x9BCF, - 22124: 0x9BD0, - 22125: 0x9BD1, - 22126: 0x9BD2, - 22127: 0x9BD3, - 22128: 0x9BD4, - 22129: 0x9BD5, - 22130: 0x9BD6, - 22131: 0x9BD7, - 22132: 0x9BD8, - 22133: 0x9BD9, - 22134: 0x9BDA, - 22135: 0x9BDB, - 22136: 0x9162, - 22137: 0x9161, - 22138: 0x9170, - 22139: 0x9169, - 22140: 0x916F, - 22141: 0x917D, - 22142: 0x917E, - 22143: 0x9172, - 22144: 0x9174, - 22145: 0x9179, - 22146: 0x918C, - 22147: 0x9185, - 22148: 0x9190, - 22149: 0x918D, - 22150: 0x9191, - 22151: 0x91A2, - 22152: 0x91A3, - 22153: 0x91AA, - 22154: 0x91AD, - 22155: 0x91AE, - 22156: 0x91AF, - 22157: 0x91B5, - 22158: 0x91B4, - 22159: 0x91BA, - 22160: 0x8C55, - 22161: 0x9E7E, - 22162: 0x8DB8, - 22163: 0x8DEB, - 22164: 0x8E05, - 22165: 0x8E59, - 22166: 0x8E69, - 22167: 0x8DB5, - 22168: 0x8DBF, - 22169: 0x8DBC, - 22170: 0x8DBA, - 22171: 0x8DC4, - 22172: 0x8DD6, - 22173: 0x8DD7, - 22174: 0x8DDA, - 22175: 0x8DDE, - 22176: 0x8DCE, - 22177: 0x8DCF, - 22178: 0x8DDB, - 22179: 0x8DC6, - 22180: 0x8DEC, - 22181: 0x8DF7, - 22182: 0x8DF8, - 22183: 0x8DE3, - 22184: 0x8DF9, - 22185: 0x8DFB, - 22186: 0x8DE4, - 22187: 0x8E09, - 22188: 0x8DFD, - 22189: 0x8E14, - 22190: 0x8E1D, - 22191: 0x8E1F, - 22192: 0x8E2C, - 22193: 0x8E2E, - 22194: 0x8E23, - 22195: 0x8E2F, - 22196: 0x8E3A, - 22197: 0x8E40, - 22198: 0x8E39, - 22199: 0x8E35, - 22200: 0x8E3D, - 22201: 0x8E31, - 22202: 0x8E49, - 22203: 0x8E41, - 22204: 0x8E42, - 22205: 0x8E51, - 22206: 0x8E52, - 22207: 0x8E4A, - 22208: 0x8E70, - 22209: 0x8E76, - 22210: 0x8E7C, - 22211: 0x8E6F, - 22212: 0x8E74, - 22213: 0x8E85, - 22214: 0x8E8F, - 22215: 0x8E94, - 22216: 0x8E90, - 22217: 0x8E9C, - 22218: 0x8E9E, - 22219: 0x8C78, - 22220: 0x8C82, - 22221: 0x8C8A, - 22222: 0x8C85, - 22223: 0x8C98, - 22224: 0x8C94, - 22225: 0x659B, - 22226: 0x89D6, - 22227: 0x89DE, - 22228: 0x89DA, - 22229: 0x89DC, - 22230: 0x9BDC, - 22231: 0x9BDD, - 22232: 0x9BDE, - 22233: 0x9BDF, - 22234: 0x9BE0, - 22235: 0x9BE1, - 22236: 0x9BE2, - 22237: 0x9BE3, - 22238: 0x9BE4, - 22239: 0x9BE5, - 22240: 0x9BE6, - 22241: 0x9BE7, - 22242: 0x9BE8, - 22243: 0x9BE9, - 22244: 0x9BEA, - 22245: 0x9BEB, - 22246: 0x9BEC, - 22247: 0x9BED, - 22248: 0x9BEE, - 22249: 0x9BEF, - 22250: 0x9BF0, - 22251: 0x9BF1, - 22252: 0x9BF2, - 22253: 0x9BF3, - 22254: 0x9BF4, - 22255: 0x9BF5, - 22256: 0x9BF6, - 22257: 0x9BF7, - 22258: 0x9BF8, - 22259: 0x9BF9, - 22260: 0x9BFA, - 22261: 0x9BFB, - 22262: 0x9BFC, - 22263: 0x9BFD, - 22264: 0x9BFE, - 22265: 0x9BFF, - 22266: 0x9C00, - 22267: 0x9C01, - 22268: 0x9C02, - 22269: 0x9C03, - 22270: 0x9C04, - 22271: 0x9C05, - 22272: 0x9C06, - 22273: 0x9C07, - 22274: 0x9C08, - 22275: 0x9C09, - 22276: 0x9C0A, - 22277: 0x9C0B, - 22278: 0x9C0C, - 22279: 0x9C0D, - 22280: 0x9C0E, - 22281: 0x9C0F, - 22282: 0x9C10, - 22283: 0x9C11, - 22284: 0x9C12, - 22285: 0x9C13, - 22286: 0x9C14, - 22287: 0x9C15, - 22288: 0x9C16, - 22289: 0x9C17, - 22290: 0x9C18, - 22291: 0x9C19, - 22292: 0x9C1A, - 22293: 0x9C1B, - 22294: 0x9C1C, - 22295: 0x9C1D, - 22296: 0x9C1E, - 22297: 0x9C1F, - 22298: 0x9C20, - 22299: 0x9C21, - 22300: 0x9C22, - 22301: 0x9C23, - 22302: 0x9C24, - 22303: 0x9C25, - 22304: 0x9C26, - 22305: 0x9C27, - 22306: 0x9C28, - 22307: 0x9C29, - 22308: 0x9C2A, - 22309: 0x9C2B, - 22310: 0x9C2C, - 22311: 0x9C2D, - 22312: 0x9C2E, - 22313: 0x9C2F, - 22314: 0x9C30, - 22315: 0x9C31, - 22316: 0x9C32, - 22317: 0x9C33, - 22318: 0x9C34, - 22319: 0x9C35, - 22320: 0x9C36, - 22321: 0x9C37, - 22322: 0x9C38, - 22323: 0x9C39, - 22324: 0x9C3A, - 22325: 0x9C3B, - 22326: 0x89E5, - 22327: 0x89EB, - 22328: 0x89EF, - 22329: 0x8A3E, - 22330: 0x8B26, - 22331: 0x9753, - 22332: 0x96E9, - 22333: 0x96F3, - 22334: 0x96EF, - 22335: 0x9706, - 22336: 0x9701, - 22337: 0x9708, - 22338: 0x970F, - 22339: 0x970E, - 22340: 0x972A, - 22341: 0x972D, - 22342: 0x9730, - 22343: 0x973E, - 22344: 0x9F80, - 22345: 0x9F83, - 22346: 0x9F85, - 22347: 0x9F86, - 22348: 0x9F87, - 22349: 0x9F88, - 22350: 0x9F89, - 22351: 0x9F8A, - 22352: 0x9F8C, - 22353: 0x9EFE, - 22354: 0x9F0B, - 22355: 0x9F0D, - 22356: 0x96B9, - 22357: 0x96BC, - 22358: 0x96BD, - 22359: 0x96CE, - 22360: 0x96D2, - 22361: 0x77BF, - 22362: 0x96E0, - 22363: 0x928E, - 22364: 0x92AE, - 22365: 0x92C8, - 22366: 0x933E, - 22367: 0x936A, - 22368: 0x93CA, - 22369: 0x938F, - 22370: 0x943E, - 22371: 0x946B, - 22372: 0x9C7F, - 22373: 0x9C82, - 22374: 0x9C85, - 22375: 0x9C86, - 22376: 0x9C87, - 22377: 0x9C88, - 22378: 0x7A23, - 22379: 0x9C8B, - 22380: 0x9C8E, - 22381: 0x9C90, - 22382: 0x9C91, - 22383: 0x9C92, - 22384: 0x9C94, - 22385: 0x9C95, - 22386: 0x9C9A, - 22387: 0x9C9B, - 22388: 0x9C9E, - 22389: 0x9C9F, - 22390: 0x9CA0, - 22391: 0x9CA1, - 22392: 0x9CA2, - 22393: 0x9CA3, - 22394: 0x9CA5, - 22395: 0x9CA6, - 22396: 0x9CA7, - 22397: 0x9CA8, - 22398: 0x9CA9, - 22399: 0x9CAB, - 22400: 0x9CAD, - 22401: 0x9CAE, - 22402: 0x9CB0, - 22403: 0x9CB1, - 22404: 0x9CB2, - 22405: 0x9CB3, - 22406: 0x9CB4, - 22407: 0x9CB5, - 22408: 0x9CB6, - 22409: 0x9CB7, - 22410: 0x9CBA, - 22411: 0x9CBB, - 22412: 0x9CBC, - 22413: 0x9CBD, - 22414: 0x9CC4, - 22415: 0x9CC5, - 22416: 0x9CC6, - 22417: 0x9CC7, - 22418: 0x9CCA, - 22419: 0x9CCB, - 22420: 0x9C3C, - 22421: 0x9C3D, - 22422: 0x9C3E, - 22423: 0x9C3F, - 22424: 0x9C40, - 22425: 0x9C41, - 22426: 0x9C42, - 22427: 0x9C43, - 22428: 0x9C44, - 22429: 0x9C45, - 22430: 0x9C46, - 22431: 0x9C47, - 22432: 0x9C48, - 22433: 0x9C49, - 22434: 0x9C4A, - 22435: 0x9C4B, - 22436: 0x9C4C, - 22437: 0x9C4D, - 22438: 0x9C4E, - 22439: 0x9C4F, - 22440: 0x9C50, - 22441: 0x9C51, - 22442: 0x9C52, - 22443: 0x9C53, - 22444: 0x9C54, - 22445: 0x9C55, - 22446: 0x9C56, - 22447: 0x9C57, - 22448: 0x9C58, - 22449: 0x9C59, - 22450: 0x9C5A, - 22451: 0x9C5B, - 22452: 0x9C5C, - 22453: 0x9C5D, - 22454: 0x9C5E, - 22455: 0x9C5F, - 22456: 0x9C60, - 22457: 0x9C61, - 22458: 0x9C62, - 22459: 0x9C63, - 22460: 0x9C64, - 22461: 0x9C65, - 22462: 0x9C66, - 22463: 0x9C67, - 22464: 0x9C68, - 22465: 0x9C69, - 22466: 0x9C6A, - 22467: 0x9C6B, - 22468: 0x9C6C, - 22469: 0x9C6D, - 22470: 0x9C6E, - 22471: 0x9C6F, - 22472: 0x9C70, - 22473: 0x9C71, - 22474: 0x9C72, - 22475: 0x9C73, - 22476: 0x9C74, - 22477: 0x9C75, - 22478: 0x9C76, - 22479: 0x9C77, - 22480: 0x9C78, - 22481: 0x9C79, - 22482: 0x9C7A, - 22483: 0x9C7B, - 22484: 0x9C7D, - 22485: 0x9C7E, - 22486: 0x9C80, - 22487: 0x9C83, - 22488: 0x9C84, - 22489: 0x9C89, - 22490: 0x9C8A, - 22491: 0x9C8C, - 22492: 0x9C8F, - 22493: 0x9C93, - 22494: 0x9C96, - 22495: 0x9C97, - 22496: 0x9C98, - 22497: 0x9C99, - 22498: 0x9C9D, - 22499: 0x9CAA, - 22500: 0x9CAC, - 22501: 0x9CAF, - 22502: 0x9CB9, - 22503: 0x9CBE, - 22504: 0x9CBF, - 22505: 0x9CC0, - 22506: 0x9CC1, - 22507: 0x9CC2, - 22508: 0x9CC8, - 22509: 0x9CC9, - 22510: 0x9CD1, - 22511: 0x9CD2, - 22512: 0x9CDA, - 22513: 0x9CDB, - 22514: 0x9CE0, - 22515: 0x9CE1, - 22516: 0x9CCC, - 22517: 0x9CCD, - 22518: 0x9CCE, - 22519: 0x9CCF, - 22520: 0x9CD0, - 22521: 0x9CD3, - 22522: 0x9CD4, - 22523: 0x9CD5, - 22524: 0x9CD7, - 22525: 0x9CD8, - 22526: 0x9CD9, - 22527: 0x9CDC, - 22528: 0x9CDD, - 22529: 0x9CDF, - 22530: 0x9CE2, - 22531: 0x977C, - 22532: 0x9785, - 22533: 0x9791, - 22534: 0x9792, - 22535: 0x9794, - 22536: 0x97AF, - 22537: 0x97AB, - 22538: 0x97A3, - 22539: 0x97B2, - 22540: 0x97B4, - 22541: 0x9AB1, - 22542: 0x9AB0, - 22543: 0x9AB7, - 22544: 0x9E58, - 22545: 0x9AB6, - 22546: 0x9ABA, - 22547: 0x9ABC, - 22548: 0x9AC1, - 22549: 0x9AC0, - 22550: 0x9AC5, - 22551: 0x9AC2, - 22552: 0x9ACB, - 22553: 0x9ACC, - 22554: 0x9AD1, - 22555: 0x9B45, - 22556: 0x9B43, - 22557: 0x9B47, - 22558: 0x9B49, - 22559: 0x9B48, - 22560: 0x9B4D, - 22561: 0x9B51, - 22562: 0x98E8, - 22563: 0x990D, - 22564: 0x992E, - 22565: 0x9955, - 22566: 0x9954, - 22567: 0x9ADF, - 22568: 0x9AE1, - 22569: 0x9AE6, - 22570: 0x9AEF, - 22571: 0x9AEB, - 22572: 0x9AFB, - 22573: 0x9AED, - 22574: 0x9AF9, - 22575: 0x9B08, - 22576: 0x9B0F, - 22577: 0x9B13, - 22578: 0x9B1F, - 22579: 0x9B23, - 22580: 0x9EBD, - 22581: 0x9EBE, - 22582: 0x7E3B, - 22583: 0x9E82, - 22584: 0x9E87, - 22585: 0x9E88, - 22586: 0x9E8B, - 22587: 0x9E92, - 22588: 0x93D6, - 22589: 0x9E9D, - 22590: 0x9E9F, - 22591: 0x9EDB, - 22592: 0x9EDC, - 22593: 0x9EDD, - 22594: 0x9EE0, - 22595: 0x9EDF, - 22596: 0x9EE2, - 22597: 0x9EE9, - 22598: 0x9EE7, - 22599: 0x9EE5, - 22600: 0x9EEA, - 22601: 0x9EEF, - 22602: 0x9F22, - 22603: 0x9F2C, - 22604: 0x9F2F, - 22605: 0x9F39, - 22606: 0x9F37, - 22607: 0x9F3D, - 22608: 0x9F3E, - 22609: 0x9F44, - 22610: 0x9CE3, - 22611: 0x9CE4, - 22612: 0x9CE5, - 22613: 0x9CE6, - 22614: 0x9CE7, - 22615: 0x9CE8, - 22616: 0x9CE9, - 22617: 0x9CEA, - 22618: 0x9CEB, - 22619: 0x9CEC, - 22620: 0x9CED, - 22621: 0x9CEE, - 22622: 0x9CEF, - 22623: 0x9CF0, - 22624: 0x9CF1, - 22625: 0x9CF2, - 22626: 0x9CF3, - 22627: 0x9CF4, - 22628: 0x9CF5, - 22629: 0x9CF6, - 22630: 0x9CF7, - 22631: 0x9CF8, - 22632: 0x9CF9, - 22633: 0x9CFA, - 22634: 0x9CFB, - 22635: 0x9CFC, - 22636: 0x9CFD, - 22637: 0x9CFE, - 22638: 0x9CFF, - 22639: 0x9D00, - 22640: 0x9D01, - 22641: 0x9D02, - 22642: 0x9D03, - 22643: 0x9D04, - 22644: 0x9D05, - 22645: 0x9D06, - 22646: 0x9D07, - 22647: 0x9D08, - 22648: 0x9D09, - 22649: 0x9D0A, - 22650: 0x9D0B, - 22651: 0x9D0C, - 22652: 0x9D0D, - 22653: 0x9D0E, - 22654: 0x9D0F, - 22655: 0x9D10, - 22656: 0x9D11, - 22657: 0x9D12, - 22658: 0x9D13, - 22659: 0x9D14, - 22660: 0x9D15, - 22661: 0x9D16, - 22662: 0x9D17, - 22663: 0x9D18, - 22664: 0x9D19, - 22665: 0x9D1A, - 22666: 0x9D1B, - 22667: 0x9D1C, - 22668: 0x9D1D, - 22669: 0x9D1E, - 22670: 0x9D1F, - 22671: 0x9D20, - 22672: 0x9D21, - 22673: 0x9D22, - 22674: 0x9D23, - 22675: 0x9D24, - 22676: 0x9D25, - 22677: 0x9D26, - 22678: 0x9D27, - 22679: 0x9D28, - 22680: 0x9D29, - 22681: 0x9D2A, - 22682: 0x9D2B, - 22683: 0x9D2C, - 22684: 0x9D2D, - 22685: 0x9D2E, - 22686: 0x9D2F, - 22687: 0x9D30, - 22688: 0x9D31, - 22689: 0x9D32, - 22690: 0x9D33, - 22691: 0x9D34, - 22692: 0x9D35, - 22693: 0x9D36, - 22694: 0x9D37, - 22695: 0x9D38, - 22696: 0x9D39, - 22697: 0x9D3A, - 22698: 0x9D3B, - 22699: 0x9D3C, - 22700: 0x9D3D, - 22701: 0x9D3E, - 22702: 0x9D3F, - 22703: 0x9D40, - 22704: 0x9D41, - 22705: 0x9D42, - 22800: 0x9D43, - 22801: 0x9D44, - 22802: 0x9D45, - 22803: 0x9D46, - 22804: 0x9D47, - 22805: 0x9D48, - 22806: 0x9D49, - 22807: 0x9D4A, - 22808: 0x9D4B, - 22809: 0x9D4C, - 22810: 0x9D4D, - 22811: 0x9D4E, - 22812: 0x9D4F, - 22813: 0x9D50, - 22814: 0x9D51, - 22815: 0x9D52, - 22816: 0x9D53, - 22817: 0x9D54, - 22818: 0x9D55, - 22819: 0x9D56, - 22820: 0x9D57, - 22821: 0x9D58, - 22822: 0x9D59, - 22823: 0x9D5A, - 22824: 0x9D5B, - 22825: 0x9D5C, - 22826: 0x9D5D, - 22827: 0x9D5E, - 22828: 0x9D5F, - 22829: 0x9D60, - 22830: 0x9D61, - 22831: 0x9D62, - 22832: 0x9D63, - 22833: 0x9D64, - 22834: 0x9D65, - 22835: 0x9D66, - 22836: 0x9D67, - 22837: 0x9D68, - 22838: 0x9D69, - 22839: 0x9D6A, - 22840: 0x9D6B, - 22841: 0x9D6C, - 22842: 0x9D6D, - 22843: 0x9D6E, - 22844: 0x9D6F, - 22845: 0x9D70, - 22846: 0x9D71, - 22847: 0x9D72, - 22848: 0x9D73, - 22849: 0x9D74, - 22850: 0x9D75, - 22851: 0x9D76, - 22852: 0x9D77, - 22853: 0x9D78, - 22854: 0x9D79, - 22855: 0x9D7A, - 22856: 0x9D7B, - 22857: 0x9D7C, - 22858: 0x9D7D, - 22859: 0x9D7E, - 22860: 0x9D7F, - 22861: 0x9D80, - 22862: 0x9D81, - 22863: 0x9D82, - 22864: 0x9D83, - 22865: 0x9D84, - 22866: 0x9D85, - 22867: 0x9D86, - 22868: 0x9D87, - 22869: 0x9D88, - 22870: 0x9D89, - 22871: 0x9D8A, - 22872: 0x9D8B, - 22873: 0x9D8C, - 22874: 0x9D8D, - 22875: 0x9D8E, - 22876: 0x9D8F, - 22877: 0x9D90, - 22878: 0x9D91, - 22879: 0x9D92, - 22880: 0x9D93, - 22881: 0x9D94, - 22882: 0x9D95, - 22883: 0x9D96, - 22884: 0x9D97, - 22885: 0x9D98, - 22886: 0x9D99, - 22887: 0x9D9A, - 22888: 0x9D9B, - 22889: 0x9D9C, - 22890: 0x9D9D, - 22891: 0x9D9E, - 22892: 0x9D9F, - 22893: 0x9DA0, - 22894: 0x9DA1, - 22895: 0x9DA2, - 22990: 0x9DA3, - 22991: 0x9DA4, - 22992: 0x9DA5, - 22993: 0x9DA6, - 22994: 0x9DA7, - 22995: 0x9DA8, - 22996: 0x9DA9, - 22997: 0x9DAA, - 22998: 0x9DAB, - 22999: 0x9DAC, - 23000: 0x9DAD, - 23001: 0x9DAE, - 23002: 0x9DAF, - 23003: 0x9DB0, - 23004: 0x9DB1, - 23005: 0x9DB2, - 23006: 0x9DB3, - 23007: 0x9DB4, - 23008: 0x9DB5, - 23009: 0x9DB6, - 23010: 0x9DB7, - 23011: 0x9DB8, - 23012: 0x9DB9, - 23013: 0x9DBA, - 23014: 0x9DBB, - 23015: 0x9DBC, - 23016: 0x9DBD, - 23017: 0x9DBE, - 23018: 0x9DBF, - 23019: 0x9DC0, - 23020: 0x9DC1, - 23021: 0x9DC2, - 23022: 0x9DC3, - 23023: 0x9DC4, - 23024: 0x9DC5, - 23025: 0x9DC6, - 23026: 0x9DC7, - 23027: 0x9DC8, - 23028: 0x9DC9, - 23029: 0x9DCA, - 23030: 0x9DCB, - 23031: 0x9DCC, - 23032: 0x9DCD, - 23033: 0x9DCE, - 23034: 0x9DCF, - 23035: 0x9DD0, - 23036: 0x9DD1, - 23037: 0x9DD2, - 23038: 0x9DD3, - 23039: 0x9DD4, - 23040: 0x9DD5, - 23041: 0x9DD6, - 23042: 0x9DD7, - 23043: 0x9DD8, - 23044: 0x9DD9, - 23045: 0x9DDA, - 23046: 0x9DDB, - 23047: 0x9DDC, - 23048: 0x9DDD, - 23049: 0x9DDE, - 23050: 0x9DDF, - 23051: 0x9DE0, - 23052: 0x9DE1, - 23053: 0x9DE2, - 23054: 0x9DE3, - 23055: 0x9DE4, - 23056: 0x9DE5, - 23057: 0x9DE6, - 23058: 0x9DE7, - 23059: 0x9DE8, - 23060: 0x9DE9, - 23061: 0x9DEA, - 23062: 0x9DEB, - 23063: 0x9DEC, - 23064: 0x9DED, - 23065: 0x9DEE, - 23066: 0x9DEF, - 23067: 0x9DF0, - 23068: 0x9DF1, - 23069: 0x9DF2, - 23070: 0x9DF3, - 23071: 0x9DF4, - 23072: 0x9DF5, - 23073: 0x9DF6, - 23074: 0x9DF7, - 23075: 0x9DF8, - 23076: 0x9DF9, - 23077: 0x9DFA, - 23078: 0x9DFB, - 23079: 0x9DFC, - 23080: 0x9DFD, - 23081: 0x9DFE, - 23082: 0x9DFF, - 23083: 0x9E00, - 23084: 0x9E01, - 23085: 0x9E02, - 23180: 0x9E03, - 23181: 0x9E04, - 23182: 0x9E05, - 23183: 0x9E06, - 23184: 0x9E07, - 23185: 0x9E08, - 23186: 0x9E09, - 23187: 0x9E0A, - 23188: 0x9E0B, - 23189: 0x9E0C, - 23190: 0x9E0D, - 23191: 0x9E0E, - 23192: 0x9E0F, - 23193: 0x9E10, - 23194: 0x9E11, - 23195: 0x9E12, - 23196: 0x9E13, - 23197: 0x9E14, - 23198: 0x9E15, - 23199: 0x9E16, - 23200: 0x9E17, - 23201: 0x9E18, - 23202: 0x9E19, - 23203: 0x9E1A, - 23204: 0x9E1B, - 23205: 0x9E1C, - 23206: 0x9E1D, - 23207: 0x9E1E, - 23208: 0x9E24, - 23209: 0x9E27, - 23210: 0x9E2E, - 23211: 0x9E30, - 23212: 0x9E34, - 23213: 0x9E3B, - 23214: 0x9E3C, - 23215: 0x9E40, - 23216: 0x9E4D, - 23217: 0x9E50, - 23218: 0x9E52, - 23219: 0x9E53, - 23220: 0x9E54, - 23221: 0x9E56, - 23222: 0x9E59, - 23223: 0x9E5D, - 23224: 0x9E5F, - 23225: 0x9E60, - 23226: 0x9E61, - 23227: 0x9E62, - 23228: 0x9E65, - 23229: 0x9E6E, - 23230: 0x9E6F, - 23231: 0x9E72, - 23232: 0x9E74, - 23233: 0x9E75, - 23234: 0x9E76, - 23235: 0x9E77, - 23236: 0x9E78, - 23237: 0x9E79, - 23238: 0x9E7A, - 23239: 0x9E7B, - 23240: 0x9E7C, - 23241: 0x9E7D, - 23242: 0x9E80, - 23243: 0x9E81, - 23244: 0x9E83, - 23245: 0x9E84, - 23246: 0x9E85, - 23247: 0x9E86, - 23248: 0x9E89, - 23249: 0x9E8A, - 23250: 0x9E8C, - 23251: 0x9E8D, - 23252: 0x9E8E, - 23253: 0x9E8F, - 23254: 0x9E90, - 23255: 0x9E91, - 23256: 0x9E94, - 23257: 0x9E95, - 23258: 0x9E96, - 23259: 0x9E97, - 23260: 0x9E98, - 23261: 0x9E99, - 23262: 0x9E9A, - 23263: 0x9E9B, - 23264: 0x9E9C, - 23265: 0x9E9E, - 23266: 0x9EA0, - 23267: 0x9EA1, - 23268: 0x9EA2, - 23269: 0x9EA3, - 23270: 0x9EA4, - 23271: 0x9EA5, - 23272: 0x9EA7, - 23273: 0x9EA8, - 23274: 0x9EA9, - 23275: 0x9EAA, - 23370: 0x9EAB, - 23371: 0x9EAC, - 23372: 0x9EAD, - 23373: 0x9EAE, - 23374: 0x9EAF, - 23375: 0x9EB0, - 23376: 0x9EB1, - 23377: 0x9EB2, - 23378: 0x9EB3, - 23379: 0x9EB5, - 23380: 0x9EB6, - 23381: 0x9EB7, - 23382: 0x9EB9, - 23383: 0x9EBA, - 23384: 0x9EBC, - 23385: 0x9EBF, - 23386: 0x9EC0, - 23387: 0x9EC1, - 23388: 0x9EC2, - 23389: 0x9EC3, - 23390: 0x9EC5, - 23391: 0x9EC6, - 23392: 0x9EC7, - 23393: 0x9EC8, - 23394: 0x9ECA, - 23395: 0x9ECB, - 23396: 0x9ECC, - 23397: 0x9ED0, - 23398: 0x9ED2, - 23399: 0x9ED3, - 23400: 0x9ED5, - 23401: 0x9ED6, - 23402: 0x9ED7, - 23403: 0x9ED9, - 23404: 0x9EDA, - 23405: 0x9EDE, - 23406: 0x9EE1, - 23407: 0x9EE3, - 23408: 0x9EE4, - 23409: 0x9EE6, - 23410: 0x9EE8, - 23411: 0x9EEB, - 23412: 0x9EEC, - 23413: 0x9EED, - 23414: 0x9EEE, - 23415: 0x9EF0, - 23416: 0x9EF1, - 23417: 0x9EF2, - 23418: 0x9EF3, - 23419: 0x9EF4, - 23420: 0x9EF5, - 23421: 0x9EF6, - 23422: 0x9EF7, - 23423: 0x9EF8, - 23424: 0x9EFA, - 23425: 0x9EFD, - 23426: 0x9EFF, - 23427: 0x9F00, - 23428: 0x9F01, - 23429: 0x9F02, - 23430: 0x9F03, - 23431: 0x9F04, - 23432: 0x9F05, - 23433: 0x9F06, - 23434: 0x9F07, - 23435: 0x9F08, - 23436: 0x9F09, - 23437: 0x9F0A, - 23438: 0x9F0C, - 23439: 0x9F0F, - 23440: 0x9F11, - 23441: 0x9F12, - 23442: 0x9F14, - 23443: 0x9F15, - 23444: 0x9F16, - 23445: 0x9F18, - 23446: 0x9F1A, - 23447: 0x9F1B, - 23448: 0x9F1C, - 23449: 0x9F1D, - 23450: 0x9F1E, - 23451: 0x9F1F, - 23452: 0x9F21, - 23453: 0x9F23, - 23454: 0x9F24, - 23455: 0x9F25, - 23456: 0x9F26, - 23457: 0x9F27, - 23458: 0x9F28, - 23459: 0x9F29, - 23460: 0x9F2A, - 23461: 0x9F2B, - 23462: 0x9F2D, - 23463: 0x9F2E, - 23464: 0x9F30, - 23465: 0x9F31, - 23560: 0x9F32, - 23561: 0x9F33, - 23562: 0x9F34, - 23563: 0x9F35, - 23564: 0x9F36, - 23565: 0x9F38, - 23566: 0x9F3A, - 23567: 0x9F3C, - 23568: 0x9F3F, - 23569: 0x9F40, - 23570: 0x9F41, - 23571: 0x9F42, - 23572: 0x9F43, - 23573: 0x9F45, - 23574: 0x9F46, - 23575: 0x9F47, - 23576: 0x9F48, - 23577: 0x9F49, - 23578: 0x9F4A, - 23579: 0x9F4B, - 23580: 0x9F4C, - 23581: 0x9F4D, - 23582: 0x9F4E, - 23583: 0x9F4F, - 23584: 0x9F52, - 23585: 0x9F53, - 23586: 0x9F54, - 23587: 0x9F55, - 23588: 0x9F56, - 23589: 0x9F57, - 23590: 0x9F58, - 23591: 0x9F59, - 23592: 0x9F5A, - 23593: 0x9F5B, - 23594: 0x9F5C, - 23595: 0x9F5D, - 23596: 0x9F5E, - 23597: 0x9F5F, - 23598: 0x9F60, - 23599: 0x9F61, - 23600: 0x9F62, - 23601: 0x9F63, - 23602: 0x9F64, - 23603: 0x9F65, - 23604: 0x9F66, - 23605: 0x9F67, - 23606: 0x9F68, - 23607: 0x9F69, - 23608: 0x9F6A, - 23609: 0x9F6B, - 23610: 0x9F6C, - 23611: 0x9F6D, - 23612: 0x9F6E, - 23613: 0x9F6F, - 23614: 0x9F70, - 23615: 0x9F71, - 23616: 0x9F72, - 23617: 0x9F73, - 23618: 0x9F74, - 23619: 0x9F75, - 23620: 0x9F76, - 23621: 0x9F77, - 23622: 0x9F78, - 23623: 0x9F79, - 23624: 0x9F7A, - 23625: 0x9F7B, - 23626: 0x9F7C, - 23627: 0x9F7D, - 23628: 0x9F7E, - 23629: 0x9F81, - 23630: 0x9F82, - 23631: 0x9F8D, - 23632: 0x9F8E, - 23633: 0x9F8F, - 23634: 0x9F90, - 23635: 0x9F91, - 23636: 0x9F92, - 23637: 0x9F93, - 23638: 0x9F94, - 23639: 0x9F95, - 23640: 0x9F96, - 23641: 0x9F97, - 23642: 0x9F98, - 23643: 0x9F9C, - 23644: 0x9F9D, - 23645: 0x9F9E, - 23646: 0x9FA1, - 23647: 0x9FA2, - 23648: 0x9FA3, - 23649: 0x9FA4, - 23650: 0x9FA5, - 23651: 0xF92C, - 23652: 0xF979, - 23653: 0xF995, - 23654: 0xF9E7, - 23655: 0xF9F1, - 23750: 0xFA0C, - 23751: 0xFA0D, - 23752: 0xFA0E, - 23753: 0xFA0F, - 23754: 0xFA11, - 23755: 0xFA13, - 23756: 0xFA14, - 23757: 0xFA18, - 23758: 0xFA1F, - 23759: 0xFA20, - 23760: 0xFA21, - 23761: 0xFA23, - 23762: 0xFA24, - 23763: 0xFA27, - 23764: 0xFA28, - 23765: 0xFA29, - 23766: 0x2E81, - 23770: 0x2E84, - 23771: 0x3473, - 23772: 0x3447, - 23773: 0x2E88, - 23774: 0x2E8B, - 23776: 0x359E, - 23777: 0x361A, - 23778: 0x360E, - 23779: 0x2E8C, - 23780: 0x2E97, - 23781: 0x396E, - 23782: 0x3918, - 23784: 0x39CF, - 23785: 0x39DF, - 23786: 0x3A73, - 23787: 0x39D0, - 23790: 0x3B4E, - 23791: 0x3C6E, - 23792: 0x3CE0, - 23793: 0x2EA7, - 23796: 0x2EAA, - 23797: 0x4056, - 23798: 0x415F, - 23799: 0x2EAE, - 23800: 0x4337, - 23801: 0x2EB3, - 23802: 0x2EB6, - 23803: 0x2EB7, - 23805: 0x43B1, - 23806: 0x43AC, - 23807: 0x2EBB, - 23808: 0x43DD, - 23809: 0x44D6, - 23810: 0x4661, - 23811: 0x464C, - 23813: 0x4723, - 23814: 0x4729, - 23815: 0x477C, - 23816: 0x478D, - 23817: 0x2ECA, - 23818: 0x4947, - 23819: 0x497A, - 23820: 0x497D, - 23821: 0x4982, - 23822: 0x4983, - 23823: 0x4985, - 23824: 0x4986, - 23825: 0x499F, - 23826: 0x499B, - 23827: 0x49B7, - 23828: 0x49B6, - 23831: 0x4CA3, - 23832: 0x4C9F, - 23833: 0x4CA0, - 23834: 0x4CA1, - 23835: 0x4C77, - 23836: 0x4CA2, - 23837: 0x4D13, - 23838: 0x4D14, - 23839: 0x4D15, - 23840: 0x4D16, - 23841: 0x4D17, - 23842: 0x4D18, - 23843: 0x4D19, - 23844: 0x4DAE, -} - -const numEncodeTables = 5 - -// encodeX are the encoding tables from Unicode to GBK code, -// sorted by decreasing length. -// encode0: 28965 entries for runes in [11905, 40870). -// encode1: 1587 entries for runes in [ 8208, 9795). -// encode2: 942 entries for runes in [ 164, 1106). -// encode3: 438 entries for runes in [65072, 65510). -// encode4: 254 entries for runes in [63788, 64042). - -const encode0Low, encode0High = 11905, 40870 - -var encode0 = [...]uint16{ - 11905 - 11905: 0xFE50, - 11908 - 11905: 0xFE54, - 11912 - 11905: 0xFE57, - 11915 - 11905: 0xFE58, - 11916 - 11905: 0xFE5D, - 11927 - 11905: 0xFE5E, - 11943 - 11905: 0xFE6B, - 11946 - 11905: 0xFE6E, - 11950 - 11905: 0xFE71, - 11955 - 11905: 0xFE73, - 11958 - 11905: 0xFE74, - 11959 - 11905: 0xFE75, - 11963 - 11905: 0xFE79, - 11978 - 11905: 0xFE84, - 12272 - 11905: 0xA98A, - 12273 - 11905: 0xA98B, - 12274 - 11905: 0xA98C, - 12275 - 11905: 0xA98D, - 12276 - 11905: 0xA98E, - 12277 - 11905: 0xA98F, - 12278 - 11905: 0xA990, - 12279 - 11905: 0xA991, - 12280 - 11905: 0xA992, - 12281 - 11905: 0xA993, - 12282 - 11905: 0xA994, - 12283 - 11905: 0xA995, - 12288 - 11905: 0xA1A1, - 12289 - 11905: 0xA1A2, - 12290 - 11905: 0xA1A3, - 12291 - 11905: 0xA1A8, - 12293 - 11905: 0xA1A9, - 12294 - 11905: 0xA965, - 12295 - 11905: 0xA996, - 12296 - 11905: 0xA1B4, - 12297 - 11905: 0xA1B5, - 12298 - 11905: 0xA1B6, - 12299 - 11905: 0xA1B7, - 12300 - 11905: 0xA1B8, - 12301 - 11905: 0xA1B9, - 12302 - 11905: 0xA1BA, - 12303 - 11905: 0xA1BB, - 12304 - 11905: 0xA1BE, - 12305 - 11905: 0xA1BF, - 12306 - 11905: 0xA893, - 12307 - 11905: 0xA1FE, - 12308 - 11905: 0xA1B2, - 12309 - 11905: 0xA1B3, - 12310 - 11905: 0xA1BC, - 12311 - 11905: 0xA1BD, - 12317 - 11905: 0xA894, - 12318 - 11905: 0xA895, - 12321 - 11905: 0xA940, - 12322 - 11905: 0xA941, - 12323 - 11905: 0xA942, - 12324 - 11905: 0xA943, - 12325 - 11905: 0xA944, - 12326 - 11905: 0xA945, - 12327 - 11905: 0xA946, - 12328 - 11905: 0xA947, - 12329 - 11905: 0xA948, - 12350 - 11905: 0xA989, - 12353 - 11905: 0xA4A1, - 12354 - 11905: 0xA4A2, - 12355 - 11905: 0xA4A3, - 12356 - 11905: 0xA4A4, - 12357 - 11905: 0xA4A5, - 12358 - 11905: 0xA4A6, - 12359 - 11905: 0xA4A7, - 12360 - 11905: 0xA4A8, - 12361 - 11905: 0xA4A9, - 12362 - 11905: 0xA4AA, - 12363 - 11905: 0xA4AB, - 12364 - 11905: 0xA4AC, - 12365 - 11905: 0xA4AD, - 12366 - 11905: 0xA4AE, - 12367 - 11905: 0xA4AF, - 12368 - 11905: 0xA4B0, - 12369 - 11905: 0xA4B1, - 12370 - 11905: 0xA4B2, - 12371 - 11905: 0xA4B3, - 12372 - 11905: 0xA4B4, - 12373 - 11905: 0xA4B5, - 12374 - 11905: 0xA4B6, - 12375 - 11905: 0xA4B7, - 12376 - 11905: 0xA4B8, - 12377 - 11905: 0xA4B9, - 12378 - 11905: 0xA4BA, - 12379 - 11905: 0xA4BB, - 12380 - 11905: 0xA4BC, - 12381 - 11905: 0xA4BD, - 12382 - 11905: 0xA4BE, - 12383 - 11905: 0xA4BF, - 12384 - 11905: 0xA4C0, - 12385 - 11905: 0xA4C1, - 12386 - 11905: 0xA4C2, - 12387 - 11905: 0xA4C3, - 12388 - 11905: 0xA4C4, - 12389 - 11905: 0xA4C5, - 12390 - 11905: 0xA4C6, - 12391 - 11905: 0xA4C7, - 12392 - 11905: 0xA4C8, - 12393 - 11905: 0xA4C9, - 12394 - 11905: 0xA4CA, - 12395 - 11905: 0xA4CB, - 12396 - 11905: 0xA4CC, - 12397 - 11905: 0xA4CD, - 12398 - 11905: 0xA4CE, - 12399 - 11905: 0xA4CF, - 12400 - 11905: 0xA4D0, - 12401 - 11905: 0xA4D1, - 12402 - 11905: 0xA4D2, - 12403 - 11905: 0xA4D3, - 12404 - 11905: 0xA4D4, - 12405 - 11905: 0xA4D5, - 12406 - 11905: 0xA4D6, - 12407 - 11905: 0xA4D7, - 12408 - 11905: 0xA4D8, - 12409 - 11905: 0xA4D9, - 12410 - 11905: 0xA4DA, - 12411 - 11905: 0xA4DB, - 12412 - 11905: 0xA4DC, - 12413 - 11905: 0xA4DD, - 12414 - 11905: 0xA4DE, - 12415 - 11905: 0xA4DF, - 12416 - 11905: 0xA4E0, - 12417 - 11905: 0xA4E1, - 12418 - 11905: 0xA4E2, - 12419 - 11905: 0xA4E3, - 12420 - 11905: 0xA4E4, - 12421 - 11905: 0xA4E5, - 12422 - 11905: 0xA4E6, - 12423 - 11905: 0xA4E7, - 12424 - 11905: 0xA4E8, - 12425 - 11905: 0xA4E9, - 12426 - 11905: 0xA4EA, - 12427 - 11905: 0xA4EB, - 12428 - 11905: 0xA4EC, - 12429 - 11905: 0xA4ED, - 12430 - 11905: 0xA4EE, - 12431 - 11905: 0xA4EF, - 12432 - 11905: 0xA4F0, - 12433 - 11905: 0xA4F1, - 12434 - 11905: 0xA4F2, - 12435 - 11905: 0xA4F3, - 12443 - 11905: 0xA961, - 12444 - 11905: 0xA962, - 12445 - 11905: 0xA966, - 12446 - 11905: 0xA967, - 12449 - 11905: 0xA5A1, - 12450 - 11905: 0xA5A2, - 12451 - 11905: 0xA5A3, - 12452 - 11905: 0xA5A4, - 12453 - 11905: 0xA5A5, - 12454 - 11905: 0xA5A6, - 12455 - 11905: 0xA5A7, - 12456 - 11905: 0xA5A8, - 12457 - 11905: 0xA5A9, - 12458 - 11905: 0xA5AA, - 12459 - 11905: 0xA5AB, - 12460 - 11905: 0xA5AC, - 12461 - 11905: 0xA5AD, - 12462 - 11905: 0xA5AE, - 12463 - 11905: 0xA5AF, - 12464 - 11905: 0xA5B0, - 12465 - 11905: 0xA5B1, - 12466 - 11905: 0xA5B2, - 12467 - 11905: 0xA5B3, - 12468 - 11905: 0xA5B4, - 12469 - 11905: 0xA5B5, - 12470 - 11905: 0xA5B6, - 12471 - 11905: 0xA5B7, - 12472 - 11905: 0xA5B8, - 12473 - 11905: 0xA5B9, - 12474 - 11905: 0xA5BA, - 12475 - 11905: 0xA5BB, - 12476 - 11905: 0xA5BC, - 12477 - 11905: 0xA5BD, - 12478 - 11905: 0xA5BE, - 12479 - 11905: 0xA5BF, - 12480 - 11905: 0xA5C0, - 12481 - 11905: 0xA5C1, - 12482 - 11905: 0xA5C2, - 12483 - 11905: 0xA5C3, - 12484 - 11905: 0xA5C4, - 12485 - 11905: 0xA5C5, - 12486 - 11905: 0xA5C6, - 12487 - 11905: 0xA5C7, - 12488 - 11905: 0xA5C8, - 12489 - 11905: 0xA5C9, - 12490 - 11905: 0xA5CA, - 12491 - 11905: 0xA5CB, - 12492 - 11905: 0xA5CC, - 12493 - 11905: 0xA5CD, - 12494 - 11905: 0xA5CE, - 12495 - 11905: 0xA5CF, - 12496 - 11905: 0xA5D0, - 12497 - 11905: 0xA5D1, - 12498 - 11905: 0xA5D2, - 12499 - 11905: 0xA5D3, - 12500 - 11905: 0xA5D4, - 12501 - 11905: 0xA5D5, - 12502 - 11905: 0xA5D6, - 12503 - 11905: 0xA5D7, - 12504 - 11905: 0xA5D8, - 12505 - 11905: 0xA5D9, - 12506 - 11905: 0xA5DA, - 12507 - 11905: 0xA5DB, - 12508 - 11905: 0xA5DC, - 12509 - 11905: 0xA5DD, - 12510 - 11905: 0xA5DE, - 12511 - 11905: 0xA5DF, - 12512 - 11905: 0xA5E0, - 12513 - 11905: 0xA5E1, - 12514 - 11905: 0xA5E2, - 12515 - 11905: 0xA5E3, - 12516 - 11905: 0xA5E4, - 12517 - 11905: 0xA5E5, - 12518 - 11905: 0xA5E6, - 12519 - 11905: 0xA5E7, - 12520 - 11905: 0xA5E8, - 12521 - 11905: 0xA5E9, - 12522 - 11905: 0xA5EA, - 12523 - 11905: 0xA5EB, - 12524 - 11905: 0xA5EC, - 12525 - 11905: 0xA5ED, - 12526 - 11905: 0xA5EE, - 12527 - 11905: 0xA5EF, - 12528 - 11905: 0xA5F0, - 12529 - 11905: 0xA5F1, - 12530 - 11905: 0xA5F2, - 12531 - 11905: 0xA5F3, - 12532 - 11905: 0xA5F4, - 12533 - 11905: 0xA5F5, - 12534 - 11905: 0xA5F6, - 12540 - 11905: 0xA960, - 12541 - 11905: 0xA963, - 12542 - 11905: 0xA964, - 12549 - 11905: 0xA8C5, - 12550 - 11905: 0xA8C6, - 12551 - 11905: 0xA8C7, - 12552 - 11905: 0xA8C8, - 12553 - 11905: 0xA8C9, - 12554 - 11905: 0xA8CA, - 12555 - 11905: 0xA8CB, - 12556 - 11905: 0xA8CC, - 12557 - 11905: 0xA8CD, - 12558 - 11905: 0xA8CE, - 12559 - 11905: 0xA8CF, - 12560 - 11905: 0xA8D0, - 12561 - 11905: 0xA8D1, - 12562 - 11905: 0xA8D2, - 12563 - 11905: 0xA8D3, - 12564 - 11905: 0xA8D4, - 12565 - 11905: 0xA8D5, - 12566 - 11905: 0xA8D6, - 12567 - 11905: 0xA8D7, - 12568 - 11905: 0xA8D8, - 12569 - 11905: 0xA8D9, - 12570 - 11905: 0xA8DA, - 12571 - 11905: 0xA8DB, - 12572 - 11905: 0xA8DC, - 12573 - 11905: 0xA8DD, - 12574 - 11905: 0xA8DE, - 12575 - 11905: 0xA8DF, - 12576 - 11905: 0xA8E0, - 12577 - 11905: 0xA8E1, - 12578 - 11905: 0xA8E2, - 12579 - 11905: 0xA8E3, - 12580 - 11905: 0xA8E4, - 12581 - 11905: 0xA8E5, - 12582 - 11905: 0xA8E6, - 12583 - 11905: 0xA8E7, - 12584 - 11905: 0xA8E8, - 12585 - 11905: 0xA8E9, - 12832 - 11905: 0xA2E5, - 12833 - 11905: 0xA2E6, - 12834 - 11905: 0xA2E7, - 12835 - 11905: 0xA2E8, - 12836 - 11905: 0xA2E9, - 12837 - 11905: 0xA2EA, - 12838 - 11905: 0xA2EB, - 12839 - 11905: 0xA2EC, - 12840 - 11905: 0xA2ED, - 12841 - 11905: 0xA2EE, - 12849 - 11905: 0xA95A, - 12963 - 11905: 0xA949, - 13198 - 11905: 0xA94A, - 13199 - 11905: 0xA94B, - 13212 - 11905: 0xA94C, - 13213 - 11905: 0xA94D, - 13214 - 11905: 0xA94E, - 13217 - 11905: 0xA94F, - 13252 - 11905: 0xA950, - 13262 - 11905: 0xA951, - 13265 - 11905: 0xA952, - 13266 - 11905: 0xA953, - 13269 - 11905: 0xA954, - 13383 - 11905: 0xFE56, - 13427 - 11905: 0xFE55, - 13726 - 11905: 0xFE5A, - 13838 - 11905: 0xFE5C, - 13850 - 11905: 0xFE5B, - 14616 - 11905: 0xFE60, - 14702 - 11905: 0xFE5F, - 14799 - 11905: 0xFE62, - 14800 - 11905: 0xFE65, - 14815 - 11905: 0xFE63, - 14963 - 11905: 0xFE64, - 15182 - 11905: 0xFE68, - 15470 - 11905: 0xFE69, - 15584 - 11905: 0xFE6A, - 16470 - 11905: 0xFE6F, - 16735 - 11905: 0xFE70, - 17207 - 11905: 0xFE72, - 17324 - 11905: 0xFE78, - 17329 - 11905: 0xFE77, - 17373 - 11905: 0xFE7A, - 17622 - 11905: 0xFE7B, - 17996 - 11905: 0xFE7D, - 18017 - 11905: 0xFE7C, - 18211 - 11905: 0xFE80, - 18217 - 11905: 0xFE81, - 18300 - 11905: 0xFE82, - 18317 - 11905: 0xFE83, - 18759 - 11905: 0xFE85, - 18810 - 11905: 0xFE86, - 18813 - 11905: 0xFE87, - 18818 - 11905: 0xFE88, - 18819 - 11905: 0xFE89, - 18821 - 11905: 0xFE8A, - 18822 - 11905: 0xFE8B, - 18843 - 11905: 0xFE8D, - 18847 - 11905: 0xFE8C, - 18870 - 11905: 0xFE8F, - 18871 - 11905: 0xFE8E, - 19575 - 11905: 0xFE96, - 19615 - 11905: 0xFE93, - 19616 - 11905: 0xFE94, - 19617 - 11905: 0xFE95, - 19618 - 11905: 0xFE97, - 19619 - 11905: 0xFE92, - 19731 - 11905: 0xFE98, - 19732 - 11905: 0xFE99, - 19733 - 11905: 0xFE9A, - 19734 - 11905: 0xFE9B, - 19735 - 11905: 0xFE9C, - 19736 - 11905: 0xFE9D, - 19737 - 11905: 0xFE9E, - 19886 - 11905: 0xFE9F, - 19968 - 11905: 0xD2BB, - 19969 - 11905: 0xB6A1, - 19970 - 11905: 0x8140, - 19971 - 11905: 0xC6DF, - 19972 - 11905: 0x8141, - 19973 - 11905: 0x8142, - 19974 - 11905: 0x8143, - 19975 - 11905: 0xCDF2, - 19976 - 11905: 0xD5C9, - 19977 - 11905: 0xC8FD, - 19978 - 11905: 0xC9CF, - 19979 - 11905: 0xCFC2, - 19980 - 11905: 0xD8A2, - 19981 - 11905: 0xB2BB, - 19982 - 11905: 0xD3EB, - 19983 - 11905: 0x8144, - 19984 - 11905: 0xD8A4, - 19985 - 11905: 0xB3F3, - 19986 - 11905: 0x8145, - 19987 - 11905: 0xD7A8, - 19988 - 11905: 0xC7D2, - 19989 - 11905: 0xD8A7, - 19990 - 11905: 0xCAC0, - 19991 - 11905: 0x8146, - 19992 - 11905: 0xC7F0, - 19993 - 11905: 0xB1FB, - 19994 - 11905: 0xD2B5, - 19995 - 11905: 0xB4D4, - 19996 - 11905: 0xB6AB, - 19997 - 11905: 0xCBBF, - 19998 - 11905: 0xD8A9, - 19999 - 11905: 0x8147, - 20000 - 11905: 0x8148, - 20001 - 11905: 0x8149, - 20002 - 11905: 0xB6AA, - 20003 - 11905: 0x814A, - 20004 - 11905: 0xC1BD, - 20005 - 11905: 0xD1CF, - 20006 - 11905: 0x814B, - 20007 - 11905: 0xC9A5, - 20008 - 11905: 0xD8AD, - 20009 - 11905: 0x814C, - 20010 - 11905: 0xB8F6, - 20011 - 11905: 0xD1BE, - 20012 - 11905: 0xE3DC, - 20013 - 11905: 0xD6D0, - 20014 - 11905: 0x814D, - 20015 - 11905: 0x814E, - 20016 - 11905: 0xB7E1, - 20017 - 11905: 0x814F, - 20018 - 11905: 0xB4AE, - 20019 - 11905: 0x8150, - 20020 - 11905: 0xC1D9, - 20021 - 11905: 0x8151, - 20022 - 11905: 0xD8BC, - 20023 - 11905: 0x8152, - 20024 - 11905: 0xCDE8, - 20025 - 11905: 0xB5A4, - 20026 - 11905: 0xCEAA, - 20027 - 11905: 0xD6F7, - 20028 - 11905: 0x8153, - 20029 - 11905: 0xC0F6, - 20030 - 11905: 0xBED9, - 20031 - 11905: 0xD8AF, - 20032 - 11905: 0x8154, - 20033 - 11905: 0x8155, - 20034 - 11905: 0x8156, - 20035 - 11905: 0xC4CB, - 20036 - 11905: 0x8157, - 20037 - 11905: 0xBEC3, - 20038 - 11905: 0x8158, - 20039 - 11905: 0xD8B1, - 20040 - 11905: 0xC3B4, - 20041 - 11905: 0xD2E5, - 20042 - 11905: 0x8159, - 20043 - 11905: 0xD6AE, - 20044 - 11905: 0xCEDA, - 20045 - 11905: 0xD5A7, - 20046 - 11905: 0xBAF5, - 20047 - 11905: 0xB7A6, - 20048 - 11905: 0xC0D6, - 20049 - 11905: 0x815A, - 20050 - 11905: 0xC6B9, - 20051 - 11905: 0xC5D2, - 20052 - 11905: 0xC7C7, - 20053 - 11905: 0x815B, - 20054 - 11905: 0xB9D4, - 20055 - 11905: 0x815C, - 20056 - 11905: 0xB3CB, - 20057 - 11905: 0xD2D2, - 20058 - 11905: 0x815D, - 20059 - 11905: 0x815E, - 20060 - 11905: 0xD8BF, - 20061 - 11905: 0xBEC5, - 20062 - 11905: 0xC6F2, - 20063 - 11905: 0xD2B2, - 20064 - 11905: 0xCFB0, - 20065 - 11905: 0xCFE7, - 20066 - 11905: 0x815F, - 20067 - 11905: 0x8160, - 20068 - 11905: 0x8161, - 20069 - 11905: 0x8162, - 20070 - 11905: 0xCAE9, - 20071 - 11905: 0x8163, - 20072 - 11905: 0x8164, - 20073 - 11905: 0xD8C0, - 20074 - 11905: 0x8165, - 20075 - 11905: 0x8166, - 20076 - 11905: 0x8167, - 20077 - 11905: 0x8168, - 20078 - 11905: 0x8169, - 20079 - 11905: 0x816A, - 20080 - 11905: 0xC2F2, - 20081 - 11905: 0xC2D2, - 20082 - 11905: 0x816B, - 20083 - 11905: 0xC8E9, - 20084 - 11905: 0x816C, - 20085 - 11905: 0x816D, - 20086 - 11905: 0x816E, - 20087 - 11905: 0x816F, - 20088 - 11905: 0x8170, - 20089 - 11905: 0x8171, - 20090 - 11905: 0x8172, - 20091 - 11905: 0x8173, - 20092 - 11905: 0x8174, - 20093 - 11905: 0x8175, - 20094 - 11905: 0xC7AC, - 20095 - 11905: 0x8176, - 20096 - 11905: 0x8177, - 20097 - 11905: 0x8178, - 20098 - 11905: 0x8179, - 20099 - 11905: 0x817A, - 20100 - 11905: 0x817B, - 20101 - 11905: 0x817C, - 20102 - 11905: 0xC1CB, - 20103 - 11905: 0x817D, - 20104 - 11905: 0xD3E8, - 20105 - 11905: 0xD5F9, - 20106 - 11905: 0x817E, - 20107 - 11905: 0xCAC2, - 20108 - 11905: 0xB6FE, - 20109 - 11905: 0xD8A1, - 20110 - 11905: 0xD3DA, - 20111 - 11905: 0xBFF7, - 20112 - 11905: 0x8180, - 20113 - 11905: 0xD4C6, - 20114 - 11905: 0xBBA5, - 20115 - 11905: 0xD8C1, - 20116 - 11905: 0xCEE5, - 20117 - 11905: 0xBEAE, - 20118 - 11905: 0x8181, - 20119 - 11905: 0x8182, - 20120 - 11905: 0xD8A8, - 20121 - 11905: 0x8183, - 20122 - 11905: 0xD1C7, - 20123 - 11905: 0xD0A9, - 20124 - 11905: 0x8184, - 20125 - 11905: 0x8185, - 20126 - 11905: 0x8186, - 20127 - 11905: 0xD8BD, - 20128 - 11905: 0xD9EF, - 20129 - 11905: 0xCDF6, - 20130 - 11905: 0xBFBA, - 20131 - 11905: 0x8187, - 20132 - 11905: 0xBDBB, - 20133 - 11905: 0xBAA5, - 20134 - 11905: 0xD2E0, - 20135 - 11905: 0xB2FA, - 20136 - 11905: 0xBAE0, - 20137 - 11905: 0xC4B6, - 20138 - 11905: 0x8188, - 20139 - 11905: 0xCFED, - 20140 - 11905: 0xBEA9, - 20141 - 11905: 0xCDA4, - 20142 - 11905: 0xC1C1, - 20143 - 11905: 0x8189, - 20144 - 11905: 0x818A, - 20145 - 11905: 0x818B, - 20146 - 11905: 0xC7D7, - 20147 - 11905: 0xD9F1, - 20148 - 11905: 0x818C, - 20149 - 11905: 0xD9F4, - 20150 - 11905: 0x818D, - 20151 - 11905: 0x818E, - 20152 - 11905: 0x818F, - 20153 - 11905: 0x8190, - 20154 - 11905: 0xC8CB, - 20155 - 11905: 0xD8E9, - 20156 - 11905: 0x8191, - 20157 - 11905: 0x8192, - 20158 - 11905: 0x8193, - 20159 - 11905: 0xD2DA, - 20160 - 11905: 0xCAB2, - 20161 - 11905: 0xC8CA, - 20162 - 11905: 0xD8EC, - 20163 - 11905: 0xD8EA, - 20164 - 11905: 0xD8C6, - 20165 - 11905: 0xBDF6, - 20166 - 11905: 0xC6CD, - 20167 - 11905: 0xB3F0, - 20168 - 11905: 0x8194, - 20169 - 11905: 0xD8EB, - 20170 - 11905: 0xBDF1, - 20171 - 11905: 0xBDE9, - 20172 - 11905: 0x8195, - 20173 - 11905: 0xC8D4, - 20174 - 11905: 0xB4D3, - 20175 - 11905: 0x8196, - 20176 - 11905: 0x8197, - 20177 - 11905: 0xC2D8, - 20178 - 11905: 0x8198, - 20179 - 11905: 0xB2D6, - 20180 - 11905: 0xD7D0, - 20181 - 11905: 0xCACB, - 20182 - 11905: 0xCBFB, - 20183 - 11905: 0xD5CC, - 20184 - 11905: 0xB8B6, - 20185 - 11905: 0xCFC9, - 20186 - 11905: 0x8199, - 20187 - 11905: 0x819A, - 20188 - 11905: 0x819B, - 20189 - 11905: 0xD9DA, - 20190 - 11905: 0xD8F0, - 20191 - 11905: 0xC7AA, - 20192 - 11905: 0x819C, - 20193 - 11905: 0xD8EE, - 20194 - 11905: 0x819D, - 20195 - 11905: 0xB4FA, - 20196 - 11905: 0xC1EE, - 20197 - 11905: 0xD2D4, - 20198 - 11905: 0x819E, - 20199 - 11905: 0x819F, - 20200 - 11905: 0xD8ED, - 20201 - 11905: 0x81A0, - 20202 - 11905: 0xD2C7, - 20203 - 11905: 0xD8EF, - 20204 - 11905: 0xC3C7, - 20205 - 11905: 0x81A1, - 20206 - 11905: 0x81A2, - 20207 - 11905: 0x81A3, - 20208 - 11905: 0xD1F6, - 20209 - 11905: 0x81A4, - 20210 - 11905: 0xD6D9, - 20211 - 11905: 0xD8F2, - 20212 - 11905: 0x81A5, - 20213 - 11905: 0xD8F5, - 20214 - 11905: 0xBCFE, - 20215 - 11905: 0xBCDB, - 20216 - 11905: 0x81A6, - 20217 - 11905: 0x81A7, - 20218 - 11905: 0x81A8, - 20219 - 11905: 0xC8CE, - 20220 - 11905: 0x81A9, - 20221 - 11905: 0xB7DD, - 20222 - 11905: 0x81AA, - 20223 - 11905: 0xB7C2, - 20224 - 11905: 0x81AB, - 20225 - 11905: 0xC6F3, - 20226 - 11905: 0x81AC, - 20227 - 11905: 0x81AD, - 20228 - 11905: 0x81AE, - 20229 - 11905: 0x81AF, - 20230 - 11905: 0x81B0, - 20231 - 11905: 0x81B1, - 20232 - 11905: 0x81B2, - 20233 - 11905: 0xD8F8, - 20234 - 11905: 0xD2C1, - 20235 - 11905: 0x81B3, - 20236 - 11905: 0x81B4, - 20237 - 11905: 0xCEE9, - 20238 - 11905: 0xBCBF, - 20239 - 11905: 0xB7FC, - 20240 - 11905: 0xB7A5, - 20241 - 11905: 0xD0DD, - 20242 - 11905: 0x81B5, - 20243 - 11905: 0x81B6, - 20244 - 11905: 0x81B7, - 20245 - 11905: 0x81B8, - 20246 - 11905: 0x81B9, - 20247 - 11905: 0xD6DA, - 20248 - 11905: 0xD3C5, - 20249 - 11905: 0xBBEF, - 20250 - 11905: 0xBBE1, - 20251 - 11905: 0xD8F1, - 20252 - 11905: 0x81BA, - 20253 - 11905: 0x81BB, - 20254 - 11905: 0xC9A1, - 20255 - 11905: 0xCEB0, - 20256 - 11905: 0xB4AB, - 20257 - 11905: 0x81BC, - 20258 - 11905: 0xD8F3, - 20259 - 11905: 0x81BD, - 20260 - 11905: 0xC9CB, - 20261 - 11905: 0xD8F6, - 20262 - 11905: 0xC2D7, - 20263 - 11905: 0xD8F7, - 20264 - 11905: 0x81BE, - 20265 - 11905: 0x81BF, - 20266 - 11905: 0xCEB1, - 20267 - 11905: 0xD8F9, - 20268 - 11905: 0x81C0, - 20269 - 11905: 0x81C1, - 20270 - 11905: 0x81C2, - 20271 - 11905: 0xB2AE, - 20272 - 11905: 0xB9C0, - 20273 - 11905: 0x81C3, - 20274 - 11905: 0xD9A3, - 20275 - 11905: 0x81C4, - 20276 - 11905: 0xB0E9, - 20277 - 11905: 0x81C5, - 20278 - 11905: 0xC1E6, - 20279 - 11905: 0x81C6, - 20280 - 11905: 0xC9EC, - 20281 - 11905: 0x81C7, - 20282 - 11905: 0xCBC5, - 20283 - 11905: 0x81C8, - 20284 - 11905: 0xCBC6, - 20285 - 11905: 0xD9A4, - 20286 - 11905: 0x81C9, - 20287 - 11905: 0x81CA, - 20288 - 11905: 0x81CB, - 20289 - 11905: 0x81CC, - 20290 - 11905: 0x81CD, - 20291 - 11905: 0xB5E8, - 20292 - 11905: 0x81CE, - 20293 - 11905: 0x81CF, - 20294 - 11905: 0xB5AB, - 20295 - 11905: 0x81D0, - 20296 - 11905: 0x81D1, - 20297 - 11905: 0x81D2, - 20298 - 11905: 0x81D3, - 20299 - 11905: 0x81D4, - 20300 - 11905: 0x81D5, - 20301 - 11905: 0xCEBB, - 20302 - 11905: 0xB5CD, - 20303 - 11905: 0xD7A1, - 20304 - 11905: 0xD7F4, - 20305 - 11905: 0xD3D3, - 20306 - 11905: 0x81D6, - 20307 - 11905: 0xCCE5, - 20308 - 11905: 0x81D7, - 20309 - 11905: 0xBACE, - 20310 - 11905: 0x81D8, - 20311 - 11905: 0xD9A2, - 20312 - 11905: 0xD9DC, - 20313 - 11905: 0xD3E0, - 20314 - 11905: 0xD8FD, - 20315 - 11905: 0xB7F0, - 20316 - 11905: 0xD7F7, - 20317 - 11905: 0xD8FE, - 20318 - 11905: 0xD8FA, - 20319 - 11905: 0xD9A1, - 20320 - 11905: 0xC4E3, - 20321 - 11905: 0x81D9, - 20322 - 11905: 0x81DA, - 20323 - 11905: 0xD3B6, - 20324 - 11905: 0xD8F4, - 20325 - 11905: 0xD9DD, - 20326 - 11905: 0x81DB, - 20327 - 11905: 0xD8FB, - 20328 - 11905: 0x81DC, - 20329 - 11905: 0xC5E5, - 20330 - 11905: 0x81DD, - 20331 - 11905: 0x81DE, - 20332 - 11905: 0xC0D0, - 20333 - 11905: 0x81DF, - 20334 - 11905: 0x81E0, - 20335 - 11905: 0xD1F0, - 20336 - 11905: 0xB0DB, - 20337 - 11905: 0x81E1, - 20338 - 11905: 0x81E2, - 20339 - 11905: 0xBCD1, - 20340 - 11905: 0xD9A6, - 20341 - 11905: 0x81E3, - 20342 - 11905: 0xD9A5, - 20343 - 11905: 0x81E4, - 20344 - 11905: 0x81E5, - 20345 - 11905: 0x81E6, - 20346 - 11905: 0x81E7, - 20347 - 11905: 0xD9AC, - 20348 - 11905: 0xD9AE, - 20349 - 11905: 0x81E8, - 20350 - 11905: 0xD9AB, - 20351 - 11905: 0xCAB9, - 20352 - 11905: 0x81E9, - 20353 - 11905: 0x81EA, - 20354 - 11905: 0x81EB, - 20355 - 11905: 0xD9A9, - 20356 - 11905: 0xD6B6, - 20357 - 11905: 0x81EC, - 20358 - 11905: 0x81ED, - 20359 - 11905: 0x81EE, - 20360 - 11905: 0xB3DE, - 20361 - 11905: 0xD9A8, - 20362 - 11905: 0x81EF, - 20363 - 11905: 0xC0FD, - 20364 - 11905: 0x81F0, - 20365 - 11905: 0xCACC, - 20366 - 11905: 0x81F1, - 20367 - 11905: 0xD9AA, - 20368 - 11905: 0x81F2, - 20369 - 11905: 0xD9A7, - 20370 - 11905: 0x81F3, - 20371 - 11905: 0x81F4, - 20372 - 11905: 0xD9B0, - 20373 - 11905: 0x81F5, - 20374 - 11905: 0x81F6, - 20375 - 11905: 0xB6B1, - 20376 - 11905: 0x81F7, - 20377 - 11905: 0x81F8, - 20378 - 11905: 0x81F9, - 20379 - 11905: 0xB9A9, - 20380 - 11905: 0x81FA, - 20381 - 11905: 0xD2C0, - 20382 - 11905: 0x81FB, - 20383 - 11905: 0x81FC, - 20384 - 11905: 0xCFC0, - 20385 - 11905: 0x81FD, - 20386 - 11905: 0x81FE, - 20387 - 11905: 0xC2C2, - 20388 - 11905: 0x8240, - 20389 - 11905: 0xBDC4, - 20390 - 11905: 0xD5EC, - 20391 - 11905: 0xB2E0, - 20392 - 11905: 0xC7C8, - 20393 - 11905: 0xBFEB, - 20394 - 11905: 0xD9AD, - 20395 - 11905: 0x8241, - 20396 - 11905: 0xD9AF, - 20397 - 11905: 0x8242, - 20398 - 11905: 0xCEEA, - 20399 - 11905: 0xBAEE, - 20400 - 11905: 0x8243, - 20401 - 11905: 0x8244, - 20402 - 11905: 0x8245, - 20403 - 11905: 0x8246, - 20404 - 11905: 0x8247, - 20405 - 11905: 0xC7D6, - 20406 - 11905: 0x8248, - 20407 - 11905: 0x8249, - 20408 - 11905: 0x824A, - 20409 - 11905: 0x824B, - 20410 - 11905: 0x824C, - 20411 - 11905: 0x824D, - 20412 - 11905: 0x824E, - 20413 - 11905: 0x824F, - 20414 - 11905: 0x8250, - 20415 - 11905: 0xB1E3, - 20416 - 11905: 0x8251, - 20417 - 11905: 0x8252, - 20418 - 11905: 0x8253, - 20419 - 11905: 0xB4D9, - 20420 - 11905: 0xB6ED, - 20421 - 11905: 0xD9B4, - 20422 - 11905: 0x8254, - 20423 - 11905: 0x8255, - 20424 - 11905: 0x8256, - 20425 - 11905: 0x8257, - 20426 - 11905: 0xBFA1, - 20427 - 11905: 0x8258, - 20428 - 11905: 0x8259, - 20429 - 11905: 0x825A, - 20430 - 11905: 0xD9DE, - 20431 - 11905: 0xC7CE, - 20432 - 11905: 0xC0FE, - 20433 - 11905: 0xD9B8, - 20434 - 11905: 0x825B, - 20435 - 11905: 0x825C, - 20436 - 11905: 0x825D, - 20437 - 11905: 0x825E, - 20438 - 11905: 0x825F, - 20439 - 11905: 0xCBD7, - 20440 - 11905: 0xB7FD, - 20441 - 11905: 0x8260, - 20442 - 11905: 0xD9B5, - 20443 - 11905: 0x8261, - 20444 - 11905: 0xD9B7, - 20445 - 11905: 0xB1A3, - 20446 - 11905: 0xD3E1, - 20447 - 11905: 0xD9B9, - 20448 - 11905: 0x8262, - 20449 - 11905: 0xD0C5, - 20450 - 11905: 0x8263, - 20451 - 11905: 0xD9B6, - 20452 - 11905: 0x8264, - 20453 - 11905: 0x8265, - 20454 - 11905: 0xD9B1, - 20455 - 11905: 0x8266, - 20456 - 11905: 0xD9B2, - 20457 - 11905: 0xC1A9, - 20458 - 11905: 0xD9B3, - 20459 - 11905: 0x8267, - 20460 - 11905: 0x8268, - 20461 - 11905: 0xBCF3, - 20462 - 11905: 0xD0DE, - 20463 - 11905: 0xB8A9, - 20464 - 11905: 0x8269, - 20465 - 11905: 0xBEE3, - 20466 - 11905: 0x826A, - 20467 - 11905: 0xD9BD, - 20468 - 11905: 0x826B, - 20469 - 11905: 0x826C, - 20470 - 11905: 0x826D, - 20471 - 11905: 0x826E, - 20472 - 11905: 0xD9BA, - 20473 - 11905: 0x826F, - 20474 - 11905: 0xB0B3, - 20475 - 11905: 0x8270, - 20476 - 11905: 0x8271, - 20477 - 11905: 0x8272, - 20478 - 11905: 0xD9C2, - 20479 - 11905: 0x8273, - 20480 - 11905: 0x8274, - 20481 - 11905: 0x8275, - 20482 - 11905: 0x8276, - 20483 - 11905: 0x8277, - 20484 - 11905: 0x8278, - 20485 - 11905: 0x8279, - 20486 - 11905: 0x827A, - 20487 - 11905: 0x827B, - 20488 - 11905: 0x827C, - 20489 - 11905: 0x827D, - 20490 - 11905: 0x827E, - 20491 - 11905: 0x8280, - 20492 - 11905: 0xD9C4, - 20493 - 11905: 0xB1B6, - 20494 - 11905: 0x8281, - 20495 - 11905: 0xD9BF, - 20496 - 11905: 0x8282, - 20497 - 11905: 0x8283, - 20498 - 11905: 0xB5B9, - 20499 - 11905: 0x8284, - 20500 - 11905: 0xBEF3, - 20501 - 11905: 0x8285, - 20502 - 11905: 0x8286, - 20503 - 11905: 0x8287, - 20504 - 11905: 0xCCC8, - 20505 - 11905: 0xBAF2, - 20506 - 11905: 0xD2D0, - 20507 - 11905: 0x8288, - 20508 - 11905: 0xD9C3, - 20509 - 11905: 0x8289, - 20510 - 11905: 0x828A, - 20511 - 11905: 0xBDE8, - 20512 - 11905: 0x828B, - 20513 - 11905: 0xB3AB, - 20514 - 11905: 0x828C, - 20515 - 11905: 0x828D, - 20516 - 11905: 0x828E, - 20517 - 11905: 0xD9C5, - 20518 - 11905: 0xBEEB, - 20519 - 11905: 0x828F, - 20520 - 11905: 0xD9C6, - 20521 - 11905: 0xD9BB, - 20522 - 11905: 0xC4DF, - 20523 - 11905: 0x8290, - 20524 - 11905: 0xD9BE, - 20525 - 11905: 0xD9C1, - 20526 - 11905: 0xD9C0, - 20527 - 11905: 0x8291, - 20528 - 11905: 0x8292, - 20529 - 11905: 0x8293, - 20530 - 11905: 0x8294, - 20531 - 11905: 0x8295, - 20532 - 11905: 0x8296, - 20533 - 11905: 0x8297, - 20534 - 11905: 0x8298, - 20535 - 11905: 0x8299, - 20536 - 11905: 0x829A, - 20537 - 11905: 0x829B, - 20538 - 11905: 0xD5AE, - 20539 - 11905: 0x829C, - 20540 - 11905: 0xD6B5, - 20541 - 11905: 0x829D, - 20542 - 11905: 0xC7E3, - 20543 - 11905: 0x829E, - 20544 - 11905: 0x829F, - 20545 - 11905: 0x82A0, - 20546 - 11905: 0x82A1, - 20547 - 11905: 0xD9C8, - 20548 - 11905: 0x82A2, - 20549 - 11905: 0x82A3, - 20550 - 11905: 0x82A4, - 20551 - 11905: 0xBCD9, - 20552 - 11905: 0xD9CA, - 20553 - 11905: 0x82A5, - 20554 - 11905: 0x82A6, - 20555 - 11905: 0x82A7, - 20556 - 11905: 0xD9BC, - 20557 - 11905: 0x82A8, - 20558 - 11905: 0xD9CB, - 20559 - 11905: 0xC6AB, - 20560 - 11905: 0x82A9, - 20561 - 11905: 0x82AA, - 20562 - 11905: 0x82AB, - 20563 - 11905: 0x82AC, - 20564 - 11905: 0x82AD, - 20565 - 11905: 0xD9C9, - 20566 - 11905: 0x82AE, - 20567 - 11905: 0x82AF, - 20568 - 11905: 0x82B0, - 20569 - 11905: 0x82B1, - 20570 - 11905: 0xD7F6, - 20571 - 11905: 0x82B2, - 20572 - 11905: 0xCDA3, - 20573 - 11905: 0x82B3, - 20574 - 11905: 0x82B4, - 20575 - 11905: 0x82B5, - 20576 - 11905: 0x82B6, - 20577 - 11905: 0x82B7, - 20578 - 11905: 0x82B8, - 20579 - 11905: 0x82B9, - 20580 - 11905: 0x82BA, - 20581 - 11905: 0xBDA1, - 20582 - 11905: 0x82BB, - 20583 - 11905: 0x82BC, - 20584 - 11905: 0x82BD, - 20585 - 11905: 0x82BE, - 20586 - 11905: 0x82BF, - 20587 - 11905: 0x82C0, - 20588 - 11905: 0xD9CC, - 20589 - 11905: 0x82C1, - 20590 - 11905: 0x82C2, - 20591 - 11905: 0x82C3, - 20592 - 11905: 0x82C4, - 20593 - 11905: 0x82C5, - 20594 - 11905: 0x82C6, - 20595 - 11905: 0x82C7, - 20596 - 11905: 0x82C8, - 20597 - 11905: 0x82C9, - 20598 - 11905: 0xC5BC, - 20599 - 11905: 0xCDB5, - 20600 - 11905: 0x82CA, - 20601 - 11905: 0x82CB, - 20602 - 11905: 0x82CC, - 20603 - 11905: 0xD9CD, - 20604 - 11905: 0x82CD, - 20605 - 11905: 0x82CE, - 20606 - 11905: 0xD9C7, - 20607 - 11905: 0xB3A5, - 20608 - 11905: 0xBFFE, - 20609 - 11905: 0x82CF, - 20610 - 11905: 0x82D0, - 20611 - 11905: 0x82D1, - 20612 - 11905: 0x82D2, - 20613 - 11905: 0xB8B5, - 20614 - 11905: 0x82D3, - 20615 - 11905: 0x82D4, - 20616 - 11905: 0xC0FC, - 20617 - 11905: 0x82D5, - 20618 - 11905: 0x82D6, - 20619 - 11905: 0x82D7, - 20620 - 11905: 0x82D8, - 20621 - 11905: 0xB0F8, - 20622 - 11905: 0x82D9, - 20623 - 11905: 0x82DA, - 20624 - 11905: 0x82DB, - 20625 - 11905: 0x82DC, - 20626 - 11905: 0x82DD, - 20627 - 11905: 0x82DE, - 20628 - 11905: 0x82DF, - 20629 - 11905: 0x82E0, - 20630 - 11905: 0x82E1, - 20631 - 11905: 0x82E2, - 20632 - 11905: 0x82E3, - 20633 - 11905: 0x82E4, - 20634 - 11905: 0x82E5, - 20635 - 11905: 0x82E6, - 20636 - 11905: 0x82E7, - 20637 - 11905: 0x82E8, - 20638 - 11905: 0x82E9, - 20639 - 11905: 0x82EA, - 20640 - 11905: 0x82EB, - 20641 - 11905: 0x82EC, - 20642 - 11905: 0x82ED, - 20643 - 11905: 0xB4F6, - 20644 - 11905: 0x82EE, - 20645 - 11905: 0xD9CE, - 20646 - 11905: 0x82EF, - 20647 - 11905: 0xD9CF, - 20648 - 11905: 0xB4A2, - 20649 - 11905: 0xD9D0, - 20650 - 11905: 0x82F0, - 20651 - 11905: 0x82F1, - 20652 - 11905: 0xB4DF, - 20653 - 11905: 0x82F2, - 20654 - 11905: 0x82F3, - 20655 - 11905: 0x82F4, - 20656 - 11905: 0x82F5, - 20657 - 11905: 0x82F6, - 20658 - 11905: 0xB0C1, - 20659 - 11905: 0x82F7, - 20660 - 11905: 0x82F8, - 20661 - 11905: 0x82F9, - 20662 - 11905: 0x82FA, - 20663 - 11905: 0x82FB, - 20664 - 11905: 0x82FC, - 20665 - 11905: 0x82FD, - 20666 - 11905: 0xD9D1, - 20667 - 11905: 0xC9B5, - 20668 - 11905: 0x82FE, - 20669 - 11905: 0x8340, - 20670 - 11905: 0x8341, - 20671 - 11905: 0x8342, - 20672 - 11905: 0x8343, - 20673 - 11905: 0x8344, - 20674 - 11905: 0x8345, - 20675 - 11905: 0x8346, - 20676 - 11905: 0x8347, - 20677 - 11905: 0x8348, - 20678 - 11905: 0x8349, - 20679 - 11905: 0x834A, - 20680 - 11905: 0x834B, - 20681 - 11905: 0x834C, - 20682 - 11905: 0x834D, - 20683 - 11905: 0x834E, - 20684 - 11905: 0x834F, - 20685 - 11905: 0x8350, - 20686 - 11905: 0x8351, - 20687 - 11905: 0xCFF1, - 20688 - 11905: 0x8352, - 20689 - 11905: 0x8353, - 20690 - 11905: 0x8354, - 20691 - 11905: 0x8355, - 20692 - 11905: 0x8356, - 20693 - 11905: 0x8357, - 20694 - 11905: 0xD9D2, - 20695 - 11905: 0x8358, - 20696 - 11905: 0x8359, - 20697 - 11905: 0x835A, - 20698 - 11905: 0xC1C5, - 20699 - 11905: 0x835B, - 20700 - 11905: 0x835C, - 20701 - 11905: 0x835D, - 20702 - 11905: 0x835E, - 20703 - 11905: 0x835F, - 20704 - 11905: 0x8360, - 20705 - 11905: 0x8361, - 20706 - 11905: 0x8362, - 20707 - 11905: 0x8363, - 20708 - 11905: 0x8364, - 20709 - 11905: 0x8365, - 20710 - 11905: 0xD9D6, - 20711 - 11905: 0xC9AE, - 20712 - 11905: 0x8366, - 20713 - 11905: 0x8367, - 20714 - 11905: 0x8368, - 20715 - 11905: 0x8369, - 20716 - 11905: 0xD9D5, - 20717 - 11905: 0xD9D4, - 20718 - 11905: 0xD9D7, - 20719 - 11905: 0x836A, - 20720 - 11905: 0x836B, - 20721 - 11905: 0x836C, - 20722 - 11905: 0x836D, - 20723 - 11905: 0xCBDB, - 20724 - 11905: 0x836E, - 20725 - 11905: 0xBDA9, - 20726 - 11905: 0x836F, - 20727 - 11905: 0x8370, - 20728 - 11905: 0x8371, - 20729 - 11905: 0x8372, - 20730 - 11905: 0x8373, - 20731 - 11905: 0xC6A7, - 20732 - 11905: 0x8374, - 20733 - 11905: 0x8375, - 20734 - 11905: 0x8376, - 20735 - 11905: 0x8377, - 20736 - 11905: 0x8378, - 20737 - 11905: 0x8379, - 20738 - 11905: 0x837A, - 20739 - 11905: 0x837B, - 20740 - 11905: 0x837C, - 20741 - 11905: 0x837D, - 20742 - 11905: 0xD9D3, - 20743 - 11905: 0xD9D8, - 20744 - 11905: 0x837E, - 20745 - 11905: 0x8380, - 20746 - 11905: 0x8381, - 20747 - 11905: 0xD9D9, - 20748 - 11905: 0x8382, - 20749 - 11905: 0x8383, - 20750 - 11905: 0x8384, - 20751 - 11905: 0x8385, - 20752 - 11905: 0x8386, - 20753 - 11905: 0x8387, - 20754 - 11905: 0xC8E5, - 20755 - 11905: 0x8388, - 20756 - 11905: 0x8389, - 20757 - 11905: 0x838A, - 20758 - 11905: 0x838B, - 20759 - 11905: 0x838C, - 20760 - 11905: 0x838D, - 20761 - 11905: 0x838E, - 20762 - 11905: 0x838F, - 20763 - 11905: 0x8390, - 20764 - 11905: 0x8391, - 20765 - 11905: 0x8392, - 20766 - 11905: 0x8393, - 20767 - 11905: 0x8394, - 20768 - 11905: 0x8395, - 20769 - 11905: 0xC0DC, - 20770 - 11905: 0x8396, - 20771 - 11905: 0x8397, - 20772 - 11905: 0x8398, - 20773 - 11905: 0x8399, - 20774 - 11905: 0x839A, - 20775 - 11905: 0x839B, - 20776 - 11905: 0x839C, - 20777 - 11905: 0x839D, - 20778 - 11905: 0x839E, - 20779 - 11905: 0x839F, - 20780 - 11905: 0x83A0, - 20781 - 11905: 0x83A1, - 20782 - 11905: 0x83A2, - 20783 - 11905: 0x83A3, - 20784 - 11905: 0x83A4, - 20785 - 11905: 0x83A5, - 20786 - 11905: 0x83A6, - 20787 - 11905: 0x83A7, - 20788 - 11905: 0x83A8, - 20789 - 11905: 0x83A9, - 20790 - 11905: 0x83AA, - 20791 - 11905: 0x83AB, - 20792 - 11905: 0x83AC, - 20793 - 11905: 0x83AD, - 20794 - 11905: 0x83AE, - 20795 - 11905: 0x83AF, - 20796 - 11905: 0x83B0, - 20797 - 11905: 0x83B1, - 20798 - 11905: 0x83B2, - 20799 - 11905: 0xB6F9, - 20800 - 11905: 0xD8A3, - 20801 - 11905: 0xD4CA, - 20802 - 11905: 0x83B3, - 20803 - 11905: 0xD4AA, - 20804 - 11905: 0xD0D6, - 20805 - 11905: 0xB3E4, - 20806 - 11905: 0xD5D7, - 20807 - 11905: 0x83B4, - 20808 - 11905: 0xCFC8, - 20809 - 11905: 0xB9E2, - 20810 - 11905: 0x83B5, - 20811 - 11905: 0xBFCB, - 20812 - 11905: 0x83B6, - 20813 - 11905: 0xC3E2, - 20814 - 11905: 0x83B7, - 20815 - 11905: 0x83B8, - 20816 - 11905: 0x83B9, - 20817 - 11905: 0xB6D2, - 20818 - 11905: 0x83BA, - 20819 - 11905: 0x83BB, - 20820 - 11905: 0xCDC3, - 20821 - 11905: 0xD9EE, - 20822 - 11905: 0xD9F0, - 20823 - 11905: 0x83BC, - 20824 - 11905: 0x83BD, - 20825 - 11905: 0x83BE, - 20826 - 11905: 0xB5B3, - 20827 - 11905: 0x83BF, - 20828 - 11905: 0xB6B5, - 20829 - 11905: 0x83C0, - 20830 - 11905: 0x83C1, - 20831 - 11905: 0x83C2, - 20832 - 11905: 0x83C3, - 20833 - 11905: 0x83C4, - 20834 - 11905: 0xBEA4, - 20835 - 11905: 0x83C5, - 20836 - 11905: 0x83C6, - 20837 - 11905: 0xC8EB, - 20838 - 11905: 0x83C7, - 20839 - 11905: 0x83C8, - 20840 - 11905: 0xC8AB, - 20841 - 11905: 0x83C9, - 20842 - 11905: 0x83CA, - 20843 - 11905: 0xB0CB, - 20844 - 11905: 0xB9AB, - 20845 - 11905: 0xC1F9, - 20846 - 11905: 0xD9E2, - 20847 - 11905: 0x83CB, - 20848 - 11905: 0xC0BC, - 20849 - 11905: 0xB9B2, - 20850 - 11905: 0x83CC, - 20851 - 11905: 0xB9D8, - 20852 - 11905: 0xD0CB, - 20853 - 11905: 0xB1F8, - 20854 - 11905: 0xC6E4, - 20855 - 11905: 0xBEDF, - 20856 - 11905: 0xB5E4, - 20857 - 11905: 0xD7C8, - 20858 - 11905: 0x83CD, - 20859 - 11905: 0xD1F8, - 20860 - 11905: 0xBCE6, - 20861 - 11905: 0xCADE, - 20862 - 11905: 0x83CE, - 20863 - 11905: 0x83CF, - 20864 - 11905: 0xBCBD, - 20865 - 11905: 0xD9E6, - 20866 - 11905: 0xD8E7, - 20867 - 11905: 0x83D0, - 20868 - 11905: 0x83D1, - 20869 - 11905: 0xC4DA, - 20870 - 11905: 0x83D2, - 20871 - 11905: 0x83D3, - 20872 - 11905: 0xB8D4, - 20873 - 11905: 0xC8BD, - 20874 - 11905: 0x83D4, - 20875 - 11905: 0x83D5, - 20876 - 11905: 0xB2E1, - 20877 - 11905: 0xD4D9, - 20878 - 11905: 0x83D6, - 20879 - 11905: 0x83D7, - 20880 - 11905: 0x83D8, - 20881 - 11905: 0x83D9, - 20882 - 11905: 0xC3B0, - 20883 - 11905: 0x83DA, - 20884 - 11905: 0x83DB, - 20885 - 11905: 0xC3E1, - 20886 - 11905: 0xDAA2, - 20887 - 11905: 0xC8DF, - 20888 - 11905: 0x83DC, - 20889 - 11905: 0xD0B4, - 20890 - 11905: 0x83DD, - 20891 - 11905: 0xBEFC, - 20892 - 11905: 0xC5A9, - 20893 - 11905: 0x83DE, - 20894 - 11905: 0x83DF, - 20895 - 11905: 0x83E0, - 20896 - 11905: 0xB9DA, - 20897 - 11905: 0x83E1, - 20898 - 11905: 0xDAA3, - 20899 - 11905: 0x83E2, - 20900 - 11905: 0xD4A9, - 20901 - 11905: 0xDAA4, - 20902 - 11905: 0x83E3, - 20903 - 11905: 0x83E4, - 20904 - 11905: 0x83E5, - 20905 - 11905: 0x83E6, - 20906 - 11905: 0x83E7, - 20907 - 11905: 0xD9FB, - 20908 - 11905: 0xB6AC, - 20909 - 11905: 0x83E8, - 20910 - 11905: 0x83E9, - 20911 - 11905: 0xB7EB, - 20912 - 11905: 0xB1F9, - 20913 - 11905: 0xD9FC, - 20914 - 11905: 0xB3E5, - 20915 - 11905: 0xBEF6, - 20916 - 11905: 0x83EA, - 20917 - 11905: 0xBFF6, - 20918 - 11905: 0xD2B1, - 20919 - 11905: 0xC0E4, - 20920 - 11905: 0x83EB, - 20921 - 11905: 0x83EC, - 20922 - 11905: 0x83ED, - 20923 - 11905: 0xB6B3, - 20924 - 11905: 0xD9FE, - 20925 - 11905: 0xD9FD, - 20926 - 11905: 0x83EE, - 20927 - 11905: 0x83EF, - 20928 - 11905: 0xBEBB, - 20929 - 11905: 0x83F0, - 20930 - 11905: 0x83F1, - 20931 - 11905: 0x83F2, - 20932 - 11905: 0xC6E0, - 20933 - 11905: 0x83F3, - 20934 - 11905: 0xD7BC, - 20935 - 11905: 0xDAA1, - 20936 - 11905: 0x83F4, - 20937 - 11905: 0xC1B9, - 20938 - 11905: 0x83F5, - 20939 - 11905: 0xB5F2, - 20940 - 11905: 0xC1E8, - 20941 - 11905: 0x83F6, - 20942 - 11905: 0x83F7, - 20943 - 11905: 0xBCF5, - 20944 - 11905: 0x83F8, - 20945 - 11905: 0xB4D5, - 20946 - 11905: 0x83F9, - 20947 - 11905: 0x83FA, - 20948 - 11905: 0x83FB, - 20949 - 11905: 0x83FC, - 20950 - 11905: 0x83FD, - 20951 - 11905: 0x83FE, - 20952 - 11905: 0x8440, - 20953 - 11905: 0x8441, - 20954 - 11905: 0x8442, - 20955 - 11905: 0xC1DD, - 20956 - 11905: 0x8443, - 20957 - 11905: 0xC4FD, - 20958 - 11905: 0x8444, - 20959 - 11905: 0x8445, - 20960 - 11905: 0xBCB8, - 20961 - 11905: 0xB7B2, - 20962 - 11905: 0x8446, - 20963 - 11905: 0x8447, - 20964 - 11905: 0xB7EF, - 20965 - 11905: 0x8448, - 20966 - 11905: 0x8449, - 20967 - 11905: 0x844A, - 20968 - 11905: 0x844B, - 20969 - 11905: 0x844C, - 20970 - 11905: 0x844D, - 20971 - 11905: 0xD9EC, - 20972 - 11905: 0x844E, - 20973 - 11905: 0xC6BE, - 20974 - 11905: 0x844F, - 20975 - 11905: 0xBFAD, - 20976 - 11905: 0xBBCB, - 20977 - 11905: 0x8450, - 20978 - 11905: 0x8451, - 20979 - 11905: 0xB5CA, - 20980 - 11905: 0x8452, - 20981 - 11905: 0xDBC9, - 20982 - 11905: 0xD0D7, - 20983 - 11905: 0x8453, - 20984 - 11905: 0xCDB9, - 20985 - 11905: 0xB0BC, - 20986 - 11905: 0xB3F6, - 20987 - 11905: 0xBBF7, - 20988 - 11905: 0xDBCA, - 20989 - 11905: 0xBAAF, - 20990 - 11905: 0x8454, - 20991 - 11905: 0xD4E4, - 20992 - 11905: 0xB5B6, - 20993 - 11905: 0xB5F3, - 20994 - 11905: 0xD8D6, - 20995 - 11905: 0xC8D0, - 20996 - 11905: 0x8455, - 20997 - 11905: 0x8456, - 20998 - 11905: 0xB7D6, - 20999 - 11905: 0xC7D0, - 21000 - 11905: 0xD8D7, - 21001 - 11905: 0x8457, - 21002 - 11905: 0xBFAF, - 21003 - 11905: 0x8458, - 21004 - 11905: 0x8459, - 21005 - 11905: 0xDBBB, - 21006 - 11905: 0xD8D8, - 21007 - 11905: 0x845A, - 21008 - 11905: 0x845B, - 21009 - 11905: 0xD0CC, - 21010 - 11905: 0xBBAE, - 21011 - 11905: 0x845C, - 21012 - 11905: 0x845D, - 21013 - 11905: 0x845E, - 21014 - 11905: 0xEBBE, - 21015 - 11905: 0xC1D0, - 21016 - 11905: 0xC1F5, - 21017 - 11905: 0xD4F2, - 21018 - 11905: 0xB8D5, - 21019 - 11905: 0xB4B4, - 21020 - 11905: 0x845F, - 21021 - 11905: 0xB3F5, - 21022 - 11905: 0x8460, - 21023 - 11905: 0x8461, - 21024 - 11905: 0xC9BE, - 21025 - 11905: 0x8462, - 21026 - 11905: 0x8463, - 21027 - 11905: 0x8464, - 21028 - 11905: 0xC5D0, - 21029 - 11905: 0x8465, - 21030 - 11905: 0x8466, - 21031 - 11905: 0x8467, - 21032 - 11905: 0xC5D9, - 21033 - 11905: 0xC0FB, - 21034 - 11905: 0x8468, - 21035 - 11905: 0xB1F0, - 21036 - 11905: 0x8469, - 21037 - 11905: 0xD8D9, - 21038 - 11905: 0xB9CE, - 21039 - 11905: 0x846A, - 21040 - 11905: 0xB5BD, - 21041 - 11905: 0x846B, - 21042 - 11905: 0x846C, - 21043 - 11905: 0xD8DA, - 21044 - 11905: 0x846D, - 21045 - 11905: 0x846E, - 21046 - 11905: 0xD6C6, - 21047 - 11905: 0xCBA2, - 21048 - 11905: 0xC8AF, - 21049 - 11905: 0xC9B2, - 21050 - 11905: 0xB4CC, - 21051 - 11905: 0xBFCC, - 21052 - 11905: 0x846F, - 21053 - 11905: 0xB9F4, - 21054 - 11905: 0x8470, - 21055 - 11905: 0xD8DB, - 21056 - 11905: 0xD8DC, - 21057 - 11905: 0xB6E7, - 21058 - 11905: 0xBCC1, - 21059 - 11905: 0xCCEA, - 21060 - 11905: 0x8471, - 21061 - 11905: 0x8472, - 21062 - 11905: 0x8473, - 21063 - 11905: 0x8474, - 21064 - 11905: 0x8475, - 21065 - 11905: 0x8476, - 21066 - 11905: 0xCFF7, - 21067 - 11905: 0x8477, - 21068 - 11905: 0xD8DD, - 21069 - 11905: 0xC7B0, - 21070 - 11905: 0x8478, - 21071 - 11905: 0x8479, - 21072 - 11905: 0xB9D0, - 21073 - 11905: 0xBDA3, - 21074 - 11905: 0x847A, - 21075 - 11905: 0x847B, - 21076 - 11905: 0xCCDE, - 21077 - 11905: 0x847C, - 21078 - 11905: 0xC6CA, - 21079 - 11905: 0x847D, - 21080 - 11905: 0x847E, - 21081 - 11905: 0x8480, - 21082 - 11905: 0x8481, - 21083 - 11905: 0x8482, - 21084 - 11905: 0xD8E0, - 21085 - 11905: 0x8483, - 21086 - 11905: 0xD8DE, - 21087 - 11905: 0x8484, - 21088 - 11905: 0x8485, - 21089 - 11905: 0xD8DF, - 21090 - 11905: 0x8486, - 21091 - 11905: 0x8487, - 21092 - 11905: 0x8488, - 21093 - 11905: 0xB0FE, - 21094 - 11905: 0x8489, - 21095 - 11905: 0xBEE7, - 21096 - 11905: 0x848A, - 21097 - 11905: 0xCAA3, - 21098 - 11905: 0xBCF4, - 21099 - 11905: 0x848B, - 21100 - 11905: 0x848C, - 21101 - 11905: 0x848D, - 21102 - 11905: 0x848E, - 21103 - 11905: 0xB8B1, - 21104 - 11905: 0x848F, - 21105 - 11905: 0x8490, - 21106 - 11905: 0xB8EE, - 21107 - 11905: 0x8491, - 21108 - 11905: 0x8492, - 21109 - 11905: 0x8493, - 21110 - 11905: 0x8494, - 21111 - 11905: 0x8495, - 21112 - 11905: 0x8496, - 21113 - 11905: 0x8497, - 21114 - 11905: 0x8498, - 21115 - 11905: 0x8499, - 21116 - 11905: 0x849A, - 21117 - 11905: 0xD8E2, - 21118 - 11905: 0x849B, - 21119 - 11905: 0xBDCB, - 21120 - 11905: 0x849C, - 21121 - 11905: 0xD8E4, - 21122 - 11905: 0xD8E3, - 21123 - 11905: 0x849D, - 21124 - 11905: 0x849E, - 21125 - 11905: 0x849F, - 21126 - 11905: 0x84A0, - 21127 - 11905: 0x84A1, - 21128 - 11905: 0xC5FC, - 21129 - 11905: 0x84A2, - 21130 - 11905: 0x84A3, - 21131 - 11905: 0x84A4, - 21132 - 11905: 0x84A5, - 21133 - 11905: 0x84A6, - 21134 - 11905: 0x84A7, - 21135 - 11905: 0x84A8, - 21136 - 11905: 0xD8E5, - 21137 - 11905: 0x84A9, - 21138 - 11905: 0x84AA, - 21139 - 11905: 0xD8E6, - 21140 - 11905: 0x84AB, - 21141 - 11905: 0x84AC, - 21142 - 11905: 0x84AD, - 21143 - 11905: 0x84AE, - 21144 - 11905: 0x84AF, - 21145 - 11905: 0x84B0, - 21146 - 11905: 0x84B1, - 21147 - 11905: 0xC1A6, - 21148 - 11905: 0x84B2, - 21149 - 11905: 0xC8B0, - 21150 - 11905: 0xB0EC, - 21151 - 11905: 0xB9A6, - 21152 - 11905: 0xBCD3, - 21153 - 11905: 0xCEF1, - 21154 - 11905: 0xDBBD, - 21155 - 11905: 0xC1D3, - 21156 - 11905: 0x84B3, - 21157 - 11905: 0x84B4, - 21158 - 11905: 0x84B5, - 21159 - 11905: 0x84B6, - 21160 - 11905: 0xB6AF, - 21161 - 11905: 0xD6FA, - 21162 - 11905: 0xC5AC, - 21163 - 11905: 0xBDD9, - 21164 - 11905: 0xDBBE, - 21165 - 11905: 0xDBBF, - 21166 - 11905: 0x84B7, - 21167 - 11905: 0x84B8, - 21168 - 11905: 0x84B9, - 21169 - 11905: 0xC0F8, - 21170 - 11905: 0xBEA2, - 21171 - 11905: 0xC0CD, - 21172 - 11905: 0x84BA, - 21173 - 11905: 0x84BB, - 21174 - 11905: 0x84BC, - 21175 - 11905: 0x84BD, - 21176 - 11905: 0x84BE, - 21177 - 11905: 0x84BF, - 21178 - 11905: 0x84C0, - 21179 - 11905: 0x84C1, - 21180 - 11905: 0x84C2, - 21181 - 11905: 0x84C3, - 21182 - 11905: 0xDBC0, - 21183 - 11905: 0xCAC6, - 21184 - 11905: 0x84C4, - 21185 - 11905: 0x84C5, - 21186 - 11905: 0x84C6, - 21187 - 11905: 0xB2AA, - 21188 - 11905: 0x84C7, - 21189 - 11905: 0x84C8, - 21190 - 11905: 0x84C9, - 21191 - 11905: 0xD3C2, - 21192 - 11905: 0x84CA, - 21193 - 11905: 0xC3E3, - 21194 - 11905: 0x84CB, - 21195 - 11905: 0xD1AB, - 21196 - 11905: 0x84CC, - 21197 - 11905: 0x84CD, - 21198 - 11905: 0x84CE, - 21199 - 11905: 0x84CF, - 21200 - 11905: 0xDBC2, - 21201 - 11905: 0x84D0, - 21202 - 11905: 0xC0D5, - 21203 - 11905: 0x84D1, - 21204 - 11905: 0x84D2, - 21205 - 11905: 0x84D3, - 21206 - 11905: 0xDBC3, - 21207 - 11905: 0x84D4, - 21208 - 11905: 0xBFB1, - 21209 - 11905: 0x84D5, - 21210 - 11905: 0x84D6, - 21211 - 11905: 0x84D7, - 21212 - 11905: 0x84D8, - 21213 - 11905: 0x84D9, - 21214 - 11905: 0x84DA, - 21215 - 11905: 0xC4BC, - 21216 - 11905: 0x84DB, - 21217 - 11905: 0x84DC, - 21218 - 11905: 0x84DD, - 21219 - 11905: 0x84DE, - 21220 - 11905: 0xC7DA, - 21221 - 11905: 0x84DF, - 21222 - 11905: 0x84E0, - 21223 - 11905: 0x84E1, - 21224 - 11905: 0x84E2, - 21225 - 11905: 0x84E3, - 21226 - 11905: 0x84E4, - 21227 - 11905: 0x84E5, - 21228 - 11905: 0x84E6, - 21229 - 11905: 0x84E7, - 21230 - 11905: 0x84E8, - 21231 - 11905: 0x84E9, - 21232 - 11905: 0xDBC4, - 21233 - 11905: 0x84EA, - 21234 - 11905: 0x84EB, - 21235 - 11905: 0x84EC, - 21236 - 11905: 0x84ED, - 21237 - 11905: 0x84EE, - 21238 - 11905: 0x84EF, - 21239 - 11905: 0x84F0, - 21240 - 11905: 0x84F1, - 21241 - 11905: 0xD9E8, - 21242 - 11905: 0xC9D7, - 21243 - 11905: 0x84F2, - 21244 - 11905: 0x84F3, - 21245 - 11905: 0x84F4, - 21246 - 11905: 0xB9B4, - 21247 - 11905: 0xCEF0, - 21248 - 11905: 0xD4C8, - 21249 - 11905: 0x84F5, - 21250 - 11905: 0x84F6, - 21251 - 11905: 0x84F7, - 21252 - 11905: 0x84F8, - 21253 - 11905: 0xB0FC, - 21254 - 11905: 0xB4D2, - 21255 - 11905: 0x84F9, - 21256 - 11905: 0xD0D9, - 21257 - 11905: 0x84FA, - 21258 - 11905: 0x84FB, - 21259 - 11905: 0x84FC, - 21260 - 11905: 0x84FD, - 21261 - 11905: 0xD9E9, - 21262 - 11905: 0x84FE, - 21263 - 11905: 0xDECB, - 21264 - 11905: 0xD9EB, - 21265 - 11905: 0x8540, - 21266 - 11905: 0x8541, - 21267 - 11905: 0x8542, - 21268 - 11905: 0x8543, - 21269 - 11905: 0xD8B0, - 21270 - 11905: 0xBBAF, - 21271 - 11905: 0xB1B1, - 21272 - 11905: 0x8544, - 21273 - 11905: 0xB3D7, - 21274 - 11905: 0xD8CE, - 21275 - 11905: 0x8545, - 21276 - 11905: 0x8546, - 21277 - 11905: 0xD4D1, - 21278 - 11905: 0x8547, - 21279 - 11905: 0x8548, - 21280 - 11905: 0xBDB3, - 21281 - 11905: 0xBFEF, - 21282 - 11905: 0x8549, - 21283 - 11905: 0xCFBB, - 21284 - 11905: 0x854A, - 21285 - 11905: 0x854B, - 21286 - 11905: 0xD8D0, - 21287 - 11905: 0x854C, - 21288 - 11905: 0x854D, - 21289 - 11905: 0x854E, - 21290 - 11905: 0xB7CB, - 21291 - 11905: 0x854F, - 21292 - 11905: 0x8550, - 21293 - 11905: 0x8551, - 21294 - 11905: 0xD8D1, - 21295 - 11905: 0x8552, - 21296 - 11905: 0x8553, - 21297 - 11905: 0x8554, - 21298 - 11905: 0x8555, - 21299 - 11905: 0x8556, - 21300 - 11905: 0x8557, - 21301 - 11905: 0x8558, - 21302 - 11905: 0x8559, - 21303 - 11905: 0x855A, - 21304 - 11905: 0x855B, - 21305 - 11905: 0xC6A5, - 21306 - 11905: 0xC7F8, - 21307 - 11905: 0xD2BD, - 21308 - 11905: 0x855C, - 21309 - 11905: 0x855D, - 21310 - 11905: 0xD8D2, - 21311 - 11905: 0xC4E4, - 21312 - 11905: 0x855E, - 21313 - 11905: 0xCAAE, - 21314 - 11905: 0x855F, - 21315 - 11905: 0xC7A7, - 21316 - 11905: 0x8560, - 21317 - 11905: 0xD8A6, - 21318 - 11905: 0x8561, - 21319 - 11905: 0xC9FD, - 21320 - 11905: 0xCEE7, - 21321 - 11905: 0xBBDC, - 21322 - 11905: 0xB0EB, - 21323 - 11905: 0x8562, - 21324 - 11905: 0x8563, - 21325 - 11905: 0x8564, - 21326 - 11905: 0xBBAA, - 21327 - 11905: 0xD0AD, - 21328 - 11905: 0x8565, - 21329 - 11905: 0xB1B0, - 21330 - 11905: 0xD7E4, - 21331 - 11905: 0xD7BF, - 21332 - 11905: 0x8566, - 21333 - 11905: 0xB5A5, - 21334 - 11905: 0xC2F4, - 21335 - 11905: 0xC4CF, - 21336 - 11905: 0x8567, - 21337 - 11905: 0x8568, - 21338 - 11905: 0xB2A9, - 21339 - 11905: 0x8569, - 21340 - 11905: 0xB2B7, - 21341 - 11905: 0x856A, - 21342 - 11905: 0xB1E5, - 21343 - 11905: 0xDFB2, - 21344 - 11905: 0xD5BC, - 21345 - 11905: 0xBFA8, - 21346 - 11905: 0xC2AC, - 21347 - 11905: 0xD8D5, - 21348 - 11905: 0xC2B1, - 21349 - 11905: 0x856B, - 21350 - 11905: 0xD8D4, - 21351 - 11905: 0xCED4, - 21352 - 11905: 0x856C, - 21353 - 11905: 0xDAE0, - 21354 - 11905: 0x856D, - 21355 - 11905: 0xCEC0, - 21356 - 11905: 0x856E, - 21357 - 11905: 0x856F, - 21358 - 11905: 0xD8B4, - 21359 - 11905: 0xC3AE, - 21360 - 11905: 0xD3A1, - 21361 - 11905: 0xCEA3, - 21362 - 11905: 0x8570, - 21363 - 11905: 0xBCB4, - 21364 - 11905: 0xC8B4, - 21365 - 11905: 0xC2D1, - 21366 - 11905: 0x8571, - 21367 - 11905: 0xBEED, - 21368 - 11905: 0xD0B6, - 21369 - 11905: 0x8572, - 21370 - 11905: 0xDAE1, - 21371 - 11905: 0x8573, - 21372 - 11905: 0x8574, - 21373 - 11905: 0x8575, - 21374 - 11905: 0x8576, - 21375 - 11905: 0xC7E4, - 21376 - 11905: 0x8577, - 21377 - 11905: 0x8578, - 21378 - 11905: 0xB3A7, - 21379 - 11905: 0x8579, - 21380 - 11905: 0xB6F2, - 21381 - 11905: 0xCCFC, - 21382 - 11905: 0xC0FA, - 21383 - 11905: 0x857A, - 21384 - 11905: 0x857B, - 21385 - 11905: 0xC0F7, - 21386 - 11905: 0x857C, - 21387 - 11905: 0xD1B9, - 21388 - 11905: 0xD1E1, - 21389 - 11905: 0xD8C7, - 21390 - 11905: 0x857D, - 21391 - 11905: 0x857E, - 21392 - 11905: 0x8580, - 21393 - 11905: 0x8581, - 21394 - 11905: 0x8582, - 21395 - 11905: 0x8583, - 21396 - 11905: 0x8584, - 21397 - 11905: 0xB2DE, - 21398 - 11905: 0x8585, - 21399 - 11905: 0x8586, - 21400 - 11905: 0xC0E5, - 21401 - 11905: 0x8587, - 21402 - 11905: 0xBAF1, - 21403 - 11905: 0x8588, - 21404 - 11905: 0x8589, - 21405 - 11905: 0xD8C8, - 21406 - 11905: 0x858A, - 21407 - 11905: 0xD4AD, - 21408 - 11905: 0x858B, - 21409 - 11905: 0x858C, - 21410 - 11905: 0xCFE1, - 21411 - 11905: 0xD8C9, - 21412 - 11905: 0x858D, - 21413 - 11905: 0xD8CA, - 21414 - 11905: 0xCFC3, - 21415 - 11905: 0x858E, - 21416 - 11905: 0xB3F8, - 21417 - 11905: 0xBEC7, - 21418 - 11905: 0x858F, - 21419 - 11905: 0x8590, - 21420 - 11905: 0x8591, - 21421 - 11905: 0x8592, - 21422 - 11905: 0xD8CB, - 21423 - 11905: 0x8593, - 21424 - 11905: 0x8594, - 21425 - 11905: 0x8595, - 21426 - 11905: 0x8596, - 21427 - 11905: 0x8597, - 21428 - 11905: 0x8598, - 21429 - 11905: 0x8599, - 21430 - 11905: 0xDBCC, - 21431 - 11905: 0x859A, - 21432 - 11905: 0x859B, - 21433 - 11905: 0x859C, - 21434 - 11905: 0x859D, - 21435 - 11905: 0xC8A5, - 21436 - 11905: 0x859E, - 21437 - 11905: 0x859F, - 21438 - 11905: 0x85A0, - 21439 - 11905: 0xCFD8, - 21440 - 11905: 0x85A1, - 21441 - 11905: 0xC8FE, - 21442 - 11905: 0xB2CE, - 21443 - 11905: 0x85A2, - 21444 - 11905: 0x85A3, - 21445 - 11905: 0x85A4, - 21446 - 11905: 0x85A5, - 21447 - 11905: 0x85A6, - 21448 - 11905: 0xD3D6, - 21449 - 11905: 0xB2E6, - 21450 - 11905: 0xBCB0, - 21451 - 11905: 0xD3D1, - 21452 - 11905: 0xCBAB, - 21453 - 11905: 0xB7B4, - 21454 - 11905: 0x85A7, - 21455 - 11905: 0x85A8, - 21456 - 11905: 0x85A9, - 21457 - 11905: 0xB7A2, - 21458 - 11905: 0x85AA, - 21459 - 11905: 0x85AB, - 21460 - 11905: 0xCAE5, - 21461 - 11905: 0x85AC, - 21462 - 11905: 0xC8A1, - 21463 - 11905: 0xCADC, - 21464 - 11905: 0xB1E4, - 21465 - 11905: 0xD0F0, - 21466 - 11905: 0x85AD, - 21467 - 11905: 0xC5D1, - 21468 - 11905: 0x85AE, - 21469 - 11905: 0x85AF, - 21470 - 11905: 0x85B0, - 21471 - 11905: 0xDBC5, - 21472 - 11905: 0xB5FE, - 21473 - 11905: 0x85B1, - 21474 - 11905: 0x85B2, - 21475 - 11905: 0xBFDA, - 21476 - 11905: 0xB9C5, - 21477 - 11905: 0xBEE4, - 21478 - 11905: 0xC1ED, - 21479 - 11905: 0x85B3, - 21480 - 11905: 0xDFB6, - 21481 - 11905: 0xDFB5, - 21482 - 11905: 0xD6BB, - 21483 - 11905: 0xBDD0, - 21484 - 11905: 0xD5D9, - 21485 - 11905: 0xB0C8, - 21486 - 11905: 0xB6A3, - 21487 - 11905: 0xBFC9, - 21488 - 11905: 0xCCA8, - 21489 - 11905: 0xDFB3, - 21490 - 11905: 0xCAB7, - 21491 - 11905: 0xD3D2, - 21492 - 11905: 0x85B4, - 21493 - 11905: 0xD8CF, - 21494 - 11905: 0xD2B6, - 21495 - 11905: 0xBAC5, - 21496 - 11905: 0xCBBE, - 21497 - 11905: 0xCCBE, - 21498 - 11905: 0x85B5, - 21499 - 11905: 0xDFB7, - 21500 - 11905: 0xB5F0, - 21501 - 11905: 0xDFB4, - 21502 - 11905: 0x85B6, - 21503 - 11905: 0x85B7, - 21504 - 11905: 0x85B8, - 21505 - 11905: 0xD3F5, - 21506 - 11905: 0x85B9, - 21507 - 11905: 0xB3D4, - 21508 - 11905: 0xB8F7, - 21509 - 11905: 0x85BA, - 21510 - 11905: 0xDFBA, - 21511 - 11905: 0x85BB, - 21512 - 11905: 0xBACF, - 21513 - 11905: 0xBCAA, - 21514 - 11905: 0xB5F5, - 21515 - 11905: 0x85BC, - 21516 - 11905: 0xCDAC, - 21517 - 11905: 0xC3FB, - 21518 - 11905: 0xBAF3, - 21519 - 11905: 0xC0F4, - 21520 - 11905: 0xCDC2, - 21521 - 11905: 0xCFF2, - 21522 - 11905: 0xDFB8, - 21523 - 11905: 0xCFC5, - 21524 - 11905: 0x85BD, - 21525 - 11905: 0xC2C0, - 21526 - 11905: 0xDFB9, - 21527 - 11905: 0xC2F0, - 21528 - 11905: 0x85BE, - 21529 - 11905: 0x85BF, - 21530 - 11905: 0x85C0, - 21531 - 11905: 0xBEFD, - 21532 - 11905: 0x85C1, - 21533 - 11905: 0xC1DF, - 21534 - 11905: 0xCDCC, - 21535 - 11905: 0xD2F7, - 21536 - 11905: 0xB7CD, - 21537 - 11905: 0xDFC1, - 21538 - 11905: 0x85C2, - 21539 - 11905: 0xDFC4, - 21540 - 11905: 0x85C3, - 21541 - 11905: 0x85C4, - 21542 - 11905: 0xB7F1, - 21543 - 11905: 0xB0C9, - 21544 - 11905: 0xB6D6, - 21545 - 11905: 0xB7D4, - 21546 - 11905: 0x85C5, - 21547 - 11905: 0xBAAC, - 21548 - 11905: 0xCCFD, - 21549 - 11905: 0xBFD4, - 21550 - 11905: 0xCBB1, - 21551 - 11905: 0xC6F4, - 21552 - 11905: 0x85C6, - 21553 - 11905: 0xD6A8, - 21554 - 11905: 0xDFC5, - 21555 - 11905: 0x85C7, - 21556 - 11905: 0xCEE2, - 21557 - 11905: 0xB3B3, - 21558 - 11905: 0x85C8, - 21559 - 11905: 0x85C9, - 21560 - 11905: 0xCEFC, - 21561 - 11905: 0xB4B5, - 21562 - 11905: 0x85CA, - 21563 - 11905: 0xCEC7, - 21564 - 11905: 0xBAF0, - 21565 - 11905: 0x85CB, - 21566 - 11905: 0xCEE1, - 21567 - 11905: 0x85CC, - 21568 - 11905: 0xD1BD, - 21569 - 11905: 0x85CD, - 21570 - 11905: 0x85CE, - 21571 - 11905: 0xDFC0, - 21572 - 11905: 0x85CF, - 21573 - 11905: 0x85D0, - 21574 - 11905: 0xB4F4, - 21575 - 11905: 0x85D1, - 21576 - 11905: 0xB3CA, - 21577 - 11905: 0x85D2, - 21578 - 11905: 0xB8E6, - 21579 - 11905: 0xDFBB, - 21580 - 11905: 0x85D3, - 21581 - 11905: 0x85D4, - 21582 - 11905: 0x85D5, - 21583 - 11905: 0x85D6, - 21584 - 11905: 0xC4C5, - 21585 - 11905: 0x85D7, - 21586 - 11905: 0xDFBC, - 21587 - 11905: 0xDFBD, - 21588 - 11905: 0xDFBE, - 21589 - 11905: 0xC5BB, - 21590 - 11905: 0xDFBF, - 21591 - 11905: 0xDFC2, - 21592 - 11905: 0xD4B1, - 21593 - 11905: 0xDFC3, - 21594 - 11905: 0x85D8, - 21595 - 11905: 0xC7BA, - 21596 - 11905: 0xCED8, - 21597 - 11905: 0x85D9, - 21598 - 11905: 0x85DA, - 21599 - 11905: 0x85DB, - 21600 - 11905: 0x85DC, - 21601 - 11905: 0x85DD, - 21602 - 11905: 0xC4D8, - 21603 - 11905: 0x85DE, - 21604 - 11905: 0xDFCA, - 21605 - 11905: 0x85DF, - 21606 - 11905: 0xDFCF, - 21607 - 11905: 0x85E0, - 21608 - 11905: 0xD6DC, - 21609 - 11905: 0x85E1, - 21610 - 11905: 0x85E2, - 21611 - 11905: 0x85E3, - 21612 - 11905: 0x85E4, - 21613 - 11905: 0x85E5, - 21614 - 11905: 0x85E6, - 21615 - 11905: 0x85E7, - 21616 - 11905: 0x85E8, - 21617 - 11905: 0xDFC9, - 21618 - 11905: 0xDFDA, - 21619 - 11905: 0xCEB6, - 21620 - 11905: 0x85E9, - 21621 - 11905: 0xBAC7, - 21622 - 11905: 0xDFCE, - 21623 - 11905: 0xDFC8, - 21624 - 11905: 0xC5DE, - 21625 - 11905: 0x85EA, - 21626 - 11905: 0x85EB, - 21627 - 11905: 0xC9EB, - 21628 - 11905: 0xBAF4, - 21629 - 11905: 0xC3FC, - 21630 - 11905: 0x85EC, - 21631 - 11905: 0x85ED, - 21632 - 11905: 0xBED7, - 21633 - 11905: 0x85EE, - 21634 - 11905: 0xDFC6, - 21635 - 11905: 0x85EF, - 21636 - 11905: 0xDFCD, - 21637 - 11905: 0x85F0, - 21638 - 11905: 0xC5D8, - 21639 - 11905: 0x85F1, - 21640 - 11905: 0x85F2, - 21641 - 11905: 0x85F3, - 21642 - 11905: 0x85F4, - 21643 - 11905: 0xD5A6, - 21644 - 11905: 0xBACD, - 21645 - 11905: 0x85F5, - 21646 - 11905: 0xBECC, - 21647 - 11905: 0xD3BD, - 21648 - 11905: 0xB8C0, - 21649 - 11905: 0x85F6, - 21650 - 11905: 0xD6E4, - 21651 - 11905: 0x85F7, - 21652 - 11905: 0xDFC7, - 21653 - 11905: 0xB9BE, - 21654 - 11905: 0xBFA7, - 21655 - 11905: 0x85F8, - 21656 - 11905: 0x85F9, - 21657 - 11905: 0xC1FC, - 21658 - 11905: 0xDFCB, - 21659 - 11905: 0xDFCC, - 21660 - 11905: 0x85FA, - 21661 - 11905: 0xDFD0, - 21662 - 11905: 0x85FB, - 21663 - 11905: 0x85FC, - 21664 - 11905: 0x85FD, - 21665 - 11905: 0x85FE, - 21666 - 11905: 0x8640, - 21667 - 11905: 0xDFDB, - 21668 - 11905: 0xDFE5, - 21669 - 11905: 0x8641, - 21670 - 11905: 0xDFD7, - 21671 - 11905: 0xDFD6, - 21672 - 11905: 0xD7C9, - 21673 - 11905: 0xDFE3, - 21674 - 11905: 0xDFE4, - 21675 - 11905: 0xE5EB, - 21676 - 11905: 0xD2A7, - 21677 - 11905: 0xDFD2, - 21678 - 11905: 0x8642, - 21679 - 11905: 0xBFA9, - 21680 - 11905: 0x8643, - 21681 - 11905: 0xD4DB, - 21682 - 11905: 0x8644, - 21683 - 11905: 0xBFC8, - 21684 - 11905: 0xDFD4, - 21685 - 11905: 0x8645, - 21686 - 11905: 0x8646, - 21687 - 11905: 0x8647, - 21688 - 11905: 0xCFCC, - 21689 - 11905: 0x8648, - 21690 - 11905: 0x8649, - 21691 - 11905: 0xDFDD, - 21692 - 11905: 0x864A, - 21693 - 11905: 0xD1CA, - 21694 - 11905: 0x864B, - 21695 - 11905: 0xDFDE, - 21696 - 11905: 0xB0A7, - 21697 - 11905: 0xC6B7, - 21698 - 11905: 0xDFD3, - 21699 - 11905: 0x864C, - 21700 - 11905: 0xBAE5, - 21701 - 11905: 0x864D, - 21702 - 11905: 0xB6DF, - 21703 - 11905: 0xCDDB, - 21704 - 11905: 0xB9FE, - 21705 - 11905: 0xD4D5, - 21706 - 11905: 0x864E, - 21707 - 11905: 0x864F, - 21708 - 11905: 0xDFDF, - 21709 - 11905: 0xCFEC, - 21710 - 11905: 0xB0A5, - 21711 - 11905: 0xDFE7, - 21712 - 11905: 0xDFD1, - 21713 - 11905: 0xD1C6, - 21714 - 11905: 0xDFD5, - 21715 - 11905: 0xDFD8, - 21716 - 11905: 0xDFD9, - 21717 - 11905: 0xDFDC, - 21718 - 11905: 0x8650, - 21719 - 11905: 0xBBA9, - 21720 - 11905: 0x8651, - 21721 - 11905: 0xDFE0, - 21722 - 11905: 0xDFE1, - 21723 - 11905: 0x8652, - 21724 - 11905: 0xDFE2, - 21725 - 11905: 0xDFE6, - 21726 - 11905: 0xDFE8, - 21727 - 11905: 0xD3B4, - 21728 - 11905: 0x8653, - 21729 - 11905: 0x8654, - 21730 - 11905: 0x8655, - 21731 - 11905: 0x8656, - 21732 - 11905: 0x8657, - 21733 - 11905: 0xB8E7, - 21734 - 11905: 0xC5B6, - 21735 - 11905: 0xDFEA, - 21736 - 11905: 0xC9DA, - 21737 - 11905: 0xC1A8, - 21738 - 11905: 0xC4C4, - 21739 - 11905: 0x8658, - 21740 - 11905: 0x8659, - 21741 - 11905: 0xBFDE, - 21742 - 11905: 0xCFF8, - 21743 - 11905: 0x865A, - 21744 - 11905: 0x865B, - 21745 - 11905: 0x865C, - 21746 - 11905: 0xD5DC, - 21747 - 11905: 0xDFEE, - 21748 - 11905: 0x865D, - 21749 - 11905: 0x865E, - 21750 - 11905: 0x865F, - 21751 - 11905: 0x8660, - 21752 - 11905: 0x8661, - 21753 - 11905: 0x8662, - 21754 - 11905: 0xB2B8, - 21755 - 11905: 0x8663, - 21756 - 11905: 0xBADF, - 21757 - 11905: 0xDFEC, - 21758 - 11905: 0x8664, - 21759 - 11905: 0xDBC1, - 21760 - 11905: 0x8665, - 21761 - 11905: 0xD1E4, - 21762 - 11905: 0x8666, - 21763 - 11905: 0x8667, - 21764 - 11905: 0x8668, - 21765 - 11905: 0x8669, - 21766 - 11905: 0xCBF4, - 21767 - 11905: 0xB4BD, - 21768 - 11905: 0x866A, - 21769 - 11905: 0xB0A6, - 21770 - 11905: 0x866B, - 21771 - 11905: 0x866C, - 21772 - 11905: 0x866D, - 21773 - 11905: 0x866E, - 21774 - 11905: 0x866F, - 21775 - 11905: 0xDFF1, - 21776 - 11905: 0xCCC6, - 21777 - 11905: 0xDFF2, - 21778 - 11905: 0x8670, - 21779 - 11905: 0x8671, - 21780 - 11905: 0xDFED, - 21781 - 11905: 0x8672, - 21782 - 11905: 0x8673, - 21783 - 11905: 0x8674, - 21784 - 11905: 0x8675, - 21785 - 11905: 0x8676, - 21786 - 11905: 0x8677, - 21787 - 11905: 0xDFE9, - 21788 - 11905: 0x8678, - 21789 - 11905: 0x8679, - 21790 - 11905: 0x867A, - 21791 - 11905: 0x867B, - 21792 - 11905: 0xDFEB, - 21793 - 11905: 0x867C, - 21794 - 11905: 0xDFEF, - 21795 - 11905: 0xDFF0, - 21796 - 11905: 0xBBBD, - 21797 - 11905: 0x867D, - 21798 - 11905: 0x867E, - 21799 - 11905: 0xDFF3, - 21800 - 11905: 0x8680, - 21801 - 11905: 0x8681, - 21802 - 11905: 0xDFF4, - 21803 - 11905: 0x8682, - 21804 - 11905: 0xBBA3, - 21805 - 11905: 0x8683, - 21806 - 11905: 0xCADB, - 21807 - 11905: 0xCEA8, - 21808 - 11905: 0xE0A7, - 21809 - 11905: 0xB3AA, - 21810 - 11905: 0x8684, - 21811 - 11905: 0xE0A6, - 21812 - 11905: 0x8685, - 21813 - 11905: 0x8686, - 21814 - 11905: 0x8687, - 21815 - 11905: 0xE0A1, - 21816 - 11905: 0x8688, - 21817 - 11905: 0x8689, - 21818 - 11905: 0x868A, - 21819 - 11905: 0x868B, - 21820 - 11905: 0xDFFE, - 21821 - 11905: 0x868C, - 21822 - 11905: 0xCDD9, - 21823 - 11905: 0xDFFC, - 21824 - 11905: 0x868D, - 21825 - 11905: 0xDFFA, - 21826 - 11905: 0x868E, - 21827 - 11905: 0xBFD0, - 21828 - 11905: 0xD7C4, - 21829 - 11905: 0x868F, - 21830 - 11905: 0xC9CC, - 21831 - 11905: 0x8690, - 21832 - 11905: 0x8691, - 21833 - 11905: 0xDFF8, - 21834 - 11905: 0xB0A1, - 21835 - 11905: 0x8692, - 21836 - 11905: 0x8693, - 21837 - 11905: 0x8694, - 21838 - 11905: 0x8695, - 21839 - 11905: 0x8696, - 21840 - 11905: 0xDFFD, - 21841 - 11905: 0x8697, - 21842 - 11905: 0x8698, - 21843 - 11905: 0x8699, - 21844 - 11905: 0x869A, - 21845 - 11905: 0xDFFB, - 21846 - 11905: 0xE0A2, - 21847 - 11905: 0x869B, - 21848 - 11905: 0x869C, - 21849 - 11905: 0x869D, - 21850 - 11905: 0x869E, - 21851 - 11905: 0x869F, - 21852 - 11905: 0xE0A8, - 21853 - 11905: 0x86A0, - 21854 - 11905: 0x86A1, - 21855 - 11905: 0x86A2, - 21856 - 11905: 0x86A3, - 21857 - 11905: 0xB7C8, - 21858 - 11905: 0x86A4, - 21859 - 11905: 0x86A5, - 21860 - 11905: 0xC6A1, - 21861 - 11905: 0xC9B6, - 21862 - 11905: 0xC0B2, - 21863 - 11905: 0xDFF5, - 21864 - 11905: 0x86A6, - 21865 - 11905: 0x86A7, - 21866 - 11905: 0xC5BE, - 21867 - 11905: 0x86A8, - 21868 - 11905: 0xD8C4, - 21869 - 11905: 0xDFF9, - 21870 - 11905: 0xC4F6, - 21871 - 11905: 0x86A9, - 21872 - 11905: 0x86AA, - 21873 - 11905: 0x86AB, - 21874 - 11905: 0x86AC, - 21875 - 11905: 0x86AD, - 21876 - 11905: 0x86AE, - 21877 - 11905: 0xE0A3, - 21878 - 11905: 0xE0A4, - 21879 - 11905: 0xE0A5, - 21880 - 11905: 0xD0A5, - 21881 - 11905: 0x86AF, - 21882 - 11905: 0x86B0, - 21883 - 11905: 0xE0B4, - 21884 - 11905: 0xCCE4, - 21885 - 11905: 0x86B1, - 21886 - 11905: 0xE0B1, - 21887 - 11905: 0x86B2, - 21888 - 11905: 0xBFA6, - 21889 - 11905: 0xE0AF, - 21890 - 11905: 0xCEB9, - 21891 - 11905: 0xE0AB, - 21892 - 11905: 0xC9C6, - 21893 - 11905: 0x86B3, - 21894 - 11905: 0x86B4, - 21895 - 11905: 0xC0AE, - 21896 - 11905: 0xE0AE, - 21897 - 11905: 0xBAED, - 21898 - 11905: 0xBAB0, - 21899 - 11905: 0xE0A9, - 21900 - 11905: 0x86B5, - 21901 - 11905: 0x86B6, - 21902 - 11905: 0x86B7, - 21903 - 11905: 0xDFF6, - 21904 - 11905: 0x86B8, - 21905 - 11905: 0xE0B3, - 21906 - 11905: 0x86B9, - 21907 - 11905: 0x86BA, - 21908 - 11905: 0xE0B8, - 21909 - 11905: 0x86BB, - 21910 - 11905: 0x86BC, - 21911 - 11905: 0x86BD, - 21912 - 11905: 0xB4AD, - 21913 - 11905: 0xE0B9, - 21914 - 11905: 0x86BE, - 21915 - 11905: 0x86BF, - 21916 - 11905: 0xCFB2, - 21917 - 11905: 0xBAC8, - 21918 - 11905: 0x86C0, - 21919 - 11905: 0xE0B0, - 21920 - 11905: 0x86C1, - 21921 - 11905: 0x86C2, - 21922 - 11905: 0x86C3, - 21923 - 11905: 0x86C4, - 21924 - 11905: 0x86C5, - 21925 - 11905: 0x86C6, - 21926 - 11905: 0x86C7, - 21927 - 11905: 0xD0FA, - 21928 - 11905: 0x86C8, - 21929 - 11905: 0x86C9, - 21930 - 11905: 0x86CA, - 21931 - 11905: 0x86CB, - 21932 - 11905: 0x86CC, - 21933 - 11905: 0x86CD, - 21934 - 11905: 0x86CE, - 21935 - 11905: 0x86CF, - 21936 - 11905: 0x86D0, - 21937 - 11905: 0xE0AC, - 21938 - 11905: 0x86D1, - 21939 - 11905: 0xD4FB, - 21940 - 11905: 0x86D2, - 21941 - 11905: 0xDFF7, - 21942 - 11905: 0x86D3, - 21943 - 11905: 0xC5E7, - 21944 - 11905: 0x86D4, - 21945 - 11905: 0xE0AD, - 21946 - 11905: 0x86D5, - 21947 - 11905: 0xD3F7, - 21948 - 11905: 0x86D6, - 21949 - 11905: 0xE0B6, - 21950 - 11905: 0xE0B7, - 21951 - 11905: 0x86D7, - 21952 - 11905: 0x86D8, - 21953 - 11905: 0x86D9, - 21954 - 11905: 0x86DA, - 21955 - 11905: 0x86DB, - 21956 - 11905: 0xE0C4, - 21957 - 11905: 0xD0E1, - 21958 - 11905: 0x86DC, - 21959 - 11905: 0x86DD, - 21960 - 11905: 0x86DE, - 21961 - 11905: 0xE0BC, - 21962 - 11905: 0x86DF, - 21963 - 11905: 0x86E0, - 21964 - 11905: 0xE0C9, - 21965 - 11905: 0xE0CA, - 21966 - 11905: 0x86E1, - 21967 - 11905: 0x86E2, - 21968 - 11905: 0x86E3, - 21969 - 11905: 0xE0BE, - 21970 - 11905: 0xE0AA, - 21971 - 11905: 0xC9A4, - 21972 - 11905: 0xE0C1, - 21973 - 11905: 0x86E4, - 21974 - 11905: 0xE0B2, - 21975 - 11905: 0x86E5, - 21976 - 11905: 0x86E6, - 21977 - 11905: 0x86E7, - 21978 - 11905: 0x86E8, - 21979 - 11905: 0x86E9, - 21980 - 11905: 0xCAC8, - 21981 - 11905: 0xE0C3, - 21982 - 11905: 0x86EA, - 21983 - 11905: 0xE0B5, - 21984 - 11905: 0x86EB, - 21985 - 11905: 0xCECB, - 21986 - 11905: 0x86EC, - 21987 - 11905: 0xCBC3, - 21988 - 11905: 0xE0CD, - 21989 - 11905: 0xE0C6, - 21990 - 11905: 0xE0C2, - 21991 - 11905: 0x86ED, - 21992 - 11905: 0xE0CB, - 21993 - 11905: 0x86EE, - 21994 - 11905: 0xE0BA, - 21995 - 11905: 0xE0BF, - 21996 - 11905: 0xE0C0, - 21997 - 11905: 0x86EF, - 21998 - 11905: 0x86F0, - 21999 - 11905: 0xE0C5, - 22000 - 11905: 0x86F1, - 22001 - 11905: 0x86F2, - 22002 - 11905: 0xE0C7, - 22003 - 11905: 0xE0C8, - 22004 - 11905: 0x86F3, - 22005 - 11905: 0xE0CC, - 22006 - 11905: 0x86F4, - 22007 - 11905: 0xE0BB, - 22008 - 11905: 0x86F5, - 22009 - 11905: 0x86F6, - 22010 - 11905: 0x86F7, - 22011 - 11905: 0x86F8, - 22012 - 11905: 0x86F9, - 22013 - 11905: 0xCBD4, - 22014 - 11905: 0xE0D5, - 22015 - 11905: 0x86FA, - 22016 - 11905: 0xE0D6, - 22017 - 11905: 0xE0D2, - 22018 - 11905: 0x86FB, - 22019 - 11905: 0x86FC, - 22020 - 11905: 0x86FD, - 22021 - 11905: 0x86FE, - 22022 - 11905: 0x8740, - 22023 - 11905: 0x8741, - 22024 - 11905: 0xE0D0, - 22025 - 11905: 0xBCCE, - 22026 - 11905: 0x8742, - 22027 - 11905: 0x8743, - 22028 - 11905: 0xE0D1, - 22029 - 11905: 0x8744, - 22030 - 11905: 0xB8C2, - 22031 - 11905: 0xD8C5, - 22032 - 11905: 0x8745, - 22033 - 11905: 0x8746, - 22034 - 11905: 0x8747, - 22035 - 11905: 0x8748, - 22036 - 11905: 0x8749, - 22037 - 11905: 0x874A, - 22038 - 11905: 0x874B, - 22039 - 11905: 0x874C, - 22040 - 11905: 0xD0EA, - 22041 - 11905: 0x874D, - 22042 - 11905: 0x874E, - 22043 - 11905: 0xC2EF, - 22044 - 11905: 0x874F, - 22045 - 11905: 0x8750, - 22046 - 11905: 0xE0CF, - 22047 - 11905: 0xE0BD, - 22048 - 11905: 0x8751, - 22049 - 11905: 0x8752, - 22050 - 11905: 0x8753, - 22051 - 11905: 0xE0D4, - 22052 - 11905: 0xE0D3, - 22053 - 11905: 0x8754, - 22054 - 11905: 0x8755, - 22055 - 11905: 0xE0D7, - 22056 - 11905: 0x8756, - 22057 - 11905: 0x8757, - 22058 - 11905: 0x8758, - 22059 - 11905: 0x8759, - 22060 - 11905: 0xE0DC, - 22061 - 11905: 0xE0D8, - 22062 - 11905: 0x875A, - 22063 - 11905: 0x875B, - 22064 - 11905: 0x875C, - 22065 - 11905: 0xD6F6, - 22066 - 11905: 0xB3B0, - 22067 - 11905: 0x875D, - 22068 - 11905: 0xD7EC, - 22069 - 11905: 0x875E, - 22070 - 11905: 0xCBBB, - 22071 - 11905: 0x875F, - 22072 - 11905: 0x8760, - 22073 - 11905: 0xE0DA, - 22074 - 11905: 0x8761, - 22075 - 11905: 0xCEFB, - 22076 - 11905: 0x8762, - 22077 - 11905: 0x8763, - 22078 - 11905: 0x8764, - 22079 - 11905: 0xBAD9, - 22080 - 11905: 0x8765, - 22081 - 11905: 0x8766, - 22082 - 11905: 0x8767, - 22083 - 11905: 0x8768, - 22084 - 11905: 0x8769, - 22085 - 11905: 0x876A, - 22086 - 11905: 0x876B, - 22087 - 11905: 0x876C, - 22088 - 11905: 0x876D, - 22089 - 11905: 0x876E, - 22090 - 11905: 0x876F, - 22091 - 11905: 0x8770, - 22092 - 11905: 0xE0E1, - 22093 - 11905: 0xE0DD, - 22094 - 11905: 0xD2AD, - 22095 - 11905: 0x8771, - 22096 - 11905: 0x8772, - 22097 - 11905: 0x8773, - 22098 - 11905: 0x8774, - 22099 - 11905: 0x8775, - 22100 - 11905: 0xE0E2, - 22101 - 11905: 0x8776, - 22102 - 11905: 0x8777, - 22103 - 11905: 0xE0DB, - 22104 - 11905: 0xE0D9, - 22105 - 11905: 0xE0DF, - 22106 - 11905: 0x8778, - 22107 - 11905: 0x8779, - 22108 - 11905: 0xE0E0, - 22109 - 11905: 0x877A, - 22110 - 11905: 0x877B, - 22111 - 11905: 0x877C, - 22112 - 11905: 0x877D, - 22113 - 11905: 0x877E, - 22114 - 11905: 0xE0DE, - 22115 - 11905: 0x8780, - 22116 - 11905: 0xE0E4, - 22117 - 11905: 0x8781, - 22118 - 11905: 0x8782, - 22119 - 11905: 0x8783, - 22120 - 11905: 0xC6F7, - 22121 - 11905: 0xD8AC, - 22122 - 11905: 0xD4EB, - 22123 - 11905: 0xE0E6, - 22124 - 11905: 0xCAC9, - 22125 - 11905: 0x8784, - 22126 - 11905: 0x8785, - 22127 - 11905: 0x8786, - 22128 - 11905: 0x8787, - 22129 - 11905: 0xE0E5, - 22130 - 11905: 0x8788, - 22131 - 11905: 0x8789, - 22132 - 11905: 0x878A, - 22133 - 11905: 0x878B, - 22134 - 11905: 0xB8C1, - 22135 - 11905: 0x878C, - 22136 - 11905: 0x878D, - 22137 - 11905: 0x878E, - 22138 - 11905: 0x878F, - 22139 - 11905: 0xE0E7, - 22140 - 11905: 0xE0E8, - 22141 - 11905: 0x8790, - 22142 - 11905: 0x8791, - 22143 - 11905: 0x8792, - 22144 - 11905: 0x8793, - 22145 - 11905: 0x8794, - 22146 - 11905: 0x8795, - 22147 - 11905: 0x8796, - 22148 - 11905: 0x8797, - 22149 - 11905: 0xE0E9, - 22150 - 11905: 0xE0E3, - 22151 - 11905: 0x8798, - 22152 - 11905: 0x8799, - 22153 - 11905: 0x879A, - 22154 - 11905: 0x879B, - 22155 - 11905: 0x879C, - 22156 - 11905: 0x879D, - 22157 - 11905: 0x879E, - 22158 - 11905: 0xBABF, - 22159 - 11905: 0xCCE7, - 22160 - 11905: 0x879F, - 22161 - 11905: 0x87A0, - 22162 - 11905: 0x87A1, - 22163 - 11905: 0xE0EA, - 22164 - 11905: 0x87A2, - 22165 - 11905: 0x87A3, - 22166 - 11905: 0x87A4, - 22167 - 11905: 0x87A5, - 22168 - 11905: 0x87A6, - 22169 - 11905: 0x87A7, - 22170 - 11905: 0x87A8, - 22171 - 11905: 0x87A9, - 22172 - 11905: 0x87AA, - 22173 - 11905: 0x87AB, - 22174 - 11905: 0x87AC, - 22175 - 11905: 0x87AD, - 22176 - 11905: 0x87AE, - 22177 - 11905: 0x87AF, - 22178 - 11905: 0x87B0, - 22179 - 11905: 0xCFF9, - 22180 - 11905: 0x87B1, - 22181 - 11905: 0x87B2, - 22182 - 11905: 0x87B3, - 22183 - 11905: 0x87B4, - 22184 - 11905: 0x87B5, - 22185 - 11905: 0x87B6, - 22186 - 11905: 0x87B7, - 22187 - 11905: 0x87B8, - 22188 - 11905: 0x87B9, - 22189 - 11905: 0x87BA, - 22190 - 11905: 0x87BB, - 22191 - 11905: 0xE0EB, - 22192 - 11905: 0x87BC, - 22193 - 11905: 0x87BD, - 22194 - 11905: 0x87BE, - 22195 - 11905: 0x87BF, - 22196 - 11905: 0x87C0, - 22197 - 11905: 0x87C1, - 22198 - 11905: 0x87C2, - 22199 - 11905: 0xC8C2, - 22200 - 11905: 0x87C3, - 22201 - 11905: 0x87C4, - 22202 - 11905: 0x87C5, - 22203 - 11905: 0x87C6, - 22204 - 11905: 0xBDC0, - 22205 - 11905: 0x87C7, - 22206 - 11905: 0x87C8, - 22207 - 11905: 0x87C9, - 22208 - 11905: 0x87CA, - 22209 - 11905: 0x87CB, - 22210 - 11905: 0x87CC, - 22211 - 11905: 0x87CD, - 22212 - 11905: 0x87CE, - 22213 - 11905: 0x87CF, - 22214 - 11905: 0x87D0, - 22215 - 11905: 0x87D1, - 22216 - 11905: 0x87D2, - 22217 - 11905: 0x87D3, - 22218 - 11905: 0xC4D2, - 22219 - 11905: 0x87D4, - 22220 - 11905: 0x87D5, - 22221 - 11905: 0x87D6, - 22222 - 11905: 0x87D7, - 22223 - 11905: 0x87D8, - 22224 - 11905: 0x87D9, - 22225 - 11905: 0x87DA, - 22226 - 11905: 0x87DB, - 22227 - 11905: 0x87DC, - 22228 - 11905: 0xE0EC, - 22229 - 11905: 0x87DD, - 22230 - 11905: 0x87DE, - 22231 - 11905: 0xE0ED, - 22232 - 11905: 0x87DF, - 22233 - 11905: 0x87E0, - 22234 - 11905: 0xC7F4, - 22235 - 11905: 0xCBC4, - 22236 - 11905: 0x87E1, - 22237 - 11905: 0xE0EE, - 22238 - 11905: 0xBBD8, - 22239 - 11905: 0xD8B6, - 22240 - 11905: 0xD2F2, - 22241 - 11905: 0xE0EF, - 22242 - 11905: 0xCDC5, - 22243 - 11905: 0x87E2, - 22244 - 11905: 0xB6DA, - 22245 - 11905: 0x87E3, - 22246 - 11905: 0x87E4, - 22247 - 11905: 0x87E5, - 22248 - 11905: 0x87E6, - 22249 - 11905: 0x87E7, - 22250 - 11905: 0x87E8, - 22251 - 11905: 0xE0F1, - 22252 - 11905: 0x87E9, - 22253 - 11905: 0xD4B0, - 22254 - 11905: 0x87EA, - 22255 - 11905: 0x87EB, - 22256 - 11905: 0xC0A7, - 22257 - 11905: 0xB4D1, - 22258 - 11905: 0x87EC, - 22259 - 11905: 0x87ED, - 22260 - 11905: 0xCEA7, - 22261 - 11905: 0xE0F0, - 22262 - 11905: 0x87EE, - 22263 - 11905: 0x87EF, - 22264 - 11905: 0x87F0, - 22265 - 11905: 0xE0F2, - 22266 - 11905: 0xB9CC, - 22267 - 11905: 0x87F1, - 22268 - 11905: 0x87F2, - 22269 - 11905: 0xB9FA, - 22270 - 11905: 0xCDBC, - 22271 - 11905: 0xE0F3, - 22272 - 11905: 0x87F3, - 22273 - 11905: 0x87F4, - 22274 - 11905: 0x87F5, - 22275 - 11905: 0xC6D4, - 22276 - 11905: 0xE0F4, - 22277 - 11905: 0x87F6, - 22278 - 11905: 0xD4B2, - 22279 - 11905: 0x87F7, - 22280 - 11905: 0xC8A6, - 22281 - 11905: 0xE0F6, - 22282 - 11905: 0xE0F5, - 22283 - 11905: 0x87F8, - 22284 - 11905: 0x87F9, - 22285 - 11905: 0x87FA, - 22286 - 11905: 0x87FB, - 22287 - 11905: 0x87FC, - 22288 - 11905: 0x87FD, - 22289 - 11905: 0x87FE, - 22290 - 11905: 0x8840, - 22291 - 11905: 0x8841, - 22292 - 11905: 0x8842, - 22293 - 11905: 0x8843, - 22294 - 11905: 0x8844, - 22295 - 11905: 0x8845, - 22296 - 11905: 0x8846, - 22297 - 11905: 0x8847, - 22298 - 11905: 0x8848, - 22299 - 11905: 0x8849, - 22300 - 11905: 0xE0F7, - 22301 - 11905: 0x884A, - 22302 - 11905: 0x884B, - 22303 - 11905: 0xCDC1, - 22304 - 11905: 0x884C, - 22305 - 11905: 0x884D, - 22306 - 11905: 0x884E, - 22307 - 11905: 0xCAA5, - 22308 - 11905: 0x884F, - 22309 - 11905: 0x8850, - 22310 - 11905: 0x8851, - 22311 - 11905: 0x8852, - 22312 - 11905: 0xD4DA, - 22313 - 11905: 0xDBD7, - 22314 - 11905: 0xDBD9, - 22315 - 11905: 0x8853, - 22316 - 11905: 0xDBD8, - 22317 - 11905: 0xB9E7, - 22318 - 11905: 0xDBDC, - 22319 - 11905: 0xDBDD, - 22320 - 11905: 0xB5D8, - 22321 - 11905: 0x8854, - 22322 - 11905: 0x8855, - 22323 - 11905: 0xDBDA, - 22324 - 11905: 0x8856, - 22325 - 11905: 0x8857, - 22326 - 11905: 0x8858, - 22327 - 11905: 0x8859, - 22328 - 11905: 0x885A, - 22329 - 11905: 0xDBDB, - 22330 - 11905: 0xB3A1, - 22331 - 11905: 0xDBDF, - 22332 - 11905: 0x885B, - 22333 - 11905: 0x885C, - 22334 - 11905: 0xBBF8, - 22335 - 11905: 0x885D, - 22336 - 11905: 0xD6B7, - 22337 - 11905: 0x885E, - 22338 - 11905: 0xDBE0, - 22339 - 11905: 0x885F, - 22340 - 11905: 0x8860, - 22341 - 11905: 0x8861, - 22342 - 11905: 0x8862, - 22343 - 11905: 0xBEF9, - 22344 - 11905: 0x8863, - 22345 - 11905: 0x8864, - 22346 - 11905: 0xB7BB, - 22347 - 11905: 0x8865, - 22348 - 11905: 0xDBD0, - 22349 - 11905: 0xCCAE, - 22350 - 11905: 0xBFB2, - 22351 - 11905: 0xBBB5, - 22352 - 11905: 0xD7F8, - 22353 - 11905: 0xBFD3, - 22354 - 11905: 0x8866, - 22355 - 11905: 0x8867, - 22356 - 11905: 0x8868, - 22357 - 11905: 0x8869, - 22358 - 11905: 0x886A, - 22359 - 11905: 0xBFE9, - 22360 - 11905: 0x886B, - 22361 - 11905: 0x886C, - 22362 - 11905: 0xBCE1, - 22363 - 11905: 0xCCB3, - 22364 - 11905: 0xDBDE, - 22365 - 11905: 0xB0D3, - 22366 - 11905: 0xCEEB, - 22367 - 11905: 0xB7D8, - 22368 - 11905: 0xD7B9, - 22369 - 11905: 0xC6C2, - 22370 - 11905: 0x886D, - 22371 - 11905: 0x886E, - 22372 - 11905: 0xC0A4, - 22373 - 11905: 0x886F, - 22374 - 11905: 0xCCB9, - 22375 - 11905: 0x8870, - 22376 - 11905: 0xDBE7, - 22377 - 11905: 0xDBE1, - 22378 - 11905: 0xC6BA, - 22379 - 11905: 0xDBE3, - 22380 - 11905: 0x8871, - 22381 - 11905: 0xDBE8, - 22382 - 11905: 0x8872, - 22383 - 11905: 0xC5F7, - 22384 - 11905: 0x8873, - 22385 - 11905: 0x8874, - 22386 - 11905: 0x8875, - 22387 - 11905: 0xDBEA, - 22388 - 11905: 0x8876, - 22389 - 11905: 0x8877, - 22390 - 11905: 0xDBE9, - 22391 - 11905: 0xBFC0, - 22392 - 11905: 0x8878, - 22393 - 11905: 0x8879, - 22394 - 11905: 0x887A, - 22395 - 11905: 0xDBE6, - 22396 - 11905: 0xDBE5, - 22397 - 11905: 0x887B, - 22398 - 11905: 0x887C, - 22399 - 11905: 0x887D, - 22400 - 11905: 0x887E, - 22401 - 11905: 0x8880, - 22402 - 11905: 0xB4B9, - 22403 - 11905: 0xC0AC, - 22404 - 11905: 0xC2A2, - 22405 - 11905: 0xDBE2, - 22406 - 11905: 0xDBE4, - 22407 - 11905: 0x8881, - 22408 - 11905: 0x8882, - 22409 - 11905: 0x8883, - 22410 - 11905: 0x8884, - 22411 - 11905: 0xD0CD, - 22412 - 11905: 0xDBED, - 22413 - 11905: 0x8885, - 22414 - 11905: 0x8886, - 22415 - 11905: 0x8887, - 22416 - 11905: 0x8888, - 22417 - 11905: 0x8889, - 22418 - 11905: 0xC0DD, - 22419 - 11905: 0xDBF2, - 22420 - 11905: 0x888A, - 22421 - 11905: 0x888B, - 22422 - 11905: 0x888C, - 22423 - 11905: 0x888D, - 22424 - 11905: 0x888E, - 22425 - 11905: 0x888F, - 22426 - 11905: 0x8890, - 22427 - 11905: 0xB6E2, - 22428 - 11905: 0x8891, - 22429 - 11905: 0x8892, - 22430 - 11905: 0x8893, - 22431 - 11905: 0x8894, - 22432 - 11905: 0xDBF3, - 22433 - 11905: 0xDBD2, - 22434 - 11905: 0xB9B8, - 22435 - 11905: 0xD4AB, - 22436 - 11905: 0xDBEC, - 22437 - 11905: 0x8895, - 22438 - 11905: 0xBFD1, - 22439 - 11905: 0xDBF0, - 22440 - 11905: 0x8896, - 22441 - 11905: 0xDBD1, - 22442 - 11905: 0x8897, - 22443 - 11905: 0xB5E6, - 22444 - 11905: 0x8898, - 22445 - 11905: 0xDBEB, - 22446 - 11905: 0xBFE5, - 22447 - 11905: 0x8899, - 22448 - 11905: 0x889A, - 22449 - 11905: 0x889B, - 22450 - 11905: 0xDBEE, - 22451 - 11905: 0x889C, - 22452 - 11905: 0xDBF1, - 22453 - 11905: 0x889D, - 22454 - 11905: 0x889E, - 22455 - 11905: 0x889F, - 22456 - 11905: 0xDBF9, - 22457 - 11905: 0x88A0, - 22458 - 11905: 0x88A1, - 22459 - 11905: 0x88A2, - 22460 - 11905: 0x88A3, - 22461 - 11905: 0x88A4, - 22462 - 11905: 0x88A5, - 22463 - 11905: 0x88A6, - 22464 - 11905: 0x88A7, - 22465 - 11905: 0x88A8, - 22466 - 11905: 0xB9A1, - 22467 - 11905: 0xB0A3, - 22468 - 11905: 0x88A9, - 22469 - 11905: 0x88AA, - 22470 - 11905: 0x88AB, - 22471 - 11905: 0x88AC, - 22472 - 11905: 0x88AD, - 22473 - 11905: 0x88AE, - 22474 - 11905: 0x88AF, - 22475 - 11905: 0xC2F1, - 22476 - 11905: 0x88B0, - 22477 - 11905: 0x88B1, - 22478 - 11905: 0xB3C7, - 22479 - 11905: 0xDBEF, - 22480 - 11905: 0x88B2, - 22481 - 11905: 0x88B3, - 22482 - 11905: 0xDBF8, - 22483 - 11905: 0x88B4, - 22484 - 11905: 0xC6D2, - 22485 - 11905: 0xDBF4, - 22486 - 11905: 0x88B5, - 22487 - 11905: 0x88B6, - 22488 - 11905: 0xDBF5, - 22489 - 11905: 0xDBF7, - 22490 - 11905: 0xDBF6, - 22491 - 11905: 0x88B7, - 22492 - 11905: 0x88B8, - 22493 - 11905: 0xDBFE, - 22494 - 11905: 0x88B9, - 22495 - 11905: 0xD3F2, - 22496 - 11905: 0xB2BA, - 22497 - 11905: 0x88BA, - 22498 - 11905: 0x88BB, - 22499 - 11905: 0x88BC, - 22500 - 11905: 0xDBFD, - 22501 - 11905: 0x88BD, - 22502 - 11905: 0x88BE, - 22503 - 11905: 0x88BF, - 22504 - 11905: 0x88C0, - 22505 - 11905: 0x88C1, - 22506 - 11905: 0x88C2, - 22507 - 11905: 0x88C3, - 22508 - 11905: 0x88C4, - 22509 - 11905: 0xDCA4, - 22510 - 11905: 0x88C5, - 22511 - 11905: 0xDBFB, - 22512 - 11905: 0x88C6, - 22513 - 11905: 0x88C7, - 22514 - 11905: 0x88C8, - 22515 - 11905: 0x88C9, - 22516 - 11905: 0xDBFA, - 22517 - 11905: 0x88CA, - 22518 - 11905: 0x88CB, - 22519 - 11905: 0x88CC, - 22520 - 11905: 0xDBFC, - 22521 - 11905: 0xC5E0, - 22522 - 11905: 0xBBF9, - 22523 - 11905: 0x88CD, - 22524 - 11905: 0x88CE, - 22525 - 11905: 0xDCA3, - 22526 - 11905: 0x88CF, - 22527 - 11905: 0x88D0, - 22528 - 11905: 0xDCA5, - 22529 - 11905: 0x88D1, - 22530 - 11905: 0xCCC3, - 22531 - 11905: 0x88D2, - 22532 - 11905: 0x88D3, - 22533 - 11905: 0x88D4, - 22534 - 11905: 0xB6D1, - 22535 - 11905: 0xDDC0, - 22536 - 11905: 0x88D5, - 22537 - 11905: 0x88D6, - 22538 - 11905: 0x88D7, - 22539 - 11905: 0xDCA1, - 22540 - 11905: 0x88D8, - 22541 - 11905: 0xDCA2, - 22542 - 11905: 0x88D9, - 22543 - 11905: 0x88DA, - 22544 - 11905: 0x88DB, - 22545 - 11905: 0xC7B5, - 22546 - 11905: 0x88DC, - 22547 - 11905: 0x88DD, - 22548 - 11905: 0x88DE, - 22549 - 11905: 0xB6E9, - 22550 - 11905: 0x88DF, - 22551 - 11905: 0x88E0, - 22552 - 11905: 0x88E1, - 22553 - 11905: 0xDCA7, - 22554 - 11905: 0x88E2, - 22555 - 11905: 0x88E3, - 22556 - 11905: 0x88E4, - 22557 - 11905: 0x88E5, - 22558 - 11905: 0xDCA6, - 22559 - 11905: 0x88E6, - 22560 - 11905: 0xDCA9, - 22561 - 11905: 0xB1A4, - 22562 - 11905: 0x88E7, - 22563 - 11905: 0x88E8, - 22564 - 11905: 0xB5CC, - 22565 - 11905: 0x88E9, - 22566 - 11905: 0x88EA, - 22567 - 11905: 0x88EB, - 22568 - 11905: 0x88EC, - 22569 - 11905: 0x88ED, - 22570 - 11905: 0xBFB0, - 22571 - 11905: 0x88EE, - 22572 - 11905: 0x88EF, - 22573 - 11905: 0x88F0, - 22574 - 11905: 0x88F1, - 22575 - 11905: 0x88F2, - 22576 - 11905: 0xD1DF, - 22577 - 11905: 0x88F3, - 22578 - 11905: 0x88F4, - 22579 - 11905: 0x88F5, - 22580 - 11905: 0x88F6, - 22581 - 11905: 0xB6C2, - 22582 - 11905: 0x88F7, - 22583 - 11905: 0x88F8, - 22584 - 11905: 0x88F9, - 22585 - 11905: 0x88FA, - 22586 - 11905: 0x88FB, - 22587 - 11905: 0x88FC, - 22588 - 11905: 0x88FD, - 22589 - 11905: 0x88FE, - 22590 - 11905: 0x8940, - 22591 - 11905: 0x8941, - 22592 - 11905: 0x8942, - 22593 - 11905: 0x8943, - 22594 - 11905: 0x8944, - 22595 - 11905: 0x8945, - 22596 - 11905: 0xDCA8, - 22597 - 11905: 0x8946, - 22598 - 11905: 0x8947, - 22599 - 11905: 0x8948, - 22600 - 11905: 0x8949, - 22601 - 11905: 0x894A, - 22602 - 11905: 0x894B, - 22603 - 11905: 0x894C, - 22604 - 11905: 0xCBFA, - 22605 - 11905: 0xEBF3, - 22606 - 11905: 0x894D, - 22607 - 11905: 0x894E, - 22608 - 11905: 0x894F, - 22609 - 11905: 0xCBDC, - 22610 - 11905: 0x8950, - 22611 - 11905: 0x8951, - 22612 - 11905: 0xCBFE, - 22613 - 11905: 0x8952, - 22614 - 11905: 0x8953, - 22615 - 11905: 0x8954, - 22616 - 11905: 0xCCC1, - 22617 - 11905: 0x8955, - 22618 - 11905: 0x8956, - 22619 - 11905: 0x8957, - 22620 - 11905: 0x8958, - 22621 - 11905: 0x8959, - 22622 - 11905: 0xC8FB, - 22623 - 11905: 0x895A, - 22624 - 11905: 0x895B, - 22625 - 11905: 0x895C, - 22626 - 11905: 0x895D, - 22627 - 11905: 0x895E, - 22628 - 11905: 0x895F, - 22629 - 11905: 0xDCAA, - 22630 - 11905: 0x8960, - 22631 - 11905: 0x8961, - 22632 - 11905: 0x8962, - 22633 - 11905: 0x8963, - 22634 - 11905: 0x8964, - 22635 - 11905: 0xCCEE, - 22636 - 11905: 0xDCAB, - 22637 - 11905: 0x8965, - 22638 - 11905: 0x8966, - 22639 - 11905: 0x8967, - 22640 - 11905: 0x8968, - 22641 - 11905: 0x8969, - 22642 - 11905: 0x896A, - 22643 - 11905: 0x896B, - 22644 - 11905: 0x896C, - 22645 - 11905: 0x896D, - 22646 - 11905: 0x896E, - 22647 - 11905: 0x896F, - 22648 - 11905: 0x8970, - 22649 - 11905: 0x8971, - 22650 - 11905: 0x8972, - 22651 - 11905: 0x8973, - 22652 - 11905: 0x8974, - 22653 - 11905: 0x8975, - 22654 - 11905: 0xDBD3, - 22655 - 11905: 0x8976, - 22656 - 11905: 0xDCAF, - 22657 - 11905: 0xDCAC, - 22658 - 11905: 0x8977, - 22659 - 11905: 0xBEB3, - 22660 - 11905: 0x8978, - 22661 - 11905: 0xCAFB, - 22662 - 11905: 0x8979, - 22663 - 11905: 0x897A, - 22664 - 11905: 0x897B, - 22665 - 11905: 0xDCAD, - 22666 - 11905: 0x897C, - 22667 - 11905: 0x897D, - 22668 - 11905: 0x897E, - 22669 - 11905: 0x8980, - 22670 - 11905: 0x8981, - 22671 - 11905: 0x8982, - 22672 - 11905: 0x8983, - 22673 - 11905: 0x8984, - 22674 - 11905: 0xC9CA, - 22675 - 11905: 0xC4B9, - 22676 - 11905: 0x8985, - 22677 - 11905: 0x8986, - 22678 - 11905: 0x8987, - 22679 - 11905: 0x8988, - 22680 - 11905: 0x8989, - 22681 - 11905: 0xC7BD, - 22682 - 11905: 0xDCAE, - 22683 - 11905: 0x898A, - 22684 - 11905: 0x898B, - 22685 - 11905: 0x898C, - 22686 - 11905: 0xD4F6, - 22687 - 11905: 0xD0E6, - 22688 - 11905: 0x898D, - 22689 - 11905: 0x898E, - 22690 - 11905: 0x898F, - 22691 - 11905: 0x8990, - 22692 - 11905: 0x8991, - 22693 - 11905: 0x8992, - 22694 - 11905: 0x8993, - 22695 - 11905: 0x8994, - 22696 - 11905: 0xC4AB, - 22697 - 11905: 0xB6D5, - 22698 - 11905: 0x8995, - 22699 - 11905: 0x8996, - 22700 - 11905: 0x8997, - 22701 - 11905: 0x8998, - 22702 - 11905: 0x8999, - 22703 - 11905: 0x899A, - 22704 - 11905: 0x899B, - 22705 - 11905: 0x899C, - 22706 - 11905: 0x899D, - 22707 - 11905: 0x899E, - 22708 - 11905: 0x899F, - 22709 - 11905: 0x89A0, - 22710 - 11905: 0x89A1, - 22711 - 11905: 0x89A2, - 22712 - 11905: 0x89A3, - 22713 - 11905: 0x89A4, - 22714 - 11905: 0x89A5, - 22715 - 11905: 0x89A6, - 22716 - 11905: 0xDBD4, - 22717 - 11905: 0x89A7, - 22718 - 11905: 0x89A8, - 22719 - 11905: 0x89A9, - 22720 - 11905: 0x89AA, - 22721 - 11905: 0xB1DA, - 22722 - 11905: 0x89AB, - 22723 - 11905: 0x89AC, - 22724 - 11905: 0x89AD, - 22725 - 11905: 0xDBD5, - 22726 - 11905: 0x89AE, - 22727 - 11905: 0x89AF, - 22728 - 11905: 0x89B0, - 22729 - 11905: 0x89B1, - 22730 - 11905: 0x89B2, - 22731 - 11905: 0x89B3, - 22732 - 11905: 0x89B4, - 22733 - 11905: 0x89B5, - 22734 - 11905: 0x89B6, - 22735 - 11905: 0x89B7, - 22736 - 11905: 0x89B8, - 22737 - 11905: 0xDBD6, - 22738 - 11905: 0x89B9, - 22739 - 11905: 0x89BA, - 22740 - 11905: 0x89BB, - 22741 - 11905: 0xBABE, - 22742 - 11905: 0x89BC, - 22743 - 11905: 0x89BD, - 22744 - 11905: 0x89BE, - 22745 - 11905: 0x89BF, - 22746 - 11905: 0x89C0, - 22747 - 11905: 0x89C1, - 22748 - 11905: 0x89C2, - 22749 - 11905: 0x89C3, - 22750 - 11905: 0x89C4, - 22751 - 11905: 0x89C5, - 22752 - 11905: 0x89C6, - 22753 - 11905: 0x89C7, - 22754 - 11905: 0x89C8, - 22755 - 11905: 0x89C9, - 22756 - 11905: 0xC8C0, - 22757 - 11905: 0x89CA, - 22758 - 11905: 0x89CB, - 22759 - 11905: 0x89CC, - 22760 - 11905: 0x89CD, - 22761 - 11905: 0x89CE, - 22762 - 11905: 0x89CF, - 22763 - 11905: 0xCABF, - 22764 - 11905: 0xC8C9, - 22765 - 11905: 0x89D0, - 22766 - 11905: 0xD7B3, - 22767 - 11905: 0x89D1, - 22768 - 11905: 0xC9F9, - 22769 - 11905: 0x89D2, - 22770 - 11905: 0x89D3, - 22771 - 11905: 0xBFC7, - 22772 - 11905: 0x89D4, - 22773 - 11905: 0x89D5, - 22774 - 11905: 0xBAF8, - 22775 - 11905: 0x89D6, - 22776 - 11905: 0x89D7, - 22777 - 11905: 0xD2BC, - 22778 - 11905: 0x89D8, - 22779 - 11905: 0x89D9, - 22780 - 11905: 0x89DA, - 22781 - 11905: 0x89DB, - 22782 - 11905: 0x89DC, - 22783 - 11905: 0x89DD, - 22784 - 11905: 0x89DE, - 22785 - 11905: 0x89DF, - 22786 - 11905: 0xE2BA, - 22787 - 11905: 0x89E0, - 22788 - 11905: 0xB4A6, - 22789 - 11905: 0x89E1, - 22790 - 11905: 0x89E2, - 22791 - 11905: 0xB1B8, - 22792 - 11905: 0x89E3, - 22793 - 11905: 0x89E4, - 22794 - 11905: 0x89E5, - 22795 - 11905: 0x89E6, - 22796 - 11905: 0x89E7, - 22797 - 11905: 0xB8B4, - 22798 - 11905: 0x89E8, - 22799 - 11905: 0xCFC4, - 22800 - 11905: 0x89E9, - 22801 - 11905: 0x89EA, - 22802 - 11905: 0x89EB, - 22803 - 11905: 0x89EC, - 22804 - 11905: 0xD9E7, - 22805 - 11905: 0xCFA6, - 22806 - 11905: 0xCDE2, - 22807 - 11905: 0x89ED, - 22808 - 11905: 0x89EE, - 22809 - 11905: 0xD9ED, - 22810 - 11905: 0xB6E0, - 22811 - 11905: 0x89EF, - 22812 - 11905: 0xD2B9, - 22813 - 11905: 0x89F0, - 22814 - 11905: 0x89F1, - 22815 - 11905: 0xB9BB, - 22816 - 11905: 0x89F2, - 22817 - 11905: 0x89F3, - 22818 - 11905: 0x89F4, - 22819 - 11905: 0x89F5, - 22820 - 11905: 0xE2B9, - 22821 - 11905: 0xE2B7, - 22822 - 11905: 0x89F6, - 22823 - 11905: 0xB4F3, - 22824 - 11905: 0x89F7, - 22825 - 11905: 0xCCEC, - 22826 - 11905: 0xCCAB, - 22827 - 11905: 0xB7F2, - 22828 - 11905: 0x89F8, - 22829 - 11905: 0xD8B2, - 22830 - 11905: 0xD1EB, - 22831 - 11905: 0xBABB, - 22832 - 11905: 0x89F9, - 22833 - 11905: 0xCAA7, - 22834 - 11905: 0x89FA, - 22835 - 11905: 0x89FB, - 22836 - 11905: 0xCDB7, - 22837 - 11905: 0x89FC, - 22838 - 11905: 0x89FD, - 22839 - 11905: 0xD2C4, - 22840 - 11905: 0xBFE4, - 22841 - 11905: 0xBCD0, - 22842 - 11905: 0xB6E1, - 22843 - 11905: 0x89FE, - 22844 - 11905: 0xDEC5, - 22845 - 11905: 0x8A40, - 22846 - 11905: 0x8A41, - 22847 - 11905: 0x8A42, - 22848 - 11905: 0x8A43, - 22849 - 11905: 0xDEC6, - 22850 - 11905: 0xDBBC, - 22851 - 11905: 0x8A44, - 22852 - 11905: 0xD1D9, - 22853 - 11905: 0x8A45, - 22854 - 11905: 0x8A46, - 22855 - 11905: 0xC6E6, - 22856 - 11905: 0xC4CE, - 22857 - 11905: 0xB7EE, - 22858 - 11905: 0x8A47, - 22859 - 11905: 0xB7DC, - 22860 - 11905: 0x8A48, - 22861 - 11905: 0x8A49, - 22862 - 11905: 0xBFFC, - 22863 - 11905: 0xD7E0, - 22864 - 11905: 0x8A4A, - 22865 - 11905: 0xC6F5, - 22866 - 11905: 0x8A4B, - 22867 - 11905: 0x8A4C, - 22868 - 11905: 0xB1BC, - 22869 - 11905: 0xDEC8, - 22870 - 11905: 0xBDB1, - 22871 - 11905: 0xCCD7, - 22872 - 11905: 0xDECA, - 22873 - 11905: 0x8A4D, - 22874 - 11905: 0xDEC9, - 22875 - 11905: 0x8A4E, - 22876 - 11905: 0x8A4F, - 22877 - 11905: 0x8A50, - 22878 - 11905: 0x8A51, - 22879 - 11905: 0x8A52, - 22880 - 11905: 0xB5EC, - 22881 - 11905: 0x8A53, - 22882 - 11905: 0xC9DD, - 22883 - 11905: 0x8A54, - 22884 - 11905: 0x8A55, - 22885 - 11905: 0xB0C2, - 22886 - 11905: 0x8A56, - 22887 - 11905: 0x8A57, - 22888 - 11905: 0x8A58, - 22889 - 11905: 0x8A59, - 22890 - 11905: 0x8A5A, - 22891 - 11905: 0x8A5B, - 22892 - 11905: 0x8A5C, - 22893 - 11905: 0x8A5D, - 22894 - 11905: 0x8A5E, - 22895 - 11905: 0x8A5F, - 22896 - 11905: 0x8A60, - 22897 - 11905: 0x8A61, - 22898 - 11905: 0x8A62, - 22899 - 11905: 0xC5AE, - 22900 - 11905: 0xC5AB, - 22901 - 11905: 0x8A63, - 22902 - 11905: 0xC4CC, - 22903 - 11905: 0x8A64, - 22904 - 11905: 0xBCE9, - 22905 - 11905: 0xCBFD, - 22906 - 11905: 0x8A65, - 22907 - 11905: 0x8A66, - 22908 - 11905: 0x8A67, - 22909 - 11905: 0xBAC3, - 22910 - 11905: 0x8A68, - 22911 - 11905: 0x8A69, - 22912 - 11905: 0x8A6A, - 22913 - 11905: 0xE5F9, - 22914 - 11905: 0xC8E7, - 22915 - 11905: 0xE5FA, - 22916 - 11905: 0xCDFD, - 22917 - 11905: 0x8A6B, - 22918 - 11905: 0xD7B1, - 22919 - 11905: 0xB8BE, - 22920 - 11905: 0xC2E8, - 22921 - 11905: 0x8A6C, - 22922 - 11905: 0xC8D1, - 22923 - 11905: 0x8A6D, - 22924 - 11905: 0x8A6E, - 22925 - 11905: 0xE5FB, - 22926 - 11905: 0x8A6F, - 22927 - 11905: 0x8A70, - 22928 - 11905: 0x8A71, - 22929 - 11905: 0x8A72, - 22930 - 11905: 0xB6CA, - 22931 - 11905: 0xBCCB, - 22932 - 11905: 0x8A73, - 22933 - 11905: 0x8A74, - 22934 - 11905: 0xD1FD, - 22935 - 11905: 0xE6A1, - 22936 - 11905: 0x8A75, - 22937 - 11905: 0xC3EE, - 22938 - 11905: 0x8A76, - 22939 - 11905: 0x8A77, - 22940 - 11905: 0x8A78, - 22941 - 11905: 0x8A79, - 22942 - 11905: 0xE6A4, - 22943 - 11905: 0x8A7A, - 22944 - 11905: 0x8A7B, - 22945 - 11905: 0x8A7C, - 22946 - 11905: 0x8A7D, - 22947 - 11905: 0xE5FE, - 22948 - 11905: 0xE6A5, - 22949 - 11905: 0xCDD7, - 22950 - 11905: 0x8A7E, - 22951 - 11905: 0x8A80, - 22952 - 11905: 0xB7C1, - 22953 - 11905: 0xE5FC, - 22954 - 11905: 0xE5FD, - 22955 - 11905: 0xE6A3, - 22956 - 11905: 0x8A81, - 22957 - 11905: 0x8A82, - 22958 - 11905: 0xC4DD, - 22959 - 11905: 0xE6A8, - 22960 - 11905: 0x8A83, - 22961 - 11905: 0x8A84, - 22962 - 11905: 0xE6A7, - 22963 - 11905: 0x8A85, - 22964 - 11905: 0x8A86, - 22965 - 11905: 0x8A87, - 22966 - 11905: 0x8A88, - 22967 - 11905: 0x8A89, - 22968 - 11905: 0x8A8A, - 22969 - 11905: 0xC3C3, - 22970 - 11905: 0x8A8B, - 22971 - 11905: 0xC6DE, - 22972 - 11905: 0x8A8C, - 22973 - 11905: 0x8A8D, - 22974 - 11905: 0xE6AA, - 22975 - 11905: 0x8A8E, - 22976 - 11905: 0x8A8F, - 22977 - 11905: 0x8A90, - 22978 - 11905: 0x8A91, - 22979 - 11905: 0x8A92, - 22980 - 11905: 0x8A93, - 22981 - 11905: 0x8A94, - 22982 - 11905: 0xC4B7, - 22983 - 11905: 0x8A95, - 22984 - 11905: 0x8A96, - 22985 - 11905: 0x8A97, - 22986 - 11905: 0xE6A2, - 22987 - 11905: 0xCABC, - 22988 - 11905: 0x8A98, - 22989 - 11905: 0x8A99, - 22990 - 11905: 0x8A9A, - 22991 - 11905: 0x8A9B, - 22992 - 11905: 0xBDE3, - 22993 - 11905: 0xB9C3, - 22994 - 11905: 0xE6A6, - 22995 - 11905: 0xD0D5, - 22996 - 11905: 0xCEAF, - 22997 - 11905: 0x8A9C, - 22998 - 11905: 0x8A9D, - 22999 - 11905: 0xE6A9, - 23000 - 11905: 0xE6B0, - 23001 - 11905: 0x8A9E, - 23002 - 11905: 0xD2A6, - 23003 - 11905: 0x8A9F, - 23004 - 11905: 0xBDAA, - 23005 - 11905: 0xE6AD, - 23006 - 11905: 0x8AA0, - 23007 - 11905: 0x8AA1, - 23008 - 11905: 0x8AA2, - 23009 - 11905: 0x8AA3, - 23010 - 11905: 0x8AA4, - 23011 - 11905: 0xE6AF, - 23012 - 11905: 0x8AA5, - 23013 - 11905: 0xC0D1, - 23014 - 11905: 0x8AA6, - 23015 - 11905: 0x8AA7, - 23016 - 11905: 0xD2CC, - 23017 - 11905: 0x8AA8, - 23018 - 11905: 0x8AA9, - 23019 - 11905: 0x8AAA, - 23020 - 11905: 0xBCA7, - 23021 - 11905: 0x8AAB, - 23022 - 11905: 0x8AAC, - 23023 - 11905: 0x8AAD, - 23024 - 11905: 0x8AAE, - 23025 - 11905: 0x8AAF, - 23026 - 11905: 0x8AB0, - 23027 - 11905: 0x8AB1, - 23028 - 11905: 0x8AB2, - 23029 - 11905: 0x8AB3, - 23030 - 11905: 0x8AB4, - 23031 - 11905: 0x8AB5, - 23032 - 11905: 0x8AB6, - 23033 - 11905: 0xE6B1, - 23034 - 11905: 0x8AB7, - 23035 - 11905: 0xD2F6, - 23036 - 11905: 0x8AB8, - 23037 - 11905: 0x8AB9, - 23038 - 11905: 0x8ABA, - 23039 - 11905: 0xD7CB, - 23040 - 11905: 0x8ABB, - 23041 - 11905: 0xCDFE, - 23042 - 11905: 0x8ABC, - 23043 - 11905: 0xCDDE, - 23044 - 11905: 0xC2A6, - 23045 - 11905: 0xE6AB, - 23046 - 11905: 0xE6AC, - 23047 - 11905: 0xBDBF, - 23048 - 11905: 0xE6AE, - 23049 - 11905: 0xE6B3, - 23050 - 11905: 0x8ABD, - 23051 - 11905: 0x8ABE, - 23052 - 11905: 0xE6B2, - 23053 - 11905: 0x8ABF, - 23054 - 11905: 0x8AC0, - 23055 - 11905: 0x8AC1, - 23056 - 11905: 0x8AC2, - 23057 - 11905: 0xE6B6, - 23058 - 11905: 0x8AC3, - 23059 - 11905: 0xE6B8, - 23060 - 11905: 0x8AC4, - 23061 - 11905: 0x8AC5, - 23062 - 11905: 0x8AC6, - 23063 - 11905: 0x8AC7, - 23064 - 11905: 0xC4EF, - 23065 - 11905: 0x8AC8, - 23066 - 11905: 0x8AC9, - 23067 - 11905: 0x8ACA, - 23068 - 11905: 0xC4C8, - 23069 - 11905: 0x8ACB, - 23070 - 11905: 0x8ACC, - 23071 - 11905: 0xBEEA, - 23072 - 11905: 0xC9EF, - 23073 - 11905: 0x8ACD, - 23074 - 11905: 0x8ACE, - 23075 - 11905: 0xE6B7, - 23076 - 11905: 0x8ACF, - 23077 - 11905: 0xB6F0, - 23078 - 11905: 0x8AD0, - 23079 - 11905: 0x8AD1, - 23080 - 11905: 0x8AD2, - 23081 - 11905: 0xC3E4, - 23082 - 11905: 0x8AD3, - 23083 - 11905: 0x8AD4, - 23084 - 11905: 0x8AD5, - 23085 - 11905: 0x8AD6, - 23086 - 11905: 0x8AD7, - 23087 - 11905: 0x8AD8, - 23088 - 11905: 0x8AD9, - 23089 - 11905: 0xD3E9, - 23090 - 11905: 0xE6B4, - 23091 - 11905: 0x8ADA, - 23092 - 11905: 0xE6B5, - 23093 - 11905: 0x8ADB, - 23094 - 11905: 0xC8A2, - 23095 - 11905: 0x8ADC, - 23096 - 11905: 0x8ADD, - 23097 - 11905: 0x8ADE, - 23098 - 11905: 0x8ADF, - 23099 - 11905: 0x8AE0, - 23100 - 11905: 0xE6BD, - 23101 - 11905: 0x8AE1, - 23102 - 11905: 0x8AE2, - 23103 - 11905: 0x8AE3, - 23104 - 11905: 0xE6B9, - 23105 - 11905: 0x8AE4, - 23106 - 11905: 0x8AE5, - 23107 - 11905: 0x8AE6, - 23108 - 11905: 0x8AE7, - 23109 - 11905: 0x8AE8, - 23110 - 11905: 0xC6C5, - 23111 - 11905: 0x8AE9, - 23112 - 11905: 0x8AEA, - 23113 - 11905: 0xCDF1, - 23114 - 11905: 0xE6BB, - 23115 - 11905: 0x8AEB, - 23116 - 11905: 0x8AEC, - 23117 - 11905: 0x8AED, - 23118 - 11905: 0x8AEE, - 23119 - 11905: 0x8AEF, - 23120 - 11905: 0x8AF0, - 23121 - 11905: 0x8AF1, - 23122 - 11905: 0x8AF2, - 23123 - 11905: 0x8AF3, - 23124 - 11905: 0x8AF4, - 23125 - 11905: 0xE6BC, - 23126 - 11905: 0x8AF5, - 23127 - 11905: 0x8AF6, - 23128 - 11905: 0x8AF7, - 23129 - 11905: 0x8AF8, - 23130 - 11905: 0xBBE9, - 23131 - 11905: 0x8AF9, - 23132 - 11905: 0x8AFA, - 23133 - 11905: 0x8AFB, - 23134 - 11905: 0x8AFC, - 23135 - 11905: 0x8AFD, - 23136 - 11905: 0x8AFE, - 23137 - 11905: 0x8B40, - 23138 - 11905: 0xE6BE, - 23139 - 11905: 0x8B41, - 23140 - 11905: 0x8B42, - 23141 - 11905: 0x8B43, - 23142 - 11905: 0x8B44, - 23143 - 11905: 0xE6BA, - 23144 - 11905: 0x8B45, - 23145 - 11905: 0x8B46, - 23146 - 11905: 0xC0B7, - 23147 - 11905: 0x8B47, - 23148 - 11905: 0x8B48, - 23149 - 11905: 0x8B49, - 23150 - 11905: 0x8B4A, - 23151 - 11905: 0x8B4B, - 23152 - 11905: 0x8B4C, - 23153 - 11905: 0x8B4D, - 23154 - 11905: 0x8B4E, - 23155 - 11905: 0x8B4F, - 23156 - 11905: 0xD3A4, - 23157 - 11905: 0xE6BF, - 23158 - 11905: 0xC9F4, - 23159 - 11905: 0xE6C3, - 23160 - 11905: 0x8B50, - 23161 - 11905: 0x8B51, - 23162 - 11905: 0xE6C4, - 23163 - 11905: 0x8B52, - 23164 - 11905: 0x8B53, - 23165 - 11905: 0x8B54, - 23166 - 11905: 0x8B55, - 23167 - 11905: 0xD0F6, - 23168 - 11905: 0x8B56, - 23169 - 11905: 0x8B57, - 23170 - 11905: 0x8B58, - 23171 - 11905: 0x8B59, - 23172 - 11905: 0x8B5A, - 23173 - 11905: 0x8B5B, - 23174 - 11905: 0x8B5C, - 23175 - 11905: 0x8B5D, - 23176 - 11905: 0x8B5E, - 23177 - 11905: 0x8B5F, - 23178 - 11905: 0x8B60, - 23179 - 11905: 0x8B61, - 23180 - 11905: 0x8B62, - 23181 - 11905: 0x8B63, - 23182 - 11905: 0x8B64, - 23183 - 11905: 0x8B65, - 23184 - 11905: 0x8B66, - 23185 - 11905: 0x8B67, - 23186 - 11905: 0xC3BD, - 23187 - 11905: 0x8B68, - 23188 - 11905: 0x8B69, - 23189 - 11905: 0x8B6A, - 23190 - 11905: 0x8B6B, - 23191 - 11905: 0x8B6C, - 23192 - 11905: 0x8B6D, - 23193 - 11905: 0x8B6E, - 23194 - 11905: 0xC3C4, - 23195 - 11905: 0xE6C2, - 23196 - 11905: 0x8B6F, - 23197 - 11905: 0x8B70, - 23198 - 11905: 0x8B71, - 23199 - 11905: 0x8B72, - 23200 - 11905: 0x8B73, - 23201 - 11905: 0x8B74, - 23202 - 11905: 0x8B75, - 23203 - 11905: 0x8B76, - 23204 - 11905: 0x8B77, - 23205 - 11905: 0x8B78, - 23206 - 11905: 0x8B79, - 23207 - 11905: 0x8B7A, - 23208 - 11905: 0x8B7B, - 23209 - 11905: 0x8B7C, - 23210 - 11905: 0xE6C1, - 23211 - 11905: 0x8B7D, - 23212 - 11905: 0x8B7E, - 23213 - 11905: 0x8B80, - 23214 - 11905: 0x8B81, - 23215 - 11905: 0x8B82, - 23216 - 11905: 0x8B83, - 23217 - 11905: 0x8B84, - 23218 - 11905: 0xE6C7, - 23219 - 11905: 0xCFB1, - 23220 - 11905: 0x8B85, - 23221 - 11905: 0xEBF4, - 23222 - 11905: 0x8B86, - 23223 - 11905: 0x8B87, - 23224 - 11905: 0xE6CA, - 23225 - 11905: 0x8B88, - 23226 - 11905: 0x8B89, - 23227 - 11905: 0x8B8A, - 23228 - 11905: 0x8B8B, - 23229 - 11905: 0x8B8C, - 23230 - 11905: 0xE6C5, - 23231 - 11905: 0x8B8D, - 23232 - 11905: 0x8B8E, - 23233 - 11905: 0xBCDE, - 23234 - 11905: 0xC9A9, - 23235 - 11905: 0x8B8F, - 23236 - 11905: 0x8B90, - 23237 - 11905: 0x8B91, - 23238 - 11905: 0x8B92, - 23239 - 11905: 0x8B93, - 23240 - 11905: 0x8B94, - 23241 - 11905: 0xBCB5, - 23242 - 11905: 0x8B95, - 23243 - 11905: 0x8B96, - 23244 - 11905: 0xCFD3, - 23245 - 11905: 0x8B97, - 23246 - 11905: 0x8B98, - 23247 - 11905: 0x8B99, - 23248 - 11905: 0x8B9A, - 23249 - 11905: 0x8B9B, - 23250 - 11905: 0xE6C8, - 23251 - 11905: 0x8B9C, - 23252 - 11905: 0xE6C9, - 23253 - 11905: 0x8B9D, - 23254 - 11905: 0xE6CE, - 23255 - 11905: 0x8B9E, - 23256 - 11905: 0xE6D0, - 23257 - 11905: 0x8B9F, - 23258 - 11905: 0x8BA0, - 23259 - 11905: 0x8BA1, - 23260 - 11905: 0xE6D1, - 23261 - 11905: 0x8BA2, - 23262 - 11905: 0x8BA3, - 23263 - 11905: 0x8BA4, - 23264 - 11905: 0xE6CB, - 23265 - 11905: 0xB5D5, - 23266 - 11905: 0x8BA5, - 23267 - 11905: 0xE6CC, - 23268 - 11905: 0x8BA6, - 23269 - 11905: 0x8BA7, - 23270 - 11905: 0xE6CF, - 23271 - 11905: 0x8BA8, - 23272 - 11905: 0x8BA9, - 23273 - 11905: 0xC4DB, - 23274 - 11905: 0x8BAA, - 23275 - 11905: 0xE6C6, - 23276 - 11905: 0x8BAB, - 23277 - 11905: 0x8BAC, - 23278 - 11905: 0x8BAD, - 23279 - 11905: 0x8BAE, - 23280 - 11905: 0x8BAF, - 23281 - 11905: 0xE6CD, - 23282 - 11905: 0x8BB0, - 23283 - 11905: 0x8BB1, - 23284 - 11905: 0x8BB2, - 23285 - 11905: 0x8BB3, - 23286 - 11905: 0x8BB4, - 23287 - 11905: 0x8BB5, - 23288 - 11905: 0x8BB6, - 23289 - 11905: 0x8BB7, - 23290 - 11905: 0x8BB8, - 23291 - 11905: 0x8BB9, - 23292 - 11905: 0x8BBA, - 23293 - 11905: 0x8BBB, - 23294 - 11905: 0x8BBC, - 23295 - 11905: 0x8BBD, - 23296 - 11905: 0x8BBE, - 23297 - 11905: 0x8BBF, - 23298 - 11905: 0x8BC0, - 23299 - 11905: 0x8BC1, - 23300 - 11905: 0x8BC2, - 23301 - 11905: 0x8BC3, - 23302 - 11905: 0x8BC4, - 23303 - 11905: 0x8BC5, - 23304 - 11905: 0x8BC6, - 23305 - 11905: 0xE6D2, - 23306 - 11905: 0x8BC7, - 23307 - 11905: 0x8BC8, - 23308 - 11905: 0x8BC9, - 23309 - 11905: 0x8BCA, - 23310 - 11905: 0x8BCB, - 23311 - 11905: 0x8BCC, - 23312 - 11905: 0x8BCD, - 23313 - 11905: 0x8BCE, - 23314 - 11905: 0x8BCF, - 23315 - 11905: 0x8BD0, - 23316 - 11905: 0x8BD1, - 23317 - 11905: 0x8BD2, - 23318 - 11905: 0xE6D4, - 23319 - 11905: 0xE6D3, - 23320 - 11905: 0x8BD3, - 23321 - 11905: 0x8BD4, - 23322 - 11905: 0x8BD5, - 23323 - 11905: 0x8BD6, - 23324 - 11905: 0x8BD7, - 23325 - 11905: 0x8BD8, - 23326 - 11905: 0x8BD9, - 23327 - 11905: 0x8BDA, - 23328 - 11905: 0x8BDB, - 23329 - 11905: 0x8BDC, - 23330 - 11905: 0x8BDD, - 23331 - 11905: 0x8BDE, - 23332 - 11905: 0x8BDF, - 23333 - 11905: 0x8BE0, - 23334 - 11905: 0x8BE1, - 23335 - 11905: 0x8BE2, - 23336 - 11905: 0x8BE3, - 23337 - 11905: 0x8BE4, - 23338 - 11905: 0x8BE5, - 23339 - 11905: 0x8BE6, - 23340 - 11905: 0x8BE7, - 23341 - 11905: 0x8BE8, - 23342 - 11905: 0x8BE9, - 23343 - 11905: 0x8BEA, - 23344 - 11905: 0x8BEB, - 23345 - 11905: 0x8BEC, - 23346 - 11905: 0xE6D5, - 23347 - 11905: 0x8BED, - 23348 - 11905: 0xD9F8, - 23349 - 11905: 0x8BEE, - 23350 - 11905: 0x8BEF, - 23351 - 11905: 0xE6D6, - 23352 - 11905: 0x8BF0, - 23353 - 11905: 0x8BF1, - 23354 - 11905: 0x8BF2, - 23355 - 11905: 0x8BF3, - 23356 - 11905: 0x8BF4, - 23357 - 11905: 0x8BF5, - 23358 - 11905: 0x8BF6, - 23359 - 11905: 0x8BF7, - 23360 - 11905: 0xE6D7, - 23361 - 11905: 0x8BF8, - 23362 - 11905: 0x8BF9, - 23363 - 11905: 0x8BFA, - 23364 - 11905: 0x8BFB, - 23365 - 11905: 0x8BFC, - 23366 - 11905: 0x8BFD, - 23367 - 11905: 0x8BFE, - 23368 - 11905: 0x8C40, - 23369 - 11905: 0x8C41, - 23370 - 11905: 0x8C42, - 23371 - 11905: 0x8C43, - 23372 - 11905: 0x8C44, - 23373 - 11905: 0x8C45, - 23374 - 11905: 0x8C46, - 23375 - 11905: 0x8C47, - 23376 - 11905: 0xD7D3, - 23377 - 11905: 0xE6DD, - 23378 - 11905: 0x8C48, - 23379 - 11905: 0xE6DE, - 23380 - 11905: 0xBFD7, - 23381 - 11905: 0xD4D0, - 23382 - 11905: 0x8C49, - 23383 - 11905: 0xD7D6, - 23384 - 11905: 0xB4E6, - 23385 - 11905: 0xCBEF, - 23386 - 11905: 0xE6DA, - 23387 - 11905: 0xD8C3, - 23388 - 11905: 0xD7CE, - 23389 - 11905: 0xD0A2, - 23390 - 11905: 0x8C4A, - 23391 - 11905: 0xC3CF, - 23392 - 11905: 0x8C4B, - 23393 - 11905: 0x8C4C, - 23394 - 11905: 0xE6DF, - 23395 - 11905: 0xBCBE, - 23396 - 11905: 0xB9C2, - 23397 - 11905: 0xE6DB, - 23398 - 11905: 0xD1A7, - 23399 - 11905: 0x8C4D, - 23400 - 11905: 0x8C4E, - 23401 - 11905: 0xBAA2, - 23402 - 11905: 0xC2CF, - 23403 - 11905: 0x8C4F, - 23404 - 11905: 0xD8AB, - 23405 - 11905: 0x8C50, - 23406 - 11905: 0x8C51, - 23407 - 11905: 0x8C52, - 23408 - 11905: 0xCAEB, - 23409 - 11905: 0xE5EE, - 23410 - 11905: 0x8C53, - 23411 - 11905: 0xE6DC, - 23412 - 11905: 0x8C54, - 23413 - 11905: 0xB7F5, - 23414 - 11905: 0x8C55, - 23415 - 11905: 0x8C56, - 23416 - 11905: 0x8C57, - 23417 - 11905: 0x8C58, - 23418 - 11905: 0xC8E6, - 23419 - 11905: 0x8C59, - 23420 - 11905: 0x8C5A, - 23421 - 11905: 0xC4F5, - 23422 - 11905: 0x8C5B, - 23423 - 11905: 0x8C5C, - 23424 - 11905: 0xE5B2, - 23425 - 11905: 0xC4FE, - 23426 - 11905: 0x8C5D, - 23427 - 11905: 0xCBFC, - 23428 - 11905: 0xE5B3, - 23429 - 11905: 0xD5AC, - 23430 - 11905: 0x8C5E, - 23431 - 11905: 0xD3EE, - 23432 - 11905: 0xCAD8, - 23433 - 11905: 0xB0B2, - 23434 - 11905: 0x8C5F, - 23435 - 11905: 0xCBCE, - 23436 - 11905: 0xCDEA, - 23437 - 11905: 0x8C60, - 23438 - 11905: 0x8C61, - 23439 - 11905: 0xBAEA, - 23440 - 11905: 0x8C62, - 23441 - 11905: 0x8C63, - 23442 - 11905: 0x8C64, - 23443 - 11905: 0xE5B5, - 23444 - 11905: 0x8C65, - 23445 - 11905: 0xE5B4, - 23446 - 11905: 0x8C66, - 23447 - 11905: 0xD7DA, - 23448 - 11905: 0xB9D9, - 23449 - 11905: 0xD6E6, - 23450 - 11905: 0xB6A8, - 23451 - 11905: 0xCDF0, - 23452 - 11905: 0xD2CB, - 23453 - 11905: 0xB1A6, - 23454 - 11905: 0xCAB5, - 23455 - 11905: 0x8C67, - 23456 - 11905: 0xB3E8, - 23457 - 11905: 0xC9F3, - 23458 - 11905: 0xBFCD, - 23459 - 11905: 0xD0FB, - 23460 - 11905: 0xCAD2, - 23461 - 11905: 0xE5B6, - 23462 - 11905: 0xBBC2, - 23463 - 11905: 0x8C68, - 23464 - 11905: 0x8C69, - 23465 - 11905: 0x8C6A, - 23466 - 11905: 0xCFDC, - 23467 - 11905: 0xB9AC, - 23468 - 11905: 0x8C6B, - 23469 - 11905: 0x8C6C, - 23470 - 11905: 0x8C6D, - 23471 - 11905: 0x8C6E, - 23472 - 11905: 0xD4D7, - 23473 - 11905: 0x8C6F, - 23474 - 11905: 0x8C70, - 23475 - 11905: 0xBAA6, - 23476 - 11905: 0xD1E7, - 23477 - 11905: 0xCFFC, - 23478 - 11905: 0xBCD2, - 23479 - 11905: 0x8C71, - 23480 - 11905: 0xE5B7, - 23481 - 11905: 0xC8DD, - 23482 - 11905: 0x8C72, - 23483 - 11905: 0x8C73, - 23484 - 11905: 0x8C74, - 23485 - 11905: 0xBFED, - 23486 - 11905: 0xB1F6, - 23487 - 11905: 0xCBDE, - 23488 - 11905: 0x8C75, - 23489 - 11905: 0x8C76, - 23490 - 11905: 0xBCC5, - 23491 - 11905: 0x8C77, - 23492 - 11905: 0xBCC4, - 23493 - 11905: 0xD2FA, - 23494 - 11905: 0xC3DC, - 23495 - 11905: 0xBFDC, - 23496 - 11905: 0x8C78, - 23497 - 11905: 0x8C79, - 23498 - 11905: 0x8C7A, - 23499 - 11905: 0x8C7B, - 23500 - 11905: 0xB8BB, - 23501 - 11905: 0x8C7C, - 23502 - 11905: 0x8C7D, - 23503 - 11905: 0x8C7E, - 23504 - 11905: 0xC3C2, - 23505 - 11905: 0x8C80, - 23506 - 11905: 0xBAAE, - 23507 - 11905: 0xD4A2, - 23508 - 11905: 0x8C81, - 23509 - 11905: 0x8C82, - 23510 - 11905: 0x8C83, - 23511 - 11905: 0x8C84, - 23512 - 11905: 0x8C85, - 23513 - 11905: 0x8C86, - 23514 - 11905: 0x8C87, - 23515 - 11905: 0x8C88, - 23516 - 11905: 0x8C89, - 23517 - 11905: 0xC7DE, - 23518 - 11905: 0xC4AF, - 23519 - 11905: 0xB2EC, - 23520 - 11905: 0x8C8A, - 23521 - 11905: 0xB9D1, - 23522 - 11905: 0x8C8B, - 23523 - 11905: 0x8C8C, - 23524 - 11905: 0xE5BB, - 23525 - 11905: 0xC1C8, - 23526 - 11905: 0x8C8D, - 23527 - 11905: 0x8C8E, - 23528 - 11905: 0xD5AF, - 23529 - 11905: 0x8C8F, - 23530 - 11905: 0x8C90, - 23531 - 11905: 0x8C91, - 23532 - 11905: 0x8C92, - 23533 - 11905: 0x8C93, - 23534 - 11905: 0xE5BC, - 23535 - 11905: 0x8C94, - 23536 - 11905: 0xE5BE, - 23537 - 11905: 0x8C95, - 23538 - 11905: 0x8C96, - 23539 - 11905: 0x8C97, - 23540 - 11905: 0x8C98, - 23541 - 11905: 0x8C99, - 23542 - 11905: 0x8C9A, - 23543 - 11905: 0x8C9B, - 23544 - 11905: 0xB4E7, - 23545 - 11905: 0xB6D4, - 23546 - 11905: 0xCBC2, - 23547 - 11905: 0xD1B0, - 23548 - 11905: 0xB5BC, - 23549 - 11905: 0x8C9C, - 23550 - 11905: 0x8C9D, - 23551 - 11905: 0xCAD9, - 23552 - 11905: 0x8C9E, - 23553 - 11905: 0xB7E2, - 23554 - 11905: 0x8C9F, - 23555 - 11905: 0x8CA0, - 23556 - 11905: 0xC9E4, - 23557 - 11905: 0x8CA1, - 23558 - 11905: 0xBDAB, - 23559 - 11905: 0x8CA2, - 23560 - 11905: 0x8CA3, - 23561 - 11905: 0xCEBE, - 23562 - 11905: 0xD7F0, - 23563 - 11905: 0x8CA4, - 23564 - 11905: 0x8CA5, - 23565 - 11905: 0x8CA6, - 23566 - 11905: 0x8CA7, - 23567 - 11905: 0xD0A1, - 23568 - 11905: 0x8CA8, - 23569 - 11905: 0xC9D9, - 23570 - 11905: 0x8CA9, - 23571 - 11905: 0x8CAA, - 23572 - 11905: 0xB6FB, - 23573 - 11905: 0xE6D8, - 23574 - 11905: 0xBCE2, - 23575 - 11905: 0x8CAB, - 23576 - 11905: 0xB3BE, - 23577 - 11905: 0x8CAC, - 23578 - 11905: 0xC9D0, - 23579 - 11905: 0x8CAD, - 23580 - 11905: 0xE6D9, - 23581 - 11905: 0xB3A2, - 23582 - 11905: 0x8CAE, - 23583 - 11905: 0x8CAF, - 23584 - 11905: 0x8CB0, - 23585 - 11905: 0x8CB1, - 23586 - 11905: 0xDECC, - 23587 - 11905: 0x8CB2, - 23588 - 11905: 0xD3C8, - 23589 - 11905: 0xDECD, - 23590 - 11905: 0x8CB3, - 23591 - 11905: 0xD2A2, - 23592 - 11905: 0x8CB4, - 23593 - 11905: 0x8CB5, - 23594 - 11905: 0x8CB6, - 23595 - 11905: 0x8CB7, - 23596 - 11905: 0xDECE, - 23597 - 11905: 0x8CB8, - 23598 - 11905: 0x8CB9, - 23599 - 11905: 0x8CBA, - 23600 - 11905: 0x8CBB, - 23601 - 11905: 0xBECD, - 23602 - 11905: 0x8CBC, - 23603 - 11905: 0x8CBD, - 23604 - 11905: 0xDECF, - 23605 - 11905: 0x8CBE, - 23606 - 11905: 0x8CBF, - 23607 - 11905: 0x8CC0, - 23608 - 11905: 0xCAAC, - 23609 - 11905: 0xD2FC, - 23610 - 11905: 0xB3DF, - 23611 - 11905: 0xE5EA, - 23612 - 11905: 0xC4E1, - 23613 - 11905: 0xBEA1, - 23614 - 11905: 0xCEB2, - 23615 - 11905: 0xC4F2, - 23616 - 11905: 0xBED6, - 23617 - 11905: 0xC6A8, - 23618 - 11905: 0xB2E3, - 23619 - 11905: 0x8CC1, - 23620 - 11905: 0x8CC2, - 23621 - 11905: 0xBED3, - 23622 - 11905: 0x8CC3, - 23623 - 11905: 0x8CC4, - 23624 - 11905: 0xC7FC, - 23625 - 11905: 0xCCEB, - 23626 - 11905: 0xBDEC, - 23627 - 11905: 0xCEDD, - 23628 - 11905: 0x8CC5, - 23629 - 11905: 0x8CC6, - 23630 - 11905: 0xCABA, - 23631 - 11905: 0xC6C1, - 23632 - 11905: 0xE5EC, - 23633 - 11905: 0xD0BC, - 23634 - 11905: 0x8CC7, - 23635 - 11905: 0x8CC8, - 23636 - 11905: 0x8CC9, - 23637 - 11905: 0xD5B9, - 23638 - 11905: 0x8CCA, - 23639 - 11905: 0x8CCB, - 23640 - 11905: 0x8CCC, - 23641 - 11905: 0xE5ED, - 23642 - 11905: 0x8CCD, - 23643 - 11905: 0x8CCE, - 23644 - 11905: 0x8CCF, - 23645 - 11905: 0x8CD0, - 23646 - 11905: 0xCAF4, - 23647 - 11905: 0x8CD1, - 23648 - 11905: 0xCDC0, - 23649 - 11905: 0xC2C5, - 23650 - 11905: 0x8CD2, - 23651 - 11905: 0xE5EF, - 23652 - 11905: 0x8CD3, - 23653 - 11905: 0xC2C4, - 23654 - 11905: 0xE5F0, - 23655 - 11905: 0x8CD4, - 23656 - 11905: 0x8CD5, - 23657 - 11905: 0x8CD6, - 23658 - 11905: 0x8CD7, - 23659 - 11905: 0x8CD8, - 23660 - 11905: 0x8CD9, - 23661 - 11905: 0x8CDA, - 23662 - 11905: 0xE5F8, - 23663 - 11905: 0xCDCD, - 23664 - 11905: 0x8CDB, - 23665 - 11905: 0xC9BD, - 23666 - 11905: 0x8CDC, - 23667 - 11905: 0x8CDD, - 23668 - 11905: 0x8CDE, - 23669 - 11905: 0x8CDF, - 23670 - 11905: 0x8CE0, - 23671 - 11905: 0x8CE1, - 23672 - 11905: 0x8CE2, - 23673 - 11905: 0xD2D9, - 23674 - 11905: 0xE1A8, - 23675 - 11905: 0x8CE3, - 23676 - 11905: 0x8CE4, - 23677 - 11905: 0x8CE5, - 23678 - 11905: 0x8CE6, - 23679 - 11905: 0xD3EC, - 23680 - 11905: 0x8CE7, - 23681 - 11905: 0xCBEA, - 23682 - 11905: 0xC6F1, - 23683 - 11905: 0x8CE8, - 23684 - 11905: 0x8CE9, - 23685 - 11905: 0x8CEA, - 23686 - 11905: 0x8CEB, - 23687 - 11905: 0x8CEC, - 23688 - 11905: 0xE1AC, - 23689 - 11905: 0x8CED, - 23690 - 11905: 0x8CEE, - 23691 - 11905: 0x8CEF, - 23692 - 11905: 0xE1A7, - 23693 - 11905: 0xE1A9, - 23694 - 11905: 0x8CF0, - 23695 - 11905: 0x8CF1, - 23696 - 11905: 0xE1AA, - 23697 - 11905: 0xE1AF, - 23698 - 11905: 0x8CF2, - 23699 - 11905: 0x8CF3, - 23700 - 11905: 0xB2ED, - 23701 - 11905: 0x8CF4, - 23702 - 11905: 0xE1AB, - 23703 - 11905: 0xB8DA, - 23704 - 11905: 0xE1AD, - 23705 - 11905: 0xE1AE, - 23706 - 11905: 0xE1B0, - 23707 - 11905: 0xB5BA, - 23708 - 11905: 0xE1B1, - 23709 - 11905: 0x8CF5, - 23710 - 11905: 0x8CF6, - 23711 - 11905: 0x8CF7, - 23712 - 11905: 0x8CF8, - 23713 - 11905: 0x8CF9, - 23714 - 11905: 0xE1B3, - 23715 - 11905: 0xE1B8, - 23716 - 11905: 0x8CFA, - 23717 - 11905: 0x8CFB, - 23718 - 11905: 0x8CFC, - 23719 - 11905: 0x8CFD, - 23720 - 11905: 0x8CFE, - 23721 - 11905: 0xD1D2, - 23722 - 11905: 0x8D40, - 23723 - 11905: 0xE1B6, - 23724 - 11905: 0xE1B5, - 23725 - 11905: 0xC1EB, - 23726 - 11905: 0x8D41, - 23727 - 11905: 0x8D42, - 23728 - 11905: 0x8D43, - 23729 - 11905: 0xE1B7, - 23730 - 11905: 0x8D44, - 23731 - 11905: 0xD4C0, - 23732 - 11905: 0x8D45, - 23733 - 11905: 0xE1B2, - 23734 - 11905: 0x8D46, - 23735 - 11905: 0xE1BA, - 23736 - 11905: 0xB0B6, - 23737 - 11905: 0x8D47, - 23738 - 11905: 0x8D48, - 23739 - 11905: 0x8D49, - 23740 - 11905: 0x8D4A, - 23741 - 11905: 0xE1B4, - 23742 - 11905: 0x8D4B, - 23743 - 11905: 0xBFF9, - 23744 - 11905: 0x8D4C, - 23745 - 11905: 0xE1B9, - 23746 - 11905: 0x8D4D, - 23747 - 11905: 0x8D4E, - 23748 - 11905: 0xE1BB, - 23749 - 11905: 0x8D4F, - 23750 - 11905: 0x8D50, - 23751 - 11905: 0x8D51, - 23752 - 11905: 0x8D52, - 23753 - 11905: 0x8D53, - 23754 - 11905: 0x8D54, - 23755 - 11905: 0xE1BE, - 23756 - 11905: 0x8D55, - 23757 - 11905: 0x8D56, - 23758 - 11905: 0x8D57, - 23759 - 11905: 0x8D58, - 23760 - 11905: 0x8D59, - 23761 - 11905: 0x8D5A, - 23762 - 11905: 0xE1BC, - 23763 - 11905: 0x8D5B, - 23764 - 11905: 0x8D5C, - 23765 - 11905: 0x8D5D, - 23766 - 11905: 0x8D5E, - 23767 - 11905: 0x8D5F, - 23768 - 11905: 0x8D60, - 23769 - 11905: 0xD6C5, - 23770 - 11905: 0x8D61, - 23771 - 11905: 0x8D62, - 23772 - 11905: 0x8D63, - 23773 - 11905: 0x8D64, - 23774 - 11905: 0x8D65, - 23775 - 11905: 0x8D66, - 23776 - 11905: 0x8D67, - 23777 - 11905: 0xCFBF, - 23778 - 11905: 0x8D68, - 23779 - 11905: 0x8D69, - 23780 - 11905: 0xE1BD, - 23781 - 11905: 0xE1BF, - 23782 - 11905: 0xC2CD, - 23783 - 11905: 0x8D6A, - 23784 - 11905: 0xB6EB, - 23785 - 11905: 0x8D6B, - 23786 - 11905: 0xD3F8, - 23787 - 11905: 0x8D6C, - 23788 - 11905: 0x8D6D, - 23789 - 11905: 0xC7CD, - 23790 - 11905: 0x8D6E, - 23791 - 11905: 0x8D6F, - 23792 - 11905: 0xB7E5, - 23793 - 11905: 0x8D70, - 23794 - 11905: 0x8D71, - 23795 - 11905: 0x8D72, - 23796 - 11905: 0x8D73, - 23797 - 11905: 0x8D74, - 23798 - 11905: 0x8D75, - 23799 - 11905: 0x8D76, - 23800 - 11905: 0x8D77, - 23801 - 11905: 0x8D78, - 23802 - 11905: 0x8D79, - 23803 - 11905: 0xBEFE, - 23804 - 11905: 0x8D7A, - 23805 - 11905: 0x8D7B, - 23806 - 11905: 0x8D7C, - 23807 - 11905: 0x8D7D, - 23808 - 11905: 0x8D7E, - 23809 - 11905: 0x8D80, - 23810 - 11905: 0xE1C0, - 23811 - 11905: 0xE1C1, - 23812 - 11905: 0x8D81, - 23813 - 11905: 0x8D82, - 23814 - 11905: 0xE1C7, - 23815 - 11905: 0xB3E7, - 23816 - 11905: 0x8D83, - 23817 - 11905: 0x8D84, - 23818 - 11905: 0x8D85, - 23819 - 11905: 0x8D86, - 23820 - 11905: 0x8D87, - 23821 - 11905: 0x8D88, - 23822 - 11905: 0xC6E9, - 23823 - 11905: 0x8D89, - 23824 - 11905: 0x8D8A, - 23825 - 11905: 0x8D8B, - 23826 - 11905: 0x8D8C, - 23827 - 11905: 0x8D8D, - 23828 - 11905: 0xB4DE, - 23829 - 11905: 0x8D8E, - 23830 - 11905: 0xD1C2, - 23831 - 11905: 0x8D8F, - 23832 - 11905: 0x8D90, - 23833 - 11905: 0x8D91, - 23834 - 11905: 0x8D92, - 23835 - 11905: 0xE1C8, - 23836 - 11905: 0x8D93, - 23837 - 11905: 0x8D94, - 23838 - 11905: 0xE1C6, - 23839 - 11905: 0x8D95, - 23840 - 11905: 0x8D96, - 23841 - 11905: 0x8D97, - 23842 - 11905: 0x8D98, - 23843 - 11905: 0x8D99, - 23844 - 11905: 0xE1C5, - 23845 - 11905: 0x8D9A, - 23846 - 11905: 0xE1C3, - 23847 - 11905: 0xE1C2, - 23848 - 11905: 0x8D9B, - 23849 - 11905: 0xB1C0, - 23850 - 11905: 0x8D9C, - 23851 - 11905: 0x8D9D, - 23852 - 11905: 0x8D9E, - 23853 - 11905: 0xD5B8, - 23854 - 11905: 0xE1C4, - 23855 - 11905: 0x8D9F, - 23856 - 11905: 0x8DA0, - 23857 - 11905: 0x8DA1, - 23858 - 11905: 0x8DA2, - 23859 - 11905: 0x8DA3, - 23860 - 11905: 0xE1CB, - 23861 - 11905: 0x8DA4, - 23862 - 11905: 0x8DA5, - 23863 - 11905: 0x8DA6, - 23864 - 11905: 0x8DA7, - 23865 - 11905: 0x8DA8, - 23866 - 11905: 0x8DA9, - 23867 - 11905: 0x8DAA, - 23868 - 11905: 0x8DAB, - 23869 - 11905: 0xE1CC, - 23870 - 11905: 0xE1CA, - 23871 - 11905: 0x8DAC, - 23872 - 11905: 0x8DAD, - 23873 - 11905: 0x8DAE, - 23874 - 11905: 0x8DAF, - 23875 - 11905: 0x8DB0, - 23876 - 11905: 0x8DB1, - 23877 - 11905: 0x8DB2, - 23878 - 11905: 0x8DB3, - 23879 - 11905: 0xEFFA, - 23880 - 11905: 0x8DB4, - 23881 - 11905: 0x8DB5, - 23882 - 11905: 0xE1D3, - 23883 - 11905: 0xE1D2, - 23884 - 11905: 0xC7B6, - 23885 - 11905: 0x8DB6, - 23886 - 11905: 0x8DB7, - 23887 - 11905: 0x8DB8, - 23888 - 11905: 0x8DB9, - 23889 - 11905: 0x8DBA, - 23890 - 11905: 0x8DBB, - 23891 - 11905: 0x8DBC, - 23892 - 11905: 0x8DBD, - 23893 - 11905: 0x8DBE, - 23894 - 11905: 0x8DBF, - 23895 - 11905: 0x8DC0, - 23896 - 11905: 0xE1C9, - 23897 - 11905: 0x8DC1, - 23898 - 11905: 0x8DC2, - 23899 - 11905: 0xE1CE, - 23900 - 11905: 0x8DC3, - 23901 - 11905: 0xE1D0, - 23902 - 11905: 0x8DC4, - 23903 - 11905: 0x8DC5, - 23904 - 11905: 0x8DC6, - 23905 - 11905: 0x8DC7, - 23906 - 11905: 0x8DC8, - 23907 - 11905: 0x8DC9, - 23908 - 11905: 0x8DCA, - 23909 - 11905: 0x8DCB, - 23910 - 11905: 0x8DCC, - 23911 - 11905: 0x8DCD, - 23912 - 11905: 0x8DCE, - 23913 - 11905: 0xE1D4, - 23914 - 11905: 0x8DCF, - 23915 - 11905: 0xE1D1, - 23916 - 11905: 0xE1CD, - 23917 - 11905: 0x8DD0, - 23918 - 11905: 0x8DD1, - 23919 - 11905: 0xE1CF, - 23920 - 11905: 0x8DD2, - 23921 - 11905: 0x8DD3, - 23922 - 11905: 0x8DD4, - 23923 - 11905: 0x8DD5, - 23924 - 11905: 0xE1D5, - 23925 - 11905: 0x8DD6, - 23926 - 11905: 0x8DD7, - 23927 - 11905: 0x8DD8, - 23928 - 11905: 0x8DD9, - 23929 - 11905: 0x8DDA, - 23930 - 11905: 0x8DDB, - 23931 - 11905: 0x8DDC, - 23932 - 11905: 0x8DDD, - 23933 - 11905: 0x8DDE, - 23934 - 11905: 0x8DDF, - 23935 - 11905: 0x8DE0, - 23936 - 11905: 0x8DE1, - 23937 - 11905: 0x8DE2, - 23938 - 11905: 0xE1D6, - 23939 - 11905: 0x8DE3, - 23940 - 11905: 0x8DE4, - 23941 - 11905: 0x8DE5, - 23942 - 11905: 0x8DE6, - 23943 - 11905: 0x8DE7, - 23944 - 11905: 0x8DE8, - 23945 - 11905: 0x8DE9, - 23946 - 11905: 0x8DEA, - 23947 - 11905: 0x8DEB, - 23948 - 11905: 0x8DEC, - 23949 - 11905: 0x8DED, - 23950 - 11905: 0x8DEE, - 23951 - 11905: 0x8DEF, - 23952 - 11905: 0x8DF0, - 23953 - 11905: 0x8DF1, - 23954 - 11905: 0x8DF2, - 23955 - 11905: 0x8DF3, - 23956 - 11905: 0x8DF4, - 23957 - 11905: 0x8DF5, - 23958 - 11905: 0x8DF6, - 23959 - 11905: 0x8DF7, - 23960 - 11905: 0x8DF8, - 23961 - 11905: 0xE1D7, - 23962 - 11905: 0x8DF9, - 23963 - 11905: 0x8DFA, - 23964 - 11905: 0x8DFB, - 23965 - 11905: 0xE1D8, - 23966 - 11905: 0x8DFC, - 23967 - 11905: 0x8DFD, - 23968 - 11905: 0x8DFE, - 23969 - 11905: 0x8E40, - 23970 - 11905: 0x8E41, - 23971 - 11905: 0x8E42, - 23972 - 11905: 0x8E43, - 23973 - 11905: 0x8E44, - 23974 - 11905: 0x8E45, - 23975 - 11905: 0x8E46, - 23976 - 11905: 0x8E47, - 23977 - 11905: 0x8E48, - 23978 - 11905: 0x8E49, - 23979 - 11905: 0x8E4A, - 23980 - 11905: 0x8E4B, - 23981 - 11905: 0x8E4C, - 23982 - 11905: 0x8E4D, - 23983 - 11905: 0x8E4E, - 23984 - 11905: 0x8E4F, - 23985 - 11905: 0x8E50, - 23986 - 11905: 0x8E51, - 23987 - 11905: 0x8E52, - 23988 - 11905: 0x8E53, - 23989 - 11905: 0x8E54, - 23990 - 11905: 0x8E55, - 23991 - 11905: 0xE1DA, - 23992 - 11905: 0x8E56, - 23993 - 11905: 0x8E57, - 23994 - 11905: 0x8E58, - 23995 - 11905: 0x8E59, - 23996 - 11905: 0x8E5A, - 23997 - 11905: 0x8E5B, - 23998 - 11905: 0x8E5C, - 23999 - 11905: 0x8E5D, - 24000 - 11905: 0x8E5E, - 24001 - 11905: 0x8E5F, - 24002 - 11905: 0x8E60, - 24003 - 11905: 0x8E61, - 24004 - 11905: 0x8E62, - 24005 - 11905: 0xE1DB, - 24006 - 11905: 0x8E63, - 24007 - 11905: 0x8E64, - 24008 - 11905: 0x8E65, - 24009 - 11905: 0x8E66, - 24010 - 11905: 0x8E67, - 24011 - 11905: 0x8E68, - 24012 - 11905: 0x8E69, - 24013 - 11905: 0xCEA1, - 24014 - 11905: 0x8E6A, - 24015 - 11905: 0x8E6B, - 24016 - 11905: 0x8E6C, - 24017 - 11905: 0x8E6D, - 24018 - 11905: 0x8E6E, - 24019 - 11905: 0x8E6F, - 24020 - 11905: 0x8E70, - 24021 - 11905: 0x8E71, - 24022 - 11905: 0x8E72, - 24023 - 11905: 0x8E73, - 24024 - 11905: 0x8E74, - 24025 - 11905: 0x8E75, - 24026 - 11905: 0x8E76, - 24027 - 11905: 0xE7DD, - 24028 - 11905: 0x8E77, - 24029 - 11905: 0xB4A8, - 24030 - 11905: 0xD6DD, - 24031 - 11905: 0x8E78, - 24032 - 11905: 0x8E79, - 24033 - 11905: 0xD1B2, - 24034 - 11905: 0xB3B2, - 24035 - 11905: 0x8E7A, - 24036 - 11905: 0x8E7B, - 24037 - 11905: 0xB9A4, - 24038 - 11905: 0xD7F3, - 24039 - 11905: 0xC7C9, - 24040 - 11905: 0xBEDE, - 24041 - 11905: 0xB9AE, - 24042 - 11905: 0x8E7C, - 24043 - 11905: 0xCED7, - 24044 - 11905: 0x8E7D, - 24045 - 11905: 0x8E7E, - 24046 - 11905: 0xB2EE, - 24047 - 11905: 0xDBCF, - 24048 - 11905: 0x8E80, - 24049 - 11905: 0xBCBA, - 24050 - 11905: 0xD2D1, - 24051 - 11905: 0xCBC8, - 24052 - 11905: 0xB0CD, - 24053 - 11905: 0x8E81, - 24054 - 11905: 0x8E82, - 24055 - 11905: 0xCFEF, - 24056 - 11905: 0x8E83, - 24057 - 11905: 0x8E84, - 24058 - 11905: 0x8E85, - 24059 - 11905: 0x8E86, - 24060 - 11905: 0x8E87, - 24061 - 11905: 0xD9E3, - 24062 - 11905: 0xBDED, - 24063 - 11905: 0x8E88, - 24064 - 11905: 0x8E89, - 24065 - 11905: 0xB1D2, - 24066 - 11905: 0xCAD0, - 24067 - 11905: 0xB2BC, - 24068 - 11905: 0x8E8A, - 24069 - 11905: 0xCBA7, - 24070 - 11905: 0xB7AB, - 24071 - 11905: 0x8E8B, - 24072 - 11905: 0xCAA6, - 24073 - 11905: 0x8E8C, - 24074 - 11905: 0x8E8D, - 24075 - 11905: 0x8E8E, - 24076 - 11905: 0xCFA3, - 24077 - 11905: 0x8E8F, - 24078 - 11905: 0x8E90, - 24079 - 11905: 0xE0F8, - 24080 - 11905: 0xD5CA, - 24081 - 11905: 0xE0FB, - 24082 - 11905: 0x8E91, - 24083 - 11905: 0x8E92, - 24084 - 11905: 0xE0FA, - 24085 - 11905: 0xC5C1, - 24086 - 11905: 0xCCFB, - 24087 - 11905: 0x8E93, - 24088 - 11905: 0xC1B1, - 24089 - 11905: 0xE0F9, - 24090 - 11905: 0xD6E3, - 24091 - 11905: 0xB2AF, - 24092 - 11905: 0xD6C4, - 24093 - 11905: 0xB5DB, - 24094 - 11905: 0x8E94, - 24095 - 11905: 0x8E95, - 24096 - 11905: 0x8E96, - 24097 - 11905: 0x8E97, - 24098 - 11905: 0x8E98, - 24099 - 11905: 0x8E99, - 24100 - 11905: 0x8E9A, - 24101 - 11905: 0x8E9B, - 24102 - 11905: 0xB4F8, - 24103 - 11905: 0xD6A1, - 24104 - 11905: 0x8E9C, - 24105 - 11905: 0x8E9D, - 24106 - 11905: 0x8E9E, - 24107 - 11905: 0x8E9F, - 24108 - 11905: 0x8EA0, - 24109 - 11905: 0xCFAF, - 24110 - 11905: 0xB0EF, - 24111 - 11905: 0x8EA1, - 24112 - 11905: 0x8EA2, - 24113 - 11905: 0xE0FC, - 24114 - 11905: 0x8EA3, - 24115 - 11905: 0x8EA4, - 24116 - 11905: 0x8EA5, - 24117 - 11905: 0x8EA6, - 24118 - 11905: 0x8EA7, - 24119 - 11905: 0xE1A1, - 24120 - 11905: 0xB3A3, - 24121 - 11905: 0x8EA8, - 24122 - 11905: 0x8EA9, - 24123 - 11905: 0xE0FD, - 24124 - 11905: 0xE0FE, - 24125 - 11905: 0xC3B1, - 24126 - 11905: 0x8EAA, - 24127 - 11905: 0x8EAB, - 24128 - 11905: 0x8EAC, - 24129 - 11905: 0x8EAD, - 24130 - 11905: 0xC3DD, - 24131 - 11905: 0x8EAE, - 24132 - 11905: 0xE1A2, - 24133 - 11905: 0xB7F9, - 24134 - 11905: 0x8EAF, - 24135 - 11905: 0x8EB0, - 24136 - 11905: 0x8EB1, - 24137 - 11905: 0x8EB2, - 24138 - 11905: 0x8EB3, - 24139 - 11905: 0x8EB4, - 24140 - 11905: 0xBBCF, - 24141 - 11905: 0x8EB5, - 24142 - 11905: 0x8EB6, - 24143 - 11905: 0x8EB7, - 24144 - 11905: 0x8EB8, - 24145 - 11905: 0x8EB9, - 24146 - 11905: 0x8EBA, - 24147 - 11905: 0x8EBB, - 24148 - 11905: 0xE1A3, - 24149 - 11905: 0xC4BB, - 24150 - 11905: 0x8EBC, - 24151 - 11905: 0x8EBD, - 24152 - 11905: 0x8EBE, - 24153 - 11905: 0x8EBF, - 24154 - 11905: 0x8EC0, - 24155 - 11905: 0xE1A4, - 24156 - 11905: 0x8EC1, - 24157 - 11905: 0x8EC2, - 24158 - 11905: 0xE1A5, - 24159 - 11905: 0x8EC3, - 24160 - 11905: 0x8EC4, - 24161 - 11905: 0xE1A6, - 24162 - 11905: 0xB4B1, - 24163 - 11905: 0x8EC5, - 24164 - 11905: 0x8EC6, - 24165 - 11905: 0x8EC7, - 24166 - 11905: 0x8EC8, - 24167 - 11905: 0x8EC9, - 24168 - 11905: 0x8ECA, - 24169 - 11905: 0x8ECB, - 24170 - 11905: 0x8ECC, - 24171 - 11905: 0x8ECD, - 24172 - 11905: 0x8ECE, - 24173 - 11905: 0x8ECF, - 24174 - 11905: 0x8ED0, - 24175 - 11905: 0x8ED1, - 24176 - 11905: 0x8ED2, - 24177 - 11905: 0x8ED3, - 24178 - 11905: 0xB8C9, - 24179 - 11905: 0xC6BD, - 24180 - 11905: 0xC4EA, - 24181 - 11905: 0x8ED4, - 24182 - 11905: 0xB2A2, - 24183 - 11905: 0x8ED5, - 24184 - 11905: 0xD0D2, - 24185 - 11905: 0x8ED6, - 24186 - 11905: 0xE7DB, - 24187 - 11905: 0xBBC3, - 24188 - 11905: 0xD3D7, - 24189 - 11905: 0xD3C4, - 24190 - 11905: 0x8ED7, - 24191 - 11905: 0xB9E3, - 24192 - 11905: 0xE2CF, - 24193 - 11905: 0x8ED8, - 24194 - 11905: 0x8ED9, - 24195 - 11905: 0x8EDA, - 24196 - 11905: 0xD7AF, - 24197 - 11905: 0x8EDB, - 24198 - 11905: 0xC7EC, - 24199 - 11905: 0xB1D3, - 24200 - 11905: 0x8EDC, - 24201 - 11905: 0x8EDD, - 24202 - 11905: 0xB4B2, - 24203 - 11905: 0xE2D1, - 24204 - 11905: 0x8EDE, - 24205 - 11905: 0x8EDF, - 24206 - 11905: 0x8EE0, - 24207 - 11905: 0xD0F2, - 24208 - 11905: 0xC2AE, - 24209 - 11905: 0xE2D0, - 24210 - 11905: 0x8EE1, - 24211 - 11905: 0xBFE2, - 24212 - 11905: 0xD3A6, - 24213 - 11905: 0xB5D7, - 24214 - 11905: 0xE2D2, - 24215 - 11905: 0xB5EA, - 24216 - 11905: 0x8EE2, - 24217 - 11905: 0xC3ED, - 24218 - 11905: 0xB8FD, - 24219 - 11905: 0x8EE3, - 24220 - 11905: 0xB8AE, - 24221 - 11905: 0x8EE4, - 24222 - 11905: 0xC5D3, - 24223 - 11905: 0xB7CF, - 24224 - 11905: 0xE2D4, - 24225 - 11905: 0x8EE5, - 24226 - 11905: 0x8EE6, - 24227 - 11905: 0x8EE7, - 24228 - 11905: 0x8EE8, - 24229 - 11905: 0xE2D3, - 24230 - 11905: 0xB6C8, - 24231 - 11905: 0xD7F9, - 24232 - 11905: 0x8EE9, - 24233 - 11905: 0x8EEA, - 24234 - 11905: 0x8EEB, - 24235 - 11905: 0x8EEC, - 24236 - 11905: 0x8EED, - 24237 - 11905: 0xCDA5, - 24238 - 11905: 0x8EEE, - 24239 - 11905: 0x8EEF, - 24240 - 11905: 0x8EF0, - 24241 - 11905: 0x8EF1, - 24242 - 11905: 0x8EF2, - 24243 - 11905: 0xE2D8, - 24244 - 11905: 0x8EF3, - 24245 - 11905: 0xE2D6, - 24246 - 11905: 0xCAFC, - 24247 - 11905: 0xBFB5, - 24248 - 11905: 0xD3B9, - 24249 - 11905: 0xE2D5, - 24250 - 11905: 0x8EF4, - 24251 - 11905: 0x8EF5, - 24252 - 11905: 0x8EF6, - 24253 - 11905: 0x8EF7, - 24254 - 11905: 0xE2D7, - 24255 - 11905: 0x8EF8, - 24256 - 11905: 0x8EF9, - 24257 - 11905: 0x8EFA, - 24258 - 11905: 0x8EFB, - 24259 - 11905: 0x8EFC, - 24260 - 11905: 0x8EFD, - 24261 - 11905: 0x8EFE, - 24262 - 11905: 0x8F40, - 24263 - 11905: 0x8F41, - 24264 - 11905: 0x8F42, - 24265 - 11905: 0xC1AE, - 24266 - 11905: 0xC0C8, - 24267 - 11905: 0x8F43, - 24268 - 11905: 0x8F44, - 24269 - 11905: 0x8F45, - 24270 - 11905: 0x8F46, - 24271 - 11905: 0x8F47, - 24272 - 11905: 0x8F48, - 24273 - 11905: 0xE2DB, - 24274 - 11905: 0xE2DA, - 24275 - 11905: 0xC0AA, - 24276 - 11905: 0x8F49, - 24277 - 11905: 0x8F4A, - 24278 - 11905: 0xC1CE, - 24279 - 11905: 0x8F4B, - 24280 - 11905: 0x8F4C, - 24281 - 11905: 0x8F4D, - 24282 - 11905: 0x8F4E, - 24283 - 11905: 0xE2DC, - 24284 - 11905: 0x8F4F, - 24285 - 11905: 0x8F50, - 24286 - 11905: 0x8F51, - 24287 - 11905: 0x8F52, - 24288 - 11905: 0x8F53, - 24289 - 11905: 0x8F54, - 24290 - 11905: 0x8F55, - 24291 - 11905: 0x8F56, - 24292 - 11905: 0x8F57, - 24293 - 11905: 0x8F58, - 24294 - 11905: 0x8F59, - 24295 - 11905: 0x8F5A, - 24296 - 11905: 0xE2DD, - 24297 - 11905: 0x8F5B, - 24298 - 11905: 0xE2DE, - 24299 - 11905: 0x8F5C, - 24300 - 11905: 0x8F5D, - 24301 - 11905: 0x8F5E, - 24302 - 11905: 0x8F5F, - 24303 - 11905: 0x8F60, - 24304 - 11905: 0x8F61, - 24305 - 11905: 0x8F62, - 24306 - 11905: 0x8F63, - 24307 - 11905: 0x8F64, - 24308 - 11905: 0xDBC8, - 24309 - 11905: 0x8F65, - 24310 - 11905: 0xD1D3, - 24311 - 11905: 0xCDA2, - 24312 - 11905: 0x8F66, - 24313 - 11905: 0x8F67, - 24314 - 11905: 0xBDA8, - 24315 - 11905: 0x8F68, - 24316 - 11905: 0x8F69, - 24317 - 11905: 0x8F6A, - 24318 - 11905: 0xDEC3, - 24319 - 11905: 0xD8A5, - 24320 - 11905: 0xBFAA, - 24321 - 11905: 0xDBCD, - 24322 - 11905: 0xD2EC, - 24323 - 11905: 0xC6FA, - 24324 - 11905: 0xC5AA, - 24325 - 11905: 0x8F6B, - 24326 - 11905: 0x8F6C, - 24327 - 11905: 0x8F6D, - 24328 - 11905: 0xDEC4, - 24329 - 11905: 0x8F6E, - 24330 - 11905: 0xB1D7, - 24331 - 11905: 0xDFAE, - 24332 - 11905: 0x8F6F, - 24333 - 11905: 0x8F70, - 24334 - 11905: 0x8F71, - 24335 - 11905: 0xCABD, - 24336 - 11905: 0x8F72, - 24337 - 11905: 0xDFB1, - 24338 - 11905: 0x8F73, - 24339 - 11905: 0xB9AD, - 24340 - 11905: 0x8F74, - 24341 - 11905: 0xD2FD, - 24342 - 11905: 0x8F75, - 24343 - 11905: 0xB8A5, - 24344 - 11905: 0xBAEB, - 24345 - 11905: 0x8F76, - 24346 - 11905: 0x8F77, - 24347 - 11905: 0xB3DA, - 24348 - 11905: 0x8F78, - 24349 - 11905: 0x8F79, - 24350 - 11905: 0x8F7A, - 24351 - 11905: 0xB5DC, - 24352 - 11905: 0xD5C5, - 24353 - 11905: 0x8F7B, - 24354 - 11905: 0x8F7C, - 24355 - 11905: 0x8F7D, - 24356 - 11905: 0x8F7E, - 24357 - 11905: 0xC3D6, - 24358 - 11905: 0xCFD2, - 24359 - 11905: 0xBBA1, - 24360 - 11905: 0x8F80, - 24361 - 11905: 0xE5F3, - 24362 - 11905: 0xE5F2, - 24363 - 11905: 0x8F81, - 24364 - 11905: 0x8F82, - 24365 - 11905: 0xE5F4, - 24366 - 11905: 0x8F83, - 24367 - 11905: 0xCDE4, - 24368 - 11905: 0x8F84, - 24369 - 11905: 0xC8F5, - 24370 - 11905: 0x8F85, - 24371 - 11905: 0x8F86, - 24372 - 11905: 0x8F87, - 24373 - 11905: 0x8F88, - 24374 - 11905: 0x8F89, - 24375 - 11905: 0x8F8A, - 24376 - 11905: 0x8F8B, - 24377 - 11905: 0xB5AF, - 24378 - 11905: 0xC7BF, - 24379 - 11905: 0x8F8C, - 24380 - 11905: 0xE5F6, - 24381 - 11905: 0x8F8D, - 24382 - 11905: 0x8F8E, - 24383 - 11905: 0x8F8F, - 24384 - 11905: 0xECB0, - 24385 - 11905: 0x8F90, - 24386 - 11905: 0x8F91, - 24387 - 11905: 0x8F92, - 24388 - 11905: 0x8F93, - 24389 - 11905: 0x8F94, - 24390 - 11905: 0x8F95, - 24391 - 11905: 0x8F96, - 24392 - 11905: 0x8F97, - 24393 - 11905: 0x8F98, - 24394 - 11905: 0x8F99, - 24395 - 11905: 0x8F9A, - 24396 - 11905: 0x8F9B, - 24397 - 11905: 0x8F9C, - 24398 - 11905: 0x8F9D, - 24399 - 11905: 0x8F9E, - 24400 - 11905: 0xE5E6, - 24401 - 11905: 0x8F9F, - 24402 - 11905: 0xB9E9, - 24403 - 11905: 0xB5B1, - 24404 - 11905: 0x8FA0, - 24405 - 11905: 0xC2BC, - 24406 - 11905: 0xE5E8, - 24407 - 11905: 0xE5E7, - 24408 - 11905: 0xE5E9, - 24409 - 11905: 0x8FA1, - 24410 - 11905: 0x8FA2, - 24411 - 11905: 0x8FA3, - 24412 - 11905: 0x8FA4, - 24413 - 11905: 0xD2CD, - 24414 - 11905: 0x8FA5, - 24415 - 11905: 0x8FA6, - 24416 - 11905: 0x8FA7, - 24417 - 11905: 0xE1EA, - 24418 - 11905: 0xD0CE, - 24419 - 11905: 0x8FA8, - 24420 - 11905: 0xCDAE, - 24421 - 11905: 0x8FA9, - 24422 - 11905: 0xD1E5, - 24423 - 11905: 0x8FAA, - 24424 - 11905: 0x8FAB, - 24425 - 11905: 0xB2CA, - 24426 - 11905: 0xB1EB, - 24427 - 11905: 0x8FAC, - 24428 - 11905: 0xB1F2, - 24429 - 11905: 0xC5ED, - 24430 - 11905: 0x8FAD, - 24431 - 11905: 0x8FAE, - 24432 - 11905: 0xD5C3, - 24433 - 11905: 0xD3B0, - 24434 - 11905: 0x8FAF, - 24435 - 11905: 0xE1DC, - 24436 - 11905: 0x8FB0, - 24437 - 11905: 0x8FB1, - 24438 - 11905: 0x8FB2, - 24439 - 11905: 0xE1DD, - 24440 - 11905: 0x8FB3, - 24441 - 11905: 0xD2DB, - 24442 - 11905: 0x8FB4, - 24443 - 11905: 0xB3B9, - 24444 - 11905: 0xB1CB, - 24445 - 11905: 0x8FB5, - 24446 - 11905: 0x8FB6, - 24447 - 11905: 0x8FB7, - 24448 - 11905: 0xCDF9, - 24449 - 11905: 0xD5F7, - 24450 - 11905: 0xE1DE, - 24451 - 11905: 0x8FB8, - 24452 - 11905: 0xBEB6, - 24453 - 11905: 0xB4FD, - 24454 - 11905: 0x8FB9, - 24455 - 11905: 0xE1DF, - 24456 - 11905: 0xBADC, - 24457 - 11905: 0xE1E0, - 24458 - 11905: 0xBBB2, - 24459 - 11905: 0xC2C9, - 24460 - 11905: 0xE1E1, - 24461 - 11905: 0x8FBA, - 24462 - 11905: 0x8FBB, - 24463 - 11905: 0x8FBC, - 24464 - 11905: 0xD0EC, - 24465 - 11905: 0x8FBD, - 24466 - 11905: 0xCDBD, - 24467 - 11905: 0x8FBE, - 24468 - 11905: 0x8FBF, - 24469 - 11905: 0xE1E2, - 24470 - 11905: 0x8FC0, - 24471 - 11905: 0xB5C3, - 24472 - 11905: 0xC5C7, - 24473 - 11905: 0xE1E3, - 24474 - 11905: 0x8FC1, - 24475 - 11905: 0x8FC2, - 24476 - 11905: 0xE1E4, - 24477 - 11905: 0x8FC3, - 24478 - 11905: 0x8FC4, - 24479 - 11905: 0x8FC5, - 24480 - 11905: 0x8FC6, - 24481 - 11905: 0xD3F9, - 24482 - 11905: 0x8FC7, - 24483 - 11905: 0x8FC8, - 24484 - 11905: 0x8FC9, - 24485 - 11905: 0x8FCA, - 24486 - 11905: 0x8FCB, - 24487 - 11905: 0x8FCC, - 24488 - 11905: 0xE1E5, - 24489 - 11905: 0x8FCD, - 24490 - 11905: 0xD1AD, - 24491 - 11905: 0x8FCE, - 24492 - 11905: 0x8FCF, - 24493 - 11905: 0xE1E6, - 24494 - 11905: 0xCEA2, - 24495 - 11905: 0x8FD0, - 24496 - 11905: 0x8FD1, - 24497 - 11905: 0x8FD2, - 24498 - 11905: 0x8FD3, - 24499 - 11905: 0x8FD4, - 24500 - 11905: 0x8FD5, - 24501 - 11905: 0xE1E7, - 24502 - 11905: 0x8FD6, - 24503 - 11905: 0xB5C2, - 24504 - 11905: 0x8FD7, - 24505 - 11905: 0x8FD8, - 24506 - 11905: 0x8FD9, - 24507 - 11905: 0x8FDA, - 24508 - 11905: 0xE1E8, - 24509 - 11905: 0xBBD5, - 24510 - 11905: 0x8FDB, - 24511 - 11905: 0x8FDC, - 24512 - 11905: 0x8FDD, - 24513 - 11905: 0x8FDE, - 24514 - 11905: 0x8FDF, - 24515 - 11905: 0xD0C4, - 24516 - 11905: 0xE2E0, - 24517 - 11905: 0xB1D8, - 24518 - 11905: 0xD2E4, - 24519 - 11905: 0x8FE0, - 24520 - 11905: 0x8FE1, - 24521 - 11905: 0xE2E1, - 24522 - 11905: 0x8FE2, - 24523 - 11905: 0x8FE3, - 24524 - 11905: 0xBCC9, - 24525 - 11905: 0xC8CC, - 24526 - 11905: 0x8FE4, - 24527 - 11905: 0xE2E3, - 24528 - 11905: 0xECFE, - 24529 - 11905: 0xECFD, - 24530 - 11905: 0xDFAF, - 24531 - 11905: 0x8FE5, - 24532 - 11905: 0x8FE6, - 24533 - 11905: 0x8FE7, - 24534 - 11905: 0xE2E2, - 24535 - 11905: 0xD6BE, - 24536 - 11905: 0xCDFC, - 24537 - 11905: 0xC3A6, - 24538 - 11905: 0x8FE8, - 24539 - 11905: 0x8FE9, - 24540 - 11905: 0x8FEA, - 24541 - 11905: 0xE3C3, - 24542 - 11905: 0x8FEB, - 24543 - 11905: 0x8FEC, - 24544 - 11905: 0xD6D2, - 24545 - 11905: 0xE2E7, - 24546 - 11905: 0x8FED, - 24547 - 11905: 0x8FEE, - 24548 - 11905: 0xE2E8, - 24549 - 11905: 0x8FEF, - 24550 - 11905: 0x8FF0, - 24551 - 11905: 0xD3C7, - 24552 - 11905: 0x8FF1, - 24553 - 11905: 0x8FF2, - 24554 - 11905: 0xE2EC, - 24555 - 11905: 0xBFEC, - 24556 - 11905: 0x8FF3, - 24557 - 11905: 0xE2ED, - 24558 - 11905: 0xE2E5, - 24559 - 11905: 0x8FF4, - 24560 - 11905: 0x8FF5, - 24561 - 11905: 0xB3C0, - 24562 - 11905: 0x8FF6, - 24563 - 11905: 0x8FF7, - 24564 - 11905: 0x8FF8, - 24565 - 11905: 0xC4EE, - 24566 - 11905: 0x8FF9, - 24567 - 11905: 0x8FFA, - 24568 - 11905: 0xE2EE, - 24569 - 11905: 0x8FFB, - 24570 - 11905: 0x8FFC, - 24571 - 11905: 0xD0C3, - 24572 - 11905: 0x8FFD, - 24573 - 11905: 0xBAF6, - 24574 - 11905: 0xE2E9, - 24575 - 11905: 0xB7DE, - 24576 - 11905: 0xBBB3, - 24577 - 11905: 0xCCAC, - 24578 - 11905: 0xCBCB, - 24579 - 11905: 0xE2E4, - 24580 - 11905: 0xE2E6, - 24581 - 11905: 0xE2EA, - 24582 - 11905: 0xE2EB, - 24583 - 11905: 0x8FFE, - 24584 - 11905: 0x9040, - 24585 - 11905: 0x9041, - 24586 - 11905: 0xE2F7, - 24587 - 11905: 0x9042, - 24588 - 11905: 0x9043, - 24589 - 11905: 0xE2F4, - 24590 - 11905: 0xD4F5, - 24591 - 11905: 0xE2F3, - 24592 - 11905: 0x9044, - 24593 - 11905: 0x9045, - 24594 - 11905: 0xC5AD, - 24595 - 11905: 0x9046, - 24596 - 11905: 0xD5FA, - 24597 - 11905: 0xC5C2, - 24598 - 11905: 0xB2C0, - 24599 - 11905: 0x9047, - 24600 - 11905: 0x9048, - 24601 - 11905: 0xE2EF, - 24602 - 11905: 0x9049, - 24603 - 11905: 0xE2F2, - 24604 - 11905: 0xC1AF, - 24605 - 11905: 0xCBBC, - 24606 - 11905: 0x904A, - 24607 - 11905: 0x904B, - 24608 - 11905: 0xB5A1, - 24609 - 11905: 0xE2F9, - 24610 - 11905: 0x904C, - 24611 - 11905: 0x904D, - 24612 - 11905: 0x904E, - 24613 - 11905: 0xBCB1, - 24614 - 11905: 0xE2F1, - 24615 - 11905: 0xD0D4, - 24616 - 11905: 0xD4B9, - 24617 - 11905: 0xE2F5, - 24618 - 11905: 0xB9D6, - 24619 - 11905: 0xE2F6, - 24620 - 11905: 0x904F, - 24621 - 11905: 0x9050, - 24622 - 11905: 0x9051, - 24623 - 11905: 0xC7D3, - 24624 - 11905: 0x9052, - 24625 - 11905: 0x9053, - 24626 - 11905: 0x9054, - 24627 - 11905: 0x9055, - 24628 - 11905: 0x9056, - 24629 - 11905: 0xE2F0, - 24630 - 11905: 0x9057, - 24631 - 11905: 0x9058, - 24632 - 11905: 0x9059, - 24633 - 11905: 0x905A, - 24634 - 11905: 0x905B, - 24635 - 11905: 0xD7DC, - 24636 - 11905: 0xEDA1, - 24637 - 11905: 0x905C, - 24638 - 11905: 0x905D, - 24639 - 11905: 0xE2F8, - 24640 - 11905: 0x905E, - 24641 - 11905: 0xEDA5, - 24642 - 11905: 0xE2FE, - 24643 - 11905: 0xCAD1, - 24644 - 11905: 0x905F, - 24645 - 11905: 0x9060, - 24646 - 11905: 0x9061, - 24647 - 11905: 0x9062, - 24648 - 11905: 0x9063, - 24649 - 11905: 0x9064, - 24650 - 11905: 0x9065, - 24651 - 11905: 0xC1B5, - 24652 - 11905: 0x9066, - 24653 - 11905: 0xBBD0, - 24654 - 11905: 0x9067, - 24655 - 11905: 0x9068, - 24656 - 11905: 0xBFD6, - 24657 - 11905: 0x9069, - 24658 - 11905: 0xBAE3, - 24659 - 11905: 0x906A, - 24660 - 11905: 0x906B, - 24661 - 11905: 0xCBA1, - 24662 - 11905: 0x906C, - 24663 - 11905: 0x906D, - 24664 - 11905: 0x906E, - 24665 - 11905: 0xEDA6, - 24666 - 11905: 0xEDA3, - 24667 - 11905: 0x906F, - 24668 - 11905: 0x9070, - 24669 - 11905: 0xEDA2, - 24670 - 11905: 0x9071, - 24671 - 11905: 0x9072, - 24672 - 11905: 0x9073, - 24673 - 11905: 0x9074, - 24674 - 11905: 0xBBD6, - 24675 - 11905: 0xEDA7, - 24676 - 11905: 0xD0F4, - 24677 - 11905: 0x9075, - 24678 - 11905: 0x9076, - 24679 - 11905: 0xEDA4, - 24680 - 11905: 0xBADE, - 24681 - 11905: 0xB6F7, - 24682 - 11905: 0xE3A1, - 24683 - 11905: 0xB6B2, - 24684 - 11905: 0xCCF1, - 24685 - 11905: 0xB9A7, - 24686 - 11905: 0x9077, - 24687 - 11905: 0xCFA2, - 24688 - 11905: 0xC7A1, - 24689 - 11905: 0x9078, - 24690 - 11905: 0x9079, - 24691 - 11905: 0xBFD2, - 24692 - 11905: 0x907A, - 24693 - 11905: 0x907B, - 24694 - 11905: 0xB6F1, - 24695 - 11905: 0x907C, - 24696 - 11905: 0xE2FA, - 24697 - 11905: 0xE2FB, - 24698 - 11905: 0xE2FD, - 24699 - 11905: 0xE2FC, - 24700 - 11905: 0xC4D5, - 24701 - 11905: 0xE3A2, - 24702 - 11905: 0x907D, - 24703 - 11905: 0xD3C1, - 24704 - 11905: 0x907E, - 24705 - 11905: 0x9080, - 24706 - 11905: 0x9081, - 24707 - 11905: 0xE3A7, - 24708 - 11905: 0xC7C4, - 24709 - 11905: 0x9082, - 24710 - 11905: 0x9083, - 24711 - 11905: 0x9084, - 24712 - 11905: 0x9085, - 24713 - 11905: 0xCFA4, - 24714 - 11905: 0x9086, - 24715 - 11905: 0x9087, - 24716 - 11905: 0xE3A9, - 24717 - 11905: 0xBAB7, - 24718 - 11905: 0x9088, - 24719 - 11905: 0x9089, - 24720 - 11905: 0x908A, - 24721 - 11905: 0x908B, - 24722 - 11905: 0xE3A8, - 24723 - 11905: 0x908C, - 24724 - 11905: 0xBBDA, - 24725 - 11905: 0x908D, - 24726 - 11905: 0xE3A3, - 24727 - 11905: 0x908E, - 24728 - 11905: 0x908F, - 24729 - 11905: 0x9090, - 24730 - 11905: 0xE3A4, - 24731 - 11905: 0xE3AA, - 24732 - 11905: 0x9091, - 24733 - 11905: 0xE3A6, - 24734 - 11905: 0x9092, - 24735 - 11905: 0xCEF2, - 24736 - 11905: 0xD3C6, - 24737 - 11905: 0x9093, - 24738 - 11905: 0x9094, - 24739 - 11905: 0xBBBC, - 24740 - 11905: 0x9095, - 24741 - 11905: 0x9096, - 24742 - 11905: 0xD4C3, - 24743 - 11905: 0x9097, - 24744 - 11905: 0xC4FA, - 24745 - 11905: 0x9098, - 24746 - 11905: 0x9099, - 24747 - 11905: 0xEDA8, - 24748 - 11905: 0xD0FC, - 24749 - 11905: 0xE3A5, - 24750 - 11905: 0x909A, - 24751 - 11905: 0xC3F5, - 24752 - 11905: 0x909B, - 24753 - 11905: 0xE3AD, - 24754 - 11905: 0xB1AF, - 24755 - 11905: 0x909C, - 24756 - 11905: 0xE3B2, - 24757 - 11905: 0x909D, - 24758 - 11905: 0x909E, - 24759 - 11905: 0x909F, - 24760 - 11905: 0xBCC2, - 24761 - 11905: 0x90A0, - 24762 - 11905: 0x90A1, - 24763 - 11905: 0xE3AC, - 24764 - 11905: 0xB5BF, - 24765 - 11905: 0x90A2, - 24766 - 11905: 0x90A3, - 24767 - 11905: 0x90A4, - 24768 - 11905: 0x90A5, - 24769 - 11905: 0x90A6, - 24770 - 11905: 0x90A7, - 24771 - 11905: 0x90A8, - 24772 - 11905: 0x90A9, - 24773 - 11905: 0xC7E9, - 24774 - 11905: 0xE3B0, - 24775 - 11905: 0x90AA, - 24776 - 11905: 0x90AB, - 24777 - 11905: 0x90AC, - 24778 - 11905: 0xBEAA, - 24779 - 11905: 0xCDEF, - 24780 - 11905: 0x90AD, - 24781 - 11905: 0x90AE, - 24782 - 11905: 0x90AF, - 24783 - 11905: 0x90B0, - 24784 - 11905: 0x90B1, - 24785 - 11905: 0xBBF3, - 24786 - 11905: 0x90B2, - 24787 - 11905: 0x90B3, - 24788 - 11905: 0x90B4, - 24789 - 11905: 0xCCE8, - 24790 - 11905: 0x90B5, - 24791 - 11905: 0x90B6, - 24792 - 11905: 0xE3AF, - 24793 - 11905: 0x90B7, - 24794 - 11905: 0xE3B1, - 24795 - 11905: 0x90B8, - 24796 - 11905: 0xCFA7, - 24797 - 11905: 0xE3AE, - 24798 - 11905: 0x90B9, - 24799 - 11905: 0xCEA9, - 24800 - 11905: 0xBBDD, - 24801 - 11905: 0x90BA, - 24802 - 11905: 0x90BB, - 24803 - 11905: 0x90BC, - 24804 - 11905: 0x90BD, - 24805 - 11905: 0x90BE, - 24806 - 11905: 0xB5EB, - 24807 - 11905: 0xBEE5, - 24808 - 11905: 0xB2D2, - 24809 - 11905: 0xB3CD, - 24810 - 11905: 0x90BF, - 24811 - 11905: 0xB1B9, - 24812 - 11905: 0xE3AB, - 24813 - 11905: 0xB2D1, - 24814 - 11905: 0xB5AC, - 24815 - 11905: 0xB9DF, - 24816 - 11905: 0xB6E8, - 24817 - 11905: 0x90C0, - 24818 - 11905: 0x90C1, - 24819 - 11905: 0xCFEB, - 24820 - 11905: 0xE3B7, - 24821 - 11905: 0x90C2, - 24822 - 11905: 0xBBCC, - 24823 - 11905: 0x90C3, - 24824 - 11905: 0x90C4, - 24825 - 11905: 0xC8C7, - 24826 - 11905: 0xD0CA, - 24827 - 11905: 0x90C5, - 24828 - 11905: 0x90C6, - 24829 - 11905: 0x90C7, - 24830 - 11905: 0x90C8, - 24831 - 11905: 0x90C9, - 24832 - 11905: 0xE3B8, - 24833 - 11905: 0xB3EE, - 24834 - 11905: 0x90CA, - 24835 - 11905: 0x90CB, - 24836 - 11905: 0x90CC, - 24837 - 11905: 0x90CD, - 24838 - 11905: 0xEDA9, - 24839 - 11905: 0x90CE, - 24840 - 11905: 0xD3FA, - 24841 - 11905: 0xD3E4, - 24842 - 11905: 0x90CF, - 24843 - 11905: 0x90D0, - 24844 - 11905: 0x90D1, - 24845 - 11905: 0xEDAA, - 24846 - 11905: 0xE3B9, - 24847 - 11905: 0xD2E2, - 24848 - 11905: 0x90D2, - 24849 - 11905: 0x90D3, - 24850 - 11905: 0x90D4, - 24851 - 11905: 0x90D5, - 24852 - 11905: 0x90D6, - 24853 - 11905: 0xE3B5, - 24854 - 11905: 0x90D7, - 24855 - 11905: 0x90D8, - 24856 - 11905: 0x90D9, - 24857 - 11905: 0x90DA, - 24858 - 11905: 0xD3DE, - 24859 - 11905: 0x90DB, - 24860 - 11905: 0x90DC, - 24861 - 11905: 0x90DD, - 24862 - 11905: 0x90DE, - 24863 - 11905: 0xB8D0, - 24864 - 11905: 0xE3B3, - 24865 - 11905: 0x90DF, - 24866 - 11905: 0x90E0, - 24867 - 11905: 0xE3B6, - 24868 - 11905: 0xB7DF, - 24869 - 11905: 0x90E1, - 24870 - 11905: 0xE3B4, - 24871 - 11905: 0xC0A2, - 24872 - 11905: 0x90E2, - 24873 - 11905: 0x90E3, - 24874 - 11905: 0x90E4, - 24875 - 11905: 0xE3BA, - 24876 - 11905: 0x90E5, - 24877 - 11905: 0x90E6, - 24878 - 11905: 0x90E7, - 24879 - 11905: 0x90E8, - 24880 - 11905: 0x90E9, - 24881 - 11905: 0x90EA, - 24882 - 11905: 0x90EB, - 24883 - 11905: 0x90EC, - 24884 - 11905: 0x90ED, - 24885 - 11905: 0x90EE, - 24886 - 11905: 0x90EF, - 24887 - 11905: 0x90F0, - 24888 - 11905: 0x90F1, - 24889 - 11905: 0x90F2, - 24890 - 11905: 0x90F3, - 24891 - 11905: 0x90F4, - 24892 - 11905: 0x90F5, - 24893 - 11905: 0x90F6, - 24894 - 11905: 0x90F7, - 24895 - 11905: 0xD4B8, - 24896 - 11905: 0x90F8, - 24897 - 11905: 0x90F9, - 24898 - 11905: 0x90FA, - 24899 - 11905: 0x90FB, - 24900 - 11905: 0x90FC, - 24901 - 11905: 0x90FD, - 24902 - 11905: 0x90FE, - 24903 - 11905: 0x9140, - 24904 - 11905: 0xB4C8, - 24905 - 11905: 0x9141, - 24906 - 11905: 0xE3BB, - 24907 - 11905: 0x9142, - 24908 - 11905: 0xBBC5, - 24909 - 11905: 0x9143, - 24910 - 11905: 0xC9F7, - 24911 - 11905: 0x9144, - 24912 - 11905: 0x9145, - 24913 - 11905: 0xC9E5, - 24914 - 11905: 0x9146, - 24915 - 11905: 0x9147, - 24916 - 11905: 0x9148, - 24917 - 11905: 0xC4BD, - 24918 - 11905: 0x9149, - 24919 - 11905: 0x914A, - 24920 - 11905: 0x914B, - 24921 - 11905: 0x914C, - 24922 - 11905: 0x914D, - 24923 - 11905: 0x914E, - 24924 - 11905: 0x914F, - 24925 - 11905: 0xEDAB, - 24926 - 11905: 0x9150, - 24927 - 11905: 0x9151, - 24928 - 11905: 0x9152, - 24929 - 11905: 0x9153, - 24930 - 11905: 0xC2FD, - 24931 - 11905: 0x9154, - 24932 - 11905: 0x9155, - 24933 - 11905: 0x9156, - 24934 - 11905: 0x9157, - 24935 - 11905: 0xBBDB, - 24936 - 11905: 0xBFAE, - 24937 - 11905: 0x9158, - 24938 - 11905: 0x9159, - 24939 - 11905: 0x915A, - 24940 - 11905: 0x915B, - 24941 - 11905: 0x915C, - 24942 - 11905: 0x915D, - 24943 - 11905: 0x915E, - 24944 - 11905: 0xCEBF, - 24945 - 11905: 0x915F, - 24946 - 11905: 0x9160, - 24947 - 11905: 0x9161, - 24948 - 11905: 0x9162, - 24949 - 11905: 0xE3BC, - 24950 - 11905: 0x9163, - 24951 - 11905: 0xBFB6, - 24952 - 11905: 0x9164, - 24953 - 11905: 0x9165, - 24954 - 11905: 0x9166, - 24955 - 11905: 0x9167, - 24956 - 11905: 0x9168, - 24957 - 11905: 0x9169, - 24958 - 11905: 0x916A, - 24959 - 11905: 0x916B, - 24960 - 11905: 0x916C, - 24961 - 11905: 0x916D, - 24962 - 11905: 0x916E, - 24963 - 11905: 0x916F, - 24964 - 11905: 0x9170, - 24965 - 11905: 0x9171, - 24966 - 11905: 0x9172, - 24967 - 11905: 0x9173, - 24968 - 11905: 0x9174, - 24969 - 11905: 0x9175, - 24970 - 11905: 0x9176, - 24971 - 11905: 0xB1EF, - 24972 - 11905: 0x9177, - 24973 - 11905: 0x9178, - 24974 - 11905: 0xD4F7, - 24975 - 11905: 0x9179, - 24976 - 11905: 0x917A, - 24977 - 11905: 0x917B, - 24978 - 11905: 0x917C, - 24979 - 11905: 0x917D, - 24980 - 11905: 0xE3BE, - 24981 - 11905: 0x917E, - 24982 - 11905: 0x9180, - 24983 - 11905: 0x9181, - 24984 - 11905: 0x9182, - 24985 - 11905: 0x9183, - 24986 - 11905: 0x9184, - 24987 - 11905: 0x9185, - 24988 - 11905: 0x9186, - 24989 - 11905: 0xEDAD, - 24990 - 11905: 0x9187, - 24991 - 11905: 0x9188, - 24992 - 11905: 0x9189, - 24993 - 11905: 0x918A, - 24994 - 11905: 0x918B, - 24995 - 11905: 0x918C, - 24996 - 11905: 0x918D, - 24997 - 11905: 0x918E, - 24998 - 11905: 0x918F, - 24999 - 11905: 0xE3BF, - 25000 - 11905: 0xBAA9, - 25001 - 11905: 0xEDAC, - 25002 - 11905: 0x9190, - 25003 - 11905: 0x9191, - 25004 - 11905: 0xE3BD, - 25005 - 11905: 0x9192, - 25006 - 11905: 0x9193, - 25007 - 11905: 0x9194, - 25008 - 11905: 0x9195, - 25009 - 11905: 0x9196, - 25010 - 11905: 0x9197, - 25011 - 11905: 0x9198, - 25012 - 11905: 0x9199, - 25013 - 11905: 0x919A, - 25014 - 11905: 0x919B, - 25015 - 11905: 0xE3C0, - 25016 - 11905: 0x919C, - 25017 - 11905: 0x919D, - 25018 - 11905: 0x919E, - 25019 - 11905: 0x919F, - 25020 - 11905: 0x91A0, - 25021 - 11905: 0x91A1, - 25022 - 11905: 0xBAB6, - 25023 - 11905: 0x91A2, - 25024 - 11905: 0x91A3, - 25025 - 11905: 0x91A4, - 25026 - 11905: 0xB6AE, - 25027 - 11905: 0x91A5, - 25028 - 11905: 0x91A6, - 25029 - 11905: 0x91A7, - 25030 - 11905: 0x91A8, - 25031 - 11905: 0x91A9, - 25032 - 11905: 0xD0B8, - 25033 - 11905: 0x91AA, - 25034 - 11905: 0xB0C3, - 25035 - 11905: 0xEDAE, - 25036 - 11905: 0x91AB, - 25037 - 11905: 0x91AC, - 25038 - 11905: 0x91AD, - 25039 - 11905: 0x91AE, - 25040 - 11905: 0x91AF, - 25041 - 11905: 0xEDAF, - 25042 - 11905: 0xC0C1, - 25043 - 11905: 0x91B0, - 25044 - 11905: 0xE3C1, - 25045 - 11905: 0x91B1, - 25046 - 11905: 0x91B2, - 25047 - 11905: 0x91B3, - 25048 - 11905: 0x91B4, - 25049 - 11905: 0x91B5, - 25050 - 11905: 0x91B6, - 25051 - 11905: 0x91B7, - 25052 - 11905: 0x91B8, - 25053 - 11905: 0x91B9, - 25054 - 11905: 0x91BA, - 25055 - 11905: 0x91BB, - 25056 - 11905: 0x91BC, - 25057 - 11905: 0x91BD, - 25058 - 11905: 0x91BE, - 25059 - 11905: 0x91BF, - 25060 - 11905: 0x91C0, - 25061 - 11905: 0x91C1, - 25062 - 11905: 0xC5B3, - 25063 - 11905: 0x91C2, - 25064 - 11905: 0x91C3, - 25065 - 11905: 0x91C4, - 25066 - 11905: 0x91C5, - 25067 - 11905: 0x91C6, - 25068 - 11905: 0x91C7, - 25069 - 11905: 0x91C8, - 25070 - 11905: 0x91C9, - 25071 - 11905: 0x91CA, - 25072 - 11905: 0x91CB, - 25073 - 11905: 0x91CC, - 25074 - 11905: 0x91CD, - 25075 - 11905: 0x91CE, - 25076 - 11905: 0x91CF, - 25077 - 11905: 0xE3C2, - 25078 - 11905: 0x91D0, - 25079 - 11905: 0x91D1, - 25080 - 11905: 0x91D2, - 25081 - 11905: 0x91D3, - 25082 - 11905: 0x91D4, - 25083 - 11905: 0x91D5, - 25084 - 11905: 0x91D6, - 25085 - 11905: 0x91D7, - 25086 - 11905: 0x91D8, - 25087 - 11905: 0xDCB2, - 25088 - 11905: 0x91D9, - 25089 - 11905: 0x91DA, - 25090 - 11905: 0x91DB, - 25091 - 11905: 0x91DC, - 25092 - 11905: 0x91DD, - 25093 - 11905: 0x91DE, - 25094 - 11905: 0xEDB0, - 25095 - 11905: 0x91DF, - 25096 - 11905: 0xB8EA, - 25097 - 11905: 0x91E0, - 25098 - 11905: 0xCEEC, - 25099 - 11905: 0xEAA7, - 25100 - 11905: 0xD0E7, - 25101 - 11905: 0xCAF9, - 25102 - 11905: 0xC8D6, - 25103 - 11905: 0xCFB7, - 25104 - 11905: 0xB3C9, - 25105 - 11905: 0xCED2, - 25106 - 11905: 0xBDE4, - 25107 - 11905: 0x91E1, - 25108 - 11905: 0x91E2, - 25109 - 11905: 0xE3DE, - 25110 - 11905: 0xBBF2, - 25111 - 11905: 0xEAA8, - 25112 - 11905: 0xD5BD, - 25113 - 11905: 0x91E3, - 25114 - 11905: 0xC6DD, - 25115 - 11905: 0xEAA9, - 25116 - 11905: 0x91E4, - 25117 - 11905: 0x91E5, - 25118 - 11905: 0x91E6, - 25119 - 11905: 0xEAAA, - 25120 - 11905: 0x91E7, - 25121 - 11905: 0xEAAC, - 25122 - 11905: 0xEAAB, - 25123 - 11905: 0x91E8, - 25124 - 11905: 0xEAAE, - 25125 - 11905: 0xEAAD, - 25126 - 11905: 0x91E9, - 25127 - 11905: 0x91EA, - 25128 - 11905: 0x91EB, - 25129 - 11905: 0x91EC, - 25130 - 11905: 0xBDD8, - 25131 - 11905: 0x91ED, - 25132 - 11905: 0xEAAF, - 25133 - 11905: 0x91EE, - 25134 - 11905: 0xC2BE, - 25135 - 11905: 0x91EF, - 25136 - 11905: 0x91F0, - 25137 - 11905: 0x91F1, - 25138 - 11905: 0x91F2, - 25139 - 11905: 0xB4C1, - 25140 - 11905: 0xB4F7, - 25141 - 11905: 0x91F3, - 25142 - 11905: 0x91F4, - 25143 - 11905: 0xBBA7, - 25144 - 11905: 0x91F5, - 25145 - 11905: 0x91F6, - 25146 - 11905: 0x91F7, - 25147 - 11905: 0x91F8, - 25148 - 11905: 0x91F9, - 25149 - 11905: 0xECE6, - 25150 - 11905: 0xECE5, - 25151 - 11905: 0xB7BF, - 25152 - 11905: 0xCBF9, - 25153 - 11905: 0xB1E2, - 25154 - 11905: 0x91FA, - 25155 - 11905: 0xECE7, - 25156 - 11905: 0x91FB, - 25157 - 11905: 0x91FC, - 25158 - 11905: 0x91FD, - 25159 - 11905: 0xC9C8, - 25160 - 11905: 0xECE8, - 25161 - 11905: 0xECE9, - 25162 - 11905: 0x91FE, - 25163 - 11905: 0xCAD6, - 25164 - 11905: 0xDED0, - 25165 - 11905: 0xB2C5, - 25166 - 11905: 0xD4FA, - 25167 - 11905: 0x9240, - 25168 - 11905: 0x9241, - 25169 - 11905: 0xC6CB, - 25170 - 11905: 0xB0C7, - 25171 - 11905: 0xB4F2, - 25172 - 11905: 0xC8D3, - 25173 - 11905: 0x9242, - 25174 - 11905: 0x9243, - 25175 - 11905: 0x9244, - 25176 - 11905: 0xCDD0, - 25177 - 11905: 0x9245, - 25178 - 11905: 0x9246, - 25179 - 11905: 0xBFB8, - 25180 - 11905: 0x9247, - 25181 - 11905: 0x9248, - 25182 - 11905: 0x9249, - 25183 - 11905: 0x924A, - 25184 - 11905: 0x924B, - 25185 - 11905: 0x924C, - 25186 - 11905: 0x924D, - 25187 - 11905: 0xBFDB, - 25188 - 11905: 0x924E, - 25189 - 11905: 0x924F, - 25190 - 11905: 0xC7A4, - 25191 - 11905: 0xD6B4, - 25192 - 11905: 0x9250, - 25193 - 11905: 0xC0A9, - 25194 - 11905: 0xDED1, - 25195 - 11905: 0xC9A8, - 25196 - 11905: 0xD1EF, - 25197 - 11905: 0xC5A4, - 25198 - 11905: 0xB0E7, - 25199 - 11905: 0xB3B6, - 25200 - 11905: 0xC8C5, - 25201 - 11905: 0x9251, - 25202 - 11905: 0x9252, - 25203 - 11905: 0xB0E2, - 25204 - 11905: 0x9253, - 25205 - 11905: 0x9254, - 25206 - 11905: 0xB7F6, - 25207 - 11905: 0x9255, - 25208 - 11905: 0x9256, - 25209 - 11905: 0xC5FA, - 25210 - 11905: 0x9257, - 25211 - 11905: 0x9258, - 25212 - 11905: 0xB6F3, - 25213 - 11905: 0x9259, - 25214 - 11905: 0xD5D2, - 25215 - 11905: 0xB3D0, - 25216 - 11905: 0xBCBC, - 25217 - 11905: 0x925A, - 25218 - 11905: 0x925B, - 25219 - 11905: 0x925C, - 25220 - 11905: 0xB3AD, - 25221 - 11905: 0x925D, - 25222 - 11905: 0x925E, - 25223 - 11905: 0x925F, - 25224 - 11905: 0x9260, - 25225 - 11905: 0xBEF1, - 25226 - 11905: 0xB0D1, - 25227 - 11905: 0x9261, - 25228 - 11905: 0x9262, - 25229 - 11905: 0x9263, - 25230 - 11905: 0x9264, - 25231 - 11905: 0x9265, - 25232 - 11905: 0x9266, - 25233 - 11905: 0xD2D6, - 25234 - 11905: 0xCAE3, - 25235 - 11905: 0xD7A5, - 25236 - 11905: 0x9267, - 25237 - 11905: 0xCDB6, - 25238 - 11905: 0xB6B6, - 25239 - 11905: 0xBFB9, - 25240 - 11905: 0xD5DB, - 25241 - 11905: 0x9268, - 25242 - 11905: 0xB8A7, - 25243 - 11905: 0xC5D7, - 25244 - 11905: 0x9269, - 25245 - 11905: 0x926A, - 25246 - 11905: 0x926B, - 25247 - 11905: 0xDED2, - 25248 - 11905: 0xBFD9, - 25249 - 11905: 0xC2D5, - 25250 - 11905: 0xC7C0, - 25251 - 11905: 0x926C, - 25252 - 11905: 0xBBA4, - 25253 - 11905: 0xB1A8, - 25254 - 11905: 0x926D, - 25255 - 11905: 0x926E, - 25256 - 11905: 0xC5EA, - 25257 - 11905: 0x926F, - 25258 - 11905: 0x9270, - 25259 - 11905: 0xC5FB, - 25260 - 11905: 0xCCA7, - 25261 - 11905: 0x9271, - 25262 - 11905: 0x9272, - 25263 - 11905: 0x9273, - 25264 - 11905: 0x9274, - 25265 - 11905: 0xB1A7, - 25266 - 11905: 0x9275, - 25267 - 11905: 0x9276, - 25268 - 11905: 0x9277, - 25269 - 11905: 0xB5D6, - 25270 - 11905: 0x9278, - 25271 - 11905: 0x9279, - 25272 - 11905: 0x927A, - 25273 - 11905: 0xC4A8, - 25274 - 11905: 0x927B, - 25275 - 11905: 0xDED3, - 25276 - 11905: 0xD1BA, - 25277 - 11905: 0xB3E9, - 25278 - 11905: 0x927C, - 25279 - 11905: 0xC3F2, - 25280 - 11905: 0x927D, - 25281 - 11905: 0x927E, - 25282 - 11905: 0xB7F7, - 25283 - 11905: 0x9280, - 25284 - 11905: 0xD6F4, - 25285 - 11905: 0xB5A3, - 25286 - 11905: 0xB2F0, - 25287 - 11905: 0xC4B4, - 25288 - 11905: 0xC4E9, - 25289 - 11905: 0xC0AD, - 25290 - 11905: 0xDED4, - 25291 - 11905: 0x9281, - 25292 - 11905: 0xB0E8, - 25293 - 11905: 0xC5C4, - 25294 - 11905: 0xC1E0, - 25295 - 11905: 0x9282, - 25296 - 11905: 0xB9D5, - 25297 - 11905: 0x9283, - 25298 - 11905: 0xBEDC, - 25299 - 11905: 0xCDD8, - 25300 - 11905: 0xB0CE, - 25301 - 11905: 0x9284, - 25302 - 11905: 0xCDCF, - 25303 - 11905: 0xDED6, - 25304 - 11905: 0xBED0, - 25305 - 11905: 0xD7BE, - 25306 - 11905: 0xDED5, - 25307 - 11905: 0xD5D0, - 25308 - 11905: 0xB0DD, - 25309 - 11905: 0x9285, - 25310 - 11905: 0x9286, - 25311 - 11905: 0xC4E2, - 25312 - 11905: 0x9287, - 25313 - 11905: 0x9288, - 25314 - 11905: 0xC2A3, - 25315 - 11905: 0xBCF0, - 25316 - 11905: 0x9289, - 25317 - 11905: 0xD3B5, - 25318 - 11905: 0xC0B9, - 25319 - 11905: 0xC5A1, - 25320 - 11905: 0xB2A6, - 25321 - 11905: 0xD4F1, - 25322 - 11905: 0x928A, - 25323 - 11905: 0x928B, - 25324 - 11905: 0xC0A8, - 25325 - 11905: 0xCAC3, - 25326 - 11905: 0xDED7, - 25327 - 11905: 0xD5FC, - 25328 - 11905: 0x928C, - 25329 - 11905: 0xB9B0, - 25330 - 11905: 0x928D, - 25331 - 11905: 0xC8AD, - 25332 - 11905: 0xCBA9, - 25333 - 11905: 0x928E, - 25334 - 11905: 0xDED9, - 25335 - 11905: 0xBFBD, - 25336 - 11905: 0x928F, - 25337 - 11905: 0x9290, - 25338 - 11905: 0x9291, - 25339 - 11905: 0x9292, - 25340 - 11905: 0xC6B4, - 25341 - 11905: 0xD7A7, - 25342 - 11905: 0xCAB0, - 25343 - 11905: 0xC4C3, - 25344 - 11905: 0x9293, - 25345 - 11905: 0xB3D6, - 25346 - 11905: 0xB9D2, - 25347 - 11905: 0x9294, - 25348 - 11905: 0x9295, - 25349 - 11905: 0x9296, - 25350 - 11905: 0x9297, - 25351 - 11905: 0xD6B8, - 25352 - 11905: 0xEAFC, - 25353 - 11905: 0xB0B4, - 25354 - 11905: 0x9298, - 25355 - 11905: 0x9299, - 25356 - 11905: 0x929A, - 25357 - 11905: 0x929B, - 25358 - 11905: 0xBFE6, - 25359 - 11905: 0x929C, - 25360 - 11905: 0x929D, - 25361 - 11905: 0xCCF4, - 25362 - 11905: 0x929E, - 25363 - 11905: 0x929F, - 25364 - 11905: 0x92A0, - 25365 - 11905: 0x92A1, - 25366 - 11905: 0xCDDA, - 25367 - 11905: 0x92A2, - 25368 - 11905: 0x92A3, - 25369 - 11905: 0x92A4, - 25370 - 11905: 0xD6BF, - 25371 - 11905: 0xC2CE, - 25372 - 11905: 0x92A5, - 25373 - 11905: 0xCECE, - 25374 - 11905: 0xCCA2, - 25375 - 11905: 0xD0AE, - 25376 - 11905: 0xC4D3, - 25377 - 11905: 0xB5B2, - 25378 - 11905: 0xDED8, - 25379 - 11905: 0xD5F5, - 25380 - 11905: 0xBCB7, - 25381 - 11905: 0xBBD3, - 25382 - 11905: 0x92A6, - 25383 - 11905: 0x92A7, - 25384 - 11905: 0xB0A4, - 25385 - 11905: 0x92A8, - 25386 - 11905: 0xC5B2, - 25387 - 11905: 0xB4EC, - 25388 - 11905: 0x92A9, - 25389 - 11905: 0x92AA, - 25390 - 11905: 0x92AB, - 25391 - 11905: 0xD5F1, - 25392 - 11905: 0x92AC, - 25393 - 11905: 0x92AD, - 25394 - 11905: 0xEAFD, - 25395 - 11905: 0x92AE, - 25396 - 11905: 0x92AF, - 25397 - 11905: 0x92B0, - 25398 - 11905: 0x92B1, - 25399 - 11905: 0x92B2, - 25400 - 11905: 0x92B3, - 25401 - 11905: 0xDEDA, - 25402 - 11905: 0xCDA6, - 25403 - 11905: 0x92B4, - 25404 - 11905: 0x92B5, - 25405 - 11905: 0xCDEC, - 25406 - 11905: 0x92B6, - 25407 - 11905: 0x92B7, - 25408 - 11905: 0x92B8, - 25409 - 11905: 0x92B9, - 25410 - 11905: 0xCEE6, - 25411 - 11905: 0xDEDC, - 25412 - 11905: 0x92BA, - 25413 - 11905: 0xCDB1, - 25414 - 11905: 0xC0A6, - 25415 - 11905: 0x92BB, - 25416 - 11905: 0x92BC, - 25417 - 11905: 0xD7BD, - 25418 - 11905: 0x92BD, - 25419 - 11905: 0xDEDB, - 25420 - 11905: 0xB0C6, - 25421 - 11905: 0xBAB4, - 25422 - 11905: 0xC9D3, - 25423 - 11905: 0xC4F3, - 25424 - 11905: 0xBEE8, - 25425 - 11905: 0x92BE, - 25426 - 11905: 0x92BF, - 25427 - 11905: 0x92C0, - 25428 - 11905: 0x92C1, - 25429 - 11905: 0xB2B6, - 25430 - 11905: 0x92C2, - 25431 - 11905: 0x92C3, - 25432 - 11905: 0x92C4, - 25433 - 11905: 0x92C5, - 25434 - 11905: 0x92C6, - 25435 - 11905: 0x92C7, - 25436 - 11905: 0x92C8, - 25437 - 11905: 0x92C9, - 25438 - 11905: 0xC0CC, - 25439 - 11905: 0xCBF0, - 25440 - 11905: 0x92CA, - 25441 - 11905: 0xBCF1, - 25442 - 11905: 0xBBBB, - 25443 - 11905: 0xB5B7, - 25444 - 11905: 0x92CB, - 25445 - 11905: 0x92CC, - 25446 - 11905: 0x92CD, - 25447 - 11905: 0xC5F5, - 25448 - 11905: 0x92CE, - 25449 - 11905: 0xDEE6, - 25450 - 11905: 0x92CF, - 25451 - 11905: 0x92D0, - 25452 - 11905: 0x92D1, - 25453 - 11905: 0xDEE3, - 25454 - 11905: 0xBEDD, - 25455 - 11905: 0x92D2, - 25456 - 11905: 0x92D3, - 25457 - 11905: 0xDEDF, - 25458 - 11905: 0x92D4, - 25459 - 11905: 0x92D5, - 25460 - 11905: 0x92D6, - 25461 - 11905: 0x92D7, - 25462 - 11905: 0xB4B7, - 25463 - 11905: 0xBDDD, - 25464 - 11905: 0x92D8, - 25465 - 11905: 0x92D9, - 25466 - 11905: 0xDEE0, - 25467 - 11905: 0xC4ED, - 25468 - 11905: 0x92DA, - 25469 - 11905: 0x92DB, - 25470 - 11905: 0x92DC, - 25471 - 11905: 0x92DD, - 25472 - 11905: 0xCFC6, - 25473 - 11905: 0x92DE, - 25474 - 11905: 0xB5E0, - 25475 - 11905: 0x92DF, - 25476 - 11905: 0x92E0, - 25477 - 11905: 0x92E1, - 25478 - 11905: 0x92E2, - 25479 - 11905: 0xB6DE, - 25480 - 11905: 0xCADA, - 25481 - 11905: 0xB5F4, - 25482 - 11905: 0xDEE5, - 25483 - 11905: 0x92E3, - 25484 - 11905: 0xD5C6, - 25485 - 11905: 0x92E4, - 25486 - 11905: 0xDEE1, - 25487 - 11905: 0xCCCD, - 25488 - 11905: 0xC6FE, - 25489 - 11905: 0x92E5, - 25490 - 11905: 0xC5C5, - 25491 - 11905: 0x92E6, - 25492 - 11905: 0x92E7, - 25493 - 11905: 0x92E8, - 25494 - 11905: 0xD2B4, - 25495 - 11905: 0x92E9, - 25496 - 11905: 0xBEF2, - 25497 - 11905: 0x92EA, - 25498 - 11905: 0x92EB, - 25499 - 11905: 0x92EC, - 25500 - 11905: 0x92ED, - 25501 - 11905: 0x92EE, - 25502 - 11905: 0x92EF, - 25503 - 11905: 0x92F0, - 25504 - 11905: 0xC2D3, - 25505 - 11905: 0x92F1, - 25506 - 11905: 0xCCBD, - 25507 - 11905: 0xB3B8, - 25508 - 11905: 0x92F2, - 25509 - 11905: 0xBDD3, - 25510 - 11905: 0x92F3, - 25511 - 11905: 0xBFD8, - 25512 - 11905: 0xCDC6, - 25513 - 11905: 0xD1DA, - 25514 - 11905: 0xB4EB, - 25515 - 11905: 0x92F4, - 25516 - 11905: 0xDEE4, - 25517 - 11905: 0xDEDD, - 25518 - 11905: 0xDEE7, - 25519 - 11905: 0x92F5, - 25520 - 11905: 0xEAFE, - 25521 - 11905: 0x92F6, - 25522 - 11905: 0x92F7, - 25523 - 11905: 0xC2B0, - 25524 - 11905: 0xDEE2, - 25525 - 11905: 0x92F8, - 25526 - 11905: 0x92F9, - 25527 - 11905: 0xD6C0, - 25528 - 11905: 0xB5A7, - 25529 - 11905: 0x92FA, - 25530 - 11905: 0xB2F4, - 25531 - 11905: 0x92FB, - 25532 - 11905: 0xDEE8, - 25533 - 11905: 0x92FC, - 25534 - 11905: 0xDEF2, - 25535 - 11905: 0x92FD, - 25536 - 11905: 0x92FE, - 25537 - 11905: 0x9340, - 25538 - 11905: 0x9341, - 25539 - 11905: 0x9342, - 25540 - 11905: 0xDEED, - 25541 - 11905: 0x9343, - 25542 - 11905: 0xDEF1, - 25543 - 11905: 0x9344, - 25544 - 11905: 0x9345, - 25545 - 11905: 0xC8E0, - 25546 - 11905: 0x9346, - 25547 - 11905: 0x9347, - 25548 - 11905: 0x9348, - 25549 - 11905: 0xD7E1, - 25550 - 11905: 0xDEEF, - 25551 - 11905: 0xC3E8, - 25552 - 11905: 0xCCE1, - 25553 - 11905: 0x9349, - 25554 - 11905: 0xB2E5, - 25555 - 11905: 0x934A, - 25556 - 11905: 0x934B, - 25557 - 11905: 0x934C, - 25558 - 11905: 0xD2BE, - 25559 - 11905: 0x934D, - 25560 - 11905: 0x934E, - 25561 - 11905: 0x934F, - 25562 - 11905: 0x9350, - 25563 - 11905: 0x9351, - 25564 - 11905: 0x9352, - 25565 - 11905: 0x9353, - 25566 - 11905: 0xDEEE, - 25567 - 11905: 0x9354, - 25568 - 11905: 0xDEEB, - 25569 - 11905: 0xCED5, - 25570 - 11905: 0x9355, - 25571 - 11905: 0xB4A7, - 25572 - 11905: 0x9356, - 25573 - 11905: 0x9357, - 25574 - 11905: 0x9358, - 25575 - 11905: 0x9359, - 25576 - 11905: 0x935A, - 25577 - 11905: 0xBFAB, - 25578 - 11905: 0xBEBE, - 25579 - 11905: 0x935B, - 25580 - 11905: 0x935C, - 25581 - 11905: 0xBDD2, - 25582 - 11905: 0x935D, - 25583 - 11905: 0x935E, - 25584 - 11905: 0x935F, - 25585 - 11905: 0x9360, - 25586 - 11905: 0xDEE9, - 25587 - 11905: 0x9361, - 25588 - 11905: 0xD4AE, - 25589 - 11905: 0x9362, - 25590 - 11905: 0xDEDE, - 25591 - 11905: 0x9363, - 25592 - 11905: 0xDEEA, - 25593 - 11905: 0x9364, - 25594 - 11905: 0x9365, - 25595 - 11905: 0x9366, - 25596 - 11905: 0x9367, - 25597 - 11905: 0xC0BF, - 25598 - 11905: 0x9368, - 25599 - 11905: 0xDEEC, - 25600 - 11905: 0xB2F3, - 25601 - 11905: 0xB8E9, - 25602 - 11905: 0xC2A7, - 25603 - 11905: 0x9369, - 25604 - 11905: 0x936A, - 25605 - 11905: 0xBDC1, - 25606 - 11905: 0x936B, - 25607 - 11905: 0x936C, - 25608 - 11905: 0x936D, - 25609 - 11905: 0x936E, - 25610 - 11905: 0x936F, - 25611 - 11905: 0xDEF5, - 25612 - 11905: 0xDEF8, - 25613 - 11905: 0x9370, - 25614 - 11905: 0x9371, - 25615 - 11905: 0xB2AB, - 25616 - 11905: 0xB4A4, - 25617 - 11905: 0x9372, - 25618 - 11905: 0x9373, - 25619 - 11905: 0xB4EA, - 25620 - 11905: 0xC9A6, - 25621 - 11905: 0x9374, - 25622 - 11905: 0x9375, - 25623 - 11905: 0x9376, - 25624 - 11905: 0x9377, - 25625 - 11905: 0x9378, - 25626 - 11905: 0x9379, - 25627 - 11905: 0xDEF6, - 25628 - 11905: 0xCBD1, - 25629 - 11905: 0x937A, - 25630 - 11905: 0xB8E3, - 25631 - 11905: 0x937B, - 25632 - 11905: 0xDEF7, - 25633 - 11905: 0xDEFA, - 25634 - 11905: 0x937C, - 25635 - 11905: 0x937D, - 25636 - 11905: 0x937E, - 25637 - 11905: 0x9380, - 25638 - 11905: 0xDEF9, - 25639 - 11905: 0x9381, - 25640 - 11905: 0x9382, - 25641 - 11905: 0x9383, - 25642 - 11905: 0xCCC2, - 25643 - 11905: 0x9384, - 25644 - 11905: 0xB0E1, - 25645 - 11905: 0xB4EE, - 25646 - 11905: 0x9385, - 25647 - 11905: 0x9386, - 25648 - 11905: 0x9387, - 25649 - 11905: 0x9388, - 25650 - 11905: 0x9389, - 25651 - 11905: 0x938A, - 25652 - 11905: 0xE5BA, - 25653 - 11905: 0x938B, - 25654 - 11905: 0x938C, - 25655 - 11905: 0x938D, - 25656 - 11905: 0x938E, - 25657 - 11905: 0x938F, - 25658 - 11905: 0xD0AF, - 25659 - 11905: 0x9390, - 25660 - 11905: 0x9391, - 25661 - 11905: 0xB2EB, - 25662 - 11905: 0x9392, - 25663 - 11905: 0xEBA1, - 25664 - 11905: 0x9393, - 25665 - 11905: 0xDEF4, - 25666 - 11905: 0x9394, - 25667 - 11905: 0x9395, - 25668 - 11905: 0xC9E3, - 25669 - 11905: 0xDEF3, - 25670 - 11905: 0xB0DA, - 25671 - 11905: 0xD2A1, - 25672 - 11905: 0xB1F7, - 25673 - 11905: 0x9396, - 25674 - 11905: 0xCCAF, - 25675 - 11905: 0x9397, - 25676 - 11905: 0x9398, - 25677 - 11905: 0x9399, - 25678 - 11905: 0x939A, - 25679 - 11905: 0x939B, - 25680 - 11905: 0x939C, - 25681 - 11905: 0x939D, - 25682 - 11905: 0xDEF0, - 25683 - 11905: 0x939E, - 25684 - 11905: 0xCBA4, - 25685 - 11905: 0x939F, - 25686 - 11905: 0x93A0, - 25687 - 11905: 0x93A1, - 25688 - 11905: 0xD5AA, - 25689 - 11905: 0x93A2, - 25690 - 11905: 0x93A3, - 25691 - 11905: 0x93A4, - 25692 - 11905: 0x93A5, - 25693 - 11905: 0x93A6, - 25694 - 11905: 0xDEFB, - 25695 - 11905: 0x93A7, - 25696 - 11905: 0x93A8, - 25697 - 11905: 0x93A9, - 25698 - 11905: 0x93AA, - 25699 - 11905: 0x93AB, - 25700 - 11905: 0x93AC, - 25701 - 11905: 0x93AD, - 25702 - 11905: 0x93AE, - 25703 - 11905: 0xB4DD, - 25704 - 11905: 0x93AF, - 25705 - 11905: 0xC4A6, - 25706 - 11905: 0x93B0, - 25707 - 11905: 0x93B1, - 25708 - 11905: 0x93B2, - 25709 - 11905: 0xDEFD, - 25710 - 11905: 0x93B3, - 25711 - 11905: 0x93B4, - 25712 - 11905: 0x93B5, - 25713 - 11905: 0x93B6, - 25714 - 11905: 0x93B7, - 25715 - 11905: 0x93B8, - 25716 - 11905: 0x93B9, - 25717 - 11905: 0x93BA, - 25718 - 11905: 0x93BB, - 25719 - 11905: 0x93BC, - 25720 - 11905: 0xC3FE, - 25721 - 11905: 0xC4A1, - 25722 - 11905: 0xDFA1, - 25723 - 11905: 0x93BD, - 25724 - 11905: 0x93BE, - 25725 - 11905: 0x93BF, - 25726 - 11905: 0x93C0, - 25727 - 11905: 0x93C1, - 25728 - 11905: 0x93C2, - 25729 - 11905: 0x93C3, - 25730 - 11905: 0xC1CC, - 25731 - 11905: 0x93C4, - 25732 - 11905: 0xDEFC, - 25733 - 11905: 0xBEEF, - 25734 - 11905: 0x93C5, - 25735 - 11905: 0xC6B2, - 25736 - 11905: 0x93C6, - 25737 - 11905: 0x93C7, - 25738 - 11905: 0x93C8, - 25739 - 11905: 0x93C9, - 25740 - 11905: 0x93CA, - 25741 - 11905: 0x93CB, - 25742 - 11905: 0x93CC, - 25743 - 11905: 0x93CD, - 25744 - 11905: 0x93CE, - 25745 - 11905: 0xB3C5, - 25746 - 11905: 0xC8F6, - 25747 - 11905: 0x93CF, - 25748 - 11905: 0x93D0, - 25749 - 11905: 0xCBBA, - 25750 - 11905: 0xDEFE, - 25751 - 11905: 0x93D1, - 25752 - 11905: 0x93D2, - 25753 - 11905: 0xDFA4, - 25754 - 11905: 0x93D3, - 25755 - 11905: 0x93D4, - 25756 - 11905: 0x93D5, - 25757 - 11905: 0x93D6, - 25758 - 11905: 0xD7B2, - 25759 - 11905: 0x93D7, - 25760 - 11905: 0x93D8, - 25761 - 11905: 0x93D9, - 25762 - 11905: 0x93DA, - 25763 - 11905: 0x93DB, - 25764 - 11905: 0xB3B7, - 25765 - 11905: 0x93DC, - 25766 - 11905: 0x93DD, - 25767 - 11905: 0x93DE, - 25768 - 11905: 0x93DF, - 25769 - 11905: 0xC1C3, - 25770 - 11905: 0x93E0, - 25771 - 11905: 0x93E1, - 25772 - 11905: 0xC7CB, - 25773 - 11905: 0xB2A5, - 25774 - 11905: 0xB4E9, - 25775 - 11905: 0x93E2, - 25776 - 11905: 0xD7AB, - 25777 - 11905: 0x93E3, - 25778 - 11905: 0x93E4, - 25779 - 11905: 0x93E5, - 25780 - 11905: 0x93E6, - 25781 - 11905: 0xC4EC, - 25782 - 11905: 0x93E7, - 25783 - 11905: 0xDFA2, - 25784 - 11905: 0xDFA3, - 25785 - 11905: 0x93E8, - 25786 - 11905: 0xDFA5, - 25787 - 11905: 0x93E9, - 25788 - 11905: 0xBAB3, - 25789 - 11905: 0x93EA, - 25790 - 11905: 0x93EB, - 25791 - 11905: 0x93EC, - 25792 - 11905: 0xDFA6, - 25793 - 11905: 0x93ED, - 25794 - 11905: 0xC0DE, - 25795 - 11905: 0x93EE, - 25796 - 11905: 0x93EF, - 25797 - 11905: 0xC9C3, - 25798 - 11905: 0x93F0, - 25799 - 11905: 0x93F1, - 25800 - 11905: 0x93F2, - 25801 - 11905: 0x93F3, - 25802 - 11905: 0x93F4, - 25803 - 11905: 0x93F5, - 25804 - 11905: 0x93F6, - 25805 - 11905: 0xB2D9, - 25806 - 11905: 0xC7E6, - 25807 - 11905: 0x93F7, - 25808 - 11905: 0xDFA7, - 25809 - 11905: 0x93F8, - 25810 - 11905: 0xC7DC, - 25811 - 11905: 0x93F9, - 25812 - 11905: 0x93FA, - 25813 - 11905: 0x93FB, - 25814 - 11905: 0x93FC, - 25815 - 11905: 0xDFA8, - 25816 - 11905: 0xEBA2, - 25817 - 11905: 0x93FD, - 25818 - 11905: 0x93FE, - 25819 - 11905: 0x9440, - 25820 - 11905: 0x9441, - 25821 - 11905: 0x9442, - 25822 - 11905: 0xCBD3, - 25823 - 11905: 0x9443, - 25824 - 11905: 0x9444, - 25825 - 11905: 0x9445, - 25826 - 11905: 0xDFAA, - 25827 - 11905: 0x9446, - 25828 - 11905: 0xDFA9, - 25829 - 11905: 0x9447, - 25830 - 11905: 0xB2C1, - 25831 - 11905: 0x9448, - 25832 - 11905: 0x9449, - 25833 - 11905: 0x944A, - 25834 - 11905: 0x944B, - 25835 - 11905: 0x944C, - 25836 - 11905: 0x944D, - 25837 - 11905: 0x944E, - 25838 - 11905: 0x944F, - 25839 - 11905: 0x9450, - 25840 - 11905: 0x9451, - 25841 - 11905: 0x9452, - 25842 - 11905: 0x9453, - 25843 - 11905: 0x9454, - 25844 - 11905: 0x9455, - 25845 - 11905: 0x9456, - 25846 - 11905: 0x9457, - 25847 - 11905: 0x9458, - 25848 - 11905: 0x9459, - 25849 - 11905: 0x945A, - 25850 - 11905: 0x945B, - 25851 - 11905: 0x945C, - 25852 - 11905: 0x945D, - 25853 - 11905: 0x945E, - 25854 - 11905: 0x945F, - 25855 - 11905: 0x9460, - 25856 - 11905: 0xC5CA, - 25857 - 11905: 0x9461, - 25858 - 11905: 0x9462, - 25859 - 11905: 0x9463, - 25860 - 11905: 0x9464, - 25861 - 11905: 0x9465, - 25862 - 11905: 0x9466, - 25863 - 11905: 0x9467, - 25864 - 11905: 0x9468, - 25865 - 11905: 0xDFAB, - 25866 - 11905: 0x9469, - 25867 - 11905: 0x946A, - 25868 - 11905: 0x946B, - 25869 - 11905: 0x946C, - 25870 - 11905: 0x946D, - 25871 - 11905: 0x946E, - 25872 - 11905: 0x946F, - 25873 - 11905: 0x9470, - 25874 - 11905: 0xD4DC, - 25875 - 11905: 0x9471, - 25876 - 11905: 0x9472, - 25877 - 11905: 0x9473, - 25878 - 11905: 0x9474, - 25879 - 11905: 0x9475, - 25880 - 11905: 0xC8C1, - 25881 - 11905: 0x9476, - 25882 - 11905: 0x9477, - 25883 - 11905: 0x9478, - 25884 - 11905: 0x9479, - 25885 - 11905: 0x947A, - 25886 - 11905: 0x947B, - 25887 - 11905: 0x947C, - 25888 - 11905: 0x947D, - 25889 - 11905: 0x947E, - 25890 - 11905: 0x9480, - 25891 - 11905: 0x9481, - 25892 - 11905: 0x9482, - 25893 - 11905: 0xDFAC, - 25894 - 11905: 0x9483, - 25895 - 11905: 0x9484, - 25896 - 11905: 0x9485, - 25897 - 11905: 0x9486, - 25898 - 11905: 0x9487, - 25899 - 11905: 0xBEF0, - 25900 - 11905: 0x9488, - 25901 - 11905: 0x9489, - 25902 - 11905: 0xDFAD, - 25903 - 11905: 0xD6A7, - 25904 - 11905: 0x948A, - 25905 - 11905: 0x948B, - 25906 - 11905: 0x948C, - 25907 - 11905: 0x948D, - 25908 - 11905: 0xEAB7, - 25909 - 11905: 0xEBB6, - 25910 - 11905: 0xCAD5, - 25911 - 11905: 0x948E, - 25912 - 11905: 0xD8FC, - 25913 - 11905: 0xB8C4, - 25914 - 11905: 0x948F, - 25915 - 11905: 0xB9A5, - 25916 - 11905: 0x9490, - 25917 - 11905: 0x9491, - 25918 - 11905: 0xB7C5, - 25919 - 11905: 0xD5FE, - 25920 - 11905: 0x9492, - 25921 - 11905: 0x9493, - 25922 - 11905: 0x9494, - 25923 - 11905: 0x9495, - 25924 - 11905: 0x9496, - 25925 - 11905: 0xB9CA, - 25926 - 11905: 0x9497, - 25927 - 11905: 0x9498, - 25928 - 11905: 0xD0A7, - 25929 - 11905: 0xF4CD, - 25930 - 11905: 0x9499, - 25931 - 11905: 0x949A, - 25932 - 11905: 0xB5D0, - 25933 - 11905: 0x949B, - 25934 - 11905: 0x949C, - 25935 - 11905: 0xC3F4, - 25936 - 11905: 0x949D, - 25937 - 11905: 0xBEC8, - 25938 - 11905: 0x949E, - 25939 - 11905: 0x949F, - 25940 - 11905: 0x94A0, - 25941 - 11905: 0xEBB7, - 25942 - 11905: 0xB0BD, - 25943 - 11905: 0x94A1, - 25944 - 11905: 0x94A2, - 25945 - 11905: 0xBDCC, - 25946 - 11905: 0x94A3, - 25947 - 11905: 0xC1B2, - 25948 - 11905: 0x94A4, - 25949 - 11905: 0xB1D6, - 25950 - 11905: 0xB3A8, - 25951 - 11905: 0x94A5, - 25952 - 11905: 0x94A6, - 25953 - 11905: 0x94A7, - 25954 - 11905: 0xB8D2, - 25955 - 11905: 0xC9A2, - 25956 - 11905: 0x94A8, - 25957 - 11905: 0x94A9, - 25958 - 11905: 0xB6D8, - 25959 - 11905: 0x94AA, - 25960 - 11905: 0x94AB, - 25961 - 11905: 0x94AC, - 25962 - 11905: 0x94AD, - 25963 - 11905: 0xEBB8, - 25964 - 11905: 0xBEB4, - 25965 - 11905: 0x94AE, - 25966 - 11905: 0x94AF, - 25967 - 11905: 0x94B0, - 25968 - 11905: 0xCAFD, - 25969 - 11905: 0x94B1, - 25970 - 11905: 0xC7C3, - 25971 - 11905: 0x94B2, - 25972 - 11905: 0xD5FB, - 25973 - 11905: 0x94B3, - 25974 - 11905: 0x94B4, - 25975 - 11905: 0xB7F3, - 25976 - 11905: 0x94B5, - 25977 - 11905: 0x94B6, - 25978 - 11905: 0x94B7, - 25979 - 11905: 0x94B8, - 25980 - 11905: 0x94B9, - 25981 - 11905: 0x94BA, - 25982 - 11905: 0x94BB, - 25983 - 11905: 0x94BC, - 25984 - 11905: 0x94BD, - 25985 - 11905: 0x94BE, - 25986 - 11905: 0x94BF, - 25987 - 11905: 0x94C0, - 25988 - 11905: 0x94C1, - 25989 - 11905: 0x94C2, - 25990 - 11905: 0x94C3, - 25991 - 11905: 0xCEC4, - 25992 - 11905: 0x94C4, - 25993 - 11905: 0x94C5, - 25994 - 11905: 0x94C6, - 25995 - 11905: 0xD5AB, - 25996 - 11905: 0xB1F3, - 25997 - 11905: 0x94C7, - 25998 - 11905: 0x94C8, - 25999 - 11905: 0x94C9, - 26000 - 11905: 0xECB3, - 26001 - 11905: 0xB0DF, - 26002 - 11905: 0x94CA, - 26003 - 11905: 0xECB5, - 26004 - 11905: 0x94CB, - 26005 - 11905: 0x94CC, - 26006 - 11905: 0x94CD, - 26007 - 11905: 0xB6B7, - 26008 - 11905: 0x94CE, - 26009 - 11905: 0xC1CF, - 26010 - 11905: 0x94CF, - 26011 - 11905: 0xF5FA, - 26012 - 11905: 0xD0B1, - 26013 - 11905: 0x94D0, - 26014 - 11905: 0x94D1, - 26015 - 11905: 0xD5E5, - 26016 - 11905: 0x94D2, - 26017 - 11905: 0xCED3, - 26018 - 11905: 0x94D3, - 26019 - 11905: 0x94D4, - 26020 - 11905: 0xBDEF, - 26021 - 11905: 0xB3E2, - 26022 - 11905: 0x94D5, - 26023 - 11905: 0xB8AB, - 26024 - 11905: 0x94D6, - 26025 - 11905: 0xD5B6, - 26026 - 11905: 0x94D7, - 26027 - 11905: 0xEDBD, - 26028 - 11905: 0x94D8, - 26029 - 11905: 0xB6CF, - 26030 - 11905: 0x94D9, - 26031 - 11905: 0xCBB9, - 26032 - 11905: 0xD0C2, - 26033 - 11905: 0x94DA, - 26034 - 11905: 0x94DB, - 26035 - 11905: 0x94DC, - 26036 - 11905: 0x94DD, - 26037 - 11905: 0x94DE, - 26038 - 11905: 0x94DF, - 26039 - 11905: 0x94E0, - 26040 - 11905: 0x94E1, - 26041 - 11905: 0xB7BD, - 26042 - 11905: 0x94E2, - 26043 - 11905: 0x94E3, - 26044 - 11905: 0xECB6, - 26045 - 11905: 0xCAA9, - 26046 - 11905: 0x94E4, - 26047 - 11905: 0x94E5, - 26048 - 11905: 0x94E6, - 26049 - 11905: 0xC5D4, - 26050 - 11905: 0x94E7, - 26051 - 11905: 0xECB9, - 26052 - 11905: 0xECB8, - 26053 - 11905: 0xC2C3, - 26054 - 11905: 0xECB7, - 26055 - 11905: 0x94E8, - 26056 - 11905: 0x94E9, - 26057 - 11905: 0x94EA, - 26058 - 11905: 0x94EB, - 26059 - 11905: 0xD0FD, - 26060 - 11905: 0xECBA, - 26061 - 11905: 0x94EC, - 26062 - 11905: 0xECBB, - 26063 - 11905: 0xD7E5, - 26064 - 11905: 0x94ED, - 26065 - 11905: 0x94EE, - 26066 - 11905: 0xECBC, - 26067 - 11905: 0x94EF, - 26068 - 11905: 0x94F0, - 26069 - 11905: 0x94F1, - 26070 - 11905: 0xECBD, - 26071 - 11905: 0xC6EC, - 26072 - 11905: 0x94F2, - 26073 - 11905: 0x94F3, - 26074 - 11905: 0x94F4, - 26075 - 11905: 0x94F5, - 26076 - 11905: 0x94F6, - 26077 - 11905: 0x94F7, - 26078 - 11905: 0x94F8, - 26079 - 11905: 0x94F9, - 26080 - 11905: 0xCEDE, - 26081 - 11905: 0x94FA, - 26082 - 11905: 0xBCC8, - 26083 - 11905: 0x94FB, - 26084 - 11905: 0x94FC, - 26085 - 11905: 0xC8D5, - 26086 - 11905: 0xB5A9, - 26087 - 11905: 0xBEC9, - 26088 - 11905: 0xD6BC, - 26089 - 11905: 0xD4E7, - 26090 - 11905: 0x94FD, - 26091 - 11905: 0x94FE, - 26092 - 11905: 0xD1AE, - 26093 - 11905: 0xD0F1, - 26094 - 11905: 0xEAB8, - 26095 - 11905: 0xEAB9, - 26096 - 11905: 0xEABA, - 26097 - 11905: 0xBAB5, - 26098 - 11905: 0x9540, - 26099 - 11905: 0x9541, - 26100 - 11905: 0x9542, - 26101 - 11905: 0x9543, - 26102 - 11905: 0xCAB1, - 26103 - 11905: 0xBFF5, - 26104 - 11905: 0x9544, - 26105 - 11905: 0x9545, - 26106 - 11905: 0xCDFA, - 26107 - 11905: 0x9546, - 26108 - 11905: 0x9547, - 26109 - 11905: 0x9548, - 26110 - 11905: 0x9549, - 26111 - 11905: 0x954A, - 26112 - 11905: 0xEAC0, - 26113 - 11905: 0x954B, - 26114 - 11905: 0xB0BA, - 26115 - 11905: 0xEABE, - 26116 - 11905: 0x954C, - 26117 - 11905: 0x954D, - 26118 - 11905: 0xC0A5, - 26119 - 11905: 0x954E, - 26120 - 11905: 0x954F, - 26121 - 11905: 0x9550, - 26122 - 11905: 0xEABB, - 26123 - 11905: 0x9551, - 26124 - 11905: 0xB2FD, - 26125 - 11905: 0x9552, - 26126 - 11905: 0xC3F7, - 26127 - 11905: 0xBBE8, - 26128 - 11905: 0x9553, - 26129 - 11905: 0x9554, - 26130 - 11905: 0x9555, - 26131 - 11905: 0xD2D7, - 26132 - 11905: 0xCEF4, - 26133 - 11905: 0xEABF, - 26134 - 11905: 0x9556, - 26135 - 11905: 0x9557, - 26136 - 11905: 0x9558, - 26137 - 11905: 0xEABC, - 26138 - 11905: 0x9559, - 26139 - 11905: 0x955A, - 26140 - 11905: 0x955B, - 26141 - 11905: 0xEAC3, - 26142 - 11905: 0x955C, - 26143 - 11905: 0xD0C7, - 26144 - 11905: 0xD3B3, - 26145 - 11905: 0x955D, - 26146 - 11905: 0x955E, - 26147 - 11905: 0x955F, - 26148 - 11905: 0x9560, - 26149 - 11905: 0xB4BA, - 26150 - 11905: 0x9561, - 26151 - 11905: 0xC3C1, - 26152 - 11905: 0xD7F2, - 26153 - 11905: 0x9562, - 26154 - 11905: 0x9563, - 26155 - 11905: 0x9564, - 26156 - 11905: 0x9565, - 26157 - 11905: 0xD5D1, - 26158 - 11905: 0x9566, - 26159 - 11905: 0xCAC7, - 26160 - 11905: 0x9567, - 26161 - 11905: 0xEAC5, - 26162 - 11905: 0x9568, - 26163 - 11905: 0x9569, - 26164 - 11905: 0xEAC4, - 26165 - 11905: 0xEAC7, - 26166 - 11905: 0xEAC6, - 26167 - 11905: 0x956A, - 26168 - 11905: 0x956B, - 26169 - 11905: 0x956C, - 26170 - 11905: 0x956D, - 26171 - 11905: 0x956E, - 26172 - 11905: 0xD6E7, - 26173 - 11905: 0x956F, - 26174 - 11905: 0xCFD4, - 26175 - 11905: 0x9570, - 26176 - 11905: 0x9571, - 26177 - 11905: 0xEACB, - 26178 - 11905: 0x9572, - 26179 - 11905: 0xBBCE, - 26180 - 11905: 0x9573, - 26181 - 11905: 0x9574, - 26182 - 11905: 0x9575, - 26183 - 11905: 0x9576, - 26184 - 11905: 0x9577, - 26185 - 11905: 0x9578, - 26186 - 11905: 0x9579, - 26187 - 11905: 0xBDFA, - 26188 - 11905: 0xC9CE, - 26189 - 11905: 0x957A, - 26190 - 11905: 0x957B, - 26191 - 11905: 0xEACC, - 26192 - 11905: 0x957C, - 26193 - 11905: 0x957D, - 26194 - 11905: 0xC9B9, - 26195 - 11905: 0xCFFE, - 26196 - 11905: 0xEACA, - 26197 - 11905: 0xD4CE, - 26198 - 11905: 0xEACD, - 26199 - 11905: 0xEACF, - 26200 - 11905: 0x957E, - 26201 - 11905: 0x9580, - 26202 - 11905: 0xCDED, - 26203 - 11905: 0x9581, - 26204 - 11905: 0x9582, - 26205 - 11905: 0x9583, - 26206 - 11905: 0x9584, - 26207 - 11905: 0xEAC9, - 26208 - 11905: 0x9585, - 26209 - 11905: 0xEACE, - 26210 - 11905: 0x9586, - 26211 - 11905: 0x9587, - 26212 - 11905: 0xCEEE, - 26213 - 11905: 0x9588, - 26214 - 11905: 0xBBDE, - 26215 - 11905: 0x9589, - 26216 - 11905: 0xB3BF, - 26217 - 11905: 0x958A, - 26218 - 11905: 0x958B, - 26219 - 11905: 0x958C, - 26220 - 11905: 0x958D, - 26221 - 11905: 0x958E, - 26222 - 11905: 0xC6D5, - 26223 - 11905: 0xBEB0, - 26224 - 11905: 0xCEFA, - 26225 - 11905: 0x958F, - 26226 - 11905: 0x9590, - 26227 - 11905: 0x9591, - 26228 - 11905: 0xC7E7, - 26229 - 11905: 0x9592, - 26230 - 11905: 0xBEA7, - 26231 - 11905: 0xEAD0, - 26232 - 11905: 0x9593, - 26233 - 11905: 0x9594, - 26234 - 11905: 0xD6C7, - 26235 - 11905: 0x9595, - 26236 - 11905: 0x9596, - 26237 - 11905: 0x9597, - 26238 - 11905: 0xC1C0, - 26239 - 11905: 0x9598, - 26240 - 11905: 0x9599, - 26241 - 11905: 0x959A, - 26242 - 11905: 0xD4DD, - 26243 - 11905: 0x959B, - 26244 - 11905: 0xEAD1, - 26245 - 11905: 0x959C, - 26246 - 11905: 0x959D, - 26247 - 11905: 0xCFBE, - 26248 - 11905: 0x959E, - 26249 - 11905: 0x959F, - 26250 - 11905: 0x95A0, - 26251 - 11905: 0x95A1, - 26252 - 11905: 0xEAD2, - 26253 - 11905: 0x95A2, - 26254 - 11905: 0x95A3, - 26255 - 11905: 0x95A4, - 26256 - 11905: 0x95A5, - 26257 - 11905: 0xCAEE, - 26258 - 11905: 0x95A6, - 26259 - 11905: 0x95A7, - 26260 - 11905: 0x95A8, - 26261 - 11905: 0x95A9, - 26262 - 11905: 0xC5AF, - 26263 - 11905: 0xB0B5, - 26264 - 11905: 0x95AA, - 26265 - 11905: 0x95AB, - 26266 - 11905: 0x95AC, - 26267 - 11905: 0x95AD, - 26268 - 11905: 0x95AE, - 26269 - 11905: 0xEAD4, - 26270 - 11905: 0x95AF, - 26271 - 11905: 0x95B0, - 26272 - 11905: 0x95B1, - 26273 - 11905: 0x95B2, - 26274 - 11905: 0x95B3, - 26275 - 11905: 0x95B4, - 26276 - 11905: 0x95B5, - 26277 - 11905: 0x95B6, - 26278 - 11905: 0x95B7, - 26279 - 11905: 0xEAD3, - 26280 - 11905: 0xF4DF, - 26281 - 11905: 0x95B8, - 26282 - 11905: 0x95B9, - 26283 - 11905: 0x95BA, - 26284 - 11905: 0x95BB, - 26285 - 11905: 0x95BC, - 26286 - 11905: 0xC4BA, - 26287 - 11905: 0x95BD, - 26288 - 11905: 0x95BE, - 26289 - 11905: 0x95BF, - 26290 - 11905: 0x95C0, - 26291 - 11905: 0x95C1, - 26292 - 11905: 0xB1A9, - 26293 - 11905: 0x95C2, - 26294 - 11905: 0x95C3, - 26295 - 11905: 0x95C4, - 26296 - 11905: 0x95C5, - 26297 - 11905: 0xE5DF, - 26298 - 11905: 0x95C6, - 26299 - 11905: 0x95C7, - 26300 - 11905: 0x95C8, - 26301 - 11905: 0x95C9, - 26302 - 11905: 0xEAD5, - 26303 - 11905: 0x95CA, - 26304 - 11905: 0x95CB, - 26305 - 11905: 0x95CC, - 26306 - 11905: 0x95CD, - 26307 - 11905: 0x95CE, - 26308 - 11905: 0x95CF, - 26309 - 11905: 0x95D0, - 26310 - 11905: 0x95D1, - 26311 - 11905: 0x95D2, - 26312 - 11905: 0x95D3, - 26313 - 11905: 0x95D4, - 26314 - 11905: 0x95D5, - 26315 - 11905: 0x95D6, - 26316 - 11905: 0x95D7, - 26317 - 11905: 0x95D8, - 26318 - 11905: 0x95D9, - 26319 - 11905: 0x95DA, - 26320 - 11905: 0x95DB, - 26321 - 11905: 0x95DC, - 26322 - 11905: 0x95DD, - 26323 - 11905: 0x95DE, - 26324 - 11905: 0x95DF, - 26325 - 11905: 0x95E0, - 26326 - 11905: 0x95E1, - 26327 - 11905: 0x95E2, - 26328 - 11905: 0x95E3, - 26329 - 11905: 0xCAEF, - 26330 - 11905: 0x95E4, - 26331 - 11905: 0xEAD6, - 26332 - 11905: 0xEAD7, - 26333 - 11905: 0xC6D8, - 26334 - 11905: 0x95E5, - 26335 - 11905: 0x95E6, - 26336 - 11905: 0x95E7, - 26337 - 11905: 0x95E8, - 26338 - 11905: 0x95E9, - 26339 - 11905: 0x95EA, - 26340 - 11905: 0x95EB, - 26341 - 11905: 0x95EC, - 26342 - 11905: 0xEAD8, - 26343 - 11905: 0x95ED, - 26344 - 11905: 0x95EE, - 26345 - 11905: 0xEAD9, - 26346 - 11905: 0x95EF, - 26347 - 11905: 0x95F0, - 26348 - 11905: 0x95F1, - 26349 - 11905: 0x95F2, - 26350 - 11905: 0x95F3, - 26351 - 11905: 0x95F4, - 26352 - 11905: 0xD4BB, - 26353 - 11905: 0x95F5, - 26354 - 11905: 0xC7FA, - 26355 - 11905: 0xD2B7, - 26356 - 11905: 0xB8FC, - 26357 - 11905: 0x95F6, - 26358 - 11905: 0x95F7, - 26359 - 11905: 0xEAC2, - 26360 - 11905: 0x95F8, - 26361 - 11905: 0xB2DC, - 26362 - 11905: 0x95F9, - 26363 - 11905: 0x95FA, - 26364 - 11905: 0xC2FC, - 26365 - 11905: 0x95FB, - 26366 - 11905: 0xD4F8, - 26367 - 11905: 0xCCE6, - 26368 - 11905: 0xD7EE, - 26369 - 11905: 0x95FC, - 26370 - 11905: 0x95FD, - 26371 - 11905: 0x95FE, - 26372 - 11905: 0x9640, - 26373 - 11905: 0x9641, - 26374 - 11905: 0x9642, - 26375 - 11905: 0x9643, - 26376 - 11905: 0xD4C2, - 26377 - 11905: 0xD3D0, - 26378 - 11905: 0xEBC3, - 26379 - 11905: 0xC5F3, - 26380 - 11905: 0x9644, - 26381 - 11905: 0xB7FE, - 26382 - 11905: 0x9645, - 26383 - 11905: 0x9646, - 26384 - 11905: 0xEBD4, - 26385 - 11905: 0x9647, - 26386 - 11905: 0x9648, - 26387 - 11905: 0x9649, - 26388 - 11905: 0xCBB7, - 26389 - 11905: 0xEBDE, - 26390 - 11905: 0x964A, - 26391 - 11905: 0xC0CA, - 26392 - 11905: 0x964B, - 26393 - 11905: 0x964C, - 26394 - 11905: 0x964D, - 26395 - 11905: 0xCDFB, - 26396 - 11905: 0x964E, - 26397 - 11905: 0xB3AF, - 26398 - 11905: 0x964F, - 26399 - 11905: 0xC6DA, - 26400 - 11905: 0x9650, - 26401 - 11905: 0x9651, - 26402 - 11905: 0x9652, - 26403 - 11905: 0x9653, - 26404 - 11905: 0x9654, - 26405 - 11905: 0x9655, - 26406 - 11905: 0xEBFC, - 26407 - 11905: 0x9656, - 26408 - 11905: 0xC4BE, - 26409 - 11905: 0x9657, - 26410 - 11905: 0xCEB4, - 26411 - 11905: 0xC4A9, - 26412 - 11905: 0xB1BE, - 26413 - 11905: 0xD4FD, - 26414 - 11905: 0x9658, - 26415 - 11905: 0xCAF5, - 26416 - 11905: 0x9659, - 26417 - 11905: 0xD6EC, - 26418 - 11905: 0x965A, - 26419 - 11905: 0x965B, - 26420 - 11905: 0xC6D3, - 26421 - 11905: 0xB6E4, - 26422 - 11905: 0x965C, - 26423 - 11905: 0x965D, - 26424 - 11905: 0x965E, - 26425 - 11905: 0x965F, - 26426 - 11905: 0xBBFA, - 26427 - 11905: 0x9660, - 26428 - 11905: 0x9661, - 26429 - 11905: 0xD0E0, - 26430 - 11905: 0x9662, - 26431 - 11905: 0x9663, - 26432 - 11905: 0xC9B1, - 26433 - 11905: 0x9664, - 26434 - 11905: 0xD4D3, - 26435 - 11905: 0xC8A8, - 26436 - 11905: 0x9665, - 26437 - 11905: 0x9666, - 26438 - 11905: 0xB8CB, - 26439 - 11905: 0x9667, - 26440 - 11905: 0xE8BE, - 26441 - 11905: 0xC9BC, - 26442 - 11905: 0x9668, - 26443 - 11905: 0x9669, - 26444 - 11905: 0xE8BB, - 26445 - 11905: 0x966A, - 26446 - 11905: 0xC0EE, - 26447 - 11905: 0xD0D3, - 26448 - 11905: 0xB2C4, - 26449 - 11905: 0xB4E5, - 26450 - 11905: 0x966B, - 26451 - 11905: 0xE8BC, - 26452 - 11905: 0x966C, - 26453 - 11905: 0x966D, - 26454 - 11905: 0xD5C8, - 26455 - 11905: 0x966E, - 26456 - 11905: 0x966F, - 26457 - 11905: 0x9670, - 26458 - 11905: 0x9671, - 26459 - 11905: 0x9672, - 26460 - 11905: 0xB6C5, - 26461 - 11905: 0x9673, - 26462 - 11905: 0xE8BD, - 26463 - 11905: 0xCAF8, - 26464 - 11905: 0xB8DC, - 26465 - 11905: 0xCCF5, - 26466 - 11905: 0x9674, - 26467 - 11905: 0x9675, - 26468 - 11905: 0x9676, - 26469 - 11905: 0xC0B4, - 26470 - 11905: 0x9677, - 26471 - 11905: 0x9678, - 26472 - 11905: 0xD1EE, - 26473 - 11905: 0xE8BF, - 26474 - 11905: 0xE8C2, - 26475 - 11905: 0x9679, - 26476 - 11905: 0x967A, - 26477 - 11905: 0xBABC, - 26478 - 11905: 0x967B, - 26479 - 11905: 0xB1AD, - 26480 - 11905: 0xBDDC, - 26481 - 11905: 0x967C, - 26482 - 11905: 0xEABD, - 26483 - 11905: 0xE8C3, - 26484 - 11905: 0x967D, - 26485 - 11905: 0xE8C6, - 26486 - 11905: 0x967E, - 26487 - 11905: 0xE8CB, - 26488 - 11905: 0x9680, - 26489 - 11905: 0x9681, - 26490 - 11905: 0x9682, - 26491 - 11905: 0x9683, - 26492 - 11905: 0xE8CC, - 26493 - 11905: 0x9684, - 26494 - 11905: 0xCBC9, - 26495 - 11905: 0xB0E5, - 26496 - 11905: 0x9685, - 26497 - 11905: 0xBCAB, - 26498 - 11905: 0x9686, - 26499 - 11905: 0x9687, - 26500 - 11905: 0xB9B9, - 26501 - 11905: 0x9688, - 26502 - 11905: 0x9689, - 26503 - 11905: 0xE8C1, - 26504 - 11905: 0x968A, - 26505 - 11905: 0xCDF7, - 26506 - 11905: 0x968B, - 26507 - 11905: 0xE8CA, - 26508 - 11905: 0x968C, - 26509 - 11905: 0x968D, - 26510 - 11905: 0x968E, - 26511 - 11905: 0x968F, - 26512 - 11905: 0xCEF6, - 26513 - 11905: 0x9690, - 26514 - 11905: 0x9691, - 26515 - 11905: 0x9692, - 26516 - 11905: 0x9693, - 26517 - 11905: 0xD5ED, - 26518 - 11905: 0x9694, - 26519 - 11905: 0xC1D6, - 26520 - 11905: 0xE8C4, - 26521 - 11905: 0x9695, - 26522 - 11905: 0xC3B6, - 26523 - 11905: 0x9696, - 26524 - 11905: 0xB9FB, - 26525 - 11905: 0xD6A6, - 26526 - 11905: 0xE8C8, - 26527 - 11905: 0x9697, - 26528 - 11905: 0x9698, - 26529 - 11905: 0x9699, - 26530 - 11905: 0xCAE0, - 26531 - 11905: 0xD4E6, - 26532 - 11905: 0x969A, - 26533 - 11905: 0xE8C0, - 26534 - 11905: 0x969B, - 26535 - 11905: 0xE8C5, - 26536 - 11905: 0xE8C7, - 26537 - 11905: 0x969C, - 26538 - 11905: 0xC7B9, - 26539 - 11905: 0xB7E3, - 26540 - 11905: 0x969D, - 26541 - 11905: 0xE8C9, - 26542 - 11905: 0x969E, - 26543 - 11905: 0xBFDD, - 26544 - 11905: 0xE8D2, - 26545 - 11905: 0x969F, - 26546 - 11905: 0x96A0, - 26547 - 11905: 0xE8D7, - 26548 - 11905: 0x96A1, - 26549 - 11905: 0xE8D5, - 26550 - 11905: 0xBCDC, - 26551 - 11905: 0xBCCF, - 26552 - 11905: 0xE8DB, - 26553 - 11905: 0x96A2, - 26554 - 11905: 0x96A3, - 26555 - 11905: 0x96A4, - 26556 - 11905: 0x96A5, - 26557 - 11905: 0x96A6, - 26558 - 11905: 0x96A7, - 26559 - 11905: 0x96A8, - 26560 - 11905: 0x96A9, - 26561 - 11905: 0xE8DE, - 26562 - 11905: 0x96AA, - 26563 - 11905: 0xE8DA, - 26564 - 11905: 0xB1FA, - 26565 - 11905: 0x96AB, - 26566 - 11905: 0x96AC, - 26567 - 11905: 0x96AD, - 26568 - 11905: 0x96AE, - 26569 - 11905: 0x96AF, - 26570 - 11905: 0x96B0, - 26571 - 11905: 0x96B1, - 26572 - 11905: 0x96B2, - 26573 - 11905: 0x96B3, - 26574 - 11905: 0x96B4, - 26575 - 11905: 0xB0D8, - 26576 - 11905: 0xC4B3, - 26577 - 11905: 0xB8CC, - 26578 - 11905: 0xC6E2, - 26579 - 11905: 0xC8BE, - 26580 - 11905: 0xC8E1, - 26581 - 11905: 0x96B5, - 26582 - 11905: 0x96B6, - 26583 - 11905: 0x96B7, - 26584 - 11905: 0xE8CF, - 26585 - 11905: 0xE8D4, - 26586 - 11905: 0xE8D6, - 26587 - 11905: 0x96B8, - 26588 - 11905: 0xB9F1, - 26589 - 11905: 0xE8D8, - 26590 - 11905: 0xD7F5, - 26591 - 11905: 0x96B9, - 26592 - 11905: 0xC4FB, - 26593 - 11905: 0x96BA, - 26594 - 11905: 0xE8DC, - 26595 - 11905: 0x96BB, - 26596 - 11905: 0x96BC, - 26597 - 11905: 0xB2E9, - 26598 - 11905: 0x96BD, - 26599 - 11905: 0x96BE, - 26600 - 11905: 0x96BF, - 26601 - 11905: 0xE8D1, - 26602 - 11905: 0x96C0, - 26603 - 11905: 0x96C1, - 26604 - 11905: 0xBCED, - 26605 - 11905: 0x96C2, - 26606 - 11905: 0x96C3, - 26607 - 11905: 0xBFC2, - 26608 - 11905: 0xE8CD, - 26609 - 11905: 0xD6F9, - 26610 - 11905: 0x96C4, - 26611 - 11905: 0xC1F8, - 26612 - 11905: 0xB2F1, - 26613 - 11905: 0x96C5, - 26614 - 11905: 0x96C6, - 26615 - 11905: 0x96C7, - 26616 - 11905: 0x96C8, - 26617 - 11905: 0x96C9, - 26618 - 11905: 0x96CA, - 26619 - 11905: 0x96CB, - 26620 - 11905: 0x96CC, - 26621 - 11905: 0xE8DF, - 26622 - 11905: 0x96CD, - 26623 - 11905: 0xCAC1, - 26624 - 11905: 0xE8D9, - 26625 - 11905: 0x96CE, - 26626 - 11905: 0x96CF, - 26627 - 11905: 0x96D0, - 26628 - 11905: 0x96D1, - 26629 - 11905: 0xD5A4, - 26630 - 11905: 0x96D2, - 26631 - 11905: 0xB1EA, - 26632 - 11905: 0xD5BB, - 26633 - 11905: 0xE8CE, - 26634 - 11905: 0xE8D0, - 26635 - 11905: 0xB6B0, - 26636 - 11905: 0xE8D3, - 26637 - 11905: 0x96D3, - 26638 - 11905: 0xE8DD, - 26639 - 11905: 0xC0B8, - 26640 - 11905: 0x96D4, - 26641 - 11905: 0xCAF7, - 26642 - 11905: 0x96D5, - 26643 - 11905: 0xCBA8, - 26644 - 11905: 0x96D6, - 26645 - 11905: 0x96D7, - 26646 - 11905: 0xC6DC, - 26647 - 11905: 0xC0F5, - 26648 - 11905: 0x96D8, - 26649 - 11905: 0x96D9, - 26650 - 11905: 0x96DA, - 26651 - 11905: 0x96DB, - 26652 - 11905: 0x96DC, - 26653 - 11905: 0xE8E9, - 26654 - 11905: 0x96DD, - 26655 - 11905: 0x96DE, - 26656 - 11905: 0x96DF, - 26657 - 11905: 0xD0A3, - 26658 - 11905: 0x96E0, - 26659 - 11905: 0x96E1, - 26660 - 11905: 0x96E2, - 26661 - 11905: 0x96E3, - 26662 - 11905: 0x96E4, - 26663 - 11905: 0x96E5, - 26664 - 11905: 0x96E6, - 26665 - 11905: 0xE8F2, - 26666 - 11905: 0xD6EA, - 26667 - 11905: 0x96E7, - 26668 - 11905: 0x96E8, - 26669 - 11905: 0x96E9, - 26670 - 11905: 0x96EA, - 26671 - 11905: 0x96EB, - 26672 - 11905: 0x96EC, - 26673 - 11905: 0x96ED, - 26674 - 11905: 0xE8E0, - 26675 - 11905: 0xE8E1, - 26676 - 11905: 0x96EE, - 26677 - 11905: 0x96EF, - 26678 - 11905: 0x96F0, - 26679 - 11905: 0xD1F9, - 26680 - 11905: 0xBACB, - 26681 - 11905: 0xB8F9, - 26682 - 11905: 0x96F1, - 26683 - 11905: 0x96F2, - 26684 - 11905: 0xB8F1, - 26685 - 11905: 0xD4D4, - 26686 - 11905: 0xE8EF, - 26687 - 11905: 0x96F3, - 26688 - 11905: 0xE8EE, - 26689 - 11905: 0xE8EC, - 26690 - 11905: 0xB9F0, - 26691 - 11905: 0xCCD2, - 26692 - 11905: 0xE8E6, - 26693 - 11905: 0xCEA6, - 26694 - 11905: 0xBFF2, - 26695 - 11905: 0x96F4, - 26696 - 11905: 0xB0B8, - 26697 - 11905: 0xE8F1, - 26698 - 11905: 0xE8F0, - 26699 - 11905: 0x96F5, - 26700 - 11905: 0xD7C0, - 26701 - 11905: 0x96F6, - 26702 - 11905: 0xE8E4, - 26703 - 11905: 0x96F7, - 26704 - 11905: 0xCDA9, - 26705 - 11905: 0xC9A3, - 26706 - 11905: 0x96F8, - 26707 - 11905: 0xBBB8, - 26708 - 11905: 0xBDDB, - 26709 - 11905: 0xE8EA, - 26710 - 11905: 0x96F9, - 26711 - 11905: 0x96FA, - 26712 - 11905: 0x96FB, - 26713 - 11905: 0x96FC, - 26714 - 11905: 0x96FD, - 26715 - 11905: 0x96FE, - 26716 - 11905: 0x9740, - 26717 - 11905: 0x9741, - 26718 - 11905: 0x9742, - 26719 - 11905: 0x9743, - 26720 - 11905: 0xE8E2, - 26721 - 11905: 0xE8E3, - 26722 - 11905: 0xE8E5, - 26723 - 11905: 0xB5B5, - 26724 - 11905: 0xE8E7, - 26725 - 11905: 0xC7C5, - 26726 - 11905: 0xE8EB, - 26727 - 11905: 0xE8ED, - 26728 - 11905: 0xBDB0, - 26729 - 11905: 0xD7AE, - 26730 - 11905: 0x9744, - 26731 - 11905: 0xE8F8, - 26732 - 11905: 0x9745, - 26733 - 11905: 0x9746, - 26734 - 11905: 0x9747, - 26735 - 11905: 0x9748, - 26736 - 11905: 0x9749, - 26737 - 11905: 0x974A, - 26738 - 11905: 0x974B, - 26739 - 11905: 0x974C, - 26740 - 11905: 0xE8F5, - 26741 - 11905: 0x974D, - 26742 - 11905: 0xCDB0, - 26743 - 11905: 0xE8F6, - 26744 - 11905: 0x974E, - 26745 - 11905: 0x974F, - 26746 - 11905: 0x9750, - 26747 - 11905: 0x9751, - 26748 - 11905: 0x9752, - 26749 - 11905: 0x9753, - 26750 - 11905: 0x9754, - 26751 - 11905: 0x9755, - 26752 - 11905: 0x9756, - 26753 - 11905: 0xC1BA, - 26754 - 11905: 0x9757, - 26755 - 11905: 0xE8E8, - 26756 - 11905: 0x9758, - 26757 - 11905: 0xC3B7, - 26758 - 11905: 0xB0F0, - 26759 - 11905: 0x9759, - 26760 - 11905: 0x975A, - 26761 - 11905: 0x975B, - 26762 - 11905: 0x975C, - 26763 - 11905: 0x975D, - 26764 - 11905: 0x975E, - 26765 - 11905: 0x975F, - 26766 - 11905: 0x9760, - 26767 - 11905: 0xE8F4, - 26768 - 11905: 0x9761, - 26769 - 11905: 0x9762, - 26770 - 11905: 0x9763, - 26771 - 11905: 0xE8F7, - 26772 - 11905: 0x9764, - 26773 - 11905: 0x9765, - 26774 - 11905: 0x9766, - 26775 - 11905: 0xB9A3, - 26776 - 11905: 0x9767, - 26777 - 11905: 0x9768, - 26778 - 11905: 0x9769, - 26779 - 11905: 0x976A, - 26780 - 11905: 0x976B, - 26781 - 11905: 0x976C, - 26782 - 11905: 0x976D, - 26783 - 11905: 0x976E, - 26784 - 11905: 0x976F, - 26785 - 11905: 0x9770, - 26786 - 11905: 0xC9D2, - 26787 - 11905: 0x9771, - 26788 - 11905: 0x9772, - 26789 - 11905: 0x9773, - 26790 - 11905: 0xC3CE, - 26791 - 11905: 0xCEE0, - 26792 - 11905: 0xC0E6, - 26793 - 11905: 0x9774, - 26794 - 11905: 0x9775, - 26795 - 11905: 0x9776, - 26796 - 11905: 0x9777, - 26797 - 11905: 0xCBF3, - 26798 - 11905: 0x9778, - 26799 - 11905: 0xCCDD, - 26800 - 11905: 0xD0B5, - 26801 - 11905: 0x9779, - 26802 - 11905: 0x977A, - 26803 - 11905: 0xCAE1, - 26804 - 11905: 0x977B, - 26805 - 11905: 0xE8F3, - 26806 - 11905: 0x977C, - 26807 - 11905: 0x977D, - 26808 - 11905: 0x977E, - 26809 - 11905: 0x9780, - 26810 - 11905: 0x9781, - 26811 - 11905: 0x9782, - 26812 - 11905: 0x9783, - 26813 - 11905: 0x9784, - 26814 - 11905: 0x9785, - 26815 - 11905: 0x9786, - 26816 - 11905: 0xBCEC, - 26817 - 11905: 0x9787, - 26818 - 11905: 0xE8F9, - 26819 - 11905: 0x9788, - 26820 - 11905: 0x9789, - 26821 - 11905: 0x978A, - 26822 - 11905: 0x978B, - 26823 - 11905: 0x978C, - 26824 - 11905: 0x978D, - 26825 - 11905: 0xC3DE, - 26826 - 11905: 0x978E, - 26827 - 11905: 0xC6E5, - 26828 - 11905: 0x978F, - 26829 - 11905: 0xB9F7, - 26830 - 11905: 0x9790, - 26831 - 11905: 0x9791, - 26832 - 11905: 0x9792, - 26833 - 11905: 0x9793, - 26834 - 11905: 0xB0F4, - 26835 - 11905: 0x9794, - 26836 - 11905: 0x9795, - 26837 - 11905: 0xD7D8, - 26838 - 11905: 0x9796, - 26839 - 11905: 0x9797, - 26840 - 11905: 0xBCAC, - 26841 - 11905: 0x9798, - 26842 - 11905: 0xC5EF, - 26843 - 11905: 0x9799, - 26844 - 11905: 0x979A, - 26845 - 11905: 0x979B, - 26846 - 11905: 0x979C, - 26847 - 11905: 0x979D, - 26848 - 11905: 0xCCC4, - 26849 - 11905: 0x979E, - 26850 - 11905: 0x979F, - 26851 - 11905: 0xE9A6, - 26852 - 11905: 0x97A0, - 26853 - 11905: 0x97A1, - 26854 - 11905: 0x97A2, - 26855 - 11905: 0x97A3, - 26856 - 11905: 0x97A4, - 26857 - 11905: 0x97A5, - 26858 - 11905: 0x97A6, - 26859 - 11905: 0x97A7, - 26860 - 11905: 0x97A8, - 26861 - 11905: 0x97A9, - 26862 - 11905: 0xC9AD, - 26863 - 11905: 0x97AA, - 26864 - 11905: 0xE9A2, - 26865 - 11905: 0xC0E2, - 26866 - 11905: 0x97AB, - 26867 - 11905: 0x97AC, - 26868 - 11905: 0x97AD, - 26869 - 11905: 0xBFC3, - 26870 - 11905: 0x97AE, - 26871 - 11905: 0x97AF, - 26872 - 11905: 0x97B0, - 26873 - 11905: 0xE8FE, - 26874 - 11905: 0xB9D7, - 26875 - 11905: 0x97B1, - 26876 - 11905: 0xE8FB, - 26877 - 11905: 0x97B2, - 26878 - 11905: 0x97B3, - 26879 - 11905: 0x97B4, - 26880 - 11905: 0x97B5, - 26881 - 11905: 0xE9A4, - 26882 - 11905: 0x97B6, - 26883 - 11905: 0x97B7, - 26884 - 11905: 0x97B8, - 26885 - 11905: 0xD2CE, - 26886 - 11905: 0x97B9, - 26887 - 11905: 0x97BA, - 26888 - 11905: 0x97BB, - 26889 - 11905: 0x97BC, - 26890 - 11905: 0x97BD, - 26891 - 11905: 0xE9A3, - 26892 - 11905: 0x97BE, - 26893 - 11905: 0xD6B2, - 26894 - 11905: 0xD7B5, - 26895 - 11905: 0x97BF, - 26896 - 11905: 0xE9A7, - 26897 - 11905: 0x97C0, - 26898 - 11905: 0xBDB7, - 26899 - 11905: 0x97C1, - 26900 - 11905: 0x97C2, - 26901 - 11905: 0x97C3, - 26902 - 11905: 0x97C4, - 26903 - 11905: 0x97C5, - 26904 - 11905: 0x97C6, - 26905 - 11905: 0x97C7, - 26906 - 11905: 0x97C8, - 26907 - 11905: 0x97C9, - 26908 - 11905: 0x97CA, - 26909 - 11905: 0x97CB, - 26910 - 11905: 0x97CC, - 26911 - 11905: 0xE8FC, - 26912 - 11905: 0xE8FD, - 26913 - 11905: 0x97CD, - 26914 - 11905: 0x97CE, - 26915 - 11905: 0x97CF, - 26916 - 11905: 0xE9A1, - 26917 - 11905: 0x97D0, - 26918 - 11905: 0x97D1, - 26919 - 11905: 0x97D2, - 26920 - 11905: 0x97D3, - 26921 - 11905: 0x97D4, - 26922 - 11905: 0x97D5, - 26923 - 11905: 0x97D6, - 26924 - 11905: 0x97D7, - 26925 - 11905: 0xCDD6, - 26926 - 11905: 0x97D8, - 26927 - 11905: 0x97D9, - 26928 - 11905: 0xD2AC, - 26929 - 11905: 0x97DA, - 26930 - 11905: 0x97DB, - 26931 - 11905: 0x97DC, - 26932 - 11905: 0xE9B2, - 26933 - 11905: 0x97DD, - 26934 - 11905: 0x97DE, - 26935 - 11905: 0x97DF, - 26936 - 11905: 0x97E0, - 26937 - 11905: 0xE9A9, - 26938 - 11905: 0x97E1, - 26939 - 11905: 0x97E2, - 26940 - 11905: 0x97E3, - 26941 - 11905: 0xB4AA, - 26942 - 11905: 0x97E4, - 26943 - 11905: 0xB4BB, - 26944 - 11905: 0x97E5, - 26945 - 11905: 0x97E6, - 26946 - 11905: 0xE9AB, - 26947 - 11905: 0x97E7, - 26948 - 11905: 0x97E8, - 26949 - 11905: 0x97E9, - 26950 - 11905: 0x97EA, - 26951 - 11905: 0x97EB, - 26952 - 11905: 0x97EC, - 26953 - 11905: 0x97ED, - 26954 - 11905: 0x97EE, - 26955 - 11905: 0x97EF, - 26956 - 11905: 0x97F0, - 26957 - 11905: 0x97F1, - 26958 - 11905: 0x97F2, - 26959 - 11905: 0x97F3, - 26960 - 11905: 0x97F4, - 26961 - 11905: 0x97F5, - 26962 - 11905: 0x97F6, - 26963 - 11905: 0x97F7, - 26964 - 11905: 0xD0A8, - 26965 - 11905: 0x97F8, - 26966 - 11905: 0x97F9, - 26967 - 11905: 0xE9A5, - 26968 - 11905: 0x97FA, - 26969 - 11905: 0x97FB, - 26970 - 11905: 0xB3FE, - 26971 - 11905: 0x97FC, - 26972 - 11905: 0x97FD, - 26973 - 11905: 0xE9AC, - 26974 - 11905: 0xC0E3, - 26975 - 11905: 0x97FE, - 26976 - 11905: 0xE9AA, - 26977 - 11905: 0x9840, - 26978 - 11905: 0x9841, - 26979 - 11905: 0xE9B9, - 26980 - 11905: 0x9842, - 26981 - 11905: 0x9843, - 26982 - 11905: 0xE9B8, - 26983 - 11905: 0x9844, - 26984 - 11905: 0x9845, - 26985 - 11905: 0x9846, - 26986 - 11905: 0x9847, - 26987 - 11905: 0xE9AE, - 26988 - 11905: 0x9848, - 26989 - 11905: 0x9849, - 26990 - 11905: 0xE8FA, - 26991 - 11905: 0x984A, - 26992 - 11905: 0x984B, - 26993 - 11905: 0xE9A8, - 26994 - 11905: 0x984C, - 26995 - 11905: 0x984D, - 26996 - 11905: 0x984E, - 26997 - 11905: 0x984F, - 26998 - 11905: 0x9850, - 26999 - 11905: 0xBFAC, - 27000 - 11905: 0xE9B1, - 27001 - 11905: 0xE9BA, - 27002 - 11905: 0x9851, - 27003 - 11905: 0x9852, - 27004 - 11905: 0xC2A5, - 27005 - 11905: 0x9853, - 27006 - 11905: 0x9854, - 27007 - 11905: 0x9855, - 27008 - 11905: 0xE9AF, - 27009 - 11905: 0x9856, - 27010 - 11905: 0xB8C5, - 27011 - 11905: 0x9857, - 27012 - 11905: 0xE9AD, - 27013 - 11905: 0x9858, - 27014 - 11905: 0xD3DC, - 27015 - 11905: 0xE9B4, - 27016 - 11905: 0xE9B5, - 27017 - 11905: 0xE9B7, - 27018 - 11905: 0x9859, - 27019 - 11905: 0x985A, - 27020 - 11905: 0x985B, - 27021 - 11905: 0xE9C7, - 27022 - 11905: 0x985C, - 27023 - 11905: 0x985D, - 27024 - 11905: 0x985E, - 27025 - 11905: 0x985F, - 27026 - 11905: 0x9860, - 27027 - 11905: 0x9861, - 27028 - 11905: 0xC0C6, - 27029 - 11905: 0xE9C5, - 27030 - 11905: 0x9862, - 27031 - 11905: 0x9863, - 27032 - 11905: 0xE9B0, - 27033 - 11905: 0x9864, - 27034 - 11905: 0x9865, - 27035 - 11905: 0xE9BB, - 27036 - 11905: 0xB0F1, - 27037 - 11905: 0x9866, - 27038 - 11905: 0x9867, - 27039 - 11905: 0x9868, - 27040 - 11905: 0x9869, - 27041 - 11905: 0x986A, - 27042 - 11905: 0x986B, - 27043 - 11905: 0x986C, - 27044 - 11905: 0x986D, - 27045 - 11905: 0x986E, - 27046 - 11905: 0x986F, - 27047 - 11905: 0xE9BC, - 27048 - 11905: 0xD5A5, - 27049 - 11905: 0x9870, - 27050 - 11905: 0x9871, - 27051 - 11905: 0xE9BE, - 27052 - 11905: 0x9872, - 27053 - 11905: 0xE9BF, - 27054 - 11905: 0x9873, - 27055 - 11905: 0x9874, - 27056 - 11905: 0x9875, - 27057 - 11905: 0xE9C1, - 27058 - 11905: 0x9876, - 27059 - 11905: 0x9877, - 27060 - 11905: 0xC1F1, - 27061 - 11905: 0x9878, - 27062 - 11905: 0x9879, - 27063 - 11905: 0xC8B6, - 27064 - 11905: 0x987A, - 27065 - 11905: 0x987B, - 27066 - 11905: 0x987C, - 27067 - 11905: 0xE9BD, - 27068 - 11905: 0x987D, - 27069 - 11905: 0x987E, - 27070 - 11905: 0x9880, - 27071 - 11905: 0x9881, - 27072 - 11905: 0x9882, - 27073 - 11905: 0xE9C2, - 27074 - 11905: 0x9883, - 27075 - 11905: 0x9884, - 27076 - 11905: 0x9885, - 27077 - 11905: 0x9886, - 27078 - 11905: 0x9887, - 27079 - 11905: 0x9888, - 27080 - 11905: 0x9889, - 27081 - 11905: 0x988A, - 27082 - 11905: 0xE9C3, - 27083 - 11905: 0x988B, - 27084 - 11905: 0xE9B3, - 27085 - 11905: 0x988C, - 27086 - 11905: 0xE9B6, - 27087 - 11905: 0x988D, - 27088 - 11905: 0xBBB1, - 27089 - 11905: 0x988E, - 27090 - 11905: 0x988F, - 27091 - 11905: 0x9890, - 27092 - 11905: 0xE9C0, - 27093 - 11905: 0x9891, - 27094 - 11905: 0x9892, - 27095 - 11905: 0x9893, - 27096 - 11905: 0x9894, - 27097 - 11905: 0x9895, - 27098 - 11905: 0x9896, - 27099 - 11905: 0xBCF7, - 27100 - 11905: 0x9897, - 27101 - 11905: 0x9898, - 27102 - 11905: 0x9899, - 27103 - 11905: 0xE9C4, - 27104 - 11905: 0xE9C6, - 27105 - 11905: 0x989A, - 27106 - 11905: 0x989B, - 27107 - 11905: 0x989C, - 27108 - 11905: 0x989D, - 27109 - 11905: 0x989E, - 27110 - 11905: 0x989F, - 27111 - 11905: 0x98A0, - 27112 - 11905: 0x98A1, - 27113 - 11905: 0x98A2, - 27114 - 11905: 0x98A3, - 27115 - 11905: 0x98A4, - 27116 - 11905: 0x98A5, - 27117 - 11905: 0xE9CA, - 27118 - 11905: 0x98A6, - 27119 - 11905: 0x98A7, - 27120 - 11905: 0x98A8, - 27121 - 11905: 0x98A9, - 27122 - 11905: 0xE9CE, - 27123 - 11905: 0x98AA, - 27124 - 11905: 0x98AB, - 27125 - 11905: 0x98AC, - 27126 - 11905: 0x98AD, - 27127 - 11905: 0x98AE, - 27128 - 11905: 0x98AF, - 27129 - 11905: 0x98B0, - 27130 - 11905: 0x98B1, - 27131 - 11905: 0x98B2, - 27132 - 11905: 0x98B3, - 27133 - 11905: 0xB2DB, - 27134 - 11905: 0x98B4, - 27135 - 11905: 0xE9C8, - 27136 - 11905: 0x98B5, - 27137 - 11905: 0x98B6, - 27138 - 11905: 0x98B7, - 27139 - 11905: 0x98B8, - 27140 - 11905: 0x98B9, - 27141 - 11905: 0x98BA, - 27142 - 11905: 0x98BB, - 27143 - 11905: 0x98BC, - 27144 - 11905: 0x98BD, - 27145 - 11905: 0x98BE, - 27146 - 11905: 0xB7AE, - 27147 - 11905: 0x98BF, - 27148 - 11905: 0x98C0, - 27149 - 11905: 0x98C1, - 27150 - 11905: 0x98C2, - 27151 - 11905: 0x98C3, - 27152 - 11905: 0x98C4, - 27153 - 11905: 0x98C5, - 27154 - 11905: 0x98C6, - 27155 - 11905: 0x98C7, - 27156 - 11905: 0x98C8, - 27157 - 11905: 0x98C9, - 27158 - 11905: 0x98CA, - 27159 - 11905: 0xE9CB, - 27160 - 11905: 0xE9CC, - 27161 - 11905: 0x98CB, - 27162 - 11905: 0x98CC, - 27163 - 11905: 0x98CD, - 27164 - 11905: 0x98CE, - 27165 - 11905: 0x98CF, - 27166 - 11905: 0x98D0, - 27167 - 11905: 0xD5C1, - 27168 - 11905: 0x98D1, - 27169 - 11905: 0xC4A3, - 27170 - 11905: 0x98D2, - 27171 - 11905: 0x98D3, - 27172 - 11905: 0x98D4, - 27173 - 11905: 0x98D5, - 27174 - 11905: 0x98D6, - 27175 - 11905: 0x98D7, - 27176 - 11905: 0xE9D8, - 27177 - 11905: 0x98D8, - 27178 - 11905: 0xBAE1, - 27179 - 11905: 0x98D9, - 27180 - 11905: 0x98DA, - 27181 - 11905: 0x98DB, - 27182 - 11905: 0x98DC, - 27183 - 11905: 0xE9C9, - 27184 - 11905: 0x98DD, - 27185 - 11905: 0xD3A3, - 27186 - 11905: 0x98DE, - 27187 - 11905: 0x98DF, - 27188 - 11905: 0x98E0, - 27189 - 11905: 0xE9D4, - 27190 - 11905: 0x98E1, - 27191 - 11905: 0x98E2, - 27192 - 11905: 0x98E3, - 27193 - 11905: 0x98E4, - 27194 - 11905: 0x98E5, - 27195 - 11905: 0x98E6, - 27196 - 11905: 0x98E7, - 27197 - 11905: 0xE9D7, - 27198 - 11905: 0xE9D0, - 27199 - 11905: 0x98E8, - 27200 - 11905: 0x98E9, - 27201 - 11905: 0x98EA, - 27202 - 11905: 0x98EB, - 27203 - 11905: 0x98EC, - 27204 - 11905: 0xE9CF, - 27205 - 11905: 0x98ED, - 27206 - 11905: 0x98EE, - 27207 - 11905: 0xC7C1, - 27208 - 11905: 0x98EF, - 27209 - 11905: 0x98F0, - 27210 - 11905: 0x98F1, - 27211 - 11905: 0x98F2, - 27212 - 11905: 0x98F3, - 27213 - 11905: 0x98F4, - 27214 - 11905: 0x98F5, - 27215 - 11905: 0x98F6, - 27216 - 11905: 0xE9D2, - 27217 - 11905: 0x98F7, - 27218 - 11905: 0x98F8, - 27219 - 11905: 0x98F9, - 27220 - 11905: 0x98FA, - 27221 - 11905: 0x98FB, - 27222 - 11905: 0x98FC, - 27223 - 11905: 0x98FD, - 27224 - 11905: 0xE9D9, - 27225 - 11905: 0xB3C8, - 27226 - 11905: 0x98FE, - 27227 - 11905: 0xE9D3, - 27228 - 11905: 0x9940, - 27229 - 11905: 0x9941, - 27230 - 11905: 0x9942, - 27231 - 11905: 0x9943, - 27232 - 11905: 0x9944, - 27233 - 11905: 0xCFF0, - 27234 - 11905: 0x9945, - 27235 - 11905: 0x9946, - 27236 - 11905: 0x9947, - 27237 - 11905: 0xE9CD, - 27238 - 11905: 0x9948, - 27239 - 11905: 0x9949, - 27240 - 11905: 0x994A, - 27241 - 11905: 0x994B, - 27242 - 11905: 0x994C, - 27243 - 11905: 0x994D, - 27244 - 11905: 0x994E, - 27245 - 11905: 0x994F, - 27246 - 11905: 0x9950, - 27247 - 11905: 0x9951, - 27248 - 11905: 0x9952, - 27249 - 11905: 0xB3F7, - 27250 - 11905: 0x9953, - 27251 - 11905: 0x9954, - 27252 - 11905: 0x9955, - 27253 - 11905: 0x9956, - 27254 - 11905: 0x9957, - 27255 - 11905: 0x9958, - 27256 - 11905: 0x9959, - 27257 - 11905: 0xE9D6, - 27258 - 11905: 0x995A, - 27259 - 11905: 0x995B, - 27260 - 11905: 0xE9DA, - 27261 - 11905: 0x995C, - 27262 - 11905: 0x995D, - 27263 - 11905: 0x995E, - 27264 - 11905: 0xCCB4, - 27265 - 11905: 0x995F, - 27266 - 11905: 0x9960, - 27267 - 11905: 0x9961, - 27268 - 11905: 0xCFAD, - 27269 - 11905: 0x9962, - 27270 - 11905: 0x9963, - 27271 - 11905: 0x9964, - 27272 - 11905: 0x9965, - 27273 - 11905: 0x9966, - 27274 - 11905: 0x9967, - 27275 - 11905: 0x9968, - 27276 - 11905: 0x9969, - 27277 - 11905: 0x996A, - 27278 - 11905: 0xE9D5, - 27279 - 11905: 0x996B, - 27280 - 11905: 0xE9DC, - 27281 - 11905: 0xE9DB, - 27282 - 11905: 0x996C, - 27283 - 11905: 0x996D, - 27284 - 11905: 0x996E, - 27285 - 11905: 0x996F, - 27286 - 11905: 0x9970, - 27287 - 11905: 0xE9DE, - 27288 - 11905: 0x9971, - 27289 - 11905: 0x9972, - 27290 - 11905: 0x9973, - 27291 - 11905: 0x9974, - 27292 - 11905: 0x9975, - 27293 - 11905: 0x9976, - 27294 - 11905: 0x9977, - 27295 - 11905: 0x9978, - 27296 - 11905: 0xE9D1, - 27297 - 11905: 0x9979, - 27298 - 11905: 0x997A, - 27299 - 11905: 0x997B, - 27300 - 11905: 0x997C, - 27301 - 11905: 0x997D, - 27302 - 11905: 0x997E, - 27303 - 11905: 0x9980, - 27304 - 11905: 0x9981, - 27305 - 11905: 0xE9DD, - 27306 - 11905: 0x9982, - 27307 - 11905: 0xE9DF, - 27308 - 11905: 0xC3CA, - 27309 - 11905: 0x9983, - 27310 - 11905: 0x9984, - 27311 - 11905: 0x9985, - 27312 - 11905: 0x9986, - 27313 - 11905: 0x9987, - 27314 - 11905: 0x9988, - 27315 - 11905: 0x9989, - 27316 - 11905: 0x998A, - 27317 - 11905: 0x998B, - 27318 - 11905: 0x998C, - 27319 - 11905: 0x998D, - 27320 - 11905: 0x998E, - 27321 - 11905: 0x998F, - 27322 - 11905: 0x9990, - 27323 - 11905: 0x9991, - 27324 - 11905: 0x9992, - 27325 - 11905: 0x9993, - 27326 - 11905: 0x9994, - 27327 - 11905: 0x9995, - 27328 - 11905: 0x9996, - 27329 - 11905: 0x9997, - 27330 - 11905: 0x9998, - 27331 - 11905: 0x9999, - 27332 - 11905: 0x999A, - 27333 - 11905: 0x999B, - 27334 - 11905: 0x999C, - 27335 - 11905: 0x999D, - 27336 - 11905: 0x999E, - 27337 - 11905: 0x999F, - 27338 - 11905: 0x99A0, - 27339 - 11905: 0x99A1, - 27340 - 11905: 0x99A2, - 27341 - 11905: 0x99A3, - 27342 - 11905: 0x99A4, - 27343 - 11905: 0x99A5, - 27344 - 11905: 0x99A6, - 27345 - 11905: 0x99A7, - 27346 - 11905: 0x99A8, - 27347 - 11905: 0x99A9, - 27348 - 11905: 0x99AA, - 27349 - 11905: 0x99AB, - 27350 - 11905: 0x99AC, - 27351 - 11905: 0x99AD, - 27352 - 11905: 0x99AE, - 27353 - 11905: 0x99AF, - 27354 - 11905: 0x99B0, - 27355 - 11905: 0x99B1, - 27356 - 11905: 0x99B2, - 27357 - 11905: 0x99B3, - 27358 - 11905: 0x99B4, - 27359 - 11905: 0x99B5, - 27360 - 11905: 0x99B6, - 27361 - 11905: 0x99B7, - 27362 - 11905: 0x99B8, - 27363 - 11905: 0x99B9, - 27364 - 11905: 0x99BA, - 27365 - 11905: 0x99BB, - 27366 - 11905: 0x99BC, - 27367 - 11905: 0x99BD, - 27368 - 11905: 0x99BE, - 27369 - 11905: 0x99BF, - 27370 - 11905: 0x99C0, - 27371 - 11905: 0x99C1, - 27372 - 11905: 0x99C2, - 27373 - 11905: 0x99C3, - 27374 - 11905: 0x99C4, - 27375 - 11905: 0x99C5, - 27376 - 11905: 0x99C6, - 27377 - 11905: 0x99C7, - 27378 - 11905: 0x99C8, - 27379 - 11905: 0x99C9, - 27380 - 11905: 0x99CA, - 27381 - 11905: 0x99CB, - 27382 - 11905: 0x99CC, - 27383 - 11905: 0x99CD, - 27384 - 11905: 0x99CE, - 27385 - 11905: 0x99CF, - 27386 - 11905: 0x99D0, - 27387 - 11905: 0x99D1, - 27388 - 11905: 0x99D2, - 27389 - 11905: 0x99D3, - 27390 - 11905: 0x99D4, - 27391 - 11905: 0x99D5, - 27392 - 11905: 0x99D6, - 27393 - 11905: 0x99D7, - 27394 - 11905: 0x99D8, - 27395 - 11905: 0x99D9, - 27396 - 11905: 0x99DA, - 27397 - 11905: 0x99DB, - 27398 - 11905: 0x99DC, - 27399 - 11905: 0x99DD, - 27400 - 11905: 0x99DE, - 27401 - 11905: 0x99DF, - 27402 - 11905: 0x99E0, - 27403 - 11905: 0x99E1, - 27404 - 11905: 0x99E2, - 27405 - 11905: 0x99E3, - 27406 - 11905: 0x99E4, - 27407 - 11905: 0x99E5, - 27408 - 11905: 0x99E6, - 27409 - 11905: 0x99E7, - 27410 - 11905: 0x99E8, - 27411 - 11905: 0x99E9, - 27412 - 11905: 0x99EA, - 27413 - 11905: 0x99EB, - 27414 - 11905: 0x99EC, - 27415 - 11905: 0x99ED, - 27416 - 11905: 0x99EE, - 27417 - 11905: 0x99EF, - 27418 - 11905: 0x99F0, - 27419 - 11905: 0x99F1, - 27420 - 11905: 0x99F2, - 27421 - 11905: 0x99F3, - 27422 - 11905: 0x99F4, - 27423 - 11905: 0x99F5, - 27424 - 11905: 0xC7B7, - 27425 - 11905: 0xB4CE, - 27426 - 11905: 0xBBB6, - 27427 - 11905: 0xD0C0, - 27428 - 11905: 0xECA3, - 27429 - 11905: 0x99F6, - 27430 - 11905: 0x99F7, - 27431 - 11905: 0xC5B7, - 27432 - 11905: 0x99F8, - 27433 - 11905: 0x99F9, - 27434 - 11905: 0x99FA, - 27435 - 11905: 0x99FB, - 27436 - 11905: 0x99FC, - 27437 - 11905: 0x99FD, - 27438 - 11905: 0x99FE, - 27439 - 11905: 0x9A40, - 27440 - 11905: 0x9A41, - 27441 - 11905: 0x9A42, - 27442 - 11905: 0xD3FB, - 27443 - 11905: 0x9A43, - 27444 - 11905: 0x9A44, - 27445 - 11905: 0x9A45, - 27446 - 11905: 0x9A46, - 27447 - 11905: 0xECA4, - 27448 - 11905: 0x9A47, - 27449 - 11905: 0xECA5, - 27450 - 11905: 0xC6DB, - 27451 - 11905: 0x9A48, - 27452 - 11905: 0x9A49, - 27453 - 11905: 0x9A4A, - 27454 - 11905: 0xBFEE, - 27455 - 11905: 0x9A4B, - 27456 - 11905: 0x9A4C, - 27457 - 11905: 0x9A4D, - 27458 - 11905: 0x9A4E, - 27459 - 11905: 0xECA6, - 27460 - 11905: 0x9A4F, - 27461 - 11905: 0x9A50, - 27462 - 11905: 0xECA7, - 27463 - 11905: 0xD0AA, - 27464 - 11905: 0x9A51, - 27465 - 11905: 0xC7B8, - 27466 - 11905: 0x9A52, - 27467 - 11905: 0x9A53, - 27468 - 11905: 0xB8E8, - 27469 - 11905: 0x9A54, - 27470 - 11905: 0x9A55, - 27471 - 11905: 0x9A56, - 27472 - 11905: 0x9A57, - 27473 - 11905: 0x9A58, - 27474 - 11905: 0x9A59, - 27475 - 11905: 0x9A5A, - 27476 - 11905: 0x9A5B, - 27477 - 11905: 0x9A5C, - 27478 - 11905: 0x9A5D, - 27479 - 11905: 0x9A5E, - 27480 - 11905: 0x9A5F, - 27481 - 11905: 0xECA8, - 27482 - 11905: 0x9A60, - 27483 - 11905: 0x9A61, - 27484 - 11905: 0x9A62, - 27485 - 11905: 0x9A63, - 27486 - 11905: 0x9A64, - 27487 - 11905: 0x9A65, - 27488 - 11905: 0x9A66, - 27489 - 11905: 0x9A67, - 27490 - 11905: 0xD6B9, - 27491 - 11905: 0xD5FD, - 27492 - 11905: 0xB4CB, - 27493 - 11905: 0xB2BD, - 27494 - 11905: 0xCEE4, - 27495 - 11905: 0xC6E7, - 27496 - 11905: 0x9A68, - 27497 - 11905: 0x9A69, - 27498 - 11905: 0xCDE1, - 27499 - 11905: 0x9A6A, - 27500 - 11905: 0x9A6B, - 27501 - 11905: 0x9A6C, - 27502 - 11905: 0x9A6D, - 27503 - 11905: 0x9A6E, - 27504 - 11905: 0x9A6F, - 27505 - 11905: 0x9A70, - 27506 - 11905: 0x9A71, - 27507 - 11905: 0x9A72, - 27508 - 11905: 0x9A73, - 27509 - 11905: 0x9A74, - 27510 - 11905: 0x9A75, - 27511 - 11905: 0x9A76, - 27512 - 11905: 0x9A77, - 27513 - 11905: 0xB4F5, - 27514 - 11905: 0x9A78, - 27515 - 11905: 0xCBC0, - 27516 - 11905: 0xBCDF, - 27517 - 11905: 0x9A79, - 27518 - 11905: 0x9A7A, - 27519 - 11905: 0x9A7B, - 27520 - 11905: 0x9A7C, - 27521 - 11905: 0xE9E2, - 27522 - 11905: 0xE9E3, - 27523 - 11905: 0xD1EA, - 27524 - 11905: 0xE9E5, - 27525 - 11905: 0x9A7D, - 27526 - 11905: 0xB4F9, - 27527 - 11905: 0xE9E4, - 27528 - 11905: 0x9A7E, - 27529 - 11905: 0xD1B3, - 27530 - 11905: 0xCAE2, - 27531 - 11905: 0xB2D0, - 27532 - 11905: 0x9A80, - 27533 - 11905: 0xE9E8, - 27534 - 11905: 0x9A81, - 27535 - 11905: 0x9A82, - 27536 - 11905: 0x9A83, - 27537 - 11905: 0x9A84, - 27538 - 11905: 0xE9E6, - 27539 - 11905: 0xE9E7, - 27540 - 11905: 0x9A85, - 27541 - 11905: 0x9A86, - 27542 - 11905: 0xD6B3, - 27543 - 11905: 0x9A87, - 27544 - 11905: 0x9A88, - 27545 - 11905: 0x9A89, - 27546 - 11905: 0xE9E9, - 27547 - 11905: 0xE9EA, - 27548 - 11905: 0x9A8A, - 27549 - 11905: 0x9A8B, - 27550 - 11905: 0x9A8C, - 27551 - 11905: 0x9A8D, - 27552 - 11905: 0x9A8E, - 27553 - 11905: 0xE9EB, - 27554 - 11905: 0x9A8F, - 27555 - 11905: 0x9A90, - 27556 - 11905: 0x9A91, - 27557 - 11905: 0x9A92, - 27558 - 11905: 0x9A93, - 27559 - 11905: 0x9A94, - 27560 - 11905: 0x9A95, - 27561 - 11905: 0x9A96, - 27562 - 11905: 0xE9EC, - 27563 - 11905: 0x9A97, - 27564 - 11905: 0x9A98, - 27565 - 11905: 0x9A99, - 27566 - 11905: 0x9A9A, - 27567 - 11905: 0x9A9B, - 27568 - 11905: 0x9A9C, - 27569 - 11905: 0x9A9D, - 27570 - 11905: 0x9A9E, - 27571 - 11905: 0xECAF, - 27572 - 11905: 0xC5B9, - 27573 - 11905: 0xB6CE, - 27574 - 11905: 0x9A9F, - 27575 - 11905: 0xD2F3, - 27576 - 11905: 0x9AA0, - 27577 - 11905: 0x9AA1, - 27578 - 11905: 0x9AA2, - 27579 - 11905: 0x9AA3, - 27580 - 11905: 0x9AA4, - 27581 - 11905: 0x9AA5, - 27582 - 11905: 0x9AA6, - 27583 - 11905: 0xB5EE, - 27584 - 11905: 0x9AA7, - 27585 - 11905: 0xBBD9, - 27586 - 11905: 0xECB1, - 27587 - 11905: 0x9AA8, - 27588 - 11905: 0x9AA9, - 27589 - 11905: 0xD2E3, - 27590 - 11905: 0x9AAA, - 27591 - 11905: 0x9AAB, - 27592 - 11905: 0x9AAC, - 27593 - 11905: 0x9AAD, - 27594 - 11905: 0x9AAE, - 27595 - 11905: 0xCEE3, - 27596 - 11905: 0x9AAF, - 27597 - 11905: 0xC4B8, - 27598 - 11905: 0x9AB0, - 27599 - 11905: 0xC3BF, - 27600 - 11905: 0x9AB1, - 27601 - 11905: 0x9AB2, - 27602 - 11905: 0xB6BE, - 27603 - 11905: 0xD8B9, - 27604 - 11905: 0xB1C8, - 27605 - 11905: 0xB1CF, - 27606 - 11905: 0xB1D1, - 27607 - 11905: 0xC5FE, - 27608 - 11905: 0x9AB3, - 27609 - 11905: 0xB1D0, - 27610 - 11905: 0x9AB4, - 27611 - 11905: 0xC3AB, - 27612 - 11905: 0x9AB5, - 27613 - 11905: 0x9AB6, - 27614 - 11905: 0x9AB7, - 27615 - 11905: 0x9AB8, - 27616 - 11905: 0x9AB9, - 27617 - 11905: 0xD5B1, - 27618 - 11905: 0x9ABA, - 27619 - 11905: 0x9ABB, - 27620 - 11905: 0x9ABC, - 27621 - 11905: 0x9ABD, - 27622 - 11905: 0x9ABE, - 27623 - 11905: 0x9ABF, - 27624 - 11905: 0x9AC0, - 27625 - 11905: 0x9AC1, - 27626 - 11905: 0xEBA4, - 27627 - 11905: 0xBAC1, - 27628 - 11905: 0x9AC2, - 27629 - 11905: 0x9AC3, - 27630 - 11905: 0x9AC4, - 27631 - 11905: 0xCCBA, - 27632 - 11905: 0x9AC5, - 27633 - 11905: 0x9AC6, - 27634 - 11905: 0x9AC7, - 27635 - 11905: 0xEBA5, - 27636 - 11905: 0x9AC8, - 27637 - 11905: 0xEBA7, - 27638 - 11905: 0x9AC9, - 27639 - 11905: 0x9ACA, - 27640 - 11905: 0x9ACB, - 27641 - 11905: 0xEBA8, - 27642 - 11905: 0x9ACC, - 27643 - 11905: 0x9ACD, - 27644 - 11905: 0x9ACE, - 27645 - 11905: 0xEBA6, - 27646 - 11905: 0x9ACF, - 27647 - 11905: 0x9AD0, - 27648 - 11905: 0x9AD1, - 27649 - 11905: 0x9AD2, - 27650 - 11905: 0x9AD3, - 27651 - 11905: 0x9AD4, - 27652 - 11905: 0x9AD5, - 27653 - 11905: 0xEBA9, - 27654 - 11905: 0xEBAB, - 27655 - 11905: 0xEBAA, - 27656 - 11905: 0x9AD6, - 27657 - 11905: 0x9AD7, - 27658 - 11905: 0x9AD8, - 27659 - 11905: 0x9AD9, - 27660 - 11905: 0x9ADA, - 27661 - 11905: 0xEBAC, - 27662 - 11905: 0x9ADB, - 27663 - 11905: 0xCACF, - 27664 - 11905: 0xD8B5, - 27665 - 11905: 0xC3F1, - 27666 - 11905: 0x9ADC, - 27667 - 11905: 0xC3A5, - 27668 - 11905: 0xC6F8, - 27669 - 11905: 0xEBAD, - 27670 - 11905: 0xC4CA, - 27671 - 11905: 0x9ADD, - 27672 - 11905: 0xEBAE, - 27673 - 11905: 0xEBAF, - 27674 - 11905: 0xEBB0, - 27675 - 11905: 0xB7D5, - 27676 - 11905: 0x9ADE, - 27677 - 11905: 0x9ADF, - 27678 - 11905: 0x9AE0, - 27679 - 11905: 0xB7FA, - 27680 - 11905: 0x9AE1, - 27681 - 11905: 0xEBB1, - 27682 - 11905: 0xC7E2, - 27683 - 11905: 0x9AE2, - 27684 - 11905: 0xEBB3, - 27685 - 11905: 0x9AE3, - 27686 - 11905: 0xBAA4, - 27687 - 11905: 0xD1F5, - 27688 - 11905: 0xB0B1, - 27689 - 11905: 0xEBB2, - 27690 - 11905: 0xEBB4, - 27691 - 11905: 0x9AE4, - 27692 - 11905: 0x9AE5, - 27693 - 11905: 0x9AE6, - 27694 - 11905: 0xB5AA, - 27695 - 11905: 0xC2C8, - 27696 - 11905: 0xC7E8, - 27697 - 11905: 0x9AE7, - 27698 - 11905: 0xEBB5, - 27699 - 11905: 0x9AE8, - 27700 - 11905: 0xCBAE, - 27701 - 11905: 0xE3DF, - 27702 - 11905: 0x9AE9, - 27703 - 11905: 0x9AEA, - 27704 - 11905: 0xD3C0, - 27705 - 11905: 0x9AEB, - 27706 - 11905: 0x9AEC, - 27707 - 11905: 0x9AED, - 27708 - 11905: 0x9AEE, - 27709 - 11905: 0xD9DB, - 27710 - 11905: 0x9AEF, - 27711 - 11905: 0x9AF0, - 27712 - 11905: 0xCDA1, - 27713 - 11905: 0xD6AD, - 27714 - 11905: 0xC7F3, - 27715 - 11905: 0x9AF1, - 27716 - 11905: 0x9AF2, - 27717 - 11905: 0x9AF3, - 27718 - 11905: 0xD9E0, - 27719 - 11905: 0xBBE3, - 27720 - 11905: 0x9AF4, - 27721 - 11905: 0xBABA, - 27722 - 11905: 0xE3E2, - 27723 - 11905: 0x9AF5, - 27724 - 11905: 0x9AF6, - 27725 - 11905: 0x9AF7, - 27726 - 11905: 0x9AF8, - 27727 - 11905: 0x9AF9, - 27728 - 11905: 0xCFAB, - 27729 - 11905: 0x9AFA, - 27730 - 11905: 0x9AFB, - 27731 - 11905: 0x9AFC, - 27732 - 11905: 0xE3E0, - 27733 - 11905: 0xC9C7, - 27734 - 11905: 0x9AFD, - 27735 - 11905: 0xBAB9, - 27736 - 11905: 0x9AFE, - 27737 - 11905: 0x9B40, - 27738 - 11905: 0x9B41, - 27739 - 11905: 0xD1B4, - 27740 - 11905: 0xE3E1, - 27741 - 11905: 0xC8EA, - 27742 - 11905: 0xB9AF, - 27743 - 11905: 0xBDAD, - 27744 - 11905: 0xB3D8, - 27745 - 11905: 0xCEDB, - 27746 - 11905: 0x9B42, - 27747 - 11905: 0x9B43, - 27748 - 11905: 0xCCC0, - 27749 - 11905: 0x9B44, - 27750 - 11905: 0x9B45, - 27751 - 11905: 0x9B46, - 27752 - 11905: 0xE3E8, - 27753 - 11905: 0xE3E9, - 27754 - 11905: 0xCDF4, - 27755 - 11905: 0x9B47, - 27756 - 11905: 0x9B48, - 27757 - 11905: 0x9B49, - 27758 - 11905: 0x9B4A, - 27759 - 11905: 0x9B4B, - 27760 - 11905: 0xCCAD, - 27761 - 11905: 0x9B4C, - 27762 - 11905: 0xBCB3, - 27763 - 11905: 0x9B4D, - 27764 - 11905: 0xE3EA, - 27765 - 11905: 0x9B4E, - 27766 - 11905: 0xE3EB, - 27767 - 11905: 0x9B4F, - 27768 - 11905: 0x9B50, - 27769 - 11905: 0xD0DA, - 27770 - 11905: 0x9B51, - 27771 - 11905: 0x9B52, - 27772 - 11905: 0x9B53, - 27773 - 11905: 0xC6FB, - 27774 - 11905: 0xB7DA, - 27775 - 11905: 0x9B54, - 27776 - 11905: 0x9B55, - 27777 - 11905: 0xC7DF, - 27778 - 11905: 0xD2CA, - 27779 - 11905: 0xCED6, - 27780 - 11905: 0x9B56, - 27781 - 11905: 0xE3E4, - 27782 - 11905: 0xE3EC, - 27783 - 11905: 0x9B57, - 27784 - 11905: 0xC9F2, - 27785 - 11905: 0xB3C1, - 27786 - 11905: 0x9B58, - 27787 - 11905: 0x9B59, - 27788 - 11905: 0xE3E7, - 27789 - 11905: 0x9B5A, - 27790 - 11905: 0x9B5B, - 27791 - 11905: 0xC6E3, - 27792 - 11905: 0xE3E5, - 27793 - 11905: 0x9B5C, - 27794 - 11905: 0x9B5D, - 27795 - 11905: 0xEDB3, - 27796 - 11905: 0xE3E6, - 27797 - 11905: 0x9B5E, - 27798 - 11905: 0x9B5F, - 27799 - 11905: 0x9B60, - 27800 - 11905: 0x9B61, - 27801 - 11905: 0xC9B3, - 27802 - 11905: 0x9B62, - 27803 - 11905: 0xC5E6, - 27804 - 11905: 0x9B63, - 27805 - 11905: 0x9B64, - 27806 - 11905: 0x9B65, - 27807 - 11905: 0xB9B5, - 27808 - 11905: 0x9B66, - 27809 - 11905: 0xC3BB, - 27810 - 11905: 0x9B67, - 27811 - 11905: 0xE3E3, - 27812 - 11905: 0xC5BD, - 27813 - 11905: 0xC1A4, - 27814 - 11905: 0xC2D9, - 27815 - 11905: 0xB2D7, - 27816 - 11905: 0x9B68, - 27817 - 11905: 0xE3ED, - 27818 - 11905: 0xBBA6, - 27819 - 11905: 0xC4AD, - 27820 - 11905: 0x9B69, - 27821 - 11905: 0xE3F0, - 27822 - 11905: 0xBEDA, - 27823 - 11905: 0x9B6A, - 27824 - 11905: 0x9B6B, - 27825 - 11905: 0xE3FB, - 27826 - 11905: 0xE3F5, - 27827 - 11905: 0xBAD3, - 27828 - 11905: 0x9B6C, - 27829 - 11905: 0x9B6D, - 27830 - 11905: 0x9B6E, - 27831 - 11905: 0x9B6F, - 27832 - 11905: 0xB7D0, - 27833 - 11905: 0xD3CD, - 27834 - 11905: 0x9B70, - 27835 - 11905: 0xD6CE, - 27836 - 11905: 0xD5D3, - 27837 - 11905: 0xB9C1, - 27838 - 11905: 0xD5B4, - 27839 - 11905: 0xD1D8, - 27840 - 11905: 0x9B71, - 27841 - 11905: 0x9B72, - 27842 - 11905: 0x9B73, - 27843 - 11905: 0x9B74, - 27844 - 11905: 0xD0B9, - 27845 - 11905: 0xC7F6, - 27846 - 11905: 0x9B75, - 27847 - 11905: 0x9B76, - 27848 - 11905: 0x9B77, - 27849 - 11905: 0xC8AA, - 27850 - 11905: 0xB2B4, - 27851 - 11905: 0x9B78, - 27852 - 11905: 0xC3DA, - 27853 - 11905: 0x9B79, - 27854 - 11905: 0x9B7A, - 27855 - 11905: 0x9B7B, - 27856 - 11905: 0xE3EE, - 27857 - 11905: 0x9B7C, - 27858 - 11905: 0x9B7D, - 27859 - 11905: 0xE3FC, - 27860 - 11905: 0xE3EF, - 27861 - 11905: 0xB7A8, - 27862 - 11905: 0xE3F7, - 27863 - 11905: 0xE3F4, - 27864 - 11905: 0x9B7E, - 27865 - 11905: 0x9B80, - 27866 - 11905: 0x9B81, - 27867 - 11905: 0xB7BA, - 27868 - 11905: 0x9B82, - 27869 - 11905: 0x9B83, - 27870 - 11905: 0xC5A2, - 27871 - 11905: 0x9B84, - 27872 - 11905: 0xE3F6, - 27873 - 11905: 0xC5DD, - 27874 - 11905: 0xB2A8, - 27875 - 11905: 0xC6FC, - 27876 - 11905: 0x9B85, - 27877 - 11905: 0xC4E0, - 27878 - 11905: 0x9B86, - 27879 - 11905: 0x9B87, - 27880 - 11905: 0xD7A2, - 27881 - 11905: 0x9B88, - 27882 - 11905: 0xC0E1, - 27883 - 11905: 0xE3F9, - 27884 - 11905: 0x9B89, - 27885 - 11905: 0x9B8A, - 27886 - 11905: 0xE3FA, - 27887 - 11905: 0xE3FD, - 27888 - 11905: 0xCCA9, - 27889 - 11905: 0xE3F3, - 27890 - 11905: 0x9B8B, - 27891 - 11905: 0xD3BE, - 27892 - 11905: 0x9B8C, - 27893 - 11905: 0xB1C3, - 27894 - 11905: 0xEDB4, - 27895 - 11905: 0xE3F1, - 27896 - 11905: 0xE3F2, - 27897 - 11905: 0x9B8D, - 27898 - 11905: 0xE3F8, - 27899 - 11905: 0xD0BA, - 27900 - 11905: 0xC6C3, - 27901 - 11905: 0xD4F3, - 27902 - 11905: 0xE3FE, - 27903 - 11905: 0x9B8E, - 27904 - 11905: 0x9B8F, - 27905 - 11905: 0xBDE0, - 27906 - 11905: 0x9B90, - 27907 - 11905: 0x9B91, - 27908 - 11905: 0xE4A7, - 27909 - 11905: 0x9B92, - 27910 - 11905: 0x9B93, - 27911 - 11905: 0xE4A6, - 27912 - 11905: 0x9B94, - 27913 - 11905: 0x9B95, - 27914 - 11905: 0x9B96, - 27915 - 11905: 0xD1F3, - 27916 - 11905: 0xE4A3, - 27917 - 11905: 0x9B97, - 27918 - 11905: 0xE4A9, - 27919 - 11905: 0x9B98, - 27920 - 11905: 0x9B99, - 27921 - 11905: 0x9B9A, - 27922 - 11905: 0xC8F7, - 27923 - 11905: 0x9B9B, - 27924 - 11905: 0x9B9C, - 27925 - 11905: 0x9B9D, - 27926 - 11905: 0x9B9E, - 27927 - 11905: 0xCFB4, - 27928 - 11905: 0x9B9F, - 27929 - 11905: 0xE4A8, - 27930 - 11905: 0xE4AE, - 27931 - 11905: 0xC2E5, - 27932 - 11905: 0x9BA0, - 27933 - 11905: 0x9BA1, - 27934 - 11905: 0xB6B4, - 27935 - 11905: 0x9BA2, - 27936 - 11905: 0x9BA3, - 27937 - 11905: 0x9BA4, - 27938 - 11905: 0x9BA5, - 27939 - 11905: 0x9BA6, - 27940 - 11905: 0x9BA7, - 27941 - 11905: 0xBDF2, - 27942 - 11905: 0x9BA8, - 27943 - 11905: 0xE4A2, - 27944 - 11905: 0x9BA9, - 27945 - 11905: 0x9BAA, - 27946 - 11905: 0xBAE9, - 27947 - 11905: 0xE4AA, - 27948 - 11905: 0x9BAB, - 27949 - 11905: 0x9BAC, - 27950 - 11905: 0xE4AC, - 27951 - 11905: 0x9BAD, - 27952 - 11905: 0x9BAE, - 27953 - 11905: 0xB6FD, - 27954 - 11905: 0xD6DE, - 27955 - 11905: 0xE4B2, - 27956 - 11905: 0x9BAF, - 27957 - 11905: 0xE4AD, - 27958 - 11905: 0x9BB0, - 27959 - 11905: 0x9BB1, - 27960 - 11905: 0x9BB2, - 27961 - 11905: 0xE4A1, - 27962 - 11905: 0x9BB3, - 27963 - 11905: 0xBBEE, - 27964 - 11905: 0xCDDD, - 27965 - 11905: 0xC7A2, - 27966 - 11905: 0xC5C9, - 27967 - 11905: 0x9BB4, - 27968 - 11905: 0x9BB5, - 27969 - 11905: 0xC1F7, - 27970 - 11905: 0x9BB6, - 27971 - 11905: 0xE4A4, - 27972 - 11905: 0x9BB7, - 27973 - 11905: 0xC7B3, - 27974 - 11905: 0xBDAC, - 27975 - 11905: 0xBDBD, - 27976 - 11905: 0xE4A5, - 27977 - 11905: 0x9BB8, - 27978 - 11905: 0xD7C7, - 27979 - 11905: 0xB2E2, - 27980 - 11905: 0x9BB9, - 27981 - 11905: 0xE4AB, - 27982 - 11905: 0xBCC3, - 27983 - 11905: 0xE4AF, - 27984 - 11905: 0x9BBA, - 27985 - 11905: 0xBBEB, - 27986 - 11905: 0xE4B0, - 27987 - 11905: 0xC5A8, - 27988 - 11905: 0xE4B1, - 27989 - 11905: 0x9BBB, - 27990 - 11905: 0x9BBC, - 27991 - 11905: 0x9BBD, - 27992 - 11905: 0x9BBE, - 27993 - 11905: 0xD5E3, - 27994 - 11905: 0xBFA3, - 27995 - 11905: 0x9BBF, - 27996 - 11905: 0xE4BA, - 27997 - 11905: 0x9BC0, - 27998 - 11905: 0xE4B7, - 27999 - 11905: 0x9BC1, - 28000 - 11905: 0xE4BB, - 28001 - 11905: 0x9BC2, - 28002 - 11905: 0x9BC3, - 28003 - 11905: 0xE4BD, - 28004 - 11905: 0x9BC4, - 28005 - 11905: 0x9BC5, - 28006 - 11905: 0xC6D6, - 28007 - 11905: 0x9BC6, - 28008 - 11905: 0x9BC7, - 28009 - 11905: 0xBAC6, - 28010 - 11905: 0xC0CB, - 28011 - 11905: 0x9BC8, - 28012 - 11905: 0x9BC9, - 28013 - 11905: 0x9BCA, - 28014 - 11905: 0xB8A1, - 28015 - 11905: 0xE4B4, - 28016 - 11905: 0x9BCB, - 28017 - 11905: 0x9BCC, - 28018 - 11905: 0x9BCD, - 28019 - 11905: 0x9BCE, - 28020 - 11905: 0xD4A1, - 28021 - 11905: 0x9BCF, - 28022 - 11905: 0x9BD0, - 28023 - 11905: 0xBAA3, - 28024 - 11905: 0xBDFE, - 28025 - 11905: 0x9BD1, - 28026 - 11905: 0x9BD2, - 28027 - 11905: 0x9BD3, - 28028 - 11905: 0xE4BC, - 28029 - 11905: 0x9BD4, - 28030 - 11905: 0x9BD5, - 28031 - 11905: 0x9BD6, - 28032 - 11905: 0x9BD7, - 28033 - 11905: 0x9BD8, - 28034 - 11905: 0xCDBF, - 28035 - 11905: 0x9BD9, - 28036 - 11905: 0x9BDA, - 28037 - 11905: 0xC4F9, - 28038 - 11905: 0x9BDB, - 28039 - 11905: 0x9BDC, - 28040 - 11905: 0xCFFB, - 28041 - 11905: 0xC9E6, - 28042 - 11905: 0x9BDD, - 28043 - 11905: 0x9BDE, - 28044 - 11905: 0xD3BF, - 28045 - 11905: 0x9BDF, - 28046 - 11905: 0xCFD1, - 28047 - 11905: 0x9BE0, - 28048 - 11905: 0x9BE1, - 28049 - 11905: 0xE4B3, - 28050 - 11905: 0x9BE2, - 28051 - 11905: 0xE4B8, - 28052 - 11905: 0xE4B9, - 28053 - 11905: 0xCCE9, - 28054 - 11905: 0x9BE3, - 28055 - 11905: 0x9BE4, - 28056 - 11905: 0x9BE5, - 28057 - 11905: 0x9BE6, - 28058 - 11905: 0x9BE7, - 28059 - 11905: 0xCCCE, - 28060 - 11905: 0x9BE8, - 28061 - 11905: 0xC0D4, - 28062 - 11905: 0xE4B5, - 28063 - 11905: 0xC1B0, - 28064 - 11905: 0xE4B6, - 28065 - 11905: 0xCED0, - 28066 - 11905: 0x9BE9, - 28067 - 11905: 0xBBC1, - 28068 - 11905: 0xB5D3, - 28069 - 11905: 0x9BEA, - 28070 - 11905: 0xC8F3, - 28071 - 11905: 0xBDA7, - 28072 - 11905: 0xD5C7, - 28073 - 11905: 0xC9AC, - 28074 - 11905: 0xB8A2, - 28075 - 11905: 0xE4CA, - 28076 - 11905: 0x9BEB, - 28077 - 11905: 0x9BEC, - 28078 - 11905: 0xE4CC, - 28079 - 11905: 0xD1C4, - 28080 - 11905: 0x9BED, - 28081 - 11905: 0x9BEE, - 28082 - 11905: 0xD2BA, - 28083 - 11905: 0x9BEF, - 28084 - 11905: 0x9BF0, - 28085 - 11905: 0xBAAD, - 28086 - 11905: 0x9BF1, - 28087 - 11905: 0x9BF2, - 28088 - 11905: 0xBAD4, - 28089 - 11905: 0x9BF3, - 28090 - 11905: 0x9BF4, - 28091 - 11905: 0x9BF5, - 28092 - 11905: 0x9BF6, - 28093 - 11905: 0x9BF7, - 28094 - 11905: 0x9BF8, - 28095 - 11905: 0xE4C3, - 28096 - 11905: 0xB5ED, - 28097 - 11905: 0x9BF9, - 28098 - 11905: 0x9BFA, - 28099 - 11905: 0x9BFB, - 28100 - 11905: 0xD7CD, - 28101 - 11905: 0xE4C0, - 28102 - 11905: 0xCFFD, - 28103 - 11905: 0xE4BF, - 28104 - 11905: 0x9BFC, - 28105 - 11905: 0x9BFD, - 28106 - 11905: 0x9BFE, - 28107 - 11905: 0xC1DC, - 28108 - 11905: 0xCCCA, - 28109 - 11905: 0x9C40, - 28110 - 11905: 0x9C41, - 28111 - 11905: 0x9C42, - 28112 - 11905: 0x9C43, - 28113 - 11905: 0xCAE7, - 28114 - 11905: 0x9C44, - 28115 - 11905: 0x9C45, - 28116 - 11905: 0x9C46, - 28117 - 11905: 0x9C47, - 28118 - 11905: 0xC4D7, - 28119 - 11905: 0x9C48, - 28120 - 11905: 0xCCD4, - 28121 - 11905: 0xE4C8, - 28122 - 11905: 0x9C49, - 28123 - 11905: 0x9C4A, - 28124 - 11905: 0x9C4B, - 28125 - 11905: 0xE4C7, - 28126 - 11905: 0xE4C1, - 28127 - 11905: 0x9C4C, - 28128 - 11905: 0xE4C4, - 28129 - 11905: 0xB5AD, - 28130 - 11905: 0x9C4D, - 28131 - 11905: 0x9C4E, - 28132 - 11905: 0xD3D9, - 28133 - 11905: 0x9C4F, - 28134 - 11905: 0xE4C6, - 28135 - 11905: 0x9C50, - 28136 - 11905: 0x9C51, - 28137 - 11905: 0x9C52, - 28138 - 11905: 0x9C53, - 28139 - 11905: 0xD2F9, - 28140 - 11905: 0xB4E3, - 28141 - 11905: 0x9C54, - 28142 - 11905: 0xBBB4, - 28143 - 11905: 0x9C55, - 28144 - 11905: 0x9C56, - 28145 - 11905: 0xC9EE, - 28146 - 11905: 0x9C57, - 28147 - 11905: 0xB4BE, - 28148 - 11905: 0x9C58, - 28149 - 11905: 0x9C59, - 28150 - 11905: 0x9C5A, - 28151 - 11905: 0xBBEC, - 28152 - 11905: 0x9C5B, - 28153 - 11905: 0xD1CD, - 28154 - 11905: 0x9C5C, - 28155 - 11905: 0xCCED, - 28156 - 11905: 0xEDB5, - 28157 - 11905: 0x9C5D, - 28158 - 11905: 0x9C5E, - 28159 - 11905: 0x9C5F, - 28160 - 11905: 0x9C60, - 28161 - 11905: 0x9C61, - 28162 - 11905: 0x9C62, - 28163 - 11905: 0x9C63, - 28164 - 11905: 0x9C64, - 28165 - 11905: 0xC7E5, - 28166 - 11905: 0x9C65, - 28167 - 11905: 0x9C66, - 28168 - 11905: 0x9C67, - 28169 - 11905: 0x9C68, - 28170 - 11905: 0xD4A8, - 28171 - 11905: 0x9C69, - 28172 - 11905: 0xE4CB, - 28173 - 11905: 0xD7D5, - 28174 - 11905: 0xE4C2, - 28175 - 11905: 0x9C6A, - 28176 - 11905: 0xBDA5, - 28177 - 11905: 0xE4C5, - 28178 - 11905: 0x9C6B, - 28179 - 11905: 0x9C6C, - 28180 - 11905: 0xD3E6, - 28181 - 11905: 0x9C6D, - 28182 - 11905: 0xE4C9, - 28183 - 11905: 0xC9F8, - 28184 - 11905: 0x9C6E, - 28185 - 11905: 0x9C6F, - 28186 - 11905: 0xE4BE, - 28187 - 11905: 0x9C70, - 28188 - 11905: 0x9C71, - 28189 - 11905: 0xD3E5, - 28190 - 11905: 0x9C72, - 28191 - 11905: 0x9C73, - 28192 - 11905: 0xC7FE, - 28193 - 11905: 0xB6C9, - 28194 - 11905: 0x9C74, - 28195 - 11905: 0xD4FC, - 28196 - 11905: 0xB2B3, - 28197 - 11905: 0xE4D7, - 28198 - 11905: 0x9C75, - 28199 - 11905: 0x9C76, - 28200 - 11905: 0x9C77, - 28201 - 11905: 0xCEC2, - 28202 - 11905: 0x9C78, - 28203 - 11905: 0xE4CD, - 28204 - 11905: 0x9C79, - 28205 - 11905: 0xCEBC, - 28206 - 11905: 0x9C7A, - 28207 - 11905: 0xB8DB, - 28208 - 11905: 0x9C7B, - 28209 - 11905: 0x9C7C, - 28210 - 11905: 0xE4D6, - 28211 - 11905: 0x9C7D, - 28212 - 11905: 0xBFCA, - 28213 - 11905: 0x9C7E, - 28214 - 11905: 0x9C80, - 28215 - 11905: 0x9C81, - 28216 - 11905: 0xD3CE, - 28217 - 11905: 0x9C82, - 28218 - 11905: 0xC3EC, - 28219 - 11905: 0x9C83, - 28220 - 11905: 0x9C84, - 28221 - 11905: 0x9C85, - 28222 - 11905: 0x9C86, - 28223 - 11905: 0x9C87, - 28224 - 11905: 0x9C88, - 28225 - 11905: 0x9C89, - 28226 - 11905: 0x9C8A, - 28227 - 11905: 0xC5C8, - 28228 - 11905: 0xE4D8, - 28229 - 11905: 0x9C8B, - 28230 - 11905: 0x9C8C, - 28231 - 11905: 0x9C8D, - 28232 - 11905: 0x9C8E, - 28233 - 11905: 0x9C8F, - 28234 - 11905: 0x9C90, - 28235 - 11905: 0x9C91, - 28236 - 11905: 0x9C92, - 28237 - 11905: 0xCDC4, - 28238 - 11905: 0xE4CF, - 28239 - 11905: 0x9C93, - 28240 - 11905: 0x9C94, - 28241 - 11905: 0x9C95, - 28242 - 11905: 0x9C96, - 28243 - 11905: 0xE4D4, - 28244 - 11905: 0xE4D5, - 28245 - 11905: 0x9C97, - 28246 - 11905: 0xBAFE, - 28247 - 11905: 0x9C98, - 28248 - 11905: 0xCFE6, - 28249 - 11905: 0x9C99, - 28250 - 11905: 0x9C9A, - 28251 - 11905: 0xD5BF, - 28252 - 11905: 0x9C9B, - 28253 - 11905: 0x9C9C, - 28254 - 11905: 0x9C9D, - 28255 - 11905: 0xE4D2, - 28256 - 11905: 0x9C9E, - 28257 - 11905: 0x9C9F, - 28258 - 11905: 0x9CA0, - 28259 - 11905: 0x9CA1, - 28260 - 11905: 0x9CA2, - 28261 - 11905: 0x9CA3, - 28262 - 11905: 0x9CA4, - 28263 - 11905: 0x9CA5, - 28264 - 11905: 0x9CA6, - 28265 - 11905: 0x9CA7, - 28266 - 11905: 0x9CA8, - 28267 - 11905: 0xE4D0, - 28268 - 11905: 0x9CA9, - 28269 - 11905: 0x9CAA, - 28270 - 11905: 0xE4CE, - 28271 - 11905: 0x9CAB, - 28272 - 11905: 0x9CAC, - 28273 - 11905: 0x9CAD, - 28274 - 11905: 0x9CAE, - 28275 - 11905: 0x9CAF, - 28276 - 11905: 0x9CB0, - 28277 - 11905: 0x9CB1, - 28278 - 11905: 0x9CB2, - 28279 - 11905: 0x9CB3, - 28280 - 11905: 0x9CB4, - 28281 - 11905: 0x9CB5, - 28282 - 11905: 0x9CB6, - 28283 - 11905: 0x9CB7, - 28284 - 11905: 0x9CB8, - 28285 - 11905: 0x9CB9, - 28286 - 11905: 0xCDE5, - 28287 - 11905: 0xCAAA, - 28288 - 11905: 0x9CBA, - 28289 - 11905: 0x9CBB, - 28290 - 11905: 0x9CBC, - 28291 - 11905: 0xC0A3, - 28292 - 11905: 0x9CBD, - 28293 - 11905: 0xBDA6, - 28294 - 11905: 0xE4D3, - 28295 - 11905: 0x9CBE, - 28296 - 11905: 0x9CBF, - 28297 - 11905: 0xB8C8, - 28298 - 11905: 0x9CC0, - 28299 - 11905: 0x9CC1, - 28300 - 11905: 0x9CC2, - 28301 - 11905: 0x9CC3, - 28302 - 11905: 0x9CC4, - 28303 - 11905: 0xE4E7, - 28304 - 11905: 0xD4B4, - 28305 - 11905: 0x9CC5, - 28306 - 11905: 0x9CC6, - 28307 - 11905: 0x9CC7, - 28308 - 11905: 0x9CC8, - 28309 - 11905: 0x9CC9, - 28310 - 11905: 0x9CCA, - 28311 - 11905: 0x9CCB, - 28312 - 11905: 0xE4DB, - 28313 - 11905: 0x9CCC, - 28314 - 11905: 0x9CCD, - 28315 - 11905: 0x9CCE, - 28316 - 11905: 0xC1EF, - 28317 - 11905: 0x9CCF, - 28318 - 11905: 0x9CD0, - 28319 - 11905: 0xE4E9, - 28320 - 11905: 0x9CD1, - 28321 - 11905: 0x9CD2, - 28322 - 11905: 0xD2E7, - 28323 - 11905: 0x9CD3, - 28324 - 11905: 0x9CD4, - 28325 - 11905: 0xE4DF, - 28326 - 11905: 0x9CD5, - 28327 - 11905: 0xE4E0, - 28328 - 11905: 0x9CD6, - 28329 - 11905: 0x9CD7, - 28330 - 11905: 0xCFAA, - 28331 - 11905: 0x9CD8, - 28332 - 11905: 0x9CD9, - 28333 - 11905: 0x9CDA, - 28334 - 11905: 0x9CDB, - 28335 - 11905: 0xCBDD, - 28336 - 11905: 0x9CDC, - 28337 - 11905: 0xE4DA, - 28338 - 11905: 0xE4D1, - 28339 - 11905: 0x9CDD, - 28340 - 11905: 0xE4E5, - 28341 - 11905: 0x9CDE, - 28342 - 11905: 0xC8DC, - 28343 - 11905: 0xE4E3, - 28344 - 11905: 0x9CDF, - 28345 - 11905: 0x9CE0, - 28346 - 11905: 0xC4E7, - 28347 - 11905: 0xE4E2, - 28348 - 11905: 0x9CE1, - 28349 - 11905: 0xE4E1, - 28350 - 11905: 0x9CE2, - 28351 - 11905: 0x9CE3, - 28352 - 11905: 0x9CE4, - 28353 - 11905: 0xB3FC, - 28354 - 11905: 0xE4E8, - 28355 - 11905: 0x9CE5, - 28356 - 11905: 0x9CE6, - 28357 - 11905: 0x9CE7, - 28358 - 11905: 0x9CE8, - 28359 - 11905: 0xB5E1, - 28360 - 11905: 0x9CE9, - 28361 - 11905: 0x9CEA, - 28362 - 11905: 0x9CEB, - 28363 - 11905: 0xD7CC, - 28364 - 11905: 0x9CEC, - 28365 - 11905: 0x9CED, - 28366 - 11905: 0x9CEE, - 28367 - 11905: 0xE4E6, - 28368 - 11905: 0x9CEF, - 28369 - 11905: 0xBBAC, - 28370 - 11905: 0x9CF0, - 28371 - 11905: 0xD7D2, - 28372 - 11905: 0xCCCF, - 28373 - 11905: 0xEBF8, - 28374 - 11905: 0x9CF1, - 28375 - 11905: 0xE4E4, - 28376 - 11905: 0x9CF2, - 28377 - 11905: 0x9CF3, - 28378 - 11905: 0xB9F6, - 28379 - 11905: 0x9CF4, - 28380 - 11905: 0x9CF5, - 28381 - 11905: 0x9CF6, - 28382 - 11905: 0xD6CD, - 28383 - 11905: 0xE4D9, - 28384 - 11905: 0xE4DC, - 28385 - 11905: 0xC2FA, - 28386 - 11905: 0xE4DE, - 28387 - 11905: 0x9CF7, - 28388 - 11905: 0xC2CB, - 28389 - 11905: 0xC0C4, - 28390 - 11905: 0xC2D0, - 28391 - 11905: 0x9CF8, - 28392 - 11905: 0xB1F5, - 28393 - 11905: 0xCCB2, - 28394 - 11905: 0x9CF9, - 28395 - 11905: 0x9CFA, - 28396 - 11905: 0x9CFB, - 28397 - 11905: 0x9CFC, - 28398 - 11905: 0x9CFD, - 28399 - 11905: 0x9CFE, - 28400 - 11905: 0x9D40, - 28401 - 11905: 0x9D41, - 28402 - 11905: 0x9D42, - 28403 - 11905: 0x9D43, - 28404 - 11905: 0xB5CE, - 28405 - 11905: 0x9D44, - 28406 - 11905: 0x9D45, - 28407 - 11905: 0x9D46, - 28408 - 11905: 0x9D47, - 28409 - 11905: 0xE4EF, - 28410 - 11905: 0x9D48, - 28411 - 11905: 0x9D49, - 28412 - 11905: 0x9D4A, - 28413 - 11905: 0x9D4B, - 28414 - 11905: 0x9D4C, - 28415 - 11905: 0x9D4D, - 28416 - 11905: 0x9D4E, - 28417 - 11905: 0x9D4F, - 28418 - 11905: 0xC6AF, - 28419 - 11905: 0x9D50, - 28420 - 11905: 0x9D51, - 28421 - 11905: 0x9D52, - 28422 - 11905: 0xC6E1, - 28423 - 11905: 0x9D53, - 28424 - 11905: 0x9D54, - 28425 - 11905: 0xE4F5, - 28426 - 11905: 0x9D55, - 28427 - 11905: 0x9D56, - 28428 - 11905: 0x9D57, - 28429 - 11905: 0x9D58, - 28430 - 11905: 0x9D59, - 28431 - 11905: 0xC2A9, - 28432 - 11905: 0x9D5A, - 28433 - 11905: 0x9D5B, - 28434 - 11905: 0x9D5C, - 28435 - 11905: 0xC0EC, - 28436 - 11905: 0xD1DD, - 28437 - 11905: 0xE4EE, - 28438 - 11905: 0x9D5D, - 28439 - 11905: 0x9D5E, - 28440 - 11905: 0x9D5F, - 28441 - 11905: 0x9D60, - 28442 - 11905: 0x9D61, - 28443 - 11905: 0x9D62, - 28444 - 11905: 0x9D63, - 28445 - 11905: 0x9D64, - 28446 - 11905: 0x9D65, - 28447 - 11905: 0x9D66, - 28448 - 11905: 0xC4AE, - 28449 - 11905: 0x9D67, - 28450 - 11905: 0x9D68, - 28451 - 11905: 0x9D69, - 28452 - 11905: 0xE4ED, - 28453 - 11905: 0x9D6A, - 28454 - 11905: 0x9D6B, - 28455 - 11905: 0x9D6C, - 28456 - 11905: 0x9D6D, - 28457 - 11905: 0xE4F6, - 28458 - 11905: 0xE4F4, - 28459 - 11905: 0xC2FE, - 28460 - 11905: 0x9D6E, - 28461 - 11905: 0xE4DD, - 28462 - 11905: 0x9D6F, - 28463 - 11905: 0xE4F0, - 28464 - 11905: 0x9D70, - 28465 - 11905: 0xCAFE, - 28466 - 11905: 0x9D71, - 28467 - 11905: 0xD5C4, - 28468 - 11905: 0x9D72, - 28469 - 11905: 0x9D73, - 28470 - 11905: 0xE4F1, - 28471 - 11905: 0x9D74, - 28472 - 11905: 0x9D75, - 28473 - 11905: 0x9D76, - 28474 - 11905: 0x9D77, - 28475 - 11905: 0x9D78, - 28476 - 11905: 0x9D79, - 28477 - 11905: 0x9D7A, - 28478 - 11905: 0xD1FA, - 28479 - 11905: 0x9D7B, - 28480 - 11905: 0x9D7C, - 28481 - 11905: 0x9D7D, - 28482 - 11905: 0x9D7E, - 28483 - 11905: 0x9D80, - 28484 - 11905: 0x9D81, - 28485 - 11905: 0x9D82, - 28486 - 11905: 0xE4EB, - 28487 - 11905: 0xE4EC, - 28488 - 11905: 0x9D83, - 28489 - 11905: 0x9D84, - 28490 - 11905: 0x9D85, - 28491 - 11905: 0xE4F2, - 28492 - 11905: 0x9D86, - 28493 - 11905: 0xCEAB, - 28494 - 11905: 0x9D87, - 28495 - 11905: 0x9D88, - 28496 - 11905: 0x9D89, - 28497 - 11905: 0x9D8A, - 28498 - 11905: 0x9D8B, - 28499 - 11905: 0x9D8C, - 28500 - 11905: 0x9D8D, - 28501 - 11905: 0x9D8E, - 28502 - 11905: 0x9D8F, - 28503 - 11905: 0x9D90, - 28504 - 11905: 0xC5CB, - 28505 - 11905: 0x9D91, - 28506 - 11905: 0x9D92, - 28507 - 11905: 0x9D93, - 28508 - 11905: 0xC7B1, - 28509 - 11905: 0x9D94, - 28510 - 11905: 0xC2BA, - 28511 - 11905: 0x9D95, - 28512 - 11905: 0x9D96, - 28513 - 11905: 0x9D97, - 28514 - 11905: 0xE4EA, - 28515 - 11905: 0x9D98, - 28516 - 11905: 0x9D99, - 28517 - 11905: 0x9D9A, - 28518 - 11905: 0xC1CA, - 28519 - 11905: 0x9D9B, - 28520 - 11905: 0x9D9C, - 28521 - 11905: 0x9D9D, - 28522 - 11905: 0x9D9E, - 28523 - 11905: 0x9D9F, - 28524 - 11905: 0x9DA0, - 28525 - 11905: 0xCCB6, - 28526 - 11905: 0xB3B1, - 28527 - 11905: 0x9DA1, - 28528 - 11905: 0x9DA2, - 28529 - 11905: 0x9DA3, - 28530 - 11905: 0xE4FB, - 28531 - 11905: 0x9DA4, - 28532 - 11905: 0xE4F3, - 28533 - 11905: 0x9DA5, - 28534 - 11905: 0x9DA6, - 28535 - 11905: 0x9DA7, - 28536 - 11905: 0xE4FA, - 28537 - 11905: 0x9DA8, - 28538 - 11905: 0xE4FD, - 28539 - 11905: 0x9DA9, - 28540 - 11905: 0xE4FC, - 28541 - 11905: 0x9DAA, - 28542 - 11905: 0x9DAB, - 28543 - 11905: 0x9DAC, - 28544 - 11905: 0x9DAD, - 28545 - 11905: 0x9DAE, - 28546 - 11905: 0x9DAF, - 28547 - 11905: 0x9DB0, - 28548 - 11905: 0xB3CE, - 28549 - 11905: 0x9DB1, - 28550 - 11905: 0x9DB2, - 28551 - 11905: 0x9DB3, - 28552 - 11905: 0xB3BA, - 28553 - 11905: 0xE4F7, - 28554 - 11905: 0x9DB4, - 28555 - 11905: 0x9DB5, - 28556 - 11905: 0xE4F9, - 28557 - 11905: 0xE4F8, - 28558 - 11905: 0xC5EC, - 28559 - 11905: 0x9DB6, - 28560 - 11905: 0x9DB7, - 28561 - 11905: 0x9DB8, - 28562 - 11905: 0x9DB9, - 28563 - 11905: 0x9DBA, - 28564 - 11905: 0x9DBB, - 28565 - 11905: 0x9DBC, - 28566 - 11905: 0x9DBD, - 28567 - 11905: 0x9DBE, - 28568 - 11905: 0x9DBF, - 28569 - 11905: 0x9DC0, - 28570 - 11905: 0x9DC1, - 28571 - 11905: 0x9DC2, - 28572 - 11905: 0xC0BD, - 28573 - 11905: 0x9DC3, - 28574 - 11905: 0x9DC4, - 28575 - 11905: 0x9DC5, - 28576 - 11905: 0x9DC6, - 28577 - 11905: 0xD4E8, - 28578 - 11905: 0x9DC7, - 28579 - 11905: 0x9DC8, - 28580 - 11905: 0x9DC9, - 28581 - 11905: 0x9DCA, - 28582 - 11905: 0x9DCB, - 28583 - 11905: 0xE5A2, - 28584 - 11905: 0x9DCC, - 28585 - 11905: 0x9DCD, - 28586 - 11905: 0x9DCE, - 28587 - 11905: 0x9DCF, - 28588 - 11905: 0x9DD0, - 28589 - 11905: 0x9DD1, - 28590 - 11905: 0x9DD2, - 28591 - 11905: 0x9DD3, - 28592 - 11905: 0x9DD4, - 28593 - 11905: 0x9DD5, - 28594 - 11905: 0x9DD6, - 28595 - 11905: 0xB0C4, - 28596 - 11905: 0x9DD7, - 28597 - 11905: 0x9DD8, - 28598 - 11905: 0xE5A4, - 28599 - 11905: 0x9DD9, - 28600 - 11905: 0x9DDA, - 28601 - 11905: 0xE5A3, - 28602 - 11905: 0x9DDB, - 28603 - 11905: 0x9DDC, - 28604 - 11905: 0x9DDD, - 28605 - 11905: 0x9DDE, - 28606 - 11905: 0x9DDF, - 28607 - 11905: 0x9DE0, - 28608 - 11905: 0xBCA4, - 28609 - 11905: 0x9DE1, - 28610 - 11905: 0xE5A5, - 28611 - 11905: 0x9DE2, - 28612 - 11905: 0x9DE3, - 28613 - 11905: 0x9DE4, - 28614 - 11905: 0x9DE5, - 28615 - 11905: 0x9DE6, - 28616 - 11905: 0x9DE7, - 28617 - 11905: 0xE5A1, - 28618 - 11905: 0x9DE8, - 28619 - 11905: 0x9DE9, - 28620 - 11905: 0x9DEA, - 28621 - 11905: 0x9DEB, - 28622 - 11905: 0x9DEC, - 28623 - 11905: 0x9DED, - 28624 - 11905: 0x9DEE, - 28625 - 11905: 0xE4FE, - 28626 - 11905: 0xB1F4, - 28627 - 11905: 0x9DEF, - 28628 - 11905: 0x9DF0, - 28629 - 11905: 0x9DF1, - 28630 - 11905: 0x9DF2, - 28631 - 11905: 0x9DF3, - 28632 - 11905: 0x9DF4, - 28633 - 11905: 0x9DF5, - 28634 - 11905: 0x9DF6, - 28635 - 11905: 0x9DF7, - 28636 - 11905: 0x9DF8, - 28637 - 11905: 0x9DF9, - 28638 - 11905: 0xE5A8, - 28639 - 11905: 0x9DFA, - 28640 - 11905: 0xE5A9, - 28641 - 11905: 0xE5A6, - 28642 - 11905: 0x9DFB, - 28643 - 11905: 0x9DFC, - 28644 - 11905: 0x9DFD, - 28645 - 11905: 0x9DFE, - 28646 - 11905: 0x9E40, - 28647 - 11905: 0x9E41, - 28648 - 11905: 0x9E42, - 28649 - 11905: 0x9E43, - 28650 - 11905: 0x9E44, - 28651 - 11905: 0x9E45, - 28652 - 11905: 0x9E46, - 28653 - 11905: 0x9E47, - 28654 - 11905: 0xE5A7, - 28655 - 11905: 0xE5AA, - 28656 - 11905: 0x9E48, - 28657 - 11905: 0x9E49, - 28658 - 11905: 0x9E4A, - 28659 - 11905: 0x9E4B, - 28660 - 11905: 0x9E4C, - 28661 - 11905: 0x9E4D, - 28662 - 11905: 0x9E4E, - 28663 - 11905: 0x9E4F, - 28664 - 11905: 0x9E50, - 28665 - 11905: 0x9E51, - 28666 - 11905: 0x9E52, - 28667 - 11905: 0x9E53, - 28668 - 11905: 0x9E54, - 28669 - 11905: 0x9E55, - 28670 - 11905: 0x9E56, - 28671 - 11905: 0x9E57, - 28672 - 11905: 0x9E58, - 28673 - 11905: 0x9E59, - 28674 - 11905: 0x9E5A, - 28675 - 11905: 0x9E5B, - 28676 - 11905: 0x9E5C, - 28677 - 11905: 0x9E5D, - 28678 - 11905: 0x9E5E, - 28679 - 11905: 0x9E5F, - 28680 - 11905: 0x9E60, - 28681 - 11905: 0x9E61, - 28682 - 11905: 0x9E62, - 28683 - 11905: 0x9E63, - 28684 - 11905: 0x9E64, - 28685 - 11905: 0x9E65, - 28686 - 11905: 0x9E66, - 28687 - 11905: 0x9E67, - 28688 - 11905: 0x9E68, - 28689 - 11905: 0xC6D9, - 28690 - 11905: 0x9E69, - 28691 - 11905: 0x9E6A, - 28692 - 11905: 0x9E6B, - 28693 - 11905: 0x9E6C, - 28694 - 11905: 0x9E6D, - 28695 - 11905: 0x9E6E, - 28696 - 11905: 0x9E6F, - 28697 - 11905: 0x9E70, - 28698 - 11905: 0xE5AB, - 28699 - 11905: 0xE5AD, - 28700 - 11905: 0x9E71, - 28701 - 11905: 0x9E72, - 28702 - 11905: 0x9E73, - 28703 - 11905: 0x9E74, - 28704 - 11905: 0x9E75, - 28705 - 11905: 0x9E76, - 28706 - 11905: 0x9E77, - 28707 - 11905: 0xE5AC, - 28708 - 11905: 0x9E78, - 28709 - 11905: 0x9E79, - 28710 - 11905: 0x9E7A, - 28711 - 11905: 0x9E7B, - 28712 - 11905: 0x9E7C, - 28713 - 11905: 0x9E7D, - 28714 - 11905: 0x9E7E, - 28715 - 11905: 0x9E80, - 28716 - 11905: 0x9E81, - 28717 - 11905: 0x9E82, - 28718 - 11905: 0x9E83, - 28719 - 11905: 0x9E84, - 28720 - 11905: 0x9E85, - 28721 - 11905: 0x9E86, - 28722 - 11905: 0x9E87, - 28723 - 11905: 0x9E88, - 28724 - 11905: 0x9E89, - 28725 - 11905: 0xE5AF, - 28726 - 11905: 0x9E8A, - 28727 - 11905: 0x9E8B, - 28728 - 11905: 0x9E8C, - 28729 - 11905: 0xE5AE, - 28730 - 11905: 0x9E8D, - 28731 - 11905: 0x9E8E, - 28732 - 11905: 0x9E8F, - 28733 - 11905: 0x9E90, - 28734 - 11905: 0x9E91, - 28735 - 11905: 0x9E92, - 28736 - 11905: 0x9E93, - 28737 - 11905: 0x9E94, - 28738 - 11905: 0x9E95, - 28739 - 11905: 0x9E96, - 28740 - 11905: 0x9E97, - 28741 - 11905: 0x9E98, - 28742 - 11905: 0x9E99, - 28743 - 11905: 0x9E9A, - 28744 - 11905: 0x9E9B, - 28745 - 11905: 0x9E9C, - 28746 - 11905: 0x9E9D, - 28747 - 11905: 0x9E9E, - 28748 - 11905: 0xB9E0, - 28749 - 11905: 0x9E9F, - 28750 - 11905: 0x9EA0, - 28751 - 11905: 0xE5B0, - 28752 - 11905: 0x9EA1, - 28753 - 11905: 0x9EA2, - 28754 - 11905: 0x9EA3, - 28755 - 11905: 0x9EA4, - 28756 - 11905: 0x9EA5, - 28757 - 11905: 0x9EA6, - 28758 - 11905: 0x9EA7, - 28759 - 11905: 0x9EA8, - 28760 - 11905: 0x9EA9, - 28761 - 11905: 0x9EAA, - 28762 - 11905: 0x9EAB, - 28763 - 11905: 0x9EAC, - 28764 - 11905: 0x9EAD, - 28765 - 11905: 0x9EAE, - 28766 - 11905: 0xE5B1, - 28767 - 11905: 0x9EAF, - 28768 - 11905: 0x9EB0, - 28769 - 11905: 0x9EB1, - 28770 - 11905: 0x9EB2, - 28771 - 11905: 0x9EB3, - 28772 - 11905: 0x9EB4, - 28773 - 11905: 0x9EB5, - 28774 - 11905: 0x9EB6, - 28775 - 11905: 0x9EB7, - 28776 - 11905: 0x9EB8, - 28777 - 11905: 0x9EB9, - 28778 - 11905: 0x9EBA, - 28779 - 11905: 0xBBF0, - 28780 - 11905: 0xECE1, - 28781 - 11905: 0xC3F0, - 28782 - 11905: 0x9EBB, - 28783 - 11905: 0xB5C6, - 28784 - 11905: 0xBBD2, - 28785 - 11905: 0x9EBC, - 28786 - 11905: 0x9EBD, - 28787 - 11905: 0x9EBE, - 28788 - 11905: 0x9EBF, - 28789 - 11905: 0xC1E9, - 28790 - 11905: 0xD4EE, - 28791 - 11905: 0x9EC0, - 28792 - 11905: 0xBEC4, - 28793 - 11905: 0x9EC1, - 28794 - 11905: 0x9EC2, - 28795 - 11905: 0x9EC3, - 28796 - 11905: 0xD7C6, - 28797 - 11905: 0x9EC4, - 28798 - 11905: 0xD4D6, - 28799 - 11905: 0xB2D3, - 28800 - 11905: 0xECBE, - 28801 - 11905: 0x9EC5, - 28802 - 11905: 0x9EC6, - 28803 - 11905: 0x9EC7, - 28804 - 11905: 0x9EC8, - 28805 - 11905: 0xEAC1, - 28806 - 11905: 0x9EC9, - 28807 - 11905: 0x9ECA, - 28808 - 11905: 0x9ECB, - 28809 - 11905: 0xC2AF, - 28810 - 11905: 0xB4B6, - 28811 - 11905: 0x9ECC, - 28812 - 11905: 0x9ECD, - 28813 - 11905: 0x9ECE, - 28814 - 11905: 0xD1D7, - 28815 - 11905: 0x9ECF, - 28816 - 11905: 0x9ED0, - 28817 - 11905: 0x9ED1, - 28818 - 11905: 0xB3B4, - 28819 - 11905: 0x9ED2, - 28820 - 11905: 0xC8B2, - 28821 - 11905: 0xBFBB, - 28822 - 11905: 0xECC0, - 28823 - 11905: 0x9ED3, - 28824 - 11905: 0x9ED4, - 28825 - 11905: 0xD6CB, - 28826 - 11905: 0x9ED5, - 28827 - 11905: 0x9ED6, - 28828 - 11905: 0xECBF, - 28829 - 11905: 0xECC1, - 28830 - 11905: 0x9ED7, - 28831 - 11905: 0x9ED8, - 28832 - 11905: 0x9ED9, - 28833 - 11905: 0x9EDA, - 28834 - 11905: 0x9EDB, - 28835 - 11905: 0x9EDC, - 28836 - 11905: 0x9EDD, - 28837 - 11905: 0x9EDE, - 28838 - 11905: 0x9EDF, - 28839 - 11905: 0x9EE0, - 28840 - 11905: 0x9EE1, - 28841 - 11905: 0x9EE2, - 28842 - 11905: 0x9EE3, - 28843 - 11905: 0xECC5, - 28844 - 11905: 0xBEE6, - 28845 - 11905: 0xCCBF, - 28846 - 11905: 0xC5DA, - 28847 - 11905: 0xBEBC, - 28848 - 11905: 0x9EE4, - 28849 - 11905: 0xECC6, - 28850 - 11905: 0x9EE5, - 28851 - 11905: 0xB1FE, - 28852 - 11905: 0x9EE6, - 28853 - 11905: 0x9EE7, - 28854 - 11905: 0x9EE8, - 28855 - 11905: 0xECC4, - 28856 - 11905: 0xD5A8, - 28857 - 11905: 0xB5E3, - 28858 - 11905: 0x9EE9, - 28859 - 11905: 0xECC2, - 28860 - 11905: 0xC1B6, - 28861 - 11905: 0xB3E3, - 28862 - 11905: 0x9EEA, - 28863 - 11905: 0x9EEB, - 28864 - 11905: 0xECC3, - 28865 - 11905: 0xCBB8, - 28866 - 11905: 0xC0C3, - 28867 - 11905: 0xCCFE, - 28868 - 11905: 0x9EEC, - 28869 - 11905: 0x9EED, - 28870 - 11905: 0x9EEE, - 28871 - 11905: 0x9EEF, - 28872 - 11905: 0xC1D2, - 28873 - 11905: 0x9EF0, - 28874 - 11905: 0xECC8, - 28875 - 11905: 0x9EF1, - 28876 - 11905: 0x9EF2, - 28877 - 11905: 0x9EF3, - 28878 - 11905: 0x9EF4, - 28879 - 11905: 0x9EF5, - 28880 - 11905: 0x9EF6, - 28881 - 11905: 0x9EF7, - 28882 - 11905: 0x9EF8, - 28883 - 11905: 0x9EF9, - 28884 - 11905: 0x9EFA, - 28885 - 11905: 0x9EFB, - 28886 - 11905: 0x9EFC, - 28887 - 11905: 0x9EFD, - 28888 - 11905: 0xBAE6, - 28889 - 11905: 0xC0D3, - 28890 - 11905: 0x9EFE, - 28891 - 11905: 0xD6F2, - 28892 - 11905: 0x9F40, - 28893 - 11905: 0x9F41, - 28894 - 11905: 0x9F42, - 28895 - 11905: 0xD1CC, - 28896 - 11905: 0x9F43, - 28897 - 11905: 0x9F44, - 28898 - 11905: 0x9F45, - 28899 - 11905: 0x9F46, - 28900 - 11905: 0xBFBE, - 28901 - 11905: 0x9F47, - 28902 - 11905: 0xB7B3, - 28903 - 11905: 0xC9D5, - 28904 - 11905: 0xECC7, - 28905 - 11905: 0xBBE2, - 28906 - 11905: 0x9F48, - 28907 - 11905: 0xCCCC, - 28908 - 11905: 0xBDFD, - 28909 - 11905: 0xC8C8, - 28910 - 11905: 0x9F49, - 28911 - 11905: 0xCFA9, - 28912 - 11905: 0x9F4A, - 28913 - 11905: 0x9F4B, - 28914 - 11905: 0x9F4C, - 28915 - 11905: 0x9F4D, - 28916 - 11905: 0x9F4E, - 28917 - 11905: 0x9F4F, - 28918 - 11905: 0x9F50, - 28919 - 11905: 0xCDE9, - 28920 - 11905: 0x9F51, - 28921 - 11905: 0xC5EB, - 28922 - 11905: 0x9F52, - 28923 - 11905: 0x9F53, - 28924 - 11905: 0x9F54, - 28925 - 11905: 0xB7E9, - 28926 - 11905: 0x9F55, - 28927 - 11905: 0x9F56, - 28928 - 11905: 0x9F57, - 28929 - 11905: 0x9F58, - 28930 - 11905: 0x9F59, - 28931 - 11905: 0x9F5A, - 28932 - 11905: 0x9F5B, - 28933 - 11905: 0x9F5C, - 28934 - 11905: 0x9F5D, - 28935 - 11905: 0x9F5E, - 28936 - 11905: 0x9F5F, - 28937 - 11905: 0xD1C9, - 28938 - 11905: 0xBAB8, - 28939 - 11905: 0x9F60, - 28940 - 11905: 0x9F61, - 28941 - 11905: 0x9F62, - 28942 - 11905: 0x9F63, - 28943 - 11905: 0x9F64, - 28944 - 11905: 0xECC9, - 28945 - 11905: 0x9F65, - 28946 - 11905: 0x9F66, - 28947 - 11905: 0xECCA, - 28948 - 11905: 0x9F67, - 28949 - 11905: 0xBBC0, - 28950 - 11905: 0xECCB, - 28951 - 11905: 0x9F68, - 28952 - 11905: 0xECE2, - 28953 - 11905: 0xB1BA, - 28954 - 11905: 0xB7D9, - 28955 - 11905: 0x9F69, - 28956 - 11905: 0x9F6A, - 28957 - 11905: 0x9F6B, - 28958 - 11905: 0x9F6C, - 28959 - 11905: 0x9F6D, - 28960 - 11905: 0x9F6E, - 28961 - 11905: 0x9F6F, - 28962 - 11905: 0x9F70, - 28963 - 11905: 0x9F71, - 28964 - 11905: 0x9F72, - 28965 - 11905: 0x9F73, - 28966 - 11905: 0xBDB9, - 28967 - 11905: 0x9F74, - 28968 - 11905: 0x9F75, - 28969 - 11905: 0x9F76, - 28970 - 11905: 0x9F77, - 28971 - 11905: 0x9F78, - 28972 - 11905: 0x9F79, - 28973 - 11905: 0x9F7A, - 28974 - 11905: 0x9F7B, - 28975 - 11905: 0xECCC, - 28976 - 11905: 0xD1E6, - 28977 - 11905: 0xECCD, - 28978 - 11905: 0x9F7C, - 28979 - 11905: 0x9F7D, - 28980 - 11905: 0x9F7E, - 28981 - 11905: 0x9F80, - 28982 - 11905: 0xC8BB, - 28983 - 11905: 0x9F81, - 28984 - 11905: 0x9F82, - 28985 - 11905: 0x9F83, - 28986 - 11905: 0x9F84, - 28987 - 11905: 0x9F85, - 28988 - 11905: 0x9F86, - 28989 - 11905: 0x9F87, - 28990 - 11905: 0x9F88, - 28991 - 11905: 0x9F89, - 28992 - 11905: 0x9F8A, - 28993 - 11905: 0x9F8B, - 28994 - 11905: 0x9F8C, - 28995 - 11905: 0x9F8D, - 28996 - 11905: 0x9F8E, - 28997 - 11905: 0xECD1, - 28998 - 11905: 0x9F8F, - 28999 - 11905: 0x9F90, - 29000 - 11905: 0x9F91, - 29001 - 11905: 0x9F92, - 29002 - 11905: 0xECD3, - 29003 - 11905: 0x9F93, - 29004 - 11905: 0xBBCD, - 29005 - 11905: 0x9F94, - 29006 - 11905: 0xBCE5, - 29007 - 11905: 0x9F95, - 29008 - 11905: 0x9F96, - 29009 - 11905: 0x9F97, - 29010 - 11905: 0x9F98, - 29011 - 11905: 0x9F99, - 29012 - 11905: 0x9F9A, - 29013 - 11905: 0x9F9B, - 29014 - 11905: 0x9F9C, - 29015 - 11905: 0x9F9D, - 29016 - 11905: 0x9F9E, - 29017 - 11905: 0x9F9F, - 29018 - 11905: 0x9FA0, - 29019 - 11905: 0x9FA1, - 29020 - 11905: 0xECCF, - 29021 - 11905: 0x9FA2, - 29022 - 11905: 0xC9B7, - 29023 - 11905: 0x9FA3, - 29024 - 11905: 0x9FA4, - 29025 - 11905: 0x9FA5, - 29026 - 11905: 0x9FA6, - 29027 - 11905: 0x9FA7, - 29028 - 11905: 0xC3BA, - 29029 - 11905: 0x9FA8, - 29030 - 11905: 0xECE3, - 29031 - 11905: 0xD5D5, - 29032 - 11905: 0xECD0, - 29033 - 11905: 0x9FA9, - 29034 - 11905: 0x9FAA, - 29035 - 11905: 0x9FAB, - 29036 - 11905: 0x9FAC, - 29037 - 11905: 0x9FAD, - 29038 - 11905: 0xD6F3, - 29039 - 11905: 0x9FAE, - 29040 - 11905: 0x9FAF, - 29041 - 11905: 0x9FB0, - 29042 - 11905: 0xECD2, - 29043 - 11905: 0xECCE, - 29044 - 11905: 0x9FB1, - 29045 - 11905: 0x9FB2, - 29046 - 11905: 0x9FB3, - 29047 - 11905: 0x9FB4, - 29048 - 11905: 0xECD4, - 29049 - 11905: 0x9FB5, - 29050 - 11905: 0xECD5, - 29051 - 11905: 0x9FB6, - 29052 - 11905: 0x9FB7, - 29053 - 11905: 0xC9BF, - 29054 - 11905: 0x9FB8, - 29055 - 11905: 0x9FB9, - 29056 - 11905: 0x9FBA, - 29057 - 11905: 0x9FBB, - 29058 - 11905: 0x9FBC, - 29059 - 11905: 0x9FBD, - 29060 - 11905: 0xCFA8, - 29061 - 11905: 0x9FBE, - 29062 - 11905: 0x9FBF, - 29063 - 11905: 0x9FC0, - 29064 - 11905: 0x9FC1, - 29065 - 11905: 0x9FC2, - 29066 - 11905: 0xD0DC, - 29067 - 11905: 0x9FC3, - 29068 - 11905: 0x9FC4, - 29069 - 11905: 0x9FC5, - 29070 - 11905: 0x9FC6, - 29071 - 11905: 0xD1AC, - 29072 - 11905: 0x9FC7, - 29073 - 11905: 0x9FC8, - 29074 - 11905: 0x9FC9, - 29075 - 11905: 0x9FCA, - 29076 - 11905: 0xC8DB, - 29077 - 11905: 0x9FCB, - 29078 - 11905: 0x9FCC, - 29079 - 11905: 0x9FCD, - 29080 - 11905: 0xECD6, - 29081 - 11905: 0xCEF5, - 29082 - 11905: 0x9FCE, - 29083 - 11905: 0x9FCF, - 29084 - 11905: 0x9FD0, - 29085 - 11905: 0x9FD1, - 29086 - 11905: 0x9FD2, - 29087 - 11905: 0xCAEC, - 29088 - 11905: 0xECDA, - 29089 - 11905: 0x9FD3, - 29090 - 11905: 0x9FD4, - 29091 - 11905: 0x9FD5, - 29092 - 11905: 0x9FD6, - 29093 - 11905: 0x9FD7, - 29094 - 11905: 0x9FD8, - 29095 - 11905: 0x9FD9, - 29096 - 11905: 0xECD9, - 29097 - 11905: 0x9FDA, - 29098 - 11905: 0x9FDB, - 29099 - 11905: 0x9FDC, - 29100 - 11905: 0xB0BE, - 29101 - 11905: 0x9FDD, - 29102 - 11905: 0x9FDE, - 29103 - 11905: 0x9FDF, - 29104 - 11905: 0x9FE0, - 29105 - 11905: 0x9FE1, - 29106 - 11905: 0x9FE2, - 29107 - 11905: 0xECD7, - 29108 - 11905: 0x9FE3, - 29109 - 11905: 0xECD8, - 29110 - 11905: 0x9FE4, - 29111 - 11905: 0x9FE5, - 29112 - 11905: 0x9FE6, - 29113 - 11905: 0xECE4, - 29114 - 11905: 0x9FE7, - 29115 - 11905: 0x9FE8, - 29116 - 11905: 0x9FE9, - 29117 - 11905: 0x9FEA, - 29118 - 11905: 0x9FEB, - 29119 - 11905: 0x9FEC, - 29120 - 11905: 0x9FED, - 29121 - 11905: 0x9FEE, - 29122 - 11905: 0x9FEF, - 29123 - 11905: 0xC8BC, - 29124 - 11905: 0x9FF0, - 29125 - 11905: 0x9FF1, - 29126 - 11905: 0x9FF2, - 29127 - 11905: 0x9FF3, - 29128 - 11905: 0x9FF4, - 29129 - 11905: 0x9FF5, - 29130 - 11905: 0x9FF6, - 29131 - 11905: 0x9FF7, - 29132 - 11905: 0x9FF8, - 29133 - 11905: 0x9FF9, - 29134 - 11905: 0xC1C7, - 29135 - 11905: 0x9FFA, - 29136 - 11905: 0x9FFB, - 29137 - 11905: 0x9FFC, - 29138 - 11905: 0x9FFD, - 29139 - 11905: 0x9FFE, - 29140 - 11905: 0xECDC, - 29141 - 11905: 0xD1E0, - 29142 - 11905: 0xA040, - 29143 - 11905: 0xA041, - 29144 - 11905: 0xA042, - 29145 - 11905: 0xA043, - 29146 - 11905: 0xA044, - 29147 - 11905: 0xA045, - 29148 - 11905: 0xA046, - 29149 - 11905: 0xA047, - 29150 - 11905: 0xA048, - 29151 - 11905: 0xA049, - 29152 - 11905: 0xECDB, - 29153 - 11905: 0xA04A, - 29154 - 11905: 0xA04B, - 29155 - 11905: 0xA04C, - 29156 - 11905: 0xA04D, - 29157 - 11905: 0xD4EF, - 29158 - 11905: 0xA04E, - 29159 - 11905: 0xECDD, - 29160 - 11905: 0xA04F, - 29161 - 11905: 0xA050, - 29162 - 11905: 0xA051, - 29163 - 11905: 0xA052, - 29164 - 11905: 0xA053, - 29165 - 11905: 0xA054, - 29166 - 11905: 0xDBC6, - 29167 - 11905: 0xA055, - 29168 - 11905: 0xA056, - 29169 - 11905: 0xA057, - 29170 - 11905: 0xA058, - 29171 - 11905: 0xA059, - 29172 - 11905: 0xA05A, - 29173 - 11905: 0xA05B, - 29174 - 11905: 0xA05C, - 29175 - 11905: 0xA05D, - 29176 - 11905: 0xA05E, - 29177 - 11905: 0xECDE, - 29178 - 11905: 0xA05F, - 29179 - 11905: 0xA060, - 29180 - 11905: 0xA061, - 29181 - 11905: 0xA062, - 29182 - 11905: 0xA063, - 29183 - 11905: 0xA064, - 29184 - 11905: 0xA065, - 29185 - 11905: 0xA066, - 29186 - 11905: 0xA067, - 29187 - 11905: 0xA068, - 29188 - 11905: 0xA069, - 29189 - 11905: 0xA06A, - 29190 - 11905: 0xB1AC, - 29191 - 11905: 0xA06B, - 29192 - 11905: 0xA06C, - 29193 - 11905: 0xA06D, - 29194 - 11905: 0xA06E, - 29195 - 11905: 0xA06F, - 29196 - 11905: 0xA070, - 29197 - 11905: 0xA071, - 29198 - 11905: 0xA072, - 29199 - 11905: 0xA073, - 29200 - 11905: 0xA074, - 29201 - 11905: 0xA075, - 29202 - 11905: 0xA076, - 29203 - 11905: 0xA077, - 29204 - 11905: 0xA078, - 29205 - 11905: 0xA079, - 29206 - 11905: 0xA07A, - 29207 - 11905: 0xA07B, - 29208 - 11905: 0xA07C, - 29209 - 11905: 0xA07D, - 29210 - 11905: 0xA07E, - 29211 - 11905: 0xA080, - 29212 - 11905: 0xA081, - 29213 - 11905: 0xECDF, - 29214 - 11905: 0xA082, - 29215 - 11905: 0xA083, - 29216 - 11905: 0xA084, - 29217 - 11905: 0xA085, - 29218 - 11905: 0xA086, - 29219 - 11905: 0xA087, - 29220 - 11905: 0xA088, - 29221 - 11905: 0xA089, - 29222 - 11905: 0xA08A, - 29223 - 11905: 0xA08B, - 29224 - 11905: 0xECE0, - 29225 - 11905: 0xA08C, - 29226 - 11905: 0xD7A6, - 29227 - 11905: 0xA08D, - 29228 - 11905: 0xC5C0, - 29229 - 11905: 0xA08E, - 29230 - 11905: 0xA08F, - 29231 - 11905: 0xA090, - 29232 - 11905: 0xEBBC, - 29233 - 11905: 0xB0AE, - 29234 - 11905: 0xA091, - 29235 - 11905: 0xA092, - 29236 - 11905: 0xA093, - 29237 - 11905: 0xBEF4, - 29238 - 11905: 0xB8B8, - 29239 - 11905: 0xD2AF, - 29240 - 11905: 0xB0D6, - 29241 - 11905: 0xB5F9, - 29242 - 11905: 0xA094, - 29243 - 11905: 0xD8B3, - 29244 - 11905: 0xA095, - 29245 - 11905: 0xCBAC, - 29246 - 11905: 0xA096, - 29247 - 11905: 0xE3DD, - 29248 - 11905: 0xA097, - 29249 - 11905: 0xA098, - 29250 - 11905: 0xA099, - 29251 - 11905: 0xA09A, - 29252 - 11905: 0xA09B, - 29253 - 11905: 0xA09C, - 29254 - 11905: 0xA09D, - 29255 - 11905: 0xC6AC, - 29256 - 11905: 0xB0E6, - 29257 - 11905: 0xA09E, - 29258 - 11905: 0xA09F, - 29259 - 11905: 0xA0A0, - 29260 - 11905: 0xC5C6, - 29261 - 11905: 0xEBB9, - 29262 - 11905: 0xA0A1, - 29263 - 11905: 0xA0A2, - 29264 - 11905: 0xA0A3, - 29265 - 11905: 0xA0A4, - 29266 - 11905: 0xEBBA, - 29267 - 11905: 0xA0A5, - 29268 - 11905: 0xA0A6, - 29269 - 11905: 0xA0A7, - 29270 - 11905: 0xEBBB, - 29271 - 11905: 0xA0A8, - 29272 - 11905: 0xA0A9, - 29273 - 11905: 0xD1C0, - 29274 - 11905: 0xA0AA, - 29275 - 11905: 0xC5A3, - 29276 - 11905: 0xA0AB, - 29277 - 11905: 0xEAF2, - 29278 - 11905: 0xA0AC, - 29279 - 11905: 0xC4B2, - 29280 - 11905: 0xA0AD, - 29281 - 11905: 0xC4B5, - 29282 - 11905: 0xC0CE, - 29283 - 11905: 0xA0AE, - 29284 - 11905: 0xA0AF, - 29285 - 11905: 0xA0B0, - 29286 - 11905: 0xEAF3, - 29287 - 11905: 0xC4C1, - 29288 - 11905: 0xA0B1, - 29289 - 11905: 0xCEEF, - 29290 - 11905: 0xA0B2, - 29291 - 11905: 0xA0B3, - 29292 - 11905: 0xA0B4, - 29293 - 11905: 0xA0B5, - 29294 - 11905: 0xEAF0, - 29295 - 11905: 0xEAF4, - 29296 - 11905: 0xA0B6, - 29297 - 11905: 0xA0B7, - 29298 - 11905: 0xC9FC, - 29299 - 11905: 0xA0B8, - 29300 - 11905: 0xA0B9, - 29301 - 11905: 0xC7A3, - 29302 - 11905: 0xA0BA, - 29303 - 11905: 0xA0BB, - 29304 - 11905: 0xA0BC, - 29305 - 11905: 0xCCD8, - 29306 - 11905: 0xCEFE, - 29307 - 11905: 0xA0BD, - 29308 - 11905: 0xA0BE, - 29309 - 11905: 0xA0BF, - 29310 - 11905: 0xEAF5, - 29311 - 11905: 0xEAF6, - 29312 - 11905: 0xCFAC, - 29313 - 11905: 0xC0E7, - 29314 - 11905: 0xA0C0, - 29315 - 11905: 0xA0C1, - 29316 - 11905: 0xEAF7, - 29317 - 11905: 0xA0C2, - 29318 - 11905: 0xA0C3, - 29319 - 11905: 0xA0C4, - 29320 - 11905: 0xA0C5, - 29321 - 11905: 0xA0C6, - 29322 - 11905: 0xB6BF, - 29323 - 11905: 0xEAF8, - 29324 - 11905: 0xA0C7, - 29325 - 11905: 0xEAF9, - 29326 - 11905: 0xA0C8, - 29327 - 11905: 0xEAFA, - 29328 - 11905: 0xA0C9, - 29329 - 11905: 0xA0CA, - 29330 - 11905: 0xEAFB, - 29331 - 11905: 0xA0CB, - 29332 - 11905: 0xA0CC, - 29333 - 11905: 0xA0CD, - 29334 - 11905: 0xA0CE, - 29335 - 11905: 0xA0CF, - 29336 - 11905: 0xA0D0, - 29337 - 11905: 0xA0D1, - 29338 - 11905: 0xA0D2, - 29339 - 11905: 0xA0D3, - 29340 - 11905: 0xA0D4, - 29341 - 11905: 0xA0D5, - 29342 - 11905: 0xA0D6, - 29343 - 11905: 0xEAF1, - 29344 - 11905: 0xA0D7, - 29345 - 11905: 0xA0D8, - 29346 - 11905: 0xA0D9, - 29347 - 11905: 0xA0DA, - 29348 - 11905: 0xA0DB, - 29349 - 11905: 0xA0DC, - 29350 - 11905: 0xA0DD, - 29351 - 11905: 0xA0DE, - 29352 - 11905: 0xA0DF, - 29353 - 11905: 0xA0E0, - 29354 - 11905: 0xA0E1, - 29355 - 11905: 0xA0E2, - 29356 - 11905: 0xC8AE, - 29357 - 11905: 0xE1EB, - 29358 - 11905: 0xA0E3, - 29359 - 11905: 0xB7B8, - 29360 - 11905: 0xE1EC, - 29361 - 11905: 0xA0E4, - 29362 - 11905: 0xA0E5, - 29363 - 11905: 0xA0E6, - 29364 - 11905: 0xE1ED, - 29365 - 11905: 0xA0E7, - 29366 - 11905: 0xD7B4, - 29367 - 11905: 0xE1EE, - 29368 - 11905: 0xE1EF, - 29369 - 11905: 0xD3CC, - 29370 - 11905: 0xA0E8, - 29371 - 11905: 0xA0E9, - 29372 - 11905: 0xA0EA, - 29373 - 11905: 0xA0EB, - 29374 - 11905: 0xA0EC, - 29375 - 11905: 0xA0ED, - 29376 - 11905: 0xA0EE, - 29377 - 11905: 0xE1F1, - 29378 - 11905: 0xBFF1, - 29379 - 11905: 0xE1F0, - 29380 - 11905: 0xB5D2, - 29381 - 11905: 0xA0EF, - 29382 - 11905: 0xA0F0, - 29383 - 11905: 0xA0F1, - 29384 - 11905: 0xB1B7, - 29385 - 11905: 0xA0F2, - 29386 - 11905: 0xA0F3, - 29387 - 11905: 0xA0F4, - 29388 - 11905: 0xA0F5, - 29389 - 11905: 0xE1F3, - 29390 - 11905: 0xE1F2, - 29391 - 11905: 0xA0F6, - 29392 - 11905: 0xBAFC, - 29393 - 11905: 0xA0F7, - 29394 - 11905: 0xE1F4, - 29395 - 11905: 0xA0F8, - 29396 - 11905: 0xA0F9, - 29397 - 11905: 0xA0FA, - 29398 - 11905: 0xA0FB, - 29399 - 11905: 0xB9B7, - 29400 - 11905: 0xA0FC, - 29401 - 11905: 0xBED1, - 29402 - 11905: 0xA0FD, - 29403 - 11905: 0xA0FE, - 29404 - 11905: 0xAA40, - 29405 - 11905: 0xAA41, - 29406 - 11905: 0xC4FC, - 29407 - 11905: 0xAA42, - 29408 - 11905: 0xBADD, - 29409 - 11905: 0xBDC6, - 29410 - 11905: 0xAA43, - 29411 - 11905: 0xAA44, - 29412 - 11905: 0xAA45, - 29413 - 11905: 0xAA46, - 29414 - 11905: 0xAA47, - 29415 - 11905: 0xAA48, - 29416 - 11905: 0xE1F5, - 29417 - 11905: 0xE1F7, - 29418 - 11905: 0xAA49, - 29419 - 11905: 0xAA4A, - 29420 - 11905: 0xB6C0, - 29421 - 11905: 0xCFC1, - 29422 - 11905: 0xCAA8, - 29423 - 11905: 0xE1F6, - 29424 - 11905: 0xD5F8, - 29425 - 11905: 0xD3FC, - 29426 - 11905: 0xE1F8, - 29427 - 11905: 0xE1FC, - 29428 - 11905: 0xE1F9, - 29429 - 11905: 0xAA4B, - 29430 - 11905: 0xAA4C, - 29431 - 11905: 0xE1FA, - 29432 - 11905: 0xC0EA, - 29433 - 11905: 0xAA4D, - 29434 - 11905: 0xE1FE, - 29435 - 11905: 0xE2A1, - 29436 - 11905: 0xC0C7, - 29437 - 11905: 0xAA4E, - 29438 - 11905: 0xAA4F, - 29439 - 11905: 0xAA50, - 29440 - 11905: 0xAA51, - 29441 - 11905: 0xE1FB, - 29442 - 11905: 0xAA52, - 29443 - 11905: 0xE1FD, - 29444 - 11905: 0xAA53, - 29445 - 11905: 0xAA54, - 29446 - 11905: 0xAA55, - 29447 - 11905: 0xAA56, - 29448 - 11905: 0xAA57, - 29449 - 11905: 0xAA58, - 29450 - 11905: 0xE2A5, - 29451 - 11905: 0xAA59, - 29452 - 11905: 0xAA5A, - 29453 - 11905: 0xAA5B, - 29454 - 11905: 0xC1D4, - 29455 - 11905: 0xAA5C, - 29456 - 11905: 0xAA5D, - 29457 - 11905: 0xAA5E, - 29458 - 11905: 0xAA5F, - 29459 - 11905: 0xE2A3, - 29460 - 11905: 0xAA60, - 29461 - 11905: 0xE2A8, - 29462 - 11905: 0xB2FE, - 29463 - 11905: 0xE2A2, - 29464 - 11905: 0xAA61, - 29465 - 11905: 0xAA62, - 29466 - 11905: 0xAA63, - 29467 - 11905: 0xC3CD, - 29468 - 11905: 0xB2C2, - 29469 - 11905: 0xE2A7, - 29470 - 11905: 0xE2A6, - 29471 - 11905: 0xAA64, - 29472 - 11905: 0xAA65, - 29473 - 11905: 0xE2A4, - 29474 - 11905: 0xE2A9, - 29475 - 11905: 0xAA66, - 29476 - 11905: 0xAA67, - 29477 - 11905: 0xE2AB, - 29478 - 11905: 0xAA68, - 29479 - 11905: 0xAA69, - 29480 - 11905: 0xAA6A, - 29481 - 11905: 0xD0C9, - 29482 - 11905: 0xD6ED, - 29483 - 11905: 0xC3A8, - 29484 - 11905: 0xE2AC, - 29485 - 11905: 0xAA6B, - 29486 - 11905: 0xCFD7, - 29487 - 11905: 0xAA6C, - 29488 - 11905: 0xAA6D, - 29489 - 11905: 0xE2AE, - 29490 - 11905: 0xAA6E, - 29491 - 11905: 0xAA6F, - 29492 - 11905: 0xBAEF, - 29493 - 11905: 0xAA70, - 29494 - 11905: 0xAA71, - 29495 - 11905: 0xE9E0, - 29496 - 11905: 0xE2AD, - 29497 - 11905: 0xE2AA, - 29498 - 11905: 0xAA72, - 29499 - 11905: 0xAA73, - 29500 - 11905: 0xAA74, - 29501 - 11905: 0xAA75, - 29502 - 11905: 0xBBAB, - 29503 - 11905: 0xD4B3, - 29504 - 11905: 0xAA76, - 29505 - 11905: 0xAA77, - 29506 - 11905: 0xAA78, - 29507 - 11905: 0xAA79, - 29508 - 11905: 0xAA7A, - 29509 - 11905: 0xAA7B, - 29510 - 11905: 0xAA7C, - 29511 - 11905: 0xAA7D, - 29512 - 11905: 0xAA7E, - 29513 - 11905: 0xAA80, - 29514 - 11905: 0xAA81, - 29515 - 11905: 0xAA82, - 29516 - 11905: 0xAA83, - 29517 - 11905: 0xE2B0, - 29518 - 11905: 0xAA84, - 29519 - 11905: 0xAA85, - 29520 - 11905: 0xE2AF, - 29521 - 11905: 0xAA86, - 29522 - 11905: 0xE9E1, - 29523 - 11905: 0xAA87, - 29524 - 11905: 0xAA88, - 29525 - 11905: 0xAA89, - 29526 - 11905: 0xAA8A, - 29527 - 11905: 0xE2B1, - 29528 - 11905: 0xAA8B, - 29529 - 11905: 0xAA8C, - 29530 - 11905: 0xAA8D, - 29531 - 11905: 0xAA8E, - 29532 - 11905: 0xAA8F, - 29533 - 11905: 0xAA90, - 29534 - 11905: 0xAA91, - 29535 - 11905: 0xAA92, - 29536 - 11905: 0xE2B2, - 29537 - 11905: 0xAA93, - 29538 - 11905: 0xAA94, - 29539 - 11905: 0xAA95, - 29540 - 11905: 0xAA96, - 29541 - 11905: 0xAA97, - 29542 - 11905: 0xAA98, - 29543 - 11905: 0xAA99, - 29544 - 11905: 0xAA9A, - 29545 - 11905: 0xAA9B, - 29546 - 11905: 0xAA9C, - 29547 - 11905: 0xAA9D, - 29548 - 11905: 0xE2B3, - 29549 - 11905: 0xCCA1, - 29550 - 11905: 0xAA9E, - 29551 - 11905: 0xE2B4, - 29552 - 11905: 0xAA9F, - 29553 - 11905: 0xAAA0, - 29554 - 11905: 0xAB40, - 29555 - 11905: 0xAB41, - 29556 - 11905: 0xAB42, - 29557 - 11905: 0xAB43, - 29558 - 11905: 0xAB44, - 29559 - 11905: 0xAB45, - 29560 - 11905: 0xAB46, - 29561 - 11905: 0xAB47, - 29562 - 11905: 0xAB48, - 29563 - 11905: 0xAB49, - 29564 - 11905: 0xAB4A, - 29565 - 11905: 0xAB4B, - 29566 - 11905: 0xE2B5, - 29567 - 11905: 0xAB4C, - 29568 - 11905: 0xAB4D, - 29569 - 11905: 0xAB4E, - 29570 - 11905: 0xAB4F, - 29571 - 11905: 0xAB50, - 29572 - 11905: 0xD0FE, - 29573 - 11905: 0xAB51, - 29574 - 11905: 0xAB52, - 29575 - 11905: 0xC2CA, - 29576 - 11905: 0xAB53, - 29577 - 11905: 0xD3F1, - 29578 - 11905: 0xAB54, - 29579 - 11905: 0xCDF5, - 29580 - 11905: 0xAB55, - 29581 - 11905: 0xAB56, - 29582 - 11905: 0xE7E0, - 29583 - 11905: 0xAB57, - 29584 - 11905: 0xAB58, - 29585 - 11905: 0xE7E1, - 29586 - 11905: 0xAB59, - 29587 - 11905: 0xAB5A, - 29588 - 11905: 0xAB5B, - 29589 - 11905: 0xAB5C, - 29590 - 11905: 0xBEC1, - 29591 - 11905: 0xAB5D, - 29592 - 11905: 0xAB5E, - 29593 - 11905: 0xAB5F, - 29594 - 11905: 0xAB60, - 29595 - 11905: 0xC2EA, - 29596 - 11905: 0xAB61, - 29597 - 11905: 0xAB62, - 29598 - 11905: 0xAB63, - 29599 - 11905: 0xE7E4, - 29600 - 11905: 0xAB64, - 29601 - 11905: 0xAB65, - 29602 - 11905: 0xE7E3, - 29603 - 11905: 0xAB66, - 29604 - 11905: 0xAB67, - 29605 - 11905: 0xAB68, - 29606 - 11905: 0xAB69, - 29607 - 11905: 0xAB6A, - 29608 - 11905: 0xAB6B, - 29609 - 11905: 0xCDE6, - 29610 - 11905: 0xAB6C, - 29611 - 11905: 0xC3B5, - 29612 - 11905: 0xAB6D, - 29613 - 11905: 0xAB6E, - 29614 - 11905: 0xE7E2, - 29615 - 11905: 0xBBB7, - 29616 - 11905: 0xCFD6, - 29617 - 11905: 0xAB6F, - 29618 - 11905: 0xC1E1, - 29619 - 11905: 0xE7E9, - 29620 - 11905: 0xAB70, - 29621 - 11905: 0xAB71, - 29622 - 11905: 0xAB72, - 29623 - 11905: 0xE7E8, - 29624 - 11905: 0xAB73, - 29625 - 11905: 0xAB74, - 29626 - 11905: 0xE7F4, - 29627 - 11905: 0xB2A3, - 29628 - 11905: 0xAB75, - 29629 - 11905: 0xAB76, - 29630 - 11905: 0xAB77, - 29631 - 11905: 0xAB78, - 29632 - 11905: 0xE7EA, - 29633 - 11905: 0xAB79, - 29634 - 11905: 0xE7E6, - 29635 - 11905: 0xAB7A, - 29636 - 11905: 0xAB7B, - 29637 - 11905: 0xAB7C, - 29638 - 11905: 0xAB7D, - 29639 - 11905: 0xAB7E, - 29640 - 11905: 0xE7EC, - 29641 - 11905: 0xE7EB, - 29642 - 11905: 0xC9BA, - 29643 - 11905: 0xAB80, - 29644 - 11905: 0xAB81, - 29645 - 11905: 0xD5E4, - 29646 - 11905: 0xAB82, - 29647 - 11905: 0xE7E5, - 29648 - 11905: 0xB7A9, - 29649 - 11905: 0xE7E7, - 29650 - 11905: 0xAB83, - 29651 - 11905: 0xAB84, - 29652 - 11905: 0xAB85, - 29653 - 11905: 0xAB86, - 29654 - 11905: 0xAB87, - 29655 - 11905: 0xAB88, - 29656 - 11905: 0xAB89, - 29657 - 11905: 0xE7EE, - 29658 - 11905: 0xAB8A, - 29659 - 11905: 0xAB8B, - 29660 - 11905: 0xAB8C, - 29661 - 11905: 0xAB8D, - 29662 - 11905: 0xE7F3, - 29663 - 11905: 0xAB8E, - 29664 - 11905: 0xD6E9, - 29665 - 11905: 0xAB8F, - 29666 - 11905: 0xAB90, - 29667 - 11905: 0xAB91, - 29668 - 11905: 0xAB92, - 29669 - 11905: 0xE7ED, - 29670 - 11905: 0xAB93, - 29671 - 11905: 0xE7F2, - 29672 - 11905: 0xAB94, - 29673 - 11905: 0xE7F1, - 29674 - 11905: 0xAB95, - 29675 - 11905: 0xAB96, - 29676 - 11905: 0xAB97, - 29677 - 11905: 0xB0E0, - 29678 - 11905: 0xAB98, - 29679 - 11905: 0xAB99, - 29680 - 11905: 0xAB9A, - 29681 - 11905: 0xAB9B, - 29682 - 11905: 0xE7F5, - 29683 - 11905: 0xAB9C, - 29684 - 11905: 0xAB9D, - 29685 - 11905: 0xAB9E, - 29686 - 11905: 0xAB9F, - 29687 - 11905: 0xABA0, - 29688 - 11905: 0xAC40, - 29689 - 11905: 0xAC41, - 29690 - 11905: 0xAC42, - 29691 - 11905: 0xAC43, - 29692 - 11905: 0xAC44, - 29693 - 11905: 0xAC45, - 29694 - 11905: 0xAC46, - 29695 - 11905: 0xAC47, - 29696 - 11905: 0xAC48, - 29697 - 11905: 0xAC49, - 29698 - 11905: 0xAC4A, - 29699 - 11905: 0xC7F2, - 29700 - 11905: 0xAC4B, - 29701 - 11905: 0xC0C5, - 29702 - 11905: 0xC0ED, - 29703 - 11905: 0xAC4C, - 29704 - 11905: 0xAC4D, - 29705 - 11905: 0xC1F0, - 29706 - 11905: 0xE7F0, - 29707 - 11905: 0xAC4E, - 29708 - 11905: 0xAC4F, - 29709 - 11905: 0xAC50, - 29710 - 11905: 0xAC51, - 29711 - 11905: 0xE7F6, - 29712 - 11905: 0xCBF6, - 29713 - 11905: 0xAC52, - 29714 - 11905: 0xAC53, - 29715 - 11905: 0xAC54, - 29716 - 11905: 0xAC55, - 29717 - 11905: 0xAC56, - 29718 - 11905: 0xAC57, - 29719 - 11905: 0xAC58, - 29720 - 11905: 0xAC59, - 29721 - 11905: 0xAC5A, - 29722 - 11905: 0xE8A2, - 29723 - 11905: 0xE8A1, - 29724 - 11905: 0xAC5B, - 29725 - 11905: 0xAC5C, - 29726 - 11905: 0xAC5D, - 29727 - 11905: 0xAC5E, - 29728 - 11905: 0xAC5F, - 29729 - 11905: 0xAC60, - 29730 - 11905: 0xD7C1, - 29731 - 11905: 0xAC61, - 29732 - 11905: 0xAC62, - 29733 - 11905: 0xE7FA, - 29734 - 11905: 0xE7F9, - 29735 - 11905: 0xAC63, - 29736 - 11905: 0xE7FB, - 29737 - 11905: 0xAC64, - 29738 - 11905: 0xE7F7, - 29739 - 11905: 0xAC65, - 29740 - 11905: 0xE7FE, - 29741 - 11905: 0xAC66, - 29742 - 11905: 0xE7FD, - 29743 - 11905: 0xAC67, - 29744 - 11905: 0xE7FC, - 29745 - 11905: 0xAC68, - 29746 - 11905: 0xAC69, - 29747 - 11905: 0xC1D5, - 29748 - 11905: 0xC7D9, - 29749 - 11905: 0xC5FD, - 29750 - 11905: 0xC5C3, - 29751 - 11905: 0xAC6A, - 29752 - 11905: 0xAC6B, - 29753 - 11905: 0xAC6C, - 29754 - 11905: 0xAC6D, - 29755 - 11905: 0xAC6E, - 29756 - 11905: 0xC7ED, - 29757 - 11905: 0xAC6F, - 29758 - 11905: 0xAC70, - 29759 - 11905: 0xAC71, - 29760 - 11905: 0xAC72, - 29761 - 11905: 0xE8A3, - 29762 - 11905: 0xAC73, - 29763 - 11905: 0xAC74, - 29764 - 11905: 0xAC75, - 29765 - 11905: 0xAC76, - 29766 - 11905: 0xAC77, - 29767 - 11905: 0xAC78, - 29768 - 11905: 0xAC79, - 29769 - 11905: 0xAC7A, - 29770 - 11905: 0xAC7B, - 29771 - 11905: 0xAC7C, - 29772 - 11905: 0xAC7D, - 29773 - 11905: 0xAC7E, - 29774 - 11905: 0xAC80, - 29775 - 11905: 0xAC81, - 29776 - 11905: 0xAC82, - 29777 - 11905: 0xAC83, - 29778 - 11905: 0xAC84, - 29779 - 11905: 0xAC85, - 29780 - 11905: 0xAC86, - 29781 - 11905: 0xE8A6, - 29782 - 11905: 0xAC87, - 29783 - 11905: 0xE8A5, - 29784 - 11905: 0xAC88, - 29785 - 11905: 0xE8A7, - 29786 - 11905: 0xBAF7, - 29787 - 11905: 0xE7F8, - 29788 - 11905: 0xE8A4, - 29789 - 11905: 0xAC89, - 29790 - 11905: 0xC8F0, - 29791 - 11905: 0xC9AA, - 29792 - 11905: 0xAC8A, - 29793 - 11905: 0xAC8B, - 29794 - 11905: 0xAC8C, - 29795 - 11905: 0xAC8D, - 29796 - 11905: 0xAC8E, - 29797 - 11905: 0xAC8F, - 29798 - 11905: 0xAC90, - 29799 - 11905: 0xAC91, - 29800 - 11905: 0xAC92, - 29801 - 11905: 0xAC93, - 29802 - 11905: 0xAC94, - 29803 - 11905: 0xAC95, - 29804 - 11905: 0xAC96, - 29805 - 11905: 0xE8A9, - 29806 - 11905: 0xAC97, - 29807 - 11905: 0xAC98, - 29808 - 11905: 0xB9E5, - 29809 - 11905: 0xAC99, - 29810 - 11905: 0xAC9A, - 29811 - 11905: 0xAC9B, - 29812 - 11905: 0xAC9C, - 29813 - 11905: 0xAC9D, - 29814 - 11905: 0xD1FE, - 29815 - 11905: 0xE8A8, - 29816 - 11905: 0xAC9E, - 29817 - 11905: 0xAC9F, - 29818 - 11905: 0xACA0, - 29819 - 11905: 0xAD40, - 29820 - 11905: 0xAD41, - 29821 - 11905: 0xAD42, - 29822 - 11905: 0xE8AA, - 29823 - 11905: 0xAD43, - 29824 - 11905: 0xE8AD, - 29825 - 11905: 0xE8AE, - 29826 - 11905: 0xAD44, - 29827 - 11905: 0xC1A7, - 29828 - 11905: 0xAD45, - 29829 - 11905: 0xAD46, - 29830 - 11905: 0xAD47, - 29831 - 11905: 0xE8AF, - 29832 - 11905: 0xAD48, - 29833 - 11905: 0xAD49, - 29834 - 11905: 0xAD4A, - 29835 - 11905: 0xE8B0, - 29836 - 11905: 0xAD4B, - 29837 - 11905: 0xAD4C, - 29838 - 11905: 0xE8AC, - 29839 - 11905: 0xAD4D, - 29840 - 11905: 0xE8B4, - 29841 - 11905: 0xAD4E, - 29842 - 11905: 0xAD4F, - 29843 - 11905: 0xAD50, - 29844 - 11905: 0xAD51, - 29845 - 11905: 0xAD52, - 29846 - 11905: 0xAD53, - 29847 - 11905: 0xAD54, - 29848 - 11905: 0xAD55, - 29849 - 11905: 0xAD56, - 29850 - 11905: 0xAD57, - 29851 - 11905: 0xAD58, - 29852 - 11905: 0xE8AB, - 29853 - 11905: 0xAD59, - 29854 - 11905: 0xE8B1, - 29855 - 11905: 0xAD5A, - 29856 - 11905: 0xAD5B, - 29857 - 11905: 0xAD5C, - 29858 - 11905: 0xAD5D, - 29859 - 11905: 0xAD5E, - 29860 - 11905: 0xAD5F, - 29861 - 11905: 0xAD60, - 29862 - 11905: 0xAD61, - 29863 - 11905: 0xE8B5, - 29864 - 11905: 0xE8B2, - 29865 - 11905: 0xE8B3, - 29866 - 11905: 0xAD62, - 29867 - 11905: 0xAD63, - 29868 - 11905: 0xAD64, - 29869 - 11905: 0xAD65, - 29870 - 11905: 0xAD66, - 29871 - 11905: 0xAD67, - 29872 - 11905: 0xAD68, - 29873 - 11905: 0xAD69, - 29874 - 11905: 0xAD6A, - 29875 - 11905: 0xAD6B, - 29876 - 11905: 0xAD6C, - 29877 - 11905: 0xAD6D, - 29878 - 11905: 0xAD6E, - 29879 - 11905: 0xAD6F, - 29880 - 11905: 0xAD70, - 29881 - 11905: 0xAD71, - 29882 - 11905: 0xE8B7, - 29883 - 11905: 0xAD72, - 29884 - 11905: 0xAD73, - 29885 - 11905: 0xAD74, - 29886 - 11905: 0xAD75, - 29887 - 11905: 0xAD76, - 29888 - 11905: 0xAD77, - 29889 - 11905: 0xAD78, - 29890 - 11905: 0xAD79, - 29891 - 11905: 0xAD7A, - 29892 - 11905: 0xAD7B, - 29893 - 11905: 0xAD7C, - 29894 - 11905: 0xAD7D, - 29895 - 11905: 0xAD7E, - 29896 - 11905: 0xAD80, - 29897 - 11905: 0xAD81, - 29898 - 11905: 0xAD82, - 29899 - 11905: 0xAD83, - 29900 - 11905: 0xAD84, - 29901 - 11905: 0xAD85, - 29902 - 11905: 0xAD86, - 29903 - 11905: 0xAD87, - 29904 - 11905: 0xAD88, - 29905 - 11905: 0xAD89, - 29906 - 11905: 0xE8B6, - 29907 - 11905: 0xAD8A, - 29908 - 11905: 0xAD8B, - 29909 - 11905: 0xAD8C, - 29910 - 11905: 0xAD8D, - 29911 - 11905: 0xAD8E, - 29912 - 11905: 0xAD8F, - 29913 - 11905: 0xAD90, - 29914 - 11905: 0xAD91, - 29915 - 11905: 0xAD92, - 29916 - 11905: 0xB9CF, - 29917 - 11905: 0xAD93, - 29918 - 11905: 0xF0AC, - 29919 - 11905: 0xAD94, - 29920 - 11905: 0xF0AD, - 29921 - 11905: 0xAD95, - 29922 - 11905: 0xC6B0, - 29923 - 11905: 0xB0EA, - 29924 - 11905: 0xC8BF, - 29925 - 11905: 0xAD96, - 29926 - 11905: 0xCDDF, - 29927 - 11905: 0xAD97, - 29928 - 11905: 0xAD98, - 29929 - 11905: 0xAD99, - 29930 - 11905: 0xAD9A, - 29931 - 11905: 0xAD9B, - 29932 - 11905: 0xAD9C, - 29933 - 11905: 0xAD9D, - 29934 - 11905: 0xCECD, - 29935 - 11905: 0xEAB1, - 29936 - 11905: 0xAD9E, - 29937 - 11905: 0xAD9F, - 29938 - 11905: 0xADA0, - 29939 - 11905: 0xAE40, - 29940 - 11905: 0xEAB2, - 29941 - 11905: 0xAE41, - 29942 - 11905: 0xC6BF, - 29943 - 11905: 0xB4C9, - 29944 - 11905: 0xAE42, - 29945 - 11905: 0xAE43, - 29946 - 11905: 0xAE44, - 29947 - 11905: 0xAE45, - 29948 - 11905: 0xAE46, - 29949 - 11905: 0xAE47, - 29950 - 11905: 0xAE48, - 29951 - 11905: 0xEAB3, - 29952 - 11905: 0xAE49, - 29953 - 11905: 0xAE4A, - 29954 - 11905: 0xAE4B, - 29955 - 11905: 0xAE4C, - 29956 - 11905: 0xD5E7, - 29957 - 11905: 0xAE4D, - 29958 - 11905: 0xAE4E, - 29959 - 11905: 0xAE4F, - 29960 - 11905: 0xAE50, - 29961 - 11905: 0xAE51, - 29962 - 11905: 0xAE52, - 29963 - 11905: 0xAE53, - 29964 - 11905: 0xAE54, - 29965 - 11905: 0xDDF9, - 29966 - 11905: 0xAE55, - 29967 - 11905: 0xEAB4, - 29968 - 11905: 0xAE56, - 29969 - 11905: 0xEAB5, - 29970 - 11905: 0xAE57, - 29971 - 11905: 0xEAB6, - 29972 - 11905: 0xAE58, - 29973 - 11905: 0xAE59, - 29974 - 11905: 0xAE5A, - 29975 - 11905: 0xAE5B, - 29976 - 11905: 0xB8CA, - 29977 - 11905: 0xDFB0, - 29978 - 11905: 0xC9F5, - 29979 - 11905: 0xAE5C, - 29980 - 11905: 0xCCF0, - 29981 - 11905: 0xAE5D, - 29982 - 11905: 0xAE5E, - 29983 - 11905: 0xC9FA, - 29984 - 11905: 0xAE5F, - 29985 - 11905: 0xAE60, - 29986 - 11905: 0xAE61, - 29987 - 11905: 0xAE62, - 29988 - 11905: 0xAE63, - 29989 - 11905: 0xC9FB, - 29990 - 11905: 0xAE64, - 29991 - 11905: 0xAE65, - 29992 - 11905: 0xD3C3, - 29993 - 11905: 0xCBA6, - 29994 - 11905: 0xAE66, - 29995 - 11905: 0xB8A6, - 29996 - 11905: 0xF0AE, - 29997 - 11905: 0xB1C2, - 29998 - 11905: 0xAE67, - 29999 - 11905: 0xE5B8, - 30000 - 11905: 0xCCEF, - 30001 - 11905: 0xD3C9, - 30002 - 11905: 0xBCD7, - 30003 - 11905: 0xC9EA, - 30004 - 11905: 0xAE68, - 30005 - 11905: 0xB5E7, - 30006 - 11905: 0xAE69, - 30007 - 11905: 0xC4D0, - 30008 - 11905: 0xB5E9, - 30009 - 11905: 0xAE6A, - 30010 - 11905: 0xEEAE, - 30011 - 11905: 0xBBAD, - 30012 - 11905: 0xAE6B, - 30013 - 11905: 0xAE6C, - 30014 - 11905: 0xE7DE, - 30015 - 11905: 0xAE6D, - 30016 - 11905: 0xEEAF, - 30017 - 11905: 0xAE6E, - 30018 - 11905: 0xAE6F, - 30019 - 11905: 0xAE70, - 30020 - 11905: 0xAE71, - 30021 - 11905: 0xB3A9, - 30022 - 11905: 0xAE72, - 30023 - 11905: 0xAE73, - 30024 - 11905: 0xEEB2, - 30025 - 11905: 0xAE74, - 30026 - 11905: 0xAE75, - 30027 - 11905: 0xEEB1, - 30028 - 11905: 0xBDE7, - 30029 - 11905: 0xAE76, - 30030 - 11905: 0xEEB0, - 30031 - 11905: 0xCEB7, - 30032 - 11905: 0xAE77, - 30033 - 11905: 0xAE78, - 30034 - 11905: 0xAE79, - 30035 - 11905: 0xAE7A, - 30036 - 11905: 0xC5CF, - 30037 - 11905: 0xAE7B, - 30038 - 11905: 0xAE7C, - 30039 - 11905: 0xAE7D, - 30040 - 11905: 0xAE7E, - 30041 - 11905: 0xC1F4, - 30042 - 11905: 0xDBCE, - 30043 - 11905: 0xEEB3, - 30044 - 11905: 0xD0F3, - 30045 - 11905: 0xAE80, - 30046 - 11905: 0xAE81, - 30047 - 11905: 0xAE82, - 30048 - 11905: 0xAE83, - 30049 - 11905: 0xAE84, - 30050 - 11905: 0xAE85, - 30051 - 11905: 0xAE86, - 30052 - 11905: 0xAE87, - 30053 - 11905: 0xC2D4, - 30054 - 11905: 0xC6E8, - 30055 - 11905: 0xAE88, - 30056 - 11905: 0xAE89, - 30057 - 11905: 0xAE8A, - 30058 - 11905: 0xB7AC, - 30059 - 11905: 0xAE8B, - 30060 - 11905: 0xAE8C, - 30061 - 11905: 0xAE8D, - 30062 - 11905: 0xAE8E, - 30063 - 11905: 0xAE8F, - 30064 - 11905: 0xAE90, - 30065 - 11905: 0xAE91, - 30066 - 11905: 0xEEB4, - 30067 - 11905: 0xAE92, - 30068 - 11905: 0xB3EB, - 30069 - 11905: 0xAE93, - 30070 - 11905: 0xAE94, - 30071 - 11905: 0xAE95, - 30072 - 11905: 0xBBFB, - 30073 - 11905: 0xEEB5, - 30074 - 11905: 0xAE96, - 30075 - 11905: 0xAE97, - 30076 - 11905: 0xAE98, - 30077 - 11905: 0xAE99, - 30078 - 11905: 0xAE9A, - 30079 - 11905: 0xE7DC, - 30080 - 11905: 0xAE9B, - 30081 - 11905: 0xAE9C, - 30082 - 11905: 0xAE9D, - 30083 - 11905: 0xEEB6, - 30084 - 11905: 0xAE9E, - 30085 - 11905: 0xAE9F, - 30086 - 11905: 0xBDAE, - 30087 - 11905: 0xAEA0, - 30088 - 11905: 0xAF40, - 30089 - 11905: 0xAF41, - 30090 - 11905: 0xAF42, - 30091 - 11905: 0xF1E2, - 30092 - 11905: 0xAF43, - 30093 - 11905: 0xAF44, - 30094 - 11905: 0xAF45, - 30095 - 11905: 0xCAE8, - 30096 - 11905: 0xAF46, - 30097 - 11905: 0xD2C9, - 30098 - 11905: 0xF0DA, - 30099 - 11905: 0xAF47, - 30100 - 11905: 0xF0DB, - 30101 - 11905: 0xAF48, - 30102 - 11905: 0xF0DC, - 30103 - 11905: 0xC1C6, - 30104 - 11905: 0xAF49, - 30105 - 11905: 0xB8ED, - 30106 - 11905: 0xBECE, - 30107 - 11905: 0xAF4A, - 30108 - 11905: 0xAF4B, - 30109 - 11905: 0xF0DE, - 30110 - 11905: 0xAF4C, - 30111 - 11905: 0xC5B1, - 30112 - 11905: 0xF0DD, - 30113 - 11905: 0xD1F1, - 30114 - 11905: 0xAF4D, - 30115 - 11905: 0xF0E0, - 30116 - 11905: 0xB0CC, - 30117 - 11905: 0xBDEA, - 30118 - 11905: 0xAF4E, - 30119 - 11905: 0xAF4F, - 30120 - 11905: 0xAF50, - 30121 - 11905: 0xAF51, - 30122 - 11905: 0xAF52, - 30123 - 11905: 0xD2DF, - 30124 - 11905: 0xF0DF, - 30125 - 11905: 0xAF53, - 30126 - 11905: 0xB4AF, - 30127 - 11905: 0xB7E8, - 30128 - 11905: 0xF0E6, - 30129 - 11905: 0xF0E5, - 30130 - 11905: 0xC6A3, - 30131 - 11905: 0xF0E1, - 30132 - 11905: 0xF0E2, - 30133 - 11905: 0xB4C3, - 30134 - 11905: 0xAF54, - 30135 - 11905: 0xAF55, - 30136 - 11905: 0xF0E3, - 30137 - 11905: 0xD5EE, - 30138 - 11905: 0xAF56, - 30139 - 11905: 0xAF57, - 30140 - 11905: 0xCCDB, - 30141 - 11905: 0xBED2, - 30142 - 11905: 0xBCB2, - 30143 - 11905: 0xAF58, - 30144 - 11905: 0xAF59, - 30145 - 11905: 0xAF5A, - 30146 - 11905: 0xF0E8, - 30147 - 11905: 0xF0E7, - 30148 - 11905: 0xF0E4, - 30149 - 11905: 0xB2A1, - 30150 - 11905: 0xAF5B, - 30151 - 11905: 0xD6A2, - 30152 - 11905: 0xD3B8, - 30153 - 11905: 0xBEB7, - 30154 - 11905: 0xC8AC, - 30155 - 11905: 0xAF5C, - 30156 - 11905: 0xAF5D, - 30157 - 11905: 0xF0EA, - 30158 - 11905: 0xAF5E, - 30159 - 11905: 0xAF5F, - 30160 - 11905: 0xAF60, - 30161 - 11905: 0xAF61, - 30162 - 11905: 0xD1F7, - 30163 - 11905: 0xAF62, - 30164 - 11905: 0xD6CC, - 30165 - 11905: 0xBADB, - 30166 - 11905: 0xF0E9, - 30167 - 11905: 0xAF63, - 30168 - 11905: 0xB6BB, - 30169 - 11905: 0xAF64, - 30170 - 11905: 0xAF65, - 30171 - 11905: 0xCDB4, - 30172 - 11905: 0xAF66, - 30173 - 11905: 0xAF67, - 30174 - 11905: 0xC6A6, - 30175 - 11905: 0xAF68, - 30176 - 11905: 0xAF69, - 30177 - 11905: 0xAF6A, - 30178 - 11905: 0xC1A1, - 30179 - 11905: 0xF0EB, - 30180 - 11905: 0xF0EE, - 30181 - 11905: 0xAF6B, - 30182 - 11905: 0xF0ED, - 30183 - 11905: 0xF0F0, - 30184 - 11905: 0xF0EC, - 30185 - 11905: 0xAF6C, - 30186 - 11905: 0xBBBE, - 30187 - 11905: 0xF0EF, - 30188 - 11905: 0xAF6D, - 30189 - 11905: 0xAF6E, - 30190 - 11905: 0xAF6F, - 30191 - 11905: 0xAF70, - 30192 - 11905: 0xCCB5, - 30193 - 11905: 0xF0F2, - 30194 - 11905: 0xAF71, - 30195 - 11905: 0xAF72, - 30196 - 11905: 0xB3D5, - 30197 - 11905: 0xAF73, - 30198 - 11905: 0xAF74, - 30199 - 11905: 0xAF75, - 30200 - 11905: 0xAF76, - 30201 - 11905: 0xB1D4, - 30202 - 11905: 0xAF77, - 30203 - 11905: 0xAF78, - 30204 - 11905: 0xF0F3, - 30205 - 11905: 0xAF79, - 30206 - 11905: 0xAF7A, - 30207 - 11905: 0xF0F4, - 30208 - 11905: 0xF0F6, - 30209 - 11905: 0xB4E1, - 30210 - 11905: 0xAF7B, - 30211 - 11905: 0xF0F1, - 30212 - 11905: 0xAF7C, - 30213 - 11905: 0xF0F7, - 30214 - 11905: 0xAF7D, - 30215 - 11905: 0xAF7E, - 30216 - 11905: 0xAF80, - 30217 - 11905: 0xAF81, - 30218 - 11905: 0xF0FA, - 30219 - 11905: 0xAF82, - 30220 - 11905: 0xF0F8, - 30221 - 11905: 0xAF83, - 30222 - 11905: 0xAF84, - 30223 - 11905: 0xAF85, - 30224 - 11905: 0xF0F5, - 30225 - 11905: 0xAF86, - 30226 - 11905: 0xAF87, - 30227 - 11905: 0xAF88, - 30228 - 11905: 0xAF89, - 30229 - 11905: 0xF0FD, - 30230 - 11905: 0xAF8A, - 30231 - 11905: 0xF0F9, - 30232 - 11905: 0xF0FC, - 30233 - 11905: 0xF0FE, - 30234 - 11905: 0xAF8B, - 30235 - 11905: 0xF1A1, - 30236 - 11905: 0xAF8C, - 30237 - 11905: 0xAF8D, - 30238 - 11905: 0xAF8E, - 30239 - 11905: 0xCEC1, - 30240 - 11905: 0xF1A4, - 30241 - 11905: 0xAF8F, - 30242 - 11905: 0xF1A3, - 30243 - 11905: 0xAF90, - 30244 - 11905: 0xC1F6, - 30245 - 11905: 0xF0FB, - 30246 - 11905: 0xCADD, - 30247 - 11905: 0xAF91, - 30248 - 11905: 0xAF92, - 30249 - 11905: 0xB4F1, - 30250 - 11905: 0xB1F1, - 30251 - 11905: 0xCCB1, - 30252 - 11905: 0xAF93, - 30253 - 11905: 0xF1A6, - 30254 - 11905: 0xAF94, - 30255 - 11905: 0xAF95, - 30256 - 11905: 0xF1A7, - 30257 - 11905: 0xAF96, - 30258 - 11905: 0xAF97, - 30259 - 11905: 0xF1AC, - 30260 - 11905: 0xD5CE, - 30261 - 11905: 0xF1A9, - 30262 - 11905: 0xAF98, - 30263 - 11905: 0xAF99, - 30264 - 11905: 0xC8B3, - 30265 - 11905: 0xAF9A, - 30266 - 11905: 0xAF9B, - 30267 - 11905: 0xAF9C, - 30268 - 11905: 0xF1A2, - 30269 - 11905: 0xAF9D, - 30270 - 11905: 0xF1AB, - 30271 - 11905: 0xF1A8, - 30272 - 11905: 0xF1A5, - 30273 - 11905: 0xAF9E, - 30274 - 11905: 0xAF9F, - 30275 - 11905: 0xF1AA, - 30276 - 11905: 0xAFA0, - 30277 - 11905: 0xB040, - 30278 - 11905: 0xB041, - 30279 - 11905: 0xB042, - 30280 - 11905: 0xB043, - 30281 - 11905: 0xB044, - 30282 - 11905: 0xB045, - 30283 - 11905: 0xB046, - 30284 - 11905: 0xB0A9, - 30285 - 11905: 0xF1AD, - 30286 - 11905: 0xB047, - 30287 - 11905: 0xB048, - 30288 - 11905: 0xB049, - 30289 - 11905: 0xB04A, - 30290 - 11905: 0xB04B, - 30291 - 11905: 0xB04C, - 30292 - 11905: 0xF1AF, - 30293 - 11905: 0xB04D, - 30294 - 11905: 0xF1B1, - 30295 - 11905: 0xB04E, - 30296 - 11905: 0xB04F, - 30297 - 11905: 0xB050, - 30298 - 11905: 0xB051, - 30299 - 11905: 0xB052, - 30300 - 11905: 0xF1B0, - 30301 - 11905: 0xB053, - 30302 - 11905: 0xF1AE, - 30303 - 11905: 0xB054, - 30304 - 11905: 0xB055, - 30305 - 11905: 0xB056, - 30306 - 11905: 0xB057, - 30307 - 11905: 0xD1A2, - 30308 - 11905: 0xB058, - 30309 - 11905: 0xB059, - 30310 - 11905: 0xB05A, - 30311 - 11905: 0xB05B, - 30312 - 11905: 0xB05C, - 30313 - 11905: 0xB05D, - 30314 - 11905: 0xB05E, - 30315 - 11905: 0xF1B2, - 30316 - 11905: 0xB05F, - 30317 - 11905: 0xB060, - 30318 - 11905: 0xB061, - 30319 - 11905: 0xF1B3, - 30320 - 11905: 0xB062, - 30321 - 11905: 0xB063, - 30322 - 11905: 0xB064, - 30323 - 11905: 0xB065, - 30324 - 11905: 0xB066, - 30325 - 11905: 0xB067, - 30326 - 11905: 0xB068, - 30327 - 11905: 0xB069, - 30328 - 11905: 0xB9EF, - 30329 - 11905: 0xB06A, - 30330 - 11905: 0xB06B, - 30331 - 11905: 0xB5C7, - 30332 - 11905: 0xB06C, - 30333 - 11905: 0xB0D7, - 30334 - 11905: 0xB0D9, - 30335 - 11905: 0xB06D, - 30336 - 11905: 0xB06E, - 30337 - 11905: 0xB06F, - 30338 - 11905: 0xD4ED, - 30339 - 11905: 0xB070, - 30340 - 11905: 0xB5C4, - 30341 - 11905: 0xB071, - 30342 - 11905: 0xBDD4, - 30343 - 11905: 0xBBCA, - 30344 - 11905: 0xF0A7, - 30345 - 11905: 0xB072, - 30346 - 11905: 0xB073, - 30347 - 11905: 0xB8DE, - 30348 - 11905: 0xB074, - 30349 - 11905: 0xB075, - 30350 - 11905: 0xF0A8, - 30351 - 11905: 0xB076, - 30352 - 11905: 0xB077, - 30353 - 11905: 0xB0A8, - 30354 - 11905: 0xB078, - 30355 - 11905: 0xF0A9, - 30356 - 11905: 0xB079, - 30357 - 11905: 0xB07A, - 30358 - 11905: 0xCDEE, - 30359 - 11905: 0xB07B, - 30360 - 11905: 0xB07C, - 30361 - 11905: 0xF0AA, - 30362 - 11905: 0xB07D, - 30363 - 11905: 0xB07E, - 30364 - 11905: 0xB080, - 30365 - 11905: 0xB081, - 30366 - 11905: 0xB082, - 30367 - 11905: 0xB083, - 30368 - 11905: 0xB084, - 30369 - 11905: 0xB085, - 30370 - 11905: 0xB086, - 30371 - 11905: 0xB087, - 30372 - 11905: 0xF0AB, - 30373 - 11905: 0xB088, - 30374 - 11905: 0xB089, - 30375 - 11905: 0xB08A, - 30376 - 11905: 0xB08B, - 30377 - 11905: 0xB08C, - 30378 - 11905: 0xB08D, - 30379 - 11905: 0xB08E, - 30380 - 11905: 0xB08F, - 30381 - 11905: 0xB090, - 30382 - 11905: 0xC6A4, - 30383 - 11905: 0xB091, - 30384 - 11905: 0xB092, - 30385 - 11905: 0xD6E5, - 30386 - 11905: 0xF1E4, - 30387 - 11905: 0xB093, - 30388 - 11905: 0xF1E5, - 30389 - 11905: 0xB094, - 30390 - 11905: 0xB095, - 30391 - 11905: 0xB096, - 30392 - 11905: 0xB097, - 30393 - 11905: 0xB098, - 30394 - 11905: 0xB099, - 30395 - 11905: 0xB09A, - 30396 - 11905: 0xB09B, - 30397 - 11905: 0xB09C, - 30398 - 11905: 0xB09D, - 30399 - 11905: 0xC3F3, - 30400 - 11905: 0xB09E, - 30401 - 11905: 0xB09F, - 30402 - 11905: 0xD3DB, - 30403 - 11905: 0xB0A0, - 30404 - 11905: 0xB140, - 30405 - 11905: 0xD6D1, - 30406 - 11905: 0xC5E8, - 30407 - 11905: 0xB141, - 30408 - 11905: 0xD3AF, - 30409 - 11905: 0xB142, - 30410 - 11905: 0xD2E6, - 30411 - 11905: 0xB143, - 30412 - 11905: 0xB144, - 30413 - 11905: 0xEEC1, - 30414 - 11905: 0xB0BB, - 30415 - 11905: 0xD5B5, - 30416 - 11905: 0xD1CE, - 30417 - 11905: 0xBCE0, - 30418 - 11905: 0xBAD0, - 30419 - 11905: 0xB145, - 30420 - 11905: 0xBFF8, - 30421 - 11905: 0xB146, - 30422 - 11905: 0xB8C7, - 30423 - 11905: 0xB5C1, - 30424 - 11905: 0xC5CC, - 30425 - 11905: 0xB147, - 30426 - 11905: 0xB148, - 30427 - 11905: 0xCAA2, - 30428 - 11905: 0xB149, - 30429 - 11905: 0xB14A, - 30430 - 11905: 0xB14B, - 30431 - 11905: 0xC3CB, - 30432 - 11905: 0xB14C, - 30433 - 11905: 0xB14D, - 30434 - 11905: 0xB14E, - 30435 - 11905: 0xB14F, - 30436 - 11905: 0xB150, - 30437 - 11905: 0xEEC2, - 30438 - 11905: 0xB151, - 30439 - 11905: 0xB152, - 30440 - 11905: 0xB153, - 30441 - 11905: 0xB154, - 30442 - 11905: 0xB155, - 30443 - 11905: 0xB156, - 30444 - 11905: 0xB157, - 30445 - 11905: 0xB158, - 30446 - 11905: 0xC4BF, - 30447 - 11905: 0xB6A2, - 30448 - 11905: 0xB159, - 30449 - 11905: 0xEDEC, - 30450 - 11905: 0xC3A4, - 30451 - 11905: 0xB15A, - 30452 - 11905: 0xD6B1, - 30453 - 11905: 0xB15B, - 30454 - 11905: 0xB15C, - 30455 - 11905: 0xB15D, - 30456 - 11905: 0xCFE0, - 30457 - 11905: 0xEDEF, - 30458 - 11905: 0xB15E, - 30459 - 11905: 0xB15F, - 30460 - 11905: 0xC5CE, - 30461 - 11905: 0xB160, - 30462 - 11905: 0xB6DC, - 30463 - 11905: 0xB161, - 30464 - 11905: 0xB162, - 30465 - 11905: 0xCAA1, - 30466 - 11905: 0xB163, - 30467 - 11905: 0xB164, - 30468 - 11905: 0xEDED, - 30469 - 11905: 0xB165, - 30470 - 11905: 0xB166, - 30471 - 11905: 0xEDF0, - 30472 - 11905: 0xEDF1, - 30473 - 11905: 0xC3BC, - 30474 - 11905: 0xB167, - 30475 - 11905: 0xBFB4, - 30476 - 11905: 0xB168, - 30477 - 11905: 0xEDEE, - 30478 - 11905: 0xB169, - 30479 - 11905: 0xB16A, - 30480 - 11905: 0xB16B, - 30481 - 11905: 0xB16C, - 30482 - 11905: 0xB16D, - 30483 - 11905: 0xB16E, - 30484 - 11905: 0xB16F, - 30485 - 11905: 0xB170, - 30486 - 11905: 0xB171, - 30487 - 11905: 0xB172, - 30488 - 11905: 0xB173, - 30489 - 11905: 0xEDF4, - 30490 - 11905: 0xEDF2, - 30491 - 11905: 0xB174, - 30492 - 11905: 0xB175, - 30493 - 11905: 0xB176, - 30494 - 11905: 0xB177, - 30495 - 11905: 0xD5E6, - 30496 - 11905: 0xC3DF, - 30497 - 11905: 0xB178, - 30498 - 11905: 0xEDF3, - 30499 - 11905: 0xB179, - 30500 - 11905: 0xB17A, - 30501 - 11905: 0xB17B, - 30502 - 11905: 0xEDF6, - 30503 - 11905: 0xB17C, - 30504 - 11905: 0xD5A3, - 30505 - 11905: 0xD1A3, - 30506 - 11905: 0xB17D, - 30507 - 11905: 0xB17E, - 30508 - 11905: 0xB180, - 30509 - 11905: 0xEDF5, - 30510 - 11905: 0xB181, - 30511 - 11905: 0xC3D0, - 30512 - 11905: 0xB182, - 30513 - 11905: 0xB183, - 30514 - 11905: 0xB184, - 30515 - 11905: 0xB185, - 30516 - 11905: 0xB186, - 30517 - 11905: 0xEDF7, - 30518 - 11905: 0xBFF4, - 30519 - 11905: 0xBEEC, - 30520 - 11905: 0xEDF8, - 30521 - 11905: 0xB187, - 30522 - 11905: 0xCCF7, - 30523 - 11905: 0xB188, - 30524 - 11905: 0xD1DB, - 30525 - 11905: 0xB189, - 30526 - 11905: 0xB18A, - 30527 - 11905: 0xB18B, - 30528 - 11905: 0xD7C5, - 30529 - 11905: 0xD5F6, - 30530 - 11905: 0xB18C, - 30531 - 11905: 0xEDFC, - 30532 - 11905: 0xB18D, - 30533 - 11905: 0xB18E, - 30534 - 11905: 0xB18F, - 30535 - 11905: 0xEDFB, - 30536 - 11905: 0xB190, - 30537 - 11905: 0xB191, - 30538 - 11905: 0xB192, - 30539 - 11905: 0xB193, - 30540 - 11905: 0xB194, - 30541 - 11905: 0xB195, - 30542 - 11905: 0xB196, - 30543 - 11905: 0xB197, - 30544 - 11905: 0xEDF9, - 30545 - 11905: 0xEDFA, - 30546 - 11905: 0xB198, - 30547 - 11905: 0xB199, - 30548 - 11905: 0xB19A, - 30549 - 11905: 0xB19B, - 30550 - 11905: 0xB19C, - 30551 - 11905: 0xB19D, - 30552 - 11905: 0xB19E, - 30553 - 11905: 0xB19F, - 30554 - 11905: 0xEDFD, - 30555 - 11905: 0xBEA6, - 30556 - 11905: 0xB1A0, - 30557 - 11905: 0xB240, - 30558 - 11905: 0xB241, - 30559 - 11905: 0xB242, - 30560 - 11905: 0xB243, - 30561 - 11905: 0xCBAF, - 30562 - 11905: 0xEEA1, - 30563 - 11905: 0xB6BD, - 30564 - 11905: 0xB244, - 30565 - 11905: 0xEEA2, - 30566 - 11905: 0xC4C0, - 30567 - 11905: 0xB245, - 30568 - 11905: 0xEDFE, - 30569 - 11905: 0xB246, - 30570 - 11905: 0xB247, - 30571 - 11905: 0xBDDE, - 30572 - 11905: 0xB2C7, - 30573 - 11905: 0xB248, - 30574 - 11905: 0xB249, - 30575 - 11905: 0xB24A, - 30576 - 11905: 0xB24B, - 30577 - 11905: 0xB24C, - 30578 - 11905: 0xB24D, - 30579 - 11905: 0xB24E, - 30580 - 11905: 0xB24F, - 30581 - 11905: 0xB250, - 30582 - 11905: 0xB251, - 30583 - 11905: 0xB252, - 30584 - 11905: 0xB253, - 30585 - 11905: 0xB6C3, - 30586 - 11905: 0xB254, - 30587 - 11905: 0xB255, - 30588 - 11905: 0xB256, - 30589 - 11905: 0xEEA5, - 30590 - 11905: 0xD8BA, - 30591 - 11905: 0xEEA3, - 30592 - 11905: 0xEEA6, - 30593 - 11905: 0xB257, - 30594 - 11905: 0xB258, - 30595 - 11905: 0xB259, - 30596 - 11905: 0xC3E9, - 30597 - 11905: 0xB3F2, - 30598 - 11905: 0xB25A, - 30599 - 11905: 0xB25B, - 30600 - 11905: 0xB25C, - 30601 - 11905: 0xB25D, - 30602 - 11905: 0xB25E, - 30603 - 11905: 0xB25F, - 30604 - 11905: 0xEEA7, - 30605 - 11905: 0xEEA4, - 30606 - 11905: 0xCFB9, - 30607 - 11905: 0xB260, - 30608 - 11905: 0xB261, - 30609 - 11905: 0xEEA8, - 30610 - 11905: 0xC2F7, - 30611 - 11905: 0xB262, - 30612 - 11905: 0xB263, - 30613 - 11905: 0xB264, - 30614 - 11905: 0xB265, - 30615 - 11905: 0xB266, - 30616 - 11905: 0xB267, - 30617 - 11905: 0xB268, - 30618 - 11905: 0xB269, - 30619 - 11905: 0xB26A, - 30620 - 11905: 0xB26B, - 30621 - 11905: 0xB26C, - 30622 - 11905: 0xB26D, - 30623 - 11905: 0xEEA9, - 30624 - 11905: 0xEEAA, - 30625 - 11905: 0xB26E, - 30626 - 11905: 0xDEAB, - 30627 - 11905: 0xB26F, - 30628 - 11905: 0xB270, - 30629 - 11905: 0xC6B3, - 30630 - 11905: 0xB271, - 30631 - 11905: 0xC7C6, - 30632 - 11905: 0xB272, - 30633 - 11905: 0xD6F5, - 30634 - 11905: 0xB5C9, - 30635 - 11905: 0xB273, - 30636 - 11905: 0xCBB2, - 30637 - 11905: 0xB274, - 30638 - 11905: 0xB275, - 30639 - 11905: 0xB276, - 30640 - 11905: 0xEEAB, - 30641 - 11905: 0xB277, - 30642 - 11905: 0xB278, - 30643 - 11905: 0xCDAB, - 30644 - 11905: 0xB279, - 30645 - 11905: 0xEEAC, - 30646 - 11905: 0xB27A, - 30647 - 11905: 0xB27B, - 30648 - 11905: 0xB27C, - 30649 - 11905: 0xB27D, - 30650 - 11905: 0xB27E, - 30651 - 11905: 0xD5B0, - 30652 - 11905: 0xB280, - 30653 - 11905: 0xEEAD, - 30654 - 11905: 0xB281, - 30655 - 11905: 0xF6C4, - 30656 - 11905: 0xB282, - 30657 - 11905: 0xB283, - 30658 - 11905: 0xB284, - 30659 - 11905: 0xB285, - 30660 - 11905: 0xB286, - 30661 - 11905: 0xB287, - 30662 - 11905: 0xB288, - 30663 - 11905: 0xB289, - 30664 - 11905: 0xB28A, - 30665 - 11905: 0xB28B, - 30666 - 11905: 0xB28C, - 30667 - 11905: 0xB28D, - 30668 - 11905: 0xB28E, - 30669 - 11905: 0xDBC7, - 30670 - 11905: 0xB28F, - 30671 - 11905: 0xB290, - 30672 - 11905: 0xB291, - 30673 - 11905: 0xB292, - 30674 - 11905: 0xB293, - 30675 - 11905: 0xB294, - 30676 - 11905: 0xB295, - 30677 - 11905: 0xB296, - 30678 - 11905: 0xB297, - 30679 - 11905: 0xB4A3, - 30680 - 11905: 0xB298, - 30681 - 11905: 0xB299, - 30682 - 11905: 0xB29A, - 30683 - 11905: 0xC3AC, - 30684 - 11905: 0xF1E6, - 30685 - 11905: 0xB29B, - 30686 - 11905: 0xB29C, - 30687 - 11905: 0xB29D, - 30688 - 11905: 0xB29E, - 30689 - 11905: 0xB29F, - 30690 - 11905: 0xCAB8, - 30691 - 11905: 0xD2D3, - 30692 - 11905: 0xB2A0, - 30693 - 11905: 0xD6AA, - 30694 - 11905: 0xB340, - 30695 - 11905: 0xEFF2, - 30696 - 11905: 0xB341, - 30697 - 11905: 0xBED8, - 30698 - 11905: 0xB342, - 30699 - 11905: 0xBDC3, - 30700 - 11905: 0xEFF3, - 30701 - 11905: 0xB6CC, - 30702 - 11905: 0xB0AB, - 30703 - 11905: 0xB343, - 30704 - 11905: 0xB344, - 30705 - 11905: 0xB345, - 30706 - 11905: 0xB346, - 30707 - 11905: 0xCAAF, - 30708 - 11905: 0xB347, - 30709 - 11905: 0xB348, - 30710 - 11905: 0xEDB6, - 30711 - 11905: 0xB349, - 30712 - 11905: 0xEDB7, - 30713 - 11905: 0xB34A, - 30714 - 11905: 0xB34B, - 30715 - 11905: 0xB34C, - 30716 - 11905: 0xB34D, - 30717 - 11905: 0xCEF9, - 30718 - 11905: 0xB7AF, - 30719 - 11905: 0xBFF3, - 30720 - 11905: 0xEDB8, - 30721 - 11905: 0xC2EB, - 30722 - 11905: 0xC9B0, - 30723 - 11905: 0xB34E, - 30724 - 11905: 0xB34F, - 30725 - 11905: 0xB350, - 30726 - 11905: 0xB351, - 30727 - 11905: 0xB352, - 30728 - 11905: 0xB353, - 30729 - 11905: 0xEDB9, - 30730 - 11905: 0xB354, - 30731 - 11905: 0xB355, - 30732 - 11905: 0xC6F6, - 30733 - 11905: 0xBFB3, - 30734 - 11905: 0xB356, - 30735 - 11905: 0xB357, - 30736 - 11905: 0xB358, - 30737 - 11905: 0xEDBC, - 30738 - 11905: 0xC5F8, - 30739 - 11905: 0xB359, - 30740 - 11905: 0xD1D0, - 30741 - 11905: 0xB35A, - 30742 - 11905: 0xD7A9, - 30743 - 11905: 0xEDBA, - 30744 - 11905: 0xEDBB, - 30745 - 11905: 0xB35B, - 30746 - 11905: 0xD1E2, - 30747 - 11905: 0xB35C, - 30748 - 11905: 0xEDBF, - 30749 - 11905: 0xEDC0, - 30750 - 11905: 0xB35D, - 30751 - 11905: 0xEDC4, - 30752 - 11905: 0xB35E, - 30753 - 11905: 0xB35F, - 30754 - 11905: 0xB360, - 30755 - 11905: 0xEDC8, - 30756 - 11905: 0xB361, - 30757 - 11905: 0xEDC6, - 30758 - 11905: 0xEDCE, - 30759 - 11905: 0xD5E8, - 30760 - 11905: 0xB362, - 30761 - 11905: 0xEDC9, - 30762 - 11905: 0xB363, - 30763 - 11905: 0xB364, - 30764 - 11905: 0xEDC7, - 30765 - 11905: 0xEDBE, - 30766 - 11905: 0xB365, - 30767 - 11905: 0xB366, - 30768 - 11905: 0xC5E9, - 30769 - 11905: 0xB367, - 30770 - 11905: 0xB368, - 30771 - 11905: 0xB369, - 30772 - 11905: 0xC6C6, - 30773 - 11905: 0xB36A, - 30774 - 11905: 0xB36B, - 30775 - 11905: 0xC9E9, - 30776 - 11905: 0xD4D2, - 30777 - 11905: 0xEDC1, - 30778 - 11905: 0xEDC2, - 30779 - 11905: 0xEDC3, - 30780 - 11905: 0xEDC5, - 30781 - 11905: 0xB36C, - 30782 - 11905: 0xC0F9, - 30783 - 11905: 0xB36D, - 30784 - 11905: 0xB4A1, - 30785 - 11905: 0xB36E, - 30786 - 11905: 0xB36F, - 30787 - 11905: 0xB370, - 30788 - 11905: 0xB371, - 30789 - 11905: 0xB9E8, - 30790 - 11905: 0xB372, - 30791 - 11905: 0xEDD0, - 30792 - 11905: 0xB373, - 30793 - 11905: 0xB374, - 30794 - 11905: 0xB375, - 30795 - 11905: 0xB376, - 30796 - 11905: 0xEDD1, - 30797 - 11905: 0xB377, - 30798 - 11905: 0xEDCA, - 30799 - 11905: 0xB378, - 30800 - 11905: 0xEDCF, - 30801 - 11905: 0xB379, - 30802 - 11905: 0xCEF8, - 30803 - 11905: 0xB37A, - 30804 - 11905: 0xB37B, - 30805 - 11905: 0xCBB6, - 30806 - 11905: 0xEDCC, - 30807 - 11905: 0xEDCD, - 30808 - 11905: 0xB37C, - 30809 - 11905: 0xB37D, - 30810 - 11905: 0xB37E, - 30811 - 11905: 0xB380, - 30812 - 11905: 0xB381, - 30813 - 11905: 0xCFF5, - 30814 - 11905: 0xB382, - 30815 - 11905: 0xB383, - 30816 - 11905: 0xB384, - 30817 - 11905: 0xB385, - 30818 - 11905: 0xB386, - 30819 - 11905: 0xB387, - 30820 - 11905: 0xB388, - 30821 - 11905: 0xB389, - 30822 - 11905: 0xB38A, - 30823 - 11905: 0xB38B, - 30824 - 11905: 0xB38C, - 30825 - 11905: 0xB38D, - 30826 - 11905: 0xEDD2, - 30827 - 11905: 0xC1F2, - 30828 - 11905: 0xD3B2, - 30829 - 11905: 0xEDCB, - 30830 - 11905: 0xC8B7, - 30831 - 11905: 0xB38E, - 30832 - 11905: 0xB38F, - 30833 - 11905: 0xB390, - 30834 - 11905: 0xB391, - 30835 - 11905: 0xB392, - 30836 - 11905: 0xB393, - 30837 - 11905: 0xB394, - 30838 - 11905: 0xB395, - 30839 - 11905: 0xBCEF, - 30840 - 11905: 0xB396, - 30841 - 11905: 0xB397, - 30842 - 11905: 0xB398, - 30843 - 11905: 0xB399, - 30844 - 11905: 0xC5F0, - 30845 - 11905: 0xB39A, - 30846 - 11905: 0xB39B, - 30847 - 11905: 0xB39C, - 30848 - 11905: 0xB39D, - 30849 - 11905: 0xB39E, - 30850 - 11905: 0xB39F, - 30851 - 11905: 0xB3A0, - 30852 - 11905: 0xB440, - 30853 - 11905: 0xB441, - 30854 - 11905: 0xB442, - 30855 - 11905: 0xEDD6, - 30856 - 11905: 0xB443, - 30857 - 11905: 0xB5EF, - 30858 - 11905: 0xB444, - 30859 - 11905: 0xB445, - 30860 - 11905: 0xC2B5, - 30861 - 11905: 0xB0AD, - 30862 - 11905: 0xCBE9, - 30863 - 11905: 0xB446, - 30864 - 11905: 0xB447, - 30865 - 11905: 0xB1AE, - 30866 - 11905: 0xB448, - 30867 - 11905: 0xEDD4, - 30868 - 11905: 0xB449, - 30869 - 11905: 0xB44A, - 30870 - 11905: 0xB44B, - 30871 - 11905: 0xCDEB, - 30872 - 11905: 0xB5E2, - 30873 - 11905: 0xB44C, - 30874 - 11905: 0xEDD5, - 30875 - 11905: 0xEDD3, - 30876 - 11905: 0xEDD7, - 30877 - 11905: 0xB44D, - 30878 - 11905: 0xB44E, - 30879 - 11905: 0xB5FA, - 30880 - 11905: 0xB44F, - 30881 - 11905: 0xEDD8, - 30882 - 11905: 0xB450, - 30883 - 11905: 0xEDD9, - 30884 - 11905: 0xB451, - 30885 - 11905: 0xEDDC, - 30886 - 11905: 0xB452, - 30887 - 11905: 0xB1CC, - 30888 - 11905: 0xB453, - 30889 - 11905: 0xB454, - 30890 - 11905: 0xB455, - 30891 - 11905: 0xB456, - 30892 - 11905: 0xB457, - 30893 - 11905: 0xB458, - 30894 - 11905: 0xB459, - 30895 - 11905: 0xB45A, - 30896 - 11905: 0xC5F6, - 30897 - 11905: 0xBCEE, - 30898 - 11905: 0xEDDA, - 30899 - 11905: 0xCCBC, - 30900 - 11905: 0xB2EA, - 30901 - 11905: 0xB45B, - 30902 - 11905: 0xB45C, - 30903 - 11905: 0xB45D, - 30904 - 11905: 0xB45E, - 30905 - 11905: 0xEDDB, - 30906 - 11905: 0xB45F, - 30907 - 11905: 0xB460, - 30908 - 11905: 0xB461, - 30909 - 11905: 0xB462, - 30910 - 11905: 0xC4EB, - 30911 - 11905: 0xB463, - 30912 - 11905: 0xB464, - 30913 - 11905: 0xB4C5, - 30914 - 11905: 0xB465, - 30915 - 11905: 0xB466, - 30916 - 11905: 0xB467, - 30917 - 11905: 0xB0F5, - 30918 - 11905: 0xB468, - 30919 - 11905: 0xB469, - 30920 - 11905: 0xB46A, - 30921 - 11905: 0xEDDF, - 30922 - 11905: 0xC0DA, - 30923 - 11905: 0xB4E8, - 30924 - 11905: 0xB46B, - 30925 - 11905: 0xB46C, - 30926 - 11905: 0xB46D, - 30927 - 11905: 0xB46E, - 30928 - 11905: 0xC5CD, - 30929 - 11905: 0xB46F, - 30930 - 11905: 0xB470, - 30931 - 11905: 0xB471, - 30932 - 11905: 0xEDDD, - 30933 - 11905: 0xBFC4, - 30934 - 11905: 0xB472, - 30935 - 11905: 0xB473, - 30936 - 11905: 0xB474, - 30937 - 11905: 0xEDDE, - 30938 - 11905: 0xB475, - 30939 - 11905: 0xB476, - 30940 - 11905: 0xB477, - 30941 - 11905: 0xB478, - 30942 - 11905: 0xB479, - 30943 - 11905: 0xB47A, - 30944 - 11905: 0xB47B, - 30945 - 11905: 0xB47C, - 30946 - 11905: 0xB47D, - 30947 - 11905: 0xB47E, - 30948 - 11905: 0xB480, - 30949 - 11905: 0xB481, - 30950 - 11905: 0xB482, - 30951 - 11905: 0xB483, - 30952 - 11905: 0xC4A5, - 30953 - 11905: 0xB484, - 30954 - 11905: 0xB485, - 30955 - 11905: 0xB486, - 30956 - 11905: 0xEDE0, - 30957 - 11905: 0xB487, - 30958 - 11905: 0xB488, - 30959 - 11905: 0xB489, - 30960 - 11905: 0xB48A, - 30961 - 11905: 0xB48B, - 30962 - 11905: 0xEDE1, - 30963 - 11905: 0xB48C, - 30964 - 11905: 0xEDE3, - 30965 - 11905: 0xB48D, - 30966 - 11905: 0xB48E, - 30967 - 11905: 0xC1D7, - 30968 - 11905: 0xB48F, - 30969 - 11905: 0xB490, - 30970 - 11905: 0xBBC7, - 30971 - 11905: 0xB491, - 30972 - 11905: 0xB492, - 30973 - 11905: 0xB493, - 30974 - 11905: 0xB494, - 30975 - 11905: 0xB495, - 30976 - 11905: 0xB496, - 30977 - 11905: 0xBDB8, - 30978 - 11905: 0xB497, - 30979 - 11905: 0xB498, - 30980 - 11905: 0xB499, - 30981 - 11905: 0xEDE2, - 30982 - 11905: 0xB49A, - 30983 - 11905: 0xB49B, - 30984 - 11905: 0xB49C, - 30985 - 11905: 0xB49D, - 30986 - 11905: 0xB49E, - 30987 - 11905: 0xB49F, - 30988 - 11905: 0xB4A0, - 30989 - 11905: 0xB540, - 30990 - 11905: 0xB541, - 30991 - 11905: 0xB542, - 30992 - 11905: 0xB543, - 30993 - 11905: 0xB544, - 30994 - 11905: 0xB545, - 30995 - 11905: 0xEDE4, - 30996 - 11905: 0xB546, - 30997 - 11905: 0xB547, - 30998 - 11905: 0xB548, - 30999 - 11905: 0xB549, - 31000 - 11905: 0xB54A, - 31001 - 11905: 0xB54B, - 31002 - 11905: 0xB54C, - 31003 - 11905: 0xB54D, - 31004 - 11905: 0xB54E, - 31005 - 11905: 0xB54F, - 31006 - 11905: 0xEDE6, - 31007 - 11905: 0xB550, - 31008 - 11905: 0xB551, - 31009 - 11905: 0xB552, - 31010 - 11905: 0xB553, - 31011 - 11905: 0xB554, - 31012 - 11905: 0xEDE5, - 31013 - 11905: 0xB555, - 31014 - 11905: 0xB556, - 31015 - 11905: 0xB557, - 31016 - 11905: 0xB558, - 31017 - 11905: 0xB559, - 31018 - 11905: 0xB55A, - 31019 - 11905: 0xB55B, - 31020 - 11905: 0xB55C, - 31021 - 11905: 0xB55D, - 31022 - 11905: 0xB55E, - 31023 - 11905: 0xB55F, - 31024 - 11905: 0xB560, - 31025 - 11905: 0xB561, - 31026 - 11905: 0xB562, - 31027 - 11905: 0xB563, - 31028 - 11905: 0xEDE7, - 31029 - 11905: 0xB564, - 31030 - 11905: 0xB565, - 31031 - 11905: 0xB566, - 31032 - 11905: 0xB567, - 31033 - 11905: 0xB568, - 31034 - 11905: 0xCABE, - 31035 - 11905: 0xECEA, - 31036 - 11905: 0xC0F1, - 31037 - 11905: 0xB569, - 31038 - 11905: 0xC9E7, - 31039 - 11905: 0xB56A, - 31040 - 11905: 0xECEB, - 31041 - 11905: 0xC6EE, - 31042 - 11905: 0xB56B, - 31043 - 11905: 0xB56C, - 31044 - 11905: 0xB56D, - 31045 - 11905: 0xB56E, - 31046 - 11905: 0xECEC, - 31047 - 11905: 0xB56F, - 31048 - 11905: 0xC6ED, - 31049 - 11905: 0xECED, - 31050 - 11905: 0xB570, - 31051 - 11905: 0xB571, - 31052 - 11905: 0xB572, - 31053 - 11905: 0xB573, - 31054 - 11905: 0xB574, - 31055 - 11905: 0xB575, - 31056 - 11905: 0xB576, - 31057 - 11905: 0xB577, - 31058 - 11905: 0xB578, - 31059 - 11905: 0xECF0, - 31060 - 11905: 0xB579, - 31061 - 11905: 0xB57A, - 31062 - 11905: 0xD7E6, - 31063 - 11905: 0xECF3, - 31064 - 11905: 0xB57B, - 31065 - 11905: 0xB57C, - 31066 - 11905: 0xECF1, - 31067 - 11905: 0xECEE, - 31068 - 11905: 0xECEF, - 31069 - 11905: 0xD7A3, - 31070 - 11905: 0xC9F1, - 31071 - 11905: 0xCBEE, - 31072 - 11905: 0xECF4, - 31073 - 11905: 0xB57D, - 31074 - 11905: 0xECF2, - 31075 - 11905: 0xB57E, - 31076 - 11905: 0xB580, - 31077 - 11905: 0xCFE9, - 31078 - 11905: 0xB581, - 31079 - 11905: 0xECF6, - 31080 - 11905: 0xC6B1, - 31081 - 11905: 0xB582, - 31082 - 11905: 0xB583, - 31083 - 11905: 0xB584, - 31084 - 11905: 0xB585, - 31085 - 11905: 0xBCC0, - 31086 - 11905: 0xB586, - 31087 - 11905: 0xECF5, - 31088 - 11905: 0xB587, - 31089 - 11905: 0xB588, - 31090 - 11905: 0xB589, - 31091 - 11905: 0xB58A, - 31092 - 11905: 0xB58B, - 31093 - 11905: 0xB58C, - 31094 - 11905: 0xB58D, - 31095 - 11905: 0xB5BB, - 31096 - 11905: 0xBBF6, - 31097 - 11905: 0xB58E, - 31098 - 11905: 0xECF7, - 31099 - 11905: 0xB58F, - 31100 - 11905: 0xB590, - 31101 - 11905: 0xB591, - 31102 - 11905: 0xB592, - 31103 - 11905: 0xB593, - 31104 - 11905: 0xD9F7, - 31105 - 11905: 0xBDFB, - 31106 - 11905: 0xB594, - 31107 - 11905: 0xB595, - 31108 - 11905: 0xC2BB, - 31109 - 11905: 0xECF8, - 31110 - 11905: 0xB596, - 31111 - 11905: 0xB597, - 31112 - 11905: 0xB598, - 31113 - 11905: 0xB599, - 31114 - 11905: 0xECF9, - 31115 - 11905: 0xB59A, - 31116 - 11905: 0xB59B, - 31117 - 11905: 0xB59C, - 31118 - 11905: 0xB59D, - 31119 - 11905: 0xB8A3, - 31120 - 11905: 0xB59E, - 31121 - 11905: 0xB59F, - 31122 - 11905: 0xB5A0, - 31123 - 11905: 0xB640, - 31124 - 11905: 0xB641, - 31125 - 11905: 0xB642, - 31126 - 11905: 0xB643, - 31127 - 11905: 0xB644, - 31128 - 11905: 0xB645, - 31129 - 11905: 0xB646, - 31130 - 11905: 0xECFA, - 31131 - 11905: 0xB647, - 31132 - 11905: 0xB648, - 31133 - 11905: 0xB649, - 31134 - 11905: 0xB64A, - 31135 - 11905: 0xB64B, - 31136 - 11905: 0xB64C, - 31137 - 11905: 0xB64D, - 31138 - 11905: 0xB64E, - 31139 - 11905: 0xB64F, - 31140 - 11905: 0xB650, - 31141 - 11905: 0xB651, - 31142 - 11905: 0xB652, - 31143 - 11905: 0xECFB, - 31144 - 11905: 0xB653, - 31145 - 11905: 0xB654, - 31146 - 11905: 0xB655, - 31147 - 11905: 0xB656, - 31148 - 11905: 0xB657, - 31149 - 11905: 0xB658, - 31150 - 11905: 0xB659, - 31151 - 11905: 0xB65A, - 31152 - 11905: 0xB65B, - 31153 - 11905: 0xB65C, - 31154 - 11905: 0xB65D, - 31155 - 11905: 0xECFC, - 31156 - 11905: 0xB65E, - 31157 - 11905: 0xB65F, - 31158 - 11905: 0xB660, - 31159 - 11905: 0xB661, - 31160 - 11905: 0xB662, - 31161 - 11905: 0xD3ED, - 31162 - 11905: 0xD8AE, - 31163 - 11905: 0xC0EB, - 31164 - 11905: 0xB663, - 31165 - 11905: 0xC7DD, - 31166 - 11905: 0xBACC, - 31167 - 11905: 0xB664, - 31168 - 11905: 0xD0E3, - 31169 - 11905: 0xCBBD, - 31170 - 11905: 0xB665, - 31171 - 11905: 0xCDBA, - 31172 - 11905: 0xB666, - 31173 - 11905: 0xB667, - 31174 - 11905: 0xB8D1, - 31175 - 11905: 0xB668, - 31176 - 11905: 0xB669, - 31177 - 11905: 0xB1FC, - 31178 - 11905: 0xB66A, - 31179 - 11905: 0xC7EF, - 31180 - 11905: 0xB66B, - 31181 - 11905: 0xD6D6, - 31182 - 11905: 0xB66C, - 31183 - 11905: 0xB66D, - 31184 - 11905: 0xB66E, - 31185 - 11905: 0xBFC6, - 31186 - 11905: 0xC3EB, - 31187 - 11905: 0xB66F, - 31188 - 11905: 0xB670, - 31189 - 11905: 0xEFF5, - 31190 - 11905: 0xB671, - 31191 - 11905: 0xB672, - 31192 - 11905: 0xC3D8, - 31193 - 11905: 0xB673, - 31194 - 11905: 0xB674, - 31195 - 11905: 0xB675, - 31196 - 11905: 0xB676, - 31197 - 11905: 0xB677, - 31198 - 11905: 0xB678, - 31199 - 11905: 0xD7E2, - 31200 - 11905: 0xB679, - 31201 - 11905: 0xB67A, - 31202 - 11905: 0xB67B, - 31203 - 11905: 0xEFF7, - 31204 - 11905: 0xB3D3, - 31205 - 11905: 0xB67C, - 31206 - 11905: 0xC7D8, - 31207 - 11905: 0xD1ED, - 31208 - 11905: 0xB67D, - 31209 - 11905: 0xD6C8, - 31210 - 11905: 0xB67E, - 31211 - 11905: 0xEFF8, - 31212 - 11905: 0xB680, - 31213 - 11905: 0xEFF6, - 31214 - 11905: 0xB681, - 31215 - 11905: 0xBBFD, - 31216 - 11905: 0xB3C6, - 31217 - 11905: 0xB682, - 31218 - 11905: 0xB683, - 31219 - 11905: 0xB684, - 31220 - 11905: 0xB685, - 31221 - 11905: 0xB686, - 31222 - 11905: 0xB687, - 31223 - 11905: 0xB688, - 31224 - 11905: 0xBDD5, - 31225 - 11905: 0xB689, - 31226 - 11905: 0xB68A, - 31227 - 11905: 0xD2C6, - 31228 - 11905: 0xB68B, - 31229 - 11905: 0xBBE0, - 31230 - 11905: 0xB68C, - 31231 - 11905: 0xB68D, - 31232 - 11905: 0xCFA1, - 31233 - 11905: 0xB68E, - 31234 - 11905: 0xEFFC, - 31235 - 11905: 0xEFFB, - 31236 - 11905: 0xB68F, - 31237 - 11905: 0xB690, - 31238 - 11905: 0xEFF9, - 31239 - 11905: 0xB691, - 31240 - 11905: 0xB692, - 31241 - 11905: 0xB693, - 31242 - 11905: 0xB694, - 31243 - 11905: 0xB3CC, - 31244 - 11905: 0xB695, - 31245 - 11905: 0xC9D4, - 31246 - 11905: 0xCBB0, - 31247 - 11905: 0xB696, - 31248 - 11905: 0xB697, - 31249 - 11905: 0xB698, - 31250 - 11905: 0xB699, - 31251 - 11905: 0xB69A, - 31252 - 11905: 0xEFFE, - 31253 - 11905: 0xB69B, - 31254 - 11905: 0xB69C, - 31255 - 11905: 0xB0DE, - 31256 - 11905: 0xB69D, - 31257 - 11905: 0xB69E, - 31258 - 11905: 0xD6C9, - 31259 - 11905: 0xB69F, - 31260 - 11905: 0xB6A0, - 31261 - 11905: 0xB740, - 31262 - 11905: 0xEFFD, - 31263 - 11905: 0xB741, - 31264 - 11905: 0xB3ED, - 31265 - 11905: 0xB742, - 31266 - 11905: 0xB743, - 31267 - 11905: 0xF6D5, - 31268 - 11905: 0xB744, - 31269 - 11905: 0xB745, - 31270 - 11905: 0xB746, - 31271 - 11905: 0xB747, - 31272 - 11905: 0xB748, - 31273 - 11905: 0xB749, - 31274 - 11905: 0xB74A, - 31275 - 11905: 0xB74B, - 31276 - 11905: 0xB74C, - 31277 - 11905: 0xB74D, - 31278 - 11905: 0xB74E, - 31279 - 11905: 0xB74F, - 31280 - 11905: 0xB750, - 31281 - 11905: 0xB751, - 31282 - 11905: 0xB752, - 31283 - 11905: 0xCEC8, - 31284 - 11905: 0xB753, - 31285 - 11905: 0xB754, - 31286 - 11905: 0xB755, - 31287 - 11905: 0xF0A2, - 31288 - 11905: 0xB756, - 31289 - 11905: 0xF0A1, - 31290 - 11905: 0xB757, - 31291 - 11905: 0xB5BE, - 31292 - 11905: 0xBCDA, - 31293 - 11905: 0xBBFC, - 31294 - 11905: 0xB758, - 31295 - 11905: 0xB8E5, - 31296 - 11905: 0xB759, - 31297 - 11905: 0xB75A, - 31298 - 11905: 0xB75B, - 31299 - 11905: 0xB75C, - 31300 - 11905: 0xB75D, - 31301 - 11905: 0xB75E, - 31302 - 11905: 0xC4C2, - 31303 - 11905: 0xB75F, - 31304 - 11905: 0xB760, - 31305 - 11905: 0xB761, - 31306 - 11905: 0xB762, - 31307 - 11905: 0xB763, - 31308 - 11905: 0xB764, - 31309 - 11905: 0xB765, - 31310 - 11905: 0xB766, - 31311 - 11905: 0xB767, - 31312 - 11905: 0xB768, - 31313 - 11905: 0xF0A3, - 31314 - 11905: 0xB769, - 31315 - 11905: 0xB76A, - 31316 - 11905: 0xB76B, - 31317 - 11905: 0xB76C, - 31318 - 11905: 0xB76D, - 31319 - 11905: 0xCBEB, - 31320 - 11905: 0xB76E, - 31321 - 11905: 0xB76F, - 31322 - 11905: 0xB770, - 31323 - 11905: 0xB771, - 31324 - 11905: 0xB772, - 31325 - 11905: 0xB773, - 31326 - 11905: 0xB774, - 31327 - 11905: 0xB775, - 31328 - 11905: 0xB776, - 31329 - 11905: 0xB777, - 31330 - 11905: 0xB778, - 31331 - 11905: 0xB779, - 31332 - 11905: 0xB77A, - 31333 - 11905: 0xB77B, - 31334 - 11905: 0xB77C, - 31335 - 11905: 0xB77D, - 31336 - 11905: 0xB77E, - 31337 - 11905: 0xB780, - 31338 - 11905: 0xB781, - 31339 - 11905: 0xB782, - 31340 - 11905: 0xB783, - 31341 - 11905: 0xB784, - 31342 - 11905: 0xB785, - 31343 - 11905: 0xB786, - 31344 - 11905: 0xF0A6, - 31345 - 11905: 0xB787, - 31346 - 11905: 0xB788, - 31347 - 11905: 0xB789, - 31348 - 11905: 0xD1A8, - 31349 - 11905: 0xB78A, - 31350 - 11905: 0xBEBF, - 31351 - 11905: 0xC7EE, - 31352 - 11905: 0xF1B6, - 31353 - 11905: 0xF1B7, - 31354 - 11905: 0xBFD5, - 31355 - 11905: 0xB78B, - 31356 - 11905: 0xB78C, - 31357 - 11905: 0xB78D, - 31358 - 11905: 0xB78E, - 31359 - 11905: 0xB4A9, - 31360 - 11905: 0xF1B8, - 31361 - 11905: 0xCDBB, - 31362 - 11905: 0xB78F, - 31363 - 11905: 0xC7D4, - 31364 - 11905: 0xD5AD, - 31365 - 11905: 0xB790, - 31366 - 11905: 0xF1B9, - 31367 - 11905: 0xB791, - 31368 - 11905: 0xF1BA, - 31369 - 11905: 0xB792, - 31370 - 11905: 0xB793, - 31371 - 11905: 0xB794, - 31372 - 11905: 0xB795, - 31373 - 11905: 0xC7CF, - 31374 - 11905: 0xB796, - 31375 - 11905: 0xB797, - 31376 - 11905: 0xB798, - 31377 - 11905: 0xD2A4, - 31378 - 11905: 0xD6CF, - 31379 - 11905: 0xB799, - 31380 - 11905: 0xB79A, - 31381 - 11905: 0xF1BB, - 31382 - 11905: 0xBDD1, - 31383 - 11905: 0xB4B0, - 31384 - 11905: 0xBEBD, - 31385 - 11905: 0xB79B, - 31386 - 11905: 0xB79C, - 31387 - 11905: 0xB79D, - 31388 - 11905: 0xB4DC, - 31389 - 11905: 0xCED1, - 31390 - 11905: 0xB79E, - 31391 - 11905: 0xBFDF, - 31392 - 11905: 0xF1BD, - 31393 - 11905: 0xB79F, - 31394 - 11905: 0xB7A0, - 31395 - 11905: 0xB840, - 31396 - 11905: 0xB841, - 31397 - 11905: 0xBFFA, - 31398 - 11905: 0xF1BC, - 31399 - 11905: 0xB842, - 31400 - 11905: 0xF1BF, - 31401 - 11905: 0xB843, - 31402 - 11905: 0xB844, - 31403 - 11905: 0xB845, - 31404 - 11905: 0xF1BE, - 31405 - 11905: 0xF1C0, - 31406 - 11905: 0xB846, - 31407 - 11905: 0xB847, - 31408 - 11905: 0xB848, - 31409 - 11905: 0xB849, - 31410 - 11905: 0xB84A, - 31411 - 11905: 0xF1C1, - 31412 - 11905: 0xB84B, - 31413 - 11905: 0xB84C, - 31414 - 11905: 0xB84D, - 31415 - 11905: 0xB84E, - 31416 - 11905: 0xB84F, - 31417 - 11905: 0xB850, - 31418 - 11905: 0xB851, - 31419 - 11905: 0xB852, - 31420 - 11905: 0xB853, - 31421 - 11905: 0xB854, - 31422 - 11905: 0xB855, - 31423 - 11905: 0xC1FE, - 31424 - 11905: 0xB856, - 31425 - 11905: 0xB857, - 31426 - 11905: 0xB858, - 31427 - 11905: 0xB859, - 31428 - 11905: 0xB85A, - 31429 - 11905: 0xB85B, - 31430 - 11905: 0xB85C, - 31431 - 11905: 0xB85D, - 31432 - 11905: 0xB85E, - 31433 - 11905: 0xB85F, - 31434 - 11905: 0xB860, - 31435 - 11905: 0xC1A2, - 31436 - 11905: 0xB861, - 31437 - 11905: 0xB862, - 31438 - 11905: 0xB863, - 31439 - 11905: 0xB864, - 31440 - 11905: 0xB865, - 31441 - 11905: 0xB866, - 31442 - 11905: 0xB867, - 31443 - 11905: 0xB868, - 31444 - 11905: 0xB869, - 31445 - 11905: 0xB86A, - 31446 - 11905: 0xCAFA, - 31447 - 11905: 0xB86B, - 31448 - 11905: 0xB86C, - 31449 - 11905: 0xD5BE, - 31450 - 11905: 0xB86D, - 31451 - 11905: 0xB86E, - 31452 - 11905: 0xB86F, - 31453 - 11905: 0xB870, - 31454 - 11905: 0xBEBA, - 31455 - 11905: 0xBEB9, - 31456 - 11905: 0xD5C2, - 31457 - 11905: 0xB871, - 31458 - 11905: 0xB872, - 31459 - 11905: 0xBFA2, - 31460 - 11905: 0xB873, - 31461 - 11905: 0xCDAF, - 31462 - 11905: 0xF1B5, - 31463 - 11905: 0xB874, - 31464 - 11905: 0xB875, - 31465 - 11905: 0xB876, - 31466 - 11905: 0xB877, - 31467 - 11905: 0xB878, - 31468 - 11905: 0xB879, - 31469 - 11905: 0xBDDF, - 31470 - 11905: 0xB87A, - 31471 - 11905: 0xB6CB, - 31472 - 11905: 0xB87B, - 31473 - 11905: 0xB87C, - 31474 - 11905: 0xB87D, - 31475 - 11905: 0xB87E, - 31476 - 11905: 0xB880, - 31477 - 11905: 0xB881, - 31478 - 11905: 0xB882, - 31479 - 11905: 0xB883, - 31480 - 11905: 0xB884, - 31481 - 11905: 0xD6F1, - 31482 - 11905: 0xF3C3, - 31483 - 11905: 0xB885, - 31484 - 11905: 0xB886, - 31485 - 11905: 0xF3C4, - 31486 - 11905: 0xB887, - 31487 - 11905: 0xB8CD, - 31488 - 11905: 0xB888, - 31489 - 11905: 0xB889, - 31490 - 11905: 0xB88A, - 31491 - 11905: 0xF3C6, - 31492 - 11905: 0xF3C7, - 31493 - 11905: 0xB88B, - 31494 - 11905: 0xB0CA, - 31495 - 11905: 0xB88C, - 31496 - 11905: 0xF3C5, - 31497 - 11905: 0xB88D, - 31498 - 11905: 0xF3C9, - 31499 - 11905: 0xCBF1, - 31500 - 11905: 0xB88E, - 31501 - 11905: 0xB88F, - 31502 - 11905: 0xB890, - 31503 - 11905: 0xF3CB, - 31504 - 11905: 0xB891, - 31505 - 11905: 0xD0A6, - 31506 - 11905: 0xB892, - 31507 - 11905: 0xB893, - 31508 - 11905: 0xB1CA, - 31509 - 11905: 0xF3C8, - 31510 - 11905: 0xB894, - 31511 - 11905: 0xB895, - 31512 - 11905: 0xB896, - 31513 - 11905: 0xF3CF, - 31514 - 11905: 0xB897, - 31515 - 11905: 0xB5D1, - 31516 - 11905: 0xB898, - 31517 - 11905: 0xB899, - 31518 - 11905: 0xF3D7, - 31519 - 11905: 0xB89A, - 31520 - 11905: 0xF3D2, - 31521 - 11905: 0xB89B, - 31522 - 11905: 0xB89C, - 31523 - 11905: 0xB89D, - 31524 - 11905: 0xF3D4, - 31525 - 11905: 0xF3D3, - 31526 - 11905: 0xB7FB, - 31527 - 11905: 0xB89E, - 31528 - 11905: 0xB1BF, - 31529 - 11905: 0xB89F, - 31530 - 11905: 0xF3CE, - 31531 - 11905: 0xF3CA, - 31532 - 11905: 0xB5DA, - 31533 - 11905: 0xB8A0, - 31534 - 11905: 0xF3D0, - 31535 - 11905: 0xB940, - 31536 - 11905: 0xB941, - 31537 - 11905: 0xF3D1, - 31538 - 11905: 0xB942, - 31539 - 11905: 0xF3D5, - 31540 - 11905: 0xB943, - 31541 - 11905: 0xB944, - 31542 - 11905: 0xB945, - 31543 - 11905: 0xB946, - 31544 - 11905: 0xF3CD, - 31545 - 11905: 0xB947, - 31546 - 11905: 0xBCE3, - 31547 - 11905: 0xB948, - 31548 - 11905: 0xC1FD, - 31549 - 11905: 0xB949, - 31550 - 11905: 0xF3D6, - 31551 - 11905: 0xB94A, - 31552 - 11905: 0xB94B, - 31553 - 11905: 0xB94C, - 31554 - 11905: 0xB94D, - 31555 - 11905: 0xB94E, - 31556 - 11905: 0xB94F, - 31557 - 11905: 0xF3DA, - 31558 - 11905: 0xB950, - 31559 - 11905: 0xF3CC, - 31560 - 11905: 0xB951, - 31561 - 11905: 0xB5C8, - 31562 - 11905: 0xB952, - 31563 - 11905: 0xBDEE, - 31564 - 11905: 0xF3DC, - 31565 - 11905: 0xB953, - 31566 - 11905: 0xB954, - 31567 - 11905: 0xB7A4, - 31568 - 11905: 0xBFF0, - 31569 - 11905: 0xD6FE, - 31570 - 11905: 0xCDB2, - 31571 - 11905: 0xB955, - 31572 - 11905: 0xB4F0, - 31573 - 11905: 0xB956, - 31574 - 11905: 0xB2DF, - 31575 - 11905: 0xB957, - 31576 - 11905: 0xF3D8, - 31577 - 11905: 0xB958, - 31578 - 11905: 0xF3D9, - 31579 - 11905: 0xC9B8, - 31580 - 11905: 0xB959, - 31581 - 11905: 0xF3DD, - 31582 - 11905: 0xB95A, - 31583 - 11905: 0xB95B, - 31584 - 11905: 0xF3DE, - 31585 - 11905: 0xB95C, - 31586 - 11905: 0xF3E1, - 31587 - 11905: 0xB95D, - 31588 - 11905: 0xB95E, - 31589 - 11905: 0xB95F, - 31590 - 11905: 0xB960, - 31591 - 11905: 0xB961, - 31592 - 11905: 0xB962, - 31593 - 11905: 0xB963, - 31594 - 11905: 0xB964, - 31595 - 11905: 0xB965, - 31596 - 11905: 0xB966, - 31597 - 11905: 0xB967, - 31598 - 11905: 0xF3DF, - 31599 - 11905: 0xB968, - 31600 - 11905: 0xB969, - 31601 - 11905: 0xF3E3, - 31602 - 11905: 0xF3E2, - 31603 - 11905: 0xB96A, - 31604 - 11905: 0xB96B, - 31605 - 11905: 0xF3DB, - 31606 - 11905: 0xB96C, - 31607 - 11905: 0xBFEA, - 31608 - 11905: 0xB96D, - 31609 - 11905: 0xB3EF, - 31610 - 11905: 0xB96E, - 31611 - 11905: 0xF3E0, - 31612 - 11905: 0xB96F, - 31613 - 11905: 0xB970, - 31614 - 11905: 0xC7A9, - 31615 - 11905: 0xB971, - 31616 - 11905: 0xBCF2, - 31617 - 11905: 0xB972, - 31618 - 11905: 0xB973, - 31619 - 11905: 0xB974, - 31620 - 11905: 0xB975, - 31621 - 11905: 0xF3EB, - 31622 - 11905: 0xB976, - 31623 - 11905: 0xB977, - 31624 - 11905: 0xB978, - 31625 - 11905: 0xB979, - 31626 - 11905: 0xB97A, - 31627 - 11905: 0xB97B, - 31628 - 11905: 0xB97C, - 31629 - 11905: 0xB9BF, - 31630 - 11905: 0xB97D, - 31631 - 11905: 0xB97E, - 31632 - 11905: 0xF3E4, - 31633 - 11905: 0xB980, - 31634 - 11905: 0xB981, - 31635 - 11905: 0xB982, - 31636 - 11905: 0xB2AD, - 31637 - 11905: 0xBBFE, - 31638 - 11905: 0xB983, - 31639 - 11905: 0xCBE3, - 31640 - 11905: 0xB984, - 31641 - 11905: 0xB985, - 31642 - 11905: 0xB986, - 31643 - 11905: 0xB987, - 31644 - 11905: 0xF3ED, - 31645 - 11905: 0xF3E9, - 31646 - 11905: 0xB988, - 31647 - 11905: 0xB989, - 31648 - 11905: 0xB98A, - 31649 - 11905: 0xB9DC, - 31650 - 11905: 0xF3EE, - 31651 - 11905: 0xB98B, - 31652 - 11905: 0xB98C, - 31653 - 11905: 0xB98D, - 31654 - 11905: 0xF3E5, - 31655 - 11905: 0xF3E6, - 31656 - 11905: 0xF3EA, - 31657 - 11905: 0xC2E1, - 31658 - 11905: 0xF3EC, - 31659 - 11905: 0xF3EF, - 31660 - 11905: 0xF3E8, - 31661 - 11905: 0xBCFD, - 31662 - 11905: 0xB98E, - 31663 - 11905: 0xB98F, - 31664 - 11905: 0xB990, - 31665 - 11905: 0xCFE4, - 31666 - 11905: 0xB991, - 31667 - 11905: 0xB992, - 31668 - 11905: 0xF3F0, - 31669 - 11905: 0xB993, - 31670 - 11905: 0xB994, - 31671 - 11905: 0xB995, - 31672 - 11905: 0xF3E7, - 31673 - 11905: 0xB996, - 31674 - 11905: 0xB997, - 31675 - 11905: 0xB998, - 31676 - 11905: 0xB999, - 31677 - 11905: 0xB99A, - 31678 - 11905: 0xB99B, - 31679 - 11905: 0xB99C, - 31680 - 11905: 0xB99D, - 31681 - 11905: 0xF3F2, - 31682 - 11905: 0xB99E, - 31683 - 11905: 0xB99F, - 31684 - 11905: 0xB9A0, - 31685 - 11905: 0xBA40, - 31686 - 11905: 0xD7AD, - 31687 - 11905: 0xC6AA, - 31688 - 11905: 0xBA41, - 31689 - 11905: 0xBA42, - 31690 - 11905: 0xBA43, - 31691 - 11905: 0xBA44, - 31692 - 11905: 0xF3F3, - 31693 - 11905: 0xBA45, - 31694 - 11905: 0xBA46, - 31695 - 11905: 0xBA47, - 31696 - 11905: 0xBA48, - 31697 - 11905: 0xF3F1, - 31698 - 11905: 0xBA49, - 31699 - 11905: 0xC2A8, - 31700 - 11905: 0xBA4A, - 31701 - 11905: 0xBA4B, - 31702 - 11905: 0xBA4C, - 31703 - 11905: 0xBA4D, - 31704 - 11905: 0xBA4E, - 31705 - 11905: 0xB8DD, - 31706 - 11905: 0xF3F5, - 31707 - 11905: 0xBA4F, - 31708 - 11905: 0xBA50, - 31709 - 11905: 0xF3F4, - 31710 - 11905: 0xBA51, - 31711 - 11905: 0xBA52, - 31712 - 11905: 0xBA53, - 31713 - 11905: 0xB4DB, - 31714 - 11905: 0xBA54, - 31715 - 11905: 0xBA55, - 31716 - 11905: 0xBA56, - 31717 - 11905: 0xF3F6, - 31718 - 11905: 0xF3F7, - 31719 - 11905: 0xBA57, - 31720 - 11905: 0xBA58, - 31721 - 11905: 0xBA59, - 31722 - 11905: 0xF3F8, - 31723 - 11905: 0xBA5A, - 31724 - 11905: 0xBA5B, - 31725 - 11905: 0xBA5C, - 31726 - 11905: 0xC0BA, - 31727 - 11905: 0xBA5D, - 31728 - 11905: 0xBA5E, - 31729 - 11905: 0xC0E9, - 31730 - 11905: 0xBA5F, - 31731 - 11905: 0xBA60, - 31732 - 11905: 0xBA61, - 31733 - 11905: 0xBA62, - 31734 - 11905: 0xBA63, - 31735 - 11905: 0xC5F1, - 31736 - 11905: 0xBA64, - 31737 - 11905: 0xBA65, - 31738 - 11905: 0xBA66, - 31739 - 11905: 0xBA67, - 31740 - 11905: 0xF3FB, - 31741 - 11905: 0xBA68, - 31742 - 11905: 0xF3FA, - 31743 - 11905: 0xBA69, - 31744 - 11905: 0xBA6A, - 31745 - 11905: 0xBA6B, - 31746 - 11905: 0xBA6C, - 31747 - 11905: 0xBA6D, - 31748 - 11905: 0xBA6E, - 31749 - 11905: 0xBA6F, - 31750 - 11905: 0xBA70, - 31751 - 11905: 0xB4D8, - 31752 - 11905: 0xBA71, - 31753 - 11905: 0xBA72, - 31754 - 11905: 0xBA73, - 31755 - 11905: 0xF3FE, - 31756 - 11905: 0xF3F9, - 31757 - 11905: 0xBA74, - 31758 - 11905: 0xBA75, - 31759 - 11905: 0xF3FC, - 31760 - 11905: 0xBA76, - 31761 - 11905: 0xBA77, - 31762 - 11905: 0xBA78, - 31763 - 11905: 0xBA79, - 31764 - 11905: 0xBA7A, - 31765 - 11905: 0xBA7B, - 31766 - 11905: 0xF3FD, - 31767 - 11905: 0xBA7C, - 31768 - 11905: 0xBA7D, - 31769 - 11905: 0xBA7E, - 31770 - 11905: 0xBA80, - 31771 - 11905: 0xBA81, - 31772 - 11905: 0xBA82, - 31773 - 11905: 0xBA83, - 31774 - 11905: 0xBA84, - 31775 - 11905: 0xF4A1, - 31776 - 11905: 0xBA85, - 31777 - 11905: 0xBA86, - 31778 - 11905: 0xBA87, - 31779 - 11905: 0xBA88, - 31780 - 11905: 0xBA89, - 31781 - 11905: 0xBA8A, - 31782 - 11905: 0xF4A3, - 31783 - 11905: 0xBBC9, - 31784 - 11905: 0xBA8B, - 31785 - 11905: 0xBA8C, - 31786 - 11905: 0xF4A2, - 31787 - 11905: 0xBA8D, - 31788 - 11905: 0xBA8E, - 31789 - 11905: 0xBA8F, - 31790 - 11905: 0xBA90, - 31791 - 11905: 0xBA91, - 31792 - 11905: 0xBA92, - 31793 - 11905: 0xBA93, - 31794 - 11905: 0xBA94, - 31795 - 11905: 0xBA95, - 31796 - 11905: 0xBA96, - 31797 - 11905: 0xBA97, - 31798 - 11905: 0xBA98, - 31799 - 11905: 0xBA99, - 31800 - 11905: 0xF4A4, - 31801 - 11905: 0xBA9A, - 31802 - 11905: 0xBA9B, - 31803 - 11905: 0xBA9C, - 31804 - 11905: 0xBA9D, - 31805 - 11905: 0xBA9E, - 31806 - 11905: 0xBA9F, - 31807 - 11905: 0xB2BE, - 31808 - 11905: 0xF4A6, - 31809 - 11905: 0xF4A5, - 31810 - 11905: 0xBAA0, - 31811 - 11905: 0xBB40, - 31812 - 11905: 0xBB41, - 31813 - 11905: 0xBB42, - 31814 - 11905: 0xBB43, - 31815 - 11905: 0xBB44, - 31816 - 11905: 0xBB45, - 31817 - 11905: 0xBB46, - 31818 - 11905: 0xBB47, - 31819 - 11905: 0xBB48, - 31820 - 11905: 0xBB49, - 31821 - 11905: 0xBCAE, - 31822 - 11905: 0xBB4A, - 31823 - 11905: 0xBB4B, - 31824 - 11905: 0xBB4C, - 31825 - 11905: 0xBB4D, - 31826 - 11905: 0xBB4E, - 31827 - 11905: 0xBB4F, - 31828 - 11905: 0xBB50, - 31829 - 11905: 0xBB51, - 31830 - 11905: 0xBB52, - 31831 - 11905: 0xBB53, - 31832 - 11905: 0xBB54, - 31833 - 11905: 0xBB55, - 31834 - 11905: 0xBB56, - 31835 - 11905: 0xBB57, - 31836 - 11905: 0xBB58, - 31837 - 11905: 0xBB59, - 31838 - 11905: 0xBB5A, - 31839 - 11905: 0xBB5B, - 31840 - 11905: 0xBB5C, - 31841 - 11905: 0xBB5D, - 31842 - 11905: 0xBB5E, - 31843 - 11905: 0xBB5F, - 31844 - 11905: 0xBB60, - 31845 - 11905: 0xBB61, - 31846 - 11905: 0xBB62, - 31847 - 11905: 0xBB63, - 31848 - 11905: 0xBB64, - 31849 - 11905: 0xBB65, - 31850 - 11905: 0xBB66, - 31851 - 11905: 0xBB67, - 31852 - 11905: 0xBB68, - 31853 - 11905: 0xBB69, - 31854 - 11905: 0xBB6A, - 31855 - 11905: 0xBB6B, - 31856 - 11905: 0xBB6C, - 31857 - 11905: 0xBB6D, - 31858 - 11905: 0xBB6E, - 31859 - 11905: 0xC3D7, - 31860 - 11905: 0xD9E1, - 31861 - 11905: 0xBB6F, - 31862 - 11905: 0xBB70, - 31863 - 11905: 0xBB71, - 31864 - 11905: 0xBB72, - 31865 - 11905: 0xBB73, - 31866 - 11905: 0xBB74, - 31867 - 11905: 0xC0E0, - 31868 - 11905: 0xF4CC, - 31869 - 11905: 0xD7D1, - 31870 - 11905: 0xBB75, - 31871 - 11905: 0xBB76, - 31872 - 11905: 0xBB77, - 31873 - 11905: 0xBB78, - 31874 - 11905: 0xBB79, - 31875 - 11905: 0xBB7A, - 31876 - 11905: 0xBB7B, - 31877 - 11905: 0xBB7C, - 31878 - 11905: 0xBB7D, - 31879 - 11905: 0xBB7E, - 31880 - 11905: 0xBB80, - 31881 - 11905: 0xB7DB, - 31882 - 11905: 0xBB81, - 31883 - 11905: 0xBB82, - 31884 - 11905: 0xBB83, - 31885 - 11905: 0xBB84, - 31886 - 11905: 0xBB85, - 31887 - 11905: 0xBB86, - 31888 - 11905: 0xBB87, - 31889 - 11905: 0xF4CE, - 31890 - 11905: 0xC1A3, - 31891 - 11905: 0xBB88, - 31892 - 11905: 0xBB89, - 31893 - 11905: 0xC6C9, - 31894 - 11905: 0xBB8A, - 31895 - 11905: 0xB4D6, - 31896 - 11905: 0xD5B3, - 31897 - 11905: 0xBB8B, - 31898 - 11905: 0xBB8C, - 31899 - 11905: 0xBB8D, - 31900 - 11905: 0xF4D0, - 31901 - 11905: 0xF4CF, - 31902 - 11905: 0xF4D1, - 31903 - 11905: 0xCBDA, - 31904 - 11905: 0xBB8E, - 31905 - 11905: 0xBB8F, - 31906 - 11905: 0xF4D2, - 31907 - 11905: 0xBB90, - 31908 - 11905: 0xD4C1, - 31909 - 11905: 0xD6E0, - 31910 - 11905: 0xBB91, - 31911 - 11905: 0xBB92, - 31912 - 11905: 0xBB93, - 31913 - 11905: 0xBB94, - 31914 - 11905: 0xB7E0, - 31915 - 11905: 0xBB95, - 31916 - 11905: 0xBB96, - 31917 - 11905: 0xBB97, - 31918 - 11905: 0xC1B8, - 31919 - 11905: 0xBB98, - 31920 - 11905: 0xBB99, - 31921 - 11905: 0xC1BB, - 31922 - 11905: 0xF4D3, - 31923 - 11905: 0xBEAC, - 31924 - 11905: 0xBB9A, - 31925 - 11905: 0xBB9B, - 31926 - 11905: 0xBB9C, - 31927 - 11905: 0xBB9D, - 31928 - 11905: 0xBB9E, - 31929 - 11905: 0xB4E2, - 31930 - 11905: 0xBB9F, - 31931 - 11905: 0xBBA0, - 31932 - 11905: 0xF4D4, - 31933 - 11905: 0xF4D5, - 31934 - 11905: 0xBEAB, - 31935 - 11905: 0xBC40, - 31936 - 11905: 0xBC41, - 31937 - 11905: 0xF4D6, - 31938 - 11905: 0xBC42, - 31939 - 11905: 0xBC43, - 31940 - 11905: 0xBC44, - 31941 - 11905: 0xF4DB, - 31942 - 11905: 0xBC45, - 31943 - 11905: 0xF4D7, - 31944 - 11905: 0xF4DA, - 31945 - 11905: 0xBC46, - 31946 - 11905: 0xBAFD, - 31947 - 11905: 0xBC47, - 31948 - 11905: 0xF4D8, - 31949 - 11905: 0xF4D9, - 31950 - 11905: 0xBC48, - 31951 - 11905: 0xBC49, - 31952 - 11905: 0xBC4A, - 31953 - 11905: 0xBC4B, - 31954 - 11905: 0xBC4C, - 31955 - 11905: 0xBC4D, - 31956 - 11905: 0xBC4E, - 31957 - 11905: 0xB8E2, - 31958 - 11905: 0xCCC7, - 31959 - 11905: 0xF4DC, - 31960 - 11905: 0xBC4F, - 31961 - 11905: 0xB2DA, - 31962 - 11905: 0xBC50, - 31963 - 11905: 0xBC51, - 31964 - 11905: 0xC3D3, - 31965 - 11905: 0xBC52, - 31966 - 11905: 0xBC53, - 31967 - 11905: 0xD4E3, - 31968 - 11905: 0xBFB7, - 31969 - 11905: 0xBC54, - 31970 - 11905: 0xBC55, - 31971 - 11905: 0xBC56, - 31972 - 11905: 0xBC57, - 31973 - 11905: 0xBC58, - 31974 - 11905: 0xBC59, - 31975 - 11905: 0xBC5A, - 31976 - 11905: 0xF4DD, - 31977 - 11905: 0xBC5B, - 31978 - 11905: 0xBC5C, - 31979 - 11905: 0xBC5D, - 31980 - 11905: 0xBC5E, - 31981 - 11905: 0xBC5F, - 31982 - 11905: 0xBC60, - 31983 - 11905: 0xC5B4, - 31984 - 11905: 0xBC61, - 31985 - 11905: 0xBC62, - 31986 - 11905: 0xBC63, - 31987 - 11905: 0xBC64, - 31988 - 11905: 0xBC65, - 31989 - 11905: 0xBC66, - 31990 - 11905: 0xBC67, - 31991 - 11905: 0xBC68, - 31992 - 11905: 0xF4E9, - 31993 - 11905: 0xBC69, - 31994 - 11905: 0xBC6A, - 31995 - 11905: 0xCFB5, - 31996 - 11905: 0xBC6B, - 31997 - 11905: 0xBC6C, - 31998 - 11905: 0xBC6D, - 31999 - 11905: 0xBC6E, - 32000 - 11905: 0xBC6F, - 32001 - 11905: 0xBC70, - 32002 - 11905: 0xBC71, - 32003 - 11905: 0xBC72, - 32004 - 11905: 0xBC73, - 32005 - 11905: 0xBC74, - 32006 - 11905: 0xBC75, - 32007 - 11905: 0xBC76, - 32008 - 11905: 0xBC77, - 32009 - 11905: 0xBC78, - 32010 - 11905: 0xCEC9, - 32011 - 11905: 0xBC79, - 32012 - 11905: 0xBC7A, - 32013 - 11905: 0xBC7B, - 32014 - 11905: 0xBC7C, - 32015 - 11905: 0xBC7D, - 32016 - 11905: 0xBC7E, - 32017 - 11905: 0xBC80, - 32018 - 11905: 0xBC81, - 32019 - 11905: 0xBC82, - 32020 - 11905: 0xBC83, - 32021 - 11905: 0xBC84, - 32022 - 11905: 0xBC85, - 32023 - 11905: 0xBC86, - 32024 - 11905: 0xBC87, - 32025 - 11905: 0xBC88, - 32026 - 11905: 0xBC89, - 32027 - 11905: 0xBC8A, - 32028 - 11905: 0xBC8B, - 32029 - 11905: 0xBC8C, - 32030 - 11905: 0xBC8D, - 32031 - 11905: 0xBC8E, - 32032 - 11905: 0xCBD8, - 32033 - 11905: 0xBC8F, - 32034 - 11905: 0xCBF7, - 32035 - 11905: 0xBC90, - 32036 - 11905: 0xBC91, - 32037 - 11905: 0xBC92, - 32038 - 11905: 0xBC93, - 32039 - 11905: 0xBDF4, - 32040 - 11905: 0xBC94, - 32041 - 11905: 0xBC95, - 32042 - 11905: 0xBC96, - 32043 - 11905: 0xD7CF, - 32044 - 11905: 0xBC97, - 32045 - 11905: 0xBC98, - 32046 - 11905: 0xBC99, - 32047 - 11905: 0xC0DB, - 32048 - 11905: 0xBC9A, - 32049 - 11905: 0xBC9B, - 32050 - 11905: 0xBC9C, - 32051 - 11905: 0xBC9D, - 32052 - 11905: 0xBC9E, - 32053 - 11905: 0xBC9F, - 32054 - 11905: 0xBCA0, - 32055 - 11905: 0xBD40, - 32056 - 11905: 0xBD41, - 32057 - 11905: 0xBD42, - 32058 - 11905: 0xBD43, - 32059 - 11905: 0xBD44, - 32060 - 11905: 0xBD45, - 32061 - 11905: 0xBD46, - 32062 - 11905: 0xBD47, - 32063 - 11905: 0xBD48, - 32064 - 11905: 0xBD49, - 32065 - 11905: 0xBD4A, - 32066 - 11905: 0xBD4B, - 32067 - 11905: 0xBD4C, - 32068 - 11905: 0xBD4D, - 32069 - 11905: 0xBD4E, - 32070 - 11905: 0xBD4F, - 32071 - 11905: 0xBD50, - 32072 - 11905: 0xBD51, - 32073 - 11905: 0xBD52, - 32074 - 11905: 0xBD53, - 32075 - 11905: 0xBD54, - 32076 - 11905: 0xBD55, - 32077 - 11905: 0xBD56, - 32078 - 11905: 0xBD57, - 32079 - 11905: 0xBD58, - 32080 - 11905: 0xBD59, - 32081 - 11905: 0xBD5A, - 32082 - 11905: 0xBD5B, - 32083 - 11905: 0xBD5C, - 32084 - 11905: 0xBD5D, - 32085 - 11905: 0xBD5E, - 32086 - 11905: 0xBD5F, - 32087 - 11905: 0xBD60, - 32088 - 11905: 0xBD61, - 32089 - 11905: 0xBD62, - 32090 - 11905: 0xBD63, - 32091 - 11905: 0xBD64, - 32092 - 11905: 0xBD65, - 32093 - 11905: 0xBD66, - 32094 - 11905: 0xBD67, - 32095 - 11905: 0xBD68, - 32096 - 11905: 0xBD69, - 32097 - 11905: 0xBD6A, - 32098 - 11905: 0xBD6B, - 32099 - 11905: 0xBD6C, - 32100 - 11905: 0xBD6D, - 32101 - 11905: 0xBD6E, - 32102 - 11905: 0xBD6F, - 32103 - 11905: 0xBD70, - 32104 - 11905: 0xBD71, - 32105 - 11905: 0xBD72, - 32106 - 11905: 0xBD73, - 32107 - 11905: 0xBD74, - 32108 - 11905: 0xBD75, - 32109 - 11905: 0xBD76, - 32110 - 11905: 0xD0F5, - 32111 - 11905: 0xBD77, - 32112 - 11905: 0xBD78, - 32113 - 11905: 0xBD79, - 32114 - 11905: 0xBD7A, - 32115 - 11905: 0xBD7B, - 32116 - 11905: 0xBD7C, - 32117 - 11905: 0xBD7D, - 32118 - 11905: 0xBD7E, - 32119 - 11905: 0xF4EA, - 32120 - 11905: 0xBD80, - 32121 - 11905: 0xBD81, - 32122 - 11905: 0xBD82, - 32123 - 11905: 0xBD83, - 32124 - 11905: 0xBD84, - 32125 - 11905: 0xBD85, - 32126 - 11905: 0xBD86, - 32127 - 11905: 0xBD87, - 32128 - 11905: 0xBD88, - 32129 - 11905: 0xBD89, - 32130 - 11905: 0xBD8A, - 32131 - 11905: 0xBD8B, - 32132 - 11905: 0xBD8C, - 32133 - 11905: 0xBD8D, - 32134 - 11905: 0xBD8E, - 32135 - 11905: 0xBD8F, - 32136 - 11905: 0xBD90, - 32137 - 11905: 0xBD91, - 32138 - 11905: 0xBD92, - 32139 - 11905: 0xBD93, - 32140 - 11905: 0xBD94, - 32141 - 11905: 0xBD95, - 32142 - 11905: 0xBD96, - 32143 - 11905: 0xBD97, - 32144 - 11905: 0xBD98, - 32145 - 11905: 0xBD99, - 32146 - 11905: 0xBD9A, - 32147 - 11905: 0xBD9B, - 32148 - 11905: 0xBD9C, - 32149 - 11905: 0xBD9D, - 32150 - 11905: 0xBD9E, - 32151 - 11905: 0xBD9F, - 32152 - 11905: 0xBDA0, - 32153 - 11905: 0xBE40, - 32154 - 11905: 0xBE41, - 32155 - 11905: 0xBE42, - 32156 - 11905: 0xBE43, - 32157 - 11905: 0xBE44, - 32158 - 11905: 0xBE45, - 32159 - 11905: 0xBE46, - 32160 - 11905: 0xBE47, - 32161 - 11905: 0xBE48, - 32162 - 11905: 0xBE49, - 32163 - 11905: 0xBE4A, - 32164 - 11905: 0xBE4B, - 32165 - 11905: 0xBE4C, - 32166 - 11905: 0xF4EB, - 32167 - 11905: 0xBE4D, - 32168 - 11905: 0xBE4E, - 32169 - 11905: 0xBE4F, - 32170 - 11905: 0xBE50, - 32171 - 11905: 0xBE51, - 32172 - 11905: 0xBE52, - 32173 - 11905: 0xBE53, - 32174 - 11905: 0xF4EC, - 32175 - 11905: 0xBE54, - 32176 - 11905: 0xBE55, - 32177 - 11905: 0xBE56, - 32178 - 11905: 0xBE57, - 32179 - 11905: 0xBE58, - 32180 - 11905: 0xBE59, - 32181 - 11905: 0xBE5A, - 32182 - 11905: 0xBE5B, - 32183 - 11905: 0xBE5C, - 32184 - 11905: 0xBE5D, - 32185 - 11905: 0xBE5E, - 32186 - 11905: 0xBE5F, - 32187 - 11905: 0xBE60, - 32188 - 11905: 0xBE61, - 32189 - 11905: 0xBE62, - 32190 - 11905: 0xBE63, - 32191 - 11905: 0xBE64, - 32192 - 11905: 0xBE65, - 32193 - 11905: 0xBE66, - 32194 - 11905: 0xBE67, - 32195 - 11905: 0xBE68, - 32196 - 11905: 0xBE69, - 32197 - 11905: 0xBE6A, - 32198 - 11905: 0xBE6B, - 32199 - 11905: 0xBE6C, - 32200 - 11905: 0xBE6D, - 32201 - 11905: 0xBE6E, - 32202 - 11905: 0xBE6F, - 32203 - 11905: 0xBE70, - 32204 - 11905: 0xBE71, - 32205 - 11905: 0xBE72, - 32206 - 11905: 0xBE73, - 32207 - 11905: 0xBE74, - 32208 - 11905: 0xBE75, - 32209 - 11905: 0xBE76, - 32210 - 11905: 0xBE77, - 32211 - 11905: 0xBE78, - 32212 - 11905: 0xBE79, - 32213 - 11905: 0xBE7A, - 32214 - 11905: 0xBE7B, - 32215 - 11905: 0xBE7C, - 32216 - 11905: 0xBE7D, - 32217 - 11905: 0xBE7E, - 32218 - 11905: 0xBE80, - 32219 - 11905: 0xBE81, - 32220 - 11905: 0xBE82, - 32221 - 11905: 0xBE83, - 32222 - 11905: 0xBE84, - 32223 - 11905: 0xBE85, - 32224 - 11905: 0xBE86, - 32225 - 11905: 0xBE87, - 32226 - 11905: 0xBE88, - 32227 - 11905: 0xBE89, - 32228 - 11905: 0xBE8A, - 32229 - 11905: 0xBE8B, - 32230 - 11905: 0xBE8C, - 32231 - 11905: 0xBE8D, - 32232 - 11905: 0xBE8E, - 32233 - 11905: 0xBE8F, - 32234 - 11905: 0xBE90, - 32235 - 11905: 0xBE91, - 32236 - 11905: 0xBE92, - 32237 - 11905: 0xBE93, - 32238 - 11905: 0xBE94, - 32239 - 11905: 0xBE95, - 32240 - 11905: 0xBE96, - 32241 - 11905: 0xBE97, - 32242 - 11905: 0xBE98, - 32243 - 11905: 0xBE99, - 32244 - 11905: 0xBE9A, - 32245 - 11905: 0xBE9B, - 32246 - 11905: 0xBE9C, - 32247 - 11905: 0xBE9D, - 32248 - 11905: 0xBE9E, - 32249 - 11905: 0xBE9F, - 32250 - 11905: 0xBEA0, - 32251 - 11905: 0xBF40, - 32252 - 11905: 0xBF41, - 32253 - 11905: 0xBF42, - 32254 - 11905: 0xBF43, - 32255 - 11905: 0xBF44, - 32256 - 11905: 0xBF45, - 32257 - 11905: 0xBF46, - 32258 - 11905: 0xBF47, - 32259 - 11905: 0xBF48, - 32260 - 11905: 0xBF49, - 32261 - 11905: 0xBF4A, - 32262 - 11905: 0xBF4B, - 32263 - 11905: 0xBF4C, - 32264 - 11905: 0xBF4D, - 32265 - 11905: 0xBF4E, - 32266 - 11905: 0xBF4F, - 32267 - 11905: 0xBF50, - 32268 - 11905: 0xBF51, - 32269 - 11905: 0xBF52, - 32270 - 11905: 0xBF53, - 32271 - 11905: 0xBF54, - 32272 - 11905: 0xBF55, - 32273 - 11905: 0xBF56, - 32274 - 11905: 0xBF57, - 32275 - 11905: 0xBF58, - 32276 - 11905: 0xBF59, - 32277 - 11905: 0xBF5A, - 32278 - 11905: 0xBF5B, - 32279 - 11905: 0xBF5C, - 32280 - 11905: 0xBF5D, - 32281 - 11905: 0xBF5E, - 32282 - 11905: 0xBF5F, - 32283 - 11905: 0xBF60, - 32284 - 11905: 0xBF61, - 32285 - 11905: 0xBF62, - 32286 - 11905: 0xBF63, - 32287 - 11905: 0xBF64, - 32288 - 11905: 0xBF65, - 32289 - 11905: 0xBF66, - 32290 - 11905: 0xBF67, - 32291 - 11905: 0xBF68, - 32292 - 11905: 0xBF69, - 32293 - 11905: 0xBF6A, - 32294 - 11905: 0xBF6B, - 32295 - 11905: 0xBF6C, - 32296 - 11905: 0xBF6D, - 32297 - 11905: 0xBF6E, - 32298 - 11905: 0xBF6F, - 32299 - 11905: 0xBF70, - 32300 - 11905: 0xBF71, - 32301 - 11905: 0xBF72, - 32302 - 11905: 0xBF73, - 32303 - 11905: 0xBF74, - 32304 - 11905: 0xBF75, - 32305 - 11905: 0xBF76, - 32306 - 11905: 0xBF77, - 32307 - 11905: 0xBF78, - 32308 - 11905: 0xBF79, - 32309 - 11905: 0xBF7A, - 32310 - 11905: 0xBF7B, - 32311 - 11905: 0xBF7C, - 32312 - 11905: 0xBF7D, - 32313 - 11905: 0xBF7E, - 32314 - 11905: 0xBF80, - 32315 - 11905: 0xF7E3, - 32316 - 11905: 0xBF81, - 32317 - 11905: 0xBF82, - 32318 - 11905: 0xBF83, - 32319 - 11905: 0xBF84, - 32320 - 11905: 0xBF85, - 32321 - 11905: 0xB7B1, - 32322 - 11905: 0xBF86, - 32323 - 11905: 0xBF87, - 32324 - 11905: 0xBF88, - 32325 - 11905: 0xBF89, - 32326 - 11905: 0xBF8A, - 32327 - 11905: 0xF4ED, - 32328 - 11905: 0xBF8B, - 32329 - 11905: 0xBF8C, - 32330 - 11905: 0xBF8D, - 32331 - 11905: 0xBF8E, - 32332 - 11905: 0xBF8F, - 32333 - 11905: 0xBF90, - 32334 - 11905: 0xBF91, - 32335 - 11905: 0xBF92, - 32336 - 11905: 0xBF93, - 32337 - 11905: 0xBF94, - 32338 - 11905: 0xBF95, - 32339 - 11905: 0xBF96, - 32340 - 11905: 0xBF97, - 32341 - 11905: 0xBF98, - 32342 - 11905: 0xBF99, - 32343 - 11905: 0xBF9A, - 32344 - 11905: 0xBF9B, - 32345 - 11905: 0xBF9C, - 32346 - 11905: 0xBF9D, - 32347 - 11905: 0xBF9E, - 32348 - 11905: 0xBF9F, - 32349 - 11905: 0xBFA0, - 32350 - 11905: 0xC040, - 32351 - 11905: 0xC041, - 32352 - 11905: 0xC042, - 32353 - 11905: 0xC043, - 32354 - 11905: 0xC044, - 32355 - 11905: 0xC045, - 32356 - 11905: 0xC046, - 32357 - 11905: 0xC047, - 32358 - 11905: 0xC048, - 32359 - 11905: 0xC049, - 32360 - 11905: 0xC04A, - 32361 - 11905: 0xC04B, - 32362 - 11905: 0xC04C, - 32363 - 11905: 0xC04D, - 32364 - 11905: 0xC04E, - 32365 - 11905: 0xC04F, - 32366 - 11905: 0xC050, - 32367 - 11905: 0xC051, - 32368 - 11905: 0xC052, - 32369 - 11905: 0xC053, - 32370 - 11905: 0xC054, - 32371 - 11905: 0xC055, - 32372 - 11905: 0xC056, - 32373 - 11905: 0xC057, - 32374 - 11905: 0xC058, - 32375 - 11905: 0xC059, - 32376 - 11905: 0xC05A, - 32377 - 11905: 0xC05B, - 32378 - 11905: 0xC05C, - 32379 - 11905: 0xC05D, - 32380 - 11905: 0xC05E, - 32381 - 11905: 0xC05F, - 32382 - 11905: 0xC060, - 32383 - 11905: 0xC061, - 32384 - 11905: 0xC062, - 32385 - 11905: 0xC063, - 32386 - 11905: 0xD7EB, - 32387 - 11905: 0xC064, - 32388 - 11905: 0xC065, - 32389 - 11905: 0xC066, - 32390 - 11905: 0xC067, - 32391 - 11905: 0xC068, - 32392 - 11905: 0xC069, - 32393 - 11905: 0xC06A, - 32394 - 11905: 0xC06B, - 32395 - 11905: 0xC06C, - 32396 - 11905: 0xC06D, - 32397 - 11905: 0xC06E, - 32398 - 11905: 0xC06F, - 32399 - 11905: 0xC070, - 32400 - 11905: 0xC071, - 32401 - 11905: 0xC072, - 32402 - 11905: 0xC073, - 32403 - 11905: 0xC074, - 32404 - 11905: 0xC075, - 32405 - 11905: 0xC076, - 32406 - 11905: 0xC077, - 32407 - 11905: 0xC078, - 32408 - 11905: 0xC079, - 32409 - 11905: 0xC07A, - 32410 - 11905: 0xC07B, - 32411 - 11905: 0xF4EE, - 32412 - 11905: 0xC07C, - 32413 - 11905: 0xC07D, - 32414 - 11905: 0xC07E, - 32415 - 11905: 0xE6F9, - 32416 - 11905: 0xBEC0, - 32417 - 11905: 0xE6FA, - 32418 - 11905: 0xBAEC, - 32419 - 11905: 0xE6FB, - 32420 - 11905: 0xCFCB, - 32421 - 11905: 0xE6FC, - 32422 - 11905: 0xD4BC, - 32423 - 11905: 0xBCB6, - 32424 - 11905: 0xE6FD, - 32425 - 11905: 0xE6FE, - 32426 - 11905: 0xBCCD, - 32427 - 11905: 0xC8D2, - 32428 - 11905: 0xCEB3, - 32429 - 11905: 0xE7A1, - 32430 - 11905: 0xC080, - 32431 - 11905: 0xB4BF, - 32432 - 11905: 0xE7A2, - 32433 - 11905: 0xC9B4, - 32434 - 11905: 0xB8D9, - 32435 - 11905: 0xC4C9, - 32436 - 11905: 0xC081, - 32437 - 11905: 0xD7DD, - 32438 - 11905: 0xC2DA, - 32439 - 11905: 0xB7D7, - 32440 - 11905: 0xD6BD, - 32441 - 11905: 0xCEC6, - 32442 - 11905: 0xB7C4, - 32443 - 11905: 0xC082, - 32444 - 11905: 0xC083, - 32445 - 11905: 0xC5A6, - 32446 - 11905: 0xE7A3, - 32447 - 11905: 0xCFDF, - 32448 - 11905: 0xE7A4, - 32449 - 11905: 0xE7A5, - 32450 - 11905: 0xE7A6, - 32451 - 11905: 0xC1B7, - 32452 - 11905: 0xD7E9, - 32453 - 11905: 0xC9F0, - 32454 - 11905: 0xCFB8, - 32455 - 11905: 0xD6AF, - 32456 - 11905: 0xD6D5, - 32457 - 11905: 0xE7A7, - 32458 - 11905: 0xB0ED, - 32459 - 11905: 0xE7A8, - 32460 - 11905: 0xE7A9, - 32461 - 11905: 0xC9DC, - 32462 - 11905: 0xD2EF, - 32463 - 11905: 0xBEAD, - 32464 - 11905: 0xE7AA, - 32465 - 11905: 0xB0F3, - 32466 - 11905: 0xC8DE, - 32467 - 11905: 0xBDE1, - 32468 - 11905: 0xE7AB, - 32469 - 11905: 0xC8C6, - 32470 - 11905: 0xC084, - 32471 - 11905: 0xE7AC, - 32472 - 11905: 0xBBE6, - 32473 - 11905: 0xB8F8, - 32474 - 11905: 0xD1A4, - 32475 - 11905: 0xE7AD, - 32476 - 11905: 0xC2E7, - 32477 - 11905: 0xBEF8, - 32478 - 11905: 0xBDCA, - 32479 - 11905: 0xCDB3, - 32480 - 11905: 0xE7AE, - 32481 - 11905: 0xE7AF, - 32482 - 11905: 0xBEEE, - 32483 - 11905: 0xD0E5, - 32484 - 11905: 0xC085, - 32485 - 11905: 0xCBE7, - 32486 - 11905: 0xCCD0, - 32487 - 11905: 0xBCCC, - 32488 - 11905: 0xE7B0, - 32489 - 11905: 0xBCA8, - 32490 - 11905: 0xD0F7, - 32491 - 11905: 0xE7B1, - 32492 - 11905: 0xC086, - 32493 - 11905: 0xD0F8, - 32494 - 11905: 0xE7B2, - 32495 - 11905: 0xE7B3, - 32496 - 11905: 0xB4C2, - 32497 - 11905: 0xE7B4, - 32498 - 11905: 0xE7B5, - 32499 - 11905: 0xC9FE, - 32500 - 11905: 0xCEAC, - 32501 - 11905: 0xC3E0, - 32502 - 11905: 0xE7B7, - 32503 - 11905: 0xB1C1, - 32504 - 11905: 0xB3F1, - 32505 - 11905: 0xC087, - 32506 - 11905: 0xE7B8, - 32507 - 11905: 0xE7B9, - 32508 - 11905: 0xD7DB, - 32509 - 11905: 0xD5C0, - 32510 - 11905: 0xE7BA, - 32511 - 11905: 0xC2CC, - 32512 - 11905: 0xD7BA, - 32513 - 11905: 0xE7BB, - 32514 - 11905: 0xE7BC, - 32515 - 11905: 0xE7BD, - 32516 - 11905: 0xBCEA, - 32517 - 11905: 0xC3E5, - 32518 - 11905: 0xC0C2, - 32519 - 11905: 0xE7BE, - 32520 - 11905: 0xE7BF, - 32521 - 11905: 0xBCA9, - 32522 - 11905: 0xC088, - 32523 - 11905: 0xE7C0, - 32524 - 11905: 0xE7C1, - 32525 - 11905: 0xE7B6, - 32526 - 11905: 0xB6D0, - 32527 - 11905: 0xE7C2, - 32528 - 11905: 0xC089, - 32529 - 11905: 0xE7C3, - 32530 - 11905: 0xE7C4, - 32531 - 11905: 0xBBBA, - 32532 - 11905: 0xB5DE, - 32533 - 11905: 0xC2C6, - 32534 - 11905: 0xB1E0, - 32535 - 11905: 0xE7C5, - 32536 - 11905: 0xD4B5, - 32537 - 11905: 0xE7C6, - 32538 - 11905: 0xB8BF, - 32539 - 11905: 0xE7C8, - 32540 - 11905: 0xE7C7, - 32541 - 11905: 0xB7EC, - 32542 - 11905: 0xC08A, - 32543 - 11905: 0xE7C9, - 32544 - 11905: 0xB2F8, - 32545 - 11905: 0xE7CA, - 32546 - 11905: 0xE7CB, - 32547 - 11905: 0xE7CC, - 32548 - 11905: 0xE7CD, - 32549 - 11905: 0xE7CE, - 32550 - 11905: 0xE7CF, - 32551 - 11905: 0xE7D0, - 32552 - 11905: 0xD3A7, - 32553 - 11905: 0xCBF5, - 32554 - 11905: 0xE7D1, - 32555 - 11905: 0xE7D2, - 32556 - 11905: 0xE7D3, - 32557 - 11905: 0xE7D4, - 32558 - 11905: 0xC9C9, - 32559 - 11905: 0xE7D5, - 32560 - 11905: 0xE7D6, - 32561 - 11905: 0xE7D7, - 32562 - 11905: 0xE7D8, - 32563 - 11905: 0xE7D9, - 32564 - 11905: 0xBDC9, - 32565 - 11905: 0xE7DA, - 32566 - 11905: 0xF3BE, - 32567 - 11905: 0xC08B, - 32568 - 11905: 0xB8D7, - 32569 - 11905: 0xC08C, - 32570 - 11905: 0xC8B1, - 32571 - 11905: 0xC08D, - 32572 - 11905: 0xC08E, - 32573 - 11905: 0xC08F, - 32574 - 11905: 0xC090, - 32575 - 11905: 0xC091, - 32576 - 11905: 0xC092, - 32577 - 11905: 0xC093, - 32578 - 11905: 0xF3BF, - 32579 - 11905: 0xC094, - 32580 - 11905: 0xF3C0, - 32581 - 11905: 0xF3C1, - 32582 - 11905: 0xC095, - 32583 - 11905: 0xC096, - 32584 - 11905: 0xC097, - 32585 - 11905: 0xC098, - 32586 - 11905: 0xC099, - 32587 - 11905: 0xC09A, - 32588 - 11905: 0xC09B, - 32589 - 11905: 0xC09C, - 32590 - 11905: 0xC09D, - 32591 - 11905: 0xC09E, - 32592 - 11905: 0xB9DE, - 32593 - 11905: 0xCDF8, - 32594 - 11905: 0xC09F, - 32595 - 11905: 0xC0A0, - 32596 - 11905: 0xD8E8, - 32597 - 11905: 0xBAB1, - 32598 - 11905: 0xC140, - 32599 - 11905: 0xC2DE, - 32600 - 11905: 0xEEB7, - 32601 - 11905: 0xC141, - 32602 - 11905: 0xB7A3, - 32603 - 11905: 0xC142, - 32604 - 11905: 0xC143, - 32605 - 11905: 0xC144, - 32606 - 11905: 0xC145, - 32607 - 11905: 0xEEB9, - 32608 - 11905: 0xC146, - 32609 - 11905: 0xEEB8, - 32610 - 11905: 0xB0D5, - 32611 - 11905: 0xC147, - 32612 - 11905: 0xC148, - 32613 - 11905: 0xC149, - 32614 - 11905: 0xC14A, - 32615 - 11905: 0xC14B, - 32616 - 11905: 0xEEBB, - 32617 - 11905: 0xD5D6, - 32618 - 11905: 0xD7EF, - 32619 - 11905: 0xC14C, - 32620 - 11905: 0xC14D, - 32621 - 11905: 0xC14E, - 32622 - 11905: 0xD6C3, - 32623 - 11905: 0xC14F, - 32624 - 11905: 0xC150, - 32625 - 11905: 0xEEBD, - 32626 - 11905: 0xCAF0, - 32627 - 11905: 0xC151, - 32628 - 11905: 0xEEBC, - 32629 - 11905: 0xC152, - 32630 - 11905: 0xC153, - 32631 - 11905: 0xC154, - 32632 - 11905: 0xC155, - 32633 - 11905: 0xEEBE, - 32634 - 11905: 0xC156, - 32635 - 11905: 0xC157, - 32636 - 11905: 0xC158, - 32637 - 11905: 0xC159, - 32638 - 11905: 0xEEC0, - 32639 - 11905: 0xC15A, - 32640 - 11905: 0xC15B, - 32641 - 11905: 0xEEBF, - 32642 - 11905: 0xC15C, - 32643 - 11905: 0xC15D, - 32644 - 11905: 0xC15E, - 32645 - 11905: 0xC15F, - 32646 - 11905: 0xC160, - 32647 - 11905: 0xC161, - 32648 - 11905: 0xC162, - 32649 - 11905: 0xC163, - 32650 - 11905: 0xD1F2, - 32651 - 11905: 0xC164, - 32652 - 11905: 0xC7BC, - 32653 - 11905: 0xC165, - 32654 - 11905: 0xC3C0, - 32655 - 11905: 0xC166, - 32656 - 11905: 0xC167, - 32657 - 11905: 0xC168, - 32658 - 11905: 0xC169, - 32659 - 11905: 0xC16A, - 32660 - 11905: 0xB8E1, - 32661 - 11905: 0xC16B, - 32662 - 11905: 0xC16C, - 32663 - 11905: 0xC16D, - 32664 - 11905: 0xC16E, - 32665 - 11905: 0xC16F, - 32666 - 11905: 0xC1E7, - 32667 - 11905: 0xC170, - 32668 - 11905: 0xC171, - 32669 - 11905: 0xF4C6, - 32670 - 11905: 0xD0DF, - 32671 - 11905: 0xF4C7, - 32672 - 11905: 0xC172, - 32673 - 11905: 0xCFDB, - 32674 - 11905: 0xC173, - 32675 - 11905: 0xC174, - 32676 - 11905: 0xC8BA, - 32677 - 11905: 0xC175, - 32678 - 11905: 0xC176, - 32679 - 11905: 0xF4C8, - 32680 - 11905: 0xC177, - 32681 - 11905: 0xC178, - 32682 - 11905: 0xC179, - 32683 - 11905: 0xC17A, - 32684 - 11905: 0xC17B, - 32685 - 11905: 0xC17C, - 32686 - 11905: 0xC17D, - 32687 - 11905: 0xF4C9, - 32688 - 11905: 0xF4CA, - 32689 - 11905: 0xC17E, - 32690 - 11905: 0xF4CB, - 32691 - 11905: 0xC180, - 32692 - 11905: 0xC181, - 32693 - 11905: 0xC182, - 32694 - 11905: 0xC183, - 32695 - 11905: 0xC184, - 32696 - 11905: 0xD9FA, - 32697 - 11905: 0xB8FE, - 32698 - 11905: 0xC185, - 32699 - 11905: 0xC186, - 32700 - 11905: 0xE5F1, - 32701 - 11905: 0xD3F0, - 32702 - 11905: 0xC187, - 32703 - 11905: 0xF4E0, - 32704 - 11905: 0xC188, - 32705 - 11905: 0xCECC, - 32706 - 11905: 0xC189, - 32707 - 11905: 0xC18A, - 32708 - 11905: 0xC18B, - 32709 - 11905: 0xB3E1, - 32710 - 11905: 0xC18C, - 32711 - 11905: 0xC18D, - 32712 - 11905: 0xC18E, - 32713 - 11905: 0xC18F, - 32714 - 11905: 0xF1B4, - 32715 - 11905: 0xC190, - 32716 - 11905: 0xD2EE, - 32717 - 11905: 0xC191, - 32718 - 11905: 0xF4E1, - 32719 - 11905: 0xC192, - 32720 - 11905: 0xC193, - 32721 - 11905: 0xC194, - 32722 - 11905: 0xC195, - 32723 - 11905: 0xC196, - 32724 - 11905: 0xCFE8, - 32725 - 11905: 0xF4E2, - 32726 - 11905: 0xC197, - 32727 - 11905: 0xC198, - 32728 - 11905: 0xC7CC, - 32729 - 11905: 0xC199, - 32730 - 11905: 0xC19A, - 32731 - 11905: 0xC19B, - 32732 - 11905: 0xC19C, - 32733 - 11905: 0xC19D, - 32734 - 11905: 0xC19E, - 32735 - 11905: 0xB5D4, - 32736 - 11905: 0xB4E4, - 32737 - 11905: 0xF4E4, - 32738 - 11905: 0xC19F, - 32739 - 11905: 0xC1A0, - 32740 - 11905: 0xC240, - 32741 - 11905: 0xF4E3, - 32742 - 11905: 0xF4E5, - 32743 - 11905: 0xC241, - 32744 - 11905: 0xC242, - 32745 - 11905: 0xF4E6, - 32746 - 11905: 0xC243, - 32747 - 11905: 0xC244, - 32748 - 11905: 0xC245, - 32749 - 11905: 0xC246, - 32750 - 11905: 0xF4E7, - 32751 - 11905: 0xC247, - 32752 - 11905: 0xBAB2, - 32753 - 11905: 0xB0BF, - 32754 - 11905: 0xC248, - 32755 - 11905: 0xF4E8, - 32756 - 11905: 0xC249, - 32757 - 11905: 0xC24A, - 32758 - 11905: 0xC24B, - 32759 - 11905: 0xC24C, - 32760 - 11905: 0xC24D, - 32761 - 11905: 0xC24E, - 32762 - 11905: 0xC24F, - 32763 - 11905: 0xB7AD, - 32764 - 11905: 0xD2ED, - 32765 - 11905: 0xC250, - 32766 - 11905: 0xC251, - 32767 - 11905: 0xC252, - 32768 - 11905: 0xD2AB, - 32769 - 11905: 0xC0CF, - 32770 - 11905: 0xC253, - 32771 - 11905: 0xBFBC, - 32772 - 11905: 0xEBA3, - 32773 - 11905: 0xD5DF, - 32774 - 11905: 0xEAC8, - 32775 - 11905: 0xC254, - 32776 - 11905: 0xC255, - 32777 - 11905: 0xC256, - 32778 - 11905: 0xC257, - 32779 - 11905: 0xF1F3, - 32780 - 11905: 0xB6F8, - 32781 - 11905: 0xCBA3, - 32782 - 11905: 0xC258, - 32783 - 11905: 0xC259, - 32784 - 11905: 0xC4CD, - 32785 - 11905: 0xC25A, - 32786 - 11905: 0xF1E7, - 32787 - 11905: 0xC25B, - 32788 - 11905: 0xF1E8, - 32789 - 11905: 0xB8FB, - 32790 - 11905: 0xF1E9, - 32791 - 11905: 0xBAC4, - 32792 - 11905: 0xD4C5, - 32793 - 11905: 0xB0D2, - 32794 - 11905: 0xC25C, - 32795 - 11905: 0xC25D, - 32796 - 11905: 0xF1EA, - 32797 - 11905: 0xC25E, - 32798 - 11905: 0xC25F, - 32799 - 11905: 0xC260, - 32800 - 11905: 0xF1EB, - 32801 - 11905: 0xC261, - 32802 - 11905: 0xF1EC, - 32803 - 11905: 0xC262, - 32804 - 11905: 0xC263, - 32805 - 11905: 0xF1ED, - 32806 - 11905: 0xF1EE, - 32807 - 11905: 0xF1EF, - 32808 - 11905: 0xF1F1, - 32809 - 11905: 0xF1F0, - 32810 - 11905: 0xC5D5, - 32811 - 11905: 0xC264, - 32812 - 11905: 0xC265, - 32813 - 11905: 0xC266, - 32814 - 11905: 0xC267, - 32815 - 11905: 0xC268, - 32816 - 11905: 0xC269, - 32817 - 11905: 0xF1F2, - 32818 - 11905: 0xC26A, - 32819 - 11905: 0xB6FA, - 32820 - 11905: 0xC26B, - 32821 - 11905: 0xF1F4, - 32822 - 11905: 0xD2AE, - 32823 - 11905: 0xDEC7, - 32824 - 11905: 0xCBCA, - 32825 - 11905: 0xC26C, - 32826 - 11905: 0xC26D, - 32827 - 11905: 0xB3DC, - 32828 - 11905: 0xC26E, - 32829 - 11905: 0xB5A2, - 32830 - 11905: 0xC26F, - 32831 - 11905: 0xB9A2, - 32832 - 11905: 0xC270, - 32833 - 11905: 0xC271, - 32834 - 11905: 0xC4F4, - 32835 - 11905: 0xF1F5, - 32836 - 11905: 0xC272, - 32837 - 11905: 0xC273, - 32838 - 11905: 0xF1F6, - 32839 - 11905: 0xC274, - 32840 - 11905: 0xC275, - 32841 - 11905: 0xC276, - 32842 - 11905: 0xC1C4, - 32843 - 11905: 0xC1FB, - 32844 - 11905: 0xD6B0, - 32845 - 11905: 0xF1F7, - 32846 - 11905: 0xC277, - 32847 - 11905: 0xC278, - 32848 - 11905: 0xC279, - 32849 - 11905: 0xC27A, - 32850 - 11905: 0xF1F8, - 32851 - 11905: 0xC27B, - 32852 - 11905: 0xC1AA, - 32853 - 11905: 0xC27C, - 32854 - 11905: 0xC27D, - 32855 - 11905: 0xC27E, - 32856 - 11905: 0xC6B8, - 32857 - 11905: 0xC280, - 32858 - 11905: 0xBEDB, - 32859 - 11905: 0xC281, - 32860 - 11905: 0xC282, - 32861 - 11905: 0xC283, - 32862 - 11905: 0xC284, - 32863 - 11905: 0xC285, - 32864 - 11905: 0xC286, - 32865 - 11905: 0xC287, - 32866 - 11905: 0xC288, - 32867 - 11905: 0xC289, - 32868 - 11905: 0xC28A, - 32869 - 11905: 0xC28B, - 32870 - 11905: 0xC28C, - 32871 - 11905: 0xC28D, - 32872 - 11905: 0xC28E, - 32873 - 11905: 0xF1F9, - 32874 - 11905: 0xB4CF, - 32875 - 11905: 0xC28F, - 32876 - 11905: 0xC290, - 32877 - 11905: 0xC291, - 32878 - 11905: 0xC292, - 32879 - 11905: 0xC293, - 32880 - 11905: 0xC294, - 32881 - 11905: 0xF1FA, - 32882 - 11905: 0xC295, - 32883 - 11905: 0xC296, - 32884 - 11905: 0xC297, - 32885 - 11905: 0xC298, - 32886 - 11905: 0xC299, - 32887 - 11905: 0xC29A, - 32888 - 11905: 0xC29B, - 32889 - 11905: 0xC29C, - 32890 - 11905: 0xC29D, - 32891 - 11905: 0xC29E, - 32892 - 11905: 0xC29F, - 32893 - 11905: 0xC2A0, - 32894 - 11905: 0xC340, - 32895 - 11905: 0xEDB2, - 32896 - 11905: 0xEDB1, - 32897 - 11905: 0xC341, - 32898 - 11905: 0xC342, - 32899 - 11905: 0xCBE0, - 32900 - 11905: 0xD2DE, - 32901 - 11905: 0xC343, - 32902 - 11905: 0xCBC1, - 32903 - 11905: 0xD5D8, - 32904 - 11905: 0xC344, - 32905 - 11905: 0xC8E2, - 32906 - 11905: 0xC345, - 32907 - 11905: 0xC0DF, - 32908 - 11905: 0xBCA1, - 32909 - 11905: 0xC346, - 32910 - 11905: 0xC347, - 32911 - 11905: 0xC348, - 32912 - 11905: 0xC349, - 32913 - 11905: 0xC34A, - 32914 - 11905: 0xC34B, - 32915 - 11905: 0xEBC1, - 32916 - 11905: 0xC34C, - 32917 - 11905: 0xC34D, - 32918 - 11905: 0xD0A4, - 32919 - 11905: 0xC34E, - 32920 - 11905: 0xD6E2, - 32921 - 11905: 0xC34F, - 32922 - 11905: 0xB6C7, - 32923 - 11905: 0xB8D8, - 32924 - 11905: 0xEBC0, - 32925 - 11905: 0xB8CE, - 32926 - 11905: 0xC350, - 32927 - 11905: 0xEBBF, - 32928 - 11905: 0xB3A6, - 32929 - 11905: 0xB9C9, - 32930 - 11905: 0xD6AB, - 32931 - 11905: 0xC351, - 32932 - 11905: 0xB7F4, - 32933 - 11905: 0xB7CA, - 32934 - 11905: 0xC352, - 32935 - 11905: 0xC353, - 32936 - 11905: 0xC354, - 32937 - 11905: 0xBCE7, - 32938 - 11905: 0xB7BE, - 32939 - 11905: 0xEBC6, - 32940 - 11905: 0xC355, - 32941 - 11905: 0xEBC7, - 32942 - 11905: 0xB0B9, - 32943 - 11905: 0xBFCF, - 32944 - 11905: 0xC356, - 32945 - 11905: 0xEBC5, - 32946 - 11905: 0xD3FD, - 32947 - 11905: 0xC357, - 32948 - 11905: 0xEBC8, - 32949 - 11905: 0xC358, - 32950 - 11905: 0xC359, - 32951 - 11905: 0xEBC9, - 32952 - 11905: 0xC35A, - 32953 - 11905: 0xC35B, - 32954 - 11905: 0xB7CE, - 32955 - 11905: 0xC35C, - 32956 - 11905: 0xEBC2, - 32957 - 11905: 0xEBC4, - 32958 - 11905: 0xC9F6, - 32959 - 11905: 0xD6D7, - 32960 - 11905: 0xD5CD, - 32961 - 11905: 0xD0B2, - 32962 - 11905: 0xEBCF, - 32963 - 11905: 0xCEB8, - 32964 - 11905: 0xEBD0, - 32965 - 11905: 0xC35D, - 32966 - 11905: 0xB5A8, - 32967 - 11905: 0xC35E, - 32968 - 11905: 0xC35F, - 32969 - 11905: 0xC360, - 32970 - 11905: 0xC361, - 32971 - 11905: 0xC362, - 32972 - 11905: 0xB1B3, - 32973 - 11905: 0xEBD2, - 32974 - 11905: 0xCCA5, - 32975 - 11905: 0xC363, - 32976 - 11905: 0xC364, - 32977 - 11905: 0xC365, - 32978 - 11905: 0xC366, - 32979 - 11905: 0xC367, - 32980 - 11905: 0xC368, - 32981 - 11905: 0xC369, - 32982 - 11905: 0xC5D6, - 32983 - 11905: 0xEBD3, - 32984 - 11905: 0xC36A, - 32985 - 11905: 0xEBD1, - 32986 - 11905: 0xC5DF, - 32987 - 11905: 0xEBCE, - 32988 - 11905: 0xCAA4, - 32989 - 11905: 0xEBD5, - 32990 - 11905: 0xB0FB, - 32991 - 11905: 0xC36B, - 32992 - 11905: 0xC36C, - 32993 - 11905: 0xBAFA, - 32994 - 11905: 0xC36D, - 32995 - 11905: 0xC36E, - 32996 - 11905: 0xD8B7, - 32997 - 11905: 0xF1E3, - 32998 - 11905: 0xC36F, - 32999 - 11905: 0xEBCA, - 33000 - 11905: 0xEBCB, - 33001 - 11905: 0xEBCC, - 33002 - 11905: 0xEBCD, - 33003 - 11905: 0xEBD6, - 33004 - 11905: 0xE6C0, - 33005 - 11905: 0xEBD9, - 33006 - 11905: 0xC370, - 33007 - 11905: 0xBFE8, - 33008 - 11905: 0xD2C8, - 33009 - 11905: 0xEBD7, - 33010 - 11905: 0xEBDC, - 33011 - 11905: 0xB8EC, - 33012 - 11905: 0xEBD8, - 33013 - 11905: 0xC371, - 33014 - 11905: 0xBDBA, - 33015 - 11905: 0xC372, - 33016 - 11905: 0xD0D8, - 33017 - 11905: 0xC373, - 33018 - 11905: 0xB0B7, - 33019 - 11905: 0xC374, - 33020 - 11905: 0xEBDD, - 33021 - 11905: 0xC4DC, - 33022 - 11905: 0xC375, - 33023 - 11905: 0xC376, - 33024 - 11905: 0xC377, - 33025 - 11905: 0xC378, - 33026 - 11905: 0xD6AC, - 33027 - 11905: 0xC379, - 33028 - 11905: 0xC37A, - 33029 - 11905: 0xC37B, - 33030 - 11905: 0xB4E0, - 33031 - 11905: 0xC37C, - 33032 - 11905: 0xC37D, - 33033 - 11905: 0xC2F6, - 33034 - 11905: 0xBCB9, - 33035 - 11905: 0xC37E, - 33036 - 11905: 0xC380, - 33037 - 11905: 0xEBDA, - 33038 - 11905: 0xEBDB, - 33039 - 11905: 0xD4E0, - 33040 - 11905: 0xC6EA, - 33041 - 11905: 0xC4D4, - 33042 - 11905: 0xEBDF, - 33043 - 11905: 0xC5A7, - 33044 - 11905: 0xD9F5, - 33045 - 11905: 0xC381, - 33046 - 11905: 0xB2B1, - 33047 - 11905: 0xC382, - 33048 - 11905: 0xEBE4, - 33049 - 11905: 0xC383, - 33050 - 11905: 0xBDC5, - 33051 - 11905: 0xC384, - 33052 - 11905: 0xC385, - 33053 - 11905: 0xC386, - 33054 - 11905: 0xEBE2, - 33055 - 11905: 0xC387, - 33056 - 11905: 0xC388, - 33057 - 11905: 0xC389, - 33058 - 11905: 0xC38A, - 33059 - 11905: 0xC38B, - 33060 - 11905: 0xC38C, - 33061 - 11905: 0xC38D, - 33062 - 11905: 0xC38E, - 33063 - 11905: 0xC38F, - 33064 - 11905: 0xC390, - 33065 - 11905: 0xC391, - 33066 - 11905: 0xC392, - 33067 - 11905: 0xC393, - 33068 - 11905: 0xEBE3, - 33069 - 11905: 0xC394, - 33070 - 11905: 0xC395, - 33071 - 11905: 0xB8AC, - 33072 - 11905: 0xC396, - 33073 - 11905: 0xCDD1, - 33074 - 11905: 0xEBE5, - 33075 - 11905: 0xC397, - 33076 - 11905: 0xC398, - 33077 - 11905: 0xC399, - 33078 - 11905: 0xEBE1, - 33079 - 11905: 0xC39A, - 33080 - 11905: 0xC1B3, - 33081 - 11905: 0xC39B, - 33082 - 11905: 0xC39C, - 33083 - 11905: 0xC39D, - 33084 - 11905: 0xC39E, - 33085 - 11905: 0xC39F, - 33086 - 11905: 0xC6A2, - 33087 - 11905: 0xC3A0, - 33088 - 11905: 0xC440, - 33089 - 11905: 0xC441, - 33090 - 11905: 0xC442, - 33091 - 11905: 0xC443, - 33092 - 11905: 0xC444, - 33093 - 11905: 0xC445, - 33094 - 11905: 0xCCF3, - 33095 - 11905: 0xC446, - 33096 - 11905: 0xEBE6, - 33097 - 11905: 0xC447, - 33098 - 11905: 0xC0B0, - 33099 - 11905: 0xD2B8, - 33100 - 11905: 0xEBE7, - 33101 - 11905: 0xC448, - 33102 - 11905: 0xC449, - 33103 - 11905: 0xC44A, - 33104 - 11905: 0xB8AF, - 33105 - 11905: 0xB8AD, - 33106 - 11905: 0xC44B, - 33107 - 11905: 0xEBE8, - 33108 - 11905: 0xC7BB, - 33109 - 11905: 0xCDF3, - 33110 - 11905: 0xC44C, - 33111 - 11905: 0xC44D, - 33112 - 11905: 0xC44E, - 33113 - 11905: 0xEBEA, - 33114 - 11905: 0xEBEB, - 33115 - 11905: 0xC44F, - 33116 - 11905: 0xC450, - 33117 - 11905: 0xC451, - 33118 - 11905: 0xC452, - 33119 - 11905: 0xC453, - 33120 - 11905: 0xEBED, - 33121 - 11905: 0xC454, - 33122 - 11905: 0xC455, - 33123 - 11905: 0xC456, - 33124 - 11905: 0xC457, - 33125 - 11905: 0xD0C8, - 33126 - 11905: 0xC458, - 33127 - 11905: 0xEBF2, - 33128 - 11905: 0xC459, - 33129 - 11905: 0xEBEE, - 33130 - 11905: 0xC45A, - 33131 - 11905: 0xC45B, - 33132 - 11905: 0xC45C, - 33133 - 11905: 0xEBF1, - 33134 - 11905: 0xC8F9, - 33135 - 11905: 0xC45D, - 33136 - 11905: 0xD1FC, - 33137 - 11905: 0xEBEC, - 33138 - 11905: 0xC45E, - 33139 - 11905: 0xC45F, - 33140 - 11905: 0xEBE9, - 33141 - 11905: 0xC460, - 33142 - 11905: 0xC461, - 33143 - 11905: 0xC462, - 33144 - 11905: 0xC463, - 33145 - 11905: 0xB8B9, - 33146 - 11905: 0xCFD9, - 33147 - 11905: 0xC4E5, - 33148 - 11905: 0xEBEF, - 33149 - 11905: 0xEBF0, - 33150 - 11905: 0xCCDA, - 33151 - 11905: 0xCDC8, - 33152 - 11905: 0xB0F2, - 33153 - 11905: 0xC464, - 33154 - 11905: 0xEBF6, - 33155 - 11905: 0xC465, - 33156 - 11905: 0xC466, - 33157 - 11905: 0xC467, - 33158 - 11905: 0xC468, - 33159 - 11905: 0xC469, - 33160 - 11905: 0xEBF5, - 33161 - 11905: 0xC46A, - 33162 - 11905: 0xB2B2, - 33163 - 11905: 0xC46B, - 33164 - 11905: 0xC46C, - 33165 - 11905: 0xC46D, - 33166 - 11905: 0xC46E, - 33167 - 11905: 0xB8E0, - 33168 - 11905: 0xC46F, - 33169 - 11905: 0xEBF7, - 33170 - 11905: 0xC470, - 33171 - 11905: 0xC471, - 33172 - 11905: 0xC472, - 33173 - 11905: 0xC473, - 33174 - 11905: 0xC474, - 33175 - 11905: 0xC475, - 33176 - 11905: 0xB1EC, - 33177 - 11905: 0xC476, - 33178 - 11905: 0xC477, - 33179 - 11905: 0xCCC5, - 33180 - 11905: 0xC4A4, - 33181 - 11905: 0xCFA5, - 33182 - 11905: 0xC478, - 33183 - 11905: 0xC479, - 33184 - 11905: 0xC47A, - 33185 - 11905: 0xC47B, - 33186 - 11905: 0xC47C, - 33187 - 11905: 0xEBF9, - 33188 - 11905: 0xC47D, - 33189 - 11905: 0xC47E, - 33190 - 11905: 0xECA2, - 33191 - 11905: 0xC480, - 33192 - 11905: 0xC5F2, - 33193 - 11905: 0xC481, - 33194 - 11905: 0xEBFA, - 33195 - 11905: 0xC482, - 33196 - 11905: 0xC483, - 33197 - 11905: 0xC484, - 33198 - 11905: 0xC485, - 33199 - 11905: 0xC486, - 33200 - 11905: 0xC487, - 33201 - 11905: 0xC488, - 33202 - 11905: 0xC489, - 33203 - 11905: 0xC9C5, - 33204 - 11905: 0xC48A, - 33205 - 11905: 0xC48B, - 33206 - 11905: 0xC48C, - 33207 - 11905: 0xC48D, - 33208 - 11905: 0xC48E, - 33209 - 11905: 0xC48F, - 33210 - 11905: 0xE2DF, - 33211 - 11905: 0xEBFE, - 33212 - 11905: 0xC490, - 33213 - 11905: 0xC491, - 33214 - 11905: 0xC492, - 33215 - 11905: 0xC493, - 33216 - 11905: 0xCDCE, - 33217 - 11905: 0xECA1, - 33218 - 11905: 0xB1DB, - 33219 - 11905: 0xD3B7, - 33220 - 11905: 0xC494, - 33221 - 11905: 0xC495, - 33222 - 11905: 0xD2DC, - 33223 - 11905: 0xC496, - 33224 - 11905: 0xC497, - 33225 - 11905: 0xC498, - 33226 - 11905: 0xEBFD, - 33227 - 11905: 0xC499, - 33228 - 11905: 0xEBFB, - 33229 - 11905: 0xC49A, - 33230 - 11905: 0xC49B, - 33231 - 11905: 0xC49C, - 33232 - 11905: 0xC49D, - 33233 - 11905: 0xC49E, - 33234 - 11905: 0xC49F, - 33235 - 11905: 0xC4A0, - 33236 - 11905: 0xC540, - 33237 - 11905: 0xC541, - 33238 - 11905: 0xC542, - 33239 - 11905: 0xC543, - 33240 - 11905: 0xC544, - 33241 - 11905: 0xC545, - 33242 - 11905: 0xC546, - 33243 - 11905: 0xC547, - 33244 - 11905: 0xC548, - 33245 - 11905: 0xC549, - 33246 - 11905: 0xC54A, - 33247 - 11905: 0xC54B, - 33248 - 11905: 0xC54C, - 33249 - 11905: 0xC54D, - 33250 - 11905: 0xC54E, - 33251 - 11905: 0xB3BC, - 33252 - 11905: 0xC54F, - 33253 - 11905: 0xC550, - 33254 - 11905: 0xC551, - 33255 - 11905: 0xEAB0, - 33256 - 11905: 0xC552, - 33257 - 11905: 0xC553, - 33258 - 11905: 0xD7D4, - 33259 - 11905: 0xC554, - 33260 - 11905: 0xF4AB, - 33261 - 11905: 0xB3F4, - 33262 - 11905: 0xC555, - 33263 - 11905: 0xC556, - 33264 - 11905: 0xC557, - 33265 - 11905: 0xC558, - 33266 - 11905: 0xC559, - 33267 - 11905: 0xD6C1, - 33268 - 11905: 0xD6C2, - 33269 - 11905: 0xC55A, - 33270 - 11905: 0xC55B, - 33271 - 11905: 0xC55C, - 33272 - 11905: 0xC55D, - 33273 - 11905: 0xC55E, - 33274 - 11905: 0xC55F, - 33275 - 11905: 0xD5E9, - 33276 - 11905: 0xBECA, - 33277 - 11905: 0xC560, - 33278 - 11905: 0xF4A7, - 33279 - 11905: 0xC561, - 33280 - 11905: 0xD2A8, - 33281 - 11905: 0xF4A8, - 33282 - 11905: 0xF4A9, - 33283 - 11905: 0xC562, - 33284 - 11905: 0xF4AA, - 33285 - 11905: 0xBECB, - 33286 - 11905: 0xD3DF, - 33287 - 11905: 0xC563, - 33288 - 11905: 0xC564, - 33289 - 11905: 0xC565, - 33290 - 11905: 0xC566, - 33291 - 11905: 0xC567, - 33292 - 11905: 0xC9E0, - 33293 - 11905: 0xC9E1, - 33294 - 11905: 0xC568, - 33295 - 11905: 0xC569, - 33296 - 11905: 0xF3C2, - 33297 - 11905: 0xC56A, - 33298 - 11905: 0xCAE6, - 33299 - 11905: 0xC56B, - 33300 - 11905: 0xCCF2, - 33301 - 11905: 0xC56C, - 33302 - 11905: 0xC56D, - 33303 - 11905: 0xC56E, - 33304 - 11905: 0xC56F, - 33305 - 11905: 0xC570, - 33306 - 11905: 0xC571, - 33307 - 11905: 0xE2B6, - 33308 - 11905: 0xCBB4, - 33309 - 11905: 0xC572, - 33310 - 11905: 0xCEE8, - 33311 - 11905: 0xD6DB, - 33312 - 11905: 0xC573, - 33313 - 11905: 0xF4AD, - 33314 - 11905: 0xF4AE, - 33315 - 11905: 0xF4AF, - 33316 - 11905: 0xC574, - 33317 - 11905: 0xC575, - 33318 - 11905: 0xC576, - 33319 - 11905: 0xC577, - 33320 - 11905: 0xF4B2, - 33321 - 11905: 0xC578, - 33322 - 11905: 0xBABD, - 33323 - 11905: 0xF4B3, - 33324 - 11905: 0xB0E3, - 33325 - 11905: 0xF4B0, - 33326 - 11905: 0xC579, - 33327 - 11905: 0xF4B1, - 33328 - 11905: 0xBDA2, - 33329 - 11905: 0xB2D5, - 33330 - 11905: 0xC57A, - 33331 - 11905: 0xF4B6, - 33332 - 11905: 0xF4B7, - 33333 - 11905: 0xB6E6, - 33334 - 11905: 0xB2B0, - 33335 - 11905: 0xCFCF, - 33336 - 11905: 0xF4B4, - 33337 - 11905: 0xB4AC, - 33338 - 11905: 0xC57B, - 33339 - 11905: 0xF4B5, - 33340 - 11905: 0xC57C, - 33341 - 11905: 0xC57D, - 33342 - 11905: 0xF4B8, - 33343 - 11905: 0xC57E, - 33344 - 11905: 0xC580, - 33345 - 11905: 0xC581, - 33346 - 11905: 0xC582, - 33347 - 11905: 0xC583, - 33348 - 11905: 0xF4B9, - 33349 - 11905: 0xC584, - 33350 - 11905: 0xC585, - 33351 - 11905: 0xCDA7, - 33352 - 11905: 0xC586, - 33353 - 11905: 0xF4BA, - 33354 - 11905: 0xC587, - 33355 - 11905: 0xF4BB, - 33356 - 11905: 0xC588, - 33357 - 11905: 0xC589, - 33358 - 11905: 0xC58A, - 33359 - 11905: 0xF4BC, - 33360 - 11905: 0xC58B, - 33361 - 11905: 0xC58C, - 33362 - 11905: 0xC58D, - 33363 - 11905: 0xC58E, - 33364 - 11905: 0xC58F, - 33365 - 11905: 0xC590, - 33366 - 11905: 0xC591, - 33367 - 11905: 0xC592, - 33368 - 11905: 0xCBD2, - 33369 - 11905: 0xC593, - 33370 - 11905: 0xF4BD, - 33371 - 11905: 0xC594, - 33372 - 11905: 0xC595, - 33373 - 11905: 0xC596, - 33374 - 11905: 0xC597, - 33375 - 11905: 0xF4BE, - 33376 - 11905: 0xC598, - 33377 - 11905: 0xC599, - 33378 - 11905: 0xC59A, - 33379 - 11905: 0xC59B, - 33380 - 11905: 0xC59C, - 33381 - 11905: 0xC59D, - 33382 - 11905: 0xC59E, - 33383 - 11905: 0xC59F, - 33384 - 11905: 0xF4BF, - 33385 - 11905: 0xC5A0, - 33386 - 11905: 0xC640, - 33387 - 11905: 0xC641, - 33388 - 11905: 0xC642, - 33389 - 11905: 0xC643, - 33390 - 11905: 0xF4DE, - 33391 - 11905: 0xC1BC, - 33392 - 11905: 0xBCE8, - 33393 - 11905: 0xC644, - 33394 - 11905: 0xC9AB, - 33395 - 11905: 0xD1DE, - 33396 - 11905: 0xE5F5, - 33397 - 11905: 0xC645, - 33398 - 11905: 0xC646, - 33399 - 11905: 0xC647, - 33400 - 11905: 0xC648, - 33401 - 11905: 0xDCB3, - 33402 - 11905: 0xD2D5, - 33403 - 11905: 0xC649, - 33404 - 11905: 0xC64A, - 33405 - 11905: 0xDCB4, - 33406 - 11905: 0xB0AC, - 33407 - 11905: 0xDCB5, - 33408 - 11905: 0xC64B, - 33409 - 11905: 0xC64C, - 33410 - 11905: 0xBDDA, - 33411 - 11905: 0xC64D, - 33412 - 11905: 0xDCB9, - 33413 - 11905: 0xC64E, - 33414 - 11905: 0xC64F, - 33415 - 11905: 0xC650, - 33416 - 11905: 0xD8C2, - 33417 - 11905: 0xC651, - 33418 - 11905: 0xDCB7, - 33419 - 11905: 0xD3F3, - 33420 - 11905: 0xC652, - 33421 - 11905: 0xC9D6, - 33422 - 11905: 0xDCBA, - 33423 - 11905: 0xDCB6, - 33424 - 11905: 0xC653, - 33425 - 11905: 0xDCBB, - 33426 - 11905: 0xC3A2, - 33427 - 11905: 0xC654, - 33428 - 11905: 0xC655, - 33429 - 11905: 0xC656, - 33430 - 11905: 0xC657, - 33431 - 11905: 0xDCBC, - 33432 - 11905: 0xDCC5, - 33433 - 11905: 0xDCBD, - 33434 - 11905: 0xC658, - 33435 - 11905: 0xC659, - 33436 - 11905: 0xCEDF, - 33437 - 11905: 0xD6A5, - 33438 - 11905: 0xC65A, - 33439 - 11905: 0xDCCF, - 33440 - 11905: 0xC65B, - 33441 - 11905: 0xDCCD, - 33442 - 11905: 0xC65C, - 33443 - 11905: 0xC65D, - 33444 - 11905: 0xDCD2, - 33445 - 11905: 0xBDE6, - 33446 - 11905: 0xC2AB, - 33447 - 11905: 0xC65E, - 33448 - 11905: 0xDCB8, - 33449 - 11905: 0xDCCB, - 33450 - 11905: 0xDCCE, - 33451 - 11905: 0xDCBE, - 33452 - 11905: 0xB7D2, - 33453 - 11905: 0xB0C5, - 33454 - 11905: 0xDCC7, - 33455 - 11905: 0xD0BE, - 33456 - 11905: 0xDCC1, - 33457 - 11905: 0xBBA8, - 33458 - 11905: 0xC65F, - 33459 - 11905: 0xB7BC, - 33460 - 11905: 0xDCCC, - 33461 - 11905: 0xC660, - 33462 - 11905: 0xC661, - 33463 - 11905: 0xDCC6, - 33464 - 11905: 0xDCBF, - 33465 - 11905: 0xC7DB, - 33466 - 11905: 0xC662, - 33467 - 11905: 0xC663, - 33468 - 11905: 0xC664, - 33469 - 11905: 0xD1BF, - 33470 - 11905: 0xDCC0, - 33471 - 11905: 0xC665, - 33472 - 11905: 0xC666, - 33473 - 11905: 0xDCCA, - 33474 - 11905: 0xC667, - 33475 - 11905: 0xC668, - 33476 - 11905: 0xDCD0, - 33477 - 11905: 0xC669, - 33478 - 11905: 0xC66A, - 33479 - 11905: 0xCEAD, - 33480 - 11905: 0xDCC2, - 33481 - 11905: 0xC66B, - 33482 - 11905: 0xDCC3, - 33483 - 11905: 0xDCC8, - 33484 - 11905: 0xDCC9, - 33485 - 11905: 0xB2D4, - 33486 - 11905: 0xDCD1, - 33487 - 11905: 0xCBD5, - 33488 - 11905: 0xC66C, - 33489 - 11905: 0xD4B7, - 33490 - 11905: 0xDCDB, - 33491 - 11905: 0xDCDF, - 33492 - 11905: 0xCCA6, - 33493 - 11905: 0xDCE6, - 33494 - 11905: 0xC66D, - 33495 - 11905: 0xC3E7, - 33496 - 11905: 0xDCDC, - 33497 - 11905: 0xC66E, - 33498 - 11905: 0xC66F, - 33499 - 11905: 0xBFC1, - 33500 - 11905: 0xDCD9, - 33501 - 11905: 0xC670, - 33502 - 11905: 0xB0FA, - 33503 - 11905: 0xB9B6, - 33504 - 11905: 0xDCE5, - 33505 - 11905: 0xDCD3, - 33506 - 11905: 0xC671, - 33507 - 11905: 0xDCC4, - 33508 - 11905: 0xDCD6, - 33509 - 11905: 0xC8F4, - 33510 - 11905: 0xBFE0, - 33511 - 11905: 0xC672, - 33512 - 11905: 0xC673, - 33513 - 11905: 0xC674, - 33514 - 11905: 0xC675, - 33515 - 11905: 0xC9BB, - 33516 - 11905: 0xC676, - 33517 - 11905: 0xC677, - 33518 - 11905: 0xC678, - 33519 - 11905: 0xB1BD, - 33520 - 11905: 0xC679, - 33521 - 11905: 0xD3A2, - 33522 - 11905: 0xC67A, - 33523 - 11905: 0xC67B, - 33524 - 11905: 0xDCDA, - 33525 - 11905: 0xC67C, - 33526 - 11905: 0xC67D, - 33527 - 11905: 0xDCD5, - 33528 - 11905: 0xC67E, - 33529 - 11905: 0xC6BB, - 33530 - 11905: 0xC680, - 33531 - 11905: 0xDCDE, - 33532 - 11905: 0xC681, - 33533 - 11905: 0xC682, - 33534 - 11905: 0xC683, - 33535 - 11905: 0xC684, - 33536 - 11905: 0xC685, - 33537 - 11905: 0xD7C2, - 33538 - 11905: 0xC3AF, - 33539 - 11905: 0xB7B6, - 33540 - 11905: 0xC7D1, - 33541 - 11905: 0xC3A9, - 33542 - 11905: 0xDCE2, - 33543 - 11905: 0xDCD8, - 33544 - 11905: 0xDCEB, - 33545 - 11905: 0xDCD4, - 33546 - 11905: 0xC686, - 33547 - 11905: 0xC687, - 33548 - 11905: 0xDCDD, - 33549 - 11905: 0xC688, - 33550 - 11905: 0xBEA5, - 33551 - 11905: 0xDCD7, - 33552 - 11905: 0xC689, - 33553 - 11905: 0xDCE0, - 33554 - 11905: 0xC68A, - 33555 - 11905: 0xC68B, - 33556 - 11905: 0xDCE3, - 33557 - 11905: 0xDCE4, - 33558 - 11905: 0xC68C, - 33559 - 11905: 0xDCF8, - 33560 - 11905: 0xC68D, - 33561 - 11905: 0xC68E, - 33562 - 11905: 0xDCE1, - 33563 - 11905: 0xDDA2, - 33564 - 11905: 0xDCE7, - 33565 - 11905: 0xC68F, - 33566 - 11905: 0xC690, - 33567 - 11905: 0xC691, - 33568 - 11905: 0xC692, - 33569 - 11905: 0xC693, - 33570 - 11905: 0xC694, - 33571 - 11905: 0xC695, - 33572 - 11905: 0xC696, - 33573 - 11905: 0xC697, - 33574 - 11905: 0xC698, - 33575 - 11905: 0xBCEB, - 33576 - 11905: 0xB4C4, - 33577 - 11905: 0xC699, - 33578 - 11905: 0xC69A, - 33579 - 11905: 0xC3A3, - 33580 - 11905: 0xB2E7, - 33581 - 11905: 0xDCFA, - 33582 - 11905: 0xC69B, - 33583 - 11905: 0xDCF2, - 33584 - 11905: 0xC69C, - 33585 - 11905: 0xDCEF, - 33586 - 11905: 0xC69D, - 33587 - 11905: 0xDCFC, - 33588 - 11905: 0xDCEE, - 33589 - 11905: 0xD2F0, - 33590 - 11905: 0xB2E8, - 33591 - 11905: 0xC69E, - 33592 - 11905: 0xC8D7, - 33593 - 11905: 0xC8E3, - 33594 - 11905: 0xDCFB, - 33595 - 11905: 0xC69F, - 33596 - 11905: 0xDCED, - 33597 - 11905: 0xC6A0, - 33598 - 11905: 0xC740, - 33599 - 11905: 0xC741, - 33600 - 11905: 0xDCF7, - 33601 - 11905: 0xC742, - 33602 - 11905: 0xC743, - 33603 - 11905: 0xDCF5, - 33604 - 11905: 0xC744, - 33605 - 11905: 0xC745, - 33606 - 11905: 0xBEA3, - 33607 - 11905: 0xDCF4, - 33608 - 11905: 0xC746, - 33609 - 11905: 0xB2DD, - 33610 - 11905: 0xC747, - 33611 - 11905: 0xC748, - 33612 - 11905: 0xC749, - 33613 - 11905: 0xC74A, - 33614 - 11905: 0xC74B, - 33615 - 11905: 0xDCF3, - 33616 - 11905: 0xBCF6, - 33617 - 11905: 0xDCE8, - 33618 - 11905: 0xBBC4, - 33619 - 11905: 0xC74C, - 33620 - 11905: 0xC0F3, - 33621 - 11905: 0xC74D, - 33622 - 11905: 0xC74E, - 33623 - 11905: 0xC74F, - 33624 - 11905: 0xC750, - 33625 - 11905: 0xC751, - 33626 - 11905: 0xBCD4, - 33627 - 11905: 0xDCE9, - 33628 - 11905: 0xDCEA, - 33629 - 11905: 0xC752, - 33630 - 11905: 0xDCF1, - 33631 - 11905: 0xDCF6, - 33632 - 11905: 0xDCF9, - 33633 - 11905: 0xB5B4, - 33634 - 11905: 0xC753, - 33635 - 11905: 0xC8D9, - 33636 - 11905: 0xBBE7, - 33637 - 11905: 0xDCFE, - 33638 - 11905: 0xDCFD, - 33639 - 11905: 0xD3AB, - 33640 - 11905: 0xDDA1, - 33641 - 11905: 0xDDA3, - 33642 - 11905: 0xDDA5, - 33643 - 11905: 0xD2F1, - 33644 - 11905: 0xDDA4, - 33645 - 11905: 0xDDA6, - 33646 - 11905: 0xDDA7, - 33647 - 11905: 0xD2A9, - 33648 - 11905: 0xC754, - 33649 - 11905: 0xC755, - 33650 - 11905: 0xC756, - 33651 - 11905: 0xC757, - 33652 - 11905: 0xC758, - 33653 - 11905: 0xC759, - 33654 - 11905: 0xC75A, - 33655 - 11905: 0xBAC9, - 33656 - 11905: 0xDDA9, - 33657 - 11905: 0xC75B, - 33658 - 11905: 0xC75C, - 33659 - 11905: 0xDDB6, - 33660 - 11905: 0xDDB1, - 33661 - 11905: 0xDDB4, - 33662 - 11905: 0xC75D, - 33663 - 11905: 0xC75E, - 33664 - 11905: 0xC75F, - 33665 - 11905: 0xC760, - 33666 - 11905: 0xC761, - 33667 - 11905: 0xC762, - 33668 - 11905: 0xC763, - 33669 - 11905: 0xDDB0, - 33670 - 11905: 0xC6CE, - 33671 - 11905: 0xC764, - 33672 - 11905: 0xC765, - 33673 - 11905: 0xC0F2, - 33674 - 11905: 0xC766, - 33675 - 11905: 0xC767, - 33676 - 11905: 0xC768, - 33677 - 11905: 0xC769, - 33678 - 11905: 0xC9AF, - 33679 - 11905: 0xC76A, - 33680 - 11905: 0xC76B, - 33681 - 11905: 0xC76C, - 33682 - 11905: 0xDCEC, - 33683 - 11905: 0xDDAE, - 33684 - 11905: 0xC76D, - 33685 - 11905: 0xC76E, - 33686 - 11905: 0xC76F, - 33687 - 11905: 0xC770, - 33688 - 11905: 0xDDB7, - 33689 - 11905: 0xC771, - 33690 - 11905: 0xC772, - 33691 - 11905: 0xDCF0, - 33692 - 11905: 0xDDAF, - 33693 - 11905: 0xC773, - 33694 - 11905: 0xDDB8, - 33695 - 11905: 0xC774, - 33696 - 11905: 0xDDAC, - 33697 - 11905: 0xC775, - 33698 - 11905: 0xC776, - 33699 - 11905: 0xC777, - 33700 - 11905: 0xC778, - 33701 - 11905: 0xC779, - 33702 - 11905: 0xC77A, - 33703 - 11905: 0xC77B, - 33704 - 11905: 0xDDB9, - 33705 - 11905: 0xDDB3, - 33706 - 11905: 0xDDAD, - 33707 - 11905: 0xC4AA, - 33708 - 11905: 0xC77C, - 33709 - 11905: 0xC77D, - 33710 - 11905: 0xC77E, - 33711 - 11905: 0xC780, - 33712 - 11905: 0xDDA8, - 33713 - 11905: 0xC0B3, - 33714 - 11905: 0xC1AB, - 33715 - 11905: 0xDDAA, - 33716 - 11905: 0xDDAB, - 33717 - 11905: 0xC781, - 33718 - 11905: 0xDDB2, - 33719 - 11905: 0xBBF1, - 33720 - 11905: 0xDDB5, - 33721 - 11905: 0xD3A8, - 33722 - 11905: 0xDDBA, - 33723 - 11905: 0xC782, - 33724 - 11905: 0xDDBB, - 33725 - 11905: 0xC3A7, - 33726 - 11905: 0xC783, - 33727 - 11905: 0xC784, - 33728 - 11905: 0xDDD2, - 33729 - 11905: 0xDDBC, - 33730 - 11905: 0xC785, - 33731 - 11905: 0xC786, - 33732 - 11905: 0xC787, - 33733 - 11905: 0xDDD1, - 33734 - 11905: 0xC788, - 33735 - 11905: 0xB9BD, - 33736 - 11905: 0xC789, - 33737 - 11905: 0xC78A, - 33738 - 11905: 0xBED5, - 33739 - 11905: 0xC78B, - 33740 - 11905: 0xBEFA, - 33741 - 11905: 0xC78C, - 33742 - 11905: 0xC78D, - 33743 - 11905: 0xBACA, - 33744 - 11905: 0xC78E, - 33745 - 11905: 0xC78F, - 33746 - 11905: 0xC790, - 33747 - 11905: 0xC791, - 33748 - 11905: 0xDDCA, - 33749 - 11905: 0xC792, - 33750 - 11905: 0xDDC5, - 33751 - 11905: 0xC793, - 33752 - 11905: 0xDDBF, - 33753 - 11905: 0xC794, - 33754 - 11905: 0xC795, - 33755 - 11905: 0xC796, - 33756 - 11905: 0xB2CB, - 33757 - 11905: 0xDDC3, - 33758 - 11905: 0xC797, - 33759 - 11905: 0xDDCB, - 33760 - 11905: 0xB2A4, - 33761 - 11905: 0xDDD5, - 33762 - 11905: 0xC798, - 33763 - 11905: 0xC799, - 33764 - 11905: 0xC79A, - 33765 - 11905: 0xDDBE, - 33766 - 11905: 0xC79B, - 33767 - 11905: 0xC79C, - 33768 - 11905: 0xC79D, - 33769 - 11905: 0xC6D0, - 33770 - 11905: 0xDDD0, - 33771 - 11905: 0xC79E, - 33772 - 11905: 0xC79F, - 33773 - 11905: 0xC7A0, - 33774 - 11905: 0xC840, - 33775 - 11905: 0xC841, - 33776 - 11905: 0xDDD4, - 33777 - 11905: 0xC1E2, - 33778 - 11905: 0xB7C6, - 33779 - 11905: 0xC842, - 33780 - 11905: 0xC843, - 33781 - 11905: 0xC844, - 33782 - 11905: 0xC845, - 33783 - 11905: 0xC846, - 33784 - 11905: 0xDDCE, - 33785 - 11905: 0xDDCF, - 33786 - 11905: 0xC847, - 33787 - 11905: 0xC848, - 33788 - 11905: 0xC849, - 33789 - 11905: 0xDDC4, - 33790 - 11905: 0xC84A, - 33791 - 11905: 0xC84B, - 33792 - 11905: 0xC84C, - 33793 - 11905: 0xDDBD, - 33794 - 11905: 0xC84D, - 33795 - 11905: 0xDDCD, - 33796 - 11905: 0xCCD1, - 33797 - 11905: 0xC84E, - 33798 - 11905: 0xDDC9, - 33799 - 11905: 0xC84F, - 33800 - 11905: 0xC850, - 33801 - 11905: 0xC851, - 33802 - 11905: 0xC852, - 33803 - 11905: 0xDDC2, - 33804 - 11905: 0xC3C8, - 33805 - 11905: 0xC6BC, - 33806 - 11905: 0xCEAE, - 33807 - 11905: 0xDDCC, - 33808 - 11905: 0xC853, - 33809 - 11905: 0xDDC8, - 33810 - 11905: 0xC854, - 33811 - 11905: 0xC855, - 33812 - 11905: 0xC856, - 33813 - 11905: 0xC857, - 33814 - 11905: 0xC858, - 33815 - 11905: 0xC859, - 33816 - 11905: 0xDDC1, - 33817 - 11905: 0xC85A, - 33818 - 11905: 0xC85B, - 33819 - 11905: 0xC85C, - 33820 - 11905: 0xDDC6, - 33821 - 11905: 0xC2DC, - 33822 - 11905: 0xC85D, - 33823 - 11905: 0xC85E, - 33824 - 11905: 0xC85F, - 33825 - 11905: 0xC860, - 33826 - 11905: 0xC861, - 33827 - 11905: 0xC862, - 33828 - 11905: 0xD3A9, - 33829 - 11905: 0xD3AA, - 33830 - 11905: 0xDDD3, - 33831 - 11905: 0xCFF4, - 33832 - 11905: 0xC8F8, - 33833 - 11905: 0xC863, - 33834 - 11905: 0xC864, - 33835 - 11905: 0xC865, - 33836 - 11905: 0xC866, - 33837 - 11905: 0xC867, - 33838 - 11905: 0xC868, - 33839 - 11905: 0xC869, - 33840 - 11905: 0xC86A, - 33841 - 11905: 0xDDE6, - 33842 - 11905: 0xC86B, - 33843 - 11905: 0xC86C, - 33844 - 11905: 0xC86D, - 33845 - 11905: 0xC86E, - 33846 - 11905: 0xC86F, - 33847 - 11905: 0xC870, - 33848 - 11905: 0xDDC7, - 33849 - 11905: 0xC871, - 33850 - 11905: 0xC872, - 33851 - 11905: 0xC873, - 33852 - 11905: 0xDDE0, - 33853 - 11905: 0xC2E4, - 33854 - 11905: 0xC874, - 33855 - 11905: 0xC875, - 33856 - 11905: 0xC876, - 33857 - 11905: 0xC877, - 33858 - 11905: 0xC878, - 33859 - 11905: 0xC879, - 33860 - 11905: 0xC87A, - 33861 - 11905: 0xC87B, - 33862 - 11905: 0xDDE1, - 33863 - 11905: 0xC87C, - 33864 - 11905: 0xC87D, - 33865 - 11905: 0xC87E, - 33866 - 11905: 0xC880, - 33867 - 11905: 0xC881, - 33868 - 11905: 0xC882, - 33869 - 11905: 0xC883, - 33870 - 11905: 0xC884, - 33871 - 11905: 0xC885, - 33872 - 11905: 0xC886, - 33873 - 11905: 0xDDD7, - 33874 - 11905: 0xC887, - 33875 - 11905: 0xC888, - 33876 - 11905: 0xC889, - 33877 - 11905: 0xC88A, - 33878 - 11905: 0xC88B, - 33879 - 11905: 0xD6F8, - 33880 - 11905: 0xC88C, - 33881 - 11905: 0xDDD9, - 33882 - 11905: 0xDDD8, - 33883 - 11905: 0xB8F0, - 33884 - 11905: 0xDDD6, - 33885 - 11905: 0xC88D, - 33886 - 11905: 0xC88E, - 33887 - 11905: 0xC88F, - 33888 - 11905: 0xC890, - 33889 - 11905: 0xC6CF, - 33890 - 11905: 0xC891, - 33891 - 11905: 0xB6AD, - 33892 - 11905: 0xC892, - 33893 - 11905: 0xC893, - 33894 - 11905: 0xC894, - 33895 - 11905: 0xC895, - 33896 - 11905: 0xC896, - 33897 - 11905: 0xDDE2, - 33898 - 11905: 0xC897, - 33899 - 11905: 0xBAF9, - 33900 - 11905: 0xD4E1, - 33901 - 11905: 0xDDE7, - 33902 - 11905: 0xC898, - 33903 - 11905: 0xC899, - 33904 - 11905: 0xC89A, - 33905 - 11905: 0xB4D0, - 33906 - 11905: 0xC89B, - 33907 - 11905: 0xDDDA, - 33908 - 11905: 0xC89C, - 33909 - 11905: 0xBFFB, - 33910 - 11905: 0xDDE3, - 33911 - 11905: 0xC89D, - 33912 - 11905: 0xDDDF, - 33913 - 11905: 0xC89E, - 33914 - 11905: 0xDDDD, - 33915 - 11905: 0xC89F, - 33916 - 11905: 0xC8A0, - 33917 - 11905: 0xC940, - 33918 - 11905: 0xC941, - 33919 - 11905: 0xC942, - 33920 - 11905: 0xC943, - 33921 - 11905: 0xC944, - 33922 - 11905: 0xB5D9, - 33923 - 11905: 0xC945, - 33924 - 11905: 0xC946, - 33925 - 11905: 0xC947, - 33926 - 11905: 0xC948, - 33927 - 11905: 0xDDDB, - 33928 - 11905: 0xDDDC, - 33929 - 11905: 0xDDDE, - 33930 - 11905: 0xC949, - 33931 - 11905: 0xBDAF, - 33932 - 11905: 0xDDE4, - 33933 - 11905: 0xC94A, - 33934 - 11905: 0xDDE5, - 33935 - 11905: 0xC94B, - 33936 - 11905: 0xC94C, - 33937 - 11905: 0xC94D, - 33938 - 11905: 0xC94E, - 33939 - 11905: 0xC94F, - 33940 - 11905: 0xC950, - 33941 - 11905: 0xC951, - 33942 - 11905: 0xC952, - 33943 - 11905: 0xDDF5, - 33944 - 11905: 0xC953, - 33945 - 11905: 0xC3C9, - 33946 - 11905: 0xC954, - 33947 - 11905: 0xC955, - 33948 - 11905: 0xCBE2, - 33949 - 11905: 0xC956, - 33950 - 11905: 0xC957, - 33951 - 11905: 0xC958, - 33952 - 11905: 0xC959, - 33953 - 11905: 0xDDF2, - 33954 - 11905: 0xC95A, - 33955 - 11905: 0xC95B, - 33956 - 11905: 0xC95C, - 33957 - 11905: 0xC95D, - 33958 - 11905: 0xC95E, - 33959 - 11905: 0xC95F, - 33960 - 11905: 0xC960, - 33961 - 11905: 0xC961, - 33962 - 11905: 0xC962, - 33963 - 11905: 0xC963, - 33964 - 11905: 0xC964, - 33965 - 11905: 0xC965, - 33966 - 11905: 0xC966, - 33967 - 11905: 0xD8E1, - 33968 - 11905: 0xC967, - 33969 - 11905: 0xC968, - 33970 - 11905: 0xC6D1, - 33971 - 11905: 0xC969, - 33972 - 11905: 0xDDF4, - 33973 - 11905: 0xC96A, - 33974 - 11905: 0xC96B, - 33975 - 11905: 0xC96C, - 33976 - 11905: 0xD5F4, - 33977 - 11905: 0xDDF3, - 33978 - 11905: 0xDDF0, - 33979 - 11905: 0xC96D, - 33980 - 11905: 0xC96E, - 33981 - 11905: 0xDDEC, - 33982 - 11905: 0xC96F, - 33983 - 11905: 0xDDEF, - 33984 - 11905: 0xC970, - 33985 - 11905: 0xDDE8, - 33986 - 11905: 0xC971, - 33987 - 11905: 0xC972, - 33988 - 11905: 0xD0EE, - 33989 - 11905: 0xC973, - 33990 - 11905: 0xC974, - 33991 - 11905: 0xC975, - 33992 - 11905: 0xC976, - 33993 - 11905: 0xC8D8, - 33994 - 11905: 0xDDEE, - 33995 - 11905: 0xC977, - 33996 - 11905: 0xC978, - 33997 - 11905: 0xDDE9, - 33998 - 11905: 0xC979, - 33999 - 11905: 0xC97A, - 34000 - 11905: 0xDDEA, - 34001 - 11905: 0xCBF2, - 34002 - 11905: 0xC97B, - 34003 - 11905: 0xDDED, - 34004 - 11905: 0xC97C, - 34005 - 11905: 0xC97D, - 34006 - 11905: 0xB1CD, - 34007 - 11905: 0xC97E, - 34008 - 11905: 0xC980, - 34009 - 11905: 0xC981, - 34010 - 11905: 0xC982, - 34011 - 11905: 0xC983, - 34012 - 11905: 0xC984, - 34013 - 11905: 0xC0B6, - 34014 - 11905: 0xC985, - 34015 - 11905: 0xBCBB, - 34016 - 11905: 0xDDF1, - 34017 - 11905: 0xC986, - 34018 - 11905: 0xC987, - 34019 - 11905: 0xDDF7, - 34020 - 11905: 0xC988, - 34021 - 11905: 0xDDF6, - 34022 - 11905: 0xDDEB, - 34023 - 11905: 0xC989, - 34024 - 11905: 0xC98A, - 34025 - 11905: 0xC98B, - 34026 - 11905: 0xC98C, - 34027 - 11905: 0xC98D, - 34028 - 11905: 0xC5EE, - 34029 - 11905: 0xC98E, - 34030 - 11905: 0xC98F, - 34031 - 11905: 0xC990, - 34032 - 11905: 0xDDFB, - 34033 - 11905: 0xC991, - 34034 - 11905: 0xC992, - 34035 - 11905: 0xC993, - 34036 - 11905: 0xC994, - 34037 - 11905: 0xC995, - 34038 - 11905: 0xC996, - 34039 - 11905: 0xC997, - 34040 - 11905: 0xC998, - 34041 - 11905: 0xC999, - 34042 - 11905: 0xC99A, - 34043 - 11905: 0xC99B, - 34044 - 11905: 0xDEA4, - 34045 - 11905: 0xC99C, - 34046 - 11905: 0xC99D, - 34047 - 11905: 0xDEA3, - 34048 - 11905: 0xC99E, - 34049 - 11905: 0xC99F, - 34050 - 11905: 0xC9A0, - 34051 - 11905: 0xCA40, - 34052 - 11905: 0xCA41, - 34053 - 11905: 0xCA42, - 34054 - 11905: 0xCA43, - 34055 - 11905: 0xCA44, - 34056 - 11905: 0xCA45, - 34057 - 11905: 0xCA46, - 34058 - 11905: 0xCA47, - 34059 - 11905: 0xCA48, - 34060 - 11905: 0xDDF8, - 34061 - 11905: 0xCA49, - 34062 - 11905: 0xCA4A, - 34063 - 11905: 0xCA4B, - 34064 - 11905: 0xCA4C, - 34065 - 11905: 0xC3EF, - 34066 - 11905: 0xCA4D, - 34067 - 11905: 0xC2FB, - 34068 - 11905: 0xCA4E, - 34069 - 11905: 0xCA4F, - 34070 - 11905: 0xCA50, - 34071 - 11905: 0xD5E1, - 34072 - 11905: 0xCA51, - 34073 - 11905: 0xCA52, - 34074 - 11905: 0xCEB5, - 34075 - 11905: 0xCA53, - 34076 - 11905: 0xCA54, - 34077 - 11905: 0xCA55, - 34078 - 11905: 0xCA56, - 34079 - 11905: 0xDDFD, - 34080 - 11905: 0xCA57, - 34081 - 11905: 0xB2CC, - 34082 - 11905: 0xCA58, - 34083 - 11905: 0xCA59, - 34084 - 11905: 0xCA5A, - 34085 - 11905: 0xCA5B, - 34086 - 11905: 0xCA5C, - 34087 - 11905: 0xCA5D, - 34088 - 11905: 0xCA5E, - 34089 - 11905: 0xCA5F, - 34090 - 11905: 0xCA60, - 34091 - 11905: 0xC4E8, - 34092 - 11905: 0xCADF, - 34093 - 11905: 0xCA61, - 34094 - 11905: 0xCA62, - 34095 - 11905: 0xCA63, - 34096 - 11905: 0xCA64, - 34097 - 11905: 0xCA65, - 34098 - 11905: 0xCA66, - 34099 - 11905: 0xCA67, - 34100 - 11905: 0xCA68, - 34101 - 11905: 0xCA69, - 34102 - 11905: 0xCA6A, - 34103 - 11905: 0xC7BE, - 34104 - 11905: 0xDDFA, - 34105 - 11905: 0xDDFC, - 34106 - 11905: 0xDDFE, - 34107 - 11905: 0xDEA2, - 34108 - 11905: 0xB0AA, - 34109 - 11905: 0xB1CE, - 34110 - 11905: 0xCA6B, - 34111 - 11905: 0xCA6C, - 34112 - 11905: 0xCA6D, - 34113 - 11905: 0xCA6E, - 34114 - 11905: 0xCA6F, - 34115 - 11905: 0xDEAC, - 34116 - 11905: 0xCA70, - 34117 - 11905: 0xCA71, - 34118 - 11905: 0xCA72, - 34119 - 11905: 0xCA73, - 34120 - 11905: 0xDEA6, - 34121 - 11905: 0xBDB6, - 34122 - 11905: 0xC8EF, - 34123 - 11905: 0xCA74, - 34124 - 11905: 0xCA75, - 34125 - 11905: 0xCA76, - 34126 - 11905: 0xCA77, - 34127 - 11905: 0xCA78, - 34128 - 11905: 0xCA79, - 34129 - 11905: 0xCA7A, - 34130 - 11905: 0xCA7B, - 34131 - 11905: 0xCA7C, - 34132 - 11905: 0xCA7D, - 34133 - 11905: 0xCA7E, - 34134 - 11905: 0xDEA1, - 34135 - 11905: 0xCA80, - 34136 - 11905: 0xCA81, - 34137 - 11905: 0xDEA5, - 34138 - 11905: 0xCA82, - 34139 - 11905: 0xCA83, - 34140 - 11905: 0xCA84, - 34141 - 11905: 0xCA85, - 34142 - 11905: 0xDEA9, - 34143 - 11905: 0xCA86, - 34144 - 11905: 0xCA87, - 34145 - 11905: 0xCA88, - 34146 - 11905: 0xCA89, - 34147 - 11905: 0xCA8A, - 34148 - 11905: 0xDEA8, - 34149 - 11905: 0xCA8B, - 34150 - 11905: 0xCA8C, - 34151 - 11905: 0xCA8D, - 34152 - 11905: 0xDEA7, - 34153 - 11905: 0xCA8E, - 34154 - 11905: 0xCA8F, - 34155 - 11905: 0xCA90, - 34156 - 11905: 0xCA91, - 34157 - 11905: 0xCA92, - 34158 - 11905: 0xCA93, - 34159 - 11905: 0xCA94, - 34160 - 11905: 0xCA95, - 34161 - 11905: 0xCA96, - 34162 - 11905: 0xDEAD, - 34163 - 11905: 0xCA97, - 34164 - 11905: 0xD4CC, - 34165 - 11905: 0xCA98, - 34166 - 11905: 0xCA99, - 34167 - 11905: 0xCA9A, - 34168 - 11905: 0xCA9B, - 34169 - 11905: 0xDEB3, - 34170 - 11905: 0xDEAA, - 34171 - 11905: 0xDEAE, - 34172 - 11905: 0xCA9C, - 34173 - 11905: 0xCA9D, - 34174 - 11905: 0xC0D9, - 34175 - 11905: 0xCA9E, - 34176 - 11905: 0xCA9F, - 34177 - 11905: 0xCAA0, - 34178 - 11905: 0xCB40, - 34179 - 11905: 0xCB41, - 34180 - 11905: 0xB1A1, - 34181 - 11905: 0xDEB6, - 34182 - 11905: 0xCB42, - 34183 - 11905: 0xDEB1, - 34184 - 11905: 0xCB43, - 34185 - 11905: 0xCB44, - 34186 - 11905: 0xCB45, - 34187 - 11905: 0xCB46, - 34188 - 11905: 0xCB47, - 34189 - 11905: 0xCB48, - 34190 - 11905: 0xCB49, - 34191 - 11905: 0xDEB2, - 34192 - 11905: 0xCB4A, - 34193 - 11905: 0xCB4B, - 34194 - 11905: 0xCB4C, - 34195 - 11905: 0xCB4D, - 34196 - 11905: 0xCB4E, - 34197 - 11905: 0xCB4F, - 34198 - 11905: 0xCB50, - 34199 - 11905: 0xCB51, - 34200 - 11905: 0xCB52, - 34201 - 11905: 0xCB53, - 34202 - 11905: 0xCB54, - 34203 - 11905: 0xD1A6, - 34204 - 11905: 0xDEB5, - 34205 - 11905: 0xCB55, - 34206 - 11905: 0xCB56, - 34207 - 11905: 0xCB57, - 34208 - 11905: 0xCB58, - 34209 - 11905: 0xCB59, - 34210 - 11905: 0xCB5A, - 34211 - 11905: 0xCB5B, - 34212 - 11905: 0xDEAF, - 34213 - 11905: 0xCB5C, - 34214 - 11905: 0xCB5D, - 34215 - 11905: 0xCB5E, - 34216 - 11905: 0xDEB0, - 34217 - 11905: 0xCB5F, - 34218 - 11905: 0xD0BD, - 34219 - 11905: 0xCB60, - 34220 - 11905: 0xCB61, - 34221 - 11905: 0xCB62, - 34222 - 11905: 0xDEB4, - 34223 - 11905: 0xCAED, - 34224 - 11905: 0xDEB9, - 34225 - 11905: 0xCB63, - 34226 - 11905: 0xCB64, - 34227 - 11905: 0xCB65, - 34228 - 11905: 0xCB66, - 34229 - 11905: 0xCB67, - 34230 - 11905: 0xCB68, - 34231 - 11905: 0xDEB8, - 34232 - 11905: 0xCB69, - 34233 - 11905: 0xDEB7, - 34234 - 11905: 0xCB6A, - 34235 - 11905: 0xCB6B, - 34236 - 11905: 0xCB6C, - 34237 - 11905: 0xCB6D, - 34238 - 11905: 0xCB6E, - 34239 - 11905: 0xCB6F, - 34240 - 11905: 0xCB70, - 34241 - 11905: 0xDEBB, - 34242 - 11905: 0xCB71, - 34243 - 11905: 0xCB72, - 34244 - 11905: 0xCB73, - 34245 - 11905: 0xCB74, - 34246 - 11905: 0xCB75, - 34247 - 11905: 0xCB76, - 34248 - 11905: 0xCB77, - 34249 - 11905: 0xBDE5, - 34250 - 11905: 0xCB78, - 34251 - 11905: 0xCB79, - 34252 - 11905: 0xCB7A, - 34253 - 11905: 0xCB7B, - 34254 - 11905: 0xCB7C, - 34255 - 11905: 0xB2D8, - 34256 - 11905: 0xC3EA, - 34257 - 11905: 0xCB7D, - 34258 - 11905: 0xCB7E, - 34259 - 11905: 0xDEBA, - 34260 - 11905: 0xCB80, - 34261 - 11905: 0xC5BA, - 34262 - 11905: 0xCB81, - 34263 - 11905: 0xCB82, - 34264 - 11905: 0xCB83, - 34265 - 11905: 0xCB84, - 34266 - 11905: 0xCB85, - 34267 - 11905: 0xCB86, - 34268 - 11905: 0xDEBC, - 34269 - 11905: 0xCB87, - 34270 - 11905: 0xCB88, - 34271 - 11905: 0xCB89, - 34272 - 11905: 0xCB8A, - 34273 - 11905: 0xCB8B, - 34274 - 11905: 0xCB8C, - 34275 - 11905: 0xCB8D, - 34276 - 11905: 0xCCD9, - 34277 - 11905: 0xCB8E, - 34278 - 11905: 0xCB8F, - 34279 - 11905: 0xCB90, - 34280 - 11905: 0xCB91, - 34281 - 11905: 0xB7AA, - 34282 - 11905: 0xCB92, - 34283 - 11905: 0xCB93, - 34284 - 11905: 0xCB94, - 34285 - 11905: 0xCB95, - 34286 - 11905: 0xCB96, - 34287 - 11905: 0xCB97, - 34288 - 11905: 0xCB98, - 34289 - 11905: 0xCB99, - 34290 - 11905: 0xCB9A, - 34291 - 11905: 0xCB9B, - 34292 - 11905: 0xCB9C, - 34293 - 11905: 0xCB9D, - 34294 - 11905: 0xCB9E, - 34295 - 11905: 0xCB9F, - 34296 - 11905: 0xCBA0, - 34297 - 11905: 0xCC40, - 34298 - 11905: 0xCC41, - 34299 - 11905: 0xD4E5, - 34300 - 11905: 0xCC42, - 34301 - 11905: 0xCC43, - 34302 - 11905: 0xCC44, - 34303 - 11905: 0xDEBD, - 34304 - 11905: 0xCC45, - 34305 - 11905: 0xCC46, - 34306 - 11905: 0xCC47, - 34307 - 11905: 0xCC48, - 34308 - 11905: 0xCC49, - 34309 - 11905: 0xDEBF, - 34310 - 11905: 0xCC4A, - 34311 - 11905: 0xCC4B, - 34312 - 11905: 0xCC4C, - 34313 - 11905: 0xCC4D, - 34314 - 11905: 0xCC4E, - 34315 - 11905: 0xCC4F, - 34316 - 11905: 0xCC50, - 34317 - 11905: 0xCC51, - 34318 - 11905: 0xCC52, - 34319 - 11905: 0xCC53, - 34320 - 11905: 0xCC54, - 34321 - 11905: 0xC4A2, - 34322 - 11905: 0xCC55, - 34323 - 11905: 0xCC56, - 34324 - 11905: 0xCC57, - 34325 - 11905: 0xCC58, - 34326 - 11905: 0xDEC1, - 34327 - 11905: 0xCC59, - 34328 - 11905: 0xCC5A, - 34329 - 11905: 0xCC5B, - 34330 - 11905: 0xCC5C, - 34331 - 11905: 0xCC5D, - 34332 - 11905: 0xCC5E, - 34333 - 11905: 0xCC5F, - 34334 - 11905: 0xCC60, - 34335 - 11905: 0xCC61, - 34336 - 11905: 0xCC62, - 34337 - 11905: 0xCC63, - 34338 - 11905: 0xCC64, - 34339 - 11905: 0xCC65, - 34340 - 11905: 0xCC66, - 34341 - 11905: 0xCC67, - 34342 - 11905: 0xCC68, - 34343 - 11905: 0xDEBE, - 34344 - 11905: 0xCC69, - 34345 - 11905: 0xDEC0, - 34346 - 11905: 0xCC6A, - 34347 - 11905: 0xCC6B, - 34348 - 11905: 0xCC6C, - 34349 - 11905: 0xCC6D, - 34350 - 11905: 0xCC6E, - 34351 - 11905: 0xCC6F, - 34352 - 11905: 0xCC70, - 34353 - 11905: 0xCC71, - 34354 - 11905: 0xCC72, - 34355 - 11905: 0xCC73, - 34356 - 11905: 0xCC74, - 34357 - 11905: 0xCC75, - 34358 - 11905: 0xCC76, - 34359 - 11905: 0xCC77, - 34360 - 11905: 0xD5BA, - 34361 - 11905: 0xCC78, - 34362 - 11905: 0xCC79, - 34363 - 11905: 0xCC7A, - 34364 - 11905: 0xDEC2, - 34365 - 11905: 0xCC7B, - 34366 - 11905: 0xCC7C, - 34367 - 11905: 0xCC7D, - 34368 - 11905: 0xCC7E, - 34369 - 11905: 0xCC80, - 34370 - 11905: 0xCC81, - 34371 - 11905: 0xCC82, - 34372 - 11905: 0xCC83, - 34373 - 11905: 0xCC84, - 34374 - 11905: 0xCC85, - 34375 - 11905: 0xCC86, - 34376 - 11905: 0xCC87, - 34377 - 11905: 0xCC88, - 34378 - 11905: 0xCC89, - 34379 - 11905: 0xCC8A, - 34380 - 11905: 0xCC8B, - 34381 - 11905: 0xF2AE, - 34382 - 11905: 0xBBA2, - 34383 - 11905: 0xC2B2, - 34384 - 11905: 0xC5B0, - 34385 - 11905: 0xC2C7, - 34386 - 11905: 0xCC8C, - 34387 - 11905: 0xCC8D, - 34388 - 11905: 0xF2AF, - 34389 - 11905: 0xCC8E, - 34390 - 11905: 0xCC8F, - 34391 - 11905: 0xCC90, - 34392 - 11905: 0xCC91, - 34393 - 11905: 0xCC92, - 34394 - 11905: 0xD0E9, - 34395 - 11905: 0xCC93, - 34396 - 11905: 0xCC94, - 34397 - 11905: 0xCC95, - 34398 - 11905: 0xD3DD, - 34399 - 11905: 0xCC96, - 34400 - 11905: 0xCC97, - 34401 - 11905: 0xCC98, - 34402 - 11905: 0xEBBD, - 34403 - 11905: 0xCC99, - 34404 - 11905: 0xCC9A, - 34405 - 11905: 0xCC9B, - 34406 - 11905: 0xCC9C, - 34407 - 11905: 0xCC9D, - 34408 - 11905: 0xCC9E, - 34409 - 11905: 0xCC9F, - 34410 - 11905: 0xCCA0, - 34411 - 11905: 0xB3E6, - 34412 - 11905: 0xF2B0, - 34413 - 11905: 0xCD40, - 34414 - 11905: 0xF2B1, - 34415 - 11905: 0xCD41, - 34416 - 11905: 0xCD42, - 34417 - 11905: 0xCAAD, - 34418 - 11905: 0xCD43, - 34419 - 11905: 0xCD44, - 34420 - 11905: 0xCD45, - 34421 - 11905: 0xCD46, - 34422 - 11905: 0xCD47, - 34423 - 11905: 0xCD48, - 34424 - 11905: 0xCD49, - 34425 - 11905: 0xBAE7, - 34426 - 11905: 0xF2B3, - 34427 - 11905: 0xF2B5, - 34428 - 11905: 0xF2B4, - 34429 - 11905: 0xCBE4, - 34430 - 11905: 0xCFBA, - 34431 - 11905: 0xF2B2, - 34432 - 11905: 0xCAB4, - 34433 - 11905: 0xD2CF, - 34434 - 11905: 0xC2EC, - 34435 - 11905: 0xCD4A, - 34436 - 11905: 0xCD4B, - 34437 - 11905: 0xCD4C, - 34438 - 11905: 0xCD4D, - 34439 - 11905: 0xCD4E, - 34440 - 11905: 0xCD4F, - 34441 - 11905: 0xCD50, - 34442 - 11905: 0xCEC3, - 34443 - 11905: 0xF2B8, - 34444 - 11905: 0xB0F6, - 34445 - 11905: 0xF2B7, - 34446 - 11905: 0xCD51, - 34447 - 11905: 0xCD52, - 34448 - 11905: 0xCD53, - 34449 - 11905: 0xCD54, - 34450 - 11905: 0xCD55, - 34451 - 11905: 0xF2BE, - 34452 - 11905: 0xCD56, - 34453 - 11905: 0xB2CF, - 34454 - 11905: 0xCD57, - 34455 - 11905: 0xCD58, - 34456 - 11905: 0xCD59, - 34457 - 11905: 0xCD5A, - 34458 - 11905: 0xCD5B, - 34459 - 11905: 0xCD5C, - 34460 - 11905: 0xD1C1, - 34461 - 11905: 0xF2BA, - 34462 - 11905: 0xCD5D, - 34463 - 11905: 0xCD5E, - 34464 - 11905: 0xCD5F, - 34465 - 11905: 0xCD60, - 34466 - 11905: 0xCD61, - 34467 - 11905: 0xF2BC, - 34468 - 11905: 0xD4E9, - 34469 - 11905: 0xCD62, - 34470 - 11905: 0xCD63, - 34471 - 11905: 0xF2BB, - 34472 - 11905: 0xF2B6, - 34473 - 11905: 0xF2BF, - 34474 - 11905: 0xF2BD, - 34475 - 11905: 0xCD64, - 34476 - 11905: 0xF2B9, - 34477 - 11905: 0xCD65, - 34478 - 11905: 0xCD66, - 34479 - 11905: 0xF2C7, - 34480 - 11905: 0xF2C4, - 34481 - 11905: 0xF2C6, - 34482 - 11905: 0xCD67, - 34483 - 11905: 0xCD68, - 34484 - 11905: 0xF2CA, - 34485 - 11905: 0xF2C2, - 34486 - 11905: 0xF2C0, - 34487 - 11905: 0xCD69, - 34488 - 11905: 0xCD6A, - 34489 - 11905: 0xCD6B, - 34490 - 11905: 0xF2C5, - 34491 - 11905: 0xCD6C, - 34492 - 11905: 0xCD6D, - 34493 - 11905: 0xCD6E, - 34494 - 11905: 0xCD6F, - 34495 - 11905: 0xCD70, - 34496 - 11905: 0xD6FB, - 34497 - 11905: 0xCD71, - 34498 - 11905: 0xCD72, - 34499 - 11905: 0xCD73, - 34500 - 11905: 0xF2C1, - 34501 - 11905: 0xCD74, - 34502 - 11905: 0xC7F9, - 34503 - 11905: 0xC9DF, - 34504 - 11905: 0xCD75, - 34505 - 11905: 0xF2C8, - 34506 - 11905: 0xB9C6, - 34507 - 11905: 0xB5B0, - 34508 - 11905: 0xCD76, - 34509 - 11905: 0xCD77, - 34510 - 11905: 0xF2C3, - 34511 - 11905: 0xF2C9, - 34512 - 11905: 0xF2D0, - 34513 - 11905: 0xF2D6, - 34514 - 11905: 0xCD78, - 34515 - 11905: 0xCD79, - 34516 - 11905: 0xBBD7, - 34517 - 11905: 0xCD7A, - 34518 - 11905: 0xCD7B, - 34519 - 11905: 0xCD7C, - 34520 - 11905: 0xF2D5, - 34521 - 11905: 0xCDDC, - 34522 - 11905: 0xCD7D, - 34523 - 11905: 0xD6EB, - 34524 - 11905: 0xCD7E, - 34525 - 11905: 0xCD80, - 34526 - 11905: 0xF2D2, - 34527 - 11905: 0xF2D4, - 34528 - 11905: 0xCD81, - 34529 - 11905: 0xCD82, - 34530 - 11905: 0xCD83, - 34531 - 11905: 0xCD84, - 34532 - 11905: 0xB8F2, - 34533 - 11905: 0xCD85, - 34534 - 11905: 0xCD86, - 34535 - 11905: 0xCD87, - 34536 - 11905: 0xCD88, - 34537 - 11905: 0xF2CB, - 34538 - 11905: 0xCD89, - 34539 - 11905: 0xCD8A, - 34540 - 11905: 0xCD8B, - 34541 - 11905: 0xF2CE, - 34542 - 11905: 0xC2F9, - 34543 - 11905: 0xCD8C, - 34544 - 11905: 0xD5DD, - 34545 - 11905: 0xF2CC, - 34546 - 11905: 0xF2CD, - 34547 - 11905: 0xF2CF, - 34548 - 11905: 0xF2D3, - 34549 - 11905: 0xCD8D, - 34550 - 11905: 0xCD8E, - 34551 - 11905: 0xCD8F, - 34552 - 11905: 0xF2D9, - 34553 - 11905: 0xD3BC, - 34554 - 11905: 0xCD90, - 34555 - 11905: 0xCD91, - 34556 - 11905: 0xCD92, - 34557 - 11905: 0xCD93, - 34558 - 11905: 0xB6EA, - 34559 - 11905: 0xCD94, - 34560 - 11905: 0xCAF1, - 34561 - 11905: 0xCD95, - 34562 - 11905: 0xB7E4, - 34563 - 11905: 0xF2D7, - 34564 - 11905: 0xCD96, - 34565 - 11905: 0xCD97, - 34566 - 11905: 0xCD98, - 34567 - 11905: 0xF2D8, - 34568 - 11905: 0xF2DA, - 34569 - 11905: 0xF2DD, - 34570 - 11905: 0xF2DB, - 34571 - 11905: 0xCD99, - 34572 - 11905: 0xCD9A, - 34573 - 11905: 0xF2DC, - 34574 - 11905: 0xCD9B, - 34575 - 11905: 0xCD9C, - 34576 - 11905: 0xCD9D, - 34577 - 11905: 0xCD9E, - 34578 - 11905: 0xD1D1, - 34579 - 11905: 0xF2D1, - 34580 - 11905: 0xCD9F, - 34581 - 11905: 0xCDC9, - 34582 - 11905: 0xCDA0, - 34583 - 11905: 0xCECF, - 34584 - 11905: 0xD6A9, - 34585 - 11905: 0xCE40, - 34586 - 11905: 0xF2E3, - 34587 - 11905: 0xCE41, - 34588 - 11905: 0xC3DB, - 34589 - 11905: 0xCE42, - 34590 - 11905: 0xF2E0, - 34591 - 11905: 0xCE43, - 34592 - 11905: 0xCE44, - 34593 - 11905: 0xC0AF, - 34594 - 11905: 0xF2EC, - 34595 - 11905: 0xF2DE, - 34596 - 11905: 0xCE45, - 34597 - 11905: 0xF2E1, - 34598 - 11905: 0xCE46, - 34599 - 11905: 0xCE47, - 34600 - 11905: 0xCE48, - 34601 - 11905: 0xF2E8, - 34602 - 11905: 0xCE49, - 34603 - 11905: 0xCE4A, - 34604 - 11905: 0xCE4B, - 34605 - 11905: 0xCE4C, - 34606 - 11905: 0xF2E2, - 34607 - 11905: 0xCE4D, - 34608 - 11905: 0xCE4E, - 34609 - 11905: 0xF2E7, - 34610 - 11905: 0xCE4F, - 34611 - 11905: 0xCE50, - 34612 - 11905: 0xF2E6, - 34613 - 11905: 0xCE51, - 34614 - 11905: 0xCE52, - 34615 - 11905: 0xF2E9, - 34616 - 11905: 0xCE53, - 34617 - 11905: 0xCE54, - 34618 - 11905: 0xCE55, - 34619 - 11905: 0xF2DF, - 34620 - 11905: 0xCE56, - 34621 - 11905: 0xCE57, - 34622 - 11905: 0xF2E4, - 34623 - 11905: 0xF2EA, - 34624 - 11905: 0xCE58, - 34625 - 11905: 0xCE59, - 34626 - 11905: 0xCE5A, - 34627 - 11905: 0xCE5B, - 34628 - 11905: 0xCE5C, - 34629 - 11905: 0xCE5D, - 34630 - 11905: 0xCE5E, - 34631 - 11905: 0xD3AC, - 34632 - 11905: 0xF2E5, - 34633 - 11905: 0xB2F5, - 34634 - 11905: 0xCE5F, - 34635 - 11905: 0xCE60, - 34636 - 11905: 0xF2F2, - 34637 - 11905: 0xCE61, - 34638 - 11905: 0xD0AB, - 34639 - 11905: 0xCE62, - 34640 - 11905: 0xCE63, - 34641 - 11905: 0xCE64, - 34642 - 11905: 0xCE65, - 34643 - 11905: 0xF2F5, - 34644 - 11905: 0xCE66, - 34645 - 11905: 0xCE67, - 34646 - 11905: 0xCE68, - 34647 - 11905: 0xBBC8, - 34648 - 11905: 0xCE69, - 34649 - 11905: 0xF2F9, - 34650 - 11905: 0xCE6A, - 34651 - 11905: 0xCE6B, - 34652 - 11905: 0xCE6C, - 34653 - 11905: 0xCE6D, - 34654 - 11905: 0xCE6E, - 34655 - 11905: 0xCE6F, - 34656 - 11905: 0xF2F0, - 34657 - 11905: 0xCE70, - 34658 - 11905: 0xCE71, - 34659 - 11905: 0xF2F6, - 34660 - 11905: 0xF2F8, - 34661 - 11905: 0xF2FA, - 34662 - 11905: 0xCE72, - 34663 - 11905: 0xCE73, - 34664 - 11905: 0xCE74, - 34665 - 11905: 0xCE75, - 34666 - 11905: 0xCE76, - 34667 - 11905: 0xCE77, - 34668 - 11905: 0xCE78, - 34669 - 11905: 0xCE79, - 34670 - 11905: 0xF2F3, - 34671 - 11905: 0xCE7A, - 34672 - 11905: 0xF2F1, - 34673 - 11905: 0xCE7B, - 34674 - 11905: 0xCE7C, - 34675 - 11905: 0xCE7D, - 34676 - 11905: 0xBAFB, - 34677 - 11905: 0xCE7E, - 34678 - 11905: 0xB5FB, - 34679 - 11905: 0xCE80, - 34680 - 11905: 0xCE81, - 34681 - 11905: 0xCE82, - 34682 - 11905: 0xCE83, - 34683 - 11905: 0xF2EF, - 34684 - 11905: 0xF2F7, - 34685 - 11905: 0xF2ED, - 34686 - 11905: 0xF2EE, - 34687 - 11905: 0xCE84, - 34688 - 11905: 0xCE85, - 34689 - 11905: 0xCE86, - 34690 - 11905: 0xF2EB, - 34691 - 11905: 0xF3A6, - 34692 - 11905: 0xCE87, - 34693 - 11905: 0xF3A3, - 34694 - 11905: 0xCE88, - 34695 - 11905: 0xCE89, - 34696 - 11905: 0xF3A2, - 34697 - 11905: 0xCE8A, - 34698 - 11905: 0xCE8B, - 34699 - 11905: 0xF2F4, - 34700 - 11905: 0xCE8C, - 34701 - 11905: 0xC8DA, - 34702 - 11905: 0xCE8D, - 34703 - 11905: 0xCE8E, - 34704 - 11905: 0xCE8F, - 34705 - 11905: 0xCE90, - 34706 - 11905: 0xCE91, - 34707 - 11905: 0xF2FB, - 34708 - 11905: 0xCE92, - 34709 - 11905: 0xCE93, - 34710 - 11905: 0xCE94, - 34711 - 11905: 0xF3A5, - 34712 - 11905: 0xCE95, - 34713 - 11905: 0xCE96, - 34714 - 11905: 0xCE97, - 34715 - 11905: 0xCE98, - 34716 - 11905: 0xCE99, - 34717 - 11905: 0xCE9A, - 34718 - 11905: 0xCE9B, - 34719 - 11905: 0xC3F8, - 34720 - 11905: 0xCE9C, - 34721 - 11905: 0xCE9D, - 34722 - 11905: 0xCE9E, - 34723 - 11905: 0xCE9F, - 34724 - 11905: 0xCEA0, - 34725 - 11905: 0xCF40, - 34726 - 11905: 0xCF41, - 34727 - 11905: 0xCF42, - 34728 - 11905: 0xF2FD, - 34729 - 11905: 0xCF43, - 34730 - 11905: 0xCF44, - 34731 - 11905: 0xF3A7, - 34732 - 11905: 0xF3A9, - 34733 - 11905: 0xF3A4, - 34734 - 11905: 0xCF45, - 34735 - 11905: 0xF2FC, - 34736 - 11905: 0xCF46, - 34737 - 11905: 0xCF47, - 34738 - 11905: 0xCF48, - 34739 - 11905: 0xF3AB, - 34740 - 11905: 0xCF49, - 34741 - 11905: 0xF3AA, - 34742 - 11905: 0xCF4A, - 34743 - 11905: 0xCF4B, - 34744 - 11905: 0xCF4C, - 34745 - 11905: 0xCF4D, - 34746 - 11905: 0xC2DD, - 34747 - 11905: 0xCF4E, - 34748 - 11905: 0xCF4F, - 34749 - 11905: 0xF3AE, - 34750 - 11905: 0xCF50, - 34751 - 11905: 0xCF51, - 34752 - 11905: 0xF3B0, - 34753 - 11905: 0xCF52, - 34754 - 11905: 0xCF53, - 34755 - 11905: 0xCF54, - 34756 - 11905: 0xCF55, - 34757 - 11905: 0xCF56, - 34758 - 11905: 0xF3A1, - 34759 - 11905: 0xCF57, - 34760 - 11905: 0xCF58, - 34761 - 11905: 0xCF59, - 34762 - 11905: 0xF3B1, - 34763 - 11905: 0xF3AC, - 34764 - 11905: 0xCF5A, - 34765 - 11905: 0xCF5B, - 34766 - 11905: 0xCF5C, - 34767 - 11905: 0xCF5D, - 34768 - 11905: 0xCF5E, - 34769 - 11905: 0xF3AF, - 34770 - 11905: 0xF2FE, - 34771 - 11905: 0xF3AD, - 34772 - 11905: 0xCF5F, - 34773 - 11905: 0xCF60, - 34774 - 11905: 0xCF61, - 34775 - 11905: 0xCF62, - 34776 - 11905: 0xCF63, - 34777 - 11905: 0xCF64, - 34778 - 11905: 0xCF65, - 34779 - 11905: 0xF3B2, - 34780 - 11905: 0xCF66, - 34781 - 11905: 0xCF67, - 34782 - 11905: 0xCF68, - 34783 - 11905: 0xCF69, - 34784 - 11905: 0xF3B4, - 34785 - 11905: 0xCF6A, - 34786 - 11905: 0xCF6B, - 34787 - 11905: 0xCF6C, - 34788 - 11905: 0xCF6D, - 34789 - 11905: 0xF3A8, - 34790 - 11905: 0xCF6E, - 34791 - 11905: 0xCF6F, - 34792 - 11905: 0xCF70, - 34793 - 11905: 0xCF71, - 34794 - 11905: 0xF3B3, - 34795 - 11905: 0xCF72, - 34796 - 11905: 0xCF73, - 34797 - 11905: 0xCF74, - 34798 - 11905: 0xF3B5, - 34799 - 11905: 0xCF75, - 34800 - 11905: 0xCF76, - 34801 - 11905: 0xCF77, - 34802 - 11905: 0xCF78, - 34803 - 11905: 0xCF79, - 34804 - 11905: 0xCF7A, - 34805 - 11905: 0xCF7B, - 34806 - 11905: 0xCF7C, - 34807 - 11905: 0xCF7D, - 34808 - 11905: 0xCF7E, - 34809 - 11905: 0xD0B7, - 34810 - 11905: 0xCF80, - 34811 - 11905: 0xCF81, - 34812 - 11905: 0xCF82, - 34813 - 11905: 0xCF83, - 34814 - 11905: 0xF3B8, - 34815 - 11905: 0xCF84, - 34816 - 11905: 0xCF85, - 34817 - 11905: 0xCF86, - 34818 - 11905: 0xCF87, - 34819 - 11905: 0xD9F9, - 34820 - 11905: 0xCF88, - 34821 - 11905: 0xCF89, - 34822 - 11905: 0xCF8A, - 34823 - 11905: 0xCF8B, - 34824 - 11905: 0xCF8C, - 34825 - 11905: 0xCF8D, - 34826 - 11905: 0xF3B9, - 34827 - 11905: 0xCF8E, - 34828 - 11905: 0xCF8F, - 34829 - 11905: 0xCF90, - 34830 - 11905: 0xCF91, - 34831 - 11905: 0xCF92, - 34832 - 11905: 0xCF93, - 34833 - 11905: 0xCF94, - 34834 - 11905: 0xCF95, - 34835 - 11905: 0xF3B7, - 34836 - 11905: 0xCF96, - 34837 - 11905: 0xC8E4, - 34838 - 11905: 0xF3B6, - 34839 - 11905: 0xCF97, - 34840 - 11905: 0xCF98, - 34841 - 11905: 0xCF99, - 34842 - 11905: 0xCF9A, - 34843 - 11905: 0xF3BA, - 34844 - 11905: 0xCF9B, - 34845 - 11905: 0xCF9C, - 34846 - 11905: 0xCF9D, - 34847 - 11905: 0xCF9E, - 34848 - 11905: 0xCF9F, - 34849 - 11905: 0xF3BB, - 34850 - 11905: 0xB4C0, - 34851 - 11905: 0xCFA0, - 34852 - 11905: 0xD040, - 34853 - 11905: 0xD041, - 34854 - 11905: 0xD042, - 34855 - 11905: 0xD043, - 34856 - 11905: 0xD044, - 34857 - 11905: 0xD045, - 34858 - 11905: 0xD046, - 34859 - 11905: 0xD047, - 34860 - 11905: 0xD048, - 34861 - 11905: 0xD049, - 34862 - 11905: 0xD04A, - 34863 - 11905: 0xD04B, - 34864 - 11905: 0xD04C, - 34865 - 11905: 0xD04D, - 34866 - 11905: 0xEEC3, - 34867 - 11905: 0xD04E, - 34868 - 11905: 0xD04F, - 34869 - 11905: 0xD050, - 34870 - 11905: 0xD051, - 34871 - 11905: 0xD052, - 34872 - 11905: 0xD053, - 34873 - 11905: 0xF3BC, - 34874 - 11905: 0xD054, - 34875 - 11905: 0xD055, - 34876 - 11905: 0xF3BD, - 34877 - 11905: 0xD056, - 34878 - 11905: 0xD057, - 34879 - 11905: 0xD058, - 34880 - 11905: 0xD1AA, - 34881 - 11905: 0xD059, - 34882 - 11905: 0xD05A, - 34883 - 11905: 0xD05B, - 34884 - 11905: 0xF4AC, - 34885 - 11905: 0xD0C6, - 34886 - 11905: 0xD05C, - 34887 - 11905: 0xD05D, - 34888 - 11905: 0xD05E, - 34889 - 11905: 0xD05F, - 34890 - 11905: 0xD060, - 34891 - 11905: 0xD061, - 34892 - 11905: 0xD0D0, - 34893 - 11905: 0xD1DC, - 34894 - 11905: 0xD062, - 34895 - 11905: 0xD063, - 34896 - 11905: 0xD064, - 34897 - 11905: 0xD065, - 34898 - 11905: 0xD066, - 34899 - 11905: 0xD067, - 34900 - 11905: 0xCFCE, - 34901 - 11905: 0xD068, - 34902 - 11905: 0xD069, - 34903 - 11905: 0xBDD6, - 34904 - 11905: 0xD06A, - 34905 - 11905: 0xD1C3, - 34906 - 11905: 0xD06B, - 34907 - 11905: 0xD06C, - 34908 - 11905: 0xD06D, - 34909 - 11905: 0xD06E, - 34910 - 11905: 0xD06F, - 34911 - 11905: 0xD070, - 34912 - 11905: 0xD071, - 34913 - 11905: 0xBAE2, - 34914 - 11905: 0xE1E9, - 34915 - 11905: 0xD2C2, - 34916 - 11905: 0xF1C2, - 34917 - 11905: 0xB2B9, - 34918 - 11905: 0xD072, - 34919 - 11905: 0xD073, - 34920 - 11905: 0xB1ED, - 34921 - 11905: 0xF1C3, - 34922 - 11905: 0xD074, - 34923 - 11905: 0xC9C0, - 34924 - 11905: 0xB3C4, - 34925 - 11905: 0xD075, - 34926 - 11905: 0xD9F2, - 34927 - 11905: 0xD076, - 34928 - 11905: 0xCBA5, - 34929 - 11905: 0xD077, - 34930 - 11905: 0xF1C4, - 34931 - 11905: 0xD078, - 34932 - 11905: 0xD079, - 34933 - 11905: 0xD07A, - 34934 - 11905: 0xD07B, - 34935 - 11905: 0xD6D4, - 34936 - 11905: 0xD07C, - 34937 - 11905: 0xD07D, - 34938 - 11905: 0xD07E, - 34939 - 11905: 0xD080, - 34940 - 11905: 0xD081, - 34941 - 11905: 0xF1C5, - 34942 - 11905: 0xF4C0, - 34943 - 11905: 0xF1C6, - 34944 - 11905: 0xD082, - 34945 - 11905: 0xD4AC, - 34946 - 11905: 0xF1C7, - 34947 - 11905: 0xD083, - 34948 - 11905: 0xB0C0, - 34949 - 11905: 0xF4C1, - 34950 - 11905: 0xD084, - 34951 - 11905: 0xD085, - 34952 - 11905: 0xF4C2, - 34953 - 11905: 0xD086, - 34954 - 11905: 0xD087, - 34955 - 11905: 0xB4FC, - 34956 - 11905: 0xD088, - 34957 - 11905: 0xC5DB, - 34958 - 11905: 0xD089, - 34959 - 11905: 0xD08A, - 34960 - 11905: 0xD08B, - 34961 - 11905: 0xD08C, - 34962 - 11905: 0xCCBB, - 34963 - 11905: 0xD08D, - 34964 - 11905: 0xD08E, - 34965 - 11905: 0xD08F, - 34966 - 11905: 0xD0E4, - 34967 - 11905: 0xD090, - 34968 - 11905: 0xD091, - 34969 - 11905: 0xD092, - 34970 - 11905: 0xD093, - 34971 - 11905: 0xD094, - 34972 - 11905: 0xCDE0, - 34973 - 11905: 0xD095, - 34974 - 11905: 0xD096, - 34975 - 11905: 0xD097, - 34976 - 11905: 0xD098, - 34977 - 11905: 0xD099, - 34978 - 11905: 0xF1C8, - 34979 - 11905: 0xD09A, - 34980 - 11905: 0xD9F3, - 34981 - 11905: 0xD09B, - 34982 - 11905: 0xD09C, - 34983 - 11905: 0xD09D, - 34984 - 11905: 0xD09E, - 34985 - 11905: 0xD09F, - 34986 - 11905: 0xD0A0, - 34987 - 11905: 0xB1BB, - 34988 - 11905: 0xD140, - 34989 - 11905: 0xCFAE, - 34990 - 11905: 0xD141, - 34991 - 11905: 0xD142, - 34992 - 11905: 0xD143, - 34993 - 11905: 0xB8A4, - 34994 - 11905: 0xD144, - 34995 - 11905: 0xD145, - 34996 - 11905: 0xD146, - 34997 - 11905: 0xD147, - 34998 - 11905: 0xD148, - 34999 - 11905: 0xF1CA, - 35000 - 11905: 0xD149, - 35001 - 11905: 0xD14A, - 35002 - 11905: 0xD14B, - 35003 - 11905: 0xD14C, - 35004 - 11905: 0xF1CB, - 35005 - 11905: 0xD14D, - 35006 - 11905: 0xD14E, - 35007 - 11905: 0xD14F, - 35008 - 11905: 0xD150, - 35009 - 11905: 0xB2C3, - 35010 - 11905: 0xC1D1, - 35011 - 11905: 0xD151, - 35012 - 11905: 0xD152, - 35013 - 11905: 0xD7B0, - 35014 - 11905: 0xF1C9, - 35015 - 11905: 0xD153, - 35016 - 11905: 0xD154, - 35017 - 11905: 0xF1CC, - 35018 - 11905: 0xD155, - 35019 - 11905: 0xD156, - 35020 - 11905: 0xD157, - 35021 - 11905: 0xD158, - 35022 - 11905: 0xF1CE, - 35023 - 11905: 0xD159, - 35024 - 11905: 0xD15A, - 35025 - 11905: 0xD15B, - 35026 - 11905: 0xD9F6, - 35027 - 11905: 0xD15C, - 35028 - 11905: 0xD2E1, - 35029 - 11905: 0xD4A3, - 35030 - 11905: 0xD15D, - 35031 - 11905: 0xD15E, - 35032 - 11905: 0xF4C3, - 35033 - 11905: 0xC8B9, - 35034 - 11905: 0xD15F, - 35035 - 11905: 0xD160, - 35036 - 11905: 0xD161, - 35037 - 11905: 0xD162, - 35038 - 11905: 0xD163, - 35039 - 11905: 0xF4C4, - 35040 - 11905: 0xD164, - 35041 - 11905: 0xD165, - 35042 - 11905: 0xF1CD, - 35043 - 11905: 0xF1CF, - 35044 - 11905: 0xBFE3, - 35045 - 11905: 0xF1D0, - 35046 - 11905: 0xD166, - 35047 - 11905: 0xD167, - 35048 - 11905: 0xF1D4, - 35049 - 11905: 0xD168, - 35050 - 11905: 0xD169, - 35051 - 11905: 0xD16A, - 35052 - 11905: 0xD16B, - 35053 - 11905: 0xD16C, - 35054 - 11905: 0xD16D, - 35055 - 11905: 0xD16E, - 35056 - 11905: 0xF1D6, - 35057 - 11905: 0xF1D1, - 35058 - 11905: 0xD16F, - 35059 - 11905: 0xC9D1, - 35060 - 11905: 0xC5E1, - 35061 - 11905: 0xD170, - 35062 - 11905: 0xD171, - 35063 - 11905: 0xD172, - 35064 - 11905: 0xC2E3, - 35065 - 11905: 0xB9FC, - 35066 - 11905: 0xD173, - 35067 - 11905: 0xD174, - 35068 - 11905: 0xF1D3, - 35069 - 11905: 0xD175, - 35070 - 11905: 0xF1D5, - 35071 - 11905: 0xD176, - 35072 - 11905: 0xD177, - 35073 - 11905: 0xD178, - 35074 - 11905: 0xB9D3, - 35075 - 11905: 0xD179, - 35076 - 11905: 0xD17A, - 35077 - 11905: 0xD17B, - 35078 - 11905: 0xD17C, - 35079 - 11905: 0xD17D, - 35080 - 11905: 0xD17E, - 35081 - 11905: 0xD180, - 35082 - 11905: 0xF1DB, - 35083 - 11905: 0xD181, - 35084 - 11905: 0xD182, - 35085 - 11905: 0xD183, - 35086 - 11905: 0xD184, - 35087 - 11905: 0xD185, - 35088 - 11905: 0xBAD6, - 35089 - 11905: 0xD186, - 35090 - 11905: 0xB0FD, - 35091 - 11905: 0xF1D9, - 35092 - 11905: 0xD187, - 35093 - 11905: 0xD188, - 35094 - 11905: 0xD189, - 35095 - 11905: 0xD18A, - 35096 - 11905: 0xD18B, - 35097 - 11905: 0xF1D8, - 35098 - 11905: 0xF1D2, - 35099 - 11905: 0xF1DA, - 35100 - 11905: 0xD18C, - 35101 - 11905: 0xD18D, - 35102 - 11905: 0xD18E, - 35103 - 11905: 0xD18F, - 35104 - 11905: 0xD190, - 35105 - 11905: 0xF1D7, - 35106 - 11905: 0xD191, - 35107 - 11905: 0xD192, - 35108 - 11905: 0xD193, - 35109 - 11905: 0xC8EC, - 35110 - 11905: 0xD194, - 35111 - 11905: 0xD195, - 35112 - 11905: 0xD196, - 35113 - 11905: 0xD197, - 35114 - 11905: 0xCDCA, - 35115 - 11905: 0xF1DD, - 35116 - 11905: 0xD198, - 35117 - 11905: 0xD199, - 35118 - 11905: 0xD19A, - 35119 - 11905: 0xD19B, - 35120 - 11905: 0xE5BD, - 35121 - 11905: 0xD19C, - 35122 - 11905: 0xD19D, - 35123 - 11905: 0xD19E, - 35124 - 11905: 0xF1DC, - 35125 - 11905: 0xD19F, - 35126 - 11905: 0xF1DE, - 35127 - 11905: 0xD1A0, - 35128 - 11905: 0xD240, - 35129 - 11905: 0xD241, - 35130 - 11905: 0xD242, - 35131 - 11905: 0xD243, - 35132 - 11905: 0xD244, - 35133 - 11905: 0xD245, - 35134 - 11905: 0xD246, - 35135 - 11905: 0xD247, - 35136 - 11905: 0xD248, - 35137 - 11905: 0xF1DF, - 35138 - 11905: 0xD249, - 35139 - 11905: 0xD24A, - 35140 - 11905: 0xCFE5, - 35141 - 11905: 0xD24B, - 35142 - 11905: 0xD24C, - 35143 - 11905: 0xD24D, - 35144 - 11905: 0xD24E, - 35145 - 11905: 0xD24F, - 35146 - 11905: 0xD250, - 35147 - 11905: 0xD251, - 35148 - 11905: 0xD252, - 35149 - 11905: 0xD253, - 35150 - 11905: 0xD254, - 35151 - 11905: 0xD255, - 35152 - 11905: 0xD256, - 35153 - 11905: 0xD257, - 35154 - 11905: 0xD258, - 35155 - 11905: 0xD259, - 35156 - 11905: 0xD25A, - 35157 - 11905: 0xD25B, - 35158 - 11905: 0xD25C, - 35159 - 11905: 0xD25D, - 35160 - 11905: 0xD25E, - 35161 - 11905: 0xD25F, - 35162 - 11905: 0xD260, - 35163 - 11905: 0xD261, - 35164 - 11905: 0xD262, - 35165 - 11905: 0xD263, - 35166 - 11905: 0xF4C5, - 35167 - 11905: 0xBDF3, - 35168 - 11905: 0xD264, - 35169 - 11905: 0xD265, - 35170 - 11905: 0xD266, - 35171 - 11905: 0xD267, - 35172 - 11905: 0xD268, - 35173 - 11905: 0xD269, - 35174 - 11905: 0xF1E0, - 35175 - 11905: 0xD26A, - 35176 - 11905: 0xD26B, - 35177 - 11905: 0xD26C, - 35178 - 11905: 0xD26D, - 35179 - 11905: 0xD26E, - 35180 - 11905: 0xD26F, - 35181 - 11905: 0xD270, - 35182 - 11905: 0xD271, - 35183 - 11905: 0xD272, - 35184 - 11905: 0xD273, - 35185 - 11905: 0xD274, - 35186 - 11905: 0xD275, - 35187 - 11905: 0xD276, - 35188 - 11905: 0xD277, - 35189 - 11905: 0xD278, - 35190 - 11905: 0xD279, - 35191 - 11905: 0xD27A, - 35192 - 11905: 0xD27B, - 35193 - 11905: 0xD27C, - 35194 - 11905: 0xD27D, - 35195 - 11905: 0xF1E1, - 35196 - 11905: 0xD27E, - 35197 - 11905: 0xD280, - 35198 - 11905: 0xD281, - 35199 - 11905: 0xCEF7, - 35200 - 11905: 0xD282, - 35201 - 11905: 0xD2AA, - 35202 - 11905: 0xD283, - 35203 - 11905: 0xF1FB, - 35204 - 11905: 0xD284, - 35205 - 11905: 0xD285, - 35206 - 11905: 0xB8B2, - 35207 - 11905: 0xD286, - 35208 - 11905: 0xD287, - 35209 - 11905: 0xD288, - 35210 - 11905: 0xD289, - 35211 - 11905: 0xD28A, - 35212 - 11905: 0xD28B, - 35213 - 11905: 0xD28C, - 35214 - 11905: 0xD28D, - 35215 - 11905: 0xD28E, - 35216 - 11905: 0xD28F, - 35217 - 11905: 0xD290, - 35218 - 11905: 0xD291, - 35219 - 11905: 0xD292, - 35220 - 11905: 0xD293, - 35221 - 11905: 0xD294, - 35222 - 11905: 0xD295, - 35223 - 11905: 0xD296, - 35224 - 11905: 0xD297, - 35225 - 11905: 0xD298, - 35226 - 11905: 0xD299, - 35227 - 11905: 0xD29A, - 35228 - 11905: 0xD29B, - 35229 - 11905: 0xD29C, - 35230 - 11905: 0xD29D, - 35231 - 11905: 0xD29E, - 35232 - 11905: 0xD29F, - 35233 - 11905: 0xD2A0, - 35234 - 11905: 0xD340, - 35235 - 11905: 0xD341, - 35236 - 11905: 0xD342, - 35237 - 11905: 0xD343, - 35238 - 11905: 0xD344, - 35239 - 11905: 0xD345, - 35240 - 11905: 0xD346, - 35241 - 11905: 0xD347, - 35242 - 11905: 0xD348, - 35243 - 11905: 0xD349, - 35244 - 11905: 0xD34A, - 35245 - 11905: 0xD34B, - 35246 - 11905: 0xD34C, - 35247 - 11905: 0xD34D, - 35248 - 11905: 0xD34E, - 35249 - 11905: 0xD34F, - 35250 - 11905: 0xD350, - 35251 - 11905: 0xD351, - 35252 - 11905: 0xD352, - 35253 - 11905: 0xD353, - 35254 - 11905: 0xD354, - 35255 - 11905: 0xD355, - 35256 - 11905: 0xD356, - 35257 - 11905: 0xD357, - 35258 - 11905: 0xD358, - 35259 - 11905: 0xD359, - 35260 - 11905: 0xD35A, - 35261 - 11905: 0xD35B, - 35262 - 11905: 0xD35C, - 35263 - 11905: 0xD35D, - 35264 - 11905: 0xD35E, - 35265 - 11905: 0xBCFB, - 35266 - 11905: 0xB9DB, - 35267 - 11905: 0xD35F, - 35268 - 11905: 0xB9E6, - 35269 - 11905: 0xC3D9, - 35270 - 11905: 0xCAD3, - 35271 - 11905: 0xEAE8, - 35272 - 11905: 0xC0C0, - 35273 - 11905: 0xBEF5, - 35274 - 11905: 0xEAE9, - 35275 - 11905: 0xEAEA, - 35276 - 11905: 0xEAEB, - 35277 - 11905: 0xD360, - 35278 - 11905: 0xEAEC, - 35279 - 11905: 0xEAED, - 35280 - 11905: 0xEAEE, - 35281 - 11905: 0xEAEF, - 35282 - 11905: 0xBDC7, - 35283 - 11905: 0xD361, - 35284 - 11905: 0xD362, - 35285 - 11905: 0xD363, - 35286 - 11905: 0xF5FB, - 35287 - 11905: 0xD364, - 35288 - 11905: 0xD365, - 35289 - 11905: 0xD366, - 35290 - 11905: 0xF5FD, - 35291 - 11905: 0xD367, - 35292 - 11905: 0xF5FE, - 35293 - 11905: 0xD368, - 35294 - 11905: 0xF5FC, - 35295 - 11905: 0xD369, - 35296 - 11905: 0xD36A, - 35297 - 11905: 0xD36B, - 35298 - 11905: 0xD36C, - 35299 - 11905: 0xBDE2, - 35300 - 11905: 0xD36D, - 35301 - 11905: 0xF6A1, - 35302 - 11905: 0xB4A5, - 35303 - 11905: 0xD36E, - 35304 - 11905: 0xD36F, - 35305 - 11905: 0xD370, - 35306 - 11905: 0xD371, - 35307 - 11905: 0xF6A2, - 35308 - 11905: 0xD372, - 35309 - 11905: 0xD373, - 35310 - 11905: 0xD374, - 35311 - 11905: 0xF6A3, - 35312 - 11905: 0xD375, - 35313 - 11905: 0xD376, - 35314 - 11905: 0xD377, - 35315 - 11905: 0xECB2, - 35316 - 11905: 0xD378, - 35317 - 11905: 0xD379, - 35318 - 11905: 0xD37A, - 35319 - 11905: 0xD37B, - 35320 - 11905: 0xD37C, - 35321 - 11905: 0xD37D, - 35322 - 11905: 0xD37E, - 35323 - 11905: 0xD380, - 35324 - 11905: 0xD381, - 35325 - 11905: 0xD382, - 35326 - 11905: 0xD383, - 35327 - 11905: 0xD384, - 35328 - 11905: 0xD1D4, - 35329 - 11905: 0xD385, - 35330 - 11905: 0xD386, - 35331 - 11905: 0xD387, - 35332 - 11905: 0xD388, - 35333 - 11905: 0xD389, - 35334 - 11905: 0xD38A, - 35335 - 11905: 0xD9EA, - 35336 - 11905: 0xD38B, - 35337 - 11905: 0xD38C, - 35338 - 11905: 0xD38D, - 35339 - 11905: 0xD38E, - 35340 - 11905: 0xD38F, - 35341 - 11905: 0xD390, - 35342 - 11905: 0xD391, - 35343 - 11905: 0xD392, - 35344 - 11905: 0xD393, - 35345 - 11905: 0xD394, - 35346 - 11905: 0xD395, - 35347 - 11905: 0xD396, - 35348 - 11905: 0xD397, - 35349 - 11905: 0xD398, - 35350 - 11905: 0xD399, - 35351 - 11905: 0xD39A, - 35352 - 11905: 0xD39B, - 35353 - 11905: 0xD39C, - 35354 - 11905: 0xD39D, - 35355 - 11905: 0xD39E, - 35356 - 11905: 0xD39F, - 35357 - 11905: 0xD3A0, - 35358 - 11905: 0xD440, - 35359 - 11905: 0xD441, - 35360 - 11905: 0xD442, - 35361 - 11905: 0xD443, - 35362 - 11905: 0xD444, - 35363 - 11905: 0xD445, - 35364 - 11905: 0xD446, - 35365 - 11905: 0xD447, - 35366 - 11905: 0xD448, - 35367 - 11905: 0xD449, - 35368 - 11905: 0xD44A, - 35369 - 11905: 0xD44B, - 35370 - 11905: 0xD44C, - 35371 - 11905: 0xD44D, - 35372 - 11905: 0xD44E, - 35373 - 11905: 0xD44F, - 35374 - 11905: 0xD450, - 35375 - 11905: 0xD451, - 35376 - 11905: 0xD452, - 35377 - 11905: 0xD453, - 35378 - 11905: 0xD454, - 35379 - 11905: 0xD455, - 35380 - 11905: 0xD456, - 35381 - 11905: 0xD457, - 35382 - 11905: 0xD458, - 35383 - 11905: 0xD459, - 35384 - 11905: 0xD45A, - 35385 - 11905: 0xD45B, - 35386 - 11905: 0xD45C, - 35387 - 11905: 0xD45D, - 35388 - 11905: 0xD45E, - 35389 - 11905: 0xD45F, - 35390 - 11905: 0xF6A4, - 35391 - 11905: 0xD460, - 35392 - 11905: 0xD461, - 35393 - 11905: 0xD462, - 35394 - 11905: 0xD463, - 35395 - 11905: 0xD464, - 35396 - 11905: 0xD465, - 35397 - 11905: 0xD466, - 35398 - 11905: 0xD467, - 35399 - 11905: 0xD468, - 35400 - 11905: 0xEEBA, - 35401 - 11905: 0xD469, - 35402 - 11905: 0xD46A, - 35403 - 11905: 0xD46B, - 35404 - 11905: 0xD46C, - 35405 - 11905: 0xD46D, - 35406 - 11905: 0xD46E, - 35407 - 11905: 0xD46F, - 35408 - 11905: 0xD470, - 35409 - 11905: 0xD471, - 35410 - 11905: 0xD472, - 35411 - 11905: 0xD473, - 35412 - 11905: 0xD474, - 35413 - 11905: 0xD475, - 35414 - 11905: 0xD476, - 35415 - 11905: 0xD477, - 35416 - 11905: 0xD478, - 35417 - 11905: 0xD479, - 35418 - 11905: 0xD47A, - 35419 - 11905: 0xD47B, - 35420 - 11905: 0xD47C, - 35421 - 11905: 0xD47D, - 35422 - 11905: 0xD47E, - 35423 - 11905: 0xD480, - 35424 - 11905: 0xD481, - 35425 - 11905: 0xD482, - 35426 - 11905: 0xD483, - 35427 - 11905: 0xD484, - 35428 - 11905: 0xD485, - 35429 - 11905: 0xD486, - 35430 - 11905: 0xD487, - 35431 - 11905: 0xD488, - 35432 - 11905: 0xD489, - 35433 - 11905: 0xD48A, - 35434 - 11905: 0xD48B, - 35435 - 11905: 0xD48C, - 35436 - 11905: 0xD48D, - 35437 - 11905: 0xD48E, - 35438 - 11905: 0xD48F, - 35439 - 11905: 0xD490, - 35440 - 11905: 0xD491, - 35441 - 11905: 0xD492, - 35442 - 11905: 0xD493, - 35443 - 11905: 0xD494, - 35444 - 11905: 0xD495, - 35445 - 11905: 0xD496, - 35446 - 11905: 0xD497, - 35447 - 11905: 0xD498, - 35448 - 11905: 0xD499, - 35449 - 11905: 0xD5B2, - 35450 - 11905: 0xD49A, - 35451 - 11905: 0xD49B, - 35452 - 11905: 0xD49C, - 35453 - 11905: 0xD49D, - 35454 - 11905: 0xD49E, - 35455 - 11905: 0xD49F, - 35456 - 11905: 0xD4A0, - 35457 - 11905: 0xD540, - 35458 - 11905: 0xD541, - 35459 - 11905: 0xD542, - 35460 - 11905: 0xD543, - 35461 - 11905: 0xD544, - 35462 - 11905: 0xD545, - 35463 - 11905: 0xD546, - 35464 - 11905: 0xD547, - 35465 - 11905: 0xD3FE, - 35466 - 11905: 0xCCDC, - 35467 - 11905: 0xD548, - 35468 - 11905: 0xD549, - 35469 - 11905: 0xD54A, - 35470 - 11905: 0xD54B, - 35471 - 11905: 0xD54C, - 35472 - 11905: 0xD54D, - 35473 - 11905: 0xD54E, - 35474 - 11905: 0xD54F, - 35475 - 11905: 0xCAC4, - 35476 - 11905: 0xD550, - 35477 - 11905: 0xD551, - 35478 - 11905: 0xD552, - 35479 - 11905: 0xD553, - 35480 - 11905: 0xD554, - 35481 - 11905: 0xD555, - 35482 - 11905: 0xD556, - 35483 - 11905: 0xD557, - 35484 - 11905: 0xD558, - 35485 - 11905: 0xD559, - 35486 - 11905: 0xD55A, - 35487 - 11905: 0xD55B, - 35488 - 11905: 0xD55C, - 35489 - 11905: 0xD55D, - 35490 - 11905: 0xD55E, - 35491 - 11905: 0xD55F, - 35492 - 11905: 0xD560, - 35493 - 11905: 0xD561, - 35494 - 11905: 0xD562, - 35495 - 11905: 0xD563, - 35496 - 11905: 0xD564, - 35497 - 11905: 0xD565, - 35498 - 11905: 0xD566, - 35499 - 11905: 0xD567, - 35500 - 11905: 0xD568, - 35501 - 11905: 0xD569, - 35502 - 11905: 0xD56A, - 35503 - 11905: 0xD56B, - 35504 - 11905: 0xD56C, - 35505 - 11905: 0xD56D, - 35506 - 11905: 0xD56E, - 35507 - 11905: 0xD56F, - 35508 - 11905: 0xD570, - 35509 - 11905: 0xD571, - 35510 - 11905: 0xD572, - 35511 - 11905: 0xD573, - 35512 - 11905: 0xD574, - 35513 - 11905: 0xD575, - 35514 - 11905: 0xD576, - 35515 - 11905: 0xD577, - 35516 - 11905: 0xD578, - 35517 - 11905: 0xD579, - 35518 - 11905: 0xD57A, - 35519 - 11905: 0xD57B, - 35520 - 11905: 0xD57C, - 35521 - 11905: 0xD57D, - 35522 - 11905: 0xD57E, - 35523 - 11905: 0xD580, - 35524 - 11905: 0xD581, - 35525 - 11905: 0xD582, - 35526 - 11905: 0xD583, - 35527 - 11905: 0xD584, - 35528 - 11905: 0xD585, - 35529 - 11905: 0xD586, - 35530 - 11905: 0xD587, - 35531 - 11905: 0xD588, - 35532 - 11905: 0xD589, - 35533 - 11905: 0xD58A, - 35534 - 11905: 0xD58B, - 35535 - 11905: 0xD58C, - 35536 - 11905: 0xD58D, - 35537 - 11905: 0xD58E, - 35538 - 11905: 0xD58F, - 35539 - 11905: 0xD590, - 35540 - 11905: 0xD591, - 35541 - 11905: 0xD592, - 35542 - 11905: 0xD593, - 35543 - 11905: 0xD594, - 35544 - 11905: 0xD595, - 35545 - 11905: 0xD596, - 35546 - 11905: 0xD597, - 35547 - 11905: 0xD598, - 35548 - 11905: 0xD599, - 35549 - 11905: 0xD59A, - 35550 - 11905: 0xD59B, - 35551 - 11905: 0xD59C, - 35552 - 11905: 0xD59D, - 35553 - 11905: 0xD59E, - 35554 - 11905: 0xD59F, - 35555 - 11905: 0xD5A0, - 35556 - 11905: 0xD640, - 35557 - 11905: 0xD641, - 35558 - 11905: 0xD642, - 35559 - 11905: 0xD643, - 35560 - 11905: 0xD644, - 35561 - 11905: 0xD645, - 35562 - 11905: 0xD646, - 35563 - 11905: 0xD647, - 35564 - 11905: 0xD648, - 35565 - 11905: 0xD649, - 35566 - 11905: 0xD64A, - 35567 - 11905: 0xD64B, - 35568 - 11905: 0xD64C, - 35569 - 11905: 0xD64D, - 35570 - 11905: 0xD64E, - 35571 - 11905: 0xD64F, - 35572 - 11905: 0xD650, - 35573 - 11905: 0xD651, - 35574 - 11905: 0xD652, - 35575 - 11905: 0xD653, - 35576 - 11905: 0xD654, - 35577 - 11905: 0xD655, - 35578 - 11905: 0xD656, - 35579 - 11905: 0xD657, - 35580 - 11905: 0xD658, - 35581 - 11905: 0xD659, - 35582 - 11905: 0xD65A, - 35583 - 11905: 0xD65B, - 35584 - 11905: 0xD65C, - 35585 - 11905: 0xD65D, - 35586 - 11905: 0xD65E, - 35587 - 11905: 0xD65F, - 35588 - 11905: 0xD660, - 35589 - 11905: 0xD661, - 35590 - 11905: 0xD662, - 35591 - 11905: 0xE5C0, - 35592 - 11905: 0xD663, - 35593 - 11905: 0xD664, - 35594 - 11905: 0xD665, - 35595 - 11905: 0xD666, - 35596 - 11905: 0xD667, - 35597 - 11905: 0xD668, - 35598 - 11905: 0xD669, - 35599 - 11905: 0xD66A, - 35600 - 11905: 0xD66B, - 35601 - 11905: 0xD66C, - 35602 - 11905: 0xD66D, - 35603 - 11905: 0xD66E, - 35604 - 11905: 0xD66F, - 35605 - 11905: 0xD670, - 35606 - 11905: 0xD671, - 35607 - 11905: 0xD672, - 35608 - 11905: 0xD673, - 35609 - 11905: 0xD674, - 35610 - 11905: 0xD675, - 35611 - 11905: 0xD676, - 35612 - 11905: 0xD677, - 35613 - 11905: 0xD678, - 35614 - 11905: 0xD679, - 35615 - 11905: 0xD67A, - 35616 - 11905: 0xD67B, - 35617 - 11905: 0xD67C, - 35618 - 11905: 0xD67D, - 35619 - 11905: 0xD67E, - 35620 - 11905: 0xD680, - 35621 - 11905: 0xD681, - 35622 - 11905: 0xF6A5, - 35623 - 11905: 0xD682, - 35624 - 11905: 0xD683, - 35625 - 11905: 0xD684, - 35626 - 11905: 0xD685, - 35627 - 11905: 0xD686, - 35628 - 11905: 0xD687, - 35629 - 11905: 0xD688, - 35630 - 11905: 0xD689, - 35631 - 11905: 0xD68A, - 35632 - 11905: 0xD68B, - 35633 - 11905: 0xD68C, - 35634 - 11905: 0xD68D, - 35635 - 11905: 0xD68E, - 35636 - 11905: 0xD68F, - 35637 - 11905: 0xD690, - 35638 - 11905: 0xD691, - 35639 - 11905: 0xD692, - 35640 - 11905: 0xD693, - 35641 - 11905: 0xD694, - 35642 - 11905: 0xD695, - 35643 - 11905: 0xD696, - 35644 - 11905: 0xD697, - 35645 - 11905: 0xD698, - 35646 - 11905: 0xD699, - 35647 - 11905: 0xD69A, - 35648 - 11905: 0xD69B, - 35649 - 11905: 0xD69C, - 35650 - 11905: 0xD69D, - 35651 - 11905: 0xD69E, - 35652 - 11905: 0xD69F, - 35653 - 11905: 0xD6A0, - 35654 - 11905: 0xD740, - 35655 - 11905: 0xD741, - 35656 - 11905: 0xD742, - 35657 - 11905: 0xD743, - 35658 - 11905: 0xD744, - 35659 - 11905: 0xD745, - 35660 - 11905: 0xD746, - 35661 - 11905: 0xD747, - 35662 - 11905: 0xD748, - 35663 - 11905: 0xD749, - 35664 - 11905: 0xD74A, - 35665 - 11905: 0xD74B, - 35666 - 11905: 0xD74C, - 35667 - 11905: 0xD74D, - 35668 - 11905: 0xD74E, - 35669 - 11905: 0xD74F, - 35670 - 11905: 0xD750, - 35671 - 11905: 0xD751, - 35672 - 11905: 0xD752, - 35673 - 11905: 0xD753, - 35674 - 11905: 0xD754, - 35675 - 11905: 0xD755, - 35676 - 11905: 0xD756, - 35677 - 11905: 0xD757, - 35678 - 11905: 0xD758, - 35679 - 11905: 0xD759, - 35680 - 11905: 0xD75A, - 35681 - 11905: 0xD75B, - 35682 - 11905: 0xD75C, - 35683 - 11905: 0xD75D, - 35684 - 11905: 0xD75E, - 35685 - 11905: 0xD75F, - 35686 - 11905: 0xBEAF, - 35687 - 11905: 0xD760, - 35688 - 11905: 0xD761, - 35689 - 11905: 0xD762, - 35690 - 11905: 0xD763, - 35691 - 11905: 0xD764, - 35692 - 11905: 0xC6A9, - 35693 - 11905: 0xD765, - 35694 - 11905: 0xD766, - 35695 - 11905: 0xD767, - 35696 - 11905: 0xD768, - 35697 - 11905: 0xD769, - 35698 - 11905: 0xD76A, - 35699 - 11905: 0xD76B, - 35700 - 11905: 0xD76C, - 35701 - 11905: 0xD76D, - 35702 - 11905: 0xD76E, - 35703 - 11905: 0xD76F, - 35704 - 11905: 0xD770, - 35705 - 11905: 0xD771, - 35706 - 11905: 0xD772, - 35707 - 11905: 0xD773, - 35708 - 11905: 0xD774, - 35709 - 11905: 0xD775, - 35710 - 11905: 0xD776, - 35711 - 11905: 0xD777, - 35712 - 11905: 0xD778, - 35713 - 11905: 0xD779, - 35714 - 11905: 0xD77A, - 35715 - 11905: 0xD77B, - 35716 - 11905: 0xD77C, - 35717 - 11905: 0xD77D, - 35718 - 11905: 0xD77E, - 35719 - 11905: 0xD780, - 35720 - 11905: 0xD781, - 35721 - 11905: 0xD782, - 35722 - 11905: 0xD783, - 35723 - 11905: 0xD784, - 35724 - 11905: 0xD785, - 35725 - 11905: 0xD786, - 35726 - 11905: 0xD787, - 35727 - 11905: 0xD788, - 35728 - 11905: 0xD789, - 35729 - 11905: 0xD78A, - 35730 - 11905: 0xD78B, - 35731 - 11905: 0xD78C, - 35732 - 11905: 0xD78D, - 35733 - 11905: 0xD78E, - 35734 - 11905: 0xD78F, - 35735 - 11905: 0xD790, - 35736 - 11905: 0xD791, - 35737 - 11905: 0xD792, - 35738 - 11905: 0xD793, - 35739 - 11905: 0xD794, - 35740 - 11905: 0xD795, - 35741 - 11905: 0xD796, - 35742 - 11905: 0xD797, - 35743 - 11905: 0xD798, - 35744 - 11905: 0xDAA5, - 35745 - 11905: 0xBCC6, - 35746 - 11905: 0xB6A9, - 35747 - 11905: 0xB8BC, - 35748 - 11905: 0xC8CF, - 35749 - 11905: 0xBCA5, - 35750 - 11905: 0xDAA6, - 35751 - 11905: 0xDAA7, - 35752 - 11905: 0xCCD6, - 35753 - 11905: 0xC8C3, - 35754 - 11905: 0xDAA8, - 35755 - 11905: 0xC6FD, - 35756 - 11905: 0xD799, - 35757 - 11905: 0xD1B5, - 35758 - 11905: 0xD2E9, - 35759 - 11905: 0xD1B6, - 35760 - 11905: 0xBCC7, - 35761 - 11905: 0xD79A, - 35762 - 11905: 0xBDB2, - 35763 - 11905: 0xBBE4, - 35764 - 11905: 0xDAA9, - 35765 - 11905: 0xDAAA, - 35766 - 11905: 0xD1C8, - 35767 - 11905: 0xDAAB, - 35768 - 11905: 0xD0ED, - 35769 - 11905: 0xB6EF, - 35770 - 11905: 0xC2DB, - 35771 - 11905: 0xD79B, - 35772 - 11905: 0xCBCF, - 35773 - 11905: 0xB7ED, - 35774 - 11905: 0xC9E8, - 35775 - 11905: 0xB7C3, - 35776 - 11905: 0xBEF7, - 35777 - 11905: 0xD6A4, - 35778 - 11905: 0xDAAC, - 35779 - 11905: 0xDAAD, - 35780 - 11905: 0xC6C0, - 35781 - 11905: 0xD7E7, - 35782 - 11905: 0xCAB6, - 35783 - 11905: 0xD79C, - 35784 - 11905: 0xD5A9, - 35785 - 11905: 0xCBDF, - 35786 - 11905: 0xD5EF, - 35787 - 11905: 0xDAAE, - 35788 - 11905: 0xD6DF, - 35789 - 11905: 0xB4CA, - 35790 - 11905: 0xDAB0, - 35791 - 11905: 0xDAAF, - 35792 - 11905: 0xD79D, - 35793 - 11905: 0xD2EB, - 35794 - 11905: 0xDAB1, - 35795 - 11905: 0xDAB2, - 35796 - 11905: 0xDAB3, - 35797 - 11905: 0xCAD4, - 35798 - 11905: 0xDAB4, - 35799 - 11905: 0xCAAB, - 35800 - 11905: 0xDAB5, - 35801 - 11905: 0xDAB6, - 35802 - 11905: 0xB3CF, - 35803 - 11905: 0xD6EF, - 35804 - 11905: 0xDAB7, - 35805 - 11905: 0xBBB0, - 35806 - 11905: 0xB5AE, - 35807 - 11905: 0xDAB8, - 35808 - 11905: 0xDAB9, - 35809 - 11905: 0xB9EE, - 35810 - 11905: 0xD1AF, - 35811 - 11905: 0xD2E8, - 35812 - 11905: 0xDABA, - 35813 - 11905: 0xB8C3, - 35814 - 11905: 0xCFEA, - 35815 - 11905: 0xB2EF, - 35816 - 11905: 0xDABB, - 35817 - 11905: 0xDABC, - 35818 - 11905: 0xD79E, - 35819 - 11905: 0xBDEB, - 35820 - 11905: 0xCEDC, - 35821 - 11905: 0xD3EF, - 35822 - 11905: 0xDABD, - 35823 - 11905: 0xCEF3, - 35824 - 11905: 0xDABE, - 35825 - 11905: 0xD3D5, - 35826 - 11905: 0xBBE5, - 35827 - 11905: 0xDABF, - 35828 - 11905: 0xCBB5, - 35829 - 11905: 0xCBD0, - 35830 - 11905: 0xDAC0, - 35831 - 11905: 0xC7EB, - 35832 - 11905: 0xD6EE, - 35833 - 11905: 0xDAC1, - 35834 - 11905: 0xC5B5, - 35835 - 11905: 0xB6C1, - 35836 - 11905: 0xDAC2, - 35837 - 11905: 0xB7CC, - 35838 - 11905: 0xBFCE, - 35839 - 11905: 0xDAC3, - 35840 - 11905: 0xDAC4, - 35841 - 11905: 0xCBAD, - 35842 - 11905: 0xDAC5, - 35843 - 11905: 0xB5F7, - 35844 - 11905: 0xDAC6, - 35845 - 11905: 0xC1C2, - 35846 - 11905: 0xD7BB, - 35847 - 11905: 0xDAC7, - 35848 - 11905: 0xCCB8, - 35849 - 11905: 0xD79F, - 35850 - 11905: 0xD2EA, - 35851 - 11905: 0xC4B1, - 35852 - 11905: 0xDAC8, - 35853 - 11905: 0xB5FD, - 35854 - 11905: 0xBBD1, - 35855 - 11905: 0xDAC9, - 35856 - 11905: 0xD0B3, - 35857 - 11905: 0xDACA, - 35858 - 11905: 0xDACB, - 35859 - 11905: 0xCEBD, - 35860 - 11905: 0xDACC, - 35861 - 11905: 0xDACD, - 35862 - 11905: 0xDACE, - 35863 - 11905: 0xB2F7, - 35864 - 11905: 0xDAD1, - 35865 - 11905: 0xDACF, - 35866 - 11905: 0xD1E8, - 35867 - 11905: 0xDAD0, - 35868 - 11905: 0xC3D5, - 35869 - 11905: 0xDAD2, - 35870 - 11905: 0xD7A0, - 35871 - 11905: 0xDAD3, - 35872 - 11905: 0xDAD4, - 35873 - 11905: 0xDAD5, - 35874 - 11905: 0xD0BB, - 35875 - 11905: 0xD2A5, - 35876 - 11905: 0xB0F9, - 35877 - 11905: 0xDAD6, - 35878 - 11905: 0xC7AB, - 35879 - 11905: 0xDAD7, - 35880 - 11905: 0xBDF7, - 35881 - 11905: 0xC3A1, - 35882 - 11905: 0xDAD8, - 35883 - 11905: 0xDAD9, - 35884 - 11905: 0xC3FD, - 35885 - 11905: 0xCCB7, - 35886 - 11905: 0xDADA, - 35887 - 11905: 0xDADB, - 35888 - 11905: 0xC0BE, - 35889 - 11905: 0xC6D7, - 35890 - 11905: 0xDADC, - 35891 - 11905: 0xDADD, - 35892 - 11905: 0xC7B4, - 35893 - 11905: 0xDADE, - 35894 - 11905: 0xDADF, - 35895 - 11905: 0xB9C8, - 35896 - 11905: 0xD840, - 35897 - 11905: 0xD841, - 35898 - 11905: 0xD842, - 35899 - 11905: 0xD843, - 35900 - 11905: 0xD844, - 35901 - 11905: 0xD845, - 35902 - 11905: 0xD846, - 35903 - 11905: 0xD847, - 35904 - 11905: 0xD848, - 35905 - 11905: 0xBBED, - 35906 - 11905: 0xD849, - 35907 - 11905: 0xD84A, - 35908 - 11905: 0xD84B, - 35909 - 11905: 0xD84C, - 35910 - 11905: 0xB6B9, - 35911 - 11905: 0xF4F8, - 35912 - 11905: 0xD84D, - 35913 - 11905: 0xF4F9, - 35914 - 11905: 0xD84E, - 35915 - 11905: 0xD84F, - 35916 - 11905: 0xCDE3, - 35917 - 11905: 0xD850, - 35918 - 11905: 0xD851, - 35919 - 11905: 0xD852, - 35920 - 11905: 0xD853, - 35921 - 11905: 0xD854, - 35922 - 11905: 0xD855, - 35923 - 11905: 0xD856, - 35924 - 11905: 0xD857, - 35925 - 11905: 0xF5B9, - 35926 - 11905: 0xD858, - 35927 - 11905: 0xD859, - 35928 - 11905: 0xD85A, - 35929 - 11905: 0xD85B, - 35930 - 11905: 0xEBE0, - 35931 - 11905: 0xD85C, - 35932 - 11905: 0xD85D, - 35933 - 11905: 0xD85E, - 35934 - 11905: 0xD85F, - 35935 - 11905: 0xD860, - 35936 - 11905: 0xD861, - 35937 - 11905: 0xCFF3, - 35938 - 11905: 0xBBBF, - 35939 - 11905: 0xD862, - 35940 - 11905: 0xD863, - 35941 - 11905: 0xD864, - 35942 - 11905: 0xD865, - 35943 - 11905: 0xD866, - 35944 - 11905: 0xD867, - 35945 - 11905: 0xD868, - 35946 - 11905: 0xBAC0, - 35947 - 11905: 0xD4A5, - 35948 - 11905: 0xD869, - 35949 - 11905: 0xD86A, - 35950 - 11905: 0xD86B, - 35951 - 11905: 0xD86C, - 35952 - 11905: 0xD86D, - 35953 - 11905: 0xD86E, - 35954 - 11905: 0xD86F, - 35955 - 11905: 0xE1D9, - 35956 - 11905: 0xD870, - 35957 - 11905: 0xD871, - 35958 - 11905: 0xD872, - 35959 - 11905: 0xD873, - 35960 - 11905: 0xF5F4, - 35961 - 11905: 0xB1AA, - 35962 - 11905: 0xB2F2, - 35963 - 11905: 0xD874, - 35964 - 11905: 0xD875, - 35965 - 11905: 0xD876, - 35966 - 11905: 0xD877, - 35967 - 11905: 0xD878, - 35968 - 11905: 0xD879, - 35969 - 11905: 0xD87A, - 35970 - 11905: 0xF5F5, - 35971 - 11905: 0xD87B, - 35972 - 11905: 0xD87C, - 35973 - 11905: 0xF5F7, - 35974 - 11905: 0xD87D, - 35975 - 11905: 0xD87E, - 35976 - 11905: 0xD880, - 35977 - 11905: 0xBAD1, - 35978 - 11905: 0xF5F6, - 35979 - 11905: 0xD881, - 35980 - 11905: 0xC3B2, - 35981 - 11905: 0xD882, - 35982 - 11905: 0xD883, - 35983 - 11905: 0xD884, - 35984 - 11905: 0xD885, - 35985 - 11905: 0xD886, - 35986 - 11905: 0xD887, - 35987 - 11905: 0xD888, - 35988 - 11905: 0xF5F9, - 35989 - 11905: 0xD889, - 35990 - 11905: 0xD88A, - 35991 - 11905: 0xD88B, - 35992 - 11905: 0xF5F8, - 35993 - 11905: 0xD88C, - 35994 - 11905: 0xD88D, - 35995 - 11905: 0xD88E, - 35996 - 11905: 0xD88F, - 35997 - 11905: 0xD890, - 35998 - 11905: 0xD891, - 35999 - 11905: 0xD892, - 36000 - 11905: 0xD893, - 36001 - 11905: 0xD894, - 36002 - 11905: 0xD895, - 36003 - 11905: 0xD896, - 36004 - 11905: 0xD897, - 36005 - 11905: 0xD898, - 36006 - 11905: 0xD899, - 36007 - 11905: 0xD89A, - 36008 - 11905: 0xD89B, - 36009 - 11905: 0xD89C, - 36010 - 11905: 0xD89D, - 36011 - 11905: 0xD89E, - 36012 - 11905: 0xD89F, - 36013 - 11905: 0xD8A0, - 36014 - 11905: 0xD940, - 36015 - 11905: 0xD941, - 36016 - 11905: 0xD942, - 36017 - 11905: 0xD943, - 36018 - 11905: 0xD944, - 36019 - 11905: 0xD945, - 36020 - 11905: 0xD946, - 36021 - 11905: 0xD947, - 36022 - 11905: 0xD948, - 36023 - 11905: 0xD949, - 36024 - 11905: 0xD94A, - 36025 - 11905: 0xD94B, - 36026 - 11905: 0xD94C, - 36027 - 11905: 0xD94D, - 36028 - 11905: 0xD94E, - 36029 - 11905: 0xD94F, - 36030 - 11905: 0xD950, - 36031 - 11905: 0xD951, - 36032 - 11905: 0xD952, - 36033 - 11905: 0xD953, - 36034 - 11905: 0xD954, - 36035 - 11905: 0xD955, - 36036 - 11905: 0xD956, - 36037 - 11905: 0xD957, - 36038 - 11905: 0xD958, - 36039 - 11905: 0xD959, - 36040 - 11905: 0xD95A, - 36041 - 11905: 0xD95B, - 36042 - 11905: 0xD95C, - 36043 - 11905: 0xD95D, - 36044 - 11905: 0xD95E, - 36045 - 11905: 0xD95F, - 36046 - 11905: 0xD960, - 36047 - 11905: 0xD961, - 36048 - 11905: 0xD962, - 36049 - 11905: 0xD963, - 36050 - 11905: 0xD964, - 36051 - 11905: 0xD965, - 36052 - 11905: 0xD966, - 36053 - 11905: 0xD967, - 36054 - 11905: 0xD968, - 36055 - 11905: 0xD969, - 36056 - 11905: 0xD96A, - 36057 - 11905: 0xD96B, - 36058 - 11905: 0xD96C, - 36059 - 11905: 0xD96D, - 36060 - 11905: 0xD96E, - 36061 - 11905: 0xD96F, - 36062 - 11905: 0xD970, - 36063 - 11905: 0xD971, - 36064 - 11905: 0xD972, - 36065 - 11905: 0xD973, - 36066 - 11905: 0xD974, - 36067 - 11905: 0xD975, - 36068 - 11905: 0xD976, - 36069 - 11905: 0xD977, - 36070 - 11905: 0xD978, - 36071 - 11905: 0xD979, - 36072 - 11905: 0xD97A, - 36073 - 11905: 0xD97B, - 36074 - 11905: 0xD97C, - 36075 - 11905: 0xD97D, - 36076 - 11905: 0xD97E, - 36077 - 11905: 0xD980, - 36078 - 11905: 0xD981, - 36079 - 11905: 0xD982, - 36080 - 11905: 0xD983, - 36081 - 11905: 0xD984, - 36082 - 11905: 0xD985, - 36083 - 11905: 0xD986, - 36084 - 11905: 0xD987, - 36085 - 11905: 0xD988, - 36086 - 11905: 0xD989, - 36087 - 11905: 0xD98A, - 36088 - 11905: 0xD98B, - 36089 - 11905: 0xD98C, - 36090 - 11905: 0xD98D, - 36091 - 11905: 0xD98E, - 36092 - 11905: 0xD98F, - 36093 - 11905: 0xD990, - 36094 - 11905: 0xD991, - 36095 - 11905: 0xD992, - 36096 - 11905: 0xD993, - 36097 - 11905: 0xD994, - 36098 - 11905: 0xD995, - 36099 - 11905: 0xD996, - 36100 - 11905: 0xD997, - 36101 - 11905: 0xD998, - 36102 - 11905: 0xD999, - 36103 - 11905: 0xD99A, - 36104 - 11905: 0xD99B, - 36105 - 11905: 0xD99C, - 36106 - 11905: 0xD99D, - 36107 - 11905: 0xD99E, - 36108 - 11905: 0xD99F, - 36109 - 11905: 0xD9A0, - 36110 - 11905: 0xDA40, - 36111 - 11905: 0xDA41, - 36112 - 11905: 0xDA42, - 36113 - 11905: 0xDA43, - 36114 - 11905: 0xDA44, - 36115 - 11905: 0xDA45, - 36116 - 11905: 0xDA46, - 36117 - 11905: 0xDA47, - 36118 - 11905: 0xDA48, - 36119 - 11905: 0xDA49, - 36120 - 11905: 0xDA4A, - 36121 - 11905: 0xDA4B, - 36122 - 11905: 0xDA4C, - 36123 - 11905: 0xDA4D, - 36124 - 11905: 0xDA4E, - 36125 - 11905: 0xB1B4, - 36126 - 11905: 0xD5EA, - 36127 - 11905: 0xB8BA, - 36128 - 11905: 0xDA4F, - 36129 - 11905: 0xB9B1, - 36130 - 11905: 0xB2C6, - 36131 - 11905: 0xD4F0, - 36132 - 11905: 0xCFCD, - 36133 - 11905: 0xB0DC, - 36134 - 11905: 0xD5CB, - 36135 - 11905: 0xBBF5, - 36136 - 11905: 0xD6CA, - 36137 - 11905: 0xB7B7, - 36138 - 11905: 0xCCB0, - 36139 - 11905: 0xC6B6, - 36140 - 11905: 0xB1E1, - 36141 - 11905: 0xB9BA, - 36142 - 11905: 0xD6FC, - 36143 - 11905: 0xB9E1, - 36144 - 11905: 0xB7A1, - 36145 - 11905: 0xBCFA, - 36146 - 11905: 0xEADA, - 36147 - 11905: 0xEADB, - 36148 - 11905: 0xCCF9, - 36149 - 11905: 0xB9F3, - 36150 - 11905: 0xEADC, - 36151 - 11905: 0xB4FB, - 36152 - 11905: 0xC3B3, - 36153 - 11905: 0xB7D1, - 36154 - 11905: 0xBAD8, - 36155 - 11905: 0xEADD, - 36156 - 11905: 0xD4F4, - 36157 - 11905: 0xEADE, - 36158 - 11905: 0xBCD6, - 36159 - 11905: 0xBBDF, - 36160 - 11905: 0xEADF, - 36161 - 11905: 0xC1DE, - 36162 - 11905: 0xC2B8, - 36163 - 11905: 0xD4DF, - 36164 - 11905: 0xD7CA, - 36165 - 11905: 0xEAE0, - 36166 - 11905: 0xEAE1, - 36167 - 11905: 0xEAE4, - 36168 - 11905: 0xEAE2, - 36169 - 11905: 0xEAE3, - 36170 - 11905: 0xC9DE, - 36171 - 11905: 0xB8B3, - 36172 - 11905: 0xB6C4, - 36173 - 11905: 0xEAE5, - 36174 - 11905: 0xCAEA, - 36175 - 11905: 0xC9CD, - 36176 - 11905: 0xB4CD, - 36177 - 11905: 0xDA50, - 36178 - 11905: 0xDA51, - 36179 - 11905: 0xE2D9, - 36180 - 11905: 0xC5E2, - 36181 - 11905: 0xEAE6, - 36182 - 11905: 0xC0B5, - 36183 - 11905: 0xDA52, - 36184 - 11905: 0xD7B8, - 36185 - 11905: 0xEAE7, - 36186 - 11905: 0xD7AC, - 36187 - 11905: 0xC8FC, - 36188 - 11905: 0xD8D3, - 36189 - 11905: 0xD8CD, - 36190 - 11905: 0xD4DE, - 36191 - 11905: 0xDA53, - 36192 - 11905: 0xD4F9, - 36193 - 11905: 0xC9C4, - 36194 - 11905: 0xD3AE, - 36195 - 11905: 0xB8D3, - 36196 - 11905: 0xB3E0, - 36197 - 11905: 0xDA54, - 36198 - 11905: 0xC9E2, - 36199 - 11905: 0xF4F6, - 36200 - 11905: 0xDA55, - 36201 - 11905: 0xDA56, - 36202 - 11905: 0xDA57, - 36203 - 11905: 0xBAD5, - 36204 - 11905: 0xDA58, - 36205 - 11905: 0xF4F7, - 36206 - 11905: 0xDA59, - 36207 - 11905: 0xDA5A, - 36208 - 11905: 0xD7DF, - 36209 - 11905: 0xDA5B, - 36210 - 11905: 0xDA5C, - 36211 - 11905: 0xF4F1, - 36212 - 11905: 0xB8B0, - 36213 - 11905: 0xD5D4, - 36214 - 11905: 0xB8CF, - 36215 - 11905: 0xC6F0, - 36216 - 11905: 0xDA5D, - 36217 - 11905: 0xDA5E, - 36218 - 11905: 0xDA5F, - 36219 - 11905: 0xDA60, - 36220 - 11905: 0xDA61, - 36221 - 11905: 0xDA62, - 36222 - 11905: 0xDA63, - 36223 - 11905: 0xDA64, - 36224 - 11905: 0xDA65, - 36225 - 11905: 0xB3C3, - 36226 - 11905: 0xDA66, - 36227 - 11905: 0xDA67, - 36228 - 11905: 0xF4F2, - 36229 - 11905: 0xB3AC, - 36230 - 11905: 0xDA68, - 36231 - 11905: 0xDA69, - 36232 - 11905: 0xDA6A, - 36233 - 11905: 0xDA6B, - 36234 - 11905: 0xD4BD, - 36235 - 11905: 0xC7F7, - 36236 - 11905: 0xDA6C, - 36237 - 11905: 0xDA6D, - 36238 - 11905: 0xDA6E, - 36239 - 11905: 0xDA6F, - 36240 - 11905: 0xDA70, - 36241 - 11905: 0xF4F4, - 36242 - 11905: 0xDA71, - 36243 - 11905: 0xDA72, - 36244 - 11905: 0xF4F3, - 36245 - 11905: 0xDA73, - 36246 - 11905: 0xDA74, - 36247 - 11905: 0xDA75, - 36248 - 11905: 0xDA76, - 36249 - 11905: 0xDA77, - 36250 - 11905: 0xDA78, - 36251 - 11905: 0xDA79, - 36252 - 11905: 0xDA7A, - 36253 - 11905: 0xDA7B, - 36254 - 11905: 0xDA7C, - 36255 - 11905: 0xCCCB, - 36256 - 11905: 0xDA7D, - 36257 - 11905: 0xDA7E, - 36258 - 11905: 0xDA80, - 36259 - 11905: 0xC8A4, - 36260 - 11905: 0xDA81, - 36261 - 11905: 0xDA82, - 36262 - 11905: 0xDA83, - 36263 - 11905: 0xDA84, - 36264 - 11905: 0xDA85, - 36265 - 11905: 0xDA86, - 36266 - 11905: 0xDA87, - 36267 - 11905: 0xDA88, - 36268 - 11905: 0xDA89, - 36269 - 11905: 0xDA8A, - 36270 - 11905: 0xDA8B, - 36271 - 11905: 0xDA8C, - 36272 - 11905: 0xDA8D, - 36273 - 11905: 0xF4F5, - 36274 - 11905: 0xDA8E, - 36275 - 11905: 0xD7E3, - 36276 - 11905: 0xC5BF, - 36277 - 11905: 0xF5C0, - 36278 - 11905: 0xDA8F, - 36279 - 11905: 0xDA90, - 36280 - 11905: 0xF5BB, - 36281 - 11905: 0xDA91, - 36282 - 11905: 0xF5C3, - 36283 - 11905: 0xDA92, - 36284 - 11905: 0xF5C2, - 36285 - 11905: 0xDA93, - 36286 - 11905: 0xD6BA, - 36287 - 11905: 0xF5C1, - 36288 - 11905: 0xDA94, - 36289 - 11905: 0xDA95, - 36290 - 11905: 0xDA96, - 36291 - 11905: 0xD4BE, - 36292 - 11905: 0xF5C4, - 36293 - 11905: 0xDA97, - 36294 - 11905: 0xF5CC, - 36295 - 11905: 0xDA98, - 36296 - 11905: 0xDA99, - 36297 - 11905: 0xDA9A, - 36298 - 11905: 0xDA9B, - 36299 - 11905: 0xB0CF, - 36300 - 11905: 0xB5F8, - 36301 - 11905: 0xDA9C, - 36302 - 11905: 0xF5C9, - 36303 - 11905: 0xF5CA, - 36304 - 11905: 0xDA9D, - 36305 - 11905: 0xC5DC, - 36306 - 11905: 0xDA9E, - 36307 - 11905: 0xDA9F, - 36308 - 11905: 0xDAA0, - 36309 - 11905: 0xDB40, - 36310 - 11905: 0xF5C5, - 36311 - 11905: 0xF5C6, - 36312 - 11905: 0xDB41, - 36313 - 11905: 0xDB42, - 36314 - 11905: 0xF5C7, - 36315 - 11905: 0xF5CB, - 36316 - 11905: 0xDB43, - 36317 - 11905: 0xBEE0, - 36318 - 11905: 0xF5C8, - 36319 - 11905: 0xB8FA, - 36320 - 11905: 0xDB44, - 36321 - 11905: 0xDB45, - 36322 - 11905: 0xDB46, - 36323 - 11905: 0xF5D0, - 36324 - 11905: 0xF5D3, - 36325 - 11905: 0xDB47, - 36326 - 11905: 0xDB48, - 36327 - 11905: 0xDB49, - 36328 - 11905: 0xBFE7, - 36329 - 11905: 0xDB4A, - 36330 - 11905: 0xB9F2, - 36331 - 11905: 0xF5BC, - 36332 - 11905: 0xF5CD, - 36333 - 11905: 0xDB4B, - 36334 - 11905: 0xDB4C, - 36335 - 11905: 0xC2B7, - 36336 - 11905: 0xDB4D, - 36337 - 11905: 0xDB4E, - 36338 - 11905: 0xDB4F, - 36339 - 11905: 0xCCF8, - 36340 - 11905: 0xDB50, - 36341 - 11905: 0xBCF9, - 36342 - 11905: 0xDB51, - 36343 - 11905: 0xF5CE, - 36344 - 11905: 0xF5CF, - 36345 - 11905: 0xF5D1, - 36346 - 11905: 0xB6E5, - 36347 - 11905: 0xF5D2, - 36348 - 11905: 0xDB52, - 36349 - 11905: 0xF5D5, - 36350 - 11905: 0xDB53, - 36351 - 11905: 0xDB54, - 36352 - 11905: 0xDB55, - 36353 - 11905: 0xDB56, - 36354 - 11905: 0xDB57, - 36355 - 11905: 0xDB58, - 36356 - 11905: 0xDB59, - 36357 - 11905: 0xF5BD, - 36358 - 11905: 0xDB5A, - 36359 - 11905: 0xDB5B, - 36360 - 11905: 0xDB5C, - 36361 - 11905: 0xF5D4, - 36362 - 11905: 0xD3BB, - 36363 - 11905: 0xDB5D, - 36364 - 11905: 0xB3EC, - 36365 - 11905: 0xDB5E, - 36366 - 11905: 0xDB5F, - 36367 - 11905: 0xCCA4, - 36368 - 11905: 0xDB60, - 36369 - 11905: 0xDB61, - 36370 - 11905: 0xDB62, - 36371 - 11905: 0xDB63, - 36372 - 11905: 0xF5D6, - 36373 - 11905: 0xDB64, - 36374 - 11905: 0xDB65, - 36375 - 11905: 0xDB66, - 36376 - 11905: 0xDB67, - 36377 - 11905: 0xDB68, - 36378 - 11905: 0xDB69, - 36379 - 11905: 0xDB6A, - 36380 - 11905: 0xDB6B, - 36381 - 11905: 0xF5D7, - 36382 - 11905: 0xBEE1, - 36383 - 11905: 0xF5D8, - 36384 - 11905: 0xDB6C, - 36385 - 11905: 0xDB6D, - 36386 - 11905: 0xCCDF, - 36387 - 11905: 0xF5DB, - 36388 - 11905: 0xDB6E, - 36389 - 11905: 0xDB6F, - 36390 - 11905: 0xDB70, - 36391 - 11905: 0xDB71, - 36392 - 11905: 0xDB72, - 36393 - 11905: 0xB2C8, - 36394 - 11905: 0xD7D9, - 36395 - 11905: 0xDB73, - 36396 - 11905: 0xF5D9, - 36397 - 11905: 0xDB74, - 36398 - 11905: 0xF5DA, - 36399 - 11905: 0xF5DC, - 36400 - 11905: 0xDB75, - 36401 - 11905: 0xF5E2, - 36402 - 11905: 0xDB76, - 36403 - 11905: 0xDB77, - 36404 - 11905: 0xDB78, - 36405 - 11905: 0xF5E0, - 36406 - 11905: 0xDB79, - 36407 - 11905: 0xDB7A, - 36408 - 11905: 0xDB7B, - 36409 - 11905: 0xF5DF, - 36410 - 11905: 0xF5DD, - 36411 - 11905: 0xDB7C, - 36412 - 11905: 0xDB7D, - 36413 - 11905: 0xF5E1, - 36414 - 11905: 0xDB7E, - 36415 - 11905: 0xDB80, - 36416 - 11905: 0xF5DE, - 36417 - 11905: 0xF5E4, - 36418 - 11905: 0xF5E5, - 36419 - 11905: 0xDB81, - 36420 - 11905: 0xCCE3, - 36421 - 11905: 0xDB82, - 36422 - 11905: 0xDB83, - 36423 - 11905: 0xE5BF, - 36424 - 11905: 0xB5B8, - 36425 - 11905: 0xF5E3, - 36426 - 11905: 0xF5E8, - 36427 - 11905: 0xCCA3, - 36428 - 11905: 0xDB84, - 36429 - 11905: 0xDB85, - 36430 - 11905: 0xDB86, - 36431 - 11905: 0xDB87, - 36432 - 11905: 0xDB88, - 36433 - 11905: 0xF5E6, - 36434 - 11905: 0xF5E7, - 36435 - 11905: 0xDB89, - 36436 - 11905: 0xDB8A, - 36437 - 11905: 0xDB8B, - 36438 - 11905: 0xDB8C, - 36439 - 11905: 0xDB8D, - 36440 - 11905: 0xDB8E, - 36441 - 11905: 0xF5BE, - 36442 - 11905: 0xDB8F, - 36443 - 11905: 0xDB90, - 36444 - 11905: 0xDB91, - 36445 - 11905: 0xDB92, - 36446 - 11905: 0xDB93, - 36447 - 11905: 0xDB94, - 36448 - 11905: 0xDB95, - 36449 - 11905: 0xDB96, - 36450 - 11905: 0xDB97, - 36451 - 11905: 0xDB98, - 36452 - 11905: 0xDB99, - 36453 - 11905: 0xDB9A, - 36454 - 11905: 0xB1C4, - 36455 - 11905: 0xDB9B, - 36456 - 11905: 0xDB9C, - 36457 - 11905: 0xF5BF, - 36458 - 11905: 0xDB9D, - 36459 - 11905: 0xDB9E, - 36460 - 11905: 0xB5C5, - 36461 - 11905: 0xB2E4, - 36462 - 11905: 0xDB9F, - 36463 - 11905: 0xF5EC, - 36464 - 11905: 0xF5E9, - 36465 - 11905: 0xDBA0, - 36466 - 11905: 0xB6D7, - 36467 - 11905: 0xDC40, - 36468 - 11905: 0xF5ED, - 36469 - 11905: 0xDC41, - 36470 - 11905: 0xF5EA, - 36471 - 11905: 0xDC42, - 36472 - 11905: 0xDC43, - 36473 - 11905: 0xDC44, - 36474 - 11905: 0xDC45, - 36475 - 11905: 0xDC46, - 36476 - 11905: 0xF5EB, - 36477 - 11905: 0xDC47, - 36478 - 11905: 0xDC48, - 36479 - 11905: 0xB4DA, - 36480 - 11905: 0xDC49, - 36481 - 11905: 0xD4EA, - 36482 - 11905: 0xDC4A, - 36483 - 11905: 0xDC4B, - 36484 - 11905: 0xDC4C, - 36485 - 11905: 0xF5EE, - 36486 - 11905: 0xDC4D, - 36487 - 11905: 0xB3F9, - 36488 - 11905: 0xDC4E, - 36489 - 11905: 0xDC4F, - 36490 - 11905: 0xDC50, - 36491 - 11905: 0xDC51, - 36492 - 11905: 0xDC52, - 36493 - 11905: 0xDC53, - 36494 - 11905: 0xDC54, - 36495 - 11905: 0xF5EF, - 36496 - 11905: 0xF5F1, - 36497 - 11905: 0xDC55, - 36498 - 11905: 0xDC56, - 36499 - 11905: 0xDC57, - 36500 - 11905: 0xF5F0, - 36501 - 11905: 0xDC58, - 36502 - 11905: 0xDC59, - 36503 - 11905: 0xDC5A, - 36504 - 11905: 0xDC5B, - 36505 - 11905: 0xDC5C, - 36506 - 11905: 0xDC5D, - 36507 - 11905: 0xDC5E, - 36508 - 11905: 0xF5F2, - 36509 - 11905: 0xDC5F, - 36510 - 11905: 0xF5F3, - 36511 - 11905: 0xDC60, - 36512 - 11905: 0xDC61, - 36513 - 11905: 0xDC62, - 36514 - 11905: 0xDC63, - 36515 - 11905: 0xDC64, - 36516 - 11905: 0xDC65, - 36517 - 11905: 0xDC66, - 36518 - 11905: 0xDC67, - 36519 - 11905: 0xDC68, - 36520 - 11905: 0xDC69, - 36521 - 11905: 0xDC6A, - 36522 - 11905: 0xDC6B, - 36523 - 11905: 0xC9ED, - 36524 - 11905: 0xB9AA, - 36525 - 11905: 0xDC6C, - 36526 - 11905: 0xDC6D, - 36527 - 11905: 0xC7FB, - 36528 - 11905: 0xDC6E, - 36529 - 11905: 0xDC6F, - 36530 - 11905: 0xB6E3, - 36531 - 11905: 0xDC70, - 36532 - 11905: 0xDC71, - 36533 - 11905: 0xDC72, - 36534 - 11905: 0xDC73, - 36535 - 11905: 0xDC74, - 36536 - 11905: 0xDC75, - 36537 - 11905: 0xDC76, - 36538 - 11905: 0xCCC9, - 36539 - 11905: 0xDC77, - 36540 - 11905: 0xDC78, - 36541 - 11905: 0xDC79, - 36542 - 11905: 0xDC7A, - 36543 - 11905: 0xDC7B, - 36544 - 11905: 0xDC7C, - 36545 - 11905: 0xDC7D, - 36546 - 11905: 0xDC7E, - 36547 - 11905: 0xDC80, - 36548 - 11905: 0xDC81, - 36549 - 11905: 0xDC82, - 36550 - 11905: 0xDC83, - 36551 - 11905: 0xDC84, - 36552 - 11905: 0xDC85, - 36553 - 11905: 0xDC86, - 36554 - 11905: 0xDC87, - 36555 - 11905: 0xDC88, - 36556 - 11905: 0xDC89, - 36557 - 11905: 0xDC8A, - 36558 - 11905: 0xEAA6, - 36559 - 11905: 0xDC8B, - 36560 - 11905: 0xDC8C, - 36561 - 11905: 0xDC8D, - 36562 - 11905: 0xDC8E, - 36563 - 11905: 0xDC8F, - 36564 - 11905: 0xDC90, - 36565 - 11905: 0xDC91, - 36566 - 11905: 0xDC92, - 36567 - 11905: 0xDC93, - 36568 - 11905: 0xDC94, - 36569 - 11905: 0xDC95, - 36570 - 11905: 0xDC96, - 36571 - 11905: 0xDC97, - 36572 - 11905: 0xDC98, - 36573 - 11905: 0xDC99, - 36574 - 11905: 0xDC9A, - 36575 - 11905: 0xDC9B, - 36576 - 11905: 0xDC9C, - 36577 - 11905: 0xDC9D, - 36578 - 11905: 0xDC9E, - 36579 - 11905: 0xDC9F, - 36580 - 11905: 0xDCA0, - 36581 - 11905: 0xDD40, - 36582 - 11905: 0xDD41, - 36583 - 11905: 0xDD42, - 36584 - 11905: 0xDD43, - 36585 - 11905: 0xDD44, - 36586 - 11905: 0xDD45, - 36587 - 11905: 0xDD46, - 36588 - 11905: 0xDD47, - 36589 - 11905: 0xDD48, - 36590 - 11905: 0xDD49, - 36591 - 11905: 0xDD4A, - 36592 - 11905: 0xDD4B, - 36593 - 11905: 0xDD4C, - 36594 - 11905: 0xDD4D, - 36595 - 11905: 0xDD4E, - 36596 - 11905: 0xDD4F, - 36597 - 11905: 0xDD50, - 36598 - 11905: 0xDD51, - 36599 - 11905: 0xDD52, - 36600 - 11905: 0xDD53, - 36601 - 11905: 0xDD54, - 36602 - 11905: 0xDD55, - 36603 - 11905: 0xDD56, - 36604 - 11905: 0xDD57, - 36605 - 11905: 0xDD58, - 36606 - 11905: 0xDD59, - 36607 - 11905: 0xDD5A, - 36608 - 11905: 0xDD5B, - 36609 - 11905: 0xDD5C, - 36610 - 11905: 0xDD5D, - 36611 - 11905: 0xDD5E, - 36612 - 11905: 0xDD5F, - 36613 - 11905: 0xDD60, - 36614 - 11905: 0xDD61, - 36615 - 11905: 0xDD62, - 36616 - 11905: 0xDD63, - 36617 - 11905: 0xDD64, - 36618 - 11905: 0xDD65, - 36619 - 11905: 0xDD66, - 36620 - 11905: 0xDD67, - 36621 - 11905: 0xDD68, - 36622 - 11905: 0xDD69, - 36623 - 11905: 0xDD6A, - 36624 - 11905: 0xDD6B, - 36625 - 11905: 0xDD6C, - 36626 - 11905: 0xDD6D, - 36627 - 11905: 0xDD6E, - 36628 - 11905: 0xDD6F, - 36629 - 11905: 0xDD70, - 36630 - 11905: 0xDD71, - 36631 - 11905: 0xDD72, - 36632 - 11905: 0xDD73, - 36633 - 11905: 0xDD74, - 36634 - 11905: 0xDD75, - 36635 - 11905: 0xDD76, - 36636 - 11905: 0xDD77, - 36637 - 11905: 0xDD78, - 36638 - 11905: 0xDD79, - 36639 - 11905: 0xDD7A, - 36640 - 11905: 0xDD7B, - 36641 - 11905: 0xDD7C, - 36642 - 11905: 0xDD7D, - 36643 - 11905: 0xDD7E, - 36644 - 11905: 0xDD80, - 36645 - 11905: 0xDD81, - 36646 - 11905: 0xDD82, - 36647 - 11905: 0xDD83, - 36648 - 11905: 0xDD84, - 36649 - 11905: 0xDD85, - 36650 - 11905: 0xDD86, - 36651 - 11905: 0xDD87, - 36652 - 11905: 0xDD88, - 36653 - 11905: 0xDD89, - 36654 - 11905: 0xDD8A, - 36655 - 11905: 0xDD8B, - 36656 - 11905: 0xDD8C, - 36657 - 11905: 0xDD8D, - 36658 - 11905: 0xDD8E, - 36659 - 11905: 0xDD8F, - 36660 - 11905: 0xDD90, - 36661 - 11905: 0xDD91, - 36662 - 11905: 0xDD92, - 36663 - 11905: 0xDD93, - 36664 - 11905: 0xDD94, - 36665 - 11905: 0xDD95, - 36666 - 11905: 0xDD96, - 36667 - 11905: 0xDD97, - 36668 - 11905: 0xDD98, - 36669 - 11905: 0xDD99, - 36670 - 11905: 0xDD9A, - 36671 - 11905: 0xDD9B, - 36672 - 11905: 0xDD9C, - 36673 - 11905: 0xDD9D, - 36674 - 11905: 0xDD9E, - 36675 - 11905: 0xDD9F, - 36676 - 11905: 0xDDA0, - 36677 - 11905: 0xDE40, - 36678 - 11905: 0xDE41, - 36679 - 11905: 0xDE42, - 36680 - 11905: 0xDE43, - 36681 - 11905: 0xDE44, - 36682 - 11905: 0xDE45, - 36683 - 11905: 0xDE46, - 36684 - 11905: 0xDE47, - 36685 - 11905: 0xDE48, - 36686 - 11905: 0xDE49, - 36687 - 11905: 0xDE4A, - 36688 - 11905: 0xDE4B, - 36689 - 11905: 0xDE4C, - 36690 - 11905: 0xDE4D, - 36691 - 11905: 0xDE4E, - 36692 - 11905: 0xDE4F, - 36693 - 11905: 0xDE50, - 36694 - 11905: 0xDE51, - 36695 - 11905: 0xDE52, - 36696 - 11905: 0xDE53, - 36697 - 11905: 0xDE54, - 36698 - 11905: 0xDE55, - 36699 - 11905: 0xDE56, - 36700 - 11905: 0xDE57, - 36701 - 11905: 0xDE58, - 36702 - 11905: 0xDE59, - 36703 - 11905: 0xDE5A, - 36704 - 11905: 0xDE5B, - 36705 - 11905: 0xDE5C, - 36706 - 11905: 0xDE5D, - 36707 - 11905: 0xDE5E, - 36708 - 11905: 0xDE5F, - 36709 - 11905: 0xDE60, - 36710 - 11905: 0xB3B5, - 36711 - 11905: 0xD4FE, - 36712 - 11905: 0xB9EC, - 36713 - 11905: 0xD0F9, - 36714 - 11905: 0xDE61, - 36715 - 11905: 0xE9ED, - 36716 - 11905: 0xD7AA, - 36717 - 11905: 0xE9EE, - 36718 - 11905: 0xC2D6, - 36719 - 11905: 0xC8ED, - 36720 - 11905: 0xBAE4, - 36721 - 11905: 0xE9EF, - 36722 - 11905: 0xE9F0, - 36723 - 11905: 0xE9F1, - 36724 - 11905: 0xD6E1, - 36725 - 11905: 0xE9F2, - 36726 - 11905: 0xE9F3, - 36727 - 11905: 0xE9F5, - 36728 - 11905: 0xE9F4, - 36729 - 11905: 0xE9F6, - 36730 - 11905: 0xE9F7, - 36731 - 11905: 0xC7E1, - 36732 - 11905: 0xE9F8, - 36733 - 11905: 0xD4D8, - 36734 - 11905: 0xE9F9, - 36735 - 11905: 0xBDCE, - 36736 - 11905: 0xDE62, - 36737 - 11905: 0xE9FA, - 36738 - 11905: 0xE9FB, - 36739 - 11905: 0xBDCF, - 36740 - 11905: 0xE9FC, - 36741 - 11905: 0xB8A8, - 36742 - 11905: 0xC1BE, - 36743 - 11905: 0xE9FD, - 36744 - 11905: 0xB1B2, - 36745 - 11905: 0xBBD4, - 36746 - 11905: 0xB9F5, - 36747 - 11905: 0xE9FE, - 36748 - 11905: 0xDE63, - 36749 - 11905: 0xEAA1, - 36750 - 11905: 0xEAA2, - 36751 - 11905: 0xEAA3, - 36752 - 11905: 0xB7F8, - 36753 - 11905: 0xBCAD, - 36754 - 11905: 0xDE64, - 36755 - 11905: 0xCAE4, - 36756 - 11905: 0xE0CE, - 36757 - 11905: 0xD4AF, - 36758 - 11905: 0xCFBD, - 36759 - 11905: 0xD5B7, - 36760 - 11905: 0xEAA4, - 36761 - 11905: 0xD5DE, - 36762 - 11905: 0xEAA5, - 36763 - 11905: 0xD0C1, - 36764 - 11905: 0xB9BC, - 36765 - 11905: 0xDE65, - 36766 - 11905: 0xB4C7, - 36767 - 11905: 0xB1D9, - 36768 - 11905: 0xDE66, - 36769 - 11905: 0xDE67, - 36770 - 11905: 0xDE68, - 36771 - 11905: 0xC0B1, - 36772 - 11905: 0xDE69, - 36773 - 11905: 0xDE6A, - 36774 - 11905: 0xDE6B, - 36775 - 11905: 0xDE6C, - 36776 - 11905: 0xB1E6, - 36777 - 11905: 0xB1E7, - 36778 - 11905: 0xDE6D, - 36779 - 11905: 0xB1E8, - 36780 - 11905: 0xDE6E, - 36781 - 11905: 0xDE6F, - 36782 - 11905: 0xDE70, - 36783 - 11905: 0xDE71, - 36784 - 11905: 0xB3BD, - 36785 - 11905: 0xC8E8, - 36786 - 11905: 0xDE72, - 36787 - 11905: 0xDE73, - 36788 - 11905: 0xDE74, - 36789 - 11905: 0xDE75, - 36790 - 11905: 0xE5C1, - 36791 - 11905: 0xDE76, - 36792 - 11905: 0xDE77, - 36793 - 11905: 0xB1DF, - 36794 - 11905: 0xDE78, - 36795 - 11905: 0xDE79, - 36796 - 11905: 0xDE7A, - 36797 - 11905: 0xC1C9, - 36798 - 11905: 0xB4EF, - 36799 - 11905: 0xDE7B, - 36800 - 11905: 0xDE7C, - 36801 - 11905: 0xC7A8, - 36802 - 11905: 0xD3D8, - 36803 - 11905: 0xDE7D, - 36804 - 11905: 0xC6F9, - 36805 - 11905: 0xD1B8, - 36806 - 11905: 0xDE7E, - 36807 - 11905: 0xB9FD, - 36808 - 11905: 0xC2F5, - 36809 - 11905: 0xDE80, - 36810 - 11905: 0xDE81, - 36811 - 11905: 0xDE82, - 36812 - 11905: 0xDE83, - 36813 - 11905: 0xDE84, - 36814 - 11905: 0xD3AD, - 36815 - 11905: 0xDE85, - 36816 - 11905: 0xD4CB, - 36817 - 11905: 0xBDFC, - 36818 - 11905: 0xDE86, - 36819 - 11905: 0xE5C2, - 36820 - 11905: 0xB7B5, - 36821 - 11905: 0xE5C3, - 36822 - 11905: 0xDE87, - 36823 - 11905: 0xDE88, - 36824 - 11905: 0xBBB9, - 36825 - 11905: 0xD5E2, - 36826 - 11905: 0xDE89, - 36827 - 11905: 0xBDF8, - 36828 - 11905: 0xD4B6, - 36829 - 11905: 0xCEA5, - 36830 - 11905: 0xC1AC, - 36831 - 11905: 0xB3D9, - 36832 - 11905: 0xDE8A, - 36833 - 11905: 0xDE8B, - 36834 - 11905: 0xCCF6, - 36835 - 11905: 0xDE8C, - 36836 - 11905: 0xE5C6, - 36837 - 11905: 0xE5C4, - 36838 - 11905: 0xE5C8, - 36839 - 11905: 0xDE8D, - 36840 - 11905: 0xE5CA, - 36841 - 11905: 0xE5C7, - 36842 - 11905: 0xB5CF, - 36843 - 11905: 0xC6C8, - 36844 - 11905: 0xDE8E, - 36845 - 11905: 0xB5FC, - 36846 - 11905: 0xE5C5, - 36847 - 11905: 0xDE8F, - 36848 - 11905: 0xCAF6, - 36849 - 11905: 0xDE90, - 36850 - 11905: 0xDE91, - 36851 - 11905: 0xE5C9, - 36852 - 11905: 0xDE92, - 36853 - 11905: 0xDE93, - 36854 - 11905: 0xDE94, - 36855 - 11905: 0xC3D4, - 36856 - 11905: 0xB1C5, - 36857 - 11905: 0xBCA3, - 36858 - 11905: 0xDE95, - 36859 - 11905: 0xDE96, - 36860 - 11905: 0xDE97, - 36861 - 11905: 0xD7B7, - 36862 - 11905: 0xDE98, - 36863 - 11905: 0xDE99, - 36864 - 11905: 0xCDCB, - 36865 - 11905: 0xCBCD, - 36866 - 11905: 0xCACA, - 36867 - 11905: 0xCCD3, - 36868 - 11905: 0xE5CC, - 36869 - 11905: 0xE5CB, - 36870 - 11905: 0xC4E6, - 36871 - 11905: 0xDE9A, - 36872 - 11905: 0xDE9B, - 36873 - 11905: 0xD1A1, - 36874 - 11905: 0xD1B7, - 36875 - 11905: 0xE5CD, - 36876 - 11905: 0xDE9C, - 36877 - 11905: 0xE5D0, - 36878 - 11905: 0xDE9D, - 36879 - 11905: 0xCDB8, - 36880 - 11905: 0xD6F0, - 36881 - 11905: 0xE5CF, - 36882 - 11905: 0xB5DD, - 36883 - 11905: 0xDE9E, - 36884 - 11905: 0xCDBE, - 36885 - 11905: 0xDE9F, - 36886 - 11905: 0xE5D1, - 36887 - 11905: 0xB6BA, - 36888 - 11905: 0xDEA0, - 36889 - 11905: 0xDF40, - 36890 - 11905: 0xCDA8, - 36891 - 11905: 0xB9E4, - 36892 - 11905: 0xDF41, - 36893 - 11905: 0xCAC5, - 36894 - 11905: 0xB3D1, - 36895 - 11905: 0xCBD9, - 36896 - 11905: 0xD4EC, - 36897 - 11905: 0xE5D2, - 36898 - 11905: 0xB7EA, - 36899 - 11905: 0xDF42, - 36900 - 11905: 0xDF43, - 36901 - 11905: 0xDF44, - 36902 - 11905: 0xE5CE, - 36903 - 11905: 0xDF45, - 36904 - 11905: 0xDF46, - 36905 - 11905: 0xDF47, - 36906 - 11905: 0xDF48, - 36907 - 11905: 0xDF49, - 36908 - 11905: 0xDF4A, - 36909 - 11905: 0xE5D5, - 36910 - 11905: 0xB4FE, - 36911 - 11905: 0xE5D6, - 36912 - 11905: 0xDF4B, - 36913 - 11905: 0xDF4C, - 36914 - 11905: 0xDF4D, - 36915 - 11905: 0xDF4E, - 36916 - 11905: 0xDF4F, - 36917 - 11905: 0xE5D3, - 36918 - 11905: 0xE5D4, - 36919 - 11905: 0xDF50, - 36920 - 11905: 0xD2DD, - 36921 - 11905: 0xDF51, - 36922 - 11905: 0xDF52, - 36923 - 11905: 0xC2DF, - 36924 - 11905: 0xB1C6, - 36925 - 11905: 0xDF53, - 36926 - 11905: 0xD3E2, - 36927 - 11905: 0xDF54, - 36928 - 11905: 0xDF55, - 36929 - 11905: 0xB6DD, - 36930 - 11905: 0xCBEC, - 36931 - 11905: 0xDF56, - 36932 - 11905: 0xE5D7, - 36933 - 11905: 0xDF57, - 36934 - 11905: 0xDF58, - 36935 - 11905: 0xD3F6, - 36936 - 11905: 0xDF59, - 36937 - 11905: 0xDF5A, - 36938 - 11905: 0xDF5B, - 36939 - 11905: 0xDF5C, - 36940 - 11905: 0xDF5D, - 36941 - 11905: 0xB1E9, - 36942 - 11905: 0xDF5E, - 36943 - 11905: 0xB6F4, - 36944 - 11905: 0xE5DA, - 36945 - 11905: 0xE5D8, - 36946 - 11905: 0xE5D9, - 36947 - 11905: 0xB5C0, - 36948 - 11905: 0xDF5F, - 36949 - 11905: 0xDF60, - 36950 - 11905: 0xDF61, - 36951 - 11905: 0xD2C5, - 36952 - 11905: 0xE5DC, - 36953 - 11905: 0xDF62, - 36954 - 11905: 0xDF63, - 36955 - 11905: 0xE5DE, - 36956 - 11905: 0xDF64, - 36957 - 11905: 0xDF65, - 36958 - 11905: 0xDF66, - 36959 - 11905: 0xDF67, - 36960 - 11905: 0xDF68, - 36961 - 11905: 0xDF69, - 36962 - 11905: 0xE5DD, - 36963 - 11905: 0xC7B2, - 36964 - 11905: 0xDF6A, - 36965 - 11905: 0xD2A3, - 36966 - 11905: 0xDF6B, - 36967 - 11905: 0xDF6C, - 36968 - 11905: 0xE5DB, - 36969 - 11905: 0xDF6D, - 36970 - 11905: 0xDF6E, - 36971 - 11905: 0xDF6F, - 36972 - 11905: 0xDF70, - 36973 - 11905: 0xD4E2, - 36974 - 11905: 0xD5DA, - 36975 - 11905: 0xDF71, - 36976 - 11905: 0xDF72, - 36977 - 11905: 0xDF73, - 36978 - 11905: 0xDF74, - 36979 - 11905: 0xDF75, - 36980 - 11905: 0xE5E0, - 36981 - 11905: 0xD7F1, - 36982 - 11905: 0xDF76, - 36983 - 11905: 0xDF77, - 36984 - 11905: 0xDF78, - 36985 - 11905: 0xDF79, - 36986 - 11905: 0xDF7A, - 36987 - 11905: 0xDF7B, - 36988 - 11905: 0xDF7C, - 36989 - 11905: 0xE5E1, - 36990 - 11905: 0xDF7D, - 36991 - 11905: 0xB1DC, - 36992 - 11905: 0xD1FB, - 36993 - 11905: 0xDF7E, - 36994 - 11905: 0xE5E2, - 36995 - 11905: 0xE5E4, - 36996 - 11905: 0xDF80, - 36997 - 11905: 0xDF81, - 36998 - 11905: 0xDF82, - 36999 - 11905: 0xDF83, - 37000 - 11905: 0xE5E3, - 37001 - 11905: 0xDF84, - 37002 - 11905: 0xDF85, - 37003 - 11905: 0xE5E5, - 37004 - 11905: 0xDF86, - 37005 - 11905: 0xDF87, - 37006 - 11905: 0xDF88, - 37007 - 11905: 0xDF89, - 37008 - 11905: 0xDF8A, - 37009 - 11905: 0xD2D8, - 37010 - 11905: 0xDF8B, - 37011 - 11905: 0xB5CB, - 37012 - 11905: 0xDF8C, - 37013 - 11905: 0xE7DF, - 37014 - 11905: 0xDF8D, - 37015 - 11905: 0xDAF5, - 37016 - 11905: 0xDF8E, - 37017 - 11905: 0xDAF8, - 37018 - 11905: 0xDF8F, - 37019 - 11905: 0xDAF6, - 37020 - 11905: 0xDF90, - 37021 - 11905: 0xDAF7, - 37022 - 11905: 0xDF91, - 37023 - 11905: 0xDF92, - 37024 - 11905: 0xDF93, - 37025 - 11905: 0xDAFA, - 37026 - 11905: 0xD0CF, - 37027 - 11905: 0xC4C7, - 37028 - 11905: 0xDF94, - 37029 - 11905: 0xDF95, - 37030 - 11905: 0xB0EE, - 37031 - 11905: 0xDF96, - 37032 - 11905: 0xDF97, - 37033 - 11905: 0xDF98, - 37034 - 11905: 0xD0B0, - 37035 - 11905: 0xDF99, - 37036 - 11905: 0xDAF9, - 37037 - 11905: 0xDF9A, - 37038 - 11905: 0xD3CA, - 37039 - 11905: 0xBAAA, - 37040 - 11905: 0xDBA2, - 37041 - 11905: 0xC7F1, - 37042 - 11905: 0xDF9B, - 37043 - 11905: 0xDAFC, - 37044 - 11905: 0xDAFB, - 37045 - 11905: 0xC9DB, - 37046 - 11905: 0xDAFD, - 37047 - 11905: 0xDF9C, - 37048 - 11905: 0xDBA1, - 37049 - 11905: 0xD7DE, - 37050 - 11905: 0xDAFE, - 37051 - 11905: 0xC1DA, - 37052 - 11905: 0xDF9D, - 37053 - 11905: 0xDF9E, - 37054 - 11905: 0xDBA5, - 37055 - 11905: 0xDF9F, - 37056 - 11905: 0xDFA0, - 37057 - 11905: 0xD3F4, - 37058 - 11905: 0xE040, - 37059 - 11905: 0xE041, - 37060 - 11905: 0xDBA7, - 37061 - 11905: 0xDBA4, - 37062 - 11905: 0xE042, - 37063 - 11905: 0xDBA8, - 37064 - 11905: 0xE043, - 37065 - 11905: 0xE044, - 37066 - 11905: 0xBDBC, - 37067 - 11905: 0xE045, - 37068 - 11905: 0xE046, - 37069 - 11905: 0xE047, - 37070 - 11905: 0xC0C9, - 37071 - 11905: 0xDBA3, - 37072 - 11905: 0xDBA6, - 37073 - 11905: 0xD6A3, - 37074 - 11905: 0xE048, - 37075 - 11905: 0xDBA9, - 37076 - 11905: 0xE049, - 37077 - 11905: 0xE04A, - 37078 - 11905: 0xE04B, - 37079 - 11905: 0xDBAD, - 37080 - 11905: 0xE04C, - 37081 - 11905: 0xE04D, - 37082 - 11905: 0xE04E, - 37083 - 11905: 0xDBAE, - 37084 - 11905: 0xDBAC, - 37085 - 11905: 0xBAC2, - 37086 - 11905: 0xE04F, - 37087 - 11905: 0xE050, - 37088 - 11905: 0xE051, - 37089 - 11905: 0xBFA4, - 37090 - 11905: 0xDBAB, - 37091 - 11905: 0xE052, - 37092 - 11905: 0xE053, - 37093 - 11905: 0xE054, - 37094 - 11905: 0xDBAA, - 37095 - 11905: 0xD4C7, - 37096 - 11905: 0xB2BF, - 37097 - 11905: 0xE055, - 37098 - 11905: 0xE056, - 37099 - 11905: 0xDBAF, - 37100 - 11905: 0xE057, - 37101 - 11905: 0xB9F9, - 37102 - 11905: 0xE058, - 37103 - 11905: 0xDBB0, - 37104 - 11905: 0xE059, - 37105 - 11905: 0xE05A, - 37106 - 11905: 0xE05B, - 37107 - 11905: 0xE05C, - 37108 - 11905: 0xB3BB, - 37109 - 11905: 0xE05D, - 37110 - 11905: 0xE05E, - 37111 - 11905: 0xE05F, - 37112 - 11905: 0xB5A6, - 37113 - 11905: 0xE060, - 37114 - 11905: 0xE061, - 37115 - 11905: 0xE062, - 37116 - 11905: 0xE063, - 37117 - 11905: 0xB6BC, - 37118 - 11905: 0xDBB1, - 37119 - 11905: 0xE064, - 37120 - 11905: 0xE065, - 37121 - 11905: 0xE066, - 37122 - 11905: 0xB6F5, - 37123 - 11905: 0xE067, - 37124 - 11905: 0xDBB2, - 37125 - 11905: 0xE068, - 37126 - 11905: 0xE069, - 37127 - 11905: 0xE06A, - 37128 - 11905: 0xE06B, - 37129 - 11905: 0xE06C, - 37130 - 11905: 0xE06D, - 37131 - 11905: 0xE06E, - 37132 - 11905: 0xE06F, - 37133 - 11905: 0xE070, - 37134 - 11905: 0xE071, - 37135 - 11905: 0xE072, - 37136 - 11905: 0xE073, - 37137 - 11905: 0xE074, - 37138 - 11905: 0xE075, - 37139 - 11905: 0xE076, - 37140 - 11905: 0xE077, - 37141 - 11905: 0xE078, - 37142 - 11905: 0xE079, - 37143 - 11905: 0xE07A, - 37144 - 11905: 0xE07B, - 37145 - 11905: 0xB1C9, - 37146 - 11905: 0xE07C, - 37147 - 11905: 0xE07D, - 37148 - 11905: 0xE07E, - 37149 - 11905: 0xE080, - 37150 - 11905: 0xDBB4, - 37151 - 11905: 0xE081, - 37152 - 11905: 0xE082, - 37153 - 11905: 0xE083, - 37154 - 11905: 0xDBB3, - 37155 - 11905: 0xDBB5, - 37156 - 11905: 0xE084, - 37157 - 11905: 0xE085, - 37158 - 11905: 0xE086, - 37159 - 11905: 0xE087, - 37160 - 11905: 0xE088, - 37161 - 11905: 0xE089, - 37162 - 11905: 0xE08A, - 37163 - 11905: 0xE08B, - 37164 - 11905: 0xE08C, - 37165 - 11905: 0xE08D, - 37166 - 11905: 0xE08E, - 37167 - 11905: 0xDBB7, - 37168 - 11905: 0xE08F, - 37169 - 11905: 0xDBB6, - 37170 - 11905: 0xE090, - 37171 - 11905: 0xE091, - 37172 - 11905: 0xE092, - 37173 - 11905: 0xE093, - 37174 - 11905: 0xE094, - 37175 - 11905: 0xE095, - 37176 - 11905: 0xE096, - 37177 - 11905: 0xDBB8, - 37178 - 11905: 0xE097, - 37179 - 11905: 0xE098, - 37180 - 11905: 0xE099, - 37181 - 11905: 0xE09A, - 37182 - 11905: 0xE09B, - 37183 - 11905: 0xE09C, - 37184 - 11905: 0xE09D, - 37185 - 11905: 0xE09E, - 37186 - 11905: 0xE09F, - 37187 - 11905: 0xDBB9, - 37188 - 11905: 0xE0A0, - 37189 - 11905: 0xE140, - 37190 - 11905: 0xDBBA, - 37191 - 11905: 0xE141, - 37192 - 11905: 0xE142, - 37193 - 11905: 0xD3CF, - 37194 - 11905: 0xF4FA, - 37195 - 11905: 0xC7F5, - 37196 - 11905: 0xD7C3, - 37197 - 11905: 0xC5E4, - 37198 - 11905: 0xF4FC, - 37199 - 11905: 0xF4FD, - 37200 - 11905: 0xF4FB, - 37201 - 11905: 0xE143, - 37202 - 11905: 0xBEC6, - 37203 - 11905: 0xE144, - 37204 - 11905: 0xE145, - 37205 - 11905: 0xE146, - 37206 - 11905: 0xE147, - 37207 - 11905: 0xD0EF, - 37208 - 11905: 0xE148, - 37209 - 11905: 0xE149, - 37210 - 11905: 0xB7D3, - 37211 - 11905: 0xE14A, - 37212 - 11905: 0xE14B, - 37213 - 11905: 0xD4CD, - 37214 - 11905: 0xCCAA, - 37215 - 11905: 0xE14C, - 37216 - 11905: 0xE14D, - 37217 - 11905: 0xF5A2, - 37218 - 11905: 0xF5A1, - 37219 - 11905: 0xBAA8, - 37220 - 11905: 0xF4FE, - 37221 - 11905: 0xCBD6, - 37222 - 11905: 0xE14E, - 37223 - 11905: 0xE14F, - 37224 - 11905: 0xE150, - 37225 - 11905: 0xF5A4, - 37226 - 11905: 0xC0D2, - 37227 - 11905: 0xE151, - 37228 - 11905: 0xB3EA, - 37229 - 11905: 0xE152, - 37230 - 11905: 0xCDAA, - 37231 - 11905: 0xF5A5, - 37232 - 11905: 0xF5A3, - 37233 - 11905: 0xBDB4, - 37234 - 11905: 0xF5A8, - 37235 - 11905: 0xE153, - 37236 - 11905: 0xF5A9, - 37237 - 11905: 0xBDCD, - 37238 - 11905: 0xC3B8, - 37239 - 11905: 0xBFE1, - 37240 - 11905: 0xCBE1, - 37241 - 11905: 0xF5AA, - 37242 - 11905: 0xE154, - 37243 - 11905: 0xE155, - 37244 - 11905: 0xE156, - 37245 - 11905: 0xF5A6, - 37246 - 11905: 0xF5A7, - 37247 - 11905: 0xC4F0, - 37248 - 11905: 0xE157, - 37249 - 11905: 0xE158, - 37250 - 11905: 0xE159, - 37251 - 11905: 0xE15A, - 37252 - 11905: 0xE15B, - 37253 - 11905: 0xF5AC, - 37254 - 11905: 0xE15C, - 37255 - 11905: 0xB4BC, - 37256 - 11905: 0xE15D, - 37257 - 11905: 0xD7ED, - 37258 - 11905: 0xE15E, - 37259 - 11905: 0xB4D7, - 37260 - 11905: 0xF5AB, - 37261 - 11905: 0xF5AE, - 37262 - 11905: 0xE15F, - 37263 - 11905: 0xE160, - 37264 - 11905: 0xF5AD, - 37265 - 11905: 0xF5AF, - 37266 - 11905: 0xD0D1, - 37267 - 11905: 0xE161, - 37268 - 11905: 0xE162, - 37269 - 11905: 0xE163, - 37270 - 11905: 0xE164, - 37271 - 11905: 0xE165, - 37272 - 11905: 0xE166, - 37273 - 11905: 0xE167, - 37274 - 11905: 0xC3D1, - 37275 - 11905: 0xC8A9, - 37276 - 11905: 0xE168, - 37277 - 11905: 0xE169, - 37278 - 11905: 0xE16A, - 37279 - 11905: 0xE16B, - 37280 - 11905: 0xE16C, - 37281 - 11905: 0xE16D, - 37282 - 11905: 0xF5B0, - 37283 - 11905: 0xF5B1, - 37284 - 11905: 0xE16E, - 37285 - 11905: 0xE16F, - 37286 - 11905: 0xE170, - 37287 - 11905: 0xE171, - 37288 - 11905: 0xE172, - 37289 - 11905: 0xE173, - 37290 - 11905: 0xF5B2, - 37291 - 11905: 0xE174, - 37292 - 11905: 0xE175, - 37293 - 11905: 0xF5B3, - 37294 - 11905: 0xF5B4, - 37295 - 11905: 0xF5B5, - 37296 - 11905: 0xE176, - 37297 - 11905: 0xE177, - 37298 - 11905: 0xE178, - 37299 - 11905: 0xE179, - 37300 - 11905: 0xF5B7, - 37301 - 11905: 0xF5B6, - 37302 - 11905: 0xE17A, - 37303 - 11905: 0xE17B, - 37304 - 11905: 0xE17C, - 37305 - 11905: 0xE17D, - 37306 - 11905: 0xF5B8, - 37307 - 11905: 0xE17E, - 37308 - 11905: 0xE180, - 37309 - 11905: 0xE181, - 37310 - 11905: 0xE182, - 37311 - 11905: 0xE183, - 37312 - 11905: 0xE184, - 37313 - 11905: 0xE185, - 37314 - 11905: 0xE186, - 37315 - 11905: 0xE187, - 37316 - 11905: 0xE188, - 37317 - 11905: 0xE189, - 37318 - 11905: 0xE18A, - 37319 - 11905: 0xB2C9, - 37320 - 11905: 0xE18B, - 37321 - 11905: 0xD3D4, - 37322 - 11905: 0xCACD, - 37323 - 11905: 0xE18C, - 37324 - 11905: 0xC0EF, - 37325 - 11905: 0xD6D8, - 37326 - 11905: 0xD2B0, - 37327 - 11905: 0xC1BF, - 37328 - 11905: 0xE18D, - 37329 - 11905: 0xBDF0, - 37330 - 11905: 0xE18E, - 37331 - 11905: 0xE18F, - 37332 - 11905: 0xE190, - 37333 - 11905: 0xE191, - 37334 - 11905: 0xE192, - 37335 - 11905: 0xE193, - 37336 - 11905: 0xE194, - 37337 - 11905: 0xE195, - 37338 - 11905: 0xE196, - 37339 - 11905: 0xE197, - 37340 - 11905: 0xB8AA, - 37341 - 11905: 0xE198, - 37342 - 11905: 0xE199, - 37343 - 11905: 0xE19A, - 37344 - 11905: 0xE19B, - 37345 - 11905: 0xE19C, - 37346 - 11905: 0xE19D, - 37347 - 11905: 0xE19E, - 37348 - 11905: 0xE19F, - 37349 - 11905: 0xE1A0, - 37350 - 11905: 0xE240, - 37351 - 11905: 0xE241, - 37352 - 11905: 0xE242, - 37353 - 11905: 0xE243, - 37354 - 11905: 0xE244, - 37355 - 11905: 0xE245, - 37356 - 11905: 0xE246, - 37357 - 11905: 0xE247, - 37358 - 11905: 0xE248, - 37359 - 11905: 0xE249, - 37360 - 11905: 0xE24A, - 37361 - 11905: 0xE24B, - 37362 - 11905: 0xE24C, - 37363 - 11905: 0xE24D, - 37364 - 11905: 0xE24E, - 37365 - 11905: 0xE24F, - 37366 - 11905: 0xE250, - 37367 - 11905: 0xE251, - 37368 - 11905: 0xE252, - 37369 - 11905: 0xE253, - 37370 - 11905: 0xE254, - 37371 - 11905: 0xE255, - 37372 - 11905: 0xE256, - 37373 - 11905: 0xE257, - 37374 - 11905: 0xE258, - 37375 - 11905: 0xE259, - 37376 - 11905: 0xE25A, - 37377 - 11905: 0xE25B, - 37378 - 11905: 0xE25C, - 37379 - 11905: 0xE25D, - 37380 - 11905: 0xE25E, - 37381 - 11905: 0xE25F, - 37382 - 11905: 0xE260, - 37383 - 11905: 0xE261, - 37384 - 11905: 0xE262, - 37385 - 11905: 0xE263, - 37386 - 11905: 0xE264, - 37387 - 11905: 0xE265, - 37388 - 11905: 0xE266, - 37389 - 11905: 0xE267, - 37390 - 11905: 0xE268, - 37391 - 11905: 0xE269, - 37392 - 11905: 0xE26A, - 37393 - 11905: 0xE26B, - 37394 - 11905: 0xE26C, - 37395 - 11905: 0xE26D, - 37396 - 11905: 0xE26E, - 37397 - 11905: 0xE26F, - 37398 - 11905: 0xE270, - 37399 - 11905: 0xE271, - 37400 - 11905: 0xE272, - 37401 - 11905: 0xE273, - 37402 - 11905: 0xE274, - 37403 - 11905: 0xE275, - 37404 - 11905: 0xE276, - 37405 - 11905: 0xE277, - 37406 - 11905: 0xE278, - 37407 - 11905: 0xE279, - 37408 - 11905: 0xE27A, - 37409 - 11905: 0xE27B, - 37410 - 11905: 0xE27C, - 37411 - 11905: 0xE27D, - 37412 - 11905: 0xE27E, - 37413 - 11905: 0xE280, - 37414 - 11905: 0xE281, - 37415 - 11905: 0xE282, - 37416 - 11905: 0xE283, - 37417 - 11905: 0xE284, - 37418 - 11905: 0xE285, - 37419 - 11905: 0xE286, - 37420 - 11905: 0xE287, - 37421 - 11905: 0xE288, - 37422 - 11905: 0xE289, - 37423 - 11905: 0xE28A, - 37424 - 11905: 0xE28B, - 37425 - 11905: 0xE28C, - 37426 - 11905: 0xE28D, - 37427 - 11905: 0xE28E, - 37428 - 11905: 0xE28F, - 37429 - 11905: 0xE290, - 37430 - 11905: 0xE291, - 37431 - 11905: 0xE292, - 37432 - 11905: 0xE293, - 37433 - 11905: 0xE294, - 37434 - 11905: 0xE295, - 37435 - 11905: 0xE296, - 37436 - 11905: 0xE297, - 37437 - 11905: 0xE298, - 37438 - 11905: 0xE299, - 37439 - 11905: 0xE29A, - 37440 - 11905: 0xE29B, - 37441 - 11905: 0xE29C, - 37442 - 11905: 0xE29D, - 37443 - 11905: 0xE29E, - 37444 - 11905: 0xE29F, - 37445 - 11905: 0xE2A0, - 37446 - 11905: 0xE340, - 37447 - 11905: 0xE341, - 37448 - 11905: 0xE342, - 37449 - 11905: 0xE343, - 37450 - 11905: 0xE344, - 37451 - 11905: 0xE345, - 37452 - 11905: 0xE346, - 37453 - 11905: 0xE347, - 37454 - 11905: 0xE348, - 37455 - 11905: 0xE349, - 37456 - 11905: 0xE34A, - 37457 - 11905: 0xE34B, - 37458 - 11905: 0xE34C, - 37459 - 11905: 0xE34D, - 37460 - 11905: 0xE34E, - 37461 - 11905: 0xE34F, - 37462 - 11905: 0xE350, - 37463 - 11905: 0xE351, - 37464 - 11905: 0xE352, - 37465 - 11905: 0xE353, - 37466 - 11905: 0xE354, - 37467 - 11905: 0xE355, - 37468 - 11905: 0xE356, - 37469 - 11905: 0xE357, - 37470 - 11905: 0xE358, - 37471 - 11905: 0xE359, - 37472 - 11905: 0xE35A, - 37473 - 11905: 0xE35B, - 37474 - 11905: 0xE35C, - 37475 - 11905: 0xE35D, - 37476 - 11905: 0xE35E, - 37477 - 11905: 0xE35F, - 37478 - 11905: 0xE360, - 37479 - 11905: 0xE361, - 37480 - 11905: 0xE362, - 37481 - 11905: 0xE363, - 37482 - 11905: 0xE364, - 37483 - 11905: 0xE365, - 37484 - 11905: 0xE366, - 37485 - 11905: 0xE367, - 37486 - 11905: 0xE368, - 37487 - 11905: 0xE369, - 37488 - 11905: 0xE36A, - 37489 - 11905: 0xE36B, - 37490 - 11905: 0xE36C, - 37491 - 11905: 0xE36D, - 37492 - 11905: 0xBCF8, - 37493 - 11905: 0xE36E, - 37494 - 11905: 0xE36F, - 37495 - 11905: 0xE370, - 37496 - 11905: 0xE371, - 37497 - 11905: 0xE372, - 37498 - 11905: 0xE373, - 37499 - 11905: 0xE374, - 37500 - 11905: 0xE375, - 37501 - 11905: 0xE376, - 37502 - 11905: 0xE377, - 37503 - 11905: 0xE378, - 37504 - 11905: 0xE379, - 37505 - 11905: 0xE37A, - 37506 - 11905: 0xE37B, - 37507 - 11905: 0xE37C, - 37508 - 11905: 0xE37D, - 37509 - 11905: 0xE37E, - 37510 - 11905: 0xE380, - 37511 - 11905: 0xE381, - 37512 - 11905: 0xE382, - 37513 - 11905: 0xE383, - 37514 - 11905: 0xE384, - 37515 - 11905: 0xE385, - 37516 - 11905: 0xE386, - 37517 - 11905: 0xE387, - 37518 - 11905: 0xF6C6, - 37519 - 11905: 0xE388, - 37520 - 11905: 0xE389, - 37521 - 11905: 0xE38A, - 37522 - 11905: 0xE38B, - 37523 - 11905: 0xE38C, - 37524 - 11905: 0xE38D, - 37525 - 11905: 0xE38E, - 37526 - 11905: 0xE38F, - 37527 - 11905: 0xE390, - 37528 - 11905: 0xE391, - 37529 - 11905: 0xE392, - 37530 - 11905: 0xE393, - 37531 - 11905: 0xE394, - 37532 - 11905: 0xE395, - 37533 - 11905: 0xE396, - 37534 - 11905: 0xE397, - 37535 - 11905: 0xE398, - 37536 - 11905: 0xE399, - 37537 - 11905: 0xE39A, - 37538 - 11905: 0xE39B, - 37539 - 11905: 0xE39C, - 37540 - 11905: 0xE39D, - 37541 - 11905: 0xE39E, - 37542 - 11905: 0xE39F, - 37543 - 11905: 0xE3A0, - 37544 - 11905: 0xE440, - 37545 - 11905: 0xE441, - 37546 - 11905: 0xE442, - 37547 - 11905: 0xE443, - 37548 - 11905: 0xE444, - 37549 - 11905: 0xE445, - 37550 - 11905: 0xF6C7, - 37551 - 11905: 0xE446, - 37552 - 11905: 0xE447, - 37553 - 11905: 0xE448, - 37554 - 11905: 0xE449, - 37555 - 11905: 0xE44A, - 37556 - 11905: 0xE44B, - 37557 - 11905: 0xE44C, - 37558 - 11905: 0xE44D, - 37559 - 11905: 0xE44E, - 37560 - 11905: 0xE44F, - 37561 - 11905: 0xE450, - 37562 - 11905: 0xE451, - 37563 - 11905: 0xE452, - 37564 - 11905: 0xE453, - 37565 - 11905: 0xE454, - 37566 - 11905: 0xE455, - 37567 - 11905: 0xE456, - 37568 - 11905: 0xE457, - 37569 - 11905: 0xE458, - 37570 - 11905: 0xE459, - 37571 - 11905: 0xE45A, - 37572 - 11905: 0xE45B, - 37573 - 11905: 0xE45C, - 37574 - 11905: 0xE45D, - 37575 - 11905: 0xE45E, - 37576 - 11905: 0xF6C8, - 37577 - 11905: 0xE45F, - 37578 - 11905: 0xE460, - 37579 - 11905: 0xE461, - 37580 - 11905: 0xE462, - 37581 - 11905: 0xE463, - 37582 - 11905: 0xE464, - 37583 - 11905: 0xE465, - 37584 - 11905: 0xE466, - 37585 - 11905: 0xE467, - 37586 - 11905: 0xE468, - 37587 - 11905: 0xE469, - 37588 - 11905: 0xE46A, - 37589 - 11905: 0xE46B, - 37590 - 11905: 0xE46C, - 37591 - 11905: 0xE46D, - 37592 - 11905: 0xE46E, - 37593 - 11905: 0xE46F, - 37594 - 11905: 0xE470, - 37595 - 11905: 0xE471, - 37596 - 11905: 0xE472, - 37597 - 11905: 0xE473, - 37598 - 11905: 0xE474, - 37599 - 11905: 0xE475, - 37600 - 11905: 0xE476, - 37601 - 11905: 0xE477, - 37602 - 11905: 0xE478, - 37603 - 11905: 0xE479, - 37604 - 11905: 0xE47A, - 37605 - 11905: 0xE47B, - 37606 - 11905: 0xE47C, - 37607 - 11905: 0xE47D, - 37608 - 11905: 0xE47E, - 37609 - 11905: 0xE480, - 37610 - 11905: 0xE481, - 37611 - 11905: 0xE482, - 37612 - 11905: 0xE483, - 37613 - 11905: 0xE484, - 37614 - 11905: 0xE485, - 37615 - 11905: 0xE486, - 37616 - 11905: 0xE487, - 37617 - 11905: 0xE488, - 37618 - 11905: 0xE489, - 37619 - 11905: 0xE48A, - 37620 - 11905: 0xE48B, - 37621 - 11905: 0xE48C, - 37622 - 11905: 0xE48D, - 37623 - 11905: 0xE48E, - 37624 - 11905: 0xE48F, - 37625 - 11905: 0xE490, - 37626 - 11905: 0xE491, - 37627 - 11905: 0xE492, - 37628 - 11905: 0xE493, - 37629 - 11905: 0xE494, - 37630 - 11905: 0xE495, - 37631 - 11905: 0xE496, - 37632 - 11905: 0xE497, - 37633 - 11905: 0xE498, - 37634 - 11905: 0xE499, - 37635 - 11905: 0xE49A, - 37636 - 11905: 0xE49B, - 37637 - 11905: 0xE49C, - 37638 - 11905: 0xE49D, - 37639 - 11905: 0xE49E, - 37640 - 11905: 0xE49F, - 37641 - 11905: 0xE4A0, - 37642 - 11905: 0xE540, - 37643 - 11905: 0xE541, - 37644 - 11905: 0xE542, - 37645 - 11905: 0xE543, - 37646 - 11905: 0xE544, - 37647 - 11905: 0xE545, - 37648 - 11905: 0xE546, - 37649 - 11905: 0xE547, - 37650 - 11905: 0xE548, - 37651 - 11905: 0xE549, - 37652 - 11905: 0xE54A, - 37653 - 11905: 0xE54B, - 37654 - 11905: 0xE54C, - 37655 - 11905: 0xE54D, - 37656 - 11905: 0xE54E, - 37657 - 11905: 0xE54F, - 37658 - 11905: 0xE550, - 37659 - 11905: 0xE551, - 37660 - 11905: 0xE552, - 37661 - 11905: 0xE553, - 37662 - 11905: 0xE554, - 37663 - 11905: 0xE555, - 37664 - 11905: 0xE556, - 37665 - 11905: 0xE557, - 37666 - 11905: 0xE558, - 37667 - 11905: 0xE559, - 37668 - 11905: 0xE55A, - 37669 - 11905: 0xE55B, - 37670 - 11905: 0xE55C, - 37671 - 11905: 0xE55D, - 37672 - 11905: 0xE55E, - 37673 - 11905: 0xE55F, - 37674 - 11905: 0xE560, - 37675 - 11905: 0xE561, - 37676 - 11905: 0xE562, - 37677 - 11905: 0xE563, - 37678 - 11905: 0xE564, - 37679 - 11905: 0xE565, - 37680 - 11905: 0xE566, - 37681 - 11905: 0xE567, - 37682 - 11905: 0xE568, - 37683 - 11905: 0xE569, - 37684 - 11905: 0xE56A, - 37685 - 11905: 0xE56B, - 37686 - 11905: 0xE56C, - 37687 - 11905: 0xE56D, - 37688 - 11905: 0xE56E, - 37689 - 11905: 0xE56F, - 37690 - 11905: 0xE570, - 37691 - 11905: 0xE571, - 37692 - 11905: 0xE572, - 37693 - 11905: 0xE573, - 37694 - 11905: 0xF6C9, - 37695 - 11905: 0xE574, - 37696 - 11905: 0xE575, - 37697 - 11905: 0xE576, - 37698 - 11905: 0xE577, - 37699 - 11905: 0xE578, - 37700 - 11905: 0xE579, - 37701 - 11905: 0xE57A, - 37702 - 11905: 0xE57B, - 37703 - 11905: 0xE57C, - 37704 - 11905: 0xE57D, - 37705 - 11905: 0xE57E, - 37706 - 11905: 0xE580, - 37707 - 11905: 0xE581, - 37708 - 11905: 0xE582, - 37709 - 11905: 0xE583, - 37710 - 11905: 0xE584, - 37711 - 11905: 0xE585, - 37712 - 11905: 0xE586, - 37713 - 11905: 0xE587, - 37714 - 11905: 0xE588, - 37715 - 11905: 0xE589, - 37716 - 11905: 0xE58A, - 37717 - 11905: 0xE58B, - 37718 - 11905: 0xE58C, - 37719 - 11905: 0xE58D, - 37720 - 11905: 0xE58E, - 37721 - 11905: 0xE58F, - 37722 - 11905: 0xE590, - 37723 - 11905: 0xE591, - 37724 - 11905: 0xE592, - 37725 - 11905: 0xE593, - 37726 - 11905: 0xE594, - 37727 - 11905: 0xE595, - 37728 - 11905: 0xE596, - 37729 - 11905: 0xE597, - 37730 - 11905: 0xE598, - 37731 - 11905: 0xE599, - 37732 - 11905: 0xE59A, - 37733 - 11905: 0xE59B, - 37734 - 11905: 0xE59C, - 37735 - 11905: 0xE59D, - 37736 - 11905: 0xE59E, - 37737 - 11905: 0xE59F, - 37738 - 11905: 0xF6CA, - 37739 - 11905: 0xE5A0, - 37740 - 11905: 0xE640, - 37741 - 11905: 0xE641, - 37742 - 11905: 0xE642, - 37743 - 11905: 0xE643, - 37744 - 11905: 0xE644, - 37745 - 11905: 0xE645, - 37746 - 11905: 0xE646, - 37747 - 11905: 0xE647, - 37748 - 11905: 0xE648, - 37749 - 11905: 0xE649, - 37750 - 11905: 0xE64A, - 37751 - 11905: 0xE64B, - 37752 - 11905: 0xE64C, - 37753 - 11905: 0xE64D, - 37754 - 11905: 0xE64E, - 37755 - 11905: 0xE64F, - 37756 - 11905: 0xE650, - 37757 - 11905: 0xE651, - 37758 - 11905: 0xE652, - 37759 - 11905: 0xE653, - 37760 - 11905: 0xE654, - 37761 - 11905: 0xE655, - 37762 - 11905: 0xE656, - 37763 - 11905: 0xE657, - 37764 - 11905: 0xE658, - 37765 - 11905: 0xE659, - 37766 - 11905: 0xE65A, - 37767 - 11905: 0xE65B, - 37768 - 11905: 0xE65C, - 37769 - 11905: 0xE65D, - 37770 - 11905: 0xE65E, - 37771 - 11905: 0xE65F, - 37772 - 11905: 0xE660, - 37773 - 11905: 0xE661, - 37774 - 11905: 0xE662, - 37775 - 11905: 0xF6CC, - 37776 - 11905: 0xE663, - 37777 - 11905: 0xE664, - 37778 - 11905: 0xE665, - 37779 - 11905: 0xE666, - 37780 - 11905: 0xE667, - 37781 - 11905: 0xE668, - 37782 - 11905: 0xE669, - 37783 - 11905: 0xE66A, - 37784 - 11905: 0xE66B, - 37785 - 11905: 0xE66C, - 37786 - 11905: 0xE66D, - 37787 - 11905: 0xE66E, - 37788 - 11905: 0xE66F, - 37789 - 11905: 0xE670, - 37790 - 11905: 0xE671, - 37791 - 11905: 0xE672, - 37792 - 11905: 0xE673, - 37793 - 11905: 0xE674, - 37794 - 11905: 0xE675, - 37795 - 11905: 0xE676, - 37796 - 11905: 0xE677, - 37797 - 11905: 0xE678, - 37798 - 11905: 0xE679, - 37799 - 11905: 0xE67A, - 37800 - 11905: 0xE67B, - 37801 - 11905: 0xE67C, - 37802 - 11905: 0xE67D, - 37803 - 11905: 0xE67E, - 37804 - 11905: 0xE680, - 37805 - 11905: 0xE681, - 37806 - 11905: 0xE682, - 37807 - 11905: 0xE683, - 37808 - 11905: 0xE684, - 37809 - 11905: 0xE685, - 37810 - 11905: 0xE686, - 37811 - 11905: 0xE687, - 37812 - 11905: 0xE688, - 37813 - 11905: 0xE689, - 37814 - 11905: 0xE68A, - 37815 - 11905: 0xE68B, - 37816 - 11905: 0xE68C, - 37817 - 11905: 0xE68D, - 37818 - 11905: 0xE68E, - 37819 - 11905: 0xE68F, - 37820 - 11905: 0xE690, - 37821 - 11905: 0xE691, - 37822 - 11905: 0xE692, - 37823 - 11905: 0xE693, - 37824 - 11905: 0xE694, - 37825 - 11905: 0xE695, - 37826 - 11905: 0xE696, - 37827 - 11905: 0xE697, - 37828 - 11905: 0xE698, - 37829 - 11905: 0xE699, - 37830 - 11905: 0xE69A, - 37831 - 11905: 0xE69B, - 37832 - 11905: 0xE69C, - 37833 - 11905: 0xE69D, - 37834 - 11905: 0xF6CB, - 37835 - 11905: 0xE69E, - 37836 - 11905: 0xE69F, - 37837 - 11905: 0xE6A0, - 37838 - 11905: 0xE740, - 37839 - 11905: 0xE741, - 37840 - 11905: 0xE742, - 37841 - 11905: 0xE743, - 37842 - 11905: 0xE744, - 37843 - 11905: 0xE745, - 37844 - 11905: 0xE746, - 37845 - 11905: 0xE747, - 37846 - 11905: 0xF7E9, - 37847 - 11905: 0xE748, - 37848 - 11905: 0xE749, - 37849 - 11905: 0xE74A, - 37850 - 11905: 0xE74B, - 37851 - 11905: 0xE74C, - 37852 - 11905: 0xE74D, - 37853 - 11905: 0xE74E, - 37854 - 11905: 0xE74F, - 37855 - 11905: 0xE750, - 37856 - 11905: 0xE751, - 37857 - 11905: 0xE752, - 37858 - 11905: 0xE753, - 37859 - 11905: 0xE754, - 37860 - 11905: 0xE755, - 37861 - 11905: 0xE756, - 37862 - 11905: 0xE757, - 37863 - 11905: 0xE758, - 37864 - 11905: 0xE759, - 37865 - 11905: 0xE75A, - 37866 - 11905: 0xE75B, - 37867 - 11905: 0xE75C, - 37868 - 11905: 0xE75D, - 37869 - 11905: 0xE75E, - 37870 - 11905: 0xE75F, - 37871 - 11905: 0xE760, - 37872 - 11905: 0xE761, - 37873 - 11905: 0xE762, - 37874 - 11905: 0xE763, - 37875 - 11905: 0xE764, - 37876 - 11905: 0xE765, - 37877 - 11905: 0xE766, - 37878 - 11905: 0xE767, - 37879 - 11905: 0xE768, - 37880 - 11905: 0xE769, - 37881 - 11905: 0xE76A, - 37882 - 11905: 0xE76B, - 37883 - 11905: 0xE76C, - 37884 - 11905: 0xE76D, - 37885 - 11905: 0xE76E, - 37886 - 11905: 0xE76F, - 37887 - 11905: 0xE770, - 37888 - 11905: 0xE771, - 37889 - 11905: 0xE772, - 37890 - 11905: 0xE773, - 37891 - 11905: 0xE774, - 37892 - 11905: 0xE775, - 37893 - 11905: 0xE776, - 37894 - 11905: 0xE777, - 37895 - 11905: 0xE778, - 37896 - 11905: 0xE779, - 37897 - 11905: 0xE77A, - 37898 - 11905: 0xE77B, - 37899 - 11905: 0xE77C, - 37900 - 11905: 0xE77D, - 37901 - 11905: 0xE77E, - 37902 - 11905: 0xE780, - 37903 - 11905: 0xE781, - 37904 - 11905: 0xE782, - 37905 - 11905: 0xE783, - 37906 - 11905: 0xE784, - 37907 - 11905: 0xE785, - 37908 - 11905: 0xE786, - 37909 - 11905: 0xE787, - 37910 - 11905: 0xE788, - 37911 - 11905: 0xE789, - 37912 - 11905: 0xE78A, - 37913 - 11905: 0xE78B, - 37914 - 11905: 0xE78C, - 37915 - 11905: 0xE78D, - 37916 - 11905: 0xE78E, - 37917 - 11905: 0xE78F, - 37918 - 11905: 0xE790, - 37919 - 11905: 0xE791, - 37920 - 11905: 0xE792, - 37921 - 11905: 0xE793, - 37922 - 11905: 0xE794, - 37923 - 11905: 0xE795, - 37924 - 11905: 0xE796, - 37925 - 11905: 0xE797, - 37926 - 11905: 0xE798, - 37927 - 11905: 0xE799, - 37928 - 11905: 0xE79A, - 37929 - 11905: 0xE79B, - 37930 - 11905: 0xE79C, - 37931 - 11905: 0xE79D, - 37932 - 11905: 0xE79E, - 37933 - 11905: 0xE79F, - 37934 - 11905: 0xE7A0, - 37935 - 11905: 0xE840, - 37936 - 11905: 0xE841, - 37937 - 11905: 0xE842, - 37938 - 11905: 0xE843, - 37939 - 11905: 0xE844, - 37940 - 11905: 0xE845, - 37941 - 11905: 0xE846, - 37942 - 11905: 0xE847, - 37943 - 11905: 0xE848, - 37944 - 11905: 0xE849, - 37945 - 11905: 0xE84A, - 37946 - 11905: 0xE84B, - 37947 - 11905: 0xE84C, - 37948 - 11905: 0xE84D, - 37949 - 11905: 0xE84E, - 37950 - 11905: 0xF6CD, - 37951 - 11905: 0xE84F, - 37952 - 11905: 0xE850, - 37953 - 11905: 0xE851, - 37954 - 11905: 0xE852, - 37955 - 11905: 0xE853, - 37956 - 11905: 0xE854, - 37957 - 11905: 0xE855, - 37958 - 11905: 0xE856, - 37959 - 11905: 0xE857, - 37960 - 11905: 0xE858, - 37961 - 11905: 0xE859, - 37962 - 11905: 0xE85A, - 37963 - 11905: 0xE85B, - 37964 - 11905: 0xE85C, - 37965 - 11905: 0xE85D, - 37966 - 11905: 0xE85E, - 37967 - 11905: 0xE85F, - 37968 - 11905: 0xE860, - 37969 - 11905: 0xE861, - 37970 - 11905: 0xE862, - 37971 - 11905: 0xE863, - 37972 - 11905: 0xE864, - 37973 - 11905: 0xE865, - 37974 - 11905: 0xE866, - 37975 - 11905: 0xE867, - 37976 - 11905: 0xE868, - 37977 - 11905: 0xE869, - 37978 - 11905: 0xE86A, - 37979 - 11905: 0xE86B, - 37980 - 11905: 0xE86C, - 37981 - 11905: 0xE86D, - 37982 - 11905: 0xE86E, - 37983 - 11905: 0xE86F, - 37984 - 11905: 0xE870, - 37985 - 11905: 0xE871, - 37986 - 11905: 0xE872, - 37987 - 11905: 0xE873, - 37988 - 11905: 0xE874, - 37989 - 11905: 0xE875, - 37990 - 11905: 0xE876, - 37991 - 11905: 0xE877, - 37992 - 11905: 0xE878, - 37993 - 11905: 0xE879, - 37994 - 11905: 0xE87A, - 37995 - 11905: 0xF6CE, - 37996 - 11905: 0xE87B, - 37997 - 11905: 0xE87C, - 37998 - 11905: 0xE87D, - 37999 - 11905: 0xE87E, - 38000 - 11905: 0xE880, - 38001 - 11905: 0xE881, - 38002 - 11905: 0xE882, - 38003 - 11905: 0xE883, - 38004 - 11905: 0xE884, - 38005 - 11905: 0xE885, - 38006 - 11905: 0xE886, - 38007 - 11905: 0xE887, - 38008 - 11905: 0xE888, - 38009 - 11905: 0xE889, - 38010 - 11905: 0xE88A, - 38011 - 11905: 0xE88B, - 38012 - 11905: 0xE88C, - 38013 - 11905: 0xE88D, - 38014 - 11905: 0xE88E, - 38015 - 11905: 0xE88F, - 38016 - 11905: 0xE890, - 38017 - 11905: 0xE891, - 38018 - 11905: 0xE892, - 38019 - 11905: 0xE893, - 38020 - 11905: 0xE894, - 38021 - 11905: 0xEEC4, - 38022 - 11905: 0xEEC5, - 38023 - 11905: 0xEEC6, - 38024 - 11905: 0xD5EB, - 38025 - 11905: 0xB6A4, - 38026 - 11905: 0xEEC8, - 38027 - 11905: 0xEEC7, - 38028 - 11905: 0xEEC9, - 38029 - 11905: 0xEECA, - 38030 - 11905: 0xC7A5, - 38031 - 11905: 0xEECB, - 38032 - 11905: 0xEECC, - 38033 - 11905: 0xE895, - 38034 - 11905: 0xB7B0, - 38035 - 11905: 0xB5F6, - 38036 - 11905: 0xEECD, - 38037 - 11905: 0xEECF, - 38038 - 11905: 0xE896, - 38039 - 11905: 0xEECE, - 38040 - 11905: 0xE897, - 38041 - 11905: 0xB8C6, - 38042 - 11905: 0xEED0, - 38043 - 11905: 0xEED1, - 38044 - 11905: 0xEED2, - 38045 - 11905: 0xB6DB, - 38046 - 11905: 0xB3AE, - 38047 - 11905: 0xD6D3, - 38048 - 11905: 0xC4C6, - 38049 - 11905: 0xB1B5, - 38050 - 11905: 0xB8D6, - 38051 - 11905: 0xEED3, - 38052 - 11905: 0xEED4, - 38053 - 11905: 0xD4BF, - 38054 - 11905: 0xC7D5, - 38055 - 11905: 0xBEFB, - 38056 - 11905: 0xCED9, - 38057 - 11905: 0xB9B3, - 38058 - 11905: 0xEED6, - 38059 - 11905: 0xEED5, - 38060 - 11905: 0xEED8, - 38061 - 11905: 0xEED7, - 38062 - 11905: 0xC5A5, - 38063 - 11905: 0xEED9, - 38064 - 11905: 0xEEDA, - 38065 - 11905: 0xC7AE, - 38066 - 11905: 0xEEDB, - 38067 - 11905: 0xC7AF, - 38068 - 11905: 0xEEDC, - 38069 - 11905: 0xB2A7, - 38070 - 11905: 0xEEDD, - 38071 - 11905: 0xEEDE, - 38072 - 11905: 0xEEDF, - 38073 - 11905: 0xEEE0, - 38074 - 11905: 0xEEE1, - 38075 - 11905: 0xD7EA, - 38076 - 11905: 0xEEE2, - 38077 - 11905: 0xEEE3, - 38078 - 11905: 0xBCD8, - 38079 - 11905: 0xEEE4, - 38080 - 11905: 0xD3CB, - 38081 - 11905: 0xCCFA, - 38082 - 11905: 0xB2AC, - 38083 - 11905: 0xC1E5, - 38084 - 11905: 0xEEE5, - 38085 - 11905: 0xC7A6, - 38086 - 11905: 0xC3AD, - 38087 - 11905: 0xE898, - 38088 - 11905: 0xEEE6, - 38089 - 11905: 0xEEE7, - 38090 - 11905: 0xEEE8, - 38091 - 11905: 0xEEE9, - 38092 - 11905: 0xEEEA, - 38093 - 11905: 0xEEEB, - 38094 - 11905: 0xEEEC, - 38095 - 11905: 0xE899, - 38096 - 11905: 0xEEED, - 38097 - 11905: 0xEEEE, - 38098 - 11905: 0xEEEF, - 38099 - 11905: 0xE89A, - 38100 - 11905: 0xE89B, - 38101 - 11905: 0xEEF0, - 38102 - 11905: 0xEEF1, - 38103 - 11905: 0xEEF2, - 38104 - 11905: 0xEEF4, - 38105 - 11905: 0xEEF3, - 38106 - 11905: 0xE89C, - 38107 - 11905: 0xEEF5, - 38108 - 11905: 0xCDAD, - 38109 - 11905: 0xC2C1, - 38110 - 11905: 0xEEF6, - 38111 - 11905: 0xEEF7, - 38112 - 11905: 0xEEF8, - 38113 - 11905: 0xD5A1, - 38114 - 11905: 0xEEF9, - 38115 - 11905: 0xCFB3, - 38116 - 11905: 0xEEFA, - 38117 - 11905: 0xEEFB, - 38118 - 11905: 0xE89D, - 38119 - 11905: 0xEEFC, - 38120 - 11905: 0xEEFD, - 38121 - 11905: 0xEFA1, - 38122 - 11905: 0xEEFE, - 38123 - 11905: 0xEFA2, - 38124 - 11905: 0xB8F5, - 38125 - 11905: 0xC3FA, - 38126 - 11905: 0xEFA3, - 38127 - 11905: 0xEFA4, - 38128 - 11905: 0xBDC2, - 38129 - 11905: 0xD2BF, - 38130 - 11905: 0xB2F9, - 38131 - 11905: 0xEFA5, - 38132 - 11905: 0xEFA6, - 38133 - 11905: 0xEFA7, - 38134 - 11905: 0xD2F8, - 38135 - 11905: 0xEFA8, - 38136 - 11905: 0xD6FD, - 38137 - 11905: 0xEFA9, - 38138 - 11905: 0xC6CC, - 38139 - 11905: 0xE89E, - 38140 - 11905: 0xEFAA, - 38141 - 11905: 0xEFAB, - 38142 - 11905: 0xC1B4, - 38143 - 11905: 0xEFAC, - 38144 - 11905: 0xCFFA, - 38145 - 11905: 0xCBF8, - 38146 - 11905: 0xEFAE, - 38147 - 11905: 0xEFAD, - 38148 - 11905: 0xB3FA, - 38149 - 11905: 0xB9F8, - 38150 - 11905: 0xEFAF, - 38151 - 11905: 0xEFB0, - 38152 - 11905: 0xD0E2, - 38153 - 11905: 0xEFB1, - 38154 - 11905: 0xEFB2, - 38155 - 11905: 0xB7E6, - 38156 - 11905: 0xD0BF, - 38157 - 11905: 0xEFB3, - 38158 - 11905: 0xEFB4, - 38159 - 11905: 0xEFB5, - 38160 - 11905: 0xC8F1, - 38161 - 11905: 0xCCE0, - 38162 - 11905: 0xEFB6, - 38163 - 11905: 0xEFB7, - 38164 - 11905: 0xEFB8, - 38165 - 11905: 0xEFB9, - 38166 - 11905: 0xEFBA, - 38167 - 11905: 0xD5E0, - 38168 - 11905: 0xEFBB, - 38169 - 11905: 0xB4ED, - 38170 - 11905: 0xC3AA, - 38171 - 11905: 0xEFBC, - 38172 - 11905: 0xE89F, - 38173 - 11905: 0xEFBD, - 38174 - 11905: 0xEFBE, - 38175 - 11905: 0xEFBF, - 38176 - 11905: 0xE8A0, - 38177 - 11905: 0xCEFD, - 38178 - 11905: 0xEFC0, - 38179 - 11905: 0xC2E0, - 38180 - 11905: 0xB4B8, - 38181 - 11905: 0xD7B6, - 38182 - 11905: 0xBDF5, - 38183 - 11905: 0xE940, - 38184 - 11905: 0xCFC7, - 38185 - 11905: 0xEFC3, - 38186 - 11905: 0xEFC1, - 38187 - 11905: 0xEFC2, - 38188 - 11905: 0xEFC4, - 38189 - 11905: 0xB6A7, - 38190 - 11905: 0xBCFC, - 38191 - 11905: 0xBEE2, - 38192 - 11905: 0xC3CC, - 38193 - 11905: 0xEFC5, - 38194 - 11905: 0xEFC6, - 38195 - 11905: 0xE941, - 38196 - 11905: 0xEFC7, - 38197 - 11905: 0xEFCF, - 38198 - 11905: 0xEFC8, - 38199 - 11905: 0xEFC9, - 38200 - 11905: 0xEFCA, - 38201 - 11905: 0xC7C2, - 38202 - 11905: 0xEFF1, - 38203 - 11905: 0xB6CD, - 38204 - 11905: 0xEFCB, - 38205 - 11905: 0xE942, - 38206 - 11905: 0xEFCC, - 38207 - 11905: 0xEFCD, - 38208 - 11905: 0xB6C6, - 38209 - 11905: 0xC3BE, - 38210 - 11905: 0xEFCE, - 38211 - 11905: 0xE943, - 38212 - 11905: 0xEFD0, - 38213 - 11905: 0xEFD1, - 38214 - 11905: 0xEFD2, - 38215 - 11905: 0xD5F2, - 38216 - 11905: 0xE944, - 38217 - 11905: 0xEFD3, - 38218 - 11905: 0xC4F7, - 38219 - 11905: 0xE945, - 38220 - 11905: 0xEFD4, - 38221 - 11905: 0xC4F8, - 38222 - 11905: 0xEFD5, - 38223 - 11905: 0xEFD6, - 38224 - 11905: 0xB8E4, - 38225 - 11905: 0xB0F7, - 38226 - 11905: 0xEFD7, - 38227 - 11905: 0xEFD8, - 38228 - 11905: 0xEFD9, - 38229 - 11905: 0xE946, - 38230 - 11905: 0xEFDA, - 38231 - 11905: 0xEFDB, - 38232 - 11905: 0xEFDC, - 38233 - 11905: 0xEFDD, - 38234 - 11905: 0xE947, - 38235 - 11905: 0xEFDE, - 38236 - 11905: 0xBEB5, - 38237 - 11905: 0xEFE1, - 38238 - 11905: 0xEFDF, - 38239 - 11905: 0xEFE0, - 38240 - 11905: 0xE948, - 38241 - 11905: 0xEFE2, - 38242 - 11905: 0xEFE3, - 38243 - 11905: 0xC1CD, - 38244 - 11905: 0xEFE4, - 38245 - 11905: 0xEFE5, - 38246 - 11905: 0xEFE6, - 38247 - 11905: 0xEFE7, - 38248 - 11905: 0xEFE8, - 38249 - 11905: 0xEFE9, - 38250 - 11905: 0xEFEA, - 38251 - 11905: 0xEFEB, - 38252 - 11905: 0xEFEC, - 38253 - 11905: 0xC0D8, - 38254 - 11905: 0xE949, - 38255 - 11905: 0xEFED, - 38256 - 11905: 0xC1AD, - 38257 - 11905: 0xEFEE, - 38258 - 11905: 0xEFEF, - 38259 - 11905: 0xEFF0, - 38260 - 11905: 0xE94A, - 38261 - 11905: 0xE94B, - 38262 - 11905: 0xCFE2, - 38263 - 11905: 0xE94C, - 38264 - 11905: 0xE94D, - 38265 - 11905: 0xE94E, - 38266 - 11905: 0xE94F, - 38267 - 11905: 0xE950, - 38268 - 11905: 0xE951, - 38269 - 11905: 0xE952, - 38270 - 11905: 0xE953, - 38271 - 11905: 0xB3A4, - 38272 - 11905: 0xE954, - 38273 - 11905: 0xE955, - 38274 - 11905: 0xE956, - 38275 - 11905: 0xE957, - 38276 - 11905: 0xE958, - 38277 - 11905: 0xE959, - 38278 - 11905: 0xE95A, - 38279 - 11905: 0xE95B, - 38280 - 11905: 0xE95C, - 38281 - 11905: 0xE95D, - 38282 - 11905: 0xE95E, - 38283 - 11905: 0xE95F, - 38284 - 11905: 0xE960, - 38285 - 11905: 0xE961, - 38286 - 11905: 0xE962, - 38287 - 11905: 0xE963, - 38288 - 11905: 0xE964, - 38289 - 11905: 0xE965, - 38290 - 11905: 0xE966, - 38291 - 11905: 0xE967, - 38292 - 11905: 0xE968, - 38293 - 11905: 0xE969, - 38294 - 11905: 0xE96A, - 38295 - 11905: 0xE96B, - 38296 - 11905: 0xE96C, - 38297 - 11905: 0xE96D, - 38298 - 11905: 0xE96E, - 38299 - 11905: 0xE96F, - 38300 - 11905: 0xE970, - 38301 - 11905: 0xE971, - 38302 - 11905: 0xE972, - 38303 - 11905: 0xE973, - 38304 - 11905: 0xE974, - 38305 - 11905: 0xE975, - 38306 - 11905: 0xE976, - 38307 - 11905: 0xE977, - 38308 - 11905: 0xE978, - 38309 - 11905: 0xE979, - 38310 - 11905: 0xE97A, - 38311 - 11905: 0xE97B, - 38312 - 11905: 0xE97C, - 38313 - 11905: 0xE97D, - 38314 - 11905: 0xE97E, - 38315 - 11905: 0xE980, - 38316 - 11905: 0xE981, - 38317 - 11905: 0xE982, - 38318 - 11905: 0xE983, - 38319 - 11905: 0xE984, - 38320 - 11905: 0xE985, - 38321 - 11905: 0xE986, - 38322 - 11905: 0xE987, - 38323 - 11905: 0xE988, - 38324 - 11905: 0xE989, - 38325 - 11905: 0xE98A, - 38326 - 11905: 0xE98B, - 38327 - 11905: 0xE98C, - 38328 - 11905: 0xE98D, - 38329 - 11905: 0xE98E, - 38330 - 11905: 0xE98F, - 38331 - 11905: 0xE990, - 38332 - 11905: 0xE991, - 38333 - 11905: 0xE992, - 38334 - 11905: 0xE993, - 38335 - 11905: 0xE994, - 38336 - 11905: 0xE995, - 38337 - 11905: 0xE996, - 38338 - 11905: 0xE997, - 38339 - 11905: 0xE998, - 38340 - 11905: 0xE999, - 38341 - 11905: 0xE99A, - 38342 - 11905: 0xE99B, - 38343 - 11905: 0xE99C, - 38344 - 11905: 0xE99D, - 38345 - 11905: 0xE99E, - 38346 - 11905: 0xE99F, - 38347 - 11905: 0xE9A0, - 38348 - 11905: 0xEA40, - 38349 - 11905: 0xEA41, - 38350 - 11905: 0xEA42, - 38351 - 11905: 0xEA43, - 38352 - 11905: 0xEA44, - 38353 - 11905: 0xEA45, - 38354 - 11905: 0xEA46, - 38355 - 11905: 0xEA47, - 38356 - 11905: 0xEA48, - 38357 - 11905: 0xEA49, - 38358 - 11905: 0xEA4A, - 38359 - 11905: 0xEA4B, - 38360 - 11905: 0xEA4C, - 38361 - 11905: 0xEA4D, - 38362 - 11905: 0xEA4E, - 38363 - 11905: 0xEA4F, - 38364 - 11905: 0xEA50, - 38365 - 11905: 0xEA51, - 38366 - 11905: 0xEA52, - 38367 - 11905: 0xEA53, - 38368 - 11905: 0xEA54, - 38369 - 11905: 0xEA55, - 38370 - 11905: 0xEA56, - 38371 - 11905: 0xEA57, - 38372 - 11905: 0xEA58, - 38373 - 11905: 0xEA59, - 38374 - 11905: 0xEA5A, - 38375 - 11905: 0xEA5B, - 38376 - 11905: 0xC3C5, - 38377 - 11905: 0xE3C5, - 38378 - 11905: 0xC9C1, - 38379 - 11905: 0xE3C6, - 38380 - 11905: 0xEA5C, - 38381 - 11905: 0xB1D5, - 38382 - 11905: 0xCECA, - 38383 - 11905: 0xB4B3, - 38384 - 11905: 0xC8F2, - 38385 - 11905: 0xE3C7, - 38386 - 11905: 0xCFD0, - 38387 - 11905: 0xE3C8, - 38388 - 11905: 0xBCE4, - 38389 - 11905: 0xE3C9, - 38390 - 11905: 0xE3CA, - 38391 - 11905: 0xC3C6, - 38392 - 11905: 0xD5A2, - 38393 - 11905: 0xC4D6, - 38394 - 11905: 0xB9EB, - 38395 - 11905: 0xCEC5, - 38396 - 11905: 0xE3CB, - 38397 - 11905: 0xC3F6, - 38398 - 11905: 0xE3CC, - 38399 - 11905: 0xEA5D, - 38400 - 11905: 0xB7A7, - 38401 - 11905: 0xB8F3, - 38402 - 11905: 0xBAD2, - 38403 - 11905: 0xE3CD, - 38404 - 11905: 0xE3CE, - 38405 - 11905: 0xD4C4, - 38406 - 11905: 0xE3CF, - 38407 - 11905: 0xEA5E, - 38408 - 11905: 0xE3D0, - 38409 - 11905: 0xD1CB, - 38410 - 11905: 0xE3D1, - 38411 - 11905: 0xE3D2, - 38412 - 11905: 0xE3D3, - 38413 - 11905: 0xE3D4, - 38414 - 11905: 0xD1D6, - 38415 - 11905: 0xE3D5, - 38416 - 11905: 0xB2FB, - 38417 - 11905: 0xC0BB, - 38418 - 11905: 0xE3D6, - 38419 - 11905: 0xEA5F, - 38420 - 11905: 0xC0AB, - 38421 - 11905: 0xE3D7, - 38422 - 11905: 0xE3D8, - 38423 - 11905: 0xE3D9, - 38424 - 11905: 0xEA60, - 38425 - 11905: 0xE3DA, - 38426 - 11905: 0xE3DB, - 38427 - 11905: 0xEA61, - 38428 - 11905: 0xB8B7, - 38429 - 11905: 0xDAE2, - 38430 - 11905: 0xEA62, - 38431 - 11905: 0xB6D3, - 38432 - 11905: 0xEA63, - 38433 - 11905: 0xDAE4, - 38434 - 11905: 0xDAE3, - 38435 - 11905: 0xEA64, - 38436 - 11905: 0xEA65, - 38437 - 11905: 0xEA66, - 38438 - 11905: 0xEA67, - 38439 - 11905: 0xEA68, - 38440 - 11905: 0xEA69, - 38441 - 11905: 0xEA6A, - 38442 - 11905: 0xDAE6, - 38443 - 11905: 0xEA6B, - 38444 - 11905: 0xEA6C, - 38445 - 11905: 0xEA6D, - 38446 - 11905: 0xC8EE, - 38447 - 11905: 0xEA6E, - 38448 - 11905: 0xEA6F, - 38449 - 11905: 0xDAE5, - 38450 - 11905: 0xB7C0, - 38451 - 11905: 0xD1F4, - 38452 - 11905: 0xD2F5, - 38453 - 11905: 0xD5F3, - 38454 - 11905: 0xBDD7, - 38455 - 11905: 0xEA70, - 38456 - 11905: 0xEA71, - 38457 - 11905: 0xEA72, - 38458 - 11905: 0xEA73, - 38459 - 11905: 0xD7E8, - 38460 - 11905: 0xDAE8, - 38461 - 11905: 0xDAE7, - 38462 - 11905: 0xEA74, - 38463 - 11905: 0xB0A2, - 38464 - 11905: 0xCDD3, - 38465 - 11905: 0xEA75, - 38466 - 11905: 0xDAE9, - 38467 - 11905: 0xEA76, - 38468 - 11905: 0xB8BD, - 38469 - 11905: 0xBCCA, - 38470 - 11905: 0xC2BD, - 38471 - 11905: 0xC2A4, - 38472 - 11905: 0xB3C2, - 38473 - 11905: 0xDAEA, - 38474 - 11905: 0xEA77, - 38475 - 11905: 0xC2AA, - 38476 - 11905: 0xC4B0, - 38477 - 11905: 0xBDB5, - 38478 - 11905: 0xEA78, - 38479 - 11905: 0xEA79, - 38480 - 11905: 0xCFDE, - 38481 - 11905: 0xEA7A, - 38482 - 11905: 0xEA7B, - 38483 - 11905: 0xEA7C, - 38484 - 11905: 0xDAEB, - 38485 - 11905: 0xC9C2, - 38486 - 11905: 0xEA7D, - 38487 - 11905: 0xEA7E, - 38488 - 11905: 0xEA80, - 38489 - 11905: 0xEA81, - 38490 - 11905: 0xEA82, - 38491 - 11905: 0xB1DD, - 38492 - 11905: 0xEA83, - 38493 - 11905: 0xEA84, - 38494 - 11905: 0xEA85, - 38495 - 11905: 0xDAEC, - 38496 - 11905: 0xEA86, - 38497 - 11905: 0xB6B8, - 38498 - 11905: 0xD4BA, - 38499 - 11905: 0xEA87, - 38500 - 11905: 0xB3FD, - 38501 - 11905: 0xEA88, - 38502 - 11905: 0xEA89, - 38503 - 11905: 0xDAED, - 38504 - 11905: 0xD4C9, - 38505 - 11905: 0xCFD5, - 38506 - 11905: 0xC5E3, - 38507 - 11905: 0xEA8A, - 38508 - 11905: 0xDAEE, - 38509 - 11905: 0xEA8B, - 38510 - 11905: 0xEA8C, - 38511 - 11905: 0xEA8D, - 38512 - 11905: 0xEA8E, - 38513 - 11905: 0xEA8F, - 38514 - 11905: 0xDAEF, - 38515 - 11905: 0xEA90, - 38516 - 11905: 0xDAF0, - 38517 - 11905: 0xC1EA, - 38518 - 11905: 0xCCD5, - 38519 - 11905: 0xCFDD, - 38520 - 11905: 0xEA91, - 38521 - 11905: 0xEA92, - 38522 - 11905: 0xEA93, - 38523 - 11905: 0xEA94, - 38524 - 11905: 0xEA95, - 38525 - 11905: 0xEA96, - 38526 - 11905: 0xEA97, - 38527 - 11905: 0xEA98, - 38528 - 11905: 0xEA99, - 38529 - 11905: 0xEA9A, - 38530 - 11905: 0xEA9B, - 38531 - 11905: 0xEA9C, - 38532 - 11905: 0xEA9D, - 38533 - 11905: 0xD3E7, - 38534 - 11905: 0xC2A1, - 38535 - 11905: 0xEA9E, - 38536 - 11905: 0xDAF1, - 38537 - 11905: 0xEA9F, - 38538 - 11905: 0xEAA0, - 38539 - 11905: 0xCBE5, - 38540 - 11905: 0xEB40, - 38541 - 11905: 0xDAF2, - 38542 - 11905: 0xEB41, - 38543 - 11905: 0xCBE6, - 38544 - 11905: 0xD2FE, - 38545 - 11905: 0xEB42, - 38546 - 11905: 0xEB43, - 38547 - 11905: 0xEB44, - 38548 - 11905: 0xB8F4, - 38549 - 11905: 0xEB45, - 38550 - 11905: 0xEB46, - 38551 - 11905: 0xDAF3, - 38552 - 11905: 0xB0AF, - 38553 - 11905: 0xCFB6, - 38554 - 11905: 0xEB47, - 38555 - 11905: 0xEB48, - 38556 - 11905: 0xD5CF, - 38557 - 11905: 0xEB49, - 38558 - 11905: 0xEB4A, - 38559 - 11905: 0xEB4B, - 38560 - 11905: 0xEB4C, - 38561 - 11905: 0xEB4D, - 38562 - 11905: 0xEB4E, - 38563 - 11905: 0xEB4F, - 38564 - 11905: 0xEB50, - 38565 - 11905: 0xEB51, - 38566 - 11905: 0xEB52, - 38567 - 11905: 0xCBED, - 38568 - 11905: 0xEB53, - 38569 - 11905: 0xEB54, - 38570 - 11905: 0xEB55, - 38571 - 11905: 0xEB56, - 38572 - 11905: 0xEB57, - 38573 - 11905: 0xEB58, - 38574 - 11905: 0xEB59, - 38575 - 11905: 0xEB5A, - 38576 - 11905: 0xDAF4, - 38577 - 11905: 0xEB5B, - 38578 - 11905: 0xEB5C, - 38579 - 11905: 0xE3C4, - 38580 - 11905: 0xEB5D, - 38581 - 11905: 0xEB5E, - 38582 - 11905: 0xC1A5, - 38583 - 11905: 0xEB5F, - 38584 - 11905: 0xEB60, - 38585 - 11905: 0xF6BF, - 38586 - 11905: 0xEB61, - 38587 - 11905: 0xEB62, - 38588 - 11905: 0xF6C0, - 38589 - 11905: 0xF6C1, - 38590 - 11905: 0xC4D1, - 38591 - 11905: 0xEB63, - 38592 - 11905: 0xC8B8, - 38593 - 11905: 0xD1E3, - 38594 - 11905: 0xEB64, - 38595 - 11905: 0xEB65, - 38596 - 11905: 0xD0DB, - 38597 - 11905: 0xD1C5, - 38598 - 11905: 0xBCAF, - 38599 - 11905: 0xB9CD, - 38600 - 11905: 0xEB66, - 38601 - 11905: 0xEFF4, - 38602 - 11905: 0xEB67, - 38603 - 11905: 0xEB68, - 38604 - 11905: 0xB4C6, - 38605 - 11905: 0xD3BA, - 38606 - 11905: 0xF6C2, - 38607 - 11905: 0xB3FB, - 38608 - 11905: 0xEB69, - 38609 - 11905: 0xEB6A, - 38610 - 11905: 0xF6C3, - 38611 - 11905: 0xEB6B, - 38612 - 11905: 0xEB6C, - 38613 - 11905: 0xB5F1, - 38614 - 11905: 0xEB6D, - 38615 - 11905: 0xEB6E, - 38616 - 11905: 0xEB6F, - 38617 - 11905: 0xEB70, - 38618 - 11905: 0xEB71, - 38619 - 11905: 0xEB72, - 38620 - 11905: 0xEB73, - 38621 - 11905: 0xEB74, - 38622 - 11905: 0xEB75, - 38623 - 11905: 0xEB76, - 38624 - 11905: 0xF6C5, - 38625 - 11905: 0xEB77, - 38626 - 11905: 0xEB78, - 38627 - 11905: 0xEB79, - 38628 - 11905: 0xEB7A, - 38629 - 11905: 0xEB7B, - 38630 - 11905: 0xEB7C, - 38631 - 11905: 0xEB7D, - 38632 - 11905: 0xD3EA, - 38633 - 11905: 0xF6A7, - 38634 - 11905: 0xD1A9, - 38635 - 11905: 0xEB7E, - 38636 - 11905: 0xEB80, - 38637 - 11905: 0xEB81, - 38638 - 11905: 0xEB82, - 38639 - 11905: 0xF6A9, - 38640 - 11905: 0xEB83, - 38641 - 11905: 0xEB84, - 38642 - 11905: 0xEB85, - 38643 - 11905: 0xF6A8, - 38644 - 11905: 0xEB86, - 38645 - 11905: 0xEB87, - 38646 - 11905: 0xC1E3, - 38647 - 11905: 0xC0D7, - 38648 - 11905: 0xEB88, - 38649 - 11905: 0xB1A2, - 38650 - 11905: 0xEB89, - 38651 - 11905: 0xEB8A, - 38652 - 11905: 0xEB8B, - 38653 - 11905: 0xEB8C, - 38654 - 11905: 0xCEED, - 38655 - 11905: 0xEB8D, - 38656 - 11905: 0xD0E8, - 38657 - 11905: 0xF6AB, - 38658 - 11905: 0xEB8E, - 38659 - 11905: 0xEB8F, - 38660 - 11905: 0xCFF6, - 38661 - 11905: 0xEB90, - 38662 - 11905: 0xF6AA, - 38663 - 11905: 0xD5F0, - 38664 - 11905: 0xF6AC, - 38665 - 11905: 0xC3B9, - 38666 - 11905: 0xEB91, - 38667 - 11905: 0xEB92, - 38668 - 11905: 0xEB93, - 38669 - 11905: 0xBBF4, - 38670 - 11905: 0xF6AE, - 38671 - 11905: 0xF6AD, - 38672 - 11905: 0xEB94, - 38673 - 11905: 0xEB95, - 38674 - 11905: 0xEB96, - 38675 - 11905: 0xC4DE, - 38676 - 11905: 0xEB97, - 38677 - 11905: 0xEB98, - 38678 - 11905: 0xC1D8, - 38679 - 11905: 0xEB99, - 38680 - 11905: 0xEB9A, - 38681 - 11905: 0xEB9B, - 38682 - 11905: 0xEB9C, - 38683 - 11905: 0xEB9D, - 38684 - 11905: 0xCBAA, - 38685 - 11905: 0xEB9E, - 38686 - 11905: 0xCFBC, - 38687 - 11905: 0xEB9F, - 38688 - 11905: 0xEBA0, - 38689 - 11905: 0xEC40, - 38690 - 11905: 0xEC41, - 38691 - 11905: 0xEC42, - 38692 - 11905: 0xEC43, - 38693 - 11905: 0xEC44, - 38694 - 11905: 0xEC45, - 38695 - 11905: 0xEC46, - 38696 - 11905: 0xEC47, - 38697 - 11905: 0xEC48, - 38698 - 11905: 0xF6AF, - 38699 - 11905: 0xEC49, - 38700 - 11905: 0xEC4A, - 38701 - 11905: 0xF6B0, - 38702 - 11905: 0xEC4B, - 38703 - 11905: 0xEC4C, - 38704 - 11905: 0xF6B1, - 38705 - 11905: 0xEC4D, - 38706 - 11905: 0xC2B6, - 38707 - 11905: 0xEC4E, - 38708 - 11905: 0xEC4F, - 38709 - 11905: 0xEC50, - 38710 - 11905: 0xEC51, - 38711 - 11905: 0xEC52, - 38712 - 11905: 0xB0D4, - 38713 - 11905: 0xC5F9, - 38714 - 11905: 0xEC53, - 38715 - 11905: 0xEC54, - 38716 - 11905: 0xEC55, - 38717 - 11905: 0xEC56, - 38718 - 11905: 0xF6B2, - 38719 - 11905: 0xEC57, - 38720 - 11905: 0xEC58, - 38721 - 11905: 0xEC59, - 38722 - 11905: 0xEC5A, - 38723 - 11905: 0xEC5B, - 38724 - 11905: 0xEC5C, - 38725 - 11905: 0xEC5D, - 38726 - 11905: 0xEC5E, - 38727 - 11905: 0xEC5F, - 38728 - 11905: 0xEC60, - 38729 - 11905: 0xEC61, - 38730 - 11905: 0xEC62, - 38731 - 11905: 0xEC63, - 38732 - 11905: 0xEC64, - 38733 - 11905: 0xEC65, - 38734 - 11905: 0xEC66, - 38735 - 11905: 0xEC67, - 38736 - 11905: 0xEC68, - 38737 - 11905: 0xEC69, - 38738 - 11905: 0xC7E0, - 38739 - 11905: 0xF6A6, - 38740 - 11905: 0xEC6A, - 38741 - 11905: 0xEC6B, - 38742 - 11905: 0xBEB8, - 38743 - 11905: 0xEC6C, - 38744 - 11905: 0xEC6D, - 38745 - 11905: 0xBEB2, - 38746 - 11905: 0xEC6E, - 38747 - 11905: 0xB5E5, - 38748 - 11905: 0xEC6F, - 38749 - 11905: 0xEC70, - 38750 - 11905: 0xB7C7, - 38751 - 11905: 0xEC71, - 38752 - 11905: 0xBFBF, - 38753 - 11905: 0xC3D2, - 38754 - 11905: 0xC3E6, - 38755 - 11905: 0xEC72, - 38756 - 11905: 0xEC73, - 38757 - 11905: 0xD8CC, - 38758 - 11905: 0xEC74, - 38759 - 11905: 0xEC75, - 38760 - 11905: 0xEC76, - 38761 - 11905: 0xB8EF, - 38762 - 11905: 0xEC77, - 38763 - 11905: 0xEC78, - 38764 - 11905: 0xEC79, - 38765 - 11905: 0xEC7A, - 38766 - 11905: 0xEC7B, - 38767 - 11905: 0xEC7C, - 38768 - 11905: 0xEC7D, - 38769 - 11905: 0xEC7E, - 38770 - 11905: 0xEC80, - 38771 - 11905: 0xBDF9, - 38772 - 11905: 0xD1A5, - 38773 - 11905: 0xEC81, - 38774 - 11905: 0xB0D0, - 38775 - 11905: 0xEC82, - 38776 - 11905: 0xEC83, - 38777 - 11905: 0xEC84, - 38778 - 11905: 0xEC85, - 38779 - 11905: 0xEC86, - 38780 - 11905: 0xF7B0, - 38781 - 11905: 0xEC87, - 38782 - 11905: 0xEC88, - 38783 - 11905: 0xEC89, - 38784 - 11905: 0xEC8A, - 38785 - 11905: 0xEC8B, - 38786 - 11905: 0xEC8C, - 38787 - 11905: 0xEC8D, - 38788 - 11905: 0xEC8E, - 38789 - 11905: 0xF7B1, - 38790 - 11905: 0xEC8F, - 38791 - 11905: 0xEC90, - 38792 - 11905: 0xEC91, - 38793 - 11905: 0xEC92, - 38794 - 11905: 0xEC93, - 38795 - 11905: 0xD0AC, - 38796 - 11905: 0xEC94, - 38797 - 11905: 0xB0B0, - 38798 - 11905: 0xEC95, - 38799 - 11905: 0xEC96, - 38800 - 11905: 0xEC97, - 38801 - 11905: 0xF7B2, - 38802 - 11905: 0xF7B3, - 38803 - 11905: 0xEC98, - 38804 - 11905: 0xF7B4, - 38805 - 11905: 0xEC99, - 38806 - 11905: 0xEC9A, - 38807 - 11905: 0xEC9B, - 38808 - 11905: 0xC7CA, - 38809 - 11905: 0xEC9C, - 38810 - 11905: 0xEC9D, - 38811 - 11905: 0xEC9E, - 38812 - 11905: 0xEC9F, - 38813 - 11905: 0xECA0, - 38814 - 11905: 0xED40, - 38815 - 11905: 0xED41, - 38816 - 11905: 0xBECF, - 38817 - 11905: 0xED42, - 38818 - 11905: 0xED43, - 38819 - 11905: 0xF7B7, - 38820 - 11905: 0xED44, - 38821 - 11905: 0xED45, - 38822 - 11905: 0xED46, - 38823 - 11905: 0xED47, - 38824 - 11905: 0xED48, - 38825 - 11905: 0xED49, - 38826 - 11905: 0xED4A, - 38827 - 11905: 0xF7B6, - 38828 - 11905: 0xED4B, - 38829 - 11905: 0xB1DE, - 38830 - 11905: 0xED4C, - 38831 - 11905: 0xF7B5, - 38832 - 11905: 0xED4D, - 38833 - 11905: 0xED4E, - 38834 - 11905: 0xF7B8, - 38835 - 11905: 0xED4F, - 38836 - 11905: 0xF7B9, - 38837 - 11905: 0xED50, - 38838 - 11905: 0xED51, - 38839 - 11905: 0xED52, - 38840 - 11905: 0xED53, - 38841 - 11905: 0xED54, - 38842 - 11905: 0xED55, - 38843 - 11905: 0xED56, - 38844 - 11905: 0xED57, - 38845 - 11905: 0xED58, - 38846 - 11905: 0xED59, - 38847 - 11905: 0xED5A, - 38848 - 11905: 0xED5B, - 38849 - 11905: 0xED5C, - 38850 - 11905: 0xED5D, - 38851 - 11905: 0xED5E, - 38852 - 11905: 0xED5F, - 38853 - 11905: 0xED60, - 38854 - 11905: 0xED61, - 38855 - 11905: 0xED62, - 38856 - 11905: 0xED63, - 38857 - 11905: 0xED64, - 38858 - 11905: 0xED65, - 38859 - 11905: 0xED66, - 38860 - 11905: 0xED67, - 38861 - 11905: 0xED68, - 38862 - 11905: 0xED69, - 38863 - 11905: 0xED6A, - 38864 - 11905: 0xED6B, - 38865 - 11905: 0xED6C, - 38866 - 11905: 0xED6D, - 38867 - 11905: 0xED6E, - 38868 - 11905: 0xED6F, - 38869 - 11905: 0xED70, - 38870 - 11905: 0xED71, - 38871 - 11905: 0xED72, - 38872 - 11905: 0xED73, - 38873 - 11905: 0xED74, - 38874 - 11905: 0xED75, - 38875 - 11905: 0xED76, - 38876 - 11905: 0xED77, - 38877 - 11905: 0xED78, - 38878 - 11905: 0xED79, - 38879 - 11905: 0xED7A, - 38880 - 11905: 0xED7B, - 38881 - 11905: 0xED7C, - 38882 - 11905: 0xED7D, - 38883 - 11905: 0xED7E, - 38884 - 11905: 0xED80, - 38885 - 11905: 0xED81, - 38886 - 11905: 0xCEA4, - 38887 - 11905: 0xC8CD, - 38888 - 11905: 0xED82, - 38889 - 11905: 0xBAAB, - 38890 - 11905: 0xE8B8, - 38891 - 11905: 0xE8B9, - 38892 - 11905: 0xE8BA, - 38893 - 11905: 0xBEC2, - 38894 - 11905: 0xED83, - 38895 - 11905: 0xED84, - 38896 - 11905: 0xED85, - 38897 - 11905: 0xED86, - 38898 - 11905: 0xED87, - 38899 - 11905: 0xD2F4, - 38900 - 11905: 0xED88, - 38901 - 11905: 0xD4CF, - 38902 - 11905: 0xC9D8, - 38903 - 11905: 0xED89, - 38904 - 11905: 0xED8A, - 38905 - 11905: 0xED8B, - 38906 - 11905: 0xED8C, - 38907 - 11905: 0xED8D, - 38908 - 11905: 0xED8E, - 38909 - 11905: 0xED8F, - 38910 - 11905: 0xED90, - 38911 - 11905: 0xED91, - 38912 - 11905: 0xED92, - 38913 - 11905: 0xED93, - 38914 - 11905: 0xED94, - 38915 - 11905: 0xED95, - 38916 - 11905: 0xED96, - 38917 - 11905: 0xED97, - 38918 - 11905: 0xED98, - 38919 - 11905: 0xED99, - 38920 - 11905: 0xED9A, - 38921 - 11905: 0xED9B, - 38922 - 11905: 0xED9C, - 38923 - 11905: 0xED9D, - 38924 - 11905: 0xED9E, - 38925 - 11905: 0xED9F, - 38926 - 11905: 0xEDA0, - 38927 - 11905: 0xEE40, - 38928 - 11905: 0xEE41, - 38929 - 11905: 0xEE42, - 38930 - 11905: 0xEE43, - 38931 - 11905: 0xEE44, - 38932 - 11905: 0xEE45, - 38933 - 11905: 0xEE46, - 38934 - 11905: 0xEE47, - 38935 - 11905: 0xEE48, - 38936 - 11905: 0xEE49, - 38937 - 11905: 0xEE4A, - 38938 - 11905: 0xEE4B, - 38939 - 11905: 0xEE4C, - 38940 - 11905: 0xEE4D, - 38941 - 11905: 0xEE4E, - 38942 - 11905: 0xEE4F, - 38943 - 11905: 0xEE50, - 38944 - 11905: 0xEE51, - 38945 - 11905: 0xEE52, - 38946 - 11905: 0xEE53, - 38947 - 11905: 0xEE54, - 38948 - 11905: 0xEE55, - 38949 - 11905: 0xEE56, - 38950 - 11905: 0xEE57, - 38951 - 11905: 0xEE58, - 38952 - 11905: 0xEE59, - 38953 - 11905: 0xEE5A, - 38954 - 11905: 0xEE5B, - 38955 - 11905: 0xEE5C, - 38956 - 11905: 0xEE5D, - 38957 - 11905: 0xEE5E, - 38958 - 11905: 0xEE5F, - 38959 - 11905: 0xEE60, - 38960 - 11905: 0xEE61, - 38961 - 11905: 0xEE62, - 38962 - 11905: 0xEE63, - 38963 - 11905: 0xEE64, - 38964 - 11905: 0xEE65, - 38965 - 11905: 0xEE66, - 38966 - 11905: 0xEE67, - 38967 - 11905: 0xEE68, - 38968 - 11905: 0xEE69, - 38969 - 11905: 0xEE6A, - 38970 - 11905: 0xEE6B, - 38971 - 11905: 0xEE6C, - 38972 - 11905: 0xEE6D, - 38973 - 11905: 0xEE6E, - 38974 - 11905: 0xEE6F, - 38975 - 11905: 0xEE70, - 38976 - 11905: 0xEE71, - 38977 - 11905: 0xEE72, - 38978 - 11905: 0xEE73, - 38979 - 11905: 0xEE74, - 38980 - 11905: 0xEE75, - 38981 - 11905: 0xEE76, - 38982 - 11905: 0xEE77, - 38983 - 11905: 0xEE78, - 38984 - 11905: 0xEE79, - 38985 - 11905: 0xEE7A, - 38986 - 11905: 0xEE7B, - 38987 - 11905: 0xEE7C, - 38988 - 11905: 0xEE7D, - 38989 - 11905: 0xEE7E, - 38990 - 11905: 0xEE80, - 38991 - 11905: 0xEE81, - 38992 - 11905: 0xEE82, - 38993 - 11905: 0xEE83, - 38994 - 11905: 0xEE84, - 38995 - 11905: 0xEE85, - 38996 - 11905: 0xEE86, - 38997 - 11905: 0xEE87, - 38998 - 11905: 0xEE88, - 38999 - 11905: 0xEE89, - 39000 - 11905: 0xEE8A, - 39001 - 11905: 0xEE8B, - 39002 - 11905: 0xEE8C, - 39003 - 11905: 0xEE8D, - 39004 - 11905: 0xEE8E, - 39005 - 11905: 0xEE8F, - 39006 - 11905: 0xEE90, - 39007 - 11905: 0xEE91, - 39008 - 11905: 0xEE92, - 39009 - 11905: 0xEE93, - 39010 - 11905: 0xEE94, - 39011 - 11905: 0xEE95, - 39012 - 11905: 0xEE96, - 39013 - 11905: 0xEE97, - 39014 - 11905: 0xEE98, - 39015 - 11905: 0xEE99, - 39016 - 11905: 0xEE9A, - 39017 - 11905: 0xEE9B, - 39018 - 11905: 0xEE9C, - 39019 - 11905: 0xEE9D, - 39020 - 11905: 0xEE9E, - 39021 - 11905: 0xEE9F, - 39022 - 11905: 0xEEA0, - 39023 - 11905: 0xEF40, - 39024 - 11905: 0xEF41, - 39025 - 11905: 0xEF42, - 39026 - 11905: 0xEF43, - 39027 - 11905: 0xEF44, - 39028 - 11905: 0xEF45, - 39029 - 11905: 0xD2B3, - 39030 - 11905: 0xB6A5, - 39031 - 11905: 0xC7EA, - 39032 - 11905: 0xF1FC, - 39033 - 11905: 0xCFEE, - 39034 - 11905: 0xCBB3, - 39035 - 11905: 0xD0EB, - 39036 - 11905: 0xE7EF, - 39037 - 11905: 0xCDE7, - 39038 - 11905: 0xB9CB, - 39039 - 11905: 0xB6D9, - 39040 - 11905: 0xF1FD, - 39041 - 11905: 0xB0E4, - 39042 - 11905: 0xCBCC, - 39043 - 11905: 0xF1FE, - 39044 - 11905: 0xD4A4, - 39045 - 11905: 0xC2AD, - 39046 - 11905: 0xC1EC, - 39047 - 11905: 0xC6C4, - 39048 - 11905: 0xBEB1, - 39049 - 11905: 0xF2A1, - 39050 - 11905: 0xBCD5, - 39051 - 11905: 0xEF46, - 39052 - 11905: 0xF2A2, - 39053 - 11905: 0xF2A3, - 39054 - 11905: 0xEF47, - 39055 - 11905: 0xF2A4, - 39056 - 11905: 0xD2C3, - 39057 - 11905: 0xC6B5, - 39058 - 11905: 0xEF48, - 39059 - 11905: 0xCDC7, - 39060 - 11905: 0xF2A5, - 39061 - 11905: 0xEF49, - 39062 - 11905: 0xD3B1, - 39063 - 11905: 0xBFC5, - 39064 - 11905: 0xCCE2, - 39065 - 11905: 0xEF4A, - 39066 - 11905: 0xF2A6, - 39067 - 11905: 0xF2A7, - 39068 - 11905: 0xD1D5, - 39069 - 11905: 0xB6EE, - 39070 - 11905: 0xF2A8, - 39071 - 11905: 0xF2A9, - 39072 - 11905: 0xB5DF, - 39073 - 11905: 0xF2AA, - 39074 - 11905: 0xF2AB, - 39075 - 11905: 0xEF4B, - 39076 - 11905: 0xB2FC, - 39077 - 11905: 0xF2AC, - 39078 - 11905: 0xF2AD, - 39079 - 11905: 0xC8A7, - 39080 - 11905: 0xEF4C, - 39081 - 11905: 0xEF4D, - 39082 - 11905: 0xEF4E, - 39083 - 11905: 0xEF4F, - 39084 - 11905: 0xEF50, - 39085 - 11905: 0xEF51, - 39086 - 11905: 0xEF52, - 39087 - 11905: 0xEF53, - 39088 - 11905: 0xEF54, - 39089 - 11905: 0xEF55, - 39090 - 11905: 0xEF56, - 39091 - 11905: 0xEF57, - 39092 - 11905: 0xEF58, - 39093 - 11905: 0xEF59, - 39094 - 11905: 0xEF5A, - 39095 - 11905: 0xEF5B, - 39096 - 11905: 0xEF5C, - 39097 - 11905: 0xEF5D, - 39098 - 11905: 0xEF5E, - 39099 - 11905: 0xEF5F, - 39100 - 11905: 0xEF60, - 39101 - 11905: 0xEF61, - 39102 - 11905: 0xEF62, - 39103 - 11905: 0xEF63, - 39104 - 11905: 0xEF64, - 39105 - 11905: 0xEF65, - 39106 - 11905: 0xEF66, - 39107 - 11905: 0xEF67, - 39108 - 11905: 0xEF68, - 39109 - 11905: 0xEF69, - 39110 - 11905: 0xEF6A, - 39111 - 11905: 0xEF6B, - 39112 - 11905: 0xEF6C, - 39113 - 11905: 0xEF6D, - 39114 - 11905: 0xEF6E, - 39115 - 11905: 0xEF6F, - 39116 - 11905: 0xEF70, - 39117 - 11905: 0xEF71, - 39118 - 11905: 0xB7E7, - 39119 - 11905: 0xEF72, - 39120 - 11905: 0xEF73, - 39121 - 11905: 0xECA9, - 39122 - 11905: 0xECAA, - 39123 - 11905: 0xECAB, - 39124 - 11905: 0xEF74, - 39125 - 11905: 0xECAC, - 39126 - 11905: 0xEF75, - 39127 - 11905: 0xEF76, - 39128 - 11905: 0xC6AE, - 39129 - 11905: 0xECAD, - 39130 - 11905: 0xECAE, - 39131 - 11905: 0xEF77, - 39132 - 11905: 0xEF78, - 39133 - 11905: 0xEF79, - 39134 - 11905: 0xB7C9, - 39135 - 11905: 0xCAB3, - 39136 - 11905: 0xEF7A, - 39137 - 11905: 0xEF7B, - 39138 - 11905: 0xEF7C, - 39139 - 11905: 0xEF7D, - 39140 - 11905: 0xEF7E, - 39141 - 11905: 0xEF80, - 39142 - 11905: 0xEF81, - 39143 - 11905: 0xE2B8, - 39144 - 11905: 0xF7CF, - 39145 - 11905: 0xEF82, - 39146 - 11905: 0xEF83, - 39147 - 11905: 0xEF84, - 39148 - 11905: 0xEF85, - 39149 - 11905: 0xEF86, - 39150 - 11905: 0xEF87, - 39151 - 11905: 0xEF88, - 39152 - 11905: 0xEF89, - 39153 - 11905: 0xEF8A, - 39154 - 11905: 0xEF8B, - 39155 - 11905: 0xEF8C, - 39156 - 11905: 0xEF8D, - 39157 - 11905: 0xEF8E, - 39158 - 11905: 0xEF8F, - 39159 - 11905: 0xEF90, - 39160 - 11905: 0xEF91, - 39161 - 11905: 0xEF92, - 39162 - 11905: 0xEF93, - 39163 - 11905: 0xEF94, - 39164 - 11905: 0xEF95, - 39165 - 11905: 0xEF96, - 39166 - 11905: 0xEF97, - 39167 - 11905: 0xEF98, - 39168 - 11905: 0xEF99, - 39169 - 11905: 0xEF9A, - 39170 - 11905: 0xEF9B, - 39171 - 11905: 0xEF9C, - 39172 - 11905: 0xEF9D, - 39173 - 11905: 0xEF9E, - 39174 - 11905: 0xEF9F, - 39175 - 11905: 0xEFA0, - 39176 - 11905: 0xF040, - 39177 - 11905: 0xF041, - 39178 - 11905: 0xF042, - 39179 - 11905: 0xF043, - 39180 - 11905: 0xF044, - 39181 - 11905: 0xF7D0, - 39182 - 11905: 0xF045, - 39183 - 11905: 0xF046, - 39184 - 11905: 0xB2CD, - 39185 - 11905: 0xF047, - 39186 - 11905: 0xF048, - 39187 - 11905: 0xF049, - 39188 - 11905: 0xF04A, - 39189 - 11905: 0xF04B, - 39190 - 11905: 0xF04C, - 39191 - 11905: 0xF04D, - 39192 - 11905: 0xF04E, - 39193 - 11905: 0xF04F, - 39194 - 11905: 0xF050, - 39195 - 11905: 0xF051, - 39196 - 11905: 0xF052, - 39197 - 11905: 0xF053, - 39198 - 11905: 0xF054, - 39199 - 11905: 0xF055, - 39200 - 11905: 0xF056, - 39201 - 11905: 0xF057, - 39202 - 11905: 0xF058, - 39203 - 11905: 0xF059, - 39204 - 11905: 0xF05A, - 39205 - 11905: 0xF05B, - 39206 - 11905: 0xF05C, - 39207 - 11905: 0xF05D, - 39208 - 11905: 0xF05E, - 39209 - 11905: 0xF05F, - 39210 - 11905: 0xF060, - 39211 - 11905: 0xF061, - 39212 - 11905: 0xF062, - 39213 - 11905: 0xF063, - 39214 - 11905: 0xF7D1, - 39215 - 11905: 0xF064, - 39216 - 11905: 0xF065, - 39217 - 11905: 0xF066, - 39218 - 11905: 0xF067, - 39219 - 11905: 0xF068, - 39220 - 11905: 0xF069, - 39221 - 11905: 0xF06A, - 39222 - 11905: 0xF06B, - 39223 - 11905: 0xF06C, - 39224 - 11905: 0xF06D, - 39225 - 11905: 0xF06E, - 39226 - 11905: 0xF06F, - 39227 - 11905: 0xF070, - 39228 - 11905: 0xF071, - 39229 - 11905: 0xF072, - 39230 - 11905: 0xF073, - 39231 - 11905: 0xF074, - 39232 - 11905: 0xF075, - 39233 - 11905: 0xF076, - 39234 - 11905: 0xF077, - 39235 - 11905: 0xF078, - 39236 - 11905: 0xF079, - 39237 - 11905: 0xF07A, - 39238 - 11905: 0xF07B, - 39239 - 11905: 0xF07C, - 39240 - 11905: 0xF07D, - 39241 - 11905: 0xF07E, - 39242 - 11905: 0xF080, - 39243 - 11905: 0xF081, - 39244 - 11905: 0xF082, - 39245 - 11905: 0xF083, - 39246 - 11905: 0xF084, - 39247 - 11905: 0xF085, - 39248 - 11905: 0xF086, - 39249 - 11905: 0xF087, - 39250 - 11905: 0xF088, - 39251 - 11905: 0xF089, - 39252 - 11905: 0xF7D3, - 39253 - 11905: 0xF7D2, - 39254 - 11905: 0xF08A, - 39255 - 11905: 0xF08B, - 39256 - 11905: 0xF08C, - 39257 - 11905: 0xF08D, - 39258 - 11905: 0xF08E, - 39259 - 11905: 0xF08F, - 39260 - 11905: 0xF090, - 39261 - 11905: 0xF091, - 39262 - 11905: 0xF092, - 39263 - 11905: 0xF093, - 39264 - 11905: 0xF094, - 39265 - 11905: 0xF095, - 39266 - 11905: 0xF096, - 39267 - 11905: 0xE2BB, - 39268 - 11905: 0xF097, - 39269 - 11905: 0xBCA2, - 39270 - 11905: 0xF098, - 39271 - 11905: 0xE2BC, - 39272 - 11905: 0xE2BD, - 39273 - 11905: 0xE2BE, - 39274 - 11905: 0xE2BF, - 39275 - 11905: 0xE2C0, - 39276 - 11905: 0xE2C1, - 39277 - 11905: 0xB7B9, - 39278 - 11905: 0xD2FB, - 39279 - 11905: 0xBDA4, - 39280 - 11905: 0xCACE, - 39281 - 11905: 0xB1A5, - 39282 - 11905: 0xCBC7, - 39283 - 11905: 0xF099, - 39284 - 11905: 0xE2C2, - 39285 - 11905: 0xB6FC, - 39286 - 11905: 0xC8C4, - 39287 - 11905: 0xE2C3, - 39288 - 11905: 0xF09A, - 39289 - 11905: 0xF09B, - 39290 - 11905: 0xBDC8, - 39291 - 11905: 0xF09C, - 39292 - 11905: 0xB1FD, - 39293 - 11905: 0xE2C4, - 39294 - 11905: 0xF09D, - 39295 - 11905: 0xB6F6, - 39296 - 11905: 0xE2C5, - 39297 - 11905: 0xC4D9, - 39298 - 11905: 0xF09E, - 39299 - 11905: 0xF09F, - 39300 - 11905: 0xE2C6, - 39301 - 11905: 0xCFDA, - 39302 - 11905: 0xB9DD, - 39303 - 11905: 0xE2C7, - 39304 - 11905: 0xC0A1, - 39305 - 11905: 0xF0A0, - 39306 - 11905: 0xE2C8, - 39307 - 11905: 0xB2F6, - 39308 - 11905: 0xF140, - 39309 - 11905: 0xE2C9, - 39310 - 11905: 0xF141, - 39311 - 11905: 0xC1F3, - 39312 - 11905: 0xE2CA, - 39313 - 11905: 0xE2CB, - 39314 - 11905: 0xC2F8, - 39315 - 11905: 0xE2CC, - 39316 - 11905: 0xE2CD, - 39317 - 11905: 0xE2CE, - 39318 - 11905: 0xCAD7, - 39319 - 11905: 0xD8B8, - 39320 - 11905: 0xD9E5, - 39321 - 11905: 0xCFE3, - 39322 - 11905: 0xF142, - 39323 - 11905: 0xF143, - 39324 - 11905: 0xF144, - 39325 - 11905: 0xF145, - 39326 - 11905: 0xF146, - 39327 - 11905: 0xF147, - 39328 - 11905: 0xF148, - 39329 - 11905: 0xF149, - 39330 - 11905: 0xF14A, - 39331 - 11905: 0xF14B, - 39332 - 11905: 0xF14C, - 39333 - 11905: 0xF0A5, - 39334 - 11905: 0xF14D, - 39335 - 11905: 0xF14E, - 39336 - 11905: 0xDCB0, - 39337 - 11905: 0xF14F, - 39338 - 11905: 0xF150, - 39339 - 11905: 0xF151, - 39340 - 11905: 0xF152, - 39341 - 11905: 0xF153, - 39342 - 11905: 0xF154, - 39343 - 11905: 0xF155, - 39344 - 11905: 0xF156, - 39345 - 11905: 0xF157, - 39346 - 11905: 0xF158, - 39347 - 11905: 0xF159, - 39348 - 11905: 0xF15A, - 39349 - 11905: 0xF15B, - 39350 - 11905: 0xF15C, - 39351 - 11905: 0xF15D, - 39352 - 11905: 0xF15E, - 39353 - 11905: 0xF15F, - 39354 - 11905: 0xF160, - 39355 - 11905: 0xF161, - 39356 - 11905: 0xF162, - 39357 - 11905: 0xF163, - 39358 - 11905: 0xF164, - 39359 - 11905: 0xF165, - 39360 - 11905: 0xF166, - 39361 - 11905: 0xF167, - 39362 - 11905: 0xF168, - 39363 - 11905: 0xF169, - 39364 - 11905: 0xF16A, - 39365 - 11905: 0xF16B, - 39366 - 11905: 0xF16C, - 39367 - 11905: 0xF16D, - 39368 - 11905: 0xF16E, - 39369 - 11905: 0xF16F, - 39370 - 11905: 0xF170, - 39371 - 11905: 0xF171, - 39372 - 11905: 0xF172, - 39373 - 11905: 0xF173, - 39374 - 11905: 0xF174, - 39375 - 11905: 0xF175, - 39376 - 11905: 0xF176, - 39377 - 11905: 0xF177, - 39378 - 11905: 0xF178, - 39379 - 11905: 0xF179, - 39380 - 11905: 0xF17A, - 39381 - 11905: 0xF17B, - 39382 - 11905: 0xF17C, - 39383 - 11905: 0xF17D, - 39384 - 11905: 0xF17E, - 39385 - 11905: 0xF180, - 39386 - 11905: 0xF181, - 39387 - 11905: 0xF182, - 39388 - 11905: 0xF183, - 39389 - 11905: 0xF184, - 39390 - 11905: 0xF185, - 39391 - 11905: 0xF186, - 39392 - 11905: 0xF187, - 39393 - 11905: 0xF188, - 39394 - 11905: 0xF189, - 39395 - 11905: 0xF18A, - 39396 - 11905: 0xF18B, - 39397 - 11905: 0xF18C, - 39398 - 11905: 0xF18D, - 39399 - 11905: 0xF18E, - 39400 - 11905: 0xF18F, - 39401 - 11905: 0xF190, - 39402 - 11905: 0xF191, - 39403 - 11905: 0xF192, - 39404 - 11905: 0xF193, - 39405 - 11905: 0xF194, - 39406 - 11905: 0xF195, - 39407 - 11905: 0xF196, - 39408 - 11905: 0xF197, - 39409 - 11905: 0xF198, - 39410 - 11905: 0xF199, - 39411 - 11905: 0xF19A, - 39412 - 11905: 0xF19B, - 39413 - 11905: 0xF19C, - 39414 - 11905: 0xF19D, - 39415 - 11905: 0xF19E, - 39416 - 11905: 0xF19F, - 39417 - 11905: 0xF1A0, - 39418 - 11905: 0xF240, - 39419 - 11905: 0xF241, - 39420 - 11905: 0xF242, - 39421 - 11905: 0xF243, - 39422 - 11905: 0xF244, - 39423 - 11905: 0xF245, - 39424 - 11905: 0xF246, - 39425 - 11905: 0xF247, - 39426 - 11905: 0xF248, - 39427 - 11905: 0xF249, - 39428 - 11905: 0xF24A, - 39429 - 11905: 0xF24B, - 39430 - 11905: 0xF24C, - 39431 - 11905: 0xF24D, - 39432 - 11905: 0xF24E, - 39433 - 11905: 0xF24F, - 39434 - 11905: 0xF250, - 39435 - 11905: 0xF251, - 39436 - 11905: 0xF252, - 39437 - 11905: 0xF253, - 39438 - 11905: 0xF254, - 39439 - 11905: 0xF255, - 39440 - 11905: 0xF256, - 39441 - 11905: 0xF257, - 39442 - 11905: 0xF258, - 39443 - 11905: 0xF259, - 39444 - 11905: 0xF25A, - 39445 - 11905: 0xF25B, - 39446 - 11905: 0xF25C, - 39447 - 11905: 0xF25D, - 39448 - 11905: 0xF25E, - 39449 - 11905: 0xF25F, - 39450 - 11905: 0xF260, - 39451 - 11905: 0xF261, - 39452 - 11905: 0xF262, - 39453 - 11905: 0xF263, - 39454 - 11905: 0xF264, - 39455 - 11905: 0xF265, - 39456 - 11905: 0xF266, - 39457 - 11905: 0xF267, - 39458 - 11905: 0xF268, - 39459 - 11905: 0xF269, - 39460 - 11905: 0xF26A, - 39461 - 11905: 0xF26B, - 39462 - 11905: 0xF26C, - 39463 - 11905: 0xF26D, - 39464 - 11905: 0xF26E, - 39465 - 11905: 0xF26F, - 39466 - 11905: 0xF270, - 39467 - 11905: 0xF271, - 39468 - 11905: 0xF272, - 39469 - 11905: 0xF273, - 39470 - 11905: 0xF274, - 39471 - 11905: 0xF275, - 39472 - 11905: 0xF276, - 39473 - 11905: 0xF277, - 39474 - 11905: 0xF278, - 39475 - 11905: 0xF279, - 39476 - 11905: 0xF27A, - 39477 - 11905: 0xF27B, - 39478 - 11905: 0xF27C, - 39479 - 11905: 0xF27D, - 39480 - 11905: 0xF27E, - 39481 - 11905: 0xF280, - 39482 - 11905: 0xF281, - 39483 - 11905: 0xF282, - 39484 - 11905: 0xF283, - 39485 - 11905: 0xF284, - 39486 - 11905: 0xF285, - 39487 - 11905: 0xF286, - 39488 - 11905: 0xF287, - 39489 - 11905: 0xF288, - 39490 - 11905: 0xF289, - 39491 - 11905: 0xF28A, - 39492 - 11905: 0xF28B, - 39493 - 11905: 0xF28C, - 39494 - 11905: 0xF28D, - 39495 - 11905: 0xF28E, - 39496 - 11905: 0xF28F, - 39497 - 11905: 0xF290, - 39498 - 11905: 0xF291, - 39499 - 11905: 0xF292, - 39500 - 11905: 0xF293, - 39501 - 11905: 0xF294, - 39502 - 11905: 0xF295, - 39503 - 11905: 0xF296, - 39504 - 11905: 0xF297, - 39505 - 11905: 0xF298, - 39506 - 11905: 0xF299, - 39507 - 11905: 0xF29A, - 39508 - 11905: 0xF29B, - 39509 - 11905: 0xF29C, - 39510 - 11905: 0xF29D, - 39511 - 11905: 0xF29E, - 39512 - 11905: 0xF29F, - 39513 - 11905: 0xF2A0, - 39514 - 11905: 0xF340, - 39515 - 11905: 0xF341, - 39516 - 11905: 0xF342, - 39517 - 11905: 0xF343, - 39518 - 11905: 0xF344, - 39519 - 11905: 0xF345, - 39520 - 11905: 0xF346, - 39521 - 11905: 0xF347, - 39522 - 11905: 0xF348, - 39523 - 11905: 0xF349, - 39524 - 11905: 0xF34A, - 39525 - 11905: 0xF34B, - 39526 - 11905: 0xF34C, - 39527 - 11905: 0xF34D, - 39528 - 11905: 0xF34E, - 39529 - 11905: 0xF34F, - 39530 - 11905: 0xF350, - 39531 - 11905: 0xF351, - 39532 - 11905: 0xC2ED, - 39533 - 11905: 0xD4A6, - 39534 - 11905: 0xCDD4, - 39535 - 11905: 0xD1B1, - 39536 - 11905: 0xB3DB, - 39537 - 11905: 0xC7FD, - 39538 - 11905: 0xF352, - 39539 - 11905: 0xB2B5, - 39540 - 11905: 0xC2BF, - 39541 - 11905: 0xE6E0, - 39542 - 11905: 0xCABB, - 39543 - 11905: 0xE6E1, - 39544 - 11905: 0xE6E2, - 39545 - 11905: 0xBED4, - 39546 - 11905: 0xE6E3, - 39547 - 11905: 0xD7A4, - 39548 - 11905: 0xCDD5, - 39549 - 11905: 0xE6E5, - 39550 - 11905: 0xBCDD, - 39551 - 11905: 0xE6E4, - 39552 - 11905: 0xE6E6, - 39553 - 11905: 0xE6E7, - 39554 - 11905: 0xC2EE, - 39555 - 11905: 0xF353, - 39556 - 11905: 0xBDBE, - 39557 - 11905: 0xE6E8, - 39558 - 11905: 0xC2E6, - 39559 - 11905: 0xBAA7, - 39560 - 11905: 0xE6E9, - 39561 - 11905: 0xF354, - 39562 - 11905: 0xE6EA, - 39563 - 11905: 0xB3D2, - 39564 - 11905: 0xD1E9, - 39565 - 11905: 0xF355, - 39566 - 11905: 0xF356, - 39567 - 11905: 0xBFA5, - 39568 - 11905: 0xE6EB, - 39569 - 11905: 0xC6EF, - 39570 - 11905: 0xE6EC, - 39571 - 11905: 0xE6ED, - 39572 - 11905: 0xF357, - 39573 - 11905: 0xF358, - 39574 - 11905: 0xE6EE, - 39575 - 11905: 0xC6AD, - 39576 - 11905: 0xE6EF, - 39577 - 11905: 0xF359, - 39578 - 11905: 0xC9A7, - 39579 - 11905: 0xE6F0, - 39580 - 11905: 0xE6F1, - 39581 - 11905: 0xE6F2, - 39582 - 11905: 0xE5B9, - 39583 - 11905: 0xE6F3, - 39584 - 11905: 0xE6F4, - 39585 - 11905: 0xC2E2, - 39586 - 11905: 0xE6F5, - 39587 - 11905: 0xE6F6, - 39588 - 11905: 0xD6E8, - 39589 - 11905: 0xE6F7, - 39590 - 11905: 0xF35A, - 39591 - 11905: 0xE6F8, - 39592 - 11905: 0xB9C7, - 39593 - 11905: 0xF35B, - 39594 - 11905: 0xF35C, - 39595 - 11905: 0xF35D, - 39596 - 11905: 0xF35E, - 39597 - 11905: 0xF35F, - 39598 - 11905: 0xF360, - 39599 - 11905: 0xF361, - 39600 - 11905: 0xF7BB, - 39601 - 11905: 0xF7BA, - 39602 - 11905: 0xF362, - 39603 - 11905: 0xF363, - 39604 - 11905: 0xF364, - 39605 - 11905: 0xF365, - 39606 - 11905: 0xF7BE, - 39607 - 11905: 0xF7BC, - 39608 - 11905: 0xBAA1, - 39609 - 11905: 0xF366, - 39610 - 11905: 0xF7BF, - 39611 - 11905: 0xF367, - 39612 - 11905: 0xF7C0, - 39613 - 11905: 0xF368, - 39614 - 11905: 0xF369, - 39615 - 11905: 0xF36A, - 39616 - 11905: 0xF7C2, - 39617 - 11905: 0xF7C1, - 39618 - 11905: 0xF7C4, - 39619 - 11905: 0xF36B, - 39620 - 11905: 0xF36C, - 39621 - 11905: 0xF7C3, - 39622 - 11905: 0xF36D, - 39623 - 11905: 0xF36E, - 39624 - 11905: 0xF36F, - 39625 - 11905: 0xF370, - 39626 - 11905: 0xF371, - 39627 - 11905: 0xF7C5, - 39628 - 11905: 0xF7C6, - 39629 - 11905: 0xF372, - 39630 - 11905: 0xF373, - 39631 - 11905: 0xF374, - 39632 - 11905: 0xF375, - 39633 - 11905: 0xF7C7, - 39634 - 11905: 0xF376, - 39635 - 11905: 0xCBE8, - 39636 - 11905: 0xF377, - 39637 - 11905: 0xF378, - 39638 - 11905: 0xF379, - 39639 - 11905: 0xF37A, - 39640 - 11905: 0xB8DF, - 39641 - 11905: 0xF37B, - 39642 - 11905: 0xF37C, - 39643 - 11905: 0xF37D, - 39644 - 11905: 0xF37E, - 39645 - 11905: 0xF380, - 39646 - 11905: 0xF381, - 39647 - 11905: 0xF7D4, - 39648 - 11905: 0xF382, - 39649 - 11905: 0xF7D5, - 39650 - 11905: 0xF383, - 39651 - 11905: 0xF384, - 39652 - 11905: 0xF385, - 39653 - 11905: 0xF386, - 39654 - 11905: 0xF7D6, - 39655 - 11905: 0xF387, - 39656 - 11905: 0xF388, - 39657 - 11905: 0xF389, - 39658 - 11905: 0xF38A, - 39659 - 11905: 0xF7D8, - 39660 - 11905: 0xF38B, - 39661 - 11905: 0xF7DA, - 39662 - 11905: 0xF38C, - 39663 - 11905: 0xF7D7, - 39664 - 11905: 0xF38D, - 39665 - 11905: 0xF38E, - 39666 - 11905: 0xF38F, - 39667 - 11905: 0xF390, - 39668 - 11905: 0xF391, - 39669 - 11905: 0xF392, - 39670 - 11905: 0xF393, - 39671 - 11905: 0xF394, - 39672 - 11905: 0xF395, - 39673 - 11905: 0xF7DB, - 39674 - 11905: 0xF396, - 39675 - 11905: 0xF7D9, - 39676 - 11905: 0xF397, - 39677 - 11905: 0xF398, - 39678 - 11905: 0xF399, - 39679 - 11905: 0xF39A, - 39680 - 11905: 0xF39B, - 39681 - 11905: 0xF39C, - 39682 - 11905: 0xF39D, - 39683 - 11905: 0xD7D7, - 39684 - 11905: 0xF39E, - 39685 - 11905: 0xF39F, - 39686 - 11905: 0xF3A0, - 39687 - 11905: 0xF440, - 39688 - 11905: 0xF7DC, - 39689 - 11905: 0xF441, - 39690 - 11905: 0xF442, - 39691 - 11905: 0xF443, - 39692 - 11905: 0xF444, - 39693 - 11905: 0xF445, - 39694 - 11905: 0xF446, - 39695 - 11905: 0xF7DD, - 39696 - 11905: 0xF447, - 39697 - 11905: 0xF448, - 39698 - 11905: 0xF449, - 39699 - 11905: 0xF7DE, - 39700 - 11905: 0xF44A, - 39701 - 11905: 0xF44B, - 39702 - 11905: 0xF44C, - 39703 - 11905: 0xF44D, - 39704 - 11905: 0xF44E, - 39705 - 11905: 0xF44F, - 39706 - 11905: 0xF450, - 39707 - 11905: 0xF451, - 39708 - 11905: 0xF452, - 39709 - 11905: 0xF453, - 39710 - 11905: 0xF454, - 39711 - 11905: 0xF7DF, - 39712 - 11905: 0xF455, - 39713 - 11905: 0xF456, - 39714 - 11905: 0xF457, - 39715 - 11905: 0xF7E0, - 39716 - 11905: 0xF458, - 39717 - 11905: 0xF459, - 39718 - 11905: 0xF45A, - 39719 - 11905: 0xF45B, - 39720 - 11905: 0xF45C, - 39721 - 11905: 0xF45D, - 39722 - 11905: 0xF45E, - 39723 - 11905: 0xF45F, - 39724 - 11905: 0xF460, - 39725 - 11905: 0xF461, - 39726 - 11905: 0xF462, - 39727 - 11905: 0xDBCB, - 39728 - 11905: 0xF463, - 39729 - 11905: 0xF464, - 39730 - 11905: 0xD8AA, - 39731 - 11905: 0xF465, - 39732 - 11905: 0xF466, - 39733 - 11905: 0xF467, - 39734 - 11905: 0xF468, - 39735 - 11905: 0xF469, - 39736 - 11905: 0xF46A, - 39737 - 11905: 0xF46B, - 39738 - 11905: 0xF46C, - 39739 - 11905: 0xE5F7, - 39740 - 11905: 0xB9ED, - 39741 - 11905: 0xF46D, - 39742 - 11905: 0xF46E, - 39743 - 11905: 0xF46F, - 39744 - 11905: 0xF470, - 39745 - 11905: 0xBFFD, - 39746 - 11905: 0xBBEA, - 39747 - 11905: 0xF7C9, - 39748 - 11905: 0xC6C7, - 39749 - 11905: 0xF7C8, - 39750 - 11905: 0xF471, - 39751 - 11905: 0xF7CA, - 39752 - 11905: 0xF7CC, - 39753 - 11905: 0xF7CB, - 39754 - 11905: 0xF472, - 39755 - 11905: 0xF473, - 39756 - 11905: 0xF474, - 39757 - 11905: 0xF7CD, - 39758 - 11905: 0xF475, - 39759 - 11905: 0xCEBA, - 39760 - 11905: 0xF476, - 39761 - 11905: 0xF7CE, - 39762 - 11905: 0xF477, - 39763 - 11905: 0xF478, - 39764 - 11905: 0xC4A7, - 39765 - 11905: 0xF479, - 39766 - 11905: 0xF47A, - 39767 - 11905: 0xF47B, - 39768 - 11905: 0xF47C, - 39769 - 11905: 0xF47D, - 39770 - 11905: 0xF47E, - 39771 - 11905: 0xF480, - 39772 - 11905: 0xF481, - 39773 - 11905: 0xF482, - 39774 - 11905: 0xF483, - 39775 - 11905: 0xF484, - 39776 - 11905: 0xF485, - 39777 - 11905: 0xF486, - 39778 - 11905: 0xF487, - 39779 - 11905: 0xF488, - 39780 - 11905: 0xF489, - 39781 - 11905: 0xF48A, - 39782 - 11905: 0xF48B, - 39783 - 11905: 0xF48C, - 39784 - 11905: 0xF48D, - 39785 - 11905: 0xF48E, - 39786 - 11905: 0xF48F, - 39787 - 11905: 0xF490, - 39788 - 11905: 0xF491, - 39789 - 11905: 0xF492, - 39790 - 11905: 0xF493, - 39791 - 11905: 0xF494, - 39792 - 11905: 0xF495, - 39793 - 11905: 0xF496, - 39794 - 11905: 0xF497, - 39795 - 11905: 0xF498, - 39796 - 11905: 0xF499, - 39797 - 11905: 0xF49A, - 39798 - 11905: 0xF49B, - 39799 - 11905: 0xF49C, - 39800 - 11905: 0xF49D, - 39801 - 11905: 0xF49E, - 39802 - 11905: 0xF49F, - 39803 - 11905: 0xF4A0, - 39804 - 11905: 0xF540, - 39805 - 11905: 0xF541, - 39806 - 11905: 0xF542, - 39807 - 11905: 0xF543, - 39808 - 11905: 0xF544, - 39809 - 11905: 0xF545, - 39810 - 11905: 0xF546, - 39811 - 11905: 0xF547, - 39812 - 11905: 0xF548, - 39813 - 11905: 0xF549, - 39814 - 11905: 0xF54A, - 39815 - 11905: 0xF54B, - 39816 - 11905: 0xF54C, - 39817 - 11905: 0xF54D, - 39818 - 11905: 0xF54E, - 39819 - 11905: 0xF54F, - 39820 - 11905: 0xF550, - 39821 - 11905: 0xF551, - 39822 - 11905: 0xF552, - 39823 - 11905: 0xF553, - 39824 - 11905: 0xF554, - 39825 - 11905: 0xF555, - 39826 - 11905: 0xF556, - 39827 - 11905: 0xF557, - 39828 - 11905: 0xF558, - 39829 - 11905: 0xF559, - 39830 - 11905: 0xF55A, - 39831 - 11905: 0xF55B, - 39832 - 11905: 0xF55C, - 39833 - 11905: 0xF55D, - 39834 - 11905: 0xF55E, - 39835 - 11905: 0xF55F, - 39836 - 11905: 0xF560, - 39837 - 11905: 0xF561, - 39838 - 11905: 0xF562, - 39839 - 11905: 0xF563, - 39840 - 11905: 0xF564, - 39841 - 11905: 0xF565, - 39842 - 11905: 0xF566, - 39843 - 11905: 0xF567, - 39844 - 11905: 0xF568, - 39845 - 11905: 0xF569, - 39846 - 11905: 0xF56A, - 39847 - 11905: 0xF56B, - 39848 - 11905: 0xF56C, - 39849 - 11905: 0xF56D, - 39850 - 11905: 0xF56E, - 39851 - 11905: 0xF56F, - 39852 - 11905: 0xF570, - 39853 - 11905: 0xF571, - 39854 - 11905: 0xF572, - 39855 - 11905: 0xF573, - 39856 - 11905: 0xF574, - 39857 - 11905: 0xF575, - 39858 - 11905: 0xF576, - 39859 - 11905: 0xF577, - 39860 - 11905: 0xF578, - 39861 - 11905: 0xF579, - 39862 - 11905: 0xF57A, - 39863 - 11905: 0xF57B, - 39864 - 11905: 0xF57C, - 39865 - 11905: 0xF57D, - 39866 - 11905: 0xF57E, - 39867 - 11905: 0xF580, - 39868 - 11905: 0xF581, - 39869 - 11905: 0xF582, - 39870 - 11905: 0xF583, - 39871 - 11905: 0xF584, - 39872 - 11905: 0xF585, - 39873 - 11905: 0xF586, - 39874 - 11905: 0xF587, - 39875 - 11905: 0xF588, - 39876 - 11905: 0xF589, - 39877 - 11905: 0xF58A, - 39878 - 11905: 0xF58B, - 39879 - 11905: 0xF58C, - 39880 - 11905: 0xF58D, - 39881 - 11905: 0xF58E, - 39882 - 11905: 0xF58F, - 39883 - 11905: 0xF590, - 39884 - 11905: 0xF591, - 39885 - 11905: 0xF592, - 39886 - 11905: 0xF593, - 39887 - 11905: 0xF594, - 39888 - 11905: 0xF595, - 39889 - 11905: 0xF596, - 39890 - 11905: 0xF597, - 39891 - 11905: 0xF598, - 39892 - 11905: 0xF599, - 39893 - 11905: 0xF59A, - 39894 - 11905: 0xF59B, - 39895 - 11905: 0xF59C, - 39896 - 11905: 0xF59D, - 39897 - 11905: 0xF59E, - 39898 - 11905: 0xF59F, - 39899 - 11905: 0xF5A0, - 39900 - 11905: 0xF640, - 39901 - 11905: 0xF641, - 39902 - 11905: 0xF642, - 39903 - 11905: 0xF643, - 39904 - 11905: 0xF644, - 39905 - 11905: 0xF645, - 39906 - 11905: 0xF646, - 39907 - 11905: 0xF647, - 39908 - 11905: 0xF648, - 39909 - 11905: 0xF649, - 39910 - 11905: 0xF64A, - 39911 - 11905: 0xF64B, - 39912 - 11905: 0xF64C, - 39913 - 11905: 0xF64D, - 39914 - 11905: 0xF64E, - 39915 - 11905: 0xF64F, - 39916 - 11905: 0xF650, - 39917 - 11905: 0xF651, - 39918 - 11905: 0xF652, - 39919 - 11905: 0xF653, - 39920 - 11905: 0xF654, - 39921 - 11905: 0xF655, - 39922 - 11905: 0xF656, - 39923 - 11905: 0xF657, - 39924 - 11905: 0xF658, - 39925 - 11905: 0xF659, - 39926 - 11905: 0xF65A, - 39927 - 11905: 0xF65B, - 39928 - 11905: 0xF65C, - 39929 - 11905: 0xF65D, - 39930 - 11905: 0xF65E, - 39931 - 11905: 0xF65F, - 39932 - 11905: 0xF660, - 39933 - 11905: 0xF661, - 39934 - 11905: 0xF662, - 39935 - 11905: 0xF663, - 39936 - 11905: 0xF664, - 39937 - 11905: 0xF665, - 39938 - 11905: 0xF666, - 39939 - 11905: 0xF667, - 39940 - 11905: 0xF668, - 39941 - 11905: 0xF669, - 39942 - 11905: 0xF66A, - 39943 - 11905: 0xF66B, - 39944 - 11905: 0xF66C, - 39945 - 11905: 0xF66D, - 39946 - 11905: 0xF66E, - 39947 - 11905: 0xF66F, - 39948 - 11905: 0xF670, - 39949 - 11905: 0xF671, - 39950 - 11905: 0xF672, - 39951 - 11905: 0xF673, - 39952 - 11905: 0xF674, - 39953 - 11905: 0xF675, - 39954 - 11905: 0xF676, - 39955 - 11905: 0xF677, - 39956 - 11905: 0xF678, - 39957 - 11905: 0xF679, - 39958 - 11905: 0xF67A, - 39959 - 11905: 0xF67B, - 39960 - 11905: 0xF67C, - 39961 - 11905: 0xF67D, - 39962 - 11905: 0xF67E, - 39963 - 11905: 0xF680, - 39964 - 11905: 0xF681, - 39965 - 11905: 0xF682, - 39966 - 11905: 0xF683, - 39967 - 11905: 0xF684, - 39968 - 11905: 0xF685, - 39969 - 11905: 0xF686, - 39970 - 11905: 0xF687, - 39971 - 11905: 0xF688, - 39972 - 11905: 0xF689, - 39973 - 11905: 0xF68A, - 39974 - 11905: 0xF68B, - 39975 - 11905: 0xF68C, - 39976 - 11905: 0xF68D, - 39977 - 11905: 0xF68E, - 39978 - 11905: 0xF68F, - 39979 - 11905: 0xF690, - 39980 - 11905: 0xF691, - 39981 - 11905: 0xF692, - 39982 - 11905: 0xF693, - 39983 - 11905: 0xF694, - 39984 - 11905: 0xF695, - 39985 - 11905: 0xF696, - 39986 - 11905: 0xF697, - 39987 - 11905: 0xF698, - 39988 - 11905: 0xF699, - 39989 - 11905: 0xF69A, - 39990 - 11905: 0xF69B, - 39991 - 11905: 0xF69C, - 39992 - 11905: 0xF69D, - 39993 - 11905: 0xF69E, - 39994 - 11905: 0xF69F, - 39995 - 11905: 0xF6A0, - 39996 - 11905: 0xF740, - 39997 - 11905: 0xF741, - 39998 - 11905: 0xF742, - 39999 - 11905: 0xF743, - 40000 - 11905: 0xF744, - 40001 - 11905: 0xF745, - 40002 - 11905: 0xF746, - 40003 - 11905: 0xF747, - 40004 - 11905: 0xF748, - 40005 - 11905: 0xF749, - 40006 - 11905: 0xF74A, - 40007 - 11905: 0xF74B, - 40008 - 11905: 0xF74C, - 40009 - 11905: 0xF74D, - 40010 - 11905: 0xF74E, - 40011 - 11905: 0xF74F, - 40012 - 11905: 0xF750, - 40013 - 11905: 0xF751, - 40014 - 11905: 0xF752, - 40015 - 11905: 0xF753, - 40016 - 11905: 0xF754, - 40017 - 11905: 0xF755, - 40018 - 11905: 0xF756, - 40019 - 11905: 0xF757, - 40020 - 11905: 0xF758, - 40021 - 11905: 0xF759, - 40022 - 11905: 0xF75A, - 40023 - 11905: 0xF75B, - 40024 - 11905: 0xF75C, - 40025 - 11905: 0xF75D, - 40026 - 11905: 0xF75E, - 40027 - 11905: 0xF75F, - 40028 - 11905: 0xF760, - 40029 - 11905: 0xF761, - 40030 - 11905: 0xF762, - 40031 - 11905: 0xF763, - 40032 - 11905: 0xF764, - 40033 - 11905: 0xF765, - 40034 - 11905: 0xF766, - 40035 - 11905: 0xF767, - 40036 - 11905: 0xF768, - 40037 - 11905: 0xF769, - 40038 - 11905: 0xF76A, - 40039 - 11905: 0xF76B, - 40040 - 11905: 0xF76C, - 40041 - 11905: 0xF76D, - 40042 - 11905: 0xF76E, - 40043 - 11905: 0xF76F, - 40044 - 11905: 0xF770, - 40045 - 11905: 0xF771, - 40046 - 11905: 0xF772, - 40047 - 11905: 0xF773, - 40048 - 11905: 0xF774, - 40049 - 11905: 0xF775, - 40050 - 11905: 0xF776, - 40051 - 11905: 0xF777, - 40052 - 11905: 0xF778, - 40053 - 11905: 0xF779, - 40054 - 11905: 0xF77A, - 40055 - 11905: 0xF77B, - 40056 - 11905: 0xF77C, - 40057 - 11905: 0xF77D, - 40058 - 11905: 0xF77E, - 40059 - 11905: 0xF780, - 40060 - 11905: 0xD3E3, - 40061 - 11905: 0xF781, - 40062 - 11905: 0xF782, - 40063 - 11905: 0xF6CF, - 40064 - 11905: 0xF783, - 40065 - 11905: 0xC2B3, - 40066 - 11905: 0xF6D0, - 40067 - 11905: 0xF784, - 40068 - 11905: 0xF785, - 40069 - 11905: 0xF6D1, - 40070 - 11905: 0xF6D2, - 40071 - 11905: 0xF6D3, - 40072 - 11905: 0xF6D4, - 40073 - 11905: 0xF786, - 40074 - 11905: 0xF787, - 40075 - 11905: 0xF6D6, - 40076 - 11905: 0xF788, - 40077 - 11905: 0xB1AB, - 40078 - 11905: 0xF6D7, - 40079 - 11905: 0xF789, - 40080 - 11905: 0xF6D8, - 40081 - 11905: 0xF6D9, - 40082 - 11905: 0xF6DA, - 40083 - 11905: 0xF78A, - 40084 - 11905: 0xF6DB, - 40085 - 11905: 0xF6DC, - 40086 - 11905: 0xF78B, - 40087 - 11905: 0xF78C, - 40088 - 11905: 0xF78D, - 40089 - 11905: 0xF78E, - 40090 - 11905: 0xF6DD, - 40091 - 11905: 0xF6DE, - 40092 - 11905: 0xCFCA, - 40093 - 11905: 0xF78F, - 40094 - 11905: 0xF6DF, - 40095 - 11905: 0xF6E0, - 40096 - 11905: 0xF6E1, - 40097 - 11905: 0xF6E2, - 40098 - 11905: 0xF6E3, - 40099 - 11905: 0xF6E4, - 40100 - 11905: 0xC0F0, - 40101 - 11905: 0xF6E5, - 40102 - 11905: 0xF6E6, - 40103 - 11905: 0xF6E7, - 40104 - 11905: 0xF6E8, - 40105 - 11905: 0xF6E9, - 40106 - 11905: 0xF790, - 40107 - 11905: 0xF6EA, - 40108 - 11905: 0xF791, - 40109 - 11905: 0xF6EB, - 40110 - 11905: 0xF6EC, - 40111 - 11905: 0xF792, - 40112 - 11905: 0xF6ED, - 40113 - 11905: 0xF6EE, - 40114 - 11905: 0xF6EF, - 40115 - 11905: 0xF6F0, - 40116 - 11905: 0xF6F1, - 40117 - 11905: 0xF6F2, - 40118 - 11905: 0xF6F3, - 40119 - 11905: 0xF6F4, - 40120 - 11905: 0xBEA8, - 40121 - 11905: 0xF793, - 40122 - 11905: 0xF6F5, - 40123 - 11905: 0xF6F6, - 40124 - 11905: 0xF6F7, - 40125 - 11905: 0xF6F8, - 40126 - 11905: 0xF794, - 40127 - 11905: 0xF795, - 40128 - 11905: 0xF796, - 40129 - 11905: 0xF797, - 40130 - 11905: 0xF798, - 40131 - 11905: 0xC8FA, - 40132 - 11905: 0xF6F9, - 40133 - 11905: 0xF6FA, - 40134 - 11905: 0xF6FB, - 40135 - 11905: 0xF6FC, - 40136 - 11905: 0xF799, - 40137 - 11905: 0xF79A, - 40138 - 11905: 0xF6FD, - 40139 - 11905: 0xF6FE, - 40140 - 11905: 0xF7A1, - 40141 - 11905: 0xF7A2, - 40142 - 11905: 0xF7A3, - 40143 - 11905: 0xF7A4, - 40144 - 11905: 0xF7A5, - 40145 - 11905: 0xF79B, - 40146 - 11905: 0xF79C, - 40147 - 11905: 0xF7A6, - 40148 - 11905: 0xF7A7, - 40149 - 11905: 0xF7A8, - 40150 - 11905: 0xB1EE, - 40151 - 11905: 0xF7A9, - 40152 - 11905: 0xF7AA, - 40153 - 11905: 0xF7AB, - 40154 - 11905: 0xF79D, - 40155 - 11905: 0xF79E, - 40156 - 11905: 0xF7AC, - 40157 - 11905: 0xF7AD, - 40158 - 11905: 0xC1DB, - 40159 - 11905: 0xF7AE, - 40160 - 11905: 0xF79F, - 40161 - 11905: 0xF7A0, - 40162 - 11905: 0xF7AF, - 40163 - 11905: 0xF840, - 40164 - 11905: 0xF841, - 40165 - 11905: 0xF842, - 40166 - 11905: 0xF843, - 40167 - 11905: 0xF844, - 40168 - 11905: 0xF845, - 40169 - 11905: 0xF846, - 40170 - 11905: 0xF847, - 40171 - 11905: 0xF848, - 40172 - 11905: 0xF849, - 40173 - 11905: 0xF84A, - 40174 - 11905: 0xF84B, - 40175 - 11905: 0xF84C, - 40176 - 11905: 0xF84D, - 40177 - 11905: 0xF84E, - 40178 - 11905: 0xF84F, - 40179 - 11905: 0xF850, - 40180 - 11905: 0xF851, - 40181 - 11905: 0xF852, - 40182 - 11905: 0xF853, - 40183 - 11905: 0xF854, - 40184 - 11905: 0xF855, - 40185 - 11905: 0xF856, - 40186 - 11905: 0xF857, - 40187 - 11905: 0xF858, - 40188 - 11905: 0xF859, - 40189 - 11905: 0xF85A, - 40190 - 11905: 0xF85B, - 40191 - 11905: 0xF85C, - 40192 - 11905: 0xF85D, - 40193 - 11905: 0xF85E, - 40194 - 11905: 0xF85F, - 40195 - 11905: 0xF860, - 40196 - 11905: 0xF861, - 40197 - 11905: 0xF862, - 40198 - 11905: 0xF863, - 40199 - 11905: 0xF864, - 40200 - 11905: 0xF865, - 40201 - 11905: 0xF866, - 40202 - 11905: 0xF867, - 40203 - 11905: 0xF868, - 40204 - 11905: 0xF869, - 40205 - 11905: 0xF86A, - 40206 - 11905: 0xF86B, - 40207 - 11905: 0xF86C, - 40208 - 11905: 0xF86D, - 40209 - 11905: 0xF86E, - 40210 - 11905: 0xF86F, - 40211 - 11905: 0xF870, - 40212 - 11905: 0xF871, - 40213 - 11905: 0xF872, - 40214 - 11905: 0xF873, - 40215 - 11905: 0xF874, - 40216 - 11905: 0xF875, - 40217 - 11905: 0xF876, - 40218 - 11905: 0xF877, - 40219 - 11905: 0xF878, - 40220 - 11905: 0xF879, - 40221 - 11905: 0xF87A, - 40222 - 11905: 0xF87B, - 40223 - 11905: 0xF87C, - 40224 - 11905: 0xF87D, - 40225 - 11905: 0xF87E, - 40226 - 11905: 0xF880, - 40227 - 11905: 0xF881, - 40228 - 11905: 0xF882, - 40229 - 11905: 0xF883, - 40230 - 11905: 0xF884, - 40231 - 11905: 0xF885, - 40232 - 11905: 0xF886, - 40233 - 11905: 0xF887, - 40234 - 11905: 0xF888, - 40235 - 11905: 0xF889, - 40236 - 11905: 0xF88A, - 40237 - 11905: 0xF88B, - 40238 - 11905: 0xF88C, - 40239 - 11905: 0xF88D, - 40240 - 11905: 0xF88E, - 40241 - 11905: 0xF88F, - 40242 - 11905: 0xF890, - 40243 - 11905: 0xF891, - 40244 - 11905: 0xF892, - 40245 - 11905: 0xF893, - 40246 - 11905: 0xF894, - 40247 - 11905: 0xF895, - 40248 - 11905: 0xF896, - 40249 - 11905: 0xF897, - 40250 - 11905: 0xF898, - 40251 - 11905: 0xF899, - 40252 - 11905: 0xF89A, - 40253 - 11905: 0xF89B, - 40254 - 11905: 0xF89C, - 40255 - 11905: 0xF89D, - 40256 - 11905: 0xF89E, - 40257 - 11905: 0xF89F, - 40258 - 11905: 0xF8A0, - 40259 - 11905: 0xF940, - 40260 - 11905: 0xF941, - 40261 - 11905: 0xF942, - 40262 - 11905: 0xF943, - 40263 - 11905: 0xF944, - 40264 - 11905: 0xF945, - 40265 - 11905: 0xF946, - 40266 - 11905: 0xF947, - 40267 - 11905: 0xF948, - 40268 - 11905: 0xF949, - 40269 - 11905: 0xF94A, - 40270 - 11905: 0xF94B, - 40271 - 11905: 0xF94C, - 40272 - 11905: 0xF94D, - 40273 - 11905: 0xF94E, - 40274 - 11905: 0xF94F, - 40275 - 11905: 0xF950, - 40276 - 11905: 0xF951, - 40277 - 11905: 0xF952, - 40278 - 11905: 0xF953, - 40279 - 11905: 0xF954, - 40280 - 11905: 0xF955, - 40281 - 11905: 0xF956, - 40282 - 11905: 0xF957, - 40283 - 11905: 0xF958, - 40284 - 11905: 0xF959, - 40285 - 11905: 0xF95A, - 40286 - 11905: 0xF95B, - 40287 - 11905: 0xF95C, - 40288 - 11905: 0xF95D, - 40289 - 11905: 0xF95E, - 40290 - 11905: 0xF95F, - 40291 - 11905: 0xF960, - 40292 - 11905: 0xF961, - 40293 - 11905: 0xF962, - 40294 - 11905: 0xF963, - 40295 - 11905: 0xF964, - 40296 - 11905: 0xF965, - 40297 - 11905: 0xF966, - 40298 - 11905: 0xF967, - 40299 - 11905: 0xF968, - 40300 - 11905: 0xF969, - 40301 - 11905: 0xF96A, - 40302 - 11905: 0xF96B, - 40303 - 11905: 0xF96C, - 40304 - 11905: 0xF96D, - 40305 - 11905: 0xF96E, - 40306 - 11905: 0xF96F, - 40307 - 11905: 0xF970, - 40308 - 11905: 0xF971, - 40309 - 11905: 0xF972, - 40310 - 11905: 0xF973, - 40311 - 11905: 0xF974, - 40312 - 11905: 0xF975, - 40313 - 11905: 0xF976, - 40314 - 11905: 0xF977, - 40315 - 11905: 0xF978, - 40316 - 11905: 0xF979, - 40317 - 11905: 0xF97A, - 40318 - 11905: 0xF97B, - 40319 - 11905: 0xF97C, - 40320 - 11905: 0xF97D, - 40321 - 11905: 0xF97E, - 40322 - 11905: 0xF980, - 40323 - 11905: 0xF981, - 40324 - 11905: 0xF982, - 40325 - 11905: 0xF983, - 40326 - 11905: 0xF984, - 40327 - 11905: 0xF985, - 40328 - 11905: 0xF986, - 40329 - 11905: 0xF987, - 40330 - 11905: 0xF988, - 40331 - 11905: 0xF989, - 40332 - 11905: 0xF98A, - 40333 - 11905: 0xF98B, - 40334 - 11905: 0xF98C, - 40335 - 11905: 0xF98D, - 40336 - 11905: 0xF98E, - 40337 - 11905: 0xF98F, - 40338 - 11905: 0xF990, - 40339 - 11905: 0xF991, - 40340 - 11905: 0xF992, - 40341 - 11905: 0xF993, - 40342 - 11905: 0xF994, - 40343 - 11905: 0xF995, - 40344 - 11905: 0xF996, - 40345 - 11905: 0xF997, - 40346 - 11905: 0xF998, - 40347 - 11905: 0xF999, - 40348 - 11905: 0xF99A, - 40349 - 11905: 0xF99B, - 40350 - 11905: 0xF99C, - 40351 - 11905: 0xF99D, - 40352 - 11905: 0xF99E, - 40353 - 11905: 0xF99F, - 40354 - 11905: 0xF9A0, - 40355 - 11905: 0xFA40, - 40356 - 11905: 0xFA41, - 40357 - 11905: 0xFA42, - 40358 - 11905: 0xFA43, - 40359 - 11905: 0xFA44, - 40360 - 11905: 0xFA45, - 40361 - 11905: 0xFA46, - 40362 - 11905: 0xFA47, - 40363 - 11905: 0xFA48, - 40364 - 11905: 0xFA49, - 40365 - 11905: 0xFA4A, - 40366 - 11905: 0xFA4B, - 40367 - 11905: 0xFA4C, - 40368 - 11905: 0xFA4D, - 40369 - 11905: 0xFA4E, - 40370 - 11905: 0xFA4F, - 40371 - 11905: 0xFA50, - 40372 - 11905: 0xFA51, - 40373 - 11905: 0xFA52, - 40374 - 11905: 0xFA53, - 40375 - 11905: 0xFA54, - 40376 - 11905: 0xFA55, - 40377 - 11905: 0xFA56, - 40378 - 11905: 0xFA57, - 40379 - 11905: 0xFA58, - 40380 - 11905: 0xFA59, - 40381 - 11905: 0xFA5A, - 40382 - 11905: 0xFA5B, - 40383 - 11905: 0xFA5C, - 40384 - 11905: 0xFA5D, - 40385 - 11905: 0xFA5E, - 40386 - 11905: 0xFA5F, - 40387 - 11905: 0xFA60, - 40388 - 11905: 0xFA61, - 40389 - 11905: 0xFA62, - 40390 - 11905: 0xFA63, - 40391 - 11905: 0xFA64, - 40392 - 11905: 0xFA65, - 40393 - 11905: 0xFA66, - 40394 - 11905: 0xFA67, - 40395 - 11905: 0xFA68, - 40396 - 11905: 0xFA69, - 40397 - 11905: 0xFA6A, - 40398 - 11905: 0xFA6B, - 40399 - 11905: 0xFA6C, - 40400 - 11905: 0xFA6D, - 40401 - 11905: 0xFA6E, - 40402 - 11905: 0xFA6F, - 40403 - 11905: 0xFA70, - 40404 - 11905: 0xFA71, - 40405 - 11905: 0xFA72, - 40406 - 11905: 0xFA73, - 40407 - 11905: 0xFA74, - 40408 - 11905: 0xFA75, - 40409 - 11905: 0xFA76, - 40410 - 11905: 0xFA77, - 40411 - 11905: 0xFA78, - 40412 - 11905: 0xFA79, - 40413 - 11905: 0xFA7A, - 40414 - 11905: 0xFA7B, - 40415 - 11905: 0xFA7C, - 40416 - 11905: 0xFA7D, - 40417 - 11905: 0xFA7E, - 40418 - 11905: 0xFA80, - 40419 - 11905: 0xFA81, - 40420 - 11905: 0xFA82, - 40421 - 11905: 0xFA83, - 40422 - 11905: 0xFA84, - 40423 - 11905: 0xFA85, - 40424 - 11905: 0xFA86, - 40425 - 11905: 0xFA87, - 40426 - 11905: 0xFA88, - 40427 - 11905: 0xFA89, - 40428 - 11905: 0xFA8A, - 40429 - 11905: 0xFA8B, - 40430 - 11905: 0xFA8C, - 40431 - 11905: 0xFA8D, - 40432 - 11905: 0xFA8E, - 40433 - 11905: 0xFA8F, - 40434 - 11905: 0xFA90, - 40435 - 11905: 0xFA91, - 40436 - 11905: 0xFA92, - 40437 - 11905: 0xFA93, - 40438 - 11905: 0xFA94, - 40439 - 11905: 0xFA95, - 40440 - 11905: 0xFA96, - 40441 - 11905: 0xFA97, - 40442 - 11905: 0xFA98, - 40443 - 11905: 0xFA99, - 40444 - 11905: 0xFA9A, - 40445 - 11905: 0xFA9B, - 40446 - 11905: 0xFA9C, - 40447 - 11905: 0xFA9D, - 40448 - 11905: 0xFA9E, - 40449 - 11905: 0xFA9F, - 40450 - 11905: 0xFAA0, - 40451 - 11905: 0xFB40, - 40452 - 11905: 0xFB41, - 40453 - 11905: 0xFB42, - 40454 - 11905: 0xFB43, - 40455 - 11905: 0xFB44, - 40456 - 11905: 0xFB45, - 40457 - 11905: 0xFB46, - 40458 - 11905: 0xFB47, - 40459 - 11905: 0xFB48, - 40460 - 11905: 0xFB49, - 40461 - 11905: 0xFB4A, - 40462 - 11905: 0xFB4B, - 40463 - 11905: 0xFB4C, - 40464 - 11905: 0xFB4D, - 40465 - 11905: 0xFB4E, - 40466 - 11905: 0xFB4F, - 40467 - 11905: 0xFB50, - 40468 - 11905: 0xFB51, - 40469 - 11905: 0xFB52, - 40470 - 11905: 0xFB53, - 40471 - 11905: 0xFB54, - 40472 - 11905: 0xFB55, - 40473 - 11905: 0xFB56, - 40474 - 11905: 0xFB57, - 40475 - 11905: 0xFB58, - 40476 - 11905: 0xFB59, - 40477 - 11905: 0xFB5A, - 40478 - 11905: 0xFB5B, - 40479 - 11905: 0xC4F1, - 40480 - 11905: 0xF0AF, - 40481 - 11905: 0xBCA6, - 40482 - 11905: 0xF0B0, - 40483 - 11905: 0xC3F9, - 40484 - 11905: 0xFB5C, - 40485 - 11905: 0xC5B8, - 40486 - 11905: 0xD1BB, - 40487 - 11905: 0xFB5D, - 40488 - 11905: 0xF0B1, - 40489 - 11905: 0xF0B2, - 40490 - 11905: 0xF0B3, - 40491 - 11905: 0xF0B4, - 40492 - 11905: 0xF0B5, - 40493 - 11905: 0xD1BC, - 40494 - 11905: 0xFB5E, - 40495 - 11905: 0xD1EC, - 40496 - 11905: 0xFB5F, - 40497 - 11905: 0xF0B7, - 40498 - 11905: 0xF0B6, - 40499 - 11905: 0xD4A7, - 40500 - 11905: 0xFB60, - 40501 - 11905: 0xCDD2, - 40502 - 11905: 0xF0B8, - 40503 - 11905: 0xF0BA, - 40504 - 11905: 0xF0B9, - 40505 - 11905: 0xF0BB, - 40506 - 11905: 0xF0BC, - 40507 - 11905: 0xFB61, - 40508 - 11905: 0xFB62, - 40509 - 11905: 0xB8EB, - 40510 - 11905: 0xF0BD, - 40511 - 11905: 0xBAE8, - 40512 - 11905: 0xFB63, - 40513 - 11905: 0xF0BE, - 40514 - 11905: 0xF0BF, - 40515 - 11905: 0xBEE9, - 40516 - 11905: 0xF0C0, - 40517 - 11905: 0xB6EC, - 40518 - 11905: 0xF0C1, - 40519 - 11905: 0xF0C2, - 40520 - 11905: 0xF0C3, - 40521 - 11905: 0xF0C4, - 40522 - 11905: 0xC8B5, - 40523 - 11905: 0xF0C5, - 40524 - 11905: 0xF0C6, - 40525 - 11905: 0xFB64, - 40526 - 11905: 0xF0C7, - 40527 - 11905: 0xC5F4, - 40528 - 11905: 0xFB65, - 40529 - 11905: 0xF0C8, - 40530 - 11905: 0xFB66, - 40531 - 11905: 0xFB67, - 40532 - 11905: 0xFB68, - 40533 - 11905: 0xF0C9, - 40534 - 11905: 0xFB69, - 40535 - 11905: 0xF0CA, - 40536 - 11905: 0xF7BD, - 40537 - 11905: 0xFB6A, - 40538 - 11905: 0xF0CB, - 40539 - 11905: 0xF0CC, - 40540 - 11905: 0xF0CD, - 40541 - 11905: 0xFB6B, - 40542 - 11905: 0xF0CE, - 40543 - 11905: 0xFB6C, - 40544 - 11905: 0xFB6D, - 40545 - 11905: 0xFB6E, - 40546 - 11905: 0xFB6F, - 40547 - 11905: 0xF0CF, - 40548 - 11905: 0xBAD7, - 40549 - 11905: 0xFB70, - 40550 - 11905: 0xF0D0, - 40551 - 11905: 0xF0D1, - 40552 - 11905: 0xF0D2, - 40553 - 11905: 0xF0D3, - 40554 - 11905: 0xF0D4, - 40555 - 11905: 0xF0D5, - 40556 - 11905: 0xF0D6, - 40557 - 11905: 0xF0D8, - 40558 - 11905: 0xFB71, - 40559 - 11905: 0xFB72, - 40560 - 11905: 0xD3A5, - 40561 - 11905: 0xF0D7, - 40562 - 11905: 0xFB73, - 40563 - 11905: 0xF0D9, - 40564 - 11905: 0xFB74, - 40565 - 11905: 0xFB75, - 40566 - 11905: 0xFB76, - 40567 - 11905: 0xFB77, - 40568 - 11905: 0xFB78, - 40569 - 11905: 0xFB79, - 40570 - 11905: 0xFB7A, - 40571 - 11905: 0xFB7B, - 40572 - 11905: 0xFB7C, - 40573 - 11905: 0xFB7D, - 40574 - 11905: 0xF5BA, - 40575 - 11905: 0xC2B9, - 40576 - 11905: 0xFB7E, - 40577 - 11905: 0xFB80, - 40578 - 11905: 0xF7E4, - 40579 - 11905: 0xFB81, - 40580 - 11905: 0xFB82, - 40581 - 11905: 0xFB83, - 40582 - 11905: 0xFB84, - 40583 - 11905: 0xF7E5, - 40584 - 11905: 0xF7E6, - 40585 - 11905: 0xFB85, - 40586 - 11905: 0xFB86, - 40587 - 11905: 0xF7E7, - 40588 - 11905: 0xFB87, - 40589 - 11905: 0xFB88, - 40590 - 11905: 0xFB89, - 40591 - 11905: 0xFB8A, - 40592 - 11905: 0xFB8B, - 40593 - 11905: 0xFB8C, - 40594 - 11905: 0xF7E8, - 40595 - 11905: 0xC2B4, - 40596 - 11905: 0xFB8D, - 40597 - 11905: 0xFB8E, - 40598 - 11905: 0xFB8F, - 40599 - 11905: 0xFB90, - 40600 - 11905: 0xFB91, - 40601 - 11905: 0xFB92, - 40602 - 11905: 0xFB93, - 40603 - 11905: 0xFB94, - 40604 - 11905: 0xFB95, - 40605 - 11905: 0xF7EA, - 40606 - 11905: 0xFB96, - 40607 - 11905: 0xF7EB, - 40608 - 11905: 0xFB97, - 40609 - 11905: 0xFB98, - 40610 - 11905: 0xFB99, - 40611 - 11905: 0xFB9A, - 40612 - 11905: 0xFB9B, - 40613 - 11905: 0xFB9C, - 40614 - 11905: 0xC2F3, - 40615 - 11905: 0xFB9D, - 40616 - 11905: 0xFB9E, - 40617 - 11905: 0xFB9F, - 40618 - 11905: 0xFBA0, - 40619 - 11905: 0xFC40, - 40620 - 11905: 0xFC41, - 40621 - 11905: 0xFC42, - 40622 - 11905: 0xFC43, - 40623 - 11905: 0xFC44, - 40624 - 11905: 0xFC45, - 40625 - 11905: 0xFC46, - 40626 - 11905: 0xFC47, - 40627 - 11905: 0xFC48, - 40628 - 11905: 0xF4F0, - 40629 - 11905: 0xFC49, - 40630 - 11905: 0xFC4A, - 40631 - 11905: 0xFC4B, - 40632 - 11905: 0xF4EF, - 40633 - 11905: 0xFC4C, - 40634 - 11905: 0xFC4D, - 40635 - 11905: 0xC2E9, - 40636 - 11905: 0xFC4E, - 40637 - 11905: 0xF7E1, - 40638 - 11905: 0xF7E2, - 40639 - 11905: 0xFC4F, - 40640 - 11905: 0xFC50, - 40641 - 11905: 0xFC51, - 40642 - 11905: 0xFC52, - 40643 - 11905: 0xFC53, - 40644 - 11905: 0xBBC6, - 40645 - 11905: 0xFC54, - 40646 - 11905: 0xFC55, - 40647 - 11905: 0xFC56, - 40648 - 11905: 0xFC57, - 40649 - 11905: 0xD9E4, - 40650 - 11905: 0xFC58, - 40651 - 11905: 0xFC59, - 40652 - 11905: 0xFC5A, - 40653 - 11905: 0xCAF2, - 40654 - 11905: 0xC0E8, - 40655 - 11905: 0xF0A4, - 40656 - 11905: 0xFC5B, - 40657 - 11905: 0xBADA, - 40658 - 11905: 0xFC5C, - 40659 - 11905: 0xFC5D, - 40660 - 11905: 0xC7AD, - 40661 - 11905: 0xFC5E, - 40662 - 11905: 0xFC5F, - 40663 - 11905: 0xFC60, - 40664 - 11905: 0xC4AC, - 40665 - 11905: 0xFC61, - 40666 - 11905: 0xFC62, - 40667 - 11905: 0xF7EC, - 40668 - 11905: 0xF7ED, - 40669 - 11905: 0xF7EE, - 40670 - 11905: 0xFC63, - 40671 - 11905: 0xF7F0, - 40672 - 11905: 0xF7EF, - 40673 - 11905: 0xFC64, - 40674 - 11905: 0xF7F1, - 40675 - 11905: 0xFC65, - 40676 - 11905: 0xFC66, - 40677 - 11905: 0xF7F4, - 40678 - 11905: 0xFC67, - 40679 - 11905: 0xF7F3, - 40680 - 11905: 0xFC68, - 40681 - 11905: 0xF7F2, - 40682 - 11905: 0xF7F5, - 40683 - 11905: 0xFC69, - 40684 - 11905: 0xFC6A, - 40685 - 11905: 0xFC6B, - 40686 - 11905: 0xFC6C, - 40687 - 11905: 0xF7F6, - 40688 - 11905: 0xFC6D, - 40689 - 11905: 0xFC6E, - 40690 - 11905: 0xFC6F, - 40691 - 11905: 0xFC70, - 40692 - 11905: 0xFC71, - 40693 - 11905: 0xFC72, - 40694 - 11905: 0xFC73, - 40695 - 11905: 0xFC74, - 40696 - 11905: 0xFC75, - 40697 - 11905: 0xEDE9, - 40698 - 11905: 0xFC76, - 40699 - 11905: 0xEDEA, - 40700 - 11905: 0xEDEB, - 40701 - 11905: 0xFC77, - 40702 - 11905: 0xF6BC, - 40703 - 11905: 0xFC78, - 40704 - 11905: 0xFC79, - 40705 - 11905: 0xFC7A, - 40706 - 11905: 0xFC7B, - 40707 - 11905: 0xFC7C, - 40708 - 11905: 0xFC7D, - 40709 - 11905: 0xFC7E, - 40710 - 11905: 0xFC80, - 40711 - 11905: 0xFC81, - 40712 - 11905: 0xFC82, - 40713 - 11905: 0xFC83, - 40714 - 11905: 0xFC84, - 40715 - 11905: 0xF6BD, - 40716 - 11905: 0xFC85, - 40717 - 11905: 0xF6BE, - 40718 - 11905: 0xB6A6, - 40719 - 11905: 0xFC86, - 40720 - 11905: 0xD8BE, - 40721 - 11905: 0xFC87, - 40722 - 11905: 0xFC88, - 40723 - 11905: 0xB9C4, - 40724 - 11905: 0xFC89, - 40725 - 11905: 0xFC8A, - 40726 - 11905: 0xFC8B, - 40727 - 11905: 0xD8BB, - 40728 - 11905: 0xFC8C, - 40729 - 11905: 0xDCB1, - 40730 - 11905: 0xFC8D, - 40731 - 11905: 0xFC8E, - 40732 - 11905: 0xFC8F, - 40733 - 11905: 0xFC90, - 40734 - 11905: 0xFC91, - 40735 - 11905: 0xFC92, - 40736 - 11905: 0xCAF3, - 40737 - 11905: 0xFC93, - 40738 - 11905: 0xF7F7, - 40739 - 11905: 0xFC94, - 40740 - 11905: 0xFC95, - 40741 - 11905: 0xFC96, - 40742 - 11905: 0xFC97, - 40743 - 11905: 0xFC98, - 40744 - 11905: 0xFC99, - 40745 - 11905: 0xFC9A, - 40746 - 11905: 0xFC9B, - 40747 - 11905: 0xFC9C, - 40748 - 11905: 0xF7F8, - 40749 - 11905: 0xFC9D, - 40750 - 11905: 0xFC9E, - 40751 - 11905: 0xF7F9, - 40752 - 11905: 0xFC9F, - 40753 - 11905: 0xFCA0, - 40754 - 11905: 0xFD40, - 40755 - 11905: 0xFD41, - 40756 - 11905: 0xFD42, - 40757 - 11905: 0xFD43, - 40758 - 11905: 0xFD44, - 40759 - 11905: 0xF7FB, - 40760 - 11905: 0xFD45, - 40761 - 11905: 0xF7FA, - 40762 - 11905: 0xFD46, - 40763 - 11905: 0xB1C7, - 40764 - 11905: 0xFD47, - 40765 - 11905: 0xF7FC, - 40766 - 11905: 0xF7FD, - 40767 - 11905: 0xFD48, - 40768 - 11905: 0xFD49, - 40769 - 11905: 0xFD4A, - 40770 - 11905: 0xFD4B, - 40771 - 11905: 0xFD4C, - 40772 - 11905: 0xF7FE, - 40773 - 11905: 0xFD4D, - 40774 - 11905: 0xFD4E, - 40775 - 11905: 0xFD4F, - 40776 - 11905: 0xFD50, - 40777 - 11905: 0xFD51, - 40778 - 11905: 0xFD52, - 40779 - 11905: 0xFD53, - 40780 - 11905: 0xFD54, - 40781 - 11905: 0xFD55, - 40782 - 11905: 0xFD56, - 40783 - 11905: 0xFD57, - 40784 - 11905: 0xC6EB, - 40785 - 11905: 0xECB4, - 40786 - 11905: 0xFD58, - 40787 - 11905: 0xFD59, - 40788 - 11905: 0xFD5A, - 40789 - 11905: 0xFD5B, - 40790 - 11905: 0xFD5C, - 40791 - 11905: 0xFD5D, - 40792 - 11905: 0xFD5E, - 40793 - 11905: 0xFD5F, - 40794 - 11905: 0xFD60, - 40795 - 11905: 0xFD61, - 40796 - 11905: 0xFD62, - 40797 - 11905: 0xFD63, - 40798 - 11905: 0xFD64, - 40799 - 11905: 0xFD65, - 40800 - 11905: 0xFD66, - 40801 - 11905: 0xFD67, - 40802 - 11905: 0xFD68, - 40803 - 11905: 0xFD69, - 40804 - 11905: 0xFD6A, - 40805 - 11905: 0xFD6B, - 40806 - 11905: 0xFD6C, - 40807 - 11905: 0xFD6D, - 40808 - 11905: 0xFD6E, - 40809 - 11905: 0xFD6F, - 40810 - 11905: 0xFD70, - 40811 - 11905: 0xFD71, - 40812 - 11905: 0xFD72, - 40813 - 11905: 0xFD73, - 40814 - 11905: 0xFD74, - 40815 - 11905: 0xFD75, - 40816 - 11905: 0xFD76, - 40817 - 11905: 0xFD77, - 40818 - 11905: 0xFD78, - 40819 - 11905: 0xFD79, - 40820 - 11905: 0xFD7A, - 40821 - 11905: 0xFD7B, - 40822 - 11905: 0xFD7C, - 40823 - 11905: 0xFD7D, - 40824 - 11905: 0xFD7E, - 40825 - 11905: 0xFD80, - 40826 - 11905: 0xFD81, - 40827 - 11905: 0xFD82, - 40828 - 11905: 0xFD83, - 40829 - 11905: 0xFD84, - 40830 - 11905: 0xFD85, - 40831 - 11905: 0xB3DD, - 40832 - 11905: 0xF6B3, - 40833 - 11905: 0xFD86, - 40834 - 11905: 0xFD87, - 40835 - 11905: 0xF6B4, - 40836 - 11905: 0xC1E4, - 40837 - 11905: 0xF6B5, - 40838 - 11905: 0xF6B6, - 40839 - 11905: 0xF6B7, - 40840 - 11905: 0xF6B8, - 40841 - 11905: 0xF6B9, - 40842 - 11905: 0xF6BA, - 40843 - 11905: 0xC8A3, - 40844 - 11905: 0xF6BB, - 40845 - 11905: 0xFD88, - 40846 - 11905: 0xFD89, - 40847 - 11905: 0xFD8A, - 40848 - 11905: 0xFD8B, - 40849 - 11905: 0xFD8C, - 40850 - 11905: 0xFD8D, - 40851 - 11905: 0xFD8E, - 40852 - 11905: 0xFD8F, - 40853 - 11905: 0xFD90, - 40854 - 11905: 0xFD91, - 40855 - 11905: 0xFD92, - 40856 - 11905: 0xFD93, - 40857 - 11905: 0xC1FA, - 40858 - 11905: 0xB9A8, - 40859 - 11905: 0xEDE8, - 40860 - 11905: 0xFD94, - 40861 - 11905: 0xFD95, - 40862 - 11905: 0xFD96, - 40863 - 11905: 0xB9EA, - 40864 - 11905: 0xD9DF, - 40865 - 11905: 0xFD97, - 40866 - 11905: 0xFD98, - 40867 - 11905: 0xFD99, - 40868 - 11905: 0xFD9A, - 40869 - 11905: 0xFD9B, -} - -const encode1Low, encode1High = 8208, 9795 - -var encode1 = [...]uint16{ - 8208 - 8208: 0xA95C, - 8211 - 8208: 0xA843, - 8212 - 8208: 0xA1AA, - 8213 - 8208: 0xA844, - 8214 - 8208: 0xA1AC, - 8216 - 8208: 0xA1AE, - 8217 - 8208: 0xA1AF, - 8220 - 8208: 0xA1B0, - 8221 - 8208: 0xA1B1, - 8229 - 8208: 0xA845, - 8230 - 8208: 0xA1AD, - 8240 - 8208: 0xA1EB, - 8242 - 8208: 0xA1E4, - 8243 - 8208: 0xA1E5, - 8245 - 8208: 0xA846, - 8251 - 8208: 0xA1F9, - 8364 - 8208: 0xA2E3, - 8451 - 8208: 0xA1E6, - 8453 - 8208: 0xA847, - 8457 - 8208: 0xA848, - 8470 - 8208: 0xA1ED, - 8481 - 8208: 0xA959, - 8544 - 8208: 0xA2F1, - 8545 - 8208: 0xA2F2, - 8546 - 8208: 0xA2F3, - 8547 - 8208: 0xA2F4, - 8548 - 8208: 0xA2F5, - 8549 - 8208: 0xA2F6, - 8550 - 8208: 0xA2F7, - 8551 - 8208: 0xA2F8, - 8552 - 8208: 0xA2F9, - 8553 - 8208: 0xA2FA, - 8554 - 8208: 0xA2FB, - 8555 - 8208: 0xA2FC, - 8560 - 8208: 0xA2A1, - 8561 - 8208: 0xA2A2, - 8562 - 8208: 0xA2A3, - 8563 - 8208: 0xA2A4, - 8564 - 8208: 0xA2A5, - 8565 - 8208: 0xA2A6, - 8566 - 8208: 0xA2A7, - 8567 - 8208: 0xA2A8, - 8568 - 8208: 0xA2A9, - 8569 - 8208: 0xA2AA, - 8592 - 8208: 0xA1FB, - 8593 - 8208: 0xA1FC, - 8594 - 8208: 0xA1FA, - 8595 - 8208: 0xA1FD, - 8598 - 8208: 0xA849, - 8599 - 8208: 0xA84A, - 8600 - 8208: 0xA84B, - 8601 - 8208: 0xA84C, - 8712 - 8208: 0xA1CA, - 8719 - 8208: 0xA1C7, - 8721 - 8208: 0xA1C6, - 8725 - 8208: 0xA84D, - 8730 - 8208: 0xA1CC, - 8733 - 8208: 0xA1D8, - 8734 - 8208: 0xA1DE, - 8735 - 8208: 0xA84E, - 8736 - 8208: 0xA1CF, - 8739 - 8208: 0xA84F, - 8741 - 8208: 0xA1CE, - 8743 - 8208: 0xA1C4, - 8744 - 8208: 0xA1C5, - 8745 - 8208: 0xA1C9, - 8746 - 8208: 0xA1C8, - 8747 - 8208: 0xA1D2, - 8750 - 8208: 0xA1D3, - 8756 - 8208: 0xA1E0, - 8757 - 8208: 0xA1DF, - 8758 - 8208: 0xA1C3, - 8759 - 8208: 0xA1CB, - 8765 - 8208: 0xA1D7, - 8776 - 8208: 0xA1D6, - 8780 - 8208: 0xA1D5, - 8786 - 8208: 0xA850, - 8800 - 8208: 0xA1D9, - 8801 - 8208: 0xA1D4, - 8804 - 8208: 0xA1DC, - 8805 - 8208: 0xA1DD, - 8806 - 8208: 0xA851, - 8807 - 8208: 0xA852, - 8814 - 8208: 0xA1DA, - 8815 - 8208: 0xA1DB, - 8853 - 8208: 0xA892, - 8857 - 8208: 0xA1D1, - 8869 - 8208: 0xA1CD, - 8895 - 8208: 0xA853, - 8978 - 8208: 0xA1D0, - 9312 - 8208: 0xA2D9, - 9313 - 8208: 0xA2DA, - 9314 - 8208: 0xA2DB, - 9315 - 8208: 0xA2DC, - 9316 - 8208: 0xA2DD, - 9317 - 8208: 0xA2DE, - 9318 - 8208: 0xA2DF, - 9319 - 8208: 0xA2E0, - 9320 - 8208: 0xA2E1, - 9321 - 8208: 0xA2E2, - 9332 - 8208: 0xA2C5, - 9333 - 8208: 0xA2C6, - 9334 - 8208: 0xA2C7, - 9335 - 8208: 0xA2C8, - 9336 - 8208: 0xA2C9, - 9337 - 8208: 0xA2CA, - 9338 - 8208: 0xA2CB, - 9339 - 8208: 0xA2CC, - 9340 - 8208: 0xA2CD, - 9341 - 8208: 0xA2CE, - 9342 - 8208: 0xA2CF, - 9343 - 8208: 0xA2D0, - 9344 - 8208: 0xA2D1, - 9345 - 8208: 0xA2D2, - 9346 - 8208: 0xA2D3, - 9347 - 8208: 0xA2D4, - 9348 - 8208: 0xA2D5, - 9349 - 8208: 0xA2D6, - 9350 - 8208: 0xA2D7, - 9351 - 8208: 0xA2D8, - 9352 - 8208: 0xA2B1, - 9353 - 8208: 0xA2B2, - 9354 - 8208: 0xA2B3, - 9355 - 8208: 0xA2B4, - 9356 - 8208: 0xA2B5, - 9357 - 8208: 0xA2B6, - 9358 - 8208: 0xA2B7, - 9359 - 8208: 0xA2B8, - 9360 - 8208: 0xA2B9, - 9361 - 8208: 0xA2BA, - 9362 - 8208: 0xA2BB, - 9363 - 8208: 0xA2BC, - 9364 - 8208: 0xA2BD, - 9365 - 8208: 0xA2BE, - 9366 - 8208: 0xA2BF, - 9367 - 8208: 0xA2C0, - 9368 - 8208: 0xA2C1, - 9369 - 8208: 0xA2C2, - 9370 - 8208: 0xA2C3, - 9371 - 8208: 0xA2C4, - 9472 - 8208: 0xA9A4, - 9473 - 8208: 0xA9A5, - 9474 - 8208: 0xA9A6, - 9475 - 8208: 0xA9A7, - 9476 - 8208: 0xA9A8, - 9477 - 8208: 0xA9A9, - 9478 - 8208: 0xA9AA, - 9479 - 8208: 0xA9AB, - 9480 - 8208: 0xA9AC, - 9481 - 8208: 0xA9AD, - 9482 - 8208: 0xA9AE, - 9483 - 8208: 0xA9AF, - 9484 - 8208: 0xA9B0, - 9485 - 8208: 0xA9B1, - 9486 - 8208: 0xA9B2, - 9487 - 8208: 0xA9B3, - 9488 - 8208: 0xA9B4, - 9489 - 8208: 0xA9B5, - 9490 - 8208: 0xA9B6, - 9491 - 8208: 0xA9B7, - 9492 - 8208: 0xA9B8, - 9493 - 8208: 0xA9B9, - 9494 - 8208: 0xA9BA, - 9495 - 8208: 0xA9BB, - 9496 - 8208: 0xA9BC, - 9497 - 8208: 0xA9BD, - 9498 - 8208: 0xA9BE, - 9499 - 8208: 0xA9BF, - 9500 - 8208: 0xA9C0, - 9501 - 8208: 0xA9C1, - 9502 - 8208: 0xA9C2, - 9503 - 8208: 0xA9C3, - 9504 - 8208: 0xA9C4, - 9505 - 8208: 0xA9C5, - 9506 - 8208: 0xA9C6, - 9507 - 8208: 0xA9C7, - 9508 - 8208: 0xA9C8, - 9509 - 8208: 0xA9C9, - 9510 - 8208: 0xA9CA, - 9511 - 8208: 0xA9CB, - 9512 - 8208: 0xA9CC, - 9513 - 8208: 0xA9CD, - 9514 - 8208: 0xA9CE, - 9515 - 8208: 0xA9CF, - 9516 - 8208: 0xA9D0, - 9517 - 8208: 0xA9D1, - 9518 - 8208: 0xA9D2, - 9519 - 8208: 0xA9D3, - 9520 - 8208: 0xA9D4, - 9521 - 8208: 0xA9D5, - 9522 - 8208: 0xA9D6, - 9523 - 8208: 0xA9D7, - 9524 - 8208: 0xA9D8, - 9525 - 8208: 0xA9D9, - 9526 - 8208: 0xA9DA, - 9527 - 8208: 0xA9DB, - 9528 - 8208: 0xA9DC, - 9529 - 8208: 0xA9DD, - 9530 - 8208: 0xA9DE, - 9531 - 8208: 0xA9DF, - 9532 - 8208: 0xA9E0, - 9533 - 8208: 0xA9E1, - 9534 - 8208: 0xA9E2, - 9535 - 8208: 0xA9E3, - 9536 - 8208: 0xA9E4, - 9537 - 8208: 0xA9E5, - 9538 - 8208: 0xA9E6, - 9539 - 8208: 0xA9E7, - 9540 - 8208: 0xA9E8, - 9541 - 8208: 0xA9E9, - 9542 - 8208: 0xA9EA, - 9543 - 8208: 0xA9EB, - 9544 - 8208: 0xA9EC, - 9545 - 8208: 0xA9ED, - 9546 - 8208: 0xA9EE, - 9547 - 8208: 0xA9EF, - 9552 - 8208: 0xA854, - 9553 - 8208: 0xA855, - 9554 - 8208: 0xA856, - 9555 - 8208: 0xA857, - 9556 - 8208: 0xA858, - 9557 - 8208: 0xA859, - 9558 - 8208: 0xA85A, - 9559 - 8208: 0xA85B, - 9560 - 8208: 0xA85C, - 9561 - 8208: 0xA85D, - 9562 - 8208: 0xA85E, - 9563 - 8208: 0xA85F, - 9564 - 8208: 0xA860, - 9565 - 8208: 0xA861, - 9566 - 8208: 0xA862, - 9567 - 8208: 0xA863, - 9568 - 8208: 0xA864, - 9569 - 8208: 0xA865, - 9570 - 8208: 0xA866, - 9571 - 8208: 0xA867, - 9572 - 8208: 0xA868, - 9573 - 8208: 0xA869, - 9574 - 8208: 0xA86A, - 9575 - 8208: 0xA86B, - 9576 - 8208: 0xA86C, - 9577 - 8208: 0xA86D, - 9578 - 8208: 0xA86E, - 9579 - 8208: 0xA86F, - 9580 - 8208: 0xA870, - 9581 - 8208: 0xA871, - 9582 - 8208: 0xA872, - 9583 - 8208: 0xA873, - 9584 - 8208: 0xA874, - 9585 - 8208: 0xA875, - 9586 - 8208: 0xA876, - 9587 - 8208: 0xA877, - 9601 - 8208: 0xA878, - 9602 - 8208: 0xA879, - 9603 - 8208: 0xA87A, - 9604 - 8208: 0xA87B, - 9605 - 8208: 0xA87C, - 9606 - 8208: 0xA87D, - 9607 - 8208: 0xA87E, - 9608 - 8208: 0xA880, - 9609 - 8208: 0xA881, - 9610 - 8208: 0xA882, - 9611 - 8208: 0xA883, - 9612 - 8208: 0xA884, - 9613 - 8208: 0xA885, - 9614 - 8208: 0xA886, - 9615 - 8208: 0xA887, - 9619 - 8208: 0xA888, - 9620 - 8208: 0xA889, - 9621 - 8208: 0xA88A, - 9632 - 8208: 0xA1F6, - 9633 - 8208: 0xA1F5, - 9650 - 8208: 0xA1F8, - 9651 - 8208: 0xA1F7, - 9660 - 8208: 0xA88B, - 9661 - 8208: 0xA88C, - 9670 - 8208: 0xA1F4, - 9671 - 8208: 0xA1F3, - 9675 - 8208: 0xA1F0, - 9678 - 8208: 0xA1F2, - 9679 - 8208: 0xA1F1, - 9698 - 8208: 0xA88D, - 9699 - 8208: 0xA88E, - 9700 - 8208: 0xA88F, - 9701 - 8208: 0xA890, - 9733 - 8208: 0xA1EF, - 9734 - 8208: 0xA1EE, - 9737 - 8208: 0xA891, - 9792 - 8208: 0xA1E2, - 9794 - 8208: 0xA1E1, -} - -const encode2Low, encode2High = 164, 1106 - -var encode2 = [...]uint16{ - 164 - 164: 0xA1E8, - 167 - 164: 0xA1EC, - 168 - 164: 0xA1A7, - 176 - 164: 0xA1E3, - 177 - 164: 0xA1C0, - 183 - 164: 0xA1A4, - 215 - 164: 0xA1C1, - 224 - 164: 0xA8A4, - 225 - 164: 0xA8A2, - 232 - 164: 0xA8A8, - 233 - 164: 0xA8A6, - 234 - 164: 0xA8BA, - 236 - 164: 0xA8AC, - 237 - 164: 0xA8AA, - 242 - 164: 0xA8B0, - 243 - 164: 0xA8AE, - 247 - 164: 0xA1C2, - 249 - 164: 0xA8B4, - 250 - 164: 0xA8B2, - 252 - 164: 0xA8B9, - 257 - 164: 0xA8A1, - 275 - 164: 0xA8A5, - 283 - 164: 0xA8A7, - 299 - 164: 0xA8A9, - 324 - 164: 0xA8BD, - 328 - 164: 0xA8BE, - 333 - 164: 0xA8AD, - 363 - 164: 0xA8B1, - 462 - 164: 0xA8A3, - 464 - 164: 0xA8AB, - 466 - 164: 0xA8AF, - 468 - 164: 0xA8B3, - 470 - 164: 0xA8B5, - 472 - 164: 0xA8B6, - 474 - 164: 0xA8B7, - 476 - 164: 0xA8B8, - 505 - 164: 0xA8BF, - 593 - 164: 0xA8BB, - 609 - 164: 0xA8C0, - 711 - 164: 0xA1A6, - 713 - 164: 0xA1A5, - 714 - 164: 0xA840, - 715 - 164: 0xA841, - 729 - 164: 0xA842, - 913 - 164: 0xA6A1, - 914 - 164: 0xA6A2, - 915 - 164: 0xA6A3, - 916 - 164: 0xA6A4, - 917 - 164: 0xA6A5, - 918 - 164: 0xA6A6, - 919 - 164: 0xA6A7, - 920 - 164: 0xA6A8, - 921 - 164: 0xA6A9, - 922 - 164: 0xA6AA, - 923 - 164: 0xA6AB, - 924 - 164: 0xA6AC, - 925 - 164: 0xA6AD, - 926 - 164: 0xA6AE, - 927 - 164: 0xA6AF, - 928 - 164: 0xA6B0, - 929 - 164: 0xA6B1, - 931 - 164: 0xA6B2, - 932 - 164: 0xA6B3, - 933 - 164: 0xA6B4, - 934 - 164: 0xA6B5, - 935 - 164: 0xA6B6, - 936 - 164: 0xA6B7, - 937 - 164: 0xA6B8, - 945 - 164: 0xA6C1, - 946 - 164: 0xA6C2, - 947 - 164: 0xA6C3, - 948 - 164: 0xA6C4, - 949 - 164: 0xA6C5, - 950 - 164: 0xA6C6, - 951 - 164: 0xA6C7, - 952 - 164: 0xA6C8, - 953 - 164: 0xA6C9, - 954 - 164: 0xA6CA, - 955 - 164: 0xA6CB, - 956 - 164: 0xA6CC, - 957 - 164: 0xA6CD, - 958 - 164: 0xA6CE, - 959 - 164: 0xA6CF, - 960 - 164: 0xA6D0, - 961 - 164: 0xA6D1, - 963 - 164: 0xA6D2, - 964 - 164: 0xA6D3, - 965 - 164: 0xA6D4, - 966 - 164: 0xA6D5, - 967 - 164: 0xA6D6, - 968 - 164: 0xA6D7, - 969 - 164: 0xA6D8, - 1025 - 164: 0xA7A7, - 1040 - 164: 0xA7A1, - 1041 - 164: 0xA7A2, - 1042 - 164: 0xA7A3, - 1043 - 164: 0xA7A4, - 1044 - 164: 0xA7A5, - 1045 - 164: 0xA7A6, - 1046 - 164: 0xA7A8, - 1047 - 164: 0xA7A9, - 1048 - 164: 0xA7AA, - 1049 - 164: 0xA7AB, - 1050 - 164: 0xA7AC, - 1051 - 164: 0xA7AD, - 1052 - 164: 0xA7AE, - 1053 - 164: 0xA7AF, - 1054 - 164: 0xA7B0, - 1055 - 164: 0xA7B1, - 1056 - 164: 0xA7B2, - 1057 - 164: 0xA7B3, - 1058 - 164: 0xA7B4, - 1059 - 164: 0xA7B5, - 1060 - 164: 0xA7B6, - 1061 - 164: 0xA7B7, - 1062 - 164: 0xA7B8, - 1063 - 164: 0xA7B9, - 1064 - 164: 0xA7BA, - 1065 - 164: 0xA7BB, - 1066 - 164: 0xA7BC, - 1067 - 164: 0xA7BD, - 1068 - 164: 0xA7BE, - 1069 - 164: 0xA7BF, - 1070 - 164: 0xA7C0, - 1071 - 164: 0xA7C1, - 1072 - 164: 0xA7D1, - 1073 - 164: 0xA7D2, - 1074 - 164: 0xA7D3, - 1075 - 164: 0xA7D4, - 1076 - 164: 0xA7D5, - 1077 - 164: 0xA7D6, - 1078 - 164: 0xA7D8, - 1079 - 164: 0xA7D9, - 1080 - 164: 0xA7DA, - 1081 - 164: 0xA7DB, - 1082 - 164: 0xA7DC, - 1083 - 164: 0xA7DD, - 1084 - 164: 0xA7DE, - 1085 - 164: 0xA7DF, - 1086 - 164: 0xA7E0, - 1087 - 164: 0xA7E1, - 1088 - 164: 0xA7E2, - 1089 - 164: 0xA7E3, - 1090 - 164: 0xA7E4, - 1091 - 164: 0xA7E5, - 1092 - 164: 0xA7E6, - 1093 - 164: 0xA7E7, - 1094 - 164: 0xA7E8, - 1095 - 164: 0xA7E9, - 1096 - 164: 0xA7EA, - 1097 - 164: 0xA7EB, - 1098 - 164: 0xA7EC, - 1099 - 164: 0xA7ED, - 1100 - 164: 0xA7EE, - 1101 - 164: 0xA7EF, - 1102 - 164: 0xA7F0, - 1103 - 164: 0xA7F1, - 1105 - 164: 0xA7D7, -} - -const encode3Low, encode3High = 65072, 65510 - -var encode3 = [...]uint16{ - 65072 - 65072: 0xA955, - 65073 - 65072: 0xA6F2, - 65075 - 65072: 0xA6F4, - 65076 - 65072: 0xA6F5, - 65077 - 65072: 0xA6E0, - 65078 - 65072: 0xA6E1, - 65079 - 65072: 0xA6F0, - 65080 - 65072: 0xA6F1, - 65081 - 65072: 0xA6E2, - 65082 - 65072: 0xA6E3, - 65083 - 65072: 0xA6EE, - 65084 - 65072: 0xA6EF, - 65085 - 65072: 0xA6E6, - 65086 - 65072: 0xA6E7, - 65087 - 65072: 0xA6E4, - 65088 - 65072: 0xA6E5, - 65089 - 65072: 0xA6E8, - 65090 - 65072: 0xA6E9, - 65091 - 65072: 0xA6EA, - 65092 - 65072: 0xA6EB, - 65097 - 65072: 0xA968, - 65098 - 65072: 0xA969, - 65099 - 65072: 0xA96A, - 65100 - 65072: 0xA96B, - 65101 - 65072: 0xA96C, - 65102 - 65072: 0xA96D, - 65103 - 65072: 0xA96E, - 65104 - 65072: 0xA96F, - 65105 - 65072: 0xA970, - 65106 - 65072: 0xA971, - 65108 - 65072: 0xA972, - 65109 - 65072: 0xA973, - 65110 - 65072: 0xA974, - 65111 - 65072: 0xA975, - 65113 - 65072: 0xA976, - 65114 - 65072: 0xA977, - 65115 - 65072: 0xA978, - 65116 - 65072: 0xA979, - 65117 - 65072: 0xA97A, - 65118 - 65072: 0xA97B, - 65119 - 65072: 0xA97C, - 65120 - 65072: 0xA97D, - 65121 - 65072: 0xA97E, - 65122 - 65072: 0xA980, - 65123 - 65072: 0xA981, - 65124 - 65072: 0xA982, - 65125 - 65072: 0xA983, - 65126 - 65072: 0xA984, - 65128 - 65072: 0xA985, - 65129 - 65072: 0xA986, - 65130 - 65072: 0xA987, - 65131 - 65072: 0xA988, - 65281 - 65072: 0xA3A1, - 65282 - 65072: 0xA3A2, - 65283 - 65072: 0xA3A3, - 65284 - 65072: 0xA1E7, - 65285 - 65072: 0xA3A5, - 65286 - 65072: 0xA3A6, - 65287 - 65072: 0xA3A7, - 65288 - 65072: 0xA3A8, - 65289 - 65072: 0xA3A9, - 65290 - 65072: 0xA3AA, - 65291 - 65072: 0xA3AB, - 65292 - 65072: 0xA3AC, - 65293 - 65072: 0xA3AD, - 65294 - 65072: 0xA3AE, - 65295 - 65072: 0xA3AF, - 65296 - 65072: 0xA3B0, - 65297 - 65072: 0xA3B1, - 65298 - 65072: 0xA3B2, - 65299 - 65072: 0xA3B3, - 65300 - 65072: 0xA3B4, - 65301 - 65072: 0xA3B5, - 65302 - 65072: 0xA3B6, - 65303 - 65072: 0xA3B7, - 65304 - 65072: 0xA3B8, - 65305 - 65072: 0xA3B9, - 65306 - 65072: 0xA3BA, - 65307 - 65072: 0xA3BB, - 65308 - 65072: 0xA3BC, - 65309 - 65072: 0xA3BD, - 65310 - 65072: 0xA3BE, - 65311 - 65072: 0xA3BF, - 65312 - 65072: 0xA3C0, - 65313 - 65072: 0xA3C1, - 65314 - 65072: 0xA3C2, - 65315 - 65072: 0xA3C3, - 65316 - 65072: 0xA3C4, - 65317 - 65072: 0xA3C5, - 65318 - 65072: 0xA3C6, - 65319 - 65072: 0xA3C7, - 65320 - 65072: 0xA3C8, - 65321 - 65072: 0xA3C9, - 65322 - 65072: 0xA3CA, - 65323 - 65072: 0xA3CB, - 65324 - 65072: 0xA3CC, - 65325 - 65072: 0xA3CD, - 65326 - 65072: 0xA3CE, - 65327 - 65072: 0xA3CF, - 65328 - 65072: 0xA3D0, - 65329 - 65072: 0xA3D1, - 65330 - 65072: 0xA3D2, - 65331 - 65072: 0xA3D3, - 65332 - 65072: 0xA3D4, - 65333 - 65072: 0xA3D5, - 65334 - 65072: 0xA3D6, - 65335 - 65072: 0xA3D7, - 65336 - 65072: 0xA3D8, - 65337 - 65072: 0xA3D9, - 65338 - 65072: 0xA3DA, - 65339 - 65072: 0xA3DB, - 65340 - 65072: 0xA3DC, - 65341 - 65072: 0xA3DD, - 65342 - 65072: 0xA3DE, - 65343 - 65072: 0xA3DF, - 65344 - 65072: 0xA3E0, - 65345 - 65072: 0xA3E1, - 65346 - 65072: 0xA3E2, - 65347 - 65072: 0xA3E3, - 65348 - 65072: 0xA3E4, - 65349 - 65072: 0xA3E5, - 65350 - 65072: 0xA3E6, - 65351 - 65072: 0xA3E7, - 65352 - 65072: 0xA3E8, - 65353 - 65072: 0xA3E9, - 65354 - 65072: 0xA3EA, - 65355 - 65072: 0xA3EB, - 65356 - 65072: 0xA3EC, - 65357 - 65072: 0xA3ED, - 65358 - 65072: 0xA3EE, - 65359 - 65072: 0xA3EF, - 65360 - 65072: 0xA3F0, - 65361 - 65072: 0xA3F1, - 65362 - 65072: 0xA3F2, - 65363 - 65072: 0xA3F3, - 65364 - 65072: 0xA3F4, - 65365 - 65072: 0xA3F5, - 65366 - 65072: 0xA3F6, - 65367 - 65072: 0xA3F7, - 65368 - 65072: 0xA3F8, - 65369 - 65072: 0xA3F9, - 65370 - 65072: 0xA3FA, - 65371 - 65072: 0xA3FB, - 65372 - 65072: 0xA3FC, - 65373 - 65072: 0xA3FD, - 65374 - 65072: 0xA1AB, - 65504 - 65072: 0xA1E9, - 65505 - 65072: 0xA1EA, - 65506 - 65072: 0xA956, - 65507 - 65072: 0xA3FE, - 65508 - 65072: 0xA957, - 65509 - 65072: 0xA3A4, -} - -const encode4Low, encode4High = 63788, 64042 - -var encode4 = [...]uint16{ - 63788 - 63788: 0xFD9C, - 63865 - 63788: 0xFD9D, - 63893 - 63788: 0xFD9E, - 63975 - 63788: 0xFD9F, - 63985 - 63788: 0xFDA0, - 64012 - 63788: 0xFE40, - 64013 - 63788: 0xFE41, - 64014 - 63788: 0xFE42, - 64015 - 63788: 0xFE43, - 64017 - 63788: 0xFE44, - 64019 - 63788: 0xFE45, - 64020 - 63788: 0xFE46, - 64024 - 63788: 0xFE47, - 64031 - 63788: 0xFE48, - 64032 - 63788: 0xFE49, - 64033 - 63788: 0xFE4A, - 64035 - 63788: 0xFE4B, - 64036 - 63788: 0xFE4C, - 64039 - 63788: 0xFE4D, - 64040 - 63788: 0xFE4E, - 64041 - 63788: 0xFE4F, -} diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go b/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go deleted file mode 100644 index 1fcddde082..0000000000 --- a/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package traditionalchinese - -import ( - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/transform" -) - -// All is a list of all defined encodings in this package. -var All = []encoding.Encoding{Big5} - -// Big5 is the Big5 encoding, also known as Code Page 950. -var Big5 encoding.Encoding = &big5 - -var big5 = internal.Encoding{ - &internal.SimpleEncoding{big5Decoder{}, big5Encoder{}}, - "Big5", - identifier.Big5, -} - -type big5Decoder struct{ transform.NopResetter } - -func (big5Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size, s := rune(0), 0, "" -loop: - for ; nSrc < len(src); nSrc += size { - switch c0 := src[nSrc]; { - case c0 < utf8.RuneSelf: - r, size = rune(c0), 1 - - case 0x81 <= c0 && c0 < 0xff: - if nSrc+1 >= len(src) { - if !atEOF { - err = transform.ErrShortSrc - break loop - } - r, size = utf8.RuneError, 1 - goto write - } - c1 := src[nSrc+1] - switch { - case 0x40 <= c1 && c1 < 0x7f: - c1 -= 0x40 - case 0xa1 <= c1 && c1 < 0xff: - c1 -= 0x62 - case c1 < 0x40: - r, size = utf8.RuneError, 1 - goto write - default: - r, size = utf8.RuneError, 2 - goto write - } - r, size = '\ufffd', 2 - if i := int(c0-0x81)*157 + int(c1); i < len(decode) { - if 1133 <= i && i < 1167 { - // The two-rune special cases for LATIN CAPITAL / SMALL E WITH CIRCUMFLEX - // AND MACRON / CARON are from http://encoding.spec.whatwg.org/#big5 - switch i { - case 1133: - s = "\u00CA\u0304" - goto writeStr - case 1135: - s = "\u00CA\u030C" - goto writeStr - case 1164: - s = "\u00EA\u0304" - goto writeStr - case 1166: - s = "\u00EA\u030C" - goto writeStr - } - } - r = rune(decode[i]) - if r == 0 { - r = '\ufffd' - } - } - - default: - r, size = utf8.RuneError, 1 - } - - write: - if nDst+utf8.RuneLen(r) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += utf8.EncodeRune(dst[nDst:], r) - continue loop - - writeStr: - if nDst+len(s) > len(dst) { - err = transform.ErrShortDst - break loop - } - nDst += copy(dst[nDst:], s) - continue loop - } - return nDst, nSrc, err -} - -type big5Encoder struct{ transform.NopResetter } - -func (big5Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - r, size := rune(0), 0 - for ; nSrc < len(src); nSrc += size { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - if nDst >= len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst] = uint8(r) - nDst++ - continue - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - } - - if r >= utf8.RuneSelf { - // func init checks that the switch covers all tables. - switch { - case encode0Low <= r && r < encode0High: - if r = rune(encode0[r-encode0Low]); r != 0 { - goto write2 - } - case encode1Low <= r && r < encode1High: - if r = rune(encode1[r-encode1Low]); r != 0 { - goto write2 - } - case encode2Low <= r && r < encode2High: - if r = rune(encode2[r-encode2Low]); r != 0 { - goto write2 - } - case encode3Low <= r && r < encode3High: - if r = rune(encode3[r-encode3Low]); r != 0 { - goto write2 - } - case encode4Low <= r && r < encode4High: - if r = rune(encode4[r-encode4Low]); r != 0 { - goto write2 - } - case encode5Low <= r && r < encode5High: - if r = rune(encode5[r-encode5Low]); r != 0 { - goto write2 - } - case encode6Low <= r && r < encode6High: - if r = rune(encode6[r-encode6Low]); r != 0 { - goto write2 - } - case encode7Low <= r && r < encode7High: - if r = rune(encode7[r-encode7Low]); r != 0 { - goto write2 - } - } - err = internal.ErrASCIIReplacement - break - } - - write2: - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - continue - } - return nDst, nSrc, err -} - -func init() { - // Check that the hard-coded encode switch covers all tables. - if numEncodeTables != 8 { - panic("bad numEncodeTables") - } -} diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go b/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go deleted file mode 100644 index d909e38e5e..0000000000 --- a/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go +++ /dev/null @@ -1,37142 +0,0 @@ -// generated by go run maketables.go; DO NOT EDIT - -// Package traditionalchinese provides Traditional Chinese encodings such as Big5. -package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese" - -// decode is the decoding table from Big5 code to Unicode. -// It is defined at http://encoding.spec.whatwg.org/index-big5.txt -var decode = [...]uint32{ - 942: 0x000043F0, - 943: 0x00004C32, - 944: 0x00004603, - 945: 0x000045A6, - 946: 0x00004578, - 947: 0x00027267, - 948: 0x00004D77, - 949: 0x000045B3, - 950: 0x00027CB1, - 951: 0x00004CE2, - 952: 0x00027CC5, - 953: 0x00003B95, - 954: 0x00004736, - 955: 0x00004744, - 956: 0x00004C47, - 957: 0x00004C40, - 958: 0x000242BF, - 959: 0x00023617, - 960: 0x00027352, - 961: 0x00026E8B, - 962: 0x000270D2, - 963: 0x00004C57, - 964: 0x0002A351, - 965: 0x0000474F, - 966: 0x000045DA, - 967: 0x00004C85, - 968: 0x00027C6C, - 969: 0x00004D07, - 970: 0x00004AA4, - 971: 0x000046A1, - 972: 0x00026B23, - 973: 0x00007225, - 974: 0x00025A54, - 975: 0x00021A63, - 976: 0x00023E06, - 977: 0x00023F61, - 978: 0x0000664D, - 979: 0x000056FB, - 981: 0x00007D95, - 982: 0x0000591D, - 983: 0x00028BB9, - 984: 0x00003DF4, - 985: 0x00009734, - 986: 0x00027BEF, - 987: 0x00005BDB, - 988: 0x00021D5E, - 989: 0x00005AA4, - 990: 0x00003625, - 991: 0x00029EB0, - 992: 0x00005AD1, - 993: 0x00005BB7, - 994: 0x00005CFC, - 995: 0x0000676E, - 996: 0x00008593, - 997: 0x00029945, - 998: 0x00007461, - 999: 0x0000749D, - 1000: 0x00003875, - 1001: 0x00021D53, - 1002: 0x0002369E, - 1003: 0x00026021, - 1004: 0x00003EEC, - 1005: 0x000258DE, - 1006: 0x00003AF5, - 1007: 0x00007AFC, - 1008: 0x00009F97, - 1009: 0x00024161, - 1010: 0x0002890D, - 1011: 0x000231EA, - 1012: 0x00020A8A, - 1013: 0x0002325E, - 1014: 0x0000430A, - 1015: 0x00008484, - 1016: 0x00009F96, - 1017: 0x0000942F, - 1018: 0x00004930, - 1019: 0x00008613, - 1020: 0x00005896, - 1021: 0x0000974A, - 1022: 0x00009218, - 1023: 0x000079D0, - 1024: 0x00007A32, - 1025: 0x00006660, - 1026: 0x00006A29, - 1027: 0x0000889D, - 1028: 0x0000744C, - 1029: 0x00007BC5, - 1030: 0x00006782, - 1031: 0x00007A2C, - 1032: 0x0000524F, - 1033: 0x00009046, - 1034: 0x000034E6, - 1035: 0x000073C4, - 1036: 0x00025DB9, - 1037: 0x000074C6, - 1038: 0x00009FC7, - 1039: 0x000057B3, - 1040: 0x0000492F, - 1041: 0x0000544C, - 1042: 0x00004131, - 1043: 0x0002368E, - 1044: 0x00005818, - 1045: 0x00007A72, - 1046: 0x00027B65, - 1047: 0x00008B8F, - 1048: 0x000046AE, - 1049: 0x00026E88, - 1050: 0x00004181, - 1051: 0x00025D99, - 1052: 0x00007BAE, - 1053: 0x000224BC, - 1054: 0x00009FC8, - 1055: 0x000224C1, - 1056: 0x000224C9, - 1057: 0x000224CC, - 1058: 0x00009FC9, - 1059: 0x00008504, - 1060: 0x000235BB, - 1061: 0x000040B4, - 1062: 0x00009FCA, - 1063: 0x000044E1, - 1064: 0x0002ADFF, - 1065: 0x000062C1, - 1066: 0x0000706E, - 1067: 0x00009FCB, - 1099: 0x000031C0, - 1100: 0x000031C1, - 1101: 0x000031C2, - 1102: 0x000031C3, - 1103: 0x000031C4, - 1104: 0x0002010C, - 1105: 0x000031C5, - 1106: 0x000200D1, - 1107: 0x000200CD, - 1108: 0x000031C6, - 1109: 0x000031C7, - 1110: 0x000200CB, - 1111: 0x00021FE8, - 1112: 0x000031C8, - 1113: 0x000200CA, - 1114: 0x000031C9, - 1115: 0x000031CA, - 1116: 0x000031CB, - 1117: 0x000031CC, - 1118: 0x0002010E, - 1119: 0x000031CD, - 1120: 0x000031CE, - 1121: 0x00000100, - 1122: 0x000000C1, - 1123: 0x000001CD, - 1124: 0x000000C0, - 1125: 0x00000112, - 1126: 0x000000C9, - 1127: 0x0000011A, - 1128: 0x000000C8, - 1129: 0x0000014C, - 1130: 0x000000D3, - 1131: 0x000001D1, - 1132: 0x000000D2, - 1134: 0x00001EBE, - 1136: 0x00001EC0, - 1137: 0x000000CA, - 1138: 0x00000101, - 1139: 0x000000E1, - 1140: 0x000001CE, - 1141: 0x000000E0, - 1142: 0x00000251, - 1143: 0x00000113, - 1144: 0x000000E9, - 1145: 0x0000011B, - 1146: 0x000000E8, - 1147: 0x0000012B, - 1148: 0x000000ED, - 1149: 0x000001D0, - 1150: 0x000000EC, - 1151: 0x0000014D, - 1152: 0x000000F3, - 1153: 0x000001D2, - 1154: 0x000000F2, - 1155: 0x0000016B, - 1156: 0x000000FA, - 1157: 0x000001D4, - 1158: 0x000000F9, - 1159: 0x000001D6, - 1160: 0x000001D8, - 1161: 0x000001DA, - 1162: 0x000001DC, - 1163: 0x000000FC, - 1165: 0x00001EBF, - 1167: 0x00001EC1, - 1168: 0x000000EA, - 1169: 0x00000261, - 1170: 0x000023DA, - 1171: 0x000023DB, - 1256: 0x0002A3A9, - 1257: 0x00021145, - 1259: 0x0000650A, - 1262: 0x00004E3D, - 1263: 0x00006EDD, - 1264: 0x00009D4E, - 1265: 0x000091DF, - 1268: 0x00027735, - 1269: 0x00006491, - 1270: 0x00004F1A, - 1271: 0x00004F28, - 1272: 0x00004FA8, - 1273: 0x00005156, - 1274: 0x00005174, - 1275: 0x0000519C, - 1276: 0x000051E4, - 1277: 0x000052A1, - 1278: 0x000052A8, - 1279: 0x0000533B, - 1280: 0x0000534E, - 1281: 0x000053D1, - 1282: 0x000053D8, - 1283: 0x000056E2, - 1284: 0x000058F0, - 1285: 0x00005904, - 1286: 0x00005907, - 1287: 0x00005932, - 1288: 0x00005934, - 1289: 0x00005B66, - 1290: 0x00005B9E, - 1291: 0x00005B9F, - 1292: 0x00005C9A, - 1293: 0x00005E86, - 1294: 0x0000603B, - 1295: 0x00006589, - 1296: 0x000067FE, - 1297: 0x00006804, - 1298: 0x00006865, - 1299: 0x00006D4E, - 1300: 0x000070BC, - 1301: 0x00007535, - 1302: 0x00007EA4, - 1303: 0x00007EAC, - 1304: 0x00007EBA, - 1305: 0x00007EC7, - 1306: 0x00007ECF, - 1307: 0x00007EDF, - 1308: 0x00007F06, - 1309: 0x00007F37, - 1310: 0x0000827A, - 1311: 0x000082CF, - 1312: 0x0000836F, - 1313: 0x000089C6, - 1314: 0x00008BBE, - 1315: 0x00008BE2, - 1316: 0x00008F66, - 1317: 0x00008F67, - 1318: 0x00008F6E, - 1319: 0x00007411, - 1320: 0x00007CFC, - 1321: 0x00007DCD, - 1322: 0x00006946, - 1323: 0x00007AC9, - 1324: 0x00005227, - 1329: 0x0000918C, - 1330: 0x000078B8, - 1331: 0x0000915E, - 1332: 0x000080BC, - 1334: 0x00008D0B, - 1335: 0x000080F6, - 1336: 0x000209E7, - 1339: 0x0000809F, - 1340: 0x00009EC7, - 1341: 0x00004CCD, - 1342: 0x00009DC9, - 1343: 0x00009E0C, - 1344: 0x00004C3E, - 1345: 0x00029DF6, - 1346: 0x0002700E, - 1347: 0x00009E0A, - 1348: 0x0002A133, - 1349: 0x000035C1, - 1351: 0x00006E9A, - 1352: 0x0000823E, - 1353: 0x00007519, - 1355: 0x00004911, - 1356: 0x00009A6C, - 1357: 0x00009A8F, - 1358: 0x00009F99, - 1359: 0x00007987, - 1360: 0x0002846C, - 1361: 0x00021DCA, - 1362: 0x000205D0, - 1363: 0x00022AE6, - 1364: 0x00004E24, - 1365: 0x00004E81, - 1366: 0x00004E80, - 1367: 0x00004E87, - 1368: 0x00004EBF, - 1369: 0x00004EEB, - 1370: 0x00004F37, - 1371: 0x0000344C, - 1372: 0x00004FBD, - 1373: 0x00003E48, - 1374: 0x00005003, - 1375: 0x00005088, - 1376: 0x0000347D, - 1377: 0x00003493, - 1378: 0x000034A5, - 1379: 0x00005186, - 1380: 0x00005905, - 1381: 0x000051DB, - 1382: 0x000051FC, - 1383: 0x00005205, - 1384: 0x00004E89, - 1385: 0x00005279, - 1386: 0x00005290, - 1387: 0x00005327, - 1388: 0x000035C7, - 1389: 0x000053A9, - 1390: 0x00003551, - 1391: 0x000053B0, - 1392: 0x00003553, - 1393: 0x000053C2, - 1394: 0x00005423, - 1395: 0x0000356D, - 1396: 0x00003572, - 1397: 0x00003681, - 1398: 0x00005493, - 1399: 0x000054A3, - 1400: 0x000054B4, - 1401: 0x000054B9, - 1402: 0x000054D0, - 1403: 0x000054EF, - 1404: 0x00005518, - 1405: 0x00005523, - 1406: 0x00005528, - 1407: 0x00003598, - 1408: 0x0000553F, - 1409: 0x000035A5, - 1410: 0x000035BF, - 1411: 0x000055D7, - 1412: 0x000035C5, - 1413: 0x00027D84, - 1414: 0x00005525, - 1416: 0x00020C42, - 1417: 0x00020D15, - 1418: 0x0002512B, - 1419: 0x00005590, - 1420: 0x00022CC6, - 1421: 0x000039EC, - 1422: 0x00020341, - 1423: 0x00008E46, - 1424: 0x00024DB8, - 1425: 0x000294E5, - 1426: 0x00004053, - 1427: 0x000280BE, - 1428: 0x0000777A, - 1429: 0x00022C38, - 1430: 0x00003A34, - 1431: 0x000047D5, - 1432: 0x0002815D, - 1433: 0x000269F2, - 1434: 0x00024DEA, - 1435: 0x000064DD, - 1436: 0x00020D7C, - 1437: 0x00020FB4, - 1438: 0x00020CD5, - 1439: 0x000210F4, - 1440: 0x0000648D, - 1441: 0x00008E7E, - 1442: 0x00020E96, - 1443: 0x00020C0B, - 1444: 0x00020F64, - 1445: 0x00022CA9, - 1446: 0x00028256, - 1447: 0x000244D3, - 1449: 0x00020D46, - 1450: 0x00029A4D, - 1451: 0x000280E9, - 1452: 0x000047F4, - 1453: 0x00024EA7, - 1454: 0x00022CC2, - 1455: 0x00009AB2, - 1456: 0x00003A67, - 1457: 0x000295F4, - 1458: 0x00003FED, - 1459: 0x00003506, - 1460: 0x000252C7, - 1461: 0x000297D4, - 1462: 0x000278C8, - 1463: 0x00022D44, - 1464: 0x00009D6E, - 1465: 0x00009815, - 1467: 0x000043D9, - 1468: 0x000260A5, - 1469: 0x000064B4, - 1470: 0x000054E3, - 1471: 0x00022D4C, - 1472: 0x00022BCA, - 1473: 0x00021077, - 1474: 0x000039FB, - 1475: 0x0002106F, - 1476: 0x000266DA, - 1477: 0x00026716, - 1478: 0x000279A0, - 1479: 0x000064EA, - 1480: 0x00025052, - 1481: 0x00020C43, - 1482: 0x00008E68, - 1483: 0x000221A1, - 1484: 0x00028B4C, - 1485: 0x00020731, - 1487: 0x0000480B, - 1488: 0x000201A9, - 1489: 0x00003FFA, - 1490: 0x00005873, - 1491: 0x00022D8D, - 1493: 0x000245C8, - 1494: 0x000204FC, - 1495: 0x00026097, - 1496: 0x00020F4C, - 1497: 0x00020D96, - 1498: 0x00005579, - 1499: 0x000040BB, - 1500: 0x000043BA, - 1502: 0x00004AB4, - 1503: 0x00022A66, - 1504: 0x0002109D, - 1505: 0x000081AA, - 1506: 0x000098F5, - 1507: 0x00020D9C, - 1508: 0x00006379, - 1509: 0x000039FE, - 1510: 0x00022775, - 1511: 0x00008DC0, - 1512: 0x000056A1, - 1513: 0x0000647C, - 1514: 0x00003E43, - 1516: 0x0002A601, - 1517: 0x00020E09, - 1518: 0x00022ACF, - 1519: 0x00022CC9, - 1521: 0x000210C8, - 1522: 0x000239C2, - 1523: 0x00003992, - 1524: 0x00003A06, - 1525: 0x0002829B, - 1526: 0x00003578, - 1527: 0x00025E49, - 1528: 0x000220C7, - 1529: 0x00005652, - 1530: 0x00020F31, - 1531: 0x00022CB2, - 1532: 0x00029720, - 1533: 0x000034BC, - 1534: 0x00006C3D, - 1535: 0x00024E3B, - 1538: 0x00027574, - 1539: 0x00022E8B, - 1540: 0x00022208, - 1541: 0x0002A65B, - 1542: 0x00028CCD, - 1543: 0x00020E7A, - 1544: 0x00020C34, - 1545: 0x0002681C, - 1546: 0x00007F93, - 1547: 0x000210CF, - 1548: 0x00022803, - 1549: 0x00022939, - 1550: 0x000035FB, - 1551: 0x000251E3, - 1552: 0x00020E8C, - 1553: 0x00020F8D, - 1554: 0x00020EAA, - 1555: 0x00003F93, - 1556: 0x00020F30, - 1557: 0x00020D47, - 1558: 0x0002114F, - 1559: 0x00020E4C, - 1561: 0x00020EAB, - 1562: 0x00020BA9, - 1563: 0x00020D48, - 1564: 0x000210C0, - 1565: 0x0002113D, - 1566: 0x00003FF9, - 1567: 0x00022696, - 1568: 0x00006432, - 1569: 0x00020FAD, - 1570: 0x000233F4, - 1571: 0x00027639, - 1572: 0x00022BCE, - 1573: 0x00020D7E, - 1574: 0x00020D7F, - 1575: 0x00022C51, - 1576: 0x00022C55, - 1577: 0x00003A18, - 1578: 0x00020E98, - 1579: 0x000210C7, - 1580: 0x00020F2E, - 1581: 0x0002A632, - 1582: 0x00026B50, - 1583: 0x00028CD2, - 1584: 0x00028D99, - 1585: 0x00028CCA, - 1586: 0x000095AA, - 1587: 0x000054CC, - 1588: 0x000082C4, - 1589: 0x000055B9, - 1591: 0x00029EC3, - 1592: 0x00009C26, - 1593: 0x00009AB6, - 1594: 0x0002775E, - 1595: 0x00022DEE, - 1596: 0x00007140, - 1597: 0x0000816D, - 1598: 0x000080EC, - 1599: 0x00005C1C, - 1600: 0x00026572, - 1601: 0x00008134, - 1602: 0x00003797, - 1603: 0x0000535F, - 1604: 0x000280BD, - 1605: 0x000091B6, - 1606: 0x00020EFA, - 1607: 0x00020E0F, - 1608: 0x00020E77, - 1609: 0x00020EFB, - 1610: 0x000035DD, - 1611: 0x00024DEB, - 1612: 0x00003609, - 1613: 0x00020CD6, - 1614: 0x000056AF, - 1615: 0x000227B5, - 1616: 0x000210C9, - 1617: 0x00020E10, - 1618: 0x00020E78, - 1619: 0x00021078, - 1620: 0x00021148, - 1621: 0x00028207, - 1622: 0x00021455, - 1623: 0x00020E79, - 1624: 0x00024E50, - 1625: 0x00022DA4, - 1626: 0x00005A54, - 1627: 0x0002101D, - 1628: 0x0002101E, - 1629: 0x000210F5, - 1630: 0x000210F6, - 1631: 0x0000579C, - 1632: 0x00020E11, - 1633: 0x00027694, - 1634: 0x000282CD, - 1635: 0x00020FB5, - 1636: 0x00020E7B, - 1637: 0x0002517E, - 1638: 0x00003703, - 1639: 0x00020FB6, - 1640: 0x00021180, - 1641: 0x000252D8, - 1642: 0x0002A2BD, - 1643: 0x000249DA, - 1644: 0x0002183A, - 1645: 0x00024177, - 1646: 0x0002827C, - 1647: 0x00005899, - 1648: 0x00005268, - 1649: 0x0000361A, - 1650: 0x0002573D, - 1651: 0x00007BB2, - 1652: 0x00005B68, - 1653: 0x00004800, - 1654: 0x00004B2C, - 1655: 0x00009F27, - 1656: 0x000049E7, - 1657: 0x00009C1F, - 1658: 0x00009B8D, - 1659: 0x00025B74, - 1660: 0x0002313D, - 1661: 0x000055FB, - 1662: 0x000035F2, - 1663: 0x00005689, - 1664: 0x00004E28, - 1665: 0x00005902, - 1666: 0x00021BC1, - 1667: 0x0002F878, - 1668: 0x00009751, - 1669: 0x00020086, - 1670: 0x00004E5B, - 1671: 0x00004EBB, - 1672: 0x0000353E, - 1673: 0x00005C23, - 1674: 0x00005F51, - 1675: 0x00005FC4, - 1676: 0x000038FA, - 1677: 0x0000624C, - 1678: 0x00006535, - 1679: 0x00006B7A, - 1680: 0x00006C35, - 1681: 0x00006C3A, - 1682: 0x0000706C, - 1683: 0x0000722B, - 1684: 0x00004E2C, - 1685: 0x000072AD, - 1686: 0x000248E9, - 1687: 0x00007F52, - 1688: 0x0000793B, - 1689: 0x00007CF9, - 1690: 0x00007F53, - 1691: 0x0002626A, - 1692: 0x000034C1, - 1694: 0x0002634B, - 1695: 0x00008002, - 1696: 0x00008080, - 1697: 0x00026612, - 1698: 0x00026951, - 1699: 0x0000535D, - 1700: 0x00008864, - 1701: 0x000089C1, - 1702: 0x000278B2, - 1703: 0x00008BA0, - 1704: 0x00008D1D, - 1705: 0x00009485, - 1706: 0x00009578, - 1707: 0x0000957F, - 1708: 0x000095E8, - 1709: 0x00028E0F, - 1710: 0x000097E6, - 1711: 0x00009875, - 1712: 0x000098CE, - 1713: 0x000098DE, - 1714: 0x00009963, - 1715: 0x00029810, - 1716: 0x00009C7C, - 1717: 0x00009E1F, - 1718: 0x00009EC4, - 1719: 0x00006B6F, - 1720: 0x0000F907, - 1721: 0x00004E37, - 1722: 0x00020087, - 1723: 0x0000961D, - 1724: 0x00006237, - 1725: 0x000094A2, - 1727: 0x0000503B, - 1728: 0x00006DFE, - 1729: 0x00029C73, - 1730: 0x00009FA6, - 1731: 0x00003DC9, - 1732: 0x0000888F, - 1733: 0x0002414E, - 1734: 0x00007077, - 1735: 0x00005CF5, - 1736: 0x00004B20, - 1737: 0x000251CD, - 1738: 0x00003559, - 1739: 0x00025D30, - 1740: 0x00006122, - 1741: 0x00028A32, - 1742: 0x00008FA7, - 1743: 0x000091F6, - 1744: 0x00007191, - 1745: 0x00006719, - 1746: 0x000073BA, - 1747: 0x00023281, - 1748: 0x0002A107, - 1749: 0x00003C8B, - 1750: 0x00021980, - 1751: 0x00004B10, - 1752: 0x000078E4, - 1753: 0x00007402, - 1754: 0x000051AE, - 1755: 0x0002870F, - 1756: 0x00004009, - 1757: 0x00006A63, - 1758: 0x0002A2BA, - 1759: 0x00004223, - 1760: 0x0000860F, - 1761: 0x00020A6F, - 1762: 0x00007A2A, - 1763: 0x00029947, - 1764: 0x00028AEA, - 1765: 0x00009755, - 1766: 0x0000704D, - 1767: 0x00005324, - 1768: 0x0002207E, - 1769: 0x000093F4, - 1770: 0x000076D9, - 1771: 0x000289E3, - 1772: 0x00009FA7, - 1773: 0x000077DD, - 1774: 0x00004EA3, - 1775: 0x00004FF0, - 1776: 0x000050BC, - 1777: 0x00004E2F, - 1778: 0x00004F17, - 1779: 0x00009FA8, - 1780: 0x00005434, - 1781: 0x00007D8B, - 1782: 0x00005892, - 1783: 0x000058D0, - 1784: 0x00021DB6, - 1785: 0x00005E92, - 1786: 0x00005E99, - 1787: 0x00005FC2, - 1788: 0x00022712, - 1789: 0x0000658B, - 1790: 0x000233F9, - 1791: 0x00006919, - 1792: 0x00006A43, - 1793: 0x00023C63, - 1794: 0x00006CFF, - 1796: 0x00007200, - 1797: 0x00024505, - 1798: 0x0000738C, - 1799: 0x00003EDB, - 1800: 0x00024A13, - 1801: 0x00005B15, - 1802: 0x000074B9, - 1803: 0x00008B83, - 1804: 0x00025CA4, - 1805: 0x00025695, - 1806: 0x00007A93, - 1807: 0x00007BEC, - 1808: 0x00007CC3, - 1809: 0x00007E6C, - 1810: 0x000082F8, - 1811: 0x00008597, - 1812: 0x00009FA9, - 1813: 0x00008890, - 1814: 0x00009FAA, - 1815: 0x00008EB9, - 1816: 0x00009FAB, - 1817: 0x00008FCF, - 1818: 0x0000855F, - 1819: 0x000099E0, - 1820: 0x00009221, - 1821: 0x00009FAC, - 1822: 0x00028DB9, - 1823: 0x0002143F, - 1824: 0x00004071, - 1825: 0x000042A2, - 1826: 0x00005A1A, - 1830: 0x00009868, - 1831: 0x0000676B, - 1832: 0x00004276, - 1833: 0x0000573D, - 1835: 0x000085D6, - 1836: 0x0002497B, - 1837: 0x000082BF, - 1838: 0x0002710D, - 1839: 0x00004C81, - 1840: 0x00026D74, - 1841: 0x00005D7B, - 1842: 0x00026B15, - 1843: 0x00026FBE, - 1844: 0x00009FAD, - 1845: 0x00009FAE, - 1846: 0x00005B96, - 1847: 0x00009FAF, - 1848: 0x000066E7, - 1849: 0x00007E5B, - 1850: 0x00006E57, - 1851: 0x000079CA, - 1852: 0x00003D88, - 1853: 0x000044C3, - 1854: 0x00023256, - 1855: 0x00022796, - 1856: 0x0000439A, - 1857: 0x00004536, - 1859: 0x00005CD5, - 1860: 0x00023B1A, - 1861: 0x00008AF9, - 1862: 0x00005C78, - 1863: 0x00003D12, - 1864: 0x00023551, - 1865: 0x00005D78, - 1866: 0x00009FB2, - 1867: 0x00007157, - 1868: 0x00004558, - 1869: 0x000240EC, - 1870: 0x00021E23, - 1871: 0x00004C77, - 1872: 0x00003978, - 1873: 0x0000344A, - 1874: 0x000201A4, - 1875: 0x00026C41, - 1876: 0x00008ACC, - 1877: 0x00004FB4, - 1878: 0x00020239, - 1879: 0x000059BF, - 1880: 0x0000816C, - 1881: 0x00009856, - 1882: 0x000298FA, - 1883: 0x00005F3B, - 1884: 0x00020B9F, - 1886: 0x000221C1, - 1887: 0x0002896D, - 1888: 0x00004102, - 1889: 0x000046BB, - 1890: 0x00029079, - 1891: 0x00003F07, - 1892: 0x00009FB3, - 1893: 0x0002A1B5, - 1894: 0x000040F8, - 1895: 0x000037D6, - 1896: 0x000046F7, - 1897: 0x00026C46, - 1898: 0x0000417C, - 1899: 0x000286B2, - 1900: 0x000273FF, - 1901: 0x0000456D, - 1902: 0x000038D4, - 1903: 0x0002549A, - 1904: 0x00004561, - 1905: 0x0000451B, - 1906: 0x00004D89, - 1907: 0x00004C7B, - 1908: 0x00004D76, - 1909: 0x000045EA, - 1910: 0x00003FC8, - 1911: 0x00024B0F, - 1912: 0x00003661, - 1913: 0x000044DE, - 1914: 0x000044BD, - 1915: 0x000041ED, - 1916: 0x00005D3E, - 1917: 0x00005D48, - 1918: 0x00005D56, - 1919: 0x00003DFC, - 1920: 0x0000380F, - 1921: 0x00005DA4, - 1922: 0x00005DB9, - 1923: 0x00003820, - 1924: 0x00003838, - 1925: 0x00005E42, - 1926: 0x00005EBD, - 1927: 0x00005F25, - 1928: 0x00005F83, - 1929: 0x00003908, - 1930: 0x00003914, - 1931: 0x0000393F, - 1932: 0x0000394D, - 1933: 0x000060D7, - 1934: 0x0000613D, - 1935: 0x00005CE5, - 1936: 0x00003989, - 1937: 0x000061B7, - 1938: 0x000061B9, - 1939: 0x000061CF, - 1940: 0x000039B8, - 1941: 0x0000622C, - 1942: 0x00006290, - 1943: 0x000062E5, - 1944: 0x00006318, - 1945: 0x000039F8, - 1946: 0x000056B1, - 1947: 0x00003A03, - 1948: 0x000063E2, - 1949: 0x000063FB, - 1950: 0x00006407, - 1951: 0x0000645A, - 1952: 0x00003A4B, - 1953: 0x000064C0, - 1954: 0x00005D15, - 1955: 0x00005621, - 1956: 0x00009F9F, - 1957: 0x00003A97, - 1958: 0x00006586, - 1959: 0x00003ABD, - 1960: 0x000065FF, - 1961: 0x00006653, - 1962: 0x00003AF2, - 1963: 0x00006692, - 1964: 0x00003B22, - 1965: 0x00006716, - 1966: 0x00003B42, - 1967: 0x000067A4, - 1968: 0x00006800, - 1969: 0x00003B58, - 1970: 0x0000684A, - 1971: 0x00006884, - 1972: 0x00003B72, - 1973: 0x00003B71, - 1974: 0x00003B7B, - 1975: 0x00006909, - 1976: 0x00006943, - 1977: 0x0000725C, - 1978: 0x00006964, - 1979: 0x0000699F, - 1980: 0x00006985, - 1981: 0x00003BBC, - 1982: 0x000069D6, - 1983: 0x00003BDD, - 1984: 0x00006A65, - 1985: 0x00006A74, - 1986: 0x00006A71, - 1987: 0x00006A82, - 1988: 0x00003BEC, - 1989: 0x00006A99, - 1990: 0x00003BF2, - 1991: 0x00006AAB, - 1992: 0x00006AB5, - 1993: 0x00006AD4, - 1994: 0x00006AF6, - 1995: 0x00006B81, - 1996: 0x00006BC1, - 1997: 0x00006BEA, - 1998: 0x00006C75, - 1999: 0x00006CAA, - 2000: 0x00003CCB, - 2001: 0x00006D02, - 2002: 0x00006D06, - 2003: 0x00006D26, - 2004: 0x00006D81, - 2005: 0x00003CEF, - 2006: 0x00006DA4, - 2007: 0x00006DB1, - 2008: 0x00006E15, - 2009: 0x00006E18, - 2010: 0x00006E29, - 2011: 0x00006E86, - 2012: 0x000289C0, - 2013: 0x00006EBB, - 2014: 0x00006EE2, - 2015: 0x00006EDA, - 2016: 0x00009F7F, - 2017: 0x00006EE8, - 2018: 0x00006EE9, - 2019: 0x00006F24, - 2020: 0x00006F34, - 2021: 0x00003D46, - 2022: 0x00023F41, - 2023: 0x00006F81, - 2024: 0x00006FBE, - 2025: 0x00003D6A, - 2026: 0x00003D75, - 2027: 0x000071B7, - 2028: 0x00005C99, - 2029: 0x00003D8A, - 2030: 0x0000702C, - 2031: 0x00003D91, - 2032: 0x00007050, - 2033: 0x00007054, - 2034: 0x0000706F, - 2035: 0x0000707F, - 2036: 0x00007089, - 2037: 0x00020325, - 2038: 0x000043C1, - 2039: 0x000035F1, - 2040: 0x00020ED8, - 2041: 0x00023ED7, - 2042: 0x000057BE, - 2043: 0x00026ED3, - 2044: 0x0000713E, - 2045: 0x000257E0, - 2046: 0x0000364E, - 2047: 0x000069A2, - 2048: 0x00028BE9, - 2049: 0x00005B74, - 2050: 0x00007A49, - 2051: 0x000258E1, - 2052: 0x000294D9, - 2053: 0x00007A65, - 2054: 0x00007A7D, - 2055: 0x000259AC, - 2056: 0x00007ABB, - 2057: 0x00007AB0, - 2058: 0x00007AC2, - 2059: 0x00007AC3, - 2060: 0x000071D1, - 2061: 0x0002648D, - 2062: 0x000041CA, - 2063: 0x00007ADA, - 2064: 0x00007ADD, - 2065: 0x00007AEA, - 2066: 0x000041EF, - 2067: 0x000054B2, - 2068: 0x00025C01, - 2069: 0x00007B0B, - 2070: 0x00007B55, - 2071: 0x00007B29, - 2072: 0x0002530E, - 2073: 0x00025CFE, - 2074: 0x00007BA2, - 2075: 0x00007B6F, - 2076: 0x0000839C, - 2077: 0x00025BB4, - 2078: 0x00026C7F, - 2079: 0x00007BD0, - 2080: 0x00008421, - 2081: 0x00007B92, - 2082: 0x00007BB8, - 2083: 0x00025D20, - 2084: 0x00003DAD, - 2085: 0x00025C65, - 2086: 0x00008492, - 2087: 0x00007BFA, - 2088: 0x00007C06, - 2089: 0x00007C35, - 2090: 0x00025CC1, - 2091: 0x00007C44, - 2092: 0x00007C83, - 2093: 0x00024882, - 2094: 0x00007CA6, - 2095: 0x0000667D, - 2096: 0x00024578, - 2097: 0x00007CC9, - 2098: 0x00007CC7, - 2099: 0x00007CE6, - 2100: 0x00007C74, - 2101: 0x00007CF3, - 2102: 0x00007CF5, - 2103: 0x00007CCE, - 2104: 0x00007E67, - 2105: 0x0000451D, - 2106: 0x00026E44, - 2107: 0x00007D5D, - 2108: 0x00026ED6, - 2109: 0x0000748D, - 2110: 0x00007D89, - 2111: 0x00007DAB, - 2112: 0x00007135, - 2113: 0x00007DB3, - 2114: 0x00007DD2, - 2115: 0x00024057, - 2116: 0x00026029, - 2117: 0x00007DE4, - 2118: 0x00003D13, - 2119: 0x00007DF5, - 2120: 0x000217F9, - 2121: 0x00007DE5, - 2122: 0x0002836D, - 2123: 0x00007E1D, - 2124: 0x00026121, - 2125: 0x0002615A, - 2126: 0x00007E6E, - 2127: 0x00007E92, - 2128: 0x0000432B, - 2129: 0x0000946C, - 2130: 0x00007E27, - 2131: 0x00007F40, - 2132: 0x00007F41, - 2133: 0x00007F47, - 2134: 0x00007936, - 2135: 0x000262D0, - 2136: 0x000099E1, - 2137: 0x00007F97, - 2138: 0x00026351, - 2139: 0x00007FA3, - 2140: 0x00021661, - 2141: 0x00020068, - 2142: 0x0000455C, - 2143: 0x00023766, - 2144: 0x00004503, - 2145: 0x0002833A, - 2146: 0x00007FFA, - 2147: 0x00026489, - 2148: 0x00008005, - 2149: 0x00008008, - 2150: 0x0000801D, - 2151: 0x00008028, - 2152: 0x0000802F, - 2153: 0x0002A087, - 2154: 0x00026CC3, - 2155: 0x0000803B, - 2156: 0x0000803C, - 2157: 0x00008061, - 2158: 0x00022714, - 2159: 0x00004989, - 2160: 0x00026626, - 2161: 0x00023DE3, - 2162: 0x000266E8, - 2163: 0x00006725, - 2164: 0x000080A7, - 2165: 0x00028A48, - 2166: 0x00008107, - 2167: 0x0000811A, - 2168: 0x000058B0, - 2169: 0x000226F6, - 2170: 0x00006C7F, - 2171: 0x00026498, - 2172: 0x00024FB8, - 2173: 0x000064E7, - 2174: 0x0002148A, - 2175: 0x00008218, - 2176: 0x0002185E, - 2177: 0x00006A53, - 2178: 0x00024A65, - 2179: 0x00024A95, - 2180: 0x0000447A, - 2181: 0x00008229, - 2182: 0x00020B0D, - 2183: 0x00026A52, - 2184: 0x00023D7E, - 2185: 0x00004FF9, - 2186: 0x000214FD, - 2187: 0x000084E2, - 2188: 0x00008362, - 2189: 0x00026B0A, - 2190: 0x000249A7, - 2191: 0x00023530, - 2192: 0x00021773, - 2193: 0x00023DF8, - 2194: 0x000082AA, - 2195: 0x0000691B, - 2196: 0x0002F994, - 2197: 0x000041DB, - 2198: 0x0000854B, - 2199: 0x000082D0, - 2200: 0x0000831A, - 2201: 0x00020E16, - 2202: 0x000217B4, - 2203: 0x000036C1, - 2204: 0x0002317D, - 2205: 0x0002355A, - 2206: 0x0000827B, - 2207: 0x000082E2, - 2208: 0x00008318, - 2209: 0x00023E8B, - 2210: 0x00026DA3, - 2211: 0x00026B05, - 2212: 0x00026B97, - 2213: 0x000235CE, - 2214: 0x00003DBF, - 2215: 0x0000831D, - 2216: 0x000055EC, - 2217: 0x00008385, - 2218: 0x0000450B, - 2219: 0x00026DA5, - 2220: 0x000083AC, - 2221: 0x000083C1, - 2222: 0x000083D3, - 2223: 0x0000347E, - 2224: 0x00026ED4, - 2225: 0x00006A57, - 2226: 0x0000855A, - 2227: 0x00003496, - 2228: 0x00026E42, - 2229: 0x00022EEF, - 2230: 0x00008458, - 2231: 0x00025BE4, - 2232: 0x00008471, - 2233: 0x00003DD3, - 2234: 0x000044E4, - 2235: 0x00006AA7, - 2236: 0x0000844A, - 2237: 0x00023CB5, - 2238: 0x00007958, - 2239: 0x000084A8, - 2240: 0x00026B96, - 2241: 0x00026E77, - 2242: 0x00026E43, - 2243: 0x000084DE, - 2244: 0x0000840F, - 2245: 0x00008391, - 2246: 0x000044A0, - 2247: 0x00008493, - 2248: 0x000084E4, - 2249: 0x00025C91, - 2250: 0x00004240, - 2251: 0x00025CC0, - 2252: 0x00004543, - 2253: 0x00008534, - 2254: 0x00005AF2, - 2255: 0x00026E99, - 2256: 0x00004527, - 2257: 0x00008573, - 2258: 0x00004516, - 2259: 0x000067BF, - 2260: 0x00008616, - 2261: 0x00028625, - 2262: 0x0002863B, - 2263: 0x000085C1, - 2264: 0x00027088, - 2265: 0x00008602, - 2266: 0x00021582, - 2267: 0x000270CD, - 2268: 0x0002F9B2, - 2269: 0x0000456A, - 2270: 0x00008628, - 2271: 0x00003648, - 2272: 0x000218A2, - 2273: 0x000053F7, - 2274: 0x0002739A, - 2275: 0x0000867E, - 2276: 0x00008771, - 2277: 0x0002A0F8, - 2278: 0x000087EE, - 2279: 0x00022C27, - 2280: 0x000087B1, - 2281: 0x000087DA, - 2282: 0x0000880F, - 2283: 0x00005661, - 2284: 0x0000866C, - 2285: 0x00006856, - 2286: 0x0000460F, - 2287: 0x00008845, - 2288: 0x00008846, - 2289: 0x000275E0, - 2290: 0x00023DB9, - 2291: 0x000275E4, - 2292: 0x0000885E, - 2293: 0x0000889C, - 2294: 0x0000465B, - 2295: 0x000088B4, - 2296: 0x000088B5, - 2297: 0x000063C1, - 2298: 0x000088C5, - 2299: 0x00007777, - 2300: 0x0002770F, - 2301: 0x00008987, - 2302: 0x0000898A, - 2303: 0x000089A6, - 2304: 0x000089A9, - 2305: 0x000089A7, - 2306: 0x000089BC, - 2307: 0x00028A25, - 2308: 0x000089E7, - 2309: 0x00027924, - 2310: 0x00027ABD, - 2311: 0x00008A9C, - 2312: 0x00007793, - 2313: 0x000091FE, - 2314: 0x00008A90, - 2315: 0x00027A59, - 2316: 0x00007AE9, - 2317: 0x00027B3A, - 2318: 0x00023F8F, - 2319: 0x00004713, - 2320: 0x00027B38, - 2321: 0x0000717C, - 2322: 0x00008B0C, - 2323: 0x00008B1F, - 2324: 0x00025430, - 2325: 0x00025565, - 2326: 0x00008B3F, - 2327: 0x00008B4C, - 2328: 0x00008B4D, - 2329: 0x00008AA9, - 2330: 0x00024A7A, - 2331: 0x00008B90, - 2332: 0x00008B9B, - 2333: 0x00008AAF, - 2334: 0x000216DF, - 2335: 0x00004615, - 2336: 0x0000884F, - 2337: 0x00008C9B, - 2338: 0x00027D54, - 2339: 0x00027D8F, - 2340: 0x0002F9D4, - 2341: 0x00003725, - 2342: 0x00027D53, - 2343: 0x00008CD6, - 2344: 0x00027D98, - 2345: 0x00027DBD, - 2346: 0x00008D12, - 2347: 0x00008D03, - 2348: 0x00021910, - 2349: 0x00008CDB, - 2350: 0x0000705C, - 2351: 0x00008D11, - 2352: 0x00024CC9, - 2353: 0x00003ED0, - 2354: 0x00008D77, - 2355: 0x00008DA9, - 2356: 0x00028002, - 2357: 0x00021014, - 2358: 0x0002498A, - 2359: 0x00003B7C, - 2360: 0x000281BC, - 2361: 0x0002710C, - 2362: 0x00007AE7, - 2363: 0x00008EAD, - 2364: 0x00008EB6, - 2365: 0x00008EC3, - 2366: 0x000092D4, - 2367: 0x00008F19, - 2368: 0x00008F2D, - 2369: 0x00028365, - 2370: 0x00028412, - 2371: 0x00008FA5, - 2372: 0x00009303, - 2373: 0x0002A29F, - 2374: 0x00020A50, - 2375: 0x00008FB3, - 2376: 0x0000492A, - 2377: 0x000289DE, - 2378: 0x0002853D, - 2379: 0x00023DBB, - 2380: 0x00005EF8, - 2381: 0x00023262, - 2382: 0x00008FF9, - 2383: 0x0002A014, - 2384: 0x000286BC, - 2385: 0x00028501, - 2386: 0x00022325, - 2387: 0x00003980, - 2388: 0x00026ED7, - 2389: 0x00009037, - 2390: 0x0002853C, - 2391: 0x00027ABE, - 2392: 0x00009061, - 2393: 0x0002856C, - 2394: 0x0002860B, - 2395: 0x000090A8, - 2396: 0x00028713, - 2397: 0x000090C4, - 2398: 0x000286E6, - 2399: 0x000090AE, - 2400: 0x000090FD, - 2401: 0x00009167, - 2402: 0x00003AF0, - 2403: 0x000091A9, - 2404: 0x000091C4, - 2405: 0x00007CAC, - 2406: 0x00028933, - 2407: 0x00021E89, - 2408: 0x0000920E, - 2409: 0x00006C9F, - 2410: 0x00009241, - 2411: 0x00009262, - 2412: 0x000255B9, - 2413: 0x000092B9, - 2414: 0x00028AC6, - 2415: 0x00023C9B, - 2416: 0x00028B0C, - 2417: 0x000255DB, - 2418: 0x00020D31, - 2419: 0x0000932C, - 2420: 0x0000936B, - 2421: 0x00028AE1, - 2422: 0x00028BEB, - 2423: 0x0000708F, - 2424: 0x00005AC3, - 2425: 0x00028AE2, - 2426: 0x00028AE5, - 2427: 0x00004965, - 2428: 0x00009244, - 2429: 0x00028BEC, - 2430: 0x00028C39, - 2431: 0x00028BFF, - 2432: 0x00009373, - 2433: 0x0000945B, - 2434: 0x00008EBC, - 2435: 0x00009585, - 2436: 0x000095A6, - 2437: 0x00009426, - 2438: 0x000095A0, - 2439: 0x00006FF6, - 2440: 0x000042B9, - 2441: 0x0002267A, - 2442: 0x000286D8, - 2443: 0x0002127C, - 2444: 0x00023E2E, - 2445: 0x000049DF, - 2446: 0x00006C1C, - 2447: 0x0000967B, - 2448: 0x00009696, - 2449: 0x0000416C, - 2450: 0x000096A3, - 2451: 0x00026ED5, - 2452: 0x000061DA, - 2453: 0x000096B6, - 2454: 0x000078F5, - 2455: 0x00028AE0, - 2456: 0x000096BD, - 2457: 0x000053CC, - 2458: 0x000049A1, - 2459: 0x00026CB8, - 2460: 0x00020274, - 2461: 0x00026410, - 2462: 0x000290AF, - 2463: 0x000290E5, - 2464: 0x00024AD1, - 2465: 0x00021915, - 2466: 0x0002330A, - 2467: 0x00009731, - 2468: 0x00008642, - 2469: 0x00009736, - 2470: 0x00004A0F, - 2471: 0x0000453D, - 2472: 0x00004585, - 2473: 0x00024AE9, - 2474: 0x00007075, - 2475: 0x00005B41, - 2476: 0x0000971B, - 2477: 0x0000975C, - 2478: 0x000291D5, - 2479: 0x00009757, - 2480: 0x00005B4A, - 2481: 0x000291EB, - 2482: 0x0000975F, - 2483: 0x00009425, - 2484: 0x000050D0, - 2485: 0x000230B7, - 2486: 0x000230BC, - 2487: 0x00009789, - 2488: 0x0000979F, - 2489: 0x000097B1, - 2490: 0x000097BE, - 2491: 0x000097C0, - 2492: 0x000097D2, - 2493: 0x000097E0, - 2494: 0x0002546C, - 2495: 0x000097EE, - 2496: 0x0000741C, - 2497: 0x00029433, - 2498: 0x000097FF, - 2499: 0x000097F5, - 2500: 0x0002941D, - 2501: 0x0002797A, - 2502: 0x00004AD1, - 2503: 0x00009834, - 2504: 0x00009833, - 2505: 0x0000984B, - 2506: 0x00009866, - 2507: 0x00003B0E, - 2508: 0x00027175, - 2509: 0x00003D51, - 2510: 0x00020630, - 2511: 0x0002415C, - 2512: 0x00025706, - 2513: 0x000098CA, - 2514: 0x000098B7, - 2515: 0x000098C8, - 2516: 0x000098C7, - 2517: 0x00004AFF, - 2518: 0x00026D27, - 2519: 0x000216D3, - 2520: 0x000055B0, - 2521: 0x000098E1, - 2522: 0x000098E6, - 2523: 0x000098EC, - 2524: 0x00009378, - 2525: 0x00009939, - 2526: 0x00024A29, - 2527: 0x00004B72, - 2528: 0x00029857, - 2529: 0x00029905, - 2530: 0x000099F5, - 2531: 0x00009A0C, - 2532: 0x00009A3B, - 2533: 0x00009A10, - 2534: 0x00009A58, - 2535: 0x00025725, - 2536: 0x000036C4, - 2537: 0x000290B1, - 2538: 0x00029BD5, - 2539: 0x00009AE0, - 2540: 0x00009AE2, - 2541: 0x00029B05, - 2542: 0x00009AF4, - 2543: 0x00004C0E, - 2544: 0x00009B14, - 2545: 0x00009B2D, - 2546: 0x00028600, - 2547: 0x00005034, - 2548: 0x00009B34, - 2549: 0x000269A8, - 2550: 0x000038C3, - 2551: 0x0002307D, - 2552: 0x00009B50, - 2553: 0x00009B40, - 2554: 0x00029D3E, - 2555: 0x00005A45, - 2556: 0x00021863, - 2557: 0x00009B8E, - 2558: 0x0002424B, - 2559: 0x00009C02, - 2560: 0x00009BFF, - 2561: 0x00009C0C, - 2562: 0x00029E68, - 2563: 0x00009DD4, - 2564: 0x00029FB7, - 2565: 0x0002A192, - 2566: 0x0002A1AB, - 2567: 0x0002A0E1, - 2568: 0x0002A123, - 2569: 0x0002A1DF, - 2570: 0x00009D7E, - 2571: 0x00009D83, - 2572: 0x0002A134, - 2573: 0x00009E0E, - 2574: 0x00006888, - 2575: 0x00009DC4, - 2576: 0x0002215B, - 2577: 0x0002A193, - 2578: 0x0002A220, - 2579: 0x0002193B, - 2580: 0x0002A233, - 2581: 0x00009D39, - 2582: 0x0002A0B9, - 2583: 0x0002A2B4, - 2584: 0x00009E90, - 2585: 0x00009E95, - 2586: 0x00009E9E, - 2587: 0x00009EA2, - 2588: 0x00004D34, - 2589: 0x00009EAA, - 2590: 0x00009EAF, - 2591: 0x00024364, - 2592: 0x00009EC1, - 2593: 0x00003B60, - 2594: 0x000039E5, - 2595: 0x00003D1D, - 2596: 0x00004F32, - 2597: 0x000037BE, - 2598: 0x00028C2B, - 2599: 0x00009F02, - 2600: 0x00009F08, - 2601: 0x00004B96, - 2602: 0x00009424, - 2603: 0x00026DA2, - 2604: 0x00009F17, - 2605: 0x00009F16, - 2606: 0x00009F39, - 2607: 0x0000569F, - 2608: 0x0000568A, - 2609: 0x00009F45, - 2610: 0x000099B8, - 2611: 0x0002908B, - 2612: 0x000097F2, - 2613: 0x0000847F, - 2614: 0x00009F62, - 2615: 0x00009F69, - 2616: 0x00007ADC, - 2617: 0x00009F8E, - 2618: 0x00007216, - 2619: 0x00004BBE, - 2620: 0x00024975, - 2621: 0x000249BB, - 2622: 0x00007177, - 2623: 0x000249F8, - 2624: 0x00024348, - 2625: 0x00024A51, - 2626: 0x0000739E, - 2627: 0x00028BDA, - 2628: 0x000218FA, - 2629: 0x0000799F, - 2630: 0x0002897E, - 2631: 0x00028E36, - 2632: 0x00009369, - 2633: 0x000093F3, - 2634: 0x00028A44, - 2635: 0x000092EC, - 2636: 0x00009381, - 2637: 0x000093CB, - 2638: 0x0002896C, - 2639: 0x000244B9, - 2640: 0x00007217, - 2641: 0x00003EEB, - 2642: 0x00007772, - 2643: 0x00007A43, - 2644: 0x000070D0, - 2645: 0x00024473, - 2646: 0x000243F8, - 2647: 0x0000717E, - 2648: 0x000217EF, - 2649: 0x000070A3, - 2650: 0x000218BE, - 2651: 0x00023599, - 2652: 0x00003EC7, - 2653: 0x00021885, - 2654: 0x0002542F, - 2655: 0x000217F8, - 2656: 0x00003722, - 2657: 0x000216FB, - 2658: 0x00021839, - 2659: 0x000036E1, - 2660: 0x00021774, - 2661: 0x000218D1, - 2662: 0x00025F4B, - 2663: 0x00003723, - 2664: 0x000216C0, - 2665: 0x0000575B, - 2666: 0x00024A25, - 2667: 0x000213FE, - 2668: 0x000212A8, - 2669: 0x000213C6, - 2670: 0x000214B6, - 2671: 0x00008503, - 2672: 0x000236A6, - 2673: 0x00008503, - 2674: 0x00008455, - 2675: 0x00024994, - 2676: 0x00027165, - 2677: 0x00023E31, - 2678: 0x0002555C, - 2679: 0x00023EFB, - 2680: 0x00027052, - 2681: 0x000044F4, - 2682: 0x000236EE, - 2683: 0x0002999D, - 2684: 0x00026F26, - 2685: 0x000067F9, - 2686: 0x00003733, - 2687: 0x00003C15, - 2688: 0x00003DE7, - 2689: 0x0000586C, - 2690: 0x00021922, - 2691: 0x00006810, - 2692: 0x00004057, - 2693: 0x0002373F, - 2694: 0x000240E1, - 2695: 0x0002408B, - 2696: 0x0002410F, - 2697: 0x00026C21, - 2698: 0x000054CB, - 2699: 0x0000569E, - 2700: 0x000266B1, - 2701: 0x00005692, - 2702: 0x00020FDF, - 2703: 0x00020BA8, - 2704: 0x00020E0D, - 2705: 0x000093C6, - 2706: 0x00028B13, - 2707: 0x0000939C, - 2708: 0x00004EF8, - 2709: 0x0000512B, - 2710: 0x00003819, - 2711: 0x00024436, - 2712: 0x00004EBC, - 2713: 0x00020465, - 2714: 0x0002037F, - 2715: 0x00004F4B, - 2716: 0x00004F8A, - 2717: 0x00025651, - 2718: 0x00005A68, - 2719: 0x000201AB, - 2720: 0x000203CB, - 2721: 0x00003999, - 2722: 0x0002030A, - 2723: 0x00020414, - 2724: 0x00003435, - 2725: 0x00004F29, - 2726: 0x000202C0, - 2727: 0x00028EB3, - 2728: 0x00020275, - 2729: 0x00008ADA, - 2730: 0x0002020C, - 2731: 0x00004E98, - 2732: 0x000050CD, - 2733: 0x0000510D, - 2734: 0x00004FA2, - 2735: 0x00004F03, - 2736: 0x00024A0E, - 2737: 0x00023E8A, - 2738: 0x00004F42, - 2739: 0x0000502E, - 2740: 0x0000506C, - 2741: 0x00005081, - 2742: 0x00004FCC, - 2743: 0x00004FE5, - 2744: 0x00005058, - 2745: 0x000050FC, - 2746: 0x00005159, - 2747: 0x0000515B, - 2748: 0x0000515D, - 2749: 0x0000515E, - 2750: 0x00006E76, - 2751: 0x00023595, - 2752: 0x00023E39, - 2753: 0x00023EBF, - 2754: 0x00006D72, - 2755: 0x00021884, - 2756: 0x00023E89, - 2757: 0x000051A8, - 2758: 0x000051C3, - 2759: 0x000205E0, - 2760: 0x000044DD, - 2761: 0x000204A3, - 2762: 0x00020492, - 2763: 0x00020491, - 2764: 0x00008D7A, - 2765: 0x00028A9C, - 2766: 0x0002070E, - 2767: 0x00005259, - 2768: 0x000052A4, - 2769: 0x00020873, - 2770: 0x000052E1, - 2771: 0x0000936E, - 2772: 0x0000467A, - 2773: 0x0000718C, - 2774: 0x0002438C, - 2775: 0x00020C20, - 2776: 0x000249AC, - 2777: 0x000210E4, - 2778: 0x000069D1, - 2779: 0x00020E1D, - 2780: 0x00007479, - 2781: 0x00003EDE, - 2782: 0x00007499, - 2783: 0x00007414, - 2784: 0x00007456, - 2785: 0x00007398, - 2786: 0x00004B8E, - 2787: 0x00024ABC, - 2788: 0x0002408D, - 2789: 0x000053D0, - 2790: 0x00003584, - 2791: 0x0000720F, - 2792: 0x000240C9, - 2793: 0x000055B4, - 2794: 0x00020345, - 2795: 0x000054CD, - 2796: 0x00020BC6, - 2797: 0x0000571D, - 2798: 0x0000925D, - 2799: 0x000096F4, - 2800: 0x00009366, - 2801: 0x000057DD, - 2802: 0x0000578D, - 2803: 0x0000577F, - 2804: 0x0000363E, - 2805: 0x000058CB, - 2806: 0x00005A99, - 2807: 0x00028A46, - 2808: 0x000216FA, - 2809: 0x0002176F, - 2810: 0x00021710, - 2811: 0x00005A2C, - 2812: 0x000059B8, - 2813: 0x0000928F, - 2814: 0x00005A7E, - 2815: 0x00005ACF, - 2816: 0x00005A12, - 2817: 0x00025946, - 2818: 0x000219F3, - 2819: 0x00021861, - 2820: 0x00024295, - 2821: 0x000036F5, - 2822: 0x00006D05, - 2823: 0x00007443, - 2824: 0x00005A21, - 2825: 0x00025E83, - 2826: 0x00005A81, - 2827: 0x00028BD7, - 2828: 0x00020413, - 2829: 0x000093E0, - 2830: 0x0000748C, - 2831: 0x00021303, - 2832: 0x00007105, - 2833: 0x00004972, - 2834: 0x00009408, - 2835: 0x000289FB, - 2836: 0x000093BD, - 2837: 0x000037A0, - 2838: 0x00005C1E, - 2839: 0x00005C9E, - 2840: 0x00005E5E, - 2841: 0x00005E48, - 2842: 0x00021996, - 2843: 0x0002197C, - 2844: 0x00023AEE, - 2845: 0x00005ECD, - 2846: 0x00005B4F, - 2847: 0x00021903, - 2848: 0x00021904, - 2849: 0x00003701, - 2850: 0x000218A0, - 2851: 0x000036DD, - 2852: 0x000216FE, - 2853: 0x000036D3, - 2854: 0x0000812A, - 2855: 0x00028A47, - 2856: 0x00021DBA, - 2857: 0x00023472, - 2858: 0x000289A8, - 2859: 0x00005F0C, - 2860: 0x00005F0E, - 2861: 0x00021927, - 2862: 0x000217AB, - 2863: 0x00005A6B, - 2864: 0x0002173B, - 2865: 0x00005B44, - 2866: 0x00008614, - 2867: 0x000275FD, - 2868: 0x00008860, - 2869: 0x0000607E, - 2870: 0x00022860, - 2871: 0x0002262B, - 2872: 0x00005FDB, - 2873: 0x00003EB8, - 2874: 0x000225AF, - 2875: 0x000225BE, - 2876: 0x00029088, - 2877: 0x00026F73, - 2878: 0x000061C0, - 2879: 0x0002003E, - 2880: 0x00020046, - 2881: 0x0002261B, - 2882: 0x00006199, - 2883: 0x00006198, - 2884: 0x00006075, - 2885: 0x00022C9B, - 2886: 0x00022D07, - 2887: 0x000246D4, - 2888: 0x0002914D, - 2889: 0x00006471, - 2890: 0x00024665, - 2891: 0x00022B6A, - 2892: 0x00003A29, - 2893: 0x00022B22, - 2894: 0x00023450, - 2895: 0x000298EA, - 2896: 0x00022E78, - 2897: 0x00006337, - 2898: 0x0002A45B, - 2899: 0x000064B6, - 2900: 0x00006331, - 2901: 0x000063D1, - 2902: 0x000249E3, - 2903: 0x00022D67, - 2904: 0x000062A4, - 2905: 0x00022CA1, - 2906: 0x0000643B, - 2907: 0x0000656B, - 2908: 0x00006972, - 2909: 0x00003BF4, - 2910: 0x0002308E, - 2911: 0x000232AD, - 2912: 0x00024989, - 2913: 0x000232AB, - 2914: 0x0000550D, - 2915: 0x000232E0, - 2916: 0x000218D9, - 2917: 0x0002943F, - 2918: 0x000066CE, - 2919: 0x00023289, - 2920: 0x000231B3, - 2921: 0x00003AE0, - 2922: 0x00004190, - 2923: 0x00025584, - 2924: 0x00028B22, - 2925: 0x0002558F, - 2926: 0x000216FC, - 2927: 0x0002555B, - 2928: 0x00025425, - 2929: 0x000078EE, - 2930: 0x00023103, - 2931: 0x0002182A, - 2932: 0x00023234, - 2933: 0x00003464, - 2934: 0x0002320F, - 2935: 0x00023182, - 2936: 0x000242C9, - 2937: 0x0000668E, - 2938: 0x00026D24, - 2939: 0x0000666B, - 2940: 0x00004B93, - 2941: 0x00006630, - 2942: 0x00027870, - 2943: 0x00021DEB, - 2944: 0x00006663, - 2945: 0x000232D2, - 2946: 0x000232E1, - 2947: 0x0000661E, - 2948: 0x00025872, - 2949: 0x000038D1, - 2950: 0x0002383A, - 2951: 0x000237BC, - 2952: 0x00003B99, - 2953: 0x000237A2, - 2954: 0x000233FE, - 2955: 0x000074D0, - 2956: 0x00003B96, - 2957: 0x0000678F, - 2958: 0x0002462A, - 2959: 0x000068B6, - 2960: 0x0000681E, - 2961: 0x00003BC4, - 2962: 0x00006ABE, - 2963: 0x00003863, - 2964: 0x000237D5, - 2965: 0x00024487, - 2966: 0x00006A33, - 2967: 0x00006A52, - 2968: 0x00006AC9, - 2969: 0x00006B05, - 2970: 0x00021912, - 2971: 0x00006511, - 2972: 0x00006898, - 2973: 0x00006A4C, - 2974: 0x00003BD7, - 2975: 0x00006A7A, - 2976: 0x00006B57, - 2977: 0x00023FC0, - 2978: 0x00023C9A, - 2979: 0x000093A0, - 2980: 0x000092F2, - 2981: 0x00028BEA, - 2982: 0x00028ACB, - 2983: 0x00009289, - 2984: 0x0002801E, - 2985: 0x000289DC, - 2986: 0x00009467, - 2987: 0x00006DA5, - 2988: 0x00006F0B, - 2989: 0x000249EC, - 2990: 0x00006D67, - 2991: 0x00023F7F, - 2992: 0x00003D8F, - 2993: 0x00006E04, - 2994: 0x0002403C, - 2995: 0x00005A3D, - 2996: 0x00006E0A, - 2997: 0x00005847, - 2998: 0x00006D24, - 2999: 0x00007842, - 3000: 0x0000713B, - 3001: 0x0002431A, - 3002: 0x00024276, - 3003: 0x000070F1, - 3004: 0x00007250, - 3005: 0x00007287, - 3006: 0x00007294, - 3007: 0x0002478F, - 3008: 0x00024725, - 3009: 0x00005179, - 3010: 0x00024AA4, - 3011: 0x000205EB, - 3012: 0x0000747A, - 3013: 0x00023EF8, - 3014: 0x0002365F, - 3015: 0x00024A4A, - 3016: 0x00024917, - 3017: 0x00025FE1, - 3018: 0x00003F06, - 3019: 0x00003EB1, - 3020: 0x00024ADF, - 3021: 0x00028C23, - 3022: 0x00023F35, - 3023: 0x000060A7, - 3024: 0x00003EF3, - 3025: 0x000074CC, - 3026: 0x0000743C, - 3027: 0x00009387, - 3028: 0x00007437, - 3029: 0x0000449F, - 3030: 0x00026DEA, - 3031: 0x00004551, - 3032: 0x00007583, - 3033: 0x00003F63, - 3034: 0x00024CD9, - 3035: 0x00024D06, - 3036: 0x00003F58, - 3037: 0x00007555, - 3038: 0x00007673, - 3039: 0x0002A5C6, - 3040: 0x00003B19, - 3041: 0x00007468, - 3042: 0x00028ACC, - 3043: 0x000249AB, - 3044: 0x0002498E, - 3045: 0x00003AFB, - 3046: 0x00003DCD, - 3047: 0x00024A4E, - 3048: 0x00003EFF, - 3049: 0x000249C5, - 3050: 0x000248F3, - 3051: 0x000091FA, - 3052: 0x00005732, - 3053: 0x00009342, - 3054: 0x00028AE3, - 3055: 0x00021864, - 3056: 0x000050DF, - 3057: 0x00025221, - 3058: 0x000251E7, - 3059: 0x00007778, - 3060: 0x00023232, - 3061: 0x0000770E, - 3062: 0x0000770F, - 3063: 0x0000777B, - 3064: 0x00024697, - 3065: 0x00023781, - 3066: 0x00003A5E, - 3067: 0x000248F0, - 3068: 0x00007438, - 3069: 0x0000749B, - 3070: 0x00003EBF, - 3071: 0x00024ABA, - 3072: 0x00024AC7, - 3073: 0x000040C8, - 3074: 0x00024A96, - 3075: 0x000261AE, - 3076: 0x00009307, - 3077: 0x00025581, - 3078: 0x0000781E, - 3079: 0x0000788D, - 3080: 0x00007888, - 3081: 0x000078D2, - 3082: 0x000073D0, - 3083: 0x00007959, - 3084: 0x00027741, - 3085: 0x000256E3, - 3086: 0x0000410E, - 3087: 0x0000799B, - 3088: 0x00008496, - 3089: 0x000079A5, - 3090: 0x00006A2D, - 3091: 0x00023EFA, - 3092: 0x00007A3A, - 3093: 0x000079F4, - 3094: 0x0000416E, - 3095: 0x000216E6, - 3096: 0x00004132, - 3097: 0x00009235, - 3098: 0x000079F1, - 3099: 0x00020D4C, - 3100: 0x0002498C, - 3101: 0x00020299, - 3102: 0x00023DBA, - 3103: 0x0002176E, - 3104: 0x00003597, - 3105: 0x0000556B, - 3106: 0x00003570, - 3107: 0x000036AA, - 3108: 0x000201D4, - 3109: 0x00020C0D, - 3110: 0x00007AE2, - 3111: 0x00005A59, - 3112: 0x000226F5, - 3113: 0x00025AAF, - 3114: 0x00025A9C, - 3115: 0x00005A0D, - 3116: 0x0002025B, - 3117: 0x000078F0, - 3118: 0x00005A2A, - 3119: 0x00025BC6, - 3120: 0x00007AFE, - 3121: 0x000041F9, - 3122: 0x00007C5D, - 3123: 0x00007C6D, - 3124: 0x00004211, - 3125: 0x00025BB3, - 3126: 0x00025EBC, - 3127: 0x00025EA6, - 3128: 0x00007CCD, - 3129: 0x000249F9, - 3130: 0x000217B0, - 3131: 0x00007C8E, - 3132: 0x00007C7C, - 3133: 0x00007CAE, - 3134: 0x00006AB2, - 3135: 0x00007DDC, - 3136: 0x00007E07, - 3137: 0x00007DD3, - 3138: 0x00007F4E, - 3139: 0x00026261, - 3140: 0x0002615C, - 3141: 0x00027B48, - 3142: 0x00007D97, - 3143: 0x00025E82, - 3144: 0x0000426A, - 3145: 0x00026B75, - 3146: 0x00020916, - 3147: 0x000067D6, - 3148: 0x0002004E, - 3149: 0x000235CF, - 3150: 0x000057C4, - 3151: 0x00026412, - 3152: 0x000263F8, - 3153: 0x00024962, - 3154: 0x00007FDD, - 3155: 0x00007B27, - 3156: 0x0002082C, - 3157: 0x00025AE9, - 3158: 0x00025D43, - 3159: 0x00007B0C, - 3160: 0x00025E0E, - 3161: 0x000099E6, - 3162: 0x00008645, - 3163: 0x00009A63, - 3164: 0x00006A1C, - 3165: 0x0002343F, - 3166: 0x000039E2, - 3167: 0x000249F7, - 3168: 0x000265AD, - 3169: 0x00009A1F, - 3170: 0x000265A0, - 3171: 0x00008480, - 3172: 0x00027127, - 3173: 0x00026CD1, - 3174: 0x000044EA, - 3175: 0x00008137, - 3176: 0x00004402, - 3177: 0x000080C6, - 3178: 0x00008109, - 3179: 0x00008142, - 3180: 0x000267B4, - 3181: 0x000098C3, - 3182: 0x00026A42, - 3183: 0x00008262, - 3184: 0x00008265, - 3185: 0x00026A51, - 3186: 0x00008453, - 3187: 0x00026DA7, - 3188: 0x00008610, - 3189: 0x0002721B, - 3190: 0x00005A86, - 3191: 0x0000417F, - 3192: 0x00021840, - 3193: 0x00005B2B, - 3194: 0x000218A1, - 3195: 0x00005AE4, - 3196: 0x000218D8, - 3197: 0x000086A0, - 3198: 0x0002F9BC, - 3199: 0x00023D8F, - 3200: 0x0000882D, - 3201: 0x00027422, - 3202: 0x00005A02, - 3203: 0x0000886E, - 3204: 0x00004F45, - 3205: 0x00008887, - 3206: 0x000088BF, - 3207: 0x000088E6, - 3208: 0x00008965, - 3209: 0x0000894D, - 3210: 0x00025683, - 3211: 0x00008954, - 3212: 0x00027785, - 3213: 0x00027784, - 3214: 0x00028BF5, - 3215: 0x00028BD9, - 3216: 0x00028B9C, - 3217: 0x000289F9, - 3218: 0x00003EAD, - 3219: 0x000084A3, - 3220: 0x000046F5, - 3221: 0x000046CF, - 3222: 0x000037F2, - 3223: 0x00008A3D, - 3224: 0x00008A1C, - 3225: 0x00029448, - 3226: 0x00005F4D, - 3227: 0x0000922B, - 3228: 0x00024284, - 3229: 0x000065D4, - 3230: 0x00007129, - 3231: 0x000070C4, - 3232: 0x00021845, - 3233: 0x00009D6D, - 3234: 0x00008C9F, - 3235: 0x00008CE9, - 3236: 0x00027DDC, - 3237: 0x0000599A, - 3238: 0x000077C3, - 3239: 0x000059F0, - 3240: 0x0000436E, - 3241: 0x000036D4, - 3242: 0x00008E2A, - 3243: 0x00008EA7, - 3244: 0x00024C09, - 3245: 0x00008F30, - 3246: 0x00008F4A, - 3247: 0x000042F4, - 3248: 0x00006C58, - 3249: 0x00006FBB, - 3250: 0x00022321, - 3251: 0x0000489B, - 3252: 0x00006F79, - 3253: 0x00006E8B, - 3254: 0x000217DA, - 3255: 0x00009BE9, - 3256: 0x000036B5, - 3257: 0x0002492F, - 3258: 0x000090BB, - 3259: 0x00009097, - 3260: 0x00005571, - 3261: 0x00004906, - 3262: 0x000091BB, - 3263: 0x00009404, - 3264: 0x00028A4B, - 3265: 0x00004062, - 3266: 0x00028AFC, - 3267: 0x00009427, - 3268: 0x00028C1D, - 3269: 0x00028C3B, - 3270: 0x000084E5, - 3271: 0x00008A2B, - 3272: 0x00009599, - 3273: 0x000095A7, - 3274: 0x00009597, - 3275: 0x00009596, - 3276: 0x00028D34, - 3277: 0x00007445, - 3278: 0x00003EC2, - 3279: 0x000248FF, - 3280: 0x00024A42, - 3281: 0x000243EA, - 3282: 0x00003EE7, - 3283: 0x00023225, - 3284: 0x0000968F, - 3285: 0x00028EE7, - 3286: 0x00028E66, - 3287: 0x00028E65, - 3288: 0x00003ECC, - 3289: 0x000249ED, - 3290: 0x00024A78, - 3291: 0x00023FEE, - 3292: 0x00007412, - 3293: 0x0000746B, - 3294: 0x00003EFC, - 3295: 0x00009741, - 3296: 0x000290B0, - 3297: 0x00006847, - 3298: 0x00004A1D, - 3299: 0x00029093, - 3300: 0x000257DF, - 3301: 0x0000975D, - 3302: 0x00009368, - 3303: 0x00028989, - 3304: 0x00028C26, - 3305: 0x00028B2F, - 3306: 0x000263BE, - 3307: 0x000092BA, - 3308: 0x00005B11, - 3309: 0x00008B69, - 3310: 0x0000493C, - 3311: 0x000073F9, - 3312: 0x0002421B, - 3313: 0x0000979B, - 3314: 0x00009771, - 3315: 0x00009938, - 3316: 0x00020F26, - 3317: 0x00005DC1, - 3318: 0x00028BC5, - 3319: 0x00024AB2, - 3320: 0x0000981F, - 3321: 0x000294DA, - 3322: 0x000092F6, - 3323: 0x000295D7, - 3324: 0x000091E5, - 3325: 0x000044C0, - 3326: 0x00028B50, - 3327: 0x00024A67, - 3328: 0x00028B64, - 3329: 0x000098DC, - 3330: 0x00028A45, - 3331: 0x00003F00, - 3332: 0x0000922A, - 3333: 0x00004925, - 3334: 0x00008414, - 3335: 0x0000993B, - 3336: 0x0000994D, - 3337: 0x00027B06, - 3338: 0x00003DFD, - 3339: 0x0000999B, - 3340: 0x00004B6F, - 3341: 0x000099AA, - 3342: 0x00009A5C, - 3343: 0x00028B65, - 3344: 0x000258C8, - 3345: 0x00006A8F, - 3346: 0x00009A21, - 3347: 0x00005AFE, - 3348: 0x00009A2F, - 3349: 0x000298F1, - 3350: 0x00004B90, - 3351: 0x00029948, - 3352: 0x000099BC, - 3353: 0x00004BBD, - 3354: 0x00004B97, - 3355: 0x0000937D, - 3356: 0x00005872, - 3357: 0x00021302, - 3358: 0x00005822, - 3359: 0x000249B8, - 3360: 0x000214E8, - 3361: 0x00007844, - 3362: 0x0002271F, - 3363: 0x00023DB8, - 3364: 0x000068C5, - 3365: 0x00003D7D, - 3366: 0x00009458, - 3367: 0x00003927, - 3368: 0x00006150, - 3369: 0x00022781, - 3370: 0x0002296B, - 3371: 0x00006107, - 3372: 0x00009C4F, - 3373: 0x00009C53, - 3374: 0x00009C7B, - 3375: 0x00009C35, - 3376: 0x00009C10, - 3377: 0x00009B7F, - 3378: 0x00009BCF, - 3379: 0x00029E2D, - 3380: 0x00009B9F, - 3381: 0x0002A1F5, - 3382: 0x0002A0FE, - 3383: 0x00009D21, - 3384: 0x00004CAE, - 3385: 0x00024104, - 3386: 0x00009E18, - 3387: 0x00004CB0, - 3388: 0x00009D0C, - 3389: 0x0002A1B4, - 3390: 0x0002A0ED, - 3391: 0x0002A0F3, - 3392: 0x0002992F, - 3393: 0x00009DA5, - 3394: 0x000084BD, - 3395: 0x00026E12, - 3396: 0x00026FDF, - 3397: 0x00026B82, - 3398: 0x000085FC, - 3399: 0x00004533, - 3400: 0x00026DA4, - 3401: 0x00026E84, - 3402: 0x00026DF0, - 3403: 0x00008420, - 3404: 0x000085EE, - 3405: 0x00026E00, - 3406: 0x000237D7, - 3407: 0x00026064, - 3408: 0x000079E2, - 3409: 0x0002359C, - 3410: 0x00023640, - 3411: 0x0000492D, - 3412: 0x000249DE, - 3413: 0x00003D62, - 3414: 0x000093DB, - 3415: 0x000092BE, - 3416: 0x00009348, - 3417: 0x000202BF, - 3418: 0x000078B9, - 3419: 0x00009277, - 3420: 0x0000944D, - 3421: 0x00004FE4, - 3422: 0x00003440, - 3423: 0x00009064, - 3424: 0x0002555D, - 3425: 0x0000783D, - 3426: 0x00007854, - 3427: 0x000078B6, - 3428: 0x0000784B, - 3429: 0x00021757, - 3430: 0x000231C9, - 3431: 0x00024941, - 3432: 0x0000369A, - 3433: 0x00004F72, - 3434: 0x00006FDA, - 3435: 0x00006FD9, - 3436: 0x0000701E, - 3437: 0x0000701E, - 3438: 0x00005414, - 3439: 0x000241B5, - 3440: 0x000057BB, - 3441: 0x000058F3, - 3442: 0x0000578A, - 3443: 0x00009D16, - 3444: 0x000057D7, - 3445: 0x00007134, - 3446: 0x000034AF, - 3447: 0x000241AC, - 3448: 0x000071EB, - 3449: 0x00026C40, - 3450: 0x00024F97, - 3451: 0x00005B28, - 3452: 0x000217B5, - 3453: 0x00028A49, - 3454: 0x0000610C, - 3455: 0x00005ACE, - 3456: 0x00005A0B, - 3457: 0x000042BC, - 3458: 0x00024488, - 3459: 0x0000372C, - 3460: 0x00004B7B, - 3461: 0x000289FC, - 3462: 0x000093BB, - 3463: 0x000093B8, - 3464: 0x000218D6, - 3465: 0x00020F1D, - 3466: 0x00008472, - 3467: 0x00026CC0, - 3468: 0x00021413, - 3469: 0x000242FA, - 3470: 0x00022C26, - 3471: 0x000243C1, - 3472: 0x00005994, - 3473: 0x00023DB7, - 3474: 0x00026741, - 3475: 0x00007DA8, - 3476: 0x0002615B, - 3477: 0x000260A4, - 3478: 0x000249B9, - 3479: 0x0002498B, - 3480: 0x000289FA, - 3481: 0x000092E5, - 3482: 0x000073E2, - 3483: 0x00003EE9, - 3484: 0x000074B4, - 3485: 0x00028B63, - 3486: 0x0002189F, - 3487: 0x00003EE1, - 3488: 0x00024AB3, - 3489: 0x00006AD8, - 3490: 0x000073F3, - 3491: 0x000073FB, - 3492: 0x00003ED6, - 3493: 0x00024A3E, - 3494: 0x00024A94, - 3495: 0x000217D9, - 3496: 0x00024A66, - 3497: 0x000203A7, - 3498: 0x00021424, - 3499: 0x000249E5, - 3500: 0x00007448, - 3501: 0x00024916, - 3502: 0x000070A5, - 3503: 0x00024976, - 3504: 0x00009284, - 3505: 0x000073E6, - 3506: 0x0000935F, - 3507: 0x000204FE, - 3508: 0x00009331, - 3509: 0x00028ACE, - 3510: 0x00028A16, - 3511: 0x00009386, - 3512: 0x00028BE7, - 3513: 0x000255D5, - 3514: 0x00004935, - 3515: 0x00028A82, - 3516: 0x0000716B, - 3517: 0x00024943, - 3518: 0x00020CFF, - 3519: 0x000056A4, - 3520: 0x0002061A, - 3521: 0x00020BEB, - 3522: 0x00020CB8, - 3523: 0x00005502, - 3524: 0x000079C4, - 3525: 0x000217FA, - 3526: 0x00007DFE, - 3527: 0x000216C2, - 3528: 0x00024A50, - 3529: 0x00021852, - 3530: 0x0000452E, - 3531: 0x00009401, - 3532: 0x0000370A, - 3533: 0x00028AC0, - 3534: 0x000249AD, - 3535: 0x000059B0, - 3536: 0x000218BF, - 3537: 0x00021883, - 3538: 0x00027484, - 3539: 0x00005AA1, - 3540: 0x000036E2, - 3541: 0x00023D5B, - 3542: 0x000036B0, - 3543: 0x0000925F, - 3544: 0x00005A79, - 3545: 0x00028A81, - 3546: 0x00021862, - 3547: 0x00009374, - 3548: 0x00003CCD, - 3549: 0x00020AB4, - 3550: 0x00004A96, - 3551: 0x0000398A, - 3552: 0x000050F4, - 3553: 0x00003D69, - 3554: 0x00003D4C, - 3555: 0x0002139C, - 3556: 0x00007175, - 3557: 0x000042FB, - 3558: 0x00028218, - 3559: 0x00006E0F, - 3560: 0x000290E4, - 3561: 0x000044EB, - 3562: 0x00006D57, - 3563: 0x00027E4F, - 3564: 0x00007067, - 3565: 0x00006CAF, - 3566: 0x00003CD6, - 3567: 0x00023FED, - 3568: 0x00023E2D, - 3569: 0x00006E02, - 3570: 0x00006F0C, - 3571: 0x00003D6F, - 3572: 0x000203F5, - 3573: 0x00007551, - 3574: 0x000036BC, - 3575: 0x000034C8, - 3576: 0x00004680, - 3577: 0x00003EDA, - 3578: 0x00004871, - 3579: 0x000059C4, - 3580: 0x0000926E, - 3581: 0x0000493E, - 3582: 0x00008F41, - 3583: 0x00028C1C, - 3584: 0x00026BC0, - 3585: 0x00005812, - 3586: 0x000057C8, - 3587: 0x000036D6, - 3588: 0x00021452, - 3589: 0x000070FE, - 3590: 0x00024362, - 3591: 0x00024A71, - 3592: 0x00022FE3, - 3593: 0x000212B0, - 3594: 0x000223BD, - 3595: 0x000068B9, - 3596: 0x00006967, - 3597: 0x00021398, - 3598: 0x000234E5, - 3599: 0x00027BF4, - 3600: 0x000236DF, - 3601: 0x00028A83, - 3602: 0x000237D6, - 3603: 0x000233FA, - 3604: 0x00024C9F, - 3605: 0x00006A1A, - 3606: 0x000236AD, - 3607: 0x00026CB7, - 3608: 0x0000843E, - 3609: 0x000044DF, - 3610: 0x000044CE, - 3611: 0x00026D26, - 3612: 0x00026D51, - 3613: 0x00026C82, - 3614: 0x00026FDE, - 3615: 0x00006F17, - 3616: 0x00027109, - 3617: 0x0000833D, - 3618: 0x0002173A, - 3619: 0x000083ED, - 3620: 0x00026C80, - 3621: 0x00027053, - 3622: 0x000217DB, - 3623: 0x00005989, - 3624: 0x00005A82, - 3625: 0x000217B3, - 3626: 0x00005A61, - 3627: 0x00005A71, - 3628: 0x00021905, - 3629: 0x000241FC, - 3630: 0x0000372D, - 3631: 0x000059EF, - 3632: 0x0002173C, - 3633: 0x000036C7, - 3634: 0x0000718E, - 3635: 0x00009390, - 3636: 0x0000669A, - 3637: 0x000242A5, - 3638: 0x00005A6E, - 3639: 0x00005A2B, - 3640: 0x00024293, - 3641: 0x00006A2B, - 3642: 0x00023EF9, - 3643: 0x00027736, - 3644: 0x0002445B, - 3645: 0x000242CA, - 3646: 0x0000711D, - 3647: 0x00024259, - 3648: 0x000289E1, - 3649: 0x00004FB0, - 3650: 0x00026D28, - 3651: 0x00005CC2, - 3652: 0x000244CE, - 3653: 0x00027E4D, - 3654: 0x000243BD, - 3655: 0x00006A0C, - 3656: 0x00024256, - 3657: 0x00021304, - 3658: 0x000070A6, - 3659: 0x00007133, - 3660: 0x000243E9, - 3661: 0x00003DA5, - 3662: 0x00006CDF, - 3663: 0x0002F825, - 3664: 0x00024A4F, - 3665: 0x00007E65, - 3666: 0x000059EB, - 3667: 0x00005D2F, - 3668: 0x00003DF3, - 3669: 0x00005F5C, - 3670: 0x00024A5D, - 3671: 0x000217DF, - 3672: 0x00007DA4, - 3673: 0x00008426, - 3674: 0x00005485, - 3675: 0x00023AFA, - 3676: 0x00023300, - 3677: 0x00020214, - 3678: 0x0000577E, - 3679: 0x000208D5, - 3680: 0x00020619, - 3681: 0x00003FE5, - 3682: 0x00021F9E, - 3683: 0x0002A2B6, - 3684: 0x00007003, - 3685: 0x0002915B, - 3686: 0x00005D70, - 3687: 0x0000738F, - 3688: 0x00007CD3, - 3689: 0x00028A59, - 3690: 0x00029420, - 3691: 0x00004FC8, - 3692: 0x00007FE7, - 3693: 0x000072CD, - 3694: 0x00007310, - 3695: 0x00027AF4, - 3696: 0x00007338, - 3697: 0x00007339, - 3698: 0x000256F6, - 3699: 0x00007341, - 3700: 0x00007348, - 3701: 0x00003EA9, - 3702: 0x00027B18, - 3703: 0x0000906C, - 3704: 0x000071F5, - 3705: 0x000248F2, - 3706: 0x000073E1, - 3707: 0x000081F6, - 3708: 0x00003ECA, - 3709: 0x0000770C, - 3710: 0x00003ED1, - 3711: 0x00006CA2, - 3712: 0x000056FD, - 3713: 0x00007419, - 3714: 0x0000741E, - 3715: 0x0000741F, - 3716: 0x00003EE2, - 3717: 0x00003EF0, - 3718: 0x00003EF4, - 3719: 0x00003EFA, - 3720: 0x000074D3, - 3721: 0x00003F0E, - 3722: 0x00003F53, - 3723: 0x00007542, - 3724: 0x0000756D, - 3725: 0x00007572, - 3726: 0x0000758D, - 3727: 0x00003F7C, - 3728: 0x000075C8, - 3729: 0x000075DC, - 3730: 0x00003FC0, - 3731: 0x0000764D, - 3732: 0x00003FD7, - 3733: 0x00007674, - 3734: 0x00003FDC, - 3735: 0x0000767A, - 3736: 0x00024F5C, - 3737: 0x00007188, - 3738: 0x00005623, - 3739: 0x00008980, - 3740: 0x00005869, - 3741: 0x0000401D, - 3742: 0x00007743, - 3743: 0x00004039, - 3744: 0x00006761, - 3745: 0x00004045, - 3746: 0x000035DB, - 3747: 0x00007798, - 3748: 0x0000406A, - 3749: 0x0000406F, - 3750: 0x00005C5E, - 3751: 0x000077BE, - 3752: 0x000077CB, - 3753: 0x000058F2, - 3754: 0x00007818, - 3755: 0x000070B9, - 3756: 0x0000781C, - 3757: 0x000040A8, - 3758: 0x00007839, - 3759: 0x00007847, - 3760: 0x00007851, - 3761: 0x00007866, - 3762: 0x00008448, - 3763: 0x00025535, - 3764: 0x00007933, - 3765: 0x00006803, - 3766: 0x00007932, - 3767: 0x00004103, - 3768: 0x00004109, - 3769: 0x00007991, - 3770: 0x00007999, - 3771: 0x00008FBB, - 3772: 0x00007A06, - 3773: 0x00008FBC, - 3774: 0x00004167, - 3775: 0x00007A91, - 3776: 0x000041B2, - 3777: 0x00007ABC, - 3778: 0x00008279, - 3779: 0x000041C4, - 3780: 0x00007ACF, - 3781: 0x00007ADB, - 3782: 0x000041CF, - 3783: 0x00004E21, - 3784: 0x00007B62, - 3785: 0x00007B6C, - 3786: 0x00007B7B, - 3787: 0x00007C12, - 3788: 0x00007C1B, - 3789: 0x00004260, - 3790: 0x0000427A, - 3791: 0x00007C7B, - 3792: 0x00007C9C, - 3793: 0x0000428C, - 3794: 0x00007CB8, - 3795: 0x00004294, - 3796: 0x00007CED, - 3797: 0x00008F93, - 3798: 0x000070C0, - 3799: 0x00020CCF, - 3800: 0x00007DCF, - 3801: 0x00007DD4, - 3802: 0x00007DD0, - 3803: 0x00007DFD, - 3804: 0x00007FAE, - 3805: 0x00007FB4, - 3806: 0x0000729F, - 3807: 0x00004397, - 3808: 0x00008020, - 3809: 0x00008025, - 3810: 0x00007B39, - 3811: 0x0000802E, - 3812: 0x00008031, - 3813: 0x00008054, - 3814: 0x00003DCC, - 3815: 0x000057B4, - 3816: 0x000070A0, - 3817: 0x000080B7, - 3818: 0x000080E9, - 3819: 0x000043ED, - 3820: 0x0000810C, - 3821: 0x0000732A, - 3822: 0x0000810E, - 3823: 0x00008112, - 3824: 0x00007560, - 3825: 0x00008114, - 3826: 0x00004401, - 3827: 0x00003B39, - 3828: 0x00008156, - 3829: 0x00008159, - 3830: 0x0000815A, - 3831: 0x00004413, - 3832: 0x0000583A, - 3833: 0x0000817C, - 3834: 0x00008184, - 3835: 0x00004425, - 3836: 0x00008193, - 3837: 0x0000442D, - 3838: 0x000081A5, - 3839: 0x000057EF, - 3840: 0x000081C1, - 3841: 0x000081E4, - 3842: 0x00008254, - 3843: 0x0000448F, - 3844: 0x000082A6, - 3845: 0x00008276, - 3846: 0x000082CA, - 3847: 0x000082D8, - 3848: 0x000082FF, - 3849: 0x000044B0, - 3850: 0x00008357, - 3851: 0x00009669, - 3852: 0x0000698A, - 3853: 0x00008405, - 3854: 0x000070F5, - 3855: 0x00008464, - 3856: 0x000060E3, - 3857: 0x00008488, - 3858: 0x00004504, - 3859: 0x000084BE, - 3860: 0x000084E1, - 3861: 0x000084F8, - 3862: 0x00008510, - 3863: 0x00008538, - 3864: 0x00008552, - 3865: 0x0000453B, - 3866: 0x0000856F, - 3867: 0x00008570, - 3868: 0x000085E0, - 3869: 0x00004577, - 3870: 0x00008672, - 3871: 0x00008692, - 3872: 0x000086B2, - 3873: 0x000086EF, - 3874: 0x00009645, - 3875: 0x0000878B, - 3876: 0x00004606, - 3877: 0x00004617, - 3878: 0x000088AE, - 3879: 0x000088FF, - 3880: 0x00008924, - 3881: 0x00008947, - 3882: 0x00008991, - 3883: 0x00027967, - 3884: 0x00008A29, - 3885: 0x00008A38, - 3886: 0x00008A94, - 3887: 0x00008AB4, - 3888: 0x00008C51, - 3889: 0x00008CD4, - 3890: 0x00008CF2, - 3891: 0x00008D1C, - 3892: 0x00004798, - 3893: 0x0000585F, - 3894: 0x00008DC3, - 3895: 0x000047ED, - 3896: 0x00004EEE, - 3897: 0x00008E3A, - 3898: 0x000055D8, - 3899: 0x00005754, - 3900: 0x00008E71, - 3901: 0x000055F5, - 3902: 0x00008EB0, - 3903: 0x00004837, - 3904: 0x00008ECE, - 3905: 0x00008EE2, - 3906: 0x00008EE4, - 3907: 0x00008EED, - 3908: 0x00008EF2, - 3909: 0x00008FB7, - 3910: 0x00008FC1, - 3911: 0x00008FCA, - 3912: 0x00008FCC, - 3913: 0x00009033, - 3914: 0x000099C4, - 3915: 0x000048AD, - 3916: 0x000098E0, - 3917: 0x00009213, - 3918: 0x0000491E, - 3919: 0x00009228, - 3920: 0x00009258, - 3921: 0x0000926B, - 3922: 0x000092B1, - 3923: 0x000092AE, - 3924: 0x000092BF, - 3925: 0x000092E3, - 3926: 0x000092EB, - 3927: 0x000092F3, - 3928: 0x000092F4, - 3929: 0x000092FD, - 3930: 0x00009343, - 3931: 0x00009384, - 3932: 0x000093AD, - 3933: 0x00004945, - 3934: 0x00004951, - 3935: 0x00009EBF, - 3936: 0x00009417, - 3937: 0x00005301, - 3938: 0x0000941D, - 3939: 0x0000942D, - 3940: 0x0000943E, - 3941: 0x0000496A, - 3942: 0x00009454, - 3943: 0x00009479, - 3944: 0x0000952D, - 3945: 0x000095A2, - 3946: 0x000049A7, - 3947: 0x000095F4, - 3948: 0x00009633, - 3949: 0x000049E5, - 3950: 0x000067A0, - 3951: 0x00004A24, - 3952: 0x00009740, - 3953: 0x00004A35, - 3954: 0x000097B2, - 3955: 0x000097C2, - 3956: 0x00005654, - 3957: 0x00004AE4, - 3958: 0x000060E8, - 3959: 0x000098B9, - 3960: 0x00004B19, - 3961: 0x000098F1, - 3962: 0x00005844, - 3963: 0x0000990E, - 3964: 0x00009919, - 3965: 0x000051B4, - 3966: 0x0000991C, - 3967: 0x00009937, - 3968: 0x00009942, - 3969: 0x0000995D, - 3970: 0x00009962, - 3971: 0x00004B70, - 3972: 0x000099C5, - 3973: 0x00004B9D, - 3974: 0x00009A3C, - 3975: 0x00009B0F, - 3976: 0x00007A83, - 3977: 0x00009B69, - 3978: 0x00009B81, - 3979: 0x00009BDD, - 3980: 0x00009BF1, - 3981: 0x00009BF4, - 3982: 0x00004C6D, - 3983: 0x00009C20, - 3984: 0x0000376F, - 3985: 0x00021BC2, - 3986: 0x00009D49, - 3987: 0x00009C3A, - 3988: 0x00009EFE, - 3989: 0x00005650, - 3990: 0x00009D93, - 3991: 0x00009DBD, - 3992: 0x00009DC0, - 3993: 0x00009DFC, - 3994: 0x000094F6, - 3995: 0x00008FB6, - 3996: 0x00009E7B, - 3997: 0x00009EAC, - 3998: 0x00009EB1, - 3999: 0x00009EBD, - 4000: 0x00009EC6, - 4001: 0x000094DC, - 4002: 0x00009EE2, - 4003: 0x00009EF1, - 4004: 0x00009EF8, - 4005: 0x00007AC8, - 4006: 0x00009F44, - 4007: 0x00020094, - 4008: 0x000202B7, - 4009: 0x000203A0, - 4010: 0x0000691A, - 4011: 0x000094C3, - 4012: 0x000059AC, - 4013: 0x000204D7, - 4014: 0x00005840, - 4015: 0x000094C1, - 4016: 0x000037B9, - 4017: 0x000205D5, - 4018: 0x00020615, - 4019: 0x00020676, - 4020: 0x000216BA, - 4021: 0x00005757, - 4022: 0x00007173, - 4023: 0x00020AC2, - 4024: 0x00020ACD, - 4025: 0x00020BBF, - 4026: 0x0000546A, - 4027: 0x0002F83B, - 4028: 0x00020BCB, - 4029: 0x0000549E, - 4030: 0x00020BFB, - 4031: 0x00020C3B, - 4032: 0x00020C53, - 4033: 0x00020C65, - 4034: 0x00020C7C, - 4035: 0x000060E7, - 4036: 0x00020C8D, - 4037: 0x0000567A, - 4038: 0x00020CB5, - 4039: 0x00020CDD, - 4040: 0x00020CED, - 4041: 0x00020D6F, - 4042: 0x00020DB2, - 4043: 0x00020DC8, - 4044: 0x00006955, - 4045: 0x00009C2F, - 4046: 0x000087A5, - 4047: 0x00020E04, - 4048: 0x00020E0E, - 4049: 0x00020ED7, - 4050: 0x00020F90, - 4051: 0x00020F2D, - 4052: 0x00020E73, - 4053: 0x00005C20, - 4054: 0x00020FBC, - 4055: 0x00005E0B, - 4056: 0x0002105C, - 4057: 0x0002104F, - 4058: 0x00021076, - 4059: 0x0000671E, - 4060: 0x0002107B, - 4061: 0x00021088, - 4062: 0x00021096, - 4063: 0x00003647, - 4064: 0x000210BF, - 4065: 0x000210D3, - 4066: 0x0002112F, - 4067: 0x0002113B, - 4068: 0x00005364, - 4069: 0x000084AD, - 4070: 0x000212E3, - 4071: 0x00021375, - 4072: 0x00021336, - 4073: 0x00008B81, - 4074: 0x00021577, - 4075: 0x00021619, - 4076: 0x000217C3, - 4077: 0x000217C7, - 4078: 0x00004E78, - 4079: 0x000070BB, - 4080: 0x0002182D, - 4081: 0x0002196A, - 4082: 0x00021A2D, - 4083: 0x00021A45, - 4084: 0x00021C2A, - 4085: 0x00021C70, - 4086: 0x00021CAC, - 4087: 0x00021EC8, - 4088: 0x000062C3, - 4089: 0x00021ED5, - 4090: 0x00021F15, - 4091: 0x00007198, - 4092: 0x00006855, - 4093: 0x00022045, - 4094: 0x000069E9, - 4095: 0x000036C8, - 4096: 0x0002227C, - 4097: 0x000223D7, - 4098: 0x000223FA, - 4099: 0x0002272A, - 4100: 0x00022871, - 4101: 0x0002294F, - 4102: 0x000082FD, - 4103: 0x00022967, - 4104: 0x00022993, - 4105: 0x00022AD5, - 4106: 0x000089A5, - 4107: 0x00022AE8, - 4108: 0x00008FA0, - 4109: 0x00022B0E, - 4110: 0x000097B8, - 4111: 0x00022B3F, - 4112: 0x00009847, - 4113: 0x00009ABD, - 4114: 0x00022C4C, - 4116: 0x00022C88, - 4117: 0x00022CB7, - 4118: 0x00025BE8, - 4119: 0x00022D08, - 4120: 0x00022D12, - 4121: 0x00022DB7, - 4122: 0x00022D95, - 4123: 0x00022E42, - 4124: 0x00022F74, - 4125: 0x00022FCC, - 4126: 0x00023033, - 4127: 0x00023066, - 4128: 0x0002331F, - 4129: 0x000233DE, - 4130: 0x00005FB1, - 4131: 0x00006648, - 4132: 0x000066BF, - 4133: 0x00027A79, - 4134: 0x00023567, - 4135: 0x000235F3, - 4136: 0x00007201, - 4137: 0x000249BA, - 4138: 0x000077D7, - 4139: 0x0002361A, - 4140: 0x00023716, - 4141: 0x00007E87, - 4142: 0x00020346, - 4143: 0x000058B5, - 4144: 0x0000670E, - 4145: 0x00006918, - 4146: 0x00023AA7, - 4147: 0x00027657, - 4148: 0x00025FE2, - 4149: 0x00023E11, - 4150: 0x00023EB9, - 4151: 0x000275FE, - 4152: 0x0002209A, - 4153: 0x000048D0, - 4154: 0x00004AB8, - 4155: 0x00024119, - 4156: 0x00028A9A, - 4157: 0x000242EE, - 4158: 0x0002430D, - 4159: 0x0002403B, - 4160: 0x00024334, - 4161: 0x00024396, - 4162: 0x00024A45, - 4163: 0x000205CA, - 4164: 0x000051D2, - 4165: 0x00020611, - 4166: 0x0000599F, - 4167: 0x00021EA8, - 4168: 0x00003BBE, - 4169: 0x00023CFF, - 4170: 0x00024404, - 4171: 0x000244D6, - 4172: 0x00005788, - 4173: 0x00024674, - 4174: 0x0000399B, - 4175: 0x0002472F, - 4176: 0x000285E8, - 4177: 0x000299C9, - 4178: 0x00003762, - 4179: 0x000221C3, - 4180: 0x00008B5E, - 4181: 0x00028B4E, - 4182: 0x000099D6, - 4183: 0x00024812, - 4184: 0x000248FB, - 4185: 0x00024A15, - 4186: 0x00007209, - 4187: 0x00024AC0, - 4188: 0x00020C78, - 4189: 0x00005965, - 4190: 0x00024EA5, - 4191: 0x00024F86, - 4192: 0x00020779, - 4193: 0x00008EDA, - 4194: 0x0002502C, - 4195: 0x0000528F, - 4196: 0x0000573F, - 4197: 0x00007171, - 4198: 0x00025299, - 4199: 0x00025419, - 4200: 0x00023F4A, - 4201: 0x00024AA7, - 4202: 0x000055BC, - 4203: 0x00025446, - 4204: 0x0002546E, - 4205: 0x00026B52, - 4206: 0x000091D4, - 4207: 0x00003473, - 4208: 0x0002553F, - 4209: 0x00027632, - 4210: 0x0002555E, - 4211: 0x00004718, - 4212: 0x00025562, - 4213: 0x00025566, - 4214: 0x000257C7, - 4215: 0x0002493F, - 4216: 0x0002585D, - 4217: 0x00005066, - 4218: 0x000034FB, - 4219: 0x000233CC, - 4220: 0x000060DE, - 4221: 0x00025903, - 4222: 0x0000477C, - 4223: 0x00028948, - 4224: 0x00025AAE, - 4225: 0x00025B89, - 4226: 0x00025C06, - 4227: 0x00021D90, - 4228: 0x000057A1, - 4229: 0x00007151, - 4230: 0x00006FB6, - 4231: 0x00026102, - 4232: 0x00027C12, - 4233: 0x00009056, - 4234: 0x000261B2, - 4235: 0x00024F9A, - 4236: 0x00008B62, - 4237: 0x00026402, - 4238: 0x0002644A, - 4239: 0x00005D5B, - 4240: 0x00026BF7, - 4241: 0x00008F36, - 4242: 0x00026484, - 4243: 0x0002191C, - 4244: 0x00008AEA, - 4245: 0x000249F6, - 4246: 0x00026488, - 4247: 0x00023FEF, - 4248: 0x00026512, - 4249: 0x00004BC0, - 4250: 0x000265BF, - 4251: 0x000266B5, - 4252: 0x0002271B, - 4253: 0x00009465, - 4254: 0x000257E1, - 4255: 0x00006195, - 4256: 0x00005A27, - 4257: 0x0002F8CD, - 4258: 0x00004FBB, - 4259: 0x000056B9, - 4260: 0x00024521, - 4261: 0x000266FC, - 4262: 0x00004E6A, - 4263: 0x00024934, - 4264: 0x00009656, - 4265: 0x00006D8F, - 4266: 0x00026CBD, - 4267: 0x00003618, - 4268: 0x00008977, - 4269: 0x00026799, - 4270: 0x0002686E, - 4271: 0x00026411, - 4272: 0x0002685E, - 4273: 0x000071DF, - 4274: 0x000268C7, - 4275: 0x00007B42, - 4276: 0x000290C0, - 4277: 0x00020A11, - 4278: 0x00026926, - 4279: 0x00009104, - 4280: 0x00026939, - 4281: 0x00007A45, - 4282: 0x00009DF0, - 4283: 0x000269FA, - 4284: 0x00009A26, - 4285: 0x00026A2D, - 4286: 0x0000365F, - 4287: 0x00026469, - 4288: 0x00020021, - 4289: 0x00007983, - 4290: 0x00026A34, - 4291: 0x00026B5B, - 4292: 0x00005D2C, - 4293: 0x00023519, - 4294: 0x000083CF, - 4295: 0x00026B9D, - 4296: 0x000046D0, - 4297: 0x00026CA4, - 4298: 0x0000753B, - 4299: 0x00008865, - 4300: 0x00026DAE, - 4301: 0x000058B6, - 4302: 0x0000371C, - 4303: 0x0002258D, - 4304: 0x0002704B, - 4305: 0x000271CD, - 4306: 0x00003C54, - 4307: 0x00027280, - 4308: 0x00027285, - 4309: 0x00009281, - 4310: 0x0002217A, - 4311: 0x0002728B, - 4312: 0x00009330, - 4313: 0x000272E6, - 4314: 0x000249D0, - 4315: 0x00006C39, - 4316: 0x0000949F, - 4317: 0x00027450, - 4318: 0x00020EF8, - 4319: 0x00008827, - 4320: 0x000088F5, - 4321: 0x00022926, - 4322: 0x00028473, - 4323: 0x000217B1, - 4324: 0x00006EB8, - 4325: 0x00024A2A, - 4326: 0x00021820, - 4327: 0x000039A4, - 4328: 0x000036B9, - 4329: 0x00005C10, - 4330: 0x000079E3, - 4331: 0x0000453F, - 4332: 0x000066B6, - 4333: 0x00029CAD, - 4334: 0x000298A4, - 4335: 0x00008943, - 4336: 0x000277CC, - 4337: 0x00027858, - 4338: 0x000056D6, - 4339: 0x000040DF, - 4340: 0x0002160A, - 4341: 0x000039A1, - 4342: 0x0002372F, - 4343: 0x000280E8, - 4344: 0x000213C5, - 4345: 0x000071AD, - 4346: 0x00008366, - 4347: 0x000279DD, - 4348: 0x000291A8, - 4349: 0x00005A67, - 4350: 0x00004CB7, - 4351: 0x000270AF, - 4352: 0x000289AB, - 4353: 0x000279FD, - 4354: 0x00027A0A, - 4355: 0x00027B0B, - 4356: 0x00027D66, - 4357: 0x0002417A, - 4358: 0x00007B43, - 4359: 0x0000797E, - 4360: 0x00028009, - 4361: 0x00006FB5, - 4362: 0x0002A2DF, - 4363: 0x00006A03, - 4364: 0x00028318, - 4365: 0x000053A2, - 4366: 0x00026E07, - 4367: 0x000093BF, - 4368: 0x00006836, - 4369: 0x0000975D, - 4370: 0x0002816F, - 4371: 0x00028023, - 4372: 0x000269B5, - 4373: 0x000213ED, - 4374: 0x0002322F, - 4375: 0x00028048, - 4376: 0x00005D85, - 4377: 0x00028C30, - 4378: 0x00028083, - 4379: 0x00005715, - 4380: 0x00009823, - 4381: 0x00028949, - 4382: 0x00005DAB, - 4383: 0x00024988, - 4384: 0x000065BE, - 4385: 0x000069D5, - 4386: 0x000053D2, - 4387: 0x00024AA5, - 4388: 0x00023F81, - 4389: 0x00003C11, - 4390: 0x00006736, - 4391: 0x00028090, - 4392: 0x000280F4, - 4393: 0x0002812E, - 4394: 0x00021FA1, - 4395: 0x0002814F, - 4396: 0x00028189, - 4397: 0x000281AF, - 4398: 0x0002821A, - 4399: 0x00028306, - 4400: 0x0002832F, - 4401: 0x0002838A, - 4402: 0x000035CA, - 4403: 0x00028468, - 4404: 0x000286AA, - 4405: 0x000048FA, - 4406: 0x000063E6, - 4407: 0x00028956, - 4408: 0x00007808, - 4409: 0x00009255, - 4410: 0x000289B8, - 4411: 0x000043F2, - 4412: 0x000289E7, - 4413: 0x000043DF, - 4414: 0x000289E8, - 4415: 0x00028B46, - 4416: 0x00028BD4, - 4417: 0x000059F8, - 4418: 0x00028C09, - 4419: 0x00008F0B, - 4420: 0x00028FC5, - 4421: 0x000290EC, - 4422: 0x00007B51, - 4423: 0x00029110, - 4424: 0x0002913C, - 4425: 0x00003DF7, - 4426: 0x0002915E, - 4427: 0x00024ACA, - 4428: 0x00008FD0, - 4429: 0x0000728F, - 4430: 0x0000568B, - 4431: 0x000294E7, - 4432: 0x000295E9, - 4433: 0x000295B0, - 4434: 0x000295B8, - 4435: 0x00029732, - 4436: 0x000298D1, - 4437: 0x00029949, - 4438: 0x0002996A, - 4439: 0x000299C3, - 4440: 0x00029A28, - 4441: 0x00029B0E, - 4442: 0x00029D5A, - 4443: 0x00029D9B, - 4444: 0x00007E9F, - 4445: 0x00029EF8, - 4446: 0x00029F23, - 4447: 0x00004CA4, - 4448: 0x00009547, - 4449: 0x0002A293, - 4450: 0x000071A2, - 4451: 0x0002A2FF, - 4452: 0x00004D91, - 4453: 0x00009012, - 4454: 0x0002A5CB, - 4455: 0x00004D9C, - 4456: 0x00020C9C, - 4457: 0x00008FBE, - 4458: 0x000055C1, - 4459: 0x00008FBA, - 4460: 0x000224B0, - 4461: 0x00008FB9, - 4462: 0x00024A93, - 4463: 0x00004509, - 4464: 0x00007E7F, - 4465: 0x00006F56, - 4466: 0x00006AB1, - 4467: 0x00004EEA, - 4468: 0x000034E4, - 4469: 0x00028B2C, - 4470: 0x0002789D, - 4471: 0x0000373A, - 4472: 0x00008E80, - 4473: 0x000217F5, - 4474: 0x00028024, - 4475: 0x00028B6C, - 4476: 0x00028B99, - 4477: 0x00027A3E, - 4478: 0x000266AF, - 4479: 0x00003DEB, - 4480: 0x00027655, - 4481: 0x00023CB7, - 4482: 0x00025635, - 4483: 0x00025956, - 4484: 0x00004E9A, - 4485: 0x00025E81, - 4486: 0x00026258, - 4487: 0x000056BF, - 4488: 0x00020E6D, - 4489: 0x00008E0E, - 4490: 0x00005B6D, - 4491: 0x00023E88, - 4492: 0x00024C9E, - 4493: 0x000063DE, - 4494: 0x000062D0, - 4495: 0x000217F6, - 4496: 0x0002187B, - 4497: 0x00006530, - 4498: 0x0000562D, - 4499: 0x00025C4A, - 4500: 0x0000541A, - 4501: 0x00025311, - 4502: 0x00003DC6, - 4503: 0x00029D98, - 4504: 0x00004C7D, - 4505: 0x00005622, - 4506: 0x0000561E, - 4507: 0x00007F49, - 4508: 0x00025ED8, - 4509: 0x00005975, - 4510: 0x00023D40, - 4511: 0x00008770, - 4512: 0x00004E1C, - 4513: 0x00020FEA, - 4514: 0x00020D49, - 4515: 0x000236BA, - 4516: 0x00008117, - 4517: 0x00009D5E, - 4518: 0x00008D18, - 4519: 0x0000763B, - 4520: 0x00009C45, - 4521: 0x0000764E, - 4522: 0x000077B9, - 4523: 0x00009345, - 4524: 0x00005432, - 4525: 0x00008148, - 4526: 0x000082F7, - 4527: 0x00005625, - 4528: 0x00008132, - 4529: 0x00008418, - 4530: 0x000080BD, - 4531: 0x000055EA, - 4532: 0x00007962, - 4533: 0x00005643, - 4534: 0x00005416, - 4535: 0x00020E9D, - 4536: 0x000035CE, - 4537: 0x00005605, - 4538: 0x000055F1, - 4539: 0x000066F1, - 4540: 0x000282E2, - 4541: 0x0000362D, - 4542: 0x00007534, - 4543: 0x000055F0, - 4544: 0x000055BA, - 4545: 0x00005497, - 4546: 0x00005572, - 4547: 0x00020C41, - 4548: 0x00020C96, - 4549: 0x00005ED0, - 4550: 0x00025148, - 4551: 0x00020E76, - 4552: 0x00022C62, - 4553: 0x00020EA2, - 4554: 0x00009EAB, - 4555: 0x00007D5A, - 4556: 0x000055DE, - 4557: 0x00021075, - 4558: 0x0000629D, - 4559: 0x0000976D, - 4560: 0x00005494, - 4561: 0x00008CCD, - 4562: 0x000071F6, - 4563: 0x00009176, - 4564: 0x000063FC, - 4565: 0x000063B9, - 4566: 0x000063FE, - 4567: 0x00005569, - 4568: 0x00022B43, - 4569: 0x00009C72, - 4570: 0x00022EB3, - 4571: 0x0000519A, - 4572: 0x000034DF, - 4573: 0x00020DA7, - 4574: 0x000051A7, - 4575: 0x0000544D, - 4576: 0x0000551E, - 4577: 0x00005513, - 4578: 0x00007666, - 4579: 0x00008E2D, - 4580: 0x0002688A, - 4581: 0x000075B1, - 4582: 0x000080B6, - 4583: 0x00008804, - 4584: 0x00008786, - 4585: 0x000088C7, - 4586: 0x000081B6, - 4587: 0x0000841C, - 4588: 0x000210C1, - 4589: 0x000044EC, - 4590: 0x00007304, - 4591: 0x00024706, - 4592: 0x00005B90, - 4593: 0x0000830B, - 4594: 0x00026893, - 4595: 0x0000567B, - 4596: 0x000226F4, - 4597: 0x00027D2F, - 4598: 0x000241A3, - 4599: 0x00027D73, - 4600: 0x00026ED0, - 4601: 0x000272B6, - 4602: 0x00009170, - 4603: 0x000211D9, - 4604: 0x00009208, - 4605: 0x00023CFC, - 4606: 0x0002A6A9, - 4607: 0x00020EAC, - 4608: 0x00020EF9, - 4609: 0x00007266, - 4610: 0x00021CA2, - 4611: 0x0000474E, - 4612: 0x00024FC2, - 4613: 0x00027FF9, - 4614: 0x00020FEB, - 4615: 0x000040FA, - 4616: 0x00009C5D, - 4617: 0x0000651F, - 4618: 0x00022DA0, - 4619: 0x000048F3, - 4620: 0x000247E0, - 4621: 0x00029D7C, - 4622: 0x00020FEC, - 4623: 0x00020E0A, - 4624: 0x00006062, - 4625: 0x000275A3, - 4626: 0x00020FED, - 4628: 0x00026048, - 4629: 0x00021187, - 4630: 0x000071A3, - 4631: 0x00007E8E, - 4632: 0x00009D50, - 4633: 0x00004E1A, - 4634: 0x00004E04, - 4635: 0x00003577, - 4636: 0x00005B0D, - 4637: 0x00006CB2, - 4638: 0x00005367, - 4639: 0x000036AC, - 4640: 0x000039DC, - 4641: 0x0000537D, - 4642: 0x000036A5, - 4643: 0x00024618, - 4644: 0x0000589A, - 4645: 0x00024B6E, - 4646: 0x0000822D, - 4647: 0x0000544B, - 4648: 0x000057AA, - 4649: 0x00025A95, - 4650: 0x00020979, - 4652: 0x00003A52, - 4653: 0x00022465, - 4654: 0x00007374, - 4655: 0x00029EAC, - 4656: 0x00004D09, - 4657: 0x00009BED, - 4658: 0x00023CFE, - 4659: 0x00029F30, - 4660: 0x00004C5B, - 4661: 0x00024FA9, - 4662: 0x0002959E, - 4663: 0x00029FDE, - 4664: 0x0000845C, - 4665: 0x00023DB6, - 4666: 0x000272B2, - 4667: 0x000267B3, - 4668: 0x00023720, - 4669: 0x0000632E, - 4670: 0x00007D25, - 4671: 0x00023EF7, - 4672: 0x00023E2C, - 4673: 0x00003A2A, - 4674: 0x00009008, - 4675: 0x000052CC, - 4676: 0x00003E74, - 4677: 0x0000367A, - 4678: 0x000045E9, - 4679: 0x0002048E, - 4680: 0x00007640, - 4681: 0x00005AF0, - 4682: 0x00020EB6, - 4683: 0x0000787A, - 4684: 0x00027F2E, - 4685: 0x000058A7, - 4686: 0x000040BF, - 4687: 0x0000567C, - 4688: 0x00009B8B, - 4689: 0x00005D74, - 4690: 0x00007654, - 4691: 0x0002A434, - 4692: 0x00009E85, - 4693: 0x00004CE1, - 4694: 0x000075F9, - 4695: 0x000037FB, - 4696: 0x00006119, - 4697: 0x000230DA, - 4698: 0x000243F2, - 4700: 0x0000565D, - 4701: 0x000212A9, - 4702: 0x000057A7, - 4703: 0x00024963, - 4704: 0x00029E06, - 4705: 0x00005234, - 4706: 0x000270AE, - 4707: 0x000035AD, - 4708: 0x00006C4A, - 4709: 0x00009D7C, - 4710: 0x00007C56, - 4711: 0x00009B39, - 4712: 0x000057DE, - 4713: 0x0002176C, - 4714: 0x00005C53, - 4715: 0x000064D3, - 4716: 0x000294D0, - 4717: 0x00026335, - 4718: 0x00027164, - 4719: 0x000086AD, - 4720: 0x00020D28, - 4721: 0x00026D22, - 4722: 0x00024AE2, - 4723: 0x00020D71, - 4725: 0x000051FE, - 4726: 0x00021F0F, - 4727: 0x00005D8E, - 4728: 0x00009703, - 4729: 0x00021DD1, - 4730: 0x00009E81, - 4731: 0x0000904C, - 4732: 0x00007B1F, - 4733: 0x00009B02, - 4734: 0x00005CD1, - 4735: 0x00007BA3, - 4736: 0x00006268, - 4737: 0x00006335, - 4738: 0x00009AFF, - 4739: 0x00007BCF, - 4740: 0x00009B2A, - 4741: 0x00007C7E, - 4742: 0x00009B2E, - 4743: 0x00007C42, - 4744: 0x00007C86, - 4745: 0x00009C15, - 4746: 0x00007BFC, - 4747: 0x00009B09, - 4748: 0x00009F17, - 4749: 0x00009C1B, - 4750: 0x0002493E, - 4751: 0x00009F5A, - 4752: 0x00005573, - 4753: 0x00005BC3, - 4754: 0x00004FFD, - 4755: 0x00009E98, - 4756: 0x00004FF2, - 4757: 0x00005260, - 4758: 0x00003E06, - 4759: 0x000052D1, - 4760: 0x00005767, - 4761: 0x00005056, - 4762: 0x000059B7, - 4763: 0x00005E12, - 4764: 0x000097C8, - 4765: 0x00009DAB, - 4766: 0x00008F5C, - 4767: 0x00005469, - 4768: 0x000097B4, - 4769: 0x00009940, - 4770: 0x000097BA, - 4771: 0x0000532C, - 4772: 0x00006130, - 4773: 0x0000692C, - 4774: 0x000053DA, - 4775: 0x00009C0A, - 4776: 0x00009D02, - 4777: 0x00004C3B, - 4778: 0x00009641, - 4779: 0x00006980, - 4780: 0x000050A6, - 4781: 0x00007546, - 4782: 0x0002176D, - 4783: 0x000099DA, - 4784: 0x00005273, - 4786: 0x00009159, - 4787: 0x00009681, - 4788: 0x0000915C, - 4790: 0x00009151, - 4791: 0x00028E97, - 4792: 0x0000637F, - 4793: 0x00026D23, - 4794: 0x00006ACA, - 4795: 0x00005611, - 4796: 0x0000918E, - 4797: 0x0000757A, - 4798: 0x00006285, - 4799: 0x000203FC, - 4800: 0x0000734F, - 4801: 0x00007C70, - 4802: 0x00025C21, - 4803: 0x00023CFD, - 4805: 0x00024919, - 4806: 0x000076D6, - 4807: 0x00009B9D, - 4808: 0x00004E2A, - 4809: 0x00020CD4, - 4810: 0x000083BE, - 4811: 0x00008842, - 4813: 0x00005C4A, - 4814: 0x000069C0, - 4815: 0x000050ED, - 4816: 0x0000577A, - 4817: 0x0000521F, - 4818: 0x00005DF5, - 4819: 0x00004ECE, - 4820: 0x00006C31, - 4821: 0x000201F2, - 4822: 0x00004F39, - 4823: 0x0000549C, - 4824: 0x000054DA, - 4825: 0x0000529A, - 4826: 0x00008D82, - 4827: 0x000035FE, - 4828: 0x00005F0C, - 4829: 0x000035F3, - 4831: 0x00006B52, - 4832: 0x0000917C, - 4833: 0x00009FA5, - 4834: 0x00009B97, - 4835: 0x0000982E, - 4836: 0x000098B4, - 4837: 0x00009ABA, - 4838: 0x00009EA8, - 4839: 0x00009E84, - 4840: 0x0000717A, - 4841: 0x00007B14, - 4843: 0x00006BFA, - 4844: 0x00008818, - 4845: 0x00007F78, - 4847: 0x00005620, - 4848: 0x0002A64A, - 4849: 0x00008E77, - 4850: 0x00009F53, - 4852: 0x00008DD4, - 4853: 0x00008E4F, - 4854: 0x00009E1C, - 4855: 0x00008E01, - 4856: 0x00006282, - 4857: 0x0002837D, - 4858: 0x00008E28, - 4859: 0x00008E75, - 4860: 0x00007AD3, - 4861: 0x00024A77, - 4862: 0x00007A3E, - 4863: 0x000078D8, - 4864: 0x00006CEA, - 4865: 0x00008A67, - 4866: 0x00007607, - 4867: 0x00028A5A, - 4868: 0x00009F26, - 4869: 0x00006CCE, - 4870: 0x000087D6, - 4871: 0x000075C3, - 4872: 0x0002A2B2, - 4873: 0x00007853, - 4874: 0x0002F840, - 4875: 0x00008D0C, - 4876: 0x000072E2, - 4877: 0x00007371, - 4878: 0x00008B2D, - 4879: 0x00007302, - 4880: 0x000074F1, - 4881: 0x00008CEB, - 4882: 0x00024ABB, - 4883: 0x0000862F, - 4884: 0x00005FBA, - 4885: 0x000088A0, - 4886: 0x000044B7, - 4888: 0x0002183B, - 4889: 0x00026E05, - 4891: 0x00008A7E, - 4892: 0x0002251B, - 4894: 0x000060FD, - 4895: 0x00007667, - 4896: 0x00009AD7, - 4897: 0x00009D44, - 4898: 0x0000936E, - 4899: 0x00009B8F, - 4900: 0x000087F5, - 4902: 0x0000880F, - 4903: 0x00008CF7, - 4904: 0x0000732C, - 4905: 0x00009721, - 4906: 0x00009BB0, - 4907: 0x000035D6, - 4908: 0x000072B2, - 4909: 0x00004C07, - 4910: 0x00007C51, - 4911: 0x0000994A, - 4912: 0x00026159, - 4913: 0x00006159, - 4914: 0x00004C04, - 4915: 0x00009E96, - 4916: 0x0000617D, - 4918: 0x0000575F, - 4919: 0x0000616F, - 4920: 0x000062A6, - 4921: 0x00006239, - 4922: 0x000062CE, - 4923: 0x00003A5C, - 4924: 0x000061E2, - 4925: 0x000053AA, - 4926: 0x000233F5, - 4927: 0x00006364, - 4928: 0x00006802, - 4929: 0x000035D2, - 4930: 0x00005D57, - 4931: 0x00028BC2, - 4932: 0x00008FDA, - 4933: 0x00028E39, - 4935: 0x000050D9, - 4936: 0x00021D46, - 4937: 0x00007906, - 4938: 0x00005332, - 4939: 0x00009638, - 4940: 0x00020F3B, - 4941: 0x00004065, - 4943: 0x000077FE, - 4945: 0x00007CC2, - 4946: 0x00025F1A, - 4947: 0x00007CDA, - 4948: 0x00007A2D, - 4949: 0x00008066, - 4950: 0x00008063, - 4951: 0x00007D4D, - 4952: 0x00007505, - 4953: 0x000074F2, - 4954: 0x00008994, - 4955: 0x0000821A, - 4956: 0x0000670C, - 4957: 0x00008062, - 4958: 0x00027486, - 4959: 0x0000805B, - 4960: 0x000074F0, - 4961: 0x00008103, - 4962: 0x00007724, - 4963: 0x00008989, - 4964: 0x000267CC, - 4965: 0x00007553, - 4966: 0x00026ED1, - 4967: 0x000087A9, - 4968: 0x000087CE, - 4969: 0x000081C8, - 4970: 0x0000878C, - 4971: 0x00008A49, - 4972: 0x00008CAD, - 4973: 0x00008B43, - 4974: 0x0000772B, - 4975: 0x000074F8, - 4976: 0x000084DA, - 4977: 0x00003635, - 4978: 0x000069B2, - 4979: 0x00008DA6, - 4981: 0x000089A9, - 4982: 0x00007468, - 4983: 0x00006DB9, - 4984: 0x000087C1, - 4985: 0x00024011, - 4986: 0x000074E7, - 4987: 0x00003DDB, - 4988: 0x00007176, - 4989: 0x000060A4, - 4990: 0x0000619C, - 4991: 0x00003CD1, - 4992: 0x00007162, - 4993: 0x00006077, - 4995: 0x00007F71, - 4996: 0x00028B2D, - 4997: 0x00007250, - 4998: 0x000060E9, - 4999: 0x00004B7E, - 5000: 0x00005220, - 5001: 0x00003C18, - 5002: 0x00023CC7, - 5003: 0x00025ED7, - 5004: 0x00027656, - 5005: 0x00025531, - 5006: 0x00021944, - 5007: 0x000212FE, - 5008: 0x00029903, - 5009: 0x00026DDC, - 5010: 0x000270AD, - 5011: 0x00005CC1, - 5012: 0x000261AD, - 5013: 0x00028A0F, - 5014: 0x00023677, - 5015: 0x000200EE, - 5016: 0x00026846, - 5017: 0x00024F0E, - 5018: 0x00004562, - 5019: 0x00005B1F, - 5020: 0x0002634C, - 5021: 0x00009F50, - 5022: 0x00009EA6, - 5023: 0x0002626B, - 5024: 0x00003000, - 5025: 0x0000FF0C, - 5026: 0x00003001, - 5027: 0x00003002, - 5028: 0x0000FF0E, - 5029: 0x00002027, - 5030: 0x0000FF1B, - 5031: 0x0000FF1A, - 5032: 0x0000FF1F, - 5033: 0x0000FF01, - 5034: 0x0000FE30, - 5035: 0x00002026, - 5036: 0x00002025, - 5037: 0x0000FE50, - 5038: 0x0000FE51, - 5039: 0x0000FE52, - 5040: 0x000000B7, - 5041: 0x0000FE54, - 5042: 0x0000FE55, - 5043: 0x0000FE56, - 5044: 0x0000FE57, - 5045: 0x0000FF5C, - 5046: 0x00002013, - 5047: 0x0000FE31, - 5048: 0x00002014, - 5049: 0x0000FE33, - 5050: 0x00002574, - 5051: 0x0000FE34, - 5052: 0x0000FE4F, - 5053: 0x0000FF08, - 5054: 0x0000FF09, - 5055: 0x0000FE35, - 5056: 0x0000FE36, - 5057: 0x0000FF5B, - 5058: 0x0000FF5D, - 5059: 0x0000FE37, - 5060: 0x0000FE38, - 5061: 0x00003014, - 5062: 0x00003015, - 5063: 0x0000FE39, - 5064: 0x0000FE3A, - 5065: 0x00003010, - 5066: 0x00003011, - 5067: 0x0000FE3B, - 5068: 0x0000FE3C, - 5069: 0x0000300A, - 5070: 0x0000300B, - 5071: 0x0000FE3D, - 5072: 0x0000FE3E, - 5073: 0x00003008, - 5074: 0x00003009, - 5075: 0x0000FE3F, - 5076: 0x0000FE40, - 5077: 0x0000300C, - 5078: 0x0000300D, - 5079: 0x0000FE41, - 5080: 0x0000FE42, - 5081: 0x0000300E, - 5082: 0x0000300F, - 5083: 0x0000FE43, - 5084: 0x0000FE44, - 5085: 0x0000FE59, - 5086: 0x0000FE5A, - 5087: 0x0000FE5B, - 5088: 0x0000FE5C, - 5089: 0x0000FE5D, - 5090: 0x0000FE5E, - 5091: 0x00002018, - 5092: 0x00002019, - 5093: 0x0000201C, - 5094: 0x0000201D, - 5095: 0x0000301D, - 5096: 0x0000301E, - 5097: 0x00002035, - 5098: 0x00002032, - 5099: 0x0000FF03, - 5100: 0x0000FF06, - 5101: 0x0000FF0A, - 5102: 0x0000203B, - 5103: 0x000000A7, - 5104: 0x00003003, - 5105: 0x000025CB, - 5106: 0x000025CF, - 5107: 0x000025B3, - 5108: 0x000025B2, - 5109: 0x000025CE, - 5110: 0x00002606, - 5111: 0x00002605, - 5112: 0x000025C7, - 5113: 0x000025C6, - 5114: 0x000025A1, - 5115: 0x000025A0, - 5116: 0x000025BD, - 5117: 0x000025BC, - 5118: 0x000032A3, - 5119: 0x00002105, - 5120: 0x000000AF, - 5121: 0x0000FFE3, - 5122: 0x0000FF3F, - 5123: 0x000002CD, - 5124: 0x0000FE49, - 5125: 0x0000FE4A, - 5126: 0x0000FE4D, - 5127: 0x0000FE4E, - 5128: 0x0000FE4B, - 5129: 0x0000FE4C, - 5130: 0x0000FE5F, - 5131: 0x0000FE60, - 5132: 0x0000FE61, - 5133: 0x0000FF0B, - 5134: 0x0000FF0D, - 5135: 0x000000D7, - 5136: 0x000000F7, - 5137: 0x000000B1, - 5138: 0x0000221A, - 5139: 0x0000FF1C, - 5140: 0x0000FF1E, - 5141: 0x0000FF1D, - 5142: 0x00002266, - 5143: 0x00002267, - 5144: 0x00002260, - 5145: 0x0000221E, - 5146: 0x00002252, - 5147: 0x00002261, - 5148: 0x0000FE62, - 5149: 0x0000FE63, - 5150: 0x0000FE64, - 5151: 0x0000FE65, - 5152: 0x0000FE66, - 5153: 0x0000FF5E, - 5154: 0x00002229, - 5155: 0x0000222A, - 5156: 0x000022A5, - 5157: 0x00002220, - 5158: 0x0000221F, - 5159: 0x000022BF, - 5160: 0x000033D2, - 5161: 0x000033D1, - 5162: 0x0000222B, - 5163: 0x0000222E, - 5164: 0x00002235, - 5165: 0x00002234, - 5166: 0x00002640, - 5167: 0x00002642, - 5168: 0x00002295, - 5169: 0x00002299, - 5170: 0x00002191, - 5171: 0x00002193, - 5172: 0x00002190, - 5173: 0x00002192, - 5174: 0x00002196, - 5175: 0x00002197, - 5176: 0x00002199, - 5177: 0x00002198, - 5178: 0x00002225, - 5179: 0x00002223, - 5180: 0x0000FF0F, - 5181: 0x0000FF3C, - 5182: 0x00002215, - 5183: 0x0000FE68, - 5184: 0x0000FF04, - 5185: 0x0000FFE5, - 5186: 0x00003012, - 5187: 0x0000FFE0, - 5188: 0x0000FFE1, - 5189: 0x0000FF05, - 5190: 0x0000FF20, - 5191: 0x00002103, - 5192: 0x00002109, - 5193: 0x0000FE69, - 5194: 0x0000FE6A, - 5195: 0x0000FE6B, - 5196: 0x000033D5, - 5197: 0x0000339C, - 5198: 0x0000339D, - 5199: 0x0000339E, - 5200: 0x000033CE, - 5201: 0x000033A1, - 5202: 0x0000338E, - 5203: 0x0000338F, - 5204: 0x000033C4, - 5205: 0x000000B0, - 5206: 0x00005159, - 5207: 0x0000515B, - 5208: 0x0000515E, - 5209: 0x0000515D, - 5210: 0x00005161, - 5211: 0x00005163, - 5212: 0x000055E7, - 5213: 0x000074E9, - 5214: 0x00007CCE, - 5215: 0x00002581, - 5216: 0x00002582, - 5217: 0x00002583, - 5218: 0x00002584, - 5219: 0x00002585, - 5220: 0x00002586, - 5221: 0x00002587, - 5222: 0x00002588, - 5223: 0x0000258F, - 5224: 0x0000258E, - 5225: 0x0000258D, - 5226: 0x0000258C, - 5227: 0x0000258B, - 5228: 0x0000258A, - 5229: 0x00002589, - 5230: 0x0000253C, - 5231: 0x00002534, - 5232: 0x0000252C, - 5233: 0x00002524, - 5234: 0x0000251C, - 5235: 0x00002594, - 5236: 0x00002500, - 5237: 0x00002502, - 5238: 0x00002595, - 5239: 0x0000250C, - 5240: 0x00002510, - 5241: 0x00002514, - 5242: 0x00002518, - 5243: 0x0000256D, - 5244: 0x0000256E, - 5245: 0x00002570, - 5246: 0x0000256F, - 5247: 0x00002550, - 5248: 0x0000255E, - 5249: 0x0000256A, - 5250: 0x00002561, - 5251: 0x000025E2, - 5252: 0x000025E3, - 5253: 0x000025E5, - 5254: 0x000025E4, - 5255: 0x00002571, - 5256: 0x00002572, - 5257: 0x00002573, - 5258: 0x0000FF10, - 5259: 0x0000FF11, - 5260: 0x0000FF12, - 5261: 0x0000FF13, - 5262: 0x0000FF14, - 5263: 0x0000FF15, - 5264: 0x0000FF16, - 5265: 0x0000FF17, - 5266: 0x0000FF18, - 5267: 0x0000FF19, - 5268: 0x00002160, - 5269: 0x00002161, - 5270: 0x00002162, - 5271: 0x00002163, - 5272: 0x00002164, - 5273: 0x00002165, - 5274: 0x00002166, - 5275: 0x00002167, - 5276: 0x00002168, - 5277: 0x00002169, - 5278: 0x00003021, - 5279: 0x00003022, - 5280: 0x00003023, - 5281: 0x00003024, - 5282: 0x00003025, - 5283: 0x00003026, - 5284: 0x00003027, - 5285: 0x00003028, - 5286: 0x00003029, - 5287: 0x00005341, - 5288: 0x00005344, - 5289: 0x00005345, - 5290: 0x0000FF21, - 5291: 0x0000FF22, - 5292: 0x0000FF23, - 5293: 0x0000FF24, - 5294: 0x0000FF25, - 5295: 0x0000FF26, - 5296: 0x0000FF27, - 5297: 0x0000FF28, - 5298: 0x0000FF29, - 5299: 0x0000FF2A, - 5300: 0x0000FF2B, - 5301: 0x0000FF2C, - 5302: 0x0000FF2D, - 5303: 0x0000FF2E, - 5304: 0x0000FF2F, - 5305: 0x0000FF30, - 5306: 0x0000FF31, - 5307: 0x0000FF32, - 5308: 0x0000FF33, - 5309: 0x0000FF34, - 5310: 0x0000FF35, - 5311: 0x0000FF36, - 5312: 0x0000FF37, - 5313: 0x0000FF38, - 5314: 0x0000FF39, - 5315: 0x0000FF3A, - 5316: 0x0000FF41, - 5317: 0x0000FF42, - 5318: 0x0000FF43, - 5319: 0x0000FF44, - 5320: 0x0000FF45, - 5321: 0x0000FF46, - 5322: 0x0000FF47, - 5323: 0x0000FF48, - 5324: 0x0000FF49, - 5325: 0x0000FF4A, - 5326: 0x0000FF4B, - 5327: 0x0000FF4C, - 5328: 0x0000FF4D, - 5329: 0x0000FF4E, - 5330: 0x0000FF4F, - 5331: 0x0000FF50, - 5332: 0x0000FF51, - 5333: 0x0000FF52, - 5334: 0x0000FF53, - 5335: 0x0000FF54, - 5336: 0x0000FF55, - 5337: 0x0000FF56, - 5338: 0x0000FF57, - 5339: 0x0000FF58, - 5340: 0x0000FF59, - 5341: 0x0000FF5A, - 5342: 0x00000391, - 5343: 0x00000392, - 5344: 0x00000393, - 5345: 0x00000394, - 5346: 0x00000395, - 5347: 0x00000396, - 5348: 0x00000397, - 5349: 0x00000398, - 5350: 0x00000399, - 5351: 0x0000039A, - 5352: 0x0000039B, - 5353: 0x0000039C, - 5354: 0x0000039D, - 5355: 0x0000039E, - 5356: 0x0000039F, - 5357: 0x000003A0, - 5358: 0x000003A1, - 5359: 0x000003A3, - 5360: 0x000003A4, - 5361: 0x000003A5, - 5362: 0x000003A6, - 5363: 0x000003A7, - 5364: 0x000003A8, - 5365: 0x000003A9, - 5366: 0x000003B1, - 5367: 0x000003B2, - 5368: 0x000003B3, - 5369: 0x000003B4, - 5370: 0x000003B5, - 5371: 0x000003B6, - 5372: 0x000003B7, - 5373: 0x000003B8, - 5374: 0x000003B9, - 5375: 0x000003BA, - 5376: 0x000003BB, - 5377: 0x000003BC, - 5378: 0x000003BD, - 5379: 0x000003BE, - 5380: 0x000003BF, - 5381: 0x000003C0, - 5382: 0x000003C1, - 5383: 0x000003C3, - 5384: 0x000003C4, - 5385: 0x000003C5, - 5386: 0x000003C6, - 5387: 0x000003C7, - 5388: 0x000003C8, - 5389: 0x000003C9, - 5390: 0x00003105, - 5391: 0x00003106, - 5392: 0x00003107, - 5393: 0x00003108, - 5394: 0x00003109, - 5395: 0x0000310A, - 5396: 0x0000310B, - 5397: 0x0000310C, - 5398: 0x0000310D, - 5399: 0x0000310E, - 5400: 0x0000310F, - 5401: 0x00003110, - 5402: 0x00003111, - 5403: 0x00003112, - 5404: 0x00003113, - 5405: 0x00003114, - 5406: 0x00003115, - 5407: 0x00003116, - 5408: 0x00003117, - 5409: 0x00003118, - 5410: 0x00003119, - 5411: 0x0000311A, - 5412: 0x0000311B, - 5413: 0x0000311C, - 5414: 0x0000311D, - 5415: 0x0000311E, - 5416: 0x0000311F, - 5417: 0x00003120, - 5418: 0x00003121, - 5419: 0x00003122, - 5420: 0x00003123, - 5421: 0x00003124, - 5422: 0x00003125, - 5423: 0x00003126, - 5424: 0x00003127, - 5425: 0x00003128, - 5426: 0x00003129, - 5427: 0x000002D9, - 5428: 0x000002C9, - 5429: 0x000002CA, - 5430: 0x000002C7, - 5431: 0x000002CB, - 5432: 0x00002400, - 5433: 0x00002401, - 5434: 0x00002402, - 5435: 0x00002403, - 5436: 0x00002404, - 5437: 0x00002405, - 5438: 0x00002406, - 5439: 0x00002407, - 5440: 0x00002408, - 5441: 0x00002409, - 5442: 0x0000240A, - 5443: 0x0000240B, - 5444: 0x0000240C, - 5445: 0x0000240D, - 5446: 0x0000240E, - 5447: 0x0000240F, - 5448: 0x00002410, - 5449: 0x00002411, - 5450: 0x00002412, - 5451: 0x00002413, - 5452: 0x00002414, - 5453: 0x00002415, - 5454: 0x00002416, - 5455: 0x00002417, - 5456: 0x00002418, - 5457: 0x00002419, - 5458: 0x0000241A, - 5459: 0x0000241B, - 5460: 0x0000241C, - 5461: 0x0000241D, - 5462: 0x0000241E, - 5463: 0x0000241F, - 5464: 0x00002421, - 5465: 0x000020AC, - 5495: 0x00004E00, - 5496: 0x00004E59, - 5497: 0x00004E01, - 5498: 0x00004E03, - 5499: 0x00004E43, - 5500: 0x00004E5D, - 5501: 0x00004E86, - 5502: 0x00004E8C, - 5503: 0x00004EBA, - 5504: 0x0000513F, - 5505: 0x00005165, - 5506: 0x0000516B, - 5507: 0x000051E0, - 5508: 0x00005200, - 5509: 0x00005201, - 5510: 0x0000529B, - 5511: 0x00005315, - 5512: 0x00005341, - 5513: 0x0000535C, - 5514: 0x000053C8, - 5515: 0x00004E09, - 5516: 0x00004E0B, - 5517: 0x00004E08, - 5518: 0x00004E0A, - 5519: 0x00004E2B, - 5520: 0x00004E38, - 5521: 0x000051E1, - 5522: 0x00004E45, - 5523: 0x00004E48, - 5524: 0x00004E5F, - 5525: 0x00004E5E, - 5526: 0x00004E8E, - 5527: 0x00004EA1, - 5528: 0x00005140, - 5529: 0x00005203, - 5530: 0x000052FA, - 5531: 0x00005343, - 5532: 0x000053C9, - 5533: 0x000053E3, - 5534: 0x0000571F, - 5535: 0x000058EB, - 5536: 0x00005915, - 5537: 0x00005927, - 5538: 0x00005973, - 5539: 0x00005B50, - 5540: 0x00005B51, - 5541: 0x00005B53, - 5542: 0x00005BF8, - 5543: 0x00005C0F, - 5544: 0x00005C22, - 5545: 0x00005C38, - 5546: 0x00005C71, - 5547: 0x00005DDD, - 5548: 0x00005DE5, - 5549: 0x00005DF1, - 5550: 0x00005DF2, - 5551: 0x00005DF3, - 5552: 0x00005DFE, - 5553: 0x00005E72, - 5554: 0x00005EFE, - 5555: 0x00005F0B, - 5556: 0x00005F13, - 5557: 0x0000624D, - 5558: 0x00004E11, - 5559: 0x00004E10, - 5560: 0x00004E0D, - 5561: 0x00004E2D, - 5562: 0x00004E30, - 5563: 0x00004E39, - 5564: 0x00004E4B, - 5565: 0x00005C39, - 5566: 0x00004E88, - 5567: 0x00004E91, - 5568: 0x00004E95, - 5569: 0x00004E92, - 5570: 0x00004E94, - 5571: 0x00004EA2, - 5572: 0x00004EC1, - 5573: 0x00004EC0, - 5574: 0x00004EC3, - 5575: 0x00004EC6, - 5576: 0x00004EC7, - 5577: 0x00004ECD, - 5578: 0x00004ECA, - 5579: 0x00004ECB, - 5580: 0x00004EC4, - 5581: 0x00005143, - 5582: 0x00005141, - 5583: 0x00005167, - 5584: 0x0000516D, - 5585: 0x0000516E, - 5586: 0x0000516C, - 5587: 0x00005197, - 5588: 0x000051F6, - 5589: 0x00005206, - 5590: 0x00005207, - 5591: 0x00005208, - 5592: 0x000052FB, - 5593: 0x000052FE, - 5594: 0x000052FF, - 5595: 0x00005316, - 5596: 0x00005339, - 5597: 0x00005348, - 5598: 0x00005347, - 5599: 0x00005345, - 5600: 0x0000535E, - 5601: 0x00005384, - 5602: 0x000053CB, - 5603: 0x000053CA, - 5604: 0x000053CD, - 5605: 0x000058EC, - 5606: 0x00005929, - 5607: 0x0000592B, - 5608: 0x0000592A, - 5609: 0x0000592D, - 5610: 0x00005B54, - 5611: 0x00005C11, - 5612: 0x00005C24, - 5613: 0x00005C3A, - 5614: 0x00005C6F, - 5615: 0x00005DF4, - 5616: 0x00005E7B, - 5617: 0x00005EFF, - 5618: 0x00005F14, - 5619: 0x00005F15, - 5620: 0x00005FC3, - 5621: 0x00006208, - 5622: 0x00006236, - 5623: 0x0000624B, - 5624: 0x0000624E, - 5625: 0x0000652F, - 5626: 0x00006587, - 5627: 0x00006597, - 5628: 0x000065A4, - 5629: 0x000065B9, - 5630: 0x000065E5, - 5631: 0x000066F0, - 5632: 0x00006708, - 5633: 0x00006728, - 5634: 0x00006B20, - 5635: 0x00006B62, - 5636: 0x00006B79, - 5637: 0x00006BCB, - 5638: 0x00006BD4, - 5639: 0x00006BDB, - 5640: 0x00006C0F, - 5641: 0x00006C34, - 5642: 0x0000706B, - 5643: 0x0000722A, - 5644: 0x00007236, - 5645: 0x0000723B, - 5646: 0x00007247, - 5647: 0x00007259, - 5648: 0x0000725B, - 5649: 0x000072AC, - 5650: 0x0000738B, - 5651: 0x00004E19, - 5652: 0x00004E16, - 5653: 0x00004E15, - 5654: 0x00004E14, - 5655: 0x00004E18, - 5656: 0x00004E3B, - 5657: 0x00004E4D, - 5658: 0x00004E4F, - 5659: 0x00004E4E, - 5660: 0x00004EE5, - 5661: 0x00004ED8, - 5662: 0x00004ED4, - 5663: 0x00004ED5, - 5664: 0x00004ED6, - 5665: 0x00004ED7, - 5666: 0x00004EE3, - 5667: 0x00004EE4, - 5668: 0x00004ED9, - 5669: 0x00004EDE, - 5670: 0x00005145, - 5671: 0x00005144, - 5672: 0x00005189, - 5673: 0x0000518A, - 5674: 0x000051AC, - 5675: 0x000051F9, - 5676: 0x000051FA, - 5677: 0x000051F8, - 5678: 0x0000520A, - 5679: 0x000052A0, - 5680: 0x0000529F, - 5681: 0x00005305, - 5682: 0x00005306, - 5683: 0x00005317, - 5684: 0x0000531D, - 5685: 0x00004EDF, - 5686: 0x0000534A, - 5687: 0x00005349, - 5688: 0x00005361, - 5689: 0x00005360, - 5690: 0x0000536F, - 5691: 0x0000536E, - 5692: 0x000053BB, - 5693: 0x000053EF, - 5694: 0x000053E4, - 5695: 0x000053F3, - 5696: 0x000053EC, - 5697: 0x000053EE, - 5698: 0x000053E9, - 5699: 0x000053E8, - 5700: 0x000053FC, - 5701: 0x000053F8, - 5702: 0x000053F5, - 5703: 0x000053EB, - 5704: 0x000053E6, - 5705: 0x000053EA, - 5706: 0x000053F2, - 5707: 0x000053F1, - 5708: 0x000053F0, - 5709: 0x000053E5, - 5710: 0x000053ED, - 5711: 0x000053FB, - 5712: 0x000056DB, - 5713: 0x000056DA, - 5714: 0x00005916, - 5715: 0x0000592E, - 5716: 0x00005931, - 5717: 0x00005974, - 5718: 0x00005976, - 5719: 0x00005B55, - 5720: 0x00005B83, - 5721: 0x00005C3C, - 5722: 0x00005DE8, - 5723: 0x00005DE7, - 5724: 0x00005DE6, - 5725: 0x00005E02, - 5726: 0x00005E03, - 5727: 0x00005E73, - 5728: 0x00005E7C, - 5729: 0x00005F01, - 5730: 0x00005F18, - 5731: 0x00005F17, - 5732: 0x00005FC5, - 5733: 0x0000620A, - 5734: 0x00006253, - 5735: 0x00006254, - 5736: 0x00006252, - 5737: 0x00006251, - 5738: 0x000065A5, - 5739: 0x000065E6, - 5740: 0x0000672E, - 5741: 0x0000672C, - 5742: 0x0000672A, - 5743: 0x0000672B, - 5744: 0x0000672D, - 5745: 0x00006B63, - 5746: 0x00006BCD, - 5747: 0x00006C11, - 5748: 0x00006C10, - 5749: 0x00006C38, - 5750: 0x00006C41, - 5751: 0x00006C40, - 5752: 0x00006C3E, - 5753: 0x000072AF, - 5754: 0x00007384, - 5755: 0x00007389, - 5756: 0x000074DC, - 5757: 0x000074E6, - 5758: 0x00007518, - 5759: 0x0000751F, - 5760: 0x00007528, - 5761: 0x00007529, - 5762: 0x00007530, - 5763: 0x00007531, - 5764: 0x00007532, - 5765: 0x00007533, - 5766: 0x0000758B, - 5767: 0x0000767D, - 5768: 0x000076AE, - 5769: 0x000076BF, - 5770: 0x000076EE, - 5771: 0x000077DB, - 5772: 0x000077E2, - 5773: 0x000077F3, - 5774: 0x0000793A, - 5775: 0x000079BE, - 5776: 0x00007A74, - 5777: 0x00007ACB, - 5778: 0x00004E1E, - 5779: 0x00004E1F, - 5780: 0x00004E52, - 5781: 0x00004E53, - 5782: 0x00004E69, - 5783: 0x00004E99, - 5784: 0x00004EA4, - 5785: 0x00004EA6, - 5786: 0x00004EA5, - 5787: 0x00004EFF, - 5788: 0x00004F09, - 5789: 0x00004F19, - 5790: 0x00004F0A, - 5791: 0x00004F15, - 5792: 0x00004F0D, - 5793: 0x00004F10, - 5794: 0x00004F11, - 5795: 0x00004F0F, - 5796: 0x00004EF2, - 5797: 0x00004EF6, - 5798: 0x00004EFB, - 5799: 0x00004EF0, - 5800: 0x00004EF3, - 5801: 0x00004EFD, - 5802: 0x00004F01, - 5803: 0x00004F0B, - 5804: 0x00005149, - 5805: 0x00005147, - 5806: 0x00005146, - 5807: 0x00005148, - 5808: 0x00005168, - 5809: 0x00005171, - 5810: 0x0000518D, - 5811: 0x000051B0, - 5812: 0x00005217, - 5813: 0x00005211, - 5814: 0x00005212, - 5815: 0x0000520E, - 5816: 0x00005216, - 5817: 0x000052A3, - 5818: 0x00005308, - 5819: 0x00005321, - 5820: 0x00005320, - 5821: 0x00005370, - 5822: 0x00005371, - 5823: 0x00005409, - 5824: 0x0000540F, - 5825: 0x0000540C, - 5826: 0x0000540A, - 5827: 0x00005410, - 5828: 0x00005401, - 5829: 0x0000540B, - 5830: 0x00005404, - 5831: 0x00005411, - 5832: 0x0000540D, - 5833: 0x00005408, - 5834: 0x00005403, - 5835: 0x0000540E, - 5836: 0x00005406, - 5837: 0x00005412, - 5838: 0x000056E0, - 5839: 0x000056DE, - 5840: 0x000056DD, - 5841: 0x00005733, - 5842: 0x00005730, - 5843: 0x00005728, - 5844: 0x0000572D, - 5845: 0x0000572C, - 5846: 0x0000572F, - 5847: 0x00005729, - 5848: 0x00005919, - 5849: 0x0000591A, - 5850: 0x00005937, - 5851: 0x00005938, - 5852: 0x00005984, - 5853: 0x00005978, - 5854: 0x00005983, - 5855: 0x0000597D, - 5856: 0x00005979, - 5857: 0x00005982, - 5858: 0x00005981, - 5859: 0x00005B57, - 5860: 0x00005B58, - 5861: 0x00005B87, - 5862: 0x00005B88, - 5863: 0x00005B85, - 5864: 0x00005B89, - 5865: 0x00005BFA, - 5866: 0x00005C16, - 5867: 0x00005C79, - 5868: 0x00005DDE, - 5869: 0x00005E06, - 5870: 0x00005E76, - 5871: 0x00005E74, - 5872: 0x00005F0F, - 5873: 0x00005F1B, - 5874: 0x00005FD9, - 5875: 0x00005FD6, - 5876: 0x0000620E, - 5877: 0x0000620C, - 5878: 0x0000620D, - 5879: 0x00006210, - 5880: 0x00006263, - 5881: 0x0000625B, - 5882: 0x00006258, - 5883: 0x00006536, - 5884: 0x000065E9, - 5885: 0x000065E8, - 5886: 0x000065EC, - 5887: 0x000065ED, - 5888: 0x000066F2, - 5889: 0x000066F3, - 5890: 0x00006709, - 5891: 0x0000673D, - 5892: 0x00006734, - 5893: 0x00006731, - 5894: 0x00006735, - 5895: 0x00006B21, - 5896: 0x00006B64, - 5897: 0x00006B7B, - 5898: 0x00006C16, - 5899: 0x00006C5D, - 5900: 0x00006C57, - 5901: 0x00006C59, - 5902: 0x00006C5F, - 5903: 0x00006C60, - 5904: 0x00006C50, - 5905: 0x00006C55, - 5906: 0x00006C61, - 5907: 0x00006C5B, - 5908: 0x00006C4D, - 5909: 0x00006C4E, - 5910: 0x00007070, - 5911: 0x0000725F, - 5912: 0x0000725D, - 5913: 0x0000767E, - 5914: 0x00007AF9, - 5915: 0x00007C73, - 5916: 0x00007CF8, - 5917: 0x00007F36, - 5918: 0x00007F8A, - 5919: 0x00007FBD, - 5920: 0x00008001, - 5921: 0x00008003, - 5922: 0x0000800C, - 5923: 0x00008012, - 5924: 0x00008033, - 5925: 0x0000807F, - 5926: 0x00008089, - 5927: 0x0000808B, - 5928: 0x0000808C, - 5929: 0x000081E3, - 5930: 0x000081EA, - 5931: 0x000081F3, - 5932: 0x000081FC, - 5933: 0x0000820C, - 5934: 0x0000821B, - 5935: 0x0000821F, - 5936: 0x0000826E, - 5937: 0x00008272, - 5938: 0x0000827E, - 5939: 0x0000866B, - 5940: 0x00008840, - 5941: 0x0000884C, - 5942: 0x00008863, - 5943: 0x0000897F, - 5944: 0x00009621, - 5945: 0x00004E32, - 5946: 0x00004EA8, - 5947: 0x00004F4D, - 5948: 0x00004F4F, - 5949: 0x00004F47, - 5950: 0x00004F57, - 5951: 0x00004F5E, - 5952: 0x00004F34, - 5953: 0x00004F5B, - 5954: 0x00004F55, - 5955: 0x00004F30, - 5956: 0x00004F50, - 5957: 0x00004F51, - 5958: 0x00004F3D, - 5959: 0x00004F3A, - 5960: 0x00004F38, - 5961: 0x00004F43, - 5962: 0x00004F54, - 5963: 0x00004F3C, - 5964: 0x00004F46, - 5965: 0x00004F63, - 5966: 0x00004F5C, - 5967: 0x00004F60, - 5968: 0x00004F2F, - 5969: 0x00004F4E, - 5970: 0x00004F36, - 5971: 0x00004F59, - 5972: 0x00004F5D, - 5973: 0x00004F48, - 5974: 0x00004F5A, - 5975: 0x0000514C, - 5976: 0x0000514B, - 5977: 0x0000514D, - 5978: 0x00005175, - 5979: 0x000051B6, - 5980: 0x000051B7, - 5981: 0x00005225, - 5982: 0x00005224, - 5983: 0x00005229, - 5984: 0x0000522A, - 5985: 0x00005228, - 5986: 0x000052AB, - 5987: 0x000052A9, - 5988: 0x000052AA, - 5989: 0x000052AC, - 5990: 0x00005323, - 5991: 0x00005373, - 5992: 0x00005375, - 5993: 0x0000541D, - 5994: 0x0000542D, - 5995: 0x0000541E, - 5996: 0x0000543E, - 5997: 0x00005426, - 5998: 0x0000544E, - 5999: 0x00005427, - 6000: 0x00005446, - 6001: 0x00005443, - 6002: 0x00005433, - 6003: 0x00005448, - 6004: 0x00005442, - 6005: 0x0000541B, - 6006: 0x00005429, - 6007: 0x0000544A, - 6008: 0x00005439, - 6009: 0x0000543B, - 6010: 0x00005438, - 6011: 0x0000542E, - 6012: 0x00005435, - 6013: 0x00005436, - 6014: 0x00005420, - 6015: 0x0000543C, - 6016: 0x00005440, - 6017: 0x00005431, - 6018: 0x0000542B, - 6019: 0x0000541F, - 6020: 0x0000542C, - 6021: 0x000056EA, - 6022: 0x000056F0, - 6023: 0x000056E4, - 6024: 0x000056EB, - 6025: 0x0000574A, - 6026: 0x00005751, - 6027: 0x00005740, - 6028: 0x0000574D, - 6029: 0x00005747, - 6030: 0x0000574E, - 6031: 0x0000573E, - 6032: 0x00005750, - 6033: 0x0000574F, - 6034: 0x0000573B, - 6035: 0x000058EF, - 6036: 0x0000593E, - 6037: 0x0000599D, - 6038: 0x00005992, - 6039: 0x000059A8, - 6040: 0x0000599E, - 6041: 0x000059A3, - 6042: 0x00005999, - 6043: 0x00005996, - 6044: 0x0000598D, - 6045: 0x000059A4, - 6046: 0x00005993, - 6047: 0x0000598A, - 6048: 0x000059A5, - 6049: 0x00005B5D, - 6050: 0x00005B5C, - 6051: 0x00005B5A, - 6052: 0x00005B5B, - 6053: 0x00005B8C, - 6054: 0x00005B8B, - 6055: 0x00005B8F, - 6056: 0x00005C2C, - 6057: 0x00005C40, - 6058: 0x00005C41, - 6059: 0x00005C3F, - 6060: 0x00005C3E, - 6061: 0x00005C90, - 6062: 0x00005C91, - 6063: 0x00005C94, - 6064: 0x00005C8C, - 6065: 0x00005DEB, - 6066: 0x00005E0C, - 6067: 0x00005E8F, - 6068: 0x00005E87, - 6069: 0x00005E8A, - 6070: 0x00005EF7, - 6071: 0x00005F04, - 6072: 0x00005F1F, - 6073: 0x00005F64, - 6074: 0x00005F62, - 6075: 0x00005F77, - 6076: 0x00005F79, - 6077: 0x00005FD8, - 6078: 0x00005FCC, - 6079: 0x00005FD7, - 6080: 0x00005FCD, - 6081: 0x00005FF1, - 6082: 0x00005FEB, - 6083: 0x00005FF8, - 6084: 0x00005FEA, - 6085: 0x00006212, - 6086: 0x00006211, - 6087: 0x00006284, - 6088: 0x00006297, - 6089: 0x00006296, - 6090: 0x00006280, - 6091: 0x00006276, - 6092: 0x00006289, - 6093: 0x0000626D, - 6094: 0x0000628A, - 6095: 0x0000627C, - 6096: 0x0000627E, - 6097: 0x00006279, - 6098: 0x00006273, - 6099: 0x00006292, - 6100: 0x0000626F, - 6101: 0x00006298, - 6102: 0x0000626E, - 6103: 0x00006295, - 6104: 0x00006293, - 6105: 0x00006291, - 6106: 0x00006286, - 6107: 0x00006539, - 6108: 0x0000653B, - 6109: 0x00006538, - 6110: 0x000065F1, - 6111: 0x000066F4, - 6112: 0x0000675F, - 6113: 0x0000674E, - 6114: 0x0000674F, - 6115: 0x00006750, - 6116: 0x00006751, - 6117: 0x0000675C, - 6118: 0x00006756, - 6119: 0x0000675E, - 6120: 0x00006749, - 6121: 0x00006746, - 6122: 0x00006760, - 6123: 0x00006753, - 6124: 0x00006757, - 6125: 0x00006B65, - 6126: 0x00006BCF, - 6127: 0x00006C42, - 6128: 0x00006C5E, - 6129: 0x00006C99, - 6130: 0x00006C81, - 6131: 0x00006C88, - 6132: 0x00006C89, - 6133: 0x00006C85, - 6134: 0x00006C9B, - 6135: 0x00006C6A, - 6136: 0x00006C7A, - 6137: 0x00006C90, - 6138: 0x00006C70, - 6139: 0x00006C8C, - 6140: 0x00006C68, - 6141: 0x00006C96, - 6142: 0x00006C92, - 6143: 0x00006C7D, - 6144: 0x00006C83, - 6145: 0x00006C72, - 6146: 0x00006C7E, - 6147: 0x00006C74, - 6148: 0x00006C86, - 6149: 0x00006C76, - 6150: 0x00006C8D, - 6151: 0x00006C94, - 6152: 0x00006C98, - 6153: 0x00006C82, - 6154: 0x00007076, - 6155: 0x0000707C, - 6156: 0x0000707D, - 6157: 0x00007078, - 6158: 0x00007262, - 6159: 0x00007261, - 6160: 0x00007260, - 6161: 0x000072C4, - 6162: 0x000072C2, - 6163: 0x00007396, - 6164: 0x0000752C, - 6165: 0x0000752B, - 6166: 0x00007537, - 6167: 0x00007538, - 6168: 0x00007682, - 6169: 0x000076EF, - 6170: 0x000077E3, - 6171: 0x000079C1, - 6172: 0x000079C0, - 6173: 0x000079BF, - 6174: 0x00007A76, - 6175: 0x00007CFB, - 6176: 0x00007F55, - 6177: 0x00008096, - 6178: 0x00008093, - 6179: 0x0000809D, - 6180: 0x00008098, - 6181: 0x0000809B, - 6182: 0x0000809A, - 6183: 0x000080B2, - 6184: 0x0000826F, - 6185: 0x00008292, - 6186: 0x0000828B, - 6187: 0x0000828D, - 6188: 0x0000898B, - 6189: 0x000089D2, - 6190: 0x00008A00, - 6191: 0x00008C37, - 6192: 0x00008C46, - 6193: 0x00008C55, - 6194: 0x00008C9D, - 6195: 0x00008D64, - 6196: 0x00008D70, - 6197: 0x00008DB3, - 6198: 0x00008EAB, - 6199: 0x00008ECA, - 6200: 0x00008F9B, - 6201: 0x00008FB0, - 6202: 0x00008FC2, - 6203: 0x00008FC6, - 6204: 0x00008FC5, - 6205: 0x00008FC4, - 6206: 0x00005DE1, - 6207: 0x00009091, - 6208: 0x000090A2, - 6209: 0x000090AA, - 6210: 0x000090A6, - 6211: 0x000090A3, - 6212: 0x00009149, - 6213: 0x000091C6, - 6214: 0x000091CC, - 6215: 0x00009632, - 6216: 0x0000962E, - 6217: 0x00009631, - 6218: 0x0000962A, - 6219: 0x0000962C, - 6220: 0x00004E26, - 6221: 0x00004E56, - 6222: 0x00004E73, - 6223: 0x00004E8B, - 6224: 0x00004E9B, - 6225: 0x00004E9E, - 6226: 0x00004EAB, - 6227: 0x00004EAC, - 6228: 0x00004F6F, - 6229: 0x00004F9D, - 6230: 0x00004F8D, - 6231: 0x00004F73, - 6232: 0x00004F7F, - 6233: 0x00004F6C, - 6234: 0x00004F9B, - 6235: 0x00004F8B, - 6236: 0x00004F86, - 6237: 0x00004F83, - 6238: 0x00004F70, - 6239: 0x00004F75, - 6240: 0x00004F88, - 6241: 0x00004F69, - 6242: 0x00004F7B, - 6243: 0x00004F96, - 6244: 0x00004F7E, - 6245: 0x00004F8F, - 6246: 0x00004F91, - 6247: 0x00004F7A, - 6248: 0x00005154, - 6249: 0x00005152, - 6250: 0x00005155, - 6251: 0x00005169, - 6252: 0x00005177, - 6253: 0x00005176, - 6254: 0x00005178, - 6255: 0x000051BD, - 6256: 0x000051FD, - 6257: 0x0000523B, - 6258: 0x00005238, - 6259: 0x00005237, - 6260: 0x0000523A, - 6261: 0x00005230, - 6262: 0x0000522E, - 6263: 0x00005236, - 6264: 0x00005241, - 6265: 0x000052BE, - 6266: 0x000052BB, - 6267: 0x00005352, - 6268: 0x00005354, - 6269: 0x00005353, - 6270: 0x00005351, - 6271: 0x00005366, - 6272: 0x00005377, - 6273: 0x00005378, - 6274: 0x00005379, - 6275: 0x000053D6, - 6276: 0x000053D4, - 6277: 0x000053D7, - 6278: 0x00005473, - 6279: 0x00005475, - 6280: 0x00005496, - 6281: 0x00005478, - 6282: 0x00005495, - 6283: 0x00005480, - 6284: 0x0000547B, - 6285: 0x00005477, - 6286: 0x00005484, - 6287: 0x00005492, - 6288: 0x00005486, - 6289: 0x0000547C, - 6290: 0x00005490, - 6291: 0x00005471, - 6292: 0x00005476, - 6293: 0x0000548C, - 6294: 0x0000549A, - 6295: 0x00005462, - 6296: 0x00005468, - 6297: 0x0000548B, - 6298: 0x0000547D, - 6299: 0x0000548E, - 6300: 0x000056FA, - 6301: 0x00005783, - 6302: 0x00005777, - 6303: 0x0000576A, - 6304: 0x00005769, - 6305: 0x00005761, - 6306: 0x00005766, - 6307: 0x00005764, - 6308: 0x0000577C, - 6309: 0x0000591C, - 6310: 0x00005949, - 6311: 0x00005947, - 6312: 0x00005948, - 6313: 0x00005944, - 6314: 0x00005954, - 6315: 0x000059BE, - 6316: 0x000059BB, - 6317: 0x000059D4, - 6318: 0x000059B9, - 6319: 0x000059AE, - 6320: 0x000059D1, - 6321: 0x000059C6, - 6322: 0x000059D0, - 6323: 0x000059CD, - 6324: 0x000059CB, - 6325: 0x000059D3, - 6326: 0x000059CA, - 6327: 0x000059AF, - 6328: 0x000059B3, - 6329: 0x000059D2, - 6330: 0x000059C5, - 6331: 0x00005B5F, - 6332: 0x00005B64, - 6333: 0x00005B63, - 6334: 0x00005B97, - 6335: 0x00005B9A, - 6336: 0x00005B98, - 6337: 0x00005B9C, - 6338: 0x00005B99, - 6339: 0x00005B9B, - 6340: 0x00005C1A, - 6341: 0x00005C48, - 6342: 0x00005C45, - 6343: 0x00005C46, - 6344: 0x00005CB7, - 6345: 0x00005CA1, - 6346: 0x00005CB8, - 6347: 0x00005CA9, - 6348: 0x00005CAB, - 6349: 0x00005CB1, - 6350: 0x00005CB3, - 6351: 0x00005E18, - 6352: 0x00005E1A, - 6353: 0x00005E16, - 6354: 0x00005E15, - 6355: 0x00005E1B, - 6356: 0x00005E11, - 6357: 0x00005E78, - 6358: 0x00005E9A, - 6359: 0x00005E97, - 6360: 0x00005E9C, - 6361: 0x00005E95, - 6362: 0x00005E96, - 6363: 0x00005EF6, - 6364: 0x00005F26, - 6365: 0x00005F27, - 6366: 0x00005F29, - 6367: 0x00005F80, - 6368: 0x00005F81, - 6369: 0x00005F7F, - 6370: 0x00005F7C, - 6371: 0x00005FDD, - 6372: 0x00005FE0, - 6373: 0x00005FFD, - 6374: 0x00005FF5, - 6375: 0x00005FFF, - 6376: 0x0000600F, - 6377: 0x00006014, - 6378: 0x0000602F, - 6379: 0x00006035, - 6380: 0x00006016, - 6381: 0x0000602A, - 6382: 0x00006015, - 6383: 0x00006021, - 6384: 0x00006027, - 6385: 0x00006029, - 6386: 0x0000602B, - 6387: 0x0000601B, - 6388: 0x00006216, - 6389: 0x00006215, - 6390: 0x0000623F, - 6391: 0x0000623E, - 6392: 0x00006240, - 6393: 0x0000627F, - 6394: 0x000062C9, - 6395: 0x000062CC, - 6396: 0x000062C4, - 6397: 0x000062BF, - 6398: 0x000062C2, - 6399: 0x000062B9, - 6400: 0x000062D2, - 6401: 0x000062DB, - 6402: 0x000062AB, - 6403: 0x000062D3, - 6404: 0x000062D4, - 6405: 0x000062CB, - 6406: 0x000062C8, - 6407: 0x000062A8, - 6408: 0x000062BD, - 6409: 0x000062BC, - 6410: 0x000062D0, - 6411: 0x000062D9, - 6412: 0x000062C7, - 6413: 0x000062CD, - 6414: 0x000062B5, - 6415: 0x000062DA, - 6416: 0x000062B1, - 6417: 0x000062D8, - 6418: 0x000062D6, - 6419: 0x000062D7, - 6420: 0x000062C6, - 6421: 0x000062AC, - 6422: 0x000062CE, - 6423: 0x0000653E, - 6424: 0x000065A7, - 6425: 0x000065BC, - 6426: 0x000065FA, - 6427: 0x00006614, - 6428: 0x00006613, - 6429: 0x0000660C, - 6430: 0x00006606, - 6431: 0x00006602, - 6432: 0x0000660E, - 6433: 0x00006600, - 6434: 0x0000660F, - 6435: 0x00006615, - 6436: 0x0000660A, - 6437: 0x00006607, - 6438: 0x0000670D, - 6439: 0x0000670B, - 6440: 0x0000676D, - 6441: 0x0000678B, - 6442: 0x00006795, - 6443: 0x00006771, - 6444: 0x0000679C, - 6445: 0x00006773, - 6446: 0x00006777, - 6447: 0x00006787, - 6448: 0x0000679D, - 6449: 0x00006797, - 6450: 0x0000676F, - 6451: 0x00006770, - 6452: 0x0000677F, - 6453: 0x00006789, - 6454: 0x0000677E, - 6455: 0x00006790, - 6456: 0x00006775, - 6457: 0x0000679A, - 6458: 0x00006793, - 6459: 0x0000677C, - 6460: 0x0000676A, - 6461: 0x00006772, - 6462: 0x00006B23, - 6463: 0x00006B66, - 6464: 0x00006B67, - 6465: 0x00006B7F, - 6466: 0x00006C13, - 6467: 0x00006C1B, - 6468: 0x00006CE3, - 6469: 0x00006CE8, - 6470: 0x00006CF3, - 6471: 0x00006CB1, - 6472: 0x00006CCC, - 6473: 0x00006CE5, - 6474: 0x00006CB3, - 6475: 0x00006CBD, - 6476: 0x00006CBE, - 6477: 0x00006CBC, - 6478: 0x00006CE2, - 6479: 0x00006CAB, - 6480: 0x00006CD5, - 6481: 0x00006CD3, - 6482: 0x00006CB8, - 6483: 0x00006CC4, - 6484: 0x00006CB9, - 6485: 0x00006CC1, - 6486: 0x00006CAE, - 6487: 0x00006CD7, - 6488: 0x00006CC5, - 6489: 0x00006CF1, - 6490: 0x00006CBF, - 6491: 0x00006CBB, - 6492: 0x00006CE1, - 6493: 0x00006CDB, - 6494: 0x00006CCA, - 6495: 0x00006CAC, - 6496: 0x00006CEF, - 6497: 0x00006CDC, - 6498: 0x00006CD6, - 6499: 0x00006CE0, - 6500: 0x00007095, - 6501: 0x0000708E, - 6502: 0x00007092, - 6503: 0x0000708A, - 6504: 0x00007099, - 6505: 0x0000722C, - 6506: 0x0000722D, - 6507: 0x00007238, - 6508: 0x00007248, - 6509: 0x00007267, - 6510: 0x00007269, - 6511: 0x000072C0, - 6512: 0x000072CE, - 6513: 0x000072D9, - 6514: 0x000072D7, - 6515: 0x000072D0, - 6516: 0x000073A9, - 6517: 0x000073A8, - 6518: 0x0000739F, - 6519: 0x000073AB, - 6520: 0x000073A5, - 6521: 0x0000753D, - 6522: 0x0000759D, - 6523: 0x00007599, - 6524: 0x0000759A, - 6525: 0x00007684, - 6526: 0x000076C2, - 6527: 0x000076F2, - 6528: 0x000076F4, - 6529: 0x000077E5, - 6530: 0x000077FD, - 6531: 0x0000793E, - 6532: 0x00007940, - 6533: 0x00007941, - 6534: 0x000079C9, - 6535: 0x000079C8, - 6536: 0x00007A7A, - 6537: 0x00007A79, - 6538: 0x00007AFA, - 6539: 0x00007CFE, - 6540: 0x00007F54, - 6541: 0x00007F8C, - 6542: 0x00007F8B, - 6543: 0x00008005, - 6544: 0x000080BA, - 6545: 0x000080A5, - 6546: 0x000080A2, - 6547: 0x000080B1, - 6548: 0x000080A1, - 6549: 0x000080AB, - 6550: 0x000080A9, - 6551: 0x000080B4, - 6552: 0x000080AA, - 6553: 0x000080AF, - 6554: 0x000081E5, - 6555: 0x000081FE, - 6556: 0x0000820D, - 6557: 0x000082B3, - 6558: 0x0000829D, - 6559: 0x00008299, - 6560: 0x000082AD, - 6561: 0x000082BD, - 6562: 0x0000829F, - 6563: 0x000082B9, - 6564: 0x000082B1, - 6565: 0x000082AC, - 6566: 0x000082A5, - 6567: 0x000082AF, - 6568: 0x000082B8, - 6569: 0x000082A3, - 6570: 0x000082B0, - 6571: 0x000082BE, - 6572: 0x000082B7, - 6573: 0x0000864E, - 6574: 0x00008671, - 6575: 0x0000521D, - 6576: 0x00008868, - 6577: 0x00008ECB, - 6578: 0x00008FCE, - 6579: 0x00008FD4, - 6580: 0x00008FD1, - 6581: 0x000090B5, - 6582: 0x000090B8, - 6583: 0x000090B1, - 6584: 0x000090B6, - 6585: 0x000091C7, - 6586: 0x000091D1, - 6587: 0x00009577, - 6588: 0x00009580, - 6589: 0x0000961C, - 6590: 0x00009640, - 6591: 0x0000963F, - 6592: 0x0000963B, - 6593: 0x00009644, - 6594: 0x00009642, - 6595: 0x000096B9, - 6596: 0x000096E8, - 6597: 0x00009752, - 6598: 0x0000975E, - 6599: 0x00004E9F, - 6600: 0x00004EAD, - 6601: 0x00004EAE, - 6602: 0x00004FE1, - 6603: 0x00004FB5, - 6604: 0x00004FAF, - 6605: 0x00004FBF, - 6606: 0x00004FE0, - 6607: 0x00004FD1, - 6608: 0x00004FCF, - 6609: 0x00004FDD, - 6610: 0x00004FC3, - 6611: 0x00004FB6, - 6612: 0x00004FD8, - 6613: 0x00004FDF, - 6614: 0x00004FCA, - 6615: 0x00004FD7, - 6616: 0x00004FAE, - 6617: 0x00004FD0, - 6618: 0x00004FC4, - 6619: 0x00004FC2, - 6620: 0x00004FDA, - 6621: 0x00004FCE, - 6622: 0x00004FDE, - 6623: 0x00004FB7, - 6624: 0x00005157, - 6625: 0x00005192, - 6626: 0x00005191, - 6627: 0x000051A0, - 6628: 0x0000524E, - 6629: 0x00005243, - 6630: 0x0000524A, - 6631: 0x0000524D, - 6632: 0x0000524C, - 6633: 0x0000524B, - 6634: 0x00005247, - 6635: 0x000052C7, - 6636: 0x000052C9, - 6637: 0x000052C3, - 6638: 0x000052C1, - 6639: 0x0000530D, - 6640: 0x00005357, - 6641: 0x0000537B, - 6642: 0x0000539A, - 6643: 0x000053DB, - 6644: 0x000054AC, - 6645: 0x000054C0, - 6646: 0x000054A8, - 6647: 0x000054CE, - 6648: 0x000054C9, - 6649: 0x000054B8, - 6650: 0x000054A6, - 6651: 0x000054B3, - 6652: 0x000054C7, - 6653: 0x000054C2, - 6654: 0x000054BD, - 6655: 0x000054AA, - 6656: 0x000054C1, - 6657: 0x000054C4, - 6658: 0x000054C8, - 6659: 0x000054AF, - 6660: 0x000054AB, - 6661: 0x000054B1, - 6662: 0x000054BB, - 6663: 0x000054A9, - 6664: 0x000054A7, - 6665: 0x000054BF, - 6666: 0x000056FF, - 6667: 0x00005782, - 6668: 0x0000578B, - 6669: 0x000057A0, - 6670: 0x000057A3, - 6671: 0x000057A2, - 6672: 0x000057CE, - 6673: 0x000057AE, - 6674: 0x00005793, - 6675: 0x00005955, - 6676: 0x00005951, - 6677: 0x0000594F, - 6678: 0x0000594E, - 6679: 0x00005950, - 6680: 0x000059DC, - 6681: 0x000059D8, - 6682: 0x000059FF, - 6683: 0x000059E3, - 6684: 0x000059E8, - 6685: 0x00005A03, - 6686: 0x000059E5, - 6687: 0x000059EA, - 6688: 0x000059DA, - 6689: 0x000059E6, - 6690: 0x00005A01, - 6691: 0x000059FB, - 6692: 0x00005B69, - 6693: 0x00005BA3, - 6694: 0x00005BA6, - 6695: 0x00005BA4, - 6696: 0x00005BA2, - 6697: 0x00005BA5, - 6698: 0x00005C01, - 6699: 0x00005C4E, - 6700: 0x00005C4F, - 6701: 0x00005C4D, - 6702: 0x00005C4B, - 6703: 0x00005CD9, - 6704: 0x00005CD2, - 6705: 0x00005DF7, - 6706: 0x00005E1D, - 6707: 0x00005E25, - 6708: 0x00005E1F, - 6709: 0x00005E7D, - 6710: 0x00005EA0, - 6711: 0x00005EA6, - 6712: 0x00005EFA, - 6713: 0x00005F08, - 6714: 0x00005F2D, - 6715: 0x00005F65, - 6716: 0x00005F88, - 6717: 0x00005F85, - 6718: 0x00005F8A, - 6719: 0x00005F8B, - 6720: 0x00005F87, - 6721: 0x00005F8C, - 6722: 0x00005F89, - 6723: 0x00006012, - 6724: 0x0000601D, - 6725: 0x00006020, - 6726: 0x00006025, - 6727: 0x0000600E, - 6728: 0x00006028, - 6729: 0x0000604D, - 6730: 0x00006070, - 6731: 0x00006068, - 6732: 0x00006062, - 6733: 0x00006046, - 6734: 0x00006043, - 6735: 0x0000606C, - 6736: 0x0000606B, - 6737: 0x0000606A, - 6738: 0x00006064, - 6739: 0x00006241, - 6740: 0x000062DC, - 6741: 0x00006316, - 6742: 0x00006309, - 6743: 0x000062FC, - 6744: 0x000062ED, - 6745: 0x00006301, - 6746: 0x000062EE, - 6747: 0x000062FD, - 6748: 0x00006307, - 6749: 0x000062F1, - 6750: 0x000062F7, - 6751: 0x000062EF, - 6752: 0x000062EC, - 6753: 0x000062FE, - 6754: 0x000062F4, - 6755: 0x00006311, - 6756: 0x00006302, - 6757: 0x0000653F, - 6758: 0x00006545, - 6759: 0x000065AB, - 6760: 0x000065BD, - 6761: 0x000065E2, - 6762: 0x00006625, - 6763: 0x0000662D, - 6764: 0x00006620, - 6765: 0x00006627, - 6766: 0x0000662F, - 6767: 0x0000661F, - 6768: 0x00006628, - 6769: 0x00006631, - 6770: 0x00006624, - 6771: 0x000066F7, - 6772: 0x000067FF, - 6773: 0x000067D3, - 6774: 0x000067F1, - 6775: 0x000067D4, - 6776: 0x000067D0, - 6777: 0x000067EC, - 6778: 0x000067B6, - 6779: 0x000067AF, - 6780: 0x000067F5, - 6781: 0x000067E9, - 6782: 0x000067EF, - 6783: 0x000067C4, - 6784: 0x000067D1, - 6785: 0x000067B4, - 6786: 0x000067DA, - 6787: 0x000067E5, - 6788: 0x000067B8, - 6789: 0x000067CF, - 6790: 0x000067DE, - 6791: 0x000067F3, - 6792: 0x000067B0, - 6793: 0x000067D9, - 6794: 0x000067E2, - 6795: 0x000067DD, - 6796: 0x000067D2, - 6797: 0x00006B6A, - 6798: 0x00006B83, - 6799: 0x00006B86, - 6800: 0x00006BB5, - 6801: 0x00006BD2, - 6802: 0x00006BD7, - 6803: 0x00006C1F, - 6804: 0x00006CC9, - 6805: 0x00006D0B, - 6806: 0x00006D32, - 6807: 0x00006D2A, - 6808: 0x00006D41, - 6809: 0x00006D25, - 6810: 0x00006D0C, - 6811: 0x00006D31, - 6812: 0x00006D1E, - 6813: 0x00006D17, - 6814: 0x00006D3B, - 6815: 0x00006D3D, - 6816: 0x00006D3E, - 6817: 0x00006D36, - 6818: 0x00006D1B, - 6819: 0x00006CF5, - 6820: 0x00006D39, - 6821: 0x00006D27, - 6822: 0x00006D38, - 6823: 0x00006D29, - 6824: 0x00006D2E, - 6825: 0x00006D35, - 6826: 0x00006D0E, - 6827: 0x00006D2B, - 6828: 0x000070AB, - 6829: 0x000070BA, - 6830: 0x000070B3, - 6831: 0x000070AC, - 6832: 0x000070AF, - 6833: 0x000070AD, - 6834: 0x000070B8, - 6835: 0x000070AE, - 6836: 0x000070A4, - 6837: 0x00007230, - 6838: 0x00007272, - 6839: 0x0000726F, - 6840: 0x00007274, - 6841: 0x000072E9, - 6842: 0x000072E0, - 6843: 0x000072E1, - 6844: 0x000073B7, - 6845: 0x000073CA, - 6846: 0x000073BB, - 6847: 0x000073B2, - 6848: 0x000073CD, - 6849: 0x000073C0, - 6850: 0x000073B3, - 6851: 0x0000751A, - 6852: 0x0000752D, - 6853: 0x0000754F, - 6854: 0x0000754C, - 6855: 0x0000754E, - 6856: 0x0000754B, - 6857: 0x000075AB, - 6858: 0x000075A4, - 6859: 0x000075A5, - 6860: 0x000075A2, - 6861: 0x000075A3, - 6862: 0x00007678, - 6863: 0x00007686, - 6864: 0x00007687, - 6865: 0x00007688, - 6866: 0x000076C8, - 6867: 0x000076C6, - 6868: 0x000076C3, - 6869: 0x000076C5, - 6870: 0x00007701, - 6871: 0x000076F9, - 6872: 0x000076F8, - 6873: 0x00007709, - 6874: 0x0000770B, - 6875: 0x000076FE, - 6876: 0x000076FC, - 6877: 0x00007707, - 6878: 0x000077DC, - 6879: 0x00007802, - 6880: 0x00007814, - 6881: 0x0000780C, - 6882: 0x0000780D, - 6883: 0x00007946, - 6884: 0x00007949, - 6885: 0x00007948, - 6886: 0x00007947, - 6887: 0x000079B9, - 6888: 0x000079BA, - 6889: 0x000079D1, - 6890: 0x000079D2, - 6891: 0x000079CB, - 6892: 0x00007A7F, - 6893: 0x00007A81, - 6894: 0x00007AFF, - 6895: 0x00007AFD, - 6896: 0x00007C7D, - 6897: 0x00007D02, - 6898: 0x00007D05, - 6899: 0x00007D00, - 6900: 0x00007D09, - 6901: 0x00007D07, - 6902: 0x00007D04, - 6903: 0x00007D06, - 6904: 0x00007F38, - 6905: 0x00007F8E, - 6906: 0x00007FBF, - 6907: 0x00008004, - 6908: 0x00008010, - 6909: 0x0000800D, - 6910: 0x00008011, - 6911: 0x00008036, - 6912: 0x000080D6, - 6913: 0x000080E5, - 6914: 0x000080DA, - 6915: 0x000080C3, - 6916: 0x000080C4, - 6917: 0x000080CC, - 6918: 0x000080E1, - 6919: 0x000080DB, - 6920: 0x000080CE, - 6921: 0x000080DE, - 6922: 0x000080E4, - 6923: 0x000080DD, - 6924: 0x000081F4, - 6925: 0x00008222, - 6926: 0x000082E7, - 6927: 0x00008303, - 6928: 0x00008305, - 6929: 0x000082E3, - 6930: 0x000082DB, - 6931: 0x000082E6, - 6932: 0x00008304, - 6933: 0x000082E5, - 6934: 0x00008302, - 6935: 0x00008309, - 6936: 0x000082D2, - 6937: 0x000082D7, - 6938: 0x000082F1, - 6939: 0x00008301, - 6940: 0x000082DC, - 6941: 0x000082D4, - 6942: 0x000082D1, - 6943: 0x000082DE, - 6944: 0x000082D3, - 6945: 0x000082DF, - 6946: 0x000082EF, - 6947: 0x00008306, - 6948: 0x00008650, - 6949: 0x00008679, - 6950: 0x0000867B, - 6951: 0x0000867A, - 6952: 0x0000884D, - 6953: 0x0000886B, - 6954: 0x00008981, - 6955: 0x000089D4, - 6956: 0x00008A08, - 6957: 0x00008A02, - 6958: 0x00008A03, - 6959: 0x00008C9E, - 6960: 0x00008CA0, - 6961: 0x00008D74, - 6962: 0x00008D73, - 6963: 0x00008DB4, - 6964: 0x00008ECD, - 6965: 0x00008ECC, - 6966: 0x00008FF0, - 6967: 0x00008FE6, - 6968: 0x00008FE2, - 6969: 0x00008FEA, - 6970: 0x00008FE5, - 6971: 0x00008FED, - 6972: 0x00008FEB, - 6973: 0x00008FE4, - 6974: 0x00008FE8, - 6975: 0x000090CA, - 6976: 0x000090CE, - 6977: 0x000090C1, - 6978: 0x000090C3, - 6979: 0x0000914B, - 6980: 0x0000914A, - 6981: 0x000091CD, - 6982: 0x00009582, - 6983: 0x00009650, - 6984: 0x0000964B, - 6985: 0x0000964C, - 6986: 0x0000964D, - 6987: 0x00009762, - 6988: 0x00009769, - 6989: 0x000097CB, - 6990: 0x000097ED, - 6991: 0x000097F3, - 6992: 0x00009801, - 6993: 0x000098A8, - 6994: 0x000098DB, - 6995: 0x000098DF, - 6996: 0x00009996, - 6997: 0x00009999, - 6998: 0x00004E58, - 6999: 0x00004EB3, - 7000: 0x0000500C, - 7001: 0x0000500D, - 7002: 0x00005023, - 7003: 0x00004FEF, - 7004: 0x00005026, - 7005: 0x00005025, - 7006: 0x00004FF8, - 7007: 0x00005029, - 7008: 0x00005016, - 7009: 0x00005006, - 7010: 0x0000503C, - 7011: 0x0000501F, - 7012: 0x0000501A, - 7013: 0x00005012, - 7014: 0x00005011, - 7015: 0x00004FFA, - 7016: 0x00005000, - 7017: 0x00005014, - 7018: 0x00005028, - 7019: 0x00004FF1, - 7020: 0x00005021, - 7021: 0x0000500B, - 7022: 0x00005019, - 7023: 0x00005018, - 7024: 0x00004FF3, - 7025: 0x00004FEE, - 7026: 0x0000502D, - 7027: 0x0000502A, - 7028: 0x00004FFE, - 7029: 0x0000502B, - 7030: 0x00005009, - 7031: 0x0000517C, - 7032: 0x000051A4, - 7033: 0x000051A5, - 7034: 0x000051A2, - 7035: 0x000051CD, - 7036: 0x000051CC, - 7037: 0x000051C6, - 7038: 0x000051CB, - 7039: 0x00005256, - 7040: 0x0000525C, - 7041: 0x00005254, - 7042: 0x0000525B, - 7043: 0x0000525D, - 7044: 0x0000532A, - 7045: 0x0000537F, - 7046: 0x0000539F, - 7047: 0x0000539D, - 7048: 0x000053DF, - 7049: 0x000054E8, - 7050: 0x00005510, - 7051: 0x00005501, - 7052: 0x00005537, - 7053: 0x000054FC, - 7054: 0x000054E5, - 7055: 0x000054F2, - 7056: 0x00005506, - 7057: 0x000054FA, - 7058: 0x00005514, - 7059: 0x000054E9, - 7060: 0x000054ED, - 7061: 0x000054E1, - 7062: 0x00005509, - 7063: 0x000054EE, - 7064: 0x000054EA, - 7065: 0x000054E6, - 7066: 0x00005527, - 7067: 0x00005507, - 7068: 0x000054FD, - 7069: 0x0000550F, - 7070: 0x00005703, - 7071: 0x00005704, - 7072: 0x000057C2, - 7073: 0x000057D4, - 7074: 0x000057CB, - 7075: 0x000057C3, - 7076: 0x00005809, - 7077: 0x0000590F, - 7078: 0x00005957, - 7079: 0x00005958, - 7080: 0x0000595A, - 7081: 0x00005A11, - 7082: 0x00005A18, - 7083: 0x00005A1C, - 7084: 0x00005A1F, - 7085: 0x00005A1B, - 7086: 0x00005A13, - 7087: 0x000059EC, - 7088: 0x00005A20, - 7089: 0x00005A23, - 7090: 0x00005A29, - 7091: 0x00005A25, - 7092: 0x00005A0C, - 7093: 0x00005A09, - 7094: 0x00005B6B, - 7095: 0x00005C58, - 7096: 0x00005BB0, - 7097: 0x00005BB3, - 7098: 0x00005BB6, - 7099: 0x00005BB4, - 7100: 0x00005BAE, - 7101: 0x00005BB5, - 7102: 0x00005BB9, - 7103: 0x00005BB8, - 7104: 0x00005C04, - 7105: 0x00005C51, - 7106: 0x00005C55, - 7107: 0x00005C50, - 7108: 0x00005CED, - 7109: 0x00005CFD, - 7110: 0x00005CFB, - 7111: 0x00005CEA, - 7112: 0x00005CE8, - 7113: 0x00005CF0, - 7114: 0x00005CF6, - 7115: 0x00005D01, - 7116: 0x00005CF4, - 7117: 0x00005DEE, - 7118: 0x00005E2D, - 7119: 0x00005E2B, - 7120: 0x00005EAB, - 7121: 0x00005EAD, - 7122: 0x00005EA7, - 7123: 0x00005F31, - 7124: 0x00005F92, - 7125: 0x00005F91, - 7126: 0x00005F90, - 7127: 0x00006059, - 7128: 0x00006063, - 7129: 0x00006065, - 7130: 0x00006050, - 7131: 0x00006055, - 7132: 0x0000606D, - 7133: 0x00006069, - 7134: 0x0000606F, - 7135: 0x00006084, - 7136: 0x0000609F, - 7137: 0x0000609A, - 7138: 0x0000608D, - 7139: 0x00006094, - 7140: 0x0000608C, - 7141: 0x00006085, - 7142: 0x00006096, - 7143: 0x00006247, - 7144: 0x000062F3, - 7145: 0x00006308, - 7146: 0x000062FF, - 7147: 0x0000634E, - 7148: 0x0000633E, - 7149: 0x0000632F, - 7150: 0x00006355, - 7151: 0x00006342, - 7152: 0x00006346, - 7153: 0x0000634F, - 7154: 0x00006349, - 7155: 0x0000633A, - 7156: 0x00006350, - 7157: 0x0000633D, - 7158: 0x0000632A, - 7159: 0x0000632B, - 7160: 0x00006328, - 7161: 0x0000634D, - 7162: 0x0000634C, - 7163: 0x00006548, - 7164: 0x00006549, - 7165: 0x00006599, - 7166: 0x000065C1, - 7167: 0x000065C5, - 7168: 0x00006642, - 7169: 0x00006649, - 7170: 0x0000664F, - 7171: 0x00006643, - 7172: 0x00006652, - 7173: 0x0000664C, - 7174: 0x00006645, - 7175: 0x00006641, - 7176: 0x000066F8, - 7177: 0x00006714, - 7178: 0x00006715, - 7179: 0x00006717, - 7180: 0x00006821, - 7181: 0x00006838, - 7182: 0x00006848, - 7183: 0x00006846, - 7184: 0x00006853, - 7185: 0x00006839, - 7186: 0x00006842, - 7187: 0x00006854, - 7188: 0x00006829, - 7189: 0x000068B3, - 7190: 0x00006817, - 7191: 0x0000684C, - 7192: 0x00006851, - 7193: 0x0000683D, - 7194: 0x000067F4, - 7195: 0x00006850, - 7196: 0x00006840, - 7197: 0x0000683C, - 7198: 0x00006843, - 7199: 0x0000682A, - 7200: 0x00006845, - 7201: 0x00006813, - 7202: 0x00006818, - 7203: 0x00006841, - 7204: 0x00006B8A, - 7205: 0x00006B89, - 7206: 0x00006BB7, - 7207: 0x00006C23, - 7208: 0x00006C27, - 7209: 0x00006C28, - 7210: 0x00006C26, - 7211: 0x00006C24, - 7212: 0x00006CF0, - 7213: 0x00006D6A, - 7214: 0x00006D95, - 7215: 0x00006D88, - 7216: 0x00006D87, - 7217: 0x00006D66, - 7218: 0x00006D78, - 7219: 0x00006D77, - 7220: 0x00006D59, - 7221: 0x00006D93, - 7222: 0x00006D6C, - 7223: 0x00006D89, - 7224: 0x00006D6E, - 7225: 0x00006D5A, - 7226: 0x00006D74, - 7227: 0x00006D69, - 7228: 0x00006D8C, - 7229: 0x00006D8A, - 7230: 0x00006D79, - 7231: 0x00006D85, - 7232: 0x00006D65, - 7233: 0x00006D94, - 7234: 0x000070CA, - 7235: 0x000070D8, - 7236: 0x000070E4, - 7237: 0x000070D9, - 7238: 0x000070C8, - 7239: 0x000070CF, - 7240: 0x00007239, - 7241: 0x00007279, - 7242: 0x000072FC, - 7243: 0x000072F9, - 7244: 0x000072FD, - 7245: 0x000072F8, - 7246: 0x000072F7, - 7247: 0x00007386, - 7248: 0x000073ED, - 7249: 0x00007409, - 7250: 0x000073EE, - 7251: 0x000073E0, - 7252: 0x000073EA, - 7253: 0x000073DE, - 7254: 0x00007554, - 7255: 0x0000755D, - 7256: 0x0000755C, - 7257: 0x0000755A, - 7258: 0x00007559, - 7259: 0x000075BE, - 7260: 0x000075C5, - 7261: 0x000075C7, - 7262: 0x000075B2, - 7263: 0x000075B3, - 7264: 0x000075BD, - 7265: 0x000075BC, - 7266: 0x000075B9, - 7267: 0x000075C2, - 7268: 0x000075B8, - 7269: 0x0000768B, - 7270: 0x000076B0, - 7271: 0x000076CA, - 7272: 0x000076CD, - 7273: 0x000076CE, - 7274: 0x00007729, - 7275: 0x0000771F, - 7276: 0x00007720, - 7277: 0x00007728, - 7278: 0x000077E9, - 7279: 0x00007830, - 7280: 0x00007827, - 7281: 0x00007838, - 7282: 0x0000781D, - 7283: 0x00007834, - 7284: 0x00007837, - 7285: 0x00007825, - 7286: 0x0000782D, - 7287: 0x00007820, - 7288: 0x0000781F, - 7289: 0x00007832, - 7290: 0x00007955, - 7291: 0x00007950, - 7292: 0x00007960, - 7293: 0x0000795F, - 7294: 0x00007956, - 7295: 0x0000795E, - 7296: 0x0000795D, - 7297: 0x00007957, - 7298: 0x0000795A, - 7299: 0x000079E4, - 7300: 0x000079E3, - 7301: 0x000079E7, - 7302: 0x000079DF, - 7303: 0x000079E6, - 7304: 0x000079E9, - 7305: 0x000079D8, - 7306: 0x00007A84, - 7307: 0x00007A88, - 7308: 0x00007AD9, - 7309: 0x00007B06, - 7310: 0x00007B11, - 7311: 0x00007C89, - 7312: 0x00007D21, - 7313: 0x00007D17, - 7314: 0x00007D0B, - 7315: 0x00007D0A, - 7316: 0x00007D20, - 7317: 0x00007D22, - 7318: 0x00007D14, - 7319: 0x00007D10, - 7320: 0x00007D15, - 7321: 0x00007D1A, - 7322: 0x00007D1C, - 7323: 0x00007D0D, - 7324: 0x00007D19, - 7325: 0x00007D1B, - 7326: 0x00007F3A, - 7327: 0x00007F5F, - 7328: 0x00007F94, - 7329: 0x00007FC5, - 7330: 0x00007FC1, - 7331: 0x00008006, - 7332: 0x00008018, - 7333: 0x00008015, - 7334: 0x00008019, - 7335: 0x00008017, - 7336: 0x0000803D, - 7337: 0x0000803F, - 7338: 0x000080F1, - 7339: 0x00008102, - 7340: 0x000080F0, - 7341: 0x00008105, - 7342: 0x000080ED, - 7343: 0x000080F4, - 7344: 0x00008106, - 7345: 0x000080F8, - 7346: 0x000080F3, - 7347: 0x00008108, - 7348: 0x000080FD, - 7349: 0x0000810A, - 7350: 0x000080FC, - 7351: 0x000080EF, - 7352: 0x000081ED, - 7353: 0x000081EC, - 7354: 0x00008200, - 7355: 0x00008210, - 7356: 0x0000822A, - 7357: 0x0000822B, - 7358: 0x00008228, - 7359: 0x0000822C, - 7360: 0x000082BB, - 7361: 0x0000832B, - 7362: 0x00008352, - 7363: 0x00008354, - 7364: 0x0000834A, - 7365: 0x00008338, - 7366: 0x00008350, - 7367: 0x00008349, - 7368: 0x00008335, - 7369: 0x00008334, - 7370: 0x0000834F, - 7371: 0x00008332, - 7372: 0x00008339, - 7373: 0x00008336, - 7374: 0x00008317, - 7375: 0x00008340, - 7376: 0x00008331, - 7377: 0x00008328, - 7378: 0x00008343, - 7379: 0x00008654, - 7380: 0x0000868A, - 7381: 0x000086AA, - 7382: 0x00008693, - 7383: 0x000086A4, - 7384: 0x000086A9, - 7385: 0x0000868C, - 7386: 0x000086A3, - 7387: 0x0000869C, - 7388: 0x00008870, - 7389: 0x00008877, - 7390: 0x00008881, - 7391: 0x00008882, - 7392: 0x0000887D, - 7393: 0x00008879, - 7394: 0x00008A18, - 7395: 0x00008A10, - 7396: 0x00008A0E, - 7397: 0x00008A0C, - 7398: 0x00008A15, - 7399: 0x00008A0A, - 7400: 0x00008A17, - 7401: 0x00008A13, - 7402: 0x00008A16, - 7403: 0x00008A0F, - 7404: 0x00008A11, - 7405: 0x00008C48, - 7406: 0x00008C7A, - 7407: 0x00008C79, - 7408: 0x00008CA1, - 7409: 0x00008CA2, - 7410: 0x00008D77, - 7411: 0x00008EAC, - 7412: 0x00008ED2, - 7413: 0x00008ED4, - 7414: 0x00008ECF, - 7415: 0x00008FB1, - 7416: 0x00009001, - 7417: 0x00009006, - 7418: 0x00008FF7, - 7419: 0x00009000, - 7420: 0x00008FFA, - 7421: 0x00008FF4, - 7422: 0x00009003, - 7423: 0x00008FFD, - 7424: 0x00009005, - 7425: 0x00008FF8, - 7426: 0x00009095, - 7427: 0x000090E1, - 7428: 0x000090DD, - 7429: 0x000090E2, - 7430: 0x00009152, - 7431: 0x0000914D, - 7432: 0x0000914C, - 7433: 0x000091D8, - 7434: 0x000091DD, - 7435: 0x000091D7, - 7436: 0x000091DC, - 7437: 0x000091D9, - 7438: 0x00009583, - 7439: 0x00009662, - 7440: 0x00009663, - 7441: 0x00009661, - 7442: 0x0000965B, - 7443: 0x0000965D, - 7444: 0x00009664, - 7445: 0x00009658, - 7446: 0x0000965E, - 7447: 0x000096BB, - 7448: 0x000098E2, - 7449: 0x000099AC, - 7450: 0x00009AA8, - 7451: 0x00009AD8, - 7452: 0x00009B25, - 7453: 0x00009B32, - 7454: 0x00009B3C, - 7455: 0x00004E7E, - 7456: 0x0000507A, - 7457: 0x0000507D, - 7458: 0x0000505C, - 7459: 0x00005047, - 7460: 0x00005043, - 7461: 0x0000504C, - 7462: 0x0000505A, - 7463: 0x00005049, - 7464: 0x00005065, - 7465: 0x00005076, - 7466: 0x0000504E, - 7467: 0x00005055, - 7468: 0x00005075, - 7469: 0x00005074, - 7470: 0x00005077, - 7471: 0x0000504F, - 7472: 0x0000500F, - 7473: 0x0000506F, - 7474: 0x0000506D, - 7475: 0x0000515C, - 7476: 0x00005195, - 7477: 0x000051F0, - 7478: 0x0000526A, - 7479: 0x0000526F, - 7480: 0x000052D2, - 7481: 0x000052D9, - 7482: 0x000052D8, - 7483: 0x000052D5, - 7484: 0x00005310, - 7485: 0x0000530F, - 7486: 0x00005319, - 7487: 0x0000533F, - 7488: 0x00005340, - 7489: 0x0000533E, - 7490: 0x000053C3, - 7491: 0x000066FC, - 7492: 0x00005546, - 7493: 0x0000556A, - 7494: 0x00005566, - 7495: 0x00005544, - 7496: 0x0000555E, - 7497: 0x00005561, - 7498: 0x00005543, - 7499: 0x0000554A, - 7500: 0x00005531, - 7501: 0x00005556, - 7502: 0x0000554F, - 7503: 0x00005555, - 7504: 0x0000552F, - 7505: 0x00005564, - 7506: 0x00005538, - 7507: 0x0000552E, - 7508: 0x0000555C, - 7509: 0x0000552C, - 7510: 0x00005563, - 7511: 0x00005533, - 7512: 0x00005541, - 7513: 0x00005557, - 7514: 0x00005708, - 7515: 0x0000570B, - 7516: 0x00005709, - 7517: 0x000057DF, - 7518: 0x00005805, - 7519: 0x0000580A, - 7520: 0x00005806, - 7521: 0x000057E0, - 7522: 0x000057E4, - 7523: 0x000057FA, - 7524: 0x00005802, - 7525: 0x00005835, - 7526: 0x000057F7, - 7527: 0x000057F9, - 7528: 0x00005920, - 7529: 0x00005962, - 7530: 0x00005A36, - 7531: 0x00005A41, - 7532: 0x00005A49, - 7533: 0x00005A66, - 7534: 0x00005A6A, - 7535: 0x00005A40, - 7536: 0x00005A3C, - 7537: 0x00005A62, - 7538: 0x00005A5A, - 7539: 0x00005A46, - 7540: 0x00005A4A, - 7541: 0x00005B70, - 7542: 0x00005BC7, - 7543: 0x00005BC5, - 7544: 0x00005BC4, - 7545: 0x00005BC2, - 7546: 0x00005BBF, - 7547: 0x00005BC6, - 7548: 0x00005C09, - 7549: 0x00005C08, - 7550: 0x00005C07, - 7551: 0x00005C60, - 7552: 0x00005C5C, - 7553: 0x00005C5D, - 7554: 0x00005D07, - 7555: 0x00005D06, - 7556: 0x00005D0E, - 7557: 0x00005D1B, - 7558: 0x00005D16, - 7559: 0x00005D22, - 7560: 0x00005D11, - 7561: 0x00005D29, - 7562: 0x00005D14, - 7563: 0x00005D19, - 7564: 0x00005D24, - 7565: 0x00005D27, - 7566: 0x00005D17, - 7567: 0x00005DE2, - 7568: 0x00005E38, - 7569: 0x00005E36, - 7570: 0x00005E33, - 7571: 0x00005E37, - 7572: 0x00005EB7, - 7573: 0x00005EB8, - 7574: 0x00005EB6, - 7575: 0x00005EB5, - 7576: 0x00005EBE, - 7577: 0x00005F35, - 7578: 0x00005F37, - 7579: 0x00005F57, - 7580: 0x00005F6C, - 7581: 0x00005F69, - 7582: 0x00005F6B, - 7583: 0x00005F97, - 7584: 0x00005F99, - 7585: 0x00005F9E, - 7586: 0x00005F98, - 7587: 0x00005FA1, - 7588: 0x00005FA0, - 7589: 0x00005F9C, - 7590: 0x0000607F, - 7591: 0x000060A3, - 7592: 0x00006089, - 7593: 0x000060A0, - 7594: 0x000060A8, - 7595: 0x000060CB, - 7596: 0x000060B4, - 7597: 0x000060E6, - 7598: 0x000060BD, - 7599: 0x000060C5, - 7600: 0x000060BB, - 7601: 0x000060B5, - 7602: 0x000060DC, - 7603: 0x000060BC, - 7604: 0x000060D8, - 7605: 0x000060D5, - 7606: 0x000060C6, - 7607: 0x000060DF, - 7608: 0x000060B8, - 7609: 0x000060DA, - 7610: 0x000060C7, - 7611: 0x0000621A, - 7612: 0x0000621B, - 7613: 0x00006248, - 7614: 0x000063A0, - 7615: 0x000063A7, - 7616: 0x00006372, - 7617: 0x00006396, - 7618: 0x000063A2, - 7619: 0x000063A5, - 7620: 0x00006377, - 7621: 0x00006367, - 7622: 0x00006398, - 7623: 0x000063AA, - 7624: 0x00006371, - 7625: 0x000063A9, - 7626: 0x00006389, - 7627: 0x00006383, - 7628: 0x0000639B, - 7629: 0x0000636B, - 7630: 0x000063A8, - 7631: 0x00006384, - 7632: 0x00006388, - 7633: 0x00006399, - 7634: 0x000063A1, - 7635: 0x000063AC, - 7636: 0x00006392, - 7637: 0x0000638F, - 7638: 0x00006380, - 7639: 0x0000637B, - 7640: 0x00006369, - 7641: 0x00006368, - 7642: 0x0000637A, - 7643: 0x0000655D, - 7644: 0x00006556, - 7645: 0x00006551, - 7646: 0x00006559, - 7647: 0x00006557, - 7648: 0x0000555F, - 7649: 0x0000654F, - 7650: 0x00006558, - 7651: 0x00006555, - 7652: 0x00006554, - 7653: 0x0000659C, - 7654: 0x0000659B, - 7655: 0x000065AC, - 7656: 0x000065CF, - 7657: 0x000065CB, - 7658: 0x000065CC, - 7659: 0x000065CE, - 7660: 0x0000665D, - 7661: 0x0000665A, - 7662: 0x00006664, - 7663: 0x00006668, - 7664: 0x00006666, - 7665: 0x0000665E, - 7666: 0x000066F9, - 7667: 0x000052D7, - 7668: 0x0000671B, - 7669: 0x00006881, - 7670: 0x000068AF, - 7671: 0x000068A2, - 7672: 0x00006893, - 7673: 0x000068B5, - 7674: 0x0000687F, - 7675: 0x00006876, - 7676: 0x000068B1, - 7677: 0x000068A7, - 7678: 0x00006897, - 7679: 0x000068B0, - 7680: 0x00006883, - 7681: 0x000068C4, - 7682: 0x000068AD, - 7683: 0x00006886, - 7684: 0x00006885, - 7685: 0x00006894, - 7686: 0x0000689D, - 7687: 0x000068A8, - 7688: 0x0000689F, - 7689: 0x000068A1, - 7690: 0x00006882, - 7691: 0x00006B32, - 7692: 0x00006BBA, - 7693: 0x00006BEB, - 7694: 0x00006BEC, - 7695: 0x00006C2B, - 7696: 0x00006D8E, - 7697: 0x00006DBC, - 7698: 0x00006DF3, - 7699: 0x00006DD9, - 7700: 0x00006DB2, - 7701: 0x00006DE1, - 7702: 0x00006DCC, - 7703: 0x00006DE4, - 7704: 0x00006DFB, - 7705: 0x00006DFA, - 7706: 0x00006E05, - 7707: 0x00006DC7, - 7708: 0x00006DCB, - 7709: 0x00006DAF, - 7710: 0x00006DD1, - 7711: 0x00006DAE, - 7712: 0x00006DDE, - 7713: 0x00006DF9, - 7714: 0x00006DB8, - 7715: 0x00006DF7, - 7716: 0x00006DF5, - 7717: 0x00006DC5, - 7718: 0x00006DD2, - 7719: 0x00006E1A, - 7720: 0x00006DB5, - 7721: 0x00006DDA, - 7722: 0x00006DEB, - 7723: 0x00006DD8, - 7724: 0x00006DEA, - 7725: 0x00006DF1, - 7726: 0x00006DEE, - 7727: 0x00006DE8, - 7728: 0x00006DC6, - 7729: 0x00006DC4, - 7730: 0x00006DAA, - 7731: 0x00006DEC, - 7732: 0x00006DBF, - 7733: 0x00006DE6, - 7734: 0x000070F9, - 7735: 0x00007109, - 7736: 0x0000710A, - 7737: 0x000070FD, - 7738: 0x000070EF, - 7739: 0x0000723D, - 7740: 0x0000727D, - 7741: 0x00007281, - 7742: 0x0000731C, - 7743: 0x0000731B, - 7744: 0x00007316, - 7745: 0x00007313, - 7746: 0x00007319, - 7747: 0x00007387, - 7748: 0x00007405, - 7749: 0x0000740A, - 7750: 0x00007403, - 7751: 0x00007406, - 7752: 0x000073FE, - 7753: 0x0000740D, - 7754: 0x000074E0, - 7755: 0x000074F6, - 7756: 0x000074F7, - 7757: 0x0000751C, - 7758: 0x00007522, - 7759: 0x00007565, - 7760: 0x00007566, - 7761: 0x00007562, - 7762: 0x00007570, - 7763: 0x0000758F, - 7764: 0x000075D4, - 7765: 0x000075D5, - 7766: 0x000075B5, - 7767: 0x000075CA, - 7768: 0x000075CD, - 7769: 0x0000768E, - 7770: 0x000076D4, - 7771: 0x000076D2, - 7772: 0x000076DB, - 7773: 0x00007737, - 7774: 0x0000773E, - 7775: 0x0000773C, - 7776: 0x00007736, - 7777: 0x00007738, - 7778: 0x0000773A, - 7779: 0x0000786B, - 7780: 0x00007843, - 7781: 0x0000784E, - 7782: 0x00007965, - 7783: 0x00007968, - 7784: 0x0000796D, - 7785: 0x000079FB, - 7786: 0x00007A92, - 7787: 0x00007A95, - 7788: 0x00007B20, - 7789: 0x00007B28, - 7790: 0x00007B1B, - 7791: 0x00007B2C, - 7792: 0x00007B26, - 7793: 0x00007B19, - 7794: 0x00007B1E, - 7795: 0x00007B2E, - 7796: 0x00007C92, - 7797: 0x00007C97, - 7798: 0x00007C95, - 7799: 0x00007D46, - 7800: 0x00007D43, - 7801: 0x00007D71, - 7802: 0x00007D2E, - 7803: 0x00007D39, - 7804: 0x00007D3C, - 7805: 0x00007D40, - 7806: 0x00007D30, - 7807: 0x00007D33, - 7808: 0x00007D44, - 7809: 0x00007D2F, - 7810: 0x00007D42, - 7811: 0x00007D32, - 7812: 0x00007D31, - 7813: 0x00007F3D, - 7814: 0x00007F9E, - 7815: 0x00007F9A, - 7816: 0x00007FCC, - 7817: 0x00007FCE, - 7818: 0x00007FD2, - 7819: 0x0000801C, - 7820: 0x0000804A, - 7821: 0x00008046, - 7822: 0x0000812F, - 7823: 0x00008116, - 7824: 0x00008123, - 7825: 0x0000812B, - 7826: 0x00008129, - 7827: 0x00008130, - 7828: 0x00008124, - 7829: 0x00008202, - 7830: 0x00008235, - 7831: 0x00008237, - 7832: 0x00008236, - 7833: 0x00008239, - 7834: 0x0000838E, - 7835: 0x0000839E, - 7836: 0x00008398, - 7837: 0x00008378, - 7838: 0x000083A2, - 7839: 0x00008396, - 7840: 0x000083BD, - 7841: 0x000083AB, - 7842: 0x00008392, - 7843: 0x0000838A, - 7844: 0x00008393, - 7845: 0x00008389, - 7846: 0x000083A0, - 7847: 0x00008377, - 7848: 0x0000837B, - 7849: 0x0000837C, - 7850: 0x00008386, - 7851: 0x000083A7, - 7852: 0x00008655, - 7853: 0x00005F6A, - 7854: 0x000086C7, - 7855: 0x000086C0, - 7856: 0x000086B6, - 7857: 0x000086C4, - 7858: 0x000086B5, - 7859: 0x000086C6, - 7860: 0x000086CB, - 7861: 0x000086B1, - 7862: 0x000086AF, - 7863: 0x000086C9, - 7864: 0x00008853, - 7865: 0x0000889E, - 7866: 0x00008888, - 7867: 0x000088AB, - 7868: 0x00008892, - 7869: 0x00008896, - 7870: 0x0000888D, - 7871: 0x0000888B, - 7872: 0x00008993, - 7873: 0x0000898F, - 7874: 0x00008A2A, - 7875: 0x00008A1D, - 7876: 0x00008A23, - 7877: 0x00008A25, - 7878: 0x00008A31, - 7879: 0x00008A2D, - 7880: 0x00008A1F, - 7881: 0x00008A1B, - 7882: 0x00008A22, - 7883: 0x00008C49, - 7884: 0x00008C5A, - 7885: 0x00008CA9, - 7886: 0x00008CAC, - 7887: 0x00008CAB, - 7888: 0x00008CA8, - 7889: 0x00008CAA, - 7890: 0x00008CA7, - 7891: 0x00008D67, - 7892: 0x00008D66, - 7893: 0x00008DBE, - 7894: 0x00008DBA, - 7895: 0x00008EDB, - 7896: 0x00008EDF, - 7897: 0x00009019, - 7898: 0x0000900D, - 7899: 0x0000901A, - 7900: 0x00009017, - 7901: 0x00009023, - 7902: 0x0000901F, - 7903: 0x0000901D, - 7904: 0x00009010, - 7905: 0x00009015, - 7906: 0x0000901E, - 7907: 0x00009020, - 7908: 0x0000900F, - 7909: 0x00009022, - 7910: 0x00009016, - 7911: 0x0000901B, - 7912: 0x00009014, - 7913: 0x000090E8, - 7914: 0x000090ED, - 7915: 0x000090FD, - 7916: 0x00009157, - 7917: 0x000091CE, - 7918: 0x000091F5, - 7919: 0x000091E6, - 7920: 0x000091E3, - 7921: 0x000091E7, - 7922: 0x000091ED, - 7923: 0x000091E9, - 7924: 0x00009589, - 7925: 0x0000966A, - 7926: 0x00009675, - 7927: 0x00009673, - 7928: 0x00009678, - 7929: 0x00009670, - 7930: 0x00009674, - 7931: 0x00009676, - 7932: 0x00009677, - 7933: 0x0000966C, - 7934: 0x000096C0, - 7935: 0x000096EA, - 7936: 0x000096E9, - 7937: 0x00007AE0, - 7938: 0x00007ADF, - 7939: 0x00009802, - 7940: 0x00009803, - 7941: 0x00009B5A, - 7942: 0x00009CE5, - 7943: 0x00009E75, - 7944: 0x00009E7F, - 7945: 0x00009EA5, - 7946: 0x00009EBB, - 7947: 0x000050A2, - 7948: 0x0000508D, - 7949: 0x00005085, - 7950: 0x00005099, - 7951: 0x00005091, - 7952: 0x00005080, - 7953: 0x00005096, - 7954: 0x00005098, - 7955: 0x0000509A, - 7956: 0x00006700, - 7957: 0x000051F1, - 7958: 0x00005272, - 7959: 0x00005274, - 7960: 0x00005275, - 7961: 0x00005269, - 7962: 0x000052DE, - 7963: 0x000052DD, - 7964: 0x000052DB, - 7965: 0x0000535A, - 7966: 0x000053A5, - 7967: 0x0000557B, - 7968: 0x00005580, - 7969: 0x000055A7, - 7970: 0x0000557C, - 7971: 0x0000558A, - 7972: 0x0000559D, - 7973: 0x00005598, - 7974: 0x00005582, - 7975: 0x0000559C, - 7976: 0x000055AA, - 7977: 0x00005594, - 7978: 0x00005587, - 7979: 0x0000558B, - 7980: 0x00005583, - 7981: 0x000055B3, - 7982: 0x000055AE, - 7983: 0x0000559F, - 7984: 0x0000553E, - 7985: 0x000055B2, - 7986: 0x0000559A, - 7987: 0x000055BB, - 7988: 0x000055AC, - 7989: 0x000055B1, - 7990: 0x0000557E, - 7991: 0x00005589, - 7992: 0x000055AB, - 7993: 0x00005599, - 7994: 0x0000570D, - 7995: 0x0000582F, - 7996: 0x0000582A, - 7997: 0x00005834, - 7998: 0x00005824, - 7999: 0x00005830, - 8000: 0x00005831, - 8001: 0x00005821, - 8002: 0x0000581D, - 8003: 0x00005820, - 8004: 0x000058F9, - 8005: 0x000058FA, - 8006: 0x00005960, - 8007: 0x00005A77, - 8008: 0x00005A9A, - 8009: 0x00005A7F, - 8010: 0x00005A92, - 8011: 0x00005A9B, - 8012: 0x00005AA7, - 8013: 0x00005B73, - 8014: 0x00005B71, - 8015: 0x00005BD2, - 8016: 0x00005BCC, - 8017: 0x00005BD3, - 8018: 0x00005BD0, - 8019: 0x00005C0A, - 8020: 0x00005C0B, - 8021: 0x00005C31, - 8022: 0x00005D4C, - 8023: 0x00005D50, - 8024: 0x00005D34, - 8025: 0x00005D47, - 8026: 0x00005DFD, - 8027: 0x00005E45, - 8028: 0x00005E3D, - 8029: 0x00005E40, - 8030: 0x00005E43, - 8031: 0x00005E7E, - 8032: 0x00005ECA, - 8033: 0x00005EC1, - 8034: 0x00005EC2, - 8035: 0x00005EC4, - 8036: 0x00005F3C, - 8037: 0x00005F6D, - 8038: 0x00005FA9, - 8039: 0x00005FAA, - 8040: 0x00005FA8, - 8041: 0x000060D1, - 8042: 0x000060E1, - 8043: 0x000060B2, - 8044: 0x000060B6, - 8045: 0x000060E0, - 8046: 0x0000611C, - 8047: 0x00006123, - 8048: 0x000060FA, - 8049: 0x00006115, - 8050: 0x000060F0, - 8051: 0x000060FB, - 8052: 0x000060F4, - 8053: 0x00006168, - 8054: 0x000060F1, - 8055: 0x0000610E, - 8056: 0x000060F6, - 8057: 0x00006109, - 8058: 0x00006100, - 8059: 0x00006112, - 8060: 0x0000621F, - 8061: 0x00006249, - 8062: 0x000063A3, - 8063: 0x0000638C, - 8064: 0x000063CF, - 8065: 0x000063C0, - 8066: 0x000063E9, - 8067: 0x000063C9, - 8068: 0x000063C6, - 8069: 0x000063CD, - 8070: 0x000063D2, - 8071: 0x000063E3, - 8072: 0x000063D0, - 8073: 0x000063E1, - 8074: 0x000063D6, - 8075: 0x000063ED, - 8076: 0x000063EE, - 8077: 0x00006376, - 8078: 0x000063F4, - 8079: 0x000063EA, - 8080: 0x000063DB, - 8081: 0x00006452, - 8082: 0x000063DA, - 8083: 0x000063F9, - 8084: 0x0000655E, - 8085: 0x00006566, - 8086: 0x00006562, - 8087: 0x00006563, - 8088: 0x00006591, - 8089: 0x00006590, - 8090: 0x000065AF, - 8091: 0x0000666E, - 8092: 0x00006670, - 8093: 0x00006674, - 8094: 0x00006676, - 8095: 0x0000666F, - 8096: 0x00006691, - 8097: 0x0000667A, - 8098: 0x0000667E, - 8099: 0x00006677, - 8100: 0x000066FE, - 8101: 0x000066FF, - 8102: 0x0000671F, - 8103: 0x0000671D, - 8104: 0x000068FA, - 8105: 0x000068D5, - 8106: 0x000068E0, - 8107: 0x000068D8, - 8108: 0x000068D7, - 8109: 0x00006905, - 8110: 0x000068DF, - 8111: 0x000068F5, - 8112: 0x000068EE, - 8113: 0x000068E7, - 8114: 0x000068F9, - 8115: 0x000068D2, - 8116: 0x000068F2, - 8117: 0x000068E3, - 8118: 0x000068CB, - 8119: 0x000068CD, - 8120: 0x0000690D, - 8121: 0x00006912, - 8122: 0x0000690E, - 8123: 0x000068C9, - 8124: 0x000068DA, - 8125: 0x0000696E, - 8126: 0x000068FB, - 8127: 0x00006B3E, - 8128: 0x00006B3A, - 8129: 0x00006B3D, - 8130: 0x00006B98, - 8131: 0x00006B96, - 8132: 0x00006BBC, - 8133: 0x00006BEF, - 8134: 0x00006C2E, - 8135: 0x00006C2F, - 8136: 0x00006C2C, - 8137: 0x00006E2F, - 8138: 0x00006E38, - 8139: 0x00006E54, - 8140: 0x00006E21, - 8141: 0x00006E32, - 8142: 0x00006E67, - 8143: 0x00006E4A, - 8144: 0x00006E20, - 8145: 0x00006E25, - 8146: 0x00006E23, - 8147: 0x00006E1B, - 8148: 0x00006E5B, - 8149: 0x00006E58, - 8150: 0x00006E24, - 8151: 0x00006E56, - 8152: 0x00006E6E, - 8153: 0x00006E2D, - 8154: 0x00006E26, - 8155: 0x00006E6F, - 8156: 0x00006E34, - 8157: 0x00006E4D, - 8158: 0x00006E3A, - 8159: 0x00006E2C, - 8160: 0x00006E43, - 8161: 0x00006E1D, - 8162: 0x00006E3E, - 8163: 0x00006ECB, - 8164: 0x00006E89, - 8165: 0x00006E19, - 8166: 0x00006E4E, - 8167: 0x00006E63, - 8168: 0x00006E44, - 8169: 0x00006E72, - 8170: 0x00006E69, - 8171: 0x00006E5F, - 8172: 0x00007119, - 8173: 0x0000711A, - 8174: 0x00007126, - 8175: 0x00007130, - 8176: 0x00007121, - 8177: 0x00007136, - 8178: 0x0000716E, - 8179: 0x0000711C, - 8180: 0x0000724C, - 8181: 0x00007284, - 8182: 0x00007280, - 8183: 0x00007336, - 8184: 0x00007325, - 8185: 0x00007334, - 8186: 0x00007329, - 8187: 0x0000743A, - 8188: 0x0000742A, - 8189: 0x00007433, - 8190: 0x00007422, - 8191: 0x00007425, - 8192: 0x00007435, - 8193: 0x00007436, - 8194: 0x00007434, - 8195: 0x0000742F, - 8196: 0x0000741B, - 8197: 0x00007426, - 8198: 0x00007428, - 8199: 0x00007525, - 8200: 0x00007526, - 8201: 0x0000756B, - 8202: 0x0000756A, - 8203: 0x000075E2, - 8204: 0x000075DB, - 8205: 0x000075E3, - 8206: 0x000075D9, - 8207: 0x000075D8, - 8208: 0x000075DE, - 8209: 0x000075E0, - 8210: 0x0000767B, - 8211: 0x0000767C, - 8212: 0x00007696, - 8213: 0x00007693, - 8214: 0x000076B4, - 8215: 0x000076DC, - 8216: 0x0000774F, - 8217: 0x000077ED, - 8218: 0x0000785D, - 8219: 0x0000786C, - 8220: 0x0000786F, - 8221: 0x00007A0D, - 8222: 0x00007A08, - 8223: 0x00007A0B, - 8224: 0x00007A05, - 8225: 0x00007A00, - 8226: 0x00007A98, - 8227: 0x00007A97, - 8228: 0x00007A96, - 8229: 0x00007AE5, - 8230: 0x00007AE3, - 8231: 0x00007B49, - 8232: 0x00007B56, - 8233: 0x00007B46, - 8234: 0x00007B50, - 8235: 0x00007B52, - 8236: 0x00007B54, - 8237: 0x00007B4D, - 8238: 0x00007B4B, - 8239: 0x00007B4F, - 8240: 0x00007B51, - 8241: 0x00007C9F, - 8242: 0x00007CA5, - 8243: 0x00007D5E, - 8244: 0x00007D50, - 8245: 0x00007D68, - 8246: 0x00007D55, - 8247: 0x00007D2B, - 8248: 0x00007D6E, - 8249: 0x00007D72, - 8250: 0x00007D61, - 8251: 0x00007D66, - 8252: 0x00007D62, - 8253: 0x00007D70, - 8254: 0x00007D73, - 8255: 0x00005584, - 8256: 0x00007FD4, - 8257: 0x00007FD5, - 8258: 0x0000800B, - 8259: 0x00008052, - 8260: 0x00008085, - 8261: 0x00008155, - 8262: 0x00008154, - 8263: 0x0000814B, - 8264: 0x00008151, - 8265: 0x0000814E, - 8266: 0x00008139, - 8267: 0x00008146, - 8268: 0x0000813E, - 8269: 0x0000814C, - 8270: 0x00008153, - 8271: 0x00008174, - 8272: 0x00008212, - 8273: 0x0000821C, - 8274: 0x000083E9, - 8275: 0x00008403, - 8276: 0x000083F8, - 8277: 0x0000840D, - 8278: 0x000083E0, - 8279: 0x000083C5, - 8280: 0x0000840B, - 8281: 0x000083C1, - 8282: 0x000083EF, - 8283: 0x000083F1, - 8284: 0x000083F4, - 8285: 0x00008457, - 8286: 0x0000840A, - 8287: 0x000083F0, - 8288: 0x0000840C, - 8289: 0x000083CC, - 8290: 0x000083FD, - 8291: 0x000083F2, - 8292: 0x000083CA, - 8293: 0x00008438, - 8294: 0x0000840E, - 8295: 0x00008404, - 8296: 0x000083DC, - 8297: 0x00008407, - 8298: 0x000083D4, - 8299: 0x000083DF, - 8300: 0x0000865B, - 8301: 0x000086DF, - 8302: 0x000086D9, - 8303: 0x000086ED, - 8304: 0x000086D4, - 8305: 0x000086DB, - 8306: 0x000086E4, - 8307: 0x000086D0, - 8308: 0x000086DE, - 8309: 0x00008857, - 8310: 0x000088C1, - 8311: 0x000088C2, - 8312: 0x000088B1, - 8313: 0x00008983, - 8314: 0x00008996, - 8315: 0x00008A3B, - 8316: 0x00008A60, - 8317: 0x00008A55, - 8318: 0x00008A5E, - 8319: 0x00008A3C, - 8320: 0x00008A41, - 8321: 0x00008A54, - 8322: 0x00008A5B, - 8323: 0x00008A50, - 8324: 0x00008A46, - 8325: 0x00008A34, - 8326: 0x00008A3A, - 8327: 0x00008A36, - 8328: 0x00008A56, - 8329: 0x00008C61, - 8330: 0x00008C82, - 8331: 0x00008CAF, - 8332: 0x00008CBC, - 8333: 0x00008CB3, - 8334: 0x00008CBD, - 8335: 0x00008CC1, - 8336: 0x00008CBB, - 8337: 0x00008CC0, - 8338: 0x00008CB4, - 8339: 0x00008CB7, - 8340: 0x00008CB6, - 8341: 0x00008CBF, - 8342: 0x00008CB8, - 8343: 0x00008D8A, - 8344: 0x00008D85, - 8345: 0x00008D81, - 8346: 0x00008DCE, - 8347: 0x00008DDD, - 8348: 0x00008DCB, - 8349: 0x00008DDA, - 8350: 0x00008DD1, - 8351: 0x00008DCC, - 8352: 0x00008DDB, - 8353: 0x00008DC6, - 8354: 0x00008EFB, - 8355: 0x00008EF8, - 8356: 0x00008EFC, - 8357: 0x00008F9C, - 8358: 0x0000902E, - 8359: 0x00009035, - 8360: 0x00009031, - 8361: 0x00009038, - 8362: 0x00009032, - 8363: 0x00009036, - 8364: 0x00009102, - 8365: 0x000090F5, - 8366: 0x00009109, - 8367: 0x000090FE, - 8368: 0x00009163, - 8369: 0x00009165, - 8370: 0x000091CF, - 8371: 0x00009214, - 8372: 0x00009215, - 8373: 0x00009223, - 8374: 0x00009209, - 8375: 0x0000921E, - 8376: 0x0000920D, - 8377: 0x00009210, - 8378: 0x00009207, - 8379: 0x00009211, - 8380: 0x00009594, - 8381: 0x0000958F, - 8382: 0x0000958B, - 8383: 0x00009591, - 8384: 0x00009593, - 8385: 0x00009592, - 8386: 0x0000958E, - 8387: 0x0000968A, - 8388: 0x0000968E, - 8389: 0x0000968B, - 8390: 0x0000967D, - 8391: 0x00009685, - 8392: 0x00009686, - 8393: 0x0000968D, - 8394: 0x00009672, - 8395: 0x00009684, - 8396: 0x000096C1, - 8397: 0x000096C5, - 8398: 0x000096C4, - 8399: 0x000096C6, - 8400: 0x000096C7, - 8401: 0x000096EF, - 8402: 0x000096F2, - 8403: 0x000097CC, - 8404: 0x00009805, - 8405: 0x00009806, - 8406: 0x00009808, - 8407: 0x000098E7, - 8408: 0x000098EA, - 8409: 0x000098EF, - 8410: 0x000098E9, - 8411: 0x000098F2, - 8412: 0x000098ED, - 8413: 0x000099AE, - 8414: 0x000099AD, - 8415: 0x00009EC3, - 8416: 0x00009ECD, - 8417: 0x00009ED1, - 8418: 0x00004E82, - 8419: 0x000050AD, - 8420: 0x000050B5, - 8421: 0x000050B2, - 8422: 0x000050B3, - 8423: 0x000050C5, - 8424: 0x000050BE, - 8425: 0x000050AC, - 8426: 0x000050B7, - 8427: 0x000050BB, - 8428: 0x000050AF, - 8429: 0x000050C7, - 8430: 0x0000527F, - 8431: 0x00005277, - 8432: 0x0000527D, - 8433: 0x000052DF, - 8434: 0x000052E6, - 8435: 0x000052E4, - 8436: 0x000052E2, - 8437: 0x000052E3, - 8438: 0x0000532F, - 8439: 0x000055DF, - 8440: 0x000055E8, - 8441: 0x000055D3, - 8442: 0x000055E6, - 8443: 0x000055CE, - 8444: 0x000055DC, - 8445: 0x000055C7, - 8446: 0x000055D1, - 8447: 0x000055E3, - 8448: 0x000055E4, - 8449: 0x000055EF, - 8450: 0x000055DA, - 8451: 0x000055E1, - 8452: 0x000055C5, - 8453: 0x000055C6, - 8454: 0x000055E5, - 8455: 0x000055C9, - 8456: 0x00005712, - 8457: 0x00005713, - 8458: 0x0000585E, - 8459: 0x00005851, - 8460: 0x00005858, - 8461: 0x00005857, - 8462: 0x0000585A, - 8463: 0x00005854, - 8464: 0x0000586B, - 8465: 0x0000584C, - 8466: 0x0000586D, - 8467: 0x0000584A, - 8468: 0x00005862, - 8469: 0x00005852, - 8470: 0x0000584B, - 8471: 0x00005967, - 8472: 0x00005AC1, - 8473: 0x00005AC9, - 8474: 0x00005ACC, - 8475: 0x00005ABE, - 8476: 0x00005ABD, - 8477: 0x00005ABC, - 8478: 0x00005AB3, - 8479: 0x00005AC2, - 8480: 0x00005AB2, - 8481: 0x00005D69, - 8482: 0x00005D6F, - 8483: 0x00005E4C, - 8484: 0x00005E79, - 8485: 0x00005EC9, - 8486: 0x00005EC8, - 8487: 0x00005F12, - 8488: 0x00005F59, - 8489: 0x00005FAC, - 8490: 0x00005FAE, - 8491: 0x0000611A, - 8492: 0x0000610F, - 8493: 0x00006148, - 8494: 0x0000611F, - 8495: 0x000060F3, - 8496: 0x0000611B, - 8497: 0x000060F9, - 8498: 0x00006101, - 8499: 0x00006108, - 8500: 0x0000614E, - 8501: 0x0000614C, - 8502: 0x00006144, - 8503: 0x0000614D, - 8504: 0x0000613E, - 8505: 0x00006134, - 8506: 0x00006127, - 8507: 0x0000610D, - 8508: 0x00006106, - 8509: 0x00006137, - 8510: 0x00006221, - 8511: 0x00006222, - 8512: 0x00006413, - 8513: 0x0000643E, - 8514: 0x0000641E, - 8515: 0x0000642A, - 8516: 0x0000642D, - 8517: 0x0000643D, - 8518: 0x0000642C, - 8519: 0x0000640F, - 8520: 0x0000641C, - 8521: 0x00006414, - 8522: 0x0000640D, - 8523: 0x00006436, - 8524: 0x00006416, - 8525: 0x00006417, - 8526: 0x00006406, - 8527: 0x0000656C, - 8528: 0x0000659F, - 8529: 0x000065B0, - 8530: 0x00006697, - 8531: 0x00006689, - 8532: 0x00006687, - 8533: 0x00006688, - 8534: 0x00006696, - 8535: 0x00006684, - 8536: 0x00006698, - 8537: 0x0000668D, - 8538: 0x00006703, - 8539: 0x00006994, - 8540: 0x0000696D, - 8541: 0x0000695A, - 8542: 0x00006977, - 8543: 0x00006960, - 8544: 0x00006954, - 8545: 0x00006975, - 8546: 0x00006930, - 8547: 0x00006982, - 8548: 0x0000694A, - 8549: 0x00006968, - 8550: 0x0000696B, - 8551: 0x0000695E, - 8552: 0x00006953, - 8553: 0x00006979, - 8554: 0x00006986, - 8555: 0x0000695D, - 8556: 0x00006963, - 8557: 0x0000695B, - 8558: 0x00006B47, - 8559: 0x00006B72, - 8560: 0x00006BC0, - 8561: 0x00006BBF, - 8562: 0x00006BD3, - 8563: 0x00006BFD, - 8564: 0x00006EA2, - 8565: 0x00006EAF, - 8566: 0x00006ED3, - 8567: 0x00006EB6, - 8568: 0x00006EC2, - 8569: 0x00006E90, - 8570: 0x00006E9D, - 8571: 0x00006EC7, - 8572: 0x00006EC5, - 8573: 0x00006EA5, - 8574: 0x00006E98, - 8575: 0x00006EBC, - 8576: 0x00006EBA, - 8577: 0x00006EAB, - 8578: 0x00006ED1, - 8579: 0x00006E96, - 8580: 0x00006E9C, - 8581: 0x00006EC4, - 8582: 0x00006ED4, - 8583: 0x00006EAA, - 8584: 0x00006EA7, - 8585: 0x00006EB4, - 8586: 0x0000714E, - 8587: 0x00007159, - 8588: 0x00007169, - 8589: 0x00007164, - 8590: 0x00007149, - 8591: 0x00007167, - 8592: 0x0000715C, - 8593: 0x0000716C, - 8594: 0x00007166, - 8595: 0x0000714C, - 8596: 0x00007165, - 8597: 0x0000715E, - 8598: 0x00007146, - 8599: 0x00007168, - 8600: 0x00007156, - 8601: 0x0000723A, - 8602: 0x00007252, - 8603: 0x00007337, - 8604: 0x00007345, - 8605: 0x0000733F, - 8606: 0x0000733E, - 8607: 0x0000746F, - 8608: 0x0000745A, - 8609: 0x00007455, - 8610: 0x0000745F, - 8611: 0x0000745E, - 8612: 0x00007441, - 8613: 0x0000743F, - 8614: 0x00007459, - 8615: 0x0000745B, - 8616: 0x0000745C, - 8617: 0x00007576, - 8618: 0x00007578, - 8619: 0x00007600, - 8620: 0x000075F0, - 8621: 0x00007601, - 8622: 0x000075F2, - 8623: 0x000075F1, - 8624: 0x000075FA, - 8625: 0x000075FF, - 8626: 0x000075F4, - 8627: 0x000075F3, - 8628: 0x000076DE, - 8629: 0x000076DF, - 8630: 0x0000775B, - 8631: 0x0000776B, - 8632: 0x00007766, - 8633: 0x0000775E, - 8634: 0x00007763, - 8635: 0x00007779, - 8636: 0x0000776A, - 8637: 0x0000776C, - 8638: 0x0000775C, - 8639: 0x00007765, - 8640: 0x00007768, - 8641: 0x00007762, - 8642: 0x000077EE, - 8643: 0x0000788E, - 8644: 0x000078B0, - 8645: 0x00007897, - 8646: 0x00007898, - 8647: 0x0000788C, - 8648: 0x00007889, - 8649: 0x0000787C, - 8650: 0x00007891, - 8651: 0x00007893, - 8652: 0x0000787F, - 8653: 0x0000797A, - 8654: 0x0000797F, - 8655: 0x00007981, - 8656: 0x0000842C, - 8657: 0x000079BD, - 8658: 0x00007A1C, - 8659: 0x00007A1A, - 8660: 0x00007A20, - 8661: 0x00007A14, - 8662: 0x00007A1F, - 8663: 0x00007A1E, - 8664: 0x00007A9F, - 8665: 0x00007AA0, - 8666: 0x00007B77, - 8667: 0x00007BC0, - 8668: 0x00007B60, - 8669: 0x00007B6E, - 8670: 0x00007B67, - 8671: 0x00007CB1, - 8672: 0x00007CB3, - 8673: 0x00007CB5, - 8674: 0x00007D93, - 8675: 0x00007D79, - 8676: 0x00007D91, - 8677: 0x00007D81, - 8678: 0x00007D8F, - 8679: 0x00007D5B, - 8680: 0x00007F6E, - 8681: 0x00007F69, - 8682: 0x00007F6A, - 8683: 0x00007F72, - 8684: 0x00007FA9, - 8685: 0x00007FA8, - 8686: 0x00007FA4, - 8687: 0x00008056, - 8688: 0x00008058, - 8689: 0x00008086, - 8690: 0x00008084, - 8691: 0x00008171, - 8692: 0x00008170, - 8693: 0x00008178, - 8694: 0x00008165, - 8695: 0x0000816E, - 8696: 0x00008173, - 8697: 0x0000816B, - 8698: 0x00008179, - 8699: 0x0000817A, - 8700: 0x00008166, - 8701: 0x00008205, - 8702: 0x00008247, - 8703: 0x00008482, - 8704: 0x00008477, - 8705: 0x0000843D, - 8706: 0x00008431, - 8707: 0x00008475, - 8708: 0x00008466, - 8709: 0x0000846B, - 8710: 0x00008449, - 8711: 0x0000846C, - 8712: 0x0000845B, - 8713: 0x0000843C, - 8714: 0x00008435, - 8715: 0x00008461, - 8716: 0x00008463, - 8717: 0x00008469, - 8718: 0x0000846D, - 8719: 0x00008446, - 8720: 0x0000865E, - 8721: 0x0000865C, - 8722: 0x0000865F, - 8723: 0x000086F9, - 8724: 0x00008713, - 8725: 0x00008708, - 8726: 0x00008707, - 8727: 0x00008700, - 8728: 0x000086FE, - 8729: 0x000086FB, - 8730: 0x00008702, - 8731: 0x00008703, - 8732: 0x00008706, - 8733: 0x0000870A, - 8734: 0x00008859, - 8735: 0x000088DF, - 8736: 0x000088D4, - 8737: 0x000088D9, - 8738: 0x000088DC, - 8739: 0x000088D8, - 8740: 0x000088DD, - 8741: 0x000088E1, - 8742: 0x000088CA, - 8743: 0x000088D5, - 8744: 0x000088D2, - 8745: 0x0000899C, - 8746: 0x000089E3, - 8747: 0x00008A6B, - 8748: 0x00008A72, - 8749: 0x00008A73, - 8750: 0x00008A66, - 8751: 0x00008A69, - 8752: 0x00008A70, - 8753: 0x00008A87, - 8754: 0x00008A7C, - 8755: 0x00008A63, - 8756: 0x00008AA0, - 8757: 0x00008A71, - 8758: 0x00008A85, - 8759: 0x00008A6D, - 8760: 0x00008A62, - 8761: 0x00008A6E, - 8762: 0x00008A6C, - 8763: 0x00008A79, - 8764: 0x00008A7B, - 8765: 0x00008A3E, - 8766: 0x00008A68, - 8767: 0x00008C62, - 8768: 0x00008C8A, - 8769: 0x00008C89, - 8770: 0x00008CCA, - 8771: 0x00008CC7, - 8772: 0x00008CC8, - 8773: 0x00008CC4, - 8774: 0x00008CB2, - 8775: 0x00008CC3, - 8776: 0x00008CC2, - 8777: 0x00008CC5, - 8778: 0x00008DE1, - 8779: 0x00008DDF, - 8780: 0x00008DE8, - 8781: 0x00008DEF, - 8782: 0x00008DF3, - 8783: 0x00008DFA, - 8784: 0x00008DEA, - 8785: 0x00008DE4, - 8786: 0x00008DE6, - 8787: 0x00008EB2, - 8788: 0x00008F03, - 8789: 0x00008F09, - 8790: 0x00008EFE, - 8791: 0x00008F0A, - 8792: 0x00008F9F, - 8793: 0x00008FB2, - 8794: 0x0000904B, - 8795: 0x0000904A, - 8796: 0x00009053, - 8797: 0x00009042, - 8798: 0x00009054, - 8799: 0x0000903C, - 8800: 0x00009055, - 8801: 0x00009050, - 8802: 0x00009047, - 8803: 0x0000904F, - 8804: 0x0000904E, - 8805: 0x0000904D, - 8806: 0x00009051, - 8807: 0x0000903E, - 8808: 0x00009041, - 8809: 0x00009112, - 8810: 0x00009117, - 8811: 0x0000916C, - 8812: 0x0000916A, - 8813: 0x00009169, - 8814: 0x000091C9, - 8815: 0x00009237, - 8816: 0x00009257, - 8817: 0x00009238, - 8818: 0x0000923D, - 8819: 0x00009240, - 8820: 0x0000923E, - 8821: 0x0000925B, - 8822: 0x0000924B, - 8823: 0x00009264, - 8824: 0x00009251, - 8825: 0x00009234, - 8826: 0x00009249, - 8827: 0x0000924D, - 8828: 0x00009245, - 8829: 0x00009239, - 8830: 0x0000923F, - 8831: 0x0000925A, - 8832: 0x00009598, - 8833: 0x00009698, - 8834: 0x00009694, - 8835: 0x00009695, - 8836: 0x000096CD, - 8837: 0x000096CB, - 8838: 0x000096C9, - 8839: 0x000096CA, - 8840: 0x000096F7, - 8841: 0x000096FB, - 8842: 0x000096F9, - 8843: 0x000096F6, - 8844: 0x00009756, - 8845: 0x00009774, - 8846: 0x00009776, - 8847: 0x00009810, - 8848: 0x00009811, - 8849: 0x00009813, - 8850: 0x0000980A, - 8851: 0x00009812, - 8852: 0x0000980C, - 8853: 0x000098FC, - 8854: 0x000098F4, - 8855: 0x000098FD, - 8856: 0x000098FE, - 8857: 0x000099B3, - 8858: 0x000099B1, - 8859: 0x000099B4, - 8860: 0x00009AE1, - 8861: 0x00009CE9, - 8862: 0x00009E82, - 8863: 0x00009F0E, - 8864: 0x00009F13, - 8865: 0x00009F20, - 8866: 0x000050E7, - 8867: 0x000050EE, - 8868: 0x000050E5, - 8869: 0x000050D6, - 8870: 0x000050ED, - 8871: 0x000050DA, - 8872: 0x000050D5, - 8873: 0x000050CF, - 8874: 0x000050D1, - 8875: 0x000050F1, - 8876: 0x000050CE, - 8877: 0x000050E9, - 8878: 0x00005162, - 8879: 0x000051F3, - 8880: 0x00005283, - 8881: 0x00005282, - 8882: 0x00005331, - 8883: 0x000053AD, - 8884: 0x000055FE, - 8885: 0x00005600, - 8886: 0x0000561B, - 8887: 0x00005617, - 8888: 0x000055FD, - 8889: 0x00005614, - 8890: 0x00005606, - 8891: 0x00005609, - 8892: 0x0000560D, - 8893: 0x0000560E, - 8894: 0x000055F7, - 8895: 0x00005616, - 8896: 0x0000561F, - 8897: 0x00005608, - 8898: 0x00005610, - 8899: 0x000055F6, - 8900: 0x00005718, - 8901: 0x00005716, - 8902: 0x00005875, - 8903: 0x0000587E, - 8904: 0x00005883, - 8905: 0x00005893, - 8906: 0x0000588A, - 8907: 0x00005879, - 8908: 0x00005885, - 8909: 0x0000587D, - 8910: 0x000058FD, - 8911: 0x00005925, - 8912: 0x00005922, - 8913: 0x00005924, - 8914: 0x0000596A, - 8915: 0x00005969, - 8916: 0x00005AE1, - 8917: 0x00005AE6, - 8918: 0x00005AE9, - 8919: 0x00005AD7, - 8920: 0x00005AD6, - 8921: 0x00005AD8, - 8922: 0x00005AE3, - 8923: 0x00005B75, - 8924: 0x00005BDE, - 8925: 0x00005BE7, - 8926: 0x00005BE1, - 8927: 0x00005BE5, - 8928: 0x00005BE6, - 8929: 0x00005BE8, - 8930: 0x00005BE2, - 8931: 0x00005BE4, - 8932: 0x00005BDF, - 8933: 0x00005C0D, - 8934: 0x00005C62, - 8935: 0x00005D84, - 8936: 0x00005D87, - 8937: 0x00005E5B, - 8938: 0x00005E63, - 8939: 0x00005E55, - 8940: 0x00005E57, - 8941: 0x00005E54, - 8942: 0x00005ED3, - 8943: 0x00005ED6, - 8944: 0x00005F0A, - 8945: 0x00005F46, - 8946: 0x00005F70, - 8947: 0x00005FB9, - 8948: 0x00006147, - 8949: 0x0000613F, - 8950: 0x0000614B, - 8951: 0x00006177, - 8952: 0x00006162, - 8953: 0x00006163, - 8954: 0x0000615F, - 8955: 0x0000615A, - 8956: 0x00006158, - 8957: 0x00006175, - 8958: 0x0000622A, - 8959: 0x00006487, - 8960: 0x00006458, - 8961: 0x00006454, - 8962: 0x000064A4, - 8963: 0x00006478, - 8964: 0x0000645F, - 8965: 0x0000647A, - 8966: 0x00006451, - 8967: 0x00006467, - 8968: 0x00006434, - 8969: 0x0000646D, - 8970: 0x0000647B, - 8971: 0x00006572, - 8972: 0x000065A1, - 8973: 0x000065D7, - 8974: 0x000065D6, - 8975: 0x000066A2, - 8976: 0x000066A8, - 8977: 0x0000669D, - 8978: 0x0000699C, - 8979: 0x000069A8, - 8980: 0x00006995, - 8981: 0x000069C1, - 8982: 0x000069AE, - 8983: 0x000069D3, - 8984: 0x000069CB, - 8985: 0x0000699B, - 8986: 0x000069B7, - 8987: 0x000069BB, - 8988: 0x000069AB, - 8989: 0x000069B4, - 8990: 0x000069D0, - 8991: 0x000069CD, - 8992: 0x000069AD, - 8993: 0x000069CC, - 8994: 0x000069A6, - 8995: 0x000069C3, - 8996: 0x000069A3, - 8997: 0x00006B49, - 8998: 0x00006B4C, - 8999: 0x00006C33, - 9000: 0x00006F33, - 9001: 0x00006F14, - 9002: 0x00006EFE, - 9003: 0x00006F13, - 9004: 0x00006EF4, - 9005: 0x00006F29, - 9006: 0x00006F3E, - 9007: 0x00006F20, - 9008: 0x00006F2C, - 9009: 0x00006F0F, - 9010: 0x00006F02, - 9011: 0x00006F22, - 9012: 0x00006EFF, - 9013: 0x00006EEF, - 9014: 0x00006F06, - 9015: 0x00006F31, - 9016: 0x00006F38, - 9017: 0x00006F32, - 9018: 0x00006F23, - 9019: 0x00006F15, - 9020: 0x00006F2B, - 9021: 0x00006F2F, - 9022: 0x00006F88, - 9023: 0x00006F2A, - 9024: 0x00006EEC, - 9025: 0x00006F01, - 9026: 0x00006EF2, - 9027: 0x00006ECC, - 9028: 0x00006EF7, - 9029: 0x00007194, - 9030: 0x00007199, - 9031: 0x0000717D, - 9032: 0x0000718A, - 9033: 0x00007184, - 9034: 0x00007192, - 9035: 0x0000723E, - 9036: 0x00007292, - 9037: 0x00007296, - 9038: 0x00007344, - 9039: 0x00007350, - 9040: 0x00007464, - 9041: 0x00007463, - 9042: 0x0000746A, - 9043: 0x00007470, - 9044: 0x0000746D, - 9045: 0x00007504, - 9046: 0x00007591, - 9047: 0x00007627, - 9048: 0x0000760D, - 9049: 0x0000760B, - 9050: 0x00007609, - 9051: 0x00007613, - 9052: 0x000076E1, - 9053: 0x000076E3, - 9054: 0x00007784, - 9055: 0x0000777D, - 9056: 0x0000777F, - 9057: 0x00007761, - 9058: 0x000078C1, - 9059: 0x0000789F, - 9060: 0x000078A7, - 9061: 0x000078B3, - 9062: 0x000078A9, - 9063: 0x000078A3, - 9064: 0x0000798E, - 9065: 0x0000798F, - 9066: 0x0000798D, - 9067: 0x00007A2E, - 9068: 0x00007A31, - 9069: 0x00007AAA, - 9070: 0x00007AA9, - 9071: 0x00007AED, - 9072: 0x00007AEF, - 9073: 0x00007BA1, - 9074: 0x00007B95, - 9075: 0x00007B8B, - 9076: 0x00007B75, - 9077: 0x00007B97, - 9078: 0x00007B9D, - 9079: 0x00007B94, - 9080: 0x00007B8F, - 9081: 0x00007BB8, - 9082: 0x00007B87, - 9083: 0x00007B84, - 9084: 0x00007CB9, - 9085: 0x00007CBD, - 9086: 0x00007CBE, - 9087: 0x00007DBB, - 9088: 0x00007DB0, - 9089: 0x00007D9C, - 9090: 0x00007DBD, - 9091: 0x00007DBE, - 9092: 0x00007DA0, - 9093: 0x00007DCA, - 9094: 0x00007DB4, - 9095: 0x00007DB2, - 9096: 0x00007DB1, - 9097: 0x00007DBA, - 9098: 0x00007DA2, - 9099: 0x00007DBF, - 9100: 0x00007DB5, - 9101: 0x00007DB8, - 9102: 0x00007DAD, - 9103: 0x00007DD2, - 9104: 0x00007DC7, - 9105: 0x00007DAC, - 9106: 0x00007F70, - 9107: 0x00007FE0, - 9108: 0x00007FE1, - 9109: 0x00007FDF, - 9110: 0x0000805E, - 9111: 0x0000805A, - 9112: 0x00008087, - 9113: 0x00008150, - 9114: 0x00008180, - 9115: 0x0000818F, - 9116: 0x00008188, - 9117: 0x0000818A, - 9118: 0x0000817F, - 9119: 0x00008182, - 9120: 0x000081E7, - 9121: 0x000081FA, - 9122: 0x00008207, - 9123: 0x00008214, - 9124: 0x0000821E, - 9125: 0x0000824B, - 9126: 0x000084C9, - 9127: 0x000084BF, - 9128: 0x000084C6, - 9129: 0x000084C4, - 9130: 0x00008499, - 9131: 0x0000849E, - 9132: 0x000084B2, - 9133: 0x0000849C, - 9134: 0x000084CB, - 9135: 0x000084B8, - 9136: 0x000084C0, - 9137: 0x000084D3, - 9138: 0x00008490, - 9139: 0x000084BC, - 9140: 0x000084D1, - 9141: 0x000084CA, - 9142: 0x0000873F, - 9143: 0x0000871C, - 9144: 0x0000873B, - 9145: 0x00008722, - 9146: 0x00008725, - 9147: 0x00008734, - 9148: 0x00008718, - 9149: 0x00008755, - 9150: 0x00008737, - 9151: 0x00008729, - 9152: 0x000088F3, - 9153: 0x00008902, - 9154: 0x000088F4, - 9155: 0x000088F9, - 9156: 0x000088F8, - 9157: 0x000088FD, - 9158: 0x000088E8, - 9159: 0x0000891A, - 9160: 0x000088EF, - 9161: 0x00008AA6, - 9162: 0x00008A8C, - 9163: 0x00008A9E, - 9164: 0x00008AA3, - 9165: 0x00008A8D, - 9166: 0x00008AA1, - 9167: 0x00008A93, - 9168: 0x00008AA4, - 9169: 0x00008AAA, - 9170: 0x00008AA5, - 9171: 0x00008AA8, - 9172: 0x00008A98, - 9173: 0x00008A91, - 9174: 0x00008A9A, - 9175: 0x00008AA7, - 9176: 0x00008C6A, - 9177: 0x00008C8D, - 9178: 0x00008C8C, - 9179: 0x00008CD3, - 9180: 0x00008CD1, - 9181: 0x00008CD2, - 9182: 0x00008D6B, - 9183: 0x00008D99, - 9184: 0x00008D95, - 9185: 0x00008DFC, - 9186: 0x00008F14, - 9187: 0x00008F12, - 9188: 0x00008F15, - 9189: 0x00008F13, - 9190: 0x00008FA3, - 9191: 0x00009060, - 9192: 0x00009058, - 9193: 0x0000905C, - 9194: 0x00009063, - 9195: 0x00009059, - 9196: 0x0000905E, - 9197: 0x00009062, - 9198: 0x0000905D, - 9199: 0x0000905B, - 9200: 0x00009119, - 9201: 0x00009118, - 9202: 0x0000911E, - 9203: 0x00009175, - 9204: 0x00009178, - 9205: 0x00009177, - 9206: 0x00009174, - 9207: 0x00009278, - 9208: 0x00009280, - 9209: 0x00009285, - 9210: 0x00009298, - 9211: 0x00009296, - 9212: 0x0000927B, - 9213: 0x00009293, - 9214: 0x0000929C, - 9215: 0x000092A8, - 9216: 0x0000927C, - 9217: 0x00009291, - 9218: 0x000095A1, - 9219: 0x000095A8, - 9220: 0x000095A9, - 9221: 0x000095A3, - 9222: 0x000095A5, - 9223: 0x000095A4, - 9224: 0x00009699, - 9225: 0x0000969C, - 9226: 0x0000969B, - 9227: 0x000096CC, - 9228: 0x000096D2, - 9229: 0x00009700, - 9230: 0x0000977C, - 9231: 0x00009785, - 9232: 0x000097F6, - 9233: 0x00009817, - 9234: 0x00009818, - 9235: 0x000098AF, - 9236: 0x000098B1, - 9237: 0x00009903, - 9238: 0x00009905, - 9239: 0x0000990C, - 9240: 0x00009909, - 9241: 0x000099C1, - 9242: 0x00009AAF, - 9243: 0x00009AB0, - 9244: 0x00009AE6, - 9245: 0x00009B41, - 9246: 0x00009B42, - 9247: 0x00009CF4, - 9248: 0x00009CF6, - 9249: 0x00009CF3, - 9250: 0x00009EBC, - 9251: 0x00009F3B, - 9252: 0x00009F4A, - 9253: 0x00005104, - 9254: 0x00005100, - 9255: 0x000050FB, - 9256: 0x000050F5, - 9257: 0x000050F9, - 9258: 0x00005102, - 9259: 0x00005108, - 9260: 0x00005109, - 9261: 0x00005105, - 9262: 0x000051DC, - 9263: 0x00005287, - 9264: 0x00005288, - 9265: 0x00005289, - 9266: 0x0000528D, - 9267: 0x0000528A, - 9268: 0x000052F0, - 9269: 0x000053B2, - 9270: 0x0000562E, - 9271: 0x0000563B, - 9272: 0x00005639, - 9273: 0x00005632, - 9274: 0x0000563F, - 9275: 0x00005634, - 9276: 0x00005629, - 9277: 0x00005653, - 9278: 0x0000564E, - 9279: 0x00005657, - 9280: 0x00005674, - 9281: 0x00005636, - 9282: 0x0000562F, - 9283: 0x00005630, - 9284: 0x00005880, - 9285: 0x0000589F, - 9286: 0x0000589E, - 9287: 0x000058B3, - 9288: 0x0000589C, - 9289: 0x000058AE, - 9290: 0x000058A9, - 9291: 0x000058A6, - 9292: 0x0000596D, - 9293: 0x00005B09, - 9294: 0x00005AFB, - 9295: 0x00005B0B, - 9296: 0x00005AF5, - 9297: 0x00005B0C, - 9298: 0x00005B08, - 9299: 0x00005BEE, - 9300: 0x00005BEC, - 9301: 0x00005BE9, - 9302: 0x00005BEB, - 9303: 0x00005C64, - 9304: 0x00005C65, - 9305: 0x00005D9D, - 9306: 0x00005D94, - 9307: 0x00005E62, - 9308: 0x00005E5F, - 9309: 0x00005E61, - 9310: 0x00005EE2, - 9311: 0x00005EDA, - 9312: 0x00005EDF, - 9313: 0x00005EDD, - 9314: 0x00005EE3, - 9315: 0x00005EE0, - 9316: 0x00005F48, - 9317: 0x00005F71, - 9318: 0x00005FB7, - 9319: 0x00005FB5, - 9320: 0x00006176, - 9321: 0x00006167, - 9322: 0x0000616E, - 9323: 0x0000615D, - 9324: 0x00006155, - 9325: 0x00006182, - 9326: 0x0000617C, - 9327: 0x00006170, - 9328: 0x0000616B, - 9329: 0x0000617E, - 9330: 0x000061A7, - 9331: 0x00006190, - 9332: 0x000061AB, - 9333: 0x0000618E, - 9334: 0x000061AC, - 9335: 0x0000619A, - 9336: 0x000061A4, - 9337: 0x00006194, - 9338: 0x000061AE, - 9339: 0x0000622E, - 9340: 0x00006469, - 9341: 0x0000646F, - 9342: 0x00006479, - 9343: 0x0000649E, - 9344: 0x000064B2, - 9345: 0x00006488, - 9346: 0x00006490, - 9347: 0x000064B0, - 9348: 0x000064A5, - 9349: 0x00006493, - 9350: 0x00006495, - 9351: 0x000064A9, - 9352: 0x00006492, - 9353: 0x000064AE, - 9354: 0x000064AD, - 9355: 0x000064AB, - 9356: 0x0000649A, - 9357: 0x000064AC, - 9358: 0x00006499, - 9359: 0x000064A2, - 9360: 0x000064B3, - 9361: 0x00006575, - 9362: 0x00006577, - 9363: 0x00006578, - 9364: 0x000066AE, - 9365: 0x000066AB, - 9366: 0x000066B4, - 9367: 0x000066B1, - 9368: 0x00006A23, - 9369: 0x00006A1F, - 9370: 0x000069E8, - 9371: 0x00006A01, - 9372: 0x00006A1E, - 9373: 0x00006A19, - 9374: 0x000069FD, - 9375: 0x00006A21, - 9376: 0x00006A13, - 9377: 0x00006A0A, - 9378: 0x000069F3, - 9379: 0x00006A02, - 9380: 0x00006A05, - 9381: 0x000069ED, - 9382: 0x00006A11, - 9383: 0x00006B50, - 9384: 0x00006B4E, - 9385: 0x00006BA4, - 9386: 0x00006BC5, - 9387: 0x00006BC6, - 9388: 0x00006F3F, - 9389: 0x00006F7C, - 9390: 0x00006F84, - 9391: 0x00006F51, - 9392: 0x00006F66, - 9393: 0x00006F54, - 9394: 0x00006F86, - 9395: 0x00006F6D, - 9396: 0x00006F5B, - 9397: 0x00006F78, - 9398: 0x00006F6E, - 9399: 0x00006F8E, - 9400: 0x00006F7A, - 9401: 0x00006F70, - 9402: 0x00006F64, - 9403: 0x00006F97, - 9404: 0x00006F58, - 9405: 0x00006ED5, - 9406: 0x00006F6F, - 9407: 0x00006F60, - 9408: 0x00006F5F, - 9409: 0x0000719F, - 9410: 0x000071AC, - 9411: 0x000071B1, - 9412: 0x000071A8, - 9413: 0x00007256, - 9414: 0x0000729B, - 9415: 0x0000734E, - 9416: 0x00007357, - 9417: 0x00007469, - 9418: 0x0000748B, - 9419: 0x00007483, - 9420: 0x0000747E, - 9421: 0x00007480, - 9422: 0x0000757F, - 9423: 0x00007620, - 9424: 0x00007629, - 9425: 0x0000761F, - 9426: 0x00007624, - 9427: 0x00007626, - 9428: 0x00007621, - 9429: 0x00007622, - 9430: 0x0000769A, - 9431: 0x000076BA, - 9432: 0x000076E4, - 9433: 0x0000778E, - 9434: 0x00007787, - 9435: 0x0000778C, - 9436: 0x00007791, - 9437: 0x0000778B, - 9438: 0x000078CB, - 9439: 0x000078C5, - 9440: 0x000078BA, - 9441: 0x000078CA, - 9442: 0x000078BE, - 9443: 0x000078D5, - 9444: 0x000078BC, - 9445: 0x000078D0, - 9446: 0x00007A3F, - 9447: 0x00007A3C, - 9448: 0x00007A40, - 9449: 0x00007A3D, - 9450: 0x00007A37, - 9451: 0x00007A3B, - 9452: 0x00007AAF, - 9453: 0x00007AAE, - 9454: 0x00007BAD, - 9455: 0x00007BB1, - 9456: 0x00007BC4, - 9457: 0x00007BB4, - 9458: 0x00007BC6, - 9459: 0x00007BC7, - 9460: 0x00007BC1, - 9461: 0x00007BA0, - 9462: 0x00007BCC, - 9463: 0x00007CCA, - 9464: 0x00007DE0, - 9465: 0x00007DF4, - 9466: 0x00007DEF, - 9467: 0x00007DFB, - 9468: 0x00007DD8, - 9469: 0x00007DEC, - 9470: 0x00007DDD, - 9471: 0x00007DE8, - 9472: 0x00007DE3, - 9473: 0x00007DDA, - 9474: 0x00007DDE, - 9475: 0x00007DE9, - 9476: 0x00007D9E, - 9477: 0x00007DD9, - 9478: 0x00007DF2, - 9479: 0x00007DF9, - 9480: 0x00007F75, - 9481: 0x00007F77, - 9482: 0x00007FAF, - 9483: 0x00007FE9, - 9484: 0x00008026, - 9485: 0x0000819B, - 9486: 0x0000819C, - 9487: 0x0000819D, - 9488: 0x000081A0, - 9489: 0x0000819A, - 9490: 0x00008198, - 9491: 0x00008517, - 9492: 0x0000853D, - 9493: 0x0000851A, - 9494: 0x000084EE, - 9495: 0x0000852C, - 9496: 0x0000852D, - 9497: 0x00008513, - 9498: 0x00008511, - 9499: 0x00008523, - 9500: 0x00008521, - 9501: 0x00008514, - 9502: 0x000084EC, - 9503: 0x00008525, - 9504: 0x000084FF, - 9505: 0x00008506, - 9506: 0x00008782, - 9507: 0x00008774, - 9508: 0x00008776, - 9509: 0x00008760, - 9510: 0x00008766, - 9511: 0x00008778, - 9512: 0x00008768, - 9513: 0x00008759, - 9514: 0x00008757, - 9515: 0x0000874C, - 9516: 0x00008753, - 9517: 0x0000885B, - 9518: 0x0000885D, - 9519: 0x00008910, - 9520: 0x00008907, - 9521: 0x00008912, - 9522: 0x00008913, - 9523: 0x00008915, - 9524: 0x0000890A, - 9525: 0x00008ABC, - 9526: 0x00008AD2, - 9527: 0x00008AC7, - 9528: 0x00008AC4, - 9529: 0x00008A95, - 9530: 0x00008ACB, - 9531: 0x00008AF8, - 9532: 0x00008AB2, - 9533: 0x00008AC9, - 9534: 0x00008AC2, - 9535: 0x00008ABF, - 9536: 0x00008AB0, - 9537: 0x00008AD6, - 9538: 0x00008ACD, - 9539: 0x00008AB6, - 9540: 0x00008AB9, - 9541: 0x00008ADB, - 9542: 0x00008C4C, - 9543: 0x00008C4E, - 9544: 0x00008C6C, - 9545: 0x00008CE0, - 9546: 0x00008CDE, - 9547: 0x00008CE6, - 9548: 0x00008CE4, - 9549: 0x00008CEC, - 9550: 0x00008CED, - 9551: 0x00008CE2, - 9552: 0x00008CE3, - 9553: 0x00008CDC, - 9554: 0x00008CEA, - 9555: 0x00008CE1, - 9556: 0x00008D6D, - 9557: 0x00008D9F, - 9558: 0x00008DA3, - 9559: 0x00008E2B, - 9560: 0x00008E10, - 9561: 0x00008E1D, - 9562: 0x00008E22, - 9563: 0x00008E0F, - 9564: 0x00008E29, - 9565: 0x00008E1F, - 9566: 0x00008E21, - 9567: 0x00008E1E, - 9568: 0x00008EBA, - 9569: 0x00008F1D, - 9570: 0x00008F1B, - 9571: 0x00008F1F, - 9572: 0x00008F29, - 9573: 0x00008F26, - 9574: 0x00008F2A, - 9575: 0x00008F1C, - 9576: 0x00008F1E, - 9577: 0x00008F25, - 9578: 0x00009069, - 9579: 0x0000906E, - 9580: 0x00009068, - 9581: 0x0000906D, - 9582: 0x00009077, - 9583: 0x00009130, - 9584: 0x0000912D, - 9585: 0x00009127, - 9586: 0x00009131, - 9587: 0x00009187, - 9588: 0x00009189, - 9589: 0x0000918B, - 9590: 0x00009183, - 9591: 0x000092C5, - 9592: 0x000092BB, - 9593: 0x000092B7, - 9594: 0x000092EA, - 9595: 0x000092AC, - 9596: 0x000092E4, - 9597: 0x000092C1, - 9598: 0x000092B3, - 9599: 0x000092BC, - 9600: 0x000092D2, - 9601: 0x000092C7, - 9602: 0x000092F0, - 9603: 0x000092B2, - 9604: 0x000095AD, - 9605: 0x000095B1, - 9606: 0x00009704, - 9607: 0x00009706, - 9608: 0x00009707, - 9609: 0x00009709, - 9610: 0x00009760, - 9611: 0x0000978D, - 9612: 0x0000978B, - 9613: 0x0000978F, - 9614: 0x00009821, - 9615: 0x0000982B, - 9616: 0x0000981C, - 9617: 0x000098B3, - 9618: 0x0000990A, - 9619: 0x00009913, - 9620: 0x00009912, - 9621: 0x00009918, - 9622: 0x000099DD, - 9623: 0x000099D0, - 9624: 0x000099DF, - 9625: 0x000099DB, - 9626: 0x000099D1, - 9627: 0x000099D5, - 9628: 0x000099D2, - 9629: 0x000099D9, - 9630: 0x00009AB7, - 9631: 0x00009AEE, - 9632: 0x00009AEF, - 9633: 0x00009B27, - 9634: 0x00009B45, - 9635: 0x00009B44, - 9636: 0x00009B77, - 9637: 0x00009B6F, - 9638: 0x00009D06, - 9639: 0x00009D09, - 9640: 0x00009D03, - 9641: 0x00009EA9, - 9642: 0x00009EBE, - 9643: 0x00009ECE, - 9644: 0x000058A8, - 9645: 0x00009F52, - 9646: 0x00005112, - 9647: 0x00005118, - 9648: 0x00005114, - 9649: 0x00005110, - 9650: 0x00005115, - 9651: 0x00005180, - 9652: 0x000051AA, - 9653: 0x000051DD, - 9654: 0x00005291, - 9655: 0x00005293, - 9656: 0x000052F3, - 9657: 0x00005659, - 9658: 0x0000566B, - 9659: 0x00005679, - 9660: 0x00005669, - 9661: 0x00005664, - 9662: 0x00005678, - 9663: 0x0000566A, - 9664: 0x00005668, - 9665: 0x00005665, - 9666: 0x00005671, - 9667: 0x0000566F, - 9668: 0x0000566C, - 9669: 0x00005662, - 9670: 0x00005676, - 9671: 0x000058C1, - 9672: 0x000058BE, - 9673: 0x000058C7, - 9674: 0x000058C5, - 9675: 0x0000596E, - 9676: 0x00005B1D, - 9677: 0x00005B34, - 9678: 0x00005B78, - 9679: 0x00005BF0, - 9680: 0x00005C0E, - 9681: 0x00005F4A, - 9682: 0x000061B2, - 9683: 0x00006191, - 9684: 0x000061A9, - 9685: 0x0000618A, - 9686: 0x000061CD, - 9687: 0x000061B6, - 9688: 0x000061BE, - 9689: 0x000061CA, - 9690: 0x000061C8, - 9691: 0x00006230, - 9692: 0x000064C5, - 9693: 0x000064C1, - 9694: 0x000064CB, - 9695: 0x000064BB, - 9696: 0x000064BC, - 9697: 0x000064DA, - 9698: 0x000064C4, - 9699: 0x000064C7, - 9700: 0x000064C2, - 9701: 0x000064CD, - 9702: 0x000064BF, - 9703: 0x000064D2, - 9704: 0x000064D4, - 9705: 0x000064BE, - 9706: 0x00006574, - 9707: 0x000066C6, - 9708: 0x000066C9, - 9709: 0x000066B9, - 9710: 0x000066C4, - 9711: 0x000066C7, - 9712: 0x000066B8, - 9713: 0x00006A3D, - 9714: 0x00006A38, - 9715: 0x00006A3A, - 9716: 0x00006A59, - 9717: 0x00006A6B, - 9718: 0x00006A58, - 9719: 0x00006A39, - 9720: 0x00006A44, - 9721: 0x00006A62, - 9722: 0x00006A61, - 9723: 0x00006A4B, - 9724: 0x00006A47, - 9725: 0x00006A35, - 9726: 0x00006A5F, - 9727: 0x00006A48, - 9728: 0x00006B59, - 9729: 0x00006B77, - 9730: 0x00006C05, - 9731: 0x00006FC2, - 9732: 0x00006FB1, - 9733: 0x00006FA1, - 9734: 0x00006FC3, - 9735: 0x00006FA4, - 9736: 0x00006FC1, - 9737: 0x00006FA7, - 9738: 0x00006FB3, - 9739: 0x00006FC0, - 9740: 0x00006FB9, - 9741: 0x00006FB6, - 9742: 0x00006FA6, - 9743: 0x00006FA0, - 9744: 0x00006FB4, - 9745: 0x000071BE, - 9746: 0x000071C9, - 9747: 0x000071D0, - 9748: 0x000071D2, - 9749: 0x000071C8, - 9750: 0x000071D5, - 9751: 0x000071B9, - 9752: 0x000071CE, - 9753: 0x000071D9, - 9754: 0x000071DC, - 9755: 0x000071C3, - 9756: 0x000071C4, - 9757: 0x00007368, - 9758: 0x0000749C, - 9759: 0x000074A3, - 9760: 0x00007498, - 9761: 0x0000749F, - 9762: 0x0000749E, - 9763: 0x000074E2, - 9764: 0x0000750C, - 9765: 0x0000750D, - 9766: 0x00007634, - 9767: 0x00007638, - 9768: 0x0000763A, - 9769: 0x000076E7, - 9770: 0x000076E5, - 9771: 0x000077A0, - 9772: 0x0000779E, - 9773: 0x0000779F, - 9774: 0x000077A5, - 9775: 0x000078E8, - 9776: 0x000078DA, - 9777: 0x000078EC, - 9778: 0x000078E7, - 9779: 0x000079A6, - 9780: 0x00007A4D, - 9781: 0x00007A4E, - 9782: 0x00007A46, - 9783: 0x00007A4C, - 9784: 0x00007A4B, - 9785: 0x00007ABA, - 9786: 0x00007BD9, - 9787: 0x00007C11, - 9788: 0x00007BC9, - 9789: 0x00007BE4, - 9790: 0x00007BDB, - 9791: 0x00007BE1, - 9792: 0x00007BE9, - 9793: 0x00007BE6, - 9794: 0x00007CD5, - 9795: 0x00007CD6, - 9796: 0x00007E0A, - 9797: 0x00007E11, - 9798: 0x00007E08, - 9799: 0x00007E1B, - 9800: 0x00007E23, - 9801: 0x00007E1E, - 9802: 0x00007E1D, - 9803: 0x00007E09, - 9804: 0x00007E10, - 9805: 0x00007F79, - 9806: 0x00007FB2, - 9807: 0x00007FF0, - 9808: 0x00007FF1, - 9809: 0x00007FEE, - 9810: 0x00008028, - 9811: 0x000081B3, - 9812: 0x000081A9, - 9813: 0x000081A8, - 9814: 0x000081FB, - 9815: 0x00008208, - 9816: 0x00008258, - 9817: 0x00008259, - 9818: 0x0000854A, - 9819: 0x00008559, - 9820: 0x00008548, - 9821: 0x00008568, - 9822: 0x00008569, - 9823: 0x00008543, - 9824: 0x00008549, - 9825: 0x0000856D, - 9826: 0x0000856A, - 9827: 0x0000855E, - 9828: 0x00008783, - 9829: 0x0000879F, - 9830: 0x0000879E, - 9831: 0x000087A2, - 9832: 0x0000878D, - 9833: 0x00008861, - 9834: 0x0000892A, - 9835: 0x00008932, - 9836: 0x00008925, - 9837: 0x0000892B, - 9838: 0x00008921, - 9839: 0x000089AA, - 9840: 0x000089A6, - 9841: 0x00008AE6, - 9842: 0x00008AFA, - 9843: 0x00008AEB, - 9844: 0x00008AF1, - 9845: 0x00008B00, - 9846: 0x00008ADC, - 9847: 0x00008AE7, - 9848: 0x00008AEE, - 9849: 0x00008AFE, - 9850: 0x00008B01, - 9851: 0x00008B02, - 9852: 0x00008AF7, - 9853: 0x00008AED, - 9854: 0x00008AF3, - 9855: 0x00008AF6, - 9856: 0x00008AFC, - 9857: 0x00008C6B, - 9858: 0x00008C6D, - 9859: 0x00008C93, - 9860: 0x00008CF4, - 9861: 0x00008E44, - 9862: 0x00008E31, - 9863: 0x00008E34, - 9864: 0x00008E42, - 9865: 0x00008E39, - 9866: 0x00008E35, - 9867: 0x00008F3B, - 9868: 0x00008F2F, - 9869: 0x00008F38, - 9870: 0x00008F33, - 9871: 0x00008FA8, - 9872: 0x00008FA6, - 9873: 0x00009075, - 9874: 0x00009074, - 9875: 0x00009078, - 9876: 0x00009072, - 9877: 0x0000907C, - 9878: 0x0000907A, - 9879: 0x00009134, - 9880: 0x00009192, - 9881: 0x00009320, - 9882: 0x00009336, - 9883: 0x000092F8, - 9884: 0x00009333, - 9885: 0x0000932F, - 9886: 0x00009322, - 9887: 0x000092FC, - 9888: 0x0000932B, - 9889: 0x00009304, - 9890: 0x0000931A, - 9891: 0x00009310, - 9892: 0x00009326, - 9893: 0x00009321, - 9894: 0x00009315, - 9895: 0x0000932E, - 9896: 0x00009319, - 9897: 0x000095BB, - 9898: 0x000096A7, - 9899: 0x000096A8, - 9900: 0x000096AA, - 9901: 0x000096D5, - 9902: 0x0000970E, - 9903: 0x00009711, - 9904: 0x00009716, - 9905: 0x0000970D, - 9906: 0x00009713, - 9907: 0x0000970F, - 9908: 0x0000975B, - 9909: 0x0000975C, - 9910: 0x00009766, - 9911: 0x00009798, - 9912: 0x00009830, - 9913: 0x00009838, - 9914: 0x0000983B, - 9915: 0x00009837, - 9916: 0x0000982D, - 9917: 0x00009839, - 9918: 0x00009824, - 9919: 0x00009910, - 9920: 0x00009928, - 9921: 0x0000991E, - 9922: 0x0000991B, - 9923: 0x00009921, - 9924: 0x0000991A, - 9925: 0x000099ED, - 9926: 0x000099E2, - 9927: 0x000099F1, - 9928: 0x00009AB8, - 9929: 0x00009ABC, - 9930: 0x00009AFB, - 9931: 0x00009AED, - 9932: 0x00009B28, - 9933: 0x00009B91, - 9934: 0x00009D15, - 9935: 0x00009D23, - 9936: 0x00009D26, - 9937: 0x00009D28, - 9938: 0x00009D12, - 9939: 0x00009D1B, - 9940: 0x00009ED8, - 9941: 0x00009ED4, - 9942: 0x00009F8D, - 9943: 0x00009F9C, - 9944: 0x0000512A, - 9945: 0x0000511F, - 9946: 0x00005121, - 9947: 0x00005132, - 9948: 0x000052F5, - 9949: 0x0000568E, - 9950: 0x00005680, - 9951: 0x00005690, - 9952: 0x00005685, - 9953: 0x00005687, - 9954: 0x0000568F, - 9955: 0x000058D5, - 9956: 0x000058D3, - 9957: 0x000058D1, - 9958: 0x000058CE, - 9959: 0x00005B30, - 9960: 0x00005B2A, - 9961: 0x00005B24, - 9962: 0x00005B7A, - 9963: 0x00005C37, - 9964: 0x00005C68, - 9965: 0x00005DBC, - 9966: 0x00005DBA, - 9967: 0x00005DBD, - 9968: 0x00005DB8, - 9969: 0x00005E6B, - 9970: 0x00005F4C, - 9971: 0x00005FBD, - 9972: 0x000061C9, - 9973: 0x000061C2, - 9974: 0x000061C7, - 9975: 0x000061E6, - 9976: 0x000061CB, - 9977: 0x00006232, - 9978: 0x00006234, - 9979: 0x000064CE, - 9980: 0x000064CA, - 9981: 0x000064D8, - 9982: 0x000064E0, - 9983: 0x000064F0, - 9984: 0x000064E6, - 9985: 0x000064EC, - 9986: 0x000064F1, - 9987: 0x000064E2, - 9988: 0x000064ED, - 9989: 0x00006582, - 9990: 0x00006583, - 9991: 0x000066D9, - 9992: 0x000066D6, - 9993: 0x00006A80, - 9994: 0x00006A94, - 9995: 0x00006A84, - 9996: 0x00006AA2, - 9997: 0x00006A9C, - 9998: 0x00006ADB, - 9999: 0x00006AA3, - 10000: 0x00006A7E, - 10001: 0x00006A97, - 10002: 0x00006A90, - 10003: 0x00006AA0, - 10004: 0x00006B5C, - 10005: 0x00006BAE, - 10006: 0x00006BDA, - 10007: 0x00006C08, - 10008: 0x00006FD8, - 10009: 0x00006FF1, - 10010: 0x00006FDF, - 10011: 0x00006FE0, - 10012: 0x00006FDB, - 10013: 0x00006FE4, - 10014: 0x00006FEB, - 10015: 0x00006FEF, - 10016: 0x00006F80, - 10017: 0x00006FEC, - 10018: 0x00006FE1, - 10019: 0x00006FE9, - 10020: 0x00006FD5, - 10021: 0x00006FEE, - 10022: 0x00006FF0, - 10023: 0x000071E7, - 10024: 0x000071DF, - 10025: 0x000071EE, - 10026: 0x000071E6, - 10027: 0x000071E5, - 10028: 0x000071ED, - 10029: 0x000071EC, - 10030: 0x000071F4, - 10031: 0x000071E0, - 10032: 0x00007235, - 10033: 0x00007246, - 10034: 0x00007370, - 10035: 0x00007372, - 10036: 0x000074A9, - 10037: 0x000074B0, - 10038: 0x000074A6, - 10039: 0x000074A8, - 10040: 0x00007646, - 10041: 0x00007642, - 10042: 0x0000764C, - 10043: 0x000076EA, - 10044: 0x000077B3, - 10045: 0x000077AA, - 10046: 0x000077B0, - 10047: 0x000077AC, - 10048: 0x000077A7, - 10049: 0x000077AD, - 10050: 0x000077EF, - 10051: 0x000078F7, - 10052: 0x000078FA, - 10053: 0x000078F4, - 10054: 0x000078EF, - 10055: 0x00007901, - 10056: 0x000079A7, - 10057: 0x000079AA, - 10058: 0x00007A57, - 10059: 0x00007ABF, - 10060: 0x00007C07, - 10061: 0x00007C0D, - 10062: 0x00007BFE, - 10063: 0x00007BF7, - 10064: 0x00007C0C, - 10065: 0x00007BE0, - 10066: 0x00007CE0, - 10067: 0x00007CDC, - 10068: 0x00007CDE, - 10069: 0x00007CE2, - 10070: 0x00007CDF, - 10071: 0x00007CD9, - 10072: 0x00007CDD, - 10073: 0x00007E2E, - 10074: 0x00007E3E, - 10075: 0x00007E46, - 10076: 0x00007E37, - 10077: 0x00007E32, - 10078: 0x00007E43, - 10079: 0x00007E2B, - 10080: 0x00007E3D, - 10081: 0x00007E31, - 10082: 0x00007E45, - 10083: 0x00007E41, - 10084: 0x00007E34, - 10085: 0x00007E39, - 10086: 0x00007E48, - 10087: 0x00007E35, - 10088: 0x00007E3F, - 10089: 0x00007E2F, - 10090: 0x00007F44, - 10091: 0x00007FF3, - 10092: 0x00007FFC, - 10093: 0x00008071, - 10094: 0x00008072, - 10095: 0x00008070, - 10096: 0x0000806F, - 10097: 0x00008073, - 10098: 0x000081C6, - 10099: 0x000081C3, - 10100: 0x000081BA, - 10101: 0x000081C2, - 10102: 0x000081C0, - 10103: 0x000081BF, - 10104: 0x000081BD, - 10105: 0x000081C9, - 10106: 0x000081BE, - 10107: 0x000081E8, - 10108: 0x00008209, - 10109: 0x00008271, - 10110: 0x000085AA, - 10111: 0x00008584, - 10112: 0x0000857E, - 10113: 0x0000859C, - 10114: 0x00008591, - 10115: 0x00008594, - 10116: 0x000085AF, - 10117: 0x0000859B, - 10118: 0x00008587, - 10119: 0x000085A8, - 10120: 0x0000858A, - 10121: 0x00008667, - 10122: 0x000087C0, - 10123: 0x000087D1, - 10124: 0x000087B3, - 10125: 0x000087D2, - 10126: 0x000087C6, - 10127: 0x000087AB, - 10128: 0x000087BB, - 10129: 0x000087BA, - 10130: 0x000087C8, - 10131: 0x000087CB, - 10132: 0x0000893B, - 10133: 0x00008936, - 10134: 0x00008944, - 10135: 0x00008938, - 10136: 0x0000893D, - 10137: 0x000089AC, - 10138: 0x00008B0E, - 10139: 0x00008B17, - 10140: 0x00008B19, - 10141: 0x00008B1B, - 10142: 0x00008B0A, - 10143: 0x00008B20, - 10144: 0x00008B1D, - 10145: 0x00008B04, - 10146: 0x00008B10, - 10147: 0x00008C41, - 10148: 0x00008C3F, - 10149: 0x00008C73, - 10150: 0x00008CFA, - 10151: 0x00008CFD, - 10152: 0x00008CFC, - 10153: 0x00008CF8, - 10154: 0x00008CFB, - 10155: 0x00008DA8, - 10156: 0x00008E49, - 10157: 0x00008E4B, - 10158: 0x00008E48, - 10159: 0x00008E4A, - 10160: 0x00008F44, - 10161: 0x00008F3E, - 10162: 0x00008F42, - 10163: 0x00008F45, - 10164: 0x00008F3F, - 10165: 0x0000907F, - 10166: 0x0000907D, - 10167: 0x00009084, - 10168: 0x00009081, - 10169: 0x00009082, - 10170: 0x00009080, - 10171: 0x00009139, - 10172: 0x000091A3, - 10173: 0x0000919E, - 10174: 0x0000919C, - 10175: 0x0000934D, - 10176: 0x00009382, - 10177: 0x00009328, - 10178: 0x00009375, - 10179: 0x0000934A, - 10180: 0x00009365, - 10181: 0x0000934B, - 10182: 0x00009318, - 10183: 0x0000937E, - 10184: 0x0000936C, - 10185: 0x0000935B, - 10186: 0x00009370, - 10187: 0x0000935A, - 10188: 0x00009354, - 10189: 0x000095CA, - 10190: 0x000095CB, - 10191: 0x000095CC, - 10192: 0x000095C8, - 10193: 0x000095C6, - 10194: 0x000096B1, - 10195: 0x000096B8, - 10196: 0x000096D6, - 10197: 0x0000971C, - 10198: 0x0000971E, - 10199: 0x000097A0, - 10200: 0x000097D3, - 10201: 0x00009846, - 10202: 0x000098B6, - 10203: 0x00009935, - 10204: 0x00009A01, - 10205: 0x000099FF, - 10206: 0x00009BAE, - 10207: 0x00009BAB, - 10208: 0x00009BAA, - 10209: 0x00009BAD, - 10210: 0x00009D3B, - 10211: 0x00009D3F, - 10212: 0x00009E8B, - 10213: 0x00009ECF, - 10214: 0x00009EDE, - 10215: 0x00009EDC, - 10216: 0x00009EDD, - 10217: 0x00009EDB, - 10218: 0x00009F3E, - 10219: 0x00009F4B, - 10220: 0x000053E2, - 10221: 0x00005695, - 10222: 0x000056AE, - 10223: 0x000058D9, - 10224: 0x000058D8, - 10225: 0x00005B38, - 10226: 0x00005F5D, - 10227: 0x000061E3, - 10228: 0x00006233, - 10229: 0x000064F4, - 10230: 0x000064F2, - 10231: 0x000064FE, - 10232: 0x00006506, - 10233: 0x000064FA, - 10234: 0x000064FB, - 10235: 0x000064F7, - 10236: 0x000065B7, - 10237: 0x000066DC, - 10238: 0x00006726, - 10239: 0x00006AB3, - 10240: 0x00006AAC, - 10241: 0x00006AC3, - 10242: 0x00006ABB, - 10243: 0x00006AB8, - 10244: 0x00006AC2, - 10245: 0x00006AAE, - 10246: 0x00006AAF, - 10247: 0x00006B5F, - 10248: 0x00006B78, - 10249: 0x00006BAF, - 10250: 0x00007009, - 10251: 0x0000700B, - 10252: 0x00006FFE, - 10253: 0x00007006, - 10254: 0x00006FFA, - 10255: 0x00007011, - 10256: 0x0000700F, - 10257: 0x000071FB, - 10258: 0x000071FC, - 10259: 0x000071FE, - 10260: 0x000071F8, - 10261: 0x00007377, - 10262: 0x00007375, - 10263: 0x000074A7, - 10264: 0x000074BF, - 10265: 0x00007515, - 10266: 0x00007656, - 10267: 0x00007658, - 10268: 0x00007652, - 10269: 0x000077BD, - 10270: 0x000077BF, - 10271: 0x000077BB, - 10272: 0x000077BC, - 10273: 0x0000790E, - 10274: 0x000079AE, - 10275: 0x00007A61, - 10276: 0x00007A62, - 10277: 0x00007A60, - 10278: 0x00007AC4, - 10279: 0x00007AC5, - 10280: 0x00007C2B, - 10281: 0x00007C27, - 10282: 0x00007C2A, - 10283: 0x00007C1E, - 10284: 0x00007C23, - 10285: 0x00007C21, - 10286: 0x00007CE7, - 10287: 0x00007E54, - 10288: 0x00007E55, - 10289: 0x00007E5E, - 10290: 0x00007E5A, - 10291: 0x00007E61, - 10292: 0x00007E52, - 10293: 0x00007E59, - 10294: 0x00007F48, - 10295: 0x00007FF9, - 10296: 0x00007FFB, - 10297: 0x00008077, - 10298: 0x00008076, - 10299: 0x000081CD, - 10300: 0x000081CF, - 10301: 0x0000820A, - 10302: 0x000085CF, - 10303: 0x000085A9, - 10304: 0x000085CD, - 10305: 0x000085D0, - 10306: 0x000085C9, - 10307: 0x000085B0, - 10308: 0x000085BA, - 10309: 0x000085B9, - 10310: 0x000085A6, - 10311: 0x000087EF, - 10312: 0x000087EC, - 10313: 0x000087F2, - 10314: 0x000087E0, - 10315: 0x00008986, - 10316: 0x000089B2, - 10317: 0x000089F4, - 10318: 0x00008B28, - 10319: 0x00008B39, - 10320: 0x00008B2C, - 10321: 0x00008B2B, - 10322: 0x00008C50, - 10323: 0x00008D05, - 10324: 0x00008E59, - 10325: 0x00008E63, - 10326: 0x00008E66, - 10327: 0x00008E64, - 10328: 0x00008E5F, - 10329: 0x00008E55, - 10330: 0x00008EC0, - 10331: 0x00008F49, - 10332: 0x00008F4D, - 10333: 0x00009087, - 10334: 0x00009083, - 10335: 0x00009088, - 10336: 0x000091AB, - 10337: 0x000091AC, - 10338: 0x000091D0, - 10339: 0x00009394, - 10340: 0x0000938A, - 10341: 0x00009396, - 10342: 0x000093A2, - 10343: 0x000093B3, - 10344: 0x000093AE, - 10345: 0x000093AC, - 10346: 0x000093B0, - 10347: 0x00009398, - 10348: 0x0000939A, - 10349: 0x00009397, - 10350: 0x000095D4, - 10351: 0x000095D6, - 10352: 0x000095D0, - 10353: 0x000095D5, - 10354: 0x000096E2, - 10355: 0x000096DC, - 10356: 0x000096D9, - 10357: 0x000096DB, - 10358: 0x000096DE, - 10359: 0x00009724, - 10360: 0x000097A3, - 10361: 0x000097A6, - 10362: 0x000097AD, - 10363: 0x000097F9, - 10364: 0x0000984D, - 10365: 0x0000984F, - 10366: 0x0000984C, - 10367: 0x0000984E, - 10368: 0x00009853, - 10369: 0x000098BA, - 10370: 0x0000993E, - 10371: 0x0000993F, - 10372: 0x0000993D, - 10373: 0x0000992E, - 10374: 0x000099A5, - 10375: 0x00009A0E, - 10376: 0x00009AC1, - 10377: 0x00009B03, - 10378: 0x00009B06, - 10379: 0x00009B4F, - 10380: 0x00009B4E, - 10381: 0x00009B4D, - 10382: 0x00009BCA, - 10383: 0x00009BC9, - 10384: 0x00009BFD, - 10385: 0x00009BC8, - 10386: 0x00009BC0, - 10387: 0x00009D51, - 10388: 0x00009D5D, - 10389: 0x00009D60, - 10390: 0x00009EE0, - 10391: 0x00009F15, - 10392: 0x00009F2C, - 10393: 0x00005133, - 10394: 0x000056A5, - 10395: 0x000058DE, - 10396: 0x000058DF, - 10397: 0x000058E2, - 10398: 0x00005BF5, - 10399: 0x00009F90, - 10400: 0x00005EEC, - 10401: 0x000061F2, - 10402: 0x000061F7, - 10403: 0x000061F6, - 10404: 0x000061F5, - 10405: 0x00006500, - 10406: 0x0000650F, - 10407: 0x000066E0, - 10408: 0x000066DD, - 10409: 0x00006AE5, - 10410: 0x00006ADD, - 10411: 0x00006ADA, - 10412: 0x00006AD3, - 10413: 0x0000701B, - 10414: 0x0000701F, - 10415: 0x00007028, - 10416: 0x0000701A, - 10417: 0x0000701D, - 10418: 0x00007015, - 10419: 0x00007018, - 10420: 0x00007206, - 10421: 0x0000720D, - 10422: 0x00007258, - 10423: 0x000072A2, - 10424: 0x00007378, - 10425: 0x0000737A, - 10426: 0x000074BD, - 10427: 0x000074CA, - 10428: 0x000074E3, - 10429: 0x00007587, - 10430: 0x00007586, - 10431: 0x0000765F, - 10432: 0x00007661, - 10433: 0x000077C7, - 10434: 0x00007919, - 10435: 0x000079B1, - 10436: 0x00007A6B, - 10437: 0x00007A69, - 10438: 0x00007C3E, - 10439: 0x00007C3F, - 10440: 0x00007C38, - 10441: 0x00007C3D, - 10442: 0x00007C37, - 10443: 0x00007C40, - 10444: 0x00007E6B, - 10445: 0x00007E6D, - 10446: 0x00007E79, - 10447: 0x00007E69, - 10448: 0x00007E6A, - 10449: 0x00007F85, - 10450: 0x00007E73, - 10451: 0x00007FB6, - 10452: 0x00007FB9, - 10453: 0x00007FB8, - 10454: 0x000081D8, - 10455: 0x000085E9, - 10456: 0x000085DD, - 10457: 0x000085EA, - 10458: 0x000085D5, - 10459: 0x000085E4, - 10460: 0x000085E5, - 10461: 0x000085F7, - 10462: 0x000087FB, - 10463: 0x00008805, - 10464: 0x0000880D, - 10465: 0x000087F9, - 10466: 0x000087FE, - 10467: 0x00008960, - 10468: 0x0000895F, - 10469: 0x00008956, - 10470: 0x0000895E, - 10471: 0x00008B41, - 10472: 0x00008B5C, - 10473: 0x00008B58, - 10474: 0x00008B49, - 10475: 0x00008B5A, - 10476: 0x00008B4E, - 10477: 0x00008B4F, - 10478: 0x00008B46, - 10479: 0x00008B59, - 10480: 0x00008D08, - 10481: 0x00008D0A, - 10482: 0x00008E7C, - 10483: 0x00008E72, - 10484: 0x00008E87, - 10485: 0x00008E76, - 10486: 0x00008E6C, - 10487: 0x00008E7A, - 10488: 0x00008E74, - 10489: 0x00008F54, - 10490: 0x00008F4E, - 10491: 0x00008FAD, - 10492: 0x0000908A, - 10493: 0x0000908B, - 10494: 0x000091B1, - 10495: 0x000091AE, - 10496: 0x000093E1, - 10497: 0x000093D1, - 10498: 0x000093DF, - 10499: 0x000093C3, - 10500: 0x000093C8, - 10501: 0x000093DC, - 10502: 0x000093DD, - 10503: 0x000093D6, - 10504: 0x000093E2, - 10505: 0x000093CD, - 10506: 0x000093D8, - 10507: 0x000093E4, - 10508: 0x000093D7, - 10509: 0x000093E8, - 10510: 0x000095DC, - 10511: 0x000096B4, - 10512: 0x000096E3, - 10513: 0x0000972A, - 10514: 0x00009727, - 10515: 0x00009761, - 10516: 0x000097DC, - 10517: 0x000097FB, - 10518: 0x0000985E, - 10519: 0x00009858, - 10520: 0x0000985B, - 10521: 0x000098BC, - 10522: 0x00009945, - 10523: 0x00009949, - 10524: 0x00009A16, - 10525: 0x00009A19, - 10526: 0x00009B0D, - 10527: 0x00009BE8, - 10528: 0x00009BE7, - 10529: 0x00009BD6, - 10530: 0x00009BDB, - 10531: 0x00009D89, - 10532: 0x00009D61, - 10533: 0x00009D72, - 10534: 0x00009D6A, - 10535: 0x00009D6C, - 10536: 0x00009E92, - 10537: 0x00009E97, - 10538: 0x00009E93, - 10539: 0x00009EB4, - 10540: 0x000052F8, - 10541: 0x000056A8, - 10542: 0x000056B7, - 10543: 0x000056B6, - 10544: 0x000056B4, - 10545: 0x000056BC, - 10546: 0x000058E4, - 10547: 0x00005B40, - 10548: 0x00005B43, - 10549: 0x00005B7D, - 10550: 0x00005BF6, - 10551: 0x00005DC9, - 10552: 0x000061F8, - 10553: 0x000061FA, - 10554: 0x00006518, - 10555: 0x00006514, - 10556: 0x00006519, - 10557: 0x000066E6, - 10558: 0x00006727, - 10559: 0x00006AEC, - 10560: 0x0000703E, - 10561: 0x00007030, - 10562: 0x00007032, - 10563: 0x00007210, - 10564: 0x0000737B, - 10565: 0x000074CF, - 10566: 0x00007662, - 10567: 0x00007665, - 10568: 0x00007926, - 10569: 0x0000792A, - 10570: 0x0000792C, - 10571: 0x0000792B, - 10572: 0x00007AC7, - 10573: 0x00007AF6, - 10574: 0x00007C4C, - 10575: 0x00007C43, - 10576: 0x00007C4D, - 10577: 0x00007CEF, - 10578: 0x00007CF0, - 10579: 0x00008FAE, - 10580: 0x00007E7D, - 10581: 0x00007E7C, - 10582: 0x00007E82, - 10583: 0x00007F4C, - 10584: 0x00008000, - 10585: 0x000081DA, - 10586: 0x00008266, - 10587: 0x000085FB, - 10588: 0x000085F9, - 10589: 0x00008611, - 10590: 0x000085FA, - 10591: 0x00008606, - 10592: 0x0000860B, - 10593: 0x00008607, - 10594: 0x0000860A, - 10595: 0x00008814, - 10596: 0x00008815, - 10597: 0x00008964, - 10598: 0x000089BA, - 10599: 0x000089F8, - 10600: 0x00008B70, - 10601: 0x00008B6C, - 10602: 0x00008B66, - 10603: 0x00008B6F, - 10604: 0x00008B5F, - 10605: 0x00008B6B, - 10606: 0x00008D0F, - 10607: 0x00008D0D, - 10608: 0x00008E89, - 10609: 0x00008E81, - 10610: 0x00008E85, - 10611: 0x00008E82, - 10612: 0x000091B4, - 10613: 0x000091CB, - 10614: 0x00009418, - 10615: 0x00009403, - 10616: 0x000093FD, - 10617: 0x000095E1, - 10618: 0x00009730, - 10619: 0x000098C4, - 10620: 0x00009952, - 10621: 0x00009951, - 10622: 0x000099A8, - 10623: 0x00009A2B, - 10624: 0x00009A30, - 10625: 0x00009A37, - 10626: 0x00009A35, - 10627: 0x00009C13, - 10628: 0x00009C0D, - 10629: 0x00009E79, - 10630: 0x00009EB5, - 10631: 0x00009EE8, - 10632: 0x00009F2F, - 10633: 0x00009F5F, - 10634: 0x00009F63, - 10635: 0x00009F61, - 10636: 0x00005137, - 10637: 0x00005138, - 10638: 0x000056C1, - 10639: 0x000056C0, - 10640: 0x000056C2, - 10641: 0x00005914, - 10642: 0x00005C6C, - 10643: 0x00005DCD, - 10644: 0x000061FC, - 10645: 0x000061FE, - 10646: 0x0000651D, - 10647: 0x0000651C, - 10648: 0x00006595, - 10649: 0x000066E9, - 10650: 0x00006AFB, - 10651: 0x00006B04, - 10652: 0x00006AFA, - 10653: 0x00006BB2, - 10654: 0x0000704C, - 10655: 0x0000721B, - 10656: 0x000072A7, - 10657: 0x000074D6, - 10658: 0x000074D4, - 10659: 0x00007669, - 10660: 0x000077D3, - 10661: 0x00007C50, - 10662: 0x00007E8F, - 10663: 0x00007E8C, - 10664: 0x00007FBC, - 10665: 0x00008617, - 10666: 0x0000862D, - 10667: 0x0000861A, - 10668: 0x00008823, - 10669: 0x00008822, - 10670: 0x00008821, - 10671: 0x0000881F, - 10672: 0x0000896A, - 10673: 0x0000896C, - 10674: 0x000089BD, - 10675: 0x00008B74, - 10676: 0x00008B77, - 10677: 0x00008B7D, - 10678: 0x00008D13, - 10679: 0x00008E8A, - 10680: 0x00008E8D, - 10681: 0x00008E8B, - 10682: 0x00008F5F, - 10683: 0x00008FAF, - 10684: 0x000091BA, - 10685: 0x0000942E, - 10686: 0x00009433, - 10687: 0x00009435, - 10688: 0x0000943A, - 10689: 0x00009438, - 10690: 0x00009432, - 10691: 0x0000942B, - 10692: 0x000095E2, - 10693: 0x00009738, - 10694: 0x00009739, - 10695: 0x00009732, - 10696: 0x000097FF, - 10697: 0x00009867, - 10698: 0x00009865, - 10699: 0x00009957, - 10700: 0x00009A45, - 10701: 0x00009A43, - 10702: 0x00009A40, - 10703: 0x00009A3E, - 10704: 0x00009ACF, - 10705: 0x00009B54, - 10706: 0x00009B51, - 10707: 0x00009C2D, - 10708: 0x00009C25, - 10709: 0x00009DAF, - 10710: 0x00009DB4, - 10711: 0x00009DC2, - 10712: 0x00009DB8, - 10713: 0x00009E9D, - 10714: 0x00009EEF, - 10715: 0x00009F19, - 10716: 0x00009F5C, - 10717: 0x00009F66, - 10718: 0x00009F67, - 10719: 0x0000513C, - 10720: 0x0000513B, - 10721: 0x000056C8, - 10722: 0x000056CA, - 10723: 0x000056C9, - 10724: 0x00005B7F, - 10725: 0x00005DD4, - 10726: 0x00005DD2, - 10727: 0x00005F4E, - 10728: 0x000061FF, - 10729: 0x00006524, - 10730: 0x00006B0A, - 10731: 0x00006B61, - 10732: 0x00007051, - 10733: 0x00007058, - 10734: 0x00007380, - 10735: 0x000074E4, - 10736: 0x0000758A, - 10737: 0x0000766E, - 10738: 0x0000766C, - 10739: 0x000079B3, - 10740: 0x00007C60, - 10741: 0x00007C5F, - 10742: 0x0000807E, - 10743: 0x0000807D, - 10744: 0x000081DF, - 10745: 0x00008972, - 10746: 0x0000896F, - 10747: 0x000089FC, - 10748: 0x00008B80, - 10749: 0x00008D16, - 10750: 0x00008D17, - 10751: 0x00008E91, - 10752: 0x00008E93, - 10753: 0x00008F61, - 10754: 0x00009148, - 10755: 0x00009444, - 10756: 0x00009451, - 10757: 0x00009452, - 10758: 0x0000973D, - 10759: 0x0000973E, - 10760: 0x000097C3, - 10761: 0x000097C1, - 10762: 0x0000986B, - 10763: 0x00009955, - 10764: 0x00009A55, - 10765: 0x00009A4D, - 10766: 0x00009AD2, - 10767: 0x00009B1A, - 10768: 0x00009C49, - 10769: 0x00009C31, - 10770: 0x00009C3E, - 10771: 0x00009C3B, - 10772: 0x00009DD3, - 10773: 0x00009DD7, - 10774: 0x00009F34, - 10775: 0x00009F6C, - 10776: 0x00009F6A, - 10777: 0x00009F94, - 10778: 0x000056CC, - 10779: 0x00005DD6, - 10780: 0x00006200, - 10781: 0x00006523, - 10782: 0x0000652B, - 10783: 0x0000652A, - 10784: 0x000066EC, - 10785: 0x00006B10, - 10786: 0x000074DA, - 10787: 0x00007ACA, - 10788: 0x00007C64, - 10789: 0x00007C63, - 10790: 0x00007C65, - 10791: 0x00007E93, - 10792: 0x00007E96, - 10793: 0x00007E94, - 10794: 0x000081E2, - 10795: 0x00008638, - 10796: 0x0000863F, - 10797: 0x00008831, - 10798: 0x00008B8A, - 10799: 0x00009090, - 10800: 0x0000908F, - 10801: 0x00009463, - 10802: 0x00009460, - 10803: 0x00009464, - 10804: 0x00009768, - 10805: 0x0000986F, - 10806: 0x0000995C, - 10807: 0x00009A5A, - 10808: 0x00009A5B, - 10809: 0x00009A57, - 10810: 0x00009AD3, - 10811: 0x00009AD4, - 10812: 0x00009AD1, - 10813: 0x00009C54, - 10814: 0x00009C57, - 10815: 0x00009C56, - 10816: 0x00009DE5, - 10817: 0x00009E9F, - 10818: 0x00009EF4, - 10819: 0x000056D1, - 10820: 0x000058E9, - 10821: 0x0000652C, - 10822: 0x0000705E, - 10823: 0x00007671, - 10824: 0x00007672, - 10825: 0x000077D7, - 10826: 0x00007F50, - 10827: 0x00007F88, - 10828: 0x00008836, - 10829: 0x00008839, - 10830: 0x00008862, - 10831: 0x00008B93, - 10832: 0x00008B92, - 10833: 0x00008B96, - 10834: 0x00008277, - 10835: 0x00008D1B, - 10836: 0x000091C0, - 10837: 0x0000946A, - 10838: 0x00009742, - 10839: 0x00009748, - 10840: 0x00009744, - 10841: 0x000097C6, - 10842: 0x00009870, - 10843: 0x00009A5F, - 10844: 0x00009B22, - 10845: 0x00009B58, - 10846: 0x00009C5F, - 10847: 0x00009DF9, - 10848: 0x00009DFA, - 10849: 0x00009E7C, - 10850: 0x00009E7D, - 10851: 0x00009F07, - 10852: 0x00009F77, - 10853: 0x00009F72, - 10854: 0x00005EF3, - 10855: 0x00006B16, - 10856: 0x00007063, - 10857: 0x00007C6C, - 10858: 0x00007C6E, - 10859: 0x0000883B, - 10860: 0x000089C0, - 10861: 0x00008EA1, - 10862: 0x000091C1, - 10863: 0x00009472, - 10864: 0x00009470, - 10865: 0x00009871, - 10866: 0x0000995E, - 10867: 0x00009AD6, - 10868: 0x00009B23, - 10869: 0x00009ECC, - 10870: 0x00007064, - 10871: 0x000077DA, - 10872: 0x00008B9A, - 10873: 0x00009477, - 10874: 0x000097C9, - 10875: 0x00009A62, - 10876: 0x00009A65, - 10877: 0x00007E9C, - 10878: 0x00008B9C, - 10879: 0x00008EAA, - 10880: 0x000091C5, - 10881: 0x0000947D, - 10882: 0x0000947E, - 10883: 0x0000947C, - 10884: 0x00009C77, - 10885: 0x00009C78, - 10886: 0x00009EF7, - 10887: 0x00008C54, - 10888: 0x0000947F, - 10889: 0x00009E1A, - 10890: 0x00007228, - 10891: 0x00009A6A, - 10892: 0x00009B31, - 10893: 0x00009E1B, - 10894: 0x00009E1E, - 10895: 0x00007C72, - 10896: 0x00002460, - 10897: 0x00002461, - 10898: 0x00002462, - 10899: 0x00002463, - 10900: 0x00002464, - 10901: 0x00002465, - 10902: 0x00002466, - 10903: 0x00002467, - 10904: 0x00002468, - 10905: 0x00002469, - 10906: 0x00002474, - 10907: 0x00002475, - 10908: 0x00002476, - 10909: 0x00002477, - 10910: 0x00002478, - 10911: 0x00002479, - 10912: 0x0000247A, - 10913: 0x0000247B, - 10914: 0x0000247C, - 10915: 0x0000247D, - 10916: 0x00002170, - 10917: 0x00002171, - 10918: 0x00002172, - 10919: 0x00002173, - 10920: 0x00002174, - 10921: 0x00002175, - 10922: 0x00002176, - 10923: 0x00002177, - 10924: 0x00002178, - 10925: 0x00002179, - 10926: 0x00004E36, - 10927: 0x00004E3F, - 10928: 0x00004E85, - 10929: 0x00004EA0, - 10930: 0x00005182, - 10931: 0x00005196, - 10932: 0x000051AB, - 10933: 0x000052F9, - 10934: 0x00005338, - 10935: 0x00005369, - 10936: 0x000053B6, - 10937: 0x0000590A, - 10938: 0x00005B80, - 10939: 0x00005DDB, - 10940: 0x00002F33, - 10941: 0x00005E7F, - 10942: 0x00005EF4, - 10943: 0x00005F50, - 10944: 0x00005F61, - 10945: 0x00006534, - 10946: 0x000065E0, - 10947: 0x00007592, - 10948: 0x00007676, - 10949: 0x00008FB5, - 10950: 0x000096B6, - 10951: 0x000000A8, - 10952: 0x000002C6, - 10953: 0x000030FD, - 10954: 0x000030FE, - 10955: 0x0000309D, - 10956: 0x0000309E, - 10957: 0x00003003, - 10958: 0x00004EDD, - 10959: 0x00003005, - 10960: 0x00003006, - 10961: 0x00003007, - 10962: 0x000030FC, - 10963: 0x0000FF3B, - 10964: 0x0000FF3D, - 10965: 0x0000273D, - 10966: 0x00003041, - 10967: 0x00003042, - 10968: 0x00003043, - 10969: 0x00003044, - 10970: 0x00003045, - 10971: 0x00003046, - 10972: 0x00003047, - 10973: 0x00003048, - 10974: 0x00003049, - 10975: 0x0000304A, - 10976: 0x0000304B, - 10977: 0x0000304C, - 10978: 0x0000304D, - 10979: 0x0000304E, - 10980: 0x0000304F, - 10981: 0x00003050, - 10982: 0x00003051, - 10983: 0x00003052, - 10984: 0x00003053, - 10985: 0x00003054, - 10986: 0x00003055, - 10987: 0x00003056, - 10988: 0x00003057, - 10989: 0x00003058, - 10990: 0x00003059, - 10991: 0x0000305A, - 10992: 0x0000305B, - 10993: 0x0000305C, - 10994: 0x0000305D, - 10995: 0x0000305E, - 10996: 0x0000305F, - 10997: 0x00003060, - 10998: 0x00003061, - 10999: 0x00003062, - 11000: 0x00003063, - 11001: 0x00003064, - 11002: 0x00003065, - 11003: 0x00003066, - 11004: 0x00003067, - 11005: 0x00003068, - 11006: 0x00003069, - 11007: 0x0000306A, - 11008: 0x0000306B, - 11009: 0x0000306C, - 11010: 0x0000306D, - 11011: 0x0000306E, - 11012: 0x0000306F, - 11013: 0x00003070, - 11014: 0x00003071, - 11015: 0x00003072, - 11016: 0x00003073, - 11017: 0x00003074, - 11018: 0x00003075, - 11019: 0x00003076, - 11020: 0x00003077, - 11021: 0x00003078, - 11022: 0x00003079, - 11023: 0x0000307A, - 11024: 0x0000307B, - 11025: 0x0000307C, - 11026: 0x0000307D, - 11027: 0x0000307E, - 11028: 0x0000307F, - 11029: 0x00003080, - 11030: 0x00003081, - 11031: 0x00003082, - 11032: 0x00003083, - 11033: 0x00003084, - 11034: 0x00003085, - 11035: 0x00003086, - 11036: 0x00003087, - 11037: 0x00003088, - 11038: 0x00003089, - 11039: 0x0000308A, - 11040: 0x0000308B, - 11041: 0x0000308C, - 11042: 0x0000308D, - 11043: 0x0000308E, - 11044: 0x0000308F, - 11045: 0x00003090, - 11046: 0x00003091, - 11047: 0x00003092, - 11048: 0x00003093, - 11049: 0x000030A1, - 11050: 0x000030A2, - 11051: 0x000030A3, - 11052: 0x000030A4, - 11053: 0x000030A5, - 11054: 0x000030A6, - 11055: 0x000030A7, - 11056: 0x000030A8, - 11057: 0x000030A9, - 11058: 0x000030AA, - 11059: 0x000030AB, - 11060: 0x000030AC, - 11061: 0x000030AD, - 11062: 0x000030AE, - 11063: 0x000030AF, - 11064: 0x000030B0, - 11065: 0x000030B1, - 11066: 0x000030B2, - 11067: 0x000030B3, - 11068: 0x000030B4, - 11069: 0x000030B5, - 11070: 0x000030B6, - 11071: 0x000030B7, - 11072: 0x000030B8, - 11073: 0x000030B9, - 11074: 0x000030BA, - 11075: 0x000030BB, - 11076: 0x000030BC, - 11077: 0x000030BD, - 11078: 0x000030BE, - 11079: 0x000030BF, - 11080: 0x000030C0, - 11081: 0x000030C1, - 11082: 0x000030C2, - 11083: 0x000030C3, - 11084: 0x000030C4, - 11085: 0x000030C5, - 11086: 0x000030C6, - 11087: 0x000030C7, - 11088: 0x000030C8, - 11089: 0x000030C9, - 11090: 0x000030CA, - 11091: 0x000030CB, - 11092: 0x000030CC, - 11093: 0x000030CD, - 11094: 0x000030CE, - 11095: 0x000030CF, - 11096: 0x000030D0, - 11097: 0x000030D1, - 11098: 0x000030D2, - 11099: 0x000030D3, - 11100: 0x000030D4, - 11101: 0x000030D5, - 11102: 0x000030D6, - 11103: 0x000030D7, - 11104: 0x000030D8, - 11105: 0x000030D9, - 11106: 0x000030DA, - 11107: 0x000030DB, - 11108: 0x000030DC, - 11109: 0x000030DD, - 11110: 0x000030DE, - 11111: 0x000030DF, - 11112: 0x000030E0, - 11113: 0x000030E1, - 11114: 0x000030E2, - 11115: 0x000030E3, - 11116: 0x000030E4, - 11117: 0x000030E5, - 11118: 0x000030E6, - 11119: 0x000030E7, - 11120: 0x000030E8, - 11121: 0x000030E9, - 11122: 0x000030EA, - 11123: 0x000030EB, - 11124: 0x000030EC, - 11125: 0x000030ED, - 11126: 0x000030EE, - 11127: 0x000030EF, - 11128: 0x000030F0, - 11129: 0x000030F1, - 11130: 0x000030F2, - 11131: 0x000030F3, - 11132: 0x000030F4, - 11133: 0x000030F5, - 11134: 0x000030F6, - 11135: 0x00000410, - 11136: 0x00000411, - 11137: 0x00000412, - 11138: 0x00000413, - 11139: 0x00000414, - 11140: 0x00000415, - 11141: 0x00000401, - 11142: 0x00000416, - 11143: 0x00000417, - 11144: 0x00000418, - 11145: 0x00000419, - 11146: 0x0000041A, - 11147: 0x0000041B, - 11148: 0x0000041C, - 11149: 0x0000041D, - 11150: 0x0000041E, - 11151: 0x0000041F, - 11152: 0x00000420, - 11153: 0x00000421, - 11154: 0x00000422, - 11155: 0x00000423, - 11156: 0x00000424, - 11157: 0x00000425, - 11158: 0x00000426, - 11159: 0x00000427, - 11160: 0x00000428, - 11161: 0x00000429, - 11162: 0x0000042A, - 11163: 0x0000042B, - 11164: 0x0000042C, - 11165: 0x0000042D, - 11166: 0x0000042E, - 11167: 0x0000042F, - 11168: 0x00000430, - 11169: 0x00000431, - 11170: 0x00000432, - 11171: 0x00000433, - 11172: 0x00000434, - 11173: 0x00000435, - 11174: 0x00000451, - 11175: 0x00000436, - 11176: 0x00000437, - 11177: 0x00000438, - 11178: 0x00000439, - 11179: 0x0000043A, - 11180: 0x0000043B, - 11181: 0x0000043C, - 11182: 0x0000043D, - 11183: 0x0000043E, - 11184: 0x0000043F, - 11185: 0x00000440, - 11186: 0x00000441, - 11187: 0x00000442, - 11188: 0x00000443, - 11189: 0x00000444, - 11190: 0x00000445, - 11191: 0x00000446, - 11192: 0x00000447, - 11193: 0x00000448, - 11194: 0x00000449, - 11195: 0x0000044A, - 11196: 0x0000044B, - 11197: 0x0000044C, - 11198: 0x0000044D, - 11199: 0x0000044E, - 11200: 0x0000044F, - 11201: 0x000021E7, - 11202: 0x000021B8, - 11203: 0x000021B9, - 11204: 0x000031CF, - 11205: 0x000200CC, - 11206: 0x00004E5A, - 11207: 0x0002008A, - 11208: 0x00005202, - 11209: 0x00004491, - 11210: 0x00009FB0, - 11211: 0x00005188, - 11212: 0x00009FB1, - 11213: 0x00027607, - 11254: 0x0000FFE2, - 11255: 0x0000FFE4, - 11256: 0x0000FF07, - 11257: 0x0000FF02, - 11258: 0x00003231, - 11259: 0x00002116, - 11260: 0x00002121, - 11261: 0x0000309B, - 11262: 0x0000309C, - 11263: 0x00002E80, - 11264: 0x00002E84, - 11265: 0x00002E86, - 11266: 0x00002E87, - 11267: 0x00002E88, - 11268: 0x00002E8A, - 11269: 0x00002E8C, - 11270: 0x00002E8D, - 11271: 0x00002E95, - 11272: 0x00002E9C, - 11273: 0x00002E9D, - 11274: 0x00002EA5, - 11275: 0x00002EA7, - 11276: 0x00002EAA, - 11277: 0x00002EAC, - 11278: 0x00002EAE, - 11279: 0x00002EB6, - 11280: 0x00002EBC, - 11281: 0x00002EBE, - 11282: 0x00002EC6, - 11283: 0x00002ECA, - 11284: 0x00002ECC, - 11285: 0x00002ECD, - 11286: 0x00002ECF, - 11287: 0x00002ED6, - 11288: 0x00002ED7, - 11289: 0x00002EDE, - 11290: 0x00002EE3, - 11294: 0x00000283, - 11295: 0x00000250, - 11296: 0x0000025B, - 11297: 0x00000254, - 11298: 0x00000275, - 11299: 0x00000153, - 11300: 0x000000F8, - 11301: 0x0000014B, - 11302: 0x0000028A, - 11303: 0x0000026A, - 11304: 0x00004E42, - 11305: 0x00004E5C, - 11306: 0x000051F5, - 11307: 0x0000531A, - 11308: 0x00005382, - 11309: 0x00004E07, - 11310: 0x00004E0C, - 11311: 0x00004E47, - 11312: 0x00004E8D, - 11313: 0x000056D7, - 11314: 0x0000FA0C, - 11315: 0x00005C6E, - 11316: 0x00005F73, - 11317: 0x00004E0F, - 11318: 0x00005187, - 11319: 0x00004E0E, - 11320: 0x00004E2E, - 11321: 0x00004E93, - 11322: 0x00004EC2, - 11323: 0x00004EC9, - 11324: 0x00004EC8, - 11325: 0x00005198, - 11326: 0x000052FC, - 11327: 0x0000536C, - 11328: 0x000053B9, - 11329: 0x00005720, - 11330: 0x00005903, - 11331: 0x0000592C, - 11332: 0x00005C10, - 11333: 0x00005DFF, - 11334: 0x000065E1, - 11335: 0x00006BB3, - 11336: 0x00006BCC, - 11337: 0x00006C14, - 11338: 0x0000723F, - 11339: 0x00004E31, - 11340: 0x00004E3C, - 11341: 0x00004EE8, - 11342: 0x00004EDC, - 11343: 0x00004EE9, - 11344: 0x00004EE1, - 11345: 0x00004EDD, - 11346: 0x00004EDA, - 11347: 0x0000520C, - 11348: 0x0000531C, - 11349: 0x0000534C, - 11350: 0x00005722, - 11351: 0x00005723, - 11352: 0x00005917, - 11353: 0x0000592F, - 11354: 0x00005B81, - 11355: 0x00005B84, - 11356: 0x00005C12, - 11357: 0x00005C3B, - 11358: 0x00005C74, - 11359: 0x00005C73, - 11360: 0x00005E04, - 11361: 0x00005E80, - 11362: 0x00005E82, - 11363: 0x00005FC9, - 11364: 0x00006209, - 11365: 0x00006250, - 11366: 0x00006C15, - 11367: 0x00006C36, - 11368: 0x00006C43, - 11369: 0x00006C3F, - 11370: 0x00006C3B, - 11371: 0x000072AE, - 11372: 0x000072B0, - 11373: 0x0000738A, - 11374: 0x000079B8, - 11375: 0x0000808A, - 11376: 0x0000961E, - 11377: 0x00004F0E, - 11378: 0x00004F18, - 11379: 0x00004F2C, - 11380: 0x00004EF5, - 11381: 0x00004F14, - 11382: 0x00004EF1, - 11383: 0x00004F00, - 11384: 0x00004EF7, - 11385: 0x00004F08, - 11386: 0x00004F1D, - 11387: 0x00004F02, - 11388: 0x00004F05, - 11389: 0x00004F22, - 11390: 0x00004F13, - 11391: 0x00004F04, - 11392: 0x00004EF4, - 11393: 0x00004F12, - 11394: 0x000051B1, - 11395: 0x00005213, - 11396: 0x00005209, - 11397: 0x00005210, - 11398: 0x000052A6, - 11399: 0x00005322, - 11400: 0x0000531F, - 11401: 0x0000534D, - 11402: 0x0000538A, - 11403: 0x00005407, - 11404: 0x000056E1, - 11405: 0x000056DF, - 11406: 0x0000572E, - 11407: 0x0000572A, - 11408: 0x00005734, - 11409: 0x0000593C, - 11410: 0x00005980, - 11411: 0x0000597C, - 11412: 0x00005985, - 11413: 0x0000597B, - 11414: 0x0000597E, - 11415: 0x00005977, - 11416: 0x0000597F, - 11417: 0x00005B56, - 11418: 0x00005C15, - 11419: 0x00005C25, - 11420: 0x00005C7C, - 11421: 0x00005C7A, - 11422: 0x00005C7B, - 11423: 0x00005C7E, - 11424: 0x00005DDF, - 11425: 0x00005E75, - 11426: 0x00005E84, - 11427: 0x00005F02, - 11428: 0x00005F1A, - 11429: 0x00005F74, - 11430: 0x00005FD5, - 11431: 0x00005FD4, - 11432: 0x00005FCF, - 11433: 0x0000625C, - 11434: 0x0000625E, - 11435: 0x00006264, - 11436: 0x00006261, - 11437: 0x00006266, - 11438: 0x00006262, - 11439: 0x00006259, - 11440: 0x00006260, - 11441: 0x0000625A, - 11442: 0x00006265, - 11443: 0x000065EF, - 11444: 0x000065EE, - 11445: 0x0000673E, - 11446: 0x00006739, - 11447: 0x00006738, - 11448: 0x0000673B, - 11449: 0x0000673A, - 11450: 0x0000673F, - 11451: 0x0000673C, - 11452: 0x00006733, - 11453: 0x00006C18, - 11454: 0x00006C46, - 11455: 0x00006C52, - 11456: 0x00006C5C, - 11457: 0x00006C4F, - 11458: 0x00006C4A, - 11459: 0x00006C54, - 11460: 0x00006C4B, - 11461: 0x00006C4C, - 11462: 0x00007071, - 11463: 0x0000725E, - 11464: 0x000072B4, - 11465: 0x000072B5, - 11466: 0x0000738E, - 11467: 0x0000752A, - 11468: 0x0000767F, - 11469: 0x00007A75, - 11470: 0x00007F51, - 11471: 0x00008278, - 11472: 0x0000827C, - 11473: 0x00008280, - 11474: 0x0000827D, - 11475: 0x0000827F, - 11476: 0x0000864D, - 11477: 0x0000897E, - 11478: 0x00009099, - 11479: 0x00009097, - 11480: 0x00009098, - 11481: 0x0000909B, - 11482: 0x00009094, - 11483: 0x00009622, - 11484: 0x00009624, - 11485: 0x00009620, - 11486: 0x00009623, - 11487: 0x00004F56, - 11488: 0x00004F3B, - 11489: 0x00004F62, - 11490: 0x00004F49, - 11491: 0x00004F53, - 11492: 0x00004F64, - 11493: 0x00004F3E, - 11494: 0x00004F67, - 11495: 0x00004F52, - 11496: 0x00004F5F, - 11497: 0x00004F41, - 11498: 0x00004F58, - 11499: 0x00004F2D, - 11500: 0x00004F33, - 11501: 0x00004F3F, - 11502: 0x00004F61, - 11503: 0x0000518F, - 11504: 0x000051B9, - 11505: 0x0000521C, - 11506: 0x0000521E, - 11507: 0x00005221, - 11508: 0x000052AD, - 11509: 0x000052AE, - 11510: 0x00005309, - 11511: 0x00005363, - 11512: 0x00005372, - 11513: 0x0000538E, - 11514: 0x0000538F, - 11515: 0x00005430, - 11516: 0x00005437, - 11517: 0x0000542A, - 11518: 0x00005454, - 11519: 0x00005445, - 11520: 0x00005419, - 11521: 0x0000541C, - 11522: 0x00005425, - 11523: 0x00005418, - 11524: 0x0000543D, - 11525: 0x0000544F, - 11526: 0x00005441, - 11527: 0x00005428, - 11528: 0x00005424, - 11529: 0x00005447, - 11530: 0x000056EE, - 11531: 0x000056E7, - 11532: 0x000056E5, - 11533: 0x00005741, - 11534: 0x00005745, - 11535: 0x0000574C, - 11536: 0x00005749, - 11537: 0x0000574B, - 11538: 0x00005752, - 11539: 0x00005906, - 11540: 0x00005940, - 11541: 0x000059A6, - 11542: 0x00005998, - 11543: 0x000059A0, - 11544: 0x00005997, - 11545: 0x0000598E, - 11546: 0x000059A2, - 11547: 0x00005990, - 11548: 0x0000598F, - 11549: 0x000059A7, - 11550: 0x000059A1, - 11551: 0x00005B8E, - 11552: 0x00005B92, - 11553: 0x00005C28, - 11554: 0x00005C2A, - 11555: 0x00005C8D, - 11556: 0x00005C8F, - 11557: 0x00005C88, - 11558: 0x00005C8B, - 11559: 0x00005C89, - 11560: 0x00005C92, - 11561: 0x00005C8A, - 11562: 0x00005C86, - 11563: 0x00005C93, - 11564: 0x00005C95, - 11565: 0x00005DE0, - 11566: 0x00005E0A, - 11567: 0x00005E0E, - 11568: 0x00005E8B, - 11569: 0x00005E89, - 11570: 0x00005E8C, - 11571: 0x00005E88, - 11572: 0x00005E8D, - 11573: 0x00005F05, - 11574: 0x00005F1D, - 11575: 0x00005F78, - 11576: 0x00005F76, - 11577: 0x00005FD2, - 11578: 0x00005FD1, - 11579: 0x00005FD0, - 11580: 0x00005FED, - 11581: 0x00005FE8, - 11582: 0x00005FEE, - 11583: 0x00005FF3, - 11584: 0x00005FE1, - 11585: 0x00005FE4, - 11586: 0x00005FE3, - 11587: 0x00005FFA, - 11588: 0x00005FEF, - 11589: 0x00005FF7, - 11590: 0x00005FFB, - 11591: 0x00006000, - 11592: 0x00005FF4, - 11593: 0x0000623A, - 11594: 0x00006283, - 11595: 0x0000628C, - 11596: 0x0000628E, - 11597: 0x0000628F, - 11598: 0x00006294, - 11599: 0x00006287, - 11600: 0x00006271, - 11601: 0x0000627B, - 11602: 0x0000627A, - 11603: 0x00006270, - 11604: 0x00006281, - 11605: 0x00006288, - 11606: 0x00006277, - 11607: 0x0000627D, - 11608: 0x00006272, - 11609: 0x00006274, - 11610: 0x00006537, - 11611: 0x000065F0, - 11612: 0x000065F4, - 11613: 0x000065F3, - 11614: 0x000065F2, - 11615: 0x000065F5, - 11616: 0x00006745, - 11617: 0x00006747, - 11618: 0x00006759, - 11619: 0x00006755, - 11620: 0x0000674C, - 11621: 0x00006748, - 11622: 0x0000675D, - 11623: 0x0000674D, - 11624: 0x0000675A, - 11625: 0x0000674B, - 11626: 0x00006BD0, - 11627: 0x00006C19, - 11628: 0x00006C1A, - 11629: 0x00006C78, - 11630: 0x00006C67, - 11631: 0x00006C6B, - 11632: 0x00006C84, - 11633: 0x00006C8B, - 11634: 0x00006C8F, - 11635: 0x00006C71, - 11636: 0x00006C6F, - 11637: 0x00006C69, - 11638: 0x00006C9A, - 11639: 0x00006C6D, - 11640: 0x00006C87, - 11641: 0x00006C95, - 11642: 0x00006C9C, - 11643: 0x00006C66, - 11644: 0x00006C73, - 11645: 0x00006C65, - 11646: 0x00006C7B, - 11647: 0x00006C8E, - 11648: 0x00007074, - 11649: 0x0000707A, - 11650: 0x00007263, - 11651: 0x000072BF, - 11652: 0x000072BD, - 11653: 0x000072C3, - 11654: 0x000072C6, - 11655: 0x000072C1, - 11656: 0x000072BA, - 11657: 0x000072C5, - 11658: 0x00007395, - 11659: 0x00007397, - 11660: 0x00007393, - 11661: 0x00007394, - 11662: 0x00007392, - 11663: 0x0000753A, - 11664: 0x00007539, - 11665: 0x00007594, - 11666: 0x00007595, - 11667: 0x00007681, - 11668: 0x0000793D, - 11669: 0x00008034, - 11670: 0x00008095, - 11671: 0x00008099, - 11672: 0x00008090, - 11673: 0x00008092, - 11674: 0x0000809C, - 11675: 0x00008290, - 11676: 0x0000828F, - 11677: 0x00008285, - 11678: 0x0000828E, - 11679: 0x00008291, - 11680: 0x00008293, - 11681: 0x0000828A, - 11682: 0x00008283, - 11683: 0x00008284, - 11684: 0x00008C78, - 11685: 0x00008FC9, - 11686: 0x00008FBF, - 11687: 0x0000909F, - 11688: 0x000090A1, - 11689: 0x000090A5, - 11690: 0x0000909E, - 11691: 0x000090A7, - 11692: 0x000090A0, - 11693: 0x00009630, - 11694: 0x00009628, - 11695: 0x0000962F, - 11696: 0x0000962D, - 11697: 0x00004E33, - 11698: 0x00004F98, - 11699: 0x00004F7C, - 11700: 0x00004F85, - 11701: 0x00004F7D, - 11702: 0x00004F80, - 11703: 0x00004F87, - 11704: 0x00004F76, - 11705: 0x00004F74, - 11706: 0x00004F89, - 11707: 0x00004F84, - 11708: 0x00004F77, - 11709: 0x00004F4C, - 11710: 0x00004F97, - 11711: 0x00004F6A, - 11712: 0x00004F9A, - 11713: 0x00004F79, - 11714: 0x00004F81, - 11715: 0x00004F78, - 11716: 0x00004F90, - 11717: 0x00004F9C, - 11718: 0x00004F94, - 11719: 0x00004F9E, - 11720: 0x00004F92, - 11721: 0x00004F82, - 11722: 0x00004F95, - 11723: 0x00004F6B, - 11724: 0x00004F6E, - 11725: 0x0000519E, - 11726: 0x000051BC, - 11727: 0x000051BE, - 11728: 0x00005235, - 11729: 0x00005232, - 11730: 0x00005233, - 11731: 0x00005246, - 11732: 0x00005231, - 11733: 0x000052BC, - 11734: 0x0000530A, - 11735: 0x0000530B, - 11736: 0x0000533C, - 11737: 0x00005392, - 11738: 0x00005394, - 11739: 0x00005487, - 11740: 0x0000547F, - 11741: 0x00005481, - 11742: 0x00005491, - 11743: 0x00005482, - 11744: 0x00005488, - 11745: 0x0000546B, - 11746: 0x0000547A, - 11747: 0x0000547E, - 11748: 0x00005465, - 11749: 0x0000546C, - 11750: 0x00005474, - 11751: 0x00005466, - 11752: 0x0000548D, - 11753: 0x0000546F, - 11754: 0x00005461, - 11755: 0x00005460, - 11756: 0x00005498, - 11757: 0x00005463, - 11758: 0x00005467, - 11759: 0x00005464, - 11760: 0x000056F7, - 11761: 0x000056F9, - 11762: 0x0000576F, - 11763: 0x00005772, - 11764: 0x0000576D, - 11765: 0x0000576B, - 11766: 0x00005771, - 11767: 0x00005770, - 11768: 0x00005776, - 11769: 0x00005780, - 11770: 0x00005775, - 11771: 0x0000577B, - 11772: 0x00005773, - 11773: 0x00005774, - 11774: 0x00005762, - 11775: 0x00005768, - 11776: 0x0000577D, - 11777: 0x0000590C, - 11778: 0x00005945, - 11779: 0x000059B5, - 11780: 0x000059BA, - 11781: 0x000059CF, - 11782: 0x000059CE, - 11783: 0x000059B2, - 11784: 0x000059CC, - 11785: 0x000059C1, - 11786: 0x000059B6, - 11787: 0x000059BC, - 11788: 0x000059C3, - 11789: 0x000059D6, - 11790: 0x000059B1, - 11791: 0x000059BD, - 11792: 0x000059C0, - 11793: 0x000059C8, - 11794: 0x000059B4, - 11795: 0x000059C7, - 11796: 0x00005B62, - 11797: 0x00005B65, - 11798: 0x00005B93, - 11799: 0x00005B95, - 11800: 0x00005C44, - 11801: 0x00005C47, - 11802: 0x00005CAE, - 11803: 0x00005CA4, - 11804: 0x00005CA0, - 11805: 0x00005CB5, - 11806: 0x00005CAF, - 11807: 0x00005CA8, - 11808: 0x00005CAC, - 11809: 0x00005C9F, - 11810: 0x00005CA3, - 11811: 0x00005CAD, - 11812: 0x00005CA2, - 11813: 0x00005CAA, - 11814: 0x00005CA7, - 11815: 0x00005C9D, - 11816: 0x00005CA5, - 11817: 0x00005CB6, - 11818: 0x00005CB0, - 11819: 0x00005CA6, - 11820: 0x00005E17, - 11821: 0x00005E14, - 11822: 0x00005E19, - 11823: 0x00005F28, - 11824: 0x00005F22, - 11825: 0x00005F23, - 11826: 0x00005F24, - 11827: 0x00005F54, - 11828: 0x00005F82, - 11829: 0x00005F7E, - 11830: 0x00005F7D, - 11831: 0x00005FDE, - 11832: 0x00005FE5, - 11833: 0x0000602D, - 11834: 0x00006026, - 11835: 0x00006019, - 11836: 0x00006032, - 11837: 0x0000600B, - 11838: 0x00006034, - 11839: 0x0000600A, - 11840: 0x00006017, - 11841: 0x00006033, - 11842: 0x0000601A, - 11843: 0x0000601E, - 11844: 0x0000602C, - 11845: 0x00006022, - 11846: 0x0000600D, - 11847: 0x00006010, - 11848: 0x0000602E, - 11849: 0x00006013, - 11850: 0x00006011, - 11851: 0x0000600C, - 11852: 0x00006009, - 11853: 0x0000601C, - 11854: 0x00006214, - 11855: 0x0000623D, - 11856: 0x000062AD, - 11857: 0x000062B4, - 11858: 0x000062D1, - 11859: 0x000062BE, - 11860: 0x000062AA, - 11861: 0x000062B6, - 11862: 0x000062CA, - 11863: 0x000062AE, - 11864: 0x000062B3, - 11865: 0x000062AF, - 11866: 0x000062BB, - 11867: 0x000062A9, - 11868: 0x000062B0, - 11869: 0x000062B8, - 11870: 0x0000653D, - 11871: 0x000065A8, - 11872: 0x000065BB, - 11873: 0x00006609, - 11874: 0x000065FC, - 11875: 0x00006604, - 11876: 0x00006612, - 11877: 0x00006608, - 11878: 0x000065FB, - 11879: 0x00006603, - 11880: 0x0000660B, - 11881: 0x0000660D, - 11882: 0x00006605, - 11883: 0x000065FD, - 11884: 0x00006611, - 11885: 0x00006610, - 11886: 0x000066F6, - 11887: 0x0000670A, - 11888: 0x00006785, - 11889: 0x0000676C, - 11890: 0x0000678E, - 11891: 0x00006792, - 11892: 0x00006776, - 11893: 0x0000677B, - 11894: 0x00006798, - 11895: 0x00006786, - 11896: 0x00006784, - 11897: 0x00006774, - 11898: 0x0000678D, - 11899: 0x0000678C, - 11900: 0x0000677A, - 11901: 0x0000679F, - 11902: 0x00006791, - 11903: 0x00006799, - 11904: 0x00006783, - 11905: 0x0000677D, - 11906: 0x00006781, - 11907: 0x00006778, - 11908: 0x00006779, - 11909: 0x00006794, - 11910: 0x00006B25, - 11911: 0x00006B80, - 11912: 0x00006B7E, - 11913: 0x00006BDE, - 11914: 0x00006C1D, - 11915: 0x00006C93, - 11916: 0x00006CEC, - 11917: 0x00006CEB, - 11918: 0x00006CEE, - 11919: 0x00006CD9, - 11920: 0x00006CB6, - 11921: 0x00006CD4, - 11922: 0x00006CAD, - 11923: 0x00006CE7, - 11924: 0x00006CB7, - 11925: 0x00006CD0, - 11926: 0x00006CC2, - 11927: 0x00006CBA, - 11928: 0x00006CC3, - 11929: 0x00006CC6, - 11930: 0x00006CED, - 11931: 0x00006CF2, - 11932: 0x00006CD2, - 11933: 0x00006CDD, - 11934: 0x00006CB4, - 11935: 0x00006C8A, - 11936: 0x00006C9D, - 11937: 0x00006C80, - 11938: 0x00006CDE, - 11939: 0x00006CC0, - 11940: 0x00006D30, - 11941: 0x00006CCD, - 11942: 0x00006CC7, - 11943: 0x00006CB0, - 11944: 0x00006CF9, - 11945: 0x00006CCF, - 11946: 0x00006CE9, - 11947: 0x00006CD1, - 11948: 0x00007094, - 11949: 0x00007098, - 11950: 0x00007085, - 11951: 0x00007093, - 11952: 0x00007086, - 11953: 0x00007084, - 11954: 0x00007091, - 11955: 0x00007096, - 11956: 0x00007082, - 11957: 0x0000709A, - 11958: 0x00007083, - 11959: 0x0000726A, - 11960: 0x000072D6, - 11961: 0x000072CB, - 11962: 0x000072D8, - 11963: 0x000072C9, - 11964: 0x000072DC, - 11965: 0x000072D2, - 11966: 0x000072D4, - 11967: 0x000072DA, - 11968: 0x000072CC, - 11969: 0x000072D1, - 11970: 0x000073A4, - 11971: 0x000073A1, - 11972: 0x000073AD, - 11973: 0x000073A6, - 11974: 0x000073A2, - 11975: 0x000073A0, - 11976: 0x000073AC, - 11977: 0x0000739D, - 11978: 0x000074DD, - 11979: 0x000074E8, - 11980: 0x0000753F, - 11981: 0x00007540, - 11982: 0x0000753E, - 11983: 0x0000758C, - 11984: 0x00007598, - 11985: 0x000076AF, - 11986: 0x000076F3, - 11987: 0x000076F1, - 11988: 0x000076F0, - 11989: 0x000076F5, - 11990: 0x000077F8, - 11991: 0x000077FC, - 11992: 0x000077F9, - 11993: 0x000077FB, - 11994: 0x000077FA, - 11995: 0x000077F7, - 11996: 0x00007942, - 11997: 0x0000793F, - 11998: 0x000079C5, - 11999: 0x00007A78, - 12000: 0x00007A7B, - 12001: 0x00007AFB, - 12002: 0x00007C75, - 12003: 0x00007CFD, - 12004: 0x00008035, - 12005: 0x0000808F, - 12006: 0x000080AE, - 12007: 0x000080A3, - 12008: 0x000080B8, - 12009: 0x000080B5, - 12010: 0x000080AD, - 12011: 0x00008220, - 12012: 0x000082A0, - 12013: 0x000082C0, - 12014: 0x000082AB, - 12015: 0x0000829A, - 12016: 0x00008298, - 12017: 0x0000829B, - 12018: 0x000082B5, - 12019: 0x000082A7, - 12020: 0x000082AE, - 12021: 0x000082BC, - 12022: 0x0000829E, - 12023: 0x000082BA, - 12024: 0x000082B4, - 12025: 0x000082A8, - 12026: 0x000082A1, - 12027: 0x000082A9, - 12028: 0x000082C2, - 12029: 0x000082A4, - 12030: 0x000082C3, - 12031: 0x000082B6, - 12032: 0x000082A2, - 12033: 0x00008670, - 12034: 0x0000866F, - 12035: 0x0000866D, - 12036: 0x0000866E, - 12037: 0x00008C56, - 12038: 0x00008FD2, - 12039: 0x00008FCB, - 12040: 0x00008FD3, - 12041: 0x00008FCD, - 12042: 0x00008FD6, - 12043: 0x00008FD5, - 12044: 0x00008FD7, - 12045: 0x000090B2, - 12046: 0x000090B4, - 12047: 0x000090AF, - 12048: 0x000090B3, - 12049: 0x000090B0, - 12050: 0x00009639, - 12051: 0x0000963D, - 12052: 0x0000963C, - 12053: 0x0000963A, - 12054: 0x00009643, - 12055: 0x00004FCD, - 12056: 0x00004FC5, - 12057: 0x00004FD3, - 12058: 0x00004FB2, - 12059: 0x00004FC9, - 12060: 0x00004FCB, - 12061: 0x00004FC1, - 12062: 0x00004FD4, - 12063: 0x00004FDC, - 12064: 0x00004FD9, - 12065: 0x00004FBB, - 12066: 0x00004FB3, - 12067: 0x00004FDB, - 12068: 0x00004FC7, - 12069: 0x00004FD6, - 12070: 0x00004FBA, - 12071: 0x00004FC0, - 12072: 0x00004FB9, - 12073: 0x00004FEC, - 12074: 0x00005244, - 12075: 0x00005249, - 12076: 0x000052C0, - 12077: 0x000052C2, - 12078: 0x0000533D, - 12079: 0x0000537C, - 12080: 0x00005397, - 12081: 0x00005396, - 12082: 0x00005399, - 12083: 0x00005398, - 12084: 0x000054BA, - 12085: 0x000054A1, - 12086: 0x000054AD, - 12087: 0x000054A5, - 12088: 0x000054CF, - 12089: 0x000054C3, - 12090: 0x0000830D, - 12091: 0x000054B7, - 12092: 0x000054AE, - 12093: 0x000054D6, - 12094: 0x000054B6, - 12095: 0x000054C5, - 12096: 0x000054C6, - 12097: 0x000054A0, - 12098: 0x00005470, - 12099: 0x000054BC, - 12100: 0x000054A2, - 12101: 0x000054BE, - 12102: 0x00005472, - 12103: 0x000054DE, - 12104: 0x000054B0, - 12105: 0x000057B5, - 12106: 0x0000579E, - 12107: 0x0000579F, - 12108: 0x000057A4, - 12109: 0x0000578C, - 12110: 0x00005797, - 12111: 0x0000579D, - 12112: 0x0000579B, - 12113: 0x00005794, - 12114: 0x00005798, - 12115: 0x0000578F, - 12116: 0x00005799, - 12117: 0x000057A5, - 12118: 0x0000579A, - 12119: 0x00005795, - 12120: 0x000058F4, - 12121: 0x0000590D, - 12122: 0x00005953, - 12123: 0x000059E1, - 12124: 0x000059DE, - 12125: 0x000059EE, - 12126: 0x00005A00, - 12127: 0x000059F1, - 12128: 0x000059DD, - 12129: 0x000059FA, - 12130: 0x000059FD, - 12131: 0x000059FC, - 12132: 0x000059F6, - 12133: 0x000059E4, - 12134: 0x000059F2, - 12135: 0x000059F7, - 12136: 0x000059DB, - 12137: 0x000059E9, - 12138: 0x000059F3, - 12139: 0x000059F5, - 12140: 0x000059E0, - 12141: 0x000059FE, - 12142: 0x000059F4, - 12143: 0x000059ED, - 12144: 0x00005BA8, - 12145: 0x00005C4C, - 12146: 0x00005CD0, - 12147: 0x00005CD8, - 12148: 0x00005CCC, - 12149: 0x00005CD7, - 12150: 0x00005CCB, - 12151: 0x00005CDB, - 12152: 0x00005CDE, - 12153: 0x00005CDA, - 12154: 0x00005CC9, - 12155: 0x00005CC7, - 12156: 0x00005CCA, - 12157: 0x00005CD6, - 12158: 0x00005CD3, - 12159: 0x00005CD4, - 12160: 0x00005CCF, - 12161: 0x00005CC8, - 12162: 0x00005CC6, - 12163: 0x00005CCE, - 12164: 0x00005CDF, - 12165: 0x00005CF8, - 12166: 0x00005DF9, - 12167: 0x00005E21, - 12168: 0x00005E22, - 12169: 0x00005E23, - 12170: 0x00005E20, - 12171: 0x00005E24, - 12172: 0x00005EB0, - 12173: 0x00005EA4, - 12174: 0x00005EA2, - 12175: 0x00005E9B, - 12176: 0x00005EA3, - 12177: 0x00005EA5, - 12178: 0x00005F07, - 12179: 0x00005F2E, - 12180: 0x00005F56, - 12181: 0x00005F86, - 12182: 0x00006037, - 12183: 0x00006039, - 12184: 0x00006054, - 12185: 0x00006072, - 12186: 0x0000605E, - 12187: 0x00006045, - 12188: 0x00006053, - 12189: 0x00006047, - 12190: 0x00006049, - 12191: 0x0000605B, - 12192: 0x0000604C, - 12193: 0x00006040, - 12194: 0x00006042, - 12195: 0x0000605F, - 12196: 0x00006024, - 12197: 0x00006044, - 12198: 0x00006058, - 12199: 0x00006066, - 12200: 0x0000606E, - 12201: 0x00006242, - 12202: 0x00006243, - 12203: 0x000062CF, - 12204: 0x0000630D, - 12205: 0x0000630B, - 12206: 0x000062F5, - 12207: 0x0000630E, - 12208: 0x00006303, - 12209: 0x000062EB, - 12210: 0x000062F9, - 12211: 0x0000630F, - 12212: 0x0000630C, - 12213: 0x000062F8, - 12214: 0x000062F6, - 12215: 0x00006300, - 12216: 0x00006313, - 12217: 0x00006314, - 12218: 0x000062FA, - 12219: 0x00006315, - 12220: 0x000062FB, - 12221: 0x000062F0, - 12222: 0x00006541, - 12223: 0x00006543, - 12224: 0x000065AA, - 12225: 0x000065BF, - 12226: 0x00006636, - 12227: 0x00006621, - 12228: 0x00006632, - 12229: 0x00006635, - 12230: 0x0000661C, - 12231: 0x00006626, - 12232: 0x00006622, - 12233: 0x00006633, - 12234: 0x0000662B, - 12235: 0x0000663A, - 12236: 0x0000661D, - 12237: 0x00006634, - 12238: 0x00006639, - 12239: 0x0000662E, - 12240: 0x0000670F, - 12241: 0x00006710, - 12242: 0x000067C1, - 12243: 0x000067F2, - 12244: 0x000067C8, - 12245: 0x000067BA, - 12246: 0x000067DC, - 12247: 0x000067BB, - 12248: 0x000067F8, - 12249: 0x000067D8, - 12250: 0x000067C0, - 12251: 0x000067B7, - 12252: 0x000067C5, - 12253: 0x000067EB, - 12254: 0x000067E4, - 12255: 0x000067DF, - 12256: 0x000067B5, - 12257: 0x000067CD, - 12258: 0x000067B3, - 12259: 0x000067F7, - 12260: 0x000067F6, - 12261: 0x000067EE, - 12262: 0x000067E3, - 12263: 0x000067C2, - 12264: 0x000067B9, - 12265: 0x000067CE, - 12266: 0x000067E7, - 12267: 0x000067F0, - 12268: 0x000067B2, - 12269: 0x000067FC, - 12270: 0x000067C6, - 12271: 0x000067ED, - 12272: 0x000067CC, - 12273: 0x000067AE, - 12274: 0x000067E6, - 12275: 0x000067DB, - 12276: 0x000067FA, - 12277: 0x000067C9, - 12278: 0x000067CA, - 12279: 0x000067C3, - 12280: 0x000067EA, - 12281: 0x000067CB, - 12282: 0x00006B28, - 12283: 0x00006B82, - 12284: 0x00006B84, - 12285: 0x00006BB6, - 12286: 0x00006BD6, - 12287: 0x00006BD8, - 12288: 0x00006BE0, - 12289: 0x00006C20, - 12290: 0x00006C21, - 12291: 0x00006D28, - 12292: 0x00006D34, - 12293: 0x00006D2D, - 12294: 0x00006D1F, - 12295: 0x00006D3C, - 12296: 0x00006D3F, - 12297: 0x00006D12, - 12298: 0x00006D0A, - 12299: 0x00006CDA, - 12300: 0x00006D33, - 12301: 0x00006D04, - 12302: 0x00006D19, - 12303: 0x00006D3A, - 12304: 0x00006D1A, - 12305: 0x00006D11, - 12306: 0x00006D00, - 12307: 0x00006D1D, - 12308: 0x00006D42, - 12309: 0x00006D01, - 12310: 0x00006D18, - 12311: 0x00006D37, - 12312: 0x00006D03, - 12313: 0x00006D0F, - 12314: 0x00006D40, - 12315: 0x00006D07, - 12316: 0x00006D20, - 12317: 0x00006D2C, - 12318: 0x00006D08, - 12319: 0x00006D22, - 12320: 0x00006D09, - 12321: 0x00006D10, - 12322: 0x000070B7, - 12323: 0x0000709F, - 12324: 0x000070BE, - 12325: 0x000070B1, - 12326: 0x000070B0, - 12327: 0x000070A1, - 12328: 0x000070B4, - 12329: 0x000070B5, - 12330: 0x000070A9, - 12331: 0x00007241, - 12332: 0x00007249, - 12333: 0x0000724A, - 12334: 0x0000726C, - 12335: 0x00007270, - 12336: 0x00007273, - 12337: 0x0000726E, - 12338: 0x000072CA, - 12339: 0x000072E4, - 12340: 0x000072E8, - 12341: 0x000072EB, - 12342: 0x000072DF, - 12343: 0x000072EA, - 12344: 0x000072E6, - 12345: 0x000072E3, - 12346: 0x00007385, - 12347: 0x000073CC, - 12348: 0x000073C2, - 12349: 0x000073C8, - 12350: 0x000073C5, - 12351: 0x000073B9, - 12352: 0x000073B6, - 12353: 0x000073B5, - 12354: 0x000073B4, - 12355: 0x000073EB, - 12356: 0x000073BF, - 12357: 0x000073C7, - 12358: 0x000073BE, - 12359: 0x000073C3, - 12360: 0x000073C6, - 12361: 0x000073B8, - 12362: 0x000073CB, - 12363: 0x000074EC, - 12364: 0x000074EE, - 12365: 0x0000752E, - 12366: 0x00007547, - 12367: 0x00007548, - 12368: 0x000075A7, - 12369: 0x000075AA, - 12370: 0x00007679, - 12371: 0x000076C4, - 12372: 0x00007708, - 12373: 0x00007703, - 12374: 0x00007704, - 12375: 0x00007705, - 12376: 0x0000770A, - 12377: 0x000076F7, - 12378: 0x000076FB, - 12379: 0x000076FA, - 12380: 0x000077E7, - 12381: 0x000077E8, - 12382: 0x00007806, - 12383: 0x00007811, - 12384: 0x00007812, - 12385: 0x00007805, - 12386: 0x00007810, - 12387: 0x0000780F, - 12388: 0x0000780E, - 12389: 0x00007809, - 12390: 0x00007803, - 12391: 0x00007813, - 12392: 0x0000794A, - 12393: 0x0000794C, - 12394: 0x0000794B, - 12395: 0x00007945, - 12396: 0x00007944, - 12397: 0x000079D5, - 12398: 0x000079CD, - 12399: 0x000079CF, - 12400: 0x000079D6, - 12401: 0x000079CE, - 12402: 0x00007A80, - 12403: 0x00007A7E, - 12404: 0x00007AD1, - 12405: 0x00007B00, - 12406: 0x00007B01, - 12407: 0x00007C7A, - 12408: 0x00007C78, - 12409: 0x00007C79, - 12410: 0x00007C7F, - 12411: 0x00007C80, - 12412: 0x00007C81, - 12413: 0x00007D03, - 12414: 0x00007D08, - 12415: 0x00007D01, - 12416: 0x00007F58, - 12417: 0x00007F91, - 12418: 0x00007F8D, - 12419: 0x00007FBE, - 12420: 0x00008007, - 12421: 0x0000800E, - 12422: 0x0000800F, - 12423: 0x00008014, - 12424: 0x00008037, - 12425: 0x000080D8, - 12426: 0x000080C7, - 12427: 0x000080E0, - 12428: 0x000080D1, - 12429: 0x000080C8, - 12430: 0x000080C2, - 12431: 0x000080D0, - 12432: 0x000080C5, - 12433: 0x000080E3, - 12434: 0x000080D9, - 12435: 0x000080DC, - 12436: 0x000080CA, - 12437: 0x000080D5, - 12438: 0x000080C9, - 12439: 0x000080CF, - 12440: 0x000080D7, - 12441: 0x000080E6, - 12442: 0x000080CD, - 12443: 0x000081FF, - 12444: 0x00008221, - 12445: 0x00008294, - 12446: 0x000082D9, - 12447: 0x000082FE, - 12448: 0x000082F9, - 12449: 0x00008307, - 12450: 0x000082E8, - 12451: 0x00008300, - 12452: 0x000082D5, - 12453: 0x0000833A, - 12454: 0x000082EB, - 12455: 0x000082D6, - 12456: 0x000082F4, - 12457: 0x000082EC, - 12458: 0x000082E1, - 12459: 0x000082F2, - 12460: 0x000082F5, - 12461: 0x0000830C, - 12462: 0x000082FB, - 12463: 0x000082F6, - 12464: 0x000082F0, - 12465: 0x000082EA, - 12466: 0x000082E4, - 12467: 0x000082E0, - 12468: 0x000082FA, - 12469: 0x000082F3, - 12470: 0x000082ED, - 12471: 0x00008677, - 12472: 0x00008674, - 12473: 0x0000867C, - 12474: 0x00008673, - 12475: 0x00008841, - 12476: 0x0000884E, - 12477: 0x00008867, - 12478: 0x0000886A, - 12479: 0x00008869, - 12480: 0x000089D3, - 12481: 0x00008A04, - 12482: 0x00008A07, - 12483: 0x00008D72, - 12484: 0x00008FE3, - 12485: 0x00008FE1, - 12486: 0x00008FEE, - 12487: 0x00008FE0, - 12488: 0x000090F1, - 12489: 0x000090BD, - 12490: 0x000090BF, - 12491: 0x000090D5, - 12492: 0x000090C5, - 12493: 0x000090BE, - 12494: 0x000090C7, - 12495: 0x000090CB, - 12496: 0x000090C8, - 12497: 0x000091D4, - 12498: 0x000091D3, - 12499: 0x00009654, - 12500: 0x0000964F, - 12501: 0x00009651, - 12502: 0x00009653, - 12503: 0x0000964A, - 12504: 0x0000964E, - 12505: 0x0000501E, - 12506: 0x00005005, - 12507: 0x00005007, - 12508: 0x00005013, - 12509: 0x00005022, - 12510: 0x00005030, - 12511: 0x0000501B, - 12512: 0x00004FF5, - 12513: 0x00004FF4, - 12514: 0x00005033, - 12515: 0x00005037, - 12516: 0x0000502C, - 12517: 0x00004FF6, - 12518: 0x00004FF7, - 12519: 0x00005017, - 12520: 0x0000501C, - 12521: 0x00005020, - 12522: 0x00005027, - 12523: 0x00005035, - 12524: 0x0000502F, - 12525: 0x00005031, - 12526: 0x0000500E, - 12527: 0x0000515A, - 12528: 0x00005194, - 12529: 0x00005193, - 12530: 0x000051CA, - 12531: 0x000051C4, - 12532: 0x000051C5, - 12533: 0x000051C8, - 12534: 0x000051CE, - 12535: 0x00005261, - 12536: 0x0000525A, - 12537: 0x00005252, - 12538: 0x0000525E, - 12539: 0x0000525F, - 12540: 0x00005255, - 12541: 0x00005262, - 12542: 0x000052CD, - 12543: 0x0000530E, - 12544: 0x0000539E, - 12545: 0x00005526, - 12546: 0x000054E2, - 12547: 0x00005517, - 12548: 0x00005512, - 12549: 0x000054E7, - 12550: 0x000054F3, - 12551: 0x000054E4, - 12552: 0x0000551A, - 12553: 0x000054FF, - 12554: 0x00005504, - 12555: 0x00005508, - 12556: 0x000054EB, - 12557: 0x00005511, - 12558: 0x00005505, - 12559: 0x000054F1, - 12560: 0x0000550A, - 12561: 0x000054FB, - 12562: 0x000054F7, - 12563: 0x000054F8, - 12564: 0x000054E0, - 12565: 0x0000550E, - 12566: 0x00005503, - 12567: 0x0000550B, - 12568: 0x00005701, - 12569: 0x00005702, - 12570: 0x000057CC, - 12571: 0x00005832, - 12572: 0x000057D5, - 12573: 0x000057D2, - 12574: 0x000057BA, - 12575: 0x000057C6, - 12576: 0x000057BD, - 12577: 0x000057BC, - 12578: 0x000057B8, - 12579: 0x000057B6, - 12580: 0x000057BF, - 12581: 0x000057C7, - 12582: 0x000057D0, - 12583: 0x000057B9, - 12584: 0x000057C1, - 12585: 0x0000590E, - 12586: 0x0000594A, - 12587: 0x00005A19, - 12588: 0x00005A16, - 12589: 0x00005A2D, - 12590: 0x00005A2E, - 12591: 0x00005A15, - 12592: 0x00005A0F, - 12593: 0x00005A17, - 12594: 0x00005A0A, - 12595: 0x00005A1E, - 12596: 0x00005A33, - 12597: 0x00005B6C, - 12598: 0x00005BA7, - 12599: 0x00005BAD, - 12600: 0x00005BAC, - 12601: 0x00005C03, - 12602: 0x00005C56, - 12603: 0x00005C54, - 12604: 0x00005CEC, - 12605: 0x00005CFF, - 12606: 0x00005CEE, - 12607: 0x00005CF1, - 12608: 0x00005CF7, - 12609: 0x00005D00, - 12610: 0x00005CF9, - 12611: 0x00005E29, - 12612: 0x00005E28, - 12613: 0x00005EA8, - 12614: 0x00005EAE, - 12615: 0x00005EAA, - 12616: 0x00005EAC, - 12617: 0x00005F33, - 12618: 0x00005F30, - 12619: 0x00005F67, - 12620: 0x0000605D, - 12621: 0x0000605A, - 12622: 0x00006067, - 12623: 0x00006041, - 12624: 0x000060A2, - 12625: 0x00006088, - 12626: 0x00006080, - 12627: 0x00006092, - 12628: 0x00006081, - 12629: 0x0000609D, - 12630: 0x00006083, - 12631: 0x00006095, - 12632: 0x0000609B, - 12633: 0x00006097, - 12634: 0x00006087, - 12635: 0x0000609C, - 12636: 0x0000608E, - 12637: 0x00006219, - 12638: 0x00006246, - 12639: 0x000062F2, - 12640: 0x00006310, - 12641: 0x00006356, - 12642: 0x0000632C, - 12643: 0x00006344, - 12644: 0x00006345, - 12645: 0x00006336, - 12646: 0x00006343, - 12647: 0x000063E4, - 12648: 0x00006339, - 12649: 0x0000634B, - 12650: 0x0000634A, - 12651: 0x0000633C, - 12652: 0x00006329, - 12653: 0x00006341, - 12654: 0x00006334, - 12655: 0x00006358, - 12656: 0x00006354, - 12657: 0x00006359, - 12658: 0x0000632D, - 12659: 0x00006347, - 12660: 0x00006333, - 12661: 0x0000635A, - 12662: 0x00006351, - 12663: 0x00006338, - 12664: 0x00006357, - 12665: 0x00006340, - 12666: 0x00006348, - 12667: 0x0000654A, - 12668: 0x00006546, - 12669: 0x000065C6, - 12670: 0x000065C3, - 12671: 0x000065C4, - 12672: 0x000065C2, - 12673: 0x0000664A, - 12674: 0x0000665F, - 12675: 0x00006647, - 12676: 0x00006651, - 12677: 0x00006712, - 12678: 0x00006713, - 12679: 0x0000681F, - 12680: 0x0000681A, - 12681: 0x00006849, - 12682: 0x00006832, - 12683: 0x00006833, - 12684: 0x0000683B, - 12685: 0x0000684B, - 12686: 0x0000684F, - 12687: 0x00006816, - 12688: 0x00006831, - 12689: 0x0000681C, - 12690: 0x00006835, - 12691: 0x0000682B, - 12692: 0x0000682D, - 12693: 0x0000682F, - 12694: 0x0000684E, - 12695: 0x00006844, - 12696: 0x00006834, - 12697: 0x0000681D, - 12698: 0x00006812, - 12699: 0x00006814, - 12700: 0x00006826, - 12701: 0x00006828, - 12702: 0x0000682E, - 12703: 0x0000684D, - 12704: 0x0000683A, - 12705: 0x00006825, - 12706: 0x00006820, - 12707: 0x00006B2C, - 12708: 0x00006B2F, - 12709: 0x00006B2D, - 12710: 0x00006B31, - 12711: 0x00006B34, - 12712: 0x00006B6D, - 12713: 0x00008082, - 12714: 0x00006B88, - 12715: 0x00006BE6, - 12716: 0x00006BE4, - 12717: 0x00006BE8, - 12718: 0x00006BE3, - 12719: 0x00006BE2, - 12720: 0x00006BE7, - 12721: 0x00006C25, - 12722: 0x00006D7A, - 12723: 0x00006D63, - 12724: 0x00006D64, - 12725: 0x00006D76, - 12726: 0x00006D0D, - 12727: 0x00006D61, - 12728: 0x00006D92, - 12729: 0x00006D58, - 12730: 0x00006D62, - 12731: 0x00006D6D, - 12732: 0x00006D6F, - 12733: 0x00006D91, - 12734: 0x00006D8D, - 12735: 0x00006DEF, - 12736: 0x00006D7F, - 12737: 0x00006D86, - 12738: 0x00006D5E, - 12739: 0x00006D67, - 12740: 0x00006D60, - 12741: 0x00006D97, - 12742: 0x00006D70, - 12743: 0x00006D7C, - 12744: 0x00006D5F, - 12745: 0x00006D82, - 12746: 0x00006D98, - 12747: 0x00006D2F, - 12748: 0x00006D68, - 12749: 0x00006D8B, - 12750: 0x00006D7E, - 12751: 0x00006D80, - 12752: 0x00006D84, - 12753: 0x00006D16, - 12754: 0x00006D83, - 12755: 0x00006D7B, - 12756: 0x00006D7D, - 12757: 0x00006D75, - 12758: 0x00006D90, - 12759: 0x000070DC, - 12760: 0x000070D3, - 12761: 0x000070D1, - 12762: 0x000070DD, - 12763: 0x000070CB, - 12764: 0x00007F39, - 12765: 0x000070E2, - 12766: 0x000070D7, - 12767: 0x000070D2, - 12768: 0x000070DE, - 12769: 0x000070E0, - 12770: 0x000070D4, - 12771: 0x000070CD, - 12772: 0x000070C5, - 12773: 0x000070C6, - 12774: 0x000070C7, - 12775: 0x000070DA, - 12776: 0x000070CE, - 12777: 0x000070E1, - 12778: 0x00007242, - 12779: 0x00007278, - 12780: 0x00007277, - 12781: 0x00007276, - 12782: 0x00007300, - 12783: 0x000072FA, - 12784: 0x000072F4, - 12785: 0x000072FE, - 12786: 0x000072F6, - 12787: 0x000072F3, - 12788: 0x000072FB, - 12789: 0x00007301, - 12790: 0x000073D3, - 12791: 0x000073D9, - 12792: 0x000073E5, - 12793: 0x000073D6, - 12794: 0x000073BC, - 12795: 0x000073E7, - 12796: 0x000073E3, - 12797: 0x000073E9, - 12798: 0x000073DC, - 12799: 0x000073D2, - 12800: 0x000073DB, - 12801: 0x000073D4, - 12802: 0x000073DD, - 12803: 0x000073DA, - 12804: 0x000073D7, - 12805: 0x000073D8, - 12806: 0x000073E8, - 12807: 0x000074DE, - 12808: 0x000074DF, - 12809: 0x000074F4, - 12810: 0x000074F5, - 12811: 0x00007521, - 12812: 0x0000755B, - 12813: 0x0000755F, - 12814: 0x000075B0, - 12815: 0x000075C1, - 12816: 0x000075BB, - 12817: 0x000075C4, - 12818: 0x000075C0, - 12819: 0x000075BF, - 12820: 0x000075B6, - 12821: 0x000075BA, - 12822: 0x0000768A, - 12823: 0x000076C9, - 12824: 0x0000771D, - 12825: 0x0000771B, - 12826: 0x00007710, - 12827: 0x00007713, - 12828: 0x00007712, - 12829: 0x00007723, - 12830: 0x00007711, - 12831: 0x00007715, - 12832: 0x00007719, - 12833: 0x0000771A, - 12834: 0x00007722, - 12835: 0x00007727, - 12836: 0x00007823, - 12837: 0x0000782C, - 12838: 0x00007822, - 12839: 0x00007835, - 12840: 0x0000782F, - 12841: 0x00007828, - 12842: 0x0000782E, - 12843: 0x0000782B, - 12844: 0x00007821, - 12845: 0x00007829, - 12846: 0x00007833, - 12847: 0x0000782A, - 12848: 0x00007831, - 12849: 0x00007954, - 12850: 0x0000795B, - 12851: 0x0000794F, - 12852: 0x0000795C, - 12853: 0x00007953, - 12854: 0x00007952, - 12855: 0x00007951, - 12856: 0x000079EB, - 12857: 0x000079EC, - 12858: 0x000079E0, - 12859: 0x000079EE, - 12860: 0x000079ED, - 12861: 0x000079EA, - 12862: 0x000079DC, - 12863: 0x000079DE, - 12864: 0x000079DD, - 12865: 0x00007A86, - 12866: 0x00007A89, - 12867: 0x00007A85, - 12868: 0x00007A8B, - 12869: 0x00007A8C, - 12870: 0x00007A8A, - 12871: 0x00007A87, - 12872: 0x00007AD8, - 12873: 0x00007B10, - 12874: 0x00007B04, - 12875: 0x00007B13, - 12876: 0x00007B05, - 12877: 0x00007B0F, - 12878: 0x00007B08, - 12879: 0x00007B0A, - 12880: 0x00007B0E, - 12881: 0x00007B09, - 12882: 0x00007B12, - 12883: 0x00007C84, - 12884: 0x00007C91, - 12885: 0x00007C8A, - 12886: 0x00007C8C, - 12887: 0x00007C88, - 12888: 0x00007C8D, - 12889: 0x00007C85, - 12890: 0x00007D1E, - 12891: 0x00007D1D, - 12892: 0x00007D11, - 12893: 0x00007D0E, - 12894: 0x00007D18, - 12895: 0x00007D16, - 12896: 0x00007D13, - 12897: 0x00007D1F, - 12898: 0x00007D12, - 12899: 0x00007D0F, - 12900: 0x00007D0C, - 12901: 0x00007F5C, - 12902: 0x00007F61, - 12903: 0x00007F5E, - 12904: 0x00007F60, - 12905: 0x00007F5D, - 12906: 0x00007F5B, - 12907: 0x00007F96, - 12908: 0x00007F92, - 12909: 0x00007FC3, - 12910: 0x00007FC2, - 12911: 0x00007FC0, - 12912: 0x00008016, - 12913: 0x0000803E, - 12914: 0x00008039, - 12915: 0x000080FA, - 12916: 0x000080F2, - 12917: 0x000080F9, - 12918: 0x000080F5, - 12919: 0x00008101, - 12920: 0x000080FB, - 12921: 0x00008100, - 12922: 0x00008201, - 12923: 0x0000822F, - 12924: 0x00008225, - 12925: 0x00008333, - 12926: 0x0000832D, - 12927: 0x00008344, - 12928: 0x00008319, - 12929: 0x00008351, - 12930: 0x00008325, - 12931: 0x00008356, - 12932: 0x0000833F, - 12933: 0x00008341, - 12934: 0x00008326, - 12935: 0x0000831C, - 12936: 0x00008322, - 12937: 0x00008342, - 12938: 0x0000834E, - 12939: 0x0000831B, - 12940: 0x0000832A, - 12941: 0x00008308, - 12942: 0x0000833C, - 12943: 0x0000834D, - 12944: 0x00008316, - 12945: 0x00008324, - 12946: 0x00008320, - 12947: 0x00008337, - 12948: 0x0000832F, - 12949: 0x00008329, - 12950: 0x00008347, - 12951: 0x00008345, - 12952: 0x0000834C, - 12953: 0x00008353, - 12954: 0x0000831E, - 12955: 0x0000832C, - 12956: 0x0000834B, - 12957: 0x00008327, - 12958: 0x00008348, - 12959: 0x00008653, - 12960: 0x00008652, - 12961: 0x000086A2, - 12962: 0x000086A8, - 12963: 0x00008696, - 12964: 0x0000868D, - 12965: 0x00008691, - 12966: 0x0000869E, - 12967: 0x00008687, - 12968: 0x00008697, - 12969: 0x00008686, - 12970: 0x0000868B, - 12971: 0x0000869A, - 12972: 0x00008685, - 12973: 0x000086A5, - 12974: 0x00008699, - 12975: 0x000086A1, - 12976: 0x000086A7, - 12977: 0x00008695, - 12978: 0x00008698, - 12979: 0x0000868E, - 12980: 0x0000869D, - 12981: 0x00008690, - 12982: 0x00008694, - 12983: 0x00008843, - 12984: 0x00008844, - 12985: 0x0000886D, - 12986: 0x00008875, - 12987: 0x00008876, - 12988: 0x00008872, - 12989: 0x00008880, - 12990: 0x00008871, - 12991: 0x0000887F, - 12992: 0x0000886F, - 12993: 0x00008883, - 12994: 0x0000887E, - 12995: 0x00008874, - 12996: 0x0000887C, - 12997: 0x00008A12, - 12998: 0x00008C47, - 12999: 0x00008C57, - 13000: 0x00008C7B, - 13001: 0x00008CA4, - 13002: 0x00008CA3, - 13003: 0x00008D76, - 13004: 0x00008D78, - 13005: 0x00008DB5, - 13006: 0x00008DB7, - 13007: 0x00008DB6, - 13008: 0x00008ED1, - 13009: 0x00008ED3, - 13010: 0x00008FFE, - 13011: 0x00008FF5, - 13012: 0x00009002, - 13013: 0x00008FFF, - 13014: 0x00008FFB, - 13015: 0x00009004, - 13016: 0x00008FFC, - 13017: 0x00008FF6, - 13018: 0x000090D6, - 13019: 0x000090E0, - 13020: 0x000090D9, - 13021: 0x000090DA, - 13022: 0x000090E3, - 13023: 0x000090DF, - 13024: 0x000090E5, - 13025: 0x000090D8, - 13026: 0x000090DB, - 13027: 0x000090D7, - 13028: 0x000090DC, - 13029: 0x000090E4, - 13030: 0x00009150, - 13031: 0x0000914E, - 13032: 0x0000914F, - 13033: 0x000091D5, - 13034: 0x000091E2, - 13035: 0x000091DA, - 13036: 0x0000965C, - 13037: 0x0000965F, - 13038: 0x000096BC, - 13039: 0x000098E3, - 13040: 0x00009ADF, - 13041: 0x00009B2F, - 13042: 0x00004E7F, - 13043: 0x00005070, - 13044: 0x0000506A, - 13045: 0x00005061, - 13046: 0x0000505E, - 13047: 0x00005060, - 13048: 0x00005053, - 13049: 0x0000504B, - 13050: 0x0000505D, - 13051: 0x00005072, - 13052: 0x00005048, - 13053: 0x0000504D, - 13054: 0x00005041, - 13055: 0x0000505B, - 13056: 0x0000504A, - 13057: 0x00005062, - 13058: 0x00005015, - 13059: 0x00005045, - 13060: 0x0000505F, - 13061: 0x00005069, - 13062: 0x0000506B, - 13063: 0x00005063, - 13064: 0x00005064, - 13065: 0x00005046, - 13066: 0x00005040, - 13067: 0x0000506E, - 13068: 0x00005073, - 13069: 0x00005057, - 13070: 0x00005051, - 13071: 0x000051D0, - 13072: 0x0000526B, - 13073: 0x0000526D, - 13074: 0x0000526C, - 13075: 0x0000526E, - 13076: 0x000052D6, - 13077: 0x000052D3, - 13078: 0x0000532D, - 13079: 0x0000539C, - 13080: 0x00005575, - 13081: 0x00005576, - 13082: 0x0000553C, - 13083: 0x0000554D, - 13084: 0x00005550, - 13085: 0x00005534, - 13086: 0x0000552A, - 13087: 0x00005551, - 13088: 0x00005562, - 13089: 0x00005536, - 13090: 0x00005535, - 13091: 0x00005530, - 13092: 0x00005552, - 13093: 0x00005545, - 13094: 0x0000550C, - 13095: 0x00005532, - 13096: 0x00005565, - 13097: 0x0000554E, - 13098: 0x00005539, - 13099: 0x00005548, - 13100: 0x0000552D, - 13101: 0x0000553B, - 13102: 0x00005540, - 13103: 0x0000554B, - 13104: 0x0000570A, - 13105: 0x00005707, - 13106: 0x000057FB, - 13107: 0x00005814, - 13108: 0x000057E2, - 13109: 0x000057F6, - 13110: 0x000057DC, - 13111: 0x000057F4, - 13112: 0x00005800, - 13113: 0x000057ED, - 13114: 0x000057FD, - 13115: 0x00005808, - 13116: 0x000057F8, - 13117: 0x0000580B, - 13118: 0x000057F3, - 13119: 0x000057CF, - 13120: 0x00005807, - 13121: 0x000057EE, - 13122: 0x000057E3, - 13123: 0x000057F2, - 13124: 0x000057E5, - 13125: 0x000057EC, - 13126: 0x000057E1, - 13127: 0x0000580E, - 13128: 0x000057FC, - 13129: 0x00005810, - 13130: 0x000057E7, - 13131: 0x00005801, - 13132: 0x0000580C, - 13133: 0x000057F1, - 13134: 0x000057E9, - 13135: 0x000057F0, - 13136: 0x0000580D, - 13137: 0x00005804, - 13138: 0x0000595C, - 13139: 0x00005A60, - 13140: 0x00005A58, - 13141: 0x00005A55, - 13142: 0x00005A67, - 13143: 0x00005A5E, - 13144: 0x00005A38, - 13145: 0x00005A35, - 13146: 0x00005A6D, - 13147: 0x00005A50, - 13148: 0x00005A5F, - 13149: 0x00005A65, - 13150: 0x00005A6C, - 13151: 0x00005A53, - 13152: 0x00005A64, - 13153: 0x00005A57, - 13154: 0x00005A43, - 13155: 0x00005A5D, - 13156: 0x00005A52, - 13157: 0x00005A44, - 13158: 0x00005A5B, - 13159: 0x00005A48, - 13160: 0x00005A8E, - 13161: 0x00005A3E, - 13162: 0x00005A4D, - 13163: 0x00005A39, - 13164: 0x00005A4C, - 13165: 0x00005A70, - 13166: 0x00005A69, - 13167: 0x00005A47, - 13168: 0x00005A51, - 13169: 0x00005A56, - 13170: 0x00005A42, - 13171: 0x00005A5C, - 13172: 0x00005B72, - 13173: 0x00005B6E, - 13174: 0x00005BC1, - 13175: 0x00005BC0, - 13176: 0x00005C59, - 13177: 0x00005D1E, - 13178: 0x00005D0B, - 13179: 0x00005D1D, - 13180: 0x00005D1A, - 13181: 0x00005D20, - 13182: 0x00005D0C, - 13183: 0x00005D28, - 13184: 0x00005D0D, - 13185: 0x00005D26, - 13186: 0x00005D25, - 13187: 0x00005D0F, - 13188: 0x00005D30, - 13189: 0x00005D12, - 13190: 0x00005D23, - 13191: 0x00005D1F, - 13192: 0x00005D2E, - 13193: 0x00005E3E, - 13194: 0x00005E34, - 13195: 0x00005EB1, - 13196: 0x00005EB4, - 13197: 0x00005EB9, - 13198: 0x00005EB2, - 13199: 0x00005EB3, - 13200: 0x00005F36, - 13201: 0x00005F38, - 13202: 0x00005F9B, - 13203: 0x00005F96, - 13204: 0x00005F9F, - 13205: 0x0000608A, - 13206: 0x00006090, - 13207: 0x00006086, - 13208: 0x000060BE, - 13209: 0x000060B0, - 13210: 0x000060BA, - 13211: 0x000060D3, - 13212: 0x000060D4, - 13213: 0x000060CF, - 13214: 0x000060E4, - 13215: 0x000060D9, - 13216: 0x000060DD, - 13217: 0x000060C8, - 13218: 0x000060B1, - 13219: 0x000060DB, - 13220: 0x000060B7, - 13221: 0x000060CA, - 13222: 0x000060BF, - 13223: 0x000060C3, - 13224: 0x000060CD, - 13225: 0x000060C0, - 13226: 0x00006332, - 13227: 0x00006365, - 13228: 0x0000638A, - 13229: 0x00006382, - 13230: 0x0000637D, - 13231: 0x000063BD, - 13232: 0x0000639E, - 13233: 0x000063AD, - 13234: 0x0000639D, - 13235: 0x00006397, - 13236: 0x000063AB, - 13237: 0x0000638E, - 13238: 0x0000636F, - 13239: 0x00006387, - 13240: 0x00006390, - 13241: 0x0000636E, - 13242: 0x000063AF, - 13243: 0x00006375, - 13244: 0x0000639C, - 13245: 0x0000636D, - 13246: 0x000063AE, - 13247: 0x0000637C, - 13248: 0x000063A4, - 13249: 0x0000633B, - 13250: 0x0000639F, - 13251: 0x00006378, - 13252: 0x00006385, - 13253: 0x00006381, - 13254: 0x00006391, - 13255: 0x0000638D, - 13256: 0x00006370, - 13257: 0x00006553, - 13258: 0x000065CD, - 13259: 0x00006665, - 13260: 0x00006661, - 13261: 0x0000665B, - 13262: 0x00006659, - 13263: 0x0000665C, - 13264: 0x00006662, - 13265: 0x00006718, - 13266: 0x00006879, - 13267: 0x00006887, - 13268: 0x00006890, - 13269: 0x0000689C, - 13270: 0x0000686D, - 13271: 0x0000686E, - 13272: 0x000068AE, - 13273: 0x000068AB, - 13274: 0x00006956, - 13275: 0x0000686F, - 13276: 0x000068A3, - 13277: 0x000068AC, - 13278: 0x000068A9, - 13279: 0x00006875, - 13280: 0x00006874, - 13281: 0x000068B2, - 13282: 0x0000688F, - 13283: 0x00006877, - 13284: 0x00006892, - 13285: 0x0000687C, - 13286: 0x0000686B, - 13287: 0x00006872, - 13288: 0x000068AA, - 13289: 0x00006880, - 13290: 0x00006871, - 13291: 0x0000687E, - 13292: 0x0000689B, - 13293: 0x00006896, - 13294: 0x0000688B, - 13295: 0x000068A0, - 13296: 0x00006889, - 13297: 0x000068A4, - 13298: 0x00006878, - 13299: 0x0000687B, - 13300: 0x00006891, - 13301: 0x0000688C, - 13302: 0x0000688A, - 13303: 0x0000687D, - 13304: 0x00006B36, - 13305: 0x00006B33, - 13306: 0x00006B37, - 13307: 0x00006B38, - 13308: 0x00006B91, - 13309: 0x00006B8F, - 13310: 0x00006B8D, - 13311: 0x00006B8E, - 13312: 0x00006B8C, - 13313: 0x00006C2A, - 13314: 0x00006DC0, - 13315: 0x00006DAB, - 13316: 0x00006DB4, - 13317: 0x00006DB3, - 13318: 0x00006E74, - 13319: 0x00006DAC, - 13320: 0x00006DE9, - 13321: 0x00006DE2, - 13322: 0x00006DB7, - 13323: 0x00006DF6, - 13324: 0x00006DD4, - 13325: 0x00006E00, - 13326: 0x00006DC8, - 13327: 0x00006DE0, - 13328: 0x00006DDF, - 13329: 0x00006DD6, - 13330: 0x00006DBE, - 13331: 0x00006DE5, - 13332: 0x00006DDC, - 13333: 0x00006DDD, - 13334: 0x00006DDB, - 13335: 0x00006DF4, - 13336: 0x00006DCA, - 13337: 0x00006DBD, - 13338: 0x00006DED, - 13339: 0x00006DF0, - 13340: 0x00006DBA, - 13341: 0x00006DD5, - 13342: 0x00006DC2, - 13343: 0x00006DCF, - 13344: 0x00006DC9, - 13345: 0x00006DD0, - 13346: 0x00006DF2, - 13347: 0x00006DD3, - 13348: 0x00006DFD, - 13349: 0x00006DD7, - 13350: 0x00006DCD, - 13351: 0x00006DE3, - 13352: 0x00006DBB, - 13353: 0x000070FA, - 13354: 0x0000710D, - 13355: 0x000070F7, - 13356: 0x00007117, - 13357: 0x000070F4, - 13358: 0x0000710C, - 13359: 0x000070F0, - 13360: 0x00007104, - 13361: 0x000070F3, - 13362: 0x00007110, - 13363: 0x000070FC, - 13364: 0x000070FF, - 13365: 0x00007106, - 13366: 0x00007113, - 13367: 0x00007100, - 13368: 0x000070F8, - 13369: 0x000070F6, - 13370: 0x0000710B, - 13371: 0x00007102, - 13372: 0x0000710E, - 13373: 0x0000727E, - 13374: 0x0000727B, - 13375: 0x0000727C, - 13376: 0x0000727F, - 13377: 0x0000731D, - 13378: 0x00007317, - 13379: 0x00007307, - 13380: 0x00007311, - 13381: 0x00007318, - 13382: 0x0000730A, - 13383: 0x00007308, - 13384: 0x000072FF, - 13385: 0x0000730F, - 13386: 0x0000731E, - 13387: 0x00007388, - 13388: 0x000073F6, - 13389: 0x000073F8, - 13390: 0x000073F5, - 13391: 0x00007404, - 13392: 0x00007401, - 13393: 0x000073FD, - 13394: 0x00007407, - 13395: 0x00007400, - 13396: 0x000073FA, - 13397: 0x000073FC, - 13398: 0x000073FF, - 13399: 0x0000740C, - 13400: 0x0000740B, - 13401: 0x000073F4, - 13402: 0x00007408, - 13403: 0x00007564, - 13404: 0x00007563, - 13405: 0x000075CE, - 13406: 0x000075D2, - 13407: 0x000075CF, - 13408: 0x000075CB, - 13409: 0x000075CC, - 13410: 0x000075D1, - 13411: 0x000075D0, - 13412: 0x0000768F, - 13413: 0x00007689, - 13414: 0x000076D3, - 13415: 0x00007739, - 13416: 0x0000772F, - 13417: 0x0000772D, - 13418: 0x00007731, - 13419: 0x00007732, - 13420: 0x00007734, - 13421: 0x00007733, - 13422: 0x0000773D, - 13423: 0x00007725, - 13424: 0x0000773B, - 13425: 0x00007735, - 13426: 0x00007848, - 13427: 0x00007852, - 13428: 0x00007849, - 13429: 0x0000784D, - 13430: 0x0000784A, - 13431: 0x0000784C, - 13432: 0x00007826, - 13433: 0x00007845, - 13434: 0x00007850, - 13435: 0x00007964, - 13436: 0x00007967, - 13437: 0x00007969, - 13438: 0x0000796A, - 13439: 0x00007963, - 13440: 0x0000796B, - 13441: 0x00007961, - 13442: 0x000079BB, - 13443: 0x000079FA, - 13444: 0x000079F8, - 13445: 0x000079F6, - 13446: 0x000079F7, - 13447: 0x00007A8F, - 13448: 0x00007A94, - 13449: 0x00007A90, - 13450: 0x00007B35, - 13451: 0x00007B47, - 13452: 0x00007B34, - 13453: 0x00007B25, - 13454: 0x00007B30, - 13455: 0x00007B22, - 13456: 0x00007B24, - 13457: 0x00007B33, - 13458: 0x00007B18, - 13459: 0x00007B2A, - 13460: 0x00007B1D, - 13461: 0x00007B31, - 13462: 0x00007B2B, - 13463: 0x00007B2D, - 13464: 0x00007B2F, - 13465: 0x00007B32, - 13466: 0x00007B38, - 13467: 0x00007B1A, - 13468: 0x00007B23, - 13469: 0x00007C94, - 13470: 0x00007C98, - 13471: 0x00007C96, - 13472: 0x00007CA3, - 13473: 0x00007D35, - 13474: 0x00007D3D, - 13475: 0x00007D38, - 13476: 0x00007D36, - 13477: 0x00007D3A, - 13478: 0x00007D45, - 13479: 0x00007D2C, - 13480: 0x00007D29, - 13481: 0x00007D41, - 13482: 0x00007D47, - 13483: 0x00007D3E, - 13484: 0x00007D3F, - 13485: 0x00007D4A, - 13486: 0x00007D3B, - 13487: 0x00007D28, - 13488: 0x00007F63, - 13489: 0x00007F95, - 13490: 0x00007F9C, - 13491: 0x00007F9D, - 13492: 0x00007F9B, - 13493: 0x00007FCA, - 13494: 0x00007FCB, - 13495: 0x00007FCD, - 13496: 0x00007FD0, - 13497: 0x00007FD1, - 13498: 0x00007FC7, - 13499: 0x00007FCF, - 13500: 0x00007FC9, - 13501: 0x0000801F, - 13502: 0x0000801E, - 13503: 0x0000801B, - 13504: 0x00008047, - 13505: 0x00008043, - 13506: 0x00008048, - 13507: 0x00008118, - 13508: 0x00008125, - 13509: 0x00008119, - 13510: 0x0000811B, - 13511: 0x0000812D, - 13512: 0x0000811F, - 13513: 0x0000812C, - 13514: 0x0000811E, - 13515: 0x00008121, - 13516: 0x00008115, - 13517: 0x00008127, - 13518: 0x0000811D, - 13519: 0x00008122, - 13520: 0x00008211, - 13521: 0x00008238, - 13522: 0x00008233, - 13523: 0x0000823A, - 13524: 0x00008234, - 13525: 0x00008232, - 13526: 0x00008274, - 13527: 0x00008390, - 13528: 0x000083A3, - 13529: 0x000083A8, - 13530: 0x0000838D, - 13531: 0x0000837A, - 13532: 0x00008373, - 13533: 0x000083A4, - 13534: 0x00008374, - 13535: 0x0000838F, - 13536: 0x00008381, - 13537: 0x00008395, - 13538: 0x00008399, - 13539: 0x00008375, - 13540: 0x00008394, - 13541: 0x000083A9, - 13542: 0x0000837D, - 13543: 0x00008383, - 13544: 0x0000838C, - 13545: 0x0000839D, - 13546: 0x0000839B, - 13547: 0x000083AA, - 13548: 0x0000838B, - 13549: 0x0000837E, - 13550: 0x000083A5, - 13551: 0x000083AF, - 13552: 0x00008388, - 13553: 0x00008397, - 13554: 0x000083B0, - 13555: 0x0000837F, - 13556: 0x000083A6, - 13557: 0x00008387, - 13558: 0x000083AE, - 13559: 0x00008376, - 13560: 0x0000839A, - 13561: 0x00008659, - 13562: 0x00008656, - 13563: 0x000086BF, - 13564: 0x000086B7, - 13565: 0x000086C2, - 13566: 0x000086C1, - 13567: 0x000086C5, - 13568: 0x000086BA, - 13569: 0x000086B0, - 13570: 0x000086C8, - 13571: 0x000086B9, - 13572: 0x000086B3, - 13573: 0x000086B8, - 13574: 0x000086CC, - 13575: 0x000086B4, - 13576: 0x000086BB, - 13577: 0x000086BC, - 13578: 0x000086C3, - 13579: 0x000086BD, - 13580: 0x000086BE, - 13581: 0x00008852, - 13582: 0x00008889, - 13583: 0x00008895, - 13584: 0x000088A8, - 13585: 0x000088A2, - 13586: 0x000088AA, - 13587: 0x0000889A, - 13588: 0x00008891, - 13589: 0x000088A1, - 13590: 0x0000889F, - 13591: 0x00008898, - 13592: 0x000088A7, - 13593: 0x00008899, - 13594: 0x0000889B, - 13595: 0x00008897, - 13596: 0x000088A4, - 13597: 0x000088AC, - 13598: 0x0000888C, - 13599: 0x00008893, - 13600: 0x0000888E, - 13601: 0x00008982, - 13602: 0x000089D6, - 13603: 0x000089D9, - 13604: 0x000089D5, - 13605: 0x00008A30, - 13606: 0x00008A27, - 13607: 0x00008A2C, - 13608: 0x00008A1E, - 13609: 0x00008C39, - 13610: 0x00008C3B, - 13611: 0x00008C5C, - 13612: 0x00008C5D, - 13613: 0x00008C7D, - 13614: 0x00008CA5, - 13615: 0x00008D7D, - 13616: 0x00008D7B, - 13617: 0x00008D79, - 13618: 0x00008DBC, - 13619: 0x00008DC2, - 13620: 0x00008DB9, - 13621: 0x00008DBF, - 13622: 0x00008DC1, - 13623: 0x00008ED8, - 13624: 0x00008EDE, - 13625: 0x00008EDD, - 13626: 0x00008EDC, - 13627: 0x00008ED7, - 13628: 0x00008EE0, - 13629: 0x00008EE1, - 13630: 0x00009024, - 13631: 0x0000900B, - 13632: 0x00009011, - 13633: 0x0000901C, - 13634: 0x0000900C, - 13635: 0x00009021, - 13636: 0x000090EF, - 13637: 0x000090EA, - 13638: 0x000090F0, - 13639: 0x000090F4, - 13640: 0x000090F2, - 13641: 0x000090F3, - 13642: 0x000090D4, - 13643: 0x000090EB, - 13644: 0x000090EC, - 13645: 0x000090E9, - 13646: 0x00009156, - 13647: 0x00009158, - 13648: 0x0000915A, - 13649: 0x00009153, - 13650: 0x00009155, - 13651: 0x000091EC, - 13652: 0x000091F4, - 13653: 0x000091F1, - 13654: 0x000091F3, - 13655: 0x000091F8, - 13656: 0x000091E4, - 13657: 0x000091F9, - 13658: 0x000091EA, - 13659: 0x000091EB, - 13660: 0x000091F7, - 13661: 0x000091E8, - 13662: 0x000091EE, - 13663: 0x0000957A, - 13664: 0x00009586, - 13665: 0x00009588, - 13666: 0x0000967C, - 13667: 0x0000966D, - 13668: 0x0000966B, - 13669: 0x00009671, - 13670: 0x0000966F, - 13671: 0x000096BF, - 13672: 0x0000976A, - 13673: 0x00009804, - 13674: 0x000098E5, - 13675: 0x00009997, - 13676: 0x0000509B, - 13677: 0x00005095, - 13678: 0x00005094, - 13679: 0x0000509E, - 13680: 0x0000508B, - 13681: 0x000050A3, - 13682: 0x00005083, - 13683: 0x0000508C, - 13684: 0x0000508E, - 13685: 0x0000509D, - 13686: 0x00005068, - 13687: 0x0000509C, - 13688: 0x00005092, - 13689: 0x00005082, - 13690: 0x00005087, - 13691: 0x0000515F, - 13692: 0x000051D4, - 13693: 0x00005312, - 13694: 0x00005311, - 13695: 0x000053A4, - 13696: 0x000053A7, - 13697: 0x00005591, - 13698: 0x000055A8, - 13699: 0x000055A5, - 13700: 0x000055AD, - 13701: 0x00005577, - 13702: 0x00005645, - 13703: 0x000055A2, - 13704: 0x00005593, - 13705: 0x00005588, - 13706: 0x0000558F, - 13707: 0x000055B5, - 13708: 0x00005581, - 13709: 0x000055A3, - 13710: 0x00005592, - 13711: 0x000055A4, - 13712: 0x0000557D, - 13713: 0x0000558C, - 13714: 0x000055A6, - 13715: 0x0000557F, - 13716: 0x00005595, - 13717: 0x000055A1, - 13718: 0x0000558E, - 13719: 0x0000570C, - 13720: 0x00005829, - 13721: 0x00005837, - 13722: 0x00005819, - 13723: 0x0000581E, - 13724: 0x00005827, - 13725: 0x00005823, - 13726: 0x00005828, - 13727: 0x000057F5, - 13728: 0x00005848, - 13729: 0x00005825, - 13730: 0x0000581C, - 13731: 0x0000581B, - 13732: 0x00005833, - 13733: 0x0000583F, - 13734: 0x00005836, - 13735: 0x0000582E, - 13736: 0x00005839, - 13737: 0x00005838, - 13738: 0x0000582D, - 13739: 0x0000582C, - 13740: 0x0000583B, - 13741: 0x00005961, - 13742: 0x00005AAF, - 13743: 0x00005A94, - 13744: 0x00005A9F, - 13745: 0x00005A7A, - 13746: 0x00005AA2, - 13747: 0x00005A9E, - 13748: 0x00005A78, - 13749: 0x00005AA6, - 13750: 0x00005A7C, - 13751: 0x00005AA5, - 13752: 0x00005AAC, - 13753: 0x00005A95, - 13754: 0x00005AAE, - 13755: 0x00005A37, - 13756: 0x00005A84, - 13757: 0x00005A8A, - 13758: 0x00005A97, - 13759: 0x00005A83, - 13760: 0x00005A8B, - 13761: 0x00005AA9, - 13762: 0x00005A7B, - 13763: 0x00005A7D, - 13764: 0x00005A8C, - 13765: 0x00005A9C, - 13766: 0x00005A8F, - 13767: 0x00005A93, - 13768: 0x00005A9D, - 13769: 0x00005BEA, - 13770: 0x00005BCD, - 13771: 0x00005BCB, - 13772: 0x00005BD4, - 13773: 0x00005BD1, - 13774: 0x00005BCA, - 13775: 0x00005BCE, - 13776: 0x00005C0C, - 13777: 0x00005C30, - 13778: 0x00005D37, - 13779: 0x00005D43, - 13780: 0x00005D6B, - 13781: 0x00005D41, - 13782: 0x00005D4B, - 13783: 0x00005D3F, - 13784: 0x00005D35, - 13785: 0x00005D51, - 13786: 0x00005D4E, - 13787: 0x00005D55, - 13788: 0x00005D33, - 13789: 0x00005D3A, - 13790: 0x00005D52, - 13791: 0x00005D3D, - 13792: 0x00005D31, - 13793: 0x00005D59, - 13794: 0x00005D42, - 13795: 0x00005D39, - 13796: 0x00005D49, - 13797: 0x00005D38, - 13798: 0x00005D3C, - 13799: 0x00005D32, - 13800: 0x00005D36, - 13801: 0x00005D40, - 13802: 0x00005D45, - 13803: 0x00005E44, - 13804: 0x00005E41, - 13805: 0x00005F58, - 13806: 0x00005FA6, - 13807: 0x00005FA5, - 13808: 0x00005FAB, - 13809: 0x000060C9, - 13810: 0x000060B9, - 13811: 0x000060CC, - 13812: 0x000060E2, - 13813: 0x000060CE, - 13814: 0x000060C4, - 13815: 0x00006114, - 13816: 0x000060F2, - 13817: 0x0000610A, - 13818: 0x00006116, - 13819: 0x00006105, - 13820: 0x000060F5, - 13821: 0x00006113, - 13822: 0x000060F8, - 13823: 0x000060FC, - 13824: 0x000060FE, - 13825: 0x000060C1, - 13826: 0x00006103, - 13827: 0x00006118, - 13828: 0x0000611D, - 13829: 0x00006110, - 13830: 0x000060FF, - 13831: 0x00006104, - 13832: 0x0000610B, - 13833: 0x0000624A, - 13834: 0x00006394, - 13835: 0x000063B1, - 13836: 0x000063B0, - 13837: 0x000063CE, - 13838: 0x000063E5, - 13839: 0x000063E8, - 13840: 0x000063EF, - 13841: 0x000063C3, - 13842: 0x0000649D, - 13843: 0x000063F3, - 13844: 0x000063CA, - 13845: 0x000063E0, - 13846: 0x000063F6, - 13847: 0x000063D5, - 13848: 0x000063F2, - 13849: 0x000063F5, - 13850: 0x00006461, - 13851: 0x000063DF, - 13852: 0x000063BE, - 13853: 0x000063DD, - 13854: 0x000063DC, - 13855: 0x000063C4, - 13856: 0x000063D8, - 13857: 0x000063D3, - 13858: 0x000063C2, - 13859: 0x000063C7, - 13860: 0x000063CC, - 13861: 0x000063CB, - 13862: 0x000063C8, - 13863: 0x000063F0, - 13864: 0x000063D7, - 13865: 0x000063D9, - 13866: 0x00006532, - 13867: 0x00006567, - 13868: 0x0000656A, - 13869: 0x00006564, - 13870: 0x0000655C, - 13871: 0x00006568, - 13872: 0x00006565, - 13873: 0x0000658C, - 13874: 0x0000659D, - 13875: 0x0000659E, - 13876: 0x000065AE, - 13877: 0x000065D0, - 13878: 0x000065D2, - 13879: 0x0000667C, - 13880: 0x0000666C, - 13881: 0x0000667B, - 13882: 0x00006680, - 13883: 0x00006671, - 13884: 0x00006679, - 13885: 0x0000666A, - 13886: 0x00006672, - 13887: 0x00006701, - 13888: 0x0000690C, - 13889: 0x000068D3, - 13890: 0x00006904, - 13891: 0x000068DC, - 13892: 0x0000692A, - 13893: 0x000068EC, - 13894: 0x000068EA, - 13895: 0x000068F1, - 13896: 0x0000690F, - 13897: 0x000068D6, - 13898: 0x000068F7, - 13899: 0x000068EB, - 13900: 0x000068E4, - 13901: 0x000068F6, - 13902: 0x00006913, - 13903: 0x00006910, - 13904: 0x000068F3, - 13905: 0x000068E1, - 13906: 0x00006907, - 13907: 0x000068CC, - 13908: 0x00006908, - 13909: 0x00006970, - 13910: 0x000068B4, - 13911: 0x00006911, - 13912: 0x000068EF, - 13913: 0x000068C6, - 13914: 0x00006914, - 13915: 0x000068F8, - 13916: 0x000068D0, - 13917: 0x000068FD, - 13918: 0x000068FC, - 13919: 0x000068E8, - 13920: 0x0000690B, - 13921: 0x0000690A, - 13922: 0x00006917, - 13923: 0x000068CE, - 13924: 0x000068C8, - 13925: 0x000068DD, - 13926: 0x000068DE, - 13927: 0x000068E6, - 13928: 0x000068F4, - 13929: 0x000068D1, - 13930: 0x00006906, - 13931: 0x000068D4, - 13932: 0x000068E9, - 13933: 0x00006915, - 13934: 0x00006925, - 13935: 0x000068C7, - 13936: 0x00006B39, - 13937: 0x00006B3B, - 13938: 0x00006B3F, - 13939: 0x00006B3C, - 13940: 0x00006B94, - 13941: 0x00006B97, - 13942: 0x00006B99, - 13943: 0x00006B95, - 13944: 0x00006BBD, - 13945: 0x00006BF0, - 13946: 0x00006BF2, - 13947: 0x00006BF3, - 13948: 0x00006C30, - 13949: 0x00006DFC, - 13950: 0x00006E46, - 13951: 0x00006E47, - 13952: 0x00006E1F, - 13953: 0x00006E49, - 13954: 0x00006E88, - 13955: 0x00006E3C, - 13956: 0x00006E3D, - 13957: 0x00006E45, - 13958: 0x00006E62, - 13959: 0x00006E2B, - 13960: 0x00006E3F, - 13961: 0x00006E41, - 13962: 0x00006E5D, - 13963: 0x00006E73, - 13964: 0x00006E1C, - 13965: 0x00006E33, - 13966: 0x00006E4B, - 13967: 0x00006E40, - 13968: 0x00006E51, - 13969: 0x00006E3B, - 13970: 0x00006E03, - 13971: 0x00006E2E, - 13972: 0x00006E5E, - 13973: 0x00006E68, - 13974: 0x00006E5C, - 13975: 0x00006E61, - 13976: 0x00006E31, - 13977: 0x00006E28, - 13978: 0x00006E60, - 13979: 0x00006E71, - 13980: 0x00006E6B, - 13981: 0x00006E39, - 13982: 0x00006E22, - 13983: 0x00006E30, - 13984: 0x00006E53, - 13985: 0x00006E65, - 13986: 0x00006E27, - 13987: 0x00006E78, - 13988: 0x00006E64, - 13989: 0x00006E77, - 13990: 0x00006E55, - 13991: 0x00006E79, - 13992: 0x00006E52, - 13993: 0x00006E66, - 13994: 0x00006E35, - 13995: 0x00006E36, - 13996: 0x00006E5A, - 13997: 0x00007120, - 13998: 0x0000711E, - 13999: 0x0000712F, - 14000: 0x000070FB, - 14001: 0x0000712E, - 14002: 0x00007131, - 14003: 0x00007123, - 14004: 0x00007125, - 14005: 0x00007122, - 14006: 0x00007132, - 14007: 0x0000711F, - 14008: 0x00007128, - 14009: 0x0000713A, - 14010: 0x0000711B, - 14011: 0x0000724B, - 14012: 0x0000725A, - 14013: 0x00007288, - 14014: 0x00007289, - 14015: 0x00007286, - 14016: 0x00007285, - 14017: 0x0000728B, - 14018: 0x00007312, - 14019: 0x0000730B, - 14020: 0x00007330, - 14021: 0x00007322, - 14022: 0x00007331, - 14023: 0x00007333, - 14024: 0x00007327, - 14025: 0x00007332, - 14026: 0x0000732D, - 14027: 0x00007326, - 14028: 0x00007323, - 14029: 0x00007335, - 14030: 0x0000730C, - 14031: 0x0000742E, - 14032: 0x0000742C, - 14033: 0x00007430, - 14034: 0x0000742B, - 14035: 0x00007416, - 14036: 0x0000741A, - 14037: 0x00007421, - 14038: 0x0000742D, - 14039: 0x00007431, - 14040: 0x00007424, - 14041: 0x00007423, - 14042: 0x0000741D, - 14043: 0x00007429, - 14044: 0x00007420, - 14045: 0x00007432, - 14046: 0x000074FB, - 14047: 0x0000752F, - 14048: 0x0000756F, - 14049: 0x0000756C, - 14050: 0x000075E7, - 14051: 0x000075DA, - 14052: 0x000075E1, - 14053: 0x000075E6, - 14054: 0x000075DD, - 14055: 0x000075DF, - 14056: 0x000075E4, - 14057: 0x000075D7, - 14058: 0x00007695, - 14059: 0x00007692, - 14060: 0x000076DA, - 14061: 0x00007746, - 14062: 0x00007747, - 14063: 0x00007744, - 14064: 0x0000774D, - 14065: 0x00007745, - 14066: 0x0000774A, - 14067: 0x0000774E, - 14068: 0x0000774B, - 14069: 0x0000774C, - 14070: 0x000077DE, - 14071: 0x000077EC, - 14072: 0x00007860, - 14073: 0x00007864, - 14074: 0x00007865, - 14075: 0x0000785C, - 14076: 0x0000786D, - 14077: 0x00007871, - 14078: 0x0000786A, - 14079: 0x0000786E, - 14080: 0x00007870, - 14081: 0x00007869, - 14082: 0x00007868, - 14083: 0x0000785E, - 14084: 0x00007862, - 14085: 0x00007974, - 14086: 0x00007973, - 14087: 0x00007972, - 14088: 0x00007970, - 14089: 0x00007A02, - 14090: 0x00007A0A, - 14091: 0x00007A03, - 14092: 0x00007A0C, - 14093: 0x00007A04, - 14094: 0x00007A99, - 14095: 0x00007AE6, - 14096: 0x00007AE4, - 14097: 0x00007B4A, - 14098: 0x00007B3B, - 14099: 0x00007B44, - 14100: 0x00007B48, - 14101: 0x00007B4C, - 14102: 0x00007B4E, - 14103: 0x00007B40, - 14104: 0x00007B58, - 14105: 0x00007B45, - 14106: 0x00007CA2, - 14107: 0x00007C9E, - 14108: 0x00007CA8, - 14109: 0x00007CA1, - 14110: 0x00007D58, - 14111: 0x00007D6F, - 14112: 0x00007D63, - 14113: 0x00007D53, - 14114: 0x00007D56, - 14115: 0x00007D67, - 14116: 0x00007D6A, - 14117: 0x00007D4F, - 14118: 0x00007D6D, - 14119: 0x00007D5C, - 14120: 0x00007D6B, - 14121: 0x00007D52, - 14122: 0x00007D54, - 14123: 0x00007D69, - 14124: 0x00007D51, - 14125: 0x00007D5F, - 14126: 0x00007D4E, - 14127: 0x00007F3E, - 14128: 0x00007F3F, - 14129: 0x00007F65, - 14130: 0x00007F66, - 14131: 0x00007FA2, - 14132: 0x00007FA0, - 14133: 0x00007FA1, - 14134: 0x00007FD7, - 14135: 0x00008051, - 14136: 0x0000804F, - 14137: 0x00008050, - 14138: 0x000080FE, - 14139: 0x000080D4, - 14140: 0x00008143, - 14141: 0x0000814A, - 14142: 0x00008152, - 14143: 0x0000814F, - 14144: 0x00008147, - 14145: 0x0000813D, - 14146: 0x0000814D, - 14147: 0x0000813A, - 14148: 0x000081E6, - 14149: 0x000081EE, - 14150: 0x000081F7, - 14151: 0x000081F8, - 14152: 0x000081F9, - 14153: 0x00008204, - 14154: 0x0000823C, - 14155: 0x0000823D, - 14156: 0x0000823F, - 14157: 0x00008275, - 14158: 0x0000833B, - 14159: 0x000083CF, - 14160: 0x000083F9, - 14161: 0x00008423, - 14162: 0x000083C0, - 14163: 0x000083E8, - 14164: 0x00008412, - 14165: 0x000083E7, - 14166: 0x000083E4, - 14167: 0x000083FC, - 14168: 0x000083F6, - 14169: 0x00008410, - 14170: 0x000083C6, - 14171: 0x000083C8, - 14172: 0x000083EB, - 14173: 0x000083E3, - 14174: 0x000083BF, - 14175: 0x00008401, - 14176: 0x000083DD, - 14177: 0x000083E5, - 14178: 0x000083D8, - 14179: 0x000083FF, - 14180: 0x000083E1, - 14181: 0x000083CB, - 14182: 0x000083CE, - 14183: 0x000083D6, - 14184: 0x000083F5, - 14185: 0x000083C9, - 14186: 0x00008409, - 14187: 0x0000840F, - 14188: 0x000083DE, - 14189: 0x00008411, - 14190: 0x00008406, - 14191: 0x000083C2, - 14192: 0x000083F3, - 14193: 0x000083D5, - 14194: 0x000083FA, - 14195: 0x000083C7, - 14196: 0x000083D1, - 14197: 0x000083EA, - 14198: 0x00008413, - 14199: 0x000083C3, - 14200: 0x000083EC, - 14201: 0x000083EE, - 14202: 0x000083C4, - 14203: 0x000083FB, - 14204: 0x000083D7, - 14205: 0x000083E2, - 14206: 0x0000841B, - 14207: 0x000083DB, - 14208: 0x000083FE, - 14209: 0x000086D8, - 14210: 0x000086E2, - 14211: 0x000086E6, - 14212: 0x000086D3, - 14213: 0x000086E3, - 14214: 0x000086DA, - 14215: 0x000086EA, - 14216: 0x000086DD, - 14217: 0x000086EB, - 14218: 0x000086DC, - 14219: 0x000086EC, - 14220: 0x000086E9, - 14221: 0x000086D7, - 14222: 0x000086E8, - 14223: 0x000086D1, - 14224: 0x00008848, - 14225: 0x00008856, - 14226: 0x00008855, - 14227: 0x000088BA, - 14228: 0x000088D7, - 14229: 0x000088B9, - 14230: 0x000088B8, - 14231: 0x000088C0, - 14232: 0x000088BE, - 14233: 0x000088B6, - 14234: 0x000088BC, - 14235: 0x000088B7, - 14236: 0x000088BD, - 14237: 0x000088B2, - 14238: 0x00008901, - 14239: 0x000088C9, - 14240: 0x00008995, - 14241: 0x00008998, - 14242: 0x00008997, - 14243: 0x000089DD, - 14244: 0x000089DA, - 14245: 0x000089DB, - 14246: 0x00008A4E, - 14247: 0x00008A4D, - 14248: 0x00008A39, - 14249: 0x00008A59, - 14250: 0x00008A40, - 14251: 0x00008A57, - 14252: 0x00008A58, - 14253: 0x00008A44, - 14254: 0x00008A45, - 14255: 0x00008A52, - 14256: 0x00008A48, - 14257: 0x00008A51, - 14258: 0x00008A4A, - 14259: 0x00008A4C, - 14260: 0x00008A4F, - 14261: 0x00008C5F, - 14262: 0x00008C81, - 14263: 0x00008C80, - 14264: 0x00008CBA, - 14265: 0x00008CBE, - 14266: 0x00008CB0, - 14267: 0x00008CB9, - 14268: 0x00008CB5, - 14269: 0x00008D84, - 14270: 0x00008D80, - 14271: 0x00008D89, - 14272: 0x00008DD8, - 14273: 0x00008DD3, - 14274: 0x00008DCD, - 14275: 0x00008DC7, - 14276: 0x00008DD6, - 14277: 0x00008DDC, - 14278: 0x00008DCF, - 14279: 0x00008DD5, - 14280: 0x00008DD9, - 14281: 0x00008DC8, - 14282: 0x00008DD7, - 14283: 0x00008DC5, - 14284: 0x00008EEF, - 14285: 0x00008EF7, - 14286: 0x00008EFA, - 14287: 0x00008EF9, - 14288: 0x00008EE6, - 14289: 0x00008EEE, - 14290: 0x00008EE5, - 14291: 0x00008EF5, - 14292: 0x00008EE7, - 14293: 0x00008EE8, - 14294: 0x00008EF6, - 14295: 0x00008EEB, - 14296: 0x00008EF1, - 14297: 0x00008EEC, - 14298: 0x00008EF4, - 14299: 0x00008EE9, - 14300: 0x0000902D, - 14301: 0x00009034, - 14302: 0x0000902F, - 14303: 0x00009106, - 14304: 0x0000912C, - 14305: 0x00009104, - 14306: 0x000090FF, - 14307: 0x000090FC, - 14308: 0x00009108, - 14309: 0x000090F9, - 14310: 0x000090FB, - 14311: 0x00009101, - 14312: 0x00009100, - 14313: 0x00009107, - 14314: 0x00009105, - 14315: 0x00009103, - 14316: 0x00009161, - 14317: 0x00009164, - 14318: 0x0000915F, - 14319: 0x00009162, - 14320: 0x00009160, - 14321: 0x00009201, - 14322: 0x0000920A, - 14323: 0x00009225, - 14324: 0x00009203, - 14325: 0x0000921A, - 14326: 0x00009226, - 14327: 0x0000920F, - 14328: 0x0000920C, - 14329: 0x00009200, - 14330: 0x00009212, - 14331: 0x000091FF, - 14332: 0x000091FD, - 14333: 0x00009206, - 14334: 0x00009204, - 14335: 0x00009227, - 14336: 0x00009202, - 14337: 0x0000921C, - 14338: 0x00009224, - 14339: 0x00009219, - 14340: 0x00009217, - 14341: 0x00009205, - 14342: 0x00009216, - 14343: 0x0000957B, - 14344: 0x0000958D, - 14345: 0x0000958C, - 14346: 0x00009590, - 14347: 0x00009687, - 14348: 0x0000967E, - 14349: 0x00009688, - 14350: 0x00009689, - 14351: 0x00009683, - 14352: 0x00009680, - 14353: 0x000096C2, - 14354: 0x000096C8, - 14355: 0x000096C3, - 14356: 0x000096F1, - 14357: 0x000096F0, - 14358: 0x0000976C, - 14359: 0x00009770, - 14360: 0x0000976E, - 14361: 0x00009807, - 14362: 0x000098A9, - 14363: 0x000098EB, - 14364: 0x00009CE6, - 14365: 0x00009EF9, - 14366: 0x00004E83, - 14367: 0x00004E84, - 14368: 0x00004EB6, - 14369: 0x000050BD, - 14370: 0x000050BF, - 14371: 0x000050C6, - 14372: 0x000050AE, - 14373: 0x000050C4, - 14374: 0x000050CA, - 14375: 0x000050B4, - 14376: 0x000050C8, - 14377: 0x000050C2, - 14378: 0x000050B0, - 14379: 0x000050C1, - 14380: 0x000050BA, - 14381: 0x000050B1, - 14382: 0x000050CB, - 14383: 0x000050C9, - 14384: 0x000050B6, - 14385: 0x000050B8, - 14386: 0x000051D7, - 14387: 0x0000527A, - 14388: 0x00005278, - 14389: 0x0000527B, - 14390: 0x0000527C, - 14391: 0x000055C3, - 14392: 0x000055DB, - 14393: 0x000055CC, - 14394: 0x000055D0, - 14395: 0x000055CB, - 14396: 0x000055CA, - 14397: 0x000055DD, - 14398: 0x000055C0, - 14399: 0x000055D4, - 14400: 0x000055C4, - 14401: 0x000055E9, - 14402: 0x000055BF, - 14403: 0x000055D2, - 14404: 0x0000558D, - 14405: 0x000055CF, - 14406: 0x000055D5, - 14407: 0x000055E2, - 14408: 0x000055D6, - 14409: 0x000055C8, - 14410: 0x000055F2, - 14411: 0x000055CD, - 14412: 0x000055D9, - 14413: 0x000055C2, - 14414: 0x00005714, - 14415: 0x00005853, - 14416: 0x00005868, - 14417: 0x00005864, - 14418: 0x0000584F, - 14419: 0x0000584D, - 14420: 0x00005849, - 14421: 0x0000586F, - 14422: 0x00005855, - 14423: 0x0000584E, - 14424: 0x0000585D, - 14425: 0x00005859, - 14426: 0x00005865, - 14427: 0x0000585B, - 14428: 0x0000583D, - 14429: 0x00005863, - 14430: 0x00005871, - 14431: 0x000058FC, - 14432: 0x00005AC7, - 14433: 0x00005AC4, - 14434: 0x00005ACB, - 14435: 0x00005ABA, - 14436: 0x00005AB8, - 14437: 0x00005AB1, - 14438: 0x00005AB5, - 14439: 0x00005AB0, - 14440: 0x00005ABF, - 14441: 0x00005AC8, - 14442: 0x00005ABB, - 14443: 0x00005AC6, - 14444: 0x00005AB7, - 14445: 0x00005AC0, - 14446: 0x00005ACA, - 14447: 0x00005AB4, - 14448: 0x00005AB6, - 14449: 0x00005ACD, - 14450: 0x00005AB9, - 14451: 0x00005A90, - 14452: 0x00005BD6, - 14453: 0x00005BD8, - 14454: 0x00005BD9, - 14455: 0x00005C1F, - 14456: 0x00005C33, - 14457: 0x00005D71, - 14458: 0x00005D63, - 14459: 0x00005D4A, - 14460: 0x00005D65, - 14461: 0x00005D72, - 14462: 0x00005D6C, - 14463: 0x00005D5E, - 14464: 0x00005D68, - 14465: 0x00005D67, - 14466: 0x00005D62, - 14467: 0x00005DF0, - 14468: 0x00005E4F, - 14469: 0x00005E4E, - 14470: 0x00005E4A, - 14471: 0x00005E4D, - 14472: 0x00005E4B, - 14473: 0x00005EC5, - 14474: 0x00005ECC, - 14475: 0x00005EC6, - 14476: 0x00005ECB, - 14477: 0x00005EC7, - 14478: 0x00005F40, - 14479: 0x00005FAF, - 14480: 0x00005FAD, - 14481: 0x000060F7, - 14482: 0x00006149, - 14483: 0x0000614A, - 14484: 0x0000612B, - 14485: 0x00006145, - 14486: 0x00006136, - 14487: 0x00006132, - 14488: 0x0000612E, - 14489: 0x00006146, - 14490: 0x0000612F, - 14491: 0x0000614F, - 14492: 0x00006129, - 14493: 0x00006140, - 14494: 0x00006220, - 14495: 0x00009168, - 14496: 0x00006223, - 14497: 0x00006225, - 14498: 0x00006224, - 14499: 0x000063C5, - 14500: 0x000063F1, - 14501: 0x000063EB, - 14502: 0x00006410, - 14503: 0x00006412, - 14504: 0x00006409, - 14505: 0x00006420, - 14506: 0x00006424, - 14507: 0x00006433, - 14508: 0x00006443, - 14509: 0x0000641F, - 14510: 0x00006415, - 14511: 0x00006418, - 14512: 0x00006439, - 14513: 0x00006437, - 14514: 0x00006422, - 14515: 0x00006423, - 14516: 0x0000640C, - 14517: 0x00006426, - 14518: 0x00006430, - 14519: 0x00006428, - 14520: 0x00006441, - 14521: 0x00006435, - 14522: 0x0000642F, - 14523: 0x0000640A, - 14524: 0x0000641A, - 14525: 0x00006440, - 14526: 0x00006425, - 14527: 0x00006427, - 14528: 0x0000640B, - 14529: 0x000063E7, - 14530: 0x0000641B, - 14531: 0x0000642E, - 14532: 0x00006421, - 14533: 0x0000640E, - 14534: 0x0000656F, - 14535: 0x00006592, - 14536: 0x000065D3, - 14537: 0x00006686, - 14538: 0x0000668C, - 14539: 0x00006695, - 14540: 0x00006690, - 14541: 0x0000668B, - 14542: 0x0000668A, - 14543: 0x00006699, - 14544: 0x00006694, - 14545: 0x00006678, - 14546: 0x00006720, - 14547: 0x00006966, - 14548: 0x0000695F, - 14549: 0x00006938, - 14550: 0x0000694E, - 14551: 0x00006962, - 14552: 0x00006971, - 14553: 0x0000693F, - 14554: 0x00006945, - 14555: 0x0000696A, - 14556: 0x00006939, - 14557: 0x00006942, - 14558: 0x00006957, - 14559: 0x00006959, - 14560: 0x0000697A, - 14561: 0x00006948, - 14562: 0x00006949, - 14563: 0x00006935, - 14564: 0x0000696C, - 14565: 0x00006933, - 14566: 0x0000693D, - 14567: 0x00006965, - 14568: 0x000068F0, - 14569: 0x00006978, - 14570: 0x00006934, - 14571: 0x00006969, - 14572: 0x00006940, - 14573: 0x0000696F, - 14574: 0x00006944, - 14575: 0x00006976, - 14576: 0x00006958, - 14577: 0x00006941, - 14578: 0x00006974, - 14579: 0x0000694C, - 14580: 0x0000693B, - 14581: 0x0000694B, - 14582: 0x00006937, - 14583: 0x0000695C, - 14584: 0x0000694F, - 14585: 0x00006951, - 14586: 0x00006932, - 14587: 0x00006952, - 14588: 0x0000692F, - 14589: 0x0000697B, - 14590: 0x0000693C, - 14591: 0x00006B46, - 14592: 0x00006B45, - 14593: 0x00006B43, - 14594: 0x00006B42, - 14595: 0x00006B48, - 14596: 0x00006B41, - 14597: 0x00006B9B, - 14598: 0x0000FA0D, - 14599: 0x00006BFB, - 14600: 0x00006BFC, - 14601: 0x00006BF9, - 14602: 0x00006BF7, - 14603: 0x00006BF8, - 14604: 0x00006E9B, - 14605: 0x00006ED6, - 14606: 0x00006EC8, - 14607: 0x00006E8F, - 14608: 0x00006EC0, - 14609: 0x00006E9F, - 14610: 0x00006E93, - 14611: 0x00006E94, - 14612: 0x00006EA0, - 14613: 0x00006EB1, - 14614: 0x00006EB9, - 14615: 0x00006EC6, - 14616: 0x00006ED2, - 14617: 0x00006EBD, - 14618: 0x00006EC1, - 14619: 0x00006E9E, - 14620: 0x00006EC9, - 14621: 0x00006EB7, - 14622: 0x00006EB0, - 14623: 0x00006ECD, - 14624: 0x00006EA6, - 14625: 0x00006ECF, - 14626: 0x00006EB2, - 14627: 0x00006EBE, - 14628: 0x00006EC3, - 14629: 0x00006EDC, - 14630: 0x00006ED8, - 14631: 0x00006E99, - 14632: 0x00006E92, - 14633: 0x00006E8E, - 14634: 0x00006E8D, - 14635: 0x00006EA4, - 14636: 0x00006EA1, - 14637: 0x00006EBF, - 14638: 0x00006EB3, - 14639: 0x00006ED0, - 14640: 0x00006ECA, - 14641: 0x00006E97, - 14642: 0x00006EAE, - 14643: 0x00006EA3, - 14644: 0x00007147, - 14645: 0x00007154, - 14646: 0x00007152, - 14647: 0x00007163, - 14648: 0x00007160, - 14649: 0x00007141, - 14650: 0x0000715D, - 14651: 0x00007162, - 14652: 0x00007172, - 14653: 0x00007178, - 14654: 0x0000716A, - 14655: 0x00007161, - 14656: 0x00007142, - 14657: 0x00007158, - 14658: 0x00007143, - 14659: 0x0000714B, - 14660: 0x00007170, - 14661: 0x0000715F, - 14662: 0x00007150, - 14663: 0x00007153, - 14664: 0x00007144, - 14665: 0x0000714D, - 14666: 0x0000715A, - 14667: 0x0000724F, - 14668: 0x0000728D, - 14669: 0x0000728C, - 14670: 0x00007291, - 14671: 0x00007290, - 14672: 0x0000728E, - 14673: 0x0000733C, - 14674: 0x00007342, - 14675: 0x0000733B, - 14676: 0x0000733A, - 14677: 0x00007340, - 14678: 0x0000734A, - 14679: 0x00007349, - 14680: 0x00007444, - 14681: 0x0000744A, - 14682: 0x0000744B, - 14683: 0x00007452, - 14684: 0x00007451, - 14685: 0x00007457, - 14686: 0x00007440, - 14687: 0x0000744F, - 14688: 0x00007450, - 14689: 0x0000744E, - 14690: 0x00007442, - 14691: 0x00007446, - 14692: 0x0000744D, - 14693: 0x00007454, - 14694: 0x000074E1, - 14695: 0x000074FF, - 14696: 0x000074FE, - 14697: 0x000074FD, - 14698: 0x0000751D, - 14699: 0x00007579, - 14700: 0x00007577, - 14701: 0x00006983, - 14702: 0x000075EF, - 14703: 0x0000760F, - 14704: 0x00007603, - 14705: 0x000075F7, - 14706: 0x000075FE, - 14707: 0x000075FC, - 14708: 0x000075F9, - 14709: 0x000075F8, - 14710: 0x00007610, - 14711: 0x000075FB, - 14712: 0x000075F6, - 14713: 0x000075ED, - 14714: 0x000075F5, - 14715: 0x000075FD, - 14716: 0x00007699, - 14717: 0x000076B5, - 14718: 0x000076DD, - 14719: 0x00007755, - 14720: 0x0000775F, - 14721: 0x00007760, - 14722: 0x00007752, - 14723: 0x00007756, - 14724: 0x0000775A, - 14725: 0x00007769, - 14726: 0x00007767, - 14727: 0x00007754, - 14728: 0x00007759, - 14729: 0x0000776D, - 14730: 0x000077E0, - 14731: 0x00007887, - 14732: 0x0000789A, - 14733: 0x00007894, - 14734: 0x0000788F, - 14735: 0x00007884, - 14736: 0x00007895, - 14737: 0x00007885, - 14738: 0x00007886, - 14739: 0x000078A1, - 14740: 0x00007883, - 14741: 0x00007879, - 14742: 0x00007899, - 14743: 0x00007880, - 14744: 0x00007896, - 14745: 0x0000787B, - 14746: 0x0000797C, - 14747: 0x00007982, - 14748: 0x0000797D, - 14749: 0x00007979, - 14750: 0x00007A11, - 14751: 0x00007A18, - 14752: 0x00007A19, - 14753: 0x00007A12, - 14754: 0x00007A17, - 14755: 0x00007A15, - 14756: 0x00007A22, - 14757: 0x00007A13, - 14758: 0x00007A1B, - 14759: 0x00007A10, - 14760: 0x00007AA3, - 14761: 0x00007AA2, - 14762: 0x00007A9E, - 14763: 0x00007AEB, - 14764: 0x00007B66, - 14765: 0x00007B64, - 14766: 0x00007B6D, - 14767: 0x00007B74, - 14768: 0x00007B69, - 14769: 0x00007B72, - 14770: 0x00007B65, - 14771: 0x00007B73, - 14772: 0x00007B71, - 14773: 0x00007B70, - 14774: 0x00007B61, - 14775: 0x00007B78, - 14776: 0x00007B76, - 14777: 0x00007B63, - 14778: 0x00007CB2, - 14779: 0x00007CB4, - 14780: 0x00007CAF, - 14781: 0x00007D88, - 14782: 0x00007D86, - 14783: 0x00007D80, - 14784: 0x00007D8D, - 14785: 0x00007D7F, - 14786: 0x00007D85, - 14787: 0x00007D7A, - 14788: 0x00007D8E, - 14789: 0x00007D7B, - 14790: 0x00007D83, - 14791: 0x00007D7C, - 14792: 0x00007D8C, - 14793: 0x00007D94, - 14794: 0x00007D84, - 14795: 0x00007D7D, - 14796: 0x00007D92, - 14797: 0x00007F6D, - 14798: 0x00007F6B, - 14799: 0x00007F67, - 14800: 0x00007F68, - 14801: 0x00007F6C, - 14802: 0x00007FA6, - 14803: 0x00007FA5, - 14804: 0x00007FA7, - 14805: 0x00007FDB, - 14806: 0x00007FDC, - 14807: 0x00008021, - 14808: 0x00008164, - 14809: 0x00008160, - 14810: 0x00008177, - 14811: 0x0000815C, - 14812: 0x00008169, - 14813: 0x0000815B, - 14814: 0x00008162, - 14815: 0x00008172, - 14816: 0x00006721, - 14817: 0x0000815E, - 14818: 0x00008176, - 14819: 0x00008167, - 14820: 0x0000816F, - 14821: 0x00008144, - 14822: 0x00008161, - 14823: 0x0000821D, - 14824: 0x00008249, - 14825: 0x00008244, - 14826: 0x00008240, - 14827: 0x00008242, - 14828: 0x00008245, - 14829: 0x000084F1, - 14830: 0x0000843F, - 14831: 0x00008456, - 14832: 0x00008476, - 14833: 0x00008479, - 14834: 0x0000848F, - 14835: 0x0000848D, - 14836: 0x00008465, - 14837: 0x00008451, - 14838: 0x00008440, - 14839: 0x00008486, - 14840: 0x00008467, - 14841: 0x00008430, - 14842: 0x0000844D, - 14843: 0x0000847D, - 14844: 0x0000845A, - 14845: 0x00008459, - 14846: 0x00008474, - 14847: 0x00008473, - 14848: 0x0000845D, - 14849: 0x00008507, - 14850: 0x0000845E, - 14851: 0x00008437, - 14852: 0x0000843A, - 14853: 0x00008434, - 14854: 0x0000847A, - 14855: 0x00008443, - 14856: 0x00008478, - 14857: 0x00008432, - 14858: 0x00008445, - 14859: 0x00008429, - 14860: 0x000083D9, - 14861: 0x0000844B, - 14862: 0x0000842F, - 14863: 0x00008442, - 14864: 0x0000842D, - 14865: 0x0000845F, - 14866: 0x00008470, - 14867: 0x00008439, - 14868: 0x0000844E, - 14869: 0x0000844C, - 14870: 0x00008452, - 14871: 0x0000846F, - 14872: 0x000084C5, - 14873: 0x0000848E, - 14874: 0x0000843B, - 14875: 0x00008447, - 14876: 0x00008436, - 14877: 0x00008433, - 14878: 0x00008468, - 14879: 0x0000847E, - 14880: 0x00008444, - 14881: 0x0000842B, - 14882: 0x00008460, - 14883: 0x00008454, - 14884: 0x0000846E, - 14885: 0x00008450, - 14886: 0x0000870B, - 14887: 0x00008704, - 14888: 0x000086F7, - 14889: 0x0000870C, - 14890: 0x000086FA, - 14891: 0x000086D6, - 14892: 0x000086F5, - 14893: 0x0000874D, - 14894: 0x000086F8, - 14895: 0x0000870E, - 14896: 0x00008709, - 14897: 0x00008701, - 14898: 0x000086F6, - 14899: 0x0000870D, - 14900: 0x00008705, - 14901: 0x000088D6, - 14902: 0x000088CB, - 14903: 0x000088CD, - 14904: 0x000088CE, - 14905: 0x000088DE, - 14906: 0x000088DB, - 14907: 0x000088DA, - 14908: 0x000088CC, - 14909: 0x000088D0, - 14910: 0x00008985, - 14911: 0x0000899B, - 14912: 0x000089DF, - 14913: 0x000089E5, - 14914: 0x000089E4, - 14915: 0x000089E1, - 14916: 0x000089E0, - 14917: 0x000089E2, - 14918: 0x000089DC, - 14919: 0x000089E6, - 14920: 0x00008A76, - 14921: 0x00008A86, - 14922: 0x00008A7F, - 14923: 0x00008A61, - 14924: 0x00008A3F, - 14925: 0x00008A77, - 14926: 0x00008A82, - 14927: 0x00008A84, - 14928: 0x00008A75, - 14929: 0x00008A83, - 14930: 0x00008A81, - 14931: 0x00008A74, - 14932: 0x00008A7A, - 14933: 0x00008C3C, - 14934: 0x00008C4B, - 14935: 0x00008C4A, - 14936: 0x00008C65, - 14937: 0x00008C64, - 14938: 0x00008C66, - 14939: 0x00008C86, - 14940: 0x00008C84, - 14941: 0x00008C85, - 14942: 0x00008CCC, - 14943: 0x00008D68, - 14944: 0x00008D69, - 14945: 0x00008D91, - 14946: 0x00008D8C, - 14947: 0x00008D8E, - 14948: 0x00008D8F, - 14949: 0x00008D8D, - 14950: 0x00008D93, - 14951: 0x00008D94, - 14952: 0x00008D90, - 14953: 0x00008D92, - 14954: 0x00008DF0, - 14955: 0x00008DE0, - 14956: 0x00008DEC, - 14957: 0x00008DF1, - 14958: 0x00008DEE, - 14959: 0x00008DD0, - 14960: 0x00008DE9, - 14961: 0x00008DE3, - 14962: 0x00008DE2, - 14963: 0x00008DE7, - 14964: 0x00008DF2, - 14965: 0x00008DEB, - 14966: 0x00008DF4, - 14967: 0x00008F06, - 14968: 0x00008EFF, - 14969: 0x00008F01, - 14970: 0x00008F00, - 14971: 0x00008F05, - 14972: 0x00008F07, - 14973: 0x00008F08, - 14974: 0x00008F02, - 14975: 0x00008F0B, - 14976: 0x00009052, - 14977: 0x0000903F, - 14978: 0x00009044, - 14979: 0x00009049, - 14980: 0x0000903D, - 14981: 0x00009110, - 14982: 0x0000910D, - 14983: 0x0000910F, - 14984: 0x00009111, - 14985: 0x00009116, - 14986: 0x00009114, - 14987: 0x0000910B, - 14988: 0x0000910E, - 14989: 0x0000916E, - 14990: 0x0000916F, - 14991: 0x00009248, - 14992: 0x00009252, - 14993: 0x00009230, - 14994: 0x0000923A, - 14995: 0x00009266, - 14996: 0x00009233, - 14997: 0x00009265, - 14998: 0x0000925E, - 14999: 0x00009283, - 15000: 0x0000922E, - 15001: 0x0000924A, - 15002: 0x00009246, - 15003: 0x0000926D, - 15004: 0x0000926C, - 15005: 0x0000924F, - 15006: 0x00009260, - 15007: 0x00009267, - 15008: 0x0000926F, - 15009: 0x00009236, - 15010: 0x00009261, - 15011: 0x00009270, - 15012: 0x00009231, - 15013: 0x00009254, - 15014: 0x00009263, - 15015: 0x00009250, - 15016: 0x00009272, - 15017: 0x0000924E, - 15018: 0x00009253, - 15019: 0x0000924C, - 15020: 0x00009256, - 15021: 0x00009232, - 15022: 0x0000959F, - 15023: 0x0000959C, - 15024: 0x0000959E, - 15025: 0x0000959B, - 15026: 0x00009692, - 15027: 0x00009693, - 15028: 0x00009691, - 15029: 0x00009697, - 15030: 0x000096CE, - 15031: 0x000096FA, - 15032: 0x000096FD, - 15033: 0x000096F8, - 15034: 0x000096F5, - 15035: 0x00009773, - 15036: 0x00009777, - 15037: 0x00009778, - 15038: 0x00009772, - 15039: 0x0000980F, - 15040: 0x0000980D, - 15041: 0x0000980E, - 15042: 0x000098AC, - 15043: 0x000098F6, - 15044: 0x000098F9, - 15045: 0x000099AF, - 15046: 0x000099B2, - 15047: 0x000099B0, - 15048: 0x000099B5, - 15049: 0x00009AAD, - 15050: 0x00009AAB, - 15051: 0x00009B5B, - 15052: 0x00009CEA, - 15053: 0x00009CED, - 15054: 0x00009CE7, - 15055: 0x00009E80, - 15056: 0x00009EFD, - 15057: 0x000050E6, - 15058: 0x000050D4, - 15059: 0x000050D7, - 15060: 0x000050E8, - 15061: 0x000050F3, - 15062: 0x000050DB, - 15063: 0x000050EA, - 15064: 0x000050DD, - 15065: 0x000050E4, - 15066: 0x000050D3, - 15067: 0x000050EC, - 15068: 0x000050F0, - 15069: 0x000050EF, - 15070: 0x000050E3, - 15071: 0x000050E0, - 15072: 0x000051D8, - 15073: 0x00005280, - 15074: 0x00005281, - 15075: 0x000052E9, - 15076: 0x000052EB, - 15077: 0x00005330, - 15078: 0x000053AC, - 15079: 0x00005627, - 15080: 0x00005615, - 15081: 0x0000560C, - 15082: 0x00005612, - 15083: 0x000055FC, - 15084: 0x0000560F, - 15085: 0x0000561C, - 15086: 0x00005601, - 15087: 0x00005613, - 15088: 0x00005602, - 15089: 0x000055FA, - 15090: 0x0000561D, - 15091: 0x00005604, - 15092: 0x000055FF, - 15093: 0x000055F9, - 15094: 0x00005889, - 15095: 0x0000587C, - 15096: 0x00005890, - 15097: 0x00005898, - 15098: 0x00005886, - 15099: 0x00005881, - 15100: 0x0000587F, - 15101: 0x00005874, - 15102: 0x0000588B, - 15103: 0x0000587A, - 15104: 0x00005887, - 15105: 0x00005891, - 15106: 0x0000588E, - 15107: 0x00005876, - 15108: 0x00005882, - 15109: 0x00005888, - 15110: 0x0000587B, - 15111: 0x00005894, - 15112: 0x0000588F, - 15113: 0x000058FE, - 15114: 0x0000596B, - 15115: 0x00005ADC, - 15116: 0x00005AEE, - 15117: 0x00005AE5, - 15118: 0x00005AD5, - 15119: 0x00005AEA, - 15120: 0x00005ADA, - 15121: 0x00005AED, - 15122: 0x00005AEB, - 15123: 0x00005AF3, - 15124: 0x00005AE2, - 15125: 0x00005AE0, - 15126: 0x00005ADB, - 15127: 0x00005AEC, - 15128: 0x00005ADE, - 15129: 0x00005ADD, - 15130: 0x00005AD9, - 15131: 0x00005AE8, - 15132: 0x00005ADF, - 15133: 0x00005B77, - 15134: 0x00005BE0, - 15135: 0x00005BE3, - 15136: 0x00005C63, - 15137: 0x00005D82, - 15138: 0x00005D80, - 15139: 0x00005D7D, - 15140: 0x00005D86, - 15141: 0x00005D7A, - 15142: 0x00005D81, - 15143: 0x00005D77, - 15144: 0x00005D8A, - 15145: 0x00005D89, - 15146: 0x00005D88, - 15147: 0x00005D7E, - 15148: 0x00005D7C, - 15149: 0x00005D8D, - 15150: 0x00005D79, - 15151: 0x00005D7F, - 15152: 0x00005E58, - 15153: 0x00005E59, - 15154: 0x00005E53, - 15155: 0x00005ED8, - 15156: 0x00005ED1, - 15157: 0x00005ED7, - 15158: 0x00005ECE, - 15159: 0x00005EDC, - 15160: 0x00005ED5, - 15161: 0x00005ED9, - 15162: 0x00005ED2, - 15163: 0x00005ED4, - 15164: 0x00005F44, - 15165: 0x00005F43, - 15166: 0x00005F6F, - 15167: 0x00005FB6, - 15168: 0x0000612C, - 15169: 0x00006128, - 15170: 0x00006141, - 15171: 0x0000615E, - 15172: 0x00006171, - 15173: 0x00006173, - 15174: 0x00006152, - 15175: 0x00006153, - 15176: 0x00006172, - 15177: 0x0000616C, - 15178: 0x00006180, - 15179: 0x00006174, - 15180: 0x00006154, - 15181: 0x0000617A, - 15182: 0x0000615B, - 15183: 0x00006165, - 15184: 0x0000613B, - 15185: 0x0000616A, - 15186: 0x00006161, - 15187: 0x00006156, - 15188: 0x00006229, - 15189: 0x00006227, - 15190: 0x0000622B, - 15191: 0x0000642B, - 15192: 0x0000644D, - 15193: 0x0000645B, - 15194: 0x0000645D, - 15195: 0x00006474, - 15196: 0x00006476, - 15197: 0x00006472, - 15198: 0x00006473, - 15199: 0x0000647D, - 15200: 0x00006475, - 15201: 0x00006466, - 15202: 0x000064A6, - 15203: 0x0000644E, - 15204: 0x00006482, - 15205: 0x0000645E, - 15206: 0x0000645C, - 15207: 0x0000644B, - 15208: 0x00006453, - 15209: 0x00006460, - 15210: 0x00006450, - 15211: 0x0000647F, - 15212: 0x0000643F, - 15213: 0x0000646C, - 15214: 0x0000646B, - 15215: 0x00006459, - 15216: 0x00006465, - 15217: 0x00006477, - 15218: 0x00006573, - 15219: 0x000065A0, - 15220: 0x000066A1, - 15221: 0x000066A0, - 15222: 0x0000669F, - 15223: 0x00006705, - 15224: 0x00006704, - 15225: 0x00006722, - 15226: 0x000069B1, - 15227: 0x000069B6, - 15228: 0x000069C9, - 15229: 0x000069A0, - 15230: 0x000069CE, - 15231: 0x00006996, - 15232: 0x000069B0, - 15233: 0x000069AC, - 15234: 0x000069BC, - 15235: 0x00006991, - 15236: 0x00006999, - 15237: 0x0000698E, - 15238: 0x000069A7, - 15239: 0x0000698D, - 15240: 0x000069A9, - 15241: 0x000069BE, - 15242: 0x000069AF, - 15243: 0x000069BF, - 15244: 0x000069C4, - 15245: 0x000069BD, - 15246: 0x000069A4, - 15247: 0x000069D4, - 15248: 0x000069B9, - 15249: 0x000069CA, - 15250: 0x0000699A, - 15251: 0x000069CF, - 15252: 0x000069B3, - 15253: 0x00006993, - 15254: 0x000069AA, - 15255: 0x000069A1, - 15256: 0x0000699E, - 15257: 0x000069D9, - 15258: 0x00006997, - 15259: 0x00006990, - 15260: 0x000069C2, - 15261: 0x000069B5, - 15262: 0x000069A5, - 15263: 0x000069C6, - 15264: 0x00006B4A, - 15265: 0x00006B4D, - 15266: 0x00006B4B, - 15267: 0x00006B9E, - 15268: 0x00006B9F, - 15269: 0x00006BA0, - 15270: 0x00006BC3, - 15271: 0x00006BC4, - 15272: 0x00006BFE, - 15273: 0x00006ECE, - 15274: 0x00006EF5, - 15275: 0x00006EF1, - 15276: 0x00006F03, - 15277: 0x00006F25, - 15278: 0x00006EF8, - 15279: 0x00006F37, - 15280: 0x00006EFB, - 15281: 0x00006F2E, - 15282: 0x00006F09, - 15283: 0x00006F4E, - 15284: 0x00006F19, - 15285: 0x00006F1A, - 15286: 0x00006F27, - 15287: 0x00006F18, - 15288: 0x00006F3B, - 15289: 0x00006F12, - 15290: 0x00006EED, - 15291: 0x00006F0A, - 15292: 0x00006F36, - 15293: 0x00006F73, - 15294: 0x00006EF9, - 15295: 0x00006EEE, - 15296: 0x00006F2D, - 15297: 0x00006F40, - 15298: 0x00006F30, - 15299: 0x00006F3C, - 15300: 0x00006F35, - 15301: 0x00006EEB, - 15302: 0x00006F07, - 15303: 0x00006F0E, - 15304: 0x00006F43, - 15305: 0x00006F05, - 15306: 0x00006EFD, - 15307: 0x00006EF6, - 15308: 0x00006F39, - 15309: 0x00006F1C, - 15310: 0x00006EFC, - 15311: 0x00006F3A, - 15312: 0x00006F1F, - 15313: 0x00006F0D, - 15314: 0x00006F1E, - 15315: 0x00006F08, - 15316: 0x00006F21, - 15317: 0x00007187, - 15318: 0x00007190, - 15319: 0x00007189, - 15320: 0x00007180, - 15321: 0x00007185, - 15322: 0x00007182, - 15323: 0x0000718F, - 15324: 0x0000717B, - 15325: 0x00007186, - 15326: 0x00007181, - 15327: 0x00007197, - 15328: 0x00007244, - 15329: 0x00007253, - 15330: 0x00007297, - 15331: 0x00007295, - 15332: 0x00007293, - 15333: 0x00007343, - 15334: 0x0000734D, - 15335: 0x00007351, - 15336: 0x0000734C, - 15337: 0x00007462, - 15338: 0x00007473, - 15339: 0x00007471, - 15340: 0x00007475, - 15341: 0x00007472, - 15342: 0x00007467, - 15343: 0x0000746E, - 15344: 0x00007500, - 15345: 0x00007502, - 15346: 0x00007503, - 15347: 0x0000757D, - 15348: 0x00007590, - 15349: 0x00007616, - 15350: 0x00007608, - 15351: 0x0000760C, - 15352: 0x00007615, - 15353: 0x00007611, - 15354: 0x0000760A, - 15355: 0x00007614, - 15356: 0x000076B8, - 15357: 0x00007781, - 15358: 0x0000777C, - 15359: 0x00007785, - 15360: 0x00007782, - 15361: 0x0000776E, - 15362: 0x00007780, - 15363: 0x0000776F, - 15364: 0x0000777E, - 15365: 0x00007783, - 15366: 0x000078B2, - 15367: 0x000078AA, - 15368: 0x000078B4, - 15369: 0x000078AD, - 15370: 0x000078A8, - 15371: 0x0000787E, - 15372: 0x000078AB, - 15373: 0x0000789E, - 15374: 0x000078A5, - 15375: 0x000078A0, - 15376: 0x000078AC, - 15377: 0x000078A2, - 15378: 0x000078A4, - 15379: 0x00007998, - 15380: 0x0000798A, - 15381: 0x0000798B, - 15382: 0x00007996, - 15383: 0x00007995, - 15384: 0x00007994, - 15385: 0x00007993, - 15386: 0x00007997, - 15387: 0x00007988, - 15388: 0x00007992, - 15389: 0x00007990, - 15390: 0x00007A2B, - 15391: 0x00007A4A, - 15392: 0x00007A30, - 15393: 0x00007A2F, - 15394: 0x00007A28, - 15395: 0x00007A26, - 15396: 0x00007AA8, - 15397: 0x00007AAB, - 15398: 0x00007AAC, - 15399: 0x00007AEE, - 15400: 0x00007B88, - 15401: 0x00007B9C, - 15402: 0x00007B8A, - 15403: 0x00007B91, - 15404: 0x00007B90, - 15405: 0x00007B96, - 15406: 0x00007B8D, - 15407: 0x00007B8C, - 15408: 0x00007B9B, - 15409: 0x00007B8E, - 15410: 0x00007B85, - 15411: 0x00007B98, - 15412: 0x00005284, - 15413: 0x00007B99, - 15414: 0x00007BA4, - 15415: 0x00007B82, - 15416: 0x00007CBB, - 15417: 0x00007CBF, - 15418: 0x00007CBC, - 15419: 0x00007CBA, - 15420: 0x00007DA7, - 15421: 0x00007DB7, - 15422: 0x00007DC2, - 15423: 0x00007DA3, - 15424: 0x00007DAA, - 15425: 0x00007DC1, - 15426: 0x00007DC0, - 15427: 0x00007DC5, - 15428: 0x00007D9D, - 15429: 0x00007DCE, - 15430: 0x00007DC4, - 15431: 0x00007DC6, - 15432: 0x00007DCB, - 15433: 0x00007DCC, - 15434: 0x00007DAF, - 15435: 0x00007DB9, - 15436: 0x00007D96, - 15437: 0x00007DBC, - 15438: 0x00007D9F, - 15439: 0x00007DA6, - 15440: 0x00007DAE, - 15441: 0x00007DA9, - 15442: 0x00007DA1, - 15443: 0x00007DC9, - 15444: 0x00007F73, - 15445: 0x00007FE2, - 15446: 0x00007FE3, - 15447: 0x00007FE5, - 15448: 0x00007FDE, - 15449: 0x00008024, - 15450: 0x0000805D, - 15451: 0x0000805C, - 15452: 0x00008189, - 15453: 0x00008186, - 15454: 0x00008183, - 15455: 0x00008187, - 15456: 0x0000818D, - 15457: 0x0000818C, - 15458: 0x0000818B, - 15459: 0x00008215, - 15460: 0x00008497, - 15461: 0x000084A4, - 15462: 0x000084A1, - 15463: 0x0000849F, - 15464: 0x000084BA, - 15465: 0x000084CE, - 15466: 0x000084C2, - 15467: 0x000084AC, - 15468: 0x000084AE, - 15469: 0x000084AB, - 15470: 0x000084B9, - 15471: 0x000084B4, - 15472: 0x000084C1, - 15473: 0x000084CD, - 15474: 0x000084AA, - 15475: 0x0000849A, - 15476: 0x000084B1, - 15477: 0x000084D0, - 15478: 0x0000849D, - 15479: 0x000084A7, - 15480: 0x000084BB, - 15481: 0x000084A2, - 15482: 0x00008494, - 15483: 0x000084C7, - 15484: 0x000084CC, - 15485: 0x0000849B, - 15486: 0x000084A9, - 15487: 0x000084AF, - 15488: 0x000084A8, - 15489: 0x000084D6, - 15490: 0x00008498, - 15491: 0x000084B6, - 15492: 0x000084CF, - 15493: 0x000084A0, - 15494: 0x000084D7, - 15495: 0x000084D4, - 15496: 0x000084D2, - 15497: 0x000084DB, - 15498: 0x000084B0, - 15499: 0x00008491, - 15500: 0x00008661, - 15501: 0x00008733, - 15502: 0x00008723, - 15503: 0x00008728, - 15504: 0x0000876B, - 15505: 0x00008740, - 15506: 0x0000872E, - 15507: 0x0000871E, - 15508: 0x00008721, - 15509: 0x00008719, - 15510: 0x0000871B, - 15511: 0x00008743, - 15512: 0x0000872C, - 15513: 0x00008741, - 15514: 0x0000873E, - 15515: 0x00008746, - 15516: 0x00008720, - 15517: 0x00008732, - 15518: 0x0000872A, - 15519: 0x0000872D, - 15520: 0x0000873C, - 15521: 0x00008712, - 15522: 0x0000873A, - 15523: 0x00008731, - 15524: 0x00008735, - 15525: 0x00008742, - 15526: 0x00008726, - 15527: 0x00008727, - 15528: 0x00008738, - 15529: 0x00008724, - 15530: 0x0000871A, - 15531: 0x00008730, - 15532: 0x00008711, - 15533: 0x000088F7, - 15534: 0x000088E7, - 15535: 0x000088F1, - 15536: 0x000088F2, - 15537: 0x000088FA, - 15538: 0x000088FE, - 15539: 0x000088EE, - 15540: 0x000088FC, - 15541: 0x000088F6, - 15542: 0x000088FB, - 15543: 0x000088F0, - 15544: 0x000088EC, - 15545: 0x000088EB, - 15546: 0x0000899D, - 15547: 0x000089A1, - 15548: 0x0000899F, - 15549: 0x0000899E, - 15550: 0x000089E9, - 15551: 0x000089EB, - 15552: 0x000089E8, - 15553: 0x00008AAB, - 15554: 0x00008A99, - 15555: 0x00008A8B, - 15556: 0x00008A92, - 15557: 0x00008A8F, - 15558: 0x00008A96, - 15559: 0x00008C3D, - 15560: 0x00008C68, - 15561: 0x00008C69, - 15562: 0x00008CD5, - 15563: 0x00008CCF, - 15564: 0x00008CD7, - 15565: 0x00008D96, - 15566: 0x00008E09, - 15567: 0x00008E02, - 15568: 0x00008DFF, - 15569: 0x00008E0D, - 15570: 0x00008DFD, - 15571: 0x00008E0A, - 15572: 0x00008E03, - 15573: 0x00008E07, - 15574: 0x00008E06, - 15575: 0x00008E05, - 15576: 0x00008DFE, - 15577: 0x00008E00, - 15578: 0x00008E04, - 15579: 0x00008F10, - 15580: 0x00008F11, - 15581: 0x00008F0E, - 15582: 0x00008F0D, - 15583: 0x00009123, - 15584: 0x0000911C, - 15585: 0x00009120, - 15586: 0x00009122, - 15587: 0x0000911F, - 15588: 0x0000911D, - 15589: 0x0000911A, - 15590: 0x00009124, - 15591: 0x00009121, - 15592: 0x0000911B, - 15593: 0x0000917A, - 15594: 0x00009172, - 15595: 0x00009179, - 15596: 0x00009173, - 15597: 0x000092A5, - 15598: 0x000092A4, - 15599: 0x00009276, - 15600: 0x0000929B, - 15601: 0x0000927A, - 15602: 0x000092A0, - 15603: 0x00009294, - 15604: 0x000092AA, - 15605: 0x0000928D, - 15606: 0x000092A6, - 15607: 0x0000929A, - 15608: 0x000092AB, - 15609: 0x00009279, - 15610: 0x00009297, - 15611: 0x0000927F, - 15612: 0x000092A3, - 15613: 0x000092EE, - 15614: 0x0000928E, - 15615: 0x00009282, - 15616: 0x00009295, - 15617: 0x000092A2, - 15618: 0x0000927D, - 15619: 0x00009288, - 15620: 0x000092A1, - 15621: 0x0000928A, - 15622: 0x00009286, - 15623: 0x0000928C, - 15624: 0x00009299, - 15625: 0x000092A7, - 15626: 0x0000927E, - 15627: 0x00009287, - 15628: 0x000092A9, - 15629: 0x0000929D, - 15630: 0x0000928B, - 15631: 0x0000922D, - 15632: 0x0000969E, - 15633: 0x000096A1, - 15634: 0x000096FF, - 15635: 0x00009758, - 15636: 0x0000977D, - 15637: 0x0000977A, - 15638: 0x0000977E, - 15639: 0x00009783, - 15640: 0x00009780, - 15641: 0x00009782, - 15642: 0x0000977B, - 15643: 0x00009784, - 15644: 0x00009781, - 15645: 0x0000977F, - 15646: 0x000097CE, - 15647: 0x000097CD, - 15648: 0x00009816, - 15649: 0x000098AD, - 15650: 0x000098AE, - 15651: 0x00009902, - 15652: 0x00009900, - 15653: 0x00009907, - 15654: 0x0000999D, - 15655: 0x0000999C, - 15656: 0x000099C3, - 15657: 0x000099B9, - 15658: 0x000099BB, - 15659: 0x000099BA, - 15660: 0x000099C2, - 15661: 0x000099BD, - 15662: 0x000099C7, - 15663: 0x00009AB1, - 15664: 0x00009AE3, - 15665: 0x00009AE7, - 15666: 0x00009B3E, - 15667: 0x00009B3F, - 15668: 0x00009B60, - 15669: 0x00009B61, - 15670: 0x00009B5F, - 15671: 0x00009CF1, - 15672: 0x00009CF2, - 15673: 0x00009CF5, - 15674: 0x00009EA7, - 15675: 0x000050FF, - 15676: 0x00005103, - 15677: 0x00005130, - 15678: 0x000050F8, - 15679: 0x00005106, - 15680: 0x00005107, - 15681: 0x000050F6, - 15682: 0x000050FE, - 15683: 0x0000510B, - 15684: 0x0000510C, - 15685: 0x000050FD, - 15686: 0x0000510A, - 15687: 0x0000528B, - 15688: 0x0000528C, - 15689: 0x000052F1, - 15690: 0x000052EF, - 15691: 0x00005648, - 15692: 0x00005642, - 15693: 0x0000564C, - 15694: 0x00005635, - 15695: 0x00005641, - 15696: 0x0000564A, - 15697: 0x00005649, - 15698: 0x00005646, - 15699: 0x00005658, - 15700: 0x0000565A, - 15701: 0x00005640, - 15702: 0x00005633, - 15703: 0x0000563D, - 15704: 0x0000562C, - 15705: 0x0000563E, - 15706: 0x00005638, - 15707: 0x0000562A, - 15708: 0x0000563A, - 15709: 0x0000571A, - 15710: 0x000058AB, - 15711: 0x0000589D, - 15712: 0x000058B1, - 15713: 0x000058A0, - 15714: 0x000058A3, - 15715: 0x000058AF, - 15716: 0x000058AC, - 15717: 0x000058A5, - 15718: 0x000058A1, - 15719: 0x000058FF, - 15720: 0x00005AFF, - 15721: 0x00005AF4, - 15722: 0x00005AFD, - 15723: 0x00005AF7, - 15724: 0x00005AF6, - 15725: 0x00005B03, - 15726: 0x00005AF8, - 15727: 0x00005B02, - 15728: 0x00005AF9, - 15729: 0x00005B01, - 15730: 0x00005B07, - 15731: 0x00005B05, - 15732: 0x00005B0F, - 15733: 0x00005C67, - 15734: 0x00005D99, - 15735: 0x00005D97, - 15736: 0x00005D9F, - 15737: 0x00005D92, - 15738: 0x00005DA2, - 15739: 0x00005D93, - 15740: 0x00005D95, - 15741: 0x00005DA0, - 15742: 0x00005D9C, - 15743: 0x00005DA1, - 15744: 0x00005D9A, - 15745: 0x00005D9E, - 15746: 0x00005E69, - 15747: 0x00005E5D, - 15748: 0x00005E60, - 15749: 0x00005E5C, - 15750: 0x00007DF3, - 15751: 0x00005EDB, - 15752: 0x00005EDE, - 15753: 0x00005EE1, - 15754: 0x00005F49, - 15755: 0x00005FB2, - 15756: 0x0000618B, - 15757: 0x00006183, - 15758: 0x00006179, - 15759: 0x000061B1, - 15760: 0x000061B0, - 15761: 0x000061A2, - 15762: 0x00006189, - 15763: 0x0000619B, - 15764: 0x00006193, - 15765: 0x000061AF, - 15766: 0x000061AD, - 15767: 0x0000619F, - 15768: 0x00006192, - 15769: 0x000061AA, - 15770: 0x000061A1, - 15771: 0x0000618D, - 15772: 0x00006166, - 15773: 0x000061B3, - 15774: 0x0000622D, - 15775: 0x0000646E, - 15776: 0x00006470, - 15777: 0x00006496, - 15778: 0x000064A0, - 15779: 0x00006485, - 15780: 0x00006497, - 15781: 0x0000649C, - 15782: 0x0000648F, - 15783: 0x0000648B, - 15784: 0x0000648A, - 15785: 0x0000648C, - 15786: 0x000064A3, - 15787: 0x0000649F, - 15788: 0x00006468, - 15789: 0x000064B1, - 15790: 0x00006498, - 15791: 0x00006576, - 15792: 0x0000657A, - 15793: 0x00006579, - 15794: 0x0000657B, - 15795: 0x000065B2, - 15796: 0x000065B3, - 15797: 0x000066B5, - 15798: 0x000066B0, - 15799: 0x000066A9, - 15800: 0x000066B2, - 15801: 0x000066B7, - 15802: 0x000066AA, - 15803: 0x000066AF, - 15804: 0x00006A00, - 15805: 0x00006A06, - 15806: 0x00006A17, - 15807: 0x000069E5, - 15808: 0x000069F8, - 15809: 0x00006A15, - 15810: 0x000069F1, - 15811: 0x000069E4, - 15812: 0x00006A20, - 15813: 0x000069FF, - 15814: 0x000069EC, - 15815: 0x000069E2, - 15816: 0x00006A1B, - 15817: 0x00006A1D, - 15818: 0x000069FE, - 15819: 0x00006A27, - 15820: 0x000069F2, - 15821: 0x000069EE, - 15822: 0x00006A14, - 15823: 0x000069F7, - 15824: 0x000069E7, - 15825: 0x00006A40, - 15826: 0x00006A08, - 15827: 0x000069E6, - 15828: 0x000069FB, - 15829: 0x00006A0D, - 15830: 0x000069FC, - 15831: 0x000069EB, - 15832: 0x00006A09, - 15833: 0x00006A04, - 15834: 0x00006A18, - 15835: 0x00006A25, - 15836: 0x00006A0F, - 15837: 0x000069F6, - 15838: 0x00006A26, - 15839: 0x00006A07, - 15840: 0x000069F4, - 15841: 0x00006A16, - 15842: 0x00006B51, - 15843: 0x00006BA5, - 15844: 0x00006BA3, - 15845: 0x00006BA2, - 15846: 0x00006BA6, - 15847: 0x00006C01, - 15848: 0x00006C00, - 15849: 0x00006BFF, - 15850: 0x00006C02, - 15851: 0x00006F41, - 15852: 0x00006F26, - 15853: 0x00006F7E, - 15854: 0x00006F87, - 15855: 0x00006FC6, - 15856: 0x00006F92, - 15857: 0x00006F8D, - 15858: 0x00006F89, - 15859: 0x00006F8C, - 15860: 0x00006F62, - 15861: 0x00006F4F, - 15862: 0x00006F85, - 15863: 0x00006F5A, - 15864: 0x00006F96, - 15865: 0x00006F76, - 15866: 0x00006F6C, - 15867: 0x00006F82, - 15868: 0x00006F55, - 15869: 0x00006F72, - 15870: 0x00006F52, - 15871: 0x00006F50, - 15872: 0x00006F57, - 15873: 0x00006F94, - 15874: 0x00006F93, - 15875: 0x00006F5D, - 15876: 0x00006F00, - 15877: 0x00006F61, - 15878: 0x00006F6B, - 15879: 0x00006F7D, - 15880: 0x00006F67, - 15881: 0x00006F90, - 15882: 0x00006F53, - 15883: 0x00006F8B, - 15884: 0x00006F69, - 15885: 0x00006F7F, - 15886: 0x00006F95, - 15887: 0x00006F63, - 15888: 0x00006F77, - 15889: 0x00006F6A, - 15890: 0x00006F7B, - 15891: 0x000071B2, - 15892: 0x000071AF, - 15893: 0x0000719B, - 15894: 0x000071B0, - 15895: 0x000071A0, - 15896: 0x0000719A, - 15897: 0x000071A9, - 15898: 0x000071B5, - 15899: 0x0000719D, - 15900: 0x000071A5, - 15901: 0x0000719E, - 15902: 0x000071A4, - 15903: 0x000071A1, - 15904: 0x000071AA, - 15905: 0x0000719C, - 15906: 0x000071A7, - 15907: 0x000071B3, - 15908: 0x00007298, - 15909: 0x0000729A, - 15910: 0x00007358, - 15911: 0x00007352, - 15912: 0x0000735E, - 15913: 0x0000735F, - 15914: 0x00007360, - 15915: 0x0000735D, - 15916: 0x0000735B, - 15917: 0x00007361, - 15918: 0x0000735A, - 15919: 0x00007359, - 15920: 0x00007362, - 15921: 0x00007487, - 15922: 0x00007489, - 15923: 0x0000748A, - 15924: 0x00007486, - 15925: 0x00007481, - 15926: 0x0000747D, - 15927: 0x00007485, - 15928: 0x00007488, - 15929: 0x0000747C, - 15930: 0x00007479, - 15931: 0x00007508, - 15932: 0x00007507, - 15933: 0x0000757E, - 15934: 0x00007625, - 15935: 0x0000761E, - 15936: 0x00007619, - 15937: 0x0000761D, - 15938: 0x0000761C, - 15939: 0x00007623, - 15940: 0x0000761A, - 15941: 0x00007628, - 15942: 0x0000761B, - 15943: 0x0000769C, - 15944: 0x0000769D, - 15945: 0x0000769E, - 15946: 0x0000769B, - 15947: 0x0000778D, - 15948: 0x0000778F, - 15949: 0x00007789, - 15950: 0x00007788, - 15951: 0x000078CD, - 15952: 0x000078BB, - 15953: 0x000078CF, - 15954: 0x000078CC, - 15955: 0x000078D1, - 15956: 0x000078CE, - 15957: 0x000078D4, - 15958: 0x000078C8, - 15959: 0x000078C3, - 15960: 0x000078C4, - 15961: 0x000078C9, - 15962: 0x0000799A, - 15963: 0x000079A1, - 15964: 0x000079A0, - 15965: 0x0000799C, - 15966: 0x000079A2, - 15967: 0x0000799B, - 15968: 0x00006B76, - 15969: 0x00007A39, - 15970: 0x00007AB2, - 15971: 0x00007AB4, - 15972: 0x00007AB3, - 15973: 0x00007BB7, - 15974: 0x00007BCB, - 15975: 0x00007BBE, - 15976: 0x00007BAC, - 15977: 0x00007BCE, - 15978: 0x00007BAF, - 15979: 0x00007BB9, - 15980: 0x00007BCA, - 15981: 0x00007BB5, - 15982: 0x00007CC5, - 15983: 0x00007CC8, - 15984: 0x00007CCC, - 15985: 0x00007CCB, - 15986: 0x00007DF7, - 15987: 0x00007DDB, - 15988: 0x00007DEA, - 15989: 0x00007DE7, - 15990: 0x00007DD7, - 15991: 0x00007DE1, - 15992: 0x00007E03, - 15993: 0x00007DFA, - 15994: 0x00007DE6, - 15995: 0x00007DF6, - 15996: 0x00007DF1, - 15997: 0x00007DF0, - 15998: 0x00007DEE, - 15999: 0x00007DDF, - 16000: 0x00007F76, - 16001: 0x00007FAC, - 16002: 0x00007FB0, - 16003: 0x00007FAD, - 16004: 0x00007FED, - 16005: 0x00007FEB, - 16006: 0x00007FEA, - 16007: 0x00007FEC, - 16008: 0x00007FE6, - 16009: 0x00007FE8, - 16010: 0x00008064, - 16011: 0x00008067, - 16012: 0x000081A3, - 16013: 0x0000819F, - 16014: 0x0000819E, - 16015: 0x00008195, - 16016: 0x000081A2, - 16017: 0x00008199, - 16018: 0x00008197, - 16019: 0x00008216, - 16020: 0x0000824F, - 16021: 0x00008253, - 16022: 0x00008252, - 16023: 0x00008250, - 16024: 0x0000824E, - 16025: 0x00008251, - 16026: 0x00008524, - 16027: 0x0000853B, - 16028: 0x0000850F, - 16029: 0x00008500, - 16030: 0x00008529, - 16031: 0x0000850E, - 16032: 0x00008509, - 16033: 0x0000850D, - 16034: 0x0000851F, - 16035: 0x0000850A, - 16036: 0x00008527, - 16037: 0x0000851C, - 16038: 0x000084FB, - 16039: 0x0000852B, - 16040: 0x000084FA, - 16041: 0x00008508, - 16042: 0x0000850C, - 16043: 0x000084F4, - 16044: 0x0000852A, - 16045: 0x000084F2, - 16046: 0x00008515, - 16047: 0x000084F7, - 16048: 0x000084EB, - 16049: 0x000084F3, - 16050: 0x000084FC, - 16051: 0x00008512, - 16052: 0x000084EA, - 16053: 0x000084E9, - 16054: 0x00008516, - 16055: 0x000084FE, - 16056: 0x00008528, - 16057: 0x0000851D, - 16058: 0x0000852E, - 16059: 0x00008502, - 16060: 0x000084FD, - 16061: 0x0000851E, - 16062: 0x000084F6, - 16063: 0x00008531, - 16064: 0x00008526, - 16065: 0x000084E7, - 16066: 0x000084E8, - 16067: 0x000084F0, - 16068: 0x000084EF, - 16069: 0x000084F9, - 16070: 0x00008518, - 16071: 0x00008520, - 16072: 0x00008530, - 16073: 0x0000850B, - 16074: 0x00008519, - 16075: 0x0000852F, - 16076: 0x00008662, - 16077: 0x00008756, - 16078: 0x00008763, - 16079: 0x00008764, - 16080: 0x00008777, - 16081: 0x000087E1, - 16082: 0x00008773, - 16083: 0x00008758, - 16084: 0x00008754, - 16085: 0x0000875B, - 16086: 0x00008752, - 16087: 0x00008761, - 16088: 0x0000875A, - 16089: 0x00008751, - 16090: 0x0000875E, - 16091: 0x0000876D, - 16092: 0x0000876A, - 16093: 0x00008750, - 16094: 0x0000874E, - 16095: 0x0000875F, - 16096: 0x0000875D, - 16097: 0x0000876F, - 16098: 0x0000876C, - 16099: 0x0000877A, - 16100: 0x0000876E, - 16101: 0x0000875C, - 16102: 0x00008765, - 16103: 0x0000874F, - 16104: 0x0000877B, - 16105: 0x00008775, - 16106: 0x00008762, - 16107: 0x00008767, - 16108: 0x00008769, - 16109: 0x0000885A, - 16110: 0x00008905, - 16111: 0x0000890C, - 16112: 0x00008914, - 16113: 0x0000890B, - 16114: 0x00008917, - 16115: 0x00008918, - 16116: 0x00008919, - 16117: 0x00008906, - 16118: 0x00008916, - 16119: 0x00008911, - 16120: 0x0000890E, - 16121: 0x00008909, - 16122: 0x000089A2, - 16123: 0x000089A4, - 16124: 0x000089A3, - 16125: 0x000089ED, - 16126: 0x000089F0, - 16127: 0x000089EC, - 16128: 0x00008ACF, - 16129: 0x00008AC6, - 16130: 0x00008AB8, - 16131: 0x00008AD3, - 16132: 0x00008AD1, - 16133: 0x00008AD4, - 16134: 0x00008AD5, - 16135: 0x00008ABB, - 16136: 0x00008AD7, - 16137: 0x00008ABE, - 16138: 0x00008AC0, - 16139: 0x00008AC5, - 16140: 0x00008AD8, - 16141: 0x00008AC3, - 16142: 0x00008ABA, - 16143: 0x00008ABD, - 16144: 0x00008AD9, - 16145: 0x00008C3E, - 16146: 0x00008C4D, - 16147: 0x00008C8F, - 16148: 0x00008CE5, - 16149: 0x00008CDF, - 16150: 0x00008CD9, - 16151: 0x00008CE8, - 16152: 0x00008CDA, - 16153: 0x00008CDD, - 16154: 0x00008CE7, - 16155: 0x00008DA0, - 16156: 0x00008D9C, - 16157: 0x00008DA1, - 16158: 0x00008D9B, - 16159: 0x00008E20, - 16160: 0x00008E23, - 16161: 0x00008E25, - 16162: 0x00008E24, - 16163: 0x00008E2E, - 16164: 0x00008E15, - 16165: 0x00008E1B, - 16166: 0x00008E16, - 16167: 0x00008E11, - 16168: 0x00008E19, - 16169: 0x00008E26, - 16170: 0x00008E27, - 16171: 0x00008E14, - 16172: 0x00008E12, - 16173: 0x00008E18, - 16174: 0x00008E13, - 16175: 0x00008E1C, - 16176: 0x00008E17, - 16177: 0x00008E1A, - 16178: 0x00008F2C, - 16179: 0x00008F24, - 16180: 0x00008F18, - 16181: 0x00008F1A, - 16182: 0x00008F20, - 16183: 0x00008F23, - 16184: 0x00008F16, - 16185: 0x00008F17, - 16186: 0x00009073, - 16187: 0x00009070, - 16188: 0x0000906F, - 16189: 0x00009067, - 16190: 0x0000906B, - 16191: 0x0000912F, - 16192: 0x0000912B, - 16193: 0x00009129, - 16194: 0x0000912A, - 16195: 0x00009132, - 16196: 0x00009126, - 16197: 0x0000912E, - 16198: 0x00009185, - 16199: 0x00009186, - 16200: 0x0000918A, - 16201: 0x00009181, - 16202: 0x00009182, - 16203: 0x00009184, - 16204: 0x00009180, - 16205: 0x000092D0, - 16206: 0x000092C3, - 16207: 0x000092C4, - 16208: 0x000092C0, - 16209: 0x000092D9, - 16210: 0x000092B6, - 16211: 0x000092CF, - 16212: 0x000092F1, - 16213: 0x000092DF, - 16214: 0x000092D8, - 16215: 0x000092E9, - 16216: 0x000092D7, - 16217: 0x000092DD, - 16218: 0x000092CC, - 16219: 0x000092EF, - 16220: 0x000092C2, - 16221: 0x000092E8, - 16222: 0x000092CA, - 16223: 0x000092C8, - 16224: 0x000092CE, - 16225: 0x000092E6, - 16226: 0x000092CD, - 16227: 0x000092D5, - 16228: 0x000092C9, - 16229: 0x000092E0, - 16230: 0x000092DE, - 16231: 0x000092E7, - 16232: 0x000092D1, - 16233: 0x000092D3, - 16234: 0x000092B5, - 16235: 0x000092E1, - 16236: 0x000092C6, - 16237: 0x000092B4, - 16238: 0x0000957C, - 16239: 0x000095AC, - 16240: 0x000095AB, - 16241: 0x000095AE, - 16242: 0x000095B0, - 16243: 0x000096A4, - 16244: 0x000096A2, - 16245: 0x000096D3, - 16246: 0x00009705, - 16247: 0x00009708, - 16248: 0x00009702, - 16249: 0x0000975A, - 16250: 0x0000978A, - 16251: 0x0000978E, - 16252: 0x00009788, - 16253: 0x000097D0, - 16254: 0x000097CF, - 16255: 0x0000981E, - 16256: 0x0000981D, - 16257: 0x00009826, - 16258: 0x00009829, - 16259: 0x00009828, - 16260: 0x00009820, - 16261: 0x0000981B, - 16262: 0x00009827, - 16263: 0x000098B2, - 16264: 0x00009908, - 16265: 0x000098FA, - 16266: 0x00009911, - 16267: 0x00009914, - 16268: 0x00009916, - 16269: 0x00009917, - 16270: 0x00009915, - 16271: 0x000099DC, - 16272: 0x000099CD, - 16273: 0x000099CF, - 16274: 0x000099D3, - 16275: 0x000099D4, - 16276: 0x000099CE, - 16277: 0x000099C9, - 16278: 0x000099D6, - 16279: 0x000099D8, - 16280: 0x000099CB, - 16281: 0x000099D7, - 16282: 0x000099CC, - 16283: 0x00009AB3, - 16284: 0x00009AEC, - 16285: 0x00009AEB, - 16286: 0x00009AF3, - 16287: 0x00009AF2, - 16288: 0x00009AF1, - 16289: 0x00009B46, - 16290: 0x00009B43, - 16291: 0x00009B67, - 16292: 0x00009B74, - 16293: 0x00009B71, - 16294: 0x00009B66, - 16295: 0x00009B76, - 16296: 0x00009B75, - 16297: 0x00009B70, - 16298: 0x00009B68, - 16299: 0x00009B64, - 16300: 0x00009B6C, - 16301: 0x00009CFC, - 16302: 0x00009CFA, - 16303: 0x00009CFD, - 16304: 0x00009CFF, - 16305: 0x00009CF7, - 16306: 0x00009D07, - 16307: 0x00009D00, - 16308: 0x00009CF9, - 16309: 0x00009CFB, - 16310: 0x00009D08, - 16311: 0x00009D05, - 16312: 0x00009D04, - 16313: 0x00009E83, - 16314: 0x00009ED3, - 16315: 0x00009F0F, - 16316: 0x00009F10, - 16317: 0x0000511C, - 16318: 0x00005113, - 16319: 0x00005117, - 16320: 0x0000511A, - 16321: 0x00005111, - 16322: 0x000051DE, - 16323: 0x00005334, - 16324: 0x000053E1, - 16325: 0x00005670, - 16326: 0x00005660, - 16327: 0x0000566E, - 16328: 0x00005673, - 16329: 0x00005666, - 16330: 0x00005663, - 16331: 0x0000566D, - 16332: 0x00005672, - 16333: 0x0000565E, - 16334: 0x00005677, - 16335: 0x0000571C, - 16336: 0x0000571B, - 16337: 0x000058C8, - 16338: 0x000058BD, - 16339: 0x000058C9, - 16340: 0x000058BF, - 16341: 0x000058BA, - 16342: 0x000058C2, - 16343: 0x000058BC, - 16344: 0x000058C6, - 16345: 0x00005B17, - 16346: 0x00005B19, - 16347: 0x00005B1B, - 16348: 0x00005B21, - 16349: 0x00005B14, - 16350: 0x00005B13, - 16351: 0x00005B10, - 16352: 0x00005B16, - 16353: 0x00005B28, - 16354: 0x00005B1A, - 16355: 0x00005B20, - 16356: 0x00005B1E, - 16357: 0x00005BEF, - 16358: 0x00005DAC, - 16359: 0x00005DB1, - 16360: 0x00005DA9, - 16361: 0x00005DA7, - 16362: 0x00005DB5, - 16363: 0x00005DB0, - 16364: 0x00005DAE, - 16365: 0x00005DAA, - 16366: 0x00005DA8, - 16367: 0x00005DB2, - 16368: 0x00005DAD, - 16369: 0x00005DAF, - 16370: 0x00005DB4, - 16371: 0x00005E67, - 16372: 0x00005E68, - 16373: 0x00005E66, - 16374: 0x00005E6F, - 16375: 0x00005EE9, - 16376: 0x00005EE7, - 16377: 0x00005EE6, - 16378: 0x00005EE8, - 16379: 0x00005EE5, - 16380: 0x00005F4B, - 16381: 0x00005FBC, - 16382: 0x0000619D, - 16383: 0x000061A8, - 16384: 0x00006196, - 16385: 0x000061C5, - 16386: 0x000061B4, - 16387: 0x000061C6, - 16388: 0x000061C1, - 16389: 0x000061CC, - 16390: 0x000061BA, - 16391: 0x000061BF, - 16392: 0x000061B8, - 16393: 0x0000618C, - 16394: 0x000064D7, - 16395: 0x000064D6, - 16396: 0x000064D0, - 16397: 0x000064CF, - 16398: 0x000064C9, - 16399: 0x000064BD, - 16400: 0x00006489, - 16401: 0x000064C3, - 16402: 0x000064DB, - 16403: 0x000064F3, - 16404: 0x000064D9, - 16405: 0x00006533, - 16406: 0x0000657F, - 16407: 0x0000657C, - 16408: 0x000065A2, - 16409: 0x000066C8, - 16410: 0x000066BE, - 16411: 0x000066C0, - 16412: 0x000066CA, - 16413: 0x000066CB, - 16414: 0x000066CF, - 16415: 0x000066BD, - 16416: 0x000066BB, - 16417: 0x000066BA, - 16418: 0x000066CC, - 16419: 0x00006723, - 16420: 0x00006A34, - 16421: 0x00006A66, - 16422: 0x00006A49, - 16423: 0x00006A67, - 16424: 0x00006A32, - 16425: 0x00006A68, - 16426: 0x00006A3E, - 16427: 0x00006A5D, - 16428: 0x00006A6D, - 16429: 0x00006A76, - 16430: 0x00006A5B, - 16431: 0x00006A51, - 16432: 0x00006A28, - 16433: 0x00006A5A, - 16434: 0x00006A3B, - 16435: 0x00006A3F, - 16436: 0x00006A41, - 16437: 0x00006A6A, - 16438: 0x00006A64, - 16439: 0x00006A50, - 16440: 0x00006A4F, - 16441: 0x00006A54, - 16442: 0x00006A6F, - 16443: 0x00006A69, - 16444: 0x00006A60, - 16445: 0x00006A3C, - 16446: 0x00006A5E, - 16447: 0x00006A56, - 16448: 0x00006A55, - 16449: 0x00006A4D, - 16450: 0x00006A4E, - 16451: 0x00006A46, - 16452: 0x00006B55, - 16453: 0x00006B54, - 16454: 0x00006B56, - 16455: 0x00006BA7, - 16456: 0x00006BAA, - 16457: 0x00006BAB, - 16458: 0x00006BC8, - 16459: 0x00006BC7, - 16460: 0x00006C04, - 16461: 0x00006C03, - 16462: 0x00006C06, - 16463: 0x00006FAD, - 16464: 0x00006FCB, - 16465: 0x00006FA3, - 16466: 0x00006FC7, - 16467: 0x00006FBC, - 16468: 0x00006FCE, - 16469: 0x00006FC8, - 16470: 0x00006F5E, - 16471: 0x00006FC4, - 16472: 0x00006FBD, - 16473: 0x00006F9E, - 16474: 0x00006FCA, - 16475: 0x00006FA8, - 16476: 0x00007004, - 16477: 0x00006FA5, - 16478: 0x00006FAE, - 16479: 0x00006FBA, - 16480: 0x00006FAC, - 16481: 0x00006FAA, - 16482: 0x00006FCF, - 16483: 0x00006FBF, - 16484: 0x00006FB8, - 16485: 0x00006FA2, - 16486: 0x00006FC9, - 16487: 0x00006FAB, - 16488: 0x00006FCD, - 16489: 0x00006FAF, - 16490: 0x00006FB2, - 16491: 0x00006FB0, - 16492: 0x000071C5, - 16493: 0x000071C2, - 16494: 0x000071BF, - 16495: 0x000071B8, - 16496: 0x000071D6, - 16497: 0x000071C0, - 16498: 0x000071C1, - 16499: 0x000071CB, - 16500: 0x000071D4, - 16501: 0x000071CA, - 16502: 0x000071C7, - 16503: 0x000071CF, - 16504: 0x000071BD, - 16505: 0x000071D8, - 16506: 0x000071BC, - 16507: 0x000071C6, - 16508: 0x000071DA, - 16509: 0x000071DB, - 16510: 0x0000729D, - 16511: 0x0000729E, - 16512: 0x00007369, - 16513: 0x00007366, - 16514: 0x00007367, - 16515: 0x0000736C, - 16516: 0x00007365, - 16517: 0x0000736B, - 16518: 0x0000736A, - 16519: 0x0000747F, - 16520: 0x0000749A, - 16521: 0x000074A0, - 16522: 0x00007494, - 16523: 0x00007492, - 16524: 0x00007495, - 16525: 0x000074A1, - 16526: 0x0000750B, - 16527: 0x00007580, - 16528: 0x0000762F, - 16529: 0x0000762D, - 16530: 0x00007631, - 16531: 0x0000763D, - 16532: 0x00007633, - 16533: 0x0000763C, - 16534: 0x00007635, - 16535: 0x00007632, - 16536: 0x00007630, - 16537: 0x000076BB, - 16538: 0x000076E6, - 16539: 0x0000779A, - 16540: 0x0000779D, - 16541: 0x000077A1, - 16542: 0x0000779C, - 16543: 0x0000779B, - 16544: 0x000077A2, - 16545: 0x000077A3, - 16546: 0x00007795, - 16547: 0x00007799, - 16548: 0x00007797, - 16549: 0x000078DD, - 16550: 0x000078E9, - 16551: 0x000078E5, - 16552: 0x000078EA, - 16553: 0x000078DE, - 16554: 0x000078E3, - 16555: 0x000078DB, - 16556: 0x000078E1, - 16557: 0x000078E2, - 16558: 0x000078ED, - 16559: 0x000078DF, - 16560: 0x000078E0, - 16561: 0x000079A4, - 16562: 0x00007A44, - 16563: 0x00007A48, - 16564: 0x00007A47, - 16565: 0x00007AB6, - 16566: 0x00007AB8, - 16567: 0x00007AB5, - 16568: 0x00007AB1, - 16569: 0x00007AB7, - 16570: 0x00007BDE, - 16571: 0x00007BE3, - 16572: 0x00007BE7, - 16573: 0x00007BDD, - 16574: 0x00007BD5, - 16575: 0x00007BE5, - 16576: 0x00007BDA, - 16577: 0x00007BE8, - 16578: 0x00007BF9, - 16579: 0x00007BD4, - 16580: 0x00007BEA, - 16581: 0x00007BE2, - 16582: 0x00007BDC, - 16583: 0x00007BEB, - 16584: 0x00007BD8, - 16585: 0x00007BDF, - 16586: 0x00007CD2, - 16587: 0x00007CD4, - 16588: 0x00007CD7, - 16589: 0x00007CD0, - 16590: 0x00007CD1, - 16591: 0x00007E12, - 16592: 0x00007E21, - 16593: 0x00007E17, - 16594: 0x00007E0C, - 16595: 0x00007E1F, - 16596: 0x00007E20, - 16597: 0x00007E13, - 16598: 0x00007E0E, - 16599: 0x00007E1C, - 16600: 0x00007E15, - 16601: 0x00007E1A, - 16602: 0x00007E22, - 16603: 0x00007E0B, - 16604: 0x00007E0F, - 16605: 0x00007E16, - 16606: 0x00007E0D, - 16607: 0x00007E14, - 16608: 0x00007E25, - 16609: 0x00007E24, - 16610: 0x00007F43, - 16611: 0x00007F7B, - 16612: 0x00007F7C, - 16613: 0x00007F7A, - 16614: 0x00007FB1, - 16615: 0x00007FEF, - 16616: 0x0000802A, - 16617: 0x00008029, - 16618: 0x0000806C, - 16619: 0x000081B1, - 16620: 0x000081A6, - 16621: 0x000081AE, - 16622: 0x000081B9, - 16623: 0x000081B5, - 16624: 0x000081AB, - 16625: 0x000081B0, - 16626: 0x000081AC, - 16627: 0x000081B4, - 16628: 0x000081B2, - 16629: 0x000081B7, - 16630: 0x000081A7, - 16631: 0x000081F2, - 16632: 0x00008255, - 16633: 0x00008256, - 16634: 0x00008257, - 16635: 0x00008556, - 16636: 0x00008545, - 16637: 0x0000856B, - 16638: 0x0000854D, - 16639: 0x00008553, - 16640: 0x00008561, - 16641: 0x00008558, - 16642: 0x00008540, - 16643: 0x00008546, - 16644: 0x00008564, - 16645: 0x00008541, - 16646: 0x00008562, - 16647: 0x00008544, - 16648: 0x00008551, - 16649: 0x00008547, - 16650: 0x00008563, - 16651: 0x0000853E, - 16652: 0x0000855B, - 16653: 0x00008571, - 16654: 0x0000854E, - 16655: 0x0000856E, - 16656: 0x00008575, - 16657: 0x00008555, - 16658: 0x00008567, - 16659: 0x00008560, - 16660: 0x0000858C, - 16661: 0x00008566, - 16662: 0x0000855D, - 16663: 0x00008554, - 16664: 0x00008565, - 16665: 0x0000856C, - 16666: 0x00008663, - 16667: 0x00008665, - 16668: 0x00008664, - 16669: 0x0000879B, - 16670: 0x0000878F, - 16671: 0x00008797, - 16672: 0x00008793, - 16673: 0x00008792, - 16674: 0x00008788, - 16675: 0x00008781, - 16676: 0x00008796, - 16677: 0x00008798, - 16678: 0x00008779, - 16679: 0x00008787, - 16680: 0x000087A3, - 16681: 0x00008785, - 16682: 0x00008790, - 16683: 0x00008791, - 16684: 0x0000879D, - 16685: 0x00008784, - 16686: 0x00008794, - 16687: 0x0000879C, - 16688: 0x0000879A, - 16689: 0x00008789, - 16690: 0x0000891E, - 16691: 0x00008926, - 16692: 0x00008930, - 16693: 0x0000892D, - 16694: 0x0000892E, - 16695: 0x00008927, - 16696: 0x00008931, - 16697: 0x00008922, - 16698: 0x00008929, - 16699: 0x00008923, - 16700: 0x0000892F, - 16701: 0x0000892C, - 16702: 0x0000891F, - 16703: 0x000089F1, - 16704: 0x00008AE0, - 16705: 0x00008AE2, - 16706: 0x00008AF2, - 16707: 0x00008AF4, - 16708: 0x00008AF5, - 16709: 0x00008ADD, - 16710: 0x00008B14, - 16711: 0x00008AE4, - 16712: 0x00008ADF, - 16713: 0x00008AF0, - 16714: 0x00008AC8, - 16715: 0x00008ADE, - 16716: 0x00008AE1, - 16717: 0x00008AE8, - 16718: 0x00008AFF, - 16719: 0x00008AEF, - 16720: 0x00008AFB, - 16721: 0x00008C91, - 16722: 0x00008C92, - 16723: 0x00008C90, - 16724: 0x00008CF5, - 16725: 0x00008CEE, - 16726: 0x00008CF1, - 16727: 0x00008CF0, - 16728: 0x00008CF3, - 16729: 0x00008D6C, - 16730: 0x00008D6E, - 16731: 0x00008DA5, - 16732: 0x00008DA7, - 16733: 0x00008E33, - 16734: 0x00008E3E, - 16735: 0x00008E38, - 16736: 0x00008E40, - 16737: 0x00008E45, - 16738: 0x00008E36, - 16739: 0x00008E3C, - 16740: 0x00008E3D, - 16741: 0x00008E41, - 16742: 0x00008E30, - 16743: 0x00008E3F, - 16744: 0x00008EBD, - 16745: 0x00008F36, - 16746: 0x00008F2E, - 16747: 0x00008F35, - 16748: 0x00008F32, - 16749: 0x00008F39, - 16750: 0x00008F37, - 16751: 0x00008F34, - 16752: 0x00009076, - 16753: 0x00009079, - 16754: 0x0000907B, - 16755: 0x00009086, - 16756: 0x000090FA, - 16757: 0x00009133, - 16758: 0x00009135, - 16759: 0x00009136, - 16760: 0x00009193, - 16761: 0x00009190, - 16762: 0x00009191, - 16763: 0x0000918D, - 16764: 0x0000918F, - 16765: 0x00009327, - 16766: 0x0000931E, - 16767: 0x00009308, - 16768: 0x0000931F, - 16769: 0x00009306, - 16770: 0x0000930F, - 16771: 0x0000937A, - 16772: 0x00009338, - 16773: 0x0000933C, - 16774: 0x0000931B, - 16775: 0x00009323, - 16776: 0x00009312, - 16777: 0x00009301, - 16778: 0x00009346, - 16779: 0x0000932D, - 16780: 0x0000930E, - 16781: 0x0000930D, - 16782: 0x000092CB, - 16783: 0x0000931D, - 16784: 0x000092FA, - 16785: 0x00009325, - 16786: 0x00009313, - 16787: 0x000092F9, - 16788: 0x000092F7, - 16789: 0x00009334, - 16790: 0x00009302, - 16791: 0x00009324, - 16792: 0x000092FF, - 16793: 0x00009329, - 16794: 0x00009339, - 16795: 0x00009335, - 16796: 0x0000932A, - 16797: 0x00009314, - 16798: 0x0000930C, - 16799: 0x0000930B, - 16800: 0x000092FE, - 16801: 0x00009309, - 16802: 0x00009300, - 16803: 0x000092FB, - 16804: 0x00009316, - 16805: 0x000095BC, - 16806: 0x000095CD, - 16807: 0x000095BE, - 16808: 0x000095B9, - 16809: 0x000095BA, - 16810: 0x000095B6, - 16811: 0x000095BF, - 16812: 0x000095B5, - 16813: 0x000095BD, - 16814: 0x000096A9, - 16815: 0x000096D4, - 16816: 0x0000970B, - 16817: 0x00009712, - 16818: 0x00009710, - 16819: 0x00009799, - 16820: 0x00009797, - 16821: 0x00009794, - 16822: 0x000097F0, - 16823: 0x000097F8, - 16824: 0x00009835, - 16825: 0x0000982F, - 16826: 0x00009832, - 16827: 0x00009924, - 16828: 0x0000991F, - 16829: 0x00009927, - 16830: 0x00009929, - 16831: 0x0000999E, - 16832: 0x000099EE, - 16833: 0x000099EC, - 16834: 0x000099E5, - 16835: 0x000099E4, - 16836: 0x000099F0, - 16837: 0x000099E3, - 16838: 0x000099EA, - 16839: 0x000099E9, - 16840: 0x000099E7, - 16841: 0x00009AB9, - 16842: 0x00009ABF, - 16843: 0x00009AB4, - 16844: 0x00009ABB, - 16845: 0x00009AF6, - 16846: 0x00009AFA, - 16847: 0x00009AF9, - 16848: 0x00009AF7, - 16849: 0x00009B33, - 16850: 0x00009B80, - 16851: 0x00009B85, - 16852: 0x00009B87, - 16853: 0x00009B7C, - 16854: 0x00009B7E, - 16855: 0x00009B7B, - 16856: 0x00009B82, - 16857: 0x00009B93, - 16858: 0x00009B92, - 16859: 0x00009B90, - 16860: 0x00009B7A, - 16861: 0x00009B95, - 16862: 0x00009B7D, - 16863: 0x00009B88, - 16864: 0x00009D25, - 16865: 0x00009D17, - 16866: 0x00009D20, - 16867: 0x00009D1E, - 16868: 0x00009D14, - 16869: 0x00009D29, - 16870: 0x00009D1D, - 16871: 0x00009D18, - 16872: 0x00009D22, - 16873: 0x00009D10, - 16874: 0x00009D19, - 16875: 0x00009D1F, - 16876: 0x00009E88, - 16877: 0x00009E86, - 16878: 0x00009E87, - 16879: 0x00009EAE, - 16880: 0x00009EAD, - 16881: 0x00009ED5, - 16882: 0x00009ED6, - 16883: 0x00009EFA, - 16884: 0x00009F12, - 16885: 0x00009F3D, - 16886: 0x00005126, - 16887: 0x00005125, - 16888: 0x00005122, - 16889: 0x00005124, - 16890: 0x00005120, - 16891: 0x00005129, - 16892: 0x000052F4, - 16893: 0x00005693, - 16894: 0x0000568C, - 16895: 0x0000568D, - 16896: 0x00005686, - 16897: 0x00005684, - 16898: 0x00005683, - 16899: 0x0000567E, - 16900: 0x00005682, - 16901: 0x0000567F, - 16902: 0x00005681, - 16903: 0x000058D6, - 16904: 0x000058D4, - 16905: 0x000058CF, - 16906: 0x000058D2, - 16907: 0x00005B2D, - 16908: 0x00005B25, - 16909: 0x00005B32, - 16910: 0x00005B23, - 16911: 0x00005B2C, - 16912: 0x00005B27, - 16913: 0x00005B26, - 16914: 0x00005B2F, - 16915: 0x00005B2E, - 16916: 0x00005B7B, - 16917: 0x00005BF1, - 16918: 0x00005BF2, - 16919: 0x00005DB7, - 16920: 0x00005E6C, - 16921: 0x00005E6A, - 16922: 0x00005FBE, - 16923: 0x00005FBB, - 16924: 0x000061C3, - 16925: 0x000061B5, - 16926: 0x000061BC, - 16927: 0x000061E7, - 16928: 0x000061E0, - 16929: 0x000061E5, - 16930: 0x000061E4, - 16931: 0x000061E8, - 16932: 0x000061DE, - 16933: 0x000064EF, - 16934: 0x000064E9, - 16935: 0x000064E3, - 16936: 0x000064EB, - 16937: 0x000064E4, - 16938: 0x000064E8, - 16939: 0x00006581, - 16940: 0x00006580, - 16941: 0x000065B6, - 16942: 0x000065DA, - 16943: 0x000066D2, - 16944: 0x00006A8D, - 16945: 0x00006A96, - 16946: 0x00006A81, - 16947: 0x00006AA5, - 16948: 0x00006A89, - 16949: 0x00006A9F, - 16950: 0x00006A9B, - 16951: 0x00006AA1, - 16952: 0x00006A9E, - 16953: 0x00006A87, - 16954: 0x00006A93, - 16955: 0x00006A8E, - 16956: 0x00006A95, - 16957: 0x00006A83, - 16958: 0x00006AA8, - 16959: 0x00006AA4, - 16960: 0x00006A91, - 16961: 0x00006A7F, - 16962: 0x00006AA6, - 16963: 0x00006A9A, - 16964: 0x00006A85, - 16965: 0x00006A8C, - 16966: 0x00006A92, - 16967: 0x00006B5B, - 16968: 0x00006BAD, - 16969: 0x00006C09, - 16970: 0x00006FCC, - 16971: 0x00006FA9, - 16972: 0x00006FF4, - 16973: 0x00006FD4, - 16974: 0x00006FE3, - 16975: 0x00006FDC, - 16976: 0x00006FED, - 16977: 0x00006FE7, - 16978: 0x00006FE6, - 16979: 0x00006FDE, - 16980: 0x00006FF2, - 16981: 0x00006FDD, - 16982: 0x00006FE2, - 16983: 0x00006FE8, - 16984: 0x000071E1, - 16985: 0x000071F1, - 16986: 0x000071E8, - 16987: 0x000071F2, - 16988: 0x000071E4, - 16989: 0x000071F0, - 16990: 0x000071E2, - 16991: 0x00007373, - 16992: 0x0000736E, - 16993: 0x0000736F, - 16994: 0x00007497, - 16995: 0x000074B2, - 16996: 0x000074AB, - 16997: 0x00007490, - 16998: 0x000074AA, - 16999: 0x000074AD, - 17000: 0x000074B1, - 17001: 0x000074A5, - 17002: 0x000074AF, - 17003: 0x00007510, - 17004: 0x00007511, - 17005: 0x00007512, - 17006: 0x0000750F, - 17007: 0x00007584, - 17008: 0x00007643, - 17009: 0x00007648, - 17010: 0x00007649, - 17011: 0x00007647, - 17012: 0x000076A4, - 17013: 0x000076E9, - 17014: 0x000077B5, - 17015: 0x000077AB, - 17016: 0x000077B2, - 17017: 0x000077B7, - 17018: 0x000077B6, - 17019: 0x000077B4, - 17020: 0x000077B1, - 17021: 0x000077A8, - 17022: 0x000077F0, - 17023: 0x000078F3, - 17024: 0x000078FD, - 17025: 0x00007902, - 17026: 0x000078FB, - 17027: 0x000078FC, - 17028: 0x000078F2, - 17029: 0x00007905, - 17030: 0x000078F9, - 17031: 0x000078FE, - 17032: 0x00007904, - 17033: 0x000079AB, - 17034: 0x000079A8, - 17035: 0x00007A5C, - 17036: 0x00007A5B, - 17037: 0x00007A56, - 17038: 0x00007A58, - 17039: 0x00007A54, - 17040: 0x00007A5A, - 17041: 0x00007ABE, - 17042: 0x00007AC0, - 17043: 0x00007AC1, - 17044: 0x00007C05, - 17045: 0x00007C0F, - 17046: 0x00007BF2, - 17047: 0x00007C00, - 17048: 0x00007BFF, - 17049: 0x00007BFB, - 17050: 0x00007C0E, - 17051: 0x00007BF4, - 17052: 0x00007C0B, - 17053: 0x00007BF3, - 17054: 0x00007C02, - 17055: 0x00007C09, - 17056: 0x00007C03, - 17057: 0x00007C01, - 17058: 0x00007BF8, - 17059: 0x00007BFD, - 17060: 0x00007C06, - 17061: 0x00007BF0, - 17062: 0x00007BF1, - 17063: 0x00007C10, - 17064: 0x00007C0A, - 17065: 0x00007CE8, - 17066: 0x00007E2D, - 17067: 0x00007E3C, - 17068: 0x00007E42, - 17069: 0x00007E33, - 17070: 0x00009848, - 17071: 0x00007E38, - 17072: 0x00007E2A, - 17073: 0x00007E49, - 17074: 0x00007E40, - 17075: 0x00007E47, - 17076: 0x00007E29, - 17077: 0x00007E4C, - 17078: 0x00007E30, - 17079: 0x00007E3B, - 17080: 0x00007E36, - 17081: 0x00007E44, - 17082: 0x00007E3A, - 17083: 0x00007F45, - 17084: 0x00007F7F, - 17085: 0x00007F7E, - 17086: 0x00007F7D, - 17087: 0x00007FF4, - 17088: 0x00007FF2, - 17089: 0x0000802C, - 17090: 0x000081BB, - 17091: 0x000081C4, - 17092: 0x000081CC, - 17093: 0x000081CA, - 17094: 0x000081C5, - 17095: 0x000081C7, - 17096: 0x000081BC, - 17097: 0x000081E9, - 17098: 0x0000825B, - 17099: 0x0000825A, - 17100: 0x0000825C, - 17101: 0x00008583, - 17102: 0x00008580, - 17103: 0x0000858F, - 17104: 0x000085A7, - 17105: 0x00008595, - 17106: 0x000085A0, - 17107: 0x0000858B, - 17108: 0x000085A3, - 17109: 0x0000857B, - 17110: 0x000085A4, - 17111: 0x0000859A, - 17112: 0x0000859E, - 17113: 0x00008577, - 17114: 0x0000857C, - 17115: 0x00008589, - 17116: 0x000085A1, - 17117: 0x0000857A, - 17118: 0x00008578, - 17119: 0x00008557, - 17120: 0x0000858E, - 17121: 0x00008596, - 17122: 0x00008586, - 17123: 0x0000858D, - 17124: 0x00008599, - 17125: 0x0000859D, - 17126: 0x00008581, - 17127: 0x000085A2, - 17128: 0x00008582, - 17129: 0x00008588, - 17130: 0x00008585, - 17131: 0x00008579, - 17132: 0x00008576, - 17133: 0x00008598, - 17134: 0x00008590, - 17135: 0x0000859F, - 17136: 0x00008668, - 17137: 0x000087BE, - 17138: 0x000087AA, - 17139: 0x000087AD, - 17140: 0x000087C5, - 17141: 0x000087B0, - 17142: 0x000087AC, - 17143: 0x000087B9, - 17144: 0x000087B5, - 17145: 0x000087BC, - 17146: 0x000087AE, - 17147: 0x000087C9, - 17148: 0x000087C3, - 17149: 0x000087C2, - 17150: 0x000087CC, - 17151: 0x000087B7, - 17152: 0x000087AF, - 17153: 0x000087C4, - 17154: 0x000087CA, - 17155: 0x000087B4, - 17156: 0x000087B6, - 17157: 0x000087BF, - 17158: 0x000087B8, - 17159: 0x000087BD, - 17160: 0x000087DE, - 17161: 0x000087B2, - 17162: 0x00008935, - 17163: 0x00008933, - 17164: 0x0000893C, - 17165: 0x0000893E, - 17166: 0x00008941, - 17167: 0x00008952, - 17168: 0x00008937, - 17169: 0x00008942, - 17170: 0x000089AD, - 17171: 0x000089AF, - 17172: 0x000089AE, - 17173: 0x000089F2, - 17174: 0x000089F3, - 17175: 0x00008B1E, - 17176: 0x00008B18, - 17177: 0x00008B16, - 17178: 0x00008B11, - 17179: 0x00008B05, - 17180: 0x00008B0B, - 17181: 0x00008B22, - 17182: 0x00008B0F, - 17183: 0x00008B12, - 17184: 0x00008B15, - 17185: 0x00008B07, - 17186: 0x00008B0D, - 17187: 0x00008B08, - 17188: 0x00008B06, - 17189: 0x00008B1C, - 17190: 0x00008B13, - 17191: 0x00008B1A, - 17192: 0x00008C4F, - 17193: 0x00008C70, - 17194: 0x00008C72, - 17195: 0x00008C71, - 17196: 0x00008C6F, - 17197: 0x00008C95, - 17198: 0x00008C94, - 17199: 0x00008CF9, - 17200: 0x00008D6F, - 17201: 0x00008E4E, - 17202: 0x00008E4D, - 17203: 0x00008E53, - 17204: 0x00008E50, - 17205: 0x00008E4C, - 17206: 0x00008E47, - 17207: 0x00008F43, - 17208: 0x00008F40, - 17209: 0x00009085, - 17210: 0x0000907E, - 17211: 0x00009138, - 17212: 0x0000919A, - 17213: 0x000091A2, - 17214: 0x0000919B, - 17215: 0x00009199, - 17216: 0x0000919F, - 17217: 0x000091A1, - 17218: 0x0000919D, - 17219: 0x000091A0, - 17220: 0x000093A1, - 17221: 0x00009383, - 17222: 0x000093AF, - 17223: 0x00009364, - 17224: 0x00009356, - 17225: 0x00009347, - 17226: 0x0000937C, - 17227: 0x00009358, - 17228: 0x0000935C, - 17229: 0x00009376, - 17230: 0x00009349, - 17231: 0x00009350, - 17232: 0x00009351, - 17233: 0x00009360, - 17234: 0x0000936D, - 17235: 0x0000938F, - 17236: 0x0000934C, - 17237: 0x0000936A, - 17238: 0x00009379, - 17239: 0x00009357, - 17240: 0x00009355, - 17241: 0x00009352, - 17242: 0x0000934F, - 17243: 0x00009371, - 17244: 0x00009377, - 17245: 0x0000937B, - 17246: 0x00009361, - 17247: 0x0000935E, - 17248: 0x00009363, - 17249: 0x00009367, - 17250: 0x00009380, - 17251: 0x0000934E, - 17252: 0x00009359, - 17253: 0x000095C7, - 17254: 0x000095C0, - 17255: 0x000095C9, - 17256: 0x000095C3, - 17257: 0x000095C5, - 17258: 0x000095B7, - 17259: 0x000096AE, - 17260: 0x000096B0, - 17261: 0x000096AC, - 17262: 0x00009720, - 17263: 0x0000971F, - 17264: 0x00009718, - 17265: 0x0000971D, - 17266: 0x00009719, - 17267: 0x0000979A, - 17268: 0x000097A1, - 17269: 0x0000979C, - 17270: 0x0000979E, - 17271: 0x0000979D, - 17272: 0x000097D5, - 17273: 0x000097D4, - 17274: 0x000097F1, - 17275: 0x00009841, - 17276: 0x00009844, - 17277: 0x0000984A, - 17278: 0x00009849, - 17279: 0x00009845, - 17280: 0x00009843, - 17281: 0x00009925, - 17282: 0x0000992B, - 17283: 0x0000992C, - 17284: 0x0000992A, - 17285: 0x00009933, - 17286: 0x00009932, - 17287: 0x0000992F, - 17288: 0x0000992D, - 17289: 0x00009931, - 17290: 0x00009930, - 17291: 0x00009998, - 17292: 0x000099A3, - 17293: 0x000099A1, - 17294: 0x00009A02, - 17295: 0x000099FA, - 17296: 0x000099F4, - 17297: 0x000099F7, - 17298: 0x000099F9, - 17299: 0x000099F8, - 17300: 0x000099F6, - 17301: 0x000099FB, - 17302: 0x000099FD, - 17303: 0x000099FE, - 17304: 0x000099FC, - 17305: 0x00009A03, - 17306: 0x00009ABE, - 17307: 0x00009AFE, - 17308: 0x00009AFD, - 17309: 0x00009B01, - 17310: 0x00009AFC, - 17311: 0x00009B48, - 17312: 0x00009B9A, - 17313: 0x00009BA8, - 17314: 0x00009B9E, - 17315: 0x00009B9B, - 17316: 0x00009BA6, - 17317: 0x00009BA1, - 17318: 0x00009BA5, - 17319: 0x00009BA4, - 17320: 0x00009B86, - 17321: 0x00009BA2, - 17322: 0x00009BA0, - 17323: 0x00009BAF, - 17324: 0x00009D33, - 17325: 0x00009D41, - 17326: 0x00009D67, - 17327: 0x00009D36, - 17328: 0x00009D2E, - 17329: 0x00009D2F, - 17330: 0x00009D31, - 17331: 0x00009D38, - 17332: 0x00009D30, - 17333: 0x00009D45, - 17334: 0x00009D42, - 17335: 0x00009D43, - 17336: 0x00009D3E, - 17337: 0x00009D37, - 17338: 0x00009D40, - 17339: 0x00009D3D, - 17340: 0x00007FF5, - 17341: 0x00009D2D, - 17342: 0x00009E8A, - 17343: 0x00009E89, - 17344: 0x00009E8D, - 17345: 0x00009EB0, - 17346: 0x00009EC8, - 17347: 0x00009EDA, - 17348: 0x00009EFB, - 17349: 0x00009EFF, - 17350: 0x00009F24, - 17351: 0x00009F23, - 17352: 0x00009F22, - 17353: 0x00009F54, - 17354: 0x00009FA0, - 17355: 0x00005131, - 17356: 0x0000512D, - 17357: 0x0000512E, - 17358: 0x00005698, - 17359: 0x0000569C, - 17360: 0x00005697, - 17361: 0x0000569A, - 17362: 0x0000569D, - 17363: 0x00005699, - 17364: 0x00005970, - 17365: 0x00005B3C, - 17366: 0x00005C69, - 17367: 0x00005C6A, - 17368: 0x00005DC0, - 17369: 0x00005E6D, - 17370: 0x00005E6E, - 17371: 0x000061D8, - 17372: 0x000061DF, - 17373: 0x000061ED, - 17374: 0x000061EE, - 17375: 0x000061F1, - 17376: 0x000061EA, - 17377: 0x000061F0, - 17378: 0x000061EB, - 17379: 0x000061D6, - 17380: 0x000061E9, - 17381: 0x000064FF, - 17382: 0x00006504, - 17383: 0x000064FD, - 17384: 0x000064F8, - 17385: 0x00006501, - 17386: 0x00006503, - 17387: 0x000064FC, - 17388: 0x00006594, - 17389: 0x000065DB, - 17390: 0x000066DA, - 17391: 0x000066DB, - 17392: 0x000066D8, - 17393: 0x00006AC5, - 17394: 0x00006AB9, - 17395: 0x00006ABD, - 17396: 0x00006AE1, - 17397: 0x00006AC6, - 17398: 0x00006ABA, - 17399: 0x00006AB6, - 17400: 0x00006AB7, - 17401: 0x00006AC7, - 17402: 0x00006AB4, - 17403: 0x00006AAD, - 17404: 0x00006B5E, - 17405: 0x00006BC9, - 17406: 0x00006C0B, - 17407: 0x00007007, - 17408: 0x0000700C, - 17409: 0x0000700D, - 17410: 0x00007001, - 17411: 0x00007005, - 17412: 0x00007014, - 17413: 0x0000700E, - 17414: 0x00006FFF, - 17415: 0x00007000, - 17416: 0x00006FFB, - 17417: 0x00007026, - 17418: 0x00006FFC, - 17419: 0x00006FF7, - 17420: 0x0000700A, - 17421: 0x00007201, - 17422: 0x000071FF, - 17423: 0x000071F9, - 17424: 0x00007203, - 17425: 0x000071FD, - 17426: 0x00007376, - 17427: 0x000074B8, - 17428: 0x000074C0, - 17429: 0x000074B5, - 17430: 0x000074C1, - 17431: 0x000074BE, - 17432: 0x000074B6, - 17433: 0x000074BB, - 17434: 0x000074C2, - 17435: 0x00007514, - 17436: 0x00007513, - 17437: 0x0000765C, - 17438: 0x00007664, - 17439: 0x00007659, - 17440: 0x00007650, - 17441: 0x00007653, - 17442: 0x00007657, - 17443: 0x0000765A, - 17444: 0x000076A6, - 17445: 0x000076BD, - 17446: 0x000076EC, - 17447: 0x000077C2, - 17448: 0x000077BA, - 17449: 0x000078FF, - 17450: 0x0000790C, - 17451: 0x00007913, - 17452: 0x00007914, - 17453: 0x00007909, - 17454: 0x00007910, - 17455: 0x00007912, - 17456: 0x00007911, - 17457: 0x000079AD, - 17458: 0x000079AC, - 17459: 0x00007A5F, - 17460: 0x00007C1C, - 17461: 0x00007C29, - 17462: 0x00007C19, - 17463: 0x00007C20, - 17464: 0x00007C1F, - 17465: 0x00007C2D, - 17466: 0x00007C1D, - 17467: 0x00007C26, - 17468: 0x00007C28, - 17469: 0x00007C22, - 17470: 0x00007C25, - 17471: 0x00007C30, - 17472: 0x00007E5C, - 17473: 0x00007E50, - 17474: 0x00007E56, - 17475: 0x00007E63, - 17476: 0x00007E58, - 17477: 0x00007E62, - 17478: 0x00007E5F, - 17479: 0x00007E51, - 17480: 0x00007E60, - 17481: 0x00007E57, - 17482: 0x00007E53, - 17483: 0x00007FB5, - 17484: 0x00007FB3, - 17485: 0x00007FF7, - 17486: 0x00007FF8, - 17487: 0x00008075, - 17488: 0x000081D1, - 17489: 0x000081D2, - 17490: 0x000081D0, - 17491: 0x0000825F, - 17492: 0x0000825E, - 17493: 0x000085B4, - 17494: 0x000085C6, - 17495: 0x000085C0, - 17496: 0x000085C3, - 17497: 0x000085C2, - 17498: 0x000085B3, - 17499: 0x000085B5, - 17500: 0x000085BD, - 17501: 0x000085C7, - 17502: 0x000085C4, - 17503: 0x000085BF, - 17504: 0x000085CB, - 17505: 0x000085CE, - 17506: 0x000085C8, - 17507: 0x000085C5, - 17508: 0x000085B1, - 17509: 0x000085B6, - 17510: 0x000085D2, - 17511: 0x00008624, - 17512: 0x000085B8, - 17513: 0x000085B7, - 17514: 0x000085BE, - 17515: 0x00008669, - 17516: 0x000087E7, - 17517: 0x000087E6, - 17518: 0x000087E2, - 17519: 0x000087DB, - 17520: 0x000087EB, - 17521: 0x000087EA, - 17522: 0x000087E5, - 17523: 0x000087DF, - 17524: 0x000087F3, - 17525: 0x000087E4, - 17526: 0x000087D4, - 17527: 0x000087DC, - 17528: 0x000087D3, - 17529: 0x000087ED, - 17530: 0x000087D8, - 17531: 0x000087E3, - 17532: 0x000087A4, - 17533: 0x000087D7, - 17534: 0x000087D9, - 17535: 0x00008801, - 17536: 0x000087F4, - 17537: 0x000087E8, - 17538: 0x000087DD, - 17539: 0x00008953, - 17540: 0x0000894B, - 17541: 0x0000894F, - 17542: 0x0000894C, - 17543: 0x00008946, - 17544: 0x00008950, - 17545: 0x00008951, - 17546: 0x00008949, - 17547: 0x00008B2A, - 17548: 0x00008B27, - 17549: 0x00008B23, - 17550: 0x00008B33, - 17551: 0x00008B30, - 17552: 0x00008B35, - 17553: 0x00008B47, - 17554: 0x00008B2F, - 17555: 0x00008B3C, - 17556: 0x00008B3E, - 17557: 0x00008B31, - 17558: 0x00008B25, - 17559: 0x00008B37, - 17560: 0x00008B26, - 17561: 0x00008B36, - 17562: 0x00008B2E, - 17563: 0x00008B24, - 17564: 0x00008B3B, - 17565: 0x00008B3D, - 17566: 0x00008B3A, - 17567: 0x00008C42, - 17568: 0x00008C75, - 17569: 0x00008C99, - 17570: 0x00008C98, - 17571: 0x00008C97, - 17572: 0x00008CFE, - 17573: 0x00008D04, - 17574: 0x00008D02, - 17575: 0x00008D00, - 17576: 0x00008E5C, - 17577: 0x00008E62, - 17578: 0x00008E60, - 17579: 0x00008E57, - 17580: 0x00008E56, - 17581: 0x00008E5E, - 17582: 0x00008E65, - 17583: 0x00008E67, - 17584: 0x00008E5B, - 17585: 0x00008E5A, - 17586: 0x00008E61, - 17587: 0x00008E5D, - 17588: 0x00008E69, - 17589: 0x00008E54, - 17590: 0x00008F46, - 17591: 0x00008F47, - 17592: 0x00008F48, - 17593: 0x00008F4B, - 17594: 0x00009128, - 17595: 0x0000913A, - 17596: 0x0000913B, - 17597: 0x0000913E, - 17598: 0x000091A8, - 17599: 0x000091A5, - 17600: 0x000091A7, - 17601: 0x000091AF, - 17602: 0x000091AA, - 17603: 0x000093B5, - 17604: 0x0000938C, - 17605: 0x00009392, - 17606: 0x000093B7, - 17607: 0x0000939B, - 17608: 0x0000939D, - 17609: 0x00009389, - 17610: 0x000093A7, - 17611: 0x0000938E, - 17612: 0x000093AA, - 17613: 0x0000939E, - 17614: 0x000093A6, - 17615: 0x00009395, - 17616: 0x00009388, - 17617: 0x00009399, - 17618: 0x0000939F, - 17619: 0x0000938D, - 17620: 0x000093B1, - 17621: 0x00009391, - 17622: 0x000093B2, - 17623: 0x000093A4, - 17624: 0x000093A8, - 17625: 0x000093B4, - 17626: 0x000093A3, - 17627: 0x000093A5, - 17628: 0x000095D2, - 17629: 0x000095D3, - 17630: 0x000095D1, - 17631: 0x000096B3, - 17632: 0x000096D7, - 17633: 0x000096DA, - 17634: 0x00005DC2, - 17635: 0x000096DF, - 17636: 0x000096D8, - 17637: 0x000096DD, - 17638: 0x00009723, - 17639: 0x00009722, - 17640: 0x00009725, - 17641: 0x000097AC, - 17642: 0x000097AE, - 17643: 0x000097A8, - 17644: 0x000097AB, - 17645: 0x000097A4, - 17646: 0x000097AA, - 17647: 0x000097A2, - 17648: 0x000097A5, - 17649: 0x000097D7, - 17650: 0x000097D9, - 17651: 0x000097D6, - 17652: 0x000097D8, - 17653: 0x000097FA, - 17654: 0x00009850, - 17655: 0x00009851, - 17656: 0x00009852, - 17657: 0x000098B8, - 17658: 0x00009941, - 17659: 0x0000993C, - 17660: 0x0000993A, - 17661: 0x00009A0F, - 17662: 0x00009A0B, - 17663: 0x00009A09, - 17664: 0x00009A0D, - 17665: 0x00009A04, - 17666: 0x00009A11, - 17667: 0x00009A0A, - 17668: 0x00009A05, - 17669: 0x00009A07, - 17670: 0x00009A06, - 17671: 0x00009AC0, - 17672: 0x00009ADC, - 17673: 0x00009B08, - 17674: 0x00009B04, - 17675: 0x00009B05, - 17676: 0x00009B29, - 17677: 0x00009B35, - 17678: 0x00009B4A, - 17679: 0x00009B4C, - 17680: 0x00009B4B, - 17681: 0x00009BC7, - 17682: 0x00009BC6, - 17683: 0x00009BC3, - 17684: 0x00009BBF, - 17685: 0x00009BC1, - 17686: 0x00009BB5, - 17687: 0x00009BB8, - 17688: 0x00009BD3, - 17689: 0x00009BB6, - 17690: 0x00009BC4, - 17691: 0x00009BB9, - 17692: 0x00009BBD, - 17693: 0x00009D5C, - 17694: 0x00009D53, - 17695: 0x00009D4F, - 17696: 0x00009D4A, - 17697: 0x00009D5B, - 17698: 0x00009D4B, - 17699: 0x00009D59, - 17700: 0x00009D56, - 17701: 0x00009D4C, - 17702: 0x00009D57, - 17703: 0x00009D52, - 17704: 0x00009D54, - 17705: 0x00009D5F, - 17706: 0x00009D58, - 17707: 0x00009D5A, - 17708: 0x00009E8E, - 17709: 0x00009E8C, - 17710: 0x00009EDF, - 17711: 0x00009F01, - 17712: 0x00009F00, - 17713: 0x00009F16, - 17714: 0x00009F25, - 17715: 0x00009F2B, - 17716: 0x00009F2A, - 17717: 0x00009F29, - 17718: 0x00009F28, - 17719: 0x00009F4C, - 17720: 0x00009F55, - 17721: 0x00005134, - 17722: 0x00005135, - 17723: 0x00005296, - 17724: 0x000052F7, - 17725: 0x000053B4, - 17726: 0x000056AB, - 17727: 0x000056AD, - 17728: 0x000056A6, - 17729: 0x000056A7, - 17730: 0x000056AA, - 17731: 0x000056AC, - 17732: 0x000058DA, - 17733: 0x000058DD, - 17734: 0x000058DB, - 17735: 0x00005912, - 17736: 0x00005B3D, - 17737: 0x00005B3E, - 17738: 0x00005B3F, - 17739: 0x00005DC3, - 17740: 0x00005E70, - 17741: 0x00005FBF, - 17742: 0x000061FB, - 17743: 0x00006507, - 17744: 0x00006510, - 17745: 0x0000650D, - 17746: 0x00006509, - 17747: 0x0000650C, - 17748: 0x0000650E, - 17749: 0x00006584, - 17750: 0x000065DE, - 17751: 0x000065DD, - 17752: 0x000066DE, - 17753: 0x00006AE7, - 17754: 0x00006AE0, - 17755: 0x00006ACC, - 17756: 0x00006AD1, - 17757: 0x00006AD9, - 17758: 0x00006ACB, - 17759: 0x00006ADF, - 17760: 0x00006ADC, - 17761: 0x00006AD0, - 17762: 0x00006AEB, - 17763: 0x00006ACF, - 17764: 0x00006ACD, - 17765: 0x00006ADE, - 17766: 0x00006B60, - 17767: 0x00006BB0, - 17768: 0x00006C0C, - 17769: 0x00007019, - 17770: 0x00007027, - 17771: 0x00007020, - 17772: 0x00007016, - 17773: 0x0000702B, - 17774: 0x00007021, - 17775: 0x00007022, - 17776: 0x00007023, - 17777: 0x00007029, - 17778: 0x00007017, - 17779: 0x00007024, - 17780: 0x0000701C, - 17781: 0x0000702A, - 17782: 0x0000720C, - 17783: 0x0000720A, - 17784: 0x00007207, - 17785: 0x00007202, - 17786: 0x00007205, - 17787: 0x000072A5, - 17788: 0x000072A6, - 17789: 0x000072A4, - 17790: 0x000072A3, - 17791: 0x000072A1, - 17792: 0x000074CB, - 17793: 0x000074C5, - 17794: 0x000074B7, - 17795: 0x000074C3, - 17796: 0x00007516, - 17797: 0x00007660, - 17798: 0x000077C9, - 17799: 0x000077CA, - 17800: 0x000077C4, - 17801: 0x000077F1, - 17802: 0x0000791D, - 17803: 0x0000791B, - 17804: 0x00007921, - 17805: 0x0000791C, - 17806: 0x00007917, - 17807: 0x0000791E, - 17808: 0x000079B0, - 17809: 0x00007A67, - 17810: 0x00007A68, - 17811: 0x00007C33, - 17812: 0x00007C3C, - 17813: 0x00007C39, - 17814: 0x00007C2C, - 17815: 0x00007C3B, - 17816: 0x00007CEC, - 17817: 0x00007CEA, - 17818: 0x00007E76, - 17819: 0x00007E75, - 17820: 0x00007E78, - 17821: 0x00007E70, - 17822: 0x00007E77, - 17823: 0x00007E6F, - 17824: 0x00007E7A, - 17825: 0x00007E72, - 17826: 0x00007E74, - 17827: 0x00007E68, - 17828: 0x00007F4B, - 17829: 0x00007F4A, - 17830: 0x00007F83, - 17831: 0x00007F86, - 17832: 0x00007FB7, - 17833: 0x00007FFD, - 17834: 0x00007FFE, - 17835: 0x00008078, - 17836: 0x000081D7, - 17837: 0x000081D5, - 17838: 0x00008264, - 17839: 0x00008261, - 17840: 0x00008263, - 17841: 0x000085EB, - 17842: 0x000085F1, - 17843: 0x000085ED, - 17844: 0x000085D9, - 17845: 0x000085E1, - 17846: 0x000085E8, - 17847: 0x000085DA, - 17848: 0x000085D7, - 17849: 0x000085EC, - 17850: 0x000085F2, - 17851: 0x000085F8, - 17852: 0x000085D8, - 17853: 0x000085DF, - 17854: 0x000085E3, - 17855: 0x000085DC, - 17856: 0x000085D1, - 17857: 0x000085F0, - 17858: 0x000085E6, - 17859: 0x000085EF, - 17860: 0x000085DE, - 17861: 0x000085E2, - 17862: 0x00008800, - 17863: 0x000087FA, - 17864: 0x00008803, - 17865: 0x000087F6, - 17866: 0x000087F7, - 17867: 0x00008809, - 17868: 0x0000880C, - 17869: 0x0000880B, - 17870: 0x00008806, - 17871: 0x000087FC, - 17872: 0x00008808, - 17873: 0x000087FF, - 17874: 0x0000880A, - 17875: 0x00008802, - 17876: 0x00008962, - 17877: 0x0000895A, - 17878: 0x0000895B, - 17879: 0x00008957, - 17880: 0x00008961, - 17881: 0x0000895C, - 17882: 0x00008958, - 17883: 0x0000895D, - 17884: 0x00008959, - 17885: 0x00008988, - 17886: 0x000089B7, - 17887: 0x000089B6, - 17888: 0x000089F6, - 17889: 0x00008B50, - 17890: 0x00008B48, - 17891: 0x00008B4A, - 17892: 0x00008B40, - 17893: 0x00008B53, - 17894: 0x00008B56, - 17895: 0x00008B54, - 17896: 0x00008B4B, - 17897: 0x00008B55, - 17898: 0x00008B51, - 17899: 0x00008B42, - 17900: 0x00008B52, - 17901: 0x00008B57, - 17902: 0x00008C43, - 17903: 0x00008C77, - 17904: 0x00008C76, - 17905: 0x00008C9A, - 17906: 0x00008D06, - 17907: 0x00008D07, - 17908: 0x00008D09, - 17909: 0x00008DAC, - 17910: 0x00008DAA, - 17911: 0x00008DAD, - 17912: 0x00008DAB, - 17913: 0x00008E6D, - 17914: 0x00008E78, - 17915: 0x00008E73, - 17916: 0x00008E6A, - 17917: 0x00008E6F, - 17918: 0x00008E7B, - 17919: 0x00008EC2, - 17920: 0x00008F52, - 17921: 0x00008F51, - 17922: 0x00008F4F, - 17923: 0x00008F50, - 17924: 0x00008F53, - 17925: 0x00008FB4, - 17926: 0x00009140, - 17927: 0x0000913F, - 17928: 0x000091B0, - 17929: 0x000091AD, - 17930: 0x000093DE, - 17931: 0x000093C7, - 17932: 0x000093CF, - 17933: 0x000093C2, - 17934: 0x000093DA, - 17935: 0x000093D0, - 17936: 0x000093F9, - 17937: 0x000093EC, - 17938: 0x000093CC, - 17939: 0x000093D9, - 17940: 0x000093A9, - 17941: 0x000093E6, - 17942: 0x000093CA, - 17943: 0x000093D4, - 17944: 0x000093EE, - 17945: 0x000093E3, - 17946: 0x000093D5, - 17947: 0x000093C4, - 17948: 0x000093CE, - 17949: 0x000093C0, - 17950: 0x000093D2, - 17951: 0x000093E7, - 17952: 0x0000957D, - 17953: 0x000095DA, - 17954: 0x000095DB, - 17955: 0x000096E1, - 17956: 0x00009729, - 17957: 0x0000972B, - 17958: 0x0000972C, - 17959: 0x00009728, - 17960: 0x00009726, - 17961: 0x000097B3, - 17962: 0x000097B7, - 17963: 0x000097B6, - 17964: 0x000097DD, - 17965: 0x000097DE, - 17966: 0x000097DF, - 17967: 0x0000985C, - 17968: 0x00009859, - 17969: 0x0000985D, - 17970: 0x00009857, - 17971: 0x000098BF, - 17972: 0x000098BD, - 17973: 0x000098BB, - 17974: 0x000098BE, - 17975: 0x00009948, - 17976: 0x00009947, - 17977: 0x00009943, - 17978: 0x000099A6, - 17979: 0x000099A7, - 17980: 0x00009A1A, - 17981: 0x00009A15, - 17982: 0x00009A25, - 17983: 0x00009A1D, - 17984: 0x00009A24, - 17985: 0x00009A1B, - 17986: 0x00009A22, - 17987: 0x00009A20, - 17988: 0x00009A27, - 17989: 0x00009A23, - 17990: 0x00009A1E, - 17991: 0x00009A1C, - 17992: 0x00009A14, - 17993: 0x00009AC2, - 17994: 0x00009B0B, - 17995: 0x00009B0A, - 17996: 0x00009B0E, - 17997: 0x00009B0C, - 17998: 0x00009B37, - 17999: 0x00009BEA, - 18000: 0x00009BEB, - 18001: 0x00009BE0, - 18002: 0x00009BDE, - 18003: 0x00009BE4, - 18004: 0x00009BE6, - 18005: 0x00009BE2, - 18006: 0x00009BF0, - 18007: 0x00009BD4, - 18008: 0x00009BD7, - 18009: 0x00009BEC, - 18010: 0x00009BDC, - 18011: 0x00009BD9, - 18012: 0x00009BE5, - 18013: 0x00009BD5, - 18014: 0x00009BE1, - 18015: 0x00009BDA, - 18016: 0x00009D77, - 18017: 0x00009D81, - 18018: 0x00009D8A, - 18019: 0x00009D84, - 18020: 0x00009D88, - 18021: 0x00009D71, - 18022: 0x00009D80, - 18023: 0x00009D78, - 18024: 0x00009D86, - 18025: 0x00009D8B, - 18026: 0x00009D8C, - 18027: 0x00009D7D, - 18028: 0x00009D6B, - 18029: 0x00009D74, - 18030: 0x00009D75, - 18031: 0x00009D70, - 18032: 0x00009D69, - 18033: 0x00009D85, - 18034: 0x00009D73, - 18035: 0x00009D7B, - 18036: 0x00009D82, - 18037: 0x00009D6F, - 18038: 0x00009D79, - 18039: 0x00009D7F, - 18040: 0x00009D87, - 18041: 0x00009D68, - 18042: 0x00009E94, - 18043: 0x00009E91, - 18044: 0x00009EC0, - 18045: 0x00009EFC, - 18046: 0x00009F2D, - 18047: 0x00009F40, - 18048: 0x00009F41, - 18049: 0x00009F4D, - 18050: 0x00009F56, - 18051: 0x00009F57, - 18052: 0x00009F58, - 18053: 0x00005337, - 18054: 0x000056B2, - 18055: 0x000056B5, - 18056: 0x000056B3, - 18057: 0x000058E3, - 18058: 0x00005B45, - 18059: 0x00005DC6, - 18060: 0x00005DC7, - 18061: 0x00005EEE, - 18062: 0x00005EEF, - 18063: 0x00005FC0, - 18064: 0x00005FC1, - 18065: 0x000061F9, - 18066: 0x00006517, - 18067: 0x00006516, - 18068: 0x00006515, - 18069: 0x00006513, - 18070: 0x000065DF, - 18071: 0x000066E8, - 18072: 0x000066E3, - 18073: 0x000066E4, - 18074: 0x00006AF3, - 18075: 0x00006AF0, - 18076: 0x00006AEA, - 18077: 0x00006AE8, - 18078: 0x00006AF9, - 18079: 0x00006AF1, - 18080: 0x00006AEE, - 18081: 0x00006AEF, - 18082: 0x0000703C, - 18083: 0x00007035, - 18084: 0x0000702F, - 18085: 0x00007037, - 18086: 0x00007034, - 18087: 0x00007031, - 18088: 0x00007042, - 18089: 0x00007038, - 18090: 0x0000703F, - 18091: 0x0000703A, - 18092: 0x00007039, - 18093: 0x00007040, - 18094: 0x0000703B, - 18095: 0x00007033, - 18096: 0x00007041, - 18097: 0x00007213, - 18098: 0x00007214, - 18099: 0x000072A8, - 18100: 0x0000737D, - 18101: 0x0000737C, - 18102: 0x000074BA, - 18103: 0x000076AB, - 18104: 0x000076AA, - 18105: 0x000076BE, - 18106: 0x000076ED, - 18107: 0x000077CC, - 18108: 0x000077CE, - 18109: 0x000077CF, - 18110: 0x000077CD, - 18111: 0x000077F2, - 18112: 0x00007925, - 18113: 0x00007923, - 18114: 0x00007927, - 18115: 0x00007928, - 18116: 0x00007924, - 18117: 0x00007929, - 18118: 0x000079B2, - 18119: 0x00007A6E, - 18120: 0x00007A6C, - 18121: 0x00007A6D, - 18122: 0x00007AF7, - 18123: 0x00007C49, - 18124: 0x00007C48, - 18125: 0x00007C4A, - 18126: 0x00007C47, - 18127: 0x00007C45, - 18128: 0x00007CEE, - 18129: 0x00007E7B, - 18130: 0x00007E7E, - 18131: 0x00007E81, - 18132: 0x00007E80, - 18133: 0x00007FBA, - 18134: 0x00007FFF, - 18135: 0x00008079, - 18136: 0x000081DB, - 18137: 0x000081D9, - 18138: 0x0000820B, - 18139: 0x00008268, - 18140: 0x00008269, - 18141: 0x00008622, - 18142: 0x000085FF, - 18143: 0x00008601, - 18144: 0x000085FE, - 18145: 0x0000861B, - 18146: 0x00008600, - 18147: 0x000085F6, - 18148: 0x00008604, - 18149: 0x00008609, - 18150: 0x00008605, - 18151: 0x0000860C, - 18152: 0x000085FD, - 18153: 0x00008819, - 18154: 0x00008810, - 18155: 0x00008811, - 18156: 0x00008817, - 18157: 0x00008813, - 18158: 0x00008816, - 18159: 0x00008963, - 18160: 0x00008966, - 18161: 0x000089B9, - 18162: 0x000089F7, - 18163: 0x00008B60, - 18164: 0x00008B6A, - 18165: 0x00008B5D, - 18166: 0x00008B68, - 18167: 0x00008B63, - 18168: 0x00008B65, - 18169: 0x00008B67, - 18170: 0x00008B6D, - 18171: 0x00008DAE, - 18172: 0x00008E86, - 18173: 0x00008E88, - 18174: 0x00008E84, - 18175: 0x00008F59, - 18176: 0x00008F56, - 18177: 0x00008F57, - 18178: 0x00008F55, - 18179: 0x00008F58, - 18180: 0x00008F5A, - 18181: 0x0000908D, - 18182: 0x00009143, - 18183: 0x00009141, - 18184: 0x000091B7, - 18185: 0x000091B5, - 18186: 0x000091B2, - 18187: 0x000091B3, - 18188: 0x0000940B, - 18189: 0x00009413, - 18190: 0x000093FB, - 18191: 0x00009420, - 18192: 0x0000940F, - 18193: 0x00009414, - 18194: 0x000093FE, - 18195: 0x00009415, - 18196: 0x00009410, - 18197: 0x00009428, - 18198: 0x00009419, - 18199: 0x0000940D, - 18200: 0x000093F5, - 18201: 0x00009400, - 18202: 0x000093F7, - 18203: 0x00009407, - 18204: 0x0000940E, - 18205: 0x00009416, - 18206: 0x00009412, - 18207: 0x000093FA, - 18208: 0x00009409, - 18209: 0x000093F8, - 18210: 0x0000940A, - 18211: 0x000093FF, - 18212: 0x000093FC, - 18213: 0x0000940C, - 18214: 0x000093F6, - 18215: 0x00009411, - 18216: 0x00009406, - 18217: 0x000095DE, - 18218: 0x000095E0, - 18219: 0x000095DF, - 18220: 0x0000972E, - 18221: 0x0000972F, - 18222: 0x000097B9, - 18223: 0x000097BB, - 18224: 0x000097FD, - 18225: 0x000097FE, - 18226: 0x00009860, - 18227: 0x00009862, - 18228: 0x00009863, - 18229: 0x0000985F, - 18230: 0x000098C1, - 18231: 0x000098C2, - 18232: 0x00009950, - 18233: 0x0000994E, - 18234: 0x00009959, - 18235: 0x0000994C, - 18236: 0x0000994B, - 18237: 0x00009953, - 18238: 0x00009A32, - 18239: 0x00009A34, - 18240: 0x00009A31, - 18241: 0x00009A2C, - 18242: 0x00009A2A, - 18243: 0x00009A36, - 18244: 0x00009A29, - 18245: 0x00009A2E, - 18246: 0x00009A38, - 18247: 0x00009A2D, - 18248: 0x00009AC7, - 18249: 0x00009ACA, - 18250: 0x00009AC6, - 18251: 0x00009B10, - 18252: 0x00009B12, - 18253: 0x00009B11, - 18254: 0x00009C0B, - 18255: 0x00009C08, - 18256: 0x00009BF7, - 18257: 0x00009C05, - 18258: 0x00009C12, - 18259: 0x00009BF8, - 18260: 0x00009C40, - 18261: 0x00009C07, - 18262: 0x00009C0E, - 18263: 0x00009C06, - 18264: 0x00009C17, - 18265: 0x00009C14, - 18266: 0x00009C09, - 18267: 0x00009D9F, - 18268: 0x00009D99, - 18269: 0x00009DA4, - 18270: 0x00009D9D, - 18271: 0x00009D92, - 18272: 0x00009D98, - 18273: 0x00009D90, - 18274: 0x00009D9B, - 18275: 0x00009DA0, - 18276: 0x00009D94, - 18277: 0x00009D9C, - 18278: 0x00009DAA, - 18279: 0x00009D97, - 18280: 0x00009DA1, - 18281: 0x00009D9A, - 18282: 0x00009DA2, - 18283: 0x00009DA8, - 18284: 0x00009D9E, - 18285: 0x00009DA3, - 18286: 0x00009DBF, - 18287: 0x00009DA9, - 18288: 0x00009D96, - 18289: 0x00009DA6, - 18290: 0x00009DA7, - 18291: 0x00009E99, - 18292: 0x00009E9B, - 18293: 0x00009E9A, - 18294: 0x00009EE5, - 18295: 0x00009EE4, - 18296: 0x00009EE7, - 18297: 0x00009EE6, - 18298: 0x00009F30, - 18299: 0x00009F2E, - 18300: 0x00009F5B, - 18301: 0x00009F60, - 18302: 0x00009F5E, - 18303: 0x00009F5D, - 18304: 0x00009F59, - 18305: 0x00009F91, - 18306: 0x0000513A, - 18307: 0x00005139, - 18308: 0x00005298, - 18309: 0x00005297, - 18310: 0x000056C3, - 18311: 0x000056BD, - 18312: 0x000056BE, - 18313: 0x00005B48, - 18314: 0x00005B47, - 18315: 0x00005DCB, - 18316: 0x00005DCF, - 18317: 0x00005EF1, - 18318: 0x000061FD, - 18319: 0x0000651B, - 18320: 0x00006B02, - 18321: 0x00006AFC, - 18322: 0x00006B03, - 18323: 0x00006AF8, - 18324: 0x00006B00, - 18325: 0x00007043, - 18326: 0x00007044, - 18327: 0x0000704A, - 18328: 0x00007048, - 18329: 0x00007049, - 18330: 0x00007045, - 18331: 0x00007046, - 18332: 0x0000721D, - 18333: 0x0000721A, - 18334: 0x00007219, - 18335: 0x0000737E, - 18336: 0x00007517, - 18337: 0x0000766A, - 18338: 0x000077D0, - 18339: 0x0000792D, - 18340: 0x00007931, - 18341: 0x0000792F, - 18342: 0x00007C54, - 18343: 0x00007C53, - 18344: 0x00007CF2, - 18345: 0x00007E8A, - 18346: 0x00007E87, - 18347: 0x00007E88, - 18348: 0x00007E8B, - 18349: 0x00007E86, - 18350: 0x00007E8D, - 18351: 0x00007F4D, - 18352: 0x00007FBB, - 18353: 0x00008030, - 18354: 0x000081DD, - 18355: 0x00008618, - 18356: 0x0000862A, - 18357: 0x00008626, - 18358: 0x0000861F, - 18359: 0x00008623, - 18360: 0x0000861C, - 18361: 0x00008619, - 18362: 0x00008627, - 18363: 0x0000862E, - 18364: 0x00008621, - 18365: 0x00008620, - 18366: 0x00008629, - 18367: 0x0000861E, - 18368: 0x00008625, - 18369: 0x00008829, - 18370: 0x0000881D, - 18371: 0x0000881B, - 18372: 0x00008820, - 18373: 0x00008824, - 18374: 0x0000881C, - 18375: 0x0000882B, - 18376: 0x0000884A, - 18377: 0x0000896D, - 18378: 0x00008969, - 18379: 0x0000896E, - 18380: 0x0000896B, - 18381: 0x000089FA, - 18382: 0x00008B79, - 18383: 0x00008B78, - 18384: 0x00008B45, - 18385: 0x00008B7A, - 18386: 0x00008B7B, - 18387: 0x00008D10, - 18388: 0x00008D14, - 18389: 0x00008DAF, - 18390: 0x00008E8E, - 18391: 0x00008E8C, - 18392: 0x00008F5E, - 18393: 0x00008F5B, - 18394: 0x00008F5D, - 18395: 0x00009146, - 18396: 0x00009144, - 18397: 0x00009145, - 18398: 0x000091B9, - 18399: 0x0000943F, - 18400: 0x0000943B, - 18401: 0x00009436, - 18402: 0x00009429, - 18403: 0x0000943D, - 18404: 0x0000943C, - 18405: 0x00009430, - 18406: 0x00009439, - 18407: 0x0000942A, - 18408: 0x00009437, - 18409: 0x0000942C, - 18410: 0x00009440, - 18411: 0x00009431, - 18412: 0x000095E5, - 18413: 0x000095E4, - 18414: 0x000095E3, - 18415: 0x00009735, - 18416: 0x0000973A, - 18417: 0x000097BF, - 18418: 0x000097E1, - 18419: 0x00009864, - 18420: 0x000098C9, - 18421: 0x000098C6, - 18422: 0x000098C0, - 18423: 0x00009958, - 18424: 0x00009956, - 18425: 0x00009A39, - 18426: 0x00009A3D, - 18427: 0x00009A46, - 18428: 0x00009A44, - 18429: 0x00009A42, - 18430: 0x00009A41, - 18431: 0x00009A3A, - 18432: 0x00009A3F, - 18433: 0x00009ACD, - 18434: 0x00009B15, - 18435: 0x00009B17, - 18436: 0x00009B18, - 18437: 0x00009B16, - 18438: 0x00009B3A, - 18439: 0x00009B52, - 18440: 0x00009C2B, - 18441: 0x00009C1D, - 18442: 0x00009C1C, - 18443: 0x00009C2C, - 18444: 0x00009C23, - 18445: 0x00009C28, - 18446: 0x00009C29, - 18447: 0x00009C24, - 18448: 0x00009C21, - 18449: 0x00009DB7, - 18450: 0x00009DB6, - 18451: 0x00009DBC, - 18452: 0x00009DC1, - 18453: 0x00009DC7, - 18454: 0x00009DCA, - 18455: 0x00009DCF, - 18456: 0x00009DBE, - 18457: 0x00009DC5, - 18458: 0x00009DC3, - 18459: 0x00009DBB, - 18460: 0x00009DB5, - 18461: 0x00009DCE, - 18462: 0x00009DB9, - 18463: 0x00009DBA, - 18464: 0x00009DAC, - 18465: 0x00009DC8, - 18466: 0x00009DB1, - 18467: 0x00009DAD, - 18468: 0x00009DCC, - 18469: 0x00009DB3, - 18470: 0x00009DCD, - 18471: 0x00009DB2, - 18472: 0x00009E7A, - 18473: 0x00009E9C, - 18474: 0x00009EEB, - 18475: 0x00009EEE, - 18476: 0x00009EED, - 18477: 0x00009F1B, - 18478: 0x00009F18, - 18479: 0x00009F1A, - 18480: 0x00009F31, - 18481: 0x00009F4E, - 18482: 0x00009F65, - 18483: 0x00009F64, - 18484: 0x00009F92, - 18485: 0x00004EB9, - 18486: 0x000056C6, - 18487: 0x000056C5, - 18488: 0x000056CB, - 18489: 0x00005971, - 18490: 0x00005B4B, - 18491: 0x00005B4C, - 18492: 0x00005DD5, - 18493: 0x00005DD1, - 18494: 0x00005EF2, - 18495: 0x00006521, - 18496: 0x00006520, - 18497: 0x00006526, - 18498: 0x00006522, - 18499: 0x00006B0B, - 18500: 0x00006B08, - 18501: 0x00006B09, - 18502: 0x00006C0D, - 18503: 0x00007055, - 18504: 0x00007056, - 18505: 0x00007057, - 18506: 0x00007052, - 18507: 0x0000721E, - 18508: 0x0000721F, - 18509: 0x000072A9, - 18510: 0x0000737F, - 18511: 0x000074D8, - 18512: 0x000074D5, - 18513: 0x000074D9, - 18514: 0x000074D7, - 18515: 0x0000766D, - 18516: 0x000076AD, - 18517: 0x00007935, - 18518: 0x000079B4, - 18519: 0x00007A70, - 18520: 0x00007A71, - 18521: 0x00007C57, - 18522: 0x00007C5C, - 18523: 0x00007C59, - 18524: 0x00007C5B, - 18525: 0x00007C5A, - 18526: 0x00007CF4, - 18527: 0x00007CF1, - 18528: 0x00007E91, - 18529: 0x00007F4F, - 18530: 0x00007F87, - 18531: 0x000081DE, - 18532: 0x0000826B, - 18533: 0x00008634, - 18534: 0x00008635, - 18535: 0x00008633, - 18536: 0x0000862C, - 18537: 0x00008632, - 18538: 0x00008636, - 18539: 0x0000882C, - 18540: 0x00008828, - 18541: 0x00008826, - 18542: 0x0000882A, - 18543: 0x00008825, - 18544: 0x00008971, - 18545: 0x000089BF, - 18546: 0x000089BE, - 18547: 0x000089FB, - 18548: 0x00008B7E, - 18549: 0x00008B84, - 18550: 0x00008B82, - 18551: 0x00008B86, - 18552: 0x00008B85, - 18553: 0x00008B7F, - 18554: 0x00008D15, - 18555: 0x00008E95, - 18556: 0x00008E94, - 18557: 0x00008E9A, - 18558: 0x00008E92, - 18559: 0x00008E90, - 18560: 0x00008E96, - 18561: 0x00008E97, - 18562: 0x00008F60, - 18563: 0x00008F62, - 18564: 0x00009147, - 18565: 0x0000944C, - 18566: 0x00009450, - 18567: 0x0000944A, - 18568: 0x0000944B, - 18569: 0x0000944F, - 18570: 0x00009447, - 18571: 0x00009445, - 18572: 0x00009448, - 18573: 0x00009449, - 18574: 0x00009446, - 18575: 0x0000973F, - 18576: 0x000097E3, - 18577: 0x0000986A, - 18578: 0x00009869, - 18579: 0x000098CB, - 18580: 0x00009954, - 18581: 0x0000995B, - 18582: 0x00009A4E, - 18583: 0x00009A53, - 18584: 0x00009A54, - 18585: 0x00009A4C, - 18586: 0x00009A4F, - 18587: 0x00009A48, - 18588: 0x00009A4A, - 18589: 0x00009A49, - 18590: 0x00009A52, - 18591: 0x00009A50, - 18592: 0x00009AD0, - 18593: 0x00009B19, - 18594: 0x00009B2B, - 18595: 0x00009B3B, - 18596: 0x00009B56, - 18597: 0x00009B55, - 18598: 0x00009C46, - 18599: 0x00009C48, - 18600: 0x00009C3F, - 18601: 0x00009C44, - 18602: 0x00009C39, - 18603: 0x00009C33, - 18604: 0x00009C41, - 18605: 0x00009C3C, - 18606: 0x00009C37, - 18607: 0x00009C34, - 18608: 0x00009C32, - 18609: 0x00009C3D, - 18610: 0x00009C36, - 18611: 0x00009DDB, - 18612: 0x00009DD2, - 18613: 0x00009DDE, - 18614: 0x00009DDA, - 18615: 0x00009DCB, - 18616: 0x00009DD0, - 18617: 0x00009DDC, - 18618: 0x00009DD1, - 18619: 0x00009DDF, - 18620: 0x00009DE9, - 18621: 0x00009DD9, - 18622: 0x00009DD8, - 18623: 0x00009DD6, - 18624: 0x00009DF5, - 18625: 0x00009DD5, - 18626: 0x00009DDD, - 18627: 0x00009EB6, - 18628: 0x00009EF0, - 18629: 0x00009F35, - 18630: 0x00009F33, - 18631: 0x00009F32, - 18632: 0x00009F42, - 18633: 0x00009F6B, - 18634: 0x00009F95, - 18635: 0x00009FA2, - 18636: 0x0000513D, - 18637: 0x00005299, - 18638: 0x000058E8, - 18639: 0x000058E7, - 18640: 0x00005972, - 18641: 0x00005B4D, - 18642: 0x00005DD8, - 18643: 0x0000882F, - 18644: 0x00005F4F, - 18645: 0x00006201, - 18646: 0x00006203, - 18647: 0x00006204, - 18648: 0x00006529, - 18649: 0x00006525, - 18650: 0x00006596, - 18651: 0x000066EB, - 18652: 0x00006B11, - 18653: 0x00006B12, - 18654: 0x00006B0F, - 18655: 0x00006BCA, - 18656: 0x0000705B, - 18657: 0x0000705A, - 18658: 0x00007222, - 18659: 0x00007382, - 18660: 0x00007381, - 18661: 0x00007383, - 18662: 0x00007670, - 18663: 0x000077D4, - 18664: 0x00007C67, - 18665: 0x00007C66, - 18666: 0x00007E95, - 18667: 0x0000826C, - 18668: 0x0000863A, - 18669: 0x00008640, - 18670: 0x00008639, - 18671: 0x0000863C, - 18672: 0x00008631, - 18673: 0x0000863B, - 18674: 0x0000863E, - 18675: 0x00008830, - 18676: 0x00008832, - 18677: 0x0000882E, - 18678: 0x00008833, - 18679: 0x00008976, - 18680: 0x00008974, - 18681: 0x00008973, - 18682: 0x000089FE, - 18683: 0x00008B8C, - 18684: 0x00008B8E, - 18685: 0x00008B8B, - 18686: 0x00008B88, - 18687: 0x00008C45, - 18688: 0x00008D19, - 18689: 0x00008E98, - 18690: 0x00008F64, - 18691: 0x00008F63, - 18692: 0x000091BC, - 18693: 0x00009462, - 18694: 0x00009455, - 18695: 0x0000945D, - 18696: 0x00009457, - 18697: 0x0000945E, - 18698: 0x000097C4, - 18699: 0x000097C5, - 18700: 0x00009800, - 18701: 0x00009A56, - 18702: 0x00009A59, - 18703: 0x00009B1E, - 18704: 0x00009B1F, - 18705: 0x00009B20, - 18706: 0x00009C52, - 18707: 0x00009C58, - 18708: 0x00009C50, - 18709: 0x00009C4A, - 18710: 0x00009C4D, - 18711: 0x00009C4B, - 18712: 0x00009C55, - 18713: 0x00009C59, - 18714: 0x00009C4C, - 18715: 0x00009C4E, - 18716: 0x00009DFB, - 18717: 0x00009DF7, - 18718: 0x00009DEF, - 18719: 0x00009DE3, - 18720: 0x00009DEB, - 18721: 0x00009DF8, - 18722: 0x00009DE4, - 18723: 0x00009DF6, - 18724: 0x00009DE1, - 18725: 0x00009DEE, - 18726: 0x00009DE6, - 18727: 0x00009DF2, - 18728: 0x00009DF0, - 18729: 0x00009DE2, - 18730: 0x00009DEC, - 18731: 0x00009DF4, - 18732: 0x00009DF3, - 18733: 0x00009DE8, - 18734: 0x00009DED, - 18735: 0x00009EC2, - 18736: 0x00009ED0, - 18737: 0x00009EF2, - 18738: 0x00009EF3, - 18739: 0x00009F06, - 18740: 0x00009F1C, - 18741: 0x00009F38, - 18742: 0x00009F37, - 18743: 0x00009F36, - 18744: 0x00009F43, - 18745: 0x00009F4F, - 18746: 0x00009F71, - 18747: 0x00009F70, - 18748: 0x00009F6E, - 18749: 0x00009F6F, - 18750: 0x000056D3, - 18751: 0x000056CD, - 18752: 0x00005B4E, - 18753: 0x00005C6D, - 18754: 0x0000652D, - 18755: 0x000066ED, - 18756: 0x000066EE, - 18757: 0x00006B13, - 18758: 0x0000705F, - 18759: 0x00007061, - 18760: 0x0000705D, - 18761: 0x00007060, - 18762: 0x00007223, - 18763: 0x000074DB, - 18764: 0x000074E5, - 18765: 0x000077D5, - 18766: 0x00007938, - 18767: 0x000079B7, - 18768: 0x000079B6, - 18769: 0x00007C6A, - 18770: 0x00007E97, - 18771: 0x00007F89, - 18772: 0x0000826D, - 18773: 0x00008643, - 18774: 0x00008838, - 18775: 0x00008837, - 18776: 0x00008835, - 18777: 0x0000884B, - 18778: 0x00008B94, - 18779: 0x00008B95, - 18780: 0x00008E9E, - 18781: 0x00008E9F, - 18782: 0x00008EA0, - 18783: 0x00008E9D, - 18784: 0x000091BE, - 18785: 0x000091BD, - 18786: 0x000091C2, - 18787: 0x0000946B, - 18788: 0x00009468, - 18789: 0x00009469, - 18790: 0x000096E5, - 18791: 0x00009746, - 18792: 0x00009743, - 18793: 0x00009747, - 18794: 0x000097C7, - 18795: 0x000097E5, - 18796: 0x00009A5E, - 18797: 0x00009AD5, - 18798: 0x00009B59, - 18799: 0x00009C63, - 18800: 0x00009C67, - 18801: 0x00009C66, - 18802: 0x00009C62, - 18803: 0x00009C5E, - 18804: 0x00009C60, - 18805: 0x00009E02, - 18806: 0x00009DFE, - 18807: 0x00009E07, - 18808: 0x00009E03, - 18809: 0x00009E06, - 18810: 0x00009E05, - 18811: 0x00009E00, - 18812: 0x00009E01, - 18813: 0x00009E09, - 18814: 0x00009DFF, - 18815: 0x00009DFD, - 18816: 0x00009E04, - 18817: 0x00009EA0, - 18818: 0x00009F1E, - 18819: 0x00009F46, - 18820: 0x00009F74, - 18821: 0x00009F75, - 18822: 0x00009F76, - 18823: 0x000056D4, - 18824: 0x0000652E, - 18825: 0x000065B8, - 18826: 0x00006B18, - 18827: 0x00006B19, - 18828: 0x00006B17, - 18829: 0x00006B1A, - 18830: 0x00007062, - 18831: 0x00007226, - 18832: 0x000072AA, - 18833: 0x000077D8, - 18834: 0x000077D9, - 18835: 0x00007939, - 18836: 0x00007C69, - 18837: 0x00007C6B, - 18838: 0x00007CF6, - 18839: 0x00007E9A, - 18840: 0x00007E98, - 18841: 0x00007E9B, - 18842: 0x00007E99, - 18843: 0x000081E0, - 18844: 0x000081E1, - 18845: 0x00008646, - 18846: 0x00008647, - 18847: 0x00008648, - 18848: 0x00008979, - 18849: 0x0000897A, - 18850: 0x0000897C, - 18851: 0x0000897B, - 18852: 0x000089FF, - 18853: 0x00008B98, - 18854: 0x00008B99, - 18855: 0x00008EA5, - 18856: 0x00008EA4, - 18857: 0x00008EA3, - 18858: 0x0000946E, - 18859: 0x0000946D, - 18860: 0x0000946F, - 18861: 0x00009471, - 18862: 0x00009473, - 18863: 0x00009749, - 18864: 0x00009872, - 18865: 0x0000995F, - 18866: 0x00009C68, - 18867: 0x00009C6E, - 18868: 0x00009C6D, - 18869: 0x00009E0B, - 18870: 0x00009E0D, - 18871: 0x00009E10, - 18872: 0x00009E0F, - 18873: 0x00009E12, - 18874: 0x00009E11, - 18875: 0x00009EA1, - 18876: 0x00009EF5, - 18877: 0x00009F09, - 18878: 0x00009F47, - 18879: 0x00009F78, - 18880: 0x00009F7B, - 18881: 0x00009F7A, - 18882: 0x00009F79, - 18883: 0x0000571E, - 18884: 0x00007066, - 18885: 0x00007C6F, - 18886: 0x0000883C, - 18887: 0x00008DB2, - 18888: 0x00008EA6, - 18889: 0x000091C3, - 18890: 0x00009474, - 18891: 0x00009478, - 18892: 0x00009476, - 18893: 0x00009475, - 18894: 0x00009A60, - 18895: 0x00009C74, - 18896: 0x00009C73, - 18897: 0x00009C71, - 18898: 0x00009C75, - 18899: 0x00009E14, - 18900: 0x00009E13, - 18901: 0x00009EF6, - 18902: 0x00009F0A, - 18903: 0x00009FA4, - 18904: 0x00007068, - 18905: 0x00007065, - 18906: 0x00007CF7, - 18907: 0x0000866A, - 18908: 0x0000883E, - 18909: 0x0000883D, - 18910: 0x0000883F, - 18911: 0x00008B9E, - 18912: 0x00008C9C, - 18913: 0x00008EA9, - 18914: 0x00008EC9, - 18915: 0x0000974B, - 18916: 0x00009873, - 18917: 0x00009874, - 18918: 0x000098CC, - 18919: 0x00009961, - 18920: 0x000099AB, - 18921: 0x00009A64, - 18922: 0x00009A66, - 18923: 0x00009A67, - 18924: 0x00009B24, - 18925: 0x00009E15, - 18926: 0x00009E17, - 18927: 0x00009F48, - 18928: 0x00006207, - 18929: 0x00006B1E, - 18930: 0x00007227, - 18931: 0x0000864C, - 18932: 0x00008EA8, - 18933: 0x00009482, - 18934: 0x00009480, - 18935: 0x00009481, - 18936: 0x00009A69, - 18937: 0x00009A68, - 18938: 0x00009B2E, - 18939: 0x00009E19, - 18940: 0x00007229, - 18941: 0x0000864B, - 18942: 0x00008B9F, - 18943: 0x00009483, - 18944: 0x00009C79, - 18945: 0x00009EB7, - 18946: 0x00007675, - 18947: 0x00009A6B, - 18948: 0x00009C7A, - 18949: 0x00009E1D, - 18950: 0x00007069, - 18951: 0x0000706A, - 18952: 0x00009EA4, - 18953: 0x00009F7E, - 18954: 0x00009F49, - 18955: 0x00009F98, - 18956: 0x00007881, - 18957: 0x000092B9, - 18958: 0x000088CF, - 18959: 0x000058BB, - 18960: 0x00006052, - 18961: 0x00007CA7, - 18962: 0x00005AFA, - 18963: 0x00002554, - 18964: 0x00002566, - 18965: 0x00002557, - 18966: 0x00002560, - 18967: 0x0000256C, - 18968: 0x00002563, - 18969: 0x0000255A, - 18970: 0x00002569, - 18971: 0x0000255D, - 18972: 0x00002552, - 18973: 0x00002564, - 18974: 0x00002555, - 18975: 0x0000255E, - 18976: 0x0000256A, - 18977: 0x00002561, - 18978: 0x00002558, - 18979: 0x00002567, - 18980: 0x0000255B, - 18981: 0x00002553, - 18982: 0x00002565, - 18983: 0x00002556, - 18984: 0x0000255F, - 18985: 0x0000256B, - 18986: 0x00002562, - 18987: 0x00002559, - 18988: 0x00002568, - 18989: 0x0000255C, - 18990: 0x00002551, - 18991: 0x00002550, - 18992: 0x0000256D, - 18993: 0x0000256E, - 18994: 0x00002570, - 18995: 0x0000256F, - 18996: 0x0000FFED, - 18997: 0x00020547, - 18998: 0x000092DB, - 18999: 0x000205DF, - 19000: 0x00023FC5, - 19001: 0x0000854C, - 19002: 0x000042B5, - 19003: 0x000073EF, - 19004: 0x000051B5, - 19005: 0x00003649, - 19006: 0x00024942, - 19007: 0x000289E4, - 19008: 0x00009344, - 19009: 0x000219DB, - 19010: 0x000082EE, - 19011: 0x00023CC8, - 19012: 0x0000783C, - 19013: 0x00006744, - 19014: 0x000062DF, - 19015: 0x00024933, - 19016: 0x000289AA, - 19017: 0x000202A0, - 19018: 0x00026BB3, - 19019: 0x00021305, - 19020: 0x00004FAB, - 19021: 0x000224ED, - 19022: 0x00005008, - 19023: 0x00026D29, - 19024: 0x00027A84, - 19025: 0x00023600, - 19026: 0x00024AB1, - 19027: 0x00022513, - 19028: 0x00005029, - 19029: 0x0002037E, - 19030: 0x00005FA4, - 19031: 0x00020380, - 19032: 0x00020347, - 19033: 0x00006EDB, - 19034: 0x0002041F, - 19035: 0x0000507D, - 19036: 0x00005101, - 19037: 0x0000347A, - 19038: 0x0000510E, - 19039: 0x0000986C, - 19040: 0x00003743, - 19041: 0x00008416, - 19042: 0x000249A4, - 19043: 0x00020487, - 19044: 0x00005160, - 19045: 0x000233B4, - 19046: 0x0000516A, - 19047: 0x00020BFF, - 19048: 0x000220FC, - 19049: 0x000202E5, - 19050: 0x00022530, - 19051: 0x0002058E, - 19052: 0x00023233, - 19053: 0x00021983, - 19054: 0x00005B82, - 19055: 0x0000877D, - 19056: 0x000205B3, - 19057: 0x00023C99, - 19058: 0x000051B2, - 19059: 0x000051B8, - 19060: 0x00009D34, - 19061: 0x000051C9, - 19062: 0x000051CF, - 19063: 0x000051D1, - 19064: 0x00003CDC, - 19065: 0x000051D3, - 19066: 0x00024AA6, - 19067: 0x000051B3, - 19068: 0x000051E2, - 19069: 0x00005342, - 19070: 0x000051ED, - 19071: 0x000083CD, - 19072: 0x0000693E, - 19073: 0x0002372D, - 19074: 0x00005F7B, - 19075: 0x0000520B, - 19076: 0x00005226, - 19077: 0x0000523C, - 19078: 0x000052B5, - 19079: 0x00005257, - 19080: 0x00005294, - 19081: 0x000052B9, - 19082: 0x000052C5, - 19083: 0x00007C15, - 19084: 0x00008542, - 19085: 0x000052E0, - 19086: 0x0000860D, - 19087: 0x00026B13, - 19088: 0x00005305, - 19089: 0x00028ADE, - 19090: 0x00005549, - 19091: 0x00006ED9, - 19092: 0x00023F80, - 19093: 0x00020954, - 19094: 0x00023FEC, - 19095: 0x00005333, - 19096: 0x00005344, - 19097: 0x00020BE2, - 19098: 0x00006CCB, - 19099: 0x00021726, - 19100: 0x0000681B, - 19101: 0x000073D5, - 19102: 0x0000604A, - 19103: 0x00003EAA, - 19104: 0x000038CC, - 19105: 0x000216E8, - 19106: 0x000071DD, - 19107: 0x000044A2, - 19108: 0x0000536D, - 19109: 0x00005374, - 19110: 0x000286AB, - 19111: 0x0000537E, - 19112: 0x0000537F, - 19113: 0x00021596, - 19114: 0x00021613, - 19115: 0x000077E6, - 19116: 0x00005393, - 19117: 0x00028A9B, - 19118: 0x000053A0, - 19119: 0x000053AB, - 19120: 0x000053AE, - 19121: 0x000073A7, - 19122: 0x00025772, - 19123: 0x00003F59, - 19124: 0x0000739C, - 19125: 0x000053C1, - 19126: 0x000053C5, - 19127: 0x00006C49, - 19128: 0x00004E49, - 19129: 0x000057FE, - 19130: 0x000053D9, - 19131: 0x00003AAB, - 19132: 0x00020B8F, - 19133: 0x000053E0, - 19134: 0x00023FEB, - 19135: 0x00022DA3, - 19136: 0x000053F6, - 19137: 0x00020C77, - 19138: 0x00005413, - 19139: 0x00007079, - 19140: 0x0000552B, - 19141: 0x00006657, - 19142: 0x00006D5B, - 19143: 0x0000546D, - 19144: 0x00026B53, - 19145: 0x00020D74, - 19146: 0x0000555D, - 19147: 0x0000548F, - 19148: 0x000054A4, - 19149: 0x000047A6, - 19150: 0x0002170D, - 19151: 0x00020EDD, - 19152: 0x00003DB4, - 19153: 0x00020D4D, - 19154: 0x000289BC, - 19155: 0x00022698, - 19156: 0x00005547, - 19157: 0x00004CED, - 19158: 0x0000542F, - 19159: 0x00007417, - 19160: 0x00005586, - 19161: 0x000055A9, - 19162: 0x00005605, - 19163: 0x000218D7, - 19164: 0x0002403A, - 19165: 0x00004552, - 19166: 0x00024435, - 19167: 0x000066B3, - 19168: 0x000210B4, - 19169: 0x00005637, - 19170: 0x000066CD, - 19171: 0x0002328A, - 19172: 0x000066A4, - 19173: 0x000066AD, - 19174: 0x0000564D, - 19175: 0x0000564F, - 19176: 0x000078F1, - 19177: 0x000056F1, - 19178: 0x00009787, - 19179: 0x000053FE, - 19180: 0x00005700, - 19181: 0x000056EF, - 19182: 0x000056ED, - 19183: 0x00028B66, - 19184: 0x00003623, - 19185: 0x0002124F, - 19186: 0x00005746, - 19187: 0x000241A5, - 19188: 0x00006C6E, - 19189: 0x0000708B, - 19190: 0x00005742, - 19191: 0x000036B1, - 19192: 0x00026C7E, - 19193: 0x000057E6, - 19194: 0x00021416, - 19195: 0x00005803, - 19196: 0x00021454, - 19197: 0x00024363, - 19198: 0x00005826, - 19199: 0x00024BF5, - 19200: 0x0000585C, - 19201: 0x000058AA, - 19202: 0x00003561, - 19203: 0x000058E0, - 19204: 0x000058DC, - 19205: 0x0002123C, - 19206: 0x000058FB, - 19207: 0x00005BFF, - 19208: 0x00005743, - 19209: 0x0002A150, - 19210: 0x00024278, - 19211: 0x000093D3, - 19212: 0x000035A1, - 19213: 0x0000591F, - 19214: 0x000068A6, - 19215: 0x000036C3, - 19216: 0x00006E59, - 19217: 0x0002163E, - 19218: 0x00005A24, - 19219: 0x00005553, - 19220: 0x00021692, - 19221: 0x00008505, - 19222: 0x000059C9, - 19223: 0x00020D4E, - 19224: 0x00026C81, - 19225: 0x00026D2A, - 19226: 0x000217DC, - 19227: 0x000059D9, - 19228: 0x000217FB, - 19229: 0x000217B2, - 19230: 0x00026DA6, - 19231: 0x00006D71, - 19232: 0x00021828, - 19233: 0x000216D5, - 19234: 0x000059F9, - 19235: 0x00026E45, - 19236: 0x00005AAB, - 19237: 0x00005A63, - 19238: 0x000036E6, - 19239: 0x000249A9, - 19240: 0x00005A77, - 19241: 0x00003708, - 19242: 0x00005A96, - 19243: 0x00007465, - 19244: 0x00005AD3, - 19245: 0x00026FA1, - 19246: 0x00022554, - 19247: 0x00003D85, - 19248: 0x00021911, - 19249: 0x00003732, - 19250: 0x000216B8, - 19251: 0x00005E83, - 19252: 0x000052D0, - 19253: 0x00005B76, - 19254: 0x00006588, - 19255: 0x00005B7C, - 19256: 0x00027A0E, - 19257: 0x00004004, - 19258: 0x0000485D, - 19259: 0x00020204, - 19260: 0x00005BD5, - 19261: 0x00006160, - 19262: 0x00021A34, - 19263: 0x000259CC, - 19264: 0x000205A5, - 19265: 0x00005BF3, - 19266: 0x00005B9D, - 19267: 0x00004D10, - 19268: 0x00005C05, - 19269: 0x00021B44, - 19270: 0x00005C13, - 19271: 0x000073CE, - 19272: 0x00005C14, - 19273: 0x00021CA5, - 19274: 0x00026B28, - 19275: 0x00005C49, - 19276: 0x000048DD, - 19277: 0x00005C85, - 19278: 0x00005CE9, - 19279: 0x00005CEF, - 19280: 0x00005D8B, - 19281: 0x00021DF9, - 19282: 0x00021E37, - 19283: 0x00005D10, - 19284: 0x00005D18, - 19285: 0x00005D46, - 19286: 0x00021EA4, - 19287: 0x00005CBA, - 19288: 0x00005DD7, - 19289: 0x000082FC, - 19290: 0x0000382D, - 19291: 0x00024901, - 19292: 0x00022049, - 19293: 0x00022173, - 19294: 0x00008287, - 19295: 0x00003836, - 19296: 0x00003BC2, - 19297: 0x00005E2E, - 19298: 0x00006A8A, - 19299: 0x00005E75, - 19300: 0x00005E7A, - 19301: 0x000244BC, - 19302: 0x00020CD3, - 19303: 0x000053A6, - 19304: 0x00004EB7, - 19305: 0x00005ED0, - 19306: 0x000053A8, - 19307: 0x00021771, - 19308: 0x00005E09, - 19309: 0x00005EF4, - 19310: 0x00028482, - 19311: 0x00005EF9, - 19312: 0x00005EFB, - 19313: 0x000038A0, - 19314: 0x00005EFC, - 19315: 0x0000683E, - 19316: 0x0000941B, - 19317: 0x00005F0D, - 19318: 0x000201C1, - 19319: 0x0002F894, - 19320: 0x00003ADE, - 19321: 0x000048AE, - 19322: 0x0002133A, - 19323: 0x00005F3A, - 19324: 0x00026888, - 19325: 0x000223D0, - 19326: 0x00005F58, - 19327: 0x00022471, - 19328: 0x00005F63, - 19329: 0x000097BD, - 19330: 0x00026E6E, - 19331: 0x00005F72, - 19332: 0x00009340, - 19333: 0x00028A36, - 19334: 0x00005FA7, - 19335: 0x00005DB6, - 19336: 0x00003D5F, - 19337: 0x00025250, - 19338: 0x00021F6A, - 19339: 0x000270F8, - 19340: 0x00022668, - 19341: 0x000091D6, - 19342: 0x0002029E, - 19343: 0x00028A29, - 19344: 0x00006031, - 19345: 0x00006685, - 19346: 0x00021877, - 19347: 0x00003963, - 19348: 0x00003DC7, - 19349: 0x00003639, - 19350: 0x00005790, - 19351: 0x000227B4, - 19352: 0x00007971, - 19353: 0x00003E40, - 19354: 0x0000609E, - 19355: 0x000060A4, - 19356: 0x000060B3, - 19357: 0x00024982, - 19358: 0x0002498F, - 19359: 0x00027A53, - 19360: 0x000074A4, - 19361: 0x000050E1, - 19362: 0x00005AA0, - 19363: 0x00006164, - 19364: 0x00008424, - 19365: 0x00006142, - 19366: 0x0002F8A6, - 19367: 0x00026ED2, - 19368: 0x00006181, - 19369: 0x000051F4, - 19370: 0x00020656, - 19371: 0x00006187, - 19372: 0x00005BAA, - 19373: 0x00023FB7, - 19374: 0x0002285F, - 19375: 0x000061D3, - 19376: 0x00028B9D, - 19377: 0x0002995D, - 19378: 0x000061D0, - 19379: 0x00003932, - 19380: 0x00022980, - 19381: 0x000228C1, - 19382: 0x00006023, - 19383: 0x0000615C, - 19384: 0x0000651E, - 19385: 0x0000638B, - 19386: 0x00020118, - 19387: 0x000062C5, - 19388: 0x00021770, - 19389: 0x000062D5, - 19390: 0x00022E0D, - 19391: 0x0000636C, - 19392: 0x000249DF, - 19393: 0x00003A17, - 19394: 0x00006438, - 19395: 0x000063F8, - 19396: 0x0002138E, - 19397: 0x000217FC, - 19398: 0x00006490, - 19399: 0x00006F8A, - 19400: 0x00022E36, - 19401: 0x00009814, - 19402: 0x0002408C, - 19403: 0x0002571D, - 19404: 0x000064E1, - 19405: 0x000064E5, - 19406: 0x0000947B, - 19407: 0x00003A66, - 19408: 0x0000643A, - 19409: 0x00003A57, - 19410: 0x0000654D, - 19411: 0x00006F16, - 19412: 0x00024A28, - 19413: 0x00024A23, - 19414: 0x00006585, - 19415: 0x0000656D, - 19416: 0x0000655F, - 19417: 0x0002307E, - 19418: 0x000065B5, - 19419: 0x00024940, - 19420: 0x00004B37, - 19421: 0x000065D1, - 19422: 0x000040D8, - 19423: 0x00021829, - 19424: 0x000065E0, - 19425: 0x000065E3, - 19426: 0x00005FDF, - 19427: 0x00023400, - 19428: 0x00006618, - 19429: 0x000231F7, - 19430: 0x000231F8, - 19431: 0x00006644, - 19432: 0x000231A4, - 19433: 0x000231A5, - 19434: 0x0000664B, - 19435: 0x00020E75, - 19436: 0x00006667, - 19437: 0x000251E6, - 19438: 0x00006673, - 19439: 0x00006674, - 19440: 0x00021E3D, - 19441: 0x00023231, - 19442: 0x000285F4, - 19443: 0x000231C8, - 19444: 0x00025313, - 19445: 0x000077C5, - 19446: 0x000228F7, - 19447: 0x000099A4, - 19448: 0x00006702, - 19449: 0x0002439C, - 19450: 0x00024A21, - 19451: 0x00003B2B, - 19452: 0x000069FA, - 19453: 0x000237C2, - 19454: 0x0000675E, - 19455: 0x00006767, - 19456: 0x00006762, - 19457: 0x000241CD, - 19458: 0x000290ED, - 19459: 0x000067D7, - 19460: 0x000044E9, - 19461: 0x00006822, - 19462: 0x00006E50, - 19463: 0x0000923C, - 19464: 0x00006801, - 19465: 0x000233E6, - 19466: 0x00026DA0, - 19467: 0x0000685D, - 19468: 0x0002346F, - 19469: 0x000069E1, - 19470: 0x00006A0B, - 19471: 0x00028ADF, - 19472: 0x00006973, - 19473: 0x000068C3, - 19474: 0x000235CD, - 19475: 0x00006901, - 19476: 0x00006900, - 19477: 0x00003D32, - 19478: 0x00003A01, - 19479: 0x0002363C, - 19480: 0x00003B80, - 19481: 0x000067AC, - 19482: 0x00006961, - 19483: 0x00028A4A, - 19484: 0x000042FC, - 19485: 0x00006936, - 19486: 0x00006998, - 19487: 0x00003BA1, - 19488: 0x000203C9, - 19489: 0x00008363, - 19490: 0x00005090, - 19491: 0x000069F9, - 19492: 0x00023659, - 19493: 0x0002212A, - 19494: 0x00006A45, - 19495: 0x00023703, - 19496: 0x00006A9D, - 19497: 0x00003BF3, - 19498: 0x000067B1, - 19499: 0x00006AC8, - 19500: 0x0002919C, - 19501: 0x00003C0D, - 19502: 0x00006B1D, - 19503: 0x00020923, - 19504: 0x000060DE, - 19505: 0x00006B35, - 19506: 0x00006B74, - 19507: 0x000227CD, - 19508: 0x00006EB5, - 19509: 0x00023ADB, - 19510: 0x000203B5, - 19511: 0x00021958, - 19512: 0x00003740, - 19513: 0x00005421, - 19514: 0x00023B5A, - 19515: 0x00006BE1, - 19516: 0x00023EFC, - 19517: 0x00006BDC, - 19518: 0x00006C37, - 19519: 0x0002248B, - 19520: 0x000248F1, - 19521: 0x00026B51, - 19522: 0x00006C5A, - 19523: 0x00008226, - 19524: 0x00006C79, - 19525: 0x00023DBC, - 19526: 0x000044C5, - 19527: 0x00023DBD, - 19528: 0x000241A4, - 19529: 0x0002490C, - 19530: 0x00024900, - 19531: 0x00023CC9, - 19532: 0x000036E5, - 19533: 0x00003CEB, - 19534: 0x00020D32, - 19535: 0x00009B83, - 19536: 0x000231F9, - 19537: 0x00022491, - 19538: 0x00007F8F, - 19539: 0x00006837, - 19540: 0x00026D25, - 19541: 0x00026DA1, - 19542: 0x00026DEB, - 19543: 0x00006D96, - 19544: 0x00006D5C, - 19545: 0x00006E7C, - 19546: 0x00006F04, - 19547: 0x0002497F, - 19548: 0x00024085, - 19549: 0x00026E72, - 19550: 0x00008533, - 19551: 0x00026F74, - 19552: 0x000051C7, - 19553: 0x00006C9C, - 19554: 0x00006E1D, - 19555: 0x0000842E, - 19556: 0x00028B21, - 19557: 0x00006E2F, - 19558: 0x00023E2F, - 19559: 0x00007453, - 19560: 0x00023F82, - 19561: 0x000079CC, - 19562: 0x00006E4F, - 19563: 0x00005A91, - 19564: 0x0002304B, - 19565: 0x00006FF8, - 19566: 0x0000370D, - 19567: 0x00006F9D, - 19568: 0x00023E30, - 19569: 0x00006EFA, - 19570: 0x00021497, - 19571: 0x0002403D, - 19572: 0x00004555, - 19573: 0x000093F0, - 19574: 0x00006F44, - 19575: 0x00006F5C, - 19576: 0x00003D4E, - 19577: 0x00006F74, - 19578: 0x00029170, - 19579: 0x00003D3B, - 19580: 0x00006F9F, - 19581: 0x00024144, - 19582: 0x00006FD3, - 19583: 0x00024091, - 19584: 0x00024155, - 19585: 0x00024039, - 19586: 0x00023FF0, - 19587: 0x00023FB4, - 19588: 0x0002413F, - 19589: 0x000051DF, - 19590: 0x00024156, - 19591: 0x00024157, - 19592: 0x00024140, - 19593: 0x000261DD, - 19594: 0x0000704B, - 19595: 0x0000707E, - 19596: 0x000070A7, - 19597: 0x00007081, - 19598: 0x000070CC, - 19599: 0x000070D5, - 19600: 0x000070D6, - 19601: 0x000070DF, - 19602: 0x00004104, - 19603: 0x00003DE8, - 19604: 0x000071B4, - 19605: 0x00007196, - 19606: 0x00024277, - 19607: 0x0000712B, - 19608: 0x00007145, - 19609: 0x00005A88, - 19610: 0x0000714A, - 19611: 0x0000716E, - 19612: 0x00005C9C, - 19613: 0x00024365, - 19614: 0x0000714F, - 19615: 0x00009362, - 19616: 0x000242C1, - 19617: 0x0000712C, - 19618: 0x0002445A, - 19619: 0x00024A27, - 19620: 0x00024A22, - 19621: 0x000071BA, - 19622: 0x00028BE8, - 19623: 0x000070BD, - 19624: 0x0000720E, - 19625: 0x00009442, - 19626: 0x00007215, - 19627: 0x00005911, - 19628: 0x00009443, - 19629: 0x00007224, - 19630: 0x00009341, - 19631: 0x00025605, - 19632: 0x0000722E, - 19633: 0x00007240, - 19634: 0x00024974, - 19635: 0x000068BD, - 19636: 0x00007255, - 19637: 0x00007257, - 19638: 0x00003E55, - 19639: 0x00023044, - 19640: 0x0000680D, - 19641: 0x00006F3D, - 19642: 0x00007282, - 19643: 0x0000732A, - 19644: 0x0000732B, - 19645: 0x00024823, - 19646: 0x0002882B, - 19647: 0x000048ED, - 19648: 0x00028804, - 19649: 0x00007328, - 19650: 0x0000732E, - 19651: 0x000073CF, - 19652: 0x000073AA, - 19653: 0x00020C3A, - 19654: 0x00026A2E, - 19655: 0x000073C9, - 19656: 0x00007449, - 19657: 0x000241E2, - 19658: 0x000216E7, - 19659: 0x00024A24, - 19660: 0x00006623, - 19661: 0x000036C5, - 19662: 0x000249B7, - 19663: 0x0002498D, - 19664: 0x000249FB, - 19665: 0x000073F7, - 19666: 0x00007415, - 19667: 0x00006903, - 19668: 0x00024A26, - 19669: 0x00007439, - 19670: 0x000205C3, - 19671: 0x00003ED7, - 19672: 0x0000745C, - 19673: 0x000228AD, - 19674: 0x00007460, - 19675: 0x00028EB2, - 19676: 0x00007447, - 19677: 0x000073E4, - 19678: 0x00007476, - 19679: 0x000083B9, - 19680: 0x0000746C, - 19681: 0x00003730, - 19682: 0x00007474, - 19683: 0x000093F1, - 19684: 0x00006A2C, - 19685: 0x00007482, - 19686: 0x00004953, - 19687: 0x00024A8C, - 19688: 0x0002415F, - 19689: 0x00024A79, - 19690: 0x00028B8F, - 19691: 0x00005B46, - 19692: 0x00028C03, - 19693: 0x0002189E, - 19694: 0x000074C8, - 19695: 0x00021988, - 19696: 0x0000750E, - 19697: 0x000074E9, - 19698: 0x0000751E, - 19699: 0x00028ED9, - 19700: 0x00021A4B, - 19701: 0x00005BD7, - 19702: 0x00028EAC, - 19703: 0x00009385, - 19704: 0x0000754D, - 19705: 0x0000754A, - 19706: 0x00007567, - 19707: 0x0000756E, - 19708: 0x00024F82, - 19709: 0x00003F04, - 19710: 0x00024D13, - 19711: 0x0000758E, - 19712: 0x0000745D, - 19713: 0x0000759E, - 19714: 0x000075B4, - 19715: 0x00007602, - 19716: 0x0000762C, - 19717: 0x00007651, - 19718: 0x0000764F, - 19719: 0x0000766F, - 19720: 0x00007676, - 19721: 0x000263F5, - 19722: 0x00007690, - 19723: 0x000081EF, - 19724: 0x000037F8, - 19725: 0x00026911, - 19726: 0x0002690E, - 19727: 0x000076A1, - 19728: 0x000076A5, - 19729: 0x000076B7, - 19730: 0x000076CC, - 19731: 0x00026F9F, - 19732: 0x00008462, - 19733: 0x0002509D, - 19734: 0x0002517D, - 19735: 0x00021E1C, - 19736: 0x0000771E, - 19737: 0x00007726, - 19738: 0x00007740, - 19739: 0x000064AF, - 19740: 0x00025220, - 19741: 0x00007758, - 19742: 0x000232AC, - 19743: 0x000077AF, - 19744: 0x00028964, - 19745: 0x00028968, - 19746: 0x000216C1, - 19747: 0x000077F4, - 19748: 0x00007809, - 19749: 0x00021376, - 19750: 0x00024A12, - 19751: 0x000068CA, - 19752: 0x000078AF, - 19753: 0x000078C7, - 19754: 0x000078D3, - 19755: 0x000096A5, - 19756: 0x0000792E, - 19757: 0x000255E0, - 19758: 0x000078D7, - 19759: 0x00007934, - 19760: 0x000078B1, - 19761: 0x0002760C, - 19762: 0x00008FB8, - 19763: 0x00008884, - 19764: 0x00028B2B, - 19765: 0x00026083, - 19766: 0x0002261C, - 19767: 0x00007986, - 19768: 0x00008900, - 19769: 0x00006902, - 19770: 0x00007980, - 19771: 0x00025857, - 19772: 0x0000799D, - 19773: 0x00027B39, - 19774: 0x0000793C, - 19775: 0x000079A9, - 19776: 0x00006E2A, - 19777: 0x00027126, - 19778: 0x00003EA8, - 19779: 0x000079C6, - 19780: 0x0002910D, - 19781: 0x000079D4, -} - -const numEncodeTables = 8 - -// encodeX are the encoding tables from Unicode to Big5 code, -// sorted by decreasing length. -// encode0: 42633 entries for runes in [131105, 173738). -// encode1: 29004 entries for runes in [ 11904, 40908). -// encode2: 2176 entries for runes in [ 7870, 10046). -// encode3: 939 entries for runes in [ 167, 1106). -// encode4: 446 entries for runes in [ 65072, 65518). -// encode5: 432 entries for runes in [194597, 195029). -// encode6: 263 entries for runes in [ 63751, 64014). -// encode7: 1 entries for runes in [175615, 175616). - -const encode0Low, encode0High = 131105, 173738 - -var encode0 = [...]uint16{ - 131105 - 131105: 0x9C71, - 131134 - 131105: 0x9375, - 131142 - 131105: 0x9376, - 131150 - 131105: 0x9548, - 131176 - 131105: 0x8EC6, - 131206 - 131105: 0x8BC5, - 131207 - 131105: 0x8BFA, - 131210 - 131105: 0xC87C, - 131220 - 131105: 0x9AB4, - 131274 - 131105: 0x884E, - 131275 - 131105: 0x884B, - 131276 - 131105: 0xC87A, - 131277 - 131105: 0x8848, - 131281 - 131105: 0x8847, - 131310 - 131105: 0xA0F6, - 131340 - 131105: 0x8845, - 131342 - 131105: 0x8853, - 131352 - 131105: 0xFCAD, - 131492 - 131105: 0x8CF5, - 131497 - 131105: 0x8AAD, - 131499 - 131105: 0x9272, - 131521 - 131105: 0xFC47, - 131540 - 131105: 0x94DF, - 131570 - 131105: 0x9FD1, - 131588 - 131105: 0xFBCB, - 131596 - 131105: 0x927D, - 131604 - 131105: 0x98A4, - 131641 - 131105: 0x8CF9, - 131675 - 131105: 0x94E7, - 131700 - 131105: 0x90CB, - 131701 - 131105: 0x927B, - 131737 - 131105: 0x94D8, - 131742 - 131105: 0xFC5F, - 131744 - 131105: 0xFA54, - 131767 - 131105: 0x9AB5, - 131775 - 131105: 0x96DA, - 131776 - 131105: 0x9279, - 131813 - 131105: 0xFA74, - 131850 - 131105: 0x9275, - 131877 - 131105: 0x8DFB, - 131905 - 131105: 0x8A49, - 131909 - 131105: 0x92DF, - 131910 - 131105: 0x9B7C, - 131911 - 131105: 0xFA63, - 131966 - 131105: 0xFA60, - 131967 - 131105: 0x926D, - 131968 - 131105: 0xFA62, - 132000 - 131105: 0x9AB6, - 132007 - 131105: 0x976B, - 132021 - 131105: 0xFD6A, - 132041 - 131105: 0xFD54, - 132043 - 131105: 0x9273, - 132085 - 131105: 0x97D8, - 132092 - 131105: 0x9FBB, - 132115 - 131105: 0x9342, - 132116 - 131105: 0x9276, - 132127 - 131105: 0xFA65, - 132197 - 131105: 0x926C, - 132231 - 131105: 0xFA6E, - 132238 - 131105: 0x9EE0, - 132241 - 131105: 0x92C0, - 132242 - 131105: 0x92BF, - 132259 - 131105: 0x92BE, - 132311 - 131105: 0x9ABA, - 132348 - 131105: 0x8AB3, - 132350 - 131105: 0x9775, - 132423 - 131105: 0xFA40, - 132494 - 131105: 0xFA76, - 132517 - 131105: 0xFBD0, - 132531 - 131105: 0xFA7B, - 132547 - 131105: 0xFE6D, - 132554 - 131105: 0x9BB3, - 132560 - 131105: 0x89CC, - 132565 - 131105: 0x9ABE, - 132575 - 131105: 0xFA42, - 132576 - 131105: 0x92BC, - 132587 - 131105: 0x945C, - 132625 - 131105: 0x9BB5, - 132629 - 131105: 0x9ABF, - 132633 - 131105: 0x98A7, - 132634 - 131105: 0x97A4, - 132656 - 131105: 0x90FD, - 132694 - 131105: 0xFC7B, - 132726 - 131105: 0x9AC0, - 132878 - 131105: 0x92C3, - 132913 - 131105: 0x8AAA, - 132985 - 131105: 0x9BD0, - 133164 - 131105: 0x9550, - 133235 - 131105: 0x92C6, - 133333 - 131105: 0x98A6, - 133398 - 131105: 0x9546, - 133411 - 131105: 0xFD63, - 133460 - 131105: 0xFAC2, - 133497 - 131105: 0x9EC3, - 133607 - 131105: 0x89B2, - 133649 - 131105: 0x9C66, - 133712 - 131105: 0x9053, - 133743 - 131105: 0x8C62, - 133770 - 131105: 0x87A8, - 133812 - 131105: 0x97C1, - 133826 - 131105: 0x9AC4, - 133837 - 131105: 0x9AC5, - 133901 - 131105: 0x8EEF, - 134031 - 131105: 0xFAE9, - 134047 - 131105: 0x8D40, - 134056 - 131105: 0x9262, - 134057 - 131105: 0x8AF7, - 134079 - 131105: 0x9AC6, - 134086 - 131105: 0x92E1, - 134091 - 131105: 0x9AC9, - 134114 - 131105: 0xFAC6, - 134123 - 131105: 0x97A5, - 134139 - 131105: 0x9ACB, - 134143 - 131105: 0xFA72, - 134155 - 131105: 0x8A5E, - 134157 - 131105: 0x94E0, - 134176 - 131105: 0x92CC, - 134196 - 131105: 0x8AE5, - 134202 - 131105: 0xFE5C, - 134203 - 131105: 0x9ACC, - 134209 - 131105: 0x9DF9, - 134210 - 131105: 0x8A43, - 134211 - 131105: 0x8AA6, - 134227 - 131105: 0x9ACD, - 134245 - 131105: 0x9ACE, - 134263 - 131105: 0xFAEE, - 134264 - 131105: 0x9BCC, - 134268 - 131105: 0x9ACF, - 134285 - 131105: 0x9AD1, - 134294 - 131105: 0x9DFA, - 134300 - 131105: 0x9D7C, - 134325 - 131105: 0x9AD3, - 134328 - 131105: 0x97A6, - 134351 - 131105: 0x995F, - 134355 - 131105: 0xFBF6, - 134356 - 131105: 0x9FC5, - 134357 - 131105: 0x8A59, - 134358 - 131105: 0x8B6B, - 134365 - 131105: 0x9AD4, - 134381 - 131105: 0x9AD5, - 134399 - 131105: 0x97A2, - 134421 - 131105: 0x8A44, - 134440 - 131105: 0x9F4A, - 134449 - 131105: 0x90A1, - 134450 - 131105: 0xFDA4, - 134470 - 131105: 0x8A64, - 134471 - 131105: 0x8AF2, - 134472 - 131105: 0x8AF8, - 134473 - 131105: 0x9DD8, - 134476 - 131105: 0x94D6, - 134477 - 131105: 0xFAFE, - 134478 - 131105: 0xFBA7, - 134511 - 131105: 0x9AD6, - 134513 - 131105: 0x9F4D, - 134516 - 131105: 0xFAF6, - 134524 - 131105: 0x8A57, - 134526 - 131105: 0x8B43, - 134527 - 131105: 0x8B44, - 134550 - 131105: 0x8AB6, - 134556 - 131105: 0x8AC0, - 134567 - 131105: 0x9E54, - 134578 - 131105: 0x9AD7, - 134600 - 131105: 0x9AD8, - 134660 - 131105: 0x9ADC, - 134665 - 131105: 0x8ACA, - 134666 - 131105: 0x9EA8, - 134669 - 131105: 0x9263, - 134670 - 131105: 0x9ADD, - 134671 - 131105: 0x8B65, - 134672 - 131105: 0x8B6F, - 134673 - 131105: 0x8B7E, - 134678 - 131105: 0x8F43, - 134685 - 131105: 0x92D0, - 134732 - 131105: 0x8AF4, - 134765 - 131105: 0x9DBE, - 134771 - 131105: 0x9AE1, - 134773 - 131105: 0xFCDE, - 134774 - 131105: 0x9DFD, - 134775 - 131105: 0x8B66, - 134776 - 131105: 0x8B70, - 134777 - 131105: 0x8B75, - 134778 - 131105: 0x8AE4, - 134779 - 131105: 0x8BA4, - 134796 - 131105: 0x8AED, - 134806 - 131105: 0x8A5D, - 134808 - 131105: 0x8B48, - 134813 - 131105: 0x9DED, - 134818 - 131105: 0x9E40, - 134826 - 131105: 0x8AEF, - 134827 - 131105: 0x8AF6, - 134828 - 131105: 0x9E76, - 134838 - 131105: 0x9EE3, - 134871 - 131105: 0x9ADE, - 134872 - 131105: 0x8DFE, - 134877 - 131105: 0xFAFC, - 134904 - 131105: 0x9CB1, - 134905 - 131105: 0x9E77, - 134906 - 131105: 0x8B64, - 134907 - 131105: 0x8B67, - 134941 - 131105: 0x974B, - 134950 - 131105: 0x9653, - 134957 - 131105: 0x9AE0, - 134958 - 131105: 0x8B4A, - 134960 - 131105: 0x8AF1, - 134961 - 131105: 0x8AD7, - 134971 - 131105: 0xA0AB, - 134988 - 131105: 0x8AB5, - 135012 - 131105: 0x8A5F, - 135053 - 131105: 0x8AEE, - 135056 - 131105: 0x9ADF, - 135085 - 131105: 0x8AFE, - 135092 - 131105: 0x8A58, - 135093 - 131105: 0x8BA3, - 135094 - 131105: 0x8BA7, - 135100 - 131105: 0x9AE3, - 135135 - 131105: 0x9261, - 135146 - 131105: 0x9DD7, - 135147 - 131105: 0x9E7D, - 135148 - 131105: 0x9EA7, - 135149 - 131105: 0x9EAB, - 135188 - 131105: 0x9042, - 135197 - 131105: 0x8B79, - 135198 - 131105: 0x8B7A, - 135247 - 131105: 0x9AE6, - 135260 - 131105: 0x9AE5, - 135279 - 131105: 0x8A7E, - 135285 - 131105: 0x9E44, - 135286 - 131105: 0x9AE7, - 135287 - 131105: 0x8A7C, - 135288 - 131105: 0x8B71, - 135291 - 131105: 0x9AE9, - 135304 - 131105: 0x9AEA, - 135318 - 131105: 0x9AEB, - 135325 - 131105: 0x8ABD, - 135348 - 131105: 0xFB4E, - 135359 - 131105: 0x9AED, - 135360 - 131105: 0x8AF9, - 135361 - 131105: 0x9E63, - 135367 - 131105: 0x8B49, - 135368 - 131105: 0x8ACE, - 135369 - 131105: 0x8B6E, - 135375 - 131105: 0x8AE8, - 135379 - 131105: 0x9AEE, - 135396 - 131105: 0x92CE, - 135412 - 131105: 0x8A5A, - 135413 - 131105: 0x8B7B, - 135414 - 131105: 0x8B7C, - 135471 - 131105: 0x9AEF, - 135483 - 131105: 0x9AF0, - 135485 - 131105: 0x8AFA, - 135493 - 131105: 0x8941, - 135496 - 131105: 0x8B72, - 135503 - 131105: 0x8AF3, - 135552 - 131105: 0x8BA8, - 135559 - 131105: 0x9EAE, - 135641 - 131105: 0x9E72, - 135740 - 131105: 0xFB73, - 135759 - 131105: 0xFB5F, - 135804 - 131105: 0x90BA, - 135848 - 131105: 0x91FE, - 135849 - 131105: 0x9EF6, - 135856 - 131105: 0x97ED, - 135907 - 131105: 0x9AF3, - 135934 - 131105: 0xA0EE, - 135938 - 131105: 0x967C, - 135939 - 131105: 0x9345, - 135940 - 131105: 0x986E, - 135941 - 131105: 0xFA56, - 135990 - 131105: 0x9AF5, - 135994 - 131105: 0xFC4B, - 136053 - 131105: 0x9AF4, - 136054 - 131105: 0xFEDE, - 136078 - 131105: 0xFCB7, - 136088 - 131105: 0x97F1, - 136092 - 131105: 0x97C7, - 136133 - 131105: 0x9CCB, - 136134 - 131105: 0x9240, - 136173 - 131105: 0x9CE8, - 136190 - 131105: 0x91FD, - 136211 - 131105: 0x974E, - 136214 - 131105: 0xFB68, - 136228 - 131105: 0x976C, - 136255 - 131105: 0x8CC2, - 136274 - 131105: 0x97E8, - 136276 - 131105: 0xFB6A, - 136277 - 131105: 0x8B74, - 136330 - 131105: 0x8EE7, - 136343 - 131105: 0xFDC8, - 136374 - 131105: 0x9241, - 136424 - 131105: 0x96A1, - 136445 - 131105: 0x8EF3, - 136567 - 131105: 0x9AF7, - 136578 - 131105: 0x8FA6, - 136598 - 131105: 0xFAD6, - 136714 - 131105: 0x9CC7, - 136723 - 131105: 0xFAD7, - 136729 - 131105: 0x9AF8, - 136766 - 131105: 0xFBA1, - 136801 - 131105: 0x8EC5, - 136850 - 131105: 0xFBA4, - 136888 - 131105: 0xFBC2, - 136890 - 131105: 0x9AC1, - 136896 - 131105: 0x91FA, - 136897 - 131105: 0xFEDB, - 136898 - 131105: 0x97AB, - 136915 - 131105: 0x9147, - 136917 - 131105: 0xFBB1, - 136927 - 131105: 0x8FEA, - 136934 - 131105: 0x94D2, - 136935 - 131105: 0xFE61, - 136936 - 131105: 0xFACE, - 136954 - 131105: 0x92ED, - 136955 - 131105: 0x91F3, - 136956 - 131105: 0x93C6, - 136958 - 131105: 0x935A, - 136973 - 131105: 0xFAFB, - 136976 - 131105: 0x92EF, - 136998 - 131105: 0xFAC8, - 137018 - 131105: 0x9847, - 137019 - 131105: 0x9366, - 137020 - 131105: 0x9855, - 137047 - 131105: 0x96E6, - 137068 - 131105: 0x9F43, - 137069 - 131105: 0x9FAA, - 137070 - 131105: 0x94DA, - 137071 - 131105: 0x92EE, - 137072 - 131105: 0xFCAF, - 137073 - 131105: 0xFBFB, - 137075 - 131105: 0x8EF9, - 137076 - 131105: 0x91F6, - 137131 - 131105: 0x9364, - 137136 - 131105: 0x94F5, - 137137 - 131105: 0x9CB6, - 137138 - 131105: 0xFBAD, - 137139 - 131105: 0x984E, - 137140 - 131105: 0x8F44, - 137141 - 131105: 0x96FD, - 137155 - 131105: 0x9AF9, - 137159 - 131105: 0x9AFA, - 137177 - 131105: 0x9769, - 137178 - 131105: 0x95D4, - 137179 - 131105: 0x984B, - 137180 - 131105: 0xFBAA, - 137183 - 131105: 0x987C, - 137199 - 131105: 0x91EA, - 137205 - 131105: 0x9DAF, - 137206 - 131105: 0x9DC5, - 137208 - 131105: 0x91F1, - 137209 - 131105: 0x8EB1, - 137210 - 131105: 0x97A9, - 137211 - 131105: 0xFBAC, - 137212 - 131105: 0xFCB8, - 137248 - 131105: 0x9CB9, - 137256 - 131105: 0xFBB0, - 137257 - 131105: 0xFCD2, - 137258 - 131105: 0x93CB, - 137261 - 131105: 0x9AFD, - 137273 - 131105: 0x91F4, - 137274 - 131105: 0x8BAC, - 137275 - 131105: 0xA055, - 137280 - 131105: 0x9574, - 137285 - 131105: 0x95BE, - 137298 - 131105: 0x97AD, - 137310 - 131105: 0x8EE9, - 137313 - 131105: 0x92F8, - 137314 - 131105: 0x97BE, - 137315 - 131105: 0x916C, - 137316 - 131105: 0x94AA, - 137335 - 131105: 0xFC63, - 137339 - 131105: 0x9DC6, - 137347 - 131105: 0x97B5, - 137348 - 131105: 0x92B8, - 137349 - 131105: 0x91EF, - 137374 - 131105: 0xFEA6, - 137375 - 131105: 0x9760, - 137376 - 131105: 0x9358, - 137377 - 131105: 0x9576, - 137378 - 131105: 0x8FAC, - 137406 - 131105: 0x91EC, - 137407 - 131105: 0x97B4, - 137425 - 131105: 0x91F7, - 137430 - 131105: 0x974A, - 137431 - 131105: 0xFB49, - 137432 - 131105: 0x9578, - 137433 - 131105: 0x93BC, - 137466 - 131105: 0x91D6, - 137475 - 131105: 0x9355, - 137476 - 131105: 0x9356, - 137477 - 131105: 0x9851, - 137488 - 131105: 0x8FF8, - 137489 - 131105: 0xFBC0, - 137490 - 131105: 0x93F2, - 137493 - 131105: 0x90D0, - 137500 - 131105: 0x9C44, - 137506 - 131105: 0x9255, - 137511 - 131105: 0x9363, - 137531 - 131105: 0x91A5, - 137540 - 131105: 0xA0ED, - 137560 - 131105: 0xFD6B, - 137578 - 131105: 0x9AFE, - 137596 - 131105: 0x9351, - 137600 - 131105: 0x8C57, - 137603 - 131105: 0xFA78, - 137608 - 131105: 0xFEA8, - 137622 - 131105: 0x9350, - 137691 - 131105: 0xFA4C, - 137715 - 131105: 0x92F7, - 137773 - 131105: 0x9B40, - 137780 - 131105: 0xFBCE, - 137797 - 131105: 0x9B41, - 137803 - 131105: 0xFEAD, - 137827 - 131105: 0x8761, - 138052 - 131105: 0xFBD5, - 138177 - 131105: 0x8BC2, - 138178 - 131105: 0x9A7C, - 138282 - 131105: 0x9B42, - 138352 - 131105: 0x9B43, - 138402 - 131105: 0x9E79, - 138405 - 131105: 0xFBD9, - 138412 - 131105: 0x9B44, - 138566 - 131105: 0xA0A7, - 138579 - 131105: 0x877B, - 138590 - 131105: 0x876E, - 138640 - 131105: 0x9BF3, - 138678 - 131105: 0x8C79, - 138682 - 131105: 0x935E, - 138698 - 131105: 0x89CB, - 138705 - 131105: 0x9F53, - 138731 - 131105: 0x93D7, - 138745 - 131105: 0xFBE1, - 138780 - 131105: 0xFED0, - 138787 - 131105: 0x8CF1, - 138807 - 131105: 0xFBE2, - 138813 - 131105: 0xFCE3, - 138889 - 131105: 0x9074, - 138916 - 131105: 0xFBE6, - 138920 - 131105: 0x9BB7, - 138952 - 131105: 0x9B45, - 138965 - 131105: 0x9B47, - 139023 - 131105: 0x9F50, - 139029 - 131105: 0x9B48, - 139114 - 131105: 0xFC5B, - 139166 - 131105: 0x98A9, - 139169 - 131105: 0x9CFD, - 139240 - 131105: 0x884C, - 139333 - 131105: 0x9B4B, - 139337 - 131105: 0xFBEC, - 139390 - 131105: 0x8C69, - 139418 - 131105: 0x9BA8, - 139463 - 131105: 0x8AD5, - 139516 - 131105: 0xFA73, - 139562 - 131105: 0xFD59, - 139611 - 131105: 0x91A2, - 139635 - 131105: 0xFBED, - 139642 - 131105: 0x9CA9, - 139681 - 131105: 0x8AA8, - 139713 - 131105: 0x8D42, - 139715 - 131105: 0x9BC3, - 139784 - 131105: 0x8AE1, - 139900 - 131105: 0x9B4E, - 140065 - 131105: 0x95D0, - 140069 - 131105: 0x905F, - 140221 - 131105: 0x97EE, - 140240 - 131105: 0xFC4E, - 140247 - 131105: 0x9B4F, - 140282 - 131105: 0x9B50, - 140389 - 131105: 0x9EC6, - 140401 - 131105: 0xFC50, - 140427 - 131105: 0xFD73, - 140433 - 131105: 0xFDA7, - 140464 - 131105: 0x9DA2, - 140476 - 131105: 0x87D1, - 140481 - 131105: 0x87D3, - 140489 - 131105: 0x87D4, - 140492 - 131105: 0x87D5, - 140525 - 131105: 0xFA58, - 140563 - 131105: 0xFA5E, - 140571 - 131105: 0xA059, - 140592 - 131105: 0xFA75, - 140628 - 131105: 0xFBBE, - 140685 - 131105: 0x9CA2, - 140719 - 131105: 0x9370, - 140734 - 131105: 0x9371, - 140827 - 131105: 0x9377, - 140828 - 131105: 0xFEEF, - 140843 - 131105: 0x936D, - 140904 - 131105: 0xFC5D, - 140922 - 131105: 0x90B8, - 140950 - 131105: 0x8AFC, - 140952 - 131105: 0xFB41, - 141044 - 131105: 0x9E6B, - 141045 - 131105: 0x94E3, - 141046 - 131105: 0x8EE2, - 141074 - 131105: 0x8C7D, - 141076 - 131105: 0x8ED7, - 141083 - 131105: 0x9C4D, - 141087 - 131105: 0x96A3, - 141098 - 131105: 0x9B51, - 141173 - 131105: 0x8AC3, - 141185 - 131105: 0x96AA, - 141206 - 131105: 0x8CE2, - 141236 - 131105: 0xFC68, - 141237 - 131105: 0x8B6D, - 141261 - 131105: 0xFD67, - 141315 - 131105: 0x8AE9, - 141407 - 131105: 0xFCA1, - 141408 - 131105: 0x936C, - 141425 - 131105: 0x9B52, - 141485 - 131105: 0xFE70, - 141505 - 131105: 0xFCA8, - 141559 - 131105: 0xFCE9, - 141606 - 131105: 0x9CB4, - 141625 - 131105: 0x8AEA, - 141647 - 131105: 0x9B53, - 141671 - 131105: 0x9B55, - 141675 - 131105: 0x96AB, - 141696 - 131105: 0xFCA7, - 141715 - 131105: 0x9B56, - 141926 - 131105: 0x8ABC, - 142031 - 131105: 0x8ACB, - 142037 - 131105: 0x9B57, - 142054 - 131105: 0x89CD, - 142056 - 131105: 0x9B59, - 142094 - 131105: 0x9B5B, - 142114 - 131105: 0x93A5, - 142143 - 131105: 0x9B5D, - 142147 - 131105: 0x9E4F, - 142186 - 131105: 0x93A3, - 142282 - 131105: 0x8A7B, - 142286 - 131105: 0x8B42, - 142374 - 131105: 0x9750, - 142375 - 131105: 0x8FB3, - 142392 - 131105: 0x8A50, - 142412 - 131105: 0x9B60, - 142417 - 131105: 0x8B45, - 142421 - 131105: 0x8B46, - 142434 - 131105: 0x9DFE, - 142472 - 131105: 0x9B62, - 142491 - 131105: 0x937B, - 142497 - 131105: 0x93B1, - 142505 - 131105: 0x8A60, - 142514 - 131105: 0x8AD8, - 142519 - 131105: 0x9B63, - 142530 - 131105: 0x8A69, - 142534 - 131105: 0x8A47, - 142537 - 131105: 0x8ACC, - 142599 - 131105: 0x937C, - 142600 - 131105: 0x9B65, - 142610 - 131105: 0x9B66, - 142660 - 131105: 0x8A72, - 142668 - 131105: 0x8A7A, - 142695 - 131105: 0x93AF, - 142733 - 131105: 0x8AB0, - 142741 - 131105: 0x9B68, - 142752 - 131105: 0x9EA3, - 142755 - 131105: 0xFAEC, - 142756 - 131105: 0x8B77, - 142775 - 131105: 0x9B67, - 142830 - 131105: 0x8B59, - 142861 - 131105: 0xFCB1, - 142902 - 131105: 0xFCBB, - 142914 - 131105: 0x9B69, - 142968 - 131105: 0x93A8, - 142987 - 131105: 0x8AE0, - 143027 - 131105: 0x9E51, - 143087 - 131105: 0x8F5F, - 143220 - 131105: 0x9B6A, - 143308 - 131105: 0x9B6B, - 143331 - 131105: 0x97EC, - 143411 - 131105: 0x9B6C, - 143428 - 131105: 0xFE4E, - 143435 - 131105: 0xFDC2, - 143462 - 131105: 0x9B6D, - 143485 - 131105: 0x9167, - 143486 - 131105: 0xFCCC, - 143502 - 131105: 0x93B6, - 143543 - 131105: 0x90E4, - 143548 - 131105: 0x90E5, - 143578 - 131105: 0x9EF2, - 143619 - 131105: 0x93CA, - 143677 - 131105: 0x8BBC, - 143741 - 131105: 0x8F46, - 143746 - 131105: 0x93CF, - 143780 - 131105: 0xFCDB, - 143781 - 131105: 0xFCDC, - 143795 - 131105: 0x93C0, - 143816 - 131105: 0xFCE6, - 143817 - 131105: 0x96E7, - 143850 - 131105: 0x87A7, - 143863 - 131105: 0xFCD8, - 143864 - 131105: 0xFCD9, - 143865 - 131105: 0xFDA6, - 143887 - 131105: 0x93CE, - 143909 - 131105: 0x95F1, - 143919 - 131105: 0x9CE9, - 143921 - 131105: 0xFCE4, - 143922 - 131105: 0x94AF, - 143923 - 131105: 0xFA77, - 143924 - 131105: 0x93CC, - 143958 - 131105: 0x8CE1, - 143966 - 131105: 0x87A9, - 143970 - 131105: 0x905A, - 144001 - 131105: 0x8C54, - 144009 - 131105: 0x93BF, - 144010 - 131105: 0xFB51, - 144043 - 131105: 0x93B9, - 144044 - 131105: 0xFED7, - 144045 - 131105: 0x93B7, - 144082 - 131105: 0x93D9, - 144096 - 131105: 0x93BB, - 144097 - 131105: 0x93DA, - 144128 - 131105: 0x98A3, - 144138 - 131105: 0x90D1, - 144159 - 131105: 0x9B6E, - 144308 - 131105: 0xFA70, - 144332 - 131105: 0x9BEB, - 144350 - 131105: 0x9B6F, - 144358 - 131105: 0xFCFC, - 144372 - 131105: 0x8B40, - 144373 - 131105: 0xA07B, - 144377 - 131105: 0x8CA1, - 144378 - 131105: 0x97F7, - 144382 - 131105: 0x93E2, - 144384 - 131105: 0xFCD6, - 144447 - 131105: 0x9559, - 144464 - 131105: 0x93A6, - 144495 - 131105: 0xFD40, - 144498 - 131105: 0x935F, - 144613 - 131105: 0x97F2, - 144665 - 131105: 0x9C76, - 144688 - 131105: 0x8EF8, - 144721 - 131105: 0x8CEB, - 144730 - 131105: 0x8F47, - 144743 - 131105: 0x9B74, - 144789 - 131105: 0x92B4, - 144793 - 131105: 0x91ED, - 144796 - 131105: 0x96D2, - 144827 - 131105: 0x87D8, - 144845 - 131105: 0xFD46, - 144846 - 131105: 0x8F4F, - 144847 - 131105: 0x9549, - 144883 - 131105: 0x9B75, - 144896 - 131105: 0xFA5C, - 144919 - 131105: 0x8751, - 144922 - 131105: 0x9B79, - 144956 - 131105: 0xFD4B, - 144960 - 131105: 0x96D3, - 144985 - 131105: 0xFD58, - 144991 - 131105: 0x945F, - 145015 - 131105: 0xA0F5, - 145038 - 131105: 0x87C7, - 145054 - 131105: 0x877C, - 145062 - 131105: 0x9243, - 145069 - 131105: 0x97FA, - 145082 - 131105: 0x9DD9, - 145119 - 131105: 0x97F4, - 145134 - 131105: 0x924D, - 145155 - 131105: 0xFD5B, - 145174 - 131105: 0x9B7A, - 145184 - 131105: 0x9ED5, - 145197 - 131105: 0xFAAE, - 145199 - 131105: 0x9CC9, - 145215 - 131105: 0x9258, - 145254 - 131105: 0x8EC8, - 145281 - 131105: 0x94B4, - 145314 - 131105: 0x93E1, - 145340 - 131105: 0x93DF, - 145346 - 131105: 0xFCF0, - 145365 - 131105: 0x93EC, - 145366 - 131105: 0x97F6, - 145367 - 131105: 0x96CF, - 145466 - 131105: 0x93DE, - 145858 - 131105: 0x8ACF, - 146087 - 131105: 0x9BA2, - 146139 - 131105: 0xFD69, - 146158 - 131105: 0x9352, - 146170 - 131105: 0x98A2, - 146202 - 131105: 0x8CE7, - 146266 - 131105: 0xFD6E, - 146531 - 131105: 0x8CA4, - 146585 - 131105: 0xFA7C, - 146586 - 131105: 0x93FA, - 146587 - 131105: 0x907C, - 146613 - 131105: 0x8F67, - 146615 - 131105: 0x9DB7, - 146631 - 131105: 0xA0E9, - 146632 - 131105: 0xFA4E, - 146633 - 131105: 0xFDA1, - 146684 - 131105: 0x9E74, - 146685 - 131105: 0x9FBF, - 146686 - 131105: 0x9ECB, - 146687 - 131105: 0x9BB9, - 146752 - 131105: 0x9DD4, - 146779 - 131105: 0x97B9, - 146814 - 131105: 0x8EF1, - 146831 - 131105: 0x957B, - 146870 - 131105: 0x9ED2, - 146871 - 131105: 0x9753, - 146872 - 131105: 0x96A4, - 146873 - 131105: 0x8FBE, - 146874 - 131105: 0x94D9, - 146875 - 131105: 0x9058, - 146876 - 131105: 0xFD79, - 146877 - 131105: 0xFD7B, - 146915 - 131105: 0x8EDA, - 146936 - 131105: 0x8EFA, - 146950 - 131105: 0x8762, - 146961 - 131105: 0x9BA5, - 146988 - 131105: 0x9ED9, - 146989 - 131105: 0x97D4, - 146990 - 131105: 0x90BB, - 146991 - 131105: 0xFDBC, - 146992 - 131105: 0xFDC6, - 146993 - 131105: 0x9248, - 147001 - 131105: 0x92B5, - 147080 - 131105: 0x9DC1, - 147081 - 131105: 0x92B9, - 147082 - 131105: 0x92A6, - 147083 - 131105: 0x8F4B, - 147129 - 131105: 0x9BA6, - 147135 - 131105: 0x92B6, - 147159 - 131105: 0x8E40, - 147191 - 131105: 0x9ED8, - 147192 - 131105: 0x945E, - 147193 - 131105: 0x985F, - 147194 - 131105: 0x94CE, - 147195 - 131105: 0x924A, - 147196 - 131105: 0xFD70, - 147253 - 131105: 0x9467, - 147265 - 131105: 0x8DEC, - 147274 - 131105: 0x9BD8, - 147297 - 131105: 0x8763, - 147327 - 131105: 0x9448, - 147328 - 131105: 0xFAC1, - 147329 - 131105: 0x9CF7, - 147330 - 131105: 0xFDBE, - 147343 - 131105: 0x8FDA, - 147380 - 131105: 0xFDD9, - 147383 - 131105: 0xFC7E, - 147392 - 131105: 0x93F9, - 147397 - 131105: 0xFA43, - 147435 - 131105: 0xFAEB, - 147436 - 131105: 0xFAC3, - 147437 - 131105: 0x97D3, - 147438 - 131105: 0x95F9, - 147439 - 131105: 0x9C48, - 147440 - 131105: 0xFDD8, - 147473 - 131105: 0xA0D8, - 147513 - 131105: 0xFDD7, - 147514 - 131105: 0xFB4A, - 147515 - 131105: 0x9BAF, - 147516 - 131105: 0x944B, - 147517 - 131105: 0xFDC9, - 147543 - 131105: 0x8EAC, - 147589 - 131105: 0xFDB2, - 147595 - 131105: 0x925A, - 147596 - 131105: 0xFCBD, - 147597 - 131105: 0x92D9, - 147601 - 131105: 0xFDD5, - 147657 - 131105: 0x92DD, - 147681 - 131105: 0x9259, - 147692 - 131105: 0x8CF0, - 147716 - 131105: 0x96BA, - 147727 - 131105: 0x925B, - 147737 - 131105: 0x9BAB, - 147775 - 131105: 0xFDDA, - 147776 - 131105: 0xFDDE, - 147780 - 131105: 0xFDD3, - 147790 - 131105: 0x8C46, - 147797 - 131105: 0xFDD6, - 147798 - 131105: 0xFDDC, - 147799 - 131105: 0xFDDD, - 147804 - 131105: 0x90FE, - 147807 - 131105: 0xFEA1, - 147809 - 131105: 0x87A5, - 147831 - 131105: 0x8BAD, - 147834 - 131105: 0x9CD8, - 147875 - 131105: 0x9E6D, - 147876 - 131105: 0xFD7C, - 147877 - 131105: 0xFB61, - 147884 - 131105: 0x96F8, - 147893 - 131105: 0x96F0, - 147917 - 131105: 0xFCF4, - 147938 - 131105: 0xFE60, - 147964 - 131105: 0x9852, - 147995 - 131105: 0x964F, - 148043 - 131105: 0x916E, - 148054 - 131105: 0x986D, - 148057 - 131105: 0x9864, - 148086 - 131105: 0x9453, - 148087 - 131105: 0xFDEC, - 148088 - 131105: 0xFB78, - 148100 - 131105: 0x95BA, - 148115 - 131105: 0x985D, - 148117 - 131105: 0x92F9, - 148133 - 131105: 0x985A, - 148159 - 131105: 0x8750, - 148161 - 131105: 0xFDF6, - 148169 - 131105: 0x93D0, - 148170 - 131105: 0x9862, - 148206 - 131105: 0x9BAD, - 148218 - 131105: 0x974F, - 148237 - 131105: 0x9BAE, - 148250 - 131105: 0x9452, - 148276 - 131105: 0x9BB0, - 148296 - 131105: 0x91D2, - 148322 - 131105: 0x97EA, - 148323 - 131105: 0xFB6B, - 148324 - 131105: 0x91B1, - 148325 - 131105: 0xFDF3, - 148364 - 131105: 0x92CB, - 148374 - 131105: 0x9BB1, - 148380 - 131105: 0xFCEC, - 148413 - 131105: 0x986B, - 148417 - 131105: 0x9751, - 148457 - 131105: 0x9871, - 148458 - 131105: 0x95EF, - 148466 - 131105: 0x9EF3, - 148472 - 131105: 0x91E8, - 148484 - 131105: 0x9BBA, - 148533 - 131105: 0xFB4C, - 148534 - 131105: 0x926A, - 148570 - 131105: 0xFDF8, - 148571 - 131105: 0x9861, - 148595 - 131105: 0x91E7, - 148615 - 131105: 0x93ED, - 148616 - 131105: 0x9744, - 148665 - 131105: 0x91E1, - 148668 - 131105: 0xFBF5, - 148686 - 131105: 0x9869, - 148691 - 131105: 0x8A62, - 148694 - 131105: 0x9BBB, - 148741 - 131105: 0x8CA8, - 148769 - 131105: 0x9C55, - 148856 - 131105: 0x8E77, - 148936 - 131105: 0x8AB2, - 149016 - 131105: 0x9EBC, - 149034 - 131105: 0x93E6, - 149093 - 131105: 0x93A2, - 149108 - 131105: 0x9BBD, - 149143 - 131105: 0x94B3, - 149204 - 131105: 0x937D, - 149254 - 131105: 0x9E66, - 149285 - 131105: 0x9459, - 149295 - 131105: 0x9BBF, - 149391 - 131105: 0x9458, - 149472 - 131105: 0x9EA5, - 149522 - 131105: 0x9BC7, - 149539 - 131105: 0xFE54, - 149634 - 131105: 0x8E74, - 149737 - 131105: 0x8BD6, - 149744 - 131105: 0x94B6, - 149745 - 131105: 0xFD74, - 149746 - 131105: 0x98C0, - 149747 - 131105: 0x94A5, - 149755 - 131105: 0x9BC8, - 149759 - 131105: 0x95ED, - 149760 - 131105: 0xFD7E, - 149761 - 131105: 0xFBEB, - 149772 - 131105: 0xFD7D, - 149782 - 131105: 0x976F, - 149783 - 131105: 0x9461, - 149785 - 131105: 0x9FC1, - 149807 - 131105: 0x95D7, - 149811 - 131105: 0xFA52, - 149812 - 131105: 0x9C58, - 149822 - 131105: 0x9F68, - 149823 - 131105: 0x9BE7, - 149824 - 131105: 0xFCCE, - 149825 - 131105: 0x96E8, - 149826 - 131105: 0xFA49, - 149827 - 131105: 0x97A1, - 149858 - 131105: 0x954D, - 149859 - 131105: 0x9EF8, - 149876 - 131105: 0xFE49, - 149877 - 131105: 0x91CE, - 149878 - 131105: 0x9771, - 149883 - 131105: 0x8CCF, - 149887 - 131105: 0xFDB1, - 149890 - 131105: 0xFC6E, - 149896 - 131105: 0x9CF2, - 149897 - 131105: 0x93B8, - 149898 - 131105: 0x9043, - 149899 - 131105: 0x9759, - 149900 - 131105: 0x94D7, - 149901 - 131105: 0xFE66, - 149902 - 131105: 0x947D, - 149903 - 131105: 0xFC6F, - 149908 - 131105: 0x9246, - 149924 - 131105: 0xFA6D, - 149927 - 131105: 0x8EF7, - 149929 - 131105: 0xFBB7, - 149931 - 131105: 0x947C, - 149932 - 131105: 0x92CD, - 149933 - 131105: 0x97B2, - 149943 - 131105: 0xFE65, - 149944 - 131105: 0x967E, - 149945 - 131105: 0x9758, - 149946 - 131105: 0x9B77, - 149947 - 131105: 0x91CF, - 149957 - 131105: 0x94A4, - 149968 - 131105: 0x9CAD, - 149978 - 131105: 0x8BAB, - 149982 - 131105: 0x96D5, - 149983 - 131105: 0xFCB3, - 149987 - 131105: 0x93AE, - 149989 - 131105: 0x976D, - 149996 - 131105: 0x9446, - 149997 - 131105: 0x95F7, - 150006 - 131105: 0x9C46, - 150007 - 131105: 0x955B, - 150008 - 131105: 0x91D1, - 150009 - 131105: 0x94F4, - 150011 - 131105: 0xFE67, - 150030 - 131105: 0x92A5, - 150034 - 131105: 0xFEDF, - 150035 - 131105: 0x8CAB, - 150037 - 131105: 0x9BC9, - 150049 - 131105: 0xFCED, - 150050 - 131105: 0xFDFA, - 150051 - 131105: 0xFCC8, - 150052 - 131105: 0xFE62, - 150053 - 131105: 0x91FC, - 150054 - 131105: 0xFE6B, - 150055 - 131105: 0xFDF9, - 150056 - 131105: 0xFCC7, - 150057 - 131105: 0x914E, - 150058 - 131105: 0x9CB8, - 150078 - 131105: 0x9767, - 150082 - 131105: 0x95EE, - 150085 - 131105: 0x9BB2, - 150090 - 131105: 0x9460, - 150094 - 131105: 0x94A2, - 150095 - 131105: 0x9875, - 150096 - 131105: 0x97AC, - 150097 - 131105: 0x91D3, - 150109 - 131105: 0x987B, - 150117 - 131105: 0x8EEB, - 150118 - 131105: 0x976A, - 150119 - 131105: 0x965E, - 150129 - 131105: 0x97EB, - 150135 - 131105: 0x9FF9, - 150136 - 131105: 0x95F8, - 150137 - 131105: 0xFEA2, - 150138 - 131105: 0x8FE6, - 150156 - 131105: 0xFE7E, - 150163 - 131105: 0x9DA4, - 150164 - 131105: 0x9768, - 150165 - 131105: 0x8EEC, - 150166 - 131105: 0x94BD, - 150180 - 131105: 0x945B, - 150181 - 131105: 0x9CF6, - 150182 - 131105: 0xFAA7, - 150183 - 131105: 0x9BD9, - 150193 - 131105: 0xFA5D, - 150194 - 131105: 0x9656, - 150195 - 131105: 0x9762, - 150202 - 131105: 0x94BA, - 150203 - 131105: 0xA04F, - 150204 - 131105: 0x92D8, - 150208 - 131105: 0x9BCB, - 150215 - 131105: 0x94BB, - 150218 - 131105: 0x9D5F, - 150225 - 131105: 0x90CF, - 150239 - 131105: 0x9465, - 150242 - 131105: 0x9F4C, - 150249 - 131105: 0x90D8, - 150287 - 131105: 0x8D5B, - 150382 - 131105: 0x9EBE, - 150517 - 131105: 0xFB6D, - 150537 - 131105: 0x95CA, - 150686 - 131105: 0x9DC2, - 150687 - 131105: 0x97F8, - 150729 - 131105: 0x8FFC, - 150745 - 131105: 0x9473, - 150790 - 131105: 0x9474, - 150803 - 131105: 0xFEB7, - 150968 - 131105: 0x8A4B, - 151018 - 131105: 0x8A55, - 151019 - 131105: 0x8B69, - 151099 - 131105: 0x8ADC, - 151120 - 131105: 0x8B76, - 151205 - 131105: 0x9BCE, - 151207 - 131105: 0x8A68, - 151310 - 131105: 0xA0F8, - 151388 - 131105: 0x98DF, - 151426 - 131105: 0xFEB5, - 151430 - 131105: 0x9BCF, - 151447 - 131105: 0x96FB, - 151450 - 131105: 0x9BFB, - 151465 - 131105: 0x9ECE, - 151480 - 131105: 0x8EE5, - 151490 - 131105: 0x9E7B, - 151596 - 131105: 0x9BD2, - 151634 - 131105: 0x8AA5, - 151709 - 131105: 0xFECE, - 151851 - 131105: 0x8A45, - 151880 - 131105: 0x9DFC, - 151933 - 131105: 0xFECF, - 151934 - 131105: 0x8BA5, - 152013 - 131105: 0x8C4A, - 152035 - 131105: 0x8AEC, - 152038 - 131105: 0xFCE0, - 152039 - 131105: 0x94AD, - 152096 - 131105: 0xFED5, - 152097 - 131105: 0x94AC, - 152144 - 131105: 0xFC5A, - 152217 - 131105: 0x9BD6, - 152263 - 131105: 0x8A6F, - 152280 - 131105: 0x8BA9, - 152334 - 131105: 0x8E5F, - 152337 - 131105: 0x9DCB, - 152339 - 131105: 0xFCE7, - 152601 - 131105: 0x9BD7, - 152613 - 131105: 0x93C8, - 152623 - 131105: 0x91F0, - 152624 - 131105: 0x8FE0, - 152646 - 131105: 0x9BDB, - 152684 - 131105: 0x90ED, - 152686 - 131105: 0x9BDC, - 152730 - 131105: 0x8D53, - 152881 - 131105: 0xA0EC, - 152885 - 131105: 0x98FA, - 152895 - 131105: 0x9BE0, - 152923 - 131105: 0x93C7, - 152924 - 131105: 0x9249, - 152925 - 131105: 0x96E1, - 152926 - 131105: 0x9BE2, - 152930 - 131105: 0x9BE4, - 152933 - 131105: 0x8FE1, - 152934 - 131105: 0x9BE5, - 152961 - 131105: 0x94C0, - 152964 - 131105: 0x93C3, - 152975 - 131105: 0x93C5, - 153017 - 131105: 0x9079, - 153045 - 131105: 0x977B, - 153051 - 131105: 0x907E, - 153056 - 131105: 0xFEE6, - 153093 - 131105: 0xFE46, - 153141 - 131105: 0x9DB8, - 153169 - 131105: 0x9270, - 153219 - 131105: 0x95A8, - 153237 - 131105: 0x8CB0, - 153315 - 131105: 0x94C8, - 153334 - 131105: 0x98B9, - 153350 - 131105: 0x9140, - 153373 - 131105: 0xFCBE, - 153381 - 131105: 0x9157, - 153405 - 131105: 0x8BB2, - 153458 - 131105: 0xFADF, - 153543 - 131105: 0x9BE6, - 153567 - 131105: 0x9643, - 153568 - 131105: 0x8E44, - 153569 - 131105: 0x9C4F, - 153687 - 131105: 0xFEF4, - 153693 - 131105: 0x9BE8, - 153714 - 131105: 0x93DC, - 153800 - 131105: 0x966F, - 153822 - 131105: 0x87A1, - 153825 - 131105: 0x8E4A, - 153859 - 131105: 0x9BED, - 153926 - 131105: 0x92F6, - 153942 - 131105: 0x9DB9, - 154028 - 131105: 0x8E4E, - 154060 - 131105: 0xFBCF, - 154196 - 131105: 0x8760, - 154261 - 131105: 0x9EC2, - 154268 - 131105: 0x94E5, - 154286 - 131105: 0x9BF0, - 154287 - 131105: 0x94E4, - 154345 - 131105: 0x9551, - 154484 - 131105: 0x8BBB, - 154505 - 131105: 0x9BF1, - 154547 - 131105: 0x94F0, - 154548 - 131105: 0x8E64, - 154566 - 131105: 0x94EA, - 154596 - 131105: 0x8F61, - 154600 - 131105: 0x9B64, - 154625 - 131105: 0x8E5B, - 154630 - 131105: 0x9BF2, - 154657 - 131105: 0x9FBE, - 154698 - 131105: 0x9DC9, - 154725 - 131105: 0x8E6C, - 154769 - 131105: 0x8F73, - 154788 - 131105: 0x8CAF, - 154816 - 131105: 0x8F75, - 154817 - 131105: 0x8E71, - 154878 - 131105: 0x8E60, - 154912 - 131105: 0x8E6A, - 154928 - 131105: 0x8C4C, - 154947 - 131105: 0x9552, - 155033 - 131105: 0x87CF, - 155065 - 131105: 0x87C0, - 155150 - 131105: 0x9554, - 155209 - 131105: 0x8AD4, - 155265 - 131105: 0x9DBB, - 155266 - 131105: 0x9543, - 155267 - 131105: 0x92FE, - 155302 - 131105: 0x94F2, - 155324 - 131105: 0x94F1, - 155351 - 131105: 0xA0EA, - 155352 - 131105: 0x9DD2, - 155418 - 131105: 0xA0B1, - 155467 - 131105: 0x91F8, - 155617 - 131105: 0x9462, - 155618 - 131105: 0x9BA4, - 155681 - 131105: 0x877D, - 155689 - 131105: 0x8EAD, - 155720 - 131105: 0x9EAD, - 155748 - 131105: 0x96D0, - 155779 - 131105: 0xFEEE, - 155799 - 131105: 0x8AB4, - 155812 - 131105: 0x9757, - 155813 - 131105: 0x8A77, - 155906 - 131105: 0x9BF7, - 155937 - 131105: 0x8EB5, - 155993 - 131105: 0xA06D, - 155994 - 131105: 0x8EB6, - 155995 - 131105: 0x9756, - 155996 - 131105: 0x9540, - 156077 - 131105: 0xA0F3, - 156078 - 131105: 0x94BE, - 156082 - 131105: 0x9BFA, - 156125 - 131105: 0xFDDF, - 156248 - 131105: 0x9DBC, - 156257 - 131105: 0x94FE, - 156266 - 131105: 0x8BDB, - 156267 - 131105: 0xA0FE, - 156368 - 131105: 0x8EC0, - 156469 - 131105: 0x9F47, - 156491 - 131105: 0x8BDE, - 156492 - 131105: 0xA0FB, - 156497 - 131105: 0x8EC3, - 156606 - 131105: 0x9649, - 156661 - 131105: 0xFEC2, - 156664 - 131105: 0x954C, - 156674 - 131105: 0x9BFD, - 156688 - 131105: 0x90CC, - 156689 - 131105: 0x9C60, - 156690 - 131105: 0x954B, - 156746 - 131105: 0x9BFE, - 156777 - 131105: 0x9C70, - 156804 - 131105: 0x9C43, - 156808 - 131105: 0x9C47, - 156809 - 131105: 0x8ECC, - 156813 - 131105: 0x8E54, - 156824 - 131105: 0x8EE4, - 156946 - 131105: 0x9C49, - 157042 - 131105: 0x8B5E, - 157088 - 131105: 0x955E, - 157101 - 131105: 0x955C, - 157119 - 131105: 0x9C4B, - 157202 - 131105: 0x8BE1, - 157222 - 131105: 0x8ED9, - 157359 - 131105: 0x9DB4, - 157361 - 131105: 0x925F, - 157365 - 131105: 0x9C4C, - 157402 - 131105: 0x8AA1, - 157416 - 131105: 0x8EDB, - 157436 - 131105: 0x9C56, - 157462 - 131105: 0x8AA2, - 157505 - 131105: 0x9754, - 157593 - 131105: 0x9C5E, - 157619 - 131105: 0x9ED4, - 157620 - 131105: 0x9568, - 157644 - 131105: 0xA0C3, - 157724 - 131105: 0x8AE6, - 157766 - 131105: 0xA0F7, - 157790 - 131105: 0x9C61, - 157806 - 131105: 0x9C5F, - 157832 - 131105: 0xFC4D, - 157834 - 131105: 0x9E5B, - 157843 - 131105: 0x9E69, - 157895 - 131105: 0x9C63, - 157966 - 131105: 0xFEC7, - 157969 - 131105: 0xFEC6, - 157990 - 131105: 0x9C67, - 158009 - 131105: 0x9C69, - 158033 - 131105: 0x8BE2, - 158120 - 131105: 0x9165, - 158133 - 131105: 0x9CE7, - 158194 - 131105: 0x8A54, - 158202 - 131105: 0x9C6C, - 158253 - 131105: 0x9C6E, - 158254 - 131105: 0xFE5D, - 158260 - 131105: 0x9C73, - 158274 - 131105: 0x956A, - 158289 - 131105: 0x956D, - 158290 - 131105: 0x8EF0, - 158469 - 131105: 0x8F4D, - 158474 - 131105: 0x8EF6, - 158483 - 131105: 0xFABC, - 158485 - 131105: 0x8CD5, - 158499 - 131105: 0x875E, - 158504 - 131105: 0xFBDA, - 158544 - 131105: 0x8B4C, - 158545 - 131105: 0xFD75, - 158546 - 131105: 0x9BDD, - 158547 - 131105: 0xFAF5, - 158555 - 131105: 0x9C74, - 158581 - 131105: 0x9545, - 158594 - 131105: 0x96C6, - 158614 - 131105: 0x8F6A, - 158615 - 131105: 0x8F4E, - 158621 - 131105: 0x9C78, - 158643 - 131105: 0xFA55, - 158656 - 131105: 0x97E4, - 158711 - 131105: 0x9C41, - 158753 - 131105: 0x925C, - 158784 - 131105: 0x96FA, - 158785 - 131105: 0x8CF6, - 158790 - 131105: 0x8D4D, - 158846 - 131105: 0xFB66, - 158847 - 131105: 0x8E65, - 158848 - 131105: 0x9849, - 158849 - 131105: 0xFBA8, - 158850 - 131105: 0x9842, - 158884 - 131105: 0x9C7A, - 158903 - 131105: 0x97FB, - 158904 - 131105: 0x90CA, - 158909 - 131105: 0x9C5B, - 158912 - 131105: 0x974D, - 158915 - 131105: 0x8ED3, - 158929 - 131105: 0x9561, - 159010 - 131105: 0x9F4B, - 159011 - 131105: 0x9FB5, - 159012 - 131105: 0x93D2, - 159013 - 131105: 0xFDAA, - 159014 - 131105: 0x9840, - 159015 - 131105: 0x9146, - 159016 - 131105: 0x9867, - 159017 - 131105: 0xFA5A, - 159018 - 131105: 0xFBA9, - 159057 - 131105: 0x9841, - 159092 - 131105: 0x8CD3, - 159136 - 131105: 0xFCFD, - 159137 - 131105: 0xFDAB, - 159138 - 131105: 0x91BD, - 159139 - 131105: 0x8F4C, - 159140 - 131105: 0x96C9, - 159141 - 131105: 0x8F55, - 159142 - 131105: 0xFBAE, - 159143 - 131105: 0x956F, - 159150 - 131105: 0x9C7D, - 159196 - 131105: 0xA0F0, - 159210 - 131105: 0x946F, - 159211 - 131105: 0xFDAC, - 159216 - 131105: 0x96CB, - 159232 - 131105: 0x96CE, - 159237 - 131105: 0xA056, - 159239 - 131105: 0x9CE1, - 159250 - 131105: 0x96C4, - 159298 - 131105: 0x8F5E, - 159299 - 131105: 0x8F6C, - 159300 - 131105: 0x8EA3, - 159301 - 131105: 0xFBB3, - 159342 - 131105: 0xFC53, - 159346 - 131105: 0xFDB3, - 159351 - 131105: 0x8F6B, - 159364 - 131105: 0x96CA, - 159368 - 131105: 0x87CD, - 159371 - 131105: 0x8753, - 159385 - 131105: 0x8F79, - 159440 - 131105: 0x9E6F, - 159441 - 131105: 0xA0C5, - 159442 - 131105: 0xFC78, - 159443 - 131105: 0x8E42, - 159444 - 131105: 0x8F5A, - 159445 - 131105: 0x90C2, - 159446 - 131105: 0x8EA5, - 159447 - 131105: 0x9061, - 159526 - 131105: 0x924F, - 159603 - 131105: 0x9373, - 159604 - 131105: 0xFDB5, - 159647 - 131105: 0xFECC, - 159649 - 131105: 0xFBBD, - 159678 - 131105: 0x8CD6, - 159710 - 131105: 0x9843, - 159711 - 131105: 0x96C5, - 159758 - 131105: 0x89BC, - 159819 - 131105: 0x9CA3, - 159826 - 131105: 0x924B, - 159827 - 131105: 0x984A, - 159880 - 131105: 0x8FA4, - 159917 - 131105: 0xA0F1, - 159918 - 131105: 0x9EFB, - 159919 - 131105: 0x9CD2, - 159949 - 131105: 0x8FA7, - 159954 - 131105: 0x8754, - 159992 - 131105: 0xFC5C, - 160009 - 131105: 0x9845, - 160012 - 131105: 0x9046, - 160013 - 131105: 0x8CD1, - 160038 - 131105: 0xFEFA, - 160039 - 131105: 0x9560, - 160100 - 131105: 0x9F48, - 160101 - 131105: 0x9247, - 160117 - 131105: 0x90FB, - 160205 - 131105: 0x9CA4, - 160283 - 131105: 0x9571, - 160359 - 131105: 0x8745, - 160384 - 131105: 0x9CA6, - 160389 - 131105: 0x9CA7, - 160395 - 131105: 0x9CAA, - 160434 - 131105: 0x9ED3, - 160438 - 131105: 0x9E70, - 160486 - 131105: 0x9CAC, - 160594 - 131105: 0x8752, - 160666 - 131105: 0x8FAE, - 160767 - 131105: 0x8D50, - 160802 - 131105: 0x957D, - 160848 - 131105: 0x9CB0, - 160900 - 131105: 0x97B6, - 160902 - 131105: 0xA0BD, - 161140 - 131105: 0x8ADF, - 161187 - 131105: 0x9EAA, - 161248 - 131105: 0x8FBD, - 161252 - 131105: 0x8FBF, - 161277 - 131105: 0x9369, - 161278 - 131105: 0x9BA7, - 161287 - 131105: 0xC8A4, - 161292 - 131105: 0xFEEA, - 161330 - 131105: 0x9BE1, - 161337 - 131105: 0x8B41, - 161365 - 131105: 0x9DB6, - 161366 - 131105: 0xA0EB, - 161367 - 131105: 0x9BA3, - 161428 - 131105: 0x8BA1, - 161551 - 131105: 0x8FC8, - 161589 - 131105: 0x894C, - 161590 - 131105: 0x9860, - 161601 - 131105: 0x94C7, - 161630 - 131105: 0x8B58, - 161668 - 131105: 0x95AB, - 161669 - 131105: 0x95AA, - 161740 - 131105: 0x9CC3, - 161880 - 131105: 0x9CC4, - 161904 - 131105: 0x93D6, - 161949 - 131105: 0x9DAC, - 161970 - 131105: 0x8BE6, - 161992 - 131105: 0x8A71, - 162084 - 131105: 0x8FD1, - 162151 - 131105: 0x99D5, - 162170 - 131105: 0x90F4, - 162208 - 131105: 0x8AA3, - 162269 - 131105: 0x9CCE, - 162301 - 131105: 0x9CD4, - 162314 - 131105: 0x9CD5, - 162318 - 131105: 0xFBC8, - 162366 - 131105: 0x9DB3, - 162387 - 131105: 0xFC70, - 162393 - 131105: 0x8FD7, - 162425 - 131105: 0x9B73, - 162436 - 131105: 0xFA5B, - 162493 - 131105: 0x8FD2, - 162494 - 131105: 0x9064, - 162548 - 131105: 0x98B6, - 162566 - 131105: 0x9668, - 162571 - 131105: 0x9CD6, - 162584 - 131105: 0x98BD, - 162616 - 131105: 0x8FDC, - 162617 - 131105: 0xFEF6, - 162618 - 131105: 0x8FD9, - 162632 - 131105: 0x9541, - 162661 - 131105: 0x87CA, - 162799 - 131105: 0x876C, - 162804 - 131105: 0x97F3, - 162834 - 131105: 0x9BF8, - 162924 - 131105: 0x875A, - 162993 - 131105: 0x8748, - 163013 - 131105: 0x874A, - 163119 - 131105: 0x9E6C, - 163155 - 131105: 0x8FF2, - 163156 - 131105: 0x8FEE, - 163174 - 131105: 0x9CD7, - 163187 - 131105: 0x9E6E, - 163204 - 131105: 0x8A40, - 163215 - 131105: 0x8FEF, - 163224 - 131105: 0x8FF4, - 163261 - 131105: 0x8FF5, - 163292 - 131105: 0x95C2, - 163405 - 131105: 0x986A, - 163407 - 131105: 0x97CF, - 163630 - 131105: 0x9EE5, - 163833 - 131105: 0x9E7C, - 163842 - 131105: 0x9041, - 163849 - 131105: 0x9CDB, - 163870 - 131105: 0x9441, - 163875 - 131105: 0x9CE6, - 163876 - 131105: 0x9DB0, - 163912 - 131105: 0x9CEA, - 163971 - 131105: 0x9CED, - 163984 - 131105: 0x9CFA, - 164029 - 131105: 0x8B62, - 164030 - 131105: 0x8A4E, - 164072 - 131105: 0x9CCA, - 164073 - 131105: 0x8A66, - 164084 - 131105: 0x9CFB, - 164142 - 131105: 0x9CFC, - 164175 - 131105: 0x9CFE, - 164189 - 131105: 0x8A53, - 164207 - 131105: 0x9CE5, - 164233 - 131105: 0x9D40, - 164271 - 131105: 0x9D41, - 164284 - 131105: 0x9045, - 164359 - 131105: 0x8B73, - 164376 - 131105: 0x97CA, - 164378 - 131105: 0x9D42, - 164438 - 131105: 0x8A61, - 164476 - 131105: 0x8BAE, - 164507 - 131105: 0x8AD2, - 164557 - 131105: 0x8BA2, - 164578 - 131105: 0x9DF2, - 164614 - 131105: 0x9D43, - 164632 - 131105: 0x9CDF, - 164655 - 131105: 0x9D44, - 164666 - 131105: 0x8ECA, - 164709 - 131105: 0x904E, - 164717 - 131105: 0x8EB3, - 164733 - 131105: 0x9FF5, - 164746 - 131105: 0x9D45, - 164882 - 131105: 0x904F, - 164968 - 131105: 0x9D47, - 164972 - 131105: 0x89CA, - 164979 - 131105: 0x9CB5, - 164994 - 131105: 0xFBFE, - 165121 - 131105: 0x905E, - 165180 - 131105: 0x9063, - 165181 - 131105: 0x9057, - 165228 - 131105: 0x9066, - 165352 - 131105: 0x9BC0, - 165364 - 131105: 0xFCE5, - 165376 - 131105: 0x9162, - 165387 - 131105: 0x9067, - 165413 - 131105: 0x8FA1, - 165435 - 131105: 0x8FA2, - 165546 - 131105: 0x9D48, - 165547 - 131105: 0xFAD3, - 165554 - 131105: 0x8D4F, - 165564 - 131105: 0x905D, - 165592 - 131105: 0x90B9, - 165606 - 131105: 0x906B, - 165647 - 131105: 0x8C5C, - 165651 - 131105: 0x9069, - 165892 - 131105: 0xFE57, - 165931 - 131105: 0xFE55, - 166157 - 131105: 0x87A6, - 166195 - 131105: 0x9073, - 166216 - 131105: 0x9BEF, - 166217 - 131105: 0x9CF0, - 166230 - 131105: 0x9D4B, - 166244 - 131105: 0xFED9, - 166248 - 131105: 0xFEDA, - 166252 - 131105: 0x91E0, - 166253 - 131105: 0x8D43, - 166270 - 131105: 0x91D8, - 166281 - 131105: 0x9646, - 166312 - 131105: 0x9360, - 166314 - 131105: 0xFA53, - 166315 - 131105: 0x9CD3, - 166328 - 131105: 0x9D4E, - 166332 - 131105: 0xFB40, - 166336 - 131105: 0x8DE2, - 166364 - 131105: 0x9442, - 166366 - 131105: 0x9056, - 166369 - 131105: 0x9865, - 166371 - 131105: 0x8C6C, - 166372 - 131105: 0xFA4A, - 166375 - 131105: 0x9D50, - 166376 - 131105: 0x9D52, - 166393 - 131105: 0x95AF, - 166394 - 131105: 0x975A, - 166395 - 131105: 0x9349, - 166396 - 131105: 0x9747, - 166415 - 131105: 0xA0F4, - 166422 - 131105: 0x9778, - 166437 - 131105: 0x8FCF, - 166441 - 131105: 0xFC60, - 166450 - 131105: 0x8C4E, - 166454 - 131105: 0xFC56, - 166468 - 131105: 0x91DC, - 166469 - 131105: 0x9661, - 166470 - 131105: 0x92EC, - 166471 - 131105: 0x935D, - 166472 - 131105: 0x8EDE, - 166473 - 131105: 0x96FE, - 166474 - 131105: 0xFD4F, - 166475 - 131105: 0x95DE, - 166489 - 131105: 0x98B0, - 166490 - 131105: 0xA040, - 166529 - 131105: 0x97BD, - 166530 - 131105: 0x977D, - 166531 - 131105: 0x97F5, - 166554 - 131105: 0x9BAC, - 166555 - 131105: 0xFADA, - 166556 - 131105: 0x92C2, - 166592 - 131105: 0x97B1, - 166598 - 131105: 0x907B, - 166603 - 131105: 0x93FE, - 166604 - 131105: 0x947B, - 166606 - 131105: 0x9777, - 166622 - 131105: 0xFABE, - 166623 - 131105: 0xFD43, - 166624 - 131105: 0x90C6, - 166625 - 131105: 0x90A4, - 166626 - 131105: 0x90A8, - 166627 - 131105: 0x94A9, - 166629 - 131105: 0x90A9, - 166634 - 131105: 0x8C65, - 166652 - 131105: 0x95E0, - 166668 - 131105: 0x907D, - 166675 - 131105: 0x9265, - 166689 - 131105: 0xFDBA, - 166690 - 131105: 0x93C4, - 166699 - 131105: 0xFEED, - 166700 - 131105: 0x9DAB, - 166701 - 131105: 0xA0E3, - 166703 - 131105: 0x9648, - 166726 - 131105: 0x9D53, - 166732 - 131105: 0x8AA9, - 166734 - 131105: 0x9BC5, - 166736 - 131105: 0x965D, - 166755 - 131105: 0x975F, - 166756 - 131105: 0x965F, - 166757 - 131105: 0x966E, - 166758 - 131105: 0xFB5D, - 166764 - 131105: 0x9DB1, - 166799 - 131105: 0xFEA3, - 166809 - 131105: 0x9DB2, - 166812 - 131105: 0x95AE, - 166813 - 131105: 0xFCA3, - 166841 - 131105: 0x8769, - 166850 - 131105: 0xA0A2, - 166853 - 131105: 0x9655, - 166868 - 131105: 0x9D54, - 166871 - 131105: 0x9341, - 166873 - 131105: 0x95AD, - 166874 - 131105: 0x91D5, - 166887 - 131105: 0x977A, - 166888 - 131105: 0xFDFC, - 166889 - 131105: 0x8E47, - 166890 - 131105: 0x93FD, - 166891 - 131105: 0x90A5, - 166892 - 131105: 0x90AC, - 166901 - 131105: 0x95AC, - 166911 - 131105: 0x90AE, - 166915 - 131105: 0xFEA5, - 166921 - 131105: 0x9D56, - 166940 - 131105: 0x97E3, - 166941 - 131105: 0x95E2, - 166947 - 131105: 0x9466, - 166950 - 131105: 0x9647, - 166955 - 131105: 0x91B8, - 166960 - 131105: 0x9CEC, - 166969 - 131105: 0x90AD, - 166971 - 131105: 0x95E3, - 167114 - 131105: 0x8B4F, - 167117 - 131105: 0x8AE3, - 167122 - 131105: 0x8B4D, - 167220 - 131105: 0x95EA, - 167321 - 131105: 0x8B4E, - 167353 - 131105: 0x8CC1, - 167439 - 131105: 0x8BED, - 167478 - 131105: 0x91D9, - 167481 - 131105: 0xA0A4, - 167525 - 131105: 0x95F5, - 167526 - 131105: 0x95F4, - 167575 - 131105: 0x9FB3, - 167596 - 131105: 0xFEAF, - 167602 - 131105: 0xFE72, - 167603 - 131105: 0x927A, - 167641 - 131105: 0xFEAC, - 167655 - 131105: 0x95F3, - 167877 - 131105: 0x9D58, - 168057 - 131105: 0x8D46, - 168072 - 131105: 0x9372, - 168075 - 131105: 0x91C5, - 168083 - 131105: 0x9642, - 168111 - 131105: 0x90CD, - 168112 - 131105: 0x95FE, - 168113 - 131105: 0x9159, - 168128 - 131105: 0x9C65, - 168164 - 131105: 0x97CC, - 168165 - 131105: 0x90CE, - 168172 - 131105: 0x9D59, - 168173 - 131105: 0xFCF5, - 168205 - 131105: 0xFEFD, - 168208 - 131105: 0x9D5B, - 168252 - 131105: 0x9D5C, - 168269 - 131105: 0x937E, - 168283 - 131105: 0x98AC, - 168286 - 131105: 0x9D5E, - 168304 - 131105: 0xFDD0, - 168348 - 131105: 0xFD60, - 168360 - 131105: 0x9CCF, - 168405 - 131105: 0x90DD, - 168427 - 131105: 0x90E0, - 168989 - 131105: 0x90F3, - 168992 - 131105: 0x98B1, - 169011 - 131105: 0x90F0, - 169023 - 131105: 0x93BD, - 169032 - 131105: 0x95B7, - 169168 - 131105: 0x9F46, - 169177 - 131105: 0x8E4B, - 169178 - 131105: 0x9658, - 169189 - 131105: 0x8A4C, - 169191 - 131105: 0x9D63, - 169374 - 131105: 0x9ECF, - 169392 - 131105: 0x9D65, - 169400 - 131105: 0x9D66, - 169431 - 131105: 0x965A, - 169449 - 131105: 0x9D64, - 169460 - 131105: 0x8A6C, - 169760 - 131105: 0x8AD9, - 169778 - 131105: 0x9D67, - 169940 - 131105: 0x8A70, - 170000 - 131105: 0x8BF3, - 170071 - 131105: 0x9150, - 170148 - 131105: 0x9CC1, - 170193 - 131105: 0x9D68, - 170218 - 131105: 0x93A7, - 170225 - 131105: 0x9674, - 170234 - 131105: 0x8CFD, - 170243 - 131105: 0xA0EF, - 170245 - 131105: 0x9151, - 170287 - 131105: 0x96C1, - 170309 - 131105: 0x8777, - 170311 - 131105: 0x8C64, - 170312 - 131105: 0x9676, - 170313 - 131105: 0x9D69, - 170333 - 131105: 0xFCA4, - 170346 - 131105: 0x9D6A, - 170397 - 131105: 0x924E, - 170435 - 131105: 0x9D6B, - 170441 - 131105: 0x9BC1, - 170536 - 131105: 0x9D6C, - 170573 - 131105: 0x8A65, - 170757 - 131105: 0x915D, - 170766 - 131105: 0x9D6D, - 170965 - 131105: 0x915A, - 171123 - 131105: 0x8C42, - 171181 - 131105: 0x9CC0, - 171326 - 131105: 0x916A, - 171354 - 131105: 0x9D6E, - 171388 - 131105: 0x9EA6, - 171416 - 131105: 0x9DCD, - 171419 - 131105: 0x9D6F, - 171510 - 131105: 0x89BB, - 171526 - 131105: 0x9EF9, - 171565 - 131105: 0x96B4, - 171624 - 131105: 0x9172, - 171692 - 131105: 0x9EC8, - 171696 - 131105: 0x8771, - 171715 - 131105: 0x8B55, - 171768 - 131105: 0x9D71, - 171811 - 131105: 0x9D72, - 171824 - 131105: 0x9ECC, - 171959 - 131105: 0x9174, - 171998 - 131105: 0x9ED0, - 172052 - 131105: 0x905C, - 172167 - 131105: 0x8ED2, - 172217 - 131105: 0x91A8, - 172257 - 131105: 0x9177, - 172269 - 131105: 0x96BF, - 172275 - 131105: 0x96C0, - 172280 - 131105: 0x8FB1, - 172286 - 131105: 0x96B7, - 172295 - 131105: 0x8C55, - 172323 - 131105: 0x9178, - 172339 - 131105: 0x89BE, - 172340 - 131105: 0x917C, - 172368 - 131105: 0xFB77, - 172434 - 131105: 0x9175, - 172435 - 131105: 0x91A3, - 172459 - 131105: 0x9176, - 172468 - 131105: 0x96BE, - 172469 - 131105: 0x8D49, - 172511 - 131105: 0x9179, - 172533 - 131105: 0x96B6, - 172576 - 131105: 0x91A4, - 172595 - 131105: 0x91A6, - 172691 - 131105: 0x9D75, - 172703 - 131105: 0x9052, - 172722 - 131105: 0xA045, - 172724 - 131105: 0x91A9, - 172726 - 131105: 0x98AA, - 172730 - 131105: 0x8C5F, - 172733 - 131105: 0x8BAA, - 172767 - 131105: 0x9CDD, - 172799 - 131105: 0x9D77, - 172881 - 131105: 0x8756, - 172969 - 131105: 0x8940, - 173108 - 131105: 0x9EEC, - 173147 - 131105: 0x93AA, - 173510 - 131105: 0x9478, - 173515 - 131105: 0x9D7A, - 173569 - 131105: 0x8AC9, - 173618 - 131105: 0x8B4B, - 173642 - 131105: 0x9FEC, - 173659 - 131105: 0x8AE2, - 173737 - 131105: 0x9E75, -} - -const encode1Low, encode1High = 11904, 40908 - -var encode1 = [...]uint16{ - 11904 - 11904: 0xC8D6, - 11908 - 11904: 0xC8D7, - 11910 - 11904: 0xC8D8, - 11911 - 11904: 0xC8D9, - 11912 - 11904: 0xC8DA, - 11914 - 11904: 0xC8DB, - 11916 - 11904: 0xC8DC, - 11917 - 11904: 0xC8DD, - 11925 - 11904: 0xC8DE, - 11932 - 11904: 0xC8DF, - 11933 - 11904: 0xC8E0, - 11941 - 11904: 0xC8E1, - 11943 - 11904: 0xC8E2, - 11946 - 11904: 0xC8E3, - 11948 - 11904: 0xC8E4, - 11950 - 11904: 0xC8E5, - 11958 - 11904: 0xC8E6, - 11964 - 11904: 0xC8E7, - 11966 - 11904: 0xC8E8, - 11974 - 11904: 0xC8E9, - 11978 - 11904: 0xC8EA, - 11980 - 11904: 0xC8EB, - 11981 - 11904: 0xC8EC, - 11983 - 11904: 0xC8ED, - 11990 - 11904: 0xC8EE, - 11991 - 11904: 0xC8EF, - 11998 - 11904: 0xC8F0, - 12003 - 11904: 0xC8F1, - 12083 - 11904: 0xC6CD, - 12288 - 11904: 0xA140, - 12289 - 11904: 0xA142, - 12290 - 11904: 0xA143, - 12291 - 11904: 0xC6DE, - 12293 - 11904: 0xC6E0, - 12294 - 11904: 0xC6E1, - 12295 - 11904: 0xC6E2, - 12296 - 11904: 0xA171, - 12297 - 11904: 0xA172, - 12298 - 11904: 0xA16D, - 12299 - 11904: 0xA16E, - 12300 - 11904: 0xA175, - 12301 - 11904: 0xA176, - 12302 - 11904: 0xA179, - 12303 - 11904: 0xA17A, - 12304 - 11904: 0xA169, - 12305 - 11904: 0xA16A, - 12306 - 11904: 0xA245, - 12308 - 11904: 0xA165, - 12309 - 11904: 0xA166, - 12317 - 11904: 0xA1A9, - 12318 - 11904: 0xA1AA, - 12321 - 11904: 0xA2C3, - 12322 - 11904: 0xA2C4, - 12323 - 11904: 0xA2C5, - 12324 - 11904: 0xA2C6, - 12325 - 11904: 0xA2C7, - 12326 - 11904: 0xA2C8, - 12327 - 11904: 0xA2C9, - 12328 - 11904: 0xA2CA, - 12329 - 11904: 0xA2CB, - 12353 - 11904: 0xC6E7, - 12354 - 11904: 0xC6E8, - 12355 - 11904: 0xC6E9, - 12356 - 11904: 0xC6EA, - 12357 - 11904: 0xC6EB, - 12358 - 11904: 0xC6EC, - 12359 - 11904: 0xC6ED, - 12360 - 11904: 0xC6EE, - 12361 - 11904: 0xC6EF, - 12362 - 11904: 0xC6F0, - 12363 - 11904: 0xC6F1, - 12364 - 11904: 0xC6F2, - 12365 - 11904: 0xC6F3, - 12366 - 11904: 0xC6F4, - 12367 - 11904: 0xC6F5, - 12368 - 11904: 0xC6F6, - 12369 - 11904: 0xC6F7, - 12370 - 11904: 0xC6F8, - 12371 - 11904: 0xC6F9, - 12372 - 11904: 0xC6FA, - 12373 - 11904: 0xC6FB, - 12374 - 11904: 0xC6FC, - 12375 - 11904: 0xC6FD, - 12376 - 11904: 0xC6FE, - 12377 - 11904: 0xC740, - 12378 - 11904: 0xC741, - 12379 - 11904: 0xC742, - 12380 - 11904: 0xC743, - 12381 - 11904: 0xC744, - 12382 - 11904: 0xC745, - 12383 - 11904: 0xC746, - 12384 - 11904: 0xC747, - 12385 - 11904: 0xC748, - 12386 - 11904: 0xC749, - 12387 - 11904: 0xC74A, - 12388 - 11904: 0xC74B, - 12389 - 11904: 0xC74C, - 12390 - 11904: 0xC74D, - 12391 - 11904: 0xC74E, - 12392 - 11904: 0xC74F, - 12393 - 11904: 0xC750, - 12394 - 11904: 0xC751, - 12395 - 11904: 0xC752, - 12396 - 11904: 0xC753, - 12397 - 11904: 0xC754, - 12398 - 11904: 0xC755, - 12399 - 11904: 0xC756, - 12400 - 11904: 0xC757, - 12401 - 11904: 0xC758, - 12402 - 11904: 0xC759, - 12403 - 11904: 0xC75A, - 12404 - 11904: 0xC75B, - 12405 - 11904: 0xC75C, - 12406 - 11904: 0xC75D, - 12407 - 11904: 0xC75E, - 12408 - 11904: 0xC75F, - 12409 - 11904: 0xC760, - 12410 - 11904: 0xC761, - 12411 - 11904: 0xC762, - 12412 - 11904: 0xC763, - 12413 - 11904: 0xC764, - 12414 - 11904: 0xC765, - 12415 - 11904: 0xC766, - 12416 - 11904: 0xC767, - 12417 - 11904: 0xC768, - 12418 - 11904: 0xC769, - 12419 - 11904: 0xC76A, - 12420 - 11904: 0xC76B, - 12421 - 11904: 0xC76C, - 12422 - 11904: 0xC76D, - 12423 - 11904: 0xC76E, - 12424 - 11904: 0xC76F, - 12425 - 11904: 0xC770, - 12426 - 11904: 0xC771, - 12427 - 11904: 0xC772, - 12428 - 11904: 0xC773, - 12429 - 11904: 0xC774, - 12430 - 11904: 0xC775, - 12431 - 11904: 0xC776, - 12432 - 11904: 0xC777, - 12433 - 11904: 0xC778, - 12434 - 11904: 0xC779, - 12435 - 11904: 0xC77A, - 12443 - 11904: 0xC8D4, - 12444 - 11904: 0xC8D5, - 12445 - 11904: 0xC6DC, - 12446 - 11904: 0xC6DD, - 12449 - 11904: 0xC77B, - 12450 - 11904: 0xC77C, - 12451 - 11904: 0xC77D, - 12452 - 11904: 0xC77E, - 12453 - 11904: 0xC7A1, - 12454 - 11904: 0xC7A2, - 12455 - 11904: 0xC7A3, - 12456 - 11904: 0xC7A4, - 12457 - 11904: 0xC7A5, - 12458 - 11904: 0xC7A6, - 12459 - 11904: 0xC7A7, - 12460 - 11904: 0xC7A8, - 12461 - 11904: 0xC7A9, - 12462 - 11904: 0xC7AA, - 12463 - 11904: 0xC7AB, - 12464 - 11904: 0xC7AC, - 12465 - 11904: 0xC7AD, - 12466 - 11904: 0xC7AE, - 12467 - 11904: 0xC7AF, - 12468 - 11904: 0xC7B0, - 12469 - 11904: 0xC7B1, - 12470 - 11904: 0xC7B2, - 12471 - 11904: 0xC7B3, - 12472 - 11904: 0xC7B4, - 12473 - 11904: 0xC7B5, - 12474 - 11904: 0xC7B6, - 12475 - 11904: 0xC7B7, - 12476 - 11904: 0xC7B8, - 12477 - 11904: 0xC7B9, - 12478 - 11904: 0xC7BA, - 12479 - 11904: 0xC7BB, - 12480 - 11904: 0xC7BC, - 12481 - 11904: 0xC7BD, - 12482 - 11904: 0xC7BE, - 12483 - 11904: 0xC7BF, - 12484 - 11904: 0xC7C0, - 12485 - 11904: 0xC7C1, - 12486 - 11904: 0xC7C2, - 12487 - 11904: 0xC7C3, - 12488 - 11904: 0xC7C4, - 12489 - 11904: 0xC7C5, - 12490 - 11904: 0xC7C6, - 12491 - 11904: 0xC7C7, - 12492 - 11904: 0xC7C8, - 12493 - 11904: 0xC7C9, - 12494 - 11904: 0xC7CA, - 12495 - 11904: 0xC7CB, - 12496 - 11904: 0xC7CC, - 12497 - 11904: 0xC7CD, - 12498 - 11904: 0xC7CE, - 12499 - 11904: 0xC7CF, - 12500 - 11904: 0xC7D0, - 12501 - 11904: 0xC7D1, - 12502 - 11904: 0xC7D2, - 12503 - 11904: 0xC7D3, - 12504 - 11904: 0xC7D4, - 12505 - 11904: 0xC7D5, - 12506 - 11904: 0xC7D6, - 12507 - 11904: 0xC7D7, - 12508 - 11904: 0xC7D8, - 12509 - 11904: 0xC7D9, - 12510 - 11904: 0xC7DA, - 12511 - 11904: 0xC7DB, - 12512 - 11904: 0xC7DC, - 12513 - 11904: 0xC7DD, - 12514 - 11904: 0xC7DE, - 12515 - 11904: 0xC7DF, - 12516 - 11904: 0xC7E0, - 12517 - 11904: 0xC7E1, - 12518 - 11904: 0xC7E2, - 12519 - 11904: 0xC7E3, - 12520 - 11904: 0xC7E4, - 12521 - 11904: 0xC7E5, - 12522 - 11904: 0xC7E6, - 12523 - 11904: 0xC7E7, - 12524 - 11904: 0xC7E8, - 12525 - 11904: 0xC7E9, - 12526 - 11904: 0xC7EA, - 12527 - 11904: 0xC7EB, - 12528 - 11904: 0xC7EC, - 12529 - 11904: 0xC7ED, - 12530 - 11904: 0xC7EE, - 12531 - 11904: 0xC7EF, - 12532 - 11904: 0xC7F0, - 12533 - 11904: 0xC7F1, - 12534 - 11904: 0xC7F2, - 12540 - 11904: 0xC6E3, - 12541 - 11904: 0xC6DA, - 12542 - 11904: 0xC6DB, - 12549 - 11904: 0xA374, - 12550 - 11904: 0xA375, - 12551 - 11904: 0xA376, - 12552 - 11904: 0xA377, - 12553 - 11904: 0xA378, - 12554 - 11904: 0xA379, - 12555 - 11904: 0xA37A, - 12556 - 11904: 0xA37B, - 12557 - 11904: 0xA37C, - 12558 - 11904: 0xA37D, - 12559 - 11904: 0xA37E, - 12560 - 11904: 0xA3A1, - 12561 - 11904: 0xA3A2, - 12562 - 11904: 0xA3A3, - 12563 - 11904: 0xA3A4, - 12564 - 11904: 0xA3A5, - 12565 - 11904: 0xA3A6, - 12566 - 11904: 0xA3A7, - 12567 - 11904: 0xA3A8, - 12568 - 11904: 0xA3A9, - 12569 - 11904: 0xA3AA, - 12570 - 11904: 0xA3AB, - 12571 - 11904: 0xA3AC, - 12572 - 11904: 0xA3AD, - 12573 - 11904: 0xA3AE, - 12574 - 11904: 0xA3AF, - 12575 - 11904: 0xA3B0, - 12576 - 11904: 0xA3B1, - 12577 - 11904: 0xA3B2, - 12578 - 11904: 0xA3B3, - 12579 - 11904: 0xA3B4, - 12580 - 11904: 0xA3B5, - 12581 - 11904: 0xA3B6, - 12582 - 11904: 0xA3B7, - 12583 - 11904: 0xA3B8, - 12584 - 11904: 0xA3B9, - 12585 - 11904: 0xA3BA, - 12736 - 11904: 0x8840, - 12737 - 11904: 0x8841, - 12738 - 11904: 0x8842, - 12739 - 11904: 0x8843, - 12740 - 11904: 0x8844, - 12741 - 11904: 0x8846, - 12742 - 11904: 0x8849, - 12743 - 11904: 0x884A, - 12744 - 11904: 0x884D, - 12745 - 11904: 0x884F, - 12746 - 11904: 0x8850, - 12747 - 11904: 0x8851, - 12748 - 11904: 0x8852, - 12749 - 11904: 0x8854, - 12750 - 11904: 0x8855, - 12751 - 11904: 0xC879, - 12849 - 11904: 0xC8D1, - 12963 - 11904: 0xA1C0, - 13198 - 11904: 0xA255, - 13199 - 11904: 0xA256, - 13212 - 11904: 0xA250, - 13213 - 11904: 0xA251, - 13214 - 11904: 0xA252, - 13217 - 11904: 0xA254, - 13252 - 11904: 0xA257, - 13262 - 11904: 0xA253, - 13265 - 11904: 0xA1EB, - 13266 - 11904: 0xA1EA, - 13269 - 11904: 0xA24F, - 13365 - 11904: 0x9277, - 13376 - 11904: 0x96DF, - 13386 - 11904: 0x8CF4, - 13388 - 11904: 0x89D5, - 13412 - 11904: 0x93CD, - 13427 - 11904: 0x9BDF, - 13434 - 11904: 0xFA68, - 13437 - 11904: 0x89DA, - 13438 - 11904: 0x8F59, - 13459 - 11904: 0x89DB, - 13462 - 11904: 0x8F5D, - 13477 - 11904: 0x89DC, - 13487 - 11904: 0x96F7, - 13500 - 11904: 0x8ADA, - 13505 - 11904: 0x8BDC, - 13512 - 11904: 0x97DB, - 13535 - 11904: 0x9E53, - 13540 - 11904: 0x9DAA, - 13542 - 11904: 0x87BE, - 13563 - 11904: 0x9BEA, - 13574 - 11904: 0x8A6E, - 13630 - 11904: 0x8BC8, - 13649 - 11904: 0x89E8, - 13651 - 11904: 0x89EA, - 13657 - 11904: 0x8C4B, - 13665 - 11904: 0xFB70, - 13677 - 11904: 0x89ED, - 13680 - 11904: 0x94DD, - 13682 - 11904: 0x89EE, - 13687 - 11904: 0x9EB4, - 13688 - 11904: 0x8AD3, - 13700 - 11904: 0x92DB, - 13719 - 11904: 0x94DB, - 13720 - 11904: 0x89F9, - 13729 - 11904: 0xFB7A, - 13733 - 11904: 0x89FB, - 13741 - 11904: 0x9EFC, - 13759 - 11904: 0x89FC, - 13761 - 11904: 0x89BF, - 13765 - 11904: 0x89FE, - 13767 - 11904: 0x89E6, - 13770 - 11904: 0x9D46, - 13774 - 11904: 0x9DEE, - 13778 - 11904: 0xA07E, - 13782 - 11904: 0xA068, - 13787 - 11904: 0x98E9, - 13789 - 11904: 0x8B68, - 13809 - 11904: 0x8DFD, - 13810 - 11904: 0x8BBE, - 13811 - 11904: 0x9FD9, - 13819 - 11904: 0x8AEB, - 13822 - 11904: 0x9FD7, - 13833 - 11904: 0x8B6A, - 13848 - 11904: 0x9C5C, - 13850 - 11904: 0x8BB1, - 13859 - 11904: 0xFB5E, - 13861 - 11904: 0x8770, - 13869 - 11904: 0x9DF3, - 13877 - 11904: 0xA0D0, - 13881 - 11904: 0xFC66, - 13886 - 11904: 0x92E9, - 13895 - 11904: 0x9AEC, - 13896 - 11904: 0x8FAB, - 13897 - 11904: 0xFA48, - 13902 - 11904: 0x8E45, - 13919 - 11904: 0x9C6F, - 13921 - 11904: 0x8D5C, - 13946 - 11904: 0x9EDE, - 13953 - 11904: 0x89EF, - 13978 - 11904: 0x96E9, - 13989 - 11904: 0x9EBB, - 13994 - 11904: 0x94DE, - 13996 - 11904: 0x9EB8, - 14000 - 11904: 0x97BA, - 14001 - 11904: 0xFB65, - 14005 - 11904: 0x95D6, - 14009 - 11904: 0x9CBB, - 14012 - 11904: 0x97DA, - 14017 - 11904: 0x8F45, - 14019 - 11904: 0xFB7D, - 14020 - 11904: 0x9158, - 14021 - 11904: 0xFE64, - 14023 - 11904: 0x9856, - 14024 - 11904: 0x9B4D, - 14035 - 11904: 0x935B, - 14036 - 11904: 0x95C7, - 14038 - 11904: 0x97E7, - 14045 - 11904: 0x9359, - 14049 - 11904: 0x91F5, - 14050 - 11904: 0x97B8, - 14053 - 11904: 0xFDA2, - 14054 - 11904: 0xFBB6, - 14069 - 11904: 0x92FA, - 14081 - 11904: 0x9357, - 14083 - 11904: 0x8BA6, - 14088 - 11904: 0xFBB9, - 14090 - 11904: 0x97B0, - 14093 - 11904: 0xFDC4, - 14108 - 11904: 0x9CA1, - 14114 - 11904: 0x91F2, - 14115 - 11904: 0x91F9, - 14117 - 11904: 0x8FF1, - 14124 - 11904: 0x9745, - 14125 - 11904: 0x9853, - 14128 - 11904: 0xFE78, - 14130 - 11904: 0xFBC1, - 14131 - 11904: 0x9251, - 14138 - 11904: 0x9DAD, - 14144 - 11904: 0xFD6C, - 14147 - 11904: 0xFA6B, - 14178 - 11904: 0x9BC2, - 14191 - 11904: 0x9A7B, - 14231 - 11904: 0x8B60, - 14240 - 11904: 0x934B, - 14265 - 11904: 0x9ABD, - 14270 - 11904: 0x91B7, - 14294 - 11904: 0x8D4B, - 14322 - 11904: 0x95B4, - 14328 - 11904: 0xFEC5, - 14331 - 11904: 0x9EF0, - 14351 - 11904: 0x8D64, - 14361 - 11904: 0x9269, - 14368 - 11904: 0x8D67, - 14381 - 11904: 0xFBEA, - 14390 - 11904: 0xFBEF, - 14392 - 11904: 0x8D68, - 14435 - 11904: 0x93EB, - 14453 - 11904: 0x877A, - 14496 - 11904: 0xFC42, - 14531 - 11904: 0x9166, - 14540 - 11904: 0xFACD, - 14545 - 11904: 0x93DD, - 14548 - 11904: 0x8D52, - 14586 - 11904: 0x8BCC, - 14600 - 11904: 0x8D6D, - 14612 - 11904: 0x8D6E, - 14631 - 11904: 0x96A8, - 14642 - 11904: 0xFCA6, - 14655 - 11904: 0x8D6F, - 14669 - 11904: 0x8D70, - 14691 - 11904: 0xFC64, - 14712 - 11904: 0x8CF3, - 14720 - 11904: 0x9060, - 14729 - 11904: 0x8D74, - 14730 - 11904: 0x97C3, - 14738 - 11904: 0x8AD0, - 14745 - 11904: 0x9274, - 14747 - 11904: 0x9BBE, - 14753 - 11904: 0x9CC8, - 14756 - 11904: 0x9CBA, - 14776 - 11904: 0x8D78, - 14812 - 11904: 0x9EB9, - 14818 - 11904: 0x955A, - 14821 - 11904: 0x91B4, - 14828 - 11904: 0x8A48, - 14840 - 11904: 0x8D7D, - 14843 - 11904: 0x8A7D, - 14846 - 11904: 0x8AC2, - 14849 - 11904: 0xFD4A, - 14851 - 11904: 0x8DA1, - 14854 - 11904: 0x8AD1, - 14871 - 11904: 0xFCB4, - 14872 - 11904: 0x8B47, - 14889 - 11904: 0x93A4, - 14890 - 11904: 0x9EDA, - 14900 - 11904: 0x8A51, - 14923 - 11904: 0x8DA6, - 14930 - 11904: 0x9EC5, - 14935 - 11904: 0xFCC4, - 14940 - 11904: 0xA078, - 14942 - 11904: 0x94B5, - 14950 - 11904: 0xFCC2, - 14951 - 11904: 0x8A6B, - 14999 - 11904: 0x8DAB, - 15019 - 11904: 0xFAE8, - 15037 - 11904: 0x8DAD, - 15070 - 11904: 0xFC49, - 15072 - 11904: 0x93C1, - 15088 - 11904: 0x906F, - 15090 - 11904: 0x8DB0, - 15093 - 11904: 0x87A2, - 15099 - 11904: 0x947E, - 15118 - 11904: 0x90FA, - 15129 - 11904: 0x9479, - 15138 - 11904: 0x8DB2, - 15147 - 11904: 0xFCEE, - 15161 - 11904: 0x997B, - 15170 - 11904: 0x8DB4, - 15192 - 11904: 0x8DB7, - 15200 - 11904: 0x91B3, - 15217 - 11904: 0x8DBB, - 15218 - 11904: 0x8DBA, - 15227 - 11904: 0x8DBC, - 15228 - 11904: 0x9044, - 15232 - 11904: 0xFD4C, - 15253 - 11904: 0x874B, - 15254 - 11904: 0x93E4, - 15257 - 11904: 0x93E0, - 15265 - 11904: 0xFD53, - 15292 - 11904: 0x8DC3, - 15294 - 11904: 0x9BB8, - 15298 - 11904: 0xFBF0, - 15300 - 11904: 0x93E9, - 15319 - 11904: 0x93F6, - 15325 - 11904: 0x8DC5, - 15340 - 11904: 0x8DCA, - 15346 - 11904: 0x8DCC, - 15347 - 11904: 0xFD5D, - 15348 - 11904: 0x93B5, - 15373 - 11904: 0xFD61, - 15377 - 11904: 0x9CF8, - 15381 - 11904: 0x9252, - 15384 - 11904: 0xA0E8, - 15444 - 11904: 0x9CA5, - 15499 - 11904: 0x8C56, - 15563 - 11904: 0x8DD6, - 15565 - 11904: 0x97C0, - 15569 - 11904: 0xA0DE, - 15574 - 11904: 0x97D2, - 15580 - 11904: 0xFAA5, - 15595 - 11904: 0xFDA3, - 15599 - 11904: 0x8DDB, - 15634 - 11904: 0x8CEA, - 15635 - 11904: 0x8EAF, - 15645 - 11904: 0x91B5, - 15666 - 11904: 0xFD49, - 15675 - 11904: 0xFDD1, - 15686 - 11904: 0x8DEB, - 15692 - 11904: 0x97C6, - 15694 - 11904: 0xFDCE, - 15697 - 11904: 0x90FC, - 15711 - 11904: 0xFC59, - 15714 - 11904: 0x96D6, - 15721 - 11904: 0x97C5, - 15722 - 11904: 0x8DEF, - 15727 - 11904: 0x97D7, - 15733 - 11904: 0x8DF0, - 15741 - 11904: 0x96A6, - 15749 - 11904: 0xFBBF, - 15752 - 11904: 0x8CDF, - 15754 - 11904: 0x8DF3, - 15759 - 11904: 0x9449, - 15761 - 11904: 0x8DF5, - 15781 - 11904: 0x9872, - 15789 - 11904: 0x8E6B, - 15796 - 11904: 0xFAFD, - 15807 - 11904: 0x8F50, - 15814 - 11904: 0x9DCC, - 15815 - 11904: 0xFC65, - 15817 - 11904: 0x8C44, - 15820 - 11904: 0x996E, - 15821 - 11904: 0x94A1, - 15827 - 11904: 0x8F63, - 15835 - 11904: 0xA0DA, - 15847 - 11904: 0x9253, - 15848 - 11904: 0xFDE9, - 15851 - 11904: 0x9DB5, - 15859 - 11904: 0x9879, - 15860 - 11904: 0x876A, - 15863 - 11904: 0x9D5D, - 15868 - 11904: 0x8D63, - 15869 - 11904: 0x9669, - 15878 - 11904: 0x9F70, - 15936 - 11904: 0xFC6A, - 15939 - 11904: 0x8AC7, - 15944 - 11904: 0x89D7, - 15957 - 11904: 0xFE4D, - 15988 - 11904: 0x9EDD, - 16040 - 11904: 0xFEFB, - 16041 - 11904: 0x98BC, - 16042 - 11904: 0xFACC, - 16045 - 11904: 0x95B0, - 16049 - 11904: 0x9464, - 16056 - 11904: 0x936F, - 16063 - 11904: 0x94B9, - 16066 - 11904: 0x95EC, - 16071 - 11904: 0x91EE, - 16074 - 11904: 0x98C3, - 16076 - 11904: 0x95F6, - 16080 - 11904: 0x8FFD, - 16081 - 11904: 0x98C5, - 16086 - 11904: 0x9766, - 16087 - 11904: 0xFE6E, - 16090 - 11904: 0x97DD, - 16091 - 11904: 0x8CAA, - 16094 - 11904: 0x92D2, - 16097 - 11904: 0x9761, - 16098 - 11904: 0x98CB, - 16103 - 11904: 0x95F0, - 16105 - 11904: 0x975D, - 16107 - 11904: 0x91E3, - 16108 - 11904: 0x877E, - 16112 - 11904: 0x98CC, - 16115 - 11904: 0x9469, - 16116 - 11904: 0x98CD, - 16122 - 11904: 0x98CE, - 16124 - 11904: 0x95FC, - 16127 - 11904: 0x94A3, - 16128 - 11904: 0x9662, - 16132 - 11904: 0xFEB6, - 16134 - 11904: 0x9463, - 16135 - 11904: 0x8D47, - 16142 - 11904: 0x98D0, - 16211 - 11904: 0x98D1, - 16216 - 11904: 0x9475, - 16217 - 11904: 0xFAE0, - 16227 - 11904: 0x9472, - 16252 - 11904: 0x98D6, - 16275 - 11904: 0x8AF0, - 16320 - 11904: 0x98D9, - 16328 - 11904: 0x8D5A, - 16343 - 11904: 0x98DB, - 16348 - 11904: 0x98DD, - 16357 - 11904: 0x98A8, - 16365 - 11904: 0x8A6D, - 16377 - 11904: 0x8AFB, - 16378 - 11904: 0x8AAE, - 16388 - 11904: 0xFBC9, - 16393 - 11904: 0x8C5D, - 16413 - 11904: 0x98E4, - 16441 - 11904: 0x98E6, - 16453 - 11904: 0x98E8, - 16467 - 11904: 0x8A4D, - 16471 - 11904: 0x9257, - 16482 - 11904: 0x95DF, - 16485 - 11904: 0xA0AC, - 16490 - 11904: 0x98EB, - 16495 - 11904: 0x98EC, - 16497 - 11904: 0x8CC3, - 16552 - 11904: 0x98F4, - 16564 - 11904: 0x87D9, - 16571 - 11904: 0x8AB8, - 16575 - 11904: 0x9EE7, - 16584 - 11904: 0x94BC, - 16600 - 11904: 0xFCD1, - 16607 - 11904: 0x9CC6, - 16632 - 11904: 0x8D4A, - 16634 - 11904: 0x9E7E, - 16642 - 11904: 0x8D44, - 16643 - 11904: 0x98FE, - 16644 - 11904: 0xFDE8, - 16649 - 11904: 0x9940, - 16654 - 11904: 0x94C9, - 16689 - 11904: 0x87C6, - 16690 - 11904: 0x94D3, - 16743 - 11904: 0x9946, - 16748 - 11904: 0x90C0, - 16750 - 11904: 0x94D1, - 16764 - 11904: 0x8D4E, - 16767 - 11904: 0x9573, - 16769 - 11904: 0x87CE, - 16784 - 11904: 0x93C2, - 16818 - 11904: 0x9948, - 16836 - 11904: 0x994B, - 16842 - 11904: 0x8E55, - 16847 - 11904: 0x994E, - 16859 - 11904: 0x8EFE, - 16877 - 11904: 0x8D5F, - 16879 - 11904: 0x8E59, - 16889 - 11904: 0x94EC, - 16913 - 11904: 0x94EF, - 16931 - 11904: 0x8C60, - 16960 - 11904: 0x8F74, - 16992 - 11904: 0x9955, - 17002 - 11904: 0x9544, - 17014 - 11904: 0x8CCB, - 17018 - 11904: 0x9956, - 17036 - 11904: 0x9959, - 17044 - 11904: 0x995B, - 17058 - 11904: 0x8CC4, - 17077 - 11904: 0xFA45, - 17081 - 11904: 0x90B7, - 17084 - 11904: 0x9743, - 17140 - 11904: 0x95CD, - 17147 - 11904: 0x97C9, - 17148 - 11904: 0xFD50, - 17162 - 11904: 0x87AA, - 17195 - 11904: 0x8EB9, - 17262 - 11904: 0x95C6, - 17303 - 11904: 0x9967, - 17306 - 11904: 0x8CE3, - 17338 - 11904: 0x8AB9, - 17345 - 11904: 0x8DFC, - 17369 - 11904: 0x8A76, - 17375 - 11904: 0x9D51, - 17389 - 11904: 0x9973, - 17392 - 11904: 0x8740, - 17394 - 11904: 0x9D4F, - 17409 - 11904: 0x997A, - 17410 - 11904: 0x9564, - 17427 - 11904: 0x99A1, - 17445 - 11904: 0x99A5, - 17453 - 11904: 0x99A7, - 17530 - 11904: 0x8EED, - 17551 - 11904: 0x99AD, - 17553 - 11904: 0xC87E, - 17567 - 11904: 0x946E, - 17568 - 11904: 0x8F70, - 17570 - 11904: 0xFAD0, - 17584 - 11904: 0x99B3, - 17591 - 11904: 0xA053, - 17597 - 11904: 0x8D5E, - 17600 - 11904: 0x965C, - 17603 - 11904: 0x8CE0, - 17605 - 11904: 0xFD7A, - 17614 - 11904: 0x97FE, - 17629 - 11904: 0x92BD, - 17630 - 11904: 0x8D5D, - 17631 - 11904: 0x97FD, - 17633 - 11904: 0x87DB, - 17636 - 11904: 0x8F64, - 17641 - 11904: 0xFCF7, - 17642 - 11904: 0x9562, - 17643 - 11904: 0x97CD, - 17644 - 11904: 0x9E64, - 17652 - 11904: 0x924C, - 17667 - 11904: 0x8EC9, - 17668 - 11904: 0x99BC, - 17673 - 11904: 0x9DA5, - 17675 - 11904: 0x8F54, - 17686 - 11904: 0x8F7C, - 17691 - 11904: 0x8D55, - 17693 - 11904: 0x8EA2, - 17703 - 11904: 0x8F7A, - 17710 - 11904: 0x97AE, - 17715 - 11904: 0x96C8, - 17718 - 11904: 0x8CE4, - 17723 - 11904: 0x99C3, - 17725 - 11904: 0x90D6, - 17727 - 11904: 0x9CBE, - 17731 - 11904: 0x8F76, - 17745 - 11904: 0x9470, - 17746 - 11904: 0xFB4B, - 17749 - 11904: 0xFDCA, - 17752 - 11904: 0x8CEF, - 17756 - 11904: 0x8EC7, - 17761 - 11904: 0x8D54, - 17762 - 11904: 0xA0F9, - 17770 - 11904: 0x8FA9, - 17773 - 11904: 0x8D51, - 17783 - 11904: 0x99C7, - 17784 - 11904: 0x8744, - 17797 - 11904: 0x90D7, - 17830 - 11904: 0x8743, - 17843 - 11904: 0x8747, - 17882 - 11904: 0x8758, - 17897 - 11904: 0x9EDF, - 17898 - 11904: 0x8D59, - 17923 - 11904: 0x8742, - 17926 - 11904: 0x99CE, - 17935 - 11904: 0x8FBA, - 17941 - 11904: 0x8FEB, - 17943 - 11904: 0x99CF, - 18011 - 11904: 0x8FC2, - 18042 - 11904: 0x92C9, - 18048 - 11904: 0x97DC, - 18081 - 11904: 0x875D, - 18094 - 11904: 0x87CC, - 18107 - 11904: 0x8D45, - 18127 - 11904: 0x95B3, - 18128 - 11904: 0x9C79, - 18165 - 11904: 0x95B2, - 18167 - 11904: 0x8D4C, - 18195 - 11904: 0x8FDB, - 18200 - 11904: 0x9BE3, - 18230 - 11904: 0x874C, - 18244 - 11904: 0x874D, - 18254 - 11904: 0x9E7A, - 18255 - 11904: 0x8757, - 18300 - 11904: 0x9BEE, - 18328 - 11904: 0x99DE, - 18342 - 11904: 0xFAFA, - 18389 - 11904: 0x8A52, - 18413 - 11904: 0x99E1, - 18420 - 11904: 0x8A67, - 18432 - 11904: 0x8BB5, - 18443 - 11904: 0x8AAC, - 18487 - 11904: 0x99E9, - 18525 - 11904: 0xFBCA, - 18545 - 11904: 0x97DE, - 18587 - 11904: 0x95D1, - 18605 - 11904: 0x99F5, - 18606 - 11904: 0xFC4A, - 18640 - 11904: 0x9BA9, - 18653 - 11904: 0xFBDC, - 18669 - 11904: 0xFE56, - 18675 - 11904: 0x9EA4, - 18682 - 11904: 0x9D49, - 18694 - 11904: 0x95DB, - 18705 - 11904: 0x89C5, - 18718 - 11904: 0x99F8, - 18725 - 11904: 0x9664, - 18730 - 11904: 0x9055, - 18733 - 11904: 0x96D4, - 18735 - 11904: 0x87C4, - 18736 - 11904: 0x87AE, - 18741 - 11904: 0x977C, - 18748 - 11904: 0x964D, - 18750 - 11904: 0x97E1, - 18757 - 11904: 0x9A48, - 18769 - 11904: 0x9A49, - 18771 - 11904: 0xFE7D, - 18789 - 11904: 0x90AA, - 18794 - 11904: 0x9A50, - 18802 - 11904: 0x9347, - 18825 - 11904: 0x8ED8, - 18849 - 11904: 0x90C9, - 18855 - 11904: 0x9A55, - 18911 - 11904: 0x90BC, - 18917 - 11904: 0x9A58, - 18919 - 11904: 0x8BB8, - 18959 - 11904: 0x90D5, - 18973 - 11904: 0x9641, - 18980 - 11904: 0x9A5A, - 18997 - 11904: 0x9A5C, - 19094 - 11904: 0x97C2, - 19108 - 11904: 0x875C, - 19124 - 11904: 0x8ABB, - 19128 - 11904: 0x9BAA, - 19153 - 11904: 0x90F5, - 19172 - 11904: 0x9A60, - 19199 - 11904: 0x9145, - 19216 - 11904: 0x8C58, - 19225 - 11904: 0x9A63, - 19232 - 11904: 0x8C49, - 19244 - 11904: 0x8BB6, - 19255 - 11904: 0xFCCF, - 19311 - 11904: 0x966B, - 19312 - 11904: 0x9A6E, - 19314 - 11904: 0x914F, - 19323 - 11904: 0x9746, - 19326 - 11904: 0xA0E6, - 19342 - 11904: 0x92D7, - 19344 - 11904: 0x9675, - 19347 - 11904: 0x93D4, - 19350 - 11904: 0x91BB, - 19351 - 11904: 0x9679, - 19357 - 11904: 0x9A70, - 19389 - 11904: 0x9678, - 19390 - 11904: 0x91CD, - 19392 - 11904: 0x9C4A, - 19460 - 11904: 0xA06F, - 19463 - 11904: 0xA06A, - 19470 - 11904: 0x915F, - 19506 - 11904: 0x8741, - 19515 - 11904: 0x9FA5, - 19518 - 11904: 0x89BA, - 19520 - 11904: 0x874F, - 19527 - 11904: 0x874E, - 19543 - 11904: 0x8755, - 19547 - 11904: 0x9ECD, - 19565 - 11904: 0x9A79, - 19575 - 11904: 0x8CF2, - 19579 - 11904: 0x8D57, - 19581 - 11904: 0x9DCE, - 19585 - 11904: 0x8CD2, - 19589 - 11904: 0x8759, - 19620 - 11904: 0x9D73, - 19630 - 11904: 0x96B9, - 19632 - 11904: 0x96BC, - 19639 - 11904: 0x9CD1, - 19661 - 11904: 0x89B7, - 19681 - 11904: 0x9EEE, - 19682 - 11904: 0x8749, - 19693 - 11904: 0xFB43, - 19719 - 11904: 0x875B, - 19721 - 11904: 0x9EC9, - 19728 - 11904: 0xFBD3, - 19764 - 11904: 0x91AE, - 19830 - 11904: 0x8D58, - 19831 - 11904: 0x8746, - 19849 - 11904: 0x8D56, - 19857 - 11904: 0x9D78, - 19868 - 11904: 0x9D7B, - 19968 - 11904: 0xA440, - 19969 - 11904: 0xA442, - 19971 - 11904: 0xA443, - 19972 - 11904: 0x9EB3, - 19975 - 11904: 0xC945, - 19976 - 11904: 0xA456, - 19977 - 11904: 0xA454, - 19978 - 11904: 0xA457, - 19979 - 11904: 0xA455, - 19980 - 11904: 0xC946, - 19981 - 11904: 0xA4A3, - 19982 - 11904: 0xC94F, - 19983 - 11904: 0xC94D, - 19984 - 11904: 0xA4A2, - 19985 - 11904: 0xA4A1, - 19988 - 11904: 0xA542, - 19989 - 11904: 0xA541, - 19990 - 11904: 0xA540, - 19992 - 11904: 0xA543, - 19993 - 11904: 0xA4FE, - 19994 - 11904: 0x9EB2, - 19996 - 11904: 0x9DD6, - 19998 - 11904: 0xA5E0, - 19999 - 11904: 0xA5E1, - 20001 - 11904: 0x994F, - 20004 - 11904: 0x89CE, - 20006 - 11904: 0xA8C3, - 20008 - 11904: 0x8BC0, - 20010 - 11904: 0x9FC4, - 20011 - 11904: 0xA458, - 20012 - 11904: 0x8BD4, - 20013 - 11904: 0xA4A4, - 20014 - 11904: 0xC950, - 20015 - 11904: 0x8C72, - 20016 - 11904: 0xA4A5, - 20017 - 11904: 0xC963, - 20018 - 11904: 0xA6EA, - 20019 - 11904: 0xCBB1, - 20022 - 11904: 0xC6BF, - 20023 - 11904: 0x8BF9, - 20024 - 11904: 0xA459, - 20025 - 11904: 0xA4A6, - 20027 - 11904: 0xA544, - 20028 - 11904: 0xC964, - 20029 - 11904: 0x8946, - 20031 - 11904: 0xC6C0, - 20034 - 11904: 0xC940, - 20035 - 11904: 0xA444, - 20037 - 11904: 0xA45B, - 20039 - 11904: 0xC947, - 20040 - 11904: 0xA45C, - 20041 - 11904: 0xFAE5, - 20043 - 11904: 0xA4A7, - 20045 - 11904: 0xA545, - 20046 - 11904: 0xA547, - 20047 - 11904: 0xA546, - 20050 - 11904: 0xA5E2, - 20051 - 11904: 0xA5E3, - 20054 - 11904: 0xA8C4, - 20056 - 11904: 0xADBC, - 20057 - 11904: 0xA441, - 20058 - 11904: 0xC87B, - 20059 - 11904: 0x8BC6, - 20060 - 11904: 0xC941, - 20061 - 11904: 0xA445, - 20062 - 11904: 0xA45E, - 20063 - 11904: 0xA45D, - 20073 - 11904: 0xA5E4, - 20074 - 11904: 0x9C57, - 20083 - 11904: 0xA8C5, - 20088 - 11904: 0x9AFB, - 20094 - 11904: 0xB0AE, - 20095 - 11904: 0xD44B, - 20096 - 11904: 0x89D0, - 20097 - 11904: 0x89CF, - 20098 - 11904: 0xB6C3, - 20099 - 11904: 0xDCB1, - 20100 - 11904: 0xDCB2, - 20101 - 11904: 0xC6C1, - 20102 - 11904: 0xA446, - 20103 - 11904: 0x89D1, - 20104 - 11904: 0xA4A9, - 20105 - 11904: 0x89E2, - 20107 - 11904: 0xA8C6, - 20108 - 11904: 0xA447, - 20109 - 11904: 0xC948, - 20110 - 11904: 0xA45F, - 20113 - 11904: 0xA4AA, - 20114 - 11904: 0xA4AC, - 20115 - 11904: 0xC951, - 20116 - 11904: 0xA4AD, - 20117 - 11904: 0xA4AB, - 20120 - 11904: 0x927E, - 20121 - 11904: 0xA5E5, - 20122 - 11904: 0x9DBA, - 20123 - 11904: 0xA8C7, - 20126 - 11904: 0xA8C8, - 20127 - 11904: 0xAB45, - 20128 - 11904: 0xC6C2, - 20129 - 11904: 0xA460, - 20130 - 11904: 0xA4AE, - 20131 - 11904: 0x8C6F, - 20132 - 11904: 0xA5E6, - 20133 - 11904: 0xA5E8, - 20134 - 11904: 0xA5E7, - 20136 - 11904: 0xA6EB, - 20139 - 11904: 0xA8C9, - 20140 - 11904: 0xA8CA, - 20141 - 11904: 0xAB46, - 20142 - 11904: 0xAB47, - 20147 - 11904: 0xADBD, - 20150 - 11904: 0xDCB3, - 20151 - 11904: 0xFBF8, - 20153 - 11904: 0xF6D6, - 20154 - 11904: 0xA448, - 20155 - 11904: 0x8BC7, - 20156 - 11904: 0x926B, - 20159 - 11904: 0x89D2, - 20160 - 11904: 0xA4B0, - 20161 - 11904: 0xA4AF, - 20162 - 11904: 0xC952, - 20163 - 11904: 0xA4B1, - 20164 - 11904: 0xA4B7, - 20166 - 11904: 0xA4B2, - 20167 - 11904: 0xA4B3, - 20168 - 11904: 0xC954, - 20169 - 11904: 0xC953, - 20170 - 11904: 0xA4B5, - 20171 - 11904: 0xA4B6, - 20173 - 11904: 0xA4B4, - 20174 - 11904: 0x9FCF, - 20180 - 11904: 0xA54A, - 20181 - 11904: 0xA54B, - 20182 - 11904: 0xA54C, - 20183 - 11904: 0xA54D, - 20184 - 11904: 0xA549, - 20185 - 11904: 0xA550, - 20186 - 11904: 0xC96A, - 20188 - 11904: 0xC966, - 20189 - 11904: 0xC969, - 20190 - 11904: 0xA551, - 20191 - 11904: 0xA561, - 20193 - 11904: 0xC968, - 20195 - 11904: 0xA54E, - 20196 - 11904: 0xA54F, - 20197 - 11904: 0xA548, - 20200 - 11904: 0xC965, - 20201 - 11904: 0xC967, - 20202 - 11904: 0x9DA9, - 20203 - 11904: 0x89D3, - 20206 - 11904: 0x99E2, - 20208 - 11904: 0xA5F5, - 20209 - 11904: 0xC9B0, - 20210 - 11904: 0xA5F2, - 20211 - 11904: 0xA5F6, - 20212 - 11904: 0xC9BA, - 20213 - 11904: 0xC9AE, - 20214 - 11904: 0xA5F3, - 20215 - 11904: 0xC9B2, - 20216 - 11904: 0x9267, - 20219 - 11904: 0xA5F4, - 20221 - 11904: 0xA5F7, - 20223 - 11904: 0xA5E9, - 20224 - 11904: 0xC9B1, - 20225 - 11904: 0xA5F8, - 20226 - 11904: 0xC9B5, - 20227 - 11904: 0x92A4, - 20228 - 11904: 0xC9B9, - 20229 - 11904: 0xC9B6, - 20232 - 11904: 0xC9B3, - 20233 - 11904: 0xA5EA, - 20234 - 11904: 0xA5EC, - 20235 - 11904: 0xA5F9, - 20237 - 11904: 0xA5EE, - 20238 - 11904: 0xC9AB, - 20239 - 11904: 0xA5F1, - 20240 - 11904: 0xA5EF, - 20241 - 11904: 0xA5F0, - 20242 - 11904: 0xC9BB, - 20243 - 11904: 0xC9B8, - 20244 - 11904: 0xC9AF, - 20245 - 11904: 0xA5ED, - 20247 - 11904: 0x8C73, - 20248 - 11904: 0xC9AC, - 20249 - 11904: 0xA5EB, - 20250 - 11904: 0x894E, - 20253 - 11904: 0xC9B4, - 20258 - 11904: 0xC9B7, - 20264 - 11904: 0x894F, - 20265 - 11904: 0x9278, - 20268 - 11904: 0xC9AD, - 20269 - 11904: 0xCA66, - 20271 - 11904: 0xA742, - 20272 - 11904: 0xA6F4, - 20274 - 11904: 0x91B6, - 20275 - 11904: 0xCA67, - 20276 - 11904: 0xA6F1, - 20278 - 11904: 0xA744, - 20279 - 11904: 0x89D4, - 20280 - 11904: 0xA6F9, - 20281 - 11904: 0x9FD2, - 20282 - 11904: 0xA6F8, - 20283 - 11904: 0xCA5B, - 20284 - 11904: 0xA6FC, - 20285 - 11904: 0xA6F7, - 20286 - 11904: 0xCA60, - 20287 - 11904: 0xCA68, - 20289 - 11904: 0xCA64, - 20290 - 11904: 0x92A7, - 20291 - 11904: 0xA6FA, - 20293 - 11904: 0x95A2, - 20294 - 11904: 0xA6FD, - 20295 - 11904: 0xA6EE, - 20296 - 11904: 0xA747, - 20297 - 11904: 0xCA5D, - 20299 - 11904: 0x926E, - 20300 - 11904: 0xCBBD, - 20301 - 11904: 0xA6EC, - 20302 - 11904: 0xA743, - 20303 - 11904: 0xA6ED, - 20304 - 11904: 0xA6F5, - 20305 - 11904: 0xA6F6, - 20306 - 11904: 0xCA62, - 20307 - 11904: 0xCA5E, - 20308 - 11904: 0xA6FB, - 20309 - 11904: 0xA6F3, - 20310 - 11904: 0xCA5A, - 20311 - 11904: 0xA6EF, - 20312 - 11904: 0xCA65, - 20313 - 11904: 0xA745, - 20314 - 11904: 0xA748, - 20315 - 11904: 0xA6F2, - 20316 - 11904: 0xA740, - 20317 - 11904: 0xA746, - 20318 - 11904: 0xA6F0, - 20319 - 11904: 0xCA63, - 20320 - 11904: 0xA741, - 20321 - 11904: 0xCA69, - 20322 - 11904: 0xCA5C, - 20323 - 11904: 0xA6FE, - 20324 - 11904: 0xCA5F, - 20327 - 11904: 0xCA61, - 20329 - 11904: 0xA8D8, - 20330 - 11904: 0xCBBF, - 20331 - 11904: 0xCBCB, - 20332 - 11904: 0xA8D0, - 20334 - 11904: 0xCBCC, - 20335 - 11904: 0xA8CB, - 20336 - 11904: 0xA8D5, - 20338 - 11904: 0x96EA, - 20339 - 11904: 0xA8CE, - 20340 - 11904: 0xCBB9, - 20341 - 11904: 0xA8D6, - 20342 - 11904: 0xCBB8, - 20343 - 11904: 0xCBBC, - 20344 - 11904: 0xCBC3, - 20345 - 11904: 0xCBC1, - 20346 - 11904: 0xA8DE, - 20347 - 11904: 0xA8D9, - 20348 - 11904: 0xCBB3, - 20349 - 11904: 0xCBB5, - 20350 - 11904: 0xA8DB, - 20351 - 11904: 0xA8CF, - 20352 - 11904: 0xCBB6, - 20353 - 11904: 0xCBC2, - 20354 - 11904: 0xCBC9, - 20355 - 11904: 0xA8D4, - 20356 - 11904: 0xCBBB, - 20357 - 11904: 0xCBB4, - 20358 - 11904: 0xA8D3, - 20359 - 11904: 0xCBB7, - 20360 - 11904: 0xA8D7, - 20361 - 11904: 0xCBBA, - 20362 - 11904: 0x926F, - 20363 - 11904: 0xA8D2, - 20365 - 11904: 0xA8CD, - 20367 - 11904: 0xA8DC, - 20368 - 11904: 0xCBC4, - 20369 - 11904: 0xA8DD, - 20370 - 11904: 0xCBC8, - 20372 - 11904: 0xCBC6, - 20373 - 11904: 0xCBCA, - 20374 - 11904: 0xA8DA, - 20375 - 11904: 0xCBBE, - 20376 - 11904: 0xCBB2, - 20378 - 11904: 0xCBC0, - 20379 - 11904: 0xA8D1, - 20380 - 11904: 0xCBC5, - 20381 - 11904: 0xA8CC, - 20382 - 11904: 0xCBC7, - 20386 - 11904: 0x92A3, - 20392 - 11904: 0x8950, - 20395 - 11904: 0xFA57, - 20398 - 11904: 0xAB56, - 20399 - 11904: 0xAB4A, - 20400 - 11904: 0x9866, - 20402 - 11904: 0xCDE0, - 20403 - 11904: 0xCDE8, - 20404 - 11904: 0x8CF8, - 20405 - 11904: 0xAB49, - 20406 - 11904: 0xAB51, - 20407 - 11904: 0xAB5D, - 20409 - 11904: 0xCDEE, - 20410 - 11904: 0xCDEC, - 20411 - 11904: 0xCDE7, - 20413 - 11904: 0x89D6, - 20415 - 11904: 0xAB4B, - 20416 - 11904: 0xCDED, - 20417 - 11904: 0xCDE3, - 20418 - 11904: 0xAB59, - 20419 - 11904: 0xAB50, - 20420 - 11904: 0xAB58, - 20421 - 11904: 0xCDDE, - 20423 - 11904: 0xCDEA, - 20424 - 11904: 0x98B2, - 20425 - 11904: 0xCDE1, - 20426 - 11904: 0xAB54, - 20427 - 11904: 0xCDE2, - 20428 - 11904: 0x92AB, - 20429 - 11904: 0xCDDD, - 20430 - 11904: 0xAB5B, - 20431 - 11904: 0xAB4E, - 20432 - 11904: 0xAB57, - 20433 - 11904: 0xAB4D, - 20435 - 11904: 0xCDDF, - 20436 - 11904: 0xCDE4, - 20438 - 11904: 0xCDEB, - 20439 - 11904: 0xAB55, - 20440 - 11904: 0xAB52, - 20441 - 11904: 0xCDE6, - 20442 - 11904: 0xAB5A, - 20443 - 11904: 0xCDE9, - 20444 - 11904: 0xCDE5, - 20445 - 11904: 0xAB4F, - 20446 - 11904: 0xAB5C, - 20447 - 11904: 0xAB53, - 20448 - 11904: 0xAB4C, - 20449 - 11904: 0xAB48, - 20452 - 11904: 0x96DE, - 20453 - 11904: 0x92AC, - 20460 - 11904: 0xCDEF, - 20462 - 11904: 0xADD7, - 20463 - 11904: 0xADC1, - 20464 - 11904: 0x8C70, - 20465 - 11904: 0xADD1, - 20466 - 11904: 0x9F6E, - 20467 - 11904: 0xADD6, - 20468 - 11904: 0xD0D0, - 20469 - 11904: 0xD0CF, - 20470 - 11904: 0xD0D4, - 20471 - 11904: 0xD0D5, - 20472 - 11904: 0xADC4, - 20473 - 11904: 0x8EF2, - 20474 - 11904: 0xADCD, - 20477 - 11904: 0x9F6C, - 20478 - 11904: 0xADDA, - 20480 - 11904: 0xADCE, - 20483 - 11904: 0x89D8, - 20485 - 11904: 0xD0C9, - 20486 - 11904: 0xADC7, - 20487 - 11904: 0xD0CA, - 20488 - 11904: 0xFA59, - 20489 - 11904: 0xADDC, - 20491 - 11904: 0xADD3, - 20492 - 11904: 0xADBE, - 20493 - 11904: 0xADBF, - 20494 - 11904: 0xD0DD, - 20495 - 11904: 0xB0BF, - 20497 - 11904: 0xADCC, - 20498 - 11904: 0xADCB, - 20499 - 11904: 0xD0CB, - 20500 - 11904: 0xADCF, - 20501 - 11904: 0xD45B, - 20502 - 11904: 0xADC6, - 20503 - 11904: 0xD0D6, - 20504 - 11904: 0xADD5, - 20505 - 11904: 0xADD4, - 20506 - 11904: 0xADCA, - 20507 - 11904: 0xD0CE, - 20508 - 11904: 0xD0D7, - 20510 - 11904: 0xD0C8, - 20511 - 11904: 0xADC9, - 20512 - 11904: 0xD0D8, - 20513 - 11904: 0xADD2, - 20514 - 11904: 0xD0CC, - 20515 - 11904: 0xADC0, - 20517 - 11904: 0xADC3, - 20518 - 11904: 0xADC2, - 20519 - 11904: 0xD0D9, - 20520 - 11904: 0xADD0, - 20521 - 11904: 0xFA5F, - 20522 - 11904: 0xADD9, - 20523 - 11904: 0xADDB, - 20524 - 11904: 0xD0D3, - 20525 - 11904: 0xADD8, - 20526 - 11904: 0x92A8, - 20527 - 11904: 0xD0DB, - 20528 - 11904: 0xD0CD, - 20529 - 11904: 0xD0DC, - 20531 - 11904: 0xD0D1, - 20532 - 11904: 0x9163, - 20533 - 11904: 0xD0DA, - 20535 - 11904: 0xD0D2, - 20539 - 11904: 0x8C40, - 20540 - 11904: 0xADC8, - 20544 - 11904: 0xD463, - 20545 - 11904: 0xD457, - 20547 - 11904: 0xB0B3, - 20549 - 11904: 0xD45C, - 20550 - 11904: 0xD462, - 20551 - 11904: 0xB0B2, - 20552 - 11904: 0xD455, - 20553 - 11904: 0xB0B6, - 20554 - 11904: 0xD459, - 20555 - 11904: 0xD452, - 20556 - 11904: 0xB0B4, - 20557 - 11904: 0xD456, - 20558 - 11904: 0xB0B9, - 20559 - 11904: 0xB0BE, - 20561 - 11904: 0xD467, - 20563 - 11904: 0xD451, - 20565 - 11904: 0xB0BA, - 20566 - 11904: 0x9F73, - 20567 - 11904: 0xD466, - 20568 - 11904: 0x92AD, - 20570 - 11904: 0xB0B5, - 20571 - 11904: 0xD458, - 20572 - 11904: 0xB0B1, - 20573 - 11904: 0xD453, - 20574 - 11904: 0xD44F, - 20575 - 11904: 0xD45D, - 20576 - 11904: 0xD450, - 20577 - 11904: 0xD44E, - 20578 - 11904: 0xD45A, - 20579 - 11904: 0xD460, - 20580 - 11904: 0xD461, - 20581 - 11904: 0xB0B7, - 20582 - 11904: 0x9BE9, - 20584 - 11904: 0xD85B, - 20585 - 11904: 0xD45E, - 20586 - 11904: 0xD44D, - 20587 - 11904: 0xD45F, - 20588 - 11904: 0x92A9, - 20589 - 11904: 0xB0C1, - 20590 - 11904: 0xD464, - 20591 - 11904: 0xB0C0, - 20592 - 11904: 0xD44C, - 20594 - 11904: 0xD454, - 20595 - 11904: 0xD465, - 20596 - 11904: 0xB0BC, - 20597 - 11904: 0xB0BB, - 20598 - 11904: 0xB0B8, - 20599 - 11904: 0xB0BD, - 20602 - 11904: 0xB0AF, - 20605 - 11904: 0xFA66, - 20608 - 11904: 0xB3C8, - 20609 - 11904: 0x92AA, - 20610 - 11904: 0xD85E, - 20611 - 11904: 0xD857, - 20613 - 11904: 0xB3C5, - 20615 - 11904: 0xD85F, - 20616 - 11904: 0x89D9, - 20619 - 11904: 0xD855, - 20620 - 11904: 0xD858, - 20621 - 11904: 0xB3C4, - 20622 - 11904: 0xD859, - 20624 - 11904: 0xFD56, - 20625 - 11904: 0xB3C7, - 20626 - 11904: 0xD85D, - 20628 - 11904: 0xD853, - 20629 - 11904: 0xD852, - 20630 - 11904: 0xB3C9, - 20632 - 11904: 0xB3CA, - 20633 - 11904: 0xB3C6, - 20634 - 11904: 0xB3CB, - 20635 - 11904: 0xD851, - 20636 - 11904: 0xD85C, - 20637 - 11904: 0xD85A, - 20638 - 11904: 0xD854, - 20642 - 11904: 0xB3C3, - 20643 - 11904: 0xD856, - 20646 - 11904: 0x9FA8, - 20652 - 11904: 0xB6CA, - 20653 - 11904: 0xB6C4, - 20654 - 11904: 0xDCB7, - 20655 - 11904: 0xB6CD, - 20656 - 11904: 0xDCBD, - 20657 - 11904: 0xDCC0, - 20658 - 11904: 0xB6C6, - 20659 - 11904: 0xB6C7, - 20660 - 11904: 0xDCBA, - 20661 - 11904: 0xB6C5, - 20662 - 11904: 0xDCC3, - 20663 - 11904: 0xB6CB, - 20664 - 11904: 0xDCC4, - 20666 - 11904: 0xDCBF, - 20667 - 11904: 0xB6CC, - 20668 - 11904: 0x8C71, - 20669 - 11904: 0xDCB4, - 20670 - 11904: 0xB6C9, - 20671 - 11904: 0xDCB5, - 20673 - 11904: 0xDCBE, - 20674 - 11904: 0xDCBC, - 20676 - 11904: 0xDCB8, - 20677 - 11904: 0xB6C8, - 20678 - 11904: 0xDCB6, - 20679 - 11904: 0xB6CE, - 20680 - 11904: 0xDCBB, - 20681 - 11904: 0xDCC2, - 20682 - 11904: 0xDCB9, - 20683 - 11904: 0xDCC1, - 20685 - 11904: 0x92A1, - 20686 - 11904: 0xB9B6, - 20687 - 11904: 0xB9B3, - 20688 - 11904: 0x90E3, - 20689 - 11904: 0xB9B4, - 20691 - 11904: 0xE0F9, - 20692 - 11904: 0xE0F1, - 20693 - 11904: 0xB9B2, - 20694 - 11904: 0xB9AF, - 20695 - 11904: 0xE0F2, - 20697 - 11904: 0xA0A6, - 20698 - 11904: 0xB9B1, - 20699 - 11904: 0xE0F5, - 20701 - 11904: 0xE0F7, - 20703 - 11904: 0x94AB, - 20704 - 11904: 0xE0FE, - 20705 - 11904: 0xFC72, - 20707 - 11904: 0xE0FD, - 20708 - 11904: 0xE0F8, - 20709 - 11904: 0xB9AE, - 20710 - 11904: 0xE0F0, - 20711 - 11904: 0xB9AC, - 20712 - 11904: 0xE0F3, - 20713 - 11904: 0xB9B7, - 20714 - 11904: 0xE0F6, - 20716 - 11904: 0xE0FA, - 20717 - 11904: 0xB9B0, - 20718 - 11904: 0xB9AD, - 20719 - 11904: 0xE0FC, - 20720 - 11904: 0xE0FB, - 20721 - 11904: 0xB9B5, - 20723 - 11904: 0xE0F4, - 20724 - 11904: 0x97C4, - 20725 - 11904: 0xBBF8, - 20726 - 11904: 0xE4EC, - 20728 - 11904: 0xE4E9, - 20729 - 11904: 0xBBF9, - 20731 - 11904: 0xBBF7, - 20732 - 11904: 0x92AE, - 20733 - 11904: 0xE4F0, - 20734 - 11904: 0xE4ED, - 20735 - 11904: 0xE4E6, - 20736 - 11904: 0xBBF6, - 20737 - 11904: 0xFA67, - 20738 - 11904: 0xBBFA, - 20739 - 11904: 0xE4E7, - 20740 - 11904: 0xBBF5, - 20741 - 11904: 0xBBFD, - 20742 - 11904: 0xE4EA, - 20743 - 11904: 0xE4EB, - 20744 - 11904: 0xBBFB, - 20745 - 11904: 0xBBFC, - 20746 - 11904: 0xE4F1, - 20747 - 11904: 0xE4EE, - 20748 - 11904: 0xE4EF, - 20749 - 11904: 0x92A2, - 20750 - 11904: 0xFA69, - 20752 - 11904: 0xBEAA, - 20753 - 11904: 0xE8F8, - 20754 - 11904: 0xBEA7, - 20755 - 11904: 0xE8F5, - 20756 - 11904: 0xBEA9, - 20757 - 11904: 0xBEAB, - 20759 - 11904: 0xE8F6, - 20760 - 11904: 0xBEA8, - 20762 - 11904: 0xE8F7, - 20764 - 11904: 0xE8F4, - 20767 - 11904: 0xC076, - 20768 - 11904: 0xECBD, - 20769 - 11904: 0xC077, - 20770 - 11904: 0xECBB, - 20772 - 11904: 0xECBC, - 20773 - 11904: 0xECBA, - 20774 - 11904: 0xECB9, - 20777 - 11904: 0xECBE, - 20778 - 11904: 0xC075, - 20779 - 11904: 0x9268, - 20781 - 11904: 0xEFB8, - 20782 - 11904: 0xEFB9, - 20784 - 11904: 0xE4E8, - 20785 - 11904: 0xEFB7, - 20786 - 11904: 0xC078, - 20787 - 11904: 0xC35F, - 20788 - 11904: 0xF1EB, - 20789 - 11904: 0xF1EC, - 20791 - 11904: 0xC4D7, - 20792 - 11904: 0xC4D8, - 20793 - 11904: 0xF5C1, - 20794 - 11904: 0xF5C0, - 20795 - 11904: 0xC56C, - 20796 - 11904: 0xC56B, - 20797 - 11904: 0xF7D0, - 20799 - 11904: 0xA449, - 20800 - 11904: 0xA461, - 20801 - 11904: 0xA4B9, - 20803 - 11904: 0xA4B8, - 20804 - 11904: 0xA553, - 20805 - 11904: 0xA552, - 20806 - 11904: 0xA5FC, - 20807 - 11904: 0xA5FB, - 20808 - 11904: 0xA5FD, - 20809 - 11904: 0xA5FA, - 20811 - 11904: 0xA74A, - 20812 - 11904: 0xA749, - 20813 - 11904: 0xA74B, - 20818 - 11904: 0xA8E0, - 20820 - 11904: 0xA8DF, - 20821 - 11904: 0xA8E1, - 20822 - 11904: 0x8951, - 20823 - 11904: 0xAB5E, - 20825 - 11904: 0xA259, - 20826 - 11904: 0xD0DE, - 20827 - 11904: 0xA25A, - 20828 - 11904: 0xB0C2, - 20829 - 11904: 0xA25C, - 20830 - 11904: 0xA25B, - 20831 - 11904: 0xD860, - 20832 - 11904: 0xFA6F, - 20833 - 11904: 0xA25D, - 20834 - 11904: 0xB9B8, - 20835 - 11904: 0xA25E, - 20837 - 11904: 0xA44A, - 20839 - 11904: 0xA4BA, - 20840 - 11904: 0xA5FE, - 20841 - 11904: 0xA8E2, - 20842 - 11904: 0xFA71, - 20843 - 11904: 0xA44B, - 20844 - 11904: 0xA4BD, - 20845 - 11904: 0xA4BB, - 20846 - 11904: 0xA4BC, - 20849 - 11904: 0xA640, - 20852 - 11904: 0x8952, - 20853 - 11904: 0xA74C, - 20854 - 11904: 0xA8E4, - 20855 - 11904: 0xA8E3, - 20856 - 11904: 0xA8E5, - 20857 - 11904: 0x945A, - 20860 - 11904: 0xADDD, - 20864 - 11904: 0xBEAC, - 20866 - 11904: 0xC6C3, - 20870 - 11904: 0x89DD, - 20871 - 11904: 0xC94E, - 20872 - 11904: 0xC8A2, - 20873 - 11904: 0xA554, - 20874 - 11904: 0xA555, - 20877 - 11904: 0xA641, - 20879 - 11904: 0xCA6A, - 20881 - 11904: 0xAB60, - 20882 - 11904: 0xAB5F, - 20883 - 11904: 0xD0E0, - 20884 - 11904: 0xD0DF, - 20885 - 11904: 0xB0C3, - 20886 - 11904: 0xC6C4, - 20887 - 11904: 0xA4BE, - 20888 - 11904: 0xC955, - 20890 - 11904: 0x9E52, - 20892 - 11904: 0x8953, - 20894 - 11904: 0xCBCD, - 20896 - 11904: 0xAB61, - 20898 - 11904: 0xADE0, - 20900 - 11904: 0xADDE, - 20901 - 11904: 0xADDF, - 20903 - 11904: 0x9E55, - 20904 - 11904: 0x92BA, - 20906 - 11904: 0xBEAD, - 20907 - 11904: 0xC6C5, - 20908 - 11904: 0xA556, - 20910 - 11904: 0x8C5B, - 20912 - 11904: 0xA642, - 20913 - 11904: 0xC9BC, - 20914 - 11904: 0xFA7D, - 20915 - 11904: 0xFAA8, - 20916 - 11904: 0x9A68, - 20917 - 11904: 0xFA47, - 20918 - 11904: 0xA74D, - 20919 - 11904: 0xA74E, - 20920 - 11904: 0xFA7E, - 20921 - 11904: 0xCA6B, - 20924 - 11904: 0xCBCE, - 20925 - 11904: 0xA8E6, - 20926 - 11904: 0xCBCF, - 20931 - 11904: 0x92BB, - 20932 - 11904: 0xD0E2, - 20933 - 11904: 0xD0E3, - 20934 - 11904: 0xADE3, - 20935 - 11904: 0xFDB6, - 20936 - 11904: 0xD0E4, - 20937 - 11904: 0xFAA2, - 20938 - 11904: 0xD0E1, - 20939 - 11904: 0xADE4, - 20940 - 11904: 0xADE2, - 20941 - 11904: 0xADE1, - 20942 - 11904: 0xD0E5, - 20943 - 11904: 0xFAA3, - 20944 - 11904: 0xD468, - 20945 - 11904: 0xFAA4, - 20946 - 11904: 0x9BB4, - 20947 - 11904: 0xFAA6, - 20948 - 11904: 0xD861, - 20951 - 11904: 0xDCC5, - 20952 - 11904: 0xE140, - 20955 - 11904: 0x89DF, - 20956 - 11904: 0xBBFE, - 20957 - 11904: 0xBEAE, - 20958 - 11904: 0xE8F9, - 20959 - 11904: 0xFDDB, - 20960 - 11904: 0xA44C, - 20961 - 11904: 0xA45A, - 20962 - 11904: 0xFAA9, - 20964 - 11904: 0x8954, - 20973 - 11904: 0xFAAB, - 20976 - 11904: 0xB0C4, - 20977 - 11904: 0xB3CD, - 20979 - 11904: 0xB9B9, - 20980 - 11904: 0xFC7A, - 20981 - 11904: 0xC942, - 20982 - 11904: 0xA4BF, - 20984 - 11904: 0xA559, - 20985 - 11904: 0xA557, - 20986 - 11904: 0xA558, - 20988 - 11904: 0x89E0, - 20989 - 11904: 0xA8E7, - 20990 - 11904: 0x9F4F, - 20992 - 11904: 0xA44D, - 20993 - 11904: 0xA44E, - 20994 - 11904: 0xC87D, - 20995 - 11904: 0xA462, - 20997 - 11904: 0x89E1, - 20998 - 11904: 0xA4C0, - 20999 - 11904: 0xA4C1, - 21000 - 11904: 0xA4C2, - 21001 - 11904: 0xC9BE, - 21002 - 11904: 0xA55A, - 21003 - 11904: 0xFAB0, - 21004 - 11904: 0xC96B, - 21006 - 11904: 0xA646, - 21008 - 11904: 0xC9BF, - 21009 - 11904: 0xA644, - 21010 - 11904: 0xA645, - 21011 - 11904: 0xC9BD, - 21014 - 11904: 0xA647, - 21015 - 11904: 0xA643, - 21020 - 11904: 0xCA6C, - 21021 - 11904: 0xAAEC, - 21022 - 11904: 0xCA6D, - 21023 - 11904: 0x9FCD, - 21024 - 11904: 0xA0E7, - 21025 - 11904: 0xCA6E, - 21028 - 11904: 0xA750, - 21029 - 11904: 0xA74F, - 21030 - 11904: 0xFAB1, - 21031 - 11904: 0x89A6, - 21032 - 11904: 0xA753, - 21033 - 11904: 0xA751, - 21034 - 11904: 0xA752, - 21038 - 11904: 0xA8ED, - 21040 - 11904: 0xA8EC, - 21041 - 11904: 0xCBD4, - 21042 - 11904: 0xCBD1, - 21043 - 11904: 0xCBD2, - 21044 - 11904: 0x9EFA, - 21045 - 11904: 0xCBD0, - 21046 - 11904: 0xA8EE, - 21047 - 11904: 0xA8EA, - 21048 - 11904: 0xA8E9, - 21050 - 11904: 0xA8EB, - 21051 - 11904: 0xA8E8, - 21052 - 11904: 0xFAB2, - 21057 - 11904: 0xA8EF, - 21059 - 11904: 0xAB63, - 21060 - 11904: 0xCDF0, - 21062 - 11904: 0xCBD3, - 21063 - 11904: 0xAB68, - 21065 - 11904: 0xCDF1, - 21066 - 11904: 0xAB64, - 21067 - 11904: 0xAB67, - 21068 - 11904: 0xAB66, - 21069 - 11904: 0xAB65, - 21070 - 11904: 0xAB62, - 21071 - 11904: 0x87BC, - 21074 - 11904: 0xD0E8, - 21076 - 11904: 0xADE7, - 21077 - 11904: 0xD0EB, - 21078 - 11904: 0xADE5, - 21079 - 11904: 0xFAB4, - 21081 - 11904: 0x92C4, - 21082 - 11904: 0xD0E7, - 21083 - 11904: 0xADE8, - 21084 - 11904: 0xADE6, - 21085 - 11904: 0xADE9, - 21086 - 11904: 0xD0E9, - 21087 - 11904: 0xD0EA, - 21088 - 11904: 0x9F6F, - 21089 - 11904: 0xD0E6, - 21090 - 11904: 0xD0EC, - 21096 - 11904: 0x8BB0, - 21097 - 11904: 0xB3D1, - 21098 - 11904: 0xB0C5, - 21099 - 11904: 0xD469, - 21100 - 11904: 0xD46B, - 21101 - 11904: 0xD46A, - 21102 - 11904: 0xD46C, - 21103 - 11904: 0xB0C6, - 21106 - 11904: 0xB3CE, - 21107 - 11904: 0x9FAC, - 21108 - 11904: 0xB3CF, - 21109 - 11904: 0xB3D0, - 21111 - 11904: 0xB6D0, - 21112 - 11904: 0xDCC7, - 21113 - 11904: 0x89E3, - 21114 - 11904: 0xDCC6, - 21115 - 11904: 0xDCC8, - 21116 - 11904: 0xDCC9, - 21117 - 11904: 0xB6D1, - 21119 - 11904: 0xB6CF, - 21120 - 11904: 0xE141, - 21121 - 11904: 0xE142, - 21122 - 11904: 0xB9BB, - 21123 - 11904: 0xB9BA, - 21124 - 11904: 0xE35A, - 21127 - 11904: 0xBC40, - 21128 - 11904: 0xBC41, - 21129 - 11904: 0xBC42, - 21130 - 11904: 0xBC44, - 21131 - 11904: 0xE4F2, - 21132 - 11904: 0xE4F3, - 21133 - 11904: 0xBC43, - 21135 - 11904: 0x9BD3, - 21136 - 11904: 0x89E4, - 21137 - 11904: 0xBEAF, - 21139 - 11904: 0xBEB0, - 21140 - 11904: 0xFAB5, - 21142 - 11904: 0xF1ED, - 21143 - 11904: 0xF5C3, - 21144 - 11904: 0xF5C2, - 21145 - 11904: 0xF7D1, - 21146 - 11904: 0x9FD5, - 21147 - 11904: 0xA44F, - 21151 - 11904: 0xA55C, - 21152 - 11904: 0xA55B, - 21153 - 11904: 0x8955, - 21155 - 11904: 0xA648, - 21156 - 11904: 0x92C5, - 21158 - 11904: 0xC9C0, - 21160 - 11904: 0x8956, - 21161 - 11904: 0xA755, - 21162 - 11904: 0xA756, - 21163 - 11904: 0xA754, - 21164 - 11904: 0xA757, - 21165 - 11904: 0xCA6F, - 21166 - 11904: 0xCA70, - 21173 - 11904: 0xFAB3, - 21177 - 11904: 0xFAB6, - 21179 - 11904: 0xA8F1, - 21180 - 11904: 0xCBD5, - 21182 - 11904: 0xA8F0, - 21184 - 11904: 0xCDF2, - 21185 - 11904: 0xAB6C, - 21186 - 11904: 0xCDF3, - 21187 - 11904: 0xAB6B, - 21189 - 11904: 0xFAB7, - 21191 - 11904: 0xAB69, - 21193 - 11904: 0xAB6A, - 21196 - 11904: 0x9EDC, - 21197 - 11904: 0xD0ED, - 21200 - 11904: 0xFBC4, - 21201 - 11904: 0x9F71, - 21202 - 11904: 0xB0C7, - 21203 - 11904: 0xD46E, - 21205 - 11904: 0xB0CA, - 21206 - 11904: 0xD46D, - 21207 - 11904: 0xB1E5, - 21208 - 11904: 0xB0C9, - 21209 - 11904: 0xB0C8, - 21211 - 11904: 0xB3D4, - 21213 - 11904: 0xB3D3, - 21214 - 11904: 0xB3D2, - 21215 - 11904: 0xB6D2, - 21216 - 11904: 0xFABA, - 21217 - 11904: 0x92C7, - 21218 - 11904: 0xB6D5, - 21219 - 11904: 0xB6D6, - 21220 - 11904: 0xB6D4, - 21222 - 11904: 0xB6D3, - 21225 - 11904: 0xE143, - 21227 - 11904: 0xE144, - 21231 - 11904: 0xE4F5, - 21232 - 11904: 0xBC45, - 21233 - 11904: 0xE4F4, - 21235 - 11904: 0xBEB1, - 21236 - 11904: 0xECBF, - 21237 - 11904: 0xC079, - 21239 - 11904: 0xF1EE, - 21240 - 11904: 0xC455, - 21241 - 11904: 0xC6C6, - 21242 - 11904: 0xA463, - 21243 - 11904: 0xA4C3, - 21244 - 11904: 0xC956, - 21246 - 11904: 0xA4C4, - 21247 - 11904: 0xA4C5, - 21249 - 11904: 0x9A4C, - 21253 - 11904: 0xFABD, - 21254 - 11904: 0xA55E, - 21256 - 11904: 0xA649, - 21257 - 11904: 0xCA71, - 21258 - 11904: 0xCBD6, - 21259 - 11904: 0xCBD7, - 21261 - 11904: 0xAB6D, - 21262 - 11904: 0xD0EE, - 21263 - 11904: 0xB0CC, - 21264 - 11904: 0xB0CB, - 21265 - 11904: 0xD863, - 21266 - 11904: 0xD862, - 21269 - 11904: 0xA450, - 21270 - 11904: 0xA4C6, - 21271 - 11904: 0xA55F, - 21273 - 11904: 0xB0CD, - 21274 - 11904: 0xC943, - 21276 - 11904: 0xC96C, - 21277 - 11904: 0xA560, - 21279 - 11904: 0xC9C2, - 21280 - 11904: 0xA64B, - 21281 - 11904: 0xA64A, - 21282 - 11904: 0xC9C1, - 21283 - 11904: 0xA758, - 21284 - 11904: 0x8C68, - 21287 - 11904: 0x89E5, - 21290 - 11904: 0xADEA, - 21292 - 11904: 0x9F7D, - 21293 - 11904: 0xD46F, - 21295 - 11904: 0xB6D7, - 21296 - 11904: 0xE145, - 21297 - 11904: 0xB9BC, - 21298 - 11904: 0xA0A9, - 21299 - 11904: 0xFAC4, - 21300 - 11904: 0xE8FA, - 21303 - 11904: 0xF3FD, - 21304 - 11904: 0xC6C7, - 21305 - 11904: 0xA4C7, - 21307 - 11904: 0x8957, - 21308 - 11904: 0xCBD8, - 21309 - 11904: 0xCDF4, - 21310 - 11904: 0xB0D0, - 21311 - 11904: 0xB0CE, - 21312 - 11904: 0xB0CF, - 21313 - 11904: 0xA451, - 21314 - 11904: 0xFAAA, - 21315 - 11904: 0xA464, - 21316 - 11904: 0xFAC5, - 21317 - 11904: 0xA4CA, - 21319 - 11904: 0xA4C9, - 21320 - 11904: 0xA4C8, - 21321 - 11904: 0xA563, - 21322 - 11904: 0xA562, - 21324 - 11904: 0xC96D, - 21325 - 11904: 0xC9C3, - 21326 - 11904: 0x8958, - 21329 - 11904: 0xA8F5, - 21330 - 11904: 0xA8F2, - 21331 - 11904: 0xA8F4, - 21332 - 11904: 0xA8F3, - 21335 - 11904: 0xAB6E, - 21338 - 11904: 0xB3D5, - 21340 - 11904: 0xA452, - 21341 - 11904: 0x8BE3, - 21342 - 11904: 0xA4CB, - 21343 - 11904: 0x8B61, - 21344 - 11904: 0xA565, - 21345 - 11904: 0xA564, - 21347 - 11904: 0xCA72, - 21348 - 11904: 0x9AF1, - 21350 - 11904: 0xA8F6, - 21351 - 11904: 0x9EB7, - 21353 - 11904: 0xC6C8, - 21356 - 11904: 0xC957, - 21357 - 11904: 0xFAD1, - 21358 - 11904: 0xA567, - 21359 - 11904: 0xA566, - 21360 - 11904: 0xA64C, - 21361 - 11904: 0xA64D, - 21362 - 11904: 0xCA73, - 21363 - 11904: 0xA759, - 21364 - 11904: 0xFAD2, - 21365 - 11904: 0xA75A, - 21367 - 11904: 0xA8F7, - 21368 - 11904: 0xA8F8, - 21369 - 11904: 0xA8F9, - 21371 - 11904: 0xAB6F, - 21372 - 11904: 0xCDF5, - 21373 - 11904: 0x9EBA, - 21374 - 11904: 0xFAD4, - 21375 - 11904: 0xFAD5, - 21378 - 11904: 0xC944, - 21380 - 11904: 0xA4CC, - 21386 - 11904: 0xC9C4, - 21390 - 11904: 0xCA74, - 21391 - 11904: 0xCA75, - 21394 - 11904: 0xCBD9, - 21395 - 11904: 0xFAD9, - 21396 - 11904: 0xCBDA, - 21398 - 11904: 0xCDF7, - 21399 - 11904: 0xCDF6, - 21400 - 11904: 0xCDF9, - 21401 - 11904: 0xCDF8, - 21402 - 11904: 0xAB70, - 21404 - 11904: 0xD470, - 21405 - 11904: 0xADED, - 21406 - 11904: 0xD0EF, - 21407 - 11904: 0xADEC, - 21408 - 11904: 0xFADB, - 21410 - 11904: 0x9CE0, - 21412 - 11904: 0xD864, - 21413 - 11904: 0xB3D6, - 21414 - 11904: 0xFBF7, - 21415 - 11904: 0xD865, - 21416 - 11904: 0xFBFA, - 21417 - 11904: 0x89E7, - 21418 - 11904: 0xA07A, - 21419 - 11904: 0xFADC, - 21420 - 11904: 0xE146, - 21421 - 11904: 0xB9BD, - 21422 - 11904: 0xFADD, - 21424 - 11904: 0x89E9, - 21426 - 11904: 0xBC46, - 21428 - 11904: 0xF1EF, - 21430 - 11904: 0xC6C9, - 21433 - 11904: 0xC958, - 21435 - 11904: 0xA568, - 21441 - 11904: 0xFAE2, - 21442 - 11904: 0x89EB, - 21443 - 11904: 0xB0D1, - 21445 - 11904: 0xFAE3, - 21448 - 11904: 0xA453, - 21449 - 11904: 0xA465, - 21450 - 11904: 0xA4CE, - 21451 - 11904: 0xA4CD, - 21452 - 11904: 0x90C8, - 21453 - 11904: 0xA4CF, - 21456 - 11904: 0x92DA, - 21457 - 11904: 0x8959, - 21458 - 11904: 0x9CF5, - 21460 - 11904: 0xA8FB, - 21462 - 11904: 0xA8FA, - 21463 - 11904: 0xA8FC, - 21464 - 11904: 0x895A, - 21465 - 11904: 0xFAE7, - 21466 - 11904: 0x9FA2, - 21467 - 11904: 0xAB71, - 21471 - 11904: 0xADEE, - 21472 - 11904: 0xFAEA, - 21473 - 11904: 0xE8FB, - 21474 - 11904: 0xC24F, - 21475 - 11904: 0xA466, - 21476 - 11904: 0xA56A, - 21477 - 11904: 0xA579, - 21478 - 11904: 0xA574, - 21480 - 11904: 0xA56F, - 21481 - 11904: 0xA56E, - 21482 - 11904: 0xA575, - 21483 - 11904: 0xA573, - 21484 - 11904: 0xA56C, - 21485 - 11904: 0xA57A, - 21486 - 11904: 0xA56D, - 21487 - 11904: 0xA569, - 21488 - 11904: 0xA578, - 21489 - 11904: 0xA577, - 21490 - 11904: 0xA576, - 21491 - 11904: 0xA56B, - 21493 - 11904: 0xA572, - 21494 - 11904: 0xFAED, - 21495 - 11904: 0x8FAD, - 21496 - 11904: 0xA571, - 21499 - 11904: 0xA57B, - 21500 - 11904: 0xA570, - 21502 - 11904: 0xFB59, - 21505 - 11904: 0xA653, - 21507 - 11904: 0xA659, - 21508 - 11904: 0xA655, - 21510 - 11904: 0xA65B, - 21511 - 11904: 0xC9C5, - 21512 - 11904: 0xA658, - 21513 - 11904: 0xA64E, - 21514 - 11904: 0xA651, - 21515 - 11904: 0xA654, - 21516 - 11904: 0xA650, - 21517 - 11904: 0xA657, - 21518 - 11904: 0xA65A, - 21519 - 11904: 0xA64F, - 21520 - 11904: 0xA652, - 21521 - 11904: 0xA656, - 21522 - 11904: 0xA65C, - 21523 - 11904: 0xFAEF, - 21524 - 11904: 0x96EF, - 21526 - 11904: 0x9DEC, - 21528 - 11904: 0xCA7E, - 21529 - 11904: 0xCA7B, - 21530 - 11904: 0x9DCA, - 21531 - 11904: 0xA767, - 21532 - 11904: 0xCA7C, - 21533 - 11904: 0xA75B, - 21534 - 11904: 0xA75D, - 21535 - 11904: 0xA775, - 21536 - 11904: 0xA770, - 21537 - 11904: 0xFD6D, - 21539 - 11904: 0x89EC, - 21540 - 11904: 0xCAA5, - 21541 - 11904: 0xCA7D, - 21542 - 11904: 0xA75F, - 21543 - 11904: 0xA761, - 21544 - 11904: 0xCAA4, - 21545 - 11904: 0xA768, - 21546 - 11904: 0xCA78, - 21547 - 11904: 0xA774, - 21548 - 11904: 0xA776, - 21549 - 11904: 0xA75C, - 21550 - 11904: 0xA76D, - 21551 - 11904: 0xFB44, - 21552 - 11904: 0xCA76, - 21553 - 11904: 0xA773, - 21554 - 11904: 0x9DE2, - 21555 - 11904: 0xA764, - 21556 - 11904: 0x8C75, - 21557 - 11904: 0xA76E, - 21558 - 11904: 0xA76F, - 21559 - 11904: 0xCA77, - 21560 - 11904: 0xA76C, - 21561 - 11904: 0xA76A, - 21563 - 11904: 0xA76B, - 21564 - 11904: 0xA771, - 21565 - 11904: 0xCAA1, - 21566 - 11904: 0xA75E, - 21568 - 11904: 0xA772, - 21569 - 11904: 0xCAA3, - 21570 - 11904: 0xA766, - 21571 - 11904: 0xA763, - 21573 - 11904: 0xCA7A, - 21574 - 11904: 0xA762, - 21575 - 11904: 0xCAA6, - 21576 - 11904: 0xA765, - 21578 - 11904: 0xA769, - 21579 - 11904: 0x9EC0, - 21580 - 11904: 0x87C5, - 21581 - 11904: 0x9E56, - 21582 - 11904: 0xA760, - 21583 - 11904: 0xCAA2, - 21588 - 11904: 0xCA79, - 21600 - 11904: 0xCBEB, - 21601 - 11904: 0xCBEA, - 21602 - 11904: 0xA94F, - 21603 - 11904: 0xCBED, - 21604 - 11904: 0xCBEF, - 21605 - 11904: 0xCBE4, - 21606 - 11904: 0xCBE7, - 21607 - 11904: 0xCBEE, - 21608 - 11904: 0xA950, - 21609 - 11904: 0x9F79, - 21610 - 11904: 0x9AC7, - 21611 - 11904: 0xCBE1, - 21612 - 11904: 0xCBE5, - 21613 - 11904: 0xFAF4, - 21615 - 11904: 0xCBE9, - 21616 - 11904: 0xCE49, - 21617 - 11904: 0xA94B, - 21618 - 11904: 0xCE4D, - 21619 - 11904: 0xA8FD, - 21620 - 11904: 0xCBE6, - 21621 - 11904: 0xA8FE, - 21622 - 11904: 0xA94C, - 21623 - 11904: 0xA945, - 21624 - 11904: 0xA941, - 21626 - 11904: 0xCBE2, - 21627 - 11904: 0xA944, - 21628 - 11904: 0xA949, - 21629 - 11904: 0xA952, - 21630 - 11904: 0xCBE3, - 21631 - 11904: 0xCBDC, - 21632 - 11904: 0xA943, - 21633 - 11904: 0xCBDD, - 21634 - 11904: 0xCBDF, - 21636 - 11904: 0xA946, - 21637 - 11904: 0x98A1, - 21638 - 11904: 0xA948, - 21639 - 11904: 0xCBDB, - 21640 - 11904: 0xCBE0, - 21643 - 11904: 0xA951, - 21644 - 11904: 0xA94D, - 21645 - 11904: 0xCBE8, - 21646 - 11904: 0xA953, - 21647 - 11904: 0xFAF8, - 21648 - 11904: 0xA94A, - 21649 - 11904: 0xCBDE, - 21650 - 11904: 0xA947, - 21651 - 11904: 0x89F0, - 21652 - 11904: 0x9E47, - 21653 - 11904: 0xA942, - 21654 - 11904: 0xA940, - 21655 - 11904: 0x9DF7, - 21656 - 11904: 0xCBEC, - 21658 - 11904: 0xA94E, - 21660 - 11904: 0x9FD3, - 21662 - 11904: 0x9ACA, - 21664 - 11904: 0xCE48, - 21665 - 11904: 0xCDFB, - 21666 - 11904: 0xCE4B, - 21667 - 11904: 0x89F1, - 21668 - 11904: 0xFAF9, - 21669 - 11904: 0xCDFD, - 21670 - 11904: 0xAB78, - 21671 - 11904: 0xABA8, - 21672 - 11904: 0xAB74, - 21673 - 11904: 0xABA7, - 21674 - 11904: 0xAB7D, - 21675 - 11904: 0xABA4, - 21676 - 11904: 0xAB72, - 21677 - 11904: 0xCDFC, - 21678 - 11904: 0xCE43, - 21679 - 11904: 0xABA3, - 21680 - 11904: 0xCE4F, - 21681 - 11904: 0xABA5, - 21682 - 11904: 0x8E5A, - 21683 - 11904: 0xAB79, - 21684 - 11904: 0x89F2, - 21686 - 11904: 0xCE45, - 21687 - 11904: 0xCE42, - 21688 - 11904: 0xAB77, - 21689 - 11904: 0x89F3, - 21690 - 11904: 0xCDFA, - 21691 - 11904: 0xABA6, - 21692 - 11904: 0xCE4A, - 21693 - 11904: 0xAB7C, - 21694 - 11904: 0xCE4C, - 21695 - 11904: 0xABA9, - 21696 - 11904: 0xAB73, - 21697 - 11904: 0xAB7E, - 21698 - 11904: 0xAB7B, - 21699 - 11904: 0xCE40, - 21700 - 11904: 0xABA1, - 21701 - 11904: 0xCE46, - 21702 - 11904: 0xCE47, - 21703 - 11904: 0xAB7A, - 21704 - 11904: 0xABA2, - 21705 - 11904: 0xAB76, - 21707 - 11904: 0x925D, - 21708 - 11904: 0x8B51, - 21709 - 11904: 0x92E0, - 21710 - 11904: 0xAB75, - 21711 - 11904: 0xCDFE, - 21712 - 11904: 0x89F4, - 21718 - 11904: 0xCE44, - 21722 - 11904: 0x9FD4, - 21726 - 11904: 0xCE4E, - 21728 - 11904: 0xD144, - 21729 - 11904: 0xADFB, - 21730 - 11904: 0xD0F1, - 21731 - 11904: 0x8A79, - 21732 - 11904: 0xD0F6, - 21733 - 11904: 0xADF4, - 21734 - 11904: 0xAE40, - 21735 - 11904: 0xD0F4, - 21736 - 11904: 0xADEF, - 21737 - 11904: 0xADF9, - 21738 - 11904: 0xADFE, - 21739 - 11904: 0xD0FB, - 21741 - 11904: 0xADFA, - 21742 - 11904: 0xADFD, - 21743 - 11904: 0x89F5, - 21745 - 11904: 0xD0FE, - 21746 - 11904: 0xADF5, - 21747 - 11904: 0xD0F5, - 21751 - 11904: 0xD142, - 21752 - 11904: 0xD143, - 21754 - 11904: 0xADF7, - 21755 - 11904: 0xD141, - 21756 - 11904: 0xADF3, - 21757 - 11904: 0xAE43, - 21759 - 11904: 0xD0F8, - 21761 - 11904: 0xADF1, - 21762 - 11904: 0x97A7, - 21763 - 11904: 0xD146, - 21764 - 11904: 0xD0F9, - 21765 - 11904: 0xD0FD, - 21766 - 11904: 0xADF6, - 21767 - 11904: 0xAE42, - 21768 - 11904: 0xD0FA, - 21769 - 11904: 0xADFC, - 21770 - 11904: 0xD140, - 21771 - 11904: 0xD147, - 21772 - 11904: 0xD4A1, - 21773 - 11904: 0x93BA, - 21774 - 11904: 0xD145, - 21775 - 11904: 0xAE44, - 21776 - 11904: 0xADF0, - 21777 - 11904: 0xD0FC, - 21778 - 11904: 0xD0F3, - 21779 - 11904: 0x9E58, - 21780 - 11904: 0xADF8, - 21783 - 11904: 0xD0F2, - 21784 - 11904: 0x89F6, - 21786 - 11904: 0xD0F7, - 21790 - 11904: 0x9E57, - 21795 - 11904: 0x89F7, - 21797 - 11904: 0x8A41, - 21798 - 11904: 0xD0F0, - 21799 - 11904: 0xAE41, - 21800 - 11904: 0x89F8, - 21802 - 11904: 0xD477, - 21803 - 11904: 0xFAF1, - 21804 - 11904: 0xB0E4, - 21805 - 11904: 0xD4A7, - 21806 - 11904: 0xB0E2, - 21807 - 11904: 0xB0DF, - 21808 - 11904: 0xD47C, - 21809 - 11904: 0xB0DB, - 21810 - 11904: 0xD4A2, - 21811 - 11904: 0xB0E6, - 21812 - 11904: 0xD476, - 21813 - 11904: 0xD47B, - 21814 - 11904: 0xD47A, - 21815 - 11904: 0xADF2, - 21816 - 11904: 0xB0E1, - 21817 - 11904: 0xD4A5, - 21819 - 11904: 0xD4A8, - 21820 - 11904: 0xD473, - 21822 - 11904: 0xB3E8, - 21823 - 11904: 0x89FA, - 21824 - 11904: 0xD4A9, - 21825 - 11904: 0xB0E7, - 21827 - 11904: 0xB0D9, - 21828 - 11904: 0xB0D6, - 21829 - 11904: 0xD47E, - 21830 - 11904: 0xB0D3, - 21831 - 11904: 0xFB42, - 21832 - 11904: 0xD4A6, - 21833 - 11904: 0xFABF, - 21834 - 11904: 0xB0DA, - 21835 - 11904: 0xD4AA, - 21837 - 11904: 0xD474, - 21838 - 11904: 0xD4A4, - 21839 - 11904: 0xB0DD, - 21840 - 11904: 0xD475, - 21841 - 11904: 0xD478, - 21842 - 11904: 0xD47D, - 21843 - 11904: 0xFBA3, - 21845 - 11904: 0xB0DE, - 21846 - 11904: 0xB0DC, - 21847 - 11904: 0xB0E8, - 21852 - 11904: 0xB0E3, - 21853 - 11904: 0xFAF7, - 21854 - 11904: 0xB0D7, - 21855 - 11904: 0xB1D2, - 21857 - 11904: 0xB0D8, - 21858 - 11904: 0xD479, - 21859 - 11904: 0xB0E5, - 21860 - 11904: 0xB0E0, - 21861 - 11904: 0xD4A3, - 21862 - 11904: 0xB0D5, - 21865 - 11904: 0x9E4E, - 21866 - 11904: 0xB0D4, - 21867 - 11904: 0x94DC, - 21873 - 11904: 0x95DA, - 21874 - 11904: 0x9DF8, - 21875 - 11904: 0x9F6A, - 21877 - 11904: 0xD471, - 21878 - 11904: 0xD472, - 21879 - 11904: 0xD86A, - 21881 - 11904: 0x8AB7, - 21883 - 11904: 0xB3D7, - 21884 - 11904: 0xB3DA, - 21885 - 11904: 0xD875, - 21886 - 11904: 0xB3EE, - 21887 - 11904: 0xD878, - 21888 - 11904: 0xB3D8, - 21889 - 11904: 0xD871, - 21890 - 11904: 0xB3DE, - 21891 - 11904: 0xB3E4, - 21892 - 11904: 0xB5BD, - 21894 - 11904: 0xFB46, - 21895 - 11904: 0xB3E2, - 21896 - 11904: 0xD86E, - 21897 - 11904: 0xB3EF, - 21898 - 11904: 0xB3DB, - 21899 - 11904: 0xB3E3, - 21900 - 11904: 0xD876, - 21901 - 11904: 0xDCD7, - 21902 - 11904: 0xD87B, - 21903 - 11904: 0xD86F, - 21904 - 11904: 0x8A46, - 21905 - 11904: 0xD866, - 21906 - 11904: 0xD873, - 21907 - 11904: 0xD86D, - 21908 - 11904: 0xB3E1, - 21909 - 11904: 0xD879, - 21912 - 11904: 0xB3DD, - 21913 - 11904: 0xB3F1, - 21914 - 11904: 0xB3EA, - 21916 - 11904: 0xB3DF, - 21917 - 11904: 0xB3DC, - 21919 - 11904: 0xB3E7, - 21921 - 11904: 0xD87A, - 21922 - 11904: 0xD86C, - 21923 - 11904: 0xD872, - 21924 - 11904: 0xD874, - 21925 - 11904: 0xD868, - 21926 - 11904: 0xD877, - 21927 - 11904: 0xB3D9, - 21928 - 11904: 0xD867, - 21929 - 11904: 0xFB47, - 21930 - 11904: 0xB3E0, - 21931 - 11904: 0xB3F0, - 21932 - 11904: 0xB3EC, - 21933 - 11904: 0xD869, - 21934 - 11904: 0xB3E6, - 21936 - 11904: 0x9148, - 21937 - 11904: 0xB3ED, - 21938 - 11904: 0xB3E9, - 21939 - 11904: 0xB3E5, - 21940 - 11904: 0x92DE, - 21941 - 11904: 0xD870, - 21945 - 11904: 0x8B53, - 21946 - 11904: 0x9DF6, - 21947 - 11904: 0xB3EB, - 21948 - 11904: 0x9BDA, - 21951 - 11904: 0xDCD5, - 21952 - 11904: 0xDCD1, - 21953 - 11904: 0x9D7E, - 21954 - 11904: 0xDCE0, - 21955 - 11904: 0xDCCA, - 21956 - 11904: 0xDCD3, - 21957 - 11904: 0xB6E5, - 21958 - 11904: 0xB6E6, - 21959 - 11904: 0xB6DE, - 21960 - 11904: 0xDCDC, - 21961 - 11904: 0xB6E8, - 21962 - 11904: 0xDCCF, - 21963 - 11904: 0xDCCE, - 21964 - 11904: 0xDCCC, - 21965 - 11904: 0xDCDE, - 21966 - 11904: 0xB6DC, - 21967 - 11904: 0xDCD8, - 21968 - 11904: 0xDCCD, - 21969 - 11904: 0xB6DF, - 21970 - 11904: 0xDCD6, - 21971 - 11904: 0xB6DA, - 21972 - 11904: 0xDCD2, - 21973 - 11904: 0xDCD9, - 21974 - 11904: 0xDCDB, - 21975 - 11904: 0x89FD, - 21976 - 11904: 0x99E4, - 21977 - 11904: 0xDCDF, - 21978 - 11904: 0xB6E3, - 21979 - 11904: 0xDCCB, - 21980 - 11904: 0xB6DD, - 21981 - 11904: 0xDCD0, - 21982 - 11904: 0x9E43, - 21983 - 11904: 0xB6D8, - 21985 - 11904: 0xB6E4, - 21986 - 11904: 0xDCDA, - 21987 - 11904: 0xB6E0, - 21988 - 11904: 0xB6E1, - 21989 - 11904: 0xB6E7, - 21990 - 11904: 0xB6DB, - 21991 - 11904: 0xA25F, - 21992 - 11904: 0xB6D9, - 21993 - 11904: 0xDCD4, - 21994 - 11904: 0x9DE9, - 21996 - 11904: 0x8F52, - 21999 - 11904: 0xB6E2, - 22000 - 11904: 0x9DF5, - 22001 - 11904: 0x9DF0, - 22002 - 11904: 0xDCDD, - 22005 - 11904: 0x99E7, - 22006 - 11904: 0xB9CD, - 22007 - 11904: 0xB9C8, - 22009 - 11904: 0xE155, - 22010 - 11904: 0xE151, - 22011 - 11904: 0x8BBD, - 22012 - 11904: 0xE14B, - 22013 - 11904: 0xB9C2, - 22014 - 11904: 0xB9BE, - 22015 - 11904: 0xE154, - 22016 - 11904: 0xB9BF, - 22017 - 11904: 0xE14E, - 22018 - 11904: 0xE150, - 22020 - 11904: 0xE153, - 22021 - 11904: 0xFB48, - 22022 - 11904: 0xB9C4, - 22024 - 11904: 0xB9CB, - 22025 - 11904: 0xB9C5, - 22028 - 11904: 0xE149, - 22029 - 11904: 0xB9C6, - 22030 - 11904: 0xB9C7, - 22031 - 11904: 0xE14C, - 22032 - 11904: 0xB9CC, - 22033 - 11904: 0x9FB7, - 22034 - 11904: 0xE14A, - 22035 - 11904: 0xE14F, - 22036 - 11904: 0xB9C3, - 22037 - 11904: 0xE148, - 22038 - 11904: 0xB9C9, - 22039 - 11904: 0xB9C1, - 22043 - 11904: 0xB9C0, - 22044 - 11904: 0xE14D, - 22045 - 11904: 0xE152, - 22046 - 11904: 0x9DD0, - 22047 - 11904: 0xB9CA, - 22048 - 11904: 0x9FEB, - 22049 - 11904: 0x8DA9, - 22050 - 11904: 0x9DCF, - 22051 - 11904: 0x98E1, - 22053 - 11904: 0x9DE5, - 22055 - 11904: 0xE147, - 22057 - 11904: 0xBC4D, - 22058 - 11904: 0xE547, - 22060 - 11904: 0xE544, - 22061 - 11904: 0x9DC8, - 22062 - 11904: 0xBC47, - 22063 - 11904: 0xBC53, - 22064 - 11904: 0xBC54, - 22066 - 11904: 0xBC4A, - 22067 - 11904: 0xE542, - 22068 - 11904: 0xBC4C, - 22069 - 11904: 0xE4F9, - 22070 - 11904: 0xBC52, - 22071 - 11904: 0xFB4F, - 22072 - 11904: 0xE546, - 22073 - 11904: 0xBC49, - 22074 - 11904: 0xE548, - 22075 - 11904: 0xBC48, - 22077 - 11904: 0xE543, - 22078 - 11904: 0xE545, - 22079 - 11904: 0xBC4B, - 22080 - 11904: 0xE541, - 22081 - 11904: 0xE4FA, - 22082 - 11904: 0xE4F7, - 22083 - 11904: 0x9DEB, - 22085 - 11904: 0xD86B, - 22086 - 11904: 0xE4FD, - 22088 - 11904: 0xE4F6, - 22089 - 11904: 0xE4FC, - 22090 - 11904: 0xE4FB, - 22092 - 11904: 0xE4F8, - 22093 - 11904: 0xFB54, - 22094 - 11904: 0xBC4F, - 22095 - 11904: 0xFB55, - 22096 - 11904: 0x9AA2, - 22098 - 11904: 0x8AD6, - 22099 - 11904: 0xBC4E, - 22100 - 11904: 0x9A5F, - 22103 - 11904: 0xBC50, - 22104 - 11904: 0xE4FE, - 22105 - 11904: 0xBEB2, - 22106 - 11904: 0xE540, - 22109 - 11904: 0x9EF5, - 22110 - 11904: 0xE945, - 22112 - 11904: 0xE8FD, - 22113 - 11904: 0x8FB7, - 22114 - 11904: 0xBEBE, - 22115 - 11904: 0xE942, - 22116 - 11904: 0xBEB6, - 22117 - 11904: 0xBEBA, - 22118 - 11904: 0xE941, - 22120 - 11904: 0xBEB9, - 22121 - 11904: 0xBEB5, - 22122 - 11904: 0xBEB8, - 22123 - 11904: 0xBEB3, - 22124 - 11904: 0xBEBD, - 22125 - 11904: 0xE943, - 22126 - 11904: 0xE8FE, - 22127 - 11904: 0xBEBC, - 22128 - 11904: 0xE8FC, - 22129 - 11904: 0xBEBB, - 22130 - 11904: 0xE944, - 22131 - 11904: 0xE940, - 22132 - 11904: 0xBC51, - 22134 - 11904: 0xBEBF, - 22135 - 11904: 0xE946, - 22136 - 11904: 0xBEB7, - 22137 - 11904: 0xBEB4, - 22138 - 11904: 0x9AD2, - 22139 - 11904: 0x9E6A, - 22140 - 11904: 0x9EE8, - 22142 - 11904: 0xECC6, - 22143 - 11904: 0xECC8, - 22144 - 11904: 0xC07B, - 22145 - 11904: 0xECC9, - 22146 - 11904: 0xECC7, - 22147 - 11904: 0xECC5, - 22148 - 11904: 0xECC4, - 22149 - 11904: 0xC07D, - 22150 - 11904: 0xECC3, - 22151 - 11904: 0xC07E, - 22153 - 11904: 0x8BBF, - 22154 - 11904: 0x91C2, - 22155 - 11904: 0x9D62, - 22156 - 11904: 0xECC1, - 22157 - 11904: 0xECC2, - 22158 - 11904: 0xC07A, - 22159 - 11904: 0xC0A1, - 22160 - 11904: 0xC07C, - 22162 - 11904: 0x9260, - 22163 - 11904: 0xECC0, - 22165 - 11904: 0xC250, - 22167 - 11904: 0xEFBC, - 22168 - 11904: 0xEFBA, - 22169 - 11904: 0xEFBF, - 22170 - 11904: 0xEFBD, - 22172 - 11904: 0xEFBB, - 22173 - 11904: 0xEFBE, - 22174 - 11904: 0x925E, - 22175 - 11904: 0x91C1, - 22177 - 11904: 0x8AC5, - 22180 - 11904: 0x97A3, - 22181 - 11904: 0xC360, - 22182 - 11904: 0xF1F2, - 22183 - 11904: 0xF1F3, - 22184 - 11904: 0xC456, - 22186 - 11904: 0xF1F4, - 22187 - 11904: 0xF1F0, - 22188 - 11904: 0xF1F5, - 22189 - 11904: 0xF1F1, - 22190 - 11904: 0xC251, - 22191 - 11904: 0x8B6C, - 22193 - 11904: 0x8D7E, - 22194 - 11904: 0xF3FE, - 22195 - 11904: 0xF441, - 22196 - 11904: 0xC459, - 22197 - 11904: 0xF440, - 22198 - 11904: 0xC458, - 22199 - 11904: 0xC457, - 22201 - 11904: 0x9C54, - 22204 - 11904: 0xC45A, - 22205 - 11904: 0xF5C5, - 22206 - 11904: 0xF5C6, - 22207 - 11904: 0x9DBD, - 22208 - 11904: 0xC4DA, - 22209 - 11904: 0xC4D9, - 22210 - 11904: 0xC4DB, - 22211 - 11904: 0xF5C4, - 22213 - 11904: 0xF6D8, - 22214 - 11904: 0xF6D7, - 22216 - 11904: 0xC56D, - 22217 - 11904: 0xC56F, - 22218 - 11904: 0xC56E, - 22219 - 11904: 0xF6D9, - 22220 - 11904: 0xC5C8, - 22221 - 11904: 0xF8A6, - 22225 - 11904: 0xC5F1, - 22227 - 11904: 0xF8A5, - 22228 - 11904: 0xF8EE, - 22230 - 11904: 0x9CC5, - 22231 - 11904: 0xC949, - 22234 - 11904: 0xA57D, - 22235 - 11904: 0xA57C, - 22237 - 11904: 0xA65F, - 22238 - 11904: 0xA65E, - 22239 - 11904: 0xC9C7, - 22240 - 11904: 0xA65D, - 22241 - 11904: 0xC9C6, - 22242 - 11904: 0x895B, - 22244 - 11904: 0xA779, - 22245 - 11904: 0xCAA9, - 22247 - 11904: 0xCAA8, - 22250 - 11904: 0xA777, - 22251 - 11904: 0xA77A, - 22253 - 11904: 0xFB5C, - 22254 - 11904: 0xCAA7, - 22255 - 11904: 0xFB5B, - 22256 - 11904: 0xA778, - 22257 - 11904: 0xFB57, - 22263 - 11904: 0xCBF0, - 22265 - 11904: 0xCBF1, - 22266 - 11904: 0xA954, - 22267 - 11904: 0x8765, - 22269 - 11904: 0x98C7, - 22271 - 11904: 0xABAA, - 22272 - 11904: 0xFB5A, - 22273 - 11904: 0xD148, - 22274 - 11904: 0xD149, - 22275 - 11904: 0xAE45, - 22276 - 11904: 0xAE46, - 22279 - 11904: 0xD4AC, - 22280 - 11904: 0xB0E9, - 22281 - 11904: 0xB0EB, - 22282 - 11904: 0xD4AB, - 22283 - 11904: 0xB0EA, - 22284 - 11904: 0xD87C, - 22285 - 11904: 0xB3F2, - 22290 - 11904: 0xB6E9, - 22291 - 11904: 0xB6EA, - 22292 - 11904: 0xDCE1, - 22293 - 11904: 0x9CEE, - 22294 - 11904: 0xB9CF, - 22296 - 11904: 0xB9CE, - 22298 - 11904: 0xE549, - 22299 - 11904: 0xE948, - 22300 - 11904: 0xE947, - 22301 - 11904: 0x92E2, - 22302 - 11904: 0xF96B, - 22303 - 11904: 0xA467, - 22304 - 11904: 0xC959, - 22306 - 11904: 0xC96E, - 22307 - 11904: 0xC96F, - 22312 - 11904: 0xA662, - 22313 - 11904: 0xA666, - 22314 - 11904: 0xC9C9, - 22316 - 11904: 0xA664, - 22317 - 11904: 0xA663, - 22318 - 11904: 0xC9C8, - 22319 - 11904: 0xA665, - 22320 - 11904: 0xA661, - 22322 - 11904: 0x94A7, - 22323 - 11904: 0xA660, - 22324 - 11904: 0xC9CA, - 22331 - 11904: 0xA7A6, - 22333 - 11904: 0x8CCC, - 22334 - 11904: 0xA7A3, - 22335 - 11904: 0x9BD4, - 22336 - 11904: 0xA77D, - 22337 - 11904: 0xCAAA, - 22338 - 11904: 0xFB64, - 22339 - 11904: 0xFB76, - 22341 - 11904: 0xCAAB, - 22342 - 11904: 0xFB60, - 22343 - 11904: 0xA7A1, - 22345 - 11904: 0xCAAD, - 22346 - 11904: 0xA77B, - 22347 - 11904: 0xCAAE, - 22348 - 11904: 0xCAAC, - 22349 - 11904: 0xA77E, - 22350 - 11904: 0xA7A2, - 22351 - 11904: 0xA7A5, - 22352 - 11904: 0xA7A4, - 22353 - 11904: 0xA77C, - 22354 - 11904: 0xCAAF, - 22356 - 11904: 0x99E5, - 22359 - 11904: 0x9AC2, - 22363 - 11904: 0x91FB, - 22367 - 11904: 0xA073, - 22369 - 11904: 0xA959, - 22370 - 11904: 0xCBFE, - 22372 - 11904: 0xA95B, - 22374 - 11904: 0xA95A, - 22375 - 11904: 0x9F72, - 22376 - 11904: 0xCC40, - 22377 - 11904: 0xA958, - 22378 - 11904: 0xA957, - 22379 - 11904: 0xCBF5, - 22381 - 11904: 0xCBF4, - 22383 - 11904: 0xCBF2, - 22384 - 11904: 0xCBF7, - 22385 - 11904: 0xCBF6, - 22386 - 11904: 0xCBF3, - 22387 - 11904: 0xCBFC, - 22388 - 11904: 0xCBFD, - 22389 - 11904: 0xCBFA, - 22390 - 11904: 0xCBF8, - 22391 - 11904: 0xA956, - 22394 - 11904: 0x9FCC, - 22395 - 11904: 0xCBFB, - 22396 - 11904: 0xA95C, - 22397 - 11904: 0xCC41, - 22398 - 11904: 0x98A5, - 22399 - 11904: 0x92E8, - 22400 - 11904: 0xCBF9, - 22402 - 11904: 0xABAB, - 22403 - 11904: 0xA955, - 22408 - 11904: 0x9BBC, - 22410 - 11904: 0x96F3, - 22411 - 11904: 0xABAC, - 22412 - 11904: 0xCE54, - 22413 - 11904: 0x92E7, - 22415 - 11904: 0xCE5A, - 22416 - 11904: 0xFC67, - 22419 - 11904: 0xABB2, - 22420 - 11904: 0xCE58, - 22421 - 11904: 0xCE5E, - 22423 - 11904: 0xCE55, - 22424 - 11904: 0xCE59, - 22425 - 11904: 0xCE5B, - 22426 - 11904: 0xCE5D, - 22427 - 11904: 0xCE57, - 22428 - 11904: 0x8B7D, - 22429 - 11904: 0xCE56, - 22430 - 11904: 0xCE51, - 22431 - 11904: 0xCE52, - 22432 - 11904: 0xABAD, - 22433 - 11904: 0x9BF4, - 22434 - 11904: 0xABAF, - 22435 - 11904: 0xABAE, - 22436 - 11904: 0xCE53, - 22437 - 11904: 0xCE5C, - 22439 - 11904: 0x9EF7, - 22442 - 11904: 0x9EC1, - 22446 - 11904: 0xABB1, - 22451 - 11904: 0x87C3, - 22452 - 11904: 0x996F, - 22453 - 11904: 0xCE50, - 22454 - 11904: 0xD153, - 22456 - 11904: 0xD152, - 22457 - 11904: 0xD157, - 22458 - 11904: 0xD14E, - 22459 - 11904: 0x96F1, - 22460 - 11904: 0xD151, - 22461 - 11904: 0xD150, - 22462 - 11904: 0x8E41, - 22463 - 11904: 0xD154, - 22465 - 11904: 0xD158, - 22466 - 11904: 0xAE47, - 22467 - 11904: 0xAE4A, - 22468 - 11904: 0x954A, - 22470 - 11904: 0xD14F, - 22471 - 11904: 0xD155, - 22472 - 11904: 0x97E6, - 22475 - 11904: 0xAE49, - 22476 - 11904: 0xD14A, - 22478 - 11904: 0xABB0, - 22479 - 11904: 0xD4BA, - 22480 - 11904: 0xD156, - 22482 - 11904: 0xD14D, - 22484 - 11904: 0xAE48, - 22485 - 11904: 0xD14C, - 22487 - 11904: 0x96F5, - 22492 - 11904: 0xD4B1, - 22493 - 11904: 0x92E6, - 22494 - 11904: 0x9F42, - 22495 - 11904: 0xB0EC, - 22496 - 11904: 0xB0F0, - 22497 - 11904: 0xD4C1, - 22498 - 11904: 0xD4AF, - 22499 - 11904: 0xD4BD, - 22500 - 11904: 0xB0F1, - 22501 - 11904: 0xD4BF, - 22502 - 11904: 0xFB67, - 22503 - 11904: 0xD4C5, - 22505 - 11904: 0xD4C9, - 22508 - 11904: 0xD4C0, - 22509 - 11904: 0xD4B4, - 22510 - 11904: 0xD4BC, - 22511 - 11904: 0x99A9, - 22512 - 11904: 0xD4CA, - 22513 - 11904: 0xD4C8, - 22514 - 11904: 0xD4BE, - 22515 - 11904: 0xD4B9, - 22516 - 11904: 0xD4B2, - 22517 - 11904: 0xD8A6, - 22518 - 11904: 0xD4B0, - 22519 - 11904: 0xB0F5, - 22520 - 11904: 0xD4B7, - 22521 - 11904: 0xB0F6, - 22522 - 11904: 0xB0F2, - 22523 - 11904: 0xD4AD, - 22524 - 11904: 0xD4C3, - 22525 - 11904: 0xD4B5, - 22526 - 11904: 0xFAE6, - 22528 - 11904: 0xD4B3, - 22529 - 11904: 0xD4C6, - 22530 - 11904: 0xB0F3, - 22531 - 11904: 0xFB69, - 22532 - 11904: 0xD4CC, - 22533 - 11904: 0xB0ED, - 22534 - 11904: 0xB0EF, - 22535 - 11904: 0xD4BB, - 22536 - 11904: 0xD4B6, - 22537 - 11904: 0xAE4B, - 22538 - 11904: 0xB0EE, - 22539 - 11904: 0xD4B8, - 22540 - 11904: 0xD4C7, - 22541 - 11904: 0xD4CB, - 22542 - 11904: 0xD4C2, - 22544 - 11904: 0xD4C4, - 22546 - 11904: 0x97E5, - 22548 - 11904: 0xD4AE, - 22552 - 11904: 0x87C8, - 22553 - 11904: 0xD8A1, - 22555 - 11904: 0xD8AA, - 22556 - 11904: 0xD8A9, - 22557 - 11904: 0xB3FA, - 22558 - 11904: 0xD8A2, - 22560 - 11904: 0xB3FB, - 22561 - 11904: 0xB3F9, - 22562 - 11904: 0x967D, - 22563 - 11904: 0xD8A4, - 22564 - 11904: 0xB3F6, - 22565 - 11904: 0xD8A8, - 22566 - 11904: 0xFB6C, - 22567 - 11904: 0xD8A3, - 22568 - 11904: 0xD8A5, - 22569 - 11904: 0xD87D, - 22570 - 11904: 0xB3F4, - 22572 - 11904: 0xD8B2, - 22573 - 11904: 0xD8B1, - 22574 - 11904: 0xD8AE, - 22575 - 11904: 0xB3F3, - 22576 - 11904: 0xB3F7, - 22577 - 11904: 0xB3F8, - 22578 - 11904: 0xD14B, - 22579 - 11904: 0xD8AB, - 22580 - 11904: 0xB3F5, - 22581 - 11904: 0xB0F4, - 22582 - 11904: 0xD8AD, - 22583 - 11904: 0xD87E, - 22584 - 11904: 0xD8B0, - 22585 - 11904: 0xD8AF, - 22586 - 11904: 0x99A2, - 22587 - 11904: 0xD8B3, - 22589 - 11904: 0xDCEF, - 22591 - 11904: 0xD8AC, - 22592 - 11904: 0x9ABB, - 22596 - 11904: 0x9A65, - 22599 - 11904: 0x944E, - 22600 - 11904: 0xD8A7, - 22601 - 11904: 0xDCE7, - 22602 - 11904: 0xB6F4, - 22603 - 11904: 0xB6F7, - 22604 - 11904: 0xB6F2, - 22605 - 11904: 0xDCE6, - 22606 - 11904: 0xDCEA, - 22607 - 11904: 0xDCE5, - 22609 - 11904: 0xB6EC, - 22610 - 11904: 0xB6F6, - 22611 - 11904: 0xDCE2, - 22612 - 11904: 0xB6F0, - 22613 - 11904: 0xDCE9, - 22615 - 11904: 0xB6EE, - 22616 - 11904: 0xB6ED, - 22617 - 11904: 0xDCEC, - 22618 - 11904: 0xB6EF, - 22619 - 11904: 0xDCEE, - 22620 - 11904: 0xFB6E, - 22621 - 11904: 0xDCEB, - 22622 - 11904: 0xB6EB, - 22623 - 11904: 0x99DF, - 22626 - 11904: 0xB6F5, - 22627 - 11904: 0xDCF0, - 22628 - 11904: 0xDCE4, - 22629 - 11904: 0xDCED, - 22632 - 11904: 0xDCE3, - 22633 - 11904: 0x98E3, - 22635 - 11904: 0xB6F1, - 22636 - 11904: 0x9254, - 22637 - 11904: 0xB6F3, - 22639 - 11904: 0xDCE8, - 22641 - 11904: 0xDCF1, - 22642 - 11904: 0x967B, - 22643 - 11904: 0x8AAF, - 22644 - 11904: 0xE15D, - 22645 - 11904: 0xB9D0, - 22646 - 11904: 0xE163, - 22649 - 11904: 0xB9D5, - 22650 - 11904: 0xE15F, - 22651 - 11904: 0xE166, - 22652 - 11904: 0xE157, - 22653 - 11904: 0xB9D7, - 22654 - 11904: 0xB9D1, - 22655 - 11904: 0xE15C, - 22656 - 11904: 0xBC55, - 22657 - 11904: 0xE15B, - 22658 - 11904: 0xE164, - 22659 - 11904: 0xB9D2, - 22661 - 11904: 0xB9D6, - 22662 - 11904: 0xE15A, - 22663 - 11904: 0xE160, - 22664 - 11904: 0xE165, - 22665 - 11904: 0xE156, - 22666 - 11904: 0xB9D4, - 22667 - 11904: 0xE15E, - 22670 - 11904: 0xE162, - 22671 - 11904: 0xE168, - 22672 - 11904: 0xE158, - 22673 - 11904: 0xE161, - 22674 - 11904: 0x8C77, - 22675 - 11904: 0xB9D3, - 22676 - 11904: 0xE167, - 22678 - 11904: 0x87B0, - 22680 - 11904: 0xE159, - 22681 - 11904: 0x8BAF, - 22682 - 11904: 0x9EBD, - 22684 - 11904: 0xBC59, - 22685 - 11904: 0xE54B, - 22686 - 11904: 0xBC57, - 22687 - 11904: 0xBC56, - 22688 - 11904: 0xE54D, - 22689 - 11904: 0xE552, - 22691 - 11904: 0xE54E, - 22693 - 11904: 0xE551, - 22694 - 11904: 0xBC5C, - 22695 - 11904: 0x9EE6, - 22696 - 11904: 0xBEA5, - 22697 - 11904: 0xBC5B, - 22698 - 11904: 0xFB6F, - 22699 - 11904: 0xE54A, - 22700 - 11904: 0xE550, - 22702 - 11904: 0xBC5A, - 22703 - 11904: 0xE54F, - 22704 - 11904: 0x8EE1, - 22705 - 11904: 0xE54C, - 22707 - 11904: 0xBC58, - 22709 - 11904: 0x9B7D, - 22710 - 11904: 0x9C7E, - 22714 - 11904: 0xE94D, - 22715 - 11904: 0xF9D9, - 22716 - 11904: 0xE94F, - 22717 - 11904: 0xE94A, - 22718 - 11904: 0xBEC1, - 22719 - 11904: 0xE94C, - 22721 - 11904: 0xBEC0, - 22722 - 11904: 0xE94E, - 22725 - 11904: 0xBEC3, - 22726 - 11904: 0xE950, - 22727 - 11904: 0xBEC2, - 22728 - 11904: 0xE949, - 22729 - 11904: 0xE94B, - 22731 - 11904: 0x92EA, - 22734 - 11904: 0xC0A5, - 22735 - 11904: 0xECCC, - 22736 - 11904: 0x8C78, - 22737 - 11904: 0xC0A4, - 22738 - 11904: 0xECCD, - 22739 - 11904: 0xC0A3, - 22740 - 11904: 0xECCB, - 22741 - 11904: 0xC0A2, - 22742 - 11904: 0xECCA, - 22744 - 11904: 0xC253, - 22745 - 11904: 0xC252, - 22746 - 11904: 0xF1F6, - 22747 - 11904: 0xF1F8, - 22748 - 11904: 0xFB72, - 22749 - 11904: 0xF1F7, - 22750 - 11904: 0xC361, - 22751 - 11904: 0xC362, - 22752 - 11904: 0xFB71, - 22754 - 11904: 0xC363, - 22755 - 11904: 0xF442, - 22756 - 11904: 0xC45B, - 22759 - 11904: 0xF7D3, - 22760 - 11904: 0xF7D2, - 22761 - 11904: 0xC5F2, - 22763 - 11904: 0xA468, - 22764 - 11904: 0xA4D0, - 22767 - 11904: 0xA7A7, - 22768 - 11904: 0x895C, - 22770 - 11904: 0x98F0, - 22771 - 11904: 0x96F2, - 22772 - 11904: 0xCE5F, - 22777 - 11904: 0xB3FC, - 22778 - 11904: 0xB3FD, - 22779 - 11904: 0xFB74, - 22780 - 11904: 0xDCF2, - 22781 - 11904: 0xB9D8, - 22782 - 11904: 0xE169, - 22783 - 11904: 0xE553, - 22786 - 11904: 0x8BC1, - 22787 - 11904: 0xC95A, - 22788 - 11904: 0x895D, - 22789 - 11904: 0x89DE, - 22790 - 11904: 0xCAB0, - 22791 - 11904: 0x895E, - 22794 - 11904: 0xC6CA, - 22796 - 11904: 0xCC42, - 22797 - 11904: 0xCE60, - 22798 - 11904: 0xD159, - 22799 - 11904: 0xAE4C, - 22801 - 11904: 0xFE42, - 22802 - 11904: 0xF1F9, - 22804 - 11904: 0xC4DC, - 22805 - 11904: 0xA469, - 22806 - 11904: 0xA57E, - 22807 - 11904: 0xC970, - 22809 - 11904: 0xA667, - 22810 - 11904: 0xA668, - 22812 - 11904: 0xA95D, - 22813 - 11904: 0x8768, - 22815 - 11904: 0xFB7B, - 22816 - 11904: 0xB0F7, - 22818 - 11904: 0xB9DA, - 22820 - 11904: 0xB9DB, - 22821 - 11904: 0xB9D9, - 22823 - 11904: 0xA46A, - 22825 - 11904: 0xA4D1, - 22826 - 11904: 0xA4D3, - 22827 - 11904: 0xA4D2, - 22828 - 11904: 0xC95B, - 22829 - 11904: 0xA4D4, - 22830 - 11904: 0xA5A1, - 22831 - 11904: 0xC971, - 22833 - 11904: 0xA5A2, - 22834 - 11904: 0x895F, - 22836 - 11904: 0x8960, - 22839 - 11904: 0xA669, - 22840 - 11904: 0xA66A, - 22844 - 11904: 0xC9CB, - 22846 - 11904: 0xA7A8, - 22848 - 11904: 0xCAB1, - 22852 - 11904: 0xA961, - 22853 - 11904: 0xCC43, - 22855 - 11904: 0xA95F, - 22856 - 11904: 0xA960, - 22857 - 11904: 0xA95E, - 22858 - 11904: 0xD15A, - 22862 - 11904: 0xABB6, - 22863 - 11904: 0xABB5, - 22864 - 11904: 0xABB7, - 22865 - 11904: 0xABB4, - 22867 - 11904: 0xCE61, - 22868 - 11904: 0xA962, - 22869 - 11904: 0xABB3, - 22871 - 11904: 0xAE4D, - 22872 - 11904: 0xAE4E, - 22874 - 11904: 0xAE4F, - 22876 - 11904: 0xD4CD, - 22880 - 11904: 0xB3FE, - 22881 - 11904: 0xD8B4, - 22882 - 11904: 0xB0F8, - 22885 - 11904: 0x9BCD, - 22887 - 11904: 0xB6F8, - 22889 - 11904: 0xB9DD, - 22890 - 11904: 0xB9DC, - 22891 - 11904: 0xE16A, - 22893 - 11904: 0xBC5D, - 22894 - 11904: 0xBEC4, - 22896 - 11904: 0xEFC0, - 22897 - 11904: 0xF6DA, - 22898 - 11904: 0xF7D4, - 22899 - 11904: 0xA46B, - 22900 - 11904: 0xA5A3, - 22901 - 11904: 0x9DD3, - 22902 - 11904: 0xA5A4, - 22903 - 11904: 0xC9D1, - 22904 - 11904: 0xA66C, - 22905 - 11904: 0xA66F, - 22907 - 11904: 0xC9CF, - 22908 - 11904: 0xC9CD, - 22909 - 11904: 0xA66E, - 22910 - 11904: 0xC9D0, - 22911 - 11904: 0xC9D2, - 22912 - 11904: 0xC9CC, - 22913 - 11904: 0xA671, - 22914 - 11904: 0xA670, - 22915 - 11904: 0xA66D, - 22916 - 11904: 0xA66B, - 22917 - 11904: 0xC9CE, - 22921 - 11904: 0x984C, - 22922 - 11904: 0xA7B3, - 22925 - 11904: 0xA7B0, - 22926 - 11904: 0xCAB6, - 22927 - 11904: 0xCAB9, - 22928 - 11904: 0xCAB8, - 22930 - 11904: 0xA7AA, - 22931 - 11904: 0xA7B2, - 22932 - 11904: 0x9752, - 22934 - 11904: 0xA7AF, - 22935 - 11904: 0xCAB5, - 22936 - 11904: 0xCAB3, - 22937 - 11904: 0xA7AE, - 22938 - 11904: 0x95C3, - 22941 - 11904: 0xA7A9, - 22942 - 11904: 0xA7AC, - 22943 - 11904: 0x9BB6, - 22944 - 11904: 0xCAB4, - 22945 - 11904: 0xCABB, - 22946 - 11904: 0xCAB7, - 22947 - 11904: 0xA7AD, - 22948 - 11904: 0xA7B1, - 22949 - 11904: 0xA7B4, - 22950 - 11904: 0xCAB2, - 22951 - 11904: 0xCABA, - 22952 - 11904: 0xA7AB, - 22956 - 11904: 0x9AB9, - 22958 - 11904: 0xA967, - 22959 - 11904: 0xA96F, - 22960 - 11904: 0x97B3, - 22961 - 11904: 0xCC4F, - 22962 - 11904: 0xCC48, - 22963 - 11904: 0xA970, - 22964 - 11904: 0xCC53, - 22965 - 11904: 0xCC44, - 22966 - 11904: 0xCC4B, - 22967 - 11904: 0x9F74, - 22968 - 11904: 0x92F1, - 22969 - 11904: 0xA966, - 22970 - 11904: 0xCC45, - 22971 - 11904: 0xA964, - 22972 - 11904: 0xCC4C, - 22973 - 11904: 0xCC50, - 22974 - 11904: 0xA963, - 22975 - 11904: 0x8CFA, - 22976 - 11904: 0xCC51, - 22977 - 11904: 0xCC4A, - 22979 - 11904: 0xCC4D, - 22980 - 11904: 0x97DF, - 22981 - 11904: 0xA972, - 22982 - 11904: 0xA969, - 22983 - 11904: 0xCC54, - 22984 - 11904: 0xCC52, - 22985 - 11904: 0xFBA6, - 22986 - 11904: 0xA96E, - 22987 - 11904: 0xA96C, - 22988 - 11904: 0xCC49, - 22989 - 11904: 0xA96B, - 22990 - 11904: 0xCC47, - 22991 - 11904: 0xCC46, - 22992 - 11904: 0xA96A, - 22993 - 11904: 0xA968, - 22994 - 11904: 0xA971, - 22995 - 11904: 0xA96D, - 22996 - 11904: 0xA965, - 22998 - 11904: 0xCC4E, - 23000 - 11904: 0xABB9, - 23001 - 11904: 0xFBAB, - 23002 - 11904: 0xABC0, - 23003 - 11904: 0xCE6F, - 23004 - 11904: 0xABB8, - 23005 - 11904: 0xCE67, - 23006 - 11904: 0xCE63, - 23008 - 11904: 0xCE73, - 23009 - 11904: 0xCE62, - 23011 - 11904: 0xABBB, - 23012 - 11904: 0xCE6C, - 23013 - 11904: 0xABBE, - 23014 - 11904: 0xABC1, - 23016 - 11904: 0xABBC, - 23017 - 11904: 0xCE70, - 23018 - 11904: 0xABBF, - 23019 - 11904: 0x9877, - 23020 - 11904: 0xAE56, - 23021 - 11904: 0xCE76, - 23022 - 11904: 0xCE64, - 23023 - 11904: 0x9854, - 23024 - 11904: 0x95C5, - 23025 - 11904: 0xCE66, - 23026 - 11904: 0xCE6D, - 23027 - 11904: 0xCE71, - 23028 - 11904: 0xCE75, - 23029 - 11904: 0xCE72, - 23030 - 11904: 0xCE6B, - 23031 - 11904: 0xCE6E, - 23032 - 11904: 0x9D55, - 23033 - 11904: 0xFBB2, - 23034 - 11904: 0xCE68, - 23035 - 11904: 0xABC3, - 23036 - 11904: 0xCE6A, - 23037 - 11904: 0xCE69, - 23038 - 11904: 0xCE74, - 23039 - 11904: 0xABBA, - 23040 - 11904: 0xCE65, - 23041 - 11904: 0xABC2, - 23042 - 11904: 0x957E, - 23043 - 11904: 0xABBD, - 23049 - 11904: 0xAE5C, - 23050 - 11904: 0xD162, - 23051 - 11904: 0x9742, - 23052 - 11904: 0xAE5B, - 23053 - 11904: 0x94E6, - 23055 - 11904: 0xD160, - 23057 - 11904: 0xAE50, - 23058 - 11904: 0x92F5, - 23059 - 11904: 0xAE55, - 23061 - 11904: 0xD15F, - 23062 - 11904: 0xD15C, - 23063 - 11904: 0xD161, - 23064 - 11904: 0xAE51, - 23065 - 11904: 0xD15B, - 23066 - 11904: 0x8CC5, - 23067 - 11904: 0xAE54, - 23068 - 11904: 0xAE52, - 23070 - 11904: 0xD163, - 23071 - 11904: 0xAE53, - 23072 - 11904: 0xAE57, - 23073 - 11904: 0x92FD, - 23075 - 11904: 0xAE58, - 23076 - 11904: 0xFBA2, - 23077 - 11904: 0xAE5A, - 23079 - 11904: 0x9C51, - 23081 - 11904: 0xAE59, - 23082 - 11904: 0x94E9, - 23083 - 11904: 0x985C, - 23084 - 11904: 0x92F0, - 23085 - 11904: 0xD15D, - 23086 - 11904: 0xD15E, - 23091 - 11904: 0xD164, - 23093 - 11904: 0xD4D4, - 23094 - 11904: 0xB0F9, - 23095 - 11904: 0xD8C2, - 23096 - 11904: 0xD4D3, - 23097 - 11904: 0xD4E6, - 23100 - 11904: 0xB140, - 23101 - 11904: 0x944C, - 23102 - 11904: 0xD4E4, - 23104 - 11904: 0xB0FE, - 23105 - 11904: 0xB0FA, - 23106 - 11904: 0xD4ED, - 23107 - 11904: 0xD4DD, - 23108 - 11904: 0xD4E0, - 23109 - 11904: 0x916B, - 23110 - 11904: 0xB143, - 23111 - 11904: 0xD4EA, - 23112 - 11904: 0xD4E2, - 23113 - 11904: 0xB0FB, - 23114 - 11904: 0xB144, - 23116 - 11904: 0xD4E7, - 23117 - 11904: 0xD4E5, - 23120 - 11904: 0xD4D6, - 23121 - 11904: 0xD4EB, - 23122 - 11904: 0xD4DF, - 23123 - 11904: 0xD4DA, - 23124 - 11904: 0x8B78, - 23125 - 11904: 0xD4D0, - 23126 - 11904: 0xD4EC, - 23127 - 11904: 0xD4DC, - 23128 - 11904: 0xD4CF, - 23129 - 11904: 0x94E2, - 23130 - 11904: 0xB142, - 23131 - 11904: 0xD4E1, - 23132 - 11904: 0xD4EE, - 23133 - 11904: 0xD4DE, - 23134 - 11904: 0xD4D2, - 23135 - 11904: 0xD4D7, - 23136 - 11904: 0xD4CE, - 23137 - 11904: 0x984F, - 23138 - 11904: 0xB141, - 23139 - 11904: 0xFBB5, - 23140 - 11904: 0xD4DB, - 23141 - 11904: 0xD4D8, - 23142 - 11904: 0xB0FC, - 23143 - 11904: 0xD4D1, - 23144 - 11904: 0x9271, - 23145 - 11904: 0xD4E9, - 23146 - 11904: 0xB0FD, - 23147 - 11904: 0x9365, - 23148 - 11904: 0xD4D9, - 23149 - 11904: 0xD4D5, - 23150 - 11904: 0x985B, - 23152 - 11904: 0xD4E8, - 23153 - 11904: 0x9850, - 23159 - 11904: 0xFBB8, - 23160 - 11904: 0xD8BB, - 23161 - 11904: 0x97BC, - 23162 - 11904: 0xD8B8, - 23163 - 11904: 0xD8C9, - 23164 - 11904: 0xD8BD, - 23165 - 11904: 0xD8CA, - 23166 - 11904: 0x92F3, - 23167 - 11904: 0xB442, - 23169 - 11904: 0x9340, - 23170 - 11904: 0x984D, - 23171 - 11904: 0xD8C6, - 23172 - 11904: 0xD8C3, - 23174 - 11904: 0x9572, - 23176 - 11904: 0xFDEF, - 23178 - 11904: 0xD8C4, - 23179 - 11904: 0xD8C7, - 23180 - 11904: 0xD8CB, - 23182 - 11904: 0xD4E3, - 23183 - 11904: 0xD8CD, - 23184 - 11904: 0xDD47, - 23185 - 11904: 0xFDC1, - 23186 - 11904: 0xB443, - 23187 - 11904: 0xD8CE, - 23188 - 11904: 0xD8B6, - 23189 - 11904: 0xD8C0, - 23190 - 11904: 0xFBBA, - 23191 - 11904: 0xD8C5, - 23193 - 11904: 0x92EB, - 23194 - 11904: 0xB441, - 23195 - 11904: 0xB444, - 23196 - 11904: 0xD8CC, - 23197 - 11904: 0xD8CF, - 23198 - 11904: 0xD8BA, - 23199 - 11904: 0xD8B7, - 23200 - 11904: 0xFC73, - 23201 - 11904: 0x97B7, - 23202 - 11904: 0xD8B9, - 23204 - 11904: 0x876F, - 23205 - 11904: 0xD8BE, - 23206 - 11904: 0xD8BC, - 23207 - 11904: 0xB445, - 23209 - 11904: 0xD8C8, - 23211 - 11904: 0xFBB4, - 23212 - 11904: 0xD8BF, - 23214 - 11904: 0xD8C1, - 23215 - 11904: 0xD8B5, - 23216 - 11904: 0xDCFA, - 23217 - 11904: 0xDCF8, - 23218 - 11904: 0xB742, - 23219 - 11904: 0xB740, - 23220 - 11904: 0xDD43, - 23221 - 11904: 0xDCF9, - 23222 - 11904: 0xDD44, - 23223 - 11904: 0xDD40, - 23224 - 11904: 0xDCF7, - 23225 - 11904: 0xDD46, - 23226 - 11904: 0xDCF6, - 23227 - 11904: 0xDCFD, - 23228 - 11904: 0xB6FE, - 23229 - 11904: 0xB6FD, - 23230 - 11904: 0xB6FC, - 23231 - 11904: 0xDCFB, - 23232 - 11904: 0xDD41, - 23233 - 11904: 0xB6F9, - 23234 - 11904: 0xB741, - 23235 - 11904: 0x90A7, - 23236 - 11904: 0xDCF4, - 23238 - 11904: 0xDCFE, - 23239 - 11904: 0xDCF3, - 23240 - 11904: 0xDCFC, - 23241 - 11904: 0xB6FA, - 23242 - 11904: 0xDD42, - 23243 - 11904: 0xDCF5, - 23244 - 11904: 0xB6FB, - 23245 - 11904: 0xDD45, - 23246 - 11904: 0x9741, - 23247 - 11904: 0x92F4, - 23249 - 11904: 0x8772, - 23251 - 11904: 0xFBBC, - 23253 - 11904: 0xE16E, - 23254 - 11904: 0xB9E2, - 23255 - 11904: 0xB9E1, - 23256 - 11904: 0xB9E3, - 23257 - 11904: 0xE17A, - 23258 - 11904: 0xE170, - 23259 - 11904: 0xE176, - 23260 - 11904: 0xE16B, - 23261 - 11904: 0xE179, - 23262 - 11904: 0xE178, - 23263 - 11904: 0xE17C, - 23264 - 11904: 0xE175, - 23265 - 11904: 0xB9DE, - 23266 - 11904: 0xE174, - 23267 - 11904: 0xB9E4, - 23268 - 11904: 0x9577, - 23269 - 11904: 0xE16D, - 23270 - 11904: 0xB9DF, - 23272 - 11904: 0xE17B, - 23273 - 11904: 0xB9E0, - 23274 - 11904: 0xE16F, - 23275 - 11904: 0xE172, - 23276 - 11904: 0xE177, - 23277 - 11904: 0xE171, - 23278 - 11904: 0xE16C, - 23280 - 11904: 0x9EE2, - 23282 - 11904: 0x8F78, - 23283 - 11904: 0xE173, - 23284 - 11904: 0xE555, - 23285 - 11904: 0xBC61, - 23286 - 11904: 0xE558, - 23287 - 11904: 0xE557, - 23288 - 11904: 0xE55A, - 23289 - 11904: 0xE55C, - 23290 - 11904: 0xF9DC, - 23291 - 11904: 0xBC5F, - 23293 - 11904: 0xE556, - 23294 - 11904: 0x9672, - 23295 - 11904: 0xE554, - 23297 - 11904: 0xE55D, - 23298 - 11904: 0xE55B, - 23299 - 11904: 0xE559, - 23301 - 11904: 0xE55F, - 23303 - 11904: 0xE55E, - 23304 - 11904: 0xBC63, - 23305 - 11904: 0xBC5E, - 23307 - 11904: 0xBC60, - 23308 - 11904: 0xBC62, - 23309 - 11904: 0x9EB5, - 23311 - 11904: 0xE560, - 23312 - 11904: 0xE957, - 23313 - 11904: 0x964B, - 23315 - 11904: 0xE956, - 23316 - 11904: 0xE955, - 23317 - 11904: 0x8CAC, - 23318 - 11904: 0xE958, - 23319 - 11904: 0xE951, - 23321 - 11904: 0xE952, - 23322 - 11904: 0xE95A, - 23323 - 11904: 0xE953, - 23325 - 11904: 0xBEC5, - 23326 - 11904: 0xE95C, - 23327 - 11904: 0xA0FA, - 23328 - 11904: 0xE95B, - 23329 - 11904: 0xE954, - 23331 - 11904: 0xECD1, - 23332 - 11904: 0xC0A8, - 23333 - 11904: 0xECCF, - 23334 - 11904: 0xECD4, - 23335 - 11904: 0xECD3, - 23336 - 11904: 0xE959, - 23338 - 11904: 0xC0A7, - 23339 - 11904: 0x9575, - 23340 - 11904: 0xECD2, - 23341 - 11904: 0xECCE, - 23342 - 11904: 0xECD6, - 23343 - 11904: 0xECD5, - 23344 - 11904: 0xC0A6, - 23346 - 11904: 0xECD0, - 23348 - 11904: 0xBEC6, - 23352 - 11904: 0xC254, - 23356 - 11904: 0xEFC1, - 23357 - 11904: 0xF1FA, - 23358 - 11904: 0xF1FB, - 23359 - 11904: 0xF1FC, - 23360 - 11904: 0xC45C, - 23361 - 11904: 0x90DA, - 23363 - 11904: 0xC45D, - 23364 - 11904: 0x9367, - 23365 - 11904: 0xF443, - 23366 - 11904: 0xFEA4, - 23367 - 11904: 0xF5C8, - 23368 - 11904: 0xF5C7, - 23370 - 11904: 0x90DF, - 23371 - 11904: 0xF6DB, - 23372 - 11904: 0xF6DC, - 23373 - 11904: 0xF7D5, - 23374 - 11904: 0xF8A7, - 23375 - 11904: 0x9354, - 23376 - 11904: 0xA46C, - 23377 - 11904: 0xA46D, - 23379 - 11904: 0xA46E, - 23380 - 11904: 0xA4D5, - 23381 - 11904: 0xA5A5, - 23382 - 11904: 0xC9D3, - 23383 - 11904: 0xA672, - 23384 - 11904: 0xA673, - 23386 - 11904: 0xA7B7, - 23387 - 11904: 0xA7B8, - 23388 - 11904: 0xA7B6, - 23389 - 11904: 0xA7B5, - 23391 - 11904: 0xA973, - 23394 - 11904: 0xCC55, - 23395 - 11904: 0xA975, - 23396 - 11904: 0xA974, - 23397 - 11904: 0xCC56, - 23398 - 11904: 0x8961, - 23400 - 11904: 0x8BB4, - 23401 - 11904: 0xABC4, - 23403 - 11904: 0xAE5D, - 23404 - 11904: 0xD165, - 23405 - 11904: 0x9DC0, - 23406 - 11904: 0xD4F0, - 23408 - 11904: 0xB145, - 23409 - 11904: 0xB447, - 23410 - 11904: 0xD4EF, - 23411 - 11904: 0xB446, - 23412 - 11904: 0x8E48, - 23413 - 11904: 0xB9E5, - 23414 - 11904: 0xFBC5, - 23415 - 11904: 0xE17D, - 23416 - 11904: 0xBEC7, - 23418 - 11904: 0xC0A9, - 23419 - 11904: 0xECD7, - 23420 - 11904: 0xFBC7, - 23421 - 11904: 0xC45E, - 23423 - 11904: 0xC570, - 23424 - 11904: 0xC6CB, - 23425 - 11904: 0xC972, - 23426 - 11904: 0xFA79, - 23427 - 11904: 0xA5A6, - 23428 - 11904: 0xC973, - 23429 - 11904: 0xA676, - 23431 - 11904: 0xA674, - 23432 - 11904: 0xA675, - 23433 - 11904: 0xA677, - 23435 - 11904: 0xA7BA, - 23436 - 11904: 0xA7B9, - 23438 - 11904: 0xCABC, - 23439 - 11904: 0xA7BB, - 23440 - 11904: 0x9E67, - 23442 - 11904: 0xCABD, - 23443 - 11904: 0xCC57, - 23445 - 11904: 0xCC58, - 23446 - 11904: 0x8CD9, - 23447 - 11904: 0xA976, - 23448 - 11904: 0xA978, - 23449 - 11904: 0xA97A, - 23450 - 11904: 0xA977, - 23451 - 11904: 0xA97B, - 23452 - 11904: 0xA979, - 23453 - 11904: 0xFBD2, - 23454 - 11904: 0x8962, - 23455 - 11904: 0x8963, - 23458 - 11904: 0xABC8, - 23459 - 11904: 0xABC5, - 23460 - 11904: 0xABC7, - 23461 - 11904: 0xABC9, - 23462 - 11904: 0xABC6, - 23463 - 11904: 0xD166, - 23464 - 11904: 0xCE77, - 23466 - 11904: 0xFC7D, - 23468 - 11904: 0xD168, - 23469 - 11904: 0xD167, - 23470 - 11904: 0xAE63, - 23472 - 11904: 0xAE5F, - 23475 - 11904: 0xAE60, - 23476 - 11904: 0xAE62, - 23477 - 11904: 0xAE64, - 23478 - 11904: 0xAE61, - 23479 - 11904: 0x8773, - 23480 - 11904: 0xAE66, - 23481 - 11904: 0xAE65, - 23487 - 11904: 0xB14A, - 23488 - 11904: 0xD4F2, - 23489 - 11904: 0xD4F1, - 23490 - 11904: 0xB149, - 23491 - 11904: 0x9F6B, - 23492 - 11904: 0xB148, - 23493 - 11904: 0xB147, - 23494 - 11904: 0xB14B, - 23495 - 11904: 0xB146, - 23498 - 11904: 0xD8D5, - 23499 - 11904: 0xD8D2, - 23500 - 11904: 0xB449, - 23501 - 11904: 0xD8D1, - 23502 - 11904: 0xD8D6, - 23504 - 11904: 0xB44B, - 23505 - 11904: 0xD8D4, - 23506 - 11904: 0xB448, - 23507 - 11904: 0xB44A, - 23508 - 11904: 0xD8D3, - 23509 - 11904: 0xFBCC, - 23510 - 11904: 0xDD48, - 23511 - 11904: 0xFEAE, - 23512 - 11904: 0xDD49, - 23513 - 11904: 0xDD4A, - 23515 - 11904: 0x876D, - 23518 - 11904: 0xB9E6, - 23519 - 11904: 0xB9EE, - 23520 - 11904: 0xE17E, - 23521 - 11904: 0xB9E8, - 23522 - 11904: 0xB9EC, - 23523 - 11904: 0xE1A1, - 23524 - 11904: 0xB9ED, - 23525 - 11904: 0xB9E9, - 23526 - 11904: 0xB9EA, - 23527 - 11904: 0xB9E7, - 23528 - 11904: 0xB9EB, - 23529 - 11904: 0xBC66, - 23530 - 11904: 0xD8D0, - 23531 - 11904: 0xBC67, - 23532 - 11904: 0xBC65, - 23534 - 11904: 0xBC64, - 23535 - 11904: 0xE95D, - 23536 - 11904: 0xBEC8, - 23537 - 11904: 0xECD8, - 23538 - 11904: 0xECD9, - 23539 - 11904: 0xFBD1, - 23541 - 11904: 0xC364, - 23542 - 11904: 0xC45F, - 23544 - 11904: 0xA46F, - 23546 - 11904: 0xA678, - 23551 - 11904: 0xFB75, - 23553 - 11904: 0xABCA, - 23555 - 11904: 0xD169, - 23556 - 11904: 0xAE67, - 23557 - 11904: 0xFBD4, - 23559 - 11904: 0xB14E, - 23560 - 11904: 0xB14D, - 23561 - 11904: 0xB14C, - 23562 - 11904: 0xB44C, - 23563 - 11904: 0xB44D, - 23564 - 11904: 0xD8D7, - 23565 - 11904: 0xB9EF, - 23566 - 11904: 0xBEC9, - 23567 - 11904: 0xA470, - 23568 - 11904: 0xC95C, - 23569 - 11904: 0xA4D6, - 23570 - 11904: 0xC974, - 23571 - 11904: 0xFBD6, - 23572 - 11904: 0xFBD8, - 23573 - 11904: 0xC9D4, - 23574 - 11904: 0xA679, - 23578 - 11904: 0xA97C, - 23580 - 11904: 0x8B5D, - 23582 - 11904: 0x934C, - 23583 - 11904: 0xDD4B, - 23584 - 11904: 0x9AE2, - 23586 - 11904: 0xA471, - 23587 - 11904: 0x8BC9, - 23588 - 11904: 0xA4D7, - 23589 - 11904: 0xC9D5, - 23592 - 11904: 0xCABE, - 23594 - 11904: 0xCABF, - 23596 - 11904: 0xA7BC, - 23600 - 11904: 0xD8D8, - 23601 - 11904: 0xB44E, - 23603 - 11904: 0xDD4C, - 23607 - 11904: 0xC0AA, - 23608 - 11904: 0xA472, - 23609 - 11904: 0xA4A8, - 23610 - 11904: 0xA4D8, - 23611 - 11904: 0xC975, - 23612 - 11904: 0xA5A7, - 23614 - 11904: 0xA7C0, - 23615 - 11904: 0xA7BF, - 23616 - 11904: 0xA7BD, - 23617 - 11904: 0xA7BE, - 23620 - 11904: 0xCC59, - 23621 - 11904: 0xA97E, - 23622 - 11904: 0xA9A1, - 23623 - 11904: 0xCC5A, - 23624 - 11904: 0xA97D, - 23625 - 11904: 0xFBDB, - 23626 - 11904: 0x9FC9, - 23627 - 11904: 0xABCE, - 23628 - 11904: 0xCE78, - 23629 - 11904: 0xABCD, - 23630 - 11904: 0xABCB, - 23631 - 11904: 0xABCC, - 23632 - 11904: 0xAE6A, - 23633 - 11904: 0xAE68, - 23635 - 11904: 0x9F44, - 23636 - 11904: 0xD16B, - 23637 - 11904: 0xAE69, - 23638 - 11904: 0xD16A, - 23640 - 11904: 0xAE5E, - 23641 - 11904: 0xD4F3, - 23644 - 11904: 0xB150, - 23645 - 11904: 0xB151, - 23646 - 11904: 0x98ED, - 23648 - 11904: 0xB14F, - 23650 - 11904: 0xB9F0, - 23651 - 11904: 0xE1A2, - 23652 - 11904: 0xBC68, - 23653 - 11904: 0xBC69, - 23655 - 11904: 0xE561, - 23656 - 11904: 0xC0AB, - 23657 - 11904: 0xEFC2, - 23658 - 11904: 0xEFC3, - 23660 - 11904: 0xC4DD, - 23661 - 11904: 0xF8A8, - 23662 - 11904: 0xC94B, - 23663 - 11904: 0xA4D9, - 23665 - 11904: 0xA473, - 23667 - 11904: 0xC977, - 23668 - 11904: 0xC976, - 23672 - 11904: 0x8CE9, - 23673 - 11904: 0xA67A, - 23674 - 11904: 0xC9D7, - 23675 - 11904: 0xC9D8, - 23676 - 11904: 0xC9D6, - 23678 - 11904: 0xC9D9, - 23685 - 11904: 0xFBDD, - 23686 - 11904: 0xCAC7, - 23688 - 11904: 0xCAC2, - 23689 - 11904: 0xCAC4, - 23690 - 11904: 0xCAC6, - 23691 - 11904: 0xCAC3, - 23692 - 11904: 0xA7C4, - 23693 - 11904: 0xCAC0, - 23695 - 11904: 0xCAC1, - 23696 - 11904: 0xA7C1, - 23697 - 11904: 0xA7C2, - 23698 - 11904: 0xCAC5, - 23699 - 11904: 0xCAC8, - 23700 - 11904: 0xA7C3, - 23701 - 11904: 0xCAC9, - 23705 - 11904: 0x8DF2, - 23706 - 11904: 0x8964, - 23708 - 11904: 0xFDF2, - 23709 - 11904: 0xCC68, - 23710 - 11904: 0x934D, - 23711 - 11904: 0xCC62, - 23712 - 11904: 0xCC5D, - 23713 - 11904: 0xA9A3, - 23714 - 11904: 0xCC65, - 23715 - 11904: 0xCC63, - 23716 - 11904: 0xCC5C, - 23717 - 11904: 0xCC69, - 23718 - 11904: 0xCC6C, - 23719 - 11904: 0xCC67, - 23720 - 11904: 0xCC60, - 23721 - 11904: 0xA9A5, - 23722 - 11904: 0xCC66, - 23723 - 11904: 0xA9A6, - 23724 - 11904: 0xCC61, - 23725 - 11904: 0xCC64, - 23726 - 11904: 0xCC5B, - 23727 - 11904: 0xCC5F, - 23728 - 11904: 0xCC6B, - 23729 - 11904: 0xA9A7, - 23731 - 11904: 0xA9A8, - 23733 - 11904: 0xCC5E, - 23734 - 11904: 0xCC6A, - 23735 - 11904: 0xA9A2, - 23736 - 11904: 0xA9A4, - 23738 - 11904: 0xFBE7, - 23745 - 11904: 0xA0F2, - 23746 - 11904: 0x9868, - 23750 - 11904: 0xCEAB, - 23751 - 11904: 0xCEA4, - 23752 - 11904: 0xCEAA, - 23753 - 11904: 0xCEA3, - 23754 - 11904: 0xCEA5, - 23755 - 11904: 0xCE7D, - 23756 - 11904: 0xCE7B, - 23758 - 11904: 0xCEAC, - 23759 - 11904: 0xCEA9, - 23760 - 11904: 0xCE79, - 23761 - 11904: 0x9F58, - 23762 - 11904: 0xABD0, - 23763 - 11904: 0xCEA7, - 23764 - 11904: 0xCEA8, - 23765 - 11904: 0x8CE6, - 23766 - 11904: 0xCEA6, - 23767 - 11904: 0xCE7C, - 23768 - 11904: 0xCE7A, - 23769 - 11904: 0xABCF, - 23770 - 11904: 0xCEA2, - 23771 - 11904: 0xCE7E, - 23774 - 11904: 0xCEA1, - 23775 - 11904: 0xCEAD, - 23781 - 11904: 0x8D73, - 23784 - 11904: 0xAE6F, - 23785 - 11904: 0xFBDE, - 23786 - 11904: 0xAE6E, - 23788 - 11904: 0xD16C, - 23789 - 11904: 0xAE6B, - 23790 - 11904: 0xD16E, - 23791 - 11904: 0xFBDF, - 23792 - 11904: 0xAE70, - 23793 - 11904: 0xD16F, - 23796 - 11904: 0xAE73, - 23797 - 11904: 0x8C48, - 23798 - 11904: 0xAE71, - 23799 - 11904: 0xD170, - 23800 - 11904: 0xCEAE, - 23801 - 11904: 0xD172, - 23803 - 11904: 0xAE6D, - 23804 - 11904: 0x8774, - 23805 - 11904: 0xAE6C, - 23807 - 11904: 0xD16D, - 23808 - 11904: 0xD171, - 23809 - 11904: 0xAE72, - 23814 - 11904: 0xB153, - 23815 - 11904: 0xB152, - 23819 - 11904: 0xD4F5, - 23820 - 11904: 0xD4F9, - 23821 - 11904: 0xD4FB, - 23822 - 11904: 0xB154, - 23823 - 11904: 0xD4FE, - 23824 - 11904: 0xFBE3, - 23825 - 11904: 0xB158, - 23826 - 11904: 0xD541, - 23828 - 11904: 0xB15A, - 23829 - 11904: 0x8DA8, - 23830 - 11904: 0xB156, - 23831 - 11904: 0xB15E, - 23832 - 11904: 0xFBE4, - 23833 - 11904: 0xB15B, - 23834 - 11904: 0xD4F7, - 23835 - 11904: 0xB155, - 23837 - 11904: 0xD4F6, - 23838 - 11904: 0xD4F4, - 23839 - 11904: 0xD543, - 23840 - 11904: 0xD4F8, - 23842 - 11904: 0xB157, - 23843 - 11904: 0xD542, - 23844 - 11904: 0xB15C, - 23845 - 11904: 0xD4FD, - 23846 - 11904: 0xD4FC, - 23847 - 11904: 0xB15D, - 23848 - 11904: 0xD4FA, - 23849 - 11904: 0xB159, - 23852 - 11904: 0x9C75, - 23854 - 11904: 0xD544, - 23855 - 11904: 0x9878, - 23856 - 11904: 0xD540, - 23857 - 11904: 0xD8E7, - 23858 - 11904: 0xD8EE, - 23859 - 11904: 0xD8E3, - 23860 - 11904: 0xB451, - 23861 - 11904: 0xD8DF, - 23862 - 11904: 0xD8EF, - 23863 - 11904: 0xD8D9, - 23864 - 11904: 0xD8EC, - 23865 - 11904: 0xD8EA, - 23866 - 11904: 0xD8E4, - 23868 - 11904: 0xD8ED, - 23869 - 11904: 0xD8E6, - 23870 - 11904: 0x8D60, - 23871 - 11904: 0xD8DE, - 23872 - 11904: 0xD8F0, - 23873 - 11904: 0xD8DC, - 23874 - 11904: 0xD8E9, - 23875 - 11904: 0xD8DA, - 23877 - 11904: 0xD8F1, - 23878 - 11904: 0xFBE5, - 23879 - 11904: 0xB452, - 23880 - 11904: 0x8D61, - 23881 - 11904: 0xD8EB, - 23882 - 11904: 0xDD4F, - 23883 - 11904: 0xD8DD, - 23884 - 11904: 0xB44F, - 23886 - 11904: 0xD8E1, - 23888 - 11904: 0xB450, - 23889 - 11904: 0xD8E0, - 23890 - 11904: 0xD8E5, - 23893 - 11904: 0xD8E2, - 23894 - 11904: 0x8D62, - 23895 - 11904: 0xA0A1, - 23897 - 11904: 0xD8E8, - 23899 - 11904: 0x9C40, - 23902 - 11904: 0xDD53, - 23906 - 11904: 0xDD56, - 23907 - 11904: 0xDD4E, - 23909 - 11904: 0xDD50, - 23911 - 11904: 0xDD55, - 23912 - 11904: 0xDD54, - 23913 - 11904: 0xB743, - 23915 - 11904: 0xD8DB, - 23916 - 11904: 0xDD52, - 23919 - 11904: 0xB744, - 23920 - 11904: 0x98AD, - 23921 - 11904: 0xDD4D, - 23922 - 11904: 0xDD51, - 23924 - 11904: 0x9EEA, - 23927 - 11904: 0xE1A9, - 23928 - 11904: 0x8CEC, - 23929 - 11904: 0xE1B0, - 23930 - 11904: 0xE1A7, - 23931 - 11904: 0x8CD4, - 23932 - 11904: 0xE1AE, - 23933 - 11904: 0xE1A5, - 23934 - 11904: 0xE1AD, - 23935 - 11904: 0xE1B1, - 23936 - 11904: 0xE1A4, - 23937 - 11904: 0xE1A8, - 23938 - 11904: 0xE1A3, - 23940 - 11904: 0xB9F1, - 23941 - 11904: 0x9CEB, - 23942 - 11904: 0xE1A6, - 23943 - 11904: 0xB9F2, - 23944 - 11904: 0xE1AC, - 23945 - 11904: 0xE1AB, - 23946 - 11904: 0xE1AA, - 23947 - 11904: 0xFBE0, - 23949 - 11904: 0xE1AF, - 23950 - 11904: 0x9F51, - 23954 - 11904: 0xE565, - 23955 - 11904: 0xE567, - 23956 - 11904: 0xBC6B, - 23957 - 11904: 0xE568, - 23959 - 11904: 0xE563, - 23961 - 11904: 0xE562, - 23962 - 11904: 0xE56C, - 23964 - 11904: 0xE56A, - 23965 - 11904: 0xBC6A, - 23966 - 11904: 0xE56D, - 23967 - 11904: 0xE564, - 23968 - 11904: 0xE569, - 23969 - 11904: 0xE56B, - 23970 - 11904: 0xE566, - 23972 - 11904: 0x8D65, - 23975 - 11904: 0xE961, - 23976 - 11904: 0xE966, - 23977 - 11904: 0xE960, - 23978 - 11904: 0xE965, - 23979 - 11904: 0x9CF1, - 23980 - 11904: 0xE95E, - 23981 - 11904: 0xE968, - 23982 - 11904: 0xE964, - 23983 - 11904: 0xE969, - 23984 - 11904: 0xE963, - 23985 - 11904: 0xE95F, - 23986 - 11904: 0xE967, - 23988 - 11904: 0xE96A, - 23989 - 11904: 0xE962, - 23990 - 11904: 0xFC58, - 23991 - 11904: 0xECDA, - 23992 - 11904: 0xC0AF, - 23993 - 11904: 0x8D66, - 23994 - 11904: 0xC0AD, - 23996 - 11904: 0xC0AC, - 23997 - 11904: 0xC0AE, - 24000 - 11904: 0xEFC4, - 24001 - 11904: 0x9654, - 24002 - 11904: 0xF172, - 24003 - 11904: 0xF1FD, - 24006 - 11904: 0xF444, - 24007 - 11904: 0xF445, - 24009 - 11904: 0xC460, - 24011 - 11904: 0xF5C9, - 24013 - 11904: 0xC4DE, - 24015 - 11904: 0xF5CA, - 24017 - 11904: 0xF6DE, - 24018 - 11904: 0xC572, - 24020 - 11904: 0xC571, - 24021 - 11904: 0xF6DD, - 24022 - 11904: 0xC5C9, - 24023 - 11904: 0xFBE8, - 24024 - 11904: 0xF7D6, - 24027 - 11904: 0xC6CC, - 24029 - 11904: 0xA474, - 24030 - 11904: 0xA67B, - 24031 - 11904: 0xC9DA, - 24032 - 11904: 0xCACA, - 24033 - 11904: 0xA8B5, - 24034 - 11904: 0xB15F, - 24037 - 11904: 0xA475, - 24038 - 11904: 0xA5AA, - 24039 - 11904: 0xA5A9, - 24040 - 11904: 0xA5A8, - 24043 - 11904: 0xA7C5, - 24046 - 11904: 0xAE74, - 24048 - 11904: 0xDD57, - 24049 - 11904: 0xA476, - 24050 - 11904: 0xA477, - 24051 - 11904: 0xA478, - 24052 - 11904: 0xA4DA, - 24053 - 11904: 0x9FCE, - 24055 - 11904: 0xABD1, - 24057 - 11904: 0xCEAF, - 24061 - 11904: 0xB453, - 24062 - 11904: 0xA479, - 24063 - 11904: 0xC95D, - 24066 - 11904: 0xA5AB, - 24067 - 11904: 0xA5AC, - 24068 - 11904: 0xC978, - 24070 - 11904: 0xA67C, - 24073 - 11904: 0xFBFC, - 24074 - 11904: 0xCACB, - 24075 - 11904: 0x9AE4, - 24076 - 11904: 0xA7C6, - 24078 - 11904: 0xCACC, - 24081 - 11904: 0xA9AE, - 24082 - 11904: 0x9F75, - 24084 - 11904: 0xCC6E, - 24085 - 11904: 0xA9AC, - 24086 - 11904: 0xA9AB, - 24087 - 11904: 0xCC6D, - 24088 - 11904: 0xA9A9, - 24089 - 11904: 0xCC6F, - 24090 - 11904: 0xA9AA, - 24091 - 11904: 0xA9AD, - 24093 - 11904: 0xABD2, - 24095 - 11904: 0xABD4, - 24096 - 11904: 0xCEB3, - 24097 - 11904: 0xCEB0, - 24098 - 11904: 0xCEB1, - 24099 - 11904: 0xCEB2, - 24100 - 11904: 0xCEB4, - 24101 - 11904: 0xABD3, - 24104 - 11904: 0xD174, - 24105 - 11904: 0xD173, - 24107 - 11904: 0xAE76, - 24109 - 11904: 0xAE75, - 24110 - 11904: 0xFBF1, - 24115 - 11904: 0xB162, - 24116 - 11904: 0xD546, - 24118 - 11904: 0xB161, - 24119 - 11904: 0xB163, - 24120 - 11904: 0xB160, - 24125 - 11904: 0xB455, - 24126 - 11904: 0xD545, - 24128 - 11904: 0xB456, - 24129 - 11904: 0xD8F3, - 24130 - 11904: 0x8D69, - 24131 - 11904: 0xB457, - 24132 - 11904: 0xD8F2, - 24133 - 11904: 0xB454, - 24136 - 11904: 0x934F, - 24138 - 11904: 0xDD5A, - 24139 - 11904: 0xDD5C, - 24140 - 11904: 0xB745, - 24141 - 11904: 0xDD5B, - 24142 - 11904: 0xDD59, - 24143 - 11904: 0xDD58, - 24147 - 11904: 0xE1B4, - 24148 - 11904: 0xB9F7, - 24149 - 11904: 0xB9F5, - 24151 - 11904: 0xB9F6, - 24152 - 11904: 0xE1B2, - 24153 - 11904: 0xE1B3, - 24155 - 11904: 0xB9F3, - 24156 - 11904: 0xE571, - 24157 - 11904: 0xE56F, - 24158 - 11904: 0x934E, - 24159 - 11904: 0xBC6D, - 24160 - 11904: 0xE570, - 24161 - 11904: 0xBC6E, - 24162 - 11904: 0xBC6C, - 24163 - 11904: 0xB9F4, - 24166 - 11904: 0xE96D, - 24167 - 11904: 0xE96B, - 24168 - 11904: 0xE96C, - 24169 - 11904: 0xE56E, - 24170 - 11904: 0xECDC, - 24171 - 11904: 0xC0B0, - 24172 - 11904: 0xECDB, - 24173 - 11904: 0xEFC5, - 24174 - 11904: 0xEFC6, - 24175 - 11904: 0xE96E, - 24176 - 11904: 0xF1FE, - 24178 - 11904: 0xA47A, - 24179 - 11904: 0xA5AD, - 24180 - 11904: 0xA67E, - 24181 - 11904: 0xFBF3, - 24182 - 11904: 0xA67D, - 24184 - 11904: 0xA9AF, - 24185 - 11904: 0xB746, - 24186 - 11904: 0xFBF4, - 24187 - 11904: 0xA4DB, - 24188 - 11904: 0xA5AE, - 24189 - 11904: 0xABD5, - 24190 - 11904: 0xB458, - 24191 - 11904: 0xC6CE, - 24192 - 11904: 0xC979, - 24194 - 11904: 0xC97A, - 24195 - 11904: 0xFBC3, - 24196 - 11904: 0xC9DC, - 24198 - 11904: 0x8965, - 24199 - 11904: 0xA7C8, - 24200 - 11904: 0xCAD0, - 24201 - 11904: 0xCACE, - 24202 - 11904: 0xA7C9, - 24203 - 11904: 0xCACD, - 24204 - 11904: 0xCACF, - 24205 - 11904: 0xCAD1, - 24207 - 11904: 0xA7C7, - 24210 - 11904: 0x8C7A, - 24213 - 11904: 0xA9B3, - 24214 - 11904: 0xA9B4, - 24215 - 11904: 0xA9B1, - 24217 - 11904: 0x8C7B, - 24218 - 11904: 0xA9B0, - 24219 - 11904: 0xCEB8, - 24220 - 11904: 0xA9B2, - 24224 - 11904: 0xABD6, - 24226 - 11904: 0xCEB7, - 24227 - 11904: 0xCEB9, - 24228 - 11904: 0xCEB6, - 24229 - 11904: 0xCEBA, - 24230 - 11904: 0xABD7, - 24231 - 11904: 0xAE79, - 24232 - 11904: 0xD175, - 24234 - 11904: 0xD177, - 24235 - 11904: 0xAE77, - 24236 - 11904: 0xD178, - 24237 - 11904: 0xAE78, - 24238 - 11904: 0xD176, - 24240 - 11904: 0xCEB5, - 24241 - 11904: 0xD547, - 24242 - 11904: 0xD54A, - 24243 - 11904: 0xD54B, - 24244 - 11904: 0xD548, - 24245 - 11904: 0xB167, - 24246 - 11904: 0xB166, - 24247 - 11904: 0xB164, - 24248 - 11904: 0xB165, - 24249 - 11904: 0xD549, - 24253 - 11904: 0x8D6A, - 24254 - 11904: 0xB168, - 24257 - 11904: 0xB45A, - 24258 - 11904: 0xB45B, - 24260 - 11904: 0xB45C, - 24261 - 11904: 0xDD5D, - 24262 - 11904: 0xDD5F, - 24263 - 11904: 0xDD61, - 24264 - 11904: 0xB748, - 24265 - 11904: 0xB747, - 24266 - 11904: 0xB459, - 24267 - 11904: 0xDD60, - 24268 - 11904: 0xDD5E, - 24269 - 11904: 0x9353, - 24270 - 11904: 0xE1B8, - 24272 - 11904: 0xFBF9, - 24273 - 11904: 0xE1B6, - 24274 - 11904: 0xE1BC, - 24275 - 11904: 0xB9F8, - 24276 - 11904: 0xE1BD, - 24277 - 11904: 0xE1BA, - 24278 - 11904: 0xB9F9, - 24279 - 11904: 0xE1B7, - 24280 - 11904: 0xE1B5, - 24281 - 11904: 0xE1BB, - 24282 - 11904: 0xBC70, - 24283 - 11904: 0xE573, - 24284 - 11904: 0xE1B9, - 24285 - 11904: 0xBC72, - 24286 - 11904: 0xE574, - 24287 - 11904: 0xBC71, - 24288 - 11904: 0xBC74, - 24289 - 11904: 0xE575, - 24290 - 11904: 0xBC6F, - 24291 - 11904: 0xBC73, - 24293 - 11904: 0xE973, - 24294 - 11904: 0xE971, - 24295 - 11904: 0xE970, - 24296 - 11904: 0xE972, - 24297 - 11904: 0xE96F, - 24300 - 11904: 0xC366, - 24302 - 11904: 0xF446, - 24303 - 11904: 0xF447, - 24305 - 11904: 0xF5CB, - 24306 - 11904: 0xF6DF, - 24307 - 11904: 0xC655, - 24308 - 11904: 0xFBFD, - 24310 - 11904: 0xA9B5, - 24311 - 11904: 0xA7CA, - 24312 - 11904: 0x9059, - 24313 - 11904: 0xFC40, - 24314 - 11904: 0xABD8, - 24315 - 11904: 0xFC41, - 24316 - 11904: 0xFC43, - 24318 - 11904: 0xA47B, - 24319 - 11904: 0xA4DC, - 24321 - 11904: 0xA5AF, - 24322 - 11904: 0xC9DD, - 24324 - 11904: 0xA7CB, - 24325 - 11904: 0xCAD2, - 24327 - 11904: 0xCEBB, - 24328 - 11904: 0xABD9, - 24330 - 11904: 0xB9FA, - 24331 - 11904: 0xA47C, - 24332 - 11904: 0x9FD8, - 24333 - 11904: 0xFC46, - 24334 - 11904: 0x9362, - 24335 - 11904: 0xA6A1, - 24338 - 11904: 0xB749, - 24339 - 11904: 0xA47D, - 24340 - 11904: 0xA4DD, - 24341 - 11904: 0xA4DE, - 24343 - 11904: 0xA5B1, - 24344 - 11904: 0xA5B0, - 24346 - 11904: 0xC9DE, - 24347 - 11904: 0xA6A2, - 24349 - 11904: 0xCAD3, - 24351 - 11904: 0xA7CC, - 24354 - 11904: 0xCC71, - 24355 - 11904: 0xCC72, - 24356 - 11904: 0xCC73, - 24357 - 11904: 0x8D6B, - 24358 - 11904: 0xA9B6, - 24359 - 11904: 0xA9B7, - 24360 - 11904: 0xCC70, - 24361 - 11904: 0xA9B8, - 24365 - 11904: 0xABDA, - 24366 - 11904: 0xCEBC, - 24368 - 11904: 0xD17A, - 24369 - 11904: 0xAE7A, - 24371 - 11904: 0xD179, - 24373 - 11904: 0xB169, - 24374 - 11904: 0xD54C, - 24375 - 11904: 0xB16A, - 24376 - 11904: 0xD54D, - 24378 - 11904: 0xFC4C, - 24379 - 11904: 0x8CFE, - 24380 - 11904: 0xB45D, - 24384 - 11904: 0xDD62, - 24387 - 11904: 0xE1BF, - 24388 - 11904: 0xE1BE, - 24390 - 11904: 0xB9FB, - 24392 - 11904: 0xBC75, - 24393 - 11904: 0xE576, - 24394 - 11904: 0xBECA, - 24395 - 11904: 0xE974, - 24396 - 11904: 0xC0B1, - 24397 - 11904: 0x95B8, - 24398 - 11904: 0xC573, - 24399 - 11904: 0xF7D8, - 24400 - 11904: 0xC6D0, - 24401 - 11904: 0x8BCA, - 24404 - 11904: 0xCC74, - 24406 - 11904: 0xCEBD, - 24407 - 11904: 0xB16B, - 24408 - 11904: 0xFC4F, - 24409 - 11904: 0xB74A, - 24412 - 11904: 0x987A, - 24413 - 11904: 0xC255, - 24417 - 11904: 0xC6D1, - 24418 - 11904: 0xA7CE, - 24419 - 11904: 0xFC51, - 24420 - 11904: 0xA7CD, - 24421 - 11904: 0xABDB, - 24423 - 11904: 0xD17B, - 24425 - 11904: 0xB16D, - 24426 - 11904: 0xB343, - 24427 - 11904: 0xB16E, - 24428 - 11904: 0xB16C, - 24429 - 11904: 0xB45E, - 24431 - 11904: 0xE1C0, - 24432 - 11904: 0xB9FC, - 24433 - 11904: 0xBC76, - 24434 - 11904: 0xFC54, - 24435 - 11904: 0xC94C, - 24436 - 11904: 0xC9DF, - 24438 - 11904: 0xCAD5, - 24439 - 11904: 0xA7CF, - 24440 - 11904: 0xCAD4, - 24441 - 11904: 0xA7D0, - 24443 - 11904: 0xFAAF, - 24444 - 11904: 0xA9BC, - 24445 - 11904: 0xCC77, - 24446 - 11904: 0xCC76, - 24447 - 11904: 0xA9BB, - 24448 - 11904: 0xA9B9, - 24449 - 11904: 0xA9BA, - 24450 - 11904: 0xCC75, - 24451 - 11904: 0x8D6C, - 24453 - 11904: 0xABDD, - 24454 - 11904: 0xCEBE, - 24455 - 11904: 0xABE0, - 24456 - 11904: 0xABDC, - 24457 - 11904: 0xABE2, - 24458 - 11904: 0xABDE, - 24459 - 11904: 0xABDF, - 24460 - 11904: 0xABE1, - 24464 - 11904: 0xAE7D, - 24465 - 11904: 0xAE7C, - 24466 - 11904: 0xAE7B, - 24470 - 11904: 0xD54F, - 24471 - 11904: 0xB16F, - 24472 - 11904: 0xB172, - 24473 - 11904: 0xB170, - 24475 - 11904: 0xD54E, - 24476 - 11904: 0xB175, - 24478 - 11904: 0xB171, - 24479 - 11904: 0xD550, - 24480 - 11904: 0xB174, - 24481 - 11904: 0xB173, - 24484 - 11904: 0xFA61, - 24485 - 11904: 0xD8F6, - 24486 - 11904: 0xD8F5, - 24487 - 11904: 0xFC57, - 24488 - 11904: 0xB461, - 24489 - 11904: 0xB45F, - 24490 - 11904: 0xB460, - 24491 - 11904: 0xD8F7, - 24492 - 11904: 0xB74B, - 24493 - 11904: 0xDD64, - 24494 - 11904: 0xB74C, - 24495 - 11904: 0xDD63, - 24497 - 11904: 0x9B70, - 24498 - 11904: 0xE577, - 24501 - 11904: 0xBC78, - 24502 - 11904: 0xE1C1, - 24503 - 11904: 0xBC77, - 24505 - 11904: 0xB9FD, - 24506 - 11904: 0xA051, - 24507 - 11904: 0xECDE, - 24508 - 11904: 0xE975, - 24509 - 11904: 0xC0B2, - 24510 - 11904: 0xECDD, - 24511 - 11904: 0xF240, - 24512 - 11904: 0xF448, - 24513 - 11904: 0xF449, - 24514 - 11904: 0x8C7C, - 24515 - 11904: 0xA4DF, - 24516 - 11904: 0x8BCB, - 24517 - 11904: 0xA5B2, - 24521 - 11904: 0xC97B, - 24524 - 11904: 0xA7D2, - 24525 - 11904: 0xA7D4, - 24527 - 11904: 0xC9E2, - 24528 - 11904: 0xCAD8, - 24529 - 11904: 0xCAD7, - 24530 - 11904: 0xCAD6, - 24532 - 11904: 0xC9E1, - 24533 - 11904: 0xC9E0, - 24534 - 11904: 0xA6A4, - 24535 - 11904: 0xA7D3, - 24536 - 11904: 0xA7D1, - 24537 - 11904: 0xA6A3, - 24539 - 11904: 0x936E, - 24541 - 11904: 0xA9BD, - 24542 - 11904: 0xCC78, - 24543 - 11904: 0xFCD5, - 24544 - 11904: 0xA9BE, - 24545 - 11904: 0xCADD, - 24547 - 11904: 0xCADF, - 24548 - 11904: 0xCADE, - 24549 - 11904: 0xCC79, - 24552 - 11904: 0xCADA, - 24554 - 11904: 0xA7D8, - 24555 - 11904: 0xA7D6, - 24557 - 11904: 0xCAD9, - 24558 - 11904: 0xCADB, - 24559 - 11904: 0xCAE1, - 24561 - 11904: 0xA7D5, - 24563 - 11904: 0xCADC, - 24564 - 11904: 0xCAE5, - 24565 - 11904: 0xA9C0, - 24567 - 11904: 0xCAE2, - 24568 - 11904: 0xA7D7, - 24570 - 11904: 0xCAE0, - 24571 - 11904: 0xCAE3, - 24573 - 11904: 0xA9BF, - 24575 - 11904: 0xA9C1, - 24576 - 11904: 0xCAE4, - 24585 - 11904: 0xCCAF, - 24586 - 11904: 0xCCA2, - 24587 - 11904: 0xCC7E, - 24588 - 11904: 0xCCAE, - 24589 - 11904: 0xCCA9, - 24590 - 11904: 0xABE7, - 24591 - 11904: 0xA9C2, - 24592 - 11904: 0xCCAA, - 24593 - 11904: 0xCCAD, - 24594 - 11904: 0xABE3, - 24595 - 11904: 0xCCAC, - 24596 - 11904: 0xA9C3, - 24597 - 11904: 0xA9C8, - 24598 - 11904: 0xA9C6, - 24599 - 11904: 0xCCA3, - 24601 - 11904: 0xCC7C, - 24602 - 11904: 0xCCA5, - 24603 - 11904: 0xA9CD, - 24604 - 11904: 0xCCB0, - 24605 - 11904: 0xABE4, - 24606 - 11904: 0xCCA6, - 24608 - 11904: 0xABE5, - 24609 - 11904: 0xA9C9, - 24610 - 11904: 0xCCA8, - 24611 - 11904: 0xFCA9, - 24612 - 11904: 0xCECD, - 24613 - 11904: 0xABE6, - 24614 - 11904: 0xCC7B, - 24615 - 11904: 0xA9CA, - 24616 - 11904: 0xABE8, - 24617 - 11904: 0xA9CB, - 24618 - 11904: 0xA9C7, - 24619 - 11904: 0xA9CC, - 24620 - 11904: 0xCCA7, - 24621 - 11904: 0xCC7A, - 24622 - 11904: 0xCCAB, - 24623 - 11904: 0xA9C4, - 24625 - 11904: 0xFC61, - 24626 - 11904: 0xCC7D, - 24627 - 11904: 0xCCA4, - 24628 - 11904: 0xCCA1, - 24629 - 11904: 0xA9C5, - 24631 - 11904: 0xCEBF, - 24633 - 11904: 0xCEC0, - 24635 - 11904: 0x8966, - 24640 - 11904: 0xCECA, - 24641 - 11904: 0xD1A1, - 24642 - 11904: 0xCECB, - 24643 - 11904: 0xABEE, - 24644 - 11904: 0xCECE, - 24645 - 11904: 0xCEC4, - 24646 - 11904: 0xABED, - 24647 - 11904: 0xCEC6, - 24649 - 11904: 0xCEC7, - 24650 - 11904: 0xFACB, - 24652 - 11904: 0xCEC9, - 24653 - 11904: 0xABE9, - 24656 - 11904: 0xAEA3, - 24658 - 11904: 0xF9DA, - 24659 - 11904: 0xCEC5, - 24660 - 11904: 0xCEC1, - 24661 - 11904: 0xAEA4, - 24664 - 11904: 0xCECF, - 24665 - 11904: 0xAE7E, - 24666 - 11904: 0xD17D, - 24667 - 11904: 0xCEC8, - 24669 - 11904: 0xD17C, - 24670 - 11904: 0xCEC3, - 24671 - 11904: 0xCECC, - 24674 - 11904: 0xABEC, - 24675 - 11904: 0xAEA1, - 24676 - 11904: 0xABF2, - 24677 - 11904: 0xAEA2, - 24678 - 11904: 0xCED0, - 24679 - 11904: 0xD17E, - 24680 - 11904: 0xABEB, - 24681 - 11904: 0xAEA6, - 24682 - 11904: 0xABF1, - 24683 - 11904: 0xABF0, - 24684 - 11904: 0xABEF, - 24685 - 11904: 0xAEA5, - 24686 - 11904: 0xCED1, - 24687 - 11904: 0xAEA7, - 24688 - 11904: 0xABEA, - 24690 - 11904: 0xCEC2, - 24693 - 11904: 0x937A, - 24695 - 11904: 0xA0E0, - 24702 - 11904: 0x936B, - 24703 - 11904: 0xB176, - 24704 - 11904: 0xD1A4, - 24705 - 11904: 0xD1A6, - 24707 - 11904: 0xD1A8, - 24708 - 11904: 0xAEA8, - 24709 - 11904: 0xAEAE, - 24710 - 11904: 0xD553, - 24711 - 11904: 0xD1AC, - 24712 - 11904: 0xD1A3, - 24713 - 11904: 0xB178, - 24714 - 11904: 0xD551, - 24716 - 11904: 0xAEAD, - 24717 - 11904: 0xAEAB, - 24718 - 11904: 0xD1AE, - 24720 - 11904: 0xD552, - 24722 - 11904: 0xD1A5, - 24724 - 11904: 0xAEAC, - 24725 - 11904: 0xD1A9, - 24726 - 11904: 0xAEAF, - 24727 - 11904: 0xD1AB, - 24730 - 11904: 0xAEAA, - 24731 - 11904: 0xD1AA, - 24732 - 11904: 0xD1AD, - 24733 - 11904: 0xD1A7, - 24734 - 11904: 0xFC6B, - 24735 - 11904: 0xAEA9, - 24736 - 11904: 0xB179, - 24738 - 11904: 0xD1A2, - 24739 - 11904: 0xB177, - 24740 - 11904: 0xFC6C, - 24743 - 11904: 0x9468, - 24744 - 11904: 0xB17A, - 24752 - 11904: 0xD555, - 24753 - 11904: 0xD55E, - 24754 - 11904: 0xB464, - 24755 - 11904: 0xFC6D, - 24756 - 11904: 0xB17C, - 24757 - 11904: 0xB1A3, - 24758 - 11904: 0xB465, - 24759 - 11904: 0xD560, - 24760 - 11904: 0xB1AA, - 24761 - 11904: 0xD8F9, - 24762 - 11904: 0xD556, - 24763 - 11904: 0xB1A2, - 24764 - 11904: 0xB1A5, - 24765 - 11904: 0xB17E, - 24766 - 11904: 0xD554, - 24767 - 11904: 0xD562, - 24768 - 11904: 0xD565, - 24769 - 11904: 0xD949, - 24771 - 11904: 0xD563, - 24772 - 11904: 0xD8FD, - 24773 - 11904: 0xB1A1, - 24774 - 11904: 0xB1A8, - 24775 - 11904: 0xB1AC, - 24776 - 11904: 0xD55D, - 24777 - 11904: 0xD8F8, - 24778 - 11904: 0xD561, - 24779 - 11904: 0xB17B, - 24780 - 11904: 0xD8FA, - 24781 - 11904: 0xD564, - 24782 - 11904: 0xD8FC, - 24783 - 11904: 0xD559, - 24785 - 11904: 0xB462, - 24787 - 11904: 0xD557, - 24788 - 11904: 0xD558, - 24789 - 11904: 0xB1A7, - 24791 - 11904: 0x8D71, - 24792 - 11904: 0xB1A6, - 24793 - 11904: 0xD55B, - 24794 - 11904: 0xB1AB, - 24795 - 11904: 0xD55F, - 24796 - 11904: 0xB1A4, - 24797 - 11904: 0xD55C, - 24798 - 11904: 0xFD64, - 24799 - 11904: 0xB1A9, - 24800 - 11904: 0xB466, - 24801 - 11904: 0xB463, - 24802 - 11904: 0xD8FB, - 24803 - 11904: 0x99BA, - 24804 - 11904: 0xD55A, - 24806 - 11904: 0xB17D, - 24807 - 11904: 0x9AD0, - 24808 - 11904: 0x9A61, - 24809 - 11904: 0xA0E5, - 24816 - 11904: 0xB46B, - 24817 - 11904: 0xB46F, - 24818 - 11904: 0xD940, - 24819 - 11904: 0xB751, - 24820 - 11904: 0xB46D, - 24821 - 11904: 0xD944, - 24822 - 11904: 0xB471, - 24823 - 11904: 0xDD65, - 24824 - 11904: 0xD946, - 24825 - 11904: 0xB753, - 24826 - 11904: 0xB469, - 24827 - 11904: 0xB46C, - 24828 - 11904: 0xD947, - 24829 - 11904: 0xA05B, - 24830 - 11904: 0xD948, - 24831 - 11904: 0xD94E, - 24832 - 11904: 0xB473, - 24833 - 11904: 0xB754, - 24835 - 11904: 0xD94A, - 24836 - 11904: 0xD94F, - 24837 - 11904: 0xD943, - 24838 - 11904: 0xB75E, - 24839 - 11904: 0x96AC, - 24840 - 11904: 0xB755, - 24841 - 11904: 0xB472, - 24842 - 11904: 0xD941, - 24843 - 11904: 0xD950, - 24844 - 11904: 0x9740, - 24845 - 11904: 0xB75D, - 24846 - 11904: 0xB470, - 24847 - 11904: 0xB74E, - 24848 - 11904: 0xD94D, - 24850 - 11904: 0xB474, - 24851 - 11904: 0xD945, - 24852 - 11904: 0xD8FE, - 24853 - 11904: 0xB46A, - 24854 - 11904: 0xD942, - 24856 - 11904: 0xD94B, - 24857 - 11904: 0x9EF1, - 24858 - 11904: 0xB74D, - 24859 - 11904: 0xB752, - 24860 - 11904: 0xB467, - 24861 - 11904: 0xD94C, - 24863 - 11904: 0xB750, - 24866 - 11904: 0x8C4D, - 24867 - 11904: 0xB468, - 24871 - 11904: 0xB75C, - 24872 - 11904: 0xE1C3, - 24873 - 11904: 0xDD70, - 24875 - 11904: 0xDD68, - 24876 - 11904: 0xE1C2, - 24878 - 11904: 0xDD6C, - 24879 - 11904: 0xDD6E, - 24880 - 11904: 0x9F7E, - 24882 - 11904: 0xDD6B, - 24884 - 11904: 0xB75B, - 24886 - 11904: 0xDD6A, - 24887 - 11904: 0xB75F, - 24891 - 11904: 0xE1D2, - 24893 - 11904: 0x8D72, - 24894 - 11904: 0xB75A, - 24895 - 11904: 0xBA40, - 24896 - 11904: 0xDD71, - 24897 - 11904: 0xE1C4, - 24898 - 11904: 0xFC76, - 24900 - 11904: 0xB758, - 24901 - 11904: 0xDD69, - 24902 - 11904: 0xDD6D, - 24903 - 11904: 0xB9FE, - 24904 - 11904: 0xB74F, - 24905 - 11904: 0xDD66, - 24906 - 11904: 0xDD67, - 24907 - 11904: 0xBA41, - 24908 - 11904: 0xB757, - 24909 - 11904: 0xB759, - 24910 - 11904: 0xB756, - 24911 - 11904: 0xDD6F, - 24912 - 11904: 0x96A9, - 24914 - 11904: 0xE1C8, - 24915 - 11904: 0xE1C9, - 24916 - 11904: 0xE1CE, - 24917 - 11904: 0xBC7D, - 24918 - 11904: 0xE1D5, - 24920 - 11904: 0xBA47, - 24921 - 11904: 0xA06E, - 24922 - 11904: 0xBA46, - 24923 - 11904: 0xE1D0, - 24924 - 11904: 0xFCAA, - 24925 - 11904: 0xBC7C, - 24926 - 11904: 0xE1C5, - 24927 - 11904: 0xBA45, - 24928 - 11904: 0xFBCD, - 24929 - 11904: 0xE1D4, - 24930 - 11904: 0xBA43, - 24931 - 11904: 0xBA44, - 24932 - 11904: 0xFC74, - 24933 - 11904: 0xE1D1, - 24934 - 11904: 0xE5AA, - 24935 - 11904: 0xBC7A, - 24936 - 11904: 0xB46E, - 24938 - 11904: 0xE1D3, - 24939 - 11904: 0xBCA3, - 24940 - 11904: 0xE1CB, - 24942 - 11904: 0xBC7B, - 24943 - 11904: 0xA074, - 24944 - 11904: 0xBCA2, - 24945 - 11904: 0xE1C6, - 24946 - 11904: 0xE1CA, - 24947 - 11904: 0xE1C7, - 24948 - 11904: 0xE1CD, - 24949 - 11904: 0xBA48, - 24950 - 11904: 0xBC79, - 24951 - 11904: 0xBA42, - 24953 - 11904: 0xE57A, - 24954 - 11904: 0xE1CF, - 24956 - 11904: 0xBCA1, - 24957 - 11904: 0xA071, - 24958 - 11904: 0xBCA4, - 24960 - 11904: 0xE1CC, - 24961 - 11904: 0xFC79, - 24962 - 11904: 0xBC7E, - 24963 - 11904: 0xE579, - 24967 - 11904: 0xFC7C, - 24969 - 11904: 0xE57E, - 24970 - 11904: 0xBECE, - 24971 - 11904: 0xE578, - 24972 - 11904: 0xE9A3, - 24973 - 11904: 0xE5A9, - 24974 - 11904: 0xBCA8, - 24976 - 11904: 0xBCA6, - 24977 - 11904: 0xBECC, - 24978 - 11904: 0xE5A6, - 24979 - 11904: 0xE5A2, - 24980 - 11904: 0xBCAC, - 24981 - 11904: 0x9C50, - 24982 - 11904: 0xE978, - 24984 - 11904: 0x9379, - 24985 - 11904: 0x9378, - 24986 - 11904: 0xBCAA, - 24987 - 11904: 0xE5A1, - 24988 - 11904: 0xA0DD, - 24989 - 11904: 0xE976, - 24991 - 11904: 0xE5A5, - 24993 - 11904: 0xE5A8, - 24994 - 11904: 0xE57D, - 24996 - 11904: 0xBCAB, - 24999 - 11904: 0xBCA5, - 25000 - 11904: 0xE977, - 25001 - 11904: 0xBECD, - 25002 - 11904: 0xE5A7, - 25003 - 11904: 0xBCA7, - 25004 - 11904: 0xBCA9, - 25005 - 11904: 0xE5A4, - 25006 - 11904: 0xBCAD, - 25007 - 11904: 0xE5A3, - 25008 - 11904: 0xE57C, - 25009 - 11904: 0xE57B, - 25010 - 11904: 0xBECB, - 25011 - 11904: 0xE5AB, - 25012 - 11904: 0xE97A, - 25013 - 11904: 0xECE0, - 25014 - 11904: 0xBED0, - 25015 - 11904: 0x8D75, - 25016 - 11904: 0xE9A2, - 25017 - 11904: 0x8D76, - 25018 - 11904: 0xE97E, - 25020 - 11904: 0xECE1, - 25022 - 11904: 0xBED1, - 25023 - 11904: 0xE9A1, - 25024 - 11904: 0x9374, - 25025 - 11904: 0xE97C, - 25026 - 11904: 0xC0B4, - 25027 - 11904: 0xECDF, - 25029 - 11904: 0xE979, - 25030 - 11904: 0xE97B, - 25031 - 11904: 0xC0B5, - 25032 - 11904: 0xBED3, - 25033 - 11904: 0xC0B3, - 25034 - 11904: 0xBED2, - 25035 - 11904: 0xC0B7, - 25036 - 11904: 0xE97D, - 25037 - 11904: 0xBECF, - 25039 - 11904: 0x8D77, - 25040 - 11904: 0xFCA5, - 25043 - 11904: 0xFCA2, - 25046 - 11904: 0xEFCF, - 25048 - 11904: 0xEFC7, - 25050 - 11904: 0x90C3, - 25054 - 11904: 0xECE7, - 25055 - 11904: 0xEFC8, - 25056 - 11904: 0xECE3, - 25058 - 11904: 0xA079, - 25059 - 11904: 0xC256, - 25060 - 11904: 0xECE5, - 25061 - 11904: 0xECE4, - 25062 - 11904: 0xC0B6, - 25063 - 11904: 0xECE2, - 25064 - 11904: 0xECE6, - 25065 - 11904: 0xEFD0, - 25066 - 11904: 0xEFCC, - 25067 - 11904: 0xEFCE, - 25069 - 11904: 0xEFC9, - 25070 - 11904: 0xEFCA, - 25072 - 11904: 0xEFCD, - 25073 - 11904: 0xEFCB, - 25074 - 11904: 0xC367, - 25077 - 11904: 0xC36A, - 25078 - 11904: 0xC369, - 25079 - 11904: 0xC368, - 25080 - 11904: 0xC461, - 25081 - 11904: 0xF44A, - 25082 - 11904: 0xC462, - 25083 - 11904: 0xF241, - 25084 - 11904: 0xC4DF, - 25085 - 11904: 0xF5CC, - 25086 - 11904: 0xC4E0, - 25087 - 11904: 0xC574, - 25088 - 11904: 0xC5CA, - 25089 - 11904: 0xF7D9, - 25091 - 11904: 0xF7DA, - 25092 - 11904: 0xF7DB, - 25095 - 11904: 0xF9BA, - 25096 - 11904: 0xA4E0, - 25097 - 11904: 0xC97C, - 25098 - 11904: 0xA5B3, - 25100 - 11904: 0xA6A6, - 25101 - 11904: 0xA6A7, - 25102 - 11904: 0xA6A5, - 25104 - 11904: 0xA6A8, - 25105 - 11904: 0xA7DA, - 25106 - 11904: 0xA7D9, - 25108 - 11904: 0xCCB1, - 25109 - 11904: 0xA9CF, - 25110 - 11904: 0xA9CE, - 25113 - 11904: 0xD1AF, - 25114 - 11904: 0xB1AD, - 25115 - 11904: 0xB1AE, - 25119 - 11904: 0xB475, - 25120 - 11904: 0xDD72, - 25121 - 11904: 0xB760, - 25122 - 11904: 0xB761, - 25123 - 11904: 0xDD74, - 25124 - 11904: 0xDD76, - 25125 - 11904: 0xDD75, - 25127 - 11904: 0xE1D7, - 25129 - 11904: 0xE1D6, - 25130 - 11904: 0xBA49, - 25131 - 11904: 0xE1D8, - 25132 - 11904: 0x8D79, - 25133 - 11904: 0xE5AC, - 25134 - 11904: 0xBCAE, - 25136 - 11904: 0xBED4, - 25138 - 11904: 0xC0B8, - 25139 - 11904: 0xC257, - 25140 - 11904: 0xC0B9, - 25142 - 11904: 0xA4E1, - 25143 - 11904: 0x8BFC, - 25145 - 11904: 0xA076, - 25146 - 11904: 0xCAE6, - 25149 - 11904: 0xCCB2, - 25150 - 11904: 0xA9D1, - 25151 - 11904: 0xA9D0, - 25152 - 11904: 0xA9D2, - 25153 - 11904: 0xABF3, - 25154 - 11904: 0xCED2, - 25155 - 11904: 0xCED3, - 25158 - 11904: 0xD1B0, - 25159 - 11904: 0xAEB0, - 25160 - 11904: 0xB1AF, - 25161 - 11904: 0xB476, - 25162 - 11904: 0xD951, - 25163 - 11904: 0xA4E2, - 25164 - 11904: 0x8BCD, - 25165 - 11904: 0xA47E, - 25166 - 11904: 0xA4E3, - 25168 - 11904: 0xC97D, - 25169 - 11904: 0xA5B7, - 25170 - 11904: 0xA5B6, - 25171 - 11904: 0xA5B4, - 25172 - 11904: 0xA5B5, - 25176 - 11904: 0xA6AB, - 25177 - 11904: 0xC9E9, - 25178 - 11904: 0xC9EB, - 25179 - 11904: 0xA6AA, - 25180 - 11904: 0xC9E3, - 25182 - 11904: 0xC9E4, - 25184 - 11904: 0xC9EA, - 25185 - 11904: 0xC9E6, - 25186 - 11904: 0xC9E8, - 25187 - 11904: 0xA6A9, - 25188 - 11904: 0xC9E5, - 25189 - 11904: 0xC9EC, - 25190 - 11904: 0xC9E7, - 25192 - 11904: 0x9F5A, - 25197 - 11904: 0xA7E1, - 25198 - 11904: 0xA7EA, - 25199 - 11904: 0xA7E8, - 25200 - 11904: 0xCAF0, - 25201 - 11904: 0xCAED, - 25202 - 11904: 0xCAF5, - 25203 - 11904: 0xA7E6, - 25204 - 11904: 0xCAF6, - 25206 - 11904: 0xA7DF, - 25207 - 11904: 0xCAF3, - 25209 - 11904: 0xA7E5, - 25210 - 11904: 0xCAEF, - 25211 - 11904: 0xCAEE, - 25212 - 11904: 0xA7E3, - 25213 - 11904: 0xCAF4, - 25214 - 11904: 0xA7E4, - 25215 - 11904: 0xA9D3, - 25216 - 11904: 0xA7DE, - 25217 - 11904: 0xCAF1, - 25218 - 11904: 0x9FF4, - 25219 - 11904: 0xCAE7, - 25220 - 11904: 0xA7DB, - 25221 - 11904: 0x9FBA, - 25222 - 11904: 0xA7EE, - 25223 - 11904: 0xCAEC, - 25224 - 11904: 0xCAF2, - 25225 - 11904: 0xA7E0, - 25226 - 11904: 0xA7E2, - 25228 - 11904: 0xCAE8, - 25230 - 11904: 0xCAE9, - 25231 - 11904: 0xCAEA, - 25232 - 11904: 0x8D7A, - 25233 - 11904: 0xA7ED, - 25234 - 11904: 0xA7E7, - 25235 - 11904: 0xA7EC, - 25236 - 11904: 0xCAEB, - 25237 - 11904: 0xA7EB, - 25238 - 11904: 0xA7DD, - 25239 - 11904: 0xA7DC, - 25240 - 11904: 0xA7E9, - 25245 - 11904: 0x9E45, - 25252 - 11904: 0x93B0, - 25254 - 11904: 0xA075, - 25256 - 11904: 0xA9E1, - 25257 - 11904: 0xCCBE, - 25258 - 11904: 0xCCB7, - 25259 - 11904: 0xA9DC, - 25260 - 11904: 0xA9EF, - 25261 - 11904: 0xCCB3, - 25262 - 11904: 0xCCBA, - 25263 - 11904: 0xCCBC, - 25264 - 11904: 0xCCBF, - 25265 - 11904: 0xA9EA, - 25267 - 11904: 0xCCBB, - 25268 - 11904: 0xCCB4, - 25269 - 11904: 0xA9E8, - 25270 - 11904: 0xCCB8, - 25272 - 11904: 0xCCC0, - 25273 - 11904: 0xA9D9, - 25275 - 11904: 0xCCBD, - 25276 - 11904: 0xA9E3, - 25277 - 11904: 0xA9E2, - 25278 - 11904: 0xCCB6, - 25279 - 11904: 0xA9D7, - 25281 - 11904: 0x87DD, - 25282 - 11904: 0xA9D8, - 25283 - 11904: 0x9B46, - 25284 - 11904: 0xA9D6, - 25285 - 11904: 0xFCAE, - 25286 - 11904: 0xA9EE, - 25287 - 11904: 0xA9E6, - 25288 - 11904: 0xA9E0, - 25289 - 11904: 0xA9D4, - 25290 - 11904: 0xCCB9, - 25291 - 11904: 0xA9DF, - 25292 - 11904: 0xA9D5, - 25293 - 11904: 0xA9E7, - 25294 - 11904: 0xA9F0, - 25295 - 11904: 0xCED4, - 25296 - 11904: 0xA9E4, - 25297 - 11904: 0xCCB5, - 25298 - 11904: 0xA9DA, - 25299 - 11904: 0xA9DD, - 25300 - 11904: 0xA9DE, - 25301 - 11904: 0xFCB0, - 25302 - 11904: 0xA9EC, - 25303 - 11904: 0xA9ED, - 25304 - 11904: 0xA9EB, - 25305 - 11904: 0xA9E5, - 25306 - 11904: 0xA9E9, - 25307 - 11904: 0xA9DB, - 25308 - 11904: 0xABF4, - 25311 - 11904: 0xFA51, - 25317 - 11904: 0x8D7B, - 25323 - 11904: 0xCEDA, - 25324 - 11904: 0xAC41, - 25325 - 11904: 0xABF8, - 25326 - 11904: 0xABFA, - 25327 - 11904: 0xAC40, - 25328 - 11904: 0xCEE6, - 25329 - 11904: 0xABFD, - 25330 - 11904: 0xD1B1, - 25331 - 11904: 0xAEB1, - 25332 - 11904: 0xAC43, - 25333 - 11904: 0xCED7, - 25334 - 11904: 0xCEDF, - 25335 - 11904: 0xABFE, - 25336 - 11904: 0xCEDE, - 25337 - 11904: 0xCEDB, - 25338 - 11904: 0xCEE3, - 25339 - 11904: 0xCEE5, - 25340 - 11904: 0xABF7, - 25341 - 11904: 0xABFB, - 25342 - 11904: 0xAC42, - 25343 - 11904: 0xAEB3, - 25344 - 11904: 0xCEE0, - 25345 - 11904: 0xABF9, - 25346 - 11904: 0xAC45, - 25347 - 11904: 0xCED9, - 25351 - 11904: 0xABFC, - 25352 - 11904: 0xAEB2, - 25353 - 11904: 0xABF6, - 25355 - 11904: 0xCED6, - 25356 - 11904: 0xCEDD, - 25357 - 11904: 0xCED5, - 25358 - 11904: 0xCED8, - 25359 - 11904: 0xCEDC, - 25360 - 11904: 0xD1B2, - 25361 - 11904: 0xAC44, - 25363 - 11904: 0xCEE1, - 25364 - 11904: 0xCEE2, - 25365 - 11904: 0xCEE4, - 25366 - 11904: 0xABF5, - 25368 - 11904: 0x8D7C, - 25384 - 11904: 0xAEC1, - 25385 - 11904: 0xD1BE, - 25386 - 11904: 0xAEBF, - 25387 - 11904: 0xAEC0, - 25388 - 11904: 0xD1B4, - 25389 - 11904: 0xD1C4, - 25390 - 11904: 0x9ED6, - 25391 - 11904: 0xAEB6, - 25393 - 11904: 0x93AC, - 25394 - 11904: 0xD566, - 25395 - 11904: 0xD1C6, - 25396 - 11904: 0xD1C0, - 25397 - 11904: 0x9F5B, - 25398 - 11904: 0xD1B7, - 25399 - 11904: 0x93A9, - 25400 - 11904: 0xD1C9, - 25401 - 11904: 0xD1BA, - 25402 - 11904: 0xAEBC, - 25403 - 11904: 0xD57D, - 25404 - 11904: 0xD1BD, - 25405 - 11904: 0xAEBE, - 25406 - 11904: 0xAEB5, - 25408 - 11904: 0xD1CB, - 25409 - 11904: 0xD1BF, - 25410 - 11904: 0xAEB8, - 25411 - 11904: 0xD1B8, - 25412 - 11904: 0xD1B5, - 25413 - 11904: 0xD1B6, - 25414 - 11904: 0xAEB9, - 25415 - 11904: 0xD1C5, - 25416 - 11904: 0xD1CC, - 25417 - 11904: 0xAEBB, - 25418 - 11904: 0xD1BC, - 25419 - 11904: 0xD1BB, - 25420 - 11904: 0xAEC3, - 25421 - 11904: 0xAEC2, - 25422 - 11904: 0xAEB4, - 25423 - 11904: 0xAEBA, - 25424 - 11904: 0xAEBD, - 25425 - 11904: 0xD1C8, - 25428 - 11904: 0xD1C2, - 25429 - 11904: 0xAEB7, - 25430 - 11904: 0xD1B3, - 25431 - 11904: 0xD1CA, - 25432 - 11904: 0xD1C1, - 25433 - 11904: 0xD1C3, - 25434 - 11904: 0xD1C7, - 25444 - 11904: 0xA07C, - 25445 - 11904: 0xD567, - 25447 - 11904: 0xB1B7, - 25448 - 11904: 0xB1CB, - 25449 - 11904: 0xB1CA, - 25451 - 11904: 0xB1BF, - 25452 - 11904: 0xFCB2, - 25453 - 11904: 0xD579, - 25454 - 11904: 0xD575, - 25455 - 11904: 0xD572, - 25456 - 11904: 0xD5A6, - 25457 - 11904: 0xB1BA, - 25458 - 11904: 0xB1B2, - 25461 - 11904: 0xD577, - 25462 - 11904: 0xB4A8, - 25463 - 11904: 0xB1B6, - 25464 - 11904: 0xD5A1, - 25465 - 11904: 0x8AC1, - 25466 - 11904: 0xB1CC, - 25467 - 11904: 0xB1C9, - 25468 - 11904: 0xD57B, - 25469 - 11904: 0xD56A, - 25471 - 11904: 0x9FB4, - 25472 - 11904: 0xB1C8, - 25473 - 11904: 0xD5A3, - 25474 - 11904: 0xD569, - 25475 - 11904: 0xB1BD, - 25476 - 11904: 0xB1C1, - 25477 - 11904: 0xD5A2, - 25479 - 11904: 0xD573, - 25480 - 11904: 0xB1C2, - 25481 - 11904: 0xB1BC, - 25482 - 11904: 0xD568, - 25483 - 11904: 0xFCAC, - 25484 - 11904: 0xB478, - 25485 - 11904: 0xD5A5, - 25486 - 11904: 0xD571, - 25487 - 11904: 0xB1C7, - 25488 - 11904: 0xD574, - 25489 - 11904: 0xD5A4, - 25490 - 11904: 0xB1C6, - 25492 - 11904: 0xD952, - 25494 - 11904: 0xB1B3, - 25495 - 11904: 0xD56F, - 25496 - 11904: 0xB1B8, - 25497 - 11904: 0xB1C3, - 25499 - 11904: 0xB1BE, - 25500 - 11904: 0xD578, - 25501 - 11904: 0xD56E, - 25502 - 11904: 0xD56C, - 25503 - 11904: 0xD57E, - 25504 - 11904: 0xB1B0, - 25505 - 11904: 0xB1C4, - 25506 - 11904: 0xB1B4, - 25507 - 11904: 0xB477, - 25508 - 11904: 0xD57C, - 25509 - 11904: 0xB1B5, - 25511 - 11904: 0xB1B1, - 25512 - 11904: 0xB1C0, - 25513 - 11904: 0xB1BB, - 25514 - 11904: 0xB1B9, - 25515 - 11904: 0xD570, - 25516 - 11904: 0xB1C5, - 25517 - 11904: 0xD56D, - 25518 - 11904: 0xD57A, - 25519 - 11904: 0xD576, - 25520 - 11904: 0xD954, - 25521 - 11904: 0xD953, - 25529 - 11904: 0x9E4C, - 25533 - 11904: 0xD56B, - 25534 - 11904: 0xD964, - 25536 - 11904: 0xB47A, - 25537 - 11904: 0x8FC5, - 25538 - 11904: 0xD96A, - 25539 - 11904: 0xD959, - 25540 - 11904: 0xD967, - 25541 - 11904: 0xDD77, - 25542 - 11904: 0xB47D, - 25543 - 11904: 0xD96B, - 25544 - 11904: 0xD96E, - 25545 - 11904: 0xB47C, - 25546 - 11904: 0xD95C, - 25547 - 11904: 0xD96D, - 25548 - 11904: 0xD96C, - 25549 - 11904: 0xB47E, - 25550 - 11904: 0xD955, - 25551 - 11904: 0xB479, - 25552 - 11904: 0xB4A3, - 25553 - 11904: 0x93AD, - 25554 - 11904: 0xB4A1, - 25555 - 11904: 0xD969, - 25557 - 11904: 0xD95F, - 25558 - 11904: 0xB4A5, - 25559 - 11904: 0xD970, - 25560 - 11904: 0xD968, - 25561 - 11904: 0xD971, - 25562 - 11904: 0xB4AD, - 25563 - 11904: 0xB4AB, - 25564 - 11904: 0xD966, - 25565 - 11904: 0xD965, - 25566 - 11904: 0x9DC3, - 25567 - 11904: 0xD963, - 25568 - 11904: 0xD95D, - 25569 - 11904: 0xB4A4, - 25570 - 11904: 0x8DA2, - 25571 - 11904: 0xB4A2, - 25572 - 11904: 0xD1B9, - 25573 - 11904: 0xD956, - 25574 - 11904: 0x9D4A, - 25575 - 11904: 0xDDB7, - 25576 - 11904: 0xD957, - 25577 - 11904: 0xB47B, - 25578 - 11904: 0xB4AA, - 25579 - 11904: 0xDD79, - 25581 - 11904: 0xB4A6, - 25582 - 11904: 0xB4A7, - 25583 - 11904: 0xD958, - 25584 - 11904: 0xD96F, - 25585 - 11904: 0xDD78, - 25586 - 11904: 0xD960, - 25587 - 11904: 0xD95B, - 25588 - 11904: 0xB4A9, - 25589 - 11904: 0xD961, - 25590 - 11904: 0xD95E, - 25592 - 11904: 0xFCB6, - 25593 - 11904: 0xB4AE, - 25595 - 11904: 0x8DA3, - 25596 - 11904: 0x9E4B, - 25598 - 11904: 0x9E4D, - 25606 - 11904: 0xB770, - 25607 - 11904: 0x8DA4, - 25609 - 11904: 0xDD7C, - 25610 - 11904: 0xDDB1, - 25611 - 11904: 0xDDB6, - 25612 - 11904: 0xDDAA, - 25613 - 11904: 0xB76C, - 25614 - 11904: 0xDDBB, - 25615 - 11904: 0xB769, - 25616 - 11904: 0xDD7A, - 25618 - 11904: 0xDD7B, - 25619 - 11904: 0xB762, - 25620 - 11904: 0xB76B, - 25621 - 11904: 0xDDA4, - 25622 - 11904: 0xB76E, - 25623 - 11904: 0xB76F, - 25624 - 11904: 0xDDA5, - 25626 - 11904: 0xDDB2, - 25627 - 11904: 0xDDB8, - 25628 - 11904: 0xB76A, - 25630 - 11904: 0xB764, - 25631 - 11904: 0xDDA3, - 25632 - 11904: 0xDD7D, - 25633 - 11904: 0xDDBA, - 25634 - 11904: 0xDDA8, - 25635 - 11904: 0xDDA9, - 25636 - 11904: 0xDD7E, - 25637 - 11904: 0xDDB4, - 25638 - 11904: 0xDDAB, - 25639 - 11904: 0xDDB5, - 25640 - 11904: 0xDDAD, - 25642 - 11904: 0xB765, - 25643 - 11904: 0xE1D9, - 25644 - 11904: 0xB768, - 25645 - 11904: 0xB766, - 25646 - 11904: 0xDDB9, - 25647 - 11904: 0xDDB0, - 25648 - 11904: 0xDDAC, - 25650 - 11904: 0x8AFD, - 25651 - 11904: 0xDDA1, - 25652 - 11904: 0xBA53, - 25653 - 11904: 0xDDAF, - 25654 - 11904: 0xB76D, - 25655 - 11904: 0xDDA7, - 25656 - 11904: 0xFCB5, - 25657 - 11904: 0xDDA6, - 25658 - 11904: 0xFCC3, - 25659 - 11904: 0x93B2, - 25661 - 11904: 0xB767, - 25662 - 11904: 0xB763, - 25663 - 11904: 0xE1EE, - 25664 - 11904: 0xDDB3, - 25665 - 11904: 0xDDAE, - 25667 - 11904: 0xDDA2, - 25675 - 11904: 0xE1E9, - 25677 - 11904: 0xE1DA, - 25678 - 11904: 0xE1E5, - 25680 - 11904: 0xE1EC, - 25681 - 11904: 0xBA51, - 25682 - 11904: 0xB4AC, - 25683 - 11904: 0xE1EA, - 25684 - 11904: 0xBA4C, - 25688 - 11904: 0xBA4B, - 25689 - 11904: 0xE1F1, - 25690 - 11904: 0x8DA5, - 25691 - 11904: 0xE1DB, - 25692 - 11904: 0xE1E8, - 25693 - 11904: 0xE1DC, - 25694 - 11904: 0xE1E7, - 25695 - 11904: 0xBA4F, - 25696 - 11904: 0xE1EB, - 25697 - 11904: 0xD962, - 25701 - 11904: 0xE1F2, - 25702 - 11904: 0xE1E3, - 25703 - 11904: 0xBA52, - 25704 - 11904: 0xE5BA, - 25705 - 11904: 0xBCAF, - 25707 - 11904: 0xE1F0, - 25708 - 11904: 0xE1EF, - 25709 - 11904: 0xBA54, - 25710 - 11904: 0xE5AD, - 25711 - 11904: 0xBCB0, - 25712 - 11904: 0xE5AE, - 25713 - 11904: 0x93A1, - 25714 - 11904: 0xE1DF, - 25715 - 11904: 0xE1E0, - 25716 - 11904: 0xE1DD, - 25717 - 11904: 0xE1E2, - 25718 - 11904: 0xE1DE, - 25719 - 11904: 0xE1F3, - 25720 - 11904: 0xBA4E, - 25721 - 11904: 0xBCB1, - 25722 - 11904: 0xBA50, - 25723 - 11904: 0xBA55, - 25724 - 11904: 0x8AC6, - 25725 - 11904: 0xE1E1, - 25727 - 11904: 0xE1ED, - 25730 - 11904: 0xE1E6, - 25733 - 11904: 0xE5B1, - 25735 - 11904: 0xBA4A, - 25736 - 11904: 0xBCB4, - 25737 - 11904: 0xE9AA, - 25738 - 11904: 0xE5B6, - 25739 - 11904: 0xE5B5, - 25740 - 11904: 0xE5B7, - 25741 - 11904: 0x8A5B, - 25743 - 11904: 0xE5B4, - 25744 - 11904: 0xFCB9, - 25745 - 11904: 0x894D, - 25746 - 11904: 0xBCBB, - 25747 - 11904: 0xBCB8, - 25749 - 11904: 0xBCB9, - 25750 - 11904: 0xE5AF, - 25751 - 11904: 0xE5B2, - 25752 - 11904: 0xE5BC, - 25753 - 11904: 0xBCC1, - 25754 - 11904: 0xBCBF, - 25756 - 11904: 0xE5B3, - 25757 - 11904: 0xD95A, - 25758 - 11904: 0xBCB2, - 25759 - 11904: 0xE5B9, - 25760 - 11904: 0xE5B0, - 25762 - 11904: 0xBCC2, - 25763 - 11904: 0xE5B8, - 25764 - 11904: 0xBA4D, - 25765 - 11904: 0xBCB7, - 25766 - 11904: 0xE1E4, - 25769 - 11904: 0xBCBA, - 25771 - 11904: 0xBCBE, - 25772 - 11904: 0xBCC0, - 25773 - 11904: 0xBCBD, - 25774 - 11904: 0xBCBC, - 25775 - 11904: 0xFED4, - 25776 - 11904: 0xBCB6, - 25777 - 11904: 0xE5BB, - 25778 - 11904: 0xBCB3, - 25779 - 11904: 0xBCC3, - 25780 - 11904: 0x8A78, - 25782 - 11904: 0x93AB, - 25787 - 11904: 0xBED8, - 25788 - 11904: 0xBED9, - 25789 - 11904: 0xE9A9, - 25790 - 11904: 0xBEE2, - 25791 - 11904: 0xBEDF, - 25792 - 11904: 0x8DA7, - 25793 - 11904: 0xBED6, - 25794 - 11904: 0xBEDD, - 25795 - 11904: 0xE9AB, - 25796 - 11904: 0xBEDB, - 25797 - 11904: 0xBED5, - 25799 - 11904: 0xBEDC, - 25801 - 11904: 0xE9A8, - 25802 - 11904: 0xC0BB, - 25803 - 11904: 0xBED7, - 25805 - 11904: 0xBEDE, - 25806 - 11904: 0xC0BA, - 25807 - 11904: 0xE9A7, - 25808 - 11904: 0xE9A6, - 25810 - 11904: 0xBEE0, - 25811 - 11904: 0x9F45, - 25812 - 11904: 0xBEE1, - 25814 - 11904: 0xE9A5, - 25815 - 11904: 0xE9A4, - 25816 - 11904: 0xC0BC, - 25817 - 11904: 0xE9AE, - 25818 - 11904: 0xBEDA, - 25819 - 11904: 0xE9AC, - 25821 - 11904: 0x8A56, - 25824 - 11904: 0xC0BD, - 25825 - 11904: 0xFCBF, - 25826 - 11904: 0xC0C2, - 25827 - 11904: 0xECEA, - 25828 - 11904: 0xECEC, - 25829 - 11904: 0xFCC0, - 25830 - 11904: 0xC0BF, - 25831 - 11904: 0x8EE6, - 25832 - 11904: 0xECED, - 25833 - 11904: 0xECE9, - 25834 - 11904: 0x8AA4, - 25835 - 11904: 0xECEB, - 25836 - 11904: 0xC0C0, - 25837 - 11904: 0xC0C3, - 25839 - 11904: 0xECE8, - 25840 - 11904: 0xC0BE, - 25841 - 11904: 0xC0C1, - 25842 - 11904: 0xC259, - 25843 - 11904: 0xE9AD, - 25844 - 11904: 0xC258, - 25847 - 11904: 0xC25E, - 25848 - 11904: 0xEFD4, - 25850 - 11904: 0xC25C, - 25851 - 11904: 0xC25D, - 25852 - 11904: 0xEFD7, - 25853 - 11904: 0xEFD3, - 25854 - 11904: 0xC25A, - 25855 - 11904: 0xEFD1, - 25856 - 11904: 0xC36B, - 25857 - 11904: 0xEFD5, - 25859 - 11904: 0xEFD6, - 25860 - 11904: 0xEFD2, - 25862 - 11904: 0xC25B, - 25863 - 11904: 0xF242, - 25865 - 11904: 0xF245, - 25866 - 11904: 0x8943, - 25868 - 11904: 0xF246, - 25869 - 11904: 0xF244, - 25870 - 11904: 0xF247, - 25871 - 11904: 0xC36C, - 25872 - 11904: 0xF243, - 25873 - 11904: 0x93F3, - 25875 - 11904: 0xF44E, - 25876 - 11904: 0xC464, - 25877 - 11904: 0xF44D, - 25878 - 11904: 0xF44C, - 25879 - 11904: 0xF44B, - 25880 - 11904: 0xC463, - 25881 - 11904: 0xC465, - 25883 - 11904: 0xF5CD, - 25884 - 11904: 0xC4E2, - 25885 - 11904: 0xC4E1, - 25886 - 11904: 0xFCAB, - 25887 - 11904: 0x9EA2, - 25888 - 11904: 0xF6E1, - 25889 - 11904: 0xF6E0, - 25890 - 11904: 0xF6E3, - 25891 - 11904: 0xC5CB, - 25892 - 11904: 0xC575, - 25893 - 11904: 0xF7DD, - 25894 - 11904: 0xF6E2, - 25897 - 11904: 0xF7DC, - 25898 - 11904: 0xC5CD, - 25899 - 11904: 0xC5CC, - 25900 - 11904: 0xC5F3, - 25901 - 11904: 0xF8A9, - 25902 - 11904: 0xF8EF, - 25903 - 11904: 0xA4E4, - 25904 - 11904: 0x9DC7, - 25906 - 11904: 0xD972, - 25907 - 11904: 0xE9AF, - 25908 - 11904: 0xC6D2, - 25909 - 11904: 0x8BCE, - 25910 - 11904: 0xA6AC, - 25911 - 11904: 0xCAF7, - 25912 - 11904: 0xA7F1, - 25913 - 11904: 0xA7EF, - 25915 - 11904: 0xA7F0, - 25917 - 11904: 0xCCC1, - 25918 - 11904: 0xA9F1, - 25919 - 11904: 0xAC46, - 25921 - 11904: 0xCEE7, - 25923 - 11904: 0xCEE8, - 25925 - 11904: 0xAC47, - 25926 - 11904: 0xD1CE, - 25928 - 11904: 0xAEC4, - 25929 - 11904: 0xAEC5, - 25930 - 11904: 0xD1CD, - 25933 - 11904: 0xFCC5, - 25935 - 11904: 0xB1D3, - 25937 - 11904: 0xB1CF, - 25939 - 11904: 0xD5A7, - 25940 - 11904: 0xB1D6, - 25941 - 11904: 0xB1D5, - 25942 - 11904: 0xB1CE, - 25943 - 11904: 0xB1D1, - 25944 - 11904: 0xB1D4, - 25945 - 11904: 0xB1D0, - 25948 - 11904: 0xD976, - 25949 - 11904: 0xB1CD, - 25950 - 11904: 0xB4AF, - 25951 - 11904: 0xFCCB, - 25954 - 11904: 0xB4B1, - 25955 - 11904: 0xB4B2, - 25956 - 11904: 0xD975, - 25957 - 11904: 0xD978, - 25958 - 11904: 0xB4B0, - 25959 - 11904: 0xD973, - 25960 - 11904: 0xD977, - 25962 - 11904: 0xD974, - 25963 - 11904: 0x93B3, - 25964 - 11904: 0xB771, - 25965 - 11904: 0xFCCA, - 25967 - 11904: 0xDDBC, - 25970 - 11904: 0xBA56, - 25971 - 11904: 0xE1F4, - 25972 - 11904: 0xBEE3, - 25973 - 11904: 0xBCC4, - 25974 - 11904: 0xE5BD, - 25975 - 11904: 0xBCC5, - 25976 - 11904: 0xBCC6, - 25977 - 11904: 0xE5BF, - 25978 - 11904: 0xE5BE, - 25979 - 11904: 0xE5C0, - 25980 - 11904: 0xE9B1, - 25983 - 11904: 0xE9B0, - 25984 - 11904: 0xECEF, - 25985 - 11904: 0xECEE, - 25986 - 11904: 0xC0C4, - 25987 - 11904: 0xC0C5, - 25988 - 11904: 0xF248, - 25989 - 11904: 0xFCC9, - 25990 - 11904: 0x8DAC, - 25991 - 11904: 0xA4E5, - 25992 - 11904: 0xFBC6, - 25993 - 11904: 0x8967, - 25995 - 11904: 0x8C7E, - 25996 - 11904: 0xD979, - 26000 - 11904: 0xB4B4, - 26001 - 11904: 0xB4B3, - 26002 - 11904: 0xDDBD, - 26004 - 11904: 0xEFD8, - 26005 - 11904: 0xC4E3, - 26006 - 11904: 0xF7DE, - 26007 - 11904: 0xA4E6, - 26009 - 11904: 0xAEC6, - 26011 - 11904: 0xB1D8, - 26012 - 11904: 0xB1D7, - 26013 - 11904: 0xD97A, - 26014 - 11904: 0xD97B, - 26015 - 11904: 0xB772, - 26016 - 11904: 0xE1F5, - 26017 - 11904: 0xBA57, - 26018 - 11904: 0xE9B2, - 26020 - 11904: 0xA4E7, - 26021 - 11904: 0xA5B8, - 26023 - 11904: 0xA9F2, - 26024 - 11904: 0xCCC2, - 26026 - 11904: 0xCEE9, - 26027 - 11904: 0xAC48, - 26028 - 11904: 0xB1D9, - 26030 - 11904: 0xD97C, - 26031 - 11904: 0xB4B5, - 26032 - 11904: 0xB773, - 26034 - 11904: 0xE5C1, - 26035 - 11904: 0xE5C2, - 26037 - 11904: 0xFCCD, - 26038 - 11904: 0xECF0, - 26039 - 11904: 0xC25F, - 26040 - 11904: 0xF8F0, - 26041 - 11904: 0xA4E8, - 26043 - 11904: 0xCCC3, - 26044 - 11904: 0xA9F3, - 26045 - 11904: 0xAC49, - 26046 - 11904: 0x9CF3, - 26047 - 11904: 0xCEEA, - 26049 - 11904: 0xAEC7, - 26050 - 11904: 0xD1D2, - 26051 - 11904: 0xD1D0, - 26052 - 11904: 0xD1D1, - 26053 - 11904: 0xAEC8, - 26054 - 11904: 0xD1CF, - 26059 - 11904: 0xB1DB, - 26060 - 11904: 0xB1DC, - 26061 - 11904: 0xD5A8, - 26062 - 11904: 0xB1DD, - 26063 - 11904: 0xB1DA, - 26064 - 11904: 0xD97D, - 26065 - 11904: 0xFCD0, - 26066 - 11904: 0xD97E, - 26067 - 11904: 0xDDBE, - 26068 - 11904: 0x95BB, - 26070 - 11904: 0xBA59, - 26071 - 11904: 0xBA58, - 26074 - 11904: 0xECF1, - 26075 - 11904: 0xEFD9, - 26077 - 11904: 0xF24A, - 26078 - 11904: 0xF249, - 26079 - 11904: 0xF44F, - 26080 - 11904: 0xFCD3, - 26081 - 11904: 0xC95E, - 26082 - 11904: 0xAC4A, - 26083 - 11904: 0xFCD4, - 26085 - 11904: 0xA4E9, - 26086 - 11904: 0xA5B9, - 26088 - 11904: 0xA6AE, - 26089 - 11904: 0xA6AD, - 26092 - 11904: 0xA6AF, - 26093 - 11904: 0xA6B0, - 26094 - 11904: 0xC9EE, - 26095 - 11904: 0xC9ED, - 26096 - 11904: 0xCAF8, - 26097 - 11904: 0xA7F2, - 26098 - 11904: 0xCAFB, - 26099 - 11904: 0xCAFA, - 26100 - 11904: 0xCAF9, - 26101 - 11904: 0xCAFC, - 26106 - 11904: 0xA9F4, - 26107 - 11904: 0xCCC9, - 26108 - 11904: 0xCCC5, - 26109 - 11904: 0xCCCE, - 26111 - 11904: 0x8DAE, - 26112 - 11904: 0xA9FB, - 26114 - 11904: 0xA9F9, - 26115 - 11904: 0xCCCA, - 26116 - 11904: 0xCCC6, - 26117 - 11904: 0xCCCD, - 26118 - 11904: 0xA9F8, - 26119 - 11904: 0xAA40, - 26120 - 11904: 0xCCC8, - 26121 - 11904: 0xCCC4, - 26122 - 11904: 0xA9FE, - 26123 - 11904: 0xCCCB, - 26124 - 11904: 0xA9F7, - 26125 - 11904: 0xCCCC, - 26126 - 11904: 0xA9FA, - 26127 - 11904: 0xA9FC, - 26128 - 11904: 0xCCD0, - 26129 - 11904: 0xCCCF, - 26130 - 11904: 0xCCC7, - 26131 - 11904: 0xA9F6, - 26132 - 11904: 0xA9F5, - 26133 - 11904: 0xA9FD, - 26136 - 11904: 0xFCD7, - 26140 - 11904: 0xCEEF, - 26141 - 11904: 0xCEF5, - 26142 - 11904: 0x93DB, - 26143 - 11904: 0xAC50, - 26144 - 11904: 0xAC4D, - 26145 - 11904: 0xCEEC, - 26146 - 11904: 0xCEF1, - 26147 - 11904: 0xFE63, - 26148 - 11904: 0xAC53, - 26149 - 11904: 0xAC4B, - 26150 - 11904: 0xCEF0, - 26151 - 11904: 0xAC4E, - 26152 - 11904: 0xAC51, - 26155 - 11904: 0xCEF3, - 26157 - 11904: 0xAC4C, - 26158 - 11904: 0xCEF8, - 26159 - 11904: 0xAC4F, - 26160 - 11904: 0x93D5, - 26161 - 11904: 0xAC52, - 26162 - 11904: 0xCEED, - 26163 - 11904: 0xCEF2, - 26164 - 11904: 0xCEF6, - 26165 - 11904: 0xCEEE, - 26166 - 11904: 0xCEEB, - 26169 - 11904: 0xCEF7, - 26170 - 11904: 0xCEF4, - 26177 - 11904: 0xAED0, - 26178 - 11904: 0xAEC9, - 26179 - 11904: 0xAECC, - 26180 - 11904: 0xFCDA, - 26181 - 11904: 0xAECF, - 26183 - 11904: 0xD1D5, - 26184 - 11904: 0x9B71, - 26185 - 11904: 0xAECA, - 26186 - 11904: 0xD1D3, - 26187 - 11904: 0xFCDD, - 26188 - 11904: 0xAECE, - 26189 - 11904: 0x8764, - 26191 - 11904: 0xAECB, - 26193 - 11904: 0xD1D6, - 26194 - 11904: 0xAECD, - 26195 - 11904: 0x8DAF, - 26199 - 11904: 0xFAF2, - 26201 - 11904: 0xD5AC, - 26202 - 11904: 0xB1DF, - 26203 - 11904: 0xD5AB, - 26204 - 11904: 0xD5AD, - 26205 - 11904: 0xB1DE, - 26206 - 11904: 0xB1E3, - 26207 - 11904: 0xD1D4, - 26208 - 11904: 0x87B5, - 26209 - 11904: 0xD5AA, - 26210 - 11904: 0xD5AE, - 26211 - 11904: 0x93D8, - 26212 - 11904: 0xB1E0, - 26213 - 11904: 0xD5A9, - 26214 - 11904: 0xB1E2, - 26215 - 11904: 0xFCDF, - 26216 - 11904: 0xB1E1, - 26218 - 11904: 0xD9A7, - 26219 - 11904: 0x93D3, - 26220 - 11904: 0xD9A2, - 26222 - 11904: 0xB4B6, - 26223 - 11904: 0xB4BA, - 26224 - 11904: 0xB4B7, - 26225 - 11904: 0xD9A5, - 26226 - 11904: 0xD9A8, - 26227 - 11904: 0xFCE1, - 26228 - 11904: 0xFCE2, - 26230 - 11904: 0xB4B9, - 26231 - 11904: 0xB4BE, - 26232 - 11904: 0xDDC7, - 26233 - 11904: 0xD9A6, - 26234 - 11904: 0xB4BC, - 26235 - 11904: 0xD9A3, - 26236 - 11904: 0xD9A1, - 26237 - 11904: 0x8E76, - 26238 - 11904: 0xB4BD, - 26240 - 11904: 0xD9A4, - 26244 - 11904: 0xB779, - 26245 - 11904: 0xFC62, - 26246 - 11904: 0xDDBF, - 26247 - 11904: 0xB776, - 26248 - 11904: 0xB777, - 26249 - 11904: 0xB775, - 26250 - 11904: 0xDDC4, - 26251 - 11904: 0xDDC3, - 26252 - 11904: 0xDDC0, - 26253 - 11904: 0xB77B, - 26254 - 11904: 0x93D1, - 26256 - 11904: 0xDDC2, - 26257 - 11904: 0xB4BB, - 26258 - 11904: 0x8DB1, - 26260 - 11904: 0xDDC6, - 26261 - 11904: 0xDDC1, - 26262 - 11904: 0xB778, - 26263 - 11904: 0xB774, - 26264 - 11904: 0xB77A, - 26265 - 11904: 0xDDC5, - 26266 - 11904: 0x9859, - 26269 - 11904: 0xBA5C, - 26271 - 11904: 0xE1F8, - 26272 - 11904: 0xE1F7, - 26273 - 11904: 0xE1F6, - 26274 - 11904: 0xBA5A, - 26276 - 11904: 0xFB52, - 26280 - 11904: 0xBA5B, - 26281 - 11904: 0xE5C5, - 26282 - 11904: 0xE5C8, - 26283 - 11904: 0xBCC8, - 26285 - 11904: 0xFB53, - 26286 - 11904: 0xBCC7, - 26287 - 11904: 0xE5C9, - 26288 - 11904: 0xE5C4, - 26289 - 11904: 0xBCCA, - 26290 - 11904: 0xE5C6, - 26291 - 11904: 0xFB4D, - 26292 - 11904: 0xBCC9, - 26293 - 11904: 0xE5C3, - 26294 - 11904: 0x9CBF, - 26295 - 11904: 0xE5C7, - 26296 - 11904: 0xBEE9, - 26297 - 11904: 0xBEE6, - 26298 - 11904: 0xE9BB, - 26299 - 11904: 0xE9BA, - 26301 - 11904: 0xE9B9, - 26302 - 11904: 0xE9B4, - 26303 - 11904: 0x9B72, - 26304 - 11904: 0xE9B5, - 26308 - 11904: 0xBEE7, - 26310 - 11904: 0xBEE4, - 26311 - 11904: 0xBEE8, - 26312 - 11904: 0xE9B3, - 26313 - 11904: 0xBEE5, - 26314 - 11904: 0xE9B6, - 26315 - 11904: 0xE9B7, - 26316 - 11904: 0xE9BC, - 26317 - 11904: 0xFB50, - 26318 - 11904: 0x93BE, - 26319 - 11904: 0xE9B8, - 26322 - 11904: 0xECF2, - 26326 - 11904: 0xC0C7, - 26328 - 11904: 0xEFDC, - 26329 - 11904: 0xC0C6, - 26330 - 11904: 0xEFDA, - 26331 - 11904: 0xEFDB, - 26332 - 11904: 0xC260, - 26333 - 11904: 0xC36E, - 26334 - 11904: 0xF24B, - 26336 - 11904: 0xC36D, - 26339 - 11904: 0xF451, - 26340 - 11904: 0xF452, - 26342 - 11904: 0xC466, - 26343 - 11904: 0x8CDB, - 26344 - 11904: 0xF450, - 26345 - 11904: 0xC4E4, - 26347 - 11904: 0xF7DF, - 26348 - 11904: 0xC5CE, - 26349 - 11904: 0xF8AA, - 26350 - 11904: 0xF8AB, - 26352 - 11904: 0xA4EA, - 26353 - 11904: 0x9DF1, - 26354 - 11904: 0xA6B1, - 26355 - 11904: 0xA6B2, - 26356 - 11904: 0xA7F3, - 26358 - 11904: 0xCCD1, - 26359 - 11904: 0xAC54, - 26360 - 11904: 0xAED1, - 26361 - 11904: 0xB1E4, - 26364 - 11904: 0xB0D2, - 26366 - 11904: 0xB4BF, - 26367 - 11904: 0xB4C0, - 26368 - 11904: 0xB3CC, - 26369 - 11904: 0xD9A9, - 26370 - 11904: 0xFCEB, - 26371 - 11904: 0xB77C, - 26372 - 11904: 0xE1FA, - 26373 - 11904: 0xE1F9, - 26376 - 11904: 0xA4EB, - 26377 - 11904: 0xA6B3, - 26378 - 11904: 0xCCD2, - 26379 - 11904: 0xAA42, - 26380 - 11904: 0xA0BB, - 26381 - 11904: 0xAA41, - 26382 - 11904: 0x9B7E, - 26383 - 11904: 0xCEF9, - 26384 - 11904: 0xCEFA, - 26386 - 11904: 0xD1D7, - 26387 - 11904: 0xD1D8, - 26388 - 11904: 0xAED2, - 26389 - 11904: 0xAED3, - 26390 - 11904: 0x8DB3, - 26391 - 11904: 0xAED4, - 26392 - 11904: 0xD5AF, - 26393 - 11904: 0x8C52, - 26395 - 11904: 0xB1E6, - 26397 - 11904: 0xB4C2, - 26398 - 11904: 0x9AE8, - 26399 - 11904: 0xB4C1, - 26400 - 11904: 0xDDC8, - 26401 - 11904: 0xDF7A, - 26402 - 11904: 0xE1FB, - 26403 - 11904: 0xE9BD, - 26405 - 11904: 0x8EDC, - 26406 - 11904: 0xC261, - 26407 - 11904: 0xC467, - 26408 - 11904: 0xA4EC, - 26410 - 11904: 0xA5BC, - 26411 - 11904: 0xA5BD, - 26412 - 11904: 0xA5BB, - 26413 - 11904: 0xA5BE, - 26414 - 11904: 0xA5BA, - 26417 - 11904: 0xA6B6, - 26419 - 11904: 0xC9F6, - 26420 - 11904: 0xA6B5, - 26421 - 11904: 0xA6B7, - 26422 - 11904: 0x9CF9, - 26424 - 11904: 0xC9F1, - 26425 - 11904: 0xC9F0, - 26426 - 11904: 0xC9F3, - 26427 - 11904: 0xC9F2, - 26428 - 11904: 0xC9F5, - 26429 - 11904: 0xA6B4, - 26430 - 11904: 0xC9EF, - 26431 - 11904: 0xC9F4, - 26436 - 11904: 0xFA50, - 26437 - 11904: 0xCAFD, - 26438 - 11904: 0xA7FD, - 26439 - 11904: 0xCAFE, - 26440 - 11904: 0xCB43, - 26441 - 11904: 0xA7FC, - 26443 - 11904: 0xCB47, - 26444 - 11904: 0xCB42, - 26445 - 11904: 0xCB45, - 26446 - 11904: 0xA7F5, - 26447 - 11904: 0xA7F6, - 26448 - 11904: 0xA7F7, - 26449 - 11904: 0xA7F8, - 26451 - 11904: 0xA840, - 26453 - 11904: 0xCB41, - 26454 - 11904: 0xA7FA, - 26455 - 11904: 0xA841, - 26457 - 11904: 0xCB40, - 26458 - 11904: 0xCB46, - 26460 - 11904: 0xA7F9, - 26461 - 11904: 0xCB44, - 26462 - 11904: 0xFCF1, - 26463 - 11904: 0xA7F4, - 26464 - 11904: 0xA7FE, - 26465 - 11904: 0x98E7, - 26466 - 11904: 0xFCF3, - 26471 - 11904: 0xFCF2, - 26474 - 11904: 0xAA57, - 26475 - 11904: 0x8CCA, - 26476 - 11904: 0xCCD4, - 26477 - 11904: 0xAA43, - 26478 - 11904: 0x8775, - 26479 - 11904: 0xAA4D, - 26480 - 11904: 0xAA4E, - 26481 - 11904: 0xAA46, - 26482 - 11904: 0xAA58, - 26483 - 11904: 0xAA48, - 26484 - 11904: 0xCCDC, - 26485 - 11904: 0xAA53, - 26486 - 11904: 0xCCD7, - 26487 - 11904: 0xAA49, - 26488 - 11904: 0xCCE6, - 26489 - 11904: 0xCCE7, - 26490 - 11904: 0xCCDF, - 26491 - 11904: 0xCCD8, - 26492 - 11904: 0xAA56, - 26493 - 11904: 0xCCE4, - 26494 - 11904: 0xAA51, - 26495 - 11904: 0xAA4F, - 26497 - 11904: 0xCCE5, - 26498 - 11904: 0x87BA, - 26499 - 11904: 0xCCE3, - 26500 - 11904: 0xCCDB, - 26501 - 11904: 0xCCD3, - 26502 - 11904: 0xCCDA, - 26503 - 11904: 0xAA4A, - 26505 - 11904: 0xAA50, - 26507 - 11904: 0xAA44, - 26508 - 11904: 0xCCDE, - 26509 - 11904: 0xCCDD, - 26510 - 11904: 0xCCD5, - 26511 - 11904: 0x93E5, - 26512 - 11904: 0xAA52, - 26513 - 11904: 0xCCE1, - 26514 - 11904: 0xCCD6, - 26515 - 11904: 0xAA55, - 26516 - 11904: 0xCCE8, - 26517 - 11904: 0xAA45, - 26519 - 11904: 0xAA4C, - 26520 - 11904: 0xCCD9, - 26521 - 11904: 0xCCE2, - 26522 - 11904: 0xAA54, - 26524 - 11904: 0xAA47, - 26525 - 11904: 0xAA4B, - 26527 - 11904: 0xCCE0, - 26528 - 11904: 0x9A59, - 26532 - 11904: 0x8DB5, - 26540 - 11904: 0xFD4D, - 26542 - 11904: 0xCF5B, - 26543 - 11904: 0xAC5C, - 26544 - 11904: 0xAC69, - 26545 - 11904: 0xFD5E, - 26546 - 11904: 0xCF56, - 26547 - 11904: 0xCF4C, - 26548 - 11904: 0xAC62, - 26549 - 11904: 0xCF4A, - 26550 - 11904: 0xAC5B, - 26551 - 11904: 0xCF45, - 26552 - 11904: 0xAC65, - 26553 - 11904: 0xCF52, - 26554 - 11904: 0xCEFE, - 26555 - 11904: 0xCF41, - 26559 - 11904: 0x8F7D, - 26560 - 11904: 0xCF44, - 26561 - 11904: 0xCEFB, - 26562 - 11904: 0xCF51, - 26563 - 11904: 0xCF61, - 26564 - 11904: 0xAC60, - 26565 - 11904: 0xCF46, - 26566 - 11904: 0xCF58, - 26568 - 11904: 0xCEFD, - 26569 - 11904: 0xCF5F, - 26570 - 11904: 0xCF60, - 26571 - 11904: 0xCF63, - 26572 - 11904: 0xCF5A, - 26573 - 11904: 0xCF4B, - 26574 - 11904: 0xCF53, - 26575 - 11904: 0xAC66, - 26576 - 11904: 0xAC59, - 26577 - 11904: 0xAC61, - 26578 - 11904: 0xAC6D, - 26579 - 11904: 0xAC56, - 26580 - 11904: 0xAC58, - 26582 - 11904: 0x9547, - 26583 - 11904: 0xFCF6, - 26584 - 11904: 0xCF43, - 26585 - 11904: 0xAC6A, - 26586 - 11904: 0xAC63, - 26587 - 11904: 0xCF5D, - 26588 - 11904: 0xCF40, - 26589 - 11904: 0xAC6C, - 26590 - 11904: 0xAC67, - 26591 - 11904: 0xCF49, - 26594 - 11904: 0xAC6B, - 26595 - 11904: 0xCF50, - 26596 - 11904: 0xCF48, - 26597 - 11904: 0xAC64, - 26598 - 11904: 0xCF5C, - 26599 - 11904: 0xCF54, - 26601 - 11904: 0xAC5E, - 26602 - 11904: 0xCF62, - 26603 - 11904: 0xCF47, - 26604 - 11904: 0xAC5A, - 26605 - 11904: 0xCF59, - 26606 - 11904: 0xCF4F, - 26607 - 11904: 0xAC5F, - 26608 - 11904: 0xCF55, - 26609 - 11904: 0xAC57, - 26610 - 11904: 0xCEFC, - 26611 - 11904: 0xAC68, - 26612 - 11904: 0xAEE3, - 26613 - 11904: 0xAC5D, - 26614 - 11904: 0xCF4E, - 26615 - 11904: 0xCF4D, - 26616 - 11904: 0xCF42, - 26617 - 11904: 0x9250, - 26618 - 11904: 0xCF5E, - 26620 - 11904: 0xCF57, - 26622 - 11904: 0x8968, - 26623 - 11904: 0xAC55, - 26624 - 11904: 0x8DB6, - 26625 - 11904: 0xFCFB, - 26626 - 11904: 0xA07D, - 26627 - 11904: 0x98FC, - 26628 - 11904: 0x8969, - 26637 - 11904: 0xFE4F, - 26640 - 11904: 0x9256, - 26642 - 11904: 0xD1EC, - 26643 - 11904: 0xAEEA, - 26644 - 11904: 0xD1ED, - 26646 - 11904: 0xD1E1, - 26647 - 11904: 0xAEDF, - 26648 - 11904: 0xAEEB, - 26650 - 11904: 0xD1DA, - 26651 - 11904: 0xFAC9, - 26652 - 11904: 0xD1E3, - 26653 - 11904: 0xD1EB, - 26654 - 11904: 0x93E8, - 26655 - 11904: 0xD1D9, - 26656 - 11904: 0xD1F4, - 26657 - 11904: 0xAED5, - 26658 - 11904: 0xFCF8, - 26661 - 11904: 0xD1F3, - 26662 - 11904: 0xD1EE, - 26664 - 11904: 0xD1EF, - 26665 - 11904: 0xAEDD, - 26666 - 11904: 0xAEE8, - 26667 - 11904: 0xD1E5, - 26669 - 11904: 0xD1E6, - 26670 - 11904: 0xD1F0, - 26671 - 11904: 0xD1E7, - 26673 - 11904: 0xD1E2, - 26674 - 11904: 0xD1DC, - 26675 - 11904: 0xD1DD, - 26676 - 11904: 0xD1EA, - 26677 - 11904: 0xD1E4, - 26678 - 11904: 0x9CE3, - 26679 - 11904: 0xFDA9, - 26680 - 11904: 0xAED6, - 26681 - 11904: 0xAEDA, - 26682 - 11904: 0xD1F2, - 26683 - 11904: 0xD1DE, - 26684 - 11904: 0xAEE6, - 26685 - 11904: 0xAEE2, - 26686 - 11904: 0xFC44, - 26688 - 11904: 0xAEE5, - 26689 - 11904: 0xAEEC, - 26690 - 11904: 0xAEDB, - 26691 - 11904: 0xAEE7, - 26692 - 11904: 0xD1E9, - 26693 - 11904: 0xAEE9, - 26694 - 11904: 0xAED8, - 26695 - 11904: 0x9640, - 26696 - 11904: 0xAED7, - 26697 - 11904: 0xD1DB, - 26698 - 11904: 0x8DB8, - 26699 - 11904: 0xD1DF, - 26700 - 11904: 0xAEE0, - 26701 - 11904: 0xD1F1, - 26702 - 11904: 0xD1E8, - 26703 - 11904: 0xD1E0, - 26704 - 11904: 0xAEE4, - 26705 - 11904: 0xAEE1, - 26707 - 11904: 0xAED9, - 26708 - 11904: 0xAEDC, - 26709 - 11904: 0x9B4A, - 26710 - 11904: 0x8FB9, - 26717 - 11904: 0xFCFE, - 26725 - 11904: 0x896A, - 26731 - 11904: 0xD5C4, - 26733 - 11904: 0xD5B4, - 26734 - 11904: 0xD5B5, - 26735 - 11904: 0xD5B9, - 26737 - 11904: 0xD5C8, - 26738 - 11904: 0xD5C5, - 26740 - 11904: 0xD5BE, - 26741 - 11904: 0xD5BD, - 26742 - 11904: 0xB1ED, - 26743 - 11904: 0xD5C1, - 26744 - 11904: 0xD5D0, - 26745 - 11904: 0xD5B0, - 26747 - 11904: 0xD5D1, - 26748 - 11904: 0xD5C3, - 26749 - 11904: 0xD5D5, - 26750 - 11904: 0xD5C9, - 26751 - 11904: 0xB1EC, - 26752 - 11904: 0xD5C7, - 26753 - 11904: 0xB1E7, - 26754 - 11904: 0xB1FC, - 26755 - 11904: 0xB1F2, - 26756 - 11904: 0x8DB9, - 26757 - 11904: 0xB1F6, - 26758 - 11904: 0xB1F5, - 26759 - 11904: 0xD5B1, - 26760 - 11904: 0x917E, - 26761 - 11904: 0xD5CE, - 26762 - 11904: 0xD5D4, - 26763 - 11904: 0xD5CC, - 26764 - 11904: 0xD5D3, - 26767 - 11904: 0xD5C0, - 26768 - 11904: 0xD5B2, - 26769 - 11904: 0xD5D2, - 26770 - 11904: 0xD5C2, - 26771 - 11904: 0xB1EA, - 26772 - 11904: 0xB1F7, - 26774 - 11904: 0xD5CB, - 26775 - 11904: 0xB1F0, - 26776 - 11904: 0x93F4, - 26779 - 11904: 0xD5CA, - 26780 - 11904: 0xD5B3, - 26781 - 11904: 0xB1F8, - 26783 - 11904: 0xB1FA, - 26784 - 11904: 0xD5CD, - 26785 - 11904: 0xB1FB, - 26786 - 11904: 0xB1E9, - 26787 - 11904: 0xD5BA, - 26788 - 11904: 0xD5CF, - 26790 - 11904: 0xFB7C, - 26791 - 11904: 0xB1EF, - 26792 - 11904: 0xB1F9, - 26793 - 11904: 0xD5BC, - 26794 - 11904: 0xD5C6, - 26795 - 11904: 0xD5B7, - 26796 - 11904: 0xD5BB, - 26797 - 11904: 0xB1F4, - 26798 - 11904: 0xD5B6, - 26799 - 11904: 0xB1E8, - 26800 - 11904: 0xB1F1, - 26801 - 11904: 0xB1EE, - 26802 - 11904: 0xD5BF, - 26803 - 11904: 0xAEDE, - 26804 - 11904: 0xD9C0, - 26805 - 11904: 0xB1EB, - 26806 - 11904: 0x93E7, - 26809 - 11904: 0x97EF, - 26813 - 11904: 0xFE4A, - 26819 - 11904: 0xFD45, - 26820 - 11904: 0xB1F3, - 26821 - 11904: 0x96A5, - 26822 - 11904: 0xD9C3, - 26823 - 11904: 0xD9D9, - 26824 - 11904: 0xD9CE, - 26825 - 11904: 0xB4D6, - 26826 - 11904: 0xFEE0, - 26827 - 11904: 0xB4D1, - 26828 - 11904: 0xD9BD, - 26829 - 11904: 0xB4D2, - 26830 - 11904: 0xD9CD, - 26832 - 11904: 0xD9C6, - 26833 - 11904: 0xD9D3, - 26834 - 11904: 0xB4CE, - 26835 - 11904: 0xD9AB, - 26836 - 11904: 0xD9D5, - 26837 - 11904: 0xB4C4, - 26838 - 11904: 0xD9B3, - 26839 - 11904: 0xB4C7, - 26840 - 11904: 0xB4C6, - 26842 - 11904: 0xB4D7, - 26844 - 11904: 0xD9AD, - 26845 - 11904: 0xD9CF, - 26846 - 11904: 0xD9D0, - 26847 - 11904: 0xB4C9, - 26848 - 11904: 0xB4C5, - 26849 - 11904: 0xD9BB, - 26851 - 11904: 0xB4D0, - 26852 - 11904: 0xD9B6, - 26854 - 11904: 0xD9D1, - 26855 - 11904: 0xB4CC, - 26856 - 11904: 0xD9C9, - 26857 - 11904: 0xD9D6, - 26858 - 11904: 0xD9B0, - 26859 - 11904: 0xD9B5, - 26860 - 11904: 0xD9AF, - 26862 - 11904: 0xB4CB, - 26863 - 11904: 0xD9C2, - 26864 - 11904: 0xDDDE, - 26865 - 11904: 0xD9B1, - 26866 - 11904: 0xB4CF, - 26867 - 11904: 0xD9BA, - 26868 - 11904: 0xD9D2, - 26869 - 11904: 0xB4CA, - 26870 - 11904: 0xD9B7, - 26871 - 11904: 0xD9B4, - 26872 - 11904: 0xD9C5, - 26873 - 11904: 0xB4CD, - 26874 - 11904: 0xB4C3, - 26875 - 11904: 0xB4D9, - 26876 - 11904: 0xD9C8, - 26877 - 11904: 0xD9C7, - 26880 - 11904: 0xFD48, - 26881 - 11904: 0xFD47, - 26882 - 11904: 0xFEF2, - 26883 - 11904: 0xFE6A, - 26884 - 11904: 0xD9AC, - 26885 - 11904: 0xB4C8, - 26886 - 11904: 0xD9D4, - 26887 - 11904: 0xD9BC, - 26888 - 11904: 0xD9BE, - 26889 - 11904: 0x8DBD, - 26890 - 11904: 0xD9CB, - 26891 - 11904: 0xD9CA, - 26892 - 11904: 0xD9AA, - 26893 - 11904: 0xB4D3, - 26894 - 11904: 0xB4D5, - 26895 - 11904: 0xD9B2, - 26896 - 11904: 0xD9B9, - 26897 - 11904: 0xD9C1, - 26898 - 11904: 0xB4D4, - 26899 - 11904: 0xD9B8, - 26900 - 11904: 0xD9C4, - 26901 - 11904: 0xD9D7, - 26903 - 11904: 0xD9CC, - 26904 - 11904: 0x9BA1, - 26905 - 11904: 0x8CA2, - 26906 - 11904: 0x9AB7, - 26907 - 11904: 0x8EFC, - 26917 - 11904: 0xD9D8, - 26922 - 11904: 0xD9AE, - 26924 - 11904: 0x9FA1, - 26927 - 11904: 0xDDF2, - 26928 - 11904: 0xB7A6, - 26930 - 11904: 0xDDF0, - 26931 - 11904: 0xDDDB, - 26932 - 11904: 0xDDE0, - 26933 - 11904: 0xDDD9, - 26934 - 11904: 0xFD51, - 26935 - 11904: 0xDDEC, - 26936 - 11904: 0xDDCB, - 26937 - 11904: 0xDDD2, - 26939 - 11904: 0xDDEA, - 26940 - 11904: 0xDDF4, - 26941 - 11904: 0xDDDC, - 26942 - 11904: 0xFAAD, - 26943 - 11904: 0xDDCF, - 26944 - 11904: 0xDDE2, - 26945 - 11904: 0xDDE7, - 26946 - 11904: 0xDDD3, - 26947 - 11904: 0x8DBE, - 26948 - 11904: 0xDDE4, - 26949 - 11904: 0xDDD0, - 26950 - 11904: 0x89A4, - 26952 - 11904: 0xDDD7, - 26953 - 11904: 0xDDD8, - 26954 - 11904: 0xB7A8, - 26955 - 11904: 0xDDEB, - 26956 - 11904: 0xDDE9, - 26958 - 11904: 0xDDCC, - 26959 - 11904: 0xDDEE, - 26961 - 11904: 0xDDEF, - 26962 - 11904: 0xDDF1, - 26963 - 11904: 0xB7AC, - 26964 - 11904: 0xB7A4, - 26965 - 11904: 0x9AD9, - 26966 - 11904: 0xD5B8, - 26967 - 11904: 0xDDD4, - 26968 - 11904: 0xDDE6, - 26969 - 11904: 0xDDD5, - 26970 - 11904: 0xB7A1, - 26971 - 11904: 0xB7B1, - 26972 - 11904: 0xDDED, - 26973 - 11904: 0xB7AF, - 26974 - 11904: 0xB7AB, - 26975 - 11904: 0xDDCA, - 26976 - 11904: 0xB7A3, - 26977 - 11904: 0xFD4E, - 26978 - 11904: 0xDDCD, - 26979 - 11904: 0xB7B0, - 26980 - 11904: 0x8DC0, - 26981 - 11904: 0xDDDD, - 26982 - 11904: 0xDDC9, - 26983 - 11904: 0x97F0, - 26984 - 11904: 0xB7A9, - 26985 - 11904: 0xDDE1, - 26986 - 11904: 0xDDD1, - 26987 - 11904: 0xB7AA, - 26988 - 11904: 0xDDDA, - 26989 - 11904: 0xB77E, - 26990 - 11904: 0xB4D8, - 26991 - 11904: 0xDDE3, - 26992 - 11904: 0xD9BF, - 26993 - 11904: 0xDDCE, - 26994 - 11904: 0x93B4, - 26995 - 11904: 0xFD44, - 26996 - 11904: 0xDDE8, - 26997 - 11904: 0xB7A5, - 26998 - 11904: 0xDDE5, - 26999 - 11904: 0xB7A2, - 27000 - 11904: 0xDDDF, - 27001 - 11904: 0xB7AD, - 27002 - 11904: 0xDDD6, - 27003 - 11904: 0xDDF3, - 27008 - 11904: 0x9FA7, - 27010 - 11904: 0xB7A7, - 27011 - 11904: 0xDEC6, - 27013 - 11904: 0x8DC2, - 27014 - 11904: 0xB7AE, - 27018 - 11904: 0x99B6, - 27021 - 11904: 0xE24A, - 27022 - 11904: 0xE248, - 27024 - 11904: 0xE25E, - 27025 - 11904: 0xE246, - 27027 - 11904: 0xE258, - 27028 - 11904: 0xB77D, - 27029 - 11904: 0xBA5F, - 27030 - 11904: 0xE242, - 27031 - 11904: 0xE25D, - 27032 - 11904: 0xFD52, - 27033 - 11904: 0xE247, - 27034 - 11904: 0xE255, - 27035 - 11904: 0xBA64, - 27036 - 11904: 0xBA5D, - 27038 - 11904: 0xE25B, - 27039 - 11904: 0x8DC1, - 27040 - 11904: 0xE240, - 27041 - 11904: 0xE25A, - 27042 - 11904: 0x8E46, - 27043 - 11904: 0xBA6F, - 27044 - 11904: 0xE251, - 27045 - 11904: 0xE261, - 27046 - 11904: 0xBA6D, - 27047 - 11904: 0xE249, - 27048 - 11904: 0xBA5E, - 27049 - 11904: 0xE24B, - 27050 - 11904: 0xE259, - 27051 - 11904: 0xBA67, - 27052 - 11904: 0xE244, - 27053 - 11904: 0xBA6B, - 27054 - 11904: 0xBA61, - 27055 - 11904: 0xE24D, - 27056 - 11904: 0xE243, - 27057 - 11904: 0xE1FC, - 27058 - 11904: 0xA0D1, - 27059 - 11904: 0xE257, - 27060 - 11904: 0xBA68, - 27061 - 11904: 0xE260, - 27062 - 11904: 0xE1FD, - 27063 - 11904: 0xBA65, - 27065 - 11904: 0xE253, - 27067 - 11904: 0xBA66, - 27068 - 11904: 0xE245, - 27069 - 11904: 0xE250, - 27070 - 11904: 0xE24C, - 27071 - 11904: 0xE24E, - 27072 - 11904: 0x9FCA, - 27073 - 11904: 0xBA60, - 27074 - 11904: 0xE25F, - 27075 - 11904: 0xBA6E, - 27076 - 11904: 0xE24F, - 27078 - 11904: 0xE262, - 27081 - 11904: 0xE1FE, - 27082 - 11904: 0xE254, - 27083 - 11904: 0xBA63, - 27084 - 11904: 0xBA6C, - 27085 - 11904: 0xBA6A, - 27086 - 11904: 0xE241, - 27087 - 11904: 0xE256, - 27088 - 11904: 0xBA69, - 27089 - 11904: 0x92CF, - 27091 - 11904: 0xBA62, - 27092 - 11904: 0xE252, - 27093 - 11904: 0x9CF4, - 27094 - 11904: 0x8DC4, - 27097 - 11904: 0xE25C, - 27105 - 11904: 0xFD41, - 27106 - 11904: 0xE5D5, - 27108 - 11904: 0xE5D1, - 27109 - 11904: 0xE5CD, - 27110 - 11904: 0xE5E1, - 27111 - 11904: 0xE5DE, - 27112 - 11904: 0xBCCD, - 27113 - 11904: 0x9B4C, - 27115 - 11904: 0xE5E5, - 27116 - 11904: 0xE5D4, - 27117 - 11904: 0xBCD8, - 27118 - 11904: 0xE5DB, - 27121 - 11904: 0xE5D0, - 27122 - 11904: 0xE5DA, - 27123 - 11904: 0xBCD5, - 27124 - 11904: 0xE5EE, - 27126 - 11904: 0xE5EB, - 27127 - 11904: 0xE5DD, - 27128 - 11904: 0xE5CE, - 27129 - 11904: 0xFD57, - 27130 - 11904: 0xFCEF, - 27131 - 11904: 0xE5E2, - 27132 - 11904: 0xE5E4, - 27133 - 11904: 0xBCD1, - 27134 - 11904: 0xE5D8, - 27135 - 11904: 0xE5D3, - 27136 - 11904: 0xE5CA, - 27137 - 11904: 0xBCCE, - 27138 - 11904: 0xBCD6, - 27139 - 11904: 0x9CDE, - 27140 - 11904: 0xE5E7, - 27141 - 11904: 0xBCD7, - 27142 - 11904: 0xE5CB, - 27143 - 11904: 0xE5ED, - 27144 - 11904: 0xE5E0, - 27145 - 11904: 0xE5E6, - 27146 - 11904: 0xBCD4, - 27147 - 11904: 0xFD42, - 27148 - 11904: 0x986C, - 27149 - 11904: 0xE5E3, - 27151 - 11904: 0xE5EA, - 27153 - 11904: 0xBCD9, - 27155 - 11904: 0xBCD3, - 27156 - 11904: 0xE5DC, - 27157 - 11904: 0xE5CF, - 27158 - 11904: 0xE5EF, - 27159 - 11904: 0xE5CC, - 27160 - 11904: 0xE5E8, - 27161 - 11904: 0xBCD0, - 27162 - 11904: 0x97F9, - 27163 - 11904: 0xE5D6, - 27164 - 11904: 0x9558, - 27165 - 11904: 0xE5D7, - 27166 - 11904: 0xBCCF, - 27167 - 11904: 0xBCCC, - 27168 - 11904: 0xE5D2, - 27169 - 11904: 0xBCD2, - 27171 - 11904: 0xBCCB, - 27173 - 11904: 0xE5E9, - 27174 - 11904: 0xE5EC, - 27175 - 11904: 0xE5D9, - 27176 - 11904: 0xE9CA, - 27177 - 11904: 0x87B6, - 27179 - 11904: 0x985E, - 27180 - 11904: 0xFE7B, - 27181 - 11904: 0x94CD, - 27186 - 11904: 0xE9C2, - 27187 - 11904: 0x93EE, - 27188 - 11904: 0xE9BE, - 27189 - 11904: 0xBEF6, - 27192 - 11904: 0xBEEB, - 27193 - 11904: 0xBEF0, - 27194 - 11904: 0xBEEC, - 27195 - 11904: 0xE9CC, - 27196 - 11904: 0xE9D7, - 27197 - 11904: 0xBEEA, - 27198 - 11904: 0xE9C4, - 27199 - 11904: 0xE9CD, - 27200 - 11904: 0xE5DF, - 27201 - 11904: 0xE9CE, - 27203 - 11904: 0x8CA3, - 27204 - 11904: 0xBEF1, - 27205 - 11904: 0xFD5A, - 27206 - 11904: 0xE9DD, - 27207 - 11904: 0xBEF5, - 27208 - 11904: 0xBEF8, - 27209 - 11904: 0xE9C0, - 27211 - 11904: 0xBEF4, - 27212 - 11904: 0x93F5, - 27213 - 11904: 0xE9DB, - 27214 - 11904: 0xE9DC, - 27215 - 11904: 0xE9D2, - 27216 - 11904: 0xE9D1, - 27217 - 11904: 0xE9C9, - 27218 - 11904: 0x93EF, - 27219 - 11904: 0x8EEA, - 27220 - 11904: 0xE9D3, - 27221 - 11904: 0xE9DA, - 27222 - 11904: 0xE9D9, - 27223 - 11904: 0x8F5B, - 27224 - 11904: 0xBEEF, - 27225 - 11904: 0xBEED, - 27226 - 11904: 0xE9CB, - 27227 - 11904: 0xE9C8, - 27229 - 11904: 0xE9C5, - 27230 - 11904: 0xE9D8, - 27231 - 11904: 0xBEF7, - 27232 - 11904: 0xE9D6, - 27233 - 11904: 0xBEF3, - 27234 - 11904: 0xBEF2, - 27235 - 11904: 0x8C5E, - 27236 - 11904: 0xE9D0, - 27237 - 11904: 0x8DC6, - 27238 - 11904: 0xE9BF, - 27239 - 11904: 0xE9C1, - 27240 - 11904: 0xE9C3, - 27241 - 11904: 0xE9D5, - 27242 - 11904: 0xE9CF, - 27243 - 11904: 0xBEEE, - 27245 - 11904: 0xE9C6, - 27247 - 11904: 0xE9D4, - 27249 - 11904: 0x8DC8, - 27252 - 11904: 0x8DC7, - 27254 - 11904: 0xE9C7, - 27258 - 11904: 0x93F7, - 27262 - 11904: 0xC0CF, - 27263 - 11904: 0xED45, - 27264 - 11904: 0xC0C8, - 27265 - 11904: 0xECF5, - 27266 - 11904: 0x8DC9, - 27267 - 11904: 0xED41, - 27268 - 11904: 0xC0CA, - 27269 - 11904: 0xED48, - 27271 - 11904: 0xECFC, - 27273 - 11904: 0xECF7, - 27274 - 11904: 0xFBF2, - 27276 - 11904: 0xED49, - 27277 - 11904: 0xECF3, - 27278 - 11904: 0xECFE, - 27279 - 11904: 0x9670, - 27280 - 11904: 0xC0D1, - 27281 - 11904: 0xED44, - 27282 - 11904: 0xED4A, - 27283 - 11904: 0xECFD, - 27284 - 11904: 0xC0C9, - 27285 - 11904: 0xED40, - 27286 - 11904: 0xECF4, - 27287 - 11904: 0xC0D0, - 27289 - 11904: 0x8DCB, - 27290 - 11904: 0xED47, - 27291 - 11904: 0xECF9, - 27292 - 11904: 0xC0CC, - 27293 - 11904: 0xFD5C, - 27294 - 11904: 0xECFB, - 27295 - 11904: 0xECF8, - 27296 - 11904: 0xC0D2, - 27297 - 11904: 0xECFA, - 27298 - 11904: 0xC0CB, - 27299 - 11904: 0xC0CE, - 27300 - 11904: 0xED43, - 27301 - 11904: 0xECF6, - 27302 - 11904: 0xED46, - 27303 - 11904: 0x8F65, - 27304 - 11904: 0xED42, - 27307 - 11904: 0x8DCD, - 27308 - 11904: 0xC263, - 27309 - 11904: 0xEFE7, - 27310 - 11904: 0xC268, - 27311 - 11904: 0xC269, - 27313 - 11904: 0x9DA8, - 27314 - 11904: 0x94F9, - 27315 - 11904: 0xC262, - 27316 - 11904: 0xEFE6, - 27317 - 11904: 0x8DCE, - 27318 - 11904: 0xEFE3, - 27319 - 11904: 0xEFE4, - 27320 - 11904: 0xC266, - 27321 - 11904: 0xEFDE, - 27322 - 11904: 0xEFE2, - 27323 - 11904: 0xC265, - 27325 - 11904: 0xEFDF, - 27326 - 11904: 0x93EA, - 27330 - 11904: 0xC267, - 27331 - 11904: 0xC264, - 27333 - 11904: 0xEFDD, - 27334 - 11904: 0xEFE1, - 27335 - 11904: 0xEFE5, - 27336 - 11904: 0xFD5F, - 27337 - 11904: 0x93F0, - 27338 - 11904: 0x9FB6, - 27339 - 11904: 0xF251, - 27340 - 11904: 0xF24E, - 27341 - 11904: 0xF257, - 27343 - 11904: 0xF256, - 27344 - 11904: 0xF254, - 27345 - 11904: 0xF24F, - 27347 - 11904: 0xC372, - 27348 - 11904: 0x8DCF, - 27352 - 11904: 0x9763, - 27353 - 11904: 0xF250, - 27354 - 11904: 0xC371, - 27355 - 11904: 0xC0CD, - 27356 - 11904: 0xF253, - 27357 - 11904: 0xC370, - 27358 - 11904: 0xF258, - 27359 - 11904: 0xF252, - 27360 - 11904: 0xF24D, - 27361 - 11904: 0xEFE0, - 27365 - 11904: 0xC36F, - 27367 - 11904: 0xF24C, - 27368 - 11904: 0xF456, - 27370 - 11904: 0xF455, - 27371 - 11904: 0xF255, - 27372 - 11904: 0xC468, - 27374 - 11904: 0xF459, - 27375 - 11904: 0xF45A, - 27376 - 11904: 0xF454, - 27377 - 11904: 0xF458, - 27379 - 11904: 0xF453, - 27382 - 11904: 0x8DD0, - 27384 - 11904: 0xF5D1, - 27385 - 11904: 0xF457, - 27386 - 11904: 0xC4E7, - 27387 - 11904: 0xC4E5, - 27388 - 11904: 0xF5CF, - 27392 - 11904: 0xF5D2, - 27394 - 11904: 0xF5CE, - 27395 - 11904: 0xF5D0, - 27396 - 11904: 0xC4E6, - 27397 - 11904: 0x93F1, - 27400 - 11904: 0xF6E5, - 27401 - 11904: 0xF6E6, - 27402 - 11904: 0xC576, - 27403 - 11904: 0xF6E4, - 27407 - 11904: 0xF7E2, - 27408 - 11904: 0xC5CF, - 27409 - 11904: 0xF7E0, - 27410 - 11904: 0xF7E1, - 27411 - 11904: 0xF8AC, - 27414 - 11904: 0xC656, - 27415 - 11904: 0xF8F3, - 27416 - 11904: 0xF8F1, - 27417 - 11904: 0xF8F2, - 27418 - 11904: 0xF8F4, - 27421 - 11904: 0xFD62, - 27422 - 11904: 0xF9BB, - 27424 - 11904: 0xA4ED, - 27425 - 11904: 0xA6B8, - 27427 - 11904: 0xAA59, - 27429 - 11904: 0xCCE9, - 27432 - 11904: 0xCF64, - 27436 - 11904: 0xD1F5, - 27437 - 11904: 0xD1F7, - 27439 - 11904: 0xD1F6, - 27441 - 11904: 0xD1F8, - 27442 - 11904: 0xB1FD, - 27443 - 11904: 0xD5D7, - 27444 - 11904: 0xD1F9, - 27445 - 11904: 0xFD65, - 27446 - 11904: 0xD5D6, - 27447 - 11904: 0xD5D8, - 27448 - 11904: 0xD5D9, - 27449 - 11904: 0xD9DA, - 27450 - 11904: 0xB4DB, - 27451 - 11904: 0xD9DB, - 27452 - 11904: 0xD9DD, - 27453 - 11904: 0xB4DC, - 27454 - 11904: 0xB4DA, - 27455 - 11904: 0xD9DC, - 27457 - 11904: 0xDDFA, - 27458 - 11904: 0xDDF8, - 27459 - 11904: 0xDDF7, - 27461 - 11904: 0xDDF6, - 27462 - 11904: 0xDDF5, - 27463 - 11904: 0xB7B2, - 27464 - 11904: 0xDDF9, - 27465 - 11904: 0xBA70, - 27466 - 11904: 0xE263, - 27467 - 11904: 0xE265, - 27468 - 11904: 0xBA71, - 27469 - 11904: 0xE264, - 27470 - 11904: 0xBCDB, - 27472 - 11904: 0xBCDA, - 27473 - 11904: 0xE5F0, - 27474 - 11904: 0x9FDB, - 27476 - 11904: 0xE9DF, - 27477 - 11904: 0xE9DE, - 27478 - 11904: 0xE9E0, - 27479 - 11904: 0x93F8, - 27481 - 11904: 0xBEF9, - 27483 - 11904: 0xED4B, - 27484 - 11904: 0xC0D3, - 27486 - 11904: 0xEFE8, - 27487 - 11904: 0xC26A, - 27488 - 11904: 0xF259, - 27489 - 11904: 0xC577, - 27490 - 11904: 0xA4EE, - 27491 - 11904: 0xA5BF, - 27492 - 11904: 0xA6B9, - 27493 - 11904: 0xA842, - 27494 - 11904: 0xAA5A, - 27495 - 11904: 0xAA5B, - 27498 - 11904: 0xAC6E, - 27501 - 11904: 0xD1FA, - 27503 - 11904: 0x8BF7, - 27506 - 11904: 0xB7B3, - 27508 - 11904: 0xFD66, - 27510 - 11904: 0xE6D1, - 27511 - 11904: 0xBEFA, - 27512 - 11904: 0xC26B, - 27513 - 11904: 0xA4EF, - 27514 - 11904: 0x8BCF, - 27515 - 11904: 0xA6BA, - 27518 - 11904: 0xCCEB, - 27519 - 11904: 0xAA5C, - 27520 - 11904: 0xCCEA, - 27521 - 11904: 0x8DD1, - 27522 - 11904: 0xCF65, - 27523 - 11904: 0xAC6F, - 27524 - 11904: 0xCF66, - 27526 - 11904: 0xAC70, - 27528 - 11904: 0xD1FC, - 27529 - 11904: 0xAEEE, - 27530 - 11904: 0xAEED, - 27532 - 11904: 0xD5DE, - 27533 - 11904: 0xD5DC, - 27534 - 11904: 0xD5DD, - 27535 - 11904: 0xD5DB, - 27537 - 11904: 0xD5DA, - 27540 - 11904: 0xD9DE, - 27541 - 11904: 0xD9E1, - 27542 - 11904: 0xB4DE, - 27543 - 11904: 0xD9DF, - 27544 - 11904: 0xB4DD, - 27545 - 11904: 0xD9E0, - 27547 - 11904: 0xDDFB, - 27550 - 11904: 0xE266, - 27551 - 11904: 0xE267, - 27552 - 11904: 0xE268, - 27554 - 11904: 0xE5F3, - 27555 - 11904: 0xE5F2, - 27556 - 11904: 0xBCDC, - 27557 - 11904: 0xE5F1, - 27558 - 11904: 0xE5F4, - 27559 - 11904: 0xE9E1, - 27562 - 11904: 0xE9E2, - 27563 - 11904: 0xE9E3, - 27565 - 11904: 0xED4C, - 27566 - 11904: 0xC0D4, - 27567 - 11904: 0xC26C, - 27568 - 11904: 0xF25A, - 27570 - 11904: 0xC4E8, - 27571 - 11904: 0xC95F, - 27573 - 11904: 0xAC71, - 27574 - 11904: 0xCF67, - 27575 - 11904: 0xAEEF, - 27578 - 11904: 0xB1FE, - 27580 - 11904: 0xB4DF, - 27581 - 11904: 0xD9E2, - 27583 - 11904: 0xB7B5, - 27584 - 11904: 0xB7B4, - 27585 - 11904: 0x8DD2, - 27587 - 11904: 0xE269, - 27588 - 11904: 0xE26A, - 27589 - 11904: 0xBCDD, - 27590 - 11904: 0xBCDE, - 27591 - 11904: 0xE9E5, - 27592 - 11904: 0xE9E4, - 27593 - 11904: 0xEFE9, - 27594 - 11904: 0xF7E3, - 27595 - 11904: 0xA4F0, - 27596 - 11904: 0xC960, - 27597 - 11904: 0xA5C0, - 27599 - 11904: 0xA843, - 27600 - 11904: 0xCB48, - 27602 - 11904: 0xAC72, - 27603 - 11904: 0xB7B6, - 27604 - 11904: 0xA4F1, - 27606 - 11904: 0xCF68, - 27607 - 11904: 0xAC73, - 27608 - 11904: 0xCF69, - 27610 - 11904: 0xC0D5, - 27611 - 11904: 0xA4F2, - 27612 - 11904: 0xFD71, - 27614 - 11904: 0xCCEC, - 27616 - 11904: 0xCF6A, - 27617 - 11904: 0xFD6F, - 27618 - 11904: 0xD242, - 27619 - 11904: 0xD241, - 27620 - 11904: 0xD1FE, - 27622 - 11904: 0xD1FD, - 27623 - 11904: 0xD243, - 27624 - 11904: 0xD240, - 27626 - 11904: 0x8DD3, - 27627 - 11904: 0xB240, - 27628 - 11904: 0xB241, - 27631 - 11904: 0xB4E0, - 27632 - 11904: 0xD9E3, - 27634 - 11904: 0xD9E4, - 27635 - 11904: 0xD9E5, - 27639 - 11904: 0xDE41, - 27640 - 11904: 0xDE42, - 27641 - 11904: 0xDE40, - 27642 - 11904: 0x9FE7, - 27643 - 11904: 0xDDFD, - 27644 - 11904: 0xDDFE, - 27645 - 11904: 0xB7B7, - 27646 - 11904: 0xE26B, - 27647 - 11904: 0xE5F7, - 27648 - 11904: 0xE5F6, - 27649 - 11904: 0xE5F5, - 27650 - 11904: 0xE5F8, - 27651 - 11904: 0xE9E7, - 27652 - 11904: 0xE9E6, - 27653 - 11904: 0xBEFB, - 27654 - 11904: 0xE9E8, - 27656 - 11904: 0xC0D6, - 27657 - 11904: 0xED4D, - 27659 - 11904: 0xEFEA, - 27660 - 11904: 0xF25B, - 27661 - 11904: 0xF6E7, - 27663 - 11904: 0xA4F3, - 27664 - 11904: 0xA5C2, - 27665 - 11904: 0xA5C1, - 27667 - 11904: 0xAA5D, - 27668 - 11904: 0xC961, - 27669 - 11904: 0xC97E, - 27670 - 11904: 0xA6BB, - 27672 - 11904: 0xC9F7, - 27673 - 11904: 0xCB49, - 27674 - 11904: 0xCB4A, - 27675 - 11904: 0xAA5E, - 27676 - 11904: 0x90BD, - 27677 - 11904: 0xCCED, - 27679 - 11904: 0xAC74, - 27680 - 11904: 0xCF6B, - 27681 - 11904: 0xCF6C, - 27683 - 11904: 0xAEF0, - 27684 - 11904: 0xAEF4, - 27685 - 11904: 0xD244, - 27686 - 11904: 0xAEF3, - 27687 - 11904: 0xAEF1, - 27688 - 11904: 0xAEF2, - 27690 - 11904: 0xD5DF, - 27691 - 11904: 0xB242, - 27692 - 11904: 0xB4E3, - 27694 - 11904: 0xB4E1, - 27695 - 11904: 0xB4E2, - 27696 - 11904: 0xD9E6, - 27697 - 11904: 0x9FD0, - 27699 - 11904: 0xBA72, - 27700 - 11904: 0xA4F4, - 27701 - 11904: 0x8BD0, - 27702 - 11904: 0xC9A1, - 27703 - 11904: 0xFD72, - 27704 - 11904: 0xA5C3, - 27705 - 11904: 0x9CAE, - 27706 - 11904: 0x8BD1, - 27707 - 11904: 0xC9A4, - 27709 - 11904: 0x8ADB, - 27710 - 11904: 0xA5C6, - 27711 - 11904: 0xC9A3, - 27712 - 11904: 0xA5C5, - 27713 - 11904: 0xA5C4, - 27714 - 11904: 0xA844, - 27715 - 11904: 0xC9A2, - 27718 - 11904: 0xC9F8, - 27721 - 11904: 0xFAE4, - 27722 - 11904: 0xC9FC, - 27723 - 11904: 0xC9FE, - 27724 - 11904: 0xCA40, - 27725 - 11904: 0xA6C5, - 27726 - 11904: 0xA6C6, - 27727 - 11904: 0xC9FB, - 27728 - 11904: 0xA6C1, - 27730 - 11904: 0xC9F9, - 27732 - 11904: 0xC9FD, - 27733 - 11904: 0xA6C2, - 27735 - 11904: 0xA6BD, - 27736 - 11904: 0x95CE, - 27737 - 11904: 0xA6BE, - 27738 - 11904: 0xFD76, - 27739 - 11904: 0xA6C4, - 27740 - 11904: 0xC9FA, - 27741 - 11904: 0xA6BC, - 27742 - 11904: 0xA845, - 27743 - 11904: 0xA6BF, - 27744 - 11904: 0xA6C0, - 27745 - 11904: 0xA6C3, - 27749 - 11904: 0xCB5B, - 27750 - 11904: 0xCB59, - 27751 - 11904: 0xCB4C, - 27752 - 11904: 0xA851, - 27753 - 11904: 0xCB53, - 27754 - 11904: 0xA84C, - 27755 - 11904: 0xCB4D, - 27757 - 11904: 0xCB55, - 27758 - 11904: 0xFB62, - 27759 - 11904: 0xCB52, - 27760 - 11904: 0xA84F, - 27761 - 11904: 0xCB51, - 27762 - 11904: 0xA856, - 27763 - 11904: 0xCB5A, - 27764 - 11904: 0xA858, - 27765 - 11904: 0x8DD4, - 27766 - 11904: 0xA85A, - 27768 - 11904: 0xCB4B, - 27769 - 11904: 0xFD78, - 27770 - 11904: 0xA84D, - 27771 - 11904: 0xCB5C, - 27773 - 11904: 0xA854, - 27774 - 11904: 0xA857, - 27775 - 11904: 0x8EE3, - 27776 - 11904: 0xCD45, - 27777 - 11904: 0xA847, - 27778 - 11904: 0xA85E, - 27779 - 11904: 0xA855, - 27780 - 11904: 0xCB4E, - 27781 - 11904: 0xA84A, - 27782 - 11904: 0xA859, - 27783 - 11904: 0xCB56, - 27784 - 11904: 0xA848, - 27785 - 11904: 0xA849, - 27786 - 11904: 0xCD43, - 27787 - 11904: 0xCB4F, - 27788 - 11904: 0xA850, - 27789 - 11904: 0xA85B, - 27790 - 11904: 0xCB5D, - 27791 - 11904: 0xCB50, - 27792 - 11904: 0xA84E, - 27794 - 11904: 0xA853, - 27795 - 11904: 0xCCEE, - 27796 - 11904: 0xA85C, - 27797 - 11904: 0xCB57, - 27798 - 11904: 0xA852, - 27800 - 11904: 0xA85D, - 27801 - 11904: 0xA846, - 27802 - 11904: 0xCB54, - 27803 - 11904: 0xA84B, - 27804 - 11904: 0xFDB7, - 27805 - 11904: 0xCD44, - 27807 - 11904: 0x9076, - 27810 - 11904: 0x98C6, - 27818 - 11904: 0x8DD5, - 27819 - 11904: 0xAA6A, - 27820 - 11904: 0xAA7A, - 27821 - 11904: 0xCCF5, - 27822 - 11904: 0xAA71, - 27823 - 11904: 0x97D1, - 27824 - 11904: 0xCD4B, - 27825 - 11904: 0xAA62, - 27826 - 11904: 0x9EB6, - 27827 - 11904: 0xAA65, - 27828 - 11904: 0xCD42, - 27830 - 11904: 0xCCF3, - 27831 - 11904: 0xCCF7, - 27832 - 11904: 0xAA6D, - 27833 - 11904: 0xAA6F, - 27834 - 11904: 0xCCFA, - 27835 - 11904: 0xAA76, - 27836 - 11904: 0xAA68, - 27837 - 11904: 0xAA66, - 27838 - 11904: 0xAA67, - 27839 - 11904: 0xAA75, - 27840 - 11904: 0xCD47, - 27841 - 11904: 0xAA70, - 27842 - 11904: 0xCCF9, - 27843 - 11904: 0xCCFB, - 27844 - 11904: 0xAA6E, - 27845 - 11904: 0xAA73, - 27846 - 11904: 0xCCFC, - 27847 - 11904: 0xCD4A, - 27849 - 11904: 0xAC75, - 27850 - 11904: 0xAA79, - 27851 - 11904: 0xFAC7, - 27852 - 11904: 0xAA63, - 27853 - 11904: 0xCD49, - 27854 - 11904: 0xA042, - 27855 - 11904: 0xCD4D, - 27856 - 11904: 0xCCF8, - 27857 - 11904: 0xCD4F, - 27858 - 11904: 0xCD40, - 27859 - 11904: 0xAA6C, - 27860 - 11904: 0xCCF4, - 27861 - 11904: 0xAA6B, - 27862 - 11904: 0xAA7D, - 27863 - 11904: 0xAA72, - 27865 - 11904: 0xCCF2, - 27866 - 11904: 0xCF75, - 27867 - 11904: 0xAA78, - 27868 - 11904: 0xAA7C, - 27869 - 11904: 0xCD41, - 27870 - 11904: 0xCD46, - 27871 - 11904: 0x9873, - 27872 - 11904: 0xAA7E, - 27873 - 11904: 0xAA77, - 27874 - 11904: 0xAA69, - 27875 - 11904: 0xAA5F, - 27877 - 11904: 0xAA64, - 27879 - 11904: 0xCCF6, - 27880 - 11904: 0xAA60, - 27881 - 11904: 0xCD4E, - 27882 - 11904: 0x9FFC, - 27883 - 11904: 0xCCF0, - 27884 - 11904: 0xCCEF, - 27885 - 11904: 0xCCFD, - 27886 - 11904: 0xCCF1, - 27887 - 11904: 0xAA7B, - 27888 - 11904: 0xAEF5, - 27889 - 11904: 0xAA74, - 27890 - 11904: 0xCCFE, - 27891 - 11904: 0xAA61, - 27893 - 11904: 0xACA6, - 27897 - 11904: 0xCD4C, - 27903 - 11904: 0x8CA5, - 27904 - 11904: 0xCF7C, - 27905 - 11904: 0xCFA1, - 27906 - 11904: 0x8DD7, - 27907 - 11904: 0xCFA4, - 27908 - 11904: 0xCF77, - 27909 - 11904: 0x92FB, - 27910 - 11904: 0x8DD8, - 27911 - 11904: 0xCFA7, - 27912 - 11904: 0xCFAA, - 27913 - 11904: 0xCFAC, - 27914 - 11904: 0xCF74, - 27915 - 11904: 0xAC76, - 27916 - 11904: 0xAC7B, - 27917 - 11904: 0xD249, - 27918 - 11904: 0xACAD, - 27919 - 11904: 0xCFA5, - 27920 - 11904: 0xCFAD, - 27921 - 11904: 0xCF7B, - 27922 - 11904: 0xCF73, - 27926 - 11904: 0xD264, - 27927 - 11904: 0xAC7E, - 27928 - 11904: 0xCFA2, - 27929 - 11904: 0xCF78, - 27930 - 11904: 0xCF7A, - 27931 - 11904: 0xACA5, - 27933 - 11904: 0xCF7D, - 27934 - 11904: 0xAC7D, - 27935 - 11904: 0xCF70, - 27936 - 11904: 0xCFA8, - 27938 - 11904: 0xCFAB, - 27940 - 11904: 0x944F, - 27941 - 11904: 0xAC7A, - 27942 - 11904: 0x8DD9, - 27943 - 11904: 0xACA8, - 27944 - 11904: 0xCF6D, - 27945 - 11904: 0xACAA, - 27946 - 11904: 0xAC78, - 27947 - 11904: 0xACAE, - 27948 - 11904: 0xCFA9, - 27949 - 11904: 0xCF6F, - 27950 - 11904: 0xACAB, - 27951 - 11904: 0xD25E, - 27952 - 11904: 0xCD48, - 27953 - 11904: 0xAC7C, - 27954 - 11904: 0xAC77, - 27955 - 11904: 0xCF76, - 27956 - 11904: 0xCF6E, - 27957 - 11904: 0xACAC, - 27958 - 11904: 0xACA4, - 27959 - 11904: 0xCFA3, - 27960 - 11904: 0xACA9, - 27961 - 11904: 0xACA7, - 27962 - 11904: 0xCF79, - 27963 - 11904: 0xACA1, - 27964 - 11904: 0xCF71, - 27965 - 11904: 0xACA2, - 27966 - 11904: 0xACA3, - 27967 - 11904: 0xCF72, - 27968 - 11904: 0xCFA6, - 27969 - 11904: 0xAC79, - 27970 - 11904: 0xCF7E, - 27982 - 11904: 0x896B, - 27991 - 11904: 0x97CE, - 27992 - 11904: 0xD24C, - 27993 - 11904: 0xAEFD, - 27994 - 11904: 0xAF43, - 27995 - 11904: 0xFAF3, - 27996 - 11904: 0xFDAE, - 27998 - 11904: 0xD255, - 27999 - 11904: 0xD25B, - 28000 - 11904: 0xD257, - 28001 - 11904: 0xD24A, - 28002 - 11904: 0xD24D, - 28003 - 11904: 0xD246, - 28004 - 11904: 0xD247, - 28005 - 11904: 0xAF4A, - 28006 - 11904: 0xAEFA, - 28007 - 11904: 0xD256, - 28008 - 11904: 0xD25F, - 28009 - 11904: 0xAF45, - 28010 - 11904: 0xAEF6, - 28012 - 11904: 0xAF40, - 28013 - 11904: 0xD24E, - 28014 - 11904: 0xAF42, - 28015 - 11904: 0xD24F, - 28016 - 11904: 0xD259, - 28017 - 11904: 0xFBAF, - 28018 - 11904: 0x92B7, - 28020 - 11904: 0xAF44, - 28021 - 11904: 0xD268, - 28022 - 11904: 0xD248, - 28023 - 11904: 0xAEFC, - 28024 - 11904: 0xAEFB, - 28025 - 11904: 0xAF48, - 28026 - 11904: 0xD245, - 28027 - 11904: 0xD266, - 28028 - 11904: 0xD25A, - 28029 - 11904: 0xD267, - 28030 - 11904: 0xD261, - 28031 - 11904: 0xD253, - 28032 - 11904: 0xD262, - 28033 - 11904: 0x8DDA, - 28034 - 11904: 0xD25C, - 28035 - 11904: 0xD265, - 28036 - 11904: 0xD263, - 28037 - 11904: 0xAF49, - 28038 - 11904: 0xD254, - 28039 - 11904: 0xAEF9, - 28040 - 11904: 0xAEF8, - 28041 - 11904: 0xAF41, - 28042 - 11904: 0xAF47, - 28043 - 11904: 0xD260, - 28044 - 11904: 0xAF46, - 28045 - 11904: 0xD251, - 28046 - 11904: 0xB243, - 28047 - 11904: 0x9C5A, - 28048 - 11904: 0xD269, - 28049 - 11904: 0xD250, - 28050 - 11904: 0xD24B, - 28051 - 11904: 0xAEFE, - 28052 - 11904: 0xAF4B, - 28053 - 11904: 0xAEF7, - 28054 - 11904: 0xFDAD, - 28055 - 11904: 0xD258, - 28056 - 11904: 0xD25D, - 28068 - 11904: 0x8DDC, - 28069 - 11904: 0x9444, - 28074 - 11904: 0xB265, - 28075 - 11904: 0xD5E1, - 28076 - 11904: 0xD5E5, - 28078 - 11904: 0xB252, - 28079 - 11904: 0xB250, - 28081 - 11904: 0x8DDD, - 28082 - 11904: 0xB247, - 28083 - 11904: 0xD5E3, - 28084 - 11904: 0xD5E2, - 28085 - 11904: 0xB25B, - 28087 - 11904: 0xD5E8, - 28088 - 11904: 0xB255, - 28089 - 11904: 0xA0D6, - 28090 - 11904: 0xD5FA, - 28091 - 11904: 0xD647, - 28092 - 11904: 0xB244, - 28093 - 11904: 0xD5F7, - 28094 - 11904: 0xD5F0, - 28095 - 11904: 0xB267, - 28096 - 11904: 0xD5E0, - 28098 - 11904: 0xD5FC, - 28100 - 11904: 0xB264, - 28101 - 11904: 0xB258, - 28102 - 11904: 0xB263, - 28103 - 11904: 0xB24E, - 28104 - 11904: 0xD5EC, - 28105 - 11904: 0xD5FE, - 28106 - 11904: 0xD5F6, - 28107 - 11904: 0xB24F, - 28108 - 11904: 0xB249, - 28109 - 11904: 0xD645, - 28111 - 11904: 0xD5FD, - 28112 - 11904: 0xD640, - 28113 - 11904: 0xB251, - 28114 - 11904: 0xB259, - 28115 - 11904: 0xD642, - 28116 - 11904: 0xD5EA, - 28117 - 11904: 0xD5FB, - 28118 - 11904: 0xD5EF, - 28119 - 11904: 0xD644, - 28120 - 11904: 0xB25E, - 28121 - 11904: 0xB246, - 28122 - 11904: 0xB25C, - 28123 - 11904: 0xD5F4, - 28124 - 11904: 0xD5F2, - 28125 - 11904: 0xD5F3, - 28126 - 11904: 0xB253, - 28127 - 11904: 0xD5EE, - 28128 - 11904: 0xD5ED, - 28129 - 11904: 0xB248, - 28130 - 11904: 0xD5E7, - 28131 - 11904: 0xD646, - 28132 - 11904: 0xB24A, - 28133 - 11904: 0xD5F1, - 28134 - 11904: 0xB268, - 28136 - 11904: 0xB262, - 28137 - 11904: 0xD5E6, - 28138 - 11904: 0xB25F, - 28139 - 11904: 0xB25D, - 28140 - 11904: 0xB266, - 28141 - 11904: 0xD5F8, - 28142 - 11904: 0xB261, - 28143 - 11904: 0xD252, - 28144 - 11904: 0xD5F9, - 28145 - 11904: 0xB260, - 28146 - 11904: 0xD641, - 28147 - 11904: 0xB245, - 28148 - 11904: 0xD5F5, - 28149 - 11904: 0xB257, - 28150 - 11904: 0xD5E9, - 28151 - 11904: 0xB256, - 28153 - 11904: 0xB254, - 28154 - 11904: 0xB24C, - 28155 - 11904: 0xB24B, - 28156 - 11904: 0xD9E7, - 28157 - 11904: 0xD643, - 28158 - 11904: 0x8C41, - 28160 - 11904: 0xD5EB, - 28162 - 11904: 0x97D5, - 28163 - 11904: 0xD9FC, - 28164 - 11904: 0x944A, - 28165 - 11904: 0xB24D, - 28170 - 11904: 0x944D, - 28175 - 11904: 0x97CB, - 28181 - 11904: 0x8DDE, - 28184 - 11904: 0x8DDF, - 28185 - 11904: 0xB541, - 28186 - 11904: 0xB25A, - 28187 - 11904: 0xB4EE, - 28188 - 11904: 0xD9F6, - 28189 - 11904: 0xFDB8, - 28191 - 11904: 0xD9EA, - 28192 - 11904: 0xB4EB, - 28193 - 11904: 0xB4E7, - 28194 - 11904: 0xDA49, - 28195 - 11904: 0xB4ED, - 28196 - 11904: 0xB4F1, - 28197 - 11904: 0xB4EC, - 28198 - 11904: 0xB4F5, - 28199 - 11904: 0xDA4D, - 28200 - 11904: 0xDA44, - 28201 - 11904: 0x8DE0, - 28202 - 11904: 0xFEF9, - 28203 - 11904: 0xD9F1, - 28204 - 11904: 0xB4FA, - 28205 - 11904: 0xB4F4, - 28206 - 11904: 0xD9FD, - 28207 - 11904: 0xFDBB, - 28208 - 11904: 0xDA4A, - 28209 - 11904: 0xDA43, - 28210 - 11904: 0xB4E8, - 28211 - 11904: 0xD9F7, - 28212 - 11904: 0xB4F7, - 28213 - 11904: 0xDA55, - 28214 - 11904: 0xDA56, - 28216 - 11904: 0xB4E5, - 28217 - 11904: 0xDA48, - 28218 - 11904: 0xB4F9, - 28219 - 11904: 0xD9FB, - 28220 - 11904: 0xD9ED, - 28221 - 11904: 0xD9EE, - 28222 - 11904: 0xB4FD, - 28223 - 11904: 0xD9F2, - 28224 - 11904: 0xD9F9, - 28225 - 11904: 0xD9F3, - 28227 - 11904: 0xB4FB, - 28228 - 11904: 0xB544, - 28229 - 11904: 0xD9EF, - 28230 - 11904: 0xD9E8, - 28231 - 11904: 0xD9E9, - 28233 - 11904: 0xD9EB, - 28234 - 11904: 0xB4EA, - 28235 - 11904: 0xD9F8, - 28237 - 11904: 0xB4F8, - 28238 - 11904: 0xB542, - 28239 - 11904: 0xFDC0, - 28240 - 11904: 0xFCF9, - 28241 - 11904: 0xD9FA, - 28242 - 11904: 0xDA53, - 28243 - 11904: 0xDA4B, - 28244 - 11904: 0xB4E6, - 28245 - 11904: 0xDA51, - 28246 - 11904: 0xB4F2, - 28247 - 11904: 0x8CDD, - 28248 - 11904: 0xB4F0, - 28249 - 11904: 0xFB7E, - 28250 - 11904: 0xDA57, - 28251 - 11904: 0xB4EF, - 28252 - 11904: 0xDA41, - 28253 - 11904: 0xD9F4, - 28254 - 11904: 0xD9FE, - 28255 - 11904: 0xB547, - 28256 - 11904: 0xDA45, - 28257 - 11904: 0xDA42, - 28258 - 11904: 0xD9F0, - 28259 - 11904: 0xB543, - 28260 - 11904: 0xDA4F, - 28261 - 11904: 0xDA4C, - 28262 - 11904: 0xDA54, - 28263 - 11904: 0xB4E9, - 28264 - 11904: 0xDA40, - 28265 - 11904: 0xB546, - 28267 - 11904: 0xDA47, - 28270 - 11904: 0xB4F3, - 28271 - 11904: 0xB4F6, - 28273 - 11904: 0xDA46, - 28274 - 11904: 0xB545, - 28275 - 11904: 0xD9F5, - 28276 - 11904: 0xD5E4, - 28278 - 11904: 0x92B3, - 28279 - 11904: 0xDA50, - 28280 - 11904: 0xDA4E, - 28281 - 11904: 0xDA52, - 28284 - 11904: 0xFDAF, - 28294 - 11904: 0x8DE1, - 28296 - 11904: 0xD9EC, - 28297 - 11904: 0xB540, - 28299 - 11904: 0x95D3, - 28301 - 11904: 0xDE61, - 28302 - 11904: 0xDE60, - 28303 - 11904: 0xDE46, - 28304 - 11904: 0xB7BD, - 28306 - 11904: 0xDE5F, - 28307 - 11904: 0xDE49, - 28308 - 11904: 0xDE4A, - 28310 - 11904: 0xB7C7, - 28311 - 11904: 0xDE68, - 28312 - 11904: 0xB7C2, - 28313 - 11904: 0xDE5E, - 28314 - 11904: 0x89C1, - 28315 - 11904: 0xDE43, - 28316 - 11904: 0xB7C8, - 28317 - 11904: 0xB7BE, - 28318 - 11904: 0xDE52, - 28319 - 11904: 0xDE48, - 28320 - 11904: 0xDE4B, - 28321 - 11904: 0xDE63, - 28322 - 11904: 0xB7B8, - 28323 - 11904: 0xDE6A, - 28324 - 11904: 0xDE62, - 28325 - 11904: 0xB7C1, - 28326 - 11904: 0xDE57, - 28327 - 11904: 0xB7CC, - 28330 - 11904: 0xB7CB, - 28331 - 11904: 0xB7C5, - 28334 - 11904: 0xDE69, - 28335 - 11904: 0xB7B9, - 28336 - 11904: 0xDE55, - 28337 - 11904: 0xDE4C, - 28338 - 11904: 0xDE59, - 28339 - 11904: 0xDE65, - 28340 - 11904: 0xB7CD, - 28341 - 11904: 0xFD68, - 28342 - 11904: 0xB7BB, - 28343 - 11904: 0xDE54, - 28344 - 11904: 0x9CB7, - 28345 - 11904: 0xDE4D, - 28346 - 11904: 0xB7C4, - 28347 - 11904: 0x8DE3, - 28348 - 11904: 0xB7C3, - 28349 - 11904: 0xDE50, - 28350 - 11904: 0xDE5A, - 28351 - 11904: 0xDE64, - 28352 - 11904: 0xDE47, - 28353 - 11904: 0xDE51, - 28354 - 11904: 0xB7BC, - 28355 - 11904: 0xDE5B, - 28356 - 11904: 0xB7C9, - 28357 - 11904: 0xB7C0, - 28358 - 11904: 0xDE4E, - 28359 - 11904: 0xB7BF, - 28360 - 11904: 0xDE45, - 28361 - 11904: 0xDE53, - 28362 - 11904: 0xDE67, - 28363 - 11904: 0xB4FE, - 28364 - 11904: 0xBAB0, - 28365 - 11904: 0xDE56, - 28366 - 11904: 0xE26C, - 28367 - 11904: 0xDE58, - 28368 - 11904: 0xDE66, - 28369 - 11904: 0xB7C6, - 28370 - 11904: 0xDE4F, - 28371 - 11904: 0xB7BA, - 28372 - 11904: 0xB7CA, - 28373 - 11904: 0xBCF0, - 28374 - 11904: 0xDE44, - 28376 - 11904: 0xDE5D, - 28377 - 11904: 0xFAC0, - 28378 - 11904: 0x8DE5, - 28379 - 11904: 0xFA64, - 28380 - 11904: 0xDE5C, - 28381 - 11904: 0x8947, - 28386 - 11904: 0x8DE4, - 28392 - 11904: 0x8DE7, - 28393 - 11904: 0x8DE8, - 28395 - 11904: 0xE2AA, - 28396 - 11904: 0xBAAD, - 28397 - 11904: 0xE27D, - 28398 - 11904: 0xE2A4, - 28399 - 11904: 0xBAA2, - 28401 - 11904: 0xE26E, - 28402 - 11904: 0xBAAF, - 28404 - 11904: 0xBA77, - 28405 - 11904: 0xE26D, - 28406 - 11904: 0xE2B0, - 28407 - 11904: 0xBAB1, - 28408 - 11904: 0xE271, - 28409 - 11904: 0xE2A3, - 28410 - 11904: 0xFDC7, - 28411 - 11904: 0xE273, - 28412 - 11904: 0xE2B3, - 28413 - 11904: 0xE2AF, - 28414 - 11904: 0xBA75, - 28415 - 11904: 0xBAA1, - 28416 - 11904: 0xE653, - 28417 - 11904: 0xBAAE, - 28418 - 11904: 0xBA7D, - 28419 - 11904: 0xE26F, - 28420 - 11904: 0xFDB0, - 28421 - 11904: 0xE2AE, - 28422 - 11904: 0xBAA3, - 28423 - 11904: 0xE2AB, - 28424 - 11904: 0xE2B8, - 28425 - 11904: 0xE275, - 28426 - 11904: 0xE27E, - 28427 - 11904: 0x9445, - 28428 - 11904: 0x97D6, - 28429 - 11904: 0xE2B6, - 28430 - 11904: 0xE2AC, - 28431 - 11904: 0xBA7C, - 28434 - 11904: 0xE27C, - 28435 - 11904: 0xBA76, - 28436 - 11904: 0xBA74, - 28437 - 11904: 0xBAA8, - 28438 - 11904: 0xFCC6, - 28439 - 11904: 0x9844, - 28440 - 11904: 0xE27A, - 28441 - 11904: 0xE277, - 28442 - 11904: 0xE278, - 28444 - 11904: 0xE2B2, - 28446 - 11904: 0xE2B7, - 28447 - 11904: 0xE2B5, - 28448 - 11904: 0xBA7A, - 28449 - 11904: 0xE2B9, - 28450 - 11904: 0xBA7E, - 28451 - 11904: 0xBAA7, - 28452 - 11904: 0x8DE9, - 28453 - 11904: 0xE270, - 28454 - 11904: 0xE5FA, - 28455 - 11904: 0xE279, - 28457 - 11904: 0xBA78, - 28458 - 11904: 0xBAAC, - 28459 - 11904: 0xBAA9, - 28460 - 11904: 0xBA7B, - 28461 - 11904: 0xE2A5, - 28462 - 11904: 0xE274, - 28463 - 11904: 0xBAAA, - 28464 - 11904: 0xE2A7, - 28465 - 11904: 0xBAA4, - 28466 - 11904: 0xBAA6, - 28467 - 11904: 0xBA73, - 28468 - 11904: 0x8DEA, - 28469 - 11904: 0xE2A9, - 28470 - 11904: 0xE2A1, - 28471 - 11904: 0xE272, - 28472 - 11904: 0xBAA5, - 28473 - 11904: 0xE2B1, - 28474 - 11904: 0xE2B4, - 28475 - 11904: 0xE27B, - 28476 - 11904: 0xE2A8, - 28477 - 11904: 0xFE50, - 28478 - 11904: 0xBA79, - 28479 - 11904: 0xBCDF, - 28480 - 11904: 0xE2A6, - 28481 - 11904: 0xE5F9, - 28483 - 11904: 0xE2AD, - 28484 - 11904: 0xFDCC, - 28494 - 11904: 0xE276, - 28495 - 11904: 0xE644, - 28496 - 11904: 0xE64E, - 28497 - 11904: 0xBCE2, - 28498 - 11904: 0xE64D, - 28499 - 11904: 0xE659, - 28500 - 11904: 0xBCE4, - 28501 - 11904: 0xE64B, - 28502 - 11904: 0x9DA7, - 28503 - 11904: 0xE64F, - 28504 - 11904: 0xBCEF, - 28506 - 11904: 0xE646, - 28507 - 11904: 0xBCE7, - 28508 - 11904: 0xFDCD, - 28509 - 11904: 0xE652, - 28510 - 11904: 0xE9F0, - 28511 - 11904: 0xBCF3, - 28512 - 11904: 0xBCF2, - 28513 - 11904: 0xE654, - 28514 - 11904: 0xE643, - 28515 - 11904: 0xE65E, - 28516 - 11904: 0xBCED, - 28518 - 11904: 0xBCE3, - 28519 - 11904: 0xE657, - 28521 - 11904: 0xE65B, - 28522 - 11904: 0xE660, - 28523 - 11904: 0xE655, - 28524 - 11904: 0xE649, - 28525 - 11904: 0xBCE6, - 28526 - 11904: 0xBCE9, - 28527 - 11904: 0xBCF1, - 28528 - 11904: 0xBCEC, - 28530 - 11904: 0xE64C, - 28531 - 11904: 0xE2A2, - 28532 - 11904: 0xFDCF, - 28534 - 11904: 0xE648, - 28535 - 11904: 0xE65F, - 28536 - 11904: 0xBCE8, - 28537 - 11904: 0x95D2, - 28538 - 11904: 0xBCEB, - 28539 - 11904: 0xE661, - 28540 - 11904: 0xBCE0, - 28541 - 11904: 0xE656, - 28542 - 11904: 0xE5FB, - 28543 - 11904: 0xE65C, - 28544 - 11904: 0xC0DF, - 28545 - 11904: 0x8DED, - 28546 - 11904: 0xE64A, - 28548 - 11904: 0xBCE1, - 28549 - 11904: 0xE645, - 28550 - 11904: 0xBCE5, - 28551 - 11904: 0xE5FC, - 28552 - 11904: 0xBAAB, - 28553 - 11904: 0xE641, - 28554 - 11904: 0xFCBA, - 28555 - 11904: 0xE65A, - 28556 - 11904: 0xE642, - 28557 - 11904: 0xE640, - 28558 - 11904: 0xBCEA, - 28560 - 11904: 0xE658, - 28562 - 11904: 0xE5FE, - 28563 - 11904: 0xE651, - 28564 - 11904: 0xE650, - 28565 - 11904: 0xE65D, - 28566 - 11904: 0xE647, - 28567 - 11904: 0xBCEE, - 28573 - 11904: 0xFDC5, - 28574 - 11904: 0xE9F3, - 28575 - 11904: 0xFDD2, - 28576 - 11904: 0xBF49, - 28577 - 11904: 0xBEFE, - 28578 - 11904: 0xEA40, - 28579 - 11904: 0xE9EB, - 28580 - 11904: 0xBF41, - 28581 - 11904: 0xE9F7, - 28582 - 11904: 0xBF48, - 28583 - 11904: 0xBF43, - 28584 - 11904: 0xE9F5, - 28585 - 11904: 0xED4F, - 28586 - 11904: 0xE9FB, - 28587 - 11904: 0xEA42, - 28588 - 11904: 0xE9FA, - 28589 - 11904: 0xE9E9, - 28590 - 11904: 0xE9F8, - 28591 - 11904: 0xEA44, - 28592 - 11904: 0xEA46, - 28593 - 11904: 0xBEFD, - 28594 - 11904: 0xEA45, - 28595 - 11904: 0xBF44, - 28596 - 11904: 0xBF4A, - 28597 - 11904: 0x9CDC, - 28598 - 11904: 0xBF47, - 28600 - 11904: 0xE9FE, - 28601 - 11904: 0xBF46, - 28602 - 11904: 0xE9F9, - 28603 - 11904: 0x95CF, - 28604 - 11904: 0xE9ED, - 28605 - 11904: 0xE9F2, - 28606 - 11904: 0x8DEE, - 28607 - 11904: 0xE9FD, - 28608 - 11904: 0xBF45, - 28609 - 11904: 0xBF42, - 28610 - 11904: 0xBEFC, - 28611 - 11904: 0xBF40, - 28612 - 11904: 0xE9F1, - 28614 - 11904: 0xE5FD, - 28615 - 11904: 0xE9EC, - 28616 - 11904: 0xE9EF, - 28617 - 11904: 0xEA41, - 28618 - 11904: 0xE9F4, - 28619 - 11904: 0xE9EA, - 28620 - 11904: 0xED4E, - 28621 - 11904: 0xEA43, - 28622 - 11904: 0xE9EE, - 28623 - 11904: 0xE9FC, - 28627 - 11904: 0xFDD4, - 28628 - 11904: 0xED51, - 28629 - 11904: 0xC0E3, - 28632 - 11904: 0xC0D7, - 28633 - 11904: 0x96EC, - 28634 - 11904: 0x96EB, - 28635 - 11904: 0xC0DB, - 28636 - 11904: 0xED53, - 28637 - 11904: 0xED59, - 28638 - 11904: 0xED57, - 28639 - 11904: 0xC0D9, - 28640 - 11904: 0xC0DA, - 28641 - 11904: 0xC0E1, - 28642 - 11904: 0xED5A, - 28643 - 11904: 0xED52, - 28644 - 11904: 0xC0DC, - 28646 - 11904: 0xED56, - 28647 - 11904: 0xED55, - 28648 - 11904: 0xED5B, - 28649 - 11904: 0xC0E2, - 28651 - 11904: 0xC0DD, - 28652 - 11904: 0xC0E0, - 28653 - 11904: 0xED54, - 28654 - 11904: 0xC0E4, - 28655 - 11904: 0xC0DE, - 28656 - 11904: 0xC0E5, - 28657 - 11904: 0xC0D8, - 28658 - 11904: 0xED58, - 28660 - 11904: 0xED50, - 28662 - 11904: 0x90B6, - 28663 - 11904: 0xEFF7, - 28664 - 11904: 0xFDC3, - 28666 - 11904: 0xC271, - 28667 - 11904: 0xEFF4, - 28668 - 11904: 0xEFF6, - 28670 - 11904: 0xC26F, - 28671 - 11904: 0xEFF2, - 28672 - 11904: 0xEFF3, - 28673 - 11904: 0xEFEE, - 28675 - 11904: 0x98AB, - 28676 - 11904: 0xE9F6, - 28677 - 11904: 0xEFEF, - 28678 - 11904: 0xC270, - 28679 - 11904: 0xEFEB, - 28681 - 11904: 0xC26D, - 28682 - 11904: 0xEFF8, - 28683 - 11904: 0xC26E, - 28684 - 11904: 0xEFEC, - 28685 - 11904: 0xEFED, - 28686 - 11904: 0xEFF1, - 28687 - 11904: 0xC273, - 28689 - 11904: 0xC272, - 28692 - 11904: 0xEFF0, - 28693 - 11904: 0xC378, - 28694 - 11904: 0xF25F, - 28695 - 11904: 0xF265, - 28696 - 11904: 0xC379, - 28697 - 11904: 0xF25C, - 28698 - 11904: 0xC376, - 28699 - 11904: 0xC373, - 28700 - 11904: 0xF267, - 28701 - 11904: 0xC377, - 28702 - 11904: 0x96EE, - 28703 - 11904: 0xC374, - 28704 - 11904: 0xF25E, - 28705 - 11904: 0xF261, - 28706 - 11904: 0xF262, - 28707 - 11904: 0xF263, - 28708 - 11904: 0xF266, - 28710 - 11904: 0xEFF5, - 28711 - 11904: 0xF25D, - 28712 - 11904: 0xC375, - 28713 - 11904: 0xF264, - 28714 - 11904: 0xF268, - 28715 - 11904: 0xF260, - 28716 - 11904: 0x8DF4, - 28719 - 11904: 0xF45D, - 28720 - 11904: 0xC46A, - 28721 - 11904: 0xF460, - 28722 - 11904: 0xC46B, - 28723 - 11904: 0xF468, - 28724 - 11904: 0xF45F, - 28725 - 11904: 0xF45C, - 28727 - 11904: 0xF45E, - 28728 - 11904: 0xF462, - 28729 - 11904: 0xF465, - 28730 - 11904: 0xF464, - 28731 - 11904: 0xF467, - 28732 - 11904: 0xF45B, - 28734 - 11904: 0xC469, - 28735 - 11904: 0xF463, - 28736 - 11904: 0xF466, - 28737 - 11904: 0xF469, - 28738 - 11904: 0xF461, - 28739 - 11904: 0xF5D3, - 28740 - 11904: 0xF5D4, - 28741 - 11904: 0xF5D8, - 28742 - 11904: 0xF5D9, - 28744 - 11904: 0xF5D6, - 28745 - 11904: 0xF5D7, - 28746 - 11904: 0xF5D5, - 28747 - 11904: 0xFDE0, - 28748 - 11904: 0xC4E9, - 28749 - 11904: 0x8C67, - 28752 - 11904: 0x8DF6, - 28753 - 11904: 0xC578, - 28754 - 11904: 0xF6EB, - 28756 - 11904: 0x8DF7, - 28757 - 11904: 0xF6E8, - 28758 - 11904: 0xF6E9, - 28759 - 11904: 0xF6EA, - 28760 - 11904: 0xC579, - 28762 - 11904: 0xF7E5, - 28763 - 11904: 0xF7E4, - 28764 - 11904: 0x8FFA, - 28765 - 11904: 0xF8AF, - 28766 - 11904: 0xC5F4, - 28767 - 11904: 0xF8AD, - 28768 - 11904: 0xF8B0, - 28769 - 11904: 0xF8AE, - 28770 - 11904: 0xF8F5, - 28771 - 11904: 0xC657, - 28772 - 11904: 0xC665, - 28773 - 11904: 0xF9A3, - 28774 - 11904: 0xF96C, - 28775 - 11904: 0x97D0, - 28776 - 11904: 0xF9A2, - 28777 - 11904: 0xF9D0, - 28778 - 11904: 0xF9D1, - 28779 - 11904: 0xA4F5, - 28780 - 11904: 0x8BD2, - 28782 - 11904: 0x87DE, - 28783 - 11904: 0x8DF8, - 28784 - 11904: 0xA6C7, - 28785 - 11904: 0xCA41, - 28788 - 11904: 0xCB5E, - 28789 - 11904: 0x90D9, - 28790 - 11904: 0xA85F, - 28791 - 11904: 0x8C47, - 28792 - 11904: 0xA862, - 28793 - 11904: 0xFAF0, - 28794 - 11904: 0xCB5F, - 28796 - 11904: 0xA860, - 28797 - 11904: 0xA861, - 28798 - 11904: 0xFDE1, - 28799 - 11904: 0x8DF9, - 28801 - 11904: 0xFDE3, - 28802 - 11904: 0xCD58, - 28803 - 11904: 0xCD5A, - 28804 - 11904: 0xCD55, - 28805 - 11904: 0xCD52, - 28806 - 11904: 0xCD54, - 28809 - 11904: 0x8DFA, - 28810 - 11904: 0xAAA4, - 28811 - 11904: 0xFB63, - 28814 - 11904: 0xAAA2, - 28815 - 11904: 0x90A6, - 28817 - 11904: 0xCD56, - 28818 - 11904: 0xAAA3, - 28819 - 11904: 0xCD53, - 28820 - 11904: 0xCD50, - 28821 - 11904: 0xAAA1, - 28822 - 11904: 0xCD57, - 28824 - 11904: 0xCD51, - 28825 - 11904: 0xAAA5, - 28826 - 11904: 0xCD59, - 28831 - 11904: 0xCFAF, - 28832 - 11904: 0x9970, - 28833 - 11904: 0xCFB3, - 28835 - 11904: 0x91EB, - 28836 - 11904: 0xACB7, - 28837 - 11904: 0x9770, - 28838 - 11904: 0x986F, - 28839 - 11904: 0xFDE2, - 28841 - 11904: 0xCFB6, - 28843 - 11904: 0xACAF, - 28844 - 11904: 0xACB2, - 28845 - 11904: 0xACB4, - 28846 - 11904: 0xACB6, - 28847 - 11904: 0xACB3, - 28848 - 11904: 0xCFB2, - 28849 - 11904: 0xCFB1, - 28851 - 11904: 0xACB1, - 28852 - 11904: 0xCFB4, - 28853 - 11904: 0xCFB5, - 28855 - 11904: 0xCFAE, - 28856 - 11904: 0xACB5, - 28857 - 11904: 0x98F2, - 28858 - 11904: 0xACB0, - 28859 - 11904: 0x9AFC, - 28860 - 11904: 0x896C, - 28861 - 11904: 0xFDFD, - 28862 - 11904: 0xCFB0, - 28864 - 11904: 0x995E, - 28868 - 11904: 0x95BD, - 28869 - 11904: 0xD277, - 28870 - 11904: 0xD278, - 28871 - 11904: 0xD279, - 28872 - 11904: 0xAF50, - 28874 - 11904: 0xAF4C, - 28875 - 11904: 0xD26E, - 28876 - 11904: 0xFDE4, - 28877 - 11904: 0xD276, - 28878 - 11904: 0xD27B, - 28879 - 11904: 0xAF51, - 28880 - 11904: 0x91E6, - 28881 - 11904: 0xD26C, - 28882 - 11904: 0xD272, - 28883 - 11904: 0xD26B, - 28884 - 11904: 0xD275, - 28885 - 11904: 0xFDE5, - 28886 - 11904: 0xFDE6, - 28887 - 11904: 0xD271, - 28888 - 11904: 0xAF4D, - 28889 - 11904: 0xAF4F, - 28890 - 11904: 0xD27A, - 28892 - 11904: 0xD26A, - 28893 - 11904: 0xD26D, - 28894 - 11904: 0xD273, - 28895 - 11904: 0xFDE7, - 28896 - 11904: 0xD274, - 28897 - 11904: 0xD27C, - 28898 - 11904: 0xD270, - 28900 - 11904: 0xAF4E, - 28911 - 11904: 0xB26D, - 28912 - 11904: 0xD64E, - 28913 - 11904: 0x9454, - 28915 - 11904: 0xD650, - 28916 - 11904: 0xD64C, - 28917 - 11904: 0x99B8, - 28918 - 11904: 0xD658, - 28919 - 11904: 0xD64A, - 28920 - 11904: 0xD657, - 28921 - 11904: 0xB269, - 28922 - 11904: 0xD648, - 28923 - 11904: 0xDA5B, - 28924 - 11904: 0xD652, - 28925 - 11904: 0xB26C, - 28926 - 11904: 0x97E9, - 28927 - 11904: 0xD653, - 28928 - 11904: 0xD656, - 28930 - 11904: 0xD65A, - 28932 - 11904: 0xD64F, - 28933 - 11904: 0x9346, - 28934 - 11904: 0xD654, - 28937 - 11904: 0xB26A, - 28938 - 11904: 0xB26B, - 28939 - 11904: 0xD659, - 28940 - 11904: 0xD64D, - 28941 - 11904: 0xD649, - 28942 - 11904: 0xD65B, - 28944 - 11904: 0xD651, - 28947 - 11904: 0xD655, - 28951 - 11904: 0xD64B, - 28953 - 11904: 0xB548, - 28954 - 11904: 0xB549, - 28955 - 11904: 0xDA65, - 28956 - 11904: 0xB54F, - 28957 - 11904: 0x9863, - 28958 - 11904: 0xDA59, - 28959 - 11904: 0xDA62, - 28960 - 11904: 0xDA58, - 28961 - 11904: 0xB54C, - 28962 - 11904: 0xDA60, - 28963 - 11904: 0xDA5E, - 28965 - 11904: 0xDA5F, - 28966 - 11904: 0xB54A, - 28968 - 11904: 0xDA63, - 28969 - 11904: 0x95BC, - 28971 - 11904: 0xFDED, - 28972 - 11904: 0xFDF7, - 28974 - 11904: 0xDA5C, - 28975 - 11904: 0xDA5A, - 28976 - 11904: 0xB54B, - 28977 - 11904: 0xDA5D, - 28978 - 11904: 0xDA61, - 28979 - 11904: 0x9870, - 28980 - 11904: 0x96F6, - 28981 - 11904: 0x8EA9, - 28982 - 11904: 0xB54D, - 28986 - 11904: 0xDA64, - 28987 - 11904: 0x9451, - 28990 - 11904: 0x8E43, - 28992 - 11904: 0x8B5A, - 28993 - 11904: 0xDE70, - 28994 - 11904: 0xDE77, - 28995 - 11904: 0xDE79, - 28996 - 11904: 0xDEA1, - 28997 - 11904: 0xFDEE, - 28998 - 11904: 0xB7DA, - 28999 - 11904: 0xDE6B, - 29001 - 11904: 0xB7D2, - 29002 - 11904: 0xFDF0, - 29003 - 11904: 0xDE7A, - 29004 - 11904: 0xB7D7, - 29005 - 11904: 0xDEA2, - 29006 - 11904: 0xB7CE, - 29007 - 11904: 0xFDF4, - 29008 - 11904: 0xDE7D, - 29009 - 11904: 0x9BF5, - 29010 - 11904: 0xDE6D, - 29011 - 11904: 0xDE7E, - 29012 - 11904: 0xDE6C, - 29014 - 11904: 0xB7DC, - 29015 - 11904: 0x8CEE, - 29016 - 11904: 0xDE78, - 29017 - 11904: 0xB7CF, - 29018 - 11904: 0xDEA3, - 29020 - 11904: 0xB7D4, - 29021 - 11904: 0xDE71, - 29022 - 11904: 0xB7D9, - 29023 - 11904: 0xDE7C, - 29024 - 11904: 0xDE6F, - 29025 - 11904: 0xDE76, - 29026 - 11904: 0xDE72, - 29027 - 11904: 0xDE6E, - 29028 - 11904: 0xB7D1, - 29029 - 11904: 0xB7D8, - 29030 - 11904: 0xB7D6, - 29031 - 11904: 0xB7D3, - 29032 - 11904: 0xB7DB, - 29033 - 11904: 0xB7D0, - 29034 - 11904: 0xDE75, - 29035 - 11904: 0x977E, - 29036 - 11904: 0xB7D5, - 29038 - 11904: 0xFDF1, - 29040 - 11904: 0xDE7B, - 29041 - 11904: 0x9BD5, - 29042 - 11904: 0xDE73, - 29043 - 11904: 0x9AC3, - 29045 - 11904: 0x97C8, - 29046 - 11904: 0xA0DB, - 29047 - 11904: 0x91D0, - 29048 - 11904: 0xDE74, - 29050 - 11904: 0x9FE4, - 29051 - 11904: 0xE2C1, - 29052 - 11904: 0x8FDD, - 29053 - 11904: 0xBAB4, - 29054 - 11904: 0x91E9, - 29056 - 11904: 0xE2BD, - 29057 - 11904: 0xE2C3, - 29058 - 11904: 0xE2BF, - 29060 - 11904: 0xBAB6, - 29061 - 11904: 0xE2BE, - 29062 - 11904: 0xE2C2, - 29063 - 11904: 0xE2BA, - 29064 - 11904: 0x98E0, - 29065 - 11904: 0xE2BC, - 29066 - 11904: 0xBAB5, - 29068 - 11904: 0x92CA, - 29070 - 11904: 0x9857, - 29071 - 11904: 0xE2C0, - 29072 - 11904: 0xE2BB, - 29073 - 11904: 0x8C51, - 29074 - 11904: 0xBAB7, - 29076 - 11904: 0xBAB2, - 29078 - 11904: 0xFDEB, - 29079 - 11904: 0xE2C4, - 29080 - 11904: 0x9B49, - 29081 - 11904: 0xBAB3, - 29082 - 11904: 0xE667, - 29083 - 11904: 0xE664, - 29084 - 11904: 0xE670, - 29085 - 11904: 0xE66A, - 29086 - 11904: 0xE66C, - 29087 - 11904: 0xBCF4, - 29088 - 11904: 0xE666, - 29089 - 11904: 0xE66E, - 29090 - 11904: 0x9D76, - 29091 - 11904: 0x9EAF, - 29092 - 11904: 0xE66D, - 29093 - 11904: 0xE66B, - 29095 - 11904: 0xE671, - 29096 - 11904: 0xBCF7, - 29097 - 11904: 0xE668, - 29098 - 11904: 0xE66F, - 29100 - 11904: 0xBCF5, - 29101 - 11904: 0x9CCC, - 29103 - 11904: 0xE663, - 29104 - 11904: 0xE665, - 29105 - 11904: 0xBCF6, - 29106 - 11904: 0xE662, - 29107 - 11904: 0xE672, - 29108 - 11904: 0xFDEA, - 29109 - 11904: 0xE669, - 29111 - 11904: 0x8DF1, - 29112 - 11904: 0xEA4A, - 29113 - 11904: 0xBF51, - 29114 - 11904: 0xFDFB, - 29116 - 11904: 0xEA55, - 29117 - 11904: 0xEA53, - 29118 - 11904: 0xBF4B, - 29119 - 11904: 0xEA49, - 29120 - 11904: 0xEA4C, - 29121 - 11904: 0xEA4D, - 29122 - 11904: 0xEA48, - 29123 - 11904: 0xBF55, - 29124 - 11904: 0xBF56, - 29125 - 11904: 0xEA47, - 29126 - 11904: 0xEA56, - 29127 - 11904: 0xEA51, - 29128 - 11904: 0xBF4F, - 29129 - 11904: 0xBF4C, - 29130 - 11904: 0xEA50, - 29131 - 11904: 0xEA4E, - 29134 - 11904: 0xBF52, - 29135 - 11904: 0xEA52, - 29136 - 11904: 0xBF4D, - 29137 - 11904: 0x8E53, - 29138 - 11904: 0xBF4E, - 29140 - 11904: 0xEA4F, - 29141 - 11904: 0xBF50, - 29142 - 11904: 0xEA4B, - 29144 - 11904: 0xEA54, - 29145 - 11904: 0xBF53, - 29146 - 11904: 0xEA57, - 29147 - 11904: 0xEA58, - 29148 - 11904: 0xBF54, - 29149 - 11904: 0xFACF, - 29151 - 11904: 0xC0E7, - 29152 - 11904: 0xC0EE, - 29153 - 11904: 0xED5C, - 29154 - 11904: 0xED62, - 29156 - 11904: 0xED60, - 29157 - 11904: 0xC0EA, - 29158 - 11904: 0xC0E9, - 29159 - 11904: 0xC0E6, - 29160 - 11904: 0xED5E, - 29163 - 11904: 0x96F9, - 29164 - 11904: 0xC0EC, - 29165 - 11904: 0xC0EB, - 29166 - 11904: 0xC0E8, - 29168 - 11904: 0xED61, - 29169 - 11904: 0xED5D, - 29170 - 11904: 0xED5F, - 29172 - 11904: 0xC0ED, - 29173 - 11904: 0x98BF, - 29174 - 11904: 0x9E49, - 29176 - 11904: 0xC277, - 29177 - 11904: 0xEFFB, - 29179 - 11904: 0xC274, - 29180 - 11904: 0xC275, - 29181 - 11904: 0xEFFD, - 29182 - 11904: 0xC276, - 29183 - 11904: 0xEFFA, - 29184 - 11904: 0x8CA7, - 29185 - 11904: 0xEFF9, - 29186 - 11904: 0xF26C, - 29187 - 11904: 0xEFFC, - 29189 - 11904: 0xF26D, - 29190 - 11904: 0xC37A, - 29191 - 11904: 0xF26B, - 29193 - 11904: 0x9BCA, - 29194 - 11904: 0xF26A, - 29196 - 11904: 0xF269, - 29197 - 11904: 0xC37B, - 29198 - 11904: 0xFDFE, - 29199 - 11904: 0x92DC, - 29200 - 11904: 0xC46C, - 29203 - 11904: 0xF46A, - 29204 - 11904: 0xF46B, - 29205 - 11904: 0xFE41, - 29206 - 11904: 0x91CC, - 29207 - 11904: 0x91E2, - 29209 - 11904: 0xF5DC, - 29210 - 11904: 0xF5DB, - 29211 - 11904: 0xC4EA, - 29213 - 11904: 0xF5DA, - 29214 - 11904: 0xF6EC, - 29215 - 11904: 0xF6ED, - 29218 - 11904: 0xF7E6, - 29219 - 11904: 0xF8B1, - 29220 - 11904: 0xFE44, - 29221 - 11904: 0x875F, - 29222 - 11904: 0xF8F6, - 29223 - 11904: 0xF9BC, - 29224 - 11904: 0xC679, - 29225 - 11904: 0xF9C6, - 29226 - 11904: 0xA4F6, - 29227 - 11904: 0x8BD3, - 29228 - 11904: 0xAAA6, - 29229 - 11904: 0xAAA7, - 29230 - 11904: 0xFE47, - 29232 - 11904: 0xACB8, - 29237 - 11904: 0xC0EF, - 29238 - 11904: 0xA4F7, - 29240 - 11904: 0xAAA8, - 29241 - 11904: 0xAF52, - 29242 - 11904: 0xB7DD, - 29243 - 11904: 0xA4F8, - 29245 - 11904: 0xB26E, - 29246 - 11904: 0xBAB8, - 29247 - 11904: 0xC962, - 29248 - 11904: 0xFE48, - 29249 - 11904: 0xCFB7, - 29250 - 11904: 0xD27D, - 29252 - 11904: 0xE2C5, - 29254 - 11904: 0xC0F0, - 29255 - 11904: 0xA4F9, - 29256 - 11904: 0xAAA9, - 29257 - 11904: 0xCFB8, - 29258 - 11904: 0xCFB9, - 29259 - 11904: 0xDA66, - 29260 - 11904: 0xB550, - 29263 - 11904: 0xDEA4, - 29264 - 11904: 0xA0E4, - 29266 - 11904: 0xB7DE, - 29267 - 11904: 0xE2C6, - 29269 - 11904: 0xFE4B, - 29270 - 11904: 0xBCF8, - 29271 - 11904: 0xFE4C, - 29272 - 11904: 0xC37C, - 29273 - 11904: 0xA4FA, - 29274 - 11904: 0xDA67, - 29275 - 11904: 0xA4FB, - 29276 - 11904: 0x8DBF, - 29277 - 11904: 0xA6C9, - 29278 - 11904: 0xCA42, - 29279 - 11904: 0xA6C8, - 29280 - 11904: 0xA865, - 29281 - 11904: 0xA864, - 29282 - 11904: 0xA863, - 29283 - 11904: 0xCB60, - 29286 - 11904: 0x9E78, - 29287 - 11904: 0xAAAA, - 29289 - 11904: 0xAAAB, - 29290 - 11904: 0xCD5B, - 29292 - 11904: 0xCFBA, - 29294 - 11904: 0xCFBD, - 29295 - 11904: 0xACBA, - 29296 - 11904: 0xCFBB, - 29298 - 11904: 0xACB9, - 29299 - 11904: 0xCFBC, - 29300 - 11904: 0xACBB, - 29302 - 11904: 0xD2A2, - 29303 - 11904: 0xD2A1, - 29304 - 11904: 0xD27E, - 29305 - 11904: 0xAF53, - 29307 - 11904: 0xD65D, - 29308 - 11904: 0xD65E, - 29309 - 11904: 0xB26F, - 29310 - 11904: 0xD65C, - 29311 - 11904: 0xD65F, - 29312 - 11904: 0xB552, - 29313 - 11904: 0xB270, - 29314 - 11904: 0xFE51, - 29316 - 11904: 0xB551, - 29317 - 11904: 0xDA6B, - 29318 - 11904: 0xDA6A, - 29319 - 11904: 0x9456, - 29320 - 11904: 0xDA68, - 29321 - 11904: 0xDA69, - 29323 - 11904: 0xDA6C, - 29324 - 11904: 0xDEA6, - 29325 - 11904: 0xDEA5, - 29326 - 11904: 0xDEA9, - 29327 - 11904: 0x9D61, - 29328 - 11904: 0xDEA8, - 29329 - 11904: 0xDEA7, - 29330 - 11904: 0xBAB9, - 29331 - 11904: 0xE2C9, - 29332 - 11904: 0x9457, - 29333 - 11904: 0xE2C8, - 29334 - 11904: 0xBABA, - 29335 - 11904: 0xE2C7, - 29336 - 11904: 0xE673, - 29338 - 11904: 0xE674, - 29339 - 11904: 0xBCF9, - 29341 - 11904: 0xEA59, - 29342 - 11904: 0xEA5A, - 29343 - 11904: 0x9966, - 29345 - 11904: 0xF272, - 29346 - 11904: 0xC37D, - 29347 - 11904: 0xF271, - 29348 - 11904: 0xF270, - 29349 - 11904: 0xF26E, - 29350 - 11904: 0xF26F, - 29351 - 11904: 0xC4EB, - 29352 - 11904: 0xF46C, - 29353 - 11904: 0xF6EE, - 29354 - 11904: 0xF8F7, - 29356 - 11904: 0xA4FC, - 29357 - 11904: 0x8BD5, - 29358 - 11904: 0xC9A5, - 29359 - 11904: 0xA5C7, - 29360 - 11904: 0xC9A6, - 29362 - 11904: 0xA069, - 29364 - 11904: 0xCA43, - 29365 - 11904: 0xCA44, - 29370 - 11904: 0xCB66, - 29373 - 11904: 0xCB62, - 29375 - 11904: 0xCB61, - 29376 - 11904: 0xAAAC, - 29377 - 11904: 0xCB65, - 29378 - 11904: 0xA867, - 29379 - 11904: 0xCB63, - 29380 - 11904: 0xA866, - 29381 - 11904: 0xCB67, - 29382 - 11904: 0xCB64, - 29385 - 11904: 0xCD5F, - 29386 - 11904: 0xCFBE, - 29387 - 11904: 0xCD5D, - 29388 - 11904: 0xCD64, - 29389 - 11904: 0x98B4, - 29390 - 11904: 0xAAAD, - 29392 - 11904: 0xAAB0, - 29393 - 11904: 0xCD65, - 29394 - 11904: 0xCD61, - 29396 - 11904: 0xCD62, - 29398 - 11904: 0xCD5C, - 29399 - 11904: 0xAAAF, - 29400 - 11904: 0xCD5E, - 29401 - 11904: 0xAAAE, - 29402 - 11904: 0xCD63, - 29404 - 11904: 0xCD60, - 29407 - 11904: 0xCFC2, - 29408 - 11904: 0xACBD, - 29409 - 11904: 0xACBE, - 29410 - 11904: 0xA049, - 29411 - 11904: 0xCFC5, - 29412 - 11904: 0xCFBF, - 29414 - 11904: 0xCFC4, - 29416 - 11904: 0xCFC0, - 29417 - 11904: 0xACBC, - 29418 - 11904: 0xCFC3, - 29419 - 11904: 0xCFC1, - 29427 - 11904: 0xD2A8, - 29428 - 11904: 0xD2A5, - 29430 - 11904: 0xD2A7, - 29431 - 11904: 0xAF58, - 29432 - 11904: 0xAF57, - 29433 - 11904: 0xAF55, - 29434 - 11904: 0xD2A4, - 29435 - 11904: 0xD2A9, - 29436 - 11904: 0xAF54, - 29437 - 11904: 0xAF56, - 29438 - 11904: 0xD2A6, - 29439 - 11904: 0xD667, - 29440 - 11904: 0xD2A3, - 29441 - 11904: 0xD2AA, - 29442 - 11904: 0xA04C, - 29444 - 11904: 0x9E65, - 29447 - 11904: 0xD662, - 29448 - 11904: 0xD666, - 29450 - 11904: 0xD665, - 29451 - 11904: 0xDA6E, - 29452 - 11904: 0xDA79, - 29455 - 11904: 0xD668, - 29456 - 11904: 0x98B5, - 29457 - 11904: 0xD663, - 29458 - 11904: 0xDA6D, - 29459 - 11904: 0xB274, - 29462 - 11904: 0xB273, - 29463 - 11904: 0xD661, - 29464 - 11904: 0xD664, - 29465 - 11904: 0xB275, - 29467 - 11904: 0xB272, - 29468 - 11904: 0xB271, - 29469 - 11904: 0xD660, - 29470 - 11904: 0xD669, - 29474 - 11904: 0xDA70, - 29475 - 11904: 0xDA77, - 29477 - 11904: 0xB554, - 29478 - 11904: 0xDA76, - 29479 - 11904: 0xDA73, - 29480 - 11904: 0xFE58, - 29481 - 11904: 0xB556, - 29482 - 11904: 0xFE52, - 29483 - 11904: 0xFE53, - 29484 - 11904: 0xA065, - 29485 - 11904: 0xDA75, - 29486 - 11904: 0xFE59, - 29488 - 11904: 0xDA6F, - 29489 - 11904: 0xDA71, - 29490 - 11904: 0xDA74, - 29491 - 11904: 0xDA72, - 29492 - 11904: 0xB555, - 29493 - 11904: 0xDA78, - 29494 - 11904: 0xB553, - 29495 - 11904: 0xB7DF, - 29496 - 11904: 0x98B7, - 29497 - 11904: 0x98B8, - 29498 - 11904: 0xDEAD, - 29499 - 11904: 0xDEAC, - 29500 - 11904: 0xDEAA, - 29502 - 11904: 0xB7E2, - 29503 - 11904: 0xB7E1, - 29504 - 11904: 0xDEAE, - 29505 - 11904: 0x98BA, - 29506 - 11904: 0xDEAB, - 29507 - 11904: 0xE2CA, - 29508 - 11904: 0xBABB, - 29509 - 11904: 0xB7E0, - 29512 - 11904: 0x98BB, - 29513 - 11904: 0xDEB0, - 29514 - 11904: 0xDEAF, - 29516 - 11904: 0xE2CD, - 29517 - 11904: 0xE2CB, - 29518 - 11904: 0xBCFA, - 29519 - 11904: 0x9FBC, - 29520 - 11904: 0xBABC, - 29521 - 11904: 0xE2CC, - 29522 - 11904: 0xE676, - 29527 - 11904: 0xBCFB, - 29528 - 11904: 0xE675, - 29529 - 11904: 0xE67E, - 29530 - 11904: 0xE67D, - 29531 - 11904: 0xE67B, - 29533 - 11904: 0xE67A, - 29534 - 11904: 0xE677, - 29535 - 11904: 0xE678, - 29536 - 11904: 0xE679, - 29537 - 11904: 0xE67C, - 29538 - 11904: 0xE6A1, - 29541 - 11904: 0xEA5F, - 29542 - 11904: 0xEA5C, - 29543 - 11904: 0xEA5D, - 29544 - 11904: 0xBF57, - 29545 - 11904: 0xEA5B, - 29546 - 11904: 0xEA61, - 29547 - 11904: 0xEA60, - 29548 - 11904: 0xEA5E, - 29550 - 11904: 0xED64, - 29551 - 11904: 0xED65, - 29552 - 11904: 0xC0F1, - 29553 - 11904: 0xA04A, - 29554 - 11904: 0xC0F2, - 29555 - 11904: 0xED63, - 29556 - 11904: 0x9EC7, - 29557 - 11904: 0xC279, - 29558 - 11904: 0xEFFE, - 29559 - 11904: 0xC278, - 29560 - 11904: 0xC37E, - 29562 - 11904: 0xC3A1, - 29563 - 11904: 0xC46D, - 29564 - 11904: 0xF46E, - 29565 - 11904: 0xF46D, - 29566 - 11904: 0xF5DD, - 29567 - 11904: 0xF6EF, - 29568 - 11904: 0xC57A, - 29569 - 11904: 0xF7E8, - 29570 - 11904: 0xF7E7, - 29571 - 11904: 0xF7E9, - 29572 - 11904: 0xA5C8, - 29573 - 11904: 0xCFC6, - 29574 - 11904: 0xAF59, - 29575 - 11904: 0xB276, - 29576 - 11904: 0xD66A, - 29577 - 11904: 0xA5C9, - 29578 - 11904: 0xC9A7, - 29579 - 11904: 0xA4FD, - 29580 - 11904: 0x8CA9, - 29582 - 11904: 0xCA45, - 29583 - 11904: 0x98AE, - 29586 - 11904: 0xCB6C, - 29587 - 11904: 0xCB6A, - 29588 - 11904: 0xCB6B, - 29589 - 11904: 0xCB68, - 29590 - 11904: 0xA868, - 29591 - 11904: 0xCB69, - 29592 - 11904: 0x92D6, - 29596 - 11904: 0xFAE1, - 29597 - 11904: 0xCD6D, - 29598 - 11904: 0x91D4, - 29599 - 11904: 0xAAB3, - 29600 - 11904: 0xCD6B, - 29601 - 11904: 0xCD67, - 29602 - 11904: 0xCD6A, - 29604 - 11904: 0xCD66, - 29605 - 11904: 0xAAB5, - 29606 - 11904: 0xCD69, - 29607 - 11904: 0xFADE, - 29608 - 11904: 0xAAB2, - 29609 - 11904: 0xAAB1, - 29610 - 11904: 0xFE5B, - 29611 - 11904: 0xAAB4, - 29612 - 11904: 0xCD6C, - 29613 - 11904: 0xCD68, - 29618 - 11904: 0xACC2, - 29619 - 11904: 0xACC5, - 29620 - 11904: 0xCFCE, - 29621 - 11904: 0xCFCD, - 29622 - 11904: 0xCFCC, - 29623 - 11904: 0xACBF, - 29624 - 11904: 0xCFD5, - 29625 - 11904: 0xCFCB, - 29626 - 11904: 0x8C53, - 29627 - 11904: 0xACC1, - 29628 - 11904: 0xD2AF, - 29630 - 11904: 0xCFD2, - 29631 - 11904: 0xCFD0, - 29632 - 11904: 0xACC4, - 29634 - 11904: 0xCFC8, - 29635 - 11904: 0xCFD3, - 29636 - 11904: 0x87BF, - 29637 - 11904: 0xCFCA, - 29638 - 11904: 0xCFD4, - 29639 - 11904: 0xCFD1, - 29640 - 11904: 0xCFC9, - 29641 - 11904: 0xFE5E, - 29642 - 11904: 0xACC0, - 29643 - 11904: 0xCFD6, - 29644 - 11904: 0xCFC7, - 29645 - 11904: 0xACC3, - 29646 - 11904: 0xFBD7, - 29647 - 11904: 0xFE5A, - 29648 - 11904: 0x94C5, - 29650 - 11904: 0xD2B4, - 29651 - 11904: 0xD2AB, - 29652 - 11904: 0xD2B6, - 29653 - 11904: 0xFACA, - 29654 - 11904: 0xD2AE, - 29655 - 11904: 0xD2B9, - 29656 - 11904: 0xD2BA, - 29657 - 11904: 0xD2AC, - 29658 - 11904: 0xD2B8, - 29659 - 11904: 0xD2B5, - 29660 - 11904: 0xD2B3, - 29661 - 11904: 0xD2B7, - 29662 - 11904: 0xAF5F, - 29664 - 11904: 0xAF5D, - 29665 - 11904: 0x98C1, - 29666 - 11904: 0x975C, - 29667 - 11904: 0xD2B1, - 29668 - 11904: 0xFE74, - 29669 - 11904: 0xD2AD, - 29670 - 11904: 0x9773, - 29671 - 11904: 0xD2B0, - 29672 - 11904: 0xD2BB, - 29673 - 11904: 0xD2B2, - 29674 - 11904: 0xAF5E, - 29675 - 11904: 0xCFCF, - 29677 - 11904: 0xAF5A, - 29678 - 11904: 0xAF5C, - 29679 - 11904: 0xFA46, - 29683 - 11904: 0x9764, - 29684 - 11904: 0xD678, - 29685 - 11904: 0xD66D, - 29686 - 11904: 0xD66B, - 29687 - 11904: 0xFE68, - 29688 - 11904: 0xD66C, - 29689 - 11904: 0x964E, - 29690 - 11904: 0xD673, - 29691 - 11904: 0x9765, - 29692 - 11904: 0xD674, - 29693 - 11904: 0xD670, - 29694 - 11904: 0xB27B, - 29695 - 11904: 0xD675, - 29696 - 11904: 0xD672, - 29697 - 11904: 0xD66F, - 29698 - 11904: 0x8C5A, - 29699 - 11904: 0xB279, - 29700 - 11904: 0xD66E, - 29701 - 11904: 0xB277, - 29702 - 11904: 0xB27A, - 29703 - 11904: 0xD671, - 29704 - 11904: 0xD679, - 29705 - 11904: 0xAF5B, - 29706 - 11904: 0xB278, - 29707 - 11904: 0xD677, - 29708 - 11904: 0xD676, - 29709 - 11904: 0xB27C, - 29713 - 11904: 0x89A1, - 29714 - 11904: 0x95FA, - 29716 - 11904: 0x92D4, - 29717 - 11904: 0xFE69, - 29718 - 11904: 0xDA7E, - 29719 - 11904: 0xFB45, - 29721 - 11904: 0x98C8, - 29722 - 11904: 0xDAA1, - 29723 - 11904: 0xB560, - 29724 - 11904: 0x90EF, - 29725 - 11904: 0xDAA7, - 29726 - 11904: 0x98C9, - 29727 - 11904: 0x98CA, - 29728 - 11904: 0xDAA9, - 29729 - 11904: 0xDAA2, - 29730 - 11904: 0xB55A, - 29731 - 11904: 0xDAA6, - 29732 - 11904: 0xDAA5, - 29733 - 11904: 0xB55B, - 29734 - 11904: 0xB561, - 29736 - 11904: 0xB562, - 29737 - 11904: 0xDAA8, - 29738 - 11904: 0xB558, - 29739 - 11904: 0xDA7D, - 29740 - 11904: 0xDA7B, - 29741 - 11904: 0xDAA3, - 29742 - 11904: 0xDA7A, - 29743 - 11904: 0xB55F, - 29744 - 11904: 0xDA7C, - 29745 - 11904: 0xDAA4, - 29746 - 11904: 0xDAAA, - 29747 - 11904: 0xB559, - 29748 - 11904: 0xB55E, - 29749 - 11904: 0xB55C, - 29750 - 11904: 0xB55D, - 29751 - 11904: 0x946D, - 29752 - 11904: 0x94B7, - 29753 - 11904: 0xFE6C, - 29754 - 11904: 0xB557, - 29756 - 11904: 0x946B, - 29759 - 11904: 0xB7E9, - 29760 - 11904: 0xDEB7, - 29761 - 11904: 0xB7E8, - 29762 - 11904: 0xDEBB, - 29763 - 11904: 0x92FC, - 29764 - 11904: 0xDEB1, - 29765 - 11904: 0x95EB, - 29766 - 11904: 0xDEBC, - 29767 - 11904: 0xFE73, - 29768 - 11904: 0x976E, - 29769 - 11904: 0xFE5F, - 29770 - 11904: 0xDEB2, - 29771 - 11904: 0xDEB3, - 29772 - 11904: 0x87B8, - 29773 - 11904: 0xDEBD, - 29774 - 11904: 0xDEBA, - 29775 - 11904: 0xDEB8, - 29776 - 11904: 0xDEB9, - 29777 - 11904: 0xDEB5, - 29778 - 11904: 0xDEB4, - 29779 - 11904: 0xFDBD, - 29780 - 11904: 0xDEBE, - 29781 - 11904: 0xB7E5, - 29782 - 11904: 0x92D5, - 29783 - 11904: 0xDEB6, - 29785 - 11904: 0xB7EA, - 29786 - 11904: 0xB7E4, - 29787 - 11904: 0xB7EB, - 29788 - 11904: 0xFE6F, - 29789 - 11904: 0xFEB9, - 29790 - 11904: 0xB7E7, - 29791 - 11904: 0xB7E6, - 29792 - 11904: 0xFE71, - 29793 - 11904: 0x8778, - 29794 - 11904: 0xE2CE, - 29795 - 11904: 0xBABE, - 29796 - 11904: 0xBABD, - 29797 - 11904: 0xFBBB, - 29799 - 11904: 0xE2D3, - 29800 - 11904: 0xA0D5, - 29801 - 11904: 0xBCFC, - 29802 - 11904: 0xBABF, - 29803 - 11904: 0x95FB, - 29804 - 11904: 0xFE77, - 29805 - 11904: 0xBAC1, - 29806 - 11904: 0xE2D4, - 29807 - 11904: 0xB7E3, - 29808 - 11904: 0xBAC0, - 29809 - 11904: 0xE2D0, - 29810 - 11904: 0xE2D2, - 29811 - 11904: 0xE2CF, - 29812 - 11904: 0xFE79, - 29813 - 11904: 0xE2D1, - 29814 - 11904: 0xFE75, - 29817 - 11904: 0xE6AB, - 29818 - 11904: 0x945D, - 29820 - 11904: 0xE6AA, - 29821 - 11904: 0xE6A7, - 29822 - 11904: 0xBD40, - 29823 - 11904: 0xEA62, - 29824 - 11904: 0xBD41, - 29825 - 11904: 0xE6A6, - 29826 - 11904: 0xFE7C, - 29827 - 11904: 0xBCFE, - 29829 - 11904: 0xE6A8, - 29830 - 11904: 0xE6A5, - 29831 - 11904: 0xE6A2, - 29832 - 11904: 0xE6A9, - 29833 - 11904: 0xE6A3, - 29834 - 11904: 0xE6A4, - 29835 - 11904: 0xBCFD, - 29836 - 11904: 0x9344, - 29837 - 11904: 0x8EA6, - 29840 - 11904: 0xED69, - 29842 - 11904: 0xEA66, - 29844 - 11904: 0xEA65, - 29845 - 11904: 0xEA67, - 29847 - 11904: 0xED66, - 29848 - 11904: 0xBF5A, - 29849 - 11904: 0x92D3, - 29850 - 11904: 0xEA63, - 29851 - 11904: 0x94B8, - 29852 - 11904: 0xBF58, - 29853 - 11904: 0x8779, - 29854 - 11904: 0xBF5C, - 29855 - 11904: 0xBF5B, - 29856 - 11904: 0xEA64, - 29857 - 11904: 0xEA68, - 29859 - 11904: 0xBF59, - 29860 - 11904: 0xFC71, - 29861 - 11904: 0xED6D, - 29862 - 11904: 0xC0F5, - 29863 - 11904: 0xC27A, - 29864 - 11904: 0xC0F6, - 29865 - 11904: 0xC0F3, - 29866 - 11904: 0xED6A, - 29867 - 11904: 0xED68, - 29869 - 11904: 0xED6B, - 29871 - 11904: 0xED6E, - 29872 - 11904: 0xC0F4, - 29873 - 11904: 0xED6C, - 29874 - 11904: 0xED67, - 29876 - 11904: 0x975E, - 29877 - 11904: 0xF042, - 29878 - 11904: 0xF045, - 29879 - 11904: 0xF275, - 29880 - 11904: 0xF040, - 29881 - 11904: 0x8CAD, - 29882 - 11904: 0xF46F, - 29883 - 11904: 0xF046, - 29885 - 11904: 0xC3A2, - 29886 - 11904: 0xF044, - 29887 - 11904: 0xC27B, - 29888 - 11904: 0xF041, - 29889 - 11904: 0xF043, - 29890 - 11904: 0xF047, - 29891 - 11904: 0xF276, - 29893 - 11904: 0xF274, - 29894 - 11904: 0x87C1, - 29896 - 11904: 0xFEA7, - 29898 - 11904: 0xC3A3, - 29899 - 11904: 0xF273, - 29900 - 11904: 0x946A, - 29903 - 11904: 0xC46E, - 29904 - 11904: 0x93E3, - 29907 - 11904: 0x98CF, - 29908 - 11904: 0xC4ED, - 29909 - 11904: 0xF6F1, - 29910 - 11904: 0xC4EC, - 29911 - 11904: 0xF6F3, - 29912 - 11904: 0xF6F0, - 29913 - 11904: 0xF6F2, - 29914 - 11904: 0xC5D0, - 29915 - 11904: 0xF8B2, - 29916 - 11904: 0xA5CA, - 29917 - 11904: 0xCD6E, - 29918 - 11904: 0xD2BC, - 29919 - 11904: 0xD2BD, - 29920 - 11904: 0xB27D, - 29921 - 11904: 0xDEBF, - 29922 - 11904: 0xBF5D, - 29923 - 11904: 0xC3A4, - 29924 - 11904: 0xC57B, - 29925 - 11904: 0xF8B3, - 29926 - 11904: 0xA5CB, - 29927 - 11904: 0xA0D9, - 29928 - 11904: 0xCD6F, - 29929 - 11904: 0xFEAA, - 29932 - 11904: 0xCFD7, - 29934 - 11904: 0xCFD8, - 29936 - 11904: 0xA0BF, - 29937 - 11904: 0xA04D, - 29938 - 11904: 0xA0B8, - 29940 - 11904: 0xD2BE, - 29941 - 11904: 0xD2BF, - 29942 - 11904: 0xB27E, - 29943 - 11904: 0xB2A1, - 29944 - 11904: 0xA0CE, - 29947 - 11904: 0xDAAB, - 29949 - 11904: 0xDEC2, - 29950 - 11904: 0xDEC1, - 29951 - 11904: 0xDEC0, - 29952 - 11904: 0xE2D5, - 29954 - 11904: 0xE2D6, - 29955 - 11904: 0xE2D7, - 29956 - 11904: 0xBAC2, - 29957 - 11904: 0xA0B7, - 29959 - 11904: 0xE6AD, - 29960 - 11904: 0xE6AC, - 29963 - 11904: 0xEA69, - 29964 - 11904: 0xBF5E, - 29965 - 11904: 0xBF5F, - 29966 - 11904: 0xFEA9, - 29967 - 11904: 0xED72, - 29968 - 11904: 0xED6F, - 29969 - 11904: 0xED70, - 29970 - 11904: 0xED71, - 29971 - 11904: 0xF049, - 29972 - 11904: 0xF048, - 29973 - 11904: 0xC27C, - 29974 - 11904: 0xF277, - 29975 - 11904: 0xF5DE, - 29976 - 11904: 0xA5CC, - 29977 - 11904: 0x89C3, - 29978 - 11904: 0xACC6, - 29980 - 11904: 0xB2A2, - 29981 - 11904: 0xDEC3, - 29982 - 11904: 0xFEAB, - 29983 - 11904: 0xA5CD, - 29985 - 11904: 0xD2C0, - 29986 - 11904: 0xB2A3, - 29989 - 11904: 0xB563, - 29990 - 11904: 0xB564, - 29992 - 11904: 0xA5CE, - 29993 - 11904: 0xA5CF, - 29994 - 11904: 0xCA46, - 29995 - 11904: 0xA86A, - 29996 - 11904: 0xA869, - 29997 - 11904: 0xACC7, - 29998 - 11904: 0xCFD9, - 29999 - 11904: 0xDAAC, - 30000 - 11904: 0xA5D0, - 30001 - 11904: 0xA5D1, - 30002 - 11904: 0xA5D2, - 30003 - 11904: 0xA5D3, - 30004 - 11904: 0x9DF4, - 30005 - 11904: 0x896D, - 30007 - 11904: 0xA86B, - 30008 - 11904: 0xA86C, - 30009 - 11904: 0xCB6E, - 30010 - 11904: 0xCB6D, - 30011 - 11904: 0x9C7B, - 30013 - 11904: 0xAAB6, - 30014 - 11904: 0xCD72, - 30015 - 11904: 0xCD70, - 30016 - 11904: 0xCD71, - 30018 - 11904: 0x98D2, - 30022 - 11904: 0x9FA9, - 30023 - 11904: 0xCFDA, - 30024 - 11904: 0xCFDB, - 30026 - 11904: 0xFEB2, - 30027 - 11904: 0xACCB, - 30028 - 11904: 0xACC9, - 30029 - 11904: 0xFEB1, - 30030 - 11904: 0xACCA, - 30031 - 11904: 0xACC8, - 30033 - 11904: 0x97D9, - 30035 - 11904: 0xA0C4, - 30036 - 11904: 0xAF60, - 30037 - 11904: 0x9476, - 30041 - 11904: 0xAF64, - 30042 - 11904: 0xAF63, - 30043 - 11904: 0xD2C1, - 30044 - 11904: 0xAF62, - 30045 - 11904: 0xAF61, - 30047 - 11904: 0xD2C2, - 30048 - 11904: 0x9978, - 30050 - 11904: 0xB2A6, - 30051 - 11904: 0xD67B, - 30052 - 11904: 0xD67A, - 30053 - 11904: 0xB2A4, - 30054 - 11904: 0xB2A5, - 30055 - 11904: 0xFEB3, - 30058 - 11904: 0xB566, - 30059 - 11904: 0xB565, - 30060 - 11904: 0xDAAE, - 30061 - 11904: 0x98D3, - 30062 - 11904: 0xFEB4, - 30063 - 11904: 0xDAAD, - 30064 - 11904: 0xB2A7, - 30066 - 11904: 0x98D4, - 30070 - 11904: 0xB7ED, - 30071 - 11904: 0xDEC5, - 30072 - 11904: 0xB7EE, - 30073 - 11904: 0xDEC4, - 30074 - 11904: 0x9FB9, - 30077 - 11904: 0xE2D8, - 30078 - 11904: 0xE6AE, - 30079 - 11904: 0xBD42, - 30080 - 11904: 0xEA6A, - 30083 - 11904: 0x9471, - 30084 - 11904: 0xED73, - 30086 - 11904: 0xC3A6, - 30087 - 11904: 0xC3A5, - 30090 - 11904: 0xC57C, - 30091 - 11904: 0xA5D4, - 30092 - 11904: 0xCD73, - 30093 - 11904: 0x98D5, - 30094 - 11904: 0xFEB8, - 30095 - 11904: 0xB2A8, - 30096 - 11904: 0xE2D9, - 30097 - 11904: 0xBAC3, - 30098 - 11904: 0xC6D4, - 30100 - 11904: 0xCB6F, - 30101 - 11904: 0xCB70, - 30104 - 11904: 0xCD74, - 30105 - 11904: 0xAAB8, - 30106 - 11904: 0xAAB9, - 30109 - 11904: 0xAAB7, - 30110 - 11904: 0xFEBA, - 30114 - 11904: 0xACCF, - 30115 - 11904: 0xACD0, - 30116 - 11904: 0xACCD, - 30117 - 11904: 0xACCE, - 30119 - 11904: 0xCFDC, - 30122 - 11904: 0xCFDD, - 30123 - 11904: 0xACCC, - 30128 - 11904: 0xD2C3, - 30129 - 11904: 0x9E5C, - 30130 - 11904: 0xAF68, - 30131 - 11904: 0xAF69, - 30132 - 11904: 0xFEBB, - 30133 - 11904: 0xB2AB, - 30134 - 11904: 0xD2C9, - 30136 - 11904: 0xAF6E, - 30137 - 11904: 0xAF6C, - 30138 - 11904: 0xD2CA, - 30139 - 11904: 0xD2C5, - 30140 - 11904: 0xAF6B, - 30141 - 11904: 0xAF6A, - 30142 - 11904: 0xAF65, - 30143 - 11904: 0xD2C8, - 30144 - 11904: 0xD2C7, - 30145 - 11904: 0xD2C4, - 30146 - 11904: 0xAF6D, - 30147 - 11904: 0xA044, - 30148 - 11904: 0xD2C6, - 30149 - 11904: 0xAF66, - 30151 - 11904: 0xAF67, - 30152 - 11904: 0x98D7, - 30154 - 11904: 0xB2AC, - 30155 - 11904: 0xD6A1, - 30156 - 11904: 0xD6A2, - 30157 - 11904: 0xB2AD, - 30158 - 11904: 0xD67C, - 30159 - 11904: 0xD67E, - 30160 - 11904: 0xD6A4, - 30161 - 11904: 0xD6A3, - 30162 - 11904: 0xD67D, - 30164 - 11904: 0xB2A9, - 30165 - 11904: 0xB2AA, - 30167 - 11904: 0xDAB6, - 30168 - 11904: 0xB56B, - 30169 - 11904: 0xB56A, - 30170 - 11904: 0xDAB0, - 30171 - 11904: 0xB568, - 30172 - 11904: 0x98D8, - 30173 - 11904: 0xDAB3, - 30174 - 11904: 0xB56C, - 30175 - 11904: 0xDAB4, - 30176 - 11904: 0xB56D, - 30177 - 11904: 0xDAB1, - 30178 - 11904: 0xB567, - 30179 - 11904: 0xB569, - 30180 - 11904: 0xDAB5, - 30182 - 11904: 0xDAB2, - 30183 - 11904: 0xDAAF, - 30189 - 11904: 0xDED2, - 30191 - 11904: 0xDEC7, - 30192 - 11904: 0xB7F0, - 30193 - 11904: 0xB7F3, - 30194 - 11904: 0xB7F2, - 30195 - 11904: 0xB7F7, - 30196 - 11904: 0xB7F6, - 30197 - 11904: 0xDED3, - 30198 - 11904: 0xDED1, - 30199 - 11904: 0xDECA, - 30200 - 11904: 0xDECE, - 30201 - 11904: 0xDECD, - 30202 - 11904: 0xB7F4, - 30203 - 11904: 0xDED0, - 30204 - 11904: 0xDECC, - 30205 - 11904: 0xDED4, - 30206 - 11904: 0xDECB, - 30207 - 11904: 0xB7F5, - 30208 - 11904: 0xB7EF, - 30209 - 11904: 0xB7F1, - 30210 - 11904: 0xFEBC, - 30211 - 11904: 0xDEC9, - 30215 - 11904: 0x9FFE, - 30216 - 11904: 0xE2DB, - 30217 - 11904: 0xBAC7, - 30218 - 11904: 0xE2DF, - 30219 - 11904: 0xBAC6, - 30220 - 11904: 0xE2DC, - 30221 - 11904: 0xBAC5, - 30223 - 11904: 0xDEC8, - 30224 - 11904: 0xDECF, - 30225 - 11904: 0xE2DE, - 30227 - 11904: 0xBAC8, - 30228 - 11904: 0xE2E0, - 30229 - 11904: 0xE2DD, - 30230 - 11904: 0xE2DA, - 30233 - 11904: 0xE6B1, - 30234 - 11904: 0xE6B5, - 30235 - 11904: 0xE6B7, - 30236 - 11904: 0xE6B3, - 30237 - 11904: 0xE6B2, - 30238 - 11904: 0xE6B0, - 30239 - 11904: 0xBD45, - 30240 - 11904: 0xBD43, - 30241 - 11904: 0xBD48, - 30242 - 11904: 0xBD49, - 30243 - 11904: 0xE6B4, - 30244 - 11904: 0xBD46, - 30245 - 11904: 0xE6AF, - 30246 - 11904: 0xBD47, - 30247 - 11904: 0xBAC4, - 30248 - 11904: 0xE6B6, - 30249 - 11904: 0xBD44, - 30252 - 11904: 0xFEBD, - 30253 - 11904: 0xEA6C, - 30255 - 11904: 0xEA6B, - 30256 - 11904: 0xEA73, - 30257 - 11904: 0xEA6D, - 30258 - 11904: 0xEA72, - 30259 - 11904: 0xEA6F, - 30260 - 11904: 0xBF60, - 30261 - 11904: 0xEA71, - 30264 - 11904: 0xBF61, - 30266 - 11904: 0xBF62, - 30267 - 11904: 0x9DDD, - 30268 - 11904: 0xEA70, - 30269 - 11904: 0xEA6E, - 30272 - 11904: 0x9EE1, - 30274 - 11904: 0xC0F8, - 30275 - 11904: 0xED74, - 30278 - 11904: 0xC0F7, - 30279 - 11904: 0xED77, - 30280 - 11904: 0xED75, - 30281 - 11904: 0xED76, - 30284 - 11904: 0xC0F9, - 30285 - 11904: 0x98DA, - 30286 - 11904: 0x9DDF, - 30287 - 11904: 0xFEBF, - 30288 - 11904: 0xF04D, - 30289 - 11904: 0xFEBE, - 30290 - 11904: 0xC2A1, - 30291 - 11904: 0xF04E, - 30292 - 11904: 0x9EEB, - 30294 - 11904: 0xC27D, - 30295 - 11904: 0xF04F, - 30296 - 11904: 0xC27E, - 30297 - 11904: 0xF04C, - 30298 - 11904: 0xF050, - 30300 - 11904: 0xF04A, - 30303 - 11904: 0xC3A7, - 30304 - 11904: 0xF278, - 30305 - 11904: 0xC3A8, - 30306 - 11904: 0xC46F, - 30308 - 11904: 0xF04B, - 30309 - 11904: 0xC470, - 30310 - 11904: 0x9E59, - 30311 - 11904: 0xA05C, - 30313 - 11904: 0xC4EE, - 30314 - 11904: 0xF5DF, - 30316 - 11904: 0xC57E, - 30317 - 11904: 0xF6F4, - 30318 - 11904: 0xC57D, - 30319 - 11904: 0xFEC0, - 30320 - 11904: 0xF7EA, - 30321 - 11904: 0xC5F5, - 30322 - 11904: 0xC5F6, - 30323 - 11904: 0x9477, - 30324 - 11904: 0x98DC, - 30325 - 11904: 0xF9CC, - 30326 - 11904: 0xFEC1, - 30328 - 11904: 0xACD1, - 30329 - 11904: 0xCFDE, - 30330 - 11904: 0x98DE, - 30331 - 11904: 0xB56E, - 30332 - 11904: 0xB56F, - 30333 - 11904: 0xA5D5, - 30334 - 11904: 0xA6CA, - 30335 - 11904: 0xCA47, - 30337 - 11904: 0xCB71, - 30338 - 11904: 0xA86D, - 30340 - 11904: 0xAABA, - 30342 - 11904: 0xACD2, - 30343 - 11904: 0xACD3, - 30344 - 11904: 0xACD4, - 30345 - 11904: 0xD6A6, - 30346 - 11904: 0xD2CB, - 30347 - 11904: 0xAF6F, - 30350 - 11904: 0xB2AE, - 30351 - 11904: 0xD6A5, - 30352 - 11904: 0xFEC3, - 30354 - 11904: 0xDAB8, - 30355 - 11904: 0xB571, - 30357 - 11904: 0xDAB7, - 30358 - 11904: 0xB570, - 30361 - 11904: 0xDED5, - 30362 - 11904: 0xBD4A, - 30363 - 11904: 0xE6BB, - 30364 - 11904: 0xE6B8, - 30365 - 11904: 0xE6B9, - 30366 - 11904: 0xE6BA, - 30369 - 11904: 0xFEC8, - 30372 - 11904: 0xED78, - 30373 - 11904: 0xFEC9, - 30374 - 11904: 0xF051, - 30378 - 11904: 0xF471, - 30379 - 11904: 0xF470, - 30381 - 11904: 0xF6F5, - 30382 - 11904: 0xA5D6, - 30383 - 11904: 0xCD75, - 30384 - 11904: 0xAF70, - 30388 - 11904: 0xB572, - 30389 - 11904: 0xDED6, - 30391 - 11904: 0xFECA, - 30392 - 11904: 0xE2E1, - 30394 - 11904: 0xBD4B, - 30395 - 11904: 0xEA74, - 30397 - 11904: 0xF052, - 30398 - 11904: 0xF472, - 30399 - 11904: 0xA5D7, - 30402 - 11904: 0xAABB, - 30403 - 11904: 0xACD7, - 30404 - 11904: 0xCFDF, - 30405 - 11904: 0xACD8, - 30406 - 11904: 0xACD6, - 30408 - 11904: 0xACD5, - 30409 - 11904: 0xD2CC, - 30410 - 11904: 0xAF71, - 30412 - 11904: 0xFECB, - 30413 - 11904: 0xAF72, - 30414 - 11904: 0xAF73, - 30418 - 11904: 0xB2B0, - 30419 - 11904: 0xD6A7, - 30420 - 11904: 0xB2AF, - 30422 - 11904: 0x9FC2, - 30425 - 11904: 0x8C6B, - 30426 - 11904: 0xDAB9, - 30427 - 11904: 0xB2B1, - 30428 - 11904: 0xB573, - 30429 - 11904: 0xDED7, - 30430 - 11904: 0xB7F8, - 30431 - 11904: 0xB7F9, - 30433 - 11904: 0xBAC9, - 30435 - 11904: 0xBACA, - 30436 - 11904: 0xBD4C, - 30437 - 11904: 0xBF64, - 30438 - 11904: 0xEA75, - 30439 - 11904: 0xBF63, - 30441 - 11904: 0xED79, - 30442 - 11904: 0xC0FA, - 30444 - 11904: 0xF053, - 30445 - 11904: 0xF473, - 30446 - 11904: 0xA5D8, - 30447 - 11904: 0xA86E, - 30448 - 11904: 0xCD78, - 30449 - 11904: 0xCD77, - 30450 - 11904: 0xAABC, - 30451 - 11904: 0xCD76, - 30452 - 11904: 0xAABD, - 30453 - 11904: 0xCD79, - 30455 - 11904: 0xCFE5, - 30456 - 11904: 0xACDB, - 30457 - 11904: 0xACDA, - 30458 - 11904: 0xCFE7, - 30459 - 11904: 0xCFE6, - 30460 - 11904: 0xACDF, - 30462 - 11904: 0xACDE, - 30465 - 11904: 0xACD9, - 30467 - 11904: 0xCFE1, - 30468 - 11904: 0xCFE2, - 30469 - 11904: 0xCFE3, - 30471 - 11904: 0xACE0, - 30472 - 11904: 0xCFE0, - 30473 - 11904: 0xACDC, - 30474 - 11904: 0xCFE4, - 30475 - 11904: 0xACDD, - 30476 - 11904: 0x98C4, - 30478 - 11904: 0x94B0, - 30479 - 11904: 0x94B1, - 30480 - 11904: 0xD2CF, - 30481 - 11904: 0xD2D3, - 30482 - 11904: 0xD2D1, - 30483 - 11904: 0xD2D0, - 30485 - 11904: 0xD2D4, - 30489 - 11904: 0xD2D5, - 30490 - 11904: 0xD2D6, - 30491 - 11904: 0xD2CE, - 30493 - 11904: 0xD2CD, - 30494 - 11904: 0xFED1, - 30495 - 11904: 0xAF75, - 30496 - 11904: 0xAF76, - 30498 - 11904: 0xD2D7, - 30499 - 11904: 0xD2D2, - 30500 - 11904: 0xA0C1, - 30501 - 11904: 0xD6B0, - 30502 - 11904: 0xFED2, - 30503 - 11904: 0xD2D8, - 30504 - 11904: 0xAF77, - 30505 - 11904: 0xAF74, - 30507 - 11904: 0xA0CD, - 30509 - 11904: 0xD6AA, - 30511 - 11904: 0xD6A9, - 30513 - 11904: 0xD6AB, - 30514 - 11904: 0xD6AC, - 30515 - 11904: 0xD6AE, - 30516 - 11904: 0xD6AD, - 30517 - 11904: 0xD6B2, - 30518 - 11904: 0xB2B5, - 30519 - 11904: 0xB2B2, - 30520 - 11904: 0xB2B6, - 30521 - 11904: 0xD6A8, - 30522 - 11904: 0xB2B7, - 30523 - 11904: 0xD6B1, - 30524 - 11904: 0xB2B4, - 30525 - 11904: 0xD6AF, - 30526 - 11904: 0xB2B3, - 30528 - 11904: 0xFED3, - 30531 - 11904: 0x98E5, - 30532 - 11904: 0xDABC, - 30533 - 11904: 0xDABE, - 30534 - 11904: 0xDABA, - 30535 - 11904: 0xDABB, - 30538 - 11904: 0xDABF, - 30539 - 11904: 0xDAC1, - 30540 - 11904: 0xDAC2, - 30541 - 11904: 0xDABD, - 30542 - 11904: 0xDAC0, - 30543 - 11904: 0xB574, - 30546 - 11904: 0xDEDB, - 30548 - 11904: 0xDEE0, - 30549 - 11904: 0xDED8, - 30550 - 11904: 0xDEDC, - 30552 - 11904: 0xFED6, - 30553 - 11904: 0xDEE1, - 30554 - 11904: 0xDEDD, - 30555 - 11904: 0xB7FA, - 30556 - 11904: 0xB843, - 30558 - 11904: 0xB7FD, - 30559 - 11904: 0xDED9, - 30560 - 11904: 0xDEDA, - 30561 - 11904: 0xBACE, - 30562 - 11904: 0xB846, - 30563 - 11904: 0xB7FE, - 30565 - 11904: 0xB844, - 30566 - 11904: 0xB7FC, - 30567 - 11904: 0xDEDF, - 30568 - 11904: 0xB845, - 30569 - 11904: 0xDEDE, - 30570 - 11904: 0xB841, - 30571 - 11904: 0xB7FB, - 30572 - 11904: 0xB842, - 30573 - 11904: 0xDEE2, - 30574 - 11904: 0xE2E6, - 30575 - 11904: 0xE2E8, - 30578 - 11904: 0x91E4, - 30583 - 11904: 0x8FC7, - 30584 - 11904: 0x94AE, - 30585 - 11904: 0xB840, - 30586 - 11904: 0x8A4F, - 30587 - 11904: 0x94B2, - 30588 - 11904: 0xE2E3, - 30589 - 11904: 0xBACC, - 30590 - 11904: 0xE2E9, - 30591 - 11904: 0xBACD, - 30592 - 11904: 0xE2E7, - 30593 - 11904: 0xE2E2, - 30594 - 11904: 0xE2E5, - 30595 - 11904: 0xE2EA, - 30596 - 11904: 0xBACB, - 30597 - 11904: 0xE2E4, - 30599 - 11904: 0xBD4E, - 30600 - 11904: 0xE6BF, - 30601 - 11904: 0xE6BE, - 30603 - 11904: 0xBD51, - 30604 - 11904: 0xBD4F, - 30605 - 11904: 0xE6BC, - 30606 - 11904: 0xBD4D, - 30607 - 11904: 0xE6BD, - 30609 - 11904: 0xBD50, - 30611 - 11904: 0x8FD4, - 30613 - 11904: 0xEA7D, - 30615 - 11904: 0xEAA1, - 30616 - 11904: 0x98EA, - 30617 - 11904: 0xEA7E, - 30618 - 11904: 0xEA76, - 30619 - 11904: 0xEA7A, - 30620 - 11904: 0xEA79, - 30621 - 11904: 0xEA77, - 30622 - 11904: 0xBF66, - 30623 - 11904: 0xBF67, - 30624 - 11904: 0xBF65, - 30625 - 11904: 0xEA78, - 30626 - 11904: 0xEA7B, - 30627 - 11904: 0xEA7C, - 30629 - 11904: 0xBF68, - 30631 - 11904: 0xC140, - 30632 - 11904: 0xEDA3, - 30634 - 11904: 0xC0FC, - 30635 - 11904: 0xED7B, - 30636 - 11904: 0xC0FE, - 30637 - 11904: 0xC141, - 30639 - 11904: 0xFED8, - 30640 - 11904: 0xC0FD, - 30641 - 11904: 0xEDA2, - 30642 - 11904: 0xED7C, - 30643 - 11904: 0xC0FB, - 30644 - 11904: 0xEDA1, - 30645 - 11904: 0xED7A, - 30646 - 11904: 0xED7E, - 30647 - 11904: 0xED7D, - 30649 - 11904: 0x9DE0, - 30650 - 11904: 0xF055, - 30651 - 11904: 0xC2A4, - 30652 - 11904: 0xC2A5, - 30653 - 11904: 0xC2A2, - 30654 - 11904: 0x98EE, - 30655 - 11904: 0xC2A3, - 30658 - 11904: 0xF054, - 30659 - 11904: 0x95C4, - 30660 - 11904: 0xF27B, - 30661 - 11904: 0xFCE8, - 30663 - 11904: 0xC3A9, - 30665 - 11904: 0xF279, - 30666 - 11904: 0xF27A, - 30667 - 11904: 0x98EF, - 30668 - 11904: 0xF474, - 30669 - 11904: 0xF477, - 30670 - 11904: 0xF475, - 30671 - 11904: 0xF476, - 30672 - 11904: 0xF5E0, - 30675 - 11904: 0xC4EF, - 30676 - 11904: 0xF7EB, - 30677 - 11904: 0xF8B4, - 30679 - 11904: 0xC5F7, - 30680 - 11904: 0xF8F8, - 30681 - 11904: 0xF8F9, - 30682 - 11904: 0xC666, - 30683 - 11904: 0xA5D9, - 30684 - 11904: 0xACE1, - 30685 - 11904: 0x8C6E, - 30686 - 11904: 0xDAC3, - 30688 - 11904: 0xDEE3, - 30690 - 11904: 0xA5DA, - 30691 - 11904: 0xA86F, - 30693 - 11904: 0xAABE, - 30694 - 11904: 0xFAD8, - 30695 - 11904: 0xCFE8, - 30696 - 11904: 0xCFE9, - 30697 - 11904: 0xAF78, - 30700 - 11904: 0xDAC4, - 30701 - 11904: 0xB575, - 30702 - 11904: 0xB847, - 30703 - 11904: 0xC142, - 30704 - 11904: 0xEDA4, - 30705 - 11904: 0xF27C, - 30706 - 11904: 0xF478, - 30707 - 11904: 0xA5DB, - 30708 - 11904: 0xFEDC, - 30711 - 11904: 0xCDA1, - 30712 - 11904: 0xCD7A, - 30713 - 11904: 0xCD7C, - 30714 - 11904: 0xCD7E, - 30715 - 11904: 0xCD7D, - 30716 - 11904: 0xCD7B, - 30717 - 11904: 0xAABF, - 30718 - 11904: 0xA0AE, - 30722 - 11904: 0xACE2, - 30723 - 11904: 0xCFF2, - 30725 - 11904: 0xCFED, - 30726 - 11904: 0xCFEA, - 30728 - 11904: 0x9D4C, - 30729 - 11904: 0xFEDD, - 30732 - 11904: 0xACE4, - 30733 - 11904: 0xACE5, - 30734 - 11904: 0xCFF0, - 30735 - 11904: 0xCFEF, - 30736 - 11904: 0xCFEE, - 30737 - 11904: 0xCFEB, - 30738 - 11904: 0xCFEC, - 30739 - 11904: 0xCFF3, - 30740 - 11904: 0xACE3, - 30744 - 11904: 0x98F1, - 30748 - 11904: 0x98F3, - 30749 - 11904: 0xAF7C, - 30750 - 11904: 0x94C1, - 30751 - 11904: 0xAFA4, - 30752 - 11904: 0xAFA3, - 30753 - 11904: 0xD2E1, - 30754 - 11904: 0xD2DB, - 30755 - 11904: 0xD2D9, - 30757 - 11904: 0xAFA1, - 30758 - 11904: 0xD6B9, - 30759 - 11904: 0xAF7A, - 30760 - 11904: 0xD2DE, - 30761 - 11904: 0xD2E2, - 30762 - 11904: 0xD2E4, - 30763 - 11904: 0xD2E0, - 30764 - 11904: 0xD2DA, - 30765 - 11904: 0xAFA2, - 30766 - 11904: 0xD2DF, - 30767 - 11904: 0xD2DD, - 30768 - 11904: 0xAF79, - 30769 - 11904: 0xD2E5, - 30770 - 11904: 0xAFA5, - 30771 - 11904: 0xD2E3, - 30772 - 11904: 0xAF7D, - 30773 - 11904: 0xD2DC, - 30775 - 11904: 0xAF7E, - 30776 - 11904: 0xAF7B, - 30777 - 11904: 0x98F5, - 30780 - 11904: 0xFA4F, - 30781 - 11904: 0x96E2, - 30786 - 11904: 0x9450, - 30787 - 11904: 0xB2B9, - 30788 - 11904: 0x96A2, - 30789 - 11904: 0xD6BA, - 30791 - 11904: 0x98F6, - 30792 - 11904: 0xD6B3, - 30793 - 11904: 0xD6B5, - 30794 - 11904: 0xD6B7, - 30795 - 11904: 0x96E5, - 30796 - 11904: 0xD6B8, - 30797 - 11904: 0xD6B6, - 30798 - 11904: 0xB2BA, - 30800 - 11904: 0xD6BB, - 30801 - 11904: 0x98F7, - 30802 - 11904: 0xD6B4, - 30803 - 11904: 0xA046, - 30804 - 11904: 0x96E3, - 30812 - 11904: 0xDAC8, - 30813 - 11904: 0xB576, - 30814 - 11904: 0xDAD0, - 30816 - 11904: 0xDAC5, - 30818 - 11904: 0xDAD1, - 30820 - 11904: 0xDAC6, - 30821 - 11904: 0xDAC7, - 30822 - 11904: 0x98F8, - 30824 - 11904: 0xDACF, - 30825 - 11904: 0xDACE, - 30826 - 11904: 0xDACB, - 30827 - 11904: 0xB2B8, - 30828 - 11904: 0xB577, - 30829 - 11904: 0xDAC9, - 30830 - 11904: 0xDACC, - 30831 - 11904: 0xB578, - 30832 - 11904: 0xDACD, - 30833 - 11904: 0xDACA, - 30841 - 11904: 0xDEEE, - 30842 - 11904: 0x9EE4, - 30843 - 11904: 0xDEF2, - 30844 - 11904: 0xB84E, - 30846 - 11904: 0xE2F0, - 30847 - 11904: 0xB851, - 30848 - 11904: 0xDEF0, - 30849 - 11904: 0xF9D6, - 30851 - 11904: 0xDEED, - 30852 - 11904: 0xDEE8, - 30853 - 11904: 0xDEEA, - 30854 - 11904: 0xDEEB, - 30855 - 11904: 0xDEE4, - 30856 - 11904: 0x94C3, - 30857 - 11904: 0xB84D, - 30860 - 11904: 0xB84C, - 30861 - 11904: 0x94C2, - 30862 - 11904: 0xB848, - 30863 - 11904: 0xDEE7, - 30865 - 11904: 0xB84F, - 30867 - 11904: 0xB850, - 30868 - 11904: 0xDEE6, - 30869 - 11904: 0xDEE9, - 30870 - 11904: 0xDEF1, - 30871 - 11904: 0xB84A, - 30872 - 11904: 0xB84B, - 30873 - 11904: 0xDEEF, - 30874 - 11904: 0xDEE5, - 30878 - 11904: 0xE2F2, - 30879 - 11904: 0xBAD0, - 30880 - 11904: 0xE2F4, - 30881 - 11904: 0xDEEC, - 30882 - 11904: 0xE2F6, - 30883 - 11904: 0xBAD4, - 30884 - 11904: 0xE2F7, - 30885 - 11904: 0xE2F3, - 30887 - 11904: 0xBAD1, - 30888 - 11904: 0xE2EF, - 30889 - 11904: 0xBAD3, - 30890 - 11904: 0xE2EC, - 30891 - 11904: 0xE2F1, - 30892 - 11904: 0xE2F5, - 30893 - 11904: 0xE2EE, - 30895 - 11904: 0xFEE1, - 30896 - 11904: 0xB849, - 30897 - 11904: 0xFEE9, - 30898 - 11904: 0xE2EB, - 30899 - 11904: 0xBAD2, - 30900 - 11904: 0xE2ED, - 30902 - 11904: 0x96E4, - 30904 - 11904: 0x89AC, - 30905 - 11904: 0x96DB, - 30906 - 11904: 0xBD54, - 30907 - 11904: 0xE6C1, - 30908 - 11904: 0xBD58, - 30910 - 11904: 0xBD56, - 30913 - 11904: 0xBACF, - 30915 - 11904: 0xE6C8, - 30916 - 11904: 0xE6C9, - 30917 - 11904: 0xBD53, - 30919 - 11904: 0xFEE2, - 30920 - 11904: 0xE6C7, - 30921 - 11904: 0xE6CA, - 30922 - 11904: 0xBD55, - 30923 - 11904: 0xBD52, - 30924 - 11904: 0xE6C3, - 30925 - 11904: 0xE6C0, - 30926 - 11904: 0xE6C5, - 30927 - 11904: 0xE6C2, - 30928 - 11904: 0xBD59, - 30929 - 11904: 0xE6C4, - 30930 - 11904: 0x94C4, - 30931 - 11904: 0xFEE3, - 30932 - 11904: 0xE6C6, - 30933 - 11904: 0xBD57, - 30935 - 11904: 0xFEE7, - 30936 - 11904: 0x9FFB, - 30938 - 11904: 0xBF6A, - 30939 - 11904: 0xEAA8, - 30941 - 11904: 0xEAA2, - 30942 - 11904: 0xEAA6, - 30943 - 11904: 0xEAAC, - 30944 - 11904: 0xEAAD, - 30945 - 11904: 0xEAA9, - 30946 - 11904: 0xEAAA, - 30947 - 11904: 0xEAA7, - 30948 - 11904: 0x8C59, - 30949 - 11904: 0xEAA4, - 30951 - 11904: 0xBF6C, - 30952 - 11904: 0xBF69, - 30953 - 11904: 0xEAA3, - 30954 - 11904: 0xEAA5, - 30956 - 11904: 0xBF6B, - 30957 - 11904: 0xEAAB, - 30958 - 11904: 0x93C9, - 30959 - 11904: 0xC146, - 30960 - 11904: 0x94E8, - 30961 - 11904: 0xFB56, - 30962 - 11904: 0xEDAA, - 30963 - 11904: 0xEDA5, - 30964 - 11904: 0xC145, - 30965 - 11904: 0x90C5, - 30967 - 11904: 0xC143, - 30969 - 11904: 0xEDAC, - 30970 - 11904: 0xC144, - 30971 - 11904: 0xEDA8, - 30972 - 11904: 0xEDA9, - 30973 - 11904: 0xEDA6, - 30974 - 11904: 0xEDAD, - 30975 - 11904: 0xF056, - 30977 - 11904: 0xC147, - 30978 - 11904: 0xEDA7, - 30980 - 11904: 0xEDAE, - 30981 - 11904: 0xEDAB, - 30982 - 11904: 0xA0A8, - 30985 - 11904: 0xF05A, - 30988 - 11904: 0xF057, - 30990 - 11904: 0xC2A6, - 30992 - 11904: 0xF05B, - 30993 - 11904: 0xF05D, - 30994 - 11904: 0xF05C, - 30995 - 11904: 0xF058, - 30996 - 11904: 0xF059, - 30999 - 11904: 0xF2A3, - 31001 - 11904: 0xC3AA, - 31003 - 11904: 0xF27E, - 31004 - 11904: 0xF2A2, - 31005 - 11904: 0xF27D, - 31006 - 11904: 0xF2A4, - 31009 - 11904: 0xF2A1, - 31011 - 11904: 0xF47A, - 31012 - 11904: 0xF47D, - 31013 - 11904: 0xF479, - 31014 - 11904: 0xC471, - 31015 - 11904: 0xF47B, - 31016 - 11904: 0xF47C, - 31017 - 11904: 0xF47E, - 31018 - 11904: 0xC472, - 31019 - 11904: 0xC474, - 31020 - 11904: 0xC473, - 31021 - 11904: 0xF5E1, - 31022 - 11904: 0xFEE5, - 31023 - 11904: 0xF5E3, - 31025 - 11904: 0xF5E2, - 31026 - 11904: 0x98FD, - 31027 - 11904: 0x98FB, - 31028 - 11904: 0xFEE8, - 31029 - 11904: 0xF6F6, - 31030 - 11904: 0x8EBF, - 31032 - 11904: 0xF8B5, - 31033 - 11904: 0xF8FA, - 31034 - 11904: 0xA5DC, - 31035 - 11904: 0x8BD8, - 31036 - 11904: 0xFEF7, - 31037 - 11904: 0xCB72, - 31038 - 11904: 0xAAC0, - 31039 - 11904: 0xCDA3, - 31040 - 11904: 0xAAC1, - 31041 - 11904: 0xAAC2, - 31042 - 11904: 0xCDA2, - 31044 - 11904: 0xCFF8, - 31045 - 11904: 0xCFF7, - 31046 - 11904: 0xACE6, - 31047 - 11904: 0xACE9, - 31048 - 11904: 0xACE8, - 31049 - 11904: 0xACE7, - 31050 - 11904: 0xCFF4, - 31051 - 11904: 0xCFF6, - 31052 - 11904: 0xCFF5, - 31055 - 11904: 0xD2E8, - 31056 - 11904: 0xAFA7, - 31057 - 11904: 0xD2EC, - 31058 - 11904: 0xD2EB, - 31059 - 11904: 0xD2EA, - 31060 - 11904: 0xD2E6, - 31061 - 11904: 0xAFA6, - 31062 - 11904: 0xAFAA, - 31063 - 11904: 0xAFAD, - 31064 - 11904: 0x8F68, - 31065 - 11904: 0x94C6, - 31066 - 11904: 0xAFAE, - 31067 - 11904: 0xD2E7, - 31068 - 11904: 0xD2E9, - 31069 - 11904: 0xAFAC, - 31070 - 11904: 0xAFAB, - 31071 - 11904: 0xAFA9, - 31072 - 11904: 0xAFA8, - 31073 - 11904: 0xD6C2, - 31074 - 11904: 0x9DEA, - 31075 - 11904: 0xD6C0, - 31076 - 11904: 0xD6BC, - 31077 - 11904: 0xB2BB, - 31079 - 11904: 0xD6BD, - 31080 - 11904: 0xB2BC, - 31081 - 11904: 0xD6BE, - 31082 - 11904: 0xD6BF, - 31083 - 11904: 0xD6C1, - 31085 - 11904: 0xB2BD, - 31088 - 11904: 0xDAD5, - 31089 - 11904: 0xFC69, - 31090 - 11904: 0xDAD4, - 31091 - 11904: 0xDAD3, - 31092 - 11904: 0xDAD2, - 31097 - 11904: 0xDEF6, - 31098 - 11904: 0xB852, - 31100 - 11904: 0xDEF3, - 31101 - 11904: 0xDEF5, - 31102 - 11904: 0x9CDA, - 31103 - 11904: 0xB853, - 31104 - 11904: 0xFEF3, - 31105 - 11904: 0xB854, - 31106 - 11904: 0xDEF4, - 31107 - 11904: 0x9C72, - 31110 - 11904: 0xFEF0, - 31111 - 11904: 0x89C9, - 31112 - 11904: 0xE341, - 31114 - 11904: 0xE2F9, - 31115 - 11904: 0xE2FA, - 31117 - 11904: 0xBAD7, - 31118 - 11904: 0xBAD5, - 31119 - 11904: 0xBAD6, - 31120 - 11904: 0xE343, - 31121 - 11904: 0x9941, - 31122 - 11904: 0xE342, - 31123 - 11904: 0xE2FE, - 31124 - 11904: 0xE2FD, - 31125 - 11904: 0xE2FC, - 31126 - 11904: 0xE2FB, - 31127 - 11904: 0xE340, - 31128 - 11904: 0xE2F8, - 31129 - 11904: 0x9942, - 31130 - 11904: 0xE6CB, - 31131 - 11904: 0xE6D0, - 31132 - 11904: 0xE6CE, - 31133 - 11904: 0xFEF5, - 31135 - 11904: 0x91D7, - 31136 - 11904: 0xE6CD, - 31137 - 11904: 0xE6CC, - 31138 - 11904: 0xE6CF, - 31140 - 11904: 0xEAAE, - 31141 - 11904: 0x94CC, - 31142 - 11904: 0xBF6D, - 31143 - 11904: 0xC148, - 31144 - 11904: 0xEDB0, - 31145 - 11904: 0xFEF8, - 31146 - 11904: 0xC149, - 31147 - 11904: 0xEDAF, - 31148 - 11904: 0xF05F, - 31149 - 11904: 0xF05E, - 31150 - 11904: 0xC2A7, - 31152 - 11904: 0xF2A5, - 31153 - 11904: 0xC3AB, - 31154 - 11904: 0xF4A1, - 31155 - 11904: 0xC5A1, - 31156 - 11904: 0xF6F7, - 31158 - 11904: 0xF8B7, - 31159 - 11904: 0xF8B6, - 31160 - 11904: 0xC9A8, - 31161 - 11904: 0xACEA, - 31162 - 11904: 0xACEB, - 31163 - 11904: 0xD6C3, - 31165 - 11904: 0xB856, - 31166 - 11904: 0xA5DD, - 31167 - 11904: 0xA872, - 31168 - 11904: 0xA871, - 31169 - 11904: 0xA870, - 31172 - 11904: 0x97A8, - 31173 - 11904: 0xCDA4, - 31174 - 11904: 0xFEFC, - 31176 - 11904: 0xAAC4, - 31177 - 11904: 0xAAC3, - 31178 - 11904: 0x8CDE, - 31179 - 11904: 0xACEE, - 31180 - 11904: 0xFDBF, - 31181 - 11904: 0xCFFA, - 31182 - 11904: 0xCFFD, - 31183 - 11904: 0xCFFB, - 31184 - 11904: 0x87B3, - 31185 - 11904: 0xACEC, - 31186 - 11904: 0xACED, - 31188 - 11904: 0xFEFE, - 31189 - 11904: 0xCFF9, - 31190 - 11904: 0xCFFC, - 31192 - 11904: 0xAFB5, - 31196 - 11904: 0xD2F3, - 31197 - 11904: 0xD2F5, - 31198 - 11904: 0xD2F4, - 31199 - 11904: 0xAFB2, - 31200 - 11904: 0xD2EF, - 31202 - 11904: 0x96D1, - 31203 - 11904: 0xAFB0, - 31204 - 11904: 0xAFAF, - 31206 - 11904: 0xAFB3, - 31207 - 11904: 0xAFB1, - 31209 - 11904: 0xAFB4, - 31210 - 11904: 0xD2F2, - 31211 - 11904: 0xD2ED, - 31212 - 11904: 0xD2EE, - 31213 - 11904: 0xD2F1, - 31214 - 11904: 0xD2F0, - 31217 - 11904: 0x94D5, - 31220 - 11904: 0x94D0, - 31222 - 11904: 0xD6C6, - 31223 - 11904: 0xD6C7, - 31224 - 11904: 0xD6C5, - 31226 - 11904: 0xD6C4, - 31227 - 11904: 0xB2BE, - 31232 - 11904: 0xB57D, - 31234 - 11904: 0xDAD6, - 31235 - 11904: 0xDAD8, - 31236 - 11904: 0xDADA, - 31237 - 11904: 0xB57C, - 31238 - 11904: 0x9944, - 31240 - 11904: 0xB57A, - 31242 - 11904: 0xDAD7, - 31243 - 11904: 0xB57B, - 31244 - 11904: 0xDAD9, - 31245 - 11904: 0xB579, - 31248 - 11904: 0xDF41, - 31249 - 11904: 0xDEF7, - 31250 - 11904: 0xDEFA, - 31251 - 11904: 0xDEFE, - 31252 - 11904: 0xB85A, - 31253 - 11904: 0xDEFC, - 31255 - 11904: 0xDEFB, - 31256 - 11904: 0xDEF8, - 31257 - 11904: 0xDEF9, - 31258 - 11904: 0xB858, - 31259 - 11904: 0xDF40, - 31260 - 11904: 0xB857, - 31262 - 11904: 0xB85C, - 31263 - 11904: 0xB85B, - 31264 - 11904: 0xB859, - 31266 - 11904: 0xDEFD, - 31270 - 11904: 0xE349, - 31272 - 11904: 0xE348, - 31274 - 11904: 0x8C63, - 31275 - 11904: 0xE344, - 31276 - 11904: 0x87BB, - 31277 - 11904: 0xA0B3, - 31278 - 11904: 0xBAD8, - 31279 - 11904: 0xE347, - 31280 - 11904: 0xE346, - 31281 - 11904: 0xBAD9, - 31282 - 11904: 0x87B4, - 31287 - 11904: 0xBD5E, - 31289 - 11904: 0xE6D2, - 31290 - 11904: 0x94CF, - 31291 - 11904: 0xBD5F, - 31292 - 11904: 0xBD5B, - 31293 - 11904: 0xBD5D, - 31294 - 11904: 0x9FFA, - 31295 - 11904: 0xBD5A, - 31296 - 11904: 0xBD5C, - 31299 - 11904: 0x91E5, - 31300 - 11904: 0xEAAF, - 31301 - 11904: 0x9C6A, - 31302 - 11904: 0xBF70, - 31303 - 11904: 0xEAB1, - 31304 - 11904: 0xEAB0, - 31305 - 11904: 0x8E49, - 31306 - 11904: 0xE345, - 31307 - 11904: 0xBF72, - 31308 - 11904: 0xBF71, - 31309 - 11904: 0xBF6E, - 31310 - 11904: 0xBF6F, - 31316 - 11904: 0xEDB5, - 31318 - 11904: 0xEDB3, - 31319 - 11904: 0xC14A, - 31320 - 11904: 0xEDB4, - 31322 - 11904: 0xEDB6, - 31323 - 11904: 0xEDB2, - 31324 - 11904: 0xEDB1, - 31327 - 11904: 0xF060, - 31328 - 11904: 0xC2AA, - 31329 - 11904: 0xC2A8, - 31330 - 11904: 0xC2A9, - 31333 - 11904: 0x8E4C, - 31335 - 11904: 0xF2A6, - 31336 - 11904: 0xF2A7, - 31337 - 11904: 0xC3AD, - 31339 - 11904: 0xC3AC, - 31340 - 11904: 0xF4A3, - 31341 - 11904: 0xF4A4, - 31342 - 11904: 0xF4A2, - 31344 - 11904: 0xF6F8, - 31345 - 11904: 0xF6F9, - 31346 - 11904: 0x87C9, - 31348 - 11904: 0xA5DE, - 31349 - 11904: 0xCA48, - 31350 - 11904: 0xA873, - 31352 - 11904: 0xCDA5, - 31353 - 11904: 0xAAC6, - 31354 - 11904: 0xAAC5, - 31355 - 11904: 0xCDA6, - 31357 - 11904: 0x8E4D, - 31358 - 11904: 0xD040, - 31359 - 11904: 0xACEF, - 31360 - 11904: 0xCFFE, - 31361 - 11904: 0xACF0, - 31363 - 11904: 0x9A73, - 31364 - 11904: 0xAFB6, - 31365 - 11904: 0xD2F8, - 31366 - 11904: 0xD2F6, - 31367 - 11904: 0xD2FC, - 31368 - 11904: 0xAFB7, - 31369 - 11904: 0xD2F7, - 31370 - 11904: 0xD2FB, - 31371 - 11904: 0xD2F9, - 31372 - 11904: 0xD2FA, - 31375 - 11904: 0xD6C8, - 31376 - 11904: 0xD6CA, - 31377 - 11904: 0x9947, - 31378 - 11904: 0xB2BF, - 31379 - 11904: 0x8CB1, - 31380 - 11904: 0xD6C9, - 31381 - 11904: 0xB2C0, - 31382 - 11904: 0xB5A2, - 31383 - 11904: 0xB5A1, - 31384 - 11904: 0xB57E, - 31385 - 11904: 0xDADB, - 31390 - 11904: 0xDF44, - 31391 - 11904: 0xB85D, - 31392 - 11904: 0xB85E, - 31394 - 11904: 0xDF43, - 31395 - 11904: 0xDF42, - 31400 - 11904: 0xE34A, - 31401 - 11904: 0xBADB, - 31402 - 11904: 0xBADA, - 31403 - 11904: 0xE34B, - 31404 - 11904: 0xE34C, - 31406 - 11904: 0xBD61, - 31407 - 11904: 0xBD60, - 31408 - 11904: 0x8E50, - 31409 - 11904: 0xEAB5, - 31410 - 11904: 0xE6D3, - 31411 - 11904: 0xE6D5, - 31412 - 11904: 0xE6D4, - 31413 - 11904: 0xEAB4, - 31414 - 11904: 0xEAB2, - 31415 - 11904: 0xEAB6, - 31416 - 11904: 0xEAB3, - 31418 - 11904: 0xBF73, - 31419 - 11904: 0x8E4F, - 31420 - 11904: 0x9949, - 31422 - 11904: 0xEDB7, - 31423 - 11904: 0xC14B, - 31424 - 11904: 0xEDB8, - 31425 - 11904: 0xEDB9, - 31426 - 11904: 0x8E51, - 31427 - 11904: 0x8E52, - 31428 - 11904: 0xC2AB, - 31429 - 11904: 0xC2AC, - 31431 - 11904: 0xC475, - 31432 - 11904: 0x9AB2, - 31433 - 11904: 0x89A5, - 31434 - 11904: 0xC5D1, - 31435 - 11904: 0xA5DF, - 31439 - 11904: 0x994C, - 31441 - 11904: 0xD041, - 31443 - 11904: 0x9FF8, - 31448 - 11904: 0xD2FD, - 31449 - 11904: 0xAFB8, - 31450 - 11904: 0x8E56, - 31451 - 11904: 0x994D, - 31452 - 11904: 0x91CA, - 31453 - 11904: 0x8E57, - 31455 - 11904: 0xB3BA, - 31456 - 11904: 0xB3B9, - 31458 - 11904: 0x94E1, - 31459 - 11904: 0xB5A4, - 31460 - 11904: 0xDADD, - 31461 - 11904: 0xB5A3, - 31462 - 11904: 0xDADC, - 31463 - 11904: 0x9047, - 31465 - 11904: 0x8FD8, - 31466 - 11904: 0x8E58, - 31467 - 11904: 0xDF45, - 31469 - 11904: 0xBADC, - 31470 - 11904: 0xE34D, - 31471 - 11904: 0xBADD, - 31478 - 11904: 0xC476, - 31479 - 11904: 0xF4A5, - 31481 - 11904: 0xA6CB, - 31482 - 11904: 0xAAC7, - 31483 - 11904: 0xCDA7, - 31484 - 11904: 0x87A3, - 31485 - 11904: 0xACF2, - 31486 - 11904: 0x94EB, - 31487 - 11904: 0xACF1, - 31488 - 11904: 0xD042, - 31489 - 11904: 0xD043, - 31492 - 11904: 0xD340, - 31493 - 11904: 0xD342, - 31494 - 11904: 0xAFB9, - 31496 - 11904: 0xD344, - 31497 - 11904: 0xD347, - 31498 - 11904: 0xD345, - 31499 - 11904: 0x8E5C, - 31500 - 11904: 0x9553, - 31502 - 11904: 0xD346, - 31503 - 11904: 0xD343, - 31504 - 11904: 0xD2FE, - 31505 - 11904: 0xAFBA, - 31506 - 11904: 0xD348, - 31507 - 11904: 0xD341, - 31508 - 11904: 0x9FE5, - 31512 - 11904: 0xD6D3, - 31513 - 11904: 0xB2C6, - 31514 - 11904: 0xD6DC, - 31515 - 11904: 0xB2C3, - 31517 - 11904: 0xD6D5, - 31518 - 11904: 0xB2C7, - 31519 - 11904: 0x9F56, - 31520 - 11904: 0xB2C1, - 31522 - 11904: 0xD6D0, - 31523 - 11904: 0xD6DD, - 31524 - 11904: 0xD6D1, - 31525 - 11904: 0xD6CE, - 31526 - 11904: 0xB2C5, - 31527 - 11904: 0x954F, - 31528 - 11904: 0xB2C2, - 31529 - 11904: 0x8E5E, - 31530 - 11904: 0xD6D4, - 31531 - 11904: 0xD6D7, - 31532 - 11904: 0xB2C4, - 31533 - 11904: 0xD6D8, - 31534 - 11904: 0xB2C8, - 31535 - 11904: 0xD6D9, - 31536 - 11904: 0xD6CF, - 31537 - 11904: 0xD6D6, - 31538 - 11904: 0xD6DA, - 31539 - 11904: 0xD6D2, - 31540 - 11904: 0xD6CD, - 31541 - 11904: 0xD6CB, - 31544 - 11904: 0xD6DB, - 31545 - 11904: 0x996A, - 31547 - 11904: 0xDADF, - 31552 - 11904: 0xDAE4, - 31554 - 11904: 0x9C64, - 31555 - 11904: 0x9CD9, - 31556 - 11904: 0xDAE0, - 31557 - 11904: 0xDAE6, - 31558 - 11904: 0xB5A7, - 31559 - 11904: 0xD6CC, - 31560 - 11904: 0xDAE1, - 31561 - 11904: 0xB5A5, - 31562 - 11904: 0xDADE, - 31563 - 11904: 0xB5AC, - 31564 - 11904: 0xDAE2, - 31565 - 11904: 0xB5AB, - 31566 - 11904: 0xDAE3, - 31567 - 11904: 0xB5AD, - 31568 - 11904: 0xB5A8, - 31569 - 11904: 0xB5AE, - 31570 - 11904: 0xB5A9, - 31572 - 11904: 0xB5AA, - 31573 - 11904: 0x8E5D, - 31574 - 11904: 0xB5A6, - 31576 - 11904: 0xDAE5, - 31584 - 11904: 0xB861, - 31585 - 11904: 0xDF50, - 31586 - 11904: 0x9950, - 31587 - 11904: 0xDF53, - 31588 - 11904: 0xDF47, - 31589 - 11904: 0xDF4C, - 31590 - 11904: 0xDF46, - 31591 - 11904: 0xB863, - 31593 - 11904: 0xDF4A, - 31596 - 11904: 0x9951, - 31597 - 11904: 0xDF48, - 31598 - 11904: 0xB862, - 31599 - 11904: 0x8E62, - 31600 - 11904: 0xDF4F, - 31601 - 11904: 0xDF4E, - 31602 - 11904: 0xDF4B, - 31603 - 11904: 0xDF4D, - 31604 - 11904: 0xDF49, - 31605 - 11904: 0xBAE1, - 31606 - 11904: 0xDF52, - 31607 - 11904: 0xB85F, - 31608 - 11904: 0xDF51, - 31611 - 11904: 0x9952, - 31618 - 11904: 0xE35D, - 31620 - 11904: 0xBAE8, - 31621 - 11904: 0xE358, - 31623 - 11904: 0xBAE7, - 31624 - 11904: 0xE34E, - 31626 - 11904: 0xE350, - 31627 - 11904: 0xBAE0, - 31628 - 11904: 0xE355, - 31629 - 11904: 0xE354, - 31630 - 11904: 0xE357, - 31631 - 11904: 0xBAE5, - 31632 - 11904: 0xE352, - 31633 - 11904: 0xE351, - 31634 - 11904: 0x8E68, - 31636 - 11904: 0xBAE4, - 31637 - 11904: 0xBADF, - 31638 - 11904: 0xE353, - 31639 - 11904: 0xBAE2, - 31640 - 11904: 0xE359, - 31641 - 11904: 0xE35B, - 31643 - 11904: 0xE356, - 31644 - 11904: 0xE34F, - 31645 - 11904: 0xBAE3, - 31648 - 11904: 0xBD69, - 31649 - 11904: 0xBADE, - 31650 - 11904: 0x8E61, - 31651 - 11904: 0x9F59, - 31652 - 11904: 0xE35C, - 31660 - 11904: 0xE6D9, - 31661 - 11904: 0xBD62, - 31662 - 11904: 0x87D0, - 31663 - 11904: 0xE6DB, - 31665 - 11904: 0xBD63, - 31666 - 11904: 0x8BB3, - 31668 - 11904: 0xBD65, - 31669 - 11904: 0xE6DE, - 31671 - 11904: 0xE6D6, - 31672 - 11904: 0xBAE6, - 31673 - 11904: 0xE6DC, - 31678 - 11904: 0xE6D8, - 31680 - 11904: 0xB860, - 31681 - 11904: 0xBD68, - 31684 - 11904: 0xBD64, - 31685 - 11904: 0x87B9, - 31686 - 11904: 0xBD66, - 31687 - 11904: 0xBD67, - 31689 - 11904: 0xBF76, - 31690 - 11904: 0xE6DD, - 31691 - 11904: 0xE6D7, - 31692 - 11904: 0xBD6A, - 31694 - 11904: 0xE6DA, - 31695 - 11904: 0x9F5D, - 31696 - 11904: 0x8E66, - 31700 - 11904: 0xEAC0, - 31701 - 11904: 0xEABB, - 31704 - 11904: 0xEAC5, - 31705 - 11904: 0xBF74, - 31706 - 11904: 0xEABD, - 31707 - 11904: 0xBF78, - 31708 - 11904: 0xEAC3, - 31709 - 11904: 0xEABA, - 31710 - 11904: 0xEAB7, - 31711 - 11904: 0xEAC6, - 31712 - 11904: 0xC151, - 31713 - 11904: 0xBF79, - 31714 - 11904: 0xEAC2, - 31715 - 11904: 0xEAB8, - 31716 - 11904: 0xBF77, - 31717 - 11904: 0xEABC, - 31718 - 11904: 0xBF7B, - 31719 - 11904: 0xEAB9, - 31720 - 11904: 0xEABE, - 31721 - 11904: 0xBF7A, - 31722 - 11904: 0xEAC1, - 31723 - 11904: 0xEAC4, - 31724 - 11904: 0x8CB2, - 31728 - 11904: 0xEDCB, - 31729 - 11904: 0xEDCC, - 31730 - 11904: 0xEDBC, - 31731 - 11904: 0xEDC3, - 31732 - 11904: 0xEDC1, - 31735 - 11904: 0xC14F, - 31736 - 11904: 0xEDC8, - 31737 - 11904: 0xEABF, - 31738 - 11904: 0x8E6E, - 31739 - 11904: 0xEDBF, - 31740 - 11904: 0x9F64, - 31741 - 11904: 0xEDC9, - 31742 - 11904: 0xC14E, - 31743 - 11904: 0xEDBE, - 31744 - 11904: 0xEDBD, - 31745 - 11904: 0xEDC7, - 31746 - 11904: 0xEDC4, - 31747 - 11904: 0xEDC6, - 31749 - 11904: 0xEDBA, - 31750 - 11904: 0xEDCA, - 31751 - 11904: 0xC14C, - 31753 - 11904: 0xEDC5, - 31754 - 11904: 0xEDCE, - 31755 - 11904: 0xEDC2, - 31756 - 11904: 0xC150, - 31757 - 11904: 0xC14D, - 31758 - 11904: 0xEDC0, - 31759 - 11904: 0xEDBB, - 31760 - 11904: 0xEDCD, - 31761 - 11904: 0xBF75, - 31762 - 11904: 0x9953, - 31765 - 11904: 0xFAB8, - 31769 - 11904: 0xF063, - 31771 - 11904: 0x9954, - 31772 - 11904: 0xF061, - 31773 - 11904: 0xF067, - 31774 - 11904: 0xC2B0, - 31775 - 11904: 0xF065, - 31776 - 11904: 0xF064, - 31777 - 11904: 0xC2B2, - 31778 - 11904: 0xF06A, - 31779 - 11904: 0xC2B1, - 31781 - 11904: 0xF06B, - 31782 - 11904: 0xF068, - 31783 - 11904: 0xC2AE, - 31784 - 11904: 0xF069, - 31785 - 11904: 0xF062, - 31786 - 11904: 0xC2AF, - 31787 - 11904: 0xC2AD, - 31788 - 11904: 0xF2AB, - 31789 - 11904: 0xF066, - 31792 - 11904: 0xF06C, - 31795 - 11904: 0xF2A8, - 31797 - 11904: 0x8E70, - 31799 - 11904: 0xC3B2, - 31800 - 11904: 0xC3B0, - 31801 - 11904: 0xF2AA, - 31803 - 11904: 0xF2AC, - 31804 - 11904: 0xF2A9, - 31805 - 11904: 0xC3B1, - 31806 - 11904: 0xC3AE, - 31807 - 11904: 0xC3AF, - 31808 - 11904: 0xC3B3, - 31810 - 11904: 0x9F61, - 31811 - 11904: 0xC478, - 31812 - 11904: 0x8E72, - 31813 - 11904: 0xF4AA, - 31815 - 11904: 0xF4A9, - 31816 - 11904: 0xF4A7, - 31817 - 11904: 0xF4A6, - 31818 - 11904: 0xF4A8, - 31820 - 11904: 0xC477, - 31821 - 11904: 0xC479, - 31824 - 11904: 0xC4F0, - 31825 - 11904: 0xA06B, - 31827 - 11904: 0xF5E5, - 31828 - 11904: 0xF5E4, - 31830 - 11904: 0x9F40, - 31831 - 11904: 0xF6FA, - 31833 - 11904: 0xF6FC, - 31834 - 11904: 0xF6FE, - 31835 - 11904: 0xF6FD, - 31836 - 11904: 0xF6FB, - 31837 - 11904: 0x94ED, - 31839 - 11904: 0xC5A3, - 31840 - 11904: 0xC5A2, - 31843 - 11904: 0xC5D3, - 31844 - 11904: 0xC5D2, - 31845 - 11904: 0xC5D4, - 31846 - 11904: 0xF7ED, - 31847 - 11904: 0xF7EC, - 31849 - 11904: 0xF8FB, - 31850 - 11904: 0xF8B8, - 31851 - 11904: 0xF8FC, - 31852 - 11904: 0xC658, - 31853 - 11904: 0x94EE, - 31854 - 11904: 0xC659, - 31855 - 11904: 0xF96D, - 31856 - 11904: 0x9FBD, - 31858 - 11904: 0xC67E, - 31859 - 11904: 0xA6CC, - 31860 - 11904: 0x8E7B, - 31861 - 11904: 0xCDA8, - 31864 - 11904: 0xD045, - 31865 - 11904: 0xD046, - 31866 - 11904: 0xD044, - 31867 - 11904: 0x9957, - 31868 - 11904: 0x94F7, - 31869 - 11904: 0xACF3, - 31870 - 11904: 0x9F5F, - 31871 - 11904: 0xD047, - 31872 - 11904: 0xD048, - 31873 - 11904: 0xD049, - 31875 - 11904: 0x8E73, - 31876 - 11904: 0xD349, - 31877 - 11904: 0xD34F, - 31878 - 11904: 0x9F62, - 31880 - 11904: 0xD34D, - 31881 - 11904: 0xAFBB, - 31882 - 11904: 0xD34B, - 31884 - 11904: 0xD34C, - 31885 - 11904: 0xD34E, - 31886 - 11904: 0x94F6, - 31889 - 11904: 0xD34A, - 31890 - 11904: 0xB2C9, - 31892 - 11904: 0xD6DE, - 31893 - 11904: 0xB2CB, - 31894 - 11904: 0xD6E0, - 31895 - 11904: 0xB2CA, - 31896 - 11904: 0xD6DF, - 31900 - 11904: 0x9958, - 31902 - 11904: 0xDAE8, - 31903 - 11904: 0xB5AF, - 31905 - 11904: 0xDAEA, - 31906 - 11904: 0xDAE7, - 31907 - 11904: 0xD6E1, - 31909 - 11904: 0xB5B0, - 31910 - 11904: 0x8E75, - 31911 - 11904: 0xF9DB, - 31912 - 11904: 0xDAE9, - 31916 - 11904: 0x9072, - 31918 - 11904: 0x94F8, - 31919 - 11904: 0xDF56, - 31921 - 11904: 0xB864, - 31922 - 11904: 0xDF54, - 31923 - 11904: 0xB865, - 31924 - 11904: 0xDF55, - 31925 - 11904: 0xB866, - 31928 - 11904: 0x995A, - 31929 - 11904: 0xBAE9, - 31930 - 11904: 0xE361, - 31931 - 11904: 0xE35E, - 31932 - 11904: 0xE360, - 31933 - 11904: 0xBAEA, - 31934 - 11904: 0xBAEB, - 31935 - 11904: 0xE35F, - 31938 - 11904: 0xA0B0, - 31939 - 11904: 0x8CB3, - 31941 - 11904: 0xE6DF, - 31943 - 11904: 0x8E79, - 31944 - 11904: 0xE6E0, - 31945 - 11904: 0x8E78, - 31946 - 11904: 0xBD6B, - 31947 - 11904: 0xE6E2, - 31948 - 11904: 0xE6E1, - 31949 - 11904: 0x94F3, - 31950 - 11904: 0xA261, - 31952 - 11904: 0xEACA, - 31953 - 11904: 0xEACB, - 31954 - 11904: 0xEAC7, - 31955 - 11904: 0x98AF, - 31956 - 11904: 0xEAC8, - 31957 - 11904: 0xBF7C, - 31958 - 11904: 0xBF7D, - 31959 - 11904: 0xEAC9, - 31961 - 11904: 0xC157, - 31962 - 11904: 0xA0B2, - 31964 - 11904: 0xC153, - 31965 - 11904: 0xC158, - 31966 - 11904: 0xC154, - 31967 - 11904: 0xC156, - 31968 - 11904: 0xC152, - 31970 - 11904: 0xC155, - 31974 - 11904: 0x8E7A, - 31975 - 11904: 0xC2B3, - 31976 - 11904: 0xEDCF, - 31978 - 11904: 0xF2AE, - 31980 - 11904: 0xF2AD, - 31981 - 11904: 0x995C, - 31982 - 11904: 0xF4AB, - 31983 - 11904: 0xC47A, - 31984 - 11904: 0xC47B, - 31985 - 11904: 0xF741, - 31986 - 11904: 0xF5E6, - 31987 - 11904: 0x8E7C, - 31988 - 11904: 0xF740, - 31989 - 11904: 0x8E7D, - 31990 - 11904: 0xF8FD, - 31991 - 11904: 0xF9A4, - 31992 - 11904: 0xA6CD, - 31993 - 11904: 0x8BD9, - 31995 - 11904: 0xA874, - 31996 - 11904: 0x89A2, - 31997 - 11904: 0xCDA9, - 31998 - 11904: 0xAAC8, - 32000 - 11904: 0xACF6, - 32001 - 11904: 0xD04C, - 32002 - 11904: 0xACF4, - 32003 - 11904: 0xD04A, - 32004 - 11904: 0xACF9, - 32005 - 11904: 0xACF5, - 32006 - 11904: 0xACFA, - 32007 - 11904: 0xACF8, - 32008 - 11904: 0xD04B, - 32009 - 11904: 0xACF7, - 32010 - 11904: 0xAFBF, - 32011 - 11904: 0xAFBE, - 32012 - 11904: 0xD35A, - 32013 - 11904: 0xAFC7, - 32014 - 11904: 0xD353, - 32015 - 11904: 0xD359, - 32016 - 11904: 0xAFC3, - 32017 - 11904: 0xD352, - 32018 - 11904: 0xD358, - 32019 - 11904: 0xD356, - 32020 - 11904: 0xAFC2, - 32021 - 11904: 0xAFC4, - 32022 - 11904: 0xD355, - 32023 - 11904: 0xAFBD, - 32024 - 11904: 0xD354, - 32025 - 11904: 0xAFC8, - 32026 - 11904: 0xAFC5, - 32027 - 11904: 0xAFC9, - 32028 - 11904: 0xAFC6, - 32029 - 11904: 0xD351, - 32030 - 11904: 0xD350, - 32031 - 11904: 0xD357, - 32032 - 11904: 0xAFC0, - 32033 - 11904: 0xAFBC, - 32034 - 11904: 0xAFC1, - 32037 - 11904: 0x9ED7, - 32040 - 11904: 0xD6F0, - 32041 - 11904: 0xD6E9, - 32043 - 11904: 0xB5B5, - 32044 - 11904: 0xD6E8, - 32046 - 11904: 0xB2CF, - 32047 - 11904: 0xB2D6, - 32048 - 11904: 0xB2D3, - 32049 - 11904: 0xB2D9, - 32050 - 11904: 0xB2D8, - 32051 - 11904: 0xB2D4, - 32053 - 11904: 0xD6E2, - 32054 - 11904: 0xD6E5, - 32056 - 11904: 0xD6E4, - 32057 - 11904: 0xB2D0, - 32058 - 11904: 0xD6E6, - 32059 - 11904: 0xD6EF, - 32060 - 11904: 0xB2D1, - 32061 - 11904: 0xD6E3, - 32062 - 11904: 0xD6EC, - 32063 - 11904: 0xD6ED, - 32064 - 11904: 0xB2D2, - 32065 - 11904: 0xD6EA, - 32066 - 11904: 0xB2D7, - 32067 - 11904: 0xB2CD, - 32068 - 11904: 0xB2D5, - 32069 - 11904: 0xD6E7, - 32070 - 11904: 0xB2CC, - 32071 - 11904: 0xD6EB, - 32074 - 11904: 0xD6EE, - 32077 - 11904: 0xA0B6, - 32078 - 11904: 0xDAFB, - 32079 - 11904: 0xDAF2, - 32080 - 11904: 0xB5B2, - 32081 - 11904: 0xDAF9, - 32082 - 11904: 0xDAF6, - 32083 - 11904: 0xDAEE, - 32084 - 11904: 0xDAF7, - 32085 - 11904: 0xB5B4, - 32086 - 11904: 0xDAEF, - 32088 - 11904: 0xDAEB, - 32090 - 11904: 0x9E42, - 32091 - 11904: 0xB86C, - 32092 - 11904: 0xDAF4, - 32093 - 11904: 0x8EA4, - 32094 - 11904: 0xB5B1, - 32095 - 11904: 0xDAFA, - 32097 - 11904: 0xB5B8, - 32098 - 11904: 0xB5BA, - 32099 - 11904: 0xDAED, - 32102 - 11904: 0xB5B9, - 32103 - 11904: 0xDAF0, - 32104 - 11904: 0xB5B3, - 32105 - 11904: 0xDAF8, - 32106 - 11904: 0xDAF1, - 32107 - 11904: 0xDAF5, - 32109 - 11904: 0xDAF3, - 32110 - 11904: 0xB5B6, - 32111 - 11904: 0xDAEC, - 32112 - 11904: 0xB5BB, - 32113 - 11904: 0xB2CE, - 32114 - 11904: 0xB5B7, - 32115 - 11904: 0xB5BC, - 32121 - 11904: 0xB868, - 32122 - 11904: 0xDF5D, - 32123 - 11904: 0xDF5F, - 32124 - 11904: 0xDF61, - 32125 - 11904: 0xDF65, - 32127 - 11904: 0xDF5B, - 32128 - 11904: 0xDF59, - 32129 - 11904: 0xB86A, - 32131 - 11904: 0xDF60, - 32132 - 11904: 0xDF64, - 32133 - 11904: 0xDF5C, - 32134 - 11904: 0xDF58, - 32136 - 11904: 0xDF57, - 32137 - 11904: 0x8EA7, - 32139 - 11904: 0x8C76, - 32140 - 11904: 0xDF62, - 32141 - 11904: 0xDF5A, - 32142 - 11904: 0xDF5E, - 32143 - 11904: 0xB86B, - 32145 - 11904: 0xB869, - 32146 - 11904: 0xDF66, - 32147 - 11904: 0xB867, - 32148 - 11904: 0xDF63, - 32149 - 11904: 0x8767, - 32150 - 11904: 0xE372, - 32151 - 11904: 0x9542, - 32156 - 11904: 0xBAEE, - 32157 - 11904: 0xE36A, - 32158 - 11904: 0xBD78, - 32159 - 11904: 0xE374, - 32160 - 11904: 0xBAF1, - 32161 - 11904: 0xE378, - 32162 - 11904: 0xBAF7, - 32163 - 11904: 0xE365, - 32164 - 11904: 0x987D, - 32166 - 11904: 0xE375, - 32167 - 11904: 0xE362, - 32168 - 11904: 0x9755, - 32169 - 11904: 0xE377, - 32170 - 11904: 0xE366, - 32171 - 11904: 0x8EA8, - 32172 - 11904: 0xBAFE, - 32173 - 11904: 0xBAFB, - 32174 - 11904: 0xE376, - 32175 - 11904: 0xE370, - 32176 - 11904: 0xBAED, - 32177 - 11904: 0xBAF5, - 32178 - 11904: 0xBAF4, - 32179 - 11904: 0x8EAA, - 32180 - 11904: 0xBAF3, - 32181 - 11904: 0xBAF9, - 32183 - 11904: 0xE363, - 32184 - 11904: 0xBAFA, - 32185 - 11904: 0xE371, - 32186 - 11904: 0xBAF6, - 32187 - 11904: 0xBAEC, - 32188 - 11904: 0xE373, - 32189 - 11904: 0xBAEF, - 32190 - 11904: 0xBAF0, - 32191 - 11904: 0xBAF8, - 32192 - 11904: 0xE368, - 32193 - 11904: 0xE367, - 32194 - 11904: 0xE364, - 32196 - 11904: 0xE36C, - 32197 - 11904: 0xE369, - 32198 - 11904: 0xE36D, - 32199 - 11904: 0xBAFD, - 32201 - 11904: 0xE379, - 32202 - 11904: 0xBAF2, - 32203 - 11904: 0xE36E, - 32204 - 11904: 0xE36F, - 32205 - 11904: 0x89A3, - 32206 - 11904: 0xE36B, - 32207 - 11904: 0x9960, - 32208 - 11904: 0x9962, - 32210 - 11904: 0xBAFC, - 32211 - 11904: 0x94FC, - 32212 - 11904: 0x9961, - 32215 - 11904: 0xE6E7, - 32216 - 11904: 0xBD70, - 32217 - 11904: 0xBD79, - 32218 - 11904: 0xBD75, - 32219 - 11904: 0xE6E4, - 32220 - 11904: 0x94FA, - 32221 - 11904: 0xBD72, - 32222 - 11904: 0xBD76, - 32223 - 11904: 0xE6F0, - 32224 - 11904: 0xBD6C, - 32225 - 11904: 0xE6E8, - 32227 - 11904: 0xBD74, - 32228 - 11904: 0x8EAE, - 32229 - 11904: 0x8EB2, - 32230 - 11904: 0xE6EB, - 32231 - 11904: 0xE6E6, - 32232 - 11904: 0xBD73, - 32233 - 11904: 0xBD77, - 32234 - 11904: 0xE6E5, - 32236 - 11904: 0xBD71, - 32238 - 11904: 0xE6EF, - 32239 - 11904: 0xBD6E, - 32240 - 11904: 0xE6EE, - 32241 - 11904: 0xE6ED, - 32242 - 11904: 0xBD7A, - 32243 - 11904: 0xE572, - 32244 - 11904: 0xBD6D, - 32245 - 11904: 0x8EB0, - 32246 - 11904: 0xE6EC, - 32247 - 11904: 0xE6E3, - 32249 - 11904: 0xBD7B, - 32250 - 11904: 0xE6EA, - 32251 - 11904: 0xBD6F, - 32253 - 11904: 0x9963, - 32254 - 11904: 0x97AA, - 32259 - 11904: 0xE6E9, - 32263 - 11904: 0x94FB, - 32264 - 11904: 0xBFA2, - 32265 - 11904: 0xBFA7, - 32266 - 11904: 0xBF7E, - 32267 - 11904: 0xEAD8, - 32268 - 11904: 0xEACF, - 32269 - 11904: 0xEADB, - 32270 - 11904: 0xEAD3, - 32271 - 11904: 0xEAD9, - 32272 - 11904: 0xBFA8, - 32273 - 11904: 0xBFA1, - 32274 - 11904: 0xEACC, - 32275 - 11904: 0xEAD2, - 32276 - 11904: 0xEADC, - 32277 - 11904: 0xEAD5, - 32278 - 11904: 0xEADA, - 32279 - 11904: 0xEACE, - 32282 - 11904: 0xEAD6, - 32283 - 11904: 0xBFA3, - 32284 - 11904: 0xEAD4, - 32285 - 11904: 0xBFA6, - 32286 - 11904: 0xBFA5, - 32287 - 11904: 0xEAD0, - 32288 - 11904: 0xEAD1, - 32289 - 11904: 0xEACD, - 32290 - 11904: 0xEAD7, - 32291 - 11904: 0xBFA4, - 32292 - 11904: 0xEADE, - 32293 - 11904: 0xEADD, - 32295 - 11904: 0x8EBB, - 32297 - 11904: 0xEDDA, - 32298 - 11904: 0xEDD6, - 32299 - 11904: 0xC15F, - 32301 - 11904: 0xEDD0, - 32302 - 11904: 0xC159, - 32303 - 11904: 0xC169, - 32304 - 11904: 0xEDDC, - 32305 - 11904: 0xC161, - 32306 - 11904: 0xC15D, - 32307 - 11904: 0xEDD3, - 32308 - 11904: 0xC164, - 32309 - 11904: 0xC167, - 32310 - 11904: 0xEDDE, - 32311 - 11904: 0xC15C, - 32312 - 11904: 0xEDD5, - 32313 - 11904: 0xC165, - 32314 - 11904: 0xEDE0, - 32315 - 11904: 0xEDDD, - 32316 - 11904: 0xEDD1, - 32317 - 11904: 0xC160, - 32318 - 11904: 0xC15A, - 32319 - 11904: 0xC168, - 32320 - 11904: 0xEDD8, - 32321 - 11904: 0xC163, - 32322 - 11904: 0xEDD2, - 32323 - 11904: 0xC15E, - 32324 - 11904: 0xEDDF, - 32325 - 11904: 0xC162, - 32326 - 11904: 0xC15B, - 32327 - 11904: 0xEDD9, - 32328 - 11904: 0xC166, - 32329 - 11904: 0xEDD7, - 32332 - 11904: 0xEDDB, - 32336 - 11904: 0xF06E, - 32337 - 11904: 0xF074, - 32338 - 11904: 0xC2B9, - 32339 - 11904: 0xF077, - 32340 - 11904: 0xC2B4, - 32341 - 11904: 0xC2B5, - 32342 - 11904: 0xF06F, - 32343 - 11904: 0xF076, - 32344 - 11904: 0xF071, - 32345 - 11904: 0xC2BA, - 32346 - 11904: 0xC2B7, - 32347 - 11904: 0x8CDC, - 32348 - 11904: 0xF06D, - 32350 - 11904: 0xC2B6, - 32351 - 11904: 0xF073, - 32352 - 11904: 0xF075, - 32353 - 11904: 0xC2B8, - 32354 - 11904: 0xF072, - 32355 - 11904: 0xF070, - 32357 - 11904: 0x9876, - 32359 - 11904: 0x8EA1, - 32360 - 11904: 0xF2B8, - 32361 - 11904: 0xC3B7, - 32362 - 11904: 0xC3B8, - 32363 - 11904: 0xC3B4, - 32364 - 11904: 0x8CB4, - 32365 - 11904: 0xC3B5, - 32366 - 11904: 0x8EB7, - 32367 - 11904: 0xF2B4, - 32368 - 11904: 0xF2B2, - 32370 - 11904: 0xF2B6, - 32371 - 11904: 0xC3BA, - 32372 - 11904: 0xF2B7, - 32373 - 11904: 0xF2B0, - 32374 - 11904: 0xF2AF, - 32375 - 11904: 0xF2B3, - 32376 - 11904: 0xF2B1, - 32377 - 11904: 0xC3B6, - 32378 - 11904: 0xF2B5, - 32379 - 11904: 0xF4AC, - 32380 - 11904: 0xC47E, - 32381 - 11904: 0xC47D, - 32382 - 11904: 0xF4AD, - 32383 - 11904: 0x9DA6, - 32384 - 11904: 0xF4AF, - 32385 - 11904: 0xF4AE, - 32386 - 11904: 0xC4A1, - 32390 - 11904: 0xF5EB, - 32391 - 11904: 0xF5E8, - 32392 - 11904: 0xF5E9, - 32394 - 11904: 0xF5E7, - 32395 - 11904: 0xF5EA, - 32396 - 11904: 0xC4F2, - 32397 - 11904: 0xF5EC, - 32398 - 11904: 0x9EB0, - 32399 - 11904: 0xC4F1, - 32401 - 11904: 0xF742, - 32402 - 11904: 0x8EB8, - 32403 - 11904: 0xC5D5, - 32404 - 11904: 0xC5D7, - 32405 - 11904: 0xF7EE, - 32406 - 11904: 0xC5D6, - 32407 - 11904: 0xF8B9, - 32408 - 11904: 0xF940, - 32409 - 11904: 0xF942, - 32410 - 11904: 0xF8FE, - 32411 - 11904: 0xF941, - 32412 - 11904: 0xC66C, - 32415 - 11904: 0x9D70, - 32420 - 11904: 0x896E, - 32428 - 11904: 0x896F, - 32442 - 11904: 0x8970, - 32455 - 11904: 0x8971, - 32463 - 11904: 0x8972, - 32479 - 11904: 0x8973, - 32518 - 11904: 0x8974, - 32566 - 11904: 0xA6CE, - 32567 - 11904: 0x8975, - 32568 - 11904: 0xACFB, - 32569 - 11904: 0xD26F, - 32570 - 11904: 0xAFCA, - 32573 - 11904: 0xB2DA, - 32574 - 11904: 0xDAFC, - 32575 - 11904: 0xDAFD, - 32576 - 11904: 0x8EBC, - 32577 - 11904: 0x8EBD, - 32579 - 11904: 0xEADF, - 32580 - 11904: 0xC16A, - 32581 - 11904: 0xEDE1, - 32583 - 11904: 0x8EBE, - 32584 - 11904: 0xC2BB, - 32585 - 11904: 0x9DD1, - 32586 - 11904: 0xF2BA, - 32587 - 11904: 0xF2B9, - 32588 - 11904: 0xC4A2, - 32589 - 11904: 0xF5ED, - 32590 - 11904: 0x94FD, - 32591 - 11904: 0xF743, - 32592 - 11904: 0xC5F8, - 32593 - 11904: 0xCA49, - 32594 - 11904: 0x8BD7, - 32595 - 11904: 0x8BDA, - 32596 - 11904: 0xAAC9, - 32597 - 11904: 0xA875, - 32600 - 11904: 0xD04D, - 32603 - 11904: 0xD360, - 32604 - 11904: 0xD35B, - 32605 - 11904: 0xD35F, - 32606 - 11904: 0xD35D, - 32607 - 11904: 0xAFCB, - 32608 - 11904: 0xD35E, - 32609 - 11904: 0xD35C, - 32611 - 11904: 0xD6F1, - 32613 - 11904: 0xDAFE, - 32614 - 11904: 0xDB40, - 32615 - 11904: 0xDF69, - 32616 - 11904: 0xDF6A, - 32617 - 11904: 0xB86E, - 32618 - 11904: 0xB86F, - 32619 - 11904: 0xDF68, - 32620 - 11904: 0xDF6B, - 32621 - 11904: 0xDF67, - 32622 - 11904: 0xB86D, - 32624 - 11904: 0xBB40, - 32625 - 11904: 0xA0E2, - 32626 - 11904: 0xB870, - 32627 - 11904: 0xE37A, - 32629 - 11904: 0xBD7C, - 32630 - 11904: 0xE6F1, - 32631 - 11904: 0xBD7D, - 32632 - 11904: 0x9FE9, - 32633 - 11904: 0xBFA9, - 32634 - 11904: 0xEAE2, - 32635 - 11904: 0xEAE0, - 32636 - 11904: 0xEAE1, - 32637 - 11904: 0xEDE4, - 32638 - 11904: 0xEDE3, - 32639 - 11904: 0xEDE2, - 32643 - 11904: 0xF2BB, - 32645 - 11904: 0xC3B9, - 32646 - 11904: 0xF2BC, - 32647 - 11904: 0xF744, - 32648 - 11904: 0xC5F9, - 32649 - 11904: 0xF8BA, - 32650 - 11904: 0xA6CF, - 32651 - 11904: 0xAACB, - 32652 - 11904: 0xAACA, - 32653 - 11904: 0xD04F, - 32654 - 11904: 0xACFC, - 32655 - 11904: 0xFDA8, - 32657 - 11904: 0xD04E, - 32658 - 11904: 0xD362, - 32659 - 11904: 0x8AE7, - 32660 - 11904: 0xAFCC, - 32661 - 11904: 0xD6F2, - 32662 - 11904: 0xD361, - 32663 - 11904: 0x8EC2, - 32666 - 11904: 0xB2DC, - 32667 - 11904: 0xD6F5, - 32668 - 11904: 0xD6F3, - 32669 - 11904: 0xD6F4, - 32670 - 11904: 0xB2DB, - 32672 - 11904: 0xDB42, - 32673 - 11904: 0xDB43, - 32674 - 11904: 0xDB41, - 32675 - 11904: 0x8EC4, - 32676 - 11904: 0xB873, - 32677 - 11904: 0xDF6D, - 32678 - 11904: 0xDF6C, - 32679 - 11904: 0xDF6E, - 32680 - 11904: 0xB872, - 32681 - 11904: 0xB871, - 32684 - 11904: 0xE6F2, - 32685 - 11904: 0xE6F4, - 32686 - 11904: 0x9964, - 32687 - 11904: 0xBD7E, - 32688 - 11904: 0xE6F3, - 32689 - 11904: 0xEAE3, - 32690 - 11904: 0xBFAA, - 32691 - 11904: 0xF079, - 32692 - 11904: 0x9965, - 32693 - 11904: 0xF078, - 32694 - 11904: 0xC3BB, - 32695 - 11904: 0xF2BD, - 32696 - 11904: 0xC3BD, - 32697 - 11904: 0xC3BC, - 32698 - 11904: 0xF4B0, - 32699 - 11904: 0xF5EE, - 32700 - 11904: 0xC4F3, - 32701 - 11904: 0xA6D0, - 32702 - 11904: 0xD050, - 32703 - 11904: 0xACFD, - 32704 - 11904: 0xD365, - 32705 - 11904: 0xAFCE, - 32706 - 11904: 0xD364, - 32707 - 11904: 0xD363, - 32709 - 11904: 0xAFCD, - 32711 - 11904: 0xD6FB, - 32713 - 11904: 0xD6FD, - 32714 - 11904: 0xD6F6, - 32715 - 11904: 0xD6F7, - 32716 - 11904: 0xB2DD, - 32717 - 11904: 0xD6F8, - 32718 - 11904: 0xB2DE, - 32719 - 11904: 0xD6FC, - 32720 - 11904: 0xD6F9, - 32721 - 11904: 0xD6FA, - 32722 - 11904: 0xB2DF, - 32724 - 11904: 0xB5BE, - 32725 - 11904: 0xB5BF, - 32727 - 11904: 0xDB44, - 32731 - 11904: 0xDF6F, - 32732 - 11904: 0xDF70, - 32733 - 11904: 0x954E, - 32734 - 11904: 0xE37E, - 32735 - 11904: 0xBB43, - 32736 - 11904: 0xBB41, - 32737 - 11904: 0xBB42, - 32738 - 11904: 0xE37B, - 32739 - 11904: 0xE37C, - 32741 - 11904: 0xE37D, - 32742 - 11904: 0xE6F9, - 32743 - 11904: 0x98B3, - 32744 - 11904: 0xE6FA, - 32745 - 11904: 0xBDA1, - 32746 - 11904: 0xE6F7, - 32747 - 11904: 0xE6F6, - 32748 - 11904: 0xE6F8, - 32749 - 11904: 0xE6F5, - 32750 - 11904: 0xBFAD, - 32751 - 11904: 0xEAE4, - 32752 - 11904: 0xBFAB, - 32753 - 11904: 0xBFAC, - 32754 - 11904: 0xEDE6, - 32755 - 11904: 0xC16B, - 32756 - 11904: 0xEDE5, - 32757 - 11904: 0xEFA8, - 32759 - 11904: 0xF07A, - 32760 - 11904: 0xF07B, - 32761 - 11904: 0xC2BC, - 32762 - 11904: 0x8ECB, - 32763 - 11904: 0xC2BD, - 32764 - 11904: 0xC16C, - 32765 - 11904: 0xF2BE, - 32766 - 11904: 0xF2BF, - 32767 - 11904: 0xF4B1, - 32768 - 11904: 0xC4A3, - 32769 - 11904: 0xA6D1, - 32770 - 11904: 0x8BDF, - 32771 - 11904: 0xA6D2, - 32772 - 11904: 0xACFE, - 32773 - 11904: 0xAACC, - 32774 - 11904: 0xAFCF, - 32775 - 11904: 0xD051, - 32776 - 11904: 0x8ECE, - 32779 - 11904: 0xB5C0, - 32780 - 11904: 0xA6D3, - 32781 - 11904: 0xAD41, - 32782 - 11904: 0xD052, - 32783 - 11904: 0xD053, - 32784 - 11904: 0xAD40, - 32785 - 11904: 0xAD42, - 32786 - 11904: 0xA6D4, - 32788 - 11904: 0xD054, - 32789 - 11904: 0xAFD1, - 32790 - 11904: 0xD366, - 32791 - 11904: 0xAFD3, - 32792 - 11904: 0xAFD0, - 32793 - 11904: 0xAFD2, - 32795 - 11904: 0xD741, - 32796 - 11904: 0xB2E0, - 32797 - 11904: 0x8ECF, - 32798 - 11904: 0xD740, - 32799 - 11904: 0xD6FE, - 32800 - 11904: 0x9968, - 32801 - 11904: 0xDF71, - 32804 - 11904: 0xE3A1, - 32805 - 11904: 0x9969, - 32806 - 11904: 0xBDA2, - 32808 - 11904: 0xBFAE, - 32809 - 11904: 0xEAE6, - 32810 - 11904: 0xEAE5, - 32812 - 11904: 0xEDE7, - 32814 - 11904: 0x996B, - 32815 - 11904: 0x8ED1, - 32816 - 11904: 0xF5EF, - 32817 - 11904: 0x996C, - 32819 - 11904: 0xA6D5, - 32820 - 11904: 0xCB73, - 32821 - 11904: 0xCDAA, - 32822 - 11904: 0xAD43, - 32823 - 11904: 0xD055, - 32825 - 11904: 0xD368, - 32827 - 11904: 0x8ED4, - 32828 - 11904: 0x8ED5, - 32829 - 11904: 0xAFD4, - 32830 - 11904: 0xD367, - 32831 - 11904: 0xAFD5, - 32835 - 11904: 0xD743, - 32838 - 11904: 0xB2E2, - 32839 - 11904: 0xD742, - 32840 - 11904: 0xD744, - 32842 - 11904: 0xB2E1, - 32847 - 11904: 0xDB46, - 32848 - 11904: 0xDB47, - 32849 - 11904: 0xDB45, - 32850 - 11904: 0xB5C1, - 32852 - 11904: 0x996D, - 32854 - 11904: 0xB874, - 32856 - 11904: 0xB875, - 32858 - 11904: 0xBB45, - 32859 - 11904: 0xA0BE, - 32860 - 11904: 0xE3A3, - 32861 - 11904: 0xE3A2, - 32862 - 11904: 0xBB44, - 32865 - 11904: 0x8ED6, - 32866 - 11904: 0xA0BC, - 32867 - 11904: 0xA0B5, - 32868 - 11904: 0xE6FB, - 32870 - 11904: 0xA0B4, - 32871 - 11904: 0xE6FC, - 32876 - 11904: 0xEAE7, - 32879 - 11904: 0xC170, - 32880 - 11904: 0xC16F, - 32881 - 11904: 0xC16D, - 32882 - 11904: 0xC16E, - 32883 - 11904: 0xC171, - 32885 - 11904: 0xF07C, - 32886 - 11904: 0xC2BF, - 32887 - 11904: 0xC2BE, - 32888 - 11904: 0xF2C0, - 32889 - 11904: 0xF4B2, - 32893 - 11904: 0xC5A5, - 32894 - 11904: 0xC5A4, - 32895 - 11904: 0xA6D6, - 32896 - 11904: 0x8BE0, - 32898 - 11904: 0xD1FB, - 32900 - 11904: 0xB877, - 32901 - 11904: 0xB5C2, - 32902 - 11904: 0xB876, - 32903 - 11904: 0xBB46, - 32905 - 11904: 0xA6D7, - 32906 - 11904: 0xC9A9, - 32907 - 11904: 0xA6D8, - 32908 - 11904: 0xA6D9, - 32911 - 11904: 0xCDAB, - 32912 - 11904: 0xCB76, - 32914 - 11904: 0xCB77, - 32915 - 11904: 0xA877, - 32917 - 11904: 0xCB74, - 32918 - 11904: 0xA876, - 32920 - 11904: 0xA879, - 32921 - 11904: 0xCB75, - 32922 - 11904: 0xA87B, - 32923 - 11904: 0xA87A, - 32924 - 11904: 0xCB78, - 32925 - 11904: 0xA878, - 32927 - 11904: 0x89B5, - 32929 - 11904: 0xAAD1, - 32930 - 11904: 0xAACF, - 32931 - 11904: 0xCDAD, - 32933 - 11904: 0xAACE, - 32935 - 11904: 0x8EDD, - 32937 - 11904: 0xAAD3, - 32938 - 11904: 0xAAD5, - 32939 - 11904: 0xAAD2, - 32941 - 11904: 0xCDB0, - 32942 - 11904: 0xCDAC, - 32943 - 11904: 0xAAD6, - 32945 - 11904: 0xAAD0, - 32946 - 11904: 0xA87C, - 32948 - 11904: 0xAAD4, - 32949 - 11904: 0xCDAF, - 32950 - 11904: 0x9E5D, - 32951 - 11904: 0x9971, - 32952 - 11904: 0xCDAE, - 32954 - 11904: 0xAACD, - 32956 - 11904: 0x89AE, - 32957 - 11904: 0x9DE8, - 32962 - 11904: 0xD05B, - 32963 - 11904: 0xAD47, - 32964 - 11904: 0xAD48, - 32965 - 11904: 0xD05D, - 32966 - 11904: 0x9565, - 32967 - 11904: 0xD057, - 32968 - 11904: 0xD05A, - 32969 - 11904: 0xD063, - 32970 - 11904: 0xD061, - 32972 - 11904: 0xAD49, - 32973 - 11904: 0xD067, - 32974 - 11904: 0xAD4C, - 32975 - 11904: 0xD064, - 32976 - 11904: 0xD05C, - 32977 - 11904: 0xD059, - 32980 - 11904: 0xDB49, - 32981 - 11904: 0xD062, - 32982 - 11904: 0xAD44, - 32983 - 11904: 0xD065, - 32984 - 11904: 0xD056, - 32985 - 11904: 0xD05F, - 32986 - 11904: 0xAD46, - 32987 - 11904: 0xAD4B, - 32988 - 11904: 0xD060, - 32989 - 11904: 0xAD4F, - 32990 - 11904: 0xAD4D, - 32992 - 11904: 0xD058, - 32993 - 11904: 0xAD4A, - 32995 - 11904: 0xD05E, - 32996 - 11904: 0xAD4E, - 32997 - 11904: 0xAD45, - 32998 - 11904: 0xD066, - 33001 - 11904: 0x9972, - 33004 - 11904: 0x8B5C, - 33005 - 11904: 0xAFDA, - 33007 - 11904: 0xAFE3, - 33008 - 11904: 0xAFD8, - 33009 - 11904: 0xAFD6, - 33010 - 11904: 0xD36A, - 33011 - 11904: 0xAFDE, - 33012 - 11904: 0xAFDB, - 33013 - 11904: 0xD36C, - 33014 - 11904: 0x89B1, - 33016 - 11904: 0xAFDD, - 33017 - 11904: 0xD36B, - 33018 - 11904: 0xD369, - 33019 - 11904: 0xD36E, - 33020 - 11904: 0xAFE2, - 33021 - 11904: 0xAFE0, - 33022 - 11904: 0xDB48, - 33024 - 11904: 0xD36F, - 33025 - 11904: 0xD36D, - 33026 - 11904: 0xAFD7, - 33027 - 11904: 0xA0C0, - 33029 - 11904: 0xAFD9, - 33030 - 11904: 0xAFDC, - 33031 - 11904: 0x8EDF, - 33032 - 11904: 0xAFDF, - 33033 - 11904: 0x9566, - 33034 - 11904: 0xAFE1, - 33036 - 11904: 0x9974, - 33038 - 11904: 0x9976, - 33042 - 11904: 0x9977, - 33044 - 11904: 0x9979, - 33045 - 11904: 0xD74E, - 33046 - 11904: 0xB2E4, - 33047 - 11904: 0x9DDA, - 33048 - 11904: 0xD745, - 33049 - 11904: 0xD747, - 33050 - 11904: 0x8EE0, - 33051 - 11904: 0xD748, - 33053 - 11904: 0xD750, - 33054 - 11904: 0xD74C, - 33055 - 11904: 0xD74A, - 33057 - 11904: 0xD74D, - 33058 - 11904: 0xD751, - 33059 - 11904: 0xB2E5, - 33060 - 11904: 0xB2E9, - 33061 - 11904: 0xD746, - 33063 - 11904: 0xD74F, - 33065 - 11904: 0xB2E7, - 33066 - 11904: 0x935C, - 33067 - 11904: 0xB2E6, - 33068 - 11904: 0xD74B, - 33069 - 11904: 0xD749, - 33071 - 11904: 0xB2E3, - 33072 - 11904: 0xB2E8, - 33074 - 11904: 0x9DE6, - 33076 - 11904: 0x8B5F, - 33079 - 11904: 0x9563, - 33081 - 11904: 0xB5C8, - 33082 - 11904: 0xDB51, - 33085 - 11904: 0xDB4F, - 33086 - 11904: 0xB5CA, - 33090 - 11904: 0x9567, - 33091 - 11904: 0xDB4A, - 33092 - 11904: 0xDFA1, - 33094 - 11904: 0xB5C9, - 33095 - 11904: 0xDB4E, - 33096 - 11904: 0x9DE3, - 33098 - 11904: 0xDB4B, - 33099 - 11904: 0xB5C5, - 33100 - 11904: 0xB5CB, - 33101 - 11904: 0xDB50, - 33102 - 11904: 0xB5C7, - 33103 - 11904: 0xDB4D, - 33104 - 11904: 0xBB47, - 33105 - 11904: 0xB5C6, - 33106 - 11904: 0xDB4C, - 33107 - 11904: 0xB5CC, - 33108 - 11904: 0xB5C4, - 33109 - 11904: 0xB5C3, - 33110 - 11904: 0x997C, - 33113 - 11904: 0x997D, - 33114 - 11904: 0x997E, - 33115 - 11904: 0xDF77, - 33116 - 11904: 0xDF75, - 33118 - 11904: 0xDF7B, - 33120 - 11904: 0xDF73, - 33121 - 11904: 0xDFA2, - 33122 - 11904: 0xDF78, - 33124 - 11904: 0xDF72, - 33125 - 11904: 0xB87B, - 33126 - 11904: 0xB8A3, - 33127 - 11904: 0xDF7D, - 33129 - 11904: 0xDF76, - 33131 - 11904: 0xB87E, - 33132 - 11904: 0x8CFB, - 33133 - 11904: 0x8B5B, - 33134 - 11904: 0xB87C, - 33135 - 11904: 0xDF7E, - 33136 - 11904: 0xB879, - 33137 - 11904: 0xB878, - 33138 - 11904: 0xDF79, - 33139 - 11904: 0xB87D, - 33140 - 11904: 0xB5CD, - 33142 - 11904: 0xDF7C, - 33143 - 11904: 0xDF74, - 33144 - 11904: 0xB87A, - 33145 - 11904: 0xB8A1, - 33146 - 11904: 0xB8A2, - 33148 - 11904: 0x99A3, - 33151 - 11904: 0xBB4C, - 33152 - 11904: 0xBB48, - 33154 - 11904: 0xBB4D, - 33155 - 11904: 0xE3A6, - 33156 - 11904: 0x99A4, - 33158 - 11904: 0xE3A5, - 33159 - 11904: 0xE3A7, - 33160 - 11904: 0xBB4A, - 33161 - 11904: 0xE3A4, - 33162 - 11904: 0xBB4B, - 33163 - 11904: 0xE3AA, - 33164 - 11904: 0xE3A9, - 33165 - 11904: 0xE3A8, - 33167 - 11904: 0xBB49, - 33171 - 11904: 0x99A6, - 33173 - 11904: 0xE741, - 33175 - 11904: 0xE744, - 33176 - 11904: 0xBDA8, - 33177 - 11904: 0xE743, - 33178 - 11904: 0xBDA7, - 33179 - 11904: 0xBDA3, - 33180 - 11904: 0xBDA4, - 33181 - 11904: 0xBDA5, - 33182 - 11904: 0xE740, - 33183 - 11904: 0xE6FE, - 33184 - 11904: 0xBDA6, - 33186 - 11904: 0xE742, - 33187 - 11904: 0xE6FD, - 33189 - 11904: 0x99A8, - 33190 - 11904: 0xEAE9, - 33191 - 11904: 0xEAF3, - 33192 - 11904: 0xBFB1, - 33193 - 11904: 0xBFB0, - 33194 - 11904: 0x8ABE, - 33195 - 11904: 0xEAED, - 33196 - 11904: 0xEAEF, - 33198 - 11904: 0xEAEA, - 33200 - 11904: 0xEAEE, - 33201 - 11904: 0xEAE8, - 33202 - 11904: 0xEAF1, - 33203 - 11904: 0xBFAF, - 33204 - 11904: 0xEAF0, - 33205 - 11904: 0xEAEC, - 33206 - 11904: 0x9E61, - 33207 - 11904: 0xEAF2, - 33209 - 11904: 0xEAEB, - 33210 - 11904: 0xC174, - 33211 - 11904: 0xEDE8, - 33212 - 11904: 0xEDEE, - 33213 - 11904: 0xC178, - 33214 - 11904: 0xC17A, - 33215 - 11904: 0xC177, - 33216 - 11904: 0xC176, - 33217 - 11904: 0x99AA, - 33218 - 11904: 0xC175, - 33219 - 11904: 0xC173, - 33220 - 11904: 0xEDE9, - 33221 - 11904: 0xEDEC, - 33222 - 11904: 0xC172, - 33223 - 11904: 0xEDED, - 33224 - 11904: 0xA0C8, - 33225 - 11904: 0xC179, - 33226 - 11904: 0xEDEB, - 33228 - 11904: 0xEDEA, - 33229 - 11904: 0xC2C0, - 33231 - 11904: 0xC2C1, - 33232 - 11904: 0xF0A1, - 33233 - 11904: 0xF07D, - 33234 - 11904: 0xF07E, - 33237 - 11904: 0xF2C2, - 33239 - 11904: 0xF2C1, - 33240 - 11904: 0xC3BE, - 33241 - 11904: 0xF4B4, - 33242 - 11904: 0xC4A4, - 33243 - 11904: 0xF4B3, - 33245 - 11904: 0xF5F0, - 33246 - 11904: 0xF745, - 33247 - 11904: 0xC5A6, - 33248 - 11904: 0xF943, - 33249 - 11904: 0xF944, - 33250 - 11904: 0xC5D8, - 33251 - 11904: 0xA6DA, - 33252 - 11904: 0x99AB, - 33253 - 11904: 0xAAD7, - 33254 - 11904: 0xDB52, - 33255 - 11904: 0xBB4E, - 33256 - 11904: 0xC17B, - 33257 - 11904: 0xEDEF, - 33258 - 11904: 0xA6DB, - 33260 - 11904: 0xAFE5, - 33261 - 11904: 0xAFE4, - 33262 - 11904: 0xDB53, - 33263 - 11904: 0xFEC4, - 33266 - 11904: 0xEAF4, - 33267 - 11904: 0xA6DC, - 33268 - 11904: 0xAD50, - 33270 - 11904: 0x98C2, - 33271 - 11904: 0xDB54, - 33272 - 11904: 0xDB55, - 33273 - 11904: 0xDB56, - 33274 - 11904: 0xBB4F, - 33275 - 11904: 0xBFB2, - 33276 - 11904: 0xA6DD, - 33278 - 11904: 0xAAD8, - 33279 - 11904: 0xD068, - 33280 - 11904: 0xAFE6, - 33281 - 11904: 0xD370, - 33282 - 11904: 0xB2EA, - 33284 - 11904: 0xDB57, - 33285 - 11904: 0xB8A4, - 33287 - 11904: 0xBB50, - 33288 - 11904: 0xBFB3, - 33289 - 11904: 0xC17C, - 33290 - 11904: 0xC2C2, - 33291 - 11904: 0xF4B5, - 33292 - 11904: 0xA6DE, - 33293 - 11904: 0xAAD9, - 33296 - 11904: 0xAFE7, - 33297 - 11904: 0xD752, - 33298 - 11904: 0xB5CE, - 33300 - 11904: 0xBB51, - 33301 - 11904: 0xE3AB, - 33302 - 11904: 0xE745, - 33304 - 11904: 0x8EE8, - 33306 - 11904: 0xA0BA, - 33307 - 11904: 0xA6DF, - 33308 - 11904: 0xB5CF, - 33309 - 11904: 0xDFA3, - 33310 - 11904: 0xBB52, - 33311 - 11904: 0xA6E0, - 33312 - 11904: 0xCDB1, - 33313 - 11904: 0xD069, - 33314 - 11904: 0xAD51, - 33317 - 11904: 0xD372, - 33318 - 11904: 0xFD77, - 33320 - 11904: 0xAFEA, - 33321 - 11904: 0x8EEE, - 33322 - 11904: 0xAFE8, - 33323 - 11904: 0xAFE9, - 33324 - 11904: 0xAFEB, - 33325 - 11904: 0x9EBF, - 33327 - 11904: 0xD371, - 33330 - 11904: 0xD757, - 33331 - 11904: 0xD754, - 33332 - 11904: 0xD756, - 33333 - 11904: 0xB2EB, - 33334 - 11904: 0xB2ED, - 33335 - 11904: 0xB2EC, - 33336 - 11904: 0xD753, - 33337 - 11904: 0xB2EE, - 33338 - 11904: 0xD755, - 33340 - 11904: 0xDB58, - 33341 - 11904: 0xDB59, - 33342 - 11904: 0x89C2, - 33343 - 11904: 0xDB5A, - 33344 - 11904: 0xDFA6, - 33346 - 11904: 0xDFA7, - 33348 - 11904: 0xDFA5, - 33349 - 11904: 0xDFA8, - 33351 - 11904: 0xB8A5, - 33353 - 11904: 0xDFA4, - 33355 - 11904: 0xBB53, - 33358 - 11904: 0xE74A, - 33359 - 11904: 0xE746, - 33360 - 11904: 0xE749, - 33361 - 11904: 0xE74B, - 33362 - 11904: 0xE748, - 33363 - 11904: 0xE747, - 33364 - 11904: 0x99AC, - 33365 - 11904: 0xEAF5, - 33366 - 11904: 0xEAF6, - 33367 - 11904: 0xEAF7, - 33368 - 11904: 0xBFB4, - 33369 - 11904: 0xBFB5, - 33370 - 11904: 0xEDF1, - 33371 - 11904: 0xEDF0, - 33372 - 11904: 0xEDF2, - 33374 - 11904: 0xF0A3, - 33375 - 11904: 0xF0A2, - 33377 - 11904: 0xF2C4, - 33378 - 11904: 0x956B, - 33379 - 11904: 0xF2C5, - 33380 - 11904: 0xF2C3, - 33381 - 11904: 0x956C, - 33382 - 11904: 0xC4A5, - 33384 - 11904: 0xF4B6, - 33385 - 11904: 0xF4B7, - 33387 - 11904: 0xF746, - 33388 - 11904: 0xF7EF, - 33389 - 11904: 0xF8BB, - 33390 - 11904: 0xA6E1, - 33391 - 11904: 0xA87D, - 33393 - 11904: 0xC17D, - 33394 - 11904: 0xA6E2, - 33396 - 11904: 0xD758, - 33397 - 11904: 0xDB5B, - 33398 - 11904: 0x99AF, - 33399 - 11904: 0xC641, - 33400 - 11904: 0xCA4A, - 33401 - 11904: 0x994A, - 33402 - 11904: 0x8976, - 33403 - 11904: 0x8F48, - 33404 - 11904: 0xCA4B, - 33405 - 11904: 0xCA4D, - 33406 - 11904: 0xA6E3, - 33407 - 11904: 0xCA4E, - 33408 - 11904: 0xCA4C, - 33411 - 11904: 0xCBA2, - 33412 - 11904: 0xCBA3, - 33413 - 11904: 0xCB7B, - 33415 - 11904: 0xFBEE, - 33418 - 11904: 0xCBA1, - 33419 - 11904: 0xA8A1, - 33421 - 11904: 0xA8A2, - 33422 - 11904: 0xCB7C, - 33423 - 11904: 0xCB7A, - 33424 - 11904: 0xCB79, - 33425 - 11904: 0xCB7D, - 33426 - 11904: 0xA87E, - 33427 - 11904: 0xCB7E, - 33428 - 11904: 0xD06A, - 33432 - 11904: 0xCDB6, - 33433 - 11904: 0xAADC, - 33434 - 11904: 0xCDB5, - 33435 - 11904: 0xCDB7, - 33437 - 11904: 0xAADB, - 33438 - 11904: 0xCDBC, - 33439 - 11904: 0xAADF, - 33440 - 11904: 0xCDB2, - 33441 - 11904: 0xCDC0, - 33442 - 11904: 0xCDC6, - 33443 - 11904: 0xAAE6, - 33444 - 11904: 0xCDC3, - 33445 - 11904: 0xAAE3, - 33446 - 11904: 0x99AE, - 33447 - 11904: 0xCDB9, - 33448 - 11904: 0xCDBF, - 33449 - 11904: 0xCDC1, - 33450 - 11904: 0x8EFB, - 33451 - 11904: 0xCDB4, - 33452 - 11904: 0xAAE2, - 33453 - 11904: 0xAADD, - 33454 - 11904: 0xCDBA, - 33455 - 11904: 0xAAE4, - 33456 - 11904: 0xAAE7, - 33457 - 11904: 0xAAE1, - 33459 - 11904: 0xAADA, - 33460 - 11904: 0xCDBE, - 33461 - 11904: 0xCDB8, - 33462 - 11904: 0xCDC5, - 33463 - 11904: 0xAAE9, - 33464 - 11904: 0xAAE5, - 33465 - 11904: 0xAAE0, - 33466 - 11904: 0xCDBD, - 33467 - 11904: 0xAFEC, - 33468 - 11904: 0xCDBB, - 33469 - 11904: 0xAADE, - 33470 - 11904: 0xAAE8, - 33471 - 11904: 0x8CD0, - 33472 - 11904: 0xCDB3, - 33474 - 11904: 0xCDC2, - 33475 - 11904: 0xCDC4, - 33476 - 11904: 0x8B52, - 33482 - 11904: 0x99B0, - 33487 - 11904: 0x8977, - 33488 - 11904: 0x8F41, - 33489 - 11904: 0xAD62, - 33490 - 11904: 0xAD5C, - 33491 - 11904: 0xAD64, - 33492 - 11904: 0xAD61, - 33493 - 11904: 0xD071, - 33494 - 11904: 0xD074, - 33495 - 11904: 0xAD5D, - 33496 - 11904: 0x99B1, - 33497 - 11904: 0xD06B, - 33499 - 11904: 0xAD56, - 33500 - 11904: 0xAD60, - 33502 - 11904: 0xAD63, - 33503 - 11904: 0xAD65, - 33504 - 11904: 0xD0A2, - 33505 - 11904: 0xD077, - 33506 - 11904: 0x8F49, - 33507 - 11904: 0xAD55, - 33508 - 11904: 0xD0A1, - 33509 - 11904: 0xAD59, - 33510 - 11904: 0xAD57, - 33511 - 11904: 0xAD52, - 33512 - 11904: 0xD06F, - 33514 - 11904: 0xD07E, - 33515 - 11904: 0xD073, - 33516 - 11904: 0xD076, - 33517 - 11904: 0xD0A5, - 33518 - 11904: 0xFA4D, - 33519 - 11904: 0xAD66, - 33520 - 11904: 0xD07D, - 33521 - 11904: 0xAD5E, - 33522 - 11904: 0xD078, - 33523 - 11904: 0xD0A4, - 33524 - 11904: 0xD075, - 33525 - 11904: 0xD079, - 33526 - 11904: 0xD07C, - 33527 - 11904: 0x9DE4, - 33528 - 11904: 0x8CB5, - 33529 - 11904: 0xD06D, - 33530 - 11904: 0xD0A3, - 33531 - 11904: 0xD07B, - 33532 - 11904: 0xFBE9, - 33533 - 11904: 0x9B54, - 33534 - 11904: 0xD06C, - 33535 - 11904: 0x99B2, - 33536 - 11904: 0xD070, - 33537 - 11904: 0xAD5F, - 33538 - 11904: 0xAD5A, - 33539 - 11904: 0xAD53, - 33540 - 11904: 0xAD58, - 33541 - 11904: 0xAD54, - 33542 - 11904: 0xAD67, - 33543 - 11904: 0xD06E, - 33544 - 11904: 0xD3A5, - 33545 - 11904: 0xAD5B, - 33547 - 11904: 0x9E68, - 33548 - 11904: 0xD07A, - 33549 - 11904: 0xCE41, - 33558 - 11904: 0xD3A8, - 33559 - 11904: 0xAFFA, - 33560 - 11904: 0x8F4A, - 33561 - 11904: 0xD376, - 33562 - 11904: 0x8F42, - 33563 - 11904: 0xD3A3, - 33564 - 11904: 0xD37D, - 33565 - 11904: 0x8F51, - 33566 - 11904: 0xD3B2, - 33568 - 11904: 0xD3AA, - 33570 - 11904: 0xD37E, - 33572 - 11904: 0xD3A9, - 33573 - 11904: 0xD378, - 33574 - 11904: 0xD37C, - 33575 - 11904: 0xD3B5, - 33576 - 11904: 0xAFFD, - 33577 - 11904: 0xD3AD, - 33578 - 11904: 0xD3A4, - 33579 - 11904: 0xAFED, - 33580 - 11904: 0xD3B3, - 33581 - 11904: 0xD374, - 33583 - 11904: 0xD3AC, - 33585 - 11904: 0xAFFC, - 33586 - 11904: 0xAFF7, - 33587 - 11904: 0xD373, - 33588 - 11904: 0xAFF5, - 33589 - 11904: 0xAFF4, - 33590 - 11904: 0xAFF9, - 33591 - 11904: 0xD3AB, - 33592 - 11904: 0xAFF1, - 33593 - 11904: 0xAFF8, - 33594 - 11904: 0xD072, - 33595 - 11904: 0xDB5C, - 33596 - 11904: 0xD3A6, - 33597 - 11904: 0x9846, - 33599 - 11904: 0xD37A, - 33600 - 11904: 0xAFFB, - 33601 - 11904: 0xD37B, - 33602 - 11904: 0xD3A1, - 33603 - 11904: 0xAFFE, - 33604 - 11904: 0xD375, - 33605 - 11904: 0xD3AF, - 33607 - 11904: 0xD3AE, - 33608 - 11904: 0xD3B6, - 33609 - 11904: 0xAFF3, - 33610 - 11904: 0xAFF0, - 33611 - 11904: 0xD3B4, - 33612 - 11904: 0xD3B0, - 33613 - 11904: 0xD3A7, - 33614 - 11904: 0xD3A2, - 33615 - 11904: 0xAFF6, - 33616 - 11904: 0xAFF2, - 33617 - 11904: 0xD377, - 33618 - 11904: 0xAFEE, - 33619 - 11904: 0xD3B1, - 33620 - 11904: 0xAFEF, - 33622 - 11904: 0xD379, - 33623 - 11904: 0x99B4, - 33634 - 11904: 0x8EF5, - 33635 - 11904: 0xFD55, - 33638 - 11904: 0x9CCD, - 33647 - 11904: 0x8978, - 33651 - 11904: 0xD75E, - 33652 - 11904: 0xD760, - 33653 - 11904: 0xD765, - 33654 - 11904: 0xD779, - 33655 - 11904: 0xB2FC, - 33656 - 11904: 0xB2F2, - 33658 - 11904: 0xD75D, - 33659 - 11904: 0xB2FD, - 33660 - 11904: 0xB2FE, - 33661 - 11904: 0xD768, - 33662 - 11904: 0xD76F, - 33663 - 11904: 0xD775, - 33665 - 11904: 0xD762, - 33667 - 11904: 0xD769, - 33669 - 11904: 0x8F53, - 33670 - 11904: 0xB340, - 33671 - 11904: 0xD777, - 33672 - 11904: 0xD772, - 33673 - 11904: 0xB2FA, - 33674 - 11904: 0xB2F8, - 33675 - 11904: 0xD76E, - 33676 - 11904: 0xD76A, - 33677 - 11904: 0xD75C, - 33678 - 11904: 0xB2EF, - 33679 - 11904: 0xD761, - 33680 - 11904: 0xD759, - 33681 - 11904: 0x8F6F, - 33682 - 11904: 0xB2F7, - 33683 - 11904: 0xB2F9, - 33684 - 11904: 0xD766, - 33685 - 11904: 0xD763, - 33686 - 11904: 0xB2F4, - 33687 - 11904: 0xD773, - 33688 - 11904: 0xB2F1, - 33689 - 11904: 0xD764, - 33690 - 11904: 0xD77A, - 33691 - 11904: 0xD76C, - 33692 - 11904: 0x8E63, - 33693 - 11904: 0xD76B, - 33694 - 11904: 0xB2F0, - 33696 - 11904: 0xB2FB, - 33698 - 11904: 0xB2F3, - 33699 - 11904: 0xD75A, - 33700 - 11904: 0xD75F, - 33701 - 11904: 0xD770, - 33702 - 11904: 0xD776, - 33703 - 11904: 0xB341, - 33704 - 11904: 0xD75B, - 33705 - 11904: 0xD767, - 33706 - 11904: 0xD76D, - 33707 - 11904: 0xB2F6, - 33708 - 11904: 0x8F56, - 33710 - 11904: 0xD778, - 33711 - 11904: 0xD771, - 33712 - 11904: 0xD774, - 33721 - 11904: 0xFE76, - 33725 - 11904: 0xB2F5, - 33726 - 11904: 0x9FC6, - 33727 - 11904: 0xDB6C, - 33728 - 11904: 0xDB60, - 33729 - 11904: 0xB5D7, - 33730 - 11904: 0xDB7D, - 33731 - 11904: 0xDBA7, - 33732 - 11904: 0xDBAA, - 33733 - 11904: 0xB5D5, - 33734 - 11904: 0xDB68, - 33735 - 11904: 0xDBA3, - 33736 - 11904: 0xDB69, - 33737 - 11904: 0xDB77, - 33738 - 11904: 0xB5E2, - 33739 - 11904: 0xDB73, - 33740 - 11904: 0xB5DF, - 33741 - 11904: 0xFAAC, - 33742 - 11904: 0xDB74, - 33743 - 11904: 0xDB5D, - 33745 - 11904: 0xDBA4, - 33747 - 11904: 0x8F58, - 33748 - 11904: 0xB5E8, - 33749 - 11904: 0xDBA1, - 33750 - 11904: 0xDB75, - 33751 - 11904: 0xDBAC, - 33752 - 11904: 0xDB70, - 33753 - 11904: 0xDFC8, - 33755 - 11904: 0xDBAF, - 33756 - 11904: 0xB5E6, - 33757 - 11904: 0xDB6E, - 33758 - 11904: 0xDB7A, - 33759 - 11904: 0xB5E9, - 33760 - 11904: 0xB5D4, - 33761 - 11904: 0xDB72, - 33762 - 11904: 0xDBAD, - 33763 - 11904: 0xDB6B, - 33764 - 11904: 0xDB64, - 33765 - 11904: 0xDB6F, - 33767 - 11904: 0xDB63, - 33768 - 11904: 0xDB61, - 33769 - 11904: 0xB5D0, - 33770 - 11904: 0xDBA5, - 33771 - 11904: 0xDB6A, - 33772 - 11904: 0xDBA8, - 33773 - 11904: 0x9848, - 33774 - 11904: 0xDBA9, - 33775 - 11904: 0xB5D8, - 33776 - 11904: 0xB5DD, - 33777 - 11904: 0xB5D9, - 33778 - 11904: 0xB5E1, - 33779 - 11904: 0xDB7E, - 33780 - 11904: 0xB5DA, - 33781 - 11904: 0xDB76, - 33782 - 11904: 0xDB66, - 33784 - 11904: 0xB5D2, - 33785 - 11904: 0xDB5E, - 33786 - 11904: 0xDBA2, - 33787 - 11904: 0xDBAB, - 33788 - 11904: 0xDB65, - 33789 - 11904: 0xB5E0, - 33790 - 11904: 0xDBB0, - 33791 - 11904: 0xDB71, - 33793 - 11904: 0xDB6D, - 33795 - 11904: 0xB5D1, - 33796 - 11904: 0xB5E5, - 33797 - 11904: 0x99B7, - 33798 - 11904: 0xDB7C, - 33799 - 11904: 0xB5E7, - 33801 - 11904: 0xDB78, - 33802 - 11904: 0xB5DC, - 33803 - 11904: 0xB5D6, - 33804 - 11904: 0xB5DE, - 33805 - 11904: 0xB5D3, - 33806 - 11904: 0xB5E4, - 33807 - 11904: 0xDB79, - 33808 - 11904: 0xDB67, - 33809 - 11904: 0xDB7B, - 33810 - 11904: 0xDB62, - 33811 - 11904: 0xDBA6, - 33812 - 11904: 0x9665, - 33814 - 11904: 0xFA6C, - 33816 - 11904: 0x9DE7, - 33819 - 11904: 0xDBAE, - 33820 - 11904: 0x9E62, - 33824 - 11904: 0x96CC, - 33825 - 11904: 0x8E67, - 33827 - 11904: 0xDB5F, - 33828 - 11904: 0xFC75, - 33830 - 11904: 0x987E, - 33833 - 11904: 0xDFC7, - 33835 - 11904: 0xDFDD, - 33836 - 11904: 0xB855, - 33837 - 11904: 0xDFCC, - 33838 - 11904: 0xFDB9, - 33839 - 11904: 0xDFCA, - 33840 - 11904: 0xDFB5, - 33841 - 11904: 0xB8A9, - 33842 - 11904: 0xDFC5, - 33843 - 11904: 0xDFD9, - 33844 - 11904: 0xDFC1, - 33845 - 11904: 0xB8B1, - 33846 - 11904: 0xDFD8, - 33847 - 11904: 0xDFBF, - 33848 - 11904: 0xB5E3, - 33849 - 11904: 0xDFCF, - 33850 - 11904: 0xDFC0, - 33851 - 11904: 0xDFD6, - 33852 - 11904: 0xB8B0, - 33853 - 11904: 0xB8A8, - 33854 - 11904: 0x97FC, - 33855 - 11904: 0xDFAA, - 33856 - 11904: 0xDFB2, - 33858 - 11904: 0xDFCB, - 33859 - 11904: 0xDFC3, - 33860 - 11904: 0xDFDC, - 33861 - 11904: 0xDFC6, - 33862 - 11904: 0xB8B6, - 33863 - 11904: 0xDFD7, - 33864 - 11904: 0x98F9, - 33865 - 11904: 0xB8AD, - 33866 - 11904: 0x8F66, - 33867 - 11904: 0xDFC9, - 33868 - 11904: 0xDFD1, - 33869 - 11904: 0xDFB6, - 33870 - 11904: 0xDFD0, - 33872 - 11904: 0xDFE1, - 33873 - 11904: 0xDFB1, - 33874 - 11904: 0xDFD2, - 33875 - 11904: 0x956E, - 33876 - 11904: 0xDFDF, - 33877 - 11904: 0x9245, - 33878 - 11904: 0xDFAB, - 33879 - 11904: 0xB5DB, - 33880 - 11904: 0x8F60, - 33881 - 11904: 0xDFB9, - 33882 - 11904: 0xDFB8, - 33883 - 11904: 0xB8AF, - 33884 - 11904: 0x9ED1, - 33885 - 11904: 0xDFBC, - 33886 - 11904: 0xDFBE, - 33887 - 11904: 0xDFCD, - 33888 - 11904: 0xDFDE, - 33889 - 11904: 0xB8B2, - 33890 - 11904: 0xFECD, - 33891 - 11904: 0xB8B3, - 33892 - 11904: 0x99B9, - 33893 - 11904: 0xDFB0, - 33894 - 11904: 0xB8AB, - 33895 - 11904: 0xDFB4, - 33896 - 11904: 0xDFDA, - 33897 - 11904: 0xB8B4, - 33899 - 11904: 0xB8AC, - 33900 - 11904: 0xB8AE, - 33901 - 11904: 0xB8B5, - 33902 - 11904: 0xDFE0, - 33903 - 11904: 0xDFD3, - 33904 - 11904: 0xDFCE, - 33905 - 11904: 0x8F62, - 33906 - 11904: 0x974C, - 33907 - 11904: 0xDFBB, - 33908 - 11904: 0xDFBA, - 33909 - 11904: 0xB8AA, - 33910 - 11904: 0xDFAC, - 33911 - 11904: 0xB8A7, - 33912 - 11904: 0xDFC4, - 33913 - 11904: 0xDFAD, - 33914 - 11904: 0xDFC2, - 33917 - 11904: 0xDFB7, - 33918 - 11904: 0xDFDB, - 33919 - 11904: 0x91C7, - 33920 - 11904: 0x955F, - 33922 - 11904: 0xB8A6, - 33924 - 11904: 0x87AB, - 33926 - 11904: 0xDFB3, - 33928 - 11904: 0x99BB, - 33933 - 11904: 0xDFAF, - 33934 - 11904: 0xDFD5, - 33935 - 11904: 0xDFAE, - 33936 - 11904: 0xBB60, - 33937 - 11904: 0xE3D3, - 33938 - 11904: 0x8E6D, - 33939 - 11904: 0x8F71, - 33940 - 11904: 0xE3C2, - 33942 - 11904: 0x94CB, - 33943 - 11904: 0xE3AC, - 33944 - 11904: 0xE3CA, - 33945 - 11904: 0xBB58, - 33946 - 11904: 0xE3BB, - 33947 - 11904: 0xE3C5, - 33948 - 11904: 0xBB5B, - 33949 - 11904: 0xE3BE, - 33950 - 11904: 0xBB59, - 33951 - 11904: 0xE3AF, - 33952 - 11904: 0xE3CD, - 33953 - 11904: 0xE3AE, - 33954 - 11904: 0xE3C1, - 33955 - 11904: 0x95B1, - 33956 - 11904: 0xE3AD, - 33959 - 11904: 0xE3BF, - 33960 - 11904: 0xE3C8, - 33961 - 11904: 0xE3C6, - 33962 - 11904: 0xE3BA, - 33963 - 11904: 0xE3B5, - 33964 - 11904: 0xE3B3, - 33965 - 11904: 0x9AF2, - 33966 - 11904: 0xE3B4, - 33967 - 11904: 0xE3C7, - 33968 - 11904: 0xE3D2, - 33969 - 11904: 0xE3BC, - 33970 - 11904: 0xBB5A, - 33972 - 11904: 0xE3B7, - 33974 - 11904: 0xE3CB, - 33976 - 11904: 0xBB5D, - 33977 - 11904: 0xE3B6, - 33978 - 11904: 0xE3B0, - 33979 - 11904: 0xE3C0, - 33980 - 11904: 0xBB61, - 33981 - 11904: 0x96C3, - 33982 - 11904: 0x99BD, - 33983 - 11904: 0xBB55, - 33984 - 11904: 0xBB5E, - 33985 - 11904: 0xE3B8, - 33986 - 11904: 0xE3B2, - 33988 - 11904: 0xBB57, - 33989 - 11904: 0xDFD4, - 33990 - 11904: 0xBB56, - 33991 - 11904: 0xE3C3, - 33993 - 11904: 0xBB54, - 33994 - 11904: 0xBB63, - 33995 - 11904: 0xBB5C, - 33996 - 11904: 0xE3C4, - 33997 - 11904: 0xE3B9, - 33998 - 11904: 0xE3B1, - 33999 - 11904: 0xE3CC, - 34000 - 11904: 0xE3BD, - 34001 - 11904: 0xBB62, - 34002 - 11904: 0xE3D0, - 34003 - 11904: 0xBB5F, - 34004 - 11904: 0xE3CF, - 34006 - 11904: 0xE3C9, - 34007 - 11904: 0xE3CE, - 34010 - 11904: 0xA0CF, - 34011 - 11904: 0xE3D1, - 34014 - 11904: 0x8F6D, - 34017 - 11904: 0x99BE, - 34018 - 11904: 0x8EF4, - 34020 - 11904: 0x8F72, - 34021 - 11904: 0x95E4, - 34023 - 11904: 0xE773, - 34024 - 11904: 0xE774, - 34025 - 11904: 0xE767, - 34026 - 11904: 0xE766, - 34027 - 11904: 0xE762, - 34028 - 11904: 0xBDB4, - 34030 - 11904: 0xBDAC, - 34031 - 11904: 0xE776, - 34032 - 11904: 0xE775, - 34033 - 11904: 0xDFA9, - 34034 - 11904: 0xE75F, - 34035 - 11904: 0xE763, - 34036 - 11904: 0xE75D, - 34038 - 11904: 0xE770, - 34039 - 11904: 0xE761, - 34040 - 11904: 0x99BF, - 34041 - 11904: 0xE777, - 34042 - 11904: 0xE75A, - 34043 - 11904: 0xE758, - 34044 - 11904: 0xE764, - 34045 - 11904: 0xE76E, - 34046 - 11904: 0xE769, - 34047 - 11904: 0xBDB6, - 34048 - 11904: 0xE74F, - 34050 - 11904: 0xE76D, - 34051 - 11904: 0x9244, - 34052 - 11904: 0x87D7, - 34053 - 11904: 0xFBA5, - 34054 - 11904: 0xBDB7, - 34055 - 11904: 0xDFBD, - 34056 - 11904: 0xE75B, - 34057 - 11904: 0xE752, - 34058 - 11904: 0xE755, - 34059 - 11904: 0xE77B, - 34060 - 11904: 0xE75C, - 34061 - 11904: 0xE753, - 34062 - 11904: 0xE751, - 34063 - 11904: 0xE74E, - 34064 - 11904: 0x99C0, - 34065 - 11904: 0xBDB0, - 34066 - 11904: 0xE765, - 34067 - 11904: 0xBDAF, - 34068 - 11904: 0xBDB3, - 34069 - 11904: 0xE760, - 34070 - 11904: 0xE768, - 34071 - 11904: 0xBDA9, - 34072 - 11904: 0xE778, - 34073 - 11904: 0xE77C, - 34074 - 11904: 0xBDAB, - 34076 - 11904: 0xE757, - 34077 - 11904: 0xE76B, - 34078 - 11904: 0xE76F, - 34079 - 11904: 0xE754, - 34080 - 11904: 0xE779, - 34081 - 11904: 0xBDB2, - 34083 - 11904: 0xBDB1, - 34084 - 11904: 0xE74C, - 34085 - 11904: 0xBDB5, - 34086 - 11904: 0xE772, - 34087 - 11904: 0xE756, - 34088 - 11904: 0xE76A, - 34089 - 11904: 0xE750, - 34090 - 11904: 0xE75E, - 34091 - 11904: 0xE759, - 34092 - 11904: 0xBDAD, - 34093 - 11904: 0xBDAE, - 34094 - 11904: 0xE76C, - 34095 - 11904: 0xE77D, - 34096 - 11904: 0xE77A, - 34097 - 11904: 0xE771, - 34099 - 11904: 0xFDB4, - 34100 - 11904: 0x8F77, - 34104 - 11904: 0x99C1, - 34107 - 11904: 0xE74D, - 34109 - 11904: 0xBDAA, - 34110 - 11904: 0xEB49, - 34112 - 11904: 0xEB40, - 34113 - 11904: 0xEB43, - 34114 - 11904: 0xFAB9, - 34115 - 11904: 0xBFBB, - 34116 - 11904: 0xEB45, - 34117 - 11904: 0xEAF9, - 34118 - 11904: 0xEB41, - 34119 - 11904: 0xEB47, - 34120 - 11904: 0xBFB8, - 34121 - 11904: 0xBFBC, - 34122 - 11904: 0xBFB6, - 34123 - 11904: 0x8F40, - 34124 - 11904: 0xFA44, - 34125 - 11904: 0xEAFB, - 34126 - 11904: 0xEB4C, - 34129 - 11904: 0xEB46, - 34130 - 11904: 0x99C2, - 34131 - 11904: 0xEAFC, - 34132 - 11904: 0xEB55, - 34133 - 11904: 0xEB4F, - 34134 - 11904: 0xEAF8, - 34135 - 11904: 0xEE46, - 34136 - 11904: 0xEAFE, - 34137 - 11904: 0xBFB7, - 34138 - 11904: 0x8F5C, - 34139 - 11904: 0xEB4A, - 34141 - 11904: 0xEB54, - 34142 - 11904: 0xBFBF, - 34143 - 11904: 0x8CBD, - 34144 - 11904: 0xEB51, - 34145 - 11904: 0xEAFD, - 34146 - 11904: 0xEB44, - 34147 - 11904: 0xEB48, - 34148 - 11904: 0xEB42, - 34149 - 11904: 0xEB56, - 34150 - 11904: 0xEB53, - 34151 - 11904: 0xEB50, - 34152 - 11904: 0xBFB9, - 34153 - 11904: 0xBFBA, - 34154 - 11904: 0xBFBE, - 34155 - 11904: 0xEAFA, - 34156 - 11904: 0xEB57, - 34157 - 11904: 0xBFBD, - 34158 - 11904: 0xEB4D, - 34159 - 11904: 0x99C4, - 34160 - 11904: 0x99C5, - 34161 - 11904: 0xEB4B, - 34163 - 11904: 0x8F7B, - 34165 - 11904: 0xEB4E, - 34166 - 11904: 0xEE53, - 34167 - 11904: 0xEE40, - 34168 - 11904: 0xEE45, - 34169 - 11904: 0xEE52, - 34170 - 11904: 0xEE44, - 34171 - 11904: 0xEDFB, - 34172 - 11904: 0xEE41, - 34174 - 11904: 0xC1A2, - 34176 - 11904: 0xEDF4, - 34177 - 11904: 0xEE4D, - 34178 - 11904: 0xEE4F, - 34179 - 11904: 0xEDF3, - 34180 - 11904: 0xC1A1, - 34181 - 11904: 0xEE51, - 34182 - 11904: 0xEE49, - 34183 - 11904: 0xC1A8, - 34184 - 11904: 0xEE50, - 34185 - 11904: 0xEE42, - 34186 - 11904: 0xC1AA, - 34187 - 11904: 0xEDF9, - 34188 - 11904: 0xEB52, - 34189 - 11904: 0xEE4A, - 34190 - 11904: 0xEE47, - 34191 - 11904: 0xEDF5, - 34192 - 11904: 0xEE55, - 34193 - 11904: 0xC1A4, - 34195 - 11904: 0x8776, - 34196 - 11904: 0xC1A5, - 34197 - 11904: 0xEDF7, - 34198 - 11904: 0xEE48, - 34199 - 11904: 0x8CB6, - 34200 - 11904: 0xEE54, - 34201 - 11904: 0xEE4B, - 34202 - 11904: 0xEDFD, - 34203 - 11904: 0xC1A7, - 34204 - 11904: 0xC1A3, - 34205 - 11904: 0xEE4C, - 34206 - 11904: 0xEDFE, - 34207 - 11904: 0xEE56, - 34208 - 11904: 0xEDF8, - 34209 - 11904: 0xEE43, - 34210 - 11904: 0xEE4E, - 34211 - 11904: 0xEDFA, - 34212 - 11904: 0xEDFC, - 34214 - 11904: 0xC2CB, - 34215 - 11904: 0xEDF6, - 34216 - 11904: 0xC1A9, - 34217 - 11904: 0xC2C4, - 34218 - 11904: 0xC17E, - 34223 - 11904: 0xC1A6, - 34224 - 11904: 0xC2C8, - 34225 - 11904: 0xF0B3, - 34227 - 11904: 0xF0A9, - 34228 - 11904: 0xF0A4, - 34229 - 11904: 0xF0AA, - 34230 - 11904: 0xF0B4, - 34231 - 11904: 0xF0B8, - 34232 - 11904: 0xF0B7, - 34233 - 11904: 0xC2CA, - 34234 - 11904: 0xC2C9, - 34237 - 11904: 0xF0AB, - 34238 - 11904: 0xF0B9, - 34239 - 11904: 0xF0AE, - 34240 - 11904: 0xF0A6, - 34241 - 11904: 0x8FA3, - 34242 - 11904: 0xF0A8, - 34243 - 11904: 0xF0A7, - 34244 - 11904: 0xF0AD, - 34245 - 11904: 0xF0B2, - 34246 - 11904: 0xF0A5, - 34247 - 11904: 0xF0AC, - 34248 - 11904: 0xF0B1, - 34249 - 11904: 0xC2C7, - 34251 - 11904: 0xF0AF, - 34253 - 11904: 0xC2C5, - 34254 - 11904: 0xF0B0, - 34255 - 11904: 0xC2C3, - 34256 - 11904: 0xC2C6, - 34257 - 11904: 0xF2D5, - 34258 - 11904: 0xF0B5, - 34261 - 11904: 0xC3C2, - 34262 - 11904: 0x8CCE, - 34263 - 11904: 0xF2CD, - 34264 - 11904: 0xF2D1, - 34265 - 11904: 0xF2C9, - 34266 - 11904: 0xF2CC, - 34268 - 11904: 0xF2D4, - 34269 - 11904: 0xC3C0, - 34270 - 11904: 0xF2D9, - 34271 - 11904: 0xF2D2, - 34272 - 11904: 0x99C6, - 34273 - 11904: 0xF2CA, - 34274 - 11904: 0xF2DA, - 34275 - 11904: 0xF2D3, - 34276 - 11904: 0xC3C3, - 34277 - 11904: 0xC3C4, - 34278 - 11904: 0xF2D7, - 34280 - 11904: 0xF2CB, - 34281 - 11904: 0xC3BF, - 34282 - 11904: 0xC3C1, - 34283 - 11904: 0xF2C6, - 34284 - 11904: 0xF2CE, - 34285 - 11904: 0xF2C8, - 34286 - 11904: 0x96CD, - 34287 - 11904: 0xF2D8, - 34288 - 11904: 0xF2D6, - 34289 - 11904: 0xF2C7, - 34290 - 11904: 0xF2CF, - 34294 - 11904: 0xF4BE, - 34295 - 11904: 0xC3C5, - 34296 - 11904: 0xF2D0, - 34297 - 11904: 0xC4A7, - 34298 - 11904: 0xC4A9, - 34299 - 11904: 0xC4A6, - 34300 - 11904: 0x96C7, - 34301 - 11904: 0xF4C3, - 34302 - 11904: 0xF4BB, - 34303 - 11904: 0xF4B9, - 34304 - 11904: 0xF4BD, - 34305 - 11904: 0xF4BA, - 34306 - 11904: 0x8FA5, - 34308 - 11904: 0xF4BF, - 34309 - 11904: 0xF4C1, - 34310 - 11904: 0xC4AA, - 34311 - 11904: 0xC4AC, - 34313 - 11904: 0xF4C0, - 34314 - 11904: 0xC4AD, - 34315 - 11904: 0xC4AB, - 34316 - 11904: 0xF4C2, - 34317 - 11904: 0xFABB, - 34319 - 11904: 0x8C61, - 34320 - 11904: 0x9570, - 34321 - 11904: 0xC4A8, - 34323 - 11904: 0x87AF, - 34324 - 11904: 0x9368, - 34326 - 11904: 0x8F7E, - 34327 - 11904: 0xC4F4, - 34328 - 11904: 0xF5F1, - 34329 - 11904: 0xF5F7, - 34330 - 11904: 0xC4F6, - 34331 - 11904: 0xF4BC, - 34332 - 11904: 0xF5F6, - 34334 - 11904: 0xF5FD, - 34335 - 11904: 0xF5F4, - 34336 - 11904: 0xF5FB, - 34337 - 11904: 0xF5FA, - 34338 - 11904: 0xF4B8, - 34339 - 11904: 0xF5F5, - 34340 - 11904: 0xF0B6, - 34341 - 11904: 0xF5FE, - 34342 - 11904: 0xF5F3, - 34343 - 11904: 0xF5F8, - 34344 - 11904: 0x8FAA, - 34345 - 11904: 0xF5FC, - 34346 - 11904: 0xF5F2, - 34348 - 11904: 0xF74A, - 34349 - 11904: 0xC4F5, - 34350 - 11904: 0xF5F9, - 34351 - 11904: 0xA050, - 34353 - 11904: 0xF7F4, - 34354 - 11904: 0xF74B, - 34355 - 11904: 0xF749, - 34356 - 11904: 0xF747, - 34357 - 11904: 0xF748, - 34358 - 11904: 0xF74C, - 34360 - 11904: 0xC5D9, - 34361 - 11904: 0xF7F2, - 34362 - 11904: 0xF7F0, - 34363 - 11904: 0xF7F5, - 34364 - 11904: 0xF7F3, - 34366 - 11904: 0xF7F6, - 34367 - 11904: 0xC5DA, - 34368 - 11904: 0xF7F1, - 34370 - 11904: 0x90D3, - 34371 - 11904: 0xF8BC, - 34373 - 11904: 0x9556, - 34374 - 11904: 0xF945, - 34375 - 11904: 0xF946, - 34376 - 11904: 0xF947, - 34379 - 11904: 0xF9C7, - 34380 - 11904: 0xF9BD, - 34381 - 11904: 0xCA4F, - 34382 - 11904: 0xAAEA, - 34384 - 11904: 0xAD68, - 34386 - 11904: 0xD3B8, - 34387 - 11904: 0xD3B7, - 34388 - 11904: 0xB040, - 34389 - 11904: 0xB342, - 34390 - 11904: 0xD77C, - 34393 - 11904: 0xD77B, - 34395 - 11904: 0xB5EA, - 34396 - 11904: 0xB8B8, - 34398 - 11904: 0xB8B7, - 34399 - 11904: 0xB8B9, - 34401 - 11904: 0xE3D4, - 34402 - 11904: 0xE77E, - 34403 - 11904: 0xEB58, - 34404 - 11904: 0xEB5A, - 34405 - 11904: 0xEB59, - 34407 - 11904: 0xC1AB, - 34408 - 11904: 0xEE57, - 34409 - 11904: 0xF0BA, - 34410 - 11904: 0xF9A5, - 34411 - 11904: 0xA6E4, - 34412 - 11904: 0x8FB8, - 34413 - 11904: 0xCDC9, - 34414 - 11904: 0xCDCA, - 34415 - 11904: 0xCDC8, - 34416 - 11904: 0xCDC7, - 34417 - 11904: 0xAAEB, - 34418 - 11904: 0x99C8, - 34419 - 11904: 0xD0A9, - 34420 - 11904: 0xD0A7, - 34423 - 11904: 0xD0A6, - 34425 - 11904: 0xAD69, - 34426 - 11904: 0xAD6B, - 34427 - 11904: 0xAD6A, - 34428 - 11904: 0xD0A8, - 34430 - 11904: 0x8FAF, - 34437 - 11904: 0xD3C4, - 34438 - 11904: 0xD3C1, - 34439 - 11904: 0xD3BF, - 34442 - 11904: 0xB041, - 34443 - 11904: 0xD3C2, - 34444 - 11904: 0xB046, - 34445 - 11904: 0xD3BC, - 34446 - 11904: 0xD3CB, - 34448 - 11904: 0xD3CD, - 34449 - 11904: 0xD3BD, - 34450 - 11904: 0x99C9, - 34451 - 11904: 0xB043, - 34452 - 11904: 0xD3CE, - 34453 - 11904: 0xD3C9, - 34454 - 11904: 0xD3BB, - 34455 - 11904: 0xD3C0, - 34456 - 11904: 0xD3CA, - 34457 - 11904: 0xD3C6, - 34458 - 11904: 0xD3C3, - 34460 - 11904: 0xB048, - 34461 - 11904: 0xD3CC, - 34462 - 11904: 0xD3BE, - 34464 - 11904: 0x9579, - 34465 - 11904: 0xD3C7, - 34466 - 11904: 0xD3B9, - 34467 - 11904: 0xB047, - 34468 - 11904: 0xB044, - 34469 - 11904: 0xD3C5, - 34471 - 11904: 0xD3C8, - 34472 - 11904: 0xD3BA, - 34473 - 11904: 0xB045, - 34474 - 11904: 0xB042, - 34477 - 11904: 0x9F49, - 34479 - 11904: 0xB34C, - 34480 - 11904: 0xD7A5, - 34481 - 11904: 0xB34B, - 34482 - 11904: 0x99CA, - 34483 - 11904: 0xD7A8, - 34484 - 11904: 0xD7AB, - 34485 - 11904: 0xB348, - 34486 - 11904: 0xB346, - 34487 - 11904: 0xD77E, - 34488 - 11904: 0xD7A9, - 34489 - 11904: 0xD7A7, - 34490 - 11904: 0xD7A4, - 34491 - 11904: 0xD7AC, - 34492 - 11904: 0xD7AD, - 34493 - 11904: 0xD7AF, - 34494 - 11904: 0xD7B0, - 34495 - 11904: 0xD77D, - 34496 - 11904: 0xB345, - 34497 - 11904: 0xD7A2, - 34498 - 11904: 0xD7A1, - 34499 - 11904: 0xD7AE, - 34500 - 11904: 0xB347, - 34501 - 11904: 0xD7A3, - 34502 - 11904: 0xB349, - 34503 - 11904: 0xB344, - 34504 - 11904: 0xD7A6, - 34505 - 11904: 0xB34D, - 34507 - 11904: 0xB34A, - 34508 - 11904: 0xD7AA, - 34512 - 11904: 0xB5F1, - 34513 - 11904: 0xDBBF, - 34515 - 11904: 0xDBB4, - 34516 - 11904: 0xB5EE, - 34518 - 11904: 0xDFE7, - 34519 - 11904: 0xDBBD, - 34520 - 11904: 0xDBB1, - 34521 - 11904: 0xB5EC, - 34522 - 11904: 0xDBB6, - 34523 - 11904: 0xB5EF, - 34524 - 11904: 0xDBBA, - 34525 - 11904: 0xDBB8, - 34526 - 11904: 0xB5F2, - 34527 - 11904: 0xB5EB, - 34530 - 11904: 0xDBB2, - 34531 - 11904: 0xDBB5, - 34532 - 11904: 0xB5F0, - 34534 - 11904: 0xDBB3, - 34536 - 11904: 0xDBBE, - 34537 - 11904: 0xDBBC, - 34538 - 11904: 0xDBB7, - 34539 - 11904: 0xDBB9, - 34540 - 11904: 0xDBBB, - 34541 - 11904: 0xB5ED, - 34543 - 11904: 0x99CB, - 34549 - 11904: 0xDFE8, - 34550 - 11904: 0xDFEE, - 34551 - 11904: 0xDFE4, - 34552 - 11904: 0xDFEA, - 34553 - 11904: 0xB8BA, - 34554 - 11904: 0xDFE6, - 34555 - 11904: 0xB8C0, - 34558 - 11904: 0xB8BF, - 34560 - 11904: 0xB8BE, - 34561 - 11904: 0xDFED, - 34562 - 11904: 0xB8C1, - 34563 - 11904: 0xB8C2, - 34564 - 11904: 0xDFE3, - 34565 - 11904: 0xDFF0, - 34566 - 11904: 0xB8C3, - 34567 - 11904: 0xB8BD, - 34568 - 11904: 0xB8BC, - 34569 - 11904: 0xDFEC, - 34570 - 11904: 0xB8C4, - 34571 - 11904: 0xDFE2, - 34572 - 11904: 0xDFE5, - 34573 - 11904: 0xDFEF, - 34574 - 11904: 0xDFEB, - 34577 - 11904: 0xE3F4, - 34578 - 11904: 0xE3E9, - 34579 - 11904: 0xB8BB, - 34584 - 11904: 0xBB6A, - 34585 - 11904: 0xE3DD, - 34586 - 11904: 0xE3F2, - 34587 - 11904: 0xE3DE, - 34588 - 11904: 0xBB65, - 34590 - 11904: 0xE3DB, - 34592 - 11904: 0xE3E4, - 34593 - 11904: 0xE3DC, - 34594 - 11904: 0xBB67, - 34595 - 11904: 0xE3D6, - 34596 - 11904: 0xE3F1, - 34597 - 11904: 0xBB68, - 34598 - 11904: 0xE3EE, - 34599 - 11904: 0xE3EF, - 34600 - 11904: 0xE3D7, - 34601 - 11904: 0xBB6D, - 34602 - 11904: 0xE3E6, - 34604 - 11904: 0xE3E0, - 34605 - 11904: 0xE3E7, - 34606 - 11904: 0xE3DA, - 34608 - 11904: 0xE3F3, - 34609 - 11904: 0xE3EB, - 34610 - 11904: 0xE3E5, - 34611 - 11904: 0xE3D5, - 34612 - 11904: 0xBB69, - 34613 - 11904: 0xE3EC, - 34615 - 11904: 0xBB6C, - 34616 - 11904: 0xE3F0, - 34618 - 11904: 0xE3EA, - 34619 - 11904: 0xBB66, - 34620 - 11904: 0xE3E8, - 34622 - 11904: 0xE3E2, - 34623 - 11904: 0xBB64, - 34624 - 11904: 0xE3D9, - 34625 - 11904: 0xE3E1, - 34626 - 11904: 0xE3ED, - 34627 - 11904: 0xE3DF, - 34630 - 11904: 0xE3E3, - 34636 - 11904: 0xBDC1, - 34637 - 11904: 0xDFE9, - 34638 - 11904: 0xE7B2, - 34639 - 11904: 0xE7BB, - 34640 - 11904: 0xE7B1, - 34641 - 11904: 0xE7AD, - 34642 - 11904: 0xE7AA, - 34643 - 11904: 0xBDC2, - 34644 - 11904: 0xE7A8, - 34645 - 11904: 0xBB6B, - 34646 - 11904: 0xE7A1, - 34647 - 11904: 0xBDC0, - 34648 - 11904: 0xE7A7, - 34649 - 11904: 0xBDBF, - 34650 - 11904: 0xE7AC, - 34651 - 11904: 0xE7A9, - 34652 - 11904: 0xE7B9, - 34653 - 11904: 0xE7B4, - 34654 - 11904: 0xE7AE, - 34655 - 11904: 0xE7B3, - 34656 - 11904: 0xBDBB, - 34657 - 11904: 0xE7AB, - 34658 - 11904: 0xE7BE, - 34659 - 11904: 0xE7A2, - 34660 - 11904: 0xE7A3, - 34661 - 11904: 0xE7BA, - 34662 - 11904: 0xBDBC, - 34663 - 11904: 0xE7BF, - 34664 - 11904: 0xBDBE, - 34665 - 11904: 0xE7C0, - 34666 - 11904: 0xE7B0, - 34667 - 11904: 0xE3D8, - 34668 - 11904: 0xE7B6, - 34669 - 11904: 0xE7AF, - 34670 - 11904: 0xE7B8, - 34671 - 11904: 0xE7B5, - 34672 - 11904: 0x9DD5, - 34673 - 11904: 0x8FB0, - 34675 - 11904: 0xE7A6, - 34676 - 11904: 0xBDB9, - 34677 - 11904: 0xE7BD, - 34678 - 11904: 0xBDBA, - 34679 - 11904: 0xE7A4, - 34680 - 11904: 0xBDBD, - 34681 - 11904: 0xEB64, - 34682 - 11904: 0xE7B7, - 34683 - 11904: 0xE7BC, - 34685 - 11904: 0xFA7A, - 34689 - 11904: 0xEB61, - 34690 - 11904: 0xBDB8, - 34691 - 11904: 0xBFC0, - 34692 - 11904: 0xEB6B, - 34693 - 11904: 0xEB67, - 34694 - 11904: 0x9E5F, - 34695 - 11904: 0xEB65, - 34696 - 11904: 0xEB60, - 34697 - 11904: 0xEB6F, - 34699 - 11904: 0x99CD, - 34700 - 11904: 0xA0C9, - 34701 - 11904: 0xBFC4, - 34703 - 11904: 0xEB5C, - 34704 - 11904: 0xEB68, - 34705 - 11904: 0xEB69, - 34706 - 11904: 0xEB5F, - 34707 - 11904: 0xEB5E, - 34708 - 11904: 0xEB6C, - 34710 - 11904: 0xEB62, - 34711 - 11904: 0xEB5D, - 34712 - 11904: 0xEB63, - 34714 - 11904: 0xEB6E, - 34715 - 11904: 0xEB5B, - 34716 - 11904: 0xEB6D, - 34717 - 11904: 0xEB6A, - 34718 - 11904: 0xBFC2, - 34719 - 11904: 0xBFC1, - 34722 - 11904: 0xBFC3, - 34723 - 11904: 0xEB66, - 34724 - 11904: 0xF0CB, - 34725 - 11904: 0x9ADB, - 34729 - 11904: 0xA0C6, - 34730 - 11904: 0xEE59, - 34731 - 11904: 0xC1B1, - 34732 - 11904: 0xEE5D, - 34733 - 11904: 0xEE5A, - 34734 - 11904: 0xEE61, - 34735 - 11904: 0xEE67, - 34736 - 11904: 0xEE5C, - 34737 - 11904: 0x8FB4, - 34738 - 11904: 0xEE70, - 34739 - 11904: 0xC1AE, - 34740 - 11904: 0xEE6A, - 34741 - 11904: 0xEE5F, - 34742 - 11904: 0xEE6B, - 34743 - 11904: 0xEE66, - 34744 - 11904: 0xEE6D, - 34745 - 11904: 0xEE5E, - 34746 - 11904: 0xC1B3, - 34747 - 11904: 0xC1B2, - 34748 - 11904: 0xEE60, - 34749 - 11904: 0xEE6E, - 34750 - 11904: 0xEE58, - 34751 - 11904: 0xEE6C, - 34752 - 11904: 0xC1AC, - 34753 - 11904: 0xA0D7, - 34754 - 11904: 0xEE64, - 34755 - 11904: 0xEE63, - 34756 - 11904: 0xEE68, - 34757 - 11904: 0xEE5B, - 34758 - 11904: 0xC1B0, - 34760 - 11904: 0xC1B4, - 34761 - 11904: 0xEE62, - 34762 - 11904: 0xEE69, - 34763 - 11904: 0xC1B5, - 34764 - 11904: 0xEE65, - 34766 - 11904: 0xA0C7, - 34769 - 11904: 0xC1AD, - 34770 - 11904: 0xC1AF, - 34771 - 11904: 0xF0C7, - 34772 - 11904: 0xF0C5, - 34774 - 11904: 0xA043, - 34775 - 11904: 0xF0CC, - 34776 - 11904: 0xF0C9, - 34777 - 11904: 0xF0CD, - 34778 - 11904: 0x8FB5, - 34779 - 11904: 0xF0BE, - 34780 - 11904: 0xF0C6, - 34781 - 11904: 0xF0D1, - 34782 - 11904: 0xEE6F, - 34783 - 11904: 0xF0C2, - 34784 - 11904: 0xC2CF, - 34785 - 11904: 0xE7A5, - 34786 - 11904: 0xF0BD, - 34787 - 11904: 0xF0CA, - 34788 - 11904: 0xF0C4, - 34789 - 11904: 0xF0C1, - 34790 - 11904: 0xF0BC, - 34791 - 11904: 0xF0BB, - 34792 - 11904: 0xF0D0, - 34794 - 11904: 0xF0C0, - 34795 - 11904: 0xF0BF, - 34796 - 11904: 0xC2CD, - 34797 - 11904: 0xF0C8, - 34798 - 11904: 0x8FB2, - 34799 - 11904: 0xC2CC, - 34802 - 11904: 0xC2CE, - 34803 - 11904: 0xF0C3, - 34804 - 11904: 0xF0CF, - 34805 - 11904: 0xA061, - 34806 - 11904: 0xF2DE, - 34807 - 11904: 0xF2DF, - 34809 - 11904: 0xC3C9, - 34810 - 11904: 0xF2DC, - 34811 - 11904: 0xC3C6, - 34812 - 11904: 0xF2E4, - 34814 - 11904: 0xC3CA, - 34815 - 11904: 0xF2E6, - 34816 - 11904: 0xF2DB, - 34817 - 11904: 0xF0CE, - 34818 - 11904: 0xF2E8, - 34819 - 11904: 0xF2DD, - 34820 - 11904: 0x9E5E, - 34821 - 11904: 0xC3C7, - 34822 - 11904: 0xF2E3, - 34824 - 11904: 0xF2E5, - 34825 - 11904: 0xF2E0, - 34826 - 11904: 0xF2E7, - 34827 - 11904: 0xF2E2, - 34828 - 11904: 0xF2E1, - 34829 - 11904: 0xC3C8, - 34831 - 11904: 0xA063, - 34832 - 11904: 0xF4C5, - 34833 - 11904: 0xF4C6, - 34835 - 11904: 0xF4C8, - 34836 - 11904: 0xC4AE, - 34837 - 11904: 0xC4AF, - 34838 - 11904: 0xF4C9, - 34839 - 11904: 0xF4C7, - 34840 - 11904: 0x9FE8, - 34841 - 11904: 0xF4C4, - 34843 - 11904: 0xF642, - 34844 - 11904: 0xF645, - 34845 - 11904: 0xF641, - 34847 - 11904: 0xC4FA, - 34848 - 11904: 0xF643, - 34849 - 11904: 0xC4F9, - 34850 - 11904: 0xC4F8, - 34851 - 11904: 0xC4F7, - 34852 - 11904: 0xF644, - 34853 - 11904: 0xF751, - 34854 - 11904: 0xF74F, - 34855 - 11904: 0x9CB2, - 34856 - 11904: 0xF74E, - 34857 - 11904: 0xF640, - 34858 - 11904: 0xF750, - 34859 - 11904: 0xF646, - 34860 - 11904: 0xF74D, - 34861 - 11904: 0x957C, - 34862 - 11904: 0xF7F9, - 34863 - 11904: 0xF7D7, - 34864 - 11904: 0xF7F7, - 34865 - 11904: 0xC5DB, - 34866 - 11904: 0xF7F8, - 34867 - 11904: 0xF7FA, - 34869 - 11904: 0xF8BF, - 34870 - 11904: 0xC5FA, - 34871 - 11904: 0xF8BE, - 34872 - 11904: 0xF8BD, - 34873 - 11904: 0xC5FB, - 34875 - 11904: 0xC65A, - 34876 - 11904: 0xF96E, - 34877 - 11904: 0xF9A7, - 34878 - 11904: 0xF9A6, - 34879 - 11904: 0xF9A8, - 34880 - 11904: 0xA6E5, - 34881 - 11904: 0xD0AA, - 34882 - 11904: 0x9FC7, - 34883 - 11904: 0xD3CF, - 34884 - 11904: 0xD3D0, - 34885 - 11904: 0x8FBB, - 34886 - 11904: 0x8FBC, - 34888 - 11904: 0xDBC0, - 34890 - 11904: 0xF647, - 34891 - 11904: 0xF8C0, - 34892 - 11904: 0xA6E6, - 34893 - 11904: 0xAD6C, - 34894 - 11904: 0xD0AB, - 34895 - 11904: 0x8FEC, - 34898 - 11904: 0xD7B1, - 34899 - 11904: 0xB34E, - 34901 - 11904: 0xDBC2, - 34902 - 11904: 0xDBC1, - 34903 - 11904: 0xB5F3, - 34905 - 11904: 0xB8C5, - 34906 - 11904: 0xE7C1, - 34907 - 11904: 0xBDC3, - 34909 - 11904: 0xBDC4, - 34910 - 11904: 0x8FC0, - 34912 - 11904: 0x936A, - 34913 - 11904: 0xBFC5, - 34914 - 11904: 0xC5FC, - 34915 - 11904: 0xA6E7, - 34916 - 11904: 0x8BE4, - 34917 - 11904: 0x9C7C, - 34919 - 11904: 0xD0AC, - 34920 - 11904: 0xAAED, - 34921 - 11904: 0xD0AE, - 34922 - 11904: 0xD0AD, - 34923 - 11904: 0xAD6D, - 34925 - 11904: 0xD3D1, - 34926 - 11904: 0x95A1, - 34927 - 11904: 0xD3D8, - 34928 - 11904: 0xB049, - 34929 - 11904: 0xD3D6, - 34930 - 11904: 0xD3D4, - 34932 - 11904: 0xD3DB, - 34933 - 11904: 0xD3D2, - 34934 - 11904: 0xD3D3, - 34935 - 11904: 0xB04A, - 34937 - 11904: 0xB04E, - 34940 - 11904: 0xD3DC, - 34941 - 11904: 0xB04D, - 34942 - 11904: 0xD3DA, - 34943 - 11904: 0xD3D7, - 34944 - 11904: 0xD3D5, - 34945 - 11904: 0xB04B, - 34946 - 11904: 0xB04C, - 34947 - 11904: 0xD3D9, - 34948 - 11904: 0xFEEC, - 34951 - 11904: 0x95A3, - 34952 - 11904: 0xB350, - 34953 - 11904: 0xD7B2, - 34955 - 11904: 0xB355, - 34956 - 11904: 0xD7C2, - 34957 - 11904: 0xB354, - 34958 - 11904: 0xD7C4, - 34959 - 11904: 0x8C45, - 34960 - 11904: 0x8CB8, - 34961 - 11904: 0xD7B8, - 34962 - 11904: 0xB352, - 34963 - 11904: 0xD7C3, - 34965 - 11904: 0xD7B3, - 34966 - 11904: 0xB353, - 34967 - 11904: 0xD7BF, - 34968 - 11904: 0xD7BB, - 34969 - 11904: 0xD7BD, - 34970 - 11904: 0xD7B7, - 34971 - 11904: 0xD7BE, - 34972 - 11904: 0x8FC1, - 34973 - 11904: 0x87B7, - 34974 - 11904: 0xB34F, - 34975 - 11904: 0xD7BA, - 34976 - 11904: 0xA052, - 34977 - 11904: 0xD7B9, - 34978 - 11904: 0xD7B5, - 34980 - 11904: 0xD7C0, - 34983 - 11904: 0xD7BC, - 34984 - 11904: 0xD7B4, - 34986 - 11904: 0xD7B6, - 34987 - 11904: 0xB351, - 34988 - 11904: 0xD7C1, - 34990 - 11904: 0x99D0, - 34993 - 11904: 0xB5F6, - 34994 - 11904: 0xDBCD, - 34996 - 11904: 0x8FC3, - 34997 - 11904: 0x8FC4, - 34998 - 11904: 0xDBC9, - 34999 - 11904: 0xDBCB, - 35000 - 11904: 0xDBC6, - 35001 - 11904: 0xDBC5, - 35002 - 11904: 0xDBC3, - 35004 - 11904: 0xDBCA, - 35005 - 11904: 0xDBCC, - 35006 - 11904: 0xDBC8, - 35007 - 11904: 0x95A4, - 35008 - 11904: 0xDBC7, - 35009 - 11904: 0xB5F4, - 35010 - 11904: 0xB5F5, - 35013 - 11904: 0x8FC6, - 35015 - 11904: 0x9E60, - 35017 - 11904: 0xDBCF, - 35018 - 11904: 0xB8CD, - 35019 - 11904: 0xDFF2, - 35020 - 11904: 0xDFF8, - 35021 - 11904: 0xDFF3, - 35022 - 11904: 0xDFF4, - 35023 - 11904: 0xF9D8, - 35024 - 11904: 0xDFF9, - 35026 - 11904: 0xB8CF, - 35028 - 11904: 0xB8C7, - 35029 - 11904: 0xB8CE, - 35030 - 11904: 0xDFF1, - 35031 - 11904: 0xDBC4, - 35032 - 11904: 0xB8CA, - 35033 - 11904: 0xB8C8, - 35034 - 11904: 0xDFF7, - 35035 - 11904: 0xDFF6, - 35036 - 11904: 0xB8C9, - 35037 - 11904: 0xB8CB, - 35038 - 11904: 0xDFF5, - 35039 - 11904: 0xB8C6, - 35041 - 11904: 0xB8CC, - 35046 - 11904: 0x95A5, - 35047 - 11904: 0xE3F6, - 35048 - 11904: 0xBB74, - 35051 - 11904: 0xE442, - 35052 - 11904: 0xE441, - 35054 - 11904: 0xE3FB, - 35055 - 11904: 0xBB76, - 35056 - 11904: 0xE440, - 35057 - 11904: 0xE3F7, - 35058 - 11904: 0xE3F8, - 35059 - 11904: 0xBB6E, - 35060 - 11904: 0xBB70, - 35061 - 11904: 0x9CB3, - 35062 - 11904: 0xE3FD, - 35063 - 11904: 0xE3F5, - 35064 - 11904: 0xBB72, - 35065 - 11904: 0xBB71, - 35066 - 11904: 0xE3F9, - 35067 - 11904: 0xE3FE, - 35068 - 11904: 0xE3FC, - 35069 - 11904: 0xBB73, - 35070 - 11904: 0xE3FA, - 35071 - 11904: 0x99D1, - 35072 - 11904: 0xFEF1, - 35073 - 11904: 0xDBCE, - 35074 - 11904: 0xBB6F, - 35077 - 11904: 0xE7C2, - 35078 - 11904: 0xE7C9, - 35079 - 11904: 0xBDC6, - 35081 - 11904: 0xE7CD, - 35082 - 11904: 0xBDCA, - 35083 - 11904: 0xE7C5, - 35084 - 11904: 0xE7C3, - 35086 - 11904: 0xE7CC, - 35088 - 11904: 0xBDC5, - 35089 - 11904: 0xE7CB, - 35090 - 11904: 0xBDC7, - 35091 - 11904: 0xBDC8, - 35092 - 11904: 0xE7C4, - 35093 - 11904: 0xBDC9, - 35094 - 11904: 0xE7CA, - 35095 - 11904: 0xE7C6, - 35096 - 11904: 0xE7C7, - 35097 - 11904: 0xE7C8, - 35098 - 11904: 0xBB75, - 35102 - 11904: 0xEB70, - 35103 - 11904: 0xEB7C, - 35105 - 11904: 0xBFCA, - 35106 - 11904: 0xEB77, - 35107 - 11904: 0xEB79, - 35108 - 11904: 0x99D2, - 35109 - 11904: 0xBFC8, - 35110 - 11904: 0xEB71, - 35111 - 11904: 0xEB75, - 35113 - 11904: 0xEB78, - 35114 - 11904: 0xBFC6, - 35115 - 11904: 0xBFC9, - 35116 - 11904: 0xEB7B, - 35117 - 11904: 0xEB73, - 35118 - 11904: 0xEB74, - 35119 - 11904: 0xEB7A, - 35120 - 11904: 0xEB72, - 35121 - 11904: 0xEB76, - 35122 - 11904: 0xBFC7, - 35123 - 11904: 0xEE72, - 35125 - 11904: 0xEE71, - 35126 - 11904: 0xC1B7, - 35127 - 11904: 0xEE77, - 35128 - 11904: 0xC1B9, - 35131 - 11904: 0xC1B6, - 35132 - 11904: 0xEE73, - 35133 - 11904: 0xC1BA, - 35134 - 11904: 0xEE74, - 35137 - 11904: 0xEE75, - 35138 - 11904: 0xEE78, - 35139 - 11904: 0x9CC2, - 35140 - 11904: 0xC1B8, - 35142 - 11904: 0xF0D6, - 35143 - 11904: 0x99D3, - 35145 - 11904: 0xF0D9, - 35147 - 11904: 0xF0D3, - 35148 - 11904: 0xF0D5, - 35149 - 11904: 0x95A7, - 35151 - 11904: 0xF0D4, - 35152 - 11904: 0xF0D7, - 35153 - 11904: 0xF0D8, - 35154 - 11904: 0xEE76, - 35155 - 11904: 0xF0D2, - 35156 - 11904: 0x95A9, - 35158 - 11904: 0xC3CD, - 35159 - 11904: 0xF2EC, - 35160 - 11904: 0xF2EF, - 35161 - 11904: 0xF2F1, - 35162 - 11904: 0xF2EA, - 35163 - 11904: 0xF2EB, - 35164 - 11904: 0xF2EE, - 35165 - 11904: 0xF2F0, - 35166 - 11904: 0xC3CE, - 35167 - 11904: 0xC3CC, - 35168 - 11904: 0xC3CB, - 35169 - 11904: 0xF2ED, - 35170 - 11904: 0xF2E9, - 35171 - 11904: 0xF4CA, - 35172 - 11904: 0xC4B0, - 35173 - 11904: 0x95A6, - 35174 - 11904: 0xF4CB, - 35177 - 11904: 0xF649, - 35178 - 11904: 0xC4FB, - 35179 - 11904: 0xF64B, - 35180 - 11904: 0xC4FC, - 35181 - 11904: 0xF648, - 35182 - 11904: 0xF64A, - 35183 - 11904: 0xC5A8, - 35185 - 11904: 0xF752, - 35186 - 11904: 0xC5A7, - 35187 - 11904: 0xF7FD, - 35188 - 11904: 0xF7FC, - 35190 - 11904: 0xF7FB, - 35191 - 11904: 0x9C5D, - 35193 - 11904: 0xF948, - 35194 - 11904: 0xF949, - 35195 - 11904: 0xF94B, - 35196 - 11904: 0xF94A, - 35198 - 11904: 0xCA50, - 35199 - 11904: 0xA6E8, - 35200 - 11904: 0x98E2, - 35201 - 11904: 0xAD6E, - 35202 - 11904: 0xD7C5, - 35203 - 11904: 0xB5F7, - 35205 - 11904: 0xDFFA, - 35206 - 11904: 0xC2D0, - 35207 - 11904: 0x8FC9, - 35208 - 11904: 0xF2F2, - 35209 - 11904: 0xA0C2, - 35210 - 11904: 0x8FCA, - 35211 - 11904: 0xA8A3, - 35215 - 11904: 0xB357, - 35217 - 11904: 0x99D4, - 35219 - 11904: 0xB356, - 35220 - 11904: 0xA0B9, - 35221 - 11904: 0xDBD0, - 35222 - 11904: 0xB5F8, - 35223 - 11904: 0xDBD2, - 35224 - 11904: 0xDBD1, - 35227 - 11904: 0xDFFB, - 35228 - 11904: 0xB8D0, - 35229 - 11904: 0xE443, - 35230 - 11904: 0xE446, - 35231 - 11904: 0xE445, - 35233 - 11904: 0xE444, - 35234 - 11904: 0xE7CE, - 35235 - 11904: 0xE7D0, - 35236 - 11904: 0xE7CF, - 35237 - 11904: 0x9B58, - 35238 - 11904: 0xBFCC, - 35239 - 11904: 0x8FCD, - 35241 - 11904: 0xA0D4, - 35242 - 11904: 0xBFCB, - 35244 - 11904: 0xC1BB, - 35245 - 11904: 0xEE79, - 35246 - 11904: 0xEE7B, - 35247 - 11904: 0xEE7A, - 35250 - 11904: 0xC2D1, - 35254 - 11904: 0xF2F4, - 35255 - 11904: 0xF2F3, - 35257 - 11904: 0xF4CC, - 35258 - 11904: 0xC4B1, - 35260 - 11904: 0x8FCE, - 35261 - 11904: 0xC4FD, - 35262 - 11904: 0xF754, - 35263 - 11904: 0xF753, - 35264 - 11904: 0xC65B, - 35265 - 11904: 0x8BE5, - 35270 - 11904: 0x8979, - 35282 - 11904: 0xA8A4, - 35283 - 11904: 0xD0AF, - 35284 - 11904: 0xAD6F, - 35285 - 11904: 0xD7C8, - 35286 - 11904: 0xD7C6, - 35289 - 11904: 0xD7C7, - 35290 - 11904: 0xDBD4, - 35291 - 11904: 0xDBD5, - 35292 - 11904: 0xE043, - 35293 - 11904: 0xDBD3, - 35295 - 11904: 0xDFFC, - 35296 - 11904: 0xE041, - 35297 - 11904: 0xE040, - 35298 - 11904: 0xE042, - 35299 - 11904: 0xB8D1, - 35300 - 11904: 0xDFFE, - 35301 - 11904: 0xDFFD, - 35302 - 11904: 0xE044, - 35303 - 11904: 0x8FD0, - 35304 - 11904: 0xE449, - 35305 - 11904: 0xE447, - 35307 - 11904: 0xE448, - 35308 - 11904: 0xE7D3, - 35309 - 11904: 0xE7D1, - 35312 - 11904: 0xE7D2, - 35313 - 11904: 0xEB7D, - 35314 - 11904: 0xEE7C, - 35315 - 11904: 0xEE7D, - 35316 - 11904: 0xC2D2, - 35318 - 11904: 0xF2F5, - 35319 - 11904: 0xF4CD, - 35320 - 11904: 0xC4B2, - 35322 - 11904: 0xF64C, - 35323 - 11904: 0xF755, - 35324 - 11904: 0xC5A9, - 35326 - 11904: 0xF7FE, - 35327 - 11904: 0xF94C, - 35328 - 11904: 0xA8A5, - 35330 - 11904: 0xAD71, - 35331 - 11904: 0xAD72, - 35332 - 11904: 0xD0B0, - 35335 - 11904: 0xD0B1, - 35336 - 11904: 0xAD70, - 35338 - 11904: 0xB054, - 35340 - 11904: 0xB052, - 35342 - 11904: 0xB051, - 35343 - 11904: 0xB058, - 35344 - 11904: 0xB050, - 35345 - 11904: 0xB059, - 35346 - 11904: 0xD3DD, - 35347 - 11904: 0xB056, - 35349 - 11904: 0xB053, - 35350 - 11904: 0xB057, - 35351 - 11904: 0xB055, - 35352 - 11904: 0xB04F, - 35355 - 11904: 0xB35F, - 35356 - 11904: 0x95B6, - 35357 - 11904: 0xB359, - 35358 - 11904: 0xD7CC, - 35359 - 11904: 0xB35E, - 35362 - 11904: 0xB360, - 35363 - 11904: 0xB35A, - 35365 - 11904: 0xB35B, - 35367 - 11904: 0xD7CA, - 35369 - 11904: 0x99D6, - 35370 - 11904: 0xB358, - 35371 - 11904: 0x95E5, - 35372 - 11904: 0xD7CB, - 35373 - 11904: 0xB35D, - 35376 - 11904: 0xD7C9, - 35377 - 11904: 0xB35C, - 35380 - 11904: 0xB644, - 35382 - 11904: 0xB646, - 35384 - 11904: 0x99D7, - 35385 - 11904: 0xDBD8, - 35386 - 11904: 0xB645, - 35387 - 11904: 0xB5F9, - 35388 - 11904: 0xB5FD, - 35389 - 11904: 0x95B5, - 35390 - 11904: 0xB8E4, - 35391 - 11904: 0xE049, - 35392 - 11904: 0xDBDA, - 35393 - 11904: 0xB5FE, - 35396 - 11904: 0xDBDD, - 35397 - 11904: 0xDBDE, - 35398 - 11904: 0xB643, - 35400 - 11904: 0xDBE0, - 35401 - 11904: 0xA0CA, - 35402 - 11904: 0xDBE2, - 35404 - 11904: 0xDBE3, - 35405 - 11904: 0xDBD7, - 35406 - 11904: 0xDBD6, - 35407 - 11904: 0xDBE4, - 35408 - 11904: 0xB642, - 35409 - 11904: 0xDBE1, - 35410 - 11904: 0xDBDF, - 35412 - 11904: 0xB640, - 35413 - 11904: 0xB5FB, - 35414 - 11904: 0xB647, - 35415 - 11904: 0xDBDB, - 35416 - 11904: 0xDBDC, - 35417 - 11904: 0xDBD9, - 35419 - 11904: 0xB641, - 35422 - 11904: 0xB5FC, - 35424 - 11904: 0xB5FA, - 35425 - 11904: 0xE048, - 35426 - 11904: 0xB8DF, - 35427 - 11904: 0xB8DA, - 35430 - 11904: 0xB8D5, - 35431 - 11904: 0x9FFD, - 35432 - 11904: 0xB8E5, - 35433 - 11904: 0xB8D6, - 35435 - 11904: 0xB8D2, - 35436 - 11904: 0xB8E1, - 35437 - 11904: 0xB8DE, - 35438 - 11904: 0xB8E0, - 35440 - 11904: 0xB8D7, - 35441 - 11904: 0xB8DC, - 35442 - 11904: 0xB8D3, - 35443 - 11904: 0xB8D4, - 35444 - 11904: 0xE050, - 35445 - 11904: 0xE04D, - 35446 - 11904: 0xE045, - 35447 - 11904: 0xE04A, - 35449 - 11904: 0xB8E2, - 35450 - 11904: 0xE051, - 35451 - 11904: 0xB8E3, - 35452 - 11904: 0xB8D9, - 35454 - 11904: 0xA058, - 35455 - 11904: 0xE047, - 35457 - 11904: 0xE04F, - 35458 - 11904: 0xE04B, - 35459 - 11904: 0xE04E, - 35460 - 11904: 0xE04C, - 35461 - 11904: 0xB8DD, - 35462 - 11904: 0xE046, - 35463 - 11904: 0xB8D8, - 35467 - 11904: 0xE44C, - 35468 - 11904: 0xBB78, - 35469 - 11904: 0xBB7B, - 35471 - 11904: 0xE44E, - 35472 - 11904: 0x8FD6, - 35473 - 11904: 0xBBA5, - 35474 - 11904: 0xE44D, - 35475 - 11904: 0xBB7D, - 35476 - 11904: 0x99D8, - 35477 - 11904: 0xBDCF, - 35478 - 11904: 0xE44F, - 35480 - 11904: 0xBBA4, - 35481 - 11904: 0xE44B, - 35482 - 11904: 0xBBA6, - 35484 - 11904: 0x8FD3, - 35486 - 11904: 0xBB79, - 35488 - 11904: 0xB8DB, - 35489 - 11904: 0xBB7C, - 35491 - 11904: 0xBB7A, - 35492 - 11904: 0xBB7E, - 35493 - 11904: 0xBBA2, - 35494 - 11904: 0xBB77, - 35495 - 11904: 0xBBA7, - 35496 - 11904: 0xBBA3, - 35497 - 11904: 0x8FE5, - 35498 - 11904: 0xBBA1, - 35499 - 11904: 0xE44A, - 35503 - 11904: 0x8FE9, - 35504 - 11904: 0xBDD6, - 35506 - 11904: 0xBDD2, - 35508 - 11904: 0x99D9, - 35510 - 11904: 0xBDD9, - 35512 - 11904: 0xE7D6, - 35513 - 11904: 0xBDDA, - 35514 - 11904: 0xE7E2, - 35515 - 11904: 0xE7DB, - 35516 - 11904: 0xBDCB, - 35517 - 11904: 0xE7E3, - 35518 - 11904: 0xE7DD, - 35519 - 11904: 0xBDD5, - 35520 - 11904: 0xE7DE, - 35522 - 11904: 0xBDD4, - 35523 - 11904: 0xE7E1, - 35524 - 11904: 0xBDCE, - 35525 - 11904: 0xE7DF, - 35526 - 11904: 0xE7D5, - 35527 - 11904: 0xBDCD, - 35528 - 11904: 0xEBAA, - 35529 - 11904: 0xBDD3, - 35531 - 11904: 0xBDD0, - 35532 - 11904: 0x8CF7, - 35533 - 11904: 0xBDD8, - 35535 - 11904: 0xE7D4, - 35537 - 11904: 0xE7D8, - 35538 - 11904: 0xBDCC, - 35539 - 11904: 0xE7D7, - 35540 - 11904: 0xE7D9, - 35541 - 11904: 0xE7DA, - 35542 - 11904: 0xBDD7, - 35543 - 11904: 0xE7DC, - 35544 - 11904: 0xE7E0, - 35545 - 11904: 0xE7E4, - 35546 - 11904: 0x927C, - 35547 - 11904: 0xBDDB, - 35548 - 11904: 0xBFD2, - 35549 - 11904: 0xEBA5, - 35550 - 11904: 0xEBAB, - 35551 - 11904: 0xEBA8, - 35552 - 11904: 0xEB7E, - 35553 - 11904: 0xEBAC, - 35554 - 11904: 0xEBA1, - 35556 - 11904: 0xEBA7, - 35558 - 11904: 0xBFCD, - 35559 - 11904: 0xBFD3, - 35560 - 11904: 0xEBAD, - 35562 - 11904: 0x9C45, - 35563 - 11904: 0xBFCF, - 35565 - 11904: 0xBFD9, - 35566 - 11904: 0xBFD4, - 35567 - 11904: 0xEBAF, - 35568 - 11904: 0xEBA9, - 35569 - 11904: 0xBFD0, - 35570 - 11904: 0xEBA2, - 35571 - 11904: 0xBFDA, - 35572 - 11904: 0xEBA3, - 35573 - 11904: 0xEBA4, - 35574 - 11904: 0xBFDB, - 35575 - 11904: 0xBFD8, - 35576 - 11904: 0xBDD1, - 35577 - 11904: 0x8CE8, - 35578 - 11904: 0xBFCE, - 35579 - 11904: 0xEBB0, - 35580 - 11904: 0xBFDC, - 35582 - 11904: 0xBFD5, - 35583 - 11904: 0xEBAE, - 35584 - 11904: 0xBFD1, - 35585 - 11904: 0xBFD6, - 35586 - 11904: 0xBFD7, - 35588 - 11904: 0xC1C3, - 35589 - 11904: 0xEEA4, - 35590 - 11904: 0xEEAD, - 35591 - 11904: 0xEEAA, - 35592 - 11904: 0xEEAC, - 35594 - 11904: 0xC1C0, - 35595 - 11904: 0xEEA5, - 35596 - 11904: 0x8FDE, - 35597 - 11904: 0xEEAB, - 35598 - 11904: 0xC1BC, - 35599 - 11904: 0xEEA7, - 35600 - 11904: 0xC1C4, - 35601 - 11904: 0xEEA3, - 35602 - 11904: 0xEEA8, - 35603 - 11904: 0xEEAF, - 35604 - 11904: 0xEBA6, - 35605 - 11904: 0xEEA9, - 35606 - 11904: 0xEEA2, - 35607 - 11904: 0xC1BD, - 35608 - 11904: 0xEEA1, - 35609 - 11904: 0xC1BE, - 35610 - 11904: 0xEEB0, - 35611 - 11904: 0xC1BF, - 35612 - 11904: 0xEEAE, - 35613 - 11904: 0xC1C2, - 35614 - 11904: 0xEE7E, - 35615 - 11904: 0x8FDF, - 35616 - 11904: 0xC1C1, - 35618 - 11904: 0xEEA6, - 35619 - 11904: 0xF0DC, - 35620 - 11904: 0xF0EA, - 35621 - 11904: 0xF0E5, - 35622 - 11904: 0xF0E7, - 35623 - 11904: 0xF0DB, - 35624 - 11904: 0xC2D3, - 35626 - 11904: 0xF0DA, - 35627 - 11904: 0xC2D6, - 35628 - 11904: 0xC2D5, - 35629 - 11904: 0xA04B, - 35630 - 11904: 0xF0E9, - 35631 - 11904: 0xF0E1, - 35632 - 11904: 0xF0DE, - 35633 - 11904: 0xF0E4, - 35635 - 11904: 0xF0DD, - 35637 - 11904: 0xF0DF, - 35638 - 11904: 0xF0E8, - 35639 - 11904: 0xF0E6, - 35641 - 11904: 0xC2D4, - 35642 - 11904: 0xF0ED, - 35643 - 11904: 0xF0EB, - 35644 - 11904: 0xF0E2, - 35645 - 11904: 0xF0EC, - 35646 - 11904: 0xF0E3, - 35647 - 11904: 0x8FE2, - 35648 - 11904: 0xF2F9, - 35649 - 11904: 0xC3CF, - 35650 - 11904: 0xF341, - 35651 - 11904: 0xA0CC, - 35653 - 11904: 0xF64F, - 35654 - 11904: 0xC3D6, - 35655 - 11904: 0xF0E0, - 35656 - 11904: 0xF2F7, - 35657 - 11904: 0xC3D2, - 35658 - 11904: 0xF2F8, - 35659 - 11904: 0xF2FD, - 35660 - 11904: 0x8FE3, - 35661 - 11904: 0x8FE4, - 35662 - 11904: 0xC3D4, - 35663 - 11904: 0xC3D5, - 35664 - 11904: 0xF2F6, - 35665 - 11904: 0xF340, - 35666 - 11904: 0xF342, - 35667 - 11904: 0xF2FA, - 35668 - 11904: 0xF2FC, - 35669 - 11904: 0xF2FE, - 35670 - 11904: 0xF2FB, - 35671 - 11904: 0xF343, - 35672 - 11904: 0xC3D1, - 35673 - 11904: 0xC3D7, - 35674 - 11904: 0xC3D3, - 35676 - 11904: 0xC3D0, - 35677 - 11904: 0xF4D0, - 35678 - 11904: 0x9BC4, - 35679 - 11904: 0xC4B7, - 35680 - 11904: 0xF4CE, - 35682 - 11904: 0x9BFC, - 35683 - 11904: 0xF4D2, - 35685 - 11904: 0xF4D3, - 35686 - 11904: 0xC4B5, - 35687 - 11904: 0xF4D4, - 35688 - 11904: 0xF4D1, - 35689 - 11904: 0x964C, - 35690 - 11904: 0xF4CF, - 35691 - 11904: 0xC4B8, - 35692 - 11904: 0xC4B4, - 35693 - 11904: 0xF4D5, - 35695 - 11904: 0xC4B6, - 35696 - 11904: 0xC4B3, - 35700 - 11904: 0xC4FE, - 35703 - 11904: 0xC540, - 35704 - 11904: 0xF64E, - 35705 - 11904: 0xF64D, - 35706 - 11904: 0xF650, - 35707 - 11904: 0xF651, - 35709 - 11904: 0xC541, - 35710 - 11904: 0xF756, - 35711 - 11904: 0xF75B, - 35712 - 11904: 0xC5AA, - 35713 - 11904: 0x9AF6, - 35714 - 11904: 0xF758, - 35715 - 11904: 0x8CAE, - 35716 - 11904: 0xF757, - 35717 - 11904: 0xF75A, - 35718 - 11904: 0xF759, - 35720 - 11904: 0xF843, - 35722 - 11904: 0xC5DC, - 35723 - 11904: 0xF842, - 35724 - 11904: 0xF840, - 35726 - 11904: 0xF841, - 35727 - 11904: 0x87CB, - 35728 - 11904: 0x8FE7, - 35730 - 11904: 0xC5FE, - 35731 - 11904: 0xC5FD, - 35732 - 11904: 0xF8C1, - 35733 - 11904: 0xF8C2, - 35734 - 11904: 0xC640, - 35736 - 11904: 0xF94D, - 35737 - 11904: 0xF94E, - 35738 - 11904: 0xC667, - 35739 - 11904: 0x8FE8, - 35740 - 11904: 0xC66D, - 35742 - 11904: 0xF9A9, - 35743 - 11904: 0xF9C8, - 35744 - 11904: 0x8BE7, - 35774 - 11904: 0x897A, - 35810 - 11904: 0x897B, - 35895 - 11904: 0xA8A6, - 35897 - 11904: 0xD7CD, - 35899 - 11904: 0xD7CE, - 35900 - 11904: 0xE052, - 35901 - 11904: 0xE450, - 35902 - 11904: 0xE7E5, - 35903 - 11904: 0xC1C6, - 35905 - 11904: 0xC1C5, - 35906 - 11904: 0xF0EE, - 35907 - 11904: 0xF344, - 35909 - 11904: 0xF844, - 35910 - 11904: 0xA8A7, - 35911 - 11904: 0xD3DE, - 35912 - 11904: 0xB05A, - 35913 - 11904: 0xB361, - 35914 - 11904: 0xE054, - 35915 - 11904: 0xE053, - 35916 - 11904: 0xBDDC, - 35917 - 11904: 0xE7E6, - 35918 - 11904: 0xBDDD, - 35919 - 11904: 0xEEB1, - 35920 - 11904: 0xC2D7, - 35921 - 11904: 0x99DA, - 35924 - 11904: 0xC676, - 35925 - 11904: 0xA8A8, - 35926 - 11904: 0xCDCB, - 35927 - 11904: 0xD3DF, - 35930 - 11904: 0xB362, - 35932 - 11904: 0xD7CF, - 35933 - 11904: 0xD7D0, - 35935 - 11904: 0xDBE5, - 35937 - 11904: 0xB648, - 35938 - 11904: 0xB8E6, - 35940 - 11904: 0xE056, - 35941 - 11904: 0xE055, - 35942 - 11904: 0xE057, - 35944 - 11904: 0xE451, - 35945 - 11904: 0xE452, - 35946 - 11904: 0xBBA8, - 35947 - 11904: 0xBFDD, - 35948 - 11904: 0xBDDE, - 35949 - 11904: 0xBFDE, - 35951 - 11904: 0xEEB5, - 35952 - 11904: 0xEEB2, - 35953 - 11904: 0xEEB4, - 35954 - 11904: 0xEEB3, - 35955 - 11904: 0xC1C7, - 35957 - 11904: 0xF0EF, - 35958 - 11904: 0xF346, - 35959 - 11904: 0xF345, - 35960 - 11904: 0xCBA4, - 35961 - 11904: 0xB05C, - 35962 - 11904: 0xB05B, - 35963 - 11904: 0xD3E0, - 35965 - 11904: 0xD7D1, - 35968 - 11904: 0xDBE7, - 35969 - 11904: 0xDBE6, - 35970 - 11904: 0xB649, - 35972 - 11904: 0xE059, - 35973 - 11904: 0xE05A, - 35974 - 11904: 0xE058, - 35977 - 11904: 0xB8E8, - 35978 - 11904: 0xB8E7, - 35980 - 11904: 0xBBAA, - 35981 - 11904: 0xBBA9, - 35983 - 11904: 0xE7E7, - 35984 - 11904: 0xEBB3, - 35985 - 11904: 0xEBB1, - 35986 - 11904: 0xEBB2, - 35987 - 11904: 0xBFDF, - 35988 - 11904: 0xEEB7, - 35989 - 11904: 0xEEB6, - 35991 - 11904: 0xF0F2, - 35992 - 11904: 0xF0F1, - 35993 - 11904: 0xF0F0, - 35994 - 11904: 0xF347, - 35995 - 11904: 0x8FED, - 35996 - 11904: 0xF9AA, - 35997 - 11904: 0xA8A9, - 35998 - 11904: 0xAD73, - 35999 - 11904: 0x95C0, - 36000 - 11904: 0xAD74, - 36001 - 11904: 0xB05D, - 36002 - 11904: 0xB05E, - 36003 - 11904: 0xD3E2, - 36004 - 11904: 0xD3E1, - 36005 - 11904: 0xD7D2, - 36007 - 11904: 0xB368, - 36008 - 11904: 0xB366, - 36009 - 11904: 0xB363, - 36010 - 11904: 0xB367, - 36011 - 11904: 0xB365, - 36012 - 11904: 0xB364, - 36013 - 11904: 0xA0CB, - 36015 - 11904: 0xB64A, - 36016 - 11904: 0xDBEA, - 36018 - 11904: 0xB8ED, - 36019 - 11904: 0xB64C, - 36020 - 11904: 0xB651, - 36021 - 11904: 0xDBEC, - 36022 - 11904: 0xB653, - 36023 - 11904: 0xB652, - 36024 - 11904: 0xB655, - 36025 - 11904: 0xDBEB, - 36026 - 11904: 0xDBE8, - 36027 - 11904: 0xB64F, - 36028 - 11904: 0xB64B, - 36029 - 11904: 0xB64D, - 36030 - 11904: 0xDBE9, - 36031 - 11904: 0xB654, - 36032 - 11904: 0xB650, - 36033 - 11904: 0xB64E, - 36034 - 11904: 0xB8EF, - 36035 - 11904: 0xB8EE, - 36036 - 11904: 0xB8EC, - 36037 - 11904: 0xB8F0, - 36039 - 11904: 0xB8EA, - 36040 - 11904: 0xB8EB, - 36042 - 11904: 0xB8E9, - 36044 - 11904: 0xE05B, - 36045 - 11904: 0x9E48, - 36047 - 11904: 0xE454, - 36049 - 11904: 0xBBAC, - 36050 - 11904: 0xBBAD, - 36051 - 11904: 0xBBAB, - 36052 - 11904: 0x99DB, - 36053 - 11904: 0xE453, - 36054 - 11904: 0x8FF3, - 36055 - 11904: 0xE455, - 36057 - 11904: 0xE7EA, - 36058 - 11904: 0xE7EC, - 36059 - 11904: 0x8FF9, - 36060 - 11904: 0xBDE7, - 36061 - 11904: 0xE7ED, - 36062 - 11904: 0xBDE0, - 36063 - 11904: 0xE7E9, - 36064 - 11904: 0xBDDF, - 36065 - 11904: 0xBDE9, - 36066 - 11904: 0xBDE5, - 36067 - 11904: 0xBDE6, - 36068 - 11904: 0xBDE2, - 36069 - 11904: 0xE7E8, - 36070 - 11904: 0xBDE1, - 36071 - 11904: 0xE7EE, - 36072 - 11904: 0xE7EB, - 36073 - 11904: 0x95C1, - 36074 - 11904: 0xBDE8, - 36075 - 11904: 0xA04E, - 36076 - 11904: 0xBDE3, - 36077 - 11904: 0xBDE4, - 36078 - 11904: 0xEBB5, - 36080 - 11904: 0xEBB7, - 36081 - 11904: 0xEBB6, - 36082 - 11904: 0x99DC, - 36083 - 11904: 0xEBB8, - 36084 - 11904: 0xBFE0, - 36085 - 11904: 0xEBB4, - 36087 - 11904: 0xA064, - 36088 - 11904: 0xC1CB, - 36089 - 11904: 0xEEB8, - 36090 - 11904: 0xC1C8, - 36091 - 11904: 0xC1CC, - 36092 - 11904: 0xC1CA, - 36093 - 11904: 0xC1C9, - 36094 - 11904: 0xF0F3, - 36096 - 11904: 0xF0F6, - 36098 - 11904: 0xF0F5, - 36099 - 11904: 0x8FF7, - 36100 - 11904: 0xF0F4, - 36101 - 11904: 0xC2D8, - 36102 - 11904: 0xF348, - 36103 - 11904: 0xF349, - 36104 - 11904: 0xC3D8, - 36105 - 11904: 0xF34A, - 36106 - 11904: 0xC3D9, - 36107 - 11904: 0x89B0, - 36108 - 11904: 0xA048, - 36109 - 11904: 0xC4BA, - 36111 - 11904: 0xC4B9, - 36112 - 11904: 0xF652, - 36113 - 11904: 0x8FFB, - 36114 - 11904: 0x8FF6, - 36115 - 11904: 0xC542, - 36116 - 11904: 0xF653, - 36117 - 11904: 0xF75C, - 36118 - 11904: 0xC5AB, - 36119 - 11904: 0xC5AC, - 36120 - 11904: 0x9DDC, - 36121 - 11904: 0xF845, - 36123 - 11904: 0xC642, - 36124 - 11904: 0x99DD, - 36125 - 11904: 0x8BE8, - 36196 - 11904: 0xA8AA, - 36198 - 11904: 0xB36A, - 36199 - 11904: 0xB369, - 36200 - 11904: 0xE05C, - 36201 - 11904: 0xE05D, - 36203 - 11904: 0xBBAE, - 36204 - 11904: 0xEBB9, - 36205 - 11904: 0xBDEA, - 36206 - 11904: 0xEBBA, - 36207 - 11904: 0xEEB9, - 36208 - 11904: 0xA8AB, - 36210 - 11904: 0xD0B2, - 36211 - 11904: 0xAD76, - 36212 - 11904: 0xAD75, - 36214 - 11904: 0xD3E3, - 36215 - 11904: 0xB05F, - 36216 - 11904: 0xD3E4, - 36217 - 11904: 0xD7D5, - 36218 - 11904: 0x92C1, - 36219 - 11904: 0xD7D4, - 36221 - 11904: 0xD7D3, - 36224 - 11904: 0xDBEE, - 36225 - 11904: 0xB658, - 36226 - 11904: 0x9FD6, - 36228 - 11904: 0xDBED, - 36229 - 11904: 0xB657, - 36233 - 11904: 0xDBEF, - 36234 - 11904: 0xB656, - 36236 - 11904: 0xE05F, - 36237 - 11904: 0xE062, - 36238 - 11904: 0xE060, - 36239 - 11904: 0xE061, - 36240 - 11904: 0xE065, - 36241 - 11904: 0xE05E, - 36242 - 11904: 0xE066, - 36243 - 11904: 0xE063, - 36244 - 11904: 0xE064, - 36245 - 11904: 0xBBB0, - 36246 - 11904: 0xE456, - 36249 - 11904: 0xBBAF, - 36251 - 11904: 0xE7F2, - 36252 - 11904: 0xE7F0, - 36255 - 11904: 0xBDEB, - 36256 - 11904: 0xE7EF, - 36257 - 11904: 0xE7F1, - 36259 - 11904: 0xBDEC, - 36261 - 11904: 0xEBBB, - 36262 - 11904: 0xA0D2, - 36263 - 11904: 0xEBBC, - 36264 - 11904: 0xC1CD, - 36265 - 11904: 0x9040, - 36266 - 11904: 0xF34C, - 36267 - 11904: 0xF34E, - 36268 - 11904: 0xF34B, - 36269 - 11904: 0xF34D, - 36270 - 11904: 0xF4D6, - 36271 - 11904: 0xF654, - 36274 - 11904: 0xF96F, - 36275 - 11904: 0xA8AC, - 36276 - 11904: 0xAD77, - 36277 - 11904: 0xD3E5, - 36278 - 11904: 0xD3E7, - 36279 - 11904: 0xD3E6, - 36281 - 11904: 0xD7D8, - 36282 - 11904: 0xB36C, - 36284 - 11904: 0xD7D6, - 36286 - 11904: 0xB36B, - 36287 - 11904: 0xD7D9, - 36288 - 11904: 0x8AC4, - 36289 - 11904: 0xD7DA, - 36290 - 11904: 0xD7D7, - 36291 - 11904: 0x99E0, - 36293 - 11904: 0xDBFB, - 36294 - 11904: 0xB660, - 36295 - 11904: 0xDBF3, - 36296 - 11904: 0xDBF9, - 36299 - 11904: 0xB65B, - 36300 - 11904: 0xB65E, - 36301 - 11904: 0xDBF2, - 36302 - 11904: 0xB659, - 36303 - 11904: 0xDBF6, - 36304 - 11904: 0xE06C, - 36305 - 11904: 0xB65D, - 36307 - 11904: 0xDBF1, - 36308 - 11904: 0x9FF0, - 36309 - 11904: 0xDBF7, - 36310 - 11904: 0xDBF4, - 36311 - 11904: 0xDBFA, - 36312 - 11904: 0xDBF0, - 36313 - 11904: 0xDBF8, - 36314 - 11904: 0xB65C, - 36315 - 11904: 0xB65F, - 36316 - 11904: 0xDBF5, - 36317 - 11904: 0xB65A, - 36319 - 11904: 0xB8F2, - 36320 - 11904: 0xE068, - 36321 - 11904: 0xB8F1, - 36322 - 11904: 0xE06F, - 36323 - 11904: 0xE06E, - 36324 - 11904: 0xB8F8, - 36326 - 11904: 0xB8F9, - 36327 - 11904: 0xE070, - 36328 - 11904: 0xB8F3, - 36329 - 11904: 0xE06D, - 36330 - 11904: 0xB8F7, - 36331 - 11904: 0xE072, - 36332 - 11904: 0xE069, - 36334 - 11904: 0xE06B, - 36335 - 11904: 0xB8F4, - 36336 - 11904: 0xE067, - 36337 - 11904: 0xE06A, - 36338 - 11904: 0xE071, - 36339 - 11904: 0xB8F5, - 36340 - 11904: 0xE073, - 36346 - 11904: 0xB8F6, - 36348 - 11904: 0xBBB1, - 36349 - 11904: 0xE45B, - 36350 - 11904: 0xE461, - 36351 - 11904: 0xE459, - 36352 - 11904: 0xE462, - 36353 - 11904: 0x9FF3, - 36354 - 11904: 0xE458, - 36355 - 11904: 0xE45D, - 36356 - 11904: 0xE463, - 36357 - 11904: 0xE460, - 36358 - 11904: 0xE45F, - 36359 - 11904: 0xE45E, - 36361 - 11904: 0xE457, - 36362 - 11904: 0xE45C, - 36365 - 11904: 0xE45A, - 36366 - 11904: 0x9DBF, - 36367 - 11904: 0xBDF1, - 36368 - 11904: 0xBDEE, - 36369 - 11904: 0xE7FB, - 36370 - 11904: 0xE841, - 36371 - 11904: 0xE843, - 36372 - 11904: 0xE840, - 36373 - 11904: 0xE7F8, - 36374 - 11904: 0xE7FA, - 36375 - 11904: 0xE845, - 36376 - 11904: 0xE842, - 36377 - 11904: 0xE7FC, - 36378 - 11904: 0xE846, - 36379 - 11904: 0xE7F9, - 36380 - 11904: 0xE844, - 36381 - 11904: 0xBDEF, - 36382 - 11904: 0xBDF5, - 36383 - 11904: 0xBDF3, - 36384 - 11904: 0xE7F3, - 36385 - 11904: 0xBDF4, - 36386 - 11904: 0xBDF0, - 36387 - 11904: 0xE7F4, - 36388 - 11904: 0xE7F6, - 36389 - 11904: 0xE7F5, - 36390 - 11904: 0xE7FD, - 36391 - 11904: 0xE7FE, - 36392 - 11904: 0x9FF6, - 36393 - 11904: 0xBDF2, - 36394 - 11904: 0x95C8, - 36395 - 11904: 0xBDED, - 36397 - 11904: 0x9E5A, - 36398 - 11904: 0xE7F7, - 36400 - 11904: 0xEBC6, - 36401 - 11904: 0xBFE2, - 36403 - 11904: 0xEBBD, - 36404 - 11904: 0xBFE3, - 36405 - 11904: 0xBFE6, - 36406 - 11904: 0xEBC2, - 36408 - 11904: 0xEBBF, - 36409 - 11904: 0xBFE5, - 36410 - 11904: 0x99E3, - 36412 - 11904: 0xEBC3, - 36413 - 11904: 0xEBC4, - 36414 - 11904: 0xEBBE, - 36415 - 11904: 0xEBC7, - 36416 - 11904: 0xEBC0, - 36417 - 11904: 0xEBC5, - 36418 - 11904: 0xBFE4, - 36420 - 11904: 0xBFE1, - 36421 - 11904: 0xEBC1, - 36422 - 11904: 0x8A4A, - 36423 - 11904: 0xEEBF, - 36424 - 11904: 0xC1D0, - 36425 - 11904: 0xC1CE, - 36426 - 11904: 0xC1D1, - 36427 - 11904: 0xC1CF, - 36428 - 11904: 0xEEBE, - 36429 - 11904: 0xEEBB, - 36430 - 11904: 0xEEBA, - 36431 - 11904: 0x9FF1, - 36432 - 11904: 0xEEBD, - 36435 - 11904: 0xEEBC, - 36436 - 11904: 0xF145, - 36437 - 11904: 0xC2DE, - 36438 - 11904: 0xF0FB, - 36439 - 11904: 0xF0FA, - 36441 - 11904: 0xC2D9, - 36442 - 11904: 0xF141, - 36443 - 11904: 0xF140, - 36444 - 11904: 0xF0F7, - 36445 - 11904: 0xF143, - 36446 - 11904: 0xF0FC, - 36447 - 11904: 0xC2DD, - 36448 - 11904: 0xF0F9, - 36449 - 11904: 0xF142, - 36450 - 11904: 0xF0F8, - 36451 - 11904: 0xC2DA, - 36452 - 11904: 0xC2DC, - 36453 - 11904: 0xF0FD, - 36454 - 11904: 0xC2DB, - 36455 - 11904: 0xF0FE, - 36456 - 11904: 0x8AA7, - 36457 - 11904: 0xF144, - 36458 - 11904: 0xF352, - 36460 - 11904: 0xC3DE, - 36461 - 11904: 0xF34F, - 36463 - 11904: 0xF353, - 36465 - 11904: 0x99E6, - 36466 - 11904: 0xC3DB, - 36467 - 11904: 0xF351, - 36468 - 11904: 0xC3E0, - 36469 - 11904: 0x9FF7, - 36470 - 11904: 0xC3DD, - 36471 - 11904: 0x9FED, - 36472 - 11904: 0xF350, - 36474 - 11904: 0xC3DF, - 36475 - 11904: 0xF354, - 36476 - 11904: 0xC3DA, - 36478 - 11904: 0x8A5C, - 36480 - 11904: 0x9DAE, - 36481 - 11904: 0xC4BC, - 36482 - 11904: 0xC4BE, - 36484 - 11904: 0xF4D9, - 36485 - 11904: 0xC4BD, - 36486 - 11904: 0xF4D7, - 36487 - 11904: 0xC3DC, - 36488 - 11904: 0xF4D8, - 36489 - 11904: 0xC4BB, - 36490 - 11904: 0xC543, - 36491 - 11904: 0xC545, - 36492 - 11904: 0xF656, - 36493 - 11904: 0xC544, - 36494 - 11904: 0xF655, - 36496 - 11904: 0xF761, - 36497 - 11904: 0xC5AD, - 36498 - 11904: 0xF760, - 36499 - 11904: 0xC5AE, - 36500 - 11904: 0xF75E, - 36501 - 11904: 0xF75D, - 36502 - 11904: 0xF762, - 36503 - 11904: 0xF763, - 36504 - 11904: 0xF846, - 36506 - 11904: 0xF75F, - 36509 - 11904: 0xF8C6, - 36510 - 11904: 0xF8C3, - 36511 - 11904: 0xF8C4, - 36512 - 11904: 0xF8C5, - 36513 - 11904: 0xC65C, - 36515 - 11904: 0xF951, - 36516 - 11904: 0xF950, - 36517 - 11904: 0xF94F, - 36518 - 11904: 0xF970, - 36519 - 11904: 0x95C9, - 36520 - 11904: 0xF9BE, - 36521 - 11904: 0xF9AB, - 36522 - 11904: 0xC66E, - 36523 - 11904: 0xA8AD, - 36524 - 11904: 0xB060, - 36525 - 11904: 0x9048, - 36528 - 11904: 0x99E8, - 36530 - 11904: 0xB8FA, - 36534 - 11904: 0x9049, - 36537 - 11904: 0x8CBA, - 36538 - 11904: 0xBDF6, - 36540 - 11904: 0x90B1, - 36541 - 11904: 0xEBC8, - 36544 - 11904: 0xC2DF, - 36546 - 11904: 0xF355, - 36547 - 11904: 0x904A, - 36553 - 11904: 0xF9AC, - 36554 - 11904: 0xA8AE, - 36555 - 11904: 0xAAEE, - 36556 - 11904: 0xAD79, - 36557 - 11904: 0xAD78, - 36558 - 11904: 0x99EA, - 36559 - 11904: 0xB063, - 36561 - 11904: 0xD3E8, - 36562 - 11904: 0xB061, - 36563 - 11904: 0xD3E9, - 36564 - 11904: 0xB062, - 36567 - 11904: 0xD7DF, - 36568 - 11904: 0xD7DB, - 36570 - 11904: 0x9BD1, - 36571 - 11904: 0xB36D, - 36572 - 11904: 0xD7DE, - 36573 - 11904: 0xD7DD, - 36574 - 11904: 0xD7DC, - 36575 - 11904: 0xB36E, - 36576 - 11904: 0xD7E0, - 36577 - 11904: 0xD7E1, - 36578 - 11904: 0x99EB, - 36580 - 11904: 0x99EC, - 36581 - 11904: 0xDC43, - 36582 - 11904: 0xDC41, - 36583 - 11904: 0xDC45, - 36584 - 11904: 0xDC46, - 36585 - 11904: 0xDC4C, - 36587 - 11904: 0xDC48, - 36588 - 11904: 0xDC4A, - 36589 - 11904: 0x99ED, - 36590 - 11904: 0xDC42, - 36591 - 11904: 0xDBFC, - 36593 - 11904: 0xDC49, - 36594 - 11904: 0x99EE, - 36596 - 11904: 0xDC4B, - 36597 - 11904: 0xDC44, - 36598 - 11904: 0xDC47, - 36599 - 11904: 0xDBFD, - 36600 - 11904: 0xB662, - 36601 - 11904: 0xDC40, - 36602 - 11904: 0xDBFE, - 36603 - 11904: 0xB661, - 36604 - 11904: 0xB663, - 36606 - 11904: 0xB8FD, - 36607 - 11904: 0xE075, - 36608 - 11904: 0xE077, - 36609 - 11904: 0xE076, - 36610 - 11904: 0xE07B, - 36611 - 11904: 0xB8FB, - 36613 - 11904: 0xE078, - 36614 - 11904: 0xE074, - 36615 - 11904: 0xE079, - 36616 - 11904: 0xE07A, - 36617 - 11904: 0xB8FC, - 36618 - 11904: 0xB8FE, - 36619 - 11904: 0xE07C, - 36621 - 11904: 0xE467, - 36622 - 11904: 0xE466, - 36624 - 11904: 0xE464, - 36625 - 11904: 0xE465, - 36626 - 11904: 0xBBB3, - 36627 - 11904: 0xBBB5, - 36628 - 11904: 0xBBB2, - 36629 - 11904: 0xBBB4, - 36630 - 11904: 0xE84D, - 36631 - 11904: 0xE84E, - 36632 - 11904: 0xE849, - 36633 - 11904: 0x904C, - 36634 - 11904: 0xE84A, - 36635 - 11904: 0xBDF8, - 36636 - 11904: 0xBDFD, - 36637 - 11904: 0xBDF7, - 36638 - 11904: 0xBDFE, - 36639 - 11904: 0xBDF9, - 36640 - 11904: 0xE84B, - 36643 - 11904: 0xE84C, - 36644 - 11904: 0xE848, - 36645 - 11904: 0xBE40, - 36646 - 11904: 0xBDFB, - 36649 - 11904: 0xBDFA, - 36650 - 11904: 0xBDFC, - 36652 - 11904: 0xE847, - 36653 - 11904: 0x904D, - 36654 - 11904: 0xEBCA, - 36655 - 11904: 0xBFE8, - 36656 - 11904: 0x95CB, - 36658 - 11904: 0xEBCC, - 36659 - 11904: 0xBFEA, - 36660 - 11904: 0xEBCF, - 36661 - 11904: 0xEBCB, - 36662 - 11904: 0xEBC9, - 36663 - 11904: 0xEBCE, - 36664 - 11904: 0xBFE9, - 36665 - 11904: 0xEBCD, - 36667 - 11904: 0xBFE7, - 36670 - 11904: 0xC1D3, - 36671 - 11904: 0xC1D6, - 36672 - 11904: 0xEEC1, - 36673 - 11904: 0x97E2, - 36674 - 11904: 0xC1D4, - 36675 - 11904: 0xEEC0, - 36676 - 11904: 0xC1D2, - 36677 - 11904: 0xC1D5, - 36678 - 11904: 0xF146, - 36679 - 11904: 0xF147, - 36680 - 11904: 0xF148, - 36681 - 11904: 0xC2E0, - 36682 - 11904: 0x95CC, - 36683 - 11904: 0xF149, - 36685 - 11904: 0xC2E1, - 36686 - 11904: 0xC3E2, - 36687 - 11904: 0xF358, - 36688 - 11904: 0xF359, - 36689 - 11904: 0xF357, - 36690 - 11904: 0xF356, - 36691 - 11904: 0xF35A, - 36692 - 11904: 0xC3E1, - 36693 - 11904: 0xF4DD, - 36694 - 11904: 0xF4DB, - 36695 - 11904: 0xF4DC, - 36696 - 11904: 0xF4DE, - 36697 - 11904: 0xF4DA, - 36698 - 11904: 0xF4DF, - 36699 - 11904: 0xF658, - 36700 - 11904: 0x9F78, - 36701 - 11904: 0xF659, - 36702 - 11904: 0xF657, - 36703 - 11904: 0xC546, - 36704 - 11904: 0xF764, - 36705 - 11904: 0xC5AF, - 36706 - 11904: 0xF765, - 36707 - 11904: 0xF848, - 36708 - 11904: 0xF847, - 36710 - 11904: 0x897C, - 36711 - 11904: 0x897D, - 36718 - 11904: 0x897E, - 36755 - 11904: 0x995D, - 36763 - 11904: 0xA8AF, - 36764 - 11904: 0xB664, - 36767 - 11904: 0xB940, - 36768 - 11904: 0x9B5A, - 36771 - 11904: 0xBBB6, - 36773 - 11904: 0x9050, - 36774 - 11904: 0xBFEC, - 36775 - 11904: 0x8C4F, - 36776 - 11904: 0xBFEB, - 36781 - 11904: 0xC3E3, - 36782 - 11904: 0xC47C, - 36783 - 11904: 0xC547, - 36784 - 11904: 0xA8B0, - 36785 - 11904: 0xB064, - 36786 - 11904: 0xB941, - 36787 - 11904: 0x9054, - 36788 - 11904: 0xF35B, - 36789 - 11904: 0xC6D6, - 36790 - 11904: 0x9AA8, - 36791 - 11904: 0x99EF, - 36792 - 11904: 0xFEEB, - 36793 - 11904: 0x9DA3, - 36794 - 11904: 0x9DA1, - 36795 - 11904: 0x9943, - 36796 - 11904: 0x9945, - 36798 - 11904: 0x9D7D, - 36799 - 11904: 0xCBA6, - 36801 - 11904: 0x99F0, - 36802 - 11904: 0xA8B1, - 36804 - 11904: 0xA8B4, - 36805 - 11904: 0xA8B3, - 36806 - 11904: 0xA8B2, - 36809 - 11904: 0xCBA5, - 36810 - 11904: 0x99F1, - 36811 - 11904: 0xCDCD, - 36812 - 11904: 0x99F2, - 36813 - 11904: 0xCDCF, - 36814 - 11904: 0xAAEF, - 36815 - 11904: 0x8CBC, - 36816 - 11904: 0x9D60, - 36817 - 11904: 0xAAF1, - 36818 - 11904: 0xCDCC, - 36819 - 11904: 0xCDCE, - 36820 - 11904: 0xAAF0, - 36821 - 11904: 0xCDD1, - 36822 - 11904: 0xCDD0, - 36823 - 11904: 0xCDD2, - 36826 - 11904: 0xA0A3, - 36832 - 11904: 0xD0B6, - 36833 - 11904: 0xD0B4, - 36834 - 11904: 0xAD7C, - 36835 - 11904: 0xD0B3, - 36836 - 11904: 0xADA3, - 36837 - 11904: 0xAD7E, - 36838 - 11904: 0xAD7B, - 36840 - 11904: 0xADA4, - 36842 - 11904: 0xAD7D, - 36843 - 11904: 0xADA2, - 36845 - 11904: 0xADA1, - 36846 - 11904: 0xD0B5, - 36848 - 11904: 0xAD7A, - 36852 - 11904: 0xB06A, - 36853 - 11904: 0xD3EB, - 36854 - 11904: 0xD3F1, - 36855 - 11904: 0xB067, - 36856 - 11904: 0xB06E, - 36857 - 11904: 0x905B, - 36858 - 11904: 0xB069, - 36859 - 11904: 0xD3EE, - 36860 - 11904: 0xD3F0, - 36861 - 11904: 0xB06C, - 36862 - 11904: 0xD3EA, - 36863 - 11904: 0xD3ED, - 36864 - 11904: 0xB068, - 36865 - 11904: 0xB065, - 36866 - 11904: 0xD3EC, - 36867 - 11904: 0xB06B, - 36868 - 11904: 0xD3EF, - 36869 - 11904: 0xB06D, - 36870 - 11904: 0xB066, - 36872 - 11904: 0x9EDB, - 36875 - 11904: 0xD7E3, - 36876 - 11904: 0xD7E6, - 36877 - 11904: 0xB370, - 36879 - 11904: 0xB37A, - 36880 - 11904: 0xB376, - 36881 - 11904: 0xD7E4, - 36882 - 11904: 0x9D79, - 36884 - 11904: 0xB37E, - 36885 - 11904: 0xB377, - 36886 - 11904: 0xB37C, - 36887 - 11904: 0xB372, - 36889 - 11904: 0xB36F, - 36890 - 11904: 0xB371, - 36891 - 11904: 0xB37D, - 36892 - 11904: 0xD7E5, - 36893 - 11904: 0xB375, - 36894 - 11904: 0xB378, - 36895 - 11904: 0xB374, - 36896 - 11904: 0xB379, - 36897 - 11904: 0xD7E7, - 36898 - 11904: 0xB37B, - 36899 - 11904: 0xB373, - 36900 - 11904: 0xD7E2, - 36909 - 11904: 0xDC4D, - 36910 - 11904: 0xB665, - 36911 - 11904: 0xDC4F, - 36913 - 11904: 0xB667, - 36914 - 11904: 0xB669, - 36915 - 11904: 0x99F3, - 36916 - 11904: 0xDC4E, - 36917 - 11904: 0xB666, - 36918 - 11904: 0xB66A, - 36919 - 11904: 0x9062, - 36920 - 11904: 0xB668, - 36924 - 11904: 0xB947, - 36925 - 11904: 0xE0A3, - 36926 - 11904: 0xB94F, - 36927 - 11904: 0xE07E, - 36929 - 11904: 0xB950, - 36930 - 11904: 0xB945, - 36932 - 11904: 0xE0A1, - 36934 - 11904: 0x87BD, - 36935 - 11904: 0xB94A, - 36937 - 11904: 0xE0A2, - 36938 - 11904: 0xB943, - 36939 - 11904: 0xB942, - 36940 - 11904: 0x9F55, - 36941 - 11904: 0xB94D, - 36942 - 11904: 0xB94C, - 36943 - 11904: 0xB94B, - 36944 - 11904: 0xB949, - 36945 - 11904: 0xB94E, - 36946 - 11904: 0xE07D, - 36947 - 11904: 0xB944, - 36948 - 11904: 0xB946, - 36949 - 11904: 0xB948, - 36950 - 11904: 0x9BF9, - 36952 - 11904: 0xBBB8, - 36953 - 11904: 0xBBBB, - 36955 - 11904: 0xBBBF, - 36956 - 11904: 0xBBB9, - 36957 - 11904: 0xBBBE, - 36958 - 11904: 0xBBBC, - 36960 - 11904: 0xBBB7, - 36961 - 11904: 0x9065, - 36962 - 11904: 0xBBBD, - 36963 - 11904: 0xBBBA, - 36964 - 11904: 0x96E0, - 36967 - 11904: 0xE852, - 36968 - 11904: 0xBE43, - 36969 - 11904: 0xBE41, - 36971 - 11904: 0xE853, - 36972 - 11904: 0x98BE, - 36973 - 11904: 0xBE44, - 36974 - 11904: 0xBE42, - 36975 - 11904: 0xE851, - 36976 - 11904: 0xE850, - 36978 - 11904: 0xBFF0, - 36979 - 11904: 0xE84F, - 36980 - 11904: 0xBFEE, - 36981 - 11904: 0xBFED, - 36982 - 11904: 0xEBD0, - 36983 - 11904: 0xBE45, - 36984 - 11904: 0xBFEF, - 36985 - 11904: 0xEBD1, - 36986 - 11904: 0xBFF2, - 36987 - 11904: 0xEBD2, - 36988 - 11904: 0xBFF1, - 36989 - 11904: 0xC1D8, - 36990 - 11904: 0xEEC3, - 36991 - 11904: 0xC1D7, - 36992 - 11904: 0xC1DC, - 36993 - 11904: 0xC1DA, - 36994 - 11904: 0xC1DB, - 36995 - 11904: 0xC2E3, - 36996 - 11904: 0xC1D9, - 36997 - 11904: 0xEEC2, - 36998 - 11904: 0xEBD3, - 36999 - 11904: 0xC2E2, - 37000 - 11904: 0xC2E4, - 37002 - 11904: 0xC3E4, - 37003 - 11904: 0xC3E5, - 37005 - 11904: 0xF4E0, - 37007 - 11904: 0xC5DE, - 37008 - 11904: 0xC5DD, - 37009 - 11904: 0xA8B6, - 37012 - 11904: 0xCA55, - 37013 - 11904: 0xB06F, - 37015 - 11904: 0xCA52, - 37016 - 11904: 0xCA53, - 37017 - 11904: 0xCA51, - 37019 - 11904: 0xCA54, - 37022 - 11904: 0xCBAA, - 37023 - 11904: 0xCBA7, - 37024 - 11904: 0xCBAC, - 37025 - 11904: 0xCBA8, - 37026 - 11904: 0xA8B7, - 37027 - 11904: 0xA8BA, - 37029 - 11904: 0xCBA9, - 37030 - 11904: 0xA8B9, - 37031 - 11904: 0xCBAB, - 37032 - 11904: 0x9068, - 37034 - 11904: 0xA8B8, - 37038 - 11904: 0x906C, - 37039 - 11904: 0xCDD5, - 37040 - 11904: 0xCDD7, - 37041 - 11904: 0xAAF4, - 37042 - 11904: 0xCDD3, - 37043 - 11904: 0xCDD6, - 37044 - 11904: 0xCDD4, - 37045 - 11904: 0xAAF2, - 37046 - 11904: 0xAAF5, - 37048 - 11904: 0xAAF3, - 37051 - 11904: 0x95D8, - 37053 - 11904: 0xD0B8, - 37054 - 11904: 0xD0BC, - 37055 - 11904: 0xD0B9, - 37057 - 11904: 0xADA7, - 37059 - 11904: 0xADA8, - 37060 - 11904: 0x906A, - 37061 - 11904: 0xD0BB, - 37063 - 11904: 0xD0BD, - 37064 - 11904: 0xD0BF, - 37066 - 11904: 0xADA5, - 37067 - 11904: 0xD0BE, - 37070 - 11904: 0xADA6, - 37076 - 11904: 0xD7EE, - 37077 - 11904: 0xD0BA, - 37078 - 11904: 0xD3F2, - 37079 - 11904: 0xD3FB, - 37080 - 11904: 0xD3F9, - 37081 - 11904: 0xD3F4, - 37082 - 11904: 0xD3F5, - 37083 - 11904: 0xD3FA, - 37084 - 11904: 0xD3FC, - 37085 - 11904: 0xB071, - 37087 - 11904: 0xD3F7, - 37088 - 11904: 0xD3F3, - 37089 - 11904: 0xB070, - 37090 - 11904: 0xB072, - 37091 - 11904: 0xD3F6, - 37092 - 11904: 0xD3FD, - 37093 - 11904: 0xD3F8, - 37096 - 11904: 0xB3A1, - 37097 - 11904: 0xD7F1, - 37098 - 11904: 0xD7E9, - 37099 - 11904: 0xD7EF, - 37100 - 11904: 0xD7F0, - 37101 - 11904: 0xB3A2, - 37103 - 11904: 0xD7E8, - 37104 - 11904: 0xD7EA, - 37105 - 11904: 0xD0B7, - 37106 - 11904: 0xD7EC, - 37107 - 11904: 0xD7ED, - 37108 - 11904: 0xD7EB, - 37109 - 11904: 0xB66C, - 37113 - 11904: 0xDC56, - 37114 - 11904: 0xEBD4, - 37115 - 11904: 0xDC57, - 37116 - 11904: 0xDC54, - 37117 - 11904: 0xB3A3, - 37118 - 11904: 0xB66E, - 37119 - 11904: 0xDC53, - 37120 - 11904: 0xDC59, - 37121 - 11904: 0xDC58, - 37122 - 11904: 0xB66B, - 37123 - 11904: 0xDC5C, - 37124 - 11904: 0xDC52, - 37125 - 11904: 0xDC5B, - 37126 - 11904: 0xDC50, - 37127 - 11904: 0xDC5A, - 37128 - 11904: 0xDC55, - 37129 - 11904: 0xB66D, - 37131 - 11904: 0xE0AA, - 37133 - 11904: 0xE0A5, - 37134 - 11904: 0xE0AB, - 37135 - 11904: 0xE0A6, - 37136 - 11904: 0xE0A4, - 37137 - 11904: 0xE0A7, - 37138 - 11904: 0xB951, - 37140 - 11904: 0xE0A9, - 37142 - 11904: 0xE0A8, - 37143 - 11904: 0xB952, - 37144 - 11904: 0xBBC1, - 37145 - 11904: 0xBBC0, - 37146 - 11904: 0xE46E, - 37147 - 11904: 0xE471, - 37148 - 11904: 0xE469, - 37149 - 11904: 0xE46D, - 37150 - 11904: 0xBBC2, - 37151 - 11904: 0xE46C, - 37152 - 11904: 0xE46A, - 37153 - 11904: 0xE470, - 37154 - 11904: 0xE46B, - 37155 - 11904: 0xE468, - 37156 - 11904: 0xE46F, - 37158 - 11904: 0xE859, - 37159 - 11904: 0xBE48, - 37160 - 11904: 0xF14A, - 37161 - 11904: 0xE856, - 37162 - 11904: 0xE857, - 37163 - 11904: 0xE855, - 37164 - 11904: 0xDC51, - 37165 - 11904: 0xBE47, - 37166 - 11904: 0xE85A, - 37167 - 11904: 0xE854, - 37168 - 11904: 0xBE46, - 37169 - 11904: 0xBE49, - 37170 - 11904: 0xE858, - 37171 - 11904: 0xEBD5, - 37172 - 11904: 0xBFF3, - 37173 - 11904: 0xEBD6, - 37174 - 11904: 0xEBD7, - 37176 - 11904: 0xEEC4, - 37177 - 11904: 0xC1DD, - 37178 - 11904: 0xF14B, - 37179 - 11904: 0xF14C, - 37182 - 11904: 0xF14D, - 37183 - 11904: 0xF35D, - 37184 - 11904: 0xF35C, - 37185 - 11904: 0xF4E2, - 37187 - 11904: 0xF4E1, - 37188 - 11904: 0xF65B, - 37189 - 11904: 0xF65C, - 37190 - 11904: 0xF65A, - 37191 - 11904: 0xF766, - 37192 - 11904: 0xC5B0, - 37193 - 11904: 0xA8BB, - 37194 - 11904: 0xADAA, - 37195 - 11904: 0xADA9, - 37196 - 11904: 0xB075, - 37197 - 11904: 0xB074, - 37198 - 11904: 0xD440, - 37199 - 11904: 0xD441, - 37200 - 11904: 0xD3FE, - 37201 - 11904: 0x9FB2, - 37202 - 11904: 0xB073, - 37203 - 11904: 0xD7F5, - 37205 - 11904: 0xD7F6, - 37206 - 11904: 0xD7F2, - 37207 - 11904: 0xB3A4, - 37208 - 11904: 0xD7F3, - 37209 - 11904: 0x9FAE, - 37210 - 11904: 0xD7F4, - 37212 - 11904: 0x9FB0, - 37214 - 11904: 0x89AD, - 37215 - 11904: 0xDC5F, - 37216 - 11904: 0xDC61, - 37217 - 11904: 0xDC5D, - 37218 - 11904: 0xDC60, - 37219 - 11904: 0xB66F, - 37220 - 11904: 0xDC5E, - 37221 - 11904: 0xB670, - 37223 - 11904: 0x906E, - 37224 - 11904: 0xDD73, - 37225 - 11904: 0xB955, - 37226 - 11904: 0xB954, - 37228 - 11904: 0xB953, - 37230 - 11904: 0xE0AC, - 37231 - 11904: 0xE0AD, - 37232 - 11904: 0x9E71, - 37234 - 11904: 0xE473, - 37235 - 11904: 0xE475, - 37236 - 11904: 0xBBC6, - 37237 - 11904: 0xBBC3, - 37238 - 11904: 0x9E4A, - 37239 - 11904: 0xBBC5, - 37240 - 11904: 0xBBC4, - 37241 - 11904: 0xE474, - 37242 - 11904: 0xE472, - 37244 - 11904: 0x9FDC, - 37248 - 11904: 0xE861, - 37249 - 11904: 0xE85E, - 37250 - 11904: 0xE85F, - 37251 - 11904: 0xBE4D, - 37252 - 11904: 0xE860, - 37253 - 11904: 0xE85B, - 37254 - 11904: 0xE85C, - 37255 - 11904: 0xBE4A, - 37257 - 11904: 0xBE4B, - 37258 - 11904: 0xE85D, - 37259 - 11904: 0xBE4C, - 37260 - 11904: 0x89AB, - 37261 - 11904: 0xEBDB, - 37262 - 11904: 0x9FB8, - 37263 - 11904: 0xEBDC, - 37264 - 11904: 0xEBD9, - 37265 - 11904: 0xEBDA, - 37266 - 11904: 0xBFF4, - 37267 - 11904: 0xEBD8, - 37273 - 11904: 0xEEC8, - 37274 - 11904: 0xEEC5, - 37275 - 11904: 0xEEC7, - 37276 - 11904: 0xC1E0, - 37277 - 11904: 0xEECB, - 37278 - 11904: 0xC1DF, - 37279 - 11904: 0xEEC9, - 37280 - 11904: 0xEECC, - 37281 - 11904: 0xEECA, - 37282 - 11904: 0xEEC6, - 37283 - 11904: 0xC1DE, - 37285 - 11904: 0xF14F, - 37287 - 11904: 0xF150, - 37288 - 11904: 0xF14E, - 37289 - 11904: 0x9070, - 37290 - 11904: 0xF152, - 37291 - 11904: 0xC2E5, - 37292 - 11904: 0xC2E6, - 37293 - 11904: 0xF35F, - 37294 - 11904: 0xC3E7, - 37295 - 11904: 0xF151, - 37296 - 11904: 0xF35E, - 37297 - 11904: 0xC3E6, - 37298 - 11904: 0xF4E5, - 37299 - 11904: 0xF4E6, - 37300 - 11904: 0xC4BF, - 37301 - 11904: 0xF4E4, - 37302 - 11904: 0x8B63, - 37303 - 11904: 0xF4E3, - 37305 - 11904: 0xF65D, - 37306 - 11904: 0xC548, - 37307 - 11904: 0x95DC, - 37308 - 11904: 0xF849, - 37309 - 11904: 0xF8C8, - 37310 - 11904: 0xF8C7, - 37312 - 11904: 0xC643, - 37313 - 11904: 0xC65D, - 37314 - 11904: 0xF8C9, - 37315 - 11904: 0xF971, - 37316 - 11904: 0x9071, - 37317 - 11904: 0xC66F, - 37318 - 11904: 0xA8BC, - 37319 - 11904: 0xAAF6, - 37321 - 11904: 0xB956, - 37323 - 11904: 0xC4C0, - 37324 - 11904: 0xA8BD, - 37325 - 11904: 0xADAB, - 37326 - 11904: 0xB3A5, - 37327 - 11904: 0xB671, - 37328 - 11904: 0xC2E7, - 37329 - 11904: 0xAAF7, - 37331 - 11904: 0xD0C1, - 37332 - 11904: 0xD0C0, - 37333 - 11904: 0xD442, - 37334 - 11904: 0xFC5E, - 37335 - 11904: 0xB078, - 37336 - 11904: 0xB076, - 37337 - 11904: 0xB07A, - 37338 - 11904: 0xD444, - 37340 - 11904: 0xB079, - 37341 - 11904: 0xB077, - 37343 - 11904: 0x8949, - 37346 - 11904: 0xD443, - 37347 - 11904: 0xB3A8, - 37348 - 11904: 0xD7FC, - 37349 - 11904: 0x965B, - 37350 - 11904: 0xB3A7, - 37351 - 11904: 0xB3A9, - 37352 - 11904: 0xD842, - 37353 - 11904: 0xB3AB, - 37354 - 11904: 0xD7FE, - 37355 - 11904: 0xD840, - 37356 - 11904: 0xD7F7, - 37357 - 11904: 0xB3AA, - 37358 - 11904: 0xD843, - 37361 - 11904: 0xD7F9, - 37363 - 11904: 0xD7FA, - 37364 - 11904: 0xD7F8, - 37365 - 11904: 0xB3A6, - 37366 - 11904: 0x8C50, - 37367 - 11904: 0xD841, - 37368 - 11904: 0xD7FB, - 37369 - 11904: 0xD7FD, - 37370 - 11904: 0x94A6, - 37373 - 11904: 0xDC6D, - 37374 - 11904: 0x8FD5, - 37375 - 11904: 0xDC6C, - 37376 - 11904: 0xDC6A, - 37377 - 11904: 0xDC62, - 37378 - 11904: 0xDC71, - 37379 - 11904: 0xDC65, - 37380 - 11904: 0xDC6F, - 37381 - 11904: 0xDC76, - 37382 - 11904: 0xDC6E, - 37383 - 11904: 0xB679, - 37384 - 11904: 0x9E73, - 37385 - 11904: 0xB675, - 37386 - 11904: 0xDC63, - 37388 - 11904: 0xDC69, - 37389 - 11904: 0xB677, - 37390 - 11904: 0x9075, - 37391 - 11904: 0xDC68, - 37392 - 11904: 0xB678, - 37393 - 11904: 0xB67A, - 37394 - 11904: 0xDC6B, - 37395 - 11904: 0x99F7, - 37396 - 11904: 0xB672, - 37397 - 11904: 0xB673, - 37398 - 11904: 0xDC77, - 37399 - 11904: 0xDC75, - 37400 - 11904: 0x87B2, - 37401 - 11904: 0xDC74, - 37402 - 11904: 0xDC66, - 37404 - 11904: 0xDC72, - 37406 - 11904: 0xB676, - 37409 - 11904: 0x8CBF, - 37411 - 11904: 0xB674, - 37412 - 11904: 0xDC73, - 37413 - 11904: 0xDC64, - 37414 - 11904: 0xDC67, - 37415 - 11904: 0xDC70, - 37416 - 11904: 0x99F9, - 37418 - 11904: 0x9663, - 37419 - 11904: 0x95B9, - 37421 - 11904: 0xE4BA, - 37422 - 11904: 0xE0B7, - 37424 - 11904: 0xE0B0, - 37425 - 11904: 0xE0C3, - 37426 - 11904: 0xE0CC, - 37427 - 11904: 0xE0B3, - 37428 - 11904: 0xB961, - 37429 - 11904: 0x94D4, - 37430 - 11904: 0xE0C0, - 37431 - 11904: 0xB957, - 37432 - 11904: 0xB959, - 37433 - 11904: 0xB965, - 37434 - 11904: 0xE0B1, - 37436 - 11904: 0xFCFA, - 37437 - 11904: 0xB95A, - 37438 - 11904: 0xB95C, - 37439 - 11904: 0xB966, - 37440 - 11904: 0xB95B, - 37441 - 11904: 0x9077, - 37444 - 11904: 0x90AB, - 37445 - 11904: 0xB964, - 37446 - 11904: 0xE0B9, - 37448 - 11904: 0xE0AE, - 37449 - 11904: 0xB962, - 37450 - 11904: 0xE0B8, - 37451 - 11904: 0xB95E, - 37452 - 11904: 0xE0CA, - 37453 - 11904: 0xB963, - 37454 - 11904: 0xE0C8, - 37455 - 11904: 0xE0BC, - 37456 - 11904: 0xE0C6, - 37457 - 11904: 0xB960, - 37458 - 11904: 0xE0AF, - 37459 - 11904: 0xE0C9, - 37460 - 11904: 0xE0C4, - 37461 - 11904: 0x9D4D, - 37462 - 11904: 0xE0CB, - 37463 - 11904: 0xB958, - 37464 - 11904: 0x99FA, - 37466 - 11904: 0xB967, - 37467 - 11904: 0xB95D, - 37469 - 11904: 0x92E3, - 37470 - 11904: 0xE0B5, - 37471 - 11904: 0x97BB, - 37472 - 11904: 0xE0BD, - 37473 - 11904: 0xE0C1, - 37474 - 11904: 0x9078, - 37475 - 11904: 0xE0C5, - 37476 - 11904: 0xB95F, - 37477 - 11904: 0xE0B4, - 37478 - 11904: 0xE0B2, - 37479 - 11904: 0xE0BE, - 37483 - 11904: 0x99FB, - 37484 - 11904: 0xE0BB, - 37485 - 11904: 0xE0BA, - 37486 - 11904: 0x97E0, - 37487 - 11904: 0xE0BF, - 37488 - 11904: 0xE0C2, - 37490 - 11904: 0xE0C7, - 37494 - 11904: 0xE478, - 37495 - 11904: 0x96DC, - 37496 - 11904: 0xBBC7, - 37497 - 11904: 0xE4A4, - 37498 - 11904: 0xE47A, - 37499 - 11904: 0xBBCC, - 37500 - 11904: 0xBBD0, - 37501 - 11904: 0xE4AD, - 37502 - 11904: 0xE4B5, - 37503 - 11904: 0xE4A6, - 37504 - 11904: 0xBBC8, - 37505 - 11904: 0x9CA8, - 37506 - 11904: 0xE4AA, - 37507 - 11904: 0xE0B6, - 37508 - 11904: 0x9772, - 37509 - 11904: 0xBBC9, - 37510 - 11904: 0xE4B1, - 37511 - 11904: 0xE4B6, - 37512 - 11904: 0xE4AE, - 37513 - 11904: 0x9440, - 37514 - 11904: 0xE4B0, - 37515 - 11904: 0xE4B9, - 37516 - 11904: 0xE4B2, - 37517 - 11904: 0xE47E, - 37518 - 11904: 0xE4A9, - 37519 - 11904: 0x92F2, - 37521 - 11904: 0xBBD1, - 37523 - 11904: 0xBBCD, - 37524 - 11904: 0xE47C, - 37525 - 11904: 0xE4AB, - 37526 - 11904: 0xBBCB, - 37527 - 11904: 0xE4A5, - 37528 - 11904: 0xBBCA, - 37529 - 11904: 0xE4B3, - 37530 - 11904: 0xE4A2, - 37531 - 11904: 0xE479, - 37532 - 11904: 0xBBCE, - 37533 - 11904: 0xE4B8, - 37536 - 11904: 0xE47B, - 37537 - 11904: 0xE4AF, - 37538 - 11904: 0xE4AC, - 37539 - 11904: 0xE4A7, - 37540 - 11904: 0xE477, - 37541 - 11904: 0xE476, - 37542 - 11904: 0xE4A1, - 37543 - 11904: 0xE4B4, - 37544 - 11904: 0xBBCF, - 37545 - 11904: 0xE4B7, - 37546 - 11904: 0xE47D, - 37547 - 11904: 0xE4A3, - 37548 - 11904: 0xBE52, - 37550 - 11904: 0x99FD, - 37553 - 11904: 0x99FC, - 37554 - 11904: 0xBE5A, - 37555 - 11904: 0xBE55, - 37556 - 11904: 0xE8A4, - 37557 - 11904: 0xE8A1, - 37558 - 11904: 0xE867, - 37559 - 11904: 0xBE50, - 37561 - 11904: 0xF9D7, - 37562 - 11904: 0x964A, - 37563 - 11904: 0xBE4F, - 37564 - 11904: 0xBE56, - 37566 - 11904: 0x96D8, - 37567 - 11904: 0x99FE, - 37568 - 11904: 0xE865, - 37569 - 11904: 0xBE54, - 37570 - 11904: 0xE871, - 37571 - 11904: 0xE863, - 37572 - 11904: 0xE864, - 37573 - 11904: 0xBE4E, - 37574 - 11904: 0xE8A3, - 37575 - 11904: 0xBE58, - 37576 - 11904: 0xE874, - 37577 - 11904: 0xE879, - 37578 - 11904: 0xE873, - 37579 - 11904: 0xEBEE, - 37580 - 11904: 0xE86F, - 37581 - 11904: 0xE877, - 37582 - 11904: 0xE875, - 37583 - 11904: 0xE868, - 37584 - 11904: 0xE862, - 37585 - 11904: 0xE87D, - 37586 - 11904: 0xBE57, - 37587 - 11904: 0xE87E, - 37588 - 11904: 0x904B, - 37589 - 11904: 0xE878, - 37591 - 11904: 0xE86D, - 37592 - 11904: 0xE86B, - 37593 - 11904: 0xE866, - 37595 - 11904: 0xFA41, - 37597 - 11904: 0xE86E, - 37598 - 11904: 0xE87B, - 37599 - 11904: 0xE86A, - 37600 - 11904: 0xE87A, - 37601 - 11904: 0xE8A2, - 37603 - 11904: 0x9A40, - 37604 - 11904: 0xBE53, - 37605 - 11904: 0x975B, - 37606 - 11904: 0xE876, - 37607 - 11904: 0xE87C, - 37608 - 11904: 0xE872, - 37609 - 11904: 0xE86C, - 37610 - 11904: 0xBE51, - 37611 - 11904: 0x9A41, - 37612 - 11904: 0x91DD, - 37614 - 11904: 0xE4A8, - 37615 - 11904: 0xE870, - 37616 - 11904: 0xBE59, - 37617 - 11904: 0xE869, - 37618 - 11904: 0x93FC, - 37619 - 11904: 0x9A42, - 37620 - 11904: 0x9A43, - 37622 - 11904: 0x9659, - 37623 - 11904: 0xEBF4, - 37624 - 11904: 0xBFF7, - 37625 - 11904: 0xEBF3, - 37626 - 11904: 0xEBF0, - 37627 - 11904: 0xEC44, - 37628 - 11904: 0xBFFB, - 37629 - 11904: 0x9A44, - 37630 - 11904: 0xEC41, - 37631 - 11904: 0xEBF8, - 37632 - 11904: 0xEC43, - 37633 - 11904: 0xEBE9, - 37634 - 11904: 0xEBF6, - 37635 - 11904: 0x9051, - 37636 - 11904: 0xBFFD, - 37638 - 11904: 0xEBE1, - 37639 - 11904: 0x94BF, - 37640 - 11904: 0xEBDF, - 37641 - 11904: 0xEC42, - 37643 - 11904: 0xEC40, - 37644 - 11904: 0xEBFE, - 37645 - 11904: 0xEBED, - 37646 - 11904: 0xEBEC, - 37647 - 11904: 0xEBE2, - 37648 - 11904: 0xC040, - 37650 - 11904: 0xEBE8, - 37651 - 11904: 0xEBF2, - 37652 - 11904: 0xEBFD, - 37653 - 11904: 0xC043, - 37654 - 11904: 0xEC45, - 37656 - 11904: 0xC1E8, - 37657 - 11904: 0xC045, - 37658 - 11904: 0xBFFE, - 37659 - 11904: 0xEBE6, - 37661 - 11904: 0xEBEF, - 37662 - 11904: 0xEBDE, - 37663 - 11904: 0xEBE0, - 37664 - 11904: 0xBFF5, - 37665 - 11904: 0xC042, - 37666 - 11904: 0xBFFA, - 37667 - 11904: 0xEBE7, - 37668 - 11904: 0xEBF7, - 37669 - 11904: 0xEBF1, - 37670 - 11904: 0xC041, - 37671 - 11904: 0xEBDD, - 37672 - 11904: 0xC1E3, - 37673 - 11904: 0xEBF9, - 37674 - 11904: 0xEBFC, - 37675 - 11904: 0xBFFC, - 37676 - 11904: 0x90A2, - 37677 - 11904: 0xEBEB, - 37678 - 11904: 0xC044, - 37679 - 11904: 0xBFF9, - 37680 - 11904: 0x9CAB, - 37681 - 11904: 0x9776, - 37683 - 11904: 0xBFF8, - 37684 - 11904: 0xEBF5, - 37685 - 11904: 0xEBFB, - 37686 - 11904: 0xBFF6, - 37688 - 11904: 0xEBE4, - 37689 - 11904: 0xEBFA, - 37692 - 11904: 0xEBE5, - 37696 - 11904: 0xFC55, - 37697 - 11904: 0xFE45, - 37698 - 11904: 0x94A8, - 37699 - 11904: 0x9A45, - 37700 - 11904: 0xFA4B, - 37701 - 11904: 0x9DE1, - 37702 - 11904: 0xEBEA, - 37703 - 11904: 0xEED2, - 37704 - 11904: 0x96D9, - 37705 - 11904: 0xEED7, - 37706 - 11904: 0xC1E5, - 37707 - 11904: 0xC1E7, - 37708 - 11904: 0xEEDD, - 37709 - 11904: 0xC1E1, - 37710 - 11904: 0xEEEC, - 37711 - 11904: 0xEEE3, - 37712 - 11904: 0xEED8, - 37713 - 11904: 0xEED9, - 37714 - 11904: 0xEEE2, - 37716 - 11904: 0xC1EE, - 37717 - 11904: 0xEEE1, - 37718 - 11904: 0xEED1, - 37719 - 11904: 0xEEE0, - 37720 - 11904: 0xEED4, - 37721 - 11904: 0xEEED, - 37722 - 11904: 0xC1ED, - 37723 - 11904: 0xC1EB, - 37724 - 11904: 0xEED5, - 37726 - 11904: 0xEEE8, - 37727 - 11904: 0x9774, - 37728 - 11904: 0xEEDA, - 37729 - 11904: 0xEEE7, - 37730 - 11904: 0xFDF5, - 37731 - 11904: 0xEEE9, - 37732 - 11904: 0xEED0, - 37733 - 11904: 0xC1E6, - 37734 - 11904: 0x92E5, - 37735 - 11904: 0xEEEA, - 37736 - 11904: 0x9645, - 37737 - 11904: 0x91DA, - 37738 - 11904: 0xEEDE, - 37739 - 11904: 0x90A3, - 37740 - 11904: 0xC1EA, - 37741 - 11904: 0xEEDB, - 37742 - 11904: 0xA05F, - 37744 - 11904: 0xC1EC, - 37745 - 11904: 0xEEE4, - 37747 - 11904: 0x90AF, - 37748 - 11904: 0x97BF, - 37749 - 11904: 0xC1E4, - 37750 - 11904: 0xEED6, - 37751 - 11904: 0xEEE5, - 37752 - 11904: 0x914C, - 37753 - 11904: 0xEEDF, - 37754 - 11904: 0xEBE3, - 37755 - 11904: 0xEEE6, - 37756 - 11904: 0xEED3, - 37757 - 11904: 0x967A, - 37758 - 11904: 0xC1E9, - 37760 - 11904: 0xEEEB, - 37761 - 11904: 0x91DE, - 37762 - 11904: 0xC1E2, - 37763 - 11904: 0xEECE, - 37764 - 11904: 0x9A46, - 37765 - 11904: 0xFEB0, - 37766 - 11904: 0x9779, - 37767 - 11904: 0x946C, - 37768 - 11904: 0xF160, - 37769 - 11904: 0xF159, - 37770 - 11904: 0xC2E9, - 37772 - 11904: 0xF154, - 37773 - 11904: 0xF163, - 37774 - 11904: 0xF15B, - 37775 - 11904: 0xEEDC, - 37776 - 11904: 0x9858, - 37777 - 11904: 0xF165, - 37778 - 11904: 0xF155, - 37780 - 11904: 0xC2E8, - 37781 - 11904: 0xF15F, - 37782 - 11904: 0xC2EA, - 37783 - 11904: 0xC2F2, - 37784 - 11904: 0xC2F0, - 37785 - 11904: 0xF161, - 37786 - 11904: 0xC2F1, - 37787 - 11904: 0xF157, - 37788 - 11904: 0x9266, - 37789 - 11904: 0xF158, - 37790 - 11904: 0xF15D, - 37791 - 11904: 0xF162, - 37792 - 11904: 0x93FB, - 37793 - 11904: 0xEECD, - 37794 - 11904: 0xC2EB, - 37795 - 11904: 0xF16A, - 37796 - 11904: 0xF167, - 37797 - 11904: 0xF16B, - 37798 - 11904: 0xF15E, - 37799 - 11904: 0xF15A, - 37800 - 11904: 0xF168, - 37801 - 11904: 0xF36A, - 37802 - 11904: 0xF15C, - 37804 - 11904: 0xC2EE, - 37805 - 11904: 0x9A47, - 37806 - 11904: 0xC2ED, - 37807 - 11904: 0xEECF, - 37808 - 11904: 0xC2EF, - 37809 - 11904: 0xF164, - 37810 - 11904: 0xF166, - 37811 - 11904: 0xC2EC, - 37812 - 11904: 0xF169, - 37813 - 11904: 0xF153, - 37815 - 11904: 0xF156, - 37816 - 11904: 0x9749, - 37819 - 11904: 0x9748, - 37821 - 11904: 0x934A, - 37823 - 11904: 0x9CE2, - 37824 - 11904: 0xF373, - 37826 - 11904: 0xF363, - 37827 - 11904: 0xC3EB, - 37828 - 11904: 0xF371, - 37830 - 11904: 0x9264, - 37831 - 11904: 0xF361, - 37832 - 11904: 0xC3EC, - 37834 - 11904: 0xF36C, - 37835 - 11904: 0x91DF, - 37836 - 11904: 0xF368, - 37837 - 11904: 0xC3F1, - 37838 - 11904: 0xF372, - 37839 - 11904: 0xF362, - 37840 - 11904: 0xF365, - 37841 - 11904: 0xC3E9, - 37842 - 11904: 0xF374, - 37843 - 11904: 0xFB79, - 37844 - 11904: 0xF36D, - 37845 - 11904: 0xF370, - 37846 - 11904: 0xC3EF, - 37847 - 11904: 0xC3F4, - 37848 - 11904: 0xC3F2, - 37849 - 11904: 0xF369, - 37850 - 11904: 0xF364, - 37851 - 11904: 0x96D7, - 37852 - 11904: 0xC3ED, - 37853 - 11904: 0xC3EE, - 37854 - 11904: 0xF360, - 37855 - 11904: 0xC3EA, - 37856 - 11904: 0x9343, - 37857 - 11904: 0xC3E8, - 37858 - 11904: 0xC3F0, - 37859 - 11904: 0xF36F, - 37860 - 11904: 0xC3F3, - 37862 - 11904: 0xF36B, - 37863 - 11904: 0xF375, - 37864 - 11904: 0xC3F5, - 37868 - 11904: 0xF367, - 37870 - 11904: 0xF36E, - 37872 - 11904: 0xFDCB, - 37873 - 11904: 0xFE7A, - 37875 - 11904: 0x91DB, - 37876 - 11904: 0x8C6A, - 37877 - 11904: 0xF4F3, - 37878 - 11904: 0xF542, - 37879 - 11904: 0xF4F5, - 37880 - 11904: 0xF4FC, - 37881 - 11904: 0xF366, - 37882 - 11904: 0xF4FA, - 37883 - 11904: 0xF4E9, - 37884 - 11904: 0xF540, - 37885 - 11904: 0xC4C3, - 37886 - 11904: 0xF4ED, - 37887 - 11904: 0xF4FE, - 37888 - 11904: 0xF4F4, - 37889 - 11904: 0x97AF, - 37891 - 11904: 0xC4C2, - 37892 - 11904: 0x95DD, - 37894 - 11904: 0xF544, - 37895 - 11904: 0xF4F6, - 37896 - 11904: 0x9348, - 37897 - 11904: 0xF4FB, - 37898 - 11904: 0xF4FD, - 37899 - 11904: 0xF4E7, - 37900 - 11904: 0xF541, - 37901 - 11904: 0xF4F2, - 37902 - 11904: 0xF4F7, - 37903 - 11904: 0xF4EB, - 37904 - 11904: 0xF4EF, - 37905 - 11904: 0xF543, - 37906 - 11904: 0xF4F9, - 37907 - 11904: 0xF4E8, - 37908 - 11904: 0xF4EC, - 37909 - 11904: 0xF4EE, - 37910 - 11904: 0xF4F8, - 37911 - 11904: 0x9A4B, - 37912 - 11904: 0xC4C1, - 37913 - 11904: 0xF4F1, - 37915 - 11904: 0xFC45, - 37917 - 11904: 0x9A4D, - 37920 - 11904: 0xF4EA, - 37924 - 11904: 0x91BC, - 37925 - 11904: 0x90E2, - 37926 - 11904: 0x90B4, - 37927 - 11904: 0x95E1, - 37928 - 11904: 0xF4F0, - 37929 - 11904: 0xF661, - 37930 - 11904: 0xF666, - 37931 - 11904: 0xC54F, - 37932 - 11904: 0xF668, - 37933 - 11904: 0x9A4E, - 37934 - 11904: 0xC549, - 37935 - 11904: 0x87AD, - 37936 - 11904: 0xF664, - 37937 - 11904: 0xF66A, - 37938 - 11904: 0xC54E, - 37939 - 11904: 0xC54A, - 37941 - 11904: 0xC54B, - 37942 - 11904: 0xF660, - 37943 - 11904: 0xF667, - 37944 - 11904: 0xC54D, - 37945 - 11904: 0xF665, - 37946 - 11904: 0xC54C, - 37947 - 11904: 0xF65F, - 37948 - 11904: 0xF663, - 37949 - 11904: 0xF662, - 37950 - 11904: 0x9A4F, - 37951 - 11904: 0xF65E, - 37952 - 11904: 0xF669, - 37954 - 11904: 0xFE40, - 37955 - 11904: 0xFE43, - 37956 - 11904: 0xC5B1, - 37957 - 11904: 0xF76D, - 37958 - 11904: 0xF770, - 37959 - 11904: 0xF76C, - 37960 - 11904: 0xF76E, - 37961 - 11904: 0xF76F, - 37962 - 11904: 0xF769, - 37963 - 11904: 0xF76A, - 37964 - 11904: 0xF767, - 37965 - 11904: 0x96DD, - 37967 - 11904: 0xF76B, - 37968 - 11904: 0xF768, - 37969 - 11904: 0xC5B2, - 37970 - 11904: 0xC5B3, - 37972 - 11904: 0x9A51, - 37973 - 11904: 0xF84B, - 37975 - 11904: 0xF84D, - 37976 - 11904: 0x96A7, - 37979 - 11904: 0x90B0, - 37981 - 11904: 0xF84C, - 37982 - 11904: 0xF84E, - 37984 - 11904: 0xC5E0, - 37986 - 11904: 0xF84A, - 37987 - 11904: 0xC5DF, - 37988 - 11904: 0xC5E1, - 37989 - 11904: 0x9C4E, - 37991 - 11904: 0x9443, - 37992 - 11904: 0xF8CB, - 37993 - 11904: 0xF8CC, - 37994 - 11904: 0xC644, - 37995 - 11904: 0xF8CA, - 37996 - 11904: 0x8EBA, - 37997 - 11904: 0xF953, - 37998 - 11904: 0xF952, - 37999 - 11904: 0xF954, - 38000 - 11904: 0xC65F, - 38001 - 11904: 0xF955, - 38002 - 11904: 0xC65E, - 38003 - 11904: 0xF956, - 38004 - 11904: 0xF972, - 38005 - 11904: 0xF975, - 38006 - 11904: 0xF974, - 38007 - 11904: 0xC668, - 38008 - 11904: 0xF973, - 38009 - 11904: 0x9A52, - 38011 - 11904: 0xFCC1, - 38012 - 11904: 0xC672, - 38013 - 11904: 0xC670, - 38014 - 11904: 0xC671, - 38015 - 11904: 0xC677, - 38016 - 11904: 0xF9C0, - 38017 - 11904: 0xF9C1, - 38018 - 11904: 0xF9BF, - 38019 - 11904: 0xF9C9, - 38021 - 11904: 0x8BE9, - 38047 - 11904: 0x9CAF, - 38050 - 11904: 0x8BFD, - 38081 - 11904: 0x9ABC, - 38083 - 11904: 0x9AB8, - 38108 - 11904: 0x9AAE, - 38134 - 11904: 0x9AA7, - 38189 - 11904: 0x9A53, - 38215 - 11904: 0x9D74, - 38263 - 11904: 0xAAF8, - 38264 - 11904: 0x8BEA, - 38266 - 11904: 0xD844, - 38267 - 11904: 0xDC78, - 38268 - 11904: 0xE8A5, - 38269 - 11904: 0xF376, - 38271 - 11904: 0x8BEB, - 38272 - 11904: 0xAAF9, - 38274 - 11904: 0xADAC, - 38275 - 11904: 0xB07B, - 38277 - 11904: 0x90B2, - 38278 - 11904: 0xD845, - 38280 - 11904: 0xD846, - 38281 - 11904: 0xB3AC, - 38283 - 11904: 0xB67D, - 38284 - 11904: 0xDC7A, - 38285 - 11904: 0xDC79, - 38286 - 11904: 0xB6A3, - 38287 - 11904: 0xB67C, - 38288 - 11904: 0xDC7B, - 38289 - 11904: 0xB67E, - 38290 - 11904: 0xB6A2, - 38291 - 11904: 0xB6A1, - 38292 - 11904: 0xB67B, - 38294 - 11904: 0x95E9, - 38295 - 11904: 0x95E8, - 38296 - 11904: 0xB968, - 38297 - 11904: 0x95E6, - 38299 - 11904: 0xE0D0, - 38300 - 11904: 0xE0CE, - 38302 - 11904: 0xE0CF, - 38303 - 11904: 0xE0CD, - 38304 - 11904: 0x90B5, - 38305 - 11904: 0xBBD2, - 38306 - 11904: 0x9A54, - 38307 - 11904: 0xBBD5, - 38308 - 11904: 0xBBD7, - 38309 - 11904: 0xBBD6, - 38310 - 11904: 0x90B3, - 38311 - 11904: 0x95E7, - 38312 - 11904: 0xBBD3, - 38313 - 11904: 0xBBD4, - 38314 - 11904: 0x8B50, - 38315 - 11904: 0xE8A7, - 38316 - 11904: 0xE8A6, - 38317 - 11904: 0xBE5B, - 38318 - 11904: 0xE8A8, - 38320 - 11904: 0xE8A9, - 38321 - 11904: 0xBE5C, - 38325 - 11904: 0xEC4D, - 38326 - 11904: 0xEC4B, - 38327 - 11904: 0xEEF3, - 38329 - 11904: 0xEC49, - 38330 - 11904: 0xEC4A, - 38331 - 11904: 0xC046, - 38332 - 11904: 0xEC46, - 38333 - 11904: 0xEC4E, - 38334 - 11904: 0xEC48, - 38335 - 11904: 0xEC4C, - 38336 - 11904: 0xEEEF, - 38339 - 11904: 0xEEF1, - 38341 - 11904: 0xEEF2, - 38342 - 11904: 0xC1F3, - 38343 - 11904: 0xEEEE, - 38344 - 11904: 0xC1F2, - 38345 - 11904: 0xEEF0, - 38346 - 11904: 0xC1EF, - 38347 - 11904: 0xC1F0, - 38348 - 11904: 0xC1F1, - 38349 - 11904: 0xEC47, - 38352 - 11904: 0xC2F5, - 38353 - 11904: 0xF16E, - 38354 - 11904: 0xF16C, - 38355 - 11904: 0xF16D, - 38356 - 11904: 0xC2F3, - 38357 - 11904: 0xC2F6, - 38358 - 11904: 0xC2F4, - 38362 - 11904: 0xF377, - 38363 - 11904: 0xF378, - 38364 - 11904: 0xC3F6, - 38366 - 11904: 0xF545, - 38367 - 11904: 0xF547, - 38368 - 11904: 0xF546, - 38369 - 11904: 0xC4C4, - 38370 - 11904: 0xC550, - 38371 - 11904: 0xF66D, - 38372 - 11904: 0xF66C, - 38373 - 11904: 0xF66B, - 38376 - 11904: 0x8BEC, - 38388 - 11904: 0x9A56, - 38428 - 11904: 0xAAFA, - 38429 - 11904: 0x8BFB, - 38430 - 11904: 0xC9AA, - 38432 - 11904: 0xCA58, - 38433 - 11904: 0xA6E9, - 38434 - 11904: 0xCA56, - 38435 - 11904: 0xCA59, - 38436 - 11904: 0xCA57, - 38440 - 11904: 0xCBAE, - 38442 - 11904: 0xA8C1, - 38444 - 11904: 0xA8C2, - 38445 - 11904: 0xCBB0, - 38446 - 11904: 0xA8BF, - 38447 - 11904: 0xCBAF, - 38448 - 11904: 0xCBAD, - 38449 - 11904: 0xA8C0, - 38450 - 11904: 0xA8BE, - 38451 - 11904: 0x9A57, - 38456 - 11904: 0xA0AA, - 38457 - 11904: 0xCDD8, - 38458 - 11904: 0xCDDB, - 38459 - 11904: 0xAAFD, - 38460 - 11904: 0xCDDA, - 38461 - 11904: 0xCDD9, - 38463 - 11904: 0xAAFC, - 38464 - 11904: 0xAAFB, - 38465 - 11904: 0x9FA6, - 38466 - 11904: 0xAB40, - 38467 - 11904: 0xCDDC, - 38468 - 11904: 0xAAFE, - 38469 - 11904: 0x99CC, - 38474 - 11904: 0xD0C6, - 38475 - 11904: 0xADAE, - 38476 - 11904: 0xADAF, - 38477 - 11904: 0xADB0, - 38478 - 11904: 0xD0C7, - 38479 - 11904: 0xD0C3, - 38480 - 11904: 0xADAD, - 38481 - 11904: 0xD0C4, - 38483 - 11904: 0xD0C5, - 38484 - 11904: 0xD0C2, - 38486 - 11904: 0x9C59, - 38488 - 11904: 0xB0A4, - 38491 - 11904: 0xB0A1, - 38492 - 11904: 0xD445, - 38493 - 11904: 0xB0A2, - 38494 - 11904: 0xB0A5, - 38495 - 11904: 0xD446, - 38497 - 11904: 0xB07E, - 38498 - 11904: 0xB07C, - 38499 - 11904: 0xB07D, - 38500 - 11904: 0xB0A3, - 38505 - 11904: 0x99B5, - 38506 - 11904: 0xB3AD, - 38507 - 11904: 0xD849, - 38508 - 11904: 0xB3B5, - 38509 - 11904: 0xD848, - 38511 - 11904: 0xD84B, - 38512 - 11904: 0xB3B1, - 38513 - 11904: 0xD84A, - 38514 - 11904: 0xB6AB, - 38515 - 11904: 0xB3AF, - 38516 - 11904: 0xB3B2, - 38517 - 11904: 0xB3AE, - 38518 - 11904: 0xB3B3, - 38519 - 11904: 0xB3B4, - 38520 - 11904: 0xB3B0, - 38523 - 11904: 0x90BE, - 38524 - 11904: 0xD847, - 38525 - 11904: 0xB6A7, - 38526 - 11904: 0xDC7D, - 38528 - 11904: 0xDCA3, - 38529 - 11904: 0x9FAF, - 38531 - 11904: 0xDCA2, - 38532 - 11904: 0xB6AC, - 38533 - 11904: 0xB6A8, - 38534 - 11904: 0xB6A9, - 38535 - 11904: 0xDC7C, - 38536 - 11904: 0xDC7E, - 38537 - 11904: 0xDCA1, - 38538 - 11904: 0xB6A4, - 38539 - 11904: 0xB6A6, - 38541 - 11904: 0xB6AA, - 38542 - 11904: 0xB6A5, - 38543 - 11904: 0x95F2, - 38545 - 11904: 0xE0D3, - 38546 - 11904: 0xE0D1, - 38547 - 11904: 0xE0D2, - 38548 - 11904: 0xB96A, - 38549 - 11904: 0xB96B, - 38550 - 11904: 0x90BF, - 38551 - 11904: 0xE0D4, - 38552 - 11904: 0xB969, - 38553 - 11904: 0xBBD8, - 38555 - 11904: 0xBBDA, - 38556 - 11904: 0xBBD9, - 38558 - 11904: 0xE4BB, - 38561 - 11904: 0xE4BC, - 38562 - 11904: 0xE8AB, - 38563 - 11904: 0x90C1, - 38564 - 11904: 0xE8AA, - 38565 - 11904: 0xFEE4, - 38567 - 11904: 0xC047, - 38568 - 11904: 0xC048, - 38569 - 11904: 0xEC4F, - 38570 - 11904: 0xC049, - 38572 - 11904: 0xEEF6, - 38574 - 11904: 0xEEF4, - 38576 - 11904: 0xEEF5, - 38577 - 11904: 0xC1F4, - 38579 - 11904: 0xF16F, - 38580 - 11904: 0xC3F7, - 38582 - 11904: 0xC6D7, - 38584 - 11904: 0xC1F5, - 38585 - 11904: 0xAB41, - 38587 - 11904: 0xB0A6, - 38588 - 11904: 0xD447, - 38589 - 11904: 0x90C7, - 38591 - 11904: 0xD84C, - 38592 - 11904: 0xB3B6, - 38593 - 11904: 0xB6AD, - 38594 - 11904: 0xDCA4, - 38595 - 11904: 0xDCA6, - 38596 - 11904: 0xB6AF, - 38597 - 11904: 0xB6AE, - 38598 - 11904: 0xB6B0, - 38599 - 11904: 0xB6B1, - 38600 - 11904: 0xDCA5, - 38601 - 11904: 0xB96E, - 38602 - 11904: 0xB96F, - 38603 - 11904: 0xB96D, - 38604 - 11904: 0xBBDB, - 38605 - 11904: 0xB96C, - 38606 - 11904: 0xE0D5, - 38610 - 11904: 0xBBDC, - 38611 - 11904: 0xE8AC, - 38612 - 11904: 0xEC50, - 38613 - 11904: 0xC04A, - 38614 - 11904: 0xC1F6, - 38615 - 11904: 0xF170, - 38616 - 11904: 0xF174, - 38617 - 11904: 0xC2F9, - 38618 - 11904: 0xF171, - 38619 - 11904: 0xC2FA, - 38620 - 11904: 0xC2F8, - 38621 - 11904: 0xF175, - 38622 - 11904: 0xC2FB, - 38623 - 11904: 0xF173, - 38625 - 11904: 0xF379, - 38626 - 11904: 0xC2F7, - 38627 - 11904: 0xC3F8, - 38629 - 11904: 0xF8CD, - 38632 - 11904: 0xAB42, - 38633 - 11904: 0xB3B8, - 38634 - 11904: 0xB3B7, - 38639 - 11904: 0xB6B2, - 38640 - 11904: 0xDCA8, - 38641 - 11904: 0xDCA7, - 38642 - 11904: 0xB6B3, - 38644 - 11904: 0x92E4, - 38645 - 11904: 0xE0D9, - 38646 - 11904: 0xB973, - 38647 - 11904: 0xB970, - 38648 - 11904: 0xE0D8, - 38649 - 11904: 0xB972, - 38650 - 11904: 0xE0D6, - 38651 - 11904: 0xB971, - 38653 - 11904: 0xE0D7, - 38655 - 11904: 0xE4BD, - 38656 - 11904: 0xBBDD, - 38658 - 11904: 0xE8AF, - 38659 - 11904: 0x9F52, - 38660 - 11904: 0xBE5D, - 38661 - 11904: 0xE8AD, - 38662 - 11904: 0xBE5E, - 38663 - 11904: 0xBE5F, - 38664 - 11904: 0xE8AE, - 38665 - 11904: 0xBE60, - 38667 - 11904: 0xEC51, - 38669 - 11904: 0xC04E, - 38670 - 11904: 0xC04B, - 38671 - 11904: 0xC050, - 38672 - 11904: 0xEC53, - 38673 - 11904: 0xC04C, - 38674 - 11904: 0xEC52, - 38675 - 11904: 0xC04F, - 38678 - 11904: 0xC04D, - 38680 - 11904: 0xEEF9, - 38681 - 11904: 0xEEFB, - 38683 - 11904: 0x90DB, - 38684 - 11904: 0xC1F7, - 38685 - 11904: 0xEEFA, - 38686 - 11904: 0xC1F8, - 38687 - 11904: 0xEEF8, - 38688 - 11904: 0xEEF7, - 38689 - 11904: 0xA066, - 38690 - 11904: 0xF177, - 38691 - 11904: 0xF176, - 38692 - 11904: 0xC2FC, - 38693 - 11904: 0xF178, - 38694 - 11904: 0xF37E, - 38695 - 11904: 0xC3FA, - 38696 - 11904: 0xF37D, - 38697 - 11904: 0xF37A, - 38698 - 11904: 0xC3F9, - 38699 - 11904: 0xF37B, - 38700 - 11904: 0xF37C, - 38702 - 11904: 0xF548, - 38703 - 11904: 0xF549, - 38704 - 11904: 0xC4C5, - 38705 - 11904: 0x90D2, - 38706 - 11904: 0xC553, - 38708 - 11904: 0x876B, - 38709 - 11904: 0xF66E, - 38710 - 11904: 0x90D4, - 38712 - 11904: 0xC551, - 38713 - 11904: 0xC552, - 38714 - 11904: 0xF66F, - 38717 - 11904: 0xC5B4, - 38718 - 11904: 0xC5B5, - 38719 - 11904: 0xF771, - 38720 - 11904: 0x9A5B, - 38721 - 11904: 0x95FD, - 38722 - 11904: 0xC645, - 38723 - 11904: 0xF8CF, - 38724 - 11904: 0xC647, - 38726 - 11904: 0xF8CE, - 38727 - 11904: 0xF8D0, - 38728 - 11904: 0xC646, - 38729 - 11904: 0xF957, - 38730 - 11904: 0x87B1, - 38731 - 11904: 0xF9AD, - 38737 - 11904: 0x8BC4, - 38738 - 11904: 0xAB43, - 38741 - 11904: 0x8C66, - 38742 - 11904: 0xB974, - 38743 - 11904: 0x90DE, - 38744 - 11904: 0xE4BE, - 38746 - 11904: 0xE8B0, - 38747 - 11904: 0xC051, - 38748 - 11904: 0xC052, - 38749 - 11904: 0x9CE4, - 38750 - 11904: 0xAB44, - 38751 - 11904: 0x90E1, - 38752 - 11904: 0xBE61, - 38753 - 11904: 0xC3FB, - 38754 - 11904: 0xADB1, - 38758 - 11904: 0xC053, - 38760 - 11904: 0xC5E2, - 38761 - 11904: 0xADB2, - 38762 - 11904: 0xD84D, - 38764 - 11904: 0xDCA9, - 38765 - 11904: 0x9E46, - 38766 - 11904: 0xDCAB, - 38768 - 11904: 0xDCAA, - 38769 - 11904: 0x9651, - 38770 - 11904: 0xE0DD, - 38771 - 11904: 0xE0DA, - 38772 - 11904: 0xB975, - 38774 - 11904: 0xB976, - 38775 - 11904: 0xE0DB, - 38776 - 11904: 0xE0DC, - 38778 - 11904: 0xE4C0, - 38779 - 11904: 0xE4C5, - 38780 - 11904: 0xBBDE, - 38781 - 11904: 0xE4BF, - 38782 - 11904: 0xE4C1, - 38783 - 11904: 0xE4C8, - 38784 - 11904: 0xE4C3, - 38785 - 11904: 0xE4C7, - 38786 - 11904: 0xE4C4, - 38787 - 11904: 0xE4C2, - 38788 - 11904: 0xE4C6, - 38789 - 11904: 0xBBDF, - 38791 - 11904: 0xFB58, - 38792 - 11904: 0xE8B3, - 38793 - 11904: 0x90E6, - 38794 - 11904: 0xE8B1, - 38795 - 11904: 0xBE63, - 38797 - 11904: 0xBE62, - 38798 - 11904: 0xE8B2, - 38799 - 11904: 0xBE64, - 38804 - 11904: 0xEC56, - 38807 - 11904: 0xEC55, - 38808 - 11904: 0xC054, - 38809 - 11904: 0xEC54, - 38810 - 11904: 0xEEFC, - 38811 - 11904: 0x9650, - 38812 - 11904: 0xEEFE, - 38813 - 11904: 0xEF41, - 38814 - 11904: 0xEF40, - 38815 - 11904: 0x90E7, - 38816 - 11904: 0xC1F9, - 38817 - 11904: 0xEEFD, - 38818 - 11904: 0xF1A1, - 38819 - 11904: 0xC2FD, - 38820 - 11904: 0xF17D, - 38821 - 11904: 0xF1A2, - 38822 - 11904: 0xC2FE, - 38824 - 11904: 0xF17B, - 38826 - 11904: 0xF17E, - 38827 - 11904: 0xF17C, - 38828 - 11904: 0xF179, - 38829 - 11904: 0xC340, - 38830 - 11904: 0xF17A, - 38833 - 11904: 0x90E8, - 38834 - 11904: 0x9A5D, - 38835 - 11904: 0xF3A1, - 38836 - 11904: 0x9F7A, - 38838 - 11904: 0xF3A3, - 38839 - 11904: 0xF3A2, - 38840 - 11904: 0x9B5C, - 38841 - 11904: 0xF54A, - 38842 - 11904: 0x9F7C, - 38843 - 11904: 0xF54B, - 38845 - 11904: 0xFC52, - 38846 - 11904: 0x90E9, - 38847 - 11904: 0xF670, - 38848 - 11904: 0x90EA, - 38849 - 11904: 0xC5B7, - 38850 - 11904: 0x9A5E, - 38851 - 11904: 0xC5B6, - 38852 - 11904: 0xF84F, - 38853 - 11904: 0xF850, - 38854 - 11904: 0xC648, - 38855 - 11904: 0xF8D1, - 38856 - 11904: 0x9F76, - 38857 - 11904: 0xC669, - 38859 - 11904: 0xADB3, - 38860 - 11904: 0xB6B4, - 38861 - 11904: 0xE4CA, - 38862 - 11904: 0xE4C9, - 38863 - 11904: 0xE8B5, - 38864 - 11904: 0xE8B4, - 38866 - 11904: 0x90EB, - 38867 - 11904: 0xC1FA, - 38868 - 11904: 0xEF43, - 38869 - 11904: 0xEF42, - 38870 - 11904: 0xF1A5, - 38871 - 11904: 0xF1A3, - 38872 - 11904: 0xF1A6, - 38873 - 11904: 0xF1A4, - 38876 - 11904: 0xC3FC, - 38877 - 11904: 0xF3A4, - 38878 - 11904: 0xF3A5, - 38879 - 11904: 0xF3A6, - 38880 - 11904: 0x90EC, - 38881 - 11904: 0xF671, - 38883 - 11904: 0xF772, - 38885 - 11904: 0xF8D2, - 38886 - 11904: 0x8BEE, - 38893 - 11904: 0xADB4, - 38894 - 11904: 0x90EE, - 38896 - 11904: 0xEC57, - 38897 - 11904: 0xEF44, - 38898 - 11904: 0x91C6, - 38899 - 11904: 0xADB5, - 38901 - 11904: 0x90F2, - 38902 - 11904: 0xBBE0, - 38904 - 11904: 0xEC58, - 38905 - 11904: 0xC341, - 38906 - 11904: 0xF1A7, - 38907 - 11904: 0xC3FD, - 38909 - 11904: 0xF54C, - 38910 - 11904: 0xF54D, - 38911 - 11904: 0xC554, - 38912 - 11904: 0xF851, - 38913 - 11904: 0xADB6, - 38914 - 11904: 0xB3BB, - 38915 - 11904: 0xB3BC, - 38916 - 11904: 0xD84E, - 38917 - 11904: 0xB6B5, - 38918 - 11904: 0xB6B6, - 38919 - 11904: 0xDCAC, - 38920 - 11904: 0xB6B7, - 38922 - 11904: 0xB97A, - 38924 - 11904: 0xB97C, - 38925 - 11904: 0xE0DF, - 38926 - 11904: 0xE0E0, - 38927 - 11904: 0xE0DE, - 38928 - 11904: 0xB977, - 38929 - 11904: 0xB978, - 38930 - 11904: 0xB97B, - 38931 - 11904: 0xB979, - 38932 - 11904: 0xFCBC, - 38933 - 11904: 0x8A74, - 38934 - 11904: 0xE4CB, - 38935 - 11904: 0xBBE1, - 38936 - 11904: 0xBBE2, - 38939 - 11904: 0xE8BC, - 38940 - 11904: 0xBE67, - 38941 - 11904: 0xE8B7, - 38942 - 11904: 0xE8B6, - 38943 - 11904: 0x9657, - 38944 - 11904: 0xE8BB, - 38945 - 11904: 0xBE65, - 38947 - 11904: 0x9CEF, - 38948 - 11904: 0xC05B, - 38950 - 11904: 0xE8B8, - 38951 - 11904: 0xE8BD, - 38952 - 11904: 0xE8BA, - 38953 - 11904: 0xE8B9, - 38955 - 11904: 0xBE66, - 38957 - 11904: 0xC059, - 38958 - 11904: 0x9FDF, - 38959 - 11904: 0xEC5A, - 38960 - 11904: 0xC055, - 38962 - 11904: 0xEC5B, - 38963 - 11904: 0x90F7, - 38964 - 11904: 0x90F6, - 38965 - 11904: 0xEC59, - 38967 - 11904: 0xC058, - 38968 - 11904: 0xC056, - 38969 - 11904: 0xC05A, - 38971 - 11904: 0xC057, - 38977 - 11904: 0xEF45, - 38979 - 11904: 0xEF4A, - 38980 - 11904: 0xEF46, - 38981 - 11904: 0xEF49, - 38982 - 11904: 0xC1FB, - 38983 - 11904: 0x9B5E, - 38984 - 11904: 0xEDD4, - 38985 - 11904: 0xEF48, - 38986 - 11904: 0xEF47, - 38987 - 11904: 0x90F8, - 38988 - 11904: 0xC344, - 38989 - 11904: 0xC342, - 38990 - 11904: 0xC345, - 38991 - 11904: 0xC343, - 38992 - 11904: 0xF1A8, - 38993 - 11904: 0xF1A9, - 38994 - 11904: 0xF1AA, - 38995 - 11904: 0xC346, - 38998 - 11904: 0x8CFC, - 38999 - 11904: 0xF3AA, - 39000 - 11904: 0xC440, - 39001 - 11904: 0xF3A8, - 39003 - 11904: 0xC441, - 39004 - 11904: 0xF3A7, - 39005 - 11904: 0xF3A9, - 39006 - 11904: 0xC3FE, - 39007 - 11904: 0xF551, - 39008 - 11904: 0xF54E, - 39010 - 11904: 0xF54F, - 39011 - 11904: 0xF550, - 39012 - 11904: 0xF672, - 39013 - 11904: 0xC556, - 39014 - 11904: 0x90F9, - 39015 - 11904: 0xC555, - 39016 - 11904: 0x8CC9, - 39017 - 11904: 0xF774, - 39018 - 11904: 0xF773, - 39019 - 11904: 0xC5B8, - 39020 - 11904: 0xFA6A, - 39023 - 11904: 0xC5E3, - 39024 - 11904: 0xC649, - 39025 - 11904: 0xC660, - 39026 - 11904: 0xF958, - 39027 - 11904: 0xF9AE, - 39028 - 11904: 0xF9AF, - 39029 - 11904: 0x8BEF, - 39080 - 11904: 0xADB7, - 39081 - 11904: 0xDCAD, - 39084 - 11904: 0xE0E1, - 39085 - 11904: 0xE4CC, - 39086 - 11904: 0xE4CD, - 39087 - 11904: 0xBBE3, - 39089 - 11904: 0xBBE4, - 39090 - 11904: 0xE8BE, - 39091 - 11904: 0xBE68, - 39092 - 11904: 0x9FE0, - 39094 - 11904: 0xC1FC, - 39095 - 11904: 0x9142, - 39096 - 11904: 0xF1AB, - 39097 - 11904: 0x9A62, - 39098 - 11904: 0xC347, - 39099 - 11904: 0xF3AD, - 39100 - 11904: 0xC442, - 39101 - 11904: 0xF3AC, - 39102 - 11904: 0xF3AE, - 39103 - 11904: 0xF3AB, - 39104 - 11904: 0xF675, - 39105 - 11904: 0xF552, - 39106 - 11904: 0xF553, - 39107 - 11904: 0x9569, - 39108 - 11904: 0xC4C6, - 39110 - 11904: 0xF674, - 39111 - 11904: 0x9144, - 39112 - 11904: 0x9143, - 39113 - 11904: 0xF673, - 39114 - 11904: 0x9141, - 39115 - 11904: 0xF775, - 39116 - 11904: 0xF9B0, - 39118 - 11904: 0x8BF0, - 39131 - 11904: 0xADB8, - 39132 - 11904: 0x9660, - 39134 - 11904: 0x8BF1, - 39135 - 11904: 0xADB9, - 39136 - 11904: 0x99F6, - 39137 - 11904: 0x9149, - 39138 - 11904: 0xB0A7, - 39139 - 11904: 0xD448, - 39141 - 11904: 0xD84F, - 39142 - 11904: 0x914A, - 39143 - 11904: 0xB6B8, - 39145 - 11904: 0xB6BB, - 39146 - 11904: 0xB6B9, - 39147 - 11904: 0xDCAE, - 39148 - 11904: 0x914B, - 39149 - 11904: 0xB6BD, - 39151 - 11904: 0xB6BA, - 39153 - 11904: 0x9A64, - 39154 - 11904: 0xB6BC, - 39156 - 11904: 0xB97E, - 39157 - 11904: 0x8ABF, - 39158 - 11904: 0xE0E2, - 39161 - 11904: 0xE0E3, - 39162 - 11904: 0xE8C0, - 39164 - 11904: 0xB97D, - 39165 - 11904: 0xB9A1, - 39166 - 11904: 0xB9A2, - 39168 - 11904: 0xE4CF, - 39170 - 11904: 0xE4CE, - 39171 - 11904: 0xBBE5, - 39173 - 11904: 0xBBE6, - 39175 - 11904: 0xE4D0, - 39176 - 11904: 0xE8BF, - 39177 - 11904: 0xBBE8, - 39178 - 11904: 0xBE69, - 39180 - 11904: 0xBBE7, - 39182 - 11904: 0x9A66, - 39184 - 11904: 0xC05C, - 39185 - 11904: 0xE8C1, - 39186 - 11904: 0xBE6B, - 39187 - 11904: 0xBE6A, - 39188 - 11904: 0xE8C2, - 39189 - 11904: 0xE8C5, - 39190 - 11904: 0xE8C3, - 39191 - 11904: 0xE8C4, - 39192 - 11904: 0xBE6C, - 39193 - 11904: 0x9A67, - 39194 - 11904: 0xC061, - 39195 - 11904: 0xC05F, - 39196 - 11904: 0x9A69, - 39198 - 11904: 0xC05E, - 39199 - 11904: 0xEC5D, - 39201 - 11904: 0xC060, - 39204 - 11904: 0xEC5C, - 39205 - 11904: 0xEF4B, - 39207 - 11904: 0xEC5E, - 39208 - 11904: 0xC05D, - 39209 - 11904: 0xEC5F, - 39210 - 11904: 0xEF4E, - 39211 - 11904: 0xEF4C, - 39212 - 11904: 0xEF4D, - 39213 - 11904: 0xEF52, - 39214 - 11904: 0xC34B, - 39215 - 11904: 0xEF51, - 39216 - 11904: 0xEF54, - 39217 - 11904: 0xEF53, - 39218 - 11904: 0xEF50, - 39219 - 11904: 0xEF4F, - 39221 - 11904: 0xC1FD, - 39223 - 11904: 0x9A6A, - 39224 - 11904: 0x9652, - 39225 - 11904: 0x914D, - 39226 - 11904: 0xF1AE, - 39227 - 11904: 0x9666, - 39228 - 11904: 0xF1AD, - 39229 - 11904: 0xC34A, - 39230 - 11904: 0xC348, - 39231 - 11904: 0xC349, - 39232 - 11904: 0x9F7B, - 39233 - 11904: 0xF1AC, - 39234 - 11904: 0x9A6B, - 39235 - 11904: 0xF3B1, - 39237 - 11904: 0xC443, - 39239 - 11904: 0xF3B0, - 39240 - 11904: 0xF3AF, - 39241 - 11904: 0xC444, - 39242 - 11904: 0xA06C, - 39243 - 11904: 0xF558, - 39244 - 11904: 0xF557, - 39245 - 11904: 0x9667, - 39246 - 11904: 0xF555, - 39248 - 11904: 0xF554, - 39249 - 11904: 0xC4C8, - 39250 - 11904: 0xC4C7, - 39251 - 11904: 0xF559, - 39252 - 11904: 0xF776, - 39253 - 11904: 0xC5B9, - 39254 - 11904: 0xF677, - 39255 - 11904: 0xC557, - 39256 - 11904: 0xF676, - 39257 - 11904: 0xF556, - 39259 - 11904: 0xF777, - 39260 - 11904: 0xC5E4, - 39261 - 11904: 0x9A6C, - 39262 - 11904: 0xC661, - 39263 - 11904: 0xF959, - 39265 - 11904: 0xF9B1, - 39266 - 11904: 0x9A6D, - 39267 - 11904: 0x8BF2, - 39318 - 11904: 0xADBA, - 39319 - 11904: 0xD850, - 39320 - 11904: 0xEF55, - 39321 - 11904: 0xADBB, - 39323 - 11904: 0x966A, - 39324 - 11904: 0xE4D2, - 39325 - 11904: 0xE4D1, - 39326 - 11904: 0xEC60, - 39329 - 11904: 0xEF57, - 39331 - 11904: 0xEF56, - 39332 - 11904: 0xFCEA, - 39333 - 11904: 0xC34C, - 39334 - 11904: 0xF3B2, - 39335 - 11904: 0xF3B3, - 39336 - 11904: 0xC4C9, - 39338 - 11904: 0x966C, - 39339 - 11904: 0xF9B2, - 39340 - 11904: 0xB0A8, - 39341 - 11904: 0xB6BF, - 39342 - 11904: 0xB6BE, - 39343 - 11904: 0xE0E4, - 39344 - 11904: 0xE0E6, - 39345 - 11904: 0xB9A4, - 39346 - 11904: 0xE0E5, - 39347 - 11904: 0xB9A3, - 39348 - 11904: 0xB9A5, - 39349 - 11904: 0xE0E7, - 39352 - 11904: 0x91C4, - 39353 - 11904: 0xE4D4, - 39354 - 11904: 0xE4D6, - 39355 - 11904: 0xE4D5, - 39356 - 11904: 0x9677, - 39357 - 11904: 0xE4D8, - 39361 - 11904: 0xBBE9, - 39362 - 11904: 0xE4D7, - 39363 - 11904: 0xE4D3, - 39364 - 11904: 0x99F4, - 39365 - 11904: 0x9A6F, - 39367 - 11904: 0xE4D9, - 39369 - 11904: 0xE8CC, - 39371 - 11904: 0xE8CF, - 39372 - 11904: 0xE8D1, - 39373 - 11904: 0xE8C7, - 39374 - 11904: 0xE8CB, - 39375 - 11904: 0xE8C8, - 39376 - 11904: 0xBE6E, - 39377 - 11904: 0xBE71, - 39378 - 11904: 0xBE73, - 39379 - 11904: 0xE8C9, - 39380 - 11904: 0xE8CA, - 39381 - 11904: 0xBE72, - 39382 - 11904: 0xE8CD, - 39383 - 11904: 0xE8D0, - 39384 - 11904: 0xE8CE, - 39385 - 11904: 0xBE74, - 39386 - 11904: 0x9FAB, - 39387 - 11904: 0xBE70, - 39388 - 11904: 0xE8C6, - 39389 - 11904: 0xBE6D, - 39391 - 11904: 0xBE6F, - 39392 - 11904: 0x8CBE, - 39393 - 11904: 0x8EC1, - 39394 - 11904: 0xC063, - 39395 - 11904: 0xEC66, - 39396 - 11904: 0xEC64, - 39397 - 11904: 0xEC63, - 39398 - 11904: 0x9555, - 39399 - 11904: 0xEC69, - 39401 - 11904: 0xEC68, - 39402 - 11904: 0xEC67, - 39404 - 11904: 0xEC62, - 39405 - 11904: 0xC062, - 39406 - 11904: 0xEC61, - 39408 - 11904: 0xEC65, - 39409 - 11904: 0xC064, - 39412 - 11904: 0xEF5A, - 39413 - 11904: 0x9152, - 39414 - 11904: 0xEF5E, - 39415 - 11904: 0xEF5B, - 39416 - 11904: 0xEF5D, - 39417 - 11904: 0xEF5C, - 39418 - 11904: 0xEF59, - 39419 - 11904: 0xEF5F, - 39420 - 11904: 0xEF62, - 39421 - 11904: 0xEF60, - 39422 - 11904: 0xEF61, - 39423 - 11904: 0xC240, - 39425 - 11904: 0xC1FE, - 39426 - 11904: 0xEF58, - 39427 - 11904: 0xEF63, - 39428 - 11904: 0xF1B3, - 39429 - 11904: 0xF1B6, - 39430 - 11904: 0xF1B8, - 39431 - 11904: 0xF1B7, - 39433 - 11904: 0xF1B1, - 39434 - 11904: 0xF1B5, - 39435 - 11904: 0xF1B0, - 39436 - 11904: 0x9153, - 39437 - 11904: 0xF1B2, - 39438 - 11904: 0xC34D, - 39439 - 11904: 0xF1AF, - 39440 - 11904: 0x9155, - 39441 - 11904: 0xF1B4, - 39444 - 11904: 0xF3C0, - 39445 - 11904: 0xF3B5, - 39446 - 11904: 0xC445, - 39449 - 11904: 0xC446, - 39450 - 11904: 0xF3B4, - 39451 - 11904: 0xF3B9, - 39452 - 11904: 0xF3BF, - 39453 - 11904: 0xF3B7, - 39454 - 11904: 0xF3BE, - 39455 - 11904: 0x955D, - 39456 - 11904: 0xF3BB, - 39457 - 11904: 0x9671, - 39458 - 11904: 0xF3BA, - 39459 - 11904: 0xF3BD, - 39460 - 11904: 0xF3B8, - 39461 - 11904: 0xF3B6, - 39462 - 11904: 0x9C6D, - 39463 - 11904: 0xF3BC, - 39465 - 11904: 0xF560, - 39466 - 11904: 0xF55E, - 39467 - 11904: 0xC4CA, - 39468 - 11904: 0xF55D, - 39469 - 11904: 0xF563, - 39470 - 11904: 0xF561, - 39471 - 11904: 0x9673, - 39472 - 11904: 0xC4CB, - 39473 - 11904: 0xF55C, - 39474 - 11904: 0xF55A, - 39476 - 11904: 0xF55B, - 39477 - 11904: 0xC4CD, - 39478 - 11904: 0xF55F, - 39479 - 11904: 0xC4CC, - 39480 - 11904: 0xF562, - 39481 - 11904: 0xF678, - 39482 - 11904: 0xF67E, - 39483 - 11904: 0x9154, - 39484 - 11904: 0x9A71, - 39485 - 11904: 0xF679, - 39486 - 11904: 0xC55B, - 39487 - 11904: 0xF6A1, - 39488 - 11904: 0xC55A, - 39489 - 11904: 0xF67D, - 39490 - 11904: 0xF67C, - 39491 - 11904: 0xC559, - 39492 - 11904: 0xF67B, - 39493 - 11904: 0xC558, - 39494 - 11904: 0xF67A, - 39496 - 11904: 0xF77D, - 39497 - 11904: 0xF7A1, - 39498 - 11904: 0xF77E, - 39500 - 11904: 0xF77B, - 39501 - 11904: 0xC5BB, - 39502 - 11904: 0xF778, - 39503 - 11904: 0xF77C, - 39504 - 11904: 0xF7A3, - 39506 - 11904: 0xF7A2, - 39507 - 11904: 0xF779, - 39508 - 11904: 0xF77A, - 39509 - 11904: 0xC5BA, - 39510 - 11904: 0xF852, - 39511 - 11904: 0xC5E7, - 39512 - 11904: 0x9156, - 39513 - 11904: 0xF853, - 39514 - 11904: 0xC5E5, - 39515 - 11904: 0xC5E6, - 39516 - 11904: 0x966D, - 39518 - 11904: 0xF8D3, - 39519 - 11904: 0xC64A, - 39520 - 11904: 0xF976, - 39522 - 11904: 0xC66A, - 39523 - 11904: 0x9557, - 39524 - 11904: 0xF9B3, - 39525 - 11904: 0xC66B, - 39526 - 11904: 0xF9B4, - 39527 - 11904: 0xF9B5, - 39528 - 11904: 0xF9C3, - 39529 - 11904: 0xF9C2, - 39530 - 11904: 0xC67A, - 39531 - 11904: 0xF9CD, - 39532 - 11904: 0x89C6, - 39567 - 11904: 0x89C7, - 39592 - 11904: 0xB0A9, - 39595 - 11904: 0xE0E9, - 39597 - 11904: 0xE0E8, - 39599 - 11904: 0xBBEA, - 39600 - 11904: 0xBBEB, - 39601 - 11904: 0xE4DA, - 39602 - 11904: 0x8A6A, - 39603 - 11904: 0xE8D2, - 39604 - 11904: 0xEC6C, - 39606 - 11904: 0x8B57, - 39607 - 11904: 0xBE75, - 39608 - 11904: 0xC065, - 39609 - 11904: 0xEC6A, - 39610 - 11904: 0x9FE1, - 39611 - 11904: 0xEC6D, - 39612 - 11904: 0xC066, - 39613 - 11904: 0x9B5F, - 39614 - 11904: 0xEF64, - 39615 - 11904: 0xEC6B, - 39616 - 11904: 0xF1B9, - 39617 - 11904: 0xC34E, - 39618 - 11904: 0xF3C1, - 39622 - 11904: 0xF566, - 39623 - 11904: 0xF564, - 39626 - 11904: 0xF565, - 39629 - 11904: 0xF6A2, - 39631 - 11904: 0xC55C, - 39632 - 11904: 0xF7A4, - 39633 - 11904: 0xC5EA, - 39634 - 11904: 0xC5BC, - 39635 - 11904: 0xC5E8, - 39636 - 11904: 0xC5E9, - 39637 - 11904: 0xF8D4, - 39638 - 11904: 0xC662, - 39639 - 11904: 0xA05D, - 39640 - 11904: 0xB0AA, - 39644 - 11904: 0xF1BA, - 39647 - 11904: 0xD449, - 39648 - 11904: 0x915B, - 39649 - 11904: 0xB9A6, - 39650 - 11904: 0x915C, - 39651 - 11904: 0xE4DB, - 39654 - 11904: 0xBBEC, - 39655 - 11904: 0xE4DC, - 39659 - 11904: 0xE8D4, - 39660 - 11904: 0xE8D3, - 39661 - 11904: 0xC068, - 39662 - 11904: 0xBE76, - 39663 - 11904: 0xBE77, - 39665 - 11904: 0xE8D7, - 39666 - 11904: 0xE8D6, - 39667 - 11904: 0xE8D5, - 39668 - 11904: 0x915E, - 39670 - 11904: 0xEC6E, - 39671 - 11904: 0xEC71, - 39673 - 11904: 0xEC70, - 39674 - 11904: 0xEC6F, - 39675 - 11904: 0xC067, - 39676 - 11904: 0xEF68, - 39677 - 11904: 0xEF66, - 39678 - 11904: 0xEF65, - 39679 - 11904: 0x9F5C, - 39681 - 11904: 0xEF67, - 39682 - 11904: 0x9F57, - 39683 - 11904: 0xC34F, - 39684 - 11904: 0xF1BC, - 39685 - 11904: 0xF1BD, - 39686 - 11904: 0xC350, - 39688 - 11904: 0xF1BB, - 39689 - 11904: 0x9F65, - 39690 - 11904: 0xF3C3, - 39691 - 11904: 0xF3C2, - 39692 - 11904: 0xF3C5, - 39693 - 11904: 0xC447, - 39694 - 11904: 0xF3C4, - 39695 - 11904: 0x9A72, - 39696 - 11904: 0xF567, - 39697 - 11904: 0xF569, - 39698 - 11904: 0xF568, - 39700 - 11904: 0x9160, - 39701 - 11904: 0xF6A3, - 39702 - 11904: 0xF6A6, - 39703 - 11904: 0xF6A4, - 39704 - 11904: 0xF6A5, - 39705 - 11904: 0xF7A5, - 39706 - 11904: 0xC5BD, - 39710 - 11904: 0xF854, - 39711 - 11904: 0xF855, - 39712 - 11904: 0xF856, - 39714 - 11904: 0xC64B, - 39715 - 11904: 0xC663, - 39716 - 11904: 0xF9B6, - 39717 - 11904: 0xB0AB, - 39719 - 11904: 0xBE78, - 39720 - 11904: 0xC069, - 39721 - 11904: 0xF1BE, - 39722 - 11904: 0x9F5E, - 39723 - 11904: 0xF7A6, - 39725 - 11904: 0x9161, - 39726 - 11904: 0xF9C4, - 39727 - 11904: 0xD44A, - 39729 - 11904: 0xC67B, - 39730 - 11904: 0xB0AC, - 39731 - 11904: 0xEC72, - 39732 - 11904: 0x9164, - 39733 - 11904: 0xF1BF, - 39735 - 11904: 0xF3C6, - 39737 - 11904: 0x9F41, - 39738 - 11904: 0xF6A7, - 39739 - 11904: 0xF7A7, - 39740 - 11904: 0xB0AD, - 39742 - 11904: 0xE4DD, - 39743 - 11904: 0xE4DE, - 39744 - 11904: 0x9169, - 39745 - 11904: 0xBBED, - 39746 - 11904: 0xBBEE, - 39747 - 11904: 0xE8D9, - 39748 - 11904: 0xBE7A, - 39749 - 11904: 0xBE79, - 39750 - 11904: 0xE8D8, - 39752 - 11904: 0xEF69, - 39754 - 11904: 0xF1C0, - 39755 - 11904: 0xF1C2, - 39756 - 11904: 0xF1C1, - 39757 - 11904: 0xC353, - 39758 - 11904: 0xC352, - 39759 - 11904: 0xC351, - 39760 - 11904: 0x9168, - 39761 - 11904: 0xC55E, - 39762 - 11904: 0xF6A8, - 39764 - 11904: 0xC55D, - 39765 - 11904: 0xF7A9, - 39766 - 11904: 0xF7A8, - 39768 - 11904: 0xC64C, - 39769 - 11904: 0xF8D5, - 39770 - 11904: 0xB3BD, - 39771 - 11904: 0xE0EA, - 39775 - 11904: 0xE4E1, - 39776 - 11904: 0xE4DF, - 39777 - 11904: 0xE4E0, - 39780 - 11904: 0xE8E2, - 39782 - 11904: 0xE8DD, - 39783 - 11904: 0xE8DA, - 39784 - 11904: 0xE8E1, - 39785 - 11904: 0x9A74, - 39788 - 11904: 0xE8E3, - 39791 - 11904: 0xBE7C, - 39792 - 11904: 0xE8E0, - 39793 - 11904: 0xE8DC, - 39796 - 11904: 0xE8DB, - 39797 - 11904: 0xE8DF, - 39798 - 11904: 0xE8DE, - 39799 - 11904: 0xBE7B, - 39802 - 11904: 0xEC7D, - 39803 - 11904: 0xEC78, - 39804 - 11904: 0xEC76, - 39805 - 11904: 0xECA1, - 39806 - 11904: 0xEC77, - 39807 - 11904: 0x96B2, - 39808 - 11904: 0xEC73, - 39809 - 11904: 0x9A75, - 39810 - 11904: 0xEC79, - 39811 - 11904: 0xFDA5, - 39813 - 11904: 0xEC74, - 39814 - 11904: 0xEF72, - 39815 - 11904: 0xEC75, - 39816 - 11904: 0xECA2, - 39819 - 11904: 0x9EE9, - 39821 - 11904: 0x8BBA, - 39822 - 11904: 0x916D, - 39823 - 11904: 0xA060, - 39824 - 11904: 0xEC7C, - 39825 - 11904: 0xC06A, - 39826 - 11904: 0xEC7B, - 39827 - 11904: 0xEC7A, - 39829 - 11904: 0xEC7E, - 39831 - 11904: 0x9FDE, - 39834 - 11904: 0xEF6A, - 39835 - 11904: 0xEF6D, - 39837 - 11904: 0x9FC3, - 39838 - 11904: 0xEF6C, - 39839 - 11904: 0x96B5, - 39840 - 11904: 0xEF74, - 39841 - 11904: 0xEF6F, - 39842 - 11904: 0xEF73, - 39844 - 11904: 0xEF71, - 39845 - 11904: 0xEF70, - 39846 - 11904: 0xEF6E, - 39848 - 11904: 0xEF6B, - 39850 - 11904: 0xC243, - 39851 - 11904: 0xC242, - 39853 - 11904: 0xC244, - 39854 - 11904: 0xC241, - 39855 - 11904: 0xEF75, - 39856 - 11904: 0xA067, - 39861 - 11904: 0xF1C8, - 39862 - 11904: 0xF1CB, - 39864 - 11904: 0xF1C9, - 39865 - 11904: 0xF1CD, - 39869 - 11904: 0xF1CE, - 39871 - 11904: 0xF1C6, - 39872 - 11904: 0xC358, - 39873 - 11904: 0xF1C7, - 39875 - 11904: 0xF1C5, - 39876 - 11904: 0xF1CC, - 39878 - 11904: 0xF1C4, - 39879 - 11904: 0xF1C3, - 39880 - 11904: 0xC357, - 39881 - 11904: 0xC355, - 39882 - 11904: 0xC354, - 39887 - 11904: 0x96B3, - 39891 - 11904: 0xF1CA, - 39892 - 11904: 0xF3CF, - 39893 - 11904: 0xF3D5, - 39894 - 11904: 0xC44A, - 39895 - 11904: 0xF3D0, - 39897 - 11904: 0xF3D3, - 39898 - 11904: 0xF3D7, - 39899 - 11904: 0xC44B, - 39900 - 11904: 0xF3D2, - 39901 - 11904: 0x9A76, - 39902 - 11904: 0xF3CA, - 39904 - 11904: 0xF3C9, - 39905 - 11904: 0xF3D6, - 39906 - 11904: 0xF3CD, - 39908 - 11904: 0xF3CB, - 39909 - 11904: 0xF3D4, - 39910 - 11904: 0xF3CC, - 39911 - 11904: 0xC449, - 39912 - 11904: 0xC448, - 39913 - 11904: 0x95D5, - 39914 - 11904: 0xF3C7, - 39915 - 11904: 0xF3C8, - 39916 - 11904: 0xF3D1, - 39917 - 11904: 0x9ECA, - 39920 - 11904: 0xF3CE, - 39921 - 11904: 0x9A77, - 39924 - 11904: 0x9A78, - 39927 - 11904: 0xF56C, - 39928 - 11904: 0xF56F, - 39933 - 11904: 0xC356, - 39935 - 11904: 0x9170, - 39938 - 11904: 0x916F, - 39941 - 11904: 0xF56D, - 39942 - 11904: 0xF573, - 39943 - 11904: 0xF571, - 39944 - 11904: 0xF56B, - 39945 - 11904: 0xF576, - 39946 - 11904: 0x9FA3, - 39947 - 11904: 0xF56A, - 39948 - 11904: 0x9171, - 39949 - 11904: 0xC4CF, - 39950 - 11904: 0xF572, - 39952 - 11904: 0x96B1, - 39954 - 11904: 0xF56E, - 39955 - 11904: 0xC4CE, - 39956 - 11904: 0xF575, - 39957 - 11904: 0x9F63, - 39959 - 11904: 0xF574, - 39963 - 11904: 0x9F67, - 39964 - 11904: 0xF6AB, - 39965 - 11904: 0xF6AA, - 39967 - 11904: 0x8BB9, - 39968 - 11904: 0x9A7A, - 39969 - 11904: 0xF6B1, - 39971 - 11904: 0xF6AD, - 39972 - 11904: 0xF6B0, - 39973 - 11904: 0xC560, - 39974 - 11904: 0x8B56, - 39976 - 11904: 0xF6AE, - 39977 - 11904: 0xF6AF, - 39979 - 11904: 0xF6A9, - 39980 - 11904: 0xF6AC, - 39981 - 11904: 0xC55F, - 39983 - 11904: 0x9ADA, - 39985 - 11904: 0xC5BF, - 39986 - 11904: 0xF7B4, - 39987 - 11904: 0xF7AF, - 39988 - 11904: 0xF7B3, - 39989 - 11904: 0x96B0, - 39990 - 11904: 0xF7B6, - 39991 - 11904: 0xF7B2, - 39993 - 11904: 0xF7AE, - 39994 - 11904: 0x9A7E, - 39995 - 11904: 0xC5C1, - 39996 - 11904: 0xF7B1, - 39997 - 11904: 0xF7B5, - 39998 - 11904: 0xC5C0, - 39999 - 11904: 0xF7AC, - 40000 - 11904: 0xF570, - 40001 - 11904: 0xF7B0, - 40004 - 11904: 0xF7AD, - 40005 - 11904: 0x9DDE, - 40006 - 11904: 0xF7AA, - 40008 - 11904: 0xF7AB, - 40009 - 11904: 0xC5BE, - 40010 - 11904: 0xF85A, - 40011 - 11904: 0xF85C, - 40012 - 11904: 0xF85F, - 40013 - 11904: 0xF85B, - 40014 - 11904: 0xF860, - 40015 - 11904: 0x96AD, - 40016 - 11904: 0xF859, - 40018 - 11904: 0xF857, - 40019 - 11904: 0x96AE, - 40020 - 11904: 0xC5EB, - 40021 - 11904: 0xF85D, - 40022 - 11904: 0xC5ED, - 40023 - 11904: 0xC5EC, - 40024 - 11904: 0xF858, - 40025 - 11904: 0xF85E, - 40029 - 11904: 0x9EA1, - 40030 - 11904: 0xF8DA, - 40031 - 11904: 0xC64D, - 40032 - 11904: 0xF8DB, - 40034 - 11904: 0xF8D9, - 40035 - 11904: 0xF8D6, - 40038 - 11904: 0xF8D8, - 40039 - 11904: 0xF8D7, - 40040 - 11904: 0xF95A, - 40045 - 11904: 0xF95C, - 40046 - 11904: 0xF95B, - 40049 - 11904: 0xF979, - 40050 - 11904: 0x9E50, - 40051 - 11904: 0xF978, - 40052 - 11904: 0xF977, - 40053 - 11904: 0xF97A, - 40055 - 11904: 0xC673, - 40056 - 11904: 0xC674, - 40057 - 11904: 0xF9CA, - 40058 - 11904: 0xF9CE, - 40059 - 11904: 0x96AF, - 40060 - 11904: 0x8BF4, - 40165 - 11904: 0xB3BE, - 40166 - 11904: 0xDCAF, - 40167 - 11904: 0xE0ED, - 40169 - 11904: 0xB9A7, - 40170 - 11904: 0xE0EB, - 40173 - 11904: 0xE0EC, - 40177 - 11904: 0xE4E2, - 40178 - 11904: 0xE4E3, - 40179 - 11904: 0xBBF1, - 40180 - 11904: 0xBBEF, - 40181 - 11904: 0xE4E4, - 40182 - 11904: 0xBBF0, - 40183 - 11904: 0xE8E8, - 40185 - 11904: 0xE8EB, - 40186 - 11904: 0xE8E5, - 40187 - 11904: 0xE8EC, - 40188 - 11904: 0xE8E4, - 40189 - 11904: 0xE8E6, - 40191 - 11904: 0xE8E7, - 40192 - 11904: 0xE8EA, - 40194 - 11904: 0x9FA4, - 40195 - 11904: 0xBEA1, - 40196 - 11904: 0xE8EF, - 40197 - 11904: 0xE8EE, - 40198 - 11904: 0xBE7D, - 40199 - 11904: 0xE8E9, - 40200 - 11904: 0xE8ED, - 40201 - 11904: 0xBE7E, - 40204 - 11904: 0x96BD, - 40208 - 11904: 0xECAC, - 40210 - 11904: 0xC06F, - 40212 - 11904: 0xECA7, - 40213 - 11904: 0xC06B, - 40214 - 11904: 0x96F4, - 40215 - 11904: 0xECA4, - 40216 - 11904: 0xECAA, - 40217 - 11904: 0xECAD, - 40219 - 11904: 0xC070, - 40221 - 11904: 0xECA9, - 40222 - 11904: 0xECA6, - 40223 - 11904: 0xECAE, - 40224 - 11904: 0xECA5, - 40225 - 11904: 0x96B8, - 40226 - 11904: 0xECAB, - 40227 - 11904: 0xC06C, - 40229 - 11904: 0xECA3, - 40230 - 11904: 0xC06D, - 40232 - 11904: 0xC06E, - 40233 - 11904: 0xECA8, - 40237 - 11904: 0xEFA9, - 40238 - 11904: 0xEF7A, - 40239 - 11904: 0xEF7B, - 40240 - 11904: 0xEF7E, - 40241 - 11904: 0xEF7C, - 40243 - 11904: 0xEF76, - 40244 - 11904: 0xFAA1, - 40246 - 11904: 0xEF79, - 40247 - 11904: 0xEFA5, - 40248 - 11904: 0xEF7D, - 40249 - 11904: 0x91A7, - 40251 - 11904: 0xC245, - 40253 - 11904: 0xEFA7, - 40254 - 11904: 0xEFA4, - 40255 - 11904: 0xC246, - 40256 - 11904: 0xEFA6, - 40257 - 11904: 0xEF77, - 40258 - 11904: 0xEFA2, - 40259 - 11904: 0xEFA3, - 40260 - 11904: 0xA05E, - 40261 - 11904: 0xEFA1, - 40265 - 11904: 0x9A7D, - 40266 - 11904: 0xF1D2, - 40267 - 11904: 0xF1D4, - 40268 - 11904: 0xF1D7, - 40270 - 11904: 0x8948, - 40271 - 11904: 0xF1D1, - 40272 - 11904: 0x9EB1, - 40273 - 11904: 0xC359, - 40274 - 11904: 0xF1D9, - 40275 - 11904: 0xF1D0, - 40276 - 11904: 0xF1DA, - 40278 - 11904: 0xF1D6, - 40279 - 11904: 0xF1D8, - 40280 - 11904: 0xF1DC, - 40281 - 11904: 0xF1D5, - 40282 - 11904: 0xF1DD, - 40283 - 11904: 0xF1D3, - 40284 - 11904: 0xF1CF, - 40285 - 11904: 0xC35A, - 40286 - 11904: 0x9DDB, - 40287 - 11904: 0xF1DB, - 40288 - 11904: 0xC35B, - 40289 - 11904: 0xC44D, - 40295 - 11904: 0xEF78, - 40296 - 11904: 0xF3F1, - 40297 - 11904: 0xF3E8, - 40298 - 11904: 0xC44F, - 40299 - 11904: 0xF3E4, - 40300 - 11904: 0xC450, - 40301 - 11904: 0x95BF, - 40302 - 11904: 0x8A73, - 40303 - 11904: 0xF3ED, - 40304 - 11904: 0xF3E7, - 40305 - 11904: 0xF3DD, - 40306 - 11904: 0xC44E, - 40307 - 11904: 0xF3EA, - 40308 - 11904: 0xF3E5, - 40309 - 11904: 0xF3E6, - 40311 - 11904: 0xF3D8, - 40312 - 11904: 0xF3DF, - 40313 - 11904: 0xF3EE, - 40315 - 11904: 0xF3EB, - 40316 - 11904: 0x9EFE, - 40317 - 11904: 0xF3E3, - 40318 - 11904: 0x917A, - 40319 - 11904: 0xF3EF, - 40320 - 11904: 0xF3DE, - 40321 - 11904: 0xF3D9, - 40322 - 11904: 0xF3EC, - 40323 - 11904: 0x917B, - 40324 - 11904: 0xF3DB, - 40325 - 11904: 0xF3E9, - 40326 - 11904: 0xF3E0, - 40327 - 11904: 0xF3F0, - 40328 - 11904: 0xF3DC, - 40329 - 11904: 0xC44C, - 40330 - 11904: 0xF3DA, - 40331 - 11904: 0xF3E1, - 40332 - 11904: 0xF3E2, - 40336 - 11904: 0xF57D, - 40338 - 11904: 0xF57B, - 40339 - 11904: 0x9AA3, - 40340 - 11904: 0xF5A2, - 40342 - 11904: 0xF5AE, - 40343 - 11904: 0xF5A5, - 40344 - 11904: 0xF57C, - 40345 - 11904: 0xF578, - 40346 - 11904: 0xF5A7, - 40347 - 11904: 0xF57E, - 40348 - 11904: 0xF5A3, - 40349 - 11904: 0xF57A, - 40350 - 11904: 0xF5AA, - 40351 - 11904: 0xF577, - 40352 - 11904: 0xF5A1, - 40353 - 11904: 0xF5A6, - 40354 - 11904: 0xF5A8, - 40355 - 11904: 0xF5AB, - 40356 - 11904: 0xF579, - 40357 - 11904: 0x96C2, - 40358 - 11904: 0xF5AF, - 40359 - 11904: 0xF5B0, - 40360 - 11904: 0xF5A9, - 40361 - 11904: 0xF5AD, - 40362 - 11904: 0xF5A4, - 40363 - 11904: 0x9F77, - 40364 - 11904: 0xF6C1, - 40365 - 11904: 0xF6C4, - 40367 - 11904: 0xC561, - 40369 - 11904: 0xF6C3, - 40370 - 11904: 0xF6C8, - 40371 - 11904: 0xF6C6, - 40372 - 11904: 0xC562, - 40373 - 11904: 0xF6BD, - 40374 - 11904: 0xF6B3, - 40375 - 11904: 0xF6B2, - 40376 - 11904: 0xC564, - 40377 - 11904: 0xF6BF, - 40378 - 11904: 0xF6C0, - 40379 - 11904: 0xF6BC, - 40380 - 11904: 0xF6B4, - 40381 - 11904: 0x9AA4, - 40382 - 11904: 0xF6B9, - 40383 - 11904: 0xF5AC, - 40384 - 11904: 0x9AA5, - 40385 - 11904: 0xF6B5, - 40386 - 11904: 0xC563, - 40387 - 11904: 0xF6BB, - 40388 - 11904: 0x91A1, - 40389 - 11904: 0xF6BA, - 40391 - 11904: 0xF6B6, - 40392 - 11904: 0xF6C2, - 40393 - 11904: 0x89B8, - 40394 - 11904: 0xF6B7, - 40395 - 11904: 0xF7BB, - 40396 - 11904: 0xF6C5, - 40397 - 11904: 0xF6C7, - 40398 - 11904: 0xF6BE, - 40399 - 11904: 0xF6B8, - 40400 - 11904: 0xF7BC, - 40401 - 11904: 0xF7BE, - 40402 - 11904: 0xF7B8, - 40403 - 11904: 0xC5C2, - 40404 - 11904: 0x9173, - 40405 - 11904: 0xF7C5, - 40406 - 11904: 0xF7C3, - 40407 - 11904: 0xC5C3, - 40408 - 11904: 0xF7C2, - 40409 - 11904: 0xF7C1, - 40410 - 11904: 0xF7BA, - 40411 - 11904: 0xF7B7, - 40412 - 11904: 0xF7BD, - 40413 - 11904: 0xF7C6, - 40414 - 11904: 0xF7B9, - 40415 - 11904: 0xF7BF, - 40417 - 11904: 0xF869, - 40418 - 11904: 0xF86E, - 40419 - 11904: 0xF864, - 40420 - 11904: 0xF867, - 40421 - 11904: 0xC5EE, - 40422 - 11904: 0xF86B, - 40424 - 11904: 0xF872, - 40425 - 11904: 0xF7C0, - 40427 - 11904: 0xF865, - 40428 - 11904: 0xF86F, - 40429 - 11904: 0xF873, - 40430 - 11904: 0xF86A, - 40431 - 11904: 0xF863, - 40432 - 11904: 0xF86D, - 40434 - 11904: 0xF86C, - 40435 - 11904: 0xF871, - 40436 - 11904: 0xF870, - 40437 - 11904: 0xF7C4, - 40438 - 11904: 0xF868, - 40439 - 11904: 0xF862, - 40440 - 11904: 0xF866, - 40441 - 11904: 0xC64E, - 40442 - 11904: 0xC64F, - 40443 - 11904: 0xF861, - 40444 - 11904: 0x9AA6, - 40445 - 11904: 0xF8E6, - 40446 - 11904: 0xF8DD, - 40447 - 11904: 0xF8E5, - 40448 - 11904: 0xF8E2, - 40449 - 11904: 0xF8E3, - 40450 - 11904: 0xF8DC, - 40451 - 11904: 0xF8DF, - 40452 - 11904: 0xF8E7, - 40453 - 11904: 0xF8E1, - 40454 - 11904: 0xF8E0, - 40455 - 11904: 0xF8DE, - 40457 - 11904: 0xF8E4, - 40458 - 11904: 0x89BD, - 40459 - 11904: 0xF95D, - 40460 - 11904: 0x89B9, - 40461 - 11904: 0xF95E, - 40462 - 11904: 0x917D, - 40463 - 11904: 0xF960, - 40464 - 11904: 0xF95F, - 40465 - 11904: 0xF962, - 40466 - 11904: 0xF961, - 40467 - 11904: 0xF97C, - 40468 - 11904: 0xF97B, - 40469 - 11904: 0xF9B7, - 40471 - 11904: 0xF9B8, - 40472 - 11904: 0x96BB, - 40473 - 11904: 0xF9C5, - 40474 - 11904: 0xC678, - 40475 - 11904: 0xC67C, - 40476 - 11904: 0x9FF2, - 40477 - 11904: 0xF9CF, - 40478 - 11904: 0xC67D, - 40479 - 11904: 0x8BF5, - 40565 - 11904: 0xB3BF, - 40569 - 11904: 0xC4D0, - 40570 - 11904: 0xF6C9, - 40571 - 11904: 0x9AA9, - 40572 - 11904: 0xC650, - 40573 - 11904: 0xC651, - 40575 - 11904: 0xB3C0, - 40576 - 11904: 0xE0EE, - 40577 - 11904: 0x9F54, - 40578 - 11904: 0xB9A8, - 40579 - 11904: 0xE8F0, - 40580 - 11904: 0x9FE3, - 40581 - 11904: 0x9EED, - 40582 - 11904: 0xECB0, - 40583 - 11904: 0xECB1, - 40584 - 11904: 0xECAF, - 40585 - 11904: 0xEFAB, - 40586 - 11904: 0xEFAA, - 40587 - 11904: 0xC247, - 40588 - 11904: 0xF1DF, - 40589 - 11904: 0xEFAC, - 40590 - 11904: 0xF1DE, - 40592 - 11904: 0x91AA, - 40593 - 11904: 0xF3F3, - 40594 - 11904: 0xC451, - 40595 - 11904: 0xC453, - 40596 - 11904: 0xF3F2, - 40597 - 11904: 0x91AB, - 40598 - 11904: 0xA070, - 40599 - 11904: 0xC452, - 40600 - 11904: 0x9F6D, - 40601 - 11904: 0xF5B1, - 40602 - 11904: 0xF5B3, - 40603 - 11904: 0xF5B2, - 40604 - 11904: 0xF6CA, - 40605 - 11904: 0xC565, - 40606 - 11904: 0x91AC, - 40607 - 11904: 0xC5EF, - 40608 - 11904: 0xF8E8, - 40609 - 11904: 0xF963, - 40610 - 11904: 0x91AD, - 40612 - 11904: 0xF9D2, - 40613 - 11904: 0xB3C1, - 40614 - 11904: 0xA0FD, - 40615 - 11904: 0xE4E5, - 40616 - 11904: 0x9FE2, - 40617 - 11904: 0xBEA2, - 40618 - 11904: 0x91AF, - 40619 - 11904: 0x9E41, - 40620 - 11904: 0x9AAA, - 40621 - 11904: 0xECB3, - 40622 - 11904: 0xECB2, - 40623 - 11904: 0x91B0, - 40624 - 11904: 0xEFAD, - 40625 - 11904: 0x9AAB, - 40628 - 11904: 0xC454, - 40629 - 11904: 0xC4D1, - 40630 - 11904: 0xF7C7, - 40631 - 11904: 0xF9CB, - 40635 - 11904: 0xB3C2, - 40636 - 11904: 0xBBF2, - 40637 - 11904: 0x9AAC, - 40638 - 11904: 0xBEA3, - 40639 - 11904: 0x9A4A, - 40640 - 11904: 0xF3F4, - 40641 - 11904: 0x91B2, - 40642 - 11904: 0xF874, - 40643 - 11904: 0xB6C0, - 40644 - 11904: 0x8BF6, - 40646 - 11904: 0x9AAD, - 40647 - 11904: 0x89B6, - 40648 - 11904: 0xEFAE, - 40652 - 11904: 0xC664, - 40653 - 11904: 0xB6C1, - 40654 - 11904: 0xBEA4, - 40655 - 11904: 0xC248, - 40656 - 11904: 0xF875, - 40657 - 11904: 0xB6C2, - 40659 - 11904: 0xE8F1, - 40660 - 11904: 0xC072, - 40661 - 11904: 0xECB4, - 40662 - 11904: 0xECB5, - 40664 - 11904: 0xC071, - 40666 - 11904: 0xEFAF, - 40667 - 11904: 0xC24C, - 40668 - 11904: 0xC24A, - 40669 - 11904: 0xC24B, - 40670 - 11904: 0xC249, - 40671 - 11904: 0xF1E0, - 40672 - 11904: 0xC35C, - 40674 - 11904: 0x9AAF, - 40676 - 11904: 0xF5B5, - 40677 - 11904: 0xF5B4, - 40678 - 11904: 0xF5B7, - 40679 - 11904: 0xF5B6, - 40680 - 11904: 0xC4D2, - 40683 - 11904: 0xF6CB, - 40685 - 11904: 0xF6CD, - 40686 - 11904: 0xF6CC, - 40687 - 11904: 0xC566, - 40688 - 11904: 0xF7C8, - 40689 - 11904: 0x9AB0, - 40690 - 11904: 0xF876, - 40691 - 11904: 0xF877, - 40692 - 11904: 0xC5F0, - 40693 - 11904: 0xF964, - 40694 - 11904: 0xF97D, - 40695 - 11904: 0xC675, - 40696 - 11904: 0x9AB1, - 40697 - 11904: 0xDCB0, - 40698 - 11904: 0xECB6, - 40699 - 11904: 0xEFB0, - 40700 - 11904: 0xF3F5, - 40701 - 11904: 0xE0EF, - 40702 - 11904: 0x9AA1, - 40703 - 11904: 0xEFB1, - 40704 - 11904: 0xF1E2, - 40705 - 11904: 0xF1E1, - 40706 - 11904: 0x91B9, - 40710 - 11904: 0xF878, - 40711 - 11904: 0xC652, - 40712 - 11904: 0x91BA, - 40713 - 11904: 0xF965, - 40714 - 11904: 0xF97E, - 40718 - 11904: 0xB9A9, - 40719 - 11904: 0xE8F2, - 40720 - 11904: 0xE8F3, - 40722 - 11904: 0xECB7, - 40723 - 11904: 0xB9AA, - 40725 - 11904: 0xC35D, - 40726 - 11904: 0xF1E3, - 40727 - 11904: 0x9F66, - 40728 - 11904: 0xF6CF, - 40729 - 11904: 0xC567, - 40730 - 11904: 0xF6D0, - 40731 - 11904: 0xF6CE, - 40732 - 11904: 0xF879, - 40734 - 11904: 0xF8E9, - 40736 - 11904: 0xB9AB, - 40738 - 11904: 0xEFB4, - 40739 - 11904: 0xEFB3, - 40740 - 11904: 0xEFB2, - 40741 - 11904: 0xF1E4, - 40742 - 11904: 0xA041, - 40743 - 11904: 0x8BB7, - 40744 - 11904: 0xF1E8, - 40745 - 11904: 0xF1E7, - 40746 - 11904: 0xF1E6, - 40747 - 11904: 0xF1E5, - 40748 - 11904: 0xC35E, - 40749 - 11904: 0xF3F6, - 40750 - 11904: 0xF5B9, - 40751 - 11904: 0xC4D3, - 40752 - 11904: 0xF5B8, - 40753 - 11904: 0xF6D1, - 40754 - 11904: 0xF7CB, - 40755 - 11904: 0xF7CA, - 40756 - 11904: 0xC5C4, - 40757 - 11904: 0xF7C9, - 40758 - 11904: 0xF87C, - 40759 - 11904: 0xF87B, - 40760 - 11904: 0xF87A, - 40761 - 11904: 0x91C0, - 40763 - 11904: 0xBBF3, - 40765 - 11904: 0xECB8, - 40766 - 11904: 0xC24D, - 40768 - 11904: 0xF3F7, - 40769 - 11904: 0xF3F8, - 40770 - 11904: 0xF7CC, - 40771 - 11904: 0xF87D, - 40772 - 11904: 0x9AB3, - 40773 - 11904: 0x91C3, - 40774 - 11904: 0xF8EA, - 40775 - 11904: 0xF966, - 40776 - 11904: 0xF9B9, - 40777 - 11904: 0xF9D4, - 40778 - 11904: 0xBBF4, - 40779 - 11904: 0xC24E, - 40780 - 11904: 0xF1E9, - 40781 - 11904: 0xF3F9, - 40782 - 11904: 0xF6D2, - 40783 - 11904: 0xF87E, - 40784 - 11904: 0xA0FC, - 40786 - 11904: 0xBEA6, - 40787 - 11904: 0x9FEE, - 40788 - 11904: 0xEFB5, - 40789 - 11904: 0xF1EA, - 40790 - 11904: 0xF3FA, - 40791 - 11904: 0xF3FB, - 40792 - 11904: 0xF3FC, - 40793 - 11904: 0xF5BE, - 40794 - 11904: 0x9F69, - 40795 - 11904: 0xF5BA, - 40796 - 11904: 0xC568, - 40797 - 11904: 0xF5BD, - 40798 - 11904: 0xF5BC, - 40799 - 11904: 0xC4D4, - 40800 - 11904: 0xF5BB, - 40801 - 11904: 0xC4D6, - 40802 - 11904: 0x91C8, - 40803 - 11904: 0xC4D5, - 40804 - 11904: 0xF6D4, - 40805 - 11904: 0xF6D3, - 40806 - 11904: 0xC569, - 40807 - 11904: 0xC56A, - 40809 - 11904: 0x91C9, - 40810 - 11904: 0xC5C6, - 40811 - 11904: 0xF7CD, - 40812 - 11904: 0xC5C5, - 40814 - 11904: 0xF8A3, - 40815 - 11904: 0xF8A4, - 40816 - 11904: 0xF8A2, - 40817 - 11904: 0xF8A1, - 40818 - 11904: 0xC654, - 40820 - 11904: 0xF8EB, - 40821 - 11904: 0xF8EC, - 40822 - 11904: 0xF8ED, - 40823 - 11904: 0xC653, - 40824 - 11904: 0xF967, - 40825 - 11904: 0xF96A, - 40826 - 11904: 0xF969, - 40827 - 11904: 0xF968, - 40830 - 11904: 0xF9D3, - 40831 - 11904: 0x8DE6, - 40845 - 11904: 0xC073, - 40846 - 11904: 0x91CB, - 40848 - 11904: 0xC365, - 40849 - 11904: 0xF5BF, - 40850 - 11904: 0xF6D5, - 40852 - 11904: 0xC5C7, - 40853 - 11904: 0xF7CE, - 40854 - 11904: 0x87AC, - 40855 - 11904: 0x87A4, - 40856 - 11904: 0xF9D5, - 40857 - 11904: 0x89C8, - 40860 - 11904: 0xC074, - 40863 - 11904: 0x8DAA, - 40864 - 11904: 0xEFB6, - 40866 - 11904: 0xF7CF, - 40868 - 11904: 0xF9A1, - 40869 - 11904: 0x9FDD, - 40870 - 11904: 0x8C43, - 40871 - 11904: 0x8C6D, - 40872 - 11904: 0x8C74, - 40873 - 11904: 0x8CB7, - 40874 - 11904: 0x8CB9, - 40875 - 11904: 0x8CBB, - 40876 - 11904: 0x8CC0, - 40877 - 11904: 0x8CD7, - 40878 - 11904: 0x8CD8, - 40879 - 11904: 0x8CDA, - 40880 - 11904: 0xC8A1, - 40881 - 11904: 0xC8A3, - 40882 - 11904: 0x8CED, - 40883 - 11904: 0x8D48, - 40903 - 11904: 0x87C2, - 40904 - 11904: 0x87D2, - 40905 - 11904: 0x87D6, - 40906 - 11904: 0x87DA, - 40907 - 11904: 0x87DF, -} - -const encode2Low, encode2High = 7870, 10046 - -var encode2 = [...]uint16{ - 7870 - 7870: 0x8863, - 7871 - 7870: 0x88A4, - 7872 - 7870: 0x8865, - 7873 - 7870: 0x88A6, - 8211 - 7870: 0xA156, - 8212 - 7870: 0xA158, - 8216 - 7870: 0xA1A5, - 8217 - 7870: 0xA1A6, - 8220 - 7870: 0xA1A7, - 8221 - 7870: 0xA1A8, - 8229 - 7870: 0xA14C, - 8230 - 7870: 0xA14B, - 8231 - 7870: 0xA145, - 8242 - 7870: 0xA1AC, - 8245 - 7870: 0xA1AB, - 8251 - 7870: 0xA1B0, - 8364 - 7870: 0xA3E1, - 8451 - 7870: 0xA24A, - 8453 - 7870: 0xA1C1, - 8457 - 7870: 0xA24B, - 8470 - 7870: 0xC8D2, - 8481 - 7870: 0xC8D3, - 8544 - 7870: 0xA2B9, - 8545 - 7870: 0xA2BA, - 8546 - 7870: 0xA2BB, - 8547 - 7870: 0xA2BC, - 8548 - 7870: 0xA2BD, - 8549 - 7870: 0xA2BE, - 8550 - 7870: 0xA2BF, - 8551 - 7870: 0xA2C0, - 8552 - 7870: 0xA2C1, - 8553 - 7870: 0xA2C2, - 8560 - 7870: 0xC6B5, - 8561 - 7870: 0xC6B6, - 8562 - 7870: 0xC6B7, - 8563 - 7870: 0xC6B8, - 8564 - 7870: 0xC6B9, - 8565 - 7870: 0xC6BA, - 8566 - 7870: 0xC6BB, - 8567 - 7870: 0xC6BC, - 8568 - 7870: 0xC6BD, - 8569 - 7870: 0xC6BE, - 8592 - 7870: 0xA1F6, - 8593 - 7870: 0xA1F4, - 8594 - 7870: 0xA1F7, - 8595 - 7870: 0xA1F5, - 8598 - 7870: 0xA1F8, - 8599 - 7870: 0xA1F9, - 8600 - 7870: 0xA1FB, - 8601 - 7870: 0xA1FA, - 8632 - 7870: 0xC877, - 8633 - 7870: 0xC878, - 8679 - 7870: 0xC876, - 8725 - 7870: 0xA241, - 8730 - 7870: 0xA1D4, - 8734 - 7870: 0xA1DB, - 8735 - 7870: 0xA1E8, - 8736 - 7870: 0xA1E7, - 8739 - 7870: 0xA1FD, - 8741 - 7870: 0xA1FC, - 8745 - 7870: 0xA1E4, - 8746 - 7870: 0xA1E5, - 8747 - 7870: 0xA1EC, - 8750 - 7870: 0xA1ED, - 8756 - 7870: 0xA1EF, - 8757 - 7870: 0xA1EE, - 8786 - 7870: 0xA1DC, - 8800 - 7870: 0xA1DA, - 8801 - 7870: 0xA1DD, - 8806 - 7870: 0xA1D8, - 8807 - 7870: 0xA1D9, - 8853 - 7870: 0xA1F2, - 8857 - 7870: 0xA1F3, - 8869 - 7870: 0xA1E6, - 8895 - 7870: 0xA1E9, - 9178 - 7870: 0x88A9, - 9179 - 7870: 0x88AA, - 9216 - 7870: 0xA3C0, - 9217 - 7870: 0xA3C1, - 9218 - 7870: 0xA3C2, - 9219 - 7870: 0xA3C3, - 9220 - 7870: 0xA3C4, - 9221 - 7870: 0xA3C5, - 9222 - 7870: 0xA3C6, - 9223 - 7870: 0xA3C7, - 9224 - 7870: 0xA3C8, - 9225 - 7870: 0xA3C9, - 9226 - 7870: 0xA3CA, - 9227 - 7870: 0xA3CB, - 9228 - 7870: 0xA3CC, - 9229 - 7870: 0xA3CD, - 9230 - 7870: 0xA3CE, - 9231 - 7870: 0xA3CF, - 9232 - 7870: 0xA3D0, - 9233 - 7870: 0xA3D1, - 9234 - 7870: 0xA3D2, - 9235 - 7870: 0xA3D3, - 9236 - 7870: 0xA3D4, - 9237 - 7870: 0xA3D5, - 9238 - 7870: 0xA3D6, - 9239 - 7870: 0xA3D7, - 9240 - 7870: 0xA3D8, - 9241 - 7870: 0xA3D9, - 9242 - 7870: 0xA3DA, - 9243 - 7870: 0xA3DB, - 9244 - 7870: 0xA3DC, - 9245 - 7870: 0xA3DD, - 9246 - 7870: 0xA3DE, - 9247 - 7870: 0xA3DF, - 9249 - 7870: 0xA3E0, - 9312 - 7870: 0xC6A1, - 9313 - 7870: 0xC6A2, - 9314 - 7870: 0xC6A3, - 9315 - 7870: 0xC6A4, - 9316 - 7870: 0xC6A5, - 9317 - 7870: 0xC6A6, - 9318 - 7870: 0xC6A7, - 9319 - 7870: 0xC6A8, - 9320 - 7870: 0xC6A9, - 9321 - 7870: 0xC6AA, - 9332 - 7870: 0xC6AB, - 9333 - 7870: 0xC6AC, - 9334 - 7870: 0xC6AD, - 9335 - 7870: 0xC6AE, - 9336 - 7870: 0xC6AF, - 9337 - 7870: 0xC6B0, - 9338 - 7870: 0xC6B1, - 9339 - 7870: 0xC6B2, - 9340 - 7870: 0xC6B3, - 9341 - 7870: 0xC6B4, - 9472 - 7870: 0xA277, - 9474 - 7870: 0xA278, - 9484 - 7870: 0xA27A, - 9488 - 7870: 0xA27B, - 9492 - 7870: 0xA27C, - 9496 - 7870: 0xA27D, - 9500 - 7870: 0xA275, - 9508 - 7870: 0xA274, - 9516 - 7870: 0xA273, - 9524 - 7870: 0xA272, - 9532 - 7870: 0xA271, - 9552 - 7870: 0xF9F9, - 9553 - 7870: 0xF9F8, - 9554 - 7870: 0xF9E6, - 9555 - 7870: 0xF9EF, - 9556 - 7870: 0xF9DD, - 9557 - 7870: 0xF9E8, - 9558 - 7870: 0xF9F1, - 9559 - 7870: 0xF9DF, - 9560 - 7870: 0xF9EC, - 9561 - 7870: 0xF9F5, - 9562 - 7870: 0xF9E3, - 9563 - 7870: 0xF9EE, - 9564 - 7870: 0xF9F7, - 9565 - 7870: 0xF9E5, - 9566 - 7870: 0xF9E9, - 9567 - 7870: 0xF9F2, - 9568 - 7870: 0xF9E0, - 9569 - 7870: 0xF9EB, - 9570 - 7870: 0xF9F4, - 9571 - 7870: 0xF9E2, - 9572 - 7870: 0xF9E7, - 9573 - 7870: 0xF9F0, - 9574 - 7870: 0xF9DE, - 9575 - 7870: 0xF9ED, - 9576 - 7870: 0xF9F6, - 9577 - 7870: 0xF9E4, - 9578 - 7870: 0xF9EA, - 9579 - 7870: 0xF9F3, - 9580 - 7870: 0xF9E1, - 9581 - 7870: 0xF9FA, - 9582 - 7870: 0xF9FB, - 9583 - 7870: 0xF9FD, - 9584 - 7870: 0xF9FC, - 9585 - 7870: 0xA2AC, - 9586 - 7870: 0xA2AD, - 9587 - 7870: 0xA2AE, - 9588 - 7870: 0xA15A, - 9601 - 7870: 0xA262, - 9602 - 7870: 0xA263, - 9603 - 7870: 0xA264, - 9604 - 7870: 0xA265, - 9605 - 7870: 0xA266, - 9606 - 7870: 0xA267, - 9607 - 7870: 0xA268, - 9608 - 7870: 0xA269, - 9609 - 7870: 0xA270, - 9610 - 7870: 0xA26F, - 9611 - 7870: 0xA26E, - 9612 - 7870: 0xA26D, - 9613 - 7870: 0xA26C, - 9614 - 7870: 0xA26B, - 9615 - 7870: 0xA26A, - 9620 - 7870: 0xA276, - 9621 - 7870: 0xA279, - 9632 - 7870: 0xA1BD, - 9633 - 7870: 0xA1BC, - 9650 - 7870: 0xA1B6, - 9651 - 7870: 0xA1B5, - 9660 - 7870: 0xA1BF, - 9661 - 7870: 0xA1BE, - 9670 - 7870: 0xA1BB, - 9671 - 7870: 0xA1BA, - 9675 - 7870: 0xA1B3, - 9678 - 7870: 0xA1B7, - 9679 - 7870: 0xA1B4, - 9698 - 7870: 0xA2A8, - 9699 - 7870: 0xA2A9, - 9700 - 7870: 0xA2AB, - 9701 - 7870: 0xA2AA, - 9733 - 7870: 0xA1B9, - 9734 - 7870: 0xA1B8, - 9792 - 7870: 0xA1F0, - 9794 - 7870: 0xA1F1, - 10045 - 7870: 0xC6E6, -} - -const encode3Low, encode3High = 167, 1106 - -var encode3 = [...]uint16{ - 167 - 167: 0xA1B1, - 168 - 167: 0xC6D8, - 175 - 167: 0xA1C2, - 176 - 167: 0xA258, - 177 - 167: 0xA1D3, - 183 - 167: 0xA150, - 192 - 167: 0x8859, - 193 - 167: 0x8857, - 200 - 167: 0x885D, - 201 - 167: 0x885B, - 202 - 167: 0x8866, - 210 - 167: 0x8861, - 211 - 167: 0x885F, - 215 - 167: 0xA1D1, - 224 - 167: 0x886A, - 225 - 167: 0x8868, - 232 - 167: 0x886F, - 233 - 167: 0x886D, - 234 - 167: 0x88A7, - 236 - 167: 0x8873, - 237 - 167: 0x8871, - 242 - 167: 0x8877, - 243 - 167: 0x8875, - 247 - 167: 0xA1D2, - 248 - 167: 0xC8FB, - 249 - 167: 0x887B, - 250 - 167: 0x8879, - 252 - 167: 0x88A2, - 256 - 167: 0x8856, - 257 - 167: 0x8867, - 274 - 167: 0x885A, - 275 - 167: 0x886C, - 282 - 167: 0x885C, - 283 - 167: 0x886E, - 299 - 167: 0x8870, - 331 - 167: 0xC8FC, - 332 - 167: 0x885E, - 333 - 167: 0x8874, - 339 - 167: 0xC8FA, - 363 - 167: 0x8878, - 461 - 167: 0x8858, - 462 - 167: 0x8869, - 464 - 167: 0x8872, - 465 - 167: 0x8860, - 466 - 167: 0x8876, - 468 - 167: 0x887A, - 470 - 167: 0x887C, - 472 - 167: 0x887D, - 474 - 167: 0x887E, - 476 - 167: 0x88A1, - 592 - 167: 0xC8F6, - 593 - 167: 0x886B, - 596 - 167: 0xC8F8, - 603 - 167: 0xC8F7, - 609 - 167: 0x88A8, - 618 - 167: 0xC8FE, - 629 - 167: 0xC8F9, - 643 - 167: 0xC8F5, - 650 - 167: 0xC8FD, - 710 - 167: 0xC6D9, - 711 - 167: 0xA3BE, - 713 - 167: 0xA3BC, - 714 - 167: 0xA3BD, - 715 - 167: 0xA3BF, - 717 - 167: 0xA1C5, - 729 - 167: 0xA3BB, - 913 - 167: 0xA344, - 914 - 167: 0xA345, - 915 - 167: 0xA346, - 916 - 167: 0xA347, - 917 - 167: 0xA348, - 918 - 167: 0xA349, - 919 - 167: 0xA34A, - 920 - 167: 0xA34B, - 921 - 167: 0xA34C, - 922 - 167: 0xA34D, - 923 - 167: 0xA34E, - 924 - 167: 0xA34F, - 925 - 167: 0xA350, - 926 - 167: 0xA351, - 927 - 167: 0xA352, - 928 - 167: 0xA353, - 929 - 167: 0xA354, - 931 - 167: 0xA355, - 932 - 167: 0xA356, - 933 - 167: 0xA357, - 934 - 167: 0xA358, - 935 - 167: 0xA359, - 936 - 167: 0xA35A, - 937 - 167: 0xA35B, - 945 - 167: 0xA35C, - 946 - 167: 0xA35D, - 947 - 167: 0xA35E, - 948 - 167: 0xA35F, - 949 - 167: 0xA360, - 950 - 167: 0xA361, - 951 - 167: 0xA362, - 952 - 167: 0xA363, - 953 - 167: 0xA364, - 954 - 167: 0xA365, - 955 - 167: 0xA366, - 956 - 167: 0xA367, - 957 - 167: 0xA368, - 958 - 167: 0xA369, - 959 - 167: 0xA36A, - 960 - 167: 0xA36B, - 961 - 167: 0xA36C, - 963 - 167: 0xA36D, - 964 - 167: 0xA36E, - 965 - 167: 0xA36F, - 966 - 167: 0xA370, - 967 - 167: 0xA371, - 968 - 167: 0xA372, - 969 - 167: 0xA373, - 1025 - 167: 0xC7F9, - 1040 - 167: 0xC7F3, - 1041 - 167: 0xC7F4, - 1042 - 167: 0xC7F5, - 1043 - 167: 0xC7F6, - 1044 - 167: 0xC7F7, - 1045 - 167: 0xC7F8, - 1046 - 167: 0xC7FA, - 1047 - 167: 0xC7FB, - 1048 - 167: 0xC7FC, - 1049 - 167: 0xC7FD, - 1050 - 167: 0xC7FE, - 1051 - 167: 0xC840, - 1052 - 167: 0xC841, - 1053 - 167: 0xC842, - 1054 - 167: 0xC843, - 1055 - 167: 0xC844, - 1056 - 167: 0xC845, - 1057 - 167: 0xC846, - 1058 - 167: 0xC847, - 1059 - 167: 0xC848, - 1060 - 167: 0xC849, - 1061 - 167: 0xC84A, - 1062 - 167: 0xC84B, - 1063 - 167: 0xC84C, - 1064 - 167: 0xC84D, - 1065 - 167: 0xC84E, - 1066 - 167: 0xC84F, - 1067 - 167: 0xC850, - 1068 - 167: 0xC851, - 1069 - 167: 0xC852, - 1070 - 167: 0xC853, - 1071 - 167: 0xC854, - 1072 - 167: 0xC855, - 1073 - 167: 0xC856, - 1074 - 167: 0xC857, - 1075 - 167: 0xC858, - 1076 - 167: 0xC859, - 1077 - 167: 0xC85A, - 1078 - 167: 0xC85C, - 1079 - 167: 0xC85D, - 1080 - 167: 0xC85E, - 1081 - 167: 0xC85F, - 1082 - 167: 0xC860, - 1083 - 167: 0xC861, - 1084 - 167: 0xC862, - 1085 - 167: 0xC863, - 1086 - 167: 0xC864, - 1087 - 167: 0xC865, - 1088 - 167: 0xC866, - 1089 - 167: 0xC867, - 1090 - 167: 0xC868, - 1091 - 167: 0xC869, - 1092 - 167: 0xC86A, - 1093 - 167: 0xC86B, - 1094 - 167: 0xC86C, - 1095 - 167: 0xC86D, - 1096 - 167: 0xC86E, - 1097 - 167: 0xC86F, - 1098 - 167: 0xC870, - 1099 - 167: 0xC871, - 1100 - 167: 0xC872, - 1101 - 167: 0xC873, - 1102 - 167: 0xC874, - 1103 - 167: 0xC875, - 1105 - 167: 0xC85B, -} - -const encode4Low, encode4High = 65072, 65518 - -var encode4 = [...]uint16{ - 65072 - 65072: 0xA14A, - 65073 - 65072: 0xA157, - 65075 - 65072: 0xA159, - 65076 - 65072: 0xA15B, - 65077 - 65072: 0xA15F, - 65078 - 65072: 0xA160, - 65079 - 65072: 0xA163, - 65080 - 65072: 0xA164, - 65081 - 65072: 0xA167, - 65082 - 65072: 0xA168, - 65083 - 65072: 0xA16B, - 65084 - 65072: 0xA16C, - 65085 - 65072: 0xA16F, - 65086 - 65072: 0xA170, - 65087 - 65072: 0xA173, - 65088 - 65072: 0xA174, - 65089 - 65072: 0xA177, - 65090 - 65072: 0xA178, - 65091 - 65072: 0xA17B, - 65092 - 65072: 0xA17C, - 65097 - 65072: 0xA1C6, - 65098 - 65072: 0xA1C7, - 65099 - 65072: 0xA1CA, - 65100 - 65072: 0xA1CB, - 65101 - 65072: 0xA1C8, - 65102 - 65072: 0xA1C9, - 65103 - 65072: 0xA15C, - 65104 - 65072: 0xA14D, - 65105 - 65072: 0xA14E, - 65106 - 65072: 0xA14F, - 65108 - 65072: 0xA151, - 65109 - 65072: 0xA152, - 65110 - 65072: 0xA153, - 65111 - 65072: 0xA154, - 65113 - 65072: 0xA17D, - 65114 - 65072: 0xA17E, - 65115 - 65072: 0xA1A1, - 65116 - 65072: 0xA1A2, - 65117 - 65072: 0xA1A3, - 65118 - 65072: 0xA1A4, - 65119 - 65072: 0xA1CC, - 65120 - 65072: 0xA1CD, - 65121 - 65072: 0xA1CE, - 65122 - 65072: 0xA1DE, - 65123 - 65072: 0xA1DF, - 65124 - 65072: 0xA1E0, - 65125 - 65072: 0xA1E1, - 65126 - 65072: 0xA1E2, - 65128 - 65072: 0xA242, - 65129 - 65072: 0xA24C, - 65130 - 65072: 0xA24D, - 65131 - 65072: 0xA24E, - 65281 - 65072: 0xA149, - 65282 - 65072: 0xC8D0, - 65283 - 65072: 0xA1AD, - 65284 - 65072: 0xA243, - 65285 - 65072: 0xA248, - 65286 - 65072: 0xA1AE, - 65287 - 65072: 0xC8CF, - 65288 - 65072: 0xA15D, - 65289 - 65072: 0xA15E, - 65290 - 65072: 0xA1AF, - 65291 - 65072: 0xA1CF, - 65292 - 65072: 0xA141, - 65293 - 65072: 0xA1D0, - 65294 - 65072: 0xA144, - 65295 - 65072: 0xA1FE, - 65296 - 65072: 0xA2AF, - 65297 - 65072: 0xA2B0, - 65298 - 65072: 0xA2B1, - 65299 - 65072: 0xA2B2, - 65300 - 65072: 0xA2B3, - 65301 - 65072: 0xA2B4, - 65302 - 65072: 0xA2B5, - 65303 - 65072: 0xA2B6, - 65304 - 65072: 0xA2B7, - 65305 - 65072: 0xA2B8, - 65306 - 65072: 0xA147, - 65307 - 65072: 0xA146, - 65308 - 65072: 0xA1D5, - 65309 - 65072: 0xA1D7, - 65310 - 65072: 0xA1D6, - 65311 - 65072: 0xA148, - 65312 - 65072: 0xA249, - 65313 - 65072: 0xA2CF, - 65314 - 65072: 0xA2D0, - 65315 - 65072: 0xA2D1, - 65316 - 65072: 0xA2D2, - 65317 - 65072: 0xA2D3, - 65318 - 65072: 0xA2D4, - 65319 - 65072: 0xA2D5, - 65320 - 65072: 0xA2D6, - 65321 - 65072: 0xA2D7, - 65322 - 65072: 0xA2D8, - 65323 - 65072: 0xA2D9, - 65324 - 65072: 0xA2DA, - 65325 - 65072: 0xA2DB, - 65326 - 65072: 0xA2DC, - 65327 - 65072: 0xA2DD, - 65328 - 65072: 0xA2DE, - 65329 - 65072: 0xA2DF, - 65330 - 65072: 0xA2E0, - 65331 - 65072: 0xA2E1, - 65332 - 65072: 0xA2E2, - 65333 - 65072: 0xA2E3, - 65334 - 65072: 0xA2E4, - 65335 - 65072: 0xA2E5, - 65336 - 65072: 0xA2E6, - 65337 - 65072: 0xA2E7, - 65338 - 65072: 0xA2E8, - 65339 - 65072: 0xC6E4, - 65340 - 65072: 0xA240, - 65341 - 65072: 0xC6E5, - 65343 - 65072: 0xA1C4, - 65345 - 65072: 0xA2E9, - 65346 - 65072: 0xA2EA, - 65347 - 65072: 0xA2EB, - 65348 - 65072: 0xA2EC, - 65349 - 65072: 0xA2ED, - 65350 - 65072: 0xA2EE, - 65351 - 65072: 0xA2EF, - 65352 - 65072: 0xA2F0, - 65353 - 65072: 0xA2F1, - 65354 - 65072: 0xA2F2, - 65355 - 65072: 0xA2F3, - 65356 - 65072: 0xA2F4, - 65357 - 65072: 0xA2F5, - 65358 - 65072: 0xA2F6, - 65359 - 65072: 0xA2F7, - 65360 - 65072: 0xA2F8, - 65361 - 65072: 0xA2F9, - 65362 - 65072: 0xA2FA, - 65363 - 65072: 0xA2FB, - 65364 - 65072: 0xA2FC, - 65365 - 65072: 0xA2FD, - 65366 - 65072: 0xA2FE, - 65367 - 65072: 0xA340, - 65368 - 65072: 0xA341, - 65369 - 65072: 0xA342, - 65370 - 65072: 0xA343, - 65371 - 65072: 0xA161, - 65372 - 65072: 0xA155, - 65373 - 65072: 0xA162, - 65374 - 65072: 0xA1E3, - 65504 - 65072: 0xA246, - 65505 - 65072: 0xA247, - 65506 - 65072: 0xC8CD, - 65507 - 65072: 0xA1C3, - 65508 - 65072: 0xC8CE, - 65509 - 65072: 0xA244, - 65517 - 65072: 0xF9FE, -} - -const encode5Low, encode5High = 194597, 195029 - -var encode5 = [...]uint16{ - 194597 - 194597: 0x9874, - 194619 - 194597: 0x9AC8, - 194624 - 194597: 0xA047, - 194680 - 194597: 0x8BC3, - 194708 - 194597: 0xFC48, - 194726 - 194597: 0xFC77, - 194765 - 194597: 0x9C52, - 194964 - 194597: 0x8EFD, - 194994 - 194597: 0x8FA8, - 195004 - 194597: 0x957A, - 195028 - 194597: 0x8FF0, -} - -const encode6Low, encode6High = 63751, 64014 - -var encode6 = [...]uint16{ - 63751 - 63751: 0x8BF8, - 64012 - 63751: 0xC94A, - 64013 - 63751: 0xDDFC, -} - -const encode7Low, encode7High = 175615, 175616 - -var encode7 = [...]uint16{ - 175615 - 175615: 0x87DC, -} diff --git a/vendor/golang.org/x/text/encoding/unicode/override.go b/vendor/golang.org/x/text/encoding/unicode/override.go deleted file mode 100644 index 35d62fcc99..0000000000 --- a/vendor/golang.org/x/text/encoding/unicode/override.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package unicode - -import ( - "golang.org/x/text/transform" -) - -// BOMOverride returns a new decoder transformer that is identical to fallback, -// except that the presence of a Byte Order Mark at the start of the input -// causes it to switch to the corresponding Unicode decoding. It will only -// consider BOMs for UTF-8, UTF-16BE, and UTF-16LE. -// -// This differs from using ExpectBOM by allowing a BOM to switch to UTF-8, not -// just UTF-16 variants, and allowing falling back to any encoding scheme. -// -// This technique is recommended by the W3C for use in HTML 5: "For -// compatibility with deployed content, the byte order mark (also known as BOM) -// is considered more authoritative than anything else." -// http://www.w3.org/TR/encoding/#specification-hooks -// -// Using BOMOverride is mostly intended for use cases where the first characters -// of a fallback encoding are known to not be a BOM, for example, for valid HTML -// and most encodings. -func BOMOverride(fallback transform.Transformer) transform.Transformer { - // TODO: possibly allow a variadic argument of unicode encodings to allow - // specifying details of which fallbacks are supported as well as - // specifying the details of the implementations. This would also allow for - // support for UTF-32, which should not be supported by default. - return &bomOverride{fallback: fallback} -} - -type bomOverride struct { - fallback transform.Transformer - current transform.Transformer -} - -func (d *bomOverride) Reset() { - d.current = nil - d.fallback.Reset() -} - -var ( - // TODO: we could use decode functions here, instead of allocating a new - // decoder on every NewDecoder as IgnoreBOM decoders can be stateless. - utf16le = UTF16(LittleEndian, IgnoreBOM) - utf16be = UTF16(BigEndian, IgnoreBOM) -) - -const utf8BOM = "\ufeff" - -func (d *bomOverride) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if d.current != nil { - return d.current.Transform(dst, src, atEOF) - } - if len(src) < 3 && !atEOF { - return 0, 0, transform.ErrShortSrc - } - d.current = d.fallback - bomSize := 0 - if len(src) >= 2 { - if src[0] == 0xFF && src[1] == 0xFE { - d.current = utf16le.NewDecoder() - bomSize = 2 - } else if src[0] == 0xFE && src[1] == 0xFF { - d.current = utf16be.NewDecoder() - bomSize = 2 - } else if len(src) >= 3 && - src[0] == utf8BOM[0] && - src[1] == utf8BOM[1] && - src[2] == utf8BOM[2] { - d.current = transform.Nop - bomSize = 3 - } - } - if bomSize < len(src) { - nDst, nSrc, err = d.current.Transform(dst, src[bomSize:], atEOF) - } - return nDst, nSrc + bomSize, err -} diff --git a/vendor/golang.org/x/text/encoding/unicode/unicode.go b/vendor/golang.org/x/text/encoding/unicode/unicode.go deleted file mode 100644 index dd99ad14d3..0000000000 --- a/vendor/golang.org/x/text/encoding/unicode/unicode.go +++ /dev/null @@ -1,512 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package unicode provides Unicode encodings such as UTF-16. -package unicode // import "golang.org/x/text/encoding/unicode" - -import ( - "bytes" - "errors" - "unicode/utf16" - "unicode/utf8" - - "golang.org/x/text/encoding" - "golang.org/x/text/encoding/internal" - "golang.org/x/text/encoding/internal/identifier" - "golang.org/x/text/internal/utf8internal" - "golang.org/x/text/runes" - "golang.org/x/text/transform" -) - -// TODO: I think the Transformers really should return errors on unmatched -// surrogate pairs and odd numbers of bytes. This is not required by RFC 2781, -// which leaves it open, but is suggested by WhatWG. It will allow for all error -// modes as defined by WhatWG: fatal, HTML and Replacement. This would require -// the introduction of some kind of error type for conveying the erroneous code -// point. - -// UTF8 is the UTF-8 encoding. It neither removes nor adds byte order marks. -var UTF8 encoding.Encoding = utf8enc - -// UTF8BOM is an UTF-8 encoding where the decoder strips a leading byte order -// mark while the encoder adds one. -// -// Some editors add a byte order mark as a signature to UTF-8 files. Although -// the byte order mark is not useful for detecting byte order in UTF-8, it is -// sometimes used as a convention to mark UTF-8-encoded files. This relies on -// the observation that the UTF-8 byte order mark is either an illegal or at -// least very unlikely sequence in any other character encoding. -var UTF8BOM encoding.Encoding = utf8bomEncoding{} - -type utf8bomEncoding struct{} - -func (utf8bomEncoding) String() string { - return "UTF-8-BOM" -} - -func (utf8bomEncoding) ID() (identifier.MIB, string) { - return identifier.Unofficial, "x-utf8bom" -} - -func (utf8bomEncoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{ - Transformer: &utf8bomEncoder{t: runes.ReplaceIllFormed()}, - } -} - -func (utf8bomEncoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: &utf8bomDecoder{}} -} - -var utf8enc = &internal.Encoding{ - &internal.SimpleEncoding{utf8Decoder{}, runes.ReplaceIllFormed()}, - "UTF-8", - identifier.UTF8, -} - -type utf8bomDecoder struct { - checked bool -} - -func (t *utf8bomDecoder) Reset() { - t.checked = false -} - -func (t *utf8bomDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if !t.checked { - if !atEOF && len(src) < len(utf8BOM) { - if len(src) == 0 { - return 0, 0, nil - } - return 0, 0, transform.ErrShortSrc - } - if bytes.HasPrefix(src, []byte(utf8BOM)) { - nSrc += len(utf8BOM) - src = src[len(utf8BOM):] - } - t.checked = true - } - nDst, n, err := utf8Decoder.Transform(utf8Decoder{}, dst[nDst:], src, atEOF) - nSrc += n - return nDst, nSrc, err -} - -type utf8bomEncoder struct { - written bool - t transform.Transformer -} - -func (t *utf8bomEncoder) Reset() { - t.written = false - t.t.Reset() -} - -func (t *utf8bomEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if !t.written { - if len(dst) < len(utf8BOM) { - return nDst, 0, transform.ErrShortDst - } - nDst = copy(dst, utf8BOM) - t.written = true - } - n, nSrc, err := utf8Decoder.Transform(utf8Decoder{}, dst[nDst:], src, atEOF) - nDst += n - return nDst, nSrc, err -} - -type utf8Decoder struct{ transform.NopResetter } - -func (utf8Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - var pSrc int // point from which to start copy in src - var accept utf8internal.AcceptRange - - // The decoder can only make the input larger, not smaller. - n := len(src) - if len(dst) < n { - err = transform.ErrShortDst - n = len(dst) - atEOF = false - } - for nSrc < n { - c := src[nSrc] - if c < utf8.RuneSelf { - nSrc++ - continue - } - first := utf8internal.First[c] - size := int(first & utf8internal.SizeMask) - if first == utf8internal.FirstInvalid { - goto handleInvalid // invalid starter byte - } - accept = utf8internal.AcceptRanges[first>>utf8internal.AcceptShift] - if nSrc+size > n { - if !atEOF { - // We may stop earlier than necessary here if the short sequence - // has invalid bytes. Not checking for this simplifies the code - // and may avoid duplicate computations in certain conditions. - if err == nil { - err = transform.ErrShortSrc - } - break - } - // Determine the maximal subpart of an ill-formed subsequence. - switch { - case nSrc+1 >= n || src[nSrc+1] < accept.Lo || accept.Hi < src[nSrc+1]: - size = 1 - case nSrc+2 >= n || src[nSrc+2] < utf8internal.LoCB || utf8internal.HiCB < src[nSrc+2]: - size = 2 - default: - size = 3 // As we are short, the maximum is 3. - } - goto handleInvalid - } - if c = src[nSrc+1]; c < accept.Lo || accept.Hi < c { - size = 1 - goto handleInvalid // invalid continuation byte - } else if size == 2 { - } else if c = src[nSrc+2]; c < utf8internal.LoCB || utf8internal.HiCB < c { - size = 2 - goto handleInvalid // invalid continuation byte - } else if size == 3 { - } else if c = src[nSrc+3]; c < utf8internal.LoCB || utf8internal.HiCB < c { - size = 3 - goto handleInvalid // invalid continuation byte - } - nSrc += size - continue - - handleInvalid: - // Copy the scanned input so far. - nDst += copy(dst[nDst:], src[pSrc:nSrc]) - - // Append RuneError to the destination. - const runeError = "\ufffd" - if nDst+len(runeError) > len(dst) { - return nDst, nSrc, transform.ErrShortDst - } - nDst += copy(dst[nDst:], runeError) - - // Skip the maximal subpart of an ill-formed subsequence according to - // the W3C standard way instead of the Go way. This Transform is - // probably the only place in the text repo where it is warranted. - nSrc += size - pSrc = nSrc - - // Recompute the maximum source length. - if sz := len(dst) - nDst; sz < len(src)-nSrc { - err = transform.ErrShortDst - n = nSrc + sz - atEOF = false - } - } - return nDst + copy(dst[nDst:], src[pSrc:nSrc]), nSrc, err -} - -// UTF16 returns a UTF-16 Encoding for the given default endianness and byte -// order mark (BOM) policy. -// -// When decoding from UTF-16 to UTF-8, if the BOMPolicy is IgnoreBOM then -// neither BOMs U+FEFF nor noncharacters U+FFFE in the input stream will affect -// the endianness used for decoding, and will instead be output as their -// standard UTF-8 encodings: "\xef\xbb\xbf" and "\xef\xbf\xbe". If the BOMPolicy -// is UseBOM or ExpectBOM a staring BOM is not written to the UTF-8 output. -// Instead, it overrides the default endianness e for the remainder of the -// transformation. Any subsequent BOMs U+FEFF or noncharacters U+FFFE will not -// affect the endianness used, and will instead be output as their standard -// UTF-8 encodings. For UseBOM, if there is no starting BOM, it will proceed -// with the default Endianness. For ExpectBOM, in that case, the transformation -// will return early with an ErrMissingBOM error. -// -// When encoding from UTF-8 to UTF-16, a BOM will be inserted at the start of -// the output if the BOMPolicy is UseBOM or ExpectBOM. Otherwise, a BOM will not -// be inserted. The UTF-8 input does not need to contain a BOM. -// -// There is no concept of a 'native' endianness. If the UTF-16 data is produced -// and consumed in a greater context that implies a certain endianness, use -// IgnoreBOM. Otherwise, use ExpectBOM and always produce and consume a BOM. -// -// In the language of https://www.unicode.org/faq/utf_bom.html#bom10, IgnoreBOM -// corresponds to "Where the precise type of the data stream is known... the -// BOM should not be used" and ExpectBOM corresponds to "A particular -// protocol... may require use of the BOM". -func UTF16(e Endianness, b BOMPolicy) encoding.Encoding { - return utf16Encoding{config{e, b}, mibValue[e][b&bomMask]} -} - -// mibValue maps Endianness and BOMPolicy settings to MIB constants. Note that -// some configurations map to the same MIB identifier. RFC 2781 has requirements -// and recommendations. Some of the "configurations" are merely recommendations, -// so multiple configurations could match. -var mibValue = map[Endianness][numBOMValues]identifier.MIB{ - BigEndian: [numBOMValues]identifier.MIB{ - IgnoreBOM: identifier.UTF16BE, - UseBOM: identifier.UTF16, // BigEnding default is preferred by RFC 2781. - // TODO: acceptBOM | strictBOM would map to UTF16BE as well. - }, - LittleEndian: [numBOMValues]identifier.MIB{ - IgnoreBOM: identifier.UTF16LE, - UseBOM: identifier.UTF16, // LittleEndian default is allowed and preferred on Windows. - // TODO: acceptBOM | strictBOM would map to UTF16LE as well. - }, - // ExpectBOM is not widely used and has no valid MIB identifier. -} - -// All lists a configuration for each IANA-defined UTF-16 variant. -var All = []encoding.Encoding{ - UTF8, - UTF16(BigEndian, UseBOM), - UTF16(BigEndian, IgnoreBOM), - UTF16(LittleEndian, IgnoreBOM), -} - -// BOMPolicy is a UTF-16 encoding's byte order mark policy. -type BOMPolicy uint8 - -const ( - writeBOM BOMPolicy = 0x01 - acceptBOM BOMPolicy = 0x02 - requireBOM BOMPolicy = 0x04 - bomMask BOMPolicy = 0x07 - - // HACK: numBOMValues == 8 triggers a bug in the 1.4 compiler (cannot have a - // map of an array of length 8 of a type that is also used as a key or value - // in another map). See golang.org/issue/11354. - // TODO: consider changing this value back to 8 if the use of 1.4.* has - // been minimized. - numBOMValues = 8 + 1 - - // IgnoreBOM means to ignore any byte order marks. - IgnoreBOM BOMPolicy = 0 - // Common and RFC 2781-compliant interpretation for UTF-16BE/LE. - - // UseBOM means that the UTF-16 form may start with a byte order mark, which - // will be used to override the default encoding. - UseBOM BOMPolicy = writeBOM | acceptBOM - // Common and RFC 2781-compliant interpretation for UTF-16. - - // ExpectBOM means that the UTF-16 form must start with a byte order mark, - // which will be used to override the default encoding. - ExpectBOM BOMPolicy = writeBOM | acceptBOM | requireBOM - // Used in Java as Unicode (not to be confused with Java's UTF-16) and - // ICU's UTF-16,version=1. Not compliant with RFC 2781. - - // TODO (maybe): strictBOM: BOM must match Endianness. This would allow: - // - UTF-16(B|L)E,version=1: writeBOM | acceptBOM | requireBOM | strictBOM - // (UnicodeBig and UnicodeLittle in Java) - // - RFC 2781-compliant, but less common interpretation for UTF-16(B|L)E: - // acceptBOM | strictBOM (e.g. assigned to CheckBOM). - // This addition would be consistent with supporting ExpectBOM. -) - -// Endianness is a UTF-16 encoding's default endianness. -type Endianness bool - -const ( - // BigEndian is UTF-16BE. - BigEndian Endianness = false - // LittleEndian is UTF-16LE. - LittleEndian Endianness = true -) - -// ErrMissingBOM means that decoding UTF-16 input with ExpectBOM did not find a -// starting byte order mark. -var ErrMissingBOM = errors.New("encoding: missing byte order mark") - -type utf16Encoding struct { - config - mib identifier.MIB -} - -type config struct { - endianness Endianness - bomPolicy BOMPolicy -} - -func (u utf16Encoding) NewDecoder() *encoding.Decoder { - return &encoding.Decoder{Transformer: &utf16Decoder{ - initial: u.config, - current: u.config, - }} -} - -func (u utf16Encoding) NewEncoder() *encoding.Encoder { - return &encoding.Encoder{Transformer: &utf16Encoder{ - endianness: u.endianness, - initialBOMPolicy: u.bomPolicy, - currentBOMPolicy: u.bomPolicy, - }} -} - -func (u utf16Encoding) ID() (mib identifier.MIB, other string) { - return u.mib, "" -} - -func (u utf16Encoding) String() string { - e, b := "B", "" - if u.endianness == LittleEndian { - e = "L" - } - switch u.bomPolicy { - case ExpectBOM: - b = "Expect" - case UseBOM: - b = "Use" - case IgnoreBOM: - b = "Ignore" - } - return "UTF-16" + e + "E (" + b + " BOM)" -} - -type utf16Decoder struct { - initial config - current config -} - -func (u *utf16Decoder) Reset() { - u.current = u.initial -} - -func (u *utf16Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if len(src) < 2 && atEOF && u.current.bomPolicy&requireBOM != 0 { - return 0, 0, ErrMissingBOM - } - if len(src) == 0 { - return 0, 0, nil - } - if len(src) >= 2 && u.current.bomPolicy&acceptBOM != 0 { - switch { - case src[0] == 0xfe && src[1] == 0xff: - u.current.endianness = BigEndian - nSrc = 2 - case src[0] == 0xff && src[1] == 0xfe: - u.current.endianness = LittleEndian - nSrc = 2 - default: - if u.current.bomPolicy&requireBOM != 0 { - return 0, 0, ErrMissingBOM - } - } - u.current.bomPolicy = IgnoreBOM - } - - var r rune - var dSize, sSize int - for nSrc < len(src) { - if nSrc+1 < len(src) { - x := uint16(src[nSrc+0])<<8 | uint16(src[nSrc+1]) - if u.current.endianness == LittleEndian { - x = x>>8 | x<<8 - } - r, sSize = rune(x), 2 - if utf16.IsSurrogate(r) { - if nSrc+3 < len(src) { - x = uint16(src[nSrc+2])<<8 | uint16(src[nSrc+3]) - if u.current.endianness == LittleEndian { - x = x>>8 | x<<8 - } - // Save for next iteration if it is not a high surrogate. - if isHighSurrogate(rune(x)) { - r, sSize = utf16.DecodeRune(r, rune(x)), 4 - } - } else if !atEOF { - err = transform.ErrShortSrc - break - } - } - if dSize = utf8.RuneLen(r); dSize < 0 { - r, dSize = utf8.RuneError, 3 - } - } else if atEOF { - // Single trailing byte. - r, dSize, sSize = utf8.RuneError, 3, 1 - } else { - err = transform.ErrShortSrc - break - } - if nDst+dSize > len(dst) { - err = transform.ErrShortDst - break - } - nDst += utf8.EncodeRune(dst[nDst:], r) - nSrc += sSize - } - return nDst, nSrc, err -} - -func isHighSurrogate(r rune) bool { - return 0xDC00 <= r && r <= 0xDFFF -} - -type utf16Encoder struct { - endianness Endianness - initialBOMPolicy BOMPolicy - currentBOMPolicy BOMPolicy -} - -func (u *utf16Encoder) Reset() { - u.currentBOMPolicy = u.initialBOMPolicy -} - -func (u *utf16Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { - if u.currentBOMPolicy&writeBOM != 0 { - if len(dst) < 2 { - return 0, 0, transform.ErrShortDst - } - dst[0], dst[1] = 0xfe, 0xff - u.currentBOMPolicy = IgnoreBOM - nDst = 2 - } - - r, size := rune(0), 0 - for nSrc < len(src) { - r = rune(src[nSrc]) - - // Decode a 1-byte rune. - if r < utf8.RuneSelf { - size = 1 - - } else { - // Decode a multi-byte rune. - r, size = utf8.DecodeRune(src[nSrc:]) - if size == 1 { - // All valid runes of size 1 (those below utf8.RuneSelf) were - // handled above. We have invalid UTF-8 or we haven't seen the - // full character yet. - if !atEOF && !utf8.FullRune(src[nSrc:]) { - err = transform.ErrShortSrc - break - } - } - } - - if r <= 0xffff { - if nDst+2 > len(dst) { - err = transform.ErrShortDst - break - } - dst[nDst+0] = uint8(r >> 8) - dst[nDst+1] = uint8(r) - nDst += 2 - } else { - if nDst+4 > len(dst) { - err = transform.ErrShortDst - break - } - r1, r2 := utf16.EncodeRune(r) - dst[nDst+0] = uint8(r1 >> 8) - dst[nDst+1] = uint8(r1) - dst[nDst+2] = uint8(r2 >> 8) - dst[nDst+3] = uint8(r2) - nDst += 4 - } - nSrc += size - } - - if u.endianness == LittleEndian { - for i := 0; i < nDst; i += 2 { - dst[i], dst[i+1] = dst[i+1], dst[i] - } - } - return nDst, nSrc, err -} diff --git a/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go b/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go deleted file mode 100644 index e5c53b1b3e..0000000000 --- a/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package utf8internal contains low-level utf8-related constants, tables, etc. -// that are used internally by the text package. -package utf8internal - -// The default lowest and highest continuation byte. -const ( - LoCB = 0x80 // 1000 0000 - HiCB = 0xBF // 1011 1111 -) - -// Constants related to getting information of first bytes of UTF-8 sequences. -const ( - // ASCII identifies a UTF-8 byte as ASCII. - ASCII = as - - // FirstInvalid indicates a byte is invalid as a first byte of a UTF-8 - // sequence. - FirstInvalid = xx - - // SizeMask is a mask for the size bits. Use use x&SizeMask to get the size. - SizeMask = 7 - - // AcceptShift is the right-shift count for the first byte info byte to get - // the index into the AcceptRanges table. See AcceptRanges. - AcceptShift = 4 - - // The names of these constants are chosen to give nice alignment in the - // table below. The first nibble is an index into acceptRanges or F for - // special one-byte cases. The second nibble is the Rune length or the - // Status for the special one-byte case. - xx = 0xF1 // invalid: size 1 - as = 0xF0 // ASCII: size 1 - s1 = 0x02 // accept 0, size 2 - s2 = 0x13 // accept 1, size 3 - s3 = 0x03 // accept 0, size 3 - s4 = 0x23 // accept 2, size 3 - s5 = 0x34 // accept 3, size 4 - s6 = 0x04 // accept 0, size 4 - s7 = 0x44 // accept 4, size 4 -) - -// First is information about the first byte in a UTF-8 sequence. -var First = [256]uint8{ - // 1 2 3 4 5 6 7 8 9 A B C D E F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x00-0x0F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x10-0x1F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x20-0x2F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x30-0x3F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x40-0x4F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x50-0x5F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x60-0x6F - as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x70-0x7F - // 1 2 3 4 5 6 7 8 9 A B C D E F - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0x80-0x8F - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0x90-0x9F - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xA0-0xAF - xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xB0-0xBF - xx, xx, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, // 0xC0-0xCF - s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, // 0xD0-0xDF - s2, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s4, s3, s3, // 0xE0-0xEF - s5, s6, s6, s6, s7, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xF0-0xFF -} - -// AcceptRange gives the range of valid values for the second byte in a UTF-8 -// sequence for any value for First that is not ASCII or FirstInvalid. -type AcceptRange struct { - Lo uint8 // lowest value for second byte. - Hi uint8 // highest value for second byte. -} - -// AcceptRanges is a slice of AcceptRange values. For a given byte sequence b -// -// AcceptRanges[First[b[0]]>>AcceptShift] -// -// will give the value of AcceptRange for the multi-byte UTF-8 sequence starting -// at b[0]. -var AcceptRanges = [...]AcceptRange{ - 0: {LoCB, HiCB}, - 1: {0xA0, HiCB}, - 2: {LoCB, 0x9F}, - 3: {0x90, HiCB}, - 4: {LoCB, 0x8F}, -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 860fe3e169..6287360469 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -23,37 +23,6 @@ github.com/Azure/go-ansiterm/winterm ## explicit; go 1.12 github.com/Microsoft/go-winio github.com/Microsoft/go-winio/pkg/guid -# github.com/ProtonMail/go-crypto v0.0.0-20230124153114-0acdc8ae009b -## explicit; go 1.13 -github.com/ProtonMail/go-crypto/bitcurves -github.com/ProtonMail/go-crypto/brainpool -github.com/ProtonMail/go-crypto/eax -github.com/ProtonMail/go-crypto/internal/byteutil -github.com/ProtonMail/go-crypto/ocb -github.com/ProtonMail/go-crypto/openpgp -github.com/ProtonMail/go-crypto/openpgp/aes/keywrap -github.com/ProtonMail/go-crypto/openpgp/armor -github.com/ProtonMail/go-crypto/openpgp/clearsign -github.com/ProtonMail/go-crypto/openpgp/ecdh -github.com/ProtonMail/go-crypto/openpgp/ecdsa -github.com/ProtonMail/go-crypto/openpgp/eddsa -github.com/ProtonMail/go-crypto/openpgp/elgamal -github.com/ProtonMail/go-crypto/openpgp/errors -github.com/ProtonMail/go-crypto/openpgp/internal/algorithm -github.com/ProtonMail/go-crypto/openpgp/internal/ecc -github.com/ProtonMail/go-crypto/openpgp/internal/encoding -github.com/ProtonMail/go-crypto/openpgp/packet -github.com/ProtonMail/go-crypto/openpgp/s2k -# github.com/ProtonMail/go-mime v0.0.0-20221031134845-8fd9bc37cf08 -## explicit; go 1.12 -github.com/ProtonMail/go-mime -# github.com/ProtonMail/gopenpgp/v2 v2.5.2 -## explicit; go 1.15 -github.com/ProtonMail/gopenpgp/v2/armor -github.com/ProtonMail/gopenpgp/v2/constants -github.com/ProtonMail/gopenpgp/v2/crypto -github.com/ProtonMail/gopenpgp/v2/helper -github.com/ProtonMail/gopenpgp/v2/internal # github.com/StackExchange/wmi v1.2.1 ## explicit; go 1.13 github.com/StackExchange/wmi @@ -72,20 +41,6 @@ github.com/blang/semver/v4 # github.com/ccding/go-stun/stun v0.0.0-20200514191101-4dc67bcdb029 ## explicit; go 1.14 github.com/ccding/go-stun/stun -# github.com/cloudflare/circl v1.1.0 -## explicit; go 1.15 -github.com/cloudflare/circl/dh/x25519 -github.com/cloudflare/circl/dh/x448 -github.com/cloudflare/circl/ecc/goldilocks -github.com/cloudflare/circl/internal/conv -github.com/cloudflare/circl/internal/sha3 -github.com/cloudflare/circl/math -github.com/cloudflare/circl/math/fp25519 -github.com/cloudflare/circl/math/fp448 -github.com/cloudflare/circl/math/mlsbset -github.com/cloudflare/circl/sign -github.com/cloudflare/circl/sign/ed25519 -github.com/cloudflare/circl/sign/ed448 # github.com/containerd/console v1.0.3 ## explicit; go 1.13 github.com/containerd/console @@ -366,13 +321,11 @@ golang.org/x/crypto/chacha20 golang.org/x/crypto/chacha20poly1305 golang.org/x/crypto/curve25519 golang.org/x/crypto/curve25519/internal/field -golang.org/x/crypto/hkdf golang.org/x/crypto/internal/alias golang.org/x/crypto/internal/poly1305 golang.org/x/crypto/pbkdf2 golang.org/x/crypto/salsa20 golang.org/x/crypto/salsa20/salsa -golang.org/x/crypto/sha3 golang.org/x/crypto/ssh/terminal golang.org/x/crypto/tea golang.org/x/crypto/twofish @@ -409,21 +362,10 @@ golang.org/x/term # golang.org/x/text v0.7.0 ## explicit; go 1.17 golang.org/x/text/cases -golang.org/x/text/encoding -golang.org/x/text/encoding/charmap -golang.org/x/text/encoding/htmlindex -golang.org/x/text/encoding/internal -golang.org/x/text/encoding/internal/identifier -golang.org/x/text/encoding/japanese -golang.org/x/text/encoding/korean -golang.org/x/text/encoding/simplifiedchinese -golang.org/x/text/encoding/traditionalchinese -golang.org/x/text/encoding/unicode golang.org/x/text/internal golang.org/x/text/internal/language golang.org/x/text/internal/language/compact golang.org/x/text/internal/tag -golang.org/x/text/internal/utf8internal golang.org/x/text/language golang.org/x/text/runes golang.org/x/text/transform From c534b7ac3cc8f2356b8ffb038028e2b8d531beed Mon Sep 17 00:00:00 2001 From: Mohammed <79150699+mrpalide@users.noreply.github.com> Date: Thu, 18 May 2023 21:13:42 +0330 Subject: [PATCH 39/62] fix wrong index (#1564) --- cmd/skywire-cli/commands/vpn/vvpn.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/skywire-cli/commands/vpn/vvpn.go b/cmd/skywire-cli/commands/vpn/vvpn.go index 734284b614..393f3384a7 100644 --- a/cmd/skywire-cli/commands/vpn/vvpn.go +++ b/cmd/skywire-cli/commands/vpn/vvpn.go @@ -65,7 +65,7 @@ var startCmd = &cobra.Command{ err := pubkey.Set(pk) if err != nil { if len(args) > 0 { - err := pubkey.Set(args[1]) + err := pubkey.Set(args[0]) if err != nil { internal.PrintFatalError(cmd.Flags(), err) } From 1b5e708d9aec6a7e5ce0a44f000648008c396116 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Thu, 18 May 2023 13:22:54 -0500 Subject: [PATCH 40/62] Combine `skywire-cli` `skywire-visor` `setup-node` binaries (#1565) * combined visor + cli binaries * add setup-node as a subcommand of the skywire binary * add comments for exported variables * add comments for exported variables * make format --- cmd/setup-node/commands/root.go | 15 +++--- cmd/skywire-cli/commands/root.go | 33 +++++++------- cmd/skywire-visor/skywire-visor.go | 4 +- cmd/skywire/skywire.go | 73 ++++++++++++++++++++++++++++++ pkg/visor/cmd.go | 2 +- 5 files changed, 101 insertions(+), 26 deletions(-) create mode 100644 cmd/skywire/skywire.go diff --git a/cmd/setup-node/commands/root.go b/cmd/setup-node/commands/root.go index 1f4d7fc048..b41f654b8d 100644 --- a/cmd/setup-node/commands/root.go +++ b/cmd/setup-node/commands/root.go @@ -29,13 +29,14 @@ var ( ) func init() { - rootCmd.Flags().StringVarP(&metricsAddr, "metrics", "m", "", "address to bind metrics API to") - rootCmd.Flags().StringVar(&syslogAddr, "syslog", "", "syslog server address. E.g. localhost:514") - rootCmd.Flags().StringVar(&tag, "tag", "setup_node", "logging tag") - rootCmd.Flags().BoolVarP(&cfgFromStdin, "stdin", "i", false, "read config from STDIN") + RootCmd.Flags().StringVarP(&metricsAddr, "metrics", "m", "", "address to bind metrics API to") + RootCmd.Flags().StringVar(&syslogAddr, "syslog", "", "syslog server address. E.g. localhost:514") + RootCmd.Flags().StringVar(&tag, "tag", "setup_node", "logging tag") + RootCmd.Flags().BoolVarP(&cfgFromStdin, "stdin", "i", false, "read config from STDIN") } -var rootCmd = &cobra.Command{ +// RootCmd is the root command for setup node +var RootCmd = &cobra.Command{ Use: "setup-node [config.json]", Short: "Route Setup Node for skywire", Long: ` @@ -124,7 +125,7 @@ func prepareMetrics(log logrus.FieldLogger) setupmetrics.Metrics { // Execute executes root CLI command. func Execute() { cc.Init(&cc.Config{ - RootCmd: rootCmd, + RootCmd: RootCmd, Headings: cc.HiBlue + cc.Bold, Commands: cc.HiBlue + cc.Bold, CmdShortDescr: cc.HiBlue, @@ -136,7 +137,7 @@ func Execute() { NoExtraNewlines: true, NoBottomNewline: true, }) - if err := rootCmd.Execute(); err != nil { + if err := RootCmd.Execute(); err != nil { panic(err) } } diff --git a/cmd/skywire-cli/commands/root.go b/cmd/skywire-cli/commands/root.go index 716ca4ff61..417f273f0e 100644 --- a/cmd/skywire-cli/commands/root.go +++ b/cmd/skywire-cli/commands/root.go @@ -30,8 +30,9 @@ import ( "github.com/skycoin/skywire/cmd/skywire-cli/internal" ) -var rootCmd = &cobra.Command{ - Use: "skywire-cli", +// RootCmd is the root command for skywire-cli +var RootCmd = &cobra.Command{ + Use: "cli", Short: "Command Line Interface for skywire", Long: ` ┌─┐┬┌─┬ ┬┬ ┬┬┬─┐┌─┐ ┌─┐┬ ┬ @@ -55,8 +56,8 @@ var treeCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { // You can use a LeveledList here, for easy generation. leveledList := pterm.LeveledList{} - leveledList = append(leveledList, pterm.LeveledListItem{Level: 0, Text: rootCmd.Use}) - for _, j := range rootCmd.Commands() { + leveledList = append(leveledList, pterm.LeveledListItem{Level: 0, Text: RootCmd.Use}) + for _, j := range RootCmd.Commands() { use := strings.Split(j.Use, " ") leveledList = append(leveledList, pterm.LeveledListItem{Level: 1, Text: use[0]}) for _, k := range j.Commands() { @@ -112,9 +113,9 @@ var docCmd = &cobra.Command{ fmt.Printf("\n# %s\n", "skywire-cli documentation") fmt.Printf("\n%s\n", "skywire command line interface") - fmt.Printf("\n## %s\n", rootCmd.Use) + fmt.Printf("\n## %s\n", RootCmd.Use) fmt.Printf("\n```\n") - rootCmd.Help() //nolint + RootCmd.Help() //nolint fmt.Printf("\n```\n") fmt.Printf("\n## %s\n", "global flags") fmt.Printf("\n%s\n", "The skywire-cli interacts with the running visor via rpc calls. By default the rpc server is available on localhost:3435. The rpc address and port the visor is using may be changed in the config file, once generated.") @@ -133,7 +134,7 @@ var docCmd = &cobra.Command{ fmt.Printf("\n```\n") var use string - for _, j := range rootCmd.Commands() { + for _, j := range RootCmd.Commands() { use = strings.Split(j.Use, " ")[0] fmt.Printf("\n### %s\n", use) fmt.Printf("\n```\n") @@ -177,7 +178,7 @@ var docCmd = &cobra.Command{ } func init() { - rootCmd.AddCommand( + RootCmd.AddCommand( cliconfig.RootCmd, clidmsgpty.RootCmd, clivisor.RootCmd, @@ -196,19 +197,19 @@ func init() { docCmd, ) var jsonOutput bool - rootCmd.PersistentFlags().BoolVar(&jsonOutput, internal.JSONString, false, "print output in json") - rootCmd.PersistentFlags().MarkHidden(internal.JSONString) //nolint + RootCmd.PersistentFlags().BoolVar(&jsonOutput, internal.JSONString, false, "print output in json") + RootCmd.PersistentFlags().MarkHidden(internal.JSONString) //nolint var helpflag bool - rootCmd.SetUsageTemplate(help) - rootCmd.PersistentFlags().BoolVarP(&helpflag, "help", "h", false, "help for "+rootCmd.Use) - rootCmd.SetHelpCommand(&cobra.Command{Hidden: true}) - rootCmd.PersistentFlags().MarkHidden("help") //nolint + RootCmd.SetUsageTemplate(help) + RootCmd.PersistentFlags().BoolVarP(&helpflag, "help", "h", false, "help for "+RootCmd.Use) + RootCmd.SetHelpCommand(&cobra.Command{Hidden: true}) + RootCmd.PersistentFlags().MarkHidden("help") //nolint } // Execute executes root CLI command. func Execute() { cc.Init(&cc.Config{ - RootCmd: rootCmd, + RootCmd: RootCmd, Headings: cc.HiBlue + cc.Bold, //+ cc.Underline, Commands: cc.HiBlue + cc.Bold, CmdShortDescr: cc.HiBlue, @@ -220,7 +221,7 @@ func Execute() { NoExtraNewlines: true, NoBottomNewline: true, }) - if err := rootCmd.Execute(); err != nil { + if err := RootCmd.Execute(); err != nil { log.Fatal("Failed to execute command: ", err) } } diff --git a/cmd/skywire-visor/skywire-visor.go b/cmd/skywire-visor/skywire-visor.go index bceff456be..b0f8af39ae 100644 --- a/cmd/skywire-visor/skywire-visor.go +++ b/cmd/skywire-visor/skywire-visor.go @@ -1,6 +1,6 @@ -// /* cmd/skywire-visor/skywire-visor.go +// /* cmd/skywire/skywire.go /* -skywire visor +skywire */ package main diff --git a/cmd/skywire/skywire.go b/cmd/skywire/skywire.go new file mode 100644 index 0000000000..ac05f801e2 --- /dev/null +++ b/cmd/skywire/skywire.go @@ -0,0 +1,73 @@ +// /* cmd/skywire-visor/skywire-visor.go +/* +skywire visor +*/ +package main + +import ( + "fmt" + + cc "github.com/ivanpirog/coloredcobra" + "github.com/spf13/cobra" + + "github.com/skycoin/skywire-utilities/pkg/buildinfo" + setupnode "github.com/skycoin/skywire/cmd/setup-node/commands" + skywirecli "github.com/skycoin/skywire/cmd/skywire-cli/commands" + "github.com/skycoin/skywire/pkg/visor" +) + +func init() { + rootCmd.AddCommand( + visor.RootCmd, + skywirecli.RootCmd, + setupnode.RootCmd, + ) + var helpflag bool + rootCmd.SetUsageTemplate(help) + rootCmd.PersistentFlags().BoolVarP(&helpflag, "help", "h", false, "help for "+rootCmd.Use) + rootCmd.SetHelpCommand(&cobra.Command{Hidden: true}) + rootCmd.PersistentFlags().MarkHidden("help") //nolint + rootCmd.CompletionOptions.DisableDefaultCmd = true + +} + +var rootCmd = &cobra.Command{ + Use: "skywire", + Long: ` + ┌─┐┬┌─┬ ┬┬ ┬┬┬─┐┌─┐ + └─┐├┴┐└┬┘││││├┬┘├┤ + └─┘┴ ┴ ┴ └┴┘┴┴└─└─┘`, + SilenceErrors: true, + SilenceUsage: true, + DisableSuggestions: true, + DisableFlagsInUseLine: true, + Version: buildinfo.Version(), +} + +func main() { + cc.Init(&cc.Config{ + RootCmd: rootCmd, + Headings: cc.HiBlue + cc.Bold, + Commands: cc.HiBlue + cc.Bold, + CmdShortDescr: cc.HiBlue, + Example: cc.HiBlue + cc.Italic, + ExecName: cc.HiBlue + cc.Bold, + Flags: cc.HiBlue + cc.Bold, + FlagsDescr: cc.HiBlue, + NoExtraNewlines: true, + NoBottomNewline: true, + }) + + if err := rootCmd.Execute(); err != nil { + fmt.Println(err) + } +} + +const help = "{{if gt (len .Aliases) 0}}" + + "{{.NameAndAliases}}{{end}}{{if .HasAvailableSubCommands}}" + + "Available Commands:{{range .Commands}}{{if (or .IsAvailableCommand)}}\r\n " + + "{{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}}\r\n\r\n" + + "Flags:\r\n" + + "{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}}\r\n\r\n" + + "Global Flags:\r\n" + + "{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}\r\n\r\n" diff --git a/pkg/visor/cmd.go b/pkg/visor/cmd.go index 5afa98f134..0ca6737493 100644 --- a/pkg/visor/cmd.go +++ b/pkg/visor/cmd.go @@ -173,7 +173,7 @@ func trimStringFromDot(s string) string { // RootCmd contains the help command & invocation flags var RootCmd = &cobra.Command{ - Use: "skywire-visor", + Use: "visor", Short: "Skywire Visor", Long: ` ┌─┐┬┌─┬ ┬┬ ┬┬┬─┐┌─┐ From 10eb8aa495bf64768dfe6dded0bcca86b1bb65a6 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Thu, 18 May 2023 15:23:49 -0500 Subject: [PATCH 41/62] Log collect by sk (#1566) * optimizations for skywire-cli log * make format * fix variable name * remove unused func & minor change on help menu --- cmd/skywire-cli/commands/log/root.go | 111 +++++++++++++++------------ 1 file changed, 64 insertions(+), 47 deletions(-) diff --git a/cmd/skywire-cli/commands/log/root.go b/cmd/skywire-cli/commands/log/root.go index 88a339cb58..8f73c183e9 100644 --- a/cmd/skywire-cli/commands/log/root.go +++ b/cmd/skywire-cli/commands/log/root.go @@ -21,38 +21,55 @@ import ( "github.com/skycoin/skywire-utilities/pkg/cipher" "github.com/skycoin/skywire-utilities/pkg/cmdutil" "github.com/skycoin/skywire-utilities/pkg/logging" + "github.com/skycoin/skywire-utilities/pkg/skyenv" ) var ( - env string - duration int - minv string - allVisors bool - batchSize int - maxFileSize int64 - utAddr string + env string + duration int + minv string + allVisors bool + batchSize int + maxFileSize int64 + utAddr string + sk cipher.SecKey + dmsgDisc string + logOnly bool + surveyOnly bool + deleteOnErrors bool ) func init() { logCmd.Flags().SortFlags = false logCmd.Flags().StringVarP(&env, "env", "e", "prod", "selecting env to fetch uptimes, default is prod") + logCmd.Flags().BoolVarP(&logOnly, "log", "l", false, "fetch only transport logs") + logCmd.Flags().BoolVarP(&surveyOnly, "survey", "v", false, "fetch only surveys") + logCmd.Flags().BoolVarP(&deleteOnErrors, "clean", "c", false, "delete files and folders on errors") logCmd.Flags().StringVar(&minv, "minv", "v1.3.4", "minimum version for get logs, default is 1.3.4") - logCmd.Flags().IntVarP(&duration, "duration", "d", 1, "count of days before today to fetch logs") - logCmd.Flags().BoolVar(&allVisors, "all", false, "consider all visors, actually skip filtering on version") + logCmd.Flags().IntVarP(&duration, "duration", "n", 1, "numberof days before today to fetch transport logs for") + logCmd.Flags().BoolVar(&allVisors, "all", false, "consider all visors ; no version filtering") logCmd.Flags().IntVar(&batchSize, "batchSize", 50, "number of visor in each batch, default is 50") - logCmd.Flags().Int64Var(&maxFileSize, "maxfilesize", 30, "maximum file size allowed to download during collecting logs, on KB") - logCmd.Flags().StringVar(&utAddr, "ut", "", "custom uptime tracker url, usable for get specific(s) visors log data") + logCmd.Flags().Int64Var(&maxFileSize, "maxfilesize", 30, "maximum file size allowed to download during collecting logs, in KB") + logCmd.Flags().StringVarP(&dmsgDisc, "dmsg-disc", "D", skyenv.DmsgDiscAddr, "dmsg discovery url\n") + logCmd.Flags().StringVarP(&utAddr, "ut", "u", "", "custom uptime tracker url") + if os.Getenv("DMSGGET_SK") != "" { + sk.Set(os.Getenv("DMSGGET_SK")) //nolint + } + logCmd.Flags().VarP(&sk, "sk", "s", "a random key is generated if unspecified\n\r") } // RootCmd is surveyCmd var RootCmd = logCmd var logCmd = &cobra.Command{ - Use: "log collecting", - Short: "collecting logs", - Long: "collecting logs from all visors to calculate rewards", + Use: "log", + Short: "survey & transport log collection", + Long: "collect surveys and transport logging from visors which are online in the uptime tracker", Run: func(cmd *cobra.Command, args []string) { log := logging.MustGetLogger("log-collecting") + if logOnly && surveyOnly { + log.Fatal("use of mutually exclusive flags --log and --survey") + } // Preparing directories if _, err := os.ReadDir("log_collecting"); err != nil { @@ -76,24 +93,29 @@ var logCmd = &cobra.Command{ cancel() os.Exit(1) }() - // Fetch visors data from uptime tracker - endpoint := "https://ut.skywire.skycoin.com/uptimes?v=v2" + // Set the uptime tracker to fetch data from + endpoint := skyenv.UptimeTrackerAddr + "/uptimes?v=v2" if env == "test" { - endpoint = "https://ut.skywire.dev/uptimes?v=v2" + endpoint = skyenv.TestUptimeTrackerAddr + "/uptimes?v=v2" } if utAddr != "" { endpoint = utAddr } + //Fetch the uptime data over http uptimes, err := getUptimes(endpoint, log) if err != nil { log.WithError(err).Panic("Unable to get data from uptime tracker.") } - //randomize the order of the fetching - prevents observed hanging + //randomize the order of the survey collection - workaround for hanging rand.Shuffle(len(uptimes), func(i, j int) { uptimes[i], uptimes[j] = uptimes[j], uptimes[i] }) // Create dmsg http client - pk, sk, _ := genKeys("") //nolint + pk, err := sk.PubKey() + if err != nil { + pk, sk = cipher.GenerateKeyPair() + } + dmsgC, closeDmsg, err := dg.StartDmsg(ctx, log, pk, sk) if err != nil { log.WithError(err).Panic(err) @@ -127,25 +149,33 @@ var logCmd = &cobra.Command{ } deleteOnError = true } - - err = download(ctx, log, httpC, "node-info.json", "node-info.json", key, maxFileSize) - if err != nil { - if deleteOnError { - bulkFolders = append(bulkFolders, key) + if !logOnly { + err = download(ctx, log, httpC, "node-info.json", "node-info.json", key, maxFileSize) + if err != nil { + // This logic saves time, however it potentially + // omits or deletes transport logs for visors + // that are not seeking rewards which we still should collect + // so it is made optional via flag + if deleteOnErrors { + if deleteOnError { + bulkFolders = append(bulkFolders, key) + } + return + } } - return } - if duration == 1 { - yesterday := time.Now().AddDate(0, 0, -1).UTC().Format("2006-01-02") - download(ctx, log, httpC, "transport_logs/"+yesterday+".csv", yesterday+".csv", key, maxFileSize) //nolint - } else { - for i := 1; i <= duration; i++ { - date := time.Now().AddDate(0, 0, -i).UTC().Format("2006-01-02") - download(ctx, log, httpC, "transport_logs/"+date+".csv", date+".csv", key, maxFileSize) //nolint + if !surveyOnly { + if duration == 1 { + yesterday := time.Now().AddDate(0, 0, -1).UTC().Format("2006-01-02") + download(ctx, log, httpC, "transport_logs/"+yesterday+".csv", yesterday+".csv", key, maxFileSize) //nolint + } else { + for i := 1; i <= duration; i++ { + date := time.Now().AddDate(0, 0, -i).UTC().Format("2006-01-02") + download(ctx, log, httpC, "transport_logs/"+date+".csv", date+".csv", key, maxFileSize) //nolint + } } } - }(v.PubKey, &wg) batchSize-- if batchSize == 0 { @@ -184,7 +214,6 @@ func getUptimes(endpoint string, log *logging.Logger) ([]VisorUptimeResponse, er log.Error("Error while fetching data from uptime service. Error: ", err) return results, errors.New("Cannot get Uptime data") } - defer response.Body.Close() //nolint body, err := io.ReadAll(response.Body) if err != nil { @@ -209,22 +238,10 @@ type VisorUptimeResponse struct { //nolint Version string `json:"version"` } -func genKeys(skStr string) (pk cipher.PubKey, sk cipher.SecKey, err error) { - if skStr == "" { - pk, sk = cipher.GenerateKeyPair() - return - } - if err = sk.Set(skStr); err != nil { - return - } - pk, err = sk.PubKey() - return -} - func getAllDMSGServers() []dmsgServer { var results []dmsgServer - response, err := http.Get("https://dmsgd.skywire.skycoin.com/dmsg-discovery/all_servers") //nolint + response, err := http.Get(dmsgDisc + "/dmsg-discovery/all_servers") //nolint if err != nil { return results } From f222f125462716cbf58f3eba3f746c187d2b0b2a Mon Sep 17 00:00:00 2001 From: Mohammed Date: Fri, 19 May 2023 00:21:10 +0330 Subject: [PATCH 42/62] fix stateName of vpn-client --- cmd/skywire-cli/commands/vpn/root.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/skywire-cli/commands/vpn/root.go b/cmd/skywire-cli/commands/vpn/root.go index b59de66419..3fd553e5be 100644 --- a/cmd/skywire-cli/commands/vpn/root.go +++ b/cmd/skywire-cli/commands/vpn/root.go @@ -9,7 +9,7 @@ import ( ) var ( - stateName = "vpn-clent" + stateName = "vpn-client" serviceType = servicedisc.ServiceTypeVPN servicePort = ":3" path string From c18f630421be60102b5a5649e040c19157718a66 Mon Sep 17 00:00:00 2001 From: Moses Narrow <36607567+0pcom@users.noreply.github.com> Date: Fri, 19 May 2023 11:02:58 -0500 Subject: [PATCH 43/62] Health check of log collection api prerequisite for survey & transport log collection (#1568) * optimizations for skywire-cli log * make format * fix variable name * remove unused func & minor change on help menu * add health check to skywire-cli log collection & add extra logging for dmsghttp logserver * add missing var * fix & improve dmsghttp logserver + api * make format * update vendor * print response status code because dmsgget is ignorant of it * add error checks --- cmd/skywire-cli/commands/log/root.go | 24 +- go.mod | 23 +- go.sum | 53 +- pkg/visor/logserver/api.go | 253 +- vendor/github.com/bytedance/sonic/.gitignore | 52 + vendor/github.com/bytedance/sonic/.gitmodules | 3 + .../bytedance/sonic/.licenserc.yaml | 24 + .../bytedance/sonic/CODE_OF_CONDUCT.md | 128 + .../bytedance/sonic/CONTRIBUTING.md | 63 + vendor/github.com/bytedance/sonic/CREDITS | 0 .../bytedance/sonic/INTRODUCTION.md | 48 + vendor/github.com/bytedance/sonic/LICENSE | 201 + vendor/github.com/bytedance/sonic/Makefile | 112 + vendor/github.com/bytedance/sonic/README.md | 359 + vendor/github.com/bytedance/sonic/api.go | 185 + .../bytedance/sonic/ast/api_amd64.go | 126 + .../bytedance/sonic/ast/api_compat.go | 102 + vendor/github.com/bytedance/sonic/ast/asm.s | 0 .../github.com/bytedance/sonic/ast/decode.go | 430 + .../github.com/bytedance/sonic/ast/encode.go | 259 + .../github.com/bytedance/sonic/ast/error.go | 98 + .../bytedance/sonic/ast/iterator.go | 164 + vendor/github.com/bytedance/sonic/ast/node.go | 1802 ++ .../github.com/bytedance/sonic/ast/parser.go | 618 + .../github.com/bytedance/sonic/ast/search.go | 30 + vendor/github.com/bytedance/sonic/ast/sort.go | 206 + .../bytedance/sonic/ast/stubs_go115.go | 55 + .../bytedance/sonic/ast/stubs_go120.go | 55 + .../github.com/bytedance/sonic/bench-arm.sh | 14 + .../bytedance/sonic/bench-large.png | Bin 0 -> 87463 bytes .../bytedance/sonic/bench-small.png | Bin 0 -> 87635 bytes vendor/github.com/bytedance/sonic/bench.py | 134 + vendor/github.com/bytedance/sonic/bench.sh | 27 + .../bytedance/sonic/check_branch_name.sh | 10 + vendor/github.com/bytedance/sonic/compat.go | 131 + .../github.com/bytedance/sonic/decoder/asm.s | 0 .../sonic/decoder/assembler_amd64_go116.go | 1943 ++ .../sonic/decoder/assembler_amd64_go117.go | 1922 ++ .../bytedance/sonic/decoder/compiler.go | 1136 ++ .../bytedance/sonic/decoder/debug.go | 70 + .../bytedance/sonic/decoder/decoder.go | 245 + .../bytedance/sonic/decoder/errors.go | 181 + .../sonic/decoder/generic_amd64_go116.go | 776 + .../sonic/decoder/generic_amd64_go117.go | 772 + .../sonic/decoder/generic_amd64_go117_test.s | 37 + .../sonic/decoder/generic_amd64_test.s | 37 + .../bytedance/sonic/decoder/pools.go | 143 + .../bytedance/sonic/decoder/primitives.go | 46 + .../bytedance/sonic/decoder/stream.go | 217 + .../bytedance/sonic/decoder/stubs_go115.go | 111 + .../bytedance/sonic/decoder/stubs_go120.go | 111 + .../bytedance/sonic/decoder/types.go | 58 + .../bytedance/sonic/decoder/utils.go | 39 + .../github.com/bytedance/sonic/encoder/asm.s | 0 .../sonic/encoder/assembler_amd64_go116.go | 1198 ++ .../sonic/encoder/assembler_amd64_go117.go | 1201 ++ .../bytedance/sonic/encoder/compiler.go | 885 + .../bytedance/sonic/encoder/debug_go116.go | 66 + .../bytedance/sonic/encoder/debug_go117.go | 205 + .../bytedance/sonic/encoder/encoder.go | 311 + .../bytedance/sonic/encoder/errors.go | 65 + .../bytedance/sonic/encoder/mapiter.go | 199 + .../bytedance/sonic/encoder/pools.go | 194 + .../bytedance/sonic/encoder/primitives.go | 168 + .../bytedance/sonic/encoder/sort.go | 206 + .../bytedance/sonic/encoder/stream.go | 84 + .../bytedance/sonic/encoder/stubs_go116.go | 65 + .../bytedance/sonic/encoder/stubs_go117.go | 66 + .../bytedance/sonic/encoder/stubs_go120.go | 66 + .../bytedance/sonic/encoder/types.go | 47 + .../bytedance/sonic/encoder/utils.go | 52 + vendor/github.com/bytedance/sonic/go.work | 8 + .../bytedance/sonic/internal/caching/asm.s | 0 .../sonic/internal/caching/fcache.go | 115 + .../sonic/internal/caching/hashing.go | 40 + .../sonic/internal/caching/pcache.go | 173 + .../bytedance/sonic/internal/cpu/features.go | 40 + .../sonic/internal/jit/arch_amd64.go | 67 + .../bytedance/sonic/internal/jit/asm.s | 0 .../sonic/internal/jit/assembler_amd64.go | 269 + .../bytedance/sonic/internal/jit/backend.go | 120 + .../bytedance/sonic/internal/jit/runtime.go | 54 + .../bytedance/sonic/internal/loader/asm.s | 0 .../sonic/internal/loader/funcdata.go | 124 + .../sonic/internal/loader/funcdata_go115.go | 169 + .../sonic/internal/loader/funcdata_go116.go | 175 + .../sonic/internal/loader/funcdata_go118.go | 201 + .../sonic/internal/loader/funcdata_go120.go | 201 + .../bytedance/sonic/internal/loader/loader.go | 74 + .../sonic/internal/loader/loader_windows.go | 111 + .../sonic/internal/native/avx/native_amd64.go | 135 + .../sonic/internal/native/avx/native_amd64.s | 15286 ++++++++++++++ .../native/avx/native_export_amd64.go | 49 + .../internal/native/avx/native_subr_amd64.go | 109 + .../internal/native/avx2/native_amd64.go | 135 + .../sonic/internal/native/avx2/native_amd64.s | 16629 ++++++++++++++++ .../native/avx2/native_export_amd64.go | 49 + .../internal/native/avx2/native_subr_amd64.go | 109 + .../sonic/internal/native/dispatch_amd64.go | 202 + .../sonic/internal/native/dispatch_amd64.s | 137 + .../internal/native/fastfloat_amd64_test.tmpl | 138 + .../internal/native/fastint_amd64_test.tmpl | 151 + .../sonic/internal/native/native_amd64.tmpl | 133 + .../internal/native/native_amd64_test.tmpl | 593 + .../internal/native/native_export_amd64.tmpl | 47 + .../sonic/internal/native/sse/native_amd64.go | 135 + .../sonic/internal/native/sse/native_amd64.s | 15078 ++++++++++++++ .../native/sse/native_export_amd64.go | 49 + .../internal/native/sse/native_subr_amd64.go | 109 + .../sonic/internal/native/types/types.go | 134 + .../bytedance/sonic/internal/resolver/asm.s | 0 .../sonic/internal/resolver/resolver.go | 214 + .../sonic/internal/resolver/stubs.go | 46 + .../bytedance/sonic/internal/rt/asm_amd64.s | 60 + .../bytedance/sonic/internal/rt/asm_arm64.s | 10 + .../bytedance/sonic/internal/rt/fastmem.go | 113 + .../bytedance/sonic/internal/rt/fastvalue.go | 200 + .../bytedance/sonic/internal/rt/gcwb.go | 124 + .../bytedance/sonic/internal/rt/int48.go | 36 + .../bytedance/sonic/internal/rt/stackmap.go | 180 + .../bytedance/sonic/introduction-1.png | Bin 0 -> 57447 bytes .../bytedance/sonic/introduction-2.png | Bin 0 -> 68075 bytes .../bytedance/sonic/loader/funcdata.go | 144 + .../bytedance/sonic/loader/funcdata_go115.go | 541 + .../bytedance/sonic/loader/funcdata_go118.go | 541 + .../bytedance/sonic/loader/funcdata_go120.go | 545 + .../bytedance/sonic/loader/loader.go | 37 + .../bytedance/sonic/loader/loader_go115.go | 33 + .../bytedance/sonic/loader/loader_go118.go | 104 + .../bytedance/sonic/loader/mmap_unix.go | 45 + .../bytedance/sonic/loader/mmap_windows.go | 84 + .../bytedance/sonic/loader/pcdata.go | 100 + .../bytedance/sonic/loader/stubs.go | 35 + .../bytedance/sonic/option/option.go | 78 + .../bytedance/sonic/other-langs.png | Bin 0 -> 96490 bytes vendor/github.com/bytedance/sonic/sonic.go | 161 + .../bytedance/sonic/unquote/unquote.go | 56 + .../github.com/bytedance/sonic/utf8/utf8.go | 71 + .../github.com/chenzhuoyu/base64x/.gitignore | 43 + .../github.com/chenzhuoyu/base64x/.gitmodules | 3 + vendor/github.com/chenzhuoyu/base64x/LICENSE | 201 + vendor/github.com/chenzhuoyu/base64x/Makefile | 28 + .../github.com/chenzhuoyu/base64x/README.md | 4 + .../github.com/chenzhuoyu/base64x/base64x.go | 157 + vendor/github.com/chenzhuoyu/base64x/cpuid.go | 17 + .../github.com/chenzhuoyu/base64x/faststr.go | 23 + .../chenzhuoyu/base64x/native_amd64.go | 16 + .../chenzhuoyu/base64x/native_amd64.s | 4416 ++++ .../chenzhuoyu/base64x/native_subr_amd64.go | 29 + vendor/github.com/gin-contrib/sse/.travis.yml | 26 + vendor/github.com/gin-contrib/sse/LICENSE | 21 + vendor/github.com/gin-contrib/sse/README.md | 58 + .../github.com/gin-contrib/sse/sse-decoder.go | 116 + .../github.com/gin-contrib/sse/sse-encoder.go | 110 + vendor/github.com/gin-contrib/sse/writer.go | 24 + vendor/github.com/gin-gonic/gin/.gitignore | 7 + vendor/github.com/gin-gonic/gin/.golangci.yml | 39 + .../github.com/gin-gonic/gin/.goreleaser.yaml | 57 + vendor/github.com/gin-gonic/gin/AUTHORS.md | 406 + vendor/github.com/gin-gonic/gin/BENCHMARKS.md | 666 + vendor/github.com/gin-gonic/gin/CHANGELOG.md | 564 + .../gin-gonic/gin/CODE_OF_CONDUCT.md | 46 + .../github.com/gin-gonic/gin/CONTRIBUTING.md | 13 + vendor/github.com/gin-gonic/gin/LICENSE | 21 + vendor/github.com/gin-gonic/gin/Makefile | 77 + vendor/github.com/gin-gonic/gin/README.md | 179 + vendor/github.com/gin-gonic/gin/any.go | 10 + vendor/github.com/gin-gonic/gin/auth.go | 91 + .../github.com/gin-gonic/gin/binding/any.go | 10 + .../gin-gonic/gin/binding/binding.go | 122 + .../gin/binding/binding_nomsgpack.go | 116 + .../gin/binding/default_validator.go | 97 + .../github.com/gin-gonic/gin/binding/form.go | 62 + .../gin-gonic/gin/binding/form_mapping.go | 403 + .../gin-gonic/gin/binding/header.go | 38 + .../github.com/gin-gonic/gin/binding/json.go | 56 + .../gin-gonic/gin/binding/msgpack.go | 38 + .../gin/binding/multipart_form_mapping.go | 74 + .../gin-gonic/gin/binding/protobuf.go | 41 + .../github.com/gin-gonic/gin/binding/query.go | 21 + .../github.com/gin-gonic/gin/binding/toml.go | 35 + .../github.com/gin-gonic/gin/binding/uri.go | 18 + .../github.com/gin-gonic/gin/binding/xml.go | 33 + .../github.com/gin-gonic/gin/binding/yaml.go | 35 + vendor/github.com/gin-gonic/gin/codecov.yml | 5 + vendor/github.com/gin-gonic/gin/context.go | 1220 ++ .../gin-gonic/gin/context_appengine.go | 12 + vendor/github.com/gin-gonic/gin/debug.go | 101 + vendor/github.com/gin-gonic/gin/deprecated.go | 21 + vendor/github.com/gin-gonic/gin/doc.go | 6 + vendor/github.com/gin-gonic/gin/errors.go | 175 + vendor/github.com/gin-gonic/gin/fs.go | 45 + vendor/github.com/gin-gonic/gin/gin.go | 711 + .../gin/internal/bytesconv/bytesconv.go | 24 + .../gin-gonic/gin/internal/json/go_json.go | 23 + .../gin-gonic/gin/internal/json/json.go | 25 + .../gin-gonic/gin/internal/json/jsoniter.go | 24 + .../gin-gonic/gin/internal/json/sonic.go | 27 + vendor/github.com/gin-gonic/gin/logger.go | 270 + vendor/github.com/gin-gonic/gin/mode.go | 100 + vendor/github.com/gin-gonic/gin/path.go | 150 + vendor/github.com/gin-gonic/gin/recovery.go | 174 + vendor/github.com/gin-gonic/gin/render/any.go | 10 + .../github.com/gin-gonic/gin/render/data.go | 25 + .../github.com/gin-gonic/gin/render/html.go | 92 + .../github.com/gin-gonic/gin/render/json.go | 190 + .../gin-gonic/gin/render/msgpack.go | 44 + .../gin-gonic/gin/render/protobuf.go | 36 + .../github.com/gin-gonic/gin/render/reader.go | 48 + .../gin-gonic/gin/render/redirect.go | 29 + .../github.com/gin-gonic/gin/render/render.go | 41 + .../github.com/gin-gonic/gin/render/text.go | 41 + .../github.com/gin-gonic/gin/render/toml.go | 36 + vendor/github.com/gin-gonic/gin/render/xml.go | 28 + .../github.com/gin-gonic/gin/render/yaml.go | 36 + .../gin-gonic/gin/response_writer.go | 131 + .../github.com/gin-gonic/gin/routergroup.go | 259 + .../github.com/gin-gonic/gin/test_helpers.go | 24 + vendor/github.com/gin-gonic/gin/tree.go | 878 + vendor/github.com/gin-gonic/gin/utils.go | 164 + vendor/github.com/gin-gonic/gin/version.go | 8 + .../go-playground/locales/.gitignore | 24 + .../go-playground/locales/.travis.yml | 26 + .../github.com/go-playground/locales/LICENSE | 21 + .../go-playground/locales/README.md | 170 + .../locales/currency/currency.go | 311 + .../github.com/go-playground/locales/logo.png | Bin 0 -> 37360 bytes .../github.com/go-playground/locales/rules.go | 293 + .../universal-translator/.gitignore | 25 + .../universal-translator/.travis.yml | 27 + .../universal-translator/LICENSE | 21 + .../universal-translator/Makefile | 18 + .../universal-translator/README.md | 87 + .../universal-translator/errors.go | 148 + .../universal-translator/import_export.go | 274 + .../universal-translator/logo.png | Bin 0 -> 16598 bytes .../universal-translator/translator.go | 420 + .../universal_translator.go | 113 + .../go-playground/validator/v10/.gitignore | 31 + .../go-playground/validator/v10/LICENSE | 22 + .../validator/v10/MAINTAINERS.md | 16 + .../go-playground/validator/v10/Makefile | 18 + .../go-playground/validator/v10/README.md | 338 + .../go-playground/validator/v10/baked_in.go | 2526 +++ .../go-playground/validator/v10/cache.go | 327 + .../validator/v10/country_codes.go | 1132 ++ .../validator/v10/currency_codes.go | 79 + .../go-playground/validator/v10/doc.go | 1401 ++ .../go-playground/validator/v10/errors.go | 275 + .../validator/v10/field_level.go | 120 + .../go-playground/validator/v10/logo.png | Bin 0 -> 13443 bytes .../validator/v10/postcode_regexes.go | 173 + .../go-playground/validator/v10/regexes.go | 131 + .../validator/v10/struct_level.go | 175 + .../validator/v10/translations.go | 11 + .../go-playground/validator/v10/util.go | 288 + .../go-playground/validator/v10/validator.go | 486 + .../validator/v10/validator_instance.go | 699 + vendor/github.com/goccy/go-json/.codecov.yml | 32 + vendor/github.com/goccy/go-json/.gitignore | 2 + vendor/github.com/goccy/go-json/.golangci.yml | 83 + vendor/github.com/goccy/go-json/CHANGELOG.md | 393 + vendor/github.com/goccy/go-json/LICENSE | 21 + vendor/github.com/goccy/go-json/Makefile | 39 + vendor/github.com/goccy/go-json/README.md | 529 + vendor/github.com/goccy/go-json/color.go | 68 + vendor/github.com/goccy/go-json/decode.go | 263 + .../goccy/go-json/docker-compose.yml | 13 + vendor/github.com/goccy/go-json/encode.go | 326 + vendor/github.com/goccy/go-json/error.go | 41 + .../internal/decoder/anonymous_field.go | 41 + .../goccy/go-json/internal/decoder/array.go | 174 + .../goccy/go-json/internal/decoder/assign.go | 438 + .../goccy/go-json/internal/decoder/bool.go | 83 + .../goccy/go-json/internal/decoder/bytes.go | 118 + .../goccy/go-json/internal/decoder/compile.go | 487 + .../internal/decoder/compile_norace.go | 29 + .../go-json/internal/decoder/compile_race.go | 37 + .../goccy/go-json/internal/decoder/context.go | 254 + .../goccy/go-json/internal/decoder/float.go | 170 + .../goccy/go-json/internal/decoder/func.go | 146 + .../goccy/go-json/internal/decoder/int.go | 246 + .../go-json/internal/decoder/interface.go | 528 + .../goccy/go-json/internal/decoder/invalid.go | 55 + .../goccy/go-json/internal/decoder/map.go | 280 + .../goccy/go-json/internal/decoder/number.go | 123 + .../goccy/go-json/internal/decoder/option.go | 17 + .../goccy/go-json/internal/decoder/path.go | 670 + .../goccy/go-json/internal/decoder/ptr.go | 96 + .../goccy/go-json/internal/decoder/slice.go | 380 + .../goccy/go-json/internal/decoder/stream.go | 556 + .../goccy/go-json/internal/decoder/string.go | 452 + .../goccy/go-json/internal/decoder/struct.go | 823 + .../goccy/go-json/internal/decoder/type.go | 30 + .../goccy/go-json/internal/decoder/uint.go | 194 + .../internal/decoder/unmarshal_json.go | 104 + .../internal/decoder/unmarshal_text.go | 285 + .../internal/decoder/wrapped_string.go | 73 + .../goccy/go-json/internal/encoder/code.go | 1017 + .../goccy/go-json/internal/encoder/compact.go | 286 + .../go-json/internal/encoder/compiler.go | 928 + .../internal/encoder/compiler_norace.go | 32 + .../go-json/internal/encoder/compiler_race.go | 45 + .../goccy/go-json/internal/encoder/context.go | 105 + .../go-json/internal/encoder/decode_rune.go | 126 + .../goccy/go-json/internal/encoder/encoder.go | 596 + .../goccy/go-json/internal/encoder/indent.go | 211 + .../goccy/go-json/internal/encoder/int.go | 152 + .../goccy/go-json/internal/encoder/map112.go | 9 + .../goccy/go-json/internal/encoder/map113.go | 9 + .../goccy/go-json/internal/encoder/opcode.go | 669 + .../goccy/go-json/internal/encoder/option.go | 47 + .../goccy/go-json/internal/encoder/optype.go | 932 + .../goccy/go-json/internal/encoder/query.go | 135 + .../goccy/go-json/internal/encoder/string.go | 459 + .../go-json/internal/encoder/string_table.go | 415 + .../go-json/internal/encoder/vm/debug_vm.go | 35 + .../goccy/go-json/internal/encoder/vm/hack.go | 9 + .../goccy/go-json/internal/encoder/vm/util.go | 207 + .../goccy/go-json/internal/encoder/vm/vm.go | 4859 +++++ .../internal/encoder/vm_color/debug_vm.go | 35 + .../go-json/internal/encoder/vm_color/hack.go | 9 + .../go-json/internal/encoder/vm_color/util.go | 274 + .../go-json/internal/encoder/vm_color/vm.go | 4859 +++++ .../encoder/vm_color_indent/debug_vm.go | 35 + .../internal/encoder/vm_color_indent/util.go | 296 + .../internal/encoder/vm_color_indent/vm.go | 4859 +++++ .../internal/encoder/vm_indent/debug_vm.go | 35 + .../internal/encoder/vm_indent/hack.go | 9 + .../internal/encoder/vm_indent/util.go | 229 + .../go-json/internal/encoder/vm_indent/vm.go | 4859 +++++ .../goccy/go-json/internal/errors/error.go | 183 + .../goccy/go-json/internal/runtime/rtype.go | 263 + .../go-json/internal/runtime/struct_field.go | 91 + .../goccy/go-json/internal/runtime/type.go | 100 + vendor/github.com/goccy/go-json/json.go | 371 + vendor/github.com/goccy/go-json/option.go | 72 + vendor/github.com/goccy/go-json/path.go | 84 + vendor/github.com/goccy/go-json/query.go | 47 + .../github.com/klauspost/cpuid/v2/.gitignore | 24 + .../klauspost/cpuid/v2/.goreleaser.yml | 74 + .../klauspost/cpuid/v2/CONTRIBUTING.txt | 35 + vendor/github.com/klauspost/cpuid/v2/LICENSE | 22 + .../github.com/klauspost/cpuid/v2/README.md | 258 + vendor/github.com/klauspost/cpuid/v2/cpuid.go | 1262 ++ .../github.com/klauspost/cpuid/v2/cpuid_386.s | 47 + .../klauspost/cpuid/v2/cpuid_amd64.s | 72 + .../klauspost/cpuid/v2/cpuid_arm64.s | 26 + .../klauspost/cpuid/v2/detect_arm64.go | 247 + .../klauspost/cpuid/v2/detect_ref.go | 15 + .../klauspost/cpuid/v2/detect_x86.go | 36 + .../klauspost/cpuid/v2/featureid_string.go | 233 + .../klauspost/cpuid/v2/os_darwin_arm64.go | 121 + .../klauspost/cpuid/v2/os_linux_arm64.go | 130 + .../klauspost/cpuid/v2/os_other_arm64.go | 16 + .../klauspost/cpuid/v2/os_safe_linux_arm64.go | 8 + .../cpuid/v2/os_unsafe_linux_arm64.go | 11 + .../klauspost/cpuid/v2/test-architectures.sh | 15 + vendor/github.com/leodido/go-urn/.gitignore | 11 + vendor/github.com/leodido/go-urn/.travis.yml | 16 + vendor/github.com/leodido/go-urn/LICENSE | 21 + vendor/github.com/leodido/go-urn/README.md | 55 + vendor/github.com/leodido/go-urn/machine.go | 1691 ++ .../github.com/leodido/go-urn/machine.go.rl | 159 + vendor/github.com/leodido/go-urn/makefile | 39 + vendor/github.com/leodido/go-urn/urn.go | 86 + .../github.com/mattn/go-isatty/isatty_bsd.go | 4 +- .../pelletier/go-toml/v2/.dockerignore | 2 + .../pelletier/go-toml/v2/.gitattributes | 4 + .../pelletier/go-toml/v2/.gitignore | 6 + .../pelletier/go-toml/v2/.golangci.toml | 84 + .../pelletier/go-toml/v2/.goreleaser.yaml | 123 + .../pelletier/go-toml/v2/CONTRIBUTING.md | 196 + .../pelletier/go-toml/v2/Dockerfile | 5 + .../github.com/pelletier/go-toml/v2/LICENSE | 21 + .../github.com/pelletier/go-toml/v2/README.md | 563 + .../pelletier/go-toml/v2/SECURITY.md | 19 + vendor/github.com/pelletier/go-toml/v2/ci.sh | 279 + .../github.com/pelletier/go-toml/v2/decode.go | 550 + vendor/github.com/pelletier/go-toml/v2/doc.go | 2 + .../github.com/pelletier/go-toml/v2/errors.go | 252 + .../go-toml/v2/internal/characters/ascii.go | 42 + .../go-toml/v2/internal/characters/utf8.go | 199 + .../go-toml/v2/internal/danger/danger.go | 65 + .../go-toml/v2/internal/danger/typeid.go | 23 + .../go-toml/v2/internal/tracker/key.go | 48 + .../go-toml/v2/internal/tracker/seen.go | 356 + .../go-toml/v2/internal/tracker/tracker.go | 1 + .../pelletier/go-toml/v2/localtime.go | 122 + .../pelletier/go-toml/v2/marshaler.go | 1042 + .../github.com/pelletier/go-toml/v2/strict.go | 107 + .../github.com/pelletier/go-toml/v2/toml.abnf | 243 + .../github.com/pelletier/go-toml/v2/types.go | 14 + .../pelletier/go-toml/v2/unmarshaler.go | 1227 ++ .../pelletier/go-toml/v2/unstable/ast.go | 136 + .../pelletier/go-toml/v2/unstable/builder.go | 71 + .../pelletier/go-toml/v2/unstable/doc.go | 3 + .../pelletier/go-toml/v2/unstable/kind.go | 71 + .../pelletier/go-toml/v2/unstable/parser.go | 1147 ++ .../pelletier/go-toml/v2/unstable/scanner.go | 271 + vendor/github.com/stretchr/objx/Taskfile.yml | 2 +- .../twitchyliquid64/golang-asm/LICENSE | 27 + .../golang-asm/asm/arch/arch.go | 716 + .../golang-asm/asm/arch/arm.go | 257 + .../golang-asm/asm/arch/arm64.go | 350 + .../golang-asm/asm/arch/mips.go | 72 + .../golang-asm/asm/arch/ppc64.go | 102 + .../golang-asm/asm/arch/riscv64.go | 28 + .../golang-asm/asm/arch/s390x.go | 81 + .../twitchyliquid64/golang-asm/bio/buf.go | 148 + .../golang-asm/bio/buf_mmap.go | 62 + .../golang-asm/bio/buf_nommap.go | 11 + .../twitchyliquid64/golang-asm/bio/must.go | 43 + .../twitchyliquid64/golang-asm/dwarf/dwarf.go | 1650 ++ .../golang-asm/dwarf/dwarf_defs.go | 493 + .../golang-asm/goobj/builtin.go | 45 + .../golang-asm/goobj/builtinlist.go | 245 + .../golang-asm/goobj/funcinfo.go | 233 + .../golang-asm/goobj/objfile.go | 871 + .../golang-asm/obj/abi_string.go | 16 + .../golang-asm/obj/addrtype_string.go | 16 + .../golang-asm/obj/arm/a.out.go | 410 + .../golang-asm/obj/arm/anames.go | 144 + .../golang-asm/obj/arm/anames5.go | 77 + .../golang-asm/obj/arm/asm5.go | 3096 +++ .../golang-asm/obj/arm/list5.go | 124 + .../golang-asm/obj/arm/obj5.go | 784 + .../golang-asm/obj/arm64/a.out.go | 1033 + .../golang-asm/obj/arm64/anames.go | 512 + .../golang-asm/obj/arm64/anames7.go | 100 + .../golang-asm/obj/arm64/asm7.go | 7140 +++++++ .../golang-asm/obj/arm64/doc.go | 249 + .../golang-asm/obj/arm64/list7.go | 288 + .../golang-asm/obj/arm64/obj7.go | 998 + .../golang-asm/obj/arm64/sysRegEnc.go | 895 + .../twitchyliquid64/golang-asm/obj/data.go | 200 + .../twitchyliquid64/golang-asm/obj/dwarf.go | 690 + .../twitchyliquid64/golang-asm/obj/go.go | 16 + .../twitchyliquid64/golang-asm/obj/inl.go | 131 + .../twitchyliquid64/golang-asm/obj/ld.go | 85 + .../twitchyliquid64/golang-asm/obj/line.go | 30 + .../twitchyliquid64/golang-asm/obj/link.go | 771 + .../golang-asm/obj/mips/a.out.go | 481 + .../golang-asm/obj/mips/anames.go | 135 + .../golang-asm/obj/mips/anames0.go | 45 + .../golang-asm/obj/mips/asm0.go | 2108 ++ .../golang-asm/obj/mips/list0.go | 83 + .../golang-asm/obj/mips/obj0.go | 1457 ++ .../twitchyliquid64/golang-asm/obj/objfile.go | 755 + .../twitchyliquid64/golang-asm/obj/pass.go | 176 + .../twitchyliquid64/golang-asm/obj/pcln.go | 413 + .../twitchyliquid64/golang-asm/obj/plist.go | 314 + .../golang-asm/obj/ppc64/a.out.go | 1032 + .../golang-asm/obj/ppc64/anames.go | 615 + .../golang-asm/obj/ppc64/anames9.go | 51 + .../golang-asm/obj/ppc64/asm9.go | 5367 +++++ .../golang-asm/obj/ppc64/doc.go | 244 + .../golang-asm/obj/ppc64/list9.go | 104 + .../golang-asm/obj/ppc64/obj9.go | 1278 ++ .../golang-asm/obj/riscv/anames.go | 258 + .../golang-asm/obj/riscv/cpu.go | 644 + .../golang-asm/obj/riscv/inst.go | 459 + .../golang-asm/obj/riscv/list.go | 33 + .../golang-asm/obj/riscv/obj.go | 1999 ++ .../golang-asm/obj/s390x/a.out.go | 1003 + .../golang-asm/obj/s390x/anames.go | 720 + .../golang-asm/obj/s390x/anamesz.go | 39 + .../golang-asm/obj/s390x/asmz.go | 5043 +++++ .../golang-asm/obj/s390x/condition_code.go | 126 + .../golang-asm/obj/s390x/listz.go | 73 + .../golang-asm/obj/s390x/objz.go | 735 + .../golang-asm/obj/s390x/rotate.go | 47 + .../golang-asm/obj/s390x/vector.go | 1069 + .../twitchyliquid64/golang-asm/obj/sym.go | 421 + .../golang-asm/obj/textflag.go | 54 + .../twitchyliquid64/golang-asm/obj/util.go | 598 + .../golang-asm/obj/wasm/a.out.go | 331 + .../golang-asm/obj/wasm/anames.go | 208 + .../golang-asm/obj/wasm/wasmobj.go | 1185 ++ .../golang-asm/obj/x86/a.out.go | 423 + .../golang-asm/obj/x86/aenum.go | 1609 ++ .../golang-asm/obj/x86/anames.go | 1607 ++ .../golang-asm/obj/x86/asm6.go | 5446 +++++ .../golang-asm/obj/x86/avx_optabs.go | 4628 +++++ .../golang-asm/obj/x86/evex.go | 382 + .../golang-asm/obj/x86/list6.go | 264 + .../golang-asm/obj/x86/obj6.go | 1261 ++ .../golang-asm/obj/x86/ytab.go | 44 + .../golang-asm/objabi/autotype.go | 38 + .../twitchyliquid64/golang-asm/objabi/flag.go | 162 + .../golang-asm/objabi/funcdata.go | 54 + .../golang-asm/objabi/funcid.go | 100 + .../twitchyliquid64/golang-asm/objabi/head.go | 109 + .../twitchyliquid64/golang-asm/objabi/line.go | 114 + .../twitchyliquid64/golang-asm/objabi/path.go | 41 + .../golang-asm/objabi/reloctype.go | 269 + .../golang-asm/objabi/reloctype_string.go | 17 + .../golang-asm/objabi/stack.go | 33 + .../golang-asm/objabi/symkind.go | 79 + .../golang-asm/objabi/symkind_string.go | 41 + .../golang-asm/objabi/typekind.go | 40 + .../twitchyliquid64/golang-asm/objabi/util.go | 203 + .../twitchyliquid64/golang-asm/src/pos.go | 470 + .../twitchyliquid64/golang-asm/src/xpos.go | 176 + .../twitchyliquid64/golang-asm/sys/arch.go | 187 + .../golang-asm/sys/supported.go | 116 + .../golang-asm/unsafeheader/unsafeheader.go | 37 + .../ugorji/go/codec/0_importpath.go | 7 + vendor/github.com/ugorji/go/codec/LICENSE | 22 + vendor/github.com/ugorji/go/codec/README.md | 284 + vendor/github.com/ugorji/go/codec/binc.go | 1319 ++ vendor/github.com/ugorji/go/codec/build.sh | 370 + vendor/github.com/ugorji/go/codec/cbor.go | 957 + vendor/github.com/ugorji/go/codec/codecgen.go | 17 + vendor/github.com/ugorji/go/codec/decimal.go | 499 + vendor/github.com/ugorji/go/codec/decode.go | 2376 +++ vendor/github.com/ugorji/go/codec/doc.go | 227 + vendor/github.com/ugorji/go/codec/encode.go | 1524 ++ .../ugorji/go/codec/fast-path.generated.go | 6157 ++++++ .../ugorji/go/codec/fast-path.go.tmpl | 555 + .../ugorji/go/codec/fast-path.not.go | 41 + .../ugorji/go/codec/gen-dec-array.go.tmpl | 90 + .../ugorji/go/codec/gen-dec-map.go.tmpl | 58 + .../ugorji/go/codec/gen-enc-chan.go.tmpl | 27 + .../ugorji/go/codec/gen-helper.generated.go | 294 + .../ugorji/go/codec/gen-helper.go.tmpl | 273 + .../ugorji/go/codec/gen.generated.go | 192 + vendor/github.com/ugorji/go/codec/gen.go | 2876 +++ .../go/codec/goversion_arrayof_gte_go15.go | 15 + .../go/codec/goversion_arrayof_lt_go15.go | 20 + .../go/codec/goversion_fmt_time_gte_go15.go | 13 + .../go/codec/goversion_fmt_time_lt_go15.go | 16 + .../goversion_growslice_unsafe_gte_go120.go | 28 + .../goversion_growslice_unsafe_lt_go120.go | 16 + .../go/codec/goversion_makemap_lt_go110.go | 13 + .../goversion_makemap_not_unsafe_gte_go110.go | 14 + .../goversion_makemap_unsafe_gte_go110.go | 25 + .../go/codec/goversion_maprange_gte_go112.go | 41 + .../go/codec/goversion_maprange_lt_go112.go | 45 + ...version_unexportedembeddedptr_gte_go110.go | 9 + ...oversion_unexportedembeddedptr_lt_go110.go | 9 + .../go/codec/goversion_unsupported_lt_go14.go | 22 + .../go/codec/goversion_vendor_eq_go15.go | 11 + .../go/codec/goversion_vendor_eq_go16.go | 11 + .../go/codec/goversion_vendor_gte_go17.go | 9 + .../go/codec/goversion_vendor_lt_go15.go | 9 + vendor/github.com/ugorji/go/codec/helper.go | 3021 +++ vendor/github.com/ugorji/go/codec/helper.s | 0 .../ugorji/go/codec/helper_internal.go | 147 + .../ugorji/go/codec/helper_not_unsafe.go | 706 + .../go/codec/helper_not_unsafe_not_gc.go | 21 + .../ugorji/go/codec/helper_unsafe.go | 1350 ++ .../go/codec/helper_unsafe_compiler_gc.go | 169 + .../go/codec/helper_unsafe_compiler_not_gc.go | 80 + vendor/github.com/ugorji/go/codec/json.go | 1460 ++ .../ugorji/go/codec/mammoth-test.go.tmpl | 235 + .../ugorji/go/codec/mammoth2-test.go.tmpl | 101 + vendor/github.com/ugorji/go/codec/msgpack.go | 1237 ++ vendor/github.com/ugorji/go/codec/reader.go | 607 + .../ugorji/go/codec/register_ext.go | 38 + vendor/github.com/ugorji/go/codec/rpc.go | 234 + vendor/github.com/ugorji/go/codec/simple.go | 750 + .../ugorji/go/codec/sort-slice.generated.go | 148 + .../ugorji/go/codec/sort-slice.go.tmpl | 68 + .../ugorji/go/codec/test-cbor-goldens.json | 639 + vendor/github.com/ugorji/go/codec/test.py | 138 + vendor/github.com/ugorji/go/codec/writer.go | 324 + vendor/golang.org/x/arch/AUTHORS | 3 + vendor/golang.org/x/arch/CONTRIBUTORS | 3 + vendor/golang.org/x/arch/LICENSE | 27 + vendor/golang.org/x/arch/PATENTS | 22 + vendor/golang.org/x/arch/x86/x86asm/Makefile | 3 + vendor/golang.org/x/arch/x86/x86asm/decode.go | 1724 ++ vendor/golang.org/x/arch/x86/x86asm/gnu.go | 956 + vendor/golang.org/x/arch/x86/x86asm/inst.go | 649 + vendor/golang.org/x/arch/x86/x86asm/intel.go | 560 + vendor/golang.org/x/arch/x86/x86asm/plan9x.go | 382 + vendor/golang.org/x/arch/x86/x86asm/tables.go | 9925 +++++++++ vendor/golang.org/x/crypto/cast5/cast5.go | 11 +- .../x/crypto/salsa20/salsa/hsalsa20.go | 66 +- .../x/crypto/salsa20/salsa/salsa208.go | 66 +- .../x/crypto/salsa20/salsa/salsa20_ref.go | 66 +- vendor/golang.org/x/crypto/sha3/doc.go | 62 + vendor/golang.org/x/crypto/sha3/hashes.go | 97 + .../x/crypto/sha3/hashes_generic.go | 28 + vendor/golang.org/x/crypto/sha3/keccakf.go | 415 + .../golang.org/x/crypto/sha3/keccakf_amd64.go | 14 + .../golang.org/x/crypto/sha3/keccakf_amd64.s | 391 + vendor/golang.org/x/crypto/sha3/register.go | 19 + vendor/golang.org/x/crypto/sha3/sha3.go | 193 + vendor/golang.org/x/crypto/sha3/sha3_s390x.go | 287 + vendor/golang.org/x/crypto/sha3/sha3_s390x.s | 34 + vendor/golang.org/x/crypto/sha3/shake.go | 173 + .../golang.org/x/crypto/sha3/shake_generic.go | 20 + vendor/golang.org/x/crypto/sha3/xor.go | 24 + .../golang.org/x/crypto/sha3/xor_generic.go | 28 + .../golang.org/x/crypto/sha3/xor_unaligned.go | 68 + vendor/golang.org/x/crypto/twofish/twofish.go | 35 +- vendor/golang.org/x/net/http/httpguts/guts.go | 50 + .../golang.org/x/net/http/httpguts/httplex.go | 352 + vendor/golang.org/x/net/http2/.gitignore | 2 + vendor/golang.org/x/net/http2/Dockerfile | 51 + vendor/golang.org/x/net/http2/Makefile | 3 + vendor/golang.org/x/net/http2/ascii.go | 53 + vendor/golang.org/x/net/http2/ciphers.go | 641 + .../x/net/http2/client_conn_pool.go | 311 + vendor/golang.org/x/net/http2/databuffer.go | 146 + vendor/golang.org/x/net/http2/errors.go | 145 + vendor/golang.org/x/net/http2/flow.go | 120 + vendor/golang.org/x/net/http2/frame.go | 1658 ++ vendor/golang.org/x/net/http2/go111.go | 30 + vendor/golang.org/x/net/http2/go115.go | 27 + vendor/golang.org/x/net/http2/go118.go | 17 + vendor/golang.org/x/net/http2/gotrack.go | 170 + vendor/golang.org/x/net/http2/h2c/h2c.go | 240 + vendor/golang.org/x/net/http2/headermap.go | 105 + vendor/golang.org/x/net/http2/hpack/encode.go | 245 + vendor/golang.org/x/net/http2/hpack/hpack.go | 523 + .../golang.org/x/net/http2/hpack/huffman.go | 226 + .../x/net/http2/hpack/static_table.go | 188 + vendor/golang.org/x/net/http2/hpack/tables.go | 403 + vendor/golang.org/x/net/http2/http2.go | 385 + vendor/golang.org/x/net/http2/not_go111.go | 21 + vendor/golang.org/x/net/http2/not_go115.go | 31 + vendor/golang.org/x/net/http2/not_go118.go | 17 + vendor/golang.org/x/net/http2/pipe.go | 179 + vendor/golang.org/x/net/http2/server.go | 3238 +++ vendor/golang.org/x/net/http2/transport.go | 3152 +++ vendor/golang.org/x/net/http2/write.go | 370 + vendor/golang.org/x/net/http2/writesched.go | 250 + .../x/net/http2/writesched_priority.go | 451 + .../x/net/http2/writesched_random.go | 77 + vendor/golang.org/x/net/idna/go118.go | 14 + vendor/golang.org/x/net/idna/idna10.0.0.go | 770 + vendor/golang.org/x/net/idna/idna9.0.0.go | 718 + vendor/golang.org/x/net/idna/pre_go118.go | 12 + vendor/golang.org/x/net/idna/punycode.go | 217 + vendor/golang.org/x/net/idna/tables10.0.0.go | 4560 +++++ vendor/golang.org/x/net/idna/tables11.0.0.go | 4654 +++++ vendor/golang.org/x/net/idna/tables12.0.0.go | 4734 +++++ vendor/golang.org/x/net/idna/tables13.0.0.go | 4840 +++++ vendor/golang.org/x/net/idna/tables9.0.0.go | 4487 +++++ vendor/golang.org/x/net/idna/trie.go | 72 + vendor/golang.org/x/net/idna/trieval.go | 119 + .../x/text/secure/bidirule/bidirule.go | 336 + .../x/text/secure/bidirule/bidirule10.0.0.go | 12 + .../x/text/secure/bidirule/bidirule9.0.0.go | 15 + vendor/golang.org/x/text/unicode/bidi/bidi.go | 359 + .../golang.org/x/text/unicode/bidi/bracket.go | 335 + vendor/golang.org/x/text/unicode/bidi/core.go | 1071 + vendor/golang.org/x/text/unicode/bidi/prop.go | 206 + .../x/text/unicode/bidi/tables10.0.0.go | 1816 ++ .../x/text/unicode/bidi/tables11.0.0.go | 1888 ++ .../x/text/unicode/bidi/tables12.0.0.go | 1924 ++ .../x/text/unicode/bidi/tables13.0.0.go | 1956 ++ .../x/text/unicode/bidi/tables9.0.0.go | 1782 ++ .../golang.org/x/text/unicode/bidi/trieval.go | 48 + vendor/google.golang.org/protobuf/LICENSE | 27 + vendor/google.golang.org/protobuf/PATENTS | 22 + .../protobuf/encoding/protowire/wire.go | 551 + .../protobuf/internal/detrand/rand.go | 69 + .../encoding/messageset/messageset.go | 242 + .../protobuf/internal/errors/errors.go | 89 + .../protobuf/internal/errors/is_go112.go | 40 + .../protobuf/internal/errors/is_go113.go | 13 + .../protobuf/internal/flags/flags.go | 24 + .../internal/flags/proto_legacy_disable.go | 10 + .../internal/flags/proto_legacy_enable.go | 10 + .../protobuf/internal/genid/any_gen.go | 34 + .../protobuf/internal/genid/api_gen.go | 106 + .../protobuf/internal/genid/descriptor_gen.go | 829 + .../protobuf/internal/genid/doc.go | 11 + .../protobuf/internal/genid/duration_gen.go | 34 + .../protobuf/internal/genid/empty_gen.go | 19 + .../protobuf/internal/genid/field_mask_gen.go | 31 + .../protobuf/internal/genid/goname.go | 25 + .../protobuf/internal/genid/map_entry.go | 16 + .../internal/genid/source_context_gen.go | 31 + .../protobuf/internal/genid/struct_gen.go | 116 + .../protobuf/internal/genid/timestamp_gen.go | 34 + .../protobuf/internal/genid/type_gen.go | 184 + .../protobuf/internal/genid/wrappers.go | 13 + .../protobuf/internal/genid/wrappers_gen.go | 175 + .../protobuf/internal/order/order.go | 89 + .../protobuf/internal/order/range.go | 115 + .../protobuf/internal/pragma/pragma.go | 29 + .../protobuf/internal/strs/strings.go | 196 + .../protobuf/internal/strs/strings_pure.go | 28 + .../protobuf/internal/strs/strings_unsafe.go | 95 + .../protobuf/proto/checkinit.go | 71 + .../protobuf/proto/decode.go | 294 + .../protobuf/proto/decode_gen.go | 603 + .../google.golang.org/protobuf/proto/doc.go | 89 + .../protobuf/proto/encode.go | 322 + .../protobuf/proto/encode_gen.go | 97 + .../google.golang.org/protobuf/proto/equal.go | 171 + .../protobuf/proto/extension.go | 92 + .../google.golang.org/protobuf/proto/merge.go | 139 + .../protobuf/proto/messageset.go | 93 + .../google.golang.org/protobuf/proto/proto.go | 43 + .../protobuf/proto/proto_methods.go | 20 + .../protobuf/proto/proto_reflect.go | 20 + .../google.golang.org/protobuf/proto/reset.go | 43 + .../google.golang.org/protobuf/proto/size.go | 97 + .../protobuf/proto/size_gen.go | 55 + .../protobuf/proto/wrappers.go | 29 + .../protobuf/reflect/protoreflect/methods.go | 78 + .../protobuf/reflect/protoreflect/proto.go | 508 + .../protobuf/reflect/protoreflect/source.go | 129 + .../reflect/protoreflect/source_gen.go | 461 + .../protobuf/reflect/protoreflect/type.go | 666 + .../protobuf/reflect/protoreflect/value.go | 285 + .../reflect/protoreflect/value_pure.go | 60 + .../reflect/protoreflect/value_union.go | 438 + .../reflect/protoreflect/value_unsafe.go | 99 + .../reflect/protoregistry/registry.go | 882 + .../protobuf/runtime/protoiface/legacy.go | 15 + .../protobuf/runtime/protoiface/methods.go | 168 + vendor/modules.txt | 126 +- 719 files changed, 323754 insertions(+), 240 deletions(-) create mode 100644 vendor/github.com/bytedance/sonic/.gitignore create mode 100644 vendor/github.com/bytedance/sonic/.gitmodules create mode 100644 vendor/github.com/bytedance/sonic/.licenserc.yaml create mode 100644 vendor/github.com/bytedance/sonic/CODE_OF_CONDUCT.md create mode 100644 vendor/github.com/bytedance/sonic/CONTRIBUTING.md create mode 100644 vendor/github.com/bytedance/sonic/CREDITS create mode 100644 vendor/github.com/bytedance/sonic/INTRODUCTION.md create mode 100644 vendor/github.com/bytedance/sonic/LICENSE create mode 100644 vendor/github.com/bytedance/sonic/Makefile create mode 100644 vendor/github.com/bytedance/sonic/README.md create mode 100644 vendor/github.com/bytedance/sonic/api.go create mode 100644 vendor/github.com/bytedance/sonic/ast/api_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/ast/api_compat.go create mode 100644 vendor/github.com/bytedance/sonic/ast/asm.s create mode 100644 vendor/github.com/bytedance/sonic/ast/decode.go create mode 100644 vendor/github.com/bytedance/sonic/ast/encode.go create mode 100644 vendor/github.com/bytedance/sonic/ast/error.go create mode 100644 vendor/github.com/bytedance/sonic/ast/iterator.go create mode 100644 vendor/github.com/bytedance/sonic/ast/node.go create mode 100644 vendor/github.com/bytedance/sonic/ast/parser.go create mode 100644 vendor/github.com/bytedance/sonic/ast/search.go create mode 100644 vendor/github.com/bytedance/sonic/ast/sort.go create mode 100644 vendor/github.com/bytedance/sonic/ast/stubs_go115.go create mode 100644 vendor/github.com/bytedance/sonic/ast/stubs_go120.go create mode 100644 vendor/github.com/bytedance/sonic/bench-arm.sh create mode 100644 vendor/github.com/bytedance/sonic/bench-large.png create mode 100644 vendor/github.com/bytedance/sonic/bench-small.png create mode 100644 vendor/github.com/bytedance/sonic/bench.py create mode 100644 vendor/github.com/bytedance/sonic/bench.sh create mode 100644 vendor/github.com/bytedance/sonic/check_branch_name.sh create mode 100644 vendor/github.com/bytedance/sonic/compat.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/asm.s create mode 100644 vendor/github.com/bytedance/sonic/decoder/assembler_amd64_go116.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/assembler_amd64_go117.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/compiler.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/debug.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/decoder.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/errors.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/generic_amd64_go116.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/generic_amd64_go117.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/generic_amd64_go117_test.s create mode 100644 vendor/github.com/bytedance/sonic/decoder/generic_amd64_test.s create mode 100644 vendor/github.com/bytedance/sonic/decoder/pools.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/primitives.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/stream.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/stubs_go115.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/stubs_go120.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/types.go create mode 100644 vendor/github.com/bytedance/sonic/decoder/utils.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/asm.s create mode 100644 vendor/github.com/bytedance/sonic/encoder/assembler_amd64_go116.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/assembler_amd64_go117.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/compiler.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/debug_go116.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/debug_go117.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/encoder.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/errors.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/mapiter.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/pools.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/primitives.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/sort.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/stream.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/stubs_go116.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/stubs_go117.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/stubs_go120.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/types.go create mode 100644 vendor/github.com/bytedance/sonic/encoder/utils.go create mode 100644 vendor/github.com/bytedance/sonic/go.work create mode 100644 vendor/github.com/bytedance/sonic/internal/caching/asm.s create mode 100644 vendor/github.com/bytedance/sonic/internal/caching/fcache.go create mode 100644 vendor/github.com/bytedance/sonic/internal/caching/hashing.go create mode 100644 vendor/github.com/bytedance/sonic/internal/caching/pcache.go create mode 100644 vendor/github.com/bytedance/sonic/internal/cpu/features.go create mode 100644 vendor/github.com/bytedance/sonic/internal/jit/arch_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/jit/asm.s create mode 100644 vendor/github.com/bytedance/sonic/internal/jit/assembler_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/jit/backend.go create mode 100644 vendor/github.com/bytedance/sonic/internal/jit/runtime.go create mode 100644 vendor/github.com/bytedance/sonic/internal/loader/asm.s create mode 100644 vendor/github.com/bytedance/sonic/internal/loader/funcdata.go create mode 100644 vendor/github.com/bytedance/sonic/internal/loader/funcdata_go115.go create mode 100644 vendor/github.com/bytedance/sonic/internal/loader/funcdata_go116.go create mode 100644 vendor/github.com/bytedance/sonic/internal/loader/funcdata_go118.go create mode 100644 vendor/github.com/bytedance/sonic/internal/loader/funcdata_go120.go create mode 100644 vendor/github.com/bytedance/sonic/internal/loader/loader.go create mode 100644 vendor/github.com/bytedance/sonic/internal/loader/loader_windows.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_export_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_export_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/fastfloat_amd64_test.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/fastint_amd64_test.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/native_export_amd64.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_export_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/types/types.go create mode 100644 vendor/github.com/bytedance/sonic/internal/resolver/asm.s create mode 100644 vendor/github.com/bytedance/sonic/internal/resolver/resolver.go create mode 100644 vendor/github.com/bytedance/sonic/internal/resolver/stubs.go create mode 100644 vendor/github.com/bytedance/sonic/internal/rt/asm_amd64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/rt/asm_arm64.s create mode 100644 vendor/github.com/bytedance/sonic/internal/rt/fastmem.go create mode 100644 vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go create mode 100644 vendor/github.com/bytedance/sonic/internal/rt/gcwb.go create mode 100644 vendor/github.com/bytedance/sonic/internal/rt/int48.go create mode 100644 vendor/github.com/bytedance/sonic/internal/rt/stackmap.go create mode 100644 vendor/github.com/bytedance/sonic/introduction-1.png create mode 100644 vendor/github.com/bytedance/sonic/introduction-2.png create mode 100644 vendor/github.com/bytedance/sonic/loader/funcdata.go create mode 100644 vendor/github.com/bytedance/sonic/loader/funcdata_go115.go create mode 100644 vendor/github.com/bytedance/sonic/loader/funcdata_go118.go create mode 100644 vendor/github.com/bytedance/sonic/loader/funcdata_go120.go create mode 100644 vendor/github.com/bytedance/sonic/loader/loader.go create mode 100644 vendor/github.com/bytedance/sonic/loader/loader_go115.go create mode 100644 vendor/github.com/bytedance/sonic/loader/loader_go118.go create mode 100644 vendor/github.com/bytedance/sonic/loader/mmap_unix.go create mode 100644 vendor/github.com/bytedance/sonic/loader/mmap_windows.go create mode 100644 vendor/github.com/bytedance/sonic/loader/pcdata.go create mode 100644 vendor/github.com/bytedance/sonic/loader/stubs.go create mode 100644 vendor/github.com/bytedance/sonic/option/option.go create mode 100644 vendor/github.com/bytedance/sonic/other-langs.png create mode 100644 vendor/github.com/bytedance/sonic/sonic.go create mode 100644 vendor/github.com/bytedance/sonic/unquote/unquote.go create mode 100644 vendor/github.com/bytedance/sonic/utf8/utf8.go create mode 100644 vendor/github.com/chenzhuoyu/base64x/.gitignore create mode 100644 vendor/github.com/chenzhuoyu/base64x/.gitmodules create mode 100644 vendor/github.com/chenzhuoyu/base64x/LICENSE create mode 100644 vendor/github.com/chenzhuoyu/base64x/Makefile create mode 100644 vendor/github.com/chenzhuoyu/base64x/README.md create mode 100644 vendor/github.com/chenzhuoyu/base64x/base64x.go create mode 100644 vendor/github.com/chenzhuoyu/base64x/cpuid.go create mode 100644 vendor/github.com/chenzhuoyu/base64x/faststr.go create mode 100644 vendor/github.com/chenzhuoyu/base64x/native_amd64.go create mode 100644 vendor/github.com/chenzhuoyu/base64x/native_amd64.s create mode 100644 vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go create mode 100644 vendor/github.com/gin-contrib/sse/.travis.yml create mode 100644 vendor/github.com/gin-contrib/sse/LICENSE create mode 100644 vendor/github.com/gin-contrib/sse/README.md create mode 100644 vendor/github.com/gin-contrib/sse/sse-decoder.go create mode 100644 vendor/github.com/gin-contrib/sse/sse-encoder.go create mode 100644 vendor/github.com/gin-contrib/sse/writer.go create mode 100644 vendor/github.com/gin-gonic/gin/.gitignore create mode 100644 vendor/github.com/gin-gonic/gin/.golangci.yml create mode 100644 vendor/github.com/gin-gonic/gin/.goreleaser.yaml create mode 100644 vendor/github.com/gin-gonic/gin/AUTHORS.md create mode 100644 vendor/github.com/gin-gonic/gin/BENCHMARKS.md create mode 100644 vendor/github.com/gin-gonic/gin/CHANGELOG.md create mode 100644 vendor/github.com/gin-gonic/gin/CODE_OF_CONDUCT.md create mode 100644 vendor/github.com/gin-gonic/gin/CONTRIBUTING.md create mode 100644 vendor/github.com/gin-gonic/gin/LICENSE create mode 100644 vendor/github.com/gin-gonic/gin/Makefile create mode 100644 vendor/github.com/gin-gonic/gin/README.md create mode 100644 vendor/github.com/gin-gonic/gin/any.go create mode 100644 vendor/github.com/gin-gonic/gin/auth.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/any.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/binding.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/binding_nomsgpack.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/default_validator.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/form.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/form_mapping.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/header.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/json.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/msgpack.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/multipart_form_mapping.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/protobuf.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/query.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/toml.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/uri.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/xml.go create mode 100644 vendor/github.com/gin-gonic/gin/binding/yaml.go create mode 100644 vendor/github.com/gin-gonic/gin/codecov.yml create mode 100644 vendor/github.com/gin-gonic/gin/context.go create mode 100644 vendor/github.com/gin-gonic/gin/context_appengine.go create mode 100644 vendor/github.com/gin-gonic/gin/debug.go create mode 100644 vendor/github.com/gin-gonic/gin/deprecated.go create mode 100644 vendor/github.com/gin-gonic/gin/doc.go create mode 100644 vendor/github.com/gin-gonic/gin/errors.go create mode 100644 vendor/github.com/gin-gonic/gin/fs.go create mode 100644 vendor/github.com/gin-gonic/gin/gin.go create mode 100644 vendor/github.com/gin-gonic/gin/internal/bytesconv/bytesconv.go create mode 100644 vendor/github.com/gin-gonic/gin/internal/json/go_json.go create mode 100644 vendor/github.com/gin-gonic/gin/internal/json/json.go create mode 100644 vendor/github.com/gin-gonic/gin/internal/json/jsoniter.go create mode 100644 vendor/github.com/gin-gonic/gin/internal/json/sonic.go create mode 100644 vendor/github.com/gin-gonic/gin/logger.go create mode 100644 vendor/github.com/gin-gonic/gin/mode.go create mode 100644 vendor/github.com/gin-gonic/gin/path.go create mode 100644 vendor/github.com/gin-gonic/gin/recovery.go create mode 100644 vendor/github.com/gin-gonic/gin/render/any.go create mode 100644 vendor/github.com/gin-gonic/gin/render/data.go create mode 100644 vendor/github.com/gin-gonic/gin/render/html.go create mode 100644 vendor/github.com/gin-gonic/gin/render/json.go create mode 100644 vendor/github.com/gin-gonic/gin/render/msgpack.go create mode 100644 vendor/github.com/gin-gonic/gin/render/protobuf.go create mode 100644 vendor/github.com/gin-gonic/gin/render/reader.go create mode 100644 vendor/github.com/gin-gonic/gin/render/redirect.go create mode 100644 vendor/github.com/gin-gonic/gin/render/render.go create mode 100644 vendor/github.com/gin-gonic/gin/render/text.go create mode 100644 vendor/github.com/gin-gonic/gin/render/toml.go create mode 100644 vendor/github.com/gin-gonic/gin/render/xml.go create mode 100644 vendor/github.com/gin-gonic/gin/render/yaml.go create mode 100644 vendor/github.com/gin-gonic/gin/response_writer.go create mode 100644 vendor/github.com/gin-gonic/gin/routergroup.go create mode 100644 vendor/github.com/gin-gonic/gin/test_helpers.go create mode 100644 vendor/github.com/gin-gonic/gin/tree.go create mode 100644 vendor/github.com/gin-gonic/gin/utils.go create mode 100644 vendor/github.com/gin-gonic/gin/version.go create mode 100644 vendor/github.com/go-playground/locales/.gitignore create mode 100644 vendor/github.com/go-playground/locales/.travis.yml create mode 100644 vendor/github.com/go-playground/locales/LICENSE create mode 100644 vendor/github.com/go-playground/locales/README.md create mode 100644 vendor/github.com/go-playground/locales/currency/currency.go create mode 100644 vendor/github.com/go-playground/locales/logo.png create mode 100644 vendor/github.com/go-playground/locales/rules.go create mode 100644 vendor/github.com/go-playground/universal-translator/.gitignore create mode 100644 vendor/github.com/go-playground/universal-translator/.travis.yml create mode 100644 vendor/github.com/go-playground/universal-translator/LICENSE create mode 100644 vendor/github.com/go-playground/universal-translator/Makefile create mode 100644 vendor/github.com/go-playground/universal-translator/README.md create mode 100644 vendor/github.com/go-playground/universal-translator/errors.go create mode 100644 vendor/github.com/go-playground/universal-translator/import_export.go create mode 100644 vendor/github.com/go-playground/universal-translator/logo.png create mode 100644 vendor/github.com/go-playground/universal-translator/translator.go create mode 100644 vendor/github.com/go-playground/universal-translator/universal_translator.go create mode 100644 vendor/github.com/go-playground/validator/v10/.gitignore create mode 100644 vendor/github.com/go-playground/validator/v10/LICENSE create mode 100644 vendor/github.com/go-playground/validator/v10/MAINTAINERS.md create mode 100644 vendor/github.com/go-playground/validator/v10/Makefile create mode 100644 vendor/github.com/go-playground/validator/v10/README.md create mode 100644 vendor/github.com/go-playground/validator/v10/baked_in.go create mode 100644 vendor/github.com/go-playground/validator/v10/cache.go create mode 100644 vendor/github.com/go-playground/validator/v10/country_codes.go create mode 100644 vendor/github.com/go-playground/validator/v10/currency_codes.go create mode 100644 vendor/github.com/go-playground/validator/v10/doc.go create mode 100644 vendor/github.com/go-playground/validator/v10/errors.go create mode 100644 vendor/github.com/go-playground/validator/v10/field_level.go create mode 100644 vendor/github.com/go-playground/validator/v10/logo.png create mode 100644 vendor/github.com/go-playground/validator/v10/postcode_regexes.go create mode 100644 vendor/github.com/go-playground/validator/v10/regexes.go create mode 100644 vendor/github.com/go-playground/validator/v10/struct_level.go create mode 100644 vendor/github.com/go-playground/validator/v10/translations.go create mode 100644 vendor/github.com/go-playground/validator/v10/util.go create mode 100644 vendor/github.com/go-playground/validator/v10/validator.go create mode 100644 vendor/github.com/go-playground/validator/v10/validator_instance.go create mode 100644 vendor/github.com/goccy/go-json/.codecov.yml create mode 100644 vendor/github.com/goccy/go-json/.gitignore create mode 100644 vendor/github.com/goccy/go-json/.golangci.yml create mode 100644 vendor/github.com/goccy/go-json/CHANGELOG.md create mode 100644 vendor/github.com/goccy/go-json/LICENSE create mode 100644 vendor/github.com/goccy/go-json/Makefile create mode 100644 vendor/github.com/goccy/go-json/README.md create mode 100644 vendor/github.com/goccy/go-json/color.go create mode 100644 vendor/github.com/goccy/go-json/decode.go create mode 100644 vendor/github.com/goccy/go-json/docker-compose.yml create mode 100644 vendor/github.com/goccy/go-json/encode.go create mode 100644 vendor/github.com/goccy/go-json/error.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/array.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/assign.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/bool.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/bytes.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/compile.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/compile_norace.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/compile_race.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/context.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/float.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/func.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/int.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/interface.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/invalid.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/map.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/number.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/option.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/path.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/ptr.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/slice.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/stream.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/string.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/struct.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/type.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/uint.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.go create mode 100644 vendor/github.com/goccy/go-json/internal/decoder/wrapped_string.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/code.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/compact.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/compiler.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/compiler_norace.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/compiler_race.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/context.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/decode_rune.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/encoder.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/indent.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/int.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/map112.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/map113.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/opcode.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/option.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/optype.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/query.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/string.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/string_table.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm/debug_vm.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm/hack.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm/util.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm/vm.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_color/debug_vm.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_color/hack.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_color/util.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_color/vm.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/debug_vm.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/util.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/vm.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_indent/debug_vm.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_indent/hack.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_indent/util.go create mode 100644 vendor/github.com/goccy/go-json/internal/encoder/vm_indent/vm.go create mode 100644 vendor/github.com/goccy/go-json/internal/errors/error.go create mode 100644 vendor/github.com/goccy/go-json/internal/runtime/rtype.go create mode 100644 vendor/github.com/goccy/go-json/internal/runtime/struct_field.go create mode 100644 vendor/github.com/goccy/go-json/internal/runtime/type.go create mode 100644 vendor/github.com/goccy/go-json/json.go create mode 100644 vendor/github.com/goccy/go-json/option.go create mode 100644 vendor/github.com/goccy/go-json/path.go create mode 100644 vendor/github.com/goccy/go-json/query.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/.gitignore create mode 100644 vendor/github.com/klauspost/cpuid/v2/.goreleaser.yml create mode 100644 vendor/github.com/klauspost/cpuid/v2/CONTRIBUTING.txt create mode 100644 vendor/github.com/klauspost/cpuid/v2/LICENSE create mode 100644 vendor/github.com/klauspost/cpuid/v2/README.md create mode 100644 vendor/github.com/klauspost/cpuid/v2/cpuid.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/cpuid_386.s create mode 100644 vendor/github.com/klauspost/cpuid/v2/cpuid_amd64.s create mode 100644 vendor/github.com/klauspost/cpuid/v2/cpuid_arm64.s create mode 100644 vendor/github.com/klauspost/cpuid/v2/detect_arm64.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/detect_ref.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/detect_x86.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/featureid_string.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/os_linux_arm64.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/os_other_arm64.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/os_safe_linux_arm64.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/os_unsafe_linux_arm64.go create mode 100644 vendor/github.com/klauspost/cpuid/v2/test-architectures.sh create mode 100644 vendor/github.com/leodido/go-urn/.gitignore create mode 100644 vendor/github.com/leodido/go-urn/.travis.yml create mode 100644 vendor/github.com/leodido/go-urn/LICENSE create mode 100644 vendor/github.com/leodido/go-urn/README.md create mode 100644 vendor/github.com/leodido/go-urn/machine.go create mode 100644 vendor/github.com/leodido/go-urn/machine.go.rl create mode 100644 vendor/github.com/leodido/go-urn/makefile create mode 100644 vendor/github.com/leodido/go-urn/urn.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/.dockerignore create mode 100644 vendor/github.com/pelletier/go-toml/v2/.gitattributes create mode 100644 vendor/github.com/pelletier/go-toml/v2/.gitignore create mode 100644 vendor/github.com/pelletier/go-toml/v2/.golangci.toml create mode 100644 vendor/github.com/pelletier/go-toml/v2/.goreleaser.yaml create mode 100644 vendor/github.com/pelletier/go-toml/v2/CONTRIBUTING.md create mode 100644 vendor/github.com/pelletier/go-toml/v2/Dockerfile create mode 100644 vendor/github.com/pelletier/go-toml/v2/LICENSE create mode 100644 vendor/github.com/pelletier/go-toml/v2/README.md create mode 100644 vendor/github.com/pelletier/go-toml/v2/SECURITY.md create mode 100644 vendor/github.com/pelletier/go-toml/v2/ci.sh create mode 100644 vendor/github.com/pelletier/go-toml/v2/decode.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/doc.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/errors.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/internal/characters/ascii.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/internal/characters/utf8.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/internal/danger/danger.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/internal/danger/typeid.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/internal/tracker/key.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/internal/tracker/tracker.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/localtime.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/marshaler.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/strict.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/toml.abnf create mode 100644 vendor/github.com/pelletier/go-toml/v2/types.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/unmarshaler.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/unstable/ast.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/unstable/builder.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/unstable/doc.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/unstable/kind.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/unstable/parser.go create mode 100644 vendor/github.com/pelletier/go-toml/v2/unstable/scanner.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/LICENSE create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/asm/arch/arch.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/asm/arch/arm.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/asm/arch/arm64.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/asm/arch/mips.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/asm/arch/ppc64.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/asm/arch/riscv64.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/asm/arch/s390x.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/bio/buf.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/bio/buf_mmap.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/bio/buf_nommap.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/bio/must.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/dwarf/dwarf.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/dwarf/dwarf_defs.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/goobj/builtin.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/goobj/builtinlist.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/goobj/funcinfo.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/goobj/objfile.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/abi_string.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/addrtype_string.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm/a.out.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm/anames.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm/anames5.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm/asm5.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm/list5.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm/obj5.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm64/a.out.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm64/anames.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm64/anames7.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm64/asm7.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm64/doc.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm64/list7.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm64/obj7.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/arm64/sysRegEnc.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/data.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/dwarf.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/go.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/inl.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/ld.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/line.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/link.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/mips/a.out.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/mips/anames.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/mips/anames0.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/mips/asm0.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/mips/list0.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/mips/obj0.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/objfile.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/pass.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/pcln.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/plist.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/ppc64/a.out.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/ppc64/anames.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/ppc64/anames9.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/ppc64/asm9.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/ppc64/doc.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/ppc64/list9.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/ppc64/obj9.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/riscv/anames.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/riscv/cpu.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/riscv/inst.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/riscv/list.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/riscv/obj.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/a.out.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/anames.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/anamesz.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/asmz.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/condition_code.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/listz.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/objz.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/rotate.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/s390x/vector.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/sym.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/textflag.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/util.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/wasm/a.out.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/wasm/anames.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/wasm/wasmobj.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/x86/a.out.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/x86/aenum.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/x86/anames.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/x86/asm6.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/x86/avx_optabs.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/x86/evex.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/x86/list6.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/x86/obj6.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/obj/x86/ytab.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/autotype.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/flag.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/funcdata.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/funcid.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/head.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/line.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/path.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/reloctype.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/reloctype_string.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/stack.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/symkind.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/symkind_string.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/typekind.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/objabi/util.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/src/pos.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/src/xpos.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/sys/arch.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/sys/supported.go create mode 100644 vendor/github.com/twitchyliquid64/golang-asm/unsafeheader/unsafeheader.go create mode 100644 vendor/github.com/ugorji/go/codec/0_importpath.go create mode 100644 vendor/github.com/ugorji/go/codec/LICENSE create mode 100644 vendor/github.com/ugorji/go/codec/README.md create mode 100644 vendor/github.com/ugorji/go/codec/binc.go create mode 100644 vendor/github.com/ugorji/go/codec/build.sh create mode 100644 vendor/github.com/ugorji/go/codec/cbor.go create mode 100644 vendor/github.com/ugorji/go/codec/codecgen.go create mode 100644 vendor/github.com/ugorji/go/codec/decimal.go create mode 100644 vendor/github.com/ugorji/go/codec/decode.go create mode 100644 vendor/github.com/ugorji/go/codec/doc.go create mode 100644 vendor/github.com/ugorji/go/codec/encode.go create mode 100644 vendor/github.com/ugorji/go/codec/fast-path.generated.go create mode 100644 vendor/github.com/ugorji/go/codec/fast-path.go.tmpl create mode 100644 vendor/github.com/ugorji/go/codec/fast-path.not.go create mode 100644 vendor/github.com/ugorji/go/codec/gen-dec-array.go.tmpl create mode 100644 vendor/github.com/ugorji/go/codec/gen-dec-map.go.tmpl create mode 100644 vendor/github.com/ugorji/go/codec/gen-enc-chan.go.tmpl create mode 100644 vendor/github.com/ugorji/go/codec/gen-helper.generated.go create mode 100644 vendor/github.com/ugorji/go/codec/gen-helper.go.tmpl create mode 100644 vendor/github.com/ugorji/go/codec/gen.generated.go create mode 100644 vendor/github.com/ugorji/go/codec/gen.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_arrayof_gte_go15.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_arrayof_lt_go15.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_fmt_time_gte_go15.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_fmt_time_lt_go15.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_growslice_unsafe_gte_go120.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_growslice_unsafe_lt_go120.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_makemap_lt_go110.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_makemap_not_unsafe_gte_go110.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_makemap_unsafe_gte_go110.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_maprange_gte_go112.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_maprange_lt_go112.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_unexportedembeddedptr_gte_go110.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_unexportedembeddedptr_lt_go110.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_unsupported_lt_go14.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_vendor_eq_go15.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_vendor_eq_go16.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_vendor_gte_go17.go create mode 100644 vendor/github.com/ugorji/go/codec/goversion_vendor_lt_go15.go create mode 100644 vendor/github.com/ugorji/go/codec/helper.go create mode 100644 vendor/github.com/ugorji/go/codec/helper.s create mode 100644 vendor/github.com/ugorji/go/codec/helper_internal.go create mode 100644 vendor/github.com/ugorji/go/codec/helper_not_unsafe.go create mode 100644 vendor/github.com/ugorji/go/codec/helper_not_unsafe_not_gc.go create mode 100644 vendor/github.com/ugorji/go/codec/helper_unsafe.go create mode 100644 vendor/github.com/ugorji/go/codec/helper_unsafe_compiler_gc.go create mode 100644 vendor/github.com/ugorji/go/codec/helper_unsafe_compiler_not_gc.go create mode 100644 vendor/github.com/ugorji/go/codec/json.go create mode 100644 vendor/github.com/ugorji/go/codec/mammoth-test.go.tmpl create mode 100644 vendor/github.com/ugorji/go/codec/mammoth2-test.go.tmpl create mode 100644 vendor/github.com/ugorji/go/codec/msgpack.go create mode 100644 vendor/github.com/ugorji/go/codec/reader.go create mode 100644 vendor/github.com/ugorji/go/codec/register_ext.go create mode 100644 vendor/github.com/ugorji/go/codec/rpc.go create mode 100644 vendor/github.com/ugorji/go/codec/simple.go create mode 100644 vendor/github.com/ugorji/go/codec/sort-slice.generated.go create mode 100644 vendor/github.com/ugorji/go/codec/sort-slice.go.tmpl create mode 100644 vendor/github.com/ugorji/go/codec/test-cbor-goldens.json create mode 100644 vendor/github.com/ugorji/go/codec/test.py create mode 100644 vendor/github.com/ugorji/go/codec/writer.go create mode 100644 vendor/golang.org/x/arch/AUTHORS create mode 100644 vendor/golang.org/x/arch/CONTRIBUTORS create mode 100644 vendor/golang.org/x/arch/LICENSE create mode 100644 vendor/golang.org/x/arch/PATENTS create mode 100644 vendor/golang.org/x/arch/x86/x86asm/Makefile create mode 100644 vendor/golang.org/x/arch/x86/x86asm/decode.go create mode 100644 vendor/golang.org/x/arch/x86/x86asm/gnu.go create mode 100644 vendor/golang.org/x/arch/x86/x86asm/inst.go create mode 100644 vendor/golang.org/x/arch/x86/x86asm/intel.go create mode 100644 vendor/golang.org/x/arch/x86/x86asm/plan9x.go create mode 100644 vendor/golang.org/x/arch/x86/x86asm/tables.go create mode 100644 vendor/golang.org/x/crypto/sha3/doc.go create mode 100644 vendor/golang.org/x/crypto/sha3/hashes.go create mode 100644 vendor/golang.org/x/crypto/sha3/hashes_generic.go create mode 100644 vendor/golang.org/x/crypto/sha3/keccakf.go create mode 100644 vendor/golang.org/x/crypto/sha3/keccakf_amd64.go create mode 100644 vendor/golang.org/x/crypto/sha3/keccakf_amd64.s create mode 100644 vendor/golang.org/x/crypto/sha3/register.go create mode 100644 vendor/golang.org/x/crypto/sha3/sha3.go create mode 100644 vendor/golang.org/x/crypto/sha3/sha3_s390x.go create mode 100644 vendor/golang.org/x/crypto/sha3/sha3_s390x.s create mode 100644 vendor/golang.org/x/crypto/sha3/shake.go create mode 100644 vendor/golang.org/x/crypto/sha3/shake_generic.go create mode 100644 vendor/golang.org/x/crypto/sha3/xor.go create mode 100644 vendor/golang.org/x/crypto/sha3/xor_generic.go create mode 100644 vendor/golang.org/x/crypto/sha3/xor_unaligned.go create mode 100644 vendor/golang.org/x/net/http/httpguts/guts.go create mode 100644 vendor/golang.org/x/net/http/httpguts/httplex.go create mode 100644 vendor/golang.org/x/net/http2/.gitignore create mode 100644 vendor/golang.org/x/net/http2/Dockerfile create mode 100644 vendor/golang.org/x/net/http2/Makefile create mode 100644 vendor/golang.org/x/net/http2/ascii.go create mode 100644 vendor/golang.org/x/net/http2/ciphers.go create mode 100644 vendor/golang.org/x/net/http2/client_conn_pool.go create mode 100644 vendor/golang.org/x/net/http2/databuffer.go create mode 100644 vendor/golang.org/x/net/http2/errors.go create mode 100644 vendor/golang.org/x/net/http2/flow.go create mode 100644 vendor/golang.org/x/net/http2/frame.go create mode 100644 vendor/golang.org/x/net/http2/go111.go create mode 100644 vendor/golang.org/x/net/http2/go115.go create mode 100644 vendor/golang.org/x/net/http2/go118.go create mode 100644 vendor/golang.org/x/net/http2/gotrack.go create mode 100644 vendor/golang.org/x/net/http2/h2c/h2c.go create mode 100644 vendor/golang.org/x/net/http2/headermap.go create mode 100644 vendor/golang.org/x/net/http2/hpack/encode.go create mode 100644 vendor/golang.org/x/net/http2/hpack/hpack.go create mode 100644 vendor/golang.org/x/net/http2/hpack/huffman.go create mode 100644 vendor/golang.org/x/net/http2/hpack/static_table.go create mode 100644 vendor/golang.org/x/net/http2/hpack/tables.go create mode 100644 vendor/golang.org/x/net/http2/http2.go create mode 100644 vendor/golang.org/x/net/http2/not_go111.go create mode 100644 vendor/golang.org/x/net/http2/not_go115.go create mode 100644 vendor/golang.org/x/net/http2/not_go118.go create mode 100644 vendor/golang.org/x/net/http2/pipe.go create mode 100644 vendor/golang.org/x/net/http2/server.go create mode 100644 vendor/golang.org/x/net/http2/transport.go create mode 100644 vendor/golang.org/x/net/http2/write.go create mode 100644 vendor/golang.org/x/net/http2/writesched.go create mode 100644 vendor/golang.org/x/net/http2/writesched_priority.go create mode 100644 vendor/golang.org/x/net/http2/writesched_random.go create mode 100644 vendor/golang.org/x/net/idna/go118.go create mode 100644 vendor/golang.org/x/net/idna/idna10.0.0.go create mode 100644 vendor/golang.org/x/net/idna/idna9.0.0.go create mode 100644 vendor/golang.org/x/net/idna/pre_go118.go create mode 100644 vendor/golang.org/x/net/idna/punycode.go create mode 100644 vendor/golang.org/x/net/idna/tables10.0.0.go create mode 100644 vendor/golang.org/x/net/idna/tables11.0.0.go create mode 100644 vendor/golang.org/x/net/idna/tables12.0.0.go create mode 100644 vendor/golang.org/x/net/idna/tables13.0.0.go create mode 100644 vendor/golang.org/x/net/idna/tables9.0.0.go create mode 100644 vendor/golang.org/x/net/idna/trie.go create mode 100644 vendor/golang.org/x/net/idna/trieval.go create mode 100644 vendor/golang.org/x/text/secure/bidirule/bidirule.go create mode 100644 vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go create mode 100644 vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/bidi.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/bracket.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/core.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/prop.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go create mode 100644 vendor/golang.org/x/text/unicode/bidi/trieval.go create mode 100644 vendor/google.golang.org/protobuf/LICENSE create mode 100644 vendor/google.golang.org/protobuf/PATENTS create mode 100644 vendor/google.golang.org/protobuf/encoding/protowire/wire.go create mode 100644 vendor/google.golang.org/protobuf/internal/detrand/rand.go create mode 100644 vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go create mode 100644 vendor/google.golang.org/protobuf/internal/errors/errors.go create mode 100644 vendor/google.golang.org/protobuf/internal/errors/is_go112.go create mode 100644 vendor/google.golang.org/protobuf/internal/errors/is_go113.go create mode 100644 vendor/google.golang.org/protobuf/internal/flags/flags.go create mode 100644 vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go create mode 100644 vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/any_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/api_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/doc.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/duration_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/empty_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/goname.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/map_entry.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/struct_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/type_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/wrappers.go create mode 100644 vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go create mode 100644 vendor/google.golang.org/protobuf/internal/order/order.go create mode 100644 vendor/google.golang.org/protobuf/internal/order/range.go create mode 100644 vendor/google.golang.org/protobuf/internal/pragma/pragma.go create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings.go create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings_pure.go create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go create mode 100644 vendor/google.golang.org/protobuf/proto/checkinit.go create mode 100644 vendor/google.golang.org/protobuf/proto/decode.go create mode 100644 vendor/google.golang.org/protobuf/proto/decode_gen.go create mode 100644 vendor/google.golang.org/protobuf/proto/doc.go create mode 100644 vendor/google.golang.org/protobuf/proto/encode.go create mode 100644 vendor/google.golang.org/protobuf/proto/encode_gen.go create mode 100644 vendor/google.golang.org/protobuf/proto/equal.go create mode 100644 vendor/google.golang.org/protobuf/proto/extension.go create mode 100644 vendor/google.golang.org/protobuf/proto/merge.go create mode 100644 vendor/google.golang.org/protobuf/proto/messageset.go create mode 100644 vendor/google.golang.org/protobuf/proto/proto.go create mode 100644 vendor/google.golang.org/protobuf/proto/proto_methods.go create mode 100644 vendor/google.golang.org/protobuf/proto/proto_reflect.go create mode 100644 vendor/google.golang.org/protobuf/proto/reset.go create mode 100644 vendor/google.golang.org/protobuf/proto/size.go create mode 100644 vendor/google.golang.org/protobuf/proto/size_gen.go create mode 100644 vendor/google.golang.org/protobuf/proto/wrappers.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/source.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/type.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go create mode 100644 vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go create mode 100644 vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go create mode 100644 vendor/google.golang.org/protobuf/runtime/protoiface/methods.go diff --git a/cmd/skywire-cli/commands/log/root.go b/cmd/skywire-cli/commands/log/root.go index 8f73c183e9..62abbf6b68 100644 --- a/cmd/skywire-cli/commands/log/root.go +++ b/cmd/skywire-cli/commands/log/root.go @@ -149,22 +149,20 @@ var logCmd = &cobra.Command{ } deleteOnError = true } - if !logOnly { - err = download(ctx, log, httpC, "node-info.json", "node-info.json", key, maxFileSize) - if err != nil { - // This logic saves time, however it potentially - // omits or deletes transport logs for visors - // that are not seeking rewards which we still should collect - // so it is made optional via flag - if deleteOnErrors { - if deleteOnError { - bulkFolders = append(bulkFolders, key) - } - return + // health check before downloading anything else + // delete that folder if the health check fails + err = download(ctx, log, httpC, "health", "health.json", key, maxFileSize) + if err != nil { + if deleteOnErrors { + if deleteOnError { + bulkFolders = append(bulkFolders, key) } + return } } - + if !logOnly { + download(ctx, log, httpC, "node-info.json", "node-info.json", key, maxFileSize) //nolint + } if !surveyOnly { if duration == 1 { yesterday := time.Now().AddDate(0, 0, -1).UTC().Format("2006-01-02") diff --git a/go.mod b/go.mod index 47b4b5f127..4a2babd559 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/skycoin/yamux v0.0.0-20200803175205-571ceb89da9f github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8 github.com/spf13/cobra v1.4.0 - github.com/stretchr/testify v1.8.0 + github.com/stretchr/testify v1.8.1 github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect @@ -41,6 +41,7 @@ require ( require ( github.com/bitfield/script v0.19.0 github.com/blang/semver/v4 v4.0.0 + github.com/gin-gonic/gin v1.9.0 github.com/go-chi/chi/v5 v5.0.8-0.20220103230436-7dbe9a0bd10f github.com/gocarina/gocsv v0.0.0-20220927221512-ad3251f9fa25 github.com/ivanpirog/coloredcobra v1.0.0 @@ -65,12 +66,19 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect github.com/Microsoft/go-winio v0.4.16 // indirect github.com/StackExchange/wmi v1.2.1 // indirect + github.com/bytedance/sonic v1.8.0 // indirect + github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect github.com/containerd/console v1.0.3 // indirect github.com/creack/pty v1.1.15 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/fatih/color v1.13.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect + github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.11.2 // indirect + github.com/goccy/go-json v0.10.0 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gookit/color v1.5.2 // indirect github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 // indirect @@ -78,26 +86,33 @@ require ( github.com/jaypipes/pcidb v1.0.0 // indirect github.com/klauspost/compress v1.11.0 // indirect github.com/klauspost/cpuid v1.2.4 // indirect + github.com/klauspost/cpuid/v2 v2.1.0 // indirect + github.com/leodido/go-urn v1.2.1 // indirect github.com/lithammer/fuzzysearch v1.1.5 // indirect - github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-isatty v0.0.17 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/skycoin/noise v0.0.0-20180327030543-2492fe189ae6 // indirect - github.com/stretchr/objx v0.4.0 // indirect + github.com/stretchr/objx v0.5.0 // indirect github.com/tklauser/go-sysconf v0.3.4 // indirect github.com/tklauser/numcpus v0.2.1 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.9 // indirect github.com/valyala/fastrand v1.1.0 // indirect github.com/valyala/histogram v1.2.0 // indirect github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect github.com/xtaci/lossyconn v0.0.0-20200209145036-adba10fffc37 // indirect - golang.org/x/crypto v0.1.0 // indirect + golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect + golang.org/x/crypto v0.5.0 // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/text v0.7.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index 544c8823d7..6940be403d 100644 --- a/go.sum +++ b/go.sum @@ -108,6 +108,9 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= +github.com/bytedance/sonic v1.8.0 h1:ea0Xadu+sHlu7x5O3gKhRpQ1IKiMrSiHttPF0ybECuA= +github.com/bytedance/sonic v1.8.0/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/ccding/go-stun/stun v0.0.0-20200514191101-4dc67bcdb029 h1:POmUHfxXdeyM8Aomg4tKDcwATCFuW+cYLkj6pwsw9pc= github.com/ccding/go-stun/stun v0.0.0-20200514191101-4dc67bcdb029/go.mod h1:Rpr5n9cGHYdM3S3IK8ROSUUUYjQOu+MSUCZDcJbYWi8= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -117,6 +120,9 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheekybits/genny v1.0.0 h1:uGGa4nei+j20rOSeDeP5Of12XVm7TGUd4dJA9RDitfE= github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= +github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -171,6 +177,10 @@ github.com/gen2brain/dlgs v0.0.0-20210911090025-cbd38e821b98 h1:wkHRSagNSNKP54v6 github.com/gen2brain/dlgs v0.0.0-20210911090025-cbd38e821b98/go.mod h1:/eFcjDXaU2THSOOqLxOPETIbHETnamk8FA/hMjhg/gU= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= +github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-chi/chi/v5 v5.0.8-0.20220103230436-7dbe9a0bd10f h1:6kLofhLkWj7lgCc+mvcVLnwhTzQYgL/yW/Y0e/JYwjg= @@ -187,6 +197,13 @@ github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNI github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU= +github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s= github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= @@ -198,6 +215,8 @@ github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/gocarina/gocsv v0.0.0-20220927221512-ad3251f9fa25 h1:wxgEEZvsnOTrDO2npSSKUMDx5IykfoGmro+/Vjc1BQ8= github.com/gocarina/gocsv v0.0.0-20220927221512-ad3251f9fa25/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI= +github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= +github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -363,6 +382,7 @@ github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02 github.com/klauspost/cpuid/v2 v2.0.10/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= github.com/klauspost/cpuid/v2 v2.1.0 h1:eyi1Ad2aNJMW95zcSbmGg7Cg6cq3ADwLpMAP96d8rF0= +github.com/klauspost/cpuid/v2 v2.1.0/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/klauspost/reedsolomon v1.9.9 h1:qCL7LZlv17xMixl55nq2/Oa1Y86nfO8EqDfv2GHND54= github.com/klauspost/reedsolomon v1.9.9/go.mod h1:O7yFFHiQwDR6b2t63KPUpccPtNdp5ADgh1gg4fd12wo= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -372,11 +392,14 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lithammer/fuzzysearch v1.1.5 h1:Ag7aKU08wp0R9QCfF4GoGST9HbmAIeLP7xwMrOBEp1c= @@ -404,8 +427,9 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -434,7 +458,6 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -454,6 +477,8 @@ github.com/orandin/lumberjackrus v1.0.1/go.mod h1:xYLt6H8W93pKnQgUQaxsApS0Eb4BwH github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= +github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/pires/go-proxyproto v0.6.2/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -492,6 +517,7 @@ github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= @@ -558,8 +584,9 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy5AsM= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -567,8 +594,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= @@ -586,6 +614,10 @@ github.com/tklauser/numcpus v0.2.1/go.mod h1:9aU+wOc6WjUIZEwWMP62PL/41d65P+iks1g github.com/toqueteos/webbrowser v1.2.0 h1:tVP/gpK69Fx+qMJKsLE7TD8LuGWPnEV71wBN9rrstGQ= github.com/toqueteos/webbrowser v1.2.0/go.mod h1:XWoZq4cyp9WeUeak7w7LXRUQf1F1ATJMir8RTqb4ayM= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.9 h1:rmenucSohSTiyL09Y+l2OCk+FrMxGMzho2+tjr5ticU= +github.com/ugorji/go/codec v1.2.9/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8= github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ= github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OLoQ= @@ -624,6 +656,8 @@ go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9i go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/arch v0.0.0-20190909030613-46d78d1859ac/go.mod h1:flIaEI6LNU6xOCD5PaJvn9wGP0agmIOqjrtsKGRguv4= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -640,8 +674,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= +golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -849,6 +883,8 @@ golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1094,14 +1130,15 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= diff --git a/pkg/visor/logserver/api.go b/pkg/visor/logserver/api.go index 4f2e54435d..a2768602e5 100644 --- a/pkg/visor/logserver/api.go +++ b/pkg/visor/logserver/api.go @@ -3,24 +3,19 @@ package logserver import ( "encoding/json" - "log" - "mime" + "fmt" "net" "net/http" "os" - "path" "path/filepath" "time" - "github.com/go-chi/chi/v5" - "github.com/go-chi/chi/v5/middleware" - "github.com/sirupsen/logrus" + "github.com/gin-gonic/gin" "github.com/skycoin/skywire-utilities/pkg/buildinfo" "github.com/skycoin/skywire-utilities/pkg/cipher" "github.com/skycoin/skywire-utilities/pkg/httputil" "github.com/skycoin/skywire-utilities/pkg/logging" - "github.com/skycoin/skywire/pkg/skyenv" ) // API register all the API endpoints. @@ -32,114 +27,200 @@ type API struct { startedAt time.Time } -// New creates a new api. +// New creates a new API. func New(log *logging.Logger, tpLogPath, localPath, customPath string, whitelistedPKs []cipher.PubKey, printLog bool) *API { api := &API{ logger: log, startedAt: time.Now(), } - - r := chi.NewRouter() - - r.Use(middleware.RequestID) - r.Use(middleware.RealIP) + // disable gin's debug logging on startup + gin.SetMode(gin.ReleaseMode) + // Gin router without default logging + r := gin.New() + // use Gin's recovery logging middleware to recover from panic + r.Use(gin.Recovery()) if printLog { - r.Use(middleware.Logger) - r.Use(middleware.Recoverer) + // use custom logging middleware + r.Use(loggingMiddleware()) } - r.Use(httputil.SetLoggerMiddleware(log)) - - r.Get("/health", api.health) - fsTP := http.FileServer(http.Dir(tpLogPath)) - r.Handle("/*", http.StripPrefix("/", fsTP)) - - fsLocal := http.FileServer(http.Dir(localPath)) - r.Handle("/"+skyenv.NodeInfo, http.StripPrefix("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - whitelistFSHandler(w, r, localPath, whitelistedPKs) - }))) + // whitelist-based authentication for survey collection if there are keys whitelisted for that + // no survey-whitelisted keys means the file is publicly accessible + authRoute := r.Group("/") + if len(whitelistedPKs) > 0 { + authRoute.Use(whitelistAuth(whitelistedPKs)) + } + // note that the survey only exists / is generated if the reward address is set + authRoute.StaticFile("/node-info.json", filepath.Join(localPath, "node-info.json")) - r.Handle("/transport_logs/*", http.StripPrefix("/", fsLocal)) + r.GET("/health", func(c *gin.Context) { + api.health(c) + }) - fsCustom := http.FileServer(http.Dir(customPath)) - r.Handle("/*", http.StripPrefix("/", fsCustom)) + // serve transport log files ; then any files in the custom path + r.GET("/:file", func(c *gin.Context) { + // files with .csv extension are likely transport log files + if filepath.Ext(c.Param("file")) == ".csv" { + // check transport logs dir for the file, and serve it if it exists + _, err := os.Stat(filepath.Join(tpLogPath, c.Param("file"))) + if err == nil { + c.File(filepath.Join(tpLogPath, c.Param("file"))) + return + } + } + // Check for any file in custom dmsghttp dir path + _, err := os.Stat(filepath.Join(customPath, c.Param("file"))) + if err == nil { + c.File(filepath.Join(customPath, c.Param("file"))) + return + } + // File not found, return 404 + c.Writer.WriteHeader(http.StatusNotFound) + }) api.Handler = r return api } -func (api *API) health(w http.ResponseWriter, r *http.Request) { - info := buildinfo.Get() - api.writeJSON(w, r, http.StatusOK, httputil.HealthCheckResponse{ - BuildInfo: info, - StartedAt: api.startedAt, - }) -} - -func (api *API) writeJSON(w http.ResponseWriter, r *http.Request, code int, object interface{}) { - jsonObject, err := json.Marshal(object) +func (api *API) health(c *gin.Context) { + jsonObject, err := json.Marshal( + httputil.HealthCheckResponse{ + BuildInfo: buildinfo.Get(), + StartedAt: api.startedAt, + }) if err != nil { - api.log(r).WithError(err).Errorf("failed to encode json response") - w.WriteHeader(http.StatusInternalServerError) - + httputil.GetLogger(c.Request).WithError(err).Errorf("failed to encode json response") + c.Writer.WriteHeader(http.StatusInternalServerError) + c.AbortWithStatus(http.StatusInternalServerError) return } - w.Header().Set("Content-Type", "application/json") - w.WriteHeader(code) + c.Header("Content-Type", "application/json") + c.Writer.WriteHeader(http.StatusOK) - _, err = w.Write(jsonObject) + _, err = c.Writer.Write(jsonObject) if err != nil { - api.log(r).WithError(err).Errorf("failed to write json response") + httputil.GetLogger(c.Request).WithError(err).Errorf("failed to write json response") } } -func (api *API) log(r *http.Request) logrus.FieldLogger { - return httputil.GetLogger(r) -} - -func whitelistFSHandler(w http.ResponseWriter, r *http.Request, serveDir string, whitelistedPKs []cipher.PubKey) { - start := time.Now() - // Get the remote PK. - remotePK, _, err := net.SplitHostPort(r.RemoteAddr) - if err != nil { - http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) - return - } - // Check if the remote PK is whitelisted. - whitelisted := false - if len(whitelistedPKs) == 0 { - whitelisted = true - } else { - for _, whitelistedPK := range whitelistedPKs { - if remotePK == whitelistedPK.String() { - whitelisted = true - break +func whitelistAuth(whitelistedPKs []cipher.PubKey) gin.HandlerFunc { + return func(c *gin.Context) { + // Get the remote PK. + remotePK, _, err := net.SplitHostPort(c.Request.RemoteAddr) + if err != nil { + c.Writer.WriteHeader(http.StatusInternalServerError) + _, err := c.Writer.Write([]byte("500 Internal Server Error")) + if err != nil { + httputil.GetLogger(c.Request).WithError(err).Errorf("write http response") } + c.AbortWithStatus(http.StatusInternalServerError) + return } - } - // If the remote PK is whitelisted, serve the file. - if whitelisted { - filePath := serveDir + r.URL.Path - file, err := os.Open(filePath) //nolint - if err != nil { - http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + // Check if the remote PK is whitelisted. + whitelisted := false + if len(whitelistedPKs) == 0 { + whitelisted = true + } else { + for _, whitelistedPK := range whitelistedPKs { + if remotePK == whitelistedPK.String() { + whitelisted = true + break + } + } + } + if whitelisted { + c.Next() + } else { + // Otherwise, return a 401 Unauthorized error. + c.Writer.WriteHeader(http.StatusUnauthorized) + _, err := c.Writer.Write([]byte("401 Unauthorized")) + if err != nil { + httputil.GetLogger(c.Request).WithError(err).Errorf("write http response") + } + c.AbortWithStatus(http.StatusUnauthorized) return } - defer file.Close() //nolint + } +} - _, filename := path.Split(filePath) - w.Header().Set("Content-Type", mime.TypeByExtension(filepath.Ext(filename))) - http.ServeContent(w, r, filename, time.Time{}, file) +func loggingMiddleware() gin.HandlerFunc { + return func(c *gin.Context) { + start := time.Now() + c.Next() + latency := time.Since(start) + if latency > time.Minute { + latency = latency.Truncate(time.Second) + } + statusCode := c.Writer.Status() + method := c.Request.Method + path := c.Request.URL.Path + // Get the background color based on the status code + statusCodeBackgroundColor := getBackgroundColor(statusCode) + // Get the method color + methodColor := getMethodColor(method) + // Print the logging in a custom format which includes the publickeyfrom c.Request.RemoteAddr ex.: + // [DMSGHTTP] 2023/05/18 - 19:43:15 | 200 | 10.80885ms | | 02b5ee5333aa6b7f5fc623b7d5f35f505cb7f974e98a70751cf41962f84c8c4637:49153 | GET /node-info.json + fmt.Printf("[DMSGHTTP] %s |%s %3d %s| %13v | %15s | %72s |%s %-7s %s %s\n", + time.Now().Format("2006/01/02 - 15:04:05"), + statusCodeBackgroundColor, + statusCode, + resetColor(), + latency, + c.ClientIP(), + c.Request.RemoteAddr, + methodColor, + method, + resetColor(), + path, + ) + } +} +func getBackgroundColor(statusCode int) string { + switch { + case statusCode >= http.StatusOK && statusCode < http.StatusMultipleChoices: + return green + case statusCode >= http.StatusMultipleChoices && statusCode < http.StatusBadRequest: + return white + case statusCode >= http.StatusBadRequest && statusCode < http.StatusInternalServerError: + return yellow + default: + return red + } +} - // Log the response status and time taken. - elapsed := time.Since(start) - log.Printf("[DMSGHTTP] %s %s | %d | %v | %s | %s %s\n", start.Format("2006/01/02 - 15:04:05"), r.RemoteAddr, http.StatusOK, elapsed, r.Method, r.Proto, r.URL) - return +func getMethodColor(method string) string { + switch method { + case http.MethodGet: + return blue + case http.MethodPost: + return cyan + case http.MethodPut: + return yellow + case http.MethodDelete: + return red + case http.MethodPatch: + return green + case http.MethodHead: + return magenta + case http.MethodOptions: + return white + default: + return reset } - // Otherwise, return a 403 Forbidden error. - http.Error(w, http.StatusText(http.StatusForbidden), http.StatusForbidden) - // Log the response status and time taken. - elapsed := time.Since(start) - log.Printf("[DMSGHTTP] %s %s | %d | %v | %s | %s %s\n", start.Format("2006/01/02 - 15:04:05"), r.RemoteAddr, http.StatusForbidden, elapsed, r.Method, r.Proto, r.URL) } + +func resetColor() string { + return reset +} + +const ( + green = "\033[97;42m" + white = "\033[90;47m" + yellow = "\033[90;43m" + red = "\033[97;41m" + blue = "\033[97;44m" + magenta = "\033[97;45m" + cyan = "\033[97;46m" + reset = "\033[0m" +) diff --git a/vendor/github.com/bytedance/sonic/.gitignore b/vendor/github.com/bytedance/sonic/.gitignore new file mode 100644 index 0000000000..0d8844705b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/.gitignore @@ -0,0 +1,52 @@ +*.o +*.swp +*.swm +*.swn +*.a +*.so +_obj +_test +*.[568vq] +[568vq].out +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* +_testmain.go +*.exe +*.exe~ +*.test +*.prof +*.rar +*.zip +*.gz +*.psd +*.bmd +*.cfg +*.pptx +*.log +*nohup.out +*settings.pyc +*.sublime-project +*.sublime-workspace +.DS_Store +/.idea/ +/.vscode/ +/output/ +/vendor/ +/Gopkg.lock +/Gopkg.toml +coverage.html +coverage.out +coverage.xml +junit.xml +*.profile +*.svg +*.out +ast/test.out +ast/bench.sh + +!testdata/*.json.gz +fuzz/testdata +*__debug_bin \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/.gitmodules b/vendor/github.com/bytedance/sonic/.gitmodules new file mode 100644 index 0000000000..b8d11c9215 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/.gitmodules @@ -0,0 +1,3 @@ +[submodule "tools/asm2asm"] + path = tools/asm2asm + url = https://github.com/chenzhuoyu/asm2asm diff --git a/vendor/github.com/bytedance/sonic/.licenserc.yaml b/vendor/github.com/bytedance/sonic/.licenserc.yaml new file mode 100644 index 0000000000..1cb993e398 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/.licenserc.yaml @@ -0,0 +1,24 @@ +header: + license: + spdx-id: Apache-2.0 + copyright-owner: ByteDance Inc. + + paths: + - '**/*.go' + - '**/*.s' + + paths-ignore: + - 'ast/asm.s' # empty file + - 'decoder/asm.s' # empty file + - 'encoder/asm.s' # empty file + - 'internal/caching/asm.s' # empty file + - 'internal/jit/asm.s' # empty file + - 'internal/native/avx/native_amd64.s' # auto-generated by asm2asm + - 'internal/native/avx/native_subr_amd64.go' # auto-generated by asm2asm + - 'internal/native/avx2/native_amd64.s' # auto-generated by asm2asm + - 'internal/native/avx2/native_subr_amd64.go' # auto-generated by asm2asm + - 'internal/resolver/asm.s' # empty file + - 'internal/rt/asm.s' # empty file + - 'internal/loader/asm.s' # empty file + + comment: on-failure \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/CODE_OF_CONDUCT.md b/vendor/github.com/bytedance/sonic/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..8505feb1c8 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +wudi.daniel@bytedance.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/vendor/github.com/bytedance/sonic/CONTRIBUTING.md b/vendor/github.com/bytedance/sonic/CONTRIBUTING.md new file mode 100644 index 0000000000..7f63c661a8 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/CONTRIBUTING.md @@ -0,0 +1,63 @@ +# How to Contribute + +## Your First Pull Request +We use GitHub for our codebase. You can start by reading [How To Pull Request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests). + +## Without Semantic Versioning +We keep the stable code in branch `main` like `golang.org/x`. Development base on branch `develop`. We promise the **Forward Compatibility** by adding new package directory with suffix `v2/v3` when code has break changes. + +## Branch Organization +We use [git-flow](https://nvie.com/posts/a-successful-git-branching-model/) as our branch organization, as known as [FDD](https://en.wikipedia.org/wiki/Feature-driven_development) + + +## Bugs +### 1. How to Find Known Issues +We are using [Github Issues](https://github.com/bytedance/sonic/issues) for our public bugs. We keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure your problem doesn’t already exist. + +### 2. Reporting New Issues +Providing a reduced test code is a recommended way for reporting issues. Then can be placed in: +- Just in issues +- [Golang Playground](https://play.golang.org/) + +### 3. Security Bugs +Please do not report the safe disclosure of bugs to public issues. Contact us by [Support Email](mailto:sonic@bytedance.com) + +## How to Get in Touch +- [Email](mailto:wudi.daniel@bytedance.com) + +## Submit a Pull Request +Before you submit your Pull Request (PR) consider the following guidelines: +1. Search [GitHub](https://github.com/bytedance/sonic/pulls) for an open or closed PR that relates to your submission. You don't want to duplicate existing efforts. +2. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add. Discussing the design upfront helps to ensure that we're ready to accept your work. +3. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the bytedance/sonic repo. +4. In your forked repository, make your changes in a new git branch: + ``` + git checkout -b bugfix/security_bug develop + ``` +5. Create your patch, including appropriate test cases. +6. Follow our [Style Guides](#code-style-guides). +7. Commit your changes using a descriptive commit message that follows [AngularJS Git Commit Message Conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit). + Adherence to these conventions is necessary because release notes will be automatically generated from these messages. +8. Push your branch to GitHub: + ``` + git push origin bugfix/security_bug + ``` +9. In GitHub, send a pull request to `sonic:main` + +Note: you must use one of `optimize/feature/bugfix/doc/ci/test/refactor` following a slash(`/`) as the branch prefix. + +Your pr title and commit message should follow https://www.conventionalcommits.org/. + +## Contribution Prerequisites +- Our development environment keeps up with [Go Official](https://golang.org/project/). +- You need fully checking with lint tools before submit your pull request. [gofmt](https://golang.org/pkg/cmd/gofmt/) & [golangci-lint](https://github.com/golangci/golangci-lint) +- You are familiar with [Github](https://github.com) +- Maybe you need familiar with [Actions](https://github.com/features/actions)(our default workflow tool). + +## Code Style Guides +See [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments). + +Good resources: +- [Effective Go](https://golang.org/doc/effective_go) +- [Pingcap General advice](https://pingcap.github.io/style-guide/general.html) +- [Uber Go Style Guide](https://github.com/uber-go/guide/blob/master/style.md) diff --git a/vendor/github.com/bytedance/sonic/CREDITS b/vendor/github.com/bytedance/sonic/CREDITS new file mode 100644 index 0000000000..e69de29bb2 diff --git a/vendor/github.com/bytedance/sonic/INTRODUCTION.md b/vendor/github.com/bytedance/sonic/INTRODUCTION.md new file mode 100644 index 0000000000..6b42118a78 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/INTRODUCTION.md @@ -0,0 +1,48 @@ +# Introduction to Sonic +## Background +According to the overall profiling of production services in Bytedance, we found that the overhead of JSON serialization and deserialization is unexpectedly high: the total is near to 10% CPU, and the extreme one accounts for more than 40% CPU. Therefore, **the performance of JSON lib is a key issue for the promotion of machine utilization**. + +## Research +We conducted a series of surveys and benchmarks on open-sourced JSON libraries for Golang, but the result is disappointing: **no silver bullet**. First of all, no one can perform at least the top three across various business scenarios. Even the most widely used [json-iterator](https://github.com/json-iterator/go) will severely degrade in generic (no-schema) or big-volume JSON serialization and deserialization. Secondly, compared with other JSON libraries writing in other languages, their speed is generally much slower. For example, [Simdjson-go](https://github.com/minio/simdjson-go) has a 50% reduction in decoding performance compared to [simdjson](https://github.com/simdjson/simdjson). What's more, we barely found JSON libraries which provide API to modify the underlying values. + +Therefore, we decided to **develop a brand-new JSON library with high performance as well as wide applicability**. + +## Thinking +Before starting our design, we need to figure out some questions: + +### Why is Json-iterator faster than Standard Library? +First of all, the **schema-based processing mechanism** used by the standard library is commendable, in which the parser can obtain meta information in advance when scanning, thereby shortening the time of branch selection. However, its original implementation did not make good use of this mechanism, instead, **it spent a lot of time reflecting to obtain meta info of schema**. Meanwhile, The approach of json-iterator is: Interprete structure as field-by-field encoding and decoding functions, and then assembled and cached them, minimizing the performance loss cost by reflection. But does it work once and for all? No. In practical tests, we found that **the deeper and larger the input JSON got, the smaller the gap between json-iterator and other libraries gradually became** - eventually event got surpassed: +![Scalability](introduction-1.png) + +The reason is that **this implementation transforms into a large number of interface encapsulations and function calls**, followed by function-call losses: +1. **Calling interface involves dynamic addressing of itab** +2. **Assembly functions cannot be inlined**, while Golang's function-call performance is poor (no parameter-passing-by-register) + +#### Is there a way to avoid the function-call overhead of dynamic assembly? +The first thing we thought about was code generation like [easyjson](https://github.com/mailru/easyjson). But it comes with **schema dependency and convenience losses**. To achieve a real drop-in replacement of the standard library, we turned to another technology - **[JIT](https://en.wikipedia.org/wiki/Jit) (just-in-time compiling)**. Because the compiled codec function is an integrated function, which can greatly reduce function calls while ensuring flexibility. + +### Why is Simdjson-go not fast enough? +[SIMD](https://en.wikipedia.org/wiki/SIMD) (Single-Instruction-Multi-Data) is a special set of CPU instructions for the parallel processing of vectorized data. At present, it is supported by most CPUs and widely used in image processing and big data computing. Undoubtedly, SIMD is useful in JSON processing (itoa, char-search, and so on are all suitable scenarios). We can see that simdjson-go is very competitive in large JSON scenarios (>100KB). However, for some extremely small or irregular character strings, **the extra load operation required by SIMD will lead to performance degradation**. Therefore, we need to dedicate ourselves to branch predicting and decide which scenarios should use SIMD and which should not (for example, the string length is less than 16 bytes). + +The second problem comes from the Go compiler itself. In order to ensure the compilation speed, **Golang does very little optimization work during the compilation phase** and cannot directly use compiler backends such as [LLVM](https://en.wikipedia.org/wiki/LLVM) (Low-Level Virtual Machine) for optimization. + +So, **can some crucial calculation functions be written in another language with higher execution efficiency**? +C/Clang is an ideal compilation tool (internal integration LLVM). But the key is how to embed the optimized assembly into Golang. + +### How to use Gjson well? +We also found that [gjson](https://github.com/tidwall/gjson) has a huge advantage in single-key lookup scenarios. This is because its lookup is implemented by a **lazy-load mechanism**, which subtlely skips passing-by values and effectively reduces a lot of unnecessary parsing. Practical application has proved that making good use of this feature in product can indeed bring benefits. But when it comes to multi-key lookup, Gjson does worse event than std, which is a side effect of its skipping mechanism - **searching for the same path leads to repeated parsing** (skip is also a lightweight parsing). Therefore, the accurate adaptation of practical scenarios is the key. + +## Design +Based on the above questions, our design is easy to implement: + +1. Aiming at the function-call overhead cost by the codec dynamic-assembly, **`JIT` tech is used to assemble opcodes (asm) corresponding to the schema at runtime**, which is finally cached into the off-heap memory in the form of Golang functions. +2. For practical scenarios where big data and small data coexist, we **use pre-conditional judgment** (string size, floating precision, etc.) **to combine `SIMD` with scalar instructions** to achieve the best adaptation. +3. As for insufficiency in compiling optimization of go language, we decided to **use `C/Clang` to write and compile core computational functions**, and **developed a set of [asm2asm](https://github.com/chenzhuoyu/asm2asm) tools to translate the fully optimized x86 assembly into plan9** and finally load it into Golang runtime. +4. Giving the big speed gap between parsing and skipping, the **`lazy-load` mechanism** is certainly used in our AST parser, but in **a more adaptive and efficient way to reduce the overhead of multiple-key queries**. +![design](introduction-2.png) + +In detail, we conducted some further optimization: +1. Since the native-asm functions cannot be inlined in Golang, we found that its cost even exceeded the improvement brought by the optimization of the C compiler. So we reimplemented a set of lightweight function-calls in JIT: + - `Global-function-table + static offset` for calling instruction + - **Pass parameters using registers** +2. `Sync.Map` was used to cache the codecs at first, but for our **quasi-static** (read far more than write), **fewer elements** (usually no more than a few dozen) scenarios, its performance is not optimal, so we reimplement a high-performance and concurrent-safe cache with `open-addressing-hash + RCU` tech. \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/LICENSE b/vendor/github.com/bytedance/sonic/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/bytedance/sonic/Makefile b/vendor/github.com/bytedance/sonic/Makefile new file mode 100644 index 0000000000..8cc0acf15c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/Makefile @@ -0,0 +1,112 @@ +# +# Copyright 2021 ByteDance Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +ARCH := avx avx2 sse +TMP_DIR := output +OUT_DIR := internal/native +SRC_FILE := native/native.c + +CPU_avx := amd64 +CPU_avx2 := amd64 +CPU_sse := amd64 + +TMPL_avx := fastint_amd64_test fastfloat_amd64_test native_amd64_test native_export_amd64 +TMPL_avx2 := fastint_amd64_test fastfloat_amd64_test native_amd64_test native_export_amd64 +TMPL_sse := fastint_amd64_test fastfloat_amd64_test native_amd64_test native_export_amd64 + +CFLAGS_avx := -msse -mno-sse4 -mavx -mpclmul -mno-avx2 -DUSE_AVX=1 -DUSE_AVX2=0 +CFLAGS_avx2 := -msse -mno-sse4 -mavx -mpclmul -mavx2 -DUSE_AVX=1 -DUSE_AVX2=1 +CFLAGS_sse := -msse -mno-sse4 -mno-avx -mno-avx2 -mpclmul + +CC_amd64 := clang +ASM2ASM_amd64 := tools/asm2asm/asm2asm.py + +CFLAGS := -mno-red-zone +CFLAGS += -target x86_64-apple-macos11 +CFLAGS += -fno-asynchronous-unwind-tables +CFLAGS += -fno-builtin +CFLAGS += -fno-exceptions +CFLAGS += -fno-rtti +CFLAGS += -fno-stack-protector +CFLAGS += -nostdlib +CFLAGS += -O3 +CFLAGS += -Wall -Werror + +NATIVE_SRC := $(wildcard native/*.h) +NATIVE_SRC += $(wildcard native/*.c) + +.PHONY: all clean ${ARCH} + +define build_tmpl + $(eval @arch := $(1)) + $(eval @tmpl := $(2)) + $(eval @dest := $(3)) + +${@dest}: ${@tmpl} + mkdir -p $(dir ${@dest}) + echo '// Code generated by Makefile, DO NOT EDIT.' > ${@dest} + echo >> ${@dest} + sed -e 's/{{PACKAGE}}/${@arch}/g' ${@tmpl} >> ${@dest} +endef + +define build_arch + $(eval @cpu := $(value CPU_$(1))) + $(eval @deps := $(foreach tmpl,$(value TMPL_$(1)),${OUT_DIR}/$(1)/${tmpl}.go)) + $(eval @asmin := ${TMP_DIR}/$(1)/native.s) + $(eval @asmout := ${OUT_DIR}/$(1)/native_${@cpu}.s) + $(eval @stubin := ${OUT_DIR}/native_${@cpu}.tmpl) + $(eval @stubout := ${OUT_DIR}/$(1)/native_${@cpu}.go) + +$(1): ${@asmout} ${@deps} + +${@asmout}: ${@stubout} ${NATIVE_SRC} + mkdir -p ${TMP_DIR}/$(1) + $${CC_${@cpu}} $${CFLAGS} $${CFLAGS_$(1)} -S -o ${TMP_DIR}/$(1)/native.s ${SRC_FILE} + python3 $${ASM2ASM_${@cpu}} ${@asmout} ${TMP_DIR}/$(1)/native.s + asmfmt -w ${@asmout} + +$(eval $(call \ + build_tmpl, \ + $(1), \ + ${@stubin}, \ + ${@stubout} \ +)) + +$(foreach \ + tmpl, \ + $(value TMPL_$(1)), \ + $(eval $(call \ + build_tmpl, \ + $(1), \ + ${OUT_DIR}/${tmpl}.tmpl, \ + ${OUT_DIR}/$(1)/${tmpl}.go \ + )) \ +) +endef + +all: ${ARCH} + +clean: + for arch in ${ARCH}; do \ + rm -vfr ${TMP_DIR}/$${arch}; \ + rm -vfr ${OUT_DIR}/$${arch}; \ + done + +$(foreach \ + arch, \ + ${ARCH}, \ + $(eval $(call build_arch,${arch})) \ +) diff --git a/vendor/github.com/bytedance/sonic/README.md b/vendor/github.com/bytedance/sonic/README.md new file mode 100644 index 0000000000..9cc42c462d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/README.md @@ -0,0 +1,359 @@ +# Sonic + +A blazingly fast JSON serializing & deserializing library, accelerated by JIT (just-in-time compiling) and SIMD (single-instruction-multiple-data). + +## Requirement +- Go 1.15~1.20 +- Linux/MacOS/Windows +- Amd64 ARCH + +## Features +- Runtime object binding without code generation +- Complete APIs for JSON value manipulation +- Fast, fast, fast! + +## Benchmarks +For **all sizes** of json and **all scenarios** of usage, **Sonic performs best**. +- [Medium](https://github.com/bytedance/sonic/blob/main/decoder/testdata_test.go#L19) (13KB, 300+ key, 6 layers) +```powershell +goversion: 1.17.1 +goos: darwin +goarch: amd64 +cpu: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz +BenchmarkEncoder_Generic_Sonic-16 32393 ns/op 402.40 MB/s 11965 B/op 4 allocs/op +BenchmarkEncoder_Generic_Sonic_Fast-16 21668 ns/op 601.57 MB/s 10940 B/op 4 allocs/op +BenchmarkEncoder_Generic_JsonIter-16 42168 ns/op 309.12 MB/s 14345 B/op 115 allocs/op +BenchmarkEncoder_Generic_GoJson-16 65189 ns/op 199.96 MB/s 23261 B/op 16 allocs/op +BenchmarkEncoder_Generic_StdLib-16 106322 ns/op 122.60 MB/s 49136 B/op 789 allocs/op +BenchmarkEncoder_Binding_Sonic-16 6269 ns/op 2079.26 MB/s 14173 B/op 4 allocs/op +BenchmarkEncoder_Binding_Sonic_Fast-16 5281 ns/op 2468.16 MB/s 12322 B/op 4 allocs/op +BenchmarkEncoder_Binding_JsonIter-16 20056 ns/op 649.93 MB/s 9488 B/op 2 allocs/op +BenchmarkEncoder_Binding_GoJson-16 8311 ns/op 1568.32 MB/s 9481 B/op 1 allocs/op +BenchmarkEncoder_Binding_StdLib-16 16448 ns/op 792.52 MB/s 9479 B/op 1 allocs/op +BenchmarkEncoder_Parallel_Generic_Sonic-16 6681 ns/op 1950.93 MB/s 12738 B/op 4 allocs/op +BenchmarkEncoder_Parallel_Generic_Sonic_Fast-16 4179 ns/op 3118.99 MB/s 10757 B/op 4 allocs/op +BenchmarkEncoder_Parallel_Generic_JsonIter-16 9861 ns/op 1321.84 MB/s 14362 B/op 115 allocs/op +BenchmarkEncoder_Parallel_Generic_GoJson-16 18850 ns/op 691.52 MB/s 23278 B/op 16 allocs/op +BenchmarkEncoder_Parallel_Generic_StdLib-16 45902 ns/op 283.97 MB/s 49174 B/op 789 allocs/op +BenchmarkEncoder_Parallel_Binding_Sonic-16 1480 ns/op 8810.09 MB/s 13049 B/op 4 allocs/op +BenchmarkEncoder_Parallel_Binding_Sonic_Fast-16 1209 ns/op 10785.23 MB/s 11546 B/op 4 allocs/op +BenchmarkEncoder_Parallel_Binding_JsonIter-16 6170 ns/op 2112.58 MB/s 9504 B/op 2 allocs/op +BenchmarkEncoder_Parallel_Binding_GoJson-16 3321 ns/op 3925.52 MB/s 9496 B/op 1 allocs/op +BenchmarkEncoder_Parallel_Binding_StdLib-16 3739 ns/op 3486.49 MB/s 9480 B/op 1 allocs/op + +BenchmarkDecoder_Generic_Sonic-16 66812 ns/op 195.10 MB/s 57602 B/op 723 allocs/op +BenchmarkDecoder_Generic_Sonic_Fast-16 54523 ns/op 239.07 MB/s 49786 B/op 313 allocs/op +BenchmarkDecoder_Generic_StdLib-16 124260 ns/op 104.90 MB/s 50869 B/op 772 allocs/op +BenchmarkDecoder_Generic_JsonIter-16 91274 ns/op 142.81 MB/s 55782 B/op 1068 allocs/op +BenchmarkDecoder_Generic_GoJson-16 88569 ns/op 147.17 MB/s 66367 B/op 973 allocs/op +BenchmarkDecoder_Binding_Sonic-16 32557 ns/op 400.38 MB/s 28302 B/op 137 allocs/op +BenchmarkDecoder_Binding_Sonic_Fast-16 28649 ns/op 455.00 MB/s 24999 B/op 34 allocs/op +BenchmarkDecoder_Binding_StdLib-16 111437 ns/op 116.97 MB/s 10576 B/op 208 allocs/op +BenchmarkDecoder_Binding_JsonIter-16 35090 ns/op 371.48 MB/s 14673 B/op 385 allocs/op +BenchmarkDecoder_Binding_GoJson-16 28738 ns/op 453.59 MB/s 22039 B/op 49 allocs/op +BenchmarkDecoder_Parallel_Generic_Sonic-16 12321 ns/op 1057.91 MB/s 57233 B/op 723 allocs/op +BenchmarkDecoder_Parallel_Generic_Sonic_Fast-16 10644 ns/op 1224.64 MB/s 49362 B/op 313 allocs/op +BenchmarkDecoder_Parallel_Generic_StdLib-16 57587 ns/op 226.35 MB/s 50874 B/op 772 allocs/op +BenchmarkDecoder_Parallel_Generic_JsonIter-16 38666 ns/op 337.12 MB/s 55789 B/op 1068 allocs/op +BenchmarkDecoder_Parallel_Generic_GoJson-16 30259 ns/op 430.79 MB/s 66370 B/op 974 allocs/op +BenchmarkDecoder_Parallel_Binding_Sonic-16 5965 ns/op 2185.28 MB/s 27747 B/op 137 allocs/op +BenchmarkDecoder_Parallel_Binding_Sonic_Fast-16 5170 ns/op 2521.31 MB/s 24715 B/op 34 allocs/op +BenchmarkDecoder_Parallel_Binding_StdLib-16 27582 ns/op 472.58 MB/s 10576 B/op 208 allocs/op +BenchmarkDecoder_Parallel_Binding_JsonIter-16 13571 ns/op 960.51 MB/s 14685 B/op 385 allocs/op +BenchmarkDecoder_Parallel_Binding_GoJson-16 10031 ns/op 1299.51 MB/s 22111 B/op 49 allocs/op + +BenchmarkGetOne_Sonic-16 3276 ns/op 3975.78 MB/s 24 B/op 1 allocs/op +BenchmarkGetOne_Gjson-16 9431 ns/op 1380.81 MB/s 0 B/op 0 allocs/op +BenchmarkGetOne_Jsoniter-16 51178 ns/op 254.46 MB/s 27936 B/op 647 allocs/op +BenchmarkGetOne_Parallel_Sonic-16 216.7 ns/op 60098.95 MB/s 24 B/op 1 allocs/op +BenchmarkGetOne_Parallel_Gjson-16 1076 ns/op 12098.62 MB/s 0 B/op 0 allocs/op +BenchmarkGetOne_Parallel_Jsoniter-16 17741 ns/op 734.06 MB/s 27945 B/op 647 allocs/op +BenchmarkSetOne_Sonic-16 9571 ns/op 1360.61 MB/s 1584 B/op 17 allocs/op +BenchmarkSetOne_Sjson-16 36456 ns/op 357.22 MB/s 52180 B/op 9 allocs/op +BenchmarkSetOne_Jsoniter-16 79475 ns/op 163.86 MB/s 45862 B/op 964 allocs/op +BenchmarkSetOne_Parallel_Sonic-16 850.9 ns/op 15305.31 MB/s 1584 B/op 17 allocs/op +BenchmarkSetOne_Parallel_Sjson-16 18194 ns/op 715.77 MB/s 52247 B/op 9 allocs/op +BenchmarkSetOne_Parallel_Jsoniter-16 33560 ns/op 388.05 MB/s 45892 B/op 964 allocs/op +``` +- [Small](https://github.com/bytedance/sonic/blob/main/testdata/small.go) (400B, 11 keys, 3 layers) +![small benchmarks](bench-small.png) +- [Large](https://github.com/bytedance/sonic/blob/main/testdata/twitter.json) (635KB, 10000+ key, 6 layers) +![large benchmarks](bench-large.png) + +See [bench.sh](https://github.com/bytedance/sonic/blob/main/bench.sh) for benchmark codes. + +## How it works +See [INTRODUCTION.md](INTRODUCTION.md). + +## Usage + +### Marshal/Unmarshal + +Default behaviors are mostly consistent with `encoding/json`, except HTML escaping form (see [Escape HTML](https://github.com/bytedance/sonic/blob/main/README.md#escape-html)) and `SortKeys` feature (optional support see [Sort Keys](https://github.com/bytedance/sonic/blob/main/README.md#sort-keys)) that is **NOT** in conformity to [RFC8259](https://datatracker.ietf.org/doc/html/rfc8259). + ```go +import "github.com/bytedance/sonic" + +var data YourSchema +// Marshal +output, err := sonic.Marshal(&data) +// Unmarshal +err := sonic.Unmarshal(output, &data) + ``` + +### Streaming IO +Sonic supports decoding json from `io.Reader` or encoding objects into `io.`Writer`, aims at handling multiple values as well as reducing memory consumption. +- encoder +```go +import "github.com/bytedance/sonic/encoder" + +var o1 = map[string]interface{}{ + "a": "b", +} +var o2 = 1 +var w = bytes.NewBuffer(nil) +var enc = encoder.NewStreamEncoder(w) +enc.Encode(o1) +enc.Encode(o2) +println(w.String()) // "{"a":"b"}\n1" +``` +- decoder +```go +import "github.com/bytedance/sonic/decoder" + +var o = map[string]interface{}{} +var r = strings.NewReader(`{"a":"b"}{"1":"2"}`) +var dec = decoder.NewStreamDecoder(r) +dec.Decode(&o) +dec.Decode(&o) +fmt.Printf("%+v", o) // map[1:2 a:b] +``` + +### Use Number/Use Int64 + ```go +import "github.com/bytedance/sonic/decoder" + +var input = `1` +var data interface{} + +// default float64 +dc := decoder.NewDecoder(input) +dc.Decode(&data) // data == float64(1) +// use json.Number +dc = decoder.NewDecoder(input) +dc.UseNumber() +dc.Decode(&data) // data == json.Number("1") +// use int64 +dc = decoder.NewDecoder(input) +dc.UseInt64() +dc.Decode(&data) // data == int64(1) + +root, err := sonic.GetFromString(input) +// Get json.Number +jn := root.Number() +jm := root.InterfaceUseNumber().(json.Number) // jn == jm +// Get float64 +fn := root.Float64() +fm := root.Interface().(float64) // jn == jm + ``` + +### Sort Keys +On account of the performance loss from sorting (roughly 10%), sonic doesn't enable this feature by default. If your component depends on it to work (like [zstd](https://github.com/facebook/zstd)), Use it like this: +```go +import "github.com/bytedance/sonic" +import "github.com/bytedance/sonic/encoder" + +// Binding map only +m := map[string]interface{}{} +v, err := encoder.Encode(m, encoder.SortMapKeys) + +// Or ast.Node.SortKeys() before marshal +var root := sonic.Get(JSON) +err := root.SortKeys() +``` +### Escape HTML +On account of the performance loss (roughly 15%), sonic doesn't enable this feature by default. You can use `encoder.EscapeHTML` option to open this feature (align with `encoding/json.HTMLEscape`). +```go +import "github.com/bytedance/sonic" + +v := map[string]string{"&&":"<>"} +ret, err := Encode(v, EscapeHTML) // ret == `{"\u0026\u0026":{"X":"\u003c\u003e"}}` +``` +### Compact Format +Sonic encodes primitive objects (struct/map...) as compact-format JSON by default, except marshaling `json.RawMessage` or `json.Marshaler`: sonic ensures validating their output JSON but **DONOT** compacting them for performance concerns. We provide the option `encoder.CompactMarshaler` to add compacting process. + +### Print Error +If there invalid syntax in input JSON, sonic will return `decoder.SyntaxError`, which supports pretty-printing of error position +```go +import "github.com/bytedance/sonic" +import "github.com/bytedance/sonic/decoder" + +var data interface{} +err := sonic.UnmarshalString("[[[}]]", &data) +if err != nil { + /* One line by default */ + println(e.Error()) // "Syntax error at index 3: invalid char\n\n\t[[[}]]\n\t...^..\n" + /* Pretty print */ + if e, ok := err.(decoder.SyntaxError); ok { + /*Syntax error at index 3: invalid char + + [[[}]] + ...^.. + */ + print(e.Description()) + } else if me, ok := err.(*decoder.MismatchTypeError); ok { + // decoder.MismatchTypeError is new to Sonic v1.6.0 + print(me.Description()) + } +} +``` + +#### Mismatched Types [Sonic v1.6.0] +If there a **mismatch-typed** value for a given key, sonic will report `decoder.MismatchTypeError` (if there are many, report the last one), but still skip wrong the value and keep decoding next JSON. +```go +import "github.com/bytedance/sonic" +import "github.com/bytedance/sonic/decoder" + +var data = struct{ + A int + B int +}{} +err := UnmarshalString(`{"A":"1","B":1}`, &data) +println(err.Error()) // Mismatch type int with value string "at index 5: mismatched type with value\n\n\t{\"A\":\"1\",\"B\":1}\n\t.....^.........\n" +fmt.Printf("%+v", data) // {A:0 B:1} +``` +### Ast.Node +Sonic/ast.Node is a completely self-contained AST for JSON. It implements serialization and deserialization both and provides robust APIs for obtaining and modification of generic data. +#### Get/Index +Search partial JSON by given paths, which must be non-negative integer or string, or nil +```go +import "github.com/bytedance/sonic" + +input := []byte(`{"key1":[{},{"key2":{"key3":[1,2,3]}}]}`) + +// no path, returns entire json +root, err := sonic.Get(input) +raw := root.Raw() // == string(input) + +// multiple paths +root, err := sonic.Get(input, "key1", 1, "key2") +sub := root.Get("key3").Index(2).Int64() // == 3 +``` +**Tip**: since `Index()` uses offset to locate data, which is much faster than scanning like `Get()`, we suggest you use it as much as possible. And sonic also provides another API `IndexOrGet()` to underlying use offset as well as ensure the key is matched. + +#### Set/Unset +Modify the json content by Set()/Unset() +```go +import "github.com/bytedance/sonic" + +// Set +exist, err := root.Set("key4", NewBool(true)) // exist == false +alias1 := root.Get("key4") +println(alias1.Valid()) // true +alias2 := root.Index(1) +println(alias1 == alias2) // true + +// Unset +exist, err := root.UnsetByIndex(1) // exist == true +println(root.Get("key4").Check()) // "value not exist" +``` + +#### Serialize +To encode `ast.Node` as json, use `MarshalJson()` or `json.Marshal()` (MUST pass the node's pointer) +```go +import ( + "encoding/json" + "github.com/bytedance/sonic" +) + +buf, err := root.MarshalJson() +println(string(buf)) // {"key1":[{},{"key2":{"key3":[1,2,3]}}]} +exp, err := json.Marshal(&root) // WARN: use pointer +println(string(buf) == string(exp)) // true +``` + +#### APIs +- validation: `Check()`, `Error()`, `Valid()`, `Exist()` +- searching: `Index()`, `Get()`, `IndexPair()`, `IndexOrGet()`, `GetByPath()` +- go-type casting: `Int64()`, `Float64()`, `String()`, `Number()`, `Bool()`, `Map[UseNumber|UseNode]()`, `Array[UseNumber|UseNode]()`, `Interface[UseNumber|UseNode]()` +- go-type packing: `NewRaw()`, `NewNumber()`, `NewNull()`, `NewBool()`, `NewString()`, `NewObject()`, `NewArray()` +- iteration: `Values()`, `Properties()`, `ForEach()`, `SortKeys()` +- modification: `Set()`, `SetByIndex()`, `Add()` + +## Compatibility +Sonic **DOES NOT** ensure to support all environments, due to the difficulty of developing high-performance codes. For developers who use sonic to build their applications in different environments, we have the following suggestions: + +- Developing on **Mac M1**: Make sure you have Rosetta 2 installed on your machine, and set `GOARCH=amd64` when building your application. Rosetta 2 can automatically translate x86 binaries to arm64 binaries and run x86 applications on Mac M1. +- Developing on **Linux arm64**: You can install qemu and use the `qemu-x86_64 -cpu max` command to convert x86 binaries to amr64 binaries for applications built with sonic. The qemu can achieve a similar transfer effect to Rosetta 2 on Mac M1. + +For developers who want to use sonic on Linux arm64 without qemu, or those who want to handle JSON strictly consistent with `encoding/json`, we provide some compatible APIs as `sonic.API` +- `ConfigDefault`: the sonic's default config (`EscapeHTML=false`,`SortKeys=false`...) to run on sonic-supporting environment. It will fall back to `encoding/json` with the corresponding config, and some options like `SortKeys=false` will be invalid. +- `ConfigStd`: the std-compatible config (`EscapeHTML=true`,`SortKeys=true`...) to run on sonic-supporting environment. It will fall back to `encoding/json`. +- `ConfigFastest`: the fastest config (`NoQuoteTextMarshaler=true`) to run on sonic-supporting environment. It will fall back to `encoding/json` with the corresponding config, and some options will be invalid. + +## Tips + +### Pretouch +Since Sonic uses [golang-asm](https://github.com/twitchyliquid64/golang-asm) as a JIT assembler, which is NOT very suitable for runtime compiling, first-hit running of a huge schema may cause request-timeout or even process-OOM. For better stability, we advise **using `Pretouch()` for huge-schema or compact-memory applications** before `Marshal()/Unmarshal()`. +```go +import ( + "reflect" + "github.com/bytedance/sonic" + "github.com/bytedance/sonic/option" +) + +func init() { + var v HugeStruct + + // For most large types (nesting depth <= option.DefaultMaxInlineDepth) + err := sonic.Pretouch(reflect.TypeOf(v)) + + // with more CompileOption... + err := sonic.Pretouch(reflect.TypeOf(v), + // If the type is too deep nesting (nesting depth > option.DefaultMaxInlineDepth), + // you can set compile recursive loops in Pretouch for better stability in JIT. + option.WithCompileRecursiveDepth(loop), + // For a large nested struct, try to set a smaller depth to reduce compiling time. + option.WithCompileMaxInlineDepth(depth), + ) +} +``` + +### Copy string +When decoding **string values without any escaped characters**, sonic references them from the origin JSON buffer instead of mallocing a new buffer to copy. This helps a lot for CPU performance but may leave the whole JSON buffer in memory as long as the decoded objects are being used. In practice, we found the extra memory introduced by referring JSON buffer is usually 20% ~ 80% of decoded objects. Once an application holds these objects for a long time (for example, cache the decoded objects for reusing), its in-use memory on the server may go up. We provide the option `decoder.CopyString()` for users to choose not to reference the JSON buffer, which may cause a decline in CPU performance to some degree. + +### Pass string or []byte? +For alignment to `encoding/json`, we provide API to pass `[]byte` as an argument, but the string-to-bytes copy is conducted at the same time considering safety, which may lose performance when the origin JSON is huge. Therefore, you can use `UnmarshalString()` and `GetFromString()` to pass a string, as long as your origin data is a string or **nocopy-cast** is safe for your []byte. We also provide API `MarshalString()` for convenient **nocopy-cast** of encoded JSON []byte, which is safe since sonic's output bytes is always duplicated and unique. + +### Accelerate `encoding.TextMarshaler` +To ensure data security, sonic.Encoder quotes and escapes string values from `encoding.TextMarshaler` interfaces by default, which may degrade performance much if most of your data is in form of them. We provide `encoder.NoQuoteTextMarshaler` to skip these operations, which means you **MUST** ensure their output string escaped and quoted following [RFC8259](https://datatracker.ietf.org/doc/html/rfc8259). + + +### Better performance for generic data +In **fully-parsed** scenario, `Unmarshal()` performs better than `Get()`+`Node.Interface()`. But if you only have a part of the schema for specific json, you can combine `Get()` and `Unmarshal()` together: +```go +import "github.com/bytedance/sonic" + +node, err := sonic.GetFromString(_TwitterJson, "statuses", 3, "user") +var user User // your partial schema... +err = sonic.UnmarshalString(node.Raw(), &user) +``` +Even if you don't have any schema, use `ast.Node` as the container of generic values instead of `map` or `interface`: +```go +import "github.com/bytedance/sonic" + +root, err := sonic.GetFromString(_TwitterJson) +user := root.GetByPath("statuses", 3, "user") // === root.Get("status").Index(3).Get("user") +err = user.Check() + +// err = user.LoadAll() // only call this when you want to use 'user' concurrently... +go someFunc(user) +``` +Why? Because `ast.Node` stores its children using `array`: +- `Array`'s performance is **much better** than `Map` when Inserting (Deserialize) and Scanning (Serialize) data; +- **Hashing** (`map[x]`) is not as efficient as **Indexing** (`array[x]`), which `ast.Node` can conduct on **both array and object**; +- Using `Interface()`/`Map()` means Sonic must parse all the underlying values, while `ast.Node` can parse them **on demand**. + +**CAUTION:** `ast.Node` **DOESN'T** ensure concurrent security directly, due to its **lazy-load** design. However, you can call `Node.Load()`/`Node.LoadAll()` to achieve that, which may bring performance reduction while it still works faster than converting to `map` or `interface{}` + +## Community +Sonic is a subproject of [CloudWeGo](https://www.cloudwego.io/). We are committed to building a cloud native ecosystem. diff --git a/vendor/github.com/bytedance/sonic/api.go b/vendor/github.com/bytedance/sonic/api.go new file mode 100644 index 0000000000..a2bc67eaa0 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/api.go @@ -0,0 +1,185 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sonic + +import ( + `io` + + `github.com/bytedance/sonic/ast` +) + +// Config is a combination of sonic/encoder.Options and sonic/decoder.Options +type Config struct { + // EscapeHTML indicates encoder to escape all HTML characters + // after serializing into JSON (see https://pkg.go.dev/encoding/json#HTMLEscape). + // WARNING: This hurts performance A LOT, USE WITH CARE. + EscapeHTML bool + + // SortMapKeys indicates encoder that the keys of a map needs to be sorted + // before serializing into JSON. + // WARNING: This hurts performance A LOT, USE WITH CARE. + SortMapKeys bool + + // CompactMarshaler indicates encoder that the output JSON from json.Marshaler + // is always compact and needs no validation + CompactMarshaler bool + + // NoQuoteTextMarshaler indicates encoder that the output text from encoding.TextMarshaler + // is always escaped string and needs no quoting + NoQuoteTextMarshaler bool + + // NoNullSliceOrMap indicates encoder that all empty Array or Object are encoded as '[]' or '{}', + // instead of 'null' + NoNullSliceOrMap bool + + // UseInt64 indicates decoder to unmarshal an integer into an interface{} as an + // int64 instead of as a float64. + UseInt64 bool + + // UseNumber indicates decoder to unmarshal a number into an interface{} as a + // json.Number instead of as a float64. + UseNumber bool + + // UseUnicodeErrors indicates decoder to return an error when encounter invalid + // UTF-8 escape sequences. + UseUnicodeErrors bool + + // DisallowUnknownFields indicates decoder to return an error when the destination + // is a struct and the input contains object keys which do not match any + // non-ignored, exported fields in the destination. + DisallowUnknownFields bool + + // CopyString indicates decoder to decode string values by copying instead of referring. + CopyString bool + + // ValidateString indicates decoder and encoder to valid string values: decoder will return errors + // when unescaped control chars(\u0000-\u001f) in the string value of JSON. + ValidateString bool +} + +var ( + // ConfigDefault is the default config of APIs, aiming at efficiency and safty. + ConfigDefault = Config{}.Froze() + + // ConfigStd is the standard config of APIs, aiming at being compatible with encoding/json. + ConfigStd = Config{ + EscapeHTML : true, + SortMapKeys: true, + CompactMarshaler: true, + CopyString : true, + ValidateString : true, + }.Froze() + + // ConfigFastest is the fastest config of APIs, aiming at speed. + ConfigFastest = Config{ + NoQuoteTextMarshaler: true, + }.Froze() +) + + +// API is a binding of specific config. +// This interface is inspired by github.com/json-iterator/go, +// and has same behaviors under equavilent config. +type API interface { + // MarshalToString returns the JSON encoding string of v + MarshalToString(v interface{}) (string, error) + // Marshal returns the JSON encoding bytes of v. + Marshal(v interface{}) ([]byte, error) + // MarshalIndent returns the JSON encoding bytes with indent and prefix. + MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) + // UnmarshalFromString parses the JSON-encoded bytes and stores the result in the value pointed to by v. + UnmarshalFromString(str string, v interface{}) error + // Unmarshal parses the JSON-encoded string and stores the result in the value pointed to by v. + Unmarshal(data []byte, v interface{}) error + // NewEncoder create a Encoder holding writer + NewEncoder(writer io.Writer) Encoder + // NewDecoder create a Decoder holding reader + NewDecoder(reader io.Reader) Decoder + // Valid validates the JSON-encoded bytes and reportes if it is valid + Valid(data []byte) bool +} + +// Encoder encodes JSON into io.Writer +type Encoder interface { + // Encode writes the JSON encoding of v to the stream, followed by a newline character. + Encode(val interface{}) error + // SetEscapeHTML specifies whether problematic HTML characters + // should be escaped inside JSON quoted strings. + // The default behavior NOT ESCAPE + SetEscapeHTML(on bool) + // SetIndent instructs the encoder to format each subsequent encoded value + // as if indented by the package-level function Indent(dst, src, prefix, indent). + // Calling SetIndent("", "") disables indentation + SetIndent(prefix, indent string) +} + +// Decoder decodes JSON from io.Read +type Decoder interface { + // Decode reads the next JSON-encoded value from its input and stores it in the value pointed to by v. + Decode(val interface{}) error + // Buffered returns a reader of the data remaining in the Decoder's buffer. + // The reader is valid until the next call to Decode. + Buffered() io.Reader + // DisallowUnknownFields causes the Decoder to return an error when the destination is a struct + // and the input contains object keys which do not match any non-ignored, exported fields in the destination. + DisallowUnknownFields() + // More reports whether there is another element in the current array or object being parsed. + More() bool + // UseNumber causes the Decoder to unmarshal a number into an interface{} as a Number instead of as a float64. + UseNumber() +} + +// Marshal returns the JSON encoding bytes of v. +func Marshal(val interface{}) ([]byte, error) { + return ConfigDefault.Marshal(val) +} + +// MarshalString returns the JSON encoding string of v. +func MarshalString(val interface{}) (string, error) { + return ConfigDefault.MarshalToString(val) +} + +// Unmarshal parses the JSON-encoded data and stores the result in the value pointed to by v. +// NOTICE: This API copies given buffer by default, +// if you want to pass JSON more efficiently, use UnmarshalString instead. +func Unmarshal(buf []byte, val interface{}) error { + return ConfigDefault.Unmarshal(buf, val) +} + +// UnmarshalString is like Unmarshal, except buf is a string. +func UnmarshalString(buf string, val interface{}) error { + return ConfigDefault.UnmarshalFromString(buf, val) +} + +// Get searches the given path from json, +// and returns its representing ast.Node. +// +// Each path arg must be integer or string: +// - Integer means searching current node as array +// - String means searching current node as object +// +// Note, the api expects the json is well-formed at least, +// otherwise it may return unexpected result. +func Get(src []byte, path ...interface{}) (ast.Node, error) { + return GetFromString(string(src), path...) +} + +// GetFromString is same with Get except src is string, +// which can reduce unnecessary memory copy. +func GetFromString(src string, path ...interface{}) (ast.Node, error) { + return ast.NewSearcher(src).GetByPath(path...) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/ast/api_amd64.go b/vendor/github.com/bytedance/sonic/ast/api_amd64.go new file mode 100644 index 0000000000..6b3458aeeb --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/api_amd64.go @@ -0,0 +1,126 @@ +// +build amd64,go1.15,!go1.21 + + +package ast + +import ( + `runtime` + `unsafe` + + `github.com/bytedance/sonic/encoder` + `github.com/bytedance/sonic/internal/native` + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` + uq `github.com/bytedance/sonic/unquote` + `github.com/chenzhuoyu/base64x` +) + +var typeByte = rt.UnpackEface(byte(0)).Type + +func quote(buf *[]byte, val string) { + *buf = append(*buf, '"') + if len(val) == 0 { + *buf = append(*buf, '"') + } + + sp := rt.IndexChar(val, 0) + nb := len(val) + b := (*rt.GoSlice)(unsafe.Pointer(buf)) + + // input buffer + for nb > 0 { + // output buffer + dp := unsafe.Pointer(uintptr(b.Ptr) + uintptr(b.Len)) + dn := b.Cap - b.Len + // call native.Quote, dn is byte count it outputs + ret := native.Quote(sp, nb, dp, &dn, 0) + // update *buf length + b.Len += dn + + // no need more output + if ret >= 0 { + break + } + + // double buf size + *b = growslice(typeByte, *b, b.Cap*2) + // ret is the complement of consumed input + ret = ^ret + // update input buffer + nb -= ret + sp = unsafe.Pointer(uintptr(sp) + uintptr(ret)) + } + + runtime.KeepAlive(buf) + runtime.KeepAlive(sp) + *buf = append(*buf, '"') +} + +func unquote(src string) (string, types.ParsingError) { + return uq.String(src) +} + +func decodeBase64(src string) ([]byte, error) { + return base64x.StdEncoding.DecodeString(src) +} + +func encodeBase64(src []byte) string { + return base64x.StdEncoding.EncodeToString(src) +} + +func (self *Parser) decodeValue() (val types.JsonState) { + sv := (*rt.GoString)(unsafe.Pointer(&self.s)) + self.p = native.Value(sv.Ptr, sv.Len, self.p, &val, 0) + return +} + +func (self *Parser) skip() (int, types.ParsingError) { + fsm := types.NewStateMachine() + start := native.SkipOne(&self.s, &self.p, fsm, 0) + types.FreeStateMachine(fsm) + + if start < 0 { + return self.p, types.ParsingError(-start) + } + return start, 0 +} + +func (self *Node) encodeInterface(buf *[]byte) error { + //WARN: NOT compatible with json.Encoder + return encoder.EncodeInto(buf, self.packAny(), 0) +} + +func (self *Parser) skipFast() (int, types.ParsingError) { + start := native.SkipOneFast(&self.s, &self.p) + if start < 0 { + return self.p, types.ParsingError(-start) + } + return start, 0 +} + +func (self *Parser) getByPath(path ...interface{}) (int, types.ParsingError) { + start := native.GetByPath(&self.s, &self.p, &path) + runtime.KeepAlive(path) + if start < 0 { + return self.p, types.ParsingError(-start) + } + return start, 0 +} + + +func (self *Searcher) GetByPath(path ...interface{}) (Node, error) { + var err types.ParsingError + var start int + + self.parser.p = 0 + start, err = self.parser.getByPath(path...) + if err != 0 { + return Node{}, self.parser.syntaxError(err) + } + + t := switchRawType(self.parser.s[start]) + if t == _V_NONE { + return Node{}, self.parser.ExportError(err) + } + return newRawNode(self.parser.s[start:self.parser.p], t), nil +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/ast/api_compat.go b/vendor/github.com/bytedance/sonic/ast/api_compat.go new file mode 100644 index 0000000000..642330c51d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/api_compat.go @@ -0,0 +1,102 @@ +// +build !amd64 go1.21 + +package ast + +import ( + `encoding/base64` + `encoding/json` + `fmt` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +func quote(buf *[]byte, val string) { + quoteString(buf, val) +} + +func unquote(src string) (string, types.ParsingError) { + sp := rt.IndexChar(src, -1) + out, ok := unquoteBytes(rt.BytesFrom(sp, len(src)+2, len(src)+2)) + if !ok { + return "", types.ERR_INVALID_ESCAPE + } + return rt.Mem2Str(out), 0 +} + + + +func decodeBase64(src string) ([]byte, error) { + return base64.StdEncoding.DecodeString(src) +} + +func encodeBase64(src []byte) string { + return base64.StdEncoding.EncodeToString(src) +} + +func (self *Parser) decodeValue() (val types.JsonState) { + e, v := decodeValue(self.s, self.p) + if e < 0 { + return v + } + self.p = e + return v +} + +func (self *Parser) skip() (int, types.ParsingError) { + e, s := skipValue(self.s, self.p) + if e < 0 { + return self.p, types.ParsingError(-e) + } + self.p = e + return s, 0 +} + +func (self *Parser) skipFast() (int, types.ParsingError) { + return self.skip() +} + +func (self *Node) encodeInterface(buf *[]byte) error { + out, err := json.Marshal(self.packAny()) + if err != nil { + return err + } + *buf = append(*buf, out...) + return nil +} + +func (self *Searcher) GetByPath(path ...interface{}) (Node, error) { + self.parser.p = 0 + + var err types.ParsingError + for _, p := range path { + switch p := p.(type) { + case int: + if err = self.parser.searchIndex(p); err != 0 { + return Node{}, self.parser.ExportError(err) + } + case string: + if err = self.parser.searchKey(p); err != 0 { + return Node{}, self.parser.ExportError(err) + } + default: + panic("path must be either int or string") + } + } + + var start = self.parser.p + if start, err = self.parser.skip(); err != 0 { + return Node{}, self.parser.ExportError(err) + } + ns := len(self.parser.s) + if self.parser.p > ns || start >= ns || start>=self.parser.p { + return Node{}, fmt.Errorf("skip %d char out of json boundary", start) + } + + t := switchRawType(self.parser.s[start]) + if t == _V_NONE { + return Node{}, self.parser.ExportError(err) + } + + return newRawNode(self.parser.s[start:self.parser.p], t), nil +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/ast/asm.s b/vendor/github.com/bytedance/sonic/ast/asm.s new file mode 100644 index 0000000000..e69de29bb2 diff --git a/vendor/github.com/bytedance/sonic/ast/decode.go b/vendor/github.com/bytedance/sonic/ast/decode.go new file mode 100644 index 0000000000..d54e983180 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/decode.go @@ -0,0 +1,430 @@ +package ast + +import ( + `encoding/base64` + `runtime` + `strconv` + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +const _blankCharsMask = (1 << ' ') | (1 << '\t') | (1 << '\r') | (1 << '\n') + +const ( + bytesNull = "null" + bytesTrue = "true" + bytesFalse = "false" + bytesObject = "{}" + bytesArray = "[]" +) + +func isSpace(c byte) bool { + return (int(1<= se { + return -int(types.ERR_EOF) + } + runtime.KeepAlive(src) + return int(sp - uintptr(rt.IndexChar(src, 0))) +} + +func decodeNull(src string, pos int) (ret int) { + ret = pos + 4 + if ret > len(src) { + return -int(types.ERR_EOF) + } + if src[pos:ret] == bytesNull { + return ret + } else { + return -int(types.ERR_INVALID_CHAR) + } +} + +func decodeTrue(src string, pos int) (ret int) { + ret = pos + 4 + if ret > len(src) { + return -int(types.ERR_EOF) + } + if src[pos:ret] == bytesTrue { + return ret + } else { + return -int(types.ERR_INVALID_CHAR) + } + +} + +func decodeFalse(src string, pos int) (ret int) { + ret = pos + 5 + if ret > len(src) { + return -int(types.ERR_EOF) + } + if src[pos:ret] == bytesFalse { + return ret + } + return -int(types.ERR_INVALID_CHAR) +} + +func decodeString(src string, pos int) (ret int, v string) { + ret, ep := skipString(src, pos) + if ep == -1 { + (*rt.GoString)(unsafe.Pointer(&v)).Ptr = rt.IndexChar(src, pos+1) + (*rt.GoString)(unsafe.Pointer(&v)).Len = ret - pos - 2 + return ret, v + } + + vv, ok := unquoteBytes(rt.Str2Mem(src[pos:ret])) + if !ok { + return -int(types.ERR_INVALID_CHAR), "" + } + + runtime.KeepAlive(src) + return ret, rt.Mem2Str(vv) +} + +func decodeBinary(src string, pos int) (ret int, v []byte) { + var vv string + ret, vv = decodeString(src, pos) + if ret < 0 { + return ret, nil + } + var err error + v, err = base64.StdEncoding.DecodeString(vv) + if err != nil { + return -int(types.ERR_INVALID_CHAR), nil + } + return ret, v +} + +func isDigit(c byte) bool { + return c >= '0' && c <= '9' +} + +func decodeInt64(src string, pos int) (ret int, v int64, err error) { + sp := uintptr(rt.IndexChar(src, pos)) + ss := uintptr(sp) + se := uintptr(rt.IndexChar(src, len(src))) + if uintptr(sp) >= se { + return -int(types.ERR_EOF), 0, nil + } + + if c := *(*byte)(unsafe.Pointer(sp)); c == '-' { + sp += 1 + } + if sp == se { + return -int(types.ERR_EOF), 0, nil + } + + for ; sp < se; sp += uintptr(1) { + if !isDigit(*(*byte)(unsafe.Pointer(sp))) { + break + } + } + + if sp < se { + if c := *(*byte)(unsafe.Pointer(sp)); c == '.' || c == 'e' || c == 'E' { + return -int(types.ERR_INVALID_NUMBER_FMT), 0, nil + } + } + + var vv string + ret = int(uintptr(sp) - uintptr((*rt.GoString)(unsafe.Pointer(&src)).Ptr)) + (*rt.GoString)(unsafe.Pointer(&vv)).Ptr = unsafe.Pointer(ss) + (*rt.GoString)(unsafe.Pointer(&vv)).Len = ret - pos + + v, err = strconv.ParseInt(vv, 10, 64) + if err != nil { + //NOTICE: allow overflow here + if err.(*strconv.NumError).Err == strconv.ErrRange { + return ret, 0, err + } + return -int(types.ERR_INVALID_CHAR), 0, err + } + + runtime.KeepAlive(src) + return ret, v, nil +} + +func isNumberChars(c byte) bool { + return (c >= '0' && c <= '9') || c == '+' || c == '-' || c == 'e' || c == 'E' || c == '.' +} + +func decodeFloat64(src string, pos int) (ret int, v float64, err error) { + sp := uintptr(rt.IndexChar(src, pos)) + ss := uintptr(sp) + se := uintptr(rt.IndexChar(src, len(src))) + if uintptr(sp) >= se { + return -int(types.ERR_EOF), 0, nil + } + + if c := *(*byte)(unsafe.Pointer(sp)); c == '-' { + sp += 1 + } + if sp == se { + return -int(types.ERR_EOF), 0, nil + } + + for ; sp < se; sp += uintptr(1) { + if !isNumberChars(*(*byte)(unsafe.Pointer(sp))) { + break + } + } + + var vv string + ret = int(uintptr(sp) - uintptr((*rt.GoString)(unsafe.Pointer(&src)).Ptr)) + (*rt.GoString)(unsafe.Pointer(&vv)).Ptr = unsafe.Pointer(ss) + (*rt.GoString)(unsafe.Pointer(&vv)).Len = ret - pos + + v, err = strconv.ParseFloat(vv, 64) + if err != nil { + //NOTICE: allow overflow here + if err.(*strconv.NumError).Err == strconv.ErrRange { + return ret, 0, err + } + return -int(types.ERR_INVALID_CHAR), 0, err + } + + runtime.KeepAlive(src) + return ret, v, nil +} + +func decodeValue(src string, pos int) (ret int, v types.JsonState) { + pos = skipBlank(src, pos) + if pos < 0 { + return pos, types.JsonState{Vt: types.ValueType(pos)} + } + switch c := src[pos]; c { + case 'n': + ret = decodeNull(src, pos) + if ret < 0 { + return ret, types.JsonState{Vt: types.ValueType(ret)} + } + return ret, types.JsonState{Vt: types.V_NULL} + case '"': + var ep int + ret, ep = skipString(src, pos) + if ret < 0 { + return ret, types.JsonState{Vt: types.ValueType(ret)} + } + return ret, types.JsonState{Vt: types.V_STRING, Iv: int64(pos + 1), Ep: ep} + case '{': + return pos + 1, types.JsonState{Vt: types.V_OBJECT} + case '[': + return pos + 1, types.JsonState{Vt: types.V_ARRAY} + case 't': + ret = decodeTrue(src, pos) + if ret < 0 { + return ret, types.JsonState{Vt: types.ValueType(ret)} + } + return ret, types.JsonState{Vt: types.V_TRUE} + case 'f': + ret = decodeFalse(src, pos) + if ret < 0 { + return ret, types.JsonState{Vt: types.ValueType(ret)} + } + return ret, types.JsonState{Vt: types.V_FALSE} + case '-', '+', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + var iv int64 + ret, iv, _ = decodeInt64(src, pos) + if ret >= 0 { + return ret, types.JsonState{Vt: types.V_INTEGER, Iv: iv, Ep: pos} + } else if ret != -int(types.ERR_INVALID_NUMBER_FMT) { + return ret, types.JsonState{Vt: types.ValueType(ret)} + } + var fv float64 + ret, fv, _ = decodeFloat64(src, pos) + if ret >= 0 { + return ret, types.JsonState{Vt: types.V_DOUBLE, Dv: fv, Ep: pos} + } else { + return ret, types.JsonState{Vt: types.ValueType(ret)} + } + default: + return -int(types.ERR_INVALID_CHAR), types.JsonState{Vt:-types.ValueType(types.ERR_INVALID_CHAR)} + } +} + +func skipNumber(src string, pos int) (ret int) { + sp := uintptr(rt.IndexChar(src, pos)) + se := uintptr(rt.IndexChar(src, len(src))) + if uintptr(sp) >= se { + return -int(types.ERR_EOF) + } + + if c := *(*byte)(unsafe.Pointer(sp)); c == '-' { + sp += 1 + } + ss := sp + + var pointer bool + var exponent bool + var lastIsDigit bool + var nextNeedDigit = true + + for ; sp < se; sp += uintptr(1) { + c := *(*byte)(unsafe.Pointer(sp)) + if isDigit(c) { + lastIsDigit = true + nextNeedDigit = false + continue + } else if nextNeedDigit { + return -int(types.ERR_INVALID_CHAR) + } else if c == '.' { + if !lastIsDigit || pointer || sp == ss { + return -int(types.ERR_INVALID_CHAR) + } + pointer = true + lastIsDigit = false + nextNeedDigit = true + continue + } else if c == 'e' || c == 'E' { + if !lastIsDigit || exponent { + return -int(types.ERR_INVALID_CHAR) + } + if sp == se-1 { + return -int(types.ERR_EOF) + } + exponent = true + lastIsDigit = false + nextNeedDigit = false + continue + } else if c == '-' || c == '+' { + if prev := *(*byte)(unsafe.Pointer(sp - 1)); prev != 'e' && prev != 'E' { + return -int(types.ERR_INVALID_CHAR) + } + lastIsDigit = false + nextNeedDigit = true + continue + } else { + break + } + } + + if nextNeedDigit { + return -int(types.ERR_EOF) + } + + runtime.KeepAlive(src) + return int(uintptr(sp) - uintptr((*rt.GoString)(unsafe.Pointer(&src)).Ptr)) +} + +func skipString(src string, pos int) (ret int, ep int) { + if pos+1 >= len(src) { + return -int(types.ERR_EOF), -1 + } + + sp := uintptr(rt.IndexChar(src, pos)) + se := uintptr(rt.IndexChar(src, len(src))) + + if *(*byte)(unsafe.Pointer(sp)) != '"' { + return -int(types.ERR_INVALID_CHAR), -1 + } + sp += 1 + + ep = -1 + for sp < se { + c := *(*byte)(unsafe.Pointer(sp)) + if c == '\\' { + if ep == -1 { + ep = int(uintptr(sp) - uintptr((*rt.GoString)(unsafe.Pointer(&src)).Ptr)) + } + sp += 2 + continue + } + sp += 1 + if c == '"' { + break + } + } + + if sp > se { + return -int(types.ERR_EOF), -1 + } + + runtime.KeepAlive(src) + return int(uintptr(sp) - uintptr((*rt.GoString)(unsafe.Pointer(&src)).Ptr)), ep +} + +func skipPair(src string, pos int, lchar byte, rchar byte) (ret int) { + if pos+1 >= len(src) { + return -int(types.ERR_EOF) + } + + sp := uintptr(rt.IndexChar(src, pos)) + se := uintptr(rt.IndexChar(src, len(src))) + + if *(*byte)(unsafe.Pointer(sp)) != lchar { + return -int(types.ERR_INVALID_CHAR) + } + + sp += 1 + nbrace := 1 + inquote := false + + for sp < se { + c := *(*byte)(unsafe.Pointer(sp)) + if c == '\\' { + sp += 2 + continue + } else if c == '"' { + inquote = !inquote + } else if c == lchar { + if !inquote { + nbrace += 1 + } + } else if c == rchar { + if !inquote { + nbrace -= 1 + if nbrace == 0 { + sp += 1 + break + } + } + } + sp += 1 + } + + if nbrace != 0 { + return -int(types.ERR_INVALID_CHAR) + } + + runtime.KeepAlive(src) + return int(uintptr(sp) - uintptr((*rt.GoString)(unsafe.Pointer(&src)).Ptr)) +} + +func skipValue(src string, pos int) (ret int, start int) { + pos = skipBlank(src, pos) + if pos < 0 { + return pos, -1 + } + switch c := src[pos]; c { + case 'n': + ret = decodeNull(src, pos) + case '"': + ret, _ = skipString(src, pos) + case '{': + ret = skipPair(src, pos, '{', '}') + case '[': + ret = skipPair(src, pos, '[', ']') + case 't': + ret = decodeTrue(src, pos) + case 'f': + ret = decodeFalse(src, pos) + case '-', '+', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + ret = skipNumber(src, pos) + default: + ret = -int(types.ERR_INVALID_CHAR) + } + return ret, pos +} diff --git a/vendor/github.com/bytedance/sonic/ast/encode.go b/vendor/github.com/bytedance/sonic/ast/encode.go new file mode 100644 index 0000000000..1187e30c26 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/encode.go @@ -0,0 +1,259 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ast + +import ( + `sync` + `unicode/utf8` + + `github.com/bytedance/sonic/internal/rt` +) + +const ( + _MaxBuffer = 1024 // 1KB buffer size +) + +func quoteString(e *[]byte, s string) { + *e = append(*e, '"') + start := 0 + for i := 0; i < len(s); { + if b := s[i]; b < utf8.RuneSelf { + if safeSet[b] { + i++ + continue + } + if start < i { + *e = append(*e, s[start:i]...) + } + *e = append(*e, '\\') + switch b { + case '\\', '"': + *e = append(*e, b) + case '\n': + *e = append(*e, 'n') + case '\r': + *e = append(*e, 'r') + case '\t': + *e = append(*e, 't') + default: + // This encodes bytes < 0x20 except for \t, \n and \r. + // If escapeHTML is set, it also escapes <, >, and & + // because they can lead to security holes when + // user-controlled strings are rendered into JSON + // and served to some browsers. + *e = append(*e, `u00`...) + *e = append(*e, hex[b>>4]) + *e = append(*e, hex[b&0xF]) + } + i++ + start = i + continue + } + c, size := utf8.DecodeRuneInString(s[i:]) + // if c == utf8.RuneError && size == 1 { + // if start < i { + // e.Write(s[start:i]) + // } + // e.WriteString(`\ufffd`) + // i += size + // start = i + // continue + // } + if c == '\u2028' || c == '\u2029' { + if start < i { + *e = append(*e, s[start:i]...) + } + *e = append(*e, `\u202`...) + *e = append(*e, hex[c&0xF]) + i += size + start = i + continue + } + i += size + } + if start < len(s) { + *e = append(*e, s[start:]...) + } + *e = append(*e, '"') +} + +var bytesPool = sync.Pool{} + +func (self *Node) MarshalJSON() ([]byte, error) { + buf := newBuffer() + err := self.encode(buf) + if err != nil { + freeBuffer(buf) + return nil, err + } + + ret := make([]byte, len(*buf)) + copy(ret, *buf) + freeBuffer(buf) + return ret, err +} + +func newBuffer() *[]byte { + if ret := bytesPool.Get(); ret != nil { + return ret.(*[]byte) + } else { + buf := make([]byte, 0, _MaxBuffer) + return &buf + } +} + +func freeBuffer(buf *[]byte) { + *buf = (*buf)[:0] + bytesPool.Put(buf) +} + +func (self *Node) encode(buf *[]byte) error { + if self.IsRaw() { + return self.encodeRaw(buf) + } + switch self.Type() { + case V_NONE : return ErrNotExist + case V_ERROR : return self.Check() + case V_NULL : return self.encodeNull(buf) + case V_TRUE : return self.encodeTrue(buf) + case V_FALSE : return self.encodeFalse(buf) + case V_ARRAY : return self.encodeArray(buf) + case V_OBJECT: return self.encodeObject(buf) + case V_STRING: return self.encodeString(buf) + case V_NUMBER: return self.encodeNumber(buf) + case V_ANY : return self.encodeInterface(buf) + default : return ErrUnsupportType + } +} + +func (self *Node) encodeRaw(buf *[]byte) error { + raw, err := self.Raw() + if err != nil { + return err + } + *buf = append(*buf, raw...) + return nil +} + +func (self *Node) encodeNull(buf *[]byte) error { + *buf = append(*buf, bytesNull...) + return nil +} + +func (self *Node) encodeTrue(buf *[]byte) error { + *buf = append(*buf, bytesTrue...) + return nil +} + +func (self *Node) encodeFalse(buf *[]byte) error { + *buf = append(*buf, bytesFalse...) + return nil +} + +func (self *Node) encodeNumber(buf *[]byte) error { + str := rt.StrFrom(self.p, self.v) + *buf = append(*buf, str...) + return nil +} + +func (self *Node) encodeString(buf *[]byte) error { + if self.v == 0 { + *buf = append(*buf, '"', '"') + return nil + } + + quote(buf, rt.StrFrom(self.p, self.v)) + return nil +} + +func (self *Node) encodeArray(buf *[]byte) error { + if self.isLazy() { + if err := self.skipAllIndex(); err != nil { + return err + } + } + + nb := self.len() + if nb == 0 { + *buf = append(*buf, bytesArray...) + return nil + } + + *buf = append(*buf, '[') + + var p = (*Node)(self.p) + err := p.encode(buf) + if err != nil { + return err + } + for i := 1; i < nb; i++ { + *buf = append(*buf, ',') + p = p.unsafe_next() + err := p.encode(buf) + if err != nil { + return err + } + } + + *buf = append(*buf, ']') + return nil +} + +func (self *Pair) encode(buf *[]byte) error { + if len(*buf) == 0 { + *buf = append(*buf, '"', '"', ':') + return self.Value.encode(buf) + } + + quote(buf, self.Key) + *buf = append(*buf, ':') + + return self.Value.encode(buf) +} + +func (self *Node) encodeObject(buf *[]byte) error { + if self.isLazy() { + if err := self.skipAllKey(); err != nil { + return err + } + } + + nb := self.len() + if nb == 0 { + *buf = append(*buf, bytesObject...) + return nil + } + + *buf = append(*buf, '{') + + var p = (*Pair)(self.p) + err := p.encode(buf) + if err != nil { + return err + } + for i := 1; i < nb; i++ { + *buf = append(*buf, ',') + p = p.unsafe_next() + err := p.encode(buf) + if err != nil { + return err + } + } + + *buf = append(*buf, '}') + return nil +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/ast/error.go b/vendor/github.com/bytedance/sonic/ast/error.go new file mode 100644 index 0000000000..f4c441ae6c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/error.go @@ -0,0 +1,98 @@ +package ast + +import ( + `fmt` + `strings` + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` +) + +func (self *Parser) syntaxError(err types.ParsingError) SyntaxError { + return SyntaxError{ + Pos : self.p, + Src : self.s, + Code: err, + } +} + +func newSyntaxError(err SyntaxError) *Node { + msg := err.Description() + return &Node{ + t: V_ERROR, + v: int64(err.Code), + p: unsafe.Pointer(&msg), + } +} + +type SyntaxError struct { + Pos int + Src string + Code types.ParsingError + Msg string +} + +func (self SyntaxError) Error() string { + return fmt.Sprintf("%q", self.Description()) +} + +func (self SyntaxError) Description() string { + return "Syntax error " + self.description() +} + +func (self SyntaxError) description() string { + i := 16 + p := self.Pos - i + q := self.Pos + i + + /* check for empty source */ + if self.Src == "" { + return fmt.Sprintf("no sources available: %#v", self) + } + + /* prevent slicing before the beginning */ + if p < 0 { + p, q, i = 0, q - p, i + p + } + + /* prevent slicing beyond the end */ + if n := len(self.Src); q > n { + n = q - n + q = len(self.Src) + + /* move the left bound if possible */ + if p > n { + i += n + p -= n + } + } + + /* left and right length */ + x := clamp_zero(i) + y := clamp_zero(q - p - i - 1) + + /* compose the error description */ + return fmt.Sprintf( + "at index %d: %s\n\n\t%s\n\t%s^%s\n", + self.Pos, + self.Message(), + self.Src[p:q], + strings.Repeat(".", x), + strings.Repeat(".", y), + ) +} + +func (self SyntaxError) Message() string { + if self.Msg == "" { + return self.Code.Message() + } + return self.Msg +} + +func clamp_zero(v int) int { + if v < 0 { + return 0 + } else { + return v + } +} diff --git a/vendor/github.com/bytedance/sonic/ast/iterator.go b/vendor/github.com/bytedance/sonic/ast/iterator.go new file mode 100644 index 0000000000..03a25b4e9f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/iterator.go @@ -0,0 +1,164 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ast + +import ( + `fmt` + + `github.com/bytedance/sonic/internal/native/types` +) + +type Pair struct { + Key string + Value Node +} + +// Values returns iterator for array's children traversal +func (self *Node) Values() (ListIterator, error) { + if err := self.should(types.V_ARRAY, "an array"); err != nil { + return ListIterator{}, err + } + return ListIterator{Iterator{p: self}}, nil +} + +// Properties returns iterator for object's children traversal +func (self *Node) Properties() (ObjectIterator, error) { + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return ObjectIterator{}, err + } + return ObjectIterator{Iterator{p: self}}, nil +} + +type Iterator struct { + i int + p *Node +} + +func (self *Iterator) Pos() int { + return self.i +} + +func (self *Iterator) Len() int { + return self.p.len() +} + +// HasNext reports if it is the end of iteration or has error. +func (self *Iterator) HasNext() bool { + if !self.p.isLazy() { + return self.p.Valid() && self.i < self.p.len() + } else if self.p.t == _V_ARRAY_LAZY { + return self.p.skipNextNode().Valid() + } else if self.p.t == _V_OBJECT_LAZY { + pair := self.p.skipNextPair() + if pair == nil { + return false + } + return pair.Value.Valid() + } + return false +} + +// ListIterator is specialized iterator for V_ARRAY +type ListIterator struct { + Iterator +} + +// ObjectIterator is specialized iterator for V_ARRAY +type ObjectIterator struct { + Iterator +} + +// Next scans through children of underlying V_ARRAY, +// copies each child to v, and returns .HasNext(). +func (self *ListIterator) Next(v *Node) bool { + if !self.HasNext() { + return false + } else { + *v, self.i = *self.p.nodeAt(self.i), self.i + 1 + return true + } +} + +// Next scans through children of underlying V_OBJECT, +// copies each child to v, and returns .HasNext(). +func (self *ObjectIterator) Next(p *Pair) bool { + if !self.HasNext() { + return false + } else { + *p, self.i = *self.p.pairAt(self.i), self.i + 1 + return true + } +} + +// Sequence represents scanning path of single-layer nodes. +// Index indicates the value's order in both V_ARRAY and V_OBJECT json. +// Key is the value's key (for V_OBJECT json only, otherwise it will be nil). +type Sequence struct { + Index int + Key *string + // Level int +} + +// String is string representation of one Sequence +func (s Sequence) String() string { + k := "" + if s.Key != nil { + k = *s.Key + } + return fmt.Sprintf("Sequence(%d, %q)", s.Index, k) +} + +type Scanner func(path Sequence, node *Node) bool + +// ForEach scans one V_OBJECT node's children from JSON head to tail, +// and pass the Sequence and Node of corresponding JSON value. +// +// Especailly, if the node is not V_ARRAY or V_OBJECT, +// the node itself will be returned and Sequence.Index == -1. +func (self *Node) ForEach(sc Scanner) error { + switch self.itype() { + case types.V_ARRAY: + ns, err := self.UnsafeArray() + if err != nil { + return err + } + for i := range ns { + if !sc(Sequence{i, nil}, &ns[i]) { + return err + } + } + case types.V_OBJECT: + ns, err := self.UnsafeMap() + if err != nil { + return err + } + for i := range ns { + if !sc(Sequence{i, &ns[i].Key}, &ns[i].Value) { + return err + } + } + default: + sc(Sequence{-1, nil}, self) + } + return self.Check() +} + +type PairSlice []Pair + +func (self PairSlice) Sort() { + radixQsort(self, 0, maxDepth(len(self))) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/ast/node.go b/vendor/github.com/bytedance/sonic/ast/node.go new file mode 100644 index 0000000000..0d37baf120 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/node.go @@ -0,0 +1,1802 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ast + +import ( + `encoding/json` + `fmt` + `strconv` + `unsafe` + `reflect` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +const ( + _CAP_BITS = 32 + _LEN_MASK = 1 << _CAP_BITS - 1 + + _NODE_SIZE = unsafe.Sizeof(Node{}) + _PAIR_SIZE = unsafe.Sizeof(Pair{}) +) + +const ( + _V_NONE types.ValueType = 0 + _V_NODE_BASE types.ValueType = 1 << 5 + _V_LAZY types.ValueType = 1 << 7 + _V_RAW types.ValueType = 1 << 8 + _V_NUMBER = _V_NODE_BASE + 1 + _V_ANY = _V_NODE_BASE + 2 + _V_ARRAY_LAZY = _V_LAZY | types.V_ARRAY + _V_OBJECT_LAZY = _V_LAZY | types.V_OBJECT + _MASK_LAZY = _V_LAZY - 1 + _MASK_RAW = _V_RAW - 1 +) + +const ( + V_NONE = 0 + V_ERROR = 1 + V_NULL = 2 + V_TRUE = 3 + V_FALSE = 4 + V_ARRAY = 5 + V_OBJECT = 6 + V_STRING = 7 + V_NUMBER = int(_V_NUMBER) + V_ANY = int(_V_ANY) +) + +var ( + byteType = rt.UnpackType(reflect.TypeOf(byte(0))) +) + +type Node struct { + v int64 + t types.ValueType + p unsafe.Pointer +} + +// UnmarshalJSON is just an adapter to json.Unmarshaler. +// If you want better performance, use Searcher.GetByPath() directly +func (self *Node) UnmarshalJSON(data []byte) (err error) { + *self, err = NewSearcher(string(data)).GetByPath() + return +} + +/** Node Type Accessor **/ + +// Type returns json type represented by the node +// It will be one of belows: +// V_NONE = 0 (empty node) +// V_ERROR = 1 (error node) +// V_NULL = 2 (json value `null`) +// V_TRUE = 3 (json value `true`) +// V_FALSE = 4 (json value `false`) +// V_ARRAY = 5 (json value array) +// V_OBJECT = 6 (json value object) +// V_STRING = 7 (json value string) +// V_NUMBER = 33 (json value number ) +// V_ANY = 34 (golang interface{}) +func (self Node) Type() int { + return int(self.t & _MASK_LAZY & _MASK_RAW) +} + +func (self Node) itype() types.ValueType { + return self.t & _MASK_LAZY & _MASK_RAW +} + +// Exists returns false only if the self is nil or empty node V_NONE +func (self *Node) Exists() bool { + return self != nil && self.t != _V_NONE +} + +// Valid reports if self is NOT V_ERROR or nil +func (self *Node) Valid() bool { + if self == nil { + return false + } + return self.t != V_ERROR +} + +// Check checks if the node itself is valid, and return: +// - ErrNotFound If the node is nil +// - Its underlying error If the node is V_ERROR +func (self *Node) Check() error { + if self == nil { + return ErrNotExist + } else if self.t != V_ERROR { + return nil + } else { + return self + } +} + +// Error returns error message if the node is invalid +func (self Node) Error() string { + if self.t != V_ERROR { + return "" + } else { + return *(*string)(self.p) + } +} + +// IsRaw returns true if node's underlying value is raw json +func (self Node) IsRaw() bool { + return self.t&_V_RAW != 0 +} + +func (self *Node) isLazy() bool { + return self != nil && self.t&_V_LAZY != 0 +} + +func (self *Node) isAny() bool { + return self != nil && self.t == _V_ANY +} + +/** Simple Value Methods **/ + +// Raw returns json representation of the node, +func (self *Node) Raw() (string, error) { + if !self.IsRaw() { + buf, err := self.MarshalJSON() + return rt.Mem2Str(buf), err + } + return rt.StrFrom(self.p, self.v), nil +} + +func (self *Node) checkRaw() error { + if err := self.Check(); err != nil { + return err + } + if self.IsRaw() { + self.parseRaw(false) + } + return nil +} + +// Bool returns bool value represented by this node, +// including types.V_TRUE|V_FALSE|V_NUMBER|V_STRING|V_ANY|V_NULL, +// V_NONE will return error +func (self *Node) Bool() (bool, error) { + if err := self.checkRaw(); err != nil { + return false, err + } + switch self.t { + case types.V_TRUE : return true , nil + case types.V_FALSE : return false, nil + case types.V_NULL : return false, nil + case _V_NUMBER : + if i, err := numberToInt64(self); err == nil { + return i != 0, nil + } else if f, err := numberToFloat64(self); err == nil { + return f != 0, nil + } else { + return false, err + } + case types.V_STRING: return strconv.ParseBool(rt.StrFrom(self.p, self.v)) + case _V_ANY : + any := self.packAny() + switch v := any.(type) { + case bool : return v, nil + case int : return v != 0, nil + case int8 : return v != 0, nil + case int16 : return v != 0, nil + case int32 : return v != 0, nil + case int64 : return v != 0, nil + case uint : return v != 0, nil + case uint8 : return v != 0, nil + case uint16 : return v != 0, nil + case uint32 : return v != 0, nil + case uint64 : return v != 0, nil + case float32: return v != 0, nil + case float64: return v != 0, nil + case string : return strconv.ParseBool(v) + case json.Number: + if i, err := v.Int64(); err == nil { + return i != 0, nil + } else if f, err := v.Float64(); err == nil { + return f != 0, nil + } else { + return false, err + } + default: return false, ErrUnsupportType + } + default : return false, ErrUnsupportType + } +} + +// Int64 casts the node to int64 value, +// including V_NUMBER|V_TRUE|V_FALSE|V_ANY|V_STRING +// V_NONE it will return error +func (self *Node) Int64() (int64, error) { + if err := self.checkRaw(); err != nil { + return 0, err + } + switch self.t { + case _V_NUMBER, types.V_STRING : + if i, err := numberToInt64(self); err == nil { + return i, nil + } else if f, err := numberToFloat64(self); err == nil { + return int64(f), nil + } else { + return 0, err + } + case types.V_TRUE : return 1, nil + case types.V_FALSE : return 0, nil + case types.V_NULL : return 0, nil + case _V_ANY : + any := self.packAny() + switch v := any.(type) { + case bool : if v { return 1, nil } else { return 0, nil } + case int : return int64(v), nil + case int8 : return int64(v), nil + case int16 : return int64(v), nil + case int32 : return int64(v), nil + case int64 : return int64(v), nil + case uint : return int64(v), nil + case uint8 : return int64(v), nil + case uint16 : return int64(v), nil + case uint32 : return int64(v), nil + case uint64 : return int64(v), nil + case float32: return int64(v), nil + case float64: return int64(v), nil + case string : + if i, err := strconv.ParseInt(v, 10, 64); err == nil { + return i, nil + } else if f, err := strconv.ParseFloat(v, 64); err == nil { + return int64(f), nil + } else { + return 0, err + } + case json.Number: + if i, err := v.Int64(); err == nil { + return i, nil + } else if f, err := v.Float64(); err == nil { + return int64(f), nil + } else { + return 0, err + } + default: return 0, ErrUnsupportType + } + default : return 0, ErrUnsupportType + } +} + +// StrictInt64 exports underlying int64 value, including V_NUMBER, V_ANY +func (self *Node) StrictInt64() (int64, error) { + if err := self.checkRaw(); err != nil { + return 0, err + } + switch self.t { + case _V_NUMBER : return numberToInt64(self) + case _V_ANY : + any := self.packAny() + switch v := any.(type) { + case int : return int64(v), nil + case int8 : return int64(v), nil + case int16 : return int64(v), nil + case int32 : return int64(v), nil + case int64 : return int64(v), nil + case uint : return int64(v), nil + case uint8 : return int64(v), nil + case uint16: return int64(v), nil + case uint32: return int64(v), nil + case uint64: return int64(v), nil + case json.Number: + if i, err := v.Int64(); err == nil { + return i, nil + } else { + return 0, err + } + default: return 0, ErrUnsupportType + } + default : return 0, ErrUnsupportType + } +} + +func castNumber(v bool) json.Number { + if v { + return json.Number("1") + } else { + return json.Number("0") + } +} + +// Number casts node to float64, +// including V_NUMBER|V_TRUE|V_FALSE|V_ANY|V_STRING|V_NULL, +// V_NONE it will return error +func (self *Node) Number() (json.Number, error) { + if err := self.checkRaw(); err != nil { + return json.Number(""), err + } + switch self.t { + case _V_NUMBER : return toNumber(self) , nil + case types.V_STRING : + if _, err := numberToInt64(self); err == nil { + return toNumber(self), nil + } else if _, err := numberToFloat64(self); err == nil { + return toNumber(self), nil + } else { + return json.Number(""), err + } + case types.V_TRUE : return json.Number("1"), nil + case types.V_FALSE : return json.Number("0"), nil + case types.V_NULL : return json.Number("0"), nil + case _V_ANY : + any := self.packAny() + switch v := any.(type) { + case bool : return castNumber(v), nil + case int : return castNumber(v != 0), nil + case int8 : return castNumber(v != 0), nil + case int16 : return castNumber(v != 0), nil + case int32 : return castNumber(v != 0), nil + case int64 : return castNumber(v != 0), nil + case uint : return castNumber(v != 0), nil + case uint8 : return castNumber(v != 0), nil + case uint16 : return castNumber(v != 0), nil + case uint32 : return castNumber(v != 0), nil + case uint64 : return castNumber(v != 0), nil + case float32: return castNumber(v != 0), nil + case float64: return castNumber(v != 0), nil + case string : + if _, err := strconv.ParseFloat(v, 64); err == nil { + return json.Number(v), nil + } else { + return json.Number(""), err + } + case json.Number: return v, nil + default: return json.Number(""), ErrUnsupportType + } + default : return json.Number(""), ErrUnsupportType + } +} + +// Number exports underlying float64 value, including V_NUMBER, V_ANY of json.Number +func (self *Node) StrictNumber() (json.Number, error) { + if err := self.checkRaw(); err != nil { + return json.Number(""), err + } + switch self.t { + case _V_NUMBER : return toNumber(self) , nil + case _V_ANY : + if v, ok := self.packAny().(json.Number); ok { + return v, nil + } else { + return json.Number(""), ErrUnsupportType + } + default : return json.Number(""), ErrUnsupportType + } +} + +// String cast node to string, +// including V_NUMBER|V_TRUE|V_FALSE|V_ANY|V_STRING|V_NULL, +// V_NONE it will return error +func (self *Node) String() (string, error) { + if err := self.checkRaw(); err != nil { + return "", err + } + switch self.t { + case types.V_NULL : return "" , nil + case types.V_TRUE : return "true" , nil + case types.V_FALSE : return "false", nil + case types.V_STRING, _V_NUMBER : return rt.StrFrom(self.p, self.v), nil + case _V_ANY : + any := self.packAny() + switch v := any.(type) { + case bool : return strconv.FormatBool(v), nil + case int : return strconv.Itoa(v), nil + case int8 : return strconv.Itoa(int(v)), nil + case int16 : return strconv.Itoa(int(v)), nil + case int32 : return strconv.Itoa(int(v)), nil + case int64 : return strconv.Itoa(int(v)), nil + case uint : return strconv.Itoa(int(v)), nil + case uint8 : return strconv.Itoa(int(v)), nil + case uint16 : return strconv.Itoa(int(v)), nil + case uint32 : return strconv.Itoa(int(v)), nil + case uint64 : return strconv.Itoa(int(v)), nil + case float32: return strconv.FormatFloat(float64(v), 'g', -1, 64), nil + case float64: return strconv.FormatFloat(float64(v), 'g', -1, 64), nil + case string : return v, nil + case json.Number: return v.String(), nil + default: return "", ErrUnsupportType + } + default : return "" , ErrUnsupportType + } +} + +// StrictString returns string value (unescaped), includeing V_STRING, V_ANY of string. +// In other cases, it will return empty string. +func (self *Node) StrictString() (string, error) { + if err := self.checkRaw(); err != nil { + return "", err + } + switch self.t { + case types.V_STRING : return rt.StrFrom(self.p, self.v), nil + case _V_ANY : + if v, ok := self.packAny().(string); ok { + return v, nil + } else { + return "", ErrUnsupportType + } + default : return "", ErrUnsupportType + } +} + +// Float64 cast node to float64, +// including V_NUMBER|V_TRUE|V_FALSE|V_ANY|V_STRING|V_NULL, +// V_NONE it will return error +func (self *Node) Float64() (float64, error) { + if err := self.checkRaw(); err != nil { + return 0.0, err + } + switch self.t { + case _V_NUMBER, types.V_STRING : return numberToFloat64(self) + case types.V_TRUE : return 1.0, nil + case types.V_FALSE : return 0.0, nil + case types.V_NULL : return 0.0, nil + case _V_ANY : + any := self.packAny() + switch v := any.(type) { + case bool : + if v { + return 1.0, nil + } else { + return 0.0, nil + } + case int : return float64(v), nil + case int8 : return float64(v), nil + case int16 : return float64(v), nil + case int32 : return float64(v), nil + case int64 : return float64(v), nil + case uint : return float64(v), nil + case uint8 : return float64(v), nil + case uint16 : return float64(v), nil + case uint32 : return float64(v), nil + case uint64 : return float64(v), nil + case float32: return float64(v), nil + case float64: return float64(v), nil + case string : + if f, err := strconv.ParseFloat(v, 64); err == nil { + return float64(f), nil + } else { + return 0, err + } + case json.Number: + if f, err := v.Float64(); err == nil { + return float64(f), nil + } else { + return 0, err + } + default : return 0, ErrUnsupportType + } + default : return 0.0, ErrUnsupportType + } +} + +// Float64 exports underlying float64 value, includeing V_NUMBER, V_ANY +func (self *Node) StrictFloat64() (float64, error) { + if err := self.checkRaw(); err != nil { + return 0.0, err + } + switch self.t { + case _V_NUMBER : return numberToFloat64(self) + case _V_ANY : + any := self.packAny() + switch v := any.(type) { + case float32 : return float64(v), nil + case float64 : return float64(v), nil + default : return 0, ErrUnsupportType + } + default : return 0.0, ErrUnsupportType + } +} + +/** Sequencial Value Methods **/ + +// Len returns children count of a array|object|string node +// For partially loaded node, it also works but only counts the parsed children +func (self *Node) Len() (int, error) { + if err := self.checkRaw(); err != nil { + return 0, err + } + if self.t == types.V_ARRAY || self.t == types.V_OBJECT || self.t == _V_ARRAY_LAZY || self.t == _V_OBJECT_LAZY { + return int(self.v & _LEN_MASK), nil + } else if self.t == types.V_STRING { + return int(self.v), nil + } else if self.t == _V_NONE || self.t == types.V_NULL { + return 0, nil + } else { + return 0, ErrUnsupportType + } +} + +func (self Node) len() int { + return int(self.v & _LEN_MASK) +} + +// Cap returns malloc capacity of a array|object node for children +func (self *Node) Cap() (int, error) { + if err := self.checkRaw(); err != nil { + return 0, err + } + if self.t == types.V_ARRAY || self.t == types.V_OBJECT || self.t == _V_ARRAY_LAZY || self.t == _V_OBJECT_LAZY { + return int(self.v >> _CAP_BITS), nil + } else if self.t == _V_NONE || self.t == types.V_NULL { + return 0, nil + } else { + return 0, ErrUnsupportType + } +} + +func (self Node) cap() int { + return int(self.v >> _CAP_BITS) +} + +// Set sets the node of given key under self, and reports if the key has existed. +// +// If self is V_NONE or V_NULL, it becomes V_OBJECT and sets the node at the key. +func (self *Node) Set(key string, node Node) (bool, error) { + if self != nil && (self.t == _V_NONE || self.t == types.V_NULL) { + *self = NewObject([]Pair{{key, node}}) + return false, nil + } + + if err := node.Check(); err != nil { + return false, err + } + + p := self.Get(key) + if !p.Exists() { + l := self.len() + c := self.cap() + if l == c { + // TODO: maybe change append size in future + c += _DEFAULT_NODE_CAP + mem := unsafe_NewArray(_PAIR_TYPE, c) + memmove(mem, self.p, _PAIR_SIZE * uintptr(l)) + self.p = mem + } + v := self.pairAt(l) + v.Key = key + v.Value = node + self.setCapAndLen(c, l+1) + return false, nil + + } else if err := p.Check(); err != nil { + return false, err + } + + *p = node + return true, nil +} + +// SetAny wraps val with V_ANY node, and Set() the node. +func (self *Node) SetAny(key string, val interface{}) (bool, error) { + return self.Set(key, NewAny(val)) +} + +// Unset remove the node of given key under object parent, and reports if the key has existed. +func (self *Node) Unset(key string) (bool, error) { + self.must(types.V_OBJECT, "an object") + p, i := self.skipKey(key) + if !p.Exists() { + return false, nil + } else if err := p.Check(); err != nil { + return false, err + } + + self.removePair(i) + return true, nil +} + +// SetByIndex sets the node of given index, and reports if the key has existed. +// +// The index must be within self's children. +func (self *Node) SetByIndex(index int, node Node) (bool, error) { + if err := node.Check(); err != nil { + return false, err + } + + p := self.Index(index) + if !p.Exists() { + return false, ErrNotExist + } else if err := p.Check(); err != nil { + return false, err + } + + *p = node + return true, nil +} + +// SetAny wraps val with V_ANY node, and SetByIndex() the node. +func (self *Node) SetAnyByIndex(index int, val interface{}) (bool, error) { + return self.SetByIndex(index, NewAny(val)) +} + +// UnsetByIndex remove the node of given index +func (self *Node) UnsetByIndex(index int) (bool, error) { + var p *Node + it := self.itype() + if it == types.V_ARRAY { + p = self.Index(index) + }else if it == types.V_OBJECT { + pr := self.skipIndexPair(index) + if pr == nil { + return false, ErrNotExist + } + p = &pr.Value + } else { + return false, ErrUnsupportType + } + + if !p.Exists() { + return false, ErrNotExist + } + + if it == types.V_ARRAY { + self.removeNode(index) + }else if it == types.V_OBJECT { + self.removePair(index) + } + return true, nil +} + +// Add appends the given node under self. +// +// If self is V_NONE or V_NULL, it becomes V_ARRAY and sets the node at index 0. +func (self *Node) Add(node Node) error { + if self != nil && (self.t == _V_NONE || self.t == types.V_NULL) { + *self = NewArray([]Node{node}) + return nil + } + + if err := self.should(types.V_ARRAY, "an array"); err != nil { + return err + } + if err := self.skipAllIndex(); err != nil { + return err + } + + var p rt.GoSlice + p.Cap = self.cap() + p.Len = self.len() + p.Ptr = self.p + + s := *(*[]Node)(unsafe.Pointer(&p)) + s = append(s, node) + + self.p = unsafe.Pointer(&s[0]) + self.setCapAndLen(cap(s), len(s)) + return nil +} + +// SetAny wraps val with V_ANY node, and Add() the node. +func (self *Node) AddAny(val interface{}) error { + return self.Add(NewAny(val)) +} + +// GetByPath load given path on demands, +// which only ensure nodes before this path got parsed. +// +// Note, the api expects the json is well-formed at least, +// otherwise it may return unexpected result. +func (self *Node) GetByPath(path ...interface{}) *Node { + if !self.Valid() { + return self + } + var s = self + for _, p := range path { + switch p := p.(type) { + case int: + s = s.Index(p) + if !s.Valid() { + return s + } + case string: + s = s.Get(p) + if !s.Valid() { + return s + } + default: + panic("path must be either int or string") + } + } + return s +} + +// Get loads given key of an object node on demands +func (self *Node) Get(key string) *Node { + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return unwrapError(err) + } + n, _ := self.skipKey(key) + return n +} + +// Index indexies node at given idx, +// node type CAN be either V_OBJECT or V_ARRAY +func (self *Node) Index(idx int) *Node { + if err := self.checkRaw(); err != nil { + return unwrapError(err) + } + + it := self.itype() + if it == types.V_ARRAY { + return self.skipIndex(idx) + + }else if it == types.V_OBJECT { + pr := self.skipIndexPair(idx) + if pr == nil { + return newError(_ERR_NOT_FOUND, "value not exists") + } + return &pr.Value + + } else { + return newError(_ERR_UNSUPPORT_TYPE, fmt.Sprintf("unsupported type: %v", self.itype())) + } +} + +// IndexPair indexies pair at given idx, +// node type MUST be either V_OBJECT +func (self *Node) IndexPair(idx int) *Pair { + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return nil + } + return self.skipIndexPair(idx) +} + +// IndexOrGet firstly use idx to index a value and check if its key matches +// If not, then use the key to search value +func (self *Node) IndexOrGet(idx int, key string) *Node { + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return unwrapError(err) + } + + pr := self.skipIndexPair(idx) + if pr != nil && pr.Key == key { + return &pr.Value + } + n, _ := self.skipKey(key) + return n +} + +/** Generic Value Converters **/ + +// Map loads all keys of an object node +func (self *Node) Map() (map[string]interface{}, error) { + if self.isAny() { + any := self.packAny() + if v, ok := any.(map[string]interface{}); ok { + return v, nil + } else { + return nil, ErrUnsupportType + } + } + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return nil, err + } + if err := self.loadAllKey(); err != nil { + return nil, err + } + return self.toGenericObject() +} + +// MapUseNumber loads all keys of an object node, with numeric nodes casted to json.Number +func (self *Node) MapUseNumber() (map[string]interface{}, error) { + if self.isAny() { + any := self.packAny() + if v, ok := any.(map[string]interface{}); ok { + return v, nil + } else { + return nil, ErrUnsupportType + } + } + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return nil, err + } + if err := self.loadAllKey(); err != nil { + return nil, err + } + return self.toGenericObjectUseNumber() +} + +// MapUseNode scans both parsed and non-parsed chidren nodes, +// and map them by their keys +func (self *Node) MapUseNode() (map[string]Node, error) { + if self.isAny() { + any := self.packAny() + if v, ok := any.(map[string]Node); ok { + return v, nil + } else { + return nil, ErrUnsupportType + } + } + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return nil, err + } + if err := self.skipAllKey(); err != nil { + return nil, err + } + return self.toGenericObjectUseNode() +} + +// MapUnsafe exports the underlying pointer to its children map +// WARN: don't use it unless you know what you are doing +func (self *Node) UnsafeMap() ([]Pair, error) { + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return nil, err + } + if err := self.skipAllKey(); err != nil { + return nil, err + } + s := rt.Ptr2SlicePtr(self.p, int(self.len()), self.cap()) + return *(*[]Pair)(s), nil +} + +// SortKeys sorts children of a V_OBJECT node in ascending key-order. +// If recurse is true, it recursively sorts children's children as long as a V_OBJECT node is found. +func (self *Node) SortKeys(recurse bool) (err error) { + ps, err := self.UnsafeMap() + if err != nil { + return err + } + PairSlice(ps).Sort() + if recurse { + var sc Scanner + sc = func(path Sequence, node *Node) bool { + if node.itype() == types.V_OBJECT { + if err := node.SortKeys(recurse); err != nil { + return false + } + } + if node.itype() == types.V_ARRAY { + if err := node.ForEach(sc); err != nil { + return false + } + } + return true + } + self.ForEach(sc) + } + return nil +} + +// Array loads all indexes of an array node +func (self *Node) Array() ([]interface{}, error) { + if self.isAny() { + any := self.packAny() + if v, ok := any.([]interface{}); ok { + return v, nil + } else { + return nil, ErrUnsupportType + } + } + if err := self.should(types.V_ARRAY, "an array"); err != nil { + return nil, err + } + if err := self.loadAllIndex(); err != nil { + return nil, err + } + return self.toGenericArray() +} + +// ArrayUseNumber loads all indexes of an array node, with numeric nodes casted to json.Number +func (self *Node) ArrayUseNumber() ([]interface{}, error) { + if self.isAny() { + any := self.packAny() + if v, ok := any.([]interface{}); ok { + return v, nil + } else { + return nil, ErrUnsupportType + } + } + if err := self.should(types.V_ARRAY, "an array"); err != nil { + return nil, err + } + if err := self.loadAllIndex(); err != nil { + return nil, err + } + return self.toGenericArrayUseNumber() +} + +// ArrayUseNode copys both parsed and non-parsed chidren nodes, +// and indexes them by original order +func (self *Node) ArrayUseNode() ([]Node, error) { + if self.isAny() { + any := self.packAny() + if v, ok := any.([]Node); ok { + return v, nil + } else { + return nil, ErrUnsupportType + } + } + if err := self.should(types.V_ARRAY, "an array"); err != nil { + return nil, err + } + if err := self.skipAllIndex(); err != nil { + return nil, err + } + return self.toGenericArrayUseNode() +} + +// ArrayUnsafe exports the underlying pointer to its children array +// WARN: don't use it unless you know what you are doing +func (self *Node) UnsafeArray() ([]Node, error) { + if err := self.should(types.V_ARRAY, "an array"); err != nil { + return nil, err + } + if err := self.skipAllIndex(); err != nil { + return nil, err + } + s := rt.Ptr2SlicePtr(self.p, self.len(), self.cap()) + return *(*[]Node)(s), nil +} + +// Interface loads all children under all pathes from this node, +// and converts itself as generic type. +// WARN: all numberic nodes are casted to float64 +func (self *Node) Interface() (interface{}, error) { + if err := self.checkRaw(); err != nil { + return nil, err + } + switch self.t { + case V_ERROR : return nil, self.Check() + case types.V_NULL : return nil, nil + case types.V_TRUE : return true, nil + case types.V_FALSE : return false, nil + case types.V_ARRAY : return self.toGenericArray() + case types.V_OBJECT : return self.toGenericObject() + case types.V_STRING : return rt.StrFrom(self.p, self.v), nil + case _V_NUMBER : + v, err := numberToFloat64(self) + if err != nil { + return nil, err + } + return v, nil + case _V_ARRAY_LAZY : + if err := self.loadAllIndex(); err != nil { + return nil, err + } + return self.toGenericArray() + case _V_OBJECT_LAZY : + if err := self.loadAllKey(); err != nil { + return nil, err + } + return self.toGenericObject() + case _V_ANY: + switch v := self.packAny().(type) { + case Node : return v.Interface() + case *Node: return v.Interface() + default : return v, nil + } + default : return nil, ErrUnsupportType + } +} + +func (self *Node) packAny() interface{} { + return *(*interface{})(self.p) +} + +// InterfaceUseNumber works same with Interface() +// except numberic nodes are casted to json.Number +func (self *Node) InterfaceUseNumber() (interface{}, error) { + if err := self.checkRaw(); err != nil { + return nil, err + } + switch self.t { + case V_ERROR : return nil, self.Check() + case types.V_NULL : return nil, nil + case types.V_TRUE : return true, nil + case types.V_FALSE : return false, nil + case types.V_ARRAY : return self.toGenericArrayUseNumber() + case types.V_OBJECT : return self.toGenericObjectUseNumber() + case types.V_STRING : return rt.StrFrom(self.p, self.v), nil + case _V_NUMBER : return toNumber(self), nil + case _V_ARRAY_LAZY : + if err := self.loadAllIndex(); err != nil { + return nil, err + } + return self.toGenericArrayUseNumber() + case _V_OBJECT_LAZY : + if err := self.loadAllKey(); err != nil { + return nil, err + } + return self.toGenericObjectUseNumber() + case _V_ANY : return self.packAny(), nil + default : return nil, ErrUnsupportType + } +} + +// InterfaceUseNode clone itself as a new node, +// or its children as map[string]Node (or []Node) +func (self *Node) InterfaceUseNode() (interface{}, error) { + if err := self.checkRaw(); err != nil { + return nil, err + } + switch self.t { + case types.V_ARRAY : return self.toGenericArrayUseNode() + case types.V_OBJECT : return self.toGenericObjectUseNode() + case _V_ARRAY_LAZY : + if err := self.skipAllIndex(); err != nil { + return nil, err + } + return self.toGenericArrayUseNode() + case _V_OBJECT_LAZY : + if err := self.skipAllKey(); err != nil { + return nil, err + } + return self.toGenericObjectUseNode() + default : return *self, self.Check() + } +} + +// LoadAll loads all the node's children and children's children as parsed. +// After calling it, the node can be safely used on concurrency +func (self *Node) LoadAll() error { + if self.IsRaw() { + self.parseRaw(true) + return self.Check() + } + + switch self.itype() { + case types.V_ARRAY: + e := self.len() + if err := self.loadAllIndex(); err != nil { + return err + } + for i := 0; i < e; i++ { + n := self.nodeAt(i) + if n.IsRaw() { + n.parseRaw(true) + } + if err := n.Check(); err != nil { + return err + } + } + return nil + case types.V_OBJECT: + e := self.len() + if err := self.loadAllKey(); err != nil { + return err + } + for i := 0; i < e; i++ { + n := self.pairAt(i) + if n.Value.IsRaw() { + n.Value.parseRaw(true) + } + if err := n.Value.Check(); err != nil { + return err + } + } + return nil + default: + return self.Check() + } +} + +// Load loads the node's children as parsed. +// After calling it, only the node itself can be used on concurrency (not include its children) +func (self *Node) Load() error { + if self.IsRaw() { + self.parseRaw(false) + return self.Load() + } + + switch self.t { + case _V_ARRAY_LAZY: + return self.skipAllIndex() + case _V_OBJECT_LAZY: + return self.skipAllKey() + default: + return self.Check() + } +} + +/**---------------------------------- Internal Helper Methods ----------------------------------**/ + +var ( + _NODE_TYPE = rt.UnpackEface(Node{}).Type + _PAIR_TYPE = rt.UnpackEface(Pair{}).Type +) + +func (self *Node) setCapAndLen(cap int, len int) { + if self.t == types.V_ARRAY || self.t == types.V_OBJECT || self.t == _V_ARRAY_LAZY || self.t == _V_OBJECT_LAZY { + self.v = int64(len&_LEN_MASK | cap<<_CAP_BITS) + } else { + panic("value does not have a length") + } +} + +func (self *Node) unsafe_next() *Node { + return (*Node)(unsafe.Pointer(uintptr(unsafe.Pointer(self)) + _NODE_SIZE)) +} + +func (self *Pair) unsafe_next() *Pair { + return (*Pair)(unsafe.Pointer(uintptr(unsafe.Pointer(self)) + _PAIR_SIZE)) +} + +func (self *Node) must(t types.ValueType, s string) { + if err := self.checkRaw(); err != nil { + panic(err) + } + if err := self.Check(); err != nil { + panic(err) + } + if self.itype() != t { + panic("value cannot be represented as " + s) + } +} + +func (self *Node) should(t types.ValueType, s string) error { + if err := self.checkRaw(); err != nil { + return err + } + if self.itype() != t { + return ErrUnsupportType + } + return nil +} + +func (self *Node) nodeAt(i int) *Node { + var p = self.p + if self.isLazy() { + _, stack := self.getParserAndArrayStack() + p = *(*unsafe.Pointer)(unsafe.Pointer(&stack.v)) + } + return (*Node)(unsafe.Pointer(uintptr(p) + uintptr(i)*_NODE_SIZE)) +} + +func (self *Node) pairAt(i int) *Pair { + var p = self.p + if self.isLazy() { + _, stack := self.getParserAndObjectStack() + p = *(*unsafe.Pointer)(unsafe.Pointer(&stack.v)) + } + return (*Pair)(unsafe.Pointer(uintptr(p) + uintptr(i)*_PAIR_SIZE)) +} + +func (self *Node) getParserAndArrayStack() (*Parser, *parseArrayStack) { + stack := (*parseArrayStack)(self.p) + ret := (*rt.GoSlice)(unsafe.Pointer(&stack.v)) + ret.Len = self.len() + ret.Cap = self.cap() + return &stack.parser, stack +} + +func (self *Node) getParserAndObjectStack() (*Parser, *parseObjectStack) { + stack := (*parseObjectStack)(self.p) + ret := (*rt.GoSlice)(unsafe.Pointer(&stack.v)) + ret.Len = self.len() + ret.Cap = self.cap() + return &stack.parser, stack +} + +func (self *Node) skipAllIndex() error { + if !self.isLazy() { + return nil + } + var err types.ParsingError + parser, stack := self.getParserAndArrayStack() + parser.skipValue = true + parser.noLazy = true + *self, err = parser.decodeArray(stack.v) + if err != 0 { + return parser.ExportError(err) + } + return nil +} + +func (self *Node) skipAllKey() error { + if !self.isLazy() { + return nil + } + var err types.ParsingError + parser, stack := self.getParserAndObjectStack() + parser.skipValue = true + parser.noLazy = true + *self, err = parser.decodeObject(stack.v) + if err != 0 { + return parser.ExportError(err) + } + return nil +} + +func (self *Node) skipKey(key string) (*Node, int) { + nb := self.len() + lazy := self.isLazy() + + if nb > 0 { + /* linear search */ + var p *Pair + if lazy { + s := (*parseObjectStack)(self.p) + p = &s.v[0] + } else { + p = (*Pair)(self.p) + } + + if p.Key == key { + return &p.Value, 0 + } + for i := 1; i < nb; i++ { + p = p.unsafe_next() + if p.Key == key { + return &p.Value, i + } + } + } + + /* not found */ + if !lazy { + return nil, -1 + } + + // lazy load + for last, i := self.skipNextPair(), nb; last != nil; last, i = self.skipNextPair(), i+1 { + if last.Value.Check() != nil { + return &last.Value, -1 + } + if last.Key == key { + return &last.Value, i + } + } + + return nil, -1 +} + +func (self *Node) skipIndex(index int) *Node { + nb := self.len() + if nb > index { + v := self.nodeAt(index) + return v + } + if !self.isLazy() { + return nil + } + + // lazy load + for last := self.skipNextNode(); last != nil; last = self.skipNextNode(){ + if last.Check() != nil { + return last + } + if self.len() > index { + return last + } + } + + return nil +} + +func (self *Node) skipIndexPair(index int) *Pair { + nb := self.len() + if nb > index { + return self.pairAt(index) + } + if !self.isLazy() { + return nil + } + + // lazy load + for last := self.skipNextPair(); last != nil; last = self.skipNextPair(){ + if last.Value.Check() != nil { + return last + } + if self.len() > index { + return last + } + } + + return nil +} + +func (self *Node) loadAllIndex() error { + if !self.isLazy() { + return nil + } + var err types.ParsingError + parser, stack := self.getParserAndArrayStack() + parser.noLazy = true + *self, err = parser.decodeArray(stack.v) + if err != 0 { + return parser.ExportError(err) + } + return nil +} + +func (self *Node) loadAllKey() error { + if !self.isLazy() { + return nil + } + var err types.ParsingError + parser, stack := self.getParserAndObjectStack() + parser.noLazy = true + *self, err = parser.decodeObject(stack.v) + if err != 0 { + return parser.ExportError(err) + } + return nil +} + +func (self *Node) removeNode(i int) { + nb := self.len() - 1 + node := self.nodeAt(i) + if i == nb { + self.setCapAndLen(self.cap(), nb) + *node = Node{} + return + } + + from := self.nodeAt(i + 1) + memmove(unsafe.Pointer(node), unsafe.Pointer(from), _NODE_SIZE * uintptr(nb - i)) + + last := self.nodeAt(nb) + *last = Node{} + + self.setCapAndLen(self.cap(), nb) +} + +func (self *Node) removePair(i int) { + nb := self.len() - 1 + node := self.pairAt(i) + if i == nb { + self.setCapAndLen(self.cap(), nb) + *node = Pair{} + return + } + + from := self.pairAt(i + 1) + memmove(unsafe.Pointer(node), unsafe.Pointer(from), _PAIR_SIZE * uintptr(nb - i)) + + last := self.pairAt(nb) + *last = Pair{} + + self.setCapAndLen(self.cap(), nb) +} + +func (self *Node) toGenericArray() ([]interface{}, error) { + nb := self.len() + ret := make([]interface{}, nb) + if nb == 0 { + return ret, nil + } + + /* convert each item */ + var p = (*Node)(self.p) + x, err := p.Interface() + if err != nil { + return nil, err + } + ret[0] = x + + for i := 1; i < nb; i++ { + p = p.unsafe_next() + x, err := p.Interface() + if err != nil { + return nil, err + } + ret[i] = x + } + + /* all done */ + return ret, nil +} + +func (self *Node) toGenericArrayUseNumber() ([]interface{}, error) { + nb := self.len() + ret := make([]interface{}, nb) + if nb == 0 { + return ret, nil + } + + /* convert each item */ + var p = (*Node)(self.p) + x, err := p.InterfaceUseNumber() + if err != nil { + return nil, err + } + ret[0] = x + + for i := 1; i < nb; i++ { + p = p.unsafe_next() + x, err := p.InterfaceUseNumber() + if err != nil { + return nil, err + } + ret[i] = x + } + + /* all done */ + return ret, nil +} + +func (self *Node) toGenericArrayUseNode() ([]Node, error) { + var nb = self.len() + var out = make([]Node, nb) + if nb == 0 { + return out, nil + } + + var p = (*Node)(self.p) + out[0] = *p + if err := p.Check(); err != nil { + return nil, err + } + + for i := 1; i < nb; i++ { + p = p.unsafe_next() + if err := p.Check(); err != nil { + return nil, err + } + out[i] = *p + } + + return out, nil +} + +func (self *Node) toGenericObject() (map[string]interface{}, error) { + nb := self.len() + ret := make(map[string]interface{}, nb) + if nb == 0 { + return ret, nil + } + + /* convert each item */ + var p = (*Pair)(self.p) + x, err := p.Value.Interface() + if err != nil { + return nil, err + } + ret[p.Key] = x + + for i := 1; i < nb; i++ { + p = p.unsafe_next() + x, err := p.Value.Interface() + if err != nil { + return nil, err + } + ret[p.Key] = x + } + + /* all done */ + return ret, nil +} + + +func (self *Node) toGenericObjectUseNumber() (map[string]interface{}, error) { + nb := self.len() + ret := make(map[string]interface{}, nb) + if nb == 0 { + return ret, nil + } + + /* convert each item */ + var p = (*Pair)(self.p) + x, err := p.Value.InterfaceUseNumber() + if err != nil { + return nil, err + } + ret[p.Key] = x + + for i := 1; i < nb; i++ { + p = p.unsafe_next() + x, err := p.Value.InterfaceUseNumber() + if err != nil { + return nil, err + } + ret[p.Key] = x + } + + /* all done */ + return ret, nil +} + +func (self *Node) toGenericObjectUseNode() (map[string]Node, error) { + var nb = self.len() + var out = make(map[string]Node, nb) + if nb == 0 { + return out, nil + } + + var p = (*Pair)(self.p) + out[p.Key] = p.Value + if err := p.Value.Check(); err != nil { + return nil, err + } + + for i := 1; i < nb; i++ { + p = p.unsafe_next() + if err := p.Value.Check(); err != nil { + return nil, err + } + out[p.Key] = p.Value + } + + /* all done */ + return out, nil +} + +/**------------------------------------ Factory Methods ------------------------------------**/ + +var ( + nullNode = Node{t: types.V_NULL} + trueNode = Node{t: types.V_TRUE} + falseNode = Node{t: types.V_FALSE} + + emptyArrayNode = Node{t: types.V_ARRAY} + emptyObjectNode = Node{t: types.V_OBJECT} +) + +// NewRaw creates a node of raw json, and decides its type by first char. +func NewRaw(json string) Node { + if json == "" { + panic("empty json string") + } + it := switchRawType(json[0]) + return newRawNode(json, it) +} + +// NewAny creates a node of type V_ANY if any's type isn't Node or *Node, +// which stores interface{} and can be only used for `.Interface()`\`.MarshalJSON()`. +func NewAny(any interface{}) Node { + switch n := any.(type) { + case Node: + return n + case *Node: + return *n + default: + return Node{ + t: _V_ANY, + v: 0, + p: unsafe.Pointer(&any), + } + } +} + +// NewBytes encodes given src with Base64 (RFC 4648), and creates a node of type V_STRING. +func NewBytes(src []byte) Node { + if len(src) == 0 { + panic("empty src bytes") + } + out := encodeBase64(src) + return NewString(out) +} + +// NewNull creates a node of type V_NULL +func NewNull() Node { + return Node{ + v: 0, + p: nil, + t: types.V_NULL, + } +} + +// NewBool creates a node of type bool: +// If v is true, returns V_TRUE node +// If v is false, returns V_FALSE node +func NewBool(v bool) Node { + var t = types.V_FALSE + if v { + t = types.V_TRUE + } + return Node{ + v: 0, + p: nil, + t: t, + } +} + +// NewNumber creates a json.Number node +// v must be a decimal string complying with RFC8259 +func NewNumber(v string) Node { + return Node{ + v: int64(len(v) & _LEN_MASK), + p: rt.StrPtr(v), + t: _V_NUMBER, + } +} + +func toNumber(node *Node) json.Number { + return json.Number(rt.StrFrom(node.p, node.v)) +} + +func numberToFloat64(node *Node) (float64, error) { + ret,err := toNumber(node).Float64() + if err != nil { + return 0, err + } + return ret, nil +} + +func numberToInt64(node *Node) (int64, error) { + ret,err := toNumber(node).Int64() + if err != nil { + return 0, err + } + return ret, nil +} + +func newBytes(v []byte) Node { + return Node{ + t: types.V_STRING, + p: mem2ptr(v), + v: int64(len(v) & _LEN_MASK), + } +} + +// NewString creates a node of type V_STRING. +// v is considered to be a valid UTF-8 string, +// which means it won't be validated and unescaped. +// when the node is encoded to json, v will be escaped. +func NewString(v string) Node { + return Node{ + t: types.V_STRING, + p: rt.StrPtr(v), + v: int64(len(v) & _LEN_MASK), + } +} + +// NewArray creates a node of type V_ARRAY, +// using v as its underlying children +func NewArray(v []Node) Node { + return Node{ + t: types.V_ARRAY, + v: int64(len(v)&_LEN_MASK | cap(v)<<_CAP_BITS), + p: *(*unsafe.Pointer)(unsafe.Pointer(&v)), + } +} + +func (self *Node) setArray(v []Node) { + self.t = types.V_ARRAY + self.setCapAndLen(cap(v), len(v)) + self.p = *(*unsafe.Pointer)(unsafe.Pointer(&v)) +} + +// NewObject creates a node of type V_OBJECT, +// using v as its underlying children +func NewObject(v []Pair) Node { + return Node{ + t: types.V_OBJECT, + v: int64(len(v)&_LEN_MASK | cap(v)<<_CAP_BITS), + p: *(*unsafe.Pointer)(unsafe.Pointer(&v)), + } +} + +func (self *Node) setObject(v []Pair) { + self.t = types.V_OBJECT + self.setCapAndLen(cap(v), len(v)) + self.p = *(*unsafe.Pointer)(unsafe.Pointer(&v)) +} + +type parseObjectStack struct { + parser Parser + v []Pair +} + +type parseArrayStack struct { + parser Parser + v []Node +} + +func newLazyArray(p *Parser, v []Node) Node { + s := new(parseArrayStack) + s.parser = *p + s.v = v + return Node{ + t: _V_ARRAY_LAZY, + v: int64(len(v)&_LEN_MASK | cap(v)<<_CAP_BITS), + p: unsafe.Pointer(s), + } +} + +func (self *Node) setLazyArray(p *Parser, v []Node) { + s := new(parseArrayStack) + s.parser = *p + s.v = v + self.t = _V_ARRAY_LAZY + self.setCapAndLen(cap(v), len(v)) + self.p = (unsafe.Pointer)(s) +} + +func newLazyObject(p *Parser, v []Pair) Node { + s := new(parseObjectStack) + s.parser = *p + s.v = v + return Node{ + t: _V_OBJECT_LAZY, + v: int64(len(v)&_LEN_MASK | cap(v)<<_CAP_BITS), + p: unsafe.Pointer(s), + } +} + +func (self *Node) setLazyObject(p *Parser, v []Pair) { + s := new(parseObjectStack) + s.parser = *p + s.v = v + self.t = _V_OBJECT_LAZY + self.setCapAndLen(cap(v), len(v)) + self.p = (unsafe.Pointer)(s) +} + +func newRawNode(str string, typ types.ValueType) Node { + return Node{ + t: _V_RAW | typ, + p: rt.StrPtr(str), + v: int64(len(str) & _LEN_MASK), + } +} + +func (self *Node) parseRaw(full bool) { + raw := rt.StrFrom(self.p, self.v) + parser := NewParser(raw) + if full { + parser.noLazy = true + parser.skipValue = false + } + var e types.ParsingError + *self, e = parser.Parse() + if e != 0 { + *self = *newSyntaxError(parser.syntaxError(e)) + } +} + +func newError(err types.ParsingError, msg string) *Node { + return &Node{ + t: V_ERROR, + v: int64(err), + p: unsafe.Pointer(&msg), + } +} + +var typeJumpTable = [256]types.ValueType{ + '"' : types.V_STRING, + '-' : _V_NUMBER, + '0' : _V_NUMBER, + '1' : _V_NUMBER, + '2' : _V_NUMBER, + '3' : _V_NUMBER, + '4' : _V_NUMBER, + '5' : _V_NUMBER, + '6' : _V_NUMBER, + '7' : _V_NUMBER, + '8' : _V_NUMBER, + '9' : _V_NUMBER, + '[' : types.V_ARRAY, + 'f' : types.V_FALSE, + 'n' : types.V_NULL, + 't' : types.V_TRUE, + '{' : types.V_OBJECT, +} + +func switchRawType(c byte) types.ValueType { + return typeJumpTable[c] +} + +func unwrapError(err error) *Node { + if se, ok := err.(*Node); ok { + return se + }else if sse, ok := err.(Node); ok { + return &sse + } else { + msg := err.Error() + return &Node{ + t: V_ERROR, + v: 0, + p: unsafe.Pointer(&msg), + } + } +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/ast/parser.go b/vendor/github.com/bytedance/sonic/ast/parser.go new file mode 100644 index 0000000000..ebb7bb097e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/parser.go @@ -0,0 +1,618 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ast + +import ( + `fmt` + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +const _DEFAULT_NODE_CAP int = 16 + +const ( + _ERR_NOT_FOUND types.ParsingError = 33 + _ERR_UNSUPPORT_TYPE types.ParsingError = 34 +) + +var ( + ErrNotExist error = newError(_ERR_NOT_FOUND, "value not exists") + ErrUnsupportType error = newError(_ERR_UNSUPPORT_TYPE, "unsupported type") +) + +type Parser struct { + p int + s string + noLazy bool + skipValue bool +} + +/** Parser Private Methods **/ + +func (self *Parser) delim() types.ParsingError { + n := len(self.s) + p := self.lspace(self.p) + + /* check for EOF */ + if p >= n { + return types.ERR_EOF + } + + /* check for the delimtier */ + if self.s[p] != ':' { + return types.ERR_INVALID_CHAR + } + + /* update the read pointer */ + self.p = p + 1 + return 0 +} + +func (self *Parser) object() types.ParsingError { + n := len(self.s) + p := self.lspace(self.p) + + /* check for EOF */ + if p >= n { + return types.ERR_EOF + } + + /* check for the delimtier */ + if self.s[p] != '{' { + return types.ERR_INVALID_CHAR + } + + /* update the read pointer */ + self.p = p + 1 + return 0 +} + +func (self *Parser) array() types.ParsingError { + n := len(self.s) + p := self.lspace(self.p) + + /* check for EOF */ + if p >= n { + return types.ERR_EOF + } + + /* check for the delimtier */ + if self.s[p] != '[' { + return types.ERR_INVALID_CHAR + } + + /* update the read pointer */ + self.p = p + 1 + return 0 +} + +func (self *Parser) lspace(sp int) int { + ns := len(self.s) + for ; sp= ns { + return Node{}, types.ERR_EOF + } + + /* check for empty array */ + if self.s[self.p] == ']' { + self.p++ + return emptyArrayNode, 0 + } + + /* allocate array space and parse every element */ + for { + var val Node + var err types.ParsingError + + if self.skipValue { + /* skip the value */ + var start int + if start, err = self.skipFast(); err != 0 { + return Node{}, err + } + if self.p > ns { + return Node{}, types.ERR_EOF + } + t := switchRawType(self.s[start]) + if t == _V_NONE { + return Node{}, types.ERR_INVALID_CHAR + } + val = newRawNode(self.s[start:self.p], t) + }else{ + /* decode the value */ + if val, err = self.Parse(); err != 0 { + return Node{}, err + } + } + + /* add the value to result */ + ret = append(ret, val) + self.p = self.lspace(self.p) + + /* check for EOF */ + if self.p >= ns { + return Node{}, types.ERR_EOF + } + + /* check for the next character */ + switch self.s[self.p] { + case ',' : self.p++ + case ']' : self.p++; return NewArray(ret), 0 + default: + if val.isLazy() { + return newLazyArray(self, ret), 0 + } + return Node{}, types.ERR_INVALID_CHAR + } + } +} + +func (self *Parser) decodeObject(ret []Pair) (Node, types.ParsingError) { + sp := self.p + ns := len(self.s) + + /* check for EOF */ + if self.p = self.lspace(sp); self.p >= ns { + return Node{}, types.ERR_EOF + } + + /* check for empty object */ + if self.s[self.p] == '}' { + self.p++ + return emptyObjectNode, 0 + } + + /* decode each pair */ + for { + var val Node + var njs types.JsonState + var err types.ParsingError + + /* decode the key */ + if njs = self.decodeValue(); njs.Vt != types.V_STRING { + return Node{}, types.ERR_INVALID_CHAR + } + + /* extract the key */ + idx := self.p - 1 + key := self.s[njs.Iv:idx] + + /* check for escape sequence */ + if njs.Ep != -1 { + if key, err = unquote(key); err != 0 { + return Node{}, err + } + } + + /* expect a ':' delimiter */ + if err = self.delim(); err != 0 { + return Node{}, err + } + + + if self.skipValue { + /* skip the value */ + var start int + if start, err = self.skipFast(); err != 0 { + return Node{}, err + } + if self.p > ns { + return Node{}, types.ERR_EOF + } + t := switchRawType(self.s[start]) + if t == _V_NONE { + return Node{}, types.ERR_INVALID_CHAR + } + val = newRawNode(self.s[start:self.p], t) + } else { + /* decode the value */ + if val, err = self.Parse(); err != 0 { + return Node{}, err + } + } + + /* add the value to result */ + ret = append(ret, Pair{Key: key, Value: val}) + self.p = self.lspace(self.p) + + /* check for EOF */ + if self.p >= ns { + return Node{}, types.ERR_EOF + } + + /* check for the next character */ + switch self.s[self.p] { + case ',' : self.p++ + case '}' : self.p++; return NewObject(ret), 0 + default: + if val.isLazy() { + return newLazyObject(self, ret), 0 + } + return Node{}, types.ERR_INVALID_CHAR + } + } +} + +func (self *Parser) decodeString(iv int64, ep int) (Node, types.ParsingError) { + p := self.p - 1 + s := self.s[iv:p] + + /* fast path: no escape sequence */ + if ep == -1 { + return NewString(s), 0 + } + + /* unquote the string */ + out, err := unquote(s) + + /* check for errors */ + if err != 0 { + return Node{}, err + } else { + return newBytes(rt.Str2Mem(out)), 0 + } +} + +/** Parser Interface **/ + +func (self *Parser) Pos() int { + return self.p +} + +func (self *Parser) Parse() (Node, types.ParsingError) { + switch val := self.decodeValue(); val.Vt { + case types.V_EOF : return Node{}, types.ERR_EOF + case types.V_NULL : return nullNode, 0 + case types.V_TRUE : return trueNode, 0 + case types.V_FALSE : return falseNode, 0 + case types.V_STRING : return self.decodeString(val.Iv, val.Ep) + case types.V_ARRAY: + if self.noLazy { + return self.decodeArray(make([]Node, 0, _DEFAULT_NODE_CAP)) + } + return newLazyArray(self, make([]Node, 0, _DEFAULT_NODE_CAP)), 0 + case types.V_OBJECT: + if self.noLazy { + return self.decodeObject(make([]Pair, 0, _DEFAULT_NODE_CAP)) + } + return newLazyObject(self, make([]Pair, 0, _DEFAULT_NODE_CAP)), 0 + case types.V_DOUBLE : return NewNumber(self.s[val.Ep:self.p]), 0 + case types.V_INTEGER : return NewNumber(self.s[val.Ep:self.p]), 0 + default : return Node{}, types.ParsingError(-val.Vt) + } +} + +func (self *Parser) searchKey(match string) types.ParsingError { + ns := len(self.s) + if err := self.object(); err != 0 { + return err + } + + /* check for EOF */ + if self.p = self.lspace(self.p); self.p >= ns { + return types.ERR_EOF + } + + /* check for empty object */ + if self.s[self.p] == '}' { + self.p++ + return _ERR_NOT_FOUND + } + + var njs types.JsonState + var err types.ParsingError + /* decode each pair */ + for { + + /* decode the key */ + if njs = self.decodeValue(); njs.Vt != types.V_STRING { + return types.ERR_INVALID_CHAR + } + + /* extract the key */ + idx := self.p - 1 + key := self.s[njs.Iv:idx] + + /* check for escape sequence */ + if njs.Ep != -1 { + if key, err = unquote(key); err != 0 { + return err + } + } + + /* expect a ':' delimiter */ + if err = self.delim(); err != 0 { + return err + } + + /* skip value */ + if key != match { + if _, err = self.skip(); err != 0 { + return err + } + } else { + return 0 + } + + /* check for EOF */ + self.p = self.lspace(self.p) + if self.p >= ns { + return types.ERR_EOF + } + + /* check for the next character */ + switch self.s[self.p] { + case ',': + self.p++ + case '}': + self.p++ + return _ERR_NOT_FOUND + default: + return types.ERR_INVALID_CHAR + } + } +} + +func (self *Parser) searchIndex(idx int) types.ParsingError { + ns := len(self.s) + if err := self.array(); err != 0 { + return err + } + + /* check for EOF */ + if self.p = self.lspace(self.p); self.p >= ns { + return types.ERR_EOF + } + + /* check for empty array */ + if self.s[self.p] == ']' { + self.p++ + return _ERR_NOT_FOUND + } + + var err types.ParsingError + /* allocate array space and parse every element */ + for i := 0; i < idx; i++ { + + /* decode the value */ + if _, err = self.skip(); err != 0 { + return err + } + + /* check for EOF */ + self.p = self.lspace(self.p) + if self.p >= ns { + return types.ERR_EOF + } + + /* check for the next character */ + switch self.s[self.p] { + case ',': + self.p++ + case ']': + self.p++ + return _ERR_NOT_FOUND + default: + return types.ERR_INVALID_CHAR + } + } + + return 0 +} + +func (self *Node) skipNextNode() *Node { + if !self.isLazy() { + return nil + } + + parser, stack := self.getParserAndArrayStack() + ret := stack.v + sp := parser.p + ns := len(parser.s) + + /* check for EOF */ + if parser.p = parser.lspace(sp); parser.p >= ns { + return newSyntaxError(parser.syntaxError(types.ERR_EOF)) + } + + /* check for empty array */ + if parser.s[parser.p] == ']' { + parser.p++ + self.setArray(ret) + return nil + } + + var val Node + /* skip the value */ + if start, err := parser.skipFast(); err != 0 { + return newSyntaxError(parser.syntaxError(err)) + } else { + t := switchRawType(parser.s[start]) + if t == _V_NONE { + return newSyntaxError(parser.syntaxError(types.ERR_INVALID_CHAR)) + } + val = newRawNode(parser.s[start:parser.p], t) + } + + /* add the value to result */ + ret = append(ret, val) + parser.p = parser.lspace(parser.p) + + /* check for EOF */ + if parser.p >= ns { + return newSyntaxError(parser.syntaxError(types.ERR_EOF)) + } + + /* check for the next character */ + switch parser.s[parser.p] { + case ',': + parser.p++ + self.setLazyArray(parser, ret) + return &ret[len(ret)-1] + case ']': + parser.p++ + self.setArray(ret) + return &ret[len(ret)-1] + default: + return newSyntaxError(parser.syntaxError(types.ERR_INVALID_CHAR)) + } +} + +func (self *Node) skipNextPair() (*Pair) { + if !self.isLazy() { + return nil + } + + parser, stack := self.getParserAndObjectStack() + ret := stack.v + sp := parser.p + ns := len(parser.s) + + /* check for EOF */ + if parser.p = parser.lspace(sp); parser.p >= ns { + return &Pair{"", *newSyntaxError(parser.syntaxError(types.ERR_EOF))} + } + + /* check for empty object */ + if parser.s[parser.p] == '}' { + parser.p++ + self.setObject(ret) + return nil + } + + /* decode one pair */ + var val Node + var njs types.JsonState + var err types.ParsingError + + /* decode the key */ + if njs = parser.decodeValue(); njs.Vt != types.V_STRING { + return &Pair{"", *newSyntaxError(parser.syntaxError(types.ERR_INVALID_CHAR))} + } + + /* extract the key */ + idx := parser.p - 1 + key := parser.s[njs.Iv:idx] + + /* check for escape sequence */ + if njs.Ep != -1 { + if key, err = unquote(key); err != 0 { + return &Pair{key, *newSyntaxError(parser.syntaxError(err))} + } + } + + /* expect a ':' delimiter */ + if err = parser.delim(); err != 0 { + return &Pair{key, *newSyntaxError(parser.syntaxError(err))} + } + + /* skip the value */ + if start, err := parser.skipFast(); err != 0 { + return &Pair{key, *newSyntaxError(parser.syntaxError(err))} + } else { + t := switchRawType(parser.s[start]) + if t == _V_NONE { + return &Pair{key, *newSyntaxError(parser.syntaxError(types.ERR_INVALID_CHAR))} + } + val = newRawNode(parser.s[start:parser.p], t) + } + + /* add the value to result */ + ret = append(ret, Pair{Key: key, Value: val}) + parser.p = parser.lspace(parser.p) + + /* check for EOF */ + if parser.p >= ns { + return &Pair{key, *newSyntaxError(parser.syntaxError(types.ERR_EOF))} + } + + /* check for the next character */ + switch parser.s[parser.p] { + case ',': + parser.p++ + self.setLazyObject(parser, ret) + return &ret[len(ret)-1] + case '}': + parser.p++ + self.setObject(ret) + return &ret[len(ret)-1] + default: + return &Pair{key, *newSyntaxError(parser.syntaxError(types.ERR_INVALID_CHAR))} + } +} + + +/** Parser Factory **/ + +// Loads parse all json into interface{} +func Loads(src string) (int, interface{}, error) { + ps := &Parser{s: src} + np, err := ps.Parse() + + /* check for errors */ + if err != 0 { + return 0, nil, ps.ExportError(err) + } else { + x, err := np.Interface() + if err != nil { + return 0, nil, err + } + return ps.Pos(), x, nil + } +} + +// LoadsUseNumber parse all json into interface{}, with numeric nodes casted to json.Number +func LoadsUseNumber(src string) (int, interface{}, error) { + ps := &Parser{s: src} + np, err := ps.Parse() + + /* check for errors */ + if err != 0 { + return 0, nil, err + } else { + x, err := np.InterfaceUseNumber() + if err != nil { + return 0, nil, err + } + return ps.Pos(), x, nil + } +} + +func NewParser(src string) *Parser { + return &Parser{s: src} +} + +// ExportError converts types.ParsingError to std Error +func (self *Parser) ExportError(err types.ParsingError) error { + if err == _ERR_NOT_FOUND { + return ErrNotExist + } + return fmt.Errorf("%q", SyntaxError{ + Pos : self.p, + Src : self.s, + Code: err, + }.Description()) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/ast/search.go b/vendor/github.com/bytedance/sonic/ast/search.go new file mode 100644 index 0000000000..bb6fceaa7c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/search.go @@ -0,0 +1,30 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ast + +type Searcher struct { + parser Parser +} + +func NewSearcher(str string) *Searcher { + return &Searcher{ + parser: Parser{ + s: str, + noLazy: false, + }, + } +} diff --git a/vendor/github.com/bytedance/sonic/ast/sort.go b/vendor/github.com/bytedance/sonic/ast/sort.go new file mode 100644 index 0000000000..0a9f145598 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/sort.go @@ -0,0 +1,206 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ast + +// Algorithm 3-way Radix Quicksort, d means the radix. +// Reference: https://algs4.cs.princeton.edu/51radix/Quick3string.java.html +func radixQsort(kvs PairSlice, d, maxDepth int) { + for len(kvs) > 11 { + // To avoid the worst case of quickSort (time: O(n^2)), use introsort here. + // Reference: https://en.wikipedia.org/wiki/Introsort and + // https://github.com/golang/go/issues/467 + if maxDepth == 0 { + heapSort(kvs, 0, len(kvs)) + return + } + maxDepth-- + + p := pivot(kvs, d) + lt, i, gt := 0, 0, len(kvs) + for i < gt { + c := byteAt(kvs[i].Key, d) + if c < p { + swap(kvs, lt, i) + i++ + lt++ + } else if c > p { + gt-- + swap(kvs, i, gt) + } else { + i++ + } + } + + // kvs[0:lt] < v = kvs[lt:gt] < kvs[gt:len(kvs)] + // Native implemention: + // radixQsort(kvs[:lt], d, maxDepth) + // if p > -1 { + // radixQsort(kvs[lt:gt], d+1, maxDepth) + // } + // radixQsort(kvs[gt:], d, maxDepth) + // Optimize as follows: make recursive calls only for the smaller parts. + // Reference: https://www.geeksforgeeks.org/quicksort-tail-call-optimization-reducing-worst-case-space-log-n/ + if p == -1 { + if lt > len(kvs) - gt { + radixQsort(kvs[gt:], d, maxDepth) + kvs = kvs[:lt] + } else { + radixQsort(kvs[:lt], d, maxDepth) + kvs = kvs[gt:] + } + } else { + ml := maxThree(lt, gt-lt, len(kvs)-gt) + if ml == lt { + radixQsort(kvs[lt:gt], d+1, maxDepth) + radixQsort(kvs[gt:], d, maxDepth) + kvs = kvs[:lt] + } else if ml == gt-lt { + radixQsort(kvs[:lt], d, maxDepth) + radixQsort(kvs[gt:], d, maxDepth) + kvs = kvs[lt:gt] + d += 1 + } else { + radixQsort(kvs[:lt], d, maxDepth) + radixQsort(kvs[lt:gt], d+1, maxDepth) + kvs = kvs[gt:] + } + } + } + insertRadixSort(kvs, d) +} + +func insertRadixSort(kvs PairSlice, d int) { + for i := 1; i < len(kvs); i++ { + for j := i; j > 0 && lessFrom(kvs[j].Key, kvs[j-1].Key, d); j-- { + swap(kvs, j, j-1) + } + } +} + +func pivot(kvs PairSlice, d int) int { + m := len(kvs) >> 1 + if len(kvs) > 40 { + // Tukey's ``Ninther,'' median of three mediankvs of three. + t := len(kvs) / 8 + return medianThree( + medianThree(byteAt(kvs[0].Key, d), byteAt(kvs[t].Key, d), byteAt(kvs[2*t].Key, d)), + medianThree(byteAt(kvs[m].Key, d), byteAt(kvs[m-t].Key, d), byteAt(kvs[m+t].Key, d)), + medianThree(byteAt(kvs[len(kvs)-1].Key, d), + byteAt(kvs[len(kvs)-1-t].Key, d), + byteAt(kvs[len(kvs)-1-2*t].Key, d))) + } + return medianThree(byteAt(kvs[0].Key, d), byteAt(kvs[m].Key, d), byteAt(kvs[len(kvs)-1].Key, d)) +} + +func medianThree(i, j, k int) int { + if i > j { + i, j = j, i + } // i < j + if k < i { + return i + } + if k > j { + return j + } + return k +} + +func maxThree(i, j, k int) int { + max := i + if max < j { + max = j + } + if max < k { + max = k + } + return max +} + +// maxDepth returns a threshold at which quicksort should switch +// to heapsort. It returnkvs 2*ceil(lg(n+1)). +func maxDepth(n int) int { + var depth int + for i := n; i > 0; i >>= 1 { + depth++ + } + return depth * 2 +} + +// siftDown implements the heap property on kvs[lo:hi]. +// first is an offset into the array where the root of the heap lies. +func siftDown(kvs PairSlice, lo, hi, first int) { + root := lo + for { + child := 2*root + 1 + if child >= hi { + break + } + if child+1 < hi && kvs[first+child].Key < kvs[first+child+1].Key { + child++ + } + if kvs[first+root].Key >= kvs[first+child].Key { + return + } + swap(kvs, first+root, first+child) + root = child + } +} + +func heapSort(kvs PairSlice, a, b int) { + first := a + lo := 0 + hi := b - a + + // Build heap with the greatest element at top. + for i := (hi - 1) / 2; i >= 0; i-- { + siftDown(kvs, i, hi, first) + } + + // Pop elements, the largest first, into end of kvs. + for i := hi - 1; i >= 0; i-- { + swap(kvs, first, first+i) + siftDown(kvs, lo, i, first) + } +} + +// Note that Pair.Key is NOT pointed to Pair.m when map key is integer after swap +func swap(kvs PairSlice, a, b int) { + kvs[a].Key, kvs[b].Key = kvs[b].Key, kvs[a].Key + kvs[a].Value, kvs[b].Value = kvs[b].Value, kvs[a].Value +} + +// Compare two strings from the pos d. +func lessFrom(a, b string, d int) bool { + l := len(a) + if l > len(b) { + l = len(b) + } + for i := d; i < l; i++ { + if a[i] == b[i] { + continue + } + return a[i] < b[i] + } + return len(a) < len(b) +} + +func byteAt(b string, p int) int { + if p < len(b) { + return int(b[p]) + } + return -1 +} diff --git a/vendor/github.com/bytedance/sonic/ast/stubs_go115.go b/vendor/github.com/bytedance/sonic/ast/stubs_go115.go new file mode 100644 index 0000000000..37b9451f08 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/stubs_go115.go @@ -0,0 +1,55 @@ +// +build !go1.20 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ast + +import ( + `unsafe` + `unicode/utf8` + + `github.com/bytedance/sonic/internal/rt` +) + +//go:noescape +//go:linkname memmove runtime.memmove +//goland:noinspection GoUnusedParameter +func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr) + +//go:linkname unsafe_NewArray reflect.unsafe_NewArray +//goland:noinspection GoUnusedParameter +func unsafe_NewArray(typ *rt.GoType, n int) unsafe.Pointer + +//go:linkname growslice runtime.growslice +//goland:noinspection GoUnusedParameter +func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice + +//go:nosplit +func mem2ptr(s []byte) unsafe.Pointer { + return (*rt.GoSlice)(unsafe.Pointer(&s)).Ptr +} + +var ( + //go:linkname safeSet encoding/json.safeSet + safeSet [utf8.RuneSelf]bool + + //go:linkname hex encoding/json.hex + hex string +) + +//go:linkname unquoteBytes encoding/json.unquoteBytes +func unquoteBytes(s []byte) (t []byte, ok bool) \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/ast/stubs_go120.go b/vendor/github.com/bytedance/sonic/ast/stubs_go120.go new file mode 100644 index 0000000000..bd6fff680d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/ast/stubs_go120.go @@ -0,0 +1,55 @@ +// +build go1.20 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ast + +import ( + `unsafe` + `unicode/utf8` + + `github.com/bytedance/sonic/internal/rt` +) + +//go:noescape +//go:linkname memmove runtime.memmove +//goland:noinspection GoUnusedParameter +func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr) + +//go:linkname unsafe_NewArray reflect.unsafe_NewArray +//goland:noinspection GoUnusedParameter +func unsafe_NewArray(typ *rt.GoType, n int) unsafe.Pointer + +//go:linkname growslice reflect.growslice +//goland:noinspection GoUnusedParameter +func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice + +//go:nosplit +func mem2ptr(s []byte) unsafe.Pointer { + return (*rt.GoSlice)(unsafe.Pointer(&s)).Ptr +} + +var ( + //go:linkname safeSet encoding/json.safeSet + safeSet [utf8.RuneSelf]bool + + //go:linkname hex encoding/json.hex + hex string +) + +//go:linkname unquoteBytes encoding/json.unquoteBytes +func unquoteBytes(s []byte) (t []byte, ok bool) \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/bench-arm.sh b/vendor/github.com/bytedance/sonic/bench-arm.sh new file mode 100644 index 0000000000..b47d6278a0 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/bench-arm.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +pwd=$(pwd) +export SONIC_NO_ASYNC_GC=1 + +cd $pwd/ast +go test -benchmem -run=^$ -benchtime=1000000x -bench "^(BenchmarkGet.*|BenchmarkSet.*)$" + +go test -benchmem -run=^$ -benchtime=10000x -bench "^(BenchmarkParser_.*|BenchmarkEncode.*)$" + +go test -benchmem -run=^$ -benchtime=10000000x -bench "^(BenchmarkNodeGetByPath|BenchmarkStructGetByPath|BenchmarkNodeIndex|BenchmarkStructIndex|BenchmarkSliceIndex|BenchmarkMapIndex|BenchmarkNodeGet|BenchmarkSliceGet|BenchmarkMapGet|BenchmarkNodeSet|BenchmarkMapSet|BenchmarkNodeSetByIndex|BenchmarkSliceSetByIndex|BenchmarkStructSetByIndex|BenchmarkNodeUnset|BenchmarkMapUnset|BenchmarkNodUnsetByIndex|BenchmarkSliceUnsetByIndex|BenchmarkNodeAdd|BenchmarkSliceAdd|BenchmarkMapAdd)$" + +unset SONIC_NO_ASYNC_GC +cd $pwd \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/bench-large.png b/vendor/github.com/bytedance/sonic/bench-large.png new file mode 100644 index 0000000000000000000000000000000000000000..8a8785ec9adce4954f5d507c5e7032ea676907d6 GIT binary patch literal 87463 zcmdSBbyU{h_ALyyVj)O}fQkyz(qT|4A&Q7nN`rJG2$+BpA|N28q5`5IQqrJw3W9V< zcS_ftA5Z52ulsszk7N++sn&K^Im;@JxTvoR#w&-j{fbe zto6MrD^gn;ODL%3w|M#!y+b8Uv{_AyKUOHD^ zYyA6#(yK3bb^PmPtgJmvszX%&ej$1O`?LS^BTxO`|Hw3w+HC<@He=1aHBl0yEj}$~ z?-j!ZQ_WiHZ3DZ?D=Ju}q?kPtwXzQ|FpMS3jW^g$kleq2-?;A0)@xe!2ag7pn`>xm zGs*cgZ9OC^`f_NyJ@+zll{bB|j2aXd77oQ5WsOZIR8=X| zM2Z=?GEq^LG+xu$bK2Qi#B(3BV0tEBn8HI(Pl|&FWz^L}2MvYTl_G8yKRFm$ZOG)* zO}c5*ABU5y>*KDI{!us5Ol1@le2i>k)O17&mulLUdM?~89T=G*^=N2N{iw!4BH=PG zFu%aw7&$vX-u5%c*)~Jak5qrSn$Y~! zI>so4rXb-||6I`A z6|L%6gH5c#-*mK+2wHYll`^}J{hIIESnE1`_^|4VXw-*nho~S5FE6PTJo;i=*ShST zJ6VHAUkaL6g!1aqh}gUxJQ__&MfJtx=TVXy85YFqiOL|eBD&@wqLe^I&oZk8;?evXy=6|FZHj#4kA@@l zH!obcpq}k;vQ~2CBX5sg!Xlie}VqG_Jk{gg~gtbYq@Pwo6< zSM6-Al#X6>+UL*DoM#7;U6*WX6(x@!J9cxTJ+mrOEMyP8pp!-7i)zDOthYY?vXLs2 z)Q?G`f_Y<6u2*)x|5aWOt>#zRWP?g7GeLUu*3{RwgEdj%G9wQkZz($x5EN8YaBp*R z+jxZJ-IvjB%ifVh|L?}E83QqT)8qqj+w_`coe)QJ~$Cq~%Nwi(YPxV@7;IIfi2ZRV`fGG21eGI2 zgDWa7)EeeH&W~NceC3L_zrRrHE;6zN@dIv>o!Vm8h$E*H92`7dC&#RE`SPaI$P_d} z77W*P?w(>-j_S*v%hisg;bmmZWVr(ojBkWTY|6ezZBoXkT}zlId7;^5G*# z>b@9U&>AbubDKYNBnkm z*ql$j-Q+i#m|gS9e6lmQDwKC~c(tso?6%RSq`}AZ7FKP8p3H8C*w`Mlw`+OO-6ag2k54Jq&5=IsZ_$$w{ZkkHc7>g(%2!=cyLKg=j<_X=6@ z6jj^LpFfv=doq{R*2ZEV@xaa#Jx95@YZu+Vef#!x;N@-N_XoS1TyIT&zPIp~DlI8_ z9vG-6zE@LKRo|?#vXXzG(#O~LomRF(Utix;ufNo$AD=XYstozF9Vd@+a6El+Qlmab zZl9jEqVl6hkKVq0`z#>f3?3o(&fHA<*0}Z2O=Inufip8U-@bo8ub|NPbZ?4Le;+KcUqNlm51Dw>#>1lx8ikcihRtEiB-WmvL{iG|nK zU&g_amzO^zDVbN&r9mE0Vmj4bNFA{-qpKUrUlT2Cec!P9WnHGN(Vag-zccAcii?ZK zy7Hru6IImIWX;StJF*>PuO_HPWpBzG+|sR~WGmTO5}f5%-PyOfdr>4(X3to2ul7RGNxA{UVpG;KNh>yyQ!dw4Islopc7nN5~SksQRy zO;Y=)ek(@@i$4=9wN`$NQpmD1VsX()DN4Nj^*PVaZR3cxnAWokk9r29BwWgBY6K-~ ztE&z0ekCiq_K583U-Z4Fm)QKpzkR;--KTct&+xg0iH23(XNy_ubetokV_uhe zGZMFrm97+<{tHUclI9G0C_;lY ze!cwuRxR6l>(h-KfkYu7PsNn5&kyZgpkN#Kr}*c?tO zvL;R2JyNSv4@O^8tNu*0y{vSIb=?f`prkZL*7t*hz#qhz?rvk#mM`zx1TA|9r8bt7 zGunw{g)$YgxVT8yJG;KNa-5TM3j>*;%lsqK`wt$_@*D2vH>@IIkn&IYF@9U~!EzG0 zru^L!{Ta2L=7{W*TKznl=)rdHLtNY|pmDq5`eI{5$U^dsPXgwxLCCe? z-Q70{gaTwM;xu(g$8G6IZ>hhd^AW^wHEp2y)~#Eu0oz;zb$A|&P!F$6ecy*;Lf`GQ z>zJfu6rM-#a2)_bVXDbb5;=xDqn|Q-7~UvHOA46OKScJwbm>w7B6r80J*Px}<_&Dg z8xZK6I+fT^6yDsve~F~v@g8~~R!3vwW1F|_E-+2|f&_G;xMO)BVw>UG@*E{4rPa_6 z7KGIClP8ZHIkMHtZYcLS=gOUN0{rFUTODF&FI~)euWMjuCm_`2nqriqJZ;#GE4~rteBadMRXJOvc$o%_l8!}4$~N} z-ms)oPw& zipt9C$+}y+ckJfQ{qvlc^@M~(B(;uf-6z{?Dk`^p#BVnxGP^^zc=g)fOo_JU$7300os;fqUip-wacD?=IUVJ*lvN2S{Ky-WrUGa}P)1S$OzGef_u7 z**F4M$0PI_txsRne|9-T3O9mp$ zAG|a>BWx*LcJ0~oDgDRY*EGM-NTDZ3RN-hZO>V4P#*j!FR8ZFc{8?UA)z_S?S5#8M zhbq&%W;@eYZa3M<=)rGPGxd#(+iId+go;a3-o}QH>S=Lo1c_^{NzU)vn(^L3$(bxO zqy;pzMuOqa)5X-j$1C?T2p8zA&rp{>)jC^VUj9)hpUFymg4j4zb)Vu&K(7Qw-+}U` z+p!U+rB@rv1KE8S-W*kYsY+YDRzhz{bH(86OL1pD!<3fTMQ3cjZBNn8UWpWZ>5{V1 zm%`EF_dl?eYhCB0dMRXSkuw=3Z2fJ#Bu2>klcedEG;CT`6J0UFr@XR~4ILoFI&$@Z7z+$;rtU zmSd&<%!9GfZf{T|QFm&6n5Ck4^-8`nsHBi?-bUkp+w<|`den100Tnkl$?hF_iCqik z86AdpdDVve8J%|$Y8f>=!Y#7Oog$ee?$GS?m>tcM91%d|>FEH!C<=A-*}rzFjgl~n zGkiC$oqK2LkCPKN76)LnLw4k3{zer3@~Sgs8$HU4pxX-+5(1b4X@(0~9z_kL)^;ik z-8{cI-CGj3wMofbT6#-iVIgukP?j?a{ZLa9GpbvE;dbVa&xN0OEk1ZDd*ji=hfac| z)PA>WhO;7Med!Fah)nLQ)_Pme_0#nC_seb{9Z5(MeA3=M^k*-VcxYq7wJWNsMRhT9 zCiQQ(v1B^;CUN`8&PXhAU`Po1e=(=2!tK7{UH9(Y`!m_qmGI4jyGcppp4TFOlSpg= zhw)@retxTi(cM>)J+T~3tFN*qzXy*xH1$SsQ8tZyko^(bgEY9SY3?Xk8Xt!y&8bMo zPL|`xy(c=df2Q5OhCtRgqnMUy%)cCPu}tI%joaNoF^4gl?j6UH^4GJHJFWmy;m|E*^p2FJ|*xC3ikeo7UjCgK0-rnnvuexj7;8R@L#< zS5vot%*vw5Csdu!1qju4U$aNHLD2Q3w^=0EG^L83ypd|P(thf5*0!nHwf0j7kJhjY z2sE5*vA*m3QBvom0+a|9wtmCg6b44ZX|`G@_lcHL)MRgCF;5fujVR~BtJk#p9jcP`N`2}K zqeMu*mgYyhueX?6->z-man*Ly)XCWC7u?qUt~uV-dm{I#Qa8PM^TzcAQd4erg=^gD zv@4GqiuCz-jei`>~2{$)#RG7>eH$>ZkYb*P&`UOL{Zy>qGmz@-5I?nMtKd#Pyl>; zG6yw>kkSwF^9Q0yzoMd22z=nfK6@kGto*BW?*|4p8K;LEUqC zBaI2v*v0O#mJ~{AY5*(HoC-WQX|p>}K;eZA(9iXC54?i(!&;Dm4@2w;Q@d5VWPn zk5yu18-*>yu7C-08jN%lw(2H1e*8F^T&vYZYXB{xzeJH8{u%4Sbd=SmW$NhTOuy8u zOWNIZDH3AM-At3>%-Qot*-5%=UbcQXo~Y@CqQKj?Im)$sXF>9S=jiINQl~3-BJ%#y z@@Nui>89&7P2ycc*<|s2F;k}EPD>*5otNOYw_2&Y~4ED za7Eb~yv+PW$Hfa5b`dQrSW}{+`Ma+^`23k?d2V#jA);(4?#IbJ-z+jx(3M3tt3 z7SKVcX^zWA%Zf4B0pK~qIaS+~bug;@fUAq;#NSS2JnPI{6oI8oEnUj$D)ohkG; z0c-k<^jy#~_HuoND*Ev8Z%K()OUzp~eG?M{ z5WvfH#u6=O@YW31s~vw2X2=8d;dEp?MCQZ#eCSJSEaXK|6T<*(yIfTAGg zSio$c-$8Qv{(Ya+n8TGdlpRiu^r}Tyl-!ciyg1^F`Wu~UJQg9u_aWOl+jdY1+p&|3 zOmA`O_ikoMhVbf=p5mvz_9{T~v1cOhlwb{h<-) zE41#k9^Cn>&!?uWQ0oiOhY=WL30;XvN7gCyV?0c`EuU{~&dki@ypif<-CLq^<3>gO zyNkXmQag9<^oZG!rC)xaqM|}Q-HeuKG*Q(7*QcgSnZ@#G-L(F&^YJ}@_;3qqTp1Fd zdY0Ys7&-qEeLjN6%&6HZ%=C1kHH`yN^!DAmWYDx=Sp3WNb;n!NKs7LXxNj`DJJKh+ zN}@X|VZ3Iw#i1!)06fAs0eG=0OY?1( zA|P+At*vps8#IiT&*BisUApwFOQEZNWyxQ>s0X4MU}4kd&BL9!Vn+kLK@$3b7_}a#qLp0xbEU+WUhed1 z5{+~-UZ#|B@B>K4#b$ylK@=XABEA_pz8vSfUzt44|06QUrqtFXzw z?3X_D-d?pkd1+&@*B@=?&o?qp>8M|(s&f+5LC*3>0*P7k=X(_FNm2RgQn58+LidT#@p!}5s?5UhE*y3!$SE>d-6BdCVgvN{tOj9V>#EHYC^GnFGDvX zP)K&(gUzc04Up{MVwB6ot&R1yzJY-mbQlD&bmGJbpC!?@RFm(P?kgGvyw{p1-4?_E zeB{7O*Geof{QmtLG$b9Fj;70anuX(TKuzTvH|UTxIkmDH)IWdu_|XT6k!|swp8oQK zeUfEC$FF?8@hJ!GKS5<;KFsx(;NA3&@*oUg=r*+!8&1iISDceE&vM1K>}Tt?dA$;HuO!ZQc#C%q5-= zJo;z&XK5(=$1AZ)7BQ>2zZEn;{7f-Yw#e+KLJ4lkv}M1v7CAwPP46yJqkgGpSTN!o z6crUc3ky3B?9nZMSb}+!n%tx+g0Xo7i6uqt(FD5P5`X4ewA*0F`df^m?JHSGjw(eM zi_5w~97+Z)3qq~>$w3bF+&ia`--CjJNc`&L6WMZz8nzHoLf=^woK=s$T$n0v6(_kR z-(3n4mF(UhK;poGIohwX5}m2Gxt0$WWdH4JxTq1?kY^$sJDojIgK_$(f3BRQSH!92t`I!RrT467i!}q2{>F) zt~2E~@{@l3C(eH7ShoT5m^O7}{eDc}oa-WFU|=A=&~Ez&bPW(+Z`!$Y=MuzQ4io64 z@`zEgx-lAIf<3qF%G*uDQ(#NY7BZD>lP9Fgsg(r zp!4ffW4`jn^CR5^R}XZuk#Lb4=&7fi3Xf8Qgd>bylsy6?g%(}rVgHPNE> z6=f_S+KN$|I%FvyJ$}rGh92jx6vBazObUbqFr$O$hwQQohi@y9?Yd7Sk6730{uzq$0}$3bZ=T?y1535(P=d`D(nZM`sX+9 zqSycO0@zYR7$k_Fvi`$ByCK?lypeE;(xLZZw^dG))MEDoqQuHE-)-nWwq2(uwpjN! zG$Dh+`&%uZ(&?0y1+bl$m%mvPA+n0xXQ4a;orVvX+HE1bOUsTqHShM8ybq&JYFfSk zMA449JFOI0_yK!fa9%%)M?!bQlWsp;{|NEgGFfdw|gZp@$pKQh`&$_C9tPZ*@L62FOk@mEfZi60<7I zS$4VKN@-an>M(ZB*Wa!25h4z$V7ss^M5jAMh6f_=Ga z&?%~nfcY7#jFwW`$w`<{nw}5;SG#Bkn^u(ICA9!CjrWzQUOdl3|L37U(saa_|hErWA`HwAlHWn~N~jyb`t z4gHtcrXC|nBD;I&y{;fr^nD&4UJ1q=8V2DTFt;`(w*=ZE3=_VD=BO+_y#>AdvuFF! zeM+OpZOOYUhWgDWBou;t-swEZm_feGdO4#Z;9$UGL8x~Gt}IA?Tng6bI2YFdjv=3{ zr!S}mK$0xL{5kohdtP1w4v-*TW=Tuad6t#Q6XB3-T*nHTcd=4uy(e8lKp?1;$wfg1 zPK|)db_mSEU`nx$D3pcj`+vqG!T8Yde*2{O*Q^0Uhlv2rzhVfN)*{$IVRXe%OR*}1 z#t*{Np|G?8KUuVqX4?1!O2ZeowL1W6iui^B0Re=b2)QVlx*BRAc>u=)xIXIR>_&h2 zT6APN3&I{!cJMGKrw{rWUYyHX#lN1A#;nwf!T-ZL(!l$F-vRRff$8M`XCIkO4q(W3 z@?>?&bvmy^x!yOUbzg_>2ry+)g>Y-Nwf@XZV2sRo8Z&!MOw=+h*4EMa>*b{0;6>X} zqdY!MZz+C(yl9R8lV6Bz%Iw)=2w5HLA&*tAUmu>&7vR+Lf2_wBCLS)`ci^&iw^*@H zYn^kpu&8@lZxSpRt8rO^2(!#TszVmiW`g0ODZU>3E$J<0Od4-l@MxTY<$d$YlPats zelwf8jvF@k)wC7YEhR9zOIn`lmpkEvm=oYUm_;9e5ubxzs&-XtZzsodar&(Lb4Uw(v; zO-&`LXVU2MV9Qb71m zkB$WewLX{RZjIg;$^=x2JsIsbWI`QwSAvtQP z?FIP2XlJ2fj)}bHA+bF@y6dx2 z8-c*P)|DqS2)7XAztCDQt2bPis<7G2C;`bMHGe^Dse7q0A5@ zGx3G>@)^Y(rXZ?&ql@OfSwP~p)K9IJq+JbaJxtL2WhF;e!pDz&VMb9bM~*y#or2G4 z>L$^D0&TZsSTYj=>>x|X!(AQPJ9h45fewdCLgdeDTLycJ1;h71el#$6*A|mA2o~M} zN^;SwGY{HZH*enT>wlY~nG}YvZ$NQzadA`ac4zXKZl|;~qXMDIMuqq7ipe=G-8ZB6 zP07E$SRjRwo&A-V^F2nd&y2AN_6MuYO6AFz);AUs-Wrv&ejAJR_GP?q_UtAIl)B4* zhV=~$rhlB;bbU;nBjyM4cEnN*UGXZ?MAzF zv+j*dyLBmJQE{;|!_^Jdq4~3#nhbc3IWsEqOkHq!NH|y|p7&hS4yukY!>p|=7(r`^ z3g4Z##R0@#1;8{ADA!xJW#G$5{4Y7fH`>&%uvFCFwMT0DYpAmGJ9 z{zk4w*E*;JeITa6@yXct@9WWDpHTifKicFEE@}FwvQ+$!@lVy^LMf(=C;XVDlyFYL zQ~1ye`Jt`I9?x(X2TE)q04MO*TWo|vD9=6U)dkZ}Q^B}Ixhvz(E{4Lac#Z(RcEUbf3+o%a_lh z{Wy5=ATr@%DvdS(ad2IGl;)D+a)<)P5SV8zeg|^6FbI2$y#qq7iSC>~-j*W}+!kSux7f0i)Klb;WR5YgY zdGcLpPLi3}nEd#TZM?#9{|)EIthSW5f@6;h%GuPkmz4RVQzCpupmV`^kW*6j*$0s3 zaNJNW{rB1Eu&IQdVf#L&kJD=%hAEj6(_?*_+j|<~ugHcAC53^TfVPZDPo;uK-eNuCy;1=;RPb2Sj|NPhjY{k4V&$z4Bg3SC-D{E=(kCb+)7 zkWazPT+8U#PRO}nZ2MrC?1#R|&((vLqX-NWS}G1WD_B7zTjni2M%2&FRB|J?Bl<`I zF+nZ_0?g}iy#z@;+j=``8qLqGWc6cQTu0$jK$h%XA^eujInMlGihbx#f$84;w<5q! z_+BBbC;gZ=bnlcKpI~3Sa{c;wq$}PxD`(NxE8-)-d*rMyk1|Ny2|}#e{!|potll|% z@#c0p&P9Z1n1qWUp4+a?fhCVAJRksl5t-9`i;>B%k70v`CZ_?d!G7Dq&PZf+sE$go zJ3y!qK~I66huZ3}1`hc<7(2j)9stn+E@yF6XQM)5q5V6WE7Blp7@`YpHXRUQwDL9L ze;u4jqF(K{HIwhY1y8!jYz#>0&(5=kcNQkh6>j&N|IfXAdrR2X)Y4|O@(huIH?D13 zt6GoE3aDyKYYYY*fD`czb+)~S_)LE{Z2zv_Vw1C$*4&5NplDjVT zhoC_TKraDdQ5ig2sr&k%`yGZg4kH$EfG^|9+FGOE-yRX%VQ59)<=JfQCNx+(_wF44 zWge6KVUAF(VZN+Ibtx=FPg51% z5+)znDSvP8-!K}oL6iqYM7JXH?*02O_|md|3?_DONFm1)B8kc2R-69vjMP~()*squvuDhMLN%;vH0||Uk)T9u`gVY`CA=s` z(RY89`RAPE)7))2%Wk<4_!y0APDKJYbmnOUqcPnQcm5a) znl%?d^Q*$*Dyyne!dszR{`|<6?b}^)6N9dR74YqfZ7~zn=7w#Ja0Wz2*TOku0-gqa z;A%g&`z`!9VAeCYwPoj=vvY7yF7`5S$fNlL*wKBk=Z{Hf(j9Uv-6J%X;F8;6-2oj# zP~2c{Pb1lq&3Q16j$ZH5}I?e0=qvQaD*{L_W8eUES5uNk|R&pk6R20-N;lAhl8(;=2=LsrQ^6s)#hkX;RdFRYrGa6ttpnId72WT@)c-~qQF8F_vGZ4S`GcxWeKwIzE zXu9^8s)*ggiEyl+QGkS7ycgkLpK9h%y>(oC}&01hU(uif?~Q`g?*c5P@~ zYGZKYv&({oVQo}3kSbihgtE7rPM|DQXbu(xoM>QVr<|&*z#5=sU%h%&U~KE)6B!ZN z_HshJzprmU+#?1x)u0AwynR6u6^YarH5Ix1Lmp}W^a*g9@Oq0c55<^urBR+w+0OU3n6qxY!|sL)s_^ zpzvT@cOkre7++{EJ@0(at1S4F`I3cbu=(36%8K=8J0tirrrWoAphDW9{!t)l;*-K8 z?}~oX$as%02vEZHIAbX=W99sJD@l>zrG~dj&Kdc~PM+M#AoL`Wayg7%s&-Qb>@&K_ zHwD9!)j6BT9jXjdRHhR5f&1L|{qde&z!=!fx9z4mEibbP?L{7xh=E&_)(#HkRAb4s$>E?(2sF1H9O zG{Jy;0|q4cR^n%1L?z@P^b;?Oili|dL9`Q|n`p*sq(ln_RqnuSd&5UTI`No&q@B*) zxkm7ddarj)aeW5W?;ZGY1Qu({I*x{= zn$MVJosF0_`?_h!XkN~l%=2qUgk4^2lR@E1RTw{L{rcDEwr9j%a-3-2DZE^pXN=|y zw3)tY_TA|ovo6o8t zcM?vn;L?NG0;rl>F_A&78L28=6y0DbAXI=81Ut#j{Izk*j@H^pG0zSQpIzW@^w z{%$?H^uaiDtE%&+DJ>s-y61z5U8uYlDLu;fQf(GF`}8*4hK@}(fx8(&=scKRS%r_Qzj*Vhz)SZ3NB4AC$$6Q`yic_tRs1KwPV z6>M=bf)L)`50nLW>mbL#pbgyZud#w1!l*!Io3S;%`5E&E&XAax@BRsBvs39-zeswB zmzUgX3x-zK7vNK^HAwn!Zw+P7XlbV3VuR>P%PIFF5$)o0iS)mM%{txullf>plC#G->v`O=(bp=?&dv(IglsS0n*KW6lPL`FPO(WvZ=$X4JmyiWwscp6qcuyb(7V$m;43MMIA7J zXRb_S1CmU)A7;Jw3`Qu_4)kxYzI>@4v`@(41s*LDFYJ@Myrd{ zlFE+oFmWS{N{C(y7!zn*A8a^I`a=+zKzn;m!-qnsDFjft_=1xK;K(w6?S<6(wEx3L zk9d(_3wR5L0AB`PXjt&(m0-_}TfQ8DNCQ^o0YuZxwFHy9G0OvOVWwN)wjo9|$f&vc zuyaQsH6mmKqM~Y$2T4o0%kbh*JO#kS;iE@wfMy9xpNz~_ilYisPFK6y?S3kLypi?< z&P9Kq+7O^iBE?`W(L)ieLzE{#*{LSK2=1+uh^8;MzHbBHah=I^>I@Phkv-4}v9hof zs#Ds)7FiV~5l$esofJoZBHw>&1!nKE8^6C6n*_izf5AK~!AM8i3Zh!}7xA!V1H+b5yFyO)|gQ&XMu#SPyPC3*R7 zI9z_CS`6-UU)nro2@D}XwzB|+JkZGs>YS05`eeFRw-FTEdacqGjlEPA-Wgf`1r8TXX2dEu zZ&9kZ+I%jjNldr6iFD?nxBoP@#~CIepGV%g{|4F=jvx#aB1Ichu1hEKpx|%WwvBGX zRP6Z*R&dtL=4Xbb&OfKLP?ZGDKj`deXgpO3H7FSvs>rx= zJUT3h*&4M^H;5)Xo$z6x-zgb{CoLsZk01v&Ri0Hr-i#2ne*%^1Mt0TD5V^Z7 zfY8D?ADnfkPoMT^DxL(J0QDP^*_^YOW8Ri|j_Y@iP|nR|&3(cQ4n_?zb#$A-nFN{? z23vMQG@V&?Y@#OUp+ts+Xgf*?V!jG-XbcNZ+EU%4C%f}LaH+Y3OF3sp$ByI;yhGDm z3QnRKTp+T8w5%+=MOEV&T@&eEfU>dIQ;o^t+=tVl4z^W`yd}d7l}CV@H_>y5ul@Py z3J=d%XKr|kQSAY0>QV%VrFeA+rbQs;{p|veo4}(8F_z%97{nZWfX$H#2=U1`oT2k_ z4)ydtjo8#T80I5JQ|ag~V77s5D`ee4!(cFcEpQ0d~u*?jU2CBPf)lS~GJ;aH9| zBiqQGyLW#Kd?ZaW&>2~Z`5G_=C8lYYRaEX(8z#(ku*OI78!;qo%7AL7_f%kumjA_4 zeLgS?J9g|iglSnMj~HVb8XB)+-9ixYY}t2D9>84XYR*>qSSVh#M+3;7pvJPYeoM)G zg1WZcPCoZ&=KkY%p(;=!sO1Ke99H{tBDtkZe|@9{bY~Y9ZayhDgXmFMnID%39}W5o zVNV_XKTrsbG{J6vhE$L=E+82rWgkK3P7u0H`RlojUI3{iPv_FHU~*m4^$L1Z#fvXjaI@*pDA~TZz}O?@@-XU|l0bg-}F?h`2;mB1iti{$L|Y zBv0A*Nxz*q#yu6OD?2`vqs0)J-#Q&KJD}*+Cqi?2L=BD%f{uk*pa=HU%{PIh(OEwL z??m%xVrh2pikeypC{G`i7QGUmTi|;+wR1wjm1UfvMn6v+`~XI;e}$3l+QoY4P{B}{_y4BDa1SajseHfvU)?B;vV#=* zIarwrc#jYcLlC2m8uH>iJkL<_ra*9|V7^pORj2@dLLXKkVXFOWV=1+0i$B&4m;yu* z-IQS!O~$;2Wo|H{Eh$Qql6<4r_08q278|e5IIw6}3&Y4KOJ(QmrBVmlxo9*}K;{1&&W>(_&^FtnJoKOLc0(g_Z(rRWoK{ zma%o;;8a!5apDa;s`v)oHmtOfZ{Hrq3Xu@z-fs2N^{5GvJYfnYl1fomUW-2MtdV&q z@vkm&S1P(lD-b-{Y2Ic1-^1KF_ATuD=R!9+7|waxnP81ceckQKgU=EV>QEytW($@N z`JRH3QeXUKf^LTV+Liy-+qeg-!&l2h_Mcu-S)-M>BS5g?I6m0Y&lVk`5Hb{Dcn%XV zIRLK1Lr>C9xn_7FA|^kQ^Mwv|@*hOJ^(X3=ROB1)R@?FkNee;RC|sDk9>*04D(Ka8 zEw$4-2yOxqjC@9eRdc)@9v&oMP2?t=9Oz>0{Cx>I3bNuJs6H2+}EtxGr_3n?tOC62A_bA*2k zVc$0kc>HSAdf3@vD1uSQzFV5>WdGK@D^+p-l4jQ(I)j)`5hI=dZ$LQ0QKt*efk`LAz3s6eV7P3is5Ep#3&e<2nY*>F@-kkNaR1o!|5^s!yT_=}cjn4SusB;1r^@l{o5jEH= zLP4YeIQI<>QZO+op)r(jWCJ&Yla4M8?rx%EzM80vu@7J|3v&{9REaAF7R7}dEfYGUCEIhW7Q2`%Ufi=9TK#uA4zsrqQq70&0pId=} zJh9|Ua=rW9#Y6aw>c>}g=w2jxdTGZ0_X7{*oX6yd^nQ?6Et)b2!cqJ61vvF#5)}`Z z>EqK+R`)qYyZXAjBh}WkI-l$^o7$QY%w|Ri`z4MpZvshI) zT6*?7N*|GnX<$~TEdPBx_^AmmXVo7CrNLNO$gR#o;S%?tPA3h7$_k6h;nf zPBz`ver8+K9(G==DRbh=>S{wUn`}(o@2OkLN)8LdKRuE6QqbHIhF>r^s1UGe*THOR zJ}Y|uKnK&?bVtJq?(CUMolj%eN%x=K!6JU$+@H+!{_}3NdBsnr2Ud2lJd8W$?(Y6- z$jlFOB=7)`Z zc)9n)nFrfowkh0LpWOHYB@W&i0zQC5W<`*+4%k0GoFzfPC5w!v544&U+!-@Z6Ibi0 zH~KT$#+g>+PU9J-RMU95;!Mz`7EC@!_;4uMfB#vp3M9~nb;dMxciv!n zG7v+GM7#2rfCkD8MJ*y`9ErK(0a|;1EQx$~ys){-r=X7Y+n$OOxj9evhE6v~ZNVlz zWdFcnea8Os;Oxs)##8K&xcBF7W{>5&a^x z>)_?gimWJpNr9lQzMi9q-e6`jC*{%ehv$9cX2aELhQR{oh6lL_H3GoU{klX6C z93V6=FE2qRWBwxE9Px*dF~h-{NEjAy(9b|hq?L62`ci#644?ZUa$J^Db8>OvhjGI^ z`2k{-kQZPkIE#owJryU6i(pf#7G{g7bqFjVxv^@ia5OOe1|EQRb#09?og;oU;VX*y zz19>*TZ3l{V=X~6a^77}EcJAGXn5#+X?Ab(l*p2(>#qy}bBB00O@KbOxf^`J^P#-J zNGbOyf~08DcJW1#xu&7D^@Mwvx#Fc4d#Ll-)K>R-au9PXe|{=A<_e~D-d)gwU9AKi zjxuoVc_k%7XoV5DCFJ;(_r~E}^LK6#uob2Q5W2iDS!BTi3#!D4K9vuAWHL&aHq_N$d;ywoOkCFv7byh$#|rxE2V^ zhCj}t!q~t~2?gu5Ha82)J=7WEVwo4DG`_N){%P0@fIL>19YADJU`z`SvWR9~rzTpe z7Nslx?k*Cb69XtFBia#onD*Y$(NVjjj#>&fn-`asNYQ}4ijU9klW>tV|Dq9V+x|xB zyqn92nS}>Pg4aKXiGdqvQFd{ds5>MY>4#?*3u=;iJ~V&KUhi~xc=%JLg%vFxNLFJG zO?wSq!a{)_=I#6Uo2;O~ncOIVJ%t#V#(bqw`&VnzB_e7OnM)9^;*K8D%#7mKabG({ z&80~+nj_5jF>Ar=IH8HuP25(2fF%Y&-Vy8gaAibR(~A9=<(QseIH4i{+V(?+zS=ek zo{ZRFEZ9%DXu%bh0=|Xv+}Z?OrxGm%U%)yTc-!?=XF!W>lpXDp5UZ1NW}dXx99&tL zWas4#z|69jpm{5a%=s4t{dx;5BWwvZw_K=>-C4u_yutBg5O@0V8t3BS?Vy%7_7a7k zrlzM!pBz|q+~r)G<|+95)8TXp5&Z4koB=El1R+aoH`s0PG@FT-f|fwTt1JC!#Vx3m zF?^_|s!AW~8H1Et1e9^&HW&(}Qq@`3B`|D$3M68BST zZgdXixTE1z^lOGOdp&O(j2z0wsNDVfQw8TY966noFg1g^cxysR41SWhul6!CRuDPu z3w*S=E@1nqy77v+2!!~1wB<)89QM%iJw)GT1C~( zY;BhaYbcM^9dKSl7#;I2R0RpmAgN~Yo?7`d2FXG~tH+-JgVx~&3gk1H2RT4i2uWpR zL~rQ@xX2XXT!qRXAf2)QY|xeI!wZq8uixq$AOG|>7@L$X=xT&_|0*$xA{IYopBM!^+FvxfZ??BJ^-WV5u}O+(-Yfw~EIF>)l*K5<(EB$|;tFMKY< zthg0sH_U|+*$&S`oLdk)74R>p?p$ea@D0-_R`&Td!RsIfqnX-nIm1q|zP=6_BEcY0vz8V^dViEc_zEyJOn0fFrseWYb1@X7sEa+DR8;zX@4`iK z0fVz}CJ;v-w<_$+)mBze@cBM3j8!Il+_;vYF5A%(S+4P<5`5_<4RPcoO-VZJxCQ~0 zkRY;<@o@?u`%a}Bc@n%o(cHe~#EdS)xS!x^?00_Y0s9MSjTn;0B?1abJ9FR1b<>AMUP!d z?0My;Mq)*`-+ba zQ=HxLJM%Et{)1OLo7pjkiB=~Wj3&yM0{9C|f_zj@zK<)JrrK?5No6)C0ITxAsLpiv zj|wPiFzxT5y%OUrBXdaW_uhnagYIic(uqbM`wZck@I*iuZcH~I9MsU5egoJOu5c*T z-(RmI!$I@%#CybhDkAoeF&}YOqknE3eCGVuj`Q9^&b4o{Fcw12#FTh4kF7nxdjdDZ zkmYLE!gDwD>r?o0wL2;*Z+P{~Uw$aho`p9LadFkW&ViW;V~fPvdfF^dGU}_gUH_z( zVI+|GT{k(1Zi|z%^VN!5^5}VfPyPN*5GW`&`yrXSZ>;FRIp9&Qe_2WnoHWF)40HB} z`@h+q*F1FMLr$_Xu2Vyf@5h4^lOzIW&CkFWcDk*Y<7KCj3&5O^k>F*-JsaTNpp#-c zs~1;-7=Wt7+{J-NrBWyovcOt|qveC-B+3%5ID14eGN7&NAYkhz6=WhuVag#dFHiHU z)jfFf>H%BR)-f;^1EqiU_dfSy^PB`0L&^Ka7&bJIG>G2xBSbAMCXosdY;ph!CS7^C z>6s5O&y4RkU?*!0U*8FVS82_uN7AlLQ^X|PFT8o|)ICjgb#>j1vKiyX4+oVc<|u*B z29ryf&LuVB(jn+_+mMWo9zMLq184akSxS@0QYTO!cxd3$7vET&#bWF~CYoacnwoI8 zLF6D*EaG}GP@y!irE=#?-KQg~#{E99fe?LEzS|lNpZ<<>k9S)yGN56|!QBW%v4`Xx za-ah=1i+IDM$6E|Rf0DqXj8%f0V$v#fBdMKd3i1H%!zd||1@r;CMJGJXY+e&YMVQR`8A5E%>dD!wVhi$a`G9ILA) z7mb-ApW;%FO0;bFhVaGj(b3VFnVDfY(46?6gQL>fEa!b4wvX;hOt>!wGI^%cG%E=v z7l9fGGwIypyuzE^z*~JV3GIUt|4t|0t(f~aG4VNMCkh23_38&`h)DH}^F4xezTzum zDTEpY`s*ir{P4X=gL=S-o zupz18E*BeA7sC68HAq$7{6r~R3Z#@;LR!(Q1ptG+%-NN?jV~IMCic#>AEc!{4^s(v z>5(z^V=u1~L&Q&>ocNXH3LW>nqT)MUonq;H3X zW7f=R;!Y-T_Df)D`-$azsGW38%ClUb09`Prq!HdTVvzAQg6sJZ6#-QCpX%{zKe&#^ z0>`Tsd3Te{nVc^T{9Um(~`MCkYeK@o9-QkRLmC?IIuv33lcCUw9-QQnYm@ZYTx` z0Y*hqcos6wEkUe34-+B+@U+TVai|=?Od_dpVEx8f9Pyn4S@4empBLw{!Re5|3(J(I zK)(Wc0ODc%f$b*DP-P*Spj?yU#zi*Zc^fAp8cwUcS%Yi(_`2Occf6WWBqkg645%_0 zR!xGE#_egCL&haoMBPKKA#J$M4eR$2JO^OOevF18XI;lYnh3^nEIMAo<}ibxj9cLk zxu(_f^hzu@-B_^W4@WWF!NZK@?T4y{s{n{GQ^K|a-x6U&KsVAF8&qzQ!H;n!J5ffA zU~YMZj6~ciR4EG#hmQb<@$2vSj4F=!Q=i;o+{CB7jRx4chraRqJ48|8E#aFxG z14vHay1Jr?I{9yTOhq|_9rY28hmHW4vSg5$xCi-Dl=hr!|T98O%q zHT}h)65g5IJ5Fy?nu!6iJ{U9!;~9+K$j22x$k#DOjD{RV{_~Iw+1~~I{d%H|QxgVN zz|>vDZ3{3kn>vH?Bly5QbOI!=0E37zG9)HUzgH6X3}GJnpY%Gc&o`6R(Hi0Q3udHu z_+s3~-D6jXIW^C_*_8=M{5kOZf->^J z6=oy^9fVK?2JmU+f(`87G56+81^o)~ZuTRp#Jg>*xNi_{-*};G+7S5XKKg_9CT6>F z2nl(bu;r2whu#-r-pPfB*0)MWrMSC6b0jsLY~BG|0>h(Lji-NJWIKc19`^ z$;!wc36YBIkX1$sg$61m_v5M0=eoYvb^m_%-}m=8zQ^%tozC-pzQ*(USWhrP%(ai* zPb2E;1<6QlQVUrY^4e`iR0ZT=;hRiN@$_$Ob`qd?Hn1U^G$r;GLKs1W6p;0!k$=~o zk7XV3o^tluL|tLq4qk)|1feJ8T(YEZti%fl1sV@z0i<#Ma?IahD8&0i)kaNia74B9 z07~vzvu8i4shP*e$2W(CnZ^6=OC~)xXlqi8^At~>JelCJI!i4uT+Q z;gUv|CtF*G{o)P3PJHIk9W9Jc{MfV@m(SPu3$LFcParZ<9TZ}v+;a&i*w7};|oGM)IU4p^^A5cSW_A6=bx{ssyrn-82byJqArywO3T4p69;{-g1EM@h)R_bj& zT+5AeDRAgvVW3KAc%@^k`)u2mi0WA8tcl;hkG5teWas+8I*@a`Nl@tP=@nD=y^>m9 z&w`FfrIud}W*d-t+nM+Q#Y2=I4sK|QV6+;j*4Ok zw(fk8K84%RA!>PDDTkH5oud-nA3v(%8qiB>Jj|L|VWxo!K!O`SIdkz3J#n&Sm#?cR6>ePQ6 zUBhz5!^4AJ{MHe@>-dXZk6RaVot)h(;3;h6nX7t;@9*-GyG7U!faQjg2W#1nhA`cB zDgH1xc=5#%#~Y2SRZsfjpMGz=pIf{S!CMSn@ff53@h|<0ii%3p-*tN%YH+_2@|H4Z z=$~1aT4GjwR08k?&sf63zwceuxN{GI92IZ>;|1;z5|^5q+OX6pQszb@`;XujwTdW> zrHqOT0(f`PXQnu4E(RZE`Yy&rQ5rub@$SCD^|Bno%BT8_1k*R-87TnX8Jrf*7Qne zZh-sL_wDnU2ME9ltgrY8@$B1k`)-GzQs#IfnYCFoejU`1#lxlriSO1|JLn1E9|S)& zloy)_z<&^m=3gJaCysu5W&m4z-0J+0v-AKpEK%xgYa092dKteARtFZUG}bvXM##1P0WJchi!|s_64$TR*8xU#@QNQuv*mK)a{pjzYTuSt6%_?qmx@q>blBL6&{!< z8d1hN*h0@P=;^r*yRfCkl6z-KAiYjPvT@fei(sZ4&d!BJ1!Asaz8ukZ*K>>Aheo>U zn`fg*o__1`pVqFP+`BuxuC+PrIlJ12BWEp^p02sg!m|;dWMIGU+3O@K1W1raYoCh&*I(H z5$^a~;PWXaFHFo-0Coo;PU1MIN4ZTWCsp5rT?~|O+zy%K5=rae>?NK+lg~lC^aW;K zIASsz*^S+{YD(NXh)ROMG?<3DrR`p#MnXcw>4!|LUOs%ELI%Y)W9Y`QqX zoAHCw3dNh7~#?WX+G3q+18Hy&xZe=G< z*EiLGeHJ=-S{V{{?KkjFfsv7Jz@W&({h{#ezYjNVkoBF`=;g0tS(?sHV;800P=phb zE^CXUt>AsI~!FBJT0~Bwj7mJrJ8U-ug}*FE4Ku$n;o|6c==b z!P)WUy7!nDoG`@`z%J%D9BOZw{Kt5V29adO);|F_y+pzL6H2AM(3PT#V+<6{h9H}$ zI5aZ!V|fRnj*hjV)$MD~69;+sN-wN);3GX{fRmkgSXgC&5D5`RPjwEeIyfJ3mq))2 z@#V<6S~es0dT!KsNKWbu16Uj>d>Qd0YmxE9FoRN%ByGT_lQQD)a%3wf>HmxwOdDVf zAVdN+Ww`Y5NTb2qhG}L@Kp%Uc&CxUch0Wmx4H#jlguQ?vG0a_dxBXu&K!ycVe83O9 zEeDXo;O)!6HHv2B`ErEp96#Mm&E-P_bc%Kz_Kk?F5~i)YdbN_#Q{bcYF2M{UTf{oa zD|*=wyf@1=Goz0}d^Iq30C=b%*r~%%Y~qZ__|br^vQzhTv@F^l5Q_xBo#04=7?!dQ zJtju=9~BmorwAQC+1I=BfD2k;7Xb>^PCc--HQTllFw2*3-}bfr2FO4%GWuiQ) z0q;=u`c(20c?|I0h7b|=XCzKO!PZzSvRbu$Gg@U7#RH{{cR*WK6GXjvbqEt7fmj}! z&;F4ERK$MbDbTqKIC{PSA?xhviAg5;|9v=YkQ0y_+~+bn`Ws|{#PK(e%D#R=j03f6 z)Q~_;_fB)IPrUoUA>+?5ra8TJ|4y;Igu@`X4!#Kek0!kXZ{4)qD%zT-9c#cOmuich7D&fN2pck-csNI(A(|d| z?PqM>sZk+3OCd-AWl(xH=&|uD@HCC((+Dno+Do2EpE4bAkZ7)gcx$yiUaDvrJ=TUp20Wb?f%bO{e5vpeNLNQPL&~ zT62I*k09lI1SRdOB>j1wBto=l7Ny{2Jd-lOlJup~6awf32Uc`~$%kJLJ7_UfYtI2* z(zOB-2-2z>02-O?fs$bfFbKT;2F?hMRjqk^Ft#j0GTl~a9HJm#`ThG_4T&0nQ-HK$ zUwC2;nlc_la^t6S0OtaIFrbetg4?~-hfE7irb4KAb$fJKzkAhvo_w6YgzGnCKj>U2Nf}7V zQ9!o6{J6G+kDHzbj6iz5KD4XP{wMP!(7$E1oEcewvTV*D{kP z11Y~0w$1nmmCMVw-q>V58>yA)CNdC9GfhFZK z0K-yyusmGW_~$Y)A$_-Btr(;c)mNJeNLm}c3m_l@nGY1+#4Wpkm)B(A?&YVIj*gD6 z?)0~16-0nveqVD(17a}ThHS?lePKa2+aSdp$cdEbPhF7DZclBtNkVz3z2~gyme|R4 z!*hoTN=2m!R3tXpQ59`Hp0DRWRnp6sFSS47uisxdDkvF`z8eb`-gI(6MFHR<+cFZ% zmw5u9L7hnDRVn97fSv@_AnLhslP8dn#E50+^rC^1i1G&O8zX5S;N_Y>C+97bnj^U1 zTG#m4v157H+gJFhzlizd=VBe#8Rb38%na4ugyH1a;1Ls3Vne^@ncWP9fywPBcf!m*mj%CMQY zR5uv^2o?!a;N$S@7x&><{><%s68GFC8$5wpr^EIEq;D6HEY!fvkVxr#XMPM47O6Yz zrxywZ7oN#TPk%MeGMD@4ey_Tt&Q=PV?SL%>F?#}#SgR1egWQu}qIVb)lk;pSy`{qS znO^(SKrvI{c_=Axg#JYFgd^)9MYP$r>9y@0?Qng2aKjRCWvSVLB>o3enSu9V8&YZa z{S<(vlLHBHr0XYguJ+?7U{mreqWX(ip19H{equny7`lYPCTlLs)uQpJ@NGhFWg@3s znh4HHgfNj>9Y8}bP<`FD&A(cN5nCRZ61&>ju6f7>?ID>0G$k4wpbkcpx&e%+p9}F! z5Dei4)!%bSX(oT>y`t1JxPfpi1_2ui&Nttq41nt!+_T?c-QI}A1M&jINgu&t73kQe zm~x1cqu@H_f!>!)`cRbP)eKQs5K2WBE#y>Oe{s)UNYgoNap0eLVcy%qUPZ#75g>}` zUtSI-2vOXx?tY@EsUNRRDk6^Y-_~Mz)4SC3LvQa!Xa+_Z&#*7In6M|)7l6e;G2T`M z0GR6XPuSpQjS7VboJrZ}2j%iSlmDZY+~7DmN-jJK`6g91U^t+{=OKUrZv%)n`VxsX zln+n4k{cxuoRg}1ji+_%UZzojA#eazuhaN7GtI+7wHM>Ou5Nv7B5R4a3$-_3;-qG; z=;o;;(#b!kp|awwEZf;lDRPH-O$CaBHO`dBfb`#{{5z2*wdaL+iHT%aBv-9htt!ENee7n}70em}qLn zCREU*kU;5!#B>>K%~Feu&C@^O0qdtW%YF(mF$75U0u2xJ@C|xeKx4YIbTSWzgd0V# zA7am6Bz5Z|m?eA669H|ihMPM}O@$(T@a9Mx(kc`sn6?+Q6V|Lz77-Q{WSF60!z#{x zrIeGDN(BNS_8@Ey;%!$)!_-9s}DI;%<~GsmV`{ zNii$?odOhhxA`OL`^HS6Ex|37l|hhhGQ!%do<4hq@?n^2rm)xAViFPy5hV{=3(L#; zCrs%H`l-udjuLHxCM5CF$oG&MyBsvBHBbrgRDApPjq(n;#17m;RbaO!Kjhn0?4Ioi zIwVbo(1}}%aoHVPRQXcx9JU7~D8Wr09s0Dai~z&Yv^<FaktPOpgI+NcwArk`AhW35$gKyd4JdchK{fc7^ynz zqgeE!(*;M16Y&tNgI=ebvjM9&M^(=*E*89|Nrj_t;A6|f!>q7O%?H8vmY4nI@4ukF z(6>BA|5nxRb8pegPoPX3A0H4QwJBYaq*8Az}D{aRd7- zr&*w?LSis_-_)_YDcSqR7B){oehK1pdwP0!$5qh9qs;=W=D6GO!-o$}{q<}5^?f-S zRmOkSuXES>;-`He6k7C6j_-EcZbZ**)>-TY`b*15R{+TsV2d=O`fMnKrR9yv%&sri za&;Y4;M%s9!QiKk`T;V&@+SjHY}qj!1CQj z>UP!jI}_0fRD-Vg12v5Pj&k6ajxM4$OelJ*ozRfOpHou(8Ma#fHSZkDY4Yyzo zZd2xkRljjrtfh=F%}i$}VgXPYV~|1`A|rtWBP^CwtRarIifHQk(cyv&q$f{8Pms)L z#SFm1pc)0&L>fH0li=cd#iVL}l}?URg>MGEa;hvyVM^@ssgEMIlAaCWjqtiX)pSwxou1fg_O?~RmOTF?RO z(M+OwsqSb^LEDbs4#$C<#2PV!h2<;aMIw+{p4U+wPC6Fy5TKpT0EEB*fAP$8a$Fx( z(ED1wmgUNv9g6+~t0&z1aaF(ah?kqtGN)|U#>wODxpn=CZ(z8HD>KjrPkn6&T)#{4 zK^xCRETMm~F&_3$VBJM&Dd_ zHZ?J+h9fp9aadW`Bu9diD|ofT_Ns&jkH=7-Ko+|B*!=F7Xd{@8)<${VFTa{JmZg3-<(@TFJ*WZjWogiN0~k9B3I)Wz3v22d1X!F?I1n zMG5V_scc@Cgwfisej%d7tK0h4IDl=nsNm&#kI2BJOOK`C!-!paHbo%C#5T@+!xA)7 zSF?dsCYo5Cy%Sp`wg=bQgAGC&^1xAD6Rp*p#Z2;pNzop!wJJw_yl|i3FYl#uSOCq! z7=!PpB_`wMqJ;~Isd|u*aH^uX)oep2V0zs9(49aP2%epXrIT|6-@9x8TLrX@zl{5* zpi=*VH52YFL$haL?p1X2$1kI!$(grO6lXfDO>9zfg{g@QnK->0^kxNGBy(Tf36Kvf zgdk?mY!(!)jDhCVRQynt4Ka8e+!smO$&{OuBhBKyeeOv>CsM$MAfn2x3E5^mz909| z0enwY&z`Z~syZJQ7FH^?#<4+{0Qcm8A;hPe8m$h*Lc$YI@-{SgOJA>*azJI;T>*<_ zg4-{o8z=u@wAa+s9K0VsT@JT}diS~XJ;t5e^v9<_?dVhJJF?+_kgQ7{*){dL6><9) zbVMH`K`Lv;rl{ltU|bbiGD;EyH$^qE7Z(;55}m?yxxIr67`qxU_PlyORa0SL`qxqS zAXNm^r?Y4+F^nscq(0%)h#4tEE>#?LuR^ssr&X%zb zbm2&uF0%>TyuYkp*^D8lxOriZ^#Iteg#~6{GQ?wdOS;nd>VMwD?k^<|;x|L1%mBBf zrdFjnZJDj--=A%ZpN;F`FF0=`mbAiK=>`&EIDv4ucl9tF1g8iN%!xM3w}}hlB>9m3;zUvro;Q6 zv`1t7k97Npls+AsTUB~1yF|SA;qNrk(g3PB4P_;Cqx-A71G*J?Ghkc=A zdHh9jwzU=OJ#aGkmczoh^pbSdP6{*Y(5K7CT78U5gaI^8LQ*&8!AV6hdO2-hzJ9%S z^6y*mw_Xu|jM6VMJT*p(8>?6hSoSKXHYZiy2`Sxv#8U__vL7#!?NV`eY@t}Phg9*{ zi1nQFZ+F-RKp90Z5x@V0RNYp1c>p7!*=p8v6EzwY%~({869RlzgUrZ(dYuR6xNru{6F&!vprF}AbT^STf<@C_}O2}P_nij z!q1n4f~^t3f3hzhyGllqbsT6=?cyW~V?i8p=F?*>>Ar-1;uf<>`bR2VzqkjWKQ80U zr|kb%Vf7=|xQMCG$e|lsEs!4*9sO!)UY4&qOXhO;8<~}vv%6KVmW&!2AXx!@>$RIV z6Az^30@B=op;{<1x3RGE&a7)7V1;(? z-FuISn_jX(92P-`46+FfKZ6h^NEkohmlUgY8?)=6F32U}Ile>xL>BLf0-vObgR6qCskLLquBl^cDv54qRD zP@v_tr%1pz4*?13Q}7`fOW;Ezj2m%C@0VGca>P(6QKy&gQfQMcsL`^DCY@#Y+w4Z1;u{Lo4#7^UW^bfcx z8|mK1D-$p+u=hqWBy6v~5|}o8cJdam;RZl}VQs{t;>ZXQ5~(Xh=?Z)&4qo~l&bbd2!uaC#`vTjOik0l_K+E!|L&?@Vp} zhE(jUuvbB4@jh*szZkQaFx>P5qOL8$1K|e6yXvezu?V<;B_J&twg<@{qOhuw1PE3n zqxC)1+lQd!dNfk6O7a>~B9nCiuKLK6-Ltr*j>Tu62zuH6btb+msPeIf@vSHCC?XM< z#8D0g#sMAy!*z49JyLt|rvU0)1&;$kMO3vJzE4Ux>2;}wr|BDdU1Gr!_t?>NO~8cE zu(P2u85oXeLQzD6queN)4+AvGDqvR`lG|A{IU$BRy$4wgFh1bzJO{)`^mo8)L7K8g zci&ggF{IsRke3Ua>s5X?G^VOA-@ELZQb1qw_h$%xk^NvzI$)ebiHfmG5vU)!ai>$H z4~onHf~&CUuSY~wf&KJ~E^9;Sp6B*WAY#jjXtWAoJUIFIE+Z=h-`7*fnjk z2a5JC6s%B|&qu}p7SPf5+>Q7GL;$T5BtBr1Yu_~u8HVpE^y}5-kTn%4#$1F!LmrR( z1xkUrTvQ}aVKx9KsFxwCfq}x52BPAz+Y8H1EZ!bi>0HCfMygl*2B+qdM>S!Re znYzHfr{e?wA)pdrlJ!4<8Rnt^)&>I$3#l@KzsUrFe%iVKZ6bPluW0XYqQ<$!Ncj8NaOcnT zV&Y2RWNSh2JaE0ckjg=$b`8jc%$%bOI62W;yKtu!IGT78nhfrkPOIvQ9oMt zHZsr{1bAaKAN%ZGa?Ts=@6s2Lm;yqGHZ!`4q(S2~%=>FJqRJEhF8|83K@8BdU?eMK8 z3YWKs+`c_$Dy0nkEWXJPAPY%wN?LzB(JFC|xQ2cMFr!#T-N-dx1NsUF|4j+2C)irU zF8}T~ZQlhQAO}%kQuL=xFyQYC1h|3_oR4AEIPKj)_|VnAVKE;0e&sc(6(U#pv`_X4y2 z_;HN@Hk@{SSB^>}Jse=2BI~${v1Y-#qzoZW4f2-&#Mo*mF!1Xd z`J%)F05?5w>=Vj^LXrF@nF(T2^F@!@Kq2CI$w8^*k!a_s5`1N@76j|M9X8nOtbGP zpG(j$%yal;aeIb;=RN;d3xLTQpIY`sBt-iM1;qei!U0Yz)aBFb5^Vi`B(-7lpww;v z>WSQR)LeX|b-<+pZw%DMtfO1@=M>ms;+&=gvuY)DcfGx_)nB!BTvlqbWJYdZ8m#AR zzdsZ(%U9G4PQQOR5dDcmlAbYkGWtVc0PWUsu{;W(_t85InD8*=^Pj0)_|)t4X7p{!ft2b z^gwGwG@v-m%*@nY(D5IlcFT6N4WD7j{|eoOANdmy`T8FPm7GuzQc$5i#^zTyQr^DZ zD_`vih=E*>i7iyaL4a$03zulZBwVhjhW>BD^%POIp@z75WLv}X$3w1#gJ;yqD$mix z+$GzkNvarLB%mZ~EbR5Al9JDemnioN4ST-QMS%=FlWbn7Nb)Z%2^@Q7hm8-(2PPT8 z)^Ht_dNL-q&J`0&<&>|1t7uxFo=~vmWjB5wMsxQ$pmT&64i!y$U`55-Sz#VZf9;!) zKStftx)Si5=oZA)LVv+F#0cN{zjAiLn(FFuq9l|wG&G)(@I8Cge+%Dp$l^6sbl$$q z=%9swa-$rqDo+K_?x_$wT!>5{y(nvgeUBZGV339nJkCJLkGfM;Tl?Dn#S0hS6U}*9 zU9DGn`0!z9dMIX)*cWhcS?ZM`A9unB{x>#NWxeL(i)G4LkHKiDGUt`h zb@jL&U#+YYMLz=FTppgj)%*-iellBn~qKms8Kj@jDlnFiteqTWH8`^qT{DNcH5t|wC6%=K6|L?;2 z;VYhObLaNrL^H?nK%5q2KJh2^rx=6p5eH6BwtUEzXiPL()gH*K&2Y$4&jEFl(dm8_ z^Nbgq<{D9R_6l!N5V?qx8j`I}JQfS|Jvgywdfc}0zEuRHdNMJ$TeGHti>GLD(tAtW z@i6d_EHJVLCw&N1+6$p4$F?C81EO9AobDbC&Dr$v!GpJJ_p0vg_rZg z&q7O$PIm_W4Y1t26CXoWCvp_AUahcRQRxD0<7M9=av3BK1q@Sc7Hq3~VD!T9wS%be z@ZCnr!(2pqJ5-M7L~8q;k!`VnVuoY4KQH{6&Xt)`-4+3AW(?S_@l%_ z85N#Q3!uLaIjuR6h(m}SWDE$YDp278cv8r8Is_Vn+D6P4CE?n?2)N&q|3JVuXNo+2 z8jyZA1tpjtcub7Zf^n-G-Hi6+Hc2cG;<(@&4TfBRq#kI8KWI-TU&&QC$ys>7^zO-( zl9C|^xSKsZ`R0E~?@9WA`iv}>>%NWRj-ffhsv zPEJ++V|KPFo45&oRnQzQPGWG0&hTl5gp3Kh3_0) z2cr2821r4XRc4V9@_G!_)ih!mp|k+5YC3Q_VSPn?zvo%KWAk=uZ65o5a2sd^$_s(l zq^qaL8(M0!4LajBifB*Z4v2+>0;YFI&AW3x|<@6IjzHs-D{X)}fK$Pcn>v`4DPkx35L z`0%}WLJ51=ci4$StBq?#=uXGr;Gh~7Oy<)yxveP@SsP14pf9lF;sRt%YSjvGCNPpX z33|7Ef6K`=(-XM>3{5Ebz}gB5N5&tQ&@+hG%!tS>z zBO(<$^3>J7O9R8$CnQ;CVgjuU^-bhJgF+QXa;WSOR?>rY2~ln9-Rg#Qac`FWi{lS? z?TmI@=dJEt5|twG`TO^0&COg8Vwad{vc^Sj*g&f0EdgvkWEZgC77#5IyhsCY{KC^~ z9h@4#jqDN7YnId2xO#N(+8Y(q=n-KRzI~5UkqS`%VJ833?yOC9wwuC%dRP*{Xw&ra zt|$%y9PN&f>TQn5>wN)S2ns>41yF7K13_i7U8KcwA5RZz6j(4>_Bek*N6MJ$ z)Z5X)+nIo9_Gpj}IWkd?H7#zQ4G|c=&a4>WH!T4bx^f$8+0{XDe;FIovpl%Y7MSo! z0XzZ4yjf8loN?9{N|ti+*X`5#Z~6f>&m1)9+rMr5GXhIhxer< z;nUq_w=h>Q`kCok5>k?Y_qjz-*TU?D<6)EllG}mqA_j`lC>`_51=#S?zfUz@2y>eG zw_W+ObEZSwHDJ77zJGT$2sLg(f9#>+m+JiIX&A5Y>0?6Px`tzG0M6bgz#FJd)Tyz) z$0l-j+a<#2-6`oJe4JHfxq3qIEEqo&Nu}T1+}wXbWa&%2ZG)XUalhQpW^{|E9vKS( z0(f&J@NHC-|5zI?rgzWkH6?&Idi=j->sh)d_LKCtV_4dx@X@2Rwhs9#_10MgTat$v z+QO{HHNZEf#(YEPjLpuffK7uD=9ljG4uh8FVV{{}u>P;w{Ez(Dkep~@`Xt|^%@Q+% z=~~mL&!3?`-HBgiW7yuRWLfQkMXGx-QlOGRq-l*DEVa60J9BjdKeM!UEc0y+c=GcK9$eh(#zg*&zUkmRXs8 zhNn+z)p)r4r{_(}typ#6Zfu-<`|3Q?{P|iZ4i*$UySTV8oVjLMUw=5}(^Yg#gJXUp zJB|UCpSACSAH073dZxTag9YLy>3GMU_C%VzRkjxNbvx0ppfU7lE$v-mK%LI*qZ011|Abm2+0DgBG@CcLoZ1mj9uSaa`L**N{pb!tA@LN*0s*dsDUvba$Ginsm3tI&mTvs?QhV^ai~3yIWCQ?Z zT^yX&(DM2LBF^M$2;+l4IN3$Yk| zWtF)X|*JZ`p>iqQS0${FH5)zr} zHQ&#Bx8G+6vF3IV|AOK9;K6#t#;R~?>1k_oLUlvB?b$Hp-IXY~fRgz4ueXy>kUsK4 zpTO3SLRSe@x$ky61${rLaPpr_XsD|0004%Z0sJn*{=^AiVAa63?@Zs3b1&TE$}$EX z|4O+HH~j~=Jd&zrvKmw|%b#7jaue$@t{dv|waJsXb_e`WqjiHWz$bWu3XcO{F7yk< zZ{93Vo}64G#6aq>mO;K!QX}Od?^aV&24vdR-F*)5G*yg?MKLOmY}Ex^G+~k zdx7gb6n=_ObNjIFU3U2R@yp0eE+VuYo}W4#U#ytq7;&WuF>VO9U_n*99iQrM-O)6# z189tCz#~hlK=imLmR4DNbEia8om42AEhSycp}}cR_xRe6`hUcP%)B#p<*gy*_5Se( z;h}zl$j^;v9$=2u-u)J{79o9J#oZ@`shB<&VT(ZNi%i3=D7^17vkAMy)G!k+MC-e*Vi_m}3|jh379*gaI7kQ=L8r78dfB$lMkO6S`>3`HeZp&W>L|ECXI94a^|R(f-f@Y*dTdPJ zkdQ^92Ojz3*^^s@Featcb(gX4Q9C_EQW8F;QD!n4g)STlnnEG=j*jQ9UtfTP-n6rm z9>BUw+uGVX#pYj)rL%OMh{z({y^@C8!xi5?taX(cnP($$=4gywk~yo7zkfV;xJ^Ov z?GQ{wWgv(akL7CqA9^g&f$%Mrc69LKE{S$VxJ%dF^X0GG+76@ndyO_8s1ytAR-^z& z*$NjTBkETh<3cqL@*jK^?{XYs6nAuVtWbPbUe1DS$NG2sbsL!5Dah6zZE_cSgE4@gXcUF6lS^ zo2!uv-GdUc?l88ApT}~-d!yyc8(vsrvmPoP`6*LtyK`jTl`97VlKW>T$qIgqfdI6FO^)8Z_%28(4?$U~_eCnDrs z5p#x12;0^SgoNTLAQp7nK)l=uG>n8GS6qRqF!E2N$Bx+8t2Vc=FcAO4D8@A)%+t3G zK?#f38!#*_E!P|8a-a!{{*CdztE8kBBV#5yXeoMyr>G~=Fh&XZ!(FJ|SW;K6RJC|x z+0XL6LHz$mOO0iX= z^pcb_&fyndetbFXy?bM_9^1v8%n&yK9bO5EW=l&8dAVtY!r^^z^MX>two^cDG?N+? z_wGQ5d{p8FvcO*4(PsrNY*)a%-VRv58xN6iT>NIq-wMQkO zan6^*C6f& z#)TRgDgE=V&->1%67W=xb0GEw90Ci$@%tlKAc&s51M13{j69}}6)tcp6xpgS~wnVAc51LC!ugLIUsRD{@gg@C|RxF7_O zfiUJD0{-uR>5|mu>KkD94t19WcIlA_|dqd%Dn(UT*vW(L4uXzaz%*2})#)WZ$pj5xBBeW5cP;~TWU{(oJhCbjkWb<91 zl`xBDC*a(BXInq%^d2%(%X1xGp1I%Fm+L2HR$oSOHB~@?^lM?`3j_55znmNonr2?)hfFK}Aw_+&)BBeyIoq*k zyr=d|NVWh2R$p!iO_X6z09Fv&!eIQb5<2`g5m87}x&)Ab&DC3HVGf*Q^ksT}$&PIw zv%$Y)nBiRQJ#ZuGnCS?av zftXOt2fX$M6RNw|{ZXgH>j;67TaM$KHEP)k970FK4U6Ab*bC&ee>wNUL1? zrUai3$QEDV`821n);i1H!J!1Ba5ljEWR=^AAI|WEM&=N9%QfSUw*YgeF~|gGZ*O0W z1!E6MDI>pU+4ALfBPl#9(~o6ssZDOQeuxif3{w32@LN9!i(!fL#y43~SEr>DfS|CM zAW*lX`!Y5$=|XNN#7WCcTwlQA)ue!e5U?=|4ZAypRtidDCD50cz#fQ?g(&Ql4I zbXfv+hlI2Q@Ck$ooa)yY#2k@j?j)>e55cAwKR&bcGN1f;dIy*JOuI@s2ZH|X3GY{@ zAc^d1pMezk`t0m%^W{VQ($$)1=ID|J@H*SO-81EG1Bef37g#}qJP9%CmqLmiI@En# zQYa?|22=|=(VtME50jrihhlv-E(A5Vr$dL*RM|i>oOP+vtaXu ztXBL!p{}8^>*UGY_>K<)1G5ovbkN1w+~K@gGXx1?k$szP_0tGps_R(%ri* z*d?a&@bZ4a1T$vOp@UUYQc@V2x*f1^zU#1PfCr^uQ=tkSD@KOTKoNsJaCa#O(tIHQ zfCHBBB;3ft`_3+74_yY4$e%T8i6>NI)AzIFZIzR=M`>^6=u28{D^3P!;+M$SM@i&e zz+(q=IP*@S$KbIY@B|biUB>5a>60g*IxIM}w&B)+q-7R>FC{pwB)I3w$;nl?7q6Rd zn7x0(0)p0s*c`s7*+8nX7#UI83IhjVG)p&N>W6^gk7n(s5*%tsidloL!3%mb?;?Z8 zDAGZXOshR{5AO2IIREfIIziU@L3E1z>HylhsdUaze@V5W_ExT7$VyWAlZp?028TeX)W zs(}$GeRO?s@j6`M^Ch@1)*0P{P$sI;`b%HkDn@w@sb?@$KsR^p%9V-vzcpW(7`fNd06pL4JclblU2^v*ZTN5DlCfD{7^ z?nUV7EPZ|b-)Qx6AyJ~aIw*{x7&wg12r$R>!h61XGezg@!gLQ@G+H`3J{aW_-#D=8 zgPgA-Q>^wZ8yg!O{4z2!GgTiF@Fkuv;-)7(UrV>K^}^8q>im?Q+nysy)eP$r$cw-F zO8`E~xD0Tn3*39rh$uV35EV#j)D6<7G5-9lIeQ2Zu?$ZTY2=E;?aY<@(Dv|QZ=BsR z=$CPz&#z}P1FiIAg>+PsCsQY`XT|;Qv3f~&#`Ws|X9E`(w-yxzBI+)qUcSY%R(JpY z*$T}ZSL(wg-7h?}H83^}?dQ(F+rp^p3rvYL!@Zdxqd=Xi5QQUZEnL(Sj`maT`g&%pQ1(f;Qp~j>$9x@C@{@}EH+uc9M#})5t&fItkU3~Q0QSUc%4_>sJSoA)w z-1$5q^O&4)rB!v)92;OzT+7|e($bHKnI*X3{o|x0VMIdnt7Xr`6`J<&p;uv{ zdw7B2oPJ9i;Sd!pXa%f*H*XFs`P3voq9aybStezMp`lUQ33D9p z)W&fwUi<`)A1SAyN^${LPyK)Pvx0Dvn*AQd2TMy&S43|mXp*24=y81a2=BaovMW$R zP*5-0Ic0Cw|Ji?TPtd6d6hHIha-_$G)xyH6*S@W;dhsHm-Q5bB5%PLto=idezo&}V zpJ_t#buY)++HAXsAQakBC^gH`2%^_sKbJ|<&Df1D|K>o9E@g+Jcu`??x;xsCI;_Gv z=985LwQ+Z1lXV7`%UQ|19_;K~akH^%X@}A)&BpzyFRQBNO53&5l{S~-!~6Gvb{|JS ze=f#76jgV$!r2pASrqUHx)i7Vg|H8f-mqQhV`J*j->?DZnmKo_GFSr;p}v5_Fzr|S zMubR2)?CKlhS%J}UiwJ6(1FcRgWhelK8Pl^iZe3p_O)x%d=>eHs||LQ;2mJ0qeH1* zPoSTkUVfa&B#yIQyB+ek(jHAchBOlerA2P7+4mEm3nZ1_96-505D3wQk29BPg_ydX zY_mbzS3nJ~Ari!b@B*|P^mSx`#K40-eCy~1r379}2I#Ibrk6;Z1s(04NeVY>)7-$bkkGJ3oaq$JHDRyBnQTQc0 zbL#JLPxA{1?A-0-;3GG&TYy30Dtai95EdTE`|Ax3#7FoP-!HWP_Kj{&EGBg^*GXYX~L# zyjX2ARrlajEQO?R!=bX7xOV7y%Ru&yg#J22X!hT+OB;#64&omh8^h{)iqEzY$15b> z3>+n-IaI$bug^|FYG>k^mKq% z6YNb1lSN``P&Uq|M#3->pEqPnsyQH^r@iPbAF!jHe8)Zl9LFqCl^zJ_@y1Q<=t9T> z!*LRE3lFUt1aQsKv~)1c2ol-~%o=hAKE{=z8a&xg@K#m7lah)tnoRw(OFj)4eMVkD z{N1E1FFRbexTIL2bD^Xe1lI>)=X7ECMH%W$U&#$2Dr*38Ttv&)gFe3;7-E#BAfi^h zK?KP+&M`uTPDLDzG=Vg3{XGy7G?R>L`HDrHoYTOsP)iJupWz%*4Z+f##8oDD)`e&k z4K>qM#LCJF?I<%&|7lUbZkLvp5|4Jh=K|@>P`F$|quqnfd`6To;!r*_!CmSjbGS`2 zL5D&dF*kjE8Thl&Lj|7xLfTZ$K%B_JAO-8eNl)OVf01vlGKmlG8ylN#pfHcqaQ%?8YWvTvWE9_)4XF&p11sGYNFt_ zVTwYJQvZlsS6h1;{uWAZGe~Zh$er9k+=14GoiWtT7#kboPFP!!gxksqN7n{uRJ2av zU;^gb`R?6xE-o&u$h&BWi5UR=CwV}t?|8(YuJY5@c)m$i92P*YI2-UG)?;yXHG5N2 zQ(AU*=!Bb<1UHsB9e1UrG3`b*z2zZ@8=S%L@nSnXC+BKJ#9UuRt&eYKZBn0{==`!_ zp4{^HG50Sit4(xNq?vs70fXhAXmlb|(kAHPHw)d?Q~EY%eiT1(-fPS zX_}mz+%-5Tq9zc1N+sdd*5I~R;~lRz*BNln*V>_N!`y-PYdcD;hnQ|kI|{AF4-CX~ zKwu1^__-aaiJ-&Cm;&IIfBpKsH*K5H(K7XM=U}QV&K_Sl(w1xQYa8KZ!{&P3+WO?p zo5xT5OwzOwL6!GfH2!v87TbE7&OVh4dW|P>w~4#mF&obL0bwioS4Jl$U|Y({%2Jtw zjqwEip~Hu2UQ|_G@Xm5Yo*vq4^<$rtqoX1ckm-tu5zl!Uo{=Gr=MGHvGA0kAn%**4 zJ0Q!4dkp0O_DeLoKQ5RD$;rOetl%t-k8$Z#x3|s+jRHEyP?{$ZThZ9~p*&jvsNsCw zxc$reSezqTQP7wbdotBOulY{ zyw|GqE|FOLrN&BnZ^+-9r!ZKvH{1EdXx_u*J=C-{1`v4$0LIxU{h(!bwrtk8y3gYs z2T$50fQY9j0DOAC^i^DDiI+FyJy6T;*=lOjTHpBezdoQeyYsF2r%#`b5zih-6c--! z?6Yj^ljR?0pJn+PlQDGViCUP3!-=7QrMa3ImcPUkVEBQ1Kt!9SDd6gfb<+s~15@Ra z9h$iydidCGS>8`)IOZEZhF*sRFsBSu3OwWU|M`>}LHLx42|6n1gZ<;Z=zOF9J(tj{pAJ3nzyDKx z;$`>mf3IAbew3#VV|M=iUr_n~-~P}-L@lZnI@NO!o6;m;h9@d^8jAJ#^Jfm$`h5*Y zB`CcCrt7OWZ_Y+%K{q^w*Dajw%K?_c0f;)50Hp@v-UU)yj>6@R(4}|ecn1A+9zz=r z;pL*`^4`wNbI{SVvRa3*uL}UOyU{nwQ%zH zkB#je9rMwIAZ)9oV&H|ORo;gcc@9So{NUxJxdE`?%(L2rE%asb&)dlb9$`jrddm%k zz%>x>LE*nZ9#>U`nmkUFt=7iqg6W{a%D7C=@K+r&lvoLj0I#A5**;!^LIyz2MC0I( zmdWeAm*4X;r2X-%O5+KOgx=hgirDtt0UfP~6|QFogodniM)r!Or3Iz8}9*Xg0X=aH4fp}D23?M!dTyVaPN_$B36ul0WOf2 zcjWniHGAT$hNKb%Z2OeCa z8{ywzHG@Q-zYrOA>{)*mB_|e=0|GK=j{E0t-xl;%ikLR?TCRh1kzy5y#lw8{`eUKW z0WdvuBgcb}(FxC%FM2gZ7G8#was`qA(62Gxg=aG+1Zt z9|X{r1z4#S+eLX{4)W;fuSy9CRos)gMq%Ww8ryy<$-=WU2vA1Z&9R8ju_yikO5USu z_uh!Qc=<9{JucBKGSzx~dCH}D^Y5ZR0g{Pc$pvjd^axNJEBc{O|L#xL`?Gnsov|Cv z?`6N)LnIMkGl<*@F}1~4r`GySG*s5;=aM5ZTulmB-?GJv?@!>HyLT|XQvbxW@B-+v zk3!HRdd3BlEw7#jCK{@|1D^#*`>?eoOi&`Aw(I%iJsw2JI7GVu5yHE2)b4P2uVVLB zDM_+s)3dSdqiOFPjk$WY?Tk-c*|+w2$DRB@@sQi!A2c@IIV|>FZoO-p?!^Y{-e)R3 zd-=b++hm2FeLxS}IHrId_+=N?06`W9z9t7k>bF8447pq#FwtgF-zaS5~p|a=5>OwV%fCQ1u)ZS29 zo|cZk1Q?aZ?&kfyxuR2t#fmufD+Tf=7Fh~y9$p$R|Lnk!o54_a61U|IJ;MhQbXrJj z%3qRf?n`0D)E`i=pJCy)C_&4N?TFvOmJPMIJ_{$9cV}mMj?8K#HJ#k#kKvxPQHmT) zVA+a-6}9LJ4A#9TlXwHt252HS68(CtMf;}6uU~gH1&=)aa#}|ZrdsS`AIxx?iwX?P zM;Rbdbp0KLjTOae3Ki7U0Zg}QstpER7 ze8zV!6}Ep%Yq!;xWWT~Ed{NxD{kw_jB}vx&k5C^lF^Wq{wgWX0k(W2Uw&VW5>xVHC zvrx;vMgWl9)~%#EQuuDTOm?y7(8<2bzU?xJuc1{tk5Vnh<}B0KBEE6f5#7bR%*`z= znQOPsaR$=_;`4k&1TQdI;G68!W08U9va*Pl;KCaST8H302#5a@=sj>?c!M{C(q(d{ z!_?vV{LJ%-6v@^217-%rRMNA>5lj*o;`tC4MAml3b1@vC1FQ0SRfqD7?Tp<^(goi` z3IJ{Vp6d@WKnQa!Rv{&XQ5mrjD{j5hXjuEO@8-lL$92*v*;5-cY1U}}>&mV3Dmz?G zlreohY%}iO9Co zK-&Rpf8fnhN8 zPB8WOlTG?(UrZdh0hLCWV~=%E`$R%g?oG`*m)+ey9L#G=xg?|DaZIgfc--;9=2{ch zk&np(!drHXXMSa2df|-CM@0f;QY7kwsXhwOfZ}8A1c_7Y86970`Pfi^7^544A0m*( zBddn?y_oRm)9?v-s%1D{lMCGpAc;lw=yxvw#UULW*7STV6EdU2Dh;0q3#HmZbOgBv z`5iD9;R3i)8j6rk7wtc51@mk$(3!2z!Wl6@%f&5TDj>@lfQxyUYo5dC)%LGzz8mAI zJT^02Z;Jkw-Vn;%IouL6@x;9q?=E|AI8WHr+-6xQD&~pCP#pMH?XdxuTu34nZ>DNVg|7&c5iR;L3?L zw1C#krXfHI^reIEL=L0qJ-}s%I3_>fF6i`*oRuGW7L_g|q&m4&wYhn^Ct6QNZE|yO zR~J*%*P0v8qODPE9t8Z48zDgG7pb}a>A313^lkZjioc8eJ`?-L3pg1LGN%8%XPRp( zyM5WXkoYWL45$_haw8@pEY;dp8R6hKF3@Y$XP&a{%CEw-)siNnSWJuae(lqD$a^Cn}J5wYH|2(NG5TX z<~n^~C%Xql`t2-wj&k@fiyA1nRZ?;h`cM?R((5i=z^Vmq{|x#B`@UNKuDJMkq#e$p z3=42bcs%b=k3mTRXkjPtVhJ|KAG@O-EbvOwU01>b#hy~MfE(Y*G5H%+4K)GGN1VD1Oue+W3-9K0RKPL$)z91Y7UAS6{I6r=zpkC?4aw(n7`ZwCH&OmLZjq>^@KRFyNEpn@=^k;9cd_t z0f)YmdBy+3-kV2b-M8(d7t*8&86pjYGBp^IP>Mo{5G7NIgjC2Bg(gE1DxyJ#GF2iO zN;DuObI3doMTQ0%*vF~+et*xq*LwHfYyY$NUTa(L^St-{)aAOa@AvaPhvPWTh@3?;FP7uhu807n@dcSC@-q#=m9J&4giv4J(>uQg2 zChp#Z3C{H+X5d+8Nk8hGDxVCI%({)b>y+b{TsOM>Dbct%Fv-5FW|qT``w!a_qo4oy zk8Cd`CZ_59w}PU63l+^22Nyz@x&{*_&)r=Cg3&R&7S zT!8ULi1`4NK}k0443_z+a{2vJ#p8C{)uk|jF5Y4UHl1eg4>UPVoyeQutk*J7#k2jM z=Vt=-2&tpMcQ7#kqG4406?9{>P}VKqW$zZoe>efd!NeyYfWC`&jk%Z1e&_MTLHQkz z?dsQI=D!_tidU>2OYl)KgXAHh#SO{b5@cO&^uW7Nz&3_|T)(z(s&s!`{crV@82`5- z{qaQ1z3f|CU8MVew6DA7>9xR*=@T*tpcocYf%Qv4!h>JFn3QCDJ|nOwFeWkd*Pkmm zLtQ;RF)1kvfZ$%U@_YMds)fX45B~0UKv5+*0*kMlnHR!;*jJ!FyYS1Ey?|J8)>;P# zrJQD8n(A9>3>~ODshJ@Wpsj7cApu|Q@Gi^C184gW|J!W;8---vSgdww(B_=cJ3XXC z=*O`S({?C*_zSDBJ0Aj2qwYVz0OR!AKoKyzE7)s< zU{Hh-QVnR(*JSnW|7rm!t+cgyBiYfIaivZGOsxY!l`-<9%M^u*9(YzdBpmgL5mUj(ARZFLSF{YK zn#fY6x23`&(#x06A2R^Pna7#tFI85BG=*k!;KoM#?lj|c`An1MeEI;>ZVY)wp;See z`Eb-TX|}~TZIcfc404`Fqj?umoVx1Rdes^q$rXw0#OmQH#uYIGqlHrn8&D9GF=1Bw z&jHnTOHm9xMTg`OX%BUi>v~V`Xti429(EajDNL6e(|0K#h;;Lg>F(x zlf?^Qj0GkLqo1JGUj|#n-j?8lxQzX2$mebFY}(@N{8WYwH$NZtoaX^*8bk;;fP90N zYZ}9~?L1HM*QR2O(sNuv@H^E3MtW6JU&SIGanehFJcZHcsQVIMV)@-#gmr` z(E4LF81rVAjpeY>x_}pwtOX!qKECl4pwMu5pw^i1n-ynXu6uWDBM-#T5q1XeZ!7KZ z_D@Tg>y6DgTQUb8KynE2ejz#3_f8iD(0Q)lwkf(JY9m`)b>bGyQ&sJ@1__vwx=y*} zmG0qPHCHc`i_n=SVH;zm-qMIrlK-PM!2w=a2@Mw8kwHl7bnj}DYm&;u@Cwk)dgM)CF7 zhy80A)b381T!$=ZN9dbFmv+}6i5)_1;7`#Q3ycoO!wJ)NPILtr zSyKf_3N&Qe!I< z1La7j=Px2T$=U(Hmc~}qolP!V!Ap-pLUF#O#jQsGTg0`;a`5(aK7eDeZ8p5I5K5Q# z?|1n!dEp2PNlDGak+E*dmW3j9CSuv{ckm0?4aOCGGiK768F0fnkMfT6@eK|9=-bz1 zw>UI+;Cl^$r)DNQB${f#V+COb6AYeSLqLJ?a0a8dKJEUHf|B0lBU*S|w^&)-vzC

vC;enj&_?Y$AW z&N})aD%=rA1tpRULcduajSp~_z)eM7!ZgrknhSLLV4=?`U#@jB8aEuETUhz=T({AC z)=|Ik1n-e|+J+H$y1BAuWr|2>_2;T91R8R_^z`PnG4}yBJPL}MXAv8H0CnLIE z6k_%z+2k2FV+an#0>FW{p^;;l93DW}<@nGmhxy!Z;UCUHj)7~;jl_cBMw(YJy9dZ6 z(COC6KRs6dG#i6@)a&8a)h64ekjF6xHhtNPc2D@|P+Wb*qWBF)KHfMN7_iGJSmL!! zRli}*rz?amKvl|q(h8ai8iGv})q1eWCR@u~^OoIClc%$6(v*gP`d08Y{q(li3p%Vd z{Pn9U%2_m?DBZk~*4SKD^nMx9g-i&OhD8}IX%up=;bsBb8zL2N9(rzeK0YzULYms) zm$O^r;kS9$9|v3!$Q_KYJ~}fPdfM{{MO?H3P)qH7?z)!Il*<3pdoUt-wXG)7ve)1r z77+K#NPyt=jkjj;JSV+dZeT3Vdk+Gvn%PIb#<;1B&4$BR{j>;79yS8e+yFLb(a`NI z(QX*$qh@6Gvj6T1BNcW50ZC(7V=UkWh&O`)BmO)?Gf!5`C_zX~r2+=lNGpnXN>Uc| zg);?m(cZBM7y%we5K)1g9^L<|qQ&JV52o*Iaj}@QDF6}R+9~0xx;fT}|A-D0G%)=F z4vR$n82z{cRS*IsrXlVk_(j(uTFo+SXliUkeYE1;bK0kZo{QY;7}}FdGLANg@I}S@ zt}1+T57Jz$f}V#nKl4r5g>zQ%X0w5wv7@Bp^%JD6^MPvft3uCt%;z~DOI(+ z$hk5BBq$0%3xo}?02$uZO`y9+BWU>cb?LS|BojHC3p)5Vs0zb-w;4_>?=V(yO@wV2 zf)!j#E~~jm;lzSYjbq9C!;k{%8RGNkMKb8W2q5gGI-G8CkY zR2c4risaR$r6~Mp`^&4M?=VWC$l`;AQK7Tw^! zv+2i3?_qhC_OhAfO;%1&$L;2e;y*qB_b2Ri^??T{BM%|#ynifmIexnuFkjlRLmF%` zC!8PRWEf-xwsPTYY|>%FnqVdd`SxSpYma*n7!s0wLi>LKiSF8|lI#Q=6AJC1k163n z!hIGs2xhwV_db17TB`MZs|>{btF)M-Y^nNH4?Qp5d?Dkc<)K5%K(u<8q}tdp+hVgcKFt_F%tB+lw;>IZPpD@PiqQtt z)hAQ$X4`RATb;_QJNsg%(rsBu;Prq&SfhS@W?^9={hmh3slE6l8O$>kjj6)TQiS>mAoWRcPzZ%=bM`zbu!7OG# zK)~@Ao?}CIdwndlYQt(CJnYAy%){kSBa%XH-n{8~?w4%1XJjY5=XIX>E#sS_>(J)# zF3JUff0h?CHJOY}Vyc-iR^SV>j{xE1QP|8FDmycwmud6~X&aa1@3>A;lX2bW30haL`L@hcMKA@Z&AC2fs-hkFBKrZ&-`j=Q9V)+ z?y$3j7EWVp%Fc*O5V`BSM`qr|C<#rJAv%CT-3qAYl2p3x4Ui_Y?$`o|hBpg+OjP<5 zk?wem_@!`vMj}2}?{eXm5mGV4?Zi_;8cO>q$j8^Ix10%pQ8Lf`?a+Qg2Dde08iP6> z5vFpbWSv~q^AIs&F`M|iWyQtCK42&`zHQganB|pNQ{;ZKUL=1008`Y@kJI2w>Jtz^ zI{p(FTBL0dyipmCA0r^9Br`EjRhz^ffoG&ac`9%W9~!?zq&@!|ZQSRU+@(l#GKY9tvo3a}z>FKO=vkmHxiS3ru z*tLs$;?b8OJ_C15hs$J(2o1%yuX)aATh}+uiRi&y@)+{!!IluE6GVKSAN6*&eCB|Ff+%|E;ff!K=GtajL=pTQ?4 zA+hjj41N>Qsi*PqT|kv-Y~^{3u`O)&Ds7W$3)uO-YRzgh>P;?;7XhHs{|-XU^OK*% z=f0jHhjXU#RmObl&l!t(P50Coigd00-GH<>eS^Z!{mu-New z4_A1KADe!_4U=X>02t@EbD`pVWxg491SB8DQ>K|6BG;(HOZ*l`^Rc3MKZVceLA$Y`=dz8 z)$a@)&!cGlf=^9O{9$-uyT(l0G(#D-N9*i37wq;t2|EWE5-(*q^(3RIV=jNt)d&Yd z8Y`t@@p?TJ)*L3)(&?vzlPKm*ES@tpbH=Gx^)2o$W(fms&xjU1ymU^DmD2Ry0uOYA zfNho=eP=aS+9rFErAhx2Ce<;Hx>B)P`>qa+lQ4?k*DX?Vf71J7GAL(bP*7s_P7s?0mequRUG4GWsAZyUq!f zlw~?h%e~?yG?yLR?98#n>s*mt?xyawVehoO&Pg0{+XU~LaL2(pj$Z;tH}p7`rNUeQ zn@S$fQhh1A2qW!WU$3471zS)s72q-lvp-$xgL&HLmp!AbCx6bqe9i_|0pfg#U4+^YHgome^l*7c`RIhUca3j7?D?*w7| z13+_NHlm*+=Er~)&1gto@#6__#cd`kP*~o@AZ&O04q95;VRYEaiqA5R zE0d?S#bfU8+{4f&Et8OVw>MX!6*W%57h}kNE_Kp6oEr#T^ru2XXORyr+;e@^wRA(q zb~hhoUKtr~ysu%}o;W3jWrGOTU$27ln9OMl^uNNafNkPe{#`k5U;XXSppxd;3jz0d ziDbsKK(D7p571XH@*9NNnr=SNP>|G%@b)(!pb8qoU=81<86jVV_k0|k<=XBi`c5q@ zRe%7Pnx^?mjLC)}-);mE;3!SI0|W#l8Yw&=BXeIVqfwUu^7HDvRY6 zr;(OuD;fekEt~BFL5j_U_@4ZFHbCCCpv`@3^x%noQv_fJa+V;sQm{9V_e#)iIu)~S zosqKB%5sr`WPA#33xmu9ab2@;6nx=7j5vfDw4CyLhOP6Lfiz-ig~#7=IQXKqbHvye zy1e&jtTZvH8ZLJ!q*U$Ly(@c zd#QYw&!?~(+vkAC9fl`5^YJRJ^=r`r=4}#`gb8u)93Ge0o4#+mWPss}iYW5S+PuL8 zt-aKX_>eb2Blet|>)&)1e-w%L8}KFrhZ#rT)Zjcu?fR1+ueD52Rt;o8!k#2Q4c1^u`G;6%_H!HOJfc+ z>eGRAqpZn^UuBWTnc=C5g`=zblq8PMmmCNKre|@N_^} zIC}@*rs6a$h9ys^xJ6`?$kQ3j?`HXg+>ZG;O;A@4)9NJhAcuiQ`}IH}523{Be$ANt z;bvYR5>gQ6BOS{8Ns&xN?gLNWmbLH1LGiKBMy%9)D}3gTf$DP!+%b#egWdzOwZ@!J zHVCi0tTA4BEKq+XjLjib$eQ^1iMBwwVLXB@P#3e)>`4sFNf5p-q% zNSbF9kcfS8ir?!j3OLI*&wwK5^2H_YzLECXMe=g6`GswRYSA=j+7eE{XDKgO4J?(Y(S?SH_WdrYQ}!jN}5 z9I|LrMXUP(H3)prb%csP%xsS?+)}jZ*Ll|*Q(91sJCoI)nB?^Hn0PvStPH>z8V^QNib9sGMj2t9))Reo#S2%(C1edz zY9;P$H)rOX56D*!pN|wf>|YnNqDSxAhFiN%kG0KUJk0t2am##;*}98EQ?FjXeor+6 zko(P;UCH==3)PNJV`ooz2Y&X6)BhsMeD#lNI{h!+P5s*67vTl;qkrW8|HJ>6Tm+X5 z(BBG4N|qW+2*-Zf>z;kVa(iv+SEsop7am&F#GEqN(Dy=rSN7^_VS`#-vA=Y`Rd=2; z&?__PF-fbg9=%X}| z#8P+0Mkko)Wa(GCgj~HexT9-N#3?=f#Zrkok&`-gS5}xXDJ}_8NQ+xwt$IpviC*Bs zu!jfgE7B!${GVUo4iN6uZhf}*mQB{pYN>c*v5}1${@Op{M#KhkcH03u4IYVBbzwdJ ztZB?cIj}WbRVs|l3-Rbbe#^*<3*MITY^hcT84TkF0wQ#3s`qY7{8|UMm2!AA)%WQ|?^jh#%*m7ar(zZ*BRYKr|Z? zZLiu-mT)=h7Q-_x0!rxd-rtd?tP|E%;%gfqHAD}45H>q-p)N26i*6bJi{;BlyRmYOhlGkm=dC%DBZr|d+T2b*Pz(1hSrF(FV z3N$$*(eIW356$Y1u+4-q0xc3J3niKbK-66Uo6KIo%Aeb}1_d_wWh*D6|kivlFl>>znhk%K`drna-XuI~pTYK3%4%c00#859u>uf7J6 z(nnxy84n*H-`BKi3GcaywjrD66?6=T+a#{PmGS=Bx;167vppvD!_K(`YCD0?ZZw7j zqUKUn-y2i~!>&W_Ib$9#_-gN72>>oZW=P!!+1Xdki1RB&w{ss55;2q83Oz8uPiY^3 z`%OSr%qc)1;03lBA}6q5tSy3XeOTGZk8KhIbLf;;F@Pajf)9On! z6mHrUcI{d|I#Vhf+`vZ%jyxO84rqIQk(SM1teA;@F9U*JSSnV?8@w5Cp7Cdb=f~vP z#CKf|OcNJ(%KA;+vW3Qc5^Ew8TU)%(xtvsYHcV9gfl8NFNrFGe#>#WJTR0$P7~v3b zYD9xV1??<`|ix4x}I=_A9^7yT%n@-j;O$hI1#v+fbZy)wE$-|-zFtS|#Y$L35 zh8=x@%O)=@q{eCC`MncF=&J$eD*T105tJ7`5D?%#W=E;IfcFI#pi<~RZNhBk?@cMbyqjhJ-y>1M$bp*WMRTvMtjIahv5hv~qR-00Oaum(Ea9R7 z52f>{PjoZvO&HCt9dmKLL8D0a0=NTyyu2M(d zgc~bc)?=Qg2nx?Y^h=JNZ`m>1^A6P_b^u$Vprw^O*tCEsg-V}IGlXQ=|14kwenXC- zm{Jj@6+jq3svEd=Z@M*-JQ>IpQ=V~I^ zL5nvKwu`k>SJ?T1uF#|s)#-t8+xAcjzj9Zvbt1i$QTsktuz{HIee6j2ro|f{e ztP~U!*5iJ>0b8nJdU>862~4J9=Bey>scdcd{AW=pG8q^$az%GjR8}U6{ub3QS>uEJ z(9qOems9)*bLw83tWIJ#_e$8JTY{cLhNc1;+hCw>MEJc3A_GPJRv3K(q*#KpY5|~> z5Rykcc(jh~x-Y$Q`iyNJh9@U(TL_c4YgOMN>?JD*9R^GwjnVkiqmeBP+D(A9F1Rtr z%JYxaJ`_N;o@|=)aV3j&UCQ0y&gqjPOJS&rILgU-S%J1YAqr4GHSOpE4tDmJI2;tv zHER}dvIm#MwCd}41{u!ns*oCM`f~d4iYz9S&PHCNPuV~Loo%we4@(o3E}V!jw4zCM z=gyrvSty~+_Pw#XQ$}Vp^DeSHsx1LQy1{KEc07e`_KIvwB;}*&E(IA?3~huPrljy8 z+v37Z*X6X|#Fwdp7=mn>NbO$I)s76Jh;_IHYwa`mheW^Y>FN?#egmGwNK@uOm4M!k zV7dLGLev2I=MX(YAeLwtkQ!ch@Y=q(MHQZKwH*blF+!W#5gg0WNztW7T82*mODk-Y z;FQB(61ot2t~YoV@Nw4mf2v73tT21=yo(ieYc@jH(t2if8e&8RrjQ&T`zNKKcX_fC#S+@Wd{lN4F z3K7#a0&b_hk2D}2u|?!iK>hiBpaiK3RtR2?@0_hiU&$+NH3ym)LE0I=B&YQ(x%xpyVgoqXkw|Up8xvdQ{nD| zx2nH?F7yeq+b{HeLv}~%IhKj~?c4!pwrXO7NvdVZ-qb_0fD6rXUpjOwegoFX3(1y(?TkjQ+#?_-|K zi-n}?8nPx+SP7TD%W`ko%mB?p)2A!^fkE}X2uE6i2P+0Tgb?~pyh75y0e*=5u~Am> z3*FHMIE`7TE-0$I#j@U^w!$MVsMvUCAqRWHP8+wN@)eV|TRaYXwbtz`ObY`n!#S`a zZ`OX!_j@~zv^MW@?BOX`i@LeMcM#kv-2TlvljEURU*a*OLc2Ne>uIoR*Zt7@x8415 zEhFa7Z$~zV#UM_y2v%w}*gp#d`vv2LcT_M&S**u8aiJi^S2(G(sv4W5U<`E$xooW%duzOB{`zs7^U1pGKZQ|f(b?N!w`?f0y*X!Prp zd*F}*>~zk@vLmRq$)bCz^2p~gJ6>zzQW2%X(!o3QWhv7{MW1dKw2NyI#_r7V)tTa4yuWorP*@_%$2|$(>jQ}#?>q5zV2*x{& zog`{f}-R#M#Ln_9+HUg|v!{}DFJKG^kc2VS>W>VI0Zl>DgB4y(xGCM#P}w zVpV^rVLnaT_JhR4NLVg$_b7*7LLAB_xycy{08}C`ec6S^&P;xp#74D42pJqs?{JUl zN?|q+B+?yx=$ojeM^P*B7cCju6h(&L$b#E$l=XBVx5AouE$zeGzQpYuz}YYq`uv4> zv@>FV*W7&iL8z*^(OB&!WbtOoi7;5v8WSrc?4O7~nO7hQa<0yGkSXcMnDO^$2Z=X^83+wH@67^>#D(`VS(vz{|= z)R^IO-%V>xf}+^gXRQdOQ@<9K-<-wrS5O0yi{16rX1maK5`pk;HF{hQu_Jc&=ngX)qNQ69oKXvgJ2MVnRN8)2x;iT!48%~KMbL0(sP;M(RybFCQHNu6rDx*Tm-XLm z!m*(VQNt3TCp>w1kq2p#9nN2xOR*4C^SMW&uewIQ`*)6>T^5dGOZ|St-bhO5 zC~8fPlRGS#p3qUh<7gR^2e)|r2k{L@p1qQP-!V+r(x&#I7Mc*c*WaZi-gXT0p5o_P zIQ9a&+rksNZvuctKXy=xrgj(w>O-_sar#_7o!rx&^mTClAJ^MqcIx39X>0M)j3LxN zTCgUi@|_gWt=ft%SgnY=!w}Mv!{cxre4n;x^GK1(~SP0n?wRqz;As_LI+-B_+GtAD{+1q}!E=B=3J>%ona*%pYko6a! zhTga3hO8|&5<3}rF`{rMsbGdYw9M&iKK*?R{4}5bbrfgqd|8i>h{y$MeBm=W+NLrA z?@wf>eW(mjBo{!1{M^kEbF&sZnXn|J;P7pnpJO@SxLeKSx)8qS7>%gT-iSm1{az1J zN(U;i8Bu`uDb5mu<~N8+mDm(W^A6c9`3NMJ@*I4JHWQmys`4_|?j35?K-b$~IB=NJ zCus-A%s_+iZ^7;(CuIU+hH7?5P26Wn33e5?mBeI?vN>OD_G!@lYPw~fnbi0PBja0> zW*jChZBJA=+c$2t_;4bx!u#ujNjssSLcQd`yTpBA{tVfpi{Gpb}Lgph5C9*ne7s2xKA7og6dg$m5uS&IS-YzNIK5M2(CSK+O+kyKMS2f=fh)T~|3NbW zlnFe3SmR78${)2_ul2lRI2Wa7Z*$H@uyWc>EN5bl!dJPV4EcNB&qcp~xe#EJX)J{x z1phg^yFYl?gG0o%Xj877w&L(KJV~9XdyzR7@blX$OQ>Uc+CI3;X4Nh5NyBS^Tj#ps&oC1@wR=|kt|b1f334S*<9Xf+`U2@z;yORg={Lk#+d3Blxo9v%S3 zlG9@cECjycd!SI*28nCniuGe(fNeCsMpd;BMCIB<{#KXVUnb>SKY_lxj>O}DO_wpr zQJ9v%z9KfIo#P;%wDCoBI80Py6=htcgc_WMZ#=c?7CZYoY`f$a_QfxZ<<8F+Ei;$NZaRPQA{F=q6;f`+o{1vRY5;ZwNSfW+a*ppezj}l$My&(#b*(jDWO=fy zyGPdknMb1%(1o5qO#{4{fUeFKqcAXH`7vMBZT{m8zk|9HmnjEuv6)tGwHGYwzq7CN z<;%e<`~6Pd*K5fUT3O+_7D>?pV|*xx$yX6y0Pq_IlW*e+@O)Z+2kAK`NVy#sP83lg z%+!6AwHCnU%Y_|nI2dwE3@(64w5eW+5raHne@XTP$Hpet+sPq07$l`v-?Bjyv`Q)8 zYLy?tekI~6wA1xK<*0J{XPX@yk9hf2BM+bU-sBCGIdLMoow<%l&>y#hqCfhF;7be4c^4d`}dTKf!@+;jm>E-u#1 zSVrMf47Uq90kAYj?RB28@n(T5rKq~m9iX6VcYYR_e!R0CO+C|O_9=%WARI0~wCuZ9 zEBj=x1W+8TLWlI19ym~4*abZA;_Kd>Nn0huB0sWT+u`OZs?kUAyKvTe|59CU59Ot3 ztza#KkhC2zA7G*bz$<7C6Y!2^-djhPq|crBW}&o1`!0Kc>a`u3TU1YpUtS%nO8ZOHr;mP25@scIPj#5#A&F41J>wruQPJ*Q7ykl zP-c_-)a9fQsI=ODD?$9Oy2PPFL^{DgMMaU7;9S z3UoKbgCCyjGP56BszqChnG`j4;L3`yPy1_;%D>sbv^bpO0aXL(plA z2htqIxqWXd{o%LfzR1zUMWgg66tOf3>`hQ%%)Fzsrg1+F3J8#{Q9segcU{1wq*DBm zEpPA620J-~WgIFMfqq=V&(6;(Zg6KA6Ejr&X`_bbc4CH#zzkhaCCCHCo@+|nInm5A_~)Gm;v5Ol@{Lo2Sr?NYW&{5=pwS%&eyy+%V%($A{nG;oaID_noHZ8O zhLkIe^|UZ0<@VUmfM<&~QVk|NxF8WcjLrtVBygre5-h=&7J{R%Us_szSB~mNKV!xs zt9BgE_jcy)srOd$Xh(HC(#n&%^$)c+l6}E@v%ucbH1mrJxJuTYdrzFrR(Asd<*@1z z2q*y}pjHq8RlEfa8s$$aav*+@F6QLq!~)9|7%yXqg1ip?QtRO0gCb_m*!tAx02DK^ z73Wf|Ng|9SFdLqSbN3!u{fM2>jhi>$VG83?sf3!U)M~a(7n%STI6QRnJS#LQ?y+}+ z9qptmQ${(G0X9 z3$IYl0|Rk*U6R)?c?2Fnl~!=}9VVkkqCa`@9I8*Z4V(YF>UgXjWaLZ}rK|n>-z9F{ zuL$;mftjs3eWCm~+r7?Ck~ zJFc`pu+btB`C(&Qv)#=PMy^^Gw+xkb2SCs8PxTFj3=-*Q=U;BQ>(f$G(bS{U2~YC5 zDq@Q7k8wLy%tI_+{?hi6*-j&)h;2@W=ia`38+D|Jbz@q8wW+cBkDB&mmX&H%vJxA! zug4iKsa>^E3988o%qsn~4lnd=VP^)yYikQF}8#lGS`{vPi|_LNUSkrgJ9^#W$9pxu{YeBBi&cuN9o}45 zNXzG}JCUx)FIMv(XRdo*dVc#-CGKAR847j6vpNO4RHm3%ytxy-c}OGPJUHN#%Vs(F z4hUlE<$jf4!+_k!Sv7kA!!htc$kyl|Q#f|ZMUCx^3HD#&?jXSyTnf*-l-SRG@mlXg zhIhs6{-2UH*;O<=~msuO$Z?k$Lu>C9Pn+yTaR;oo_WJxfq<`Nv8Q*wi-HmG@YP|Dhzny6}Q$XGM;<Mdb3@W(S+Fn%Os>UDkE@ zC%1_8^Ko;<2Z(VdSljUEOL2X>wL&=Nm#*8j?&gJD7wLc3Ks65iiJHB>i3w}SSlqsg z8Df=gpPq{wwcbrFb++HyyE%0uMFaheaVDodadbC-N9$iS3olt-9zO54r11T}&xdxc zj*UV(n;4I$=$^m2f#US(p3TC#Abf zm_<+NPe@1d))H<7i=G&3yj%Ru|z*Q&G5sNE|u;kh>1U~-*^^RuS9 z^>3{`-~!7o^{#I#d=us@=6I{uvz1N|N9fBf)A$!#TJ8<-Txdw zOP%9RE-$CKoYZg@M`>hJ8CpNGpe{jf$mQgo>M%{B>2=eQ&=uA4^P*9fswS?BES+AR z?5tug-H?}6yAY@NN0)*A{_ObF#GO<^>^-(aN^9B6fnis0d_m(yMy)^YWqS_$`c@yZ z;aPa6JsOR#i+8v|=)wKVn0UvY-7Ck$ zjWm?+JlZDffwz}VXOr4_VmCgCs;bm^_H~0}_doVP#{m7+ni@5MQ|!Ts z+5-Oq2lq@Cs+EiQUa}kYv4ojOS)0 z)CanuE2aFW?rMJZTU8fKdIK7d0hff*G$M(Oh)h)Ljljqnv683TCU{*Ktc3I1TU^D5 zw(}qJBQ*ReTeIg66RiDux$(<$i-#c&4hbhtK#mMQ+lYX<5GUS+JeYyKntrGT>YS!Q zO-ha*jwi0*xu@l{0C+Kw5{q|j1hV|-z!}%GCKH1Y}*8vrdbyn#z{BWY8W0(pGTG13EfhEf*zjZ+hL~W|5;4#%x!s=kO z{a4WYRl;YSyg91+Iuq{SCcC%p*Fd7tO5Ch|%ibh-?bg5QfJ^f{k8J#gW4Wg$u7IqR zE8&qCweC(?VReGuk&0+mT11CY-=z$|i;w~PiQaY<>>UemBV-j0;m4j2PbW^){9ou- zG*V~vzgmDP7u54ic!M(keskX<-LhZ(|OR?$gzhG9b!x* z6r%i~W**%=1A8Q1Vq~0*JW$dD3gYQs=65y2=hk?LQ?HupioHiZvf>ZWM*9+M1Zl=K zWctC(j(JtN%ed}JbhM*hC<18j1}*a}Ha6+vs;a6!{JXbMz+oH+l0B+B%z$raBrMS{ zL2nDd^iGt*)Tvr^sz$5=&CmaYz==ZrHz&e}Pe4EmJqffotYHA8{Lt2LELpM(#VK^q zSWph8%JpvRCL!HH#Uh@QcT6R0YY-;RHJkTLz*BnTs~$+m46LIxH?*94X5I!K6tk?=WrsDKqah|dHv zk|YH&9{7y^22HLwqodpQK~jk}7~`QcHFx5jUqgTpmlu3qK*{|oDp*I{+!=w@v$4w_ z+?vGkSoLu>r|yzyJt%qguH7>sLCa_7Q+K;cpb^*!iIC2XtGTJZ0klCA{pmqi2G`j= zjmk!`1!!S5@U%Cigho+c2+!{wa3&&JITui9`7rA@thLAE4LNBUN=UTu*k0-n^#i6@ z{ZU|GOp<{Jeb$=2V0C8xo$CfUg#qM5DrW=O1Bx#$o(@Hf&v>G z8}FF27$Lh1yfFcK}Pn;iwE_62q>FDksq_&-uA8HX40ahj!~>l;5{2pRf_j zPt*k9JDqXNK#zkSI9nXsZfs+WyD!S9HFgY4C|He&5O8N_F>Vw!0>2EFD;NZ$#uuu= z;Zdw;A|_?_A5)mu{?isO(3krAOvm7v#-j&&>1h;%@sG53j=m?&OaLyy!C*DNRJ;#U z?O@IQ0TnByp4sK@PjVAKp3RK?*p zoX??t0_a`3QhVo4l9d;XtU$n^K~^Na+{k1#Y?$<{9AraR*8?WRep2&8`5Z zzouC`_Bq$$#|9CXb08Tv_~=XyC|G;OO&kGW7AWW;)#DCOOUn`4d!*wa&?}t99xVmX z#aAJY8G=M&7-DoL?A|Is#C^4OzLL|+Gtyv~L6)!c{OM%s+Q!O2t5pibcM%qN^;zS1 znzR16weoWGL0u~0WOr9Q_#>7KEQKi1zkQvCzP|olEiZ^pf|S1R)!DZhK7|l=K{^Bo z2sGq$TKIQQNUb=i)aqI1`{xi^>qR)LI629n-~h%EKyvVoj=+jWjBCmXNOmPWIWY{I zHfbI%8dO5G*oCA4YDdPpoRK8!IuetA@IX!C9u-S6d+UK{U^(n#?pJAG*WoyZzJmqb z6mK6C&0={s-;3o@ZngX>L0uF5XR0onot&No$G%udJ(^(fY>Tvd^bUI;e9%4lnSz$g z05f10%-BGC=`FTSssO;eJFl*>%_c~;G_soPJ(OG2wmZ)_Xtr$L^n(Xq*7c5#7t3z* z_tkf{DF}*l<%xwsqBx^SJTPRD^JAm-?j`D1<#{e zTLoQzXkO-z)jmt!#T>|vPEcKaW?Neu>O@N8Xba~RX6?#R_zG#|#s7Mv-cXW=aWx2J zv@Cftd9J44%wfk`T~!+~;cRhSESY&1&!T7SIPyT@Nq&#>GbWgmP*LnXF9(9(w&M#R z>a0$fKWo-Y`;1RT&wbTpW1Lkg7V;n>Y8F6AS~|1ptT}r^-&J&>xaRV=cEw2VKW-Fa zY#h~bCp_FbG2!FvT^prc`jO^+wmnLCiGtS?x?vd<#KHZxh{JeZX;TO?DZk^%^Q8De zodky)CXC0IpxU#>627$^iDDZ7d+4}27H_W4Cy_3W=VNFX0JuWwL@T|klMKr|R$}C& z4P{~XLGZv@nwtK@X$=G2n6x^8_(CHzSFUUZe=}8B8JdI_cF>|@s;%KKQetcpT_!0g z8}JvO%YOUbPU}lKcP&;Ad-bo6erCQk*8ILQ^qd4<2HQs5ll;%GB93tJuPm2K3?^pQ z(`%?|2CwDTpKu>mJ4d~Rk}g0LBEda*;i~s0WwT+qScsH`P*C2*_ieWch-6)B(%WE_hn^7p@YLX3%aKgj2TdNHz*N^_d|KO zdZ;)W=NTJDv=AhA-LLxR+Xd0LgBzB$k;88Ooo~ls4#!ku8#w5rUC$=B(@t(u#29j} zXH83LPI1Nz8zAL$1?5_|JN5{&_{(!gzJ;#F{338I_yp(vN~zxq3( z?k$8q3hjpI`t`NObFcn(3{WraXi3;iiTLkNtbe61I!J1St2^73k3Q%_(qY8!NxGhJ z&qg}Plx=6tyi4Zd@_%+#rKzbV&QE9apZX%612{d{H+Ky&Bzj^4tZ%Dx>~9x zh{{5_Z~}RPc?jAPA|y@Sy13AW7198$ns|7plt%PMJfe`M-YYMNLWn_6RGz#qEoubf z0o-pJ<;mZUsKO>uq7mK<0R7S0Wdo2(LQCX@vvLCaFNw%PqlvHIjYeVp^%Y8YP=nKY zw!BGGHB8|B%uc4kk5_ZdI=or_H*0 z;6S!$RH14g2E7ZGMgclZwz2ITlThotkkGIn63yNb(yF`^>M9h#076{U@dRC8Fl)$F z5lfASAgJNs_3)Q7lh^=z z{bRmzhHteZ<@L=v20foEr*SlS=OTwDu1jabm%jH5BDHboCfu;~c^tNBGzCDg4Mt1~ zDz6douB_a=*EBW?DF$}T*e!W^x7j08rK;T%^~lT(#vUq&B`Y>}q0@XYJ=b|X|ZRD~<)~7>dds(bM zBrn1iB~Xnpu>Q0(gOO&Eh<0G~m9b}*v><%?bU+SW6!jET|} zJCfw@>{qpsdceB;pX!BJmlLzfW;hWhEWJ*`Bu(p;{uhmry8@0P)q0iUbJEn}H(lug=eGS`Ee{UyOJ2 z<9WmdT85DLAKJmoCRjEGaJazgDr!#P@0f2>7(D3zi^5u^ul*F-gqf-}a2sj`v1*0& zV@{CqgP5dDg)K2-rN>UQP2#09kO z`k@H^4pJs>$t7Ty=W+E8q}BI+c)(9G4;Tm`23##%a_XIH6Qnu>Gq^(1vq;7oodi1# z6Cukx0_#J7kYrFEQ2zBXSXYr00 z`+3x#X2Yqu?Kt z%ex$~k@|e?Ct*3c@6RK(-E&My{0FEKN3px#p<~!p{`7Bou&?4LmVQ3ST0%#)Mf2bHAy#U_`I+1k%}ZMj*>bbZXqasYzMStStMjBK{nzO_i*Au2Ua<&C=Q^(kSVkFVCAD z(a9^t{C#E?pOk_n$i_R}qbI!P58d$gt{oj7dfb4uAQ#)lHuOB-)Z;i0##1&;a&Y?E zzfxR$E7a{z5><{Cg%0<0mo@3id?>pO5gAw0p!vERgYvvSok@v_%;p=%VuVxXtA7r4 zNH>!FX$B9wPsiEe0~#SObzJg$jH;@ZHZ8(fCNIBN|6x@hJ^8zDNZX|UynJ>+6Aawm z{`3e`i>a9D8MzT_VX)kJN5C!QUt8Uz7Qc8)^XP`TiHV8ka*^jXBt@T|wAhrMm7Kg& zx9YjNXg93tU{4M=Q2e(+5*PN#gvUdEcDOw=Pqr?IgI!jO(kyy-Uo?rZ5YR|UV8Vjy z^4cuvHf&ebUt2LSegDLU zeNJ1VBa2|4ERyY~xJ6Cvymj2t8Eeo5j67Z{ENG*Mc0PnVn8nP@jPdlSikP_gfps^` zAMeHgG3xB!C)UscaaT9Dm*#6|r}p%-OgLayKU+<1Q51_LGjj})R3>ipfc_OWt)bj( z_zm9Z9yJ2|eB*DBdlIhCl}=~HLYA>Ekq4fe>D_x4WhjcqJ6k2a7>vEmyPTvbp!HJ%c3U!^a3OFMOO`IZZ`NBh8KiO7EqauVQmC# zo`Ps>fq{Y6iTu z768`kp1G_Z%=uwTUK>y6t96Q0=6t+4_q4BXL}AO_tqhe3Z8m+JyjH?1!M zs7X^vke^Fc*iK>tjybp&`7;xWw7nIkRb*#}(c&$a#0ywa?Y)6@%n7V}A|oD_>2vb% zInL*Xb}*OiX*vBB^)kNr!jML1gyrq%d(cX(#ZFj89`r@jaWnF8ZRq8NVbw)+OCdx> z9jr_{W1d9d)3Tp^x$NV^H_e;sCu^1OJr;d7&=6k7*?hUd;e_mZ_H-wIdy^3GqBseR zrvW3hCLX3bT;~J|P7;vK&J`ZhK2Pq5J9NIWgbl!Pfx?W3F@>aBXwgALOl$N2VFGSmVegxvOc{{F4Fqti(6NQ#vm}Et;@%yQ42adeZ~wj z-K4GAC#L_BISHt?B+c;?Tq+njacCH|oeTj@dW>*y=v)-s+-8ZJKZ_iDf=l;hg9YkO17 znNSy_^r6`h546tZpS~gSSBA-`1EPevj4!aQfT!a^g3;Y2FIt{@o^(EX=H@_=q?Riu zd%C{V{)(e(c-O$SfZUUSimD<}9*4r5jMJx#p4%3V!gjG2L;3U^pl(Nc_meq8=) z+x@Bq5 zngoe=2`a1usN8!$ri)X;1yg92+2;ZON=N}`Hw4K0!<`-Ah}s&U1e6dfw;1XT9ImI)AiI?C;*6eGk`l-Pa90$irylV(`#Q|o zj_EmQ|7fEmo`~S@HB5k4x5HMOBkTIz$l8yt_-*i6oB1%dCt~-afkAt~SYX(er`k2< zi5I$l6zZ}}TB8!GTFCbVzzLvK!6oa~%_e4!oLtHOhh8vD!Gd^Rjo~lXzBdA>&9o{f z+?BKl`1;jlNzL{4TS_U<6ToEFio#84E_tp;<1rV+_9x~Nb`PWVQxGTKwO^m;Gd8+< z{xp=qyVlhh!%{_rSJ9qD%&zJ)7r?K{{)%NSlEY}7JzgE{wf{~A*=*@;{ zpy}1$i_sV z0Vf~~33&+RTujJv7x0|_3<>r<}55k0-=53A-EVPc-00sAhf zHl4l*&x3?v`!8eY>gOQ2Q@)}N2iT%MzN8$4=w#eo^t0$YXe^sNbbqaS2*M!6IIVlf zOAe|#a;EnBB%7`Hvj8>~w5$|I2?vxqZ)YGkXuJ8z`XBW67t8~b#Vry}o7>D6%hYzf z+%LCWXh#j8ODHYgq3A3}c6EZ!ISsm!{uQXpjJs}C7D()PIw#RAqm*qyyT1FD(~|AN zv(R9QdAuq-xL#tuw9{g=hNN&N_hIN#zC))%P6QLUxZY81eS4}$YT-a4hAMDezgH@b z9>ZheaRh{|L>E;CBM6{RG0J+h+P#@UEv`>|M5fZ?FsqqUPCpMv;Y%Uf>fX-AB>Wc5`$S6B81dj%dpu(5Iw~qt@!cx zIwG_Su!TN@LmQHlQ4OAb5?ni=*9mzDgJWm7xnn)ptHahb$3$0u`t)f}%`IJNw{Fe% zb+DVWydmE~=DW|3G;f^&?j-bwoABGPqzZdFr^jhcgyi|t+u&kx(Jy_sliS=IoUkyh zHMLLY+Tcd)Xuu$+KZaJ+a;ERm)0=}$0u)?k&(`f}jRH4|>4ZtsrukD*`P%C7{y(q` zD+~wdQQ@7JoRyrRDObF|0kC3h5B!A+8?jUgqNgOic6N2+kZm5r&FeIKzZc(X>$6rf z{5sgM)5mSJX}Dl-aK+CCyl-capK=X#cJKc1O&2) z7Zv3PIiX$UP#Sy8!f16ekjHkcViWE~ zix!y`EkdQY{h5rK2rWN`u2QIdH-19$4lE>>`FzC>6@7;IgN|sn`g0gWc6fO z9x1EeEq&NjBfk++JM-u~y0VQGV~ePo@cbj{Pi;Lt&YKO7Cp!q7-!9B3ZQB-@bj2fk z$1_+DyUGfT|D@iI4o;kv?azV&tNuWa;_Kcz?(}B3UbwKCmJ%Z%-Lrf-dU)+3owJn+ zUk>yR-F|Iwu3?bpP;AoB_wRxFiO$RUcp^Ig219Tex%S&#i;mS;yUJeZ@Yjz=8s@Mb z6)WtCa{Rcg89ft_g&f|{aN}7#9uoh)_zIQ$g=pY{1vT7aAG_?_D~AWdJUJ5XIHc03 z@X_t)uwhyqzy_>g3?7)fTuA8Yedl9e34o!`tY$}i!8@dCa7*-a*eY#-@7;&B4i!s85y5HJsjZt}i>;Y5in(eMGYOfHw9)rs7EQ(S&qp`k1l4tKNUoavgpIwg0neWF81}8 z{e|is!?9B^scgA{M{4i(e>Q7L9ZyXaHPdtVn)Rl3LcV(P@hyqR46mQSf9q@maQb-P z;02fikmvU&)bx$}4)u`Pxt|j>pV|7TjnwB)u(}r$cyTGt#AO9{%jkFMf4R_iQR%HY z-^N}Tg+gKEz-H-%7BcjuT+X3Bt~p<5Ci(^_LTQBzP1r+gvqu-V{v=9G zn$2T;F=GTeoD+eSMaxJNfRqs`@fE_kr3wlry26Kgn`DTsf%yEGewr#u-PJIEfJd$2 z>_1UtTRoaftI~nWz!^#as#QNKTW4=oc`_9z>T-K4uZxVEk?0)m1Uv>?Q9cVJr8>eR z8C`vSb=&r~TOom0ZQz}%SkuO6Sg7zP5kv`zRcj^{CVt9qe=Bt8H{b4D|K65Y2{dst#MAH>KSe092Co z$c+4(=SE;doIp~?7ipjv&co>>~LsWn1*>>njEaWJnk z_iY8~g8fP%wB%>)T3)OXSq*wq>^|*71ool=BAoz4TEn#^kq6Zd#(H(5itiZc>Q36w zAU-$bgYXe!NaR{E$c7^53-@q`qz_MBG@c7W`eBqS{>wHn$lN%5f-t;7VeeOJs)TkJ zp&KkW|CrugwGZnScor-O0wJ7W4~7T8$h^oV<}$X@fWY${=~ii%Isd_N z)8R>+h;b1|oSIZslK2q-(GRr&m7vFsN8|kSn+;Ts3lOZyL4aAjVS_<^p-QhEL97tc z2?$3`Mz%PP6ha*&vgG#jtJ&aMJBh*c+eEsD*kTJHj2w}{Uoz0qDx;nNs9-*nrFqIC zvgl3_xr#vXv zJYc0daq|j_-&HacInG2OAOO;WKDi~kQjmibH0*GVBJXGaq}-(i znLkh?YNNTr)sJiZeW{6ptrhu}f!p`LE{kgp0BcWd5##%IbRZut$)hB$*wCPo-(c_f z*|rzz!wD$;;Ls79GsV~8tpnrEFY$5r{_qFY)m!j@(Y2G=2K7RaQk4R!`vR$`K~ZfZ z5PEKf@0WAtlYmtR!0!t@C$=nsi^O~-BG!!UbQ_dG3?C*hUL3q68e zMpk;!lh?6myXAXPG`Yff|IGzxUADqr2o$sM^$L{yw7&=fd@e+CC~(T4@O}nY6dfbD zDp1)E41i%+iHWpJ9^^#OyVx}sw%6aVno9jF+7asMpsp&#iIxnO19Ak>Z6N+0nV1E# z7Czg2u%lIRR#7FvSeT2+f}joid>ImPn|Sr>wdP8}U!0l-33dL(BeX#~-cJfxbx!!6O8~5|)waqlRftsx&Vc}D0I-B>AO}tajfrkA-Fk=hRu>am z7s5Cd-rIoaCK|0C$mUe3sdD%1?0gaD7@;GPMHvrzfl(0X3cokf-NiZXG5_=JAB_!z zR4ulgJCCEvlngcZU4H)2|2)BbIK`Df3Ic9iq`s+RL9}IwfCEA3nDFcE=AQ=cCrUF1NwXBROT;9+iqTh}_-Gs?q+Ntw9`%LZ= ziw1vy(?`BD_YzDXHsW#(XvZXedkIesbdBDZQrt$v!`;aJ425U@`7pn0ZO0k5e! zAO_|1*ypG0-aXuPCLAjwsg;GD);+xc&KNQR&dC9y;`~~x;L3fIqNT@cu=V`&W=h#N zVLh?1{BhbI26H?^UNgHgpz%o3H&%S%<>x;IJ)W7WyN8Di?HYy+kxEWi4dNLxBV~*| zdlpRN^3(3L{=ZWfUu!4L&TkifE->``#L1HYm;{MAL6P}lF*sConJC%FGlRTUu>1wT zoDa}H*rAyYD}@H7270#h8#pxnjc0vv9q_L5?#VN>d!q#}#VJE}DOaupcRhUc$QeQz z+$0|Ck0+DXgc@t7(P0lAep9*bU2xz9>n82q%THnsj0G($EiGk9A5p%2r6+?DA?MV& zv}g62q#HY%|_6sy|Q{K{;H8^biE5m=ZQ> zzH6WP3VaSYJFmf-7lIfldQfylHm0;r&RnZwo+zh_?0h$K3hMpWcz<4GIU8Um6=NvJ zU=m@9aGuZf{!J^F8_Yos+kKc?ALta6jKRl?cG93#F!qlRKgYveot#kXp6fzp*>}BIqV&Fx3WJM_7e|r{pn0M~W$}F)*5~K$R*1j|Bn7QOlwA680C-LaaaA`AqqQu!o0B?cSRNrO-<&mzQ9_-{Njp0Q< zKnIJ!nONZhw!LHZNWhex&`+}p$?6W7RVzPr3G01pb&a(E%H=7DI_0x=$RES}oAQdc zpa;Pj*FYhYkS>w3;8APvt}|?naraR(8Q1@TbvM(HKtETpE0&%HX0un zJO#_PF6VP4C5nQO^4Y8z1)TyaVcXRr?Bil4rG4dZc+|aS=Kx1>a7f6P|1Q&?0uGNK z#V{z?o!)v4PR^7BdkhW-CiFVm+AXdJ_6iBf6uR|HK|f2>Eefd3z*@A8j7~u{%?skR zK9ZG@S!2D93_CE{cnlQ|6~9=QUJ4%1AIW1WmI)&0)aDPY2z%gQKwIaC&VgE`6(fbm z)sydmtUv$`CN+7MzSyh1y0khS3svZN%-eTV=Wq!mYEUXIU9*M=f~k;*pv+ zUCVV07%d_?y;-Uqn3_0mt*2|ex!BeOg3(wRe-K!rO2+utya3H313K2{u-bi}DaBtL$%D!EA55GmUQwUA|7 zwX*?AN-_w>rUHH%Ss4WoJmtZ(Avd9F-Y2Mynb-p|?87?+fojY1ura@j0pj)XZK?96 zTS77e+C_;FiMR$zsuW}oL~gI;MvHlQ>hutih^xeARa#gGq&2huH4*~;wJO*`TCRB} zIvUc5_OPTZiyKWfm&S(ww9$z&-zOtJ;=%Xs=2L~JxoixH$Z6~p(ECJR+XG4%pa3X1 zc{N`sSZnj<&B;qtUQCl&RQGa|l~r;U zpUOjLC&|He7R4r#-4{Bl8a^={J9N101vVWNHa51*eR-6M^avvy$)EzyrvA5Mqw_#T z0s^~_eg+#+#ZvPZDcLBtKZ+=R{Pyj>ofcU0o~L--E5;XQT`YVxY;N56#%Ih6Gqbc` zn!rN@LO+zS0K8;0&1dq|ovg8*Es$aN=Qw)0LRS7&M&YY%fNG_R9K?Y&;m-@(+;@}v zx}-InG;DrLoaVgZ_eoLFE#?v_#J3_!0lip_%4ZY?tgW6M@%!yT7Mk6gU=z4YUu=ht zFfa~vAWklqFo9$aRVt+`^cJzgQTXS-bF0l9Bt0hA(AXg+JTTA~+1zoa%#F7**Uq1Y z2YSn?l^y!7XYenpN$kWPHrI=;P`>Vjbsf}{RQJeU|LHKr{E^vcSuyNe;@@>j{1ivlziTKXe0O_p*jR?vM$ItY5`-d(?>aCOnU zbr$g~EDd;(gP7bdhzV6cRXuAWiVq>BW zsseD4t4Gn;h0G}Lp8)I$Cl-%N1>G}%9Bjs1G3+Db!`~LVWhw0h{`6_8Unzrgr0(`d zji$%uex{ z$P*zp0jxRlPOW)3c(Z?l&(lK6g_>N?l-)7hi$@Fa7LOKUu?LQll9JF|EWtf^VI(D8 zbG^9;k%1-5osi@b*H9K@N7QQI}@@s&0xT>PAEdxtb z7BE>bJwh?HXXjLqvBuk6x#zEDAS9~5*yS47F*12RlJo`fe)I2hJNZ9G(wT!0r2{f* zfve9wsK95yb_<0R4eqi0tRc2v^$QYLj%>W+pk|yep>xf?@!YnkX3&5vz2=PGOF%Mr z`ORwf?a_&WL;76bo^NibWdOiJ9!>B9Yqw0wf>!~NDJvRxbVP&0zKcdasa&wqSvBI@ zpCWiwrc`pOJPa*@TMhAQY9UyCrk&ztz35*Nt!4Of*8Te`fXmcF0(_v zceJ&WT5@#Pw6YYSw#|GV9<}+QTT;||e=aN36LlU}<`D+ZifKGIQ|I8z7L`HFj(_eg z>U#(4X=Om9=>3@bfr3@&iILZrXJ%b{`XFCkwZQD~plV>yFvHAlRa4oddp0o82-}2& zVy?*cx}0q}t5IDt56^X6TnVKe-!FX_e^ir8Wb=S`#hXrPM+;V+EzZZ~I$PBv0H~!5 zPy`HOkOgQFS?c$ejCtcMwZWTl5#bY1UjRAM{2A%_rG3|#m?=YX#&1gL0JP!&oM^)c zZ6uD9wDALRkp~VUnr>;jdC|=S{`nh!JW&V=yjX;|S6p07jlVfwdRk8oS+O5z=3yX` zTOdJ7ZtdT%s0#KqUdzBy$|}1f3R}L9*VgXDEazRzwUY%d)OHJ8)K3dA$vg>#;OF|h zHnm6HEdU7SNK0IeldI&^EjoUjoyqfi+!ajMW4mG~_|wm2w~~`4A2>2r1`U~EFs_2F zG06?@k;F!w=BOPy1O5G+rgE3lfc*$ZU8_!6@yP1ZcEoH5FoU!V-Q<0b3qW93fRi9~ zkU(04J$oiIlO|0%{o+N~uU}HREI+b)BrIplY#+e;3t+EOFVtB3Yo!2goH^ryQ=R`y zh1Oc@`y%3vBF14SwX^&Pm{)WUn|jp^U?2k(i_o=e0+legdZ7&&jZ&Gui-ydngR#-T zST_K3-K4EO6Sz)nd{X+lp=QIOJEy~d=nM9yyZa3-Wn|E3s z@t5hkvvmV~4}3HUwEsl|xs+S#%YM9(x%$SA+uc#CGeqg9^N;^dz*!9A?d|>dMdKE@ zu7*Z;V9v(g*eZ1qlYz-|MNs#sgr=>j;MCnX&I~P_*u2m$+di~6q!;rM(`ch75Ez5-#J3ra)>;U5v zIEg{i$2b|ah=y*ISp3RmeFf1f?LpF877MYi;Pnd;D>M!j^B}ADjVpUe|{BWoJklenDu z=t+HkKELEYhTVzZ0Z@^Skpe6zAS|#hhg@+&w0g(qhiA*|*V7~cjWf{x1e@IMJnL`{ zZ9Dsexex?WS3>fUoM4BXx#-df76r0~=u`u9-BWy0Q!wtxx>cB0`TE_(S!klcK`%k; z51?T)6e)x@?i=YcVC9wNeYjv~9^*LWOz%>=ki?4xg_%rhcybqt;#Ta-0L~_Y#=;+E zSKG0Pf@lsnR7L`tyj30f>olngaBL3lcyzAp(Ibr&=Z3r{7uqvY(LlM0-B-=*5EW*V|33;lSu~*qvpeOGQGH1<9MBgFXc*SQ zoYub?`jXaYlHndhEx~3dr`2e9v*1QeJqKtOrIFVbn$Ayx%FRoGZGFMW3=8EDDzr^H zIy`saGC6zhTo&{n%IR{i%}L}RHuX#`Z=>t3mSBY&SEN%f$o&lNGQZ}D$`6FWeNcbn ztDRLLhf8B@t#gL-H~NvY}eQ$YZ(!c2{@rwuwz!vGJ|0Y{q&Z zW_KacxsE}ayvVf>S6Ge!3^*XZawX402$Is#is$sxl-uTI4aL|j@)F#gf#E9Jp0O9c z9OM*|Oa*^II-@pc;Vnb(EX=nA$O<{|Vj8OU(Re@d+1+%U0CQZEQjl zy9bF&{Af7LT2HOJZ<~7~RKF6t7RNrHRNTGqNRLz+3hRdlnr@lJVOyru%9Uy>(smq4 zUzs68V|3T)CqmE`@=y^gChX7z^`rGrz99EnsFL%cZIDCZnt~hQ=_|uhJ2URwvppoJ zQP)^-FhvTsa-IO)5+0jp@9unj!6FW@;^(2r#>}eFr9Y4|(ouWm0dR|Xi9*!Q!=pf3 zWN_&0LXnBT@2=V_37Nk{3LLaPN*hGT>7N^ti4Hp$UD36)y`sP`Ewl7c(4kjPGun^t z`Y0`eZ`vfdr$KnyRR%n9%g}DK`z$WA+RXpn%CH-yTONh>?=Yg)j!l z#n3iPmdlV&Lu1ROcfLu@d|`r$D2XzW*gj-*Ru6vzNeB!1Stij6!DnZ-xLnMPKM&9&b* zOCrqnJ#N;XRduU?`ynxYXezj=eP!o0l38yu{Zn(y1a+kLoO z{pp72u&9tAM@~S4Y*|veE0654vALFX#i|JXD$@d`APHrkf#8Ce&K$7g{EeRL0IzV| z9VnI=GGS|Uf7GY9-EpsOngjPC=@5>3N4C70iv+$yhE{8inL`#rEd*@L8JqAY1>(Rn z^bGy6N1oR1lC%I~Ted85PoV;bOHCTReaXotQD@#)-(hd*yK-lsw>boJV+5;UX7DZ` z46zpvdJNhtbb1gzuuNx>DY^l7`2y4NH)(5z$e?WJ$M!rKqyyF7-NwD0y0X;*O$}SC zLJux?H}+%uk=^^fAv%8ih|Fr9vi8Du#yo!7n>t5-RMz)D3|xZLg0dc%3>_V*qA!buq#sGks6Zr`;% z*~@dwf$%H=w+7d-im8&f7t41&&HLcdp6BHvSx_?1B+95P+Kcng2=@mk|a&^UGB@Att^ZU{**qdmiJ z^*kB^rM^GmQ?K^;>+L zA-Sg|^MEYKX5R^2eQ;N_b@-EF@v~4g09g}(2{H|3f?L-e`hIqHqxtjY`8`ob9*h*{ zwA)3B-AerR?t;NV**keCot;=;fV^4meI`_{VU6#(?(sUO8;05B8B0`5!YZf^#`|_s zE_2I&_U-Q5>&Raa-}EUqC93iLnXrS)Wh@RATtW^out`@?c8pEC^%vhXCAV}r?}4rt z?o{y@ZFd!0AuT;0-3uakq<$-Omk@+bnla<7ey%m59(uM)@G`0$16v&X;Ss+(%t#^mkwb;wx{HmeL8_)u(cZn^Mh{4or8omf#T7;|uM zj^Xvg@IX5asbLAg36`G%f3~=%;J;pKqf+DXgKkVK%E%)D6TOn6g8+rLB$gsnvsLxc zi~R&%+wg9oQJjQyBn5`%Q)upwMwBgm-nz6^^|zaJ%E$e;iNL5l?v*KX!=m}iO))A# zv?LsjS&PwN!JD-WU-_2DUstqEKodZVjlbHQ`AY8gaag*Yq@4%A^v_;Bir$x5EI;K1 zjD?uIsUb^;d@AqX4}7>+w!lG$&tR9mM)`WfjVSd(2o zO#mQY`STAbWSP4pBqm`n)Bfx0rxtlj<=dV6f8GGfgc)PM!`!*|z_%}P*Y`^7EL#w| zg%;1y8f^$HBcKieP5j!8jRm;G|Ji4-ouB1nZf?C z1x152b~db_XBxYE_pRwAfME&eL6Zi?!_G#x&(@Uiu=A#&jsy*?XbIpKSFH22l-Hq=3b3i@1@oCgeoj$!B5++}yWBL{> z7CR+LEKWp;LP7-KK@C*$rWS$RXvKUB2-h=NPj5EiWsBwKU%D>#=BINhCPk?+iVqwP zqRa?x`d#d%t<$GsH_qtLbOmS&{*^-$FJER-Awk)DY~R|yUN|9)-NPaz(I(C>{r##W zOPRJnC}VyJJZ7 z4GR{6!ZER-9~ec|Y+_*p9Ny?!5i5fAhaZlhNUJ+xF~MqE=Dv8(o>ZG(g-1$G;s4y6 z89AWM2e7gH&6kWAgh~(?33#uxucemk-KC>*3;+_I--eK_MNJ734%rgf;?o{X2qhkEG*7n$VL%DKu@1XdG z3|aoAD>Ql!RY#3KS*i8^ils&tQA08v6>Nt>4sj-T#;8~7og8odd0UqO(F=@ioex`x zi#Kqp1h>GJ?(a|h|9^nse+QGeMqNhq++RB4aiqi}c#M0r)MRJu3wt95A2n4il?-Lm Giz#Dn{ZL8R^MWW)f)^>9oQz_3H*>-EN-ht*h(P zZCBpjzqN6*!l_g3w@H_20yiFO5#AcGN$-qCd2zdUwxD*u>}Z{4g`b}J?$@;>vf;{m5O@9x|aRW}*BRBvh~dgJuw`@1KH2mAfLcZofW5*s`c zH=92kYjWn?x$NEC|9%Z5taMQ+{MVP~-O@q-5DppXh`@k=Q%4>>eoV1nXd69!7}a(z zd_zCt@#B{)-T(eL_dw^PpF8RQ{fc|3kQ?yt*W#hQ1t+s+pM?N$(X& zQhl^UlH2SLp(@K0r%!LWcI_JJkVQ+t*EhO`;iVpl`MGWvE^LdDc6LayKW1jOZ@4i| z!kdnUCedqop7ba@+ef#~Ws83A^N}p=r7R4DZLpoJ%(-{@Iouw|qIQ_T~Q5X_1F5zh=12nk^Wg zu(LZzPD%Uy1|?@QV~p;(*IJo3Ib>W&Q-4O&+rGuGs9~X5SUw4RPg7A)GaEhPkn@Zz zU0mRqr5QD zeK>wc*yv4(VI}|mkN&e$AL$C2+OBEx?VEbpEj!1rSztTAosLu&CFcK-S7k$nUH|cf z65;8VA0O|~n5-;L3z?F1b8UuJ7kXU}EcdRj8Wy;Wk4(FDx&0aIIgvt%zm+_aE=O+A*yw!PAwDxDz^LLXH z=ff^iRVdf6iqD^i_Pdwe?Gpcp=Af}>&z{ev zK0d@&UH#37t!g^l5YuiY?%?PcC1y^0G3k8qcWa@!rt#d~hN=FKWFF?8BP|DZ3TPd* zu@S;`9r2iFj!`J}UX7G-6(W(5kySeCU27YeG`QB8Yn$$rm|s9vmYQB-(KT^NPp|Gr zeYAF|_Yotym71CwzU+c~bc2c2WC0e$nY4o@ap0!AjPdy*GehmRk-Q#afX3p=K$NYT;Jf%;Bd zPJ#32CDXS@jvR@ZELjf0$7*_Zf|7xOp({17y0%u#K;`Py{SrObdGO05k*qEe$KdnO z{BV1_mV<*sQ0EOQDym=;H#fIR_o&Rw%<}T``wt&}Tz24V@j(YVH zQOca@w+aJMf3@4*=oh-I49l-Sd+}mpYU`QPr%xw}+ifIGj9=8!I_2OXiWPbE=+QP# z&hu?)`q&7mGamfhYMM0cl2Z>x4Ghk6{rEYo5-WQ;K`|IxoxHoi*)g5ssH!SGjuS6G ze_(U7nz4z=ujWLm`X`4S)3>V2@ADn0IK(t)U8>gUl_fDvYVS?rdDWlioWIY9acta^ z_@uM5*V@uJ&|8LseFs$ik__Y&X0HMGmsa$PF7lEZ|JGm^zUBO$+if$F9`__ z9$H_UTn|#PAFK?)XaCBTF1z5?M^pNWnv|FJQv!3FG&9NS)-r%Xo< z?B8$H@z%6*Qsv0p_7iugMZ70lQ|j{d{cs z5>1+#UGnqhJ~~d>t9uG&XJ)QX7B93Hx~9*bI2c_oJKt^+&M@GyFfmlT(3AS^MLBPr z=Ld2+*|Hedo@E}^*cWLqHV3g{?<%j6ZzrG}qd3+ecYcf7(bz&O6nMmmz`%5+sF zYj=o(tMj_q$&;I?n1rri-wMsS&yQ_sAC$}JRdsn4xHp2IkMG{fisx1;s?%rA41_6h zicBcjbq$${N9RvhvMr$&KIL*ht>NWDdvA+Ec?9ZT{i56V>M&086Y_H{7b|bQ#1SoE zpUqic>GPx0GxiG#qF!5DC}m_~(llK!@>%yrts*Vosh=>p>>D4yOEHwQ{M8M9}))V z_HDBV1lGHV{V2iE&3pbSX^ic7-IK$Ccwgmxj9a#BxpnJShGm-&t|$t<<=C-f*s0qx z(xc~qXfCR%9y2o9RqU})X_l3V4RhwqnMJ^gYhPbS+28cU9uCsZC#qaUh5bPJ7FrHz z1sxq$G4qBiKkA|?HClaEM-3}|#nE_f-P*{<$Jd^186hG`wmeF)-1^zI$Bi<>^$7~c z;LoOn7fDGEQOa>{-GF>jiu616fd^|Ngek|!OL>$+?56sTk!%Xb#oZSs#`RX8qc{2j zUQSO><0sj~0_0YIUrac%y1JUFB~bKdB=!67F!_ABZK2D!q{H{kabELL)1DCp&7(w> z#Repx>h0SsS+gh)mAEC$;#SP)v!!cu>5BK8Gfk9;{$XK}6861Bhk=ptQ+0J2R={i7 zg{Nt}$m+DQ@pH|)6Fc}XF~`m2I}QhtS)%T^&3xjGN!>6{N+~LOit{P$GIsS*>1>0H zmcUL{ajR-SI=NE-)2Ot2czGRhJtd0+R1>A^-bv;R^shSEy&e>nl^x~uoI18JaCZK3 z$hki~9+O8NJa|A_)<0@*Z~x-uOIESF1|H*wU#i5>wl6e%0XUs#xzm$z!MIOU4z?2r2V z!4R3Qz|>YBS{Bh;PoJ{$gncV=bHwdAhrjHOo!g)^K{l3^n_9p~)W5~0B~?|`_gJj` z`}fBK!&lndE@yvhpl?yIo;Po;S5;S6XI?%hX_(jj)-*8eJLf?o(%rjvzkmOp;V^Ut zhvNF^o7_e8t6vW9kA7Dp%4*G0%9}x#1W*K4O>$o4NTa8lftB6nJIoL8@fi=*gzwq6 z&sa2yKy<;`yL=W3ds(u)<|lg_`O}MT)|(AR+m>J{ZUD|RpPs-)d#^9|vWeZ;DX3GP zqLEtt>C@%8k=7sL4?lkFL<4*=i?<=2-&MRfnXjJ6r*FpsOaB6>MnCrZTRj^^p1Z_V$nU6ghnDR=Gl zstV&#s;;l!%gy~^aY8{+(Ou86j&WGQH!DrQusKD8f5DjNsAEYCzl20v520(($l5u%cY7NR=`)d zfuQQ@l+h>yf`d(o(!4YacJ<-k;Z#?46zin90i_EwIS?a+EVR(6AYWk}d3Q@%q37^oVkkEY#rAtW>u+v`Z> z4^wOxPVM^zjRzWN{DC@MjTqECw#2LiDbHB#4$u=0{_GcW8L ztXfmTMP>{5LS#bYXOtbx&9b6^VcCYe(bNj`uK#{%SjZrC^GV8^wbunw_fSb6Mnouq z2Lh%Xt_fwAGG37dksG{8(CfwdPFu2NQ5Oxti@XDO8M+vPD!k>1mw=|BC_q^R$yNI!|anLzNom?C1J^5q>u9FRc!X*LqW@6F|!!$b;gP8jr zHk2$+6lxc{A4cQ+=uanRR>%A{D=V1H06aICOt9TBkcVZ&4kg$`(E$wP^tp3~L%Qug z(o{Br(ajYw1_BLAWyVR`-%L;nRRcwcTVF9JN)P(W`0s#}xzV=9Jbf7yYSeJ%th?Bb zl_0E$00qS-^+Ua`TY!JNp@{v*;};4*O2A9Pip! zcH^~v;o}biFzrvB|E3fh`O$og6%4_>`-1+ z_2sSU*@&p?5uzURR-svCao&G^@s(Om6gd4lj@l1x0l>xYHY3rqsc%eC>5=u@=0Ipnp zBvWwQdbHE8=G!=3BK89cgOR74)z?bZzw4Zk_P@gyFLW{pt<7bCZDx181iioN! zrlu@e^<5?#?8eu<7yBtA>fdxPD<-oOx17~hBgrtI+4j#5OAfm0BW>I~JgMP7dx||= z6X!0Fg`T~wjv^|8lMPJZ!!l|n^EGI^BP*$G%bgKVm%q^6Nkv75ZQG7&YqOY|npSeW zrS+qv6aUjU-kEz*N5_KQkN=C0v||YU(+DklO*J*+pzd?~7zK56oTMhsm0r@7x>?W? zr@^a)&Ua-`V|UweF4Xm?s3?Ggi{MvkY7gwq4WK*ZqlNGtQT)5-SuD?wS2l*6|0t5x zc||n8j?q-}{kbbyGM zcfzf|WT1vlwNJEi-1onIy9vZ~exm!VqT(HTg>0*i2WXG>D~tBIO4q9(MZWi=dt{<{r zM%3(YIL3|3l~J^MC zO4#;TJ(AJ;wf04-Ddy?ZI&7#TY3Ifznf$zF!aX=_|2+6sL*FvAMxD~2YSmj3103)~ z!q(t`Il(3-y%%I~CM&REfav<6+JG+G{itJETWa)SK;em#^U~wwbr3n@RD1YxR)fAVwyOl3f!<0yx>oQR77F6P zE$9m`&&P~3KTCZ1vOq7azNSX>{7i_upw7F4AzYGnWs59hlkY_i+S|n)`QaTd1_BOB z5J4kg@jN-XddMPeR^$7(K3V>8$SFdjSMy7UzYVNtTXp3%{oH6R&SvN}7j8eM_Ge*I zWqob6JJ52Eh)7f3hw;eEmts1)H0(Y7-}mJEtu8xbKd>IU+SlA;6sJ0Tbpd_iORA=D znVh5jpWnZp9`SgLDi{_KVczvsm|KlYO4zZ#2b$2*aOJngM!97HD1)NL0gw+Pm^bJx z7viFhpEwcRTYPs*yt_#K&{Ru$%N#8JoiuyerMYo3n}N}!-pnaH+$lb`JG|2(TGU;>#pn3p>1BaDq9?iFl@$&1|=L- ztIC|tD6IV@U)+%tkL|B;@?;pK-piMFQ|%P!15b6zPxeL&z4Th^@`@Z(&B5W3GI{v?`*oC;O0(2(3<&3C;$2RNh$*8 zb-8C<`?3$TTf6AG2)ZxV-o1MT3`@Eq=e}fHYL>-r)X%YENlZ*6lxH^EqA;u>WD_@V z?Q!8dRMBgMjD>$l%PD&b_5cW!c}uctr1HK?X?njz!M&`TpyqQQJ{*n(&9Uk@-do}& z5~cjwuryXhZfT>h;p&K{kl174eLOrL^9HughjhCg2>$%}LMR)veh3aW+o+xoxH5Dt z<{Q2yu0!9%uT*b?Msgmcz1MS=1_nVAlqGCgz0CK&6Mz5u;tx_25#`-l++6H3uES#l z5tUuu`zfd~OBILZ2kCU(A95Gt^YS7)vdqct01{@)8C6L0+9S`NJ*zZoU&?W(4=b4H zcI|!RaOaYhl>k6&uE+G=xyjzRq1uRxmo8Njf&wzUjUYfu3Bl>`#;Nd?tmV0qJOiz3QtF_SAnwrnLsJx52%@2Gc3P8#cM;Cl$ zaW-zf4)3k(Ps<@`KXA*Q@*Z#NxO@y_ORvxRkzc=lVUxe83El^s7b-imIlX9RE5XkO zKrDWbw4&N>78Mn3$9@4k@;xHNBJGqsd-3}CneUs0+J@%Mdw%RkLp-gbQgy|l+xA00 z-uyBI#*GvdGv6%J=~-Crc38P+uXnn2NYUHwZxYlzdFj&Q%!bE>x;FW@mAJfG7K;H5 zsaX#Npd;D!m67c`_vA|57?}s}{O1#NEPjLjobCYx){Ty?Wis@94_OpFUgGO$(7k&D z=JLxdMuz-jpkq>8J}V;m`S~jlF?fM7AlaA<21eTyd>Xpf4=X_hf&jWBv4h()-a@^^ zUP_oHU#|OI#pUxf!oYnCc&N-|(MPx&H>h$Kd#(=#w?5h737mFDtctzPOssTu+&0y# zusIPbLm1jVh>E1wpF``j^6Mu+e4ydkMKxWDMj>&7)!;T9u*0FS^QinEb;G>eqO zo>a|r7oX}KZSlv*(TPl7Gk(pn){W3!>#^G?6ieu)_y7+fnz>ALZMk03+zlQC@_q^* zolV?o7X;;>Kd++rd}?T*7`yRe*?N_m+d0aFG%=$U4*=*1^5DuyP~%@ZeYN;Opfi7+Z|13G&gVMK^j|VQ4WFw zWEr-eOIWuoNI?*8gP7yN6>wMGi;p>5JE~Bt^Tv`-$`Q_&Los|j+1Wa=qPefS5GyaJ zseSk}Hwxvy_-wIFcR|>L2WqcgORt(=x$;8f*e|R|(eLK7Sj6e(v%*sHZvw&o#caAH z3FV}ww)XVdv$K-#`NYK^_pZ(79+pctxXb>2sGw`Du9N-t;0NmnA${42Lg!BF+)R%J zn=@z6F0D@b5Ilg`7O|iXFPdY{aYsCd+T;ud1x^e?L-=sNV5E8Mi1q$+?OV2G6&Nz^ z*g@%cFpFl&$m#OBE-|vQ!VN3>fL&Rh+v{zqck)n_GPwI+fBjlS3Z)o+3ZXl}?&)7y zn)US(tMQn~PiiJ*qTQ^(s^Xd~nxzHnhSGu^14$ar0IQ#{5-%GYTP^Y0MQ*cbCHI@$ zHf`K^(5~-jWhj@A_T66q%TEqlD&pXddzINc44xON5z)eYAc1_Rml?yq7zB zXR74a=%j;I1Ok^#lcih24x-1Rejrwha=T&*Dce;@aTS$PgYT7?SVmvJci-qhQl{g%>5P zQVuVg8i6Lh1?};QfTdjjRF@GIimX zuePYHp0O_2Ieip-6@8N%Pz8D!A@QRuF+*gqEt;kO)7pN63twZ5$hgy@VPSM^t7b?Fd*_*`Q%B398anbZ=&{-vMr5df#kDa-u-mDb5Bh?O4o4iJC~lUzIg&EI zR(CN39-Y2Z>6Q%P-D03TxD%DQ(J*)Y?O$WTgV-d}zA@G-D8G93N<72ouENN3NcwQ3 zPJn>R8foy%F02SG5SF7kVVS? zTiI;#-kb7lHH2`o)bG!A6&*f2*Sqx&v@JAu%64;pDcj~us8Npvv^TWd{+e;>d?>uU zwmd0?)&j9O^_@+O45}GK83mvUw0P(%1y&{d9P-)4w6`-=&-G#RLecsR$PPAh5IXq>49*!~@@#mVEv zBwCMi_yGAU8kk5#Tb-J+)5)=NYx3^UcK*|dGJ}%}202~eL*c=02VWjVki!w zBktAo*FPF(W}wuRm8cFSK34oxUq6IG0k}Y93EoO&2jqgBA>R;Iup5=lJkD!pbiE?> z5`jvwn&2u~#uZzER<_X4486(iafo^*%$yL(*TEYxm=HxV~40;B(AzZrB z9LeDVtU@Rl!~S=xcf43Us-Q4Z05Af(m)rRS955(ZjRg3qsHho_+f0lX)oL}6X?92t8;BYY|+?6_;GlQyM=_(zD1keMf&5^YCQ3B2V!Jg zU&0HVsKCEa3q{I76n=UPZQ$#MLJR!AEBmbYY2!2fP|F*!$|ACCk{{?U9%5nek zV?`aECm#02FLE+2%IL-aFTa=m?l9oYHmrX&E)@4I<4222gwpu1$H=VtCBxpr9@kYh z!(Iu!&V{u9{~4nC-r}Qa9MSbZW^BFGRaN`(pG23uqt=&`T=L>ma){tfsiwxh0siew z2;~fK&OemhJ#>-ntDgQ<85MiKBvI_kSJ97trk!|w$+DQMPI`lGYU_y03vbnbKDk}y zU$3$*)$oe-#XVs)y$fPYGD_7I|G9>dGo1$>BOf)bf5xe8H{|Jds~q;qX(ZxlqxzUnrSn!SU906>Ha}mOF=C1v}4Y z-omMyJ9c+M8g6u5WU+=JWezwA3I2Z}$1B4YTBc;dG5jw1?Zb4s3CTh<3YI1`*3072 znH^U61B;(Jy_mErMyYG@?_`UQ{RS%UJPR9D{)^NJV1%-L-P29g%?B42pMVf{wQ zy1kt)%$<`3Q7~_3NZas8O17`w4+v;EhUy8Zp#~-Ct>Qk_T#at)!fTo!7DmQN2 zsEZWwgO1*vXamO|h~T+uf}+s+ZGZo^ZYGV^ES)#XPbHfIC~Znt zT?h-2phlEjo_%U<`pyHaNb`-}Fmv*F2HvO~EnZ)&g^sWvqAyzWrPNmDr|x1$^#Pp; zWf}32E~hW&6qjJE)DBbx<}dVk5Rm~R6~2Y>&ImA-rsUzfxpQ5JwS}Va!-qTpL7WU= zTo!>5rD-U;8quA%(FGdrOZ_b|JvI3lTb4;WPjj zyAB?_4`_V5L=h9FF(U!8z z8=KSgWjNiw)1$L*ISMJ95G;UDUc!O!J(8z|cLA=0)=7`F27n^7m>D$)aNf=y!e-VYqTw1B~DJjpePbfK*62@N^0glwMItU(R>-ZJ`(8g;Rju`L?8^_ z7hwj%)F&eVGnfTsJ7qbqO01K2wX-0EW`qK=U*dd0X5PvIi;sZU@EKQkW{Z_MQ))z1)M;qDL3pFn9~NjI4v>mXbU=y!ktrx77q2LqOZ z*DPH8TP^(k9W1@urPORiu?&b0W_voJjw;V?x^Z?^h5tUHlTab}KH<>+UoJfV-%tnXZ!t#Gwa>TtuFL zMfA#ML~R~Tzwf~zCN3YQ&QpIb@Am5rKvyEx-wyFS+s46BkD3E%BMDZI;t~Ir7IkD_ zY69qaf{q<3`;WzX;J^XMB(=Zjxw#zttSS;)bX8vpti?C@zs^ zs*=t2Gfogeo**6o){|q^hcl}ah|3@ zQ0*WXksk!wgE&_Ky(mcT&qEctXHYT_Tw%+4i)~sDlUNIN8zS@}o38fj21F@T`=YgB zY_%F0rYK2!Zrtq&f0~}Jj#>!j5jq)y3D0qSSAMDZIHV7J=*&}0dqXI;lRD>097|rJ zUuW39(~0|urEc4&l=da8Ykqdtaj7kAD$VwjP25>03Cpk4AR9QBL|_u+lF$>0Qw6z= z1YnH&z*V|fA*?6&IrfML0~c2#ik==rH|#^#sKaduN_3Bf^mR-bF2k)~TwWG)|9v%L zrf{NwP@W>*qetp_g}gt0jxw1RzSbaOj*MU!gcEBj?yRg#O{g+h06G%!-6x0cLOi?$ zg+Cncd|kisA^J!rWXzY!Q6G>^17Ep9M3Z!Lg5u-jQ$@w%(=6dZKqjy)U487m`lktu zxJ+)j-Z&G&pDpe!q}94p4&*oq2VKUrh?gOjUb{OU1zJH!`0;i4xj&KBLPRhNJq8QA zUqGPTICC32yE0@?B*lI_*0r%uzm%AQ;*rB%`#sO6H)Xka7RY6HX%(7Sjf}k9TN7LXBJpKB;i+YXohU;^NL1Sf6tHH1v&IWqq8A}`StDk+bIIW4wX!Rve zsL#Z7Sc%ImkBJch4^|1AI>Yrpn$oTlR_t8Jp`iLYx^E=nwcuNiw=nJl)j?mhE=n6d z4X2xknGkZX+thnX+;+l4Gp*TfRu|ddT9-bm4;(;9oM#^kTplRD`_7{Eo{)Y4A|Xe? zy~#Y3N%L#H`sh8-d=)t;|FcmCK<2;0!9YFeUA<3bJ1WI?*kU_Dp^!f$>K}3sQIKY$ z@ltu3&i1c}-C9X!WiOnf)R4#2!sy;RSKI2*>lR3nuUGE$`j%=OLyug<&k*obVV@-` zqH`0mNAwdY1Xe~mJJ3*a4sN{qgSscdmIi$<}~!v716IHukYo~ak~H9P3SDBlqjHxw}iqKz84r6 z{&Q_zF_`rvRBpm+g7JjLm;s3xIhFeIyNtnWJs0)1ZQF({QJlzf=P~;m0RfWg5|6J# zsrdy>8M{`j2Gxs1NHljtLVlzbPRtY-7#MH@JqcObQ*PWi1>flj@v5jifk+zirV*eP zEL~5iS=!9AjTZ}%qw@yII-FG{WOzvk{t@X_V*o?~cf!O#7vw}fDkznS7H$Xp%`Xs@ zn!kL}4{_rc6@35)Fiq{gNv75!5FFx-vw56PfbpyWONq0Gc+^2KY(9w~JyanY)i_??t zJ;zVf+TQgw*96X^*RMxgo9 zFbv*Ii}*NV))Sce~DRp(2-T-KYZSBH;6L^=@}vqFv;MLL1A401RL#UT2u zoAUw8qvU&QNIYH~%W5R3K&=lEBO_bhG^J_amZ&p_HLu6Ml=AxXZk2Au2VJ?$BD)zt zFyVDkQPToOVG_`J7eF*qRCOX=hv*veN*j$n z#~(v1@D4s2q2+mc$|kAAnPERYiii+H!OS&(6Z`Ch|65#>Sz~NHLPH4Qpz_^@q}PNX z161&#HPFQTdrv7}v}WR;LGL+(T@Ah4PF@+REx_Uy?5WEzpo^wHP!Yifs9A536vTE_ zLM;hCmss@1JgXxQF);922rcv(3#PNfjl;nbJw{{gnZ%q0?2y^HHbcVEQTK2Q9#uso z8<{I&1i^4+fQhi+u-$6H`BBK6Cc0R%I_eFpU+4C|}C>*EY( zud}rUm{ZbmUIDJhvHA5@_+DUu9u4XX+KiEClvbgOAUu)15W1k+QqZzjgR|-FTYDT4 zK_r(5xCo&OTj6#ULCc6c1IA(x%NG~|T5OOelPck*!rlXf`hg7y`SB+1yqHBxa^QRx z;XV;%8Mlcu;@Rtaje84_pfo_0T3RSwuSe#Lw9IOX_R@!3DcP8%Wy#7+ZPEJLGSN40 zQ!ydS2IX!CL^M(0bZ74x3(PARkF>lh0trIQwXyvvpPXDQZ|wCC?eET@)6fieXfln; z#(??}G6)N4adY^d+l8brxN z0*%6`x7wjRfIh-&nr%B1PHCtG!&$v8NNy^}NQcApoBco~Oqy?dj7%3)KK*MvSNuoH z4-aVnH%5CZ=1Qj4enG(@V0<&|Pe`J-035=eJgGq;K&ndq;!9<+u`NG|jX&zGh2cXJo2RgCr4o$-lIBq&w;fO?`!d&uy+%Q#;p&138YDn&}2G zRS0*M$k4+b`)Ysu)=sZA79OW$KM>;-9Cn|hKrkF{7Sh_umfBYxD$Foe7r9t zUliX8ZFa{D^bRTuIewg%cvsz9_1uxI8w^-<=J9lw#gIzKDJ1e z>A)0f(&9*JdZfIM9Fa_@>Hn|EfZd%+!{?>;t=Y`ND`>FhFe0GIR6XW_KYCH*RSV!*zZMSe(f-?YyH<^c>T2)MdPDsN@ytr2?hjL zMFEBC4DjCN*my*!HXoxgD#YI*rT}t#tusf^waebWwr&oUH^Zt!l)x@Hnr9JBugCT! z7~Qqrz^?&cn#!O#U7FA0>*Sv#&XjBReg z_1q?ziJQ)L=}4)OA+n%*%{d53St5c3XYvy!;PgYJ5Jchd1x~L`Tmcptz|J*CeGF&l z21pP>D4&QnAbgt7K6|HeUqQMO*OAC7w29z~!P?qd{60zuQl$Cy-J@dJA2(T0$>8^p zoU317vtT_Dxx&Fk%@r}5rP#QU+3!oip`$xq(N=6aoG@$pk5HO+vNK9~Uj>64GSUB^ zjFef7K9ozo0bKwFq4`wbdx++5O{!?u{WGIpQJ_)eupNoXA8bEcLTx%LT&#ZJ#vV{X zZ46%}B;+GxOO$iu`<`QStRMnRbP$Lz^o)$;M^Wi8glLBLim>~ABHb|e`ci6DA~VOZ z%tHNx7*lg|Mg|78SGJ*0HVz$ngt3u`8Hj&K@UmfMq7f|+$n30nzx19%hqh<1+K_J8NJ+`KefxLOqpf}Fo?!zw zpENDKB~)k?Yc0pN=i}_BttuFtbzNMktnJT1!|p zK*b1)B&Zc5i2{;ViGemfhOa<5B%#=!LIMJZDi2M-oIij+dCQ|(5#s@1CWzllwZ6t! z*XVs5jSU+%Y^J3J?XAljikG9g%0X2Rf?GF!YW4X)`gvKt;L6Ghv}JVbZGSBr4K;On zZ*MR2(|e1o|6_+rF?8SCJCcLKjS#>RV!4D5oq6jQWDdUyW3sX3C}dO)TD2eK`9w3n zw*mrOErg)<9P4P2R5l}Y4WX><$gsYL6d?s6Q}u_{|0K!*tir0i+-ka*>qC?abD&dj zUolF^2u`PrUMpokuyOS38xx=*#kd^sVIs8a7@6b_YDJ6`Do2UlhDw68#wVDZS_t+4 zS2J}Vd|OmhRI~P_v9WO|Grf486|t!SG$NN24KG60N7I1OZE|ol??}E}_wzC4qPB&( zbFKd+#B-xhvua{ zan$k8G)f23x0pv`QZ!cFa%i)*FM=86HPgDM#H8s%R~DqHj~s zu;wuZ!ZyUjUL~%I$lILSv%I{FIP1!t^pZdKK!Y7I(C`4v9!;lUX_d}Q?sf&?` z03#%Z5lvijmS0+sk2rKLeML7-TMh&L|02Rc|9j>Gtq5(I)6&fVM&b3;FV zFyMSY(4yE(P5lB&60};<{3;y~(uG$(j_IyI-0;P(b{AyVHebM$ckamA=YKvoRA zRyQ=bxLHBNMV2)$kbnRF0E{6Zy%Q`QQY>>R-QXP39^pUdPhxF3&8=FK-djO|)n>oECQ&v4XcdwHdRh5stfT@Q)!@)FlL19@?3rdIe1riRMo z&e~z4jCJKd1QYrKkqxQh4(uGLZW3m^8(!JaCCb{FQVmYCM= zL`Lrukv~cL1}jAoHWT)b8RR#iT0T=VGlxIFuMuKuSxL)9*fr>cL(sThz3m}*EMiZK zoxN+w^B)OvxBU8gH?k)<#0jraQWsg`v1^GDx7P;6Par5U4HABX(Xr&CzY4fk5R7>aa3HMO*>rHv%LgP!}X^CbbOjUfcDuyH9+Ht$V8Xv1ol7Oc9YxC+qbWsr z!ypcs#}F?wyjR^z*8W(=ULV*p_~ALKR*1|**%i@g3^8n&Kj)3@RtE`s%hs*WZF@_I z8*N(qm>$~~%G|hc!OjE3;?bFn@>fypf<$DaG{W@nu41yJsxoTvx{yMavIx8Euw$m< zExrFNU0T{ZV(Ewo9Zak+lssQ_d6ppvGlUt`g<%d7@(VZ^akq%44{V~^nPK$)Cf_JwB|u%pqdLqt%$rtndW?x6%u!VVLsx{*8=;01 zALQmHDzJYd<~bbaQ_?)cm;L@f#7NS?T5_kBtKQ|bMn4@T-Ij&P1enf$Sg0yf7 zpJ3y_db!`2;NblAGdw)OiRH2gy;MLs-mzoIyZUw#;ih0@`vkguYWDWi&WMy=Q*_lI z`01OjpftwMuIZRouEAmWFDyA~y?gF9f!(B@|AXDuLyKiX15czrGIzqVu^#a)~qN_b`hk7h?ZBoxX&VTe$;@mmC!fQgBwTbUi?-)pIJACoL z=?(TwCpT)FMGh@cmO4gCg-BA9Q#%?oR+(^?4?8wQNyT01nQR>PY*@+|uV!&C=5#MM z(D4lP_4U>9>M2xApl4F$;hx#vT=>A#%j;R&==fJbJHRC_?5O4eU7Wa6flptyT0o7U zx|Z1~5(ruEKVKGQ>U`mn)q+BoM`xCVUh2(tIj3CwASO99FL1t7 zUN%2QhMvA@y!x6WOcseR*S3II)KQ5qdTu2VzrOgP4nw!|2e;_hqEq)du1Bfemd#G zc?E?%N)8QF7RQ9gIx#RW{bLyG5@^uO8xWIL!T|OUHrP`vCqj!;2C=l_q<9eI+LjO-Xi;3cL{W! z*u8u9U~P{DE$3wR>TdB{1Ym!_I$1gU!>!QIx`dZwY<^)OH@a2Oil3Kww;Q}%5j#JH zoR(qZ3qP}R`~n~U*R$cBT>AhkXE(G3IGUaBd|Y!;)&JauRQ@ksKQ!y#~#?72+r>FPg9ro`KyZ^oJ>Y?KaO#zLq zk2<;b(9^5#{jo`1jKc4|P5dpl9rR(tO~0I6Lixi!>g%CQlDgK%j8&@eiQ69Cui7FN zGj5{XVsZEoD@}_iw_jr|7>9D_ZH5ey-rZK~mbQCkTu6(PhI8t0AuzZxAR zC0~CWHm<=J|0gSy;A-G}JJIRxTuR+h8?4BK=1)w|4I+nn6_H({#CO3l6ZeoAcA3Pp z7kd2N$POR+V4`Q`$fr5Om(>x3*r73`Dzx^H8;;Eoj^mMhU8V&+iO^G zfL^tD7RH|B!%khwe6oPvDg@X6y?IU3RZP=kthpNA3c2N2Tryb3YR#> zvTUw73mW<7z%AT*djrxw16(g#byjab^j=?e1r1d2Tr7>p!6U-u$o+jT_3@vtl_ zAddw@Dq|t+*zS3a{BDnJ^kJ^X21jYmK_}dPuckvT?Yjn!12VUW&Id{Ee*g8;L*8jD z01pPviIH%?czXyHh-1>m`K(D{RVn|nHukB+20@^p!YKbiA-z0bh@|~K>&sl|I{~12 zpThVx%zF{XGlGSl2hH$vuB{<*wnm@>?YXvGgtTJsf-RD?&CICgvafF6=qOdZ@qNSd ze{H!3wAZP~I~_RscG|^vKGf=XCdkk4hXeiT%1y-t`vcW%)D+MacOdh43Xhgb)djC< zh&>XBv;xn*eH5gF@HsL6P6Z+Mn6WYUlS9{xb3=JFiYZa6bPo#0v*PI{w^2L|TR)}3 zM)1dze|GWnQ$ag#wrGMxi;bQMW@G=O8Bq`sJlFt`iWPP`$rmcdb6_%J+_)m74P!yX zxE`U_Ks4M=>qce1P~X^C1#6`VaYaxF)h?gv`@5MXY}g@wh+O`#G4p9aHDf!iLoME) zjI_A8cJ29_b_ z9DMKThB`}g5DykWAcz@HRbrE{DTiiahdDaP_yf~b-I+$)W!~XJ_dPuAsTei>Mz=vH z&u%xo3XCKz>QX#Yc`A7WA#VHoy2N9OtUBIqLY{+|+tiQwd$|tF)=^cnu~1Xk-^d#I zp@E`9tP0_;~V%W;%jSarts8*Z_arW(7j1J#2Rgr zq?co*ows72VYHLJmJ|=rL(Fmz4$ci5?ioqG@U6bGW)4)3YVK8p-FA$iij`p}P9&1gpD%HH4u_{?rDsIu-*4+sOKk;8_QxFb94#-ss`F-YH3!y628aFq zNqSR7ZawPDHuW1!`;d8(^q3bwnED13RcaEE%^~(Pp1M*6flve%DP(KRERX}+GQ?FZ z!P@PEwTnBqE7t7?%XB0jxbP8fAUo}I=}-;+#+P(3I~09PG?q6TVeHvvSE*&jd= zp=HY0gI@dmj>=>5Zfu^LXA%ipmx$&eX-gs*c+F|}2adJF|K&oD0N1{v*@M3O&Hg4MB=D;a z!c31{BiTw z1u<{m=;jVUk0YKrkf`ATGhGB3AfyzxLrtItP{R-u!HJL@paIow)>mjK`FGpqKhe~v zg8gm(t9dV>pTHg5M1o7f%D7Lt4Dl&{Jldk&dJ;OowJ$HpNZzY+nt1388LTow_V0EH zk<6OJ@YxNBSN%xCyvMpD?n#8(2+IxhELF4(Z2~v(9B$&#in<;IZ@2{oY4FIbDyWi# zdP(?wc)PsutYwU!JZrT`tRPvGJm8ag7tZl^Ni!uLhR36P)K6Cw2Zw|Pll@KQ?j@ghP8yqH9 z9rt$-NlZu#3TSwca>imWvM@3E!&K@=@=L+ZE&rp^Dl;`j()=b8`aR4r$fU#E-|>O07Vz1j?X4KHkLNtc)ojFa+y;>p(W#>@Ge`;?xGrP?8cj|7I+3< z+`FyVMI>K-%`~DCM9O(d6Ei>9XYJNZ3=A9m-uogMV9%wCBXWM6eSWQzzi%gTCea57s~fq zPe08xQ|msyS!^Io>p&G~o}$jTKm3e>l9EhudWG?O_*-{C_xli^W6V8*o{4F@gWfCG zGvOfPMuy@>Vql#Ph6t=6W}rr;D_8cw4w{DGb{sW9NQjnHK5UKtzyxoCXeF3zCn8T! z9}@ENm;v`bV#iKlOe3Jt!zDa_enP?7AN6`#9!D?Jeuc|DpJ1D#C_H1bPGq(K)f#qj}I}1ihg~u-@hr(-h{vz zNZGsxDCq|cLHkUASlN!5A_!1Tmt%7hwfgLUcSR#=uLNF;22?|qV=2R zEA;_X@=73Le>@QK84OS~q$&{nZLF;K!1cAd9{;;G%2fbBe&aUwBd z>n3FGyqStsyyhD3tFSn(*|lJ3W`tLR!aX%N2Q+s>=Z%X8rJ%e#7bq}tB+V)AyerZ7 zM|%?mb53r`Ik7kAenxw}AF5j9)b!zZ84wr`4-g3t(0V z<8;z7wCDp6q(H8n#h3Bft1o`qD{Lo`(6l+;n1)s=nJ>NBBKvbYwToCf@oBkjD{t7) zJ^$bN``G8L9HQZ8HU%q^qnx|cpg~obE8%O2oCkHyo|^Z#M(z2kc9+yC*i zYzaw4TNIi|gN7s}8AYO@iAZ}VBOwiyq>PG^C@CfF(q2Y{QrgR`R8|tc&m*q;zCYvl z`~LIw_&n~<^|&s*JKyK|I$y8jc&?+oNh{h5<&3lFg@WSNlWZ)1dUpLCroHh0DtGhMxB7n*)dll@>PU=$ZF+JFB0$cTT;a*Nj-4jD-C$sNBM9L!9QZ2XTcUJ?Cg z?5Snf(CB%r__Tkm>*|io$qyw(DEJ)*~NEw)Go z$_1b6l}bAzc1~M!X(v6eFn+XWC#GiD_dE-WaDQ}i=B2^*KL7C_l9F-cF*7q`xOk@b zlvVqIDseivM26)F`QYz~_?C->)?{hg!D|s~ zJfclEN@KWKkfCe-^G9xfblv9hf3KmTKZ|$t+VhYBWfy%-4SgQEp}dEDT&9d;T&ayS zBb4K$_(g3(9{BsW1b7`ksJy`b1&>yGjoy5$=9w8yEge>c>J~*)?>efUS*xM{l0Kkd zL2>>0r%UAsy7ID6(jPvbWj?H_;TB9kFN&Y9ltA5t>=6Jw@;PiR>Lwgr!P}DV{a9Kq zTqz`SONYJ*yIgVZb}z40O!5Ae8*O?{_3I|7Hv87_anvtd<-Twzyl3m?LW!J>7UqE7i7$;-p=(o8`S)!Tk6=9U#Onp{@Xmq`*%-9v z1Dcd)B8HaZ-_7%F-06!29C|V4rn<6M=KT2_j(WKhCFUM$O>?H|Xz1@0UtvlQ>Cc~Q zlLKY*RHizt7aKktouH=ShL)p#B7Ql3sB_37EA+)2%UM>lIqE0Ta&g}upez)wAaYCM z5nG}dedol~i1X*w;u3ewF!VG`F`046|NWMjS*}-=z2<-@tAN$}1UPW*dZ z9Wybui*1#H0uOqU(_3z4wC99?Up;_FIL|}W0ku~NN{lquciZxZ!IaK~1;BkT#PlXJ z7{tXW!Febhc@<48fl<)2LzV3dogtz2*ju~gJ+`$z5kXHI-fF$TdD17}W-C)QIlbng z=?vVzB-92zvH(ZJ=F2NfpymjLeoOtZSdRXVDwpyIl(J9CJY{A<5CiP6>tTJ+SC2rh z+Rw+&Xf7n0f?8S7ZT^9Qr3*uqeQ^%%RN_7gcAnG^z`NM7eMJf(36sKg9!GLv>sjVC zyyw7jj{4)PpUnI@HU@7J8(#7QJ7T~BsO#&WAMplv2BOs$_L-=Z_mTBBy~v|d9@}AL zG#%S0&hDTJ*5u658e<5p??Y{gGkQa^{X<*%ZU9OpsAkLWqJQb6<8})`1khazE@ba`M$)h^5`Ho~qvQh|PZM=+819vwE+3_X0Q#pq42G0dgGWb{7f^SsZ2{ zZ_LoSsh+i;8T-C_Ro4UW*gy|S8(P=90 z;!X>ajYxHDa2-*kulIX=MY5$N6p56d5Twy5Xz>n`Y>7#|3WwX+yBpeLaRZ;AjsO-ei{ zODds9!J2Y`4u{Gpimod+oCfNs98B;@xKOwd=a+RleS7$m6>xOiJNRE$XS;qbos9i$ca4A)Ig^ZM1yuU#IjEa(6rP@(dz2XWy!0VyWp z#px_x;;ySAs;Yu`tjlk(DNEpy8fY|Mg3|XsA#WOXy}Iyj9uv82M`jWv(&CK z)L-FQXyLgG^@MM|29TH1alylpAPdzlE5j{gdIplyY1E0}b#wYYycaG)wxY4&aa>@i zfgIF?yP}5A!Md#jI*f=(OLPfSr%zXhM3P~kB|BBIZD`ksdEq}=fIgjOV;!`7(2Z1B z|4P9kS@UaTAw3#&w%srZltD3rOskXF$52bv~=;{-eUTF}|#`_oofd~Nl%HxpX7VaGvt?+HOw zMJz=Vk)3b^@5vA}aSLQ+IVm6<^6XOxQvA(%=b78bHUUavqpl2%NkG*Y^wglM9b#cO zV0`d}`C(?N0zg*5SRX{2MB5qMXxNn&9bLO`?_L5k%Aq>!OKnLt%A5}Cp%!rO($doM zVf3e6_%tnbb>CeE0;v-xh}<%k({3{%{}fQ-wiVlBV`CY-)08?+Cl%0pSX``NP^7ot z)T@^(zrS_uh$P%{;RYPJ!Pz~N=<;Ed8N{BgSbxd+dg^`aY9(y#X#D9@AocXQdG#nS z%3ZJ_>VQuM;TGJe;Gw-6?@9fvO7D-0%41#yu1WoT+`X@nQo{+eAl);;hwsF)35MH; zy$~`6_$qac*kiler!k~t0Eo37?axdh)ibC=EYZ}$2zh4DERkDmTpS64fMH6^mzjfo z!JEjCl2pGjhi;PdY$F-@jSQ``tRP{JFm91+2T`XKx$YD$=O18 z;vgqc`|Suh@nHy!$+iiL;u&m*w3h%?ac_QkzTa9eNgvBOdnmG?*fPBXNt(CxZtnc& zj9g!Ur0x=s8FA0w!RtiX90<`Aq-?!r?}iF*oKjW=-?n7VcVS+Rs-Z1dHgCq@r%z?j zsX8H-2={LU+l3?c%`Qr=zqir#=cwCCSjng~LaRRr1fUB>40YV5A*_vsix+FFWim0fnYW``un_H(sN?)TV*G9=J;|t25btwk%I64)N z{VLcUgPspQ7F<>!$^uq~Y683g9q?@v!hzHi%j~V28?i~h>XGtVYirwQXU(h%LfNQc zSCxzqBP;MCo{+x`AsT6Iia{B|QDF)pGy)|jrANH8uiwUlcmKh#RRfG(3cr`Gsc8r_{=!R_PQ$)Co+F(dV~#y#1a~R@@OS3}5iyXKm>2u7xbMa8 zMFzD&2;>R$1lM&hdGWPZJ3mfn1rkRLkrUD}F}GkMP7ul`Zn$koK5PN3n3E;uJ_gAV z1Jh%>#HDD&MgU9grS+4dEtbuTt=nHd$-!3cz_W=U@!j`^7)(l?i2|56@1sB1(GV<}*?;sQ%FFa@GNu$JgKc!nGx3o!BckNmh6p(%UUL9P?TL5!HBOp7t zlpK_vsvw{oWz0-$FFX$+wqns&PL=y`t>4B3 zb>s(?bGaiS&YDOJaJ7}7Z_tMwhnAJ7cjq6!P*9?6>AMoqFAeBqiMY7)Nc7_PI?spJ zNe9fi?3+YHFhgcN4n;xF4weI4K7maO;i5(=W0O?&M&22dv&C9HMkO@{ur!VXs!eiZ z|HL}HheyWrxD{6#*(tU!Hf@{t}xI*!lm(6u%V_PvrLyeqpPovWc>%z)HS|bZ^P>Y z1(7A>x$b+x3y_!+^)|y$*)n5tnUq8;_uRR{SS*lm=ZFsGu0xG-_QHkJc)^+?toQBf z!Vyu_`{~8`&rN}lGhKL7I1zZ~;b}$r+p*g-E$%mtrzs|U_I`^EtqS`?|5pha8K~TI z9~;!W+ZL;;0Y4ym_rVl};3cvgSWD&BPqeW$#-X~QJpfh$Dk`u!!T%@(2npTGBweSVL;nfE zM*r(3E|-bDoY?RA1#htxG`wUrqG}FWKa&Da4xDJ}07G*2M`iF=NO%pcv0Y!U3aT9HfNg35133-44+|tUkmHy@ zSD@qYlh6i+#OAEiuG%P|k*DSZ(|aFKY;4BsVbvq@9)efM!TAAk5<3DN8N5*buwuNk zusJDUB=W>M>Rzsdg-Z{bAT*wN{R_i@osqC94_p_Q+9SmBp>@t#r?yF>pVS2q@HYYyO8HO z%fm5~J-}|~_RQ9!aw@9bKT}T1Z{E7~!i$wA*axvMtwWeRbo2In-ZrBjr#arArN3*J zKN?n4z}Fu1+gwBKh7U#9t9C@_bEhgV1r22fuNVd0V{fipx@7oGHt){v{K*WmEHfou z?q9j(@dI7)h?zUrq}qu`JV<)7lhedCu=-OHWLdieB5m~y9v!j$TaGNK*^ICP?1pH=fSEEt7&4j=tSR35;$W*Z%Q?QRbqS;U*-ojm z0Fli!0;ItP%n?Am2(%5n!J7Pvi9sb3faDg$+B{-2*)HT1e}9=Nhu*qkPZ=RMudoRJ z>af)UZ|$+=lDq+Ugm&`O2sR7I%}|XX>k5zEP$mBP{*|mG>0Tr^ThL$I`k%k-m^J&mQhAxXbHWxUKR-S&MbJ~tNJAd25@bx!nqiFr5tPiI znNqWdm4W?1`!8?CQ%d{E)JJsDisPxwK=D2M~?wwjTPgp=10QYft zfOXmww;%VnVS`lcg;q9vErtkBlPHJr0@W9qulH`6XdGWvb%|rhFHWTO*-Tr=JTU^}kM((Z<*R&`e!+>f| z0+XRUT{Xk@3U7za2@oHQu&}V&wuLf(zUZ@(2@3)^C(k~4Jvaa$s2G8uq5puO_x)Tg zjCnmgu@aQoiAI<`S6MExe$qGy9pk;qN=g6LlPt&c)lI+lbZKg25|aB~_8%lR8CMcn z$$!e1F2sc{q|tp}@5cB#hQT}iXSMV!wX=w-ZW24Vsl`7rYnhB=@Xhkz(NfR#AY@m* zU~7KH;$XT*6j&;e4M40{Mi(3KVbk<^kabo9{Lj|?Y+Blv<3TTAhwR|p>d*J3LeJJ2 zptHu6GQPjhd;G>WOI&jnb=`96s&j>VVtJOZNG|Ym8x>6=t4@j=w5BwOMJqh1bXF`X6)XV>rVW(-nDCvgZy( zW?2SqI@K@xaqjd<=Qk#_ZjGDps8)u< zi66^QUJuBUGq{eeAZowim`Zf*gpFBM3_EfQR%`aXSi1cNnmL@k+D5&(jd7y4I7?HSvO?v;+J5!T`0qMHP)kUAC`CmP77=j@$0TVg zFcvDU*&cFv6u@^SCitM&K<18~k?mrrYbX;PMwywY-*M&=egb+ptGTubbzjOwp4l~9 zH+L0+^oDC4m|q~ZYG7H>7-^yAaA^8Qk}0B~QHG=8hyx}&h59ybZgHK)})L) z%Ib%{hd>l9L9dCB0N(GuPfNzNSwPIC@NKzaKUH+XM#D|4|OmP)lPtkSr`;&e;YerKo0p&OU|m88fS!}=?GGlphAm71@cN=Psg>S1!YQ@~A`1##c#4oE`jx2I%Ao3` z`XR7c5CttvPZ}s2aclelcw;Jq5NHqpq&AtMi?PH>n1^yd{@Cwd)b-<`klaaR@!}~c z&3s*X=n*#!;}L@#)(%p>Qu-{-AZM{nB4l5X1efo0<90`LE<_C;J{}R_82nw zdI;G(Y$-;WtPF7R$tZR!fSfHqGV02x0h49Sp$S5HH3!3i@KxZ2nrQdxUI|dva_h6u zZ#MBe z%flO#>3s(e^sVb^AZ3AjYYF|seQ?*Aq5w-MDs0S;;dmJRlN!%Wrh_o5&ca7j0o?`l zR)={kqzoFD*W_*=`+BmVLg1?34SkH@KDxAZHaTtV7>yK#ON|Z~uas z&J(yocL#)qYJuW8quDLheq{Xp?Tx&>9|Asd-_`+=BxP37&#!#6x{#x#JXFrfh+hd) zKs*x+;u8R_X`*+a-~)j3fOa~OvhG)JQvs_fwXD!}pm3f?AUm|6z%3{}X{AFOKh&`m z=oNi|paxy-gl235;;YSm4f70nbaL;t4q;;uBt7yrJ`{QZ*j;C--F)5&;FtVA7?WwJ zJY2ny@xkN{0+d&+ntwsYOcVHlWA6hl=m;qqj$}!Ft7~ezq#kIvm1R9QjtP-r5LGS= z4uXL~bMNU1t@tTSqIpBo-JyJhn(_cj@$5KG^HG=BM`6PSbz}uxhw=faGwkYGc6h`Q zuDC}2`YRCM5De*xfeNWDKy8rnNcAxju+c=5IV89g*ULy#FB|d*_7eWXzq4IcV z2Vv9|Ua{g?(n$X_ueG@QFtDY;@kJv+p)Oy8y)E6obu}7^IK;DY3EjGkZM*(V^3X5$ zgL{CRurg38voeGg;U9bi5=S23z%ET8&Ga1M=mVNa zo7Al#H4p47N5_V=u-{bL-)MlGnIw>~6^XzHNF5P?gXKtOh3j!=ODZ@8z*CG5x_J^- zQe+?zEKD)jgyryy(OwCZs2oa{)1;;Y9Oo|Z3hg9H<_`4UoDV0~^7Al6QxfVIvwBB# zgbDytQY1p0v>uKr4t{<~!Eab4^wa@wG5U`_n;?JzISs+kfdn+K3KlTBwi?>PWR?8n z)wpSlzR6r~FoHNmNNSI!4e>9ut8-f0W8?0`PCyE1#4De~@94ySRtfHh%&4fin*@#K z0-guQv%%<$!~O4*0m)kKc2i{wQ&NoLfhTPO!bvck>8>K*a-hK2Lds!)#X#40`eR?u z7j%%^60*kyNB#Z-ci%1ecAu%5zHDmc4}=mL8=XW8W{&hcSn4k+`jcE6AT9imJUGa?>x^tK-#NbWl$4Eu!_;s;L!AO^}8$ zv=YmcctIq$PX%3Fg?x?xbfbaI=uv4Si;QGtc;##+qW#9-CP6xOX-0Q>_}X24o0IFW z;Xr^cem#I8#p-CByVxs-IF@8Zud)ZdfpG;PC@dOP4r#>KnZw9Pido|JoW621W0-5f z-7droG{2;)l*Ks zX;x3~JqnbTN=y3zfyIkXt^q7>%EdTuk3w8yk#X(b9XoOy zJ6S=#1MXOq;tMPZ>NbW!xuuC7mgsJnO)&?98;VoSwQG+zPWuA%9h(@9B_Ihc{368| zLP!Q{=ttKo+e5`lho{-m?~~wJ$Z>r)hkh~U7iqRsM#@$d;$JX|(M|J^TX0H!f&IeS zt1DUKTFF&ISPJ%Jg-y z?{2%zgUCEKf{QR6Vo8egTj(^#!DvjqpiSNrO5ln&z6NhHX6K&B@LCJx2f$z&LL0DH zg|Ssa#eKT8Ewua) z`gYX0$P(LeCf+E88^m&H0Ow*dedZq@P!jmK!v46S#Tq$DG%FGbUXFnVW;umy19~oopVr~W$edWqi$vQL-btP=Ln0ss0+V%0DtNmsYoJ2}R=PsDSm@K!y}7eB<4Yj@ zCngN!Ys`dJI_Q6!1$*!P1ESBly4Lz3ELu=XF+}D7dM9uiION=Hgr{F0X$N!#T|3Hp zR3OVpa*C4|;?{+ra5Hf+Dbu=Pioq-J5Atap|cX<^7@YcZz)!xop{M2v(st7z4dDZ^fQ!sS~~^yBHsF zo=cb(I-4}?pZl6P!P{n)*~L&n)wRi#4s+UsW+@LcbT@`RZt;8pzINnsfsg;d^}L}r zoX$x4DM4Elf zT$iw|6QX+eUbMZ6JLUo;>&<#s@`Ix-w+HP=At02qQB(9YtM^%U0PTWef0bI>1+Bd)YRS zSw6`nRMp8#T2I)_a@#;oaYxGI^is3v&9Wq1)zWUjU zcv6!whvM83DRa|eC~&mReBW38pioniyh9JPtvA*c@7AtaF0T})A?Z&9tay*Bw zDL#MI)Xky>P1=Kp5?7xH2?zv()~9gbeaV4At$%ofEQxVAAcObG+x!22(0x!1z2VfW zV*OH1Ch-9HnoiJ$qL!eB4F7WQ+qWugVarjUp$I2022@T`@UFJX_Mx4ijGM%IH1xe~mGU!t0jHN? zSm7)>wdNrf5u#NZ1WMHpjWhxR3%<<}9KQu!CnA*RklsR%b*Qn3%|~&75q9I`EvhRt zVsJoAFaF*Q$r7>>XW?U!M~Xi5|3XiQYLS@o+#TLouF3l1v?0MANOUkj8PYvqg(6T# zmtT!Ss>%8%suKxM=IdU-70WOvnJPa7A5u8<;D4&ezma|orP|Sl>RT!70|kvi?`^5r zuJ2y8{Mn#sfV(1DPZUJv*_n`NoaYu~<$(a;L;qH0cqWe|4k;Z9CMup%SHv z_If?zLnAtIumfAaxbnap*yc~c3)xNyS%9gKQcE_9j*bo+fhS@3+W(c`P`m?iQWqou zT@~XsJYOIdtszS+0GelcHnLHVsp~}6%wf!egMtvantLZ~Yx!Zcm_#ovM3nn?UVwiWS`2a?p`SXrJLcw(q$){b zGylUMZ)mc>bSCc5I5`vXqMEHa?p(56+#mU_K{BjTolw`+HqLmyzdXcYx9d^VBarAD zr&hAtc-mR>eK;N%WPRqF#*3#@opx^-+MRPzCOc?U`D31ngVyqPz4=}jCa-#$Qg1^% zI}#)av~hQX!;J!Usk%Qco2`6l%gqV8%QHZVltPJYnQkW6)(jkw39kvD|Fo?SQ zqndWklsZ{^XJZ1~SHwzu7#kfKQA;rh5-=07$$?2kYG?Okxq_^W;4jR)j{%8mS6teZ zW|VUGa?@_mFtNj|$uL!ZcwKPHQ)Y%e+bW;_^$wuw3yO8*s*l?{aQ#cX4@!KhD{I^* z=_C7+TOf+geZ{TLa9(+Gp!xe3GS&Br+UjV)gT|9nS)a3({Z7BFm5T1rCVODNHv3O1 z%9MMqn&EljUr2RZFmRbSQZO$&Pwc#wQ*Xm1b52%h(3FtqLxpV?)(ue;qV<7>`S{6( zCuaTmh0i*~T#x?avG*Ku-zPGx@t=UUV4}(4b3n*>&uRZYve9Uf(3^xwD@s14x@;d! zld5}Y_&3{6xpvKMTO|6lV7m{(a6|2q9^eX`E*AL55qwUC+|HgrS~eR>d!x^=2}r_> zoGu`qF6F-=6>Hwlsm#q*NyO$Yov~6PB6s@ z*ji*>40TmN7f(V~jGCk<87jsA5Jd7PP{_95&-*GFJq@m4N7Aq0n-Y z-{HXZL!bpXe@ab6^WopxDgo751$<3NYdioE3dxrNBd>!-GUqYM{t$TLF?muDt}~j% z0CpFG*5yF8OfQNJnY0VgUgUWH^~Q zTal{KcI4Y`mQAgE+8%T$2;icU%*!^-~r$Q@vK&1q`J)}bM$w*$D2Am{deufMWB!0NuIpD=pkDDRx+Ua@Z0bfx6SVDsND$D#cUMw&-xqm^f;K- z8TLz$TvDCM6&X7#ST6Y_?_R zY~81EEUmsbHp6w4=XB#Jn?~cz9gWtux`EL=fB)W))=5&*edD}*8wV?g`w2|lpv!&yEAS#KBCq9+OphJi+IZg>mR@%AmrW#W0BafE$OI_PWc0GyQM zsWjW+frNwv%f*2cUp}hVRZ%$#;|)u!w^4$a42uIy+Z1yF!Z04hM%Tk7>@R;e{8q^d z46v8IcI@` z_xTtI-`UqpXGp;}clxP$6N-BzwIep}{S+W7qO%~TUTUgu->((e_KBVVftJ~G@90vF z?QeV$U&!QL#I6f-hT7q48UyD<{Yc16yDw_PV$6{N0#06ANSn>kx860iIq>-6Tls~E z{;8j-XdJ(W1;vm~RwEAVzu$6mv-%pxy2VUiU*DNu$y=va3v|qu;|^i7xq0Kw)LW%l z$@!Hw>%Q9U(IM7+e%Q9H@A-azzPScMU49$})IAX7Oh7ShvdC%%ZOQU>-##74ej1ya z0y2tNo`2|?6J|%;FVlf%8fklcg!Mr|fpSgctrZFi3Vm&be7KRw=E1W%o@z>K5u_X( z44vfBCn?-xU2MJS7!wBtbtgo_L?_~A(j>h} zLO}Iqu{=3mcKi1G>|3{PrGkJ0PO@9^hJ!(s_0QV8$u%mhsmP!(z5aD;7aai!Dp8s7uT1@ zs3J_?tpdh+ijGYX%8YAQ?4zACZP4L*c$=f1!yac0ajeSnr!EE9``(7O)m;KMw;7_z6mI4a($pe zCNvl~wq6aP5F{wJ=X4YH3Ks~$Czh8|R{R{Bh5C^TFFU98LuloyOpy-7VaSSAngWz@ z2BclY3a|M+CQAqc_Ftr4Pj72$d*-NzHY&~_nevcvys==(R$yC7he-&|ejMUh9&~Xq z7L-ED?ub1J*ory0Aw|zYVZdyZPw{RiXIOCVkstCC*OKeYHGBz_5YQVCP`%}fasZt9 zR-i(`CRgI6T*7`~FUD~Y^#%XKL^TgiZ?Gab%2ogu``rm!6)D}xUFPZKWr6>6&LK_3 zKq=lEbEdG?;CM)NMY-Ih_%puOFZ3v%>P+bb1PFmzCsquKdwhTEdqB*@E~5Nn7-?x~hC!YUrEV|NzXv@maaX7_Bkb?a=jWLn zmYIB@UCa%4oj_IaJ=o+p@ygNU*B##9ue9XAykgr{FdzIf5Gx2YE0Omr7`5o>4=|{@ zy1K$rl@ule$Y#ho*J)2vUw=Pf17-3lAk{$&WIieBu+oL_OXYI!%f}ke`UZ<0%|%GV zc#m{tz$U;IujD)db5dMa$3ZUr@z6ojJ>Mzu(fPF~hvAJ^pF@4@D_1g@U1M}NVIviU zF0VHcqlbcUG6RU1VjI;oG)^wc``UK&haI}iG0eaqbqMynr^wJmXyK1^nYWo-22pQk zPMtct{SX4;_9P;LVfv|ogx#ZSe9cD_cB6ME7Y&ek%ANi^(8>q;stOmxfyfVh53@5W zh$bd<1|=vZJJKS8sRm(R0XWoOjQrRX5FA_qIOS=A4iBRSXn=WZdT|f@?bAVbEV(cI z*ucp|O`{=I>`0V8vN?eGpCEdkmW%f{X@pc$#0|ydph!#7YeA7U1U#w)rgh3|p>zT8 z=@g-`E6+8l=F4WvtVbr{c#2T_P3wzK&+} zv5%C}8GyhEjwM`hJO2g&_*%)|1_}z8&YolK@pzRfw+CAe6PxcNyO+Ylj{L|{{88NS zalqxDTmJ$SZ7>E!bRp9rwDH(_EiEh5#{@5864U9jXySQJl~49=@kD%L^cka6BjP<;07#1l$cZO=S4t~PZ%UukY<8W zL)DJCSb?CAfFG4Se~yiY194)}bx~0t+lxXW(w&k| zL6b!r7j_{>505IiY!GJJs5yTVCrABt2U*Ix!ny!LKUh3%NbiAmj$Tge;`_=bDpWhw_kxppuyk+JL;5%{(S< z0N;WH_1`|WBiQBoX9@r6%B2wxGoC+#0>Oc>L~n>sT+*oS+bZpy1Q$l z%Ph~qM$(P?n4-!E(g&;Fi48Nyxpz8sN`@Ym&!0c9&^nI?jXfqTCMFmuS~!6wV2dZy z3}TAQFHOmIXs?8VM93A0^5{5J#jKLpM@h_1wzJY6$## zH;&d7c^eSV`N{I)RL^ZII`lpq27koIJcX^4DTa`P{H3VVJ8^JOF$A=kDrl^`psV3O zj@)P|Iwl0?xTA{;4mh&r2H=FF+;gOQUDd-epepg}H+HGVE9&f|x_u!eAh8TNjKEkA z;=hZaGbS<>Tj4U-x4J{Hs@p7)d)GX}>(C)fyzkE}>De-aFSc)GIV&`UA%2r|9pKc> z-#(4Q@kn<98|WbBEd)8;zza?}&J+O%9-RdNF=!PEAokakwd<`6>veHIBe!0Xw&Vqlbny z?xM71s@e)-H*eZh4n}4r6x7sj!*4P7!b}9xp2B-i!Wk;B@in3FBJt)jfGJM9wR798 z1Ai^=rvOYi%?1Ytiyim)?q9 z)6@&U->*kE9$pO|4ACAB1%en+=kQ{U&0Vxpz!^M-J3F2Qgp-4`Dj<60yfR+u{vi>< zARR&B*ok%92)QBj1pZKM(D9<_v_~L1I+|EE3~}3(H;w7&?L9TFj+9dOe3!gr$r3d* z33vl^4Gj^bxjoscaT_#ljL$&(ewW*Fu=)*ABrsZ{y_hh>r zyr=OE(#cLVl6Yu*5qLS70^fl~RE;n|9j6qwj8_wZEt6&BlPs-TQg?4tzEA>^w&X z<94BbjA9{gtZWRR)4*Z3xzA?zo!k`GG^$@y3qEyQNyZU=<3K?TboCtN? zhWq_>?bZ))=n`p0lk~bIU&CKR=M3FV%IS;0^z`+kSCx~n53M{jKQcakA$Bbs_M(x9 z9=x9S+3t|9urN3ukQS(IpkaIa{ATD#msPG4sNpi)8^n8bq6R>VhKuQhWD7GckM&)? z28Rk+8gV{u9ZEO{Ccg}RTuMWugHkSV;R=uO>JoP!&1U@FyW0-0C^Nz$o{)GbDKEvm zkT0ukbWv7ep$b1ge@9>6475LrN=jw8f+bClHL|}P`dsg-^6=3kxa%A;6^`fS=FTq^ zmO!bCWh^GNZYB;p1m2y!dUY0_EFr7wkgV~{#zD{B-M#YUG)@|!KuQF#IO-IrhuQ^w z2a{LC^Yo{{Hei#dK#5y@{>)Q(X!JT%4$H+sDSx`Qb>fRf3xub#B2qm7^iB!(T8jAG zu)#m4wXIDM-}+<0r;v;D+^~z_wQ%~{XNc)j^F{Nnem-)8cu#Cg6Jw*^&3N0O76Tg_ zs760nFOqD~=D)B)3jhzMt1h~R*{OD}~KkRRypT_0En1loK z%k7*$8k24~?&b0fQRRD+W(wPV6~yWXqX%(rOaONMsr<=VDf=i! zH9!cwLz89eu8)2x*+(O@j;h#~?a4Muk-uF3cz$a`a$V{J_%$4%AON%mKt;ZcWkspf1d>5Olp2-r5QjG#XupwZfq`lG+`U3EX>U_xbu(9#k zjd#IIAO2L`P6vkKs#Tq#$HwCIyr5T`xHfV7-GX##Dqbw>`E2J$U^M~6P>PA7s6UhS zj??k4_TqL9y0Ue%C*noqt6=h6)-Zea?!B~0y}i(zhYaZO%-<@EUL_+l%g0{c%f?20 zCcolfxuS?p$H0L7iW)46U{Q1(3@B7}9v&VLtX7A(xVd3#DaPBe9B07tnGDEzB=9}O9401D zR4CIZ#j|WX5C$9rCI#?XRb1GklbhCGH-YjX+^cFyU<}8+-DVBTu)?#Us-MdANZ}WXH6>UmrWidU>A6-#5B)e5;tt#Y}MQjvBc3}_>xh|ZnrBIq+6(JY)BtW@9 zkKYGNA3tUnIy}gNpE`{)J*bz`0)Um2^K3wT++VC@wpnTyFkPf$ryB4)1E6tb#*{Uo zd>z0)AlD|>FS_Fk_LCW>eOWOv0vPfbjL#xJ@(7$Q<=5ZQ`HnmO;_Z)3)7aT7ptwnc ztD5oh)T?BsW@BjWn%l*ga$zuZ7YdO9LVQh>Kicp%yV}YVpF2oyz zMJ&)a$U$Mjnea4b4WzU?D9qtZIK_Ilr(2XwCQTkgR&pA-(WMj9TM20I=cet(8yr8p zGt;!U30Qcr@{q!o!Y@Z+@2`2WIO|eJ7JDGNOctM!xAs;^iHYD3)NvYMI^1SDmMNAf z*b-TR2#4wD>|7u?&l#BCENsaD4CKTy3`YyXyq1<0{6~v>k9F~gQQ3C%_qTRTp@473 z{ClQ{s4-%}78G>+T&}F5Qisv1IXOASH8t7=)rp}l_l2h-GsP!6TLBf#^{5XOD5fz} zD-c5H7oP7zs_MRJ^YhH>&hhbowEM_sI~=p%E>9wo;^xhpt{EHbqoF^>en4@CV`GBN zX4*f5ezteMd-uI@?}naAL!|>h>a+cR9W}o0@Ekiu)CPM#Tp(+#x7Teci$cDlw$Qw3 zlG$dr*^E^k-Iy@YyNKOwr&*lt$`Rv=R@|c3ufH~4Kfa2-OXAUbt@eEm z4xyk9(WpCj15UH~*=3r0>@-y)3Ht9F60;NbWFH;7btj+7zU;OeqieVC-Lw1eL2%Ee zemd%%QXiHHRN&*aW=FY3Q5mqci~QV>(vs&!DeEOTxiR2sX{&8RsgButoNO3)sfRk? z!Gn!XDbmJ6;H*%E3){_aj+@@Be!5?Gy}j|0xp{H~I-<^>nrS3e`)Ws$zUGH}_3{hU zGOL_Q!ktWXm7Je&=nFKb4)Er&H)V4e3jK7l(Wy#S9XgQ2DQ^?>B`f97_UHTWX=DTX zBwPkb#Bs>&R6uPEIVbQ4!<_#}y7eewcL) zl4P~A`@t{gfQm?yas`prlXdEsdOPY$l(RSt{DOkmqGMukwfoP{HeV4tt#W(#?mCcC@sP4u-eZ4gB5LLvXSpssLXHVV5{}>q~5>)yB=vQW3;MVP~ z0VIzyi2z7O4Jh0)`xZq2T=SSIY8q4zCSy%T&94E-5%3GqhIH%1wX>xAB@+sT~Xu_%N z>}3wv(%Guc-H%E@ z7x)4B>V!mR_CywN*)+bj~KpzQjMk5MzV*!dL(!!%JE3QqonVH@) z3W}4tYZ$h$5(J0Fa0qs)h4_ zL`4ivV<{^Ar#N~Q6&3xD5qku62$R;9rLCh=255^S_|Rx>P_ROYNkkW=F@pl5WIKf1 zt-}dhT9!N~A7AMbtPKQ2Bd~>h6L6VmHm4jh%OzIs)79S$1DEs!)UY%V0QEE^ttayH zm6-2e!f}^yOcMzKYnSk%MH7*227JB(zlY9J!pFZ-h9%Gt3V4tISpqcx(g5dlOAd{o z?xn03X{c0z29d*&!kZjB7%+*LNIy>^`>1pGCa=K`7AAy^H!4A}D)`iq{g2b{B=NZ@ zDH!KL7t#rt2+)3VEtWgy{)lK%JgC>+Etu;RS~j%yXIj>gT(NGi+#hi*iZ17%eaCFw zV<6T`uKxPGxUqTXmo;FgpgA^JhdoTPOIFfm+dK+jY8|+NJw;OLfZM1U8b=o?N!&rF10>CC4W+ysH zL8veS>wq{?0{!=*VJn5h^W-tK5|hIk7OJY6l3N5}PYF?Hb{RJVPS>F60IrTO($QuDgvmspz*mkMN$5+>wQ4u`j z+O3Qi-K2S^UkL}gWaNQNqfU%=p9_(=KVzR(-;rgz{pmZY|!;iY9@ zE<54k<)O<0Z{ZZxGFlyc&;}R_eZiAhRBX^6ORhl-4c#Ne^Gx#QZ@YWS<+E9@R973c@ZCuH8@=0vrhdS znqD~kK!T`!*Np1R-y(n&QHmk-1#=Okuxp^R^Eiq{LV1{;ms{K?cQ}fWu1!dp$EB?8kK?hwGjuUp0TrVOltd=(o zy%=^$Vuj4jV_h@W>)@>d=|*vF*iO`8pal2liGkN>xmk8uH_uC56LayRKR}TAw)Hi& zwSK5J$Av_=TPUA`QC0I+TtYsBQ5^6<#`Sjth?EG8x4S;w@9OC}iMUKYc#BquzqHBB z@%VVfQ*UARQRI3VMCWEs&^=Pm)6&FQPu;Pw9fAC6EHJfgKn|w zjpUaRN^nb9kIig7S_c~4N=3>rR(Qyx(=FYt{Gr``m8$pL8(+Qp?rG4nH`#s=k}Whu<692g#lRe92`U%E^M_V=k#vf9w(6)Nv-OOf?dIiQ zBl#BdaAH+suV-QnKFo3V`@9#Y#yP3Tk2vsi+&*w)mpB0lWM^mDX$s49f|-vLtpEV! zo8|FW#Xih<`#$APMvJ13_2VDtFxZe;wM42C)Hr0MGN}i}vX74Pm?thDaMo=LxVlck-f!bK1@9RSt6gxxIJq&hZ&A4|{guz)Id4?uS?eq~(Jt zXY*k;C+avsIFTv@ADP{hRkweoro(%=>$*$IS3eBSaLu}RXR5Cc5(>?69#i>*R*$J( zvlWm;{EBsvFJ>~1Z)ydIR0Ve93GY>fRy0PN!Kx7Y($stN;p00{+~d$cNp}Y)5WQhL z_=Ny8V?g+65F8L$IwFmd3`ss?-DdXumuBTwDP0otxQgv57%P|k$z!<-@XBKOTR~t` zA1PVa{ma_uKW^_`t>C{qatX}s(9+pB*UVAL{SwCa@&$a?R60`PEdtk|I$Q_*4(N;@ zNa|Pw{UWy_zYjaM>=a6G!1NVtZB(#Oasd=>B=i9-vGCV@=l7p-6pP2+OMm&#yQ@}o zH1vMF>~$IM7d}tV(a~vi60>9||Cs=0rrC}!VcUVbwLYnBqkrz_-8(>OE#N`k016Tc z$YlsOaXO1KVsvJww$tlPvnPU~K-kDpACxbu-+MTrJ2q{h$kBMMM5Z;S74z7-F@1+7 z!$8cR(ls(q-gX|yTt7$+ZzJm!hrb+F6HNnom^!}UI){3!*gT*rqfq-Q?M{-?m8gT7 zS3d(*yImuy^Ev1DC4=#5@d{U_Mv!k?W2^fyi8qN~E?2KA@G2Te@p;McE}sA~7TeBM=MRQain$lx+OrY`CySJ9qAc;9>3Ti9=nS zPub@|Co{f44I1v-~FDA|m)AaLvOc+5xzE zc&6a`U_PBMYHjA-FGsOB;1?lx@aaR%@VQx#=U|A9(UZ}@@Q0sU9Blw-n1Te&ad{Ks z$_en6O-U)=#=#}imHM1}2f}OC_k4-TGfK&-$zowpIRJt{tMo8Y8Jq&>ZGf#QdeNd8 zr;ea#lo%=c{bLPHUAhWjH?w?#@NeY>3bp*xe0?BLW(CGV`Nl&RipCON#m-|0+eV9_ z9aK@P`+L5QiYnnTpfWZY%>bci45UjV9J^lPbv#5zot!9UY_X!?&T`o-XFC$mVUe{L?Y83c?dtgb@D>;#4sSbz*! z&YDrdAO&5o&p?ep5;)+Y*J*z$H9SBdDT!GHNGA1-iZV{An&@o#Sa0(OLo+Am<#nwS z0T9Bp7)sDA}l2t3^>m-o-Mi|J>l zKwN>mAwzmV)+q#{g212Dk zlNmrSLqu&3jS5iLa@5fjEdSGgJ=mHGYHcB^gV4JeeVWHWO9|?!AaL@eHKlQC%m@1@ z;N;z?0_xjTKlb+r(+n(ZNf4hv_ejQOTAO%dNjHjdQg^#0*W#4I`{)C`(E`LjN@jmO zf<$Q3+a3oFEQOaQ_!sE(01wID22{Yg-|@hx4MS4{-W}~b|-pZ{HSfksto*){&2j~ zc>V5O0PYl7J_L@PR} zA3k^sL4Ih)O!}RS4%$Ug?gtnmY~V;gK}HTaTcB=pvb#o76F7R8@%|t7-aMMizik`6 z42@KzC=`()iXOK`NJsB%VD(=0B;r>%z<ppC5M`UNy;HVu>ft4 zPG`dQjy`8}q>gXy=z5y#U*ANb>Eo6d0xIK&ll(t0-NWaBtz~8EhUxtaKdpNY zTkkSZEa=tF4XtXT9dvSh2OSj*oY4`K-BqP9ucoSLMtj+n2;x71bq)cQ*;$Ql=+O}%n8m+a1nsBEF~X}aSjMBU@2 zL3~h-gDaF8S?{sg{yO~+7hwEM-ZWlI+&tj9Y0PntmEyv2lxoqR>H$YOdcCjTzu!r^ zpNU}>S_AKdgip2yXDK9YTyOLA{M+Wj`>pd&kHe759&wlghP>D^tD;|SrEiF(UpA#&ban{z)Kug|mG#IJ#O|iUzA9 zB5c`3M3$|^-!$@fQum?X{`>2)pMKaM%$G3QU~QgVuHX6y|8C*2{PQI{{a4)h{~Waa z-#&-`*EsQ0%k3J5LO6;0zJ6GzMp>HMq5(6JCZ&zzhtSn(mCvq${Sl=bth+zz?mlL?h zu7l71{HfLtAJK&lTvVQbK^I>tvTN5axHWL$i!j2v?36Q^yh$*mW*AUR>BUl*dRLB&O{O2s6%?#EK zIcWJ(0CpQh!Ca!aSCHrBdH`Ioq?^is!Kn&cXIcN?K;3I0zK|4~H!(c%ZguR4 zZUvITdas~aCQW^`DqNE|X_Hd06 z04@r!hQCkk&IAqyk$ewPZ=AoFX7~VqWMgX^Ukdl{xXiOwzi58YPcXu*xjGxvbF7d8qtg&{Qe=^r<0?wJK2kq0dJK=-cZ_5N11me z@!f%yj6yEpZ|c2$gx{mEAkYQ1?TkNDW^_!{aicO+=yv4(>Gb zd{Khl04n%=DMQ3q0@P4Q68RD(8DXZlgyXL>-e3}vDiVzc3FyE8i(8=MFp@7I1<^UU z)eC=*A``V{iXtp4_U9uFR3`|~i94=TiAU2%iCLj35_Fz&ePCH5MM65^*~F+_|Ow!iE{6-`WGhQUAqbbC#xT%hfuKy{$6lYrweXy_;U zMZZX?c(7*;xlB4arPpq^AITq?diqh@Jm(|;R5yM!p$6v0Fc{r9HWQd|+xFW2($IMG z8?X^YxFF5|F!qO@o#==@a3Vw0-6GY#nPAsp~ZJb=<&&Qk?2}lz&cXW z+hU1+6#R>Q+2u#)2?`QP94emes!6EQ$!82IKb=fWx^z|vBvM5c*b}4L2k{0%4CjEGCh}W?_bm#&QBf1(wxHvWLcKNE;HeL8-w`NbJ z7w5BALJR@)kcBc>1RrP-+$0@$>`xds*$m?&Qve2&7np!kfzDx=_5=g=1dIIxbV6Jk zpU@Eoyq0O|>cd~5p-{ozA>6iP*2|EI9pww5#|4_90ky_^Od81Z8FX=Isu4!ZD?3V% zljXDIR}QengewEB^p*<2XH97n9e(FW*u3V&*z-tRq`_AC7>HQlc!8gQ6>Arl1jvqr zfMC0lhr-_;>PAg`T%6zGM);I~W+Yx+fIUn`%jEsaWM_cX{d@PN824*eM;a4M5G{UUCzQl*cmD+gXcniiLu$q4a zxav~0etqqp3SU<7A2Ha}sNS$?Yv7a>^An*0cm`ZtQ0>Sp%(XEspGZ;y99Kl3_U`dL zbB)7=j*QEkbCzltu&-UaRup0HWIc#wiK>I*mUHv+_>bv0jm^XX3a#xG&$;noVPPMP z`GXtpLb=8RvOC@n1wIfBx%bVpUv|eFD!mM#pzXb~v|vY-*E#;FJWVfma;gX&D>pPX zT~s|Zg_E-cKEnI^cILx>j1r$QfcEqEe~4rELU_2OC3C3bVtBU6?brRJW46j9kYld@&4pu&TgMY9^IV7|GBOA3eyqm98)* zsFcoNNJ~K}B!KT*QByJuA*4twJCxjtaR3Q$NPGxhY>?;9!kc3^rabNTXmV}x?cWeSo-nWjO$5%lxur3-OC%lW~Sq7P!BQBel?A(9m5?7eozq5 z@Y`0s*ZkIPd~o^3B@n`|d>;7mqZDiJJw}?Kqf=@lqOOTZh-o(NJd@VnHx`t$GY(A> z0uGgOnzn(H3<^J|+#HLV2A307-0%}(_Wr~v*n%>sMgIvtX35&GLTAQn4qAU?T>=&5 z*&w3SY#KAE!Q8FHR2`!%ZTOVT zY3=NUb_?hTsqi4W_qPMq$1Us4kRu{@Z(Uw)ZcJ<}!L%shCV!FL&0;Z037bI>?t<9W zkX0%|!BcW~4WuMy1u+v`tG0g*i8(@xp!C-Ck?gGRAY+p4@{MI0gM%!2YfrLRBy@pF zKC2N2yz|p6oIpS@bly%R>$FKRM@u*vP&~xlUZQwmI<}S5)djs#%H}JJ6o!?KUBZI= z08RdL%4}=(5Aqj)^H&kx`hv-`yDp9Na`pm;LoY_hHp=}4D5YShn3>Dl zMbDt&urFUWn2>ZTV7fz&@whxmeNXEMHuq^Q?UGtMRWP%N(`FcSKzm@ZQ8o34z9CLE zs)ny=qVhUZR8++OLui_sIMY!l(W%fLUc_I+h=eNw8>RJjsKcu5hj*pw2M^wl8lb3ngitUnnoXb@ceJ2^l*Q4x!d`X1XH&XKBX^T>hoXjUXD1V;9A8s&$HLPayXRDr!z-M`gQ_(aR8AMGIjxW?|4%E-Y9PFE4QJ>=nvjF z5H6y2Twq|rNWinJ-^bsNL$idyvNLig#DXSyj|lK!kb_g1feR~F{nNUPWA9)o-{3!y zj%(g*0P$$`C~67PSt{Dm=T1NY2{P_O+apJgM2_&?n_qvIUuwyc*<RIWtdir~t_GTkpAlvqkVC0t-8+Rpd;OlNtY^ifj z?Y@zHC~ZSi{hO5?x!W?&nx*N@jz3#xF-wzmL1S;wXph1@c7t_(8tT3E0emji_jFg3 zc-H)Scd#b2aoX$4xerft8yU%kUn&{M3^;q%(IK_O%#GP=)|lcKm>%^eXOj8xZn4a1 z1t^@6-k9imbSsDrL~~+_B%(bV?m#_mZXE*}+M z_uC7yr78=-OBHoWzMU0QCMUJZz%``abTKcO@N3?@+<1M{dz4%3n>@>^F$M4Px(_Fn zb2>NfOgYtk^&FHzck?U3_u}2t8i2+-V|Pd!)_x49=EGosLqIm#|^O}f7U0LP_dvBP$VFCv`Av z=q{5Qk-<_o*noSNtOV1n#Pgt~{~i?(5D;>atP$2i=Gg-gIldY0({*+V z2%5swl(d~)DW15vm8Iymtq&%{uqvY2=K~C8~riuc!uDF&vj`L zO`N*{5TSrvR6B3hthQ~QEUC8xgvzhHJ_1b^8kNl>rUuXRE1R0veuue0ML=aqgfpl2 zoiM*qpCzqxLM5=x-bP|#R4x%8oiQ>G%Oatv7u@Tc?)2v;K7j$2un2pH!x!U1Spjd z;68xx1D~HQ_;UFwIM=k|fz<=YACJ}qVTAr!JZk#8n7MbWKVhl2I;zXASp@U3rI_C_ zMX)6xegnKN_z_vV!fSK|I?=6;FQkk3HE>h0FeHt^p$x?jn|Z$5G;&0s5f?Zowx}7i zL?c_1nlqQDkFGDIh!(UUwUA8PoR>EEMn*1LtMz>$cnUEkr*@&(f0nRO$fM8p-po~%M-3QvadG39 zawlX1CjsEnbrWzFTe$Fb~IlM|HHV#?Lk&6+)0a5t00B%J==-0$w zixmq?^u(&ZQbo;QC^R3z8W6yN+wG)%p}b~m)~q3G4cL$X=wZ7Rs9*9c)x7<@`xmMG zrI~m&X)H%D4EZSFDZ=^rI)*Ub z3Po=$pB_UGMaUq|0SYm}--dmhCOo;owTOQ|Dfjmq{TGnfQ(y^Jh;Qv~00ugl4K_&l z8*1wHGPZH~;H)~Va=GNygFPPKpxGjl83J0F zy12C{3+>YMB&J&n?!gQbx&)TU4QJ5$ut<893fxLBeS?f?x+?LR$VCqlC~zYdb}#!4 zPAG4FVYFYO$V{GFf$$}aHSl*bZe8mUh)rACc6NpM*U~=kby30xejIK?t>SqaEig$M z;SEP7-k8p!eCW4lQlme$WQnDh@inT1lpKm$1u6vr5K>_W#dBEe77l{`Wbv_P>;4jb zV-L|lmLQqe7&X6iI;iLEe6EtOS)t9yM;PbgL^A&(e5hdfV??Qa(#sU%8RYE_Yzg-} z=R`LA&r1gd%4$GI(U_+F3bItPSqw|}J}UvW)(+aXSh^zF)8N{KGOiEaFMtJ$t(V69 z8I~bRGhF$gIPl&00j#((FDtA`f=DTNh>AU+y92Jx6^wqjpWD~ZKZi=CDq z0N(!n$Du=;-`TPj9hAE#5;(=vS(P#QnU3eiq~2{;={RhBz(7OG$P{2D&HNCYaE5Oi ze02N(!ZaL<%ICKtLkIknVYVCgWGcY1Nw)C&Ob}(a-xRy=cyHwAC8hl(asj1VI@Ed2 z*&0U8qKk>Cd#JKm+ji+362gLd@iN({GxN3^dhP=tN4-qk%m$=r`pKlnj*6{Vz=#h9 zhu)|A$c{kNydpRaA)h?vXjb&2-jW}N{s4Viv5yD`?W&u)B?yU=^_mXqt=Jvf|L@gk>)}e-LSqg>2{+yDfOg+d9W%3t+}^<-+&L8*Lzjc+4Hh z4Uw2g)#JzSpNsu7S<})oy!T(qh|vF%I~XSY|9`0Uf8;~32t*-pAvkz}tTHXtxILlJ!R~F9ZtsT z{nvas`Q`ui4-NZS`&B7WFVfr=5gqqKI`KV=@4H6J4qRV-{Q{rzV$o)3ca&QKqR+SS z-(Nf5dDa@(x?*a(e@AR1hk-cHM*Ak==^xjNhot&mEB*6hduGp=J@s@`*c?80o1UX9 zWQ5mx{zn!e}A-uw^a&H#((^Q_lp!-?pHc!eC-Mep3-gUM;758-@%p(-yLx}`ZK$G zNdx|sp$L(l?{db0ck)(~dQ z!@YSzTT-qAvWDRiM)_PY%)4Mrqb{Ug!6=2@aSwgc>(1pEVAwe5|Y<{W zfGC38NtH}weTIBN2qg#m5Ta_QL4>51_3TnM4m$RB@6F0JZ)2{Si+*%Ape3eP>?NJw z-=#8aq1&>HmFHdhw_&Y8NG95~@hIDMGU{>FBH`=dcsSbEwwpeLH=<~2FU8S#;vSFj zRs>feTMjta>Vy{+;KcI?(C`%(z$px+4Brg(AOHR7I2i;HGkEJw0~Q8f%gT^z64c&b znw|3YTD1VF4fw@HZso# z@>gH?7M_fn6kD1%KzsYy09~hgqj0T3OiP!-?~k4mTo;~waU}}^`zPTi$if!vO~xA{ zX&bm)QW=B}|2!rYI{@9#H7n=QzY_*wYz!eRz+*ju!lMILAWtshK7r?&Xj!;&<>4Mq z1`edjP0z(1{2q~}YzGJ?@ahmLL_z4ZjA)hMx#;b~4Q-Ab$;#!OPwL%W%!w6`u8nM( z(0Hx}C5ZU%fE_7O`ryYWCt&sY#T9S&R>T4&OhMyr-V{Ng7m3mU$dZQuobs#@u;`{c zgK|v|w>VIOan29$L~ikilLynSP2}r4^~yJKYJgP&sa5zoZ?e- z7!17G8&tTWJ*M^%tI!9Y2$L{dV_^zL z`>Uu*hL7uFvAp(e8J5$~WP^*cZtsmBh@e9QsfglyT>E*i)U9lKXsT-21d?K47yl8l z5IJT#rBtIGj&q9zVUorMXbH)rCa#|x6+pivuVcve_8nyB=Jqi2D1Qai9g+`i%X3)2 zq7oA2=`vV<^v~d=qKO%RPEXA3$*Pfev57Y-zlgQBK2>Mp;86Jd<4C@{c=eF@C({~1 zY5Ft#4u*^+B9v`l<>XNzRg`QV2EsZ)d!0F@w(l4dbBdFir3VA5Z)E`1%6|lr&jh5m3 zKX<9`rIxVLmbbo_FgGC49i?o&%|AQ?GiOSZAPwd?4TD!^6VRu|eh^7~0b)1m)5SP{yCw-@ap+@EH#qNJLt8Rf#PaU`tY1$l#U^KAhe z^TPIKf4vM+eSwZ6xY0C|$HExun+1>w;4|GhDtg60e6eN09Ha^Fx(FuaV-BfDxiM(O zNi&Vdy2scHs3XKv4Nf^Lu&wP)7?felIMw6h z$dd*Klfg`fS5g$T0Kj-5?GhOC>UPr`0x(J_z0_@!#bg^qfef5N>VkAJY)dsc0pvn& zpPyf4rD8?5UhGd4yNOm0?q6CuF;&1c2NM%~5NuM$8`lCfX#8$dc8^=1Gw(5n2T&A( zN_WdevzM5&;0TA`&y)1G+jMId$V^(Ieg+%YC_SO9N_X{YR>l4A&S90p2Xi`UuZ|p9 ziNZ>9-^x%#Lt{6S4vJ>5z=lZchpz-8WrHd=Ywe-)$l`%jXR8C@-fEg%TV!6R@Hjd7>{1!v%>pPKd;xyif)bTzoH3ugC!t=8!E}ZI`B5(T zL#(cpPX7%|iFi%VP)6HC2(oFcTQ?a*_e}{K=26fCFx6ASlj(S#51Ul51zWL#$89I) z-6lsJtNViFrUQ7#Vr3m4Mg%neh897SEREoBhUZ4MJczs?ml5VY=rN6sv6q0I6x?JYq3vt-K6@}!KrkZgj z5_yRML#7d&iHXU*=}|b=4!^EmVe7c)ibOeO;ee@%toc;7TnzT~R)KW-q-R%A-tlte zQ!s$VRSx$E)3LBU*x+(CqnedngVj&oa2J_of3*=o=?B;GOI zk~rzf2_3pEog146)`{^%le<1SEegIHZmHbsb*&}n_bE^a7aa)INiw{g`}JM|sDhQ` ziv3n(vQMK#>;1Uca~#0FV`F36&`N(lWmJ-zyd`PVT_+2V%&l*gbCRDsWP=tcOxc`} zf5kvbin!ZFIG9M2%G9k-Wa*rE(FLb3pyn+C!JeKA#0%Ryy#naO07JwuW!uyA|E22N zY?>SLp7%$0BOeW^9$FXS=8%Knlt2TFyh7h#rU>QB6pF`%)96>SgWbMH;8xH1<*1CP zch7k6dnLQ3cY|XY7>X2ApCHp!5p4?_NwIg%olo|zVyR=#*^+e0{&)bp=B=N@&ZsbZ zJ48e>F4T17m@JMjyNhNL+Q^2cDRJ9UNL)C9!nMIMi;Hsxi%ERLHL}pY4q(|Gn;JA8 z$$1hZ7`B`t;W+BorB@7~v^@p8E=|pcwmeONQN?bzt%|biyQYfg6T`#YyuAa!`A3E_^;V+WLH?j#a6kHS?3&sOd!6_gFhXmm_Q!Wsd(|I=djwN+>S8xuF*AUo9YoKjWzkN60$6VSX0xB~qnpNu&T zNNB*BKM;#r8krYd)A*O)GMnB3Y7OI!gGbNKrTWjMY~XtIgu9&<#$9kN1;B*n#{RZx z-9^DgQc|o8uyu=VYpQMjqIA#Bv{d9k5ebw9?kN~xVB5g#vTH-7$LhauZ6V0jVH06L}pOw4x2ZvV+ot0?A0#Dlpy7%kIOFxH)VZfp*(e{4> zL7RC61Zdt!9SO=rskc;;?DNnSEeHAs;b3vXiGxJ8hW}w!yx%F~lPv>tG4baVJ(F>VF_; zY#hNDzfRvbQI{sMv%h|-F5PMEDRoAn%Gbi@%tq3Fi5AIu&%_l*F4Bn7prW=kE>OyNjb=2T{!KGsL`v{R;A!L2OT}`*3ba)RUDG2odoHtP4n#%+Yz;dFLw>+= z9TZ#u2)KOqyLL(&aW!9=(?NrO{>{|iX)~gpFZun zdoQayis#%uyJD@oe6ORPT!AZ z{qLlwYfb+lLB0#3qmFUqcxH(XQ>RaN3vaWJ&36UGnt2;x(HZd1C#Y}n@D?^viZ)E4 zXfW)N%!t}FLl@AG{xfX-&W^_E%@Sjqh&KDI{GFiFFmKId8~8GtE32FC-;V4O`E6!k z&*5|Eq@J^^P@}^56QG)seyPFGx$c93llVP-J}xeXA;kU9Bt&K7_sG%e4RT+Wi072{ zUVCbR1@WK1)xx3^CgZI$*v@U9ePW ztsN@<+5W)E^jW>*fy%8?n-g1xcOSOKcm(FYHP!~>e^0~=%TM!}zqJSVJz;~ijm{2dL?hdtqAQB1s=9JQR?FzOG!``>?5(!SYo z|AM=PY1h!Un9=9NFVCQj;(3Qw&La^ONPr8LF5P5laSi|*Mq1RAph8+}xnAqm?^T;6 zQzMT1TfH3(@RMRQE}uYwGynj;0yC;gN%T3OBp#oTV2hKJ2)qDh$u*Yr2$=hAyYeQq zZ0E8a@N9AaaGH-oh&-|*A;cW*-hX@z+I}(@@lc@85xnuXjLBzPnuGw7N8r;|OKmMX zL$I=7iGatC@q$ybj#lWz@(D&kDso@Yqmtp;S+wUj0N~KD4eHXR4lgB95|+2S#mn)Z zr+5kQudSEPX?s8l6@AWuKZ5@$sI}Mla%$2|2?;JkCVhZ`F6nhnmB9-wMqPxm5F!M2jHuv=Kv@Yn z8`o$}4>!2E?CCX85h>Z8Ko0tb_(Rg|QREJmlP{H?;4$HAXKymK-2#CK;7uvnGW>`v z3@lIu zV|DI(xMP-)>=w)`THeoX#l^+Ra`N={w9A!=Eqz)BQXt)+x;{%JeK^RCJK6((sf8PDBxK;y5Db_&{mR-LuXrOBB_*hj;0Jb>-<)vbA1=Vm7x0|s#T;?Ri>zFva<^id zLL9L!dk0ujVGhxJQ;b_#M10oU^;ol5vaLRt@+KN4+f;?Y3l)hoW$EXn=5H)nh!=?s zhjIoxh-3>GXkAb`m}g;1a%n(zCE!{?JX-)?bNq5NOq$yS@E%T2WNs}7u%5=bSZ>fu zumWrm-|w_mmBr0fe>YGS%)S@4Zdi80FHtpDMFvdSSQyDjT z-Q@fb2L%XsZAOB8hC2Y56vHBh;?63`f@^A_We_^|gvNWtHkrapmvS{98=Qyvg2*v& zOj-ckzs|DbAh2=OIeJ%*chO=;SN|2Wa$!-?HBx_jNEQa_kuCSkF)1Lcc)%F5Rg#(t zkKS#n!9zCeyC*NR8+j{04WP%~Y3v1PYYR`C;XQ@j&%o&Xu&)YZ7+eFiwJ~3N(am(0 zg|{p|U`$O|gwlSQf!S!602|q&8^u2qKe}{$Jx3eGUzS1k8=@>3at?);*)-5X$u<;6 zBNQr#j$|~p@BfCgoAg{DU7$H8aZbsz-I5O zbA>??CF(DEqk;9ke9v=sl5B(Tx?r+Tm9GAgW#;E~F)N|9gYNnSyi|zZjKYZq3OLKo zAZ)lQ-i;Y|c>fO`9q%&!0s2#=LO)N3Y2DG@!ZY#uVK#sRw-AyEj-&LFja$%8qKTol zk!}RsGxT&}JWu>-qCTISE06Qs0wR_{N^Abo=a;ymQHzy(v-bO*Tx*I?Ls}Jud1Cou zLqf4Tcj{@M!$*w{^pwQ?3(YPz^})o3m2s#`^(WUu3|bG~BL*L?rZX)_!Qy4m|7RAY zZ>hqQh3xI&yR_DC-fnpf(z*6w~$ zsF&zbqKw@b1KljS?wk|#J5FLrP0E`W^lSSF=PH~G#4&=U34kckB0r}fTxu!4C3r-D zDk}p5oO7tO5fu;d*X>!x6&4)Qo4IYKv$?RB|FNEGlM{YYQBo0bRPLS0&H~UO$uKX{ z9P><$!GEhbRgtpe&WnWuIULI;p@?f`kCi%w_T0pyTL2J@ zX2J_iuzGec?@vzSfNwF2Nqu2lR-d7e)U2s+`b7c__^LoH_RRIZwKV&Zp|uUpL3o+F zPaOZ2L=fYjwDd!F0ZutaLsRoa>P>eaGeLQ@75M95zA5QIjB%3i08UPJ>%#2pe-I|q zyjQ+@5|-D~EDQ6%ZEH_bpEZdM?-d6pCaU;qAakeD5pVw`nOPLa${lR`pYKW+BVRBF zW*hC=@f|M`W}t3NT8fY;Z~bsCquEqmg2n?p6)pp=*_S2mRLk?9XNXq-=%#AxF-h^+ zfG)SE`J$W9UyQaFm`z{h3hvE|um(8C%UhRF%Z$4bOKJi>Xc=)3Uv2#4l8t=w=G|qj zAc?3Um^V|69o4a>vGIPJ|7oI<&vg}C%Ehf*=6qt;QWUO6^C9Ne##IYms*v?<-9{fL>mVq9Ai;#Y~UT$ntCzXc>sc zMBa};=g>Sq0zY|vzW)fu-^3h(EhgQrgD8K9$()8a7} zRHgv5?COchgRe43#b+_>q$qF2B}vK8zqoFaOcmI2)`~Y^ufP_2dwUADeC``A=3$-> z-D3;*{yMM+0FF;%2ts=47Shu@TW~KDEFCIUfaID_zd!e;;%?PGV{{V1V*Y14Rc5gCI6aJVDhs5e_jB z$XmZJIzf&g-GNPz(vrytD(RQ0raYj1Aja^5Yakl~FHL3ezqkQ4qCNz~$c6(533EE2 zKgZ2MvesWZ8!IlgkeR{gax|>1g(=YxXDd^L=7LNxC>Vj5gDYJ>d*l1-)eIwrlLrG8 zEtE$jdPjNbiJxSPnvp?HRe6PkplY>zjp|8ECYd6PLrHpV$|1e$%`e2wf_OCq4*z~7 z9k`NkfJ*ZHwX;5!NM^&^cvB+wc#Z4<*0ij4y%EUNmcrFiE&h%Tkax4)5}%mph!(WJ z%_m&T8U@(rzQ5gP?AeV8FBag_t&D`tD0C7uw!oE0;f}cQF})806_cj>M2KUoKRi19 zI{&cj)#ZD9Fd=Tm%#L77uiwMFNaw%3dFI|N7QRv)U^{{Q;Ba|k48o7W7kLCcySZL~>P-q7gLZgiuy+PCPCCFG4CKdIFn`em z+f8$Jw5R9+fcpMZ|c44Q9BH5SX4=PjqlV@Sa7Xhg=mq?du|MW>BWx=k{T|#Gd z**%t>@Sh+eQoce)a@F`AC-=m^{If;(-u^%E&u$lBU>~lqmzNkJO7Gm)9C<<&FT&KO zBNL2`A%iqI^rvJbr{~(pkA8%VF2L}>#7D296uSqm);uVF?nXQ;M3q3TAb3;H->pR( zqYdg7;Mo02#n+@{oP%Z=hrErt3@3J!UjY=E8 z&%)qTC#m?AwsbAWu%M$C;oNutmiDR`Hq$l*v`;J|NON|eRwBz6IO0pM;$&#R`7+In z54C;H%a3TWXe>#67-?Ndh`}&Kog|BWXprkZa{DFA5G==8soEeVAg4=sQ|1hRKPhmn zQEt~C`ol-NaCr;4ui%`h1)#B~p_FPOL@8{yEZK$|0aCS-=(v*Z<5OpCt5Y#MuXCdy z*N~)wz&gbZ!i6(@;1_})O8l1~4^OdaR_M9#Hm~OuPADlbpFxSrG0uavaQRMTDE!>0 z@dIb_G!X#-Bckp~^sK%lm!#<(*7;DB|-_e8p`vA(z@ayqjvhoCX_CI7L*$^uTbUNqyKPZ%{m# zB76zveD?Vnh^_~p#8e$}$-YgvS`p>?&ku;fH+>D!CE%n4P?ap;oMDKi`t6DQxH%Gy z$iUEC15pwD0i0paLtl&%8SnR^T5@N}l?*gES~#dFS^`;h6RGJU@*IVR0D>W}F5Cb_ z+QFSxHUG4f=;_r9j`^=Tx)ocRMnxzJ9_?I4PVOXo#3O)FfChP}c^|szfqoNdB1FVz zG!SH-iF=j!SVI(zjDbA4T!A-2uF|=E3x^TEg5!GI9GA!j$DE%V(&ZzbVttjqJNa(< zM=h-qWE{0g_9#n<0;W+wFG+SnsPbOJLX_!TCJfAus|(yKFvW}( zc&&<+fQ6$hwt(uDLnp)ED_$|k;&-{cPw0*1J>KRp&Qn@i?~3tJ?F1&xc=pOQw)xn`PUkJ>7H{V)+C8AgU11 zI#Sl|y@7XmxYsg&83Pu~>Oao9U|kWx^QjGEFqXX| zZJhE73;ve$K`r>>q5SV}agmtpvo#|~3Px;iH@Fs#f}e$4(-drXfUZxwzBpHOXSX;I)Po& zdhtS$eh^c6$!A;x#Y)w+C!+ncG`Zq3HMI5Jd4hk^#p(Q1&Sj&${mlYD^GoEFhpbuZ zz{Y;<+wW`>BOxMX1>lEMtaNpmrie(51C9?W@)nAVSEhU(gAMY(q>8p>yEaIEkzpy~ zubQBViJ1?sOW-Ob0-QOM6|{S?yenPe$wwgh>DN3`_|EBl$$L;p?)%bnQX#^e2X_NC zmJG(2vyghed-)?rMg5#e69WIf6doa^;|i8h<$xt$2P2M0Ane= z_?G8(T1H$@AgQlIPksHC(<3o2|J!foe8#`TcWKt2e=-6K7(}D^g?GEv=Nm5TTkU=0 zP;+TOean%zITbzBLYg-9>smo(=&`(34e$!^Op4UAY**;7$8sZ=6|kZ==855^o;_<8 zcnA7cf?C|c36W|?dEwkWMY^DSL!kovayg?E668OZ$^@KVW{5wRhKY z{yt#qEx2+>ISi)(SgQDebMYqoU`fL#E|6S7xMKzSf(}8g?G+vl%Y;djR1945`NKTd z<78#Z<@5ISzRX(hM#Kl|AU}WX7t=BdSj*D{&iBUA0si5=x&O0c^!E(wKF4yq;mL_v z+#Zyd_iu~2LMG;7E)NIbTcTUVqT2b4sG4-E2V^*c{)df#e4JN+DP}|>W|A~p=!D4X zkElc-qIp9OF%!MdWwm}$uv;F3H432&x;!8B^C>t#&q^;{`poIx%trS%NArGge>9o1 z8MXWJIj?j_nzekqG!7b7I-PeCNnWXX_49lfE)+cOlzOyRIQeti-Us(wTsCU8odXx& z04C3tU6^BT(tYcH8b5(HSlGC`#3O};071is2Kt}ZC&0mA7_u$~^@1EP){J*|M0q2V zZS?nGOszR$pu8)ZSeyTuw{)-J;@&J4^U7gfb(@=__;4~-2cv=awo{=rq^aeJ6Qa!X z9p~;k$YZo*{(4tgL^)Kw%8ONN_|rA>1L&Ix5Z(^>9b4V&q05bb10~l4&!6m5ogf zVs4NM83zC68QeBxf`jS?-+K*eT68ij4EY)mg`1E+w6s+2LcT`s0-XUO$#Er(E#_*O z5+W{j@niMxBFonrHH`@!UvDoSa-M4@>w>HaT&8wYG-rc_SjSJ;iI^gV-h8 z_NDEcAa#C==5Vs%EX@PbEk2GumC25BS)wyF6;0XX7M|Lf^vyBy9<1I~t+uOK9hd!6%%skW*H_7TJtWS>DK)H%NaU0!ixvLN%hY~Nl4JMHxGz52m*6c7~gY1e64T2ewMa}fk#l=6zp5fru{n0#S@ z7vtcdegjXb6@yjC`Yr|sKZFw>ttWioHE}sFCgM$J;;6ceK2UVQUFTLEOL)uT>6atn zsS-mhQ|M=ERKIc3EDUuiLz5&JHe8fW&-DQr)&+VJu+$%d%Z-z+pf=t3@B?cA*n~#F z2R8ug@EcCFWpH^y#hTlG*~~j@VeH6+Lu>6CAAz0&#Qw9@6Wnc+i@+wC@ZcXn%{Vmoh~&L;PBF42rI(PXiUPSU#Tx30S-vW@p!mzxTq!(MAy zzeP25N50>dWfteONTBI&eM(j8%Pp@~-e_z@Eu!rDnG0f<<(6Mis!F0ivBy#w~;M+YASYGJ@PE*suTJm8M^m|ooGgLLuI$}w|s2saO5OXmY)rAhWvr6^K zYiY#|d|TYPy&*@^#A77nT~$le#u(Ga6P5V={N3_-0?T)MgP()56@~R%Ng+6>W%g}A zN*qRNyKr&nTokCZ)SN44!w&TV1&M^$f(Ysl7)hS>}b z5N%YYc)|HK?`d-H+VPSC;OE+HI`)fB4DQ*pOS9`OJGUYpVd|x{B|Yo^Jfzik8`lHp zam$|FCeqF>xiOFjU&^RviVEKRLO%lYSM{ z2i4V-4)t>CzBiSSRLV3~en>pgQX1P?aoNym+CCN~2`wo9qfg%WlYfT6lw2j9yjzxVCXe)ABdG%N$}EG14%r}R;95S7thy3-z@ zQ+rv&IR+S-HI_dpc@$#&(_mn7TtN-^4Va=to8Qq=BD)<-&ljkvMPevP3JnZC_0XHm zg&QY2V2uXO#mC+9BLRP2+mNvNg8xNF}hEyVagu_Vow_yczUXi zjnqG&STYQ1TWI$|%|YLO?R<|@#4L7Q$u=aXvWMmW-BY=|K-ds-C4MPuw1<|Uj zif?m=(b3{(UZQokvAe9@B{)2M9gYoLtgz!)hHC?JCu#~&08R9|+R(j3S~>tul{YpV zLJ&H84D`e_RsUoH(>xgTs@UH_6ot?69a2cV-tvF)7uhQDQxmJ0M_XmehBY+#qv7||Uwdo^q zMMd6(7if^Cqbw*!iNd2&;2~~-lj^7CjtNo!Z~^8mvK^2|qkb%K{0wEk9gw4Q7(fD! zW^sA>7m@*if%dSMWPpPpI+Z+Q;G(kXlR_&v#4IOvJv21JZ$WOia#zDlZ-_DaaMT%k zJk<$)Bm9it&fcn?mpjRi;3Uezh{-g7gfFi% zTa|S`b&w@8_$#k5Ro>`fZ!i8}`04)Y;lXuHEzP`^iSxcc`8sGN|E}F76BilUYj_+> zsH$EAWS)iWYb0BEc0ihT6#$~`uzHOaM_AQ_@G)#v{2H#%j=1!$Ll){bm#5Z^Vu`!&Ye<( z!$KEW2KGbIhXY?ztbU!v?_9z3!v+7k&E3ZHV%tWQ9?neKI~vj`BEo0p;<5|`;!jP7 zo8zH|fgGX#sZukc6}Iw~IJs%?^v=C?8tTU{FOzt{DI)L!#{zjFJV@DQ9^<8n5|03U zy3jCQ!5!(0%M&*&kS$JQi$kH!MsYHUj%Kg%DPgQbWzYJn%OOiVjj|KVsT{{+71;jg z@&LOlkz8U3Vz?(L$gl#eq5r}$9SE~joRt%bAbf@Q=yaHO$phL-dA4hOAFR6)aQSmO z#9UxWuKju)qcOs6Nb_1#}2Fz1d?9$jO1=j# zhE8OS1}{PATs~sAOe}K9UIxJ?EU+q|3$Ib>Er3hZb(B-*1e5|%h4<=js~jGgK+_di zAHAm#lRD!b^f-Xk6)pyExoa4|gw#q`AnC&;*oI4j4G2r%Dp*@Vwa)(o1C$cbu}h)- zehA^v*~V@#bbRq{f>e5Pixc_$8vY)C%Pyl3%x3|()pV_6=`;65DIYWwu+&YrEXNlLPMpboMF zXvT8|wgafrANgtA=QQ0rd@(pey}d%3_ogZ5I6JSx>Qlb@B5%SR%mB z;scs#1l2zuyR|82_#-M>XDEv=T|$C<@-*4?E3LA$DnaA9wLR^%qarTUDI6R(z&oPx z9`@+NV@4B)L_|)YB|HfL=oy|mW|+TbaCGpQOT9ye_6JP+AGsHA+IOAS|GK6vOZf}-GqzyO}bpkc;>@60TBeEqD~?^3yZ?%nNa_&I=l_y-0m zP8>qrjL&X+Kvran1!iQuRtqg(%I3NjG_KBX3M~HcRo5+L$v6usNhMjVc1e4{`SYb; zT=`F$)^t`J(QXi|DYD9VV0>&l4y0{i~HTv zzbl-wPmgn64h76?3e#|PbuD_BI`Pg&@|e3?Yq2?sCBM{$Y_M_MVmyr>Y=z+TXj8{` z@(s%$^KswH{rhwE?mXC{}P-IN|!67qkEa%zLxjg^;TtW16xx2d;%{AkHauwWS z7J~DdxfcZuGOM7ckPOhS5pI@$U(cz?9jvea%SXR_Rl~l_OHaGDnMu+|+cGFwdu)ok zJ?9=_GiB7y8m2ZHQq?w@w3^0_O#H_GGQe+C6`$k#D9<|w4sCja9rMNVWLfaD8(wR2 zngq$-%U-|m_IqbQG~Bf<;tZ|8u)vWCt7LoK{#|I-wFbqkv;VK^zC51lwQGNC(9xtQ zl2S(z5=m%4DoPk+$Q+Vn=65Zf=RCjP z`+0xQ-|xFWpU(4~6SjSS?|a>AUDvg)wU49ZW6B-mO7*vf#pbs}XEZappA<21d#iU|$Jf^js2o{pus&Wjvn5~8G2Y|Wf_ZZX2b0aPhlPdq72R>d)?_ma z7RmOn(pe&>6Rob5gbM5T>oxl+Yx6_>;1#;Y`}VcFs1{lL${UpKYYxyA$-QxN_cdes zAb5SXrb*G&ooGdzE+HkwiLu|WvFmQ-4mXc}xLUyD+G~&e^iXES;ho2+-;Q1*GZB(P zjB0nf#u}3GJya`LaqYz6=7jo3dy9VcPv_!#X7jM&WDYVm8J^F=a?w1s6Z;7N*yPLf z{IzmiINATj*i`etH^cH@F8AK6^4_`FW?VYCExa{v%Fhtn%BU*I%|$LUT?Z4-t?&EFy9p8x4k z#$n&-bLYxdNMBHq+GD)fwnAYpmpz(zpEfy>DZuzvVLh(+8@ooT4YiHj_Dk`DtFu7g zD4MQ=G2-GF+(LWbqHjF6MQYyzf8Z|{5a)-Mq*U}NA~m6joP$Fh=|ouJK5UFMw*Qin zn)V~vP*3kUTI>no!2mo+!Kk9K&uZdJaMyDd$7Vb19FQXJz?vd+YeV-{m+Mv&zh+n< zeZb_>M;oGC`xWq;hCvMQL|~a-2q3zn50c}T$l9g6ZE658VTsHJNQXaabrzb2k>69s z8mjawYFwO3N!;=8TY245i~AJuy>ETFmDK@m0JK!1WFH@Lq)D3jg^5O~!OHZaNN%T` zTDn}J$2^8q$Eni5FyrW7Qm8}<2_=xT39pN|A*y$6n5V3n$AI@RYf5rd`(wW`F8d%g zL4D-(=Z2>8sGoRH`RrxBS;HV}NL2V)CoGJ6rFp`jbrpMRpDDP>YB&`{)gin&c$4x} zL+R@yP|?z`>KgZsyARM8??e6$ke*%u3d0~brt5jz)zVtJq3LLWFqd!)LJ^MrW#U4P zIHt_e69~uKA*k^9^^NQfYM{rfachYy97I~(fH|HAVaotKXJM0`?BC07WA4P7BK}G( z+wW827S)%EeKV5w^C#b(E#DsNU!jEBmFf_seLqfAG|SwUjnic*dbBVw{8neGnb2t2Y_nm0RwO`I(i4u z;^J@AojlMA90d>%iNrIkOvn$ALvEEcHJFj$eYRr%5OarWiY7f8e|4>Ec>&0_Pv&4O z{4&%s0O4>UzQ8*Vwq6fCwjr+Y+goH#0vea2lv+S%k>3+;+p>Hn6XKV__SAIh@IqPJ za8A&kaR8_e>}&5GE*FN}t`Lug4UJVaMCz!+2qmx_-y62!<;FKAVXFQ3X>EU{Cop9I zp-u7LDKwd|vBCtj@(W;mMOeq+N(}e3&m86#4CsImhXMJ+R%D(?s&7Hq3q^}l!%HqI zHc{`E?(oqlq2Q)(WFUW=%F|?fdSXbk0Q@Q?Joq3HwS<)D_ymH_!z z6TArI08Y};MAqI517(4}B&(Gke%h)@({VyOdUx(tTL?d$xnb=$>2bZo?ng0+-=QA< zFxv)^<5NADYcuw;cs*hY^j~p!kPG2gl~Y>^6dc_q=77Yu4FU$UTAszRX!bM|>n-R; zSX-ppezDzVEBB&xPw`{cIXBNFkwj|lOm($11#p8{8=^e0j+i%b23XY(=(d1oVM3uy zd)mH-fv6u*A7K*SOu&gyr9`1#G#C_meZz4~{r1&=r^RD_xJ&e^W=W{3rtBP@G?yz$ z!s`-%O(;E{2F_mzBOlQ}|2&1Q?eun4=7OVMTdVH>F@sO?09phn;9~b8mtg~KkXm;% zcTI~o{DcS{MmbSEenCBsUr4CbF0-}}hx`@Lk0YOR*8>cM)HfQa>5$>H;y7pY#QOLg z9TpW4fh~0KhGSiyp6Eo*>)#a~P$3e(+{N+|WwUtF{y=aez(2rdXbVE=XlnGH=nkkh zBB%&Jh`Dub3H8i!hUvQXxGjOhuwv!SO!^TEMZo{g~lmiOLNiLju|h zGC-K3x++3J?Aj2pA~(%FEifMJt7)X9(X~S{Qy!w?z#Ne+F#jN!4yp-Blk9LDZdn+o zC6tIjj%d{U`pdC_IHSm?vvDaS4YX`3SvWsAsQ6LBDUjgbD|TxO#40I&e>xc_Zpcvf zuEbw7CG4;L&a*18L#5c^CNUJDvsYOPp309JbOD-#JOQEoD$ zBKy`)3<+s5TQ0nbRb;R8r?8$uJHNmB(umGjP|JQ$hd2S*8oD#M5v}qxf*DFPZE)sQ zFtx(}G=h=*l9to8ru_*VZlRyJgepy@-u;@&+0s!MNIe6txc*o@gMsdjZC+sq5ZCaO z5aTb##Owr&L&ZNbfAB6~OxjsV{#DL^US^K0WmOyF3cPXS#B`W4Ex-kZP(AY zbmP+eP{7`;hIS`Mfhum9!*z(Y!@9=SvMVe&sJ`0r}C%2F$&?K}Bcw0wp zyafOSj_CvkqFbgx*1`jumI0}H60$3JTrtf*`lOoluZ3-vm*aM zELjaOQVORKot#7U1?uQX#YWffO97&F5Ioro0!T3g`hCxU9pQ4qj)%Kz&KCcH!?$vhtzfO$`V0A4b(S?x_#pPd%~O{ zf^=_W!~ECqn(^s9m{EnhyB^R*BLsW50LBqG3ERCpdyYPpb1%7K@o*m@@nlbo_c(+c z1)2OkJY2diA(sYnl{J1t?ezHqa~W?%rZoGahz3|CxXSs#aA$bQO%RrA50^d7AIL2> zWp|#GMb9^U6(EyiB%)P?{5Z)Aldv-=B7dN3g$1Qy*OPwJ#u;fuq)eT`_Z_oYNs|M& z!V+*agtvgO-tSx@XPO`;XAr?#i;rPWc^MKs`m=2iV9pC@BRn}DkXaIV1kEe!%A=-6 z;P661iNGL)j7#Q2p-dw%EIcZIBtK5?wG=qW?h=;G#Yj4WIqcLn^@HD`OrQM+z8rvv56J|FrJ&L0V=rbY zJ6sKzvaI{-BO?SA>>sqgy8-(j<(?cB6Wys>*&%o29r-H6090Iq_{YGk54KW&O(RRw z2q`N`jId3}nx484eZVtNbRM)-UnOUV<)q$`FUPL*w%2MY)V{)a5lg7 zrli-}Tcd@N?kwC^(J@b&%KynD5&=pVelmi3Q${}cc5%yWfi*7|6iQHe+sg!HzutCR5|Xf*ih@vP4y z3bEg3+G}WNconI=ygXhko|!X(yeFwkmsaj#;4dxWy8$j20}?LY%B^$;pck?$*!P`6 zG=C4jdCr*&4untB+rR%Ct28}7<;qH7%MROVpQ0)en&RT@Y$aPdJzEAac0^c0q9}jw z^20`VKTH?NI+_g*cKn(Ts$c3$WM))MGU!sntid>!p}c;{Kx!fZ7Ny&KFtZx9H}3m} zW9t?uy53_(__T1qQz{rDN#OGn_w8kAYlwhBj>bVb8Z)-vVV}cpz*A0?u6&YIQd*4U zlHlbttP-n6R5Q&GUy$_{jN^Q8Bap>82o1I(m^Nfh)PU1f&{(*Xl_x*LWi*ict|NL@({V3wEis0So!!)mZ~U2ihvr?8Ju^b?P4}2Q^9qw zoi+0vqB>ATstqm2aN7N+5CTO^C6vWH$F{j>Me4coH091Z2Hmju8AlrPXn+G$H zglW#GRw1N?$JrIAS_X12X5v3H;M{5(9!=F8s8BXUf7I-%Bfr%gbPeVbT)2FBJAPcs zs58K)<*WN=qP z55j|HbP-LDHzjTYX$K{$*o#v6BTnfn&2X>(f3LiiC}r}+5>^VIa$BgR{o)p<&hmlV z$Zh0ys11t}pMff({>EifbI>V2yJ}h;>?$~{sYRdH3LpU@+_sdk%!wZ{&36tqs&QrK5uKD+b2!7 zd(G!JT?7dm)kfHvsYylPz+U}k5DS6W95D|$wtXfvyu~2ZO5OUTP=vv%8<*i$^u+>3 zy7NwY2ii6XazG{p>Rqtok3reqEZpu_F%C)Dl0kqORO>y`d|~74_aBqXdFRq+^Y%7q zi~Vn-`dFoZXlP5cbv!~EX;=^&JWID_;<2G*9ST2{Z-vBjwm-AF@vhk7N+WMN}G_SVeW|V><4_lD$& zq&_Xxq(|tu=3aNnct_U{x6cpC&zue9I$k$&sg_Tps@PupdG)1{J+TrGH{&P+{-$Xm zEm#q1fg_`7B>BB4yuwff4jHCD_iwF{YPE+a|jF45Tc74)Y zU+KuL6cSfr_2SDhKsE;@x$2+HU@hDfR)5p`*;$k)r}VcQFV-9x7SWM+HLO!rwGm_o z8;Lw#DT)RZvEgef#Vfn>2BFyMy!A;pSqtau+#UfJ%@lj0a9gJlDlPAJe)Xl5<$I>_j(c;3-*vf*5tMP8;F!8y zqnmu2fPqZ>nY%6d=I6U&D^Bb@ZZ-*@f@2zMVOb1yF&;j*+d%)7($AT5M*le;M!VhB z_NsmzA>2IW`rX;0W1~D`v2lQ=2vPh_NHA?@w^daht5Y|3o}JjvF%bs3l^(51Z=afr zR|h}u&AtbhVtJj6eawB+kX1~=)jTQL29JAEpGKnX$rzx-csw{O#vMRwF zFqR_W0i9xiMP=%=MQ?5r(09LB7b7Dgtf$;JWBG;l!>PUj%>0+V*4W&5oxThT$j5qH z0O$P(UOqm~a1qWVr<7iyA#O<}-|e%6)l`dd7XF2-Zv?WA7neP)#Ajcl_0AkV1&f6(-rjjk86-3-L_`V(a?C{^w`NH< ziAyV^t|>(A-)t6)Oc*mqeS2IAwwGM9_8cqz zw@~{KRDbNt7PLb^JtW@_vMdh%s+YpURUwRo{^9`M^pK_H;LO=miR}T@ssXGWPA)86 z@2dmw2t8i*suiD|z-PdnS0T~Hf}$~o4fGj33!%E&J+9u^-DH@EJQ>CeD8~;%ss_ur zD0n3kjZ^=;XF+g=D?C1Nn?Wtkfv45C$#z3m@rM~-aaH&XO|4XOl%h`WCSp&NmE)1K z^J1Rm2(D6MHB@AHZEc=Ao7tqzD0qeXxd=Opsvov2@z#Jz1^QA}Dpzd3y+Nt*t;^LY z1;Mvi)srN_M7hsT5;szSK&?XX2y{D$fIfqdWsTDxfr7Ba)B+fF2GFmYVz3ewLJ?|E zFrqiHg4;}38Hez6ao;La4vYGAfxPVk`D$(Fl#{mCCpa9M(n~uOm@P2CS(&vbW7#vC z2&6_`E`vrTNPDfrr?J2?KsRo=*5H8&#CBu-$%f%#VN}b ze)pJ+*Z^ngjkxN30N;j@!8SoOC^9ECHRnk;P7un2Rxf+8d5YE#M}dE z3CQJ1=>@=VB)(2quAqWObjAQ`SH{N&M|c^NIcKhJcO9>FR{V&;hr}(!l1cQott|&d zm3@`ADMtkL}yE=)uTe zNk7-Q{}f}OB4r>9%;n>=l60$wqzNWTQy^GVZhH0_Ou5~swf2v{aAKD>Ge7EkZZUdt zAfy}(b90s~(S}^O3O)9?7z=G4zC-JCg2SBop-mltOwE|1asV_bZlkDF9{sr+D@$1F z0VyG0aXvr<4kPO!k49|wSiH(&V(SHIJ4$`VP+t{9L>du<5*ObK^-&2RFRbR2#3(LN z_bv^$;+NYYO~#ahKP4mriOzvMoPHmafNfB>Auj1Uw+b-5t;|2$O2*zbtcFsxr{0&_ z2^ir(c+P$)a(nmWvXbwTcXo%=xG-AKK0bC_hU|ZhsBLtJ2&=C>2FrRO zKE4#?7FuHaH`xy5McuWIwX;Cr!|~Ue$<94o&lX?D!{*@*Ia2#8rEZ5Ch$n*Q=#;B@^ z1N;WH0onwbGV@38vIQBRiz#Fl>s`xP7!e-MuuNAR=napEj6{~}fX)%J_5cFg3;skf zy&g)ah1{l0z95m-?hZ6kl2Q`djdj*#x-y(B^Fu8z4gz6;DOb{iVDWs?U7gqs=^(-dj&0e2T_F+q^mqOV1XKm;Qskb z7v8UOKk){50zn$c zC`jJ|=vna15td`ijua8ax22c8;uqkSYFF4rWiOMHf4v9f}q{+ z&G-dwR)2x55-YqlZ5xm^m8yB(%=r7gT5a4`2nE#H|2K)g#_8*8XH#Qzn+rq722ptL ztm}}3!ZGA_cL%thUErYb9k{^QV$w*NpnRvx496@sQ2URr1${Nk#!r+2Y@#M_WInQE zX|6NBfuC5k?wAjn@~I61oeisT&r?$@axtv}i`8|nR3=hGrylXrf?xq(zJBG! zx853CC9c_Mmw#oRLB<>^J-U}#1=&DlQ<+V#j1fHFvy-A+uRCj znVa1~Rqj^e-&X8+Z+*}pDYM+_DzUo9L#58`iV*tVhvGiTsWkVdT31RZdyH_Bndp#RCbAR3J zJ@~NJ2tz;+fVp{{Umv#%#0a;T(A!H95oZDWg1=s}#(d?*jj=#f%vKBeuIHO9Bj{q) z@umPpyekn!C_$Ye*Af)8^Kj)1MS%y?HF2w#2Y$KPKZ>tdg+6iolw;UDgW(<*VJEOP zFf?ZC=;;)hiBxeaR;Y1&tb3f2>HOi^?oxplrw1Qnz{kz@%BeV3brd2IV0y*VK@06k zjeul(((m&r42&5Wts^EGU%!Lpc@|> zs{uL{?1kIYuiC4J;oeO;6fBOC!$rYFAgL-<(jf}$I;ehHcMEA^!fp{Z6`O{@97I}; zp%`&sNMi%p2SUq{JWjsCviSZR1YQ&QURN>R3?T@x-yI`X;rJYyb!DDGYS`U93yL!q z_*WtO)s|8&$Z~~}6k>wsXgTmK0^L9d7une|NlDFr-xZd)R!5+UX#$F=+yq$)BN6f! zpN8wA|D4^2CJ-Sz$&JW;VvYa?lJZw~?M#9K91~_YPQ@vUPuS8C|Iq2kM3t_&cHp@#(}jBD2PE zBgFuXsvf&F_CZ@B-U=d!P(yo(oWq3;iP?9coWyz`Bjo@5NPDNxu@S zWzy22*tyR5BCr}_l9FG+qBWy!pNtAYcTMI$|LQpVHQ3?|rI5<# z>Go^u_{BU#dJ%bBsM+5<19MwT5i#8Go07-@4guXez}wH0eb(CI-K9}-GH(C|rU&5+ zMX?LV5qAa=;wZ~*fIY8qe6_ezXi57r{kZrZ{*!tCs)GQnlN#v74yMoC}WN?;k9THWdOUxAIFE~SGTef zMcc&*y(=@qSFQMt4nT4@vFINlwI{&N1Xlb_6#XMLY_H_1qM%SD$~|Zr6BvFCS@Y1Z z&bNT9+gQJBPZanK{ZYAuFQLZuL39HqucwXzZ!J$VLOEq z0J>;u7Q30r{?aM-_p55js&d!M#C4&kqeES5MV$@?a#TZ`BJGQ(v`;!JDg@`(CI{3U zQBX+rQ!Q&89+}>gp)_RU5|M21Q7`>CGk{p}_zz*KmEI*wD=Qn>orJLcekIq2xAOh# zU*?AG(+aTv=ilZgSN?DQ%aZ$;xsl17=pz8EhnKqDRe^tG&IH+wZgTA^4vL??b0-6@ O9csH&)3zKq{eJ)fqfb@< literal 0 HcmV?d00001 diff --git a/vendor/github.com/bytedance/sonic/bench.py b/vendor/github.com/bytedance/sonic/bench.py new file mode 100644 index 0000000000..1d4c35739f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/bench.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python3 + +# Copyright 2022 ByteDance Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import tempfile +import os +import subprocess +import argparse + +gbench_prefix = "SONIC_NO_ASYNC_GC=1 go test -benchmem -run=none " + +def run(cmd): + print(cmd) + if os.system(cmd): + print ("Failed to run cmd: %s"%(cmd)) + exit(1) + +def run_s(cmd): + print (cmd) + try: + res = os.popen(cmd) + except subprocess.CalledProcessError as e: + if e.returncode: + print (e.output) + exit(1) + return res.read() + +def run_r(cmd): + print (cmd) + try: + cmds = cmd.split(' ') + data = subprocess.check_output(cmds, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as e: + if e.returncode: + print (e.output) + exit(1) + return data.decode("utf-8") + +def compare(args): + # detech current branch. + # result = run_r("git branch") + current_branch = run_s("git status | head -n1 | sed 's/On branch //'") + # for br in result.split('\n'): + # if br.startswith("* "): + # current_branch = br.lstrip('* ') + # break + + if not current_branch: + print ("Failed to detech current branch") + return None + + # get the current diff + (fd, diff) = tempfile.mkstemp() + run("git diff > %s"%diff) + + # early return if currrent is main branch. + print ("Current branch: %s"%(current_branch)) + if current_branch == "main": + print ("Cannot compare at the main branch.Please build a new branch") + return None + + # benchmark current branch + (fd, target) = tempfile.mkstemp(".target.txt") + run("%s %s ./... 2>&1 | tee %s" %(gbench_prefix, args, target)) + + # trying to switch to the latest main branch + run("git checkout -- .") + if current_branch != "main": + run("git checkout main") + run("git pull --allow-unrelated-histories origin main") + + # benchmark main branch + (fd, main) = tempfile.mkstemp(".main.txt") + run("%s %s ./... 2>&1 | tee %s" %(gbench_prefix, args, main)) + + # diff the result + # benchstat = "go get golang.org/x/perf/cmd/benchstat && go install golang.org/x/perf/cmd/benchstat" + run( "benchstat -sort=delta %s %s"%(main, target)) + run("git checkout -- .") + + # restore branch + if current_branch != "main": + run("git checkout %s"%(current_branch)) + run("patch -p1 < %s" % (diff)) + return target + +def main(): + argparser = argparse.ArgumentParser(description='Tools to test the performance. Example: ./bench.py -b Decoder_Generic_Sonic -c') + argparser.add_argument('-b', '--bench', dest='filter', required=False, + help='Specify the filter for golang benchmark') + argparser.add_argument('-c', '--compare', dest='compare', action='store_true', required=False, + help='Compare with the main benchmarking') + argparser.add_argument('-t', '--times', dest='times', required=False, + help='benchmark the times') + argparser.add_argument('-r', '--repeat_times', dest='count', required=False, + help='benchmark the count') + args = argparser.parse_args() + + if args.filter: + gbench_args = "-bench=%s"%(args.filter) + else: + gbench_args = "-bench=." + + if args.times: + gbench_args += " -benchtime=%s"%(args.times) + + if args.count: + gbench_args += " -count=%s"%(args.count) + else: + gbench_args += " -count=10" + + if args.compare: + target = compare(gbench_args) + else: + target = None + + if not target: + (fd, target) = tempfile.mkstemp(".target.txt") + run("%s %s ./... 2>&1 | tee %s" %(gbench_prefix, gbench_args, target)) + +if __name__ == "__main__": + main() diff --git a/vendor/github.com/bytedance/sonic/bench.sh b/vendor/github.com/bytedance/sonic/bench.sh new file mode 100644 index 0000000000..701986b58a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/bench.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +pwd=$(pwd) +export SONIC_NO_ASYNC_GC=1 + +cd $pwd/encoder +go test -benchmem -run=^$ -benchtime=100000x -bench "^(BenchmarkEncoder_.*)$" + +cd $pwd/decoder +go test -benchmem -run=^$ -benchtime=100000x -bench "^(BenchmarkDecoder_.*)$" + +cd $pwd/ast +go test -benchmem -run=^$ -benchtime=1000000x -bench "^(BenchmarkGet.*|BenchmarkSet.*)$" + +go test -benchmem -run=^$ -benchtime=10000x -bench "^(BenchmarkParser_.*|BenchmarkEncode.*)$" + +go test -benchmem -run=^$ -benchtime=10000000x -bench "^(BenchmarkNodeGetByPath|BenchmarkStructGetByPath|BenchmarkNodeIndex|BenchmarkStructIndex|BenchmarkSliceIndex|BenchmarkMapIndex|BenchmarkNodeGet|BenchmarkSliceGet|BenchmarkMapGet|BenchmarkNodeSet|BenchmarkMapSet|BenchmarkNodeSetByIndex|BenchmarkSliceSetByIndex|BenchmarkStructSetByIndex|BenchmarkNodeUnset|BenchmarkMapUnset|BenchmarkNodUnsetByIndex|BenchmarkSliceUnsetByIndex|BenchmarkNodeAdd|BenchmarkSliceAdd|BenchmarkMapAdd)$" + +cd $pwd/external_jsonlib_test/benchmark_test +go test -benchmem -run=^$ -benchtime=100000x -bench "^(BenchmarkEncoder_.*|BenchmarkDecoder_.*)$" + +go test -benchmem -run=^$ -benchtime=1000000x -bench "^(BenchmarkGet.*|BenchmarkSet.*)$" + +go test -benchmem -run=^$ -benchtime=10000x -bench "^(BenchmarkParser_.*)$" + +unset SONIC_NO_ASYNC_GC +cd $pwd \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/check_branch_name.sh b/vendor/github.com/bytedance/sonic/check_branch_name.sh new file mode 100644 index 0000000000..d1905dab13 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/check_branch_name.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +current=$(git status | head -n1 | sed 's/On branch //') +name=${1:-$current} +if [[ ! $name =~ ^(((opt(imize)?|feat(ure)?|doc|(bug|hot)?fix|test|refact(or)?|ci)/.+)|(main|develop)|(release/.+)|(release-v[0-9]+\.[0-9]+)|(release/v[0-9]+\.[0-9]+\.[0-9]+(-[a-z0-9.]+(\+[a-z0-9.]+)?)?)|revert-[a-z0-9]+)$ ]]; then + echo "branch name '$name' is invalid" + exit 1 +else + echo "branch name '$name' is valid" +fi diff --git a/vendor/github.com/bytedance/sonic/compat.go b/vendor/github.com/bytedance/sonic/compat.go new file mode 100644 index 0000000000..015aa62bfb --- /dev/null +++ b/vendor/github.com/bytedance/sonic/compat.go @@ -0,0 +1,131 @@ +// +build !amd64 go1.21 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sonic + +import ( + `bytes` + `encoding/json` + `io` + `reflect` + + `github.com/bytedance/sonic/option` +) + +type frozenConfig struct { + Config +} + +// Froze convert the Config to API +func (cfg Config) Froze() API { + api := &frozenConfig{Config: cfg} + return api +} + +func (cfg frozenConfig) marshalOptions(val interface{}, prefix, indent string) ([]byte, error) { + w := bytes.NewBuffer([]byte{}) + enc := json.NewEncoder(w) + enc.SetEscapeHTML(cfg.EscapeHTML) + enc.SetIndent(prefix, indent) + err := enc.Encode(val) + out := w.Bytes() + + // json.Encoder always appends '\n' after encoding, + // which is not same with json.Marshal() + if len(out) > 0 && out[len(out)-1] == '\n' { + out = out[:len(out)-1] + } + return out, err +} + +// Marshal is implemented by sonic +func (cfg frozenConfig) Marshal(val interface{}) ([]byte, error) { + if !cfg.EscapeHTML { + return cfg.marshalOptions(val, "", "") + } + return json.Marshal(val) +} + +// MarshalToString is implemented by sonic +func (cfg frozenConfig) MarshalToString(val interface{}) (string, error) { + out, err := cfg.Marshal(val) + return string(out), err +} + +// MarshalIndent is implemented by sonic +func (cfg frozenConfig) MarshalIndent(val interface{}, prefix, indent string) ([]byte, error) { + if !cfg.EscapeHTML { + return cfg.marshalOptions(val, prefix, indent) + } + return json.MarshalIndent(val, prefix, indent) +} + +// UnmarshalFromString is implemented by sonic +func (cfg frozenConfig) UnmarshalFromString(buf string, val interface{}) error { + r := bytes.NewBufferString(buf) + dec := json.NewDecoder(r) + if cfg.UseNumber { + dec.UseNumber() + } + if cfg.DisallowUnknownFields { + dec.DisallowUnknownFields() + } + return dec.Decode(val) +} + +// Unmarshal is implemented by sonic +func (cfg frozenConfig) Unmarshal(buf []byte, val interface{}) error { + return cfg.UnmarshalFromString(string(buf), val) +} + +// NewEncoder is implemented by sonic +func (cfg frozenConfig) NewEncoder(writer io.Writer) Encoder { + enc := json.NewEncoder(writer) + if !cfg.EscapeHTML { + enc.SetEscapeHTML(cfg.EscapeHTML) + } + return enc +} + +// NewDecoder is implemented by sonic +func (cfg frozenConfig) NewDecoder(reader io.Reader) Decoder { + dec := json.NewDecoder(reader) + if cfg.UseNumber { + dec.UseNumber() + } + if cfg.DisallowUnknownFields { + dec.DisallowUnknownFields() + } + return dec +} + +// Valid is implemented by sonic +func (cfg frozenConfig) Valid(data []byte) bool { + return json.Valid(data) +} + +// Pretouch compiles vt ahead-of-time to avoid JIT compilation on-the-fly, in +// order to reduce the first-hit latency at **amd64** Arch. +// Opts are the compile options, for example, "option.WithCompileRecursiveDepth" is +// a compile option to set the depth of recursive compile for the nested struct type. +// * This is the none implement for !amd64. +// It will be useful for someone who develop with !amd64 arch,like Mac M1. +func Pretouch(vt reflect.Type, opts ...option.CompileOption) error { + return nil +} + diff --git a/vendor/github.com/bytedance/sonic/decoder/asm.s b/vendor/github.com/bytedance/sonic/decoder/asm.s new file mode 100644 index 0000000000..e69de29bb2 diff --git a/vendor/github.com/bytedance/sonic/decoder/assembler_amd64_go116.go b/vendor/github.com/bytedance/sonic/decoder/assembler_amd64_go116.go new file mode 100644 index 0000000000..9ff1ad248f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/assembler_amd64_go116.go @@ -0,0 +1,1943 @@ +// +build go1.15,!go1.17 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `encoding/json` + `fmt` + `math` + `reflect` + `strconv` + `unsafe` + + `github.com/bytedance/sonic/internal/caching` + `github.com/bytedance/sonic/internal/jit` + `github.com/bytedance/sonic/internal/native` + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` +) + +/** Register Allocations + * + * State Registers: + * + * %rbx : stack base + * %r12 : input pointer + * %r13 : input length + * %r14 : input cursor + * %r15 : value pointer + * + * Error Registers: + * + * %r10 : error type register + * %r11 : error pointer register + */ + +/** Function Prototype & Stack Map + * + * func (s string, ic int, vp unsafe.Pointer, sb *_Stack, fv uint64, sv string) (rc int, err error) + * + * s.buf : (FP) + * s.len : 8(FP) + * ic : 16(FP) + * vp : 24(FP) + * sb : 32(FP) + * fv : 40(FP) + * sv : 56(FP) + * err.vt : 72(FP) + * err.vp : 80(FP) + */ + +const ( + _FP_args = 96 // 96 bytes to pass arguments and return values for this function + _FP_fargs = 80 // 80 bytes for passing arguments to other Go functions + _FP_saves = 40 // 40 bytes for saving the registers before CALL instructions + _FP_locals = 144 // 144 bytes for local variables +) + +const ( + _FP_offs = _FP_fargs + _FP_saves + _FP_locals + _FP_size = _FP_offs + 8 // 8 bytes for the parent frame pointer + _FP_base = _FP_size + 8 // 8 bytes for the return address +) + +const ( + _IM_null = 0x6c6c756e // 'null' + _IM_true = 0x65757274 // 'true' + _IM_alse = 0x65736c61 // 'alse' ('false' without the 'f') +) + +const ( + _BM_space = (1 << ' ') | (1 << '\t') | (1 << '\r') | (1 << '\n') +) + +const ( + _MODE_JSON = 1 << 3 // base64 mode +) + +const ( + _LB_error = "_error" + _LB_im_error = "_im_error" + _LB_eof_error = "_eof_error" + _LB_type_error = "_type_error" + _LB_field_error = "_field_error" + _LB_range_error = "_range_error" + _LB_stack_error = "_stack_error" + _LB_base64_error = "_base64_error" + _LB_unquote_error = "_unquote_error" + _LB_parsing_error = "_parsing_error" + _LB_parsing_error_v = "_parsing_error_v" + _LB_mismatch_error = "_mismatch_error" +) + +const ( + _LB_char_0_error = "_char_0_error" + _LB_char_1_error = "_char_1_error" + _LB_char_2_error = "_char_2_error" + _LB_char_3_error = "_char_3_error" + _LB_char_4_error = "_char_4_error" + _LB_char_m2_error = "_char_m2_error" + _LB_char_m3_error = "_char_m3_error" +) + +const ( + _LB_skip_one = "_skip_one" + _LB_skip_key_value = "_skip_key_value" +) + +var ( + _AX = jit.Reg("AX") + _CX = jit.Reg("CX") + _DX = jit.Reg("DX") + _DI = jit.Reg("DI") + _SI = jit.Reg("SI") + _BP = jit.Reg("BP") + _SP = jit.Reg("SP") + _R8 = jit.Reg("R8") + _R9 = jit.Reg("R9") + _X0 = jit.Reg("X0") + _X1 = jit.Reg("X1") +) + +var ( + _ST = jit.Reg("BX") + _IP = jit.Reg("R12") + _IL = jit.Reg("R13") + _IC = jit.Reg("R14") + _VP = jit.Reg("R15") +) + +var ( + _R10 = jit.Reg("R10") // used for gcWriteBarrier + _DF = jit.Reg("R10") // reuse R10 in generic decoder for flags + _ET = jit.Reg("R10") + _EP = jit.Reg("R11") +) + +var ( + _ARG_s = _ARG_sp + _ARG_sp = jit.Ptr(_SP, _FP_base) + _ARG_sl = jit.Ptr(_SP, _FP_base + 8) + _ARG_ic = jit.Ptr(_SP, _FP_base + 16) + _ARG_vp = jit.Ptr(_SP, _FP_base + 24) + _ARG_sb = jit.Ptr(_SP, _FP_base + 32) + _ARG_fv = jit.Ptr(_SP, _FP_base + 40) +) + +var ( + _VAR_sv = _VAR_sv_p + _VAR_sv_p = jit.Ptr(_SP, _FP_base + 48) + _VAR_sv_n = jit.Ptr(_SP, _FP_base + 56) + _VAR_vk = jit.Ptr(_SP, _FP_base + 64) +) + +var ( + _RET_rc = jit.Ptr(_SP, _FP_base + 72) + _RET_et = jit.Ptr(_SP, _FP_base + 80) + _RET_ep = jit.Ptr(_SP, _FP_base + 88) +) + +var ( + _VAR_st = _VAR_st_Vt + _VAR_sr = jit.Ptr(_SP, _FP_fargs + _FP_saves) +) + + +var ( + _VAR_st_Vt = jit.Ptr(_SP, _FP_fargs + _FP_saves + 0) + _VAR_st_Dv = jit.Ptr(_SP, _FP_fargs + _FP_saves + 8) + _VAR_st_Iv = jit.Ptr(_SP, _FP_fargs + _FP_saves + 16) + _VAR_st_Ep = jit.Ptr(_SP, _FP_fargs + _FP_saves + 24) + _VAR_st_Db = jit.Ptr(_SP, _FP_fargs + _FP_saves + 32) + _VAR_st_Dc = jit.Ptr(_SP, _FP_fargs + _FP_saves + 40) +) + +var ( + _VAR_ss_AX = jit.Ptr(_SP, _FP_fargs + _FP_saves + 48) + _VAR_ss_CX = jit.Ptr(_SP, _FP_fargs + _FP_saves + 56) + _VAR_ss_SI = jit.Ptr(_SP, _FP_fargs + _FP_saves + 64) + _VAR_ss_R8 = jit.Ptr(_SP, _FP_fargs + _FP_saves + 72) + _VAR_ss_R9 = jit.Ptr(_SP, _FP_fargs + _FP_saves + 80) +) + +var ( + _VAR_bs_p = jit.Ptr(_SP, _FP_fargs + _FP_saves + 88) + _VAR_bs_n = jit.Ptr(_SP, _FP_fargs + _FP_saves + 96) + _VAR_bs_LR = jit.Ptr(_SP, _FP_fargs + _FP_saves + 104) +) + +var _VAR_fl = jit.Ptr(_SP, _FP_fargs + _FP_saves + 112) + +var ( + _VAR_et = jit.Ptr(_SP, _FP_fargs + _FP_saves + 120) // save dismatched type + _VAR_ic = jit.Ptr(_SP, _FP_fargs + _FP_saves + 128) // save dismatched position + _VAR_pc = jit.Ptr(_SP, _FP_fargs + _FP_saves + 136) // save skip return pc +) + +type _Assembler struct { + jit.BaseAssembler + p _Program + name string +} + +func newAssembler(p _Program) *_Assembler { + return new(_Assembler).Init(p) +} + +/** Assembler Interface **/ + +func (self *_Assembler) Load() _Decoder { + return ptodec(self.BaseAssembler.Load("decode_"+self.name, _FP_size, _FP_args, argPtrs, localPtrs)) +} + +func (self *_Assembler) Init(p _Program) *_Assembler { + self.p = p + self.BaseAssembler.Init(self.compile) + return self +} + +func (self *_Assembler) compile() { + self.prologue() + self.instrs() + self.epilogue() + self.copy_string() + self.escape_string() + self.escape_string_twice() + self.skip_one() + self.skip_key_value() + self.mismatch_error() + self.type_error() + self.field_error() + self.range_error() + self.stack_error() + self.base64_error() + self.parsing_error() +} + +/** Assembler Stages **/ + +var _OpFuncTab = [256]func(*_Assembler, *_Instr) { + _OP_any : (*_Assembler)._asm_OP_any, + _OP_dyn : (*_Assembler)._asm_OP_dyn, + _OP_str : (*_Assembler)._asm_OP_str, + _OP_bin : (*_Assembler)._asm_OP_bin, + _OP_bool : (*_Assembler)._asm_OP_bool, + _OP_num : (*_Assembler)._asm_OP_num, + _OP_i8 : (*_Assembler)._asm_OP_i8, + _OP_i16 : (*_Assembler)._asm_OP_i16, + _OP_i32 : (*_Assembler)._asm_OP_i32, + _OP_i64 : (*_Assembler)._asm_OP_i64, + _OP_u8 : (*_Assembler)._asm_OP_u8, + _OP_u16 : (*_Assembler)._asm_OP_u16, + _OP_u32 : (*_Assembler)._asm_OP_u32, + _OP_u64 : (*_Assembler)._asm_OP_u64, + _OP_f32 : (*_Assembler)._asm_OP_f32, + _OP_f64 : (*_Assembler)._asm_OP_f64, + _OP_unquote : (*_Assembler)._asm_OP_unquote, + _OP_nil_1 : (*_Assembler)._asm_OP_nil_1, + _OP_nil_2 : (*_Assembler)._asm_OP_nil_2, + _OP_nil_3 : (*_Assembler)._asm_OP_nil_3, + _OP_deref : (*_Assembler)._asm_OP_deref, + _OP_index : (*_Assembler)._asm_OP_index, + _OP_is_null : (*_Assembler)._asm_OP_is_null, + _OP_is_null_quote : (*_Assembler)._asm_OP_is_null_quote, + _OP_map_init : (*_Assembler)._asm_OP_map_init, + _OP_map_key_i8 : (*_Assembler)._asm_OP_map_key_i8, + _OP_map_key_i16 : (*_Assembler)._asm_OP_map_key_i16, + _OP_map_key_i32 : (*_Assembler)._asm_OP_map_key_i32, + _OP_map_key_i64 : (*_Assembler)._asm_OP_map_key_i64, + _OP_map_key_u8 : (*_Assembler)._asm_OP_map_key_u8, + _OP_map_key_u16 : (*_Assembler)._asm_OP_map_key_u16, + _OP_map_key_u32 : (*_Assembler)._asm_OP_map_key_u32, + _OP_map_key_u64 : (*_Assembler)._asm_OP_map_key_u64, + _OP_map_key_f32 : (*_Assembler)._asm_OP_map_key_f32, + _OP_map_key_f64 : (*_Assembler)._asm_OP_map_key_f64, + _OP_map_key_str : (*_Assembler)._asm_OP_map_key_str, + _OP_map_key_utext : (*_Assembler)._asm_OP_map_key_utext, + _OP_map_key_utext_p : (*_Assembler)._asm_OP_map_key_utext_p, + _OP_array_skip : (*_Assembler)._asm_OP_array_skip, + _OP_array_clear : (*_Assembler)._asm_OP_array_clear, + _OP_array_clear_p : (*_Assembler)._asm_OP_array_clear_p, + _OP_slice_init : (*_Assembler)._asm_OP_slice_init, + _OP_slice_append : (*_Assembler)._asm_OP_slice_append, + _OP_object_skip : (*_Assembler)._asm_OP_object_skip, + _OP_object_next : (*_Assembler)._asm_OP_object_next, + _OP_struct_field : (*_Assembler)._asm_OP_struct_field, + _OP_unmarshal : (*_Assembler)._asm_OP_unmarshal, + _OP_unmarshal_p : (*_Assembler)._asm_OP_unmarshal_p, + _OP_unmarshal_text : (*_Assembler)._asm_OP_unmarshal_text, + _OP_unmarshal_text_p : (*_Assembler)._asm_OP_unmarshal_text_p, + _OP_lspace : (*_Assembler)._asm_OP_lspace, + _OP_match_char : (*_Assembler)._asm_OP_match_char, + _OP_check_char : (*_Assembler)._asm_OP_check_char, + _OP_load : (*_Assembler)._asm_OP_load, + _OP_save : (*_Assembler)._asm_OP_save, + _OP_drop : (*_Assembler)._asm_OP_drop, + _OP_drop_2 : (*_Assembler)._asm_OP_drop_2, + _OP_recurse : (*_Assembler)._asm_OP_recurse, + _OP_goto : (*_Assembler)._asm_OP_goto, + _OP_switch : (*_Assembler)._asm_OP_switch, + _OP_check_char_0 : (*_Assembler)._asm_OP_check_char_0, + _OP_dismatch_err : (*_Assembler)._asm_OP_dismatch_err, + _OP_go_skip : (*_Assembler)._asm_OP_go_skip, + _OP_add : (*_Assembler)._asm_OP_add, +} + +func (self *_Assembler) instr(v *_Instr) { + if fn := _OpFuncTab[v.op()]; fn != nil { + fn(self, v) + } else { + panic(fmt.Sprintf("invalid opcode: %d", v.op())) + } +} + +func (self *_Assembler) instrs() { + for i, v := range self.p { + self.Mark(i) + self.instr(&v) + self.debug_instr(i, &v) + } +} + +func (self *_Assembler) epilogue() { + self.Mark(len(self.p)) + self.Emit("XORL", _EP, _EP) // XORL EP, EP + self.Emit("MOVQ", _VAR_et, _ET) // MOVQ VAR_et, ET + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ", _LB_mismatch_error) // JNZ _LB_mismatch_error + self.Link(_LB_error) // _error: + self.Emit("MOVQ", _IC, _RET_rc) // MOVQ IC, rc<>+40(FP) + self.Emit("MOVQ", _ET, _RET_et) // MOVQ ET, et<>+48(FP) + self.Emit("MOVQ", _EP, _RET_ep) // MOVQ EP, ep<>+56(FP) + self.Emit("MOVQ", jit.Ptr(_SP, _FP_offs), _BP) // MOVQ _FP_offs(SP), BP + self.Emit("ADDQ", jit.Imm(_FP_size), _SP) // ADDQ $_FP_size, SP + self.Emit("RET") // RET +} + +func (self *_Assembler) prologue() { + self.Emit("SUBQ", jit.Imm(_FP_size), _SP) // SUBQ $_FP_size, SP + self.Emit("MOVQ", _BP, jit.Ptr(_SP, _FP_offs)) // MOVQ BP, _FP_offs(SP) + self.Emit("LEAQ", jit.Ptr(_SP, _FP_offs), _BP) // LEAQ _FP_offs(SP), BP + self.Emit("MOVQ", _ARG_sp, _IP) // MOVQ s.p<>+0(FP), IP + self.Emit("MOVQ", _ARG_sl, _IL) // MOVQ s.l<>+8(FP), IL + self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC + self.Emit("MOVQ", _ARG_vp, _VP) // MOVQ vp<>+24(FP), VP + self.Emit("MOVQ", _ARG_sb, _ST) // MOVQ vp<>+32(FP), ST + // initialize digital buffer first + self.Emit("MOVQ", jit.Imm(_MaxDigitNums), _VAR_st_Dc) // MOVQ $_MaxDigitNums, ss.Dcap + self.Emit("LEAQ", jit.Ptr(_ST, _DbufOffset), _AX) // LEAQ _DbufOffset(ST), AX + self.Emit("MOVQ", _AX, _VAR_st_Db) // MOVQ AX, ss.Dbuf + self.Emit("XORL", _AX, _AX) // XORL AX, AX + self.Emit("MOVQ", _AX, _VAR_et) // MOVQ AX, ss.Dp +} + +/** Function Calling Helpers **/ + +var _REG_go = []obj.Addr { + _ST, + _VP, + _IP, + _IL, + _IC, +} + +func (self *_Assembler) save(r ...obj.Addr) { + for i, v := range r { + if i > _FP_saves / 8 - 1 { + panic("too many registers to save") + } else { + self.Emit("MOVQ", v, jit.Ptr(_SP, _FP_fargs + int64(i) * 8)) + } + } +} + +func (self *_Assembler) load(r ...obj.Addr) { + for i, v := range r { + if i > _FP_saves / 8 - 1 { + panic("too many registers to load") + } else { + self.Emit("MOVQ", jit.Ptr(_SP, _FP_fargs + int64(i) * 8), v) + } + } +} + +func (self *_Assembler) call(fn obj.Addr) { + self.Emit("MOVQ", fn, _AX) // MOVQ ${fn}, AX + self.Rjmp("CALL", _AX) // CALL AX +} + +func (self *_Assembler) call_go(fn obj.Addr) { + self.save(_REG_go...) // SAVE $REG_go + self.call(fn) // CALL ${fn} + self.load(_REG_go...) // LOAD $REG_go +} + +func (self *_Assembler) call_sf(fn obj.Addr) { + self.Emit("LEAQ", _ARG_s, _DI) // LEAQ s<>+0(FP), DI + self.Emit("MOVQ", _IC, _ARG_ic) // MOVQ IC, ic<>+16(FP) + self.Emit("LEAQ", _ARG_ic, _SI) // LEAQ ic<>+16(FP), SI + self.Emit("LEAQ", jit.Ptr(_ST, _FsmOffset), _DX) // LEAQ _FsmOffset(ST), DX + self.Emit("MOVQ", _ARG_fv, _CX) + self.call(fn) // CALL ${fn} + self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC +} + +func (self *_Assembler) call_vf(fn obj.Addr) { + self.Emit("LEAQ", _ARG_s, _DI) // LEAQ s<>+0(FP), DI + self.Emit("MOVQ", _IC, _ARG_ic) // MOVQ IC, ic<>+16(FP) + self.Emit("LEAQ", _ARG_ic, _SI) // LEAQ ic<>+16(FP), SI + self.Emit("LEAQ", _VAR_st, _DX) // LEAQ st, DX + self.call(fn) // CALL ${fn} + self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC +} + +/** Assembler Error Handlers **/ + +var ( + _F_convT64 = jit.Func(convT64) + _F_error_wrap = jit.Func(error_wrap) + _F_error_type = jit.Func(error_type) + _F_error_field = jit.Func(error_field) + _F_error_value = jit.Func(error_value) + _F_error_mismatch = jit.Func(error_mismatch) +) + +var ( + _I_int8 , _T_int8 = rtype(reflect.TypeOf(int8(0))) + _I_int16 , _T_int16 = rtype(reflect.TypeOf(int16(0))) + _I_int32 , _T_int32 = rtype(reflect.TypeOf(int32(0))) + _I_uint8 , _T_uint8 = rtype(reflect.TypeOf(uint8(0))) + _I_uint16 , _T_uint16 = rtype(reflect.TypeOf(uint16(0))) + _I_uint32 , _T_uint32 = rtype(reflect.TypeOf(uint32(0))) + _I_float32 , _T_float32 = rtype(reflect.TypeOf(float32(0))) +) + +var ( + _T_error = rt.UnpackType(errorType) + _I_base64_CorruptInputError = jit.Itab(_T_error, base64CorruptInputError) +) + +var ( + _V_stackOverflow = jit.Imm(int64(uintptr(unsafe.Pointer(&stackOverflow)))) + _I_json_UnsupportedValueError = jit.Itab(_T_error, reflect.TypeOf(new(json.UnsupportedValueError))) +) + +func (self *_Assembler) type_error() { + self.Link(_LB_type_error) // _type_error: + self.Emit("MOVQ", _ET, jit.Ptr(_SP, 0)) // MOVQ ET, (SP) + self.call_go(_F_error_type) // CALL_GO error_type + self.Emit("MOVQ", jit.Ptr(_SP, 8), _ET) // MOVQ 8(SP), ET + self.Emit("MOVQ", jit.Ptr(_SP, 16), _EP) // MOVQ 16(SP), EP + self.Sjmp("JMP" , _LB_error) // JMP _error +} + + +func (self *_Assembler) mismatch_error() { + self.Link(_LB_mismatch_error) // _type_error: + self.Emit("MOVQ", _ARG_sp, _AX) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ", _ARG_sl, _CX) + self.Emit("MOVQ", _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) + self.Emit("MOVQ", _VAR_ic, _AX) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) + self.Emit("MOVQ", _VAR_et, _CX) + self.Emit("MOVQ", _CX, jit.Ptr(_SP, 24)) // MOVQ CX, 24(SP) + self.call_go(_F_error_mismatch) // CALL_GO error_type + self.Emit("MOVQ", jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET + self.Emit("MOVQ", jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) _asm_OP_dismatch_err(p *_Instr) { + self.Emit("MOVQ", _IC, _VAR_ic) + self.Emit("MOVQ", jit.Type(p.vt()), _ET) + self.Emit("MOVQ", _ET, _VAR_et) +} + +func (self *_Assembler) _asm_OP_go_skip(p *_Instr) { + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Xref(p.vi(), 4) + self.Emit("MOVQ", _R9, _VAR_pc) + self.Sjmp("JMP" , _LB_skip_one) // JMP _skip_one +} + +func (self *_Assembler) skip_one() { + self.Link(_LB_skip_one) // _skip: + self.Emit("MOVQ", _VAR_ic, _IC) // MOVQ _VAR_ic, IC + self.call_sf(_F_skip_one) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v + self.Emit("MOVQ" , _VAR_pc, _R9) // MOVQ pc, R9 + self.Rjmp("JMP" , _R9) // JMP (R9) +} + + +func (self *_Assembler) skip_key_value() { + self.Link(_LB_skip_key_value) // _skip: + // skip the key + self.Emit("MOVQ", _VAR_ic, _IC) // MOVQ _VAR_ic, IC + self.call_sf(_F_skip_one) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v + // match char ':' + self.lspace("_global_1") + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(':')) + self.Sjmp("JNE" , _LB_parsing_error_v) // JNE _parse_error_v + self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC + self.lspace("_global_2") + // skip the value + self.call_sf(_F_skip_one) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v + // jump back to specified address + self.Emit("MOVQ" , _VAR_pc, _R9) // MOVQ pc, R9 + self.Rjmp("JMP" , _R9) // JMP (R9) +} + +func (self *_Assembler) field_error() { + self.Link(_LB_field_error) // _field_error: + self.Emit("MOVOU", _VAR_sv, _X0) // MOVOU sv, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_SP, 0)) // MOVOU X0, (SP) + self.call_go(_F_error_field) // CALL_GO error_field + self.Emit("MOVQ" , jit.Ptr(_SP, 16), _ET) // MOVQ 16(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 24), _EP) // MOVQ 24(SP), EP + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) range_error() { + self.Link(_LB_range_error) // _range_error: + self.slice_from(_VAR_st_Ep, 0) // SLICE st.Ep, $0 + self.Emit("MOVQ", _DI, jit.Ptr(_SP, 0)) // MOVQ DI, (SP) + self.Emit("MOVQ", _SI, jit.Ptr(_SP, 8)) // MOVQ SI, 8(SP) + self.Emit("MOVQ", _ET, jit.Ptr(_SP, 16)) // MOVQ ET, 16(SP) + self.Emit("MOVQ", _EP, jit.Ptr(_SP, 24)) // MOVQ EP, 24(SP) + self.call_go(_F_error_value) // CALL_GO error_value + self.Emit("MOVQ", jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET + self.Emit("MOVQ", jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) stack_error() { + self.Link(_LB_stack_error) // _stack_error: + self.Emit("MOVQ", _V_stackOverflow, _EP) // MOVQ ${_V_stackOverflow}, EP + self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ ${_I_json_UnsupportedValueError}, ET + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) base64_error() { + self.Link(_LB_base64_error) + self.Emit("NEGQ", _AX) // NEGQ AX + self.Emit("SUBQ", jit.Imm(1), _AX) // SUBQ $1, AX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.call_go(_F_convT64) // CALL_GO convT64 + self.Emit("MOVQ", jit.Ptr(_SP, 8), _EP) // MOVQ 8(SP), EP + self.Emit("MOVQ", _I_base64_CorruptInputError, _ET) // MOVQ ${itab(base64.CorruptInputError)}, ET + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) parsing_error() { + self.Link(_LB_eof_error) // _eof_error: + self.Emit("MOVQ" , _IL, _IC) // MOVQ IL, IC + self.Emit("MOVL" , jit.Imm(int64(types.ERR_EOF)), _EP) // MOVL ${types.ERR_EOF}, EP + self.Sjmp("JMP" , _LB_parsing_error) // JMP _parsing_error + self.Link(_LB_unquote_error) // _unquote_error: + self.Emit("SUBQ" , _VAR_sr, _SI) // SUBQ sr, SI + self.Emit("SUBQ" , _SI, _IC) // SUBQ IL, IC + self.Link(_LB_parsing_error_v) // _parsing_error_v: + self.Emit("MOVQ" , _AX, _EP) // MOVQ AX, EP + self.Emit("NEGQ" , _EP) // NEGQ EP + self.Sjmp("JMP" , _LB_parsing_error) // JMP _parsing_error + self.Link(_LB_char_m3_error) // _char_m3_error: + self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC + self.Link(_LB_char_m2_error) // _char_m2_error: + self.Emit("SUBQ" , jit.Imm(2), _IC) // SUBQ $2, IC + self.Sjmp("JMP" , _LB_char_0_error) // JMP _char_0_error + self.Link(_LB_im_error) // _im_error: + self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPB CX, (IP)(IC) + self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error + self.Emit("SHRL" , jit.Imm(8), _CX) // SHRL $8, CX + self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 1)) // CMPB CX, 1(IP)(IC) + self.Sjmp("JNE" , _LB_char_1_error) // JNE _char_1_error + self.Emit("SHRL" , jit.Imm(8), _CX) // SHRL $8, CX + self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 2)) // CMPB CX, 2(IP)(IC) + self.Sjmp("JNE" , _LB_char_2_error) // JNE _char_2_error + self.Sjmp("JMP" , _LB_char_3_error) // JNE _char_3_error + self.Link(_LB_char_4_error) // _char_4_error: + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Link(_LB_char_3_error) // _char_3_error: + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Link(_LB_char_2_error) // _char_2_error: + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Link(_LB_char_1_error) // _char_1_error: + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Link(_LB_char_0_error) // _char_0_error: + self.Emit("MOVL" , jit.Imm(int64(types.ERR_INVALID_CHAR)), _EP) // MOVL ${types.ERR_INVALID_CHAR}, EP + self.Link(_LB_parsing_error) // _parsing_error: + self.Emit("MOVOU", _ARG_s, _X0) // MOVOU s, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_SP, 0)) // MOVOU X0, (SP) + self.Emit("MOVQ" , _IC, jit.Ptr(_SP, 16)) // MOVQ IC, 16(SP) + self.Emit("MOVQ" , _EP, jit.Ptr(_SP, 24)) // MOVQ EP, 24(SP) + self.call_go(_F_error_wrap) // CALL_GO error_wrap + self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +/** Memory Management Routines **/ + +var ( + _T_byte = jit.Type(byteType) + _F_mallocgc = jit.Func(mallocgc) +) + +func (self *_Assembler) malloc(nb obj.Addr, ret obj.Addr) { + self.Emit("XORL", _AX, _AX) // XORL AX, AX + self.Emit("MOVQ", _T_byte, _CX) // MOVQ ${type(byte)}, CX + self.Emit("MOVQ", nb, jit.Ptr(_SP, 0)) // MOVQ ${nb}, (SP) + self.Emit("MOVQ", _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) + self.call_go(_F_mallocgc) // CALL_GO mallocgc + self.Emit("MOVQ", jit.Ptr(_SP, 24), ret) // MOVQ 24(SP), ${ret} +} + +func (self *_Assembler) valloc(vt reflect.Type, ret obj.Addr) { + self.Emit("MOVQ", jit.Imm(int64(vt.Size())), _AX) // MOVQ ${vt.Size()}, AX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ", jit.Type(vt), _AX) // MOVQ ${vt}, AX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) + self.Emit("MOVB", jit.Imm(1), jit.Ptr(_SP, 16)) // MOVB $1, 16(SP) + self.call_go(_F_mallocgc) // CALL_GO mallocgc + self.Emit("MOVQ", jit.Ptr(_SP, 24), ret) // MOVQ 24(SP), ${ret} +} + +func (self *_Assembler) vfollow(vt reflect.Type) { + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNZ" , "_end_{n}") // JNZ _end_{n} + self.valloc(vt, _AX) // VALLOC ${vt}, AX + self.WritePtrAX(1, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) + self.Link("_end_{n}") // _end_{n}: + self.Emit("MOVQ" , _AX, _VP) // MOVQ AX, VP +} + +/** Value Parsing Routines **/ + +var ( + _F_vstring = jit.Imm(int64(native.S_vstring)) + _F_vnumber = jit.Imm(int64(native.S_vnumber)) + _F_vsigned = jit.Imm(int64(native.S_vsigned)) + _F_vunsigned = jit.Imm(int64(native.S_vunsigned)) +) + +func (self *_Assembler) check_err(vt reflect.Type, pin string, pin2 int) { + self.Emit("MOVQ" , _VAR_st_Vt, _AX) // MOVQ st.Vt, AX + self.Emit("TESTQ", _AX, _AX) // CMPQ AX, ${native.V_STRING} + // try to skip the value + if vt != nil { + self.Sjmp("JNS" , "_check_err_{n}") // JNE _parsing_error_v + self.Emit("MOVQ", jit.Type(vt), _ET) + self.Emit("MOVQ", _ET, _VAR_et) + if pin2 != -1 { + self.Emit("SUBQ", jit.Imm(1), _BP) + self.Emit("MOVQ", _BP, _VAR_ic) + self.Byte(0x4c , 0x8d, 0x0d) // LEAQ (PC), R9 + self.Xref(pin2, 4) + self.Emit("MOVQ", _R9, _VAR_pc) + self.Sjmp("JMP" , _LB_skip_key_value) + } else { + self.Emit("MOVQ", _BP, _VAR_ic) + self.Byte(0x4c , 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref(pin, 4) + self.Emit("MOVQ", _R9, _VAR_pc) + self.Sjmp("JMP" , _LB_skip_one) + } + self.Link("_check_err_{n}") + } else { + self.Sjmp("JS" , _LB_parsing_error_v) // JNE _parsing_error_v + } +} + +func (self *_Assembler) check_eof(d int64) { + if d == 1 { + self.Emit("CMPQ", _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error + } else { + self.Emit("LEAQ", jit.Ptr(_IC, d), _AX) // LEAQ ${d}(IC), AX + self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL + self.Sjmp("JA" , _LB_eof_error) // JA _eof_error + } +} + +func (self *_Assembler) parse_string() { // parse_string has a validate flag params in the last + self.Emit("MOVQ", _ARG_fv, _CX) + self.call_vf(_F_vstring) + self.check_err(nil, "", -1) +} + +func (self *_Assembler) parse_number(vt reflect.Type, pin string, pin2 int) { + self.Emit("MOVQ", _IC, _BP) + self.call_vf(_F_vnumber) // call vnumber + self.check_err(vt, pin, pin2) +} + +func (self *_Assembler) parse_signed(vt reflect.Type, pin string, pin2 int) { + self.Emit("MOVQ", _IC, _BP) + self.call_vf(_F_vsigned) + self.check_err(vt, pin, pin2) +} + +func (self *_Assembler) parse_unsigned(vt reflect.Type, pin string, pin2 int) { + self.Emit("MOVQ", _IC, _BP) + self.call_vf(_F_vunsigned) + self.check_err(vt, pin, pin2) +} + +// Pointer: DI, Size: SI, Return: R9 +func (self *_Assembler) copy_string() { + self.Link("_copy_string") + self.Emit("MOVQ", _DI, _VAR_bs_p) + self.Emit("MOVQ", _SI, _VAR_bs_n) + self.Emit("MOVQ", _R9, _VAR_bs_LR) + self.malloc(_SI, _AX) + self.Emit("MOVQ", _AX, _VAR_sv_p) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) + self.Emit("MOVQ", _VAR_bs_p, _DI) + self.Emit("MOVQ", _DI, jit.Ptr(_SP, 8)) + self.Emit("MOVQ", _VAR_bs_n, _SI) + self.Emit("MOVQ", _SI, jit.Ptr(_SP, 16)) + self.call_go(_F_memmove) + self.Emit("MOVQ", _VAR_sv_p, _DI) + self.Emit("MOVQ", _VAR_bs_n, _SI) + self.Emit("MOVQ", _VAR_bs_LR, _R9) + self.Rjmp("JMP", _R9) +} + +// Pointer: DI, Size: SI, Return: R9 +func (self *_Assembler) escape_string() { + self.Link("_escape_string") + self.Emit("MOVQ" , _DI, _VAR_bs_p) + self.Emit("MOVQ" , _SI, _VAR_bs_n) + self.Emit("MOVQ" , _R9, _VAR_bs_LR) + self.malloc(_SI, _DX) // MALLOC SI, DX + self.Emit("MOVQ" , _DX, _VAR_sv_p) + self.Emit("MOVQ" , _VAR_bs_p, _DI) + self.Emit("MOVQ" , _VAR_bs_n, _SI) + self.Emit("LEAQ" , _VAR_sr, _CX) // LEAQ sr, CX + self.Emit("XORL" , _R8, _R8) // XORL R8, R8 + self.Emit("BTQ" , jit.Imm(_F_disable_urc), _ARG_fv) // BTQ ${_F_disable_urc}, fv + self.Emit("SETCC", _R8) // SETCC R8 + self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _R8) // SHLQ ${types.B_UNICODE_REPLACE}, R8 + self.call(_F_unquote) // CALL unquote + self.Emit("MOVQ" , _VAR_bs_n, _SI) // MOVQ ${n}, SI + self.Emit("ADDQ" , jit.Imm(1), _SI) // ADDQ $1, SI + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_unquote_error) // JS _unquote_error + self.Emit("MOVQ" , _AX, _SI) + self.Emit("MOVQ" , _VAR_sv_p, _DI) + self.Emit("MOVQ" , _VAR_bs_LR, _R9) + self.Rjmp("JMP", _R9) +} + +func (self *_Assembler) escape_string_twice() { + self.Link("_escape_string_twice") + self.Emit("MOVQ" , _DI, _VAR_bs_p) + self.Emit("MOVQ" , _SI, _VAR_bs_n) + self.Emit("MOVQ" , _R9, _VAR_bs_LR) + self.malloc(_SI, _DX) // MALLOC SI, DX + self.Emit("MOVQ" , _DX, _VAR_sv_p) + self.Emit("MOVQ" , _VAR_bs_p, _DI) + self.Emit("MOVQ" , _VAR_bs_n, _SI) + self.Emit("LEAQ" , _VAR_sr, _CX) // LEAQ sr, CX + self.Emit("MOVL" , jit.Imm(types.F_DOUBLE_UNQUOTE), _R8) // MOVL ${types.F_DOUBLE_UNQUOTE}, R8 + self.Emit("BTQ" , jit.Imm(_F_disable_urc), _ARG_fv) // BTQ ${_F_disable_urc}, AX + self.Emit("XORL" , _AX, _AX) // XORL AX, AX + self.Emit("SETCC", _AX) // SETCC AX + self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _AX) // SHLQ ${types.B_UNICODE_REPLACE}, AX + self.Emit("ORQ" , _AX, _R8) // ORQ AX, R8 + self.call(_F_unquote) // CALL unquote + self.Emit("MOVQ" , _VAR_bs_n, _SI) // MOVQ ${n}, SI + self.Emit("ADDQ" , jit.Imm(3), _SI) // ADDQ $3, SI + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_unquote_error) // JS _unquote_error + self.Emit("MOVQ" , _AX, _SI) + self.Emit("MOVQ" , _VAR_sv_p, _DI) + self.Emit("MOVQ" , _VAR_bs_LR, _R9) + self.Rjmp("JMP", _R9) +} + +/** Range Checking Routines **/ + +var ( + _V_max_f32 = jit.Imm(int64(uintptr(unsafe.Pointer(_Vp_max_f32)))) + _V_min_f32 = jit.Imm(int64(uintptr(unsafe.Pointer(_Vp_min_f32)))) +) + +var ( + _Vp_max_f32 = new(float64) + _Vp_min_f32 = new(float64) +) + +func init() { + *_Vp_max_f32 = math.MaxFloat32 + *_Vp_min_f32 = -math.MaxFloat32 +} + +func (self *_Assembler) range_single() { + self.Emit("MOVSD" , _VAR_st_Dv, _X0) // MOVSD st.Dv, X0 + self.Emit("MOVQ" , _V_max_f32, _AX) // MOVQ _max_f32, AX + self.Emit("MOVQ" , jit.Gitab(_I_float32), _ET) // MOVQ ${itab(float32)}, ET + self.Emit("MOVQ" , jit.Gtype(_T_float32), _EP) // MOVQ ${type(float32)}, EP + self.Emit("UCOMISD" , jit.Ptr(_AX, 0), _X0) // UCOMISD (AX), X0 + self.Sjmp("JA" , _LB_range_error) // JA _range_error + self.Emit("MOVQ" , _V_min_f32, _AX) // MOVQ _min_f32, AX + self.Emit("MOVSD" , jit.Ptr(_AX, 0), _X1) // MOVSD (AX), X1 + self.Emit("UCOMISD" , _X0, _X1) // UCOMISD X0, X1 + self.Sjmp("JA" , _LB_range_error) // JA _range_error + self.Emit("CVTSD2SS", _X0, _X0) // CVTSD2SS X0, X0 +} + +func (self *_Assembler) range_signed(i *rt.GoItab, t *rt.GoType, a int64, b int64) { + self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX + self.Emit("MOVQ", jit.Gitab(i), _ET) // MOVQ ${i}, ET + self.Emit("MOVQ", jit.Gtype(t), _EP) // MOVQ ${t}, EP + self.Emit("CMPQ", _AX, jit.Imm(a)) // CMPQ AX, ${a} + self.Sjmp("JL" , _LB_range_error) // JL _range_error + self.Emit("CMPQ", _AX, jit.Imm(b)) // CMPQ AX, ${B} + self.Sjmp("JG" , _LB_range_error) // JG _range_error +} + +func (self *_Assembler) range_unsigned(i *rt.GoItab, t *rt.GoType, v uint64) { + self.Emit("MOVQ" , _VAR_st_Iv, _AX) // MOVQ st.Iv, AX + self.Emit("MOVQ" , jit.Gitab(i), _ET) // MOVQ ${i}, ET + self.Emit("MOVQ" , jit.Gtype(t), _EP) // MOVQ ${t}, EP + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_range_error) // JS _range_error + self.Emit("CMPQ" , _AX, jit.Imm(int64(v))) // CMPQ AX, ${a} + self.Sjmp("JA" , _LB_range_error) // JA _range_error +} + +/** String Manipulating Routines **/ + +var ( + _F_unquote = jit.Imm(int64(native.S_unquote)) +) + +func (self *_Assembler) slice_from(p obj.Addr, d int64) { + self.Emit("MOVQ", p, _SI) // MOVQ ${p}, SI + self.slice_from_r(_SI, d) // SLICE_R SI, ${d} +} + +func (self *_Assembler) slice_from_r(p obj.Addr, d int64) { + self.Emit("LEAQ", jit.Sib(_IP, p, 1, 0), _DI) // LEAQ (IP)(${p}), DI + self.Emit("NEGQ", p) // NEGQ ${p} + self.Emit("LEAQ", jit.Sib(_IC, p, 1, d), _SI) // LEAQ d(IC)(${p}), SI +} + +func (self *_Assembler) unquote_once(p obj.Addr, n obj.Addr, stack bool, copy bool) { + self.slice_from(_VAR_st_Iv, -1) // SLICE st.Iv, $-1 + self.Emit("CMPQ" , _VAR_st_Ep, jit.Imm(-1)) // CMPQ st.Ep, $-1 + self.Sjmp("JE" , "_noescape_{n}") // JE _noescape_{n} + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_unquote_once_write_{n}", 4) + self.Sjmp("JMP" , "_escape_string") + self.Link("_noescape_{n}") // _noescape_{n}: + if copy { + self.Emit("BTQ" , jit.Imm(_F_copy_string), _ARG_fv) + self.Sjmp("JNC", "_unquote_once_write_{n}") + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_unquote_once_write_{n}", 4) + self.Sjmp("JMP", "_copy_string") + } + self.Link("_unquote_once_write_{n}") + self.Emit("MOVQ" , _SI, n) // MOVQ SI, ${n} + if stack { + self.Emit("MOVQ", _DI, p) + } else { + self.WriteRecNotAX(10, _DI, p, false, false) + } +} + +func (self *_Assembler) unquote_twice(p obj.Addr, n obj.Addr, stack bool) { + self.Emit("CMPQ" , _VAR_st_Ep, jit.Imm(-1)) // CMPQ st.Ep, $-1 + self.Sjmp("JE" , _LB_eof_error) // JE _eof_error + self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, -3), jit.Imm('\\')) // CMPB -3(IP)(IC), $'\\' + self.Sjmp("JNE" , _LB_char_m3_error) // JNE _char_m3_error + self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, -2), jit.Imm('"')) // CMPB -2(IP)(IC), $'"' + self.Sjmp("JNE" , _LB_char_m2_error) // JNE _char_m2_error + self.slice_from(_VAR_st_Iv, -3) // SLICE st.Iv, $-3 + self.Emit("MOVQ" , _SI, _AX) // MOVQ SI, AX + self.Emit("ADDQ" , _VAR_st_Iv, _AX) // ADDQ st.Iv, AX + self.Emit("CMPQ" , _VAR_st_Ep, _AX) // CMPQ st.Ep, AX + self.Sjmp("JE" , "_noescape_{n}") // JE _noescape_{n} + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_unquote_twice_write_{n}", 4) + self.Sjmp("JMP" , "_escape_string_twice") + self.Link("_noescape_{n}") // _noescape_{n}: + self.Emit("BTQ" , jit.Imm(_F_copy_string), _ARG_fv) + self.Sjmp("JNC", "_unquote_twice_write_{n}") + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_unquote_twice_write_{n}", 4) + self.Sjmp("JMP", "_copy_string") + self.Link("_unquote_twice_write_{n}") + self.Emit("MOVQ" , _SI, n) // MOVQ SI, ${n} + if stack { + self.Emit("MOVQ", _DI, p) + } else { + self.WriteRecNotAX(12, _DI, p, false, false) + } +} + +/** Memory Clearing Routines **/ + +var ( + _F_memclrHasPointers = jit.Func(memclrHasPointers) + _F_memclrNoHeapPointers = jit.Func(memclrNoHeapPointers) +) + +func (self *_Assembler) mem_clear_fn(ptrfree bool) { + if !ptrfree { + self.call_go(_F_memclrHasPointers) + } else { + self.call_go(_F_memclrNoHeapPointers) + } +} + +func (self *_Assembler) mem_clear_rem(size int64, ptrfree bool) { + self.Emit("MOVQ", jit.Imm(size), _CX) // MOVQ ${size}, CX + self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _AX) // MOVQ (ST)(AX), AX + self.Emit("SUBQ", _VP, _AX) // SUBQ VP, AX + self.Emit("ADDQ", _AX, _CX) // ADDQ AX, CX + self.Emit("MOVQ", _VP, jit.Ptr(_SP, 0)) // MOVQ VP, (SP) + self.Emit("MOVQ", _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) + self.mem_clear_fn(ptrfree) // CALL_GO memclr{Has,NoHeap}Pointers +} + +/** Map Assigning Routines **/ + +var ( + _F_mapassign = jit.Func(mapassign) + _F_mapassign_fast32 = jit.Func(mapassign_fast32) + _F_mapassign_faststr = jit.Func(mapassign_faststr) + _F_mapassign_fast64ptr = jit.Func(mapassign_fast64ptr) +) + +var ( + _F_decodeJsonUnmarshaler obj.Addr + _F_decodeTextUnmarshaler obj.Addr +) + +func init() { + _F_decodeJsonUnmarshaler = jit.Func(decodeJsonUnmarshaler) + _F_decodeTextUnmarshaler = jit.Func(decodeTextUnmarshaler) +} + +func (self *_Assembler) mapaccess_ptr(t reflect.Type) { + if rt.MapType(rt.UnpackType(t)).IndirectElem() { + self.vfollow(t.Elem()) + } +} + +func (self *_Assembler) mapassign_std(t reflect.Type, v obj.Addr) { + self.Emit("LEAQ", v, _AX) // LEAQ ${v}, AX + self.mapassign_call(t, _F_mapassign) // MAPASSIGN ${t}, mapassign +} + +func (self *_Assembler) mapassign_str_fast(t reflect.Type, p obj.Addr, n obj.Addr) { + self.Emit("MOVQ", jit.Type(t), _AX) // MOVQ ${t}, AX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ", _VP, jit.Ptr(_SP, 8)) // MOVQ VP, 8(SP) + self.Emit("MOVQ", p, jit.Ptr(_SP, 16)) // MOVQ ${p}, 16(SP) + self.Emit("MOVQ", n, jit.Ptr(_SP, 24)) // MOVQ ${n}, 24(SP) + self.call_go(_F_mapassign_faststr) // CALL_GO ${fn} + self.Emit("MOVQ", jit.Ptr(_SP, 32), _VP) // MOVQ 32(SP), VP + self.mapaccess_ptr(t) +} + +func (self *_Assembler) mapassign_call(t reflect.Type, fn obj.Addr) { + self.Emit("MOVQ", jit.Type(t), _SI) // MOVQ ${t}, SI + self.Emit("MOVQ", _SI, jit.Ptr(_SP, 0)) // MOVQ SI, (SP) + self.Emit("MOVQ", _VP, jit.Ptr(_SP, 8)) // MOVQ VP, 8(SP) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) + self.call_go(fn) // CALL_GO ${fn} + self.Emit("MOVQ", jit.Ptr(_SP, 24), _VP) // MOVQ 24(SP), VP +} + +func (self *_Assembler) mapassign_fastx(t reflect.Type, fn obj.Addr) { + self.mapassign_call(t, fn) + self.mapaccess_ptr(t) +} + +func (self *_Assembler) mapassign_utext(t reflect.Type, addressable bool) { + pv := false + vk := t.Key() + tk := t.Key() + + /* deref pointer if needed */ + if vk.Kind() == reflect.Ptr { + pv = true + vk = vk.Elem() + } + + /* addressable value with pointer receiver */ + if addressable { + pv = false + tk = reflect.PtrTo(tk) + } + + /* allocate the key, and call the unmarshaler */ + self.valloc(vk, _DI) // VALLOC ${vk}, DI + // must spill vk pointer since next call_go may invoke GC + self.Emit("MOVQ" , _DI, _VAR_vk) + self.Emit("MOVQ" , jit.Type(tk), _AX) // MOVQ ${tk}, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ" , _DI, jit.Ptr(_SP, 8)) // MOVQ DI, 8(SP) + self.Emit("MOVOU", _VAR_sv, _X0) // MOVOU sv, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_SP, 16)) // MOVOU X0, 16(SP) + self.call_go(_F_decodeTextUnmarshaler) // CALL_GO decodeTextUnmarshaler + self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error + self.Emit("MOVQ" , _VAR_vk, _AX) + + /* select the correct assignment function */ + if !pv { + self.mapassign_call(t, _F_mapassign) + } else { + self.mapassign_fastx(t, _F_mapassign_fast64ptr) + } +} + +/** External Unmarshaler Routines **/ + +var ( + _F_skip_one = jit.Imm(int64(native.S_skip_one)) + _F_skip_number = jit.Imm(int64(native.S_skip_number)) +) + +func (self *_Assembler) unmarshal_json(t reflect.Type, deref bool) { + self.call_sf(_F_skip_one) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v + self.slice_from_r(_AX, 0) // SLICE_R AX, $0 + self.Emit("MOVQ" , _DI, _VAR_sv_p) // MOVQ DI, sv.p + self.Emit("MOVQ" , _SI, _VAR_sv_n) // MOVQ SI, sv.n + self.unmarshal_func(t, _F_decodeJsonUnmarshaler, deref) // UNMARSHAL json, ${t}, ${deref} +} + +func (self *_Assembler) unmarshal_text(t reflect.Type, deref bool) { + self.parse_string() // PARSE STRING + self.unquote_once(_VAR_sv_p, _VAR_sv_n, true, true) // UNQUOTE once, sv.p, sv.n + self.unmarshal_func(t, _F_decodeTextUnmarshaler, deref) // UNMARSHAL text, ${t}, ${deref} +} + +func (self *_Assembler) unmarshal_func(t reflect.Type, fn obj.Addr, deref bool) { + pt := t + vk := t.Kind() + + /* allocate the field if needed */ + if deref && vk == reflect.Ptr { + self.Emit("MOVQ" , _VP, _AX) // MOVQ VP, AX + self.Emit("MOVQ" , jit.Ptr(_AX, 0), _AX) // MOVQ (AX), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNZ" , "_deref_{n}") // JNZ _deref_{n} + self.valloc(t.Elem(), _AX) // VALLOC ${t.Elem()}, AX + self.WritePtrAX(3, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) + self.Link("_deref_{n}") // _deref_{n}: + } + + /* set value type */ + self.Emit("MOVQ", jit.Type(pt), _CX) // MOVQ ${pt}, CX + self.Emit("MOVQ", _CX, jit.Ptr(_SP, 0)) // MOVQ CX, (SP) + + /* set value pointer */ + if deref && vk == reflect.Ptr { + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) + } else { + self.Emit("MOVQ", _VP, jit.Ptr(_SP, 8)) // MOVQ VP, 8(SP) + } + + /* set the source string and call the unmarshaler */ + self.Emit("MOVOU", _VAR_sv, _X0) // MOVOU sv, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_SP, 16)) // MOVOU X0, 16(SP) + self.call_go(fn) // CALL_GO ${fn} + self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error +} + +/** Dynamic Decoding Routine **/ + +var ( + _F_decodeTypedPointer obj.Addr +) + +func init() { + _F_decodeTypedPointer = jit.Func(decodeTypedPointer) +} + +func (self *_Assembler) decode_dynamic(vt obj.Addr, vp obj.Addr) { + self.Emit("MOVQ" , _ARG_fv, _CX) // MOVQ fv, CX + self.Emit("MOVOU", _ARG_sp, _X0) // MOVOU sp, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_SP, 0)) // MOVOU X0, (SP) + self.Emit("MOVQ" , _IC, jit.Ptr(_SP, 16)) // MOVQ IC, 16(SP) + self.Emit("MOVQ" , vt, jit.Ptr(_SP, 24)) // MOVQ ${vt}, 24(SP) + self.Emit("MOVQ" , vp, jit.Ptr(_SP, 32)) // MOVQ ${vp}, 32(SP) + self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 40)) // MOVQ ST, 40(SP) + self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 48)) // MOVQ CX, 48(SP) + self.call_go(_F_decodeTypedPointer) // CALL_GO decodeTypedPointer + self.Emit("MOVQ" , jit.Ptr(_SP, 64), _ET) // MOVQ 64(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 72), _EP) // MOVQ 72(SP), EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error + self.Emit("MOVQ" , jit.Ptr(_SP, 56), _IC) // MOVQ 56(SP), IC +} + +/** OpCode Assembler Functions **/ + +var ( + _F_memequal = jit.Func(memequal) + _F_memmove = jit.Func(memmove) + _F_growslice = jit.Func(growslice) + _F_makeslice = jit.Func(makeslice) + _F_makemap_small = jit.Func(makemap_small) + _F_mapassign_fast64 = jit.Func(mapassign_fast64) +) + +var ( + _F_lspace = jit.Imm(int64(native.S_lspace)) + _F_strhash = jit.Imm(int64(caching.S_strhash)) +) + +var ( + _F_b64decode = jit.Imm(int64(_subr__b64decode)) + _F_decodeValue = jit.Imm(int64(_subr_decode_value)) +) + +var ( + _F_skip_array = jit.Imm(int64(native.S_skip_array)) + _F_skip_object = jit.Imm(int64(native.S_skip_object)) +) + +var ( + _F_FieldMap_GetCaseInsensitive obj.Addr +) + +const ( + _MODE_AVX2 = 1 << 2 +) + +const ( + _Fe_ID = int64(unsafe.Offsetof(caching.FieldEntry{}.ID)) + _Fe_Name = int64(unsafe.Offsetof(caching.FieldEntry{}.Name)) + _Fe_Hash = int64(unsafe.Offsetof(caching.FieldEntry{}.Hash)) +) + +const ( + _Vk_Ptr = int64(reflect.Ptr) + _Gt_KindFlags = int64(unsafe.Offsetof(rt.GoType{}.KindFlags)) +) + +func init() { + _F_FieldMap_GetCaseInsensitive = jit.Func((*caching.FieldMap).GetCaseInsensitive) +} + +func (self *_Assembler) _asm_OP_any(_ *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_VP, 8), _CX) // MOVQ 8(VP), CX + self.Emit("TESTQ" , _CX, _CX) // TESTQ CX, CX + self.Sjmp("JZ" , "_decode_{n}") // JZ _decode_{n} + self.Emit("CMPQ" , _CX, _VP) // CMPQ CX, VP + self.Sjmp("JE" , "_decode_{n}") // JE _decode_{n} + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX + self.Emit("MOVBLZX", jit.Ptr(_AX, _Gt_KindFlags), _DX) // MOVBLZX _Gt_KindFlags(AX), DX + self.Emit("ANDL" , jit.Imm(rt.F_kind_mask), _DX) // ANDL ${F_kind_mask}, DX + self.Emit("CMPL" , _DX, jit.Imm(_Vk_Ptr)) // CMPL DX, ${reflect.Ptr} + self.Sjmp("JNE" , "_decode_{n}") // JNE _decode_{n} + self.Emit("LEAQ" , jit.Ptr(_VP, 8), _DI) // LEAQ 8(VP), DI + self.decode_dynamic(_AX, _DI) // DECODE AX, DI + self.Sjmp("JMP" , "_decode_end_{n}") // JMP _decode_end_{n} + self.Link("_decode_{n}") // _decode_{n}: + self.Emit("MOVQ" , _ARG_fv, _DF) // MOVQ fv, DF + self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 0)) // MOVQ _ST, (SP) + self.call(_F_decodeValue) // CALL decodeValue + self.Emit("TESTQ" , _EP, _EP) // TESTQ EP, EP + self.Sjmp("JNZ" , _LB_parsing_error) // JNZ _parsing_error + self.Link("_decode_end_{n}") // _decode_end_{n}: +} + +func (self *_Assembler) _asm_OP_dyn(p *_Instr) { + self.Emit("MOVQ" , jit.Type(p.vt()), _ET) // MOVQ ${p.vt()}, ET + self.Emit("CMPQ" , jit.Ptr(_VP, 8), jit.Imm(0)) // CMPQ 8(VP), $0 + self.Sjmp("JE" , _LB_type_error) // JE _type_error + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX + self.Emit("MOVQ" , jit.Ptr(_AX, 8), _AX) // MOVQ 8(AX), AX + self.Emit("MOVBLZX", jit.Ptr(_AX, _Gt_KindFlags), _DX) // MOVBLZX _Gt_KindFlags(AX), DX + self.Emit("ANDL" , jit.Imm(rt.F_kind_mask), _DX) // ANDL ${F_kind_mask}, DX + self.Emit("CMPL" , _DX, jit.Imm(_Vk_Ptr)) // CMPL DX, ${reflect.Ptr} + self.Sjmp("JNE" , _LB_type_error) // JNE _type_error + self.Emit("LEAQ" , jit.Ptr(_VP, 8), _DI) // LEAQ 8(VP), DI + self.decode_dynamic(_AX, _DI) // DECODE AX, DI + self.Link("_decode_end_{n}") // _decode_end_{n}: +} + +func (self *_Assembler) _asm_OP_str(_ *_Instr) { + self.parse_string() // PARSE STRING + self.unquote_once(jit.Ptr(_VP, 0), jit.Ptr(_VP, 8), false, true) // UNQUOTE once, (VP), 8(VP) +} + +func (self *_Assembler) _asm_OP_bin(_ *_Instr) { + self.parse_string() // PARSE STRING + self.slice_from(_VAR_st_Iv, -1) // SLICE st.Iv, $-1 + self.Emit("MOVQ" , _DI, jit.Ptr(_VP, 0)) // MOVQ DI, (VP) + self.Emit("MOVQ" , _SI, jit.Ptr(_VP, 8)) // MOVQ SI, 8(VP) + self.Emit("SHRQ" , jit.Imm(2), _SI) // SHRQ $2, SI + self.Emit("LEAQ" , jit.Sib(_SI, _SI, 2, 0), _SI) // LEAQ (SI)(SI*2), SI + self.Emit("MOVQ" , _SI, jit.Ptr(_VP, 16)) // MOVQ SI, 16(VP) + self.malloc(_SI, _SI) // MALLOC SI, SI + + // TODO: due to base64x's bug, only use AVX mode now + self.Emit("MOVL", jit.Imm(_MODE_JSON), _CX) // MOVL $_MODE_JSON, CX + + /* call the decoder */ + self.Emit("XORL" , _DX, _DX) // XORL DX, DX + self.Emit("MOVQ" , _VP, _DI) // MOVQ VP, DI + + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _R9) // MOVQ SI, (VP) + self.WriteRecNotAX(4, _SI, jit.Ptr(_VP, 0), true, false) // XCHGQ SI, (VP) + self.Emit("MOVQ" , _R9, _SI) + + self.Emit("XCHGQ", _DX, jit.Ptr(_VP, 8)) // XCHGQ DX, 8(VP) + self.call(_F_b64decode) // CALL b64decode + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_base64_error) // JS _base64_error + self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) +} + +func (self *_Assembler) _asm_OP_bool(_ *_Instr) { + self.Emit("LEAQ", jit.Ptr(_IC, 4), _AX) // LEAQ 4(IC), AX + self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL + self.Sjmp("JA" , _LB_eof_error) // JA _eof_error + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('f')) // CMPB (IP)(IC), $'f' + self.Sjmp("JE" , "_false_{n}") // JE _false_{n} + self.Emit("MOVL", jit.Imm(_IM_true), _CX) // MOVL $"true", CX + self.Emit("CMPL", _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPL CX, (IP)(IC) + self.Sjmp("JE" , "_bool_true_{n}") + + // try to skip the value + self.Emit("MOVQ", _IC, _VAR_ic) + self.Emit("MOVQ", _T_bool, _ET) + self.Emit("MOVQ", _ET, _VAR_et) + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_end_{n}", 4) + self.Emit("MOVQ", _R9, _VAR_pc) + self.Sjmp("JMP" , _LB_skip_one) + + self.Link("_bool_true_{n}") + self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC + self.Emit("MOVB", jit.Imm(1), jit.Ptr(_VP, 0)) // MOVB $1, (VP) + self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} + self.Link("_false_{n}") // _false_{n}: + self.Emit("ADDQ", jit.Imm(1), _AX) // ADDQ $1, AX + self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC + self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL + self.Sjmp("JA" , _LB_eof_error) // JA _eof_error + self.Emit("MOVL", jit.Imm(_IM_alse), _CX) // MOVL $"alse", CX + self.Emit("CMPL", _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPL CX, (IP)(IC) + self.Sjmp("JNE" , _LB_im_error) // JNE _im_error + self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC + self.Emit("XORL", _AX, _AX) // XORL AX, AX + self.Emit("MOVB", _AX, jit.Ptr(_VP, 0)) // MOVB AX, (VP) + self.Link("_end_{n}") // _end_{n}: +} + +func (self *_Assembler) _asm_OP_num(_ *_Instr) { + self.Emit("MOVQ", jit.Imm(0), _VAR_fl) + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('"')) + self.Emit("MOVQ", _IC, _BP) + self.Sjmp("JNE", "_skip_number_{n}") + self.Emit("MOVQ", jit.Imm(1), _VAR_fl) + self.Emit("ADDQ", jit.Imm(1), _IC) + self.Link("_skip_number_{n}") + + /* call skip_number */ + self.call_sf(_F_skip_number) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNS" , "_num_next_{n}") + + /* call skip one */ + self.Emit("MOVQ", _BP, _VAR_ic) + self.Emit("MOVQ", _T_number, _ET) + self.Emit("MOVQ", _ET, _VAR_et) + self.Byte(0x4c, 0x8d, 0x0d) + self.Sref("_num_end_{n}", 4) + self.Emit("MOVQ", _R9, _VAR_pc) + self.Sjmp("JMP" , _LB_skip_one) + + /* assgin string */ + self.Link("_num_next_{n}") + self.slice_from_r(_AX, 0) + self.Emit("BTQ", jit.Imm(_F_copy_string), _ARG_fv) + self.Sjmp("JNC", "_num_write_{n}") + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_num_write_{n}", 4) + self.Sjmp("JMP", "_copy_string") + self.Link("_num_write_{n}") + self.Emit("MOVQ", _SI, jit.Ptr(_VP, 8)) // MOVQ SI, 8(VP) + self.WriteRecNotAX(13, _DI, jit.Ptr(_VP, 0), false, false) + + /* check if quoted */ + self.Emit("CMPQ", _VAR_fl, jit.Imm(1)) + self.Sjmp("JNE", "_num_end_{n}") + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('"')) + self.Sjmp("JNE", _LB_char_0_error) + self.Emit("ADDQ", jit.Imm(1), _IC) + self.Link("_num_end_{n}") +} + +func (self *_Assembler) _asm_OP_i8(ins *_Instr) { + var pin = "_i8_end_{n}" + self.parse_signed(int8Type, pin, -1) // PARSE int8 + self.range_signed(_I_int8, _T_int8, math.MinInt8, math.MaxInt8) // RANGE int8 + self.Emit("MOVB", _AX, jit.Ptr(_VP, 0)) // MOVB AX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_i16(ins *_Instr) { + var pin = "_i16_end_{n}" + self.parse_signed(int16Type, pin, -1) // PARSE int16 + self.range_signed(_I_int16, _T_int16, math.MinInt16, math.MaxInt16) // RANGE int16 + self.Emit("MOVW", _AX, jit.Ptr(_VP, 0)) // MOVW AX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_i32(ins *_Instr) { + var pin = "_i32_end_{n}" + self.parse_signed(int32Type, pin, -1) // PARSE int32 + self.range_signed(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32 + self.Emit("MOVL", _AX, jit.Ptr(_VP, 0)) // MOVL AX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_i64(ins *_Instr) { + var pin = "_i64_end_{n}" + self.parse_signed(int64Type, pin, -1) // PARSE int64 + self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX + self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_u8(ins *_Instr) { + var pin = "_u8_end_{n}" + self.parse_unsigned(uint8Type, pin, -1) // PARSE uint8 + self.range_unsigned(_I_uint8, _T_uint8, math.MaxUint8) // RANGE uint8 + self.Emit("MOVB", _AX, jit.Ptr(_VP, 0)) // MOVB AX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_u16(ins *_Instr) { + var pin = "_u16_end_{n}" + self.parse_unsigned(uint16Type, pin, -1) // PARSE uint16 + self.range_unsigned(_I_uint16, _T_uint16, math.MaxUint16) // RANGE uint16 + self.Emit("MOVW", _AX, jit.Ptr(_VP, 0)) // MOVW AX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_u32(ins *_Instr) { + var pin = "_u32_end_{n}" + self.parse_unsigned(uint32Type, pin, -1) // PARSE uint32 + self.range_unsigned(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32 + self.Emit("MOVL", _AX, jit.Ptr(_VP, 0)) // MOVL AX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_u64(ins *_Instr) { + var pin = "_u64_end_{n}" + self.parse_unsigned(uint64Type, pin, -1) // PARSE uint64 + self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX + self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_f32(ins *_Instr) { + var pin = "_f32_end_{n}" + self.parse_number(float32Type, pin, -1) // PARSE NUMBER + self.range_single() // RANGE float32 + self.Emit("MOVSS", _X0, jit.Ptr(_VP, 0)) // MOVSS X0, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_f64(ins *_Instr) { + var pin = "_f64_end_{n}" + self.parse_number(float64Type, pin, -1) // PARSE NUMBER + self.Emit("MOVSD", _VAR_st_Dv, _X0) // MOVSD st.Dv, X0 + self.Emit("MOVSD", _X0, jit.Ptr(_VP, 0)) // MOVSD X0, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_unquote(ins *_Instr) { + self.check_eof(2) + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('\\')) // CMPB (IP)(IC), $'\\' + self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 1), jit.Imm('"')) // CMPB 1(IP)(IC), $'"' + self.Sjmp("JNE" , _LB_char_1_error) // JNE _char_1_error + self.Emit("ADDQ", jit.Imm(2), _IC) // ADDQ $2, IC + self.parse_string() // PARSE STRING + self.unquote_twice(jit.Ptr(_VP, 0), jit.Ptr(_VP, 8), false) // UNQUOTE twice, (VP), 8(VP) +} + +func (self *_Assembler) _asm_OP_nil_1(_ *_Instr) { + self.Emit("XORL", _AX, _AX) // XORL AX, AX + self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) +} + +func (self *_Assembler) _asm_OP_nil_2(_ *_Instr) { + self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) +} + +func (self *_Assembler) _asm_OP_nil_3(_ *_Instr) { + self.Emit("XORL" , _AX, _AX) // XORL AX, AX + self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) + self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 16)) // MOVOU X0, 16(VP) +} + +func (self *_Assembler) _asm_OP_deref(p *_Instr) { + self.vfollow(p.vt()) +} + +func (self *_Assembler) _asm_OP_index(p *_Instr) { + self.Emit("MOVQ", jit.Imm(p.i64()), _AX) // MOVQ ${p.vi()}, AX + self.Emit("ADDQ", _AX, _VP) // ADDQ _AX, _VP +} + +func (self *_Assembler) _asm_OP_is_null(p *_Instr) { + self.Emit("LEAQ" , jit.Ptr(_IC, 4), _AX) // LEAQ 4(IC), AX + self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL + self.Sjmp("JA" , "_not_null_{n}") // JA _not_null_{n} + self.Emit("CMPL" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(_IM_null)) // CMPL (IP)(IC), $"null" + self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC + self.Xjmp("JE" , p.vi()) // JE {p.vi()} + self.Link("_not_null_{n}") // _not_null_{n}: +} + +func (self *_Assembler) _asm_OP_is_null_quote(p *_Instr) { + self.Emit("LEAQ" , jit.Ptr(_IC, 5), _AX) // LEAQ 4(IC), AX + self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL + self.Sjmp("JA" , "_not_null_quote_{n}") // JA _not_null_quote_{n} + self.Emit("CMPL" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(_IM_null)) // CMPL (IP)(IC), $"null" + self.Sjmp("JNE" , "_not_null_quote_{n}") // JNE _not_null_quote_{n} + self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, 4), jit.Imm('"')) // CMPB 4(IP)(IC), $'"' + self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC + self.Xjmp("JE" , p.vi()) // JE {p.vi()} + self.Link("_not_null_quote_{n}") // _not_null_quote_{n}: +} + +func (self *_Assembler) _asm_OP_map_init(_ *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNZ" , "_end_{n}") // JNZ _end_{n} + self.call_go(_F_makemap_small) // CALL_GO makemap_small + self.Emit("MOVQ" , jit.Ptr(_SP, 0), _AX) // MOVQ (SP), AX + self.WritePtrAX(6, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) + self.Link("_end_{n}") // _end_{n}: + self.Emit("MOVQ" , _AX, _VP) // MOVQ AX, VP +} + +func (self *_Assembler) _asm_OP_map_key_i8(p *_Instr) { + self.parse_signed(int8Type, "", p.vi()) // PARSE int8 + self.range_signed(_I_int8, _T_int8, math.MinInt8, math.MaxInt8) // RANGE int8 + self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN int8, mapassign, st.Iv +} + +func (self *_Assembler) _asm_OP_map_key_i16(p *_Instr) { + self.parse_signed(int16Type, "", p.vi()) // PARSE int16 + self.range_signed(_I_int16, _T_int16, math.MinInt16, math.MaxInt16) // RANGE int16 + self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN int16, mapassign, st.Iv +} + +func (self *_Assembler) _asm_OP_map_key_i32(p *_Instr) { + self.parse_signed(int32Type, "", p.vi()) // PARSE int32 + self.range_signed(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32 + if vt := p.vt(); !mapfast(vt) { + self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int32, mapassign, st.Iv + } else { + self.mapassign_fastx(vt, _F_mapassign_fast32) // MAPASSIGN int32, mapassign_fast32 + } +} + +func (self *_Assembler) _asm_OP_map_key_i64(p *_Instr) { + self.parse_signed(int64Type, "", p.vi()) // PARSE int64 + if vt := p.vt(); !mapfast(vt) { + self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int64, mapassign, st.Iv + } else { + self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX + self.mapassign_fastx(vt, _F_mapassign_fast64) // MAPASSIGN int64, mapassign_fast64 + } +} + +func (self *_Assembler) _asm_OP_map_key_u8(p *_Instr) { + self.parse_unsigned(uint8Type, "", p.vi()) // PARSE uint8 + self.range_unsigned(_I_uint8, _T_uint8, math.MaxUint8) // RANGE uint8 + self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN uint8, vt.Iv +} + +func (self *_Assembler) _asm_OP_map_key_u16(p *_Instr) { + self.parse_unsigned(uint16Type, "", p.vi()) // PARSE uint16 + self.range_unsigned(_I_uint16, _T_uint16, math.MaxUint16) // RANGE uint16 + self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN uint16, vt.Iv +} + +func (self *_Assembler) _asm_OP_map_key_u32(p *_Instr) { + self.parse_unsigned(uint32Type, "", p.vi()) // PARSE uint32 + self.range_unsigned(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32 + if vt := p.vt(); !mapfast(vt) { + self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint32, vt.Iv + } else { + self.mapassign_fastx(vt, _F_mapassign_fast32) // MAPASSIGN uint32, mapassign_fast32 + } +} + +func (self *_Assembler) _asm_OP_map_key_u64(p *_Instr) { + self.parse_unsigned(uint64Type, "", p.vi()) // PARSE uint64 + if vt := p.vt(); !mapfast(vt) { + self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint64, vt.Iv + } else { + self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX + self.mapassign_fastx(vt, _F_mapassign_fast64) // MAPASSIGN uint64, mapassign_fast64 + } +} + +func (self *_Assembler) _asm_OP_map_key_f32(p *_Instr) { + self.parse_number(float32Type, "", p.vi()) // PARSE NUMBER + self.range_single() // RANGE float32 + self.Emit("MOVSS", _X0, _VAR_st_Dv) // MOVSS X0, st.Dv + self.mapassign_std(p.vt(), _VAR_st_Dv) // MAPASSIGN ${p.vt()}, mapassign, st.Dv +} + +func (self *_Assembler) _asm_OP_map_key_f64(p *_Instr) { + self.parse_number(float64Type, "", p.vi()) // PARSE NUMBER + self.mapassign_std(p.vt(), _VAR_st_Dv) // MAPASSIGN ${p.vt()}, mapassign, st.Dv +} + +func (self *_Assembler) _asm_OP_map_key_str(p *_Instr) { + self.parse_string() // PARSE STRING + self.unquote_once(_VAR_sv_p, _VAR_sv_n, true, true) // UNQUOTE once, sv.p, sv.n + if vt := p.vt(); !mapfast(vt) { + self.valloc(vt.Key(), _DI) + self.Emit("MOVOU", _VAR_sv, _X0) + self.Emit("MOVOU", _X0, jit.Ptr(_DI, 0)) + self.mapassign_std(vt, jit.Ptr(_DI, 0)) + } else { + self.Emit("MOVQ", _VAR_sv_p, _DI) // MOVQ sv.p, DI + self.Emit("MOVQ", _VAR_sv_n, _SI) // MOVQ sv.n, SI + self.mapassign_str_fast(vt, _DI, _SI) // MAPASSIGN string, DI, SI + } +} + +func (self *_Assembler) _asm_OP_map_key_utext(p *_Instr) { + self.parse_string() // PARSE STRING + self.unquote_once(_VAR_sv_p, _VAR_sv_n, true, true) // UNQUOTE once, sv.p, sv.n + self.mapassign_utext(p.vt(), false) // MAPASSIGN utext, ${p.vt()}, false +} + +func (self *_Assembler) _asm_OP_map_key_utext_p(p *_Instr) { + self.parse_string() // PARSE STRING + self.unquote_once(_VAR_sv_p, _VAR_sv_n, true, false) // UNQUOTE once, sv.p, sv.n + self.mapassign_utext(p.vt(), true) // MAPASSIGN utext, ${p.vt()}, true +} + +func (self *_Assembler) _asm_OP_array_skip(_ *_Instr) { + self.call_sf(_F_skip_array) // CALL_SF skip_array + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v +} + +func (self *_Assembler) _asm_OP_array_clear(p *_Instr) { + self.mem_clear_rem(p.i64(), true) +} + +func (self *_Assembler) _asm_OP_array_clear_p(p *_Instr) { + self.mem_clear_rem(p.i64(), false) +} + +func (self *_Assembler) _asm_OP_slice_init(p *_Instr) { + self.Emit("XORL" , _AX, _AX) // XORL AX, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) + self.Emit("MOVQ" , jit.Ptr(_VP, 16), _AX) // MOVQ 16(VP), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNZ" , "_done_{n}") // JNZ _done_{n} + self.Emit("MOVQ" , jit.Imm(_MinSlice), _CX) // MOVQ ${_MinSlice}, CX + self.Emit("MOVQ" , _CX, jit.Ptr(_VP, 16)) // MOVQ CX, 16(VP) + self.Emit("MOVQ" , jit.Type(p.vt()), _DX) // MOVQ ${p.vt()}, DX + self.Emit("MOVQ" , _DX, jit.Ptr(_SP, 0)) // MOVQ DX, (SP) + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) + self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 16)) // MOVQ CX, 16(SP) + self.call_go(_F_makeslice) // CALL_GO makeslice + self.Emit("MOVQ" , jit.Ptr(_SP, 24), _AX) // MOVQ 24(SP), AX + self.WritePtrAX(7, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) + self.Link("_done_{n}") // _done_{n}: + self.Emit("XORL" , _AX, _AX) // XORL AX, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) +} + +func (self *_Assembler) _asm_OP_slice_append(p *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_VP, 8), _AX) // MOVQ 8(VP), AX + self.Emit("CMPQ" , _AX, jit.Ptr(_VP, 16)) // CMPQ AX, 16(VP) + self.Sjmp("JB" , "_index_{n}") // JB _index_{n} + self.Emit("MOVQ" , jit.Type(p.vt()), _AX) // MOVQ ${p.vt()}, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVOU", jit.Ptr(_VP, 0), _X0) // MOVOU (VP), X0 + self.Emit("MOVOU", _X0, jit.Ptr(_SP, 8)) // MOVOU X0, 8(SP) + self.Emit("MOVQ" , jit.Ptr(_VP, 16), _AX) // MOVQ 16(VP), AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 24)) // MOVQ AX, 24(SP) + self.Emit("SHLQ" , jit.Imm(1), _AX) // SHLQ $1, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 32)) // MOVQ AX, 32(SP) + self.call_go(_F_growslice) // CALL_GO growslice + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _DI) // MOVQ 40(SP), DI + self.Emit("MOVQ" , jit.Ptr(_SP, 48), _AX) // MOVQ 48(SP), AX + self.Emit("MOVQ" , jit.Ptr(_SP, 56), _SI) // MOVQ 56(SP), SI + self.WriteRecNotAX(8, _DI, jit.Ptr(_VP, 0), true, true)// MOVQ DI, (VP) + self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) + self.Emit("MOVQ" , _SI, jit.Ptr(_VP, 16)) // MOVQ SI, 16(VP) + self.Link("_index_{n}") // _index_{n}: + self.Emit("ADDQ" , jit.Imm(1), jit.Ptr(_VP, 8)) // ADDQ $1, 8(VP) + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _VP) // MOVQ (VP), VP + self.Emit("MOVQ" , jit.Imm(int64(p.vlen())), _CX) // MOVQ ${p.vlen()}, CX + self.From("MULQ" , _CX) // MULQ CX + self.Emit("ADDQ" , _AX, _VP) // ADDQ AX, VP +} + +func (self *_Assembler) _asm_OP_object_skip(_ *_Instr) { + self.call_sf(_F_skip_object) // CALL_SF skip_object + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v +} + +func (self *_Assembler) _asm_OP_object_next(_ *_Instr) { + self.call_sf(_F_skip_one) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v +} + +func (self *_Assembler) _asm_OP_struct_field(p *_Instr) { + assert_eq(caching.FieldEntrySize, 32, "invalid field entry size") + self.Emit("MOVQ" , jit.Imm(-1), _AX) // MOVQ $-1, AX + self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, sr + self.parse_string() // PARSE STRING + self.unquote_once(_VAR_sv_p, _VAR_sv_n, true, false) // UNQUOTE once, sv.p, sv.n + self.Emit("LEAQ" , _VAR_sv, _AX) // LEAQ sv, AX + self.Emit("XORL" , _CX, _CX) // XORL CX, CX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) + self.call_go(_F_strhash) // CALL_GO strhash + self.Emit("MOVQ" , jit.Ptr(_SP, 16), _AX) // MOVQ 16(SP), AX + self.Emit("MOVQ" , _AX, _R9) // MOVQ AX, R9 + self.Emit("MOVQ" , jit.Imm(freezeFields(p.vf())), _CX) // MOVQ ${p.vf()}, CX + self.Emit("MOVQ" , jit.Ptr(_CX, caching.FieldMap_b), _SI) // MOVQ FieldMap.b(CX), SI + self.Emit("MOVQ" , jit.Ptr(_CX, caching.FieldMap_N), _CX) // MOVQ FieldMap.N(CX), CX + self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX + self.Sjmp("JZ" , "_try_lowercase_{n}") // JZ _try_lowercase_{n} + self.Link("_loop_{n}") // _loop_{n}: + self.Emit("XORL" , _DX, _DX) // XORL DX, DX + self.From("DIVQ" , _CX) // DIVQ CX + self.Emit("LEAQ" , jit.Ptr(_DX, 1), _AX) // LEAQ 1(DX), AX + self.Emit("SHLQ" , jit.Imm(5), _DX) // SHLQ $5, DX + self.Emit("LEAQ" , jit.Sib(_SI, _DX, 1, 0), _DI) // LEAQ (SI)(DX), DI + self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Hash), _R8) // MOVQ FieldEntry.Hash(DI), R8 + self.Emit("TESTQ", _R8, _R8) // TESTQ R8, R8 + self.Sjmp("JZ" , "_try_lowercase_{n}") // JZ _try_lowercase_{n} + self.Emit("CMPQ" , _R8, _R9) // CMPQ R8, R9 + self.Sjmp("JNE" , "_loop_{n}") // JNE _loop_{n} + self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Name + 8), _DX) // MOVQ FieldEntry.Name+8(DI), DX + self.Emit("CMPQ" , _DX, _VAR_sv_n) // CMPQ DX, sv.n + self.Sjmp("JNE" , "_loop_{n}") // JNE _loop_{n} + self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_ID), _R8) // MOVQ FieldEntry.ID(DI), R8 + self.Emit("MOVQ" , _AX, _VAR_ss_AX) // MOVQ AX, ss.AX + self.Emit("MOVQ" , _CX, _VAR_ss_CX) // MOVQ CX, ss.CX + self.Emit("MOVQ" , _SI, _VAR_ss_SI) // MOVQ SI, ss.SI + self.Emit("MOVQ" , _R8, _VAR_ss_R8) // MOVQ R8, ss.R8 + self.Emit("MOVQ" , _R9, _VAR_ss_R9) // MOVQ R9, ss.R9 + self.Emit("MOVQ" , _VAR_sv_p, _AX) // MOVQ _VAR_sv_p, AX + self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Name), _CX) // MOVQ FieldEntry.Name(DI), CX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) + self.Emit("MOVQ" , _DX, jit.Ptr(_SP, 16)) // MOVQ DX, 16(SP) + self.call_go(_F_memequal) // CALL_GO memequal + self.Emit("MOVQ" , _VAR_ss_AX, _AX) // MOVQ ss.AX, AX + self.Emit("MOVQ" , _VAR_ss_CX, _CX) // MOVQ ss.CX, CX + self.Emit("MOVQ" , _VAR_ss_SI, _SI) // MOVQ ss.SI, SI + self.Emit("MOVQ" , _VAR_ss_R9, _R9) // MOVQ ss.R9, R9 + self.Emit("MOVB" , jit.Ptr(_SP, 24), _DX) // MOVB 24(SP), DX + self.Emit("TESTB", _DX, _DX) // TESTB DX, DX + self.Sjmp("JZ" , "_loop_{n}") // JZ _loop_{n} + self.Emit("MOVQ" , _VAR_ss_R8, _R8) // MOVQ ss.R8, R8 + self.Emit("MOVQ" , _R8, _VAR_sr) // MOVQ R8, sr + self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} + self.Link("_try_lowercase_{n}") // _try_lowercase_{n}: + self.Emit("MOVQ" , jit.Imm(referenceFields(p.vf())), _AX) // MOVQ ${p.vf()}, AX + self.Emit("MOVOU", _VAR_sv, _X0) // MOVOU sv, X0 + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVOU", _X0, jit.Ptr(_SP, 8)) // MOVOU X0, 8(SP) + self.call_go(_F_FieldMap_GetCaseInsensitive) // CALL_GO FieldMap::GetCaseInsensitive + self.Emit("MOVQ" , jit.Ptr(_SP, 24), _AX) // MOVQ 24(SP), AX + self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, _VAR_sr + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNS" , "_end_{n}") // JNS _end_{n} + self.Emit("BTQ" , jit.Imm(_F_disable_unknown), _ARG_fv) // BTQ ${_F_disable_unknown}, fv + self.Sjmp("JC" , _LB_field_error) // JC _field_error + self.Link("_end_{n}") // _end_{n}: +} + +func (self *_Assembler) _asm_OP_unmarshal(p *_Instr) { + self.unmarshal_json(p.vt(), true) +} + +func (self *_Assembler) _asm_OP_unmarshal_p(p *_Instr) { + self.unmarshal_json(p.vt(), false) +} + +func (self *_Assembler) _asm_OP_unmarshal_text(p *_Instr) { + self.unmarshal_text(p.vt(), true) +} + +func (self *_Assembler) _asm_OP_unmarshal_text_p(p *_Instr) { + self.unmarshal_text(p.vt(), false) +} + +func (self *_Assembler) _asm_OP_lspace(_ *_Instr) { + self.lspace("_{n}") +} + +func (self *_Assembler) lspace(subfix string) { + var label = "_lspace" + subfix + + self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error + self.Emit("MOVQ" , jit.Imm(_BM_space), _DX) // MOVQ _BM_space, DX + self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX + self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' + self.Sjmp("JA" , label) // JA _nospace_{n} + self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX + self.Sjmp("JNC" , label) // JNC _nospace_{n} + + /* test up to 4 characters */ + for i := 0; i < 3; i++ { + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error + self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX + self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' + self.Sjmp("JA" , label) // JA _nospace_{n} + self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX + self.Sjmp("JNC" , label) // JNC _nospace_{n} + } + + /* handle over to the native function */ + self.Emit("MOVQ" , _IP, _DI) // MOVQ IP, DI + self.Emit("MOVQ" , _IL, _SI) // MOVQ IL, SI + self.Emit("MOVQ" , _IC, _DX) // MOVQ IC, DX + self.call(_F_lspace) // CALL lspace + self.Emit("TESTQ" , _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parsing_error_v + self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL + self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error + self.Emit("MOVQ" , _AX, _IC) // MOVQ AX, IC + self.Link(label) // _nospace_{n}: +} + +func (self *_Assembler) _asm_OP_match_char(p *_Instr) { + self.check_eof(1) + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(p.vb()))) // CMPB (IP)(IC), ${p.vb()} + self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error + self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC +} + +func (self *_Assembler) _asm_OP_check_char(p *_Instr) { + self.check_eof(1) + self.Emit("LEAQ" , jit.Ptr(_IC, 1), _AX) // LEAQ 1(IC), AX + self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(p.vb()))) // CMPB (IP)(IC), ${p.vb()} + self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC + self.Xjmp("JE" , p.vi()) // JE {p.vi()} +} + +func (self *_Assembler) _asm_OP_check_char_0(p *_Instr) { + self.check_eof(1) + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(p.vb()))) // CMPB (IP)(IC), ${p.vb()} + self.Xjmp("JE" , p.vi()) // JE {p.vi()} +} + +func (self *_Assembler) _asm_OP_add(p *_Instr) { + self.Emit("ADDQ", jit.Imm(int64(p.vi())), _IC) // ADDQ ${p.vi()}, IC +} + +func (self *_Assembler) _asm_OP_load(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _VP) // MOVQ (ST)(AX), VP +} + +func (self *_Assembler) _asm_OP_save(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_ST, 0), _CX) // MOVQ (ST), CX + self.Emit("CMPQ", _CX, jit.Imm(_MaxStackBytes)) // CMPQ CX, ${_MaxStackBytes} + self.Sjmp("JAE" , _LB_stack_error) // JA _stack_error + self.WriteRecNotAX(0 , _VP, jit.Sib(_ST, _CX, 1, 8), false, false) // MOVQ VP, 8(ST)(CX) + self.Emit("ADDQ", jit.Imm(8), _CX) // ADDQ $8, CX + self.Emit("MOVQ", _CX, jit.Ptr(_ST, 0)) // MOVQ CX, (ST) +} + +func (self *_Assembler) _asm_OP_drop(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("SUBQ", jit.Imm(8), _AX) // SUBQ $8, AX + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 8), _VP) // MOVQ 8(ST)(AX), VP + self.Emit("MOVQ", _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) + self.Emit("XORL", _ET, _ET) // XORL ET, ET + self.Emit("MOVQ", _ET, jit.Sib(_ST, _AX, 1, 8)) // MOVQ ET, 8(ST)(AX) +} + +func (self *_Assembler) _asm_OP_drop_2(_ *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("SUBQ" , jit.Imm(16), _AX) // SUBQ $16, AX + self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 8), _VP) // MOVQ 8(ST)(AX), VP + self.Emit("MOVQ" , _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) + self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 + self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 8)) // MOVOU X0, 8(ST)(AX) +} + +func (self *_Assembler) _asm_OP_recurse(p *_Instr) { + self.Emit("MOVQ", jit.Type(p.vt()), _AX) // MOVQ ${p.vt()}, AX + self.decode_dynamic(_AX, _VP) // DECODE AX, VP +} + +func (self *_Assembler) _asm_OP_goto(p *_Instr) { + self.Xjmp("JMP", p.vi()) +} + +func (self *_Assembler) _asm_OP_switch(p *_Instr) { + self.Emit("MOVQ", _VAR_sr, _AX) // MOVQ sr, AX + self.Emit("CMPQ", _AX, jit.Imm(p.i64())) // CMPQ AX, ${len(p.vs())} + self.Sjmp("JAE" , "_default_{n}") // JAE _default_{n} + + /* jump table selector */ + self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI + self.Sref("_switch_table_{n}", 4) // .... &_switch_table_{n} + self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, 0), _AX) // MOVLQSX (DI)(AX*4), AX + self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX + self.Rjmp("JMP" , _AX) // JMP AX + self.Link("_switch_table_{n}") // _switch_table_{n}: + + /* generate the jump table */ + for i, v := range p.vs() { + self.Xref(v, int64(-i) * 4) + } + + /* default case */ + self.Link("_default_{n}") + self.NOP() +} + +func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { + self.Emit("MOVQ", jit.Imm(int64(p2.op())), jit.Ptr(_SP, 16))// MOVQ $(p2.op()), 16(SP) + self.Emit("MOVQ", jit.Imm(int64(p1.op())), jit.Ptr(_SP, 8)) // MOVQ $(p1.op()), 8(SP) + self.Emit("MOVQ", jit.Imm(int64(i)), jit.Ptr(_SP, 0)) // MOVQ $(i), (SP) + self.call_go(_F_println) +} + +var _runtime_writeBarrier uintptr = rt.GcwbAddr() + +//go:linkname gcWriteBarrierAX runtime.gcWriteBarrier +func gcWriteBarrierAX() + +var ( + _V_writeBarrier = jit.Imm(int64(_runtime_writeBarrier)) + + _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) +) + +func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) { + self.Emit("MOVQ", _V_writeBarrier, _R10) + self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R10) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", _AX, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + +func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool, saveAX bool) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _R10) + self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveAX { + self.Emit("XCHGQ", ptr, _AX) + } else { + self.Emit("MOVQ", ptr, _AX) + } + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R10) + if saveDI { + self.load(_DI) + } + if saveAX { + self.Emit("XCHGQ", ptr, _AX) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/decoder/assembler_amd64_go117.go b/vendor/github.com/bytedance/sonic/decoder/assembler_amd64_go117.go new file mode 100644 index 0000000000..8a70cfff61 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/assembler_amd64_go117.go @@ -0,0 +1,1922 @@ +//go:build go1.17 && !go1.21 +// +build go1.17,!go1.21 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `encoding/json` + `fmt` + `math` + `reflect` + `strconv` + `unsafe` + + `github.com/bytedance/sonic/internal/caching` + `github.com/bytedance/sonic/internal/jit` + `github.com/bytedance/sonic/internal/native` + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` +) + +/** Register Allocations + * + * State Registers: + * + * %r13 : stack base + * %r10 : input pointer + * %r12 : input length + * %r11 : input cursor + * %r15 : value pointer + * + * Error Registers: + * + * %rax : error type register + * %rbx : error pointer register + */ + +/** Function Prototype & Stack Map + * + * func (s string, ic int, vp unsafe.Pointer, sb *_Stack, fv uint64, sv string) (rc int, err error) + * + * s.buf : (FP) + * s.len : 8(FP) + * ic : 16(FP) + * vp : 24(FP) + * sb : 32(FP) + * fv : 40(FP) + * sv : 56(FP) + * err.vt : 72(FP) + * err.vp : 80(FP) + */ + +const ( + _FP_args = 72 // 72 bytes to pass and spill register arguements + _FP_fargs = 80 // 80 bytes for passing arguments to other Go functions + _FP_saves = 48 // 48 bytes for saving the registers before CALL instructions + _FP_locals = 144 // 144 bytes for local variables +) + +const ( + _FP_offs = _FP_fargs + _FP_saves + _FP_locals + _FP_size = _FP_offs + 8 // 8 bytes for the parent frame pointer + _FP_base = _FP_size + 8 // 8 bytes for the return address +) + +const ( + _IM_null = 0x6c6c756e // 'null' + _IM_true = 0x65757274 // 'true' + _IM_alse = 0x65736c61 // 'alse' ('false' without the 'f') +) + +const ( + _BM_space = (1 << ' ') | (1 << '\t') | (1 << '\r') | (1 << '\n') +) + +const ( + _MODE_JSON = 1 << 3 // base64 mode +) + +const ( + _LB_error = "_error" + _LB_im_error = "_im_error" + _LB_eof_error = "_eof_error" + _LB_type_error = "_type_error" + _LB_field_error = "_field_error" + _LB_range_error = "_range_error" + _LB_stack_error = "_stack_error" + _LB_base64_error = "_base64_error" + _LB_unquote_error = "_unquote_error" + _LB_parsing_error = "_parsing_error" + _LB_parsing_error_v = "_parsing_error_v" + _LB_mismatch_error = "_mismatch_error" +) + +const ( + _LB_char_0_error = "_char_0_error" + _LB_char_1_error = "_char_1_error" + _LB_char_2_error = "_char_2_error" + _LB_char_3_error = "_char_3_error" + _LB_char_4_error = "_char_4_error" + _LB_char_m2_error = "_char_m2_error" + _LB_char_m3_error = "_char_m3_error" +) + +const ( + _LB_skip_one = "_skip_one" + _LB_skip_key_value = "_skip_key_value" +) + +var ( + _AX = jit.Reg("AX") + _BX = jit.Reg("BX") + _CX = jit.Reg("CX") + _DX = jit.Reg("DX") + _DI = jit.Reg("DI") + _SI = jit.Reg("SI") + _BP = jit.Reg("BP") + _SP = jit.Reg("SP") + _R8 = jit.Reg("R8") + _R9 = jit.Reg("R9") + _X0 = jit.Reg("X0") + _X1 = jit.Reg("X1") +) + +var ( + _IP = jit.Reg("R10") // saved on BP when callc + _IC = jit.Reg("R11") // saved on BX when call_c + _IL = jit.Reg("R12") + _ST = jit.Reg("R13") + _VP = jit.Reg("R15") +) + +var ( + _DF = jit.Reg("AX") // reuse AX in generic decoder for flags + _ET = jit.Reg("AX") + _EP = jit.Reg("BX") +) + + + +var ( + _ARG_s = _ARG_sp + _ARG_sp = jit.Ptr(_SP, _FP_base + 0) + _ARG_sl = jit.Ptr(_SP, _FP_base + 8) + _ARG_ic = jit.Ptr(_SP, _FP_base + 16) + _ARG_vp = jit.Ptr(_SP, _FP_base + 24) + _ARG_sb = jit.Ptr(_SP, _FP_base + 32) + _ARG_fv = jit.Ptr(_SP, _FP_base + 40) +) + +var ( + _ARG_sv = _ARG_sv_p + _ARG_sv_p = jit.Ptr(_SP, _FP_base + 48) + _ARG_sv_n = jit.Ptr(_SP, _FP_base + 56) + _ARG_vk = jit.Ptr(_SP, _FP_base + 64) +) + +var ( + _VAR_st = _VAR_st_Vt + _VAR_sr = jit.Ptr(_SP, _FP_fargs + _FP_saves) +) + +var ( + _VAR_st_Vt = jit.Ptr(_SP, _FP_fargs + _FP_saves + 0) + _VAR_st_Dv = jit.Ptr(_SP, _FP_fargs + _FP_saves + 8) + _VAR_st_Iv = jit.Ptr(_SP, _FP_fargs + _FP_saves + 16) + _VAR_st_Ep = jit.Ptr(_SP, _FP_fargs + _FP_saves + 24) + _VAR_st_Db = jit.Ptr(_SP, _FP_fargs + _FP_saves + 32) + _VAR_st_Dc = jit.Ptr(_SP, _FP_fargs + _FP_saves + 40) +) + +var ( + _VAR_ss_AX = jit.Ptr(_SP, _FP_fargs + _FP_saves + 48) + _VAR_ss_CX = jit.Ptr(_SP, _FP_fargs + _FP_saves + 56) + _VAR_ss_SI = jit.Ptr(_SP, _FP_fargs + _FP_saves + 64) + _VAR_ss_R8 = jit.Ptr(_SP, _FP_fargs + _FP_saves + 72) + _VAR_ss_R9 = jit.Ptr(_SP, _FP_fargs + _FP_saves + 80) +) + +var ( + _VAR_bs_p = jit.Ptr(_SP, _FP_fargs + _FP_saves + 88) + _VAR_bs_n = jit.Ptr(_SP, _FP_fargs + _FP_saves + 96) + _VAR_bs_LR = jit.Ptr(_SP, _FP_fargs + _FP_saves + 104) +) + +var _VAR_fl = jit.Ptr(_SP, _FP_fargs + _FP_saves + 112) + +var ( + _VAR_et = jit.Ptr(_SP, _FP_fargs + _FP_saves + 120) // save dismatched type + _VAR_pc = jit.Ptr(_SP, _FP_fargs + _FP_saves + 128) // save skip return pc + _VAR_ic = jit.Ptr(_SP, _FP_fargs + _FP_saves + 136) // save dismatched position +) + +type _Assembler struct { + jit.BaseAssembler + p _Program + name string +} + +func newAssembler(p _Program) *_Assembler { + return new(_Assembler).Init(p) +} + +/** Assembler Interface **/ + +func (self *_Assembler) Load() _Decoder { + return ptodec(self.BaseAssembler.Load("decode_"+self.name, _FP_size, _FP_args, argPtrs, localPtrs)) +} + +func (self *_Assembler) Init(p _Program) *_Assembler { + self.p = p + self.BaseAssembler.Init(self.compile) + return self +} + +func (self *_Assembler) compile() { + self.prologue() + self.instrs() + self.epilogue() + self.copy_string() + self.escape_string() + self.escape_string_twice() + self.skip_one() + self.skip_key_value() + self.type_error() + self.mismatch_error() + self.field_error() + self.range_error() + self.stack_error() + self.base64_error() + self.parsing_error() +} + +/** Assembler Stages **/ + +var _OpFuncTab = [256]func(*_Assembler, *_Instr) { + _OP_any : (*_Assembler)._asm_OP_any, + _OP_dyn : (*_Assembler)._asm_OP_dyn, + _OP_str : (*_Assembler)._asm_OP_str, + _OP_bin : (*_Assembler)._asm_OP_bin, + _OP_bool : (*_Assembler)._asm_OP_bool, + _OP_num : (*_Assembler)._asm_OP_num, + _OP_i8 : (*_Assembler)._asm_OP_i8, + _OP_i16 : (*_Assembler)._asm_OP_i16, + _OP_i32 : (*_Assembler)._asm_OP_i32, + _OP_i64 : (*_Assembler)._asm_OP_i64, + _OP_u8 : (*_Assembler)._asm_OP_u8, + _OP_u16 : (*_Assembler)._asm_OP_u16, + _OP_u32 : (*_Assembler)._asm_OP_u32, + _OP_u64 : (*_Assembler)._asm_OP_u64, + _OP_f32 : (*_Assembler)._asm_OP_f32, + _OP_f64 : (*_Assembler)._asm_OP_f64, + _OP_unquote : (*_Assembler)._asm_OP_unquote, + _OP_nil_1 : (*_Assembler)._asm_OP_nil_1, + _OP_nil_2 : (*_Assembler)._asm_OP_nil_2, + _OP_nil_3 : (*_Assembler)._asm_OP_nil_3, + _OP_deref : (*_Assembler)._asm_OP_deref, + _OP_index : (*_Assembler)._asm_OP_index, + _OP_is_null : (*_Assembler)._asm_OP_is_null, + _OP_is_null_quote : (*_Assembler)._asm_OP_is_null_quote, + _OP_map_init : (*_Assembler)._asm_OP_map_init, + _OP_map_key_i8 : (*_Assembler)._asm_OP_map_key_i8, + _OP_map_key_i16 : (*_Assembler)._asm_OP_map_key_i16, + _OP_map_key_i32 : (*_Assembler)._asm_OP_map_key_i32, + _OP_map_key_i64 : (*_Assembler)._asm_OP_map_key_i64, + _OP_map_key_u8 : (*_Assembler)._asm_OP_map_key_u8, + _OP_map_key_u16 : (*_Assembler)._asm_OP_map_key_u16, + _OP_map_key_u32 : (*_Assembler)._asm_OP_map_key_u32, + _OP_map_key_u64 : (*_Assembler)._asm_OP_map_key_u64, + _OP_map_key_f32 : (*_Assembler)._asm_OP_map_key_f32, + _OP_map_key_f64 : (*_Assembler)._asm_OP_map_key_f64, + _OP_map_key_str : (*_Assembler)._asm_OP_map_key_str, + _OP_map_key_utext : (*_Assembler)._asm_OP_map_key_utext, + _OP_map_key_utext_p : (*_Assembler)._asm_OP_map_key_utext_p, + _OP_array_skip : (*_Assembler)._asm_OP_array_skip, + _OP_array_clear : (*_Assembler)._asm_OP_array_clear, + _OP_array_clear_p : (*_Assembler)._asm_OP_array_clear_p, + _OP_slice_init : (*_Assembler)._asm_OP_slice_init, + _OP_slice_append : (*_Assembler)._asm_OP_slice_append, + _OP_object_skip : (*_Assembler)._asm_OP_object_skip, + _OP_object_next : (*_Assembler)._asm_OP_object_next, + _OP_struct_field : (*_Assembler)._asm_OP_struct_field, + _OP_unmarshal : (*_Assembler)._asm_OP_unmarshal, + _OP_unmarshal_p : (*_Assembler)._asm_OP_unmarshal_p, + _OP_unmarshal_text : (*_Assembler)._asm_OP_unmarshal_text, + _OP_unmarshal_text_p : (*_Assembler)._asm_OP_unmarshal_text_p, + _OP_lspace : (*_Assembler)._asm_OP_lspace, + _OP_match_char : (*_Assembler)._asm_OP_match_char, + _OP_check_char : (*_Assembler)._asm_OP_check_char, + _OP_load : (*_Assembler)._asm_OP_load, + _OP_save : (*_Assembler)._asm_OP_save, + _OP_drop : (*_Assembler)._asm_OP_drop, + _OP_drop_2 : (*_Assembler)._asm_OP_drop_2, + _OP_recurse : (*_Assembler)._asm_OP_recurse, + _OP_goto : (*_Assembler)._asm_OP_goto, + _OP_switch : (*_Assembler)._asm_OP_switch, + _OP_check_char_0 : (*_Assembler)._asm_OP_check_char_0, + _OP_dismatch_err : (*_Assembler)._asm_OP_dismatch_err, + _OP_go_skip : (*_Assembler)._asm_OP_go_skip, + _OP_add : (*_Assembler)._asm_OP_add, + _OP_debug : (*_Assembler)._asm_OP_debug, +} + +func (self *_Assembler) _asm_OP_debug(_ *_Instr) { + self.Byte(0xcc) +} + +func (self *_Assembler) instr(v *_Instr) { + if fn := _OpFuncTab[v.op()]; fn != nil { + fn(self, v) + } else { + panic(fmt.Sprintf("invalid opcode: %d", v.op())) + } +} + +func (self *_Assembler) instrs() { + for i, v := range self.p { + self.Mark(i) + self.instr(&v) + self.debug_instr(i, &v) + } +} + +func (self *_Assembler) epilogue() { + self.Mark(len(self.p)) + self.Emit("XORL", _EP, _EP) // XORL EP, EP + self.Emit("MOVQ", _VAR_et, _ET) // MOVQ VAR_et, ET + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ", _LB_mismatch_error) // JNZ _LB_mismatch_error + self.Link(_LB_error) // _error: + self.Emit("MOVQ", _EP, _CX) // MOVQ BX, CX + self.Emit("MOVQ", _ET, _BX) // MOVQ AX, BX + self.Emit("MOVQ", _IC, _AX) // MOVQ IC, AX + self.Emit("MOVQ", jit.Imm(0), _ARG_sp) // MOVQ $0, sv.p<>+48(FP) + self.Emit("MOVQ", jit.Imm(0), _ARG_vp) // MOVQ $0, sv.p<>+48(FP) + self.Emit("MOVQ", jit.Imm(0), _ARG_sv_p) // MOVQ $0, sv.p<>+48(FP) + self.Emit("MOVQ", jit.Imm(0), _ARG_vk) // MOVQ $0, vk<>+64(FP) + self.Emit("MOVQ", jit.Ptr(_SP, _FP_offs), _BP) // MOVQ _FP_offs(SP), BP + self.Emit("ADDQ", jit.Imm(_FP_size), _SP) // ADDQ $_FP_size, SP + self.Emit("RET") // RET +} + +func (self *_Assembler) prologue() { + self.Emit("SUBQ", jit.Imm(_FP_size), _SP) // SUBQ $_FP_size, SP + self.Emit("MOVQ", _BP, jit.Ptr(_SP, _FP_offs)) // MOVQ BP, _FP_offs(SP) + self.Emit("LEAQ", jit.Ptr(_SP, _FP_offs), _BP) // LEAQ _FP_offs(SP), BP + self.Emit("MOVQ", _AX, _ARG_sp) // MOVQ AX, s.p<>+0(FP) + self.Emit("MOVQ", _AX, _IP) // MOVQ AX, IP + self.Emit("MOVQ", _BX, _ARG_sl) // MOVQ BX, s.l<>+8(FP) + self.Emit("MOVQ", _BX, _IL) // MOVQ BX, IL + self.Emit("MOVQ", _CX, _ARG_ic) // MOVQ CX, ic<>+16(FP) + self.Emit("MOVQ", _CX, _IC) // MOVQ CX, IC + self.Emit("MOVQ", _DI, _ARG_vp) // MOVQ DI, vp<>+24(FP) + self.Emit("MOVQ", _DI, _VP) // MOVQ DI, VP + self.Emit("MOVQ", _SI, _ARG_sb) // MOVQ SI, sb<>+32(FP) + self.Emit("MOVQ", _SI, _ST) // MOVQ SI, ST + self.Emit("MOVQ", _R8, _ARG_fv) // MOVQ R8, fv<>+40(FP) + self.Emit("MOVQ", jit.Imm(0), _ARG_sv_p) // MOVQ $0, sv.p<>+48(FP) + self.Emit("MOVQ", jit.Imm(0), _ARG_sv_n) // MOVQ $0, sv.n<>+56(FP) + self.Emit("MOVQ", jit.Imm(0), _ARG_vk) // MOVQ $0, vk<>+64(FP) + self.Emit("MOVQ", jit.Imm(0), _VAR_et) // MOVQ $0, et<>+120(FP) + // initialize digital buffer first + self.Emit("MOVQ", jit.Imm(_MaxDigitNums), _VAR_st_Dc) // MOVQ $_MaxDigitNums, ss.Dcap + self.Emit("LEAQ", jit.Ptr(_ST, _DbufOffset), _AX) // LEAQ _DbufOffset(ST), AX + self.Emit("MOVQ", _AX, _VAR_st_Db) // MOVQ AX, ss.Dbuf +} + +/** Function Calling Helpers **/ + +var ( + _REG_go = []obj.Addr { _ST, _VP, _IP, _IL, _IC } + _REG_rt = []obj.Addr { _ST, _VP, _IP, _IL, _IC, _IL } +) + +func (self *_Assembler) save(r ...obj.Addr) { + for i, v := range r { + if i > _FP_saves / 8 - 1 { + panic("too many registers to save") + } else { + self.Emit("MOVQ", v, jit.Ptr(_SP, _FP_fargs + int64(i) * 8)) + } + } +} + +func (self *_Assembler) load(r ...obj.Addr) { + for i, v := range r { + if i > _FP_saves / 8 - 1 { + panic("too many registers to load") + } else { + self.Emit("MOVQ", jit.Ptr(_SP, _FP_fargs + int64(i) * 8), v) + } + } +} + +func (self *_Assembler) call(fn obj.Addr) { + self.Emit("MOVQ", fn, _R9) // MOVQ ${fn}, R11 + self.Rjmp("CALL", _R9) // CALL R11 +} + +func (self *_Assembler) call_go(fn obj.Addr) { + self.save(_REG_go...) // SAVE $REG_go + self.call(fn) + self.load(_REG_go...) // LOAD $REG_go +} + +func (self *_Assembler) callc(fn obj.Addr) { + self.Emit("XCHGQ", _IP, _BP) + self.call(fn) + self.Emit("XCHGQ", _IP, _BP) +} + +func (self *_Assembler) call_c(fn obj.Addr) { + self.Emit("XCHGQ", _IC, _BX) + self.callc(fn) + self.Emit("XCHGQ", _IC, _BX) +} + +func (self *_Assembler) call_sf(fn obj.Addr) { + self.Emit("LEAQ", _ARG_s, _DI) // LEAQ s<>+0(FP), DI + self.Emit("MOVQ", _IC, _ARG_ic) // MOVQ IC, ic<>+16(FP) + self.Emit("LEAQ", _ARG_ic, _SI) // LEAQ ic<>+16(FP), SI + self.Emit("LEAQ", jit.Ptr(_ST, _FsmOffset), _DX) // LEAQ _FsmOffset(ST), DX + self.Emit("MOVQ", _ARG_fv, _CX) + self.callc(fn) + self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC +} + +func (self *_Assembler) call_vf(fn obj.Addr) { + self.Emit("LEAQ", _ARG_s, _DI) // LEAQ s<>+0(FP), DI + self.Emit("MOVQ", _IC, _ARG_ic) // MOVQ IC, ic<>+16(FP) + self.Emit("LEAQ", _ARG_ic, _SI) // LEAQ ic<>+16(FP), SI + self.Emit("LEAQ", _VAR_st, _DX) // LEAQ st, DX + self.callc(fn) + self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC +} + +/** Assembler Error Handlers **/ + +var ( + _F_convT64 = jit.Func(convT64) + _F_error_wrap = jit.Func(error_wrap) + _F_error_type = jit.Func(error_type) + _F_error_field = jit.Func(error_field) + _F_error_value = jit.Func(error_value) + _F_error_mismatch = jit.Func(error_mismatch) +) + +var ( + _I_int8 , _T_int8 = rtype(reflect.TypeOf(int8(0))) + _I_int16 , _T_int16 = rtype(reflect.TypeOf(int16(0))) + _I_int32 , _T_int32 = rtype(reflect.TypeOf(int32(0))) + _I_uint8 , _T_uint8 = rtype(reflect.TypeOf(uint8(0))) + _I_uint16 , _T_uint16 = rtype(reflect.TypeOf(uint16(0))) + _I_uint32 , _T_uint32 = rtype(reflect.TypeOf(uint32(0))) + _I_float32 , _T_float32 = rtype(reflect.TypeOf(float32(0))) +) + +var ( + _T_error = rt.UnpackType(errorType) + _I_base64_CorruptInputError = jit.Itab(_T_error, base64CorruptInputError) +) + +var ( + _V_stackOverflow = jit.Imm(int64(uintptr(unsafe.Pointer(&stackOverflow)))) + _I_json_UnsupportedValueError = jit.Itab(_T_error, reflect.TypeOf(new(json.UnsupportedValueError))) +) + +func (self *_Assembler) type_error() { + self.Link(_LB_type_error) // _type_error: + self.call_go(_F_error_type) // CALL_GO error_type + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) mismatch_error() { + self.Link(_LB_mismatch_error) // _type_error: + self.Emit("MOVQ", _ARG_sp, _AX) + self.Emit("MOVQ", _ARG_sl, _BX) + self.Emit("MOVQ", _VAR_ic, _CX) + self.Emit("MOVQ", _VAR_et, _DI) + self.call_go(_F_error_mismatch) // CALL_GO error_type + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) field_error() { + self.Link(_LB_field_error) // _field_error: + self.Emit("MOVQ", _ARG_sv_p, _AX) // MOVQ sv.p, AX + self.Emit("MOVQ", _ARG_sv_n, _BX) // MOVQ sv.n, BX + self.call_go(_F_error_field) // CALL_GO error_field + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) range_error() { + self.Link(_LB_range_error) // _range_error: + self.Emit("MOVQ", _ET, _CX) // MOVQ ET, CX + self.slice_from(_VAR_st_Ep, 0) // SLICE st.Ep, $0 + self.Emit("MOVQ", _DI, _AX) // MOVQ DI, AX + self.Emit("MOVQ", _EP, _DI) // MOVQ EP, DI + self.Emit("MOVQ", _SI, _BX) // MOVQ SI, BX + self.call_go(_F_error_value) // CALL_GO error_value + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) stack_error() { + self.Link(_LB_stack_error) // _stack_error: + self.Emit("MOVQ", _V_stackOverflow, _EP) // MOVQ ${_V_stackOverflow}, EP + self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ ${_I_json_UnsupportedValueError}, ET + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) base64_error() { + self.Link(_LB_base64_error) + self.Emit("NEGQ", _AX) // NEGQ AX + self.Emit("SUBQ", jit.Imm(1), _AX) // SUBQ $1, AX + self.call_go(_F_convT64) // CALL_GO convT64 + self.Emit("MOVQ", _AX, _EP) // MOVQ AX, EP + self.Emit("MOVQ", _I_base64_CorruptInputError, _ET) // MOVQ ${itab(base64.CorruptInputError)}, ET + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) parsing_error() { + self.Link(_LB_eof_error) // _eof_error: + self.Emit("MOVQ" , _IL, _IC) // MOVQ IL, IC + self.Emit("MOVL" , jit.Imm(int64(types.ERR_EOF)), _EP) // MOVL ${types.ERR_EOF}, EP + self.Sjmp("JMP" , _LB_parsing_error) // JMP _parsing_error + self.Link(_LB_unquote_error) // _unquote_error: + self.Emit("SUBQ" , _VAR_sr, _SI) // SUBQ sr, SI + self.Emit("SUBQ" , _SI, _IC) // SUBQ IL, IC + self.Link(_LB_parsing_error_v) // _parsing_error_v: + self.Emit("MOVQ" , _AX, _EP) // MOVQ AX, EP + self.Emit("NEGQ" , _EP) // NEGQ EP + self.Sjmp("JMP" , _LB_parsing_error) // JMP _parsing_error + self.Link(_LB_char_m3_error) // _char_m3_error: + self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC + self.Link(_LB_char_m2_error) // _char_m2_error: + self.Emit("SUBQ" , jit.Imm(2), _IC) // SUBQ $2, IC + self.Sjmp("JMP" , _LB_char_0_error) // JMP _char_0_error + self.Link(_LB_im_error) // _im_error: + self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPB CX, (IP)(IC) + self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error + self.Emit("SHRL" , jit.Imm(8), _CX) // SHRL $8, CX + self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 1)) // CMPB CX, 1(IP)(IC) + self.Sjmp("JNE" , _LB_char_1_error) // JNE _char_1_error + self.Emit("SHRL" , jit.Imm(8), _CX) // SHRL $8, CX + self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 2)) // CMPB CX, 2(IP)(IC) + self.Sjmp("JNE" , _LB_char_2_error) // JNE _char_2_error + self.Sjmp("JMP" , _LB_char_3_error) // JNE _char_3_error + self.Link(_LB_char_4_error) // _char_4_error: + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Link(_LB_char_3_error) // _char_3_error: + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Link(_LB_char_2_error) // _char_2_error: + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Link(_LB_char_1_error) // _char_1_error: + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Link(_LB_char_0_error) // _char_0_error: + self.Emit("MOVL" , jit.Imm(int64(types.ERR_INVALID_CHAR)), _EP) // MOVL ${types.ERR_INVALID_CHAR}, EP + self.Link(_LB_parsing_error) // _parsing_error: + self.Emit("MOVQ" , _EP, _DI) // MOVQ EP, DI + self.Emit("MOVQ", _ARG_sp, _AX) // MOVQ sp, AX + self.Emit("MOVQ", _ARG_sl, _BX) // MOVQ sl, BX + self.Emit("MOVQ" , _IC, _CX) // MOVQ IC, CX + self.call_go(_F_error_wrap) // CALL_GO error_wrap + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) _asm_OP_dismatch_err(p *_Instr) { + self.Emit("MOVQ", _IC, _VAR_ic) + self.Emit("MOVQ", jit.Type(p.vt()), _ET) + self.Emit("MOVQ", _ET, _VAR_et) +} + +func (self *_Assembler) _asm_OP_go_skip(p *_Instr) { + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Xref(p.vi(), 4) + // self.Byte(0xcc) + self.Emit("MOVQ", _R9, _VAR_pc) + self.Sjmp("JMP" , _LB_skip_one) // JMP _skip_one +} + +func (self *_Assembler) skip_one() { + self.Link(_LB_skip_one) // _skip: + self.Emit("MOVQ", _VAR_ic, _IC) // MOVQ _VAR_ic, IC + self.call_sf(_F_skip_one) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v + self.Emit("MOVQ" , _VAR_pc, _R9) // MOVQ pc, R9 + // self.Byte(0xcc) + self.Rjmp("JMP" , _R9) // JMP (R9) +} + +func (self *_Assembler) skip_key_value() { + self.Link(_LB_skip_key_value) // _skip: + // skip the key + self.Emit("MOVQ", _VAR_ic, _IC) // MOVQ _VAR_ic, IC + self.call_sf(_F_skip_one) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v + // match char ':' + self.lspace("_global_1") + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(':')) + self.Sjmp("JNE" , _LB_parsing_error_v) // JNE _parse_error_v + self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC + self.lspace("_global_2") + // skip the value + self.call_sf(_F_skip_one) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v + // jump back to specified address + self.Emit("MOVQ" , _VAR_pc, _R9) // MOVQ pc, R9 + self.Rjmp("JMP" , _R9) // JMP (R9) +} + + +/** Memory Management Routines **/ + +var ( + _T_byte = jit.Type(byteType) + _F_mallocgc = jit.Func(mallocgc) +) + +func (self *_Assembler) malloc_AX(nb obj.Addr, ret obj.Addr) { + self.Emit("MOVQ", nb, _AX) // MOVQ ${nb}, AX + self.Emit("MOVQ", _T_byte, _BX) // MOVQ ${type(byte)}, BX + self.Emit("XORL", _CX, _CX) // XORL CX, CX + self.call_go(_F_mallocgc) // CALL_GO mallocgc + self.Emit("MOVQ", _AX, ret) // MOVQ AX, ${ret} +} + +func (self *_Assembler) valloc(vt reflect.Type, ret obj.Addr) { + self.Emit("MOVQ", jit.Imm(int64(vt.Size())), _AX) // MOVQ ${vt.Size()}, AX + self.Emit("MOVQ", jit.Type(vt), _BX) // MOVQ ${vt}, BX + self.Emit("MOVB", jit.Imm(1), _CX) // MOVB $1, CX + self.call_go(_F_mallocgc) // CALL_GO mallocgc + self.Emit("MOVQ", _AX, ret) // MOVQ AX, ${ret} +} + +func (self *_Assembler) valloc_AX(vt reflect.Type) { + self.Emit("MOVQ", jit.Imm(int64(vt.Size())), _AX) // MOVQ ${vt.Size()}, AX + self.Emit("MOVQ", jit.Type(vt), _BX) // MOVQ ${vt}, BX + self.Emit("MOVB", jit.Imm(1), _CX) // MOVB $1, CX + self.call_go(_F_mallocgc) // CALL_GO mallocgc +} + +func (self *_Assembler) vfollow(vt reflect.Type) { + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNZ" , "_end_{n}") // JNZ _end_{n} + self.valloc_AX(vt) // VALLOC ${vt}, AX + self.WritePtrAX(1, jit.Ptr(_VP, 0), true) // MOVQ AX, (VP) + self.Link("_end_{n}") // _end_{n}: + self.Emit("MOVQ" , _AX, _VP) // MOVQ AX, VP +} + +/** Value Parsing Routines **/ + +var ( + _F_vstring = jit.Imm(int64(native.S_vstring)) + _F_vnumber = jit.Imm(int64(native.S_vnumber)) + _F_vsigned = jit.Imm(int64(native.S_vsigned)) + _F_vunsigned = jit.Imm(int64(native.S_vunsigned)) +) + +func (self *_Assembler) check_err(vt reflect.Type, pin string, pin2 int) { + self.Emit("MOVQ" , _VAR_st_Vt, _AX) // MOVQ st.Vt, AX + self.Emit("TESTQ", _AX, _AX) // CMPQ AX, ${native.V_STRING} + // try to skip the value + if vt != nil { + self.Sjmp("JNS" , "_check_err_{n}") // JNE _parsing_error_v + self.Emit("MOVQ", jit.Type(vt), _ET) + self.Emit("MOVQ", _ET, _VAR_et) + if pin2 != -1 { + self.Emit("SUBQ", jit.Imm(1), _BX) + self.Emit("MOVQ", _BX, _VAR_ic) + self.Byte(0x4c , 0x8d, 0x0d) // LEAQ (PC), R9 + self.Xref(pin2, 4) + self.Emit("MOVQ", _R9, _VAR_pc) + self.Sjmp("JMP" , _LB_skip_key_value) + } else { + self.Emit("MOVQ", _BX, _VAR_ic) + self.Byte(0x4c , 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref(pin, 4) + self.Emit("MOVQ", _R9, _VAR_pc) + self.Sjmp("JMP" , _LB_skip_one) + } + self.Link("_check_err_{n}") + } else { + self.Sjmp("JS" , _LB_parsing_error_v) // JNE _parsing_error_v + } +} + +func (self *_Assembler) check_eof(d int64) { + if d == 1 { + self.Emit("CMPQ", _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error + } else { + self.Emit("LEAQ", jit.Ptr(_IC, d), _AX) // LEAQ ${d}(IC), AX + self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL + self.Sjmp("JA" , _LB_eof_error) // JA _eof_error + } +} + + +func (self *_Assembler) parse_string() { + self.Emit("MOVQ", _ARG_fv, _CX) + self.call_vf(_F_vstring) + self.check_err(nil, "", -1) +} + +func (self *_Assembler) parse_number(vt reflect.Type, pin string, pin2 int) { + self.Emit("MOVQ", _IC, _BX) // save ic when call native func + self.call_vf(_F_vnumber) + self.check_err(vt, pin, pin2) +} + +func (self *_Assembler) parse_signed(vt reflect.Type, pin string, pin2 int) { + self.Emit("MOVQ", _IC, _BX) // save ic when call native func + self.call_vf(_F_vsigned) + self.check_err(vt, pin, pin2) +} + +func (self *_Assembler) parse_unsigned(vt reflect.Type, pin string, pin2 int) { + self.Emit("MOVQ", _IC, _BX) // save ic when call native func + self.call_vf(_F_vunsigned) + self.check_err(vt, pin, pin2) +} + +// Pointer: DI, Size: SI, Return: R9 +func (self *_Assembler) copy_string() { + self.Link("_copy_string") + self.Emit("MOVQ", _DI, _VAR_bs_p) + self.Emit("MOVQ", _SI, _VAR_bs_n) + self.Emit("MOVQ", _R9, _VAR_bs_LR) + self.malloc_AX(_SI, _ARG_sv_p) + self.Emit("MOVQ", _VAR_bs_p, _BX) + self.Emit("MOVQ", _VAR_bs_n, _CX) + self.call_go(_F_memmove) + self.Emit("MOVQ", _ARG_sv_p, _DI) + self.Emit("MOVQ", _VAR_bs_n, _SI) + self.Emit("MOVQ", _VAR_bs_LR, _R9) + self.Rjmp("JMP", _R9) +} + +// Pointer: DI, Size: SI, Return: R9 +func (self *_Assembler) escape_string() { + self.Link("_escape_string") + self.Emit("MOVQ" , _DI, _VAR_bs_p) + self.Emit("MOVQ" , _SI, _VAR_bs_n) + self.Emit("MOVQ" , _R9, _VAR_bs_LR) + self.malloc_AX(_SI, _DX) // MALLOC SI, DX + self.Emit("MOVQ" , _DX, _ARG_sv_p) + self.Emit("MOVQ" , _VAR_bs_p, _DI) + self.Emit("MOVQ" , _VAR_bs_n, _SI) + self.Emit("LEAQ" , _VAR_sr, _CX) // LEAQ sr, CX + self.Emit("XORL" , _R8, _R8) // XORL R8, R8 + self.Emit("BTQ" , jit.Imm(_F_disable_urc), _ARG_fv) // BTQ ${_F_disable_urc}, fv + self.Emit("SETCC", _R8) // SETCC R8 + self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _R8) // SHLQ ${types.B_UNICODE_REPLACE}, R8 + self.call_c(_F_unquote) // CALL unquote + self.Emit("MOVQ" , _VAR_bs_n, _SI) // MOVQ ${n}, SI + self.Emit("ADDQ" , jit.Imm(1), _SI) // ADDQ $1, SI + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_unquote_error) // JS _unquote_error + self.Emit("MOVQ" , _AX, _SI) + self.Emit("MOVQ" , _ARG_sv_p, _DI) + self.Emit("MOVQ" , _VAR_bs_LR, _R9) + self.Rjmp("JMP", _R9) +} + +func (self *_Assembler) escape_string_twice() { + self.Link("_escape_string_twice") + self.Emit("MOVQ" , _DI, _VAR_bs_p) + self.Emit("MOVQ" , _SI, _VAR_bs_n) + self.Emit("MOVQ" , _R9, _VAR_bs_LR) + self.malloc_AX(_SI, _DX) // MALLOC SI, DX + self.Emit("MOVQ" , _DX, _ARG_sv_p) + self.Emit("MOVQ" , _VAR_bs_p, _DI) + self.Emit("MOVQ" , _VAR_bs_n, _SI) + self.Emit("LEAQ" , _VAR_sr, _CX) // LEAQ sr, CX + self.Emit("MOVL" , jit.Imm(types.F_DOUBLE_UNQUOTE), _R8) // MOVL ${types.F_DOUBLE_UNQUOTE}, R8 + self.Emit("BTQ" , jit.Imm(_F_disable_urc), _ARG_fv) // BTQ ${_F_disable_urc}, AX + self.Emit("XORL" , _AX, _AX) // XORL AX, AX + self.Emit("SETCC", _AX) // SETCC AX + self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _AX) // SHLQ ${types.B_UNICODE_REPLACE}, AX + self.Emit("ORQ" , _AX, _R8) // ORQ AX, R8 + self.call_c(_F_unquote) // CALL unquote + self.Emit("MOVQ" , _VAR_bs_n, _SI) // MOVQ ${n}, SI + self.Emit("ADDQ" , jit.Imm(3), _SI) // ADDQ $3, SI + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_unquote_error) // JS _unquote_error + self.Emit("MOVQ" , _AX, _SI) + self.Emit("MOVQ" , _ARG_sv_p, _DI) + self.Emit("MOVQ" , _VAR_bs_LR, _R9) + self.Rjmp("JMP", _R9) +} + +/** Range Checking Routines **/ + +var ( + _V_max_f32 = jit.Imm(int64(uintptr(unsafe.Pointer(_Vp_max_f32)))) + _V_min_f32 = jit.Imm(int64(uintptr(unsafe.Pointer(_Vp_min_f32)))) +) + +var ( + _Vp_max_f32 = new(float64) + _Vp_min_f32 = new(float64) +) + +func init() { + *_Vp_max_f32 = math.MaxFloat32 + *_Vp_min_f32 = -math.MaxFloat32 +} + +func (self *_Assembler) range_single_X0() { + self.Emit("MOVSD" , _VAR_st_Dv, _X0) // MOVSD st.Dv, X0 + self.Emit("MOVQ" , _V_max_f32, _CX) // MOVQ _max_f32, CX + self.Emit("MOVQ" , jit.Gitab(_I_float32), _ET) // MOVQ ${itab(float32)}, ET + self.Emit("MOVQ" , jit.Gtype(_T_float32), _EP) // MOVQ ${type(float32)}, EP + self.Emit("UCOMISD" , jit.Ptr(_CX, 0), _X0) // UCOMISD (CX), X0 + self.Sjmp("JA" , _LB_range_error) // JA _range_error + self.Emit("MOVQ" , _V_min_f32, _CX) // MOVQ _min_f32, CX + self.Emit("MOVSD" , jit.Ptr(_CX, 0), _X1) // MOVSD (CX), X1 + self.Emit("UCOMISD" , _X0, _X1) // UCOMISD X0, X1 + self.Sjmp("JA" , _LB_range_error) // JA _range_error + self.Emit("CVTSD2SS", _X0, _X0) // CVTSD2SS X0, X0 +} + +func (self *_Assembler) range_signed_CX(i *rt.GoItab, t *rt.GoType, a int64, b int64) { + self.Emit("MOVQ", _VAR_st_Iv, _CX) // MOVQ st.Iv, CX + self.Emit("MOVQ", jit.Gitab(i), _ET) // MOVQ ${i}, ET + self.Emit("MOVQ", jit.Gtype(t), _EP) // MOVQ ${t}, EP + self.Emit("CMPQ", _CX, jit.Imm(a)) // CMPQ CX, ${a} + self.Sjmp("JL" , _LB_range_error) // JL _range_error + self.Emit("CMPQ", _CX, jit.Imm(b)) // CMPQ CX, ${B} + self.Sjmp("JG" , _LB_range_error) // JG _range_error +} + +func (self *_Assembler) range_unsigned_CX(i *rt.GoItab, t *rt.GoType, v uint64) { + self.Emit("MOVQ" , _VAR_st_Iv, _CX) // MOVQ st.Iv, CX + self.Emit("MOVQ" , jit.Gitab(i), _ET) // MOVQ ${i}, ET + self.Emit("MOVQ" , jit.Gtype(t), _EP) // MOVQ ${t}, EP + self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX + self.Sjmp("JS" , _LB_range_error) // JS _range_error + self.Emit("CMPQ" , _CX, jit.Imm(int64(v))) // CMPQ CX, ${a} + self.Sjmp("JA" , _LB_range_error) // JA _range_error +} + +/** String Manipulating Routines **/ + +var ( + _F_unquote = jit.Imm(int64(native.S_unquote)) +) + +func (self *_Assembler) slice_from(p obj.Addr, d int64) { + self.Emit("MOVQ", p, _SI) // MOVQ ${p}, SI + self.slice_from_r(_SI, d) // SLICE_R SI, ${d} +} + +func (self *_Assembler) slice_from_r(p obj.Addr, d int64) { + self.Emit("LEAQ", jit.Sib(_IP, p, 1, 0), _DI) // LEAQ (IP)(${p}), DI + self.Emit("NEGQ", p) // NEGQ ${p} + self.Emit("LEAQ", jit.Sib(_IC, p, 1, d), _SI) // LEAQ d(IC)(${p}), SI +} + +func (self *_Assembler) unquote_once(p obj.Addr, n obj.Addr, stack bool, copy bool) { + self.slice_from(_VAR_st_Iv, -1) // SLICE st.Iv, $-1 + self.Emit("CMPQ", _VAR_st_Ep, jit.Imm(-1)) // CMPQ st.Ep, $-1 + self.Sjmp("JE" , "_noescape_{n}") // JE _escape_{n} + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_unquote_once_write_{n}", 4) + self.Sjmp("JMP" , "_escape_string") + self.Link("_noescape_{n}") + if copy { + self.Emit("BTQ" , jit.Imm(_F_copy_string), _ARG_fv) + self.Sjmp("JNC", "_unquote_once_write_{n}") + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_unquote_once_write_{n}", 4) + self.Sjmp("JMP", "_copy_string") + } + self.Link("_unquote_once_write_{n}") + self.Emit("MOVQ", _SI, n) // MOVQ SI, ${n} + if stack { + self.Emit("MOVQ", _DI, p) + } else { + self.WriteRecNotAX(10, _DI, p, false, false) + } +} + +func (self *_Assembler) unquote_twice(p obj.Addr, n obj.Addr, stack bool) { + self.Emit("CMPQ" , _VAR_st_Ep, jit.Imm(-1)) // CMPQ st.Ep, $-1 + self.Sjmp("JE" , _LB_eof_error) // JE _eof_error + self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, -3), jit.Imm('\\')) // CMPB -3(IP)(IC), $'\\' + self.Sjmp("JNE" , _LB_char_m3_error) // JNE _char_m3_error + self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, -2), jit.Imm('"')) // CMPB -2(IP)(IC), $'"' + self.Sjmp("JNE" , _LB_char_m2_error) // JNE _char_m2_error + self.slice_from(_VAR_st_Iv, -3) // SLICE st.Iv, $-3 + self.Emit("MOVQ" , _SI, _AX) // MOVQ SI, AX + self.Emit("ADDQ" , _VAR_st_Iv, _AX) // ADDQ st.Iv, AX + self.Emit("CMPQ" , _VAR_st_Ep, _AX) // CMPQ st.Ep, AX + self.Sjmp("JE" , "_noescape_{n}") // JE _noescape_{n} + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_unquote_twice_write_{n}", 4) + self.Sjmp("JMP" , "_escape_string_twice") + self.Link("_noescape_{n}") // _noescape_{n}: + self.Emit("BTQ" , jit.Imm(_F_copy_string), _ARG_fv) + self.Sjmp("JNC", "_unquote_twice_write_{n}") + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_unquote_twice_write_{n}", 4) + self.Sjmp("JMP", "_copy_string") + self.Link("_unquote_twice_write_{n}") + self.Emit("MOVQ" , _SI, n) // MOVQ SI, ${n} + if stack { + self.Emit("MOVQ", _DI, p) + } else { + self.WriteRecNotAX(12, _DI, p, false, false) + } + self.Link("_unquote_twice_end_{n}") +} + +/** Memory Clearing Routines **/ + +var ( + _F_memclrHasPointers = jit.Func(memclrHasPointers) + _F_memclrNoHeapPointers = jit.Func(memclrNoHeapPointers) +) + +func (self *_Assembler) mem_clear_fn(ptrfree bool) { + if !ptrfree { + self.call_go(_F_memclrHasPointers) + } else { + self.call_go(_F_memclrNoHeapPointers) + } +} + +func (self *_Assembler) mem_clear_rem(size int64, ptrfree bool) { + self.Emit("MOVQ", jit.Imm(size), _BX) // MOVQ ${size}, BX + self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _AX) // MOVQ (ST)(AX), AX + self.Emit("SUBQ", _VP, _AX) // SUBQ VP, AX + self.Emit("ADDQ", _AX, _BX) // ADDQ AX, BX + self.Emit("MOVQ", _VP, _AX) // MOVQ VP, (SP) + self.mem_clear_fn(ptrfree) // CALL_GO memclr{Has,NoHeap}Pointers +} + +/** Map Assigning Routines **/ + +var ( + _F_mapassign = jit.Func(mapassign) + _F_mapassign_fast32 = jit.Func(mapassign_fast32) + _F_mapassign_faststr = jit.Func(mapassign_faststr) + _F_mapassign_fast64ptr = jit.Func(mapassign_fast64ptr) +) + +var ( + _F_decodeJsonUnmarshaler obj.Addr + _F_decodeTextUnmarshaler obj.Addr +) + +func init() { + _F_decodeJsonUnmarshaler = jit.Func(decodeJsonUnmarshaler) + _F_decodeTextUnmarshaler = jit.Func(decodeTextUnmarshaler) +} + +func (self *_Assembler) mapaccess_ptr(t reflect.Type) { + if rt.MapType(rt.UnpackType(t)).IndirectElem() { + self.vfollow(t.Elem()) + } +} + +func (self *_Assembler) mapassign_std(t reflect.Type, v obj.Addr) { + self.Emit("LEAQ", v, _AX) // LEAQ ${v}, AX + self.mapassign_call_from_AX(t, _F_mapassign) // MAPASSIGN ${t}, mapassign +} + +func (self *_Assembler) mapassign_str_fast(t reflect.Type, p obj.Addr, n obj.Addr) { + self.Emit("MOVQ", jit.Type(t), _AX) // MOVQ ${t}, AX + self.Emit("MOVQ", _VP, _BX) // MOVQ VP, BX + self.Emit("MOVQ", p, _CX) // MOVQ ${p}, CX + self.Emit("MOVQ", n, _DI) // MOVQ ${n}, DI + self.call_go(_F_mapassign_faststr) // CALL_GO ${fn} + self.Emit("MOVQ", _AX, _VP) // MOVQ AX, VP + self.mapaccess_ptr(t) +} + +func (self *_Assembler) mapassign_call_from_AX(t reflect.Type, fn obj.Addr) { + self.Emit("MOVQ", _AX, _CX) + self.Emit("MOVQ", jit.Type(t), _AX) // MOVQ ${t}, AX + self.Emit("MOVQ", _VP, _BX) // MOVQ VP, _BX + self.call_go(fn) // CALL_GO ${fn} + self.Emit("MOVQ", _AX, _VP) // MOVQ AX, VP +} + +func (self *_Assembler) mapassign_fastx(t reflect.Type, fn obj.Addr) { + self.mapassign_call_from_AX(t, fn) + self.mapaccess_ptr(t) +} + +func (self *_Assembler) mapassign_utext(t reflect.Type, addressable bool) { + pv := false + vk := t.Key() + tk := t.Key() + + /* deref pointer if needed */ + if vk.Kind() == reflect.Ptr { + pv = true + vk = vk.Elem() + } + + /* addressable value with pointer receiver */ + if addressable { + pv = false + tk = reflect.PtrTo(tk) + } + + /* allocate the key, and call the unmarshaler */ + self.valloc(vk, _BX) // VALLOC ${vk}, BX + // must spill vk pointer since next call_go may invoke GC + self.Emit("MOVQ" , _BX, _ARG_vk) + self.Emit("MOVQ" , jit.Type(tk), _AX) // MOVQ ${tk}, AX + self.Emit("MOVQ" , _ARG_sv_p, _CX) // MOVQ sv.p, CX + self.Emit("MOVQ" , _ARG_sv_n, _DI) // MOVQ sv.n, DI + self.call_go(_F_decodeTextUnmarshaler) // CALL_GO decodeTextUnmarshaler + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error + self.Emit("MOVQ" , _ARG_vk, _AX) // MOVQ VAR.vk, AX + self.Emit("MOVQ", jit.Imm(0), _ARG_vk) + + /* select the correct assignment function */ + if !pv { + self.mapassign_call_from_AX(t, _F_mapassign) + } else { + self.mapassign_fastx(t, _F_mapassign_fast64ptr) + } +} + +/** External Unmarshaler Routines **/ + +var ( + _F_skip_one = jit.Imm(int64(native.S_skip_one)) + _F_skip_array = jit.Imm(int64(native.S_skip_array)) + _F_skip_object = jit.Imm(int64(native.S_skip_object)) + _F_skip_number = jit.Imm(int64(native.S_skip_number)) +) + +func (self *_Assembler) unmarshal_json(t reflect.Type, deref bool) { + self.call_sf(_F_skip_one) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v + self.slice_from_r(_AX, 0) // SLICE_R AX, $0 + self.Emit("MOVQ" , _DI, _ARG_sv_p) // MOVQ DI, sv.p + self.Emit("MOVQ" , _SI, _ARG_sv_n) // MOVQ SI, sv.n + self.unmarshal_func(t, _F_decodeJsonUnmarshaler, deref) // UNMARSHAL json, ${t}, ${deref} +} + +func (self *_Assembler) unmarshal_text(t reflect.Type, deref bool) { + self.parse_string() // PARSE STRING + self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, true) // UNQUOTE once, sv.p, sv.n + self.unmarshal_func(t, _F_decodeTextUnmarshaler, deref) // UNMARSHAL text, ${t}, ${deref} +} + +func (self *_Assembler) unmarshal_func(t reflect.Type, fn obj.Addr, deref bool) { + pt := t + vk := t.Kind() + + /* allocate the field if needed */ + if deref && vk == reflect.Ptr { + self.Emit("MOVQ" , _VP, _BX) // MOVQ VP, BX + self.Emit("MOVQ" , jit.Ptr(_BX, 0), _BX) // MOVQ (BX), BX + self.Emit("TESTQ", _BX, _BX) // TESTQ BX, BX + self.Sjmp("JNZ" , "_deref_{n}") // JNZ _deref_{n} + self.valloc(t.Elem(), _BX) // VALLOC ${t.Elem()}, BX + self.WriteRecNotAX(3, _BX, jit.Ptr(_VP, 0), false, false) // MOVQ BX, (VP) + self.Link("_deref_{n}") // _deref_{n}: + } else { + /* set value pointer */ + self.Emit("MOVQ", _VP, _BX) // MOVQ (VP), BX + } + + /* set value type */ + self.Emit("MOVQ", jit.Type(pt), _AX) // MOVQ ${pt}, AX + + /* set the source string and call the unmarshaler */ + self.Emit("MOVQ" , _ARG_sv_p, _CX) // MOVQ sv.p, CX + self.Emit("MOVQ" , _ARG_sv_n, _DI) // MOVQ sv.n, DI + self.call_go(fn) // CALL_GO ${fn} + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error +} + +/** Dynamic Decoding Routine **/ + +var ( + _F_decodeTypedPointer obj.Addr +) + +func init() { + _F_decodeTypedPointer = jit.Func(decodeTypedPointer) +} + +func (self *_Assembler) decode_dynamic(vt obj.Addr, vp obj.Addr) { + self.Emit("MOVQ" , vp, _SI) // MOVQ ${vp}, SI + self.Emit("MOVQ" , vt, _DI) // MOVQ ${vt}, DI + self.Emit("MOVQ", _ARG_sp, _AX) // MOVQ sp, AX + self.Emit("MOVQ", _ARG_sl, _BX) // MOVQ sp, BX + self.Emit("MOVQ" , _IC, _CX) // MOVQ IC, CX + self.Emit("MOVQ" , _ST, _R8) // MOVQ ST, R8 + self.Emit("MOVQ" , _ARG_fv, _R9) // MOVQ fv, R9 + self.save(_REG_rt...) + self.Emit("MOVQ", _F_decodeTypedPointer, _IL) // MOVQ ${fn}, R11 + self.Rjmp("CALL", _IL) // CALL R11 + self.load(_REG_rt...) + self.Emit("MOVQ" , _AX, _IC) // MOVQ AX, IC + self.Emit("MOVQ" , _BX, _ET) // MOVQ BX, ET + self.Emit("MOVQ" , _CX, _EP) // MOVQ CX, EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error +} + +/** OpCode Assembler Functions **/ + +var ( + _F_memequal = jit.Func(memequal) + _F_memmove = jit.Func(memmove) + _F_growslice = jit.Func(growslice) + _F_makeslice = jit.Func(makeslice) + _F_makemap_small = jit.Func(makemap_small) + _F_mapassign_fast64 = jit.Func(mapassign_fast64) +) + +var ( + _F_lspace = jit.Imm(int64(native.S_lspace)) + _F_strhash = jit.Imm(int64(caching.S_strhash)) +) + +var ( + _F_b64decode = jit.Imm(int64(_subr__b64decode)) + _F_decodeValue = jit.Imm(int64(_subr_decode_value)) +) + +var ( + _F_FieldMap_GetCaseInsensitive obj.Addr +) + +const ( + _MODE_AVX2 = 1 << 2 +) + +const ( + _Fe_ID = int64(unsafe.Offsetof(caching.FieldEntry{}.ID)) + _Fe_Name = int64(unsafe.Offsetof(caching.FieldEntry{}.Name)) + _Fe_Hash = int64(unsafe.Offsetof(caching.FieldEntry{}.Hash)) +) + +const ( + _Vk_Ptr = int64(reflect.Ptr) + _Gt_KindFlags = int64(unsafe.Offsetof(rt.GoType{}.KindFlags)) +) + +func init() { + _F_FieldMap_GetCaseInsensitive = jit.Func((*caching.FieldMap).GetCaseInsensitive) +} + +func (self *_Assembler) _asm_OP_any(_ *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_VP, 8), _CX) // MOVQ 8(VP), CX + self.Emit("TESTQ" , _CX, _CX) // TESTQ CX, CX + self.Sjmp("JZ" , "_decode_{n}") // JZ _decode_{n} + self.Emit("CMPQ" , _CX, _VP) // CMPQ CX, VP + self.Sjmp("JE" , "_decode_{n}") // JE _decode_{n} + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX + self.Emit("MOVBLZX", jit.Ptr(_AX, _Gt_KindFlags), _DX) // MOVBLZX _Gt_KindFlags(AX), DX + self.Emit("ANDL" , jit.Imm(rt.F_kind_mask), _DX) // ANDL ${F_kind_mask}, DX + self.Emit("CMPL" , _DX, jit.Imm(_Vk_Ptr)) // CMPL DX, ${reflect.Ptr} + self.Sjmp("JNE" , "_decode_{n}") // JNE _decode_{n} + self.Emit("LEAQ" , jit.Ptr(_VP, 8), _DI) // LEAQ 8(VP), DI + self.decode_dynamic(_AX, _DI) // DECODE AX, DI + self.Sjmp("JMP" , "_decode_end_{n}") // JMP _decode_end_{n} + self.Link("_decode_{n}") // _decode_{n}: + self.Emit("MOVQ" , _ARG_fv, _DF) // MOVQ fv, DF + self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 0)) // MOVQ _ST, (SP) + self.call(_F_decodeValue) // CALL decodeValue + self.Emit("MOVQ" , jit.Imm(0), jit.Ptr(_SP, 0)) // MOVQ _ST, (SP) + self.Emit("TESTQ" , _EP, _EP) // TESTQ EP, EP + self.Sjmp("JNZ" , _LB_parsing_error) // JNZ _parsing_error + self.Link("_decode_end_{n}") // _decode_end_{n}: +} + +func (self *_Assembler) _asm_OP_dyn(p *_Instr) { + self.Emit("MOVQ" , jit.Type(p.vt()), _ET) // MOVQ ${p.vt()}, ET + self.Emit("CMPQ" , jit.Ptr(_VP, 8), jit.Imm(0)) // CMPQ 8(VP), $0 + self.Sjmp("JE" , _LB_type_error) // JE _type_error + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _CX) // MOVQ (VP), CX + self.Emit("MOVQ" , jit.Ptr(_CX, 8), _CX) // MOVQ 8(CX), CX + self.Emit("MOVBLZX", jit.Ptr(_CX, _Gt_KindFlags), _DX) // MOVBLZX _Gt_KindFlags(CX), DX + self.Emit("ANDL" , jit.Imm(rt.F_kind_mask), _DX) // ANDL ${F_kind_mask}, DX + self.Emit("CMPL" , _DX, jit.Imm(_Vk_Ptr)) // CMPL DX, ${reflect.Ptr} + self.Sjmp("JNE" , _LB_type_error) // JNE _type_error + self.Emit("LEAQ" , jit.Ptr(_VP, 8), _DI) // LEAQ 8(VP), DI + self.decode_dynamic(_CX, _DI) // DECODE CX, DI + self.Link("_decode_end_{n}") // _decode_end_{n}: +} + +func (self *_Assembler) _asm_OP_str(_ *_Instr) { + self.parse_string() // PARSE STRING + self.unquote_once(jit.Ptr(_VP, 0), jit.Ptr(_VP, 8), false, true) // UNQUOTE once, (VP), 8(VP) +} + +func (self *_Assembler) _asm_OP_bin(_ *_Instr) { + self.parse_string() // PARSE STRING + self.slice_from(_VAR_st_Iv, -1) // SLICE st.Iv, $-1 + self.Emit("MOVQ" , _DI, jit.Ptr(_VP, 0)) // MOVQ DI, (VP) + self.Emit("MOVQ" , _SI, jit.Ptr(_VP, 8)) // MOVQ SI, 8(VP) + self.Emit("SHRQ" , jit.Imm(2), _SI) // SHRQ $2, SI + self.Emit("LEAQ" , jit.Sib(_SI, _SI, 2, 0), _SI) // LEAQ (SI)(SI*2), SI + self.Emit("MOVQ" , _SI, jit.Ptr(_VP, 16)) // MOVQ SI, 16(VP) + self.malloc_AX(_SI, _SI) // MALLOC SI, SI + + // TODO: due to base64x's bug, only use AVX mode now + self.Emit("MOVL", jit.Imm(_MODE_JSON), _CX) // MOVL $_MODE_JSON, CX + + /* call the decoder */ + self.Emit("XORL" , _DX, _DX) // XORL DX, DX + self.Emit("MOVQ" , _VP, _DI) // MOVQ VP, DI + + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _R8) // MOVQ SI, (VP) + self.WriteRecNotAX(4, _SI, jit.Ptr(_VP, 0), true, false) // XCHGQ SI, (VP) + self.Emit("MOVQ" , _R8, _SI) + + self.Emit("XCHGQ", _DX, jit.Ptr(_VP, 8)) // XCHGQ DX, 8(VP) + self.call_c(_F_b64decode) // CALL b64decode + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_base64_error) // JS _base64_error + self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) +} + +func (self *_Assembler) _asm_OP_bool(_ *_Instr) { + self.Emit("LEAQ", jit.Ptr(_IC, 4), _AX) // LEAQ 4(IC), AX + self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL + self.Sjmp("JA" , _LB_eof_error) // JA _eof_error + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('f')) // CMPB (IP)(IC), $'f' + self.Sjmp("JE" , "_false_{n}") // JE _false_{n} + self.Emit("MOVL", jit.Imm(_IM_true), _CX) // MOVL $"true", CX + self.Emit("CMPL", _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPL CX, (IP)(IC) + self.Sjmp("JE" , "_bool_true_{n}") + // try to skip the value + self.Emit("MOVQ", _IC, _VAR_ic) + self.Emit("MOVQ", _T_bool, _ET) + self.Emit("MOVQ", _ET, _VAR_et) + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_end_{n}", 4) + self.Emit("MOVQ", _R9, _VAR_pc) + self.Sjmp("JMP" , _LB_skip_one) + + self.Link("_bool_true_{n}") + self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC + self.Emit("MOVB", jit.Imm(1), jit.Ptr(_VP, 0)) // MOVB $1, (VP) + self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} + self.Link("_false_{n}") // _false_{n}: + self.Emit("ADDQ", jit.Imm(1), _AX) // ADDQ $1, AX + self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC + self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL + self.Sjmp("JA" , _LB_eof_error) // JA _eof_error + self.Emit("MOVL", jit.Imm(_IM_alse), _CX) // MOVL $"alse", CX + self.Emit("CMPL", _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPL CX, (IP)(IC) + self.Sjmp("JNE" , _LB_im_error) // JNE _im_error + self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC + self.Emit("XORL", _AX, _AX) // XORL AX, AX + self.Emit("MOVB", _AX, jit.Ptr(_VP, 0)) // MOVB AX, (VP) + self.Link("_end_{n}") // _end_{n}: +} + +func (self *_Assembler) _asm_OP_num(_ *_Instr) { + self.Emit("MOVQ", jit.Imm(0), _VAR_fl) + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('"')) + self.Emit("MOVQ", _IC, _BX) + self.Sjmp("JNE", "_skip_number_{n}") + self.Emit("MOVQ", jit.Imm(1), _VAR_fl) + self.Emit("ADDQ", jit.Imm(1), _IC) + self.Link("_skip_number_{n}") + + /* call skip_number */ + self.Emit("LEAQ", _ARG_s, _DI) // LEAQ s<>+0(FP), DI + self.Emit("MOVQ", _IC, _ARG_ic) // MOVQ IC, ic<>+16(FP) + self.Emit("LEAQ", _ARG_ic, _SI) // LEAQ ic<>+16(FP), SI + self.callc(_F_skip_number) // CALL _F_skip_number + self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNS" , "_num_next_{n}") + + /* call skip one */ + self.Emit("MOVQ", _BX, _VAR_ic) + self.Emit("MOVQ", _T_number, _ET) + self.Emit("MOVQ", _ET, _VAR_et) + self.Byte(0x4c, 0x8d, 0x0d) + self.Sref("_num_end_{n}", 4) + self.Emit("MOVQ", _R9, _VAR_pc) + self.Sjmp("JMP" , _LB_skip_one) + + /* assgin string */ + self.Link("_num_next_{n}") + self.slice_from_r(_AX, 0) + self.Emit("BTQ", jit.Imm(_F_copy_string), _ARG_fv) + self.Sjmp("JNC", "_num_write_{n}") + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 + self.Sref("_num_write_{n}", 4) + self.Sjmp("JMP", "_copy_string") + self.Link("_num_write_{n}") + self.Emit("MOVQ", _SI, jit.Ptr(_VP, 8)) // MOVQ SI, 8(VP) + self.WriteRecNotAX(13, _DI, jit.Ptr(_VP, 0), false, false) + self.Emit("CMPQ", _VAR_fl, jit.Imm(1)) + self.Sjmp("JNE", "_num_end_{n}") + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('"')) + self.Sjmp("JNE", _LB_char_0_error) + self.Emit("ADDQ", jit.Imm(1), _IC) + self.Link("_num_end_{n}") +} + +func (self *_Assembler) _asm_OP_i8(_ *_Instr) { + var pin = "_i8_end_{n}" + self.parse_signed(int8Type, pin, -1) // PARSE int8 + self.range_signed_CX(_I_int8, _T_int8, math.MinInt8, math.MaxInt8) // RANGE int8 + self.Emit("MOVB", _CX, jit.Ptr(_VP, 0)) // MOVB CX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_i16(_ *_Instr) { + var pin = "_i16_end_{n}" + self.parse_signed(int16Type, pin, -1) // PARSE int16 + self.range_signed_CX(_I_int16, _T_int16, math.MinInt16, math.MaxInt16) // RANGE int16 + self.Emit("MOVW", _CX, jit.Ptr(_VP, 0)) // MOVW CX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_i32(_ *_Instr) { + var pin = "_i32_end_{n}" + self.parse_signed(int32Type, pin, -1) // PARSE int32 + self.range_signed_CX(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32 + self.Emit("MOVL", _CX, jit.Ptr(_VP, 0)) // MOVL CX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_i64(_ *_Instr) { + var pin = "_i64_end_{n}" + self.parse_signed(int64Type, pin, -1) // PARSE int64 + self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX + self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_u8(_ *_Instr) { + var pin = "_u8_end_{n}" + self.parse_unsigned(uint8Type, pin, -1) // PARSE uint8 + self.range_unsigned_CX(_I_uint8, _T_uint8, math.MaxUint8) // RANGE uint8 + self.Emit("MOVB", _CX, jit.Ptr(_VP, 0)) // MOVB CX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_u16(_ *_Instr) { + var pin = "_u16_end_{n}" + self.parse_unsigned(uint16Type, pin, -1) // PARSE uint16 + self.range_unsigned_CX(_I_uint16, _T_uint16, math.MaxUint16) // RANGE uint16 + self.Emit("MOVW", _CX, jit.Ptr(_VP, 0)) // MOVW CX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_u32(_ *_Instr) { + var pin = "_u32_end_{n}" + self.parse_unsigned(uint32Type, pin, -1) // PARSE uint32 + self.range_unsigned_CX(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32 + self.Emit("MOVL", _CX, jit.Ptr(_VP, 0)) // MOVL CX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_u64(_ *_Instr) { + var pin = "_u64_end_{n}" + self.parse_unsigned(uint64Type, pin, -1) // PARSE uint64 + self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX + self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_f32(_ *_Instr) { + var pin = "_f32_end_{n}" + self.parse_number(float32Type, pin, -1) // PARSE NUMBER + self.range_single_X0() // RANGE float32 + self.Emit("MOVSS", _X0, jit.Ptr(_VP, 0)) // MOVSS X0, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_f64(_ *_Instr) { + var pin = "_f64_end_{n}" + self.parse_number(float64Type, pin, -1) // PARSE NUMBER + self.Emit("MOVSD", _VAR_st_Dv, _X0) // MOVSD st.Dv, X0 + self.Emit("MOVSD", _X0, jit.Ptr(_VP, 0)) // MOVSD X0, (VP) + self.Link(pin) +} + +func (self *_Assembler) _asm_OP_unquote(_ *_Instr) { + self.check_eof(2) + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('\\')) // CMPB (IP)(IC), $'\\' + self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 1), jit.Imm('"')) // CMPB 1(IP)(IC), $'"' + self.Sjmp("JNE" , _LB_char_1_error) // JNE _char_1_error + self.Emit("ADDQ", jit.Imm(2), _IC) // ADDQ $2, IC + self.parse_string() // PARSE STRING + self.unquote_twice(jit.Ptr(_VP, 0), jit.Ptr(_VP, 8), false) // UNQUOTE twice, (VP), 8(VP) +} + +func (self *_Assembler) _asm_OP_nil_1(_ *_Instr) { + self.Emit("XORL", _AX, _AX) // XORL AX, AX + self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) +} + +func (self *_Assembler) _asm_OP_nil_2(_ *_Instr) { + self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) +} + +func (self *_Assembler) _asm_OP_nil_3(_ *_Instr) { + self.Emit("XORL" , _AX, _AX) // XORL AX, AX + self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) + self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 16)) // MOVOU AX, 16(VP) +} + +func (self *_Assembler) _asm_OP_deref(p *_Instr) { + self.vfollow(p.vt()) +} + +func (self *_Assembler) _asm_OP_index(p *_Instr) { + self.Emit("MOVQ", jit.Imm(p.i64()), _AX) // MOVQ ${p.vi()}, AX + self.Emit("ADDQ", _AX, _VP) // ADDQ _AX, _VP +} + +func (self *_Assembler) _asm_OP_is_null(p *_Instr) { + self.Emit("LEAQ" , jit.Ptr(_IC, 4), _AX) // LEAQ 4(IC), AX + self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL + self.Sjmp("JA" , "_not_null_{n}") // JA _not_null_{n} + self.Emit("CMPL" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(_IM_null)) // CMPL (IP)(IC), $"null" + self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC + self.Xjmp("JE" , p.vi()) // JE {p.vi()} + self.Link("_not_null_{n}") // _not_null_{n}: +} + +func (self *_Assembler) _asm_OP_is_null_quote(p *_Instr) { + self.Emit("LEAQ" , jit.Ptr(_IC, 5), _AX) // LEAQ 4(IC), AX + self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL + self.Sjmp("JA" , "_not_null_quote_{n}") // JA _not_null_quote_{n} + self.Emit("CMPL" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(_IM_null)) // CMPL (IP)(IC), $"null" + self.Sjmp("JNE" , "_not_null_quote_{n}") // JNE _not_null_quote_{n} + self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, 4), jit.Imm('"')) // CMPB 4(IP)(IC), $'"' + self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC + self.Xjmp("JE" , p.vi()) // JE {p.vi()} + self.Link("_not_null_quote_{n}") // _not_null_quote_{n}: +} + +func (self *_Assembler) _asm_OP_map_init(_ *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNZ" , "_end_{n}") // JNZ _end_{n} + self.call_go(_F_makemap_small) // CALL_GO makemap_small + self.WritePtrAX(6, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) + self.Link("_end_{n}") // _end_{n}: + self.Emit("MOVQ" , _AX, _VP) // MOVQ AX, VP +} + +func (self *_Assembler) _asm_OP_map_key_i8(p *_Instr) { + self.parse_signed(int8Type, "", p.vi()) // PARSE int8 + self.range_signed_CX(_I_int8, _T_int8, math.MinInt8, math.MaxInt8) // RANGE int8 + self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN int8, mapassign, st.Iv +} + +func (self *_Assembler) _asm_OP_map_key_i16(p *_Instr) { + self.parse_signed(int16Type, "", p.vi()) // PARSE int16 + self.range_signed_CX(_I_int16, _T_int16, math.MinInt16, math.MaxInt16) // RANGE int16 + self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN int16, mapassign, st.Iv +} + +func (self *_Assembler) _asm_OP_map_key_i32(p *_Instr) { + self.parse_signed(int32Type, "", p.vi()) // PARSE int32 + self.range_signed_CX(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32 + if vt := p.vt(); !mapfast(vt) { + self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int32, mapassign, st.Iv + } else { + self.Emit("MOVQ", _CX, _AX) // MOVQ CX, AX + self.mapassign_fastx(vt, _F_mapassign_fast32) // MAPASSIGN int32, mapassign_fast32 + } +} + +func (self *_Assembler) _asm_OP_map_key_i64(p *_Instr) { + self.parse_signed(int64Type, "", p.vi()) // PARSE int64 + if vt := p.vt(); !mapfast(vt) { + self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int64, mapassign, st.Iv + } else { + self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX + self.mapassign_fastx(vt, _F_mapassign_fast64) // MAPASSIGN int64, mapassign_fast64 + } +} + +func (self *_Assembler) _asm_OP_map_key_u8(p *_Instr) { + self.parse_unsigned(uint8Type, "", p.vi()) // PARSE uint8 + self.range_unsigned_CX(_I_uint8, _T_uint8, math.MaxUint8) // RANGE uint8 + self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN uint8, vt.Iv +} + +func (self *_Assembler) _asm_OP_map_key_u16(p *_Instr) { + self.parse_unsigned(uint16Type, "", p.vi()) // PARSE uint16 + self.range_unsigned_CX(_I_uint16, _T_uint16, math.MaxUint16) // RANGE uint16 + self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN uint16, vt.Iv +} + +func (self *_Assembler) _asm_OP_map_key_u32(p *_Instr) { + self.parse_unsigned(uint32Type, "", p.vi()) // PARSE uint32 + self.range_unsigned_CX(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32 + if vt := p.vt(); !mapfast(vt) { + self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint32, vt.Iv + } else { + self.Emit("MOVQ", _CX, _AX) // MOVQ CX, AX + self.mapassign_fastx(vt, _F_mapassign_fast32) // MAPASSIGN uint32, mapassign_fast32 + } +} + +func (self *_Assembler) _asm_OP_map_key_u64(p *_Instr) { + self.parse_unsigned(uint64Type, "", p.vi()) // PARSE uint64 + if vt := p.vt(); !mapfast(vt) { + self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint64, vt.Iv + } else { + self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX + self.mapassign_fastx(vt, _F_mapassign_fast64) // MAPASSIGN uint64, mapassign_fast64 + } +} + +func (self *_Assembler) _asm_OP_map_key_f32(p *_Instr) { + self.parse_number(float32Type, "", p.vi()) // PARSE NUMBER + self.range_single_X0() // RANGE float32 + self.Emit("MOVSS", _X0, _VAR_st_Dv) // MOVSS X0, st.Dv + self.mapassign_std(p.vt(), _VAR_st_Dv) // MAPASSIGN ${p.vt()}, mapassign, st.Dv +} + +func (self *_Assembler) _asm_OP_map_key_f64(p *_Instr) { + self.parse_number(float64Type, "", p.vi()) // PARSE NUMBER + self.mapassign_std(p.vt(), _VAR_st_Dv) // MAPASSIGN ${p.vt()}, mapassign, st.Dv +} + +func (self *_Assembler) _asm_OP_map_key_str(p *_Instr) { + self.parse_string() // PARSE STRING + self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, true) // UNQUOTE once, sv.p, sv.n + if vt := p.vt(); !mapfast(vt) { + self.valloc(vt.Key(), _DI) + self.Emit("MOVOU", _ARG_sv, _X0) + self.Emit("MOVOU", _X0, jit.Ptr(_DI, 0)) + self.mapassign_std(vt, jit.Ptr(_DI, 0)) // MAPASSIGN string, DI, SI + } else { + self.mapassign_str_fast(vt, _ARG_sv_p, _ARG_sv_n) // MAPASSIGN string, DI, SI + } +} + +func (self *_Assembler) _asm_OP_map_key_utext(p *_Instr) { + self.parse_string() // PARSE STRING + self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, true) // UNQUOTE once, sv.p, sv.n + self.mapassign_utext(p.vt(), false) // MAPASSIGN utext, ${p.vt()}, false +} + +func (self *_Assembler) _asm_OP_map_key_utext_p(p *_Instr) { + self.parse_string() // PARSE STRING + self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, true) // UNQUOTE once, sv.p, sv.n + self.mapassign_utext(p.vt(), true) // MAPASSIGN utext, ${p.vt()}, true +} + +func (self *_Assembler) _asm_OP_array_skip(_ *_Instr) { + self.call_sf(_F_skip_array) // CALL_SF skip_array + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v +} + +func (self *_Assembler) _asm_OP_array_clear(p *_Instr) { + self.mem_clear_rem(p.i64(), true) +} + +func (self *_Assembler) _asm_OP_array_clear_p(p *_Instr) { + self.mem_clear_rem(p.i64(), false) +} + +func (self *_Assembler) _asm_OP_slice_init(p *_Instr) { + self.Emit("XORL" , _AX, _AX) // XORL AX, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) + self.Emit("MOVQ" , jit.Ptr(_VP, 16), _BX) // MOVQ 16(VP), BX + self.Emit("TESTQ", _BX, _BX) // TESTQ BX, BX + self.Sjmp("JNZ" , "_done_{n}") // JNZ _done_{n} + self.Emit("MOVQ" , jit.Imm(_MinSlice), _CX) // MOVQ ${_MinSlice}, CX + self.Emit("MOVQ" , _CX, jit.Ptr(_VP, 16)) // MOVQ CX, 16(VP) + self.Emit("MOVQ" , jit.Type(p.vt()), _AX) // MOVQ ${p.vt()}, DX + self.call_go(_F_makeslice) // CALL_GO makeslice + self.WritePtrAX(7, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) + self.Emit("XORL" , _AX, _AX) // XORL AX, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) + self.Link("_done_{n}") // _done_{n} +} + +func (self *_Assembler) _asm_OP_slice_append(p *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_VP, 8), _AX) // MOVQ 8(VP), AX + self.Emit("CMPQ" , _AX, jit.Ptr(_VP, 16)) // CMPQ AX, 16(VP) + self.Sjmp("JB" , "_index_{n}") // JB _index_{n} + self.Emit("MOVQ" , _AX, _SI) // MOVQ AX, SI + self.Emit("SHLQ" , jit.Imm(1), _SI) // SHLQ $1, SI + self.Emit("MOVQ" , jit.Type(p.vt()), _AX) // MOVQ ${p.vt()}, AX + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _BX) // MOVQ (VP), BX + self.Emit("MOVQ" , jit.Ptr(_VP, 8), _CX) // MOVQ 8(VP), CX + self.Emit("MOVQ" , jit.Ptr(_VP, 16), _DI) // MOVQ 16(VP), DI + self.call_go(_F_growslice) // CALL_GO growslice + self.WritePtrAX(8, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) + self.Emit("MOVQ" , _BX, jit.Ptr(_VP, 8)) // MOVQ BX, 8(VP) + self.Emit("MOVQ" , _CX, jit.Ptr(_VP, 16)) // MOVQ CX, 16(VP) + self.Emit("MOVQ" , _BX, _AX) // MOVQ BX, AX + self.Link("_index_{n}") // _index_{n}: + self.Emit("ADDQ" , jit.Imm(1), jit.Ptr(_VP, 8)) // ADDQ $1, 8(VP) + self.Emit("MOVQ" , jit.Ptr(_VP, 0), _VP) // MOVQ (VP), VP + self.Emit("MOVQ" , jit.Imm(int64(p.vlen())), _CX) // MOVQ ${p.vlen()}, CX + self.From("MULQ" , _CX) // MULQ CX + self.Emit("ADDQ" , _AX, _VP) // ADDQ AX, VP +} + +func (self *_Assembler) _asm_OP_object_skip(_ *_Instr) { + self.call_sf(_F_skip_object) // CALL_SF skip_object + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v +} + +func (self *_Assembler) _asm_OP_object_next(_ *_Instr) { + self.call_sf(_F_skip_one) // CALL_SF skip_one + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v +} + +func (self *_Assembler) _asm_OP_struct_field(p *_Instr) { + assert_eq(caching.FieldEntrySize, 32, "invalid field entry size") + self.Emit("MOVQ" , jit.Imm(-1), _AX) // MOVQ $-1, AX + self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, sr + self.parse_string() // PARSE STRING + self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, false) // UNQUOTE once, sv.p, sv.n + self.Emit("LEAQ" , _ARG_sv, _AX) // LEAQ sv, AX + self.Emit("XORL" , _BX, _BX) // XORL BX, BX + self.call_go(_F_strhash) // CALL_GO strhash + self.Emit("MOVQ" , _AX, _R9) // MOVQ AX, R9 + self.Emit("MOVQ" , jit.Imm(freezeFields(p.vf())), _CX) // MOVQ ${p.vf()}, CX + self.Emit("MOVQ" , jit.Ptr(_CX, caching.FieldMap_b), _SI) // MOVQ FieldMap.b(CX), SI + self.Emit("MOVQ" , jit.Ptr(_CX, caching.FieldMap_N), _CX) // MOVQ FieldMap.N(CX), CX + self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX + self.Sjmp("JZ" , "_try_lowercase_{n}") // JZ _try_lowercase_{n} + self.Link("_loop_{n}") // _loop_{n}: + self.Emit("XORL" , _DX, _DX) // XORL DX, DX + self.From("DIVQ" , _CX) // DIVQ CX + self.Emit("LEAQ" , jit.Ptr(_DX, 1), _AX) // LEAQ 1(DX), AX + self.Emit("SHLQ" , jit.Imm(5), _DX) // SHLQ $5, DX + self.Emit("LEAQ" , jit.Sib(_SI, _DX, 1, 0), _DI) // LEAQ (SI)(DX), DI + self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Hash), _R8) // MOVQ FieldEntry.Hash(DI), R8 + self.Emit("TESTQ", _R8, _R8) // TESTQ R8, R8 + self.Sjmp("JZ" , "_try_lowercase_{n}") // JZ _try_lowercase_{n} + self.Emit("CMPQ" , _R8, _R9) // CMPQ R8, R9 + self.Sjmp("JNE" , "_loop_{n}") // JNE _loop_{n} + self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Name + 8), _DX) // MOVQ FieldEntry.Name+8(DI), DX + self.Emit("CMPQ" , _DX, _ARG_sv_n) // CMPQ DX, sv.n + self.Sjmp("JNE" , "_loop_{n}") // JNE _loop_{n} + self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_ID), _R8) // MOVQ FieldEntry.ID(DI), R8 + self.Emit("MOVQ" , _AX, _VAR_ss_AX) // MOVQ AX, ss.AX + self.Emit("MOVQ" , _CX, _VAR_ss_CX) // MOVQ CX, ss.CX + self.Emit("MOVQ" , _SI, _VAR_ss_SI) // MOVQ SI, ss.SI + self.Emit("MOVQ" , _R8, _VAR_ss_R8) // MOVQ R8, ss.R8 + self.Emit("MOVQ" , _R9, _VAR_ss_R9) // MOVQ R9, ss.R9 + self.Emit("MOVQ" , _ARG_sv_p, _AX) // MOVQ _VAR_sv_p, AX + self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Name), _CX) // MOVQ FieldEntry.Name(DI), CX + self.Emit("MOVQ" , _CX, _BX) // MOVQ CX, 8(SP) + self.Emit("MOVQ" , _DX, _CX) // MOVQ DX, 16(SP) + self.call_go(_F_memequal) // CALL_GO memequal + self.Emit("MOVB" , _AX, _DX) // MOVB 24(SP), DX + self.Emit("MOVQ" , _VAR_ss_AX, _AX) // MOVQ ss.AX, AX + self.Emit("MOVQ" , _VAR_ss_CX, _CX) // MOVQ ss.CX, CX + self.Emit("MOVQ" , _VAR_ss_SI, _SI) // MOVQ ss.SI, SI + self.Emit("MOVQ" , _VAR_ss_R9, _R9) // MOVQ ss.R9, R9 + self.Emit("TESTB", _DX, _DX) // TESTB DX, DX + self.Sjmp("JZ" , "_loop_{n}") // JZ _loop_{n} + self.Emit("MOVQ" , _VAR_ss_R8, _R8) // MOVQ ss.R8, R8 + self.Emit("MOVQ" , _R8, _VAR_sr) // MOVQ R8, sr + self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} + self.Link("_try_lowercase_{n}") // _try_lowercase_{n}: + self.Emit("MOVQ" , jit.Imm(referenceFields(p.vf())), _AX) // MOVQ ${p.vf()}, AX + self.Emit("MOVQ", _ARG_sv_p, _BX) // MOVQ sv, BX + self.Emit("MOVQ", _ARG_sv_n, _CX) // MOVQ sv, CX + self.call_go(_F_FieldMap_GetCaseInsensitive) // CALL_GO FieldMap::GetCaseInsensitive + self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, _VAR_sr + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNS" , "_end_{n}") // JNS _end_{n} + self.Emit("BTQ" , jit.Imm(_F_disable_unknown), _ARG_fv) // BTQ ${_F_disable_unknown}, fv + self.Sjmp("JC" , _LB_field_error) // JC _field_error + self.Link("_end_{n}") // _end_{n}: +} + +func (self *_Assembler) _asm_OP_unmarshal(p *_Instr) { + self.unmarshal_json(p.vt(), true) +} + +func (self *_Assembler) _asm_OP_unmarshal_p(p *_Instr) { + self.unmarshal_json(p.vt(), false) +} + +func (self *_Assembler) _asm_OP_unmarshal_text(p *_Instr) { + self.unmarshal_text(p.vt(), true) +} + +func (self *_Assembler) _asm_OP_unmarshal_text_p(p *_Instr) { + self.unmarshal_text(p.vt(), false) +} + +func (self *_Assembler) _asm_OP_lspace(_ *_Instr) { + self.lspace("_{n}") +} + +func (self *_Assembler) lspace(subfix string) { + var label = "_lspace" + subfix + self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error + self.Emit("MOVQ" , jit.Imm(_BM_space), _DX) // MOVQ _BM_space, DX + self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX + self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' + self.Sjmp("JA" , label) // JA _nospace_{n} + self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX + self.Sjmp("JNC" , label) // JNC _nospace_{n} + + /* test up to 4 characters */ + for i := 0; i < 3; i++ { + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error + self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX + self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' + self.Sjmp("JA" , label) // JA _nospace_{n} + self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX + self.Sjmp("JNC" , label) // JNC _nospace_{n} + } + + /* handle over to the native function */ + self.Emit("MOVQ" , _IP, _DI) // MOVQ IP, DI + self.Emit("MOVQ" , _IL, _SI) // MOVQ IL, SI + self.Emit("MOVQ" , _IC, _DX) // MOVQ IC, DX + self.callc(_F_lspace) // CALL lspace + self.Emit("TESTQ" , _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , _LB_parsing_error_v) // JS _parsing_error_v + self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL + self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error + self.Emit("MOVQ" , _AX, _IC) // MOVQ AX, IC + self.Link(label) // _nospace_{n}: +} + +func (self *_Assembler) _asm_OP_match_char(p *_Instr) { + self.check_eof(1) + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(p.vb()))) // CMPB (IP)(IC), ${p.vb()} + self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error + self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC +} + +func (self *_Assembler) _asm_OP_check_char(p *_Instr) { + self.check_eof(1) + self.Emit("LEAQ" , jit.Ptr(_IC, 1), _AX) // LEAQ 1(IC), AX + self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(p.vb()))) // CMPB (IP)(IC), ${p.vb()} + self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC + self.Xjmp("JE" , p.vi()) // JE {p.vi()} +} + +func (self *_Assembler) _asm_OP_check_char_0(p *_Instr) { + self.check_eof(1) + self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(p.vb()))) // CMPB (IP)(IC), ${p.vb()} + self.Xjmp("JE" , p.vi()) // JE {p.vi()} +} + +func (self *_Assembler) _asm_OP_add(p *_Instr) { + self.Emit("ADDQ", jit.Imm(int64(p.vi())), _IC) // ADDQ ${p.vi()}, IC +} + +func (self *_Assembler) _asm_OP_load(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _VP) // MOVQ (ST)(AX), VP +} + +func (self *_Assembler) _asm_OP_save(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_ST, 0), _CX) // MOVQ (ST), CX + self.Emit("CMPQ", _CX, jit.Imm(_MaxStackBytes)) // CMPQ CX, ${_MaxStackBytes} + self.Sjmp("JAE" , _LB_stack_error) // JA _stack_error + self.WriteRecNotAX(0 , _VP, jit.Sib(_ST, _CX, 1, 8), false, false) // MOVQ VP, 8(ST)(CX) + self.Emit("ADDQ", jit.Imm(8), _CX) // ADDQ $8, CX + self.Emit("MOVQ", _CX, jit.Ptr(_ST, 0)) // MOVQ CX, (ST) +} + +func (self *_Assembler) _asm_OP_drop(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("SUBQ", jit.Imm(8), _AX) // SUBQ $8, AX + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 8), _VP) // MOVQ 8(ST)(AX), VP + self.Emit("MOVQ", _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) + self.Emit("XORL", _BX, _BX) // XORL BX, BX + self.Emit("MOVQ", _BX, jit.Sib(_ST, _AX, 1, 8)) // MOVQ BX, 8(ST)(AX) +} + +func (self *_Assembler) _asm_OP_drop_2(_ *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("SUBQ" , jit.Imm(16), _AX) // SUBQ $16, AX + self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 8), _VP) // MOVQ 8(ST)(AX), VP + self.Emit("MOVQ" , _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) + self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 + self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 8)) // MOVOU X0, 8(ST)(AX) +} + +func (self *_Assembler) _asm_OP_recurse(p *_Instr) { + self.Emit("MOVQ", jit.Type(p.vt()), _AX) // MOVQ ${p.vt()}, AX + self.decode_dynamic(_AX, _VP) // DECODE AX, VP +} + +func (self *_Assembler) _asm_OP_goto(p *_Instr) { + self.Xjmp("JMP", p.vi()) +} + +func (self *_Assembler) _asm_OP_switch(p *_Instr) { + self.Emit("MOVQ", _VAR_sr, _AX) // MOVQ sr, AX + self.Emit("CMPQ", _AX, jit.Imm(p.i64())) // CMPQ AX, ${len(p.vs())} + self.Sjmp("JAE" , "_default_{n}") // JAE _default_{n} + + /* jump table selector */ + self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI + self.Sref("_switch_table_{n}", 4) // .... &_switch_table_{n} + self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, 0), _AX) // MOVLQSX (DI)(AX*4), AX + self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX + self.Rjmp("JMP" , _AX) // JMP AX + self.Link("_switch_table_{n}") // _switch_table_{n}: + + /* generate the jump table */ + for i, v := range p.vs() { + self.Xref(v, int64(-i) * 4) + } + + /* default case */ + self.Link("_default_{n}") + self.NOP() +} + +func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { + self.Emit("MOVQ", jit.Imm(int64(p2.op())), _CX)// MOVQ $(p2.op()), 16(SP) + self.Emit("MOVQ", jit.Imm(int64(p1.op())), _BX) // MOVQ $(p1.op()), 8(SP) + self.Emit("MOVQ", jit.Imm(int64(i)), _AX) // MOVQ $(i), (SP) + self.call_go(_F_println) +} + +//go:linkname _runtime_writeBarrier runtime.writeBarrier +var _runtime_writeBarrier uintptr + +//go:linkname gcWriteBarrierAX runtime.gcWriteBarrier +func gcWriteBarrierAX() + +var ( + _V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&_runtime_writeBarrier)))) + + _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) +) + +func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) { + self.Emit("MOVQ", _V_writeBarrier, _R9) + self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.call(_F_gcWriteBarrierAX) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", _AX, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + +func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool, saveAX bool) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _R9) + self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveAX { + self.Emit("XCHGQ", ptr, _AX) + } else { + self.Emit("MOVQ", ptr, _AX) + } + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.call(_F_gcWriteBarrierAX) + if saveDI { + self.load(_DI) + } + if saveAX { + self.Emit("XCHGQ", ptr, _AX) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/decoder/compiler.go b/vendor/github.com/bytedance/sonic/decoder/compiler.go new file mode 100644 index 0000000000..b4fc2fed2c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/compiler.go @@ -0,0 +1,1136 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `encoding/json` + `fmt` + `reflect` + `sort` + `strconv` + `strings` + `unsafe` + + `github.com/bytedance/sonic/internal/caching` + `github.com/bytedance/sonic/internal/resolver` + `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/option` +) + +type _Op uint8 + +const ( + _OP_any _Op = iota + 1 + _OP_dyn + _OP_str + _OP_bin + _OP_bool + _OP_num + _OP_i8 + _OP_i16 + _OP_i32 + _OP_i64 + _OP_u8 + _OP_u16 + _OP_u32 + _OP_u64 + _OP_f32 + _OP_f64 + _OP_unquote + _OP_nil_1 + _OP_nil_2 + _OP_nil_3 + _OP_deref + _OP_index + _OP_is_null + _OP_is_null_quote + _OP_map_init + _OP_map_key_i8 + _OP_map_key_i16 + _OP_map_key_i32 + _OP_map_key_i64 + _OP_map_key_u8 + _OP_map_key_u16 + _OP_map_key_u32 + _OP_map_key_u64 + _OP_map_key_f32 + _OP_map_key_f64 + _OP_map_key_str + _OP_map_key_utext + _OP_map_key_utext_p + _OP_array_skip + _OP_array_clear + _OP_array_clear_p + _OP_slice_init + _OP_slice_append + _OP_object_skip + _OP_object_next + _OP_struct_field + _OP_unmarshal + _OP_unmarshal_p + _OP_unmarshal_text + _OP_unmarshal_text_p + _OP_lspace + _OP_match_char + _OP_check_char + _OP_load + _OP_save + _OP_drop + _OP_drop_2 + _OP_recurse + _OP_goto + _OP_switch + _OP_check_char_0 + _OP_dismatch_err + _OP_go_skip + _OP_add + _OP_debug +) + +const ( + _INT_SIZE = 32 << (^uint(0) >> 63) + _PTR_SIZE = 32 << (^uintptr(0) >> 63) + _PTR_BYTE = unsafe.Sizeof(uintptr(0)) +) + +const ( + _MAX_ILBUF = 100000 // cutoff at 100k of IL instructions + _MAX_FIELDS = 50 // cutoff at 50 fields struct +) + +var _OpNames = [256]string { + _OP_any : "any", + _OP_dyn : "dyn", + _OP_str : "str", + _OP_bin : "bin", + _OP_bool : "bool", + _OP_num : "num", + _OP_i8 : "i8", + _OP_i16 : "i16", + _OP_i32 : "i32", + _OP_i64 : "i64", + _OP_u8 : "u8", + _OP_u16 : "u16", + _OP_u32 : "u32", + _OP_u64 : "u64", + _OP_f32 : "f32", + _OP_f64 : "f64", + _OP_unquote : "unquote", + _OP_nil_1 : "nil_1", + _OP_nil_2 : "nil_2", + _OP_nil_3 : "nil_3", + _OP_deref : "deref", + _OP_index : "index", + _OP_is_null : "is_null", + _OP_is_null_quote : "is_null_quote", + _OP_map_init : "map_init", + _OP_map_key_i8 : "map_key_i8", + _OP_map_key_i16 : "map_key_i16", + _OP_map_key_i32 : "map_key_i32", + _OP_map_key_i64 : "map_key_i64", + _OP_map_key_u8 : "map_key_u8", + _OP_map_key_u16 : "map_key_u16", + _OP_map_key_u32 : "map_key_u32", + _OP_map_key_u64 : "map_key_u64", + _OP_map_key_f32 : "map_key_f32", + _OP_map_key_f64 : "map_key_f64", + _OP_map_key_str : "map_key_str", + _OP_map_key_utext : "map_key_utext", + _OP_map_key_utext_p : "map_key_utext_p", + _OP_array_skip : "array_skip", + _OP_slice_init : "slice_init", + _OP_slice_append : "slice_append", + _OP_object_skip : "object_skip", + _OP_object_next : "object_next", + _OP_struct_field : "struct_field", + _OP_unmarshal : "unmarshal", + _OP_unmarshal_p : "unmarshal_p", + _OP_unmarshal_text : "unmarshal_text", + _OP_unmarshal_text_p : "unmarshal_text_p", + _OP_lspace : "lspace", + _OP_match_char : "match_char", + _OP_check_char : "check_char", + _OP_load : "load", + _OP_save : "save", + _OP_drop : "drop", + _OP_drop_2 : "drop_2", + _OP_recurse : "recurse", + _OP_goto : "goto", + _OP_switch : "switch", + _OP_check_char_0 : "check_char_0", + _OP_dismatch_err : "dismatch_err", + _OP_add : "add", +} + +func (self _Op) String() string { + if ret := _OpNames[self]; ret != "" { + return ret + } else { + return "" + } +} + +func _OP_int() _Op { + switch _INT_SIZE { + case 32: return _OP_i32 + case 64: return _OP_i64 + default: panic("unsupported int size") + } +} + +func _OP_uint() _Op { + switch _INT_SIZE { + case 32: return _OP_u32 + case 64: return _OP_u64 + default: panic("unsupported uint size") + } +} + +func _OP_uintptr() _Op { + switch _PTR_SIZE { + case 32: return _OP_u32 + case 64: return _OP_u64 + default: panic("unsupported pointer size") + } +} + +func _OP_map_key_int() _Op { + switch _INT_SIZE { + case 32: return _OP_map_key_i32 + case 64: return _OP_map_key_i64 + default: panic("unsupported int size") + } +} + +func _OP_map_key_uint() _Op { + switch _INT_SIZE { + case 32: return _OP_map_key_u32 + case 64: return _OP_map_key_u64 + default: panic("unsupported uint size") + } +} + +func _OP_map_key_uintptr() _Op { + switch _PTR_SIZE { + case 32: return _OP_map_key_u32 + case 64: return _OP_map_key_u64 + default: panic("unsupported pointer size") + } +} + +type _Instr struct { + u uint64 // union {op: 8, vb: 8, vi: 48}, iv maybe int or len([]int) + p unsafe.Pointer // maybe GoSlice.Data, *GoType or *caching.FieldMap +} + +func packOp(op _Op) uint64 { + return uint64(op) << 56 +} + +func newInsOp(op _Op) _Instr { + return _Instr{u: packOp(op)} +} + +func newInsVi(op _Op, vi int) _Instr { + return _Instr{u: packOp(op) | rt.PackInt(vi)} +} + +func newInsVb(op _Op, vb byte) _Instr { + return _Instr{u: packOp(op) | (uint64(vb) << 48)} +} + +func newInsVs(op _Op, vs []int) _Instr { + return _Instr { + u: packOp(op) | rt.PackInt(len(vs)), + p: (*rt.GoSlice)(unsafe.Pointer(&vs)).Ptr, + } +} + +func newInsVt(op _Op, vt reflect.Type) _Instr { + return _Instr { + u: packOp(op), + p: unsafe.Pointer(rt.UnpackType(vt)), + } +} + +func newInsVf(op _Op, vf *caching.FieldMap) _Instr { + return _Instr { + u: packOp(op), + p: unsafe.Pointer(vf), + } +} + +func (self _Instr) op() _Op { + return _Op(self.u >> 56) +} + +func (self _Instr) vi() int { + return rt.UnpackInt(self.u) +} + +func (self _Instr) vb() byte { + return byte(self.u >> 48) +} + +func (self _Instr) vs() (v []int) { + (*rt.GoSlice)(unsafe.Pointer(&v)).Ptr = self.p + (*rt.GoSlice)(unsafe.Pointer(&v)).Cap = self.vi() + (*rt.GoSlice)(unsafe.Pointer(&v)).Len = self.vi() + return +} + +func (self _Instr) vf() *caching.FieldMap { + return (*caching.FieldMap)(self.p) +} + +func (self _Instr) vk() reflect.Kind { + return (*rt.GoType)(self.p).Kind() +} + +func (self _Instr) vt() reflect.Type { + return (*rt.GoType)(self.p).Pack() +} + +func (self _Instr) i64() int64 { + return int64(self.vi()) +} + +func (self _Instr) vlen() int { + return int((*rt.GoType)(self.p).Size) +} + +func (self _Instr) isBranch() bool { + switch self.op() { + case _OP_goto : fallthrough + case _OP_switch : fallthrough + case _OP_is_null : fallthrough + case _OP_is_null_quote : fallthrough + case _OP_check_char : return true + default : return false + } +} + +func (self _Instr) disassemble() string { + switch self.op() { + case _OP_dyn : fallthrough + case _OP_deref : fallthrough + case _OP_map_key_i8 : fallthrough + case _OP_map_key_i16 : fallthrough + case _OP_map_key_i32 : fallthrough + case _OP_map_key_i64 : fallthrough + case _OP_map_key_u8 : fallthrough + case _OP_map_key_u16 : fallthrough + case _OP_map_key_u32 : fallthrough + case _OP_map_key_u64 : fallthrough + case _OP_map_key_f32 : fallthrough + case _OP_map_key_f64 : fallthrough + case _OP_map_key_str : fallthrough + case _OP_map_key_utext : fallthrough + case _OP_map_key_utext_p : fallthrough + case _OP_slice_init : fallthrough + case _OP_slice_append : fallthrough + case _OP_unmarshal : fallthrough + case _OP_unmarshal_p : fallthrough + case _OP_unmarshal_text : fallthrough + case _OP_unmarshal_text_p : fallthrough + case _OP_recurse : return fmt.Sprintf("%-18s%s", self.op(), self.vt()) + case _OP_goto : fallthrough + case _OP_is_null_quote : fallthrough + case _OP_is_null : return fmt.Sprintf("%-18sL_%d", self.op(), self.vi()) + case _OP_index : fallthrough + case _OP_array_clear : fallthrough + case _OP_array_clear_p : return fmt.Sprintf("%-18s%d", self.op(), self.vi()) + case _OP_switch : return fmt.Sprintf("%-18s%s", self.op(), self.formatSwitchLabels()) + case _OP_struct_field : return fmt.Sprintf("%-18s%s", self.op(), self.formatStructFields()) + case _OP_match_char : return fmt.Sprintf("%-18s%s", self.op(), strconv.QuoteRune(rune(self.vb()))) + case _OP_check_char : return fmt.Sprintf("%-18sL_%d, %s", self.op(), self.vi(), strconv.QuoteRune(rune(self.vb()))) + default : return self.op().String() + } +} + +func (self _Instr) formatSwitchLabels() string { + var i int + var v int + var m []string + + /* format each label */ + for i, v = range self.vs() { + m = append(m, fmt.Sprintf("%d=L_%d", i, v)) + } + + /* join them with "," */ + return strings.Join(m, ", ") +} + +func (self _Instr) formatStructFields() string { + var i uint64 + var r []string + var m []struct{i int; n string} + + /* extract all the fields */ + for i = 0; i < self.vf().N; i++ { + if v := self.vf().At(i); v.Hash != 0 { + m = append(m, struct{i int; n string}{i: v.ID, n: v.Name}) + } + } + + /* sort by field name */ + sort.Slice(m, func(i, j int) bool { + return m[i].n < m[j].n + }) + + /* format each field */ + for _, v := range m { + r = append(r, fmt.Sprintf("%s=%d", v.n, v.i)) + } + + /* join them with "," */ + return strings.Join(r, ", ") +} + +type ( + _Program []_Instr +) + +func (self _Program) pc() int { + return len(self) +} + +func (self _Program) tag(n int) { + if n >= _MaxStack { + panic("type nesting too deep") + } +} + +func (self _Program) pin(i int) { + v := &self[i] + v.u &= 0xffff000000000000 + v.u |= rt.PackInt(self.pc()) +} + +func (self _Program) rel(v []int) { + for _, i := range v { + self.pin(i) + } +} + +func (self *_Program) add(op _Op) { + *self = append(*self, newInsOp(op)) +} + +func (self *_Program) int(op _Op, vi int) { + *self = append(*self, newInsVi(op, vi)) +} + +func (self *_Program) chr(op _Op, vb byte) { + *self = append(*self, newInsVb(op, vb)) +} + +func (self *_Program) tab(op _Op, vs []int) { + *self = append(*self, newInsVs(op, vs)) +} + +func (self *_Program) rtt(op _Op, vt reflect.Type) { + *self = append(*self, newInsVt(op, vt)) +} + +func (self *_Program) fmv(op _Op, vf *caching.FieldMap) { + *self = append(*self, newInsVf(op, vf)) +} + +func (self _Program) disassemble() string { + nb := len(self) + tab := make([]bool, nb + 1) + ret := make([]string, 0, nb + 1) + + /* prescan to get all the labels */ + for _, ins := range self { + if ins.isBranch() { + if ins.op() != _OP_switch { + tab[ins.vi()] = true + } else { + for _, v := range ins.vs() { + tab[v] = true + } + } + } + } + + /* disassemble each instruction */ + for i, ins := range self { + if !tab[i] { + ret = append(ret, "\t" + ins.disassemble()) + } else { + ret = append(ret, fmt.Sprintf("L_%d:\n\t%s", i, ins.disassemble())) + } + } + + /* add the last label, if needed */ + if tab[nb] { + ret = append(ret, fmt.Sprintf("L_%d:", nb)) + } + + /* add an "end" indicator, and join all the strings */ + return strings.Join(append(ret, "\tend"), "\n") +} + +type _Compiler struct { + opts option.CompileOptions + tab map[reflect.Type]bool + rec map[reflect.Type]bool +} + +func newCompiler() *_Compiler { + return &_Compiler { + opts: option.DefaultCompileOptions(), + tab: map[reflect.Type]bool{}, + rec: map[reflect.Type]bool{}, + } +} + +func (self *_Compiler) apply(opts option.CompileOptions) *_Compiler { + self.opts = opts + return self +} + +func (self *_Compiler) rescue(ep *error) { + if val := recover(); val != nil { + if err, ok := val.(error); ok { + *ep = err + } else { + panic(val) + } + } +} + +func (self *_Compiler) compile(vt reflect.Type) (ret _Program, err error) { + defer self.rescue(&err) + self.compileOne(&ret, 0, vt) + return +} + +func (self *_Compiler) compileOne(p *_Program, sp int, vt reflect.Type) { + /* check for recursive nesting */ + ok := self.tab[vt] + if ok { + p.rtt(_OP_recurse, vt) + return + } + + pt := reflect.PtrTo(vt) + + /* check for `json.Unmarshaler` with pointer receiver */ + if pt.Implements(jsonUnmarshalerType) { + p.rtt(_OP_unmarshal_p, pt) + return + } + + /* check for `json.Unmarshaler` */ + if vt.Implements(jsonUnmarshalerType) { + p.add(_OP_lspace) + self.compileUnmarshalJson(p, vt) + return + } + + /* check for `encoding.TextMarshaler` with pointer receiver */ + if pt.Implements(encodingTextUnmarshalerType) { + p.add(_OP_lspace) + self.compileUnmarshalTextPtr(p, pt) + return + } + + /* check for `encoding.TextUnmarshaler` */ + if vt.Implements(encodingTextUnmarshalerType) { + p.add(_OP_lspace) + self.compileUnmarshalText(p, vt) + return + } + + /* enter the recursion */ + p.add(_OP_lspace) + self.tab[vt] = true + self.compileOps(p, sp, vt) + delete(self.tab, vt) +} + +func (self *_Compiler) compileOps(p *_Program, sp int, vt reflect.Type) { + switch vt.Kind() { + case reflect.Bool : self.compilePrimitive (vt, p, _OP_bool) + case reflect.Int : self.compilePrimitive (vt, p, _OP_int()) + case reflect.Int8 : self.compilePrimitive (vt, p, _OP_i8) + case reflect.Int16 : self.compilePrimitive (vt, p, _OP_i16) + case reflect.Int32 : self.compilePrimitive (vt, p, _OP_i32) + case reflect.Int64 : self.compilePrimitive (vt, p, _OP_i64) + case reflect.Uint : self.compilePrimitive (vt, p, _OP_uint()) + case reflect.Uint8 : self.compilePrimitive (vt, p, _OP_u8) + case reflect.Uint16 : self.compilePrimitive (vt, p, _OP_u16) + case reflect.Uint32 : self.compilePrimitive (vt, p, _OP_u32) + case reflect.Uint64 : self.compilePrimitive (vt, p, _OP_u64) + case reflect.Uintptr : self.compilePrimitive (vt, p, _OP_uintptr()) + case reflect.Float32 : self.compilePrimitive (vt, p, _OP_f32) + case reflect.Float64 : self.compilePrimitive (vt, p, _OP_f64) + case reflect.String : self.compileString (p, vt) + case reflect.Array : self.compileArray (p, sp, vt) + case reflect.Interface : self.compileInterface (p, vt) + case reflect.Map : self.compileMap (p, sp, vt) + case reflect.Ptr : self.compilePtr (p, sp, vt) + case reflect.Slice : self.compileSlice (p, sp, vt) + case reflect.Struct : self.compileStruct (p, sp, vt) + default : panic (&json.UnmarshalTypeError{Type: vt}) + } +} + +func (self *_Compiler) compileMap(p *_Program, sp int, vt reflect.Type) { + if reflect.PtrTo(vt.Key()).Implements(encodingTextUnmarshalerType) { + self.compileMapOp(p, sp, vt, _OP_map_key_utext_p) + } else if vt.Key().Implements(encodingTextUnmarshalerType) { + self.compileMapOp(p, sp, vt, _OP_map_key_utext) + } else { + self.compileMapUt(p, sp, vt) + } +} + +func (self *_Compiler) compileMapUt(p *_Program, sp int, vt reflect.Type) { + switch vt.Key().Kind() { + case reflect.Int : self.compileMapOp(p, sp, vt, _OP_map_key_int()) + case reflect.Int8 : self.compileMapOp(p, sp, vt, _OP_map_key_i8) + case reflect.Int16 : self.compileMapOp(p, sp, vt, _OP_map_key_i16) + case reflect.Int32 : self.compileMapOp(p, sp, vt, _OP_map_key_i32) + case reflect.Int64 : self.compileMapOp(p, sp, vt, _OP_map_key_i64) + case reflect.Uint : self.compileMapOp(p, sp, vt, _OP_map_key_uint()) + case reflect.Uint8 : self.compileMapOp(p, sp, vt, _OP_map_key_u8) + case reflect.Uint16 : self.compileMapOp(p, sp, vt, _OP_map_key_u16) + case reflect.Uint32 : self.compileMapOp(p, sp, vt, _OP_map_key_u32) + case reflect.Uint64 : self.compileMapOp(p, sp, vt, _OP_map_key_u64) + case reflect.Uintptr : self.compileMapOp(p, sp, vt, _OP_map_key_uintptr()) + case reflect.Float32 : self.compileMapOp(p, sp, vt, _OP_map_key_f32) + case reflect.Float64 : self.compileMapOp(p, sp, vt, _OP_map_key_f64) + case reflect.String : self.compileMapOp(p, sp, vt, _OP_map_key_str) + default : panic(&json.UnmarshalTypeError{Type: vt}) + } +} + +func (self *_Compiler) compileMapOp(p *_Program, sp int, vt reflect.Type, op _Op) { + i := p.pc() + p.add(_OP_is_null) + p.tag(sp + 1) + skip := self.checkIfSkip(p, vt, '{') + p.add(_OP_save) + p.add(_OP_map_init) + p.add(_OP_save) + p.add(_OP_lspace) + j := p.pc() + p.chr(_OP_check_char, '}') + p.chr(_OP_match_char, '"') + skip2 := p.pc() + p.rtt(op, vt) + + /* match the closing quote if needed */ + if op != _OP_map_key_str && op != _OP_map_key_utext && op != _OP_map_key_utext_p { + p.chr(_OP_match_char, '"') + } + + /* match the value separator */ + p.add(_OP_lspace) + p.chr(_OP_match_char, ':') + self.compileOne(p, sp + 2, vt.Elem()) + p.pin(skip2) + p.add(_OP_load) + k0 := p.pc() + p.add(_OP_lspace) + k1 := p.pc() + p.chr(_OP_check_char, '}') + p.chr(_OP_match_char, ',') + p.add(_OP_lspace) + p.chr(_OP_match_char, '"') + skip3 := p.pc() + p.rtt(op, vt) + + /* match the closing quote if needed */ + if op != _OP_map_key_str && op != _OP_map_key_utext && op != _OP_map_key_utext_p { + p.chr(_OP_match_char, '"') + } + + /* match the value separator */ + p.add(_OP_lspace) + p.chr(_OP_match_char, ':') + self.compileOne(p, sp + 2, vt.Elem()) + p.pin(skip3) + p.add(_OP_load) + p.int(_OP_goto, k0) + p.pin(j) + p.pin(k1) + p.add(_OP_drop_2) + x := p.pc() + p.add(_OP_goto) + p.pin(i) + p.add(_OP_nil_1) + p.pin(skip) + p.pin(x) +} + +func (self *_Compiler) compilePtr(p *_Program, sp int, et reflect.Type) { + i := p.pc() + p.add(_OP_is_null) + + /* dereference all the way down */ + for et.Kind() == reflect.Ptr { + et = et.Elem() + p.rtt(_OP_deref, et) + } + + /* compile the element type */ + self.compileOne(p, sp + 1, et) + j := p.pc() + p.add(_OP_goto) + p.pin(i) + p.add(_OP_nil_1) + p.pin(j) +} + +func (self *_Compiler) compileArray(p *_Program, sp int, vt reflect.Type) { + x := p.pc() + p.add(_OP_is_null) + p.tag(sp) + skip := self.checkIfSkip(p, vt, '[') + + p.add(_OP_save) + p.add(_OP_lspace) + v := []int{p.pc()} + p.chr(_OP_check_char, ']') + + /* decode every item */ + for i := 1; i <= vt.Len(); i++ { + self.compileOne(p, sp + 1, vt.Elem()) + p.add(_OP_load) + p.int(_OP_index, i * int(vt.Elem().Size())) + p.add(_OP_lspace) + v = append(v, p.pc()) + p.chr(_OP_check_char, ']') + p.chr(_OP_match_char, ',') + } + + /* drop rest of the array */ + p.add(_OP_array_skip) + w := p.pc() + p.add(_OP_goto) + p.rel(v) + + /* check for pointer data */ + if rt.UnpackType(vt.Elem()).PtrData == 0 { + p.int(_OP_array_clear, int(vt.Size())) + } else { + p.int(_OP_array_clear_p, int(vt.Size())) + } + + /* restore the stack */ + p.pin(w) + p.add(_OP_drop) + + p.pin(skip) + p.pin(x) +} + +func (self *_Compiler) compileSlice(p *_Program, sp int, vt reflect.Type) { + if vt.Elem().Kind() == byteType.Kind() { + self.compileSliceBin(p, sp, vt) + } else { + self.compileSliceList(p, sp, vt) + } +} + +func (self *_Compiler) compileSliceBin(p *_Program, sp int, vt reflect.Type) { + i := p.pc() + p.add(_OP_is_null) + j := p.pc() + p.chr(_OP_check_char, '[') + skip := self.checkIfSkip(p, vt, '"') + k := p.pc() + p.chr(_OP_check_char, '"') + p.add(_OP_bin) + x := p.pc() + p.add(_OP_goto) + p.pin(j) + self.compileSliceBody(p, sp, vt.Elem()) + y := p.pc() + p.add(_OP_goto) + p.pin(i) + p.pin(k) + p.add(_OP_nil_3) + p.pin(x) + p.pin(skip) + p.pin(y) +} + +func (self *_Compiler) compileSliceList(p *_Program, sp int, vt reflect.Type) { + i := p.pc() + p.add(_OP_is_null) + p.tag(sp) + skip := self.checkIfSkip(p, vt, '[') + self.compileSliceBody(p, sp, vt.Elem()) + x := p.pc() + p.add(_OP_goto) + p.pin(i) + p.add(_OP_nil_3) + p.pin(x) + p.pin(skip) +} + +func (self *_Compiler) compileSliceBody(p *_Program, sp int, et reflect.Type) { + p.rtt(_OP_slice_init, et) + p.add(_OP_save) + p.add(_OP_lspace) + j := p.pc() + p.chr(_OP_check_char, ']') + p.rtt(_OP_slice_append, et) + self.compileOne(p, sp + 1, et) + p.add(_OP_load) + k0 := p.pc() + p.add(_OP_lspace) + k1 := p.pc() + p.chr(_OP_check_char, ']') + p.chr(_OP_match_char, ',') + p.rtt(_OP_slice_append, et) + self.compileOne(p, sp + 1, et) + p.add(_OP_load) + p.int(_OP_goto, k0) + p.pin(j) + p.pin(k1) + p.add(_OP_drop) +} + +func (self *_Compiler) compileString(p *_Program, vt reflect.Type) { + if vt == jsonNumberType { + self.compilePrimitive(vt, p, _OP_num) + } else { + self.compileStringBody(vt, p) + } +} + +func (self *_Compiler) compileStringBody(vt reflect.Type, p *_Program) { + i := p.pc() + p.add(_OP_is_null) + skip := self.checkIfSkip(p, vt, '"') + p.add(_OP_str) + p.pin(i) + p.pin(skip) +} + +func (self *_Compiler) compileStruct(p *_Program, sp int, vt reflect.Type) { + if sp >= self.opts.MaxInlineDepth || p.pc() >= _MAX_ILBUF || (sp > 0 && vt.NumField() >= _MAX_FIELDS) { + p.rtt(_OP_recurse, vt) + if self.opts.RecursiveDepth > 0 { + self.rec[vt] = true + } + } else { + self.compileStructBody(p, sp, vt) + } +} + +func (self *_Compiler) compileStructBody(p *_Program, sp int, vt reflect.Type) { + fv := resolver.ResolveStruct(vt) + fm, sw := caching.CreateFieldMap(len(fv)), make([]int, len(fv)) + + /* start of object */ + p.tag(sp) + n := p.pc() + p.add(_OP_is_null) + + skip := self.checkIfSkip(p, vt, '{') + + p.add(_OP_save) + p.add(_OP_lspace) + x := p.pc() + p.chr(_OP_check_char, '}') + p.chr(_OP_match_char, '"') + p.fmv(_OP_struct_field, fm) + p.add(_OP_lspace) + p.chr(_OP_match_char, ':') + p.tab(_OP_switch, sw) + p.add(_OP_object_next) + y0 := p.pc() + p.add(_OP_lspace) + y1 := p.pc() + p.chr(_OP_check_char, '}') + p.chr(_OP_match_char, ',') + + /* special case of an empty struct */ + if len(fv) == 0 { + p.add(_OP_object_skip) + goto end_of_object + } + + /* match the remaining fields */ + p.add(_OP_lspace) + p.chr(_OP_match_char, '"') + p.fmv(_OP_struct_field, fm) + p.add(_OP_lspace) + p.chr(_OP_match_char, ':') + p.tab(_OP_switch, sw) + p.add(_OP_object_next) + p.int(_OP_goto, y0) + + /* process each field */ + for i, f := range fv { + sw[i] = p.pc() + fm.Set(f.Name, i) + + /* index to the field */ + for _, o := range f.Path { + if p.int(_OP_index, int(o.Size)); o.Kind == resolver.F_deref { + p.rtt(_OP_deref, o.Type) + } + } + + /* check for "stringnize" option */ + if (f.Opts & resolver.F_stringize) == 0 { + self.compileOne(p, sp + 1, f.Type) + } else { + self.compileStructFieldStr(p, sp + 1, f.Type) + } + + /* load the state, and try next field */ + p.add(_OP_load) + p.int(_OP_goto, y0) + } + +end_of_object: + p.pin(x) + p.pin(y1) + p.add(_OP_drop) + p.pin(n) + p.pin(skip) +} + +func (self *_Compiler) compileStructFieldStr(p *_Program, sp int, vt reflect.Type) { + n1 := -1 + ft := vt + sv := false + + /* dereference the pointer if needed */ + if ft.Kind() == reflect.Ptr { + ft = ft.Elem() + } + + /* check if it can be stringized */ + switch ft.Kind() { + case reflect.Bool : sv = true + case reflect.Int : sv = true + case reflect.Int8 : sv = true + case reflect.Int16 : sv = true + case reflect.Int32 : sv = true + case reflect.Int64 : sv = true + case reflect.Uint : sv = true + case reflect.Uint8 : sv = true + case reflect.Uint16 : sv = true + case reflect.Uint32 : sv = true + case reflect.Uint64 : sv = true + case reflect.Uintptr : sv = true + case reflect.Float32 : sv = true + case reflect.Float64 : sv = true + case reflect.String : sv = true + } + + /* if it's not, ignore the "string" and follow the regular path */ + if !sv { + self.compileOne(p, sp, vt) + return + } + + /* remove the leading space, and match the leading quote */ + vk := vt.Kind() + p.add(_OP_lspace) + n0 := p.pc() + p.add(_OP_is_null) + + skip := self.checkIfSkip(p, stringType, '"') + + /* also check for inner "null" */ + n1 = p.pc() + p.add(_OP_is_null_quote) + + /* dereference the pointer only when it is not null */ + if vk == reflect.Ptr { + vt = vt.Elem() + p.rtt(_OP_deref, vt) + } + + n2 := p.pc() + p.chr(_OP_check_char_0, '"') + + /* string opcode selector */ + _OP_string := func() _Op { + if ft == jsonNumberType { + return _OP_num + } else { + return _OP_unquote + } + } + + /* compile for each type */ + switch vt.Kind() { + case reflect.Bool : p.add(_OP_bool) + case reflect.Int : p.add(_OP_int()) + case reflect.Int8 : p.add(_OP_i8) + case reflect.Int16 : p.add(_OP_i16) + case reflect.Int32 : p.add(_OP_i32) + case reflect.Int64 : p.add(_OP_i64) + case reflect.Uint : p.add(_OP_uint()) + case reflect.Uint8 : p.add(_OP_u8) + case reflect.Uint16 : p.add(_OP_u16) + case reflect.Uint32 : p.add(_OP_u32) + case reflect.Uint64 : p.add(_OP_u64) + case reflect.Uintptr : p.add(_OP_uintptr()) + case reflect.Float32 : p.add(_OP_f32) + case reflect.Float64 : p.add(_OP_f64) + case reflect.String : p.add(_OP_string()) + default : panic("not reachable") + } + + /* the closing quote is not needed when parsing a pure string */ + if vt == jsonNumberType || vt.Kind() != reflect.String { + p.chr(_OP_match_char, '"') + } + + /* pin the `is_null_quote` jump location */ + if n1 != -1 && vk != reflect.Ptr { + p.pin(n1) + } + + /* "null" but not a pointer, act as if the field is not present */ + if vk != reflect.Ptr { + pc2 := p.pc() + p.add(_OP_goto) + p.pin(n2) + p.rtt(_OP_dismatch_err, vt) + p.int(_OP_add, 1) + p.pin(pc2) + p.pin(n0) + return + } + + /* the "null" case of the pointer */ + pc := p.pc() + p.add(_OP_goto) + p.pin(n0) // `is_null` jump location + p.pin(n1) // `is_null_quote` jump location + p.add(_OP_nil_1) + pc2 := p.pc() + p.add(_OP_goto) + p.pin(n2) + p.rtt(_OP_dismatch_err, vt) + p.int(_OP_add, 1) + p.pin(pc) + p.pin(pc2) + p.pin(skip) +} + +func (self *_Compiler) compileInterface(p *_Program, vt reflect.Type) { + i := p.pc() + p.add(_OP_is_null) + + /* check for empty interface */ + if vt.NumMethod() == 0 { + p.add(_OP_any) + } else { + p.rtt(_OP_dyn, vt) + } + + /* finish the OpCode */ + j := p.pc() + p.add(_OP_goto) + p.pin(i) + p.add(_OP_nil_2) + p.pin(j) +} + +func (self *_Compiler) compilePrimitive(vt reflect.Type, p *_Program, op _Op) { + i := p.pc() + p.add(_OP_is_null) + // skip := self.checkPrimitive(p, vt) + p.add(op) + p.pin(i) + // p.pin(skip) +} + +func (self *_Compiler) compileUnmarshalEnd(p *_Program, vt reflect.Type, i int) { + j := p.pc() + k := vt.Kind() + + /* not a pointer */ + if k != reflect.Ptr { + p.pin(i) + return + } + + /* it seems that in Go JSON library, "null" takes priority over any kind of unmarshaler */ + p.add(_OP_goto) + p.pin(i) + p.add(_OP_nil_1) + p.pin(j) +} + +func (self *_Compiler) compileUnmarshalJson(p *_Program, vt reflect.Type) { + i := p.pc() + v := _OP_unmarshal + p.add(_OP_is_null) + + /* check for dynamic interface */ + if vt.Kind() == reflect.Interface { + v = _OP_dyn + } + + /* call the unmarshaler */ + p.rtt(v, vt) + self.compileUnmarshalEnd(p, vt, i) +} + +func (self *_Compiler) compileUnmarshalText(p *_Program, vt reflect.Type) { + i := p.pc() + v := _OP_unmarshal_text + p.add(_OP_is_null) + + /* check for dynamic interface */ + if vt.Kind() == reflect.Interface { + v = _OP_dyn + } else { + p.chr(_OP_match_char, '"') + } + + /* call the unmarshaler */ + p.rtt(v, vt) + self.compileUnmarshalEnd(p, vt, i) +} + +func (self *_Compiler) compileUnmarshalTextPtr(p *_Program, vt reflect.Type) { + i := p.pc() + p.add(_OP_is_null) + p.chr(_OP_match_char, '"') + p.rtt(_OP_unmarshal_text_p, vt) + p.pin(i) +} + +func (self *_Compiler) checkIfSkip(p *_Program, vt reflect.Type, c byte) int { + j := p.pc() + p.chr(_OP_check_char_0, c) + p.rtt(_OP_dismatch_err, vt) + s := p.pc() + p.add(_OP_go_skip) + p.pin(j) + p.int(_OP_add, 1) + return s +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/decoder/debug.go b/vendor/github.com/bytedance/sonic/decoder/debug.go new file mode 100644 index 0000000000..9cf3a6a002 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/debug.go @@ -0,0 +1,70 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `os` + `runtime` + `runtime/debug` + `strings` + + `github.com/bytedance/sonic/internal/jit` +) + + +var ( + debugSyncGC = os.Getenv("SONIC_SYNC_GC") != "" + debugAsyncGC = os.Getenv("SONIC_NO_ASYNC_GC") == "" +) + +var ( + _Instr_End _Instr = newInsOp(_OP_nil_1) + + _F_gc = jit.Func(runtime.GC) + _F_force_gc = jit.Func(debug.FreeOSMemory) + _F_println = jit.Func(println_wrapper) + _F_print = jit.Func(print) +) + +func println_wrapper(i int, op1 int, op2 int){ + println(i, " Intrs ", op1, _OpNames[op1], "next: ", op2, _OpNames[op2]) +} + +func print(i int){ + println(i) +} + +func (self *_Assembler) force_gc() { + self.call_go(_F_gc) + self.call_go(_F_force_gc) +} + +func (self *_Assembler) debug_instr(i int, v *_Instr) { + if debugSyncGC { + if (i+1 == len(self.p)) { + self.print_gc(i, v, &_Instr_End) + } else { + next := &(self.p[i+1]) + self.print_gc(i, v, next) + name := _OpNames[next.op()] + if strings.Contains(name, "save") { + return + } + } + self.force_gc() + } +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/decoder/decoder.go b/vendor/github.com/bytedance/sonic/decoder/decoder.go new file mode 100644 index 0000000000..5326f9728f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/decoder.go @@ -0,0 +1,245 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `encoding/json` + `reflect` + `runtime` + + `github.com/bytedance/sonic/internal/native` + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/option` + `github.com/bytedance/sonic/utf8` +) + +const ( + _F_use_int64 = iota + _F_use_number + _F_disable_urc + _F_disable_unknown + _F_copy_string + _F_validate_string + + _F_allow_control = 31 +) + +type Options uint64 + +const ( + OptionUseInt64 Options = 1 << _F_use_int64 + OptionUseNumber Options = 1 << _F_use_number + OptionUseUnicodeErrors Options = 1 << _F_disable_urc + OptionDisableUnknown Options = 1 << _F_disable_unknown + OptionCopyString Options = 1 << _F_copy_string + OptionValidateString Options = 1 << _F_validate_string +) + +func (self *Decoder) SetOptions(opts Options) { + if (opts & OptionUseNumber != 0) && (opts & OptionUseInt64 != 0) { + panic("can't set OptionUseInt64 and OptionUseNumber both!") + } + self.f = uint64(opts) +} + + +// Decoder is the decoder context object +type Decoder struct { + i int + f uint64 + s string +} + +// NewDecoder creates a new decoder instance. +func NewDecoder(s string) *Decoder { + return &Decoder{s: s} +} + +// Pos returns the current decoding position. +func (self *Decoder) Pos() int { + return self.i +} + +func (self *Decoder) Reset(s string) { + self.s = s + self.i = 0 + // self.f = 0 +} + +func (self *Decoder) CheckTrailings() error { + pos := self.i + buf := self.s + /* skip all the trailing spaces */ + if pos != len(buf) { + for pos < len(buf) && (types.SPACE_MASK & (1 << buf[pos])) != 0 { + pos++ + } + } + + /* then it must be at EOF */ + if pos == len(buf) { + return nil + } + + /* junk after JSON value */ + return SyntaxError { + Src : buf, + Pos : pos, + Code : types.ERR_INVALID_CHAR, + } +} + + +// Decode parses the JSON-encoded data from current position and stores the result +// in the value pointed to by val. +func (self *Decoder) Decode(val interface{}) error { + /* validate json if needed */ + if (self.f & (1 << _F_validate_string)) != 0 && !utf8.ValidateString(self.s){ + dbuf := utf8.CorrectWith(nil, rt.Str2Mem(self.s), "\ufffd") + self.s = rt.Mem2Str(dbuf) + } + + vv := rt.UnpackEface(val) + vp := vv.Value + + /* check for nil type */ + if vv.Type == nil { + return &json.InvalidUnmarshalError{} + } + + /* must be a non-nil pointer */ + if vp == nil || vv.Type.Kind() != reflect.Ptr { + return &json.InvalidUnmarshalError{Type: vv.Type.Pack()} + } + + /* create a new stack, and call the decoder */ + sb, etp := newStack(), rt.PtrElem(vv.Type) + nb, err := decodeTypedPointer(self.s, self.i, etp, vp, sb, self.f) + /* return the stack back */ + self.i = nb + freeStack(sb) + + /* avoid GC ahead */ + runtime.KeepAlive(vv) + return err +} + +// UseInt64 indicates the Decoder to unmarshal an integer into an interface{} as an +// int64 instead of as a float64. +func (self *Decoder) UseInt64() { + self.f |= 1 << _F_use_int64 + self.f &^= 1 << _F_use_number +} + +// UseNumber indicates the Decoder to unmarshal a number into an interface{} as a +// json.Number instead of as a float64. +func (self *Decoder) UseNumber() { + self.f &^= 1 << _F_use_int64 + self.f |= 1 << _F_use_number +} + +// UseUnicodeErrors indicates the Decoder to return an error when encounter invalid +// UTF-8 escape sequences. +func (self *Decoder) UseUnicodeErrors() { + self.f |= 1 << _F_disable_urc +} + +// DisallowUnknownFields indicates the Decoder to return an error when the destination +// is a struct and the input contains object keys which do not match any +// non-ignored, exported fields in the destination. +func (self *Decoder) DisallowUnknownFields() { + self.f |= 1 << _F_disable_unknown +} + +// CopyString indicates the Decoder to decode string values by copying instead of referring. +func (self *Decoder) CopyString() { + self.f |= 1 << _F_copy_string +} + +// ValidateString causes the Decoder to validate string values when decoding string value +// in JSON. Validation is that, returning error when unescaped control chars(0x00-0x1f) or +// invalid UTF-8 chars in the string value of JSON. +func (self *Decoder) ValidateString() { + self.f |= 1 << _F_validate_string +} + +// Pretouch compiles vt ahead-of-time to avoid JIT compilation on-the-fly, in +// order to reduce the first-hit latency. +// +// Opts are the compile options, for example, "option.WithCompileRecursiveDepth" is +// a compile option to set the depth of recursive compile for the nested struct type. +func Pretouch(vt reflect.Type, opts ...option.CompileOption) error { + cfg := option.DefaultCompileOptions() + for _, opt := range opts { + opt(&cfg) + } + return pretouchRec(map[reflect.Type]bool{vt:true}, cfg) +} + +func pretouchType(_vt reflect.Type, opts option.CompileOptions) (map[reflect.Type]bool, error) { + /* compile function */ + compiler := newCompiler().apply(opts) + decoder := func(vt *rt.GoType, _ ...interface{}) (interface{}, error) { + if pp, err := compiler.compile(_vt); err != nil { + return nil, err + } else { + as := newAssembler(pp) + as.name = _vt.String() + return as.Load(), nil + } + } + + /* find or compile */ + vt := rt.UnpackType(_vt) + if val := programCache.Get(vt); val != nil { + return nil, nil + } else if _, err := programCache.Compute(vt, decoder); err == nil { + return compiler.rec, nil + } else { + return nil, err + } +} + +func pretouchRec(vtm map[reflect.Type]bool, opts option.CompileOptions) error { + if opts.RecursiveDepth < 0 || len(vtm) == 0 { + return nil + } + next := make(map[reflect.Type]bool) + for vt := range(vtm) { + sub, err := pretouchType(vt, opts) + if err != nil { + return err + } + for svt := range(sub) { + next[svt] = true + } + } + opts.RecursiveDepth -= 1 + return pretouchRec(next, opts) +} + +// Skip skips only one json value, and returns first non-blank character position and its ending position if it is valid. +// Otherwise, returns negative error code using start and invalid character position using end +func Skip(data []byte) (start int, end int) { + s := rt.Mem2Str(data) + p := 0 + m := types.NewStateMachine() + ret := native.SkipOne(&s, &p, m, uint64(0)) + types.FreeStateMachine(m) + return ret, p +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/decoder/errors.go b/vendor/github.com/bytedance/sonic/decoder/errors.go new file mode 100644 index 0000000000..c905fdfb0c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/errors.go @@ -0,0 +1,181 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `encoding/json` + `errors` + `fmt` + `reflect` + `strconv` + `strings` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +type SyntaxError struct { + Pos int + Src string + Code types.ParsingError + Msg string +} + +func (self SyntaxError) Error() string { + return fmt.Sprintf("%q", self.Description()) +} + +func (self SyntaxError) Description() string { + return "Syntax error " + self.description() +} + +func (self SyntaxError) description() string { + i := 16 + p := self.Pos - i + q := self.Pos + i + + /* check for empty source */ + if self.Src == "" { + return fmt.Sprintf("no sources available: %#v", self) + } + + /* prevent slicing before the beginning */ + if p < 0 { + p, q, i = 0, q - p, i + p + } + + /* prevent slicing beyond the end */ + if n := len(self.Src); q > n { + n = q - n + q = len(self.Src) + + /* move the left bound if possible */ + if p > n { + i += n + p -= n + } + } + + /* left and right length */ + x := clamp_zero(i) + y := clamp_zero(q - p - i - 1) + + /* compose the error description */ + return fmt.Sprintf( + "at index %d: %s\n\n\t%s\n\t%s^%s\n", + self.Pos, + self.Message(), + self.Src[p:q], + strings.Repeat(".", x), + strings.Repeat(".", y), + ) +} + +func (self SyntaxError) Message() string { + if self.Msg == "" { + return self.Code.Message() + } + return self.Msg +} + +func clamp_zero(v int) int { + if v < 0 { + return 0 + } else { + return v + } +} + +/** JIT Error Helpers **/ + +var stackOverflow = &json.UnsupportedValueError { + Str : "Value nesting too deep", + Value : reflect.ValueOf("..."), +} + +//go:nosplit +func error_wrap(src string, pos int, code types.ParsingError) error { + return SyntaxError { + Pos : pos, + Src : src, + Code : code, + } +} + +//go:nosplit +func error_type(vt *rt.GoType) error { + return &json.UnmarshalTypeError{Type: vt.Pack()} +} + +type MismatchTypeError struct { + Pos int + Src string + Type reflect.Type +} + +func swithchJSONType (src string, pos int) string { + var val string + switch src[pos] { + case 'f': fallthrough + case 't': val = "bool" + case '"': val = "string" + case '{': val = "object" + case '[': val = "array" + case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': val = "number" + } + return val +} + +func (self MismatchTypeError) Error() string { + se := SyntaxError { + Pos : self.Pos, + Src : self.Src, + Code : types.ERR_MISMATCH, + } + return fmt.Sprintf("Mismatch type %s with value %s %q", self.Type.String(), swithchJSONType(self.Src, self.Pos), se.description()) +} + +func (self MismatchTypeError) Description() string { + se := SyntaxError { + Pos : self.Pos, + Src : self.Src, + Code : types.ERR_MISMATCH, + } + return fmt.Sprintf("Mismatch type %s with value %s %s", self.Type.String(), swithchJSONType(self.Src, self.Pos), se.description()) +} + +//go:nosplit +func error_mismatch(src string, pos int, vt *rt.GoType) error { + return &MismatchTypeError { + Pos : pos, + Src : src, + Type : vt.Pack(), + } +} + +//go:nosplit +func error_field(name string) error { + return errors.New("json: unknown field " + strconv.Quote(name)) +} + +//go:nosplit +func error_value(value string, vtype reflect.Type) error { + return &json.UnmarshalTypeError { + Type : vtype, + Value : value, + } +} diff --git a/vendor/github.com/bytedance/sonic/decoder/generic_amd64_go116.go b/vendor/github.com/bytedance/sonic/decoder/generic_amd64_go116.go new file mode 100644 index 0000000000..b597043f9d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/generic_amd64_go116.go @@ -0,0 +1,776 @@ +// +build go1.15,!go1.17 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `encoding/json` + `fmt` + `reflect` + `strconv` + + `github.com/bytedance/sonic/internal/jit` + `github.com/bytedance/sonic/internal/native` + `github.com/bytedance/sonic/internal/native/types` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` +) + +/** Crucial Registers: + * + * ST(BX) : ro, decoder stack + * DF(R10) : ro, decoder flags + * EP(R11) : wo, error pointer + * IP(R12) : ro, input pointer + * IL(R13) : ro, input length + * IC(R14) : rw, input cursor + * VP(R15) : ro, value pointer (to an interface{}) + */ + +const ( + _VD_args = 8 // 8 bytes for passing arguments to this functions + _VD_fargs = 64 // 64 bytes for passing arguments to other Go functions + _VD_saves = 40 // 40 bytes for saving the registers before CALL instructions + _VD_locals = 88 // 88 bytes for local variables +) + +const ( + _VD_offs = _VD_fargs + _VD_saves + _VD_locals + _VD_size = _VD_offs + 8 // 8 bytes for the parent frame pointer +) + +var ( + _VAR_ss = _VAR_ss_Vt + _VAR_df = jit.Ptr(_SP, _VD_fargs + _VD_saves) +) + +var ( + _VAR_ss_Vt = jit.Ptr(_SP, _VD_fargs + _VD_saves + 8) + _VAR_ss_Dv = jit.Ptr(_SP, _VD_fargs + _VD_saves + 16) + _VAR_ss_Iv = jit.Ptr(_SP, _VD_fargs + _VD_saves + 24) + _VAR_ss_Ep = jit.Ptr(_SP, _VD_fargs + _VD_saves + 32) + _VAR_ss_Db = jit.Ptr(_SP, _VD_fargs + _VD_saves + 40) + _VAR_ss_Dc = jit.Ptr(_SP, _VD_fargs + _VD_saves + 48) +) + +var ( + _VAR_cs_LR = jit.Ptr(_SP, _VD_fargs + _VD_saves + 56) + _VAR_cs_p = jit.Ptr(_SP, _VD_fargs + _VD_saves + 64) + _VAR_cs_n = jit.Ptr(_SP, _VD_fargs + _VD_saves + 72) + _VAR_cs_d = jit.Ptr(_SP, _VD_fargs + _VD_saves + 80) +) + +type _ValueDecoder struct { + jit.BaseAssembler +} + +func (self *_ValueDecoder) build() uintptr { + self.Init(self.compile) + return *(*uintptr)(self.Load("decode_value", _VD_size, _VD_args, argPtrs_generic, localPtrs_generic)) +} + +/** Function Calling Helpers **/ + +func (self *_ValueDecoder) save(r ...obj.Addr) { + for i, v := range r { + if i > _VD_saves / 8 - 1 { + panic("too many registers to save") + } else { + self.Emit("MOVQ", v, jit.Ptr(_SP, _VD_fargs + int64(i) * 8)) + } + } +} + +func (self *_ValueDecoder) load(r ...obj.Addr) { + for i, v := range r { + if i > _VD_saves / 8 - 1 { + panic("too many registers to load") + } else { + self.Emit("MOVQ", jit.Ptr(_SP, _VD_fargs + int64(i) * 8), v) + } + } +} + +func (self *_ValueDecoder) call(fn obj.Addr) { + self.Emit("MOVQ", fn, _AX) // MOVQ ${fn}, AX + self.Rjmp("CALL", _AX) // CALL AX +} + +func (self *_ValueDecoder) call_go(fn obj.Addr) { + self.save(_REG_go...) // SAVE $REG_go + self.call(fn) // CALL ${fn} + self.load(_REG_go...) // LOAD $REG_go +} + +/** Decoder Assembler **/ + +const ( + _S_val = iota + 1 + _S_arr + _S_arr_0 + _S_obj + _S_obj_0 + _S_obj_delim + _S_obj_sep +) + +const ( + _S_omask_key = (1 << _S_obj_0) | (1 << _S_obj_sep) + _S_omask_end = (1 << _S_obj_0) | (1 << _S_obj) + _S_vmask = (1 << _S_val) | (1 << _S_arr_0) +) + +const ( + _A_init_len = 1 + _A_init_cap = 16 +) + +const ( + _ST_Sp = 0 + _ST_Vt = _PtrBytes + _ST_Vp = _PtrBytes * (types.MAX_RECURSE + 1) +) + +var ( + _V_true = jit.Imm(int64(pbool(true))) + _V_false = jit.Imm(int64(pbool(false))) + _F_value = jit.Imm(int64(native.S_value)) +) + +var ( + _V_max = jit.Imm(int64(types.V_MAX)) + _E_eof = jit.Imm(int64(types.ERR_EOF)) + _E_invalid = jit.Imm(int64(types.ERR_INVALID_CHAR)) + _E_recurse = jit.Imm(int64(types.ERR_RECURSE_EXCEED_MAX)) +) + +var ( + _F_convTslice = jit.Func(convTslice) + _F_convTstring = jit.Func(convTstring) + _F_invalid_vtype = jit.Func(invalid_vtype) +) + +var ( + _T_map = jit.Type(reflect.TypeOf((map[string]interface{})(nil))) + _T_bool = jit.Type(reflect.TypeOf(false)) + _T_int64 = jit.Type(reflect.TypeOf(int64(0))) + _T_eface = jit.Type(reflect.TypeOf((*interface{})(nil)).Elem()) + _T_slice = jit.Type(reflect.TypeOf(([]interface{})(nil))) + _T_string = jit.Type(reflect.TypeOf("")) + _T_number = jit.Type(reflect.TypeOf(json.Number(""))) + _T_float64 = jit.Type(reflect.TypeOf(float64(0))) +) + +var _R_tab = map[int]string { + '[': "_decode_V_ARRAY", + '{': "_decode_V_OBJECT", + ':': "_decode_V_KEY_SEP", + ',': "_decode_V_ELEM_SEP", + ']': "_decode_V_ARRAY_END", + '}': "_decode_V_OBJECT_END", +} + +func (self *_ValueDecoder) compile() { + self.Emit("SUBQ", jit.Imm(_VD_size), _SP) // SUBQ $_VD_size, SP + self.Emit("MOVQ", _BP, jit.Ptr(_SP, _VD_offs)) // MOVQ BP, _VD_offs(SP) + self.Emit("LEAQ", jit.Ptr(_SP, _VD_offs), _BP) // LEAQ _VD_offs(SP), BP + + /* initialize the state machine */ + self.Emit("XORL", _CX, _CX) // XORL CX, CX + self.Emit("MOVQ", _DF, _VAR_df) // MOVQ DF, df + /* initialize digital buffer first */ + self.Emit("MOVQ", jit.Imm(_MaxDigitNums), _VAR_ss_Dc) // MOVQ $_MaxDigitNums, ss.Dcap + self.Emit("LEAQ", jit.Ptr(_ST, _DbufOffset), _AX) // LEAQ _DbufOffset(ST), AX + self.Emit("MOVQ", _AX, _VAR_ss_Db) // MOVQ AX, ss.Dbuf + /* add ST offset */ + self.Emit("ADDQ", jit.Imm(_FsmOffset), _ST) // ADDQ _FsmOffset, _ST + self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp + self.WriteRecNotAX(0, _VP, jit.Ptr(_ST, _ST_Vp), false) // MOVQ VP, ST.Vp[0] + self.Emit("MOVQ", jit.Imm(_S_val), jit.Ptr(_ST, _ST_Vt)) // MOVQ _S_val, ST.Vt[0] + self.Sjmp("JMP" , "_next") // JMP _next + + /* set the value from previous round */ + self.Link("_set_value") // _set_value: + self.Emit("MOVL" , jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX + self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ" , jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX + self.Sjmp("JNC" , "_vtype_error") // JNC _vtype_error + self.Emit("XORL" , _SI, _SI) // XORL SI, SI + self.Emit("SUBQ" , jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp + self.Emit("XCHGQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // XCHGQ ST.Vp[CX], SI + self.Emit("MOVQ" , _R8, jit.Ptr(_SI, 0)) // MOVQ R8, (SI) + self.WriteRecNotAX(1, _R9, jit.Ptr(_SI, 8), false) // MOVQ R9, 8(SI) + + /* check for value stack */ + self.Link("_next") // _next: + self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _AX) // MOVQ ST.Sp, AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , "_return") // JS _return + + /* fast path: test up to 4 characters manually */ + self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF + self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX + self.Emit("MOVQ" , jit.Imm(_BM_space), _DX) // MOVQ _BM_space, DX + self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' + self.Sjmp("JA" , "_decode_fast") // JA _decode_fast + self.Emit("BTQ" , _AX, _DX) // BTQ _AX, _DX + self.Sjmp("JNC" , "_decode_fast") // JNC _decode_fast + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + + /* at least 1 to 3 spaces */ + for i := 0; i < 3; i++ { + self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF + self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX + self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' + self.Sjmp("JA" , "_decode_fast") // JA _decode_fast + self.Emit("BTQ" , _AX, _DX) // BTQ _AX, _DX + self.Sjmp("JNC" , "_decode_fast") // JNC _decode_fast + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + } + + /* at least 4 spaces */ + self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF + self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX + + /* fast path: use lookup table to select decoder */ + self.Link("_decode_fast") // _decode_fast: + self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI + self.Sref("_decode_tab", 4) // .... &_decode_tab + self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, 0), _AX) // MOVLQSX (DI)(AX*4), AX + self.Emit("TESTQ" , _AX, _AX) // TESTQ AX, AX + self.Sjmp("JZ" , "_decode_native") // JZ _decode_native + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX + self.Rjmp("JMP" , _AX) // JMP AX + + /* decode with native decoder */ + self.Link("_decode_native") // _decode_native: + self.Emit("MOVQ", _IP, _DI) // MOVQ IP, DI + self.Emit("MOVQ", _IL, _SI) // MOVQ IL, SI + self.Emit("MOVQ", _IC, _DX) // MOVQ IC, DX + self.Emit("LEAQ", _VAR_ss, _CX) // LEAQ ss, CX + self.Emit("MOVQ", _VAR_df, _R8) // MOVQ $df, R8 + self.Emit("BTSQ", jit.Imm(_F_allow_control), _R8) // ANDQ $1<<_F_allow_control, R8 + self.call(_F_value) // CALL value + self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC + + /* check for errors */ + self.Emit("MOVQ" , _VAR_ss_Vt, _AX) // MOVQ ss.Vt, AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , "_parsing_error") + self.Sjmp("JZ" , "_invalid_vtype") // JZ _invalid_vtype + self.Emit("CMPQ" , _AX, _V_max) // CMPQ AX, _V_max + self.Sjmp("JA" , "_invalid_vtype") // JA _invalid_vtype + + /* jump table selector */ + self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI + self.Sref("_switch_table", 4) // .... &_switch_table + self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, -4), _AX) // MOVLQSX -4(DI)(AX*4), AX + self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX + self.Rjmp("JMP" , _AX) // JMP AX + + /** V_EOF **/ + self.Link("_decode_V_EOF") // _decode_V_EOF: + self.Emit("MOVL", _E_eof, _EP) // MOVL _E_eof, EP + self.Sjmp("JMP" , "_error") // JMP _error + + /** V_NULL **/ + self.Link("_decode_V_NULL") // _decode_V_NULL: + self.Emit("XORL", _R8, _R8) // XORL R8, R8 + self.Emit("XORL", _R9, _R9) // XORL R9, R9 + self.Emit("LEAQ", jit.Ptr(_IC, -4), _DI) // LEAQ -4(IC), DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /** V_TRUE **/ + self.Link("_decode_V_TRUE") // _decode_V_TRUE: + self.Emit("MOVQ", _T_bool, _R8) // MOVQ _T_bool, R8 + // TODO: maybe modified by users? + self.Emit("MOVQ", _V_true, _R9) // MOVQ _V_true, R9 + self.Emit("LEAQ", jit.Ptr(_IC, -4), _DI) // LEAQ -4(IC), DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /** V_FALSE **/ + self.Link("_decode_V_FALSE") // _decode_V_FALSE: + self.Emit("MOVQ", _T_bool, _R8) // MOVQ _T_bool, R8 + self.Emit("MOVQ", _V_false, _R9) // MOVQ _V_false, R9 + self.Emit("LEAQ", jit.Ptr(_IC, -5), _DI) // LEAQ -5(IC), DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /** V_ARRAY **/ + self.Link("_decode_V_ARRAY") // _decode_V_ARRAY + self.Emit("MOVL", jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX + self.Sjmp("JNC" , "_invalid_char") // JNC _invalid_char + + /* create a new array */ + self.Emit("MOVQ", _T_eface, _AX) // MOVQ _T_eface, AX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ", jit.Imm(_A_init_len), jit.Ptr(_SP, 8)) // MOVQ _A_init_len, 8(SP) + self.Emit("MOVQ", jit.Imm(_A_init_cap), jit.Ptr(_SP, 16)) // MOVQ _A_init_cap, 16(SP) + self.call_go(_F_makeslice) // CALL_GO runtime.makeslice + self.Emit("MOVQ", jit.Ptr(_SP, 24), _DX) // MOVQ 24(SP), DX + + /* pack into an interface */ + self.Emit("MOVQ", _DX, jit.Ptr(_SP, 0)) // MOVQ DX, (SP) + self.Emit("MOVQ", jit.Imm(_A_init_len), jit.Ptr(_SP, 8)) // MOVQ _A_init_len, 8(SP) + self.Emit("MOVQ", jit.Imm(_A_init_cap), jit.Ptr(_SP, 16)) // MOVQ _A_init_cap, 16(SP) + self.call_go(_F_convTslice) // CALL_GO runtime.convTslice + self.Emit("MOVQ", jit.Ptr(_SP, 24), _R8) // MOVQ 24(SP), R8 + + /* replace current state with an array */ + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI + self.Emit("MOVQ", jit.Imm(_S_arr), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_arr, ST.Vt[CX] + self.Emit("MOVQ", _T_slice, _AX) // MOVQ _T_slice, AX + self.Emit("MOVQ", _AX, jit.Ptr(_SI, 0)) // MOVQ AX, (SI) + self.WriteRecNotAX(2, _R8, jit.Ptr(_SI, 8), false) // MOVQ R8, 8(SI) + + /* add a new slot for the first element */ + self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX + self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} + self.Sjmp("JAE" , "_stack_overflow") // JA _stack_overflow + self.Emit("MOVQ", jit.Ptr(_R8, 0), _AX) // MOVQ (R8), AX + self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp + self.WritePtrAX(3, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ AX, ST.Vp[CX] + self.Emit("MOVQ", jit.Imm(_S_arr_0), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_arr_0, ST.Vt[CX] + self.Sjmp("JMP" , "_next") // JMP _next + + /** V_OBJECT **/ + self.Link("_decode_V_OBJECT") // _decode_V_OBJECT: + self.Emit("MOVL", jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX + self.Sjmp("JNC" , "_invalid_char") // JNC _invalid_char + self.call_go(_F_makemap_small) // CALL_GO runtime.makemap_small + self.Emit("MOVQ", jit.Ptr(_SP, 0), _AX) // MOVQ (SP), AX + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Imm(_S_obj_0), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_obj, ST.Vt[CX] + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI + self.Emit("MOVQ", _T_map, _DX) // MOVQ _T_map, DX + self.Emit("MOVQ", _DX, jit.Ptr(_SI, 0)) // MOVQ DX, (SI) + self.WritePtrAX(4, jit.Ptr(_SI, 8), false) // MOVQ AX, 8(SI) + self.Sjmp("JMP" , "_next") // JMP _next + + /** V_STRING **/ + self.Link("_decode_V_STRING") // _decode_V_STRING: + self.Emit("MOVQ", _VAR_ss_Iv, _CX) // MOVQ ss.Iv, CX + self.Emit("MOVQ", _IC, _AX) // MOVQ IC, AX + self.Emit("SUBQ", _CX, _AX) // SUBQ CX, AX + + /* check for escapes */ + self.Emit("CMPQ", _VAR_ss_Ep, jit.Imm(-1)) // CMPQ ss.Ep, $-1 + self.Sjmp("JNE" , "_unquote") // JNE _unquote + self.Emit("SUBQ", jit.Imm(1), _AX) // SUBQ $1, AX + self.Emit("LEAQ", jit.Sib(_IP, _CX, 1, 0), _R8) // LEAQ (IP)(CX), R8 + self.Byte(0x48, 0x8d, 0x3d) // LEAQ (PC), DI + self.Sref("_copy_string_end", 4) + self.Emit("BTQ", jit.Imm(_F_copy_string), _VAR_df) + self.Sjmp("JC", "copy_string") + self.Link("_copy_string_end") + self.Emit("XORL", _DX, _DX) // XORL DX, DX + /* strings with no escape sequences */ + self.Link("_noescape") // _noescape: + self.Emit("MOVL", jit.Imm(_S_omask_key), _DI) // MOVL _S_omask, DI + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _SI) // MOVQ ST.Vt[CX], SI + self.Emit("BTQ" , _SI, _DI) // BTQ SI, DI + self.Sjmp("JC" , "_object_key") // JC _object_key + + /* check for pre-packed strings, avoid 1 allocation */ + self.Emit("TESTQ", _DX, _DX) // TESTQ DX, DX + self.Sjmp("JNZ" , "_packed_str") // JNZ _packed_str + self.Emit("MOVQ" , _R8, jit.Ptr(_SP, 0)) // MOVQ R8, (SP) + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) + self.call_go(_F_convTstring) // CALL_GO runtime.convTstring + self.Emit("MOVQ" , jit.Ptr(_SP, 16), _R9) // MOVQ 16(SP), R9 + + /* packed string already in R9 */ + self.Link("_packed_str") // _packed_str: + self.Emit("MOVQ", _T_string, _R8) // MOVQ _T_string, R8 + self.Emit("MOVQ", _VAR_ss_Iv, _DI) // MOVQ ss.Iv, DI + self.Emit("SUBQ", jit.Imm(1), _DI) // SUBQ $1, DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /* the string is an object key, get the map */ + self.Link("_object_key") + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI + self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI + + /* add a new delimiter */ + self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX + self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} + self.Sjmp("JAE" , "_stack_overflow") // JA _stack_overflow + self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp + self.Emit("MOVQ", jit.Imm(_S_obj_delim), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_obj_delim, ST.Vt[CX] + + /* add a new slot int the map */ + self.Emit("MOVQ", _T_map, _DX) // MOVQ _T_map, DX + self.Emit("MOVQ", _DX, jit.Ptr(_SP, 0)) // MOVQ DX, (SP) + self.Emit("MOVQ", _SI, jit.Ptr(_SP, 8)) // MOVQ SI, 8(SP) + self.Emit("MOVQ", _R8, jit.Ptr(_SP, 16)) // MOVQ R9, 16(SP) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 24)) // MOVQ AX, 24(SP) + self.call_go(_F_mapassign_faststr) // CALL_GO runtime.mapassign_faststr + self.Emit("MOVQ", jit.Ptr(_SP, 32), _AX) // MOVQ 32(SP), AX + + /* add to the pointer stack */ + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.WritePtrAX(6, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ AX, ST.Vp[CX] + self.Sjmp("JMP" , "_next") // JMP _next + + /* allocate memory to store the string header and unquoted result */ + self.Link("_unquote") // _unquote: + self.Emit("ADDQ", jit.Imm(15), _AX) // ADDQ $15, AX + self.Emit("MOVQ", _T_byte, _CX) // MOVQ _T_byte, CX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ", _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) + self.Emit("MOVB", jit.Imm(0), jit.Ptr(_SP, 16)) // MOVB $0, 16(SP) + self.call_go(_F_mallocgc) // CALL_GO runtime.mallocgc + self.Emit("MOVQ", jit.Ptr(_SP, 24), _R9) // MOVQ 24(SP), R9 + + /* prepare the unquoting parameters */ + self.Emit("MOVQ" , _VAR_ss_Iv, _CX) // MOVQ ss.Iv, CX + self.Emit("LEAQ" , jit.Sib(_IP, _CX, 1, 0), _DI) // LEAQ (IP)(CX), DI + self.Emit("NEGQ" , _CX) // NEGQ CX + self.Emit("LEAQ" , jit.Sib(_IC, _CX, 1, -1), _SI) // LEAQ -1(IC)(CX), SI + self.Emit("LEAQ" , jit.Ptr(_R9, 16), _DX) // LEAQ 16(R8), DX + self.Emit("LEAQ" , _VAR_ss_Ep, _CX) // LEAQ ss.Ep, CX + self.Emit("XORL" , _R8, _R8) // XORL R8, R8 + self.Emit("BTQ" , jit.Imm(_F_disable_urc), _VAR_df) // BTQ ${_F_disable_urc}, fv + self.Emit("SETCC", _R8) // SETCC R8 + self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _R8) // SHLQ ${types.B_UNICODE_REPLACE}, R8 + + /* unquote the string, with R9 been preserved */ + self.save(_R9) // SAVE R9 + self.call(_F_unquote) // CALL unquote + self.load(_R9) // LOAD R9 + + /* check for errors */ + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , "_unquote_error") // JS _unquote_error + self.Emit("MOVL" , jit.Imm(1), _DX) // MOVL $1, DX + self.Emit("LEAQ" , jit.Ptr(_R9, 16), _R8) // ADDQ $16, R8 + self.Emit("MOVQ" , _R8, jit.Ptr(_R9, 0)) // MOVQ R8, (R9) + self.Emit("MOVQ" , _AX, jit.Ptr(_R9, 8)) // MOVQ AX, 8(R9) + self.Sjmp("JMP" , "_noescape") // JMP _noescape + + /** V_DOUBLE **/ + self.Link("_decode_V_DOUBLE") // _decode_V_DOUBLE: + self.Emit("BTQ" , jit.Imm(_F_use_number), _VAR_df) // BTQ _F_use_number, df + self.Sjmp("JC" , "_use_number") // JC _use_number + self.Emit("MOVSD", _VAR_ss_Dv, _X0) // MOVSD ss.Dv, X0 + self.Sjmp("JMP" , "_use_float64") // JMP _use_float64 + + /** V_INTEGER **/ + self.Link("_decode_V_INTEGER") // _decode_V_INTEGER: + self.Emit("BTQ" , jit.Imm(_F_use_number), _VAR_df) // BTQ _F_use_number, df + self.Sjmp("JC" , "_use_number") // JC _use_number + self.Emit("BTQ" , jit.Imm(_F_use_int64), _VAR_df) // BTQ _F_use_int64, df + self.Sjmp("JC" , "_use_int64") // JC _use_int64 + self.Emit("MOVQ" , _VAR_ss_Iv, _AX) // MOVQ ss.Iv, AX + self.Emit("CVTSQ2SD", _AX, _X0) // CVTSQ2SD AX, X0 + + /* represent numbers as `float64` */ + self.Link("_use_float64") // _use_float64: + self.Emit("MOVSD", _X0, jit.Ptr(_SP, 0)) // MOVSD X0, (SP) + self.call_go(_F_convT64) // CALL_GO runtime.convT64 + self.Emit("MOVQ" , _T_float64, _R8) // MOVQ _T_float64, R8 + self.Emit("MOVQ" , jit.Ptr(_SP, 8), _R9) // MOVQ 8(SP), R9 + self.Emit("MOVQ" , _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /* represent numbers as `json.Number` */ + self.Link("_use_number") // _use_number + self.Emit("MOVQ", _VAR_ss_Ep, _AX) // MOVQ ss.Ep, AX + self.Emit("LEAQ", jit.Sib(_IP, _AX, 1, 0), _SI) // LEAQ (IP)(AX), SI + self.Emit("MOVQ", _IC, _CX) // MOVQ IC, CX + self.Emit("SUBQ", _AX, _CX) // SUBQ AX, CX + self.Emit("MOVQ", _SI, jit.Ptr(_SP, 0)) // MOVQ SI, (SP) + self.Emit("MOVQ", _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) + self.call_go(_F_convTstring) // CALL_GO runtime.convTstring + self.Emit("MOVQ", _T_number, _R8) // MOVQ _T_number, R8 + self.Emit("MOVQ", jit.Ptr(_SP, 16), _R9) // MOVQ 16(SP), R9 + self.Emit("MOVQ", _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /* represent numbers as `int64` */ + self.Link("_use_int64") // _use_int64: + self.Emit("MOVQ", _VAR_ss_Iv, _AX) // MOVQ ss.Iv, AX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.call_go(_F_convT64) // CALL_GO runtime.convT64 + self.Emit("MOVQ", _T_int64, _R8) // MOVQ _T_int64, R8 + self.Emit("MOVQ", jit.Ptr(_SP, 8), _R9) // MOVQ 8(SP), R9 + self.Emit("MOVQ", _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /** V_KEY_SEP **/ + self.Link("_decode_V_KEY_SEP") // _decode_V_KEY_SEP: + // self.Byte(0xcc) + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("CMPQ", _AX, jit.Imm(_S_obj_delim)) // CMPQ AX, _S_obj_delim + self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char + self.Emit("MOVQ", jit.Imm(_S_val), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_val, ST.Vt[CX] + self.Emit("MOVQ", jit.Imm(_S_obj), jit.Sib(_ST, _CX, 8, _ST_Vt - 8)) // MOVQ _S_obj, ST.Vt[CX - 1] + self.Sjmp("JMP" , "_next") // JMP _next + + /** V_ELEM_SEP **/ + self.Link("_decode_V_ELEM_SEP") // _decode_V_ELEM_SEP: + self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ" , jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("CMPQ" , _AX, jit.Imm(_S_arr)) // CMPQ _AX, _S_arr + self.Sjmp("JE" , "_array_sep") // JZ _next + self.Emit("CMPQ" , _AX, jit.Imm(_S_obj)) // CMPQ _AX, _S_arr + self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char + self.Emit("MOVQ" , jit.Imm(_S_obj_sep), jit.Sib(_ST, _CX, 8, _ST_Vt)) + self.Sjmp("JMP" , "_next") // JMP _next + + /* arrays */ + self.Link("_array_sep") + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI + self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI + self.Emit("MOVQ", jit.Ptr(_SI, 8), _DX) // MOVQ 8(SI), DX + self.Emit("CMPQ", _DX, jit.Ptr(_SI, 16)) // CMPQ DX, 16(SI) + self.Sjmp("JAE" , "_array_more") // JAE _array_more + + /* add a slot for the new element */ + self.Link("_array_append") // _array_append: + self.Emit("ADDQ", jit.Imm(1), jit.Ptr(_SI, 8)) // ADDQ $1, 8(SI) + self.Emit("MOVQ", jit.Ptr(_SI, 0), _SI) // MOVQ (SI), SI + self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX + self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} + self.Sjmp("JAE" , "_stack_overflow") + self.Emit("SHLQ", jit.Imm(1), _DX) // SHLQ $1, DX + self.Emit("LEAQ", jit.Sib(_SI, _DX, 8, 0), _SI) // LEAQ (SI)(DX*8), SI + self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp + self.WriteRecNotAX(7 , _SI, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ SI, ST.Vp[CX] + self.Emit("MOVQ", jit.Imm(_S_val), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_val, ST.Vt[CX} + self.Sjmp("JMP" , "_next") // JMP _next + + /** V_ARRAY_END **/ + self.Link("_decode_V_ARRAY_END") // _decode_V_ARRAY_END: + self.Emit("XORL", _DX, _DX) // XORL DX, DX + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("CMPQ", _AX, jit.Imm(_S_arr_0)) // CMPQ AX, _S_arr_0 + self.Sjmp("JE" , "_first_item") // JE _first_item + self.Emit("CMPQ", _AX, jit.Imm(_S_arr)) // CMPQ AX, _S_arr + self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char + self.Emit("SUBQ", jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp + self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ DX, ST.Vp[CX] + self.Sjmp("JMP" , "_next") // JMP _next + + /* first element of an array */ + self.Link("_first_item") // _first_item: + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("SUBQ", jit.Imm(2), jit.Ptr(_ST, _ST_Sp)) // SUBQ $2, ST.Sp + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp - 8), _SI) // MOVQ ST.Vp[CX - 1], SI + self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI + self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp - 8)) // MOVQ DX, ST.Vp[CX - 1] + self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ DX, ST.Vp[CX] + self.Emit("MOVQ", _DX, jit.Ptr(_SI, 8)) // MOVQ DX, 8(SI) + self.Sjmp("JMP" , "_next") // JMP _next + + /** V_OBJECT_END **/ + self.Link("_decode_V_OBJECT_END") // _decode_V_OBJECT_END: + self.Emit("MOVL", jit.Imm(_S_omask_end), _DX) // MOVL _S_omask, DI + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("BTQ" , _AX, _DX) + self.Sjmp("JNC" , "_invalid_char") // JNE _invalid_char + self.Emit("XORL", _AX, _AX) // XORL AX, AX + self.Emit("SUBQ", jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp + self.Emit("MOVQ", _AX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ AX, ST.Vp[CX] + self.Sjmp("JMP" , "_next") // JMP _next + + /* return from decoder */ + self.Link("_return") // _return: + self.Emit("XORL", _EP, _EP) // XORL EP, EP + self.Emit("MOVQ", _EP, jit.Ptr(_ST, _ST_Vp)) // MOVQ EP, ST.Vp[0] + self.Link("_epilogue") // _epilogue: + self.Emit("SUBQ", jit.Imm(_FsmOffset), _ST) // SUBQ _FsmOffset, _ST + self.Emit("MOVQ", jit.Ptr(_SP, _VD_offs), _BP) // MOVQ _VD_offs(SP), BP + self.Emit("ADDQ", jit.Imm(_VD_size), _SP) // ADDQ $_VD_size, SP + self.Emit("RET") // RET + + /* array expand */ + self.Link("_array_more") // _array_more: + self.Emit("MOVQ" , _T_eface, _AX) // MOVQ _T_eface, AX + self.Emit("MOVOU", jit.Ptr(_SI, 0), _X0) // MOVOU (SI), X0 + self.Emit("MOVQ" , jit.Ptr(_SI, 16), _DX) // MOVQ 16(SI), DX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVOU", _X0, jit.Ptr(_SP, 8)) // MOVOU X0, 8(SP) + self.Emit("MOVQ" , _DX, jit.Ptr(_SP, 24)) // MOVQ DX, 24(SP) + self.Emit("SHLQ" , jit.Imm(1), _DX) // SHLQ $1, DX + self.Emit("MOVQ" , _DX, jit.Ptr(_SP, 32)) // MOVQ DX, 32(SP) + self.call_go(_F_growslice) // CALL_GO runtime.growslice + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _DI) // MOVOU 40(SP), DI + self.Emit("MOVQ" , jit.Ptr(_SP, 48), _DX) // MOVOU 48(SP), DX + self.Emit("MOVQ" , jit.Ptr(_SP, 56), _AX) // MOVQ 56(SP), AX + + /* update the slice */ + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI + self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI + self.Emit("MOVQ", _DX, jit.Ptr(_SI, 8)) // MOVQ DX, 8(SI) + self.Emit("MOVQ", _AX, jit.Ptr(_SI, 16)) // MOVQ AX, 16(AX) + self.WriteRecNotAX(8 , _DI, jit.Ptr(_SI, 0), false) // MOVQ R10, (SI) + self.Sjmp("JMP" , "_array_append") // JMP _array_append + + /* copy string */ + self.Link("copy_string") // pointer: R8, length: AX, return addr: DI + // self.Byte(0xcc) + self.Emit("MOVQ", _R8, _VAR_cs_p) + self.Emit("MOVQ", _AX, _VAR_cs_n) + self.Emit("MOVQ", _DI, _VAR_cs_LR) + self.Emit("MOVQ", _T_byte, jit.Ptr(_SP, 0)) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 8)) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) + self.call_go(_F_makeslice) + self.Emit("MOVQ", jit.Ptr(_SP, 24), _R8) + self.Emit("MOVQ", _R8, _VAR_cs_d) + self.Emit("MOVQ", _R8, jit.Ptr(_SP, 0)) + self.Emit("MOVQ", _VAR_cs_p, _R8) + self.Emit("MOVQ", _R8, jit.Ptr(_SP, 8)) + self.Emit("MOVQ", _VAR_cs_n, _AX) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) + self.call_go(_F_memmove) + self.Emit("MOVQ", _VAR_cs_d, _R8) + self.Emit("MOVQ", _VAR_cs_n, _AX) + self.Emit("MOVQ", _VAR_cs_LR, _DI) + // self.Byte(0xcc) + self.Rjmp("JMP", _DI) + + /* error handlers */ + self.Link("_stack_overflow") + self.Emit("MOVL" , _E_recurse, _EP) // MOVQ _E_recurse, EP + self.Sjmp("JMP" , "_error") // JMP _error + self.Link("_vtype_error") // _vtype_error: + self.Emit("MOVQ" , _DI, _IC) // MOVQ DI, IC + self.Emit("MOVL" , _E_invalid, _EP) // MOVL _E_invalid, EP + self.Sjmp("JMP" , "_error") // JMP _error + self.Link("_invalid_char") // _invalid_char: + self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC + self.Emit("MOVL" , _E_invalid, _EP) // MOVL _E_invalid, EP + self.Sjmp("JMP" , "_error") // JMP _error + self.Link("_unquote_error") // _unquote_error: + self.Emit("MOVQ" , _VAR_ss_Iv, _IC) // MOVQ ss.Iv, IC + self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC + self.Link("_parsing_error") // _parsing_error: + self.Emit("NEGQ" , _AX) // NEGQ AX + self.Emit("MOVQ" , _AX, _EP) // MOVQ AX, EP + self.Link("_error") // _error: + self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) + self.Sjmp("JMP" , "_epilogue") // JMP _epilogue + + /* invalid value type, never returns */ + self.Link("_invalid_vtype") + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.call(_F_invalid_vtype) // CALL invalid_type + self.Emit("UD2") // UD2 + + /* switch jump table */ + self.Link("_switch_table") // _switch_table: + self.Sref("_decode_V_EOF", 0) // SREF &_decode_V_EOF, $0 + self.Sref("_decode_V_NULL", -4) // SREF &_decode_V_NULL, $-4 + self.Sref("_decode_V_TRUE", -8) // SREF &_decode_V_TRUE, $-8 + self.Sref("_decode_V_FALSE", -12) // SREF &_decode_V_FALSE, $-12 + self.Sref("_decode_V_ARRAY", -16) // SREF &_decode_V_ARRAY, $-16 + self.Sref("_decode_V_OBJECT", -20) // SREF &_decode_V_OBJECT, $-20 + self.Sref("_decode_V_STRING", -24) // SREF &_decode_V_STRING, $-24 + self.Sref("_decode_V_DOUBLE", -28) // SREF &_decode_V_DOUBLE, $-28 + self.Sref("_decode_V_INTEGER", -32) // SREF &_decode_V_INTEGER, $-32 + self.Sref("_decode_V_KEY_SEP", -36) // SREF &_decode_V_KEY_SEP, $-36 + self.Sref("_decode_V_ELEM_SEP", -40) // SREF &_decode_V_ELEM_SEP, $-40 + self.Sref("_decode_V_ARRAY_END", -44) // SREF &_decode_V_ARRAY_END, $-44 + self.Sref("_decode_V_OBJECT_END", -48) // SREF &_decode_V_OBJECT_END, $-48 + + /* fast character lookup table */ + self.Link("_decode_tab") // _decode_tab: + self.Sref("_decode_V_EOF", 0) // SREF &_decode_V_EOF, $0 + + /* generate rest of the tabs */ + for i := 1; i < 256; i++ { + if to, ok := _R_tab[i]; ok { + self.Sref(to, -int64(i) * 4) + } else { + self.Byte(0x00, 0x00, 0x00, 0x00) + } + } +} + +func (self *_ValueDecoder) WritePtrAX(i int, rec obj.Addr, saveDI bool) { + self.Emit("MOVQ", _V_writeBarrier, _R10) + self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R10) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", _AX, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + +func (self *_ValueDecoder) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _R10) + self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, _AX) + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R10) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + +/** Generic Decoder **/ + +var ( + _subr_decode_value = new(_ValueDecoder).build() +) + +//go:nosplit +func invalid_vtype(vt types.ValueType) { + throw(fmt.Sprintf("invalid value type: %d", vt)) +} diff --git a/vendor/github.com/bytedance/sonic/decoder/generic_amd64_go117.go b/vendor/github.com/bytedance/sonic/decoder/generic_amd64_go117.go new file mode 100644 index 0000000000..df1cd9f5bb --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/generic_amd64_go117.go @@ -0,0 +1,772 @@ +//go:build go1.17 && !go1.21 +// +build go1.17,!go1.21 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `encoding/json` + `fmt` + `reflect` + `strconv` + + `github.com/bytedance/sonic/internal/jit` + `github.com/bytedance/sonic/internal/native` + `github.com/bytedance/sonic/internal/native/types` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` +) + +/** Crucial Registers: + * + * ST(R13) && 0(SP) : ro, decoder stack + * DF(AX) : ro, decoder flags + * EP(BX) : wo, error pointer + * IP(R10) : ro, input pointer + * IL(R12) : ro, input length + * IC(R11) : rw, input cursor + * VP(R15) : ro, value pointer (to an interface{}) + */ + +const ( + _VD_args = 8 // 8 bytes for passing arguments to this functions + _VD_fargs = 64 // 64 bytes for passing arguments to other Go functions + _VD_saves = 48 // 48 bytes for saving the registers before CALL instructions + _VD_locals = 96 // 96 bytes for local variables +) + +const ( + _VD_offs = _VD_fargs + _VD_saves + _VD_locals + _VD_size = _VD_offs + 8 // 8 bytes for the parent frame pointer +) + +var ( + _VAR_ss = _VAR_ss_Vt + _VAR_df = jit.Ptr(_SP, _VD_fargs + _VD_saves) +) + +var ( + _VAR_ss_Vt = jit.Ptr(_SP, _VD_fargs + _VD_saves + 8) + _VAR_ss_Dv = jit.Ptr(_SP, _VD_fargs + _VD_saves + 16) + _VAR_ss_Iv = jit.Ptr(_SP, _VD_fargs + _VD_saves + 24) + _VAR_ss_Ep = jit.Ptr(_SP, _VD_fargs + _VD_saves + 32) + _VAR_ss_Db = jit.Ptr(_SP, _VD_fargs + _VD_saves + 40) + _VAR_ss_Dc = jit.Ptr(_SP, _VD_fargs + _VD_saves + 48) +) + +var ( + _VAR_R9 = jit.Ptr(_SP, _VD_fargs + _VD_saves + 56) +) +type _ValueDecoder struct { + jit.BaseAssembler +} + +var ( + _VAR_cs_LR = jit.Ptr(_SP, _VD_fargs + _VD_saves + 64) + _VAR_cs_p = jit.Ptr(_SP, _VD_fargs + _VD_saves + 72) + _VAR_cs_n = jit.Ptr(_SP, _VD_fargs + _VD_saves + 80) + _VAR_cs_d = jit.Ptr(_SP, _VD_fargs + _VD_saves + 88) +) + +func (self *_ValueDecoder) build() uintptr { + self.Init(self.compile) + return *(*uintptr)(self.Load("decode_value", _VD_size, _VD_args, argPtrs_generic, localPtrs_generic)) +} + +/** Function Calling Helpers **/ + +func (self *_ValueDecoder) save(r ...obj.Addr) { + for i, v := range r { + if i > _VD_saves / 8 - 1 { + panic("too many registers to save") + } else { + self.Emit("MOVQ", v, jit.Ptr(_SP, _VD_fargs + int64(i) * 8)) + } + } +} + +func (self *_ValueDecoder) load(r ...obj.Addr) { + for i, v := range r { + if i > _VD_saves / 8 - 1 { + panic("too many registers to load") + } else { + self.Emit("MOVQ", jit.Ptr(_SP, _VD_fargs + int64(i) * 8), v) + } + } +} + +func (self *_ValueDecoder) call(fn obj.Addr) { + self.Emit("MOVQ", fn, _R9) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R9) // CALL AX +} + +func (self *_ValueDecoder) call_go(fn obj.Addr) { + self.save(_REG_go...) // SAVE $REG_go + self.call(fn) // CALL ${fn} + self.load(_REG_go...) // LOAD $REG_go +} + +func (self *_ValueDecoder) callc(fn obj.Addr) { + self.Emit("XCHGQ", _IP, _BP) + self.call(fn) + self.Emit("XCHGQ", _IP, _BP) +} + +func (self *_ValueDecoder) call_c(fn obj.Addr) { + self.Emit("XCHGQ", _IC, _BX) + self.callc(fn) + self.Emit("XCHGQ", _IC, _BX) +} + +/** Decoder Assembler **/ + +const ( + _S_val = iota + 1 + _S_arr + _S_arr_0 + _S_obj + _S_obj_0 + _S_obj_delim + _S_obj_sep +) + +const ( + _S_omask_key = (1 << _S_obj_0) | (1 << _S_obj_sep) + _S_omask_end = (1 << _S_obj_0) | (1 << _S_obj) + _S_vmask = (1 << _S_val) | (1 << _S_arr_0) +) + +const ( + _A_init_len = 1 + _A_init_cap = 16 +) + +const ( + _ST_Sp = 0 + _ST_Vt = _PtrBytes + _ST_Vp = _PtrBytes * (types.MAX_RECURSE + 1) +) + +var ( + _V_true = jit.Imm(int64(pbool(true))) + _V_false = jit.Imm(int64(pbool(false))) + _F_value = jit.Imm(int64(native.S_value)) +) + +var ( + _V_max = jit.Imm(int64(types.V_MAX)) + _E_eof = jit.Imm(int64(types.ERR_EOF)) + _E_invalid = jit.Imm(int64(types.ERR_INVALID_CHAR)) + _E_recurse = jit.Imm(int64(types.ERR_RECURSE_EXCEED_MAX)) +) + +var ( + _F_convTslice = jit.Func(convTslice) + _F_convTstring = jit.Func(convTstring) + _F_invalid_vtype = jit.Func(invalid_vtype) +) + +var ( + _T_map = jit.Type(reflect.TypeOf((map[string]interface{})(nil))) + _T_bool = jit.Type(reflect.TypeOf(false)) + _T_int64 = jit.Type(reflect.TypeOf(int64(0))) + _T_eface = jit.Type(reflect.TypeOf((*interface{})(nil)).Elem()) + _T_slice = jit.Type(reflect.TypeOf(([]interface{})(nil))) + _T_string = jit.Type(reflect.TypeOf("")) + _T_number = jit.Type(reflect.TypeOf(json.Number(""))) + _T_float64 = jit.Type(reflect.TypeOf(float64(0))) +) + +var _R_tab = map[int]string { + '[': "_decode_V_ARRAY", + '{': "_decode_V_OBJECT", + ':': "_decode_V_KEY_SEP", + ',': "_decode_V_ELEM_SEP", + ']': "_decode_V_ARRAY_END", + '}': "_decode_V_OBJECT_END", +} + +func (self *_ValueDecoder) compile() { + self.Emit("SUBQ", jit.Imm(_VD_size), _SP) // SUBQ $_VD_size, SP + self.Emit("MOVQ", _BP, jit.Ptr(_SP, _VD_offs)) // MOVQ BP, _VD_offs(SP) + self.Emit("LEAQ", jit.Ptr(_SP, _VD_offs), _BP) // LEAQ _VD_offs(SP), BP + + /* initialize the state machine */ + self.Emit("XORL", _CX, _CX) // XORL CX, CX + self.Emit("MOVQ", _DF, _VAR_df) // MOVQ DF, df + /* initialize digital buffer first */ + self.Emit("MOVQ", jit.Imm(_MaxDigitNums), _VAR_ss_Dc) // MOVQ $_MaxDigitNums, ss.Dcap + self.Emit("LEAQ", jit.Ptr(_ST, _DbufOffset), _AX) // LEAQ _DbufOffset(ST), AX + self.Emit("MOVQ", _AX, _VAR_ss_Db) // MOVQ AX, ss.Dbuf + /* add ST offset */ + self.Emit("ADDQ", jit.Imm(_FsmOffset), _ST) // ADDQ _FsmOffset, _ST + self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp + self.WriteRecNotAX(0, _VP, jit.Ptr(_ST, _ST_Vp), false) // MOVQ VP, ST.Vp[0] + self.Emit("MOVQ", jit.Imm(_S_val), jit.Ptr(_ST, _ST_Vt)) // MOVQ _S_val, ST.Vt[0] + self.Sjmp("JMP" , "_next") // JMP _next + + /* set the value from previous round */ + self.Link("_set_value") // _set_value: + self.Emit("MOVL" , jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX + self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ" , jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX + self.Sjmp("JNC" , "_vtype_error") // JNC _vtype_error + self.Emit("XORL" , _SI, _SI) // XORL SI, SI + self.Emit("SUBQ" , jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp + self.Emit("XCHGQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // XCHGQ ST.Vp[CX], SI + self.Emit("MOVQ" , _R8, jit.Ptr(_SI, 0)) // MOVQ R8, (SI) + self.WriteRecNotAX(1, _R9, jit.Ptr(_SI, 8), false) // MOVQ R9, 8(SI) + + /* check for value stack */ + self.Link("_next") // _next: + self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _AX) // MOVQ ST.Sp, AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , "_return") // JS _return + + /* fast path: test up to 4 characters manually */ + self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF + self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX + self.Emit("MOVQ" , jit.Imm(_BM_space), _DX) // MOVQ _BM_space, DX + self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' + self.Sjmp("JA" , "_decode_fast") // JA _decode_fast + self.Emit("BTQ" , _AX, _DX) // BTQ _AX, _DX + self.Sjmp("JNC" , "_decode_fast") // JNC _decode_fast + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + + /* at least 1 to 3 spaces */ + for i := 0; i < 3; i++ { + self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF + self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX + self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' + self.Sjmp("JA" , "_decode_fast") // JA _decode_fast + self.Emit("BTQ" , _AX, _DX) // BTQ _AX, _DX + self.Sjmp("JNC" , "_decode_fast") // JNC _decode_fast + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + } + + /* at least 4 spaces */ + self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL + self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF + self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX + + /* fast path: use lookup table to select decoder */ + self.Link("_decode_fast") // _decode_fast: + self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI + self.Sref("_decode_tab", 4) // .... &_decode_tab + self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, 0), _AX) // MOVLQSX (DI)(AX*4), AX + self.Emit("TESTQ" , _AX, _AX) // TESTQ AX, AX + self.Sjmp("JZ" , "_decode_native") // JZ _decode_native + self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC + self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX + self.Rjmp("JMP" , _AX) // JMP AX + + /* decode with native decoder */ + self.Link("_decode_native") // _decode_native: + self.Emit("MOVQ", _IP, _DI) // MOVQ IP, DI + self.Emit("MOVQ", _IL, _SI) // MOVQ IL, SI + self.Emit("MOVQ", _IC, _DX) // MOVQ IC, DX + self.Emit("LEAQ", _VAR_ss, _CX) // LEAQ ss, CX + self.Emit("MOVQ", _VAR_df, _R8) // MOVQ $df, R8 + self.Emit("BTSQ", jit.Imm(_F_allow_control), _R8) // ANDQ $1<<_F_allow_control, R8 + self.callc(_F_value) // CALL value + self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC + + /* check for errors */ + self.Emit("MOVQ" , _VAR_ss_Vt, _AX) // MOVQ ss.Vt, AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , "_parsing_error") + self.Sjmp("JZ" , "_invalid_vtype") // JZ _invalid_vtype + self.Emit("CMPQ" , _AX, _V_max) // CMPQ AX, _V_max + self.Sjmp("JA" , "_invalid_vtype") // JA _invalid_vtype + + /* jump table selector */ + self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI + self.Sref("_switch_table", 4) // .... &_switch_table + self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, -4), _AX) // MOVLQSX -4(DI)(AX*4), AX + self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX + self.Rjmp("JMP" , _AX) // JMP AX + + /** V_EOF **/ + self.Link("_decode_V_EOF") // _decode_V_EOF: + self.Emit("MOVL", _E_eof, _EP) // MOVL _E_eof, EP + self.Sjmp("JMP" , "_error") // JMP _error + + /** V_NULL **/ + self.Link("_decode_V_NULL") // _decode_V_NULL: + self.Emit("XORL", _R8, _R8) // XORL R8, R8 + self.Emit("XORL", _R9, _R9) // XORL R9, R9 + self.Emit("LEAQ", jit.Ptr(_IC, -4), _DI) // LEAQ -4(IC), DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /** V_TRUE **/ + self.Link("_decode_V_TRUE") // _decode_V_TRUE: + self.Emit("MOVQ", _T_bool, _R8) // MOVQ _T_bool, R8 + // TODO: maybe modified by users? + self.Emit("MOVQ", _V_true, _R9) // MOVQ _V_true, R9 + self.Emit("LEAQ", jit.Ptr(_IC, -4), _DI) // LEAQ -4(IC), DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /** V_FALSE **/ + self.Link("_decode_V_FALSE") // _decode_V_FALSE: + self.Emit("MOVQ", _T_bool, _R8) // MOVQ _T_bool, R8 + self.Emit("MOVQ", _V_false, _R9) // MOVQ _V_false, R9 + self.Emit("LEAQ", jit.Ptr(_IC, -5), _DI) // LEAQ -5(IC), DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /** V_ARRAY **/ + self.Link("_decode_V_ARRAY") // _decode_V_ARRAY + self.Emit("MOVL", jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX + self.Sjmp("JNC" , "_invalid_char") // JNC _invalid_char + + /* create a new array */ + self.Emit("MOVQ", _T_eface, _AX) // MOVQ _T_eface, AX + self.Emit("MOVQ", jit.Imm(_A_init_len), _BX) // MOVQ _A_init_len, BX + self.Emit("MOVQ", jit.Imm(_A_init_cap), _CX) // MOVQ _A_init_cap, CX + self.call_go(_F_makeslice) // CALL_GO runtime.makeslice + + /* pack into an interface */ + self.Emit("MOVQ", jit.Imm(_A_init_len), _BX) // MOVQ _A_init_len, BX + self.Emit("MOVQ", jit.Imm(_A_init_cap), _CX) // MOVQ _A_init_cap, CX + self.call_go(_F_convTslice) // CALL_GO runtime.convTslice + self.Emit("MOVQ", _AX, _R8) // MOVQ AX, R8 + + /* replace current state with an array */ + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI + self.Emit("MOVQ", jit.Imm(_S_arr), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_arr, ST.Vt[CX] + self.Emit("MOVQ", _T_slice, _AX) // MOVQ _T_slice, AX + self.Emit("MOVQ", _AX, jit.Ptr(_SI, 0)) // MOVQ AX, (SI) + self.WriteRecNotAX(2, _R8, jit.Ptr(_SI, 8), false) // MOVQ R8, 8(SI) + + /* add a new slot for the first element */ + self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX + self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} + self.Sjmp("JAE" , "_stack_overflow") // JA _stack_overflow + self.Emit("MOVQ", jit.Ptr(_R8, 0), _AX) // MOVQ (R8), AX + self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp + self.WritePtrAX(3, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ AX, ST.Vp[CX] + self.Emit("MOVQ", jit.Imm(_S_arr_0), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_arr_0, ST.Vt[CX] + self.Sjmp("JMP" , "_next") // JMP _next + + /** V_OBJECT **/ + self.Link("_decode_V_OBJECT") // _decode_V_OBJECT: + self.Emit("MOVL", jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX + self.Sjmp("JNC" , "_invalid_char") // JNC _invalid_char + self.call_go(_F_makemap_small) // CALL_GO runtime.makemap_small + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Imm(_S_obj_0), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_obj_0, ST.Vt[CX] + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI + self.Emit("MOVQ", _T_map, _DX) // MOVQ _T_map, DX + self.Emit("MOVQ", _DX, jit.Ptr(_SI, 0)) // MOVQ DX, (SI) + self.WritePtrAX(4, jit.Ptr(_SI, 8), false) // MOVQ AX, 8(SI) + self.Sjmp("JMP" , "_next") // JMP _next + + /** V_STRING **/ + self.Link("_decode_V_STRING") // _decode_V_STRING: + self.Emit("MOVQ", _VAR_ss_Iv, _CX) // MOVQ ss.Iv, CX + self.Emit("MOVQ", _IC, _AX) // MOVQ IC, AX + self.Emit("SUBQ", _CX, _AX) // SUBQ CX, AX + + /* check for escapes */ + self.Emit("CMPQ", _VAR_ss_Ep, jit.Imm(-1)) // CMPQ ss.Ep, $-1 + self.Sjmp("JNE" , "_unquote") // JNE _unquote + self.Emit("SUBQ", jit.Imm(1), _AX) // SUBQ $1, AX + self.Emit("LEAQ", jit.Sib(_IP, _CX, 1, 0), _R8) // LEAQ (IP)(CX), R8 + self.Byte(0x48, 0x8d, 0x3d) // LEAQ (PC), DI + self.Sref("_copy_string_end", 4) + self.Emit("BTQ", jit.Imm(_F_copy_string), _VAR_df) + self.Sjmp("JC", "copy_string") + self.Link("_copy_string_end") + self.Emit("XORL", _DX, _DX) + + /* strings with no escape sequences */ + self.Link("_noescape") // _noescape: + self.Emit("MOVL", jit.Imm(_S_omask_key), _DI) // MOVL _S_omask, DI + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _SI) // MOVQ ST.Vt[CX], SI + self.Emit("BTQ" , _SI, _DI) // BTQ SI, DI + self.Sjmp("JC" , "_object_key") // JC _object_key + + /* check for pre-packed strings, avoid 1 allocation */ + self.Emit("TESTQ", _DX, _DX) // TESTQ DX, DX + self.Sjmp("JNZ" , "_packed_str") // JNZ _packed_str + self.Emit("MOVQ" , _AX, _BX) // MOVQ AX, BX + self.Emit("MOVQ" , _R8, _AX) // MOVQ R8, AX + self.call_go(_F_convTstring) // CALL_GO runtime.convTstring + self.Emit("MOVQ" , _AX, _R9) // MOVQ AX, R9 + + /* packed string already in R9 */ + self.Link("_packed_str") // _packed_str: + self.Emit("MOVQ", _T_string, _R8) // MOVQ _T_string, R8 + self.Emit("MOVQ", _VAR_ss_Iv, _DI) // MOVQ ss.Iv, DI + self.Emit("SUBQ", jit.Imm(1), _DI) // SUBQ $1, DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /* the string is an object key, get the map */ + self.Link("_object_key") + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI + self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI + + /* add a new delimiter */ + self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX + self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} + self.Sjmp("JAE" , "_stack_overflow") // JA _stack_overflow + self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp + self.Emit("MOVQ", jit.Imm(_S_obj_delim), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_obj_delim, ST.Vt[CX] + + /* add a new slot int the map */ + self.Emit("MOVQ", _AX, _DI) // MOVQ AX, DI + self.Emit("MOVQ", _T_map, _AX) // MOVQ _T_map, AX + self.Emit("MOVQ", _SI, _BX) // MOVQ SI, BX + self.Emit("MOVQ", _R8, _CX) // MOVQ R9, CX + self.call_go(_F_mapassign_faststr) // CALL_GO runtime.mapassign_faststr + + /* add to the pointer stack */ + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.WritePtrAX(6, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ AX, ST.Vp[CX] + self.Sjmp("JMP" , "_next") // JMP _next + + /* allocate memory to store the string header and unquoted result */ + self.Link("_unquote") // _unquote: + self.Emit("ADDQ", jit.Imm(15), _AX) // ADDQ $15, AX + self.Emit("MOVQ", _T_byte, _BX) // MOVQ _T_byte, BX + self.Emit("MOVB", jit.Imm(0), _CX) // MOVB $0, CX + self.call_go(_F_mallocgc) // CALL_GO runtime.mallocgc + self.Emit("MOVQ", _AX, _R9) // MOVQ AX, R9 + + /* prepare the unquoting parameters */ + self.Emit("MOVQ" , _VAR_ss_Iv, _CX) // MOVQ ss.Iv, CX + self.Emit("LEAQ" , jit.Sib(_IP, _CX, 1, 0), _DI) // LEAQ (IP)(CX), DI + self.Emit("NEGQ" , _CX) // NEGQ CX + self.Emit("LEAQ" , jit.Sib(_IC, _CX, 1, -1), _SI) // LEAQ -1(IC)(CX), SI + self.Emit("LEAQ" , jit.Ptr(_R9, 16), _DX) // LEAQ 16(R8), DX + self.Emit("LEAQ" , _VAR_ss_Ep, _CX) // LEAQ ss.Ep, CX + self.Emit("XORL" , _R8, _R8) // XORL R8, R8 + self.Emit("BTQ" , jit.Imm(_F_disable_urc), _VAR_df) // BTQ ${_F_disable_urc}, fv + self.Emit("SETCC", _R8) // SETCC R8 + self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _R8) // SHLQ ${types.B_UNICODE_REPLACE}, R8 + + /* unquote the string, with R9 been preserved */ + self.Emit("MOVQ", _R9, _VAR_R9) // SAVE R9 + self.call_c(_F_unquote) // CALL unquote + self.Emit("MOVQ", _VAR_R9, _R9) // LOAD R9 + + /* check for errors */ + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , "_unquote_error") // JS _unquote_error + self.Emit("MOVL" , jit.Imm(1), _DX) // MOVL $1, DX + self.Emit("LEAQ" , jit.Ptr(_R9, 16), _R8) // ADDQ $16, R8 + self.Emit("MOVQ" , _R8, jit.Ptr(_R9, 0)) // MOVQ R8, (R9) + self.Emit("MOVQ" , _AX, jit.Ptr(_R9, 8)) // MOVQ AX, 8(R9) + self.Sjmp("JMP" , "_noescape") // JMP _noescape + + /** V_DOUBLE **/ + self.Link("_decode_V_DOUBLE") // _decode_V_DOUBLE: + self.Emit("BTQ" , jit.Imm(_F_use_number), _VAR_df) // BTQ _F_use_number, df + self.Sjmp("JC" , "_use_number") // JC _use_number + self.Emit("MOVSD", _VAR_ss_Dv, _X0) // MOVSD ss.Dv, X0 + self.Sjmp("JMP" , "_use_float64") // JMP _use_float64 + + /** V_INTEGER **/ + self.Link("_decode_V_INTEGER") // _decode_V_INTEGER: + self.Emit("BTQ" , jit.Imm(_F_use_number), _VAR_df) // BTQ _F_use_number, df + self.Sjmp("JC" , "_use_number") // JC _use_number + self.Emit("BTQ" , jit.Imm(_F_use_int64), _VAR_df) // BTQ _F_use_int64, df + self.Sjmp("JC" , "_use_int64") // JC _use_int64 + //TODO: use ss.Dv directly + self.Emit("MOVSD", _VAR_ss_Dv, _X0) // MOVSD ss.Dv, X0 + + /* represent numbers as `float64` */ + self.Link("_use_float64") // _use_float64: + self.Emit("MOVQ" , _X0, _AX) // MOVQ X0, AX + self.call_go(_F_convT64) // CALL_GO runtime.convT64 + self.Emit("MOVQ" , _T_float64, _R8) // MOVQ _T_float64, R8 + self.Emit("MOVQ" , _AX, _R9) // MOVQ AX, R9 + self.Emit("MOVQ" , _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /* represent numbers as `json.Number` */ + self.Link("_use_number") // _use_number + self.Emit("MOVQ", _VAR_ss_Ep, _AX) // MOVQ ss.Ep, AX + self.Emit("LEAQ", jit.Sib(_IP, _AX, 1, 0), _SI) // LEAQ (IP)(AX), SI + self.Emit("MOVQ", _IC, _CX) // MOVQ IC, CX + self.Emit("SUBQ", _AX, _CX) // SUBQ AX, CX + self.Emit("MOVQ", _SI, _AX) // MOVQ SI, AX + self.Emit("MOVQ", _CX, _BX) // MOVQ CX, BX + self.call_go(_F_convTstring) // CALL_GO runtime.convTstring + self.Emit("MOVQ", _T_number, _R8) // MOVQ _T_number, R8 + self.Emit("MOVQ", _AX, _R9) // MOVQ AX, R9 + self.Emit("MOVQ", _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /* represent numbers as `int64` */ + self.Link("_use_int64") // _use_int64: + self.Emit("MOVQ", _VAR_ss_Iv, _AX) // MOVQ ss.Iv, AX + self.call_go(_F_convT64) // CALL_GO runtime.convT64 + self.Emit("MOVQ", _T_int64, _R8) // MOVQ _T_int64, R8 + self.Emit("MOVQ", _AX, _R9) // MOVQ AX, R9 + self.Emit("MOVQ", _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI + self.Sjmp("JMP" , "_set_value") // JMP _set_value + + /** V_KEY_SEP **/ + self.Link("_decode_V_KEY_SEP") // _decode_V_KEY_SEP: + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("CMPQ", _AX, jit.Imm(_S_obj_delim)) // CMPQ AX, _S_obj_delim + self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char + self.Emit("MOVQ", jit.Imm(_S_val), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_val, ST.Vt[CX] + self.Emit("MOVQ", jit.Imm(_S_obj), jit.Sib(_ST, _CX, 8, _ST_Vt - 8)) // MOVQ _S_obj, ST.Vt[CX - 1] + self.Sjmp("JMP" , "_next") // JMP _next + + /** V_ELEM_SEP **/ + self.Link("_decode_V_ELEM_SEP") // _decode_V_ELEM_SEP: + self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ" , jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("CMPQ" , _AX, jit.Imm(_S_arr)) + self.Sjmp("JE" , "_array_sep") // JZ _next + self.Emit("CMPQ" , _AX, jit.Imm(_S_obj)) // CMPQ _AX, _S_arr + self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char + self.Emit("MOVQ" , jit.Imm(_S_obj_sep), jit.Sib(_ST, _CX, 8, _ST_Vt)) + self.Sjmp("JMP" , "_next") // JMP _next + + /* arrays */ + self.Link("_array_sep") + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI + self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI + self.Emit("MOVQ", jit.Ptr(_SI, 8), _DX) // MOVQ 8(SI), DX + self.Emit("CMPQ", _DX, jit.Ptr(_SI, 16)) // CMPQ DX, 16(SI) + self.Sjmp("JAE" , "_array_more") // JAE _array_more + + /* add a slot for the new element */ + self.Link("_array_append") // _array_append: + self.Emit("ADDQ", jit.Imm(1), jit.Ptr(_SI, 8)) // ADDQ $1, 8(SI) + self.Emit("MOVQ", jit.Ptr(_SI, 0), _SI) // MOVQ (SI), SI + self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX + self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} + self.Sjmp("JAE" , "_stack_overflow") // JA _stack_overflow + self.Emit("SHLQ", jit.Imm(1), _DX) // SHLQ $1, DX + self.Emit("LEAQ", jit.Sib(_SI, _DX, 8, 0), _SI) // LEAQ (SI)(DX*8), SI + self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp + self.WriteRecNotAX(7 , _SI, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ SI, ST.Vp[CX] + self.Emit("MOVQ", jit.Imm(_S_val), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_val, ST.Vt[CX} + self.Sjmp("JMP" , "_next") // JMP _next + + /** V_ARRAY_END **/ + self.Link("_decode_V_ARRAY_END") // _decode_V_ARRAY_END: + self.Emit("XORL", _DX, _DX) // XORL DX, DX + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("CMPQ", _AX, jit.Imm(_S_arr_0)) // CMPQ AX, _S_arr_0 + self.Sjmp("JE" , "_first_item") // JE _first_item + self.Emit("CMPQ", _AX, jit.Imm(_S_arr)) // CMPQ AX, _S_arr + self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char + self.Emit("SUBQ", jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp + self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ DX, ST.Vp[CX] + self.Sjmp("JMP" , "_next") // JMP _next + + /* first element of an array */ + self.Link("_first_item") // _first_item: + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("SUBQ", jit.Imm(2), jit.Ptr(_ST, _ST_Sp)) // SUBQ $2, ST.Sp + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp - 8), _SI) // MOVQ ST.Vp[CX - 1], SI + self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI + self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp - 8)) // MOVQ DX, ST.Vp[CX - 1] + self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ DX, ST.Vp[CX] + self.Emit("MOVQ", _DX, jit.Ptr(_SI, 8)) // MOVQ DX, 8(SI) + self.Sjmp("JMP" , "_next") // JMP _next + + /** V_OBJECT_END **/ + self.Link("_decode_V_OBJECT_END") // _decode_V_OBJECT_END: + self.Emit("MOVL", jit.Imm(_S_omask_end), _DI) // MOVL _S_omask, DI + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX + self.Emit("BTQ" , _AX, _DI) + self.Sjmp("JNC" , "_invalid_char") // JNE _invalid_char + self.Emit("XORL", _AX, _AX) // XORL AX, AX + self.Emit("SUBQ", jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp + self.Emit("MOVQ", _AX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ AX, ST.Vp[CX] + self.Sjmp("JMP" , "_next") // JMP _next + + /* return from decoder */ + self.Link("_return") // _return: + self.Emit("XORL", _EP, _EP) // XORL EP, EP + self.Emit("MOVQ", _EP, jit.Ptr(_ST, _ST_Vp)) // MOVQ EP, ST.Vp[0] + self.Link("_epilogue") // _epilogue: + self.Emit("SUBQ", jit.Imm(_FsmOffset), _ST) // SUBQ _FsmOffset, _ST + self.Emit("MOVQ", jit.Ptr(_SP, _VD_offs), _BP) // MOVQ _VD_offs(SP), BP + self.Emit("ADDQ", jit.Imm(_VD_size), _SP) // ADDQ $_VD_size, SP + self.Emit("RET") // RET + + /* array expand */ + self.Link("_array_more") // _array_more: + self.Emit("MOVQ" , _T_eface, _AX) // MOVQ _T_eface, AX + self.Emit("MOVQ" , jit.Ptr(_SI, 0), _BX) // MOVQ (SI), BX + self.Emit("MOVQ" , jit.Ptr(_SI, 8), _CX) // MOVQ 8(SI), CX + self.Emit("MOVQ" , jit.Ptr(_SI, 16), _DI) // MOVQ 16(SI), DI + self.Emit("MOVQ" , _DI, _SI) // MOVQ DI, 24(SP) + self.Emit("SHLQ" , jit.Imm(1), _SI) // SHLQ $1, SI + self.call_go(_F_growslice) // CALL_GO runtime.growslice + self.Emit("MOVQ" , _AX, _DI) // MOVQ AX, DI + self.Emit("MOVQ" , _BX, _DX) // MOVQ BX, DX + self.Emit("MOVQ" , _CX, _AX) // MOVQ CX, AX + + /* update the slice */ + self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX + self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI + self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI + self.Emit("MOVQ", _DX, jit.Ptr(_SI, 8)) // MOVQ DX, 8(SI) + self.Emit("MOVQ", _AX, jit.Ptr(_SI, 16)) // MOVQ AX, 16(AX) + self.WriteRecNotAX(8 , _DI, jit.Ptr(_SI, 0), false) // MOVQ R10, (SI) + self.Sjmp("JMP" , "_array_append") // JMP _array_append + + /* copy string */ + self.Link("copy_string") // pointer: R8, length: AX, return addr: DI + self.Emit("MOVQ", _R8, _VAR_cs_p) + self.Emit("MOVQ", _AX, _VAR_cs_n) + self.Emit("MOVQ", _DI, _VAR_cs_LR) + self.Emit("MOVQ", _AX, _BX) + self.Emit("MOVQ", _AX, _CX) + self.Emit("MOVQ", _T_byte, _AX) + self.call_go(_F_makeslice) + self.Emit("MOVQ", _AX, _VAR_cs_d) + self.Emit("MOVQ", _VAR_cs_p, _BX) + self.Emit("MOVQ", _VAR_cs_n, _CX) + self.call_go(_F_memmove) + self.Emit("MOVQ", _VAR_cs_d, _R8) + self.Emit("MOVQ", _VAR_cs_n, _AX) + self.Emit("MOVQ", _VAR_cs_LR, _DI) + self.Rjmp("JMP", _DI) + + /* error handlers */ + self.Link("_stack_overflow") + self.Emit("MOVL" , _E_recurse, _EP) // MOVQ _E_recurse, EP + self.Sjmp("JMP" , "_error") // JMP _error + self.Link("_vtype_error") // _vtype_error: + self.Emit("MOVQ" , _DI, _IC) // MOVQ DI, IC + self.Emit("MOVL" , _E_invalid, _EP) // MOVL _E_invalid, EP + self.Sjmp("JMP" , "_error") // JMP _error + self.Link("_invalid_char") // _invalid_char: + self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC + self.Emit("MOVL" , _E_invalid, _EP) // MOVL _E_invalid, EP + self.Sjmp("JMP" , "_error") // JMP _error + self.Link("_unquote_error") // _unquote_error: + self.Emit("MOVQ" , _VAR_ss_Iv, _IC) // MOVQ ss.Iv, IC + self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC + self.Link("_parsing_error") // _parsing_error: + self.Emit("NEGQ" , _AX) // NEGQ AX + self.Emit("MOVQ" , _AX, _EP) // MOVQ AX, EP + self.Link("_error") // _error: + self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 + self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) + self.Sjmp("JMP" , "_epilogue") // JMP _epilogue + + /* invalid value type, never returns */ + self.Link("_invalid_vtype") + self.call_go(_F_invalid_vtype) // CALL invalid_type + self.Emit("UD2") // UD2 + + /* switch jump table */ + self.Link("_switch_table") // _switch_table: + self.Sref("_decode_V_EOF", 0) // SREF &_decode_V_EOF, $0 + self.Sref("_decode_V_NULL", -4) // SREF &_decode_V_NULL, $-4 + self.Sref("_decode_V_TRUE", -8) // SREF &_decode_V_TRUE, $-8 + self.Sref("_decode_V_FALSE", -12) // SREF &_decode_V_FALSE, $-12 + self.Sref("_decode_V_ARRAY", -16) // SREF &_decode_V_ARRAY, $-16 + self.Sref("_decode_V_OBJECT", -20) // SREF &_decode_V_OBJECT, $-20 + self.Sref("_decode_V_STRING", -24) // SREF &_decode_V_STRING, $-24 + self.Sref("_decode_V_DOUBLE", -28) // SREF &_decode_V_DOUBLE, $-28 + self.Sref("_decode_V_INTEGER", -32) // SREF &_decode_V_INTEGER, $-32 + self.Sref("_decode_V_KEY_SEP", -36) // SREF &_decode_V_KEY_SEP, $-36 + self.Sref("_decode_V_ELEM_SEP", -40) // SREF &_decode_V_ELEM_SEP, $-40 + self.Sref("_decode_V_ARRAY_END", -44) // SREF &_decode_V_ARRAY_END, $-44 + self.Sref("_decode_V_OBJECT_END", -48) // SREF &_decode_V_OBJECT_END, $-48 + + /* fast character lookup table */ + self.Link("_decode_tab") // _decode_tab: + self.Sref("_decode_V_EOF", 0) // SREF &_decode_V_EOF, $0 + + /* generate rest of the tabs */ + for i := 1; i < 256; i++ { + if to, ok := _R_tab[i]; ok { + self.Sref(to, -int64(i) * 4) + } else { + self.Byte(0x00, 0x00, 0x00, 0x00) + } + } +} + +func (self *_ValueDecoder) WritePtrAX(i int, rec obj.Addr, saveDI bool) { + self.Emit("MOVQ", _V_writeBarrier, _R9) + self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.call(_F_gcWriteBarrierAX) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", _AX, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + +func (self *_ValueDecoder) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _AX) + self.Emit("CMPL", jit.Ptr(_AX, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, _AX) + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.call(_F_gcWriteBarrierAX) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + +/** Generic Decoder **/ + +var ( + _subr_decode_value = new(_ValueDecoder).build() +) + +//go:nosplit +func invalid_vtype(vt types.ValueType) { + throw(fmt.Sprintf("invalid value type: %d", vt)) +} diff --git a/vendor/github.com/bytedance/sonic/decoder/generic_amd64_go117_test.s b/vendor/github.com/bytedance/sonic/decoder/generic_amd64_go117_test.s new file mode 100644 index 0000000000..6c2686de9a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/generic_amd64_go117_test.s @@ -0,0 +1,37 @@ +// +build go1.17,!go1.21 + +// +// Copyright 2021 ByteDance Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·decodeValueStub(SB), NOSPLIT, $0 - 72 + NO_LOCAL_POINTERS + PXOR X0, X0 + MOVOU X0, rv+48(FP) + MOVQ st+0(FP) , R13 + MOVQ sp+8(FP) , R10 + MOVQ sn+16(FP), R12 + MOVQ ic+24(FP), R11 + MOVQ vp+32(FP), R15 + MOVQ df+40(FP), AX + MOVQ ·_subr_decode_value(SB), BX + CALL BX + MOVQ R11, rp+48(FP) + MOVQ BX, ex+56(FP) + RET diff --git a/vendor/github.com/bytedance/sonic/decoder/generic_amd64_test.s b/vendor/github.com/bytedance/sonic/decoder/generic_amd64_test.s new file mode 100644 index 0000000000..36cb1f5f39 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/generic_amd64_test.s @@ -0,0 +1,37 @@ +// +build go1.15,!go1.17 + +// +// Copyright 2021 ByteDance Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#include "go_asm.h" +#include "funcdata.h" +#include "textflag.h" + +TEXT ·decodeValueStub(SB), NOSPLIT, $0 - 72 + NO_LOCAL_POINTERS + PXOR X0, X0 + MOVOU X0, rv+48(FP) + MOVQ st+0(FP), BX + MOVQ sp+8(FP), R12 + MOVQ sn+16(FP), R13 + MOVQ ic+24(FP), R14 + MOVQ vp+32(FP), R15 + MOVQ df+40(FP), R10 + MOVQ ·_subr_decode_value(SB), AX + CALL AX + MOVQ R14, rp+48(FP) + MOVQ R11, ex+56(FP) + RET diff --git a/vendor/github.com/bytedance/sonic/decoder/pools.go b/vendor/github.com/bytedance/sonic/decoder/pools.go new file mode 100644 index 0000000000..ab1e5f23c4 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/pools.go @@ -0,0 +1,143 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `sync` + `unsafe` + + `github.com/bytedance/sonic/internal/caching` + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +const ( + _MinSlice = 16 + _MaxStack = 4096 // 4k slots + _MaxStackBytes = _MaxStack * _PtrBytes + _MaxDigitNums = 800 // used in atof fallback algorithm +) + +const ( + _PtrBytes = _PTR_SIZE / 8 + _FsmOffset = (_MaxStack + 1) * _PtrBytes + _DbufOffset = _FsmOffset + int64(unsafe.Sizeof(types.StateMachine{})) + types.MAX_RECURSE * _PtrBytes + _StackSize = unsafe.Sizeof(_Stack{}) +) + +var ( + stackPool = sync.Pool{} + valueCache = []unsafe.Pointer(nil) + fieldCache = []*caching.FieldMap(nil) + fieldCacheMux = sync.Mutex{} + programCache = caching.CreateProgramCache() +) + +type _Stack struct { + sp uintptr + sb [_MaxStack]unsafe.Pointer + mm types.StateMachine + vp [types.MAX_RECURSE]unsafe.Pointer + dp [_MaxDigitNums]byte +} + +type _Decoder func( + s string, + i int, + vp unsafe.Pointer, + sb *_Stack, + fv uint64, + sv string, // DO NOT pass value to this arguement, since it is only used for local _VAR_sv + vk unsafe.Pointer, // DO NOT pass value to this arguement, since it is only used for local _VAR_vk +) (int, error) + +var _KeepAlive struct { + s string + i int + vp unsafe.Pointer + sb *_Stack + fv uint64 + sv string + vk unsafe.Pointer + + ret int + err error + + frame_decoder [_FP_offs]byte + frame_generic [_VD_offs]byte +} + +var ( + argPtrs = []bool{true, false, false, true, true, false, true, false, true} + localPtrs = []bool{} +) + +var ( + argPtrs_generic = []bool{true} + localPtrs_generic = []bool{} +) + +func newStack() *_Stack { + if ret := stackPool.Get(); ret == nil { + return new(_Stack) + } else { + return ret.(*_Stack) + } +} + +func resetStack(p *_Stack) { + memclrNoHeapPointers(unsafe.Pointer(p), _StackSize) +} + +func freeStack(p *_Stack) { + p.sp = 0 + stackPool.Put(p) +} + +func freezeValue(v unsafe.Pointer) uintptr { + valueCache = append(valueCache, v) + return uintptr(v) +} + +func freezeFields(v *caching.FieldMap) int64 { + fieldCacheMux.Lock() + fieldCache = append(fieldCache, v) + fieldCacheMux.Unlock() + return referenceFields(v) +} + +func referenceFields(v *caching.FieldMap) int64 { + return int64(uintptr(unsafe.Pointer(v))) +} + +func makeDecoder(vt *rt.GoType, _ ...interface{}) (interface{}, error) { + if pp, err := newCompiler().compile(vt.Pack()); err != nil { + return nil, err + } else { + return newAssembler(pp).Load(), nil + } +} + +func findOrCompile(vt *rt.GoType) (_Decoder, error) { + if val := programCache.Get(vt); val != nil { + return val.(_Decoder), nil + } else if ret, err := programCache.Compute(vt, makeDecoder); err == nil { + return ret.(_Decoder), nil + } else { + return nil, err + } +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/decoder/primitives.go b/vendor/github.com/bytedance/sonic/decoder/primitives.go new file mode 100644 index 0000000000..d6053e2cb4 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/primitives.go @@ -0,0 +1,46 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `encoding` + `encoding/json` + `unsafe` + + `github.com/bytedance/sonic/internal/native` + `github.com/bytedance/sonic/internal/rt` +) + +func decodeTypedPointer(s string, i int, vt *rt.GoType, vp unsafe.Pointer, sb *_Stack, fv uint64) (int, error) { + if fn, err := findOrCompile(vt); err != nil { + return 0, err + } else { + rt.MoreStack(_FP_size + _VD_size + native.MaxFrameSize) + rt.StopProf() + ret, err := fn(s, i, vp, sb, fv, "", nil) + rt.StartProf() + return ret, err + } +} + +func decodeJsonUnmarshaler(vv interface{}, s string) error { + return vv.(json.Unmarshaler).UnmarshalJSON(rt.Str2Mem(s)) +} + +func decodeTextUnmarshaler(vv interface{}, s string) error { + return vv.(encoding.TextUnmarshaler).UnmarshalText(rt.Str2Mem(s)) +} diff --git a/vendor/github.com/bytedance/sonic/decoder/stream.go b/vendor/github.com/bytedance/sonic/decoder/stream.go new file mode 100644 index 0000000000..06dc8185b5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/stream.go @@ -0,0 +1,217 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `bytes` + `io` + `sync` + + `github.com/bytedance/sonic/internal/native/types` +) + +var ( + defaultBufferSize uint = 4096 + growSliceFactorShift uint = 1 + minLeftBufferShift uint = 2 +) + +type StreamDecoder struct { + r io.Reader + buf []byte + scanp int + scanned int64 + err error + Decoder +} + +var bufPool = sync.Pool{ + New: func () interface{} { + return make([]byte, 0, defaultBufferSize) + }, +} + +// NewStreamDecoder adapts to encoding/json.NewDecoder API. +// +// NewStreamDecoder returns a new decoder that reads from r. +func NewStreamDecoder(r io.Reader) *StreamDecoder { + return &StreamDecoder{r : r} +} + +// Decode decodes input stream into val with corresponding data. +// Redundantly bytes may be read and left in its buffer, and can be used at next call. +// Either io error from underlying io.Reader (except io.EOF) +// or syntax error from data will be recorded and stop subsequently decoding. +func (self *StreamDecoder) Decode(val interface{}) (err error) { + if self.err != nil { + return self.err + } + + var buf = self.buf[self.scanp:] + var p = 0 + var recycle bool + if cap(buf) == 0 { + buf = bufPool.Get().([]byte) + recycle = true + } + + var first = true + var repeat = true +read_more: + for { + l := len(buf) + realloc(&buf) + n, err := self.r.Read(buf[l:cap(buf)]) + buf = buf[:l+n] + if err != nil { + repeat = false + if err == io.EOF { + if len(buf) == 0 { + return err + } + break + } + self.err = err + return err + } + if n > 0 || first { + break + } + } + first = false + + l := len(buf) + if l > 0 { + self.Decoder.Reset(string(buf)) + err = self.Decoder.Decode(val) + if err != nil { + if repeat && self.repeatable(err) { + goto read_more + } + self.err = err + } + + p = self.Decoder.Pos() + self.scanned += int64(p) + self.scanp = 0 + } + + if l > p { + // remain undecoded bytes, so copy them into self.buf + self.buf = append(self.buf[:0], buf[p:]...) + } else { + self.buf = nil + recycle = true + } + + if recycle { + buf = buf[:0] + bufPool.Put(buf) + } + return err +} + +func (self StreamDecoder) repeatable(err error) bool { + if ee, ok := err.(SyntaxError); ok && + (ee.Code == types.ERR_EOF || (ee.Code == types.ERR_INVALID_CHAR && self.i >= len(self.s)-1)) { + return true + } + return false +} + +// InputOffset returns the input stream byte offset of the current decoder position. +// The offset gives the location of the end of the most recently returned token and the beginning of the next token. +func (self *StreamDecoder) InputOffset() int64 { + return self.scanned + int64(self.scanp) +} + +// Buffered returns a reader of the data remaining in the Decoder's buffer. +// The reader is valid until the next call to Decode. +func (self *StreamDecoder) Buffered() io.Reader { + return bytes.NewReader(self.buf[self.scanp:]) +} + +// More reports whether there is another element in the +// current array or object being parsed. +func (self *StreamDecoder) More() bool { + if self.err != nil { + return false + } + c, err := self.peek() + return err == nil && c != ']' && c != '}' +} + +func (self *StreamDecoder) peek() (byte, error) { + var err error + for { + for i := self.scanp; i < len(self.buf); i++ { + c := self.buf[i] + if isSpace(c) { + continue + } + self.scanp = i + return c, nil + } + // buffer has been scanned, now report any error + if err != nil { + if err != io.EOF { + self.err = err + } + return 0, err + } + err = self.refill() + } +} + +func isSpace(c byte) bool { + return types.SPACE_MASK & (1 << c) != 0 +} + +func (self *StreamDecoder) refill() error { + // Make room to read more into the buffer. + // First slide down data already consumed. + if self.scanp > 0 { + self.scanned += int64(self.scanp) + n := copy(self.buf, self.buf[self.scanp:]) + self.buf = self.buf[:n] + self.scanp = 0 + } + + // Grow buffer if not large enough. + realloc(&self.buf) + + // Read. Delay error for next iteration (after scan). + n, err := self.r.Read(self.buf[len(self.buf):cap(self.buf)]) + self.buf = self.buf[0 : len(self.buf)+n] + + return err +} + +func realloc(buf *[]byte) { + l := uint(len(*buf)) + c := uint(cap(*buf)) + if c - l <= c >> minLeftBufferShift { + e := l+(l>>minLeftBufferShift) + if e < defaultBufferSize { + e = defaultBufferSize + } + tmp := make([]byte, l, e) + copy(tmp, *buf) + *buf = tmp + } +} + diff --git a/vendor/github.com/bytedance/sonic/decoder/stubs_go115.go b/vendor/github.com/bytedance/sonic/decoder/stubs_go115.go new file mode 100644 index 0000000000..1a0917c3c3 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/stubs_go115.go @@ -0,0 +1,111 @@ +// +build go1.15,!go1.20 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `unsafe` + `reflect` + + _ `github.com/chenzhuoyu/base64x` + + `github.com/bytedance/sonic/internal/rt` +) + +//go:linkname _subr__b64decode github.com/chenzhuoyu/base64x._subr__b64decode +var _subr__b64decode uintptr + +// runtime.maxElementSize +const _max_map_element_size uintptr = 128 + +func mapfast(vt reflect.Type) bool { + return vt.Elem().Size() <= _max_map_element_size +} + +//go:nosplit +//go:linkname throw runtime.throw +//goland:noinspection GoUnusedParameter +func throw(s string) + +//go:linkname convT64 runtime.convT64 +//goland:noinspection GoUnusedParameter +func convT64(v uint64) unsafe.Pointer + +//go:linkname convTslice runtime.convTslice +//goland:noinspection GoUnusedParameter +func convTslice(v []byte) unsafe.Pointer + +//go:linkname convTstring runtime.convTstring +//goland:noinspection GoUnusedParameter +func convTstring(v string) unsafe.Pointer + +//go:noescape +//go:linkname memequal runtime.memequal +//goland:noinspection GoUnusedParameter +func memequal(a unsafe.Pointer, b unsafe.Pointer, size uintptr) bool + +//go:noescape +//go:linkname memmove runtime.memmove +//goland:noinspection GoUnusedParameter +func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr) + +//go:linkname mallocgc runtime.mallocgc +//goland:noinspection GoUnusedParameter +func mallocgc(size uintptr, typ *rt.GoType, needzero bool) unsafe.Pointer + +//go:linkname makeslice runtime.makeslice +//goland:noinspection GoUnusedParameter +func makeslice(et *rt.GoType, len int, cap int) unsafe.Pointer + +//go:noescape +//go:linkname growslice runtime.growslice +//goland:noinspection GoUnusedParameter +func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice + +//go:linkname makemap_small runtime.makemap_small +func makemap_small() unsafe.Pointer + +//go:linkname mapassign runtime.mapassign +//goland:noinspection GoUnusedParameter +func mapassign(t *rt.GoType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer + +//go:linkname mapassign_fast32 runtime.mapassign_fast32 +//goland:noinspection GoUnusedParameter +func mapassign_fast32(t *rt.GoType, h unsafe.Pointer, k uint32) unsafe.Pointer + +//go:linkname mapassign_fast64 runtime.mapassign_fast64 +//goland:noinspection GoUnusedParameter +func mapassign_fast64(t *rt.GoType, h unsafe.Pointer, k uint64) unsafe.Pointer + +//go:linkname mapassign_fast64ptr runtime.mapassign_fast64ptr +//goland:noinspection GoUnusedParameter +func mapassign_fast64ptr(t *rt.GoType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer + +//go:linkname mapassign_faststr runtime.mapassign_faststr +//goland:noinspection GoUnusedParameter +func mapassign_faststr(t *rt.GoType, h unsafe.Pointer, s string) unsafe.Pointer + +//go:nosplit +//go:linkname memclrHasPointers runtime.memclrHasPointers +//goland:noinspection GoUnusedParameter +func memclrHasPointers(ptr unsafe.Pointer, n uintptr) + +//go:noescape +//go:linkname memclrNoHeapPointers runtime.memclrNoHeapPointers +//goland:noinspection GoUnusedParameter +func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/decoder/stubs_go120.go b/vendor/github.com/bytedance/sonic/decoder/stubs_go120.go new file mode 100644 index 0000000000..cde6a19728 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/stubs_go120.go @@ -0,0 +1,111 @@ +// +build go1.20 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `unsafe` + `reflect` + + _ `github.com/chenzhuoyu/base64x` + + `github.com/bytedance/sonic/internal/rt` +) + +//go:linkname _subr__b64decode github.com/chenzhuoyu/base64x._subr__b64decode +var _subr__b64decode uintptr + +// runtime.maxElementSize +const _max_map_element_size uintptr = 128 + +func mapfast(vt reflect.Type) bool { + return vt.Elem().Size() <= _max_map_element_size +} + +//go:nosplit +//go:linkname throw runtime.throw +//goland:noinspection GoUnusedParameter +func throw(s string) + +//go:linkname convT64 runtime.convT64 +//goland:noinspection GoUnusedParameter +func convT64(v uint64) unsafe.Pointer + +//go:linkname convTslice runtime.convTslice +//goland:noinspection GoUnusedParameter +func convTslice(v []byte) unsafe.Pointer + +//go:linkname convTstring runtime.convTstring +//goland:noinspection GoUnusedParameter +func convTstring(v string) unsafe.Pointer + +//go:noescape +//go:linkname memequal runtime.memequal +//goland:noinspection GoUnusedParameter +func memequal(a unsafe.Pointer, b unsafe.Pointer, size uintptr) bool + +//go:noescape +//go:linkname memmove runtime.memmove +//goland:noinspection GoUnusedParameter +func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr) + +//go:linkname mallocgc runtime.mallocgc +//goland:noinspection GoUnusedParameter +func mallocgc(size uintptr, typ *rt.GoType, needzero bool) unsafe.Pointer + +//go:linkname makeslice runtime.makeslice +//goland:noinspection GoUnusedParameter +func makeslice(et *rt.GoType, len int, cap int) unsafe.Pointer + +//go:noescape +//go:linkname growslice reflect.growslice +//goland:noinspection GoUnusedParameter +func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice + +//go:linkname makemap_small runtime.makemap_small +func makemap_small() unsafe.Pointer + +//go:linkname mapassign runtime.mapassign +//goland:noinspection GoUnusedParameter +func mapassign(t *rt.GoType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer + +//go:linkname mapassign_fast32 runtime.mapassign_fast32 +//goland:noinspection GoUnusedParameter +func mapassign_fast32(t *rt.GoType, h unsafe.Pointer, k uint32) unsafe.Pointer + +//go:linkname mapassign_fast64 runtime.mapassign_fast64 +//goland:noinspection GoUnusedParameter +func mapassign_fast64(t *rt.GoType, h unsafe.Pointer, k uint64) unsafe.Pointer + +//go:linkname mapassign_fast64ptr runtime.mapassign_fast64ptr +//goland:noinspection GoUnusedParameter +func mapassign_fast64ptr(t *rt.GoType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer + +//go:linkname mapassign_faststr runtime.mapassign_faststr +//goland:noinspection GoUnusedParameter +func mapassign_faststr(t *rt.GoType, h unsafe.Pointer, s string) unsafe.Pointer + +//go:nosplit +//go:linkname memclrHasPointers runtime.memclrHasPointers +//goland:noinspection GoUnusedParameter +func memclrHasPointers(ptr unsafe.Pointer, n uintptr) + +//go:noescape +//go:linkname memclrNoHeapPointers runtime.memclrNoHeapPointers +//goland:noinspection GoUnusedParameter +func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/decoder/types.go b/vendor/github.com/bytedance/sonic/decoder/types.go new file mode 100644 index 0000000000..6fc0e706ce --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/types.go @@ -0,0 +1,58 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `encoding` + `encoding/base64` + `encoding/json` + `reflect` + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var ( + byteType = reflect.TypeOf(byte(0)) + intType = reflect.TypeOf(int(0)) + int8Type = reflect.TypeOf(int8(0)) + int16Type = reflect.TypeOf(int16(0)) + int32Type = reflect.TypeOf(int32(0)) + int64Type = reflect.TypeOf(int64(0)) + uintType = reflect.TypeOf(uint(0)) + uint8Type = reflect.TypeOf(uint8(0)) + uint16Type = reflect.TypeOf(uint16(0)) + uint32Type = reflect.TypeOf(uint32(0)) + uint64Type = reflect.TypeOf(uint64(0)) + float32Type = reflect.TypeOf(float32(0)) + float64Type = reflect.TypeOf(float64(0)) + stringType = reflect.TypeOf("") + bytesType = reflect.TypeOf([]byte(nil)) + jsonNumberType = reflect.TypeOf(json.Number("")) + base64CorruptInputError = reflect.TypeOf(base64.CorruptInputError(0)) +) + +var ( + errorType = reflect.TypeOf((*error)(nil)).Elem() + jsonUnmarshalerType = reflect.TypeOf((*json.Unmarshaler)(nil)).Elem() + encodingTextUnmarshalerType = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem() +) + +func rtype(t reflect.Type) (*rt.GoItab, *rt.GoType) { + p := (*rt.GoIface)(unsafe.Pointer(&t)) + return p.Itab, (*rt.GoType)(p.Value) +} diff --git a/vendor/github.com/bytedance/sonic/decoder/utils.go b/vendor/github.com/bytedance/sonic/decoder/utils.go new file mode 100644 index 0000000000..23ee5d5018 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/decoder/utils.go @@ -0,0 +1,39 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package decoder + +import ( + `unsafe` + + `github.com/bytedance/sonic/loader` +) + +//go:nosplit +func pbool(v bool) uintptr { + return freezeValue(unsafe.Pointer(&v)) +} + +//go:nosplit +func ptodec(p loader.Function) _Decoder { + return *(*_Decoder)(unsafe.Pointer(&p)) +} + +func assert_eq(v int64, exp int64, msg string) { + if v != exp { + panic(msg) + } +} diff --git a/vendor/github.com/bytedance/sonic/encoder/asm.s b/vendor/github.com/bytedance/sonic/encoder/asm.s new file mode 100644 index 0000000000..e69de29bb2 diff --git a/vendor/github.com/bytedance/sonic/encoder/assembler_amd64_go116.go b/vendor/github.com/bytedance/sonic/encoder/assembler_amd64_go116.go new file mode 100644 index 0000000000..9b5978431b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/encoder/assembler_amd64_go116.go @@ -0,0 +1,1198 @@ +// +build go1.15,!go1.17 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package encoder + +import ( + `fmt` + `reflect` + `strconv` + `unsafe` + + `github.com/bytedance/sonic/internal/cpu` + `github.com/bytedance/sonic/internal/jit` + `github.com/bytedance/sonic/internal/native/types` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` + + `github.com/bytedance/sonic/internal/native` + `github.com/bytedance/sonic/internal/rt` +) + +/** Register Allocations + * + * State Registers: + * + * %rbx : stack base + * %rdi : result pointer + * %rsi : result length + * %rdx : result capacity + * %r12 : sp->p + * %r13 : sp->q + * %r14 : sp->x + * %r15 : sp->f + * + * Error Registers: + * + * %r10 : error type register + * %r11 : error pointer register + */ + +/** Function Prototype & Stack Map + * + * func (buf *[]byte, p unsafe.Pointer, sb *_Stack, fv uint64) (err error) + * + * buf : (FP) + * p : 8(FP) + * sb : 16(FP) + * fv : 24(FP) + * err.vt : 32(FP) + * err.vp : 40(FP) + */ + +const ( + _S_cond = iota + _S_init +) + +const ( + _FP_args = 48 // 48 bytes for passing arguments to this function + _FP_fargs = 64 // 64 bytes for passing arguments to other Go functions + _FP_saves = 64 // 64 bytes for saving the registers before CALL instructions + _FP_locals = 24 // 24 bytes for local variables +) + +const ( + _FP_offs = _FP_fargs + _FP_saves + _FP_locals + _FP_size = _FP_offs + 8 // 8 bytes for the parent frame pointer + _FP_base = _FP_size + 8 // 8 bytes for the return address +) + +const ( + _FM_exp32 = 0x7f800000 + _FM_exp64 = 0x7ff0000000000000 +) + +const ( + _IM_null = 0x6c6c756e // 'null' + _IM_true = 0x65757274 // 'true' + _IM_fals = 0x736c6166 // 'fals' ('false' without the 'e') + _IM_open = 0x00225c22 // '"\"∅' + _IM_array = 0x5d5b // '[]' + _IM_object = 0x7d7b // '{}' + _IM_mulv = -0x5555555555555555 +) + +const ( + _LB_more_space = "_more_space" + _LB_more_space_return = "_more_space_return_" +) + +const ( + _LB_error = "_error" + _LB_error_too_deep = "_error_too_deep" + _LB_error_invalid_number = "_error_invalid_number" + _LB_error_nan_or_infinite = "_error_nan_or_infinite" + _LB_panic = "_panic" +) + +var ( + _AX = jit.Reg("AX") + _CX = jit.Reg("CX") + _DX = jit.Reg("DX") + _DI = jit.Reg("DI") + _SI = jit.Reg("SI") + _BP = jit.Reg("BP") + _SP = jit.Reg("SP") + _R8 = jit.Reg("R8") +) + +var ( + _X0 = jit.Reg("X0") + _Y0 = jit.Reg("Y0") +) + +var ( + _ST = jit.Reg("BX") + _RP = jit.Reg("DI") + _RL = jit.Reg("SI") + _RC = jit.Reg("DX") +) + +var ( + _LR = jit.Reg("R9") + _R10 = jit.Reg("R10") // used for gcWriterBarrier + _ET = jit.Reg("R10") + _EP = jit.Reg("R11") +) + +var ( + _SP_p = jit.Reg("R12") + _SP_q = jit.Reg("R13") + _SP_x = jit.Reg("R14") + _SP_f = jit.Reg("R15") +) + +var ( + _ARG_rb = jit.Ptr(_SP, _FP_base) + _ARG_vp = jit.Ptr(_SP, _FP_base + 8) + _ARG_sb = jit.Ptr(_SP, _FP_base + 16) + _ARG_fv = jit.Ptr(_SP, _FP_base + 24) +) + +var ( + _RET_et = jit.Ptr(_SP, _FP_base + 32) + _RET_ep = jit.Ptr(_SP, _FP_base + 40) +) + +var ( + _VAR_sp = jit.Ptr(_SP, _FP_fargs + _FP_saves) + _VAR_dn = jit.Ptr(_SP, _FP_fargs + _FP_saves + 8) + _VAR_vp = jit.Ptr(_SP, _FP_fargs + _FP_saves + 16) +) + +var ( + _REG_ffi = []obj.Addr{_RP, _RL, _RC} + _REG_enc = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _RL} + _REG_jsr = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _LR} + _REG_all = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _RP, _RL, _RC} +) + +type _Assembler struct { + jit.BaseAssembler + p _Program + x int + name string +} + +func newAssembler(p _Program) *_Assembler { + return new(_Assembler).Init(p) +} + +/** Assembler Interface **/ +func (self *_Assembler) Load() _Encoder { + return ptoenc(self.BaseAssembler.Load("encode_"+self.name, _FP_size, _FP_args, argPtrs, localPtrs)) +} + +func (self *_Assembler) Init(p _Program) *_Assembler { + self.p = p + self.BaseAssembler.Init(self.compile) + return self +} + +func (self *_Assembler) compile() { + self.prologue() + self.instrs() + self.epilogue() + self.builtins() +} + +/** Assembler Stages **/ + +var _OpFuncTab = [256]func(*_Assembler, *_Instr) { + _OP_null : (*_Assembler)._asm_OP_null, + _OP_empty_arr : (*_Assembler)._asm_OP_empty_arr, + _OP_empty_obj : (*_Assembler)._asm_OP_empty_obj, + _OP_bool : (*_Assembler)._asm_OP_bool, + _OP_i8 : (*_Assembler)._asm_OP_i8, + _OP_i16 : (*_Assembler)._asm_OP_i16, + _OP_i32 : (*_Assembler)._asm_OP_i32, + _OP_i64 : (*_Assembler)._asm_OP_i64, + _OP_u8 : (*_Assembler)._asm_OP_u8, + _OP_u16 : (*_Assembler)._asm_OP_u16, + _OP_u32 : (*_Assembler)._asm_OP_u32, + _OP_u64 : (*_Assembler)._asm_OP_u64, + _OP_f32 : (*_Assembler)._asm_OP_f32, + _OP_f64 : (*_Assembler)._asm_OP_f64, + _OP_str : (*_Assembler)._asm_OP_str, + _OP_bin : (*_Assembler)._asm_OP_bin, + _OP_quote : (*_Assembler)._asm_OP_quote, + _OP_number : (*_Assembler)._asm_OP_number, + _OP_eface : (*_Assembler)._asm_OP_eface, + _OP_iface : (*_Assembler)._asm_OP_iface, + _OP_byte : (*_Assembler)._asm_OP_byte, + _OP_text : (*_Assembler)._asm_OP_text, + _OP_deref : (*_Assembler)._asm_OP_deref, + _OP_index : (*_Assembler)._asm_OP_index, + _OP_load : (*_Assembler)._asm_OP_load, + _OP_save : (*_Assembler)._asm_OP_save, + _OP_drop : (*_Assembler)._asm_OP_drop, + _OP_drop_2 : (*_Assembler)._asm_OP_drop_2, + _OP_recurse : (*_Assembler)._asm_OP_recurse, + _OP_is_nil : (*_Assembler)._asm_OP_is_nil, + _OP_is_nil_p1 : (*_Assembler)._asm_OP_is_nil_p1, + _OP_is_zero_1 : (*_Assembler)._asm_OP_is_zero_1, + _OP_is_zero_2 : (*_Assembler)._asm_OP_is_zero_2, + _OP_is_zero_4 : (*_Assembler)._asm_OP_is_zero_4, + _OP_is_zero_8 : (*_Assembler)._asm_OP_is_zero_8, + _OP_is_zero_map : (*_Assembler)._asm_OP_is_zero_map, + _OP_goto : (*_Assembler)._asm_OP_goto, + _OP_map_iter : (*_Assembler)._asm_OP_map_iter, + _OP_map_stop : (*_Assembler)._asm_OP_map_stop, + _OP_map_check_key : (*_Assembler)._asm_OP_map_check_key, + _OP_map_write_key : (*_Assembler)._asm_OP_map_write_key, + _OP_map_value_next : (*_Assembler)._asm_OP_map_value_next, + _OP_slice_len : (*_Assembler)._asm_OP_slice_len, + _OP_slice_next : (*_Assembler)._asm_OP_slice_next, + _OP_marshal : (*_Assembler)._asm_OP_marshal, + _OP_marshal_p : (*_Assembler)._asm_OP_marshal_p, + _OP_marshal_text : (*_Assembler)._asm_OP_marshal_text, + _OP_marshal_text_p : (*_Assembler)._asm_OP_marshal_text_p, + _OP_cond_set : (*_Assembler)._asm_OP_cond_set, + _OP_cond_testc : (*_Assembler)._asm_OP_cond_testc, +} + +func (self *_Assembler) instr(v *_Instr) { + if fn := _OpFuncTab[v.op()]; fn != nil { + fn(self, v) + } else { + panic(fmt.Sprintf("invalid opcode: %d", v.op())) + } +} + +func (self *_Assembler) instrs() { + for i, v := range self.p { + self.Mark(i) + self.instr(&v) + self.debug_instr(i, &v) + } +} + +func (self *_Assembler) builtins() { + self.more_space() + self.error_too_deep() + self.error_invalid_number() + self.error_nan_or_infinite() + self.go_panic() +} + +func (self *_Assembler) epilogue() { + self.Mark(len(self.p)) + self.Emit("XORL", _ET, _ET) + self.Emit("XORL", _EP, _EP) + self.Link(_LB_error) + self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX + self.Emit("MOVQ", _RL, jit.Ptr(_AX, 8)) // MOVQ RL, 8(AX) + self.Emit("MOVQ", _ET, _RET_et) // MOVQ ET, et<>+24(FP) + self.Emit("MOVQ", _EP, _RET_ep) // MOVQ EP, ep<>+32(FP) + self.Emit("MOVQ", jit.Ptr(_SP, _FP_offs), _BP) // MOVQ _FP_offs(SP), BP + self.Emit("ADDQ", jit.Imm(_FP_size), _SP) // ADDQ $_FP_size, SP + self.Emit("RET") // RET +} + +func (self *_Assembler) prologue() { + self.Emit("SUBQ", jit.Imm(_FP_size), _SP) // SUBQ $_FP_size, SP + self.Emit("MOVQ", _BP, jit.Ptr(_SP, _FP_offs)) // MOVQ BP, _FP_offs(SP) + self.Emit("LEAQ", jit.Ptr(_SP, _FP_offs), _BP) // LEAQ _FP_offs(SP), BP + self.load_buffer() // LOAD {buf} + self.Emit("MOVQ", _ARG_vp, _SP_p) // MOVQ vp<>+8(FP), SP.p + self.Emit("MOVQ", _ARG_sb, _ST) // MOVQ sb<>+16(FP), ST + self.Emit("XORL", _SP_x, _SP_x) // XORL SP.x, SP.x + self.Emit("XORL", _SP_f, _SP_f) // XORL SP.f, SP.f + self.Emit("XORL", _SP_q, _SP_q) // XORL SP.q, SP.q +} + +/** Assembler Inline Functions **/ + +func (self *_Assembler) xsave(reg ...obj.Addr) { + for i, v := range reg { + if i > _FP_saves / 8 - 1 { + panic("too many registers to save") + } else { + self.Emit("MOVQ", v, jit.Ptr(_SP, _FP_fargs + int64(i) * 8)) + } + } +} + +func (self *_Assembler) xload(reg ...obj.Addr) { + for i, v := range reg { + if i > _FP_saves / 8 - 1 { + panic("too many registers to load") + } else { + self.Emit("MOVQ", jit.Ptr(_SP, _FP_fargs + int64(i) * 8), v) + } + } +} + +func (self *_Assembler) rbuf_di() { + if _RP.Reg != x86.REG_DI { + panic("register allocation messed up: RP != DI") + } else { + self.Emit("ADDQ", _RL, _RP) + } +} + +func (self *_Assembler) store_int(nd int, fn obj.Addr, ins string) { + self.check_size(nd) + self.save_c() // SAVE $C_regs + self.rbuf_di() // MOVQ RP, DI + self.Emit(ins, jit.Ptr(_SP_p, 0), _SI) // $ins (SP.p), SI + self.call_c(fn) // CALL_C $fn + self.Emit("ADDQ", _AX, _RL) // ADDQ AX, RL +} + +func (self *_Assembler) store_str(s string) { + i := 0 + m := rt.Str2Mem(s) + + /* 8-byte stores */ + for i <= len(m) - 8 { + self.Emit("MOVQ", jit.Imm(rt.Get64(m[i:])), _AX) // MOVQ $s[i:], AX + self.Emit("MOVQ", _AX, jit.Sib(_RP, _RL, 1, int64(i))) // MOVQ AX, i(RP)(RL) + i += 8 + } + + /* 4-byte stores */ + if i <= len(m) - 4 { + self.Emit("MOVL", jit.Imm(int64(rt.Get32(m[i:]))), jit.Sib(_RP, _RL, 1, int64(i))) // MOVL $s[i:], i(RP)(RL) + i += 4 + } + + /* 2-byte stores */ + if i <= len(m) - 2 { + self.Emit("MOVW", jit.Imm(int64(rt.Get16(m[i:]))), jit.Sib(_RP, _RL, 1, int64(i))) // MOVW $s[i:], i(RP)(RL) + i += 2 + } + + /* last byte */ + if i < len(m) { + self.Emit("MOVB", jit.Imm(int64(m[i])), jit.Sib(_RP, _RL, 1, int64(i))) // MOVB $s[i:], i(RP)(RL) + } +} + +func (self *_Assembler) check_size(n int) { + self.check_size_rl(jit.Ptr(_RL, int64(n))) +} + +func (self *_Assembler) check_size_r(r obj.Addr, d int) { + self.check_size_rl(jit.Sib(_RL, r, 1, int64(d))) +} + +func (self *_Assembler) check_size_rl(v obj.Addr) { + idx := self.x + key := _LB_more_space_return + strconv.Itoa(idx) + + /* the following code relies on LR == R9 to work */ + if _LR.Reg != x86.REG_R9 { + panic("register allocation messed up: LR != R9") + } + + /* check for buffer capacity */ + self.x++ + self.Emit("LEAQ", v, _AX) // LEAQ $v, AX + self.Emit("CMPQ", _AX, _RC) // CMPQ AX, RC + self.Sjmp("JBE" , key) // JBE _more_space_return_{n} + self.slice_grow_ax(key) // GROW $key + self.Link(key) // _more_space_return_{n}: +} + +func (self *_Assembler) slice_grow_ax(ret string) { + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ ?(PC), R9 + self.Sref(ret, 4) // .... &ret + self.Sjmp("JMP" , _LB_more_space) // JMP _more_space +} + +/** State Stack Helpers **/ + +const ( + _StateSize = int64(unsafe.Sizeof(_State{})) + _StackLimit = _MaxStack * _StateSize +) + +func (self *_Assembler) save_state() { + self.Emit("MOVQ", jit.Ptr(_ST, 0), _CX) // MOVQ (ST), CX + self.Emit("LEAQ", jit.Ptr(_CX, _StateSize), _R8) // LEAQ _StateSize(CX), R8 + self.Emit("CMPQ", _R8, jit.Imm(_StackLimit)) // CMPQ R8, $_StackLimit + self.Sjmp("JAE" , _LB_error_too_deep) // JA _error_too_deep + self.Emit("MOVQ", _SP_x, jit.Sib(_ST, _CX, 1, 8)) // MOVQ SP.x, 8(ST)(CX) + self.Emit("MOVQ", _SP_f, jit.Sib(_ST, _CX, 1, 16)) // MOVQ SP.f, 16(ST)(CX) + self.WriteRecNotAX(0, _SP_p, jit.Sib(_ST, _CX, 1, 24)) // MOVQ SP.p, 24(ST)(CX) + self.WriteRecNotAX(1, _SP_q, jit.Sib(_ST, _CX, 1, 32)) // MOVQ SP.q, 32(ST)(CX) + self.Emit("MOVQ", _R8, jit.Ptr(_ST, 0)) // MOVQ R8, (ST) +} + +func (self *_Assembler) drop_state(decr int64) { + self.Emit("MOVQ" , jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("SUBQ" , jit.Imm(decr), _AX) // SUBQ $decr, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) + self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 8), _SP_x) // MOVQ 8(ST)(AX), SP.x + self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 16), _SP_f) // MOVQ 16(ST)(AX), SP.f + self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 24), _SP_p) // MOVQ 24(ST)(AX), SP.p + self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 32), _SP_q) // MOVQ 32(ST)(AX), SP.q + self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 + self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 8)) // MOVOU X0, 8(ST)(AX) + self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 24)) // MOVOU X0, 24(ST)(AX) +} + +/** Buffer Helpers **/ + +func (self *_Assembler) add_char(ch byte) { + self.Emit("MOVB", jit.Imm(int64(ch)), jit.Sib(_RP, _RL, 1, 0)) // MOVB $ch, (RP)(RL) + self.Emit("ADDQ", jit.Imm(1), _RL) // ADDQ $1, RL +} + +func (self *_Assembler) add_long(ch uint32, n int64) { + self.Emit("MOVL", jit.Imm(int64(ch)), jit.Sib(_RP, _RL, 1, 0)) // MOVL $ch, (RP)(RL) + self.Emit("ADDQ", jit.Imm(n), _RL) // ADDQ $n, RL +} + +func (self *_Assembler) add_text(ss string) { + self.store_str(ss) // TEXT $ss + self.Emit("ADDQ", jit.Imm(int64(len(ss))), _RL) // ADDQ ${len(ss)}, RL +} + +func (self *_Assembler) prep_buffer() { + self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX + self.Emit("MOVQ", _RL, jit.Ptr(_AX, 8)) // MOVQ RL, 8(AX) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) +} + +func (self *_Assembler) prep_buffer_c() { + self.Emit("MOVQ", _ARG_rb, _DI) // MOVQ rb<>+0(FP), DI + self.Emit("MOVQ", _RL, jit.Ptr(_DI, 8)) // MOVQ RL, 8(DI) +} + +func (self *_Assembler) save_buffer() { + self.Emit("MOVQ", _ARG_rb, _CX) // MOVQ rb<>+0(FP), CX + self.Emit("MOVQ", _RP, jit.Ptr(_CX, 0)) // MOVQ RP, (CX) + self.Emit("MOVQ", _RL, jit.Ptr(_CX, 8)) // MOVQ RL, 8(CX) + self.Emit("MOVQ", _RC, jit.Ptr(_CX, 16)) // MOVQ RC, 16(CX) +} + +func (self *_Assembler) load_buffer() { + self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX + self.Emit("MOVQ", jit.Ptr(_AX, 0), _RP) // MOVQ (AX), RP + self.Emit("MOVQ", jit.Ptr(_AX, 8), _RL) // MOVQ 8(AX), RL + self.Emit("MOVQ", jit.Ptr(_AX, 16), _RC) // MOVQ 16(AX), RC +} + +/** Function Interface Helpers **/ + +func (self *_Assembler) call(pc obj.Addr) { + self.Emit("MOVQ", pc, _AX) // MOVQ $pc, AX + self.Rjmp("CALL", _AX) // CALL AX +} + +func (self *_Assembler) save_c() { + self.xsave(_REG_ffi...) // SAVE $REG_ffi +} + +func (self *_Assembler) call_c(pc obj.Addr) { + self.call(pc) // CALL $pc + self.xload(_REG_ffi...) // LOAD $REG_ffi +} + +func (self *_Assembler) call_go(pc obj.Addr) { + self.xsave(_REG_all...) // SAVE $REG_all + self.call(pc) // CALL $pc + self.xload(_REG_all...) // LOAD $REG_all +} + +func (self *_Assembler) call_encoder(pc obj.Addr) { + self.xsave(_REG_enc...) // SAVE $REG_enc + self.call(pc) // CALL $pc + self.xload(_REG_enc...) // LOAD $REG_enc + self.load_buffer() // LOAD {buf} +} + +func (self *_Assembler) call_marshaler(fn obj.Addr, it *rt.GoType, vt reflect.Type) { + switch vt.Kind() { + case reflect.Interface : self.call_marshaler_i(fn, it) + case reflect.Ptr, reflect.Map: self.call_marshaler_v(fn, it, vt, true) + default : self.call_marshaler_v(fn, it, vt, false) + } +} + +func (self *_Assembler) call_marshaler_i(fn obj.Addr, it *rt.GoType) { + self.Emit("MOVQ" , jit.Gtype(it), _AX) // MOVQ $it, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _CX) // MOVQ 8(SP.p), CX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JZ" , "_null_{n}") // JZ _null_{n} + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) + self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 16)) // MOVQ CX, 16(SP) + self.call_go(_F_assertI2I) // CALL_GO assertI2I + self.prep_buffer() // MOVE {buf}, (SP) + self.Emit("MOVOU", jit.Ptr(_SP, 24), _X0) // MOVOU 24(SP), X0 + self.Emit("MOVOU", _X0, jit.Ptr(_SP, 8)) // MOVOU X0, 8(SP) + self.Emit("MOVQ", _ARG_fv, _CX) // MOVQ ARG.fv, CX + self.Emit("MOVQ", _CX, jit.Ptr(_SP, 24)) // MOVQ CX, 24(SP) + self.call_encoder(fn) // CALL $fn + self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error + self.Sjmp("JMP" , "_done_{n}") // JMP _done_{n} + self.Link("_null_{n}") // _null_{n}: + self.check_size(4) // SIZE $4 + self.Emit("MOVL", jit.Imm(_IM_null), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'null', (RP)(RL*1) + self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL + self.Link("_done_{n}") // _done_{n}: +} + +func (self *_Assembler) call_marshaler_v(fn obj.Addr, it *rt.GoType, vt reflect.Type, deref bool) { + self.prep_buffer() // MOVE {buf}, (SP) + self.Emit("MOVQ", jit.Itab(it, vt), _AX) // MOVQ $(itab(it, vt)), AX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) + + /* dereference the pointer if needed */ + if !deref { + self.Emit("MOVQ", _SP_p, jit.Ptr(_SP, 16)) // MOVQ SP.p, 16(SP) + } else { + self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) + } + + /* call the encoder, and perform error checks */ + self.Emit("MOVQ", _ARG_fv, _CX) // MOVQ ARG.fv, CX + self.Emit("MOVQ", _CX, jit.Ptr(_SP, 24)) // MOVQ CX, 24(SP) + self.call_encoder(fn) // CALL $fn + self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error +} + +/** Builtin: _more_space **/ + +var ( + _T_byte = jit.Type(byteType) + _F_growslice = jit.Func(growslice) +) + +func (self *_Assembler) more_space() { + self.Link(_LB_more_space) + self.Emit("MOVQ", _T_byte, jit.Ptr(_SP, 0)) // MOVQ $_T_byte, (SP) + self.Emit("MOVQ", _RP, jit.Ptr(_SP, 8)) // MOVQ RP, 8(SP) + self.Emit("MOVQ", _RL, jit.Ptr(_SP, 16)) // MOVQ RL, 16(SP) + self.Emit("MOVQ", _RC, jit.Ptr(_SP, 24)) // MOVQ RC, 24(SP) + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 32)) // MOVQ AX, 32(SP) + self.xsave(_REG_jsr...) // SAVE $REG_jsr + self.call(_F_growslice) // CALL $pc + self.xload(_REG_jsr...) // LOAD $REG_jsr + self.Emit("MOVQ", jit.Ptr(_SP, 40), _RP) // MOVQ 40(SP), RP + self.Emit("MOVQ", jit.Ptr(_SP, 48), _RL) // MOVQ 48(SP), RL + self.Emit("MOVQ", jit.Ptr(_SP, 56), _RC) // MOVQ 56(SP), RC + self.save_buffer() // SAVE {buf} + self.Rjmp("JMP" , _LR) // JMP LR +} + +/** Builtin Errors **/ + +var ( + _V_ERR_too_deep = jit.Imm(int64(uintptr(unsafe.Pointer(_ERR_too_deep)))) + _V_ERR_nan_or_infinite = jit.Imm(int64(uintptr(unsafe.Pointer(_ERR_nan_or_infinite)))) + _I_json_UnsupportedValueError = jit.Itab(rt.UnpackType(errorType), jsonUnsupportedValueType) +) + +func (self *_Assembler) error_too_deep() { + self.Link(_LB_error_too_deep) + self.Emit("MOVQ", _V_ERR_too_deep, _EP) // MOVQ $_V_ERR_too_deep, EP + self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ $_I_json_UnsupportedValuError, ET + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) error_invalid_number() { + self.Link(_LB_error_invalid_number) + self.call_go(_F_error_number) // CALL_GO error_number + self.Emit("MOVQ", jit.Ptr(_SP, 16), _ET) // MOVQ 16(SP), ET + self.Emit("MOVQ", jit.Ptr(_SP, 24), _EP) // MOVQ 24(SP), EP + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) error_nan_or_infinite() { + self.Link(_LB_error_nan_or_infinite) + self.Emit("MOVQ", _V_ERR_nan_or_infinite, _EP) // MOVQ $_V_ERR_nan_or_infinite, EP + self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ $_I_json_UnsupportedValuError, ET + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +/** String Encoding Routine **/ + +var ( + _F_quote = jit.Imm(int64(native.S_quote)) + _F_panic = jit.Func(goPanic) +) + +func (self *_Assembler) go_panic() { + self.Link(_LB_panic) + self.Emit("MOVQ", _SP_p, jit.Ptr(_SP, 8)) + self.call_go(_F_panic) +} + +func (self *_Assembler) encode_string(doubleQuote bool) { + self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _AX) // MOVQ 8(SP.p), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JZ" , "_str_empty_{n}") // JZ _str_empty_{n} + self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) + self.Sjmp("JNE" , "_str_next_{n}") + self.Emit("MOVQ", jit.Imm(int64(panicNilPointerOfNonEmptyString)), jit.Ptr(_SP, 0)) + self.Sjmp("JMP", _LB_panic) + self.Link("_str_next_{n}") + + /* openning quote, check for double quote */ + if !doubleQuote { + self.check_size_r(_AX, 2) // SIZE $2 + self.add_char('"') // CHAR $'"' + } else { + self.check_size_r(_AX, 6) // SIZE $6 + self.add_long(_IM_open, 3) // TEXT $`"\"` + } + + /* quoting loop */ + self.Emit("XORL", _AX, _AX) // XORL AX, AX + self.Emit("MOVQ", _AX, _VAR_sp) // MOVQ AX, sp + self.Link("_str_loop_{n}") // _str_loop_{n}: + self.save_c() // SAVE $REG_ffi + + /* load the output buffer first, and then input buffer, + * because the parameter registers collide with RP / RL / RC */ + self.Emit("MOVQ", _RC, _CX) // MOVQ RC, CX + self.Emit("SUBQ", _RL, _CX) // SUBQ RL, CX + self.Emit("MOVQ", _CX, _VAR_dn) // MOVQ CX, dn + self.Emit("LEAQ", jit.Sib(_RP, _RL, 1, 0), _DX) // LEAQ (RP)(RL), DX + self.Emit("LEAQ", _VAR_dn, _CX) // LEAQ dn, CX + self.Emit("MOVQ", _VAR_sp, _AX) // MOVQ sp, AX + self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _DI) // MOVQ (SP.p), DI + self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _SI) // MOVQ 8(SP.p), SI + self.Emit("ADDQ", _AX, _DI) // ADDQ AX, DI + self.Emit("SUBQ", _AX, _SI) // SUBQ AX, SI + + /* set the flags based on `doubleQuote` */ + if !doubleQuote { + self.Emit("XORL", _R8, _R8) // XORL R8, R8 + } else { + self.Emit("MOVL", jit.Imm(types.F_DOUBLE_UNQUOTE), _R8) // MOVL ${types.F_DOUBLE_UNQUOTE}, R8 + } + + /* call the native quoter */ + self.call_c(_F_quote) // CALL quote + self.Emit("ADDQ" , _VAR_dn, _RL) // ADDQ dn, RL + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , "_str_space_{n}") // JS _str_space_{n} + + /* close the string, check for double quote */ + if !doubleQuote { + self.check_size(1) // SIZE $1 + self.add_char('"') // CHAR $'"' + self.Sjmp("JMP", "_str_end_{n}") // JMP _str_end_{n} + } else { + self.check_size(3) // SIZE $3 + self.add_text("\\\"\"") // TEXT $'\""' + self.Sjmp("JMP", "_str_end_{n}") // JMP _str_end_{n} + } + + /* not enough space to contain the quoted string */ + self.Link("_str_space_{n}") // _str_space_{n}: + self.Emit("NOTQ", _AX) // NOTQ AX + self.Emit("ADDQ", _AX, _VAR_sp) // ADDQ AX, sp + self.Emit("LEAQ", jit.Sib(_RC, _RC, 1, 0), _AX) // LEAQ (RC)(RC), AX + self.slice_grow_ax("_str_loop_{n}") // GROW _str_loop_{n} + + /* empty string, check for double quote */ + if !doubleQuote { + self.Link("_str_empty_{n}") // _str_empty_{n}: + self.check_size(2) // SIZE $2 + self.add_text("\"\"") // TEXT $'""' + self.Link("_str_end_{n}") // _str_end_{n}: + } else { + self.Link("_str_empty_{n}") // _str_empty_{n}: + self.check_size(6) // SIZE $6 + self.add_text("\"\\\"\\\"\"") // TEXT $'"\"\""' + self.Link("_str_end_{n}") // _str_end_{n}: + } +} + +/** OpCode Assembler Functions **/ + +var ( + _T_json_Marshaler = rt.UnpackType(jsonMarshalerType) + _T_encoding_TextMarshaler = rt.UnpackType(encodingTextMarshalerType) +) + +var ( + _F_f64toa = jit.Imm(int64(native.S_f64toa)) + _F_f32toa = jit.Imm(int64(native.S_f32toa)) + _F_i64toa = jit.Imm(int64(native.S_i64toa)) + _F_u64toa = jit.Imm(int64(native.S_u64toa)) + _F_b64encode = jit.Imm(int64(_subr__b64encode)) +) + +var ( + _F_memmove = jit.Func(memmove) + _F_error_number = jit.Func(error_number) + _F_isValidNumber = jit.Func(isValidNumber) +) + +var ( + _F_iteratorStop = jit.Func(iteratorStop) + _F_iteratorNext = jit.Func(iteratorNext) + _F_iteratorStart = jit.Func(iteratorStart) +) + +var ( + _F_encodeTypedPointer obj.Addr + _F_encodeJsonMarshaler obj.Addr + _F_encodeTextMarshaler obj.Addr +) + +const ( + _MODE_AVX2 = 1 << 2 +) + +func init() { + _F_encodeTypedPointer = jit.Func(encodeTypedPointer) + _F_encodeJsonMarshaler = jit.Func(encodeJsonMarshaler) + _F_encodeTextMarshaler = jit.Func(encodeTextMarshaler) +} + +func (self *_Assembler) _asm_OP_null(_ *_Instr) { + self.check_size(4) + self.Emit("MOVL", jit.Imm(_IM_null), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'null', (RP)(RL*1) + self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL +} + +func (self *_Assembler) _asm_OP_empty_arr(_ *_Instr) { + self.Emit("BTQ", jit.Imm(int64(bitNoNullSliceOrMap)), _ARG_fv) + self.Sjmp("JC", "_empty_arr_{n}") + self._asm_OP_null(nil) + self.Sjmp("JMP", "_empty_arr_end_{n}") + self.Link("_empty_arr_{n}") + self.check_size(2) + self.Emit("MOVW", jit.Imm(_IM_array), jit.Sib(_RP, _RL, 1, 0)) + self.Emit("ADDQ", jit.Imm(2), _RL) + self.Link("_empty_arr_end_{n}") +} + +func (self *_Assembler) _asm_OP_empty_obj(_ *_Instr) { + self.Emit("BTQ", jit.Imm(int64(bitNoNullSliceOrMap)), _ARG_fv) + self.Sjmp("JC", "_empty_obj_{n}") + self._asm_OP_null(nil) + self.Sjmp("JMP", "_empty_obj_end_{n}") + self.Link("_empty_obj_{n}") + self.check_size(2) + self.Emit("MOVW", jit.Imm(_IM_object), jit.Sib(_RP, _RL, 1, 0)) + self.Emit("ADDQ", jit.Imm(2), _RL) + self.Link("_empty_obj_end_{n}") +} + +func (self *_Assembler) _asm_OP_bool(_ *_Instr) { + self.Emit("CMPB", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPB (SP.p), $0 + self.Sjmp("JE" , "_false_{n}") // JE _false_{n} + self.check_size(4) // SIZE $4 + self.Emit("MOVL", jit.Imm(_IM_true), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'true', (RP)(RL*1) + self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL + self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} + self.Link("_false_{n}") // _false_{n}: + self.check_size(5) // SIZE $5 + self.Emit("MOVL", jit.Imm(_IM_fals), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'fals', (RP)(RL*1) + self.Emit("MOVB", jit.Imm('e'), jit.Sib(_RP, _RL, 1, 4)) // MOVB $'e', 4(RP)(RL*1) + self.Emit("ADDQ", jit.Imm(5), _RL) // ADDQ $5, RL + self.Link("_end_{n}") // _end_{n}: +} + +func (self *_Assembler) _asm_OP_i8(_ *_Instr) { + self.store_int(4, _F_i64toa, "MOVBQSX") +} + +func (self *_Assembler) _asm_OP_i16(_ *_Instr) { + self.store_int(6, _F_i64toa, "MOVWQSX") +} + +func (self *_Assembler) _asm_OP_i32(_ *_Instr) { + self.store_int(17, _F_i64toa, "MOVLQSX") +} + +func (self *_Assembler) _asm_OP_i64(_ *_Instr) { + self.store_int(21, _F_i64toa, "MOVQ") +} + +func (self *_Assembler) _asm_OP_u8(_ *_Instr) { + self.store_int(3, _F_u64toa, "MOVBQZX") +} + +func (self *_Assembler) _asm_OP_u16(_ *_Instr) { + self.store_int(5, _F_u64toa, "MOVWQZX") +} + +func (self *_Assembler) _asm_OP_u32(_ *_Instr) { + self.store_int(16, _F_u64toa, "MOVLQZX") +} + +func (self *_Assembler) _asm_OP_u64(_ *_Instr) { + self.store_int(20, _F_u64toa, "MOVQ") +} + +func (self *_Assembler) _asm_OP_f32(_ *_Instr) { + self.check_size(32) + self.Emit("MOVL" , jit.Ptr(_SP_p, 0), _AX) // MOVL (SP.p), AX + self.Emit("ANDL" , jit.Imm(_FM_exp32), _AX) // ANDL $_FM_exp32, AX + self.Emit("XORL" , jit.Imm(_FM_exp32), _AX) // XORL $_FM_exp32, AX + self.Sjmp("JZ" , _LB_error_nan_or_infinite) // JZ _error_nan_or_infinite + self.save_c() // SAVE $C_regs + self.rbuf_di() // MOVQ RP, DI + self.Emit("MOVSS" , jit.Ptr(_SP_p, 0), _X0) // MOVSS (SP.p), X0 + self.call_c(_F_f32toa) // CALL_C f64toa + self.Emit("ADDQ" , _AX, _RL) // ADDQ AX, RL +} + +func (self *_Assembler) _asm_OP_f64(_ *_Instr) { + self.check_size(32) + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("MOVQ" , jit.Imm(_FM_exp64), _CX) // MOVQ $_FM_exp64, CX + self.Emit("ANDQ" , _CX, _AX) // ANDQ CX, AX + self.Emit("XORQ" , _CX, _AX) // XORQ CX, AX + self.Sjmp("JZ" , _LB_error_nan_or_infinite) // JZ _error_nan_or_infinite + self.save_c() // SAVE $C_regs + self.rbuf_di() // MOVQ RP, DI + self.Emit("MOVSD" , jit.Ptr(_SP_p, 0), _X0) // MOVSD (SP.p), X0 + self.call_c(_F_f64toa) // CALL_C f64toa + self.Emit("ADDQ" , _AX, _RL) // ADDQ AX, RL +} + +func (self *_Assembler) _asm_OP_str(_ *_Instr) { + self.encode_string(false) +} + +func (self *_Assembler) _asm_OP_bin(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _AX) // MOVQ 8(SP.p), AX + self.Emit("ADDQ", jit.Imm(2), _AX) // ADDQ $2, AX + self.Emit("MOVQ", jit.Imm(_IM_mulv), _CX) // MOVQ $_MF_mulv, CX + self.Emit("MOVQ", _DX, _R8) // MOVQ DX, R8 + self.From("MULQ", _CX) // MULQ CX + self.Emit("LEAQ", jit.Sib(_DX, _DX, 1, 1), _AX) // LEAQ 1(DX)(DX), AX + self.Emit("ORQ" , jit.Imm(2), _AX) // ORQ $2, AX + self.Emit("MOVQ", _R8, _DX) // MOVQ R8, DX + self.check_size_r(_AX, 0) // SIZE AX + self.add_char('"') // CHAR $'"' + self.save_c() // SAVE $REG_ffi + self.prep_buffer_c() // MOVE {buf}, DI + self.Emit("MOVQ", _SP_p, _SI) // MOVQ SP.p, SI + + /* check for AVX2 support */ + if !cpu.HasAVX2 { + self.Emit("XORL", _DX, _DX) // XORL DX, DX + } else { + self.Emit("MOVL", jit.Imm(_MODE_AVX2), _DX) // MOVL $_MODE_AVX2, DX + } + + /* call the encoder */ + self.call_c(_F_b64encode) // CALL b64encode + self.load_buffer() // LOAD {buf} + self.add_char('"') // CHAR $'"' +} + +func (self *_Assembler) _asm_OP_quote(_ *_Instr) { + self.encode_string(true) +} + +func (self *_Assembler) _asm_OP_number(_ *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _CX) // MOVQ (SP.p), CX + self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX + self.Sjmp("JZ" , "_empty_{n}") // JZ _empty_{n} + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNZ" , "_number_next_{n}") + self.Emit("MOVQ", jit.Imm(int64(panicNilPointerOfNonEmptyString)), jit.Ptr(_SP, 0)) + self.Sjmp("JMP", _LB_panic) + self.Link("_number_next_{n}") + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) + self.call_go(_F_isValidNumber) // CALL_GO isValidNumber + self.Emit("CMPB" , jit.Ptr(_SP, 16), jit.Imm(0)) // CMPB 16(SP), $0 + self.Sjmp("JE" , _LB_error_invalid_number) // JE _error_invalid_number + self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _AX) // MOVQ 8(SP.p), AX + self.check_size_r(_AX, 0) // SIZE AX + self.Emit("LEAQ" , jit.Sib(_RP, _RL, 1, 0), _AX) // LEAQ (RP)(RL), AX + self.Emit("ADDQ" , jit.Ptr(_SP_p, 8), _RL) // ADDQ 8(SP.p), RL + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVOU", jit.Ptr(_SP_p, 0), _X0) // MOVOU (SP.p), X0 + self.Emit("MOVOU", _X0, jit.Ptr(_SP, 8)) // MOVOU X0, 8(SP) + self.call_go(_F_memmove) // CALL_GO memmove + self.Sjmp("JMP" , "_done_{n}") // JMP _done_{n} + self.Link("_empty_{n}") // _empty_{n}: + self.check_size(1) // SIZE $1 + self.add_char('0') // CHAR $'0' + self.Link("_done_{n}") // _done_{n}: +} + +func (self *_Assembler) _asm_OP_eface(_ *_Instr) { + self.prep_buffer() // MOVE {buf}, (SP)s + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) + self.Emit("LEAQ" , jit.Ptr(_SP_p, 8), _AX) // LEAQ 8(SP.p), AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) + self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 24)) // MOVQ ST, 24(SP) + self.Emit("MOVQ" , _ARG_fv, _AX) // MOVQ fv, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 32)) // MOVQ AX, 32(SP) + self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _ET) // MOVQ 40(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 48), _EP) // MOVQ 48(SP), EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error +} + +func (self *_Assembler) _asm_OP_iface(_ *_Instr) { + self.prep_buffer() // MOVE {buf}, (SP) + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("MOVQ" , jit.Ptr(_AX, 8), _AX) // MOVQ 8(AX), AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) + self.Emit("LEAQ" , jit.Ptr(_SP_p, 8), _AX) // LEAQ 8(SP.p), AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) + self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 24)) // MOVQ ST, 24(SP) + self.Emit("MOVQ" , _ARG_fv, _AX) // MOVQ fv, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 32)) // MOVQ AX, 32(SP) + self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _ET) // MOVQ 40(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 48), _EP) // MOVQ 48(SP), EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error +} + +func (self *_Assembler) _asm_OP_byte(p *_Instr) { + self.check_size(1) + self.Emit("MOVB", jit.Imm(p.i64()), jit.Sib(_RP, _RL, 1, 0)) // MOVL p.vi(), (RP)(RL*1) + self.Emit("ADDQ", jit.Imm(1), _RL) // ADDQ $1, RL +} + +func (self *_Assembler) _asm_OP_text(p *_Instr) { + self.check_size(len(p.vs())) // SIZE ${len(p.vs())} + self.add_text(p.vs()) // TEXT ${p.vs()} +} + +func (self *_Assembler) _asm_OP_deref(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _SP_p) // MOVQ (SP.p), SP.p +} + +func (self *_Assembler) _asm_OP_index(p *_Instr) { + self.Emit("MOVQ", jit.Imm(p.i64()), _AX) // MOVQ $p.vi(), AX + self.Emit("ADDQ", _AX, _SP_p) // ADDQ AX, SP.p +} + +func (self *_Assembler) _asm_OP_load(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, -24), _SP_x) // MOVQ -24(ST)(AX), SP.x + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, -8), _SP_p) // MOVQ -8(ST)(AX), SP.p + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _SP_q) // MOVQ (ST)(AX), SP.q +} + +func (self *_Assembler) _asm_OP_save(_ *_Instr) { + self.save_state() +} + +func (self *_Assembler) _asm_OP_drop(_ *_Instr) { + self.drop_state(_StateSize) +} + +func (self *_Assembler) _asm_OP_drop_2(_ *_Instr) { + self.drop_state(_StateSize * 2) // DROP $(_StateSize * 2) + self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 56)) // MOVOU X0, 56(ST)(AX) +} + +func (self *_Assembler) _asm_OP_recurse(p *_Instr) { + self.prep_buffer() // MOVE {buf}, (SP) + vt, pv := p.vp() + self.Emit("MOVQ", jit.Type(vt), _AX) // MOVQ $(type(p.vt())), AX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) + + /* check for indirection */ + if !rt.UnpackType(vt).Indirect() { + self.Emit("MOVQ", _SP_p, _AX) // MOVQ SP.p, AX + } else { + self.Emit("MOVQ", _SP_p, _VAR_vp) // MOVQ SP.p, 48(SP) + self.Emit("LEAQ", _VAR_vp, _AX) // LEAQ 48(SP), AX + } + + /* call the encoder */ + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) + self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 24)) // MOVQ ST, 24(SP) + self.Emit("MOVQ" , _ARG_fv, _AX) // MOVQ fv, AX + if pv { + self.Emit("BTCQ", jit.Imm(bitPointerValue), _AX) // BTCQ $1, AX + } + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 32)) // MOVQ AX, 32(SP) + self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _ET) // MOVQ 40(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 48), _EP) // MOVQ 48(SP), EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error +} + +func (self *_Assembler) _asm_OP_is_nil(p *_Instr) { + self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPQ (SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_nil_p1(p *_Instr) { + self.Emit("CMPQ", jit.Ptr(_SP_p, 8), jit.Imm(0)) // CMPQ 8(SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_zero_1(p *_Instr) { + self.Emit("CMPB", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPB (SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_zero_2(p *_Instr) { + self.Emit("CMPW", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPW (SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_zero_4(p *_Instr) { + self.Emit("CMPL", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPL (SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_zero_8(p *_Instr) { + self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPQ (SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_zero_map(p *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Xjmp("JZ" , p.vi()) // JZ p.vi() + self.Emit("CMPQ" , jit.Ptr(_AX, 0), jit.Imm(0)) // CMPQ (AX), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_goto(p *_Instr) { + self.Xjmp("JMP", p.vi()) +} + +func (self *_Assembler) _asm_OP_map_iter(p *_Instr) { + self.Emit("MOVQ" , jit.Type(p.vt()), _AX) // MOVQ $p.vt(), AX + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _CX) // MOVQ (SP.p), CX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) + self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) + self.Emit("MOVQ" , _ARG_fv, _AX) // MOVQ fv, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) + self.call_go(_F_iteratorStart) // CALL_GO iteratorStart + self.Emit("MOVQ" , jit.Ptr(_SP, 24), _SP_q) // MOVQ 24(SP), SP.q + self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET + self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error +} + +func (self *_Assembler) _asm_OP_map_stop(_ *_Instr) { + self.Emit("MOVQ", _SP_q, jit.Ptr(_SP, 0)) // MOVQ SP.q, 0(SP) + self.call_go(_F_iteratorStop) // CALL_GO iteratorStop + self.Emit("XORL", _SP_q, _SP_q) // XORL SP.q, SP.q +} + +func (self *_Assembler) _asm_OP_map_check_key(p *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_SP_q, 0), _SP_p) // MOVQ (SP.q), SP.p + self.Emit("TESTQ", _SP_p, _SP_p) // TESTQ SP.p, SP.p + self.Xjmp("JZ" , p.vi()) // JNZ p.vi() +} + +func (self *_Assembler) _asm_OP_map_write_key(p *_Instr) { + self.Emit("BTQ", jit.Imm(bitSortMapKeys), _ARG_fv) // BTQ ${SortMapKeys}, fv + self.Sjmp("JNC", "_unordered_key_{n}") // JNC _unordered_key_{n} + self.encode_string(false) // STR $false + self.Xjmp("JMP", p.vi()) // JMP ${p.vi()} + self.Link("_unordered_key_{n}") // _unordered_key_{n}: +} + +func (self *_Assembler) _asm_OP_map_value_next(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_SP_q, 8), _SP_p) // MOVQ 8(SP.q), SP.p + self.Emit("MOVQ", _SP_q, jit.Ptr(_SP, 0)) // MOVQ SP.q, (SP) + self.call_go(_F_iteratorNext) // CALL_GO iteratorNext +} + +func (self *_Assembler) _asm_OP_slice_len(_ *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _SP_x) // MOVQ 8(SP.p), SP.x + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _SP_p) // MOVQ (SP.p), SP.p + self.Emit("ORQ" , jit.Imm(1 << _S_init), _SP_f) // ORQ $(1<<_S_init), SP.f +} + +func (self *_Assembler) _asm_OP_slice_next(p *_Instr) { + self.Emit("TESTQ" , _SP_x, _SP_x) // TESTQ SP.x, SP.x + self.Xjmp("JZ" , p.vi()) // JZ p.vi() + self.Emit("SUBQ" , jit.Imm(1), _SP_x) // SUBQ $1, SP.x + self.Emit("BTRQ" , jit.Imm(_S_init), _SP_f) // BTRQ $_S_init, SP.f + self.Emit("LEAQ" , jit.Ptr(_SP_p, int64(p.vlen())), _AX) // LEAQ $(p.vlen())(SP.p), AX + self.Emit("CMOVQCC", _AX, _SP_p) // CMOVQNC AX, SP.p +} + +func (self *_Assembler) _asm_OP_marshal(p *_Instr) { + self.call_marshaler(_F_encodeJsonMarshaler, _T_json_Marshaler, p.vt()) +} + +func (self *_Assembler) _asm_OP_marshal_p(p *_Instr) { + if p.vk() != reflect.Ptr { + panic("marshal_p: invalid type") + } else { + self.call_marshaler_v(_F_encodeJsonMarshaler, _T_json_Marshaler, p.vt(), false) + } +} + +func (self *_Assembler) _asm_OP_marshal_text(p *_Instr) { + self.call_marshaler(_F_encodeTextMarshaler, _T_encoding_TextMarshaler, p.vt()) +} + +func (self *_Assembler) _asm_OP_marshal_text_p(p *_Instr) { + if p.vk() != reflect.Ptr { + panic("marshal_text_p: invalid type") + } else { + self.call_marshaler_v(_F_encodeTextMarshaler, _T_encoding_TextMarshaler, p.vt(), false) + } +} + +func (self *_Assembler) _asm_OP_cond_set(_ *_Instr) { + self.Emit("ORQ", jit.Imm(1 << _S_cond), _SP_f) // ORQ $(1<<_S_cond), SP.f +} + +func (self *_Assembler) _asm_OP_cond_testc(p *_Instr) { + self.Emit("BTRQ", jit.Imm(_S_cond), _SP_f) // BTRQ $_S_cond, SP.f + self.Xjmp("JC" , p.vi()) +} + +func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { + self.Emit("MOVQ", jit.Imm(int64(p2.op())), jit.Ptr(_SP, 16))// MOVQ $(p2.op()), 16(SP) + self.Emit("MOVQ", jit.Imm(int64(p1.op())), jit.Ptr(_SP, 8)) // MOVQ $(p1.op()), 8(SP) + self.Emit("MOVQ", jit.Imm(int64(i)), jit.Ptr(_SP, 0)) // MOVQ $(i), (SP) + self.call_go(_F_println) +} + +var ( + _V_writeBarrier = jit.Imm(int64(_runtime_writeBarrier)) + + _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) +) + +func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _R10) + self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, _AX) + self.xsave(_DI) + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R10) + self.xload(_DI) + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/encoder/assembler_amd64_go117.go b/vendor/github.com/bytedance/sonic/encoder/assembler_amd64_go117.go new file mode 100644 index 0000000000..8cd83e8680 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/encoder/assembler_amd64_go117.go @@ -0,0 +1,1201 @@ +//go:build go1.17 && !go1.21 +// +build go1.17,!go1.21 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package encoder + +import ( + `fmt` + `reflect` + `strconv` + `unsafe` + + `github.com/bytedance/sonic/internal/cpu` + `github.com/bytedance/sonic/internal/jit` + `github.com/bytedance/sonic/internal/native/types` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` + + `github.com/bytedance/sonic/internal/native` + `github.com/bytedance/sonic/internal/rt` +) + +/** Register Allocations + * + * State Registers: + * + * %rbx : stack base + * %rdi : result pointer + * %rsi : result length + * %rdx : result capacity + * %r12 : sp->p + * %r13 : sp->q + * %r14 : sp->x + * %r15 : sp->f + * + * Error Registers: + * + * %r10 : error type register + * %r11 : error pointer register + */ + +/** Function Prototype & Stack Map + * + * func (buf *[]byte, p unsafe.Pointer, sb *_Stack, fv uint64) (err error) + * + * buf : (FP) + * p : 8(FP) + * sb : 16(FP) + * fv : 24(FP) + * err.vt : 32(FP) + * err.vp : 40(FP) + */ + +const ( + _S_cond = iota + _S_init +) + +const ( + _FP_args = 32 // 32 bytes for spill registers of arguments + _FP_fargs = 40 // 40 bytes for passing arguments to other Go functions + _FP_saves = 64 // 64 bytes for saving the registers before CALL instructions + _FP_locals = 24 // 24 bytes for local variables +) + +const ( + _FP_loffs = _FP_fargs + _FP_saves + _FP_offs = _FP_loffs + _FP_locals + // _FP_offs = _FP_loffs + _FP_locals + _FP_debug + _FP_size = _FP_offs + 8 // 8 bytes for the parent frame pointer + _FP_base = _FP_size + 8 // 8 bytes for the return address +) + +const ( + _FM_exp32 = 0x7f800000 + _FM_exp64 = 0x7ff0000000000000 +) + +const ( + _IM_null = 0x6c6c756e // 'null' + _IM_true = 0x65757274 // 'true' + _IM_fals = 0x736c6166 // 'fals' ('false' without the 'e') + _IM_open = 0x00225c22 // '"\"∅' + _IM_array = 0x5d5b // '[]' + _IM_object = 0x7d7b // '{}' + _IM_mulv = -0x5555555555555555 +) + +const ( + _LB_more_space = "_more_space" + _LB_more_space_return = "_more_space_return_" +) + +const ( + _LB_error = "_error" + _LB_error_too_deep = "_error_too_deep" + _LB_error_invalid_number = "_error_invalid_number" + _LB_error_nan_or_infinite = "_error_nan_or_infinite" + _LB_panic = "_panic" +) + +var ( + _AX = jit.Reg("AX") + _BX = jit.Reg("BX") + _CX = jit.Reg("CX") + _DX = jit.Reg("DX") + _DI = jit.Reg("DI") + _SI = jit.Reg("SI") + _BP = jit.Reg("BP") + _SP = jit.Reg("SP") + _R8 = jit.Reg("R8") + _R9 = jit.Reg("R9") +) + +var ( + _X0 = jit.Reg("X0") + _Y0 = jit.Reg("Y0") +) + +var ( + _ST = jit.Reg("R15") // can't use R14 since it's always scratched by Go... + _RP = jit.Reg("DI") + _RL = jit.Reg("SI") + _RC = jit.Reg("DX") +) + +var ( + _LR = jit.Reg("R9") + _ET = jit.Reg("AX") + _EP = jit.Reg("BX") +) + +var ( + _SP_p = jit.Reg("R10") // saved on BX when call_c + _SP_q = jit.Reg("R11") // saved on BP when call_c + _SP_x = jit.Reg("R12") + _SP_f = jit.Reg("R13") +) + +var ( + _ARG_rb = jit.Ptr(_SP, _FP_base) + _ARG_vp = jit.Ptr(_SP, _FP_base + 8) + _ARG_sb = jit.Ptr(_SP, _FP_base + 16) + _ARG_fv = jit.Ptr(_SP, _FP_base + 24) +) + +var ( + _RET_et = _ET + _RET_ep = _EP +) + +var ( + _VAR_sp = jit.Ptr(_SP, _FP_fargs + _FP_saves) + _VAR_dn = jit.Ptr(_SP, _FP_fargs + _FP_saves + 8) + _VAR_vp = jit.Ptr(_SP, _FP_fargs + _FP_saves + 16) +) + +var ( + _REG_ffi = []obj.Addr{ _RP, _RL, _RC} + _REG_b64 = []obj.Addr{_SP_p, _SP_q} + + _REG_all = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _RP, _RL, _RC} + _REG_ms = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _LR} + _REG_enc = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _RL} +) + +type _Assembler struct { + jit.BaseAssembler + p _Program + x int + name string +} + +func newAssembler(p _Program) *_Assembler { + return new(_Assembler).Init(p) +} + +/** Assembler Interface **/ + +func (self *_Assembler) Load() _Encoder { + return ptoenc(self.BaseAssembler.Load("encode_"+self.name, _FP_size, _FP_args, argPtrs, localPtrs)) +} + +func (self *_Assembler) Init(p _Program) *_Assembler { + self.p = p + self.BaseAssembler.Init(self.compile) + return self +} + +func (self *_Assembler) compile() { + self.prologue() + self.instrs() + self.epilogue() + self.builtins() +} + +/** Assembler Stages **/ + +var _OpFuncTab = [256]func(*_Assembler, *_Instr) { + _OP_null : (*_Assembler)._asm_OP_null, + _OP_empty_arr : (*_Assembler)._asm_OP_empty_arr, + _OP_empty_obj : (*_Assembler)._asm_OP_empty_obj, + _OP_bool : (*_Assembler)._asm_OP_bool, + _OP_i8 : (*_Assembler)._asm_OP_i8, + _OP_i16 : (*_Assembler)._asm_OP_i16, + _OP_i32 : (*_Assembler)._asm_OP_i32, + _OP_i64 : (*_Assembler)._asm_OP_i64, + _OP_u8 : (*_Assembler)._asm_OP_u8, + _OP_u16 : (*_Assembler)._asm_OP_u16, + _OP_u32 : (*_Assembler)._asm_OP_u32, + _OP_u64 : (*_Assembler)._asm_OP_u64, + _OP_f32 : (*_Assembler)._asm_OP_f32, + _OP_f64 : (*_Assembler)._asm_OP_f64, + _OP_str : (*_Assembler)._asm_OP_str, + _OP_bin : (*_Assembler)._asm_OP_bin, + _OP_quote : (*_Assembler)._asm_OP_quote, + _OP_number : (*_Assembler)._asm_OP_number, + _OP_eface : (*_Assembler)._asm_OP_eface, + _OP_iface : (*_Assembler)._asm_OP_iface, + _OP_byte : (*_Assembler)._asm_OP_byte, + _OP_text : (*_Assembler)._asm_OP_text, + _OP_deref : (*_Assembler)._asm_OP_deref, + _OP_index : (*_Assembler)._asm_OP_index, + _OP_load : (*_Assembler)._asm_OP_load, + _OP_save : (*_Assembler)._asm_OP_save, + _OP_drop : (*_Assembler)._asm_OP_drop, + _OP_drop_2 : (*_Assembler)._asm_OP_drop_2, + _OP_recurse : (*_Assembler)._asm_OP_recurse, + _OP_is_nil : (*_Assembler)._asm_OP_is_nil, + _OP_is_nil_p1 : (*_Assembler)._asm_OP_is_nil_p1, + _OP_is_zero_1 : (*_Assembler)._asm_OP_is_zero_1, + _OP_is_zero_2 : (*_Assembler)._asm_OP_is_zero_2, + _OP_is_zero_4 : (*_Assembler)._asm_OP_is_zero_4, + _OP_is_zero_8 : (*_Assembler)._asm_OP_is_zero_8, + _OP_is_zero_map : (*_Assembler)._asm_OP_is_zero_map, + _OP_goto : (*_Assembler)._asm_OP_goto, + _OP_map_iter : (*_Assembler)._asm_OP_map_iter, + _OP_map_stop : (*_Assembler)._asm_OP_map_stop, + _OP_map_check_key : (*_Assembler)._asm_OP_map_check_key, + _OP_map_write_key : (*_Assembler)._asm_OP_map_write_key, + _OP_map_value_next : (*_Assembler)._asm_OP_map_value_next, + _OP_slice_len : (*_Assembler)._asm_OP_slice_len, + _OP_slice_next : (*_Assembler)._asm_OP_slice_next, + _OP_marshal : (*_Assembler)._asm_OP_marshal, + _OP_marshal_p : (*_Assembler)._asm_OP_marshal_p, + _OP_marshal_text : (*_Assembler)._asm_OP_marshal_text, + _OP_marshal_text_p : (*_Assembler)._asm_OP_marshal_text_p, + _OP_cond_set : (*_Assembler)._asm_OP_cond_set, + _OP_cond_testc : (*_Assembler)._asm_OP_cond_testc, +} + +func (self *_Assembler) instr(v *_Instr) { + if fn := _OpFuncTab[v.op()]; fn != nil { + fn(self, v) + } else { + panic(fmt.Sprintf("invalid opcode: %d", v.op())) + } +} + +func (self *_Assembler) instrs() { + for i, v := range self.p { + self.Mark(i) + self.instr(&v) + self.debug_instr(i, &v) + } +} + +func (self *_Assembler) builtins() { + self.more_space() + self.error_too_deep() + self.error_invalid_number() + self.error_nan_or_infinite() + self.go_panic() +} + +func (self *_Assembler) epilogue() { + self.Mark(len(self.p)) + self.Emit("XORL", _ET, _ET) + self.Emit("XORL", _EP, _EP) + self.Link(_LB_error) + self.Emit("MOVQ", _ARG_rb, _CX) // MOVQ rb<>+0(FP), CX + self.Emit("MOVQ", _RL, jit.Ptr(_CX, 8)) // MOVQ RL, 8(CX) + self.Emit("MOVQ", jit.Imm(0), _ARG_rb) // MOVQ AX, rb<>+0(FP) + self.Emit("MOVQ", jit.Imm(0), _ARG_vp) // MOVQ BX, vp<>+8(FP) + self.Emit("MOVQ", jit.Imm(0), _ARG_sb) // MOVQ CX, sb<>+16(FP) + self.Emit("MOVQ", jit.Ptr(_SP, _FP_offs), _BP) // MOVQ _FP_offs(SP), BP + self.Emit("ADDQ", jit.Imm(_FP_size), _SP) // ADDQ $_FP_size, SP + self.Emit("RET") // RET +} + +func (self *_Assembler) prologue() { + self.Emit("SUBQ", jit.Imm(_FP_size), _SP) // SUBQ $_FP_size, SP + self.Emit("MOVQ", _BP, jit.Ptr(_SP, _FP_offs)) // MOVQ BP, _FP_offs(SP) + self.Emit("LEAQ", jit.Ptr(_SP, _FP_offs), _BP) // LEAQ _FP_offs(SP), BP + self.Emit("MOVQ", _AX, _ARG_rb) // MOVQ AX, rb<>+0(FP) + self.Emit("MOVQ", _BX, _ARG_vp) // MOVQ BX, vp<>+8(FP) + self.Emit("MOVQ", _CX, _ARG_sb) // MOVQ CX, sb<>+16(FP) + self.Emit("MOVQ", _DI, _ARG_fv) // MOVQ DI, rb<>+24(FP) + self.Emit("MOVQ", jit.Ptr(_AX, 0), _RP) // MOVQ (AX) , DI + self.Emit("MOVQ", jit.Ptr(_AX, 8), _RL) // MOVQ 8(AX) , SI + self.Emit("MOVQ", jit.Ptr(_AX, 16), _RC) // MOVQ 16(AX), DX + self.Emit("MOVQ", _BX, _SP_p) // MOVQ BX, R10 + self.Emit("MOVQ", _CX, _ST) // MOVQ CX, R8 + self.Emit("XORL", _SP_x, _SP_x) // XORL R10, R12 + self.Emit("XORL", _SP_f, _SP_f) // XORL R11, R13 + self.Emit("XORL", _SP_q, _SP_q) // XORL R13, R11 +} + +/** Assembler Inline Functions **/ + +func (self *_Assembler) xsave(reg ...obj.Addr) { + for i, v := range reg { + if i > _FP_saves / 8 - 1 { + panic("too many registers to save") + } else { + self.Emit("MOVQ", v, jit.Ptr(_SP, _FP_fargs + int64(i) * 8)) + } + } +} + +func (self *_Assembler) xload(reg ...obj.Addr) { + for i, v := range reg { + if i > _FP_saves / 8 - 1 { + panic("too many registers to load") + } else { + self.Emit("MOVQ", jit.Ptr(_SP, _FP_fargs + int64(i) * 8), v) + } + } +} + +func (self *_Assembler) rbuf_di() { + if _RP.Reg != x86.REG_DI { + panic("register allocation messed up: RP != DI") + } else { + self.Emit("ADDQ", _RL, _RP) + } +} + +func (self *_Assembler) store_int(nd int, fn obj.Addr, ins string) { + self.check_size(nd) + self.save_c() // SAVE $C_regs + self.rbuf_di() // MOVQ RP, DI + self.Emit(ins, jit.Ptr(_SP_p, 0), _SI) // $ins (SP.p), SI + self.call_c(fn) // CALL_C $fn + self.Emit("ADDQ", _AX, _RL) // ADDQ AX, RL +} + +func (self *_Assembler) store_str(s string) { + i := 0 + m := rt.Str2Mem(s) + + /* 8-byte stores */ + for i <= len(m) - 8 { + self.Emit("MOVQ", jit.Imm(rt.Get64(m[i:])), _AX) // MOVQ $s[i:], AX + self.Emit("MOVQ", _AX, jit.Sib(_RP, _RL, 1, int64(i))) // MOVQ AX, i(RP)(RL) + i += 8 + } + + /* 4-byte stores */ + if i <= len(m) - 4 { + self.Emit("MOVL", jit.Imm(int64(rt.Get32(m[i:]))), jit.Sib(_RP, _RL, 1, int64(i))) // MOVL $s[i:], i(RP)(RL) + i += 4 + } + + /* 2-byte stores */ + if i <= len(m) - 2 { + self.Emit("MOVW", jit.Imm(int64(rt.Get16(m[i:]))), jit.Sib(_RP, _RL, 1, int64(i))) // MOVW $s[i:], i(RP)(RL) + i += 2 + } + + /* last byte */ + if i < len(m) { + self.Emit("MOVB", jit.Imm(int64(m[i])), jit.Sib(_RP, _RL, 1, int64(i))) // MOVB $s[i:], i(RP)(RL) + } +} + +func (self *_Assembler) check_size(n int) { + self.check_size_rl(jit.Ptr(_RL, int64(n))) +} + +func (self *_Assembler) check_size_r(r obj.Addr, d int) { + self.check_size_rl(jit.Sib(_RL, r, 1, int64(d))) +} + +func (self *_Assembler) check_size_rl(v obj.Addr) { + idx := self.x + key := _LB_more_space_return + strconv.Itoa(idx) + + /* the following code relies on LR == R9 to work */ + if _LR.Reg != x86.REG_R9 { + panic("register allocation messed up: LR != R9") + } + + /* check for buffer capacity */ + self.x++ + self.Emit("LEAQ", v, _AX) // LEAQ $v, AX + self.Emit("CMPQ", _AX, _RC) // CMPQ AX, RC + self.Sjmp("JBE" , key) // JBE _more_space_return_{n} + self.slice_grow_ax(key) // GROW $key + self.Link(key) // _more_space_return_{n}: +} + +func (self *_Assembler) slice_grow_ax(ret string) { + self.Byte(0x4c, 0x8d, 0x0d) // LEAQ ?(PC), R9 + self.Sref(ret, 4) // .... &ret + self.Sjmp("JMP" , _LB_more_space) // JMP _more_space +} + +/** State Stack Helpers **/ + +const ( + _StateSize = int64(unsafe.Sizeof(_State{})) + _StackLimit = _MaxStack * _StateSize +) + +func (self *_Assembler) save_state() { + self.Emit("MOVQ", jit.Ptr(_ST, 0), _CX) // MOVQ (ST), CX + self.Emit("LEAQ", jit.Ptr(_CX, _StateSize), _R9) // LEAQ _StateSize(CX), R9 + self.Emit("CMPQ", _R9, jit.Imm(_StackLimit)) // CMPQ R9, $_StackLimit + self.Sjmp("JAE" , _LB_error_too_deep) // JA _error_too_deep + self.Emit("MOVQ", _SP_x, jit.Sib(_ST, _CX, 1, 8)) // MOVQ SP.x, 8(ST)(CX) + self.Emit("MOVQ", _SP_f, jit.Sib(_ST, _CX, 1, 16)) // MOVQ SP.f, 16(ST)(CX) + self.WriteRecNotAX(0, _SP_p, jit.Sib(_ST, _CX, 1, 24)) // MOVQ SP.p, 24(ST)(CX) + self.WriteRecNotAX(1, _SP_q, jit.Sib(_ST, _CX, 1, 32)) // MOVQ SP.q, 32(ST)(CX) + self.Emit("MOVQ", _R9, jit.Ptr(_ST, 0)) // MOVQ R9, (ST) +} + +func (self *_Assembler) drop_state(decr int64) { + self.Emit("MOVQ" , jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("SUBQ" , jit.Imm(decr), _AX) // SUBQ $decr, AX + self.Emit("MOVQ" , _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) + self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 8), _SP_x) // MOVQ 8(ST)(AX), SP.x + self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 16), _SP_f) // MOVQ 16(ST)(AX), SP.f + self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 24), _SP_p) // MOVQ 24(ST)(AX), SP.p + self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 32), _SP_q) // MOVQ 32(ST)(AX), SP.q + self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 + self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 8)) // MOVOU X0, 8(ST)(AX) + self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 24)) // MOVOU X0, 24(ST)(AX) +} + +/** Buffer Helpers **/ + +func (self *_Assembler) add_char(ch byte) { + self.Emit("MOVB", jit.Imm(int64(ch)), jit.Sib(_RP, _RL, 1, 0)) // MOVB $ch, (RP)(RL) + self.Emit("ADDQ", jit.Imm(1), _RL) // ADDQ $1, RL +} + +func (self *_Assembler) add_long(ch uint32, n int64) { + self.Emit("MOVL", jit.Imm(int64(ch)), jit.Sib(_RP, _RL, 1, 0)) // MOVL $ch, (RP)(RL) + self.Emit("ADDQ", jit.Imm(n), _RL) // ADDQ $n, RL +} + +func (self *_Assembler) add_text(ss string) { + self.store_str(ss) // TEXT $ss + self.Emit("ADDQ", jit.Imm(int64(len(ss))), _RL) // ADDQ ${len(ss)}, RL +} + +// get *buf at AX +func (self *_Assembler) prep_buffer_AX() { + self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX + self.Emit("MOVQ", _RL, jit.Ptr(_AX, 8)) // MOVQ RL, 8(AX) +} + +func (self *_Assembler) save_buffer() { + self.Emit("MOVQ", _ARG_rb, _CX) // MOVQ rb<>+0(FP), CX + self.Emit("MOVQ", _RP, jit.Ptr(_CX, 0)) // MOVQ RP, (CX) + self.Emit("MOVQ", _RL, jit.Ptr(_CX, 8)) // MOVQ RL, 8(CX) + self.Emit("MOVQ", _RC, jit.Ptr(_CX, 16)) // MOVQ RC, 16(CX) +} + +// get *buf at AX +func (self *_Assembler) load_buffer_AX() { + self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX + self.Emit("MOVQ", jit.Ptr(_AX, 0), _RP) // MOVQ (AX), RP + self.Emit("MOVQ", jit.Ptr(_AX, 8), _RL) // MOVQ 8(AX), RL + self.Emit("MOVQ", jit.Ptr(_AX, 16), _RC) // MOVQ 16(AX), RC +} + +/** Function Interface Helpers **/ + +func (self *_Assembler) call(pc obj.Addr) { + self.Emit("MOVQ", pc, _LR) // MOVQ $pc, AX + self.Rjmp("CALL", _LR) // CALL AX +} + +func (self *_Assembler) save_c() { + self.xsave(_REG_ffi...) // SAVE $REG_ffi +} + +func (self *_Assembler) call_b64(pc obj.Addr) { + self.xsave(_REG_b64...) // SAVE $REG_all + self.call(pc) // CALL $pc + self.xload(_REG_b64...) // LOAD $REG_ffi +} + +func (self *_Assembler) call_c(pc obj.Addr) { + self.Emit("XCHGQ", _SP_p, _BX) + self.Emit("XCHGQ", _SP_q, _BP) + self.call(pc) // CALL $pc + self.xload(_REG_ffi...) // LOAD $REG_ffi + self.Emit("XCHGQ", _SP_p, _BX) + self.Emit("XCHGQ", _SP_q, _BP) +} + +func (self *_Assembler) call_go(pc obj.Addr) { + self.xsave(_REG_all...) // SAVE $REG_all + self.call(pc) // CALL $pc + self.xload(_REG_all...) // LOAD $REG_all +} + +func (self *_Assembler) call_more_space(pc obj.Addr) { + self.xsave(_REG_ms...) // SAVE $REG_all + self.call(pc) // CALL $pc + self.xload(_REG_ms...) // LOAD $REG_all +} + +func (self *_Assembler) call_encoder(pc obj.Addr) { + self.xsave(_REG_enc...) // SAVE $REG_all + self.call(pc) // CALL $pc + self.xload(_REG_enc...) // LOAD $REG_all +} + +func (self *_Assembler) call_marshaler(fn obj.Addr, it *rt.GoType, vt reflect.Type) { + switch vt.Kind() { + case reflect.Interface : self.call_marshaler_i(fn, it) + case reflect.Ptr, reflect.Map : self.call_marshaler_v(fn, it, vt, true) + default : self.call_marshaler_v(fn, it, vt, false) + } +} + +func (self *_Assembler) call_marshaler_i(fn obj.Addr, it *rt.GoType) { + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JZ" , "_null_{n}") // JZ _null_{n} + self.Emit("MOVQ" , _AX, _BX) // MOVQ AX, BX + self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _CX) // MOVQ 8(SP.p), CX + self.Emit("MOVQ" , jit.Gtype(it), _AX) // MOVQ $it, AX + self.call_go(_F_assertI2I) // CALL_GO assertI2I + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JZ" , "_null_{n}") // JZ _null_{n} + self.Emit("MOVQ", _BX, _CX) // MOVQ BX, CX + self.Emit("MOVQ", _AX, _BX) // MOVQ AX, BX + self.prep_buffer_AX() + self.Emit("MOVQ", _ARG_fv, _DI) // MOVQ ARG.fv, DI + self.call_go(fn) // CALL $fn + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error + self.load_buffer_AX() + self.Sjmp("JMP" , "_done_{n}") // JMP _done_{n} + self.Link("_null_{n}") // _null_{n}: + self.check_size(4) // SIZE $4 + self.Emit("MOVL", jit.Imm(_IM_null), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'null', (RP)(RL*1) + self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL + self.Link("_done_{n}") // _done_{n}: +} + +func (self *_Assembler) call_marshaler_v(fn obj.Addr, it *rt.GoType, vt reflect.Type, deref bool) { + self.prep_buffer_AX() // MOVE {buf}, (SP) + self.Emit("MOVQ", jit.Itab(it, vt), _BX) // MOVQ $(itab(it, vt)), BX + + /* dereference the pointer if needed */ + if !deref { + self.Emit("MOVQ", _SP_p, _CX) // MOVQ SP.p, CX + } else { + self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _CX) // MOVQ 0(SP.p), CX + } + + /* call the encoder, and perform error checks */ + self.Emit("MOVQ", _ARG_fv, _DI) // MOVQ ARG.fv, DI + self.call_go(fn) // CALL $fn + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error + self.load_buffer_AX() +} + +/** Builtin: _more_space **/ + +var ( + _T_byte = jit.Type(byteType) + _F_growslice = jit.Func(growslice) +) + +// AX must saving n +func (self *_Assembler) more_space() { + self.Link(_LB_more_space) + self.Emit("MOVQ", _RP, _BX) // MOVQ DI, BX + self.Emit("MOVQ", _RL, _CX) // MOVQ SI, CX + self.Emit("MOVQ", _RC, _DI) // MOVQ DX, DI + self.Emit("MOVQ", _AX, _SI) // MOVQ AX, SI + self.Emit("MOVQ", _T_byte, _AX) // MOVQ $_T_byte, AX + self.call_more_space(_F_growslice) // CALL $pc + self.Emit("MOVQ", _AX, _RP) // MOVQ AX, DI + self.Emit("MOVQ", _BX, _RL) // MOVQ BX, SI + self.Emit("MOVQ", _CX, _RC) // MOVQ CX, DX + self.save_buffer() // SAVE {buf} + self.Rjmp("JMP" , _LR) // JMP LR +} + +/** Builtin Errors **/ + +var ( + _V_ERR_too_deep = jit.Imm(int64(uintptr(unsafe.Pointer(_ERR_too_deep)))) + _V_ERR_nan_or_infinite = jit.Imm(int64(uintptr(unsafe.Pointer(_ERR_nan_or_infinite)))) + _I_json_UnsupportedValueError = jit.Itab(rt.UnpackType(errorType), jsonUnsupportedValueType) +) + +func (self *_Assembler) error_too_deep() { + self.Link(_LB_error_too_deep) + self.Emit("MOVQ", _V_ERR_too_deep, _EP) // MOVQ $_V_ERR_too_deep, EP + self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ $_I_json_UnsupportedValuError, ET + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) error_invalid_number() { + self.Link(_LB_error_invalid_number) + self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _AX) // MOVQ 0(SP), AX + self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _BX) // MOVQ 8(SP), BX + self.call_go(_F_error_number) // CALL_GO error_number + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +func (self *_Assembler) error_nan_or_infinite() { + self.Link(_LB_error_nan_or_infinite) + self.Emit("MOVQ", _V_ERR_nan_or_infinite, _EP) // MOVQ $_V_ERR_nan_or_infinite, EP + self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ $_I_json_UnsupportedValuError, ET + self.Sjmp("JMP" , _LB_error) // JMP _error +} + +/** String Encoding Routine **/ + +var ( + _F_quote = jit.Imm(int64(native.S_quote)) + _F_panic = jit.Func(goPanic) +) + +func (self *_Assembler) go_panic() { + self.Link(_LB_panic) + self.Emit("MOVQ", _SP_p, _BX) + self.call_go(_F_panic) +} + +func (self *_Assembler) encode_string(doubleQuote bool) { + self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _AX) // MOVQ 8(SP.p), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JZ" , "_str_empty_{n}") // JZ _str_empty_{n} + self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) + self.Sjmp("JNE" , "_str_next_{n}") + self.Emit("MOVQ", jit.Imm(int64(panicNilPointerOfNonEmptyString)), _AX) + self.Sjmp("JMP", _LB_panic) + self.Link("_str_next_{n}") + + /* openning quote, check for double quote */ + if !doubleQuote { + self.check_size_r(_AX, 2) // SIZE $2 + self.add_char('"') // CHAR $'"' + } else { + self.check_size_r(_AX, 6) // SIZE $6 + self.add_long(_IM_open, 3) // TEXT $`"\"` + } + + /* quoting loop */ + self.Emit("XORL", _AX, _AX) // XORL AX, AX + self.Emit("MOVQ", _AX, _VAR_sp) // MOVQ AX, sp + self.Link("_str_loop_{n}") // _str_loop_{n}: + self.save_c() // SAVE $REG_ffi + + /* load the output buffer first, and then input buffer, + * because the parameter registers collide with RP / RL / RC */ + self.Emit("MOVQ", _RC, _CX) // MOVQ RC, CX + self.Emit("SUBQ", _RL, _CX) // SUBQ RL, CX + self.Emit("MOVQ", _CX, _VAR_dn) // MOVQ CX, dn + self.Emit("LEAQ", jit.Sib(_RP, _RL, 1, 0), _DX) // LEAQ (RP)(RL), DX + self.Emit("LEAQ", _VAR_dn, _CX) // LEAQ dn, CX + self.Emit("MOVQ", _VAR_sp, _AX) // MOVQ sp, AX + self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _DI) // MOVQ (SP.p), DI + self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _SI) // MOVQ 8(SP.p), SI + self.Emit("ADDQ", _AX, _DI) // ADDQ AX, DI + self.Emit("SUBQ", _AX, _SI) // SUBQ AX, SI + + /* set the flags based on `doubleQuote` */ + if !doubleQuote { + self.Emit("XORL", _R8, _R8) // XORL R8, R8 + } else { + self.Emit("MOVL", jit.Imm(types.F_DOUBLE_UNQUOTE), _R8) // MOVL ${types.F_DOUBLE_UNQUOTE}, R8 + } + + /* call the native quoter */ + self.call_c(_F_quote) // CALL quote + self.Emit("ADDQ" , _VAR_dn, _RL) // ADDQ dn, RL + + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JS" , "_str_space_{n}") // JS _str_space_{n} + + /* close the string, check for double quote */ + if !doubleQuote { + self.check_size(1) // SIZE $1 + self.add_char('"') // CHAR $'"' + self.Sjmp("JMP", "_str_end_{n}") // JMP _str_end_{n} + } else { + self.check_size(3) // SIZE $3 + self.add_text("\\\"\"") // TEXT $'\""' + self.Sjmp("JMP", "_str_end_{n}") // JMP _str_end_{n} + } + + /* not enough space to contain the quoted string */ + self.Link("_str_space_{n}") // _str_space_{n}: + self.Emit("NOTQ", _AX) // NOTQ AX + self.Emit("ADDQ", _AX, _VAR_sp) // ADDQ AX, sp + self.Emit("LEAQ", jit.Sib(_RC, _RC, 1, 0), _AX) // LEAQ (RC)(RC), AX + self.slice_grow_ax("_str_loop_{n}") // GROW _str_loop_{n} + + /* empty string, check for double quote */ + if !doubleQuote { + self.Link("_str_empty_{n}") // _str_empty_{n}: + self.check_size(2) // SIZE $2 + self.add_text("\"\"") // TEXT $'""' + self.Link("_str_end_{n}") // _str_end_{n}: + } else { + self.Link("_str_empty_{n}") // _str_empty_{n}: + self.check_size(6) // SIZE $6 + self.add_text("\"\\\"\\\"\"") // TEXT $'"\"\""' + self.Link("_str_end_{n}") // _str_end_{n}: + } +} + +/** OpCode Assembler Functions **/ + +var ( + _T_json_Marshaler = rt.UnpackType(jsonMarshalerType) + _T_encoding_TextMarshaler = rt.UnpackType(encodingTextMarshalerType) +) + +var ( + _F_f64toa = jit.Imm(int64(native.S_f64toa)) + _F_f32toa = jit.Imm(int64(native.S_f32toa)) + _F_i64toa = jit.Imm(int64(native.S_i64toa)) + _F_u64toa = jit.Imm(int64(native.S_u64toa)) + _F_b64encode = jit.Imm(int64(_subr__b64encode)) +) + +var ( + _F_memmove = jit.Func(memmove) + _F_error_number = jit.Func(error_number) + _F_isValidNumber = jit.Func(isValidNumber) +) + +var ( + _F_iteratorStop = jit.Func(iteratorStop) + _F_iteratorNext = jit.Func(iteratorNext) + _F_iteratorStart = jit.Func(iteratorStart) +) + +var ( + _F_encodeTypedPointer obj.Addr + _F_encodeJsonMarshaler obj.Addr + _F_encodeTextMarshaler obj.Addr +) + +const ( + _MODE_AVX2 = 1 << 2 +) + +func init() { + _F_encodeTypedPointer = jit.Func(encodeTypedPointer) + _F_encodeJsonMarshaler = jit.Func(encodeJsonMarshaler) + _F_encodeTextMarshaler = jit.Func(encodeTextMarshaler) +} + +func (self *_Assembler) _asm_OP_null(_ *_Instr) { + self.check_size(4) + self.Emit("MOVL", jit.Imm(_IM_null), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'null', (RP)(RL*1) + self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL +} + +func (self *_Assembler) _asm_OP_empty_arr(_ *_Instr) { + self.Emit("BTQ", jit.Imm(int64(bitNoNullSliceOrMap)), _ARG_fv) + self.Sjmp("JC", "_empty_arr_{n}") + self._asm_OP_null(nil) + self.Sjmp("JMP", "_empty_arr_end_{n}") + self.Link("_empty_arr_{n}") + self.check_size(2) + self.Emit("MOVW", jit.Imm(_IM_array), jit.Sib(_RP, _RL, 1, 0)) + self.Emit("ADDQ", jit.Imm(2), _RL) + self.Link("_empty_arr_end_{n}") +} + +func (self *_Assembler) _asm_OP_empty_obj(_ *_Instr) { + self.Emit("BTQ", jit.Imm(int64(bitNoNullSliceOrMap)), _ARG_fv) + self.Sjmp("JC", "_empty_obj_{n}") + self._asm_OP_null(nil) + self.Sjmp("JMP", "_empty_obj_end_{n}") + self.Link("_empty_obj_{n}") + self.check_size(2) + self.Emit("MOVW", jit.Imm(_IM_object), jit.Sib(_RP, _RL, 1, 0)) + self.Emit("ADDQ", jit.Imm(2), _RL) + self.Link("_empty_obj_end_{n}") +} + +func (self *_Assembler) _asm_OP_bool(_ *_Instr) { + self.Emit("CMPB", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPB (SP.p), $0 + self.Sjmp("JE" , "_false_{n}") // JE _false_{n} + self.check_size(4) // SIZE $4 + self.Emit("MOVL", jit.Imm(_IM_true), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'true', (RP)(RL*1) + self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL + self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} + self.Link("_false_{n}") // _false_{n}: + self.check_size(5) // SIZE $5 + self.Emit("MOVL", jit.Imm(_IM_fals), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'fals', (RP)(RL*1) + self.Emit("MOVB", jit.Imm('e'), jit.Sib(_RP, _RL, 1, 4)) // MOVB $'e', 4(RP)(RL*1) + self.Emit("ADDQ", jit.Imm(5), _RL) // ADDQ $5, RL + self.Link("_end_{n}") // _end_{n}: +} + +func (self *_Assembler) _asm_OP_i8(_ *_Instr) { + self.store_int(4, _F_i64toa, "MOVBQSX") +} + +func (self *_Assembler) _asm_OP_i16(_ *_Instr) { + self.store_int(6, _F_i64toa, "MOVWQSX") +} + +func (self *_Assembler) _asm_OP_i32(_ *_Instr) { + self.store_int(17, _F_i64toa, "MOVLQSX") +} + +func (self *_Assembler) _asm_OP_i64(_ *_Instr) { + self.store_int(21, _F_i64toa, "MOVQ") +} + +func (self *_Assembler) _asm_OP_u8(_ *_Instr) { + self.store_int(3, _F_u64toa, "MOVBQZX") +} + +func (self *_Assembler) _asm_OP_u16(_ *_Instr) { + self.store_int(5, _F_u64toa, "MOVWQZX") +} + +func (self *_Assembler) _asm_OP_u32(_ *_Instr) { + self.store_int(16, _F_u64toa, "MOVLQZX") +} + +func (self *_Assembler) _asm_OP_u64(_ *_Instr) { + self.store_int(20, _F_u64toa, "MOVQ") +} + +func (self *_Assembler) _asm_OP_f32(_ *_Instr) { + self.check_size(32) + self.Emit("MOVL" , jit.Ptr(_SP_p, 0), _AX) // MOVL (SP.p), AX + self.Emit("ANDL" , jit.Imm(_FM_exp32), _AX) // ANDL $_FM_exp32, AX + self.Emit("XORL" , jit.Imm(_FM_exp32), _AX) // XORL $_FM_exp32, AX + self.Sjmp("JZ" , _LB_error_nan_or_infinite) // JZ _error_nan_or_infinite + self.save_c() // SAVE $C_regs + self.rbuf_di() // MOVQ RP, DI + self.Emit("MOVSS" , jit.Ptr(_SP_p, 0), _X0) // MOVSS (SP.p), X0 + self.call_c(_F_f32toa) // CALL_C f64toa + self.Emit("ADDQ" , _AX, _RL) // ADDQ AX, RL +} + +func (self *_Assembler) _asm_OP_f64(_ *_Instr) { + self.check_size(32) + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("MOVQ" , jit.Imm(_FM_exp64), _CX) // MOVQ $_FM_exp64, CX + self.Emit("ANDQ" , _CX, _AX) // ANDQ CX, AX + self.Emit("XORQ" , _CX, _AX) // XORQ CX, AX + self.Sjmp("JZ" , _LB_error_nan_or_infinite) // JZ _error_nan_or_infinite + self.save_c() // SAVE $C_regs + self.rbuf_di() // MOVQ RP, DI + self.Emit("MOVSD" , jit.Ptr(_SP_p, 0), _X0) // MOVSD (SP.p), X0 + self.call_c(_F_f64toa) // CALL_C f64toa + self.Emit("ADDQ" , _AX, _RL) // ADDQ AX, RL +} + +func (self *_Assembler) _asm_OP_str(_ *_Instr) { + self.encode_string(false) +} + +func (self *_Assembler) _asm_OP_bin(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _AX) // MOVQ 8(SP.p), AX + self.Emit("ADDQ", jit.Imm(2), _AX) // ADDQ $2, AX + self.Emit("MOVQ", jit.Imm(_IM_mulv), _CX) // MOVQ $_MF_mulv, CX + self.Emit("MOVQ", _DX, _BX) // MOVQ DX, BX + self.From("MULQ", _CX) // MULQ CX + self.Emit("LEAQ", jit.Sib(_DX, _DX, 1, 1), _AX) // LEAQ 1(DX)(DX), AX + self.Emit("ORQ" , jit.Imm(2), _AX) // ORQ $2, AX + self.Emit("MOVQ", _BX, _DX) // MOVQ BX, DX + self.check_size_r(_AX, 0) // SIZE AX + self.add_char('"') // CHAR $'"' + self.Emit("MOVQ", _ARG_rb, _DI) // MOVQ rb<>+0(FP), DI + self.Emit("MOVQ", _RL, jit.Ptr(_DI, 8)) // MOVQ SI, 8(DI) + self.Emit("MOVQ", _SP_p, _SI) // MOVQ SP.p, SI + + /* check for AVX2 support */ + if !cpu.HasAVX2 { + self.Emit("XORL", _DX, _DX) // XORL DX, DX + } else { + self.Emit("MOVL", jit.Imm(_MODE_AVX2), _DX) // MOVL $_MODE_AVX2, DX + } + + /* call the encoder */ + self.call_b64(_F_b64encode) // CALL b64encode + self.load_buffer_AX() // LOAD {buf} + self.add_char('"') // CHAR $'"' +} + +func (self *_Assembler) _asm_OP_quote(_ *_Instr) { + self.encode_string(true) +} + +func (self *_Assembler) _asm_OP_number(_ *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _BX) // MOVQ (SP.p), BX + self.Emit("TESTQ", _BX, _BX) // TESTQ BX, BX + self.Sjmp("JZ" , "_empty_{n}") + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Sjmp("JNZ" , "_number_next_{n}") + self.Emit("MOVQ", jit.Imm(int64(panicNilPointerOfNonEmptyString)), _AX) + self.Sjmp("JMP", _LB_panic) + self.Link("_number_next_{n}") + self.call_go(_F_isValidNumber) // CALL_GO isValidNumber + self.Emit("CMPB" , _AX, jit.Imm(0)) // CMPB AX, $0 + self.Sjmp("JE" , _LB_error_invalid_number) // JE _error_invalid_number + self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _BX) // MOVQ (SP.p), BX + self.check_size_r(_BX, 0) // SIZE BX + self.Emit("LEAQ" , jit.Sib(_RP, _RL, 1, 0), _AX) // LEAQ (RP)(RL), AX + self.Emit("ADDQ" , jit.Ptr(_SP_p, 8), _RL) // ADDQ 8(SP.p), RL + self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _BX) // MOVOU (SP.p), BX + self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _CX) // MOVOU X0, 8(SP) + self.call_go(_F_memmove) // CALL_GO memmove + self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX + self.Emit("MOVQ", _RL, jit.Ptr(_AX, 8)) // MOVQ RL, 8(AX) + self.Sjmp("JMP" , "_done_{n}") // JMP _done_{n} + self.Link("_empty_{n}") // _empty_{n} + self.check_size(1) // SIZE $1 + self.add_char('0') // CHAR $'0' + self.Link("_done_{n}") // _done_{n}: +} + +func (self *_Assembler) _asm_OP_eface(_ *_Instr) { + self.prep_buffer_AX() // MOVE {buf}, AX + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _BX) // MOVQ (SP.p), BX + self.Emit("LEAQ" , jit.Ptr(_SP_p, 8), _CX) // LEAQ 8(SP.p), CX + self.Emit("MOVQ" , _ST, _DI) // MOVQ ST, DI + self.Emit("MOVQ" , _ARG_fv, _SI) // MOVQ fv, AX + self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error + self.load_buffer_AX() +} + +func (self *_Assembler) _asm_OP_iface(_ *_Instr) { + self.prep_buffer_AX() // MOVE {buf}, AX + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _CX) // MOVQ (SP.p), CX + self.Emit("MOVQ" , jit.Ptr(_CX, 8), _BX) // MOVQ 8(CX), BX + self.Emit("LEAQ" , jit.Ptr(_SP_p, 8), _CX) // LEAQ 8(SP.p), CX + self.Emit("MOVQ" , _ST, _DI) // MOVQ ST, DI + self.Emit("MOVQ" , _ARG_fv, _SI) // MOVQ fv, AX + self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error + self.load_buffer_AX() +} + +func (self *_Assembler) _asm_OP_byte(p *_Instr) { + self.check_size(1) + self.Emit("MOVB", jit.Imm(p.i64()), jit.Sib(_RP, _RL, 1, 0)) // MOVL p.vi(), (RP)(RL*1) + self.Emit("ADDQ", jit.Imm(1), _RL) // ADDQ $1, RL +} + +func (self *_Assembler) _asm_OP_text(p *_Instr) { + self.check_size(len(p.vs())) // SIZE ${len(p.vs())} + self.add_text(p.vs()) // TEXT ${p.vs()} +} + +func (self *_Assembler) _asm_OP_deref(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _SP_p) // MOVQ (SP.p), SP.p +} + +func (self *_Assembler) _asm_OP_index(p *_Instr) { + self.Emit("MOVQ", jit.Imm(p.i64()), _AX) // MOVQ $p.vi(), AX + self.Emit("ADDQ", _AX, _SP_p) // ADDQ AX, SP.p +} + +func (self *_Assembler) _asm_OP_load(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, -24), _SP_x) // MOVQ -24(ST)(AX), SP.x + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, -8), _SP_p) // MOVQ -8(ST)(AX), SP.p + self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _SP_q) // MOVQ (ST)(AX), SP.q +} + +func (self *_Assembler) _asm_OP_save(_ *_Instr) { + self.save_state() +} + +func (self *_Assembler) _asm_OP_drop(_ *_Instr) { + self.drop_state(_StateSize) +} + +func (self *_Assembler) _asm_OP_drop_2(_ *_Instr) { + self.drop_state(_StateSize * 2) // DROP $(_StateSize * 2) + self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 56)) // MOVOU X0, 56(ST)(AX) +} + +func (self *_Assembler) _asm_OP_recurse(p *_Instr) { + self.prep_buffer_AX() // MOVE {buf}, (SP) + vt, pv := p.vp() + self.Emit("MOVQ", jit.Type(vt), _BX) // MOVQ $(type(p.vt())), BX + + /* check for indirection */ + if !rt.UnpackType(vt).Indirect() { + self.Emit("MOVQ", _SP_p, _CX) // MOVQ SP.p, CX + } else { + self.Emit("MOVQ", _SP_p, _VAR_vp) // MOVQ SP.p, VAR.vp + self.Emit("LEAQ", _VAR_vp, _CX) // LEAQ VAR.vp, CX + } + + /* call the encoder */ + self.Emit("MOVQ" , _ST, _DI) // MOVQ ST, DI + self.Emit("MOVQ" , _ARG_fv, _SI) // MOVQ $fv, SI + if pv { + self.Emit("BTCQ", jit.Imm(bitPointerValue), _SI) // BTCQ $1, SI + } + self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error + self.load_buffer_AX() +} + +func (self *_Assembler) _asm_OP_is_nil(p *_Instr) { + self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPQ (SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_nil_p1(p *_Instr) { + self.Emit("CMPQ", jit.Ptr(_SP_p, 8), jit.Imm(0)) // CMPQ 8(SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_zero_1(p *_Instr) { + self.Emit("CMPB", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPB (SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_zero_2(p *_Instr) { + self.Emit("CMPW", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPW (SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_zero_4(p *_Instr) { + self.Emit("CMPL", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPL (SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_zero_8(p *_Instr) { + self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPQ (SP.p), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_is_zero_map(p *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX + self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX + self.Xjmp("JZ" , p.vi()) // JZ p.vi() + self.Emit("CMPQ" , jit.Ptr(_AX, 0), jit.Imm(0)) // CMPQ (AX), $0 + self.Xjmp("JE" , p.vi()) // JE p.vi() +} + +func (self *_Assembler) _asm_OP_goto(p *_Instr) { + self.Xjmp("JMP", p.vi()) +} + +func (self *_Assembler) _asm_OP_map_iter(p *_Instr) { + self.Emit("MOVQ" , jit.Type(p.vt()), _AX) // MOVQ $p.vt(), AX + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _BX) // MOVQ (SP.p), BX + self.Emit("MOVQ" , _ARG_fv, _CX) // MOVQ fv, CX + self.call_go(_F_iteratorStart) // CALL_GO iteratorStart + self.Emit("MOVQ" , _AX, _SP_q) // MOVQ AX, SP.q + self.Emit("MOVQ" , _BX, _ET) // MOVQ 32(SP), ET + self.Emit("MOVQ" , _CX, _EP) // MOVQ 40(SP), EP + self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET + self.Sjmp("JNZ" , _LB_error) // JNZ _error +} + +func (self *_Assembler) _asm_OP_map_stop(_ *_Instr) { + self.Emit("MOVQ", _SP_q, _AX) // MOVQ SP.q, AX + self.call_go(_F_iteratorStop) // CALL_GO iteratorStop + self.Emit("XORL", _SP_q, _SP_q) // XORL SP.q, SP.q +} + +func (self *_Assembler) _asm_OP_map_check_key(p *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_SP_q, 0), _SP_p) // MOVQ (SP.q), SP.p + self.Emit("TESTQ", _SP_p, _SP_p) // TESTQ SP.p, SP.p + self.Xjmp("JZ" , p.vi()) // JNZ p.vi() +} + +func (self *_Assembler) _asm_OP_map_write_key(p *_Instr) { + self.Emit("BTQ", jit.Imm(bitSortMapKeys), _ARG_fv) // BTQ ${SortMapKeys}, fv + self.Sjmp("JNC", "_unordered_key_{n}") // JNC _unordered_key_{n} + self.encode_string(false) // STR $false + self.Xjmp("JMP", p.vi()) // JMP ${p.vi()} + self.Link("_unordered_key_{n}") // _unordered_key_{n}: +} + +func (self *_Assembler) _asm_OP_map_value_next(_ *_Instr) { + self.Emit("MOVQ", jit.Ptr(_SP_q, 8), _SP_p) // MOVQ 8(SP.q), SP.p + self.Emit("MOVQ", _SP_q, _AX) // MOVQ SP.q, AX + self.call_go(_F_iteratorNext) // CALL_GO iteratorNext +} + +func (self *_Assembler) _asm_OP_slice_len(_ *_Instr) { + self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _SP_x) // MOVQ 8(SP.p), SP.x + self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _SP_p) // MOVQ (SP.p), SP.p + self.Emit("ORQ" , jit.Imm(1 << _S_init), _SP_f) // ORQ $(1<<_S_init), SP.f +} + +func (self *_Assembler) _asm_OP_slice_next(p *_Instr) { + self.Emit("TESTQ" , _SP_x, _SP_x) // TESTQ SP.x, SP.x + self.Xjmp("JZ" , p.vi()) // JZ p.vi() + self.Emit("SUBQ" , jit.Imm(1), _SP_x) // SUBQ $1, SP.x + self.Emit("BTRQ" , jit.Imm(_S_init), _SP_f) // BTRQ $_S_init, SP.f + self.Emit("LEAQ" , jit.Ptr(_SP_p, int64(p.vlen())), _AX) // LEAQ $(p.vlen())(SP.p), AX + self.Emit("CMOVQCC", _AX, _SP_p) // CMOVQNC AX, SP.p +} + +func (self *_Assembler) _asm_OP_marshal(p *_Instr) { + self.call_marshaler(_F_encodeJsonMarshaler, _T_json_Marshaler, p.vt()) +} + +func (self *_Assembler) _asm_OP_marshal_p(p *_Instr) { + if p.vk() != reflect.Ptr { + panic("marshal_p: invalid type") + } else { + self.call_marshaler_v(_F_encodeJsonMarshaler, _T_json_Marshaler, p.vt(), false) + } +} + +func (self *_Assembler) _asm_OP_marshal_text(p *_Instr) { + self.call_marshaler(_F_encodeTextMarshaler, _T_encoding_TextMarshaler, p.vt()) +} + +func (self *_Assembler) _asm_OP_marshal_text_p(p *_Instr) { + if p.vk() != reflect.Ptr { + panic("marshal_text_p: invalid type") + } else { + self.call_marshaler_v(_F_encodeTextMarshaler, _T_encoding_TextMarshaler, p.vt(), false) + } +} + +func (self *_Assembler) _asm_OP_cond_set(_ *_Instr) { + self.Emit("ORQ", jit.Imm(1 << _S_cond), _SP_f) // ORQ $(1<<_S_cond), SP.f +} + +func (self *_Assembler) _asm_OP_cond_testc(p *_Instr) { + self.Emit("BTRQ", jit.Imm(_S_cond), _SP_f) // BTRQ $_S_cond, SP.f + self.Xjmp("JC" , p.vi()) +} + +func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { + self.Emit("MOVQ", jit.Imm(int64(p2.op())), _CX) // MOVQ $(p2.op()), AX + self.Emit("MOVQ", jit.Imm(int64(p1.op())), _BX) // MOVQ $(p1.op()), BX + self.Emit("MOVQ", jit.Imm(int64(i)), _AX) // MOVQ $(i), CX + self.call_go(_F_println) +} + +var ( + _V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&_runtime_writeBarrier)))) + + _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) +) + +func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _BX) + self.Emit("CMPL", jit.Ptr(_BX, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.xsave(_DI) + self.Emit("MOVQ", ptr, _AX) + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _BX) // MOVQ ${fn}, AX + self.Rjmp("CALL", _BX) + self.xload(_DI) + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/encoder/compiler.go b/vendor/github.com/bytedance/sonic/encoder/compiler.go new file mode 100644 index 0000000000..a949c90f7b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/encoder/compiler.go @@ -0,0 +1,885 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package encoder + +import ( + `fmt` + `reflect` + `strconv` + `strings` + `unsafe` + + `github.com/bytedance/sonic/internal/resolver` + `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/option` +) + +type _Op uint8 + +const ( + _OP_null _Op = iota + 1 + _OP_empty_arr + _OP_empty_obj + _OP_bool + _OP_i8 + _OP_i16 + _OP_i32 + _OP_i64 + _OP_u8 + _OP_u16 + _OP_u32 + _OP_u64 + _OP_f32 + _OP_f64 + _OP_str + _OP_bin + _OP_quote + _OP_number + _OP_eface + _OP_iface + _OP_byte + _OP_text + _OP_deref + _OP_index + _OP_load + _OP_save + _OP_drop + _OP_drop_2 + _OP_recurse + _OP_is_nil + _OP_is_nil_p1 + _OP_is_zero_1 + _OP_is_zero_2 + _OP_is_zero_4 + _OP_is_zero_8 + _OP_is_zero_map + _OP_goto + _OP_map_iter + _OP_map_stop + _OP_map_check_key + _OP_map_write_key + _OP_map_value_next + _OP_slice_len + _OP_slice_next + _OP_marshal + _OP_marshal_p + _OP_marshal_text + _OP_marshal_text_p + _OP_cond_set + _OP_cond_testc +) + +const ( + _INT_SIZE = 32 << (^uint(0) >> 63) + _PTR_SIZE = 32 << (^uintptr(0) >> 63) + _PTR_BYTE = unsafe.Sizeof(uintptr(0)) +) + +const ( + _MAX_ILBUF = 100000 // cutoff at 100k of IL instructions + _MAX_FIELDS = 50 // cutoff at 50 fields struct +) + +var _OpNames = [256]string { + _OP_null : "null", + _OP_empty_arr : "empty_arr", + _OP_empty_obj : "empty_obj", + _OP_bool : "bool", + _OP_i8 : "i8", + _OP_i16 : "i16", + _OP_i32 : "i32", + _OP_i64 : "i64", + _OP_u8 : "u8", + _OP_u16 : "u16", + _OP_u32 : "u32", + _OP_u64 : "u64", + _OP_f32 : "f32", + _OP_f64 : "f64", + _OP_str : "str", + _OP_bin : "bin", + _OP_quote : "quote", + _OP_number : "number", + _OP_eface : "eface", + _OP_iface : "iface", + _OP_byte : "byte", + _OP_text : "text", + _OP_deref : "deref", + _OP_index : "index", + _OP_load : "load", + _OP_save : "save", + _OP_drop : "drop", + _OP_drop_2 : "drop_2", + _OP_recurse : "recurse", + _OP_is_nil : "is_nil", + _OP_is_nil_p1 : "is_nil_p1", + _OP_is_zero_1 : "is_zero_1", + _OP_is_zero_2 : "is_zero_2", + _OP_is_zero_4 : "is_zero_4", + _OP_is_zero_8 : "is_zero_8", + _OP_is_zero_map : "is_zero_map", + _OP_goto : "goto", + _OP_map_iter : "map_iter", + _OP_map_stop : "map_stop", + _OP_map_check_key : "map_check_key", + _OP_map_write_key : "map_write_key", + _OP_map_value_next : "map_value_next", + _OP_slice_len : "slice_len", + _OP_slice_next : "slice_next", + _OP_marshal : "marshal", + _OP_marshal_p : "marshal_p", + _OP_marshal_text : "marshal_text", + _OP_marshal_text_p : "marshal_text_p", + _OP_cond_set : "cond_set", + _OP_cond_testc : "cond_testc", +} + +func (self _Op) String() string { + if ret := _OpNames[self]; ret != "" { + return ret + } else { + return "" + } +} + +func _OP_int() _Op { + switch _INT_SIZE { + case 32: return _OP_i32 + case 64: return _OP_i64 + default: panic("unsupported int size") + } +} + +func _OP_uint() _Op { + switch _INT_SIZE { + case 32: return _OP_u32 + case 64: return _OP_u64 + default: panic("unsupported uint size") + } +} + +func _OP_uintptr() _Op { + switch _PTR_SIZE { + case 32: return _OP_u32 + case 64: return _OP_u64 + default: panic("unsupported pointer size") + } +} + +func _OP_is_zero_ints() _Op { + switch _INT_SIZE { + case 32: return _OP_is_zero_4 + case 64: return _OP_is_zero_8 + default: panic("unsupported integer size") + } +} + +type _Instr struct { + u uint64 // union {op: 8, _: 8, vi: 48}, vi maybe int or len(str) + p unsafe.Pointer // maybe GoString.Ptr, or *GoType +} + +func packOp(op _Op) uint64 { + return uint64(op) << 56 +} + +func newInsOp(op _Op) _Instr { + return _Instr{u: packOp(op)} +} + +func newInsVi(op _Op, vi int) _Instr { + return _Instr{u: packOp(op) | rt.PackInt(vi)} +} + +func newInsVs(op _Op, vs string) _Instr { + return _Instr { + u: packOp(op) | rt.PackInt(len(vs)), + p: (*rt.GoString)(unsafe.Pointer(&vs)).Ptr, + } +} + +func newInsVt(op _Op, vt reflect.Type) _Instr { + return _Instr { + u: packOp(op), + p: unsafe.Pointer(rt.UnpackType(vt)), + } +} + +func newInsVp(op _Op, vt reflect.Type, pv bool) _Instr { + i := 0 + if pv { + i = 1 + } + return _Instr { + u: packOp(op) | rt.PackInt(i), + p: unsafe.Pointer(rt.UnpackType(vt)), + } +} + +func (self _Instr) op() _Op { + return _Op(self.u >> 56) +} + +func (self _Instr) vi() int { + return rt.UnpackInt(self.u) +} + +func (self _Instr) vf() uint8 { + return (*rt.GoType)(self.p).KindFlags +} + +func (self _Instr) vs() (v string) { + (*rt.GoString)(unsafe.Pointer(&v)).Ptr = self.p + (*rt.GoString)(unsafe.Pointer(&v)).Len = self.vi() + return +} + +func (self _Instr) vk() reflect.Kind { + return (*rt.GoType)(self.p).Kind() +} + +func (self _Instr) vt() reflect.Type { + return (*rt.GoType)(self.p).Pack() +} + +func (self _Instr) vp() (vt reflect.Type, pv bool) { + return (*rt.GoType)(self.p).Pack(), rt.UnpackInt(self.u) == 1 +} + +func (self _Instr) i64() int64 { + return int64(self.vi()) +} + +func (self _Instr) vlen() int { + return int((*rt.GoType)(self.p).Size) +} + +func (self _Instr) isBranch() bool { + switch self.op() { + case _OP_goto : fallthrough + case _OP_is_nil : fallthrough + case _OP_is_nil_p1 : fallthrough + case _OP_is_zero_1 : fallthrough + case _OP_is_zero_2 : fallthrough + case _OP_is_zero_4 : fallthrough + case _OP_is_zero_8 : fallthrough + case _OP_map_check_key : fallthrough + case _OP_map_write_key : fallthrough + case _OP_slice_next : fallthrough + case _OP_cond_testc : return true + default : return false + } +} + +func (self _Instr) disassemble() string { + switch self.op() { + case _OP_byte : return fmt.Sprintf("%-18s%s", self.op().String(), strconv.QuoteRune(rune(self.vi()))) + case _OP_text : return fmt.Sprintf("%-18s%s", self.op().String(), strconv.Quote(self.vs())) + case _OP_index : return fmt.Sprintf("%-18s%d", self.op().String(), self.vi()) + case _OP_recurse : fallthrough + case _OP_map_iter : fallthrough + case _OP_marshal : fallthrough + case _OP_marshal_p : fallthrough + case _OP_marshal_text : fallthrough + case _OP_marshal_text_p : return fmt.Sprintf("%-18s%s", self.op().String(), self.vt()) + case _OP_goto : fallthrough + case _OP_is_nil : fallthrough + case _OP_is_nil_p1 : fallthrough + case _OP_is_zero_1 : fallthrough + case _OP_is_zero_2 : fallthrough + case _OP_is_zero_4 : fallthrough + case _OP_is_zero_8 : fallthrough + case _OP_is_zero_map : fallthrough + case _OP_cond_testc : fallthrough + case _OP_map_check_key : fallthrough + case _OP_map_write_key : return fmt.Sprintf("%-18sL_%d", self.op().String(), self.vi()) + case _OP_slice_next : return fmt.Sprintf("%-18sL_%d, %s", self.op().String(), self.vi(), self.vt()) + default : return self.op().String() + } +} + +type ( + _Program []_Instr +) + +func (self _Program) pc() int { + return len(self) +} + +func (self _Program) tag(n int) { + if n >= _MaxStack { + panic("type nesting too deep") + } +} + +func (self _Program) pin(i int) { + v := &self[i] + v.u &= 0xffff000000000000 + v.u |= rt.PackInt(self.pc()) +} + +func (self _Program) rel(v []int) { + for _, i := range v { + self.pin(i) + } +} + +func (self *_Program) add(op _Op) { + *self = append(*self, newInsOp(op)) +} + +func (self *_Program) key(op _Op) { + *self = append(*self, + newInsVi(_OP_byte, '"'), + newInsOp(op), + newInsVi(_OP_byte, '"'), + ) +} + +func (self *_Program) int(op _Op, vi int) { + *self = append(*self, newInsVi(op, vi)) +} + +func (self *_Program) str(op _Op, vs string) { + *self = append(*self, newInsVs(op, vs)) +} + +func (self *_Program) rtt(op _Op, vt reflect.Type) { + *self = append(*self, newInsVt(op, vt)) +} + +func (self *_Program) vp(op _Op, vt reflect.Type, pv bool) { + *self = append(*self, newInsVp(op, vt, pv)) +} + +func (self _Program) disassemble() string { + nb := len(self) + tab := make([]bool, nb + 1) + ret := make([]string, 0, nb + 1) + + /* prescan to get all the labels */ + for _, ins := range self { + if ins.isBranch() { + tab[ins.vi()] = true + } + } + + /* disassemble each instruction */ + for i, ins := range self { + if !tab[i] { + ret = append(ret, "\t" + ins.disassemble()) + } else { + ret = append(ret, fmt.Sprintf("L_%d:\n\t%s", i, ins.disassemble())) + } + } + + /* add the last label, if needed */ + if tab[nb] { + ret = append(ret, fmt.Sprintf("L_%d:", nb)) + } + + /* add an "end" indicator, and join all the strings */ + return strings.Join(append(ret, "\tend"), "\n") +} + +type _Compiler struct { + opts option.CompileOptions + pv bool + tab map[reflect.Type]bool + rec map[reflect.Type]uint8 +} + +func newCompiler() *_Compiler { + return &_Compiler { + opts: option.DefaultCompileOptions(), + tab: map[reflect.Type]bool{}, + rec: map[reflect.Type]uint8{}, + } +} + +func (self *_Compiler) apply(opts option.CompileOptions) *_Compiler { + self.opts = opts + if self.opts.RecursiveDepth > 0 { + self.rec = map[reflect.Type]uint8{} + } + return self +} + +func (self *_Compiler) rescue(ep *error) { + if val := recover(); val != nil { + if err, ok := val.(error); ok { + *ep = err + } else { + panic(val) + } + } +} + +func (self *_Compiler) compile(vt reflect.Type, pv bool) (ret _Program, err error) { + defer self.rescue(&err) + self.compileOne(&ret, 0, vt, pv) + return +} + +func (self *_Compiler) compileOne(p *_Program, sp int, vt reflect.Type, pv bool) { + if self.tab[vt] { + p.vp(_OP_recurse, vt, pv) + } else { + self.compileRec(p, sp, vt, pv) + } +} + +func (self *_Compiler) compileRec(p *_Program, sp int, vt reflect.Type, pv bool) { + pr := self.pv + pt := reflect.PtrTo(vt) + + /* check for addressable `json.Marshaler` with pointer receiver */ + if pv && pt.Implements(jsonMarshalerType) { + p.rtt(_OP_marshal_p, pt) + return + } + + /* check for `json.Marshaler` */ + if vt.Implements(jsonMarshalerType) { + self.compileMarshaler(p, _OP_marshal, vt, jsonMarshalerType) + return + } + + /* check for addressable `encoding.TextMarshaler` with pointer receiver */ + if pv && pt.Implements(encodingTextMarshalerType) { + p.rtt(_OP_marshal_text_p, pt) + return + } + + /* check for `encoding.TextMarshaler` */ + if vt.Implements(encodingTextMarshalerType) { + self.compileMarshaler(p, _OP_marshal_text, vt, encodingTextMarshalerType) + return + } + + /* enter the recursion, and compile the type */ + self.pv = pv + self.tab[vt] = true + self.compileOps(p, sp, vt) + + /* exit the recursion */ + self.pv = pr + delete(self.tab, vt) +} + +func (self *_Compiler) compileOps(p *_Program, sp int, vt reflect.Type) { + switch vt.Kind() { + case reflect.Bool : p.add(_OP_bool) + case reflect.Int : p.add(_OP_int()) + case reflect.Int8 : p.add(_OP_i8) + case reflect.Int16 : p.add(_OP_i16) + case reflect.Int32 : p.add(_OP_i32) + case reflect.Int64 : p.add(_OP_i64) + case reflect.Uint : p.add(_OP_uint()) + case reflect.Uint8 : p.add(_OP_u8) + case reflect.Uint16 : p.add(_OP_u16) + case reflect.Uint32 : p.add(_OP_u32) + case reflect.Uint64 : p.add(_OP_u64) + case reflect.Uintptr : p.add(_OP_uintptr()) + case reflect.Float32 : p.add(_OP_f32) + case reflect.Float64 : p.add(_OP_f64) + case reflect.String : self.compileString (p, vt) + case reflect.Array : self.compileArray (p, sp, vt.Elem(), vt.Len()) + case reflect.Interface : self.compileInterface (p, vt) + case reflect.Map : self.compileMap (p, sp, vt) + case reflect.Ptr : self.compilePtr (p, sp, vt.Elem()) + case reflect.Slice : self.compileSlice (p, sp, vt.Elem()) + case reflect.Struct : self.compileStruct (p, sp, vt) + default : panic (error_type(vt)) + } +} + +func (self *_Compiler) compileNil(p *_Program, sp int, vt reflect.Type, nil_op _Op, fn func(*_Program, int, reflect.Type)) { + x := p.pc() + p.add(_OP_is_nil) + fn(p, sp, vt) + e := p.pc() + p.add(_OP_goto) + p.pin(x) + p.add(nil_op) + p.pin(e) +} + +func (self *_Compiler) compilePtr(p *_Program, sp int, vt reflect.Type) { + self.compileNil(p, sp, vt, _OP_null, self.compilePtrBody) +} + +func (self *_Compiler) compilePtrBody(p *_Program, sp int, vt reflect.Type) { + p.tag(sp) + p.add(_OP_save) + p.add(_OP_deref) + self.compileOne(p, sp + 1, vt, true) + p.add(_OP_drop) +} + +func (self *_Compiler) compileMap(p *_Program, sp int, vt reflect.Type) { + self.compileNil(p, sp, vt, _OP_empty_obj, self.compileMapBody) +} + +func (self *_Compiler) compileMapBody(p *_Program, sp int, vt reflect.Type) { + p.tag(sp + 1) + p.int(_OP_byte, '{') + p.add(_OP_save) + p.rtt(_OP_map_iter, vt) + p.add(_OP_save) + i := p.pc() + p.add(_OP_map_check_key) + u := p.pc() + p.add(_OP_map_write_key) + self.compileMapBodyKey(p, vt.Key()) + p.pin(u) + p.int(_OP_byte, ':') + p.add(_OP_map_value_next) + self.compileOne(p, sp + 2, vt.Elem(), false) + j := p.pc() + p.add(_OP_map_check_key) + p.int(_OP_byte, ',') + v := p.pc() + p.add(_OP_map_write_key) + self.compileMapBodyKey(p, vt.Key()) + p.pin(v) + p.int(_OP_byte, ':') + p.add(_OP_map_value_next) + self.compileOne(p, sp + 2, vt.Elem(), false) + p.int(_OP_goto, j) + p.pin(i) + p.pin(j) + p.add(_OP_map_stop) + p.add(_OP_drop_2) + p.int(_OP_byte, '}') +} + +func (self *_Compiler) compileMapBodyKey(p *_Program, vk reflect.Type) { + if !vk.Implements(encodingTextMarshalerType) { + self.compileMapBodyTextKey(p, vk) + } else { + self.compileMapBodyUtextKey(p, vk) + } +} + +func (self *_Compiler) compileMapBodyTextKey(p *_Program, vk reflect.Type) { + switch vk.Kind() { + case reflect.Invalid : panic("map key is nil") + case reflect.Bool : p.key(_OP_bool) + case reflect.Int : p.key(_OP_int()) + case reflect.Int8 : p.key(_OP_i8) + case reflect.Int16 : p.key(_OP_i16) + case reflect.Int32 : p.key(_OP_i32) + case reflect.Int64 : p.key(_OP_i64) + case reflect.Uint : p.key(_OP_uint()) + case reflect.Uint8 : p.key(_OP_u8) + case reflect.Uint16 : p.key(_OP_u16) + case reflect.Uint32 : p.key(_OP_u32) + case reflect.Uint64 : p.key(_OP_u64) + case reflect.Uintptr : p.key(_OP_uintptr()) + case reflect.Float32 : p.key(_OP_f32) + case reflect.Float64 : p.key(_OP_f64) + case reflect.String : self.compileString(p, vk) + default : panic(error_type(vk)) + } +} + +func (self *_Compiler) compileMapBodyUtextKey(p *_Program, vk reflect.Type) { + if vk.Kind() != reflect.Ptr { + p.rtt(_OP_marshal_text, vk) + } else { + self.compileMapBodyUtextPtr(p, vk) + } +} + +func (self *_Compiler) compileMapBodyUtextPtr(p *_Program, vk reflect.Type) { + i := p.pc() + p.add(_OP_is_nil) + p.rtt(_OP_marshal_text, vk) + j := p.pc() + p.add(_OP_goto) + p.pin(i) + p.str(_OP_text, "\"\"") + p.pin(j) +} + +func (self *_Compiler) compileSlice(p *_Program, sp int, vt reflect.Type) { + self.compileNil(p, sp, vt, _OP_empty_arr, self.compileSliceBody) +} + +func (self *_Compiler) compileSliceBody(p *_Program, sp int, vt reflect.Type) { + if isSimpleByte(vt) { + p.add(_OP_bin) + } else { + self.compileSliceArray(p, sp, vt) + } +} + +func (self *_Compiler) compileSliceArray(p *_Program, sp int, vt reflect.Type) { + p.tag(sp) + p.int(_OP_byte, '[') + p.add(_OP_save) + p.add(_OP_slice_len) + i := p.pc() + p.rtt(_OP_slice_next, vt) + self.compileOne(p, sp + 1, vt, true) + j := p.pc() + p.rtt(_OP_slice_next, vt) + p.int(_OP_byte, ',') + self.compileOne(p, sp + 1, vt, true) + p.int(_OP_goto, j) + p.pin(i) + p.pin(j) + p.add(_OP_drop) + p.int(_OP_byte, ']') +} + +func (self *_Compiler) compileArray(p *_Program, sp int, vt reflect.Type, nb int) { + p.tag(sp) + p.int(_OP_byte, '[') + p.add(_OP_save) + + /* first item */ + if nb != 0 { + self.compileOne(p, sp + 1, vt, self.pv) + p.add(_OP_load) + } + + /* remaining items */ + for i := 1; i < nb; i++ { + p.int(_OP_byte, ',') + p.int(_OP_index, i * int(vt.Size())) + self.compileOne(p, sp + 1, vt, self.pv) + p.add(_OP_load) + } + + /* end of array */ + p.add(_OP_drop) + p.int(_OP_byte, ']') +} + +func (self *_Compiler) compileString(p *_Program, vt reflect.Type) { + if vt != jsonNumberType { + p.add(_OP_str) + } else { + p.add(_OP_number) + } +} + +func (self *_Compiler) compileStruct(p *_Program, sp int, vt reflect.Type) { + if sp >= self.opts.MaxInlineDepth || p.pc() >= _MAX_ILBUF || (sp > 0 && vt.NumField() >= _MAX_FIELDS) { + p.vp(_OP_recurse, vt, self.pv) + if self.opts.RecursiveDepth > 0 { + if self.pv { + self.rec[vt] = 1 + } else { + self.rec[vt] = 0 + } + } + } else { + self.compileStructBody(p, sp, vt) + } +} + +func (self *_Compiler) compileStructBody(p *_Program, sp int, vt reflect.Type) { + p.tag(sp) + p.int(_OP_byte, '{') + p.add(_OP_save) + p.add(_OP_cond_set) + + /* compile each field */ + for _, fv := range resolver.ResolveStruct(vt) { + var s []int + var o resolver.Offset + + /* "omitempty" for arrays */ + if fv.Type.Kind() == reflect.Array { + if fv.Type.Len() == 0 && (fv.Opts & resolver.F_omitempty) != 0 { + continue + } + } + + /* index to the field */ + for _, o = range fv.Path { + if p.int(_OP_index, int(o.Size)); o.Kind == resolver.F_deref { + s = append(s, p.pc()) + p.add(_OP_is_nil) + p.add(_OP_deref) + } + } + + /* check for "omitempty" option */ + if fv.Type.Kind() != reflect.Struct && fv.Type.Kind() != reflect.Array && (fv.Opts & resolver.F_omitempty) != 0 { + s = append(s, p.pc()) + self.compileStructFieldZero(p, fv.Type) + } + + /* add the comma if not the first element */ + i := p.pc() + p.add(_OP_cond_testc) + p.int(_OP_byte, ',') + p.pin(i) + + /* compile the key and value */ + ft := fv.Type + p.str(_OP_text, Quote(fv.Name) + ":") + + /* check for "stringnize" option */ + if (fv.Opts & resolver.F_stringize) == 0 { + self.compileOne(p, sp + 1, ft, self.pv) + } else { + self.compileStructFieldStr(p, sp + 1, ft) + } + + /* patch the skipping jumps and reload the struct pointer */ + p.rel(s) + p.add(_OP_load) + } + + /* end of object */ + p.add(_OP_drop) + p.int(_OP_byte, '}') +} + +func (self *_Compiler) compileStructFieldStr(p *_Program, sp int, vt reflect.Type) { + pc := -1 + ft := vt + sv := false + + /* dereference the pointer if needed */ + if ft.Kind() == reflect.Ptr { + ft = ft.Elem() + } + + /* check if it can be stringized */ + switch ft.Kind() { + case reflect.Bool : sv = true + case reflect.Int : sv = true + case reflect.Int8 : sv = true + case reflect.Int16 : sv = true + case reflect.Int32 : sv = true + case reflect.Int64 : sv = true + case reflect.Uint : sv = true + case reflect.Uint8 : sv = true + case reflect.Uint16 : sv = true + case reflect.Uint32 : sv = true + case reflect.Uint64 : sv = true + case reflect.Uintptr : sv = true + case reflect.Float32 : sv = true + case reflect.Float64 : sv = true + case reflect.String : sv = true + } + + /* if it's not, ignore the "string" and follow the regular path */ + if !sv { + self.compileOne(p, sp, vt, self.pv) + return + } + + /* dereference the pointer */ + if vt.Kind() == reflect.Ptr { + pc = p.pc() + vt = vt.Elem() + p.add(_OP_is_nil) + p.add(_OP_deref) + } + + /* special case of a double-quoted string */ + if ft != jsonNumberType && ft.Kind() == reflect.String { + p.add(_OP_quote) + } else { + self.compileStructFieldQuoted(p, sp, vt) + } + + /* the "null" case of the pointer */ + if pc != -1 { + e := p.pc() + p.add(_OP_goto) + p.pin(pc) + p.add(_OP_null) + p.pin(e) + } +} + +func (self *_Compiler) compileStructFieldZero(p *_Program, vt reflect.Type) { + switch vt.Kind() { + case reflect.Bool : p.add(_OP_is_zero_1) + case reflect.Int : p.add(_OP_is_zero_ints()) + case reflect.Int8 : p.add(_OP_is_zero_1) + case reflect.Int16 : p.add(_OP_is_zero_2) + case reflect.Int32 : p.add(_OP_is_zero_4) + case reflect.Int64 : p.add(_OP_is_zero_8) + case reflect.Uint : p.add(_OP_is_zero_ints()) + case reflect.Uint8 : p.add(_OP_is_zero_1) + case reflect.Uint16 : p.add(_OP_is_zero_2) + case reflect.Uint32 : p.add(_OP_is_zero_4) + case reflect.Uint64 : p.add(_OP_is_zero_8) + case reflect.Uintptr : p.add(_OP_is_nil) + case reflect.Float32 : p.add(_OP_is_zero_4) + case reflect.Float64 : p.add(_OP_is_zero_8) + case reflect.String : p.add(_OP_is_nil_p1) + case reflect.Interface : p.add(_OP_is_nil_p1) + case reflect.Map : p.add(_OP_is_zero_map) + case reflect.Ptr : p.add(_OP_is_nil) + case reflect.Slice : p.add(_OP_is_nil_p1) + default : panic(error_type(vt)) + } +} + +func (self *_Compiler) compileStructFieldQuoted(p *_Program, sp int, vt reflect.Type) { + p.int(_OP_byte, '"') + self.compileOne(p, sp, vt, self.pv) + p.int(_OP_byte, '"') +} + +func (self *_Compiler) compileInterface(p *_Program, vt reflect.Type) { + x := p.pc() + p.add(_OP_is_nil_p1) + + /* iface and efaces are different */ + if vt.NumMethod() == 0 { + p.add(_OP_eface) + } else { + p.add(_OP_iface) + } + + /* the "null" value */ + e := p.pc() + p.add(_OP_goto) + p.pin(x) + p.add(_OP_null) + p.pin(e) +} + +func (self *_Compiler) compileMarshaler(p *_Program, op _Op, vt reflect.Type, mt reflect.Type) { + pc := p.pc() + vk := vt.Kind() + + /* direct receiver */ + if vk != reflect.Ptr { + p.rtt(op, vt) + return + } + + /* value receiver with a pointer type, check for nil before calling the marshaler */ + p.add(_OP_is_nil) + p.rtt(op, vt) + i := p.pc() + p.add(_OP_goto) + p.pin(pc) + p.add(_OP_null) + p.pin(i) +} diff --git a/vendor/github.com/bytedance/sonic/encoder/debug_go116.go b/vendor/github.com/bytedance/sonic/encoder/debug_go116.go new file mode 100644 index 0000000000..4bc9c15c1d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/encoder/debug_go116.go @@ -0,0 +1,66 @@ +// +build go1.15,!go1.17 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package encoder + +import ( + `os` + `strings` + `runtime` + `runtime/debug` + + `github.com/bytedance/sonic/internal/jit` +) + +var ( + debugSyncGC = os.Getenv("SONIC_SYNC_GC") != "" + debugAsyncGC = os.Getenv("SONIC_NO_ASYNC_GC") == "" +) + +var ( + _Instr_End _Instr = newInsOp(_OP_null) + + _F_gc = jit.Func(runtime.GC) + _F_force_gc = jit.Func(debug.FreeOSMemory) + _F_println = jit.Func(println_wrapper) +) + +func println_wrapper(i int, op1 int, op2 int){ + println(i, " Intrs ", op1, _OpNames[op1], "next: ", op2, _OpNames[op2]) +} + +func (self *_Assembler) force_gc() { + self.call_go(_F_gc) + self.call_go(_F_force_gc) +} + +func (self *_Assembler) debug_instr(i int, v *_Instr) { + if debugSyncGC { + if (i+1 == len(self.p)) { + self.print_gc(i, v, &_Instr_End) + } else { + next := &(self.p[i+1]) + self.print_gc(i, v, next) + name := _OpNames[next.op()] + if strings.Contains(name, "save") { + return + } + } + self.force_gc() + } +} diff --git a/vendor/github.com/bytedance/sonic/encoder/debug_go117.go b/vendor/github.com/bytedance/sonic/encoder/debug_go117.go new file mode 100644 index 0000000000..e1016de323 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/encoder/debug_go117.go @@ -0,0 +1,205 @@ +// +build go1.17,!go1.21 + +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package encoder + +import ( + `fmt` + `os` + `runtime` + `strings` + `unsafe` + + `github.com/bytedance/sonic/internal/jit` + `github.com/twitchyliquid64/golang-asm/obj` +) + +const _FP_debug = 128 + +var ( + debugSyncGC = os.Getenv("SONIC_SYNC_GC") != "" + debugAsyncGC = os.Getenv("SONIC_NO_ASYNC_GC") == "" + debugCheckPtr = os.Getenv("SONIC_CHECK_POINTER") != "" +) + +var ( + _Instr_End = newInsOp(_OP_is_nil) + + _F_gc = jit.Func(gc) + _F_println = jit.Func(println_wrapper) + _F_print = jit.Func(print) +) + +func (self *_Assembler) dsave(r ...obj.Addr) { + for i, v := range r { + if i > _FP_debug / 8 - 1 { + panic("too many registers to save") + } else { + self.Emit("MOVQ", v, jit.Ptr(_SP, _FP_fargs + _FP_saves + _FP_locals + int64(i) * 8)) + } + } +} + +func (self *_Assembler) dload(r ...obj.Addr) { + for i, v := range r { + if i > _FP_debug / 8 - 1 { + panic("too many registers to load") + } else { + self.Emit("MOVQ", jit.Ptr(_SP, _FP_fargs + _FP_saves + _FP_locals + int64(i) * 8), v) + } + } +} + +func println_wrapper(i int, op1 int, op2 int){ + println(i, " Intrs ", op1, _OpNames[op1], "next: ", op2, _OpNames[op2]) +} + +func print(i int){ + println(i) +} + +func gc() { + if !debugSyncGC { + return + } + runtime.GC() + // debug.FreeOSMemory() +} + +func (self *_Assembler) dcall(fn obj.Addr) { + self.Emit("MOVQ", fn, _R10) // MOVQ ${fn}, R10 + self.Rjmp("CALL", _R10) // CALL R10 +} + +func (self *_Assembler) debug_gc() { + if !debugSyncGC { + return + } + self.dsave(_REG_debug...) + self.dcall(_F_gc) + self.dload(_REG_debug...) +} + +func (self *_Assembler) debug_instr(i int, v *_Instr) { + if debugSyncGC { + if i+1 == len(self.p) { + self.print_gc(i, v, &_Instr_End) + } else { + next := &(self.p[i+1]) + self.print_gc(i, v, next) + name := _OpNames[next.op()] + if strings.Contains(name, "save") { + return + } + } + // self.debug_gc() + } +} + +//go:noescape +//go:linkname checkptrBase runtime.checkptrBase +func checkptrBase(p unsafe.Pointer) uintptr + +//go:noescape +//go:linkname findObject runtime.findObject +func findObject(p, refBase, refOff uintptr) (base uintptr, s unsafe.Pointer, objIndex uintptr) + +var ( + _F_checkptr = jit.Func(checkptr) + _F_printptr = jit.Func(printptr) +) + +var ( + _R10 = jit.Reg("R10") +) +var _REG_debug = []obj.Addr { + jit.Reg("AX"), + jit.Reg("BX"), + jit.Reg("CX"), + jit.Reg("DX"), + jit.Reg("DI"), + jit.Reg("SI"), + jit.Reg("BP"), + jit.Reg("SP"), + jit.Reg("R8"), + jit.Reg("R9"), + jit.Reg("R10"), + jit.Reg("R11"), + jit.Reg("R12"), + jit.Reg("R13"), + jit.Reg("R14"), + jit.Reg("R15"), +} + +func checkptr(ptr uintptr) { + if ptr == 0 { + return + } + fmt.Printf("pointer: %x\n", ptr) + f := checkptrBase(unsafe.Pointer(uintptr(ptr))) + if f == 0 { + fmt.Printf("! unknown-based pointer: %x\n", ptr) + } else if f == 1 { + fmt.Printf("! stack pointer: %x\n", ptr) + } else { + fmt.Printf("base: %x\n", f) + } + findobj(ptr) +} + +func findobj(ptr uintptr) { + base, s, objIndex := findObject(ptr, 0, 0) + if s != nil && base == 0 { + fmt.Printf("! invalid pointer: %x\n", ptr) + } + fmt.Printf("objIndex: %d\n", objIndex) +} + +func (self *_Assembler) check_ptr(ptr obj.Addr, lea bool) { + if !debugCheckPtr { + return + } + + self.dsave(_REG_debug...) + if lea { + self.Emit("LEAQ", ptr, _R10) + } else { + self.Emit("MOVQ", ptr, _R10) + } + self.Emit("MOVQ", _R10, jit.Ptr(_SP, 0)) + self.dcall(_F_checkptr) + self.dload(_REG_debug...) +} + +func printptr(i int, ptr uintptr) { + fmt.Printf("[%d] ptr: %x\n", i, ptr) +} + +func (self *_Assembler) print_ptr(i int, ptr obj.Addr, lea bool) { + self.dsave(_REG_debug...) + if lea { + self.Emit("LEAQ", ptr, _R10) + } else { + self.Emit("MOVQ", ptr, _R10) + } + + self.Emit("MOVQ", jit.Imm(int64(i)), _AX) + self.Emit("MOVQ", _R10, _BX) + self.dcall(_F_printptr) + self.dload(_REG_debug...) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder.go b/vendor/github.com/bytedance/sonic/encoder/encoder.go new file mode 100644 index 0000000000..7a13301666 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/encoder/encoder.go @@ -0,0 +1,311 @@ +/* + * Copyright 2021 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package encoder + +import ( + `bytes` + `encoding/json` + `reflect` + `runtime` + + `github.com/bytedance/sonic/internal/native` + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/utf8` + `github.com/bytedance/sonic/option` +) + +// Options is a set of encoding options. +type Options uint64 + +const ( + bitSortMapKeys = iota + bitEscapeHTML + bitCompactMarshaler + bitNoQuoteTextMarshaler + bitNoNullSliceOrMap + bitValidateString + + // used for recursive compile + bitPointerValue = 63 +) + +const ( + // SortMapKeys indicates that the keys of a map needs to be sorted + // before serializing into JSON. + // WARNING: This hurts performance A LOT, USE WITH CARE. + SortMapKeys Options = 1 << bitSortMapKeys + + // EscapeHTML indicates encoder to escape all HTML characters + // after serializing into JSON (see https://pkg.go.dev/encoding/json#HTMLEscape). + // WARNING: This hurts performance A LOT, USE WITH CARE. + EscapeHTML Options = 1 << bitEscapeHTML + + // CompactMarshaler indicates that the output JSON from json.Marshaler + // is always compact and needs no validation + CompactMarshaler Options = 1 << bitCompactMarshaler + + // NoQuoteTextMarshaler indicates that the output text from encoding.TextMarshaler + // is always escaped string and needs no quoting + NoQuoteTextMarshaler Options = 1 << bitNoQuoteTextMarshaler + + // NoNullSliceOrMap indicates all empty Array or Object are encoded as '[]' or '{}', + // instead of 'null' + NoNullSliceOrMap Options = 1 << bitNoNullSliceOrMap + + // ValidateString indicates that encoder should validate the input string + // before encoding it into JSON. + ValidateString Options = 1 << bitValidateString + + // CompatibleWithStd is used to be compatible with std encoder. + CompatibleWithStd Options = SortMapKeys | EscapeHTML | CompactMarshaler +) + +// Encoder represents a specific set of encoder configurations. +type Encoder struct { + Opts Options + prefix string + indent string +} + +// Encode returns the JSON encoding of v. +func (self *Encoder) Encode(v interface{}) ([]byte, error) { + if self.indent != "" || self.prefix != "" { + return EncodeIndented(v, self.prefix, self.indent, self.Opts) + } + return Encode(v, self.Opts) +} + +// SortKeys enables the SortMapKeys option. +func (self *Encoder) SortKeys() *Encoder { + self.Opts |= SortMapKeys + return self +} + +// SetEscapeHTML specifies if option EscapeHTML opens +func (self *Encoder) SetEscapeHTML(f bool) { + if f { + self.Opts |= EscapeHTML + } else { + self.Opts &= ^EscapeHTML + } +} + +// SetValidateString specifies if option ValidateString opens +func (self *Encoder) SetValidateString(f bool) { + if f { + self.Opts |= ValidateString + } else { + self.Opts &= ^ValidateString + } +} + +// SetCompactMarshaler specifies if option CompactMarshaler opens +func (self *Encoder) SetCompactMarshaler(f bool) { + if f { + self.Opts |= CompactMarshaler + } else { + self.Opts &= ^CompactMarshaler + } +} + +// SetNoQuoteTextMarshaler specifies if option NoQuoteTextMarshaler opens +func (self *Encoder) SetNoQuoteTextMarshaler(f bool) { + if f { + self.Opts |= NoQuoteTextMarshaler + } else { + self.Opts &= ^NoQuoteTextMarshaler + } +} + +// SetIndent instructs the encoder to format each subsequent encoded +// value as if indented by the package-level function EncodeIndent(). +// Calling SetIndent("", "") disables indentation. +func (enc *Encoder) SetIndent(prefix, indent string) { + enc.prefix = prefix + enc.indent = indent +} + +// Quote returns the JSON-quoted version of s. +func Quote(s string) string { + var n int + var p []byte + + /* check for empty string */ + if s == "" { + return `""` + } + + /* allocate space for result */ + n = len(s) + 2 + p = make([]byte, 0, n) + + /* call the encoder */ + _ = encodeString(&p, s) + return rt.Mem2Str(p) +} + +// Encode returns the JSON encoding of val, encoded with opts. +func Encode(val interface{}, opts Options) ([]byte, error) { + buf := newBytes() + err := EncodeInto(&buf, val, opts) + + /* check for errors */ + if err != nil { + freeBytes(buf) + return nil, err + } + + if opts & EscapeHTML != 0 || opts & ValidateString != 0 { + return buf, nil + } + + /* make a copy of the result */ + ret := make([]byte, len(buf)) + copy(ret, buf) + + freeBytes(buf) + /* return the buffer into pool */ + return ret, nil +} + +// EncodeInto is like Encode but uses a user-supplied buffer instead of allocating +// a new one. +func EncodeInto(buf *[]byte, val interface{}, opts Options) error { + stk := newStack() + efv := rt.UnpackEface(val) + err := encodeTypedPointer(buf, efv.Type, &efv.Value, stk, uint64(opts)) + + /* return the stack into pool */ + if err != nil { + resetStack(stk) + } + freeStack(stk) + + /* EscapeHTML needs to allocate a new buffer*/ + if opts & EscapeHTML != 0 { + dest := HTMLEscape(nil, *buf) + freeBytes(*buf) // free origin used buffer + *buf = dest + } + + if opts & ValidateString != 0 && !utf8.Validate(*buf) { + dest := utf8.CorrectWith(nil, *buf, `\ufffd`) + freeBytes(*buf) // free origin used buffer + *buf = dest + } + + /* avoid GC ahead */ + runtime.KeepAlive(buf) + runtime.KeepAlive(efv) + return err +} + +var typeByte = rt.UnpackType(reflect.TypeOf(byte(0))) + +// HTMLEscape appends to dst the JSON-encoded src with <, >, &, U+2028 and U+2029 +// characters inside string literals changed to \u003c, \u003e, \u0026, \u2028, \u2029 +// so that the JSON will be safe to embed inside HTML + \ No newline at end of file diff --git a/pkg/visor/static/main.ab081323107f8567.js b/pkg/visor/static/main.ab081323107f8567.js new file mode 100644 index 0000000000..d04ebfe8d8 --- /dev/null +++ b/pkg/visor/static/main.ab081323107f8567.js @@ -0,0 +1 @@ +(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[179],{4752:(de,ge,N)=>{"use strict";function O(t){return"function"==typeof t}let v=!1;const u={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const n=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+n.stack)}else v&&console.log("RxJS: Back to a better error behavior. Thank you. <3");v=t},get useDeprecatedSynchronousErrorHandling(){return v}};function f(t){setTimeout(()=>{throw t},0)}const h={closed:!0,next(t){},error(t){if(u.useDeprecatedSynchronousErrorHandling)throw t;f(t)},complete(){}},M=Array.isArray||(t=>t&&"number"==typeof t.length);function p(t){return null!==t&&"object"==typeof t}const x=(()=>{function t(n){return Error.call(this),this.message=n?`${n.length} errors occurred during unsubscription:\n${n.map((e,i)=>`${i+1}) ${e.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=n,this}return t.prototype=Object.create(Error.prototype),t})();class T{constructor(n){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,n&&(this._ctorUnsubscribe=!0,this._unsubscribe=n)}unsubscribe(){let n;if(this.closed)return;let{_parentOrParents:e,_ctorUnsubscribe:i,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,e instanceof T)e.remove(this);else if(null!==e)for(let a=0;an.concat(e instanceof x?e.errors:e),[])}T.EMPTY=((t=new T).closed=!0,t);const k="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class A extends T{constructor(n,e,i){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=h;break;case 1:if(!n){this.destination=h;break}if("object"==typeof n){n instanceof A?(this.syncErrorThrowable=n.syncErrorThrowable,this.destination=n,n.add(this)):(this.syncErrorThrowable=!0,this.destination=new U(this,n));break}default:this.syncErrorThrowable=!0,this.destination=new U(this,n,e,i)}}[k](){return this}static create(n,e,i){const o=new A(n,e,i);return o.syncErrorThrowable=!1,o}next(n){this.isStopped||this._next(n)}error(n){this.isStopped||(this.isStopped=!0,this._error(n))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(n){this.destination.next(n)}_error(n){this.destination.error(n),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:n}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=n,this}}class U extends A{constructor(n,e,i,o){super(),this._parentSubscriber=n;let s,a=this;O(e)?s=e:e&&(s=e.next,i=e.error,o=e.complete,e!==h&&(a=Object.create(e),O(a.unsubscribe)&&this.add(a.unsubscribe.bind(a)),a.unsubscribe=this.unsubscribe.bind(this))),this._context=a,this._next=s,this._error=i,this._complete=o}next(n){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;u.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,n)&&this.unsubscribe():this.__tryOrUnsub(this._next,n)}}error(n){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:i}=u;if(this._error)i&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,n),this.unsubscribe()):(this.__tryOrUnsub(this._error,n),this.unsubscribe());else if(e.syncErrorThrowable)i?(e.syncErrorValue=n,e.syncErrorThrown=!0):f(n),this.unsubscribe();else{if(this.unsubscribe(),i)throw n;f(n)}}}complete(){if(!this.isStopped){const{_parentSubscriber:n}=this;if(this._complete){const e=()=>this._complete.call(this._context);u.useDeprecatedSynchronousErrorHandling&&n.syncErrorThrowable?(this.__tryOrSetError(n,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(n,e){try{n.call(this._context,e)}catch(i){if(this.unsubscribe(),u.useDeprecatedSynchronousErrorHandling)throw i;f(i)}}__tryOrSetError(n,e,i){if(!u.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,i)}catch(o){return u.useDeprecatedSynchronousErrorHandling?(n.syncErrorValue=o,n.syncErrorThrown=!0,!0):(f(o),!0)}return!1}_unsubscribe(){const{_parentSubscriber:n}=this;this._context=null,this._parentSubscriber=null,n.unsubscribe()}}const re="function"==typeof Symbol&&Symbol.observable||"@@observable";function ve(t){return t}function X(t){return 0===t.length?ve:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let he=(()=>{class t{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(e){const i=new t;return i.source=this,i.operator=e,i}subscribe(e,i,o){const{operator:s}=this,a=function K(t,n,e){if(t){if(t instanceof A)return t;if(t[k])return t[k]()}return t||n||e?new A(t,n,e):new A(h)}(e,i,o);if(a.add(s?s.call(a,this.source):this.source||u.useDeprecatedSynchronousErrorHandling&&!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a)),u.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a}_trySubscribe(e){try{return this._subscribe(e)}catch(i){u.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=i),function B(t){for(;t;){const{closed:n,destination:e,isStopped:i}=t;if(n||i)return!1;t=e&&e instanceof A?e:null}return!0}(e)?e.error(i):console.warn(i)}}forEach(e,i){return new(i=q(i))((o,s)=>{let a;a=this.subscribe(l=>{try{e(l)}catch(d){s(d),a&&a.unsubscribe()}},s,o)})}_subscribe(e){const{source:i}=this;return i&&i.subscribe(e)}[re](){return this}pipe(...e){return 0===e.length?this:X(e)(this)}toPromise(e){return new(e=q(e))((i,o)=>{let s;this.subscribe(a=>s=a,a=>o(a),()=>i(s))})}}return t.create=n=>new t(n),t})();function q(t){if(t||(t=u.Promise||Promise),!t)throw new Error("no Promise impl found");return t}const ee=(()=>{function t(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return t.prototype=Object.create(Error.prototype),t})();class ae extends T{constructor(n,e){super(),this.subject=n,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const n=this.subject,e=n.observers;if(this.subject=null,!e||0===e.length||n.isStopped||n.closed)return;const i=e.indexOf(this.subscriber);-1!==i&&e.splice(i,1)}}class le extends A{constructor(n){super(n),this.destination=n}}let J=(()=>{class t extends he{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[k](){return new le(this)}lift(e){const i=new Te(this,this);return i.operator=e,i}next(e){if(this.closed)throw new ee;if(!this.isStopped){const{observers:i}=this,o=i.length,s=i.slice();for(let a=0;anew Te(n,e),t})();class Te extends J{constructor(n,e){super(),this.destination=n,this.source=e}next(n){const{destination:e}=this;e&&e.next&&e.next(n)}error(n){const{destination:e}=this;e&&e.error&&this.destination.error(n)}complete(){const{destination:n}=this;n&&n.complete&&this.destination.complete()}_subscribe(n){const{source:e}=this;return e?this.source.subscribe(n):T.EMPTY}}function Se(t){return t&&"function"==typeof t.schedule}function ke(t,n){return function(i){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return i.lift(new Be(t,n))}}class Be{constructor(n,e){this.project=n,this.thisArg=e}call(n,e){return e.subscribe(new tt(n,this.project,this.thisArg))}}class tt extends A{constructor(n,e,i){super(n),this.project=e,this.count=0,this.thisArg=i||this}_next(n){let e;try{e=this.project.call(this.thisArg,n,this.count++)}catch(i){return void this.destination.error(i)}this.destination.next(e)}}const st=t=>n=>{for(let e=0,i=t.length;et&&"number"==typeof t.length&&"function"!=typeof t;function Pi(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}const Oi=t=>{if(t&&"function"==typeof t[re])return(t=>n=>{const e=t[re]();if("function"!=typeof e.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return e.subscribe(n)})(t);if(Ge(t))return st(t);if(Pi(t))return(t=>n=>(t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,f),n))(t);if(t&&"function"==typeof t[an])return(t=>n=>{const e=t[an]();for(;;){let i;try{i=e.next()}catch(o){return n.error(o),n}if(i.done){n.complete();break}if(n.next(i.value),n.closed)break}return"function"==typeof e.return&&n.add(()=>{e.return&&e.return()}),n})(t);{const e=`You provided ${p(t)?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(e)}};function W(t,n){return new he(e=>{const i=new T;let o=0;return i.add(n.schedule(function(){o!==t.length?(e.next(t[o++]),e.closed||i.add(this.schedule())):e.complete()})),i})}function ue(t,n){return n?function fe(t,n){if(null!=t){if(function te(t){return t&&"function"==typeof t[re]}(t))return function dr(t,n){return new he(e=>{const i=new T;return i.add(n.schedule(()=>{const o=t[re]();i.add(o.subscribe({next(s){i.add(n.schedule(()=>e.next(s)))},error(s){i.add(n.schedule(()=>e.error(s)))},complete(){i.add(n.schedule(()=>e.complete()))}}))})),i})}(t,n);if(Pi(t))return function Xe(t,n){return new he(e=>{const i=new T;return i.add(n.schedule(()=>t.then(o=>{i.add(n.schedule(()=>{e.next(o),i.add(n.schedule(()=>e.complete()))}))},o=>{i.add(n.schedule(()=>e.error(o)))}))),i})}(t,n);if(Ge(t))return W(t,n);if(function pe(t){return t&&"function"==typeof t[an]}(t)||"string"==typeof t)return function oe(t,n){if(!t)throw new Error("Iterable cannot be null");return new he(e=>{const i=new T;let o;return i.add(()=>{o&&"function"==typeof o.return&&o.return()}),i.add(n.schedule(()=>{o=t[an](),i.add(n.schedule(function(){if(e.closed)return;let s,a;try{const l=o.next();s=l.value,a=l.done}catch(l){return void e.error(l)}a?e.complete():(e.next(s),this.schedule())}))})),i})}(t,n)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}(t,n):t instanceof he?t:new he(Oi(t))}class be extends A{constructor(n){super(),this.parent=n}_next(n){this.parent.notifyNext(n)}_error(n){this.parent.notifyError(n),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class Me extends A{notifyNext(n){this.destination.next(n)}notifyError(n){this.destination.error(n)}notifyComplete(){this.destination.complete()}}function Ie(t,n){if(n.closed)return;if(t instanceof he)return t.subscribe(n);let e;try{e=Oi(t)(n)}catch(i){n.error(i)}return e}function Ye(t,n,e=Number.POSITIVE_INFINITY){return"function"==typeof n?i=>i.pipe(Ye((o,s)=>ue(t(o,s)).pipe(ke((a,l)=>n(o,a,s,l))),e)):("number"==typeof n&&(e=n),i=>i.lift(new ut(t,e)))}class ut{constructor(n,e=Number.POSITIVE_INFINITY){this.project=n,this.concurrent=e}call(n,e){return e.subscribe(new mt(n,this.project,this.concurrent))}}class mt extends Me{constructor(n,e,i=Number.POSITIVE_INFINITY){super(n),this.project=e,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(n){this.active0?this._next(n.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function fn(t=Number.POSITIVE_INFINITY){return Ye(ve,t)}function An(t,n){return n?W(t,n):new he(st(t))}function bt(...t){let n=Number.POSITIVE_INFINITY,e=null,i=t[t.length-1];return Se(i)?(e=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof i&&(n=t.pop()),null===e&&1===t.length&&t[0]instanceof he?t[0]:fn(n)(An(t,e))}function qt(){return function(n){return n.lift(new Gn(n))}}class Gn{constructor(n){this.connectable=n}call(n,e){const{connectable:i}=this;i._refCount++;const o=new oi(n,i),s=e.subscribe(o);return o.closed||(o.connection=i.connect()),s}}class oi extends A{constructor(n,e){super(n),this.connectable=e}_unsubscribe(){const{connectable:n}=this;if(!n)return void(this.connection=null);this.connectable=null;const e=n._refCount;if(e<=0)return void(this.connection=null);if(n._refCount=e-1,e>1)return void(this.connection=null);const{connection:i}=this,o=n._connection;this.connection=null,o&&(!i||o===i)&&o.unsubscribe()}}class Kr extends he{constructor(n,e){super(),this.source=n,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let n=this._connection;return n||(this._isComplete=!1,n=this._connection=new T,n.add(this.source.subscribe(new Ai(this.getSubject(),this))),n.closed&&(this._connection=null,n=T.EMPTY)),n}refCount(){return qt()(this)}}const Io=(()=>{const t=Kr.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class Ai extends le{constructor(n,e){super(n),this.connectable=e}_error(n){this._unsubscribe(),super._error(n)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const n=this.connectable;if(n){this.connectable=null;const e=n._connection;n._refCount=0,n._subject=null,n._connection=null,e&&e.unsubscribe()}}}class Fn{constructor(n,e){this.subjectFactory=n,this.selector=e}call(n,e){const{selector:i}=this,o=this.subjectFactory(),s=i(o).subscribe(n);return s.add(e.subscribe(o)),s}}function jd(){return new J}function dl(){return t=>qt()(function si(t,n){return function(i){let o;if(o="function"==typeof t?t:function(){return t},"function"==typeof n)return i.lift(new Fn(o,n));const s=Object.create(i,Io);return s.source=i,s.subjectFactory=o,s}}(jd)(t))}function xn(t){for(let n in t)if(t[n]===xn)return n;throw Error("Could not find renamed property on target object.")}function _a(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}function Fi(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(Fi).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const n=t.toString();if(null==n)return""+n;const e=n.indexOf("\n");return-1===e?n:n.substring(0,e)}function ba(t,n){return null==t||""===t?null===n?"":n:null==n||""===n?t:t+" "+n}const Hg=xn({__forward_ref__:xn});function pn(t){return t.__forward_ref__=pn,t.toString=function(){return Fi(this())},t}function Dt(t){return gt(t)?t():t}function gt(t){return"function"==typeof t&&t.hasOwnProperty(Hg)&&t.__forward_ref__===pn}function zd(t){return t&&!!t.\u0275providers}const hs="https://g.co/ng/security#xss";class Fe extends Error{constructor(n,e){super(function Tn(t,n){return`NG0${Math.abs(t)}${n?": "+n:""}`}(n,e)),this.code=n}}function xt(t){return"string"==typeof t?t:null==t?"":String(t)}function ai(t,n){throw new Fe(-201,!1)}function Zr(t,n){null==t&&function Mn(t,n,e,i){throw new Error(`ASSERTION ERROR: ${t}`+(null==i?"":` [Expected=> ${e} ${i} ${n} <=Actual]`))}(n,t,null,"!=")}function Ne(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Nt(t){return{providers:t.providers||[],imports:t.imports||[]}}function uc(t){return df(t,hc)||df(t,hf)}function df(t,n){return t.hasOwnProperty(n)?t[n]:null}function Gd(t){return t&&(t.hasOwnProperty(qd)||t.hasOwnProperty(zg))?t[qd]:null}const hc=xn({\u0275prov:xn}),qd=xn({\u0275inj:xn}),hf=xn({ngInjectableDef:xn}),zg=xn({ngInjectorDef:xn});var Mt=(()=>((Mt=Mt||{})[Mt.Default=0]="Default",Mt[Mt.Host=1]="Host",Mt[Mt.Self=2]="Self",Mt[Mt.SkipSelf=4]="SkipSelf",Mt[Mt.Optional=8]="Optional",Mt))();let fc;function Wi(t){const n=fc;return fc=t,n}function ul(t,n,e){const i=uc(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&Mt.Optional?null:void 0!==n?n:void ai(Fi(t))}const wn=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),hl={},Kd="__NG_DI_FLAG__",pc="ngTempTokenPath",$g=/\n/gm,pf="__source";let Ma;function gs(t){const n=Ma;return Ma=t,n}function qg(t,n=Mt.Default){if(void 0===Ma)throw new Fe(-203,!1);return null===Ma?ul(t,void 0,n):Ma.get(t,n&Mt.Optional?null:void 0,n)}function we(t,n=Mt.Default){return(function ff(){return fc}()||qg)(Dt(t),n)}function Qe(t,n=Mt.Default){return we(t,mc(n))}function mc(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Zd(t){const n=[];for(let e=0;e((Oo=Oo||{})[Oo.OnPush=0]="OnPush",Oo[Oo.Default=1]="Default",Oo))(),Dr=(()=>(function(t){t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom"}(Dr||(Dr={})),Dr))();const lo={},cn=[],gc=xn({\u0275cmp:xn}),_c=xn({\u0275dir:xn}),bc=xn({\u0275pipe:xn}),_f=xn({\u0275mod:xn}),Zo=xn({\u0275fac:xn}),pl=xn({__NG_ELEMENT_ID__:xn}),bf=xn({__NG_ENV_ID__:xn});function Xd(t,n,e){let i=t.length;for(;;){const o=t.indexOf(n,e);if(-1===o)return o;if(0===o||t.charCodeAt(o-1)<=32){const s=n.length;if(o+s===i||t.charCodeAt(o+s)<=32)return o}e=o+1}}function hi(t,n,e){let i=0;for(;in){a=s-1;break}}}for(;ss?"":o[F+1].toLowerCase();const ie=8&i?G:null;if(ie&&-1!==Xd(ie,_,0)||2&i&&_!==G){if(co(i))return!1;a=!0}}}}else{if(!a&&!co(i)&&!co(d))return!1;if(a&&co(d))continue;a=!1,i=d|1&i}}return co(i)||a}function co(t){return 0==(1&t)}function Jd(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let s=!1;for(;o-1)for(e++;e0?'="'+l+'"':"")+"]"}else 8&i?o+="."+a:4&i&&(o+=" "+a);else""!==o&&!co(a)&&(n+=yf(s,o),o=""),i=a,s=s||!co(i);e++}return""!==o&&(n+=yf(s,o)),n}function Ze(t){return Ko(()=>{const n=wf(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===Oo.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:null,data:t.data||{},encapsulation:t.encapsulation||Dr.Emulated,styles:t.styles||cn,_:null,schemas:t.schemas||null,tView:null,id:""};Cf(e);const i=t.dependencies;return e.directiveDefs=gl(i,!1),e.pipeDefs=gl(i,!0),e.id=function xf(t){let n=0;const e=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const o of e)n=Math.imul(31,n)+o.charCodeAt(0)<<0;return n+=2147483648,"c"+n}(e),e})}function Mc(t,n,e){const i=t.\u0275cmp;i.directiveDefs=gl(n,!1),i.pipeDefs=gl(e,!0)}function i_(t){return gn(t)||hr(t)}function r_(t){return null!==t}function Ht(t){return Ko(()=>({type:t.type,bootstrap:t.bootstrap||cn,declarations:t.declarations||cn,imports:t.imports||cn,exports:t.exports||cn,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Mf(t,n){if(null==t)return lo;const e={};for(const i in t)if(t.hasOwnProperty(i)){let o=t[i],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),e[o]=i,n&&(n[o]=s)}return e}function Ke(t){return Ko(()=>{const n=wf(t);return Cf(n),n})}function ur(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function gn(t){return t[gc]||null}function hr(t){return t[_c]||null}function fr(t){return t[bc]||null}function Nr(t,n){const e=t[_f]||null;if(!e&&!0===n)throw new Error(`Type ${Fi(t)} does not have '\u0275mod' property.`);return e}function wf(t){const n={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,exportAs:t.exportAs||null,standalone:!0===t.standalone,selectors:t.selectors||cn,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Mf(t.inputs,n),outputs:Mf(t.outputs)}}function Cf(t){t.features?.forEach(n=>n(t))}function gl(t,n){if(!t)return null;const e=n?fr:i_;return()=>("function"==typeof t?t():t).map(i=>e(i)).filter(r_)}const zt=0,lt=1,Yt=2,Xn=3,uo=4,Bs=5,pr=6,Ao=7,li=8,Da=9,Vs=10,Et=11,js=12,wc=13,zs=14,xi=15,Us=16,bs=17,Xr=18,_l=19,kf=20,vs=21,Xo=22,Cc=23,xc=24,Qt=25,tu=1,Sf=2,ho=7,kc=8,Ta=9,ni=11;function Yr(t){return Array.isArray(t)&&"object"==typeof t[tu]}function vr(t){return Array.isArray(t)&&!0===t[tu]}function Sc(t){return 0!=(4&t.flags)}function Ws(t){return t.componentOffset>-1}function Dc(t){return 1==(1&t.flags)}function fo(t){return!!t.template}function nu(t){return 0!=(512&t[Yt])}function $s(t,n){return t.hasOwnProperty(Zo)?t[Zo]:null}let p_=wn.WeakRef??class f_{constructor(n){this.ref=n}deref(){return this.ref}},g_=0,Fo=null,Gs=!1;function $i(t){const n=Fo;return Fo=t,n}class If{constructor(){this.id=g_++,this.ref=function m_(t){return new p_(t)}(this),this.producers=new Map,this.consumers=new Map,this.trackingVersion=0,this.valueVersion=0}consumerPollProducersForChange(){for(const[n,e]of this.producers){const i=e.producerNode.deref();if(void 0!==i&&e.atTrackingVersion===this.trackingVersion){if(i.producerPollStatus(e.seenValueVersion))return!0}else this.producers.delete(n),i?.consumers.delete(this.id)}return!1}producerMayHaveChanged(){const n=Gs;Gs=!0;try{for(const[e,i]of this.consumers){const o=i.consumerNode.deref();void 0!==o&&o.trackingVersion===i.atTrackingVersion?o.onConsumerDependencyMayHaveChanged():(this.consumers.delete(e),o?.producers.delete(this.id))}}finally{Gs=n}}producerAccessed(){if(Gs)throw new Error("");if(null===Fo)return;let n=Fo.producers.get(this.id);void 0===n?(n={consumerNode:Fo.ref,producerNode:this.ref,seenValueVersion:this.valueVersion,atTrackingVersion:Fo.trackingVersion},Fo.producers.set(this.id,n),this.consumers.set(Fo.id,n)):(n.seenValueVersion=this.valueVersion,n.atTrackingVersion=Fo.trackingVersion)}get hasProducers(){return this.producers.size>0}get producerUpdatesAllowed(){return!1!==Fo?.consumerAllowSignalWrites}producerPollStatus(n){return this.valueVersion!==n||(this.onProducerUpdateValueVersion(),this.valueVersion!==n)}}let Pf=null;const Je=()=>{};class M_ extends If{constructor(n,e,i){super(),this.watch=n,this.schedule=e,this.dirty=!1,this.cleanupFn=Je,this.registerOnCleanup=o=>{this.cleanupFn=o},this.consumerAllowSignalWrites=i}notify(){this.dirty||this.schedule(this),this.dirty=!0}onConsumerDependencyMayHaveChanged(){this.notify()}onProducerUpdateValueVersion(){}run(){if(this.dirty=!1,0!==this.trackingVersion&&!this.consumerPollProducersForChange())return;const n=$i(this);this.trackingVersion++;try{this.cleanupFn(),this.cleanupFn=Je,this.watch(this.registerOnCleanup)}finally{$i(n)}}cleanup(){this.cleanupFn()}}class w_{constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function Gi(){return Rn}function Rn(t){return t.type.prototype.ngOnChanges&&(t.setInput=Of),Ec}function Ec(){const t=Af(this),n=t?.current;if(n){const e=t.previous;if(e===lo)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function Of(t,n,e,i){const o=this.declaredInputs[e],s=Af(t)||function C_(t,n){return t[Ic]=n}(t,{previous:lo,current:null}),a=s.current||(s.current={}),l=s.previous,d=l[o];a[o]=new w_(d&&d.currentValue,n,l===lo),t[i]=n}Gi.ngInherit=!0;const Ic="__ngSimpleChanges__";function Af(t){return t[Ic]||null}const Ro=function(t,n,e){},No="svg";function Un(t){for(;Array.isArray(t);)t=t[zt];return t}function Pc(t,n){return Un(n[t])}function yr(t,n){return Un(n[t.index])}function lu(t,n){return t.data[n]}function ys(t,n){return t[n]}function Tr(t,n){const e=n[t];return Yr(e)?e:e[zt]}function mo(t){return 128==(128&t[Yt])}function Ms(t,n){return null==n?null:t[n]}function Rf(t){t[bs]=0}function L_(t){1024&t[Yt]||(t[Yt]|=1024,Yf(t,1))}function Nf(t){1024&t[Yt]&&(t[Yt]&=-1025,Yf(t,-1))}function Yf(t,n){let e=t[Xn];if(null===e)return;e[Bs]+=n;let i=e;for(e=e[Xn];null!==e&&(1===n&&1===i[Bs]||-1===n&&0===i[Bs]);)e[Bs]+=n,i=e,e=e[Xn]}const Tt={lFrame:kM(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function Vf(){return Tt.bindingsEnabled}function Ea(){return null!==Tt.skipHydrationRootTNode}function Ve(){return Tt.lFrame.lView}function dn(){return Tt.lFrame.tView}function Pe(t){return Tt.lFrame.contextLView=t,t[li]}function Oe(t){return Tt.lFrame.contextLView=null,t}function tr(){let t=Oc();for(;null!==t&&64===t.type;)t=t.parent;return t}function Oc(){return Tt.lFrame.currentTNode}function Hr(t,n){const e=Tt.lFrame;e.currentTNode=t,e.isParent=n}function tn(){return Tt.lFrame.isParent}function m(){Tt.lFrame.isParent=!1}function ne(){const t=Tt.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function At(){return Tt.lFrame.bindingIndex++}function Ut(t){const n=Tt.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function bl(t,n){const e=Tt.lFrame;e.bindingIndex=e.bindingRootIndex=t,cu(n)}function cu(t){Tt.lFrame.currentDirectiveIndex=t}function Ac(t){const n=Tt.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}function jf(){return Tt.lFrame.currentQueryIndex}function yl(t){Tt.lFrame.currentQueryIndex=t}function GP(t){const n=t[lt];return 2===n.type?n.declTNode:1===n.type?t[pr]:null}function CM(t,n,e){if(e&Mt.SkipSelf){let o=n,s=t;for(;!(o=o.parent,null!==o||e&Mt.Host||(o=GP(s),null===o||(s=s[zs],10&o.type))););if(null===o)return!1;n=o,t=s}const i=Tt.lFrame=xM();return i.currentTNode=n,i.lView=t,!0}function N_(t){const n=xM(),e=t[lt];Tt.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function xM(){const t=Tt.lFrame,n=null===t?null:t.child;return null===n?kM(t):n}function kM(t){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=n),n}function SM(){const t=Tt.lFrame;return Tt.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const DM=SM;function Y_(){const t=SM();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Vr(){return Tt.lFrame.selectedIndex}function Ml(t){Tt.lFrame.selectedIndex=t}function fi(){const t=Tt.lFrame;return lu(t.tView,t.selectedIndex)}function wl(){Tt.lFrame.currentNamespace=No}function zf(){!function XP(){Tt.lFrame.currentNamespace=null}()}let LM=!0;function Uf(){return LM}function Ia(t){LM=t}function Wf(t,n){for(let e=n.directiveStart,i=n.directiveEnd;e=i)break}else n[d]<0&&(t[bs]+=65536),(l>12>16&&(3&t[Yt])===n&&(t[Yt]+=4096,IM(l,s)):IM(l,s)}const Fc=-1;class du{constructor(n,e,i){this.factory=n,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function PM(t){return t!==Fc}function qf(t){return 32767&t}function Kf(t,n){let e=function iO(t){return t>>16}(t),i=n;for(;e>0;)i=i[zs],e--;return i}let V_=!0;function Zf(t){const n=V_;return V_=t,n}const OM=255,AM=5;let rO=0;const Cs={};function Xf(t,n){const e=FM(t,n);if(-1!==e)return e;const i=n[lt];i.firstCreatePass&&(t.injectorIndex=n.length,j_(i.data,t),j_(n,null),j_(i.blueprint,null));const o=z_(t,n),s=t.injectorIndex;if(PM(o)){const a=qf(o),l=Kf(o,n),d=l[lt].data;for(let _=0;_<8;_++)n[s+_]=l[a+_]|d[a+_]}return n[s+8]=o,s}function j_(t,n){t.push(0,0,0,0,0,0,0,0,n)}function FM(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function z_(t,n){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let e=0,i=null,o=n;for(;null!==o;){if(i=jM(o),null===i)return Fc;if(e++,o=o[zs],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return Fc}function U_(t,n,e){!function oO(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(pl)&&(i=e[pl]),null==i&&(i=e[pl]=rO++);const o=i&OM;n.data[t+(o>>AM)]|=1<=0?n&OM:cO:n}(e);if("function"==typeof s){if(!CM(n,t,i))return i&Mt.Host?RM(o,0,i):NM(n,e,i,o);try{const a=s(i);if(null!=a||i&Mt.Optional)return a;ai()}finally{DM()}}else if("number"==typeof s){let a=null,l=FM(t,n),d=Fc,_=i&Mt.Host?n[xi][pr]:null;for((-1===l||i&Mt.SkipSelf)&&(d=-1===l?z_(t,n):n[l+8],d!==Fc&&VM(i,!1)?(a=n[lt],l=qf(d),n=Kf(d,n)):l=-1);-1!==l;){const E=n[lt];if(BM(s,l,E.data)){const F=aO(l,n,e,a,i,_);if(F!==Cs)return F}d=n[l+8],d!==Fc&&VM(i,n[lt].data[l+8]===_)&&BM(s,l,n)?(a=E,l=qf(d),n=Kf(d,n)):l=-1}}return o}function aO(t,n,e,i,o,s){const a=n[lt],l=a.data[t+8],E=Jf(l,a,e,null==i?Ws(l)&&V_:i!=a&&0!=(3&l.type),o&Mt.Host&&s===l);return null!==E?Cl(n,a,E,l):Cs}function Jf(t,n,e,i,o){const s=t.providerIndexes,a=n.data,l=1048575&s,d=t.directiveStart,E=s>>20,G=o?l+E:t.directiveEnd;for(let ie=i?l:l+E;ie=d&&_e.type===e)return ie}if(o){const ie=a[d];if(ie&&fo(ie)&&ie.type===e)return d}return null}function Cl(t,n,e,i){let o=t[e];const s=n.data;if(function eO(t){return t instanceof du}(o)){const a=o;a.resolving&&function ao(t,n){const e=n?`. Dependency path: ${n.join(" > ")} > ${t}`:"";throw new Fe(-200,`Circular dependency in DI detected for ${t}${e}`)}(function yn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():xt(t)}(s[e]));const l=Zf(a.canSeeViewProviders);a.resolving=!0;const d=a.injectImpl?Wi(a.injectImpl):null;CM(t,i,Mt.Default);try{o=t[e]=a.factory(void 0,s,t,i),n.firstCreatePass&&e>=i.directiveStart&&function JP(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:s}=n.type.prototype;if(i){const a=Rn(n);(e.preOrderHooks??=[]).push(t,a),(e.preOrderCheckHooks??=[]).push(t,a)}o&&(e.preOrderHooks??=[]).push(0-t,o),s&&((e.preOrderHooks??=[]).push(t,s),(e.preOrderCheckHooks??=[]).push(t,s))}(e,s[e],n)}finally{null!==d&&Wi(d),Zf(l),a.resolving=!1,DM()}}return o}function BM(t,n,e){return!!(e[n+(t>>AM)]&1<{const n=t.prototype.constructor,e=n[Zo]||W_(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const s=o[Zo]||W_(o);if(s&&s!==e)return s;o=Object.getPrototypeOf(o)}return s=>new s})}function W_(t){return gt(t)?()=>{const n=W_(Dt(t));return n&&n()}:$s(t)}function jM(t){const n=t[lt],e=n.type;return 2===e?n.declTNode:1===e?t[pr]:null}function Pa(t){return function sO(t,n){if("class"===n)return t.classes;if("style"===n)return t.styles;const e=t.attrs;if(e){const i=e.length;let o=0;for(;o{const i=function $_(t){return function(...e){if(t){const i=t(...e);for(const o in i)this[o]=i[o]}}}(n);function o(...s){if(this instanceof o)return i.apply(this,s),this;const a=new o(...s);return l.annotation=a,l;function l(d,_,E){const F=d.hasOwnProperty(Yc)?d[Yc]:Object.defineProperty(d,Yc,{value:[]})[Yc];for(;F.length<=E;)F.push(null);return(F[E]=F[E]||[]).push(a),d}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o})}function fu(t,n){t.forEach(e=>Array.isArray(e)?fu(e,n):n(e))}function UM(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function Qf(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function pu(t,n){const e=[];for(let i=0;i=0?t[1|i]=e:(i=~i,function mO(t,n,e,i){let o=t.length;if(o==n)t.push(e,i);else if(1===o)t.push(i,t[0]),t[0]=e;else{for(o--,t.push(t[o-1],t[o]);o>n;)t[o]=t[o-2],o--;t[n]=e,t[n+1]=i}}(t,i,n,e)),i}function G_(t,n){const e=Vc(t,n);if(e>=0)return t[1|e]}function Vc(t,n){return function WM(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const s=i+(o-i>>1),a=t[s<n?o=s:i=s+1}return~(o<((Jr=Jr||{})[Jr.Important=1]="Important",Jr[Jr.DashCase=2]="DashCase",Jr))();const RO=/^>|^->||--!>|)/,YO="\u200b$1\u200b";const Q_=new Map;let HO=0;const tb="__ngContext__";function Lr(t,n){Yr(n)?(t[tb]=n[_l],function VO(t){Q_.set(t[_l],t)}(n)):t[tb]=n}let nb;function ib(t,n){return nb(t,n)}function bu(t){const n=t[Xn];return vr(n)?n[Xn]:n}function rb(t){return dw(t[js])}function ob(t){return dw(t[uo])}function dw(t){for(;null!==t&&!vr(t);)t=t[uo];return t}function Uc(t,n,e,i,o){if(null!=i){let s,a=!1;vr(i)?s=i:Yr(i)&&(a=!0,i=i[zt]);const l=Un(i);0===t&&null!==e?null==o?mw(n,e,l):kl(n,e,l,o||null,!0):1===t&&null!==e?kl(n,e,l,o||null,!0):2===t?function dp(t,n,e){const i=lp(t,n);i&&function sA(t,n,e,i){t.removeChild(n,e,i)}(t,i,n,e)}(n,l,a):3===t&&n.destroyNode(l),null!=s&&function cA(t,n,e,i,o){const s=e[ho];s!==Un(e)&&Uc(n,t,i,s,o);for(let l=ni;ln.replace(NO,YO))}(n))}function ap(t,n,e){return t.createElement(n,e)}function hw(t,n){const e=t[Ta],i=e.indexOf(n);Nf(n),e.splice(i,1)}function ab(t,n){if(t.length<=ni)return;const e=ni+n,i=t[e];if(i){const o=i[Us];null!==o&&o!==t&&hw(o,i),n>0&&(t[e-1][uo]=i[uo]);const s=Qf(t,ni+n);!function JO(t,n){yu(t,n,n[Et],2,null,null),n[zt]=null,n[pr]=null}(i[lt],i);const a=s[Xr];null!==a&&a.detachView(s[lt]),i[Xn]=null,i[uo]=null,i[Yt]&=-129}return i}function fw(t,n){if(!(256&n[Yt])){const e=n[Et];n[Cc]?.destroy(),n[xc]?.destroy(),e.destroyNode&&yu(t,n,e,3,null,null),function tA(t){let n=t[js];if(!n)return lb(t[lt],t);for(;n;){let e=null;if(Yr(n))e=n[js];else{const i=n[ni];i&&(e=i)}if(!e){for(;n&&!n[uo]&&n!==t;)Yr(n)&&lb(n[lt],n),n=n[Xn];null===n&&(n=t),Yr(n)&&lb(n[lt],n),e=n&&n[uo]}n=e}}(n)}}function lb(t,n){if(!(256&n[Yt])){n[Yt]&=-129,n[Yt]|=256,function oA(t,n){let e;if(null!=t&&null!=(e=t.destroyHooks))for(let i=0;i=0?i[a]():i[-a].unsubscribe(),s+=2}else e[s].call(i[e[s+1]]);null!==i&&(n[Ao]=null);const o=n[vs];if(null!==o){n[vs]=null;for(let s=0;s-1){const{encapsulation:s}=t.data[i.directiveStart+o];if(s===Dr.None||s===Dr.Emulated)return null}return yr(i,e)}}(t,n.parent,e)}function kl(t,n,e,i,o){t.insertBefore(n,e,i,o)}function mw(t,n,e){t.appendChild(n,e)}function gw(t,n,e,i,o){null!==i?kl(t,n,e,i,o):mw(t,n,e)}function lp(t,n){return t.parentNode(n)}function _w(t,n,e){return vw(t,n,e)}let db,up,pb,hp,vw=function bw(t,n,e){return 40&t.type?yr(t,e):null};function cp(t,n,e,i){const o=cb(t,i,n),s=n[Et],l=_w(i.parent||n[pr],i,n);if(null!=o)if(Array.isArray(e))for(let d=0;dt,createScript:t=>t,createScriptURL:t=>t})}catch{}return up}()?.createHTML(t)||t}function Tw(t){return function mb(){if(void 0===hp&&(hp=null,wn.trustedTypes))try{hp=wn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return hp}()?.createScriptURL(t)||t}class Sl{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${hs})`}}class gA extends Sl{getTypeName(){return"HTML"}}class _A extends Sl{getTypeName(){return"Style"}}class bA extends Sl{getTypeName(){return"Script"}}class vA extends Sl{getTypeName(){return"URL"}}class yA extends Sl{getTypeName(){return"ResourceURL"}}function _o(t){return t instanceof Sl?t.changingThisBreaksApplicationSecurity:t}function xs(t,n){const e=function MA(t){return t instanceof Sl&&t.getTypeName()||null}(t);if(null!=e&&e!==n){if("ResourceURL"===e&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${e} (see ${hs})`)}return e===n}class DA{constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(Wc(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.removeChild(e.firstChild),e)}catch{return null}}}class TA{constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=Wc(n),e}}const EA=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function fp(t){return(t=String(t)).match(EA)?t:"unsafe:"+t}function qs(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function wu(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const Ew=qs("area,br,col,hr,img,wbr"),Iw=qs("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Pw=qs("rp,rt"),gb=wu(Ew,wu(Iw,qs("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),wu(Pw,qs("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),wu(Pw,Iw)),_b=qs("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Ow=wu(_b,qs("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),qs("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),IA=qs("script,style,template");class PA{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(n){let e=n.firstChild,i=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=this.checkClobberedElement(e,e.nextSibling);if(o){e=o;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(n){const e=n.nodeName.toLowerCase();if(!gb.hasOwnProperty(e))return this.sanitizedSomething=!0,!IA.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=n.nodeName.toLowerCase();gb.hasOwnProperty(e)&&!Ew.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(Aw(n))}checkClobberedElement(n,e){if(e&&(n.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${n.outerHTML}`);return e}}const OA=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,AA=/([^\#-~ |!])/g;function Aw(t){return t.replace(/&/g,"&").replace(OA,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(AA,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let pp;function Fw(t,n){let e=null;try{pp=pp||function Lw(t){const n=new TA(t);return function LA(){try{return!!(new window.DOMParser).parseFromString(Wc(""),"text/html")}catch{return!1}}()?new DA(n):n}(t);let i=n?String(n):"";e=pp.getInertBodyElement(i);let o=5,s=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=s,s=e.innerHTML,e=pp.getInertBodyElement(i)}while(i!==s);return Wc((new PA).sanitizeChildren(bb(e)||e))}finally{if(e){const i=bb(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function bb(t){return"content"in t&&function FA(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var kn=(()=>((kn=kn||{})[kn.NONE=0]="NONE",kn[kn.HTML=1]="HTML",kn[kn.STYLE=2]="STYLE",kn[kn.SCRIPT=3]="SCRIPT",kn[kn.URL=4]="URL",kn[kn.RESOURCE_URL=5]="RESOURCE_URL",kn))();function Vo(t){const n=Cu();return n?n.sanitize(kn.URL,t)||"":xs(t,"URL")?_o(t):fp(xt(t))}function Rw(t){const n=Cu();if(n)return Tw(n.sanitize(kn.RESOURCE_URL,t)||"");if(xs(t,"ResourceURL"))return Tw(_o(t));throw new Fe(904,!1)}function Cu(){const t=Ve();return t&&t[Vs].sanitizer}class Re{constructor(n,e){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=Ne({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}const xu=new Re("ENVIRONMENT_INITIALIZER"),Yw=new Re("INJECTOR",-1),Hw=new Re("INJECTOR_DEF_TYPES");class Bw{get(n,e=hl){if(e===hl){const i=new Error(`NullInjectorError: No provider for ${Fi(n)}!`);throw i.name="NullInjectorError",i}return e}}function jA(...t){return{\u0275providers:Vw(0,t),\u0275fromNgModule:!0}}function Vw(t,...n){const e=[],i=new Set;let o;return fu(n,s=>{const a=s;yb(a,e,[],i)&&(o||=[],o.push(a))}),void 0!==o&&jw(o,e),e}function jw(t,n){for(let e=0;e{n.push(s)})}}function yb(t,n,e,i){if(!(t=Dt(t)))return!1;let o=null,s=Gd(t);const a=!s&&gn(t);if(s||a){if(a&&!a.standalone)return!1;o=t}else{const d=t.ngModule;if(s=Gd(d),!s)return!1;o=d}const l=i.has(o);if(a){if(l)return!1;if(i.add(o),a.dependencies){const d="function"==typeof a.dependencies?a.dependencies():a.dependencies;for(const _ of d)yb(_,n,e,i)}}else{if(!s)return!1;{if(null!=s.imports&&!l){let _;i.add(o);try{fu(s.imports,E=>{yb(E,n,e,i)&&(_||=[],_.push(E))})}finally{}void 0!==_&&jw(_,n)}if(!l){const _=$s(o)||(()=>new o);n.push({provide:o,useFactory:_,deps:cn},{provide:Hw,useValue:o,multi:!0},{provide:xu,useValue:()=>we(o),multi:!0})}const d=s.providers;null==d||l||Mb(d,E=>{n.push(E)})}}return o!==t&&void 0!==t.providers}function Mb(t,n){for(let e of t)zd(e)&&(e=e.\u0275providers),Array.isArray(e)?Mb(e,n):n(e)}const zA=xn({provide:String,useValue:xn});function wb(t){return null!==t&&"object"==typeof t&&zA in t}function Dl(t){return"function"==typeof t}const Cb=new Re("Set Injector scope."),mp={},WA={};let xb;function gp(){return void 0===xb&&(xb=new Bw),xb}class ks{}class kb extends ks{get destroyed(){return this._destroyed}constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Db(n,a=>this.processProvider(a)),this.records.set(Yw,$c(void 0,this)),o.has("environment")&&this.records.set(ks,$c(void 0,this));const s=this.records.get(Cb);null!=s&&"string"==typeof s.value&&this.scopes.add(s.value),this.injectorDefTypes=new Set(this.get(Hw.multi,cn,Mt.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const e of this._ngOnDestroyHooks)e.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const e of n)e()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const e=gs(this),i=Wi(void 0);try{return n()}finally{gs(e),Wi(i)}}get(n,e=hl,i=Mt.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(bf))return n[bf](this);i=mc(i);const o=gs(this),s=Wi(void 0);try{if(!(i&Mt.SkipSelf)){let l=this.records.get(n);if(void 0===l){const d=function ZA(t){return"function"==typeof t||"object"==typeof t&&t instanceof Re}(n)&&uc(n);l=d&&this.injectableDefInScope(d)?$c(Sb(n),mp):null,this.records.set(n,l)}if(null!=l)return this.hydrate(n,l)}return(i&Mt.Self?gp():this.parent).get(n,e=i&Mt.Optional&&e===hl?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[pc]=a[pc]||[]).unshift(Fi(n)),o)throw a;return function Zg(t,n,e,i){const o=t[pc];throw n[pf]&&o.unshift(n[pf]),t.message=function Xg(t,n,e,i=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let o=Fi(n);if(Array.isArray(n))o=n.map(Fi).join(" -> ");else if("object"==typeof n){let s=[];for(let a in n)if(n.hasOwnProperty(a)){let l=n[a];s.push(a+":"+("string"==typeof l?JSON.stringify(l):Fi(l)))}o=`{${s.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${t.replace($g,"\n ")}`}("\n"+t.message,o,e,i),t.ngTokenPath=o,t[pc]=null,t}(a,n,"R3InjectorError",this.source)}throw a}finally{Wi(s),gs(o)}}resolveInjectorInitializers(){const n=gs(this),e=Wi(void 0);try{const i=this.get(xu.multi,cn,Mt.Self);for(const o of i)o()}finally{gs(n),Wi(e)}}toString(){const n=[],e=this.records;for(const i of e.keys())n.push(Fi(i));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Fe(205,!1)}processProvider(n){let e=Dl(n=Dt(n))?n:Dt(n&&n.provide);const i=function GA(t){return wb(t)?$c(void 0,t.useValue):$c(Ww(t),mp)}(n);if(Dl(n)||!0!==n.multi)this.records.get(e);else{let o=this.records.get(e);o||(o=$c(void 0,mp,!0),o.factory=()=>Zd(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e){return e.value===mp&&(e.value=WA,e.value=e.factory()),"object"==typeof e.value&&e.value&&function KA(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}injectableDefInScope(n){if(!n.providedIn)return!1;const e=Dt(n.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(n){const e=this._onDestroyHooks.indexOf(n);-1!==e&&this._onDestroyHooks.splice(e,1)}}function Sb(t){const n=uc(t),e=null!==n?n.factory:$s(t);if(null!==e)return e;if(t instanceof Re)throw new Fe(204,!1);if(t instanceof Function)return function $A(t){const n=t.length;if(n>0)throw pu(n,"?"),new Fe(204,!1);const e=function uf(t){return t&&(t[hc]||t[hf])||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new Fe(204,!1)}function Ww(t,n,e){let i;if(Dl(t)){const o=Dt(t);return $s(o)||Sb(o)}if(wb(t))i=()=>Dt(t.useValue);else if(function Uw(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...Zd(t.deps||[]));else if(function zw(t){return!(!t||!t.useExisting)}(t))i=()=>we(Dt(t.useExisting));else{const o=Dt(t&&(t.useClass||t.provide));if(!function qA(t){return!!t.deps}(t))return $s(o)||Sb(o);i=()=>new o(...Zd(t.deps))}return i}function $c(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function Db(t,n){for(const e of t)Array.isArray(e)?Db(e,n):e&&zd(e)?Db(e.\u0275providers,n):n(e)}const ku=new Re("AppId",{providedIn:"root",factory:()=>XA}),XA="ng",$w=new Re("Platform Initializer"),Oa=new Re("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),Ri=new Re("AnimationModuleType"),Tb=new Re("CSP nonce",{providedIn:"root",factory:()=>function Mu(){if(void 0!==pb)return pb;if(typeof document<"u")return document;throw new Fe(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let qw=(t,n)=>null;function Kw(t,n){return qw(t,n)}class sF{}class Jw{}class lF{resolveComponentFactory(n){throw function aF(t){const n=Error(`No component factory found for ${Fi(t)}.`);return n.ngComponent=t,n}(n)}}let Tl=(()=>{class t{}return t.NULL=new lF,t})();function cF(){return Gc(tr(),Ve())}function Gc(t,n){return new vt(yr(t,n))}let vt=(()=>{class t{constructor(e){this.nativeElement=e}}return t.__NG_ELEMENT_ID__=cF,t})();function dF(t){return t instanceof vt?t.nativeElement:t}class Lu{}let Ks=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>function uF(){const t=Ve(),e=Tr(tr().index,t);return(Yr(e)?e:t)[Et]}(),t})(),hF=(()=>{class t{}return t.\u0275prov=Ne({token:t,providedIn:"root",factory:()=>null}),t})();class Ll{constructor(n){this.full=n,this.major=n.split(".")[0],this.minor=n.split(".")[1],this.patch=n.split(".").slice(2).join(".")}}const fF=new Ll("16.0.2"),Hb={};function Eu(t){for(;t;){t[Yt]|=64;const n=bu(t);if(nu(t)&&!n)return t;t=n}return null}function Bb(t){return t.ngOriginalError}class Ss{constructor(){this._console=console}handleError(n){const e=this._findOriginalError(n);this._console.error("ERROR",n),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(n){let e=n&&Bb(n);for(;e&&Bb(e);)e=Bb(e);return e||null}}const nC=new Re("",{providedIn:"root",factory:()=>!1});function Vb(t){return t.ownerDocument.defaultView}function Zs(t){return t instanceof Function?t():t}class oC extends If{constructor(){super(...arguments),this.consumerAllowSignalWrites=!1,this._lView=null}set lView(n){this._lView=n}onConsumerDependencyMayHaveChanged(){Eu(this._lView)}onProducerUpdateValueVersion(){}get hasReadASignal(){return this.hasProducers}runInContext(n,e,i){const o=$i(this);this.trackingVersion++;try{n(e,i)}finally{$i(o)}}destroy(){this.trackingVersion++}}let wp=null;function sC(){return wp??=new oC,wp}function aC(t,n){return t[n]??sC()}function lC(t,n){const e=sC();e.hasReadASignal&&(t[n]=wp,e.lView=t,wp=new oC)}const Bt={};function c(t){cC(dn(),Ve(),Vr()+t,!1)}function cC(t,n,e,i){if(!i)if(3==(3&n[Yt])){const s=t.preOrderCheckHooks;null!==s&&$f(n,s,e)}else{const s=t.preOrderHooks;null!==s&&Gf(n,s,0,e)}Ml(e)}function fC(t,n=null,e=null,i){const o=pC(t,n,e,i);return o.resolveInjectorInitializers(),o}function pC(t,n=null,e=null,i,o=new Set){const s=[e||cn,jA(t)];return i=i||("object"==typeof t?void 0:Fi(t)),new kb(s,n||gp(),i||null,o)}let Si=(()=>{class t{static create(e,i){if(Array.isArray(e))return fC({name:""},i,e,"");{const o=e.name??"";return fC({name:o},e.parent,e.providers,o)}}}return t.THROW_IF_NOT_FOUND=hl,t.NULL=new Bw,t.\u0275prov=Ne({token:t,providedIn:"any",factory:()=>we(Yw)}),t.__NG_ELEMENT_ID__=-1,t})();function Y(t,n=Mt.Default){const e=Ve();return null===e?we(t,n):YM(tr(),e,Dt(t),n)}function Aa(){throw new Error("invalid")}function Cp(t,n,e,i,o,s,a,l,d,_,E){const F=n.blueprint.slice();return F[zt]=o,F[Yt]=140|i,(null!==_||t&&2048&t[Yt])&&(F[Yt]|=2048),Rf(F),F[Xn]=F[zs]=t,F[li]=e,F[Vs]=a||t&&t[Vs],F[Et]=l||t&&t[Et],F[Da]=d||t&&t[Da]||null,F[pr]=s,F[_l]=function BO(){return HO++}(),F[Xo]=E,F[kf]=_,F[xi]=2==n.type?t[xi]:F,F}function Kc(t,n,e,i,o){let s=t.data[n];if(null===s)s=function jb(t,n,e,i,o){const s=Oc(),a=tn(),d=t.data[n]=function OF(t,n,e,i,o,s){let a=n?n.injectorIndex:-1,l=0;return Ea()&&(l|=128),{type:e,index:i,insertBeforeIndex:null,injectorIndex:a,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:l,providerIndexes:0,value:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,a?s:s&&s.parent,e,n,i,o);return null===t.firstChild&&(t.firstChild=d),null!==s&&(a?null==s.child&&null!==d.parent&&(s.child=d):null===s.next&&(s.next=d,d.prev=s)),d}(t,n,e,i,o),function ki(){return Tt.lFrame.inI18n}()&&(s.flags|=32);else if(64&s.type){s.type=e,s.value=i,s.attrs=o;const a=function Ho(){const t=Tt.lFrame,n=t.currentTNode;return t.isParent?n:n.parent}();s.injectorIndex=null===a?-1:a.injectorIndex}return Hr(s,!0),s}function Iu(t,n,e,i){if(0===e)return-1;const o=n.length;for(let s=0;sQt&&cC(t,n,Qt,!1),Ro(l?2:0,o),l)s.runInContext(e,i,o);else{const _=$i(null);try{e(i,o)}finally{$i(_)}}}finally{l&&null===n[Cc]&&lC(n,Cc),Ml(a),Ro(l?3:1,o)}}function zb(t,n,e){if(Sc(n)){const i=$i(null);try{const s=n.directiveEnd;for(let a=n.directiveStart;anull;function bC(t,n,e,i){for(let o in t)if(t.hasOwnProperty(o)){e=null===e?{}:e;const s=t[o];null===i?vC(e,n,o,s):i.hasOwnProperty(o)&&vC(e,n,i[o],s)}return e}function vC(t,n,e,i){t.hasOwnProperty(e)?t[e].push(n,i):t[e]=[n,i]}function bo(t,n,e,i,o,s,a,l){const d=yr(n,e);let E,_=n.inputs;!l&&null!=_&&(E=_[i])?(Xb(t,e,E,i,o),Ws(n)&&function RF(t,n){const e=Tr(n,t);16&e[Yt]||(e[Yt]|=64)}(e,n.index)):3&n.type&&(i=function FF(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(i),o=null!=a?a(o,n.value||"",i):o,s.setProperty(d,i,o))}function Gb(t,n,e,i){if(Vf()){const o=null===i?null:{"":-1},s=function jF(t,n){const e=t.directiveRegistry;let i=null,o=null;if(e)for(let s=0;s0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(a)!=l&&a.push(l),a.push(e,i,s)}}(t,n,i,Iu(t,e,o.hostVars,Bt),o)}function Ds(t,n,e,i,o,s){const a=yr(t,n);!function Kb(t,n,e,i,o,s,a){if(null==s)t.removeAttribute(n,o,e);else{const l=null==a?xt(s):a(s,i||"",o);t.setAttribute(n,o,l,e)}}(n[Et],a,s,t.value,e,i,o)}function qF(t,n,e,i,o,s){const a=s[n];if(null!==a)for(let l=0;l{class t{constructor(){this.all=new Set,this.queue=new Map}create(e,i,o){const s=typeof Zone>"u"?null:Zone.current,a=new M_(e,_=>{this.all.has(_)&&this.queue.set(_,s)},o);let l;this.all.add(a),a.notify();const d=()=>{a.cleanup(),l?.(),this.all.delete(a),this.queue.delete(a)};return l=i?.onDestroy(d),{destroy:d}}flush(){if(0!==this.queue.size)for(const[e,i]of this.queue)this.queue.delete(e),i?i.run(()=>e.run()):e.run()}get isQueueEmpty(){return 0===this.queue.size}}return t.\u0275prov=Ne({token:t,providedIn:"root",factory:()=>new t}),t})();function kp(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,s=0;if(null!==n)for(let a=0;a0&&Qb(e)}}function Qb(t){for(let i=rb(t);null!==i;i=ob(i))for(let o=ni;o0&&Qb(s)}const e=t[lt].components;if(null!==e)for(let i=0;i0&&Qb(o)}}class Ou{get rootNodes(){const n=this._lView,e=n[lt];return Pu(e,n,e.firstChild,[])}constructor(n,e){this._lView=n,this._cdRefInjectingView=e,this._appRef=null,this._attachedToViewContainer=!1}get context(){return this._lView[li]}set context(n){this._lView[li]=n}get destroyed(){return 256==(256&this._lView[Yt])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const n=this._lView[Xn];if(vr(n)){const e=n[kc],i=e?e.indexOf(this):-1;i>-1&&(ab(n,i),Qf(e,i))}this._attachedToViewContainer=!1}fw(this._lView[lt],this._lView)}onDestroy(n){!function Hf(t,n){if(256==(256&t[Yt]))throw new Fe(911,!1);null===t[vs]&&(t[vs]=[]),t[vs].push(n)}(this._lView,n)}markForCheck(){Eu(this._cdRefInjectingView||this._lView)}detach(){this._lView[Yt]&=-129}reattach(){this._lView[Yt]|=128}detectChanges(){Sp(this._lView[lt],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Fe(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function eA(t,n){yu(t,n,n[Et],2,null,null)}(this._lView[lt],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new Fe(902,!1);this._appRef=n}}class aR extends Ou{constructor(n){super(n),this._view=n}detectChanges(){const n=this._view;Sp(n[lt],n,n[li],!1)}checkNoChanges(){}get context(){return null}}class EC extends Tl{constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const e=gn(n);return new Au(e,this.ngModule)}}function IC(t){const n=[];for(let e in t)t.hasOwnProperty(e)&&n.push({propName:t[e],templateName:e});return n}class cR{constructor(n,e){this.injector=n,this.parentInjector=e}get(n,e,i){i=mc(i);const o=this.injector.get(n,Hb,i);return o!==Hb||e===Hb?o:this.parentInjector.get(n,e,i)}}class Au extends Jw{get inputs(){return IC(this.componentDef.inputs)}get outputs(){return IC(this.componentDef.outputs)}constructor(n,e){super(),this.componentDef=n,this.ngModule=e,this.componentType=n.type,this.selector=function yc(t){return t.map(n_).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors?n.ngContentSelectors:[],this.isBoundToModule=!!e}create(n,e,i,o){let s=(o=o||this.ngModule)instanceof ks?o:o?.injector;s&&null!==this.componentDef.getStandaloneInjector&&(s=this.componentDef.getStandaloneInjector(s)||s);const a=s?new cR(n,s):n,l=a.get(Lu,null);if(null===l)throw new Fe(407,!1);const E={rendererFactory:l,sanitizer:a.get(hF,null),effectManager:a.get(LC,null)},F=l.createRenderer(null,this.componentDef),G=this.componentDef.selectors[0][0]||"div",ie=i?function TF(t,n,e,i){const s=i.get(nC,!1)||e===Dr.ShadowDom,a=t.selectRootElement(n,s);return function LF(t){_C(t)}(a),a}(F,i,this.componentDef.encapsulation,a):ap(F,G,function lR(t){const n=t.toLowerCase();return"svg"===n?No:"math"===n?"math":null}(G)),_e=this.componentDef.onPush?576:528,Ce=$b(0,null,null,1,0,null,null,null,null,null,null),Ae=Cp(null,Ce,null,_e,null,null,E,F,a,null,null);let ze,Ee;N_(Ae);try{const qe=this.componentDef;let dt,Rt=null;qe.findHostDirectiveDefs?(dt=[],Rt=new Map,qe.findHostDirectiveDefs(qe,dt,Rt),dt.push(qe)):dt=[qe];const sn=function uR(t,n){const e=t[lt],i=Qt;return t[i]=n,Kc(e,i,2,"#host",null)}(Ae,ie),Ii=function hR(t,n,e,i,o,s,a){const l=o[lt];!function fR(t,n,e,i){for(const o of t)n.mergedAttrs=xa(n.mergedAttrs,o.hostAttrs);null!==n.mergedAttrs&&(kp(n,n.mergedAttrs,!0),null!==e&&kw(i,e,n))}(i,t,n,a);let d=null;null!==n&&(d=Kw(n,o[Da]));const _=s.rendererFactory.createRenderer(n,e),E=Cp(o,gC(e),null,e.onPush?64:16,o[t.index],t,s,_,null,null,d);return l.firstCreatePass&&qb(l,t,i.length-1),xp(o,E),o[t.index]=E}(sn,ie,qe,dt,Ae,E,F);Ee=lu(Ce,Qt),ie&&function mR(t,n,e,i){if(i)hi(t,e,["ng-version",fF.full]);else{const{attrs:o,classes:s}=function eu(t){const n=[],e=[];let i=1,o=2;for(;i0&&xw(t,e,s.join(" "))}}(F,qe,ie,i),void 0!==e&&function gR(t,n,e){const i=t.projection=[];for(let o=0;o=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=xa(o.hostAttrs,e=xa(e,o.hostAttrs))}}(i)}function ev(t){return t===lo?{}:t===cn?[]:t}function vR(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function yR(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,s)=>{n(i,o,s),e(i,o,s)}:n}function MR(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function Tp(t){return!!tv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function tv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function Ts(t,n,e){return t[n]=e}function Er(t,n,e){return!Object.is(t[n],e)&&(t[n]=e,!0)}function El(t,n,e,i){const o=Er(t,n,e);return Er(t,n+1,i)||o}function Xt(t,n,e,i){const o=Ve();return Er(o,At(),n)&&(dn(),Ds(fi(),o,t,n,e,i)),Xt}function Xc(t,n,e,i){return Er(t,At(),e)?n+xt(e)+i:Bt}function Jc(t,n,e,i,o,s){const l=El(t,function Le(){return Tt.lFrame.bindingIndex}(),e,o);return Ut(2),l?n+xt(e)+i+xt(o)+s:Bt}function V(t,n,e,i,o,s,a,l){const d=Ve(),_=dn(),E=t+Qt,F=_.firstCreatePass?function $R(t,n,e,i,o,s,a,l,d){const _=n.consts,E=Kc(n,t,4,a||null,Ms(_,l));Gb(n,e,E,Ms(_,d)),Wf(n,E);const F=E.tView=$b(2,E,i,o,s,n.directiveRegistry,n.pipeRegistry,null,n.schemas,_,null);return null!==n.queries&&(n.queries.template(n,E),F.queries=n.queries.embeddedTView(E)),E}(E,_,d,n,e,i,o,s,a):_.data[E];Hr(F,!1);const G=qC(_,d,F,t);Uf()&&cp(_,d,G,F),Lr(G,d),xp(d,d[E]=CC(G,d,G,F)),Dc(F)&&Ub(_,d,F),null!=a&&Wb(d,F,l)}let qC=function KC(t,n,e,i){return Ia(!0),n[Et].createComment("")};function ci(t){return ys(function P(){return Tt.lFrame.contextLView}(),Qt+t)}function w(t,n,e){const i=Ve();return Er(i,At(),n)&&bo(dn(),fi(),i,t,n,i[Et],e,!1),w}function av(t,n,e,i,o){const a=o?"class":"style";Xb(t,e,n.inputs[a],a,i)}function D(t,n,e,i){const o=Ve(),s=dn(),a=Qt+t,l=o[Et],d=s.firstCreatePass?function ZR(t,n,e,i,o,s){const a=n.consts,d=Kc(n,t,2,i,Ms(a,o));return Gb(n,e,d,Ms(a,s)),null!==d.attrs&&kp(d,d.attrs,!1),null!==d.mergedAttrs&&kp(d,d.mergedAttrs,!0),null!==n.queries&&n.queries.elementStart(n,d),d}(a,s,o,n,e,i):s.data[a],_=ZC(s,o,d,l,n,t);o[a]=_;const E=Dc(d);return Hr(d,!0),kw(l,_,d),32!=(32&d.flags)&&Uf()&&cp(s,o,_,d),0===function I_(){return Tt.lFrame.elementDepthCount}()&&Lr(_,o),function P_(){Tt.lFrame.elementDepthCount++}(),E&&(Ub(s,o,d),zb(s,d,o)),null!==i&&Wb(o,d),D}function C(){let t=tr();tn()?m():(t=t.parent,Hr(t,!1));const n=t;(function A_(t){return Tt.skipHydrationRootTNode===t})(n)&&function Yo(){Tt.skipHydrationRootTNode=null}(),function O_(){Tt.lFrame.elementDepthCount--}();const e=dn();return e.firstCreatePass&&(Wf(e,t),Sc(t)&&e.queries.elementEnd(t)),null!=n.classesWithoutHost&&function tO(t){return 0!=(8&t.flags)}(n)&&av(e,n,Ve(),n.classesWithoutHost,!0),null!=n.stylesWithoutHost&&function nO(t){return 0!=(16&t.flags)}(n)&&av(e,n,Ve(),n.stylesWithoutHost,!1),C}function xe(t,n,e,i){return D(t,n,e,i),C(),xe}let ZC=(t,n,e,i,o,s)=>(Ia(!0),ap(i,o,function TM(){return Tt.lFrame.currentNamespace}()));function Ue(t,n,e){const i=Ve(),o=dn(),s=t+Qt,a=o.firstCreatePass?function QR(t,n,e,i,o){const s=n.consts,a=Ms(s,i),l=Kc(n,t,8,"ng-container",a);return null!==a&&kp(l,a,!0),Gb(n,e,l,Ms(s,o)),null!==n.queries&&n.queries.elementStart(n,l),l}(s,o,i,n,e):o.data[s];Hr(a,!0);const l=XC(o,i,a,t);return i[s]=l,Uf()&&cp(o,i,l,a),Lr(l,i),Dc(a)&&(Ub(o,i,a),zb(o,a,i)),null!=e&&Wb(i,a),Ue}function We(){let t=tr();const n=dn();return tn()?m():(t=t.parent,Hr(t,!1)),n.firstCreatePass&&(Wf(n,t),Sc(t)&&n.queries.elementEnd(t)),We}function Jo(t,n,e){return Ue(t,n,e),We(),Jo}let XC=(t,n,e,i)=>(Ia(!0),sb(n[Et],""));function et(){return Ve()}function Hu(t){return!!t&&"function"==typeof t.then}function JC(t){return!!t&&"function"==typeof t.subscribe}function ye(t,n,e,i){const o=Ve(),s=dn(),a=tr();return QC(s,o,o[Et],a,t,n,i),ye}function lv(t,n){const e=tr(),i=Ve(),o=dn();return QC(o,i,DC(Ac(o.data),e,i),e,t,n),lv}function QC(t,n,e,i,o,s,a){const l=Dc(i),_=t.firstCreatePass&&SC(t),E=n[li],F=kC(n);let G=!0;if(3&i.type||a){const Ce=yr(i,n),Ae=a?a(Ce):Ce,ze=F.length,Ee=a?dt=>a(Un(dt[i.index])):i.index;let qe=null;if(!a&&l&&(qe=function n3(t,n,e,i){const o=t.cleanup;if(null!=o)for(let s=0;sd?l[d]:null}"string"==typeof a&&(s+=2)}return null}(t,n,o,i.index)),null!==qe)(qe.__ngLastListenerFn__||qe).__ngNextListenerFn__=s,qe.__ngLastListenerFn__=s,G=!1;else{s=tx(i,n,E,s,!1);const dt=e.listen(Ae,o,s);F.push(s,dt),_&&_.push(o,Ee,ze,ze+1)}}else s=tx(i,n,E,s,!1);const ie=i.outputs;let _e;if(G&&null!==ie&&(_e=ie[o])){const Ce=_e.length;if(Ce)for(let Ae=0;Ae-1?Tr(t.index,n):n);let d=ex(n,e,i,a),_=s.__ngNextListenerFn__;for(;_;)d=ex(n,e,_,a)&&d,_=_.__ngNextListenerFn__;return o&&!1===d&&a.preventDefault(),d}}function z(t=1){return function qP(t){return(Tt.lFrame.contextLView=function KP(t,n){for(;t>0;)n=n[zs],t--;return n}(t,Tt.lFrame.contextLView))[li]}(t)}function r3(t,n){let e=null;const i=function Qg(t){const n=t.attrs;if(null!=n){const e=n.indexOf(5);if(!(1&e))return n[e+1]}return null}(t);for(let o=0;o>17&32767}function dv(t){return 2|t}function Il(t){return(131068&t)>>2}function uv(t,n){return-131069&t|n<<2}function hv(t){return 1|t}function dx(t,n,e,i,o){const s=t[e+1],a=null===n;let l=i?Fa(s):Il(s),d=!1;for(;0!==l&&(!1===d||a);){const E=t[l+1];d3(t[l],n)&&(d=!0,t[l+1]=i?hv(E):dv(E)),l=i?Fa(E):Il(E)}d&&(t[e+1]=i?dv(s):hv(s))}function d3(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&Vc(t,n)>=0}const ir={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function ux(t){return t.substring(ir.key,ir.keyEnd)}function u3(t){return t.substring(ir.value,ir.valueEnd)}function hx(t,n){const e=ir.textEnd;return e===n?-1:(n=ir.keyEnd=function p3(t,n,e){for(;n32;)n++;return n}(t,ir.key=n,e),od(t,n,e))}function fx(t,n){const e=ir.textEnd;let i=ir.key=od(t,n,e);return e===i?-1:(i=ir.keyEnd=function m3(t,n,e){let i;for(;n=65&&(-33&i)<=90||i>=48&&i<=57);)n++;return n}(t,i,e),i=mx(t,i,e),i=ir.value=od(t,i,e),i=ir.valueEnd=function g3(t,n,e){let i=-1,o=-1,s=-1,a=n,l=a;for(;a32&&(l=a),s=o,o=i,i=-33&d}return l}(t,i,e),mx(t,i,e))}function px(t){ir.key=0,ir.keyEnd=0,ir.value=0,ir.valueEnd=0,ir.textEnd=t.length}function od(t,n,e){for(;n=0;e=fx(n,e))vx(t,ux(n),u3(n))}function eo(t){es(C3,Ls,t,!0)}function Ls(t,n){for(let e=function h3(t){return px(t),hx(t,od(t,0,ir.textEnd))}(n);e>=0;e=hx(n,e))go(t,ux(n),!0)}function Qo(t,n,e,i){const o=Ve(),s=dn(),a=Ut(2);s.firstUpdatePass&&bx(s,t,a,i),n!==Bt&&Er(o,a,n)&&yx(s,s.data[Vr()],o,o[Et],t,o[a+1]=function k3(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=Fi(_o(t)))),t}(n,e),i,a)}function es(t,n,e,i){const o=dn(),s=Ut(2);o.firstUpdatePass&&bx(o,null,s,i);const a=Ve();if(e!==Bt&&Er(a,s,e)){const l=o.data[Vr()];if(wx(l,i)&&!_x(o,s)){let d=i?l.classesWithoutHost:l.stylesWithoutHost;null!==d&&(e=ba(d,e||"")),av(o,l,a,e,i)}else!function x3(t,n,e,i,o,s,a,l){o===Bt&&(o=cn);let d=0,_=0,E=0=t.expandoStartIndex}function bx(t,n,e,i){const o=t.data;if(null===o[e+1]){const s=o[Vr()],a=_x(t,e);wx(s,i)&&null===n&&!a&&(n=!1),n=function b3(t,n,e,i){const o=Ac(t);let s=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=Bu(e=fv(null,t,n,e,i),n.attrs,i),s=null);else{const a=n.directiveStylingLast;if(-1===a||t[a]!==o)if(e=fv(o,t,n,e,i),null===s){let d=function v3(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==Il(i))return t[Fa(i)]}(t,n,i);void 0!==d&&Array.isArray(d)&&(d=fv(null,t,n,d[1],i),d=Bu(d,n.attrs,i),function y3(t,n,e,i){t[Fa(e?n.classBindings:n.styleBindings)]=i}(t,n,i,d))}else s=function M3(t,n,e){let i;const o=n.directiveEnd;for(let s=1+n.directiveStylingLast;s0)&&(_=!0)):E=e,o)if(0!==d){const G=Fa(t[l+1]);t[i+1]=Op(G,l),0!==G&&(t[G+1]=uv(t[G+1],i)),t[l+1]=function s3(t,n){return 131071&t|n<<17}(t[l+1],i)}else t[i+1]=Op(l,0),0!==l&&(t[l+1]=uv(t[l+1],i)),l=i;else t[i+1]=Op(d,0),0===l?l=i:t[d+1]=uv(t[d+1],i),d=i;_&&(t[i+1]=dv(t[i+1])),dx(t,E,i,!0),dx(t,E,i,!1),function c3(t,n,e,i,o){const s=o?t.residualClasses:t.residualStyles;null!=s&&"string"==typeof n&&Vc(s,n)>=0&&(e[i+1]=hv(e[i+1]))}(n,E,t,i,s),a=Op(l,d),s?n.classBindings=a:n.styleBindings=a}(o,s,n,e,a,i)}}function fv(t,n,e,i,o){let s=null;const a=e.directiveEnd;let l=e.directiveStylingLast;for(-1===l?l=e.directiveStart:l++;l0;){const d=t[o],_=Array.isArray(d),E=_?d[1]:d,F=null===E;let G=e[o+1];G===Bt&&(G=F?cn:void 0);let ie=F?G_(G,i):E===i?G:void 0;if(_&&!Ap(ie)&&(ie=G_(d,i)),Ap(ie)&&(l=ie,a))return l;const _e=t[o+1];o=a?Fa(_e):Il(_e)}if(null!==n){let d=s?n.residualClasses:n.residualStyles;null!=d&&(l=G_(d,i))}return l}function Ap(t){return void 0!==t}function wx(t,n){return 0!=(t.flags&(n?8:16))}function I(t,n=""){const e=Ve(),i=dn(),o=t+Qt,s=i.firstCreatePass?Kc(i,o,1,n,null):i.data[o],a=Cx(i,e,s,n,t);e[o]=a,Uf()&&cp(i,e,a,s),Hr(s,!1)}let Cx=(t,n,e,i,o)=>(Ia(!0),function sp(t,n){return t.createText(n)}(n[Et],i));function se(t){return ce("",t,""),se}function ce(t,n,e){const i=Ve(),o=Xc(i,t,n,e);return o!==Bt&&Xs(i,Vr(),o),ce}function vo(t,n,e,i,o){const s=Ve(),a=Jc(s,t,n,e,i,o);return a!==Bt&&Xs(s,Vr(),a),vo}function Js(t,n,e){const i=Ve();return Er(i,At(),n)&&bo(dn(),fi(),i,t,n,i[Et],e,!0),Js}function pv(t,n,e){const i=Ve();if(Er(i,At(),n)){const s=dn(),a=fi();bo(s,a,i,t,n,DC(Ac(s.data),a,i),e,!0)}return pv}const Ol=void 0;var $3=["en",[["a","p"],["AM","PM"],Ol],[["AM","PM"],Ol,Ol],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Ol,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Ol,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Ol,"{1} 'at' {0}",Ol],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function W3(t){const e=Math.floor(Math.abs(t)),i=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let sd={};function jr(t){const n=function G3(t){return t.toLowerCase().replace(/_/g,"-")}(t);let e=jx(n);if(e)return e;const i=n.split("-")[0];if(e=jx(i),e)return e;if("en"===i)return $3;throw new Fe(701,!1)}function jx(t){return t in sd||(sd[t]=wn.ng&&wn.ng.common&&wn.ng.common.locales&&wn.ng.common.locales[t]),sd[t]}var ct=(()=>((ct=ct||{})[ct.LocaleId=0]="LocaleId",ct[ct.DayPeriodsFormat=1]="DayPeriodsFormat",ct[ct.DayPeriodsStandalone=2]="DayPeriodsStandalone",ct[ct.DaysFormat=3]="DaysFormat",ct[ct.DaysStandalone=4]="DaysStandalone",ct[ct.MonthsFormat=5]="MonthsFormat",ct[ct.MonthsStandalone=6]="MonthsStandalone",ct[ct.Eras=7]="Eras",ct[ct.FirstDayOfWeek=8]="FirstDayOfWeek",ct[ct.WeekendRange=9]="WeekendRange",ct[ct.DateFormat=10]="DateFormat",ct[ct.TimeFormat=11]="TimeFormat",ct[ct.DateTimeFormat=12]="DateTimeFormat",ct[ct.NumberSymbols=13]="NumberSymbols",ct[ct.NumberFormats=14]="NumberFormats",ct[ct.CurrencyCode=15]="CurrencyCode",ct[ct.CurrencySymbol=16]="CurrencySymbol",ct[ct.CurrencyName=17]="CurrencyName",ct[ct.Currencies=18]="Currencies",ct[ct.Directionality=19]="Directionality",ct[ct.PluralCase=20]="PluralCase",ct[ct.ExtraData=21]="ExtraData",ct))();const ad="en-US";let zx=ad;function _v(t,n,e,i,o){if(t=Dt(t),Array.isArray(t))for(let s=0;s>20;if(Dl(t)||!t.multi){const ie=new du(d,o,Y),_e=vv(l,n,o?E:E+G,F);-1===_e?(U_(Xf(_,a),s,l),bv(s,t,n.length),n.push(l),_.directiveStart++,_.directiveEnd++,o&&(_.providerIndexes+=1048576),e.push(ie),a.push(ie)):(e[_e]=ie,a[_e]=ie)}else{const ie=vv(l,n,E+G,F),_e=vv(l,n,E,E+G),Ae=_e>=0&&e[_e];if(o&&!Ae||!o&&!(ie>=0&&e[ie])){U_(Xf(_,a),s,l);const ze=function UN(t,n,e,i,o){const s=new du(t,e,Y);return s.multi=[],s.index=n,s.componentProviders=0,pk(s,o,i&&!e),s}(o?zN:jN,e.length,o,i,d);!o&&Ae&&(e[_e].providerFactory=ze),bv(s,t,n.length,0),n.push(l),_.directiveStart++,_.directiveEnd++,o&&(_.providerIndexes+=1048576),e.push(ze),a.push(ze)}else bv(s,t,ie>-1?ie:_e,pk(e[o?_e:ie],d,!o&&i));!o&&i&&Ae&&e[_e].componentProviders++}}}function bv(t,n,e,i){const o=Dl(n),s=function UA(t){return!!t.useClass}(n);if(o||s){const d=(s?Dt(n.useClass):n).prototype.ngOnDestroy;if(d){const _=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const E=_.indexOf(e);-1===E?_.push(e,[i,d]):_[E+1].push(i,d)}else _.push(e,d)}}}function pk(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function vv(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function VN(t,n,e){const i=dn();if(i.firstCreatePass){const o=fo(t);_v(e,i.data,i.blueprint,o,!0),_v(n,i.data,i.blueprint,o,!1)}}(i,o?o(t):t,n)}}class ld{}class mk{}class Mv extends ld{constructor(n,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new EC(this);const o=Nr(n);this._bootstrapComponents=Zs(o.bootstrap),this._r3Injector=pC(n,e,[{provide:ld,useValue:this},{provide:Tl,useValue:this.componentFactoryResolver},...i],Fi(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class wv extends mk{constructor(n){super(),this.moduleType=n}create(n){return new Mv(this.moduleType,n,[])}}class gk extends ld{constructor(n){super(),this.componentFactoryResolver=new EC(this),this.instance=null;const e=new kb([...n.providers,{provide:ld,useValue:this},{provide:Tl,useValue:this.componentFactoryResolver}],n.parent||gp(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function Cv(t,n,e=null){return new gk({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}let GN=(()=>{class t{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e.id)){const i=Vw(0,e.type),o=i.length>0?Cv([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e.id,o)}return this.cachedInjectors.get(e.id)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}}return t.\u0275prov=Ne({token:t,providedIn:"environment",factory:()=>new t(we(ks))}),t})();function _k(t){t.getStandaloneInjector=n=>n.get(GN).getOrCreateStandaloneInjector(t)}function qn(t,n,e){const i=ne()+t,o=Ve();return o[i]===Bt?Ts(o,i,e?n.call(e):n()):function Fu(t,n){return t[n]}(o,i)}function He(t,n,e,i){return xk(Ve(),ne(),t,n,e,i)}function mn(t,n,e,i,o){return kk(Ve(),ne(),t,n,e,i,o)}function $u(t,n){const e=t[n];return e===Bt?void 0:e}function xk(t,n,e,i,o,s){const a=n+e;return Er(t,a,o)?Ts(t,a+1,s?i.call(s,o):i(o)):$u(t,a+1)}function kk(t,n,e,i,o,s,a){const l=n+e;return El(t,l,o,s)?Ts(t,l+2,a?i.call(a,o,s):i(o,s)):$u(t,l+2)}function R(t,n){const e=dn();let i;const o=t+Qt;e.firstCreatePass?(i=function d4(t,n){if(n)for(let e=n.length-1;e>=0;e--){const i=n[e];if(t===i.name)return i}}(n,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks??=[]).push(o,i.onDestroy)):i=e.data[o];const s=i.factory||(i.factory=$s(i.type)),a=Wi(Y);try{const l=Zf(!1),d=s();return Zf(l),function KR(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,Ve(),o,d),d}finally{Wi(a)}}function H(t,n,e){const i=t+Qt,o=Ve(),s=ys(o,i);return Gu(o,i)?xk(o,ne(),n,s.transform,e,s):s.transform(e)}function kt(t,n,e,i){const o=t+Qt,s=Ve(),a=ys(s,o);return Gu(s,o)?kk(s,ne(),n,a.transform,e,i,a):a.transform(e,i)}function Gu(t,n){return t[lt].data[n].pure}function kv(t){return n=>{setTimeout(t,void 0,n)}}const ht=class p4 extends J{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,e,i){let o=n,s=e||(()=>null),a=i;if(n&&"object"==typeof n){const d=n;o=d.next?.bind(d),s=d.error?.bind(d),a=d.complete?.bind(d)}this.__isAsync&&(s=kv(s),o&&(o=kv(o)),a&&(a=kv(a)));const l=super.subscribe({next:o,error:s,complete:a});return n instanceof T&&n.add(l),l}};function m4(){return this._results[Symbol.iterator]()}class Al{get changes(){return this._changes||(this._changes=new ht)}constructor(n=!1){this._emitDistinctChangesOnly=n,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=Al.prototype;e[Symbol.iterator]||(e[Symbol.iterator]=m4)}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,e){return this._results.reduce(n,e)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,e){const i=this;i.dirty=!1;const o=function Bo(t){return t.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function fO(t,n,e){if(t.length!==n.length)return!1;for(let i=0;i{class t{}return t.__NG_ELEMENT_ID__=b4,t})();const g4=mr,_4=class extends g4{constructor(n,e,i){super(),this._declarationLView=n,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,e){return this.createEmbeddedViewImpl(n,e,null)}createEmbeddedViewImpl(n,e,i){const o=this._declarationTContainer.tView,s=Cp(this._declarationLView,o,n,16,null,o.declTNode,null,null,null,e||null,i||null);s[Us]=this._declarationLView[this._declarationTContainer.index];const l=this._declarationLView[Xr];return null!==l&&(s[Xr]=l.createEmbeddedView(o)),Jb(o,s,n),new Ou(s)}};function b4(){return Hp(tr(),Ve())}function Hp(t,n){return 4&t.type?new _4(n,t,Gc(t,n)):null}let rr=(()=>{class t{}return t.__NG_ELEMENT_ID__=k4,t})();function k4(){return Ak(tr(),Ve())}const S4=rr,Pk=class extends S4{constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Gc(this._hostTNode,this._hostLView)}get injector(){return new Rc(this._hostTNode,this._hostLView)}get parentInjector(){const n=z_(this._hostTNode,this._hostLView);if(PM(n)){const e=Kf(n,this._hostLView),i=qf(n);return new Rc(e[lt].data[i+8],e)}return new Rc(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=Ok(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-ni}createEmbeddedView(n,e,i){let o,s;"number"==typeof i?o=i:null!=i&&(o=i.index,s=i.injector);const l=n.createEmbeddedViewImpl(e||{},s,null);return this.insertImpl(l,o,false),l}createComponent(n,e,i,o,s){const a=n&&!function hu(t){return"function"==typeof t}(n);let l;if(a)l=e;else{const Ce=e||{};l=Ce.index,i=Ce.injector,o=Ce.projectableNodes,s=Ce.environmentInjector||Ce.ngModuleRef}const d=a?n:new Au(gn(n)),_=i||this.parentInjector;if(!s&&null==d.ngModule){const Ae=(a?_:this.parentInjector).get(ks,null);Ae&&(s=Ae)}gn(d.componentType??{});const ie=d.create(_,o,null,s);return this.insertImpl(ie.hostView,l,false),ie}insert(n,e){return this.insertImpl(n,e,!1)}insertImpl(n,e,i){const o=n._lView,s=o[lt];if(function T_(t){return vr(t[Xn])}(o)){const d=this.indexOf(n);if(-1!==d)this.detach(d);else{const _=o[Xn],E=new Pk(_,_[pr],_[Xn]);E.detach(E.indexOf(n))}}const a=this._adjustIndex(e),l=this._lContainer;if(function nA(t,n,e,i){const o=ni+i,s=e.length;i>0&&(e[o-1][uo]=n),i0)i.push(a[l/2]);else{const _=s[l+1],E=n[-d];for(let F=ni;F{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=Qe(Yv,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const s=o();if(Hu(s))e.push(s);else if(JC(s)){const a=new Promise((l,d)=>{s.subscribe({complete:l,error:d})});e.push(a)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),rS=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"platform"}),t})();const Is=new Re("LocaleId",{providedIn:"root",factory:()=>Qe(Is,Mt.Optional|Mt.SkipSelf)||function n5(){return typeof $localize<"u"&&$localize.locale||ad}()});class o5{constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let oS=(()=>{class t{compileModuleSync(e){return new wv(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),s=Zs(Nr(e).declarations).reduce((a,l)=>{const d=gn(l);return d&&a.push(new Au(d)),a},[]);return new o5(i,s)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const l5=(()=>Promise.resolve(0))();function Bv(t){typeof Zone>"u"?l5.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",t)}function lS(...t){}class ft{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ht(!1),this.onMicrotaskEmpty=new ht(!1),this.onStable=new ht(!1),this.onError=new ht(!1),typeof Zone>"u")throw new Fe(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function c5(){let t=wn.requestAnimationFrame,n=wn.cancelAnimationFrame;if(typeof Zone<"u"&&t&&n){const e=t[Zone.__symbol__("OriginalDelegate")];e&&(t=e);const i=n[Zone.__symbol__("OriginalDelegate")];i&&(n=i)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:n}}().nativeRequestAnimationFrame,function h5(t){const n=()=>{!function u5(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(wn,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,jv(t),t.isCheckStableRunning=!0,Vv(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),jv(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,s,a,l)=>{try{return cS(t),e.invokeTask(o,s,a,l)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||t.shouldCoalesceRunChangeDetection)&&n(),dS(t)}},onInvoke:(e,i,o,s,a,l,d)=>{try{return cS(t),e.invoke(o,s,a,l,d)}finally{t.shouldCoalesceRunChangeDetection&&n(),dS(t)}},onHasTask:(e,i,o,s)=>{e.hasTask(o,s),i===o&&("microTask"==s.change?(t._hasPendingMicrotasks=s.microTask,jv(t),Vv(t)):"macroTask"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,i,o,s)=>(e.handleError(o,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!ft.isInAngularZone())throw new Fe(909,!1)}static assertNotInAngularZone(){if(ft.isInAngularZone())throw new Fe(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const s=this._inner,a=s.scheduleEventTask("NgZoneEvent: "+o,n,d5,lS,lS);try{return s.runTask(a,e,i)}finally{s.cancelTask(a)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const d5={};function Vv(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function jv(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function cS(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function dS(t){t._nesting--,Vv(t)}class f5{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ht,this.onMicrotaskEmpty=new ht,this.onStable=new ht,this.onError=new ht}run(n,e,i){return n.apply(e,i)}runGuarded(n,e,i){return n.apply(e,i)}runOutsideAngular(n){return n()}runTask(n,e,i,o){return n.apply(e,i)}}const uS=new Re("",{providedIn:"root",factory:hS});function hS(){const t=Qe(ft);let n=!0;return bt(new he(o=>{n=t.isStable&&!t.hasPendingMacrotasks&&!t.hasPendingMicrotasks,t.runOutsideAngular(()=>{o.next(n),o.complete()})}),new he(o=>{let s;t.runOutsideAngular(()=>{s=t.onStable.subscribe(()=>{ft.assertNotInAngularZone(),Bv(()=>{!n&&!t.hasPendingMacrotasks&&!t.hasPendingMicrotasks&&(n=!0,o.next(!0))})})});const a=t.onUnstable.subscribe(()=>{ft.assertInAngularZone(),n&&(n=!1,t.runOutsideAngular(()=>{o.next(!1)}))});return()=>{s.unsubscribe(),a.unsubscribe()}}).pipe(dl()))}const fS=new Re(""),Vp=new Re("");let Wv,zv=(()=>{class t{constructor(e,i,o){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,Wv||(function p5(t){Wv=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ft.assertNotInAngularZone(),Bv(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())Bv(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==s),e(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:e,timeoutId:s,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}}return t.\u0275fac=function(e){return new(e||t)(we(ft),we(Uv),we(Vp))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),Uv=(()=>{class t{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return Wv?.findTestabilityInTree(this,e,i)??null}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"platform"}),t})(),Ra=null;const pS=new Re("AllowMultipleToken"),$v=new Re("PlatformDestroyListeners"),Gv=new Re("appBootstrapListener");class gS{constructor(n,e){this.name=n,this.token=e}}function bS(t,n,e=[]){const i=`Platform: ${n}`,o=new Re(i);return(s=[])=>{let a=qv();if(!a||a.injector.get(pS,!1)){const l=[...e,...s,{provide:o,useValue:!0}];t?t(l):function _5(t){if(Ra&&!Ra.get(pS,!1))throw new Fe(400,!1);(function mS(){!function v_(t){Pf=t}(()=>{throw new Fe(600,!1)})})(),Ra=t;const n=t.get(yS);(function _S(t){t.get($w,null)?.forEach(e=>e())})(t)}(function vS(t=[],n){return Si.create({name:n,providers:[{provide:Cb,useValue:"platform"},{provide:$v,useValue:new Set([()=>Ra=null])},...t]})}(l,i))}return function v5(t){const n=qv();if(!n)throw new Fe(401,!1);return n}()}}function qv(){return Ra?.get(yS)??null}let yS=(()=>{class t{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function y5(t="zone.js",n){return"noop"===t?new f5:"zone.js"===t?new ft(n):t}(i?.ngZone,function MS(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return o.run(()=>{const s=function $N(t,n,e){return new Mv(t,n,e)}(e.moduleType,this.injector,function SS(t){return[{provide:ft,useFactory:t},{provide:xu,multi:!0,useFactory:()=>{const n=Qe(w5,{optional:!0});return()=>n.initialize()}},{provide:kS,useFactory:M5},{provide:uS,useFactory:hS}]}(()=>o)),a=s.injector.get(Ss,null);return o.runOutsideAngular(()=>{const l=o.onError.subscribe({next:d=>{a.handleError(d)}});s.onDestroy(()=>{jp(this._modules,s),l.unsubscribe()})}),function wS(t,n,e){try{const i=e();return Hu(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t.handleError(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t.handleError(i)),i}}(a,o,()=>{const l=s.injector.get(Hv);return l.runInitializers(),l.donePromise.then(()=>(function Ux(t){Zr(t,"Expected localeId to be defined"),"string"==typeof t&&(zx=t.toLowerCase().replace(/_/g,"-"))}(s.injector.get(Is,ad)||ad),this._moduleDoBootstrap(s),s))})})}bootstrapModule(e,i=[]){const o=CS({},i);return function m5(t,n,e){const i=new wv(e);return Promise.resolve(i)}(0,0,e).then(s=>this.bootstrapModuleFactory(s,o))}_moduleDoBootstrap(e){const i=e.injector.get(Na);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new Fe(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Fe(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get($v,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\u0275fac=function(e){return new(e||t)(we(Si))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"platform"}),t})();function CS(t,n){return Array.isArray(n)?n.reduce(CS,t):{...t,...n}}let Na=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Qe(kS),this.componentTypes=[],this.components=[],this.isStable=Qe(uS),this._injector=Qe(ks)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof Jw;if(!this._injector.get(Hv).done)throw!o&&function Sa(t){const n=gn(t)||hr(t)||fr(t);return null!==n&&n.standalone}(e),new Fe(405,!1);let a;a=o?e:this._injector.get(Tl).resolveComponentFactory(e),this.componentTypes.push(a.componentType);const l=function g5(t){return t.isBoundToModule}(a)?void 0:this._injector.get(ld),_=a.create(Si.NULL,[],i||a.selector,l),E=_.location.nativeElement,F=_.injector.get(fS,null);return F?.registerApplication(E),_.onDestroy(()=>{this.detachView(_.hostView),jp(this.components,_),F?.unregisterApplication(E)}),this._loadComponent(_),_}tick(){if(this._runningTick)throw new Fe(101,!1);try{this._runningTick=!0;for(let e of this._views)e.detectChanges()}catch(e){this.internalErrorHandler(e)}finally{this._runningTick=!1}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;jp(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(Gv,[]);i.push(...this._bootstrapListeners),i.forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>jp(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new Fe(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function jp(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}const kS=new Re("",{providedIn:"root",factory:()=>Qe(Ss).handleError.bind(void 0)});function M5(){const t=Qe(ft),n=Qe(Ss);return e=>t.runOutsideAngular(()=>n.handleError(e))}let w5=(()=>{class t{constructor(){this.zone=Qe(ft),this.applicationRef=Qe(Na)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();let pi=(()=>{class t{}return t.__NG_ELEMENT_ID__=x5,t})();function x5(t){return function k5(t,n,e){if(Ws(t)&&!e){const i=Tr(t.index,n);return new Ou(i,i)}return 47&t.type?new Ou(n[xi],n):null}(tr(),Ve(),16==(16&t))}class ES{constructor(){}supports(n){return Tp(n)}create(n){return new I5(n)}}const E5=(t,n)=>n;class I5{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||E5}forEachItem(n){let e;for(e=this._itHead;null!==e;e=e._next)n(e)}forEachOperation(n){let e=this._itHead,i=this._removalsHead,o=0,s=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(o,l),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,l,a,o)),Object.is(e.item,l)||this._addIdentityChange(e,l)):(e=this._mismatch(e,l,a,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,e,i,o){let s;return null===n?s=this._itTail:(s=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._reinsertAfter(n,s,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._moveAfter(n,s,o)):n=this._addAfter(new P5(e,i),s,o),n}_verifyReinsertion(n,e,i,o){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?n=this._reinsertAfter(s,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const e=n._next;this._addToRemovals(this._unlink(n)),n=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,s=n._nextRemoved;return null===o?this._removalsHead=s:o._nextRemoved=s,null===s?this._removalsTail=o:s._prevRemoved=o,this._insertAfter(n,e,i),this._addToMoves(n,i),n}_moveAfter(n,e,i){return this._unlink(n),this._insertAfter(n,e,i),this._addToMoves(n,i),n}_addAfter(n,e,i){return this._insertAfter(n,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,e,i){const o=null===e?this._itHead:e._next;return n._next=o,n._prev=e,null===o?this._itTail=n:o._prev=n,null===e?this._itHead=n:e._next=n,null===this._linkedRecords&&(this._linkedRecords=new IS),this._linkedRecords.put(n),n.currentIndex=i,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const e=n._prev,i=n._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,n}_addToMoves(n,e){return n.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new IS),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,e){return n.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class P5{constructor(n,e){this.item=n,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class O5{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,n))return i;return null}remove(n){const e=n._prevDup,i=n._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class IS{constructor(){this.map=new Map}put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new O5,this.map.set(e,i)),i.add(n)}get(n,e){const o=this.map.get(n);return o?o.get(n,e):null}remove(n){const e=n.trackById;return this.map.get(e).remove(n)&&this.map.delete(e),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function PS(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const s=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,s)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,e){if(n){const i=n._prev;return e._next=n,e._prev=i,n._prev=e,i&&(i._next=e),n===this._mapHead&&(this._mapHead=e),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(n,e){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,e);const s=o._prev,a=o._next;return s&&(s._next=a),a&&(a._prev=s),o._next=null,o._prev=null,o}const i=new F5(n);return this._records.set(n,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,e){Object.is(e,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=e,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,e){n instanceof Map?n.forEach(e):Object.keys(n).forEach(i=>e(n[i],i))}}class F5{constructor(n){this.key=n,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function AS(){return new Ku([new ES])}let Ku=(()=>{class t{constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||AS()),deps:[[t,new mu,new xl]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new Fe(901,!1)}}return t.\u0275prov=Ne({token:t,providedIn:"root",factory:AS}),t})();function FS(){return new Zu([new OS])}let Zu=(()=>{class t{constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||FS()),deps:[[t,new mu,new xl]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new Fe(901,!1)}}return t.\u0275prov=Ne({token:t,providedIn:"root",factory:FS}),t})();const Y5=bS(null,"core",[]);let H5=(()=>{class t{constructor(e){}}return t.\u0275fac=function(e){return new(e||t)(we(Na))},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})(),VS=(()=>{class t{get whenAllTasksComplete(){return 0===this.collection.size&&this.complete(),this.promise}constructor(){this.taskId=0,this.collection=new Set,this.ngZone=Qe(ft),this.completed=!1,this.ngZone.runOutsideAngular(()=>{this.promise=new Promise(e=>{this.resolve=e})})}add(){if(this.completed)return-1;const e=this.taskId++;return this.collection.add(e),e}remove(e){this.completed||(this.collection.delete(e),0===this.collection.size&&this.complete())}ngOnDestroy(){this.complete(),this.collection.clear()}complete(){this.completed=!0,this.resolve()}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function ud(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}let ty=null;function Ya(){return ty}class X5{}const It=new Re("DocumentToken");let ny=(()=>{class t{historyGo(e){throw new Error("Not implemented")}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return Qe(Q5)},providedIn:"platform"}),t})();const J5=new Re("Location Initialized");let Q5=(()=>{class t extends ny{constructor(){super(),this._doc=Qe(It),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Ya().getBaseHref(this._doc)}onPopState(e){const i=Ya().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Ya().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,o){this._history.pushState(e,i,o)}replaceState(e,i,o){this._history.replaceState(e,i,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return new t},providedIn:"platform"}),t})();function iy(t,n){if(0==t.length)return n;if(0==n.length)return t;let e=0;return t.endsWith("/")&&e++,n.startsWith("/")&&e++,2==e?t+n.substring(1):1==e?t+n:t+"/"+n}function zS(t){const n=t.match(/#|\?|$/),e=n&&n.index||t.length;return t.slice(0,e-("/"===t[e-1]?1:0))+t.slice(e)}function Qs(t){return t&&"?"!==t[0]?"?"+t:t}let Rl=(()=>{class t{historyGo(e){throw new Error("Not implemented")}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return Qe(WS)},providedIn:"root"}),t})();const US=new Re("appBaseHref");let WS=(()=>{class t extends Rl{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??Qe(It).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return iy(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+Qs(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,s){const a=this.prepareExternalUrl(o+Qs(s));this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,s){const a=this.prepareExternalUrl(o+Qs(s));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return t.\u0275fac=function(e){return new(e||t)(we(ny),we(US,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),eY=(()=>{class t extends Rl{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){let i=this._platformLocation.hash;return null==i&&(i="#"),i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=iy(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,s){let a=this.prepareExternalUrl(o+Qs(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,s){let a=this.prepareExternalUrl(o+Qs(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return t.\u0275fac=function(e){return new(e||t)(we(ny),we(US,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),Xu=(()=>{class t{constructor(e){this._subject=new ht,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function iY(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(zS($S(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+Qs(i))}normalize(e){return t.stripTrailingSlash(function nY(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,$S(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Qs(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Qs(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)})),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}}return t.normalizeQueryParams=Qs,t.joinWithSlash=iy,t.stripTrailingSlash=zS,t.\u0275fac=function(e){return new(e||t)(we(Rl))},t.\u0275prov=Ne({token:t,factory:function(){return function tY(){return new Xu(we(Rl))}()},providedIn:"root"}),t})();function $S(t){return t.replace(/\/index.html$/,"")}var Ni=(()=>((Ni=Ni||{})[Ni.Format=0]="Format",Ni[Ni.Standalone=1]="Standalone",Ni))(),rn=(()=>((rn=rn||{})[rn.Narrow=0]="Narrow",rn[rn.Abbreviated=1]="Abbreviated",rn[rn.Wide=2]="Wide",rn[rn.Short=3]="Short",rn))(),mi=(()=>((mi=mi||{})[mi.Short=0]="Short",mi[mi.Medium=1]="Medium",mi[mi.Long=2]="Long",mi[mi.Full=3]="Full",mi))(),St=(()=>((St=St||{})[St.Decimal=0]="Decimal",St[St.Group=1]="Group",St[St.List=2]="List",St[St.PercentSign=3]="PercentSign",St[St.PlusSign=4]="PlusSign",St[St.MinusSign=5]="MinusSign",St[St.Exponential=6]="Exponential",St[St.SuperscriptingExponent=7]="SuperscriptingExponent",St[St.PerMille=8]="PerMille",St[St.Infinity=9]="Infinity",St[St.NaN=10]="NaN",St[St.TimeSeparator=11]="TimeSeparator",St[St.CurrencyDecimal=12]="CurrencyDecimal",St[St.CurrencyGroup=13]="CurrencyGroup",St))();function $p(t,n){return Uo(jr(t)[ct.DateFormat],n)}function Gp(t,n){return Uo(jr(t)[ct.TimeFormat],n)}function qp(t,n){return Uo(jr(t)[ct.DateTimeFormat],n)}function zo(t,n){const e=jr(t),i=e[ct.NumberSymbols][n];if(typeof i>"u"){if(n===St.CurrencyDecimal)return e[ct.NumberSymbols][St.Decimal];if(n===St.CurrencyGroup)return e[ct.NumberSymbols][St.Group]}return i}function qS(t){if(!t[ct.ExtraData])throw new Error(`Missing extra locale data for the locale "${t[ct.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Uo(t,n){for(let e=n;e>-1;e--)if(typeof t[e]<"u")return t[e];throw new Error("Locale data API: locale data undefined")}function oy(t){const[n,e]=t.split(":");return{hours:+n,minutes:+e}}const gY=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ju={},_Y=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var sr=(()=>((sr=sr||{})[sr.Short=0]="Short",sr[sr.ShortGMT=1]="ShortGMT",sr[sr.Long=2]="Long",sr[sr.Extended=3]="Extended",sr))(),Pt=(()=>((Pt=Pt||{})[Pt.FullYear=0]="FullYear",Pt[Pt.Month=1]="Month",Pt[Pt.Date=2]="Date",Pt[Pt.Hours=3]="Hours",Pt[Pt.Minutes=4]="Minutes",Pt[Pt.Seconds=5]="Seconds",Pt[Pt.FractionalSeconds=6]="FractionalSeconds",Pt[Pt.Day=7]="Day",Pt))(),Kt=(()=>((Kt=Kt||{})[Kt.DayPeriods=0]="DayPeriods",Kt[Kt.Days=1]="Days",Kt[Kt.Months=2]="Months",Kt[Kt.Eras=3]="Eras",Kt))();function KS(t,n,e,i){let o=function SY(t){if(JS(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[o,s=1,a=1]=t.split("-").map(l=>+l);return Kp(o,s-1,a)}const e=parseFloat(t);if(!isNaN(t-e))return new Date(e);let i;if(i=t.match(gY))return function DY(t){const n=new Date(0);let e=0,i=0;const o=t[8]?n.setUTCFullYear:n.setFullYear,s=t[8]?n.setUTCHours:n.setHours;t[9]&&(e=Number(t[9]+t[10]),i=Number(t[9]+t[11])),o.call(n,Number(t[1]),Number(t[2])-1,Number(t[3]));const a=Number(t[4]||0)-e,l=Number(t[5]||0)-i,d=Number(t[6]||0),_=Math.floor(1e3*parseFloat("0."+(t[7]||0)));return s.call(n,a,l,d,_),n}(i)}const n=new Date(t);if(!JS(n))throw new Error(`Unable to convert "${t}" into a date`);return n}(t);n=ea(e,n)||n;let l,a=[];for(;n;){if(l=_Y.exec(n),!l){a.push(n);break}{a=a.concat(l.slice(1));const E=a.pop();if(!E)break;n=E}}let d=o.getTimezoneOffset();i&&(d=XS(i,d),o=function kY(t,n,e){const i=e?-1:1,o=t.getTimezoneOffset();return function xY(t,n){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+n),t}(t,i*(XS(n,o)-o))}(o,i,!0));let _="";return a.forEach(E=>{const F=function CY(t){if(ay[t])return ay[t];let n;switch(t){case"G":case"GG":case"GGG":n=Jn(Kt.Eras,rn.Abbreviated);break;case"GGGG":n=Jn(Kt.Eras,rn.Wide);break;case"GGGGG":n=Jn(Kt.Eras,rn.Narrow);break;case"y":n=Ki(Pt.FullYear,1,0,!1,!0);break;case"yy":n=Ki(Pt.FullYear,2,0,!0,!0);break;case"yyy":n=Ki(Pt.FullYear,3,0,!1,!0);break;case"yyyy":n=Ki(Pt.FullYear,4,0,!1,!0);break;case"Y":n=Qp(1);break;case"YY":n=Qp(2,!0);break;case"YYY":n=Qp(3);break;case"YYYY":n=Qp(4);break;case"M":case"L":n=Ki(Pt.Month,1,1);break;case"MM":case"LL":n=Ki(Pt.Month,2,1);break;case"MMM":n=Jn(Kt.Months,rn.Abbreviated);break;case"MMMM":n=Jn(Kt.Months,rn.Wide);break;case"MMMMM":n=Jn(Kt.Months,rn.Narrow);break;case"LLL":n=Jn(Kt.Months,rn.Abbreviated,Ni.Standalone);break;case"LLLL":n=Jn(Kt.Months,rn.Wide,Ni.Standalone);break;case"LLLLL":n=Jn(Kt.Months,rn.Narrow,Ni.Standalone);break;case"w":n=sy(1);break;case"ww":n=sy(2);break;case"W":n=sy(1,!0);break;case"d":n=Ki(Pt.Date,1);break;case"dd":n=Ki(Pt.Date,2);break;case"c":case"cc":n=Ki(Pt.Day,1);break;case"ccc":n=Jn(Kt.Days,rn.Abbreviated,Ni.Standalone);break;case"cccc":n=Jn(Kt.Days,rn.Wide,Ni.Standalone);break;case"ccccc":n=Jn(Kt.Days,rn.Narrow,Ni.Standalone);break;case"cccccc":n=Jn(Kt.Days,rn.Short,Ni.Standalone);break;case"E":case"EE":case"EEE":n=Jn(Kt.Days,rn.Abbreviated);break;case"EEEE":n=Jn(Kt.Days,rn.Wide);break;case"EEEEE":n=Jn(Kt.Days,rn.Narrow);break;case"EEEEEE":n=Jn(Kt.Days,rn.Short);break;case"a":case"aa":case"aaa":n=Jn(Kt.DayPeriods,rn.Abbreviated);break;case"aaaa":n=Jn(Kt.DayPeriods,rn.Wide);break;case"aaaaa":n=Jn(Kt.DayPeriods,rn.Narrow);break;case"b":case"bb":case"bbb":n=Jn(Kt.DayPeriods,rn.Abbreviated,Ni.Standalone,!0);break;case"bbbb":n=Jn(Kt.DayPeriods,rn.Wide,Ni.Standalone,!0);break;case"bbbbb":n=Jn(Kt.DayPeriods,rn.Narrow,Ni.Standalone,!0);break;case"B":case"BB":case"BBB":n=Jn(Kt.DayPeriods,rn.Abbreviated,Ni.Format,!0);break;case"BBBB":n=Jn(Kt.DayPeriods,rn.Wide,Ni.Format,!0);break;case"BBBBB":n=Jn(Kt.DayPeriods,rn.Narrow,Ni.Format,!0);break;case"h":n=Ki(Pt.Hours,1,-12);break;case"hh":n=Ki(Pt.Hours,2,-12);break;case"H":n=Ki(Pt.Hours,1);break;case"HH":n=Ki(Pt.Hours,2);break;case"m":n=Ki(Pt.Minutes,1);break;case"mm":n=Ki(Pt.Minutes,2);break;case"s":n=Ki(Pt.Seconds,1);break;case"ss":n=Ki(Pt.Seconds,2);break;case"S":n=Ki(Pt.FractionalSeconds,1);break;case"SS":n=Ki(Pt.FractionalSeconds,2);break;case"SSS":n=Ki(Pt.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":n=Xp(sr.Short);break;case"ZZZZZ":n=Xp(sr.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":n=Xp(sr.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":n=Xp(sr.Long);break;default:return null}return ay[t]=n,n}(E);_+=F?F(o,e,d):"''"===E?"'":E.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),_}function Kp(t,n,e){const i=new Date(0);return i.setFullYear(t,n,e),i.setHours(0,0,0),i}function ea(t,n){const e=function rY(t){return jr(t)[ct.LocaleId]}(t);if(Ju[e]=Ju[e]||{},Ju[e][n])return Ju[e][n];let i="";switch(n){case"shortDate":i=$p(t,mi.Short);break;case"mediumDate":i=$p(t,mi.Medium);break;case"longDate":i=$p(t,mi.Long);break;case"fullDate":i=$p(t,mi.Full);break;case"shortTime":i=Gp(t,mi.Short);break;case"mediumTime":i=Gp(t,mi.Medium);break;case"longTime":i=Gp(t,mi.Long);break;case"fullTime":i=Gp(t,mi.Full);break;case"short":const o=ea(t,"shortTime"),s=ea(t,"shortDate");i=Zp(qp(t,mi.Short),[o,s]);break;case"medium":const a=ea(t,"mediumTime"),l=ea(t,"mediumDate");i=Zp(qp(t,mi.Medium),[a,l]);break;case"long":const d=ea(t,"longTime"),_=ea(t,"longDate");i=Zp(qp(t,mi.Long),[d,_]);break;case"full":const E=ea(t,"fullTime"),F=ea(t,"fullDate");i=Zp(qp(t,mi.Full),[E,F])}return i&&(Ju[e][n]=i),i}function Zp(t,n){return n&&(t=t.replace(/\{([^}]+)}/g,function(e,i){return null!=n&&i in n?n[i]:e})),t}function ns(t,n,e="-",i,o){let s="";(t<0||o&&t<=0)&&(o?t=1-t:(t=-t,s=e));let a=String(t);for(;a.length0||l>-e)&&(l+=e),t===Pt.Hours)0===l&&-12===e&&(l=12);else if(t===Pt.FractionalSeconds)return function bY(t,n){return ns(t,3).substring(0,n)}(l,n);const d=zo(a,St.MinusSign);return ns(l,n,d,i,o)}}function Jn(t,n,e=Ni.Format,i=!1){return function(o,s){return function yY(t,n,e,i,o,s){switch(e){case Kt.Months:return function aY(t,n,e){const i=jr(t),s=Uo([i[ct.MonthsFormat],i[ct.MonthsStandalone]],n);return Uo(s,e)}(n,o,i)[t.getMonth()];case Kt.Days:return function sY(t,n,e){const i=jr(t),s=Uo([i[ct.DaysFormat],i[ct.DaysStandalone]],n);return Uo(s,e)}(n,o,i)[t.getDay()];case Kt.DayPeriods:const a=t.getHours(),l=t.getMinutes();if(s){const _=function uY(t){const n=jr(t);return qS(n),(n[ct.ExtraData][2]||[]).map(i=>"string"==typeof i?oy(i):[oy(i[0]),oy(i[1])])}(n),E=function hY(t,n,e){const i=jr(t);qS(i);const s=Uo([i[ct.ExtraData][0],i[ct.ExtraData][1]],n)||[];return Uo(s,e)||[]}(n,o,i),F=_.findIndex(G=>{if(Array.isArray(G)){const[ie,_e]=G,Ce=a>=ie.hours&&l>=ie.minutes,Ae=a<_e.hours||a===_e.hours&&l<_e.minutes;if(ie.hours<_e.hours){if(Ce&&Ae)return!0}else if(Ce||Ae)return!0}else if(G.hours===a&&G.minutes===l)return!0;return!1});if(-1!==F)return E[F]}return function oY(t,n,e){const i=jr(t),s=Uo([i[ct.DayPeriodsFormat],i[ct.DayPeriodsStandalone]],n);return Uo(s,e)}(n,o,i)[a<12?0:1];case Kt.Eras:return function lY(t,n){return Uo(jr(t)[ct.Eras],n)}(n,i)[t.getFullYear()<=0?0:1];default:throw new Error(`unexpected translation type ${e}`)}}(o,s,t,n,e,i)}}function Xp(t){return function(n,e,i){const o=-1*i,s=zo(e,St.MinusSign),a=o>0?Math.floor(o/60):Math.ceil(o/60);switch(t){case sr.Short:return(o>=0?"+":"")+ns(a,2,s)+ns(Math.abs(o%60),2,s);case sr.ShortGMT:return"GMT"+(o>=0?"+":"")+ns(a,1,s);case sr.Long:return"GMT"+(o>=0?"+":"")+ns(a,2,s)+":"+ns(Math.abs(o%60),2,s);case sr.Extended:return 0===i?"Z":(o>=0?"+":"")+ns(a,2,s)+":"+ns(Math.abs(o%60),2,s);default:throw new Error(`Unknown zone width "${t}"`)}}}const MY=0,Jp=4;function ZS(t){return Kp(t.getFullYear(),t.getMonth(),t.getDate()+(Jp-t.getDay()))}function sy(t,n=!1){return function(e,i){let o;if(n){const s=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,a=e.getDate();o=1+Math.floor((a+s)/7)}else{const s=ZS(e),a=function wY(t){const n=Kp(t,MY,1).getDay();return Kp(t,0,1+(n<=Jp?Jp:Jp+7)-n)}(s.getFullYear()),l=s.getTime()-a.getTime();o=1+Math.round(l/6048e5)}return ns(o,t,zo(i,St.MinusSign))}}function Qp(t,n=!1){return function(e,i){return ns(ZS(e).getFullYear(),t,zo(i,St.MinusSign),n)}}const ay={};function XS(t,n){t=t.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(e)?n:e}function JS(t){return t instanceof Date&&!isNaN(t.valueOf())}function nD(t,n){n=encodeURIComponent(n);for(const e of t.split(";")){const i=e.indexOf("="),[o,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===n)return decodeURIComponent(s)}return null}const fy=/\s+/,iD=[];let Nn=(()=>{class t{constructor(e,i,o,s){this._iterableDiffers=e,this._keyValueDiffers=i,this._ngEl=o,this._renderer=s,this.initialClasses=iD,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(fy):iD}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(fy):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const o=this.stateMap.get(e);void 0!==o?(o.enabled!==i&&(o.changed=!0,o.enabled=i),o.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],o=e[1];o.changed?(this._toggleClass(i,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),o.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(fy).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return t.\u0275fac=function(e){return new(e||t)(Y(Ku),Y(Zu),Y(vt),Y(Ks))},t.\u0275dir=Ke({type:t,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),t})();class BY{constructor(n,e,i,o){this.$implicit=n,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let gi=(()=>{class t{set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,s,a)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new BY(o.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===s?void 0:s);else if(null!==s){const l=i.get(s);i.move(l,a),oD(l,o)}});for(let o=0,s=i.length;o{oD(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}}return t.\u0275fac=function(e){return new(e||t)(Y(rr),Y(mr),Y(Ku))},t.\u0275dir=Ke({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),t})();function oD(t,n){t.context.$implicit=n.item}let Ft=(()=>{class t{constructor(e,i){this._viewContainer=e,this._context=new VY,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){sD("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){sD("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}}return t.\u0275fac=function(e){return new(e||t)(Y(rr),Y(mr))},t.\u0275dir=Ke({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),t})();class VY{constructor(){this.$implicit=null,this.ngIf=null}}function sD(t,n){if(n&&!n.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${Fi(n)}'.`)}class py{constructor(n,e){this._viewContainerRef=n,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(n){n&&!this._created?this.create():!n&&this._created&&this.destroy()}}let eh=(()=>{class t{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews.push(e)}_matchCase(e){const i=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews.length>0&&e!==this._defaultUsed){this._defaultUsed=e;for(const i of this._defaultViews)i.enforceState(e)}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0}),t})(),my=(()=>{class t{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new py(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return t.\u0275fac=function(e){return new(e||t)(Y(rr),Y(mr),Y(eh,9))},t.\u0275dir=Ke({type:t,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0}),t})(),aD=(()=>{class t{constructor(e,i,o){o._addDefault(new py(e,i))}}return t.\u0275fac=function(e){return new(e||t)(Y(rr),Y(mr),Y(eh,9))},t.\u0275dir=Ke({type:t,selectors:[["","ngSwitchDefault",""]],standalone:!0}),t})(),hd=(()=>{class t{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(e.ngTemplateOutlet||e.ngTemplateOutletInjector){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),this.ngTemplateOutlet){const{ngTemplateOutlet:o,ngTemplateOutletContext:s,ngTemplateOutletInjector:a}=this;this._viewRef=i.createEmbeddedView(o,s,a?{injector:a}:void 0)}else this._viewRef=null}else this._viewRef&&e.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return t.\u0275fac=function(e){return new(e||t)(Y(rr))},t.\u0275dir=Ke({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[Gi]}),t})();const eH=new Re("DATE_PIPE_DEFAULT_TIMEZONE"),tH=new Re("DATE_PIPE_DEFAULT_OPTIONS");let cD=(()=>{class t{constructor(e,i,o){this.locale=e,this.defaultTimezone=i,this.defaultOptions=o}transform(e,i,o,s){if(null==e||""===e||e!=e)return null;try{return KS(e,i??this.defaultOptions?.dateFormat??"mediumDate",s||this.locale,o??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(a){throw function is(t,n){return new Fe(2100,!1)}()}}}return t.\u0275fac=function(e){return new(e||t)(Y(Is,16),Y(eH,24),Y(tH,24))},t.\u0275pipe=ur({name:"date",type:t,pure:!0,standalone:!0}),t})(),ta=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})();const uD="browser";function hD(t){return"server"===t}let mH=(()=>{class t{}return t.\u0275prov=Ne({token:t,providedIn:"root",factory:()=>new gH(we(It),window)}),t})();class gH{constructor(n,e){this.document=n,this.window=e,this.offset=()=>[0,0]}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(n){this.supportsScrolling()&&this.window.scrollTo(n[0],n[1])}scrollToAnchor(n){if(!this.supportsScrolling())return;const e=function _H(t,n){const e=t.getElementById(n)||t.getElementsByName(n)[0];if(e)return e;if("function"==typeof t.createTreeWalker&&t.body&&"function"==typeof t.body.attachShadow){const i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const s=o.shadowRoot;if(s){const a=s.getElementById(n)||s.querySelector(`[name="${n}"]`);if(a)return a}o=i.nextNode()}}return null}(this.document,n);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(n){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=n)}}scrollToElement(n){const e=n.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(i-s[0],o-s[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const n=fD(this.window.history)||fD(Object.getPrototypeOf(this.window.history));return!(!n||!n.writable&&!n.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function fD(t){return Object.getOwnPropertyDescriptor(t,"scrollRestoration")}class pD{}class UH extends X5{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class yy extends UH{static makeCurrent(){!function Z5(t){ty||(ty=t)}(new yy)}onAndCancel(n,e,i){return n.addEventListener(e,i),()=>{n.removeEventListener(e,i)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,e){return(e=e||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,e){return"window"===e?window:"document"===e?n:"body"===e?n.body:null}getBaseHref(n){const e=function WH(){return nh=nh||document.querySelector("base"),nh?nh.getAttribute("href"):null}();return null==e?null:function $H(t){rm=rm||document.createElement("a"),rm.setAttribute("href",t);const n=rm.pathname;return"/"===n.charAt(0)?n:`/${n}`}(e)}resetBaseElement(){nh=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return nD(document.cookie,n)}}let rm,nh=null,qH=(()=>{class t{build(){return new XMLHttpRequest}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const My=new Re("EventManagerPlugins");let vD=(()=>{class t{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>{o.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(s=>s.supports(e)),!i)throw new Fe(5101,!1);return this._eventNameToPlugin.set(e,i),i}}return t.\u0275fac=function(e){return new(e||t)(we(My),we(ft))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();class yD{constructor(n){this._doc=n}}const wy="ng-app-id";let MD=(()=>{class t{constructor(e,i,o,s={}){this.doc=e,this.appId=i,this.nonce=o,this.platformId=s,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=hD(s),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(o=>o.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${wy}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(o=>{null!=o.textContent&&i.set(o.textContent,o)}),i}return null}changeUsageCount(e,i){const o=this.styleRef;if(o.has(e)){const s=o.get(e);return s.usage+=i,s.usage}return o.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const o=this.styleNodesInDOM,s=o?.get(i);if(s?.parentNode===e)return o.delete(i),s.removeAttribute(wy),s;{const a=this.doc.createElement("style");return this.nonce&&a.setAttribute("nonce",this.nonce),a.textContent=i,this.platformIsServer&&a.setAttribute(wy,this.appId),a}}addStyleToHost(e,i){const o=this.getStyleElement(e,i);e.appendChild(o);const s=this.styleRef,a=s.get(i)?.elements;a?a.push(o):s.set(i,{elements:[o],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(ku),we(Tb,8),we(Oa))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const Cy={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},xy=/%COMP%/g,JH=new Re("RemoveStylesOnCompDestory",{providedIn:"root",factory:()=>!1});function CD(t,n){return n.map(e=>e.replace(xy,t))}let ky=(()=>{class t{constructor(e,i,o,s,a,l,d,_=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestory=s,this.doc=a,this.platformId=l,this.ngZone=d,this.nonce=_,this.rendererByCompId=new Map,this.platformIsServer=hD(l),this.defaultRenderer=new Sy(e,a,d,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===Dr.ShadowDom&&(i={...i,encapsulation:Dr.Emulated});const o=this.getOrCreateRenderer(e,i);return o instanceof kD?o.applyToHost(e):o instanceof Dy&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let s=o.get(i.id);if(!s){const a=this.doc,l=this.ngZone,d=this.eventManager,_=this.sharedStylesHost,E=this.removeStylesOnCompDestory,F=this.platformIsServer;switch(i.encapsulation){case Dr.Emulated:s=new kD(d,_,i,this.appId,E,a,l,F);break;case Dr.ShadowDom:return new nB(d,_,e,i,a,l,this.nonce,F);default:s=new Dy(d,_,i,E,a,l,F)}s.onDestroy=()=>o.delete(i.id),o.set(i.id,s)}return s}ngOnDestroy(){this.rendererByCompId.clear()}}return t.\u0275fac=function(e){return new(e||t)(we(vD),we(MD),we(ku),we(JH),we(It),we(Oa),we(ft),we(Tb))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();class Sy{constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.platformIsServer=o,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(n,e){return e?this.doc.createElementNS(Cy[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(xD(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(xD(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){n&&n.removeChild(e)}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new Fe(5104,!1);return e||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,e,i,o){if(o){e=o+":"+e;const s=Cy[o];s?n.setAttributeNS(s,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=Cy[i];o?n.removeAttributeNS(o,e):n.removeAttribute(`${i}:${e}`)}else n.removeAttribute(e)}addClass(n,e){n.classList.add(e)}removeClass(n,e){n.classList.remove(e)}setStyle(n,e,i,o){o&(Jr.DashCase|Jr.Important)?n.style.setProperty(e,i,o&Jr.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&Jr.DashCase?n.style.removeProperty(e):n.style[e]=""}setProperty(n,e,i){n[e]=i}setValue(n,e){n.nodeValue=e}listen(n,e,i){if("string"==typeof n&&!(n=Ya().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${e}`);return this.eventManager.addEventListener(n,e,this.decoratePreventDefault(i))}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(e)):n(e))&&e.preventDefault()}}}function xD(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class nB extends Sy{constructor(n,e,i,o,s,a,l,d){super(n,s,a,d),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const _=CD(o.id,o.styles);for(const E of _){const F=document.createElement("style");l&&F.setAttribute("nonce",l),F.textContent=E,this.shadowRoot.appendChild(F)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,e){return super.appendChild(this.nodeOrShadowRoot(n),e)}insertBefore(n,e,i){return super.insertBefore(this.nodeOrShadowRoot(n),e,i)}removeChild(n,e){return super.removeChild(this.nodeOrShadowRoot(n),e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class Dy extends Sy{constructor(n,e,i,o,s,a,l,d){super(n,s,a,l),this.sharedStylesHost=e,this.removeStylesOnCompDestory=o,this.rendererUsageCount=0,this.styles=d?CD(d,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles),this.rendererUsageCount++}destroy(){this.removeStylesOnCompDestory&&(this.sharedStylesHost.removeStyles(this.styles),this.rendererUsageCount--,0===this.rendererUsageCount&&this.onDestroy?.())}}class kD extends Dy{constructor(n,e,i,o,s,a,l,d){const _=o+"-"+i.id;super(n,e,i,s,a,l,d,_),this.contentAttr=function QH(t){return"_ngcontent-%COMP%".replace(xy,t)}(_),this.hostAttr=function eB(t){return"_nghost-%COMP%".replace(xy,t)}(_)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,e){const i=super.createElement(n,e);return super.setAttribute(i,this.contentAttr,""),i}}let iB=(()=>{class t extends yD{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const SD=["alt","control","meta","shift"],rB={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},oB={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let sB=(()=>{class t extends yD{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o){const s=t.parseEventName(i),a=t.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ya().onAndCancel(e,s.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const s=t._normalizeKey(i.pop());let a="",l=i.indexOf("code");if(l>-1&&(i.splice(l,1),a="code."),SD.forEach(_=>{const E=i.indexOf(_);E>-1&&(i.splice(E,1),a+=_+".")}),a+=s,0!=i.length||0===s.length)return null;const d={};return d.domEventName=o,d.fullKey=a,d}static matchEventFullKeyCode(e,i){let o=rB[e.key]||e.key,s="";return i.indexOf("code.")>-1&&(o=e.code,s="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),SD.forEach(a=>{a!==o&&(0,oB[a])(e)&&(s+=a+".")}),s+=o,s===i)}static eventCallback(e,i,o){return s=>{t.matchEventFullKeyCode(s,e)&&o.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const TD=[{provide:Oa,useValue:uD},{provide:$w,useValue:function aB(){yy.makeCurrent()},multi:!0},{provide:It,useFactory:function cB(){return function mA(t){pb=t}(document),document},deps:[]}],dB=bS(Y5,"browser",TD),uB=new Re(""),LD=[{provide:Vp,useClass:class GH{addToWindow(n){wn.getAngularTestability=(i,o=!0)=>{const s=n.findTestabilityInTree(i,o);if(null==s)throw new Fe(5103,!1);return s},wn.getAllAngularTestabilities=()=>n.getAllTestabilities(),wn.getAllAngularRootElements=()=>n.getAllRootElements(),wn.frameworkStabilizers||(wn.frameworkStabilizers=[]),wn.frameworkStabilizers.push(i=>{const o=wn.getAllAngularTestabilities();let s=o.length,a=!1;const l=function(d){a=a||d,s--,0==s&&i(a)};o.forEach(function(d){d.whenStable(l)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Ya().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}},deps:[]},{provide:fS,useClass:zv,deps:[ft,Uv,Vp]},{provide:zv,useClass:zv,deps:[ft,Uv,Vp]}],ED=[{provide:Cb,useValue:"root"},{provide:Ss,useFactory:function lB(){return new Ss},deps:[]},{provide:My,useClass:iB,multi:!0,deps:[It,ft,Oa]},{provide:My,useClass:sB,multi:!0,deps:[It]},ky,MD,vD,{provide:Lu,useExisting:ky},{provide:pD,useClass:qH,deps:[]},[]];let ID=(()=>{class t{constructor(e){}static withServerTransition(e){return{ngModule:t,providers:[{provide:ku,useValue:e.appId}]}}}return t.\u0275fac=function(e){return new(e||t)(we(uB,12))},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[...ED,...LD],imports:[ta,H5]}),t})(),PD=(()=>{class t{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:function(e){let i=null;return i=e?new e:function fB(){return new PD(we(It))}(),i},providedIn:"root"}),t})();typeof window<"u"&&window;let Ly=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(e){let i=null;return i=e?new(e||t):we(FD),i},providedIn:"root"}),t})(),FD=(()=>{class t extends Ly{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case kn.NONE:return i;case kn.HTML:return xs(i,"HTML")?_o(i):Fw(this._doc,String(i)).toString();case kn.STYLE:return xs(i,"Style")?_o(i):i;case kn.SCRIPT:if(xs(i,"Script"))return _o(i);throw new Fe(5200,!1);case kn.URL:return xs(i,"URL")?_o(i):fp(String(i));case kn.RESOURCE_URL:if(xs(i,"ResourceURL"))return _o(i);throw new Fe(5201,!1);default:throw new Fe(5202,!1)}}bypassSecurityTrustHtml(e){return function wA(t){return new gA(t)}(e)}bypassSecurityTrustStyle(e){return function CA(t){return new _A(t)}(e)}bypassSecurityTrustScript(e){return function xA(t){return new bA(t)}(e)}bypassSecurityTrustUrl(e){return function kA(t){return new vA(t)}(e)}bypassSecurityTrustResourceUrl(e){return function SA(t){return new yA(t)}(e)}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:function(e){let i=null;return i=e?new e:function _B(t){return new FD(t.get(It))}(we(Si)),i},providedIn:"root"}),t})();class ND{}class bB{}const na="*";function ia(t,n){return{type:7,name:t,definitions:n,options:{}}}function Ur(t,n=null){return{type:4,styles:n,timings:t}}function HD(t,n=null){return{type:2,steps:t,options:n}}function Qn(t){return{type:6,styles:t,offset:null}}function yo(t,n,e){return{type:0,name:t,styles:n,options:e}}function Pr(t,n,e=null){return{type:1,expr:t,animation:n,options:e}}function Ey(t=null){return{type:9,options:t}}function Iy(t,n,e=null){return{type:11,selector:t,animation:n,options:e}}function BD(t){Promise.resolve().then(t)}class ih{constructor(n=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){BD(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class VD{constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let e=0,i=0,o=0;const s=this.players.length;0==s?BD(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++o==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,l)=>Math.max(a,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const e=n*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const n=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}const Py="!";function jD(t){return new Fe(3e3,!1)}function Ba(t){switch(t.length){case 0:return new ih;case 1:return t[0];default:return new VD(t)}}function zD(t,n,e=new Map,i=new Map){const o=[],s=[];let a=-1,l=null;if(n.forEach(d=>{const _=d.get("offset"),E=_==a,F=E&&l||new Map;d.forEach((G,ie)=>{let _e=ie,Ce=G;if("offset"!==ie)switch(_e=t.normalizePropertyName(_e,o),Ce){case Py:Ce=e.get(ie);break;case na:Ce=i.get(ie);break;default:Ce=t.normalizeStyleValue(ie,_e,Ce,o)}F.set(_e,Ce)}),E||s.push(F),l=F,a=_}),o.length)throw function VB(t){return new Fe(3502,!1)}();return s}function Oy(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Ay(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Ay(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Ay(e,"destroy",t)))}}function Ay(t,n,e){const s=Fy(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),a=t._data;return null!=a&&(s._data=a),s}function Fy(t,n,e,i,o="",s=0,a){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:s,disabled:!!a}}function Mo(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function UD(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const QB=(()=>typeof document>"u"?null:document.documentElement)();function Ry(t){const n=t.parentNode||t.host||null;return n===QB?null:n}let Nl=null,WD=!1;function $D(t,n){for(;n;){if(n===t)return!0;n=Ry(n)}return!1}function GD(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}let qD=(()=>{class t{validateStyleProperty(e){return function tV(t){Nl||(Nl=function nV(){return typeof document<"u"?document.body:null}()||{},WD=!!Nl.style&&"WebkitAppearance"in Nl.style);let n=!0;return Nl.style&&!function eV(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in Nl.style,!n&&WD&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Nl.style)),n}(e)}matchesElement(e,i){return!1}containsElement(e,i){return $D(e,i)}getParentElement(e){return Ry(e)}query(e,i,o){return GD(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,s,a,l=[],d){return new ih(o,s)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),Ny=(()=>{class t{}return t.NOOP=new qD,t})();const iV=1e3,Yy="ng-enter",om="ng-leave",sm="ng-trigger",am=".ng-trigger",ZD="ng-animating",Hy=".ng-animating";function ra(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:By(parseFloat(n[1]),n[2])}function By(t,n){return"s"===n?t*iV:t}function lm(t,n,e){return t.hasOwnProperty("duration")?t:function oV(t,n,e){let o,s=0,a="";if("string"==typeof t){const l=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===l)return n.push(jD()),{duration:0,delay:0,easing:""};o=By(parseFloat(l[1]),l[2]);const d=l[3];null!=d&&(s=By(parseFloat(d),l[4]));const _=l[5];_&&(a=_)}else o=t;if(!e){let l=!1,d=n.length;o<0&&(n.push(function vB(){return new Fe(3100,!1)}()),l=!0),s<0&&(n.push(function yB(){return new Fe(3101,!1)}()),l=!0),l&&n.splice(d,0,jD())}return{duration:o,delay:s,easing:a}}(t,n,e)}function rh(t,n={}){return Object.keys(t).forEach(e=>{n[e]=t[e]}),n}function XD(t){const n=new Map;return Object.keys(t).forEach(e=>{n.set(e,t[e])}),n}function Va(t,n=new Map,e){if(e)for(let[i,o]of e)n.set(i,o);for(let[i,o]of t)n.set(i,o);return n}function Ps(t,n,e){n.forEach((i,o)=>{const s=jy(o);e&&!e.has(o)&&e.set(o,t.style[s]),t.style[s]=i})}function Yl(t,n){n.forEach((e,i)=>{const o=jy(i);t.style[o]=""})}function oh(t){return Array.isArray(t)?1==t.length?t[0]:HD(t):t}const Vy=new RegExp("{{\\s*(.+?)\\s*}}","g");function QD(t){let n=[];if("string"==typeof t){let e;for(;e=Vy.exec(t);)n.push(e[1]);Vy.lastIndex=0}return n}function sh(t,n,e){const i=t.toString(),o=i.replace(Vy,(s,a)=>{let l=n[a];return null==l&&(e.push(function wB(t){return new Fe(3003,!1)}()),l=""),l.toString()});return o==i?t:o}function cm(t){const n=[];let e=t.next();for(;!e.done;)n.push(e.value),e=t.next();return n}const lV=/-+([a-z0-9])/g;function jy(t){return t.replace(lV,(...n)=>n[1].toUpperCase())}function wo(t,n,e){switch(n.type){case 7:return t.visitTrigger(n,e);case 0:return t.visitState(n,e);case 1:return t.visitTransition(n,e);case 2:return t.visitSequence(n,e);case 3:return t.visitGroup(n,e);case 4:return t.visitAnimate(n,e);case 5:return t.visitKeyframes(n,e);case 6:return t.visitStyle(n,e);case 8:return t.visitReference(n,e);case 9:return t.visitAnimateChild(n,e);case 10:return t.visitAnimateRef(n,e);case 11:return t.visitQuery(n,e);case 12:return t.visitStagger(n,e);default:throw function CB(t){return new Fe(3004,!1)}()}}function eT(t,n){return window.getComputedStyle(t)[n]}const dm="*";function uV(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function hV(t,n,e){if(":"==t[0]){const d=function fV(t,n){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(t,e);if("function"==typeof d)return void n.push(d);t=d}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function RB(t){return new Fe(3015,!1)}()),n;const o=i[1],s=i[2],a=i[3];n.push(tT(o,a));"<"==s[0]&&!(o==dm&&a==dm)&&n.push(tT(a,o))}(i,e,n)):e.push(t),e}const um=new Set(["true","1"]),hm=new Set(["false","0"]);function tT(t,n){const e=um.has(t)||hm.has(t),i=um.has(n)||hm.has(n);return(o,s)=>{let a=t==dm||t==o,l=n==dm||n==s;return!a&&e&&"boolean"==typeof o&&(a=o?um.has(t):hm.has(t)),!l&&i&&"boolean"==typeof s&&(l=s?um.has(n):hm.has(n)),a&&l}}const pV=new RegExp("s*:selfs*,?","g");function zy(t,n,e,i){return new mV(t).build(n,e,i)}class mV{constructor(n){this._driver=n}build(n,e,i){const o=new bV(e);return this._resetContextStyleTimingState(o),wo(this,oh(n),o)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,e){let i=e.queryCount=0,o=e.depCount=0;const s=[],a=[];return"@"==n.name.charAt(0)&&e.errors.push(function kB(){return new Fe(3006,!1)}()),n.definitions.forEach(l=>{if(this._resetContextStyleTimingState(e),0==l.type){const d=l,_=d.name;_.toString().split(/\s*,\s*/).forEach(E=>{d.name=E,s.push(this.visitState(d,e))}),d.name=_}else if(1==l.type){const d=this.visitTransition(l,e);i+=d.queryCount,o+=d.depCount,a.push(d)}else e.errors.push(function SB(){return new Fe(3007,!1)}())}),{type:7,name:n.name,states:s,transitions:a,queryCount:i,depCount:o,options:null}}visitState(n,e){const i=this.visitStyle(n.styles,e),o=n.options&&n.options.params||null;if(i.containsDynamicStyles){const s=new Set,a=o||{};i.styles.forEach(l=>{l instanceof Map&&l.forEach(d=>{QD(d).forEach(_=>{a.hasOwnProperty(_)||s.add(_)})})}),s.size&&(cm(s.values()),e.errors.push(function DB(t,n){return new Fe(3008,!1)}()))}return{type:0,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=wo(this,oh(n.animation),e);return{type:1,matchers:uV(n.expr,e.errors),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Hl(n.options)}}visitSequence(n,e){return{type:2,steps:n.steps.map(i=>wo(this,i,e)),options:Hl(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const s=n.steps.map(a=>{e.currentTime=i;const l=wo(this,a,e);return o=Math.max(o,e.currentTime),l});return e.currentTime=o,{type:3,steps:s,options:Hl(n.options)}}visitAnimate(n,e){const i=function yV(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Uy(lm(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=Uy(0,0,"");return s.dynamic=!0,s.strValue=e,s}const o=lm(e,n);return Uy(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,s=n.styles?n.styles:Qn({});if(5==s.type)o=this.visitKeyframes(s,e);else{let a=n.styles,l=!1;if(!a){l=!0;const _={};i.easing&&(_.easing=i.easing),a=Qn(_)}e.currentTime+=i.duration+i.delay;const d=this.visitStyle(a,e);d.isEmptyStep=l,o=d}return e.currentAnimateTimings=null,{type:4,timings:i,style:o,options:null}}visitStyle(n,e){const i=this._makeStyleAst(n,e);return this._validateStyleAst(i,e),i}_makeStyleAst(n,e){const i=[],o=Array.isArray(n.styles)?n.styles:[n.styles];for(let l of o)"string"==typeof l?l===na?i.push(l):e.errors.push(new Fe(3002,!1)):i.push(XD(l));let s=!1,a=null;return i.forEach(l=>{if(l instanceof Map&&(l.has("easing")&&(a=l.get("easing"),l.delete("easing")),!s))for(let d of l.values())if(d.toString().indexOf("{{")>=0){s=!0;break}}),{type:6,styles:i,easing:a,offset:n.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(n,e){const i=e.currentAnimateTimings;let o=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),n.styles.forEach(a=>{"string"!=typeof a&&a.forEach((l,d)=>{const _=e.collectedStyles.get(e.currentQuerySelector),E=_.get(d);let F=!0;E&&(s!=o&&s>=E.startTime&&o<=E.endTime&&(e.errors.push(function LB(t,n,e,i,o){return new Fe(3010,!1)}()),F=!1),s=E.startTime),F&&_.set(d,{startTime:s,endTime:o}),e.options&&function aV(t,n,e){const i=n.params||{},o=QD(t);o.length&&o.forEach(s=>{i.hasOwnProperty(s)||e.push(function MB(t){return new Fe(3001,!1)}())})}(l,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function EB(){return new Fe(3011,!1)}()),i;let s=0;const a=[];let l=!1,d=!1,_=0;const E=n.steps.map(ze=>{const Ee=this._makeStyleAst(ze,e);let qe=null!=Ee.offset?Ee.offset:function vV(t){if("string"==typeof t)return null;let n=null;if(Array.isArray(t))t.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;n=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const e=t;n=parseFloat(e.get("offset")),e.delete("offset")}return n}(Ee.styles),dt=0;return null!=qe&&(s++,dt=Ee.offset=qe),d=d||dt<0||dt>1,l=l||dt<_,_=dt,a.push(dt),Ee});d&&e.errors.push(function IB(){return new Fe(3012,!1)}()),l&&e.errors.push(function PB(){return new Fe(3200,!1)}());const F=n.steps.length;let G=0;s>0&&s{const qe=G>0?Ee==ie?1:G*Ee:a[Ee],dt=qe*Ae;e.currentTime=_e+Ce.delay+dt,Ce.duration=dt,this._validateStyleAst(ze,e),ze.offset=qe,i.styles.push(ze)}),i}visitReference(n,e){return{type:8,animation:wo(this,oh(n.animation),e),options:Hl(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:9,options:Hl(n.options)}}visitAnimateRef(n,e){return{type:10,animation:this.visitReference(n.animation,e),options:Hl(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[s,a]=function gV(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(pV,"")),t=t.replace(/@\*/g,am).replace(/@\w+/g,e=>am+"-"+e.slice(1)).replace(/:animating/g,Hy),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+s:s,Mo(e.collectedStyles,e.currentQuerySelector,new Map);const l=wo(this,oh(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:11,selector:s,limit:o.limit||0,optional:!!o.optional,includeSelf:a,animation:l,originalSelector:n.selector,options:Hl(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function AB(){return new Fe(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:lm(n.timings,e.errors,!0);return{type:12,animation:wo(this,oh(n.animation),e),timings:i,options:null}}}class bV{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Hl(t){return t?(t=rh(t)).params&&(t.params=function _V(t){return t?rh(t):null}(t.params)):t={},t}function Uy(t,n,e){return{duration:t,delay:n,easing:e}}function Wy(t,n,e,i,o,s,a=null,l=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:s,totalTime:o+s,easing:a,subTimeline:l}}class fm{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,e){let i=this._map.get(n);i||this._map.set(n,i=[]),i.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const CV=new RegExp(":enter","g"),kV=new RegExp(":leave","g");function $y(t,n,e,i,o,s=new Map,a=new Map,l,d,_=[]){return(new SV).buildKeyframes(t,n,e,i,o,s,a,l,d,_)}class SV{buildKeyframes(n,e,i,o,s,a,l,d,_,E=[]){_=_||new fm;const F=new Gy(n,e,_,o,s,E,[]);F.options=d;const G=d.delay?ra(d.delay):0;F.currentTimeline.delayNextStep(G),F.currentTimeline.setStyles([a],null,F.errors,d),wo(this,i,F);const ie=F.timelines.filter(_e=>_e.containsAnimation());if(ie.length&&l.size){let _e;for(let Ce=ie.length-1;Ce>=0;Ce--){const Ae=ie[Ce];if(Ae.element===e){_e=Ae;break}}_e&&!_e.allowOnlyTimelineStyles()&&_e.setStyles([l],null,F.errors,d)}return ie.length?ie.map(_e=>_e.buildKeyframes()):[Wy(e,[],[],[],0,G,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(n.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,o,o.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=n}visitAnimateRef(n,e){const i=e.createSubContext(n.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,i),this.visitReference(n.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,i){for(const o of n){const s=o?.delay;if(s){const a="number"==typeof s?s:ra(sh(s,o?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(n,e,i){let s=e.currentTimeline.currentTime;const a=null!=i.duration?ra(i.duration):null,l=null!=i.delay?ra(i.delay):null;return 0!==a&&n.forEach(d=>{const _=e.appendInstructionToTimeline(d,a,l);s=Math.max(s,_.duration+_.delay)}),s}visitReference(n,e){e.updateOptions(n.options,!0),wo(this,n.animation,e),e.previousNode=n}visitSequence(n,e){const i=e.subContextCount;let o=e;const s=n.options;if(s&&(s.params||s.delay)&&(o=e.createSubContext(s),o.transformIntoNewTimeline(),null!=s.delay)){6==o.previousNode.type&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=pm);const a=ra(s.delay);o.delayNextStep(a)}n.steps.length&&(n.steps.forEach(a=>wo(this,a,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){const i=[];let o=e.currentTimeline.currentTime;const s=n.options&&n.options.delay?ra(n.options.delay):0;n.steps.forEach(a=>{const l=e.createSubContext(n.options);s&&l.delayNextStep(s),wo(this,a,l),o=Math.max(o,l.currentTimeline.currentTime),i.push(l.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return lm(e.params?sh(i,e.params,e.errors):i,e.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){const i=e.currentAnimateTimings=this._visitTiming(n.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const s=n.style;5==s.type?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const s=o&&o.easing||n.easing;n.isEmptyStep?i.applyEmptyStep(s):i.setStyles(n.styles,s,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,s=i.duration,l=e.createSubContext().currentTimeline;l.easing=i.easing,n.styles.forEach(d=>{l.forwardTime((d.offset||0)*s),l.setStyles(d.styles,d.easing,e.errors,e.options),l.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(l),e.transformIntoNewTimeline(o+s),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},s=o.delay?ra(o.delay):0;s&&(6===e.previousNode.type||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=pm);let a=i;const l=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=l.length;let d=null;l.forEach((_,E)=>{e.currentQueryIndex=E;const F=e.createSubContext(n.options,_);s&&F.delayNextStep(s),_===e.element&&(d=F.currentTimeline),wo(this,n.animation,F),F.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,F.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),d&&(e.currentTimeline.mergeTimelineCollectedStyles(d),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,s=n.timings,a=Math.abs(s.duration),l=a*(e.currentQueryTotal-1);let d=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":d=l-d;break;case"full":d=i.currentStaggerTime}const E=e.currentTimeline;d&&E.delayNextStep(d);const F=E.currentTime;wo(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-F+(o.startTime-i.currentTimeline.startTime)}}const pm={};class Gy{constructor(n,e,i,o,s,a,l,d){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=s,this.errors=a,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=pm,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=d||new mm(this._driver,e,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;const i=n;let o=this.options;null!=i.duration&&(o.duration=ra(i.duration)),null!=i.delay&&(o.delay=ra(i.delay));const s=i.params;if(s){let a=o.params;a||(a=this.options.params={}),Object.keys(s).forEach(l=>{(!e||!a.hasOwnProperty(l))&&(a[l]=sh(s[l],a,this.errors))})}}_copyOptions(){const n={};if(this.options){const e=this.options.params;if(e){const i=n.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return n}createSubContext(n=null,e,i){const o=e||this.element,s=new Gy(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(n),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(n){return this.previousNode=pm,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,i){const o={duration:e??n.duration,delay:this.currentTimeline.currentTime+(i??0)+n.delay,easing:""},s=new DV(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,o,n.stretchStartingKeyframe);return this.timelines.push(s),o}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,i,o,s,a){let l=[];if(o&&l.push(this.element),n.length>0){n=(n=n.replace(CV,"."+this._enterClassName)).replace(kV,"."+this._leaveClassName);let _=this._driver.query(this.element,n,1!=i);0!==i&&(_=i<0?_.slice(_.length+i,_.length):_.slice(0,i)),l.push(..._)}return!s&&0==l.length&&a.push(function FB(t){return new Fe(3014,!1)}()),l}}class mm{constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new mm(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||na),this._currentKeyframe.set(e,na);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const s=o&&o.params||{},a=function TV(t,n){const e=new Map;let i;return t.forEach(o=>{if("*"===o){i=i||n.keys();for(let s of i)e.set(s,na)}else Va(o,e)}),e}(n,this._globalTimelineStyles);for(let[l,d]of a){const _=sh(d,s,i);this._pendingStyles.set(l,_),this._localTimelineStyles.has(l)||this._backFill.set(l,this._globalTimelineStyles.get(l)??na),this._updateStyle(l,_)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((l,d)=>{const _=Va(l,new Map,this._backFill);_.forEach((E,F)=>{E===Py?n.add(F):E===na&&e.add(F)}),i||_.set("offset",d/this.duration),o.push(_)});const s=n.size?cm(n.values()):[],a=e.size?cm(e.values()):[];if(i){const l=o[0],d=new Map(l);l.set("offset",0),d.set("offset",1),o=[l,d]}return Wy(this.element,o,s,a,this.duration,this.startTime,this.easing,!1)}}class DV extends mm{constructor(n,e,i,o,s,a,l=!1){super(n,e,a.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=s,this._stretchStartingKeyframe=l,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const s=[],a=i+e,l=e/a,d=Va(n[0]);d.set("offset",0),s.push(d);const _=Va(n[0]);_.set("offset",rT(l)),s.push(_);const E=n.length-1;for(let F=1;F<=E;F++){let G=Va(n[F]);const ie=G.get("offset");G.set("offset",rT((e+ie*i)/a)),s.push(G)}i=a,e=0,o="",n=s}return Wy(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function rT(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}class qy{}const LV=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class EV extends qy{normalizePropertyName(n,e){return jy(n)}normalizeStyleValue(n,e,i,o){let s="";const a=i.toString().trim();if(LV.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const l=i.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&0==l[1].length&&o.push(function xB(t,n){return new Fe(3005,!1)}())}return a+s}}function oT(t,n,e,i,o,s,a,l,d,_,E,F,G){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:l,queriedElements:d,preStyleProps:_,postStyleProps:E,totalTime:F,errors:G}}const Ky={};class sT{constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function IV(t,n,e,i,o){return t.some(s=>s(n,e,i,o))}(this.ast.matchers,n,e,i,o)}buildStyles(n,e,i){let o=this._stateStyles.get("*");return void 0!==n&&(o=this._stateStyles.get(n?.toString())||o),o?o.buildStyles(e,i):new Map}build(n,e,i,o,s,a,l,d,_,E){const F=[],G=this.ast.options&&this.ast.options.params||Ky,_e=this.buildStyles(i,l&&l.params||Ky,F),Ce=d&&d.params||Ky,Ae=this.buildStyles(o,Ce,F),ze=new Set,Ee=new Map,qe=new Map,dt="void"===o,Rt={params:PV(Ce,G),delay:this.ast.options?.delay},sn=E?[]:$y(n,e,this.ast.animation,s,a,_e,Ae,Rt,_,F);let Ii=0;if(sn.forEach(us=>{Ii=Math.max(us.duration+us.delay,Ii)}),F.length)return oT(e,this._triggerName,i,o,dt,_e,Ae,[],[],Ee,qe,Ii,F);sn.forEach(us=>{const ga=us.element,zP=Mo(Ee,ga,new Set);us.preStyleProps.forEach(lc=>zP.add(lc));const lf=Mo(qe,ga,new Set);us.postStyleProps.forEach(lc=>lf.add(lc)),ga!==e&&ze.add(ga)});const ds=cm(ze.values());return oT(e,this._triggerName,i,o,dt,_e,Ae,sn,ds,Ee,qe,Ii)}}function PV(t,n){const e=rh(n);for(const i in t)t.hasOwnProperty(i)&&null!=t[i]&&(e[i]=t[i]);return e}class OV{constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=rh(this.defaultParams);return Object.keys(n).forEach(s=>{const a=n[s];null!==a&&(o[s]=a)}),this.styles.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,l)=>{a&&(a=sh(a,o,e));const d=this.normalizer.normalizePropertyName(l,e);a=this.normalizer.normalizeStyleValue(l,d,a,e),i.set(l,a)})}),i}}class FV{constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new OV(o.style,o.options&&o.options.params||{},i))}),aT(this.states,"true","1"),aT(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new sT(n,o,this.states))}),this.fallbackTransition=function RV(t,n,e){return new sT(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[(a,l)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,i,o){return this.transitionFactories.find(a=>a.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function aT(t,n,e){t.has(n)?t.has(e)||t.set(e,t.get(n)):t.has(e)&&t.set(n,t.get(e))}const NV=new fm;class YV{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,e){const i=[],s=zy(this._driver,e,i,[]);if(i.length)throw function jB(t){return new Fe(3503,!1)}();this._animations.set(n,s)}_buildPlayer(n,e,i){const o=n.element,s=zD(this._normalizer,n.keyframes,e,i);return this._driver.animate(o,s,n.duration,n.delay,n.easing,[],!0)}create(n,e,i={}){const o=[],s=this._animations.get(n);let a;const l=new Map;if(s?(a=$y(this._driver,e,s,Yy,om,new Map,new Map,i,NV,o),a.forEach(E=>{const F=Mo(l,E.element,new Map);E.postStyleProps.forEach(G=>F.set(G,null))})):(o.push(function zB(){return new Fe(3300,!1)}()),a=[]),o.length)throw function UB(t){return new Fe(3504,!1)}();l.forEach((E,F)=>{E.forEach((G,ie)=>{E.set(ie,this._driver.computeStyle(F,ie,na))})});const _=Ba(a.map(E=>{const F=l.get(E.element);return this._buildPlayer(E,new Map,F)}));return this._playersById.set(n,_),_.onDestroy(()=>this.destroy(n)),this.players.push(_),_}destroy(n){const e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(n){const e=this._playersById.get(n);if(!e)throw function WB(t){return new Fe(3301,!1)}();return e}listen(n,e,i,o){const s=Fy(e,"","","");return Oy(this._getPlayer(n),i,s,o),()=>{}}command(n,e,i,o){if("register"==i)return void this.register(n,o[0]);if("create"==i)return void this.create(n,e,o[0]||{});const s=this._getPlayer(n);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(n)}}}const lT="ng-animate-queued",Zy="ng-animate-disabled",zV=[],cT={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},UV={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Wo="__ng_removed";class Xy{get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function qV(t){return t??null}(i?n.value:n),i){const s=rh(n);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const e=n.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const ah="void",Jy=new Xy(ah);class WV{constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,$o(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function $B(t,n){return new Fe(3302,!1)}();if(null==i||0==i.length)throw function GB(t){return new Fe(3303,!1)}();if(!function KV(t){return"start"==t||"done"==t}(i))throw function qB(t,n){return new Fe(3400,!1)}();const s=Mo(this._elementListeners,n,[]),a={name:e,phase:i,callback:o};s.push(a);const l=Mo(this._engine.statesByElement,n,new Map);return l.has(e)||($o(n,sm),$o(n,sm+"-"+e),l.set(e,Jy)),()=>{this._engine.afterFlush(()=>{const d=s.indexOf(a);d>=0&&s.splice(d,1),this._triggers.has(e)||l.delete(e)})}}register(n,e){return!this._triggers.has(n)&&(this._triggers.set(n,e),!0)}_getTrigger(n){const e=this._triggers.get(n);if(!e)throw function KB(t){return new Fe(3401,!1)}();return e}trigger(n,e,i,o=!0){const s=this._getTrigger(e),a=new Qy(this.id,e,n);let l=this._engine.statesByElement.get(n);l||($o(n,sm),$o(n,sm+"-"+e),this._engine.statesByElement.set(n,l=new Map));let d=l.get(e);const _=new Xy(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&d&&_.absorbOptions(d.options),l.set(e,_),d||(d=Jy),_.value!==ah&&d.value===_.value){if(!function JV(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{Yl(n,Ae),Ps(n,ze)})}return}const G=Mo(this._engine.playersByElement,n,[]);G.forEach(Ce=>{Ce.namespaceId==this.id&&Ce.triggerName==e&&Ce.queued&&Ce.destroy()});let ie=s.matchTransition(d.value,_.value,n,_.params),_e=!1;if(!ie){if(!o)return;ie=s.fallbackTransition,_e=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:ie,fromState:d,toState:_,player:a,isFallbackTransition:_e}),_e||($o(n,lT),a.onStart(()=>{fd(n,lT)})),a.onDone(()=>{let Ce=this.players.indexOf(a);Ce>=0&&this.players.splice(Ce,1);const Ae=this._engine.playersByElement.get(n);if(Ae){let ze=Ae.indexOf(a);ze>=0&&Ae.splice(ze,1)}}),this.players.push(a),G.push(a),a}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const e=this._engine.playersByElement.get(n);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){const i=this._engine.driver.query(n,am,!0);i.forEach(o=>{if(o[Wo])return;const s=this._engine.fetchNamespacesByElement(o);s.size?s.forEach(a=>a.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(n,e,i,o){const s=this._engine.statesByElement.get(n),a=new Map;if(s){const l=[];if(s.forEach((d,_)=>{if(a.set(_,d.value),this._triggers.has(_)){const E=this.trigger(n,_,ah,o);E&&l.push(E)}}),l.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,a),i&&Ba(l).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const e=this._elementListeners.get(n),i=this._engine.statesByElement.get(n);if(e&&i){const o=new Set;e.forEach(s=>{const a=s.name;if(o.has(a))return;o.add(a);const d=this._triggers.get(a).fallbackTransition,_=i.get(a)||Jy,E=new Xy(ah),F=new Qy(this.id,a,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:a,transition:d,fromState:_,toState:E,player:F,isFallbackTransition:!0})})}}removeNode(n,e){const i=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let o=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(n):[];if(s&&s.length)o=!0;else{let a=n;for(;a=a.parentNode;)if(i.statesByElement.get(a)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const s=n[Wo];(!s||s===cT)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){$o(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const s=i.element,a=this._elementListeners.get(s);a&&a.forEach(l=>{if(l.name==i.triggerName){const d=Fy(s,i.triggerName,i.fromState.value,i.toState.value);d._data=n,Oy(i.player,l.phase,d,l.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const s=i.transition.ast.depCount,a=o.transition.ast.depCount;return 0==s||0==a?s-a:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}elementContainsData(n){let e=!1;return this._elementListeners.has(n)&&(e=!0),e=!!this._queue.find(i=>i.element===n)||e,e}}class $V{_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i){this.bodyNode=n,this.driver=e,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,s)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&n.push(i)})}),n}createNamespace(n,e){const i=new WV(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[n]=i}_balanceNamespaceList(n,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,l=this.driver.getParentElement(e);for(;l;){const d=o.get(l);if(d){const _=i.indexOf(d);i.splice(_+1,0,n),a=!0;break}l=this.driver.getParentElement(l)}a||i.unshift(n)}else i.push(n);return o.set(e,n),n}register(n,e){let i=this._namespaceLookup[n];return i||(i=this.createNamespace(n,e)),i}registerTrigger(n,e,i){let o=this._namespaceLookup[n];o&&o.register(e,i)&&this.totalAnimations++}destroy(n,e){if(!n)return;const i=this._fetchNamespace(n);this.afterFlush(()=>{this.namespacesByHostElement.delete(i.hostElement),delete this._namespaceLookup[n];const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1)}),this.afterFlushAnimationsDone(()=>i.destroy(e))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const e=new Set,i=this.statesByElement.get(n);if(i)for(let o of i.values())if(o.namespaceId){const s=this._fetchNamespace(o.namespaceId);s&&e.add(s)}return e}trigger(n,e,i,o){if(gm(e)){const s=this._fetchNamespace(n);if(s)return s.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!gm(e))return;const s=e[Wo];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(n){const a=this._fetchNamespace(n);a&&a.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),$o(n,Zy)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),fd(n,Zy))}removeNode(n,e,i,o){if(gm(e)){const s=n?this._fetchNamespace(n):null;if(s?s.removeNode(e,o):this.markElementAsRemoved(n,e,!1,o),i){const a=this.namespacesByHostElement.get(e);a&&a.id!==n&&a.removeNode(e,o)}}else this._onRemovalComplete(e,o)}markElementAsRemoved(n,e,i,o,s){this.collectedLeaveElements.push(e),e[Wo]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(n,e,i,o,s){return gm(e)?this._fetchNamespace(n).listen(e,i,o,s):()=>{}}_buildInstruction(n,e,i,o,s){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,i,o,n.fromState.options,n.toState.options,e,s)}destroyInnerAnimations(n){let e=this.driver.query(n,am,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,Hy,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(n){const e=this.playersByElement.get(n);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(n){const e=this.playersByQueriedElement.get(n);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Ba(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[Wo];if(e&&e.setForRemoval){if(n[Wo]=cT,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(Zy)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?Ba(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function ZB(t){return new Fe(3402,!1)}()}_flushAnimations(n,e){const i=new fm,o=[],s=new Map,a=[],l=new Map,d=new Map,_=new Map,E=new Set;this.disabledNodes.forEach(pt=>{E.add(pt);const yt=this.driver.query(pt,".ng-animate-queued",!0);for(let Ot=0;Ot{const Ot=Yy+Ce++;_e.set(yt,Ot),pt.forEach(vn=>$o(vn,Ot))});const Ae=[],ze=new Set,Ee=new Set;for(let pt=0;ptze.add(vn)):Ee.add(yt))}const qe=new Map,dt=hT(G,Array.from(ze));dt.forEach((pt,yt)=>{const Ot=om+Ce++;qe.set(yt,Ot),pt.forEach(vn=>$o(vn,Ot))}),n.push(()=>{ie.forEach((pt,yt)=>{const Ot=_e.get(yt);pt.forEach(vn=>fd(vn,Ot))}),dt.forEach((pt,yt)=>{const Ot=qe.get(yt);pt.forEach(vn=>fd(vn,Ot))}),Ae.forEach(pt=>{this.processLeaveNode(pt)})});const Rt=[],sn=[];for(let pt=this._namespaceList.length-1;pt>=0;pt--)this._namespaceList[pt].drainQueuedTransitions(e).forEach(Ot=>{const vn=Ot.player,_r=Ot.element;if(Rt.push(vn),this.collectedEnterElements.length){const Rr=_r[Wo];if(Rr&&Rr.setForMove){if(Rr.previousTriggersValues&&Rr.previousTriggersValues.has(Ot.triggerName)){const cc=Rr.previousTriggersValues.get(Ot.triggerName),qo=this.statesByElement.get(Ot.element);if(qo&&qo.has(Ot.triggerName)){const Yg=qo.get(Ot.triggerName);Yg.value=cc,qo.set(Ot.triggerName,Yg)}}return void vn.destroy()}}const Ns=!F||!this.driver.containsElement(F,_r),Eo=qe.get(_r),cl=_e.get(_r),Mi=this._buildInstruction(Ot,i,cl,Eo,Ns);if(Mi.errors&&Mi.errors.length)return void sn.push(Mi);if(Ns)return vn.onStart(()=>Yl(_r,Mi.fromStyles)),vn.onDestroy(()=>Ps(_r,Mi.toStyles)),void o.push(vn);if(Ot.isFallbackTransition)return vn.onStart(()=>Yl(_r,Mi.fromStyles)),vn.onDestroy(()=>Ps(_r,Mi.toStyles)),void o.push(vn);const $P=[];Mi.timelines.forEach(Rr=>{Rr.stretchStartingKeyframe=!0,this.disabledNodes.has(Rr.element)||$P.push(Rr)}),Mi.timelines=$P,i.append(_r,Mi.timelines),a.push({instruction:Mi,player:vn,element:_r}),Mi.queriedElements.forEach(Rr=>Mo(l,Rr,[]).push(vn)),Mi.preStyleProps.forEach((Rr,cc)=>{if(Rr.size){let qo=d.get(cc);qo||d.set(cc,qo=new Set),Rr.forEach((Yg,K1)=>qo.add(K1))}}),Mi.postStyleProps.forEach((Rr,cc)=>{let qo=_.get(cc);qo||_.set(cc,qo=new Set),Rr.forEach((Yg,K1)=>qo.add(K1))})});if(sn.length){const pt=[];sn.forEach(yt=>{pt.push(function XB(t,n){return new Fe(3505,!1)}())}),Rt.forEach(yt=>yt.destroy()),this.reportError(pt)}const Ii=new Map,ds=new Map;a.forEach(pt=>{const yt=pt.element;i.has(yt)&&(ds.set(yt,yt),this._beforeAnimationBuild(pt.player.namespaceId,pt.instruction,Ii))}),o.forEach(pt=>{const yt=pt.element;this._getPreviousPlayers(yt,!1,pt.namespaceId,pt.triggerName,null).forEach(vn=>{Mo(Ii,yt,[]).push(vn),vn.destroy()})});const us=Ae.filter(pt=>pT(pt,d,_)),ga=new Map;uT(ga,this.driver,Ee,_,na).forEach(pt=>{pT(pt,d,_)&&us.push(pt)});const lf=new Map;ie.forEach((pt,yt)=>{uT(lf,this.driver,new Set(pt),d,Py)}),us.forEach(pt=>{const yt=ga.get(pt),Ot=lf.get(pt);ga.set(pt,new Map([...Array.from(yt?.entries()??[]),...Array.from(Ot?.entries()??[])]))});const lc=[],UP=[],WP={};a.forEach(pt=>{const{element:yt,player:Ot,instruction:vn}=pt;if(i.has(yt)){if(E.has(yt))return Ot.onDestroy(()=>Ps(yt,vn.toStyles)),Ot.disabled=!0,Ot.overrideTotalTime(vn.totalTime),void o.push(Ot);let _r=WP;if(ds.size>1){let Eo=yt;const cl=[];for(;Eo=Eo.parentNode;){const Mi=ds.get(Eo);if(Mi){_r=Mi;break}cl.push(Eo)}cl.forEach(Mi=>ds.set(Mi,_r))}const Ns=this._buildAnimation(Ot.namespaceId,vn,Ii,s,lf,ga);if(Ot.setRealPlayer(Ns),_r===WP)lc.push(Ot);else{const Eo=this.playersByElement.get(_r);Eo&&Eo.length&&(Ot.parentPlayer=Ba(Eo)),o.push(Ot)}}else Yl(yt,vn.fromStyles),Ot.onDestroy(()=>Ps(yt,vn.toStyles)),UP.push(Ot),E.has(yt)&&o.push(Ot)}),UP.forEach(pt=>{const yt=s.get(pt.element);if(yt&&yt.length){const Ot=Ba(yt);pt.setRealPlayer(Ot)}}),o.forEach(pt=>{pt.parentPlayer?pt.syncPlayerEvents(pt.parentPlayer):pt.destroy()});for(let pt=0;pt!Ns.destroyed);_r.length?ZV(this,yt,_r):this.processLeaveNode(yt)}return Ae.length=0,lc.forEach(pt=>{this.players.push(pt),pt.onDone(()=>{pt.destroy();const yt=this.players.indexOf(pt);this.players.splice(yt,1)}),pt.play()}),lc}elementContainsData(n,e){let i=!1;const o=e[Wo];return o&&o.setForRemoval&&(i=!0),this.playersByElement.has(e)&&(i=!0),this.playersByQueriedElement.has(e)&&(i=!0),this.statesByElement.has(e)&&(i=!0),this._fetchNamespace(n).elementContainsData(e)||i}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,s){let a=[];if(e){const l=this.playersByQueriedElement.get(n);l&&(a=l)}else{const l=this.playersByElement.get(n);if(l){const d=!s||s==ah;l.forEach(_=>{_.queued||!d&&_.triggerName!=o||a.push(_)})}}return(i||o)&&(a=a.filter(l=>!(i&&i!=l.namespaceId||o&&o!=l.triggerName))),a}_beforeAnimationBuild(n,e,i){const s=e.element,a=e.isRemovalTransition?void 0:n,l=e.isRemovalTransition?void 0:e.triggerName;for(const d of e.timelines){const _=d.element,E=_!==s,F=Mo(i,_,[]);this._getPreviousPlayers(_,E,a,l,e.toState).forEach(ie=>{const _e=ie.getRealPlayer();_e.beforeDestroy&&_e.beforeDestroy(),ie.destroy(),F.push(ie)})}Yl(s,e.fromStyles)}_buildAnimation(n,e,i,o,s,a){const l=e.triggerName,d=e.element,_=[],E=new Set,F=new Set,G=e.timelines.map(_e=>{const Ce=_e.element;E.add(Ce);const Ae=Ce[Wo];if(Ae&&Ae.removedBeforeQueried)return new ih(_e.duration,_e.delay);const ze=Ce!==d,Ee=function XV(t){const n=[];return fT(t,n),n}((i.get(Ce)||zV).map(Ii=>Ii.getRealPlayer())).filter(Ii=>!!Ii.element&&Ii.element===Ce),qe=s.get(Ce),dt=a.get(Ce),Rt=zD(this._normalizer,_e.keyframes,qe,dt),sn=this._buildPlayer(_e,Rt,Ee);if(_e.subTimeline&&o&&F.add(Ce),ze){const Ii=new Qy(n,l,Ce);Ii.setRealPlayer(sn),_.push(Ii)}return sn});_.forEach(_e=>{Mo(this.playersByQueriedElement,_e.element,[]).push(_e),_e.onDone(()=>function GV(t,n,e){let i=t.get(n);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&t.delete(n)}return i}(this.playersByQueriedElement,_e.element,_e))}),E.forEach(_e=>$o(_e,ZD));const ie=Ba(G);return ie.onDestroy(()=>{E.forEach(_e=>fd(_e,ZD)),Ps(d,e.toStyles)}),F.forEach(_e=>{Mo(o,_e,[]).push(ie)}),ie}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new ih(n.duration,n.delay)}}class Qy{constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i,this._player=new ih,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>Oy(n,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){Mo(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const e=this._player;e.triggerCallback&&e.triggerCallback(n)}}function gm(t){return t&&1===t.nodeType}function dT(t,n){const e=t.style.display;return t.style.display=n??"none",e}function uT(t,n,e,i,o){const s=[];e.forEach(d=>s.push(dT(d)));const a=[];i.forEach((d,_)=>{const E=new Map;d.forEach(F=>{const G=n.computeStyle(_,F,o);E.set(F,G),(!G||0==G.length)&&(_[Wo]=UV,a.push(_))}),t.set(_,E)});let l=0;return e.forEach(d=>dT(d,s[l++])),a}function hT(t,n){const e=new Map;if(t.forEach(l=>e.set(l,[])),0==n.length)return e;const i=1,o=new Set(n),s=new Map;function a(l){if(!l)return i;let d=s.get(l);if(d)return d;const _=l.parentNode;return d=e.has(_)?_:o.has(_)?i:a(_),s.set(l,d),d}return n.forEach(l=>{const d=a(l);d!==i&&e.get(d).push(l)}),e}function $o(t,n){t.classList?.add(n)}function fd(t,n){t.classList?.remove(n)}function ZV(t,n,e){Ba(e).onDone(()=>t.processLeaveNode(n))}function fT(t,n){for(let e=0;eo.add(s)):n.set(t,i),e.delete(t),!0}class _m{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,s)=>{},this._transitionEngine=new $V(n,e,i),this._timelineEngine=new YV(n,e,i),this._transitionEngine.onRemovalComplete=(o,s)=>this.onRemovalComplete(o,s)}registerTrigger(n,e,i,o,s){const a=n+"-"+o;let l=this._triggerCache[a];if(!l){const d=[],E=zy(this._driver,s,d,[]);if(d.length)throw function BB(t,n){return new Fe(3404,!1)}();l=function AV(t,n,e){return new FV(t,n,e)}(o,E,this._normalizer),this._triggerCache[a]=l}this._transitionEngine.registerTrigger(e,o,l)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,i,o){this._transitionEngine.insertNode(n,e,i,o)}onRemove(n,e,i,o){this._transitionEngine.removeNode(n,e,o||!1,i)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,i,o){if("@"==i.charAt(0)){const[s,a]=UD(i);this._timelineEngine.command(s,e,a,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,s){if("@"==i.charAt(0)){const[a,l]=UD(i);return this._timelineEngine.listen(a,e,l,s)}return this._transitionEngine.listen(n,e,i,o,s)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}let e8=(()=>{class t{constructor(e,i,o){this._element=e,this._startStyles=i,this._endStyles=o,this._state=0;let s=t.initialStylesByElement.get(e);s||t.initialStylesByElement.set(e,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&Ps(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Ps(this._element,this._initialStyles),this._endStyles&&(Ps(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(Yl(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Yl(this._element,this._endStyles),this._endStyles=null),Ps(this._element,this._initialStyles),this._state=3)}}return t.initialStylesByElement=new WeakMap,t})();function e0(t){let n=null;return t.forEach((e,i)=>{(function t8(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class mT{constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map,this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){const e=[];return n.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(n,e,i){return n.animate(this._convertKeyframesToObject(e),i)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&n.set(o,this._finished?i:eT(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class n8{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}matchesElement(n,e){return!1}containsElement(n,e){return $D(n,e)}getParentElement(n){return Ry(n)}query(n,e,i){return GD(n,e,i)}computeStyle(n,e,i){return window.getComputedStyle(n)[e]}animate(n,e,i,o,s,a=[]){const d={duration:i,delay:o,fill:0==o?"both":"forwards"};s&&(d.easing=s);const _=new Map,E=a.filter(ie=>ie instanceof mT);(function cV(t,n){return 0===t||0===n})(i,o)&&E.forEach(ie=>{ie.currentSnapshot.forEach((_e,Ce)=>_.set(Ce,_e))});let F=function sV(t){return t.length?t[0]instanceof Map?t:t.map(n=>XD(n)):[]}(e).map(ie=>Va(ie));F=function dV(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((s,a)=>{i.has(a)||o.push(a),i.set(a,s)}),o.length)for(let s=1;sa.set(l,eT(t,l)))}}return n}(n,F,_);const G=function QV(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=e0(n[0]),n.length>1&&(i=e0(n[n.length-1]))):n instanceof Map&&(e=e0(n)),e||i?new e8(t,e,i):null}(n,F);return new mT(n,F,d,G)}}let i8=(()=>{class t extends ND{constructor(e,i){super(),this._nextAnimationId=0,this._renderer=e.createRenderer(i.body,{id:"0",encapsulation:Dr.None,styles:[],data:{animation:[]}})}build(e){const i=this._nextAnimationId.toString();this._nextAnimationId++;const o=Array.isArray(e)?HD(e):e;return gT(this._renderer,null,i,"register",[o]),new r8(i,this._renderer)}}return t.\u0275fac=function(e){return new(e||t)(we(Lu),we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();class r8 extends bB{constructor(n,e){super(),this._id=n,this._renderer=e}create(n,e){return new o8(this._id,n,e||{},this._renderer)}}class o8{constructor(n,e,i,o){this.id=n,this.element=e,this._renderer=o,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(n,e){return this._renderer.listen(this.element,`@@${this.id}:${n}`,e)}_command(n,...e){return gT(this._renderer,this.element,this.id,n,e)}onDone(n){this._listen("done",n)}onStart(n){this._listen("start",n)}onDestroy(n){this._listen("destroy",n)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(n){this._command("setPosition",n)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function gT(t,n,e,i,o){return t.setProperty(n,`@@${e}:${i}`,o)}const _T="@.disabled";let s8=(()=>{class t{constructor(e,i,o){this.delegate=e,this.engine=i,this._zone=o,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),i.onRemovalComplete=(s,a)=>{const l=a?.parentNode(s);l&&a.removeChild(l,s)}}createRenderer(e,i){const s=this.delegate.createRenderer(e,i);if(!(e&&i&&i.data&&i.data.animation)){let E=this._rendererCache.get(s);return E||(E=new bT("",s,this.engine,()=>this._rendererCache.delete(s)),this._rendererCache.set(s,E)),E}const a=i.id,l=i.id+"-"+this._currentId;this._currentId++,this.engine.register(l,e);const d=E=>{Array.isArray(E)?E.forEach(d):this.engine.registerTrigger(a,l,e,E.name,E)};return i.data.animation.forEach(d),new a8(this,l,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(e,i,o){e>=0&&ei(o)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[a,l]=s;a(l)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([i,o]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return t.\u0275fac=function(e){return new(e||t)(we(Lu),we(_m),we(ft))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();class bT{constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o,this.destroyNode=this.delegate.destroyNode?s=>e.destroyNode(s):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy(),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,i,o=!0){this.delegate.insertBefore(n,e,i),this.engine.onInsert(this.namespaceId,e,n,o)}removeChild(n,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate,i)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,i,o){this.delegate.setAttribute(n,e,i,o)}removeAttribute(n,e,i){this.delegate.removeAttribute(n,e,i)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,i,o){this.delegate.setStyle(n,e,i,o)}removeStyle(n,e,i){this.delegate.removeStyle(n,e,i)}setProperty(n,e,i){"@"==e.charAt(0)&&e==_T?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i){return this.delegate.listen(n,e,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class a8 extends bT{constructor(n,e,i,o,s){super(e,i,o,s),this.factory=n,this.namespaceId=e}setProperty(n,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==_T?this.disableAnimations(n,i=void 0===i||!!i):this.engine.process(this.namespaceId,n,e.slice(1),i):this.delegate.setProperty(n,e,i)}listen(n,e,i){if("@"==e.charAt(0)){const o=function l8(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let s=e.slice(1),a="";return"@"!=s.charAt(0)&&([s,a]=function c8(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(s)),this.engine.listen(this.namespaceId,o,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(n,e,i)}}let d8=(()=>{class t extends _m{constructor(e,i,o,s){super(e.body,i,o)}ngOnDestroy(){this.flush()}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(Ny),we(qy),we(Na))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const vT=[{provide:ND,useClass:i8},{provide:qy,useFactory:function u8(){return new EV}},{provide:_m,useClass:d8},{provide:Lu,useFactory:function h8(t,n,e){return new s8(t,n,e)},deps:[ky,_m,ft]}],t0=[{provide:Ny,useFactory:()=>new n8},{provide:Ri,useValue:"BrowserAnimations"},...vT],yT=[{provide:Ny,useClass:qD},{provide:Ri,useValue:"NoopAnimations"},...vT];let f8=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?yT:t0}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:t0,imports:[ID]}),t})();function $e(...t){let n=t[t.length-1];return Se(n)?(t.pop(),W(t,n)):An(t)}function Bl(t,n){return Ye(t,n,1)}function _i(t,n){return function(i){return i.lift(new p8(t,n))}}class p8{constructor(n,e){this.predicate=n,this.thisArg=e}call(n,e){return e.subscribe(new m8(n,this.predicate,this.thisArg))}}class m8 extends A{constructor(n,e,i){super(n),this.predicate=e,this.thisArg=i,this.count=0}_next(n){let e;try{e=this.predicate.call(this.thisArg,n,this.count++)}catch(i){return void this.destination.error(i)}e&&this.destination.next(n)}}function gr(t,n){return"function"==typeof n?e=>e.pipe(gr((i,o)=>ue(t(i,o)).pipe(ke((s,a)=>n(i,s,o,a))))):e=>e.lift(new g8(t))}class g8{constructor(n){this.project=n}call(n,e){return e.subscribe(new _8(n,this.project))}}class _8 extends Me{constructor(n,e){super(n),this.project=e,this.index=0}_next(n){let e;const i=this.index++;try{e=this.project(n,i)}catch(o){return void this.destination.error(o)}this._innerSub(e)}_innerSub(n){const e=this.innerSubscription;e&&e.unsubscribe();const i=new be(this),o=this.destination;o.add(i),this.innerSubscription=Ie(n,i),this.innerSubscription!==i&&o.add(this.innerSubscription)}_complete(){const{innerSubscription:n}=this;(!n||n.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(n){this.destination.next(n)}}class vm{}class n0{}class rs{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?this.lazyInit="string"==typeof n?()=>{this.headers=new Map,n.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),s=o.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(o,s),this.headers.has(s)?this.headers.get(s).push(a):this.headers.set(s,[a])}})}:()=>{this.headers=new Map,Object.entries(n).forEach(([e,i])=>{let o;if(o="string"==typeof i?[i]:"number"==typeof i?[i.toString()]:i.map(s=>s.toString()),o.length>0){const s=e.toLowerCase();this.headers.set(s,o),this.maybeSetNormalizedName(e,s)}})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const e=this.headers.get(n.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,e){return this.clone({name:n,value:e,op:"a"})}set(n,e){return this.clone({name:n,value:e,op:"s"})}delete(n,e){return this.clone({name:n,value:e,op:"d"})}maybeSetNormalizedName(n,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,n)}init(){this.lazyInit&&(this.lazyInit instanceof rs?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(e=>{this.headers.set(e,n.headers.get(e)),this.normalizedNames.set(e,n.normalizedNames.get(e))})}clone(n){const e=new rs;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof rs?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([n]),e}applyUpdate(n){const e=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(n.name,e);const o=("a"===n.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const s=n.value;if(s){let a=this.headers.get(e);if(!a)return;a=a.filter(l=>-1===s.indexOf(l)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>n(this.normalizedNames.get(e),this.headers.get(e)))}}class b8{encodeKey(n){return MT(n)}encodeValue(n){return MT(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const y8=/%(\d[a-f0-9])/gi,M8={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function MT(t){return encodeURIComponent(t).replace(y8,(n,e)=>M8[e]??n)}function ym(t){return`${t}`}class ja{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new b8,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function v8(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const s=o.indexOf("="),[a,l]=-1==s?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,s)),n.decodeValue(o.slice(s+1))],d=e.get(a)||[];d.push(l),e.set(a,d)}),e}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(e=>{const i=n.fromObject[e],o=Array.isArray(i)?i.map(ym):[ym(i)];this.map.set(e,o)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const e=this.map.get(n);return e?e[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,e){return this.clone({param:n,value:e,op:"a"})}appendAll(n){const e=[];return Object.keys(n).forEach(i=>{const o=n[i];Array.isArray(o)?o.forEach(s=>{e.push({param:i,value:s,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(n,e){return this.clone({param:n,value:e,op:"s"})}delete(n,e){return this.clone({param:n,value:e,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const e=this.encoder.encodeKey(n);return this.map.get(n).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const e=new ja({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(n),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const e=("a"===n.op?this.map.get(n.param):void 0)||[];e.push(ym(n.value)),this.map.set(n.param,e);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let i=this.map.get(n.param)||[];const o=i.indexOf(ym(n.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class w8{constructor(){this.map=new Map}set(n,e){return this.map.set(n,e),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function wT(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function CT(t){return typeof Blob<"u"&&t instanceof Blob}function xT(t){return typeof FormData<"u"&&t instanceof FormData}class lh{constructor(n,e,i,o){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function C8(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,s=o):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params)),this.headers||(this.headers=new rs),this.context||(this.context=new w8),this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const l=e.indexOf("?");this.urlWithParams=e+(-1===l?"?":lF.set(G,n.setHeaders[G]),d)),n.setParams&&(_=Object.keys(n.setParams).reduce((F,G)=>F.set(G,n.setParams[G]),_)),new lh(e,i,s,{params:_,headers:d,context:E,reportProgress:l,responseType:o,withCredentials:a})}}var Zi=(()=>((Zi=Zi||{})[Zi.Sent=0]="Sent",Zi[Zi.UploadProgress=1]="UploadProgress",Zi[Zi.ResponseHeader=2]="ResponseHeader",Zi[Zi.DownloadProgress=3]="DownloadProgress",Zi[Zi.Response=4]="Response",Zi[Zi.User=5]="User",Zi))();class r0{constructor(n,e=200,i="OK"){this.headers=n.headers||new rs,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class o0 extends r0{constructor(n={}){super(n),this.type=Zi.ResponseHeader}clone(n={}){return new o0({headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class pd extends r0{constructor(n={}){super(n),this.type=Zi.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new pd({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class kT extends r0{constructor(n){super(n,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${n.url||"(unknown url)"}`:`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}function s0(t,n){return{body:n,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}let Vl=(()=>{class t{constructor(e){this.handler=e}request(e,i,o={}){let s;if(e instanceof lh)s=e;else{let d,_;d=o.headers instanceof rs?o.headers:new rs(o.headers),o.params&&(_=o.params instanceof ja?o.params:new ja({fromObject:o.params})),s=new lh(e,i,void 0!==o.body?o.body:null,{headers:d,context:o.context,params:_,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials})}const a=$e(s).pipe(Bl(d=>this.handler.handle(d)));if(e instanceof lh||"events"===o.observe)return a;const l=a.pipe(_i(d=>d instanceof pd));switch(o.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(ke(d=>{if(null!==d.body&&!(d.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return d.body}));case"blob":return l.pipe(ke(d=>{if(null!==d.body&&!(d.body instanceof Blob))throw new Error("Response is not a Blob.");return d.body}));case"text":return l.pipe(ke(d=>{if(null!==d.body&&"string"!=typeof d.body)throw new Error("Response is not a string.");return d.body}));default:return l.pipe(ke(d=>d.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new ja).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,s0(o,i))}post(e,i,o={}){return this.request("POST",e,s0(o,i))}put(e,i,o={}){return this.request("PUT",e,s0(o,i))}}return t.\u0275fac=function(e){return new(e||t)(we(vm))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function ST(t,n){return n(t)}function k8(t,n){return(e,i)=>n.intercept(e,{handle:o=>t(o,i)})}const D8=new Re(""),ch=new Re(""),DT=new Re("");function T8(){let t=null;return(n,e)=>(null===t&&(t=(Qe(D8,{optional:!0})??[]).reduceRight(k8,ST)),t(n,e))}let TT=(()=>{class t extends vm{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null}handle(e){if(null===this.chain){const i=Array.from(new Set([...this.injector.get(ch),...this.injector.get(DT,[])]));this.chain=i.reduceRight((o,s)=>function S8(t,n,e){return(i,o)=>e.runInContext(()=>n(i,s=>t(s,o)))}(o,s,this.injector),ST)}return this.chain(e,i=>this.backend.handle(i))}}return t.\u0275fac=function(e){return new(e||t)(we(n0),we(ks))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const P8=/^\)\]\}',?\n/;let ET=(()=>{class t{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");const i=this.xhrFactory;return(i.\u0275loadImpl?ue(i.\u0275loadImpl()):$e(null)).pipe(gr(()=>new he(s=>{const a=i.build();if(a.open(e.method,e.urlWithParams),e.withCredentials&&(a.withCredentials=!0),e.headers.forEach((Ee,qe)=>a.setRequestHeader(Ee,qe.join(","))),e.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const Ee=e.detectContentTypeHeader();null!==Ee&&a.setRequestHeader("Content-Type",Ee)}if(e.responseType){const Ee=e.responseType.toLowerCase();a.responseType="json"!==Ee?Ee:"text"}const l=e.serializeBody();let d=null;const _=()=>{if(null!==d)return d;const Ee=a.statusText||"OK",qe=new rs(a.getAllResponseHeaders()),dt=function O8(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(a)||e.url;return d=new o0({headers:qe,status:a.status,statusText:Ee,url:dt}),d},E=()=>{let{headers:Ee,status:qe,statusText:dt,url:Rt}=_(),sn=null;204!==qe&&(sn=typeof a.response>"u"?a.responseText:a.response),0===qe&&(qe=sn?200:0);let Ii=qe>=200&&qe<300;if("json"===e.responseType&&"string"==typeof sn){const ds=sn;sn=sn.replace(P8,"");try{sn=""!==sn?JSON.parse(sn):null}catch(us){sn=ds,Ii&&(Ii=!1,sn={error:us,text:sn})}}Ii?(s.next(new pd({body:sn,headers:Ee,status:qe,statusText:dt,url:Rt||void 0})),s.complete()):s.error(new kT({error:sn,headers:Ee,status:qe,statusText:dt,url:Rt||void 0}))},F=Ee=>{const{url:qe}=_(),dt=new kT({error:Ee,status:a.status||0,statusText:a.statusText||"Unknown Error",url:qe||void 0});s.error(dt)};let G=!1;const ie=Ee=>{G||(s.next(_()),G=!0);let qe={type:Zi.DownloadProgress,loaded:Ee.loaded};Ee.lengthComputable&&(qe.total=Ee.total),"text"===e.responseType&&a.responseText&&(qe.partialText=a.responseText),s.next(qe)},_e=Ee=>{let qe={type:Zi.UploadProgress,loaded:Ee.loaded};Ee.lengthComputable&&(qe.total=Ee.total),s.next(qe)};let Ce;a.addEventListener("load",E),a.addEventListener("error",F),a.addEventListener("timeout",F),a.addEventListener("abort",F),e.reportProgress&&(a.addEventListener("progress",ie),null!==l&&a.upload&&a.upload.addEventListener("progress",_e));const Ae=()=>{Ce??=function F8(){const t=setTimeout(()=>{},A8);return()=>clearTimeout(t)}()},ze=()=>{Ce?.()};return a.addEventListener("loadstart",Ae),a.addEventListener("loadend",ze),a.send(l),s.next({type:Zi.Sent}),()=>{a.removeEventListener("loadstart",Ae),a.removeEventListener("loadend",ze),a.removeEventListener("error",F),a.removeEventListener("abort",F),a.removeEventListener("load",E),a.removeEventListener("timeout",F),Ce?.(),e.reportProgress&&(a.removeEventListener("progress",ie),null!==l&&a.upload&&a.upload.removeEventListener("progress",_e)),a.readyState!==a.DONE&&a.abort()}})))}}return t.\u0275fac=function(e){return new(e||t)(we(pD))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const A8=2147483647,a0=new Re("XSRF_ENABLED"),IT=new Re("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),PT=new Re("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class OT{}let Y8=(()=>{class t{constructor(e,i,o){this.doc=e,this.platform=i,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=nD(e,this.cookieName),this.lastCookieString=e),this.lastToken}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(Oa),we(IT))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function H8(t,n){const e=t.url.toLowerCase();if(!Qe(a0)||"GET"===t.method||"HEAD"===t.method||e.startsWith("http://")||e.startsWith("https://"))return n(t);const i=Qe(OT).getToken(),o=Qe(PT);return null!=i&&!t.headers.has(o)&&(t=t.clone({headers:t.headers.set(o,i)})),n(t)}var Hi=(()=>((Hi=Hi||{})[Hi.Interceptors=0]="Interceptors",Hi[Hi.LegacyInterceptors=1]="LegacyInterceptors",Hi[Hi.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",Hi[Hi.NoXsrfProtection=3]="NoXsrfProtection",Hi[Hi.JsonpSupport=4]="JsonpSupport",Hi[Hi.RequestsMadeViaParent=5]="RequestsMadeViaParent",Hi))();function md(t,n){return{\u0275kind:t,\u0275providers:n}}function B8(...t){const n=[Vl,ET,TT,{provide:vm,useExisting:TT},{provide:n0,useExisting:ET},{provide:ch,useValue:H8,multi:!0},{provide:a0,useValue:!0},{provide:OT,useClass:Y8}];for(const e of t)n.push(...e.\u0275providers);return function vb(t){return{\u0275providers:t}}(n)}const AT=new Re("LEGACY_INTERCEPTOR_FN");let j8=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[B8(md(Hi.LegacyInterceptors,[{provide:AT,useFactory:T8},{provide:ch,useExisting:AT,multi:!0}]))]}),t})();function za(t){return!!t&&(t instanceof he||"function"==typeof t.lift&&"function"==typeof t.subscribe)}class Or extends J{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const e=super._subscribe(n);return e&&!e.closed&&n.next(this._value),e}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new ee;return this._value}next(n){super.next(this._value=n)}}class q8 extends A{notifyNext(n,e,i,o,s){this.destination.next(e)}notifyError(n,e){this.destination.error(n)}notifyComplete(n){this.destination.complete()}}class K8 extends A{constructor(n,e,i){super(),this.parent=n,this.outerValue=e,this.outerIndex=i,this.index=0}_next(n){this.parent.notifyNext(this.outerValue,n,this.outerIndex,this.index++,this)}_error(n){this.parent.notifyError(n,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}function Z8(t,n,e,i,o=new K8(t,e,i)){if(!o.closed)return n instanceof he?n.subscribe(o):Oi(n)(o)}const FT={};function Mm(...t){let n,e;return Se(t[t.length-1])&&(e=t.pop()),"function"==typeof t[t.length-1]&&(n=t.pop()),1===t.length&&M(t[0])&&(t=t[0]),An(t,e).lift(new X8(n))}class X8{constructor(n){this.resultSelector=n}call(n,e){return e.subscribe(new J8(n,this.resultSelector))}}class J8 extends q8{constructor(n,e){super(n),this.resultSelector=e,this.active=0,this.values=[],this.observables=[]}_next(n){this.values.push(FT),this.observables.push(n)}_complete(){const n=this.observables,e=n.length;if(0===e)this.destination.complete();else{this.active=e,this.toRespond=e;for(let i=0;i{function t(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return t.prototype=Object.create(Error.prototype),t})();function Ua(...t){return function Q8(){return fn(1)}()($e(...t))}const oa=new he(t=>t.complete());function Cm(t){return t?function e6(t){return new he(n=>t.schedule(()=>n.complete()))}(t):oa}function jl(t){return new he(n=>{let e;try{e=t()}catch(o){return void n.error(o)}return(e?ue(e):Cm()).subscribe(n)})}function Ar(t,n){return new he(n?e=>n.schedule(t6,0,{error:t,subscriber:e}):e=>e.error(t))}function t6({error:t,subscriber:n}){n.error(t)}const RT=(()=>{function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t})();function Kn(t){return n=>0===t?Cm():n.lift(new n6(t))}class n6{constructor(n){if(this.total=n,this.total<0)throw new RT}call(n,e){return e.subscribe(new i6(n,this.total))}}class i6 extends A{constructor(n,e){super(n),this.total=e,this.count=0}_next(n){const e=this.total,i=++this.count;i<=e&&(this.destination.next(n),i===e&&(this.destination.complete(),this.unsubscribe()))}}function Go(...t){const n=t[t.length-1];return Se(n)?(t.pop(),e=>Ua(t,e,n)):e=>Ua(t,e)}function xm(t=null){return n=>n.lift(new r6(t))}class r6{constructor(n){this.defaultValue=n}call(n,e){return e.subscribe(new o6(n,this.defaultValue))}}class o6 extends A{constructor(n,e){super(n),this.defaultValue=e,this.isEmpty=!0}_next(n){this.isEmpty=!1,this.destination.next(n)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}function NT(t=l6){return n=>n.lift(new s6(t))}class s6{constructor(n){this.errorFactory=n}call(n,e){return e.subscribe(new a6(n,this.errorFactory))}}class a6 extends A{constructor(n,e){super(n),this.errorFactory=e,this.hasValue=!1}_next(n){this.hasValue=!0,this.destination.next(n)}_complete(){if(this.hasValue)return this.destination.complete();{let n;try{n=this.errorFactory()}catch(e){n=e}this.destination.error(n)}}}function l6(){return new wm}function zl(t,n){const e=arguments.length>=2;return i=>i.pipe(t?_i((o,s)=>t(o,s,i)):ve,Kn(1),e?xm(n):NT(()=>new wm))}function Wa(){}function bi(t,n,e){return function(o){return o.lift(new c6(t,n,e))}}class c6{constructor(n,e,i){this.nextOrObserver=n,this.error=e,this.complete=i}call(n,e){return e.subscribe(new d6(n,this.nextOrObserver,this.error,this.complete))}}class d6 extends A{constructor(n,e,i,o){super(n),this._tapNext=Wa,this._tapError=Wa,this._tapComplete=Wa,this._tapError=i||Wa,this._tapComplete=o||Wa,O(e)?(this._context=this,this._tapNext=e):e&&(this._context=e,this._tapNext=e.next||Wa,this._tapError=e.error||Wa,this._tapComplete=e.complete||Wa)}_next(n){try{this._tapNext.call(this._context,n)}catch(e){return void this.destination.error(e)}this.destination.next(n)}_error(n){try{this._tapError.call(this._context,n)}catch(e){return void this.destination.error(e)}this.destination.error(n)}_complete(){try{this._tapComplete.call(this._context)}catch(n){return void this.destination.error(n)}return this.destination.complete()}}function Co(t){return function(e){const i=new u6(t),o=e.lift(i);return i.caught=o}}class u6{constructor(n){this.selector=n}call(n,e){return e.subscribe(new h6(n,this.selector,this.caught))}}class h6 extends Me{constructor(n,e,i){super(n),this.selector=e,this.caught=i}error(n){if(!this.isStopped){let e;try{e=this.selector(n,this.caught)}catch(s){return void super.error(s)}this._unsubscribeAndRecycle();const i=new be(this);this.add(i);const o=Ie(e,i);o!==i&&this.add(o)}}}class p6{constructor(n,e,i=!1){this.accumulator=n,this.seed=e,this.hasSeed=i}call(n,e){return e.subscribe(new m6(n,this.accumulator,this.seed,this.hasSeed))}}class m6 extends A{constructor(n,e,i,o){super(n),this.accumulator=e,this._seed=i,this.hasSeed=o,this.index=0}get seed(){return this._seed}set seed(n){this.hasSeed=!0,this._seed=n}_next(n){if(this.hasSeed)return this._tryNext(n);this.seed=n,this.destination.next(n)}_tryNext(n){const e=this.index++;let i;try{i=this.accumulator(this.seed,n,e)}catch(o){this.destination.error(o)}this.seed=i,this.destination.next(i)}}function l0(t){return function(e){return 0===t?Cm():e.lift(new g6(t))}}class g6{constructor(n){if(this.total=n,this.total<0)throw new RT}call(n,e){return e.subscribe(new _6(n,this.total))}}class _6 extends A{constructor(n,e){super(n),this.total=e,this.ring=new Array,this.count=0}_next(n){const e=this.ring,i=this.total,o=this.count++;e.length0){const i=this.count>=this.total?this.total:this.count,o=this.ring;for(let s=0;sn.lift(new w6(t))}class w6{constructor(n){this.callback=n}call(n,e){return e.subscribe(new C6(n,this.callback))}}class C6 extends A{constructor(n,e){super(n),this.add(new T(e))}}const $t="primary",uh=Symbol("RouteTitle");class x6{constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e[0]:e}return null}getAll(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function gd(t){return new x6(t)}function k6(t,n,e){const i=e.path.split("/");if(i.length>t.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengthi[s]===o)}return t===n}function HT(t){return t.length>0?t[t.length-1]:null}function $a(t){return za(t)?t:Hu(t)?ue(Promise.resolve(t)):$e(t)}const D6={exact:function jT(t,n,e){if(!Ul(t.segments,n.segments)||!Sm(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!jT(t.children[i],n.children[i],e))return!1;return!0},subset:zT},BT={exact:function T6(t,n){return Os(t,n)},subset:function L6(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>YT(t[e],n[e]))},ignored:()=>!0};function VT(t,n,e){return D6[e.paths](t.root,n.root,e.matrixParams)&&BT[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function zT(t,n,e){return UT(t,n,n.segments,e)}function UT(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!Ul(o,e)||n.hasChildren()||!Sm(o,e,i))}if(t.segments.length===e.length){if(!Ul(t.segments,e)||!Sm(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!zT(t.children[o],n.children[o],i))return!1;return!0}{const o=e.slice(0,t.segments.length),s=e.slice(t.segments.length);return!!(Ul(t.segments,o)&&Sm(t.segments,o,i)&&t.children[$t])&&UT(t.children[$t],n,s,i)}}function Sm(t,n,e){return n.every((i,o)=>BT[e](t[o].parameters,i.parameters))}class _d{constructor(n=new Yn([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=gd(this.queryParams)),this._queryParamMap}toString(){return P6.serialize(this)}}class Yn{constructor(n,e){this.segments=n,this.children=e,this.parent=null,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Dm(this)}}class hh{constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=gd(this.parameters)),this._parameterMap}toString(){return GT(this)}}function Ul(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let fh=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return new c0},providedIn:"root"}),t})();class c0{parse(n){const e=new z6(n);return new _d(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${ph(n.root,!0)}`,i=function F6(t){const n=Object.keys(t).map(e=>{const i=t[e];return Array.isArray(i)?i.map(o=>`${Tm(e)}=${Tm(o)}`).join("&"):`${Tm(e)}=${Tm(i)}`}).filter(e=>!!e);return n.length?`?${n.join("&")}`:""}(n.queryParams),o="string"==typeof n.fragment?`#${function O6(t){return encodeURI(t)}(n.fragment)}`:"";return`${e}${i}${o}`}}const P6=new c0;function Dm(t){return t.segments.map(n=>GT(n)).join("/")}function ph(t,n){if(!t.hasChildren())return Dm(t);if(n){const e=t.children[$t]?ph(t.children[$t],!1):"",i=[];return Object.entries(t.children).forEach(([o,s])=>{o!==$t&&i.push(`${o}:${ph(s,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function I6(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===$t&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==$t&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===$t?[ph(t.children[$t],!1)]:[`${o}:${ph(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[$t]?`${Dm(t)}/${e[0]}`:`${Dm(t)}/(${e.join("//")})`}}function WT(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Tm(t){return WT(t).replace(/%3B/gi,";")}function d0(t){return WT(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Lm(t){return decodeURIComponent(t)}function $T(t){return Lm(t.replace(/\+/g,"%20"))}function GT(t){return`${d0(t.path)}${function A6(t){return Object.keys(t).map(n=>`;${d0(n)}=${d0(t[n])}`).join("")}(t.parameters)}`}const R6=/^[^\/()?;#]+/;function u0(t){const n=t.match(R6);return n?n[0]:""}const N6=/^[^\/()?;=#]+/,H6=/^[^=?&#]+/,V6=/^[^&#]+/;class z6{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Yn([],{}):new Yn([],this.parseChildren())}parseQueryParams(){const n={};if(this.consumeOptional("?"))do{this.parseQueryParam(n)}while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(n.length>0||Object.keys(e).length>0)&&(i[$t]=new Yn(n,e)),i}parseSegment(){const n=u0(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new Fe(4009,!1);return this.capture(n),new hh(Lm(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function Y6(t){const n=t.match(N6);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=u0(this.remaining);o&&(i=o,this.capture(i))}n[Lm(e)]=Lm(i)}parseQueryParam(n){const e=function B6(t){const n=t.match(H6);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const a=function j6(t){const n=t.match(V6);return n?n[0]:""}(this.remaining);a&&(i=a,this.capture(i))}const o=$T(e),s=$T(i);if(n.hasOwnProperty(o)){let a=n[o];Array.isArray(a)||(a=[a],n[o]=a),a.push(s)}else n[o]=s}parseParens(n){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=u0(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new Fe(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):n&&(s=$t);const a=this.parseChildren();e[s]=1===Object.keys(a).length?a[$t]:new Yn([],a),this.consumeOptional("//")}return e}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return!!this.peekStartsWith(n)&&(this.remaining=this.remaining.substring(n.length),!0)}capture(n){if(!this.consumeOptional(n))throw new Fe(4011,!1)}}function qT(t){return t.segments.length>0?new Yn([],{[$t]:t}):t}function KT(t){const n={};for(const i of Object.keys(t.children)){const s=KT(t.children[i]);if(i===$t&&0===s.segments.length&&s.hasChildren())for(const[a,l]of Object.entries(s.children))n[a]=l;else(s.segments.length>0||s.hasChildren())&&(n[i]=s)}return function U6(t){if(1===t.numberOfChildren&&t.children[$t]){const n=t.children[$t];return new Yn(t.segments.concat(n.segments),n.children)}return t}(new Yn(t.segments,n))}function Wl(t){return t instanceof _d}function ZT(t){let n;const o=qT(function e(s){const a={};for(const d of s.children){const _=e(d);a[d.outlet]=_}const l=new Yn(s.url,a);return s===t&&(n=l),l}(t.root));return n??o}function XT(t,n,e,i){let o=t;for(;o.parent;)o=o.parent;if(0===n.length)return h0(o,o,o,e,i);const s=function $6(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new QT(!0,0,t);let n=0,e=!1;const i=t.reduce((o,s,a)=>{if("object"==typeof s&&null!=s){if(s.outlets){const l={};return Object.entries(s.outlets).forEach(([d,_])=>{l[d]="string"==typeof _?_.split("/"):_}),[...o,{outlets:l}]}if(s.segmentPath)return[...o,s.segmentPath]}return"string"!=typeof s?[...o,s]:0===a?(s.split("/").forEach((l,d)=>{0==d&&"."===l||(0==d&&""===l?e=!0:".."===l?n++:""!=l&&o.push(l))}),o):[...o,s]},[]);return new QT(e,n,i)}(n);if(s.toRoot())return h0(o,o,new Yn([],{}),e,i);const a=function G6(t,n,e){if(t.isAbsolute)return new Im(n,!0,0);if(!e)return new Im(n,!1,NaN);if(null===e.parent)return new Im(e,!0,0);const i=Em(t.commands[0])?0:1;return function q6(t,n,e){let i=t,o=n,s=e;for(;s>o;){if(s-=o,i=i.parent,!i)throw new Fe(4005,!1);o=i.segments.length}return new Im(i,!1,o-s)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(s,o,t),l=a.processChildren?gh(a.segmentGroup,a.index,s.commands):e2(a.segmentGroup,a.index,s.commands);return h0(o,a.segmentGroup,l,e,i)}function Em(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function mh(t){return"object"==typeof t&&null!=t&&t.outlets}function h0(t,n,e,i,o){let a,s={};i&&Object.entries(i).forEach(([d,_])=>{s[d]=Array.isArray(_)?_.map(E=>`${E}`):`${_}`}),a=t===n?e:JT(t,n,e);const l=qT(KT(a));return new _d(l,s,o)}function JT(t,n,e){const i={};return Object.entries(t.children).forEach(([o,s])=>{i[o]=s===n?e:JT(s,n,e)}),new Yn(t.segments,i)}class QT{constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&Em(i[0]))throw new Fe(4003,!1);const o=i.find(mh);if(o&&o!==HT(i))throw new Fe(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Im{constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function e2(t,n,e){if(t||(t=new Yn([],{})),0===t.segments.length&&t.hasChildren())return gh(t,n,e);const i=function Z6(t,n,e){let i=0,o=n;const s={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return s;const a=t.segments[o],l=e[i];if(mh(l))break;const d=`${l}`,_=i0&&void 0===d)break;if(d&&_&&"object"==typeof _&&void 0===_.outlets){if(!n2(d,_,a))return s;i+=2}else{if(!n2(d,{},a))return s;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndex{"string"==typeof a&&(a=[a]),null!==a&&(o[s]=e2(t.children[s],n,a))}),Object.entries(t.children).forEach(([s,a])=>{void 0===i[s]&&(o[s]=a)}),new Yn(t.segments,o)}}function f0(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=f0(new Yn([],{}),0,i))}),n}function t2(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function n2(t,n,e){return t==e.path&&Os(n,e.parameters)}const _h="imperative";class As{constructor(n,e){this.id=n,this.url=e}}class p0 extends As{constructor(n,e,i="imperative",o=null){super(n,e),this.type=0,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Ga extends As{constructor(n,e,i){super(n,e),this.urlAfterRedirects=i,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class Pm extends As{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class bh extends As{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=16}}class m0 extends As{constructor(n,e,i,o){super(n,e),this.error=i,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class J6 extends As{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Q6 extends As{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class ej extends As{constructor(n,e,i,o,s){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=s,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class tj extends As{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class nj extends As{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class ij{constructor(n){this.route=n,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class rj{constructor(n){this.route=n,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class oj{constructor(n){this.snapshot=n,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class sj{constructor(n){this.snapshot=n,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class aj{constructor(n){this.snapshot=n,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class lj{constructor(n){this.snapshot=n,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class r2{constructor(n,e,i){this.routerEvent=n,this.position=e,this.anchor=i,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class cj{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new vh,this.attachRef=null}}let vh=(()=>{class t{constructor(){this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new cj,this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class o2{constructor(n){this._root=n}get root(){return this._root.value}parent(n){const e=this.pathFromRoot(n);return e.length>1?e[e.length-2]:null}children(n){const e=g0(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=g0(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=_0(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return _0(n,this._root).map(e=>e.value)}}function g0(t,n){if(t===n.value)return n;for(const e of n.children){const i=g0(t,e);if(i)return i}return null}function _0(t,n){if(t===n.value)return[n];for(const e of n.children){const i=_0(t,e);if(i.length)return i.unshift(n),i}return[]}class sa{constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function bd(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class s2 extends o2{constructor(n,e){super(n),this.snapshot=e,b0(this,n)}toString(){return this.snapshot.toString()}}function a2(t,n){const e=function dj(t,n){const a=new Om([],{},{},"",{},$t,n,null,{});return new c2("",new sa(a,[]))}(0,n),i=new Or([new hh("",{})]),o=new Or({}),s=new Or({}),a=new Or({}),l=new Or(""),d=new Mr(i,o,a,l,s,$t,n,e.root);return d.snapshot=e.root,new s2(new sa(d,[]),e)}class Mr{constructor(n,e,i,o,s,a,l,d){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=s,this.outlet=a,this.component=l,this._futureSnapshot=d,this.title=this.dataSubject?.pipe(ke(_=>_[uh]))??$e(void 0),this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=s}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(ke(n=>gd(n)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(ke(n=>gd(n)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function l2(t,n="emptyOnly"){const e=t.pathFromRoot;let i=0;if("always"!==n)for(i=e.length-1;i>=1;){const o=e[i],s=e[i-1];if(o.routeConfig&&""===o.routeConfig.path)i--;else{if(s.component)break;i--}}return function uj(t){return t.reduce((n,e)=>({params:{...n.params,...e.params},data:{...n.data,...e.data},resolve:{...e.data,...n.resolve,...e.routeConfig?.data,...e._resolvedData}}),{params:{},data:{},resolve:{}})}(e.slice(i))}class Om{get title(){return this.data?.[uh]}constructor(n,e,i,o,s,a,l,d,_){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=s,this.outlet=a,this.component=l,this.routeConfig=d,this._resolve=_}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=gd(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=gd(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class c2 extends o2{constructor(n,e){super(e),this.url=n,b0(this,e)}toString(){return d2(this._root)}}function b0(t,n){n.value._routerState=t,n.children.forEach(e=>b0(t,e))}function d2(t){const n=t.children.length>0?` { ${t.children.map(d2).join(", ")} } `:"";return`${t.value}${n}`}function v0(t){if(t.snapshot){const n=t.snapshot,e=t._futureSnapshot;t.snapshot=e,Os(n.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),n.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),Os(n.params,e.params)||t.paramsSubject.next(e.params),function S6(t,n){if(t.length!==n.length)return!1;for(let e=0;eOs(e.parameters,n[i].parameters))}(t.url,n.url);return e&&!(!t.parent!=!n.parent)&&(!t.parent||y0(t.parent,n.parent))}let Am=(()=>{class t{constructor(){this.activated=null,this._activatedRoute=null,this.name=$t,this.activateEvents=new ht,this.deactivateEvents=new ht,this.attachEvents=new ht,this.detachEvents=new ht,this.parentContexts=Qe(vh),this.location=Qe(rr),this.changeDetector=Qe(pi),this.environmentInjector=Qe(ks),this.inputBinder=Qe(Fm,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Fe(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Fe(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Fe(4012,!1);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new Fe(4013,!1);this._activatedRoute=e;const o=this.location,a=e.snapshot.component,l=this.parentContexts.getOrCreateContext(this.name).children,d=new hj(e,l,o.injector);this.activated=o.createComponent(a,{index:o.length,injector:d,environmentInjector:i??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[Gi]}),t})();class hj{constructor(n,e,i){this.route=n,this.childContexts=e,this.parent=i}get(n,e){return n===Mr?this.route:n===vh?this.childContexts:this.parent.get(n,e)}}const Fm=new Re("");let u2=(()=>{class t{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){const{activatedRoute:i}=e,o=Mm([i.queryParams,i.params,i.data]).pipe(gr(([s,a,l],d)=>(l={...s,...a,...l},0===d?$e(l):Promise.resolve(l)))).subscribe(s=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const a=function K5(t){const n=gn(t);if(!n)return null;const e=new Au(n);return{get selector(){return e.selector},get type(){return e.componentType},get inputs(){return e.inputs},get outputs(){return e.outputs},get ngContentSelectors(){return e.ngContentSelectors},get isStandalone(){return n.standalone}}}(i.component);if(a)for(const{templateName:l}of a.inputs)e.activatedComponentRef.setInput(l,s[l]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function yh(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function pj(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return yh(t,i,o);return yh(t,i)})}(t,n,e);return new sa(i,o)}{if(t.shouldAttach(n.value)){const s=t.retrieve(n.value);if(null!==s){const a=s.route;return a.value._futureSnapshot=n.value,a.children=n.children.map(l=>yh(t,l)),a}}const i=function mj(t){return new Mr(new Or(t.url),new Or(t.params),new Or(t.queryParams),new Or(t.fragment),new Or(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(s=>yh(t,s));return new sa(i,o)}}const M0="ngNavigationCancelingError";function h2(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=Wl(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=f2(!1,0,n);return o.url=e,o.navigationBehaviorOptions=i,o}function f2(t,n,e){const i=new Error("NavigationCancelingError: "+(t||""));return i[M0]=!0,i.cancellationCode=n,e&&(i.url=e),i}function p2(t){return m2(t)&&Wl(t.url)}function m2(t){return t&&t[M0]}let g2=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["ng-component"]],standalone:!0,features:[_k],decls:1,vars:0,template:function(e,i){1&e&&xe(0,"router-outlet")},dependencies:[Am],encapsulation:2}),t})();function w0(t){const n=t.children&&t.children.map(w0),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==$t&&(e.component=g2),e}function os(t){return t.outlet||$t}function Mh(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let n=t.parent;n;n=n.parent){const e=n.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class wj{constructor(n,e,i,o,s){this.routeReuseStrategy=n,this.futureState=e,this.currState=i,this.forwardEvent=o,this.inputBindingEnabled=s}activate(n){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,n),v0(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=bd(e);n.children.forEach(s=>{const a=s.value.outlet;this.deactivateRoutes(s,o[a],i),delete o[a]}),Object.values(o).forEach(s=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(n,e,i){const o=n.value,s=e?e.value:null;if(o===s)if(o.component){const a=i.getContext(o.outlet);a&&this.deactivateChildRoutes(n,e,a.children)}else this.deactivateChildRoutes(n,e,i);else s&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(n,e){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,e):this.deactivateRouteAndOutlet(n,e)}detachAndStoreRouteSubtree(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,s=bd(n);for(const a of Object.keys(s))this.deactivateRouteAndItsChildren(s[a],o);if(i&&i.outlet){const a=i.outlet.detach(),l=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:a,route:n,contexts:l})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,s=bd(n);for(const a of Object.keys(s))this.deactivateRouteAndItsChildren(s[a],o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=bd(e);n.children.forEach(s=>{this.activateRoutes(s,o[s.value.outlet],i),this.forwardEvent(new lj(s.value.snapshot))}),n.children.length&&this.forwardEvent(new sj(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,s=e?e.value:null;if(v0(o),o===s)if(o.component){const a=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,a.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const a=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const l=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),a.children.onOutletReAttached(l.contexts),a.attachRef=l.componentRef,a.route=l.route.value,a.outlet&&a.outlet.attach(l.componentRef,l.route.value),v0(l.route.value),this.activateChildRoutes(n,null,a.children)}else{const l=Mh(o.snapshot);a.attachRef=null,a.route=o,a.injector=l,a.outlet&&a.outlet.activateWith(o,a.injector),this.activateChildRoutes(n,null,a.children)}}else this.activateChildRoutes(n,null,i)}}class _2{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class Rm{constructor(n,e){this.component=n,this.route=e}}function Cj(t,n,e){const i=t._root;return wh(i,n?n._root:null,e,[i.value])}function vd(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function jg(t){return null!==uc(t)}(t)?n.get(t):t:i}function wh(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const s=bd(n);return t.children.forEach(a=>{(function kj(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const s=t.value,a=n?n.value:null,l=e?e.getContext(t.value.outlet):null;if(a&&s.routeConfig===a.routeConfig){const d=function Sj(t,n,e){if("function"==typeof e)return e(t,n);switch(e){case"pathParamsChange":return!Ul(t.url,n.url);case"pathParamsOrQueryParamsChange":return!Ul(t.url,n.url)||!Os(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!y0(t,n)||!Os(t.queryParams,n.queryParams);default:return!y0(t,n)}}(a,s,s.routeConfig.runGuardsAndResolvers);d?o.canActivateChecks.push(new _2(i)):(s.data=a.data,s._resolvedData=a._resolvedData),wh(t,n,s.component?l?l.children:null:e,i,o),d&&l&&l.outlet&&l.outlet.isActivated&&o.canDeactivateChecks.push(new Rm(l.outlet.component,a))}else a&&Ch(n,l,o),o.canActivateChecks.push(new _2(i)),wh(t,null,s.component?l?l.children:null:e,i,o)})(a,s[a.value.outlet],e,i.concat([a.value]),o),delete s[a.value.outlet]}),Object.entries(s).forEach(([a,l])=>Ch(l,e.getContext(a),o)),o}function Ch(t,n,e){const i=bd(t),o=t.value;Object.entries(i).forEach(([s,a])=>{Ch(a,o.component?n?n.children.getContext(s):null:n,e)}),e.canDeactivateChecks.push(new Rm(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function xh(t){return"function"==typeof t}function b2(t){return t instanceof wm||"EmptyError"===t?.name}const Nm=Symbol("INITIAL_VALUE");function yd(){return gr(t=>Mm(t.map(n=>n.pipe(Kn(1),Go(Nm)))).pipe(ke(n=>{for(const e of n)if(!0!==e){if(e===Nm)return Nm;if(!1===e||e instanceof _d)return e}return!0}),_i(n=>n!==Nm),Kn(1)))}function v2(t){return function Z(...t){return X(t)}(bi(n=>{if(Wl(n))throw h2(0,n)}),ke(n=>!0===n))}class Ym{constructor(n){this.segmentGroup=n||null}}class y2{constructor(n){this.urlTree=n}}function Md(t){return Ar(new Ym(t))}function M2(t){return Ar(new y2(t))}class $j{constructor(n,e){this.urlSerializer=n,this.urlTree=e}noMatchError(n){return new Fe(4002,!1)}lineralizeSegments(n,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return $e(i);if(o.numberOfChildren>1||!o.children[$t])return Ar(new Fe(4e3,!1));o=o.children[$t]}}applyRedirectCommands(n,e,i){return this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),n,i)}applyRedirectCreateUrlTree(n,e,i,o){const s=this.createSegmentGroup(n,e.root,i,o);return new _d(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(n,e){const i={};return Object.entries(n).forEach(([o,s])=>{if("string"==typeof s&&s.startsWith(":")){const l=s.substring(1);i[o]=e[l]}else i[o]=s}),i}createSegmentGroup(n,e,i,o){const s=this.createSegments(n,e.segments,i,o);let a={};return Object.entries(e.children).forEach(([l,d])=>{a[l]=this.createSegmentGroup(n,d,i,o)}),new Yn(s,a)}createSegments(n,e,i,o){return e.map(s=>s.path.startsWith(":")?this.findPosParam(n,s,o):this.findOrReturn(s,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new Fe(4001,!1);return o}findOrReturn(n,e){let i=0;for(const o of e){if(o.path===n.path)return e.splice(i),o;i++}return n}}const C0={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Gj(t,n,e,i,o){const s=x0(t,n,e);return s.matched?(i=function gj(t,n){return t.providers&&!t._injector&&(t._injector=Cv(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function zj(t,n,e,i){const o=n.canMatch;return o&&0!==o.length?$e(o.map(a=>{const l=vd(a,t);return $a(function Pj(t){return t&&xh(t.canMatch)}(l)?l.canMatch(n,e):t.runInContext(()=>l(n,e)))})).pipe(yd(),v2()):$e(!0)}(i,n,e).pipe(ke(a=>!0===a?s:{...C0}))):$e(s)}function x0(t,n,e){if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...C0}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||k6)(e,t,n);if(!o)return{...C0};const s={};Object.entries(o.posParams??{}).forEach(([l,d])=>{s[l]=d.path});const a=o.consumed.length>0?{...s,...o.consumed[o.consumed.length-1].parameters}:s;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:a,positionalParamSegments:o.posParams??{}}}function w2(t,n,e,i){return e.length>0&&function Zj(t,n,e){return e.some(i=>Hm(t,n,i)&&os(i)!==$t)}(t,e,i)?{segmentGroup:new Yn(n,Kj(i,new Yn(e,t.children))),slicedSegments:[]}:0===e.length&&function Xj(t,n,e){return e.some(i=>Hm(t,n,i))}(t,e,i)?{segmentGroup:new Yn(t.segments,qj(t,0,e,i,t.children)),slicedSegments:e}:{segmentGroup:new Yn(t.segments,t.children),slicedSegments:e}}function qj(t,n,e,i,o){const s={};for(const a of i)if(Hm(t,e,a)&&!o[os(a)]){const l=new Yn([],{});s[os(a)]=l}return{...o,...s}}function Kj(t,n){const e={};e[$t]=n;for(const i of t)if(""===i.path&&os(i)!==$t){const o=new Yn([],{});e[os(i)]=o}return e}function Hm(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class t7{constructor(n,e,i,o,s,a,l){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=s,this.paramsInheritanceStrategy=a,this.urlSerializer=l,this.allowRedirects=!0,this.applyRedirects=new $j(this.urlSerializer,this.urlTree)}noMatchError(n){return new Fe(4002,!1)}recognize(){const n=w2(this.urlTree.root,[],[],this.config).segmentGroup;return this.processSegmentGroup(this.injector,this.config,n,$t).pipe(Co(e=>{if(e instanceof y2)return this.allowRedirects=!1,this.urlTree=e.urlTree,this.match(e.urlTree);throw e instanceof Ym?this.noMatchError(e):e}),ke(e=>{const i=new Om([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},$t,this.rootComponentType,null,{}),o=new sa(i,e),s=new c2("",o),a=function W6(t,n,e=null,i=null){return XT(ZT(t),n,e,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,s.url=this.urlSerializer.serialize(a),this.inheritParamsAndData(s._root),{state:s,tree:a}}))}match(n){return this.processSegmentGroup(this.injector,this.config,n.root,$t).pipe(Co(i=>{throw i instanceof Ym?this.noMatchError(i):i}))}inheritParamsAndData(n){const e=n.value,i=l2(e,this.paramsInheritanceStrategy);e.params=Object.freeze(i.params),e.data=Object.freeze(i.data),n.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(n,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.processChildren(n,e,i):this.processSegment(n,e,i,i.segments,o,!0)}processChildren(n,e,i){const o=[];for(const s of Object.keys(i.children))"primary"===s?o.unshift(s):o.push(s);return ue(o).pipe(Bl(s=>{const a=i.children[s],l=function yj(t,n){const e=t.filter(i=>os(i)===n);return e.push(...t.filter(i=>os(i)!==n)),e}(e,s);return this.processSegmentGroup(n,l,a,s)}),function f6(t,n){let e=!1;return arguments.length>=2&&(e=!0),function(o){return o.lift(new p6(t,n,e))}}((s,a)=>(s.push(...a),s)),xm(null),function b6(t,n){const e=arguments.length>=2;return i=>i.pipe(t?_i((o,s)=>t(o,s,i)):ve,l0(1),e?xm(n):NT(()=>new wm))}(),Ye(s=>{if(null===s)return Md(i);const a=C2(s);return function n7(t){t.sort((n,e)=>n.value.outlet===$t?-1:e.value.outlet===$t?1:n.value.outlet.localeCompare(e.value.outlet))}(a),$e(a)}))}processSegment(n,e,i,o,s,a){return ue(e).pipe(Bl(l=>this.processSegmentAgainstRoute(l._injector??n,e,l,i,o,s,a).pipe(Co(d=>{if(d instanceof Ym)return $e(null);throw d}))),zl(l=>!!l),Co(l=>{if(b2(l))return function Qj(t,n,e){return 0===n.length&&!t.children[e]}(i,o,s)?$e([]):Md(i);throw l}))}processSegmentAgainstRoute(n,e,i,o,s,a,l){return function Jj(t,n,e,i){return!!(os(t)===i||i!==$t&&Hm(n,e,t))&&("**"===t.path||x0(n,t,e).matched)}(i,o,s,a)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(n,o,i,s,a,l):l&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,s,a):Md(o):Md(o)}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,s,a){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(n,i,o,a):this.expandRegularSegmentAgainstRouteUsingRedirect(n,e,i,o,s,a)}expandWildCardWithParamsAgainstRouteUsingRedirect(n,e,i,o){const s=this.applyRedirects.applyRedirectCommands([],i.redirectTo,{});return i.redirectTo.startsWith("/")?M2(s):this.applyRedirects.lineralizeSegments(i,s).pipe(Ye(a=>{const l=new Yn(a,{});return this.processSegment(n,e,l,a,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(n,e,i,o,s,a){const{matched:l,consumedSegments:d,remainingSegments:_,positionalParamSegments:E}=x0(e,o,s);if(!l)return Md(e);const F=this.applyRedirects.applyRedirectCommands(d,o.redirectTo,E);return o.redirectTo.startsWith("/")?M2(F):this.applyRedirects.lineralizeSegments(o,F).pipe(Ye(G=>this.processSegment(n,i,e,G.concat(_),a,!1)))}matchSegmentAgainstRoute(n,e,i,o,s,a){let l;if("**"===i.path){const d=o.length>0?HT(o).parameters:{};l=$e({snapshot:new Om(o,d,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,x2(i),os(i),i.component??i._loadedComponent??null,i,k2(i)),consumedSegments:[],remainingSegments:[]}),e.children={}}else l=Gj(e,i,o,n).pipe(ke(({matched:d,consumedSegments:_,remainingSegments:E,parameters:F})=>d?{snapshot:new Om(_,F,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,x2(i),os(i),i.component??i._loadedComponent??null,i,k2(i)),consumedSegments:_,remainingSegments:E}:null));return l.pipe(gr(d=>null===d?Md(e):this.getChildConfig(n=i._injector??n,i,o).pipe(gr(({routes:_})=>{const E=i._loadedInjector??n,{snapshot:F,consumedSegments:G,remainingSegments:ie}=d,{segmentGroup:_e,slicedSegments:Ce}=w2(e,G,ie,_);if(0===Ce.length&&_e.hasChildren())return this.processChildren(E,_,_e).pipe(ke(ze=>null===ze?null:[new sa(F,ze)]));if(0===_.length&&0===Ce.length)return $e([new sa(F,[])]);const Ae=os(i)===s;return this.processSegment(E,_,_e,Ce,Ae?$t:s,!0).pipe(ke(ze=>[new sa(F,ze)]))}))))}getChildConfig(n,e,i){return e.children?$e({routes:e.children,injector:n}):e.loadChildren?void 0!==e._loadedRoutes?$e({routes:e._loadedRoutes,injector:e._loadedInjector}):function jj(t,n,e,i){const o=n.canLoad;return void 0===o||0===o.length?$e(!0):$e(o.map(a=>{const l=vd(a,t);return $a(function Tj(t){return t&&xh(t.canLoad)}(l)?l.canLoad(n,e):t.runInContext(()=>l(n,e)))})).pipe(yd(),v2())}(n,e,i).pipe(Ye(o=>o?this.configLoader.loadChildren(n,e).pipe(bi(s=>{e._loadedRoutes=s.routes,e._loadedInjector=s.injector})):function Wj(t){return Ar(f2(!1,3))}())):$e({routes:[],injector:n})}}function i7(t){const n=t.value.routeConfig;return n&&""===n.path}function C2(t){const n=[],e=new Set;for(const i of t){if(!i7(i)){n.push(i);continue}const o=n.find(s=>i.value.routeConfig===s.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):n.push(i)}for(const i of e){const o=C2(i.children);n.push(new sa(i.value,o))}return n.filter(i=>!e.has(i))}function x2(t){return t.data||{}}function k2(t){return t.resolve||{}}function S2(t){return"string"==typeof t.title||null===t.title}function k0(t){return gr(n=>{const e=t(n);return e?ue(e).pipe(ke(()=>n)):$e(n)})}const wd=new Re("ROUTES");let S0=(()=>{class t{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=Qe(oS)}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return $e(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=$a(e.loadComponent()).pipe(ke(D2),bi(s=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=s}),km(()=>{this.componentLoaders.delete(e)})),o=new Kr(i,()=>new J).pipe(qt());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return $e({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const s=this.loadModuleFactoryOrRoutes(i.loadChildren).pipe(ke(l=>{this.onLoadEndListener&&this.onLoadEndListener(i);let d,_;return Array.isArray(l)?_=l:(d=l.create(e).injector,_=d.get(wd,[],Mt.Self|Mt.Optional).flat()),{routes:_.map(w0),injector:d}}),km(()=>{this.childrenLoaders.delete(i)})),a=new Kr(s,()=>new J).pipe(qt());return this.childrenLoaders.set(i,a),a}loadModuleFactoryOrRoutes(e){return $a(e()).pipe(ke(D2),Ye(i=>i instanceof mk||Array.isArray(i)?$e(i):ue(this.compiler.compileModuleAsync(i))))}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function D2(t){return function d7(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}let Bm=(()=>{class t{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.lastSuccessfulNavigation=null,this.events=new J,this.configLoader=Qe(S0),this.environmentInjector=Qe(ks),this.urlSerializer=Qe(fh),this.rootContexts=Qe(vh),this.inputBindingEnabled=null!==Qe(Fm,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>$e(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new rj(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new ij(o))}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e){return this.transitions=new Or({id:0,currentUrlTree:e.currentUrlTree,currentRawUrl:e.currentUrlTree,extractedUrl:e.urlHandlingStrategy.extract(e.currentUrlTree),urlAfterRedirects:e.urlHandlingStrategy.extract(e.currentUrlTree),rawUrl:e.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:_h,restoredState:null,currentSnapshot:e.routerState.snapshot,targetSnapshot:null,currentRouterState:e.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(_i(i=>0!==i.id),ke(i=>({...i,extractedUrl:e.urlHandlingStrategy.extract(i.rawUrl)})),gr(i=>{let o=!1,s=!1;return $e(i).pipe(bi(a=>{this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),gr(a=>{const l=e.browserUrlTree.toString(),d=!e.navigated||a.extractedUrl.toString()!==l||l!==e.currentUrlTree.toString();if(!d&&"reload"!==(a.extras.onSameUrlNavigation??e.onSameUrlNavigation)){const E="";return this.events.next(new bh(a.id,e.serializeUrl(i.rawUrl),E,0)),e.rawUrlTree=a.rawUrl,a.resolve(null),oa}if(e.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return T2(a.source)&&(e.browserUrlTree=a.extractedUrl),$e(a).pipe(gr(E=>{const F=this.transitions?.getValue();return this.events.next(new p0(E.id,this.urlSerializer.serialize(E.extractedUrl),E.source,E.restoredState)),F!==this.transitions?.getValue()?oa:Promise.resolve(E)}),function r7(t,n,e,i,o,s){return Ye(a=>function e7(t,n,e,i,o,s,a="emptyOnly"){return new t7(t,n,e,i,o,a,s).recognize()}(t,n,e,i,a.extractedUrl,o,s).pipe(ke(({state:l,tree:d})=>({...a,targetSnapshot:l,urlAfterRedirects:d}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,e.paramsInheritanceStrategy),bi(E=>{if(i.targetSnapshot=E.targetSnapshot,i.urlAfterRedirects=E.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:E.urlAfterRedirects},"eager"===e.urlUpdateStrategy){if(!E.extras.skipLocationChange){const G=e.urlHandlingStrategy.merge(E.urlAfterRedirects,E.rawUrl);e.setBrowserUrl(G,E)}e.browserUrlTree=E.urlAfterRedirects}const F=new J6(E.id,this.urlSerializer.serialize(E.extractedUrl),this.urlSerializer.serialize(E.urlAfterRedirects),E.targetSnapshot);this.events.next(F)}));if(d&&e.urlHandlingStrategy.shouldProcessUrl(e.rawUrlTree)){const{id:E,extractedUrl:F,source:G,restoredState:ie,extras:_e}=a,Ce=new p0(E,this.urlSerializer.serialize(F),G,ie);this.events.next(Ce);const Ae=a2(0,this.rootComponentType).snapshot;return $e(i={...a,targetSnapshot:Ae,urlAfterRedirects:F,extras:{..._e,skipLocationChange:!1,replaceUrl:!1}})}{const E="";return this.events.next(new bh(a.id,e.serializeUrl(i.extractedUrl),E,1)),e.rawUrlTree=a.rawUrl,a.resolve(null),oa}}),bi(a=>{const l=new Q6(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(l)}),ke(a=>i={...a,guards:Cj(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),function Aj(t,n){return Ye(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:s,canDeactivateChecks:a}}=e;return 0===a.length&&0===s.length?$e({...e,guardsResult:!0}):function Fj(t,n,e,i){return ue(t).pipe(Ye(o=>function Vj(t,n,e,i,o){const s=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return s&&0!==s.length?$e(s.map(l=>{const d=Mh(n)??o,_=vd(l,d);return $a(function Ij(t){return t&&xh(t.canDeactivate)}(_)?_.canDeactivate(t,n,e,i):d.runInContext(()=>_(t,n,e,i))).pipe(zl())})).pipe(yd()):$e(!0)}(o.component,o.route,e,n,i)),zl(o=>!0!==o,!0))}(a,i,o,t).pipe(Ye(l=>l&&function Dj(t){return"boolean"==typeof t}(l)?function Rj(t,n,e,i){return ue(n).pipe(Bl(o=>Ua(function Yj(t,n){return null!==t&&n&&n(new oj(t)),$e(!0)}(o.route.parent,i),function Nj(t,n){return null!==t&&n&&n(new aj(t)),$e(!0)}(o.route,i),function Bj(t,n,e){const i=n[n.length-1],s=n.slice(0,n.length-1).reverse().map(a=>function xj(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(a)).filter(a=>null!==a).map(a=>jl(()=>$e(a.guards.map(d=>{const _=Mh(a.node)??e,E=vd(d,_);return $a(function Ej(t){return t&&xh(t.canActivateChild)}(E)?E.canActivateChild(i,t):_.runInContext(()=>E(i,t))).pipe(zl())})).pipe(yd())));return $e(s).pipe(yd())}(t,o.path,e),function Hj(t,n,e){const i=n.routeConfig?n.routeConfig.canActivate:null;if(!i||0===i.length)return $e(!0);const o=i.map(s=>jl(()=>{const a=Mh(n)??e,l=vd(s,a);return $a(function Lj(t){return t&&xh(t.canActivate)}(l)?l.canActivate(n,t):a.runInContext(()=>l(n,t))).pipe(zl())}));return $e(o).pipe(yd())}(t,o.route,e))),zl(o=>!0!==o,!0))}(i,s,t,n):$e(l)),ke(l=>({...e,guardsResult:l})))})}(this.environmentInjector,a=>this.events.next(a)),bi(a=>{if(i.guardsResult=a.guardsResult,Wl(a.guardsResult))throw h2(0,a.guardsResult);const l=new ej(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.events.next(l)}),_i(a=>!!a.guardsResult||(e.restoreHistory(a),this.cancelNavigationTransition(a,"",3),!1)),k0(a=>{if(a.guards.canActivateChecks.length)return $e(a).pipe(bi(l=>{const d=new tj(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(d)}),gr(l=>{let d=!1;return $e(l).pipe(function o7(t,n){return Ye(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return $e(e);let s=0;return ue(o).pipe(Bl(a=>function s7(t,n,e,i){const o=t.routeConfig,s=t._resolve;return void 0!==o?.title&&!S2(o)&&(s[uh]=o.title),function a7(t,n,e,i){const o=function l7(t){return[...Object.keys(t),...Object.getOwnPropertySymbols(t)]}(t);if(0===o.length)return $e({});const s={};return ue(o).pipe(Ye(a=>function c7(t,n,e,i){const o=Mh(n)??i,s=vd(t,o);return $a(s.resolve?s.resolve(n,e):o.runInContext(()=>s(n,e)))}(t[a],n,e,i).pipe(zl(),bi(l=>{s[a]=l}))),l0(1),function v6(t){return n=>n.lift(new y6(t))}(s),Co(a=>b2(a)?oa:Ar(a)))}(s,t,n,i).pipe(ke(a=>(t._resolvedData=a,t.data=l2(t,e).resolve,o&&S2(o)&&(t.data[uh]=o.title),null)))}(a.route,i,t,n)),bi(()=>s++),l0(1),Ye(a=>s===o.length?$e(e):oa))})}(e.paramsInheritanceStrategy,this.environmentInjector),bi({next:()=>d=!0,complete:()=>{d||(e.restoreHistory(l),this.cancelNavigationTransition(l,"",2))}}))}),bi(l=>{const d=new nj(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(d)}))}),k0(a=>{const l=d=>{const _=[];d.routeConfig?.loadComponent&&!d.routeConfig._loadedComponent&&_.push(this.configLoader.loadComponent(d.routeConfig).pipe(bi(E=>{d.component=E}),ke(()=>{})));for(const E of d.children)_.push(...l(E));return _};return Mm(l(a.targetSnapshot.root)).pipe(xm(),Kn(1))}),k0(()=>this.afterPreactivation()),ke(a=>{const l=function fj(t,n,e){const i=yh(t,n._root,e?e._root:void 0);return new s2(i,n)}(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return i={...a,targetRouterState:l}}),bi(a=>{e.currentUrlTree=a.urlAfterRedirects,e.rawUrlTree=e.urlHandlingStrategy.merge(a.urlAfterRedirects,a.rawUrl),e.routerState=a.targetRouterState,"deferred"===e.urlUpdateStrategy&&(a.extras.skipLocationChange||e.setBrowserUrl(e.rawUrlTree,a),e.browserUrlTree=a.urlAfterRedirects)}),((t,n,e,i)=>ke(o=>(new wj(n,o.targetRouterState,o.currentRouterState,e,i).activate(t),o)))(this.rootContexts,e.routeReuseStrategy,a=>this.events.next(a),this.inputBindingEnabled),Kn(1),bi({next:a=>{o=!0,this.lastSuccessfulNavigation=this.currentNavigation,e.navigated=!0,this.events.next(new Ga(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(e.currentUrlTree))),e.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0)},complete:()=>{o=!0}}),km(()=>{o||s||this.cancelNavigationTransition(i,"",1),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),Co(a=>{if(s=!0,m2(a)){p2(a)||(e.navigated=!0,e.restoreHistory(i,!0));const l=new Pm(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode);if(this.events.next(l),p2(a)){const d=e.urlHandlingStrategy.merge(a.url,e.rawUrlTree),_={skipLocationChange:i.extras.skipLocationChange,replaceUrl:"eager"===e.urlUpdateStrategy||T2(i.source)};e.scheduleNavigation(d,_h,null,_,{resolve:i.resolve,reject:i.reject,promise:i.promise})}else i.resolve(!1)}else{e.restoreHistory(i,!0);const l=new m0(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);this.events.next(l);try{i.resolve(e.errorHandler(a))}catch(d){i.reject(d)}}return oa}))}))}cancelNavigationTransition(e,i,o){const s=new Pm(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(s),e.resolve(!1)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function T2(t){return t!==_h}let L2=(()=>{class t{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(s=>s.outlet===$t);return i}getResolvedTitleForRoute(e){return e.data[uh]}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return Qe(u7)},providedIn:"root"}),t})(),u7=(()=>{class t extends L2{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}}return t.\u0275fac=function(e){return new(e||t)(we(PD))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),E2=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return Qe(f7)},providedIn:"root"}),t})();class h7{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}}let f7=(()=>{class t extends h7{}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const Vm=new Re("",{providedIn:"root",factory:()=>({})});let p7=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return Qe(m7)},providedIn:"root"}),t})(),m7=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var xo=(()=>((xo=xo||{})[xo.COMPLETE=0]="COMPLETE",xo[xo.FAILED=1]="FAILED",xo[xo.REDIRECTING=2]="REDIRECTING",xo))();function I2(t,n){t.events.pipe(_i(e=>e instanceof Ga||e instanceof Pm||e instanceof m0||e instanceof bh),ke(e=>e instanceof Ga||e instanceof bh?xo.COMPLETE:e instanceof Pm&&(0===e.code||1===e.code)?xo.REDIRECTING:xo.FAILED),_i(e=>e!==xo.REDIRECTING),Kn(1)).subscribe(()=>{n()})}function g7(t){throw t}function _7(t,n,e){return n.parse("/")}const b7={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},v7={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let hn=(()=>{class t{get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){if("computed"===this.canceledNavigationResolution)return this.location.getState()?.\u0275routerPageId}get events(){return this.navigationTransitions.events}constructor(){this.disposed=!1,this.currentPageId=0,this.console=Qe(rS),this.isNgZoneEnabled=!1,this.options=Qe(Vm,{optional:!0})||{},this.pendingTasks=Qe(VS),this.errorHandler=this.options.errorHandler||g7,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||_7,this.navigated=!1,this.lastSuccessfulId=-1,this.urlHandlingStrategy=Qe(p7),this.routeReuseStrategy=Qe(E2),this.titleStrategy=Qe(L2),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=Qe(wd,{optional:!0})?.flat()??[],this.navigationTransitions=Qe(Bm),this.urlSerializer=Qe(fh),this.location=Qe(Xu),this.componentInputBindingEnabled=!!Qe(Fm,{optional:!0}),this.isNgZoneEnabled=Qe(ft)instanceof ft&&ft.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new _d,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=a2(0,null),this.navigationTransitions.setupNavigations(this).subscribe(e=>{this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId??0},e=>{this.console.warn(`Unhandled Navigation Error: ${e}`)})}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){if(this.setUpLocationChangeListener(),!this.navigationTransitions.hasRequestedNavigation){const e=this.location.getState();this.navigateToSyncWithBrowser(this.location.path(!0),_h,e)}}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(e=>{const i="popstate"===e.type?"popstate":"hashchange";"popstate"===i&&setTimeout(()=>{this.navigateToSyncWithBrowser(e.url,i,e.state)},0)}))}navigateToSyncWithBrowser(e,i,o){const s={replaceUrl:!0},a=o?.navigationId?o:null;if(o){const d={...o};delete d.navigationId,delete d.\u0275routerPageId,0!==Object.keys(d).length&&(s.state=d)}const l=this.parseUrl(e);this.scheduleNavigation(l,i,a,s)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(w0),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(e,i={}){const{relativeTo:o,queryParams:s,fragment:a,queryParamsHandling:l,preserveFragment:d}=i,_=d?this.currentUrlTree.fragment:a;let F,E=null;switch(l){case"merge":E={...this.currentUrlTree.queryParams,...s};break;case"preserve":E=this.currentUrlTree.queryParams;break;default:E=s||null}null!==E&&(E=this.removeEmptyProps(E));try{F=ZT(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||!e[0].startsWith("/"))&&(e=[]),F=this.currentUrlTree.root}return XT(F,e,E,_??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Wl(e)?e:this.parseUrl(e),s=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(s,_h,null,i)}navigate(e,i={skipLocationChange:!1}){return function y7(t){for(let n=0;n{const s=e[o];return null!=s&&(i[o]=s),i},{})}scheduleNavigation(e,i,o,s,a){if(this.disposed)return Promise.resolve(!1);let l,d,_;a?(l=a.resolve,d=a.reject,_=a.promise):_=new Promise((F,G)=>{l=F,d=G});const E=this.pendingTasks.add();return I2(this,()=>{Promise.resolve().then(()=>this.pendingTasks.remove(E))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:s,resolve:l,reject:d,promise:_,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),_.catch(F=>Promise.reject(F))}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e);if(this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl){const a={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(o,"",a)}else{const s={...i.extras.state,...this.generateNgRouterState(i.id,(this.browserPageId??0)+1)};this.location.go(o,"",s)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const s=this.currentPageId-(this.browserPageId??this.currentPageId);0!==s?this.location.historyGo(s):this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===s&&(this.resetState(e),this.browserUrlTree=e.currentUrlTree,this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=e.currentRouterState,this.currentUrlTree=e.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),qa=(()=>{class t{constructor(e,i,o,s,a,l){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=s,this.el=a,this.locationStrategy=l,this._preserveFragment=!1,this._skipLocationChange=!1,this._replaceUrl=!1,this.href=null,this.commands=null,this.onChanges=new J;const d=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===d||"area"===d,this.isAnchorElement?this.subscription=e.events.subscribe(_=>{_ instanceof Ga&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}set preserveFragment(e){this._preserveFragment=ud(e)}get preserveFragment(){return this._preserveFragment}set skipLocationChange(e){this._skipLocationChange=ud(e)}get skipLocationChange(){return this._skipLocationChange}set replaceUrl(e){this._replaceUrl=ud(e)}get replaceUrl(){return this._replaceUrl}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,s,a){return!!(null===this.urlTree||this.isAnchorElement&&(0!==e||i||o||s||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(this.urlTree,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){this.href=null!==this.urlTree&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null;const e=null===this.href?null:function Nw(t,n,e){return function VA(t,n){return"src"===n&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===n&&("base"===t||"link"===t)?Rw:Vo}(n,e)(t)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",e)}applyAttributeValue(e,i){const o=this.renderer,s=this.el.nativeElement;null!==i?o.setAttribute(s,e,i):o.removeAttribute(s,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}}return t.\u0275fac=function(e){return new(e||t)(Y(hn),Y(Mr),Pa("tabindex"),Y(Ks),Y(vt),Y(Rl))},t.\u0275dir=Ke({type:t,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(e,i){1&e&&ye("click",function(s){return i.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),2&e&&Xt("target",i.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",relativeTo:"relativeTo",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",routerLink:"routerLink"},standalone:!0,features:[Gi]}),t})();class P2{}let C7=(()=>{class t{constructor(e,i,o,s,a){this.router=e,this.injector=o,this.preloadingStrategy=s,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(_i(e=>e instanceof Ga),Bl(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const s of i){s.providers&&!s._injector&&(s._injector=Cv(s.providers,e,`Route: ${s.path}`));const a=s._injector??e,l=s._loadedInjector??a;(s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent)&&o.push(this.preloadConfig(a,s)),(s.children||s._loadedRoutes)&&o.push(this.processRoutes(l,s.children??s._loadedRoutes))}return ue(o).pipe(fn())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):$e(null);const s=o.pipe(Ye(a=>null===a?$e(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));return i.loadComponent&&!i._loadedComponent?ue([s,this.loader.loadComponent(i)]).pipe(fn()):s})}}return t.\u0275fac=function(e){return new(e||t)(we(hn),we(oS),we(ks),we(P2),we(S0))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const D0=new Re("");let O2=(()=>{class t{constructor(e,i,o,s,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=s,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration=a.scrollPositionRestoration||"disabled",a.anchorScrolling=a.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof p0?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Ga?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof bh&&0===e.code&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof r2&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new r2(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}}return t.\u0275fac=function(e){Aa()},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function aa(t,n){return{\u0275kind:t,\u0275providers:n}}function F2(){const t=Qe(Si);return n=>{const e=t.get(Na);if(n!==e.components[0])return;const i=t.get(hn),o=t.get(R2);1===t.get(T0)&&i.initialNavigation(),t.get(N2,null,Mt.Optional)?.setUpPreloading(),t.get(D0,null,Mt.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const R2=new Re("",{factory:()=>new J}),T0=new Re("",{providedIn:"root",factory:()=>1}),N2=new Re("");function D7(t){return aa(0,[{provide:N2,useExisting:C7},{provide:P2,useExisting:t}])}const Y2=new Re("ROUTER_FORROOT_GUARD"),L7=[Xu,{provide:fh,useClass:c0},hn,vh,{provide:Mr,useFactory:function A2(t){return t.routerState.root},deps:[hn]},S0,[]];function E7(){return new gS("Router",hn)}let H2=(()=>{class t{constructor(e){}static forRoot(e,i){return{ngModule:t,providers:[L7,[],{provide:wd,multi:!0,useValue:e},{provide:Y2,useFactory:A7,deps:[[hn,new xl,new mu]]},{provide:Vm,useValue:i||{}},i?.useHash?{provide:Rl,useClass:eY}:{provide:Rl,useClass:WS},{provide:D0,useFactory:()=>{const t=Qe(mH),n=Qe(ft),e=Qe(Vm),i=Qe(Bm),o=Qe(fh);return e.scrollOffset&&t.setOffset(e.scrollOffset),new O2(o,i,t,n,e)}},i?.preloadingStrategy?D7(i.preloadingStrategy).\u0275providers:[],{provide:gS,multi:!0,useFactory:E7},i?.initialNavigation?F7(i):[],i?.bindToComponentInputs?aa(8,[u2,{provide:Fm,useExisting:u2}]).\u0275providers:[],[{provide:B2,useFactory:F2},{provide:Gv,multi:!0,useExisting:B2}]]}}static forChild(e){return{ngModule:t,providers:[{provide:wd,multi:!0,useValue:e}]}}}return t.\u0275fac=function(e){return new(e||t)(we(Y2,8))},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})();function A7(t){return"guarded"}function F7(t){return["disabled"===t.initialNavigation?aa(3,[{provide:Yv,multi:!0,useFactory:()=>{const n=Qe(hn);return()=>{n.setUpLocationChangeListener()}}},{provide:T0,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?aa(2,[{provide:T0,useValue:0},{provide:Yv,multi:!0,deps:[Si],useFactory:n=>{const e=n.get(J5,Promise.resolve());return()=>e.then(()=>new Promise(i=>{const o=n.get(hn),s=n.get(R2);I2(o,()=>{i(!0)}),n.get(Bm).afterPreactivation=()=>(i(!0),s.closed?$e(void 0):s),o.initialNavigation()}))}}]).\u0275providers:[]]}const B2=new Re("");class N7 extends T{constructor(n,e){super()}schedule(n,e=0){return this}}class jm extends N7{constructor(n,e){super(n,e),this.scheduler=n,this.work=e,this.pending=!1}schedule(n,e=0){if(this.closed)return this;this.state=n;const i=this.id,o=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(o,i,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(o,this.id,e),this}requestAsyncId(n,e,i=0){return setInterval(n.flush.bind(n,this),i)}recycleAsyncId(n,e,i=0){if(null!==i&&this.delay===i&&!1===this.pending)return e;clearInterval(e)}execute(n,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(n,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(n,e){let o,i=!1;try{this.work(n)}catch(s){i=!0,o=!!s&&s||new Error(s)}if(i)return this.unsubscribe(),o}_unsubscribe(){const n=this.id,e=this.scheduler,i=e.actions,o=i.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==o&&i.splice(o,1),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null}}let V2=(()=>{class t{constructor(e,i=t.now){this.SchedulerAction=e,this.now=i}schedule(e,i=0,o){return new this.SchedulerAction(this,e).schedule(o,i)}}return t.now=()=>Date.now(),t})();class ss extends V2{constructor(n,e=V2.now){super(n,()=>ss.delegate&&ss.delegate!==this?ss.delegate.now():e()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(n,e=0,i){return ss.delegate&&ss.delegate!==this?ss.delegate.schedule(n,e,i):super.schedule(n,e,i)}flush(n){const{actions:e}=this;if(this.active)return void e.push(n);let i;this.active=!0;do{if(i=n.execute(n.state,n.delay))break}while(n=e.shift());if(this.active=!1,i){for(;n=e.shift();)n.unsubscribe();throw i}}}const Cd=new ss(jm);class no{constructor(n,e,i){this.kind=n,this.value=e,this.error=i,this.hasValue="N"===n}observe(n){switch(this.kind){case"N":return n.next&&n.next(this.value);case"E":return n.error&&n.error(this.error);case"C":return n.complete&&n.complete()}}do(n,e,i){switch(this.kind){case"N":return n&&n(this.value);case"E":return e&&e(this.error);case"C":return i&&i()}}accept(n,e,i){return n&&"function"==typeof n.next?this.observe(n):this.do(n,e,i)}toObservable(){switch(this.kind){case"N":return $e(this.value);case"E":return Ar(this.error);case"C":return Cm()}throw new Error("unexpected notification kind value")}static createNext(n){return typeof n<"u"?new no("N",n):no.undefinedValueNotification}static createError(n){return new no("E",void 0,n)}static createComplete(){return no.completeNotification}}function Ti(t,n=Cd){const i=function Y7(t){return t instanceof Date&&!isNaN(+t)}(t)?+t-n.now():Math.abs(t);return o=>o.lift(new H7(i,n))}no.completeNotification=new no("C"),no.undefinedValueNotification=new no("N",void 0);class H7{constructor(n,e){this.delay=n,this.scheduler=e}call(n,e){return e.subscribe(new L0(n,this.delay,this.scheduler))}}class L0 extends A{constructor(n,e,i){super(n),this.delay=e,this.scheduler=i,this.queue=[],this.active=!1,this.errored=!1}static dispatch(n){const e=n.source,i=e.queue,o=n.scheduler,s=n.destination;for(;i.length>0&&i[0].time-o.now()<=0;)i.shift().notification.observe(s);if(i.length>0){const a=Math.max(0,i[0].time-o.now());this.schedule(n,a)}else this.unsubscribe(),e.active=!1}_schedule(n){this.active=!0,this.destination.add(n.schedule(L0.dispatch,this.delay,{source:this,destination:this.destination,scheduler:n}))}scheduleNotification(n){if(!0===this.errored)return;const e=this.scheduler,i=new B7(e.now()+this.delay,n);this.queue.push(i),!1===this.active&&this._schedule(e)}_next(n){this.scheduleNotification(no.createNext(n))}_error(n){this.errored=!0,this.queue=[],this.destination.error(n),this.unsubscribe()}_complete(){this.scheduleNotification(no.createComplete()),this.unsubscribe()}}class B7{constructor(n,e){this.time=n,this.notification=e}}var Ka=(()=>((Ka=Ka||{}).NoConnection="NoConnection",Ka.Unknown="Unknown",Ka))();class V7{}const j2="common.operation-error";function en(t){if(t&&t.type&&!t.srcElement)return t;const n=new V7;if(n.originalError=t,!t||"string"==typeof t)return n.originalServerErrorMsg=t||"",n.translatableErrorMsg=t||j2,n.type=Ka.Unknown,n;n.originalServerErrorMsg=function z7(t){if(t){if("string"==typeof t._body)return t._body;if(t.originalServerErrorMsg&&"string"==typeof t.originalServerErrorMsg)return t.originalServerErrorMsg;if(t.error&&"string"==typeof t.error)return t.error;if(t.error&&t.error.error&&t.error.error.message)return t.error.error.message;if(t.error&&t.error.error&&"string"==typeof t.error.error)return t.error.error;if(t.message)return t.message;if(t._body&&t._body.error)return t._body.error;try{return JSON.parse(t._body).error}catch{}}return null}(t);return null!=t.status&&(0===t.status||504===t.status)&&(n.type=Ka.NoConnection,n.translatableErrorMsg="common.no-connection-error"),n.type||(n.type=Ka.Unknown,n.translatableErrorMsg=n.originalServerErrorMsg?function j7(t){if(!t||0===t.length)return t;if(-1!==t.indexOf('"error":'))try{t=JSON.parse(t).error}catch{}if(t.startsWith("400")||t.startsWith("403")){const e=t.split(" - ",2);t=2===e.length?e[1]:t}const n=(t=t.trim()).substr(0,1);return n.toUpperCase()!==n&&(t=n.toUpperCase()+t.substr(1,t.length-1)),!t.endsWith(".")&&!t.endsWith(",")&&!t.endsWith(":")&&!t.endsWith(";")&&!t.endsWith("?")&&!t.endsWith("!")&&(t+="."),t}(n.originalServerErrorMsg):j2),n}const $7=new class W7 extends ss{}(class U7 extends jm{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}schedule(n,e=0){return e>0?super.schedule(n,e):(this.delay=e,this.state=n,this.scheduler.flush(this),this)}execute(n,e){return e>0||this.closed?super.execute(n,e):this._execute(n,e)}requestAsyncId(n,e,i=0){return null!==i&&i>0||null===i&&this.delay>0?super.requestAsyncId(n,e,i):n.flush(this)}});class zm extends A{constructor(n,e,i=0){super(n),this.scheduler=e,this.delay=i}static dispatch(n){const{notification:e,destination:i}=n;e.observe(i),this.unsubscribe()}scheduleMessage(n){this.destination.add(this.scheduler.schedule(zm.dispatch,this.delay,new q7(n,this.destination)))}_next(n){this.scheduleMessage(no.createNext(n))}_error(n){this.scheduleMessage(no.createError(n)),this.unsubscribe()}_complete(){this.scheduleMessage(no.createComplete()),this.unsubscribe()}}class q7{constructor(n,e){this.notification=n,this.destination=e}}class ko extends J{constructor(n=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,i){super(),this.scheduler=i,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=n<1?1:n,this._windowTime=e<1?1:e,e===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(n){if(!this.isStopped){const e=this._events;e.push(n),e.length>this._bufferSize&&e.shift()}super.next(n)}nextTimeWindow(n){this.isStopped||(this._events.push(new K7(this._getNow(),n)),this._trimBufferThenGetEvents()),super.next(n)}_subscribe(n){const e=this._infiniteTimeWindow,i=e?this._events:this._trimBufferThenGetEvents(),o=this.scheduler,s=i.length;let a;if(this.closed)throw new ee;if(this.isStopped||this.hasError?a=T.EMPTY:(this.observers.push(n),a=new ae(this,n)),o&&n.add(n=new zm(n,o)),e)for(let l=0;le&&(a=Math.max(a,s-e)),a>0&&o.splice(0,a),o}}class K7{constructor(n,e){this.time=n,this.value=e}}const Um="refreshSeconds",Wm="labelsData",$m="localNodesData",z2="nodesData";var Xi=(()=>((Xi=Xi||{}).Node="nd",Xi.Transport="tp",Xi.DmsgServer="ds",Xi))();let Ji=(()=>{class t{constructor(){this.currentRefreshTimeSubject=new ko(1),this.savedLocalNodes=new Map,this.savedLabels=new Map,this.savedVisibleLocalNodes=new Set}initialize(e){this.storage=localStorage,this.hypervisorPk=e,this.migrateDataToHvStorage(),this.currentRefreshTime=parseInt(this.getDataForHv(Um),10)||10,this.currentRefreshTimeSubject.next(this.currentRefreshTime),this.getSavedLocalNodes().forEach(s=>{this.savedLocalNodes.set(s.publicKey,s),s.hidden||this.savedVisibleLocalNodes.add(s.publicKey)}),this.getSavedLabels().forEach(s=>this.savedLabels.set(s.id,s)),this.loadLegacyNodeData();const i=[];this.savedLocalNodes.forEach(s=>i.push(s));const o=[];this.savedLabels.forEach(s=>o.push(s)),this.saveLocalNodes(i),this.saveLabels(o)}getDataForHv(e){return this.storage.getItem(this.hypervisorPk+e)}setDataForHv(e,i){return this.storage.setItem(this.hypervisorPk+e,i)}migrateDataToHvStorage(){const e=this.storage.getItem(Um);if(e){const s=parseInt(e,10)||10;this.setRefreshTime(s),this.storage.removeItem(Um)}const i=this.storage.getItem($m);if(i){const s=JSON.parse(i)||[];this.saveLocalNodes(s),this.storage.removeItem($m)}const o=this.storage.getItem(Wm);if(o){const s=JSON.parse(o)||[];this.saveLabels(s),this.storage.removeItem(Wm)}}loadLegacyNodeData(){const e=JSON.parse(this.storage.getItem(z2))||[];if(e.length>0){const i=this.getSavedLocalNodes(),o=this.getSavedLabels();e.forEach(s=>{i.push({publicKey:s.publicKey,hidden:s.deleted,ip:null}),this.savedLocalNodes.set(s.publicKey,i[i.length-1]),s.deleted||this.savedVisibleLocalNodes.add(s.publicKey),o.push({id:s.publicKey,identifiedElementType:Xi.Node,label:s.label}),this.savedLabels.set(s.publicKey,o[o.length-1])}),this.saveLocalNodes(i),this.saveLabels(o),this.storage.removeItem(z2)}}setRefreshTime(e){this.setDataForHv(Um,e.toString()),this.currentRefreshTime=e,this.currentRefreshTimeSubject.next(this.currentRefreshTime)}getRefreshTimeObservable(){return this.currentRefreshTimeSubject.asObservable()}getRefreshTime(){return this.currentRefreshTime}includeVisibleLocalNodes(e,i){this.changeLocalNodesHiddenProperty(e,i,!1)}setLocalNodesAsHidden(e,i){this.changeLocalNodesHiddenProperty(e,i,!0)}changeLocalNodesHiddenProperty(e,i,o){if(e.length!==i.length)throw new Error("Invalid params");const s=new Map,a=new Map;e.forEach((_,E)=>{s.set(_,i[E]),a.set(_,i[E])});let l=!1;const d=this.getSavedLocalNodes();d.forEach(_=>{s.has(_.publicKey)&&(a.has(_.publicKey)&&a.delete(_.publicKey),_.ip!==s.get(_.publicKey)&&(_.ip=s.get(_.publicKey),l=!0,this.savedLocalNodes.set(_.publicKey,_)),_.hidden!==o&&(_.hidden=o,l=!0,this.savedLocalNodes.set(_.publicKey,_),o?this.savedVisibleLocalNodes.delete(_.publicKey):this.savedVisibleLocalNodes.add(_.publicKey)))}),a.forEach((_,E)=>{l=!0;const F={publicKey:E,hidden:o,ip:_};d.push(F),this.savedLocalNodes.set(E,F),o?this.savedVisibleLocalNodes.delete(E):this.savedVisibleLocalNodes.add(E)}),l&&this.saveLocalNodes(d)}getSavedLocalNodes(){return JSON.parse(this.getDataForHv($m))||[]}getSavedVisibleLocalNodes(){return this.savedVisibleLocalNodes}saveLocalNodes(e){this.setDataForHv($m,JSON.stringify(e))}getSavedLabels(){return JSON.parse(this.getDataForHv(Wm))||[]}saveLabels(e){this.setDataForHv(Wm,JSON.stringify(e))}saveLabel(e,i,o){if(i){let s=!1;const a=this.getSavedLabels().map(l=>(l.id===e&&l.identifiedElementType===o&&(s=!0,l.label=i,this.savedLabels.set(l.id,{label:l.label,id:l.id,identifiedElementType:l.identifiedElementType})),l));if(s)this.saveLabels(a);else{const l={label:i,id:e,identifiedElementType:o};a.push(l),this.savedLabels.set(e,l),this.saveLabels(a)}}else{this.savedLabels.has(e)&&this.savedLabels.delete(e);let s=!1;const a=this.getSavedLabels().filter(l=>l.id!==e||(s=!0,!1));s&&this.saveLabels(a)}}getDefaultLabel(e){return e?e.ip?e.ip:e.localPk.substr(0,8):""}getLabelInfo(e){return this.savedLabels.has(e)?this.savedLabels.get(e):null}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function _n(t){return null!=t&&"false"!=`${t}`}function So(t,n=0){return function Z7(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}(t)?Number(t):n}function Gm(t){return Array.isArray(t)?t:[t]}function Qi(t){return null==t?"":"string"==typeof t?t:`${t}px`}function la(t){return t instanceof vt?t.nativeElement:t}function kh(t,n,e,i){return O(e)&&(i=e,e=void 0),i?kh(t,n,e).pipe(ke(o=>M(o)?i(...o):i(o))):new he(o=>{U2(t,n,function s(a){o.next(arguments.length>1?Array.prototype.slice.call(arguments):a)},o,e)})}function U2(t,n,e,i,o){let s;if(function Q7(t){return t&&"function"==typeof t.addEventListener&&"function"==typeof t.removeEventListener}(t)){const a=t;t.addEventListener(n,e,o),s=()=>a.removeEventListener(n,e,o)}else if(function J7(t){return t&&"function"==typeof t.on&&"function"==typeof t.off}(t)){const a=t;t.on(n,e),s=()=>a.off(n,e)}else if(function X7(t){return t&&"function"==typeof t.addListener&&"function"==typeof t.removeListener}(t)){const a=t;t.addListener(n,e),s=()=>a.removeListener(n,e)}else{if(!t||!t.length)throw new TypeError("Invalid event target");for(let a=0,l=t.length;a0?super.requestAsyncId(n,e,i):(n.actions.push(this),n.scheduled||(n.scheduled=requestAnimationFrame(()=>n.flush(null))))}recycleAsyncId(n,e,i=0){if(null!==i&&i>0||null===i&&this.delay>0)return super.recycleAsyncId(n,e,i);0===n.actions.length&&(cancelAnimationFrame(e),n.scheduled=void 0)}});let i9=1;const r9=Promise.resolve(),qm={};function W2(t){return t in qm&&(delete qm[t],!0)}const $2={setImmediate(t){const n=i9++;return qm[n]=!0,r9.then(()=>W2(n)&&t()),n},clearImmediate(t){W2(t)}},E0=new class s9 extends ss{flush(n){this.active=!0,this.scheduled=void 0;const{actions:e}=this;let i,o=-1,s=e.length;n=n||e.shift();do{if(i=n.execute(n.state,n.delay))break}while(++o0?super.requestAsyncId(n,e,i):(n.actions.push(this),n.scheduled||(n.scheduled=$2.setImmediate(n.flush.bind(n,null))))}recycleAsyncId(n,e,i=0){if(null!==i&&i>0||null===i&&this.delay>0)return super.recycleAsyncId(n,e,i);0===n.actions.length&&($2.clearImmediate(e),n.scheduled=void 0)}});class l9{constructor(n){this.durationSelector=n}call(n,e){return e.subscribe(new c9(n,this.durationSelector))}}class c9 extends Me{constructor(n,e){super(n),this.durationSelector=e,this.hasValue=!1}_next(n){if(this.value=n,this.hasValue=!0,!this.throttled){let e;try{const{durationSelector:o}=this;e=o(n)}catch(o){return this.destination.error(o)}const i=Ie(e,new be(this));!i||i.closed?this.clearThrottle():this.add(this.throttled=i)}}clearThrottle(){const{value:n,hasValue:e,throttled:i}=this;i&&(this.remove(i),this.throttled=void 0,i.unsubscribe()),e&&(this.value=void 0,this.hasValue=!1,this.destination.next(n))}notifyNext(){this.clearThrottle()}notifyComplete(){this.clearThrottle()}}function I0(t){return!M(t)&&t-parseFloat(t)+1>=0}function Sh(t=0,n,e){let i=-1;return I0(n)?i=Number(n)<1?1:Number(n):Se(n)&&(e=n),Se(e)||(e=Cd),new he(o=>{const s=I0(t)?t:+t-e.now();return e.schedule(d9,s,{index:0,period:i,subscriber:o})})}function d9(t){const{index:n,period:e,subscriber:i}=t;if(i.next(n),!i.closed){if(-1===e)return i.complete();t.index=n+1,this.schedule(t,e)}}function G2(t,n=Cd){return function a9(t){return function(e){return e.lift(new l9(t))}}(()=>Sh(t,n))}let P0;try{P0=typeof Intl<"u"&&Intl.v8BreakIterator}catch{P0=!1}let xd,ui=(()=>{class t{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function pH(t){return t===uD}(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!P0)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return t.\u0275fac=function(e){return new(e||t)(we(Oa))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const q2=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function K2(){if(xd)return xd;if("object"!=typeof document||!document)return xd=new Set(q2),xd;let t=document.createElement("input");return xd=new Set(q2.filter(n=>(t.setAttribute("type",n),t.type===n))),xd}let Dh,$l,O0;function Za(t){return function u9(){if(null==Dh&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Dh=!0}))}finally{Dh=Dh||!1}return Dh}()?t:!!t.capture}function h9(){if(null==$l){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return $l=!1,$l;if("scrollBehavior"in document.documentElement.style)$l=!0;else{const t=Element.prototype.scrollTo;$l=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return $l}function A0(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const n=t.shadowRoot.activeElement;if(n===t)break;t=n}return t}function Xa(t){return t.composedPath?t.composedPath()[0]:t.target}function F0(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const m9=new Re("cdk-dir-doc",{providedIn:"root",factory:function g9(){return Qe(It)}}),_9=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Do=(()=>{class t{constructor(e){this.value="ltr",this.change=new ht,e&&(this.value=function b9(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?_9.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}}return t.\u0275fac=function(e){return new(e||t)(we(m9,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),Th=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})(),Z2=(()=>{class t{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new J,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new he(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(G2(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):$e()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(_i(s=>!s||o.indexOf(s)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=la(i),s=e.getElementRef().nativeElement;do{if(o==s)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>kh(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return t.\u0275fac=function(e){return new(e||t)(we(ft),we(ui),we(It,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),kd=(()=>{class t{constructor(e,i,o){this._platform=e,this._change=new J,this._changeListener=s=>{this._change.next(s)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,s=o.getBoundingClientRect();return{top:-s.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-s.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(G2(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}}return t.\u0275fac=function(e){return new(e||t)(we(ui),we(ft),we(It,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),Lh=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})(),X2=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Th,Lh,Th,Lh]}),t})();function Hn(t){return n=>n.lift(new M9(t))}class M9{constructor(n){this.notifier=n}call(n,e){const i=new w9(n),o=Ie(this.notifier,new be(i));return o&&!i.seenValue?(i.add(o),e.subscribe(i)):i}}class w9 extends Me{constructor(n){super(n),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}class x9{constructor(n,e){this.predicate=n,this.inclusive=e}call(n,e){return e.subscribe(new k9(n,this.predicate,this.inclusive))}}class k9 extends A{constructor(n,e,i){super(n),this.predicate=e,this.inclusive=i,this.index=0}_next(n){const e=this.destination;let i;try{i=this.predicate(n,this.index++)}catch(o){return void e.error(o)}this.nextOrComplete(n,i)}nextOrComplete(n,e){const i=this.destination;e?i.next(n):(this.inclusive&&i.next(n),i.complete())}}class R0{attach(n){return this._attachedHost=n,n.attach(this)}detach(){let n=this._attachedHost;null!=n&&(this._attachedHost=null,n.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(n){this._attachedHost=n}}class Sd extends R0{constructor(n,e,i,o,s){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=s}}class Gl extends R0{constructor(n,e,i,o){super(),this.templateRef=n,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(n,e=this.context){return this.context=e,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class S9 extends R0{constructor(n){super(),this.element=n instanceof vt?n.nativeElement:n}}class Zm{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Sd?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof Gl?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof S9?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(n){this._disposeFn=n}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class D9 extends Zm{constructor(n,e,i,o,s){super(),this.outletElement=n,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=a=>{const l=a.element,d=this._document.createComment("dom-portal");l.parentNode.insertBefore(d,l),this.outletElement.appendChild(l),this._attachedPortal=a,super.setDisposeFn(()=>{d.parentNode&&d.parentNode.replaceChild(l,d)})},this._document=s}attachComponentPortal(n){const i=(n.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(n.component);let o;return n.viewContainerRef?(o=n.viewContainerRef.createComponent(i,n.viewContainerRef.length,n.injector||n.viewContainerRef.injector,n.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(n.injector||this._defaultInjector||Si.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=n,o}attachTemplatePortal(n){let e=n.viewContainerRef,i=e.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=n,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let T9=(()=>{class t extends Gl{constructor(e,i){super(e,i)}}return t.\u0275fac=function(e){return new(e||t)(Y(mr),Y(rr))},t.\u0275dir=Ke({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[nt]}),t})(),Ja=(()=>{class t extends Zm{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new ht,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");s.setAttachedHost(this),a.parentNode.insertBefore(l,a),this._getRootNode().appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,s=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),a=i.createComponent(s,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=e,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}}return t.\u0275fac=function(e){return new(e||t)(Y(Tl),Y(rr),Y(It))},t.\u0275dir=Ke({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[nt]}),t})(),Dd=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})();function Fs(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}const Q2=h9();class j9{constructor(n,e){this._viewportRuler=n,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const n=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=n.style.left||"",this._previousHTMLStyles.top=n.style.top||"",n.style.left=Qi(-this._previousScrollPosition.left),n.style.top=Qi(-this._previousScrollPosition.top),n.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const n=this._document.documentElement,i=n.style,o=this._document.body.style,s=i.scrollBehavior||"",a=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),Q2&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),Q2&&(i.scrollBehavior=s,o.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class z9{constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(_i(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=n.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=n.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class eL{enable(){}disable(){}attach(){}}function N0(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function tL(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}class U9{constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(n){this._overlayRef=n}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();N0(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let W9=(()=>{class t{constructor(e,i,o,s){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new eL,this.close=a=>new z9(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new j9(this._viewportRuler,this._document),this.reposition=a=>new U9(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=s}}return t.\u0275fac=function(e){return new(e||t)(we(Z2),we(kd),we(ft),we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class Oh{constructor(n){if(this.scrollStrategy=new eL,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class $9{constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let nL=(()=>{class t{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),G9=(()=>{class t extends nL{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const s=this._attachedOverlays;for(let a=s.length-1;a>-1;a--)if(s[a]._keydownEvents.observers.length>0){const l=s[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>l.next(o)):l.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(ft,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),q9=(()=>{class t extends nL{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=Xa(s)},this._clickListener=s=>{const a=Xa(s),l="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const d=this._attachedOverlays.slice();for(let _=d.length-1;_>-1;_--){const E=d[_];if(E._outsidePointerEvents.observers.length<1||!E.hasAttached())continue;if(E.overlayElement.contains(a)||E.overlayElement.contains(l))break;const F=E._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>F.next(s)):F.next(s)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(ui),we(ft,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),tg=(()=>{class t{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||F0()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(F),this._backdropTransitionendHandler=F=>{this._disposeBackdrop(F.target)},this._keydownEvents=new J,this._outsidePointerEvents=new J,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(n){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(n);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(Kn(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const n=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,n&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(n){n!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=n,this.hasAttached()&&(n.attach(this),this.updatePosition()))}updateSize(n){this._config={...this._config,...n},this._updateElementSize()}setDirection(n){this._config={...this._config,direction:n},this._updateElementDirection()}addPanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!0)}removePanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!1)}getDirection(){const n=this._config.direction;return n?"string"==typeof n?n:n.value:"ltr"}updateScrollStrategy(n){n!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=n,this.hasAttached()&&(n.attach(this),n.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const n=this._pane.style;n.width=Qi(this._config.width),n.height=Qi(this._config.height),n.minWidth=Qi(this._config.minWidth),n.minHeight=Qi(this._config.minHeight),n.maxWidth=Qi(this._config.maxWidth),n.maxHeight=Qi(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(n)})}):this._backdropElement.classList.add(n)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const n=this._backdropElement;if(n){if(this._animationsDisabled)return void this._disposeBackdrop(n);n.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{n.addEventListener("transitionend",this._backdropTransitionendHandler)}),n.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(n)},500))}}_toggleClasses(n,e,i){const o=Gm(e||[]).filter(s=>!!s);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const n=this._ngZone.onStable.pipe(Hn(bt(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),n.unsubscribe())})})}_disposeScrollStrategy(){const n=this._scrollStrategy;n&&(n.disable(),n.detach&&n.detach())}_disposeBackdrop(n){n&&(n.removeEventListener("click",this._backdropClickHandler),n.removeEventListener("transitionend",this._backdropTransitionendHandler),n.remove(),this._backdropElement===n&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const iL="cdk-overlay-connected-position-bounding-box",K9=/([A-Za-z%]+)$/;class Z9{get positions(){return this._preferredPositions}constructor(n,e,i,o,s){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=s,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new J,this._resizeSubscription=T.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(iL),this._overlayRef=n,this._boundingBox=n.hostElement,this._pane=n.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,s=[];let a;for(let l of this._preferredPositions){let d=this._getOriginPoint(n,o,l),_=this._getOverlayPoint(d,e,l),E=this._getOverlayFit(_,e,i,l);if(E.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(l,d);this._canFitWithFlexibleDimensions(E,_,i)?s.push({position:l,origin:d,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(d,l)}):(!a||a.overlayFit.visibleAread&&(d=E,l=_)}return this._isPushed=!1,void this._applyPosition(l.position,l.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&ql(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(iL),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const n=this._lastPosition;if(n){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,n);this._applyPosition(n,e)}else this.apply()}withScrollableContainers(n){return this._scrollables=n,this}withPositions(n){return this._preferredPositions=n,-1===n.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(n){return this._viewportMargin=n,this}withFlexibleDimensions(n=!0){return this._hasFlexibleDimensions=n,this}withGrowAfterOpen(n=!0){return this._growAfterOpen=n,this}withPush(n=!0){return this._canPush=n,this}withLockedPosition(n=!0){return this._positionLocked=n,this}setOrigin(n){return this._origin=n,this}withDefaultOffsetX(n){return this._offsetX=n,this}withDefaultOffsetY(n){return this._offsetY=n,this}withTransformOriginOn(n){return this._transformOriginSelector=n,this}_getOriginPoint(n,e,i){let o,s;if("center"==i.originX)o=n.left+n.width/2;else{const a=this._isRtl()?n.right:n.left,l=this._isRtl()?n.left:n.right;o="start"==i.originX?a:l}return e.left<0&&(o-=e.left),s="center"==i.originY?n.top+n.height/2:"top"==i.originY?n.top:n.bottom,e.top<0&&(s-=e.top),{x:o,y:s}}_getOverlayPoint(n,e,i){let o,s;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,s="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:n.x+o,y:n.y+s}}_getOverlayFit(n,e,i,o){const s=oL(e);let{x:a,y:l}=n,d=this._getOffset(o,"x"),_=this._getOffset(o,"y");d&&(a+=d),_&&(l+=_);let G=0-l,ie=l+s.height-i.height,_e=this._subtractOverflows(s.width,0-a,a+s.width-i.width),Ce=this._subtractOverflows(s.height,G,ie),Ae=_e*Ce;return{visibleArea:Ae,isCompletelyWithinViewport:s.width*s.height===Ae,fitsInViewportVertically:Ce===s.height,fitsInViewportHorizontally:_e==s.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,s=i.right-e.x,a=rL(this._overlayRef.getConfig().minHeight),l=rL(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=a&&a<=o)&&(n.fitsInViewportHorizontally||null!=l&&l<=s)}return!1}_pushOverlayOnScreen(n,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:n.x+this._previousPushAmount.x,y:n.y+this._previousPushAmount.y};const o=oL(e),s=this._viewportRect,a=Math.max(n.x+o.width-s.width,0),l=Math.max(n.y+o.height-s.height,0),d=Math.max(s.top-i.top-n.y,0),_=Math.max(s.left-i.left-n.x,0);let E=0,F=0;return E=o.width<=s.width?_||-a:n.x_e&&!this._isInitialRender&&!this._growAfterOpen&&(a=n.y-_e/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)G=i.width-n.x+this._viewportMargin,E=n.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)F=n.x,E=i.right-n.x;else{const ie=Math.min(i.right-n.x+i.left,n.x),_e=this._lastBoundingBoxSize.width;E=2*ie,F=n.x-ie,E>_e&&!this._isInitialRender&&!this._growAfterOpen&&(F=n.x-_e/2)}return{top:a,left:F,bottom:l,right:G,width:E,height:s}}_setBoundingBoxStyles(n,e){const i=this._calculateBoundingBoxRect(n,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;o.height=Qi(i.height),o.top=Qi(i.top),o.bottom=Qi(i.bottom),o.width=Qi(i.width),o.left=Qi(i.left),o.right=Qi(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",s&&(o.maxHeight=Qi(s)),a&&(o.maxWidth=Qi(a))}this._lastBoundingBoxSize=i,ql(this._boundingBox.style,o)}_resetBoundingBoxStyles(){ql(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){ql(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(o){const E=this._viewportRuler.getViewportScrollPosition();ql(i,this._getExactOverlayY(e,n,E)),ql(i,this._getExactOverlayX(e,n,E))}else i.position="static";let l="",d=this._getOffset(e,"x"),_=this._getOffset(e,"y");d&&(l+=`translateX(${d}px) `),_&&(l+=`translateY(${_}px)`),i.transform=l.trim(),a.maxHeight&&(o?i.maxHeight=Qi(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(o?i.maxWidth=Qi(a.maxWidth):s&&(i.maxWidth="")),ql(this._pane.style,i)}_getExactOverlayY(n,e,i){let o={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===n.overlayY?o.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":o.top=Qi(s.y),o}_getExactOverlayX(n,e,i){let a,o={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),a=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===a?o.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":o.left=Qi(s.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:tL(n,i),isOriginOutsideView:N0(n,i),isOverlayClipped:tL(e,i),isOverlayOutsideView:N0(e,i)}}_subtractOverflows(n,...e){return e.reduce((i,o)=>i-Math.max(o,0),n)}_getNarrowedViewportRect(){const n=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+n-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:n-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(n,e){return"x"===e?null==n.offsetX?this._offsetX:n.offsetX:null==n.offsetY?this._offsetY:n.offsetY}_validatePositions(){}_addPanelClasses(n){this._pane&&Gm(n).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(n=>{this._pane.classList.remove(n)}),this._appliedPanelClasses=[])}_getOriginRect(){const n=this._origin;if(n instanceof vt)return n.nativeElement.getBoundingClientRect();if(n instanceof Element)return n.getBoundingClientRect();const e=n.width||0,i=n.height||0;return{top:n.y,bottom:n.y+i,left:n.x,right:n.x+e,height:i,width:e}}}function ql(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function rL(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(K9);return e&&"px"!==e?null:parseFloat(n)}return t||null}function oL(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}const sL="cdk-global-overlay-wrapper";class X9{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(n){const e=n.getConfig();this._overlayRef=n,this._width&&!e.width&&n.updateSize({width:this._width}),this._height&&!e.height&&n.updateSize({height:this._height}),n.hostElement.classList.add(sL),this._isDisposed=!1}top(n=""){return this._bottomOffset="",this._topOffset=n,this._alignItems="flex-start",this}left(n=""){return this._xOffset=n,this._xPosition="left",this}bottom(n=""){return this._topOffset="",this._bottomOffset=n,this._alignItems="flex-end",this}right(n=""){return this._xOffset=n,this._xPosition="right",this}start(n=""){return this._xOffset=n,this._xPosition="start",this}end(n=""){return this._xOffset=n,this._xPosition="end",this}width(n=""){return this._overlayRef?this._overlayRef.updateSize({width:n}):this._width=n,this}height(n=""){return this._overlayRef?this._overlayRef.updateSize({height:n}):this._height=n,this}centerHorizontally(n=""){return this.left(n),this._xPosition="center",this}centerVertically(n=""){return this.top(n),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:s,maxWidth:a,maxHeight:l}=i,d=!("100%"!==o&&"100vw"!==o||a&&"100%"!==a&&"100vw"!==a),_=!("100%"!==s&&"100vh"!==s||l&&"100%"!==l&&"100vh"!==l),E=this._xPosition,F=this._xOffset,G="rtl"===this._overlayRef.getConfig().direction;let ie="",_e="",Ce="";d?Ce="flex-start":"center"===E?(Ce="center",G?_e=F:ie=F):G?"left"===E||"end"===E?(Ce="flex-end",ie=F):("right"===E||"start"===E)&&(Ce="flex-start",_e=F):"left"===E||"start"===E?(Ce="flex-start",ie=F):("right"===E||"end"===E)&&(Ce="flex-end",_e=F),n.position=this._cssPosition,n.marginLeft=d?"0":ie,n.marginTop=_?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=d?"0":_e,e.justifyContent=Ce,e.alignItems=_?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(sL),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let J9=(()=>{class t{constructor(e,i,o,s){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=s}global(){return new X9}flexibleConnectedTo(e){return new Z9(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return t.\u0275fac=function(e){return new(e||t)(we(kd),we(It),we(ui),we(tg))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),Q9=0,io=(()=>{class t{constructor(e,i,o,s,a,l,d,_,E,F,G,ie){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=s,this._keyboardDispatcher=a,this._injector=l,this._ngZone=d,this._document=_,this._directionality=E,this._location=F,this._outsideClickDispatcher=G,this._animationsModuleType=ie}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),s=this._createPortalOutlet(o),a=new Oh(e);return a.direction=a.direction||this._directionality.value,new Ah(s,i,o,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+Q9++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Na)),new D9(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return t.\u0275fac=function(e){return new(e||t)(we(W9),we(tg),we(Tl),we(J9),we(G9),we(Si),we(ft),we(It),we(Do),we(Xu),we(q9),we(Ri,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const ez=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],aL=new Re("cdk-connected-overlay-scroll-strategy");let Y0=(()=>{class t{constructor(e){this.elementRef=e}}return t.\u0275fac=function(e){return new(e||t)(Y(vt))},t.\u0275dir=Ke({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0}),t})(),lL=(()=>{class t{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=_n(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=_n(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=_n(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=_n(e)}get push(){return this._push}set push(e){this._push=_n(e)}constructor(e,i,o,s,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=T.EMPTY,this._attachSubscription=T.EMPTY,this._detachSubscription=T.EMPTY,this._positionSubscription=T.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new ht,this.positionChange=new ht,this.attach=new ht,this.detach=new ht,this.overlayKeydown=new ht,this.overlayOutsideClick=new ht,this._templatePortal=new Gl(i,o),this._scrollStrategyFactory=s,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=ez);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!Fs(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Oh({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof Y0?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function C9(t,n=!1){return e=>e.lift(new x9(t,n))}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(io),Y(mr),Y(rr),Y(aL),Y(Do,8))},t.\u0275dir=Ke({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:["cdkConnectedOverlayOrigin","origin"],positions:["cdkConnectedOverlayPositions","positions"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[Gi]}),t})();const nz={provide:aL,deps:[io],useFactory:function tz(t){return()=>t.scrollStrategies.reposition()}};let Td=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[io,nz],imports:[Th,Dd,X2,X2]}),t})();function H0(t,n=Cd){return e=>e.lift(new iz(t,n))}class iz{constructor(n,e){this.dueTime=n,this.scheduler=e}call(n,e){return e.subscribe(new rz(n,this.dueTime,this.scheduler))}}class rz extends A{constructor(n,e,i){super(n),this.dueTime=e,this.scheduler=i,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}_next(n){this.clearDebounce(),this.lastValue=n,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(oz,this.dueTime,this))}_complete(){this.debouncedNext(),this.destination.complete()}debouncedNext(){if(this.clearDebounce(),this.hasValue){const{lastValue:n}=this;this.lastValue=null,this.hasValue=!1,this.destination.next(n)}}clearDebounce(){const n=this.debouncedSubscription;null!==n&&(this.remove(n),n.unsubscribe(),this.debouncedSubscription=null)}}function oz(t){t.debouncedNext()}function B0(t){return n=>n.lift(new sz(t))}class sz{constructor(n){this.total=n}call(n,e){return e.subscribe(new az(n,this.total))}}class az extends A{constructor(n,e){super(n),this.total=e,this.count=0}_next(n){++this.count>this.total&&this.destination.next(n)}}function V0(t,n){return e=>e.lift(new lz(t,n))}class lz{constructor(n,e){this.compare=n,this.keySelector=e}call(n,e){return e.subscribe(new cz(n,this.compare,this.keySelector))}}class cz extends A{constructor(n,e,i){super(n),this.keySelector=i,this.hasKey=!1,"function"==typeof e&&(this.compare=e)}compare(n,e){return n===e}_next(n){let e;try{const{keySelector:o}=this;e=o?o(n):n}catch(o){return this.destination.error(o)}let i=!1;if(this.hasKey)try{const{compare:o}=this;i=o(this.key,e)}catch(o){return this.destination.error(o)}else this.hasKey=!0;i||(this.key=e,this.destination.next(n))}}let cL=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),dz=(()=>{class t{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=la(e);return new he(o=>{const a=this._observeElement(i).subscribe(o);return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new J,o=this._mutationObserverFactory.create(s=>i.next(s));o&&o.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:o,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:o}=this._observedElements.get(e);i&&i.disconnect(),o.complete(),this._observedElements.delete(e)}}}return t.\u0275fac=function(e){return new(e||t)(we(cL))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),dL=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=_n(e),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=So(e),this._subscribe()}constructor(e,i,o){this._contentObserver=e,this._elementRef=i,this._ngZone=o,this.event=new ht,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(H0(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(dz),Y(vt),Y(ft))},t.\u0275dir=Ke({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]}),t})(),j0=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[cL]}),t})();const uL=new Set;let Kl,uz=(()=>{class t{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):fz}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function hz(t,n){if(!uL.has(t))try{Kl||(Kl=document.createElement("style"),n&&(Kl.nonce=n),Kl.setAttribute("type","text/css"),document.head.appendChild(Kl)),Kl.sheet&&(Kl.sheet.insertRule(`@media ${t} {body{ }}`,0),uL.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}}return t.\u0275fac=function(e){return new(e||t)(we(ui),we(Tb,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function fz(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let z0=(()=>{class t{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new J}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return hL(Gm(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let s=Mm(hL(Gm(e)).map(a=>this._registerQuery(a).observable));return s=Ua(s.pipe(Kn(1)),s.pipe(B0(1),H0(0))),s.pipe(ke(a=>{const l={matches:!1,breakpoints:{}};return a.forEach(({matches:d,query:_})=>{l.matches=l.matches||d,l.breakpoints[_]=d}),l}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),s={observable:new he(a=>{const l=d=>this._zone.run(()=>a.next(d));return i.addListener(l),()=>{i.removeListener(l)}}).pipe(Go(i),ke(({matches:a})=>({query:e,matches:a})),Hn(this._destroySubject)),mql:i};return this._queries.set(e,s),s}}return t.\u0275fac=function(e){return new(e||t)(we(uz),we(ft))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function hL(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}function ng(t,n){return(t.getAttribute(n)||"").match(/\S+/g)||[]}const pL="cdk-describedby-message",ig="cdk-describedby-host";let U0=0,_z=(()=>{class t{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+U0++,this._document=e,this._id=Qe(ku)+"-"+U0++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const s=W0(i,o);"string"!=typeof i?(mL(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,o),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,o){if(!i||!this._isElementNode(e))return;const s=W0(i,o);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),"string"==typeof i){const a=this._messageRegistry.get(s);a&&0===a.referenceCount&&this._deleteMessageElement(s)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${ig}="${this._id}"]`);for(let i=0;i0!=o.indexOf(pL));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);(function mz(t,n,e){const i=ng(t,n);i.some(o=>o.trim()==e.trim())||(i.push(e.trim()),t.setAttribute(n,i.join(" ")))})(e,"aria-describedby",o.messageElement.id),e.setAttribute(ig,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,function gz(t,n,e){const o=ng(t,n).filter(s=>s!=e.trim());o.length?t.setAttribute(n,o.join(" ")):t.removeAttribute(n)}(e,"aria-describedby",o.messageElement.id),e.removeAttribute(ig)}_isElementDescribedByMessage(e,i){const o=ng(e,"aria-describedby"),s=this._messageRegistry.get(i),a=s&&s.messageElement.id;return!!a&&-1!=o.indexOf(a)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const o=null==i?"":`${i}`.trim(),s=e.getAttribute("aria-label");return!(!o||s&&s.trim()===o)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(ui))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function W0(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function mL(t,n){t.id||(t.id=`${pL}-${n}-${U0++}`)}class gL{constructor(n){this._items=n,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new J,this._typeaheadSubscription=T.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=e=>e.disabled,this._pressedLetters=[],this.tabOut=new J,this.change=new J,n instanceof Al&&(this._itemChangesSubscription=n.changes.subscribe(e=>{if(this._activeItem){const o=e.toArray().indexOf(this._activeItem);o>-1&&o!==this._activeItemIndex&&(this._activeItemIndex=o)}}))}skipPredicate(n){return this._skipPredicateFn=n,this}withWrap(n=!0){return this._wrap=n,this}withVerticalOrientation(n=!0){return this._vertical=n,this}withHorizontalOrientation(n){return this._horizontal=n,this}withAllowedModifierKeys(n){return this._allowedModifierKeys=n,this}withTypeAhead(n=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(bi(e=>this._pressedLetters.push(e)),H0(n),_i(()=>this._pressedLetters.length>0),ke(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!n[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const s=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(s=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],n.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(n){const e=this._getItemsArray(),i="number"==typeof n?n:e.indexOf(n);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(n){this._wrap?this._setActiveInWrapMode(n):this._setActiveInDefaultMode(n)}_setActiveInWrapMode(n){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+n*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(n){this._setActiveItemByIndex(this._activeItemIndex+n,n)}_setActiveItemByIndex(n,e){const i=this._getItemsArray();if(i[n]){for(;this._skipPredicateFn(i[n]);)if(!i[n+=e])return;this.setActiveItem(n)}}_getItemsArray(){return this._items instanceof Al?this._items.toArray():this._items}}class bz extends gL{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class _L extends gL{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}let rg=(()=>{class t{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function yz(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function vz(t){try{return t.frameElement}catch{return null}}(function Tz(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===vL(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),s=vL(e);return e.hasAttribute("contenteditable")?-1!==s:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function Sz(t){let n=t.nodeName.toLowerCase(),e="input"===n&&t.type;return"text"===e||"password"===e||"select"===n||"textarea"===n}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==s:"video"===o?-1!==s&&(null!==s||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function Dz(t){return!function wz(t){return function xz(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function Mz(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function Cz(t){return function kz(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||bL(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}}return t.\u0275fac=function(e){return new(e||t)(we(ui))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function bL(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function vL(t){if(!bL(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class Lz{get enabled(){return this._enabled}set enabled(n){this._enabled=n,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}constructor(n,e,i,o,s=!1){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,s||this.attachAnchors()}destroy(){const n=this._startAnchor,e=this._endAnchor;n&&(n.removeEventListener("focus",this.startAnchorListener),n.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(n)))})}focusFirstTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(n)))})}focusLastTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(n)))})}_getRegionBoundary(n){const e=this._element.querySelectorAll(`[cdk-focus-region-${n}], [cdkFocusRegion${n}], [cdk-focus-${n}]`);return"start"==n?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(n){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(n),!!i}return e.focus(n),!0}return this.focusFirstTabbableElement(n)}focusFirstTabbableElement(n){const e=this._getRegionBoundary("start");return e&&e.focus(n),!!e}focusLastTabbableElement(n){const e=this._getRegionBoundary("end");return e&&e.focus(n),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(n){if(this._checker.isFocusable(n)&&this._checker.isTabbable(n))return n;const e=n.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const n=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,n),n.classList.add("cdk-visually-hidden"),n.classList.add("cdk-focus-trap-anchor"),n.setAttribute("aria-hidden","true"),n}_toggleAnchorTabIndex(n,e){n?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(n){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}_executeOnStable(n){this._ngZone.isStable?n():this._ngZone.onStable.pipe(Kn(1)).subscribe(n)}}let $0=(()=>{class t{constructor(e,i,o){this._checker=e,this._ngZone=i,this._document=o}create(e,i=!1){return new Lz(e,this._checker,this._ngZone,this._document,i)}}return t.\u0275fac=function(e){return new(e||t)(we(rg),we(ft),we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function G0(t){return 0===t.buttons||0===t.offsetX&&0===t.offsetY}function q0(t){const n=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const Ez=new Re("cdk-input-modality-detector-options"),Iz={ignoreKeys:[18,17,224,91,16]},Ld=Za({passive:!0,capture:!0});let Pz=(()=>{class t{get mostRecentModality(){return this._modality.value}constructor(e,i,o,s){this._platform=e,this._mostRecentTarget=null,this._modality=new Or(null),this._lastTouchMs=0,this._onKeydown=a=>{this._options?.ignoreKeys?.some(l=>l===a.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Xa(a))},this._onMousedown=a=>{Date.now()-this._lastTouchMs<650||(this._modality.next(G0(a)?"keyboard":"mouse"),this._mostRecentTarget=Xa(a))},this._onTouchstart=a=>{q0(a)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Xa(a))},this._options={...Iz,...s},this.modalityDetected=this._modality.pipe(B0(1)),this.modalityChanged=this.modalityDetected.pipe(V0()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,Ld),o.addEventListener("mousedown",this._onMousedown,Ld),o.addEventListener("touchstart",this._onTouchstart,Ld)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Ld),document.removeEventListener("mousedown",this._onMousedown,Ld),document.removeEventListener("touchstart",this._onTouchstart,Ld))}}return t.\u0275fac=function(e){return new(e||t)(we(ui),we(ft),we(It),we(Ez,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const Oz=new Re("liveAnnouncerElement",{providedIn:"root",factory:function Az(){return null}}),Fz=new Re("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let Rz=0,K0=(()=>{class t{constructor(e,i,o,s){this._ngZone=i,this._defaultOptions=s,this._document=o,this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let s,a;return 1===i.length&&"number"==typeof i[0]?a=i[0]:[s,a]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=o&&o.politeness?o.politeness:"polite"),null==a&&o&&(a=o.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(l=>this._currentResolve=l)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof a&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),o=this._document.createElement("div");for(let s=0;s .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class t{constructor(e,i,o,s,a){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new J,this._rootNodeFocusAndBlurListener=l=>{for(let _=Xa(l);_;_=_.parentElement)"focus"===l.type?this._onFocus(l,_):this._onBlur(l,_)},this._document=s,this._detectionMode=a?.detectionMode||0}monitor(e,i=!1){const o=la(e);if(!this._platform.isBrowser||1!==o.nodeType)return $e(null);const s=function p9(t){if(function f9(){if(null==O0){const t=typeof document<"u"?document.head:null;O0=!(!t||!t.createShadowRoot&&!t.attachShadow)}return O0}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(o)||this._getDocument(),a=this._elementInfo.get(o);if(a)return i&&(a.checkChildren=!0),a.subject;const l={checkChildren:i,subject:new J,rootNode:s};return this._elementInfo.set(o,l),this._registerGlobalListeners(l),l.subject}stopMonitoring(e){const i=la(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const s=la(e);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([l,d])=>this._originChanged(l,i,d)):(this._setOrigin(i),"function"==typeof s.focus&&s.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return 1===this._detectionMode||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),s=Xa(e);!o||!o.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,og),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,og)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Hn(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,og),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,og),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,s)=>{(s===e||o.checkChildren&&s.contains(e))&&i.push([s,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const s=e.labels;if(s)for(let a=0;a{class t{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new ht}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(Qa))},t.\u0275dir=Ke({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]}),t})();const ML="cdk-high-contrast-black-on-white",wL="cdk-high-contrast-white-on-black",Z0="cdk-high-contrast-active";let CL=(()=>{class t{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=Qe(z0).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,s=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return 2;case"rgb(255,255,255)":case"rgb(255,250,239)":return 1}return 0}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(Z0,ML,wL),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?e.add(Z0,ML):2===i&&e.add(Z0,wL)}}}return t.\u0275fac=function(e){return new(e||t)(we(ui),we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),X0=(()=>{class t{constructor(e){e._applyBodyHighContrastModeCssClasses()}}return t.\u0275fac=function(e){return new(e||t)(we(CL))},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[j0]}),t})();function Hz(t,n){}class sg{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let xL=(()=>{class t extends Zm{constructor(e,i,o,s,a,l,d,_){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=s,this._interactivityChecker=a,this._ngZone=l,this._overlayRef=d,this._focusMonitor=_,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this.attachDomPortal=E=>{this._portalOutlet.hasAttached();const F=this._portalOutlet.attachDomPortal(E);return this._contentAttached(),F},this._ariaLabelledBy=this._config.ariaLabelledBy||null,this._document=o}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const o=A0(),s=this._elementRef.nativeElement;(!o||o===this._document.body||o===s||s.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=A0();return e===i||e.contains(i)}_initializeFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=A0())}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y($0),Y(It,8),Y(sg),Y(rg),Y(ft),Y(Ah),Y(Qa))},t.\u0275cmp=Ze({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(e,i){if(1&e&&_t(Ja,7),2&e){let o;rt(o=ot())&&(i._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(e,i){2&e&&Xt("id",i._config.id||null)("role",i._config.role)("aria-modal",i._config.ariaModal)("aria-labelledby",i._config.ariaLabel?null:i._ariaLabelledBy)("aria-label",i._config.ariaLabel)("aria-describedby",i._config.ariaDescribedBy||null)},features:[nt],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(e,i){1&e&&V(0,Hz,0,0,"ng-template",0)},dependencies:[Ja],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2}),t})();class J0{constructor(n,e){this.overlayRef=n,this.config=e,this.closed=new J,this.disableClose=e.disableClose,this.backdropClick=n.backdropClick(),this.keydownEvents=n.keydownEvents(),this.outsidePointerEvents=n.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!Fs(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(n),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(n="",e=""){return this.overlayRef.updateSize({width:n,height:e}),this}addPanelClass(n){return this.overlayRef.addPanelClass(n),this}removePanelClass(n){return this.overlayRef.removePanelClass(n),this}}const kL=new Re("DialogScrollStrategy"),Bz=new Re("DialogData"),Vz=new Re("DefaultDialogConfig"),zz={provide:kL,deps:[io],useFactory:function jz(t){return()=>t.scrollStrategies.block()}};let Uz=0,SL=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(e,i,o,s,a,l){this._overlay=e,this._injector=i,this._defaultOptions=o,this._parentDialog=s,this._overlayContainer=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new J,this._afterOpenedAtThisLevel=new J,this._ariaHiddenElements=new Map,this.afterAllClosed=jl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Go(void 0))),this._scrollStrategy=l}open(e,i){(i={...this._defaultOptions||new sg,...i}).id=i.id||"cdk-dialog-"+Uz++,i.id&&this.getDialogById(i.id);const s=this._getOverlayConfig(i),a=this._overlay.create(s),l=new J0(a,i),d=this._attachContainer(a,l,i);return l.containerInstance=d,this._attachDialogContent(e,l,d,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(l),l.closed.subscribe(()=>this._removeOpenDialog(l,!0)),this.afterOpened.next(l),l}closeAll(){Q0(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){Q0(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),Q0(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Oh({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const s=o.injector||o.viewContainerRef?.injector,a=[{provide:sg,useValue:o},{provide:J0,useValue:i},{provide:Ah,useValue:e}];let l;o.container?"function"==typeof o.container?l=o.container:(l=o.container.type,a.push(...o.container.providers(o))):l=xL;const d=new Sd(l,o.viewContainerRef,Si.create({parent:s||this._injector,providers:a}),o.componentFactoryResolver);return e.attach(d).instance}_attachDialogContent(e,i,o,s){if(e instanceof mr){const a=this._createInjector(s,i,o,void 0);let l={$implicit:s.data,dialogRef:i};s.templateContext&&(l={...l,..."function"==typeof s.templateContext?s.templateContext():s.templateContext}),o.attachTemplatePortal(new Gl(e,null,l,a))}else{const a=this._createInjector(s,i,o,this._injector),l=o.attachComponentPortal(new Sd(e,s.viewContainerRef,a,s.componentFactoryResolver));i.componentInstance=l.instance}}_createInjector(e,i,o,s){const a=e.injector||e.viewContainerRef?.injector,l=[{provide:Bz,useValue:e.data},{provide:J0,useValue:i}];return e.providers&&("function"==typeof e.providers?l.push(...e.providers(i,e,o)):l.push(...e.providers)),e.direction&&(!a||!a.get(Do,null,{optional:!0}))&&l.push({provide:Do,useValue:{value:e.direction,change:$e()}}),Si.create({parent:a||s,providers:l})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((s,a)=>{s?a.setAttribute("aria-hidden",s):a.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let o=i.length-1;o>-1;o--){const s=i[o];s!==e&&"SCRIPT"!==s.nodeName&&"STYLE"!==s.nodeName&&!s.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(s,s.getAttribute("aria-hidden")),s.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}}return t.\u0275fac=function(e){return new(e||t)(we(io),we(Si),we(Vz,8),we(t,12),we(tg),we(kL))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function Q0(t,n){let e=t.length;for(;e--;)n(t[e])}let Wz=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[SL,zz],imports:[Td,Dd,X0,Dd]}),t})();const $z=["text"];function Gz(t,n){if(1&t&&xe(0,"mat-pseudo-checkbox",6),2&t){const e=z();w("state",e.selected?"checked":"unchecked")("disabled",e.disabled)}}function qz(t,n){1&t&&xe(0,"mat-pseudo-checkbox",7),2&t&&w("disabled",z().disabled)}function Kz(t,n){if(1&t&&(D(0,"span",8),I(1),C()),2&t){const e=z();c(1),ce("(",e.group.label,")")}}const Zz=[[["mat-icon"]],"*"],Xz=["mat-icon","*"],Qz=new Re("mat-sanity-checks",{providedIn:"root",factory:function Jz(){return!0}});let Wn=(()=>{class t{constructor(e,i,o){this._sanityChecks=i,this._document=o,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!F0()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}}return t.\u0275fac=function(e){return new(e||t)(we(CL),we(Qz,8),we(It))},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Th,Th]}),t})();function Ed(t){return class extends t{get disabled(){return this._disabled}set disabled(n){this._disabled=_n(n)}constructor(...n){super(...n),this._disabled=!1}}}function Fh(t,n){return class extends t{get color(){return this._color}set color(e){const i=e||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}constructor(...e){super(...e),this.defaultColor=n,this.color=n}}}function Rh(t){return class extends t{get disableRipple(){return this._disableRipple}set disableRipple(n){this._disableRipple=_n(n)}constructor(...n){super(...n),this._disableRipple=!1}}}function LL(t,n=0){return class extends t{get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(e){this._tabIndex=null!=e?So(e):this.defaultTabIndex}constructor(...e){super(...e),this._tabIndex=n,this.defaultTabIndex=n}}}function EL(t){return class extends t{updateErrorState(){const n=this.errorState,s=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);s!==n&&(this.errorState=s,this.stateChanges.next())}constructor(...n){super(...n),this.errorState=!1}}}let tU=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.dirty||i&&i.submitted))}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),e1=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class nU{constructor(n,e,i,o=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const IL=Za({passive:!0,capture:!0});class iU{constructor(){this._events=new Map,this._delegateEventHandler=n=>{const e=Xa(n);e&&this._events.get(n.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(s=>s.handleEvent(n))})}}addHandler(n,e,i,o){const s=this._events.get(e);if(s){const a=s.get(i);a?a.add(o):s.set(i,new Set([o]))}else this._events.set(e,new Map([[i,new Set([o])]])),n.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,IL)})}removeHandler(n,e,i){const o=this._events.get(n);if(!o)return;const s=o.get(e);s&&(s.delete(i),0===s.size&&o.delete(e),0===o.size&&(this._events.delete(n),document.removeEventListener(n,this._delegateEventHandler,IL)))}}const PL={enterDuration:225,exitDuration:150},OL=Za({passive:!0,capture:!0}),AL=["mousedown","touchstart"],FL=["mouseup","mouseleave","touchend","touchcancel"];class Id{constructor(n,e,i,o){this._target=n,this._ngZone=e,this._platform=o,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,o.isBrowser&&(this._containerElement=la(i))}fadeInRipple(n,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s={...PL,...i.animation};i.centered&&(n=o.left+o.width/2,e=o.top+o.height/2);const a=i.radius||function oU(t,n,e){const i=Math.max(Math.abs(t-e.left),Math.abs(t-e.right)),o=Math.max(Math.abs(n-e.top),Math.abs(n-e.bottom));return Math.sqrt(i*i+o*o)}(n,e,o),l=n-o.left,d=e-o.top,_=s.enterDuration,E=document.createElement("div");E.classList.add("mat-ripple-element"),E.style.left=l-a+"px",E.style.top=d-a+"px",E.style.height=2*a+"px",E.style.width=2*a+"px",null!=i.color&&(E.style.backgroundColor=i.color),E.style.transitionDuration=`${_}ms`,this._containerElement.appendChild(E);const F=window.getComputedStyle(E),ie=F.transitionDuration,_e="none"===F.transitionProperty||"0s"===ie||"0s, 0s"===ie||0===o.width&&0===o.height,Ce=new nU(this,E,i,_e);E.style.transform="scale3d(1, 1, 1)",Ce.state=0,i.persistent||(this._mostRecentTransientRipple=Ce);let Ae=null;return!_e&&(_||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const ze=()=>this._finishRippleTransition(Ce),Ee=()=>this._destroyRipple(Ce);E.addEventListener("transitionend",ze),E.addEventListener("transitioncancel",Ee),Ae={onTransitionEnd:ze,onTransitionCancel:Ee}}),this._activeRipples.set(Ce,Ae),(_e||!_)&&this._finishRippleTransition(Ce),Ce}fadeOutRipple(n){if(2===n.state||3===n.state)return;const e=n.element,i={...PL,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=2,(n._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(n)}fadeOutAll(){this._getActiveRipples().forEach(n=>n.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(n=>{n.config.persistent||n.fadeOut()})}setupTriggerEvents(n){const e=la(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,AL.forEach(i=>{Id._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(n){"mousedown"===n.type?this._onMousedown(n):"touchstart"===n.type?this._onTouchStart(n):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{FL.forEach(e=>{this._triggerElement.addEventListener(e,this,OL)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){0===n.state?this._startFadeOutTransition(n):2===n.state&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=1,!i&&(!e||!this._isPointerDown)&&n.fadeOut()}_destroyRipple(n){const e=this._activeRipples.get(n)??null;this._activeRipples.delete(n),this._activeRipples.size||(this._containerRect=null),n===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),n.state=3,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel)),n.element.remove()}_onMousedown(n){const e=G0(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(1===n.state||n.config.terminateOnPointerUp&&0===n.state)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(AL.forEach(e=>Id._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&FL.forEach(e=>n.removeEventListener(e,this,OL)))}}Id._eventManager=new iU;const t1=new Re("mat-ripple-global-options");let Zl=(()=>{class t{get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}constructor(e,i,o,s,a){this._elementRef=e,this._animationMode=a,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new Id(this,i,e,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,o){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...o}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ft),Y(ui),Y(t1,8),Y(Ri,8))},t.\u0275dir=Ke({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(e,i){2&e&&nn("mat-ripple-unbounded",i.unbounded)},inputs:{color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],radius:["matRippleRadius","radius"],animation:["matRippleAnimation","animation"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"]},exportAs:["matRipple"]}),t})(),Yh=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,Wn]}),t})(),sU=(()=>{class t{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1,this.appearance="full"}}return t.\u0275fac=function(e){return new(e||t)(Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(e,i){2&e&&nn("mat-pseudo-checkbox-indeterminate","indeterminate"===i.state)("mat-pseudo-checkbox-checked","checked"===i.state)("mat-pseudo-checkbox-disabled",i.disabled)("mat-pseudo-checkbox-minimal","minimal"===i.appearance)("mat-pseudo-checkbox-full","full"===i.appearance)("_mat-animation-noopable","NoopAnimations"===i._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(e,i){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-full{border:2px solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0}),t})(),aU=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn]}),t})();const RL=new Re("MAT_OPTION_PARENT_COMPONENT"),NL=new Re("MatOptgroup");let lU=0;class cU{constructor(n,e=!1){this.source=n,this.isUserInput=e}}let dU=(()=>{class t{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=_n(e)}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(e,i,o,s){this._element=e,this._changeDetectorRef=i,this._parent=o,this.group=s,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+lU++,this.onSelectionChange=new ht,this._stateChanges=new J}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}deselect(){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}focus(e,i){const o=this._getHostElement();"function"==typeof o.focus&&o.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!Fs(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new cU(this,e))}}return t.\u0275fac=function(e){Aa()},t.\u0275dir=Ke({type:t,viewQuery:function(e,i){if(1&e&&_t($z,7),2&e){let o;rt(o=ot())&&(i._text=o.first)}},inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}}),t})(),Pd=(()=>{class t extends dU{constructor(e,i,o,s){super(e,i,o,s)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(RL,8),Y(NL,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(e,i){1&e&&ye("click",function(){return i._selectViaInteraction()})("keydown",function(s){return i._handleKeydown(s)}),2&e&&(Js("id",i.id),Xt("aria-selected",i.selected)("aria-disabled",i.disabled.toString()),nn("mdc-list-item--selected",i.selected)("mat-mdc-option-multiple",i.multiple)("mat-mdc-option-active",i.active)("mdc-list-item--disabled",i.disabled))},exportAs:["matOption"],features:[nt],ngContentSelectors:Xz,decls:8,vars:5,consts:[["class","mat-mdc-option-pseudo-checkbox",3,"state","disabled",4,"ngIf"],[1,"mdc-list-item__primary-text"],["text",""],["class","mat-mdc-option-pseudo-checkbox","state","checked","appearance","minimal",3,"disabled",4,"ngIf"],["class","cdk-visually-hidden",4,"ngIf"],["mat-ripple","",1,"mat-mdc-option-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-mdc-option-pseudo-checkbox",3,"state","disabled"],["state","checked","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"]],template:function(e,i){1&e&&(Ir(Zz),V(0,Gz,1,2,"mat-pseudo-checkbox",0),Sn(1),D(2,"span",1,2),Sn(4,1),C(),V(5,qz,1,1,"mat-pseudo-checkbox",3),V(6,Kz,2,1,"span",4),xe(7,"div",5)),2&e&&(w("ngIf",i.multiple),c(5),w("ngIf",!i.multiple&&i.selected&&!i.hideSingleSelectionIndicator),c(1),w("ngIf",i.group&&i.group._inert),c(1),w("matRippleTrigger",i._getHostElement())("matRippleDisabled",i.disabled||i.disableRipple))},dependencies:[Zl,Ft,sU],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option.mdc-list-item{align-items:center}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-active .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0}),t})(),YL=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Yh,ta,Wn,aU]}),t})();function fU(t,n){}class En{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const n1="mdc-dialog--open",HL="mdc-dialog--opening",BL="mdc-dialog--closing";let gU=(()=>{class t extends xL{constructor(e,i,o,s,a,l,d,_){super(e,i,o,s,a,l,d,_),this._animationStateChanged=new ht}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y($0),Y(It,8),Y(En),Y(rg),Y(ft),Y(Ah),Y(Qa))},t.\u0275cmp=Ze({type:t,selectors:[["ng-component"]],features:[nt],decls:0,vars:0,template:function(e,i){},encapsulation:2}),t})();const VL="--mat-dialog-transition-duration";function jL(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?So(t.substring(0,t.length-2)):t.endsWith("s")?1e3*So(t.substring(0,t.length-1)):"0"===t?0:null}let _U=(()=>{class t extends gU{constructor(e,i,o,s,a,l,d,_,E){super(e,i,o,s,a,l,d,E),this._animationMode=_,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._hostElement=this._elementRef.nativeElement,this._openAnimationDuration=this._animationsEnabled?jL(this._config.enterAnimationDuration)??150:0,this._closeAnimationDuration=this._animationsEnabled?jL(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._openAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._closeAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._openAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(VL,`${this._openAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(HL,n1)),this._waitForAnimationToComplete(this._openAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(n1),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._closeAnimationDuration}),this._hostElement.classList.remove(n1),this._animationsEnabled?(this._hostElement.style.setProperty(VL,`${this._openAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(BL)),this._waitForAnimationToComplete(this._closeAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_clearAnimationClasses(){this._hostElement.classList.remove(HL,BL)}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(e):e()})}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y($0),Y(It,8),Y(En),Y(rg),Y(ft),Y(Ah),Y(Ri,8),Y(Qa))},t.\u0275cmp=Ze({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:8,hostBindings:function(e,i){2&e&&(Js("id",i._config.id),Xt("aria-modal",i._config.ariaModal)("role",i._config.role)("aria-labelledby",i._config.ariaLabel?null:i._ariaLabelledBy)("aria-label",i._config.ariaLabel)("aria-describedby",i._config.ariaDescribedBy||null),nn("_mat-animation-noopable",!i._animationsEnabled))},features:[nt],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,fU,0,0,"ng-template",2),C()())},dependencies:[Ja],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;transform:scale(0.8);opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{transform:none;opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{display:block;width:100%;height:100%}.mat-mdc-dialog-container{--mdc-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mdc-dialog-container-shadow-color:#000;--mdc-dialog-container-shape:4px;--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition-duration:var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container{transition:none}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-actions{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2}),t})();class Bn{constructor(n,e,i){this._ref=n,this._containerInstance=i,this._afterOpened=new J,this._beforeClosed=new J,this._state=0,this.disableClose=e.disableClose,this.id=n.id,i._animationStateChanged.pipe(_i(o=>"opened"===o.state),Kn(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(_i(o=>"closed"===o.state),Kn(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),bt(this.backdropClick(),this.keydownEvents().pipe(_i(o=>27===o.keyCode&&!this.disableClose&&!Fs(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),zL(this,"keydown"===o.type?"keyboard":"mouse"))})}close(n){this._result=n,this._containerInstance._animationStateChanged.pipe(_i(e=>"closing"===e.state),Kn(1)).subscribe(e=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(n){let e=this._ref.config.positionStrategy;return n&&(n.left||n.right)?n.left?e.left(n.left):e.right(n.right):e.centerHorizontally(),n&&(n.top||n.bottom)?n.top?e.top(n.top):e.bottom(n.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(n="",e=""){return this._ref.updateSize(n,e),this}addPanelClass(n){return this._ref.addPanelClass(n),this}removePanelClass(n){return this._ref.removePanelClass(n),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function zL(t,n,e){return t._closeInteractionType=n,t.close(e)}const Li=new Re("MatMdcDialogData"),UL=new Re("mat-mdc-dialog-default-options"),WL=new Re("mat-mdc-dialog-scroll-strategy"),vU={provide:WL,deps:[io],useFactory:function bU(t){return()=>t.scrollStrategies.block()}};let yU=0,MU=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(e,i,o,s,a,l,d,_,E,F){this._overlay=e,this._defaultOptions=o,this._parentDialog=s,this._dialogRefConstructor=d,this._dialogContainerType=_,this._dialogDataToken=E,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new J,this._afterOpenedAtThisLevel=new J,this._idPrefix="mat-dialog-",this.dialogConfigClass=En,this.afterAllClosed=jl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Go(void 0))),this._scrollStrategy=l,this._dialog=i.get(SL)}open(e,i){let o;(i={...this._defaultOptions||new En,...i}).id=i.id||`${this._idPrefix}${yU++}`,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const s=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:sg,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(a,l,d)=>(o=new this._dialogRefConstructor(a,i,d),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:d},{provide:this._dialogDataToken,useValue:l.data},{provide:this._dialogRefConstructor,useValue:o}])});return o.componentInstance=s.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{const a=this.openDialogs.indexOf(o);a>-1&&(this.openDialogs.splice(a,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}}return t.\u0275fac=function(e){Aa()},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),In=(()=>{class t extends MU{constructor(e,i,o,s,a,l,d,_){super(e,i,s,l,d,a,Bn,_U,Li,_),this._idPrefix="mat-mdc-dialog-"}}return t.\u0275fac=function(e){return new(e||t)(we(io),we(Si),we(Xu,8),we(UL,8),we(WL),we(t,12),we(tg),we(Ri,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),wU=0,CU=(()=>{class t{constructor(e,i,o){this.dialogRef=e,this._elementRef=i,this._dialog=o,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=$L(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){zL(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn,8),Y(vt),Y(In))},t.\u0275dir=Ke({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(e,i){1&e&&ye("click",function(s){return i._onButtonClick(s)}),2&e&&Xt("aria-label",i.ariaLabel||null)("type",i.type)},inputs:{ariaLabel:["aria-label","ariaLabel"],type:"type",dialogResult:["mat-dialog-close","dialogResult"],_matDialogClose:["matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[Gi]}),t})(),xU=(()=>{class t{constructor(e,i,o){this._dialogRef=e,this._elementRef=i,this._dialog=o,this.id="mat-mdc-dialog-title-"+wU++}ngOnInit(){this._dialogRef||(this._dialogRef=$L(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{const e=this._dialogRef._containerInstance;e&&!e._ariaLabelledBy&&(e._ariaLabelledBy=this.id)})}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn,8),Y(vt),Y(In))},t.\u0275dir=Ke({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(e,i){2&e&&Js("id",i.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]}),t})(),r1=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"]}),t})();function $L(t,n){let e=t.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?n.find(i=>i.id===e.id):null}let kU=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[In,vU],imports:[Wz,Td,Dd,Wn,Wn]}),t})();const qL=["mat-button",""],KL=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],ZL=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],XL=".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}",DU=["mat-icon-button",""],TU=["*"],JL={capture:!0},QL=["focus","click","mouseenter","touchstart"],Hh="mat-button-ripple-uninitialized";let LU=(()=>{class t{constructor(){this._document=Qe(It,{optional:!0}),this._animationMode=Qe(Ri,{optional:!0}),this._globalRippleOptions=Qe(t1,{optional:!0}),this._platform=Qe(ui),this._ngZone=Qe(ft),this._onInteraction=e=>{if(e.target===this._document)return;const o=e.target.closest(`[${Hh}]`);o&&(o.removeAttribute(Hh),this._appendRipple(o))},this._ngZone.runOutsideAngular(()=>{for(const e of QL)this._document?.addEventListener(e,this._onInteraction,JL)})}ngOnDestroy(){for(const e of QL)this._document?.removeEventListener(e,this._onInteraction,JL)}_appendRipple(e){if(!this._document)return;const i=this._document.createElement("span");i.classList.add("mat-mdc-button-ripple");const o=new EU(e,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);o.rippleConfig.centered=e.hasAttribute("mat-icon-button"),new Id(o,this._ngZone,i,this._platform).setupTriggerEvents(e),e.append(i)}_createMatRipple(e){if(!this._document)return;e.querySelector(".mat-mdc-button-ripple")?.remove(),e.removeAttribute(Hh);const i=this._document.createElement("span");i.classList.add("mat-mdc-button-ripple");const o=new Zl(new vt(i),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return o._isInitialized=!0,o.trigger=e,e.append(i),o}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class EU{constructor(n,e,i){this._button=n,this._globalRippleOptions=e,this._setRippleConfig(e,i)}_setRippleConfig(n,e){this.rippleConfig=n||{},"NoopAnimations"===e&&(this.rippleConfig.animation={enterDuration:0,exitDuration:0})}get rippleDisabled(){return this._button.hasAttribute("disabled")||!!this._globalRippleOptions?.disabled}}const IU=[{selector:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{selector:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{selector:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{selector:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{selector:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{selector:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{selector:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],PU=Fh(Ed(Rh(class{constructor(t){this._elementRef=t}})));let o1=(()=>{class t extends PU{get ripple(){return!this._ripple&&this._rippleLoader&&(this._ripple=this._rippleLoader._createMatRipple(this._elementRef.nativeElement)),this._ripple}set ripple(e){this._ripple=e}constructor(e,i,o,s){super(e),this._platform=i,this._ngZone=o,this._animationMode=s,this._focusMonitor=Qe(Qa),this._rippleLoader=Qe(LU),this._isFab=!1;const a=e.nativeElement.classList;for(const l of IU)this._hasHostAttributes(l.selector)&&l.mdcClasses.forEach(d=>{a.add(d)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_hasHostAttributes(...e){return e.some(i=>this._elementRef.nativeElement.hasAttribute(i))}_isRippleDisabled(){this._ripple&&(this._ripple.disabled=this.disableRipple||this.disabled)}}return t.\u0275fac=function(e){Aa()},t.\u0275dir=Ke({type:t,features:[nt]}),t})(),AU=(()=>{class t extends o1{constructor(e,i,o,s){super(e,i,o,s),this._haltDisabledEvents=a=>{this.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}}ngOnInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("click",this._haltDisabledEvents)})}ngOnDestroy(){super.ngOnDestroy(),this._elementRef.nativeElement.removeEventListener("click",this._haltDisabledEvents)}}return t.\u0275fac=function(e){Aa()},t.\u0275dir=Ke({type:t,features:[nt]}),t})(),Wr=(()=>{class t extends o1{constructor(e,i,o,s){super(e,i,o,s)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ui),Y(ft),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostAttrs:["mat-button-ripple-uninitialized",""],hostVars:9,hostBindings:function(e,i){2&e&&(Xt("disabled",i.disabled||null)("mat-button-disabled",i._isRippleDisabled())("mat-button-is-fab",i._isFab),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[nt],attrs:qL,ngContentSelectors:ZL,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(Ir(KL),xe(0,"span",0),Sn(1),D(2,"span",1),Sn(3,1),C(),Sn(4,2),xe(5,"span",2)(6,"span",3)),2&e&&nn("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0}),t})(),FU=(()=>{class t extends AU{constructor(e,i,o,s){super(e,i,o,s)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ui),Y(ft),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostAttrs:["mat-button-ripple-uninitialized",""],hostVars:11,hostBindings:function(e,i){2&e&&(Xt("disabled",i.disabled||null)("tabindex",i.disabled?-1:i.tabIndex)("aria-disabled",i.disabled.toString())("mat-button-disabled",i._isRippleDisabled())("mat-button-is-fab",i._isFab),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[nt],attrs:qL,ngContentSelectors:ZL,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(Ir(KL),xe(0,"span",0),Sn(1),D(2,"span",1),Sn(3,1),C(),Sn(4,2),xe(5,"span",2)(6,"span",3)),2&e&&nn("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',XL],encapsulation:2,changeDetection:0}),t})(),el=(()=>{class t extends o1{get ripple(){return!this._ripple&&this._rippleLoader&&(this._ripple=this._rippleLoader._createMatRipple(this._elementRef.nativeElement),this._ripple.centered=!0),this._ripple}constructor(e,i,o,s){super(e,i,o,s)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ui),Y(ft),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["button","mat-icon-button",""]],hostAttrs:["mat-button-ripple-uninitialized",""],hostVars:9,hostBindings:function(e,i){2&e&&(Xt("disabled",i.disabled||null)("mat-button-disabled",i._isRippleDisabled())("mat-button-is-fab",i._isFab),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[nt],attrs:DU,ngContentSelectors:TU,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(Ir(),xe(0,"span",0),Sn(1),xe(2,"span",1)(3,"span",2))},styles:['.mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',XL],encapsulation:2,changeDetection:0}),t})(),eE=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,Yh,Wn]}),t})();function NU(t,n){if(1&t){const e=et();D(0,"div",2)(1,"button",3),ye("click",function(){return Pe(e),Oe(z().action())}),I(2),C()()}if(2&t){const e=z();c(2),ce(" ",e.data.action," ")}}const YU=["label"];function HU(t,n){}const BU=Math.pow(2,31)-1;class ag{constructor(n,e){this._overlayRef=e,this._afterDismissed=new J,this._afterOpened=new J,this._onAction=new J,this._dismissedByAction=!1,this.containerInstance=n,n._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(n){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(n,BU))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}const s1=new Re("MatSnackBarData");class lg{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}let VU=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]}),t})(),jU=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]}),t})(),zU=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]}),t})(),UU=(()=>{class t{constructor(e,i){this.snackBarRef=e,this.data=i}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}}return t.\u0275fac=function(e){return new(e||t)(Y(ag),Y(s1))},t.\u0275cmp=Ze({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions","",4,"ngIf"],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(e,i){1&e&&(D(0,"div",0),I(1),C(),V(2,NU,3,1,"div",1)),2&e&&(c(1),ce(" ",i.data.message,"\n"),c(1),w("ngIf",i.hasAction))},dependencies:[Ft,Wr,VU,jU,zU],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0}),t})();const WU={snackBarState:ia("state",[yo("void, hidden",Qn({transform:"scale(0.8)",opacity:0})),yo("visible",Qn({transform:"scale(1)",opacity:1})),Pr("* => visible",Ur("150ms cubic-bezier(0, 0, 0.2, 1)")),Pr("* => void, * => hidden",Ur("75ms cubic-bezier(0.4, 0.0, 1, 1)",Qn({opacity:0})))])};let $U=0,GU=(()=>{class t extends Zm{constructor(e,i,o,s,a){super(),this._ngZone=e,this._elementRef=i,this._changeDetectorRef=o,this._platform=s,this.snackBarConfig=a,this._document=Qe(It),this._trackedModals=new Set,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new J,this._onExit=new J,this._onEnter=new J,this._animationState="void",this._liveElementId="mat-snack-bar-container-live-"+$U++,this.attachDomPortal=l=>{this._assertNotAttached();const d=this._portalOutlet.attachDomPortal(l);return this._afterPortalAttached(),d},this._live="assertive"!==a.politeness||a.announcementMessage?"off"===a.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),i}attachTemplatePortal(e){this._assertNotAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),i}onAnimationEnd(e){const{fromState:i,toState:o}=e;if(("void"===o&&"void"!==i||"hidden"===o)&&this._completeExit(),"visible"===o){const s=this._onEnter;this._ngZone.run(()=>{s.next(),s.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe(Kn(1)).subscribe(()=>{this._ngZone.run(()=>{this._onExit.next(),this._onExit.complete()})})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(o=>e.classList.add(o)):e.classList.add(i)),this._exposeToModals()}_exposeToModals(){const e=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{const i=e.getAttribute("aria-owns");if(i){const o=i.replace(this._liveElementId,"").trim();o.length>0?e.setAttribute("aria-owns",o):e.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const e=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(e&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&e.contains(document.activeElement)&&(o=document.activeElement),e.removeAttribute("aria-hidden"),i.appendChild(e),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}}return t.\u0275fac=function(e){return new(e||t)(Y(ft),Y(vt),Y(pi),Y(ui),Y(lg))},t.\u0275dir=Ke({type:t,viewQuery:function(e,i){if(1&e&&_t(Ja,7),2&e){let o;rt(o=ot())&&(i._portalOutlet=o.first)}},features:[nt]}),t})(),qU=(()=>{class t extends GU{_afterPortalAttached(){super._afterPortalAttached();const e=this._label.nativeElement,i="mdc-snackbar__label";e.classList.toggle(i,!e.querySelector(`.${i}`))}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(e,i){if(1&e&&_t(YU,7),2&e){let o;rt(o=ot())&&(i._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container","mdc-snackbar--open"],hostVars:1,hostBindings:function(e,i){1&e&&lv("@state.done",function(s){return i.onAnimationEnd(s)}),2&e&&pv("@state",i._animationState)},features:[nt],decls:6,vars:3,consts:[[1,"mdc-snackbar__surface"],[1,"mat-mdc-snack-bar-label"],["label",""],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1,2)(3,"div",3),V(4,HU,0,0,"ng-template",4),C(),xe(5,"div"),C()()),2&e&&(c(5),Xt("aria-live",i._live)("role",i._role)("id",i._liveElementId))},dependencies:[Ja],styles:['.mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;--mdc-snackbar-container-shape:4px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container{width:100vw}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape)}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size);font-family:var(--mdc-snackbar-supporting-text-font);font-weight:var(--mdc-snackbar-supporting-text-weight);line-height:var(--mdc-snackbar-supporting-text-line-height)}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-snack-bar-button-color);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-container .mdc-snackbar__label::before{display:none}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}'],encapsulation:2,data:{animation:[WU.snackBarState]}}),t})(),tE=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Td,Dd,ta,eE,Wn,Wn]}),t})();const a1=new Re("mat-snack-bar-default-options",{providedIn:"root",factory:function KU(){return new lg}});let ZU=(()=>{class t{get _openedSnackBarRef(){const e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}constructor(e,i,o,s,a,l){this._overlay=e,this._live=i,this._injector=o,this._breakpointObserver=s,this._parentSnackBar=a,this._defaultConfig=l,this._snackBarRefAtThisLevel=null}openFromComponent(e,i){return this._attach(e,i)}openFromTemplate(e,i){return this._attach(e,i)}open(e,i="",o){const s={...this._defaultConfig,...o};return s.data={message:e,action:i},s.announcementMessage===e&&(s.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,s)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,i){const s=Si.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:lg,useValue:i}]}),a=new Sd(this.snackBarContainerComponent,i.viewContainerRef,s),l=e.attach(a);return l.instance.snackBarConfig=i,l.instance}_attach(e,i){const o={...new lg,...this._defaultConfig,...i},s=this._createOverlay(o),a=this._attachSnackBarContainer(s,o),l=new ag(a,s);if(e instanceof mr){const d=new Gl(e,null,{$implicit:o.data,snackBarRef:l});l.instance=a.attachTemplatePortal(d)}else{const d=this._createInjector(o,l),_=new Sd(e,void 0,d),E=a.attachComponentPortal(_);l.instance=E.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(Hn(s.detachments())).subscribe(d=>{s.overlayElement.classList.toggle(this.handsetCssClass,d.matches)}),o.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(l,o),this._openedSnackBarRef=l,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration))}_createOverlay(e){const i=new Oh;i.direction=e.direction;let o=this._overlay.position().global();const s="rtl"===e.direction,a="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!s||"end"===e.horizontalPosition&&s,l=!a&&"center"!==e.horizontalPosition;return a?o.left("0"):l?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}_createInjector(e,i){return Si.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:ag,useValue:i},{provide:s1,useValue:e.data}]})}}return t.\u0275fac=function(e){return new(e||t)(we(io),we(K0),we(Si),we(z0),we(t,12),we(a1))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),XU=(()=>{class t extends ZU{constructor(e,i,o,s,a,l){super(e,i,o,s,a,l),this.simpleSnackBarComponent=UU,this.snackBarContainerComponent=qU,this.handsetCssClass="mat-mdc-snack-bar-handset"}}return t.\u0275fac=function(e){return new(e||t)(we(io),we(K0),we(Si),we(z0),we(t,12),we(a1))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:tE}),t})();function l1(...t){if(1===t.length){const n=t[0];if(M(n))return cg(n,null);if(p(n)&&Object.getPrototypeOf(n)===Object.prototype){const e=Object.keys(n);return cg(e.map(i=>n[i]),e)}}if("function"==typeof t[t.length-1]){const n=t.pop();return cg(t=1===t.length&&M(t[0])?t[0]:t,null).pipe(ke(e=>n(...e)))}return cg(t,null)}function cg(t,n){return new he(e=>{const i=t.length;if(0===i)return void e.complete();const o=new Array(i);let s=0,a=0;for(let l=0;l{_||(_=!0,a++),o[l]=E},error:E=>e.error(E),complete:()=>{s++,(s===i||!_)&&(a===i&&e.next(n?n.reduce((E,F,G)=>(E[F]=o[G],E),{}):o),e.complete())}}))}})}const JU=["*"];let dg;function Bh(t){return function QU(){if(void 0===dg&&(dg=null,typeof window<"u")){const t=window;void 0!==t.trustedTypes&&(dg=t.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return dg}()?.createHTML(t)||t}function nE(t){return Error(`Unable to find icon with the name "${t}"`)}function iE(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function rE(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class Xl{constructor(n,e,i){this.url=n,this.svgText=e,this.options=i}}let ug=(()=>{class t{constructor(e,i,o,s){this._httpClient=e,this._sanitizer=i,this._errorHandler=s,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=o}addSvgIcon(e,i,o){return this.addSvgIconInNamespace("",e,i,o)}addSvgIconLiteral(e,i,o){return this.addSvgIconLiteralInNamespace("",e,i,o)}addSvgIconInNamespace(e,i,o,s){return this._addSvgIconConfig(e,i,new Xl(o,null,s))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,s){const a=this._sanitizer.sanitize(kn.HTML,o);if(!a)throw rE(o);const l=Bh(a);return this._addSvgIconConfig(e,i,new Xl("",l,s))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,o){return this._addSvgIconSetConfig(e,new Xl(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const s=this._sanitizer.sanitize(kn.HTML,i);if(!s)throw rE(i);const a=Bh(s);return this._addSvgIconSetConfig(e,new Xl("",a,o))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){const i=this._sanitizer.sanitize(kn.RESOURCE_URL,e);if(!i)throw iE(e);const o=this._cachedIconsByUrl.get(i);return o?$e(hg(o)):this._loadSvgIconFromConfig(new Xl(e,null)).pipe(bi(s=>this._cachedIconsByUrl.set(i,s)),ke(s=>hg(s)))}getNamedSvgIcon(e,i=""){const o=oE(i,e);let s=this._svgIconConfigs.get(o);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(i,e),s)return this._svgIconConfigs.set(o,s),this._getSvgFromConfig(s);const a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):Ar(nE(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?$e(hg(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(ke(i=>hg(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?$e(o):l1(i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Co(l=>{const _=`Loading icon set URL: ${this._sanitizer.sanitize(kn.RESOURCE_URL,a.url)} failed: ${l.message}`;return this._errorHandler.handleError(new Error(_)),$e(null)})))).pipe(ke(()=>{const a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw nE(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let o=i.length-1;o>=0;o--){const s=i[o];if(s.svgText&&s.svgText.toString().indexOf(e)>-1){const a=this._svgElementFromConfig(s),l=this._extractSvgIconFromSet(a,e,s.options);if(l)return l}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(bi(i=>e.svgText=i),ke(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?$e(null):this._fetchIcon(e).pipe(bi(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const s=e.querySelector(`[id="${i}"]`);if(!s)return null;const a=s.cloneNode(!0);if(a.removeAttribute("id"),"svg"===a.nodeName.toLowerCase())return this._setSvgAttributes(a,o);if("symbol"===a.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(a),o);const l=this._svgElementFromString(Bh(""));return l.appendChild(a),this._setSvgAttributes(l,o)}_svgElementFromString(e){const i=this._document.createElement("DIV");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}_toSvgElement(e){const i=this._svgElementFromString(Bh("")),o=e.attributes;for(let s=0;sBh(_)),km(()=>this._inProgressUrlFetches.delete(a)),dl());return this._inProgressUrlFetches.set(a,d),d}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(oE(e,i),o),this}_addSvgIconSetConfig(e,i){const o=this._iconSetConfigs.get(e);return o?o.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){const i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let o=0;on?n.pathname+n.search:""}}}),sE=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],aW=sE.map(t=>`[${t}]`).join(", "),lW=/^url\(['"]?#(.*?)['"]?\)$/;let Cn=(()=>{class t extends iW{get inline(){return this._inline}set inline(e){this._inline=_n(e)}get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}constructor(e,i,o,s,a,l){super(e),this._iconRegistry=i,this._location=s,this._errorHandler=a,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=T.EMPTY,l&&(l.color&&(this.color=this.defaultColor=l.color),l.fontSet&&(this.fontSet=l.fontSet)),o||e.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];const i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const e=this._elementsWithExternalReferences;if(e&&e.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){const e=this._elementRef.nativeElement;let i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const o=e.childNodes[i];(1!==o.nodeType||"svg"===o.nodeName.toLowerCase())&&o.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(o=>o.length>0);this._previousFontSetClass.forEach(o=>e.classList.remove(o)),i.forEach(o=>e.classList.add(o)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return"string"==typeof e?e.trim().split(" ")[0]:e}_prependPathToReferences(e){const i=this._elementsWithExternalReferences;i&&i.forEach((o,s)=>{o.forEach(a=>{s.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(aW),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s{const l=i[s],d=l.getAttribute(a),_=d?d.match(lW):null;if(_){let E=o.get(l);E||(E=[],o.set(l,E)),E.push({name:a,value:_[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){const[i,o]=this._splitIconName(e);i&&(this._svgNamespace=i),o&&(this._svgName=o),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(o,i).pipe(Kn(1)).subscribe(s=>this._setSvgElement(s),s=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${s.message}`))})}}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ug),Pa("aria-hidden"),Y(oW),Y(Ss),Y(rW,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(e,i){2&e&&(Xt("data-mat-icon-type",i._usingFontIcon()?"font":"svg")("data-mat-icon-name",i._svgName||i.fontIcon)("data-mat-icon-namespace",i._svgNamespace||i.fontSet)("fontIcon",i._usingFontIcon()?i.fontIcon:null),nn("mat-icon-inline",i.inline)("mat-icon-no-color","primary"!==i.color&&"accent"!==i.color&&"warn"!==i.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[nt],ngContentSelectors:JU,decls:1,vars:0,template:function(e,i){1&e&&(Ir(),Sn(0))},styles:[".mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0}),t})(),cW=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,Wn]}),t})();function Vh(t){return(Vh="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(t)}function Lt(t,n,e){return(n=function uW(t){var n=function dW(t,n){if("object"!==Vh(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,n||"default");if("object"!==Vh(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(t,"string");return"symbol"===Vh(n)?n:String(n)}(n))in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function aE(t,n,e){let i;return i=t&&"object"==typeof t?t:{bufferSize:t,windowTime:n,refCount:!1,scheduler:e},o=>o.lift(function hW({bufferSize:t=Number.POSITIVE_INFINITY,windowTime:n=Number.POSITIVE_INFINITY,refCount:e,scheduler:i}){let o,a,s=0,l=!1,d=!1;return function(E){let F;s++,!o||l?(l=!1,o=new ko(t,n,i),F=o.subscribe(this),a=E.subscribe({next(G){o.next(G)},error(G){l=!0,o.error(G)},complete(){d=!0,a=void 0,o.complete()}}),d&&(a=void 0)):F=o.subscribe(this),this.add(()=>{s--,F.unsubscribe(),F=void 0,a&&!d&&e&&0===s&&(a.unsubscribe(),a=void 0,o=void 0)})}}(i))}class jh{}let lE=(()=>{class t extends jh{getTranslation(e){return $e({})}}return Lt(t,"\u0275fac",function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}()),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})();class c1{}let cE=(()=>{class t{handle(e){return e.key}}return Lt(t,"\u0275fac",function(e){return new(e||t)}),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})();function fg(t,n){if(t===n)return!0;if(null===t||null===n)return!1;if(t!=t&&n!=n)return!0;let o,s,a,e=typeof t;if(e==typeof n&&"object"==e){if(!Array.isArray(t)){if(Array.isArray(n))return!1;for(s in a=Object.create(null),t){if(!fg(t[s],n[s]))return!1;a[s]=!0}for(s in n)if(!(s in a)&&typeof n[s]<"u")return!1;return!0}if(!Array.isArray(n))return!1;if((o=t.length)==n.length){for(s=0;s{d1(n[i])?i in t?e[i]=dE(t[i],n[i]):Object.assign(e,{[i]:n[i]}):Object.assign(e,{[i]:n[i]})}),e}class pg{}let uE=(()=>{class t extends pg{constructor(...e){super(...e),Lt(this,"templateMatcher",/{{\s?([^{}\s]*)\s?}}/g)}interpolate(e,i){let o;return o="string"==typeof e?this.interpolateString(e,i):"function"==typeof e?this.interpolateFunction(e,i):e,o}getValue(e,i){let o="string"==typeof i?i.split("."):[i];i="";do{i+=o.shift(),!tl(e)||!tl(e[i])||"object"!=typeof e[i]&&o.length?o.length?i+=".":e=void 0:(e=e[i],i="")}while(o.length);return e}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(o,s)=>{let a=this.getValue(i,s);return tl(a)?a:o}):e}}return Lt(t,"\u0275fac",function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}()),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})();class mg{}let hE=(()=>{class t extends mg{compile(e,i){return e}compileTranslations(e,i){return e}}return Lt(t,"\u0275fac",function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}()),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})();class fE{constructor(){Lt(this,"defaultLang",void 0),Lt(this,"currentLang",this.defaultLang),Lt(this,"translations",{}),Lt(this,"langs",[]),Lt(this,"onTranslationChange",new ht),Lt(this,"onLangChange",new ht),Lt(this,"onDefaultLangChange",new ht)}}const u1=new Re("USE_STORE"),h1=new Re("USE_DEFAULT_LANG"),f1=new Re("DEFAULT_LANGUAGE"),p1=new Re("USE_EXTEND");let To=(()=>{class t{get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(e){this.isolate?this._defaultLang=e:this.store.defaultLang=e}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(e){this.isolate?this._currentLang=e:this.store.currentLang=e}get langs(){return this.isolate?this._langs:this.store.langs}set langs(e){this.isolate?this._langs=e:this.store.langs=e}get translations(){return this.isolate?this._translations:this.store.translations}set translations(e){this.isolate?this._translations=e:this.store.translations=e}constructor(e,i,o,s,a,l=!0,d=!1,_=!1,E){Lt(this,"store",void 0),Lt(this,"currentLoader",void 0),Lt(this,"compiler",void 0),Lt(this,"parser",void 0),Lt(this,"missingTranslationHandler",void 0),Lt(this,"useDefaultLang",void 0),Lt(this,"isolate",void 0),Lt(this,"extend",void 0),Lt(this,"loadingTranslations",void 0),Lt(this,"pending",!1),Lt(this,"_onTranslationChange",new ht),Lt(this,"_onLangChange",new ht),Lt(this,"_onDefaultLangChange",new ht),Lt(this,"_defaultLang",void 0),Lt(this,"_currentLang",void 0),Lt(this,"_langs",[]),Lt(this,"_translations",{}),Lt(this,"_translationRequests",{}),this.store=e,this.currentLoader=i,this.compiler=o,this.parser=s,this.missingTranslationHandler=a,this.useDefaultLang=l,this.isolate=d,this.extend=_,E&&this.setDefaultLang(E)}setDefaultLang(e){if(e===this.defaultLang)return;let i=this.retrieveTranslations(e);typeof i<"u"?(null==this.defaultLang&&(this.defaultLang=e),i.pipe(Kn(1)).subscribe(o=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(e===this.currentLang)return $e(this.translations[e]);let i=this.retrieveTranslations(e);return typeof i<"u"?(this.currentLang||(this.currentLang=e),i.pipe(Kn(1)).subscribe(o=>{this.changeLang(e)}),i):(this.changeLang(e),$e(this.translations[e]))}retrieveTranslations(e){let i;return(typeof this.translations[e]>"u"||this.extend)&&(this._translationRequests[e]=this._translationRequests[e]||this.getTranslation(e),i=this._translationRequests[e]),i}getTranslation(e){this.pending=!0;const i=this.currentLoader.getTranslation(e).pipe(aE(1),Kn(1));return this.loadingTranslations=i.pipe(ke(o=>this.compiler.compileTranslations(o,e)),aE(1),Kn(1)),this.loadingTranslations.subscribe({next:o=>{this.translations[e]=this.extend&&this.translations[e]?{...o,...this.translations[e]}:o,this.updateLangs(),this.pending=!1},error:o=>{this.pending=!1}}),i}setTranslation(e,i,o=!1){i=this.compiler.compileTranslations(i,e),this.translations[e]=(o||this.extend)&&this.translations[e]?dE(this.translations[e],i):i,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){e.forEach(i=>{-1===this.langs.indexOf(i)&&this.langs.push(i)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(e,i,o){let s;if(i instanceof Array){let a={},l=!1;for(let d of i)a[d]=this.getParsedResult(e,d,o),za(a[d])&&(l=!0);return l?l1(i.map(_=>za(a[_])?a[_]:$e(a[_]))).pipe(ke(_=>{let E={};return _.forEach((F,G)=>{E[i[G]]=F}),E})):a}if(e&&(s=this.parser.interpolate(this.parser.getValue(e,i),o)),typeof s>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(s=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],i),o)),typeof s>"u"){let a={key:i,translateService:this};typeof o<"u"&&(a.interpolateParams=o),s=this.missingTranslationHandler.handle(a)}return typeof s<"u"?s:i}get(e,i){if(!tl(e)||!e.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe(Bl(o=>za(o=this.getParsedResult(o,e,i))?o:$e(o)));{let o=this.getParsedResult(this.translations[this.currentLang],e,i);return za(o)?o:$e(o)}}getStreamOnTranslationChange(e,i){if(!tl(e)||!e.length)throw new Error('Parameter "key" required');return Ua(jl(()=>this.get(e,i)),this.onTranslationChange.pipe(gr(o=>{const s=this.getParsedResult(o.translations,e,i);return"function"==typeof s.subscribe?s:$e(s)})))}stream(e,i){if(!tl(e)||!e.length)throw new Error('Parameter "key" required');return Ua(jl(()=>this.get(e,i)),this.onLangChange.pipe(gr(o=>{const s=this.getParsedResult(o.translations,e,i);return za(s)?s:$e(s)})))}instant(e,i){if(!tl(e)||!e.length)throw new Error('Parameter "key" required');let o=this.getParsedResult(this.translations[this.currentLang],e,i);if(za(o)){if(e instanceof Array){let s={};return e.forEach((a,l)=>{s[e[l]]=e[l]}),s}return e}return o}set(e,i,o=this.currentLang){this.translations[o][e]=this.compiler.compile(i,o),this.updateLangs(),this.onTranslationChange.emit({lang:o,translations:this.translations[o]})}changeLang(e){this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),null==this.defaultLang&&this.changeDefaultLang(e)}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.getTranslation(e)}resetLang(e){this._translationRequests[e]=void 0,this.translations[e]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let e=window.navigator.languages?window.navigator.languages[0]:null;return e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof e>"u"?void 0:(-1!==e.indexOf("-")&&(e=e.split("-")[0]),-1!==e.indexOf("_")&&(e=e.split("_")[0]),e)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let e=window.navigator.languages?window.navigator.languages[0]:null;return e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,e}}return Lt(t,"\u0275fac",function(e){return new(e||t)(we(fE),we(jh),we(mg),we(pg),we(c1),we(h1),we(u1),we(p1),we(f1))}),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})(),wt=(()=>{class t{constructor(e,i){Lt(this,"translate",void 0),Lt(this,"_ref",void 0),Lt(this,"value",""),Lt(this,"lastKey",null),Lt(this,"lastParams",[]),Lt(this,"onTranslationChange",void 0),Lt(this,"onLangChange",void 0),Lt(this,"onDefaultLangChange",void 0),this.translate=e,this._ref=i}updateValue(e,i,o){let s=a=>{this.value=void 0!==a?a:e,this.lastKey=e,this._ref.markForCheck()};if(o){let a=this.translate.getParsedResult(o,e,i);za(a.subscribe)?a.subscribe(s):s(a)}this.translate.get(e,i).subscribe(s)}transform(e,...i){if(!e||!e.length)return e;if(fg(e,this.lastKey)&&fg(i,this.lastParams))return this.value;let o;if(tl(i[0])&&i.length)if("string"==typeof i[0]&&i[0].length){let s=i[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{o=JSON.parse(s)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${i[0]}`)}}else"object"==typeof i[0]&&!Array.isArray(i[0])&&(o=i[0]);return this.lastKey=e,this.lastParams=i,this.updateValue(e,o),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(s=>{this.lastKey&&s.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(e,o,s.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(s=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o,s.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}}return Lt(t,"\u0275fac",function(e){return new(e||t)(Y(To,16),Y(pi,16))}),Lt(t,"\u0275pipe",ur({name:"translate",type:t,pure:!1})),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})(),pE=(()=>{class t{static forRoot(e={}){return{ngModule:t,providers:[e.loader||{provide:jh,useClass:lE},e.compiler||{provide:mg,useClass:hE},e.parser||{provide:pg,useClass:uE},e.missingTranslationHandler||{provide:c1,useClass:cE},fE,{provide:u1,useValue:e.isolate},{provide:h1,useValue:e.useDefaultLang},{provide:p1,useValue:e.extend},{provide:f1,useValue:e.defaultLanguage},To]}}static forChild(e={}){return{ngModule:t,providers:[e.loader||{provide:jh,useClass:lE},e.compiler||{provide:mg,useClass:hE},e.parser||{provide:pg,useClass:uE},e.missingTranslationHandler||{provide:c1,useClass:cE},{provide:u1,useValue:e.isolate},{provide:h1,useValue:e.useDefaultLang},{provide:p1,useValue:e.extend},{provide:f1,useValue:e.defaultLanguage},To]}}}return Lt(t,"\u0275fac",function(e){return new(e||t)}),Lt(t,"\u0275mod",Ht({type:t})),Lt(t,"\u0275inj",Nt({})),t})();function fW(t,n){if(1&t&&(D(0,"div",5)(1,"mat-icon",6),I(2),C()()),2&t){const e=z();c(1),w("inline",!0),c(1),se(e.config.icon)}}function pW(t,n){if(1&t&&(D(0,"div",7),I(1),R(2,"translate"),R(3,"translate"),C()),2&t){const e=z();c(1),vo(" ",H(2,2,"common.error")," ",kt(3,4,e.config.smallText,e.config.smallTextTranslationParams)," ")}}var ca=(()=>((ca=ca||{}).Error="error",ca.Done="done",ca.Warning="warning",ca))(),da=(()=>((da=da||{}).Red="red-background",da.Green="green-background",da.Yellow="yellow-background",da))();let mW=(()=>{class t{constructor(e,i){this.snackbarRef=i,this.config=e}close(){this.snackbarRef.dismiss()}}return t.\u0275fac=function(e){return new(e||t)(Y(s1),Y(ag))},t.\u0275cmp=Ze({type:t,selectors:[["app-snack-bar"]],decls:9,vars:8,consts:[["class","icon-container",4,"ngIf"],[1,"text-container"],["class","second-line",4,"ngIf"],[1,"close-button-separator"],[1,"close-button",3,"click"],[1,"icon-container"],[3,"inline"],[1,"second-line"]],template:function(e,i){1&e&&(D(0,"div"),V(1,fW,3,2,"div",0),D(2,"div",1),I(3),R(4,"translate"),V(5,pW,4,7,"div",2),C(),xe(6,"div",3),D(7,"mat-icon",4),ye("click",function(){return i.close()}),I(8,"close"),C()()),2&e&&(eo("main-container "+i.config.color),c(1),w("ngIf",i.config.icon),c(2),ce(" ",kt(4,5,i.config.text,i.config.textTranslationParams)," "),c(2),w("ngIf",i.config.smallText))},dependencies:[Ft,Cn,wt],styles:['.cursor-pointer[_ngcontent-%COMP%], .close-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.main-container[_ngcontent-%COMP%]{width:100%;display:flex;color:#fff;padding:15px;border-radius:5px}.red-background[_ngcontent-%COMP%]{background-color:#ea0606}.green-background[_ngcontent-%COMP%]{background-color:#1fb11f}.yellow-background[_ngcontent-%COMP%]{background-color:#f90}.icon-container[_ngcontent-%COMP%]{margin-right:10px;position:relative;top:1px}.text-container[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;font-size:1rem;word-break:break-word}.text-container[_ngcontent-%COMP%] .second-line[_ngcontent-%COMP%]{font-size:.8rem;opacity:.9}.close-button-separator[_ngcontent-%COMP%]{width:1px;margin-right:10px;background-color:#0000004d}.close-button[_ngcontent-%COMP%]{opacity:.7}.close-button[_ngcontent-%COMP%]:hover{opacity:1}mat-icon[_ngcontent-%COMP%]{position:relative;top:1px;-webkit-user-select:none;user-select:none}']}),t})(),Dn=(()=>{class t{constructor(e){this.snackBar=e,this.lastWasTemporaryError=!1}showError(e,i=null,o=!1,s=null,a=null){e=en(e),s=s?en(s):null,this.lastWasTemporaryError=o,this.show(e.translatableErrorMsg,i,s?s.translatableErrorMsg:null,a,ca.Error,da.Red,15e3)}showWarning(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,ca.Warning,da.Yellow,15e3)}showDone(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,ca.Done,da.Green,5e3)}closeCurrent(){this.snackBar.dismiss()}closeCurrentIfTemporaryError(){this.lastWasTemporaryError&&this.snackBar.dismiss()}show(e,i,o,s,a,l,d){this.snackBar.openFromComponent(mW,{duration:d,panelClass:"snackbar-container",data:{text:e,textTranslationParams:i,smallText:o,smallTextTranslationParams:s,icon:a,color:l}})}}return t.\u0275fac=function(e){return new(e||t)(we(XU))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const Vt={maxShortListElements:5,maxFullListElements:40,connectionRetryDelay:5e3,languages:[{code:"en",name:"English",iconName:"en.png"},{code:"es",name:"Espa\xf1ol",iconName:"es.png"},{code:"de",name:"Deutsch",iconName:"de.png"},{code:"pt",name:"Portugu\xeas (Brazil)",iconName:"pt.png"}],defaultLanguage:"en",smallModalWidth:"480px",mediumModalWidth:"640px",largeModalWidth:"900px",vpn:{hardcodedIpWhileDeveloping:!1}};class gW{constructor(n){Object.assign(this,n)}}let gg=(()=>{class t{constructor(e){this.translate=e,this.currentLanguage=new ko(1),this.languages=new ko(1),this.storageKey="lang",this.languagesInternal=[],this.settingsLoaded=!1}loadLanguageSettings(){if(this.settingsLoaded)return;this.settingsLoaded=!0;const e=[];Vt.languages.forEach(i=>{const o=new gW(i);this.languagesInternal.push(o),e.push(o.code)}),this.languages.next(this.languagesInternal),this.translate.addLangs(e),this.translate.setDefaultLang(Vt.defaultLanguage),this.translate.onLangChange.subscribe(i=>this.onLanguageChanged(i)),this.loadCurrentLanguage()}changeLanguage(e){this.translate.use(e)}onLanguageChanged(e){this.currentLanguage.next(this.languagesInternal.find(i=>i.code===e.lang)),localStorage.setItem(this.storageKey,e.lang)}loadCurrentLanguage(){let e=localStorage.getItem(this.storageKey);e=e||Vt.defaultLanguage,setTimeout(()=>this.translate.use(e),16)}}return t.\u0275fac=function(e){return new(e||t)(we(To))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const _W={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)};class m1 extends Te{constructor(n,e){if(super(),n instanceof he)this.destination=e,this.source=n;else{const i=this._config=Object.assign({},_W);if(this._output=new J,"string"==typeof n)i.url=n;else for(let o in n)n.hasOwnProperty(o)&&(i[o]=n[o]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new ko}}lift(n){const e=new m1(this._config,this.destination);return e.operator=n,e.source=this,e}_resetState(){this._socket=null,this.source||(this.destination=new ko),this._output=new J}multiplex(n,e,i){const o=this;return new he(s=>{try{o.next(n())}catch(l){s.error(l)}const a=o.subscribe(l=>{try{i(l)&&s.next(l)}catch(d){s.error(d)}},l=>s.error(l),()=>s.complete());return()=>{try{o.next(e())}catch(l){s.error(l)}a.unsubscribe()}})}_connectSocket(){const{WebSocketCtor:n,protocol:e,url:i,binaryType:o}=this._config,s=this._output;let a=null;try{a=e?new n(i,e):new n(i),this._socket=a,o&&(this._socket.binaryType=o)}catch(d){return void s.error(d)}const l=new T(()=>{this._socket=null,a&&1===a.readyState&&a.close()});a.onopen=d=>{const{_socket:_}=this;if(!_)return a.close(),void this._resetState();const{openObserver:E}=this._config;E&&E.next(d);const F=this.destination;this.destination=A.create(G=>{if(1===a.readyState)try{const{serializer:ie}=this._config;a.send(ie(G))}catch(ie){this.destination.error(ie)}},G=>{const{closingObserver:ie}=this._config;ie&&ie.next(void 0),G&&G.code?a.close(G.code,G.reason):s.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),this._resetState()},()=>{const{closingObserver:G}=this._config;G&&G.next(void 0),a.close(),this._resetState()}),F&&F instanceof ko&&l.add(F.subscribe(this.destination))},a.onerror=d=>{this._resetState(),s.error(d)},a.onclose=d=>{this._resetState();const{closeObserver:_}=this._config;_&&_.next(d),d.wasClean?s.complete():s.error(d)},a.onmessage=d=>{try{const{deserializer:_}=this._config;s.next(_(d))}catch(_){s.error(_)}}}_subscribe(n){const{source:e}=this;return e?e.subscribe(n):(this._socket||this._connectSocket(),this._output.subscribe(n),n.add(()=>{const{_socket:i}=this;0===this._output.observers.length&&(i&&1===i.readyState&&i.close(),this._resetState())}),n)}unsubscribe(){const{_socket:n}=this;n&&1===n.readyState&&n.close(),this._resetState(),super.unsubscribe()}}var nl=(()=>((nl=nl||{}).Json="json",nl.Text="text",nl))(),Jl=(()=>((Jl=Jl||{}).Json="json",Jl))();class Ql{constructor(n){this.responseType=nl.Json,this.requestType=Jl.Json,this.ignoreAuth=!1,Object.assign(this,n)}}let il=(()=>{class t{constructor(e,i,o){this.http=e,this.router=i,this.ngZone=o,this.apiPrefix="api/",this.wsApiPrefix="api/"}get(e,i=null){return this.request("GET",e,{},i)}post(e,i={},o=null){return this.request("POST",e,i,o)}put(e,i={},o=null){return this.request("PUT",e,i,o)}delete(e,i=null){return this.request("DELETE",e,{},i)}ws(e,i={}){const a=function vW(t){return new m1(t)}((location.protocol.startsWith("https")?"wss://":"ws://")+location.host+"/"+this.wsApiPrefix+e);return a.next(i),a}request(e,i,o,s){return o=o||{},s=s||new Ql,i.startsWith("/")&&(i=i.substr(1,i.length-1)),this.http.request(e,this.apiPrefix+i,{...this.getRequestOptions(s),responseType:s.responseType,withCredentials:!0,body:this.getPostBody(o,s)}).pipe(ke(a=>this.successHandler(a)),Co(a=>this.errorHandler(a,s)))}getRequestOptions(e){const i={};return i.headers=new rs,e.requestType===Jl.Json&&(i.headers=i.headers.append("Content-Type","application/json")),i}getPostBody(e,i){if(i.requestType===Jl.Json)return JSON.stringify(e);const o=new FormData;return Object.keys(e).forEach(s=>o.append(s,e[s])),o}successHandler(e){if("string"==typeof e&&"manager token is null"===e)throw new Error(e);return e}errorHandler(e,i){if(!i.ignoreAuth){if(401===e.status){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}if(e.error&&"string"==typeof e.error&&e.error.includes("change password")){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}}return Ar(en(e))}}return t.\u0275fac=function(e){return new(e||t)(we(Vl),we(hn),we(ft))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const yW=["determinateSpinner"];function MW(t,n){if(1&t&&(wl(),D(0,"svg",11),xe(1,"circle",12),C()),2&t){const e=z();Xt("viewBox",e._viewBox()),c(1),Pl("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Xt("r",e._circleRadius())}}const wW=Fh(class{constructor(t){this._elementRef=t}},"primary"),CW=new Re("mat-progress-spinner-default-options",{providedIn:"root",factory:function xW(){return{diameter:mE}}}),mE=100;let ec=(()=>{class t extends wW{constructor(e,i,o){super(e),this.mode="mat-spinner"===this._elementRef.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",this._value=0,this._diameter=mE,this._noopAnimations="NoopAnimations"===i&&!!o&&!o._forceAnimations,o&&(o.color&&(this.color=this.defaultColor=o.color),o.diameter&&(this.diameter=o.diameter),o.strokeWidth&&(this.strokeWidth=o.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,So(e)))}get diameter(){return this._diameter}set diameter(e){this._diameter=So(e)}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=So(e)}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(Ri,8),Y(CW))},t.\u0275cmp=Ze({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(e,i){if(1&e&&_t(yW,5),2&e){let o;rt(o=ot())&&(i._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:16,hostBindings:function(e,i){2&e&&(Xt("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===i.mode?i.value:null)("mode",i.mode),Pl("width",i.diameter,"px")("height",i.diameter,"px")("--mdc-circular-progress-size",i.diameter+"px")("--mdc-circular-progress-active-indicator-width",i.diameter+"px"),nn("_mat-animation-noopable",i._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===i.mode))},inputs:{color:"color",mode:"mode",value:"value",diameter:"diameter",strokeWidth:"strokeWidth"},exportAs:["matProgressSpinner"],features:[nt],decls:14,vars:11,consts:[["circle",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["determinateSpinner",""],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(e,i){if(1&e&&(V(0,MW,2,8,"ng-template",null,0,Es),D(2,"div",1,2),wl(),D(4,"svg",3),xe(5,"circle",4),C()(),zf(),D(6,"div",5)(7,"div",6)(8,"div",7),Jo(9,8),C(),D(10,"div",9),Jo(11,8),C(),D(12,"div",10),Jo(13,8),C()()()),2&e){const o=ci(1);c(4),Xt("viewBox",i._viewBox()),c(1),Pl("stroke-dasharray",i._strokeCircumference(),"px")("stroke-dashoffset",i._strokeDashOffset(),"px")("stroke-width",i._circleStrokeWidth(),"%"),Xt("r",i._circleRadius()),c(4),w("ngTemplateOutlet",o),c(2),w("ngTemplateOutlet",o),c(2),w("ngTemplateOutlet",o)}},dependencies:[hd],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0}),t})(),SW=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[ta,Wn]}),t})();const DW=function(t){return{"white-theme":t}};let as=(()=>{class t{constructor(){this.showWhite=!0}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-loading-indicator"]],inputs:{showWhite:"showWhite"},decls:2,vars:4,consts:[[1,"container",3,"ngClass"],[3,"diameter"]],template:function(e,i){1&e&&(D(0,"div",0),xe(1,"mat-spinner",1),C()),2&e&&(w("ngClass",He(2,DW,i.showWhite)),c(1),w("diameter",50))},dependencies:[Nn,ec],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex}.container[_ngcontent-%COMP%]{width:100%;align-self:center;display:flex;flex-direction:column;align-items:center}.container[_ngcontent-%COMP%] > mat-spinner[_ngcontent-%COMP%]{opacity:.5}"]}),t})();function TW(t,n){1&t&&(D(0,"div",5)(1,"div"),xe(2,"img",6),D(3,"div"),I(4),R(5,"translate"),C()()()),2&t&&(c(4),se(H(5,1,"common.window-size-error")))}function LW(t,n){1&t&&xe(0,"router-outlet")}function EW(t,n){1&t&&xe(0,"app-loading-indicator",7)}const IW=function(t){return{background:t}};let g1=(()=>{class t{constructor(e,i,o,s,a,l){this.storage=e,this.snackbarService=s,this.languageService=a,this.apiService=l,this.inVpnClient=!1,this.inLoginPage=!1,this.hypervisorPkObtained=!1,this.pkErrorShown=!1,this.pkErrorsFound=0,t.currentInstance=this,o.afterOpened.subscribe(()=>s.closeCurrent()),history.scrollRestoration&&(history.scrollRestoration="manual"),i.events.subscribe(d=>{d instanceof Ga&&(s.closeCurrent(),o.closeAll())}),o.afterAllClosed.subscribe(()=>s.closeCurrentIfTemporaryError()),i.events.subscribe(d=>{if(this.inVpnClient=i.url.includes("/vpn/")||i.url.includes("vpnlogin"),d.url){const _=this.inLoginPage;this.inLoginPage=d.url.includes("login"),_&&!this.inLoginPage&&!this.hypervisorPkObtained&&this.checkHypervisorPk(0)}i.url.length>2&&(document.title=this.inVpnClient?"Skywire VPN":"Skywire Manager")}),this.languageService.loadLanguageSettings(),this.checkHypervisorPk(0)}processLoginDone(){this.inLoginPage=!1,this.hypervisorPkObtained||this.checkHypervisorPk(0)}checkHypervisorPk(e){this.obtainPkSubscription&&this.obtainPkSubscription.unsubscribe(),this.obtainPkSubscription=$e(1).pipe(Ti(e),Ye(()=>this.apiService.get("about"))).subscribe(i=>{i.public_key?(this.finishStartup(i.public_key),this.hypervisorPkObtained=!0):(this.pkErrorShown||(this.snackbarService.showError("start.loading-error",null,!0),this.pkErrorShown=!0),this.checkHypervisorPk(1e3))},i=>{if(this.pkErrorsFound+=1,this.pkErrorsFound>4&&!this.pkErrorShown){const o=en(i);this.snackbarService.showError("start.loading-error",null,!0,o),this.pkErrorShown=!0}this.inLoginPage||this.checkHypervisorPk(1e3)})}finishStartup(e){this.storage.initialize(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Ji),Y(hn),Y(In),Y(Dn),Y(gg),Y(il))},t.\u0275cmp=Ze({type:t,selectors:[["app-root"]],decls:5,vars:6,consts:[["class","size-alert d-md-none",4,"ngIf"],[1,"flex-1","content","container-fluid"],[3,"ngClass"],[4,"ngIf"],["class","h-100",4,"ngIf"],[1,"size-alert","d-md-none"],["src","assets/img/size-alert.png"],[1,"h-100"]],template:function(e,i){1&e&&(V(0,TW,6,3,"div",0),D(1,"div",1),xe(2,"div",2),V(3,LW,1,0,"router-outlet",3),V(4,EW,1,0,"app-loading-indicator",4),C()),2&e&&(w("ngIf",i.inVpnClient),c(2),w("ngClass",He(4,IW,i.inVpnClient)),c(1),w("ngIf",i.hypervisorPkObtained||i.inLoginPage),c(1),w("ngIf",!i.hypervisorPkObtained&&!i.inLoginPage))},dependencies:[Nn,Ft,Am,as,wt],styles:[".size-alert[_ngcontent-%COMP%]{background-color:#000000d9;position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#fff}.size-alert[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin:0 40px;max-width:400px}[_nghost-%COMP%]{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;height:100%}.content[_ngcontent-%COMP%]{padding:20px!important}.background[_ngcontent-%COMP%]{background-image:url(/assets/img/map.png);background-size:cover;background-position:center;opacity:.1;width:100%;height:100%;top:0;left:0;position:fixed}"]}),t})(),Uh=(()=>{class t{set forceFail(e){this.forceFailInternal=e}constructor(e){this.router=e,this.forceFailInternal=!1}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.forceFailInternal?(this.router.navigate(["login"],{replaceUrl:!0}),$e(!1)):$e(!0)}}return t.\u0275fac=function(e){return new(e||t)(we(hn))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var Fr=(()=>((Fr=Fr||{})[Fr.AuthDisabled=0]="AuthDisabled",Fr[Fr.Logged=1]="Logged",Fr[Fr.NotLogged=2]="NotLogged",Fr))();let Wh=(()=>{class t{constructor(e,i,o){this.apiService=e,this.translateService=i,this.authGuardService=o}login(e){return this.apiService.post("login",{username:"admin",password:e},new Ql({ignoreAuth:!0})).pipe(bi(i=>{if(!0!==i)throw new Error;this.authGuardService.forceFail=!1}))}checkLogin(){return this.apiService.get("user",new Ql({ignoreAuth:!0})).pipe(ke(e=>e.username?Fr.Logged:Fr.AuthDisabled),Co(e=>(e=en(e)).originalError&&401===e.originalError.status?(this.authGuardService.forceFail=!0,$e(Fr.NotLogged)):Ar(e)))}logout(){return this.apiService.post("logout",{}).pipe(bi(e=>{if(!0!==e)throw new Error;this.authGuardService.forceFail=!0}))}changePassword(e,i){return this.apiService.post("change-password",{old_password:e,new_password:i},new Ql({responseType:nl.Text,ignoreAuth:!0})).pipe(ke(o=>{if("string"==typeof o&&"true"===o.trim())return!0;throw"Please do not change the default password."===o?new Error(this.translateService.instant("settings.password.errors.default-password")):new Error(this.translateService.instant("common.operation-error"))}),Co(o=>((o=en(o)).originalError&&401===o.originalError.status&&(o.translatableErrorMsg="settings.password.errors.bad-old-password"),Ar(o))))}initialConfig(e){return this.apiService.post("create-account",{username:"admin",password:e},new Ql({responseType:nl.Text,ignoreAuth:!0})).pipe(ke(i=>{if("string"==typeof i&&"true"===i.trim())return!0;throw new Error(i)}),Co(i=>((i=en(i)).originalError&&500===i.originalError.status&&(i.translatableErrorMsg="settings.password.initial-config.error"),Ar(i))))}}return t.\u0275fac=function(e){return new(e||t)(we(il),we(To),we(Uh))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class PW{}class er{constructor(){this.persistentScrollPosKey="scroll-pos"}ngOnInit(){let n=this.getLocalValue(this.persistentScrollPosKey);n=n?n.value:"0",window.scrollTo(0,Number(n)),setTimeout(()=>window.scrollTo(0,Number(n)),1)}saveScrollPosition(n){this.saveLocalValue(this.persistentScrollPosKey,window.scrollY+"")}saveLocalValue(n,e){const i=window.history.state;i[n]=e,i[n+"_time"]=(new Date).getTime(),window.history.replaceState(i,"",window.location.pathname+window.location.hash)}getLocalValue(n){if(!window.history.state||void 0===window.history.state[n])return null;const e=new PW;return e.value=window.history.state[n],e.date=window.history.state[n+"_time"],e}}er.mustCallNgOnInitSuper=Symbol("You must call super.ngOnInit."),er.\u0275fac=function(n){return new(n||er)},er.\u0275cmp=Ze({type:er,selectors:[["app-page-base"]],hostBindings:function(n,e){1&n&&ye("scroll",function(o){return e.saveScrollPosition(o)},0,Vb)},decls:0,vars:0,template:function(n,e){},encapsulation:2});let OW=(()=>{class t extends er{constructor(e,i){super(),this.authService=e,this.router=i}ngOnInit(){return this.verificationSubscription=this.authService.checkLogin().subscribe(e=>{this.router.navigate(e!==Fr.NotLogged?["nodes"]:["login"],{replaceUrl:!0})},()=>{this.router.navigate(["nodes"],{replaceUrl:!0})}),super.ngOnInit()}ngOnDestroy(){this.verificationSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(Wh),Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-start"]],features:[nt],decls:2,vars:0,consts:[[1,"h-100","w-100"]],template:function(e,i){1&e&&(D(0,"div",0),xe(1,"app-loading-indicator"),C())},dependencies:[as]}),t})(),gE=(()=>{class t{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Ks),Y(vt))},t.\u0275dir=Ke({type:t}),t})(),tc=(()=>{class t extends gE{}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275dir=Ke({type:t,features:[nt]}),t})();const ls=new Re("NgValueAccessor"),FW={provide:ls,useExisting:pn(()=>Bi),multi:!0},NW=new Re("CompositionEventMode");let Bi=(()=>{class t extends gE{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function RW(){const t=Ya()?Ya().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Ks),Y(vt),Y(NW,8))},t.\u0275dir=Ke({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(e,i){1&e&&ye("input",function(s){return i._handleInput(s.target.value)})("blur",function(){return i.onTouched()})("compositionstart",function(){return i._compositionStart()})("compositionend",function(s){return i._compositionEnd(s.target.value)})},features:[un([FW]),nt]}),t})();function rl(t){return null==t||("string"==typeof t||Array.isArray(t))&&0===t.length}function bE(t){return null!=t&&"number"==typeof t.length}const wr=new Re("NgValidators"),ol=new Re("NgAsyncValidators"),YW=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[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])?)*$/;class Gt{static min(n){return function vE(t){return n=>{if(rl(n.value)||rl(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(rl(n.value)||rl(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}(n)}static required(n){return function ME(t){return rl(t.value)?{required:!0}:null}(n)}static requiredTrue(n){return function wE(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function CE(t){return rl(t.value)||YW.test(t.value)?null:{email:!0}}(n)}static minLength(n){return function xE(t){return n=>rl(n.value)||!bE(n.value)?null:n.value.length{if(rl(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(n)}static nullValidator(n){return null}static compose(n){return PE(n)}static composeAsync(n){return OE(n)}}function kE(t){return n=>bE(n.value)&&n.value.length>t?{maxlength:{requiredLength:t,actualLength:n.value.length}}:null}function _g(t){return null}function DE(t){return null!=t}function TE(t){return Hu(t)?ue(t):t}function LE(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function EE(t,n){return n.map(e=>e(t))}function IE(t){return t.map(n=>function HW(t){return!t.validate}(n)?n:e=>n.validate(e))}function PE(t){if(!t)return null;const n=t.filter(DE);return 0==n.length?null:function(e){return LE(EE(e,n))}}function _1(t){return null!=t?PE(IE(t)):null}function OE(t){if(!t)return null;const n=t.filter(DE);return 0==n.length?null:function(e){return l1(EE(e,n).map(TE)).pipe(ke(LE))}}function b1(t){return null!=t?OE(IE(t)):null}function AE(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function FE(t){return t._rawValidators}function RE(t){return t._rawAsyncValidators}function v1(t){return t?Array.isArray(t)?t:[t]:[]}function bg(t,n){return Array.isArray(t)?t.includes(n):t===n}function NE(t,n){const e=v1(n);return v1(t).forEach(o=>{bg(e,o)||e.push(o)}),e}function YE(t,n){return v1(n).filter(e=>!bg(t,e))}class HE{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=_1(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=b1(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,e){return!!this.control&&this.control.hasError(n,e)}getError(n,e){return this.control?this.control.getError(n,e):null}}class $r extends HE{get formDirective(){return null}get path(){return null}}class Rs extends HE{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class BE{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let Vi=(()=>{class t extends BE{constructor(e){super(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Rs,2))},t.\u0275dir=Ke({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,i){2&e&&nn("ng-untouched",i.isUntouched)("ng-touched",i.isTouched)("ng-pristine",i.isPristine)("ng-dirty",i.isDirty)("ng-valid",i.isValid)("ng-invalid",i.isInvalid)("ng-pending",i.isPending)},features:[nt]}),t})(),ji=(()=>{class t extends BE{constructor(e){super(e)}}return t.\u0275fac=function(e){return new(e||t)(Y($r,10))},t.\u0275dir=Ke({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(e,i){2&e&&nn("ng-untouched",i.isUntouched)("ng-touched",i.isTouched)("ng-pristine",i.isPristine)("ng-dirty",i.isDirty)("ng-valid",i.isValid)("ng-invalid",i.isInvalid)("ng-pending",i.isPending)("ng-submitted",i.isSubmitted)},features:[nt]}),t})();const $h="VALID",yg="INVALID",Od="PENDING",Gh="DISABLED";function w1(t){return(Mg(t)?t.validators:t)||null}function C1(t,n){return(Mg(n)?n.asyncValidators:t)||null}function Mg(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function jE(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new Fe(1e3,"");if(!i[e])throw new Fe(1001,"")}function zE(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new Fe(1002,"")})}class wg{constructor(n,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===$h}get invalid(){return this.status===yg}get pending(){return this.status==Od}get disabled(){return this.status===Gh}get enabled(){return this.status!==Gh}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(NE(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(NE(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(YE(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(YE(n,this._rawAsyncValidators))}hasValidator(n){return bg(this._rawValidators,n)}hasAsyncValidator(n){return bg(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Od,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Gh,this.errors=null,this._forEachChild(i=>{i.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=$h,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===$h||this.status===Od)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Gh:$h}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Od,this._hasOwnPendingAsyncValidator=!0;const e=TE(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent)}get(n){let e=n;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(n,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[n]:null}hasError(n,e){return!!this.getError(n,e)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new ht,this.statusChanges=new ht}_calculateStatus(){return this._allControlsDisabled()?Gh:this.errors?yg:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Od)?Od:this._anyControlsHaveStatus(yg)?yg:$h}_anyControlsHaveStatus(n){return this._anyControls(e=>e.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Mg(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function zW(t){return Array.isArray(t)?_1(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function UW(t){return Array.isArray(t)?b1(t):t||null}(this._rawAsyncValidators)}}class Ad extends wg{constructor(n,e,i){super(w1(e),C1(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,e){return this.controls[n]?this.controls[n]:(this.controls[n]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(n,e,i={}){this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,e={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(n,e,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],e&&this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,e={}){zE(this,0,n),Object.keys(n).forEach(i=>{jE(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(Object.keys(n).forEach(i=>{const o=this.controls[i];o&&o.patchValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n={},e={}){this._forEachChild((i,o)=>{i.reset(n[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(n,e,i)=>(n[i]=e.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&n(i,e)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&n(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(n,e){let i=n;return this._forEachChild((o,s)=>{i=e(i,o,s)}),i}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}const UE=Ad;class WE extends Ad{}const nc=new Re("CallSetDisabledState",{providedIn:"root",factory:()=>qh}),qh="always";function Cg(t,n){return[...n.path,t]}function Kh(t,n,e=qh){x1(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function $W(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&$E(t,n)})}(t,n),function qW(t,n){const e=(i,o)=>{n.valueAccessor.writeValue(i),o&&n.viewToModelUpdate(i)};t.registerOnChange(e),n._registerOnDestroy(()=>{t._unregisterOnChange(e)})}(t,n),function GW(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&$E(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function WW(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function xg(t,n,e=!0){const i=()=>{};n.valueAccessor&&(n.valueAccessor.registerOnChange(i),n.valueAccessor.registerOnTouched(i)),Sg(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function kg(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function x1(t,n){const e=FE(t);null!==n.validator?t.setValidators(AE(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=RE(t);null!==n.asyncValidator?t.setAsyncValidators(AE(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();kg(n._rawValidators,o),kg(n._rawAsyncValidators,o)}function Sg(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=FE(t);if(Array.isArray(o)&&o.length>0){const s=o.filter(a=>a!==n.validator);s.length!==o.length&&(e=!0,t.setValidators(s))}}if(null!==n.asyncValidator){const o=RE(t);if(Array.isArray(o)&&o.length>0){const s=o.filter(a=>a!==n.asyncValidator);s.length!==o.length&&(e=!0,t.setAsyncValidators(s))}}}const i=()=>{};return kg(n._rawValidators,i),kg(n._rawAsyncValidators,i),e}function $E(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function GE(t,n){x1(t,n)}function qE(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}const QW={provide:$r,useExisting:pn(()=>Xh)},Zh=(()=>Promise.resolve())();let Xh=(()=>{class t extends $r{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new ht,this.form=new Ad({},_1(e),b1(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){Zh.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Kh(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){Zh.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){Zh.then(()=>{const i=this._findContainer(e.path),o=new Ad({});GE(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){Zh.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){Zh.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,qE(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}}return t.\u0275fac=function(e){return new(e||t)(Y(wr,10),Y(ol,10),Y(nc,8))},t.\u0275dir=Ke({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(e,i){1&e&&ye("submit",function(s){return i.onSubmit(s)})("reset",function(){return i.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[un([QW]),nt]}),t})();function KE(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function ZE(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const Fd=class extends wg{constructor(n=null,e,i){super(w1(e),C1(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Mg(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=ZE(n)?n.value:n)}setValue(n,e={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(n,e={}){this.setValue(n,e)}reset(n=this.defaultValue,e={}){this._applyFormState(n),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){KE(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){KE(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){ZE(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},Dg=Fd;let XE=(()=>{class t extends $r{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Cg(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275dir=Ke({type:t,features:[nt]}),t})(),zi=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),t})(),nI=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})();const T1=new Re("NgModelWithFormControlWarning"),l$={provide:$r,useExisting:pn(()=>ii)};let ii=(()=>{class t extends $r{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new ht,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Sg(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Kh(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){xg(e.control||null,e,!1),function JW(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,qE(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(xg(i||null,e),(t=>t instanceof Fd)(o)&&(Kh(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);GE(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function KW(t,n){return Sg(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){x1(this.form,this),this._oldForm&&Sg(this._oldForm,this)}_checkFormPresent(){}}return t.\u0275fac=function(e){return new(e||t)(Y(wr,10),Y(ol,10),Y(nc,8))},t.\u0275dir=Ke({type:t,selectors:[["","formGroup",""]],hostBindings:function(e,i){1&e&&ye("submit",function(s){return i.onSubmit(s)})("reset",function(){return i.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[un([l$]),nt,Gi]}),t})();const c$={provide:$r,useExisting:pn(()=>Jh)};let Jh=(()=>{class t extends XE{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){sI(this._parent)}}return t.\u0275fac=function(e){return new(e||t)(Y($r,13),Y(wr,10),Y(ol,10))},t.\u0275dir=Ke({type:t,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[un([c$]),nt]}),t})();const d$={provide:$r,useExisting:pn(()=>Qh)};let Qh=(()=>{class t extends $r{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Cg(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){sI(this._parent)}}return t.\u0275fac=function(e){return new(e||t)(Y($r,13),Y(wr,10),Y(ol,10))},t.\u0275dir=Ke({type:t,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[un([d$]),nt]}),t})();function sI(t){return!(t instanceof Jh||t instanceof ii||t instanceof Qh)}const u$={provide:Rs,useExisting:pn(()=>Ei)};let Ei=(()=>{class t extends Rs{set isDisabled(e){}constructor(e,i,o,s,a){super(),this._ngModelWarningConfig=a,this._added=!1,this.name=null,this.update=new ht,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=function D1(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(s=>{s.constructor===Bi?e=s:function XW(t){return Object.getPrototypeOf(t.constructor)===tc}(s)?i=s:o=s}),o||i||e||null}(0,s)}ngOnChanges(e){this._added||this._setUpControl(),function S1(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Cg(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}}return t._ngModelWarningSentOnce=!1,t.\u0275fac=function(e){return new(e||t)(Y($r,13),Y(wr,10),Y(ol,10),Y(ls,10),Y(T1,8))},t.\u0275dir=Ke({type:t,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[un([u$]),nt,Gi]}),t})();let ic=(()=>{class t{constructor(){this._validator=_g}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):_g,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,features:[Gi]}),t})();const x$={provide:wr,useExisting:pn(()=>Cr),multi:!0};let Cr=(()=>{class t extends ic{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>function cI(t){return"number"==typeof t?t:parseInt(t,10)}(e),this.createValidator=e=>kE(e)}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275dir=Ke({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(e,i){2&e&&Xt("maxlength",i._enabled?i.maxlength:null)},inputs:{maxlength:"maxlength"},features:[un([x$]),nt]}),t})(),gI=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[nI]}),t})();class _I extends wg{constructor(n,e,i){super(w1(e),C1(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){this.controls.push(n),this._registerControl(n),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(n,e,i={}){this.controls.splice(n,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(n,e={}){let i=this._adjustIndex(n);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(n,e,i={}){let o=this._adjustIndex(n);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(n,e={}){zE(this,0,n),n.forEach((i,o)=>{jE(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(n.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n=[],e={}){this._forEachChild((i,o)=>{i.reset(n[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(n=>n.getRawValue())}clear(n={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:n.emitEvent}))}_adjustIndex(n){return n<0?n+this.length:n}_syncPendingControls(){let n=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){this.controls.forEach((e,i)=>{n(e,i)})}_updateValue(){this.value=this.controls.filter(n=>n.enabled||this.disabled).map(n=>n.value)}_anyControls(n){return this.controls.some(e=>e.enabled&&n(e))}_setUpControls(){this._forEachChild(n=>this._registerControl(n))}_allControlsDisabled(){for(const n of this.controls)if(n.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(n){n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)}_find(n){return this.at(n)??null}}function bI(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let vI=(()=>{class t{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new t;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let s={};return bI(i)?s=i:null!==i&&(s.validators=i.validator,s.asyncValidators=i.asyncValidator),new Ad(o,s)}record(e,i=null){const o=this._reduceControls(e);return new WE(o,i)}control(e,i,o){let s={};return this.useNonNullable?(bI(i)?s=i:(s.validators=i,s.asyncValidators=o),new Fd(e,{...s,nonNullable:!0})):new Fd(e,i,o)}array(e,i,o){const s=e.map(a=>this._createControl(a));return new _I(s,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof Fd||e instanceof wg?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),xr=(()=>{class t extends vI{group(e,i=null){return super.group(e,i)}control(e,i,o){return super.control(e,i,o)}array(e,i,o){return super.array(e,i,o)}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),S$=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:nc,useValue:e.callSetDisabledState??qh}]}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[gI]}),t})(),D$=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:T1,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:nc,useValue:e.callSetDisabledState??qh}]}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[gI]}),t})();const T$=["matFormFieldNotchedOutline",""],L$=["*"],E$=["textField"],I$=["iconPrefixContainer"],P$=["textPrefixContainer"];function O$(t,n){1&t&&xe(0,"span",19)}function A$(t,n){if(1&t){const e=et();D(0,"label",17),ye("cdkObserveContent",function(){return Pe(e),Oe(z(2)._refreshOutlineNotchWidth())}),Sn(1,1),V(2,O$,1,0,"span",18),C()}if(2&t){const e=z(2);w("floating",e._shouldLabelFloat())("cdkObserveContentDisabled",!e._hasOutline())("id",e._labelId),Xt("for",e._control.id)("aria-owns",e._control.id),c(2),w("ngIf",!e.hideRequiredMarker&&e._control.required)}}function F$(t,n){1&t&&V(0,A$,3,6,"label",16),2&t&&w("ngIf",z()._hasFloatingLabel())}function R$(t,n){1&t&&xe(0,"div",20)}function N$(t,n){}function Y$(t,n){1&t&&V(0,N$,0,0,"ng-template",22),2&t&&(z(2),w("ngTemplateOutlet",ci(1)))}function H$(t,n){if(1&t&&(D(0,"div",21),V(1,Y$,1,1,"ng-template",9),C()),2&t){const e=z();w("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat())("matFormFieldNotchedOutlineLabelWidth",e._labelWidth),c(1),w("ngIf",!e._forceDisplayInfixLabel())}}function B$(t,n){1&t&&(D(0,"div",23,24),Sn(2,2),C())}function V$(t,n){1&t&&(D(0,"div",25,26),Sn(2,3),C())}function j$(t,n){}function z$(t,n){1&t&&V(0,j$,0,0,"ng-template",22),2&t&&(z(),w("ngTemplateOutlet",ci(1)))}function U$(t,n){1&t&&(D(0,"div",27),Sn(1,4),C())}function W$(t,n){1&t&&(D(0,"div",28),Sn(1,5),C())}function $$(t,n){1&t&&xe(0,"div",29)}function G$(t,n){1&t&&(D(0,"div",30),Sn(1,6),C()),2&t&&w("@transitionMessages",z()._subscriptAnimationState)}function q$(t,n){if(1&t&&(D(0,"mat-hint",34),I(1),C()),2&t){const e=z(2);w("id",e._hintLabelId),c(1),se(e.hintLabel)}}function K$(t,n){if(1&t&&(D(0,"div",31),V(1,q$,2,2,"mat-hint",32),Sn(2,7),xe(3,"div",33),Sn(4,8),C()),2&t){const e=z();w("@transitionMessages",e._subscriptAnimationState),c(1),w("ngIf",e.hintLabel)}}const Z$=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],X$=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];let yI=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["mat-label"]]}),t})(),J$=0;const MI=new Re("MatError");let sl=(()=>{class t{constructor(e,i){this.id="mat-mdc-error-"+J$++,e||i.nativeElement.setAttribute("aria-live","polite")}}return t.\u0275fac=function(e){return new(e||t)(Pa("aria-live"),Y(vt))},t.\u0275dir=Ke({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(e,i){2&e&&Js("id",i.id)},inputs:{id:"id"},features:[un([{provide:MI,useExisting:t}])]}),t})(),Q$=0,wI=(()=>{class t{constructor(){this.align="start",this.id="mat-mdc-hint-"+Q$++}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(e,i){2&e&&(Js("id",i.id),Xt("align",null),nn("mat-mdc-form-field-hint-end","end"===i.align))},inputs:{align:"align",id:"id"}}),t})();const eG=new Re("MatPrefix"),tG=new Re("MatSuffix");let CI=(()=>{class t{constructor(e){this._elementRef=e,this.floating=!1}getWidth(){return function nG(t){if(null!==t.offsetParent)return t.scrollWidth;const e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}}return t.\u0275fac=function(e){return new(e||t)(Y(vt))},t.\u0275dir=Ke({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(e,i){2&e&&nn("mdc-floating-label--float-above",i.floating)},inputs:{floating:"floating"}}),t})();const xI="mdc-line-ripple--active",Tg="mdc-line-ripple--deactivating";let kI=(()=>{class t{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=o=>{const s=this._elementRef.nativeElement.classList,a=s.contains(Tg);"opacity"===o.propertyName&&a&&s.remove(xI,Tg)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(Tg),e.add(xI)}deactivate(){this._elementRef.nativeElement.classList.add(Tg)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ft))},t.\u0275dir=Ke({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]}),t})(),SI=(()=>{class t{constructor(e,i){this._elementRef=e,this._ngZone=i,this.labelWidth=0,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_getNotchWidth(){return this.open?this.labelWidth>0?`calc(${this.labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:"0px":null}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ft))},t.\u0275cmp=Ze({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(e,i){2&e&&nn("mdc-notched-outline--notched",i.open)},inputs:{labelWidth:["matFormFieldNotchedOutlineLabelWidth","labelWidth"],open:["matFormFieldNotchedOutlineOpen","open"]},attrs:T$,ngContentSelectors:L$,decls:4,vars:2,consts:[[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],[1,"mdc-notched-outline__trailing"]],template:function(e,i){1&e&&(Ir(),xe(0,"div",0),D(1,"div",1),Sn(2),C(),xe(3,"div",2)),2&e&&(c(1),Pl("width",i._getNotchWidth()))},encapsulation:2,changeDetection:0}),t})();const iG={transitionMessages:ia("transitionMessages",[yo("enter",Qn({opacity:1,transform:"translateY(0%)"})),Pr("void => enter",[Qn({opacity:0,transform:"translateY(-5px)"}),Ur("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let O1=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t}),t})();const A1=new Re("MatFormField"),rG=new Re("MAT_FORM_FIELD_DEFAULT_OPTIONS");let DI=0,ar=(()=>{class t{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=_n(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._refreshOutlineNotchWidth(),this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}constructor(e,i,o,s,a,l,d,_){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=s,this._platform=a,this._defaults=l,this._animationMode=d,this._document=_,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+DI++,this._hintLabelId="mat-mdc-hint-"+DI++,this._subscriptAnimationState="",this._labelWidth=0,this._destroyed=new J,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,l&&(l.appearance&&(this.appearance=l.appearance),this._hideRequiredMarker=!!l?.hideRequiredMarker,l.color&&(this.color=l.color))}ngAfterViewInit(){this._updateFocusState(),this._refreshOutlineNotchWidth(),this._document?.fonts?.ready?this._document.fonts.ready.then(()=>{this._refreshOutlineNotchWidth(),this._changeDetectorRef.markForCheck()}):setTimeout(()=>this._refreshOutlineNotchWidth(),100),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(Hn(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),bt(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(Hn(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(Hn(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||(this._labelWidth=this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(s=>"start"===s.align):null,o=this._hintChildren?this._hintChildren.find(s=>"end"===s.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),o&&e.push(o.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,o=this._textPrefixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=o?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${s+a}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(ft),Y(Do),Y(ui),Y(rG,8),Y(Ri,8),Y(It))},t.\u0275cmp=Ze({type:t,selectors:[["mat-form-field"]],contentQueries:function(e,i,o){if(1&e&&(or(o,yI,5),or(o,yI,7),or(o,O1,5),or(o,eG,5),or(o,tG,5),or(o,MI,5),or(o,wI,5)),2&e){let s;rt(s=ot())&&(i._labelChildNonStatic=s.first),rt(s=ot())&&(i._labelChildStatic=s.first),rt(s=ot())&&(i._formFieldControl=s.first),rt(s=ot())&&(i._prefixChildren=s),rt(s=ot())&&(i._suffixChildren=s),rt(s=ot())&&(i._errorChildren=s),rt(s=ot())&&(i._hintChildren=s)}},viewQuery:function(e,i){if(1&e&&(_t(E$,5),_t(I$,5),_t(P$,5),_t(CI,5),_t(SI,5),_t(kI,5)),2&e){let o;rt(o=ot())&&(i._textField=o.first),rt(o=ot())&&(i._iconPrefixContainer=o.first),rt(o=ot())&&(i._textPrefixContainer=o.first),rt(o=ot())&&(i._floatingLabel=o.first),rt(o=ot())&&(i._notchedOutline=o.first),rt(o=ot())&&(i._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(e,i){2&e&&nn("mat-mdc-form-field-label-always-float",i._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",i._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",i._hasIconSuffix)("mat-form-field-invalid",i._control.errorState)("mat-form-field-disabled",i._control.disabled)("mat-form-field-autofilled",i._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===i._animationMode)("mat-form-field-appearance-fill","fill"==i.appearance)("mat-form-field-appearance-outline","outline"==i.appearance)("mat-form-field-hide-placeholder",i._hasFloatingLabel()&&!i._shouldLabelFloat())("mat-focused",i._control.focused)("mat-primary","accent"!==i.color&&"warn"!==i.color)("mat-accent","accent"===i.color)("mat-warn","warn"===i.color)("ng-untouched",i._shouldForward("untouched"))("ng-touched",i._shouldForward("touched"))("ng-pristine",i._shouldForward("pristine"))("ng-dirty",i._shouldForward("dirty"))("ng-valid",i._shouldForward("valid"))("ng-invalid",i._shouldForward("invalid"))("ng-pending",i._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[un([{provide:A1,useExisting:t}])],ngContentSelectors:X$,decls:18,vars:23,consts:[["labelTemplate",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],["textField",""],["class","mat-mdc-form-field-focus-overlay",4,"ngIf"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen","matFormFieldNotchedOutlineLabelWidth",4,"ngIf"],["class","mat-mdc-form-field-icon-prefix",4,"ngIf"],["class","mat-mdc-form-field-text-prefix",4,"ngIf"],[1,"mat-mdc-form-field-infix"],[3,"ngIf"],["class","mat-mdc-form-field-text-suffix",4,"ngIf"],["class","mat-mdc-form-field-icon-suffix",4,"ngIf"],["matFormFieldLineRipple","",4,"ngIf"],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align",3,"ngSwitch"],["class","mat-mdc-form-field-error-wrapper",4,"ngSwitchCase"],["class","mat-mdc-form-field-hint-wrapper",4,"ngSwitchCase"],["matFormFieldFloatingLabel","",3,"floating","cdkObserveContentDisabled","id","cdkObserveContent",4,"ngIf"],["matFormFieldFloatingLabel","",3,"floating","cdkObserveContentDisabled","id","cdkObserveContent"],["aria-hidden","true","class","mat-mdc-form-field-required-marker mdc-floating-label--required",4,"ngIf"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-focus-overlay"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen","matFormFieldNotchedOutlineLabelWidth"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-icon-prefix"],["iconPrefixContainer",""],[1,"mat-mdc-form-field-text-prefix"],["textPrefixContainer",""],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id",4,"ngIf"],[1,"mat-mdc-form-field-hint-spacer"],[3,"id"]],template:function(e,i){1&e&&(Ir(Z$),V(0,F$,1,1,"ng-template",null,0,Es),D(2,"div",1,2),ye("click",function(s){return i._control.onContainerClick(s)}),V(4,R$,1,0,"div",3),D(5,"div",4),V(6,H$,2,3,"div",5),V(7,B$,3,0,"div",6),V(8,V$,3,0,"div",7),D(9,"div",8),V(10,z$,1,1,"ng-template",9),Sn(11),C(),V(12,U$,2,0,"div",10),V(13,W$,2,0,"div",11),C(),V(14,$$,1,0,"div",12),C(),D(15,"div",13),V(16,G$,2,1,"div",14),V(17,K$,5,2,"div",15),C()),2&e&&(c(2),nn("mdc-text-field--filled",!i._hasOutline())("mdc-text-field--outlined",i._hasOutline())("mdc-text-field--no-label",!i._hasFloatingLabel())("mdc-text-field--disabled",i._control.disabled)("mdc-text-field--invalid",i._control.errorState),c(2),w("ngIf",!i._hasOutline()&&!i._control.disabled),c(2),w("ngIf",i._hasOutline()),c(1),w("ngIf",i._hasIconPrefix),c(1),w("ngIf",i._hasTextPrefix),c(2),w("ngIf",!i._hasOutline()||i._forceDisplayInfixLabel()),c(2),w("ngIf",i._hasTextSuffix),c(1),w("ngIf",i._hasIconSuffix),c(1),w("ngIf",!i._hasOutline()),c(1),nn("mat-mdc-form-field-subscript-dynamic-size","dynamic"===i.subscriptSizing),w("ngSwitch",i._getDisplayedMessages()),c(1),w("ngSwitchCase","error"),c(1),w("ngSwitchCase","hint"))},dependencies:[Ft,hd,eh,my,dL,wI,CI,SI,kI],styles:['.mdc-text-field{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px * 2)}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{line-height:normal;pointer-events:all}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}'],encapsulation:2,data:{animation:[iG.transitionMessages]},changeDetection:0}),t})(),Lg=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,ta,j0,Wn]}),t})();const EI=Za({passive:!0});let aG=(()=>{class t{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return oa;const i=la(e),o=this._monitoredElements.get(i);if(o)return o.subject;const s=new J,a="cdk-text-field-autofilled",l=d=>{"cdk-text-field-autofill-start"!==d.animationName||i.classList.contains(a)?"cdk-text-field-autofill-end"===d.animationName&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>s.next({target:d.target,isAutofilled:!1}))):(i.classList.add(a),this._ngZone.run(()=>s.next({target:d.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",l,EI),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:s,unlisten:()=>{i.removeEventListener("animationstart",l,EI)}}),s}stopMonitoring(e){const i=la(e),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}}return t.\u0275fac=function(e){return new(e||t)(we(ui),we(ft))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),lG=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})();const cG=new Re("MAT_INPUT_VALUE_ACCESSOR"),dG=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let uG=0;const hG=EL(class{constructor(t,n,e,i){this._defaultErrorStateMatcher=t,this._parentForm=n,this._parentFormGroup=e,this.ngControl=i,this.stateChanges=new J}});let kr=(()=>{class t extends hG{get disabled(){return this._disabled}set disabled(e){this._disabled=_n(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(Gt.required)??!1}set required(e){this._required=_n(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&K2().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=_n(e)}constructor(e,i,o,s,a,l,d,_,E,F){super(l,s,a,o),this._elementRef=e,this._platform=i,this._autofillMonitor=_,this._formField=F,this._uid="mat-input-"+uG++,this.focused=!1,this.stateChanges=new J,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(_e=>K2().has(_e)),this._iOSKeyupListener=_e=>{const Ce=_e.target;!Ce.value&&0===Ce.selectionStart&&0===Ce.selectionEnd&&(Ce.setSelectionRange(1,1),Ce.setSelectionRange(0,0))};const G=this._elementRef.nativeElement,ie=G.nodeName.toLowerCase();this._inputValueAccessor=d||G,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&E.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===ie,this._isTextarea="textarea"===ie,this._isInFormField=!!F,this._isNativeSelect&&(this.controlType=G.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){dG.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ui),Y(Rs,10),Y(Xh,8),Y(ii,8),Y(e1),Y(cG,10),Y(aG),Y(ft),Y(A1,8))},t.\u0275dir=Ke({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(e,i){1&e&&ye("focus",function(){return i._focusChanged(!0)})("blur",function(){return i._focusChanged(!1)})("input",function(){return i._onInput()}),2&e&&(Js("id",i.id)("disabled",i.disabled)("required",i.required),Xt("name",i.name||null)("readonly",i.readonly&&!i._isNativeSelect||null)("aria-invalid",i.empty&&i.required?null:i.errorState)("aria-required",i.required)("id",i.id),nn("mat-input-server",i._isServer)("mat-mdc-form-field-textarea-control",i._isInFormField&&i._isTextarea)("mat-mdc-form-field-input-control",i._isInFormField)("mdc-text-field__input",i._isInFormField)("mat-mdc-native-select-inline",i._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[un([{provide:O1,useExisting:t}]),nt,Gi]}),t})(),fG=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,Lg,Lg,lG,Wn]}),t})();const pG=["tooltip"],II=new Re("mat-tooltip-scroll-strategy"),_G={provide:II,deps:[io],useFactory:function gG(t){return()=>t.scrollStrategies.reposition({scrollThrottle:20})}},vG=new Re("mat-tooltip-default-options",{providedIn:"root",factory:function bG(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),PI="tooltip-panel",OI=Za({passive:!0});let kG=(()=>{class t{get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=_n(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=_n(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=So(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=So(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,o,s,a,l,d,_,E,F,G,ie){this._overlay=e,this._elementRef=i,this._scrollDispatcher=o,this._viewContainerRef=s,this._ngZone=a,this._platform=l,this._ariaDescriber=d,this._focusMonitor=_,this._dir=F,this._defaultOptions=G,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new J,this._scrollStrategy=E,this._document=ie,G&&(this._showDelay=G.showDelay,this._hideDelay=G.hideDelay,G.position&&(this.position=G.position),G.positionAtOrigin&&(this.positionAtOrigin=G.positionAtOrigin),G.touchGestures&&(this.touchGestures=G.touchGestures)),F.change.pipe(Hn(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(Hn(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,o])=>{e.removeEventListener(i,o,OI)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const o=this._createOverlay(i);this._detach(),this._portal=this._portal||new Sd(this._tooltipComponent,this._viewContainerRef);const s=this._tooltipInstance=o.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(Hn(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof vt)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),o=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(Hn(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${PI}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(Hn(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(Hn(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(Hn(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&27===s.keyCode&&!Fs(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,o=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset({...o.main,...s.main}),this._addOffset({...o.fallback,...s.fallback})])}_addOffset(e){return e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i||"below"==i?o={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={originX:"end",originY:"center"});const{x:s,y:a}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:s,originY:a}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i?o={overlayX:"center",overlayY:"bottom"}:"below"==i?o={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={overlayX:"start",overlayY:"center"});const{x:s,y:a}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:s,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(Kn(1),Hn(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:o,originY:s}=e;let a;if(a="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===s?"above":"below",a!==this._currentPosition){const l=this._overlayRef;if(l){const d=`${this._cssClassPrefix}-${PI}-`;l.removePanelClass(d+this._currentPosition),l.addPanelClass(d+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,o),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const o=i.relatedTarget;(!o||!this._overlayRef?.overlayElement.contains(o))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,o])=>{this._elementRef.nativeElement.addEventListener(i,o,OI)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,o=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),("on"===e||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}}return t.\u0275fac=function(e){Aa()},t.\u0275dir=Ke({type:t,inputs:{position:["matTooltipPosition","position"],positionAtOrigin:["matTooltipPositionAtOrigin","positionAtOrigin"],disabled:["matTooltipDisabled","disabled"],showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]}}),t})(),vi=(()=>{class t extends kG{constructor(e,i,o,s,a,l,d,_,E,F,G,ie){super(e,i,o,s,a,l,d,_,E,F,G,ie),this._tooltipComponent=DG,this._cssClassPrefix="mat-mdc",this._viewportMargin=8}_addOffset(e){const o=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=o?-8:8:"end"===e.originX&&(e.offsetX=o?8:-8),e}}return t.\u0275fac=function(e){return new(e||t)(Y(io),Y(vt),Y(Z2),Y(rr),Y(ft),Y(ui),Y(_z),Y(Qa),Y(II),Y(Do,8),Y(vG,8),Y(It))},t.\u0275dir=Ke({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],exportAs:["matTooltip"],features:[nt]}),t})(),SG=(()=>{class t{constructor(e,i){this._changeDetectorRef=e,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new J,this._animationsDisabled="NoopAnimations"===i}show(e){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,o=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(e?s:o),i.classList.add(e?o:s),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const a=getComputedStyle(i);("0s"===a.getPropertyValue("animation-duration")||"none"===a.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}}return t.\u0275fac=function(e){return new(e||t)(Y(pi),Y(Ri,8))},t.\u0275dir=Ke({type:t}),t})(),DG=(()=>{class t extends SG{constructor(e,i,o){super(e,o),this._elementRef=i,this._isMultiline=!1,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide"}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}}return t.\u0275fac=function(e){return new(e||t)(Y(pi),Y(vt),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(e,i){if(1&e&&_t(pG,7),2&e){let o;rt(o=ot())&&(i._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(e,i){1&e&&ye("mouseleave",function(s){return i._handleMouseLeave(s)}),2&e&&Pl("zoom",i.isVisible()?1:null)},features:[nt],decls:4,vars:4,consts:[[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"ngClass","animationend"],["tooltip",""],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(e,i){1&e&&(D(0,"div",0,1),ye("animationend",function(s){return i._handleAnimationEnd(s)}),D(2,"div",2),I(3),C()()),2&e&&(nn("mdc-tooltip--multiline",i._isMultiline),w("ngClass",i.tooltipClass),c(3),se(i.message))},dependencies:[Nn],styles:['.mdc-tooltip__surface{word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color, #fff)}.mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape, var(--mdc-shape-small, 4px))}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape, var(--mdc-shape-small, 4px))}.mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color, #000)}.mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font, inherit);font-size:var(--mdc-plain-tooltip-supporting-text-size, inherit);font-weight:var(--mdc-plain-tooltip-supporting-text-weight, inherit);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, inherit)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0}),t})(),TG=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[_G],imports:[X0,ta,Td,Wn,Wn,Lh]}),t})();const LG=["button1"],EG=["button2"];function IG(t,n){1&t&&xe(0,"mat-spinner",5),2&t&&w("diameter",z().loadingSize)}function PG(t,n){1&t&&(D(0,"mat-icon"),I(1,"error_outline"),C())}const OG=function(t){return{"for-dark-background":t}},AG=["*"];var Gr=(()=>((Gr=Gr||{})[Gr.Normal=0]="Normal",Gr[Gr.Error=1]="Error",Gr[Gr.Loading=2]="Loading",Gr))();let Ui=(()=>{class t{constructor(){this.forDarkBackground=!1,this.disabled=!1,this.color="",this.loadingSize=20,this.action=new ht,this.state=Gr.Normal,this.buttonStates=Gr}ngOnDestroy(){this.action.complete()}click(){this.disabled||(this.reset(),this.action.emit())}reset(e=!0){this.state=Gr.Normal,e&&(this.disabled=!1)}focus(){this.button1&&this.button1.focus(),this.button2&&this.button2.focus()}showEnabled(){this.disabled=!1}showDisabled(){this.disabled=!0}showLoading(e=!0){this.state=Gr.Loading,e&&(this.disabled=!0)}showError(e=!0){this.state=Gr.Error,e&&(this.disabled=!1)}get isLoading(){return this.state===Gr.Loading}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-button"]],viewQuery:function(e,i){if(1&e&&(_t(LG,5),_t(EG,5)),2&e){let o;rt(o=ot())&&(i.button1=o.first),rt(o=ot())&&(i.button2=o.first)}},inputs:{forDarkBackground:"forDarkBackground",disabled:"disabled",color:"color",loadingSize:"loadingSize"},outputs:{action:"action"},ngContentSelectors:AG,decls:6,vars:7,consts:[["mat-raised-button","",3,"disabled","color","ngClass","click"],["button2",""],[1,"d-flex"],[3,"diameter",4,"ngIf"],[4,"ngIf"],[3,"diameter"]],template:function(e,i){1&e&&(Ir(),D(0,"button",0,1),ye("click",function(){return i.click()}),D(2,"div",2),V(3,IG,1,1,"mat-spinner",3),V(4,PG,2,0,"mat-icon",4),Sn(5),C()()),2&e&&(w("disabled",i.disabled)("color",i.color)("ngClass",He(5,OG,i.forDarkBackground)),c(3),w("ngIf",i.state===i.buttonStates.Loading),c(1),w("ngIf",i.state===i.buttonStates.Error))},dependencies:[Nn,Ft,Wr,Cn,ec],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px}button[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}mat-icon[_ngcontent-%COMP%], mat-spinner[_ngcontent-%COMP%]{display:inline-block;margin-right:15px}.for-dark-background[_ngcontent-%COMP%]:disabled{background-color:#000!important;color:#fff!important;opacity:.3}"]}),t})();const FG=["button"],RG=["firstInput"],NG=function(t){return{"element-disabled":t}};function YG(t,n){if(1&t&&(D(0,"mat-form-field",12)(1,"div",5)(2,"label",6),I(3),R(4,"translate"),C(),xe(5,"input",13),C(),D(6,"mat-error")(7,"span"),I(8),R(9,"translate"),C()()()),2&t){const e=z();w("ngClass",He(7,NG,e.working)),c(3),se(H(4,3,"settings.password.old-password")),c(5),se(H(9,5,"settings.password.errors.old-password-required"))}}const HG=function(t){return{"rounded-elevated-box":t}},AI=function(t,n){return{"white-form-field":t,"element-disabled":n}},BG=function(t,n){return{"mt-2 app-button":t,"float-right":n}};let FI=(()=>{class t{constructor(e,i,o,s){this.authService=e,this.router=i,this.snackbarService=o,this.dialog=s,this.workingState=new ht,this.forInitialConfig=!1}ngOnInit(){this.form=new UE({oldPassword:new Dg("",this.forInitialConfig?null:Gt.required),newPassword:new Dg("",Gt.compose([Gt.required,Gt.minLength(6),Gt.maxLength(64)])),newPasswordConfirmation:new Dg("",[Gt.required,this.validatePasswords.bind(this)])}),this.formSubscription=this.form.controls.newPassword.valueChanges.subscribe(()=>this.form.controls.newPasswordConfirmation.updateValueAndValidity())}ngAfterViewInit(){this.forInitialConfig&&setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe(),this.formSubscription.unsubscribe()}get working(){return!!this.button&&this.button.isLoading}changePassword(){this.form.valid&&!this.button.disabled&&(this.button.showLoading(),this.workingState.next(!0),this.subscription=this.forInitialConfig?this.authService.initialConfig(this.form.get("newPassword").value).subscribe(()=>{this.dialog.closeAll(),this.snackbarService.showDone("settings.password.initial-config.done"),this.workingState.next(!1)},e=>{this.button.showError(),e=en(e),this.snackbarService.showError(e,null,!0),this.workingState.next(!1)}):this.authService.changePassword(this.form.get("oldPassword").value,this.form.get("newPassword").value).subscribe(()=>{this.router.navigate(["nodes"]),this.snackbarService.showDone("settings.password.password-changed"),this.workingState.next(!1)},e=>{this.button.showError(),e=en(e),this.snackbarService.showError(e),this.workingState.next(!1)}))}validatePasswords(){return this.form&&this.form.get("newPassword").value!==this.form.get("newPasswordConfirmation").value?{invalid:!0}:null}}return t.\u0275fac=function(e){return new(e||t)(Y(Wh),Y(hn),Y(Dn),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-password"]],viewQuery:function(e,i){if(1&e&&(_t(FG,5),_t(RG,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},inputs:{forInitialConfig:"forInitialConfig"},outputs:{workingState:"workingState"},decls:33,vars:40,consts:[[3,"ngClass"],[1,"box-internal-container","overflow"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],["class","white-form-field",3,"ngClass",4,"ngIf"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","formControlName","newPassword","maxlength","64","matInput",""],["firstInput",""],["type","password","formControlName","newPasswordConfirmation","maxlength","64","matInput",""],["color","primary",3,"ngClass","disabled","forDarkBackground","action"],["button",""],[1,"white-form-field",3,"ngClass"],["type","password","formControlName","oldPassword","maxlength","64","matInput",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"div")(3,"mat-icon",2),R(4,"translate"),I(5," help "),C()(),D(6,"form",3),V(7,YG,10,9,"mat-form-field",4),D(8,"mat-form-field",0)(9,"div",5)(10,"label",6),I(11),R(12,"translate"),C(),xe(13,"input",7,8),C(),D(15,"mat-error")(16,"span"),I(17),R(18,"translate"),C()()(),D(19,"mat-form-field",0)(20,"div",5)(21,"label",6),I(22),R(23,"translate"),C(),xe(24,"input",9),C(),D(25,"mat-error")(26,"span"),I(27),R(28,"translate"),C()()(),D(29,"app-button",10,11),ye("action",function(){return i.changePassword()}),I(31),R(32,"translate"),C()()()()),2&e&&(w("ngClass",He(29,HG,!i.forInitialConfig)),c(2),eo((i.forInitialConfig?"":"white-")+"form-help-icon-container"),c(1),w("inline",!0)("matTooltip",H(4,17,i.forInitialConfig?"settings.password.initial-config-help":"settings.password.help")),c(3),w("formGroup",i.form),c(1),w("ngIf",!i.forInitialConfig),c(1),w("ngClass",mn(31,AI,!i.forInitialConfig,i.working)),c(3),se(H(12,19,i.forInitialConfig?"settings.password.initial-config.password":"settings.password.new-password")),c(6),se(H(18,21,"settings.password.errors.new-password-error")),c(2),w("ngClass",mn(34,AI,!i.forInitialConfig,i.working)),c(3),se(H(23,23,i.forInitialConfig?"settings.password.initial-config.repeat-password":"settings.password.repeat-password")),c(5),se(H(28,25,"settings.password.errors.passwords-not-match")),c(2),w("ngClass",mn(37,BG,!i.forInitialConfig,i.forInitialConfig))("disabled",!i.form.valid)("forDarkBackground",!i.forInitialConfig),c(2),ce(" ",H(32,27,i.forInitialConfig?"settings.password.initial-config.set-password":"settings.change-password")," "))},dependencies:[Nn,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Cn,vi,Ui,wt],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}app-button[_ngcontent-%COMP%]{float:right;margin-right:32px}"]}),t})();function VG(t,n){1&t&&(D(0,"button",5)(1,"mat-icon"),I(2,"close"),C()())}function jG(t,n){1&t&&Jo(0)}const RI=function(t){return{"content-margin":t}};function zG(t,n){if(1&t&&(D(0,"mat-dialog-content",6),V(1,jG,1,0,"ng-container",7),C()),2&t){const e=z(),i=ci(8);w("ngClass",He(2,RI,e.includeVerticalMargins)),c(1),w("ngTemplateOutlet",i)}}function UG(t,n){1&t&&Jo(0)}function WG(t,n){if(1&t&&(D(0,"div",6),V(1,UG,1,0,"ng-container",7),C()),2&t){const e=z(),i=ci(8);w("ngClass",He(2,RI,e.includeVerticalMargins)),c(1),w("ngTemplateOutlet",i)}}function $G(t,n){1&t&&Sn(0)}const GG=["*"];let ei=(()=>{class t{set dialog(e){e.disableClose=!0,this.dialogInternal=e}constructor(e){this.matDialog=e,this.includeScrollableArea=!0,this.includeVerticalMargins=!0}onKeyUp(){this.closePopup()}closePopup(){this.disableDismiss||this.matDialog.openDialogs[this.matDialog.openDialogs.length-1].id===this.dialogInternal.id&&this.dialogInternal.close()}}return t.\u0275fac=function(e){return new(e||t)(Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-dialog"]],hostBindings:function(e,i){1&e&&ye("keyup.esc",function(){return i.onKeyUp()},0,Vb)},inputs:{headline:"headline",disableDismiss:"disableDismiss",includeScrollableArea:"includeScrollableArea",includeVerticalMargins:"includeVerticalMargins",dialog:"dialog"},ngContentSelectors:GG,decls:9,vars:4,consts:[["mat-dialog-title","",1,"header"],["mat-dialog-close","","mat-icon-button","","class","grey-button-background",4,"ngIf"],[1,"header-separator"],[3,"ngClass",4,"ngIf"],["contentTemplate",""],["mat-dialog-close","","mat-icon-button","",1,"grey-button-background"],[3,"ngClass"],[4,"ngTemplateOutlet"]],template:function(e,i){1&e&&(Ir(),D(0,"div",0)(1,"span"),I(2),C(),V(3,VG,3,0,"button",1),C(),xe(4,"div",2),V(5,zG,2,4,"mat-dialog-content",3),V(6,WG,2,4,"div",3),V(7,$G,1,0,"ng-template",null,4,Es)),2&e&&(c(2),se(i.headline),c(1),w("ngIf",!i.disableDismiss),c(2),w("ngIf",i.includeScrollableArea),c(1),w("ngIf",!i.includeScrollableArea))},dependencies:[Nn,Ft,hd,CU,xU,r1,el,Cn],styles:['.cursor-pointer[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}[_nghost-%COMP%]{color:#202226}.header[_ngcontent-%COMP%]{margin:-24px -24px 0;color:#215f9e;padding:0 14px 0 24px;font-size:1rem;text-transform:uppercase;font-weight:700;display:flex;align-items:center}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-grow:1}@media (max-width: 767px){.header[_ngcontent-%COMP%]{padding:0 2px 0 24px}}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:1rem;margin:18px 0}.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{color:#a6b2b2;width:32px;height:32px;line-height:20px;margin-left:10px;padding:0}@media (max-width: 767px){.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{width:46px;height:46px}}.header-separator[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin-left:-12px;margin-right:-12px}.content-margin[_ngcontent-%COMP%]{padding-top:18px;padding-bottom:24px!important}']}),t})(),qG=(()=>{class t{static openDialog(e){const i=new En;return i.autoFocus=!1,i.width=Vt.smallModalWidth,e.open(t,i)}constructor(e){this.dialogRef=e,this.disableDismiss=!1}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn))},t.\u0275cmp=Ze({type:t,selectors:[["app-initial-setup"]],decls:3,vars:6,consts:[[3,"headline","dialog","disableDismiss"],[3,"forInitialConfig","workingState"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"app-password",1),ye("workingState",function(s){return i.disableDismiss=s}),C()()),2&e&&(w("headline",H(1,4,"settings.password.initial-config.title"))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(2),w("forInitialConfig",!0))},dependencies:[FI,ei,wt]}),t})();var F1=N(9774),Eg=N.n(F1);class R1{}class KG{}var ro=(()=>((ro=ro||{}).Connecting="connecting",ro.Unhealthy="unhealthy",ro.Healthy="healthy",ro))(),oo=(()=>((oo=oo||{}).UseCustomSettings="updaterUseCustomSettings",oo.Channel="updaterChannel",oo.Version="updaterVersion",oo.ArchiveURL="updaterArchiveURL",oo.ChecksumsURL="updaterChecksumsURL",oo))();let ua=(()=>{class t{constructor(e,i){this.apiService=e,this.storageService=i}getNodes(){let e=[];return this.apiService.get("visors-summary").pipe(ke(i=>{i&&i.forEach(d=>{const _=new R1;_.online=d.online,_.localPk=d.overview.local_pk,_.version=d.overview.build_info.version,_.autoconnectTransports=d.public_autoconnect,_.buildTag=d.build_tag?d.build_tag:"",_.rewardsAddress=d.reward_address,_.ip=d.overview&&d.overview.local_ip&&d.overview.local_ip.trim()?d.overview.local_ip:null;const E=this.storageService.getLabelInfo(_.localPk);if(_.label=E&&E.label?E.label:this.storageService.getDefaultLabel(_),!_.online)return _.dmsgServerPk="",_.roundTripPing="",void e.push(_);_.health={servicesHealth:d.health.services_health},_.dmsgServerPk=d.dmsg_stats.server_public_key,_.roundTripPing=this.nsToMs(d.dmsg_stats.round_trip),_.isHypervisor=d.is_hypervisor,e.push(_)});const o=new Map,s=[],a=[];e.forEach(d=>{o.set(d.localPk,d),d.online&&(s.push(d.localPk),a.push(d.ip))}),this.storageService.includeVisibleLocalNodes(s,a);const l=[];return this.storageService.getSavedLocalNodes().forEach(d=>{if(!o.has(d.publicKey)&&!d.hidden){const _=new R1;_.localPk=d.publicKey;const E=this.storageService.getLabelInfo(d.publicKey);_.label=E&&E.label?E.label:this.storageService.getDefaultLabel(_),_.online=!1,_.dmsgServerPk="",_.roundTripPing="",l.push(_)}o.has(d.publicKey)&&!o.get(d.publicKey).online&&d.hidden&&o.delete(d.publicKey)}),e=[],o.forEach(d=>e.push(d)),e=e.concat(l),e}))}nsToMs(e){let i=new(Eg())(e).dividedBy(1e6);return i=i.isLessThan(10)?i.decimalPlaces(2):i.decimalPlaces(0),i.toString(10)}getNode(e){return this.apiService.get(`visors/${e}/summary`).pipe(ke(i=>{const o=new R1;o.localPk=i.overview.local_pk,o.version=i.overview.build_info.version,o.secondsOnline=Math.floor(Number.parseFloat(i.uptime)),o.minHops=i.min_hops,o.buildTag=i.build_tag,o.skybianBuildVersion=i.skybian_build_version,o.isSymmeticNat=i.overview.is_symmetic_nat,o.publicIp=i.overview.public_ip,o.autoconnectTransports=i.public_autoconnect,o.rewardsAddress=i.reward_address,o.ip=i.overview.local_ip&&i.overview.local_ip.trim()?i.overview.local_ip:null;const s=this.storageService.getLabelInfo(o.localPk);o.label=s&&s.label?s.label:this.storageService.getDefaultLabel(o),o.health={servicesHealth:i.health.services_health},o.transports=[],i.overview.transports&&i.overview.transports.forEach(l=>{o.transports.push({id:l.id,localPk:l.local_pk,remotePk:l.remote_pk,type:l.type,recv:l.log.recv,sent:l.log.sent})}),o.persistentTransports=[],i.persistent_transports&&i.persistent_transports.forEach(l=>{o.persistentTransports.push({pk:l.pk,type:l.type})}),o.routes=[],i.routes&&i.routes.forEach(l=>{o.routes.push({key:l.key,rule:l.rule}),l.rule_summary&&(o.routes[o.routes.length-1].ruleSummary={keepAlive:l.rule_summary.keep_alive,ruleType:l.rule_summary.rule_type,keyRouteId:l.rule_summary.key_route_id},l.rule_summary.app_fields&&l.rule_summary.app_fields.route_descriptor&&(o.routes[o.routes.length-1].appFields={routeDescriptor:{dstPk:l.rule_summary.app_fields.route_descriptor.dst_pk,dstPort:l.rule_summary.app_fields.route_descriptor.dst_port,srcPk:l.rule_summary.app_fields.route_descriptor.src_pk,srcPort:l.rule_summary.app_fields.route_descriptor.src_port}}),l.rule_summary.forward_fields&&(o.routes[o.routes.length-1].forwardFields={nextRid:l.rule_summary.forward_fields.next_rid,nextTid:l.rule_summary.forward_fields.next_tid},l.rule_summary.forward_fields.route_descriptor&&(o.routes[o.routes.length-1].forwardFields.routeDescriptor={dstPk:l.rule_summary.forward_fields.route_descriptor.dst_pk,dstPort:l.rule_summary.forward_fields.route_descriptor.dst_port,srcPk:l.rule_summary.forward_fields.route_descriptor.src_pk,srcPort:l.rule_summary.forward_fields.route_descriptor.src_port})),l.rule_summary.intermediary_forward_fields&&(o.routes[o.routes.length-1].intermediaryForwardFields={nextRid:l.rule_summary.intermediary_forward_fields.next_rid,nextTid:l.rule_summary.intermediary_forward_fields.next_tid}))}),o.apps=[],i.overview.apps&&i.overview.apps.forEach(l=>{o.apps.push({name:l.name,status:l.status,port:l.port,autostart:l.auto_start,detailedStatus:l.detailed_status,args:l.args})});let a=!1;return i.dmsg_stats&&(o.dmsgServerPk=i.dmsg_stats.server_public_key,o.roundTripPing=this.nsToMs(i.dmsg_stats.round_trip),a=!0),a||(o.dmsgServerPk="-",o.roundTripPing="-1"),o}))}setRewardsAddress(e,i){return this.apiService.put(`visors/${e}/reward`,{reward_address:i})}getRewardsAddress(e){return this.apiService.get(`visors/${e}/reward`)}getRuntimeLogs(e){return this.apiService.get(`visors/${e}/runtime-logs`)}deleteRewardsAddress(e){return this.apiService.delete(`visors/${e}/reward`)}reboot(e){return this.apiService.post(`visors/${e}/restart`)}checkIfUpdating(e){return this.apiService.get(`visors/${e}/update/ws/running`)}checkUpdate(e){let i="stable";return i=localStorage.getItem(oo.Channel)||i,this.apiService.get(`visors/${e}/update/available/${i}`)}update(e){const i={channel:"stable"};if(localStorage.getItem(oo.UseCustomSettings)){const s=localStorage.getItem(oo.Channel);s&&(i.channel=s);const a=localStorage.getItem(oo.Version);a&&(i.version=a);const l=localStorage.getItem(oo.ArchiveURL);l&&(i.archive_url=l);const d=localStorage.getItem(oo.ChecksumsURL);d&&(i.checksums_url=d)}return this.apiService.ws(`visors/${e}/update/ws`,i)}}return t.\u0275fac=function(e){return new(e||t)(we(il),we(Ji))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class ZG{}let NI=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.dataSubject=new Or(null),this.lastEmitedData=new ZG,this.firstCallToGetDataMade=!1,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.forceRefresh()})}startRequestingData(){return this.firstCallToGetDataMade||this.getData(0),this.dataSubject.asObservable()}stopRequestingData(){this.updateSubscription&&(this.updateSubscription.unsubscribe(),this.firstCallToGetDataMade=!1)}getData(e){this.firstCallToGetDataMade=!0,this.updateSubscription&&this.updateSubscription.unsubscribe(),this.updateSubscription=$e(1).pipe(Ti(e),bi(()=>{this.lastEmitedData.updating=!0,this.dataSubject.next(this.lastEmitedData)}),Ti(120),Ye(()=>this.nodeService.getNodes())).subscribe(i=>{this.lastEmitedData={data:i,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(this.dataRefreshDelay)},i=>{i=en(i),this.lastEmitedData={data:this.lastEmitedData.data,error:i,momentOfLastCorrectUpdate:this.lastEmitedData.momentOfLastCorrectUpdate,updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(Vt.connectionRetryDelay)})}forceRefresh(){this.getData(0)}}return t.\u0275fac=function(e){return new(e||t)(we(Ji),we(ua))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function XG(t,n){if(1&t){const e=et();D(0,"button",3),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().closePopup(s))}),xe(1,"img",4),D(2,"div",5),I(3),C()()}if(2&t){const e=n.$implicit;c(1),w("src","assets/img/lang/"+e.iconName,Vo),c(2),se(e.name)}}let YI=(()=>{class t{static openDialog(e){const i=new En;return i.autoFocus=!1,i.width=Vt.mediumModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.languageService=i,this.languages=[]}ngOnInit(){this.subscription=this.languageService.languages.subscribe(e=>{this.languages=e})}ngOnDestroy(){this.subscription.unsubscribe()}closePopup(e=null){e&&this.languageService.changeLanguage(e.code),this.dialogRef.close()}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(gg))},t.\u0275cmp=Ze({type:t,selectors:[["app-select-language"]],decls:4,vars:5,consts:[[3,"headline","dialog"],[1,"options-container"],["mat-button","","color","accent","class","grey-button-background",3,"click",4,"ngFor","ngForOf"],["mat-button","","color","accent",1,"grey-button-background",3,"click"],[3,"src"],[1,"label"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),V(3,XG,4,2,"button",2),C()()),2&e&&(w("headline",H(1,3,"language.title"))("dialog",i.dialogRef),c(3),w("ngForOf",i.languages))},dependencies:[gi,Wr,ei,wt],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.options-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:118px;height:auto!important;margin:20px;font-size:.7rem;line-height:unset;padding:0!important;color:unset}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .mdc-button__label{width:100%}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:90px;font-size:.6rem;margin:6px}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:64px;height:64px;margin:10px 0}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:48px;height:48px;margin:7px 0}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:#202226!important;background-color:#ffffff40;padding:4px 10px}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{padding:4px 5px}}"]}),t})();function JG(t,n){1&t&&xe(0,"img",2),2&t&&w("src","assets/img/lang/"+z().language.iconName,Vo)}let QG=(()=>{class t{constructor(e,i){this.languageService=e,this.dialog=i}ngOnInit(){this.subscription=this.languageService.currentLanguage.subscribe(e=>{this.language=e})}ngOnDestroy(){this.subscription.unsubscribe()}openLanguageWindow(){YI.openDialog(this.dialog)}}return t.\u0275fac=function(e){return new(e||t)(Y(gg),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-lang-button"]],decls:3,vars:4,consts:[["mat-button","",1,"lang-button","subtle-transparent-button",3,"matTooltip","click"],["class","flag",3,"src",4,"ngIf"],[1,"flag",3,"src"]],template:function(e,i){1&e&&(D(0,"button",0),ye("click",function(){return i.openLanguageWindow()}),R(1,"translate"),V(2,JG,1,1,"img",1),C()),2&e&&(w("matTooltip",H(1,2,"language.title")),c(2),w("ngIf",i.language))},dependencies:[Ft,Wr,vi,wt],styles:[".lang-button[_ngcontent-%COMP%]{height:40px;background-color:#f8f9f9;border-radius:100%;padding:0;line-height:1;padding:0!important}.lang-button[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{width:20px;height:20px}"]}),t})();const eq=function(t){return{"element-disabled":t}};let HI=(()=>{class t extends er{constructor(e,i,o,s,a,l){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=s,this.route=a,this.multipleNodeDataService=l,this.loading=!1,this.isForVpn=!1,this.vpnKey=""}ngOnInit(){return this.multipleNodeDataService.stopRequestingData(),this.routeSubscription=this.route.paramMap.subscribe(e=>{this.vpnKey=e.get("key"),this.isForVpn=-1!==window.location.href.indexOf("vpnlogin"),this.verificationSubscription=this.authService.checkLogin().subscribe(i=>{i!==Fr.NotLogged&&(g1.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})},5))})}),this.form=new UE({password:new Dg("",Gt.required)}),super.ngOnInit()}ngOnDestroy(){this.loginSubscription&&this.loginSubscription.unsubscribe(),this.verificationSubscription.unsubscribe(),this.routeSubscription.unsubscribe()}login(){!this.form.valid||this.loading||(this.loading=!0,this.loginSubscription=this.authService.login(this.form.get("password").value).subscribe(()=>this.onLoginSuccess(),e=>this.onLoginError(e)))}configure(){qG.openDialog(this.dialog)}onLoginSuccess(){g1.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})})}onLoginError(e){e=en(e),this.loading=!1,this.snackbarService.showError(e.originalError&&401===e.originalError.status?"login.incorrect-password":e.translatableErrorMsg)}}return t.\u0275fac=function(e){return new(e||t)(Y(Wh),Y(hn),Y(Dn),Y(In),Y(Mr),Y(NI))},t.\u0275cmp=Ze({type:t,selectors:[["app-login"]],features:[nt],decls:14,vars:11,consts:[[1,"w-100","h-100","d-flex","justify-content-center"],[1,"row","main-container"],["src","/assets/img/logo-v.png",1,"logo"],[1,"mt-5",3,"formGroup"],[1,"login-input",3,"ngClass"],["type","password","formControlName","password","autocomplete","off",3,"placeholder","keydown.enter"],[3,"disabled","click"],[1,"config-link",3,"click"]],template:function(e,i){1&e&&(D(0,"div",0),xe(1,"app-lang-button"),D(2,"div",1),xe(3,"img",2),D(4,"form",3)(5,"div",4)(6,"input",5),ye("keydown.enter",function(){return i.login()}),R(7,"translate"),C(),D(8,"button",6),ye("click",function(){return i.login()}),D(9,"mat-icon"),I(10,"chevron_right"),C()()()(),D(11,"div",7),ye("click",function(){return i.configure()}),I(12),R(13,"translate"),C()()()),2&e&&(c(4),w("formGroup",i.form),c(1),w("ngClass",He(9,eq,i.loading)),c(1),w("placeholder",H(7,5,"login.password")),c(2),w("disabled",!i.form.valid||i.loading),c(4),se(H(13,7,"login.initial-config")))},dependencies:[Nn,zi,Bi,Vi,ji,ii,Ei,Cn,QG,wt],styles:['.cursor-pointer[_ngcontent-%COMP%], .config-link[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}app-lang-button[_ngcontent-%COMP%]{position:fixed;right:10px;top:10px;z-index:10}.main-container[_ngcontent-%COMP%]{z-index:1;height:100%;flex-direction:column;align-items:center;justify-content:center}.logo[_ngcontent-%COMP%]{width:170px}.login-input[_ngcontent-%COMP%]{height:35px;width:300px;overflow:hidden;border-radius:10px;box-shadow:0 3px 8px #0000001a,0 6px 20px #0000001a;display:flex}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]{background:#fff;width:calc(100% - 35px);height:100%;font-size:.875rem;border:none;padding-left:10px;padding-right:10px}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]:focus{outline:none}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#fff;color:#202226;width:35px;height:35px;line-height:35px;border:none;display:flex;cursor:pointer;align-items:center}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{color:#777}.config-link[_ngcontent-%COMP%]{color:#f8f9f9;font-size:.7rem;margin-top:20px}']}),t})();const tq=["firstInput"];let N1=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.storageService=s,this.snackbarService=a}ngOnInit(){this.form=this.formBuilder.group({label:[this.data.label]})}ngAfterViewInit(){setTimeout(()=>this.firstInput.nativeElement.focus())}save(){const e=this.form.get("label").value.trim();e!==this.data.label?(this.storageService.saveLabel(this.data.id,e,this.data.identifiedElementType),e?this.snackbarService.showDone("edit-label.done"):this.snackbarService.showWarning("edit-label.label-removed-warning"),this.dialogRef.close(!0)):this.dialogRef.close()}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr),Y(Ji),Y(Dn))},t.\u0275cmp=Ze({type:t,selectors:[["app-edit-label"]],viewQuery:function(e,i){if(1&e&&_t(tq,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","label","maxlength","66","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"action"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return i.save()}),I(11),R(12,"translate"),C()()),2&e&&(w("headline",H(1,5,"labeled-element.edit-label"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,7,"edit-label.label")),c(5),se(H(12,9,"common.save")))},dependencies:[zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,Ui,ei,wt]}),t})();const nq=["cancelButton"],iq=["confirmButton"];function rq(t,n){if(1&t&&(D(0,"div"),I(1),R(2,"translate"),C()),2&t){const e=n.$implicit;c(1),ce(" - ",H(2,1,e)," ")}}function oq(t,n){if(1&t&&(D(0,"div",8),V(1,rq,3,3,"div",9),C()),2&t){const e=z();c(1),w("ngForOf",e.state!==e.confirmationStates.Done?e.data.list:e.doneList)}}function sq(t,n){if(1&t&&(D(0,"div",1),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),ce(" ",H(2,1,e.data.lowerText)," ")}}function aq(t,n){if(1&t){const e=et();D(0,"app-button",10,11),ye("action",function(){return Pe(e),Oe(z().closeModal())}),I(2),R(3,"translate"),C()}if(2&t){const e=z();c(2),ce(" ",H(3,1,e.data.cancelButtonText)," ")}}var cs=(()=>((cs=cs||{}).Asking="Asking",cs.Processing="Processing",cs.Done="Done",cs))();let lq=(()=>{class t{constructor(e,i){this.dialogRef=e,this.data=i,this.disableDismiss=!1,this.state=cs.Asking,this.confirmationStates=cs,this.operationAccepted=new ht,this.disableDismiss=!!i.disableDismiss,this.dialogRef.disableClose=this.disableDismiss}ngAfterViewInit(){this.data.cancelButtonText?setTimeout(()=>this.cancelButton.focus()):setTimeout(()=>this.confirmButton.focus())}ngOnDestroy(){this.operationAccepted.complete()}closeModal(){this.dialogRef.close()}sendOperationAcceptedEvent(){this.operationAccepted.emit()}showAsking(e){e&&(this.data=e),this.state=cs.Asking,this.confirmButton.reset(),this.disableDismiss=!1,this.dialogRef.disableClose=this.disableDismiss,this.cancelButton&&this.cancelButton.showEnabled()}showProcessing(){this.state=cs.Processing,this.disableDismiss=!0,this.confirmButton.showLoading(),this.cancelButton&&this.cancelButton.showDisabled()}showDone(e,i,o=null){this.doneTitle=e||this.data.headerText,this.doneText=i,this.doneList=o,this.confirmButton.reset(),setTimeout(()=>this.confirmButton.focus()),this.state=cs.Done,this.dialogRef.disableClose=!1,this.disableDismiss=!1}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li))},t.\u0275cmp=Ze({type:t,selectors:[["app-confirmation"]],viewQuery:function(e,i){if(1&e&&(_t(nq,5),_t(iq,5)),2&e){let o;rt(o=ot())&&(i.cancelButton=o.first),rt(o=ot())&&(i.confirmButton=o.first)}},outputs:{operationAccepted:"operationAccepted"},decls:13,vars:14,consts:[[3,"headline","dialog","disableDismiss"],[1,"text-container"],["class","list-container",4,"ngIf"],["class","text-container",4,"ngIf"],[1,"buttons"],["color","accent",3,"action",4,"ngIf"],["color","primary",3,"action"],["confirmButton",""],[1,"list-container"],[4,"ngFor","ngForOf"],["color","accent",3,"action"],["cancelButton",""]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),I(3),R(4,"translate"),C(),V(5,oq,2,1,"div",2),V(6,sq,3,3,"div",3),D(7,"div",4),V(8,aq,4,3,"app-button",5),D(9,"app-button",6,7),ye("action",function(){return i.state===i.confirmationStates.Asking?i.sendOperationAcceptedEvent():i.closeModal()}),I(11),R(12,"translate"),C()()()),2&e&&(w("headline",H(1,8,i.state!==i.confirmationStates.Done?i.data.headerText:i.doneTitle))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(3),ce(" ",H(4,10,i.state!==i.confirmationStates.Done?i.data.text:i.doneText)," "),c(2),w("ngIf",i.data.list&&i.state!==i.confirmationStates.Done||i.doneList&&i.state===i.confirmationStates.Done),c(1),w("ngIf",i.data.lowerText&&i.state!==i.confirmationStates.Done),c(2),w("ngIf",i.data.cancelButtonText&&i.state!==i.confirmationStates.Done),c(3),ce(" ",H(12,12,i.state!==i.confirmationStates.Done?i.data.confirmButtonText:"confirmation.close")," "))},dependencies:[gi,Ft,Ui,ei,wt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]}),t})();class Jt{static createConfirmationDialog(n,e){const i={text:e,headerText:"confirmation.header-text",confirmButtonText:"confirmation.confirm-button",cancelButtonText:"confirmation.cancel-button",disableDismiss:!1},o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,n.open(lq,o)}static checkIfTagIsUpdatable(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase()||n.toUpperCase()==="Mac".toUpperCase()||n.toUpperCase()==="Macos".toUpperCase()||n.toUpperCase()==="Mac OS".toUpperCase()||n.toUpperCase()==="Darwin".toUpperCase())}static checkIfTagCanOpenterminal(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase())}static checkIfIpValidOrEmpty(n){if(!n)return!0;const e=n.split(".");if(4!==e.length)return!1;for(const i of e){const o=Number.parseInt(i,10);if(isNaN(o)||o+""!==i||o<0||o>255)return!1}return!0}}function cq(t,n){if(1&t&&(D(0,"mat-icon",6),I(1),C()),2&t){const e=z().$implicit;w("inline",!0),c(1),se(e.icon)}}function dq(t,n){if(1&t){const e=et();D(0,"div",2)(1,"button",3),ye("click",function(){const s=Pe(e).index;return Oe(z().closePopup(s+1))}),D(2,"div",4),V(3,cq,2,2,"mat-icon",5),D(4,"span"),I(5),R(6,"translate"),C()()()()}if(2&t){const e=n.$implicit;c(3),w("ngIf",e.icon),c(2),se(H(6,2,e.label))}}let qr=(()=>{class t{static openDialog(e,i,o){const s=new En;return s.data={options:i,title:o},s.autoFocus=!1,s.width=Vt.smallModalWidth,e.open(t,s)}constructor(e,i){this.data=e,this.dialogRef=i}closePopup(e){this.dialogRef.close(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn))},t.\u0275cmp=Ze({type:t,selectors:[["app-select-option"]],decls:3,vars:6,consts:[[3,"headline","dialog","includeVerticalMargins"],["class","options-list-button-container",4,"ngFor","ngForOf"],[1,"options-list-button-container"],["mat-button","",1,"grey-button-background",3,"click"],[1,"internal-container"],["class","icon",3,"inline",4,"ngIf"],[1,"icon",3,"inline"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),V(2,dq,7,4,"div",1),C()),2&e&&(w("headline",H(1,4,i.data.title))("dialog",i.dialogRef)("includeVerticalMargins",!1),c(2),w("ngForOf",i.data.options))},dependencies:[gi,Ft,Wr,Cn,ei,wt],styles:[".icon[_ngcontent-%COMP%]{font-size:14px;width:14px;line-height:1}.grey-button-background[_ngcontent-%COMP%]{justify-content:left!important;min-height:45px}"]}),t})();var $n=(()=>(($n=$n||{}).TextInput="TextInput",$n.Select="Select",$n))();let ef=(()=>{class t{constructor(e){this.dom=e}copy(e){let i=null,o=!1;try{i=this.dom.createElement("textarea"),i.style.height="0px",i.style.left="-100px",i.style.opacity="0",i.style.position="fixed",i.style.top="-100px",i.style.width="0px",this.dom.body.appendChild(i),i.value=e,i.select(),this.dom.execCommand("copy"),o=!0}finally{i&&i.parentNode&&i.parentNode.removeChild(i)}return o}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function fq(t,n){if(1&t&&(Ue(0),D(1,"span",2),I(2),C(),We()),2&t){const e=z();c(2),se(e.shortText)}}function pq(t,n){if(1&t&&(Ue(0),D(1,"span"),I(2),C(),We()),2&t){const e=z();c(2),se(e.text)}}const mq=function(){return{"tooltip-word-break":!0}};let BI=(()=>{class t{constructor(){this.short=!1,this.showTooltip=!0,this.shortTextLength=5}get shortText(){if(this.text.length>2*this.shortTextLength){const e=this.text.length;return`${this.text.slice(0,this.shortTextLength)}...${this.text.slice(e-this.shortTextLength,e)}`}return this.text}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-truncated-text"]],inputs:{short:"short",showTooltip:"showTooltip",text:"text",shortTextLength:"shortTextLength"},decls:3,vars:5,consts:[[1,"wrapper",3,"matTooltip","matTooltipClass"],[4,"ngIf"],[1,"nowrap"]],template:function(e,i){1&e&&(D(0,"div",0),V(1,fq,3,1,"ng-container",1),V(2,pq,3,1,"ng-container",1),C()),2&e&&(w("matTooltip",i.short&&i.showTooltip?i.text:"")("matTooltipClass",qn(4,mq)),c(1),w("ngIf",i.short),c(1),w("ngIf",!i.short))},dependencies:[Ft,vi],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.nowrap[_ngcontent-%COMP%]{white-space:nowrap}.wrapper[_ngcontent-%COMP%]{display:inline}']}),t})();function gq(t,n){if(1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),ce(" ",H(2,1,e.labelComponents.prefix)," ")}}function _q(t,n){if(1&t&&(D(0,"span"),I(1),C()),2&t){const e=z();c(1),ce(" ",e.labelComponents.prefixSeparator," ")}}function bq(t,n){if(1&t&&(D(0,"span"),I(1),C()),2&t){const e=z();c(1),ce(" ",e.labelComponents.label," ")}}function vq(t,n){if(1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),ce(" ",H(2,1,e.labelComponents.translatableLabel)," ")}}const yq=function(t){return{text:t}},Mq=function(){return{"tooltip-word-break":!0}};class wq{constructor(){this.prefix="",this.prefixSeparator="",this.label="",this.translatableLabel=""}}let ha=(()=>{class t{set id(e){this.idInternal=e,this.labelComponents=t.getLabelComponents(this.storageService,this.id)}get id(){return this.idInternal?this.idInternal:""}static getLabelComponents(e,i){let o;o=!!e.getSavedVisibleLocalNodes().has(i);const s=new wq;return s.labelInfo=e.getLabelInfo(i),s.labelInfo&&s.labelInfo.label?(o&&(s.prefix="labeled-element.local-element",s.prefixSeparator=" - "),s.label=s.labelInfo.label):e.getSavedVisibleLocalNodes().has(i)?s.prefix="labeled-element.unnamed-local-visor":s.translatableLabel="labeled-element.unnamed-element",s}static getCompleteLabel(e,i,o){const s=t.getLabelComponents(e,o);return(s.prefix?i.instant(s.prefix):"")+s.prefixSeparator+s.label+(s.translatableLabel?i.instant(s.translatableLabel):"")}constructor(e,i,o,s,a){this.dialog=e,this.storageService=i,this.clipboardService=o,this.snackbarService=s,this.router=a,this.short=!1,this.shortTextLength=5,this.elementType=Xi.Node,this.labelEdited=new ht}ngOnDestroy(){this.labelEdited.complete()}processClick(){const e=[{icon:"filter_none",label:"labeled-element.copy"},{icon:"edit",label:"labeled-element.edit-label"}];this.labelComponents.labelInfo&&e.push({icon:"close",label:"labeled-element.remove-label"}),e.push({icon:"settings",label:"labeled-element.go-to-settings"}),qr.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{if(1===i)this.clipboardService.copy(this.id)&&this.snackbarService.showDone("copy.copied");else if(i>2)if(3===i&&this.labelComponents.labelInfo){const o=Jt.createConfirmationDialog(this.dialog,"labeled-element.remove-label-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.storageService.saveLabel(this.id,null,this.elementType),this.snackbarService.showDone("edit-label.label-removed-warning"),this.labelEdited.emit()})}else this.router.navigate(["/settings"]);else if(2===i){let o=this.labelComponents.labelInfo;o||(o={id:this.id,label:"",identifiedElementType:this.elementType}),N1.openDialog(this.dialog,o).afterClosed().subscribe(s=>{s&&this.labelEdited.emit()})}})}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(Ji),Y(ef),Y(Dn),Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-labeled-element-text"]],inputs:{id:"id",short:"short",shortTextLength:"shortTextLength",elementType:"elementType"},outputs:{labelEdited:"labelEdited"},decls:12,vars:17,consts:[[1,"wrapper","highlight-internal-icon",3,"matTooltip","matTooltipClass","click"],[1,"label"],[4,"ngIf"],[3,"short","showTooltip","shortTextLength","text"],[3,"inline"]],template:function(e,i){1&e&&(D(0,"div",0),ye("click",function(s){return s.stopPropagation(),s.preventDefault(),i.processClick()}),R(1,"translate"),D(2,"span",1),V(3,gq,3,3,"span",2),V(4,_q,2,1,"span",2),V(5,bq,2,1,"span",2),V(6,vq,3,3,"span",2),C(),xe(7,"br")(8,"app-truncated-text",3),I(9," \xa0"),D(10,"mat-icon",4),I(11,"settings"),C()()),2&e&&(w("matTooltip",kt(1,11,i.short?"labeled-element.tooltip-with-text":"labeled-element.tooltip",He(14,yq,i.id)))("matTooltipClass",qn(16,Mq)),c(3),w("ngIf",i.labelComponents&&i.labelComponents.prefix),c(1),w("ngIf",i.labelComponents&&i.labelComponents.prefixSeparator),c(1),w("ngIf",i.labelComponents&&i.labelComponents.label),c(1),w("ngIf",i.labelComponents&&i.labelComponents.translatableLabel),c(2),w("short",i.short)("showTooltip",!1)("shortTextLength",i.shortTextLength)("text",i.id),c(2),w("inline",!0))},dependencies:[Ft,Cn,vi,BI,wt],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.8rem;-webkit-user-select:none;user-select:none}.label[_ngcontent-%COMP%]{opacity:.7;font-size:.8rem}']}),t})();class Vn{constructor(n,e,i,o){this.properties=n,this.label=e,this.sortingMode=i,this.labelProperties=o}get id(){return this.properties.join("")}}var Zt=(()=>((Zt=Zt||{}).Text="Text",Zt.Number="Number",Zt.NumberReversed="NumberReversed",Zt.Boolean="Boolean",Zt))();class Rd{get sortingArrow(){return this.sortReverse?"keyboard_arrow_up":"keyboard_arrow_down"}get currentSortingColumn(){return this.sortBy}get sortingInReverseOrder(){return this.sortReverse}get dataSorted(){return this.dataUpdatedSubject.asObservable()}get currentlySortingByLabel(){return this.sortByLabel}constructor(n,e,i,o,s,a){this.dialog=n,this.translateService=e,this.storageService=i,this.sortReverse=!1,this.sortByLabel=!1,this.tieBreakerColumnIndex=null,this.columnStorageKeyPrefix="col_",this.orderStorageKeyPrefix="order_",this.labelStorageKeyPrefix="label_",this.dataUpdatedSubject=new J,this.sortableColumns=o,this.id=a,this.defaultColumnIndex=s,this.sortBy=o[s];const l=this.storageService.getDataForHv(this.columnStorageKeyPrefix+a);if(l){const d=o.find(_=>_.id===l);d&&(this.sortBy=d)}this.sortReverse="true"===this.storageService.getDataForHv(this.orderStorageKeyPrefix+a),this.sortByLabel="true"===this.storageService.getDataForHv(this.labelStorageKeyPrefix+a)}dispose(){this.dataUpdatedSubject.complete()}setTieBreakerColumnIndex(n){this.tieBreakerColumnIndex=n}setData(n){this.data=n,this.sortData()}changeSortingOrder(n){if(this.sortBy===n||n.labelProperties)if(n.labelProperties){const e=[{label:this.translateService.instant("tables.sort-by-value")},{label:this.translateService.instant("tables.sort-by-value")+" "+this.translateService.instant("tables.inverted-order")},{label:this.translateService.instant("tables.sort-by-label")},{label:this.translateService.instant("tables.sort-by-label")+" "+this.translateService.instant("tables.inverted-order")}];qr.openDialog(this.dialog,e,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(n,i>2,i%2==0)})}else this.sortReverse=!this.sortReverse,this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.sortData();else this.changeSortingParams(n,!1,!1)}changeSortingParams(n,e,i){this.sortBy=n,this.sortByLabel=e,this.sortReverse=i,this.storageService.setDataForHv(this.columnStorageKeyPrefix+this.id,n.id),this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.storageService.setDataForHv(this.labelStorageKeyPrefix+this.id,String(this.sortByLabel)),this.sortData()}openSortingOrderModal(){const n=[],e=[];this.sortableColumns.forEach(i=>{const o=this.translateService.instant(i.label);n.push({label:o}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!1}),n.push({label:o+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!1}),i.labelProperties&&(n.push({label:o+" "+this.translateService.instant("tables.label")}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!0}),n.push({label:o+" "+this.translateService.instant("tables.label")+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!0}))}),qr.openDialog(this.dialog,n,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(e[i-1].sortBy,e[i-1].sortByLabel,e[i-1].sortReverse)})}sortData(){this.data&&(this.data.sort((n,e)=>{let i=this.getSortResponse(this.sortBy,n,e,!0);return 0===i&&null!==this.tieBreakerColumnIndex&&this.sortableColumns[this.tieBreakerColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.tieBreakerColumnIndex],n,e,!1)),0===i&&this.sortableColumns[this.defaultColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.defaultColumnIndex],n,e,!1)),i}),this.dataUpdatedSubject.next())}getSortResponse(n,e,i,o){let a=e,l=i;(this.sortByLabel&&o&&n.labelProperties?n.labelProperties:n.properties).forEach(E=>{a=a[E],l=l[E]});const d=this.sortByLabel&&o?Zt.Text:n.sortingMode;let _=0;return d===Zt.Text?_=this.sortReverse?l.localeCompare(a):a.localeCompare(l):d===Zt.NumberReversed?_=this.sortReverse?a-l:l-a:d===Zt.Number?_=this.sortReverse?l-a:a-l:d===Zt.Boolean&&(a&&!l?_=-1:!a&&l&&(_=1),_*=this.sortReverse?-1:1),_}}class Cq{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(n=!1,e,i=!0,o){this._multiple=n,this._emitChanges=i,this.compareWith=o,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new J,e&&e.length&&(n?e.forEach(s=>this._markSelected(s)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...n){this._verifyValueAssignment(n),n.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...n){this._verifyValueAssignment(n),n.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...n){this._verifyValueAssignment(n);const e=this.selected,i=new Set(n);n.forEach(s=>this._markSelected(s)),e.filter(s=>!i.has(s)).forEach(s=>this._unmarkSelected(s));const o=this._hasQueuedChanges();return this._emitChangeEvent(),o}toggle(n){return this.isSelected(n)?this.deselect(n):this.select(n)}clear(n=!0){this._unmarkAll();const e=this._hasQueuedChanges();return n&&this._emitChangeEvent(),e}isSelected(n){return this._selection.has(this._getConcreteValue(n))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(n){this._multiple&&this.selected&&this._selected.sort(n)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(n){n=this._getConcreteValue(n),this.isSelected(n)||(this._multiple||this._unmarkAll(),this.isSelected(n)||this._selection.add(n),this._emitChanges&&this._selectedToEmit.push(n))}_unmarkSelected(n){n=this._getConcreteValue(n),this.isSelected(n)&&(this._selection.delete(n),this._emitChanges&&this._deselectedToEmit.push(n))}_unmarkAll(){this.isEmpty()||this._selection.forEach(n=>this._unmarkSelected(n))}_verifyValueAssignment(n){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(n){if(this.compareWith){for(let e of this._selection)if(this.compareWith(n,e))return e;return n}return n}}const xq=["trigger"],kq=["panel"];function Sq(t,n){if(1&t&&(D(0,"span",10),I(1),C()),2&t){const e=z();c(1),se(e.placeholder)}}function Dq(t,n){if(1&t&&(D(0,"span",14),I(1),C()),2&t){const e=z(2);c(1),se(e.triggerValue)}}function Tq(t,n){1&t&&Sn(0,0,["*ngSwitchCase","true"])}function Lq(t,n){1&t&&(D(0,"span",11),V(1,Dq,2,1,"span",12),V(2,Tq,1,0,"ng-content",13),C()),2&t&&(w("ngSwitch",!!z().customTrigger),c(2),w("ngSwitchCase",!0))}function Eq(t,n){if(1&t){const e=et();wl(),zf(),D(0,"div",15,16),ye("@transformPanel.done",function(o){return Pe(e),Oe(z()._panelDoneAnimatingStream.next(o.toState))})("keydown",function(o){return Pe(e),Oe(z()._handleKeydown(o))}),Sn(2,1),C()}if(2&t){const e=z();(function Ix(t,n,e){es(go,Ls,Xc(Ve(),t,n,e),!0)})("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),w("ngClass",e.panelClass)("@transformPanel","showing"),Xt("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const Iq=[[["mat-select-trigger"]],"*"],Pq=["mat-select-trigger","*"],Oq={transformPanelWrap:ia("transformPanelWrap",[Pr("* => void",Iy("@transformPanel",[Ey()],{optional:!0}))]),transformPanel:ia("transformPanel",[yo("void",Qn({opacity:0,transform:"scale(1, 0.8)"})),Pr("void => showing",Ur("120ms cubic-bezier(0, 0, 0.2, 1)",Qn({opacity:1,transform:"scale(1, 1)"}))),Pr("* => void",Ur("100ms linear",Qn({opacity:0})))])};let VI=0;const jI=new Re("mat-select-scroll-strategy"),Fq=new Re("MAT_SELECT_CONFIG"),Rq={provide:jI,deps:[io],useFactory:function Aq(t){return()=>t.scrollStrategies.reposition()}},zI=new Re("MatSelectTrigger");class Nq{constructor(n,e){this.source=n,this.value=e}}const Yq=Rh(LL(Ed(EL(class{constructor(t,n,e,i,o){this._elementRef=t,this._defaultErrorStateMatcher=n,this._parentForm=e,this._parentFormGroup=i,this.ngControl=o,this.stateChanges=new J}}))));let Hq=(()=>{class t extends Yq{get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(Gt.required)??!1}set required(e){this._required=_n(e),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=_n(e)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(e){this._disableOptionCentering=_n(e)}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(e){this._typeaheadDebounceInterval=So(e)}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}constructor(e,i,o,s,a,l,d,_,E,F,G,ie,_e,Ce){super(a,s,d,_,F),this._viewportRuler=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=l,this._parentFormField=E,this._liveAnnouncer=_e,this._defaultOptions=Ce,this._panelOpen=!1,this._compareWith=(Ae,ze)=>Ae===ze,this._uid="mat-select-"+VI++,this._triggerAriaLabelledBy=null,this._destroy=new J,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+VI++,this._panelDoneAnimatingStream=new J,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.optionSelectionChanges=jl(()=>{const Ae=this.options;return Ae?Ae.changes.pipe(Go(Ae),gr(()=>bt(...Ae.map(ze=>ze.onSelectionChange)))):this._ngZone.onStable.pipe(Kn(1),gr(()=>this.optionSelectionChanges))}),this.openedChange=new ht,this._openedStream=this.openedChange.pipe(_i(Ae=>Ae),ke(()=>{})),this._closedStream=this.openedChange.pipe(_i(Ae=>!Ae),ke(()=>{})),this.selectionChange=new ht,this.valueChange=new ht,this.ngControl&&(this.ngControl.valueAccessor=this),null!=Ce?.typeaheadDebounceInterval&&(this._typeaheadDebounceInterval=Ce.typeaheadDebounceInterval),this._scrollStrategyFactory=ie,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(G)||0,this.id=this.id}ngOnInit(){this._selectionModel=new Cq(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(V0(),Hn(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe(Hn(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(Go(null),Hn(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const o=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?o.setAttribute("aria-labelledby",e):o.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,o=40===i||38===i||37===i||39===i,s=13===i||32===i,a=this._keyManager;if(!a.isTyping()&&s&&!Fs(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const l=this.selected;a.onKeydown(e);const d=this.selected;d&&l!==d&&this._liveAnnouncer.announce(d.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,s=40===o||38===o,a=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(a||13!==o&&32!==o||!i.activeItem||Fs(e))if(!a&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const l=this.options.some(d=>!d.disabled&&!d.selected);this.options.forEach(d=>{d.disabled||(l?d.select():d.deselect())})}else{const l=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==l&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Kn(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(o=>{if(this._selectionModel.isSelected(o))return!1;try{return null!=o.value&&this._compareWith(o.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_skipPredicate(e){return e.disabled}_initKeyManager(){this._keyManager=new bz(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=bt(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(Hn(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),bt(...this.options.map(i=>i._stateChanges)).pipe(Hn(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(o!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),o!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,o)=>this.sortComparator?this.sortComparator(i,o,e):e.indexOf(i)-e.indexOf(o)),this.stateChanges.next()}}_propagateChanges(e){let i=null;i=this.multiple?this.selected.map(o=>o.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}}return t.\u0275fac=function(e){return new(e||t)(Y(kd),Y(pi),Y(ft),Y(e1),Y(vt),Y(Do,8),Y(Xh,8),Y(ii,8),Y(A1,8),Y(Rs,10),Pa("tabindex"),Y(jI),Y(K0),Y(Fq,8))},t.\u0275dir=Ke({type:t,viewQuery:function(e,i){if(1&e&&(_t(xq,5),_t(kq,5),_t(lL,5)),2&e){let o;rt(o=ot())&&(i.trigger=o.first),rt(o=ot())&&(i.panel=o.first),rt(o=ot())&&(i._overlayDir=o.first)}},inputs:{userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[nt,Gi]}),t})(),Bq=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["mat-select-trigger"]],features:[un([{provide:zI,useExisting:t}])]}),t})(),tf=(()=>{class t extends Hq{constructor(){super(...arguments),this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}],this._hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1,this._skipPredicate=e=>!this.panelOpen&&e.disabled}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe(Hn(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(),this._changeDetectorRef.detectChanges())})}ngAfterViewInit(){this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin())}open(){this._overlayWidth=this._getOverlayWidth(),super.open(),this.stateChanges.next()}close(){super.close(),this.stateChanges.next()}_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,s=function uU(t,n,e){if(e.length){let i=n.toArray(),o=e.toArray(),s=0;for(let a=0;ae+i?Math.max(0,t-i+n):e}(a.offsetTop,a.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new Nq(this,e)}_getOverlayWidth(){return(this._preferredOverlayOrigin instanceof Y0?this._preferredOverlayOrigin.elementRef:this._preferredOverlayOrigin||this._elementRef).nativeElement.getBoundingClientRect().width}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=_n(e),this._syncParentProperties()}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["mat-select"]],contentQueries:function(e,i,o){if(1&e&&(or(o,zI,5),or(o,Pd,5),or(o,NL,5)),2&e){let s;rt(s=ot())&&(i.customTrigger=s.first),rt(s=ot())&&(i.options=s),rt(s=ot())&&(i.optionGroups=s)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox","ngSkipHydration","true",1,"mat-mdc-select"],hostVars:19,hostBindings:function(e,i){1&e&&ye("keydown",function(s){return i._handleKeydown(s)})("focus",function(){return i._onFocus()})("blur",function(){return i._onBlur()}),2&e&&(Xt("id",i.id)("tabindex",i.tabIndex)("aria-controls",i.panelOpen?i.id+"-panel":null)("aria-expanded",i.panelOpen)("aria-label",i.ariaLabel||null)("aria-required",i.required.toString())("aria-disabled",i.disabled.toString())("aria-invalid",i.errorState)("aria-activedescendant",i._getAriaActiveDescendant()),nn("mat-mdc-select-disabled",i.disabled)("mat-mdc-select-invalid",i.errorState)("mat-mdc-select-required",i.required)("mat-mdc-select-empty",i.empty)("mat-mdc-select-multiple",i.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",hideSingleSelectionIndicator:"hideSingleSelectionIndicator"},exportAs:["matSelect"],features:[un([{provide:O1,useExisting:t},{provide:RL,useExisting:t}]),nt],ngContentSelectors:Pq,decls:11,vars:11,consts:[["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],[1,"mat-mdc-select-value",3,"ngSwitch"],["class","mat-mdc-select-placeholder mat-mdc-select-min-line",4,"ngSwitchCase"],["class","mat-mdc-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","backdropClick","attach","detach"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text",3,"ngSwitch"],["class","mat-mdc-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(e,i){if(1&e&&(Ir(Iq),D(0,"div",0,1),ye("click",function(){return i.toggle()}),D(3,"div",2),V(4,Sq,2,1,"span",3),V(5,Lq,3,2,"span",4),C(),D(6,"div",5)(7,"div",6),wl(),D(8,"svg",7),xe(9,"path",8),C()()()(),V(10,Eq,3,9,"ng-template",9),ye("backdropClick",function(){return i.close()})("attach",function(){return i._onAttached()})("detach",function(){return i.close()})),2&e){const o=ci(1);Xt("aria-owns",i.panelOpen?i.id+"-panel":null),c(3),w("ngSwitch",i.empty),Xt("id",i._valueId),c(1),w("ngSwitchCase",!0),c(1),w("ngSwitchCase",!1),c(5),w("cdkConnectedOverlayPanelClass",i._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",i._scrollStrategy)("cdkConnectedOverlayOrigin",i._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",i.panelOpen)("cdkConnectedOverlayPositions",i._positions)("cdkConnectedOverlayWidth",i._overlayWidth)}},dependencies:[Nn,eh,my,aD,lL,Y0],styles:['.mdc-menu-surface{display:none;position:absolute;box-sizing:border-box;margin:0;padding:0;transform:scale(1);transform-origin:top left;opacity:0;overflow:auto;will-change:transform,opacity;transform-origin-left:top left;transform-origin-right:top right}.mdc-menu-surface:focus{outline:none}.mdc-menu-surface--animating-open{display:inline-block;transform:scale(0.8);opacity:0}.mdc-menu-surface--open{display:inline-block;transform:scale(1);opacity:1}.mdc-menu-surface--animating-closed{display:inline-block;opacity:0}[dir=rtl] .mdc-menu-surface,.mdc-menu-surface[dir=rtl]{transform-origin-left:top right;transform-origin-right:top left}.mdc-menu-surface--anchor{position:relative;overflow:visible}.mdc-menu-surface--fixed{position:fixed}.mdc-menu-surface--fullwidth{width:100%}.mdc-menu-surface{max-width:calc(100vw - 32px);max-width:var(--mdc-menu-max-width, calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:var(--mdc-menu-max-height, calc(100vh - 32px));z-index:8;border-radius:4px;border-radius:var(--mdc-shape-medium, 4px)}.mat-mdc-select{display:inline-block;width:100%;outline:none}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}.mdc-menu-surface.mat-mdc-select-panel{width:100%;max-height:275px;position:static;outline:0;margin:0;padding:8px 0;list-style-type:none}.mdc-menu-surface.mat-mdc-select-panel:focus{outline:none}.cdk-high-contrast-active .mdc-menu-surface.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) .mdc-menu-surface.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above .mdc-menu-surface.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}'],encapsulation:2,data:{animation:[Oq.transformPanel]},changeDetection:0}),t})(),Vq=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[Rq],imports:[ta,Td,YL,Wn,Lh,Lg,YL,Wn]}),t})();function jq(t,n){if(1&t&&xe(0,"input",9),2&t){const e=z().$implicit;w("formControlName",e.keyNameInFiltersObject)("maxlength",e.maxlength)}}function zq(t,n){if(1&t&&(D(0,"div",14),xe(1,"div",15),C()),2&t){const e=z().$implicit,i=z(2).$implicit;di("background-image: url('"+i.printableLabelGeneralSettings.defaultImage+"'); width: "+i.printableLabelGeneralSettings.imageWidth+"px; height: "+i.printableLabelGeneralSettings.imageHeight+"px;"),c(1),di("background-image: url('"+e.image+"');")}}function Uq(t,n){if(1&t&&(D(0,"mat-option",12),V(1,zq,2,4,"div",13),I(2),R(3,"translate"),C()),2&t){const e=n.$implicit,i=z(2).$implicit;w("value",e.value),c(1),w("ngIf",i.printableLabelGeneralSettings&&e.image),c(1),ce(" ",H(3,3,e.label)," ")}}function Wq(t,n){if(1&t&&(D(0,"mat-select",10),V(1,Uq,4,5,"mat-option",11),C()),2&t){const e=z().$implicit;w("formControlName",e.keyNameInFiltersObject),c(1),w("ngForOf",e.printableLabelsForValues)}}function $q(t,n){if(1&t&&(Ue(0),D(1,"mat-form-field")(2,"div",5)(3,"label",6),I(4),R(5,"translate"),C(),V(6,jq,1,2,"input",7),V(7,Wq,2,2,"mat-select",8),C()(),We()),2&t){const e=n.$implicit,i=z();c(4),se(H(5,3,e.filterName)),c(2),w("ngIf",e.type===i.filterFieldTypes.TextInput),c(1),w("ngIf",e.type===i.filterFieldTypes.Select)}}let Gq=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.filterFieldTypes=$n}ngOnInit(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=[this.data.currentFilters[i.keyNameInFiltersObject]]}),this.form=this.formBuilder.group(e)}apply(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=this.form.get(i.keyNameInFiltersObject).value.trim()}),this.dialogRef.close(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-filters-selection"]],decls:8,vars:9,consts:[[3,"headline","dialog"],[3,"formGroup"],[4,"ngFor","ngForOf"],["color","primary",1,"float-right",3,"action"],["button",""],[1,"field-container"],["for","remoteKey",1,"field-label"],["matInput","",3,"formControlName","maxlength",4,"ngIf"],[3,"formControlName",4,"ngIf"],["matInput","",3,"formControlName","maxlength"],[3,"formControlName"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["class","image-container",3,"style",4,"ngIf"],[1,"image-container"],[1,"image"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1),V(3,$q,8,5,"ng-container",2),C(),D(4,"app-button",3,4),ye("action",function(){return i.apply()}),I(6),R(7,"translate"),C()()),2&e&&(w("headline",H(1,5,"filters.filter-action"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(1),w("ngForOf",i.data.filterPropertiesList),c(3),ce(" ",H(7,7,"common.ok")," "))},dependencies:[gi,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,tf,Pd,Ui,ei,wt],styles:[".image-container[_ngcontent-%COMP%]{display:inline-block;background-size:contain;margin-right:5px}.image-container[_ngcontent-%COMP%] .image[_ngcontent-%COMP%]{background-size:contain;width:100%;height:100%}"]}),t})();class Nd{get currentFiltersTexts(){return this.currentFiltersTextsInternal}get currentUrlQueryParams(){return this.currentUrlQueryParamsInternal}get dataFiltered(){return this.dataUpdatedSubject.asObservable()}constructor(n,e,i,o,s){this.dialog=n,this.route=e,this.router=i,this.currentFiltersTextsInternal=[],this.dataUpdatedSubject=new J,this.filterPropertiesList=o,this.currentFilters={},this.filterPropertiesList.forEach(a=>{a.keyNameInFiltersObject=s+"_"+a.keyNameInElementsArray,this.currentFilters[a.keyNameInFiltersObject]=""}),this.navigationsSubscription=this.route.queryParamMap.subscribe(a=>{Object.keys(this.currentFilters).forEach(l=>{a.has(l)&&(this.currentFilters[l]=a.get(l))}),this.currentUrlQueryParamsInternal={},a.keys.forEach(l=>{this.currentUrlQueryParamsInternal[l]=a.get(l)}),this.filter()})}dispose(){this.dataUpdatedSubject.complete(),this.navigationsSubscription.unsubscribe()}setData(n){this.data=n,this.filter()}removeFilters(){const n=Jt.createConfirmationDialog(this.dialog,"filters.remove-confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.closeModal(),this.router.navigate([],{queryParams:{}})})}changeFilters(){Gq.openDialog(this.dialog,{filterPropertiesList:this.filterPropertiesList,currentFilters:this.currentFilters}).afterClosed().subscribe(e=>{e&&this.router.navigate([],{queryParams:e})})}filter(){if(this.data){let n,e=!1;Object.keys(this.currentFilters).forEach(i=>{this.currentFilters[i]&&(e=!0)}),e?(n=function uq(t,n,e){if(t){const i=[];return Object.keys(n).forEach(s=>{if(n[s])for(const a of e)if(a.keyNameInFiltersObject===s){i.push(a);break}}),t.filter(s=>{let a=!0;return i.forEach(l=>{const d=String(s[l.keyNameInElementsArray]).toLowerCase().includes(n[l.keyNameInFiltersObject].toLowerCase()),_=l.secondaryKeyNameInElementsArray&&String(s[l.secondaryKeyNameInElementsArray]).toLowerCase().includes(n[l.keyNameInFiltersObject].toLowerCase());!d&&!_&&(a=!1)}),a})}return null}(this.data,this.currentFilters,this.filterPropertiesList),this.updateCurrentFilters()):(n=this.data,this.updateCurrentFilters()),this.dataUpdatedSubject.next(n)}}updateCurrentFilters(){this.currentFiltersTextsInternal=function hq(t,n){const e=[];return n.forEach(i=>{if(t[i.keyNameInFiltersObject]){let o,s;i.printableLabelsForValues&&i.printableLabelsForValues.forEach(a=>{a.value===t[i.keyNameInFiltersObject]&&(s=a.label)}),s||(o=t[i.keyNameInFiltersObject]),e.push({filterName:i.filterName,translatableValue:s,value:o})}}),e}(this.currentFilters,this.filterPropertiesList)}}function qq(t,n){if(1&t){const e=et();D(0,"div",5)(1,"div",6)(2,"div",7),I(3),C(),D(4,"div",8),I(5),C()(),D(6,"div",9)(7,"app-button",10),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).openTerminal(s.key))}),I(8),R(9,"translate"),C()()()}if(2&t){const e=n.$implicit;c(3),se(e.label),c(2),se(e.version),c(3),ce(" ",H(9,3,"update-all.update-button")," ")}}function Kq(t,n){if(1&t&&(Ue(0),D(1,"div",2),I(2),R(3,"translate"),C(),D(4,"div",3),V(5,qq,10,5,"div",4),C(),We()),2&t){const e=z();c(2),ce(" ",H(3,2,"update-all.updatable-list-text")," "),c(3),w("ngForOf",e.updatableNodes)}}function Zq(t,n){if(1&t&&(D(0,"div",8),I(1),C()),2&t){const e=z().$implicit;c(1),se(e.tag)}}function Xq(t,n){if(1&t&&(D(0,"div",5)(1,"div",6)(2,"div",7),I(3),C(),D(4,"div",8),I(5),C(),V(6,Zq,2,1,"div",11),C()()),2&t){const e=n.$implicit;c(3),se(e.label),c(2),se(e.version),c(1),w("ngIf",e.tag)}}function Jq(t,n){if(1&t&&(Ue(0),D(1,"div",2),I(2),R(3,"translate"),C(),D(4,"div",3),V(5,Xq,7,3,"div",4),C(),We()),2&t){const e=z();c(2),ce(" ",H(3,2,"update-all.non-updatable-list-text")," "),c(3),w("ngForOf",e.nonUpdatableNodes)}}let Qq=(()=>{class t{static openDialog(e,i,o){const s=new En;return s.data=[i,o],s.autoFocus=!1,s.width=Vt.smallModalWidth,e.open(t,s)}constructor(e,i){this.dialogRef=e,this.updatableNodes=i[0],this.nonUpdatableNodes=i[1]}openTerminal(e){const i=window.location.protocol,o=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(i+"//"+o+"/pty/"+e+"?commands=update","_blank","noopener noreferrer")}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li))},t.\u0275cmp=Ze({type:t,selectors:[["app-update-all"]],decls:4,vars:6,consts:[[3,"headline","dialog"],[4,"ngIf"],[1,"text-container"],[1,"list-container"],["class","list-element",4,"ngFor","ngForOf"],[1,"list-element"],[1,"left-part"],[1,"name"],[1,"version"],[1,"right-part"],["color","primary",3,"click"],["class","version",4,"ngIf"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),V(2,Kq,6,4,"ng-container",1),V(3,Jq,6,4,"ng-container",1),C()),2&e&&(w("headline",H(1,4,"update-all.title"))("dialog",i.dialogRef),c(2),w("ngIf",i.updatableNodes&&i.updatableNodes.length>0),c(1),w("ngIf",i.nonUpdatableNodes&&i.nonUpdatableNodes.length>0))},dependencies:[gi,Ft,Ui,ei,wt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex;margin-bottom:10px}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1;align-self:center;margin-right:10px;min-width:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 575px){.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:.7rem}}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:.7rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-part[_ngcontent-%COMP%]{flex-basis:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{color:#777}"]}),t})();const eK=["input"],tK=["label"],nK=["*"],iK=new Re("mat-checkbox-default-options",{providedIn:"root",factory:UI});function UI(){return{color:"accent",clickAction:"check-indeterminate"}}const rK={provide:ls,useExisting:pn(()=>fa),multi:!0};class oK{}let sK=0;const WI=UI(),aK=LL(Fh(Rh(Ed(class{constructor(t){this._elementRef=t}}))));let lK=(()=>{class t extends aK{get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(e){this._required=_n(e)}constructor(e,i,o,s,a,l,d){super(i),this._changeDetectorRef=o,this._ngZone=s,this._animationMode=l,this._options=d,this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new ht,this.indeterminateChange=new ht,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||WI,this.color=this.defaultColor=this._options.color||WI.color,this.tabIndex=parseInt(a)||0,this.id=this._uniqueId=`${e}${++sK}`}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){const i=_n(e);i!=this.checked&&(this._checked=i,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){const i=_n(e);i!==this.disabled&&(this._disabled=i,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=_n(e),i&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_transitionCheckState(e){let i=this._currentCheckState,o=this._getAnimationTargetElement();if(i!==e&&o&&(this._currentAnimationClass&&o.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){o.classList.add(this._currentAnimationClass);const s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{o.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case 0:if(1===i)return this._animationClasses.uncheckedToChecked;if(3==i)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case 2:return 1===i?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case 1:return 2===i?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case 3:return 1===i?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}}return t.\u0275fac=function(e){Aa()},t.\u0275dir=Ke({type:t,viewQuery:function(e,i){if(1&e&&(_t(eK,5),_t(tK,5),_t(Zl,5)),2&e){let o;rt(o=ot())&&(i._inputElement=o.first),rt(o=ot())&&(i._labelElement=o.first),rt(o=ot())&&(i.ripple=o.first)}},inputs:{ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},features:[nt]}),t})(),fa=(()=>{class t extends lK{constructor(e,i,o,s,a,l){super("mat-mdc-checkbox-",e,i,o,s,a,l),this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"}}focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new oK;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_onInputClick(){super._handleInputClick()}_onTouchTargetClick(){super._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(ft),Pa("tabindex"),Y(Ri,8),Y(iK,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-checkbox"]],hostAttrs:[1,"mat-mdc-checkbox"],hostVars:12,hostBindings:function(e,i){2&e&&(Js("id",i.id),Xt("tabindex",null)("aria-label",null)("aria-labelledby",null),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mdc-checkbox--disabled",i.disabled)("mat-mdc-checkbox-disabled",i.disabled)("mat-mdc-checkbox-checked",i.checked))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matCheckbox"],features:[un([rK]),nt],ngContentSelectors:nK,decls:15,vars:19,consts:[[1,"mdc-form-field",3,"click"],[1,"mdc-checkbox"],["checkbox",""],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"checked","indeterminate","disabled","id","required","tabIndex","blur","click","change"],["input",""],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"],["label",""]],template:function(e,i){if(1&e&&(Ir(),D(0,"div",0),ye("click",function(s){return i._preventBubblingFromLabel(s)}),D(1,"div",1,2)(3,"div",3),ye("click",function(){return i._onTouchTargetClick()}),C(),D(4,"input",4,5),ye("blur",function(){return i._onBlur()})("click",function(){return i._onInputClick()})("change",function(s){return i._onInteractionEvent(s)}),C(),xe(6,"div",6),D(7,"div",7),wl(),D(8,"svg",8),xe(9,"path",9),C(),zf(),xe(10,"div",10),C(),xe(11,"div",11),C(),D(12,"label",12,13),Sn(14),C()()),2&e){const o=ci(2);nn("mdc-form-field--align-end","before"==i.labelPosition),c(4),nn("mdc-checkbox--selected",i.checked),w("checked",i.checked)("indeterminate",i.indeterminate)("disabled",i.disabled)("id",i.inputId)("required",i.required)("tabIndex",i.tabIndex),Xt("aria-label",i.ariaLabel||null)("aria-labelledby",i.ariaLabelledby)("aria-describedby",i.ariaDescribedby)("name",i.name)("value",i.value),c(7),w("matRippleTrigger",o)("matRippleDisabled",i.disableRipple||i.disabled)("matRippleCentered",!0),c(1),w("for",i.inputId)}},dependencies:[Zl],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mat-mdc-checkbox{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0}),t})(),$I=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})(),uK=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,Yh,$I,Wn,$I]}),t})();const hK=["button"];function fK(t,n){1&t&&(D(0,"span",22),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"bulk-rewards.checking"),""))}function pK(t,n){if(1&t&&(D(0,"span",23)(1,"span"),I(2),R(3,"translate"),C(),D(4,"span"),I(5),R(6,"translate"),C()()),2&t){const e=z(2).$implicit;c(2),ce(" ",H(3,2,"bulk-rewards.error-checking"),""),c(3),ce(" ",H(6,4,e.operationError),"")}}function mK(t,n){if(1&t&&(D(0,"span"),I(1),C()),2&t){const e=z(2).$implicit;c(1),ce(" ",e.currentAddress,"")}}function gK(t,n){1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"bulk-rewards.not-registered"),""))}function _K(t,n){if(1&t&&(Ue(0,15),D(1,"mat-checkbox",16)(2,"div")(3,"div",17),I(4),C(),D(5,"div",18)(6,"span",19),I(7),R(8,"translate"),C(),V(9,fK,3,3,"span",20),V(10,pK,7,6,"span",21),V(11,mK,2,1,"span",12),V(12,gK,3,3,"span",12),C()()(),We()),2&t){const e=z(),o=e.$implicit;w("formGroupName",e.index),c(4),ce(" ",o.label," "),c(3),se(H(8,7,"bulk-rewards.current-address")),c(2),w("ngIf",null===o.currentAddress&&!o.operationError),c(1),w("ngIf",o.operationError),c(1),w("ngIf",o.currentAddress&&!o.operationError),c(1),w("ngIf",""===o.currentAddress&&!o.operationError)}}function bK(t,n){1&t&&(D(0,"span",22),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"bulk-rewards.processing"),""))}function vK(t,n){if(1&t&&(D(0,"span",23)(1,"span"),I(2),R(3,"translate"),C(),D(4,"span"),I(5),R(6,"translate"),C()()),2&t){const e=z(2).$implicit;c(2),ce(" ",H(3,2,"bulk-rewards.error-processing"),""),c(3),ce(" ",H(6,4,e.operationError),"")}}function yK(t,n){1&t&&(D(0,"span",28),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"bulk-rewards.done"),""))}function MK(t,n){if(1&t&&(Ue(0),D(1,"div",24),I(2,"-"),C(),D(3,"div",25),I(4),D(5,"div",26),V(6,bK,3,3,"span",20),V(7,vK,7,6,"span",21),V(8,yK,3,3,"span",27),C()(),We()),2&t){const e=z().$implicit;c(4),ce(" ",e.label," "),c(2),w("ngIf",e.processing&&!e.operationError),c(1),w("ngIf",e.operationError),c(1),w("ngIf",!e.processing&&!e.operationError)}}const wK=function(t){return{"element-margin":t}};function CK(t,n){if(1&t&&(D(0,"div",13),V(1,_K,13,9,"ng-container",14),V(2,MK,9,4,"ng-container",12),C()),2&t){const e=z();w("ngClass",He(3,wK,e.processingStarted)),c(1),w("ngIf",!e.processingStarted),c(1),w("ngIf",e.processingStarted)}}function xK(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"bulk-rewards.perform-changes")))}function kK(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"common.close")))}const SK=function(t){return{"element-disabled":t}};let DK=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o,s,a){this.dialogRef=e,this.data=i,this.nodeService=o,this.formBuilder=s,this.dialog=a,this.processingStarted=!1,this.processingFinished=!1,this.currentlyProcessed=0,this.form=s.group({address:["",Gt.compose([Gt.minLength(20),Gt.maxLength(40)])],nodes:s.array([])}),i.nodes.forEach(l=>{const d=this.formBuilder.group({selected:[!0]});this.form.get("nodes").push(d)}),this.startChecking()}formValid(){if(!this.processingStarted){if(!this.form.valid)return!1;let e=0;return this.form.get("nodes").controls.forEach((i,o)=>{i.get("selected")?.value&&(e+=1)}),e>0}return!0}get disableDismiss(){return this.processingStarted&&!this.processingFinished}startChecking(){this.nodesToEdit=[],this.data.nodes.forEach(e=>{this.nodesToEdit.push({key:e.key,label:e.label,currentAddress:null,operationError:"",processing:!1})}),this.operationSubscriptions=[],this.nodesToEdit.forEach((e,i)=>{this.operationSubscriptions.push(this.nodeService.getRewardsAddress(e.key).subscribe(o=>{this.nodesToEdit[i].currentAddress=o},o=>{this.nodesToEdit[i].operationError=o.translatableErrorMsg?o.translatableErrorMsg:o.originalServerErrorMsg}))})}checkBeforeProcessing(){if(this.form.valid)if(this.form.get("address").value)this.startProcessing();else{const i=Jt.createConfirmationDialog(this.dialog,"bulk-rewards.empty-warning");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.startProcessing()})}}startProcessing(){this.processingStarted=!0,this.button.showLoading(),this.closeoperationSubscriptions();const e=[];this.form.get("nodes").controls.forEach((o,s)=>{o.get("selected")?.value&&(this.nodesToEdit[s].operationError="",this.nodesToEdit[s].processing=!0,e.push(this.nodesToEdit[s]))}),this.nodesToEdit=e;const i=this.form.get("address").value;this.form.get("address").disable(),this.currentlyProcessed=0,this.operationSubscriptions=[],this.nodesToEdit.forEach((o,s)=>{let a=this.nodeService.setRewardsAddress(o.key,i);i||(a=this.nodeService.deleteRewardsAddress(o.key)),this.operationSubscriptions.push($e(0).pipe(Ti(100),Ye(()=>a)).subscribe(l=>{this.nodesToEdit[s].processing=!1,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())},l=>{this.nodesToEdit[s].processing=!1,this.nodesToEdit[s].operationError=l.translatableErrorMsg?l.translatableErrorMsg:l.originalServerErrorMsg,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())}))})}ngOnDestroy(){this.closeoperationSubscriptions()}closeoperationSubscriptions(){this.operationSubscriptions&&this.operationSubscriptions.forEach(e=>e.unsubscribe())}closeModal(){this.dialogRef.close()}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(ua),Y(xr),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-bulk-reward-address-changer"]],viewQuery:function(e,i){if(1&e&&_t(hK,5),2&e){let o;rt(o=ot())&&(i.button=o.first)}},decls:30,vars:28,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"text-container"],["href","https://github.com/skycoin/skywire/blob/master/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","40","matInput","",3,"ngClass"],["formArrayName","nodes",1,"list-container"],["class","list-element",3,"ngClass",4,"ngFor","ngForOf"],[1,"buttons"],["type","mat-raised-button","color","primary",3,"disabled","action"],["button",""],[4,"ngIf"],[1,"list-element",3,"ngClass"],[3,"formGroupName",4,"ngIf"],[3,"formGroupName"],["color","primary","formControlName","selected"],[1,"contents"],[1,"address","contents"],[1,"address-label"],["class","blinking",4,"ngIf"],["class","red-text",4,"ngIf"],[1,"blinking"],[1,"red-text"],[1,"left-area"],[1,"right-area","contents"],[1,"address"],["class","green-text",4,"ngIf"],[1,"green-text"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"div",2)(4,"span"),I(5),R(6,"translate"),C(),D(7,"a",3),I(8),R(9,"translate"),C()(),D(10,"mat-form-field")(11,"div",4)(12,"label",5),I(13),R(14,"translate"),C(),xe(15,"input",6),C(),D(16,"mat-error")(17,"span"),I(18),R(19,"translate"),C()()(),D(20,"div",2),I(21),R(22,"translate"),C(),D(23,"div",7),V(24,CK,3,5,"div",8),C()(),D(25,"div",9)(26,"app-button",10,11),ye("action",function(){return i.processingStarted?i.closeModal():i.checkBeforeProcessing()}),V(28,xK,3,3,"ng-container",12),V(29,kK,3,3,"ng-container",12),C()()()),2&e&&(w("headline",H(1,14,"bulk-rewards.title"))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(2),w("formGroup",i.form),c(3),ce("",H(6,16,"bulk-rewards.info")," "),c(3),ce(" ",H(9,18,"bulk-rewards.more-info-link")," "),c(5),se(H(14,20,"rewards-address-config.address")),c(2),w("ngClass",He(26,SK,i.processingStarted)),c(3),se(H(19,22,"rewards-address-config.address-error")),c(3),ce(" ",H(22,24,"bulk-rewards.select-visors")," "),c(3),w("ngForOf",i.nodesToEdit),c(2),w("disabled",!i.formValid()),c(2),w("ngIf",!i.processingStarted),c(1),w("ngIf",i.processingStarted))},dependencies:[Nn,gi,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,Jh,Qh,ar,sl,kr,fa,Ui,ei,wt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}mat-form-field[_ngcontent-%COMP%]{margin-top:10px}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.list-container[_ngcontent-%COMP%] .element-margin[_ngcontent-%COMP%]{margin:15px 0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-area[_ngcontent-%COMP%]{width:12px;flex-grow:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-area[_ngcontent-%COMP%]{flex-grow:1}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .contents[_ngcontent-%COMP%]{white-space:normal;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%]{font-size:.7rem;color:#777}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%] .address-label[_ngcontent-%COMP%]{opacity:.7}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]}),t})();const TK=["mat-menu-item",""];function LK(t,n){1&t&&(wl(),D(0,"svg",3),xe(1,"polygon",4),C())}const EK=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],IK=["mat-icon, [matMenuItemIcon]","*"];function PK(t,n){if(1&t){const e=et();D(0,"div",0),ye("keydown",function(o){return Pe(e),Oe(z()._handleKeydown(o))})("click",function(){return Pe(e),Oe(z().closed.emit("click"))})("@transformMenu.start",function(o){return Pe(e),Oe(z()._onAnimationStart(o))})("@transformMenu.done",function(o){return Pe(e),Oe(z()._onAnimationDone(o))}),D(1,"div",1),Sn(2),C()()}if(2&t){const e=z();w("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),Xt("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const OK=["*"],Y1=new Re("MAT_MENU_PANEL"),AK=Rh(Ed(class{}));let pa=(()=>{class t extends AK{constructor(e,i,o,s,a){super(),this._elementRef=e,this._document=i,this._focusMonitor=o,this._parentMenu=s,this._changeDetectorRef=a,this.role="menuitem",this._hovered=new J,this._focused=new J,this._highlighted=!1,this._triggersSubmenu=!1,s?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o enter",Ur("120ms cubic-bezier(0, 0, 0.2, 1)",Qn({opacity:1,transform:"scale(1)"}))),Pr("* => void",Ur("100ms 25ms linear",Qn({opacity:0})))]),fadeInItems:ia("fadeInItems",[yo("showing",Qn({opacity:1})),Pr("void => *",[Qn({opacity:0}),Ur("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let RK=0;const GI=new Re("mat-menu-default-options",{providedIn:"root",factory:function NK(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let nf=(()=>{class t{get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(e){this._overlapTrigger=_n(e)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=_n(e)}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(o=>{this._classList[o]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(o=>{this._classList[o]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,o,s){this._elementRef=e,this._ngZone=i,this._changeDetectorRef=s,this._directDescendantItems=new Al,this._classList={},this._panelAnimationState="void",this._animationDone=new J,this.closed=new ht,this.close=this.closed,this.panelId="mat-menu-panel-"+RK++,this.overlayPanelClass=o.overlayPanelClass||"",this._xPosition=o.xPosition,this._yPosition=o.yPosition,this.backdropClass=o.backdropClass,this._overlapTrigger=o.overlapTrigger,this._hasBackdrop=o.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new _L(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(Go(this._directDescendantItems),gr(e=>bt(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const o=e.toArray(),s=Math.max(0,Math.min(o.length-1,i.activeItemIndex||0));o[s]&&!o[s].disabled?i.setActiveItem(s):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(Go(this._directDescendantItems),gr(i=>bt(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:Fs(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&o.setFocusOrigin("keyboard"),void o.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(Kn(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),o=`${this._elevationPrefix}${i}`,s=Object.keys(this._classList).find(a=>a.startsWith(this._elevationPrefix));(!s||s===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[o]=!0,this._previousElevation=o)}setPositionClasses(e=this.xPosition,i=this.yPosition){const o=this._classList;o["mat-menu-before"]="before"===e,o["mat-menu-after"]="after"===e,o["mat-menu-above"]="above"===i,o["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(Go(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ft),Y(GI),Y(pi))},t.\u0275dir=Ke({type:t,contentQueries:function(e,i,o){if(1&e&&(or(o,FK,5),or(o,pa,5),or(o,pa,4)),2&e){let s;rt(s=ot())&&(i.lazyContent=s.first),rt(s=ot())&&(i._allItems=s),rt(s=ot())&&(i.items=s)}},viewQuery:function(e,i){if(1&e&&_t(mr,5),2&e){let o;rt(o=ot())&&(i.templateRef=o.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:["class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}}),t})(),Yd=(()=>{class t extends nf{constructor(e,i,o,s){super(e,i,o,s),this._elevationPrefix="mat-elevation-z",this._baseElevation=8}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ft),Y(GI),Y(pi))},t.\u0275cmp=Ze({type:t,selectors:[["mat-menu"]],hostAttrs:["ngSkipHydration","true"],hostVars:3,hostBindings:function(e,i){2&e&&Xt("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[un([{provide:Y1,useExisting:t}]),nt],ngContentSelectors:OK,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mdc-menu-surface","mdc-menu-surface--open","mat-mdc-elevation-specific",3,"id","ngClass","keydown","click"],[1,"mat-mdc-menu-content","mdc-list"]],template:function(e,i){1&e&&(Ir(),V(0,PK,3,6,"ng-template"))},dependencies:[Nn],styles:['.mdc-menu-surface{display:none;position:absolute;box-sizing:border-box;margin:0;padding:0;transform:scale(1);transform-origin:top left;opacity:0;overflow:auto;will-change:transform,opacity;transform-origin-left:top left;transform-origin-right:top right}.mdc-menu-surface:focus{outline:none}.mdc-menu-surface--animating-open{display:inline-block;transform:scale(0.8);opacity:0}.mdc-menu-surface--open{display:inline-block;transform:scale(1);opacity:1}.mdc-menu-surface--animating-closed{display:inline-block;opacity:0}[dir=rtl] .mdc-menu-surface,.mdc-menu-surface[dir=rtl]{transform-origin-left:top right;transform-origin-right:top left}.mdc-menu-surface--anchor{position:relative;overflow:visible}.mdc-menu-surface--fixed{position:fixed}.mdc-menu-surface--fullwidth{width:100%}.mdc-menu-surface{max-width:var(--mdc-menu-max-width, calc(100vw - 32px));max-height:var(--mdc-menu-max-height, calc(100vh - 32px));z-index:8;border-radius:var(--mdc-shape-medium, 4px)}mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-panel.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item.mdc-list-item{align-items:center}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item .mdc-list-item__primary-text{white-space:normal}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[Ig.transformMenu,Ig.fadeInItems]},changeDetection:0}),t})();const qI=new Re("mat-menu-scroll-strategy"),HK={provide:qI,deps:[io],useFactory:function YK(t){return()=>t.scrollStrategies.reposition()}},KI=Za({passive:!0});let BK=(()=>{class t{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(e,i,o,s,a,l,d,_,E){this._overlay=e,this._element=i,this._viewContainerRef=o,this._menuItemInstance=l,this._dir=d,this._focusMonitor=_,this._ngZone=E,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=T.EMPTY,this._hoverSubscription=T.EMPTY,this._menuCloseSubscription=T.EMPTY,this._changeDetectorRef=Qe(pi),this._handleTouchStart=F=>{q0(F)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new ht,this.onMenuOpen=this.menuOpened,this.menuClosed=new ht,this.onMenuClose=this.menuClosed,this._scrollStrategy=s,this._parentMaterialMenu=a instanceof nf?a:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,KI)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,KI),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),o=i.getConfig(),s=o.positionStrategy;this._setPosition(e,s),o.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof nf&&(e._startAnimation(),e._directDescendantItems.changes.pipe(Hn(e.close)).subscribe(()=>{s.withLockedPosition(!1).reapplyLastPosition(),s.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof nf?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(_i(o=>"void"===o.toState),Kn(1),Hn(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,o=e.parentMenu;for(;o;)i++,o=o.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new Oh({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{const s="start"===o.connectionPair.overlayX?"after":"before",a="top"===o.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(s,a)):e.setPositionClasses(s,a)})}_setPosition(e,i){let[o,s]="before"===e.xPosition?["end","start"]:["start","end"],[a,l]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[d,_]=[a,l],[E,F]=[o,s],G=0;if(this.triggersSubmenu()){if(F=o="before"===e.xPosition?"start":"end",s=E="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const ie=this._parentMaterialMenu.items.first;this._parentInnerPadding=ie?ie._getHostElement().offsetTop:0}G="bottom"===a?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(d="top"===a?"bottom":"top",_="top"===l?"bottom":"top");i.withPositions([{originX:o,originY:d,overlayX:E,overlayY:a,offsetY:G},{originX:s,originY:d,overlayX:F,overlayY:a,offsetY:G},{originX:o,originY:_,overlayX:E,overlayY:l,offsetY:-G},{originX:s,originY:_,overlayX:F,overlayY:l,offsetY:-G}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return bt(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:$e(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(_i(a=>a!==this._menuItemInstance),_i(()=>this._menuOpen)):$e(),i)}_handleMousedown(e){G0(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(_i(e=>e===this._menuItemInstance&&!e.disabled),Ti(0,E0)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof nf&&this.menu._isAnimating?this.menu._animationDone.pipe(Kn(1),Ti(0,E0),Hn(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new Gl(e.templateRef,this._viewContainerRef)),this._portal}}return t.\u0275fac=function(e){return new(e||t)(Y(io),Y(vt),Y(rr),Y(qI),Y(Y1,8),Y(pa,10),Y(Do,8),Y(Qa),Y(ft))},t.\u0275dir=Ke({type:t,hostVars:3,hostBindings:function(e,i){1&e&&ye("click",function(s){return i._handleClick(s)})("mousedown",function(s){return i._handleMousedown(s)})("keydown",function(s){return i._handleKeydown(s)}),2&e&&Xt("aria-haspopup",i.menu?"menu":null)("aria-expanded",i.menuOpen)("aria-controls",i.menuOpen?i.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:["mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:["matMenuTriggerFor","menu"],menuData:["matMenuTriggerData","menuData"],restoreFocus:["matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}}),t})(),Hd=(()=>{class t extends BK{}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275dir=Ke({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],exportAs:["matMenuTrigger"],features:[nt]}),t})(),VK=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[HK],imports:[ta,Yh,Wn,Td,Lh,Wn]}),t})();const ZI=function(){return["1"]};function jK(t,n){if(1&t&&(D(0,"a",10)(1,"mat-icon",11),I(2,"chevron_left"),C(),I(3),R(4,"translate"),C()),2&t){const e=z();w("routerLink",e.linkParts.concat(qn(6,ZI)))("queryParams",e.queryParams),c(1),w("inline",!0),c(2),ce(" ",H(4,4,"paginator.first")," ")}}function zK(t,n){if(1&t&&(D(0,"a",12)(1,"mat-icon",11),I(2,"chevron_left"),C(),D(3,"span",13),I(4),R(5,"translate"),C()()),2&t){const e=z();w("routerLink",e.linkParts.concat(qn(6,ZI)))("queryParams",e.queryParams),c(1),w("inline",!0),c(3),se(H(5,4,"paginator.first"))}}const al=function(t){return[t]};function UK(t,n){if(1&t&&(D(0,"a",10)(1,"div")(2,"mat-icon",11),I(3,"chevron_left"),C()()()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage-1).toString())))("queryParams",e.queryParams),c(2),w("inline",!0)}}function WK(t,n){if(1&t&&(D(0,"a",10),I(1),C()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage-2).toString())))("queryParams",e.queryParams),c(1),se(e.currentPage-2)}}function $K(t,n){if(1&t&&(D(0,"a",14),I(1),C()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage-1).toString())))("queryParams",e.queryParams),c(1),se(e.currentPage-1)}}function GK(t,n){if(1&t&&(D(0,"a",14),I(1),C()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage+1).toString())))("queryParams",e.queryParams),c(1),se(e.currentPage+1)}}function qK(t,n){if(1&t&&(D(0,"a",10),I(1),C()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage+2).toString())))("queryParams",e.queryParams),c(1),se(e.currentPage+2)}}function KK(t,n){if(1&t&&(D(0,"a",10)(1,"div")(2,"mat-icon",11),I(3,"chevron_right"),C()()()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage+1).toString())))("queryParams",e.queryParams),c(2),w("inline",!0)}}function ZK(t,n){if(1&t&&(D(0,"a",10),I(1),R(2,"translate"),D(3,"mat-icon",11),I(4,"chevron_right"),C()()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(6,al,e.numberOfPages.toString())))("queryParams",e.queryParams),c(1),ce(" ",H(2,4,"paginator.last")," "),c(2),w("inline",!0)}}function XK(t,n){if(1&t&&(D(0,"a",12)(1,"mat-icon",11),I(2,"chevron_right"),C(),D(3,"span",13),I(4),R(5,"translate"),C()()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(6,al,e.numberOfPages.toString())))("queryParams",e.queryParams),c(1),w("inline",!0),c(3),se(H(5,4,"paginator.last"))}}const XI=function(t){return{number:t}};function JK(t,n){if(1&t&&(D(0,"div",15),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),se(kt(2,1,"paginator.total",He(4,XI,e.numberOfPages)))}}function QK(t,n){if(1&t&&(D(0,"div",16),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),se(kt(2,1,"paginator.total",He(4,XI,e.numberOfPages)))}}let Bd=(()=>{class t{constructor(e,i){this.dialog=e,this.router=i,this.linkParts=[""],this.queryParams={}}openSelectionDialog(){const e=[];for(let i=1;i<=this.numberOfPages;i++)e.push({label:i.toString()});qr.openDialog(this.dialog,e,"paginator.select-page-title").afterClosed().subscribe(i=>{i&&this.router.navigate(this.linkParts.concat([i.toString()]),{queryParams:this.queryParams})})}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-paginator"]],inputs:{currentPage:"currentPage",numberOfPages:"numberOfPages",linkParts:"linkParts",queryParams:"queryParams"},decls:21,vars:13,consts:[[1,"main-container"],[1,"d-inline-block","small-rounded-elevated-box","mt-3"],[1,"d-flex"],[1,"responsive-height","d-md-none"],["class","d-none d-md-flex",3,"routerLink","queryParams",4,"ngIf"],["class","d-flex d-md-none flex-column",3,"routerLink","queryParams",4,"ngIf"],[3,"routerLink","queryParams",4,"ngIf"],[1,"selected",3,"click"],["class","d-none d-md-block total-pages",4,"ngIf"],["class","d-block d-md-none total-pages",4,"ngIf"],[1,"d-none","d-md-flex",3,"routerLink","queryParams"],[3,"inline"],[1,"d-flex","d-md-none","flex-column",3,"routerLink","queryParams"],[1,"label"],[3,"routerLink","queryParams"],[1,"d-none","d-md-block","total-pages"],[1,"d-block","d-md-none","total-pages"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3),I(4,"\xa0"),xe(5,"br"),I(6,"\xa0"),C(),V(7,jK,5,7,"a",4),V(8,zK,6,7,"a",5),V(9,UK,4,5,"a",4),V(10,WK,2,5,"a",4),V(11,$K,2,5,"a",6),D(12,"a",7),ye("click",function(){return i.openSelectionDialog()}),I(13),C(),V(14,GK,2,5,"a",6),V(15,qK,2,5,"a",4),V(16,KK,4,5,"a",4),V(17,ZK,5,8,"a",4),V(18,XK,6,8,"a",5),C()(),V(19,JK,3,6,"div",8),V(20,QK,3,6,"div",9),C()),2&e&&(c(7),w("ngIf",i.currentPage>3),c(1),w("ngIf",i.currentPage>2),c(1),w("ngIf",i.currentPage>1),c(1),w("ngIf",i.currentPage>2),c(1),w("ngIf",i.currentPage>1),c(2),se(i.currentPage),c(1),w("ngIf",i.currentPage3),c(1),w("ngIf",i.numberOfPages>2))},dependencies:[Ft,qa,Cn,wt],styles:[".main-container[_ngcontent-%COMP%]{text-align:right}.main-container[_ngcontent-%COMP%] .responsive-height[_ngcontent-%COMP%]{padding:10px 0;width:0px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:10px;border-right:rgba(255,255,255,.15) solid 1px;border-left:rgba(255,255,255,.15) solid 1px;min-width:40px;text-align:center;color:#f8f9f980;text-decoration:none;display:flex;align-items:center;justify-content:center}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.2)}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.7rem}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{color:#f8f9f9;background:rgba(0,0,0,.36);padding:10px 20px;cursor:pointer}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.6)}.main-container[_ngcontent-%COMP%] .total-pages[_ngcontent-%COMP%]{font-size:.6rem;margin-top:-3px;margin-right:4px}"]}),t})();function rf(t){return n=>n.lift(new eZ(t,n))}class eZ{constructor(n,e){this.notifier=n,this.source=e}call(n,e){return e.subscribe(new tZ(n,this.notifier,this.source))}}class tZ extends Me{constructor(n,e,i){super(n),this.notifier=e,this.source=i}error(n){if(!this.isStopped){let e=this.errors,i=this.retries,o=this.retriesSubscription;if(i)this.errors=void 0,this.retriesSubscription=void 0;else{e=new J;try{const{notifier:s}=this;i=s(e)}catch(s){return super.error(s)}o=Ie(i,new be(this))}this._unsubscribeAndRecycle(),this.errors=e,this.retries=i,this.retriesSubscription=o,e.next(n)}}_unsubscribe(){const{errors:n,retriesSubscription:e}=this;n&&(n.unsubscribe(),this.errors=void 0),e&&(e.unsubscribe(),this.retriesSubscription=void 0),this.retries=void 0}notifyNext(){const{_unsubscribe:n}=this;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=n,this.source.subscribe(this)}}let ll=(()=>{class t{constructor(e){this.apiService=e}changeAppState(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,{status:o?1:0})}changeAppAutostart(e,i,o){return this.changeAppSettings(e,i,{autostart:o})}changeAppSettings(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,o)}getLogMessages(e,i,o){const a=KS(-1!==o?Date.now()-864e5*o:0,"yyyy-MM-ddTHH:mm:ssZZZZZ","en-US");return this.apiService.get(this.getLogMessagesUrl(e,i)+`?since=${a}`).pipe(ke(l=>l.logs))}getLogMessagesUrl(e,i){return`visors/${e}/apps/${encodeURIComponent(i)}/logs`}}return t.\u0275fac=function(e){return new(e||t)(we(il))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var Pn=(()=>((Pn=Pn||{}).None="None",Pn.Favorite="Favorite",Pn.Blocked="Blocked",Pn))(),Sr=(()=>((Sr=Sr||{}).BitsSpeedAndBytesVolume="BitsSpeedAndBytesVolume",Sr.OnlyBytes="OnlyBytes",Sr.OnlyBits="OnlyBits",Sr))();let rc=(()=>{class t{constructor(e,i){this.router=e,this.storageService=i,this.maxHistoryElements=30,this.savedServersStorageKey="VpnServers",this.checkIpSettingStorageKey="VpnGetIp",this.dataUnitsSettingStorageKey="VpnDataUnits",this.serversMap=new Map,this.savedDataVersion=0,this.currentServerSubject=new ko(1),this.historySubject=new ko(1),this.favoritesSubject=new ko(1),this.blockedSubject=new ko(1)}initialize(){this.migrateDataToHvStorage(),this.serversMap=new Map;const e=this.storageService.getDataForHv(this.savedServersStorageKey);if(e){const i=JSON.parse(e);i.serverList.forEach(o=>{this.serversMap.set(o.pk,o)}),this.savedDataVersion=i.version,i.selectedServerPk&&this.updateCurrentServerPk(i.selectedServerPk)}this.launchListEvents()}migrateDataToHvStorage(){const e=localStorage.getItem(this.savedServersStorageKey);e&&(this.storageService.setDataForHv(this.savedServersStorageKey,e),localStorage.removeItem(this.savedServersStorageKey));const i=localStorage.getItem(this.checkIpSettingStorageKey);i&&(this.storageService.setDataForHv(this.checkIpSettingStorageKey,i),localStorage.removeItem(this.checkIpSettingStorageKey));const o=localStorage.getItem(this.dataUnitsSettingStorageKey);o&&(this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,o),localStorage.removeItem(this.dataUnitsSettingStorageKey))}get currentServer(){return this.serversMap.get(this.currentServerPk)}get currentServerObservable(){return this.currentServerSubject.asObservable()}get history(){return this.historySubject.asObservable()}get favorites(){return this.favoritesSubject.asObservable()}get blocked(){return this.blockedSubject.asObservable()}getSavedVersion(e,i){return i&&this.checkIfDataWasChanged(),this.serversMap.get(e)}getCheckIpSetting(){const e=this.storageService.getDataForHv(this.checkIpSettingStorageKey);return null==e||"false"!==e}setCheckIpSetting(e){this.storageService.setDataForHv(this.checkIpSettingStorageKey,e?"true":"false")}getDataUnitsSetting(){return this.storageService.getDataForHv(this.dataUnitsSettingStorageKey)??Sr.BitsSpeedAndBytesVolume}setDataUnitsSetting(e){this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,e)}updateFromDiscovery(e){this.checkIfDataWasChanged(),e.forEach(i=>{if(this.serversMap.has(i.pk)){const o=this.serversMap.get(i.pk);o.countryCode=i.countryCode,o.name=i.name,o.location=i.location,o.note=i.note}}),this.saveData()}updateServer(e){this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData()}processFromDiscovery(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.countryCode=e.countryCode,i.name=e.name,i.location=e.location,i.note=e.note,this.saveData(),i):{countryCode:e.countryCode,name:e.name,customName:null,pk:e.pk,lastUsed:0,inHistory:!1,flag:Pn.None,location:e.location,personalNote:null,note:e.note,enteredManually:!1,usedWithPassword:!1}}processFromManual(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.customName=e.name,i.personalNote=e.note,i.enteredManually=!0,this.saveData(),i):{countryCode:"zz",name:"",customName:e.name,pk:e.pk,lastUsed:0,inHistory:!1,flag:Pn.None,location:"",personalNote:e.note,note:"",enteredManually:!0,usedWithPassword:!1}}changeFlag(e,i){this.checkIfDataWasChanged();const o=this.serversMap.get(e.pk);o&&(e=o),e.flag!==i&&(e.flag=i,this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData())}removeFromHistory(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e);!i||!i.inHistory||(i.inHistory=!1,this.cleanServers(),this.saveData())}modifyCurrentServer(e){this.checkIfDataWasChanged(),e.pk!==this.currentServerPk&&(this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.updateCurrentServerPk(e.pk),this.cleanServers(),this.saveData())}compareCurrentServer(e){if(this.checkIfDataWasChanged(),e){if(!this.currentServerPk||this.currentServerPk!==e){if(this.currentServerPk=e,!this.serversMap.get(e)){const o=this.processFromManual({pk:e});this.serversMap.set(o.pk,o),this.cleanServers()}this.saveData(),this.currentServerSubject.next(this.currentServer)}}else this.currentServerPk&&(this.currentServerPk=null,this.saveData(),this.currentServerSubject.next(this.currentServer))}updateHistory(){this.checkIfDataWasChanged(),this.currentServer.lastUsed=Date.now(),this.currentServer.inHistory=!0;let e=[];this.serversMap.forEach(o=>{o.inHistory&&e.push(o)}),e=e.sort((o,s)=>s.lastUsed-o.lastUsed);let i=0;e.forEach(o=>{i{!i.inHistory&&i.flag===Pn.None&&i.pk!==this.currentServerPk&&!i.customName&&!i.personalNote&&e.push(i.pk)}),e.forEach(i=>{this.serversMap.delete(i)})}saveData(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);if(i&&(e=JSON.parse(i).version),e!==this.savedDataVersion)return void this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"storage"}});this.savedDataVersion+=1;const o={version:this.savedDataVersion,serverList:Array.from(this.serversMap.values()),selectedServerPk:this.currentServerPk},s=JSON.stringify(o);this.storageService.setDataForHv(this.savedServersStorageKey,s),this.launchListEvents()}checkIfDataWasChanged(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);i&&(e=JSON.parse(i).version),e!==this.savedDataVersion&&this.initialize()}launchListEvents(){const e=[],i=[],o=[];this.serversMap.forEach(s=>{s.inHistory&&e.push(s),s.flag===Pn.Favorite&&i.push(s),s.flag===Pn.Blocked&&o.push(s)}),this.historySubject.next(e),this.favoritesSubject.next(i),this.blockedSubject.next(o)}updateCurrentServerPk(e){this.currentServerPk=e,this.currentServerSubject.next(this.currentServer)}}return t.\u0275fac=function(e){return new(e||t)(we(hn),we(Ji))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var on=(()=>((on=on||{}).Stopped="stopped",on.Connecting="Connecting",on.Running="Running",on.ShuttingDown="Shutting down",on.Reconnecting="Connection failed, reconnecting",on))();class nZ{constructor(){this.updateDate=Date.now()}}class iZ{}class rZ{constructor(){this.latency=0,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.connectionDuration=0,this.error=""}}var jn=(()=>((jn=jn||{})[jn.PerformingInitialCheck=1]="PerformingInitialCheck",jn[jn.Off=10]="Off",jn[jn.Starting=20]="Starting",jn[jn.Running=100]="Running",jn[jn.Disconnecting=200]="Disconnecting",jn))(),yi=(()=>((yi=yi||{})[yi.Busy=1]="Busy",yi[yi.Ok=2]="Ok",yi[yi.MustStop=3]="MustStop",yi[yi.SamePkRunning=4]="SamePkRunning",yi[yi.SamePkStopped=5]="SamePkStopped",yi))();let oc=(()=>{class t{constructor(e,i,o,s,a,l,d){this.apiService=e,this.appsService=i,this.router=o,this.vpnSavedDataService=s,this.http=a,this.snackbarService=l,this.translateService=d,this.vpnClientAppName="vpn-client",this.standardWaitTime=2e3,this.stateSubject=new Or(null),this.errorSubject=new Or(!1),this.working=!0,this.requestedServer=null,this.requestedPassword=null,this.updatesStopped=!1,this.currentEventData=new nZ,this.currentEventData.busy=!0,this.lastServiceState=jn.PerformingInitialCheck}initialize(e){e&&(this.nodeKey?e!==this.nodeKey?this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"pkChange"}}):this.updatesStopped&&(this.updatesStopped=!1,this.updateData()):(this.nodeKey=e,this.vpnSavedDataService.initialize(),this.updateData()))}get backendState(){return this.stateSubject.asObservable()}get errorsConnecting(){return this.errorSubject.asObservable()}updateData(){this.continuallyUpdateData(0)}start(){return!this.working&&this.lastServiceState<20&&(this.changeAppState(!0),!0)}stop(){return!this.working&&this.lastServiceState>=20&&this.lastServiceState<200&&(this.changeAppState(!1),!0)}getIpData(){return this.http.request("GET",window.location.protocol+"//ip.skycoin.com/").pipe(rf(e=>Ua(e.pipe(Ti(this.standardWaitTime),Kn(4)),Ar(""))),ke(e=>{let i="";i=e&&e.ip_address?e.ip_address:this.translateService.instant("common.unknown");let o="";return o=e&&e.country_name?e.country_name:this.translateService.instant("common.unknown"),[i,o]}))}changeServerUsingHistory(e,i){return this.requestedServer=e,this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerUsingDiscovery(e,i){return this.requestedServer=this.vpnSavedDataService.processFromDiscovery(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerManually(e,i){return this.requestedServer=this.vpnSavedDataService.processFromManual(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}updateRequestedServerPasswordSetting(){this.requestedServer.usedWithPassword=!!this.requestedPassword&&""!==this.requestedPassword;const e=this.vpnSavedDataService.getSavedVersion(this.requestedServer.pk,!0);e&&(e.usedWithPassword=this.requestedServer.usedWithPassword,this.vpnSavedDataService.updateServer(e))}changeServer(){return!this.working&&(this.stop()||this.processServerChange(),!0)}checkNewPk(e){return this.working?yi.Busy:this.lastServiceState!==jn.Off?e===this.vpnSavedDataService.currentServer.pk?yi.SamePkRunning:yi.MustStop:this.vpnSavedDataService.currentServer&&e===this.vpnSavedDataService.currentServer.pk?yi.SamePkStopped:yi.Ok}processServerChange(){this.dataSubscription&&this.dataSubscription.unsubscribe();const e={pk:this.requestedServer.pk};e.passcode=this.requestedPassword?this.requestedPassword:"",this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,e).subscribe(()=>{this.vpnSavedDataService.modifyCurrentServer(this.requestedServer),this.requestedServer=null,this.requestedPassword=null,this.working=!1,this.start()},i=>{i=en(i),this.snackbarService.showError("vpn.server-change.backend-error",null,!1,i.originalServerErrorMsg),this.working=!1,this.requestedServer=null,this.requestedPassword=null,this.sendUpdate(),this.updateData()})}changeAppState(e){if(this.working)return;this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate();const i={status:1};e?(this.lastServiceState=jn.Starting,this.connectionHistoryPk=null):(this.lastServiceState=jn.Disconnecting,i.status=0),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,i).pipe(Co(o=>this.getVpnClientState().pipe(Ye(s=>{if(s){if(e&&s.running)return $e(!0);if(!e&&!s.running)return $e(!0)}return Ar(o)}))),rf(o=>Ua(o.pipe(Ti(this.standardWaitTime),Kn(3)),o.pipe(Ye(s=>Ar(s)))))).subscribe(o=>{this.working=!1;const s=this.processAppData(o);this.lastServiceState=s.running?jn.Running:jn.Off,this.currentEventData.vpnClientAppData=s,this.currentEventData.updateDate=Date.now(),this.sendUpdate(),this.updateData(),!e&&this.requestedServer&&this.processServerChange()},o=>{o=en(o),this.snackbarService.showError(this.lastServiceState===jn.Starting?"vpn.status-page.problem-starting-error":this.lastServiceState===jn.Disconnecting?"vpn.status-page.problem-stopping-error":"vpn.status-page.generic-problem-error",null,!1,o.originalServerErrorMsg),this.working=!1,this.sendUpdate(),this.updateData()})}continuallyUpdateData(e){if(this.working&&this.lastServiceState!==jn.PerformingInitialCheck)return;this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe();let i=0;this.continuousUpdateSubscription=$e(0).pipe(Ti(e),Ye(()=>this.getVpnClientState()),rf(o=>o.pipe(Ye(s=>(this.errorSubject.next(!0),(s=en(s)).originalError&&s.originalError.status&&401===s.originalError.status?Ar(s):this.lastServiceState!==jn.PerformingInitialCheck||i<4?(i+=1,$e(s).pipe(Ti(this.standardWaitTime))):Ar(s)))))).subscribe(o=>{o?(this.errorSubject.next(!1),this.lastServiceState===jn.PerformingInitialCheck&&(this.working=!1),this.vpnSavedDataService.compareCurrentServer(o.serverPk),this.lastServiceState=o.running?jn.Running:jn.Off,this.currentEventData.vpnClientAppData=o,this.currentEventData.updateDate=Date.now(),this.sendUpdate()):this.lastServiceState===jn.PerformingInitialCheck&&(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null,this.updatesStopped=!0),this.continuallyUpdateData(this.standardWaitTime)},o=>{(o=en(o)).originalError&&o.originalError.status&&401===o.originalError.status||(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null),this.updatesStopped=!0})}stopContinuallyUpdatingData(){this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe()}getVpnClientState(){let e;const i=new Ql;return i.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/summary`,i).pipe(Ye(o=>{let s;if(o&&o.overview&&o.overview.apps&&o.overview.apps.length>0&&o.overview.apps.forEach(a=>{a.name===this.vpnClientAppName&&(s=a)}),s&&(e=this.processAppData(s)),e.minHops=o.min_hops?o.min_hops:0,e&&e.running){const a=new Ql;return a.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/apps/${this.vpnClientAppName}/connections`,a)}return $e(null)}),ke(o=>{if(o&&o.length>0){const s=new rZ;o.forEach(a=>{s.latency+=a.latency/o.length,s.uploadSpeed+=a.upload_speed/o.length,s.downloadSpeed+=a.download_speed/o.length,s.totalUploaded+=a.bandwidth_sent,s.totalDownloaded+=a.bandwidth_received,a.error&&(s.error=a.error),a.connection_duration>s.connectionDuration&&(s.connectionDuration=a.connection_duration)}),(!this.connectionHistoryPk||this.connectionHistoryPk!==e.serverPk)&&(this.connectionHistoryPk=e.serverPk,this.uploadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.downloadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0]),s.latency=Math.round(s.latency),s.uploadSpeed=Math.round(s.uploadSpeed),s.downloadSpeed=Math.round(s.downloadSpeed),s.totalUploaded=Math.round(s.totalUploaded),s.totalDownloaded=Math.round(s.totalDownloaded),this.uploadSpeedHistory.splice(0,1),this.uploadSpeedHistory.push(s.uploadSpeed),s.uploadSpeedHistory=this.uploadSpeedHistory,this.downloadSpeedHistory.splice(0,1),this.downloadSpeedHistory.push(s.downloadSpeed),s.downloadSpeedHistory=this.downloadSpeedHistory,this.latencyHistory.splice(0,1),this.latencyHistory.push(s.latency),s.latencyHistory=this.latencyHistory,e.connectionData=s}return e}))}processAppData(e){const i=new iZ;if(i.running=0!==e.status&&2!==e.status,i.connectionDuration=e.connection_duration,i.appState=on.Stopped,i.running?e.detailed_status===on.Connecting||3===e.status?i.appState=on.Connecting:e.detailed_status===on.Running?i.appState=on.Running:e.detailed_status===on.ShuttingDown?i.appState=on.ShuttingDown:e.detailed_status===on.Reconnecting&&(i.appState=on.Reconnecting):2===e.status&&(i.lastErrorMsg=e.detailed_status,i.lastErrorMsg||(i.lastErrorMsg=this.translateService.instant("vpn.status-page.unknown-error"))),i.killswitch=!1,e.args&&e.args.length>0)for(let o=0;o{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=s,this.vpnSavedDataService=a}ngOnInit(){this.form=this.formBuilder.group({value:[(this.data.editName?this.data.server.customName:this.data.server.personalNote)||""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){let e=this.vpnSavedDataService.getSavedVersion(this.data.server.pk,!0);e=e||this.data.server;const i=this.form.get("value").value;i!==(this.data.editName?this.data.server.customName:this.data.server.personalNote)?(this.data.editName?e.customName=i:e.personalNote=i,this.vpnSavedDataService.updateServer(e),this.snackbarService.showDone("vpn.server-options.edit-value.changes-made-confirmation"),this.dialogRef.close(!0)):this.dialogRef.close()}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr),Y(Dn),Y(rc))},t.\u0275cmp=Ze({type:t,selectors:[["app-edit-vpn-server-value"]],viewQuery:function(e,i){if(1&e&&_t(oZ,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","value","maxlength","100","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"action"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return i.process()}),I(11),R(12,"translate"),C()()),2&e&&(w("headline",H(1,5,"vpn.server-options.edit-value."+(i.data.editName?"name":"note")+"-title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,7,"vpn.server-options.edit-value."+(i.data.editName?"name":"note")+"-label")),c(5),ce(" ",H(12,9,"vpn.server-options.edit-value.apply-button")," "))},dependencies:[zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,Ui,ei,wt]}),t})();const aZ=["firstInput"];let JI=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.mediumModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({password:["",this.data?void 0:Gt.required]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){this.dialogRef.close("-"+this.form.get("password").value)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-enter-vpn-server-password"]],viewQuery:function(e,i){if(1&e&&_t(aZ,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:13,vars:12,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","password","type","password","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return i.process()}),I(11),R(12,"translate"),C()()),2&e&&(w("headline",H(1,6,"vpn.server-list.password-dialog.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,8,"vpn.server-list.password-dialog.password"+(i.data?"-if-any":"")+"-label")),c(4),w("disabled",!i.form.valid),c(1),ce(" ",H(12,10,"vpn.server-list.password-dialog.continue-button")," "))},dependencies:[zi,Bi,Vi,ji,ii,Ei,ar,kr,Ui,ei,wt]}),t})(),lr=(()=>{class t{static changeCurrentPk(e){this.currentPk=e}static setDefaultTabForServerList(e){sessionStorage.setItem(t.serverListTabStorageKey,e)}static get vpnTabsData(){const e=sessionStorage.getItem(t.serverListTabStorageKey);return[{icon:"power_settings_new",label:"vpn.start",linkParts:["/vpn",this.currentPk,"status"]},{icon:"list",label:"vpn.servers",linkParts:e?["/vpn",this.currentPk,"servers",e,"1"]:["/vpn",this.currentPk,"servers"]},{icon:"settings",label:"vpn.settings",linkParts:["/vpn",this.currentPk,"settings"]}]}static getLatencyValueString(e){return e<1e3?"time-in-ms":"time-in-segs"}static getPrintableLatency(e){return e<1e3?e+"":(e/1e3).toFixed(1)}static processServerChange(e,i,o,s,a,l,d,_,E,F,G){let ie;if(_&&(E||F)||E&&(_||F)||F&&(_||E))throw new Error("Invalid call");if(_)ie=_.pk;else if(E)ie=E.pk;else{if(!F)throw new Error("Invalid call");ie=F.pk}const _e=o.getSavedVersion(ie,!0),Ce=_e&&(G||_e.usedWithPassword),Ae=i.checkNewPk(ie);if(Ae!==yi.Busy)if(Ae!==yi.SamePkRunning||Ce)if(Ae===yi.MustStop||Ae===yi.SamePkRunning&&Ce){const ze=Jt.createConfirmationDialog(a,"vpn.server-change.change-server-while-connected-confirmation");ze.componentInstance.operationAccepted.subscribe(()=>{ze.componentInstance.closeModal(),_?i.changeServerUsingHistory(_,G):E?i.changeServerUsingDiscovery(E,G):F&&i.changeServerManually(F,G),t.redirectAfterServerChange(e,l,d)})}else if(Ae!==yi.SamePkStopped||Ce)_?i.changeServerUsingHistory(_,G):E?i.changeServerUsingDiscovery(E,G):F&&i.changeServerManually(F,G),t.redirectAfterServerChange(e,l,d);else{const ze=Jt.createConfirmationDialog(a,"vpn.server-change.start-same-server-confirmation");ze.componentInstance.operationAccepted.subscribe(()=>{ze.componentInstance.closeModal(),F&&_e&&o.processFromManual(F),i.start(),t.redirectAfterServerChange(e,l,d)})}else s.showWarning("vpn.server-change.already-selected-warning");else s.showError("vpn.server-change.busy-error")}static redirectAfterServerChange(e,i,o){i&&i.close(),e.navigate(["vpn",o,"status"])}static openServerOptions(e,i,o,s,a,l){const d=[],_=[];return e.usedWithPassword?(d.push({icon:"lock_open",label:"vpn.server-options.connect-without-password"}),_.push(201),d.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-another-password"}),_.push(202)):e.enteredManually&&(d.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-password"}),_.push(202)),d.push({icon:"edit",label:"vpn.server-options.edit-name"}),_.push(101),d.push({icon:"subject",label:"vpn.server-options.edit-label"}),_.push(102),(!e||e.flag!==Pn.Favorite)&&(d.push({icon:"star",label:"vpn.server-options.make-favorite"}),_.push(1)),e&&e.flag===Pn.Favorite&&(d.push({icon:"star_outline",label:"vpn.server-options.remove-from-favorites"}),_.push(-1)),(!e||e.flag!==Pn.Blocked)&&(d.push({icon:"pan_tool",label:"vpn.server-options.block"}),_.push(2)),e&&e.flag===Pn.Blocked&&(d.push({icon:"thumb_up",label:"vpn.server-options.unblock"}),_.push(-2)),e&&e.inHistory&&(d.push({icon:"delete",label:"vpn.server-options.remove-from-history"}),_.push(-3)),qr.openDialog(l,d,"common.options").afterClosed().pipe(Ye(E=>{if(E){const F=o.getSavedVersion(e.pk,!0);if(e=F||e,_[E-=1]>200){if(201===_[E]){let G=!1;const ie=Jt.createConfirmationDialog(l,"vpn.server-options.connect-without-password-confirmation");return ie.componentInstance.operationAccepted.subscribe(()=>{G=!0,t.processServerChange(i,s,o,a,l,null,t.currentPk,e,null,null,null),ie.componentInstance.closeModal()}),ie.afterClosed().pipe(ke(()=>G))}return JI.openDialog(l,!1).afterClosed().pipe(ke(G=>!(!G||"-"===G||(t.processServerChange(i,s,o,a,l,null,t.currentPk,e,null,null,G.substr(1)),0))))}if(_[E]>100)return sZ.openDialog(l,{editName:101===_[E],server:e}).afterClosed();if(1===_[E])return t.makeFavorite(e,o,a,l);if(-1===_[E])return o.changeFlag(e,Pn.None),a.showDone("vpn.server-options.remove-from-favorites-done"),$e(!0);if(2===_[E])return t.blockServer(e,o,s,a,l);if(-2===_[E])return o.changeFlag(e,Pn.None),a.showDone("vpn.server-options.unblock-done"),$e(!0);if(-3===_[E])return t.removeFromHistory(e,o,a,l)}return $e(!1)}))}static removeFromHistory(e,i,o,s){let a=!1;const l=Jt.createConfirmationDialog(s,"vpn.server-options.remove-from-history-confirmation");return l.componentInstance.operationAccepted.subscribe(()=>{a=!0,i.removeFromHistory(e.pk),o.showDone("vpn.server-options.remove-from-history-done"),l.componentInstance.closeModal()}),l.afterClosed().pipe(ke(()=>a))}static makeFavorite(e,i,o,s){if(e.flag!==Pn.Blocked)return i.changeFlag(e,Pn.Favorite),o.showDone("vpn.server-options.make-favorite-done"),$e(!0);let a=!1;const l=Jt.createConfirmationDialog(s,"vpn.server-options.make-favorite-confirmation");return l.componentInstance.operationAccepted.subscribe(()=>{a=!0,i.changeFlag(e,Pn.Favorite),o.showDone("vpn.server-options.make-favorite-done"),l.componentInstance.closeModal()}),l.afterClosed().pipe(ke(()=>a))}static blockServer(e,i,o,s,a){if(e.flag!==Pn.Favorite&&(!i.currentServer||i.currentServer.pk!==e.pk))return i.changeFlag(e,Pn.Blocked),s.showDone("vpn.server-options.block-done"),$e(!0);let l=!1;const d=i.currentServer&&i.currentServer.pk===e.pk;let _;_=e.flag!==Pn.Favorite?"vpn.server-options.block-selected-confirmation":d?"vpn.server-options.block-selected-favorite-confirmation":"vpn.server-options.block-confirmation";const E=Jt.createConfirmationDialog(a,_);return E.componentInstance.operationAccepted.subscribe(()=>{l=!0,i.changeFlag(e,Pn.Blocked),s.showDone("vpn.server-options.block-done"),d&&o.stop(),E.componentInstance.closeModal()}),E.afterClosed().pipe(ke(()=>l))}}return t.serverListTabStorageKey="ServerListTab",t.currentPk="",t})();var cr=(()=>((cr=cr||{})[cr.Seconds=0]="Seconds",cr[cr.Minutes=1]="Minutes",cr[cr.Hours=2]="Hours",cr[cr.Days=3]="Days",cr[cr.Weeks=4]="Weeks",cr))();class lZ{}class Pg{static getElapsedTime(n){const e=new lZ;e.timeRepresentation=cr.Seconds,e.totalMinutes=Math.floor(n/60).toString(),e.translationVarName="second";let i=1;n>=60&&n<3600?(e.timeRepresentation=cr.Minutes,i=60,e.translationVarName="minute"):n>=3600&&n<86400?(e.timeRepresentation=cr.Hours,i=3600,e.translationVarName="hour"):n>=86400&&n<604800?(e.timeRepresentation=cr.Days,i=86400,e.translationVarName="day"):n>=604800&&(e.timeRepresentation=cr.Weeks,i=604800,e.translationVarName="week");const o=Math.floor(n/i);return e.elapsedTime=o.toString(),(e.timeRepresentation===cr.Seconds||o>1)&&(e.translationVarName=e.translationVarName+"s"),e}}function cZ(t,n){1&t&&xe(0,"mat-spinner",6),2&t&&w("diameter",14)}function dZ(t,n){1&t&&xe(0,"mat-spinner",7),2&t&&w("diameter",18)}function uZ(t,n){1&t&&(D(0,"mat-icon",10),I(1,"refresh"),C()),2&t&&w("inline",!0)}function hZ(t,n){1&t&&(D(0,"mat-icon",11),I(1,"warning"),C()),2&t&&w("inline",!0)}function fZ(t,n){if(1&t&&(Ue(0),V(1,uZ,2,1,"mat-icon",8),V(2,hZ,2,1,"mat-icon",9),We()),2&t){const e=z();c(1),w("ngIf",!e.showAlert),c(1),w("ngIf",e.showAlert)}}const QI=function(t){return{time:t}};function pZ(t,n){if(1&t&&(D(0,"span",12),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),se(kt(2,1,"refresh-button."+e.elapsedTime.translationVarName,He(4,QI,e.elapsedTime.elapsedTime)))}}const mZ=function(t){return{"grey-button-background":t}};let gZ=(()=>{class t{constructor(){this.refeshRate=-1}set secondsSinceLastUpdate(e){this.elapsedTime=Pg.getElapsedTime(e)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-refresh-button"]],inputs:{secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate"},decls:7,vars:14,consts:[["mat-button","",1,"time-button","subtle-transparent-button","white-theme",3,"disabled","ngClass","matTooltip"],[1,"internal-container"],["class","icon d-none d-md-inline-block",3,"diameter",4,"ngIf"],["class","icon d-md-none",3,"diameter",4,"ngIf"],[4,"ngIf"],["class","d-none d-md-inline",4,"ngIf"],[1,"icon","d-none","d-md-inline-block",3,"diameter"],[1,"icon","d-md-none",3,"diameter"],["class","icon",3,"inline",4,"ngIf"],["class","icon alert",3,"inline",4,"ngIf"],[1,"icon",3,"inline"],[1,"icon","alert",3,"inline"],[1,"d-none","d-md-inline"]],template:function(e,i){1&e&&(D(0,"button",0),R(1,"translate"),D(2,"div",1),V(3,cZ,1,1,"mat-spinner",2),V(4,dZ,1,1,"mat-spinner",3),V(5,fZ,3,2,"ng-container",4),V(6,pZ,3,6,"span",5),C()()),2&e&&(w("disabled",i.showLoading)("ngClass",He(10,mZ,!i.showLoading))("matTooltip",i.showAlert?kt(1,7,"refresh-button.error-tooltip",He(12,QI,i.refeshRate)):""),c(3),w("ngIf",i.showLoading),c(1),w("ngIf",i.showLoading),c(1),w("ngIf",!i.showLoading),c(1),w("ngIf",i.elapsedTime))},dependencies:[Nn,Ft,Wr,Cn,vi,ec,wt],styles:[".time-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;height:40px}.time-button[disabled][_ngcontent-%COMP%]{opacity:.7!important;color:#f8f9f9}.time-button[disabled][_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.7}.time-button[_ngcontent-%COMP%] .internal-container[_ngcontent-%COMP%]{display:flex;align-items:center}.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:16px;margin-right:5px;opacity:.5;display:inline-block}@media (max-width: 767px){.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:22px;margin-right:0;opacity:.75}}.time-button[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%]{color:orange;opacity:1}.time-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.6rem}"]}),t})(),sf=(()=>{class t{transform(e,i){let s,o=!0;i?i.showPerSecond?i.useBits?(s=t.measurementsPerSecInBits,o=!1):s=t.measurementsPerSec:i.useBits?(s=t.accumulatedMeasurementsInBits,o=!1):s=t.accumulatedMeasurements:s=t.accumulatedMeasurements;let a=new F1.BigNumber(e);o||(a=a.multipliedBy(8));let l=s[0],d=0;for(;a.dividedBy(1024).isGreaterThan(1);)a=a.dividedBy(1024),d+=1,l=s[d];let _="";return(!i||i.showValue)&&(_=i&&i.limitDecimals?new F1.BigNumber(a).decimalPlaces(1).toString():a.toFixed(2)),(!i||i.showValue&&i.showUnit)&&(_+=" "),(!i||i.showUnit)&&(_+=l),_}}return t.accumulatedMeasurements=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],t.measurementsPerSec=["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"],t.accumulatedMeasurementsInBits=["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"],t.measurementsPerSecInBits=["b/s","Kb/s","Mb/s","Gb/s","Tb/s","Pb/s","Eb/s","Zb/s","Yb/s"],t.\u0275fac=function(e){return new(e||t)},t.\u0275pipe=ur({name:"autoScale",type:t,pure:!0}),t})();function _Z(t,n){if(1&t){const e=et();D(0,"button",23),ye("click",function(){return Pe(e),Oe(z().requestAction(null))}),D(1,"mat-icon"),I(2,"chevron_left"),C()()}}function bZ(t,n){1&t&&(Ue(0),xe(1,"img",24),We())}function vZ(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z();c(1),ce(" ",H(2,1,e.titleParts[e.titleParts.length-1])," ")}}const yZ=function(t){return{transparent:t}};function MZ(t,n){if(1&t){const e=et();Ue(0),D(1,"div",26),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).requestAction(s.actionName))}),D(2,"mat-icon",27),I(3),C(),I(4),R(5,"translate"),C(),We()}if(2&t){const e=n.$implicit;c(1),w("disabled",e.disabled),c(1),w("ngClass",He(6,yZ,e.disabled)),c(1),se(e.icon),c(1),ce(" ",H(5,4,e.name)," ")}}function wZ(t,n){1&t&&xe(0,"div",28)}function CZ(t,n){if(1&t&&(Ue(0),V(1,MZ,6,8,"ng-container",25),V(2,wZ,1,0,"div",9),We()),2&t){const e=z();c(1),w("ngForOf",e.optionsData),c(1),w("ngIf",e.returnText)}}function xZ(t,n){1&t&&xe(0,"div",28)}function kZ(t,n){1&t&&xe(0,"img",31),2&t&&w("src","assets/img/lang/"+z(2).language.iconName,Vo)}function SZ(t,n){if(1&t){const e=et();D(0,"div",29),ye("click",function(){return Pe(e),Oe(z().openLanguageWindow())}),V(1,kZ,1,1,"img",30),I(2),R(3,"translate"),C()}if(2&t){const e=z();c(1),w("ngIf",e.language),c(1),ce(" ",H(3,2,e.language?e.language.name:"")," ")}}function DZ(t,n){if(1&t){const e=et();D(0,"div",32)(1,"a",33),ye("click",function(){return Pe(e),Oe(z().requestAction(null))}),R(2,"translate"),D(3,"mat-icon",34),I(4,"chevron_left"),C()()()}if(2&t){const e=z();c(1),w("matTooltip",H(2,2,e.returnText)),c(2),w("inline",!0)}}function TZ(t,n){if(1&t&&(D(0,"span",35),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),ce(" ",H(2,1,e.titleParts[e.titleParts.length-1])," ")}}function LZ(t,n){1&t&&xe(0,"img",36)}const EZ=function(t,n){return{"d-lg-none":t,"d-none d-md-inline-block":n}},eP=function(t,n){return{"mouse-disabled":t,"grey-button-background":n}};function IZ(t,n){if(1&t&&(D(0,"div",27)(1,"a",37)(2,"mat-icon",34),I(3),C(),D(4,"span"),I(5),R(6,"translate"),C()()()),2&t){const e=n.$implicit,i=n.index,o=z();w("ngClass",mn(9,EZ,e.onlyIfLessThanLg,1!==o.tabsData.length)),c(1),w("disabled",i===o.selectedTabIndex)("routerLink",e.linkParts)("ngClass",mn(12,eP,o.disableMouse,!o.disableMouse&&i!==o.selectedTabIndex)),c(1),w("inline",!0),c(1),se(e.icon),c(2),se(H(6,7,e.label))}}const PZ=function(t){return{"d-none":t}};function OZ(t,n){if(1&t){const e=et();D(0,"div",38)(1,"button",39),ye("click",function(){return Pe(e),Oe(z().openTabSelector())}),D(2,"div",40)(3,"mat-icon",34),I(4),C(),D(5,"span"),I(6),R(7,"translate"),C(),D(8,"mat-icon",34),I(9,"keyboard_arrow_down"),C()()()()}if(2&t){const e=z();w("ngClass",He(8,PZ,1===e.tabsData.length)),c(1),w("ngClass",mn(10,eP,e.disableMouse,!e.disableMouse)),c(2),w("inline",!0),c(1),se(e.tabsData[e.selectedTabIndex].icon),c(2),se(H(7,6,e.tabsData[e.selectedTabIndex].label)),c(2),w("inline",!0)}}function AZ(t,n){if(1&t){const e=et();D(0,"app-refresh-button",45),ye("click",function(){return Pe(e),Oe(z(2).sendRefreshEvent())}),C()}if(2&t){const e=z(2);w("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.showLoading)("showAlert",e.showAlert)("refeshRate",e.refeshRate)}}function FZ(t,n){if(1&t&&(D(0,"div",41),V(1,AZ,1,4,"app-refresh-button",42),D(2,"button",43)(3,"div",44)(4,"mat-icon",34),I(5,"menu"),C()()()()),2&t){const e=z(),i=ci(12);c(1),w("ngIf",e.showUpdateButton),c(1),w("matMenuTriggerFor",i),c(2),w("inline",!0)}}function RZ(t,n){if(1&t){const e=et();D(0,"div",53)(1,"div",54),ye("click",function(){return Pe(e),Oe(z(2).openLanguageWindow())}),xe(2,"img",55),I(3),R(4,"translate"),C()()}if(2&t){const e=z(2);c(2),w("src","assets/img/lang/"+e.language.iconName,Vo),c(1),ce(" ",H(4,2,e.language?e.language.name:"")," ")}}function NZ(t,n){1&t&&(D(0,"div",56),R(1,"translate"),D(2,"mat-icon",34),I(3,"warning"),C(),I(4),R(5,"translate"),C()),2&t&&(w("matTooltip",H(1,3,"vpn.connection-error.info")),c(2),w("inline",!0),c(2),ce(" ",H(5,5,"vpn.connection-error.text")," "))}function YZ(t,n){1&t&&(D(0,"div",63)(1,"mat-icon",61),I(2,"brightness_1"),C()()),2&t&&(c(1),w("inline",!0))}const HZ=function(t,n){return{"animation-container":t,"d-none":n}},BZ=function(t){return{time:t}},tP=function(t){return{showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t}};function VZ(t,n){if(1&t&&(D(0,"table",57)(1,"tr")(2,"td",58),R(3,"translate"),D(4,"div",27)(5,"div",59)(6,"div",60)(7,"mat-icon",61),I(8,"brightness_1"),C(),I(9),R(10,"translate"),C()()(),V(11,YZ,3,1,"div",62),D(12,"mat-icon",61),I(13,"brightness_1"),C(),I(14),R(15,"translate"),C(),D(16,"td",58),R(17,"translate"),D(18,"mat-icon",34),I(19,"swap_horiz"),C(),I(20),R(21,"translate"),C()(),D(22,"tr")(23,"td",58),R(24,"translate"),D(25,"mat-icon",34),I(26,"arrow_upward"),C(),I(27),R(28,"autoScale"),C(),D(29,"td",58),R(30,"translate"),D(31,"mat-icon",34),I(32,"arrow_downward"),C(),I(33),R(34,"autoScale"),C()()()),2&t){const e=z(2);c(2),eo(e.vpnData.stateClass+" state-td"),w("matTooltip",H(3,18,e.vpnData.state+"-info")),c(2),w("ngClass",mn(39,HZ,e.showVpnStateAnimation,!e.showVpnStateAnimation)),c(3),w("inline",!0),c(2),ce(" ",H(10,20,e.vpnData.state)," "),c(2),w("ngIf",e.showVpnStateAnimatedDot),c(1),w("inline",!0),c(2),ce(" ",H(15,22,e.vpnData.state)," "),c(2),w("matTooltip",H(17,24,"vpn.connection-info.latency-info")),c(2),w("inline",!0),c(2),ce(" ",kt(21,26,"common."+e.getLatencyValueString(e.vpnData.latency),He(42,BZ,e.getPrintableLatency(e.vpnData.latency)))," "),c(3),w("matTooltip",H(24,29,"vpn.connection-info.upload-info")),c(2),w("inline",!0),c(2),ce(" ",kt(28,31,e.vpnData.uploadSpeed,He(44,tP,e.showVpnDataStatsInBits))," "),c(2),w("matTooltip",H(30,34,"vpn.connection-info.download-info")),c(2),w("inline",!0),c(2),ce(" ",kt(34,36,e.vpnData.downloadSpeed,He(46,tP,e.showVpnDataStatsInBits))," ")}}function jZ(t,n){1&t&&xe(0,"mat-spinner",64),2&t&&w("diameter",20)}function zZ(t,n){if(1&t&&(D(0,"div")(1,"div",46),V(2,RZ,5,4,"div",47),xe(3,"div",48),V(4,NZ,6,7,"div",49),C(),D(5,"div",50),V(6,VZ,35,48,"table",51),V(7,jZ,1,1,"mat-spinner",52),C()()),2&t){const e=z();c(2),w("ngIf",!e.hideLanguageButton&&e.language),c(2),w("ngIf",e.errorsConnectingToVpn),c(2),w("ngIf",e.vpnData),c(1),w("ngIf",!e.vpnData)}}function UZ(t,n){1&t&&(D(0,"div",65)(1,"div",66)(2,"mat-icon",34),I(3,"error_outline"),C(),I(4),R(5,"translate"),C(),D(6,"div",67),I(7),R(8,"translate"),C()()),2&t&&(c(2),w("inline",!0),c(2),ce(" ",H(5,3,"vpn.remote-access-title")," "),c(3),ce(" ",H(8,5,"vpn.remote-access-text")," "))}const nP=function(t,n){return{"d-lg-none":t,"d-none":n}},WZ=function(t){return{"normal-height":t}},$Z=function(t,n){return{"d-none d-lg-flex":t,"d-flex":n}};let sc=(()=>{class t{set localVpnKey(e){this.localVpnKeyInternal=e,e?this.startGettingVpnInfo():this.stopGettingVpnInfo()}constructor(e,i,o,s,a){this.languageService=e,this.dialog=i,this.router=o,this.vpnClientService=s,this.vpnSavedDataService=a,this.disableMouse=!1,this.selectedTabIndex=0,this.refeshRate=-1,this.showUpdateButton=!0,this.localVpnKeyInternal="",this.refreshRequested=new ht,this.optionSelected=new ht,this.hideLanguageButton=!0,this.showVpnInfo=!1,this.initialVpnStateObtained=!1,this.lastVpnState="",this.showVpnStateAnimation=!1,this.showVpnStateAnimatedDot=!0,this.showVpnDataStatsInBits=!0,this.remoteAccess=!1,this.errorsConnectingToVpn=!1,this.langSubscriptionsGroup=[]}ngOnInit(){this.langSubscriptionsGroup.push(this.languageService.currentLanguage.subscribe(i=>{this.language=i})),this.langSubscriptionsGroup.push(this.languageService.languages.subscribe(i=>{this.hideLanguageButton=!(i.length>1)}));const e=window.location.hostname;!e.toLowerCase().includes("localhost")&&!e.toLowerCase().includes("127.0.0.1")&&(this.remoteAccess=!0)}ngOnDestroy(){this.langSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.refreshRequested.complete(),this.optionSelected.complete(),this.stopGettingVpnInfo()}startGettingVpnInfo(){this.showVpnInfo=!0,this.vpnClientService.initialize(this.localVpnKeyInternal),this.updateVpnDataStatsUnit(),this.vpnDataSubscription=this.vpnClientService.backendState.subscribe(e=>{e&&(this.vpnData={state:"",stateClass:"",latency:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.latency:0,downloadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.downloadSpeed:0,uploadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.uploadSpeed:0},e.vpnClientAppData.appState===on.Stopped?(this.vpnData.state="vpn.connection-info.state-disconnected",this.vpnData.stateClass="red-clear-text"):e.vpnClientAppData.appState===on.Connecting?(this.vpnData.state="vpn.connection-info.state-connecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===on.Running?(this.vpnData.state="vpn.connection-info.state-connected",this.vpnData.stateClass="green-clear-text"):e.vpnClientAppData.appState===on.ShuttingDown?(this.vpnData.state="vpn.connection-info.state-disconnecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===on.Reconnecting&&(this.vpnData.state="vpn.connection-info.state-reconnecting",this.vpnData.stateClass="yellow-clear-text"),this.initialVpnStateObtained?this.lastVpnState!==this.vpnData.state&&(this.lastVpnState=this.vpnData.state,this.showVpnStateAnimation=!1,this.showVpnStateChangeAnimationSubscription&&this.showVpnStateChangeAnimationSubscription.unsubscribe(),this.showVpnStateChangeAnimationSubscription=$e(0).pipe(Ti(1)).subscribe(()=>this.showVpnStateAnimation=!0)):(this.initialVpnStateObtained=!0,this.lastVpnState=this.vpnData.state),this.showVpnStateAnimatedDot=!1,this.showVpnStateAnimatedDotSubscription&&this.showVpnStateAnimatedDotSubscription.unsubscribe(),this.showVpnStateAnimatedDotSubscription=$e(0).pipe(Ti(1)).subscribe(()=>this.showVpnStateAnimatedDot=!0))}),this.errorsConnectingToVpnSubscription=this.vpnClientService.errorsConnecting.subscribe(e=>{this.errorsConnectingToVpn=e})}stopGettingVpnInfo(){this.showVpnInfo=!1,this.vpnDataSubscription&&this.vpnDataSubscription.unsubscribe(),this.errorsConnectingToVpnSubscription&&this.errorsConnectingToVpnSubscription.unsubscribe()}getLatencyValueString(e){return lr.getLatencyValueString(e)}getPrintableLatency(e){return lr.getPrintableLatency(e)}requestAction(e){this.optionSelected.emit(e)}openLanguageWindow(){YI.openDialog(this.dialog)}sendRefreshEvent(){this.refreshRequested.emit()}openTabSelector(){const e=[];this.tabsData.forEach(i=>{e.push({label:i.label,icon:i.icon})}),qr.openDialog(this.dialog,e,"tabs-window.title").afterClosed().subscribe(i=>{i&&(i-=1)!==this.selectedTabIndex&&this.router.navigate(this.tabsData[i].linkParts)})}updateVpnDataStatsUnit(){const e=this.vpnSavedDataService.getDataUnitsSetting();this.showVpnDataStatsInBits=e===Sr.BitsSpeedAndBytesVolume||e===Sr.OnlyBits}}return t.\u0275fac=function(e){return new(e||t)(Y(gg),Y(In),Y(hn),Y(oc),Y(rc))},t.\u0275cmp=Ze({type:t,selectors:[["app-top-bar"]],inputs:{disableMouse:"disableMouse",titleParts:"titleParts",tabsData:"tabsData",selectedTabIndex:"selectedTabIndex",optionsData:"optionsData",returnText:"returnText",secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate",showUpdateButton:"showUpdateButton",localVpnKey:"localVpnKey"},outputs:{refreshRequested:"refreshRequested",optionSelected:"optionSelected"},decls:29,vars:31,consts:[[1,"top-bar",3,"ngClass"],[1,"button-container"],["mat-icon-button","","class","transparent-button",3,"click",4,"ngIf"],[1,"logo-container"],[4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"matMenuTriggerFor"],[1,"top-bar-margin",3,"ngClass"],[3,"overlapTrigger"],["menu","matMenu"],["class","menu-separator",4,"ngIf"],["mat-menu-item","",3,"click",4,"ngIf"],[1,"main-container",3,"ngClass"],[1,"main-area"],[1,"title",3,"ngClass"],["class","return-container",4,"ngIf"],["class","title-text",4,"ngIf"],["class","title-image","src","./assets/img/logo-vpn.png",4,"ngIf"],[1,"lower-container"],[3,"ngClass",4,"ngFor","ngForOf"],["class","d-md-none",3,"ngClass",4,"ngIf"],[1,"blank-space"],["class","right-container",4,"ngIf"],["class","remote-vpn-alert-container",4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"click"],["src","/assets/img/logo-s.png"],[4,"ngFor","ngForOf"],["mat-menu-item","",3,"disabled","click"],[3,"ngClass"],[1,"menu-separator"],["mat-menu-item","",3,"click"],["class","flag",3,"src",4,"ngIf"],[1,"flag",3,"src"],[1,"return-container"],[1,"return-button","transparent-button",3,"matTooltip","click"],[3,"inline"],[1,"title-text"],["src","./assets/img/logo-vpn.png",1,"title-image"],["mat-button","",1,"tab-button","white-theme",3,"disabled","routerLink","ngClass"],[1,"d-md-none",3,"ngClass"],["mat-button","",1,"tab-button","select-tab-button","white-theme",3,"ngClass","click"],[1,"d-flex"],[1,"right-container"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate","click",4,"ngIf"],["mat-button","",1,"menu-button","subtle-transparent-button","d-none","d-lg-block",3,"matMenuTriggerFor"],[1,"icon-container"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate","click"],[1,"top-text-vpn-container"],["class","languaje-button-vpn",4,"ngIf"],[1,"elements-separator"],["class","connection-error-msg-vpn blinking",3,"matTooltip",4,"ngIf"],[1,"vpn-info","vpn-dark-box-radius"],["cellspacing","0","cellpadding","0",4,"ngIf"],[3,"diameter",4,"ngIf"],[1,"languaje-button-vpn"],[1,"text-container",3,"click"],[1,"language-flag",3,"src"],[1,"connection-error-msg-vpn","blinking",3,"matTooltip"],["cellspacing","0","cellpadding","0"],[3,"matTooltip"],[1,"internal-animation-container"],[1,"animation-area"],[1,"state-icon",3,"inline"],["class","aminated-state-icon-container",4,"ngIf"],[1,"aminated-state-icon-container"],[3,"diameter"],[1,"remote-vpn-alert-container"],[1,"top-line"],[1,"bottom-line"]],template:function(e,i){if(1&e&&(D(0,"div",0)(1,"div",1),V(2,_Z,3,0,"button",2),C(),D(3,"div",3),V(4,bZ,2,0,"ng-container",4),V(5,vZ,3,3,"ng-container",4),C(),D(6,"div",1)(7,"button",5)(8,"mat-icon"),I(9,"menu"),C()()()(),xe(10,"div",6),D(11,"mat-menu",7,8),V(13,CZ,3,2,"ng-container",4),V(14,xZ,1,0,"div",9),V(15,SZ,4,4,"div",10),C(),D(16,"div",11)(17,"div",12)(18,"div",13),V(19,DZ,5,4,"div",14),V(20,TZ,3,3,"span",15),V(21,LZ,1,0,"img",16),C(),D(22,"div",17),V(23,IZ,7,15,"div",18),V(24,OZ,10,13,"div",19),xe(25,"div",20),V(26,FZ,6,3,"div",21),C()(),V(27,zZ,8,4,"div",4),C(),V(28,UZ,9,7,"div",22)),2&e){const o=ci(12);w("ngClass",mn(20,nP,!i.showVpnInfo,i.showVpnInfo)),c(2),w("ngIf",i.returnText),c(2),w("ngIf",!i.titleParts||i.titleParts.length<2),c(1),w("ngIf",i.titleParts&&i.titleParts.length>=2),c(2),w("matMenuTriggerFor",o),c(3),w("ngClass",mn(23,nP,!i.showVpnInfo,i.showVpnInfo)),c(1),w("overlapTrigger",!1),c(2),w("ngIf",i.optionsData&&i.optionsData.length>=1),c(1),w("ngIf",!i.hideLanguageButton&&i.optionsData&&i.optionsData.length>=1),c(1),w("ngIf",!i.hideLanguageButton),c(1),w("ngClass",He(26,WZ,!i.showVpnInfo)),c(2),w("ngClass",mn(28,$Z,!i.showVpnInfo,i.showVpnInfo)),c(1),w("ngIf",i.returnText),c(1),w("ngIf",!i.showVpnInfo),c(1),w("ngIf",i.showVpnInfo),c(2),w("ngForOf",i.tabsData),c(1),w("ngIf",i.tabsData&&i.tabsData[i.selectedTabIndex]),c(2),w("ngIf",!i.showVpnInfo),c(1),w("ngIf",i.showVpnInfo),c(1),w("ngIf",i.showVpnInfo&&i.remoteAccess)}},dependencies:[Nn,gi,Ft,qa,FU,Wr,el,Cn,vi,Yd,pa,Hd,ec,gZ,wt,sf],styles:["@media (max-width: 991px){.normal-height[_ngcontent-%COMP%]{height:55px!important}}.main-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:10px;margin-bottom:-5px;height:100px;display:flex}.main-container[_ngcontent-%COMP%] .main-area[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.875rem;margin-bottom:15px;margin-left:5px;flex-direction:row;align-items:center}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-text[_ngcontent-%COMP%]{z-index:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-image[_ngcontent-%COMP%]{width:124px;height:21px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%]{width:30px;position:relative;top:2px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%] .return-button[_ngcontent-%COMP%]{line-height:1;font-size:25px;position:relative;top:2px;width:100%;margin-right:4px;cursor:pointer}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%]{display:flex}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .blank-space[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;opacity:.5;margin-right:2px;text-decoration:none;height:40px;display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]:hover{opacity:.75}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[disabled][_ngcontent-%COMP%]{opacity:1!important;color:#f8f9f9;background:rgba(0,0,0,.7)!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{margin-right:2px;opacity:.75;font-size:18px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1rem;margin:0 4px;position:relative;top:-1px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]{opacity:.75!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]:hover{opacity:1!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%]{display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] app-refresh-button[_ngcontent-%COMP%]{align-self:flex-end}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%]{height:32px;width:32px;min-width:0px!important;background-color:#f8f9f9;border-radius:100%;padding:0!important;line-height:normal;color:#929292;font-size:20px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{display:flex;place-content:center}.menu-separator[_ngcontent-%COMP%]{width:100%;height:1px;background-color:#0000001f}.flag[_ngcontent-%COMP%]{width:24px;margin-right:16px}.transparent[_ngcontent-%COMP%]{opacity:.5}.top-bar[_ngcontent-%COMP%]{position:fixed;z-index:10;width:100%;height:56px;background-color:#f8f9f9;top:0;left:0;right:0;color:#202226;display:flex}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{flex-grow:1;display:flex;justify-content:center;align-items:center}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%]{flex-shrink:0;width:56px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:56px;height:56px}.top-bar-margin[_ngcontent-%COMP%]{margin-top:56px;flex-shrink:0}.vpn-info[_ngcontent-%COMP%]{font-size:.7rem;background:rgba(0,0,0,.7);padding:15px 20px;align-self:center}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] .state-td[_ngcontent-%COMP%]{font-weight:700}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 0;min-width:90px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:3px;font-size:12px;position:relative;top:1px;-webkit-user-select:none;user-select:none;width:auto;line-height:1}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{transform:scale(.75)}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{height:auto;animation:_ngcontent-%COMP%_state-icon-animation 1s linear 1}@keyframes _ngcontent-%COMP%_state-icon-animation{0%{transform:perspective(1px) scale(1);opacity:.8}to{transform:scale(2);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%]{width:200px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%] .animation-area[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_state-animation 1s linear 1;opacity:0}@keyframes _ngcontent-%COMP%_state-animation{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{padding-right:30px}.vpn-info[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.top-text-vpn-container[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;font-size:.6rem}.top-text-vpn-container[_ngcontent-%COMP%] .connection-error-msg-vpn[_ngcontent-%COMP%]{margin:-5px 5px 5px 10px;color:orange}.top-text-vpn-container[_ngcontent-%COMP%] .elements-separator[_ngcontent-%COMP%]{flex-grow:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%]{margin:-5px 10px 5px 0}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{cursor:pointer;display:inline;opacity:.8}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]:hover{opacity:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .language-flag[_ngcontent-%COMP%]{width:11px;height:11px;margin-right:2px}.remote-vpn-alert-container[_ngcontent-%COMP%]{background-color:#da3439;margin:0 -21px;padding:10px 20px 15px;text-align:center}.remote-vpn-alert-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:14px}.remote-vpn-alert-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:1.25rem}.remote-vpn-alert-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.8rem}"]}),t})();const iP=function(){return["start.title"]};function GZ(t,n){if(1&t&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3),C(),xe(3,"app-loading-indicator",4),C()),2&t){const e=z();c(2),w("titleParts",qn(4,iP))("tabsData",e.tabsData)("selectedTabIndex",e.showDmsgInfo?1:0)("showUpdateButton",!1)}}function qZ(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function KZ(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function ZZ(t,n){if(1&t&&(D(0,"div",23)(1,"span"),I(2),R(3,"translate"),C(),V(4,qZ,3,3,"ng-container",24),V(5,KZ,2,1,"ng-container",24),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function XZ(t,n){if(1&t){const e=et();D(0,"div",20),ye("click",function(){return Pe(e),Oe(z(2).dataFilterer.removeFilters())}),V(1,ZZ,6,5,"div",21),D(2,"div",22),I(3),R(4,"translate"),C()()}if(2&t){const e=z(2);c(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),se(H(4,2,"filters.press-to-remove"))}}function JZ(t,n){if(1&t){const e=et();D(0,"mat-icon",25),ye("click",function(){return Pe(e),Oe(z(2).dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&t&&w("inline",!0)("matTooltip",H(1,2,"filters.filter-action"))}function QZ(t,n){1&t&&(D(0,"mat-icon",26),I(1,"more_horiz"),C()),2&t&&(z(),w("matMenuTriggerFor",ci(12)))}const rP=function(){return["/nodes","list"]},oP=function(){return["/nodes","dmsg"]};function eX(t,n){if(1&t&&xe(0,"app-paginator",27),2&t){const e=z(2);w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showDmsgInfo?qn(5,oP):qn(4,rP))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function tX(t,n){if(1&t&&(D(0,"mat-icon",42),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function nX(t,n){if(1&t&&(D(0,"mat-icon",42),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function iX(t,n){if(1&t&&(D(0,"mat-icon",42),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function rX(t,n){if(1&t&&(D(0,"mat-icon",42),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function oX(t,n){1&t&&(Ue(0),I(1,"*"),We())}function sX(t,n){if(1&t&&(Ue(0),D(1,"mat-icon",42),I(2),C(),V(3,oX,2,0,"ng-container",24),We()),2&t){const e=z(5);c(1),w("inline",!0),c(1),se(e.dataSorter.sortingArrow),c(1),w("ngIf",e.dataSorter.currentlySortingByLabel)}}function aX(t,n){if(1&t){const e=et();D(0,"th",38),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.dmsgServerSortData))}),I(1),R(2,"translate"),V(3,sX,4,3,"ng-container",24),C()}if(2&t){const e=z(4);c(1),ce(" ",H(2,2,"nodes.dmsg-server")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.dmsgServerSortData)}}function lX(t,n){if(1&t&&(D(0,"mat-icon",42),I(1),C()),2&t){const e=z(5);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function cX(t,n){if(1&t){const e=et();D(0,"th",38),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.pingSortData))}),I(1),R(2,"translate"),V(3,lX,2,2,"mat-icon",35),C()}if(2&t){const e=z(4);c(1),ce(" ",H(2,2,"nodes.ping")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.pingSortData)}}function dX(t,n){1&t&&(D(0,"mat-icon",49),R(1,"translate"),I(2,"star"),C()),2&t&&w("inline",!0)("matTooltip",H(1,2,"nodes.hypervisor-info"))}function uX(t,n){if(1&t){const e=et();D(0,"app-labeled-element-text",51),ye("labelEdited",function(){return Pe(e),Oe(z(6).forceDataRefresh())}),C()}if(2&t){const e=z(2).$implicit,i=z(4);Ln("id",e.dmsgServerPk),w("short",!0)("elementType",i.labeledElementTypes.DmsgServer)}}function hX(t,n){if(1&t&&(D(0,"td"),V(1,uX,1,3,"app-labeled-element-text",50),C()),2&t){const e=z().$implicit;c(1),w("ngIf",e.dmsgServerPk)}}const sP=function(t){return{time:t}};function fX(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z(2).$implicit;c(1),ce(" ",kt(2,1,"common.time-in-ms",He(4,sP,e.roundTripPing))," ")}}function pX(t,n){if(1&t&&(D(0,"td"),V(1,fX,3,6,"ng-container",24),C()),2&t){const e=z().$implicit;c(1),w("ngIf",e.dmsgServerPk)}}function mX(t,n){1&t&&(D(0,"button",52),R(1,"translate"),D(2,"mat-icon",42),I(3,"chevron_right"),C()()),2&t&&(w("matTooltip",H(1,2,"nodes.view-node")),c(2),w("inline",!0))}function gX(t,n){if(1&t){const e=et();D(0,"button",46),ye("click",function(o){Pe(e);const s=z().$implicit,a=z(4);return o.stopPropagation(),o.preventDefault(),Oe(a.deleteNode(s))}),R(1,"translate"),D(2,"mat-icon"),I(3,"close"),C()()}2&t&&w("matTooltip",H(1,1,"nodes.delete-node"))}const _X=function(t,n){return{"click-effect":t,"non-selectable":n}},aP=function(t){return["/nodes",t]};function bX(t,n){if(1&t){const e=et();D(0,"a",43)(1,"td"),V(2,dX,3,4,"mat-icon",44),C(),D(3,"td"),xe(4,"span",45),R(5,"translate"),C(),D(6,"td"),I(7),C(),D(8,"td"),I(9),C(),V(10,hX,2,1,"td",24),V(11,pX,2,1,"td",24),D(12,"td",40)(13,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.copyToClipboard(a))}),R(14,"translate"),D(15,"mat-icon",42),I(16,"filter_none"),C()(),D(17,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.showEditLabelDialog(a))}),R(18,"translate"),D(19,"mat-icon",42),I(20,"short_text"),C()(),V(21,mX,4,4,"button",47),V(22,gX,4,3,"button",48),C()()}if(2&t){const e=n.$implicit,i=z(4);w("ngClass",mn(22,_X,e.online,!e.online))("routerLink",e.online?He(25,aP,e.localPk):null),c(2),w("ngIf",e.isHypervisor),c(2),eo(i.nodeStatusClass(e,!0)),w("matTooltip",H(5,16,i.nodeStatusText(e,!0))),c(3),ce(" ",e.label," "),c(2),ce(" ",e.localPk," "),c(1),w("ngIf",i.showDmsgInfo),c(1),w("ngIf",i.showDmsgInfo),c(2),w("matTooltip",H(14,18,i.showDmsgInfo?"nodes.copy-data":"nodes.copy-key")),c(2),w("inline",!0),c(2),w("matTooltip",H(18,20,"labeled-element.edit-label")),c(2),w("inline",!0),c(2),w("ngIf",e.online),c(1),w("ngIf",!e.online)}}function vX(t,n){if(1&t){const e=et();D(0,"table",32)(1,"tr")(2,"th",33),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),R(3,"translate"),D(4,"mat-icon",34),I(5,"star_outline"),C(),V(6,tX,2,2,"mat-icon",35),C(),D(7,"th",33),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.stateSortData))}),R(8,"translate"),xe(9,"span",36),V(10,nX,2,2,"mat-icon",35),C(),D(11,"th",37),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.labelSortData))}),I(12),R(13,"translate"),V(14,iX,2,2,"mat-icon",35),C(),D(15,"th",38),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.keySortData))}),I(16),R(17,"translate"),V(18,rX,2,2,"mat-icon",35),C(),V(19,aX,4,4,"th",39),V(20,cX,4,4,"th",39),xe(21,"th",40),C(),V(22,bX,23,27,"a",41),C()}if(2&t){const e=z(3);c(2),w("matTooltip",H(3,11,"nodes.hypervisor")),c(4),w("ngIf",e.dataSorter.currentSortingColumn===e.hypervisorSortData),c(1),w("matTooltip",H(8,13,"nodes.state-tooltip")),c(3),w("ngIf",e.dataSorter.currentSortingColumn===e.stateSortData),c(2),ce(" ",H(13,15,"nodes.label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.labelSortData),c(2),ce(" ",H(17,17,"nodes.key")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.keySortData),c(1),w("ngIf",e.showDmsgInfo),c(1),w("ngIf",e.showDmsgInfo),c(2),w("ngForOf",e.dataSource)}}function yX(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.label")))}function MX(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.inverted-order")))}function wX(t,n){1&t&&(D(0,"div",62)(1,"mat-icon",67),I(2,"star"),C(),I(3,"\xa0 "),D(4,"span",68),I(5),R(6,"translate"),C()()),2&t&&(c(1),w("inline",!0),c(4),se(H(6,2,"nodes.hypervisor")))}function CX(t,n){if(1&t){const e=et();D(0,"div",63)(1,"span",9),I(2),R(3,"translate"),C(),I(4,": "),D(5,"app-labeled-element-text",69),ye("labelEdited",function(){return Pe(e),Oe(z(5).forceDataRefresh())}),C()()}if(2&t){const e=z().$implicit,i=z(4);c(2),se(H(3,3,"nodes.dmsg-server")),c(3),Ln("id",e.dmsgServerPk),w("elementType",i.labeledElementTypes.DmsgServer)}}function xX(t,n){if(1&t&&(D(0,"div",62)(1,"span",9),I(2),R(3,"translate"),C(),I(4),R(5,"translate"),C()),2&t){const e=z().$implicit;c(2),se(H(3,2,"nodes.ping")),c(2),ce(": ",kt(5,4,"common.time-in-ms",He(7,sP,e.roundTripPing))," ")}}const kX=function(t){return{"selectable click-effect":t}};function SX(t,n){if(1&t){const e=et();D(0,"a",59)(1,"tr",60)(2,"td",60)(3,"div",55)(4,"div",56),V(5,wX,7,4,"div",61),D(6,"div",62)(7,"span",9),I(8),R(9,"translate"),C(),I(10,": "),D(11,"span"),I(12),R(13,"translate"),C()(),D(14,"div",62)(15,"span",9),I(16),R(17,"translate"),C(),I(18),C(),D(19,"div",63)(20,"span",9),I(21),R(22,"translate"),C(),I(23),C(),V(24,CX,6,5,"div",64),V(25,xX,6,9,"div",61),C(),xe(26,"div",65),D(27,"div",57)(28,"button",66),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.showOptionsDialog(a))}),R(29,"translate"),D(30,"mat-icon"),I(31),C()()()()()()()}if(2&t){const e=n.$implicit,i=z(4);w("ngClass",He(25,kX,e.online))("routerLink",e.online?He(27,aP,e.localPk):null),c(5),w("ngIf",e.isHypervisor),c(3),se(H(9,15,"nodes.state")),c(3),eo(i.nodeStatusClass(e,!1)+" title"),c(1),se(H(13,17,i.nodeStatusText(e,!1))),c(4),se(H(17,19,"nodes.label")),c(2),ce(": ",e.label," "),c(3),se(H(22,21,"nodes.key")),c(2),ce(": ",e.localPk," "),c(1),w("ngIf",i.showDmsgInfo),c(1),w("ngIf",i.showDmsgInfo),c(3),w("matTooltip",H(29,23,"common.options")),c(3),se("add")}}function DX(t,n){if(1&t){const e=et();D(0,"table",53)(1,"tr",54),ye("click",function(){return Pe(e),Oe(z(3).dataSorter.openSortingOrderModal())}),D(2,"td")(3,"div",55)(4,"div",56)(5,"div",9),I(6),R(7,"translate"),C(),D(8,"div"),I(9),R(10,"translate"),V(11,yX,3,3,"ng-container",24),V(12,MX,3,3,"ng-container",24),C()(),D(13,"div",57)(14,"mat-icon",42),I(15,"keyboard_arrow_down"),C()()()()(),V(16,SX,32,29,"a",58),C()}if(2&t){const e=z(3);c(6),se(H(7,6,"tables.sorting-title")),c(3),ce("",H(10,8,e.dataSorter.currentSortingColumn.label)," "),c(2),w("ngIf",e.dataSorter.currentlySortingByLabel),c(1),w("ngIf",e.dataSorter.sortingInReverseOrder),c(2),w("inline",!0),c(2),w("ngForOf",e.dataSource)}}function TX(t,n){if(1&t&&(D(0,"div",28)(1,"div",29),V(2,vX,23,19,"table",30),V(3,DX,17,10,"table",31),C()()),2&t){const e=z(2);c(2),w("ngIf",e.dataSource.length>0),c(1),w("ngIf",e.dataSource.length>0)}}function LX(t,n){if(1&t&&xe(0,"app-paginator",27),2&t){const e=z(2);w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showDmsgInfo?qn(5,oP):qn(4,rP))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function EX(t,n){1&t&&(D(0,"span",73),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"nodes.empty")))}function IX(t,n){1&t&&(D(0,"span",73),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"nodes.empty-with-filter")))}function PX(t,n){if(1&t&&(D(0,"div",28)(1,"div",70)(2,"mat-icon",71),I(3,"warning"),C(),V(4,EX,3,3,"span",72),V(5,IX,3,3,"span",72),C()()),2&t){const e=z(2);c(2),w("inline",!0),c(2),w("ngIf",0===e.allNodes.length),c(1),w("ngIf",0!==e.allNodes.length)}}const OX=function(t){return{"paginator-icons-fixer":t}};function AX(t,n){if(1&t){const e=et();D(0,"div",5)(1,"div",6)(2,"app-top-bar",7),ye("refreshRequested",function(){return Pe(e),Oe(z().forceDataRefresh(!0))})("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))}),C()(),D(3,"div",6)(4,"div",8)(5,"div",9),V(6,XZ,5,4,"div",10),C(),D(7,"div",11)(8,"div",12),V(9,JZ,3,4,"mat-icon",13),V(10,QZ,2,1,"mat-icon",14),D(11,"mat-menu",15,16)(13,"div",17),ye("click",function(){return Pe(e),Oe(z().removeOffline())}),I(14),R(15,"translate"),C()()(),V(16,eX,1,6,"app-paginator",18),C()(),V(17,TX,4,2,"div",19),V(18,LX,1,6,"app-paginator",18),V(19,PX,6,3,"div",19),C()()}if(2&t){const e=z();c(2),w("titleParts",qn(21,iP))("tabsData",e.tabsData)("selectedTabIndex",e.showDmsgInfo?1:0)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.options),c(2),w("ngClass",He(22,OX,e.numberOfPages>1)),c(2),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),w("ngIf",e.allNodes&&e.allNodes.length>0),c(1),w("ngIf",e.dataSource.length>0),c(1),w("overlapTrigger",!1),c(2),Ln("disabled",!e.hasOfflineNodes),c(1),ce(" ",H(15,19,"nodes.delete-all-offline")," "),c(2),w("ngIf",e.numberOfPages>1),c(1),w("ngIf",0!==e.dataSource.length),c(1),w("ngIf",e.numberOfPages>1),c(1),w("ngIf",0===e.dataSource.length)}}let lP=(()=>{class t extends er{constructor(e,i,o,s,a,l,d,_,E,F,G){super(),this.nodeService=e,this.multipleNodeDataService=i,this.router=o,this.dialog=s,this.authService=a,this.storageService=l,this.ngZone=d,this.snackbarService=_,this.clipboardService=E,this.translateService=F,this.persistentServerDataResponseKey="serv-dat-response",this.nodesListId="nl",this.dmsgListId="dl",this.hypervisorSortData=new Vn(["isHypervisor"],"nodes.hypervisor",Zt.Boolean),this.stateSortData=new Vn(["online"],"nodes.state",Zt.Boolean),this.labelSortData=new Vn(["label"],"nodes.label",Zt.Text),this.keySortData=new Vn(["localPk"],"nodes.key",Zt.Text),this.dmsgServerSortData=new Vn(["dmsgServerPk"],"nodes.dmsg-server",Zt.Text,["dmsgServerPk_label"]),this.pingSortData=new Vn(["roundTripPing"],"nodes.ping",Zt.Number),this.loading=!0,this.tabsData=[],this.options=[],this.showDmsgInfo=!1,this.canLogOut=!0,this.hasOfflineNodes=!1,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"nodes.filter-dialog.online",keyNameInElementsArray:"online",type:$n.Select,printableLabelsForValues:[{value:"",label:"nodes.filter-dialog.online-options.any"},{value:"true",label:"nodes.filter-dialog.online-options.online"},{value:"false",label:"nodes.filter-dialog.online-options.offline"}]},{filterName:"nodes.filter-dialog.label",keyNameInElementsArray:"label",type:$n.TextInput,maxlength:100},{filterName:"nodes.filter-dialog.key",keyNameInElementsArray:"localPk",type:$n.TextInput,maxlength:66},{filterName:"nodes.filter-dialog.dmsg",keyNameInElementsArray:"dmsgServerPk",secondaryKeyNameInElementsArray:"dmsgServerPk_label",type:$n.TextInput,maxlength:66}],this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.labeledElementTypes=Xi,this.updateOptionsMenu(),this.authVerificationSubscription=this.authService.checkLogin().subscribe(_e=>{this.canLogOut=_e!==Fr.AuthDisabled,this.updateOptionsMenu()}),this.showDmsgInfo=-1!==this.router.url.indexOf("dmsg"),this.showDmsgInfo||this.filterProperties.splice(this.filterProperties.length-1);const ie=[this.hypervisorSortData,this.stateSortData,this.labelSortData,this.keySortData];this.showDmsgInfo&&(ie.push(this.dmsgServerSortData),ie.push(this.pingSortData)),this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,ie,3,this.showDmsgInfo?this.dmsgListId:this.nodesListId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new Nd(this.dialog,G,this.router,this.filterProperties,this.showDmsgInfo?this.dmsgListId:this.nodesListId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(_e=>{this.filteredNodes=_e,this.hasOfflineNodes=!1,this.filteredNodes.forEach(Ce=>{Ce.online||(this.hasOfflineNodes=!0)}),this.dataSorter.setData(this.filteredNodes)}),this.navigationsSubscription=G.paramMap.subscribe(_e=>{if(_e.has("page")){let Ce=Number.parseInt(_e.get("page"),10);(isNaN(Ce)||Ce<1)&&(Ce=1),this.currentPageInUrl=Ce,this.recalculateElementsToShow()}}),this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"language",label:"nodes.dmsg-title",linkParts:["/nodes","dmsg"]},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.multipleNodeDataService.forceRefresh()})}updateOptionsMenu(){this.options=[],this.options.push({name:"nodes.modify-rewards-all",actionName:"modifyRewardsAll",icon:"edit"}),this.canLogOut&&this.options.push({name:"common.logout",actionName:"logout",icon:"power_settings_new"})}ngOnInit(){return this.startGettingData(!0),this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=Sh(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),super.ngOnInit()}ngOnDestroy(){this.authVerificationSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.languageSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}performAction(e){"logout"===e?this.logout():"updateAll"===e?this.updateAll():"modifyRewardsAll"===e&&this.changeRewardsToAll()}nodeStatusClass(e,i){return e.online?e.health&&e.health.servicesHealth===ro.Unhealthy?i?"dot-yellow blinking":"yellow-text":e.health&&e.health.servicesHealth===ro.Healthy?i?"dot-green":"green-text":i?"dot-outline-gray":"":i?"dot-red":"red-text"}nodeStatusText(e,i){return e.online?e.health&&e.health.servicesHealth===ro.Healthy?"node.statuses.online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===ro.Unhealthy?"node.statuses.partially-online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===ro.Connecting?"node.statuses.connecting"+(i?"-tooltip":""):"node.statuses.unknown"+(i?"-tooltip":""):"node.statuses.offline"+(i?"-tooltip":"")}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.multipleNodeDataService.forceRefresh()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.multipleNodeDataService.startRequestingData();i&&(o=$e(JSON.parse(i.value))),this.dataSubscription=o.subscribe(s=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(s)),this.updating=!s||s.updating,s&&!s.updating&&(s.data&&!s.error?(this.allNodes=s.data,this.showDmsgInfo&&this.allNodes.forEach(a=>{a.dmsgServerPk_label=ha.getCompleteLabel(this.storageService,this.translateService,a.dmsgServerPk)}),this.dataFilterer.setData(this.allNodes),this.loading=!1,this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=s.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-s.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)):s.error&&(this.errorsUpdating||this.snackbarService.showError(this.loading?"common.loading-error":"nodes.error-load",null,!0,s.error),this.errorsUpdating=!0)),i&&this.startGettingData(!1)})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredNodes){const e=Vt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredNodes.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.nodesToShow=this.filteredNodes.slice(i,i+e)}else this.nodesToShow=null;this.nodesToShow&&(this.dataSource=this.nodesToShow)}logout(){const e=Jt.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}updateAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-update");const e=[],i=[];this.dataSource.forEach(o=>{if(o.online){const s={key:o.localPk,label:o.label,version:o.version,tag:o.buildTag};Jt.checkIfTagIsUpdatable(o.buildTag)?e.push(s):i.push(s)}}),Qq.openDialog(this.dialog,e,i)}changeRewardsToAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-modify");const e=[];this.dataSource.forEach(o=>{o.online&&e.push({key:o.localPk,label:o.label})}),DK.openDialog(this.dialog,{nodes:e})}recursivelyUpdateWallets(e,i,o=0){return this.nodeService.update(e[e.length-1]).pipe(Co(()=>$e(null)),Ye(s=>(s&&s.updated&&!s.error?this.snackbarService.showDone(this.translateService.instant("nodes.update.done",{name:i[i.length-1]})):(this.snackbarService.showError(this.translateService.instant("nodes.update.update-error",{name:i[i.length-1]})),o+=1),e.pop(),i.pop(),e.length>=1?this.recursivelyUpdateWallets(e,i,o):$e(o))))}showOptionsDialog(e){const i=[{icon:"filter_none",label:"nodes.copy-key"}];this.showDmsgInfo&&i.push({icon:"filter_none",label:"nodes.copy-dmsg"}),i.push({icon:"short_text",label:"labeled-element.edit-label"}),e.online||i.push({icon:"close",label:"nodes.delete-node"}),qr.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.copySpecificTextToClipboard(e.localPk):this.showDmsgInfo?2===o?this.copySpecificTextToClipboard(e.dmsgServerPk):3===o?this.showEditLabelDialog(e):4===o&&this.deleteNode(e):2===o?this.showEditLabelDialog(e):3===o&&this.deleteNode(e)})}copyToClipboard(e){this.showDmsgInfo?qr.openDialog(this.dialog,[{icon:"filter_none",label:"nodes.key"},{icon:"filter_none",label:"nodes.dmsg-server"}],"common.options").afterClosed().subscribe(o=>{1===o?this.copySpecificTextToClipboard(e.localPk):2===o&&this.copySpecificTextToClipboard(e.dmsgServerPk)}):this.copySpecificTextToClipboard(e.localPk)}copySpecificTextToClipboard(e){this.clipboardService.copy(e)&&this.snackbarService.showDone("copy.copied")}showEditLabelDialog(e){let i=this.storageService.getLabelInfo(e.localPk);i||(i={id:e.localPk,label:"",identifiedElementType:Xi.Node}),N1.openDialog(this.dialog,i).afterClosed().subscribe(o=>{o&&this.forceDataRefresh()})}deleteNode(e){const i=Jt.createConfirmationDialog(this.dialog,"nodes.delete-node-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.setLocalNodesAsHidden([e.localPk],[e.ip]),this.forceDataRefresh(),this.snackbarService.showDone("nodes.deleted")})}removeOffline(){let e="nodes.delete-all-offline-confirmation";this.dataFilterer.currentFiltersTexts&&this.dataFilterer.currentFiltersTexts.length>0&&(e="nodes.delete-all-filtered-offline-confirmation");const i=Jt.createConfirmationDialog(this.dialog,e);i.componentInstance.operationAccepted.subscribe(()=>{i.close();const o=[],s=[];this.filteredNodes.forEach(a=>{a.online||(o.push(a.localPk),s.push(a.ip))}),o.length>0&&(this.storageService.setLocalNodesAsHidden(o,s),this.forceDataRefresh(),1===o.length?this.snackbarService.showDone("nodes.deleted-singular"):this.snackbarService.showDone("nodes.deleted-plural",{number:o.length}))})}}return t.\u0275fac=function(e){return new(e||t)(Y(ua),Y(NI),Y(hn),Y(In),Y(Wh),Y(Ji),Y(ft),Y(Dn),Y(ef),Y(To),Y(Mr))},t.\u0275cmp=Ze({type:t,selectors:[["app-node-list"]],features:[nt],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"h-100"],[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","refreshRequested","optionSelected"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow","full-node-list-margins"],["class","responsive-table-translucid d-none d-md-table","cellspacing","0","cellpadding","0",4,"ngIf"],["class","responsive-table-translucid d-md-none nowrap","cellspacing","0","cellpadding","0",4,"ngIf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"sortable-column","small-column",3,"matTooltip","click"],[1,"hypervisor-icon","grey-text"],[3,"inline",4,"ngIf"],[1,"dot-outline-gray"],[1,"sortable-column","labels",3,"click"],[1,"sortable-column",3,"click"],["class","sortable-column",3,"click",4,"ngIf"],[1,"actions"],["class","selectable link-row",3,"ngClass","routerLink",4,"ngFor","ngForOf"],[3,"inline"],[1,"selectable","link-row",3,"ngClass","routerLink"],["class","hypervisor-icon",3,"inline","matTooltip",4,"ngIf"],[3,"matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip","click"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip",4,"ngIf"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip","click",4,"ngIf"],[1,"hypervisor-icon",3,"inline","matTooltip"],["shortTextLength","4",3,"short","id","elementType","labelEdited",4,"ngIf"],["shortTextLength","4",3,"short","id","elementType","labelEdited"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none","nowrap"],[1,"selectable","click-effect",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],["class","link-row",3,"ngClass","routerLink",4,"ngFor","ngForOf"],[1,"link-row",3,"ngClass","routerLink"],[1,"d-block"],["class","list-row",4,"ngIf"],[1,"list-row"],[1,"list-row","long-content"],["class","list-row long-content",4,"ngIf"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[1,"hypervisor-icon",3,"inline"],[1,"yellow-clear-text","title"],[3,"id","elementType","labelEdited"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(V(0,GZ,4,5,"div",0),V(1,AX,20,24,"div",1)),2&e&&(w("ngIf",i.loading),c(1),w("ngIf",!i.loading))},dependencies:[Nn,gi,Ft,qa,Wr,el,Cn,vi,Yd,pa,Hd,as,Bd,sc,ha,wt],styles:[".labels[_ngcontent-%COMP%]{width:15%}.actions[_ngcontent-%COMP%]{text-align:right;width:120px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.hypervisor-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;position:relative;top:2px;margin-left:2px;color:#d48b05}.small-column[_ngcontent-%COMP%]{width:1px}.non-selectable[_ngcontent-%COMP%]{cursor:not-allowed}"]}),t})();const FX=["content"],H1=function(t){return{number:t}};function RX(t,n){if(1&t&&(D(0,"div",14),I(1),R(2,"translate"),C()),2&t){const e=z(2);c(1),ce(" ",kt(2,1,"node.logs.filter-ignored",He(4,H1,e.logEntries.length-e.filteredLogEntries.length))," ")}}function NX(t,n){if(1&t){const e=et();D(0,"div",9),ye("click",function(){return Pe(e),Oe(z().showFilters())}),D(1,"div",10)(2,"div")(3,"span"),I(4),R(5,"translate"),C(),D(6,"span",11),I(7),R(8,"translate"),C()(),V(9,RX,3,6,"div",12),C(),xe(10,"div",13),C()}if(2&t){const e=z();c(4),ce("",H(5,3,"node.logs.selected-filter")," "),c(3),se(H(8,5,"node.logs."+e.levelDetails.get(e.currentMinimumLevel).levelFilterName)),c(2),w("ngIf",e.logEntries.length>e.filteredLogEntries.length)}}function YX(t,n){if(1&t&&(D(0,"div",15)(1,"a",16),I(2),R(3,"translate"),C()()),2&t){const e=z();c(1),w("href",e.getFullLogsUrl(),Vo),c(1),ce(" ",kt(3,2,"node.logs.view-rest",He(5,H1,e.totalLogs))," ")}}function HX(t,n){1&t&&(Ue(0),I(1,":"),We())}function BX(t,n){if(1&t&&(D(0,"span"),I(1),C()),2&t){const e=z().$implicit;c(1),ce(" ",e.msg," ")}}function VX(t,n){if(1&t&&(Ue(0),D(1,"span",21),I(2),C(),D(3,"span"),I(4),C(),We()),2&t){const e=n.$implicit;c(2),ce(" ",e.name," "),c(2),ce(' ="',e.value,'" ')}}function jX(t,n){if(1&t&&(D(0,"div",15)(1,"span",18),I(2),C(),D(3,"span"),I(4),C(),I(5," [ "),D(6,"span",18),I(7),C(),D(8,"span",19),I(9),C(),I(10," ]"),V(11,HX,2,0,"ng-container",4),V(12,BX,2,1,"span",4),V(13,VX,5,2,"ng-container",20),C()),2&t){const e=n.$implicit,i=z(2);c(2),ce(" ",e.time," "),c(1),eo(i.levelDetails.get(e.level).colorClass),c(1),ce(" ",i.levelDetails.get(e.level).name," "),c(3),ce(" ",e.func," "),c(2),ce(" ",e._module," "),c(2),w("ngIf",e.msg),c(1),w("ngIf",e.msg),c(1),w("ngForOf",e.extra)}}function zX(t,n){if(1&t&&(Ue(0),V(1,jX,14,9,"div",17),We()),2&t){const e=z();c(1),w("ngForOf",e.filteredLogEntries)}}function UX(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"node.logs.view-all")," "))}function WX(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z(2);c(1),ce(" ",kt(2,1,"node.logs.view-rest",He(4,H1,e.totalLogs))," ")}}function $X(t,n){if(1&t&&(D(0,"div",15)(1,"a",16),V(2,UX,3,3,"ng-container",4),V(3,WX,3,6,"ng-container",4),C()()),2&t){const e=z();c(1),w("href",e.getFullLogsUrl(),Vo),c(1),w("ngIf",!e.hasMoreLogMessages),c(1),w("ngIf",e.hasMoreLogMessages)}}function GX(t,n){1&t&&(D(0,"div",22),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"node.logs.no-logs")," "))}function qX(t,n){1&t&&(D(0,"div",22),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"node.logs.no-logs-for-filter")," "))}function KX(t,n){1&t&&xe(0,"app-loading-indicator",23),2&t&&w("showWhite",!1)}function ZX(t,n){1&t&&(D(0,"mat-icon",26),I(1,"refresh"),C()),2&t&&w("inline",!0)}const XX=function(t){return{time:t}};function JX(t,n){if(1&t&&(D(0,"div",24),V(1,ZX,2,1,"mat-icon",25),D(2,"span"),I(3),R(4,"translate"),C()()),2&t){const e=z();c(1),w("ngIf",!e.showAlert),c(2),se(kt(4,2,"refresh-button."+e.elapsedTime.translationVarName,He(5,XX,e.elapsedTime.elapsedTime)))}}var Wt=(()=>((Wt=Wt||{})[Wt.PanicLevel=0]="PanicLevel",Wt[Wt.FatalLevel=1]="FatalLevel",Wt[Wt.ErrorLevel=2]="ErrorLevel",Wt[Wt.WarnLevel=3]="WarnLevel",Wt[Wt.InfoLevel=4]="InfoLevel",Wt[Wt.DebugLevel=5]="DebugLevel",Wt[Wt.TraceLevel=6]="TraceLevel",Wt[Wt.Unknown=7]="Unknown",Wt))();class QX{constructor(){this.extra=[]}}let eJ=(()=>{class t{static openDialog(e){const i=new En;return i.autoFocus=!1,i.width=Vt.largeModalWidth,e.open(t,i)}constructor(e,i,o,s,a){this.dialogRef=e,this.nodeService=i,this.snackbarService=o,this.ngZone=s,this.dialog=a,this.levelDetails=new Map([[Wt.PanicLevel,{name:"PANIC",colorClass:"panic-level-color",levelFilterName:"filter-panic",importance:8}],[Wt.FatalLevel,{name:"FATAL",colorClass:"fatal-level-color",levelFilterName:"filter-faltal",importance:7}],[Wt.ErrorLevel,{name:"ERROR",colorClass:"error-level-color",levelFilterName:"filter-error",importance:6}],[Wt.WarnLevel,{name:"WARNING",colorClass:"warning-level-color",levelFilterName:"filter-warning",importance:5}],[Wt.InfoLevel,{name:"INFO",colorClass:"info-level-color",levelFilterName:"filter-info",importance:4}],[Wt.DebugLevel,{name:"DEBUG",colorClass:"debug-level-color",levelFilterName:"filter-debug",importance:3}],[Wt.TraceLevel,{name:"TRACE",colorClass:"trace-level-color",levelFilterName:"filter-all",importance:2}],[Wt.Unknown,{name:"UNKNOWN LOG",colorClass:"unknown-level-color",levelFilterName:"filter-all",importance:1}]]),this.currentMinimumLevel=Wt.Unknown,this.loading=!0,this.LoadingMoment=0,this.maxElementsPerPage=1e3,this.logEntries=[],this.filteredLogEntries=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription(),this.removeTimeSubscription()}showFilters(){const e=[{icon:"",label:"node.logs.filter-all"},{icon:"",label:"node.logs.filter-debug"},{icon:"",label:"node.logs.filter-info"},{icon:"",label:"node.logs.filter-warning"},{icon:"",label:"node.logs.filter-error"},{icon:"",label:"node.logs.filter-faltal"},{icon:"",label:"node.logs.filter-panic"}],i=[Wt.Unknown,Wt.DebugLevel,Wt.InfoLevel,Wt.WarnLevel,Wt.ErrorLevel,Wt.FatalLevel,Wt.PanicLevel];for(let o=0;o<=i.length;o++)this.currentMinimumLevel===i[o]&&(e[o].icon="check");qr.openDialog(this.dialog,e,"node.logs.filter-title").afterClosed().subscribe(o=>{this.currentMinimumLevel=i[o-1],this.filter()})}loadData(e){this.removeSubscription(),this.loading=!0,this.subscription=$e(1).pipe(Ti(e),Ye(()=>this.nodeService.getRuntimeLogs(Ct.getCurrentNodeKey()))).subscribe(i=>this.onLogsReceived(i),i=>this.onLogsError(i))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}removeTimeSubscription(){this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}onLogsReceived(e){let i=0;this.totalLogs=e.length,this.hasMoreLogMessages=this.totalLogs-this.maxElementsPerPage>0,e.forEach(o=>{const s=new QX;s.time=o.time,s._module=o._module,s.msg=o.msg,s.func=o.func;const a=o.level?o.level.toLowerCase():"";if(s.level=a.includes("panic")?Wt.PanicLevel:a.includes("fatal")?Wt.FatalLevel:a.includes("error")?Wt.ErrorLevel:a.includes("warn")?Wt.WarnLevel:a.includes("info")?Wt.InfoLevel:a.includes("debug")?Wt.DebugLevel:a.includes("trace")?Wt.TraceLevel:Wt.Unknown,o.current_backoff){const d=Math.floor(o.current_backoff/1e9),_=Math.floor(d/60),E=Math.floor(d%60);s.extra.push(_?{name:"current_backoff",value:_+"m"+E+"s"}:{name:"current_backoff",value:E+"s"})}o.error&&s.extra.push({name:"error",value:o.error});const l=new Set;l.add("time"),l.add("_module"),l.add("msg"),l.add("func"),l.add("level"),l.add("current_backoff"),l.add("error"),l.add("log_line");for(const d in o)l.has(d)||s.extra.push({name:d,value:o[d]});this.totalLogs-i<=this.maxElementsPerPage&&this.logEntries.push(s),i+=1}),this.loading=!1,this.LoadingMoment=Date.now(),this.startUpdatingTime(),this.filter()}filter(){this.filteredLogEntries=[];const e=this.levelDetails.get(this.currentMinimumLevel).importance;this.logEntries.forEach(i=>{const o=this.levelDetails.get(i.level).importance;e<=o&&this.filteredLogEntries.push(i)}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}startUpdatingTime(){this.elapsedTime=Pg.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3)),this.removeTimeSubscription(),this.timeUpdateSubscription=Sh(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.elapsedTime=Pg.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3))}))}getFullLogsUrl(){return window.location.origin+"/api/visors/"+Ct.getCurrentNodeKey()+"/runtime-logs"}onLogsError(e){e=en(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(Vt.connectionRetryDelay)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(ua),Y(Dn),Y(ft),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-node-logs"]],viewQuery:function(e,i){if(1&e&&_t(FX,5),2&e){let o;rt(o=ot())&&(i.content=o.first)}},decls:13,vars:14,consts:[[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],["class","filter-area",3,"click",4,"ngIf"],["content",""],["class","log-entry",4,"ngIf"],[4,"ngIf"],["class","log-empty-msg",4,"ngIf"],[3,"showWhite",4,"ngIf"],[1,"update-button","subtle-transparent-button",3,"click"],["class","update-time",4,"ngIf"],[1,"filter-area",3,"click"],[1,"filter-content"],[1,"actual-value"],["class","small",4,"ngIf"],[1,"filter-margin"],[1,"small"],[1,"log-entry"],["target","_blank",1,"view-raw-link",3,"href"],["class","log-entry",4,"ngFor","ngForOf"],[1,"transparent"],[1,"module-color"],[4,"ngFor","ngForOf"],[1,"extra-data-color"],[1,"log-empty-msg"],[3,"showWhite"],[1,"update-time"],["class","icon",3,"inline",4,"ngIf"],[1,"icon",3,"inline"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),V(2,NX,11,7,"div",1),D(3,"mat-dialog-content",null,2),V(5,YX,4,7,"div",3),V(6,zX,2,1,"ng-container",4),V(7,$X,4,3,"div",3),V(8,GX,3,3,"div",5),V(9,qX,3,3,"div",5),V(10,KX,1,1,"app-loading-indicator",6),D(11,"div",7),ye("click",function(){return i.loadData(0)}),V(12,JX,5,7,"div",8),C()()()),2&e&&(w("headline",H(1,12,"node.logs.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",i.dialogRef),c(2),w("ngIf",!i.loading&&i.logEntries&&i.logEntries.length>0),c(3),w("ngIf",!i.loading&&i.hasMoreLogMessages),c(1),w("ngIf",!i.loading),c(1),w("ngIf",!i.loading&&i.logEntries&&i.logEntries.length>0),c(1),w("ngIf",!(i.loading||i.logEntries&&0!==i.logEntries.length)),c(1),w("ngIf",!i.loading&&i.logEntries&&i.logEntries.length>0&&i.filteredLogEntries.length<1),c(1),w("ngIf",i.loading),c(2),w("ngIf",!i.loading))},dependencies:[gi,Ft,r1,Cn,ei,as,wt],styles:[".filter-area[_ngcontent-%COMP%]{margin-left:-24px;margin-right:-24px;font-size:.8rem;color:#777;background-color:#d9deeb;cursor:pointer}.filter-area[_ngcontent-%COMP%]:hover{background-color:#cfd5e6}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%]{padding:10px 24px;text-align:center}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:.6rem}.filter-area[_ngcontent-%COMP%] .filter-margin[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin:0 12px}.log-entry[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.log-entry[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.log-entry[_ngcontent-%COMP%]:first-of-type{margin-top:0}.log-entry[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.log-empty-msg[_ngcontent-%COMP%]{text-align:center}.view-raw-link[_ngcontent-%COMP%]{color:#215f9e}.update-button[_ngcontent-%COMP%]{display:flex;justify-content:center;cursor:pointer}.update-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;margin-right:5px}.update-button[_ngcontent-%COMP%] .update-time[_ngcontent-%COMP%]{text-align:center;font-size:.7rem;color:#202226;margin:0 5px}.panic-level-color[_ngcontent-%COMP%], .fatal-level-color[_ngcontent-%COMP%]{color:red}.error-level-color[_ngcontent-%COMP%]{color:#d10000}.warning-level-color[_ngcontent-%COMP%]{color:#e27505}.info-level-color[_ngcontent-%COMP%]{color:#0d9519}.debug-level-color[_ngcontent-%COMP%]{color:#0065ff}.trace-level-color[_ngcontent-%COMP%]{color:#468cf5}.unknown-level-color[_ngcontent-%COMP%]{color:#e27505}.module-color[_ngcontent-%COMP%]{color:#a119fc}.extra-data-color[_ngcontent-%COMP%]{color:#ad8021}"]}),t})();class cP{constructor(n,e){this.canBeUpdated=!1,this.canBeRestarted=!1,this.canOpenTerminal=!1,this.options=[],this.dialog=n.get(In),this.router=n.get(hn),this.snackbarService=n.get(Dn),this.nodeService=n.get(ua),this.storageService=n.get(Ji),this.showingFullList=e,this.returnButtonText=e?"node.title":"nodes.title",this.updateOptions()}updateOptions(){this.options=[],this.canOpenTerminal&&this.options.push({name:"actions.menu.terminal",actionName:"terminal",icon:"laptop"}),this.options.push({name:"actions.menu.logs",actionName:"logs",icon:"subject"}),this.canBeRestarted&&this.options.push({name:"actions.menu.reboot",actionName:"reboot",icon:"rotate_right"})}setCurrentNode(n){this.currentNode=n,Jt.checkIfTagIsUpdatable(n.buildTag)?(this.canBeUpdated=!0,this.canBeRestarted=!0):(this.canBeUpdated=!1,this.canBeRestarted=!1),this.canOpenTerminal=Jt.checkIfTagCanOpenterminal(n.buildTag),this.updateOptions()}setCurrentNodeKey(n){this.currentNodeKey=n}performAction(n,e){"terminal"===n?this.terminal():"update"===n?this.update():"logs"===n?this.runtimeLogs():"reboot"===n?this.reboot():null===n&&this.back()}dispose(){this.rebootSubscription&&this.rebootSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe()}reboot(){const n=Jt.createConfirmationDialog(this.dialog,"actions.reboot.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.showProcessing(),this.rebootSubscription=this.nodeService.reboot(this.currentNodeKey).subscribe(()=>{this.snackbarService.showDone("actions.reboot.done"),n.close()},e=>{e=en(e),n.componentInstance.showDone("confirmation.error-header-text",e.translatableErrorMsg)})})}update(){const n=Jt.createConfirmationDialog(this.dialog,"actions.update.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+this.currentNodeKey+"?commands=update","_blank","noopener noreferrer"),n.close()})}terminal(){const n=window.location.protocol,e=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(n+"//"+e+"/pty/"+this.currentNodeKey,"_blank","noopener noreferrer")}runtimeLogs(){eJ.openDialog(this.dialog)}back(){this.router.navigate(this.showingFullList?["nodes",this.currentNodeKey]:["nodes"])}}class tJ{constructor(){this.trafficData=new nJ}}class nJ{constructor(){this.totalSent=0,this.totalReceived=0,this.sentHistory=[],this.receivedHistory=[]}}class iJ{constructor(){this.lastEmitedData=new tJ,this.dataSubject=new Or(null),this.whenUpdateWasScheduled=0,this.stopRequestedDate=-1}}let rJ=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.maxTrafficHistorySlots=10,this.expirationTime=6e4,this.nodesMap=new Map,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.nodesMap.forEach(s=>{this.forceSpecificNodeRefresh(s.pk)})}),this.checkForExpired()}checkForExpired(){$e(1).pipe(Ti(5e3)).subscribe(()=>{try{this.nodesMap.forEach(e=>{this.finishIfExpired(e)})}catch{}this.checkForExpired()})}startRequestingData(e){let i=this.nodesMap.get(e);return i?i.stopRequestedDate=-1:(i=new iJ,i.pk=e,this.nodesMap.set(e,i),this.startDataSubscription(0,i)),i.dataSubject.asObservable()}stopRequestingSpecificNode(e){const i=this.nodesMap.get(e);i&&(i.stopRequestedDate=Date.now())}startDataSubscription(e,i){i.updateSubscription&&i.updateSubscription.unsubscribe(),i.updateSubscription=$e(1).pipe(Ti(e),bi(()=>{i.lastEmitedData.updating=!0,i.dataSubject.next(i.lastEmitedData)}),Ti(120),Ye(()=>this.nodeService.getNode(i.pk))).subscribe(o=>{this.updateTrafficData(o.transports,i.lastEmitedData.trafficData,i.whenUpdateWasScheduled);let s=this.calculateRemainingTime(i.whenUpdateWasScheduled);s<1e3&&(i.whenUpdateWasScheduled=Date.now(),s=this.dataRefreshDelay),i.lastEmitedData={data:o,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),this.startDataSubscription(s,i)},o=>{o=en(o),i.lastEmitedData={data:i.lastEmitedData.data,error:o,momentOfLastCorrectUpdate:i.lastEmitedData.momentOfLastCorrectUpdate,updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),o.originalError&&400===o.originalError.status?(i.dataSubject.complete(),i.updateSubscription.unsubscribe(),this.nodesMap.delete(i.pk)):this.startDataSubscription(Vt.connectionRetryDelay,i)})}calculateRemainingTime(e){if(e<1)return 0;let i=this.dataRefreshDelay-(Date.now()-e);return i<0&&(i=0),i}updateTrafficData(e,i,o){if(i.totalSent=0,i.totalReceived=0,e&&e.length>0&&(i.totalSent=e.reduce((s,a)=>s+a.sent,0),i.totalReceived=e.reduce((s,a)=>s+a.recv,0)),0===i.sentHistory.length)for(let s=0;sthis.maxTrafficHistorySlots&&(a=this.maxTrafficHistorySlots),0===a)i.sentHistory[i.sentHistory.length-1]=i.totalSent,i.receivedHistory[i.receivedHistory.length-1]=i.totalReceived;else for(let l=0;lthis.maxTrafficHistorySlots&&(i.sentHistory.splice(0,i.sentHistory.length-this.maxTrafficHistorySlots),i.receivedHistory.splice(0,i.receivedHistory.length-this.maxTrafficHistorySlots))}}forceSpecificNodeRefresh(e){const i=this.nodesMap.get(e);i&&this.startDataSubscription(0,i)}finishIfExpired(e){e.stopRequestedDate>0&&Date.now()-e.stopRequestedDate>this.expirationTime&&(e.dataSubject.complete(),e.updateSubscription.unsubscribe(),this.nodesMap.delete(e.pk))}}return t.\u0275fac=function(e){return new(e||t)(we(Ji),we(ua))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function oJ(t,n){1&t&&xe(0,"app-loading-indicator")}function sJ(t,n){1&t&&(D(0,"div",6)(1,"div")(2,"mat-icon",7),I(3,"error"),C(),I(4),R(5,"translate"),C()()),2&t&&(c(2),w("inline",!0),c(2),ce(" ",H(5,2,"node.not-found")," "))}function aJ(t,n){if(1&t){const e=et();D(0,"div",2)(1,"div")(2,"app-top-bar",3),ye("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))}),C()(),V(3,oJ,1,0,"app-loading-indicator",4),V(4,sJ,6,4,"div",5),C()}if(2&t){const e=z();c(2),w("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("showUpdateButton",!1)("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),c(1),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound)}}function lJ(t,n){if(1&t&&xe(0,"app-node-info-content",15),2&t){const e=z(2);w("nodeInfo",e.node)("trafficData",e.trafficData)}}const cJ=function(t,n){return{"main-area":t,"full-size-main-area":n}},dJ=function(t){return{"d-none":t}};function uJ(t,n){if(1&t){const e=et();D(0,"div",8)(1,"div",9)(2,"app-top-bar",10),ye("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))})("refreshRequested",function(){return Pe(e),Oe(z().forceDataRefresh(!0))}),C()(),D(3,"div",9)(4,"div",11)(5,"div",12),xe(6,"router-outlet"),C()(),D(7,"div",13),V(8,lJ,1,2,"app-node-info-content",14),C()()()}if(2&t){const e=z();c(2),w("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),c(2),w("ngClass",mn(12,cJ,!e.showingInfo&&!e.showingFullList,e.showingInfo||e.showingFullList)),c(3),w("ngClass",He(15,dJ,e.showingInfo||e.showingFullList)),c(1),w("ngIf",!e.showingInfo&&!e.showingFullList)}}let Ct=(()=>{class t extends er{static refreshCurrentDisplayedData(){t.currentInstanceInternal&&t.currentInstanceInternal.forceDataRefresh(!1)}static getCurrentNodeKey(){return t.currentNodeKey}static get currentNode(){return t.nodeSubject.asObservable()}static get currentTrafficData(){return t.trafficDataSubject.asObservable()}constructor(e,i,o,s,a,l,d){super(),this.storageService=e,this.singleNodeDataService=i,this.route=o,this.ngZone=s,this.snackbarService=a,this.injector=l,this.persistentDataResponseKey="serv-dat-response",this.notFound=!1,this.titleParts=[],this.tabsData=[],this.selectedTabIndex=-1,this.showingInfo=!1,this.showingFullList=!1,this.initialRouteEventFired=!1,this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,t.nodeSubject=new ko(1),t.trafficDataSubject=new ko(1),t.currentInstanceInternal=this,this.navigationsSubscription=d.events.subscribe(_=>{_.urlAfterRedirects&&(this.lastUrl=_.urlAfterRedirects,this.processRouteUpdate(),this.initialRouteEventFired=!0)})}ngOnInit(){return this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=Sh(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),this.initSubscription=$e(0).pipe(Ti(500)).subscribe(()=>{this.initialRouteEventFired||(this.lastUrl=window.location.href,this.processRouteUpdate())}),super.ngOnInit()}processRouteUpdate(){t.currentNodeKey=this.route.snapshot.params.key,this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.updateTabBar(),this.navigationsSubscription.unsubscribe(),this.startGettingData(!0)}updateTabBar(){if(this.lastUrl&&(this.lastUrl.includes("/info")||this.lastUrl.includes("/routing")||this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")))this.titleParts=["nodes.title","node.title"],this.tabsData=[{icon:"info",label:"node.tabs.info",onlyIfLessThanLg:!0,linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"info"]:null},{icon:"shuffle",label:"node.tabs.routing",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"routing"]:null},{icon:"apps",label:"node.tabs.apps",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"apps"]:null}],this.selectedTabIndex=1,this.showingInfo=!1,this.lastUrl.includes("/info")&&(this.selectedTabIndex=0,this.showingInfo=!0),this.lastUrl.includes("/apps")&&(this.selectedTabIndex=2),this.showingFullList=!1,this.nodeActionsHelper=new cP(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);else if(this.lastUrl&&(this.lastUrl.includes("/transports")||this.lastUrl.includes("/routes")||this.lastUrl.includes("/apps-list"))){this.showingFullList=!0,this.showingInfo=!1,this.nodeActionsHelper=new cP(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);let e="transports";this.lastUrl.includes("/routes")?e="routes":this.lastUrl.includes("/apps-list")&&(e="apps.apps-list"),this.titleParts=["nodes.title","node.title",e+".title"],this.tabsData=[{icon:"view_headline",label:e+".list-title",linkParts:[]}],this.selectedTabIndex=0}else this.titleParts=[],this.tabsData=[]}performAction(e){this.nodeActionsHelper.performAction(e,t.currentNodeKey)}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.singleNodeDataService.forceSpecificNodeRefresh(t.currentNodeKey)}startGettingData(e){const i=e?this.getLocalValue(this.persistentDataResponseKey):null;let o=this.singleNodeDataService.startRequestingData(t.currentNodeKey);i&&(o=$e(JSON.parse(i.value))),this.dataSubscription=o.subscribe(s=>{if(i||this.saveLocalValue(this.persistentDataResponseKey,JSON.stringify(s)),this.updating=!s||s.updating,s&&!s.updating)if(s.data&&!s.error)this.node=s.data,this.trafficData=s.trafficData,t.nodeSubject.next(this.node),t.trafficDataSubject.next(this.trafficData),this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNode(this.node),this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=s.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-s.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1);else if(s.error){if(s.error.originalError&&400===s.error.originalError.status)return void(this.notFound=!0);this.errorsUpdating||this.snackbarService.showError(this.node?"node.error-load":"common.loading-error",null,!0,s.error),this.errorsUpdating=!0}i&&this.startGettingData(!1)})}ngOnDestroy(){this.singleNodeDataService.stopRequestingSpecificNode(t.currentNodeKey),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.initSubscription.unsubscribe(),t.currentInstanceInternal=void 0,t.currentNodeKey=void 0,t.nodeSubject.complete(),t.nodeSubject=void 0,t.trafficDataSubject.complete(),t.trafficDataSubject=void 0,this.nodeActionsHelper.dispose()}}return t.\u0275fac=function(e){return new(e||t)(Y(Ji),Y(rJ),Y(Mr),Y(ft),Y(Dn),Y(Si),Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-node"]],features:[nt],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","returnText","optionSelected"],[4,"ngIf"],["class","w-100 h-100 d-flex not-found-label",4,"ngIf"],[1,"w-100","h-100","d-flex","not-found-label"],[3,"inline"],[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","returnText","optionSelected","refreshRequested"],[3,"ngClass"],[1,"d-flex","flex-column","h-100"],[1,"right-bar",3,"ngClass"],[3,"nodeInfo","trafficData",4,"ngIf"],[3,"nodeInfo","trafficData"]],template:function(e,i){1&e&&(V(0,aJ,5,8,"div",0),V(1,uJ,9,17,"div",1)),2&e&&(w("ngIf",!i.node),c(1),w("ngIf",i.node))},styles:[".not-found-label[_ngcontent-%COMP%]{align-items:center;justify-content:center;font-size:1rem;position:relative}.not-found-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;font-size:22px;opacity:.5;margin-right:3px}.full-size-main-area[_ngcontent-%COMP%], .main-area[_ngcontent-%COMP%]{width:100%}@media (min-width: 992px){.main-area[_ngcontent-%COMP%]{width:73%;padding-right:20px;float:left}}.right-bar[_ngcontent-%COMP%]{width:27%;float:right;display:none}@media (min-width: 992px){.right-bar[_ngcontent-%COMP%]{display:block;width:27%;float:right}}"]}),t})();function hJ(t,n){if(1&t&&(D(0,"mat-option",10),I(1),R(2,"translate"),C()),2&t){const e=n.$implicit;Ln("value",e),c(1),vo(" ",e," ",H(2,3,"settings.seconds")," ")}}let fJ=(()=>{class t{constructor(e,i,o){this.formBuilder=e,this.storageService=i,this.snackbarService=o,this.timesList=["3","5","10","15","30","60","90","150","300"]}ngOnInit(){this.form=this.formBuilder.group({refreshRate:[this.storageService.getRefreshTime().toString()]}),this.subscription=this.form.get("refreshRate").valueChanges.subscribe(e=>{this.storageService.setRefreshTime(e),this.snackbarService.showDone("settings.refresh-rate-confirmation")})}ngOnDestroy(){this.subscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(xr),Y(Ji),Y(Dn))},t.\u0275cmp=Ze({type:t,selectors:[["app-refresh-rate"]],decls:14,vars:9,consts:[[1,"rounded-elevated-box"],[1,"box-internal-container","overflow"],[1,"white-form-help-icon-container"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","refreshRate"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon",3),R(4,"translate"),I(5," help "),C()(),D(6,"form",4)(7,"mat-form-field",5)(8,"div",6)(9,"label",7),I(10),R(11,"translate"),C(),D(12,"mat-select",8),V(13,hJ,3,5,"mat-option",9),C()()()()()()),2&e&&(c(3),w("inline",!0)("matTooltip",H(4,5,"settings.refresh-rate-help")),c(3),w("formGroup",i.form),c(4),se(H(11,7,"settings.refresh-rate")),c(3),w("ngForOf",i.timesList))},dependencies:[gi,zi,Vi,ji,ii,Ei,ar,Cn,vi,tf,Pd,wt],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}mat-form-field[_ngcontent-%COMP%] .mat-mdc-form-field-bottom-align{margin-bottom:0!important}"]}),t})();const pJ=function(t){return{number:t}};let Og=(()=>{class t{constructor(){this.numberOfElements=0,this.linkParts=[""],this.queryParams={}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-view-all-link"]],inputs:{numberOfElements:"numberOfElements",linkParts:"linkParts",queryParams:"queryParams"},decls:6,vars:9,consts:[[1,"main-container"],[3,"routerLink","queryParams"],[3,"inline"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"a",1),I(2),R(3,"translate"),D(4,"mat-icon",2),I(5,"chevron_right"),C()()()),2&e&&(c(1),w("routerLink",i.linkParts)("queryParams",i.queryParams),c(1),ce(" ",kt(3,4,"view-all-link.label",He(7,pJ,i.numberOfElements))," "),c(2),w("inline",!0))},dependencies:[qa,Cn,wt],styles:[".main-container[_ngcontent-%COMP%]{padding-top:20px;margin-bottom:4px;text-align:right;font-size:.875rem}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.main-container[_ngcontent-%COMP%]{margin:0;padding:16px}}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}"]}),t})();function mJ(t,n){1&t&&(D(0,"span",14),I(1),R(2,"translate"),D(3,"mat-icon",15),R(4,"translate"),I(5,"help"),C()()),2&t&&(c(1),ce(" ",H(2,3,"labels.title")," "),c(2),w("inline",!0)("matTooltip",H(4,5,"labels.info")))}function gJ(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function _J(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function bJ(t,n){if(1&t&&(D(0,"div",19)(1,"span"),I(2),R(3,"translate"),C(),V(4,gJ,3,3,"ng-container",20),V(5,_J,2,1,"ng-container",20),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function vJ(t,n){if(1&t){const e=et();D(0,"div",16),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,bJ,6,5,"div",17),D(2,"div",18),I(3),R(4,"translate"),C()()}if(2&t){const e=z();c(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),se(H(4,2,"filters.press-to-remove"))}}function yJ(t,n){if(1&t){const e=et();D(0,"mat-icon",21),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&t&&w("inline",!0)("matTooltip",H(1,2,"filters.filter-action"))}function MJ(t,n){if(1&t&&(D(0,"mat-icon",22),I(1,"more_horiz"),C()),2&t){z();const e=ci(9);w("inline",!0)("matMenuTriggerFor",e)}}const B1=function(){return["/settings","labels"]};function wJ(t,n){if(1&t&&xe(0,"app-paginator",23),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",qn(4,B1))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function CJ(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function xJ(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function kJ(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function SJ(t,n){if(1&t){const e=et();D(0,"tr")(1,"td",38)(2,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),I(4),C(),D(5,"td"),I(6),C(),D(7,"td"),I(8),R(9,"translate"),C(),D(10,"td",29)(11,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).delete(s.id))}),R(12,"translate"),D(13,"mat-icon",36),I(14,"close"),C()()()()}if(2&t){const e=n.$implicit,i=z(2);c(2),w("checked",i.selections.get(e.id)),c(2),ce(" ",e.label," "),c(2),ce(" ",e.id," "),c(2),vo(" ",i.getLabelTypeIdentification(e)[0]," - ",H(9,7,i.getLabelTypeIdentification(e)[1])," "),c(3),w("matTooltip",H(12,9,"labels.delete")),c(2),w("inline",!0)}}function DJ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.label")))}function TJ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.inverted-order")))}function LJ(t,n){if(1&t){const e=et();D(0,"tr")(1,"td")(2,"div",33)(3,"div",41)(4,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",34)(6,"div",42)(7,"span",1),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",43)(12,"span",1),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",42)(17,"span",1),I(18),R(19,"translate"),C(),I(20),R(21,"translate"),C()(),xe(22,"div",44),D(23,"div",35)(24,"button",45),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(25,"translate"),D(26,"mat-icon"),I(27),C()()()()()()}if(2&t){const e=n.$implicit,i=z(2);c(4),w("checked",i.selections.get(e.id)),c(4),se(H(9,10,"labels.label")),c(2),ce(": ",e.label," "),c(3),se(H(14,12,"labels.id")),c(2),ce(": ",e.id," "),c(3),se(H(19,14,"labels.type")),c(2),vo(": ",i.getLabelTypeIdentification(e)[0]," - ",H(21,16,i.getLabelTypeIdentification(e)[1])," "),c(4),w("matTooltip",H(25,18,"common.options")),c(3),se("add")}}function EJ(t,n){if(1&t&&xe(0,"app-view-all-link",46),2&t){const e=z(2);w("numberOfElements",e.filteredLabels.length)("linkParts",qn(3,B1))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const IJ=function(t,n){return{"small-node-list-margins":t,"full-node-list-margins":n}},PJ=function(t){return{"d-lg-none d-xl-table":t}},OJ=function(t){return{"d-lg-table d-xl-none":t}};function AJ(t,n){if(1&t){const e=et();D(0,"div",24)(1,"div",25)(2,"table",26)(3,"tr"),xe(4,"th"),D(5,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.labelSortData))}),I(6),R(7,"translate"),V(8,CJ,2,2,"mat-icon",28),C(),D(9,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.idSortData))}),I(10),R(11,"translate"),V(12,xJ,2,2,"mat-icon",28),C(),D(13,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),I(14),R(15,"translate"),V(16,kJ,2,2,"mat-icon",28),C(),xe(17,"th",29),C(),V(18,SJ,15,11,"tr",30),C(),D(19,"table",31)(20,"tr",32),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(21,"td")(22,"div",33)(23,"div",34)(24,"div",1),I(25),R(26,"translate"),C(),D(27,"div"),I(28),R(29,"translate"),V(30,DJ,3,3,"ng-container",20),V(31,TJ,3,3,"ng-container",20),C()(),D(32,"div",35)(33,"mat-icon",36),I(34,"keyboard_arrow_down"),C()()()()(),V(35,LJ,28,20,"tr",30),C(),V(36,EJ,1,4,"app-view-all-link",37),C()()}if(2&t){const e=z();c(1),w("ngClass",mn(27,IJ,e.showShortList_,!e.showShortList_)),c(1),w("ngClass",He(30,PJ,e.showShortList_)),c(4),ce(" ",H(7,17,"labels.label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.labelSortData),c(2),ce(" ",H(11,19,"labels.id")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.idSortData),c(2),ce(" ",H(15,21,"labels.type")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),w("ngForOf",e.dataSource),c(1),w("ngClass",He(32,OJ,e.showShortList_)),c(6),se(H(26,23,"tables.sorting-title")),c(3),ce("",H(29,25,e.dataSorter.currentSortingColumn.label)," "),c(2),w("ngIf",e.dataSorter.currentlySortingByLabel),c(1),w("ngIf",e.dataSorter.sortingInReverseOrder),c(2),w("inline",!0),c(2),w("ngForOf",e.dataSource),c(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function FJ(t,n){1&t&&(D(0,"span",50),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"labels.empty")))}function RJ(t,n){1&t&&(D(0,"span",50),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"labels.empty-with-filter")))}function NJ(t,n){if(1&t&&(D(0,"div",24)(1,"div",47)(2,"mat-icon",48),I(3,"warning"),C(),V(4,FJ,3,3,"span",49),V(5,RJ,3,3,"span",49),C()()),2&t){const e=z();c(2),w("inline",!0),c(2),w("ngIf",0===e.allLabels.length),c(1),w("ngIf",0!==e.allLabels.length)}}function YJ(t,n){if(1&t&&xe(0,"app-paginator",23),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",qn(4,B1))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const HJ=function(t){return{"paginator-icons-fixer":t}};let dP=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredLabels)}constructor(e,i,o,s,a,l){this.dialog=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listId="ll",this.labelSortData=new Vn(["label"],"labels.label",Zt.Text),this.idSortData=new Vn(["id"],"labels.id",Zt.Text),this.typeSortData=new Vn(["identifiedElementType_sort"],"labels.type",Zt.Text),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"labels.filter-dialog.label",keyNameInElementsArray:"label",type:$n.TextInput,maxlength:100},{filterName:"labels.filter-dialog.id",keyNameInElementsArray:"id",type:$n.TextInput,maxlength:66},{filterName:"labels.filter-dialog.type",keyNameInElementsArray:"identifiedElementType",type:$n.Select,printableLabelsForValues:[{value:"",label:"labels.filter-dialog.type-options.any"},{value:Xi.Node,label:"labels.filter-dialog.type-options.visor"},{value:Xi.DmsgServer,label:"labels.filter-dialog.type-options.dmsg-server"},{value:Xi.Transport,label:"labels.filter-dialog.type-options.transport"}]}],this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,[this.labelSortData,this.idSortData,this.typeSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new Nd(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(_=>{this.filteredLabels=_,this.dataSorter.setData(this.filteredLabels)}),this.loadData(),this.navigationsSubscription=this.route.paramMap.subscribe(_=>{if(_.has("page")){let E=Number.parseInt(_.get("page"),10);(isNaN(E)||E<1)&&(E=1),this.currentPageInUrl=E,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}loadData(){this.allLabels=this.storageService.getSavedLabels(),this.allLabels.forEach(e=>{e.identifiedElementType_sort=this.getLabelTypeIdentification(e)[0]}),this.dataFilterer.setData(this.allLabels)}getLabelTypeIdentification(e){return e.identifiedElementType===Xi.Node?["1","labels.filter-dialog.type-options.visor"]:e.identifiedElementType===Xi.DmsgServer?["2","labels.filter-dialog.type-options.dmsg-server"]:e.identifiedElementType===Xi.Transport?["3","labels.filter-dialog.type-options.transport"]:void 0}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Jt.createConfirmationDialog(this.dialog,"labels.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.selections.forEach((i,o)=>{i&&this.storageService.saveLabel(o,"",null)}),this.snackbarService.showDone("labels.deleted"),this.loadData()})}showOptionsDialog(e){qr.openDialog(this.dialog,[{icon:"close",label:"labels.delete"}],"common.options").afterClosed().subscribe(o=>{1===o&&this.delete(e.id)})}delete(e){const i=Jt.createConfirmationDialog(this.dialog,"labels.delete-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.saveLabel(e,"",null),this.snackbarService.showDone("labels.deleted"),this.loadData()})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredLabels){const e=this.showShortList_?Vt.maxShortListElements:Vt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredLabels.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.labelsToShow=this.filteredLabels.slice(i,i+e);const s=new Map;this.labelsToShow.forEach(l=>{s.set(l.id,!0),this.selections.has(l.id)||this.selections.set(l.id,!1)});const a=[];this.selections.forEach((l,d)=>{s.has(d)||a.push(d)}),a.forEach(l=>{this.selections.delete(l)})}else this.labelsToShow=null,this.selections=new Map;this.dataSource=this.labelsToShow}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(Mr),Y(hn),Y(Dn),Y(To),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-label-list"]],inputs:{showShortList:"showShortList"},decls:23,vars:22,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"inline","matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"inline","matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline",4,"ngIf"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,mJ,6,7,"span",2),V(3,vJ,5,4,"div",3),C(),D(4,"div",4)(5,"div",5),V(6,yJ,3,4,"mat-icon",6),V(7,MJ,2,2,"mat-icon",7),D(8,"mat-menu",8,9)(10,"div",10),ye("click",function(){return i.changeAllSelections(!0)}),I(11),R(12,"translate"),C(),D(13,"div",10),ye("click",function(){return i.changeAllSelections(!1)}),I(14),R(15,"translate"),C(),D(16,"div",11),ye("click",function(){return i.deleteSelected()}),I(17),R(18,"translate"),C()()(),V(19,wJ,1,5,"app-paginator",12),C()(),V(20,AJ,37,34,"div",13),V(21,NJ,6,3,"div",13),V(22,YJ,1,5,"app-paginator",12)),2&e&&(w("ngClass",He(20,HJ,!i.showShortList_&&i.numberOfPages>1&&i.dataSource)),c(2),w("ngIf",i.showShortList_),c(1),w("ngIf",i.dataFilterer.currentFiltersTexts&&i.dataFilterer.currentFiltersTexts.length>0),c(3),w("ngIf",i.allLabels&&i.allLabels.length>0),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("overlapTrigger",!1),c(3),ce(" ",H(12,14,"selection.select-all")," "),c(3),ce(" ",H(15,16,"selection.unselect-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(18,18,"selection.delete-all")," "),c(2),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("ngIf",!i.dataSource||0===i.dataSource.length),c(1),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource))},dependencies:[Nn,gi,Ft,Wr,el,Cn,vi,Yd,pa,Hd,fa,Og,Bd,wt],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]}),t})();function BJ(t,n){1&t&&xe(0,"app-password")}function VJ(t,n){1&t&&(D(0,"div",8),xe(1,"mat-spinner",9),I(2),R(3,"translate"),C()),2&t&&(c(1),w("diameter",11),c(1),ce(" ",H(3,2,"settings.checking-auth")," "))}const jJ=function(){return["start.title"]};let zJ=(()=>{class t extends er{constructor(e,i,o,s){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=s,this.persistentAuthDataResponseKey="serv-aut-response",this.tabsData=[],this.options=[],this.waitBeforeShowingLoading=!0,this.authChecked=!1,this.authActive=!1,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"language",label:"nodes.dmsg-title",linkParts:["/nodes","dmsg"]},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.updateOptionsMenu()}ngOnInit(){return setTimeout(()=>{this.waitBeforeShowingLoading=!1},500),this.checkAuth(0,!0),super.ngOnInit()}checkAuth(e,i){const o=i?this.getLocalValue(this.persistentAuthDataResponseKey):null;let s=this.authService.checkLogin();o&&(s=$e(JSON.parse(o.value))),this.authSubscription=$e(1).pipe(Ti(e),Ye(()=>s)).subscribe(a=>{o||this.saveLocalValue(this.persistentAuthDataResponseKey,JSON.stringify(a)),this.authChecked=!0,this.authActive=a===Fr.Logged,this.updateOptionsMenu(),o&&this.checkAuth(0,!1)},()=>{this.checkAuth(15e3,!1)})}ngOnDestroy(){this.authSubscription.unsubscribe()}updateOptionsMenu(){this.options=[],this.authActive&&(this.options=[{name:"common.logout",actionName:"logout",icon:"power_settings_new"}])}performAction(e){"logout"===e&&this.logout()}logout(){const e=Jt.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}}return t.\u0275fac=function(e){return new(e||t)(Y(Wh),Y(hn),Y(Dn),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-settings"]],features:[nt],decls:8,vars:9,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","optionSelected"],[1,"content","col-12","mt-4.5"],[1,"d-block","mb-4"],[4,"ngIf"],["class","white-theme checking-container",4,"ngIf"],[3,"showShortList"],[1,"white-theme","checking-container"],[3,"diameter"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"app-top-bar",2),ye("optionSelected",function(s){return i.performAction(s)}),C()(),D(3,"div",3),xe(4,"app-refresh-rate",4),V(5,BJ,1,0,"app-password",5),V(6,VJ,4,4,"div",6),xe(7,"app-label-list",7),C()()),2&e&&(c(2),w("titleParts",qn(8,jJ))("tabsData",i.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("optionsData",i.options),c(3),w("ngIf",i.authChecked&&i.authActive),c(1),w("ngIf",!i.authChecked&&!i.waitBeforeShowingLoading),c(1),w("showShortList",!0))},dependencies:[Ft,ec,FI,fJ,sc,dP,wt],styles:[".checking-container[_ngcontent-%COMP%]{font-size:10px;opacity:.5}.checking-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block}.show-link[_ngcontent-%COMP%]{cursor:pointer;font-size:.8rem}"]}),t})(),V1=(()=>{class t{constructor(e){this.apiService=e}create(e,i,o){const s={remote_pk:i};return o&&(s.transport_type=o),this.apiService.post(`visors/${e}/transports`,s)}delete(e,i){return this.apiService.delete(`visors/${e}/transports/${i}`)}savePersistentTransportsData(e,i){return this.apiService.put(`visors/${e}/persistent-transports`,i)}getPersistentTransports(e){return this.apiService.get(`visors/${e}/persistent-transports`)}types(e){return this.apiService.get(`visors/${e}/transport-types`)}changeAutoconnectSetting(e,i){const o={};return o.public_autoconnect=i,this.apiService.put(`visors/${e}/public-autoconnect`,o)}}return t.\u0275fac=function(e){return new(e||t)(we(il))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const UJ=["button"],WJ=["firstInput"];function $J(t,n){1&t&&xe(0,"app-loading-indicator",5),2&t&&w("showWhite",!1)}function GJ(t,n){1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),se(H(3,1,"transports.dialog.errors.remote-key-length-error")))}function qJ(t,n){1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"transports.dialog.errors.remote-key-chars-error")))}function KJ(t,n){if(1&t&&(D(0,"mat-option",19),I(1),C()),2&t){const e=n.$implicit;w("value",e),c(1),se(e)}}const Ag=function(t){return{"element-disabled":t}};function ZJ(t,n){if(1&t){const e=et();D(0,"form",6)(1,"mat-form-field",7)(2,"div",8)(3,"label",9),I(4),R(5,"translate"),C(),xe(6,"input",10,11),C(),D(8,"mat-error"),V(9,GJ,4,3,"ng-container",12),C(),V(10,qJ,3,3,"ng-template",null,13,Es),C(),D(12,"mat-form-field",7)(13,"div",8)(14,"label",9),I(15),R(16,"translate"),C(),xe(17,"input",14),C()(),D(18,"mat-form-field",7)(19,"div",8)(20,"label",9),I(21),R(22,"translate"),C(),D(23,"mat-select",15),V(24,KJ,2,2,"mat-option",16),C()(),D(25,"mat-error")(26,"span"),I(27),R(28,"translate"),C()()(),D(29,"mat-checkbox",17),ye("change",function(o){return Pe(e),Oe(z().setMakePersistent(o))}),I(30),R(31,"translate"),D(32,"mat-icon",18),R(33,"translate"),I(34,"help"),C()()()}if(2&t){const e=ci(11),i=z();w("formGroup",i.form),c(1),w("ngClass",He(28,Ag,i.disableDismiss)),c(3),se(H(5,16,"transports.dialog.remote-key")),c(5),w("ngIf",!i.form.get("remoteKey").hasError("pattern"))("ngIfElse",e),c(3),w("ngClass",He(30,Ag,i.disableDismiss)),c(3),se(H(16,18,"transports.dialog.label")),c(3),w("ngClass",He(32,Ag,i.disableDismiss)),c(3),se(H(22,20,"transports.dialog.transport-type")),c(3),w("ngForOf",i.types),c(3),se(H(28,22,"transports.dialog.errors.transport-type-error")),c(2),w("checked",i.makePersistent)("ngClass",He(34,Ag,i.disableDismiss)),c(1),ce(" ",H(31,24,"transports.dialog.make-persistent")," "),c(2),w("inline",!0)("matTooltip",H(33,26,"transports.dialog.persistent-tooltip"))}}let XJ=(()=>{class t{static openDialog(e){const i=new En;return i.autoFocus=!1,i.width=Vt.mediumModalWidth,e.open(t,i)}constructor(e,i,o,s,a,l){this.transportService=e,this.formBuilder=i,this.dialogRef=o,this.snackbarService=s,this.storageService=a,this.nodeService=l,this.makePersistent=!1,this.shouldShowError=!0}ngOnInit(){this.form=this.formBuilder.group({remoteKey:["",Gt.compose([Gt.required,Gt.minLength(66),Gt.maxLength(66),Gt.pattern("^[0-9a-fA-F]+$")])],label:[""],type:["",Gt.required]}),this.loadData(0)}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setMakePersistent(e){this.makePersistent=!!e.checked}create(){if(!this.form.valid||this.button.disabled)return;this.button.showLoading();const e=this.form.get("remoteKey").value,i=this.form.get("type").value,o=this.form.get("label").value;if(this.makePersistent){const s=this.transportService.getPersistentTransports(Ct.getCurrentNodeKey());this.operationSubscription=s.subscribe(a=>{const l=a||[];let d=!1;l.forEach(_=>{_.pk.toUpperCase()===e.toUpperCase()&&_.type.toUpperCase()===i.toUpperCase()&&(d=!0)}),d?this.createTransport(e,i,o,!0):this.createPersistent(l,e,i,o)},a=>{this.onError(a)})}else this.createTransport(e,i,o,!1)}createPersistent(e,i,o,s){e.push({pk:i,type:o}),this.operationSubscription=this.transportService.savePersistentTransportsData(Ct.getCurrentNodeKey(),e).subscribe(()=>{this.createTransport(i,o,s,!0)},a=>{this.onError(a)})}createTransport(e,i,o,s){this.operationSubscription=this.transportService.create(Ct.getCurrentNodeKey(),e,i).subscribe(a=>{let l=!1;o&&(a&&a.id?this.storageService.saveLabel(a.id,o,Xi.Transport):l=!0),Ct.refreshCurrentDisplayedData(),this.dialogRef.close(),l?this.snackbarService.showWarning("transports.dialog.success-without-label"):this.snackbarService.showDone("transports.dialog.success")},a=>{s?(Ct.refreshCurrentDisplayedData(),this.dialogRef.close(),this.snackbarService.showWarning("transports.dialog.only-persistent-created")):this.onError(a)})}onError(e){this.button.showError(),e=en(e),this.snackbarService.showError(e)}loadData(e){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=$e(1).pipe(Ti(e),Ye(()=>this.transportService.types(Ct.getCurrentNodeKey()))).subscribe(i=>{i.sort((s,a)=>"stcp"===s.toLowerCase()?1:"stcp"===a.toLowerCase()?-1:s.localeCompare(a));let o=i.findIndex(s=>"dmsg"===s.toLowerCase());o=-1!==o?o:0,this.types=i,this.form.get("type").setValue(i[o]),this.snackbarService.closeCurrentIfTemporaryError(),setTimeout(()=>this.firstInput.nativeElement.focus())},i=>{i=en(i),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,i),this.shouldShowError=!1),this.loadData(Vt.connectionRetryDelay)})}}return t.\u0275fac=function(e){return new(e||t)(Y(V1),Y(xr),Y(Bn),Y(Dn),Y(Ji),Y(ua))},t.\u0275cmp=Ze({type:t,selectors:[["app-create-transport"]],viewQuery:function(e,i){if(1&e&&(_t(UJ,5),_t(WJ,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:8,vars:11,consts:[[3,"headline","dialog","disableDismiss"],[3,"showWhite",4,"ngIf"],[3,"formGroup",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],[3,"showWhite"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","remoteKey","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],["formControlName","label","maxlength","66","matInput",""],["formControlName","type"],[3,"value",4,"ngFor","ngForOf"],["color","primary",3,"checked","ngClass","change"],[1,"help-icon",3,"inline","matTooltip"],[3,"value"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),V(2,$J,1,1,"app-loading-indicator",1),V(3,ZJ,35,36,"form",2),D(4,"app-button",3,4),ye("action",function(){return i.create()}),I(6),R(7,"translate"),C()()),2&e&&(w("headline",H(1,7,"transports.create"))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(2),w("ngIf",!i.types),c(1),w("ngIf",i.types),c(1),w("disabled",!i.form.valid),c(2),ce(" ",H(7,9,"transports.create")," "))},dependencies:[Nn,gi,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Cn,vi,tf,Pd,fa,Ui,ei,as,wt],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]}),t})();function JJ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),D(3,"mat-icon",6),R(4,"translate"),I(5,"help"),C(),We()),2&t&&(c(1),ce(" ",H(2,3,"common.yes")," "),c(2),w("inline",!0)("matTooltip",H(4,5,"transports.persistent-transport-tooltip")))}function QJ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"common.no")))}let eQ=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.largeModalWidth,e.open(t,o)}constructor(e,i){this.data=e,this.dialogRef=i}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn))},t.\u0275cmp=Ze({type:t,selectors:[["app-transport-details"]],decls:51,vars:45,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[4,"ngIf"],[1,"title"],[1,"help-icon","d-none","d-md-inline",3,"inline","matTooltip"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div")(3,"div",1)(4,"mat-icon",2),I(5,"list"),C(),I(6),R(7,"translate"),C(),D(8,"div",3)(9,"span"),I(10),R(11,"translate"),C(),V(12,JJ,6,7,"ng-container",4),V(13,QJ,3,3,"ng-container",4),C(),D(14,"div",3)(15,"span"),I(16),R(17,"translate"),C(),I(18),C(),D(19,"div",3)(20,"span"),I(21),R(22,"translate"),C(),I(23),C(),D(24,"div",3)(25,"span"),I(26),R(27,"translate"),C(),I(28),C(),D(29,"div",3)(30,"span"),I(31),R(32,"translate"),C(),I(33),C(),D(34,"div",5)(35,"mat-icon",2),I(36,"import_export"),C(),I(37),R(38,"translate"),C(),D(39,"div",3)(40,"span"),I(41),R(42,"translate"),C(),I(43),R(44,"autoScale"),C(),D(45,"div",3)(46,"span"),I(47),R(48,"translate"),C(),I(49),R(50,"autoScale"),C()()()),2&e&&(w("headline",H(1,21,"transports.details.title"))("dialog",i.dialogRef),c(4),w("inline",!0),c(2),ce("",H(7,23,"transports.details.basic.title")," "),c(4),se(H(11,25,"transports.details.basic.persistent")),c(2),w("ngIf",i.data.isPersistent),c(1),w("ngIf",!i.data.isPersistent),c(3),se(H(17,27,"transports.details.basic.id")),c(2),ce(" ",i.data.id," "),c(3),se(H(22,29,"transports.details.basic.local-pk")),c(2),ce(" ",i.data.localPk," "),c(3),se(H(27,31,"transports.details.basic.remote-pk")),c(2),ce(" ",i.data.remotePk," "),c(3),se(H(32,33,"transports.details.basic.type")),c(2),ce(" ",i.data.type," "),c(2),w("inline",!0),c(2),ce("",H(38,35,"transports.details.data.title")," "),c(4),se(H(42,37,"transports.details.data.uploaded")),c(2),ce(" ",H(44,39,i.data.sent)," "),c(4),se(H(48,41,"transports.details.data.downloaded")),c(2),ce(" ",H(50,43,i.data.recv)," "))},dependencies:[Ft,Cn,vi,ei,wt,sf],styles:[".help-icon[_ngcontent-%COMP%]{opacity:.5;font-size:14px;cursor:default}"]}),t})();function tQ(t,n){1&t&&(D(0,"span",15),I(1),R(2,"translate"),D(3,"mat-icon",16),R(4,"translate"),I(5,"help"),C()()),2&t&&(c(1),ce(" ",H(2,3,"transports.title")," "),c(2),w("inline",!0)("matTooltip",H(4,5,"transports.info")))}function nQ(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function iQ(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function rQ(t,n){if(1&t&&(D(0,"div",20)(1,"span"),I(2),R(3,"translate"),C(),V(4,nQ,3,3,"ng-container",21),V(5,iQ,2,1,"ng-container",21),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function oQ(t,n){if(1&t){const e=et();D(0,"div",17),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,rQ,6,5,"div",18),D(2,"div",19),I(3),R(4,"translate"),C()()}if(2&t){const e=z();c(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),se(H(4,2,"filters.press-to-remove"))}}function sQ(t,n){if(1&t){const e=et();D(0,"mat-icon",22),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),I(1,"filter_list"),C()}2&t&&w("inline",!0)}function aQ(t,n){if(1&t&&(D(0,"mat-icon",23),I(1,"more_horiz"),C()),2&t){z();const e=ci(11);w("inline",!0)("matMenuTriggerFor",e)}}const j1=function(t){return["/nodes",t,"transports"]};function lQ(t,n){if(1&t&&xe(0,"app-paginator",24),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",He(4,j1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function cQ(t,n){if(1&t&&(D(0,"mat-icon",39),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function dQ(t,n){1&t&&(Ue(0),I(1,"*"),We())}function uQ(t,n){if(1&t&&(Ue(0),D(1,"mat-icon",39),I(2),C(),V(3,dQ,2,0,"ng-container",21),We()),2&t){const e=z(2);c(1),w("inline",!0),c(1),se(e.dataSorter.sortingArrow),c(1),w("ngIf",e.dataSorter.currentlySortingByLabel)}}function hQ(t,n){1&t&&(Ue(0),I(1,"*"),We())}function fQ(t,n){if(1&t&&(Ue(0),D(1,"mat-icon",39),I(2),C(),V(3,hQ,2,0,"ng-container",21),We()),2&t){const e=z(2);c(1),w("inline",!0),c(1),se(e.dataSorter.sortingArrow),c(1),w("ngIf",e.dataSorter.currentlySortingByLabel)}}function pQ(t,n){if(1&t&&(D(0,"mat-icon",39),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function mQ(t,n){if(1&t&&(D(0,"mat-icon",39),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function gQ(t,n){if(1&t&&(D(0,"mat-icon",39),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function _Q(t,n){if(1&t){const e=et();D(0,"button",48),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).changeIfPersistent([o],!1))}),R(1,"translate"),D(2,"mat-icon",49),I(3,"star"),C()()}2&t&&(w("matTooltip",H(1,2,"transports.persistent-transport-button-tooltip")),c(2),w("inline",!0))}function bQ(t,n){if(1&t){const e=et();D(0,"button",48),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).changeIfPersistent([o],!0))}),R(1,"translate"),D(2,"mat-icon",50),I(3,"star_outline"),C()()}2&t&&(w("matTooltip",H(1,2,"transports.non-persistent-transport-button-tooltip")),c(2),w("inline",!0))}function vQ(t,n){1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"transports.offline")))}function yQ(t,n){if(1&t){const e=et();D(0,"td")(1,"app-labeled-element-text",51),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C(),V(2,vQ,3,3,"span",21),C()}if(2&t){const e=z().$implicit,i=z(2);c(1),Ln("id",e.id),w("short",!0)("elementType",i.labeledElementTypes.Transport),c(1),w("ngIf",e.notFound)}}function MQ(t,n){1&t&&(D(0,"td"),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"transports.offline")," "))}function wQ(t,n){if(1&t&&(D(0,"td"),I(1),R(2,"autoScale"),C()),2&t){const e=z().$implicit;c(1),ce(" ",H(2,1,e.sent)," ")}}function CQ(t,n){if(1&t&&(D(0,"td"),I(1),R(2,"autoScale"),C()),2&t){const e=z().$implicit;c(1),ce(" ",H(2,1,e.recv)," ")}}function xQ(t,n){1&t&&(D(0,"td"),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"transports.offline")," "))}function kQ(t,n){1&t&&(D(0,"td"),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"transports.offline")," "))}function SQ(t,n){if(1&t){const e=et();D(0,"button",52),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).details(o))}),R(1,"translate"),D(2,"mat-icon",39),I(3,"visibility"),C()()}2&t&&(w("matTooltip",H(1,2,"transports.details.title")),c(2),w("inline",!0))}function DQ(t,n){if(1&t){const e=et();D(0,"button",52),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).delete(o))}),R(1,"translate"),D(2,"mat-icon",39),I(3,"close"),C()()}2&t&&(w("matTooltip",H(1,2,"transports.delete")),c(2),w("inline",!0))}const uP=function(t){return{offline:t}};function TQ(t,n){if(1&t){const e=et();D(0,"tr",42)(1,"td",43)(2,"mat-checkbox",44),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),V(4,_Q,4,4,"button",45),V(5,bQ,4,4,"button",45),C(),V(6,yQ,3,4,"td",21),V(7,MQ,3,3,"td",21),D(8,"td")(9,"app-labeled-element-text",46),ye("labelEdited",function(){return Pe(e),Oe(z(2).refreshData())}),C()(),D(10,"td"),I(11),C(),V(12,wQ,3,3,"td",21),V(13,CQ,3,3,"td",21),V(14,xQ,3,3,"td",21),V(15,kQ,3,3,"td",21),D(16,"td",32),V(17,SQ,4,4,"button",47),V(18,DQ,4,4,"button",47),C()()}if(2&t){const e=n.$implicit,i=z(2);w("ngClass",He(15,uP,e.notFound)),c(2),w("checked",i.selections.get(e.id)),c(2),w("ngIf",e.isPersistent),c(1),w("ngIf",!e.isPersistent),c(1),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound),c(2),Ln("id",e.remotePk),w("short",!0),c(2),ce(" ",e.type," "),c(1),w("ngIf",!e.notFound),c(1),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound),c(1),w("ngIf",e.notFound),c(2),w("ngIf",!e.notFound),c(1),w("ngIf",!e.notFound)}}function LQ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.label")))}function EQ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.inverted-order")))}function IQ(t,n){1&t&&(D(0,"div",59)(1,"div",59)(2,"mat-icon",62),I(3,"star"),C(),I(4,"\xa0 "),D(5,"span",63),I(6),R(7,"translate"),C()()()),2&t&&(c(2),w("inline",!0),c(4),se(H(7,2,"transports.persistent")))}function PQ(t,n){if(1&t){const e=et();D(0,"app-labeled-element-text",64),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()}if(2&t){const e=z().$implicit,i=z(2);Ln("id",e.id),w("elementType",i.labeledElementTypes.Transport)}}function OQ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"transports.offline")))}function AQ(t,n){if(1&t&&(Ue(0),I(1),R(2,"autoScale"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.sent))}}function FQ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"transports.offline")))}function RQ(t,n){if(1&t&&(Ue(0),I(1),R(2,"autoScale"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.recv))}}function NQ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"transports.offline")))}function YQ(t,n){if(1&t){const e=et();D(0,"tr")(1,"td")(2,"div",53)(3,"div",54)(4,"mat-checkbox",44),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",37),V(6,IQ,8,4,"div",55),D(7,"div",56)(8,"span",1),I(9),R(10,"translate"),C(),I(11,": "),V(12,PQ,1,2,"app-labeled-element-text",57),V(13,OQ,3,3,"ng-container",21),C(),D(14,"div",56)(15,"span",1),I(16),R(17,"translate"),C(),I(18,": "),D(19,"app-labeled-element-text",58),ye("labelEdited",function(){return Pe(e),Oe(z(2).refreshData())}),C()(),D(20,"div",59)(21,"span",1),I(22),R(23,"translate"),C(),I(24),C(),D(25,"div",59)(26,"span",1),I(27),R(28,"translate"),C(),I(29,": "),V(30,AQ,3,3,"ng-container",21),V(31,FQ,3,3,"ng-container",21),C(),D(32,"div",59)(33,"span",1),I(34),R(35,"translate"),C(),I(36,": "),V(37,RQ,3,3,"ng-container",21),V(38,NQ,3,3,"ng-container",21),C()(),xe(39,"div",60),D(40,"div",38)(41,"button",61),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(42,"translate"),D(43,"mat-icon"),I(44),C()()()()()()}if(2&t){const e=n.$implicit,i=z(2);c(2),w("ngClass",He(30,uP,e.notFound)),c(2),w("checked",i.selections.get(e.id)),c(2),w("ngIf",e.isPersistent),c(3),se(H(10,18,"transports.id")),c(3),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound),c(3),se(H(17,20,"transports.remote-node")),c(3),Ln("id",e.remotePk),c(3),se(H(23,22,"transports.type")),c(2),ce(": ",e.type," "),c(3),se(H(28,24,"common.uploaded")),c(3),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound),c(3),se(H(35,26,"common.downloaded")),c(3),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound),c(3),w("matTooltip",H(42,28,"common.options")),c(3),se("add")}}function HQ(t,n){if(1&t&&xe(0,"app-view-all-link",65),2&t){const e=z(2);w("numberOfElements",e.filteredTransports.length)("linkParts",He(3,j1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const BQ=function(t,n){return{"small-node-list-margins":t,"full-node-list-margins":n}},VQ=function(t){return{"d-lg-none d-xl-table":t}},jQ=function(t){return{"d-lg-table d-xl-none":t}};function zQ(t,n){if(1&t){const e=et();D(0,"div",25)(1,"div",26)(2,"table",27)(3,"tr"),xe(4,"th"),D(5,"th",28),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.persistentSortData))}),R(6,"translate"),D(7,"mat-icon",29),I(8,"star_outline"),C(),V(9,cQ,2,2,"mat-icon",30),C(),D(10,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.idSortData))}),I(11),R(12,"translate"),V(13,uQ,4,3,"ng-container",21),C(),D(14,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.remotePkSortData))}),I(15),R(16,"translate"),V(17,fQ,4,3,"ng-container",21),C(),D(18,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),I(19),R(20,"translate"),V(21,pQ,2,2,"mat-icon",30),C(),D(22,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.uploadedSortData))}),I(23),R(24,"translate"),V(25,mQ,2,2,"mat-icon",30),C(),D(26,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.downloadedSortData))}),I(27),R(28,"translate"),V(29,gQ,2,2,"mat-icon",30),C(),xe(30,"th",32),C(),V(31,TQ,19,17,"tr",33),C(),D(32,"table",34)(33,"tr",35),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(34,"td")(35,"div",36)(36,"div",37)(37,"div",1),I(38),R(39,"translate"),C(),D(40,"div"),I(41),R(42,"translate"),V(43,LQ,3,3,"ng-container",21),V(44,EQ,3,3,"ng-container",21),C()(),D(45,"div",38)(46,"mat-icon",39),I(47,"keyboard_arrow_down"),C()()()()(),V(48,YQ,45,32,"tr",40),C(),V(49,HQ,1,5,"app-view-all-link",41),C()()}if(2&t){const e=z();c(1),w("ngClass",mn(39,BQ,e.showShortList_,!e.showShortList_)),c(1),w("ngClass",He(42,VQ,e.showShortList_)),c(3),w("matTooltip",H(6,23,"transports.persistent-tooltip")),c(4),w("ngIf",e.dataSorter.currentSortingColumn===e.persistentSortData),c(2),ce(" ",H(12,25,"transports.id")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.idSortData),c(2),ce(" ",H(16,27,"transports.remote-node")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.remotePkSortData),c(2),ce(" ",H(20,29,"transports.type")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),ce(" ",H(24,31,"common.uploaded")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.uploadedSortData),c(2),ce(" ",H(28,33,"common.downloaded")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.downloadedSortData),c(2),w("ngForOf",e.dataSource),c(1),w("ngClass",He(44,jQ,e.showShortList_)),c(6),se(H(39,35,"tables.sorting-title")),c(3),ce("",H(42,37,e.dataSorter.currentSortingColumn.label)," "),c(2),w("ngIf",e.dataSorter.currentlySortingByLabel),c(1),w("ngIf",e.dataSorter.sortingInReverseOrder),c(2),w("inline",!0),c(2),w("ngForOf",e.dataSource),c(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function UQ(t,n){1&t&&(D(0,"span",69),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"transports.empty")))}function WQ(t,n){1&t&&(D(0,"span",69),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"transports.empty-with-filter")))}function $Q(t,n){if(1&t&&(D(0,"div",25)(1,"div",66)(2,"mat-icon",67),I(3,"warning"),C(),V(4,UQ,3,3,"span",68),V(5,WQ,3,3,"span",68),C()()),2&t){const e=z();c(2),w("inline",!0),c(2),w("ngIf",0===e.allTransports.length),c(1),w("ngIf",0!==e.allTransports.length)}}function GQ(t,n){if(1&t&&xe(0,"app-paginator",24),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",He(4,j1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const qQ=function(t){return{"paginator-icons-fixer":t}};let hP=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredTransports)}set node(e){this.currentNode=e,this.allTransports=e.transports,this.nodePK=e.localPk;const i=new Map;e.persistentTransports.forEach(o=>i.set(this.getPersistentTransportID(o.pk,o.type),o)),this.allTransports.forEach(o=>{i.has(this.getPersistentTransportID(o.remotePk,o.type))?(o.isPersistent=!0,i.delete(this.getPersistentTransportID(o.remotePk,o.type))):o.isPersistent=!1}),i.forEach((o,s)=>{this.allTransports.push({id:this.getPersistentTransportID(o.pk,o.type),localPk:e.localPk,remotePk:o.pk,type:o.type,recv:0,sent:0,isPersistent:!0,notFound:!0})}),this.allTransports.forEach(o=>{o.id_label=ha.getCompleteLabel(this.storageService,this.translateService,o.id),o.remote_pk_label=ha.getCompleteLabel(this.storageService,this.translateService,o.remotePk)}),this.dataFilterer.setData(this.allTransports)}constructor(e,i,o,s,a,l,d,_){this.dialog=e,this.transportService=i,this.route=o,this.router=s,this.snackbarService=a,this.translateService=l,this.storageService=d,this.nodeService=_,this.listId="tr",this.persistentSortData=new Vn(["isPersistent"],"transports.persistent",Zt.Boolean),this.idSortData=new Vn(["id"],"transports.id",Zt.Text,["id_label"]),this.remotePkSortData=new Vn(["remotePk"],"transports.remote-node",Zt.Text,["remote_pk_label"]),this.typeSortData=new Vn(["type"],"transports.type",Zt.Text),this.uploadedSortData=new Vn(["sent"],"common.uploaded",Zt.NumberReversed),this.downloadedSortData=new Vn(["recv"],"common.downloaded",Zt.NumberReversed),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"transports.filter-dialog.persistent",keyNameInElementsArray:"isPersistent",type:$n.Select,printableLabelsForValues:[{value:"",label:"transports.filter-dialog.persistent-options.any"},{value:"true",label:"transports.filter-dialog.persistent-options.persistent"},{value:"false",label:"transports.filter-dialog.persistent-options.non-persistent"}]},{filterName:"transports.filter-dialog.id",keyNameInElementsArray:"id",secondaryKeyNameInElementsArray:"id_label",type:$n.TextInput,maxlength:36},{filterName:"transports.filter-dialog.remote-node",keyNameInElementsArray:"remotePk",secondaryKeyNameInElementsArray:"remote_pk_label",type:$n.TextInput,maxlength:66}],this.labeledElementTypes=Xi,this.operationSubscriptionsGroup=[],this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,[this.persistentSortData,this.idSortData,this.remotePkSortData,this.typeSortData,this.uploadedSortData,this.downloadedSortData],1,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new Nd(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(F=>{this.filteredTransports=F,this.dataSorter.setData(this.filteredTransports)}),this.navigationsSubscription=this.route.paramMap.subscribe(F=>{if(F.has("page")){let G=Number.parseInt(F.get("page"),10);(isNaN(G)||G<1)&&(G=1),this.currentPageInUrl=G,this.recalculateElementsToShow()}}),this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.node=this.currentNode})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.languageSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose(),this.persistentTransportSubscription&&this.persistentTransportSubscription.unsubscribe()}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Jt.createConfirmationDialog(this.dialog,"transports.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=[];this.selections.forEach((o,s)=>{o&&i.push(s)}),this.deleteRecursively(i,e)})}create(){XJ.openDialog(this.dialog)}showOptionsDialog(e){const i=[];i.push(e.isPersistent?{icon:"star_outline",label:"transports.make-non-persistent"}:{icon:"star",label:"transports.make-persistent"}),e.notFound||(i.push({icon:"visibility",label:"transports.details.title"}),i.push({icon:"close",label:"transports.delete"})),qr.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.changeIfPersistent([e],!e.isPersistent):2===o?this.details(e):3===o&&this.delete(e)})}changeIfPersistentOfSelected(e){const i=[];this.allTransports.forEach(o=>{this.selections.has(o.id)&&this.selections.get(o.id)&&i.push(o)}),this.changeIfPersistent(i,e)}changeIfPersistent(e,i){if(e.length<1)return;let o="transports.";o+=1===e.length?i?"make-persistent-confirmation":"make"+(e[0].notFound?"-offline":"")+"-non-persistent-confirmation":i?"make-selected-persistent-confirmation":"make-selected-non-persistent-confirmation";const s=Jt.createConfirmationDialog(this.dialog,o);s.componentInstance.operationAccepted.subscribe(()=>{s.componentInstance.showProcessing(),this.persistentTransportSubscription=this.transportService.getPersistentTransports(this.nodePK).subscribe(a=>{const l=a||[];let d=!1;const _=new Map;if(e.forEach(E=>_.set(this.getPersistentTransportID(E.remotePk,E.type),E)),i)l.forEach(E=>{_.has(this.getPersistentTransportID(E.pk,E.type))&&_.delete(this.getPersistentTransportID(E.pk,E.type))}),d=0===_.size,d||_.forEach(E=>{l.push({pk:E.remotePk,type:E.type})});else{d=!0;for(let E=0;E{s.close(),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.changes-made")},E=>{E=en(E),s.componentInstance.showDone("confirmation.error-header-text",E.translatableErrorMsg)})},a=>{a=en(a),s.componentInstance.showDone("confirmation.error-header-text",a.translatableErrorMsg)})})}details(e){eQ.openDialog(this.dialog,e)}delete(e){const o=Jt.createConfirmationDialog(this.dialog,"transports.delete-"+(e.isPersistent?"persistent-":"")+"confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(e.id).subscribe(()=>{o.close(),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")},s=>{s=en(s),o.componentInstance.showDone("confirmation.error-header-text",s.translatableErrorMsg)}))})}refreshData(){Ct.refreshCurrentDisplayedData()}getPersistentTransportID(e,i){return e.toUpperCase()+i.toUpperCase()}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredTransports){const e=this.showShortList_?Vt.maxShortListElements:Vt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredTransports.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.transportsToShow=this.filteredTransports.slice(i,i+e);const s=new Map;this.transportsToShow.forEach(l=>{s.set(l.id,!0),this.selections.has(l.id)||this.selections.set(l.id,!1)});const a=[];this.selections.forEach((l,d)=>{s.has(d)||a.push(d)}),a.forEach(l=>{this.selections.delete(l)})}else this.transportsToShow=null,this.selections=new Map;this.dataSource=this.transportsToShow}startDeleting(e){return this.transportService.delete(Ct.getCurrentNodeKey(),e)}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i.close(),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")):this.deleteRecursively(e,i)},o=>{Ct.refreshCurrentDisplayedData(),o=en(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(V1),Y(Mr),Y(hn),Y(Dn),Y(To),Y(Ji),Y(ua))},t.\u0275cmp=Ze({type:t,selectors:[["app-transport-list"]],inputs:{showShortList:"showShortList",node:"node"},decls:31,vars:31,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],[3,"inline","click"],["class","small-icon",3,"inline","click",4,"ngIf"],[3,"inline","matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","click"],[3,"inline","matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column","small-column",3,"matTooltip","click"],[1,"persistent-icon","grey-text"],[3,"inline",4,"ngIf"],[1,"sortable-column",3,"click"],[1,"actions"],[3,"ngClass",4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[4,"ngFor","ngForOf"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[3,"ngClass"],[1,"selection-col"],[3,"checked","change"],["mat-button","","class","action-button subtle-transparent-button",3,"matTooltip","click",4,"ngIf"],["shortTextLength","4",3,"short","id","labelEdited"],["mat-button","","class","action-button transparent-button",3,"matTooltip","click",4,"ngIf"],["mat-button","",1,"action-button","subtle-transparent-button",3,"matTooltip","click"],[1,"persistent-icon","default-cursor",3,"inline"],[1,"persistent-icon","grey-text",3,"inline"],["shortTextLength","4",3,"short","id","elementType","labelEdited"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],[1,"list-item-container",3,"ngClass"],[1,"check-part"],["class","list-row",4,"ngIf"],[1,"list-row","long-content"],[3,"id","elementType","labelEdited",4,"ngIf"],[3,"id","labelEdited"],[1,"list-row"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[1,"persistent-icon",3,"inline"],[1,"yellow-clear-text","title"],[3,"id","elementType","labelEdited"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,tQ,6,7,"span",2),V(3,oQ,5,4,"div",3),C(),D(4,"div",4)(5,"div",5)(6,"mat-icon",6),ye("click",function(){return i.create()}),I(7,"add"),C(),V(8,sQ,2,1,"mat-icon",7),V(9,aQ,2,2,"mat-icon",8),D(10,"mat-menu",9,10)(12,"div",11),ye("click",function(){return i.changeAllSelections(!0)}),I(13),R(14,"translate"),C(),D(15,"div",11),ye("click",function(){return i.changeAllSelections(!1)}),I(16),R(17,"translate"),C(),D(18,"div",12),ye("click",function(){return i.changeIfPersistentOfSelected(!0)}),I(19),R(20,"translate"),C(),D(21,"div",12),ye("click",function(){return i.changeIfPersistentOfSelected(!1)}),I(22),R(23,"translate"),C(),D(24,"div",12),ye("click",function(){return i.deleteSelected()}),I(25),R(26,"translate"),C()()(),V(27,lQ,1,6,"app-paginator",13),C()(),V(28,zQ,50,46,"div",14),V(29,$Q,6,3,"div",14),V(30,GQ,1,6,"app-paginator",13)),2&e&&(w("ngClass",He(29,qQ,!i.showShortList_&&i.numberOfPages>1&&i.dataSource)),c(2),w("ngIf",i.showShortList_),c(1),w("ngIf",i.dataFilterer.currentFiltersTexts&&i.dataFilterer.currentFiltersTexts.length>0),c(3),w("inline",!0),c(2),w("ngIf",i.allTransports&&i.allTransports.length>0),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("overlapTrigger",!1),c(3),ce(" ",H(14,19,"selection.select-all")," "),c(3),ce(" ",H(17,21,"selection.unselect-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(20,23,"transports.make-selected-persistent")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(23,25,"transports.make-selected-non-persistent")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(26,27,"selection.delete-all")," "),c(2),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("ngIf",!i.dataSource||0===i.dataSource.length),c(1),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource))},dependencies:[Nn,gi,Ft,Wr,el,Cn,vi,Yd,pa,Hd,fa,Og,Bd,ha,wt,sf],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.small-column[_ngcontent-%COMP%]{width:1px;text-align:center}.persistent-icon[_ngcontent-%COMP%]{font-size:14px!important;color:#d48b05}.offline[_ngcontent-%COMP%]{opacity:.35}"]}),t})();function KQ(t,n){1&t&&(D(0,"div",5)(1,"mat-icon",2),I(2,"settings"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce("",H(4,2,"routes.details.specific-fields-titles.app")," "))}function ZQ(t,n){1&t&&(D(0,"div",5)(1,"mat-icon",2),I(2,"swap_horiz"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce("",H(4,2,"routes.details.specific-fields-titles.forward")," "))}function XQ(t,n){1&t&&(D(0,"div",5)(1,"mat-icon",2),I(2,"arrow_forward"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce("",H(4,2,"routes.details.specific-fields-titles.intermediary-forward")," "))}function JQ(t,n){if(1&t&&(D(0,"div")(1,"div",3)(2,"span"),I(3),R(4,"translate"),C(),I(5),C(),D(6,"div",3)(7,"span"),I(8),R(9,"translate"),C(),I(10),C()()),2&t){const e=z(2);c(3),se(H(4,5,"routes.details.specific-fields.route-id")),c(2),ce(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextRid:e.routeRule.intermediaryForwardFields.nextRid," "),c(3),se(H(9,7,"routes.details.specific-fields.transport-id")),c(2),vo(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid," ",e.getLabel(e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid)," ")}}function QQ(t,n){if(1&t&&(D(0,"div")(1,"div",3)(2,"span"),I(3),R(4,"translate"),C(),I(5),C(),D(6,"div",3)(7,"span"),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",3)(12,"span"),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",3)(17,"span"),I(18),R(19,"translate"),C(),I(20),C()()),2&t){const e=z(2);c(3),se(H(4,10,"routes.details.specific-fields.destination-pk")),c(2),vo(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk)," "),c(3),se(H(9,12,"routes.details.specific-fields.source-pk")),c(2),vo(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk)," "),c(3),se(H(14,14,"routes.details.specific-fields.destination-port")),c(2),ce(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPort:e.routeRule.forwardFields.routeDescriptor.dstPort," "),c(3),se(H(19,16,"routes.details.specific-fields.source-port")),c(2),ce(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPort:e.routeRule.forwardFields.routeDescriptor.srcPort," ")}}function eee(t,n){if(1&t&&(D(0,"div")(1,"div",5)(2,"mat-icon",2),I(3,"list"),C(),I(4),R(5,"translate"),C(),D(6,"div",3)(7,"span"),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",3)(12,"span"),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",3)(17,"span"),I(18),R(19,"translate"),C(),I(20),C(),V(21,KQ,5,4,"div",6),V(22,ZQ,5,4,"div",6),V(23,XQ,5,4,"div",6),V(24,JQ,11,9,"div",4),V(25,QQ,21,18,"div",4),C()),2&t){const e=z();c(2),w("inline",!0),c(2),ce("",H(5,13,"routes.details.summary.title")," "),c(4),se(H(9,15,"routes.details.summary.keep-alive")),c(2),ce(" ",e.routeRule.ruleSummary.keepAlive," "),c(3),se(H(14,17,"routes.details.summary.type")),c(2),ce(" ",e.getRuleTypeName(e.routeRule.ruleSummary.ruleType)," "),c(3),se(H(19,19,"routes.details.summary.key-route-id")),c(2),ce(" ",e.routeRule.ruleSummary.keyRouteId," "),c(1),w("ngIf",e.routeRule.appFields),c(1),w("ngIf",e.routeRule.forwardFields),c(1),w("ngIf",e.routeRule.intermediaryForwardFields),c(1),w("ngIf",e.routeRule.forwardFields||e.routeRule.intermediaryForwardFields),c(1),w("ngIf",e.routeRule.appFields&&e.routeRule.appFields.routeDescriptor||e.routeRule.forwardFields&&e.routeRule.forwardFields.routeDescriptor)}}let tee=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.largeModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=i,this.storageService=o,this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Intermediary forward"]]),this.routeRule=e}getRuleTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):e.toString()}closePopup(){this.dialogRef.close()}getLabel(e){const i=this.storageService.getLabelInfo(e);return i?" ("+i.label+")":""}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-route-details"]],decls:19,vars:17,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[4,"ngIf"],[1,"title"],["class","title",4,"ngIf"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div")(3,"div",1)(4,"mat-icon",2),I(5,"list"),C(),I(6),R(7,"translate"),C(),D(8,"div",3)(9,"span"),I(10),R(11,"translate"),C(),I(12),C(),D(13,"div",3)(14,"span"),I(15),R(16,"translate"),C(),I(17),C(),V(18,eee,26,21,"div",4),C()()),2&e&&(w("headline",H(1,9,"routes.details.title"))("dialog",i.dialogRef),c(4),w("inline",!0),c(2),ce("",H(7,11,"routes.details.basic.title")," "),c(4),se(H(11,13,"routes.details.basic.key")),c(2),ce(" ",i.routeRule.key," "),c(3),se(H(16,15,"routes.details.basic.rule")),c(2),ce(" ",i.routeRule.rule," "),c(1),w("ngIf",i.routeRule.ruleSummary))},dependencies:[Ft,Cn,ei,wt]}),t})(),fP=(()=>{class t{constructor(e){this.apiService=e}get(e,i){return this.apiService.get(`visors/${e}/routes/${i}`)}delete(e,i){return this.apiService.delete(`visors/${e}/routes/${i}`)}setMinHops(e,i){return this.apiService.post(`visors/${e}/min-hops`,{min_hops:i})}}return t.\u0275fac=function(e){return new(e||t)(we(il))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function nee(t,n){1&t&&(D(0,"span",14),I(1),R(2,"translate"),D(3,"mat-icon",15),R(4,"translate"),I(5,"help"),C()()),2&t&&(c(1),ce(" ",H(2,3,"routes.title")," "),c(2),w("inline",!0)("matTooltip",H(4,5,"routes.info")))}function iee(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function ree(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function oee(t,n){if(1&t&&(D(0,"div",19)(1,"span"),I(2),R(3,"translate"),C(),V(4,iee,3,3,"ng-container",20),V(5,ree,2,1,"ng-container",20),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function see(t,n){if(1&t){const e=et();D(0,"div",16),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,oee,6,5,"div",17),D(2,"div",18),I(3),R(4,"translate"),C()()}if(2&t){const e=z();c(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),se(H(4,2,"filters.press-to-remove"))}}function aee(t,n){if(1&t){const e=et();D(0,"mat-icon",21),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&t&&w("inline",!0)("matTooltip",H(1,2,"filters.filter-action"))}function lee(t,n){1&t&&(D(0,"mat-icon",22),I(1,"more_horiz"),C()),2&t&&(z(),w("matMenuTriggerFor",ci(9)))}const z1=function(t){return["/nodes",t,"routes"]};function cee(t,n){if(1&t&&xe(0,"app-paginator",23),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",He(4,z1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function dee(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function uee(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function hee(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function fee(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function pee(t,n){if(1&t){const e=et();Ue(0),D(1,"td")(2,"app-labeled-element-text",41),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),D(3,"td")(4,"app-labeled-element-text",41),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),We()}if(2&t){const e=z().$implicit,i=z(2);c(2),Ln("id",e.src),w("short",!0)("elementType",i.labeledElementTypes.Node),c(2),Ln("id",e.dst),w("short",!0)("elementType",i.labeledElementTypes.Node)}}function mee(t,n){if(1&t){const e=et();Ue(0),D(1,"td"),I(2,"---"),C(),D(3,"td")(4,"app-labeled-element-text",42),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),We()}if(2&t){const e=z().$implicit,i=z(2);c(4),Ln("id",e.dst),w("short",!0)("elementType",i.labeledElementTypes.Transport)}}function gee(t,n){1&t&&(Ue(0),D(1,"td"),I(2,"---"),C(),D(3,"td"),I(4,"---"),C(),We())}function _ee(t,n){if(1&t){const e=et();D(0,"tr")(1,"td",38)(2,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),I(4),C(),D(5,"td"),I(6),C(),V(7,pee,5,6,"ng-container",20),V(8,mee,5,3,"ng-container",20),V(9,gee,5,0,"ng-container",20),D(10,"td",29)(11,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).details(s))}),R(12,"translate"),D(13,"mat-icon",36),I(14,"visibility"),C()(),D(15,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).delete(s.key))}),R(16,"translate"),D(17,"mat-icon",36),I(18,"close"),C()()()()}if(2&t){const e=n.$implicit,i=z(2);c(2),w("checked",i.selections.get(e.key)),c(2),ce(" ",e.key," "),c(2),ce(" ",i.getTypeName(e.type)," "),c(1),w("ngIf",e.appFields||e.forwardFields),c(1),w("ngIf",!e.appFields&&!e.forwardFields&&e.intermediaryForwardFields),c(1),w("ngIf",!e.appFields&&!e.forwardFields&&!e.intermediaryForwardFields),c(2),w("matTooltip",H(12,10,"routes.details.title")),c(2),w("inline",!0),c(2),w("matTooltip",H(16,12,"routes.delete")),c(2),w("inline",!0)}}function bee(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.label")))}function vee(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.inverted-order")))}function yee(t,n){if(1&t){const e=et();Ue(0),D(1,"div",44)(2,"span",1),I(3),R(4,"translate"),C(),I(5,": "),D(6,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),D(7,"div",44)(8,"span",1),I(9),R(10,"translate"),C(),I(11,": "),D(12,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),We()}if(2&t){const e=z().$implicit,i=z(2);c(3),se(H(4,6,"routes.source")),c(3),Ln("id",e.src),w("elementType",i.labeledElementTypes.Node),c(3),se(H(10,8,"routes.destination")),c(3),Ln("id",e.dst),w("elementType",i.labeledElementTypes.Node)}}function Mee(t,n){if(1&t){const e=et();Ue(0),D(1,"div",44)(2,"span",1),I(3),R(4,"translate"),C(),I(5,": --- "),C(),D(6,"div",44)(7,"span",1),I(8),R(9,"translate"),C(),I(10,": "),D(11,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),We()}if(2&t){const e=z().$implicit,i=z(2);c(3),se(H(4,4,"routes.source")),c(5),se(H(9,6,"routes.destination")),c(3),Ln("id",e.dst),w("elementType",i.labeledElementTypes.Transport)}}function wee(t,n){1&t&&(Ue(0),D(1,"div",44)(2,"span",1),I(3),R(4,"translate"),C(),I(5,": --- "),C(),D(6,"div",44)(7,"span",1),I(8),R(9,"translate"),C(),I(10,": --- "),C(),We()),2&t&&(c(3),se(H(4,2,"routes.source")),c(5),se(H(9,4,"routes.destination")))}function Cee(t,n){if(1&t){const e=et();D(0,"tr")(1,"td")(2,"div",33)(3,"div",43)(4,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",34)(6,"div",44)(7,"span",1),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",44)(12,"span",1),I(13),R(14,"translate"),C(),I(15),C(),V(16,yee,13,10,"ng-container",20),V(17,Mee,12,8,"ng-container",20),V(18,wee,11,6,"ng-container",20),C(),xe(19,"div",45),D(20,"div",35)(21,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(22,"translate"),D(23,"mat-icon"),I(24),C()()()()()()}if(2&t){const e=n.$implicit,i=z(2);c(4),w("checked",i.selections.get(e.key)),c(4),se(H(9,10,"routes.key")),c(2),ce(": ",e.key," "),c(3),se(H(14,12,"routes.type")),c(2),ce(": ",i.getTypeName(e.type)," "),c(1),w("ngIf",e.appFields||e.forwardFields),c(1),w("ngIf",!e.appFields&&!e.forwardFields&&e.intermediaryForwardFields),c(1),w("ngIf",!e.appFields&&!e.forwardFields&&!e.intermediaryForwardFields),c(3),w("matTooltip",H(22,14,"common.options")),c(3),se("add")}}function xee(t,n){if(1&t&&xe(0,"app-view-all-link",48),2&t){const e=z(2);w("numberOfElements",e.filteredRoutes.length)("linkParts",He(3,z1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const kee=function(t,n){return{"small-node-list-margins":t,"full-node-list-margins":n}},See=function(t){return{"d-lg-none d-xl-table":t}},Dee=function(t){return{"d-lg-table d-xl-none":t}};function Tee(t,n){if(1&t){const e=et();D(0,"div",24)(1,"div",25)(2,"table",26)(3,"tr"),xe(4,"th"),D(5,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.keySortData))}),I(6),R(7,"translate"),V(8,dee,2,2,"mat-icon",28),C(),D(9,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),I(10),R(11,"translate"),V(12,uee,2,2,"mat-icon",28),C(),D(13,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.sourceSortData))}),I(14),R(15,"translate"),V(16,hee,2,2,"mat-icon",28),C(),D(17,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.destinationSortData))}),I(18),R(19,"translate"),V(20,fee,2,2,"mat-icon",28),C(),xe(21,"th",29),C(),V(22,_ee,19,14,"tr",30),C(),D(23,"table",31)(24,"tr",32),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(25,"td")(26,"div",33)(27,"div",34)(28,"div",1),I(29),R(30,"translate"),C(),D(31,"div"),I(32),R(33,"translate"),V(34,bee,3,3,"ng-container",20),V(35,vee,3,3,"ng-container",20),C()(),D(36,"div",35)(37,"mat-icon",36),I(38,"keyboard_arrow_down"),C()()()()(),V(39,Cee,25,16,"tr",30),C(),V(40,xee,1,5,"app-view-all-link",37),C()()}if(2&t){const e=z();c(1),w("ngClass",mn(31,kee,e.showShortList_,!e.showShortList_)),c(1),w("ngClass",He(34,See,e.showShortList_)),c(4),ce(" ",H(7,19,"routes.key")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.keySortData),c(2),ce(" ",H(11,21,"routes.type")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),ce(" ",H(15,23,"routes.source")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.sourceSortData),c(2),ce(" ",H(19,25,"routes.destination")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.destinationSortData),c(2),w("ngForOf",e.dataSource),c(1),w("ngClass",He(36,Dee,e.showShortList_)),c(6),se(H(30,27,"tables.sorting-title")),c(3),ce("",H(33,29,e.dataSorter.currentSortingColumn.label)," "),c(2),w("ngIf",e.dataSorter.currentlySortingByLabel),c(1),w("ngIf",e.dataSorter.sortingInReverseOrder),c(2),w("inline",!0),c(2),w("ngForOf",e.dataSource),c(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function Lee(t,n){1&t&&(D(0,"span",52),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"routes.empty")))}function Eee(t,n){1&t&&(D(0,"span",52),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"routes.empty-with-filter")))}function Iee(t,n){if(1&t&&(D(0,"div",24)(1,"div",49)(2,"mat-icon",50),I(3,"warning"),C(),V(4,Lee,3,3,"span",51),V(5,Eee,3,3,"span",51),C()()),2&t){const e=z();c(2),w("inline",!0),c(2),w("ngIf",0===e.allRoutes.length),c(1),w("ngIf",0!==e.allRoutes.length)}}function Pee(t,n){if(1&t&&xe(0,"app-paginator",23),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",He(4,z1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const Oee=function(t){return{"paginator-icons-fixer":t}};let pP=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredRoutes)}set routes(e){this.allRoutes=e,this.allRoutes.forEach(i=>{if(i.type=i.ruleSummary.ruleType||0===i.ruleSummary.ruleType?i.ruleSummary.ruleType:"",i.appFields||i.forwardFields){const o=i.appFields?i.appFields.routeDescriptor:i.forwardFields.routeDescriptor;i.src=o.srcPk,i.src_label=ha.getCompleteLabel(this.storageService,this.translateService,i.src),i.dst=o.dstPk,i.dst_label=ha.getCompleteLabel(this.storageService,this.translateService,i.dst)}else i.intermediaryForwardFields?(i.src="",i.src_label="",i.dst=i.intermediaryForwardFields.nextTid,i.dst_label=ha.getCompleteLabel(this.storageService,this.translateService,i.dst)):(i.src="",i.src_label="",i.dst="",i.dst_label="")}),this.dataFilterer.setData(this.allRoutes)}constructor(e,i,o,s,a,l,d){this.routeService=e,this.dialog=i,this.route=o,this.router=s,this.snackbarService=a,this.translateService=l,this.storageService=d,this.listId="rl",this.keySortData=new Vn(["key"],"routes.key",Zt.Number),this.typeSortData=new Vn(["type"],"routes.type",Zt.Number),this.sourceSortData=new Vn(["src"],"routes.source",Zt.Text,["src_label"]),this.destinationSortData=new Vn(["dst"],"routes.destination",Zt.Text,["dst_label"]),this.labeledElementTypes=Xi,this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"routes.filter-dialog.key",keyNameInElementsArray:"key",type:$n.TextInput,maxlength:8},{filterName:"routes.filter-dialog.source",keyNameInElementsArray:"src",secondaryKeyNameInElementsArray:"src_label",type:$n.TextInput,maxlength:66},{filterName:"routes.filter-dialog.destination",keyNameInElementsArray:"dst",secondaryKeyNameInElementsArray:"dst_label",type:$n.TextInput,maxlength:66}],this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Int. forward"]]),this.operationSubscriptionsGroup=[],this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,[this.keySortData,this.typeSortData,this.sourceSortData,this.destinationSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()});const E={filterName:"routes.filter-dialog.type",keyNameInElementsArray:"type",type:$n.Select,printableLabelsForValues:[{value:"",label:"routes.filter-dialog.any-type-option"}]};this.ruleTypes.forEach((F,G)=>{E.printableLabelsForValues.push({value:G+"",label:F})}),this.filterProperties=[E].concat(this.filterProperties),this.dataFilterer=new Nd(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(F=>{this.filteredRoutes=F,this.dataSorter.setData(this.filteredRoutes)}),this.navigationsSubscription=this.route.paramMap.subscribe(F=>{if(F.has("page")){let G=Number.parseInt(F.get("page"),10);(isNaN(G)||G<1)&&(G=1),this.currentPageInUrl=G,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}refreshData(){Ct.refreshCurrentDisplayedData()}getTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):"Unknown"}changeSelection(e){this.selections.get(e.key)?this.selections.set(e.key,!1):this.selections.set(e.key,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Jt.createConfirmationDialog(this.dialog,"routes.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=[];this.selections.forEach((o,s)=>{o&&i.push(s)}),this.deleteRecursively(i,e)})}showOptionsDialog(e){qr.openDialog(this.dialog,[{icon:"visibility",label:"routes.details.title"},{icon:"close",label:"routes.delete"}],"common.options").afterClosed().subscribe(o=>{1===o?this.details(e):2===o&&this.delete(e.key)})}details(e){tee.openDialog(this.dialog,e)}delete(e){const i=Jt.createConfirmationDialog(this.dialog,"routes.delete-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(e).subscribe(()=>{i.close(),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")},o=>{o=en(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredRoutes){const e=this.showShortList_?Vt.maxShortListElements:Vt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredRoutes.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.routesToShow=this.filteredRoutes.slice(i,i+e);const s=new Map;this.routesToShow.forEach(l=>{s.set(l.key,!0),this.selections.has(l.key)||this.selections.set(l.key,!1)});const a=[];this.selections.forEach((l,d)=>{s.has(d)||a.push(d)}),a.forEach(l=>{this.selections.delete(l)})}else this.routesToShow=null,this.selections=new Map;this.dataSource=this.routesToShow}startDeleting(e){return this.routeService.delete(Ct.getCurrentNodeKey(),e.toString())}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i.close(),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")):this.deleteRecursively(e,i)},o=>{Ct.refreshCurrentDisplayedData(),o=en(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))}}return t.\u0275fac=function(e){return new(e||t)(Y(fP),Y(In),Y(Mr),Y(hn),Y(Dn),Y(To),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-route-list"]],inputs:{nodePK:"nodePK",showShortList:"showShortList",routes:"routes"},decls:23,vars:22,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline",4,"ngIf"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],["shortTextLength","7",3,"short","id","elementType","labelEdited"],["shortTextLength","5",3,"short","id","elementType","labelEdited"],[1,"check-part"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[3,"id","elementType","labelEdited"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,nee,6,7,"span",2),V(3,see,5,4,"div",3),C(),D(4,"div",4)(5,"div",5),V(6,aee,3,4,"mat-icon",6),V(7,lee,2,1,"mat-icon",7),D(8,"mat-menu",8,9)(10,"div",10),ye("click",function(){return i.changeAllSelections(!0)}),I(11),R(12,"translate"),C(),D(13,"div",10),ye("click",function(){return i.changeAllSelections(!1)}),I(14),R(15,"translate"),C(),D(16,"div",11),ye("click",function(){return i.deleteSelected()}),I(17),R(18,"translate"),C()()(),V(19,cee,1,6,"app-paginator",12),C()(),V(20,Tee,41,38,"div",13),V(21,Iee,6,3,"div",13),V(22,Pee,1,6,"app-paginator",12)),2&e&&(w("ngClass",He(20,Oee,!i.showShortList_&&i.numberOfPages>1&&i.dataSource)),c(2),w("ngIf",i.showShortList_),c(1),w("ngIf",i.dataFilterer.currentFiltersTexts&&i.dataFilterer.currentFiltersTexts.length>0),c(3),w("ngIf",i.allRoutes&&i.allRoutes.length>0),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("overlapTrigger",!1),c(3),ce(" ",H(12,14,"selection.select-all")," "),c(3),ce(" ",H(15,16,"selection.unselect-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(18,18,"selection.delete-all")," "),c(2),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("ngIf",!i.dataSource||0===i.dataSource.length),c(1),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource))},dependencies:[Nn,gi,Ft,Wr,el,Cn,vi,Yd,pa,Hd,fa,Og,Bd,ha,wt],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]}),t})(),Aee=(()=>{class t extends er{ngOnInit(){return this.dataSubscription=Ct.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.node=e,this.routes=e.routes}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-routing"]],features:[nt],decls:2,vars:5,consts:[[3,"node","showShortList"],[3,"routes","showShortList","nodePK"]],template:function(e,i){1&e&&xe(0,"app-transport-list",0)(1,"app-route-list",1),2&e&&(w("node",i.node)("showShortList",!0),c(1),w("routes",i.routes)("showShortList",!0)("nodePK",i.nodePK))},dependencies:[hP,pP]}),t})();function Fee(t,n){if(1&t&&(D(0,"mat-option",6),I(1),R(2,"translate"),C()),2&t){const e=n.$implicit;w("value",e.days),c(1),se(H(2,2,e.text))}}let Ree=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o}ngOnInit(){this.filters=[{text:"apps.log.filter.7-days",days:7},{text:"apps.log.filter.1-month",days:30},{text:"apps.log.filter.3-months",days:90},{text:"apps.log.filter.6-months",days:180},{text:"apps.log.filter.1-year",days:365},{text:"apps.log.filter.all",days:-1}],this.form=this.formBuilder.group({filter:[this.data.days]}),this.formSubscription=this.form.get("filter").valueChanges.subscribe(e=>{this.dialogRef.close(this.filters.find(i=>i.days===e))})}ngOnDestroy(){this.formSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-log-filter"]],decls:10,vars:9,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","filter"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),D(8,"mat-select",4),V(9,Fee,3,4,"mat-option",5),C()()()()()),2&e&&(w("headline",H(1,5,"apps.log.filter.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,7,"apps.log.filter.filter")),c(3),w("ngForOf",i.filters))},dependencies:[gi,zi,Vi,ji,ii,Ei,ar,tf,Pd,ei,wt],styles:["mat-form-field[_ngcontent-%COMP%]{margin-bottom:-24px}"]}),t})();const Nee=["content"],Yee=function(t){return{totalLogs:t}};function Hee(t,n){if(1&t&&(D(0,"app-button",10)(1,"div",11),I(2),R(3,"translate"),C()()),2&t){const e=z();c(2),ce(" ",kt(3,1,"apps.log.view-all",He(4,Yee,e.totalLogs))," ")}}function Bee(t,n){if(1&t&&(D(0,"div",12)(1,"span",3),I(2),C(),I(3),C()),2&t){const e=n.$implicit;c(2),ce(" ",e.time," "),c(1),ce(" ",e.msg," ")}}function Vee(t,n){1&t&&(D(0,"div",13),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"apps.log.empty")," "))}function jee(t,n){1&t&&xe(0,"app-loading-indicator",14),2&t&&w("showWhite",!1)}let zee=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.largeModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l){this.data=e,this.dialogRef=i,this.appsService=o,this.dialog=s,this.snackbarService=a,this.apiService=l,this.logMessages=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.loading=!1,this.currentFilter={text:"apps.log.filter.7-days",days:7},this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription()}filter(){Ree.openDialog(this.dialog,this.currentFilter).afterClosed().subscribe(e=>{e&&(this.currentFilter=e,this.logMessages=[],this.loadData(0))})}getLogsUrl(){return"/"+this.apiService.apiPrefix+this.appsService.getLogMessagesUrl(Ct.getCurrentNodeKey(),this.data.name)}loadData(e){this.removeSubscription(),this.loading=!0,this.subscription=$e(1).pipe(Ti(e),Ye(()=>this.appsService.getLogMessages(Ct.getCurrentNodeKey(),this.data.name,this.currentFilter.days))).subscribe(i=>this.onLogsReceived(i),i=>this.onLogsError(i))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}onLogsReceived(e=[]){this.loading=!1,this.shouldShowError=!0,this.snackbarService.closeCurrentIfTemporaryError();let i=0;this.hasMoreLogMessages=!1,this.totalLogs=e.length,e.forEach(o=>{if(i<5e3){const s=o.startsWith("[")?0:-1,a=-1!==s?o.indexOf("]"):-1;this.logMessages.push(-1!==s&&-1!==a?{time:o.substr(s,a+1),msg:o.substr(a+1)}:{time:"",msg:o})}else this.hasMoreLogMessages=!0;i+=1}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}onLogsError(e){e=en(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(Vt.connectionRetryDelay)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(ll),Y(In),Y(Dn),Y(il))},t.\u0275cmp=Ze({type:t,selectors:[["app-log"]],viewQuery:function(e,i){if(1&e&&_t(Nee,5),2&e){let o;rt(o=ot())&&(i.content=o.first)}},decls:18,vars:17,consts:[[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"filter-link-container"],[1,"filter-link","subtle-transparent-button",3,"click"],[1,"transparent"],["content",""],["target","_blank",3,"href"],["class","full-logs-button","color","primary",4,"ngIf"],["class","app-log-message",4,"ngFor","ngForOf"],["class","app-log-empty mt-3",4,"ngIf"],[3,"showWhite",4,"ngIf"],["color","primary",1,"full-logs-button"],[1,"text-container"],[1,"app-log-message"],[1,"app-log-empty","mt-3"],[3,"showWhite"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1)(3,"div",2),ye("click",function(){return i.filter()}),D(4,"span",3),I(5),R(6,"translate"),C(),I(7,"\xa0 "),D(8,"span"),I(9),R(10,"translate"),C()()(),D(11,"mat-dialog-content",null,4)(13,"a",5),V(14,Hee,4,6,"app-button",6),C(),V(15,Bee,4,2,"div",7),V(16,Vee,3,3,"div",8),V(17,jee,1,1,"app-loading-indicator",9),C()()),2&e&&(w("headline",H(1,11,"apps.log.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",i.dialogRef),c(5),se(H(6,13,"apps.log.filter-button")),c(4),se(H(10,15,i.currentFilter.text)),c(4),w("href",i.getLogsUrl(),Vo),c(1),w("ngIf",i.hasMoreLogMessages),c(1),w("ngForOf",i.logMessages),c(1),w("ngIf",!(i.loading||i.logMessages&&0!==i.logMessages.length)),c(1),w("ngIf",i.loading))},dependencies:[gi,Ft,r1,Ui,ei,as,wt],styles:[".mat-mdc-dialog-content[_ngcontent-%COMP%]{font-size:.875rem}.app-log-message[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.app-log-message[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.app-log-message[_ngcontent-%COMP%]:first-of-type{margin-top:0}.app-log-message[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.filter-link-container[_ngcontent-%COMP%]{text-align:center;margin:15px 0}.filter-link-container[_ngcontent-%COMP%] .filter-link[_ngcontent-%COMP%]{display:inline-block;background:#F8F9F9;padding:5px 10px;border-radius:1000px;font-size:.875rem;text-align:center;color:#215f9e;cursor:pointer}.filter-link-container[_ngcontent-%COMP%] .filter-link[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#215f9e80}.full-logs-button[_ngcontent-%COMP%] button{width:100%!important;display:block;text-align:center;margin-bottom:15px}.full-logs-button[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%}"]}),t})();const Uee=["button"],Wee=["firstInput"],Fg=function(t){return{"element-disabled":t}};function $ee(t,n){if(1&t&&(D(0,"mat-form-field",2)(1,"div",3)(2,"label",4),I(3),R(4,"translate"),C(),xe(5,"input",12),C()()),2&t){const e=z();w("ngClass",He(4,Fg,e.disableDismiss)),c(3),se(H(4,2,"apps.vpn-socks-server-settings.netifc"))}}function Gee(t,n){if(1&t){const e=et();D(0,"div",13)(1,"mat-checkbox",14),ye("change",function(o){return Pe(e),Oe(z().setSecureMode(o))}),I(2),R(3,"translate"),D(4,"mat-icon",15),R(5,"translate"),I(6,"help"),C()()()}if(2&t){const e=z();c(1),w("checked",e.secureMode)("ngClass",He(9,Fg,e.disableDismiss)),c(1),ce(" ",H(3,5,"apps.vpn-socks-server-settings.secure-mode-check")," "),c(2),w("inline",!0)("matTooltip",H(5,7,"apps.vpn-socks-server-settings.secure-mode-info"))}}let qee=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=s,this.snackbarService=a,this.dialog=l,this.configuringVpn=!1,this.secureMode=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}ngOnInit(){if(this.form=this.formBuilder.group({password:[""],passwordConfirmation:["",this.validatePasswords.bind(this)],netifc:[""]}),this.formSubscription=this.form.get("password").valueChanges.subscribe(()=>{this.form.get("passwordConfirmation").updateValueAndValidity()}),this.data.args&&this.data.args.length>0)for(let e=0;ethis.firstInput.nativeElement.focus())}ngOnDestroy(){this.formSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setSecureMode(e){this.button.disabled||(this.secureMode=!!e.checked)}saveChanges(){if(!this.form.valid||this.button.disabled)return;const e=this.form.get("password").value?"apps.vpn-socks-server-settings.change-passowrd-confirmation":"apps.vpn-socks-server-settings.remove-passowrd-confirmation",i=Jt.createConfirmationDialog(this.dialog,e);i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.continueSavingChanges()})}continueSavingChanges(){this.button.showLoading();const e={passcode:this.form.get("password").value};this.configuringVpn&&(e.secure=this.secureMode,e.netifc=this.form.get("netifc").value),this.operationSubscription=this.appsService.changeAppSettings(Ct.getCurrentNodeKey(),this.data.name,e).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-server-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=en(e),this.snackbarService.showError(e)}validatePasswords(){return this.form&&this.form.get("password").value!==this.form.get("passwordConfirmation").value?{invalid:!0}:null}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(ll),Y(xr),Y(Bn),Y(Dn),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-skysocks-settings"]],viewQuery:function(e,i){if(1&e&&(_t(Uee,5),_t(Wee,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:27,vars:27,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],["firstInput",""],["id","passwordConfirmation","type","password","formControlName","passwordConfirmation","maxlength","100","matInput",""],[3,"ngClass",4,"ngIf"],["class","main-theme settings-option",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["id","netifc","type","text","formControlName","netifc","matInput",""],[1,"main-theme","settings-option"],["color","primary",3,"checked","ngClass","change"],[1,"help-icon",3,"inline","matTooltip"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field",2)(4,"div",3)(5,"label",4),I(6),R(7,"translate"),C(),xe(8,"input",5,6),C()(),D(10,"mat-form-field",2)(11,"div",3)(12,"label",4),I(13),R(14,"translate"),C(),xe(15,"input",7,6),C(),D(17,"mat-error")(18,"span"),I(19),R(20,"translate"),C()()(),V(21,$ee,6,6,"mat-form-field",8),V(22,Gee,7,11,"div",9),C(),D(23,"app-button",10,11),ye("action",function(){return i.saveChanges()}),I(25),R(26,"translate"),C()()),2&e&&(w("headline",H(1,13,"apps.vpn-socks-server-settings."+(i.configuringVpn?"vpn-title":"socks-title")))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(2),w("formGroup",i.form),c(1),w("ngClass",He(23,Fg,i.disableDismiss)),c(3),se(H(7,15,"apps.vpn-socks-server-settings.new-password")),c(4),w("ngClass",He(25,Fg,i.disableDismiss)),c(3),se(H(14,17,"apps.vpn-socks-server-settings.repeat-password")),c(6),se(H(20,19,"apps.vpn-socks-server-settings.passwords-not-match")),c(2),w("ngIf",i.configuringVpn),c(1),w("ngIf",i.configuringVpn),c(1),w("disabled",!i.form.valid),c(2),ce(" ",H(26,21,"apps.vpn-socks-server-settings.save")," "))},dependencies:[Nn,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Cn,vi,fa,Ui,ei,wt],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]}),t})();const Kee=["firstInput"];let Zee=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i||"",o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({note:[this.data]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("note").value.trim();this.dialogRef.close("-"+e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-edit-skysocks-client-note"]],viewQuery:function(e,i){if(1&e&&_t(Kee,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","note","maxlength","100","matInput",""],["firstInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return i.finish()}),I(11),R(12,"translate"),C()()),2&e&&(w("headline",H(1,5,"apps.vpn-socks-client-settings.change-note-dialog.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,7,"apps.vpn-socks-client-settings.change-note-dialog.note")),c(5),se(H(12,9,"common.save")))},dependencies:[zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,Ui,ei,wt]}),t})();const ma={AF:"Afghanistan",AX:"Aland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (North)",KR:"Korea (South)",XK:"Kosovo",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Laos",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libyan Arab Jamahiriya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",AN:"Netherlands Antilles",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestinian Territory, Occupied",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",ME:"Montenegro",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown"};function Xee(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit,i=z(2);c(1),se(i.completeCountriesList[e.toUpperCase()])}}function Jee(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.toUpperCase())}}function Qee(t,n){if(1&t&&(D(0,"mat-option",10)(1,"div",12),xe(2,"div"),C(),V(3,Xee,2,1,"ng-container",2),V(4,Jee,2,1,"ng-container",2),C()),2&t){const e=n.$implicit,i=z(2);w("value",e.toUpperCase()),c(2),di("background-image: url('assets/img/flags/"+e.toLocaleLowerCase()+".png');"),c(1),w("ngIf",i.completeCountriesList[e.toUpperCase()]),c(1),w("ngIf",!i.completeCountriesList[e.toUpperCase()])}}function ete(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"apps.vpn-socks-client-settings.filter-dialog.any-country")," "))}function tte(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z(3);c(1),se(e.completeCountriesList[e.form.get("country").value])}}function nte(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z(3);c(1),se(e.form.get("country").value)}}function ite(t,n){if(1&t&&(Ue(0),D(1,"div",12),xe(2,"div"),C(),V(3,tte,2,1,"ng-container",2),V(4,nte,2,1,"ng-container",2),We()),2&t){const e=z(2);c(2),di("background-image: url('assets/img/flags/"+e.form.get("country").value.toLocaleLowerCase()+".png');"),c(1),w("ngIf",e.completeCountriesList[e.form.get("country").value]),c(1),w("ngIf",!e.completeCountriesList[e.form.get("country").value])}}function rte(t,n){if(1&t&&(D(0,"mat-form-field")(1,"div",3)(2,"label",4),I(3),R(4,"translate"),C(),D(5,"mat-select",9)(6,"mat-option",10),I(7),R(8,"translate"),C(),V(9,Qee,5,5,"mat-option",11),D(10,"mat-select-trigger"),V(11,ete,3,3,"ng-container",2),V(12,ite,5,4,"ng-container",2),C()()()()),2&t){const e=z();c(3),se(H(4,6,"apps.vpn-socks-client-settings.filter-dialog.country")),c(3),w("value","-"),c(1),se(H(8,8,"apps.vpn-socks-client-settings.filter-dialog.any-country")),c(2),w("ngForOf",e.data.availableCountries),c(2),w("ngIf","-"===e.form.get("country").value),c(1),w("ngIf","-"!==e.form.get("country").value)}}class mP{constructor(){this.country="",this.location="",this.key=""}}let ote=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.completeCountriesList=ma}ngOnInit(){this.form=this.formBuilder.group({country:[this.data.currentFilters.country?this.data.currentFilters.country:"-"],"location-text":[this.data.currentFilters.location],"key-text":[this.data.currentFilters.key]})}apply(){const e=new mP;let i=this.form.get("country").value.trim();"-"===i&&(i=""),e.country=i,e.location=this.form.get("location-text").value.trim(),e.key=this.form.get("key-text").value.trim(),this.dialogRef.close(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-skysocks-client-filter"]],decls:20,vars:15,consts:[[3,"headline","dialog"],[3,"formGroup"],[4,"ngIf"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","location-text","maxlength","100","matInput",""],["formControlName","key-text","maxlength","66","matInput",""],["type","mat-raised-button","color","primary",1,"float-right",3,"action"],["button",""],["formControlName","country","id","country"],[3,"value"],[3,"value",4,"ngFor","ngForOf"],[1,"flag-container"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1),V(3,rte,13,10,"mat-form-field",2),D(4,"mat-form-field")(5,"div",3)(6,"label",4),I(7),R(8,"translate"),C(),xe(9,"input",5),C()(),D(10,"mat-form-field")(11,"div",3)(12,"label",4),I(13),R(14,"translate"),C(),xe(15,"input",6),C()()(),D(16,"app-button",7,8),ye("action",function(){return i.apply()}),I(18),R(19,"translate"),C()()),2&e&&(w("headline",H(1,7,"apps.vpn-socks-client-settings.filter-dialog.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(1),w("ngIf",i.data.availableCountries.length>0),c(4),se(H(8,9,"apps.vpn-socks-client-settings.filter-dialog.location")),c(6),se(H(14,11,"apps.vpn-socks-client-settings.filter-dialog.pub-key")),c(5),ce(" ",H(19,13,"apps.vpn-socks-client-settings.filter-dialog.apply")," "))},dependencies:[gi,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,tf,Bq,Pd,Ui,ei,wt]}),t})();const ste=["firstInput"];let ate=(()=>{class t{static openDialog(e){const i=new En;return i.autoFocus=!1,i.width=Vt.smallModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.formBuilder=i}ngOnInit(){this.form=this.formBuilder.group({password:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("password").value;this.dialogRef.close("-"+e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-skysocks-client-password"]],viewQuery:function(e,i){if(1&e&&_t(ste,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:16,vars:14,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"info"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","id","password","formControlName","password","maxlength","100","matInput",""],["firstInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"div",2),I(4),R(5,"translate"),C(),D(6,"mat-form-field")(7,"div",3)(8,"label",4),I(9),R(10,"translate"),C(),xe(11,"input",5,6),C()()(),D(13,"app-button",7),ye("action",function(){return i.finish()}),I(14),R(15,"translate"),C()()),2&e&&(w("headline",H(1,6,"apps.vpn-socks-client-settings.password-dialog.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(2),se(H(5,8,"apps.vpn-socks-client-settings.password-dialog.info")),c(5),se(H(10,10,"apps.vpn-socks-client-settings.password-dialog.password")),c(5),ce(" ",H(15,12,"apps.vpn-socks-client-settings.password-dialog.continue-button")," "))},dependencies:[zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,Ui,ei,wt],styles:[".info[_ngcontent-%COMP%]{font-size:.7rem;margin-bottom:15px}"]}),t})(),lte=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type="}getServices(e){const i=[];return this.http.get(this.discoveryServiceUrl+(e?"proxy":"vpn")).pipe(rf(o=>o.pipe(Ti(4e3))),ke(o=>(o||(o=[]),o.forEach(s=>{const a=new KG,l=s.address.split(":");2===l.length&&(a.address=s.address,a.pk=l[0],a.port=l[1],a.location="",s.geo&&(s.geo.country&&(a.country=s.geo.country,a.location+=ma[s.geo.country.toUpperCase()]?ma[s.geo.country.toUpperCase()]:s.geo.country),s.geo.region&&s.geo.country&&(a.location+=", "),s.geo.region&&(a.region=s.geo.region,a.location+=a.region)),i.push(a))}),i)))}}return t.\u0275fac=function(e){return new(e||t)(we(Vl))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function cte(t,n){}const dte=function(t){return{animationDuration:t}},ute=function(t,n){return{value:t,params:n}};function hte(t,n){1&t&&Sn(0)}const gP=["*"],fte=["tabListContainer"],pte=["tabList"],mte=["tabListInner"],gte=["nextPaginator"],_te=["previousPaginator"],bte=["tabBodyWrapper"],vte=["tabHeader"];function yte(t,n){}function Mte(t,n){1&t&&V(0,yte,0,0,"ng-template",14),2&t&&w("cdkPortalOutlet",z().$implicit.templateLabel)}function wte(t,n){1&t&&I(0),2&t&&se(z().$implicit.textLabel)}function Cte(t,n){if(1&t){const e=et();D(0,"div",6,7),ye("click",function(){const o=Pe(e),s=o.$implicit,a=o.index,l=z(),d=ci(1);return Oe(l._handleClick(s,d,a))})("cdkFocusChange",function(o){const a=Pe(e).index;return Oe(z()._tabFocusChanged(o,a))}),xe(2,"span",8)(3,"div",9),D(4,"span",10)(5,"span",11),V(6,Mte,1,1,"ng-template",12),V(7,wte,1,1,"ng-template",null,13,Es),C()()()}if(2&t){const e=n.$implicit,i=n.index,o=ci(1),s=ci(8),a=z();nn("mdc-tab--active",a.selectedIndex===i),w("id",a._getTabLabelId(i))("ngClass",e.labelClass)("disabled",e.disabled)("fitInkBarToContent",a.fitInkBarToContent),Xt("tabIndex",a._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",a._tabs.length)("aria-controls",a._getTabContentId(i))("aria-selected",a.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),c(3),w("matRippleTrigger",o)("matRippleDisabled",e.disabled||a.disableRipple),c(3),w("ngIf",e.templateLabel)("ngIfElse",s)}}function xte(t,n){if(1&t){const e=et();D(0,"mat-tab-body",15),ye("_onCentered",function(){return Pe(e),Oe(z()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return Pe(e),Oe(z()._setTabBodyWrapperHeight(o))}),C()}if(2&t){const e=n.$implicit,i=n.index,o=z();nn("mat-mdc-tab-body-active",o.selectedIndex===i),w("id",o._getTabContentId(i))("ngClass",e.bodyClass)("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Xt("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(i))}}const kte={translateTab:ia("translateTab",[yo("center, void, left-origin-center, right-origin-center",Qn({transform:"none"})),yo("left",Qn({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),yo("right",Qn({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Pr("* => left, * => right, left => center, right => center",Ur("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Pr("void => left-origin-center",[Qn({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Ur("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Pr("void => right-origin-center",[Qn({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Ur("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let Ste=(()=>{class t extends Ja{constructor(e,i,o,s){super(e,i,s),this._host=o,this._centeringSub=T.EMPTY,this._leavingSub=T.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(Go(this._host._isCenterPosition(this._host._position))).subscribe(e=>{e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(Tl),Y(rr),Y(pn(()=>_P)),Y(It))},t.\u0275dir=Ke({type:t,selectors:[["","matTabBodyHost",""]],features:[nt]}),t})(),Dte=(()=>{class t{set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(e,i,o){this._elementRef=e,this._dir=i,this._dirChangeSubscription=T.EMPTY,this._translateTabComplete=new J,this._onCentering=new ht,this._beforeCentering=new ht,this._afterLeavingCenter=new ht,this._onCentered=new ht(!0),this.animationDuration="500ms",this.preserveContent=!1,i&&(this._dirChangeSubscription=i.change.subscribe(s=>{this._computePositionAnimationState(s),o.markForCheck()})),this._translateTabComplete.pipe(V0((s,a)=>s.fromState===a.fromState&&s.toState===a.toState)).subscribe(s=>{this._isCenterPosition(s.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(s.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){const i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e}_computePositionAnimationState(e=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center"}_computePositionFromOrigin(e){const i=this._getLayoutDirection();return"ltr"==i&&e<=0||"rtl"==i&&e>0?"left-origin-center":"right-origin-center"}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(Do,8),Y(pi))},t.\u0275dir=Ke({type:t,inputs:{_content:["content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}}),t})(),_P=(()=>{class t extends Dte{constructor(e,i,o){super(e,i,o)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(Do,8),Y(pi))},t.\u0275cmp=Ze({type:t,selectors:[["mat-tab-body"]],viewQuery:function(e,i){if(1&e&&_t(Ja,5),2&e){let o;rt(o=ot())&&(i._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],features:[nt],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-mdc-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(e,i){1&e&&(D(0,"div",0,1),ye("@translateTab.start",function(s){return i._onTranslateTabStarted(s)})("@translateTab.done",function(s){return i._translateTabComplete.next(s)}),V(2,cte,0,0,"ng-template",2),C()),2&e&&w("@translateTab",mn(3,ute,i._position,He(1,dte,i.animationDuration)))},dependencies:[Ste],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[kte.translateTab]}}),t})();const Tte=new Re("MatTabContent");let Lte=(()=>{class t{constructor(e){this.template=e}}return t.\u0275fac=function(e){return new(e||t)(Y(mr))},t.\u0275dir=Ke({type:t,selectors:[["","matTabContent",""]],features:[un([{provide:Tte,useExisting:t}])]}),t})();const Ete=new Re("MatTabLabel"),bP=new Re("MAT_TAB");let Ite=(()=>{class t extends T9{constructor(e,i,o){super(e,i),this._closestTab=o}}return t.\u0275fac=function(e){return new(e||t)(Y(mr),Y(rr),Y(bP,8))},t.\u0275dir=Ke({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[un([{provide:Ete,useExisting:t}]),nt]}),t})();const U1="mdc-tab-indicator--active",vP="mdc-tab-indicator--no-transition";class Pte{constructor(n){this._items=n}hide(){this._items.forEach(n=>n.deactivateInkBar())}alignToElement(n){const e=this._items.find(o=>o.elementRef.nativeElement===n),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){const o=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(o),this._currentItem=e}}}function Ote(t){return class extends t{constructor(...n){super(...n),this._fitToContent=!1}get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(n){const e=_n(n);this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(n){const e=this.elementRef.nativeElement;if(!n||!e.getBoundingClientRect||!this._inkBarContentElement)return void e.classList.add(U1);const i=e.getBoundingClientRect(),o=n.width/i.width,s=n.left-i.left;e.classList.add(vP),this._inkBarContentElement.style.setProperty("transform",`translateX(${s}px) scaleX(${o})`),e.getBoundingClientRect(),e.classList.remove(vP),e.classList.add(U1),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this.elementRef.nativeElement.classList.remove(U1)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const n=this.elementRef.nativeElement.ownerDocument||document;this._inkBarElement=n.createElement("span"),this._inkBarContentElement=n.createElement("span"),this._inkBarElement.className="mdc-tab-indicator",this._inkBarContentElement.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",this._inkBarElement.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this.elementRef.nativeElement.querySelector(".mdc-tab__content"):this.elementRef.nativeElement).appendChild(this._inkBarElement)}}}const Fte=Ed(class{}),Rte=Ote((()=>{class t extends Fte{constructor(e){super(),this.elementRef=e}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}}return t.\u0275fac=function(e){return new(e||t)(Y(vt))},t.\u0275dir=Ke({type:t,features:[nt]}),t})());let yP=(()=>{class t extends Rte{}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275dir=Ke({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(e,i){2&e&&(Xt("aria-disabled",!!i.disabled),nn("mat-mdc-tab-disabled",i.disabled))},inputs:{disabled:"disabled",fitInkBarToContent:"fitInkBarToContent"},features:[nt]}),t})();const Nte=Ed(class{}),MP=new Re("MAT_TAB_GROUP");let Yte=(()=>{class t extends Nte{get content(){return this._contentPortal}constructor(e,i){super(),this._viewContainerRef=e,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new J,this.position=null,this.origin=null,this.isActive=!1}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Gl(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}}return t.\u0275fac=function(e){return new(e||t)(Y(rr),Y(MP,8))},t.\u0275dir=Ke({type:t,viewQuery:function(e,i){if(1&e&&_t(mr,7),2&e){let o;rt(o=ot())&&(i._implicitContent=o.first)}},inputs:{textLabel:["label","textLabel"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},features:[nt,Gi]}),t})(),wP=(()=>{class t extends Yte{constructor(){super(...arguments),this._explicitContent=void 0}get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["mat-tab"]],contentQueries:function(e,i,o){if(1&e&&(or(o,Lte,7,mr),or(o,Ite,5)),2&e){let s;rt(s=ot())&&(i._explicitContent=s.first),rt(s=ot())&&(i.templateLabel=s.first)}},inputs:{disabled:"disabled"},exportAs:["matTab"],features:[un([{provide:bP,useExisting:t}]),nt],ngContentSelectors:gP,decls:1,vars:0,template:function(e,i){1&e&&(Ir(),V(0,hte,1,0,"ng-template"))},encapsulation:2}),t})();const CP=Za({passive:!0});let Vte=(()=>{class t{get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=_n(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){e=So(e),this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}constructor(e,i,o,s,a,l,d){this._elementRef=e,this._changeDetectorRef=i,this._viewportRuler=o,this._dir=s,this._ngZone=a,this._platform=l,this._animationMode=d,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new J,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new J,this._disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new ht,this.indexFocused=new ht,a.runOutsideAngular(()=>{kh(e.nativeElement,"mouseleave").pipe(Hn(this._destroyed)).subscribe(()=>{this._stopInterval()})})}ngAfterViewInit(){kh(this._previousPaginator.nativeElement,"touchstart",CP).pipe(Hn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),kh(this._nextPaginator.nativeElement,"touchstart",CP).pipe(Hn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const e=this._dir?this._dir.change:$e("ltr"),i=this._viewportRuler.change(150),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new _L(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe(Kn(1)).subscribe(o),bt(e,i,this._items.changes,this._itemsResized()).pipe(Hn(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(s=>{this.indexFocused.emit(s),this._setTabFocus(s)})}_itemsResized(){return"function"!=typeof ResizeObserver?oa:this._items.changes.pipe(Go(this._items),gr(e=>new he(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(s=>i.next(s));return e.forEach(s=>o.observe(s.elementRef.nativeElement)),()=>{o.disconnect()}}))),B0(1),_i(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!Fs(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){const i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){const e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return!this._items||!!this._items.toArray()[e]}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const e=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){return this._scrollTo(this._scrollDistance+("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;const i=this._items?this._items.toArray()[e]:null;if(!i)return;const o=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:a}=i.elementRef.nativeElement;let l,d;"ltr"==this._getLayoutDirection()?(l=s,d=l+a):(d=this._tabListInner.nativeElement.offsetWidth-s,l=d-a);const _=this.scrollDistance,E=this.scrollDistance+o;l<_?this.scrollDistance-=_-l:d>E&&(this.scrollDistance+=Math.min(d-E,l-_))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const e=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),Sh(650,100).pipe(Hn(bt(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:o,distance:s}=this._scrollHeader(e);(0===s||s>=o)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(kd),Y(Do,8),Y(ft),Y(ui),Y(Ri,8))},t.\u0275dir=Ke({type:t,inputs:{disablePagination:"disablePagination"}}),t})(),jte=(()=>{class t extends Vte{get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=_n(e)}constructor(e,i,o,s,a,l,d){super(e,i,o,s,a,l,d),this._disableRipple=!1}_itemSelected(e){e.preventDefault()}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(kd),Y(Do,8),Y(ft),Y(ui),Y(Ri,8))},t.\u0275dir=Ke({type:t,inputs:{disableRipple:"disableRipple"},features:[nt]}),t})(),zte=(()=>{class t extends jte{constructor(e,i,o,s,a,l,d){super(e,i,o,s,a,l,d)}ngAfterContentInit(){this._inkBar=new Pte(this._items),super.ngAfterContentInit()}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(kd),Y(Do,8),Y(ft),Y(ui),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-tab-header"]],contentQueries:function(e,i,o){if(1&e&&or(o,yP,4),2&e){let s;rt(s=ot())&&(i._items=s)}},viewQuery:function(e,i){if(1&e&&(_t(fte,7),_t(pte,7),_t(mte,7),_t(gte,5),_t(_te,5)),2&e){let o;rt(o=ot())&&(i._tabListContainer=o.first),rt(o=ot())&&(i._tabList=o.first),rt(o=ot())&&(i._tabListInner=o.first),rt(o=ot())&&(i._nextPaginator=o.first),rt(o=ot())&&(i._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(e,i){2&e&&nn("mat-mdc-tab-header-pagination-controls-enabled",i._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==i._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[nt],ngContentSelectors:gP,decls:13,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-mdc-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(e,i){1&e&&(Ir(),D(0,"button",0,1),ye("click",function(){return i._handlePaginatorClick("before")})("mousedown",function(s){return i._handlePaginatorPress("before",s)})("touchend",function(){return i._stopInterval()}),xe(2,"div",2),C(),D(3,"div",3,4),ye("keydown",function(s){return i._handleKeydown(s)}),D(5,"div",5,6),ye("cdkObserveContent",function(){return i._onContentChanges()}),D(7,"div",7,8),Sn(9),C()()(),D(10,"button",9,10),ye("mousedown",function(s){return i._handlePaginatorPress("after",s)})("click",function(){return i._handlePaginatorClick("after")})("touchend",function(){return i._stopInterval()}),xe(12,"div",2),C()),2&e&&(nn("mat-mdc-tab-header-pagination-disabled",i._disableScrollBefore),w("matRippleDisabled",i._disableScrollBefore||i.disableRipple)("disabled",i._disableScrollBefore||null),c(3),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode),c(7),nn("mat-mdc-tab-header-pagination-disabled",i._disableScrollAfter),w("matRippleDisabled",i._disableScrollAfter||i.disableRipple)("disabled",i._disableScrollAfter||null))},dependencies:[Zl,dL],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"],encapsulation:2}),t})();const xP=new Re("MAT_TABS_CONFIG");let Ute=0;const Wte=Fh(Rh(class{constructor(t){this._elementRef=t}}),"primary");let $te=(()=>{class t extends Wte{get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(e){this._dynamicHeight=_n(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=So(e,null)}get animationDuration(){return this._animationDuration}set animationDuration(e){this._animationDuration=/^\d+$/.test(e+"")?e+"ms":e}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=So(e,null)}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=_n(e)}get preserveContent(){return this._preserveContent}set preserveContent(e){this._preserveContent=_n(e)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){const i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}constructor(e,i,o,s){super(e),this._changeDetectorRef=i,this._animationMode=s,this._tabs=new Al,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=T.EMPTY,this._tabLabelSubscription=T.EMPTY,this._dynamicHeight=!1,this._selectedIndex=null,this.headerPosition="above",this._disablePagination=!1,this._preserveContent=!1,this.selectedIndexChange=new ht,this.focusChange=new ht,this.animationDone=new ht,this.selectedTabChange=new ht(!0),this._groupId=Ute++,this.animationDuration=o&&o.animationDuration?o.animationDuration:"500ms",this.disablePagination=!(!o||null==o.disablePagination)&&o.disablePagination,this.dynamicHeight=!(!o||null==o.dynamicHeight)&&o.dynamicHeight,this.contentTabIndex=o?.contentTabIndex??null,this.preserveContent=!!o?.preserveContent}ngAfterContentChecked(){const e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));const o=this._tabBodyWrapper.nativeElement;o.style.minHeight=o.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((o,s)=>o.isActive=s===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,o)=>{i.position=o-e,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){const i=this._tabs.toArray();let o;for(let s=0;s{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(Go(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){const i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){const i=new qte;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=bt(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`mat-tab-label-${this._groupId}-${e}`}_getTabContentId(e){return`mat-tab-content-${this._groupId}-${e}`}_setTabBodyWrapperHeight(e){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){const e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,o){i.focusIndex=o,e.disabled||(this.selectedIndex=o)}_getTabIndex(e){return e===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(e,i){e&&"mouse"!==e&&"touch"!==e&&(this._tabHeader.focusIndex=i)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(xP,8),Y(Ri,8))},t.\u0275dir=Ke({type:t,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",preserveContent:"preserveContent",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[nt]}),t})(),Gte=(()=>{class t extends $te{get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=_n(e),this._changeDetectorRef.markForCheck()}get stretchTabs(){return this._stretchTabs}set stretchTabs(e){this._stretchTabs=_n(e)}constructor(e,i,o,s){super(e,i,o,s),this._fitInkBarToContent=!1,this._stretchTabs=!0,this.fitInkBarToContent=!(!o||null==o.fitInkBarToContent)&&o.fitInkBarToContent,this.stretchTabs=!o||null==o.stretchTabs||o.stretchTabs}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(xP,8),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-tab-group"]],contentQueries:function(e,i,o){if(1&e&&or(o,wP,5),2&e){let s;rt(s=ot())&&(i._allTabs=s)}},viewQuery:function(e,i){if(1&e&&(_t(bte,5),_t(vte,5)),2&e){let o;rt(o=ot())&&(i._tabBodyWrapper=o.first),rt(o=ot())&&(i._tabHeader=o.first)}},hostAttrs:["ngSkipHydration","true",1,"mat-mdc-tab-group"],hostVars:6,hostBindings:function(e,i){2&e&&nn("mat-mdc-tab-group-dynamic-height",i.dynamicHeight)("mat-mdc-tab-group-inverted-header","below"===i.headerPosition)("mat-mdc-tab-group-stretch-tabs",i.stretchTabs)},inputs:{color:"color",disableRipple:"disableRipple",fitInkBarToContent:"fitInkBarToContent",stretchTabs:["mat-stretch-tabs","stretchTabs"]},exportAs:["matTabGroup"],features:[un([{provide:MP,useExisting:t}]),nt],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mdc-tab mat-mdc-tab mat-mdc-focus-indicator","role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",3,"id","mdc-tab--active","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-mdc-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-mdc-tab-body-active","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-mdc-focus-indicator",3,"id","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange"],["tabNode",""],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering"]],template:function(e,i){1&e&&(D(0,"mat-tab-header",0,1),ye("indexFocused",function(s){return i._focusChanged(s)})("selectFocusedIndex",function(s){return i.selectedIndex=s}),V(2,Cte,9,17,"div",2),C(),D(3,"div",3,4),V(5,xte,1,11,"mat-tab-body",5),C()),2&e&&(w("selectedIndex",i.selectedIndex||0)("disableRipple",i.disableRipple)("disablePagination",i.disablePagination),c(2),w("ngForOf",i._tabs),c(1),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode),c(2),w("ngForOf",i._tabs))},dependencies:[Nn,gi,Ft,Ja,Zl,Yz,_P,yP,zte],styles:['.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-letter-spacing);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2}),t})();class qte{}let Kte=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[ta,Wn,Dd,Yh,j0,X0,Wn]}),t})();const Zte=["button"],Xte=["settingsButton"],Jte=["firstInput"];function Qte(t,n){1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),se(H(3,1,"apps.vpn-socks-client-settings.remote-key-length-error")))}function ene(t,n){1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.vpn-socks-client-settings.remote-key-chars-error")))}const ac=function(t){return{"element-disabled":t}};function tne(t,n){if(1&t&&(D(0,"mat-form-field",3)(1,"div",4)(2,"label",5),I(3),R(4,"translate"),C(),xe(5,"input",20),C()()),2&t){const e=z();w("ngClass",He(4,ac,e.disableDismiss)),c(3),se(H(4,2,"apps.vpn-socks-client-settings.password"))}}function nne(t,n){1&t&&(D(0,"div",21)(1,"mat-icon",22),I(2,"warning"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce(" ",H(4,2,"apps.vpn-socks-client-settings.password-history-warning")," "))}function ine(t,n){1&t&&xe(0,"app-loading-indicator",23),2&t&&w("showWhite",!1)}function rne(t,n){1&t&&(D(0,"div",24)(1,"mat-icon",22),I(2,"error"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce(" ",H(4,2,"apps.vpn-socks-client-settings.no-elements")," "))}function one(t,n){1&t&&(D(0,"div",31),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"apps.vpn-socks-client-settings.no-filter")," "))}function sne(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e[1]))}}function ane(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e[2])}}function lne(t,n){if(1&t&&(D(0,"div",31)(1,"span"),I(2),R(3,"translate"),C(),V(4,sne,3,3,"ng-container",16),V(5,ane,2,1,"ng-container",16),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e[0])," "),c(2),w("ngIf",e[1]),c(1),w("ngIf",e[2])}}function cne(t,n){1&t&&(D(0,"div",24)(1,"mat-icon",22),I(2,"error"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce(" ",H(4,2,"apps.vpn-socks-client-settings.no-elements-for-filters")," "))}const kP=function(t){return{highlighted:t}};function dne(t,n){if(1&t&&(Ue(0),D(1,"span",3),I(2),C(),We()),2&t){const e=n.$implicit,i=n.index;c(1),w("ngClass",He(2,kP,i%2!=0)),c(1),se(e)}}function une(t,n){if(1&t&&(Ue(0),D(1,"div",38),xe(2,"div"),C(),We()),2&t){const e=z(2).$implicit;c(2),di("background-image: url('assets/img/flags/"+e.country.toLocaleLowerCase()+".png');")}}function hne(t,n){if(1&t&&(Ue(0),D(1,"span",3),I(2),C(),We()),2&t){const e=n.$implicit,i=n.index;c(1),w("ngClass",He(2,kP,i%2!=0)),c(1),se(e)}}function fne(t,n){if(1&t&&(D(0,"div",31)(1,"span"),I(2),R(3,"translate"),C(),D(4,"span"),I(5,"\xa0 "),V(6,une,3,2,"ng-container",16),V(7,hne,3,4,"ng-container",35),C()()),2&t){const e=z().$implicit,i=z(2);c(2),se(H(3,3,"apps.vpn-socks-client-settings.location")),c(4),w("ngIf",e.country),c(1),w("ngForOf",i.getHighlightedTextParts(e.location,i.currentFilters.location))}}function pne(t,n){if(1&t){const e=et();D(0,"div",32)(1,"button",33),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).saveChanges(s.pk,null,!1,s.location))}),D(2,"div",34)(3,"div",31)(4,"span"),I(5),R(6,"translate"),C(),D(7,"span"),I(8,"\xa0"),V(9,dne,3,4,"ng-container",35),C()(),V(10,fne,8,5,"div",28),C()(),D(11,"button",36),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).copyPk(s.pk))}),R(12,"translate"),D(13,"mat-icon",37),I(14,"filter_none"),C()()()}if(2&t){const e=n.$implicit,i=z(2);c(1),w("ngClass",He(10,ac,i.disableDismiss)),c(4),se(H(6,6,"apps.vpn-socks-client-settings.key")),c(4),w("ngForOf",i.getHighlightedTextParts(e.pk,i.currentFilters.key)),c(1),w("ngIf",e.location),c(1),w("matTooltip",H(12,8,"apps.vpn-socks-client-settings.copy-pk-info")),c(2),w("inline",!0)}}function mne(t,n){if(1&t){const e=et();Ue(0),D(1,"button",25),ye("click",function(){return Pe(e),Oe(z().changeFilters())}),D(2,"div",26)(3,"div",27)(4,"mat-icon",22),I(5,"filter_list"),C()(),D(6,"div"),V(7,one,3,3,"div",28),V(8,lne,6,5,"div",29),D(9,"div",30),I(10),R(11,"translate"),C()()()(),V(12,cne,5,4,"div",15),V(13,pne,15,12,"div",18),We()}if(2&t){const e=z();c(4),w("inline",!0),c(3),w("ngIf",0===e.currentFiltersTexts.length),c(1),w("ngForOf",e.currentFiltersTexts),c(2),se(H(11,6,"apps.vpn-socks-client-settings.click-to-change")),c(2),w("ngIf",0===e.filteredProxiesFromDiscovery.length),c(1),w("ngForOf",e.proxiesFromDiscoveryToShow)}}const gne=function(t,n){return{currentElementsRange:t,totalElements:n}};function _ne(t,n){if(1&t){const e=et();D(0,"div",39)(1,"span"),I(2),R(3,"translate"),C(),D(4,"button",40),ye("click",function(){return Pe(e),Oe(z().goToPreviousPage())}),D(5,"mat-icon"),I(6,"chevron_left"),C()(),D(7,"button",40),ye("click",function(){return Pe(e),Oe(z().goToNextPage())}),D(8,"mat-icon"),I(9,"chevron_right"),C()()()}if(2&t){const e=z();c(2),se(kt(3,1,"apps.vpn-socks-client-settings.pagination-info",mn(4,gne,e.currentRange,e.filteredProxiesFromDiscovery.length)))}}const bne=function(t){return{number:t}};function vne(t,n){if(1&t&&(D(0,"div")(1,"div",24)(2,"mat-icon",22),I(3,"error"),C(),I(4),R(5,"translate"),C()()),2&t){const e=z();c(2),w("inline",!0),c(2),ce(" ",kt(5,2,"apps.vpn-socks-client-settings.no-history",He(5,bne,e.maxHistoryElements))," ")}}function yne(t,n){1&t&&Jo(0)}function Mne(t,n){1&t&&Jo(0)}function wne(t,n){if(1&t&&(Ue(0),D(1,"span"),I(2),C(),We()),2&t){const e=z(2).$implicit;c(2),ce(" ",e.note,"")}}function Cne(t,n){1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),ce(" ",H(3,1,"apps.vpn-socks-client-settings.note-entered-manually"),""))}function xne(t,n){if(1&t&&(Ue(0),D(1,"span"),I(2),C(),We()),2&t){const e=z(4).$implicit;c(2),ce(" (",e.location,")")}}function kne(t,n){if(1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),V(4,xne,3,1,"ng-container",16),We()),2&t){const e=z(3).$implicit;c(2),ce(" ",H(3,2,"apps.vpn-socks-client-settings.note-obtained"),""),c(2),w("ngIf",e.location)}}function Sne(t,n){if(1&t&&(Ue(0),V(1,Cne,4,3,"ng-container",16),V(2,kne,5,4,"ng-container",16),We()),2&t){const e=z(2).$implicit;c(1),w("ngIf",e.enteredManually),c(1),w("ngIf",!e.enteredManually)}}function Dne(t,n){if(1&t&&(D(0,"div",46)(1,"div",47)(2,"div",31)(3,"span"),I(4),R(5,"translate"),C(),D(6,"span"),I(7),C()(),D(8,"div",31)(9,"span"),I(10),R(11,"translate"),C(),V(12,wne,3,1,"ng-container",16),V(13,Sne,3,2,"ng-container",16),C()(),D(14,"div",48)(15,"div",49)(16,"mat-icon",22),I(17,"add"),C()()()()),2&t){const e=z().$implicit;c(4),se(H(5,6,"apps.vpn-socks-client-settings.key")),c(3),ce(" ",e.key,""),c(3),se(H(11,8,"apps.vpn-socks-client-settings.note")),c(2),w("ngIf",e.note),c(1),w("ngIf",!e.note),c(3),w("inline",!0)}}function Tne(t,n){if(1&t){const e=et();D(0,"div",32)(1,"button",41),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().useFromHistory(s))}),V(2,yne,1,0,"ng-container",42),C(),D(3,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().changeNote(s))}),R(4,"translate"),D(5,"mat-icon",37),I(6,"edit"),C()(),D(7,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().removeFromHistory(s.key))}),R(8,"translate"),D(9,"mat-icon",37),I(10,"close"),C()(),D(11,"button",44),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().openHistoryOptions(s))}),V(12,Mne,1,0,"ng-container",42),C(),V(13,Dne,18,10,"ng-template",null,45,Es),C()}if(2&t){const e=ci(14),i=z();c(1),w("ngClass",He(12,ac,i.disableDismiss)),c(1),w("ngTemplateOutlet",e),c(1),w("matTooltip",H(4,8,"apps.vpn-socks-client-settings.change-note")),c(2),w("inline",!0),c(2),w("matTooltip",H(8,10,"apps.vpn-socks-client-settings.remove-entry")),c(2),w("inline",!0),c(2),w("ngClass",He(14,ac,i.disableDismiss)),c(1),w("ngTemplateOutlet",e)}}function Lne(t,n){1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),se(H(3,1,"apps.vpn-socks-client-settings.dns-error")))}function Ene(t,n){1&t&&(D(0,"div",56)(1,"mat-icon",22),I(2,"warning"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce(" ",H(4,2,"apps.vpn-socks-client-settings.settings-changed-alert")," "))}function Ine(t,n){if(1&t){const e=et();D(0,"mat-tab",1),R(1,"translate"),D(2,"form",2)(3,"mat-form-field",3)(4,"div",4)(5,"label",5),I(6),R(7,"translate"),C(),xe(8,"input",50),C(),D(9,"mat-error"),V(10,Lne,4,3,"ng-container",16),C()(),D(11,"div",51)(12,"mat-checkbox",52),I(13),R(14,"translate"),D(15,"mat-icon",53),R(16,"translate"),I(17,"help"),C()()(),V(18,Ene,5,4,"div",54),D(19,"app-button",12,55),ye("action",function(){return Pe(e),Oe(z().saveSettings())}),I(21),R(22,"translate"),C()()()}if(2&t){const e=z();w("label",H(1,12,"apps.vpn-socks-client-settings.settings-tab")),c(2),w("formGroup",e.settingsForm),c(1),w("ngClass",He(22,ac,e.disableDismiss)),c(3),se(H(7,14,"apps.vpn-socks-client-settings.dns")),c(4),w("ngIf",!e.settingsForm.get("dns").valid),c(2),w("ngClass",He(24,ac,e.disableDismiss)),c(1),ce(" ",H(14,16,"apps.vpn-socks-client-settings.killswitch-check")," "),c(2),w("inline",!0)("matTooltip",H(16,18,"apps.vpn-socks-client-settings.killswitch-info")),c(3),w("ngIf",e.settingsChanged),c(1),w("disabled",!e.settingsForm.valid||!e.settingsChanged||e.working),c(2),ce(" ",H(22,20,"apps.vpn-socks-client-settings.save-settings")," ")}}let Pne=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.largeModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l,d,_,E){this.data=e,this.dialogRef=i,this.appsService=o,this.formBuilder=s,this.snackbarService=a,this.dialog=l,this.proxyDiscoveryService=d,this.clipboardService=_,this.storageService=E,this.socksHistoryStorageKey="SkysocksClientHistory_",this.vpnHistoryStorageKey="VpnClientHistory_",this.maxHistoryElements=10,this.maxElementsPerPage=10,this.countriesFromDiscovery=new Set,this.loadingFromDiscovery=!0,this.numberOfPages=1,this.currentPage=1,this.currentRange="1 - 1",this.currentFilters=new mP,this.currentFiltersTexts=[],this.configuringVpn=!1,this.initialKillswitchSetting=!1,this.initialDnsSetting="",this.working=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}ngOnInit(){this.migrateDataToHvStorage(),this.discoverySubscription=this.proxyDiscoveryService.getServices(!this.configuringVpn).subscribe(o=>{this.proxiesFromDiscovery=o,this.proxiesFromDiscovery.forEach(s=>{s.country&&this.countriesFromDiscovery.add(s.country.toUpperCase())}),this.filterProxies(),this.loadingFromDiscovery=!1});const e=this.storageService.getDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey);this.history=e?JSON.parse(e):[];let i="";if(this.data.args&&this.data.args.length>0)for(let o=0;othis.firstInput.nativeElement.focus())}ngOnDestroy(){this.discoverySubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}migrateDataToHvStorage(){const e=localStorage.getItem(this.socksHistoryStorageKey);e&&(this.storageService.setDataForHv(this.socksHistoryStorageKey,e),localStorage.removeItem(this.socksHistoryStorageKey));const i=localStorage.getItem(this.vpnHistoryStorageKey);i&&(this.storageService.setDataForHv(this.vpnHistoryStorageKey,i),localStorage.removeItem(this.vpnHistoryStorageKey))}get disableDismiss(){return this.button&&this.button.isLoading||this.settingsButton&&this.settingsButton.isLoading}validateIp(){if(this.settingsForm){const e=this.settingsForm.get("dns").value;return Jt.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}get settingsChanged(){return this.initialKillswitchSetting!==this.settingsForm.get("killswitch").value||this.initialDnsSetting!==this.settingsForm.get("dns").value}changeFilters(){const e=[];this.countriesFromDiscovery.forEach(o=>e.push(o)),ote.openDialog(this.dialog,{currentFilters:this.currentFilters,availableCountries:e}).afterClosed().subscribe(o=>{o&&(this.currentFilters=o,this.filterProxies())})}getHighlightedTextParts(e,i){if(!i)return[e];const o=e.toLowerCase(),s=i.toLowerCase();let a=!0,l=0;const d=[];for(;a;){const _=o.indexOf(s,l);-1===_?a=!1:(d.push(e.substring(l,_)),d.push(e.substring(_,_+i.length)),l=_+i.length)}return d.push(e.substring(l)),d}filterProxies(){this.filteredProxiesFromDiscovery=this.currentFilters.country||this.currentFilters.location||this.currentFilters.key?this.proxiesFromDiscovery.filter(e=>!(this.currentFilters.country&&(!e.country||!e.country.toUpperCase().includes(this.currentFilters.country.toUpperCase()))||this.currentFilters.location&&!e.location.toLowerCase().includes(this.currentFilters.location.toLowerCase())||this.currentFilters.key&&!e.address.toLowerCase().includes(this.currentFilters.key.toLowerCase()))):this.proxiesFromDiscovery,this.updateCurrentFilters(),this.updatePagination()}updateCurrentFilters(){if(this.currentFiltersTexts=[],this.currentFilters.country){const e=ma[this.currentFilters.country.toUpperCase()]?ma[this.currentFilters.country.toUpperCase()]:this.currentFilters.country.toUpperCase();this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.country","",e])}this.currentFilters.location&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.location","",this.currentFilters.location]),this.currentFilters.key&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.pub-key","",this.currentFilters.key])}updatePagination(){this.currentPage=1,this.numberOfPages=Math.ceil(this.filteredProxiesFromDiscovery.length/this.maxElementsPerPage),this.showCurrentPage()}goToNextPage(){this.currentPage>=this.numberOfPages||(this.currentPage+=1,this.showCurrentPage())}goToPreviousPage(){this.currentPage<=1||(this.currentPage-=1,this.showCurrentPage())}showCurrentPage(){this.proxiesFromDiscoveryToShow=this.filteredProxiesFromDiscovery.slice((this.currentPage-1)*this.maxElementsPerPage,this.currentPage*this.maxElementsPerPage),this.currentRange=(this.currentPage-1)*this.maxElementsPerPage+1+" - ",this.currentRange+=this.currentPage{1===o?this.useFromHistory(e):2===o?this.changeNote(e):3===o&&this.removeFromHistory(e.key)})}removeFromHistory(e){const o=Jt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.remove-from-history-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{this.history=this.history.filter(a=>a.key!==e);const s=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,s),o.close()})}changeNote(e){Zee.openDialog(this.dialog,e.note).afterClosed().subscribe(i=>{if(i){i=i.substr(1,i.length-1),this.history.forEach(s=>{s.key===e.key&&(s.note=i)});const o=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,o),i?this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"):this.snackbarService.showWarning("apps.vpn-socks-client-settings.default-note-warning")}})}useFromHistory(e){e.hasPassword?ate.openDialog(this.dialog).afterClosed().subscribe(i=>{i&&(i=i.substr(1,i.length-1),this.saveChanges(e.key,i,e.enteredManually,e.location,e.note))}):this.saveChanges(e.key,null,e.enteredManually,e.location,e.note)}saveChanges(e=null,i=null,o=null,s=null,a=null){if(!this.form.valid&&!e||this.working)return;o=!e||o,i=e?i:this.form.get("password").value,e=e||this.form.get("pk").value;const d=Jt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.change-key-confirmation");d.componentInstance.operationAccepted.subscribe(()=>{d.close(),this.continueSavingChanges(e,i,o,s,a)})}saveSettings(){if(this.working)return;const e={killswitch:this.settingsForm.get("killswitch").value,dns:this.settingsForm.get("dns").value};this.settingsButton.showLoading(!1),this.button.showLoading(!1),this.working=!0,this.operationSubscription=this.appsService.changeAppSettings(Ct.getCurrentNodeKey(),this.data.name,e).subscribe(()=>{this.initialKillswitchSetting=e.killswitch,this.initialDnsSetting=e.dns,this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.settingsButton.reset(!1),this.button.reset(!1),Ct.refreshCurrentDisplayedData()},i=>{this.working=!1,this.settingsButton.showError(!1),this.button.reset(!1),i=en(i),this.snackbarService.showError(i)})}copyPk(e){this.clipboardService.copy(e)?this.snackbarService.showDone("apps.vpn-socks-client-settings.copied-pk-info"):this.snackbarService.showError("apps.vpn-socks-client-settings.copy-pk-error")}continueSavingChanges(e,i,o,s,a){if(this.working)return;this.button.showLoading(!1),this.settingsButton&&this.settingsButton.showLoading(!1),this.working=!0;const l={pk:e};this.configuringVpn&&(l.passcode=i||""),this.operationSubscription=this.appsService.changeAppSettings(Ct.getCurrentNodeKey(),this.data.name,l).subscribe(()=>this.onServerDataChangeSuccess(e,!!i,o,s,a),d=>this.onServerDataChangeError(d))}onServerDataChangeSuccess(e,i,o,s,a){this.history=this.history.filter(_=>_.key!==e);const l={key:e,enteredManually:o};if(i&&(l.hasPassword=i),s&&(l.location=s),a&&(l.note=a),this.history=[l].concat(this.history),this.history.length>this.maxHistoryElements){const _=this.history.length-this.maxHistoryElements;this.history.splice(this.history.length-_,_)}this.form.get("pk").setValue(e);const d=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,d),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.button.reset(!1),this.settingsButton&&this.settingsButton.reset(!1)}onServerDataChangeError(e){this.working=!1,this.button.showError(!1),this.settingsButton&&this.settingsButton.reset(!1),e=en(e),this.snackbarService.showError(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(ll),Y(xr),Y(Dn),Y(In),Y(lte),Y(ef),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-skysocks-client-settings"]],viewQuery:function(e,i){if(1&e&&(_t(Zte,5),_t(Xte,5),_t(Jte,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.settingsButton=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:34,vars:36,consts:[[3,"headline","dialog","disableDismiss"],[3,"label"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","pk","formControlName","pk","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],[3,"ngClass",4,"ngIf"],["class","password-history-warning",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["class","loading-indicator",3,"showWhite",4,"ngIf"],["class","info-text",4,"ngIf"],[4,"ngIf"],["class","paginator",4,"ngIf"],["class","d-flex",4,"ngFor","ngForOf"],[3,"label",4,"ngIf"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],[1,"password-history-warning"],[3,"inline"],[1,"loading-indicator",3,"showWhite"],[1,"info-text"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click"],[1,"filter-button-content"],[1,"icon-area"],["class","item",4,"ngIf"],["class","item",4,"ngFor","ngForOf"],[1,"blue-part"],[1,"item"],[1,"d-flex"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"ngClass","click"],[1,"button-content"],[4,"ngFor","ngForOf"],["mat-button","",1,"list-button","grey-button-background",3,"matTooltip","click"],[1,"option-button-icon",3,"inline"],[1,"flag-container"],[1,"paginator"],["mat-icon-button","",1,"hard-grey-button-background",3,"click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-none","d-md-inline",3,"ngClass","click"],[4,"ngTemplateOutlet"],["mat-button","",1,"list-button","grey-button-background","d-none","d-md-inline",3,"matTooltip","click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-md-none",3,"ngClass","click"],["content",""],[1,"button-content","d-flex"],[1,"full-size-area"],[1,"options-container"],[1,"small-button","d-md-none"],["formControlName","dns","maxlength","15","matInput",""],[1,"main-theme","settings-option"],["color","primary","formControlName","killswitch",3,"ngClass"],[1,"help-icon",3,"inline","matTooltip"],["class","settings-changed-warning",4,"ngIf"],["settingsButton",""],[1,"settings-changed-warning"]],template:function(e,i){if(1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"mat-tab-group")(3,"mat-tab",1),R(4,"translate"),D(5,"form",2)(6,"mat-form-field",3)(7,"div",4)(8,"label",5),I(9),R(10,"translate"),C(),xe(11,"input",6,7),C(),D(13,"mat-error"),V(14,Qte,4,3,"ng-container",8),C(),V(15,ene,3,3,"ng-template",null,9,Es),C(),V(17,tne,6,6,"mat-form-field",10),V(18,nne,5,4,"div",11),D(19,"app-button",12,13),ye("action",function(){return i.saveChanges()}),I(21),R(22,"translate"),C()()(),D(23,"mat-tab",1),R(24,"translate"),V(25,ine,1,1,"app-loading-indicator",14),V(26,rne,5,4,"div",15),V(27,mne,14,8,"ng-container",16),V(28,_ne,10,7,"div",17),C(),D(29,"mat-tab",1),R(30,"translate"),V(31,vne,6,7,"div",16),V(32,Tne,15,16,"div",18),C(),V(33,Ine,23,26,"mat-tab",19),C()()),2&e){const o=ci(16);w("headline",H(1,22,"apps.vpn-socks-client-settings."+(i.configuringVpn?"vpn-title":"socks-title")))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(3),w("label",H(4,24,"apps.vpn-socks-client-settings.remote-visor-tab")),c(2),w("formGroup",i.form),c(1),w("ngClass",He(34,ac,i.disableDismiss)),c(3),se(H(10,26,"apps.vpn-socks-client-settings.public-key")),c(5),w("ngIf",!i.form.get("pk").hasError("pattern"))("ngIfElse",o),c(3),w("ngIf",i.configuringVpn),c(1),w("ngIf",i.form&&i.form.get("password").value),c(1),w("disabled",!i.form.valid||i.working),c(2),ce(" ",H(22,28,"apps.vpn-socks-client-settings.save")," "),c(2),w("label",H(24,30,"apps.vpn-socks-client-settings.discovery-tab")),c(2),w("ngIf",i.loadingFromDiscovery),c(1),w("ngIf",!i.loadingFromDiscovery&&0===i.proxiesFromDiscovery.length),c(1),w("ngIf",!i.loadingFromDiscovery&&i.proxiesFromDiscovery.length>0),c(1),w("ngIf",i.numberOfPages>1),c(1),w("label",H(30,32,"apps.vpn-socks-client-settings.history-tab")),c(2),w("ngIf",0===i.history.length),c(1),w("ngForOf",i.history),c(1),w("ngIf",i.configuringVpn)}},dependencies:[Nn,gi,Ft,hd,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,wP,Gte,Wr,el,Cn,vi,fa,Ui,ei,as,wt],styles:["mat-tab-header{border-bottom:solid 1px rgba(0,0,0,.12)}form[_ngcontent-%COMP%]{margin-top:15px}.info-text[_ngcontent-%COMP%]{margin-top:20px;margin-bottom:2px;text-align:center;color:#202226}.info-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.loading-indicator[_ngcontent-%COMP%]{height:100px}.password-history-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative;top:-5px}.list-button[_ngcontent-%COMP%]{border-bottom:solid 1px rgba(0,0,0,.12);height:auto;justify-content:left}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%]{padding:15px 0;white-space:normal;line-height:1.3;color:#202226;text-align:left;display:flex;font-size:.8rem;word-break:break-word}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .icon-area[_ngcontent-%COMP%]{font-size:20px;margin-right:15px;color:#999;opacity:.4;align-self:center}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{margin:4px 0}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .blue-part[_ngcontent-%COMP%]{color:#215f9e}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%]{text-align:left;padding:15px 0;white-space:normal}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .full-size-area[_ngcontent-%COMP%]{flex-grow:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{line-height:1.3;margin:4px 0;font-size:.8rem;color:#202226;word-break:break-all}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{background-color:#ff0}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%]{flex-shrink:0;margin-left:5px;text-align:right;line-height:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%] .small-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:14px;font-size:14px;margin-left:5px}.list-button[_ngcontent-%COMP%] .option-button-icon[_ngcontent-%COMP%]{font-size:14px;margin:0!important;overflow:visible!important}.paginator[_ngcontent-%COMP%]{float:right;margin-top:15px;display:flex;align-items:center}@media (max-width: 767px){.paginator[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.7rem}}.paginator[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:5px;display:flex}.settings-option[_ngcontent-%COMP%]{margin-top:20px}.settings-option[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}.settings-changed-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative}"]}),t})();const One=["button"],SP=function(t){return{"element-disabled":t}},DP=function(t){return{number:t}};function Ane(t,n){if(1&t){const e=et();Ue(0,7),D(1,"div",8)(2,"mat-form-field",9)(3,"div",10)(4,"label",11),I(5),R(6,"translate"),C(),xe(7,"input",12),C()(),D(8,"mat-form-field",9)(9,"div",10)(10,"label",13),I(11),R(12,"translate"),C(),xe(13,"input",14),C()(),D(14,"button",15),ye("click",function(){const s=Pe(e).index;return Oe(z().removeSetting(s))}),R(15,"translate"),D(16,"mat-icon",16),I(17,"close"),C()()(),We()}if(2&t){const e=n.index,i=z();c(1),w("formGroupName",e),c(1),w("ngClass",He(15,SP,i.disableDismiss)),c(3),se(kt(6,7,"apps.user-app-settings.name",He(17,DP,e+1))),c(3),w("ngClass",He(19,SP,i.disableDismiss)),c(3),se(kt(12,10,"apps.user-app-settings.value",He(21,DP,e+1))),c(3),w("matTooltip",H(15,13,"apps.user-app-settings.remove")),c(2),w("inline",!0)}}const Fne=function(t){return{name:t}};let Rne=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=s,this.snackbarService=a,this.dialog=l,this.appName="",this.appName=e.name}ngOnInit(){if(this.form=this.formBuilder.group({settings:this.formBuilder.array([])}),this.data.args&&this.data.args.length>0)for(let e=0;e{let a=s.get("name").value,l=s.get("value").value;a=a&&a.trim(),l=l&&l.trim(),a?(o[a]=l,i+=1):e=!0}),e||0===i){const a=Jt.createConfirmationDialog(this.dialog,"apps.user-app-settings."+(0===i?"empty-confirmation":"invalid-confirmation"));a.componentInstance.operationAccepted.subscribe(()=>{a.close(),this.continueSavingChanges(o)})}else this.continueSavingChanges(o)}continueSavingChanges(e){this.button.showLoading();const i={custom_setting:e};this.operationSubscription=this.appsService.changeAppSettings(Ct.getCurrentNodeKey(),this.data.name,i).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.user-app-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=en(e),this.snackbarService.showError(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(ll),Y(xr),Y(Bn),Y(Dn),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-user-app-settings"]],viewQuery:function(e,i){if(1&e&&_t(One,5),2&e){let o;rt(o=ot())&&(i.button=o.first)}},decls:15,vars:20,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup"],["formArrayName","settings",4,"ngFor","ngForOf"],[1,"add-setting",3,"click"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["formArrayName","settings"],[1,"settings-row",3,"formGroupName"],[3,"ngClass"],[1,"field-container"],["for","name",1,"field-label"],["id","name","formControlName","name","matInput",""],["for","value",1,"field-label"],["id","value","formControlName","value","matInput",""],["mat-button","",1,"transparent-button",3,"matTooltip","click"],[3,"inline"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),I(3),R(4,"translate"),C(),D(5,"form",2),V(6,Ane,18,23,"ng-container",3),C(),D(7,"div")(8,"a",4),ye("click",function(){return i.addSetting()}),I(9),R(10,"translate"),C()(),D(11,"app-button",5,6),ye("action",function(){return i.saveChanges()}),I(13),R(14,"translate"),C()()),2&e&&(w("headline",kt(1,9,"apps.user-app-settings.title",He(18,Fne,i.appName)))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(3),se(H(4,12,"apps.user-app-settings.info")),c(2),w("formGroup",i.form),c(1),w("ngForOf",i.settingsControls),c(3),ce("+ ",H(10,14,"apps.user-app-settings.add"),""),c(2),w("disabled",!i.form.valid),c(2),ce(" ",H(14,16,"apps.user-app-settings.save")," "))},dependencies:[Nn,gi,zi,Bi,Vi,ji,ii,Ei,Jh,Qh,ar,kr,Wr,Cn,vi,Ui,ei,wt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}.settings-row[_ngcontent-%COMP%]{display:flex}mat-form-field[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px}button[_ngcontent-%COMP%]{flex-shrink:0;width:50px;padding:0!important;align-self:center;border-radius:10px}button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0!important}.add-setting[_ngcontent-%COMP%]{color:#215f9e!important;cursor:pointer}"]}),t})();function Nne(t,n){1&t&&(D(0,"span",14),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.apps-list.title-official")))}function Yne(t,n){1&t&&(D(0,"span",14),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.apps-list.title-user")))}function Hne(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function Bne(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function Vne(t,n){if(1&t&&(D(0,"div",18)(1,"span"),I(2),R(3,"translate"),C(),V(4,Hne,3,3,"ng-container",19),V(5,Bne,2,1,"ng-container",19),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function jne(t,n){if(1&t){const e=et();D(0,"div",15),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,Vne,6,5,"div",16),D(2,"div",17),I(3),R(4,"translate"),C()()}if(2&t){const e=z();c(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),se(H(4,2,"filters.press-to-remove"))}}function zne(t,n){if(1&t){const e=et();D(0,"mat-icon",20),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&t&&w("inline",!0)("matTooltip",H(1,2,"filters.filter-action"))}function Une(t,n){1&t&&(D(0,"mat-icon",21),I(1,"more_horiz"),C()),2&t&&(z(),w("matMenuTriggerFor",ci(10)))}const TP=function(t,n){return["/nodes",t,"apps-list",n]};function Wne(t,n){if(1&t&&xe(0,"app-paginator",22),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",mn(4,TP,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function $ne(t,n){if(1&t&&(D(0,"mat-icon",37),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Gne(t,n){if(1&t&&(D(0,"mat-icon",37),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function qne(t,n){if(1&t&&(D(0,"mat-icon",37),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Kne(t,n){if(1&t&&(D(0,"mat-icon",37),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Zne(t,n){if(1&t&&(xe(0,"i",46),R(1,"translate")),2&t){const e=z().$implicit,i=z(2);eo(i.getStateClass(e)),w("matTooltip",H(1,3,i.getStateTooltip(e)))}}const LP=function(t){return{error:t}};function Xne(t,n){if(1&t&&(D(0,"mat-icon",47),R(1,"translate"),I(2,"warning"),C()),2&t){const e=z().$implicit;w("inline",!0)("matTooltip",kt(1,2,"apps.status-failed-tooltip",He(5,LP,e.detailedStatus?e.detailedStatus:"")))}}function Jne(t,n){if(1&t&&(D(0,"a",48)(1,"button",49),R(2,"translate"),D(3,"mat-icon",37),I(4,"open_in_browser"),C()()()),2&t){const e=z().$implicit;w("href",z(2).getLink(e),Vo),c(1),w("matTooltip",H(2,3,"apps.open")),c(2),w("inline",!0)}}function Qne(t,n){if(1&t){const e=et();D(0,"button",43),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).config(o))}),R(1,"translate"),D(2,"mat-icon",37),I(3,"settings"),C()()}2&t&&(w("matTooltip",H(1,2,"apps.settings")),c(2),w("inline",!0))}function eie(t,n){if(1&t){const e=et();D(0,"tr")(1,"td",39)(2,"mat-checkbox",40),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),V(4,Zne,2,5,"i",41),V(5,Xne,3,7,"mat-icon",42),C(),D(6,"td"),I(7),C(),D(8,"td"),I(9),C(),D(10,"td")(11,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).changeAppAutostart(s))}),R(12,"translate"),D(13,"mat-icon",37),I(14),C()()(),D(15,"td",30),V(16,Jne,5,5,"a",44),V(17,Qne,4,4,"button",45),D(18,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).viewLogs(s))}),R(19,"translate"),D(20,"mat-icon",37),I(21,"list"),C()(),D(22,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).changeAppState(s))}),R(23,"translate"),D(24,"mat-icon",37),I(25),C()()()()}if(2&t){const e=n.$implicit,i=z(2);c(2),w("checked",i.selections.get(e.name)),c(2),w("ngIf",2!==e.status),c(1),w("ngIf",2===e.status),c(2),ce(" ",e.name," "),c(2),ce(" ",e.port," "),c(2),w("matTooltip",H(12,15,e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart")),c(2),w("inline",!0),c(1),se(e.autostart?"done":"close"),c(2),w("ngIf",i.getLink(e)),c(1),w("ngIf",!i.appsWithoutConfig.has(e.name)),c(1),w("matTooltip",H(19,17,"apps.view-logs")),c(2),w("inline",!0),c(2),w("matTooltip",H(23,19,"apps."+(0===e.status||2===e.status?"start-app":"stop-app"))),c(2),w("inline",!0),c(1),se(0===e.status||2===e.status?"play_arrow":"stop")}}function tie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.label")))}function nie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.inverted-order")))}function iie(t,n){if(1&t&&(D(0,"a",55),ye("click",function(i){return i.stopPropagation()}),D(1,"button",56),R(2,"translate"),D(3,"mat-icon"),I(4,"open_in_browser"),C()()()),2&t){const e=z().$implicit;w("href",z(2).getLink(e),Vo),c(1),w("matTooltip",H(2,2,"apps.open"))}}function rie(t,n){if(1&t){const e=et();D(0,"tr")(1,"td")(2,"div",34)(3,"div",50)(4,"mat-checkbox",40),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",35)(6,"div",51)(7,"span",1),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",51)(12,"span",1),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",51)(17,"span",1),I(18),R(19,"translate"),C(),I(20,": "),D(21,"span"),I(22),R(23,"translate"),C()(),D(24,"div",51)(25,"span",1),I(26),R(27,"translate"),C(),I(28,": "),D(29,"span"),I(30),R(31,"translate"),C()()(),xe(32,"div",52),D(33,"div",36),V(34,iie,5,4,"a",53),D(35,"button",54),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(36,"translate"),D(37,"mat-icon"),I(38),C()()()()()()}if(2&t){const e=n.$implicit,i=z(2);c(4),w("checked",i.selections.get(e.name)),c(4),se(H(9,16,"apps.apps-list.app-name")),c(2),ce(": ",e.name," "),c(3),se(H(14,18,"apps.apps-list.port")),c(2),ce(": ",e.port," "),c(3),se(H(19,20,"apps.apps-list.state")),c(3),eo(i.getSmallScreenStateClass(e)+" title"),c(1),ce(" ",kt(23,22,i.getSmallScreenStateTextVar(e),He(31,LP,e.detailedStatus?e.detailedStatus:""))," "),c(4),se(H(27,25,"apps.apps-list.auto-start")),c(3),eo((e.autostart?"green-clear-text":"red-clear-text")+" title"),c(1),ce(" ",H(31,27,e.autostart?"apps.apps-list.autostart-enabled":"apps.apps-list.autostart-disabled")," "),c(4),w("ngIf",i.getLink(e)),c(1),w("matTooltip",H(36,29,"common.options")),c(3),se("add")}}const oie=function(t,n){return["/nodes",t,"apps-list",n,"1"]};function sie(t,n){if(1&t&&xe(0,"app-view-all-link",57),2&t){const e=z(2);w("numberOfElements",e.filteredApps.length)("linkParts",mn(3,oie,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const aie=function(t,n){return{"small-node-list-margins":t,"full-node-list-margins":n}},lie=function(t){return{"d-lg-none d-xl-table":t}},cie=function(t){return{"d-lg-table d-xl-none":t}};function die(t,n){if(1&t){const e=et();D(0,"div",23)(1,"div",24)(2,"table",25)(3,"tr"),xe(4,"th"),D(5,"th",26),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.stateSortData))}),R(6,"translate"),xe(7,"span",27),V(8,$ne,2,2,"mat-icon",28),C(),D(9,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.nameSortData))}),I(10),R(11,"translate"),V(12,Gne,2,2,"mat-icon",28),C(),D(13,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.portSortData))}),I(14),R(15,"translate"),V(16,qne,2,2,"mat-icon",28),C(),D(17,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.autoStartSortData))}),I(18),R(19,"translate"),V(20,Kne,2,2,"mat-icon",28),C(),xe(21,"th",30),C(),V(22,eie,26,21,"tr",31),C(),D(23,"table",32)(24,"tr",33),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(25,"td")(26,"div",34)(27,"div",35)(28,"div",1),I(29),R(30,"translate"),C(),D(31,"div"),I(32),R(33,"translate"),V(34,tie,3,3,"ng-container",19),V(35,nie,3,3,"ng-container",19),C()(),D(36,"div",36)(37,"mat-icon",37),I(38,"keyboard_arrow_down"),C()()()()(),V(39,rie,39,33,"tr",31),C(),V(40,sie,1,6,"app-view-all-link",38),C()()}if(2&t){const e=z();c(1),w("ngClass",mn(31,aie,e.showShortList_,!e.showShortList_)),c(1),w("ngClass",He(34,lie,e.showShortList_)),c(3),w("matTooltip",H(6,19,"apps.apps-list.state-tooltip")),c(3),w("ngIf",e.dataSorter.currentSortingColumn===e.stateSortData),c(2),ce(" ",H(11,21,"apps.apps-list.app-name")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.nameSortData),c(2),ce(" ",H(15,23,"apps.apps-list.port")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.portSortData),c(2),ce(" ",H(19,25,"apps.apps-list.auto-start")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.autoStartSortData),c(2),w("ngForOf",e.dataSource),c(1),w("ngClass",He(36,cie,e.showShortList_)),c(6),se(H(30,27,"tables.sorting-title")),c(3),ce("",H(33,29,e.dataSorter.currentSortingColumn.label)," "),c(2),w("ngIf",e.dataSorter.currentlySortingByLabel),c(1),w("ngIf",e.dataSorter.sortingInReverseOrder),c(2),w("inline",!0),c(2),w("ngForOf",e.dataSource),c(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function uie(t,n){1&t&&(D(0,"span",61),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.apps-list.empty-official")))}function hie(t,n){1&t&&(D(0,"span",61),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.apps-list.empty-user")))}function fie(t,n){1&t&&(D(0,"span",61),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.apps-list.empty-with-filter")))}function pie(t,n){if(1&t&&(D(0,"div",23)(1,"div",58)(2,"mat-icon",59),I(3,"warning"),C(),V(4,uie,3,3,"span",60),V(5,hie,3,3,"span",60),V(6,fie,3,3,"span",60),C()()),2&t){const e=z();c(2),w("inline",!0),c(2),w("ngIf",0===e.allAppsForType.length&&e.showOfficialApps),c(1),w("ngIf",0===e.allAppsForType.length&&!e.showOfficialApps),c(1),w("ngIf",0!==e.allAppsForType.length)}}function mie(t,n){if(1&t&&xe(0,"app-paginator",22),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",mn(4,TP,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const gie=function(t){return{"paginator-icons-fixer":t}};let EP=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter&&this.dataSorter.setData(this.filteredApps)}set apps(e){this.allApps=e||[],this.allApps&&(this.allAppsForType=[],this.allApps.forEach(i=>{(this.showOfficialApps&&this.officialAppsList.has(i.name)||!this.showOfficialApps&&!this.officialAppsList.has(i.name))&&this.allAppsForType.push(i)}),this.dataFilterer&&this.dataFilterer.setData(this.allAppsForType))}constructor(e,i,o,s,a,l,d){this.appsService=e,this.dialog=i,this.route=o,this.router=s,this.snackbarService=a,this.translateService=l,this.storageService=d,this.listIdForOfficialApps="op",this.listIdForUserApps="up",this.officialAppsList=new Set(["skychat","skysocks","skysocks-client","vpn-client","vpn-server"]),this.showOfficialApps=!0,this.stateSortData=new Vn(["status"],"apps.apps-list.state",Zt.NumberReversed),this.nameSortData=new Vn(["name"],"apps.apps-list.app-name",Zt.Text),this.portSortData=new Vn(["port"],"apps.apps-list.port",Zt.Number),this.autoStartSortData=new Vn(["autostart"],"apps.apps-list.auto-start",Zt.Boolean),this.selections=new Map,this.appsWithoutConfig=new Set(["skychat"]),this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"apps.apps-list.filter-dialog.state",keyNameInElementsArray:"status",type:$n.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.state-options.any"},{value:"1",label:"apps.apps-list.filter-dialog.state-options.running"},{value:"0",label:"apps.apps-list.filter-dialog.state-options.stopped"}]},{filterName:"apps.apps-list.filter-dialog.name",keyNameInElementsArray:"name",type:$n.TextInput,maxlength:50},{filterName:"apps.apps-list.filter-dialog.port",keyNameInElementsArray:"port",type:$n.TextInput,maxlength:8},{filterName:"apps.apps-list.filter-dialog.autostart",keyNameInElementsArray:"autostart",type:$n.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.autostart-options.any"},{value:"true",label:"apps.apps-list.filter-dialog.autostart-options.enabled"},{value:"false",label:"apps.apps-list.filter-dialog.autostart-options.disabled"}]}],this.refreshAgain=!1,this.operationSubscriptionsGroup=[],this.navigationsSubscription=this.route.paramMap.subscribe(_=>{if(_.has("showOfficialApps")&&(this.showOfficialApps=_.get("showOfficialApps").toUpperCase()==="true".toUpperCase()),_.has("page")){let E=Number.parseInt(_.get("page"),10);(isNaN(E)||E<1)&&(E=1),this.currentPageInUrl=E,this.recalculateElementsToShow()}})}ngOnInit(){const e=this.showOfficialApps?this.listIdForOfficialApps:this.listIdForUserApps;this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,[this.stateSortData,this.nameSortData,this.portSortData,this.autoStartSortData],1,e),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataSorter&&this.dataSorter.setData(this.filteredApps),this.dataFilterer=new Nd(this.dialog,this.route,this.router,this.filterProperties,e),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(o=>{this.filteredApps=o,this.dataSorter.setData(this.filteredApps)}),this.allAppsForType&&this.dataFilterer.setData(this.allAppsForType)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}getLink(e){if("skychat"===e.name.toLocaleLowerCase()&&this.nodeIp&&0!==e.status&&2!==e.status){let i="8001";if(e.args)for(let o=0;o{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}changeStateOfSelected(e){const i=[];if(this.selections.forEach((o,s)=>{o&&(e&&(0===this.appsMap.get(s).status||2===this.appsMap.get(s).status)||!e&&0!==this.appsMap.get(s).status&&2!==this.appsMap.get(s).status)&&i.push(s)}),e)this.changeAppsValRecursively(i,!1,e);else{const o=Jt.createConfirmationDialog(this.dialog,"apps.stop-selected-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.changeAppsValRecursively(i,!1,e,o)})}}changeAutostartOfSelected(e){const i=[];this.selections.forEach((s,a)=>{s&&(e&&!this.appsMap.get(a).autostart||!e&&this.appsMap.get(a).autostart)&&i.push(a)});const o=Jt.createConfirmationDialog(this.dialog,e?"apps.enable-autostart-selected-confirmation":"apps.disable-autostart-selected-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.changeAppsValRecursively(i,!0,e,o)})}showOptionsDialog(e){const i=[{icon:"list",label:"apps.view-logs"},{icon:0===e.status||2===e.status?"play_arrow":"stop",label:"apps."+(0===e.status||2===e.status?"start-app":"stop-app")},{icon:e.autostart?"close":"done",label:e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart"}];this.appsWithoutConfig.has(e.name)||i.push({icon:"settings",label:"apps.settings"}),qr.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.viewLogs(e):2===o?this.changeAppState(e):3===o?this.changeAppAutostart(e):4===o&&this.config(e)})}changeAppState(e){if(0===e.status||2===e.status)this.changeSingleAppVal(this.startChangingAppState(e.name,!0));else{const i=Jt.createConfirmationDialog(this.dialog,"apps.stop-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppState(e.name,!1),i)})}}changeAppAutostart(e){const i=Jt.createConfirmationDialog(this.dialog,e.autostart?"apps.disable-autostart-confirmation":"apps.enable-autostart-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppAutostart(e.name,!e.autostart),i)})}changeSingleAppVal(e,i=null){this.operationSubscriptionsGroup.push(e.subscribe(()=>{i&&i.close(),setTimeout(()=>{this.refreshAgain=!0,Ct.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")},o=>{o=en(o),setTimeout(()=>{this.refreshAgain=!0,Ct.refreshCurrentDisplayedData()},50),i?i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg):this.snackbarService.showError(o)}))}viewLogs(e){0!==e.status&&2!==e.status?zee.openDialog(this.dialog,e):this.snackbarService.showError("apps.apps-list.unavailable-logs-error")}config(e){"skysocks"===e.name||"vpn-server"===e.name?qee.openDialog(this.dialog,e):"skysocks-client"===e.name||"vpn-client"===e.name?Pne.openDialog(this.dialog,e):"skychat"===e.name?this.snackbarService.showError("apps.error"):Rne.openDialog(this.dialog,e)}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredApps){const e=this.showShortList_?Vt.maxShortListElements:Vt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredApps.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.appsToShow=this.filteredApps.slice(i,i+e),this.appsMap=new Map,this.appsToShow.forEach(a=>{this.appsMap.set(a.name,a),this.selections.has(a.name)||this.selections.set(a.name,!1)});const s=[];this.selections.forEach((a,l)=>{this.appsMap.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.appsToShow=null,this.selections=new Map;this.dataSource=this.appsToShow,this.refreshAgain&&(this.refreshAgain=!1,setTimeout(()=>Ct.refreshCurrentDisplayedData(),2e3))}startChangingAppState(e,i){return this.appsService.changeAppState(Ct.getCurrentNodeKey(),e,i).pipe(ke(o=>(null!=o.status&&this.dataSource.forEach(s=>{s.name===e&&(s.status=o.status,s.detailedStatus=o.detailed_status)}),o)))}startChangingAppAutostart(e,i){return this.appsService.changeAppAutostart(Ct.getCurrentNodeKey(),e,i)}changeAppsValRecursively(e,i,o,s=null){if(!e||0===e.length)return setTimeout(()=>Ct.refreshCurrentDisplayedData(),50),this.snackbarService.showWarning("apps.operation-unnecessary"),void(s&&s.close());let a;a=i?this.startChangingAppAutostart(e[e.length-1],o):this.startChangingAppState(e[e.length-1],o),this.operationSubscriptionsGroup.push(a.subscribe(()=>{e.pop(),0===e.length?(s&&s.close(),setTimeout(()=>{this.refreshAgain=!0,Ct.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")):this.changeAppsValRecursively(e,i,o,s)},l=>{l=en(l),setTimeout(()=>{this.refreshAgain=!0,Ct.refreshCurrentDisplayedData()},50),s?s.componentInstance.showDone("confirmation.error-header-text",l.translatableErrorMsg):this.snackbarService.showError(l)}))}}return t.\u0275fac=function(e){return new(e||t)(Y(ll),Y(In),Y(Mr),Y(hn),Y(Dn),Y(To),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-node-app-list"]],inputs:{nodePK:"nodePK",nodeIp:"nodeIp",showOfficialApps:"showOfficialApps",showShortList:"showShortList",apps:"apps"},decls:33,vars:35,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"matTooltip","click"],[1,"dot-outline-white"],[3,"inline",4,"ngIf"],[1,"sortable-column",3,"click"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],[3,"class","matTooltip",4,"ngIf"],["class","red-text",3,"inline","matTooltip",4,"ngIf"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip","click"],["target","_blank","rel","noreferrer nofollow noopener","class","skychat-link",3,"href",4,"ngIf"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip","click",4,"ngIf"],[3,"matTooltip"],[1,"red-text",3,"inline","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[1,"check-part"],[1,"list-row"],[1,"margin-part"],["target","_blank","rel","noreferrer nofollow noopener","class","skychat-link",3,"href","click",4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href","click"],["mat-icon-button","",1,"transparent-button",3,"matTooltip"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,Nne,3,3,"span",2),V(3,Yne,3,3,"span",2),V(4,jne,5,4,"div",3),C(),D(5,"div",4)(6,"div",5),V(7,zne,3,4,"mat-icon",6),V(8,Une,2,1,"mat-icon",7),D(9,"mat-menu",8,9)(11,"div",10),ye("click",function(){return i.changeAllSelections(!0)}),I(12),R(13,"translate"),C(),D(14,"div",10),ye("click",function(){return i.changeAllSelections(!1)}),I(15),R(16,"translate"),C(),D(17,"div",11),ye("click",function(){return i.changeStateOfSelected(!0)}),I(18),R(19,"translate"),C(),D(20,"div",11),ye("click",function(){return i.changeStateOfSelected(!1)}),I(21),R(22,"translate"),C(),D(23,"div",11),ye("click",function(){return i.changeAutostartOfSelected(!0)}),I(24),R(25,"translate"),C(),D(26,"div",11),ye("click",function(){return i.changeAutostartOfSelected(!1)}),I(27),R(28,"translate"),C()()(),V(29,Wne,1,7,"app-paginator",12),C()(),V(30,die,41,38,"div",13),V(31,pie,7,4,"div",13),V(32,mie,1,7,"app-paginator",12)),2&e&&(w("ngClass",He(33,gie,!i.showShortList_&&i.numberOfPages>1&&i.dataSource)),c(2),w("ngIf",i.showShortList_&&i.showOfficialApps),c(1),w("ngIf",i.showShortList_&&!i.showOfficialApps),c(1),w("ngIf",i.dataFilterer.currentFiltersTexts&&i.dataFilterer.currentFiltersTexts.length>0),c(3),w("ngIf",i.allAppsForType&&i.allAppsForType.length>0),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("overlapTrigger",!1),c(3),ce(" ",H(13,21,"selection.select-all")," "),c(3),ce(" ",H(16,23,"selection.unselect-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(19,25,"selection.start-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(22,27,"selection.stop-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(25,29,"selection.enable-autostart-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(28,31,"selection.disable-autostart-all")," "),c(2),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("ngIf",!i.dataSource||0===i.dataSource.length),c(1),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource))},dependencies:[Nn,gi,Ft,Wr,el,Cn,vi,Yd,pa,Hd,fa,Og,Bd,wt],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:150px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.skychat-link[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.skychat-link[_ngcontent-%COMP%] .big-action-button[_ngcontent-%COMP%]{margin-right:5px}"]}),t})(),_ie=(()=>{class t extends er{ngOnInit(){return this.dataSubscription=Ct.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps,this.nodeIp=e.ip}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-apps"]],features:[nt],decls:2,vars:10,consts:[[3,"showOfficialApps","apps","showShortList","nodePK","nodeIp"]],template:function(e,i){1&e&&xe(0,"app-node-app-list",0)(1,"app-node-app-list",0),2&e&&(w("showOfficialApps",!0)("apps",i.apps)("showShortList",!0)("nodePK",i.nodePK)("nodeIp",i.nodeIp),c(1),w("showOfficialApps",!1)("apps",i.apps)("showShortList",!0)("nodePK",i.nodePK)("nodeIp",i.nodeIp))},dependencies:[EP]}),t})();function bie(t,n){1&t&&xe(0,"app-transport-list",1),2&t&&w("node",z().node)("showShortList",!1)}let vie=(()=>{class t extends er{ngOnInit(){return this.dataSubscription=Ct.currentNode.subscribe(e=>this.node=e),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-all-transports"]],features:[nt],decls:1,vars:1,consts:[[3,"node","showShortList",4,"ngIf"],[3,"node","showShortList"]],template:function(e,i){1&e&&V(0,bie,1,2,"app-transport-list",0),2&e&&w("ngIf",i.node)},dependencies:[Ft,hP]}),t})();function yie(t,n){if(1&t&&xe(0,"app-route-list",1),2&t){const e=z();w("routes",e.routes)("showShortList",!1)("nodePK",e.nodePK)}}let Mie=(()=>{class t extends er{ngOnInit(){return this.dataSubscription=Ct.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.routes=e.routes}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-all-routes"]],features:[nt],decls:1,vars:1,consts:[[3,"routes","showShortList","nodePK",4,"ngIf"],[3,"routes","showShortList","nodePK"]],template:function(e,i){1&e&&V(0,yie,1,3,"app-route-list",0),2&e&&w("ngIf",i.routes)},dependencies:[Ft,pP]}),t})();function wie(t,n){if(1&t&&xe(0,"app-node-app-list",1),2&t){const e=z();w("apps",e.apps)("showShortList",!1)("nodePK",e.nodePK)}}let Cie=(()=>{class t extends er{ngOnInit(){return this.dataSubscription=Ct.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-all-apps"]],features:[nt],decls:1,vars:1,consts:[[3,"apps","showShortList","nodePK",4,"ngIf"],[3,"apps","showShortList","nodePK"]],template:function(e,i){1&e&&V(0,wie,1,3,"app-node-app-list",0),2&e&&w("ngIf",i.apps)},dependencies:[Ft,EP]}),t})();const xie=["button"],kie=["firstInput"],Sie=function(t){return{"element-disabled":t}};let IP=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=s,this.routeService=a}ngOnInit(){this.form=this.formBuilder.group({min:[this.data.minHops,Gt.compose([Gt.required,Gt.maxLength(3),Gt.pattern("^[0-9]+$")])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.routeService.setMinHops(this.data.nodePk,Number.parseInt(this.form.get("min").value,10)).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("router-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=en(e),this.snackbarService.showError(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr),Y(Dn),Y(fP))},t.\u0275cmp=Ze({type:t,selectors:[["app-router-config"]],viewQuery:function(e,i){if(1&e&&(_t(xie,5),_t(kie,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:21,vars:22,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","min","maxlength","3","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),I(3),R(4,"translate"),C(),D(5,"form",2)(6,"mat-form-field")(7,"div",3)(8,"label",4),I(9),R(10,"translate"),C(),xe(11,"input",5,6),C(),D(13,"mat-error")(14,"span"),I(15),R(16,"translate"),C()()()(),D(17,"app-button",7,8),ye("action",function(){return i.save()}),I(19),R(20,"translate"),C()()),2&e&&(w("headline",H(1,10,"router-config.title"))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(3),se(H(4,12,"router-config.info")),c(2),w("formGroup",i.form)("ngClass",He(20,Sie,i.disableDismiss)),c(4),se(H(10,14,"router-config.min-hops")),c(6),se(H(16,16,"router-config.min-hops-error")),c(2),w("disabled",!i.form.valid),c(2),ce(" ",H(20,18,"router-config.save-config-button")," "))},dependencies:[Nn,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Ui,ei,wt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]}),t})();const Die=["button"],Tie=["firstInput"],Lie=function(t){return{"element-disabled":t}};let Eie=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=s,this.nodeService=a,this.dialog=l}ngOnInit(){this.form=this.formBuilder.group({address:[this.data.currentAddress,Gt.compose([Gt.minLength(20),Gt.maxLength(40)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}startSaving(){if(this.form.valid&&!this.operationSubscription)if(this.form.get("address").value)this.finishSaving();else{const i=Jt.createConfirmationDialog(this.dialog,"rewards-address-config.empty-warning");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.finishSaving()})}}finishSaving(){this.button.showLoading();const e=this.form.get("address").value;let i=this.nodeService.setRewardsAddress(this.data.nodePk,e);e||(i=this.nodeService.deleteRewardsAddress(this.data.nodePk)),this.operationSubscription=i.subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("rewards-address-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=en(e),this.snackbarService.showError(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr),Y(Dn),Y(ua),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-rewards-address-config"]],viewQuery:function(e,i){if(1&e&&(_t(Die,5),_t(Tie,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:25,vars:25,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],["href","https://github.com/skycoin/skywire/blob/master/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","40","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1)(3,"span"),I(4),R(5,"translate"),C(),D(6,"a",2),I(7),R(8,"translate"),C()(),D(9,"form",3)(10,"mat-form-field")(11,"div",4)(12,"label",5),I(13),R(14,"translate"),C(),xe(15,"input",6,7),C(),D(17,"mat-error")(18,"span"),I(19),R(20,"translate"),C()()()(),D(21,"app-button",8,9),ye("action",function(){return i.startSaving()}),I(23),R(24,"translate"),C()()),2&e&&(w("headline",H(1,11,"rewards-address-config.title"))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(4),ce("",H(5,13,"rewards-address-config.info")," "),c(3),ce(" ",H(8,15,"rewards-address-config.more-info-link")," "),c(2),w("formGroup",i.form)("ngClass",He(23,Lie,i.disableDismiss)),c(4),se(H(14,17,"rewards-address-config.address")),c(6),se(H(20,19,"rewards-address-config.address-error")),c(2),w("disabled",!i.form.valid),c(2),ce(" ",H(24,21,"rewards-address-config.save-config-button")," "))},dependencies:[Nn,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Ui,ei,wt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]}),t})(),Iie=(()=>{class t{constructor(e){this.clipboardService=e,this.copyEvent=new ht,this.errorEvent=new ht,this.value=""}ngOnDestroy(){this.copyEvent.complete(),this.errorEvent.complete()}copyToClipboard(){this.clipboardService.copy(this.value)?this.copyEvent.emit(this.value):this.errorEvent.emit()}}return t.\u0275fac=function(e){return new(e||t)(Y(ef))},t.\u0275dir=Ke({type:t,selectors:[["","clipboard",""]],hostBindings:function(e,i){1&e&&ye("click",function(){return i.copyToClipboard()})},inputs:{value:["clipboard","value"]},outputs:{copyEvent:"copyEvent",errorEvent:"errorEvent"}}),t})();function Pie(t,n){if(1&t&&(Ue(0),xe(1,"app-truncated-text",3),D(2,"mat-icon",4),I(3,"filter_none"),C(),We()),2&t){const e=z();c(1),w("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.text),c(1),w("inline",!0)}}function Oie(t,n){if(1&t&&(D(0,"div",5)(1,"div",6),I(2),C(),D(3,"mat-icon",4),I(4,"filter_none"),C()()),2&t){const e=z();c(2),se(e.text),c(1),w("inline",!0)}}const Aie=function(t){return{text:t}},Fie=function(){return{"tooltip-word-break":!0}};let W1=(()=>{class t{constructor(e){this.snackbarService=e,this.short=!1,this.shortSimple=!1,this.shortTextLength=5}onCopyToClipboardClicked(){this.snackbarService.showDone("copy.copied")}}return t.\u0275fac=function(e){return new(e||t)(Y(Dn))},t.\u0275cmp=Ze({type:t,selectors:[["app-copy-to-clipboard-text"]],inputs:{text:"text",short:"short",shortSimple:"shortSimple",shortTextLength:"shortTextLength"},decls:4,vars:11,consts:[[1,"wrapper","highlight-internal-icon",3,"clipboard","matTooltip","matTooltipClass","copyEvent"],[4,"ngIf"],["class","d-flex",4,"ngIf"],[1,"text-margin",3,"short","showTooltip","shortTextLength","text"],[3,"inline"],[1,"d-flex"],[1,"single-line","text-margin"]],template:function(e,i){1&e&&(D(0,"div",0),ye("copyEvent",function(){return i.onCopyToClipboardClicked()}),R(1,"translate"),V(2,Pie,4,5,"ng-container",1),V(3,Oie,5,2,"div",2),C()),2&e&&(w("clipboard",i.text)("matTooltip",kt(1,5,i.short||i.shortSimple?"copy.tooltip-with-text":"copy.tooltip",He(8,Aie,i.text)))("matTooltipClass",qn(10,Fie)),c(2),w("ngIf",!i.shortSimple),c(1),w("ngIf",i.shortSimple))},dependencies:[Ft,Cn,vi,Iie,BI,wt],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] .text-margin[_ngcontent-%COMP%]{margin-right:5px}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.6rem;-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline!important}']}),t})();var Rie=N(6149);const Nie=["chart"];let $1=(()=>{class t{constructor(e){this.height=100,this.animated=!1,this.min=void 0,this.max=void 0,this.differ=e.find([]).create(null)}ngAfterViewInit(){this.chart=new Rie.Chart(this.chartElement.nativeElement,{type:"line",data:{labels:Array.from(Array(this.data.length).keys()),datasets:[{data:this.data,backgroundColor:["rgba(10, 15, 22, 0.4)"],borderColor:["rgba(10, 15, 22, 0.4)"],borderWidth:1}]},options:{maintainAspectRatio:!1,events:[],legend:{display:!1},tooltips:{enabled:!1},scales:{yAxes:[{display:!1,ticks:{suggestedMin:0}}],xAxes:[{display:!1}]},elements:{point:{radius:0}},layout:{padding:{left:0,right:0,top:t.topInternalMargin,bottom:0}}}}),void 0!==this.min&&void 0!==this.max&&(this.updateMinAndMax(),this.chart.update(0))}ngDoCheck(){this.differ.diff(this.data)&&this.chart&&(void 0!==this.min&&void 0!==this.max&&this.updateMinAndMax(),this.animated?this.chart.update():this.chart.update(0))}ngOnDestroy(){this.chart&&this.chart.destroy()}updateMinAndMax(){this.chart.options.scales={yAxes:[{display:!1,ticks:{min:this.min,max:this.max}}],xAxes:[{display:!1}]}}}return t.topInternalMargin=5,t.\u0275fac=function(e){return new(e||t)(Y(Ku))},t.\u0275cmp=Ze({type:t,selectors:[["app-line-chart"]],viewQuery:function(e,i){if(1&e&&_t(Nie,5),2&e){let o;rt(o=ot())&&(i.chartElement=o.first)}},inputs:{data:"data",height:"height",animated:"animated",min:"min",max:"max"},decls:3,vars:2,consts:[[1,"chart-container"],["chart",""]],template:function(e,i){1&e&&(D(0,"div",0),xe(1,"canvas",null,1),C()),2&e&&di("height: "+i.height+"px;")},styles:[".chart-container[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden;border-radius:10px}"]}),t})();const PP=function(){return{showValue:!0}},OP=function(){return{showUnit:!0}};function Yie(t,n){if(1&t&&(D(0,"div",1),xe(1,"app-line-chart",2),D(2,"div",3)(3,"span",4),I(4),R(5,"translate"),C(),D(6,"span",5)(7,"span",6),I(8),R(9,"autoScale"),C(),D(10,"span",7),I(11),R(12,"autoScale"),C()()()()),2&t){const e=z();c(1),w("data",e.trafficData.sentHistory),c(3),se(H(5,4,"common.uploaded")),c(4),se(kt(9,6,e.trafficData.totalSent,qn(12,PP))),c(3),se(kt(12,9,e.trafficData.totalSent,qn(13,OP)))}}function Hie(t,n){if(1&t&&(D(0,"div",1),xe(1,"app-line-chart",2),D(2,"div",3)(3,"span",4),I(4),R(5,"translate"),C(),D(6,"span",5)(7,"span",6),I(8),R(9,"autoScale"),C(),D(10,"span",7),I(11),R(12,"autoScale"),C()()()()),2&t){const e=z();c(1),w("data",e.trafficData.receivedHistory),c(3),se(H(5,4,"common.downloaded")),c(4),se(kt(9,6,e.trafficData.totalReceived,qn(12,PP))),c(3),se(kt(12,9,e.trafficData.totalReceived,qn(13,OP)))}}let Bie=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-charts"]],inputs:{trafficData:"trafficData"},decls:2,vars:2,consts:[["class","small-rounded-elevated-box chart",4,"ngIf"],[1,"small-rounded-elevated-box","chart"],[3,"data"],[1,"info"],[1,"text"],[1,"rate"],[1,"value"],[1,"unit"]],template:function(e,i){1&e&&(V(0,Yie,13,14,"div",0),V(1,Hie,13,14,"div",0)),2&e&&(w("ngIf",i.trafficData),c(1),w("ngIf",i.trafficData))},dependencies:[Ft,$1,wt,sf],styles:[".chart[_ngcontent-%COMP%]{position:relative;margin-bottom:20px}.chart[_ngcontent-%COMP%]:last-child{margin-bottom:10px}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;display:flex;justify-content:space-between;align-items:flex-end;padding:10px;width:100%}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#f8f9f9}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.text[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .unit[_ngcontent-%COMP%]{font-size:.8rem;padding-left:5px}"]}),t})();function Vie(t,n){if(1&t&&(D(0,"span",4)(1,"span",5),I(2),R(3,"translate"),C(),xe(4,"app-copy-to-clipboard-text",9),C()),2&t){const e=z(2);c(2),ce("",H(3,2,"node.details.node-info.public-ip")," "),c(2),Ln("text",e.node.publicIp)}}function jie(t,n){if(1&t&&(D(0,"span",4)(1,"span",5),I(2),R(3,"translate"),C(),xe(4,"app-copy-to-clipboard-text",9),C()),2&t){const e=z(2);c(2),ce("",H(3,2,"node.details.node-info.ip")," "),c(2),Ln("text",e.node.ip)}}function zie(t,n){if(1&t&&(Ue(0),xe(1,"app-copy-to-clipboard-text",9),We()),2&t){const e=z(2);c(1),Ln("text",e.node.dmsgServerPk)}}function Uie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"node.details.node-info.no-dmsg-server")," "))}function Wie(t,n){if(1&t&&(D(0,"span",4)(1,"span",5),I(2),R(3,"translate"),C(),I(4),C()),2&t){const e=z(2);c(2),ce("",H(3,2,"node.details.node-info.skybian-version")," "),c(2),ce(" ",e.node.skybianBuildVersion," ")}}const G1=function(t){return{time:t}};function $ie(t,n){if(1&t&&(D(0,"mat-icon",16),R(1,"translate"),I(2," info "),C()),2&t){const e=z(2);w("inline",!0)("matTooltip",kt(1,2,"node.details.node-info.time.minutes",He(5,G1,e.timeOnline.totalMinutes)))}}function Gie(t,n){if(1&t&&(Ue(0),xe(1,"app-copy-to-clipboard-text",18),D(2,"a",19)(3,"mat-icon",20),R(4,"translate"),I(5," open_in_browser "),C()(),We()),2&t){const e=z(2);c(1),Ln("text",e.node.rewardsAddress),c(1),w("href","https://explorer.skycoin.com/app/address/"+e.node.rewardsAddress,Vo),c(1),w("inline",!0)("matTooltip",H(4,4,"node.details.rewards-info.open-in-explorer"))}}function qie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),D(3,"mat-icon",16),R(4,"translate"),I(5,"info"),C(),We()),2&t&&(c(1),ce(" ",H(2,3,"node.details.rewards-info.not-registered")," "),c(2),w("inline",!0)("matTooltip",H(4,5,"node.details.rewards-info.not-registered-info")))}function Kie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"node.details.rewards-info.change-address-button")," "))}function Zie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"node.details.rewards-info.set-address-button")," "))}function Xie(t,n){if(1&t){const e=et();D(0,"div",1)(1,"div",2)(2,"span",3),I(3),R(4,"translate"),C(),D(5,"span",4)(6,"span",5),I(7),R(8,"translate"),C(),D(9,"span",6),ye("click",function(){return Pe(e),Oe(z().showEditLabelDialog())}),D(10,"span",7),I(11),C(),D(12,"mat-icon",8),I(13,"edit"),C()()(),D(14,"span",4)(15,"span",5),I(16),R(17,"translate"),C(),xe(18,"app-copy-to-clipboard-text",9),C(),D(19,"span",4)(20,"span",5),I(21),R(22,"translate"),C(),I(23),R(24,"translate"),C(),V(25,Vie,5,4,"span",10),V(26,jie,5,4,"span",10),D(27,"span",4)(28,"span",5),I(29),R(30,"translate"),C(),V(31,zie,2,1,"ng-container",11),V(32,Uie,3,3,"ng-container",11),C(),D(33,"span",4)(34,"span",5),I(35),R(36,"translate"),C(),I(37),R(38,"translate"),C(),D(39,"span",4)(40,"span",5),I(41),R(42,"translate"),C(),I(43),R(44,"translate"),C(),D(45,"span",4)(46,"span",5),I(47),R(48,"translate"),C(),I(49),R(50,"translate"),C(),V(51,Wie,5,4,"span",10),D(52,"span",4)(53,"span",5),I(54),R(55,"translate"),C(),I(56),R(57,"translate"),V(58,$ie,3,7,"mat-icon",12),C()(),xe(59,"div",13),D(60,"div",2)(61,"span",3),I(62),R(63,"translate"),C(),D(64,"span",4)(65,"span",5),I(66),R(67,"translate"),C(),V(68,Gie,6,6,"ng-container",11),V(69,qie,6,7,"ng-container",11),C(),D(70,"div",14)(71,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeRewardsAddressConfig())}),V(72,Kie,3,3,"ng-container",11),V(73,Zie,3,3,"ng-container",11),C()()(),xe(74,"div",13),D(75,"div",2)(76,"span",3),I(77),R(78,"translate"),C(),D(79,"span",4)(80,"span",5),I(81),R(82,"translate"),C(),I(83),R(84,"translate"),D(85,"mat-icon",16),R(86,"translate"),I(87,"info"),C()(),D(88,"div",14)(89,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeTransportsConfig())}),I(90),R(91,"translate"),C()()(),xe(92,"div",13),D(93,"div",2)(94,"span",3),I(95),R(96,"translate"),C(),D(97,"span",4)(98,"span",5),I(99),R(100,"translate"),C(),I(101),C(),D(102,"div",14)(103,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeRouterConfig())}),I(104),R(105,"translate"),C()()(),xe(106,"div",13),D(107,"div",2)(108,"span",3),I(109),R(110,"translate"),C(),D(111,"span",4)(112,"span",5),I(113),R(114,"translate"),C(),xe(115,"i"),I(116),R(117,"translate"),C()(),xe(118,"div",13),D(119,"div",2)(120,"span",3),I(121),R(122,"translate"),C(),xe(123,"app-charts",17),C()()}if(2&t){const e=z();c(3),se(H(4,49,"node.details.node-info.title")),c(4),ce("",H(8,51,"node.details.node-info.label")," "),c(4),se(e.node.label),c(1),w("inline",!0),c(4),ce("",H(17,53,"node.details.node-info.public-key")," "),c(2),Ln("text",e.node.localPk),c(3),ce("",H(22,55,"node.details.node-info.symmetic-nat")," "),c(2),ce(" ",H(24,57,e.node.isSymmeticNat?"common.yes":"common.no")," "),c(2),w("ngIf",!e.node.isSymmeticNat),c(1),w("ngIf",e.node.ip),c(3),ce("",H(30,59,"node.details.node-info.dmsg-server")," "),c(2),w("ngIf",e.hasDmsgServer()),c(1),w("ngIf",!e.hasDmsgServer()),c(3),ce("",H(36,61,"node.details.node-info.ping")," "),c(2),ce(" ",kt(38,63,"common.time-in-ms",He(107,G1,e.node.roundTripPing))," "),c(4),ce("",H(42,66,"node.details.node-info.node-version")," "),c(2),ce(" ",e.node.version?e.node.version:H(44,68,"common.unknown")," "),c(4),ce("",H(48,70,"node.details.node-info.build-type")," "),c(2),ce(" ",e.node.buildTag?e.node.buildTag:H(50,72,"node.details.node-info.unknown-build")," "),c(2),w("ngIf",e.node.skybianBuildVersion),c(3),ce("",H(55,74,"node.details.node-info.time.title")," "),c(2),ce(" ",kt(57,76,"node.details.node-info.time."+e.timeOnline.translationVarName,He(109,G1,e.timeOnline.elapsedTime))," "),c(2),w("ngIf",e.timeOnline.totalMinutes>60),c(4),se(H(63,79,"node.details.rewards-info.title")),c(4),ce("",H(67,81,"node.details.rewards-info.rewards-address")," "),c(2),w("ngIf",e.node.rewardsAddress),c(1),w("ngIf",!e.node.rewardsAddress),c(2),w("forDarkBackground",!0),c(1),w("ngIf",e.node.rewardsAddress),c(1),w("ngIf",!e.node.rewardsAddress),c(4),se(H(78,83,"node.details.transports-info.title")),c(4),ce("",H(82,85,"node.details.transports-info.autoconnect")," "),c(2),ce(" ",H(84,87,"node.details.transports-info."+(e.node.autoconnectTransports?"enabled":"disabled"))," "),c(2),w("inline",!0)("matTooltip",H(86,89,"node.details.transports-info.autoconnect-info")),c(4),w("forDarkBackground",!0),c(1),ce(" ",H(91,91,"node.details.transports-info."+(e.node.autoconnectTransports?"disable":"enable")+"-button")," "),c(5),se(H(96,93,"node.details.router-info.title")),c(4),ce("",H(100,95,"node.details.router-info.min-hops")," "),c(2),ce(" ",e.node.minHops," "),c(2),w("forDarkBackground",!0),c(1),ce(" ",H(105,97,"node.details.router-info.change-config-button")," "),c(5),ce("",H(110,99,"node.details.node-health.title")," "),c(4),se(H(114,101,"node.details.node-health.uptime-tracker")),c(2),eo(e.nodeHealthClass),c(1),ce(" ",H(117,103,e.nodeHealthText)," "),c(5),se(H(122,105,"node.details.node-traffic-data")),c(2),w("trafficData",e.trafficData)}}let AP=(()=>{class t{set nodeInfo(e){this.node=e,this.timeOnline=Pg.getElapsedTime(e.secondsOnline),e.health&&e.health.servicesHealth===ro.Healthy?(this.nodeHealthText="node.statuses.online",this.nodeHealthClass="dot-green"):e.health&&e.health.servicesHealth===ro.Unhealthy?(this.nodeHealthText="node.statuses.partially-online",this.nodeHealthClass="dot-yellow blinking"):e.health&&e.health.servicesHealth===ro.Connecting?(this.nodeHealthText="node.statuses.connecting",this.nodeHealthClass="dot-outline-gray"):(this.nodeHealthText="node.statuses.unknown",this.nodeHealthClass="dot-outline-gray")}constructor(e,i,o,s){this.dialog=e,this.storageService=i,this.transportService=o,this.snackbarService=s}ngOnDestroy(){this.autoconnectSubscription&&this.autoconnectSubscription.unsubscribe()}showEditLabelDialog(){let e=this.storageService.getLabelInfo(this.node.localPk);e||(e={id:this.node.localPk,label:"",identifiedElementType:Xi.Node}),N1.openDialog(this.dialog,e).afterClosed().subscribe(i=>{i&&Ct.refreshCurrentDisplayedData()})}changeRewardsAddressConfig(){Eie.openDialog(this.dialog,{nodePk:this.node.localPk,currentAddress:this.node.rewardsAddress}).afterClosed().subscribe(i=>{i&&Ct.refreshCurrentDisplayedData()})}changeRouterConfig(){IP.openDialog(this.dialog,{nodePk:this.node.localPk,minHops:this.node.minHops}).afterClosed().subscribe(i=>{i&&Ct.refreshCurrentDisplayedData()})}hasDmsgServer(){return!(!this.node||0===this.node.dmsgServerPk.replace(/0/g,"").length)}changeTransportsConfig(){const e=Jt.createConfirmationDialog(this.dialog,this.node.autoconnectTransports?"node.details.transports-info.disable-confirmation":"node.details.transports-info.enable-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=this.transportService.changeAutoconnectSetting(this.node.localPk,!this.node.autoconnectTransports);this.autoconnectSubscription=i.subscribe(()=>{e.close(),this.snackbarService.showDone(this.node.autoconnectTransports?"node.details.transports-info.disable-done":"node.details.transports-info.enable-done"),Ct.refreshCurrentDisplayedData()},o=>{o=en(o),e.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)})})}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(Ji),Y(V1),Y(Dn))},t.\u0275cmp=Ze({type:t,selectors:[["app-node-info-content"]],inputs:{nodeInfo:"nodeInfo",trafficData:"trafficData"},decls:1,vars:1,consts:[["class","font-smaller d-flex flex-column mt-4.5",4,"ngIf"],[1,"font-smaller","d-flex","flex-column","mt-4.5"],[1,"d-flex","flex-column"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"highlight-internal-icon",3,"click"],[1,"text-with-small-right-margin"],[1,"edit-icon",3,"inline"],[3,"text"],["class","info-line",4,"ngIf"],[4,"ngIf"],[3,"inline","matTooltip",4,"ngIf"],[1,"separator"],[1,"config-button-container"],["color","primary",3,"forDarkBackground","action"],[3,"inline","matTooltip"],[1,"d-flex","flex-column","justify-content-end","mt-3",3,"trafficData"],[1,"text-with-right-margin",3,"text"],["target","_blank","rel","noreferrer nofollow noopener",3,"href"],[1,"link-icon","transparent-button",3,"inline","matTooltip"]],template:function(e,i){1&e&&V(0,Xie,124,111,"div",0),2&e&&w("ngIf",i.node)},dependencies:[Ft,Cn,vi,W1,Ui,Bie,wt],styles:[".section-title[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;text-transform:uppercase}.info-line[_ngcontent-%COMP%]{word-break:break-word;margin-top:7px}.info-line[_ngcontent-%COMP%] .text-with-right-margin[_ngcontent-%COMP%]{margin-right:5px}.info-line[_ngcontent-%COMP%] .text-with-small-right-margin[_ngcontent-%COMP%]{margin-right:3px}.info-line[_ngcontent-%COMP%] .link-icon[_ngcontent-%COMP%]{font-size:20px;line-height:1;color:#fff!important;cursor:pointer}.info-line[_ngcontent-%COMP%] .edit-icon[_ngcontent-%COMP%]{display:inline!important}.info-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px;-webkit-user-select:none;user-select:none}.info-line[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:7px}.info-line[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{opacity:.75}.separator[_ngcontent-%COMP%]{width:100%;height:0px;margin:1rem 0;border-top:1px solid rgba(255,255,255,.15)}.config-button-container[_ngcontent-%COMP%]{margin-top:10px;margin-left:-4px}"]}),t})(),Jie=(()=>{class t extends er{ngOnInit(){return this.nodeSubscription=Ct.currentNode.subscribe(e=>{this.node=e}),this.trafficDataSubscription=Ct.currentTrafficData.subscribe(e=>{this.trafficData=e}),super.ngOnInit()}ngOnDestroy(){this.nodeSubscription.unsubscribe(),this.trafficDataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-node-info"]],features:[nt],decls:1,vars:2,consts:[[3,"nodeInfo","trafficData"]],template:function(e,i){1&e&&xe(0,"app-node-info-content",0),2&e&&w("nodeInfo",i.node)("trafficData",i.trafficData)},dependencies:[AP]}),t})();const Qie=function(){return["settings.title","labels.title"]};let ere=(()=>{class t{constructor(e){this.router=e,this.tabsData=[],this.returnButtonText="settings.title",this.tabsData=[{icon:"view_headline",label:"labels.list-title",linkParts:[]}]}performAction(e){null===e&&this.router.navigate(["settings"])}}return t.\u0275fac=function(e){return new(e||t)(Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-all-labels"]],decls:5,vars:6,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","showUpdateButton","returnText","optionSelected"],[1,"content","col-12"],[3,"showShortList"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"app-top-bar",2),ye("optionSelected",function(s){return i.performAction(s)}),C()(),D(3,"div",3),xe(4,"app-label-list",4),C()()),2&e&&(c(2),w("titleParts",qn(5,Qie))("tabsData",i.tabsData)("showUpdateButton",!1)("returnText",i.returnButtonText),c(2),w("showShortList",!1))},dependencies:[sc,dP]}),t})();const tre=["firstInput"];function nre(t,n){1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),se(H(3,1,"vpn.server-list.add-server-dialog.pk-length-error")))}function ire(t,n){1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.add-server-dialog.pk-chars-error")))}let rre=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l,d,_){this.dialogRef=e,this.data=i,this.formBuilder=o,this.dialog=s,this.router=a,this.vpnClientService=l,this.vpnSavedDataService=d,this.snackbarService=_}ngOnInit(){this.form=this.formBuilder.group({pk:["",Gt.compose([Gt.required,Gt.minLength(66),Gt.maxLength(66),Gt.pattern("^[0-9a-fA-F]+$")])],password:[""],name:[""],note:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){if(!this.form.valid)return;const e={pk:this.form.get("pk").value,name:this.form.get("name").value,note:this.form.get("note").value};lr.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,this.dialogRef,this.data,null,null,e,this.form.get("password").value)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr),Y(In),Y(hn),Y(oc),Y(rc),Y(Dn))},t.\u0275cmp=Ze({type:t,selectors:[["app-add-vpn-server"]],viewQuery:function(e,i){if(1&e&&_t(tre,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:35,vars:23,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","pk","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],["formControlName","password","type","password","matInput",""],["formControlName","name","maxlength","100","matInput",""],["formControlName","note","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"disabled","action"]],template:function(e,i){if(1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C(),D(10,"mat-error"),V(11,nre,4,3,"ng-container",6),C(),V(12,ire,3,3,"ng-template",null,7,Es),C(),D(14,"mat-form-field")(15,"div",2)(16,"label",3),I(17),R(18,"translate"),C(),xe(19,"input",8),C()(),D(20,"mat-form-field")(21,"div",2)(22,"label",3),I(23),R(24,"translate"),C(),xe(25,"input",9),C()(),D(26,"mat-form-field")(27,"div",2)(28,"label",3),I(29),R(30,"translate"),C(),xe(31,"input",10),C()()(),D(32,"app-button",11),ye("action",function(){return i.process()}),I(33),R(34,"translate"),C()()),2&e){const o=ci(13);w("headline",H(1,11,"vpn.server-list.add-server-dialog.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,13,"vpn.server-list.add-server-dialog.pk-label")),c(5),w("ngIf",!i.form.get("pk").hasError("pattern"))("ngIfElse",o),c(6),se(H(18,15,"vpn.server-list.add-server-dialog.password-label")),c(6),se(H(24,17,"vpn.server-list.add-server-dialog.name-label")),c(6),se(H(30,19,"vpn.server-list.add-server-dialog.note-label")),c(3),w("disabled",!i.form.valid),c(1),ce(" ",H(34,21,"vpn.server-list.add-server-dialog.use-server-button")," ")}},dependencies:[Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Ui,ei,wt]}),t})();class ore{constructor(){this.countryCode="ZZ"}}let sre=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type=vpn"}getServers(){return this.servers?$e(this.servers):this.http.get(this.discoveryServiceUrl).pipe(rf(e=>e.pipe(Ti(4e3))),ke(e=>{const i=[];return e&&e.forEach(o=>{const s=new ore,a=o.address.split(":");2===a.length&&(s.pk=a[0],s.location="",o.geo&&(o.geo.country&&(s.countryCode=o.geo.country),o.geo.region&&(s.location=o.geo.region)),s.name=a[0],s.note="",i.push(s))}),this.servers=i,i}))}}return t.\u0275fac=function(e){return new(e||t)(we(Vl))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function are(t,n){1&t&&Jo(0)}const FP=function(){return["vpn.title"]};function lre(t,n){if(1&t&&(D(0,"div",3)(1,"div",4),xe(2,"app-top-bar",5),D(3,"div",6)(4,"div",7)(5,"div",8),V(6,are,1,0,"ng-container",9),C()()()(),xe(7,"app-loading-indicator",10),C()),2&t){const e=z(),i=ci(2);c(2),w("titleParts",qn(6,FP))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(4),w("ngTemplateOutlet",i)}}function cre(t,n){1&t&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&t&&(c(2),se(H(3,1,"vpn.server-list.tabs.public")))}const Rg=function(t,n){return["/vpn",t,"servers",n,1]};function dre(t,n){if(1&t&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&t){const e=z(2);w("routerLink",mn(4,Rg,e.currentLocalPk,e.lists.Public)),c(2),se(H(3,2,"vpn.server-list.tabs.public"))}}function ure(t,n){1&t&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&t&&(c(2),se(H(3,1,"vpn.server-list.tabs.history")))}function hre(t,n){if(1&t&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&t){const e=z(2);w("routerLink",mn(4,Rg,e.currentLocalPk,e.lists.History)),c(2),se(H(3,2,"vpn.server-list.tabs.history"))}}function fre(t,n){1&t&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&t&&(c(2),se(H(3,1,"vpn.server-list.tabs.favorites")))}function pre(t,n){if(1&t&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&t){const e=z(2);w("routerLink",mn(4,Rg,e.currentLocalPk,e.lists.Favorites)),c(2),se(H(3,2,"vpn.server-list.tabs.favorites"))}}function mre(t,n){1&t&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&t&&(c(2),se(H(3,1,"vpn.server-list.tabs.blocked")))}function gre(t,n){if(1&t&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&t){const e=z(2);w("routerLink",mn(4,Rg,e.currentLocalPk,e.lists.Blocked)),c(2),se(H(3,2,"vpn.server-list.tabs.blocked"))}}function _re(t,n){1&t&&xe(0,"br")}function bre(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function vre(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function yre(t,n){if(1&t&&(D(0,"div",28)(1,"span"),I(2),R(3,"translate"),C(),V(4,bre,3,3,"ng-container",21),V(5,vre,2,1,"ng-container",21),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function Mre(t,n){if(1&t){const e=et();D(0,"div",25),ye("click",function(){return Pe(e),Oe(z(3).dataFilterer.removeFilters())}),D(1,"div",26)(2,"mat-icon",19),I(3,"search"),C(),I(4),R(5,"translate"),C(),V(6,yre,6,5,"div",27),C()}if(2&t){const e=z(3);c(2),w("inline",!0),c(2),ce(" ",H(5,3,"vpn.server-list.current-filters"),""),c(2),w("ngForOf",e.dataFilterer.currentFiltersTexts)}}function wre(t,n){if(1&t&&(Ue(0),V(1,_re,1,0,"br",21),V(2,Mre,7,5,"div",24),We()),2&t){const e=z(2);c(1),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(1),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0)}}const Cre=function(t){return{deactivated:t}};function xre(t,n){if(1&t){const e=et();D(0,"div",11)(1,"div",12)(2,"div",13)(3,"div",14),V(4,cre,4,3,"div",15),V(5,dre,4,7,"a",16),V(6,ure,4,3,"div",15),V(7,hre,4,7,"a",16),V(8,fre,4,3,"div",15),V(9,pre,4,7,"a",16),V(10,mre,4,3,"div",15),V(11,gre,4,7,"a",16),C()()()(),D(12,"div",17)(13,"div",12)(14,"div",13)(15,"div",14)(16,"div",18),ye("click",function(){Pe(e);const o=z();return Oe(o.dataFilterer?o.dataFilterer.changeFilters():null)}),R(17,"translate"),D(18,"span")(19,"mat-icon",19),I(20,"search"),C()()()()()()(),D(21,"div",20)(22,"div",12)(23,"div",13)(24,"div",14)(25,"div",18),ye("click",function(){return Pe(e),Oe(z().enterManually())}),R(26,"translate"),D(27,"span")(28,"mat-icon",19),I(29,"add"),C()()()()()()(),V(30,wre,3,2,"ng-container",21)}if(2&t){const e=z();c(4),w("ngIf",e.currentList===e.lists.Public),c(1),w("ngIf",e.currentList!==e.lists.Public),c(1),w("ngIf",e.currentList===e.lists.History),c(1),w("ngIf",e.currentList!==e.lists.History),c(1),w("ngIf",e.currentList===e.lists.Favorites),c(1),w("ngIf",e.currentList!==e.lists.Favorites),c(1),w("ngIf",e.currentList===e.lists.Blocked),c(1),w("ngIf",e.currentList!==e.lists.Blocked),c(1),w("ngClass",He(18,Cre,e.loading)),c(4),w("matTooltip",H(17,14,"filters.filter-info")),c(3),w("inline",!0),c(6),w("matTooltip",H(26,16,"vpn.server-list.add-manually-info")),c(3),w("inline",!0),c(2),w("ngIf",e.dataFilterer)}}function kre(t,n){1&t&&Jo(0)}function Sre(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(5);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Dre(t,n){if(1&t){const e=et();D(0,"th",50),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.dateSortData))}),R(1,"translate"),D(2,"div",43)(3,"div",44),I(4),R(5,"translate"),C(),V(6,Sre,2,2,"mat-icon",41),C()()}if(2&t){const e=z(4);w("matTooltip",H(1,3,"vpn.server-list.date-info")),c(4),ce(" ",H(5,5,"vpn.server-list.date-small-table-label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.dateSortData)}}function Tre(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Lre(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Ere(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Ire(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Pre(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Ore(t,n){if(1&t&&(D(0,"td",64),I(1),R(2,"date"),C()),2&t){const e=z().$implicit;c(1),ce(" ",kt(2,1,e.lastUsed,"yyyy/MM/dd, H:mm a")," ")}}function Are(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),ce(" ",e.location," ")}}function Fre(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"vpn.server-list.unknown")," "))}const Rre=function(t,n){return{custom:t,original:n}};function Nre(t,n){if(1&t&&(D(0,"mat-icon",65),ye("click",function(i){return i.stopPropagation()}),R(1,"translate"),I(2,"info_outline"),C()),2&t){const e=z().$implicit,i=z(4);w("inline",!0)("matTooltip",kt(1,2,i.getNoteVar(e),mn(5,Rre,e.personalNote,e.note)))}}const Yre=function(t){return{"selectable click-effect":t}};function Hre(t,n){if(1&t){const e=et();D(0,"tr",51),ye("click",function(){const s=Pe(e).$implicit,a=z(4);return Oe(a.currentList!==a.lists.Blocked?a.selectServer(s):null)}),V(1,Ore,3,4,"td",52),D(2,"td",53)(3,"div",54),xe(4,"div",55),C()(),D(5,"td",56),xe(6,"app-vpn-server-name",57),C(),D(7,"td",58),V(8,Are,2,1,"ng-container",21),V(9,Fre,3,3,"ng-container",21),C(),D(10,"td",59)(11,"app-copy-to-clipboard-text",60),ye("click",function(o){return o.stopPropagation()}),C()(),D(12,"td",61),V(13,Nre,3,8,"mat-icon",62),C(),D(14,"td",48)(15,"button",63),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),Oe(l.openOptions(a))}),R(16,"translate"),D(17,"mat-icon",19),I(18,"settings"),C()()()()}if(2&t){const e=n.$implicit,i=z(4);w("ngClass",He(23,Yre,i.currentList!==i.lists.Blocked)),c(1),w("ngIf",i.currentList===i.lists.History),c(3),di("background-image: url('assets/img/big-flags/"+e.countryCode.toLocaleLowerCase()+".png');"),w("matTooltip",i.getCountryName(e.countryCode)),c(2),w("isCurrentServer",i.currentServer&&e.pk===i.currentServer.pk)("isFavorite",e.flag===i.serverFlags.Favorite&&i.currentList!==i.lists.Favorites)("isBlocked",e.flag===i.serverFlags.Blocked&&i.currentList!==i.lists.Blocked)("isInHistory",e.inHistory&&i.currentList!==i.lists.History)("hasPassword",e.usedWithPassword)("name",e.name)("pk",e.pk)("customName",e.customName)("defaultName","vpn.server-list.none"),c(2),w("ngIf",e.location),c(1),w("ngIf",!e.location),c(2),w("shortSimple",!0)("text",e.pk),c(2),w("ngIf",e.note||e.personalNote),c(2),w("matTooltip",H(16,21,"vpn.server-options.tooltip")),c(2),w("inline",!0)}}const Bre=function(t,n){return{"public-pk-column":t,"history-pk-column":n}};function Vre(t,n){if(1&t){const e=et();D(0,"table",38)(1,"tr"),V(2,Dre,7,7,"th",39),D(3,"th",40),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.countrySortData))}),R(4,"translate"),D(5,"mat-icon",19),I(6,"flag"),C(),V(7,Tre,2,2,"mat-icon",41),C(),D(8,"th",42),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.nameSortData))}),D(9,"div",43)(10,"div",44),I(11),R(12,"translate"),C(),V(13,Lre,2,2,"mat-icon",41),C()(),D(14,"th",45),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.locationSortData))}),D(15,"div",43)(16,"div",44),I(17),R(18,"translate"),C(),V(19,Ere,2,2,"mat-icon",41),C()(),D(20,"th",46),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.pkSortData))}),R(21,"translate"),D(22,"div",43)(23,"div",44),I(24),R(25,"translate"),C(),V(26,Ire,2,2,"mat-icon",41),C()(),D(27,"th",47),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.noteSortData))}),R(28,"translate"),D(29,"div",43)(30,"mat-icon",19),I(31,"info_outline"),C(),V(32,Pre,2,2,"mat-icon",41),C()(),xe(33,"th",48),C(),V(34,Hre,19,25,"tr",49),C()}if(2&t){const e=z(3);c(2),w("ngIf",e.currentList===e.lists.History),c(1),w("matTooltip",H(4,16,"vpn.server-list.country-info")),c(2),w("inline",!0),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.countrySortData),c(4),ce(" ",H(12,18,"vpn.server-list.name-small-table-label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.nameSortData),c(4),ce(" ",H(18,20,"vpn.server-list.location-small-table-label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.locationSortData),c(1),w("ngClass",mn(28,Bre,e.currentList===e.lists.Public,e.currentList===e.lists.History))("matTooltip",H(21,22,"vpn.server-list.public-key-info")),c(4),ce(" ",H(25,24,"vpn.server-list.public-key-small-table-label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.pkSortData),c(1),w("matTooltip",H(28,26,"vpn.server-list.note-info")),c(3),w("inline",!0),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.noteSortData),c(2),w("ngForOf",e.dataSource)}}function jre(t,n){if(1&t&&(D(0,"div",35)(1,"div",36),V(2,Vre,35,31,"table",37),C()()),2&t){const e=z(2);c(2),w("ngIf",e.dataSource.length>0)}}const zre=function(t,n){return["/vpn",t,"servers",n]};function Ure(t,n){if(1&t&&xe(0,"app-paginator",66),2&t){const e=z(2);w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",mn(4,zre,e.currentLocalPk,e.currentList))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Wre(t,n){1&t&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.empty-discovery")))}function $re(t,n){1&t&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.empty-history")))}function Gre(t,n){1&t&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.empty-favorites")))}function qre(t,n){1&t&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.empty-blocked")))}function Kre(t,n){1&t&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.empty-with-filter")))}function Zre(t,n){if(1&t&&(D(0,"div",35)(1,"div",67)(2,"mat-icon",68),I(3,"warning"),C(),V(4,Wre,3,3,"span",69),V(5,$re,3,3,"span",69),V(6,Gre,3,3,"span",69),V(7,qre,3,3,"span",69),V(8,Kre,3,3,"span",69),C()()),2&t){const e=z(2);c(2),w("inline",!0),c(2),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.Public),c(1),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.History),c(1),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.Favorites),c(1),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.Blocked),c(1),w("ngIf",0!==e.allServers.length)}}const Xre=function(t){return{"mb-3":t}};function Jre(t,n){if(1&t&&(D(0,"div",29)(1,"div",30),xe(2,"app-top-bar",5),C(),D(3,"div",31)(4,"div",7)(5,"div",32),V(6,kre,1,0,"ng-container",9),C(),V(7,jre,3,1,"div",33),V(8,Ure,1,7,"app-paginator",34),V(9,Zre,9,6,"div",33),C()()()),2&t){const e=z(),i=ci(2);c(2),w("titleParts",qn(10,FP))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(3),w("ngClass",He(11,Xre,!e.dataFilterer.currentFiltersTexts||e.dataFilterer.currentFiltersTexts.length<1)),c(1),w("ngTemplateOutlet",i),c(1),w("ngIf",0!==e.dataSource.length),c(1),w("ngIf",e.numberOfPages>1),c(1),w("ngIf",0===e.dataSource.length)}}var ri=(()=>((ri=ri||{}).Public="public",ri.History="history",ri.Favorites="favorites",ri.Blocked="blocked",ri))();let RP=(()=>{class t extends er{constructor(e,i,o,s,a,l,d,_,E){super(),this.dialog=e,this.router=i,this.translateService=o,this.route=s,this.vpnClientDiscoveryService=a,this.vpnClientService=l,this.vpnSavedDataService=d,this.snackbarService=_,this.storageService=E,this.persistentServerDataResponseKey="serv-dat-response",this.maxFullListElements=50,this.dateSortData=new Vn(["lastUsed"],"vpn.server-list.date-small-table-label",Zt.NumberReversed),this.countrySortData=new Vn(["countryName"],"vpn.server-list.country-small-table-label",Zt.Text),this.nameSortData=new Vn(["name"],"vpn.server-list.name-small-table-label",Zt.Text),this.locationSortData=new Vn(["location"],"vpn.server-list.location-small-table-label",Zt.Text),this.pkSortData=new Vn(["pk"],"vpn.server-list.public-key-small-table-label",Zt.Text),this.noteSortData=new Vn(["note"],"vpn.server-list.note-small-table-label",Zt.Text),this.loading=!0,this.loadingBackendData=!0,this.tabsData=lr.vpnTabsData,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.currentList=ri.Public,this.vpnRunning=!1,this.serverFlags=Pn,this.lists=ri,this.initialLoadStarted=!1,this.navigationsSubscription=s.paramMap.subscribe(F=>{if(F.has("type")?F.get("type")===ri.Favorites?(this.currentList=ri.Favorites,this.listId="vfs"):F.get("type")===ri.Blocked?(this.currentList=ri.Blocked,this.listId="vbs"):F.get("type")===ri.History?(this.currentList=ri.History,this.listId="vhs"):(this.currentList=ri.Public,this.listId="vps"):(this.currentList=ri.Public,this.listId="vps"),lr.setDefaultTabForServerList(this.currentList),F.has("key")&&(this.currentLocalPk=F.get("key"),lr.changeCurrentPk(this.currentLocalPk),this.tabsData=lr.vpnTabsData),F.has("page")){let G=Number.parseInt(F.get("page"),10);(isNaN(G)||G<1)&&(G=1),this.currentPageInUrl=G,this.recalculateElementsToShow()}this.initialLoadStarted||(this.initialLoadStarted=!0,this.loadData(!0))}),this.currentServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(F=>this.currentServer=F),this.backendDataSubscription=this.vpnClientService.backendState.subscribe(F=>{F&&(this.loadingBackendData=!1,this.vpnRunning=F.vpnClientAppData.running)})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.currentServerSubscription.unsubscribe(),this.backendDataSubscription.unsubscribe(),this.dataSortedSubscription&&this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription&&this.dataFiltererSubscription.unsubscribe(),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataFilterer&&this.dataFilterer.dispose(),this.dataSorter&&this.dataSorter.dispose()}enterManually(){rre.openDialog(this.dialog,this.currentLocalPk)}getNoteVar(e){return e.note&&e.personalNote?"vpn.server-list.notes-info":!e.note&&e.personalNote?e.personalNote:e.note}selectServer(e){const i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);if(this.snackbarService.closeCurrentIfTemporaryError(),i&&i.flag===Pn.Blocked)this.snackbarService.showError("vpn.starting-blocked-server-error",{},!0);else{if(this.currentServer&&this.currentServer.pk===e.pk){if(this.vpnRunning)this.snackbarService.showWarning("vpn.server-change.already-selected-warning");else{const o=Jt.createConfirmationDialog(this.dialog,"vpn.server-change.start-same-server-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.vpnClientService.start(),lr.redirectAfterServerChange(this.router,null,this.currentLocalPk)})}return}if(i&&i.usedWithPassword)return void JI.openDialog(this.dialog,!0).afterClosed().subscribe(o=>{o&&this.makeServerChange(e,"-"===o?null:o.substr(1))});this.makeServerChange(e,null)}}makeServerChange(e,i){lr.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,null,this.currentLocalPk,e.originalLocalData,e.originalDiscoveryData,null,i)}openOptions(e){let i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);i||(i=this.vpnSavedDataService.processFromDiscovery(e.originalDiscoveryData)),i?lr.openServerOptions(i,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe(o=>{o&&this.processAllServers()}):this.snackbarService.showError("vpn.unexpedted-error")}loadData(e){if(this.currentList===ri.Public){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientDiscoveryService.getServers();i&&(o=$e(JSON.parse(i.value))),this.dataSubscription=o.subscribe(s=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(s)),this.allServers=s.map(a=>({countryCode:a.countryCode,countryName:this.getCountryName(a.countryCode),name:a.name,customName:null,location:a.location,pk:a.pk,note:a.note,personalNote:null,originalDiscoveryData:a})),this.vpnSavedDataService.updateFromDiscovery(s),this.loading=!1,this.processAllServers(),i&&this.loadData(!1)})}else{let i;i=this.currentList===ri.History?this.vpnSavedDataService.history:this.currentList===ri.Favorites?this.vpnSavedDataService.favorites:this.vpnSavedDataService.blocked,this.dataSubscription=i.subscribe(o=>{const s=[];o.forEach(a=>{s.push({countryCode:a.countryCode,countryName:this.getCountryName(a.countryCode),name:a.name,customName:null,location:a.location,pk:a.pk,note:a.note,personalNote:null,lastUsed:a.lastUsed,inHistory:a.inHistory,flag:a.flag,originalLocalData:a})}),this.allServers=s,this.loading=!1,this.processAllServers()})}}processAllServers(){this.fillFilterPropertiesArray();const e=new Set;this.allServers.forEach((_,E)=>{e.add(_.countryCode);const F=this.vpnSavedDataService.getSavedVersion(_.pk,0===E);_.customName=F?F.customName:null,_.personalNote=F?F.personalNote:null,_.inHistory=!!F&&F.inHistory,_.flag=F?F.flag:Pn.None,_.enteredManually=!!F&&F.enteredManually,_.usedWithPassword=!!F&&F.usedWithPassword});let i=[];e.forEach(_=>{i.push({label:this.getCountryName(_),value:_,image:"/assets/img/big-flags/"+_.toLowerCase()+".png"})}),i.sort((_,E)=>_.label.localeCompare(E.label)),i=[{label:"vpn.server-list.filter-dialog.country-options.any",value:""}].concat(i),this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.country",keyNameInElementsArray:"countryCode",type:$n.Select,printableLabelsForValues:i,printableLabelGeneralSettings:{defaultImage:"/assets/img/big-flags/unknown.png",imageWidth:20,imageHeight:15}}].concat(this.filterProperties);const s=[];let a,l,d;this.currentList===ri.Public?(s.push(this.countrySortData),s.push(this.nameSortData),s.push(this.locationSortData),s.push(this.pkSortData),s.push(this.noteSortData),a=0,l=1):(this.currentList===ri.History&&s.push(this.dateSortData),s.push(this.countrySortData),s.push(this.nameSortData),s.push(this.locationSortData),s.push(this.pkSortData),s.push(this.noteSortData),a=this.currentList===ri.History?0:1,l=this.currentList===ri.History?2:3),this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,s,a,this.listId),this.dataSorter.setTieBreakerColumnIndex(l),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new Nd(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(_=>{this.filteredServers=_,this.dataSorter.setData(this.filteredServers)}),d=this.currentList===ri.Public?this.allServers.filter(_=>_.flag!==Pn.Blocked):this.allServers,this.dataFilterer.setData(d)}fillFilterPropertiesArray(){this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.name",keyNameInElementsArray:"name",secondaryKeyNameInElementsArray:"customName",type:$n.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.location",keyNameInElementsArray:"location",type:$n.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.public-key",keyNameInElementsArray:"pk",type:$n.TextInput,maxlength:100}]}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredServers){const e=this.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredServers.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.serversToShow=this.filteredServers.slice(i,i+e)}else this.serversToShow=null;this.dataSource=this.serversToShow}getCountryName(e){return ma[e.toUpperCase()]?ma[e.toUpperCase()]:e}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(hn),Y(To),Y(Mr),Y(sre),Y(oc),Y(rc),Y(Dn),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-server-list"]],features:[nt],decls:4,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["topPart",""],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[1,"loading-top-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"main-container"],[1,"width-limiter"],[1,"center-container","mt-4.5"],[4,"ngTemplateOutlet"],[1,"h-100","loading-indicator"],[1,"option-bar-container"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","allow-overflow"],[1,"option-bar"],["class","text-option selected",4,"ngIf"],["class","text-option",3,"routerLink",4,"ngIf"],[1,"option-bar-container","option-bar-margin",3,"ngClass"],[1,"icon-option",3,"matTooltip","click"],[3,"inline"],[1,"option-bar-container","option-bar-margin"],[4,"ngIf"],[1,"text-option","selected"],[1,"text-option",3,"routerLink"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"transparent-50"],["class","item",4,"ngFor","ngForOf"],[1,"item"],[1,"row"],[1,"col-12"],[1,"col-12","vpn-table-container"],[1,"center-container","mt-4.5",3,"ngClass"],["class","rounded-elevated-box",4,"ngIf"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["class","responsive-table-translucid d-none d-md-table","cellspacing","0","cellpadding","0",4,"ngIf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],["class","sortable-column date-column click-effect",3,"matTooltip","click",4,"ngIf"],[1,"sortable-column","flag-column","center","click-effect",3,"matTooltip","click"],[3,"inline",4,"ngIf"],[1,"sortable-column","name-column","click-effect",3,"click"],[1,"header-container"],[1,"header-text"],[1,"sortable-column","location-column","click-effect",3,"click"],[1,"sortable-column","pk-column","click-effect",3,"ngClass","matTooltip","click"],[1,"sortable-column","note-column","center","click-effect",3,"matTooltip","click"],[1,"actions"],[3,"ngClass","click",4,"ngFor","ngForOf"],[1,"sortable-column","date-column","click-effect",3,"matTooltip","click"],[3,"ngClass","click"],["class","date-column",4,"ngIf"],[1,"flag-column","icon-fixer"],[1,"flag"],[3,"matTooltip"],[1,"name-column"],[3,"isCurrentServer","isFavorite","isBlocked","isInHistory","hasPassword","name","pk","customName","defaultName"],[1,"location-column"],[1,"pk-column","history-pk-column"],[1,"d-inline-block","w-100",3,"shortSimple","text","click"],[1,"center","note-column"],["class","note-icon",3,"inline","matTooltip","click",4,"ngIf"],["mat-button","",1,"big-action-button","transparent-button","vpn-small-button",3,"matTooltip","click"],[1,"date-column"],[1,"note-icon",3,"inline","matTooltip","click"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(V(0,lre,8,7,"div",0),V(1,xre,31,20,"ng-template",null,1,Es),V(3,Jre,10,13,"div",2)),2&e&&(w("ngIf",i.loading||i.loadingBackendData),c(3),w("ngIf",!i.loading&&!i.loadingBackendData))},styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .note-column[_ngcontent-%COMP%], .pk-column[_ngcontent-%COMP%], .location-column[_ngcontent-%COMP%], .name-column[_ngcontent-%COMP%], .date-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.center-container[_ngcontent-%COMP%]{text-align:center}.center-container[_ngcontent-%COMP%] app-paginator[_ngcontent-%COMP%]{display:inline-block}.loading-top-container[_ngcontent-%COMP%]{z-index:1}.loading-indicator[_ngcontent-%COMP%]{padding-top:30px;padding-bottom:20px}.deactivated[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}.option-bar-container[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .allow-overflow[_ngcontent-%COMP%]{overflow:visible}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%]{display:flex;margin:-17px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{height:55px;line-height:55px;cursor:pointer;color:#fff;text-decoration:none;-webkit-user-select:none;user-select:none}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover, .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.2)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%]{transform:scale(.95)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .text-option[_ngcontent-%COMP%]{padding:0 40px;font-size:1rem}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .icon-option[_ngcontent-%COMP%]{width:55px;font-size:24px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:rgba(0,0,0,.36);cursor:unset!important}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.6)}.option-bar-margin[_ngcontent-%COMP%]{margin-left:10px}.filter-label[_ngcontent-%COMP%]{font-size:.7rem;display:inline-block;padding:5px 10px;margin-bottom:7px}.filter-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}table[_ngcontent-%COMP%]{width:100%}tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 5px!important;font-size:12px!important;font-weight:400!important}tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding-left:5px!important;padding-right:5px!important}.date-column[_ngcontent-%COMP%]{width:150px}.name-column[_ngcontent-%COMP%]{max-width:0;width:20%}.location-column[_ngcontent-%COMP%]{max-width:0;min-width:72px}.pk-column[_ngcontent-%COMP%]{max-width:0;width:25%}.history-pk-column[_ngcontent-%COMP%]{width:20%!important}.icon-fixer[_ngcontent-%COMP%]{line-height:0px}.note-column[_ngcontent-%COMP%]{max-width:0;width:3%;min-width:60px}.note-column[_ngcontent-%COMP%] .note-icon[_ngcontent-%COMP%]{opacity:.55;font-size:16px!important;display:inline}.flag-column[_ngcontent-%COMP%]{width:1px;line-height:0px}.actions[_ngcontent-%COMP%]{width:1px}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}.flag[_ngcontent-%COMP%]{width:20px;height:15px;display:inline-block;margin-right:5px;background-image:url(/assets/img/big-flags/unknown.png);background-size:contain}.flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.center[_ngcontent-%COMP%]{text-align:center}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]}),t})();function eoe(t){const{subscriber:n,counter:e,period:i}=t;n.next(e),this.schedule({subscriber:n,counter:e+1,period:i},i)}const af=function(t,n){return{"small-text-icon":t,"big-text-icon":n}};function toe(t,n){if(1&t&&(D(0,"mat-icon",4),R(1,"translate"),I(2,"done"),C()),2&t){const e=z();w("ngClass",mn(5,af,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",H(1,3,"vpn.server-conditions.selected-info"))}}function noe(t,n){if(1&t&&(D(0,"mat-icon",5),R(1,"translate"),I(2,"clear"),C()),2&t){const e=z();w("ngClass",mn(5,af,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",H(1,3,"vpn.server-conditions.blocked-info"))}}function ioe(t,n){if(1&t&&(D(0,"mat-icon",6),R(1,"translate"),I(2,"star"),C()),2&t){const e=z();w("ngClass",mn(5,af,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",H(1,3,"vpn.server-conditions.favorite-info"))}}function roe(t,n){if(1&t&&(D(0,"mat-icon",4),R(1,"translate"),I(2,"history"),C()),2&t){const e=z();w("ngClass",mn(5,af,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",H(1,3,"vpn.server-conditions.history-info"))}}function ooe(t,n){if(1&t&&(D(0,"mat-icon",4),R(1,"translate"),I(2,"lock_outlined"),C()),2&t){const e=z();w("ngClass",mn(5,af,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",H(1,3,"vpn.server-conditions.has-password-info"))}}function soe(t,n){if(1&t&&(Ue(0),I(1),D(2,"mat-icon",7),I(3,"fiber_manual_record"),C(),I(4),We()),2&t){const e=z();c(1),ce(" ",e.customName," "),c(1),w("inline",!0),c(2),ce(" ",e.name,"\n")}}function aoe(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z();c(1),se(e.customName)}}function loe(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z();c(1),se(e.name)}}function coe(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z();c(1),se(H(2,1,e.defaultName))}}let NP=(()=>{class t{constructor(){this.isCurrentServer=!1,this.isFavorite=!1,this.isBlocked=!1,this.isInHistory=!1,this.hasPassword=!1,this.name="",this.customName="",this.pk="",this.defaultName="",this.adjustIconsForBigText=!1}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-server-name"]],inputs:{isCurrentServer:"isCurrentServer",isFavorite:"isFavorite",isBlocked:"isBlocked",isInHistory:"isInHistory",hasPassword:"hasPassword",name:"name",customName:"customName",pk:"pk",defaultName:"defaultName",adjustIconsForBigText:"adjustIconsForBigText"},decls:9,vars:9,consts:[["class","server-condition-icon",3,"ngClass","inline","matTooltip",4,"ngIf"],["class","server-condition-icon red-clear-text",3,"ngClass","inline","matTooltip",4,"ngIf"],["class","server-condition-icon yellow-clear-text",3,"ngClass","inline","matTooltip",4,"ngIf"],[4,"ngIf"],[1,"server-condition-icon",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","red-clear-text",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","yellow-clear-text",3,"ngClass","inline","matTooltip"],[1,"name-separator",3,"inline"]],template:function(e,i){1&e&&(V(0,toe,3,8,"mat-icon",0),V(1,noe,3,8,"mat-icon",1),V(2,ioe,3,8,"mat-icon",2),V(3,roe,3,8,"mat-icon",0),V(4,ooe,3,8,"mat-icon",0),V(5,soe,5,3,"ng-container",3),V(6,aoe,2,1,"ng-container",3),V(7,loe,2,1,"ng-container",3),V(8,coe,3,3,"ng-container",3)),2&e&&(w("ngIf",i.isCurrentServer),c(1),w("ngIf",i.isBlocked),c(1),w("ngIf",i.isFavorite),c(1),w("ngIf",i.isInHistory),c(1),w("ngIf",i.hasPassword),c(1),w("ngIf",i.customName&&i.name&&(!i.pk||i.name!==i.pk)),c(1),w("ngIf",(!i.name||i.pk&&i.name===i.pk)&&i.customName),c(1),w("ngIf",i.name&&(!i.pk||i.name!==i.pk)&&!i.customName),c(1),w("ngIf",(!i.name||i.pk&&i.name===i.pk)&&!i.customName))},dependencies:[Nn,Ft,Cn,vi,wt],styles:[".server-condition-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;margin-right:3px;position:relative;width:14px!important;-webkit-user-select:none;user-select:none;cursor:default}.small-text-icon[_ngcontent-%COMP%]{top:2px}.big-text-icon[_ngcontent-%COMP%]{top:0}.name-separator[_ngcontent-%COMP%]{display:inline!important;font-size:8px!important;opacity:.5!important}"]}),t})();const YP=function(){return["vpn.title"]};function doe(t,n){if(1&t&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3),C(),xe(3,"app-loading-indicator"),C()),2&t){const e=z();c(2),w("titleParts",qn(5,YP))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function uoe(t,n){1&t&&xe(0,"mat-spinner",32),2&t&&w("diameter",40)}function hoe(t,n){1&t&&(D(0,"mat-icon",33),I(1,"power_settings_new"),C()),2&t&&w("inline",!0)}function foe(t,n){if(1&t){const e=et();Ue(0),D(1,"div",34),xe(2,"div",35),C(),D(3,"div",36)(4,"div",37),xe(5,"app-vpn-server-name",38),C(),D(6,"div",39),xe(7,"app-copy-to-clipboard-text",40),C()(),D(8,"div",41),xe(9,"div"),C(),D(10,"div",42)(11,"mat-icon",43),ye("click",function(){return Pe(e),Oe(z(3).openServerOptions())}),R(12,"translate"),I(13,"settings"),C()(),We()}if(2&t){const e=z(3);c(2),di("background-image: url('assets/img/big-flags/"+e.currentRemoteServer.countryCode.toLocaleLowerCase()+".png');"),w("matTooltip",e.getCountryName(e.currentRemoteServer.countryCode)),c(3),w("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),c(2),w("shortSimple",!0)("text",e.currentRemoteServer.pk),c(4),w("inline",!0)("matTooltip",H(12,13,"vpn.server-options.tooltip"))}}function poe(t,n){1&t&&(Ue(0),D(1,"div",44),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),se(H(3,1,"vpn.status-page.no-server")))}const moe=function(t,n){return{custom:t,original:n}};function goe(t,n){if(1&t&&(D(0,"div",45)(1,"mat-icon",33),I(2,"info_outline"),C(),I(3),R(4,"translate"),C()),2&t){const e=z(3);c(1),w("inline",!0),c(2),ce(" ",kt(4,2,e.getNoteVar(),mn(5,moe,e.currentRemoteServer.personalNote,e.currentRemoteServer.note))," ")}}function _oe(t,n){if(1&t&&(D(0,"div",46)(1,"mat-icon",33),I(2,"cancel"),C(),I(3),R(4,"translate"),C()),2&t){const e=z(3);c(1),w("inline",!0),c(2),vo(" ",H(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.lastErrorMsg," ")}}const HP=function(t){return{"disabled-button":t}};function boe(t,n){if(1&t){const e=et();D(0,"div",22)(1,"div",11)(2,"div",13),I(3),R(4,"translate"),C(),D(5,"div")(6,"div",23),ye("click",function(){return Pe(e),Oe(z(2).start())}),D(7,"div",24),xe(8,"div",25),C(),D(9,"div",24),xe(10,"div",26),C(),V(11,uoe,1,1,"mat-spinner",27),V(12,hoe,2,1,"mat-icon",28),C()(),D(13,"div",29),V(14,foe,14,15,"ng-container",18),V(15,poe,4,3,"ng-container",18),C(),D(16,"div"),V(17,goe,5,8,"div",30),C(),D(18,"div"),V(19,_oe,5,5,"div",31),C()()()}if(2&t){const e=z(2);c(3),se(H(4,8,"vpn.status-page.start-title")),c(3),w("ngClass",He(10,HP,e.showBusy)),c(5),w("ngIf",e.showBusy),c(1),w("ngIf",!e.showBusy),c(2),w("ngIf",e.currentRemoteServer),c(1),w("ngIf",!e.currentRemoteServer),c(2),w("ngIf",e.currentRemoteServer&&(e.currentRemoteServer.note||e.currentRemoteServer.personalNote)),c(2),w("ngIf",e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.lastErrorMsg)}}function voe(t,n){if(1&t&&(D(0,"div",77)(1,"mat-icon",33),I(2,"cancel"),C(),I(3),R(4,"translate"),C()),2&t){const e=z(3);c(1),w("inline",!0),c(2),vo(" ",H(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.connectionData.error," ")}}function yoe(t,n){1&t&&(D(0,"div"),xe(1,"mat-spinner",32),C()),2&t&&(c(1),w("diameter",24))}function Moe(t,n){1&t&&(D(0,"mat-icon",33),I(1,"power_settings_new"),C()),2&t&&w("inline",!0)}const Vd=function(t){return{showValue:!0,showUnit:!0,showPerSecond:!0,limitDecimals:!0,useBits:t}},BP=function(t){return{showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t}},VP=function(t){return{showValue:!0,showUnit:!0,useBits:t}},Ng=function(t){return{time:t}};function woe(t,n){if(1&t){const e=et();D(0,"div",47)(1,"div",11)(2,"div",48)(3,"div",49)(4,"mat-icon",33),I(5,"timer"),C(),D(6,"span"),I(7),C()()(),D(8,"div",50),I(9),R(10,"translate"),C(),D(11,"div",51)(12,"div",52),I(13),R(14,"translate"),C(),xe(15,"div"),C(),D(16,"div",53),I(17),R(18,"translate"),C(),V(19,voe,5,5,"div",54),D(20,"div",55)(21,"div",56),R(22,"translate"),D(23,"div",57),xe(24,"app-line-chart",58),C(),D(25,"div",59)(26,"div",60)(27,"div",61),I(28),R(29,"autoScale"),C(),xe(30,"div",62),C()(),D(31,"div",59)(32,"div",63)(33,"div",61),I(34),R(35,"autoScale"),C(),xe(36,"div",62),C()(),D(37,"div",59)(38,"div",64)(39,"div",61),I(40),R(41,"autoScale"),C()()(),D(42,"div",65)(43,"mat-icon",66),I(44,"keyboard_backspace"),C(),D(45,"div",67),I(46),R(47,"autoScale"),C(),D(48,"div",68),I(49),R(50,"autoScale"),R(51,"translate"),C()()(),D(52,"div",56),R(53,"translate"),D(54,"div",57),xe(55,"app-line-chart",58),C(),D(56,"div",69)(57,"div",60)(58,"div",61),I(59),R(60,"autoScale"),C(),xe(61,"div",62),C()(),D(62,"div",59)(63,"div",63)(64,"div",61),I(65),R(66,"autoScale"),C(),xe(67,"div",62),C()(),D(68,"div",59)(69,"div",64)(70,"div",61),I(71),R(72,"autoScale"),C()()(),D(73,"div",65)(74,"mat-icon",70),I(75,"keyboard_backspace"),C(),D(76,"div",67),I(77),R(78,"autoScale"),C(),D(79,"div",68),I(80),R(81,"autoScale"),R(82,"translate"),C()()()(),D(83,"div",71)(84,"div",72),R(85,"translate"),D(86,"div",57),xe(87,"app-line-chart",73),C(),D(88,"div",69)(89,"div",60)(90,"div",61),I(91),R(92,"translate"),C(),xe(93,"div",62),C()(),D(94,"div",59)(95,"div",63)(96,"div",61),I(97),R(98,"translate"),C(),xe(99,"div",62),C()(),D(100,"div",59)(101,"div",64)(102,"div",61),I(103),R(104,"translate"),C()()(),D(105,"div",65)(106,"mat-icon",33),I(107,"swap_horiz"),C(),D(108,"div"),I(109),R(110,"translate"),C()()()(),D(111,"div",74),ye("click",function(){return Pe(e),Oe(z(2).stop())}),D(112,"div",75)(113,"div",76),V(114,yoe,2,1,"div",18),V(115,Moe,2,1,"mat-icon",28),D(116,"span"),I(117),R(118,"translate"),C()()()()()()}if(2&t){const e=z(2);c(4),w("inline",!0),c(3),se(e.connectionTimeString),c(2),se(H(10,58,"vpn.connection-info.state-title")),c(4),se(H(14,60,e.currentStateText)),c(2),eo("state-line "+e.currentStateLineClass),c(2),se(H(18,62,e.currentStateText+"-info")),c(2),w("ngIf",e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.connectionData&&e.backendState.vpnClientAppData.connectionData.error),c(2),w("matTooltip",H(22,64,"vpn.status-page.upload-info")),c(3),w("animated",!1)("data",e.sentHistory)("min",e.minUploadInGraph)("max",e.maxUploadInGraph),c(4),ce(" ",kt(29,66,e.maxUploadInGraph,He(118,Vd,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",kt(35,69,e.midUploadInGraph,He(120,Vd,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",kt(41,72,e.minUploadInGraph,He(122,Vd,e.showSpeedsInBits))," "),c(3),w("inline",!0),c(3),se(kt(47,75,e.uploadSpeed,He(124,BP,e.showSpeedsInBits))),c(3),vo(" ",kt(50,78,e.totalUploaded,He(126,VP,e.showTotalsInBits))," ",H(51,81,"vpn.status-page.total-data-label")," "),c(3),w("matTooltip",H(53,83,"vpn.status-page.download-info")),c(3),w("animated",!1)("data",e.receivedHistory)("min",e.minDownloadInGraph)("max",e.maxDownloadInGraph),c(4),ce(" ",kt(60,85,e.maxDownloadInGraph,He(128,Vd,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",kt(66,88,e.midDownloadInGraph,He(130,Vd,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",kt(72,91,e.minDownloadInGraph,He(132,Vd,e.showSpeedsInBits))," "),c(3),w("inline",!0),c(3),se(kt(78,94,e.downloadSpeed,He(134,BP,e.showSpeedsInBits))),c(3),vo(" ",kt(81,97,e.totalDownloaded,He(136,VP,e.showTotalsInBits))," ",H(82,100,"vpn.status-page.total-data-label")," "),c(4),w("matTooltip",H(85,102,"vpn.status-page.latency-info")),c(3),w("animated",!1)("data",e.latencyHistory)("min",e.minLatencyInGraph)("max",e.maxLatencyInGraph),c(4),ce(" ",kt(92,104,"common."+e.getLatencyValueString(e.maxLatencyInGraph),He(138,Ng,e.getPrintableLatency(e.maxLatencyInGraph)))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",kt(98,107,"common."+e.getLatencyValueString(e.midLatencyInGraph),He(140,Ng,e.getPrintableLatency(e.midLatencyInGraph)))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",kt(104,110,"common."+e.getLatencyValueString(e.minLatencyInGraph),He(142,Ng,e.getPrintableLatency(e.minLatencyInGraph)))," "),c(3),w("inline",!0),c(3),se(kt(110,113,"common."+e.getLatencyValueString(e.latency),He(144,Ng,e.getPrintableLatency(e.latency)))),c(2),w("ngClass",He(146,HP,e.showBusy)),c(3),w("ngIf",e.showBusy),c(1),w("ngIf",!e.showBusy),c(2),se(H(118,116,"vpn.status-page.disconnect"))}}function Coe(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z(3);c(1),se(e.currentIp)}}function xoe(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"common.unknown")))}function koe(t,n){1&t&&xe(0,"mat-spinner",32),2&t&&w("diameter",20)}function Soe(t,n){1&t&&(D(0,"mat-icon",81),R(1,"translate"),I(2,"warning"),C()),2&t&&w("inline",!0)("matTooltip",H(1,2,"vpn.status-page.data.ip-problem-info"))}function Doe(t,n){if(1&t){const e=et();D(0,"mat-icon",82),ye("click",function(){return Pe(e),Oe(z(3).getIp())}),R(1,"translate"),I(2,"refresh"),C()}2&t&&w("inline",!0)("matTooltip",H(1,2,"vpn.status-page.data.ip-refresh-info"))}function Toe(t,n){if(1&t&&(D(0,"div",78),V(1,Coe,2,1,"ng-container",18),V(2,xoe,3,3,"ng-container",18),V(3,koe,1,1,"mat-spinner",27),V(4,Soe,3,4,"mat-icon",79),V(5,Doe,3,4,"mat-icon",80),C()),2&t){const e=z(2);c(1),w("ngIf",e.currentIp),c(1),w("ngIf",!e.currentIp&&!e.loadingCurrentIp),c(1),w("ngIf",e.loadingCurrentIp),c(1),w("ngIf",e.problemGettingIp),c(1),w("ngIf",!e.loadingCurrentIp)}}function Loe(t,n){1&t&&(D(0,"div",78),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"vpn.status-page.data.unavailable")," "))}function Eoe(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z(3);c(1),se(e.ipCountry)}}function Ioe(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"common.unknown")))}function Poe(t,n){1&t&&xe(0,"mat-spinner",32),2&t&&w("diameter",20)}function Ooe(t,n){1&t&&(D(0,"mat-icon",81),R(1,"translate"),I(2,"warning"),C()),2&t&&w("inline",!0)("matTooltip",H(1,2,"vpn.status-page.data.ip-country-problem-info"))}function Aoe(t,n){if(1&t&&(D(0,"div",78),V(1,Eoe,2,1,"ng-container",18),V(2,Ioe,3,3,"ng-container",18),V(3,Poe,1,1,"mat-spinner",27),V(4,Ooe,3,4,"mat-icon",79),C()),2&t){const e=z(2);c(1),w("ngIf",e.ipCountry),c(1),w("ngIf",!e.ipCountry&&!e.loadingCurrentIp),c(1),w("ngIf",e.loadingCurrentIp),c(1),w("ngIf",e.problemGettingIp)}}function Foe(t,n){1&t&&(D(0,"div",78),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"vpn.status-page.data.unavailable")," "))}function Roe(t,n){if(1&t){const e=et();D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",78),xe(5,"app-vpn-server-name",83),D(6,"mat-icon",82),ye("click",function(){return Pe(e),Oe(z(2).openServerOptions())}),R(7,"translate"),I(8,"settings"),C()()()}if(2&t){const e=z(2);c(2),se(H(3,10,"vpn.status-page.data.server")),c(3),w("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("adjustIconsForBigText",!0)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),c(1),w("inline",!0)("matTooltip",H(7,12,"vpn.server-options.tooltip"))}}function Noe(t,n){1&t&&xe(0,"div",15)}function Yoe(t,n){if(1&t&&(D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",20),I(5),C()()),2&t){const e=z(2);c(2),se(H(3,2,"vpn.status-page.data.server-note")),c(3),ce(" ",e.currentRemoteServer.personalNote," ")}}function Hoe(t,n){1&t&&xe(0,"div",15)}function Boe(t,n){if(1&t&&(D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",20),I(5),C()()),2&t){const e=z(2);c(2),se(H(3,2,"vpn.status-page.data."+(e.currentRemoteServer.personalNote?"original-":"")+"server-note")),c(3),ce(" ",e.currentRemoteServer.note," ")}}function Voe(t,n){1&t&&xe(0,"div",15)}function joe(t,n){if(1&t&&(D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",20),xe(5,"app-copy-to-clipboard-text",21),C()()),2&t){const e=z(2);c(2),se(H(3,2,"vpn.status-page.data.remote-pk")),c(3),w("text",e.currentRemoteServer.pk)}}function zoe(t,n){1&t&&xe(0,"div",15)}function Uoe(t,n){if(1&t&&(D(0,"div",4)(1,"div",5)(2,"div",6),xe(3,"app-top-bar",3),C()(),D(4,"div",7),V(5,boe,20,12,"div",8),V(6,woe,119,148,"div",9),D(7,"div",10)(8,"div",11)(9,"div",12)(10,"div")(11,"div",13),I(12),R(13,"translate"),C(),V(14,Toe,6,5,"div",14),V(15,Loe,3,3,"div",14),C(),xe(16,"div",15),D(17,"div")(18,"div",13),I(19),R(20,"translate"),C(),V(21,Aoe,5,4,"div",14),V(22,Foe,3,3,"div",14),C(),xe(23,"div",16)(24,"div",17)(25,"div",16),V(26,Roe,9,14,"div",18),V(27,Noe,1,0,"div",19),V(28,Yoe,6,4,"div",18),V(29,Hoe,1,0,"div",19),V(30,Boe,6,4,"div",18),V(31,Voe,1,0,"div",19),V(32,joe,6,4,"div",18),V(33,zoe,1,0,"div",19),D(34,"div")(35,"div",13),I(36),R(37,"translate"),C(),D(38,"div",20),xe(39,"app-copy-to-clipboard-text",21),C()()()()()()()),2&t){const e=z();c(3),w("titleParts",qn(29,YP))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(2),w("ngIf",!e.showStarted),c(1),w("ngIf",e.showStarted),c(6),se(H(13,23,"vpn.status-page.data.ip")),c(2),w("ngIf",e.ipInfoAllowed),c(1),w("ngIf",!e.ipInfoAllowed),c(4),se(H(20,25,"vpn.status-page.data.country")),c(2),w("ngIf",e.ipInfoAllowed),c(1),w("ngIf",!e.ipInfoAllowed),c(4),w("ngIf",e.showStarted&&e.currentRemoteServer),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer),c(3),se(H(37,27,"vpn.status-page.data.local-pk")),c(3),w("text",e.currentLocalPk)}}let Woe=(()=>{class t extends er{constructor(e,i,o,s,a,l,d){super(),this.vpnClientService=e,this.vpnSavedDataService=i,this.snackbarService=o,this.translateService=s,this.route=a,this.dialog=l,this.router=d,this.persistentServerDataResponseKey="serv-dat-response",this.persistentIpResponseKey="serv-ip-response",this.tabsData=lr.vpnTabsData,this.sentHistory=[0,0,0,0,0,0,0,0,0,0],this.receivedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0],this.minUploadInGraph=0,this.midUploadInGraph=0,this.maxUploadInGraph=0,this.minDownloadInGraph=0,this.midDownloadInGraph=0,this.maxDownloadInGraph=0,this.minLatencyInGraph=0,this.midLatencyInGraph=0,this.maxLatencyInGraph=0,this.graphsTopInternalMargin=$1.topInternalMargin,this.connectionTimeString="00:00:00",this.calculatedSegs=-1,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0,this.showSpeedsInBits=!0,this.showTotalsInBits=!1,this.loading=!0,this.showStartedLastValue=!1,this.showStarted=!1,this.lastAppState=null,this.showBusy=!1,this.stopRequested=!1,this.loadingCurrentIp=!0,this.problemGettingIp=!1,this.lastIpRefresDate=0,this.serverFlags=Pn,this.ipInfoAllowed=this.vpnSavedDataService.getCheckIpSetting();const _=this.vpnSavedDataService.getDataUnitsSetting();_===Sr.OnlyBits?(this.showSpeedsInBits=!0,this.showTotalsInBits=!0):_===Sr.OnlyBytes?(this.showSpeedsInBits=!1,this.showTotalsInBits=!1):(this.showSpeedsInBits=!0,this.showTotalsInBits=!1)}ngOnInit(){return this.navigationsSubscription=this.route.paramMap.subscribe(e=>{e.has("key")&&(this.currentLocalPk=e.get("key"),lr.changeCurrentPk(this.currentLocalPk),this.tabsData=lr.vpnTabsData),setTimeout(()=>this.navigationsSubscription.unsubscribe()),this.startGettingData(!0),this.currentRemoteServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(i=>{this.currentRemoteServer=i})}),super.ngOnInit()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientService.backendState;i&&(o=$e(JSON.parse(i.value))),this.dataSubscription=o.subscribe(s=>{if(i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(s)),s&&s.serviceState!==jn.PerformingInitialCheck){const a=!this.backendState;if(this.backendState=s,a?(this.getIp(!0,e),console.info(2),console.info(e)):(this.lastAppState===on.Running&&s.vpnClientAppData.appState!==on.Running||this.lastAppState!==on.Running&&s.vpnClientAppData.appState===on.Running)&&(this.getIp(!0,e),console.info(1)),this.showStarted=s.vpnClientAppData.running||s.vpnClientAppData.appState!==on.Stopped,this.showStartedLastValue!==this.showStarted){for(let l=0;l<10;l++)this.receivedHistory[l]=0,this.sentHistory[l]=0,this.latencyHistory[l]=0;this.updateGraphLimits(),this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0}if(this.lastAppState=s.vpnClientAppData.appState,this.showStartedLastValue=this.showStarted,this.stopRequested?this.showStarted||(this.stopRequested=!1,this.showBusy=s.busy):this.showBusy=s.busy,s.vpnClientAppData.connectionData){for(let l=0;l<10;l++)this.receivedHistory[l]=s.vpnClientAppData.connectionData.downloadSpeedHistory[l],this.sentHistory[l]=s.vpnClientAppData.connectionData.uploadSpeedHistory[l],this.latencyHistory[l]=s.vpnClientAppData.connectionData.latencyHistory[l];this.updateGraphLimits(),this.uploadSpeed=s.vpnClientAppData.connectionData.uploadSpeed,this.downloadSpeed=s.vpnClientAppData.connectionData.downloadSpeed,this.totalUploaded=s.vpnClientAppData.connectionData.totalUploaded,this.totalDownloaded=s.vpnClientAppData.connectionData.totalDownloaded,this.latency=s.vpnClientAppData.connectionData.latency}s.vpnClientAppData.running&&s.vpnClientAppData.appState===on.Running&&s.vpnClientAppData.connectionData&&s.vpnClientAppData.connectionData.connectionDuration?(-1===this.calculatedSegs||s.vpnClientAppData.connectionData.connectionDuration>this.calculatedSegs+2||s.vpnClientAppData.connectionData.connectionDuration(e.add(n.schedule(eoe,t,{subscriber:e,counter:0,period:t})),e))}(1e3).subscribe(()=>{this.calculatedSegs+=1,this.refreshConnectionTimeString()})):this.timeUpdateSubscription&&(this.timeUpdateSubscription.unsubscribe(),this.timeUpdateSubscription=null,this.calculatedSegs=-1,this.connectionTimeString="00:00:00"),this.loading=!1}i&&this.startGettingData(!1)})}refreshConnectionTimeString(){const e=this.calculatedSegs%60,i=Math.floor(this.calculatedSegs/60),o=i%60,s=Math.floor(i/60);this.connectionTimeString=String(s).padStart(2,"0")+":"+String(o).padStart(2,"0")+":"+String(e).padStart(2,"0")}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.currentRemoteServerSubscription.unsubscribe(),this.closeOperationSubscription(),this.ipSubscription&&this.ipSubscription.unsubscribe(),this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}start(){if(!this.currentRemoteServer)return this.router.navigate(["vpn",this.currentLocalPk,"servers"]),void setTimeout(()=>this.snackbarService.showWarning("vpn.status-page.select-server-warning"),100);this.currentRemoteServer.flag!==Pn.Blocked?(this.showBusy=!0,this.vpnClientService.start()):this.snackbarService.showError("vpn.starting-blocked-server-error")}stop(){if(!this.backendState.vpnClientAppData.killswitch)return void this.finishStoppingVpn();const e=Jt.createConfirmationDialog(this.dialog,"vpn.status-page.disconnect-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishStoppingVpn()})}finishStoppingVpn(){this.stopRequested=!0,this.showBusy=!0,this.vpnClientService.stop()}openServerOptions(){lr.openServerOptions(this.currentRemoteServer,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe()}getCountryName(e){return ma[e.toUpperCase()]?ma[e.toUpperCase()]:e}getNoteVar(){return this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?"vpn.server-list.notes-info":!this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?this.currentRemoteServer.personalNote:this.currentRemoteServer.note}getLatencyValueString(e){return lr.getLatencyValueString(e)}getPrintableLatency(e){return lr.getPrintableLatency(e)}get currentStateText(){return this.backendState.vpnClientAppData.appState===on.Stopped?"vpn.connection-info.state-disconnected":this.backendState.vpnClientAppData.appState===on.Connecting?"vpn.connection-info.state-connecting":this.backendState.vpnClientAppData.appState===on.Running?"vpn.connection-info.state-connected":this.backendState.vpnClientAppData.appState===on.ShuttingDown?"vpn.connection-info.state-disconnecting":this.backendState.vpnClientAppData.appState===on.Reconnecting?"vpn.connection-info.state-reconnecting":void 0}get currentStateLineClass(){return this.backendState.vpnClientAppData.appState===on.Stopped?"red-line":this.backendState.vpnClientAppData.appState===on.Connecting?"yellow-line":this.backendState.vpnClientAppData.appState===on.Running?"green-line":"yellow-line"}closeOperationSubscription(){this.operationSubscription&&this.operationSubscription.unsubscribe()}updateGraphLimits(){const e=this.calculateGraphLimits(this.sentHistory);this.minUploadInGraph=e[0],this.midUploadInGraph=e[1],this.maxUploadInGraph=e[2];const i=this.calculateGraphLimits(this.receivedHistory);this.minDownloadInGraph=i[0],this.midDownloadInGraph=i[1],this.maxDownloadInGraph=i[2];const o=this.calculateGraphLimits(this.latencyHistory);this.minLatencyInGraph=o[0],this.midLatencyInGraph=o[1],this.maxLatencyInGraph=o[2]}calculateGraphLimits(e){let o=0,s=0;return e.forEach(a=>{a>o&&(o=a)}),0===o&&(o+=1),s=new(Eg())(o).minus(0).dividedBy(2).plus(0).decimalPlaces(1).toNumber(),[0,s,o]}getIp(e=!1,i=!1){if(!this.ipInfoAllowed)return;if(!e){if(this.loadingCurrentIp)return void this.snackbarService.showWarning("vpn.status-page.data.ip-refresh-loading-warning");const a=1e4;if(Date.now()-this.lastIpRefresDate{o||this.saveLocalValue(this.persistentIpResponseKey,JSON.stringify(a)),this.loadingCurrentIp=!1,this.lastIpRefresDate=Date.now(),a?(this.problemGettingIp=!1,this.currentIp=a[0],this.ipCountry=a[1]):this.problemGettingIp=!0,o&&this.getIp(e,!1)},()=>{this.lastIpRefresDate=Date.now(),this.loadingCurrentIp=!1,this.problemGettingIp=!1})}}return t.\u0275fac=function(e){return new(e||t)(Y(oc),Y(rc),Y(Dn),Y(To),Y(Mr),Y(In),Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-status"]],features:[nt],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","general-container",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"general-container"],[1,"row"],[1,"col-12"],[1,"row","flex-1"],["class","col-7 column left-area",4,"ngIf"],["class","col-7 column left-area-connected",4,"ngIf"],[1,"col-5","column","right-area"],[1,"column-container"],[1,"content-area"],[1,"title"],["class","big-text",4,"ngIf"],[1,"margin"],[1,"big-margin"],[1,"separator"],[4,"ngIf"],["class","margin",4,"ngIf"],[1,"small-text"],[3,"text"],[1,"col-7","column","left-area"],[1,"start-button",3,"ngClass","click"],[1,"start-button-img-container"],[1,"start-button-img"],[1,"start-button-img","animated-button"],[3,"diameter",4,"ngIf"],[3,"inline",4,"ngIf"],[1,"current-server"],["class","lower-text current-server-note",4,"ngIf"],["class","lower-text last-error",4,"ngIf"],[3,"diameter"],[3,"inline"],[1,"flag"],[3,"matTooltip"],[1,"text-container"],[1,"top-line"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","name","pk","customName"],[1,"bottom-line"],[3,"shortSimple","text"],[1,"icon-button-separator"],[1,"icon-button"],[1,"transparent-button","vpn-small-button",3,"inline","matTooltip","click"],[1,"none"],[1,"lower-text","current-server-note"],[1,"lower-text","last-error"],[1,"col-7","column","left-area-connected"],[1,"time-container"],[1,"time-content"],[1,"state-title"],[1,"d-inline-block"],[1,"state-text"],[1,"state-explanation"],["class","last-connected-error",4,"ngIf"],[1,"data-container"],[1,"rounded-elevated-box","data-box","big-box",3,"matTooltip"],[1,"chart-container"],["height","140","color","#00000080",3,"animated","data","min","max"],[1,"chart-label"],[1,"label-container","label-top"],[1,"label"],[1,"line"],[1,"label-container","label-mid"],[1,"label-container","label-bottom"],[1,"content"],[1,"upload",3,"inline"],[1,"speed"],[1,"total"],[1,"chart-label","top-chart-label"],[1,"download",3,"inline"],[1,"latency-container"],[1,"rounded-elevated-box","data-box","small-box",3,"matTooltip"],["height","50","color","#00000080",3,"animated","data","min","max"],[1,"disconnect-button",3,"ngClass","click"],[1,"disconnect-button-container"],[1,"d-inline-flex"],[1,"last-connected-error"],[1,"big-text"],["class","small-icon blinking",3,"inline","matTooltip",4,"ngIf"],["class","big-icon transparent-button vpn-small-button",3,"inline","matTooltip","click",4,"ngIf"],[1,"small-icon","blinking",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"inline","matTooltip","click"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","adjustIconsForBigText","name","pk","customName"]],template:function(e,i){1&e&&(V(0,doe,4,6,"div",0),V(1,Uoe,40,30,"div",1)),2&e&&(w("ngIf",i.loading),c(1),w("ngIf",!i.loading))},dependencies:[Nn,Ft,Cn,vi,ec,W1,$1,as,sc,NP,wt,sf],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.general-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.column[_ngcontent-%COMP%]{height:100%;display:flex;align-items:center;padding-top:40px;padding-bottom:20px}.column[_ngcontent-%COMP%] .column-container[_ngcontent-%COMP%]{width:100%;text-align:center}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%]{background:rgba(0,0,0,.7);border-radius:100px;font-size:.8rem;padding:8px 15px;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%]{color:#bbb}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:top}.left-area-connected[_ngcontent-%COMP%] .state-title[_ngcontent-%COMP%]{font-size:1rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .state-text[_ngcontent-%COMP%]{font-size:2rem;text-transform:uppercase}.left-area-connected[_ngcontent-%COMP%] .state-line[_ngcontent-%COMP%]{height:1px;width:100%;margin-bottom:5px}.left-area-connected[_ngcontent-%COMP%] .green-line[_ngcontent-%COMP%]{background-color:#2ecc54}.left-area-connected[_ngcontent-%COMP%] .yellow-line[_ngcontent-%COMP%]{background-color:#d48b05}.left-area-connected[_ngcontent-%COMP%] .red-line[_ngcontent-%COMP%]{background-color:#da3439}.left-area-connected[_ngcontent-%COMP%] .state-explanation[_ngcontent-%COMP%]{font-size:.7rem}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%]{margin-top:15px;font-size:.8rem;color:#ff393f}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .data-container[_ngcontent-%COMP%]{margin-top:20px}.left-area-connected[_ngcontent-%COMP%] .latency-container[_ngcontent-%COMP%]{margin-bottom:20px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%]{cursor:default;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{height:0px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%]{height:0px;text-align:left}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{position:relative;top:-3px;left:-3px;display:flex;margin-right:-6px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.6rem;margin-left:5px;opacity:.2}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:1px;width:10px;background-color:#fff;flex-grow:1;opacity:.1;margin-left:10px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-top[_ngcontent-%COMP%]{align-items:flex-start}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-mid[_ngcontent-%COMP%]{align-items:center}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-bottom[_ngcontent-%COMP%]{align-items:flex-end;position:relative;top:-6px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%]{width:170px;height:140px;margin:5px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:170px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{width:170px;height:140px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:20px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:25px;transform:rotate(-90deg);width:40px;height:40px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .download[_ngcontent-%COMP%]{transform:rotate(-90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .upload[_ngcontent-%COMP%]{transform:rotate(90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .speed[_ngcontent-%COMP%]{font-size:.875rem}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .total[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:140px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%]{width:352px;height:50px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:352px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:100%;font-size:.875rem;position:relative}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;height:25px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:50px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]{background:linear-gradient(#940000,#7b0000) no-repeat!important;box-shadow:5px 5px 7px #00000080;width:352px;font-size:24px;display:inline-block;border-radius:10px;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:hover{background:linear-gradient(#a10000,#900000) no-repeat!important}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:active{transform:scale(.98);box-shadow:0 0 7px #00000080}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%]{background-image:url(/assets/img/background-pattern.png);padding:12px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;position:relative;top:4px;margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{position:relative;top:-2px;line-height:1.7}.left-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;text-align:center;text-transform:uppercase}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]{text-align:center;margin:10px 0;cursor:pointer;display:inline-block;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:active mat-icon[_ngcontent-%COMP%]{transform:scale(.9)}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover .start-button-img-container[_ngcontent-%COMP%]{opacity:1}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{text-shadow:0px 0px 5px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%]{width:0px;height:0px;opacity:.7}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .start-button-img[_ngcontent-%COMP%]{display:inline-block;background-image:url(/assets/img/start-button.png);background-size:contain;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .animated-button[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_button-animation 4s linear infinite;pointer-events:none}@keyframes _ngcontent-%COMP%_button-animation{0%{transform:scale(1.5);opacity:0}25%{transform:scale(1);opacity:.8}50%{transform:scale(1.5);opacity:0}to{transform:scale(1.5);opacity:0}}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{line-height:140px;font-size:50px;-webkit-user-select:none;user-select:none;text-shadow:0px 0px 2px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin-top:50px;opacity:.5}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%]{display:inline-flex;background:rgba(0,0,0,.7);border-radius:10px;padding:10px 15px;max-width:280px;text-align:left}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{background-image:url(/assets/img/big-flags/unknown.png);width:20px;height:15px;background-size:contain;align-self:center;flex-shrink:0;margin-right:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{overflow:hidden}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.7rem;color:#bbb}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%]{display:flex;align-items:center}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:1px;height:30px;background:rgba(255,255,255,.15);margin-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{font-size:22px;line-height:1;display:flex;align-items:center;padding-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%]{display:inline-block;max-width:280px;margin-top:10px}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area[_ngcontent-%COMP%] .current-server-note[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area[_ngcontent-%COMP%] .last-error[_ngcontent-%COMP%]{font-size:.8rem;color:#ff393f}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%]{background:rgba(61,103,162,.1490196078);padding:30px;text-align:left;max-width:420px;opacity:.95}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%]{font-size:1.25rem;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:5px;position:relative;top:2px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .small-icon[_ngcontent-%COMP%]{color:#d48b05;opacity:.7;font-size:.875rem;cursor:default;margin-left:5px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .big-icon[_ngcontent-%COMP%]{font-size:1.125rem;margin-left:5px;position:relative;top:2px;line-height:1}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .small-text[_ngcontent-%COMP%]{font-size:.7rem;margin-top:1px;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .margin[_ngcontent-%COMP%]{height:12px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-margin[_ngcontent-%COMP%]{height:15px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:1px;width:100%;background:rgba(255,255,255,.15)}.disabled-button[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}"]}),t})(),q1=(()=>{class t{set lastError(e){this.lastErrorInternal=e}constructor(e){this.router=e}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.lastErrorInternal?(this.router.navigate(["vpn","unavailable"],{queryParams:{problem:this.lastErrorInternal}}),$e(!1)):$e(!0)}}return t.\u0275fac=function(e){return new(e||t)(we(hn))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var so=(()=>((so=so||{}).UnableToConnectWithTheVpnClientApp="unavailable",so.NoLocalVisorPkProvided="pk",so.InvalidStorageState="storage",so.LocalVisorPkChangedDuringUsage="pkChange",so))();let $oe=(()=>{class t extends er{constructor(e,i,o){super(),this.route=e,this.vpnAuthGuardService=i,this.vpnClientService=o,this.problem=null,this.navigationsSubscription=this.route.queryParamMap.subscribe(s=>{this.problem=s.get("problem"),this.problem||(this.problem=so.UnableToConnectWithTheVpnClientApp),this.vpnAuthGuardService.lastError=this.problem,this.vpnClientService.stopContinuallyUpdatingData(),setTimeout(()=>this.navigationsSubscription.unsubscribe())})}getTitle(){return this.problem===so.NoLocalVisorPkProvided?"vpn.error-page.text-pk":this.problem===so.InvalidStorageState?"vpn.error-page.text-storage":this.problem===so.LocalVisorPkChangedDuringUsage?"vpn.error-page.text-pk-change":"vpn.error-page.text"}getInfo(){return this.problem===so.NoLocalVisorPkProvided?"vpn.error-page.more-info-pk":this.problem===so.InvalidStorageState?"vpn.error-page.more-info-storage":this.problem===so.LocalVisorPkChangedDuringUsage?"vpn.error-page.more-info-pk-change":"vpn.error-page.more-info"}}return t.\u0275fac=function(e){return new(e||t)(Y(Mr),Y(q1),Y(oc))},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-error"]],features:[nt],decls:12,vars:7,consts:[[1,"main-container"],[1,"text-container"],[1,"inner-container"],[1,"error-icon"],[3,"inline"],[1,"more-info"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"mat-icon",4),I(5,"error_outline"),C()(),D(6,"div"),I(7),R(8,"translate"),C(),D(9,"div",5),I(10),R(11,"translate"),C()()()()),2&e&&(c(4),w("inline",!0),c(3),se(H(8,3,i.getTitle())),c(3),se(H(11,5,i.getInfo())))},dependencies:[Cn,wt],styles:[".main-container[_ngcontent-%COMP%]{height:100%;display:flex}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%;align-self:center;text-align:center}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%]{max-width:550px;display:inline-block;font-size:1.25rem}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:80px}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .more-info[_ngcontent-%COMP%]{font-size:.8rem;opacity:.75;margin-top:10px}"]}),t})();const Goe=["button"],qoe=["firstInput"];let Koe=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=s,this.appsService=a,this.vpnClientService=l}ngOnInit(){this.form=this.formBuilder.group({ip:[this.data.ip,Gt.compose([Gt.maxLength(15),this.validateIp.bind(this)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}validateIp(){if(this.form){const e=this.form.get("ip").value;return Jt.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.appsService.changeAppSettings(this.data.nodePk,this.vpnClientService.vpnClientAppName,{dns:this.form.get("ip").value}).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("vpn.dns-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=en(e),this.snackbarService.showError(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(vI),Y(Dn),Y(ll),Y(oc))},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-dns-config"]],viewQuery:function(e,i){if(1&e&&(_t(Goe,5),_t(qoe,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:14,vars:11,consts:[[3,"headline"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","ip","maxlength","15","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6,7),ye("action",function(){return i.save()}),I(12),R(13,"translate"),C()()),2&e&&(w("headline",H(1,5,"vpn.dns-config.title")),c(2),w("formGroup",i.form),c(4),se(H(7,7,"vpn.dns-config.ip")),c(4),w("disabled",!i.form.valid),c(2),ce(" ",H(13,9,"vpn.dns-config.save-config-button")," "))},dependencies:[zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,Ui,ei,wt]}),t})();const Zoe=["topBarLoading"],Xoe=["topBarLoaded"],jP=function(){return["vpn.title"]};function Joe(t,n){if(1&t&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3,4),C(),xe(4,"app-loading-indicator",5),C()),2&t){const e=z();c(2),w("titleParts",qn(5,jP))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function Qoe(t,n){1&t&&xe(0,"mat-spinner",20),2&t&&w("diameter",12)}function ese(t,n){if(1&t){const e=et();D(0,"div",6)(1,"div",7),xe(2,"app-top-bar",3,8),C(),D(4,"div",9)(5,"div",10)(6,"div",11)(7,"div",12)(8,"table",13)(9,"tr")(10,"th",14)(11,"div",15)(12,"div",16),I(13),R(14,"translate"),C()()(),D(15,"th",14),I(16),R(17,"translate"),C()(),D(18,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeKillswitchOption())}),D(19,"td",14)(20,"div"),I(21),R(22,"translate"),D(23,"mat-icon",18),R(24,"translate"),I(25,"help"),C()()(),D(26,"td",14),xe(27,"span"),I(28),R(29,"translate"),V(30,Qoe,1,1,"mat-spinner",19),C()(),D(31,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeGetIpOption())}),D(32,"td",14)(33,"div"),I(34),R(35,"translate"),D(36,"mat-icon",18),R(37,"translate"),I(38,"help"),C()()(),D(39,"td",14),xe(40,"span"),I(41),R(42,"translate"),C()(),D(43,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeDataUnits())}),D(44,"td",14)(45,"div"),I(46),R(47,"translate"),D(48,"mat-icon",18),R(49,"translate"),I(50,"help"),C()()(),D(51,"td",14),I(52),R(53,"translate"),C()(),D(54,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeHops())}),D(55,"td",14)(56,"div"),I(57),R(58,"translate"),D(59,"mat-icon",18),R(60,"translate"),I(61,"help"),C()()(),D(62,"td",14),I(63),C()(),D(64,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeDns())}),D(65,"td",14)(66,"div"),I(67),R(68,"translate"),D(69,"mat-icon",18),R(70,"translate"),I(71,"help"),C()()(),D(72,"td",14),I(73),R(74,"translate"),C()()()()()()()()}if(2&t){const e=z();c(2),w("titleParts",qn(64,jP))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(11),ce(" ",H(14,32,"vpn.settings-page.setting-small-table-label")," "),c(3),ce(" ",H(17,34,"vpn.settings-page.value-small-table-label")," "),c(5),ce(" ",H(22,36,"vpn.settings-page.killswitch")," "),c(2),w("inline",!0)("matTooltip",H(24,38,"vpn.settings-page.killswitch-info")),c(4),eo(e.getStatusClass(e.backendData.vpnClientAppData.killswitch)),c(1),ce(" ",H(29,40,e.getStatusText(e.backendData.vpnClientAppData.killswitch))," "),c(2),w("ngIf",e.working===e.workingOptions.Killswitch),c(4),ce(" ",H(35,42,"vpn.settings-page.get-ip")," "),c(2),w("inline",!0)("matTooltip",H(37,44,"vpn.settings-page.get-ip-info")),c(4),eo(e.getStatusClass(e.getIpOption)),c(1),ce(" ",H(42,46,e.getStatusText(e.getIpOption))," "),c(5),ce(" ",H(47,48,"vpn.settings-page.data-units")," "),c(2),w("inline",!0)("matTooltip",H(49,50,"vpn.settings-page.data-units-info")),c(4),ce(" ",H(53,52,e.getUnitsOptionText(e.dataUnitsOption))," "),c(5),ce(" ",H(58,54,"vpn.settings-page.minimum-hops")," "),c(2),w("inline",!0)("matTooltip",H(60,56,"vpn.settings-page.minimum-hops-info")),c(4),ce(" ",e.backendData.vpnClientAppData.minHops," "),c(4),ce(" ",H(68,58,"vpn.settings-page.dns")," "),c(2),w("inline",!0)("matTooltip",H(70,60,"vpn.settings-page.dns-info")),c(4),ce(" ",e.backendData.vpnClientAppData.dns?e.backendData.vpnClientAppData.dns:H(74,62,"vpn.settings-page.setting-none")," ")}}var Lo=(()=>((Lo=Lo||{})[Lo.None=0]="None",Lo[Lo.Killswitch=1]="Killswitch",Lo))();const tse=[{path:"",component:OW},{path:"login",component:HI},{path:"nodes",canActivate:[Uh],canActivateChild:[Uh],children:[{path:"",redirectTo:"list/1",pathMatch:"full"},{path:"list",redirectTo:"list/1",pathMatch:"full"},{path:"list/:page",component:lP},{path:"dmsg",redirectTo:"dmsg/1",pathMatch:"full"},{path:"dmsg/:page",component:lP},{path:":key",component:Ct,children:[{path:"",redirectTo:"routing",pathMatch:"full"},{path:"info",component:Jie},{path:"routing",component:Aee},{path:"apps",component:_ie},{path:"transports",redirectTo:"transports/1",pathMatch:"full"},{path:"transports/:page",component:vie},{path:"routes",redirectTo:"routes/1",pathMatch:"full"},{path:"routes/:page",component:Mie},{path:"apps-list/:showOfficialApps/:page",component:Cie}]}]},{path:"settings",canActivate:[Uh],canActivateChild:[Uh],children:[{path:"",component:zJ},{path:"labels",redirectTo:"labels/1",pathMatch:"full"},{path:"labels/:page",component:ere}]},{path:"vpnlogin/:key",component:HI},{path:"vpn",canActivate:[q1],canActivateChild:[q1],children:[{path:"unavailable",component:$oe},{path:":key",children:[{path:"status",component:Woe},{path:"servers",redirectTo:"servers/public/1",pathMatch:"full"},{path:"servers/:type/:page",component:RP},{path:"settings",component:(()=>{class t extends er{constructor(e,i,o,s,a,l){super(),this.vpnClientService=e,this.snackbarService=i,this.appsService=o,this.vpnSavedDataService=s,this.dialog=a,this.loading=!0,this.tabsData=lr.vpnTabsData,this.working=Lo.None,this.workingOptions=Lo,this.navigationsSubscription=l.paramMap.subscribe(d=>{d.has("key")&&(this.currentLocalPk=d.get("key"),lr.changeCurrentPk(this.currentLocalPk),this.tabsData=lr.vpnTabsData)}),this.dataSubscription=this.vpnClientService.backendState.subscribe(d=>{d&&d.serviceState!==jn.PerformingInitialCheck&&(this.backendData=d,this.loading=!1)}),this.getIpOption=this.vpnSavedDataService.getCheckIpSetting(),this.dataUnitsOption=this.vpnSavedDataService.getDataUnitsSetting()}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}getStatusClass(e){return!0===e?"dot-green":"dot-red"}getStatusText(e){return!0===e?"vpn.settings-page.setting-on":"vpn.settings-page.setting-off"}getUnitsOptionText(e){switch(e){case Sr.OnlyBits:return"vpn.settings-page.data-units-modal.only-bits";case Sr.OnlyBytes:return"vpn.settings-page.data-units-modal.only-bytes";default:return"vpn.settings-page.data-units-modal.bits-speed-and-bytes-volume"}}changeKillswitchOption(){if(this.working===Lo.None)if(this.backendData.vpnClientAppData.running){const e=Jt.createConfirmationDialog(this.dialog,"vpn.settings-page.change-while-connected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishChangingKillswitchOption()})}else this.finishChangingKillswitchOption();else this.snackbarService.showWarning("vpn.settings-page.working-warning")}finishChangingKillswitchOption(){this.working=Lo.Killswitch,this.operationSubscription=this.appsService.changeAppSettings(this.currentLocalPk,this.vpnClientService.vpnClientAppName,{killswitch:!this.backendData.vpnClientAppData.killswitch}).subscribe(()=>{this.working=Lo.None,this.vpnClientService.updateData()},e=>{this.working=Lo.None,e=en(e),this.snackbarService.showError(e)})}changeGetIpOption(){this.getIpOption=!this.getIpOption,this.vpnSavedDataService.setCheckIpSetting(this.getIpOption)}changeDataUnits(){const e=[],i=[];Object.keys(Sr).forEach(o=>{const s={label:this.getUnitsOptionText(Sr[o])};this.dataUnitsOption===Sr[o]&&(s.icon="done"),e.push(s),i.push(Sr[o])}),qr.openDialog(this.dialog,e,"vpn.settings-page.data-units-modal.title").afterClosed().subscribe(o=>{o&&(this.dataUnitsOption=i[o-1],this.vpnSavedDataService.setDataUnitsSetting(this.dataUnitsOption),this.topBarLoading&&this.topBarLoading.updateVpnDataStatsUnit(),this.topBarLoaded&&this.topBarLoaded.updateVpnDataStatsUnit())})}changeHops(){IP.openDialog(this.dialog,{nodePk:this.currentLocalPk,minHops:this.backendData.vpnClientAppData.minHops}).afterClosed().subscribe()}changeDns(){Koe.openDialog(this.dialog,{nodePk:this.currentLocalPk,ip:this.backendData.vpnClientAppData.dns}).afterClosed().subscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(oc),Y(Dn),Y(ll),Y(rc),Y(In),Y(Mr))},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-settings-list"]],viewQuery:function(e,i){if(1&e&&(_t(Zoe,5),_t(Xoe,5)),2&e){let o;rt(o=ot())&&(i.topBarLoading=o.first),rt(o=ot())&&(i.topBarLoaded=o.first)}},features:[nt],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],["topBarLoading",""],[1,"h-100"],[1,"row"],[1,"col-12"],["topBarLoaded",""],[1,"col-12","mt-4.5","vpn-table-container"],[1,"width-limiter"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"data-column"],[1,"header-container"],[1,"header-text"],[1,"selectable",3,"click"],[1,"help-icon",3,"inline","matTooltip"],[3,"diameter",4,"ngIf"],[3,"diameter"]],template:function(e,i){1&e&&(V(0,Joe,5,6,"div",0),V(1,ese,75,65,"div",1)),2&e&&(w("ngIf",i.loading),c(1),w("ngIf",!i.loading))},dependencies:[Ft,Cn,vi,ec,as,sc,wt],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .data-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:7px!important;padding-bottom:7px!important;font-size:12px!important;font-weight:400!important}.data-column[_ngcontent-%COMP%]{max-width:0;width:50%}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:2px;position:relative;top:2px}mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}"]}),t})()},{path:"**",redirectTo:"status"}]},{path:"**",redirectTo:"/vpn/unavailable?problem=pk"}]},{path:"**",redirectTo:""}];let nse=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[H2.forRoot(tse,{useHash:!0}),H2]}),t})(),rse=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn]}),t})();class ose{getTranslation(n){return ue(N(6297)(`./${n}.json`))}}let sse=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[pE.forRoot({loader:{provide:jh,useClass:ose}}),pE]}),t})(),ase=(()=>{class t{shouldDetach(e){return!1}store(e,i){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,i){return!1}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const lse={disabled:!0};let cse=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t,bootstrap:[g1]}),t.\u0275inj=Nt({providers:[ef,{provide:a1,useValue:{duration:3e3,verticalPosition:"top"}},{provide:UL,useValue:{width:"600px",hasBackdrop:!0}},{provide:e1,useClass:tU},{provide:E2,useClass:ase},{provide:t1,useValue:lse}],imports:[ID,f8,D$,j8,nse,sse,tE,kU,Lg,fG,Kte,eE,cW,TG,VK,S$,rse,Vq,SW,uK]}),t})();Mc(Ct,[Nn,Ft,Am,Cn,as,sc,AP],[wt]),Mc(RP,[Nn,gi,Ft,hd,qa,Wr,Cn,vi,W1,as,Bd,sc,NP],[cD,wt]),dB().bootstrapModule(cse).catch(t=>console.log(t))},9774:function(de,ge,N){var O;!function(v){"use strict";var u,f=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,h=Math.ceil,M=Math.floor,p="[BigNumber Error] ",y=p+"Number primitive has more than 15 significant digits: ",x=1e14,T=14,S=9007199254740991,k=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],L=1e7,A=1e9;function B(Q){var ee=0|Q;return Q>0||Q===ee?ee:ee-1}function K(Q){for(var ee,ae,le=1,J=Q.length,Te=Q[0]+"";lett^ae?1:-1;for(ke=(Be=J.length)<(tt=Te.length)?Be:tt,Se=0;SeTe[Se]^ae?1:-1;return Be==tt?0:Be>tt^ae?1:-1}function ve(Q,ee,ae,le){if(Qae||Q!==(Q<0?h(Q):M(Q)))throw Error(p+(le||"Argument")+("number"==typeof Q?Qae?" out of range: ":" not an integer: ":" not a primitive number: ")+Q)}function Z(Q){return"[object Array]"==Object.prototype.toString.call(Q)}function X(Q){var ee=Q.c.length-1;return B(Q.e/T)==ee&&Q.c[ee]%2!=0}function he(Q,ee){return(Q.length>1?Q.charAt(0)+"."+Q.slice(1):Q)+(ee<0?"e":"e+")+ee}function q(Q,ee,ae){var le,J;if(ee<0){for(J=ae+".";++ee;J+=ae);Q=J+Q}else if(++ee>(le=Q.length)){for(J=ae,ee-=le;--ee;J+=ae);Q+=J}else ee=10;be/=10,ue++);return Ie.e=ue,void(Ie.c=[W])}De=W+""}else{if(!f.test(De=W+""))return le(Ie,De,me);Ie.s=45==De.charCodeAt(0)?(De=De.slice(1),-1):1}(ue=De.indexOf("."))>-1&&(De=De.replace(".","")),(be=De.search(/e/i))>0?(ue<0&&(ue=be),ue+=+De.slice(be+1),De=De.substring(0,be)):ue<0&&(ue=De.length)}else{if(ve(oe,2,zn.length,"Base"),De=W+"",10==oe)return Xe(Ie=new Ge(W instanceof Ge?W:De),Se+Ie.e+1,ke);if(me="number"==typeof W){if(0*W!=0)return le(Ie,De,me,oe);if(Ie.s=1/W<0?(De=De.slice(1),-1):1,Ge.DEBUG&&De.replace(/^0\.0*|\./,"").length>15)throw Error(y+W);me=!1}else Ie.s=45===De.charCodeAt(0)?(De=De.slice(1),-1):1;for(te=zn.slice(0,oe),ue=be=0,Me=De.length;beue){ue=Me;continue}}else if(!fe&&(De==De.toUpperCase()&&(De=De.toLowerCase())||De==De.toLowerCase()&&(De=De.toUpperCase()))){fe=!0,be=-1,ue=0;continue}return le(Ie,W+"",me,oe)}(ue=(De=ae(De,oe,10,Ie.s)).indexOf("."))>-1?De=De.replace(".",""):ue=De.length}for(be=0;48===De.charCodeAt(be);be++);for(Me=De.length;48===De.charCodeAt(--Me););if(De=De.slice(be,++Me)){if(Me-=be,me&&Ge.DEBUG&&Me>15&&(W>S||W!==M(W)))throw Error(y+Ie.s*W);if((ue=ue-be-1)>at)Ie.c=Ie.e=null;else if(ueme){if(--oe>0)for(Me+=".";oe--;Me+="0");}else if((oe+=ue-me)>0)for(ue+1==me&&(Me+=".");oe--;Me+="0");return W.s<0&&fe?"-"+Me:Me}function Oi(W,oe){var te,pe,fe=0;for(Z(W[0])&&(W=W[0]),te=new Ge(W[0]);++fe=10;fe/=10,pe++);return(te=pe+te*T-1)>at?W.c=W.e=null:te=10;me/=10,fe++);if((ue=oe-fe)<0)ue+=T,Ie=(Me=Ye[De=0])/ut[fe-(be=oe)-1]%10|0;else if((De=h((ue+1)/T))>=Ye.length){if(!pe)break e;for(;Ye.length<=De;Ye.push(0));Me=Ie=0,fe=1,be=(ue%=T)-T+1}else{for(Me=me=Ye[De],fe=1;me>=10;me/=10,fe++);Ie=(be=(ue%=T)-T+fe)<0?0:Me/ut[fe-be-1]%10|0}if(pe=pe||oe<0||null!=Ye[De+1]||(be<0?Me:Me%ut[fe-be-1]),pe=te<4?(Ie||pe)&&(0==te||te==(W.s<0?3:2)):Ie>5||5==Ie&&(4==te||pe||6==te&&(ue>0?be>0?Me/ut[fe-be]:0:Ye[De-1])%10&1||te==(W.s<0?8:7)),oe<1||!Ye[0])return Ye.length=0,pe?(Ye[0]=ut[(T-(oe-=W.e+1)%T)%T],W.e=-oe||0):Ye[0]=W.e=0,W;if(0==ue?(Ye.length=De,me=1,De--):(Ye.length=De+1,me=ut[T-ue],Ye[De]=be>0?M(Me/ut[fe-be]%ut[be])*me:0),pe)for(;;){if(0==De){for(ue=1,be=Ye[0];be>=10;be/=10,ue++);for(be=Ye[0]+=me,me=1;be>=10;be/=10,me++);ue!=me&&(W.e++,Ye[0]==x&&(Ye[0]=1));break}if(Ye[De]+=me,Ye[De]!=x)break;Ye[De--]=0,me=1}for(ue=Ye.length;0===Ye[--ue];Ye.pop());}W.e>at?W.c=W.e=null:W.e>>11))>=9e15?(fe=crypto.getRandomValues(new Uint32Array(2)),pe[Me]=fe[0],pe[Me+1]=fe[1]):(De.push(me%1e14),Me+=2);Me=be/2}else{if(!crypto.randomBytes)throw jt=!1,Error(p+"crypto unavailable");for(pe=crypto.randomBytes(be*=7);Me=9e15?crypto.randomBytes(7).copy(pe,Me):(De.push(me%1e14),Me+=7);Me=be/7}if(!jt)for(;Me=10;me/=10,Me++);Mefe-1&&(null==me[be+1]&&(me[be+1]=0),me[be+1]+=me[be]/fe|0,me[be]%=fe)}return me.reverse()}return function(te,pe,fe,ue,be){var me,Me,De,Ie,Ye,ut,mt,it,fn=te.indexOf("."),An=Se,bt=ke;for(fn>=0&&(Ie=Zn,Zn=0,te=te.replace(".",""),ut=(it=new Ge(pe)).pow(te.length-fn),Zn=Ie,it.c=oe(q(K(ut.c),ut.e,"0"),10,fe,W),it.e=it.c.length),De=Ie=(mt=oe(te,pe,fe,be?(me=zn,W):(me=W,zn))).length;0==mt[--Ie];mt.pop());if(!mt[0])return me.charAt(0);if(fn<0?--De:(ut.c=mt,ut.e=De,ut.s=ue,mt=(ut=ee(ut,it,An,bt,fe)).c,Ye=ut.r,De=ut.e),fn=mt[Me=De+An+1],Ie=fe/2,Ye=Ye||Me<0||null!=mt[Me+1],Ye=bt<4?(null!=fn||Ye)&&(0==bt||bt==(ut.s<0?3:2)):fn>Ie||fn==Ie&&(4==bt||Ye||6==bt&&1&mt[Me-1]||bt==(ut.s<0?8:7)),Me<1||!mt[0])te=Ye?q(me.charAt(1),-An,me.charAt(0)):me.charAt(0);else{if(mt.length=Me,Ye)for(--fe;++mt[--Me]>fe;)mt[Me]=0,Me||(++De,mt=[1].concat(mt));for(Ie=mt.length;!mt[--Ie];);for(fn=0,te="";fn<=Ie;te+=me.charAt(mt[fn++]));te=q(te,De,me.charAt(0))}return te}}(),ee=function(){function W(pe,fe,ue){var be,me,Me,De,Ie=0,Ye=pe.length,ut=fe%L,mt=fe/L|0;for(pe=pe.slice();Ye--;)Ie=((me=ut*(Me=pe[Ye]%L)+(be=mt*Me+(De=pe[Ye]/L|0)*ut)%L*L+Ie)/ue|0)+(be/L|0)+mt*De,pe[Ye]=me%ue;return Ie&&(pe=[Ie].concat(pe)),pe}function oe(pe,fe,ue,be){var me,Me;if(ue!=be)Me=ue>be?1:-1;else for(me=Me=0;mefe[me]?1:-1;break}return Me}function te(pe,fe,ue,be){for(var me=0;ue--;)pe[ue]-=me,pe[ue]=(me=pe[ue]1;pe.splice(0,1));}return function(pe,fe,ue,be,me){var Me,De,Ie,Ye,ut,mt,it,fn,An,bt,qt,Gn,oi,Kr,Io,Ai,ln,wi=pe.s==fe.s?1:-1,si=pe.c,Fn=fe.c;if(!(si&&si[0]&&Fn&&Fn[0]))return new Ge(pe.s&&fe.s&&(si?!Fn||si[0]!=Fn[0]:Fn)?si&&0==si[0]||!Fn?0*wi:wi/0:NaN);for(An=(fn=new Ge(wi)).c=[],wi=ue+(De=pe.e-fe.e)+1,me||(me=x,De=B(pe.e/T)-B(fe.e/T),wi=wi/T|0),Ie=0;Fn[Ie]==(si[Ie]||0);Ie++);if(Fn[Ie]>(si[Ie]||0)&&De--,wi<0)An.push(1),Ye=!0;else{for(Kr=si.length,Ai=Fn.length,Ie=0,wi+=2,(ut=M(me/(Fn[0]+1)))>1&&(Fn=W(Fn,ut,me),si=W(si,ut,me),Ai=Fn.length,Kr=si.length),oi=Ai,qt=(bt=si.slice(0,Ai)).length;qt=me/2&&Io++;do{if(ut=0,(Me=oe(Fn,bt,Ai,qt))<0){if(Gn=bt[0],Ai!=qt&&(Gn=Gn*me+(bt[1]||0)),(ut=M(Gn/Io))>1)for(ut>=me&&(ut=me-1),it=(mt=W(Fn,ut,me)).length,qt=bt.length;1==oe(mt,bt,it,qt);)ut--,te(mt,Ai=10;wi/=10,Ie++);Xe(fn,ue+(fn.e=Ie+De*T-1)+1,be,Ye)}else fn.e=De,fn.r=+Ye;return fn}}(),le=function(){var W=/^(-?)0([xbo])(?=\w[\w.]*$)/i,oe=/^([^.]+)\.$/,te=/^\.([^.]+)$/,pe=/^-?(Infinity|NaN)$/,fe=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(ue,be,me,Me){var De,Ie=me?be:be.replace(fe,"");if(pe.test(Ie))ue.s=isNaN(Ie)?null:Ie<0?-1:1,ue.c=ue.e=null;else{if(!me&&(Ie=Ie.replace(W,function(Ye,ut,mt){return De="x"==(mt=mt.toLowerCase())?16:"b"==mt?2:8,Me&&Me!=De?Ye:ut}),Me&&(De=Me,Ie=Ie.replace(oe,"$1").replace(te,"0.$1")),be!=Ie))return new Ge(Ie,De);if(Ge.DEBUG)throw Error(p+"Not a"+(Me?" base "+Me:"")+" number: "+be);ue.c=ue.e=ue.s=null}}}(),J.absoluteValue=J.abs=function(){var W=new Ge(this);return W.s<0&&(W.s=1),W},J.comparedTo=function(W,oe){return re(this,new Ge(W,oe))},J.decimalPlaces=J.dp=function(W,oe){var te,pe,fe;if(null!=W)return ve(W,0,A),null==oe?oe=ke:ve(oe,0,8),Xe(new Ge(this),W+this.e+1,oe);if(!(te=this.c))return null;if(pe=((fe=te.length-1)-B(this.e/T))*T,fe=te[fe])for(;fe%10==0;fe/=10,pe--);return pe<0&&(pe=0),pe},J.dividedBy=J.div=function(W,oe){return ee(this,new Ge(W,oe),Se,ke)},J.dividedToIntegerBy=J.idiv=function(W,oe){return ee(this,new Ge(W,oe),0,1)},J.exponentiatedBy=J.pow=function(W,oe){var te,pe,fe,be,me,Me,De,Ie=this;if((W=new Ge(W)).c&&!W.isInteger())throw Error(p+"Exponent not an integer: "+W);if(null!=oe&&(oe=new Ge(oe)),be=W.e>14,!Ie.c||!Ie.c[0]||1==Ie.c[0]&&!Ie.e&&1==Ie.c.length||!W.c||!W.c[0])return De=new Ge(Math.pow(+Ie.valueOf(),be?2-X(W):+W)),oe?De.mod(oe):De;if(me=W.s<0,oe){if(oe.c?!oe.c[0]:!oe.s)return new Ge(NaN);(pe=!me&&Ie.isInteger()&&oe.isInteger())&&(Ie=Ie.mod(oe))}else{if(W.e>9&&(Ie.e>0||Ie.e<-1||(0==Ie.e?Ie.c[0]>1||be&&Ie.c[1]>=24e7:Ie.c[0]<8e13||be&&Ie.c[0]<=9999975e7)))return fe=Ie.s<0&&X(W)?-0:0,Ie.e>-1&&(fe=1/fe),new Ge(me?1/fe:fe);Zn&&(fe=h(Zn/T+2))}for(be?(te=new Ge(.5),Me=X(W)):Me=W%2,me&&(W.s=1),De=new Ge(Te);;){if(Me){if(!(De=De.times(Ie)).c)break;fe?De.c.length>fe&&(De.c.length=fe):pe&&(De=De.mod(oe))}if(be){if(Xe(W=W.times(te),W.e+1,1),!W.c[0])break;be=W.e>14,Me=X(W)}else{if(!(W=M(W/2)))break;Me=W%2}Ie=Ie.times(Ie),fe?Ie.c&&Ie.c.length>fe&&(Ie.c.length=fe):pe&&(Ie=Ie.mod(oe))}return pe?De:(me&&(De=Te.div(De)),oe?De.mod(oe):fe?Xe(De,Zn,ke,void 0):De)},J.integerValue=function(W){var oe=new Ge(this);return null==W?W=ke:ve(W,0,8),Xe(oe,oe.e+1,W)},J.isEqualTo=J.eq=function(W,oe){return 0===re(this,new Ge(W,oe))},J.isFinite=function(){return!!this.c},J.isGreaterThan=J.gt=function(W,oe){return re(this,new Ge(W,oe))>0},J.isGreaterThanOrEqualTo=J.gte=function(W,oe){return 1===(oe=re(this,new Ge(W,oe)))||0===oe},J.isInteger=function(){return!!this.c&&B(this.e/T)>this.c.length-2},J.isLessThan=J.lt=function(W,oe){return re(this,new Ge(W,oe))<0},J.isLessThanOrEqualTo=J.lte=function(W,oe){return-1===(oe=re(this,new Ge(W,oe)))||0===oe},J.isNaN=function(){return!this.s},J.isNegative=function(){return this.s<0},J.isPositive=function(){return this.s>0},J.isZero=function(){return!!this.c&&0==this.c[0]},J.minus=function(W,oe){var te,pe,fe,ue,be=this,me=be.s;if(oe=(W=new Ge(W,oe)).s,!me||!oe)return new Ge(NaN);if(me!=oe)return W.s=-oe,be.plus(W);var Me=be.e/T,De=W.e/T,Ie=be.c,Ye=W.c;if(!Me||!De){if(!Ie||!Ye)return Ie?(W.s=-oe,W):new Ge(Ye?be:NaN);if(!Ie[0]||!Ye[0])return Ye[0]?(W.s=-oe,W):new Ge(Ie[0]?be:3==ke?-0:0)}if(Me=B(Me),De=B(De),Ie=Ie.slice(),me=Me-De){for((ue=me<0)?(me=-me,fe=Ie):(De=Me,fe=Ye),fe.reverse(),oe=me;oe--;fe.push(0));fe.reverse()}else for(pe=(ue=(me=Ie.length)<(oe=Ye.length))?me:oe,me=oe=0;oe0)for(;oe--;Ie[te++]=0);for(oe=x-1;pe>me;){if(Ie[--pe]=0;){for(te=0,ut=Gn[fe]%An,mt=Gn[fe]/An|0,ue=fe+(be=Me);ue>fe;)te=((De=ut*(De=qt[--be]%An)+(me=mt*De+(Ie=qt[be]/An|0)*ut)%An*An+it[ue]+te)/fn|0)+(me/An|0)+mt*Ie,it[ue--]=De%fn;it[ue]=te}return te?++pe:it.splice(0,1),dr(W,it,pe)},J.negated=function(){var W=new Ge(this);return W.s=-W.s||null,W},J.plus=function(W,oe){var te,pe=this,fe=pe.s;if(oe=(W=new Ge(W,oe)).s,!fe||!oe)return new Ge(NaN);if(fe!=oe)return W.s=-oe,pe.minus(W);var ue=pe.e/T,be=W.e/T,me=pe.c,Me=W.c;if(!ue||!be){if(!me||!Me)return new Ge(fe/0);if(!me[0]||!Me[0])return Me[0]?W:new Ge(me[0]?pe:0*fe)}if(ue=B(ue),be=B(be),me=me.slice(),fe=ue-be){for(fe>0?(be=ue,te=Me):(fe=-fe,te=me),te.reverse();fe--;te.push(0));te.reverse()}for((fe=me.length)-(oe=Me.length)<0&&(te=Me,Me=me,me=te,oe=fe),fe=0;oe;)fe=(me[--oe]=me[oe]+Me[oe]+fe)/x|0,me[oe]=x===me[oe]?0:me[oe]%x;return fe&&(me=[fe].concat(me),++be),dr(W,me,be)},J.precision=J.sd=function(W,oe){var te,pe,fe;if(null!=W&&W!==!!W)return ve(W,1,A),null==oe?oe=ke:ve(oe,0,8),Xe(new Ge(this),W,oe);if(!(te=this.c))return null;if(pe=(fe=te.length-1)*T+1,fe=te[fe]){for(;fe%10==0;fe/=10,pe--);for(fe=te[0];fe>=10;fe/=10,pe++);}return W&&this.e+1>pe&&(pe=this.e+1),pe},J.shiftedBy=function(W){return ve(W,-S,S),this.times("1e"+W)},J.squareRoot=J.sqrt=function(){var W,oe,te,pe,fe,ue=this,be=ue.c,me=ue.s,Me=ue.e,De=Se+4,Ie=new Ge("0.5");if(1!==me||!be||!be[0])return new Ge(!me||me<0&&(!be||be[0])?NaN:be?ue:1/0);if(0==(me=Math.sqrt(+ue))||me==1/0?(((oe=K(be)).length+Me)%2==0&&(oe+="0"),me=Math.sqrt(oe),Me=B((Me+1)/2)-(Me<0||Me%2),te=new Ge(oe=me==1/0?"1e"+Me:(oe=me.toExponential()).slice(0,oe.indexOf("e")+1)+Me)):te=new Ge(me+""),te.c[0])for((me=(Me=te.e)+De)<3&&(me=0);;)if(te=Ie.times((fe=te).plus(ee(ue,fe,De,1))),K(fe.c).slice(0,me)===(oe=K(te.c)).slice(0,me)){if(te.e0&&ut>0){for(Me=Ye.substr(0,pe=ut%ue||ue);pe0&&(Me+=me+Ye.slice(pe)),Ie&&(Me="-"+Me)}te=De?Me+On.decimalSeparator+((be=+On.fractionGroupSize)?De.replace(new RegExp("\\d{"+be+"}\\B","g"),"$&"+On.fractionGroupSeparator):De):Me}return te},J.toFraction=function(W){var oe,te,pe,fe,ue,be,me,Me,De,Ie,Ye,ut,mt=this,it=mt.c;if(null!=W&&(!(Me=new Ge(W)).isInteger()&&(Me.c||1!==Me.s)||Me.lt(Te)))throw Error(p+"Argument "+(Me.isInteger()?"out of range: ":"not an integer: ")+W);if(!it)return mt.toString();for(te=new Ge(Te),Ie=pe=new Ge(Te),fe=De=new Ge(Te),ut=K(it),be=te.e=ut.length-mt.e-1,te.c[0]=k[(me=be%T)<0?T+me:me],W=!W||Me.comparedTo(te)>0?be>0?te:Ie:Me,me=at,at=1/0,Me=new Ge(ut),De.c[0]=0;Ye=ee(Me,te,0,1),1!=(ue=pe.plus(Ye.times(fe))).comparedTo(W);)pe=fe,fe=ue,Ie=De.plus(Ye.times(ue=Ie)),De=ue,te=Me.minus(Ye.times(ue=te)),Me=ue;return ue=ee(W.minus(pe),fe,0,1),De=De.plus(ue.times(Ie)),pe=pe.plus(ue.times(fe)),De.s=Ie.s=mt.s,oe=ee(Ie,fe,be*=2,ke).minus(mt).abs().comparedTo(ee(De,pe,be,ke).minus(mt).abs())<1?[Ie.toString(),fe.toString()]:[De.toString(),pe.toString()],at=me,oe},J.toNumber=function(){return+this},J.toPrecision=function(W,oe){return null!=W&&ve(W,1,A),Pi(this,W,oe,2)},J.toString=function(W){var oe,pe=this.s,fe=this.e;return null===fe?pe?(oe="Infinity",pe<0&&(oe="-"+oe)):oe="NaN":(oe=K(this.c),null==W?oe=fe<=Be||fe>=tt?he(oe,fe):q(oe,fe,"0"):(ve(W,2,zn.length,"Base"),oe=ae(q(oe,fe,"0"),10,W,pe,!0)),pe<0&&this.c[0]&&(oe="-"+oe)),oe},J.valueOf=J.toJSON=function(){var W,te=this.e;return null===te?this.toString():(W=K(this.c),W=te<=Be||te>=tt?he(W,te):q(W,te,"0"),this.s<0?"-"+W:W)},J._isBigNumber=!0,null!=Q&&Ge.set(Q),Ge}(),u.default=u.BigNumber=u,void 0!==(O=function(){return u}.call(ge,N,ge,de))&&(de.exports=O)}()},6149:(de,ge,N)=>{var O=N(5979)();O.helpers=N(3305),N(3533)(O),O.defaults=N(9800),O.Element=N(8839),O.elements=N(9931),O.Interaction=N(2814),O.layouts=N(2294),O.platform=N(8244),O.plugins=N(2445),O.Ticks=N(8347),N(8103)(O),N(1047)(O),N(7897)(O),N(5464)(O),N(6308)(O),N(480)(O),N(8351)(O),N(4977)(O),N(1704)(O),N(1486)(O),N(8726)(O),N(4215)(O),N(2690)(O),N(4033)(O),N(787)(O),N(6769)(O),N(6580)(O),N(4657)(O),N(1895)(O),N(6038)(O),N(2898)(O),N(3414)(O),N(6667)(O),N(402)(O),N(846)(O),N(9377)(O);var v=N(6747);for(var u in v)v.hasOwnProperty(u)&&O.plugins.register(v[u]);O.platform.initialize(),de.exports=O,typeof window<"u"&&(window.Chart=O),O.Legend=v.legend._element,O.Title=v.title._element,O.pluginService=O.plugins,O.PluginBase=O.Element.extend({}),O.canvasHelpers=O.helpers.canvas,O.layoutService=O.layouts},6038:de=>{"use strict";de.exports=function(ge){ge.Bar=function(N,O){return O.type="bar",new ge(N,O)}}},2898:de=>{"use strict";de.exports=function(ge){ge.Bubble=function(N,O){return O.type="bubble",new ge(N,O)}}},3414:de=>{"use strict";de.exports=function(ge){ge.Doughnut=function(N,O){return O.type="doughnut",new ge(N,O)}}},6667:de=>{"use strict";de.exports=function(ge){ge.Line=function(N,O){return O.type="line",new ge(N,O)}}},402:de=>{"use strict";de.exports=function(ge){ge.PolarArea=function(N,O){return O.type="polarArea",new ge(N,O)}}},846:de=>{"use strict";de.exports=function(ge){ge.Radar=function(N,O){return O.type="radar",new ge(N,O)}}},9377:de=>{"use strict";de.exports=function(ge){ge.Scatter=function(N,O){return O.type="scatter",new ge(N,O)}}},2690:(de,ge,N)=>{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),O._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(p,y){var x="";return p.length>0&&(p[0].yLabel?x=p[0].yLabel:y.labels.length>0&&p[0].index0?Math.min(x,k-S):x,S=k;return x}(x,U):-1,{min:re,pixels:U,start:L,end:A,stackCount:T,scale:x}},calculateBarValuePixels:function(y,x){var ve,Z,X,he,q,Q,T=this,S=T.chart,k=T.getMeta(),L=T.getValueScale(),A=S.data.datasets,U=L.getRightValue(A[y].data[x]),B=L.options.stacked,K=k.stack,re=0;if(B||void 0===B&&void 0!==K)for(ve=0;ve=0&&X>0)&&(re+=X));return he=L.getPixelForValue(re),{size:Q=((q=L.getPixelForValue(re+U))-he)/2,base:he,head:q,center:q+Q/2}},calculateBarIndexPixels:function(y,x,T){var k=T.scale.options,L="flex"===k.barThickness?function M(p,y,x){var T=y.pixels,S=T[p],k=p>0?T[p-1]:null,L=p{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(f,h){return(h.datasets[f.datasetIndex].label||"")+": ("+f.xLabel+", "+f.yLabel+", "+h.datasets[f.datasetIndex].data[f.index].r+")"}}}}),de.exports=function(f){f.controllers.bubble=f.DatasetController.extend({dataElementType:v.Point,update:function(h){var M=this,p=M.getMeta();u.each(p.data,function(x,T){M.updateElement(x,T,h)})},updateElement:function(h,M,p){var y=this,x=y.getMeta(),T=h.custom||{},S=y.getScaleForId(x.xAxisID),k=y.getScaleForId(x.yAxisID),L=y._resolveElementOptions(h,M),A=y.getDataset().data[M],U=y.index,B=p?S.getPixelForDecimal(.5):S.getPixelForValue("object"==typeof A?A:NaN,M,U),K=p?k.getBasePixel():k.getPixelForValue(A,M,U);h._xScale=S,h._yScale=k,h._options=L,h._datasetIndex=U,h._index=M,h._model={backgroundColor:L.backgroundColor,borderColor:L.borderColor,borderWidth:L.borderWidth,hitRadius:L.hitRadius,pointStyle:L.pointStyle,radius:p?0:L.radius,skip:T.skip||isNaN(B)||isNaN(K),x:B,y:K},h.pivot()},setHoverStyle:function(h){var M=h._model,p=h._options;M.backgroundColor=u.valueOrDefault(p.hoverBackgroundColor,u.getHoverColor(p.backgroundColor)),M.borderColor=u.valueOrDefault(p.hoverBorderColor,u.getHoverColor(p.borderColor)),M.borderWidth=u.valueOrDefault(p.hoverBorderWidth,p.borderWidth),M.radius=p.radius+p.hoverRadius},removeHoverStyle:function(h){var M=h._model,p=h._options;M.backgroundColor=p.backgroundColor,M.borderColor=p.borderColor,M.borderWidth=p.borderWidth,M.radius=p.radius},_resolveElementOptions:function(h,M){var B,K,re,p=this,y=p.chart,T=y.data.datasets[p.index],S=h.custom||{},k=y.options.elements.point,L=u.options.resolve,A=T.data[M],U={},ve={chart:y,dataIndex:M,dataset:T,datasetIndex:p.index},Z=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle"];for(B=0,K=Z.length;B{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(f){var h=[];h.push('

    ');var M=f.data,p=M.datasets,y=M.labels;if(p.length)for(var x=0;x'),y[x]&&h.push(y[x]),h.push("");return h.push("
"),h.join("")},legend:{labels:{generateLabels:function(f){var h=f.data;return h.labels.length&&h.datasets.length?h.labels.map(function(M,p){var y=f.getDatasetMeta(0),x=h.datasets[0],T=y.data[p],S=T&&T.custom||{},k=u.valueAtIndexOrDefault,L=f.options.elements.arc;return{text:M,fillStyle:S.backgroundColor?S.backgroundColor:k(x.backgroundColor,p,L.backgroundColor),strokeStyle:S.borderColor?S.borderColor:k(x.borderColor,p,L.borderColor),lineWidth:S.borderWidth?S.borderWidth:k(x.borderWidth,p,L.borderWidth),hidden:isNaN(x.data[p])||y.data[p].hidden,index:p}}):[]}},onClick:function(f,h){var y,x,T,M=h.index,p=this.chart;for(y=0,x=(p.data.datasets||[]).length;y=Math.PI?-1:re<-Math.PI?1:0))+K,Z={x:Math.cos(re),y:Math.sin(re)},X={x:Math.cos(ve),y:Math.sin(ve)},he=re<=0&&ve>=0||re<=2*Math.PI&&2*Math.PI<=ve,q=re<=.5*Math.PI&&.5*Math.PI<=ve||re<=2.5*Math.PI&&2.5*Math.PI<=ve,Q=re<=-Math.PI&&-Math.PI<=ve||re<=Math.PI&&Math.PI<=ve,ee=re<=.5*-Math.PI&&.5*-Math.PI<=ve||re<=1.5*Math.PI&&1.5*Math.PI<=ve,ae=B/100,le={x:Q?-1:Math.min(Z.x*(Z.x<0?1:ae),X.x*(X.x<0?1:ae)),y:ee?-1:Math.min(Z.y*(Z.y<0?1:ae),X.y*(X.y<0?1:ae))},J={x:he?1:Math.max(Z.x*(Z.x>0?1:ae),X.x*(X.x>0?1:ae)),y:q?1:Math.max(Z.y*(Z.y>0?1:ae),X.y*(X.y>0?1:ae))},Te={width:.5*(J.x-le.x),height:.5*(J.y-le.y)};L=Math.min(S/Te.width,k/Te.height),A={x:-.5*(J.x+le.x),y:-.5*(J.y+le.y)}}p.borderWidth=M.getMaxBorderWidth(U.data),p.outerRadius=Math.max((L-p.borderWidth)/2,0),p.innerRadius=Math.max(B?p.outerRadius/100*B:0,0),p.radiusLength=(p.outerRadius-p.innerRadius)/p.getVisibleDatasetCount(),p.offsetX=A.x*p.outerRadius,p.offsetY=A.y*p.outerRadius,U.total=M.calculateTotal(),M.outerRadius=p.outerRadius-p.radiusLength*M.getRingIndex(M.index),M.innerRadius=Math.max(M.outerRadius-p.radiusLength,0),u.each(U.data,function(Se,ke){M.updateElement(Se,ke,h)})},updateElement:function(h,M,p){var y=this,x=y.chart,T=x.chartArea,S=x.options,k=S.animation,L=(T.left+T.right)/2,A=(T.top+T.bottom)/2,U=S.rotation,B=S.rotation,K=y.getDataset(),re=p&&k.animateRotate||h.hidden?0:y.calculateCircumference(K.data[M])*(S.circumference/(2*Math.PI));u.extend(h,{_datasetIndex:y.index,_index:M,_model:{x:L+x.offsetX,y:A+x.offsetY,startAngle:U,endAngle:B,circumference:re,outerRadius:p&&k.animateScale?0:y.outerRadius,innerRadius:p&&k.animateScale?0:y.innerRadius,label:(0,u.valueAtIndexOrDefault)(K.label,M,x.data.labels[M])}});var he=h._model;this.removeHoverStyle(h),(!p||!k.animateRotate)&&(he.startAngle=0===M?S.rotation:y.getMeta().data[M-1]._model.endAngle,he.endAngle=he.startAngle+he.circumference),h.pivot()},removeHoverStyle:function(h){f.DatasetController.prototype.removeHoverStyle.call(this,h,this.chart.options.elements.arc)},calculateTotal:function(){var y,h=this.getDataset(),M=this.getMeta(),p=0;return u.each(M.data,function(x,T){y=h.data[T],!isNaN(y)&&!x.hidden&&(p+=Math.abs(y))}),p},calculateCircumference:function(h){var M=this.getMeta().total;return M>0&&!isNaN(h)?2*Math.PI*(Math.abs(h)/M):0},getMaxBorderWidth:function(h){for(var x,T,M=0,p=this.index,y=h.length,S=0;S(M=(x=h[S]._model?h[S]._model.borderWidth:0)>M?x:M)?T:M;return M}})}},6769:(de,ge,N)=>{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),de.exports=function(f){function h(M,p){return u.valueOrDefault(M.showLine,p.showLines)}f.controllers.line=f.DatasetController.extend({datasetElementType:v.Line,dataElementType:v.Point,update:function(M){var A,U,B,p=this,y=p.getMeta(),x=y.dataset,T=y.data||[],S=p.chart.options,k=S.elements.line,L=p.getScaleForId(y.yAxisID),K=p.getDataset(),re=h(K,S);for(re&&(B=x.custom||{},void 0!==K.tension&&void 0===K.lineTension&&(K.lineTension=K.tension),x._scale=L,x._datasetIndex=p.index,x._children=T,x._model={spanGaps:K.spanGaps?K.spanGaps:S.spanGaps,tension:B.tension?B.tension:u.valueOrDefault(K.lineTension,k.tension),backgroundColor:B.backgroundColor?B.backgroundColor:K.backgroundColor||k.backgroundColor,borderWidth:B.borderWidth?B.borderWidth:K.borderWidth||k.borderWidth,borderColor:B.borderColor?B.borderColor:K.borderColor||k.borderColor,borderCapStyle:B.borderCapStyle?B.borderCapStyle:K.borderCapStyle||k.borderCapStyle,borderDash:B.borderDash?B.borderDash:K.borderDash||k.borderDash,borderDashOffset:B.borderDashOffset?B.borderDashOffset:K.borderDashOffset||k.borderDashOffset,borderJoinStyle:B.borderJoinStyle?B.borderJoinStyle:K.borderJoinStyle||k.borderJoinStyle,fill:B.fill?B.fill:void 0!==K.fill?K.fill:k.fill,steppedLine:B.steppedLine?B.steppedLine:u.valueOrDefault(K.steppedLine,k.stepped),cubicInterpolationMode:B.cubicInterpolationMode?B.cubicInterpolationMode:u.valueOrDefault(K.cubicInterpolationMode,k.cubicInterpolationMode)},x.pivot()),A=0,U=T.length;A{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(f){var h=[];h.push('
    ');var M=f.data,p=M.datasets,y=M.labels;if(p.length)for(var x=0;x'),y[x]&&h.push(y[x]),h.push("");return h.push("
"),h.join("")},legend:{labels:{generateLabels:function(f){var h=f.data;return h.labels.length&&h.datasets.length?h.labels.map(function(M,p){var y=f.getDatasetMeta(0),x=h.datasets[0],S=y.data[p].custom||{},k=u.valueAtIndexOrDefault,L=f.options.elements.arc;return{text:M,fillStyle:S.backgroundColor?S.backgroundColor:k(x.backgroundColor,p,L.backgroundColor),strokeStyle:S.borderColor?S.borderColor:k(x.borderColor,p,L.borderColor),lineWidth:S.borderWidth?S.borderWidth:k(x.borderWidth,p,L.borderWidth),hidden:isNaN(x.data[p])||y.data[p].hidden,index:p}}):[]}},onClick:function(f,h){var y,x,T,M=h.index,p=this.chart;for(y=0,x=(p.data.datasets||[]).length;y0&&!isNaN(h)?2*Math.PI/M:0}})}},4657:(de,ge,N)=>{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),de.exports=function(f){f.controllers.radar=f.DatasetController.extend({datasetElementType:v.Line,dataElementType:v.Point,linkScales:u.noop,update:function(h){var M=this,p=M.getMeta(),x=p.data,T=p.dataset.custom||{},S=M.getDataset(),k=M.chart.options.elements.line,L=M.chart.scale;void 0!==S.tension&&void 0===S.lineTension&&(S.lineTension=S.tension),u.extend(p.dataset,{_datasetIndex:M.index,_scale:L,_children:x,_loop:!0,_model:{tension:T.tension?T.tension:u.valueOrDefault(S.lineTension,k.tension),backgroundColor:T.backgroundColor?T.backgroundColor:S.backgroundColor||k.backgroundColor,borderWidth:T.borderWidth?T.borderWidth:S.borderWidth||k.borderWidth,borderColor:T.borderColor?T.borderColor:S.borderColor||k.borderColor,fill:T.fill?T.fill:void 0!==S.fill?S.fill:k.fill,borderCapStyle:T.borderCapStyle?T.borderCapStyle:S.borderCapStyle||k.borderCapStyle,borderDash:T.borderDash?T.borderDash:S.borderDash||k.borderDash,borderDashOffset:T.borderDashOffset?T.borderDashOffset:S.borderDashOffset||k.borderDashOffset,borderJoinStyle:T.borderJoinStyle?T.borderJoinStyle:S.borderJoinStyle||k.borderJoinStyle}}),p.dataset.pivot(),u.each(x,function(A,U){M.updateElement(A,U,h)},M),M.updateBezierControlPoints()},updateElement:function(h,M,p){var y=this,x=h.custom||{},T=y.getDataset(),S=y.chart.scale,k=y.chart.options.elements.point,L=S.getPointPositionForValue(M,T.data[M]);void 0!==T.radius&&void 0===T.pointRadius&&(T.pointRadius=T.radius),void 0!==T.hitRadius&&void 0===T.pointHitRadius&&(T.pointHitRadius=T.hitRadius),u.extend(h,{_datasetIndex:y.index,_index:M,_scale:S,_model:{x:p?S.xCenter:L.x,y:p?S.yCenter:L.y,tension:x.tension?x.tension:u.valueOrDefault(T.lineTension,y.chart.options.elements.line.tension),radius:x.radius?x.radius:u.valueAtIndexOrDefault(T.pointRadius,M,k.radius),backgroundColor:x.backgroundColor?x.backgroundColor:u.valueAtIndexOrDefault(T.pointBackgroundColor,M,k.backgroundColor),borderColor:x.borderColor?x.borderColor:u.valueAtIndexOrDefault(T.pointBorderColor,M,k.borderColor),borderWidth:x.borderWidth?x.borderWidth:u.valueAtIndexOrDefault(T.pointBorderWidth,M,k.borderWidth),pointStyle:x.pointStyle?x.pointStyle:u.valueAtIndexOrDefault(T.pointStyle,M,k.pointStyle),hitRadius:x.hitRadius?x.hitRadius:u.valueAtIndexOrDefault(T.pointHitRadius,M,k.hitRadius)}}),h._model.skip=x.skip?x.skip:isNaN(h._model.x)||isNaN(h._model.y)},updateBezierControlPoints:function(){var h=this.chart.chartArea,M=this.getMeta();u.each(M.data,function(p,y){var x=p._model,T=u.splineCurve(u.previousItem(M.data,y,!0)._model,x,u.nextItem(M.data,y,!0)._model,x.tension);x.controlPointPreviousX=Math.max(Math.min(T.previous.x,h.right),h.left),x.controlPointPreviousY=Math.max(Math.min(T.previous.y,h.bottom),h.top),x.controlPointNextX=Math.max(Math.min(T.next.x,h.right),h.left),x.controlPointNextY=Math.max(Math.min(T.next.y,h.bottom),h.top),p.pivot()})},setHoverStyle:function(h){var M=this.chart.data.datasets[h._datasetIndex],p=h.custom||{},y=h._index,x=h._model;x.radius=p.hoverRadius?p.hoverRadius:u.valueAtIndexOrDefault(M.pointHoverRadius,y,this.chart.options.elements.point.hoverRadius),x.backgroundColor=p.hoverBackgroundColor?p.hoverBackgroundColor:u.valueAtIndexOrDefault(M.pointHoverBackgroundColor,y,u.getHoverColor(x.backgroundColor)),x.borderColor=p.hoverBorderColor?p.hoverBorderColor:u.valueAtIndexOrDefault(M.pointHoverBorderColor,y,u.getHoverColor(x.borderColor)),x.borderWidth=p.hoverBorderWidth?p.hoverBorderWidth:u.valueAtIndexOrDefault(M.pointHoverBorderWidth,y,x.borderWidth)},removeHoverStyle:function(h){var M=this.chart.data.datasets[h._datasetIndex],p=h.custom||{},y=h._index,x=h._model,T=this.chart.options.elements.point;x.radius=p.radius?p.radius:u.valueAtIndexOrDefault(M.pointRadius,y,T.radius),x.backgroundColor=p.backgroundColor?p.backgroundColor:u.valueAtIndexOrDefault(M.pointBackgroundColor,y,T.backgroundColor),x.borderColor=p.borderColor?p.borderColor:u.valueAtIndexOrDefault(M.pointBorderColor,y,T.borderColor),x.borderWidth=p.borderWidth?p.borderWidth:u.valueAtIndexOrDefault(M.pointBorderWidth,y,T.borderWidth)}})}},1895:(de,ge,N)=>{"use strict";N(9800)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(v){return"("+v.xLabel+", "+v.yLabel+")"}}}}),de.exports=function(v){v.controllers.scatter=v.controllers.line}},8103:(de,ge,N)=>{"use strict";var O=N(9800),v=N(8839),u=N(3305);O._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:u.noop,onComplete:u.noop}}),de.exports=function(f){f.Animation=v.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),f.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(h,M,p,y){var T,S,x=this.animations;for(M.chart=h,y||(h.animating=!0),T=0,S=x.length;T1&&(p=Math.floor(h.dropFrames),h.dropFrames=h.dropFrames%1),h.advance(1+p);var y=Date.now();h.dropFrames+=(y-M)/h.frameDuration,h.animations.length>0&&h.requestAnimationFrame()},advance:function(h){for(var p,y,M=this.animations,x=0;x=p.numSteps?(u.callback(p.onAnimationComplete,[p],y),y.animating=!1,M.splice(x,1)):++x}},Object.defineProperty(f.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(f.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(h){this.chart=h}})}},1047:(de,ge,N)=>{"use strict";var O=N(9800),v=N(3305),u=N(2814),f=N(2294),h=N(8244),M=N(2445);de.exports=function(p){function T(S){return"top"===S||"bottom"===S}p.types={},p.instances={},p.controllers={},v.extend(p.prototype,{construct:function(S,k){var L=this;k=function y(S){var k=(S=S||{}).data=S.data||{};return k.datasets=k.datasets||[],k.labels=k.labels||[],S.options=v.configMerge(O.global,O[S.type],S.options||{}),S}(k);var A=h.acquireContext(S,k),U=A&&A.canvas,B=U&&U.height,K=U&&U.width;L.id=v.uid(),L.ctx=A,L.canvas=U,L.config=k,L.width=K,L.height=B,L.aspectRatio=B?K/B:null,L.options=k.options,L._bufferedRender=!1,L.chart=L,L.controller=L,p.instances[L.id]=L,Object.defineProperty(L,"data",{get:function(){return L.config.data},set:function(re){L.config.data=re}}),A&&U?(L.initialize(),L.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var S=this;return M.notify(S,"beforeInit"),v.retinaScale(S,S.options.devicePixelRatio),S.bindEvents(),S.options.responsive&&S.resize(!0),S.ensureScalesHaveIDs(),S.buildOrUpdateScales(),S.initToolTip(),M.notify(S,"afterInit"),S},clear:function(){return v.canvas.clear(this),this},stop:function(){return p.animationService.cancelAnimation(this),this},resize:function(S){var k=this,L=k.options,A=k.canvas,U=L.maintainAspectRatio&&k.aspectRatio||null,B=Math.max(0,Math.floor(v.getMaximumWidth(A))),K=Math.max(0,Math.floor(U?B/U:v.getMaximumHeight(A)));if((k.width!==B||k.height!==K)&&(A.width=k.width=B,A.height=k.height=K,A.style.width=B+"px",A.style.height=K+"px",v.retinaScale(k,L.devicePixelRatio),!S)){var re={width:B,height:K};M.notify(k,"resize",[re]),k.options.onResize&&k.options.onResize(k,re),k.stop(),k.update(k.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var S=this.options,k=S.scales||{},L=S.scale;v.each(k.xAxes,function(A,U){A.id=A.id||"x-axis-"+U}),v.each(k.yAxes,function(A,U){A.id=A.id||"y-axis-"+U}),L&&(L.id=L.id||"scale")},buildOrUpdateScales:function(){var S=this,k=S.options,L=S.scales||{},A=[],U=Object.keys(L).reduce(function(B,K){return B[K]=!1,B},{});k.scales&&(A=A.concat((k.scales.xAxes||[]).map(function(B){return{options:B,dtype:"category",dposition:"bottom"}}),(k.scales.yAxes||[]).map(function(B){return{options:B,dtype:"linear",dposition:"left"}}))),k.scale&&A.push({options:k.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),v.each(A,function(B){var K=B.options,re=K.id,ve=v.valueOrDefault(K.type,B.dtype);T(K.position)!==T(B.dposition)&&(K.position=B.dposition),U[re]=!0;var Z=null;if(re in L&&L[re].type===ve)(Z=L[re]).options=K,Z.ctx=S.ctx,Z.chart=S;else{var X=p.scaleService.getScaleConstructor(ve);if(!X)return;Z=new X({id:re,type:ve,options:K,ctx:S.ctx,chart:S}),L[Z.id]=Z}Z.mergeTicksOptions(),B.isDefault&&(S.scale=Z)}),v.each(U,function(B,K){B||delete L[K]}),S.scales=L,p.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var S=this,k=[],L=[];return v.each(S.data.datasets,function(A,U){var B=S.getDatasetMeta(U),K=A.type||S.config.type;if(B.type&&B.type!==K&&(S.destroyDatasetMeta(U),B=S.getDatasetMeta(U)),B.type=K,k.push(B.type),B.controller)B.controller.updateIndex(U),B.controller.linkScales();else{var re=p.controllers[B.type];if(void 0===re)throw new Error('"'+B.type+'" is not a chart type.');B.controller=new re(S,U),L.push(B.controller)}},S),L},resetElements:function(){var S=this;v.each(S.data.datasets,function(k,L){S.getDatasetMeta(L).controller.reset()},S)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(S){var k=this;if((!S||"object"!=typeof S)&&(S={duration:S,lazy:arguments[1]}),function x(S){var k=S.options;v.each(S.scales,function(L){f.removeBox(S,L)}),k=v.configMerge(p.defaults.global,p.defaults[S.config.type],k),S.options=S.config.options=k,S.ensureScalesHaveIDs(),S.buildOrUpdateScales(),S.tooltip._options=k.tooltips,S.tooltip.initialize()}(k),M._invalidate(k),!1!==M.notify(k,"beforeUpdate")){k.tooltip._data=k.data;var L=k.buildOrUpdateControllers();v.each(k.data.datasets,function(A,U){k.getDatasetMeta(U).controller.buildOrUpdateElements()},k),k.updateLayout(),k.options.animation&&k.options.animation.duration&&v.each(L,function(A){A.reset()}),k.updateDatasets(),k.tooltip.initialize(),k.lastActive=[],M.notify(k,"afterUpdate"),k._bufferedRender?k._bufferedRequest={duration:S.duration,easing:S.easing,lazy:S.lazy}:k.render(S)}},updateLayout:function(){var S=this;!1!==M.notify(S,"beforeLayout")&&(f.update(this,this.width,this.height),M.notify(S,"afterScaleUpdate"),M.notify(S,"afterLayout"))},updateDatasets:function(){var S=this;if(!1!==M.notify(S,"beforeDatasetsUpdate")){for(var k=0,L=S.data.datasets.length;k"u"&&0!==U.duration)){var K=new p.Animation({numSteps:(L||U.duration)/16.66,easing:S.easing||U.easing,render:function(re,ve){var X=ve.currentStep,he=X/ve.numSteps;re.draw((0,v.easing.effects[ve.easing])(he),he,X)},onAnimationProgress:U.onProgress,onAnimationComplete:B});p.animationService.addAnimation(k,K,L,A)}else k.draw(),B(new p.Animation({numSteps:0,chart:k}));return k}},draw:function(S){var k=this;k.clear(),v.isNullOrUndef(S)&&(S=1),k.transition(S),!1!==M.notify(k,"beforeDraw",[S])&&(v.each(k.boxes,function(L){L.draw(k.chartArea)},k),k.scale&&k.scale.draw(),k.drawDatasets(S),k._drawTooltip(S),M.notify(k,"afterDraw",[S]))},transition:function(S){for(var k=this,L=0,A=(k.data.datasets||[]).length;L=0;--L)k.isDatasetVisible(L)&&k.drawDataset(L,S);M.notify(k,"afterDatasetsDraw",[S])}},drawDataset:function(S,k){var L=this,A=L.getDatasetMeta(S),U={meta:A,index:S,easingValue:k};!1!==M.notify(L,"beforeDatasetDraw",[U])&&(A.controller.draw(k),M.notify(L,"afterDatasetDraw",[U]))},_drawTooltip:function(S){var k=this,L=k.tooltip,A={tooltip:L,easingValue:S};!1!==M.notify(k,"beforeTooltipDraw",[A])&&(L.draw(),M.notify(k,"afterTooltipDraw",[A]))},getElementAtEvent:function(S){return u.modes.single(this,S)},getElementsAtEvent:function(S){return u.modes.label(this,S,{intersect:!0})},getElementsAtXAxis:function(S){return u.modes["x-axis"](this,S,{intersect:!0})},getElementsAtEventForMode:function(S,k,L){var A=u.modes[k];return"function"==typeof A?A(this,S,L):[]},getDatasetAtEvent:function(S){return u.modes.dataset(this,S,{intersect:!0})},getDatasetMeta:function(S){var k=this,L=k.data.datasets[S];L._meta||(L._meta={});var A=L._meta[k.id];return A||(A=L._meta[k.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),A},getVisibleDatasetCount:function(){for(var S=0,k=0,L=this.data.datasets.length;k{"use strict";var O=N(3305);de.exports=function(v){var u=["push","pop","shift","splice","unshift"];function h(M,p){var y=M._chartjs;if(y){var x=y.listeners,T=x.indexOf(p);-1!==T&&x.splice(T,1),!(x.length>0)&&(u.forEach(function(S){delete M[S]}),delete M._chartjs)}}v.DatasetController=function(M,p){this.initialize(M,p)},O.extend(v.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(M,p){var y=this;y.chart=M,y.index=p,y.linkScales(),y.addElements()},updateIndex:function(M){this.index=M},linkScales:function(){var M=this,p=M.getMeta(),y=M.getDataset();(null===p.xAxisID||!(p.xAxisID in M.chart.scales))&&(p.xAxisID=y.xAxisID||M.chart.options.scales.xAxes[0].id),(null===p.yAxisID||!(p.yAxisID in M.chart.scales))&&(p.yAxisID=y.yAxisID||M.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(M){return this.chart.scales[M]},reset:function(){this.update(!0)},destroy:function(){this._data&&h(this._data,this)},createMetaDataset:function(){var M=this,p=M.datasetElementType;return p&&new p({_chart:M.chart,_datasetIndex:M.index})},createMetaData:function(M){var p=this,y=p.dataElementType;return y&&new y({_chart:p.chart,_datasetIndex:p.index,_index:M})},addElements:function(){var T,S,M=this,p=M.getMeta(),y=M.getDataset().data||[],x=p.data;for(T=0,S=y.length;Tx&&M.insertElements(x,T-x)},insertElements:function(M,p){for(var y=0;y{"use strict";var O=N(3305);de.exports={_set:function(v,u){return O.merge(this[v]||(this[v]={}),u)}}},8839:(de,ge,N)=>{"use strict";var O=N(7726),v=N(3305),f=function(h){v.extend(this,h),this.initialize.apply(this,arguments)};v.extend(f.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var h=this;return h._view||(h._view=v.clone(h._model)),h._start={},h},transition:function(h){var M=this,p=M._model,y=M._start,x=M._view;return p&&1!==h?(x||(x=M._view={}),y||(y=M._start={}),function u(h,M,p,y){var T,S,k,L,A,U,B,K,re,x=Object.keys(p);for(T=0,S=x.length;T{"use strict";var O=N(7726),v=N(9800),u=N(3305);de.exports=function(f){function h(y,x,T){var S;return"string"==typeof y?(S=parseInt(y,10),-1!==y.indexOf("%")&&(S=S/100*x.parentNode[T])):S=y,S}function M(y){return null!=y&&"none"!==y}function p(y,x,T){var S=document.defaultView,k=y.parentNode,L=S.getComputedStyle(y)[x],A=S.getComputedStyle(k)[x],U=M(L),B=M(A),K=Number.POSITIVE_INFINITY;return U||B?Math.min(U?h(L,y,T):K,B?h(A,k,T):K):"none"}u.configMerge=function(){return u.merge(u.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(y,x,T,S){var k=x[y]||{},L=T[y];"scales"===y?x[y]=u.scaleMerge(k,L):"scale"===y?x[y]=u.merge(k,[f.scaleService.getScaleDefaults(L.type),L]):u._merger(y,x,T,S)}})},u.scaleMerge=function(){return u.merge(u.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(y,x,T,S){if("xAxes"===y||"yAxes"===y){var L,A,U,k=T[y].length;for(x[y]||(x[y]=[]),L=0;L=x[y].length&&x[y].push({}),u.merge(x[y][L],!x[y][L].type||U.type&&U.type!==x[y][L].type?[f.scaleService.getScaleDefaults(A),U]:U)}else u._merger(y,x,T,S)}})},u.where=function(y,x){if(u.isArray(y)&&Array.prototype.filter)return y.filter(x);var T=[];return u.each(y,function(S){x(S)&&T.push(S)}),T},u.findIndex=Array.prototype.findIndex?function(y,x,T){return y.findIndex(x,T)}:function(y,x,T){T=void 0===T?y:T;for(var S=0,k=y.length;S=0;S--){var k=y[S];if(x(k))return k}},u.isNumber=function(y){return!isNaN(parseFloat(y))&&isFinite(y)},u.almostEquals=function(y,x,T){return Math.abs(y-x)y},u.max=function(y){return y.reduce(function(x,T){return isNaN(T)?x:Math.max(x,T)},Number.NEGATIVE_INFINITY)},u.min=function(y){return y.reduce(function(x,T){return isNaN(T)?x:Math.min(x,T)},Number.POSITIVE_INFINITY)},u.sign=Math.sign?function(y){return Math.sign(y)}:function(y){return 0==(y=+y)||isNaN(y)?y:y>0?1:-1},u.log10=Math.log10?function(y){return Math.log10(y)}:function(y){var x=Math.log(y)*Math.LOG10E,T=Math.round(x);return y===Math.pow(10,T)?T:x},u.toRadians=function(y){return y*(Math.PI/180)},u.toDegrees=function(y){return y*(180/Math.PI)},u.getAngleFromPoint=function(y,x){var T=x.x-y.x,S=x.y-y.y,k=Math.sqrt(T*T+S*S),L=Math.atan2(S,T);return L<-.5*Math.PI&&(L+=2*Math.PI),{angle:L,distance:k}},u.distanceBetweenPoints=function(y,x){return Math.sqrt(Math.pow(x.x-y.x,2)+Math.pow(x.y-y.y,2))},u.aliasPixel=function(y){return y%2==0?0:.5},u.splineCurve=function(y,x,T,S){var k=y.skip?x:y,L=x,A=T.skip?x:T,U=Math.sqrt(Math.pow(L.x-k.x,2)+Math.pow(L.y-k.y,2)),B=Math.sqrt(Math.pow(A.x-L.x,2)+Math.pow(A.y-L.y,2)),K=U/(U+B),re=B/(U+B),ve=S*(K=isNaN(K)?0:K),Z=S*(re=isNaN(re)?0:re);return{previous:{x:L.x-ve*(A.x-k.x),y:L.y-ve*(A.y-k.y)},next:{x:L.x+Z*(A.x-k.x),y:L.y+Z*(A.y-k.y)}}},u.EPSILON=Number.EPSILON||1e-14,u.splineCurveMonotone=function(y){var S,k,L,A,B,K,re,ve,Z,x=(y||[]).map(function(X){return{model:X._model,deltaK:0,mK:0}}),T=x.length;for(S=0;S0?x[S-1]:null,(A=S0?x[S-1]:null)&&!k.model.skip&&(L.model.controlPointPreviousX=L.model.x-(Z=(L.model.x-k.model.x)/3),L.model.controlPointPreviousY=L.model.y-Z*L.mK),A&&!A.model.skip&&(L.model.controlPointNextX=L.model.x+(Z=(A.model.x-L.model.x)/3),L.model.controlPointNextY=L.model.y+Z*L.mK))},u.nextItem=function(y,x,T){return T?x>=y.length-1?y[0]:y[x+1]:x>=y.length-1?y[y.length-1]:y[x+1]},u.previousItem=function(y,x,T){return T?x<=0?y[y.length-1]:y[x-1]:x<=0?y[0]:y[x-1]},u.niceNum=function(y,x){var T=Math.floor(u.log10(y)),S=y/Math.pow(10,T);return(x?S<1.5?1:S<3?2:S<7?5:10:S<=1?1:S<=2?2:S<=5?5:10)*Math.pow(10,T)},u.requestAnimFrame=typeof window>"u"?function(y){y()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(y){return window.setTimeout(y,1e3/60)},u.getRelativePosition=function(y,x){var T,S,k=y.originalEvent||y,L=y.currentTarget||y.srcElement,A=L.getBoundingClientRect(),U=k.touches;U&&U.length>0?(T=U[0].clientX,S=U[0].clientY):(T=k.clientX,S=k.clientY);var B=parseFloat(u.getStyle(L,"padding-left")),K=parseFloat(u.getStyle(L,"padding-top")),re=parseFloat(u.getStyle(L,"padding-right")),ve=parseFloat(u.getStyle(L,"padding-bottom")),X=A.bottom-A.top-K-ve;return{x:T=Math.round((T-A.left-B)/(A.right-A.left-B-re)*L.width/x.currentDevicePixelRatio),y:S=Math.round((S-A.top-K)/X*L.height/x.currentDevicePixelRatio)}},u.getConstraintWidth=function(y){return p(y,"max-width","clientWidth")},u.getConstraintHeight=function(y){return p(y,"max-height","clientHeight")},u.getMaximumWidth=function(y){var x=y.parentNode;if(!x)return y.clientWidth;var T=parseInt(u.getStyle(x,"padding-left"),10),S=parseInt(u.getStyle(x,"padding-right"),10),k=x.clientWidth-T-S,L=u.getConstraintWidth(y);return isNaN(L)?k:Math.min(k,L)},u.getMaximumHeight=function(y){var x=y.parentNode;if(!x)return y.clientHeight;var T=parseInt(u.getStyle(x,"padding-top"),10),S=parseInt(u.getStyle(x,"padding-bottom"),10),k=x.clientHeight-T-S,L=u.getConstraintHeight(y);return isNaN(L)?k:Math.min(k,L)},u.getStyle=function(y,x){return y.currentStyle?y.currentStyle[x]:document.defaultView.getComputedStyle(y,null).getPropertyValue(x)},u.retinaScale=function(y,x){var T=y.currentDevicePixelRatio=x||window.devicePixelRatio||1;if(1!==T){var S=y.canvas,k=y.height,L=y.width;S.height=k*T,S.width=L*T,y.ctx.scale(T,T),!S.style.height&&!S.style.width&&(S.style.height=k+"px",S.style.width=L+"px")}},u.fontString=function(y,x,T){return x+" "+y+"px "+T},u.longestText=function(y,x,T,S){var k=(S=S||{}).data=S.data||{},L=S.garbageCollect=S.garbageCollect||[];S.font!==x&&(k=S.data={},L=S.garbageCollect=[],S.font=x),y.font=x;var A=0;u.each(T,function(K){null!=K&&!0!==u.isArray(K)?A=u.measureText(y,k,L,A,K):u.isArray(K)&&u.each(K,function(re){null!=re&&!u.isArray(re)&&(A=u.measureText(y,k,L,A,re))})});var U=L.length/2;if(U>T.length){for(var B=0;BS&&(S=L),S},u.numberOfLabelLines=function(y){var x=1;return u.each(y,function(T){u.isArray(T)&&T.length>x&&(x=T.length)}),x},u.color=O?function(y){return y instanceof CanvasGradient&&(y=v.global.defaultColor),O(y)}:function(y){return console.error("Color.js not found!"),y},u.getHoverColor=function(y){return y instanceof CanvasPattern?y:u.color(y).saturate(.5).darken(.1).rgbString()}}},2814:(de,ge,N)=>{"use strict";var O=N(3305);function v(y,x){return y.native?{x:y.x,y:y.y}:O.getRelativePosition(y,x)}function u(y,x){var S,k,L,A,U;for(k=0,A=y.data.datasets.length;k0&&(L=y.getDatasetMeta(L[0]._datasetIndex).data),L},"x-axis":function(y,x){return p(y,x,{intersect:!1})},point:function(y,x){return f(y,v(x,y))},nearest:function(y,x,T){var S=v(x,y);T.axis=T.axis||"xy";var k=M(T.axis),L=h(y,S,T.intersect,k);return L.length>1&&L.sort(function(A,U){var re=A.getArea()-U.getArea();return 0===re&&(re=A._datasetIndex-U._datasetIndex),re}),L.slice(0,1)},x:function(y,x,T){var S=v(x,y),k=[],L=!1;return u(y,function(A){A.inXRange(S.x)&&k.push(A),A.inRange(S.x,S.y)&&(L=!0)}),T.intersect&&!L&&(k=[]),k},y:function(y,x,T){var S=v(x,y),k=[],L=!1;return u(y,function(A){A.inYRange(S.y)&&k.push(A),A.inRange(S.x,S.y)&&(L=!0)}),T.intersect&&!L&&(k=[]),k}}}},5979:(de,ge,N)=>{"use strict";N(9800)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),de.exports=function(){var v=function(u,f){return this.construct(u,f),this};return v.Chart=v,v}},2294:(de,ge,N)=>{"use strict";var O=N(3305);function v(f,h){return O.where(f,function(M){return M.position===h})}function u(f,h){f.forEach(function(M,p){return M._tmpIndex_=p,M}),f.sort(function(M,p){var y=h?p:M,x=h?M:p;return y.weight===x.weight?y._tmpIndex_-x._tmpIndex_:y.weight-x.weight}),f.forEach(function(M){delete M._tmpIndex_})}de.exports={defaults:{},addBox:function(f,h){f.boxes||(f.boxes=[]),h.fullWidth=h.fullWidth||!1,h.position=h.position||"top",h.weight=h.weight||0,f.boxes.push(h)},removeBox:function(f,h){var M=f.boxes?f.boxes.indexOf(h):-1;-1!==M&&f.boxes.splice(M,1)},configure:function(f,h,M){for(var T,p=["fullWidth","position","weight"],y=p.length,x=0;x{"use strict";var O=N(9800),v=N(3305);O._set("global",{plugins:{}}),de.exports={_plugins:[],_cacheId:0,register:function(u){var f=this._plugins;[].concat(u).forEach(function(h){-1===f.indexOf(h)&&f.push(h)}),this._cacheId++},unregister:function(u){var f=this._plugins;[].concat(u).forEach(function(h){var M=f.indexOf(h);-1!==M&&f.splice(M,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(u,f,h){var y,x,T,S,k,M=this.descriptors(u),p=M.length;for(y=0;y{"use strict";var O=N(9800),v=N(8839),u=N(3305),f=N(8347);function h(p){var x,T,y=[];for(x=0,T=p.length;x"u"&&(S.minor[k]=S[k]),typeof S.major[k]>"u"&&(S.major[k]=S[k]))},beforeUpdate:function(){u.callback(this.options.beforeUpdate,[this])},update:function(S,k,L){var U,B,K,re,ve,Z,A=this;for(A.beforeUpdate(),A.maxWidth=S,A.maxHeight=k,A.margins=u.extend({left:0,right:0,top:0,bottom:0},L),A.longestTextCache=A.longestTextCache||{},A.beforeSetDimensions(),A.setDimensions(),A.afterSetDimensions(),A.beforeDataLimits(),A.determineDataLimits(),A.afterDataLimits(),A.beforeBuildTicks(),ve=A.buildTicks()||[],A.afterBuildTicks(),A.beforeTickToLabelConversion(),K=A.convertTicksToLabels(ve)||A.ticks,A.afterTickToLabelConversion(),A.ticks=K,U=0,B=K.length;UX&&BS.maxHeight){B--;break}B++,re=ve*K}S.labelRotation=B},afterCalculateTickRotation:function(){u.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){u.callback(this.options.beforeFit,[this])},fit:function(){var S=this,k=S.minSize={width:0,height:0},L=h(S._ticks),A=S.options,U=A.ticks,B=A.scaleLabel,K=A.gridLines,re=A.display,ve=S.isHorizontal(),Z=x(U),X=A.gridLines.tickMarkLength;if(k.width=ve?S.isFullWidth()?S.maxWidth-S.margins.left-S.margins.right:S.maxWidth:re&&K.drawTicks?X:0,k.height=ve?re&&K.drawTicks?X:0:S.maxHeight,B.display&&re){var Q=T(B)+u.options.toPadding(B.padding).height;ve?k.height+=Q:k.width+=Q}if(U.display&&re){var ee=u.longestText(S.ctx,Z.font,L,S.longestTextCache),ae=u.numberOfLabelLines(L),le=.5*Z.size,J=S.options.ticks.padding;if(ve){S.longestLabelWidth=ee;var Te=u.toRadians(S.labelRotation),Se=Math.cos(Te),ke=Math.sin(Te);k.height=Math.min(S.maxHeight,k.height+(ke*ee+Z.size*ae+le*(ae-1)+le)+J),S.ctx.font=Z.font;var tt=y(S.ctx,L[0],Z.font),st=y(S.ctx,L[L.length-1],Z.font);0!==S.labelRotation?(S.paddingLeft="bottom"===A.position?Se*tt+3:Se*le+3,S.paddingRight="bottom"===A.position?Se*le+3:Se*st+3):(S.paddingLeft=tt/2+3,S.paddingRight=st/2+3)}else U.mirror?ee=0:ee+=J+le,k.width=Math.min(S.maxWidth,k.width+ee),S.paddingTop=Z.size/2,S.paddingBottom=Z.size/2}S.handleMargins(),S.width=k.width,S.height=k.height},handleMargins:function(){var S=this;S.margins&&(S.paddingLeft=Math.max(S.paddingLeft-S.margins.left,0),S.paddingTop=Math.max(S.paddingTop-S.margins.top,0),S.paddingRight=Math.max(S.paddingRight-S.margins.right,0),S.paddingBottom=Math.max(S.paddingBottom-S.margins.bottom,0))},afterFit:function(){u.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(S){if(u.isNullOrUndef(S))return NaN;if("number"==typeof S&&!isFinite(S))return NaN;if(S)if(this.isHorizontal()){if(void 0!==S.x)return this.getRightValue(S.x)}else if(void 0!==S.y)return this.getRightValue(S.y);return S},getLabelForIndex:u.noop,getPixelForValue:u.noop,getValueForPixel:u.noop,getPixelForTick:function(S){var k=this,L=k.options.offset;if(k.isHorizontal()){var U=(k.width-(k.paddingLeft+k.paddingRight))/Math.max(k._ticks.length-(L?0:1),1),B=U*S+k.paddingLeft;return L&&(B+=U/2),k.left+Math.round(B)+(k.isFullWidth()?k.margins.left:0)}return k.top+S*((k.height-(k.paddingTop+k.paddingBottom))/(k._ticks.length-1))},getPixelForDecimal:function(S){var k=this;return k.isHorizontal()?k.left+Math.round((k.width-(k.paddingLeft+k.paddingRight))*S+k.paddingLeft)+(k.isFullWidth()?k.margins.left:0):k.top+S*k.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var S=this,k=S.min,L=S.max;return S.beginAtZero?0:k<0&&L<0?L:k>0&&L>0?k:0},_autoSkip:function(S){var k,X,he,Q,L=this,A=L.isHorizontal(),U=L.options.ticks.minor,B=S.length,K=u.toRadians(L.labelRotation),re=Math.cos(K),ve=L.longestLabelWidth*re,Z=[];for(U.maxTicksLimit&&(Q=U.maxTicksLimit),A&&(k=!1,(ve+U.autoSkipPadding)*B>L.width-(L.paddingLeft+L.paddingRight)&&(k=1+Math.floor((ve+U.autoSkipPadding)*B/(L.width-(L.paddingLeft+L.paddingRight)))),Q&&B>Q&&(k=Math.max(k,Math.floor(B/Q)))),X=0;X1&&X%k>0||X%k==0&&X+k>=B)&&X!==B-1&&delete he.label,Z.push(he);return Z},draw:function(S){var k=this,L=k.options;if(L.display){var A=k.ctx,U=O.global,B=L.ticks.minor,K=L.ticks.major||B,re=L.gridLines,ve=L.scaleLabel,Z=0!==k.labelRotation,X=k.isHorizontal(),he=B.autoSkip?k._autoSkip(k.getTicks()):k.getTicks(),q=u.valueOrDefault(B.fontColor,U.defaultFontColor),Q=x(B),ee=u.valueOrDefault(K.fontColor,U.defaultFontColor),ae=x(K),le=re.drawTicks?re.tickMarkLength:0,J=u.valueOrDefault(ve.fontColor,U.defaultFontColor),Te=x(ve),Se=u.options.toPadding(ve.padding),ke=u.toRadians(k.labelRotation),Be=[],tt=k.options.gridLines.lineWidth,st="right"===L.position?k.right:k.right-tt-le,at="right"===L.position?k.right+le:k.right,jt="bottom"===L.position?k.top+tt:k.bottom-le-tt,an="bottom"===L.position?k.top+tt+le:k.bottom+tt;if(u.each(he,function(te,pe){if(!u.isNullOrUndef(te.label)){var ue,be,me,Me,fe=te.label;pe===k.zeroLineIndex&&L.offset===re.offsetGridLines?(ue=re.zeroLineWidth,be=re.zeroLineColor,me=re.zeroLineBorderDash,Me=re.zeroLineBorderDashOffset):(ue=u.valueAtIndexOrDefault(re.lineWidth,pe),be=u.valueAtIndexOrDefault(re.color,pe),me=u.valueOrDefault(re.borderDash,U.borderDash),Me=u.valueOrDefault(re.borderDashOffset,U.borderDashOffset));var De,Ie,Ye,ut,mt,it,fn,An,bt,qt,Gn="middle",oi="middle",Kr=B.padding;if(X){var Io=le+Kr;"bottom"===L.position?(oi=Z?"middle":"top",Gn=Z?"right":"center",qt=k.top+Io):(oi=Z?"middle":"bottom",Gn=Z?"left":"center",qt=k.bottom-Io);var Ai=M(k,pe,re.offsetGridLines&&he.length>1);Ai1);si{"use strict";var O=N(9800),v=N(3305),u=N(2294);de.exports=function(f){f.scaleService={constructors:{},defaults:{},registerScaleType:function(h,M,p){this.constructors[h]=M,this.defaults[h]=v.clone(p)},getScaleConstructor:function(h){return this.constructors.hasOwnProperty(h)?this.constructors[h]:void 0},getScaleDefaults:function(h){return this.defaults.hasOwnProperty(h)?v.merge({},[O.scale,this.defaults[h]]):{}},updateScaleDefaults:function(h,M){var p=this;p.defaults.hasOwnProperty(h)&&(p.defaults[h]=v.extend(p.defaults[h],M))},addScalesToLayout:function(h){v.each(h.scales,function(M){M.fullWidth=M.options.fullWidth,M.position=M.options.position,M.weight=M.options.weight,u.addBox(h,M)})}}}},8347:(de,ge,N)=>{"use strict";var O=N(3305);de.exports={formatters:{values:function(v){return O.isArray(v)?v:""+v},linear:function(v,u,f){var h=f.length>3?f[2]-f[1]:f[1]-f[0];Math.abs(h)>1&&v!==Math.floor(v)&&(h=v-Math.floor(v));var M=O.log10(Math.abs(h)),p="";if(0!==v){var y=-1*Math.floor(M);y=Math.max(Math.min(y,20),0),p=v.toFixed(y)}else p="0";return p},logarithmic:function(v,u,f){var h=v/Math.pow(10,Math.floor(O.log10(v)));return 0===v?"0":1===h||2===h||5===h||0===u||u===f.length-1?v.toExponential():""}}}},480:(de,ge,N)=>{"use strict";var O=N(9800),v=N(8839),u=N(3305);O._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:u.noop,title:function(f,h){var M="",p=h.labels,y=p?p.length:0;if(f.length>0){var x=f[0];x.xLabel?M=x.xLabel:y>0&&x.indexU.height-L.height&&(re="bottom");var ve,Z,X,he,q,Q=(B.left+B.right)/2,ee=(B.top+B.bottom)/2;"center"===re?(ve=function(le){return le<=Q},Z=function(le){return le>Q}):(ve=function(le){return le<=L.width/2},Z=function(le){return le>=U.width-L.width/2}),X=function(le){return le+L.width+A.caretSize+A.caretPadding>U.width},he=function(le){return le-L.width-A.caretSize-A.caretPadding<0},q=function(le){return le<=ee?"top":"bottom"},ve(A.x)?(K="left",X(A.x)&&(K="center",re=q(A.y))):Z(A.x)&&(K="right",he(A.x)&&(K="center",re=q(A.y)));var ae=k._options;return{xAlign:ae.xAlign?ae.xAlign:K,yAlign:ae.yAlign?ae.yAlign:re}}(this,X),Z=function S(k,L,A,U){var B=k.x,K=k.y,ve=k.caretPadding,X=A.xAlign,he=A.yAlign,q=k.caretSize+ve,Q=k.cornerRadius+ve;return"right"===X?B-=L.width:"center"===X&&((B-=L.width/2)+L.width>U.width&&(B=U.width-L.width),B<0&&(B=0)),"top"===he?K+=q:K-="bottom"===he?L.height+q:L.height/2,"center"===he?"left"===X?B+=q:"right"===X&&(B-=q):"left"===X?B-=Q:"right"===X&&(B+=Q),{x:B,y:K}}(B,X,ve,L._chart)}else B.opacity=0;return B.xAlign=ve.xAlign,B.yAlign=ve.yAlign,B.x=Z.x,B.y=Z.y,B.width=X.width,B.height=X.height,B.caretX=he.x,B.caretY=he.y,L._model=B,k&&A.custom&&A.custom.call(L,B),L},drawCaret:function(k,L){var A=this._chart.ctx,B=this.getCaretPosition(k,L,this._view);A.lineTo(B.x1,B.y1),A.lineTo(B.x2,B.y2),A.lineTo(B.x3,B.y3)},getCaretPosition:function(k,L,A){var U,B,K,re,ve,Z,X=A.caretSize,he=A.cornerRadius,q=A.xAlign,Q=A.yAlign,ee=k.x,ae=k.y,le=L.width,J=L.height;if("center"===Q)ve=ae+J/2,"left"===q?(B=(U=ee)-X,K=U,re=ve+X,Z=ve-X):(B=(U=ee+le)+X,K=U,re=ve-X,Z=ve+X);else if("left"===q?(U=(B=ee+he+X)-X,K=B+X):"right"===q?(U=(B=ee+le-he-X)-X,K=B+X):(U=(B=A.caretX)-X,K=B+X),"top"===Q)ve=(re=ae)-X,Z=re;else{ve=(re=ae+J)+X,Z=re;var Te=K;K=U,U=Te}return{x1:U,x2:B,x3:K,y1:re,y2:ve,y3:Z}},drawTitle:function(k,L,A,U){var B=L.title;if(B.length){A.textAlign=L._titleAlign,A.textBaseline="top";var ve,Z,K=L.titleFontSize,re=L.titleSpacing;for(A.fillStyle=h(L.titleFontColor,U),A.font=u.fontString(K,L._titleFontStyle,L._titleFontFamily),ve=0,Z=B.length;ve0&&A.stroke()},draw:function(){var k=this._chart.ctx,L=this._view;if(0!==L.opacity){var A={width:L.width,height:L.height},U={x:L.x,y:L.y},B=Math.abs(L.opacity<.001)?0:L.opacity;this._options.enabled&&(L.title.length||L.beforeBody.length||L.body.length||L.afterBody.length||L.footer.length)&&(this.drawBackground(U,L,k,A,B),U.x+=L.xPadding,U.y+=L.yPadding,this.drawTitle(U,L,k,B),this.drawBody(U,L,k,B),this.drawFooter(U,L,k,B))}},handleEvent:function(k){var U,L=this,A=L._options;return L._lastActive=L._lastActive||[],L._active="mouseout"===k.type?[]:L._chart.getElementsAtEventForMode(k,A.mode,A),(U=!u.arrayEquals(L._active,L._lastActive))&&(L._lastActive=L._active,(A.enabled||A.custom)&&(L._eventPosition={x:k.x,y:k.y},L.update(!0),L.pivot())),U}}),f.Tooltip.positioners={average:function(k){if(!k.length)return!1;var L,A,U=0,B=0,K=0;for(L=0,A=k.length;L{"use strict";var O=N(9800),v=N(8839),u=N(3305);O._set("global",{elements:{arc:{backgroundColor:O.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),de.exports=v.extend({inLabelRange:function(f){var h=this._view;return!!h&&Math.pow(f-h.x,2)S;)y-=2*Math.PI;for(;y=T&&y<=S&&x>=M.innerRadius&&x<=M.outerRadius}return!1},getCenterPoint:function(){var f=this._view,h=(f.startAngle+f.endAngle)/2,M=(f.innerRadius+f.outerRadius)/2;return{x:f.x+Math.cos(h)*M,y:f.y+Math.sin(h)*M}},getArea:function(){var f=this._view;return Math.PI*((f.endAngle-f.startAngle)/(2*Math.PI))*(Math.pow(f.outerRadius,2)-Math.pow(f.innerRadius,2))},tooltipPosition:function(){var f=this._view,h=f.startAngle+(f.endAngle-f.startAngle)/2,M=(f.outerRadius-f.innerRadius)/2+f.innerRadius;return{x:f.x+Math.cos(h)*M,y:f.y+Math.sin(h)*M}},draw:function(){var f=this._chart.ctx,h=this._view,M=h.startAngle,p=h.endAngle;f.beginPath(),f.arc(h.x,h.y,h.outerRadius,M,p),f.arc(h.x,h.y,h.innerRadius,p,M,!0),f.closePath(),f.strokeStyle=h.borderColor,f.lineWidth=h.borderWidth,f.fillStyle=h.backgroundColor,f.fill(),f.lineJoin="bevel",h.borderWidth&&f.stroke()}})},3819:(de,ge,N)=>{"use strict";var O=N(9800),v=N(8839),u=N(3305),f=O.global;O._set("global",{elements:{line:{tension:.4,backgroundColor:f.defaultColor,borderWidth:3,borderColor:f.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),de.exports=v.extend({draw:function(){var k,L,A,U,h=this,M=h._view,p=h._chart.ctx,y=M.spanGaps,x=h._children.slice(),T=f.elements.line,S=-1;for(h._loop&&x.length&&x.push(x[0]),p.save(),p.lineCap=M.borderCapStyle||T.borderCapStyle,p.setLineDash&&p.setLineDash(M.borderDash||T.borderDash),p.lineDashOffset=M.borderDashOffset||T.borderDashOffset,p.lineJoin=M.borderJoinStyle||T.borderJoinStyle,p.lineWidth=M.borderWidth||T.borderWidth,p.strokeStyle=M.borderColor||f.defaultColor,p.beginPath(),S=-1,k=0;k{"use strict";var O=N(9800),v=N(8839),u=N(3305),f=O.global.defaultColor;function h(p){var y=this._view;return!!y&&Math.abs(p-y.x){"use strict";var O=N(9800),v=N(8839);function u(h){return void 0!==h._view.width}function f(h){var p,y,x,T,M=h._view;if(u(h)){var S=M.width/2;p=M.x-S,y=M.x+S,x=Math.min(M.y,M.base),T=Math.max(M.y,M.base)}else{var k=M.height/2;p=Math.min(M.x,M.base),y=Math.max(M.x,M.base),x=M.y-k,T=M.y+k}return{left:p,top:x,right:y,bottom:T}}O._set("global",{elements:{rectangle:{backgroundColor:O.global.defaultColor,borderColor:O.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),de.exports=v.extend({draw:function(){var p,y,x,T,S,k,L,h=this._chart.ctx,M=this._view,A=M.borderWidth;if(M.horizontal?(x=M.y-M.height/2,T=M.y+M.height/2,S=(y=M.x)>(p=M.base)?1:-1,k=1,L=M.borderSkipped||"left"):(p=M.x-M.width/2,y=M.x+M.width/2,S=1,k=(T=M.base)>(x=M.y)?1:-1,L=M.borderSkipped||"bottom"),A){var U=Math.min(Math.abs(p-y),Math.abs(x-T)),B=(A=A>U?U:A)/2,K=p+("left"!==L?B*S:0),re=y+("right"!==L?-B*S:0),ve=x+("top"!==L?B*k:0),Z=T+("bottom"!==L?-B*k:0);K!==re&&(x=ve,T=Z),ve!==Z&&(p=K,y=re)}h.beginPath(),h.fillStyle=M.backgroundColor,h.strokeStyle=M.borderColor,h.lineWidth=A;var X=[[p,T],[p,x],[y,x],[y,T]],q=["bottom","left","top","right"].indexOf(L,0);function Q(le){return X[(q+le)%4]}-1===q&&(q=0);var ee=Q(0);h.moveTo(ee[0],ee[1]);for(var ae=1;ae<4;ae++)ee=Q(ae),h.lineTo(ee[0],ee[1]);h.fill(),A&&h.stroke()},height:function(){var h=this._view;return h.base-h.y},inRange:function(h,M){var p=!1;if(this._view){var y=f(this);p=h>=y.left&&h<=y.right&&M>=y.top&&M<=y.bottom}return p},inLabelRange:function(h,M){var p=this;if(!p._view)return!1;var x=f(p);return u(p)?h>=x.left&&h<=x.right:M>=x.top&&M<=x.bottom},inXRange:function(h){var M=f(this);return h>=M.left&&h<=M.right},inYRange:function(h){var M=f(this);return h>=M.top&&h<=M.bottom},getCenterPoint:function(){var M,p,h=this._view;return u(this)?(M=h.x,p=(h.y+h.base)/2):(M=(h.x+h.base)/2,p=h.y),{x:M,y:p}},getArea:function(){var h=this._view;return h.width*Math.abs(h.y-h.base)},tooltipPosition:function(){var h=this._view;return{x:h.x,y:h.y}}})},9931:(de,ge,N)=>{"use strict";de.exports={},de.exports.Arc=N(280),de.exports.Line=N(3819),de.exports.Point=N(4674),de.exports.Rectangle=N(8667)},2397:(de,ge,N)=>{"use strict";var O=N(4396),v=de.exports={clear:function(u){u.ctx.clearRect(0,0,u.width,u.height)},roundedRect:function(u,f,h,M,p,y){if(y){var x=Math.min(y,M/2),T=Math.min(y,p/2);u.moveTo(f+x,h),u.lineTo(f+M-x,h),u.quadraticCurveTo(f+M,h,f+M,h+T),u.lineTo(f+M,h+p-T),u.quadraticCurveTo(f+M,h+p,f+M-x,h+p),u.lineTo(f+x,h+p),u.quadraticCurveTo(f,h+p,f,h+p-T),u.lineTo(f,h+T),u.quadraticCurveTo(f,h,f+x,h)}else u.rect(f,h,M,p)},drawPoint:function(u,f,h,M,p){var y,x,T,S,k,L;if(!f||"object"!=typeof f||"[object HTMLImageElement]"!==(y=f.toString())&&"[object HTMLCanvasElement]"!==y){if(!(isNaN(h)||h<=0)){switch(f){default:u.beginPath(),u.arc(M,p,h,0,2*Math.PI),u.closePath(),u.fill();break;case"triangle":u.beginPath(),k=(x=3*h/Math.sqrt(3))*Math.sqrt(3)/2,u.moveTo(M-x/2,p+k/3),u.lineTo(M+x/2,p+k/3),u.lineTo(M,p-2*k/3),u.closePath(),u.fill();break;case"rect":L=1/Math.SQRT2*h,u.beginPath(),u.fillRect(M-L,p-L,2*L,2*L),u.strokeRect(M-L,p-L,2*L,2*L);break;case"rectRounded":var A=h/Math.SQRT2,U=M-A,B=p-A,K=Math.SQRT2*h;u.beginPath(),this.roundedRect(u,U,B,K,K,h/2),u.closePath(),u.fill();break;case"rectRot":L=1/Math.SQRT2*h,u.beginPath(),u.moveTo(M-L,p),u.lineTo(M,p+L),u.lineTo(M+L,p),u.lineTo(M,p-L),u.closePath(),u.fill();break;case"cross":u.beginPath(),u.moveTo(M,p+h),u.lineTo(M,p-h),u.moveTo(M-h,p),u.lineTo(M+h,p),u.closePath();break;case"crossRot":u.beginPath(),T=Math.cos(Math.PI/4)*h,S=Math.sin(Math.PI/4)*h,u.moveTo(M-T,p-S),u.lineTo(M+T,p+S),u.moveTo(M-T,p+S),u.lineTo(M+T,p-S),u.closePath();break;case"star":u.beginPath(),u.moveTo(M,p+h),u.lineTo(M,p-h),u.moveTo(M-h,p),u.lineTo(M+h,p),T=Math.cos(Math.PI/4)*h,S=Math.sin(Math.PI/4)*h,u.moveTo(M-T,p-S),u.lineTo(M+T,p+S),u.moveTo(M-T,p+S),u.lineTo(M+T,p-S),u.closePath();break;case"line":u.beginPath(),u.moveTo(M-h,p),u.lineTo(M+h,p),u.closePath();break;case"dash":u.beginPath(),u.moveTo(M,p),u.lineTo(M+h,p),u.closePath()}u.stroke()}}else u.drawImage(f,M-f.width/2,p-f.height/2,f.width,f.height)},clipArea:function(u,f){u.save(),u.beginPath(),u.rect(f.left,f.top,f.right-f.left,f.bottom-f.top),u.clip()},unclipArea:function(u){u.restore()},lineTo:function(u,f,h,M){if(h.steppedLine)return"after"===h.steppedLine&&!M||"after"!==h.steppedLine&&M?u.lineTo(f.x,h.y):u.lineTo(h.x,f.y),void u.lineTo(h.x,h.y);h.tension?u.bezierCurveTo(M?f.controlPointPreviousX:f.controlPointNextX,M?f.controlPointPreviousY:f.controlPointNextY,M?h.controlPointNextX:h.controlPointPreviousX,M?h.controlPointNextY:h.controlPointPreviousY,h.x,h.y):u.lineTo(h.x,h.y)}};O.clear=v.clear,O.drawRoundedRectangle=function(u){u.beginPath(),v.roundedRect.apply(v,arguments),u.closePath()}},4396:de=>{"use strict";var N,ge={noop:function(){},uid:(N=0,function(){return N++}),isNullOrUndef:function(N){return null===N||typeof N>"u"},isArray:Array.isArray?Array.isArray:function(N){return"[object Array]"===Object.prototype.toString.call(N)},isObject:function(N){return null!==N&&"[object Object]"===Object.prototype.toString.call(N)},valueOrDefault:function(N,O){return typeof N>"u"?O:N},valueAtIndexOrDefault:function(N,O,v){return ge.valueOrDefault(ge.isArray(N)?N[O]:N,v)},callback:function(N,O,v){if(N&&"function"==typeof N.call)return N.apply(v,O)},each:function(N,O,v,u){var f,h,M;if(ge.isArray(N))if(h=N.length,u)for(f=h-1;f>=0;f--)O.call(v,N[f],f);else for(f=0;f{"use strict";var O=N(4396),v={linear:function(u){return u},easeInQuad:function(u){return u*u},easeOutQuad:function(u){return-u*(u-2)},easeInOutQuad:function(u){return(u/=.5)<1?.5*u*u:-.5*(--u*(u-2)-1)},easeInCubic:function(u){return u*u*u},easeOutCubic:function(u){return(u-=1)*u*u+1},easeInOutCubic:function(u){return(u/=.5)<1?.5*u*u*u:.5*((u-=2)*u*u+2)},easeInQuart:function(u){return u*u*u*u},easeOutQuart:function(u){return-((u-=1)*u*u*u-1)},easeInOutQuart:function(u){return(u/=.5)<1?.5*u*u*u*u:-.5*((u-=2)*u*u*u-2)},easeInQuint:function(u){return u*u*u*u*u},easeOutQuint:function(u){return(u-=1)*u*u*u*u+1},easeInOutQuint:function(u){return(u/=.5)<1?.5*u*u*u*u*u:.5*((u-=2)*u*u*u*u+2)},easeInSine:function(u){return 1-Math.cos(u*(Math.PI/2))},easeOutSine:function(u){return Math.sin(u*(Math.PI/2))},easeInOutSine:function(u){return-.5*(Math.cos(Math.PI*u)-1)},easeInExpo:function(u){return 0===u?0:Math.pow(2,10*(u-1))},easeOutExpo:function(u){return 1===u?1:1-Math.pow(2,-10*u)},easeInOutExpo:function(u){return 0===u?0:1===u?1:(u/=.5)<1?.5*Math.pow(2,10*(u-1)):.5*(2-Math.pow(2,-10*--u))},easeInCirc:function(u){return u>=1?u:-(Math.sqrt(1-u*u)-1)},easeOutCirc:function(u){return Math.sqrt(1-(u-=1)*u)},easeInOutCirc:function(u){return(u/=.5)<1?-.5*(Math.sqrt(1-u*u)-1):.5*(Math.sqrt(1-(u-=2)*u)+1)},easeInElastic:function(u){var f=1.70158,h=0,M=1;return 0===u?0:1===u?1:(h||(h=.3),M<1?(M=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/M),-M*Math.pow(2,10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h))},easeOutElastic:function(u){var f=1.70158,h=0,M=1;return 0===u?0:1===u?1:(h||(h=.3),M<1?(M=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/M),M*Math.pow(2,-10*u)*Math.sin((u-f)*(2*Math.PI)/h)+1)},easeInOutElastic:function(u){var f=1.70158,h=0,M=1;return 0===u?0:2==(u/=.5)?1:(h||(h=.45),M<1?(M=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/M),u<1?M*Math.pow(2,10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h)*-.5:M*Math.pow(2,-10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h)*.5+1)},easeInBack:function(u){var f=1.70158;return u*u*((f+1)*u-f)},easeOutBack:function(u){var f=1.70158;return(u-=1)*u*((f+1)*u+f)+1},easeInOutBack:function(u){var f=1.70158;return(u/=.5)<1?u*u*((1+(f*=1.525))*u-f)*.5:.5*((u-=2)*u*((1+(f*=1.525))*u+f)+2)},easeInBounce:function(u){return 1-v.easeOutBounce(1-u)},easeOutBounce:function(u){return u<1/2.75?7.5625*u*u:u<2/2.75?7.5625*(u-=1.5/2.75)*u+.75:u<2.5/2.75?7.5625*(u-=2.25/2.75)*u+.9375:7.5625*(u-=2.625/2.75)*u+.984375},easeInOutBounce:function(u){return u<.5?.5*v.easeInBounce(2*u):.5*v.easeOutBounce(2*u-1)+.5}};de.exports={effects:v},O.easingEffects=v},5347:(de,ge,N)=>{"use strict";var O=N(4396);de.exports={toLineHeight:function(v,u){var f=(""+v).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!f||"normal"===f[1])return 1.2*u;switch(v=+f[2],f[3]){case"px":return v;case"%":v/=100}return u*v},toPadding:function(v){var u,f,h,M;return O.isObject(v)?(u=+v.top||0,f=+v.right||0,h=+v.bottom||0,M=+v.left||0):u=f=h=M=+v||0,{top:u,right:f,bottom:h,left:M,height:u+h,width:M+f}},resolve:function(v,u,f){var h,M,p;for(h=0,M=v.length;h{"use strict";de.exports=N(4396),de.exports.easing=N(4317),de.exports.canvas=N(2397),de.exports.options=N(5347)},1607:de=>{de.exports={acquireContext:function(ge){return ge&&ge.canvas&&(ge=ge.canvas),ge&&ge.getContext("2d")||null}}},8005:(de,ge,N)=>{"use strict";var O=N(3305),v="$chartjs",u="chartjs-",f=u+"render-monitor",h=u+"render-animation",M=["animationstart","webkitAnimationStart"],p={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function y(q,Q){var ee=O.getStyle(q,Q),ae=ee&&ee.match(/^(\d+)(\.\d+)?px$/);return ae?Number(ae[1]):void 0}var S=!!function(){var q=!1;try{var Q=Object.defineProperty({},"passive",{get:function(){q=!0}});window.addEventListener("e",null,Q)}catch{}return q}()&&{passive:!0};function k(q,Q,ee){q.addEventListener(Q,ee,S)}function L(q,Q,ee){q.removeEventListener(Q,ee,S)}function A(q,Q,ee,ae,le){return{type:q,chart:Q,native:le||null,x:void 0!==ee?ee:null,y:void 0!==ae?ae:null}}de.exports={_enabled:typeof window<"u"&&typeof document<"u",initialize:function(){var q="from{opacity:0.99}to{opacity:1}";!function he(q,Q){var ee=q._style||document.createElement("style");q._style||(q._style=ee,Q="/* Chart.js */\n"+Q,ee.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(ee)),ee.appendChild(document.createTextNode(Q))}(this,"@-webkit-keyframes "+h+"{"+q+"}@keyframes "+h+"{"+q+"}."+f+"{-webkit-animation:"+h+" 0.001s;animation:"+h+" 0.001s;}")},acquireContext:function(q,Q){"string"==typeof q?q=document.getElementById(q):q.length&&(q=q[0]),q&&q.canvas&&(q=q.canvas);var ee=q&&q.getContext&&q.getContext("2d");return ee&&ee.canvas===q?(function x(q,Q){var ee=q.style,ae=q.getAttribute("height"),le=q.getAttribute("width");if(q[v]={initial:{height:ae,width:le,style:{display:ee.display,height:ee.height,width:ee.width}}},ee.display=ee.display||"block",null===le||""===le){var J=y(q,"width");void 0!==J&&(q.width=J)}if(null===ae||""===ae)if(""===q.style.height)q.height=q.width/(Q.options.aspectRatio||2);else{var Te=y(q,"height");void 0!==J&&(q.height=Te)}}(q,Q),ee):null},releaseContext:function(q){var Q=q.canvas;if(Q[v]){var ee=Q[v].initial;["height","width"].forEach(function(ae){var le=ee[ae];O.isNullOrUndef(le)?Q.removeAttribute(ae):Q.setAttribute(ae,le)}),O.each(ee.style||{},function(ae,le){Q.style[le]=ae}),Q.width=Q.width,delete Q[v]}},addEventListener:function(q,Q,ee){var ae=q.canvas;if("resize"!==Q){var le=ee[v]||(ee[v]={}),Te=(le.proxies||(le.proxies={}))[q.id+"_"+Q]=function(Se){ee(function U(q,Q){var ee=p[q.type]||q.type,ae=O.getRelativePosition(q,Q);return A(ee,Q,ae.x,ae.y,q)}(Se,q))};k(ae,Q,Te)}else!function Z(q,Q,ee){var ae=q[v]||(q[v]={}),le=ae.resizer=function K(q){var Q=document.createElement("div"),ee=u+"size-monitor",ae=1e6,le="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";Q.style.cssText=le,Q.className=ee,Q.innerHTML='
';var J=Q.childNodes[0],Te=Q.childNodes[1];Q._reset=function(){J.scrollLeft=ae,J.scrollTop=ae,Te.scrollLeft=ae,Te.scrollTop=ae};var Se=function(){Q._reset(),q()};return k(J,"scroll",Se.bind(J,"expand")),k(Te,"scroll",Se.bind(Te,"shrink")),Q}(function B(q,Q){var ee=!1,ae=[];return function(){ae=Array.prototype.slice.call(arguments),Q=Q||this,ee||(ee=!0,O.requestAnimFrame.call(window,function(){ee=!1,q.apply(Q,ae)}))}}(function(){if(ae.resizer)return Q(A("resize",ee))}));!function re(q,Q){var ee=q[v]||(q[v]={}),ae=ee.renderProxy=function(le){le.animationName===h&&Q()};O.each(M,function(le){k(q,le,ae)}),ee.reflow=!!q.offsetParent,q.classList.add(f)}(q,function(){if(ae.resizer){var J=q.parentNode;J&&J!==le.parentNode&&J.insertBefore(le,J.firstChild),le._reset()}})}(ae,ee,q)},removeEventListener:function(q,Q,ee){var ae=q.canvas;if("resize"!==Q){var Te=((ee[v]||{}).proxies||{})[q.id+"_"+Q];Te&&L(ae,Q,Te)}else!function X(q){var Q=q[v]||{},ee=Q.resizer;delete Q.resizer,function ve(q){var Q=q[v]||{},ee=Q.renderProxy;ee&&(O.each(M,function(ae){L(q,ae,ee)}),delete Q.renderProxy),q.classList.remove(f)}(q),ee&&ee.parentNode&&ee.parentNode.removeChild(ee)}(ae)}},O.addEvent=k,O.removeEvent=L},8244:(de,ge,N)=>{"use strict";var O=N(3305),v=N(1607),u=N(8005);de.exports=O.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},u._enabled?u:v)},6747:(de,ge,N)=>{"use strict";de.exports={},de.exports.filler=N(6579),de.exports.legend=N(2230),de.exports.title=N(7412)},6579:(de,ge,N)=>{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("global",{plugins:{filler:{propagate:!0}}});var f={dataset:function(k){var L=k.fill,A=k.chart,U=A.getDatasetMeta(L),K=U&&A.isDatasetVisible(L)&&U.dataset._children||[],re=K.length||0;return re?function(ve,Z){return Z=A)&&K;switch(B){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return B;default:return!1}}function M(k){var K,L=k.el._model||{},A=k.el._scale||{},U=k.fill,B=null;if(isFinite(U))return null;if("start"===U?B=void 0===L.scaleBottom?A.bottom:L.scaleBottom:"end"===U?B=void 0===L.scaleTop?A.top:L.scaleTop:void 0!==L.scaleZero?B=L.scaleZero:A.getBasePosition?B=A.getBasePosition():A.getBasePixel&&(B=A.getBasePixel()),null!=B){if(void 0!==B.x&&void 0!==B.y)return B;if("number"==typeof B&&isFinite(B))return{x:(K=A.isHorizontal())?B:null,y:K?null:B}}return null}function p(k,L,A){var re,B=k[L].fill,K=[L];if(!A)return B;for(;!1!==B&&-1===K.indexOf(B);){if(!isFinite(B))return B;if(!(re=k[B]))return!1;if(re.visible)return B;K.push(B),B=re.fill}return!1}function y(k){var L=k.fill,A="dataset";return!1===L?null:(isFinite(L)||(A="boundary"),f[A](k))}function x(k){return k&&!k.skip}function T(k,L,A,U,B){var K;if(U&&B){for(k.moveTo(L[0].x,L[0].y),K=1;K0;--K)u.canvas.lineTo(k,A[K],A[K-1],!0)}}de.exports={id:"filler",afterDatasetsUpdate:function(k,L){var K,re,ve,Z,A=(k.data.datasets||[]).length,U=L.propagate,B=[];for(re=0;re{"use strict";var O=N(9800),v=N(8839),u=N(3305),f=N(2294),h=u.noop;function M(x,T){return x.usePointStyle?T*Math.SQRT2:x.boxWidth}O._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(x,T){var S=T.datasetIndex,k=this.chart,L=k.getDatasetMeta(S);L.hidden=null===L.hidden?!k.data.datasets[S].hidden:null,k.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(x){var T=x.data;return u.isArray(T.datasets)?T.datasets.map(function(S,k){return{text:S.label,fillStyle:u.isArray(S.backgroundColor)?S.backgroundColor[0]:S.backgroundColor,hidden:!x.isDatasetVisible(k),lineCap:S.borderCapStyle,lineDash:S.borderDash,lineDashOffset:S.borderDashOffset,lineJoin:S.borderJoinStyle,lineWidth:S.borderWidth,strokeStyle:S.borderColor,pointStyle:S.pointStyle,datasetIndex:k}},this):[]}}},legendCallback:function(x){var T=[];T.push('
    ');for(var S=0;S'),x.data.datasets[S].label&&T.push(x.data.datasets[S].label),T.push("");return T.push("
"),T.join("")}});var p=v.extend({initialize:function(x){u.extend(this,x),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:h,update:function(x,T,S){var k=this;return k.beforeUpdate(),k.maxWidth=x,k.maxHeight=T,k.margins=S,k.beforeSetDimensions(),k.setDimensions(),k.afterSetDimensions(),k.beforeBuildLabels(),k.buildLabels(),k.afterBuildLabels(),k.beforeFit(),k.fit(),k.afterFit(),k.afterUpdate(),k.minSize},afterUpdate:h,beforeSetDimensions:h,setDimensions:function(){var x=this;x.isHorizontal()?(x.width=x.maxWidth,x.left=0,x.right=x.width):(x.height=x.maxHeight,x.top=0,x.bottom=x.height),x.paddingLeft=0,x.paddingTop=0,x.paddingRight=0,x.paddingBottom=0,x.minSize={width:0,height:0}},afterSetDimensions:h,beforeBuildLabels:h,buildLabels:function(){var x=this,T=x.options.labels||{},S=u.callback(T.generateLabels,[x.chart],x)||[];T.filter&&(S=S.filter(function(k){return T.filter(k,x.chart.data)})),x.options.reverse&&S.reverse(),x.legendItems=S},afterBuildLabels:h,beforeFit:h,fit:function(){var x=this,T=x.options,S=T.labels,k=T.display,L=x.ctx,A=O.global,U=u.valueOrDefault,B=U(S.fontSize,A.defaultFontSize),K=U(S.fontStyle,A.defaultFontStyle),re=U(S.fontFamily,A.defaultFontFamily),ve=u.fontString(B,K,re),Z=x.legendHitBoxes=[],X=x.minSize,he=x.isHorizontal();if(he?(X.width=x.maxWidth,X.height=k?10:0):(X.width=k?10:0,X.height=x.maxHeight),k)if(L.font=ve,he){var q=x.lineWidths=[0],Q=x.legendItems.length?B+S.padding:0;L.textAlign="left",L.textBaseline="top",u.each(x.legendItems,function(ke,Be){var st=M(S,B)+B/2+L.measureText(ke.text).width;q[q.length-1]+st+S.padding>=x.width&&(Q+=B+S.padding,q[q.length]=x.left),Z[Be]={left:0,top:0,width:st,height:B},q[q.length-1]+=st+S.padding}),X.height+=Q}else{var ee=S.padding,ae=x.columnWidths=[],le=S.padding,J=0,Te=0,Se=B+ee;u.each(x.legendItems,function(ke,Be){var st=M(S,B)+B/2+L.measureText(ke.text).width;Te+Se>X.height&&(le+=J+S.padding,ae.push(J),J=0,Te=0),J=Math.max(J,st),Te+=Se,Z[Be]={left:0,top:0,width:st,height:B}}),le+=J,ae.push(J),X.width+=le}x.width=X.width,x.height=X.height},afterFit:h,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var x=this,T=x.options,S=T.labels,k=O.global,L=k.elements.line,A=x.width,U=x.lineWidths;if(T.display){var q,B=x.ctx,K=u.valueOrDefault,re=K(S.fontColor,k.defaultFontColor),ve=K(S.fontSize,k.defaultFontSize),Z=K(S.fontStyle,k.defaultFontStyle),X=K(S.fontFamily,k.defaultFontFamily),he=u.fontString(ve,Z,X);B.textAlign="left",B.textBaseline="middle",B.lineWidth=.5,B.strokeStyle=re,B.fillStyle=re,B.font=he;var Q=M(S,ve),ee=x.legendHitBoxes,J=x.isHorizontal();q=J?{x:x.left+(A-U[0])/2,y:x.top+S.padding,line:0}:{x:x.left+S.padding,y:x.top+S.padding,line:0};var Te=ve+S.padding;u.each(x.legendItems,function(Se,ke){var Be=B.measureText(Se.text).width,tt=Q+ve/2+Be,st=q.x,at=q.y;J?st+tt>=A&&(at=q.y+=Te,q.line++,st=q.x=x.left+(A-U[q.line])/2):at+Te>x.bottom&&(st=q.x=st+x.columnWidths[q.line]+S.padding,at=q.y=x.top+S.padding,q.line++),function(Se,ke,Be){if(!(isNaN(Q)||Q<=0)){B.save(),B.fillStyle=K(Be.fillStyle,k.defaultColor),B.lineCap=K(Be.lineCap,L.borderCapStyle),B.lineDashOffset=K(Be.lineDashOffset,L.borderDashOffset),B.lineJoin=K(Be.lineJoin,L.borderJoinStyle),B.lineWidth=K(Be.lineWidth,L.borderWidth),B.strokeStyle=K(Be.strokeStyle,k.defaultColor);var tt=0===K(Be.lineWidth,L.borderWidth);if(B.setLineDash&&B.setLineDash(K(Be.lineDash,L.borderDash)),T.labels&&T.labels.usePointStyle){var st=ve*Math.SQRT2/2,at=st/Math.SQRT2;u.canvas.drawPoint(B,Be.pointStyle,st,Se+at,ke+at)}else tt||B.strokeRect(Se,ke,Q,ve),B.fillRect(Se,ke,Q,ve);B.restore()}}(st,at,Se),ee[ke].left=st,ee[ke].top=at,function(Se,ke,Be,tt){var st=ve/2,at=Q+st+Se,jt=ke+st;B.fillText(Be.text,at,jt),Be.hidden&&(B.beginPath(),B.lineWidth=2,B.moveTo(at,jt),B.lineTo(at+tt,jt),B.stroke())}(st,at,Se,Be),J?q.x+=tt+S.padding:q.y+=Te})}},handleEvent:function(x){var T=this,S=T.options,k="mouseup"===x.type?"click":x.type,L=!1;if("mousemove"===k){if(!S.onHover)return}else{if("click"!==k)return;if(!S.onClick)return}var A=x.x,U=x.y;if(A>=T.left&&A<=T.right&&U>=T.top&&U<=T.bottom)for(var B=T.legendHitBoxes,K=0;K=re.left&&A<=re.left+re.width&&U>=re.top&&U<=re.top+re.height){if("click"===k){S.onClick.call(T,x.native,T.legendItems[K]),L=!0;break}if("mousemove"===k){S.onHover.call(T,x.native,T.legendItems[K]),L=!0;break}}}return L}});function y(x,T){var S=new p({ctx:x.ctx,options:T,chart:x});f.configure(x,S,T),f.addBox(x,S),x.legend=S}de.exports={id:"legend",_element:p,beforeInit:function(x){var T=x.options.legend;T&&y(x,T)},beforeUpdate:function(x){var T=x.options.legend,S=x.legend;T?(u.mergeIf(T,O.global.legend),S?(f.configure(x,S,T),S.options=T):y(x,T)):S&&(f.removeBox(x,S),delete x.legend)},afterEvent:function(x,T){var S=x.legend;S&&S.handleEvent(T)}}},7412:(de,ge,N)=>{"use strict";var O=N(9800),v=N(8839),u=N(3305),f=N(2294),h=u.noop;O._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var M=v.extend({initialize:function(y){u.extend(this,y),this.legendHitBoxes=[]},beforeUpdate:h,update:function(y,x,T){var S=this;return S.beforeUpdate(),S.maxWidth=y,S.maxHeight=x,S.margins=T,S.beforeSetDimensions(),S.setDimensions(),S.afterSetDimensions(),S.beforeBuildLabels(),S.buildLabels(),S.afterBuildLabels(),S.beforeFit(),S.fit(),S.afterFit(),S.afterUpdate(),S.minSize},afterUpdate:h,beforeSetDimensions:h,setDimensions:function(){var y=this;y.isHorizontal()?(y.width=y.maxWidth,y.left=0,y.right=y.width):(y.height=y.maxHeight,y.top=0,y.bottom=y.height),y.paddingLeft=0,y.paddingTop=0,y.paddingRight=0,y.paddingBottom=0,y.minSize={width:0,height:0}},afterSetDimensions:h,beforeBuildLabels:h,buildLabels:h,afterBuildLabels:h,beforeFit:h,fit:function(){var y=this,T=y.options,S=T.display,k=(0,u.valueOrDefault)(T.fontSize,O.global.defaultFontSize),L=y.minSize,A=u.isArray(T.text)?T.text.length:1,U=u.options.toLineHeight(T.lineHeight,k),B=S?A*U+2*T.padding:0;y.isHorizontal()?(L.width=y.maxWidth,L.height=B):(L.width=B,L.height=y.maxHeight),y.width=L.width,y.height=L.height},afterFit:h,isHorizontal:function(){var y=this.options.position;return"top"===y||"bottom"===y},draw:function(){var y=this,x=y.ctx,T=u.valueOrDefault,S=y.options,k=O.global;if(S.display){var Q,ee,ae,L=T(S.fontSize,k.defaultFontSize),A=T(S.fontStyle,k.defaultFontStyle),U=T(S.fontFamily,k.defaultFontFamily),B=u.fontString(L,A,U),K=u.options.toLineHeight(S.lineHeight,L),re=K/2+S.padding,ve=0,Z=y.top,X=y.left,he=y.bottom,q=y.right;x.fillStyle=T(S.fontColor,k.defaultFontColor),x.font=B,y.isHorizontal()?(ee=X+(q-X)/2,ae=Z+re,Q=q-X):(ee="left"===S.position?X+re:q-re,ae=Z+(he-Z)/2,Q=he-Z,ve=Math.PI*("left"===S.position?-.5:.5)),x.save(),x.translate(ee,ae),x.rotate(ve),x.textAlign="center",x.textBaseline="middle";var le=S.text;if(u.isArray(le))for(var J=0,Te=0;Te{"use strict";de.exports=function(ge){var O=ge.Scale.extend({getLabels:function(){var v=this.chart.data;return this.options.labels||(this.isHorizontal()?v.xLabels:v.yLabels)||v.labels},determineDataLimits:function(){var f,v=this,u=v.getLabels();v.minIndex=0,v.maxIndex=u.length-1,void 0!==v.options.ticks.min&&(f=u.indexOf(v.options.ticks.min),v.minIndex=-1!==f?f:v.minIndex),void 0!==v.options.ticks.max&&(f=u.indexOf(v.options.ticks.max),v.maxIndex=-1!==f?f:v.maxIndex),v.min=u[v.minIndex],v.max=u[v.maxIndex]},buildTicks:function(){var v=this,u=v.getLabels();v.ticks=0===v.minIndex&&v.maxIndex===u.length-1?u:u.slice(v.minIndex,v.maxIndex+1)},getLabelForIndex:function(v,u){var f=this,h=f.chart.data,M=f.isHorizontal();return h.yLabels&&!M?f.getRightValue(h.datasets[u].data[v]):f.ticks[v-f.minIndex]},getPixelForValue:function(v,u){var p,f=this,h=f.options.offset,M=Math.max(f.maxIndex+1-f.minIndex-(h?0:1),1);if(null!=v&&(p=f.isHorizontal()?v.x:v.y),void 0!==p||void 0!==v&&isNaN(u)){var x=f.getLabels().indexOf(v=p||v);u=-1!==x?x:u}if(f.isHorizontal()){var T=f.width/M,S=T*(u-f.minIndex);return h&&(S+=T/2),f.left+Math.round(S)}var k=f.height/M,L=k*(u-f.minIndex);return h&&(L+=k/2),f.top+Math.round(L)},getPixelForTick:function(v){return this.getPixelForValue(this.ticks[v],v+this.minIndex,null)},getValueForPixel:function(v){var u=this,f=u.options.offset,M=Math.max(u._ticks.length-(f?0:1),1),p=u.isHorizontal(),y=(p?u.width:u.height)/M;return v-=p?u.left:u.top,f&&(v-=y/2),(v<=0?0:Math.round(v/y))+u.minIndex},getBasePixel:function(){return this.bottom}});ge.scaleService.registerScaleType("category",O,{position:"bottom"})}},1704:(de,ge,N)=>{"use strict";var O=N(9800),v=N(3305),u=N(8347);de.exports=function(f){var h={position:"left",ticks:{callback:u.formatters.linear}},M=f.LinearScaleBase.extend({determineDataLimits:function(){var p=this,y=p.options,x=p.chart,S=x.data.datasets,k=p.isHorizontal();function U(re){return k?re.xAxisID===p.id:re.yAxisID===p.id}p.min=null,p.max=null;var B=y.stacked;if(void 0===B&&v.each(S,function(re,ve){if(!B){var Z=x.getDatasetMeta(ve);x.isDatasetVisible(ve)&&U(Z)&&void 0!==Z.stack&&(B=!0)}}),y.stacked||B){var K={};v.each(S,function(re,ve){var Z=x.getDatasetMeta(ve),X=[Z.type,void 0===y.stacked&&void 0===Z.stack?ve:"",Z.stack].join(".");void 0===K[X]&&(K[X]={positiveValues:[],negativeValues:[]});var he=K[X].positiveValues,q=K[X].negativeValues;x.isDatasetVisible(ve)&&U(Z)&&v.each(re.data,function(Q,ee){var ae=+p.getRightValue(Q);isNaN(ae)||Z.data[ee].hidden||(he[ee]=he[ee]||0,q[ee]=q[ee]||0,y.relativePoints?he[ee]=100:ae<0?q[ee]+=ae:he[ee]+=ae)})}),v.each(K,function(re){var ve=re.positiveValues.concat(re.negativeValues),Z=v.min(ve),X=v.max(ve);p.min=null===p.min?Z:Math.min(p.min,Z),p.max=null===p.max?X:Math.max(p.max,X)})}else v.each(S,function(re,ve){var Z=x.getDatasetMeta(ve);x.isDatasetVisible(ve)&&U(Z)&&v.each(re.data,function(X,he){var q=+p.getRightValue(X);isNaN(q)||Z.data[he].hidden||((null===p.min||qp.max)&&(p.max=q))})});p.min=isFinite(p.min)&&!isNaN(p.min)?p.min:0,p.max=isFinite(p.max)&&!isNaN(p.max)?p.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var p,y=this,x=y.options.ticks;if(y.isHorizontal())p=Math.min(x.maxTicksLimit?x.maxTicksLimit:11,Math.ceil(y.width/50));else{var T=v.valueOrDefault(x.fontSize,O.global.defaultFontSize);p=Math.min(x.maxTicksLimit?x.maxTicksLimit:11,Math.ceil(y.height/(2*T)))}return p},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(p,y){return+this.getRightValue(this.chart.data.datasets[y].data[p])},getPixelForValue:function(p){var y=this,x=y.start,T=+y.getRightValue(p),k=y.end-x;return y.isHorizontal()?y.left+y.width/k*(T-x):y.bottom-y.height/k*(T-x)},getValueForPixel:function(p){var y=this,x=y.isHorizontal();return y.start+(x?p-y.left:y.bottom-p)/(x?y.width:y.height)*(y.end-y.start)},getPixelForTick:function(p){return this.getPixelForValue(this.ticksAsNumbers[p])}});f.scaleService.registerScaleType("linear",M,h)}},8351:(de,ge,N)=>{"use strict";var O=N(3305);de.exports=function(u){var f=O.noop;u.LinearScaleBase=u.Scale.extend({getRightValue:function(h){return"string"==typeof h?+h:u.Scale.prototype.getRightValue.call(this,h)},handleTickRangeOptions:function(){var h=this,p=h.options.ticks;if(p.beginAtZero){var y=O.sign(h.min),x=O.sign(h.max);y<0&&x<0?h.max=0:y>0&&x>0&&(h.min=0)}var T=void 0!==p.min||void 0!==p.suggestedMin,S=void 0!==p.max||void 0!==p.suggestedMax;void 0!==p.min?h.min=p.min:void 0!==p.suggestedMin&&(h.min=null===h.min?p.suggestedMin:Math.min(h.min,p.suggestedMin)),void 0!==p.max?h.max=p.max:void 0!==p.suggestedMax&&(h.max=null===h.max?p.suggestedMax:Math.max(h.max,p.suggestedMax)),T!==S&&h.min>=h.max&&(T?h.max=h.min+1:h.min=h.max-1),h.min===h.max&&(h.max++,p.beginAtZero||h.min--)},getTickLimit:f,handleDirectionalChanges:f,buildTicks:function(){var h=this,p=h.options.ticks,y=h.getTickLimit(),x={maxTicks:y=Math.max(2,y),min:p.min,max:p.max,stepSize:O.valueOrDefault(p.fixedStepSize,p.stepSize)},T=h.ticks=function v(u,f){var M,h=[];if(u.stepSize&&u.stepSize>0)M=u.stepSize;else{var p=O.niceNum(f.max-f.min,!1);M=O.niceNum(p/(u.maxTicks-1),!0)}var y=Math.floor(f.min/M)*M,x=Math.ceil(f.max/M)*M;u.min&&u.max&&u.stepSize&&O.almostWhole((u.max-u.min)/u.stepSize,M/1e3)&&(y=u.min,x=u.max);var T=(x-y)/M;T=O.almostEquals(T,Math.round(T),M/1e3)?Math.round(T):Math.ceil(T);var S=1;M<1&&(S=Math.pow(10,M.toString().length-2),y=Math.round(y*S)/S,x=Math.round(x*S)/S),h.push(void 0!==u.min?u.min:y);for(var k=1;k{"use strict";var O=N(3305),v=N(8347);de.exports=function(f){var h={position:"left",ticks:{callback:v.formatters.logarithmic}},M=f.Scale.extend({determineDataLimits:function(){var p=this,y=p.options,x=p.chart,S=x.data.datasets,k=p.isHorizontal();function L(B){return k?B.xAxisID===p.id:B.yAxisID===p.id}p.min=null,p.max=null,p.minNotZero=null;var A=y.stacked;if(void 0===A&&O.each(S,function(B,K){if(!A){var re=x.getDatasetMeta(K);x.isDatasetVisible(K)&&L(re)&&void 0!==re.stack&&(A=!0)}}),y.stacked||A){var U={};O.each(S,function(B,K){var re=x.getDatasetMeta(K),ve=[re.type,void 0===y.stacked&&void 0===re.stack?K:"",re.stack].join(".");x.isDatasetVisible(K)&&L(re)&&(void 0===U[ve]&&(U[ve]=[]),O.each(B.data,function(Z,X){var he=U[ve],q=+p.getRightValue(Z);isNaN(q)||re.data[X].hidden||q<0||(he[X]=he[X]||0,he[X]+=q)}))}),O.each(U,function(B){if(B.length>0){var K=O.min(B),re=O.max(B);p.min=null===p.min?K:Math.min(p.min,K),p.max=null===p.max?re:Math.max(p.max,re)}})}else O.each(S,function(B,K){var re=x.getDatasetMeta(K);x.isDatasetVisible(K)&&L(re)&&O.each(B.data,function(ve,Z){var X=+p.getRightValue(ve);isNaN(X)||re.data[Z].hidden||X<0||((null===p.min||Xp.max)&&(p.max=X),0!==X&&(null===p.minNotZero||X0?p.min:p.max<1?Math.pow(10,Math.floor(O.log10(p.max))):1)},buildTicks:function(){var p=this,x=p.options.ticks,T=!p.isHorizontal(),k=p.ticks=function u(f,h){var S,k,M=[],p=O.valueOrDefault,y=p(f.min,Math.pow(10,Math.floor(O.log10(h.min)))),x=Math.floor(O.log10(h.max)),T=Math.ceil(h.max/Math.pow(10,x));0===y?(S=Math.floor(O.log10(h.minNotZero)),k=Math.floor(h.minNotZero/Math.pow(10,S)),M.push(y),y=k*Math.pow(10,S)):(S=Math.floor(O.log10(y)),k=Math.floor(y/Math.pow(10,S)));var L=S<0?Math.pow(10,Math.abs(S)):1;do{M.push(y),10==++k&&(k=1,L=++S>=0?1:L),y=Math.round(k*Math.pow(10,S)*L)/L}while(S{"use strict";var O=N(9800),v=N(3305),u=N(8347);de.exports=function(f){var h=O.global,M={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:u.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(Z){return Z}}};function p(Z){var X=Z.options;return X.angleLines.display||X.pointLabels.display?Z.chart.data.labels.length:0}function y(Z){var X=Z.options.pointLabels,he=v.valueOrDefault(X.fontSize,h.defaultFontSize),q=v.valueOrDefault(X.fontStyle,h.defaultFontStyle),Q=v.valueOrDefault(X.fontFamily,h.defaultFontFamily);return{size:he,style:q,family:Q,font:v.fontString(he,q,Q)}}function x(Z,X,he){return v.isArray(he)?{w:v.longestText(Z,Z.font,he),h:he.length*X+1.5*(he.length-1)*X}:{w:Z.measureText(he).width,h:X}}function T(Z,X,he,q,Q){return Z===q||Z===Q?{start:X-he/2,end:X+he/2}:ZQ?{start:X-he-5,end:X}:{start:X,end:X+he+5}}function L(Z){return 0===Z||180===Z?"center":Z<180?"left":"right"}function A(Z,X,he,q){if(v.isArray(X))for(var Q=he.y,ee=1.5*q,ae=0;ae270||Z<90)&&(he.y-=X.h)}function re(Z){return v.isNumber(Z)?Z:0}var ve=f.LinearScaleBase.extend({setDimensions:function(){var Z=this,X=Z.options,he=X.ticks;Z.width=Z.maxWidth,Z.height=Z.maxHeight,Z.xCenter=Math.round(Z.width/2),Z.yCenter=Math.round(Z.height/2);var q=v.min([Z.height,Z.width]),Q=v.valueOrDefault(he.fontSize,h.defaultFontSize);Z.drawingArea=X.display?q/2-(Q/2+he.backdropPaddingY):q/2},determineDataLimits:function(){var Z=this,X=Z.chart,he=Number.POSITIVE_INFINITY,q=Number.NEGATIVE_INFINITY;v.each(X.data.datasets,function(Q,ee){if(X.isDatasetVisible(ee)){var ae=X.getDatasetMeta(ee);v.each(Q.data,function(le,J){var Te=+Z.getRightValue(le);isNaN(Te)||ae.data[J].hidden||(he=Math.min(Te,he),q=Math.max(Te,q))})}}),Z.min=he===Number.POSITIVE_INFINITY?0:he,Z.max=q===Number.NEGATIVE_INFINITY?0:q,Z.handleTickRangeOptions()},getTickLimit:function(){var Z=this.options.ticks,X=v.valueOrDefault(Z.fontSize,h.defaultFontSize);return Math.min(Z.maxTicksLimit?Z.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*X)))},convertTicksToLabels:function(){var Z=this;f.LinearScaleBase.prototype.convertTicksToLabels.call(Z),Z.pointLabels=Z.chart.data.labels.map(Z.options.pointLabels.callback,Z)},getLabelForIndex:function(Z,X){return+this.getRightValue(this.chart.data.datasets[X].data[Z])},fit:function(){this.options.pointLabels.display?function S(Z){var ee,ae,le,X=y(Z),he=Math.min(Z.height/2,Z.width/2),q={r:Z.width,l:0,t:Z.height,b:0},Q={};Z.ctx.font=X.font,Z._pointLabelSizes=[];var J=p(Z);for(ee=0;eeq.r&&(q.r=ke.end,Q.r=Te),Be.startq.b&&(q.b=Be.end,Q.b=Te)}Z.setReductions(he,q,Q)}(this):function k(Z){var X=Math.min(Z.height/2,Z.width/2);Z.drawingArea=Math.round(X),Z.setCenterPoint(0,0,0,0)}(this)},setReductions:function(Z,X,he){var q=this,Q=X.l/Math.sin(he.l),ee=Math.max(X.r-q.width,0)/Math.sin(he.r),ae=-X.t/Math.cos(he.t),le=-Math.max(X.b-q.height,0)/Math.cos(he.b);Q=re(Q),ee=re(ee),ae=re(ae),le=re(le),q.drawingArea=Math.min(Math.round(Z-(Q+ee)/2),Math.round(Z-(ae+le)/2)),q.setCenterPoint(Q,ee,ae,le)},setCenterPoint:function(Z,X,he,q){var Q=this,le=he+Q.drawingArea,J=Q.height-q-Q.drawingArea;Q.xCenter=Math.round((Z+Q.drawingArea+(Q.width-X-Q.drawingArea))/2+Q.left),Q.yCenter=Math.round((le+J)/2+Q.top)},getIndexAngle:function(Z){return Z*(2*Math.PI/p(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(Z){var X=this;if(null===Z)return 0;var he=X.drawingArea/(X.max-X.min);return X.options.ticks.reverse?(X.max-Z)*he:(Z-X.min)*he},getPointPosition:function(Z,X){var q=this.getIndexAngle(Z)-Math.PI/2;return{x:Math.round(Math.cos(q)*X)+this.xCenter,y:Math.round(Math.sin(q)*X)+this.yCenter}},getPointPositionForValue:function(Z,X){return this.getPointPosition(Z,this.getDistanceFromCenterForValue(X))},getBasePosition:function(){var Z=this,X=Z.min,he=Z.max;return Z.getPointPositionForValue(0,Z.beginAtZero?0:X<0&&he<0?he:X>0&&he>0?X:0)},draw:function(){var Z=this,X=Z.options,he=X.gridLines,q=X.ticks,Q=v.valueOrDefault;if(X.display){var ee=Z.ctx,ae=this.getIndexAngle(0),le=Q(q.fontSize,h.defaultFontSize),J=Q(q.fontStyle,h.defaultFontStyle),Te=Q(q.fontFamily,h.defaultFontFamily),Se=v.fontString(le,J,Te);v.each(Z.ticks,function(ke,Be){if(Be>0||q.reverse){var tt=Z.getDistanceFromCenterForValue(Z.ticksAsNumbers[Be]);if(he.display&&0!==Be&&function K(Z,X,he,q){var Q=Z.ctx;if(Q.strokeStyle=v.valueAtIndexOrDefault(X.color,q-1),Q.lineWidth=v.valueAtIndexOrDefault(X.lineWidth,q-1),Z.options.gridLines.circular)Q.beginPath(),Q.arc(Z.xCenter,Z.yCenter,he,0,2*Math.PI),Q.closePath(),Q.stroke();else{var ee=p(Z);if(0===ee)return;Q.beginPath();var ae=Z.getPointPosition(0,he);Q.moveTo(ae.x,ae.y);for(var le=1;le=0;le--){if(q.display){var J=Z.getPointPosition(le,ee);X.beginPath(),X.moveTo(Z.xCenter,Z.yCenter),X.lineTo(J.x,J.y),X.stroke(),X.closePath()}if(Q.display){var Te=Z.getPointPosition(le,ee+5),Se=v.valueAtIndexOrDefault(Q.fontColor,le,h.defaultFontColor);X.font=ae.font,X.fillStyle=Se;var ke=Z.getIndexAngle(le),Be=v.toDegrees(ke);X.textAlign=L(Be),U(Be,Z._pointLabelSizes[le],Te),A(X,Z.pointLabels[le]||"",Te,ae.size)}}}(Z)}}});f.scaleService.registerScaleType("radialLinear",ve,M)}},4215:(de,ge,N)=>{"use strict";var O=N(5439);O="function"==typeof O?O:window.moment;var v=N(9800),u=N(3305),f=Number.MIN_SAFE_INTEGER||-9007199254740991,h=Number.MAX_SAFE_INTEGER||9007199254740991,M={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},p=Object.keys(M);function y(q,Q){return q-Q}function x(q){var ae,le,J,Q={},ee=[];for(ae=0,le=q.length;ae=0&&ae<=le;){if(Se=q[J=ae+le>>1],!(Te=q[J-1]||null))return{lo:null,hi:Se};if(Se[Q]ee))return{lo:Te,hi:Se};le=J-1}}return{lo:Se,hi:null}}(q,Q,ee),J=le.lo?le.hi?le.lo:q[q.length-2]:q[0],Te=le.lo?le.hi?le.hi:q[q.length-1]:q[1],Se=Te[Q]-J[Q];return J[ae]+(Te[ae]-J[ae])*(Se?(ee-J[Q])/Se:0)}function L(q,Q){var ee=Q.parser,ae=Q.parser||Q.format;return"function"==typeof ee?ee(q):"string"==typeof q&&"string"==typeof ae?O(q,ae):(q instanceof O||(q=O(q)),q.isValid()?q:"function"==typeof ae?ae(q):q)}function A(q,Q){if(u.isNullOrUndef(q))return null;var ee=Q.options.time,ae=L(Q.getRightValue(q),ee);return ae.isValid()?(ee.round&&ae.startOf(ee.round),ae.valueOf()):null}function re(q){for(var Q=p.indexOf(q)+1,ee=p.length;Q=le&&at<=J&&Be.push(at);return ae.min=le,ae.max=J,ae._unit=Se.unit||function K(q,Q,ee,ae){var Te,Se,le=O.duration(O(ae).diff(O(ee)));for(Te=p.length-1;Te>=p.indexOf(Q);Te--)if(M[Se=p[Te]].common&&le.as(Se)>=q.length)return Se;return p[Q?p.indexOf(Q):0]}(Be,Se.minUnit,ae.min,ae.max),ae._majorUnit=re(ae._unit),ae._table=function T(q,Q,ee,ae){if("linear"===ae||!q.length)return[{time:Q,pos:0},{time:ee,pos:1}];var Te,Se,ke,Be,tt,le=[],J=[Q];for(Te=0,Se=q.length;TeQ&&Be1?Q[1]:ae,"pos")-k(q,"time",ke,"pos"))/2),le.time.max||(ke=Q.length>1?Q[Q.length-2]:ee,Te=(k(q,"time",Q[Q.length-1],"pos")-k(q,"time",ke,"pos"))/2)),{left:J,right:Te}}(ae._table,Be,le,J,Te),ae._labelFormat=function he(q,Q){var ee,ae,le,J=q.length;for(ee=0;ee=0&&ae0?Be:1}});q.scaleService.registerScaleType("time",ee,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},3207:(de,ge,N)=>{var O=N(9914);function v(X){if(X){var le=[0,0,0],J=1,Te=X.match(/^#([a-fA-F0-9]{3})$/i);if(Te){Te=Te[1];for(var Se=0;Se{var O=N(7227),v=N(3207),u=function(f){return f instanceof u?f:this instanceof u?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof f?(h=v.getRgba(f))?this.setValues("rgb",h):(h=v.getHsla(f))?this.setValues("hsl",h):(h=v.getHwb(f))&&this.setValues("hwb",h):"object"==typeof f&&(void 0!==(h=f).r||void 0!==h.red?this.setValues("rgb",h):void 0!==h.l||void 0!==h.lightness?this.setValues("hsl",h):void 0!==h.v||void 0!==h.value?this.setValues("hsv",h):void 0!==h.w||void 0!==h.whiteness?this.setValues("hwb",h):(void 0!==h.c||void 0!==h.cyan)&&this.setValues("cmyk",h)))):new u(f);var h};u.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var f=this.values;return 1!==f.alpha?f.hwb.concat([f.alpha]):f.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var f=this.values;return f.rgb.concat([f.alpha])},hslaArray:function(){var f=this.values;return f.hsl.concat([f.alpha])},alpha:function(f){return void 0===f?this.values.alpha:(this.setValues("alpha",f),this)},red:function(f){return this.setChannel("rgb",0,f)},green:function(f){return this.setChannel("rgb",1,f)},blue:function(f){return this.setChannel("rgb",2,f)},hue:function(f){return f&&(f=(f%=360)<0?360+f:f),this.setChannel("hsl",0,f)},saturation:function(f){return this.setChannel("hsl",1,f)},lightness:function(f){return this.setChannel("hsl",2,f)},saturationv:function(f){return this.setChannel("hsv",1,f)},whiteness:function(f){return this.setChannel("hwb",1,f)},blackness:function(f){return this.setChannel("hwb",2,f)},value:function(f){return this.setChannel("hsv",2,f)},cyan:function(f){return this.setChannel("cmyk",0,f)},magenta:function(f){return this.setChannel("cmyk",1,f)},yellow:function(f){return this.setChannel("cmyk",2,f)},black:function(f){return this.setChannel("cmyk",3,f)},hexString:function(){return v.hexString(this.values.rgb)},rgbString:function(){return v.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return v.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return v.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return v.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return v.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return v.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return v.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var f=this.values.rgb;return f[0]<<16|f[1]<<8|f[2]},luminosity:function(){for(var f=this.values.rgb,h=[],M=0;MM?(h+.05)/(M+.05):(M+.05)/(h+.05)},level:function(f){var h=this.contrast(f);return h>=7.1?"AAA":h>=4.5?"AA":""},dark:function(){var f=this.values.rgb;return(299*f[0]+587*f[1]+114*f[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var f=[],h=0;h<3;h++)f[h]=255-this.values.rgb[h];return this.setValues("rgb",f),this},lighten:function(f){var h=this.values.hsl;return h[2]+=h[2]*f,this.setValues("hsl",h),this},darken:function(f){var h=this.values.hsl;return h[2]-=h[2]*f,this.setValues("hsl",h),this},saturate:function(f){var h=this.values.hsl;return h[1]+=h[1]*f,this.setValues("hsl",h),this},desaturate:function(f){var h=this.values.hsl;return h[1]-=h[1]*f,this.setValues("hsl",h),this},whiten:function(f){var h=this.values.hwb;return h[1]+=h[1]*f,this.setValues("hwb",h),this},blacken:function(f){var h=this.values.hwb;return h[2]+=h[2]*f,this.setValues("hwb",h),this},greyscale:function(){var f=this.values.rgb,h=.3*f[0]+.59*f[1]+.11*f[2];return this.setValues("rgb",[h,h,h]),this},clearer:function(f){var h=this.values.alpha;return this.setValues("alpha",h-h*f),this},opaquer:function(f){var h=this.values.alpha;return this.setValues("alpha",h+h*f),this},rotate:function(f){var h=this.values.hsl,M=(h[0]+f)%360;return h[0]=M<0?360+M:M,this.setValues("hsl",h),this},mix:function(f,h){var M=this,p=f,y=void 0===h?.5:h,x=2*y-1,T=M.alpha()-p.alpha(),S=((x*T==-1?x:(x+T)/(1+x*T))+1)/2,k=1-S;return this.rgb(S*M.red()+k*p.red(),S*M.green()+k*p.green(),S*M.blue()+k*p.blue()).alpha(M.alpha()*y+p.alpha()*(1-y))},toJSON:function(){return this.rgb()},clone:function(){var p,y,f=new u,h=this.values,M=f.values;for(var x in h)h.hasOwnProperty(x)&&("[object Array]"===(y={}.toString.call(p=h[x]))?M[x]=p.slice(0):"[object Number]"===y?M[x]=p:console.error("unexpected color value:",p));return f}},u.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},u.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},u.prototype.getValues=function(f){for(var h=this.values,M={},p=0;p{function ge(W){var me,De,oe=W[0]/255,te=W[1]/255,pe=W[2]/255,fe=Math.min(oe,te,pe),ue=Math.max(oe,te,pe),be=ue-fe;return ue==fe?me=0:oe==ue?me=(te-pe)/be:te==ue?me=2+(pe-oe)/be:pe==ue&&(me=4+(oe-te)/be),(me=Math.min(60*me,360))<0&&(me+=360),De=(fe+ue)/2,[me,100*(ue==fe?0:De<=.5?be/(ue+fe):be/(2-ue-fe)),100*De]}function N(W){var me,Me,oe=W[0],te=W[1],pe=W[2],fe=Math.min(oe,te,pe),ue=Math.max(oe,te,pe),be=ue-fe;return Me=0==ue?0:be/ue*1e3/10,ue==fe?me=0:oe==ue?me=(te-pe)/be:te==ue?me=2+(pe-oe)/be:pe==ue&&(me=4+(oe-te)/be),(me=Math.min(60*me,360))<0&&(me+=360),[me,Me,ue/255*1e3/10]}function O(W){var oe=W[0],te=W[1],ue=W[2];return[ge(W)[0],1/255*Math.min(oe,Math.min(te,ue))*100,100*(ue=1-1/255*Math.max(oe,Math.max(te,ue)))]}function v(W){var me,oe=W[0]/255,te=W[1]/255,pe=W[2]/255;return[100*((1-oe-(me=Math.min(1-oe,1-te,1-pe)))/(1-me)||0),100*((1-te-me)/(1-me)||0),100*((1-pe-me)/(1-me)||0),100*me]}function u(W){return dr[JSON.stringify(W)]}function f(W){var oe=W[0]/255,te=W[1]/255,pe=W[2]/255;return[100*(.4124*(oe=oe>.04045?Math.pow((oe+.055)/1.055,2.4):oe/12.92)+.3576*(te=te>.04045?Math.pow((te+.055)/1.055,2.4):te/12.92)+.1805*(pe=pe>.04045?Math.pow((pe+.055)/1.055,2.4):pe/12.92)),100*(.2126*oe+.7152*te+.0722*pe),100*(.0193*oe+.1192*te+.9505*pe)]}function h(W){var oe=f(W),te=oe[0],pe=oe[1],fe=oe[2];return pe/=100,fe/=108.883,te=(te/=95.047)>.008856?Math.pow(te,1/3):7.787*te+16/116,[116*(pe=pe>.008856?Math.pow(pe,1/3):7.787*pe+16/116)-16,500*(te-pe),200*(pe-(fe=fe>.008856?Math.pow(fe,1/3):7.787*fe+16/116))]}function p(W){var fe,ue,be,me,Me,oe=W[0]/360,te=W[1]/100,pe=W[2]/100;if(0==te)return[Me=255*pe,Me,Me];fe=2*pe-(ue=pe<.5?pe*(1+te):pe+te-pe*te),me=[0,0,0];for(var De=0;De<3;De++)(be=oe+1/3*-(De-1))<0&&be++,be>1&&be--,me[De]=255*(Me=6*be<1?fe+6*(ue-fe)*be:2*be<1?ue:3*be<2?fe+(ue-fe)*(2/3-be)*6:fe);return me}function k(W){var oe=W[0]/60,te=W[1]/100,Me=W[2]/100,pe=Math.floor(oe)%6,fe=oe-Math.floor(oe),ue=255*Me*(1-te),be=255*Me*(1-te*fe),me=255*Me*(1-te*(1-fe));switch(Me*=255,pe){case 0:return[Me,me,ue];case 1:return[be,Me,ue];case 2:return[ue,Me,me];case 3:return[ue,be,Me];case 4:return[me,ue,Me];case 5:return[Me,ue,be]}}function K(W){var ue,be,me,Me,oe=W[0]/360,te=W[1]/100,pe=W[2]/100,fe=te+pe;switch(fe>1&&(te/=fe,pe/=fe),me=6*oe-(ue=Math.floor(6*oe)),1&ue&&(me=1-me),Me=te+me*((be=1-pe)-te),ue){default:case 6:case 0:r=be,g=Me,b=te;break;case 1:r=Me,g=be,b=te;break;case 2:r=te,g=be,b=Me;break;case 3:r=te,g=Me,b=be;break;case 4:r=Me,g=te,b=be;break;case 5:r=be,g=te,b=Me}return[255*r,255*g,255*b]}function he(W){var te=W[1]/100,pe=W[2]/100,fe=W[3]/100;return[255*(1-Math.min(1,W[0]/100*(1-fe)+fe)),255*(1-Math.min(1,te*(1-fe)+fe)),255*(1-Math.min(1,pe*(1-fe)+fe))]}function le(W){var fe,ue,be,oe=W[0]/100,te=W[1]/100,pe=W[2]/100;return ue=-.9689*oe+1.8758*te+.0415*pe,be=.0557*oe+-.204*te+1.057*pe,fe=(fe=3.2406*oe+-1.5372*te+-.4986*pe)>.0031308?1.055*Math.pow(fe,1/2.4)-.055:fe*=12.92,ue=ue>.0031308?1.055*Math.pow(ue,1/2.4)-.055:ue*=12.92,be=be>.0031308?1.055*Math.pow(be,1/2.4)-.055:be*=12.92,[255*(fe=Math.min(Math.max(0,fe),1)),255*(ue=Math.min(Math.max(0,ue),1)),255*(be=Math.min(Math.max(0,be),1))]}function J(W){var oe=W[0],te=W[1],pe=W[2];return te/=100,pe/=108.883,oe=(oe/=95.047)>.008856?Math.pow(oe,1/3):7.787*oe+16/116,[116*(te=te>.008856?Math.pow(te,1/3):7.787*te+16/116)-16,500*(oe-te),200*(te-(pe=pe>.008856?Math.pow(pe,1/3):7.787*pe+16/116))]}function Se(W){var fe,ue,be,me,oe=W[0],te=W[1],pe=W[2];return oe<=8?me=(ue=100*oe/903.3)/100*7.787+16/116:(ue=100*Math.pow((oe+16)/116,3),me=Math.pow(ue/100,1/3)),[fe=fe/95.047<=.008856?fe=95.047*(te/500+me-16/116)/7.787:95.047*Math.pow(te/500+me,3),ue,be=be/108.883<=.008859?be=108.883*(me-pe/200-16/116)/7.787:108.883*Math.pow(me-pe/200,3)]}function ke(W){var ue,oe=W[0],te=W[1],pe=W[2];return(ue=360*Math.atan2(pe,te)/2/Math.PI)<0&&(ue+=360),[oe,Math.sqrt(te*te+pe*pe),ue]}function Be(W){return le(Se(W))}function tt(W){var be,te=W[1];return be=W[2]/360*2*Math.PI,[W[0],te*Math.cos(be),te*Math.sin(be)]}function jt(W){return Oi[W]}de.exports={rgb2hsl:ge,rgb2hsv:N,rgb2hwb:O,rgb2cmyk:v,rgb2keyword:u,rgb2xyz:f,rgb2lab:h,rgb2lch:function M(W){return ke(h(W))},hsl2rgb:p,hsl2hsv:function y(W){var te=W[1]/100,pe=W[2]/100;return 0===pe?[0,0,0]:[W[0],2*(te*=(pe*=2)<=1?pe:2-pe)/(pe+te)*100,(pe+te)/2*100]},hsl2hwb:function x(W){return O(p(W))},hsl2cmyk:function T(W){return v(p(W))},hsl2keyword:function S(W){return u(p(W))},hsv2rgb:k,hsv2hsl:function L(W){var fe,ue,te=W[1]/100,pe=W[2]/100;return fe=te*pe,[W[0],100*(fe=(fe/=(ue=(2-te)*pe)<=1?ue:2-ue)||0),100*(ue/=2)]},hsv2hwb:function A(W){return O(k(W))},hsv2cmyk:function U(W){return v(k(W))},hsv2keyword:function B(W){return u(k(W))},hwb2rgb:K,hwb2hsl:function re(W){return ge(K(W))},hwb2hsv:function ve(W){return N(K(W))},hwb2cmyk:function Z(W){return v(K(W))},hwb2keyword:function X(W){return u(K(W))},cmyk2rgb:he,cmyk2hsl:function q(W){return ge(he(W))},cmyk2hsv:function Q(W){return N(he(W))},cmyk2hwb:function ee(W){return O(he(W))},cmyk2keyword:function ae(W){return u(he(W))},keyword2rgb:jt,keyword2hsl:function an(W){return ge(jt(W))},keyword2hsv:function Zn(W){return N(jt(W))},keyword2hwb:function On(W){return O(jt(W))},keyword2cmyk:function zn(W){return v(jt(W))},keyword2lab:function Ge(W){return h(jt(W))},keyword2xyz:function Pi(W){return f(jt(W))},xyz2rgb:le,xyz2lab:J,xyz2lch:function Te(W){return ke(J(W))},lab2xyz:Se,lab2rgb:Be,lab2lch:ke,lch2lab:tt,lch2xyz:function st(W){return Se(tt(W))},lch2rgb:function at(W){return Be(tt(W))}};var Oi={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},dr={};for(var Xe in Oi)dr[JSON.stringify(Oi[Xe])]=Xe},7227:(de,ge,N)=>{var O=N(4126),v=function(){return new p};for(var u in O){v[u+"Raw"]=function(y){return function(x){return"number"==typeof x&&(x=Array.prototype.slice.call(arguments)),O[y](x)}}(u);var f=/(\w+)2(\w+)/.exec(u),h=f[1],M=f[2];(v[h]=v[h]||{})[M]=v[u]=function(y){return function(x){"number"==typeof x&&(x=Array.prototype.slice.call(arguments));var T=O[y](x);if("string"==typeof T||void 0===T)return T;for(var S=0;S{"use strict";de.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},7088:function(de,ge,N){!function(O){"use strict";O.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(u){return/^nm$/i.test(u)},meridiem:function(u,f,h){return u<12?h?"vm":"VM":h?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(u){return u+(1===u||8===u||u>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},2502:function(de,ge,N){!function(O){"use strict";O.defineLocale("ar-dz",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:4}})}(N(5439))},128:function(de,ge,N){!function(O){"use strict";O.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}})}(N(5439))},4519:function(de,ge,N){!function(O){"use strict";var v={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},u=function(y){return 0===y?0:1===y?1:2===y?2:y%100>=3&&y%100<=10?3:y%100>=11?4:5},f={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},h=function(y){return function(x,T,S,k){var L=u(x),A=f[y][u(x)];return 2===L&&(A=A[T?0:1]),A.replace(/%d/i,x)}},M=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];O.defineLocale("ar-ly",{months:M,monthsShort:M,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(y){return"\u0645"===y},meridiem:function(y,x,T){return y<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:h("s"),ss:h("s"),m:h("m"),mm:h("m"),h:h("h"),hh:h("h"),d:h("d"),dd:h("d"),M:h("M"),MM:h("M"),y:h("y"),yy:h("y")},preparse:function(y){return y.replace(/\u060c/g,",")},postformat:function(y){return y.replace(/\d/g,function(x){return v[x]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(N(5439))},5443:function(de,ge,N){!function(O){"use strict";O.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:6,doy:12}})}(N(5439))},7642:function(de,ge,N){!function(O){"use strict";var v={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},u={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};O.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(h){return"\u0645"===h},meridiem:function(h,M,p){return h<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(h){return h.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(M){return u[M]}).replace(/\u060c/g,",")},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(N(5439))},8592:function(de,ge,N){!function(O){"use strict";O.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}(N(5439))},7038:function(de,ge,N){!function(O){"use strict";var v={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},u={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},f=function(x){return 0===x?0:1===x?1:2===x?2:x%100>=3&&x%100<=10?3:x%100>=11?4:5},h={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},M=function(x){return function(T,S,k,L){var A=f(T),U=h[x][f(T)];return 2===A&&(U=U[S?0:1]),U.replace(/%d/i,T)}},p=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];O.defineLocale("ar",{months:p,monthsShort:p,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(x){return"\u0645"===x},meridiem:function(x,T,S){return x<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:M("s"),ss:M("s"),m:M("m"),mm:M("m"),h:M("h"),hh:M("h"),d:M("d"),dd:M("d"),M:M("M"),MM:M("M"),y:M("y"),yy:M("y")},preparse:function(x){return x.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(T){return u[T]}).replace(/\u060c/g,",")},postformat:function(x){return x.replace(/\d/g,function(T){return v[T]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(N(5439))},1213:function(de,ge,N){!function(O){"use strict";var v={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};O.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"birne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(f){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(f)},meridiem:function(f,h,M){return f<4?"gec\u0259":f<12?"s\u0259h\u0259r":f<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(f){if(0===f)return f+"-\u0131nc\u0131";var h=f%10;return f+(v[h]||v[f%100-h]||v[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},9191:function(de,ge,N){!function(O){"use strict";function u(h,M,p){return"m"===p?M?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===p?M?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":h+" "+function v(h,M){var p=h.split("_");return M%10==1&&M%100!=11?p[0]:M%10>=2&&M%10<=4&&(M%100<10||M%100>=20)?p[1]:p[2]}({ss:M?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:M?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:M?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[p],+h)}O.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:u,mm:u,h:u,hh:u,d:"\u0434\u0437\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(h){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(h)},meridiem:function(h,M,p){return h<4?"\u043d\u043e\u0447\u044b":h<12?"\u0440\u0430\u043d\u0456\u0446\u044b":h<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(h,M){switch(M){case"M":case"d":case"DDD":case"w":case"W":return h%10!=2&&h%10!=3||h%100==12||h%100==13?h+"-\u044b":h+"-\u0456";case"D":return h+"-\u0433\u0430";default:return h}},week:{dow:1,doy:7}})}(N(5439))},322:function(de,ge,N){!function(O){"use strict";O.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u043d\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(u){var f=u%10,h=u%100;return 0===u?u+"-\u0435\u0432":0===h?u+"-\u0435\u043d":h>10&&h<20?u+"-\u0442\u0438":1===f?u+"-\u0432\u0438":2===f?u+"-\u0440\u0438":7===f||8===f?u+"-\u043c\u0438":u+"-\u0442\u0438"},week:{dow:1,doy:7}})}(N(5439))},8042:function(de,ge,N){!function(O){"use strict";O.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(N(5439))},9620:function(de,ge,N){!function(O){"use strict";var v={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},u={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};O.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(h){return h.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u09b0\u09be\u09a4"===M&&h>=4||"\u09a6\u09c1\u09aa\u09c1\u09b0"===M&&h<5||"\u09ac\u09bf\u0995\u09be\u09b2"===M?h+12:h},meridiem:function(h,M,p){return h<4?"\u09b0\u09be\u09a4":h<10?"\u09b8\u0995\u09be\u09b2":h<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":h<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(N(5439))},9645:function(de,ge,N){!function(O){"use strict";var v={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},u={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};O.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(h){return h.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===M&&h>=4||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===M&&h<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===M?h+12:h},meridiem:function(h,M,p){return h<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":h<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":h<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":h<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}})}(N(5439))},5020:function(de,ge,N){!function(O){"use strict";function v(y,x,T){return y+" "+function h(y,x){return 2===x?function M(y){var x={m:"v",b:"v",d:"z"};return void 0===x[y.charAt(0)]?y:x[y.charAt(0)]+y.substring(1)}(y):y}({mm:"munutenn",MM:"miz",dd:"devezh"}[T],y)}function f(y){return y>9?f(y%10):y}O.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:v,h:"un eur",hh:"%d eur",d:"un devezh",dd:v,M:"ur miz",MM:v,y:"ur bloaz",yy:function u(y){switch(f(y)){case 1:case 3:case 4:case 5:case 9:return y+" bloaz";default:return y+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(y){return y+(1===y?"a\xf1":"vet")},week:{dow:1,doy:4}})}(N(5439))},4792:function(de,ge,N){!function(O){"use strict";function v(f,h,M){var p=f+" ";switch(M){case"ss":return p+(1===f?"sekunda":2===f||3===f||4===f?"sekunde":"sekundi");case"m":return h?"jedna minuta":"jedne minute";case"mm":return p+(1===f?"minuta":2===f||3===f||4===f?"minute":"minuta");case"h":return h?"jedan sat":"jednog sata";case"hh":return p+(1===f?"sat":2===f||3===f||4===f?"sata":"sati");case"dd":return p+(1===f?"dan":"dana");case"MM":return p+(1===f?"mjesec":2===f||3===f||4===f?"mjeseca":"mjeseci");case"yy":return p+(1===f?"godina":2===f||3===f||4===f?"godine":"godina")}}O.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:v,m:v,mm:v,h:v,hh:v,d:"dan",dd:v,M:"mjesec",MM:v,y:"godinu",yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},7980:function(de,ge,N){!function(O){"use strict";O.defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(u,f){var h=1===u?"r":2===u?"n":3===u?"r":4===u?"t":"\xe8";return("w"===f||"W"===f)&&(h="a"),u+h},week:{dow:1,doy:4}})}(N(5439))},7322:function(de,ge,N){!function(O){"use strict";var v="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),u="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_");function f(p){return p>1&&p<5&&1!=~~(p/10)}function h(p,y,x,T){var S=p+" ";switch(x){case"s":return y||T?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return y||T?S+(f(p)?"sekundy":"sekund"):S+"sekundami";case"m":return y?"minuta":T?"minutu":"minutou";case"mm":return y||T?S+(f(p)?"minuty":"minut"):S+"minutami";case"h":return y?"hodina":T?"hodinu":"hodinou";case"hh":return y||T?S+(f(p)?"hodiny":"hodin"):S+"hodinami";case"d":return y||T?"den":"dnem";case"dd":return y||T?S+(f(p)?"dny":"dn\xed"):S+"dny";case"M":return y||T?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return y||T?S+(f(p)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):S+"m\u011bs\xedci";case"y":return y||T?"rok":"rokem";case"yy":return y||T?S+(f(p)?"roky":"let"):S+"lety"}}O.defineLocale("cs",{months:v,monthsShort:u,monthsParse:function(p,y){var x,T=[];for(x=0;x<12;x++)T[x]=new RegExp("^"+p[x]+"$|^"+y[x]+"$","i");return T}(v,u),shortMonthsParse:function(p){var y,x=[];for(y=0;y<12;y++)x[y]=new RegExp("^"+p[y]+"$","i");return x}(u),longMonthsParse:function(p){var y,x=[];for(y=0;y<12;y++)x[y]=new RegExp("^"+p[y]+"$","i");return x}(v),weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},365:function(de,ge,N){!function(O){"use strict";O.defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(u){return u+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(u)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(u)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}})}(N(5439))},2092:function(de,ge,N){!function(O){"use strict";O.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(u){var h="";return u>20?h=40===u||50===u||60===u||80===u||100===u?"fed":"ain":u>0&&(h=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][u]),u+h},week:{dow:1,doy:4}})}(N(5439))},7387:function(de,ge,N){!function(O){"use strict";O.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},9459:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?y[M][0]:y[M][1]}O.defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:v,mm:"%d Minuten",h:v,hh:"%d Stunden",d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3694:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?y[M][0]:y[M][1]}O.defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:v,mm:"%d Minuten",h:v,hh:"%d Stunden",d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},4307:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?y[M][0]:y[M][1]}O.defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:v,mm:"%d Minuten",h:v,hh:"%d Stunden",d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},9659:function(de,ge,N){!function(O){"use strict";var v=["\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9","\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9","\u0789\u07a7\u0783\u07a8\u0797\u07aa","\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa","\u0789\u07ad","\u0796\u07ab\u0782\u07b0","\u0796\u07aa\u078d\u07a6\u0787\u07a8","\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa","\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa","\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa"],u=["\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6","\u0780\u07af\u0789\u07a6","\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6","\u0784\u07aa\u078b\u07a6","\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8","\u0780\u07aa\u0786\u07aa\u0783\u07aa","\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa"];O.defineLocale("dv",{months:v,monthsShort:v,weekdays:u,weekdaysShort:u,weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(h){return"\u0789\u078a"===h},meridiem:function(h,M,p){return h<12?"\u0789\u0786":"\u0789\u078a"},calendar:{sameDay:"[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT",nextDay:"[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT",nextWeek:"dddd LT",lastDay:"[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT",lastWeek:"[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT",sameElse:"L"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",ss:"d% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:7,doy:12}})}(N(5439))},3460:function(de,ge,N){!function(O){"use strict";O.defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(f,h){return f?"string"==typeof h&&/D/.test(h.substring(0,h.indexOf("MMMM")))?this._monthsGenitiveEl[f.month()]:this._monthsNominativeEl[f.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(f,h,M){return f>11?M?"\u03bc\u03bc":"\u039c\u039c":M?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(f){return"\u03bc"===(f+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){return 6===this.day()?"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT":"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"},sameElse:"L"},calendar:function(f,h){var M=this._calendarEl[f],p=h&&h.hours();return function v(f){return f instanceof Function||"[object Function]"===Object.prototype.toString.call(f)}(M)&&(M=M.apply(h)),M.replace("{}",p%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}})}(N(5439))},4369:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},530:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")}})}(N(5439))},9998:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},3391:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},5414:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")}})}(N(5439))},1248:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},4530:function(de,ge,N){!function(O){"use strict";O.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(u){return"p"===u.charAt(0).toLowerCase()},meridiem:function(u,f,h){return u>11?h?"p.t.m.":"P.T.M.":h?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(N(5439))},8944:function(de,ge,N){!function(O){"use strict";var v="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),f=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],h=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;O.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(p,y){return p?/-MMM-/.test(y)?u[p.month()]:v[p.month()]:v},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},3609:function(de,ge,N){!function(O){"use strict";var v="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");O.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(h,M){return h?/-MMM-/.test(M)?u[h.month()]:v[h.month()]:v},monthsParseExact:!0,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"MMMM [de] D [de] YYYY",LLL:"MMMM [de] D [de] YYYY h:mm A",LLLL:"dddd, MMMM [de] D [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:6}})}(N(5439))},6866:function(de,ge,N){!function(O){"use strict";var v="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),f=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],h=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;O.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(p,y){return p?/-MMM-/.test(y)?u[p.month()]:v[p.month()]:v},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},6725:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],ss:[f+"sekundi",f+"sekundit"],m:["\xfche minuti","\xfcks minut"],mm:[f+" minuti",f+" minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:[f+" tunni",f+" tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:[f+" kuu",f+" kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:[f+" aasta",f+" aastat"]};return h?y[M][2]?y[M][2]:y[M][1]:p?y[M][0]:y[M][1]}O.defineLocale("et",{months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[T\xe4na,] LT",nextDay:"[Homme,] LT",nextWeek:"[J\xe4rgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:v,ss:v,m:v,mm:v,h:v,hh:v,d:v,dd:"%d p\xe4eva",M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},7931:function(de,ge,N){!function(O){"use strict";O.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6417:function(de,ge,N){!function(O){"use strict";var v={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},u={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};O.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(h){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(h)},meridiem:function(h,M,p){return h<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"\u062b\u0627\u0646\u06cc\u0647 d%",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/[\u06f0-\u06f9]/g,function(M){return u[M]}).replace(/\u060c/g,",")},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}})}(N(5439))},944:function(de,ge,N){!function(O){"use strict";var v="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),u=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",v[7],v[8],v[9]];function f(p,y,x,T){var S="";switch(x){case"s":return T?"muutaman sekunnin":"muutama sekunti";case"ss":return T?"sekunnin":"sekuntia";case"m":return T?"minuutin":"minuutti";case"mm":S=T?"minuutin":"minuuttia";break;case"h":return T?"tunnin":"tunti";case"hh":S=T?"tunnin":"tuntia";break;case"d":return T?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":S=T?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return T?"kuukauden":"kuukausi";case"MM":S=T?"kuukauden":"kuukautta";break;case"y":return T?"vuoden":"vuosi";case"yy":S=T?"vuoden":"vuotta"}return function h(p,y){return p<10?y?u[p]:v[p]:p}(p,T)+" "+S}O.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:f,ss:f,m:f,mm:f,h:f,hh:f,d:f,dd:f,M:f,MM:f,y:f,yy:f},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},5867:function(de,ge,N){!function(O){"use strict";O.defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minutt",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0i",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},6848:function(de,ge,N){!function(O){"use strict";O.defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(u,f){switch(f){default:case"M":case"Q":case"D":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}}})}(N(5439))},7773:function(de,ge,N){!function(O){"use strict";O.defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(u,f){switch(f){default:case"M":case"Q":case"D":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}},week:{dow:1,doy:4}})}(N(5439))},1636:function(de,ge,N){!function(O){"use strict";O.defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(u,f){switch(f){case"D":return u+(1===u?"er":"");default:case"M":case"Q":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}},week:{dow:1,doy:4}})}(N(5439))},4940:function(de,ge,N){!function(O){"use strict";var v="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),u="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");O.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(h,M){return h?/-MMM-/.test(M)?u[h.month()]:v[h.month()]:v},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(h){return h+(1===h||8===h||h>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},6924:function(de,ge,N){!function(O){"use strict";O.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(y){return y+(1===y?"d":y%10==2?"na":"mh")},week:{dow:1,doy:4}})}(N(5439))},6398:function(de,ge,N){!function(O){"use strict";O.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(u){return 0===u.indexOf("un")?"n"+u:"en "+u},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},2545:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y={s:["thodde secondanim","thodde second"],ss:[f+" secondanim",f+" second"],m:["eka mintan","ek minute"],mm:[f+" mintanim",f+" mintam"],h:["eka horan","ek hor"],hh:[f+" horanim",f+" horam"],d:["eka disan","ek dis"],dd:[f+" disanim",f+" dis"],M:["eka mhoinean","ek mhoino"],MM:[f+" mhoineanim",f+" mhoine"],y:["eka vorsan","ek voros"],yy:[f+" vorsanim",f+" vorsam"]};return h?y[M][0]:y[M][1]}O.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:v,ss:v,m:v,mm:v,h:v,hh:v,d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(f,h){return"D"===h?f+"er":f},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(f,h){return 12===f&&(f=0),"rati"===h?f<4?f:f+12:"sokalli"===h?f:"donparam"===h?f>12?f:f+12:"sanje"===h?f+12:void 0},meridiem:function(f,h,M){return f<4?"rati":f<12?"sokalli":f<16?"donparam":f<20?"sanje":"rati"}})}(N(5439))},2641:function(de,ge,N){!function(O){"use strict";var v={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},u={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};O.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(h){return h.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0ab0\u0abe\u0aa4"===M?h<4?h:h+12:"\u0ab8\u0ab5\u0abe\u0ab0"===M?h:"\u0aac\u0aaa\u0acb\u0ab0"===M?h>=10?h:h+12:"\u0ab8\u0abe\u0a82\u0a9c"===M?h+12:void 0},meridiem:function(h,M,p){return h<4?"\u0ab0\u0abe\u0aa4":h<10?"\u0ab8\u0ab5\u0abe\u0ab0":h<17?"\u0aac\u0aaa\u0acb\u0ab0":h<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}})}(N(5439))},7536:function(de,ge,N){!function(O){"use strict";O.defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(u){return 2===u?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":u+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(u){return 2===u?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":u+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(u){return 2===u?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":u+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(u){return 2===u?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":u%10==0&&10!==u?u+" \u05e9\u05e0\u05d4":u+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(u){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(u)},meridiem:function(u,f,h){return u<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":u<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":u<12?h?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":u<18?h?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}})}(N(5439))},6335:function(de,ge,N){!function(O){"use strict";var v={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};O.defineLocale("hi",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0930\u093e\u0924"===M?h<4?h:h+12:"\u0938\u0941\u092c\u0939"===M?h:"\u0926\u094b\u092a\u0939\u0930"===M?h>=10?h:h+12:"\u0936\u093e\u092e"===M?h+12:void 0},meridiem:function(h,M,p){return h<4?"\u0930\u093e\u0924":h<10?"\u0938\u0941\u092c\u0939":h<17?"\u0926\u094b\u092a\u0939\u0930":h<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}})}(N(5439))},7458:function(de,ge,N){!function(O){"use strict";function v(f,h,M){var p=f+" ";switch(M){case"ss":return p+(1===f?"sekunda":2===f||3===f||4===f?"sekunde":"sekundi");case"m":return h?"jedna minuta":"jedne minute";case"mm":return p+(1===f?"minuta":2===f||3===f||4===f?"minute":"minuta");case"h":return h?"jedan sat":"jednog sata";case"hh":return p+(1===f?"sat":2===f||3===f||4===f?"sata":"sati");case"dd":return p+(1===f?"dan":"dana");case"MM":return p+(1===f?"mjesec":2===f||3===f||4===f?"mjeseca":"mjeseci");case"yy":return p+(1===f?"godina":2===f||3===f||4===f?"godine":"godina")}}O.defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:v,m:v,mm:v,h:v,hh:v,d:"dan",dd:v,M:"mjesec",MM:v,y:"godinu",yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6540:function(de,ge,N){!function(O){"use strict";var v="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function u(M,p,y,x){var T=M;switch(y){case"s":return x||p?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return T+(x||p)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(x||p?" perc":" perce");case"mm":return T+(x||p?" perc":" perce");case"h":return"egy"+(x||p?" \xf3ra":" \xf3r\xe1ja");case"hh":return T+(x||p?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(x||p?" nap":" napja");case"dd":return T+(x||p?" nap":" napja");case"M":return"egy"+(x||p?" h\xf3nap":" h\xf3napja");case"MM":return T+(x||p?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(x||p?" \xe9v":" \xe9ve");case"yy":return T+(x||p?" \xe9v":" \xe9ve")}return""}function f(M){return(M?"":"[m\xfalt] ")+"["+v[this.day()]+"] LT[-kor]"}O.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(M){return"u"===M.charAt(1).toLowerCase()},meridiem:function(M,p,y){return M<12?!0===y?"de":"DE":!0===y?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return f.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return f.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:u,ss:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},5283:function(de,ge,N){!function(O){"use strict";O.defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(u){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(u)},meridiem:function(u){return u<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":u<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":u<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(u,f){switch(f){case"DDD":case"w":case"W":case"DDDo":return 1===u?u+"-\u056b\u0576":u+"-\u0580\u0564";default:return u}},week:{dow:1,doy:7}})}(N(5439))},8780:function(de,ge,N){!function(O){"use strict";O.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"siang"===f?u>=11?u:u+12:"sore"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"siang":u<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},4205:function(de,ge,N){!function(O){"use strict";function v(h){return h%100==11||h%10!=1}function u(h,M,p,y){var x=h+" ";switch(p){case"s":return M||y?"nokkrar sek\xfandur":"nokkrum sek\xfandum";case"ss":return v(h)?x+(M||y?"sek\xfandur":"sek\xfandum"):x+"sek\xfanda";case"m":return M?"m\xedn\xfata":"m\xedn\xfatu";case"mm":return v(h)?x+(M||y?"m\xedn\xfatur":"m\xedn\xfatum"):M?x+"m\xedn\xfata":x+"m\xedn\xfatu";case"hh":return v(h)?x+(M||y?"klukkustundir":"klukkustundum"):x+"klukkustund";case"d":return M?"dagur":y?"dag":"degi";case"dd":return v(h)?M?x+"dagar":x+(y?"daga":"d\xf6gum"):M?x+"dagur":x+(y?"dag":"degi");case"M":return M?"m\xe1nu\xf0ur":y?"m\xe1nu\xf0":"m\xe1nu\xf0i";case"MM":return v(h)?M?x+"m\xe1nu\xf0ir":x+(y?"m\xe1nu\xf0i":"m\xe1nu\xf0um"):M?x+"m\xe1nu\xf0ur":x+(y?"m\xe1nu\xf0":"m\xe1nu\xf0i");case"y":return M||y?"\xe1r":"\xe1ri";case"yy":return v(h)?x+(M||y?"\xe1r":"\xe1rum"):x+(M||y?"\xe1r":"\xe1ri")}}O.defineLocale("is",{months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[\xed dag kl.] LT",nextDay:"[\xe1 morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xed g\xe6r kl.] LT",lastWeek:"[s\xed\xf0asta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:u,ss:u,m:u,mm:u,h:"klukkustund",hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},4211:function(de,ge,N){!function(O){"use strict";O.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(u){return(/^[0-9].+$/.test(u)?"tra":"in")+" "+u},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},1003:function(de,ge,N){!function(O){"use strict";O.defineLocale("ja",{months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(u){return"\u5348\u5f8c"===u},meridiem:function(u,f,h){return u<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:function(u){return u.week()=11?u:u+12:"sonten"===f||"ndalu"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"enjing":u<15?"siyang":u<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(N(5439))},851:function(de,ge,N){!function(O){"use strict";O.defineLocale("ka",{months:{standalone:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),format:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1".split("_")},monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(u){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(u)?u.replace(/\u10d8$/,"\u10e8\u10d8"):u+"\u10e8\u10d8"},past:function(u){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(u)?u.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(u)?u.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):void 0},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(u){return 0===u?u:1===u?u+"-\u10da\u10d8":u<20||u<=100&&u%20==0||u%100==0?"\u10db\u10d4-"+u:u+"-\u10d4"},week:{dow:1,doy:7}})}(N(5439))},6074:function(de,ge,N){!function(O){"use strict";var v={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};O.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(f){return f+(v[f]||v[f%10]||v[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},3343:function(de,ge,N){!function(O){"use strict";var v={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},u={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};O.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(h){return"\u179b\u17d2\u1784\u17b6\u1785"===h},meridiem:function(h,M,p){return h<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(h){return h.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},week:{dow:1,doy:4}})}(N(5439))},4799:function(de,ge,N){!function(O){"use strict";var v={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},u={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};O.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(h){return h.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===M?h<4?h:h+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===M?h:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===M?h>=10?h:h+12:"\u0cb8\u0c82\u0c9c\u0cc6"===M?h+12:void 0},meridiem:function(h,M,p){return h<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":h<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":h<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":h<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(h){return h+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}})}(N(5439))},3549:function(de,ge,N){!function(O){"use strict";O.defineLocale("ko",{months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\uc77c";case"M":return u+"\uc6d4";case"w":case"W":return u+"\uc8fc";default:return u}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(u){return"\uc624\ud6c4"===u},meridiem:function(u,f,h){return u<12?"\uc624\uc804":"\uc624\ud6c4"}})}(N(5439))},3125:function(de,ge,N){!function(O){"use strict";var v={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};O.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u0435 \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(f){return f+(v[f]||v[f%10]||v[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},9586:function(de,ge,N){!function(O){"use strict";function v(p,y,x,T){var S={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return y?S[x][0]:S[x][1]}function h(p){if(p=parseInt(p,10),isNaN(p))return!1;if(p<0)return!0;if(p<10)return 4<=p&&p<=7;if(p<100){var y=p%10;return h(0===y?p/10:y)}if(p<1e4){for(;p>=10;)p/=10;return h(p)}return h(p/=1e3)}O.defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function u(p){return h(p.substr(0,p.indexOf(" ")))?"a "+p:"an "+p},past:function f(p){return h(p.substr(0,p.indexOf(" ")))?"viru "+p:"virun "+p},s:"e puer Sekonnen",ss:"%d Sekonnen",m:v,mm:"%d Minutten",h:v,hh:"%d Stonnen",d:v,dd:"%d Deeg",M:v,MM:"%d M\xe9int",y:v,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},2349:function(de,ge,N){!function(O){"use strict";O.defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(u){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===u},meridiem:function(u,f,h){return u<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(u){return"\u0e97\u0eb5\u0ec8"+u}})}(N(5439))},2400:function(de,ge,N){!function(O){"use strict";var v={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function f(x,T,S,k){return T?M(S)[0]:k?M(S)[1]:M(S)[2]}function h(x){return x%10==0||x>10&&x<20}function M(x){return v[x].split("_")}function p(x,T,S,k){var L=x+" ";return 1===x?L+f(0,T,S[0],k):T?L+(h(x)?M(S)[1]:M(S)[0]):k?L+M(S)[1]:L+(h(x)?M(S)[1]:M(S)[2])}O.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function u(x,T,S,k){return T?"kelios sekund\u0117s":k?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:p,m:f,mm:p,h:f,hh:p,d:f,dd:p,M:f,MM:p,y:f,yy:p},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(x){return x+"-oji"},week:{dow:1,doy:4}})}(N(5439))},9991:function(de,ge,N){!function(O){"use strict";var v={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function u(y,x,T){return T?x%10==1&&x%100!=11?y[2]:y[3]:x%10==1&&x%100!=11?y[0]:y[1]}function f(y,x,T){return y+" "+u(v[T],y,x)}function h(y,x,T){return u(v[T],y,x)}O.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function M(y,x){return x?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:f,m:h,mm:f,h,hh:f,d:h,dd:f,M:h,MM:f,y:h,yy:f},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8477:function(de,ge,N){!function(O){"use strict";var v={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,M){var p=v.words[M];return 1===M.length?h?p[0]:p[1]:f+" "+v.correctGrammaticalCase(f,p)}};O.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:v.translate,m:v.translate,mm:v.translate,h:v.translate,hh:v.translate,d:"dan",dd:v.translate,M:"mjesec",MM:v.translate,y:"godinu",yy:v.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},5118:function(de,ge,N){!function(O){"use strict";O.defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},5943:function(de,ge,N){!function(O){"use strict";O.defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(u){var f=u%10,h=u%100;return 0===u?u+"-\u0435\u0432":0===h?u+"-\u0435\u043d":h>10&&h<20?u+"-\u0442\u0438":1===f?u+"-\u0432\u0438":2===f?u+"-\u0440\u0438":7===f||8===f?u+"-\u043c\u0438":u+"-\u0442\u0438"},week:{dow:1,doy:7}})}(N(5439))},3849:function(de,ge,N){!function(O){"use strict";O.defineLocale("ml",{months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),monthsParseExact:!0,weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),longDateFormat:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},calendar:{sameDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT",nextDay:"[\u0d28\u0d3e\u0d33\u0d46] LT",nextWeek:"dddd, LT",lastDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT",lastWeek:"[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",ss:"%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(u,f){return 12===u&&(u=0),"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"===f&&u>=4||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===f||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===f?u+12:u},meridiem:function(u,f,h){return u<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":u<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":u<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":u<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}})}(N(5439))},1977:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){switch(M){case"s":return h?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return f+(h?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return f+(h?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return f+(h?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return f+(h?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return f+(h?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return f+(h?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return f}}O.defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(f){return"\u04ae\u0425"===f},meridiem:function(f,h,M){return f<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:v,ss:v,m:v,mm:v,h:v,hh:v,d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(f,h){switch(h){case"d":case"D":case"DDD":return f+" \u04e9\u0434\u04e9\u0440";default:return f}}})}(N(5439))},6184:function(de,ge,N){!function(O){"use strict";var v={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function f(M,p,y,x){var T="";if(p)switch(y){case"s":T="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":T="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":T="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":T="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":T="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":T="%d \u0924\u093e\u0938";break;case"d":T="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":T="%d \u0926\u093f\u0935\u0938";break;case"M":T="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":T="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":T="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":T="%d \u0935\u0930\u094d\u0937\u0947"}else switch(y){case"s":T="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":T="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":T="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":T="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":T="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":T="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":T="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":T="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":T="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":T="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":T="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":T="%d \u0935\u0930\u094d\u0937\u093e\u0902"}return T.replace(/%d/i,M)}O.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:f,ss:f,m:f,mm:f,h:f,hh:f,d:f,dd:f,M:f,MM:f,y:f,yy:f},preparse:function(M){return M.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(p){return u[p]})},postformat:function(M){return M.replace(/\d/g,function(p){return v[p]})},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(M,p){return 12===M&&(M=0),"\u0930\u093e\u0924\u094d\u0930\u0940"===p?M<4?M:M+12:"\u0938\u0915\u093e\u0933\u0940"===p?M:"\u0926\u0941\u092a\u093e\u0930\u0940"===p?M>=10?M:M+12:"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===p?M+12:void 0},meridiem:function(M,p,y){return M<4?"\u0930\u093e\u0924\u094d\u0930\u0940":M<10?"\u0938\u0915\u093e\u0933\u0940":M<17?"\u0926\u0941\u092a\u093e\u0930\u0940":M<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}})}(N(5439))},4524:function(de,ge,N){!function(O){"use strict";O.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"tengahari"===f?u>=11?u:u+12:"petang"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"tengahari":u<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},485:function(de,ge,N){!function(O){"use strict";O.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"tengahari"===f?u>=11?u:u+12:"petang"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"tengahari":u<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},6681:function(de,ge,N){!function(O){"use strict";O.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[G\u0127ada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-biera\u0127 fil-]LT",lastWeek:"dddd [li g\u0127adda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},2024:function(de,ge,N){!function(O){"use strict";var v={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},u={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};O.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(h){return h.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},week:{dow:1,doy:4}})}(N(5439))},2688:function(de,ge,N){!function(O){"use strict";O.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8914:function(de,ge,N){!function(O){"use strict";var v={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};O.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0930\u093e\u0924\u093f"===M?h<4?h:h+12:"\u092c\u093f\u0939\u093e\u0928"===M?h:"\u0926\u093f\u0909\u0901\u0938\u094b"===M?h>=10?h:h+12:"\u0938\u093e\u0901\u091d"===M?h+12:void 0},meridiem:function(h,M,p){return h<3?"\u0930\u093e\u0924\u093f":h<12?"\u092c\u093f\u0939\u093e\u0928":h<16?"\u0926\u093f\u0909\u0901\u0938\u094b":h<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}})}(N(5439))},2272:function(de,ge,N){!function(O){"use strict";var v="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),u="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),f=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],h=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;O.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(p,y){return p?/-MMM-/.test(y)?u[p.month()]:v[p.month()]:v},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(p){return p+(1===p||8===p||p>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},1758:function(de,ge,N){!function(O){"use strict";var v="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),u="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),f=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],h=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;O.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(p,y){return p?/-MMM-/.test(y)?u[p.month()]:v[p.month()]:v},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(p){return p+(1===p||8===p||p>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},1510:function(de,ge,N){!function(O){"use strict";O.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},7944:function(de,ge,N){!function(O){"use strict";var v={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},u={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};O.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(h){return h.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0a30\u0a3e\u0a24"===M?h<4?h:h+12:"\u0a38\u0a35\u0a47\u0a30"===M?h:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===M?h>=10?h:h+12:"\u0a38\u0a3c\u0a3e\u0a2e"===M?h+12:void 0},meridiem:function(h,M,p){return h<4?"\u0a30\u0a3e\u0a24":h<10?"\u0a38\u0a35\u0a47\u0a30":h<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":h<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}})}(N(5439))},1605:function(de,ge,N){!function(O){"use strict";var v="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),u="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function f(p){return p%10<5&&p%10>1&&~~(p/10)%10!=1}function h(p,y,x){var T=p+" ";switch(x){case"ss":return T+(f(p)?"sekundy":"sekund");case"m":return y?"minuta":"minut\u0119";case"mm":return T+(f(p)?"minuty":"minut");case"h":return y?"godzina":"godzin\u0119";case"hh":return T+(f(p)?"godziny":"godzin");case"MM":return T+(f(p)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return T+(f(p)?"lata":"lat")}}O.defineLocale("pl",{months:function(p,y){return p?""===y?"("+u[p.month()]+"|"+v[p.month()]+")":/D MMMM/.test(y)?u[p.month()]:v[p.month()]:v},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:h,m:h,mm:h,h,hh:h,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:h,y:"rok",yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3840:function(de,ge,N){!function(O){"use strict";O.defineLocale("pt-br",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"})}(N(5439))},4225:function(de,ge,N){!function(O){"use strict";O.defineLocale("pt",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},5128:function(de,ge,N){!function(O){"use strict";function v(f,h,M){var y=" ";return(f%100>=20||f>=100&&f%100==0)&&(y=" de "),f+y+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[M]}O.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:v,m:"un minut",mm:v,h:"o or\u0103",hh:v,d:"o zi",dd:v,M:"o lun\u0103",MM:v,y:"un an",yy:v},week:{dow:1,doy:7}})}(N(5439))},5127:function(de,ge,N){!function(O){"use strict";function u(M,p,y){return"m"===y?p?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":M+" "+function v(M,p){var y=M.split("_");return p%10==1&&p%100!=11?y[0]:p%10>=2&&p%10<=4&&(p%100<10||p%100>=20)?y[1]:y[2]}({ss:p?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:p?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[y],+M)}var f=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];O.defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:f,longMonthsParse:f,shortMonthsParse:f,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(M){if(M.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(M){if(M.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:u,m:u,mm:u,h:"\u0447\u0430\u0441",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(M){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(M)},meridiem:function(M,p,y){return M<4?"\u043d\u043e\u0447\u0438":M<12?"\u0443\u0442\u0440\u0430":M<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(M,p){switch(p){case"M":case"d":case"DDD":return M+"-\u0439";case"D":return M+"-\u0433\u043e";case"w":case"W":return M+"-\u044f";default:return M}},week:{dow:1,doy:4}})}(N(5439))},2525:function(de,ge,N){!function(O){"use strict";var v=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],u=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];O.defineLocale("sd",{months:v,monthsShort:v,weekdays:u,weekdaysShort:u,weekdaysMin:u,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(h){return"\u0634\u0627\u0645"===h},meridiem:function(h,M,p){return h<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(N(5439))},9893:function(de,ge,N){!function(O){"use strict";O.defineLocale("se",{months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3123:function(de,ge,N){!function(O){"use strict";O.defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(u){return u+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(u){return"\u0db4.\u0dc0."===u||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===u},meridiem:function(u,f,h){return u>11?h?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":h?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}})}(N(5439))},9635:function(de,ge,N){!function(O){"use strict";var v="janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),u="jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_");function f(p){return p>1&&p<5}function h(p,y,x,T){var S=p+" ";switch(x){case"s":return y||T?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return y||T?S+(f(p)?"sekundy":"sek\xfand"):S+"sekundami";case"m":return y?"min\xfata":T?"min\xfatu":"min\xfatou";case"mm":return y||T?S+(f(p)?"min\xfaty":"min\xfat"):S+"min\xfatami";case"h":return y?"hodina":T?"hodinu":"hodinou";case"hh":return y||T?S+(f(p)?"hodiny":"hod\xedn"):S+"hodinami";case"d":return y||T?"de\u0148":"d\u0148om";case"dd":return y||T?S+(f(p)?"dni":"dn\xed"):S+"d\u0148ami";case"M":return y||T?"mesiac":"mesiacom";case"MM":return y||T?S+(f(p)?"mesiace":"mesiacov"):S+"mesiacmi";case"y":return y||T?"rok":"rokom";case"yy":return y||T?S+(f(p)?"roky":"rokov"):S+"rokmi"}}O.defineLocale("sk",{months:v,monthsShort:u,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:case 4:case 5:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8106:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y=f+" ";switch(M){case"s":return h||p?"nekaj sekund":"nekaj sekundami";case"ss":return y+(1===f?h?"sekundo":"sekundi":2===f?h||p?"sekundi":"sekundah":f<5?h||p?"sekunde":"sekundah":"sekund");case"m":return h?"ena minuta":"eno minuto";case"mm":return y+(1===f?h?"minuta":"minuto":2===f?h||p?"minuti":"minutama":f<5?h||p?"minute":"minutami":h||p?"minut":"minutami");case"h":return h?"ena ura":"eno uro";case"hh":return y+(1===f?h?"ura":"uro":2===f?h||p?"uri":"urama":f<5?h||p?"ure":"urami":h||p?"ur":"urami");case"d":return h||p?"en dan":"enim dnem";case"dd":return y+(1===f?h||p?"dan":"dnem":2===f?h||p?"dni":"dnevoma":h||p?"dni":"dnevi");case"M":return h||p?"en mesec":"enim mesecem";case"MM":return y+(1===f?h||p?"mesec":"mesecem":2===f?h||p?"meseca":"mesecema":f<5?h||p?"mesece":"meseci":h||p?"mesecev":"meseci");case"y":return h||p?"eno leto":"enim letom";case"yy":return y+(1===f?h||p?"leto":"letom":2===f?h||p?"leti":"letoma":f<5?h||p?"leta":"leti":h||p?"let":"leti")}}O.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:v,ss:v,m:v,mm:v,h:v,hh:v,d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},8799:function(de,ge,N){!function(O){"use strict";O.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(u){return"M"===u.charAt(0)},meridiem:function(u,f,h){return u<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},2872:function(de,ge,N){!function(O){"use strict";var v={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,M){var p=v.words[M];return 1===M.length?h?p[0]:p[1]:f+" "+v.correctGrammaticalCase(f,p)}};O.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:v.translate,m:v.translate,mm:v.translate,h:v.translate,hh:v.translate,d:"\u0434\u0430\u043d",dd:v.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:v.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:v.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},7949:function(de,ge,N){!function(O){"use strict";var v={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,M){var p=v.words[M];return 1===M.length?h?p[0]:p[1]:f+" "+v.correctGrammaticalCase(f,p)}};O.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:v.translate,m:v.translate,mm:v.translate,h:v.translate,hh:v.translate,d:"dan",dd:v.translate,M:"mesec",MM:v.translate,y:"godinu",yy:v.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6167:function(de,ge,N){!function(O){"use strict";O.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(u,f,h){return u<11?"ekuseni":u<15?"emini":u<19?"entsambama":"ebusuku"},meridiemHour:function(u,f){return 12===u&&(u=0),"ekuseni"===f?u:"emini"===f?u>=11?u:u+12:"entsambama"===f||"ebusuku"===f?0===u?0:u+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(N(5439))},9713:function(de,ge,N){!function(O){"use strict";O.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"e":1===f||2===f?"a":"e")},week:{dow:1,doy:4}})}(N(5439))},1982:function(de,ge,N){!function(O){"use strict";O.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(N(5439))},2732:function(de,ge,N){!function(O){"use strict";var v={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},u={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};O.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(h){return h+"\u0bb5\u0ba4\u0bc1"},preparse:function(h){return h.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(h,M,p){return h<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":h<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":h<10?" \u0b95\u0bbe\u0bb2\u0bc8":h<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":h<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":h<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(h,M){return 12===h&&(h=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===M?h<2?h:h+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===M||"\u0b95\u0bbe\u0bb2\u0bc8"===M||"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===M&&h>=10?h:h+12},week:{dow:0,doy:6}})}(N(5439))},3636:function(de,ge,N){!function(O){"use strict";O.defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===f?u<4?u:u+12:"\u0c09\u0c26\u0c2f\u0c02"===f?u:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===f?u>=10?u:u+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===f?u+12:void 0},meridiem:function(u,f,h){return u<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":u<10?"\u0c09\u0c26\u0c2f\u0c02":u<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":u<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}})}(N(5439))},2115:function(de,ge,N){!function(O){"use strict";O.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},9801:function(de,ge,N){!function(O){"use strict";var v={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};O.defineLocale("tg",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(f,h){return 12===f&&(f=0),"\u0448\u0430\u0431"===h?f<4?f:f+12:"\u0441\u0443\u0431\u04b3"===h?f:"\u0440\u04ef\u0437"===h?f>=11?f:f+12:"\u0431\u0435\u0433\u043e\u04b3"===h?f+12:void 0},meridiem:function(f,h,M){return f<4?"\u0448\u0430\u0431":f<11?"\u0441\u0443\u0431\u04b3":f<16?"\u0440\u04ef\u0437":f<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(f){return f+(v[f]||v[f%10]||v[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},2868:function(de,ge,N){!function(O){"use strict";O.defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(u){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===u},meridiem:function(u,f,h){return u<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}})}(N(5439))},2360:function(de,ge,N){!function(O){"use strict";O.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(u){return u},week:{dow:1,doy:4}})}(N(5439))},6645:function(de,ge,N){!function(O){"use strict";var v="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function h(y,x,T,S){var k=function M(y){var x=Math.floor(y%1e3/100),T=Math.floor(y%100/10),S=y%10,k="";return x>0&&(k+=v[x]+"vatlh"),T>0&&(k+=(""!==k?" ":"")+v[T]+"maH"),S>0&&(k+=(""!==k?" ":"")+v[S]),""===k?"pagh":k}(y);switch(T){case"ss":return k+" lup";case"mm":return k+" tup";case"hh":return k+" rep";case"dd":return k+" jaj";case"MM":return k+" jar";case"yy":return k+" DIS"}}O.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function u(y){var x=y;return-1!==y.indexOf("jaj")?x.slice(0,-3)+"leS":-1!==y.indexOf("jar")?x.slice(0,-3)+"waQ":-1!==y.indexOf("DIS")?x.slice(0,-3)+"nem":x+" pIq"},past:function f(y){var x=y;return-1!==y.indexOf("jaj")?x.slice(0,-3)+"Hu\u2019":-1!==y.indexOf("jar")?x.slice(0,-3)+"wen":-1!==y.indexOf("DIS")?x.slice(0,-3)+"ben":x+" ret"},s:"puS lup",ss:h,m:"wa\u2019 tup",mm:h,h:"wa\u2019 rep",hh:h,d:"wa\u2019 jaj",dd:h,M:"wa\u2019 jar",MM:h,y:"wa\u2019 DIS",yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8374:function(de,ge,N){!function(O){"use strict";var v={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};O.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(f,h){switch(h){case"d":case"D":case"Do":case"DD":return f;default:if(0===f)return f+"'\u0131nc\u0131";var M=f%10;return f+(v[M]||v[f%100-M]||v[f>=100?100:null])}},week:{dow:1,doy:7}})}(N(5439))},256:function(de,ge,N){!function(O){"use strict";function u(f,h,M,p){var y={s:["viensas secunds","'iensas secunds"],ss:[f+" secunds",f+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[f+" m\xeduts",f+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[f+" \xfeoras",f+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[f+" ziuas",f+" ziuas"],M:["'n mes","'iens mes"],MM:[f+" mesen",f+" mesen"],y:["'n ar","'iens ar"],yy:[f+" ars",f+" ars"]};return p||h?y[M][0]:y[M][1]}O.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(f){return"d'o"===f.toLowerCase()},meridiem:function(f,h,M){return f>11?M?"d'o":"D'O":M?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:u,ss:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},1631:function(de,ge,N){!function(O){"use strict";O.defineLocale("tzm-latn",{months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(N(5439))},1595:function(de,ge,N){!function(O){"use strict";O.defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}})}(N(5439))},6050:function(de,ge,N){!function(O){"use strict";O.defineLocale("ug-cn",{months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5"===f||"\u0633\u06d5\u06be\u06d5\u0631"===f||"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646"===f?u:"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646"===f||"\u0643\u06d5\u0686"===f?u+12:u>=11?u:u+12},meridiem:function(u,f,h){var M=100*u+f;return M<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":M<900?"\u0633\u06d5\u06be\u06d5\u0631":M<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":M<1230?"\u0686\u06c8\u0634":M<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return u+"-\u06be\u06d5\u067e\u062a\u06d5";default:return u}},preparse:function(u){return u.replace(/\u060c/g,",")},postformat:function(u){return u.replace(/,/g,"\u060c")},week:{dow:1,doy:7}})}(N(5439))},5610:function(de,ge,N){!function(O){"use strict";function u(p,y,x){return"m"===x?y?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===x?y?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":p+" "+function v(p,y){var x=p.split("_");return y%10==1&&y%100!=11?x[0]:y%10>=2&&y%10<=4&&(y%100<10||y%100>=20)?x[1]:x[2]}({ss:y?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:y?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:y?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[x],+p)}function h(p){return function(){return p+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}O.defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function f(p,y){var x={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return p?x[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(y)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(y)?"genitive":"nominative"][p.day()]:x.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:h("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:h("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:h("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:h("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return h("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return h("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:u,m:u,mm:u,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:u,y:"\u0440\u0456\u043a",yy:u},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(p){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(p)},meridiem:function(p,y,x){return p<4?"\u043d\u043e\u0447\u0456":p<12?"\u0440\u0430\u043d\u043a\u0443":p<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(p,y){switch(y){case"M":case"d":case"DDD":case"w":case"W":return p+"-\u0439";case"D":return p+"-\u0433\u043e";default:return p}},week:{dow:1,doy:7}})}(N(5439))},6077:function(de,ge,N){!function(O){"use strict";var v=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],u=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];O.defineLocale("ur",{months:v,monthsShort:v,weekdays:u,weekdaysShort:u,weekdaysMin:u,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(h){return"\u0634\u0627\u0645"===h},meridiem:function(h,M,p){return h<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(N(5439))},2207:function(de,ge,N){!function(O){"use strict";O.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(N(5439))},2862:function(de,ge,N){!function(O){"use strict";O.defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}})}(N(5439))},8093:function(de,ge,N){!function(O){"use strict";O.defineLocale("vi",{months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(u){return/^ch$/i.test(u)},meridiem:function(u,f,h){return u<12?h?"sa":"SA":h?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tu\u1ea7n t\u1edbi l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tu\u1ea7n r\u1ed3i l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(u){return u},week:{dow:1,doy:4}})}(N(5439))},5590:function(de,ge,N){!function(O){"use strict";O.defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},9058:function(de,ge,N){!function(O){"use strict";O.defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}})}(N(5439))},7908:function(de,ge,N){!function(O){"use strict";O.defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:u>=11?u:u+12},meridiem:function(u,f,h){var M=100*u+f;return M<600?"\u51cc\u6668":M<900?"\u65e9\u4e0a":M<1130?"\u4e0a\u5348":M<1230?"\u4e2d\u5348":M<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u5468";default:return u}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}})}(N(5439))},8867:function(de,ge,N){!function(O){"use strict";O.defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e2d\u5348"===f?u>=11?u:u+12:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:void 0},meridiem:function(u,f,h){var M=100*u+f;return M<600?"\u51cc\u6668":M<900?"\u65e9\u4e0a":M<1130?"\u4e0a\u5348":M<1230?"\u4e2d\u5348":M<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u9031";default:return u}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(N(5439))},3291:function(de,ge,N){!function(O){"use strict";O.defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e2d\u5348"===f?u>=11?u:u+12:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:void 0},meridiem:function(u,f,h){var M=100*u+f;return M<600?"\u51cc\u6668":M<900?"\u65e9\u4e0a":M<1130?"\u4e0a\u5348":M<1230?"\u4e2d\u5348":M<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u9031";default:return u}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(N(5439))},5439:function(de,ge,N){(de=N.nmd(de)).exports=function(){"use strict";var O,B;function v(){return O.apply(null,arguments)}function f(m){return m instanceof Array||"[object Array]"===Object.prototype.toString.call(m)}function h(m){return null!=m&&"[object Object]"===Object.prototype.toString.call(m)}function p(m){return void 0===m}function y(m){return"number"==typeof m||"[object Number]"===Object.prototype.toString.call(m)}function x(m){return m instanceof Date||"[object Date]"===Object.prototype.toString.call(m)}function T(m,P){var $,j=[];for($=0;$>>0,$=0;$0)for(j=0;j=0?j?"+":"":"-")+Math.pow(10,Math.max(0,P-$.length)).toString().substr(1)+$}var Ie=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Ye=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ut={},mt={};function it(m,P,j,$){var ne=$;"string"==typeof $&&(ne=function(){return this[$]()}),m&&(mt[m]=ne),P&&(mt[P[0]]=function(){return De(ne.apply(this,arguments),P[1],P[2])}),j&&(mt[j]=function(){return this.localeData().ordinal(ne.apply(this,arguments),m)})}function fn(m){return m.match(/\[[\s\S]/)?m.replace(/^\[|\]$/g,""):m.replace(/\\/g,"")}function bt(m,P){return m.isValid()?(P=qt(P,m.localeData()),ut[P]=ut[P]||function An(m){var j,$,P=m.match(Ie);for(j=0,$=P.length;j<$;j++)P[j]=mt[P[j]]?mt[P[j]]:fn(P[j]);return function(ne){var je,Le="";for(je=0;je<$;je++)Le+=ke(P[je])?P[je].call(ne,m):P[je];return Le}}(P),ut[P](m)):m.localeData().invalidDate()}function qt(m,P){var j=5;function $(ne){return P.longDateFormat(ne)||ne}for(Ye.lastIndex=0;j>=0&&Ye.test(m);)m=m.replace(Ye,$),Ye.lastIndex=0,j-=1;return m}var Gn=/\d/,oi=/\d\d/,Kr=/\d{3}/,Io=/\d{4}/,Ai=/[+-]?\d{6}/,ln=/\d\d?/,wi=/\d\d\d\d?/,si=/\d\d\d\d\d\d?/,Fn=/\d{1,3}/,jd=/\d{1,4}/,dl=/[+-]?\d{1,6}/,xn=/\d+/,_a=/[+-]?\d+/,Fi=/Z|[+-]\d\d:?\d\d/gi,ba=/Z|[+-]\d\d(?::?\d\d)?/gi,pn=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Dt={};function gt(m,P,j){Dt[m]=ke(P)?P:function($,ne){return $&&j?j:P}}function zd(m,P){return S(Dt,m)?Dt[m](P._strict,P._locale):new RegExp(function Z1(m){return hs(m.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(P,j,$,ne,Le){return j||$||ne||Le}))}(m))}function hs(m){return m.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Fe={};function Tn(m,P){var j,$=P;for("string"==typeof m&&(m=[m]),y(P)&&($=function(ne,Le){Le[P]=ee(ne)}),j=0;j68?1900:2e3)};var Ci,Bg=va("FullYear",!0);function va(m,P){return function(j){return null!=j?(cf(this,m,j),v.updateOffset(this,P),this):Wd(this,m)}}function Wd(m,P){return m.isValid()?m._d["get"+(m._isUTC?"UTC":"")+P]():NaN}function cf(m,P,j){m.isValid()&&!isNaN(j)&&("FullYear"===P&&Ud(m.year())&&1===m.month()&&29===m.date()?m._d["set"+(m._isUTC?"UTC":"")+P](j,m.month(),$d(j,m.month())):m._d["set"+(m._isUTC?"UTC":"")+P](j))}function $d(m,P){if(isNaN(m)||isNaN(P))return NaN;var j=function Mn(m,P){return(m%P+P)%P}(P,12);return m+=(P-j)/12,1===j?Ud(m)?29:28:31-j%7%2}Ci=Array.prototype.indexOf?Array.prototype.indexOf:function(m){var P;for(P=0;P=0&&isFinite(At.getFullYear())&&At.setFullYear(m),At}function Wi(m){var P=new Date(Date.UTC.apply(null,arguments));return m<100&&m>=0&&isFinite(P.getUTCFullYear())&&P.setUTCFullYear(m),P}function ul(m,P,j){var $=7+P-j;return-(7+Wi(m,0,$).getUTCDay()-P)%7+$-1}function Ug(m,P,j,$,ne){var Ut,ki,At=1+7*(P-1)+(7+j-$)%7+ul(m,$,ne);return At<=0?ki=dc(Ut=m-1)+At:At>dc(m)?(Ut=m+1,ki=At-dc(m)):(Ut=m,ki=At),{year:Ut,dayOfYear:ki}}function wn(m,P,j){var Le,je,$=ul(m.year(),P,j),ne=Math.floor((m.dayOfYear()-$-1)/7)+1;return ne<1?Le=ne+ya(je=m.year()-1,P,j):ne>ya(m.year(),P,j)?(Le=ne-ya(m.year(),P,j),je=m.year()+1):(je=m.year(),Le=ne),{week:Le,year:je}}function ya(m,P,j){var $=ul(m,P,j),ne=ul(m+1,P,j);return(dc(m)-$+ne)/7}it("w",["ww",2],"wo","week"),it("W",["WW",2],"Wo","isoWeek"),pe("week","w"),pe("isoWeek","W"),me("week",5),me("isoWeek",5),gt("w",ln),gt("ww",ln,oi),gt("W",ln),gt("WW",ln,oi),xt(["w","ww","W","WW"],function(m,P,j,$){P[$.substr(0,1)]=ee(m)});it("d",0,"do","day"),it("dd",0,0,function(m){return this.localeData().weekdaysMin(this,m)}),it("ddd",0,0,function(m){return this.localeData().weekdaysShort(this,m)}),it("dddd",0,0,function(m){return this.localeData().weekdays(this,m)}),it("e",0,0,"weekday"),it("E",0,0,"isoWeekday"),pe("day","d"),pe("weekday","e"),pe("isoWeekday","E"),me("day",11),me("weekday",11),me("isoWeekday",11),gt("d",ln),gt("e",ln),gt("E",ln),gt("dd",function(m,P){return P.weekdaysMinRegex(m)}),gt("ddd",function(m,P){return P.weekdaysShortRegex(m)}),gt("dddd",function(m,P){return P.weekdaysRegex(m)}),xt(["dd","ddd","dddd"],function(m,P,j,$){var ne=j._locale.weekdaysParse(m,$,j._strict);null!=ne?P.d=ne:U(j).invalidWeekday=m}),xt(["d","e","E"],function(m,P,j,$){P[$]=ee(m)});var pf="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var mf="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var qg="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function gf(m,P,j){var $,ne,Le,je=m.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],$=0;$<7;++$)Le=L([2e3,1]).day($),this._minWeekdaysParse[$]=this.weekdaysMin(Le,"").toLocaleLowerCase(),this._shortWeekdaysParse[$]=this.weekdaysShort(Le,"").toLocaleLowerCase(),this._weekdaysParse[$]=this.weekdays(Le,"").toLocaleLowerCase();return j?"dddd"===P?-1!==(ne=Ci.call(this._weekdaysParse,je))?ne:null:"ddd"===P?-1!==(ne=Ci.call(this._shortWeekdaysParse,je))?ne:null:-1!==(ne=Ci.call(this._minWeekdaysParse,je))?ne:null:"dddd"===P?-1!==(ne=Ci.call(this._weekdaysParse,je))||-1!==(ne=Ci.call(this._shortWeekdaysParse,je))||-1!==(ne=Ci.call(this._minWeekdaysParse,je))?ne:null:"ddd"===P?-1!==(ne=Ci.call(this._shortWeekdaysParse,je))||-1!==(ne=Ci.call(this._weekdaysParse,je))||-1!==(ne=Ci.call(this._minWeekdaysParse,je))?ne:null:-1!==(ne=Ci.call(this._minWeekdaysParse,je))||-1!==(ne=Ci.call(this._weekdaysParse,je))||-1!==(ne=Ci.call(this._shortWeekdaysParse,je))?ne:null}var Kg=pn;var Xg=pn;var Oo=pn;function lo(){function m(Br,bl){return bl.length-Br.length}var Le,je,At,Ut,ki,P=[],j=[],$=[],ne=[];for(Le=0;Le<7;Le++)je=L([2e3,1]).day(Le),At=this.weekdaysMin(je,""),Ut=this.weekdaysShort(je,""),ki=this.weekdays(je,""),P.push(At),j.push(Ut),$.push(ki),ne.push(At),ne.push(Ut),ne.push(ki);for(P.sort(m),j.sort(m),$.sort(m),ne.sort(m),Le=0;Le<7;Le++)j[Le]=hs(j[Le]),$[Le]=hs($[Le]),ne[Le]=hs(ne[Le]);this._weekdaysRegex=new RegExp("^("+ne.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+$.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+j.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+P.join("|")+")","i")}function cn(){return this.hours()%12||12}function _c(m,P){it(m,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),P)})}function bc(m,P){return P._meridiemParse}it("H",["HH",2],0,"hour"),it("h",["hh",2],0,cn),it("k",["kk",2],0,function gc(){return this.hours()||24}),it("hmm",0,0,function(){return""+cn.apply(this)+De(this.minutes(),2)}),it("hmmss",0,0,function(){return""+cn.apply(this)+De(this.minutes(),2)+De(this.seconds(),2)}),it("Hmm",0,0,function(){return""+this.hours()+De(this.minutes(),2)}),it("Hmmss",0,0,function(){return""+this.hours()+De(this.minutes(),2)+De(this.seconds(),2)}),_c("a",!0),_c("A",!1),pe("hour","h"),me("hour",13),gt("a",bc),gt("A",bc),gt("H",ln),gt("h",ln),gt("k",ln),gt("HH",ln,oi),gt("hh",ln,oi),gt("kk",ln,oi),gt("hmm",wi),gt("hmmss",si),gt("Hmm",wi),gt("Hmmss",si),Tn(["H","HH"],ai),Tn(["k","kk"],function(m,P,j){var $=ee(m);P[ai]=24===$?0:$}),Tn(["a","A"],function(m,P,j){j._isPm=j._locale.isPM(m),j._meridiem=m}),Tn(["h","hh"],function(m,P,j){P[ai]=ee(m),U(j).bigHour=!0}),Tn("hmm",function(m,P,j){var $=m.length-2;P[ai]=ee(m.substr(0,$)),P[ti]=ee(m.substr($)),U(j).bigHour=!0}),Tn("hmmss",function(m,P,j){var $=m.length-4,ne=m.length-2;P[ai]=ee(m.substr(0,$)),P[ti]=ee(m.substr($,2)),P[ps]=ee(m.substr(ne)),U(j).bigHour=!0}),Tn("Hmm",function(m,P,j){var $=m.length-2;P[ai]=ee(m.substr(0,$)),P[ti]=ee(m.substr($))}),Tn("Hmmss",function(m,P,j){var $=m.length-4,ne=m.length-2;P[ai]=ee(m.substr(0,$)),P[ti]=ee(m.substr($,2)),P[ps]=ee(m.substr(ne))});var Ca,bf=va("Hours",!0),Xd={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ne,monthsShort:Nt,week:{dow:0,doy:6},weekdays:pf,weekdaysMin:qg,weekdaysShort:mf,meridiemParse:/[ap]\.?m?\.?/i},hi={},wa={};function xa(m){return m&&m.toLowerCase().replace("_","-")}function ml(m){var P=null;if(!hi[m]&&de&&de.exports)try{P=Ca._abbr,N(6700)("./"+m),ka(P)}catch{}return hi[m]}function ka(m,P){var j;return m&&((j=p(P)?_s(m):vc(m,P))?Ca=j:typeof console<"u"&&console.warn&&console.warn("Locale "+m+" not found. Did you forget to load it?")),Ca._abbr}function vc(m,P){if(null!==P){var j,$=Xd;if(P.abbr=m,null!=hi[m])Se("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),$=hi[m]._config;else if(null!=P.parentLocale)if(null!=hi[P.parentLocale])$=hi[P.parentLocale]._config;else{if(null==(j=ml(P.parentLocale)))return wa[P.parentLocale]||(wa[P.parentLocale]=[]),wa[P.parentLocale].push({name:m,config:P}),null;$=j._config}return hi[m]=new st(tt($,P)),wa[m]&&wa[m].forEach(function(ne){vc(ne.name,ne.config)}),ka(m),hi[m]}return delete hi[m],null}function _s(m){var P;if(m&&m._locale&&m._locale._abbr&&(m=m._locale._abbr),!m)return Ca;if(!f(m)){if(P=ml(m))return P;m=[m]}return function vf(m){for(var j,$,ne,Le,P=0;P0;){if(ne=ml(Le.slice(0,j).join("-")))return ne;if($&&$.length>=j&&ae(Le,$,!0)>=j-1)break;j--}P++}return Ca}(m)}function Jd(m){var P,j=m._a;return j&&-2===U(m).overflow&&(P=j[fs]<0||j[fs]>11?fs:j[Po]<1||j[Po]>$d(j[ao],j[fs])?Po:j[ai]<0||j[ai]>24||24===j[ai]&&(0!==j[ti]||0!==j[ps]||0!==j[Ys])?ai:j[ti]<0||j[ti]>59?ti:j[ps]<0||j[ps]>59?ps:j[Ys]<0||j[Ys]>999?Ys:-1,U(m)._overflowDayOfYear&&(PPo)&&(P=Po),U(m)._overflowWeeks&&-1===P&&(P=X1),U(m)._overflowWeekday&&-1===P&&(P=ms),U(m).overflow=P),m}function Hs(m,P,j){return m??P??j}function Qd(m){var P,j,ne,Le,je,$=[];if(!m._d){for(ne=function Qg(m){var P=new Date(v.now());return m._useUTC?[P.getUTCFullYear(),P.getUTCMonth(),P.getUTCDate()]:[P.getFullYear(),P.getMonth(),P.getDate()]}(m),m._w&&null==m._a[Po]&&null==m._a[fs]&&function e_(m){var P,j,$,ne,Le,je,At,Ut;if(null!=(P=m._w).GG||null!=P.W||null!=P.E)Le=1,je=4,j=Hs(P.GG,m._a[ao],wn(zt(),1,4).year),$=Hs(P.W,1),((ne=Hs(P.E,1))<1||ne>7)&&(Ut=!0);else{Le=m._locale._week.dow,je=m._locale._week.doy;var ki=wn(zt(),Le,je);j=Hs(P.gg,m._a[ao],ki.year),$=Hs(P.w,ki.week),null!=P.d?((ne=P.d)<0||ne>6)&&(Ut=!0):null!=P.e?(ne=P.e+Le,(P.e<0||P.e>6)&&(Ut=!0)):ne=Le}$<1||$>ya(j,Le,je)?U(m)._overflowWeeks=!0:null!=Ut?U(m)._overflowWeekday=!0:(At=Ug(j,$,ne,Le,je),m._a[ao]=At.year,m._dayOfYear=At.dayOfYear)}(m),null!=m._dayOfYear&&(je=Hs(m._a[ao],ne[ao]),(m._dayOfYear>dc(je)||0===m._dayOfYear)&&(U(m)._overflowDayOfYear=!0),j=Wi(je,0,m._dayOfYear),m._a[fs]=j.getUTCMonth(),m._a[Po]=j.getUTCDate()),P=0;P<3&&null==m._a[P];++P)m._a[P]=$[P]=ne[P];for(;P<7;P++)m._a[P]=$[P]=null==m._a[P]?2===P?1:0:m._a[P];24===m._a[ai]&&0===m._a[ti]&&0===m._a[ps]&&0===m._a[Ys]&&(m._nextDay=!0,m._a[ai]=0),m._d=(m._useUTC?Wi:ff).apply(null,$),Le=m._useUTC?m._d.getUTCDay():m._d.getDay(),null!=m._tzm&&m._d.setUTCMinutes(m._d.getUTCMinutes()-m._tzm),m._nextDay&&(m._a[ai]=24),m._w&&typeof m._w.d<"u"&&m._w.d!==Le&&(U(m).weekdayMismatch=!0)}}var t_=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,yf=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,n_=/Z|[+-]\d\d(?::?\d\d)?/,yc=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],eu=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Ze=/^\/?Date\((\-?\d+)/i;function Mc(m){var P,j,Le,je,At,Ut,$=m._i,ne=t_.exec($)||yf.exec($);if(ne){for(U(m).iso=!0,P=0,j=yc.length;P0&&U(m).unusedInput.push(je),P=P.slice(P.indexOf($)+$.length),Ut+=$.length),mt[Le]?($?U(m).empty=!1:U(m).unusedTokens.push(Le),yn(Le,$,m)):m._strict&&!$&&U(m).unusedTokens.push(Le);U(m).charsLeftOver=At-Ut,P.length>0&&U(m).unusedInput.push(P),m._a[ai]<=12&&!0===U(m).bigHour&&m._a[ai]>0&&(U(m).bigHour=void 0),U(m).parsedDateParts=m._a.slice(0),U(m).meridiem=m._meridiem,m._a[ai]=function Sa(m,P,j){var $;return null==j?P:null!=m.meridiemHour?m.meridiemHour(P,j):(null!=m.isPM&&(($=m.isPM(j))&&P<12&&(P+=12),!$&&12===P&&(P=0)),P)}(m._locale,m._a[ai],m._meridiem),Qd(m),Jd(m)}else gn(m);else Mc(m)}function gl(m){var P=m._i,j=m._f;return m._locale=m._locale||_s(m._l),null===P||void 0===j&&""===P?re({nullInput:!0}):("string"==typeof P&&(m._i=P=m._locale.preparse(P)),q(P)?new he(Jd(P)):(x(P)?m._d=P:f(j)?function Nr(m){var P,j,$,ne,Le;if(0===m._f.length)return U(m).invalidFormat=!0,void(m._d=new Date(NaN));for(ne=0;nethis?this:m:re()});function Xn(m,P){var j,$;if(1===P.length&&f(P[0])&&(P=P[0]),!P.length)return zt();for(j=P[0],$=1;$(Le=ya(m,$,ne))&&(P=Le),Lc.call(this,m,P,j,$,ne))}function Lc(m,P,j,$,ne){var Le=Ug(m,P,j,$,ne),je=Wi(Le.year,0,Le.dayOfYear);return this.year(je.getUTCFullYear()),this.month(je.getUTCMonth()),this.date(je.getUTCDate()),this}it(0,["gg",2],0,function(){return this.weekYear()%100}),it(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Gs("gggg","weekYear"),Gs("ggggg","weekYear"),Gs("GGGG","isoWeekYear"),Gs("GGGGG","isoWeekYear"),pe("weekYear","gg"),pe("isoWeekYear","GG"),me("weekYear",1),me("isoWeekYear",1),gt("G",_a),gt("g",_a),gt("GG",ln,oi),gt("gg",ln,oi),gt("GGGG",jd,Io),gt("gggg",jd,Io),gt("GGGGG",dl,Ai),gt("ggggg",dl,Ai),xt(["gggg","ggggg","GGGG","GGGGG"],function(m,P,j,$){P[$.substr(0,2)]=ee(m)}),xt(["gg","GG"],function(m,P,j,$){P[$]=v.parseTwoDigitYear(m)}),it("Q",0,"Qo","quarter"),pe("quarter","Q"),me("quarter",7),gt("Q",Gn),Tn("Q",function(m,P){P[fs]=3*(ee(m)-1)}),it("D",["DD",2],"Do","date"),pe("date","D"),me("date",9),gt("D",ln),gt("DD",ln,oi),gt("Do",function(m,P){return m?P._dayOfMonthOrdinalParse||P._ordinalParse:P._dayOfMonthOrdinalParseLenient}),Tn(["D","DD"],Po),Tn("Do",function(m,P){P[Po]=ee(m.match(ln)[0])});var b_=va("Date",!0);it("DDD",["DDDD",3],"DDDo","dayOfYear"),pe("dayOfYear","DDD"),me("dayOfYear",4),gt("DDD",Fn),gt("DDDD",Kr),Tn(["DDD","DDDD"],function(m,P,j){j._dayOfYear=ee(m)}),it("m",["mm",2],0,"minute"),pe("minute","m"),me("minute",14),gt("m",ln),gt("mm",ln,oi),Tn(["m","mm"],ti);var su=va("Minutes",!1);it("s",["ss",2],0,"second"),pe("second","s"),me("second",15),gt("s",ln),gt("ss",ln,oi),Tn(["s","ss"],ps);var po,v_=va("Seconds",!1);for(it("S",0,0,function(){return~~(this.millisecond()/100)}),it(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),it(0,["SSS",3],0,"millisecond"),it(0,["SSSS",4],0,function(){return 10*this.millisecond()}),it(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),it(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),it(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),it(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),it(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),pe("millisecond","ms"),me("millisecond",16),gt("S",Fn,Gn),gt("SS",Fn,oi),gt("SSS",Fn,Kr),po="SSSS";po.length<=9;po+="S")gt(po,xn);function y_(m,P){P[Ys]=ee(1e3*("0."+m))}for(po="S";po.length<=9;po+="S")Tn(po,y_);var yM=va("Milliseconds",!1);it("z",0,0,"zoneAbbr"),it("zz",0,0,"zoneName");var Je=he.prototype;function Gi(m){return m}Je.add=Ws,Je.calendar=function nu(m,P){var j=m||zt(),$=bs(j,this).startOf("day"),ne=v.calendarFormat(this,$)||"sameElse",Le=P&&(ke(P[ne])?P[ne].call(this,j):P[ne]);return this.format(Le||this.localeData().calendar(ne,this,zt(j)))},Je.clone=function l_(){return new he(this)},Je.diff=function lM(m,P,j){var $,ne,Le;if(!this.isValid())return NaN;if(!($=bs(m,this)).isValid())return NaN;switch(ne=6e4*($.utcOffset()-this.utcOffset()),P=fe(P)){case"year":Le=Df(this,$)/12;break;case"month":Le=Df(this,$);break;case"quarter":Le=Df(this,$)/3;break;case"second":Le=(this-$)/1e3;break;case"minute":Le=(this-$)/6e4;break;case"hour":Le=(this-$)/36e5;break;case"day":Le=(this-$-ne)/864e5;break;case"week":Le=(this-$-ne)/6048e5;break;default:Le=this-$}return j?Le:Q(Le)},Je.endOf=function $s(m){return void 0===(m=fe(m))||"millisecond"===m?this:("date"===m&&(m="day"),this.startOf(m).add(1,"isoWeek"===m?"week":m).subtract(1,"ms"))},Je.format=function hM(m){m||(m=this.isUtc()?v.defaultFormatUtc:v.defaultFormat);var P=bt(this,m);return this.localeData().postformat(P)},Je.from=function fM(m,P){return this.isValid()&&(q(m)&&m.isValid()||zt(m).isValid())?br({to:this,from:m}).locale(this.locale()).humanize(!P):this.localeData().invalidDate()},Je.fromNow=function pM(m){return this.from(zt(),m)},Je.to=function mM(m,P){return this.isValid()&&(q(m)&&m.isValid()||zt(m).isValid())?br({from:this,to:m}).locale(this.locale()).humanize(!P):this.localeData().invalidDate()},Je.toNow=function Tf(m){return this.to(zt(),m)},Je.get=function Q1(m){return ke(this[m=fe(m)])?this[m]():this},Je.invalidAt=function g_(){return U(this).overflow},Je.isAfter=function rM(m,P){var j=q(m)?m:zt(m);return!(!this.isValid()||!j.isValid())&&("millisecond"===(P=fe(p(P)?"millisecond":P))?this.valueOf()>j.valueOf():j.valueOf()9999?bt(j,P?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):ke(Date.prototype.toISOString)?P?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",bt(j,"Z")):bt(j,P?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Je.inspect=function uM(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var m="moment",P="";this.isLocal()||(m=0===this.utcOffset()?"moment.utc":"moment.parseZone",P="Z");var j="["+m+'("]',$=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";return this.format(j+$+"-MM-DD[T]HH:mm:ss.SSS"+P+'[")]')},Je.toJSON=function p_(){return this.isValid()?this.toISOString():null},Je.toString=function cM(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Je.unix=function _M(){return Math.floor(this.valueOf()/1e3)},Je.valueOf=function Lf(){return this._d.valueOf()-6e4*(this._offset||0)},Je.creationData=function Fo(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Je.year=Bg,Je.isLeapYear=function J1(){return Ud(this.year())},Je.weekYear=function $i(m){return Tc.call(this,m,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Je.isoWeekYear=function If(m){return Tc.call(this,m,this.isoWeek(),this.isoWeekday(),1,4)},Je.quarter=Je.quarters=function __(m){return null==m?Math.ceil((this.month()+1)/3):this.month(3*(m-1)+this.month()%3)},Je.month=Gd,Je.daysInMonth=function hc(){return $d(this.year(),this.month())},Je.week=Je.weeks=function pc(m){var P=this.localeData().week(this);return null==m?P:this.add(7*(m-P),"d")},Je.isoWeek=Je.isoWeeks=function Wg(m){var P=wn(this,1,4).week;return null==m?P:this.add(7*(m-P),"d")},Je.weeksInYear=function ou(){var m=this.localeData()._week;return ya(this.year(),m.dow,m.doy)},Je.isoWeeksInYear=function vM(){return ya(this.year(),1,4)},Je.date=b_,Je.day=Je.days=function mc(m){if(!this.isValid())return null!=m?this:NaN;var P=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=m?(m=function $g(m,P){return"string"!=typeof m?m:isNaN(m)?"number"==typeof(m=P.weekdaysParse(m))?m:null:parseInt(m,10)}(m,this.localeData()),this.add(m-P,"d")):P},Je.weekday=function Zd(m){if(!this.isValid())return null!=m?this:NaN;var P=(this.day()+7-this.localeData()._week.dow)%7;return null==m?P:this.add(m-P,"d")},Je.isoWeekday=function fl(m){if(!this.isValid())return null!=m?this:NaN;if(null!=m){var P=function Gg(m,P){return"string"==typeof m?P.weekdaysParse(m)%7||7:isNaN(m)?null:m}(m,this.localeData());return this.day(this.day()%7?P:P-7)}return this.day()||7},Je.dayOfYear=function Pf(m){var P=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==m?P:this.add(m-P,"d")},Je.hour=Je.hours=bf,Je.minute=Je.minutes=su,Je.second=Je.seconds=v_,Je.millisecond=Je.milliseconds=yM,Je.utcOffset=function _l(m,P,j){var ne,$=this._offset||0;if(!this.isValid())return null!=m?this:NaN;if(null!=m){if("string"==typeof m){if(null===(m=Us(ba,m)))return this}else Math.abs(m)<16&&!j&&(m*=60);return!this._isUTC&&P&&(ne=Xr(this)),this._offset=m,this._isUTC=!0,null!=ne&&this.add(ne,"m"),$!==m&&(!P||this._changeInProgress?Sc(this,br(m-$,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,v.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?$:Xr(this)},Je.utc=function vs(m){return this.utcOffset(0,m)},Je.local=function Xo(m){return this._isUTC&&(this.utcOffset(0,m),this._isUTC=!1,m&&this.subtract(Xr(this),"m")),this},Je.parseZone=function Cc(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var m=Us(Fi,this._i);null!=m?this.utcOffset(m):this.utcOffset(0,!0)}return this},Je.hasAlignedHourOffset=function xc(m){return!!this.isValid()&&(m=m?zt(m).utcOffset():0,(this.utcOffset()-m)%60==0)},Je.isDST=function Qt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Je.isLocal=function tu(){return!!this.isValid()&&!this._isUTC},Je.isUtcOffset=function Sf(){return!!this.isValid()&&this._isUTC},Je.isUtc=ho,Je.isUTC=ho,Je.zoneAbbr=function MM(){return this._isUTC?"UTC":""},Je.zoneName=function wM(){return this._isUTC?"Coordinated Universal Time":""},Je.dates=J("dates accessor is deprecated. Use date instead.",b_),Je.months=J("months accessor is deprecated. Use month instead",Gd),Je.years=J("years accessor is deprecated. Use year instead",Bg),Je.zone=J("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function kf(m,P){return null!=m?("string"!=typeof m&&(m=-m),this.utcOffset(m,P),this):-this.utcOffset()}),Je.isDSTShifted=J("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function iM(){if(!p(this._isDSTShifted))return this._isDSTShifted;var m={};if(Z(m,this),(m=gl(m))._a){var P=m._isUTC?L(m._a):zt(m._a);this._isDSTShifted=this.isValid()&&ae(m._a,P.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var Rn=st.prototype;function Ec(m,P,j,$){var ne=_s(),Le=L().set($,P);return ne[j](Le,m)}function Of(m,P,j){if(y(m)&&(P=m,m=void 0),m=m||"",null!=P)return Ec(m,P,j,"month");var $,ne=[];for($=0;$<12;$++)ne[$]=Ec(m,$,j,"month");return ne}function Ic(m,P,j,$){"boolean"==typeof m?(y(P)&&(j=P,P=void 0),P=P||""):(j=P=m,m=!1,y(P)&&(j=P,P=void 0),P=P||"");var ne=_s(),Le=m?ne._week.dow:0;if(null!=j)return Ec(P,(j+Le)%7,$,"day");var je,At=[];for(je=0;je<7;je++)At[je]=Ec(P,(je+Le)%7,$,"day");return At}Rn.calendar=function an(m,P,j){var $=this._calendar[m]||this._calendar.sameElse;return ke($)?$.call(P,j):$},Rn.longDateFormat=function On(m){var P=this._longDateFormat[m],j=this._longDateFormat[m.toUpperCase()];return P||!j?P:(this._longDateFormat[m]=j.replace(/MMMM|MM|DD|dddd/g,function($){return $.slice(1)}),this._longDateFormat[m])},Rn.invalidDate=function Ge(){return this._invalidDate},Rn.ordinal=function dr(m){return this._ordinal.replace("%d",m)},Rn.preparse=Gi,Rn.postformat=Gi,Rn.relativeTime=function W(m,P,j,$){var ne=this._relativeTime[j];return ke(ne)?ne(m,P,j,$):ne.replace(/%d/i,m)},Rn.pastFuture=function oe(m,P){var j=this._relativeTime[m>0?"future":"past"];return ke(j)?j(P):j.replace(/%s/i,P)},Rn.set=function Be(m){var P,j;for(j in m)ke(P=m[j])?this[j]=P:this["_"+j]=P;this._config=m,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Rn.months=function eM(m,P){return m?f(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||Vg).test(P)?"format":"standalone"][m.month()]:f(this._months)?this._months:this._months.standalone},Rn.monthsShort=function uc(m,P){return m?f(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[Vg.test(P)?"format":"standalone"][m.month()]:f(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Rn.monthsParse=function df(m,P,j){var $,ne,Le;if(this._monthsParseExact)return jg.call(this,m,P,j);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),$=0;$<12;$++){if(ne=L([2e3,$]),j&&!this._longMonthsParse[$]&&(this._longMonthsParse[$]=new RegExp("^"+this.months(ne,"").replace(".","")+"$","i"),this._shortMonthsParse[$]=new RegExp("^"+this.monthsShort(ne,"").replace(".","")+"$","i")),!j&&!this._monthsParse[$]&&(Le="^"+this.months(ne,"")+"|^"+this.monthsShort(ne,""),this._monthsParse[$]=new RegExp(Le.replace(".",""),"i")),j&&"MMMM"===P&&this._longMonthsParse[$].test(m))return $;if(j&&"MMM"===P&&this._shortMonthsParse[$].test(m))return $;if(!j&&this._monthsParse[$].test(m))return $}},Rn.monthsRegex=function Mt(m){return this._monthsParseExact?(S(this,"_monthsRegex")||fc.call(this),m?this._monthsStrictRegex:this._monthsRegex):(S(this,"_monthsRegex")||(this._monthsRegex=zg),this._monthsStrictRegex&&m?this._monthsStrictRegex:this._monthsRegex)},Rn.monthsShortRegex=function hf(m){return this._monthsParseExact?(S(this,"_monthsRegex")||fc.call(this),m?this._monthsShortStrictRegex:this._monthsShortRegex):(S(this,"_monthsShortRegex")||(this._monthsShortRegex=qd),this._monthsShortStrictRegex&&m?this._monthsShortStrictRegex:this._monthsShortRegex)},Rn.week=function tM(m){return wn(m,this._week.dow,this._week.doy).week},Rn.firstDayOfYear=function Kd(){return this._week.doy},Rn.firstDayOfWeek=function hl(){return this._week.dow},Rn.weekdays=function Ma(m,P){return m?f(this._weekdays)?this._weekdays[m.day()]:this._weekdays[this._weekdays.isFormat.test(P)?"format":"standalone"][m.day()]:f(this._weekdays)?this._weekdays:this._weekdays.standalone},Rn.weekdaysMin=function we(m){return m?this._weekdaysMin[m.day()]:this._weekdaysMin},Rn.weekdaysShort=function gs(m){return m?this._weekdaysShort[m.day()]:this._weekdaysShort},Rn.weekdaysParse=function Qe(m,P,j){var $,ne,Le;if(this._weekdaysParseExact)return gf.call(this,m,P,j);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),$=0;$<7;$++){if(ne=L([2e3,1]).day($),j&&!this._fullWeekdaysParse[$]&&(this._fullWeekdaysParse[$]=new RegExp("^"+this.weekdays(ne,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[$]=new RegExp("^"+this.weekdaysShort(ne,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[$]=new RegExp("^"+this.weekdaysMin(ne,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[$]||(Le="^"+this.weekdays(ne,"")+"|^"+this.weekdaysShort(ne,"")+"|^"+this.weekdaysMin(ne,""),this._weekdaysParse[$]=new RegExp(Le.replace(".",""),"i")),j&&"dddd"===P&&this._fullWeekdaysParse[$].test(m))return $;if(j&&"ddd"===P&&this._shortWeekdaysParse[$].test(m))return $;if(j&&"dd"===P&&this._minWeekdaysParse[$].test(m))return $;if(!j&&this._weekdaysParse[$].test(m))return $}},Rn.weekdaysRegex=function Zg(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||lo.call(this),m?this._weekdaysStrictRegex:this._weekdaysRegex):(S(this,"_weekdaysRegex")||(this._weekdaysRegex=Kg),this._weekdaysStrictRegex&&m?this._weekdaysStrictRegex:this._weekdaysRegex)},Rn.weekdaysShortRegex=function Ko(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||lo.call(this),m?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(S(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Xg),this._weekdaysShortStrictRegex&&m?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Rn.weekdaysMinRegex=function Dr(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||lo.call(this),m?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(S(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Oo),this._weekdaysMinStrictRegex&&m?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Rn.isPM=function _f(m){return"p"===(m+"").toLowerCase().charAt(0)},Rn.meridiem=function pl(m,P,j){return m>11?j?"pm":"PM":j?"am":"AM"},ka("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(m){var P=m%10;return m+(1===ee(m%100/10)?"th":1===P?"st":2===P?"nd":3===P?"rd":"th")}}),v.lang=J("moment.lang is deprecated. Use moment.locale instead.",ka),v.langData=J("moment.langData is deprecated. Use moment.localeData instead.",_s);var No=Math.abs;function Un(m,P,j,$){var ne=br(P,j);return m._milliseconds+=$*ne._milliseconds,m._days+=$*ne._days,m._months+=$*ne._months,m._bubble()}function yr(m){return m<0?Math.floor(m):Math.ceil(m)}function lu(m){return 4800*m/146097}function ys(m){return 146097*m/4800}function mo(m){return function(){return this.as(m)}}var T_=mo("ms"),Ms=mo("s"),Rf=mo("m"),L_=mo("h"),Nf=mo("d"),Yf=mo("w"),Hf=mo("M"),E_=mo("y");function La(m){return function(){return this.isValid()?this._data[m]:NaN}}var I_=La("milliseconds"),P_=La("seconds"),O_=La("minutes"),Vf=La("hours"),Ea=La("days"),A_=La("months"),F_=La("years");var ws=Math.round,Yo={ss:44,s:45,m:45,h:22,d:26,M:11};function Ve(m,P,j,$,ne){return ne.relativeTime(P||1,!!j,m,$)}var Oc=Math.abs;function Ho(m){return(m>0)-(m<0)||+m}function Hr(){if(!this.isValid())return this.localeData().invalidDate();var $,ne,m=Oc(this._milliseconds)/1e3,P=Oc(this._days),j=Oc(this._months);$=Q(m/60),ne=Q($/60),m%=60,$%=60;var je=Q(j/12),At=j%=12,Ut=P,ki=ne,Br=$,bl=m?m.toFixed(3).replace(/\.?0+$/,""):"",vl=this.asSeconds();if(!vl)return"P0D";var cu=vl<0?"-":"",Ac=Ho(this._months)!==Ho(vl)?"-":"",jf=Ho(this._days)!==Ho(vl)?"-":"",yl=Ho(this._milliseconds)!==Ho(vl)?"-":"";return cu+"P"+(je?Ac+je+"Y":"")+(At?Ac+At+"M":"")+(Ut?jf+Ut+"D":"")+(ki||Br||bl?"T":"")+(ki?yl+ki+"H":"")+(Br?yl+Br+"M":"")+(bl?yl+bl+"S":"")}var tn=Et.prototype;return tn.isValid=function Da(){return this._isValid},tn.abs=function Ff(){var m=this._data;return this._milliseconds=No(this._milliseconds),this._days=No(this._days),this._months=No(this._months),m.milliseconds=No(m.milliseconds),m.seconds=No(m.seconds),m.minutes=No(m.minutes),m.hours=No(m.hours),m.months=No(m.months),m.years=No(m.years),this},tn.add=function k_(m,P){return Un(this,m,P,1)},tn.subtract=function Pc(m,P){return Un(this,m,P,-1)},tn.as=function Tr(m){if(!this.isValid())return NaN;var P,j,$=this._milliseconds;if("month"===(m=fe(m))||"year"===m)return j=this._months+lu(P=this._days+$/864e5),"month"===m?j:j/12;switch(P=this._days+Math.round(ys(this._months)),m){case"week":return P/7+$/6048e5;case"day":return P+$/864e5;case"hour":return 24*P+$/36e5;case"minute":return 1440*P+$/6e4;case"second":return 86400*P+$/1e3;case"millisecond":return Math.floor(864e5*P)+$;default:throw new Error("Unknown unit "+m)}},tn.asMilliseconds=T_,tn.asSeconds=Ms,tn.asMinutes=Rf,tn.asHours=L_,tn.asDays=Nf,tn.asWeeks=Yf,tn.asMonths=Hf,tn.asYears=E_,tn.valueOf=function D_(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*ee(this._months/12):NaN},tn._bubble=function S_(){var ne,Le,je,At,Ut,m=this._milliseconds,P=this._days,j=this._months,$=this._data;return m>=0&&P>=0&&j>=0||m<=0&&P<=0&&j<=0||(m+=864e5*yr(ys(j)+P),P=0,j=0),$.milliseconds=m%1e3,ne=Q(m/1e3),$.seconds=ne%60,Le=Q(ne/60),$.minutes=Le%60,je=Q(Le/60),$.hours=je%24,P+=Q(je/24),j+=Ut=Q(lu(P)),P-=yr(ys(Ut)),At=Q(j/12),j%=12,$.days=P,$.months=j,$.years=At,this},tn.clone=function Tt(){return br(this)},tn.get=function Bf(m){return m=fe(m),this.isValid()?this[m+"s"]():NaN},tn.milliseconds=I_,tn.seconds=P_,tn.minutes=O_,tn.hours=Vf,tn.days=Ea,tn.weeks=function R_(){return Q(this.days()/7)},tn.months=A_,tn.years=F_,tn.humanize=function tr(m){if(!this.isValid())return this.localeData().invalidDate();var P=this.localeData(),j=function dn(m,P,j){var $=br(m).abs(),ne=ws($.as("s")),Le=ws($.as("m")),je=ws($.as("h")),At=ws($.as("d")),Ut=ws($.as("M")),ki=ws($.as("y")),Br=ne<=Yo.ss&&["s",ne]||ne0,Br[4]=j,Ve.apply(null,Br)}(this,!m,P);return m&&(j=P.pastFuture(+this,j)),P.postformat(j)},tn.toISOString=Hr,tn.toString=Hr,tn.toJSON=Hr,tn.locale=iu,tn.localeData=h_,tn.toIsoString=J("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Hr),tn.lang=u_,it("X",0,0,"unix"),it("x",0,0,"valueOf"),gt("x",_a),gt("X",/[+-]?\d+(\.\d{1,3})?/),Tn("X",function(m,P,j){j._d=new Date(1e3*parseFloat(m,10))}),Tn("x",function(m,P,j){j._d=new Date(ee(m))}),v.version="2.22.2",function u(m){O=m}(zt),v.fn=Je,v.min=function uo(){return Xn("isBefore",[].slice.call(arguments,0))},v.max=function Bs(){return Xn("isAfter",[].slice.call(arguments,0))},v.now=function(){return Date.now?Date.now():+new Date},v.utc=L,v.unix=function M_(m){return zt(1e3*m)},v.months=function Af(m,P){return Of(m,P,"months")},v.isDate=x,v.locale=ka,v.invalid=re,v.duration=br,v.isMoment=q,v.weekdays=function au(m,P,j){return Ic(m,P,j,"weekdays")},v.parseZone=function w_(){return zt.apply(null,arguments).parseZone()},v.localeData=_s,v.isDuration=js,v.monthsShort=function C_(m,P){return Of(m,P,"monthsShort")},v.weekdaysMin=function Ro(m,P,j){return Ic(m,P,j,"weekdaysMin")},v.defineLocale=vc,v.updateLocale=function Jg(m,P){if(null!=P){var j,$,ne=Xd;null!=($=ml(m))&&(ne=$._config),(j=new st(P=tt(ne,P))).parentLocale=hi[m],hi[m]=j,ka(m)}else null!=hi[m]&&(null!=hi[m].parentLocale?hi[m]=hi[m].parentLocale:null!=hi[m]&&delete hi[m]);return hi[m]},v.locales=function co(){return at(hi)},v.weekdaysShort=function x_(m,P,j){return Ic(m,P,j,"weekdaysShort")},v.normalizeUnits=fe,v.relativeTimeRounding=function Pe(m){return void 0===m?ws:"function"==typeof m&&(ws=m,!0)},v.relativeTimeThreshold=function Oe(m,P){return void 0!==Yo[m]&&(void 0===P?Yo[m]:(Yo[m]=P,"s"===m&&(Yo.ss=P-1),!0))},v.calendarFormat=function fo(m,P){var j=m.diff(P,"days",!0);return j<-6?"sameElse":j<-1?"lastWeek":j<0?"lastDay":j<1?"sameDay":j<2?"nextDay":j<7?"nextWeek":"sameElse"},v.prototype=Je,v.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},v}()},6700:(de,ge,N)=>{var O={"./af":7088,"./af.js":7088,"./ar":7038,"./ar-dz":2502,"./ar-dz.js":2502,"./ar-kw":128,"./ar-kw.js":128,"./ar-ly":4519,"./ar-ly.js":4519,"./ar-ma":5443,"./ar-ma.js":5443,"./ar-sa":7642,"./ar-sa.js":7642,"./ar-tn":8592,"./ar-tn.js":8592,"./ar.js":7038,"./az":1213,"./az.js":1213,"./be":9191,"./be.js":9191,"./bg":322,"./bg.js":322,"./bm":8042,"./bm.js":8042,"./bn":9620,"./bn.js":9620,"./bo":9645,"./bo.js":9645,"./br":5020,"./br.js":5020,"./bs":4792,"./bs.js":4792,"./ca":7980,"./ca.js":7980,"./cs":7322,"./cs.js":7322,"./cv":365,"./cv.js":365,"./cy":2092,"./cy.js":2092,"./da":7387,"./da.js":7387,"./de":4307,"./de-at":9459,"./de-at.js":9459,"./de-ch":3694,"./de-ch.js":3694,"./de.js":4307,"./dv":9659,"./dv.js":9659,"./el":3460,"./el.js":3460,"./en-au":4369,"./en-au.js":4369,"./en-ca":530,"./en-ca.js":530,"./en-gb":9998,"./en-gb.js":9998,"./en-ie":3391,"./en-ie.js":3391,"./en-il":5414,"./en-il.js":5414,"./en-nz":1248,"./en-nz.js":1248,"./eo":4530,"./eo.js":4530,"./es":6866,"./es-do":8944,"./es-do.js":8944,"./es-us":3609,"./es-us.js":3609,"./es.js":6866,"./et":6725,"./et.js":6725,"./eu":7931,"./eu.js":7931,"./fa":6417,"./fa.js":6417,"./fi":944,"./fi.js":944,"./fo":5867,"./fo.js":5867,"./fr":1636,"./fr-ca":6848,"./fr-ca.js":6848,"./fr-ch":7773,"./fr-ch.js":7773,"./fr.js":1636,"./fy":4940,"./fy.js":4940,"./gd":6924,"./gd.js":6924,"./gl":6398,"./gl.js":6398,"./gom-latn":2545,"./gom-latn.js":2545,"./gu":2641,"./gu.js":2641,"./he":7536,"./he.js":7536,"./hi":6335,"./hi.js":6335,"./hr":7458,"./hr.js":7458,"./hu":6540,"./hu.js":6540,"./hy-am":5283,"./hy-am.js":5283,"./id":8780,"./id.js":8780,"./is":4205,"./is.js":4205,"./it":4211,"./it.js":4211,"./ja":1003,"./ja.js":1003,"./jv":420,"./jv.js":420,"./ka":851,"./ka.js":851,"./kk":6074,"./kk.js":6074,"./km":3343,"./km.js":3343,"./kn":4799,"./kn.js":4799,"./ko":3549,"./ko.js":3549,"./ky":3125,"./ky.js":3125,"./lb":9586,"./lb.js":9586,"./lo":2349,"./lo.js":2349,"./lt":2400,"./lt.js":2400,"./lv":9991,"./lv.js":9991,"./me":8477,"./me.js":8477,"./mi":5118,"./mi.js":5118,"./mk":5943,"./mk.js":5943,"./ml":3849,"./ml.js":3849,"./mn":1977,"./mn.js":1977,"./mr":6184,"./mr.js":6184,"./ms":485,"./ms-my":4524,"./ms-my.js":4524,"./ms.js":485,"./mt":6681,"./mt.js":6681,"./my":2024,"./my.js":2024,"./nb":2688,"./nb.js":2688,"./ne":8914,"./ne.js":8914,"./nl":1758,"./nl-be":2272,"./nl-be.js":2272,"./nl.js":1758,"./nn":1510,"./nn.js":1510,"./pa-in":7944,"./pa-in.js":7944,"./pl":1605,"./pl.js":1605,"./pt":4225,"./pt-br":3840,"./pt-br.js":3840,"./pt.js":4225,"./ro":5128,"./ro.js":5128,"./ru":5127,"./ru.js":5127,"./sd":2525,"./sd.js":2525,"./se":9893,"./se.js":9893,"./si":3123,"./si.js":3123,"./sk":9635,"./sk.js":9635,"./sl":8106,"./sl.js":8106,"./sq":8799,"./sq.js":8799,"./sr":7949,"./sr-cyrl":2872,"./sr-cyrl.js":2872,"./sr.js":7949,"./ss":6167,"./ss.js":6167,"./sv":9713,"./sv.js":9713,"./sw":1982,"./sw.js":1982,"./ta":2732,"./ta.js":2732,"./te":3636,"./te.js":3636,"./tet":2115,"./tet.js":2115,"./tg":9801,"./tg.js":9801,"./th":2868,"./th.js":2868,"./tl-ph":2360,"./tl-ph.js":2360,"./tlh":6645,"./tlh.js":6645,"./tr":8374,"./tr.js":8374,"./tzl":256,"./tzl.js":256,"./tzm":1595,"./tzm-latn":1631,"./tzm-latn.js":1631,"./tzm.js":1595,"./ug-cn":6050,"./ug-cn.js":6050,"./uk":5610,"./uk.js":5610,"./ur":6077,"./ur.js":6077,"./uz":2862,"./uz-latn":2207,"./uz-latn.js":2207,"./uz.js":2862,"./vi":8093,"./vi.js":8093,"./x-pseudo":5590,"./x-pseudo.js":5590,"./yo":9058,"./yo.js":9058,"./zh-cn":7908,"./zh-cn.js":7908,"./zh-hk":8867,"./zh-hk.js":8867,"./zh-tw":3291,"./zh-tw.js":3291};function v(f){var h=u(f);return N(h)}function u(f){if(!N.o(O,f)){var h=new Error("Cannot find module '"+f+"'");throw h.code="MODULE_NOT_FOUND",h}return O[f]}v.keys=function(){return Object.keys(O)},v.resolve=u,de.exports=v,v.id=6700},6297:(de,ge,N)=>{var O={"./de.json":[3634,634],"./de_base.json":[3431,431],"./en.json":[502,502],"./es.json":[4268,268],"./es_base.json":[3974,974],"./pt.json":[5733,733],"./pt_base.json":[7048,48]};function v(u){if(!N.o(O,u))return Promise.resolve().then(()=>{var M=new Error("Cannot find module '"+u+"'");throw M.code="MODULE_NOT_FOUND",M});var f=O[u],h=f[0];return N.e(f[1]).then(()=>N.t(h,19))}v.keys=()=>Object.keys(O),v.id=6297,de.exports=v}},de=>{de(de.s=4752)}]); \ No newline at end of file diff --git a/pkg/visor/static/main.f5df9adb8fff5a09.js b/pkg/visor/static/main.f5df9adb8fff5a09.js deleted file mode 100644 index 9a6f49599c..0000000000 --- a/pkg/visor/static/main.f5df9adb8fff5a09.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[179],{2632:(he,ge,N)=>{"use strict";function O(n){return"function"==typeof n}let _=!1;const u={Promise:void 0,set useDeprecatedSynchronousErrorHandling(n){if(n){const t=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+t.stack)}else _&&console.log("RxJS: Back to a better error behavior. Thank you. <3");_=n},get useDeprecatedSynchronousErrorHandling(){return _}};function f(n){setTimeout(()=>{throw n},0)}const h={closed:!0,next(n){},error(n){if(u.useDeprecatedSynchronousErrorHandling)throw n;f(n)},complete(){}},y=Array.isArray||(n=>n&&"number"==typeof n.length);function p(n){return null!==n&&"object"==typeof n}const C=(()=>{function n(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((e,i)=>`${i+1}) ${e.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t,this}return n.prototype=Object.create(Error.prototype),n})();class T{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._ctorUnsubscribe=!0,this._unsubscribe=t)}unsubscribe(){let t;if(this.closed)return;let{_parentOrParents:e,_ctorUnsubscribe:i,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,e instanceof T)e.remove(this);else if(null!==e)for(let a=0;at.concat(e instanceof C?e.errors:e),[])}T.EMPTY=((n=new T).closed=!0,n);const k="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class A extends T{constructor(t,e,i){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=h;break;case 1:if(!t){this.destination=h;break}if("object"==typeof t){t instanceof A?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new U(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new U(this,t,e,i)}}[k](){return this}static create(t,e,i){const o=new A(t,e,i);return o.syncErrorThrowable=!1,o}next(t){this.isStopped||this._next(t)}error(t){this.isStopped||(this.isStopped=!0,this._error(t))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(t){this.destination.next(t)}_error(t){this.destination.error(t),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:t}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this}}class U extends A{constructor(t,e,i,o){super(),this._parentSubscriber=t;let s,a=this;O(e)?s=e:e&&(s=e.next,i=e.error,o=e.complete,e!==h&&(a=Object.create(e),O(a.unsubscribe)&&this.add(a.unsubscribe.bind(a)),a.unsubscribe=this.unsubscribe.bind(this))),this._context=a,this._next=s,this._error=i,this._complete=o}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;u.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}}error(t){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:i}=u;if(this._error)i&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)i?(e.syncErrorValue=t,e.syncErrorThrown=!0):f(t),this.unsubscribe();else{if(this.unsubscribe(),i)throw t;f(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);u.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(t,e){try{t.call(this._context,e)}catch(i){if(this.unsubscribe(),u.useDeprecatedSynchronousErrorHandling)throw i;f(i)}}__tryOrSetError(t,e,i){if(!u.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,i)}catch(o){return u.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=o,t.syncErrorThrown=!0,!0):(f(o),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}const ie="function"==typeof Symbol&&Symbol.observable||"@@observable";function ve(n){return n}function Z(...n){return Q(n)}function Q(n){return 0===n.length?ve:1===n.length?n[0]:function(e){return n.reduce((i,o)=>o(i),e)}}let de=(()=>{class n{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(e){const i=new n;return i.source=this,i.operator=e,i}subscribe(e,i,o){const{operator:s}=this,a=function K(n,t,e){if(n){if(n instanceof A)return n;if(n[k])return n[k]()}return n||t||e?new A(n,t,e):new A(h)}(e,i,o);if(a.add(s?s.call(a,this.source):this.source||u.useDeprecatedSynchronousErrorHandling&&!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a)),u.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a}_trySubscribe(e){try{return this._subscribe(e)}catch(i){u.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=i),function H(n){for(;n;){const{closed:t,destination:e,isStopped:i}=n;if(t||i)return!1;n=e&&e instanceof A?e:null}return!0}(e)?e.error(i):console.warn(i)}}forEach(e,i){return new(i=G(i))((o,s)=>{let a;a=this.subscribe(l=>{try{e(l)}catch(d){s(d),a&&a.unsubscribe()}},s,o)})}_subscribe(e){const{source:i}=this;return i&&i.subscribe(e)}[ie](){return this}pipe(...e){return 0===e.length?this:Q(e)(this)}toPromise(e){return new(e=G(e))((i,o)=>{let s;this.subscribe(a=>s=a,a=>o(a),()=>i(s))})}}return n.create=t=>new n(t),n})();function G(n){if(n||(n=u.Promise||Promise),!n)throw new Error("no Promise impl found");return n}const ee=(()=>{function n(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return n.prototype=Object.create(Error.prototype),n})();class ae extends T{constructor(t,e){super(),this.subject=t,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const t=this.subject,e=t.observers;if(this.subject=null,!e||0===e.length||t.isStopped||t.closed)return;const i=e.indexOf(this.subscriber);-1!==i&&e.splice(i,1)}}class le extends A{constructor(t){super(t),this.destination=t}}let X=(()=>{class n extends de{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[k](){return new le(this)}lift(e){const i=new Te(this,this);return i.operator=e,i}next(e){if(this.closed)throw new ee;if(!this.isStopped){const{observers:i}=this,o=i.length,s=i.slice();for(let a=0;anew Te(t,e),n})();class Te extends X{constructor(t,e){super(),this.destination=t,this.source=e}next(t){const{destination:e}=this;e&&e.next&&e.next(t)}error(t){const{destination:e}=this;e&&e.error&&this.destination.error(t)}complete(){const{destination:t}=this;t&&t.complete&&this.destination.complete()}_subscribe(t){const{source:e}=this;return e?this.source.subscribe(t):T.EMPTY}}function Se(n){return n&&"function"==typeof n.schedule}function Ce(n,t){return function(i){if("function"!=typeof n)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return i.lift(new Ve(n,t))}}class Ve{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new tt(t,this.project,this.thisArg))}}class tt extends A{constructor(t,e,i){super(t),this.project=e,this.count=0,this.thisArg=i||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(i){return void this.destination.error(i)}this.destination.next(e)}}const ot=n=>t=>{for(let e=0,i=n.length;en&&"number"==typeof n.length&&"function"!=typeof n;function Ei(n){return!!n&&"function"!=typeof n.subscribe&&"function"==typeof n.then}const Ii=n=>{if(n&&"function"==typeof n[ie])return(n=>t=>{const e=n[ie]();if("function"!=typeof e.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return e.subscribe(t)})(n);if($e(n))return ot(n);if(Ei(n))return(n=>t=>(n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,f),t))(n);if(n&&"function"==typeof n[en])return(n=>t=>{const e=n[en]();for(;;){let i;try{i=e.next()}catch(o){return t.error(o),t}if(i.done){t.complete();break}if(t.next(i.value),t.closed)break}return"function"==typeof e.return&&t.add(()=>{e.return&&e.return()}),t})(n);{const e=`You provided ${p(n)?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(e)}};function W(n,t){return new de(e=>{const i=new T;let o=0;return i.add(t.schedule(function(){o!==n.length?(e.next(n[o++]),e.closed||i.add(this.schedule())):e.complete()})),i})}function ue(n,t){return t?function fe(n,t){if(null!=n){if(function ne(n){return n&&"function"==typeof n[ie]}(n))return function or(n,t){return new de(e=>{const i=new T;return i.add(t.schedule(()=>{const o=n[ie]();i.add(o.subscribe({next(s){i.add(t.schedule(()=>e.next(s)))},error(s){i.add(t.schedule(()=>e.error(s)))},complete(){i.add(t.schedule(()=>e.complete()))}}))})),i})}(n,t);if(Ei(n))return function Ze(n,t){return new de(e=>{const i=new T;return i.add(t.schedule(()=>n.then(o=>{i.add(t.schedule(()=>{e.next(o),i.add(t.schedule(()=>e.complete()))}))},o=>{i.add(t.schedule(()=>e.error(o)))}))),i})}(n,t);if($e(n))return W(n,t);if(function me(n){return n&&"function"==typeof n[en]}(n)||"string"==typeof n)return function re(n,t){if(!n)throw new Error("Iterable cannot be null");return new de(e=>{const i=new T;let o;return i.add(()=>{o&&"function"==typeof o.return&&o.return()}),i.add(t.schedule(()=>{o=n[en](),i.add(t.schedule(function(){if(e.closed)return;let s,a;try{const l=o.next();s=l.value,a=l.done}catch(l){return void e.error(l)}a?e.complete():(e.next(s),this.schedule())}))})),i})}(n,t)}throw new TypeError((null!==n&&typeof n||n)+" is not observable")}(n,t):n instanceof de?n:new de(Ii(n))}class be extends A{constructor(t){super(),this.parent=t}_next(t){this.parent.notifyNext(t)}_error(t){this.parent.notifyError(t),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class Me extends A{notifyNext(t){this.destination.next(t)}notifyError(t){this.destination.error(t)}notifyComplete(){this.destination.complete()}}function Ee(n,t){if(t.closed)return;if(n instanceof de)return n.subscribe(t);let e;try{e=Ii(n)(t)}catch(i){t.error(i)}return e}function Ne(n,t,e=Number.POSITIVE_INFINITY){return"function"==typeof t?i=>i.pipe(Ne((o,s)=>ue(n(o,s)).pipe(Ce((a,l)=>t(o,a,s,l))),e)):("number"==typeof t&&(e=t),i=>i.lift(new ut(n,e)))}class ut{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new _t(t,this.project,this.concurrent))}}class _t extends Me{constructor(t,e,i=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function sn(n=Number.POSITIVE_INFINITY){return Ne(ve,n)}function Pn(n,t){return t?W(n,t):new de(ot(n))}function vt(...n){let t=Number.POSITIVE_INFINITY,e=null,i=n[n.length-1];return Se(i)?(e=n.pop(),n.length>1&&"number"==typeof n[n.length-1]&&(t=n.pop())):"number"==typeof i&&(t=n.pop()),null===e&&1===n.length&&n[0]instanceof de?n[0]:sn(t)(Pn(n,e))}function jt(){return function(t){return t.lift(new jn(t))}}class jn{constructor(t){this.connectable=t}call(t,e){const{connectable:i}=this;i._refCount++;const o=new oi(t,i),s=e.subscribe(o);return o.closed||(o.connection=i.connect()),s}}class oi extends A{constructor(t,e){super(t),this.connectable=e}_unsubscribe(){const{connectable:t}=this;if(!t)return void(this.connection=null);this.connectable=null;const e=t._refCount;if(e<=0)return void(this.connection=null);if(t._refCount=e-1,e>1)return void(this.connection=null);const{connection:i}=this,o=t._connection;this.connection=null,o&&(!i||o===i)&&o.unsubscribe()}}class Kr extends de{constructor(t,e){super(),this.source=t,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let t=this._connection;return t||(this._isComplete=!1,t=this._connection=new T,t.add(this.source.subscribe(new Pi(this.getSubject(),this))),t.closed&&(this._connection=null,t=T.EMPTY)),t}refCount(){return jt()(this)}}const So=(()=>{const n=Kr.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:n._subscribe},_isComplete:{value:n._isComplete,writable:!0},getSubject:{value:n.getSubject},connect:{value:n.connect},refCount:{value:n.refCount}}})();class Pi extends le{constructor(t,e){super(t),this.connectable=e}_error(t){this._unsubscribe(),super._error(t)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const t=this.connectable;if(t){this.connectable=null;const e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}}}class On{constructor(t,e){this.subjectFactory=t,this.selector=e}call(t,e){const{selector:i}=this,o=this.subjectFactory(),s=i(o).subscribe(t);return s.add(e.subscribe(o)),s}}function Nu(){return new X}function xa(){return n=>jt()(function si(n,t){return function(i){let o;if(o="function"==typeof n?n:function(){return n},"function"==typeof t)return i.lift(new On(o,t));const s=Object.create(i,So);return s.source=i,s.subjectFactory=o,s}}(Nu)(n))}function An(n){for(let t in n)if(n[t]===An)return t;throw Error("Could not find renamed property on target object.")}function Ca(n,t){for(const e in t)t.hasOwnProperty(e)&&!n.hasOwnProperty(e)&&(n[e]=t[e])}function Fn(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(Fn).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const t=n.toString();if(null==t)return""+t;const e=t.indexOf("\n");return-1===e?t:t.substring(0,e)}function ka(n,t){return null==n||""===n?null===t?"":t:null==t||""===t?n:n+" "+t}const jg=An({__forward_ref__:An});function an(n){return n.__forward_ref__=an,n.toString=function(){return Fn(this())},n}function yt(n){return gt(n)?n():n}function gt(n){return"function"==typeof n&&n.hasOwnProperty(jg)&&n.__forward_ref__===an}function Yu(n){return n&&!!n.\u0275providers}const Do="https://g.co/ng/security#xss";class Fe extends Error{constructor(t,e){super(function kn(n,t){return`NG0${Math.abs(n)}${t?": "+t.trim():""}`}(t,e)),this.code=t}}function St(n){return"string"==typeof n?n:null==n?"":String(n)}function ai(n,t){throw new Fe(-201,!1)}function Zr(n,t){null==n&&function gn(n,t,e,i){throw new Error(`ASSERTION ERROR: ${n}`+(null==i?"":` [Expected=> ${e} ${i} ${t} <=Actual]`))}(t,n,null,"!=")}function Ye(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function At(n){return{providers:n.providers||[],imports:n.imports||[]}}function Ac(n){return Mp(n,Fc)||Mp(n,kp)}function Mp(n,t){return n.hasOwnProperty(t)?n[t]:null}function Cp(n){return n&&(n.hasOwnProperty(ju)||n.hasOwnProperty($g))?n[ju]:null}const Fc=An({\u0275prov:An}),ju=An({\u0275inj:An}),kp=An({ngInjectableDef:An}),$g=An({ngInjectorDef:An});var Mt=(()=>((Mt=Mt||{})[Mt.Default=0]="Default",Mt[Mt.Host=1]="Host",Mt[Mt.Self=2]="Self",Mt[Mt.SkipSelf=4]="SkipSelf",Mt[Mt.Optional=8]="Optional",Mt))();let zu;function ur(n){const t=zu;return zu=n,t}function Uu(n,t,e){const i=Ac(n);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&Mt.Optional?null:void 0!==t?t:void ai(Fn(n))}const dn=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),bl={},Wu="__NG_DI_FLAG__",Nc="ngTempTokenPath",qg=/\n/gm,Sp="__source";let Da;function Ta(n){const t=Da;return Da=n,t}function Zg(n,t=Mt.Default){if(void 0===Da)throw new Fe(-203,!1);return null===Da?Uu(n,void 0,t):Da.get(n,t&Mt.Optional?null:void 0,t)}function we(n,t=Mt.Default){return(function gl(){return zu}()||Zg)(yt(n),t)}function Et(n,t=Mt.Default){return we(n,Yc(t))}function Yc(n){return typeof n>"u"||"number"==typeof n?n:0|(n.optional&&8)|(n.host&&1)|(n.self&&2)|(n.skipSelf&&4)}function $u(n){const t=[];for(let e=0;e((co=co||{})[co.OnPush=0]="OnPush",co[co.Default=1]="Default",co))(),Nr=(()=>(function(n){n[n.Emulated=0]="Emulated",n[n.None=2]="None",n[n.ShadowDom=3]="ShadowDom"}(Nr||(Nr={})),Nr))();const Uo={},un=[],yl=An({\u0275cmp:An}),Gu=An({\u0275dir:An}),qu=An({\u0275pipe:An}),Lp=An({\u0275mod:An}),Wo=An({\u0275fac:An}),La=An({__NG_ELEMENT_ID__:An});let Oi=0;function qe(n){return fs(()=>{const e=!0===n.standalone,i={},o={type:n.type,providersResolver:null,decls:n.decls,vars:n.vars,factory:null,template:n.template||null,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:i,inputs:null,outputs:null,exportAs:n.exportAs||null,onPush:n.changeDetection===co.OnPush,directiveDefs:null,pipeDefs:null,standalone:e,dependencies:e&&n.dependencies||null,getStandaloneInjector:null,selectors:n.selectors||un,viewQuery:n.viewQuery||null,features:n.features||null,data:n.data||{},encapsulation:n.encapsulation||Nr.Emulated,id:"c"+Oi++,styles:n.styles||un,_:null,setInput:null,schemas:n.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},s=n.dependencies,a=n.features;return o.inputs=Bc(n.inputs,i),o.outputs=Bc(n.outputs),a&&a.forEach(l=>l(o)),o.directiveDefs=s?()=>("function"==typeof s?s():s).map(Ku).filter(Ep):null,o.pipeDefs=s?()=>("function"==typeof s?s():s).map(xi).filter(Ep):null,o})}function Hs(n,t,e){const i=n.\u0275cmp;i.directiveDefs=()=>("function"==typeof t?t():t).map(Ku),i.pipeDefs=()=>("function"==typeof e?e():e).map(xi)}function Ku(n){return bn(n)||ji(n)}function Ep(n){return null!==n}function Pt(n){return fs(()=>({type:n.type,bootstrap:n.bootstrap||un,declarations:n.declarations||un,imports:n.imports||un,exports:n.exports||un,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null}))}function Bc(n,t){if(null==n)return Uo;const e={};for(const i in n)if(n.hasOwnProperty(i)){let o=n[i],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),e[o]=i,t&&(t[o]=s)}return e}const Ke=qe;function Jn(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,standalone:!0===n.standalone,onDestroy:n.type.prototype.ngOnDestroy||null}}function bn(n){return n[yl]||null}function ji(n){return n[Gu]||null}function xi(n){return n[qu]||null}function hr(n,t){const e=n[Lp]||null;if(!e&&!0===t)throw new Error(`Type ${Fn(n)} does not have '\u0275mod' property.`);return e}function Yr(n){return Array.isArray(n)&&"object"==typeof n[1]}function pr(n){return Array.isArray(n)&&!0===n[1]}function Xu(n){return 0!=(4&n.flags)}function xl(n){return n.componentOffset>-1}function Wc(n){return 1==(1&n.flags)}function Dr(n){return null!==n.template}function Qu(n){return 0!=(256&n[2])}function Br(n,t){return n.hasOwnProperty(Wo)?n[Wo]:null}class Bp{constructor(t,e,i){this.previousValue=t,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function qi(){return eh}function eh(n){return n.type.prototype.ngOnChanges&&(n.setInput=tb),Hp}function Hp(){const n=jp(this),t=n?.current;if(t){const e=n.previous;if(e===Uo)n.previous=t;else for(let i in t)e[i]=t[i];n.current=null,this.ngOnChanges(t)}}function tb(n,t,e,i){const o=this.declaredInputs[e],s=jp(n)||function nb(n,t){return n[Vp]=t}(n,{previous:Uo,current:null}),a=s.current||(s.current={}),l=s.previous,d=l[o];a[o]=new Bp(d&&d.currentValue,t,l===Uo),n[i]=t}qi.ngInherit=!0;const Vp="__ngSimpleChanges__";function jp(n){return n[Vp]||null}function Ki(n){for(;Array.isArray(n);)n=n[0];return n}function $c(n,t){return Ki(t[n])}function mr(n,t){return Ki(t[n.index])}function Wp(n,t){return n.data[t]}function Oa(n,t){return n[t]}function Hr(n,t){const e=t[n];return Yr(e)?e:e[0]}function Gc(n){return 64==(64&n[2])}function ps(n,t){return null==t?null:n[t]}function nh(n){n[18]=0}function qc(n,t){n[5]+=t;let e=n,i=n[3];for(;null!==i&&(1===t&&1===e[5]||-1===t&&0===e[5]);)i[5]+=t,e=i,i=i[3]}const Ot={lFrame:Qp(null),bindingsEnabled:!0};function Gp(){return Ot.bindingsEnabled}function ze(){return Ot.lFrame.lView}function nn(){return Ot.lFrame.tView}function Pe(n){return Ot.lFrame.contextLView=n,n[8]}function Oe(n){return Ot.lFrame.contextLView=null,n}function Ci(){let n=qp();for(;null!==n&&64===n.type;)n=n.parent;return n}function qp(){return Ot.lFrame.currentTNode}function Io(n,t){const e=Ot.lFrame;e.currentTNode=n,e.isParent=t}function ih(){return Ot.lFrame.isParent}function Kc(){Ot.lFrame.isParent=!1}function _r(){const n=Ot.lFrame;let t=n.bindingRootIndex;return-1===t&&(t=n.bindingRootIndex=n.tView.bindingStartIndex),t}function Vr(){return Ot.lFrame.bindingIndex++}function Ko(n){const t=Ot.lFrame,e=t.bindingIndex;return t.bindingIndex=t.bindingIndex+n,e}function mb(n,t){const e=Ot.lFrame;e.bindingIndex=e.bindingRootIndex=n,oh(t)}function oh(n){Ot.lFrame.currentDirectiveIndex=n}function sh(n){const t=Ot.lFrame.currentDirectiveIndex;return-1===t?null:n[t]}function ah(){return Ot.lFrame.currentQueryIndex}function Sn(n){Ot.lFrame.currentQueryIndex=n}function Zc(n){const t=n[1];return 2===t.type?t.declTNode:1===t.type?n[6]:null}function lh(n,t,e){if(e&Mt.SkipSelf){let o=t,s=n;for(;!(o=o.parent,null!==o||e&Mt.Host||(o=Zc(s),null===o||(s=s[15],10&o.type))););if(null===o)return!1;t=o,n=s}const i=Ot.lFrame=Xp();return i.currentTNode=t,i.lView=n,!0}function kl(n){const t=Xp(),e=n[1];Ot.lFrame=t,t.currentTNode=e.firstChild,t.lView=n,t.tView=e,t.contextLView=n,t.bindingIndex=e.bindingStartIndex,t.inI18n=!1}function Xp(){const n=Ot.lFrame,t=null===n?null:n.child;return null===t?Qp(n):t}function Qp(n){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:n,child:null,inI18n:!1};return null!==n&&(n.child=t),t}function Jp(){const n=Ot.lFrame;return Ot.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const em=Jp;function ch(){const n=Jp();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function lr(){return Ot.lFrame.selectedIndex}function Ws(n){Ot.lFrame.selectedIndex=n}function ei(){const n=Ot.lFrame;return Wp(n.tView,n.selectedIndex)}function ms(){Ot.lFrame.currentNamespace="svg"}function Sl(){!function dh(){Ot.lFrame.currentNamespace=null}()}function uo(n,t){for(let e=t.directiveStart,i=t.directiveEnd;e=i)break}else t[d]<0&&(n[18]+=65536),(l>11>16&&(3&n[2])===t){n[2]+=2048;try{s.call(l)}finally{}}}else try{s.call(l)}finally{}}class Dl{constructor(t,e,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function fh(n,t,e){let i=0;for(;it){a=s-1;break}}}for(;s>16}(n),i=t;for(;e>0;)i=i[15],e--;return i}let ph=!0;function td(n){const t=ph;return ph=n,t}let ln=0;const m={};function j(n,t){const e=se(n,t);if(-1!==e)return e;const i=t[1];i.firstCreatePass&&(n.injectorIndex=t.length,$(i.data,n),$(t,null),$(i.blueprint,null));const o=Le(n,t),s=n.injectorIndex;if(ho(o)){const a=Jc(o),l=ed(o,t),d=l[1].data;for(let w=0;w<8;w++)t[s+w]=l[a+w]|d[a+w]}return t[s+8]=o,s}function $(n,t){n.push(0,0,0,0,0,0,0,0,t)}function se(n,t){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===t[n.injectorIndex+8]?-1:n.injectorIndex}function Le(n,t){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let e=0,i=null,o=t;for(;null!==o;){if(i=NM(o),null===i)return-1;if(e++,o=o[15],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return-1}function je(n,t,e){!function I(n,t,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(La)&&(i=e[La]),null==i&&(i=e[La]=ln++);const o=255&i;t.data[n+(o>>5)]|=1<=0?255&t:yP:t}(e);if("function"==typeof s){if(!lh(t,n,i))return i&Mt.Host?rn(o,0,i):mi(t,e,i,o);try{const a=s(i);if(null!=a||i&Mt.Optional)return a;ai()}finally{em()}}else if("number"==typeof s){let a=null,l=se(n,t),d=-1,w=i&Mt.Host?t[16][6]:null;for((-1===l||i&Mt.SkipSelf)&&(d=-1===l?Le(n,t):t[l+8],-1!==d&&RM(i,!1)?(a=t[1],l=Jc(d),t=ed(d,t)):l=-1);-1!==l;){const P=t[1];if(id(s,l,P.data)){const Y=El(l,t,e,a,i,w);if(Y!==m)return Y}d=t[l+8],-1!==d&&RM(i,t[1].data[l+8]===w)&&id(s,l,t)?(a=P,l=Jc(d),t=ed(d,t)):l=-1}}return o}function El(n,t,e,i,o,s){const a=t[1],l=a.data[n+8],P=nd(l,a,e,null==i?xl(l)&&ph:i!=a&&0!=(3&l.type),o&Mt.Host&&s===l);return null!==P?_s(t,a,P,l):m}function nd(n,t,e,i,o){const s=n.providerIndexes,a=t.data,l=1048575&s,d=n.directiveStart,P=s>>20,q=o?l+P:n.directiveEnd;for(let te=i?l:l+P;te=d&&pe.type===e)return te}if(o){const te=a[d];if(te&&Dr(te)&&te.type===e)return d}return null}function _s(n,t,e,i){let o=n[e];const s=t.data;if(function Mb(n){return n instanceof Dl}(o)){const a=o;a.resolving&&function lo(n,t){const e=t?`. Dependency path: ${t.join(" > ")} > ${n}`:"";throw new Fe(-200,`Circular dependency in DI detected for ${n}${e}`)}(function _n(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():St(n)}(s[e]));const l=td(a.canSeeViewProviders);a.resolving=!0;const d=a.injectImpl?ur(a.injectImpl):null;lh(n,i,Mt.Default);try{o=n[e]=a.factory(void 0,s,n,i),t.firstCreatePass&&e>=i.directiveStart&&function vb(n,t,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:s}=t.type.prototype;if(i){const a=eh(t);(e.preOrderHooks||(e.preOrderHooks=[])).push(n,a),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,a)}o&&(e.preOrderHooks||(e.preOrderHooks=[])).push(0-n,o),s&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n,s),(e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n,s))}(e,s[e],t)}finally{null!==d&&ur(d),td(l),a.resolving=!1,em()}}return o}function id(n,t,e){return!!(e[t+(n>>5)]&1<{const t=n.prototype.constructor,e=t[Wo]||Sb(t),i=Object.prototype;let o=Object.getPrototypeOf(n.prototype).constructor;for(;o&&o!==i;){const s=o[Wo]||Sb(o);if(s&&s!==e)return s;o=Object.getPrototypeOf(o)}return s=>new s})}function Sb(n){return gt(n)?()=>{const t=Sb(yt(n));return t&&t()}:Br(n)}function NM(n){const t=n[1],e=t.type;return 2===e?t.declTNode:1===e?n[6]:null}function Na(n){return function Bt(n,t){if("class"===t)return n.classes;if("style"===t)return n.styles;const e=n.attrs;if(e){const i=e.length;let o=0;for(;o{const i=function Db(n){return function(...e){if(n){const i=n(...e);for(const o in i)this[o]=i[o]}}}(t);function o(...s){if(this instanceof o)return i.apply(this,s),this;const a=new o(...s);return l.annotation=a,l;function l(d,w,P){const Y=d.hasOwnProperty(sd)?d[sd]:Object.defineProperty(d,sd,{value:[]})[sd];for(;Y.length<=P;)Y.push(null);return(Y[P]=Y[P]||[]).push(a),d}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=n,o.annotationCls=o,o})}class He{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=Ye({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function Il(n,t){n.forEach(e=>Array.isArray(e)?Il(e,t):t(e))}function BM(n,t,e){t>=n.length?n.push(e):n.splice(t,0,e)}function om(n,t){return t>=n.length-1?n.pop():n.splice(t,1)[0]}function gh(n,t){const e=[];for(let i=0;i=0?n[1|i]=e:(i=~i,function kP(n,t,e,i){let o=n.length;if(o==t)n.push(e,i);else if(1===o)n.push(i,n[0]),n[0]=e;else{for(o--,n.push(n[o-1],n[o]);o>t;)n[o]=n[o-2],o--;n[t]=e,n[t+1]=i}}(n,i,t,e)),i}function Lb(n,t){const e=cd(n,t);if(e>=0)return n[1|e]}function cd(n,t){return function HM(n,t,e){let i=0,o=n.length>>e;for(;o!==i;){const s=i+(o-i>>1),a=n[s<t?o=s:i=s+1}return~(o<({token:n})),-1),Gs=vl(ld("Optional"),8),dd=vl(ld("SkipSelf"),4);var Qr=(()=>((Qr=Qr||{})[Qr.Important=1]="Important",Qr[Qr.DashCase=2]="DashCase",Qr))();const Ab=new Map;let GP=0;const Rb="__ngContext__";function Tr(n,t){Yr(t)?(n[Rb]=t[20],function KP(n){Ab.set(n[20],n)}(t)):n[Rb]=t}function Yb(n,t){return undefined(n,t)}function Mh(n){const t=n[3];return pr(t)?t[3]:t}function Bb(n){return sw(n[13])}function Hb(n){return sw(n[4])}function sw(n){for(;null!==n&&!pr(n);)n=n[4];return n}function hd(n,t,e,i,o){if(null!=i){let s,a=!1;pr(i)?s=i:Yr(i)&&(a=!0,i=i[0]);const l=Ki(i);0===n&&null!==e?null==o?hw(t,e,l):Pl(t,e,l,o||null,!0):1===n&&null!==e?Pl(t,e,l,o||null,!0):2===n?function Gb(n,t,e){const i=dm(n,t);i&&function mO(n,t,e,i){n.removeChild(t,e,i)}(n,i,t,e)}(t,l,a):3===n&&t.destroyNode(l),null!=s&&function bO(n,t,e,i,o){const s=e[7];s!==Ki(e)&&hd(t,n,i,s,o);for(let l=10;l0&&(n[e-1][4]=i[4]);const s=om(n,10+t);!function aO(n,t){wh(n,t,t[11],2,null,null),t[0]=null,t[6]=null}(i[1],i);const a=s[19];null!==a&&a.detachView(s[1]),i[3]=null,i[4]=null,i[2]&=-65}return i}function cw(n,t){if(!(128&t[2])){const e=t[11];e.destroyNode&&wh(n,t,e,3,null,null),function dO(n){let t=n[13];if(!t)return Ub(n[1],n);for(;t;){let e=null;if(Yr(t))e=t[13];else{const i=t[10];i&&(e=i)}if(!e){for(;t&&!t[4]&&t!==n;)Yr(t)&&Ub(t[1],t),t=t[3];null===t&&(t=n),Yr(t)&&Ub(t[1],t),e=t&&t[4]}t=e}}(t)}}function Ub(n,t){if(!(128&t[2])){t[2]&=-65,t[2]|=128,function pO(n,t){let e;if(null!=n&&null!=(e=n.destroyHooks))for(let i=0;i=0?i[o=a]():i[o=-a].unsubscribe(),s+=2}else{const a=i[o=e[s+1]];e[s].call(a)}if(null!==i){for(let s=o+1;s-1){const{encapsulation:s}=n.data[i.directiveStart+o];if(s===Nr.None||s===Nr.Emulated)return null}return mr(i,e)}}(n,t.parent,e)}function Pl(n,t,e,i,o){n.insertBefore(t,e,i,o)}function hw(n,t,e){n.appendChild(t,e)}function fw(n,t,e,i,o){null!==i?Pl(n,t,e,i,o):hw(n,t,e)}function dm(n,t){return n.parentNode(t)}function pw(n,t,e){return _w(n,t,e)}let fm,Zb,pm,_w=function mw(n,t,e){return 40&n.type?mr(n,e):null};function um(n,t,e,i){const o=dw(n,i,t),s=t[11],l=pw(i.parent||t[6],i,t);if(null!=o)if(Array.isArray(e))for(let d=0;dn,createScript:n=>n,createScriptURL:n=>n})}catch{}return fm}()?.createHTML(n)||n}function kw(n){return function Xb(){if(void 0===pm&&(pm=null,dn.trustedTypes))try{pm=dn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return pm}()?.createScriptURL(n)||n}class Al{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Do})`}}class kO extends Al{getTypeName(){return"HTML"}}class SO extends Al{getTypeName(){return"Style"}}class DO extends Al{getTypeName(){return"Script"}}class TO extends Al{getTypeName(){return"URL"}}class LO extends Al{getTypeName(){return"ResourceURL"}}function po(n){return n instanceof Al?n.changingThisBreaksApplicationSecurity:n}function gs(n,t){const e=function EO(n){return n instanceof Al&&n.getTypeName()||null}(n);if(null!=e&&e!==t){if("ResourceURL"===e&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${e} (see ${Do})`)}return e===t}class RO{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{const e=(new window.DOMParser).parseFromString(Ol(t),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(t):(e.removeChild(e.firstChild),e)}catch{return null}}}class NO{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const e=this.inertDocument.createElement("html");this.inertDocument.appendChild(e);const i=this.inertDocument.createElement("body");e.appendChild(i)}}getInertBodyElement(t){const e=this.inertDocument.createElement("template");if("content"in e)return e.innerHTML=Ol(t),e;const i=this.inertDocument.createElement("body");return i.innerHTML=Ol(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(i),i}stripCustomNsAttrs(t){const e=t.attributes;for(let o=e.length-1;0"),!0}endElement(t){const e=t.nodeName.toLowerCase();Qb.hasOwnProperty(e)&&!Dw.hasOwnProperty(e)&&(this.buf.push(""))}chars(t){this.buf.push(Iw(t))}checkClobberedElement(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return e}}const jO=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,zO=/([^\#-~ |!])/g;function Iw(n){return n.replace(/&/g,"&").replace(jO,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(zO,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}let _m;function Pw(n,t){let e=null;try{_m=_m||function Sw(n){const t=new NO(n);return function YO(){try{return!!(new window.DOMParser).parseFromString(Ol(""),"text/html")}catch{return!1}}()?new RO(t):t}(n);let i=t?String(t):"";e=_m.getInertBodyElement(i);let o=5,s=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=s,s=e.innerHTML,e=_m.getInertBodyElement(i)}while(i!==s);return Ol((new VO).sanitizeChildren(ev(e)||e))}finally{if(e){const i=ev(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function ev(n){return"content"in n&&function UO(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var xn=(()=>((xn=xn||{})[xn.NONE=0]="NONE",xn[xn.HTML=1]="HTML",xn[xn.STYLE=2]="STYLE",xn[xn.SCRIPT=3]="SCRIPT",xn[xn.URL=4]="URL",xn[xn.RESOURCE_URL=5]="RESOURCE_URL",xn))();function Oo(n){const t=Ch();return t?t.sanitize(xn.URL,n)||"":gs(n,"URL")?po(n):mm(St(n))}function Ow(n){const t=Ch();if(t)return kw(t.sanitize(xn.RESOURCE_URL,n)||"");if(gs(n,"ResourceURL"))return kw(po(n));throw new Fe(904,!1)}function Ch(){const n=ze();return n&&n[12]}const gm=new He("ENVIRONMENT_INITIALIZER"),Fw=new He("INJECTOR",-1),Rw=new He("INJECTOR_DEF_TYPES");class Nw{get(t,e=bl){if(e===bl){const i=new Error(`NullInjectorError: No provider for ${Fn(t)}!`);throw i.name="NullInjectorError",i}return e}}function QO(...n){return{\u0275providers:Yw(0,n),\u0275fromNgModule:!0}}function Yw(n,...t){const e=[],i=new Set;let o;return Il(t,s=>{const a=s;tv(a,e,[],i)&&(o||(o=[]),o.push(a))}),void 0!==o&&Bw(o,e),e}function Bw(n,t){for(let e=0;e{t.push(s)})}}function tv(n,t,e,i){if(!(n=yt(n)))return!1;let o=null,s=Cp(n);const a=!s&&bn(n);if(s||a){if(a&&!a.standalone)return!1;o=n}else{const d=n.ngModule;if(s=Cp(d),!s)return!1;o=d}const l=i.has(o);if(a){if(l)return!1;if(i.add(o),a.dependencies){const d="function"==typeof a.dependencies?a.dependencies():a.dependencies;for(const w of d)tv(w,t,e,i)}}else{if(!s)return!1;{if(null!=s.imports&&!l){let w;i.add(o);try{Il(s.imports,P=>{tv(P,t,e,i)&&(w||(w=[]),w.push(P))})}finally{}void 0!==w&&Bw(w,t)}if(!l){const w=Br(o)||(()=>new o);t.push({provide:o,useFactory:w,deps:un},{provide:Rw,useValue:o,multi:!0},{provide:gm,useValue:()=>we(o),multi:!0})}const d=s.providers;null==d||l||nv(d,P=>{t.push(P)})}}return o!==n&&void 0!==n.providers}function nv(n,t){for(let e of n)Yu(e)&&(e=e.\u0275providers),Array.isArray(e)?nv(e,t):t(e)}const JO=An({provide:String,useValue:An});function iv(n){return null!==n&&"object"==typeof n&&JO in n}function Fl(n){return"function"==typeof n}const rv=new He("Set Injector scope."),bm={},tA={};let ov;function vm(){return void 0===ov&&(ov=new Nw),ov}class bs{}class jw extends bs{constructor(t,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,av(t,a=>this.processProvider(a)),this.records.set(Fw,fd(void 0,this)),o.has("environment")&&this.records.set(bs,fd(void 0,this));const s=this.records.get(rv);null!=s&&"string"==typeof s.value&&this.scopes.add(s.value),this.injectorDefTypes=new Set(this.get(Rw.multi,un,Mt.Self))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const t of this._ngOnDestroyHooks)t.ngOnDestroy();for(const t of this._onDestroyHooks)t()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(t){this._onDestroyHooks.push(t)}runInContext(t){this.assertNotDestroyed();const e=Ta(this),i=ur(void 0);try{return t()}finally{Ta(e),ur(i)}}get(t,e=bl,i=Mt.Default){this.assertNotDestroyed(),i=Yc(i);const o=Ta(this),s=ur(void 0);try{if(!(i&Mt.SkipSelf)){let l=this.records.get(t);if(void 0===l){const d=function sA(n){return"function"==typeof n||"object"==typeof n&&n instanceof He}(t)&&Ac(t);l=d&&this.injectableDefInScope(d)?fd(sv(t),bm):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(i&Mt.Self?vm():this.parent).get(t,e=i&Mt.Optional&&e===bl?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[Nc]=a[Nc]||[]).unshift(Fn(t)),o)throw a;return function Qg(n,t,e,i){const o=n[Nc];throw t[Sp]&&o.unshift(t[Sp]),n.message=function Jg(n,t,e,i=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.slice(2):n;let o=Fn(t);if(Array.isArray(t))o=t.map(Fn).join(" -> ");else if("object"==typeof t){let s=[];for(let a in t)if(t.hasOwnProperty(a)){let l=t[a];s.push(a+":"+("string"==typeof l?JSON.stringify(l):Fn(l)))}o=`{${s.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${n.replace(qg,"\n ")}`}("\n"+n.message,o,e,i),n.ngTokenPath=o,n[Nc]=null,n}(a,t,"R3InjectorError",this.source)}throw a}finally{ur(s),Ta(o)}}resolveInjectorInitializers(){const t=Ta(this),e=ur(void 0);try{const i=this.get(gm.multi,un,Mt.Self);for(const o of i)o()}finally{Ta(t),ur(e)}}toString(){const t=[],e=this.records;for(const i of e.keys())t.push(Fn(i));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Fe(205,!1)}processProvider(t){let e=Fl(t=yt(t))?t:yt(t&&t.provide);const i=function iA(n){return iv(n)?fd(void 0,n.useValue):fd(zw(n),bm)}(t);if(Fl(t)||!0!==t.multi)this.records.get(e);else{let o=this.records.get(e);o||(o=fd(void 0,bm,!0),o.factory=()=>$u(o.multi),this.records.set(e,o)),e=t,o.multi.push(t)}this.records.set(e,i)}hydrate(t,e){return e.value===bm&&(e.value=tA,e.value=e.factory()),"object"==typeof e.value&&e.value&&function oA(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}injectableDefInScope(t){if(!t.providedIn)return!1;const e=yt(t.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}}function sv(n){const t=Ac(n),e=null!==t?t.factory:Br(n);if(null!==e)return e;if(n instanceof He)throw new Fe(204,!1);if(n instanceof Function)return function nA(n){const t=n.length;if(t>0)throw gh(t,"?"),new Fe(204,!1);const e=function wp(n){const t=n&&(n[Fc]||n[kp]);if(t){const e=function xp(n){if(n.hasOwnProperty("name"))return n.name;const t=(""+n).match(/^function\s*([^\s(]+)/);return null===t?"":t[1]}(n);return console.warn(`DEPRECATED: DI is instantiating a token "${e}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${e}" class.`),t}return null}(n);return null!==e?()=>e.factory(n):()=>new n}(n);throw new Fe(204,!1)}function zw(n,t,e){let i;if(Fl(n)){const o=yt(n);return Br(o)||sv(o)}if(iv(n))i=()=>yt(n.useValue);else if(function Vw(n){return!(!n||!n.useFactory)}(n))i=()=>n.useFactory(...$u(n.deps||[]));else if(function Hw(n){return!(!n||!n.useExisting)}(n))i=()=>we(yt(n.useExisting));else{const o=yt(n&&(n.useClass||n.provide));if(!function rA(n){return!!n.deps}(n))return Br(o)||sv(o);i=()=>new o(...$u(n.deps))}return i}function fd(n,t,e=!1){return{factory:n,value:t,multi:e?[]:void 0}}function av(n,t){for(const e of n)Array.isArray(e)?av(e,t):e&&Yu(e)?av(e.\u0275providers,t):t(e)}class aA{}class Uw{}class cA{resolveComponentFactory(t){throw function lA(n){const t=Error(`No component factory found for ${Fn(n)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=n,t}(t)}}let Ya=(()=>{class n{}return n.NULL=new cA,n})();function dA(){return pd(Ci(),ze())}function pd(n,t){return new bt(mr(n,t))}let bt=(()=>{class n{constructor(e){this.nativeElement=e}}return n.__NG_ELEMENT_ID__=dA,n})();function uA(n){return n instanceof bt?n.nativeElement:n}class kh{}let Ks=(()=>{class n{}return n.__NG_ELEMENT_ID__=()=>function hA(){const n=ze(),e=Hr(Ci().index,n);return(Yr(e)?e:n)[11]}(),n})(),fA=(()=>{class n{}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:()=>null}),n})();class Rl{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const pA=new Rl("15.0.4"),lv={};function dv(n){return n.ngOriginalError}class Zs{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t);this._console.error("ERROR",t),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(t){let e=t&&dv(t);for(;e&&dv(e);)e=dv(e);return e||null}}function $w(n){return n.ownerDocument.defaultView}function Xs(n){return n instanceof Function?n():n}function qw(n,t,e){let i=n.length;for(;;){const o=n.indexOf(t,e);if(-1===o)return o;if(0===o||n.charCodeAt(o-1)<=32){const s=t.length;if(o+s===i||n.charCodeAt(o+s)<=32)return o}e=o+1}}const Kw="ng-template";function CA(n,t,e){let i=0;for(;is?"":o[Y+1].toLowerCase();const te=8&i?q:null;if(te&&-1!==qw(te,w,0)||2&i&&w!==q){if(Qo(i))return!1;a=!0}}}}else{if(!a&&!Qo(i)&&!Qo(d))return!1;if(a&&Qo(d))continue;a=!1,i=d|1&i}}return Qo(i)||a}function Qo(n){return 0==(1&n)}function DA(n,t,e,i){if(null===t)return-1;let o=0;if(i||!e){let s=!1;for(;o-1)for(e++;e0?'="'+l+'"':"")+"]"}else 8&i?o+="."+a:4&i&&(o+=" "+a);else""!==o&&!Qo(a)&&(t+=Qw(s,o),o=""),i=a,s=s||!Qo(i);e++}return""!==o&&(t+=Qw(s,o)),t}const Ft={};function c(n){Jw(nn(),ze(),lr()+n,!1)}function Jw(n,t,e,i){if(!i)if(3==(3&t[2])){const s=n.preOrderCheckHooks;null!==s&&Xc(t,s,e)}else{const s=n.preOrderHooks;null!==s&&Qc(t,s,0,e)}Ws(e)}function ix(n,t=null,e=null,i){const o=rx(n,t,e,i);return o.resolveInjectorInitializers(),o}function rx(n,t=null,e=null,i,o=new Set){const s=[e||un,QO(n)];return i=i||("object"==typeof n?void 0:Fn(n)),new jw(s,t||vm(),i||null,o)}let _i=(()=>{class n{static create(e,i){if(Array.isArray(e))return ix({name:""},i,e,"");{const o=e.name??"";return ix({name:o},e.parent,e.providers,o)}}}return n.THROW_IF_NOT_FOUND=bl,n.NULL=new Nw,n.\u0275prov=Ye({token:n,providedIn:"any",factory:()=>we(Fw)}),n.__NG_ELEMENT_ID__=-1,n})();function F(n,t=Mt.Default){const e=ze();return null===e?we(n,t):jr(Ci(),e,yt(n),t)}function Ba(){throw new Error("invalid")}function ux(n,t){const e=n.contentQueries;if(null!==e)for(let i=0;i22&&Jw(n,t,22,!1),e(i,o)}finally{Ws(s)}}function gv(n,t,e){if(Xu(t)){const o=t.directiveEnd;for(let s=t.directiveStart;s0;){const e=n[--t];if("number"==typeof e&&e<0)return e}return 0})(a)!=l&&a.push(l),a.push(e,i,s)}}(n,t,i,Sh(n,e,o.hostVars,Ft),o)}function vs(n,t,e,i,o,s){const a=mr(n,t);!function xv(n,t,e,i,o,s,a){if(null==s)n.removeAttribute(t,o,e);else{const l=null==a?St(s):a(s,i||"",o);n.setAttribute(t,o,l,e)}}(t[11],a,s,n.value,e,i,o)}function bF(n,t,e,i,o,s){const a=s[t];if(null!==a){const l=i.setInput;for(let d=0;d0&&Cv(e)}}function Cv(n){for(let i=Bb(n);null!==i;i=Hb(i))for(let o=10;o0&&Cv(s)}const e=n[1].components;if(null!==e)for(let i=0;i0&&Cv(o)}}function xF(n,t){const e=Hr(t,n),i=e[1];(function CF(n,t){for(let e=t.length;e-1&&(zb(t,i),om(e,i))}this._attachedToViewContainer=!1}cw(this._lView[1],this._lView)}onDestroy(t){px(this._lView[1],this._lView,null,t)}markForCheck(){kv(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){Cm(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Fe(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function cO(n,t){wh(n,t,t[11],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new Fe(902,!1);this._appRef=t}}class kF extends Dh{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;Cm(t[1],t,t[8],!1)}checkNoChanges(){}get context(){return null}}class kx extends Ya{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=bn(t);return new Th(e,this.ngModule)}}function Sx(n){const t=[];for(let e in n)n.hasOwnProperty(e)&&t.push({propName:n[e],templateName:e});return t}class DF{constructor(t,e){this.injector=t,this.parentInjector=e}get(t,e,i){i=Yc(i);const o=this.injector.get(t,lv,i);return o!==lv||e===lv?o:this.parentInjector.get(t,e,i)}}class Th extends Uw{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=function OA(n){return n.map(PA).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return Sx(this.componentDef.inputs)}get outputs(){return Sx(this.componentDef.outputs)}create(t,e,i,o){let s=(o=o||this.ngModule)instanceof bs?o:o?.injector;s&&null!==this.componentDef.getStandaloneInjector&&(s=this.componentDef.getStandaloneInjector(s)||s);const a=s?new DF(t,s):t,l=a.get(kh,null);if(null===l)throw new Fe(407,!1);const d=a.get(fA,null),w=l.createRenderer(null,this.componentDef),P=this.componentDef.selectors[0][0]||"div",Y=i?function iF(n,t,e){return n.selectRootElement(t,e===Nr.ShadowDom)}(w,i,this.componentDef.encapsulation):jb(w,P,function SF(n){const t=n.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(P)),q=this.componentDef.onPush?288:272,te=yv(0,null,null,1,0,null,null,null,null,null),pe=Mm(null,te,null,q,null,null,l,w,d,a,null);let ke,Ie;kl(pe);try{const Re=this.componentDef;let Xe,Ae=null;Re.findHostDirectiveDefs?(Xe=[],Ae=new Map,Re.findHostDirectiveDefs(Re,Xe,Ae),Xe.push(Re)):Xe=[Re];const ct=function LF(n,t){const e=n[1];return n[22]=t,gd(e,22,2,"#host",null)}(pe,Y),pn=function EF(n,t,e,i,o,s,a,l){const d=o[1];!function IF(n,t,e,i){for(const o of n)t.mergedAttrs=Tl(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&(km(t,t.mergedAttrs,!0),null!==e&&Mw(i,e,t))}(i,n,t,a);const w=s.createRenderer(t,e),P=Mm(o,fx(e),null,e.onPush?32:16,o[n.index],n,s,w,l||null,null,null);return d.firstCreatePass&&wv(d,n,i.length-1),xm(o,P),o[n.index]=P}(ct,Y,Re,Xe,pe,l,w);Ie=Wp(te,22),Y&&function OF(n,t,e,i){if(i)fh(n,e,["ng-version",pA.full]);else{const{attrs:o,classes:s}=function AA(n){const t=[],e=[];let i=1,o=2;for(;i0&&yw(n,e,s.join(" "))}}(w,Re,Y,i),void 0!==e&&function AF(n,t,e){const i=n.projection=[];for(let o=0;o=0;i--){const o=n[i];o.hostVars=t+=o.hostVars,o.hostAttrs=Tl(o.hostAttrs,e=Tl(e,o.hostAttrs))}}(i)}function Tv(n){return n===Uo?{}:n===un?[]:n}function NF(n,t){const e=n.viewQuery;n.viewQuery=e?(i,o)=>{t(i,o),e(i,o)}:t}function YF(n,t){const e=n.contentQueries;n.contentQueries=e?(i,o,s)=>{t(i,o,s),e(i,o,s)}:t}function BF(n,t){const e=n.hostBindings;n.hostBindings=e?(i,o)=>{t(i,o),e(i,o)}:t}let Dm=null;function Nl(){if(!Dm){const n=dn.Symbol;if(n&&n.iterator)Dm=n.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;ea(Ki(ct[i.index])):i.index;let Ae=null;if(!a&&l&&(Ae=function JF(n,t,e,i){const o=n.cleanup;if(null!=o)for(let s=0;sd?l[d]:null}"string"==typeof a&&(s+=2)}return null}(n,t,o,i.index)),null!==Ae)(Ae.__ngLastListenerFn__||Ae).__ngNextListenerFn__=s,Ae.__ngLastListenerFn__=s,q=!1;else{s=zx(i,t,P,s,!1);const ct=e.listen(Ie,o,s);Y.push(s,ct),w&&w.push(o,Xe,Re,Re+1)}}else s=zx(i,t,P,s,!1);const te=i.outputs;let pe;if(q&&null!==te&&(pe=te[o])){const ke=pe.length;if(ke)for(let Ie=0;Ie-1?Hr(n.index,t):t);let d=jx(t,0,i,a),w=s.__ngNextListenerFn__;for(;w;)d=jx(t,0,w,a)&&d,w=w.__ngNextListenerFn__;return o&&!1===d&&(a.preventDefault(),a.returnValue=!1),d}}function z(n=1){return function Zo(n){return(Ot.lFrame.contextLView=function _b(n,t){for(;n>0;)t=t[15],n--;return t}(n,Ot.lFrame.contextLView))[8]}(n)}function eR(n,t){let e=null;const i=function TA(n){const t=n.attrs;if(null!=t){const e=t.indexOf(5);if(0==(1&e))return t[e+1]}return null}(n);for(let o=0;o>17&32767}function Av(n){return 2|n}function Bl(n){return(131068&n)>>2}function Fv(n,t){return-131069&n|t<<2}function Rv(n){return 1|n}function Qx(n,t,e,i,o){const s=n[e+1],a=null===t;let l=i?Ha(s):Bl(s),d=!1;for(;0!==l&&(!1===d||a);){const P=n[l+1];sR(n[l],t)&&(d=!0,n[l+1]=i?Rv(P):Av(P)),l=i?Ha(P):Bl(P)}d&&(n[e+1]=i?Av(s):Rv(s))}function sR(n,t){return null===n||null==t||(Array.isArray(n)?n[1]:n)===t||!(!Array.isArray(n)||"string"!=typeof t)&&cd(n,t)>=0}const Xi={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Jx(n){return n.substring(Xi.key,Xi.keyEnd)}function aR(n){return n.substring(Xi.value,Xi.valueEnd)}function eC(n,t){const e=Xi.textEnd;return e===t?-1:(t=Xi.keyEnd=function dR(n,t,e){for(;t32;)t++;return t}(n,Xi.key=t,e),Dd(n,t,e))}function tC(n,t){const e=Xi.textEnd;let i=Xi.key=Dd(n,t,e);return e===i?-1:(i=Xi.keyEnd=function uR(n,t,e){let i;for(;t=65&&(-33&i)<=90||i>=48&&i<=57);)t++;return t}(n,i,e),i=iC(n,i,e),i=Xi.value=Dd(n,i,e),i=Xi.valueEnd=function hR(n,t,e){let i=-1,o=-1,s=-1,a=t,l=a;for(;a32&&(l=a),s=o,o=i,i=-33&d}return l}(n,i,e),iC(n,i,e))}function nC(n){Xi.key=0,Xi.keyEnd=0,Xi.value=0,Xi.valueEnd=0,Xi.textEnd=n.length}function Dd(n,t,e){for(;t=0;e=tC(t,e))aC(n,Jx(t),aR(t))}function eo(n){ts(fo,Ms,n,!0)}function Ms(n,t){for(let e=function lR(n){return nC(n),eC(n,Dd(n,0,Xi.textEnd))}(t);e>=0;e=eC(t,e))fo(n,Jx(t),!0)}function es(n,t,e,i){const o=ze(),s=nn(),a=Ko(2);s.firstUpdatePass&&sC(s,n,a,i),t!==Ft&&Lr(o,a,t)&&lC(s,s.data[lr()],o,o[11],n,o[a+1]=function yR(n,t){return null==n||("string"==typeof t?n+=t:"object"==typeof n&&(n=Fn(po(n)))),n}(t,e),i,a)}function ts(n,t,e,i){const o=nn(),s=Ko(2);o.firstUpdatePass&&sC(o,null,s,i);const a=ze();if(e!==Ft&&Lr(a,s,e)){const l=o.data[lr()];if(dC(l,i)&&!oC(o,s)){let d=i?l.classesWithoutHost:l.stylesWithoutHost;null!==d&&(e=ka(d,e||"")),Ev(o,l,a,e,i)}else!function vR(n,t,e,i,o,s,a,l){o===Ft&&(o=un);let d=0,w=0,P=0=n.expandoStartIndex}function sC(n,t,e,i){const o=n.data;if(null===o[e+1]){const s=o[lr()],a=oC(n,e);dC(s,i)&&null===t&&!a&&(t=!1),t=function pR(n,t,e,i){const o=sh(n);let s=i?t.residualClasses:t.residualStyles;if(null===o)0===(i?t.classBindings:t.styleBindings)&&(e=Ph(e=Nv(null,n,t,e,i),t.attrs,i),s=null);else{const a=t.directiveStylingLast;if(-1===a||n[a]!==o)if(e=Nv(o,n,t,e,i),null===s){let d=function mR(n,t,e){const i=e?t.classBindings:t.styleBindings;if(0!==Bl(i))return n[Ha(i)]}(n,t,i);void 0!==d&&Array.isArray(d)&&(d=Nv(null,n,t,d[1],i),d=Ph(d,t.attrs,i),function _R(n,t,e,i){n[Ha(e?t.classBindings:t.styleBindings)]=i}(n,t,i,d))}else s=function gR(n,t,e){let i;const o=t.directiveEnd;for(let s=1+t.directiveStylingLast;s0)&&(w=!0)}else P=e;if(o)if(0!==d){const q=Ha(n[l+1]);n[i+1]=Lm(q,l),0!==q&&(n[q+1]=Fv(n[q+1],i)),n[l+1]=function nR(n,t){return 131071&n|t<<17}(n[l+1],i)}else n[i+1]=Lm(l,0),0!==l&&(n[l+1]=Fv(n[l+1],i)),l=i;else n[i+1]=Lm(d,0),0===l?l=i:n[d+1]=Fv(n[d+1],i),d=i;w&&(n[i+1]=Av(n[i+1])),Qx(n,P,i,!0),Qx(n,P,i,!1),function oR(n,t,e,i,o){const s=o?n.residualClasses:n.residualStyles;null!=s&&"string"==typeof t&&cd(s,t)>=0&&(e[i+1]=Rv(e[i+1]))}(t,P,n,i,s),a=Lm(l,d),s?t.classBindings=a:t.styleBindings=a}(o,s,t,e,a,i)}}function Nv(n,t,e,i,o){let s=null;const a=e.directiveEnd;let l=e.directiveStylingLast;for(-1===l?l=e.directiveStart:l++;l0;){const d=n[o],w=Array.isArray(d),P=w?d[1]:d,Y=null===P;let q=e[o+1];q===Ft&&(q=Y?un:void 0);let te=Y?Lb(q,i):P===i?q:void 0;if(w&&!Em(te)&&(te=Lb(d,i)),Em(te)&&(l=te,a))return l;const pe=n[o+1];o=a?Ha(pe):Bl(pe)}if(null!==t){let d=s?t.residualClasses:t.residualStyles;null!=d&&(l=Lb(d,i))}return l}function Em(n){return void 0!==n}function dC(n,t){return 0!=(n.flags&(t?8:16))}function E(n,t=""){const e=ze(),i=nn(),o=n+22,s=i.firstCreatePass?gd(i,o,1,t,null):i.data[o],a=e[o]=function Vb(n,t){return n.createText(t)}(e[11],t);um(i,e,a,s),Io(s,!1)}function oe(n){return ce("",n,""),oe}function ce(n,t,e){const i=ze(),o=vd(i,n,t,e);return o!==Ft&&Qs(i,lr(),o),ce}function _o(n,t,e,i,o){const s=ze(),a=yd(s,n,t,e,i,o);return a!==Ft&&Qs(s,lr(),a),_o}function Js(n,t,e){const i=ze();return Lr(i,Vr(),t)&&mo(nn(),ei(),i,n,t,i[11],e,!0),Js}function Yv(n,t,e){const i=ze();if(Lr(i,Vr(),t)){const s=nn(),a=ei();mo(s,a,i,n,t,xx(sh(s.data),a,i),e,!0)}return Yv}const Hl=void 0;var BR=["en",[["a","p"],["AM","PM"],Hl],[["AM","PM"],Hl,Hl],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Hl,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Hl,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Hl,"{1} 'at' {0}",Hl],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function YR(n){const e=Math.floor(Math.abs(n)),i=n.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let Td={};function zr(n){const t=function HR(n){return n.toLowerCase().replace(/_/g,"-")}(n);let e=LC(t);if(e)return e;const i=t.split("-")[0];if(e=LC(i),e)return e;if("en"===i)return BR;throw new Fe(701,!1)}function LC(n){return n in Td||(Td[n]=dn.ng&&dn.ng.common&&dn.ng.common.locales&&dn.ng.common.locales[n]),Td[n]}var at=(()=>((at=at||{})[at.LocaleId=0]="LocaleId",at[at.DayPeriodsFormat=1]="DayPeriodsFormat",at[at.DayPeriodsStandalone=2]="DayPeriodsStandalone",at[at.DaysFormat=3]="DaysFormat",at[at.DaysStandalone=4]="DaysStandalone",at[at.MonthsFormat=5]="MonthsFormat",at[at.MonthsStandalone=6]="MonthsStandalone",at[at.Eras=7]="Eras",at[at.FirstDayOfWeek=8]="FirstDayOfWeek",at[at.WeekendRange=9]="WeekendRange",at[at.DateFormat=10]="DateFormat",at[at.TimeFormat=11]="TimeFormat",at[at.DateTimeFormat=12]="DateTimeFormat",at[at.NumberSymbols=13]="NumberSymbols",at[at.NumberFormats=14]="NumberFormats",at[at.CurrencyCode=15]="CurrencyCode",at[at.CurrencySymbol=16]="CurrencySymbol",at[at.CurrencyName=17]="CurrencyName",at[at.Currencies=18]="Currencies",at[at.Directionality=19]="Directionality",at[at.PluralCase=20]="PluralCase",at[at.ExtraData=21]="ExtraData",at))();const Ld="en-US";let EC=Ld;function Vv(n,t,e,i,o){if(n=yt(n),Array.isArray(n))for(let s=0;s>20;if(Fl(n)||!n.multi){const te=new Dl(d,o,F),pe=zv(l,t,o?P:P+q,Y);-1===pe?(je(j(w,a),s,l),jv(s,n,t.length),t.push(l),w.directiveStart++,w.directiveEnd++,o&&(w.providerIndexes+=1048576),e.push(te),a.push(te)):(e[pe]=te,a[pe]=te)}else{const te=zv(l,t,P+q,Y),pe=zv(l,t,P,P+q),ke=te>=0&&e[te],Ie=pe>=0&&e[pe];if(o&&!Ie||!o&&!ke){je(j(w,a),s,l);const Re=function Y3(n,t,e,i,o){const s=new Dl(n,e,F);return s.multi=[],s.index=t,s.componentProviders=0,tk(s,o,i&&!e),s}(o?N3:R3,e.length,o,i,d);!o&&Ie&&(e[pe].providerFactory=Re),jv(s,n,t.length,0),t.push(l),w.directiveStart++,w.directiveEnd++,o&&(w.providerIndexes+=1048576),e.push(Re),a.push(Re)}else jv(s,n,te>-1?te:pe,tk(e[o?pe:te],d,!o&&i));!o&&i&&Ie&&e[pe].componentProviders++}}}function jv(n,t,e,i){const o=Fl(t),s=function eA(n){return!!n.useClass}(t);if(o||s){const d=(s?yt(t.useClass):t).prototype.ngOnDestroy;if(d){const w=n.destroyHooks||(n.destroyHooks=[]);if(!o&&t.multi){const P=w.indexOf(e);-1===P?w.push(e,[i,d]):w[P+1].push(i,d)}else w.push(e,d)}}}function tk(n,t,e){return e&&n.componentProviders++,n.multi.push(t)-1}function zv(n,t,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function F3(n,t,e){const i=nn();if(i.firstCreatePass){const o=Dr(n);Vv(e,i.data,i.blueprint,o,!0),Vv(t,i.data,i.blueprint,o,!1)}}(i,o?o(n):n,t)}}class Ed{}class nk{}class ik extends Ed{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new kx(this);const i=hr(t);this._bootstrapComponents=Xs(i.bootstrap),this._r3Injector=rx(t,e,[{provide:Ed,useValue:this},{provide:Ya,useValue:this.componentFactoryResolver}],Fn(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Wv extends nk{constructor(t){super(),this.moduleType=t}create(t){return new ik(this.moduleType,t)}}class H3 extends Ed{constructor(t,e,i){super(),this.componentFactoryResolver=new kx(this),this.instance=null;const o=new jw([...t,{provide:Ed,useValue:this},{provide:Ya,useValue:this.componentFactoryResolver}],e||vm(),i,new Set(["environment"]));this.injector=o,o.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}function Fm(n,t,e=null){return new H3(n,t,e).injector}let V3=(()=>{class n{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e.id)){const i=Yw(0,e.type),o=i.length>0?Fm([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e.id,o)}return this.cachedInjectors.get(e.id)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}}return n.\u0275prov=Ye({token:n,providedIn:"environment",factory:()=>new n(we(bs))}),n})();function $v(n){n.getStandaloneInjector=t=>t.get(V3).getOrCreateStandaloneInjector(n)}function Un(n,t,e){const i=_r()+n,o=ze();return o[i]===Ft?ys(o,i,e?t.call(e):t()):function Eh(n,t){return n[t]}(o,i)}function Be(n,t,e,i){return dk(ze(),_r(),n,t,e,i)}function cn(n,t,e,i,o){return uk(ze(),_r(),n,t,e,i,o)}function Yh(n,t){const e=n[t];return e===Ft?void 0:e}function dk(n,t,e,i,o,s){const a=t+e;return Lr(n,a,o)?ys(n,a+1,s?i.call(s,o):i(o)):Yh(n,a+1)}function uk(n,t,e,i,o,s,a){const l=t+e;return Yl(n,l,o,s)?ys(n,l+2,a?i.call(a,o,s):i(o,s)):Yh(n,l+2)}function R(n,t){const e=nn();let i;const o=n+22;e.firstCreatePass?(i=function iN(n,t){if(t)for(let e=t.length-1;e>=0;e--){const i=t[e];if(n===i.name)return i}}(t,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks||(e.destroyHooks=[])).push(o,i.onDestroy)):i=e.data[o];const s=i.factory||(i.factory=Br(i.type)),a=ur(F);try{const l=td(!1),d=s();return td(l),function ZF(n,t,e,i){e>=n.data.length&&(n.data[e]=null,n.blueprint[e]=null),t[e]=i}(e,ze(),o,d),d}finally{ur(a)}}function B(n,t,e){const i=n+22,o=ze(),s=Oa(o,i);return Bh(o,i)?dk(o,_r(),t,s.transform,e,s):s.transform(e)}function Ct(n,t,e,i){const o=n+22,s=ze(),a=Oa(s,o);return Bh(s,o)?uk(s,_r(),t,a.transform,e,i,a):a.transform(e,i)}function Bh(n,t){return n[1].data[t].pure}function qv(n){return t=>{setTimeout(n,void 0,t)}}const ht=class aN extends X{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,i){let o=t,s=e||(()=>null),a=i;if(t&&"object"==typeof t){const d=t;o=d.next?.bind(d),s=d.error?.bind(d),a=d.complete?.bind(d)}this.__isAsync&&(s=qv(s),o&&(o=qv(o)),a&&(a=qv(a)));const l=super.subscribe({next:o,error:s,complete:a});return t instanceof T&&t.add(l),l}};function lN(){return this._results[Nl()]()}class Vl{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=Nl(),i=Vl.prototype;i[e]||(i[e]=lN)}get changes(){return this._changes||(this._changes=new ht)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,e){return this._results.reduce(t,e)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,e){const i=this;i.dirty=!1;const o=function Po(n){return n.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function xP(n,t,e){if(n.length!==t.length)return!1;for(let i=0;i{class n{}return n.__NG_ELEMENT_ID__=uN,n})();const cN=cr,dN=class extends cN{constructor(t,e,i){super(),this._declarationLView=t,this._declarationTContainer=e,this.elementRef=i}createEmbeddedView(t,e){const i=this._declarationTContainer.tViews,o=Mm(this._declarationLView,i,t,16,null,i.declTNode,null,null,null,null,e||null);o[17]=this._declarationLView[this._declarationTContainer.index];const a=this._declarationLView[19];return null!==a&&(o[19]=a.createEmbeddedView(i)),_v(i,o,t),new Dh(o)}};function uN(){return Rm(Ci(),ze())}function Rm(n,t){return 4&n.type?new dN(t,n,pd(n,t)):null}let Qi=(()=>{class n{}return n.__NG_ELEMENT_ID__=hN,n})();function hN(){return gk(Ci(),ze())}const fN=Qi,mk=class extends fN{constructor(t,e,i){super(),this._lContainer=t,this._hostTNode=e,this._hostLView=i}get element(){return pd(this._hostTNode,this._hostLView)}get injector(){return new rd(this._hostTNode,this._hostLView)}get parentInjector(){const t=Le(this._hostTNode,this._hostLView);if(ho(t)){const e=ed(t,this._hostLView),i=Jc(t);return new rd(e[1].data[i+8],e)}return new rd(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const e=_k(this._lContainer);return null!==e&&e[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,e,i){let o,s;"number"==typeof i?o=i:null!=i&&(o=i.index,s=i.injector);const a=t.createEmbeddedView(e||{},s);return this.insert(a,o),a}createComponent(t,e,i,o,s){const a=t&&!function _h(n){return"function"==typeof n}(t);let l;if(a)l=e;else{const Y=e||{};l=Y.index,i=Y.injector,o=Y.projectableNodes,s=Y.environmentInjector||Y.ngModuleRef}const d=a?t:new Th(bn(t)),w=i||this.parentInjector;if(!s&&null==d.ngModule){const q=(a?w:this.parentInjector).get(bs,null);q&&(s=q)}const P=d.create(w,o,void 0,s);return this.insert(P.hostView,l),P}insert(t,e){const i=t._lView,o=i[1];if(function ab(n){return pr(n[3])}(i)){const P=this.indexOf(t);if(-1!==P)this.detach(P);else{const Y=i[3],q=new mk(Y,Y[6],Y[3]);q.detach(q.indexOf(t))}}const s=this._adjustIndex(e),a=this._lContainer;!function uO(n,t,e,i){const o=10+i,s=e.length;i>0&&(e[o-1][4]=t),i0)i.push(a[l/2]);else{const w=s[l+1],P=t[-d];for(let Y=10;Y{class n{constructor(e){this.appInits=e,this.resolve=Ym,this.reject=Ym,this.initialized=!1,this.done=!1,this.donePromise=new Promise((i,o)=>{this.resolve=i,this.reject=o})}runInitializers(){if(this.initialized)return;const e=[],i=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{s.subscribe({complete:l,error:d})});e.push(a)}}Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}}return n.\u0275fac=function(e){return new(e||n)(we(Bm,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Od=new He("AppId",{providedIn:"root",factory:function Vk(){return`${oy()}${oy()}${oy()}`}});function oy(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const jk=new He("Platform Initializer"),Vm=new He("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),zk=new He("appBootstrapListener"),zi=new He("AnimationModuleType");let BN=(()=>{class n{log(e){console.log(e)}warn(e){console.warn(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})();const xs=new He("LocaleId",{providedIn:"root",factory:()=>Et(xs,Mt.Optional|Mt.SkipSelf)||function HN(){return typeof $localize<"u"&&$localize.locale||Ld}()});class jN{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}let Uk=(()=>{class n{compileModuleSync(e){return new Wv(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),s=Xs(hr(e).declarations).reduce((a,l)=>{const d=bn(l);return d&&a.push(new Th(d)),a},[]);return new jN(i,s)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const WN=(()=>Promise.resolve(0))();function sy(n){typeof Zone>"u"?WN.then(()=>{n&&n.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",n)}class pt{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ht(!1),this.onMicrotaskEmpty=new ht(!1),this.onStable=new ht(!1),this.onError=new ht(!1),typeof Zone>"u")throw new Fe(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function $N(){let n=dn.requestAnimationFrame,t=dn.cancelAnimationFrame;if(typeof Zone<"u"&&n&&t){const e=n[Zone.__symbol__("OriginalDelegate")];e&&(n=e);const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function KN(n){const t=()=>{!function qN(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(dn,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,ly(n),n.isCheckStableRunning=!0,ay(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),ly(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,s,a,l)=>{try{return Gk(n),e.invokeTask(o,s,a,l)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||n.shouldCoalesceRunChangeDetection)&&t(),qk(n)}},onInvoke:(e,i,o,s,a,l,d)=>{try{return Gk(n),e.invoke(o,s,a,l,d)}finally{n.shouldCoalesceRunChangeDetection&&t(),qk(n)}},onHasTask:(e,i,o,s)=>{e.hasTask(o,s),i===o&&("microTask"==s.change?(n._hasPendingMicrotasks=s.microTask,ly(n),ay(n)):"macroTask"==s.change&&(n.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,i,o,s)=>(e.handleError(o,s),n.runOutsideAngular(()=>n.onError.emit(s)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!pt.isInAngularZone())throw new Fe(909,!1)}static assertNotInAngularZone(){if(pt.isInAngularZone())throw new Fe(909,!1)}run(t,e,i){return this._inner.run(t,e,i)}runTask(t,e,i,o){const s=this._inner,a=s.scheduleEventTask("NgZoneEvent: "+o,t,GN,Ym,Ym);try{return s.runTask(a,e,i)}finally{s.cancelTask(a)}}runGuarded(t,e,i){return this._inner.runGuarded(t,e,i)}runOutsideAngular(t){return this._outer.run(t)}}const GN={};function ay(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function ly(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function Gk(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function qk(n){n._nesting--,ay(n)}class ZN{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ht,this.onMicrotaskEmpty=new ht,this.onStable=new ht,this.onError=new ht}run(t,e,i){return t.apply(e,i)}runGuarded(t,e,i){return t.apply(e,i)}runOutsideAngular(t){return t()}runTask(t,e,i,o){return t.apply(e,i)}}const Kk=new He(""),jm=new He("");let uy,cy=(()=>{class n{constructor(e,i,o){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,uy||(function XN(n){uy=n}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{pt.assertNotInAngularZone(),sy(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())sy(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==s),e(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:e,timeoutId:s,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}}return n.\u0275fac=function(e){return new(e||n)(we(pt),we(dy),we(jm))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),dy=(()=>{class n{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return uy?.findTestabilityInTree(this,e,i)??null}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})(),ja=null;const Zk=new He("AllowMultipleToken"),hy=new He("PlatformDestroyListeners");class Xk{constructor(t,e){this.name=t,this.token=e}}function Jk(n,t,e=[]){const i=`Platform: ${t}`,o=new He(i);return(s=[])=>{let a=fy();if(!a||a.injector.get(Zk,!1)){const l=[...e,...s,{provide:o,useValue:!0}];n?n(l):function e4(n){if(ja&&!ja.get(Zk,!1))throw new Fe(400,!1);ja=n;const t=n.get(tS);(function Qk(n){const t=n.get(jk,null);t&&t.forEach(e=>e())})(n)}(function eS(n=[],t){return _i.create({name:t,providers:[{provide:rv,useValue:"platform"},{provide:hy,useValue:new Set([()=>ja=null])},...n]})}(l,i))}return function n4(n){const t=fy();if(!t)throw new Fe(401,!1);return t}()}}function fy(){return ja?.get(tS)??null}let tS=(()=>{class n{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function iS(n,t){let e;return e="noop"===n?new ZN:("zone.js"===n?void 0:n)||new pt(t),e}(i?.ngZone,function nS(n){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!n||!n.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!n||!n.ngZoneRunCoalescing)||!1}}(i)),s=[{provide:pt,useValue:o}];return o.run(()=>{const a=_i.create({providers:s,parent:this.injector,name:e.moduleType.name}),l=e.create(a),d=l.injector.get(Zs,null);if(!d)throw new Fe(402,!1);return o.runOutsideAngular(()=>{const w=o.onError.subscribe({next:P=>{d.handleError(P)}});l.onDestroy(()=>{zm(this._modules,l),w.unsubscribe()})}),function rS(n,t,e){try{const i=e();return Ih(i)?i.catch(o=>{throw t.runOutsideAngular(()=>n.handleError(o)),o}):i}catch(i){throw t.runOutsideAngular(()=>n.handleError(i)),i}}(d,o,()=>{const w=l.injector.get(Hm);return w.runInitializers(),w.donePromise.then(()=>(function IC(n){Zr(n,"Expected localeId to be defined"),"string"==typeof n&&(EC=n.toLowerCase().replace(/_/g,"-"))}(l.injector.get(xs,Ld)||Ld),this._moduleDoBootstrap(l),l))})})}bootstrapModule(e,i=[]){const o=oS({},i);return function QN(n,t,e){const i=new Wv(e);return Promise.resolve(i)}(0,0,e).then(s=>this.bootstrapModuleFactory(s,o))}_moduleDoBootstrap(e){const i=e.injector.get(Ad);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new Fe(403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Fe(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get(hy,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return n.\u0275fac=function(e){return new(e||n)(we(_i))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})();function oS(n,t){return Array.isArray(t)?t.reduce(oS,n):{...n,...t}}let Ad=(()=>{class n{constructor(e,i,o){this._zone=e,this._injector=i,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const s=new de(l=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{l.next(this._stable),l.complete()})}),a=new de(l=>{let d;this._zone.runOutsideAngular(()=>{d=this._zone.onStable.subscribe(()=>{pt.assertNotInAngularZone(),sy(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,l.next(!0))})})});const w=this._zone.onUnstable.subscribe(()=>{pt.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{l.next(!1)}))});return()=>{d.unsubscribe(),w.unsubscribe()}});this.isStable=vt(s,a.pipe(xa()))}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof Uw;if(!this._injector.get(Hm).done)throw!o&&function Ia(n){const t=bn(n)||ji(n)||xi(n);return null!==t&&t.standalone}(e),new Fe(405,false);let a;a=o?e:this._injector.get(Ya).resolveComponentFactory(e),this.componentTypes.push(a.componentType);const l=function JN(n){return n.isBoundToModule}(a)?void 0:this._injector.get(Ed),w=a.create(_i.NULL,[],i||a.selector,l),P=w.location.nativeElement,Y=w.injector.get(Kk,null);return Y?.registerApplication(P),w.onDestroy(()=>{this.detachView(w.hostView),zm(this.components,w),Y?.unregisterApplication(P)}),this._loadComponent(w),w}tick(){if(this._runningTick)throw new Fe(101,!1);try{this._runningTick=!0;for(let e of this._views)e.detectChanges()}catch(e){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(e))}finally{this._runningTick=!1}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;zm(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(zk,[]);i.push(...this._bootstrapListeners),i.forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>zm(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new Fe(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return n.\u0275fac=function(e){return new(e||n)(we(pt),we(bs),we(Zs))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function zm(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}let ui=(()=>{class n{}return n.__NG_ELEMENT_ID__=o4,n})();function o4(n){return function s4(n,t,e){if(xl(n)&&!e){const i=Hr(n.index,t);return new Dh(i,i)}return 47&n.type?new Dh(t[16],t):null}(Ci(),ze(),16==(16&n))}class dS{constructor(){}supports(t){return Lh(t)}create(t){return new h4(t)}}const u4=(n,t)=>t;class h4{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||u4}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,i=this._removalsHead,o=0,s=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(o,l),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,l,a,o)),Object.is(e.item,l)||this._addIdentityChange(e,l)):(e=this._mismatch(e,l,a,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,i,o){let s;return null===t?s=this._itTail:(s=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,s,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,s,o)):t=this._addAfter(new f4(e,i),s,o),t}_verifyReinsertion(t,e,i,o){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?t=this._reinsertAfter(s,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;null!==t;){const e=t._next;this._addToRemovals(this._unlink(t)),t=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const o=t._prevRemoved,s=t._nextRemoved;return null===o?this._removalsHead=s:o._nextRemoved=s,null===s?this._removalsTail=o:s._prevRemoved=o,this._insertAfter(t,e,i),this._addToMoves(t,i),t}_moveAfter(t,e,i){return this._unlink(t),this._insertAfter(t,e,i),this._addToMoves(t,i),t}_addAfter(t,e,i){return this._insertAfter(t,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,i){const o=null===e?this._itHead:e._next;return t._next=o,t._prev=e,null===o?this._itTail=t:o._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new uS),this._linkedRecords.put(t),t.currentIndex=i,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,i=t._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,t}_addToMoves(t,e){return t.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new uS),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,e){return t.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class f4{constructor(t,e){this.item=t,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class p4{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,t))return i;return null}remove(t){const e=t._prevDup,i=t._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class uS{constructor(){this.map=new Map}put(t){const e=t.trackById;let i=this.map.get(e);i||(i=new p4,this.map.set(e,i)),i.add(t)}get(t,e){const o=this.map.get(t);return o?o.get(t,e):null}remove(t){const e=t.trackById;return this.map.get(e).remove(t)&&this.map.delete(e),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function hS(n,t,e){const i=n.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const s=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,s)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const i=t._prev;return e._next=t,e._prev=i,t._prev=e,i&&(i._next=e),t===this._mapHead&&(this._mapHead=e),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(t,e){if(this._records.has(t)){const o=this._records.get(t);this._maybeAddToChanges(o,e);const s=o._prev,a=o._next;return s&&(s._next=a),a&&(a._prev=s),o._next=null,o._prev=null,o}const i=new _4(t);return this._records.set(t,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,e){Object.is(e,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=e,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,e){t instanceof Map?t.forEach(e):Object.keys(t).forEach(i=>e(t[i],i))}}class _4{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function pS(){return new Vh([new dS])}let Vh=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||pS()),deps:[[n,new dd,new Gs]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new Fe(901,!1)}}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:pS}),n})();function mS(){return new jh([new fS])}let jh=(()=>{class n{constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new n(e)}static extend(e){return{provide:n,useFactory:i=>n.create(e,i||mS()),deps:[[n,new dd,new Gs]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new Fe(901,!1)}}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:mS}),n})();const v4=Jk(null,"core",[]);let y4=(()=>{class n{constructor(e){}}return n.\u0275fac=function(e){return new(e||n)(we(Ad))},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();function Fd(n){return"boolean"==typeof n?n:null!=n&&"false"!==n}let by=null;function Cs(){return by}class x4{}const Dt=new He("DocumentToken");let vy=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return function C4(){return we(_S)}()},providedIn:"platform"}),n})();const k4=new He("Location Initialized");let _S=(()=>{class n extends vy{constructor(e){super(),this._doc=e,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Cs().getBaseHref(this._doc)}onPopState(e){const i=Cs().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Cs().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(e){this.location.pathname=e}pushState(e,i,o){gS()?this._history.pushState(e,i,o):this.location.hash=o}replaceState(e,i,o){gS()?this._history.replaceState(e,i,o):this.location.hash=o}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:function(){return function S4(){return new _S(we(Dt))}()},providedIn:"platform"}),n})();function gS(){return!!window.history.pushState}function yy(n,t){if(0==n.length)return t;if(0==t.length)return n;let e=0;return n.endsWith("/")&&e++,t.startsWith("/")&&e++,2==e?n+t.substring(1):1==e?n+t:n+"/"+t}function bS(n){const t=n.match(/#|\?|$/),e=t&&t.index||n.length;return n.slice(0,e-("/"===n[e-1]?1:0))+n.slice(e)}function ta(n){return n&&"?"!==n[0]?"?"+n:n}let zl=(()=>{class n{historyGo(e){throw new Error("Not implemented")}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Et(yS)},providedIn:"root"}),n})();const vS=new He("appBaseHref");let yS=(()=>{class n extends zl{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??Et(Dt).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return yy(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+ta(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,s){const a=this.prepareExternalUrl(o+ta(s));this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,s){const a=this.prepareExternalUrl(o+ta(s));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return n.\u0275fac=function(e){return new(e||n)(we(vy),we(vS,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),D4=(()=>{class n extends zl{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){let i=this._platformLocation.hash;return null==i&&(i="#"),i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=yy(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,s){let a=this.prepareExternalUrl(o+ta(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,s){let a=this.prepareExternalUrl(o+ta(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return n.\u0275fac=function(e){return new(e||n)(we(vy),we(vS,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),zh=(()=>{class n{constructor(e){this._subject=new ht,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function E4(n){if(new RegExp("^(https?:)?//").test(n)){const[,e]=n.split(/\/\/[^\/]+/);return e}return n}(bS(MS(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+ta(i))}normalize(e){return n.stripTrailingSlash(function L4(n,t){return n&&t.startsWith(n)?t.substring(n.length):t}(this._basePath,MS(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+ta(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+ta(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)})),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}}return n.normalizeQueryParams=ta,n.joinWithSlash=yy,n.stripTrailingSlash=bS,n.\u0275fac=function(e){return new(e||n)(we(zl))},n.\u0275prov=Ye({token:n,factory:function(){return function T4(){return new zh(we(zl))}()},providedIn:"root"}),n})();function MS(n){return n.replace(/\/index.html$/,"")}var Ai=(()=>((Ai=Ai||{})[Ai.Format=0]="Format",Ai[Ai.Standalone=1]="Standalone",Ai))(),Xt=(()=>((Xt=Xt||{})[Xt.Narrow=0]="Narrow",Xt[Xt.Abbreviated=1]="Abbreviated",Xt[Xt.Wide=2]="Wide",Xt[Xt.Short=3]="Short",Xt))(),gi=(()=>((gi=gi||{})[gi.Short=0]="Short",gi[gi.Medium=1]="Medium",gi[gi.Long=2]="Long",gi[gi.Full=3]="Full",gi))(),kt=(()=>((kt=kt||{})[kt.Decimal=0]="Decimal",kt[kt.Group=1]="Group",kt[kt.List=2]="List",kt[kt.PercentSign=3]="PercentSign",kt[kt.PlusSign=4]="PlusSign",kt[kt.MinusSign=5]="MinusSign",kt[kt.Exponential=6]="Exponential",kt[kt.SuperscriptingExponent=7]="SuperscriptingExponent",kt[kt.PerMille=8]="PerMille",kt[kt.Infinity=9]="Infinity",kt[kt.NaN=10]="NaN",kt[kt.TimeSeparator=11]="TimeSeparator",kt[kt.CurrencyDecimal=12]="CurrencyDecimal",kt[kt.CurrencyGroup=13]="CurrencyGroup",kt))();function $m(n,t){return Ro(zr(n)[at.DateFormat],t)}function Gm(n,t){return Ro(zr(n)[at.TimeFormat],t)}function qm(n,t){return Ro(zr(n)[at.DateTimeFormat],t)}function Fo(n,t){const e=zr(n),i=e[at.NumberSymbols][t];if(typeof i>"u"){if(t===kt.CurrencyDecimal)return e[at.NumberSymbols][kt.Decimal];if(t===kt.CurrencyGroup)return e[at.NumberSymbols][kt.Group]}return i}function xS(n){if(!n[at.ExtraData])throw new Error(`Missing extra locale data for the locale "${n[at.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Ro(n,t){for(let e=t;e>-1;e--)if(typeof n[e]<"u")return n[e];throw new Error("Locale data API: locale data undefined")}function wy(n){const[t,e]=n.split(":");return{hours:+t,minutes:+e}}const z4=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Uh={},U4=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var er=(()=>((er=er||{})[er.Short=0]="Short",er[er.ShortGMT=1]="ShortGMT",er[er.Long=2]="Long",er[er.Extended=3]="Extended",er))(),Tt=(()=>((Tt=Tt||{})[Tt.FullYear=0]="FullYear",Tt[Tt.Month=1]="Month",Tt[Tt.Date=2]="Date",Tt[Tt.Hours=3]="Hours",Tt[Tt.Minutes=4]="Minutes",Tt[Tt.Seconds=5]="Seconds",Tt[Tt.FractionalSeconds=6]="FractionalSeconds",Tt[Tt.Day=7]="Day",Tt))(),zt=(()=>((zt=zt||{})[zt.DayPeriods=0]="DayPeriods",zt[zt.Days=1]="Days",zt[zt.Months=2]="Months",zt[zt.Eras=3]="Eras",zt))();function CS(n,t,e,i){let o=function J4(n){if(DS(n))return n;if("number"==typeof n&&!isNaN(n))return new Date(n);if("string"==typeof n){if(n=n.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(n)){const[o,s=1,a=1]=n.split("-").map(l=>+l);return Km(o,s-1,a)}const e=parseFloat(n);if(!isNaN(n-e))return new Date(e);let i;if(i=n.match(z4))return function e5(n){const t=new Date(0);let e=0,i=0;const o=n[8]?t.setUTCFullYear:t.setFullYear,s=n[8]?t.setUTCHours:t.setHours;n[9]&&(e=Number(n[9]+n[10]),i=Number(n[9]+n[11])),o.call(t,Number(n[1]),Number(n[2])-1,Number(n[3]));const a=Number(n[4]||0)-e,l=Number(n[5]||0)-i,d=Number(n[6]||0),w=Math.floor(1e3*parseFloat("0."+(n[7]||0)));return s.call(t,a,l,d,w),t}(i)}const t=new Date(n);if(!DS(t))throw new Error(`Unable to convert "${n}" into a date`);return t}(n);t=na(e,t)||t;let l,a=[];for(;t;){if(l=U4.exec(t),!l){a.push(t);break}{a=a.concat(l.slice(1));const P=a.pop();if(!P)break;t=P}}let d=o.getTimezoneOffset();i&&(d=SS(i,d),o=function Q4(n,t,e){const i=e?-1:1,o=n.getTimezoneOffset();return function X4(n,t){return(n=new Date(n.getTime())).setMinutes(n.getMinutes()+t),n}(n,i*(SS(t,o)-o))}(o,i,!0));let w="";return a.forEach(P=>{const Y=function Z4(n){if(Cy[n])return Cy[n];let t;switch(n){case"G":case"GG":case"GGG":t=Kn(zt.Eras,Xt.Abbreviated);break;case"GGGG":t=Kn(zt.Eras,Xt.Wide);break;case"GGGGG":t=Kn(zt.Eras,Xt.Narrow);break;case"y":t=Wi(Tt.FullYear,1,0,!1,!0);break;case"yy":t=Wi(Tt.FullYear,2,0,!0,!0);break;case"yyy":t=Wi(Tt.FullYear,3,0,!1,!0);break;case"yyyy":t=Wi(Tt.FullYear,4,0,!1,!0);break;case"Y":t=Jm(1);break;case"YY":t=Jm(2,!0);break;case"YYY":t=Jm(3);break;case"YYYY":t=Jm(4);break;case"M":case"L":t=Wi(Tt.Month,1,1);break;case"MM":case"LL":t=Wi(Tt.Month,2,1);break;case"MMM":t=Kn(zt.Months,Xt.Abbreviated);break;case"MMMM":t=Kn(zt.Months,Xt.Wide);break;case"MMMMM":t=Kn(zt.Months,Xt.Narrow);break;case"LLL":t=Kn(zt.Months,Xt.Abbreviated,Ai.Standalone);break;case"LLLL":t=Kn(zt.Months,Xt.Wide,Ai.Standalone);break;case"LLLLL":t=Kn(zt.Months,Xt.Narrow,Ai.Standalone);break;case"w":t=xy(1);break;case"ww":t=xy(2);break;case"W":t=xy(1,!0);break;case"d":t=Wi(Tt.Date,1);break;case"dd":t=Wi(Tt.Date,2);break;case"c":case"cc":t=Wi(Tt.Day,1);break;case"ccc":t=Kn(zt.Days,Xt.Abbreviated,Ai.Standalone);break;case"cccc":t=Kn(zt.Days,Xt.Wide,Ai.Standalone);break;case"ccccc":t=Kn(zt.Days,Xt.Narrow,Ai.Standalone);break;case"cccccc":t=Kn(zt.Days,Xt.Short,Ai.Standalone);break;case"E":case"EE":case"EEE":t=Kn(zt.Days,Xt.Abbreviated);break;case"EEEE":t=Kn(zt.Days,Xt.Wide);break;case"EEEEE":t=Kn(zt.Days,Xt.Narrow);break;case"EEEEEE":t=Kn(zt.Days,Xt.Short);break;case"a":case"aa":case"aaa":t=Kn(zt.DayPeriods,Xt.Abbreviated);break;case"aaaa":t=Kn(zt.DayPeriods,Xt.Wide);break;case"aaaaa":t=Kn(zt.DayPeriods,Xt.Narrow);break;case"b":case"bb":case"bbb":t=Kn(zt.DayPeriods,Xt.Abbreviated,Ai.Standalone,!0);break;case"bbbb":t=Kn(zt.DayPeriods,Xt.Wide,Ai.Standalone,!0);break;case"bbbbb":t=Kn(zt.DayPeriods,Xt.Narrow,Ai.Standalone,!0);break;case"B":case"BB":case"BBB":t=Kn(zt.DayPeriods,Xt.Abbreviated,Ai.Format,!0);break;case"BBBB":t=Kn(zt.DayPeriods,Xt.Wide,Ai.Format,!0);break;case"BBBBB":t=Kn(zt.DayPeriods,Xt.Narrow,Ai.Format,!0);break;case"h":t=Wi(Tt.Hours,1,-12);break;case"hh":t=Wi(Tt.Hours,2,-12);break;case"H":t=Wi(Tt.Hours,1);break;case"HH":t=Wi(Tt.Hours,2);break;case"m":t=Wi(Tt.Minutes,1);break;case"mm":t=Wi(Tt.Minutes,2);break;case"s":t=Wi(Tt.Seconds,1);break;case"ss":t=Wi(Tt.Seconds,2);break;case"S":t=Wi(Tt.FractionalSeconds,1);break;case"SS":t=Wi(Tt.FractionalSeconds,2);break;case"SSS":t=Wi(Tt.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":t=Xm(er.Short);break;case"ZZZZZ":t=Xm(er.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=Xm(er.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":t=Xm(er.Long);break;default:return null}return Cy[n]=t,t}(P);w+=Y?Y(o,e,d):"''"===P?"'":P.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),w}function Km(n,t,e){const i=new Date(0);return i.setFullYear(n,t,e),i.setHours(0,0,0),i}function na(n,t){const e=function I4(n){return zr(n)[at.LocaleId]}(n);if(Uh[e]=Uh[e]||{},Uh[e][t])return Uh[e][t];let i="";switch(t){case"shortDate":i=$m(n,gi.Short);break;case"mediumDate":i=$m(n,gi.Medium);break;case"longDate":i=$m(n,gi.Long);break;case"fullDate":i=$m(n,gi.Full);break;case"shortTime":i=Gm(n,gi.Short);break;case"mediumTime":i=Gm(n,gi.Medium);break;case"longTime":i=Gm(n,gi.Long);break;case"fullTime":i=Gm(n,gi.Full);break;case"short":const o=na(n,"shortTime"),s=na(n,"shortDate");i=Zm(qm(n,gi.Short),[o,s]);break;case"medium":const a=na(n,"mediumTime"),l=na(n,"mediumDate");i=Zm(qm(n,gi.Medium),[a,l]);break;case"long":const d=na(n,"longTime"),w=na(n,"longDate");i=Zm(qm(n,gi.Long),[d,w]);break;case"full":const P=na(n,"fullTime"),Y=na(n,"fullDate");i=Zm(qm(n,gi.Full),[P,Y])}return i&&(Uh[e][t]=i),i}function Zm(n,t){return t&&(n=n.replace(/\{([^}]+)}/g,function(e,i){return null!=t&&i in t?t[i]:e})),n}function is(n,t,e="-",i,o){let s="";(n<0||o&&n<=0)&&(o?n=1-n:(n=-n,s=e));let a=String(n);for(;a.length0||l>-e)&&(l+=e),n===Tt.Hours)0===l&&-12===e&&(l=12);else if(n===Tt.FractionalSeconds)return function W4(n,t){return is(n,3).substring(0,t)}(l,t);const d=Fo(a,kt.MinusSign);return is(l,t,d,i,o)}}function Kn(n,t,e=Ai.Format,i=!1){return function(o,s){return function G4(n,t,e,i,o,s){switch(e){case zt.Months:return function A4(n,t,e){const i=zr(n),s=Ro([i[at.MonthsFormat],i[at.MonthsStandalone]],t);return Ro(s,e)}(t,o,i)[n.getMonth()];case zt.Days:return function O4(n,t,e){const i=zr(n),s=Ro([i[at.DaysFormat],i[at.DaysStandalone]],t);return Ro(s,e)}(t,o,i)[n.getDay()];case zt.DayPeriods:const a=n.getHours(),l=n.getMinutes();if(s){const w=function Y4(n){const t=zr(n);return xS(t),(t[at.ExtraData][2]||[]).map(i=>"string"==typeof i?wy(i):[wy(i[0]),wy(i[1])])}(t),P=function B4(n,t,e){const i=zr(n);xS(i);const s=Ro([i[at.ExtraData][0],i[at.ExtraData][1]],t)||[];return Ro(s,e)||[]}(t,o,i),Y=w.findIndex(q=>{if(Array.isArray(q)){const[te,pe]=q,ke=a>=te.hours&&l>=te.minutes,Ie=a0?Math.floor(o/60):Math.ceil(o/60);switch(n){case er.Short:return(o>=0?"+":"")+is(a,2,s)+is(Math.abs(o%60),2,s);case er.ShortGMT:return"GMT"+(o>=0?"+":"")+is(a,1,s);case er.Long:return"GMT"+(o>=0?"+":"")+is(a,2,s)+":"+is(Math.abs(o%60),2,s);case er.Extended:return 0===i?"Z":(o>=0?"+":"")+is(a,2,s)+":"+is(Math.abs(o%60),2,s);default:throw new Error(`Unknown zone width "${n}"`)}}}function kS(n){return Km(n.getFullYear(),n.getMonth(),n.getDate()+(4-n.getDay()))}function xy(n,t=!1){return function(e,i){let o;if(t){const s=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,a=e.getDate();o=1+Math.floor((a+s)/7)}else{const s=kS(e),a=function K4(n){const t=Km(n,0,1).getDay();return Km(n,0,1+(t<=4?4:11)-t)}(s.getFullYear()),l=s.getTime()-a.getTime();o=1+Math.round(l/6048e5)}return is(o,n,Fo(i,kt.MinusSign))}}function Jm(n,t=!1){return function(e,i){return is(kS(e).getFullYear(),n,Fo(i,kt.MinusSign),t)}}const Cy={};function SS(n,t){n=n.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+n)/6e4;return isNaN(e)?t:e}function DS(n){return n instanceof Date&&!isNaN(n.valueOf())}function IS(n,t){t=encodeURIComponent(t);for(const e of n.split(";")){const i=e.indexOf("="),[o,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===t)return decodeURIComponent(s)}return null}let Rn=(()=>{class n{constructor(e,i,o,s){this._iterableDiffers=e,this._keyValueDiffers=i,this._ngEl=o,this._renderer=s,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(e){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(e){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(Lh(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){const e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}}_applyKeyValueChanges(e){e.forEachAddedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachChangedItem(i=>this._toggleClass(i.key,i.currentValue)),e.forEachRemovedItem(i=>{i.previousValue&&this._toggleClass(i.key,!1)})}_applyIterableChanges(e){e.forEachAddedItem(i=>{if("string"!=typeof i.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${Fn(i.item)}`);this._toggleClass(i.item,!0)}),e.forEachRemovedItem(i=>this._toggleClass(i.item,!1))}_applyClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!0)):Object.keys(e).forEach(i=>this._toggleClass(i,!!e[i])))}_removeClasses(e){e&&(Array.isArray(e)||e instanceof Set?e.forEach(i=>this._toggleClass(i,!1)):Object.keys(e).forEach(i=>this._toggleClass(i,!1)))}_toggleClass(e,i){(e=e.trim())&&e.split(/\s+/g).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return n.\u0275fac=function(e){return new(e||n)(F(Vh),F(jh),F(bt),F(Ks))},n.\u0275dir=Ke({type:n,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),n})();class p5{constructor(t,e,i,o){this.$implicit=t,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let bi=(()=>{class n{constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,s,a)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new p5(o.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===s?void 0:s);else if(null!==s){const l=i.get(s);i.move(l,a),AS(l,o)}});for(let o=0,s=i.length;o{AS(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(F(Qi),F(cr),F(Vh))},n.\u0275dir=Ke({type:n,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),n})();function AS(n,t){n.context.$implicit=t.item}let It=(()=>{class n{constructor(e,i){this._viewContainer=e,this._context=new _5,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){FS("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){FS("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(F(Qi),F(cr))},n.\u0275dir=Ke({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),n})();class _5{constructor(){this.$implicit=null,this.ngIf=null}}function FS(n,t){if(t&&!t.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${Fn(t)}'.`)}class Ey{constructor(t,e){this._viewContainerRef=t,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(t){t&&!this._created?this.create():!t&&this._created&&this.destroy()}}let $h=(()=>{class n{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(e)}_matchCase(e){const i=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews&&e!==this._defaultUsed){this._defaultUsed=e;for(let i=0;i{class n{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new Ey(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return n.\u0275fac=function(e){return new(e||n)(F(Qi),F(cr),F($h,9))},n.\u0275dir=Ke({type:n,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0}),n})(),RS=(()=>{class n{constructor(e,i,o){o._addDefault(new Ey(e,i))}}return n.\u0275fac=function(e){return new(e||n)(F(Qi),F(cr),F($h,9))},n.\u0275dir=Ke({type:n,selectors:[["","ngSwitchDefault",""]],standalone:!0}),n})(),Rd=(()=>{class n{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(e.ngTemplateOutlet||e.ngTemplateOutletInjector){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),this.ngTemplateOutlet){const{ngTemplateOutlet:o,ngTemplateOutletContext:s,ngTemplateOutletInjector:a}=this;this._viewRef=i.createEmbeddedView(o,s,a?{injector:a}:void 0)}else this._viewRef=null}else this._viewRef&&e.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return n.\u0275fac=function(e){return new(e||n)(F(Qi))},n.\u0275dir=Ke({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[qi]}),n})();const L5=new He("DATE_PIPE_DEFAULT_TIMEZONE"),E5=new He("DATE_PIPE_DEFAULT_OPTIONS");let YS=(()=>{class n{constructor(e,i,o){this.locale=e,this.defaultTimezone=i,this.defaultOptions=o}transform(e,i,o,s){if(null==e||""===e||e!=e)return null;try{return CS(e,i??this.defaultOptions?.dateFormat??"mediumDate",s||this.locale,o??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(a){throw function rs(n,t){return new Fe(2100,!1)}()}}}return n.\u0275fac=function(e){return new(e||n)(F(xs,16),F(L5,24),F(E5,24))},n.\u0275pipe=Jn({name:"date",type:n,pure:!0,standalone:!0}),n})(),ia=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();const HS="browser";let W5=(()=>{class n{}return n.\u0275prov=Ye({token:n,providedIn:"root",factory:()=>new $5(we(Dt),window)}),n})();class $5{constructor(t,e){this.document=t,this.window=e,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(t){this.supportsScrolling()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(!this.supportsScrolling())return;const e=function G5(n,t){const e=n.getElementById(t)||n.getElementsByName(t)[0];if(e)return e;if("function"==typeof n.createTreeWalker&&n.body&&(n.body.createShadowRoot||n.body.attachShadow)){const i=n.createTreeWalker(n.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const s=o.shadowRoot;if(s){const a=s.getElementById(t)||s.querySelector(`[name="${t}"]`);if(a)return a}o=i.nextNode()}}return null}(this.document,t);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}}scrollToElement(t){const e=t.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(i-s[0],o-s[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const t=VS(this.window.history)||VS(Object.getPrototypeOf(this.window.history));return!(!t||!t.writable&&!t.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function VS(n){return Object.getOwnPropertyDescriptor(n,"scrollRestoration")}class jS{}class yY extends x4{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Ry extends yY{static makeCurrent(){!function w4(n){by||(by=n)}(new Ry)}onAndCancel(t,e,i){return t.addEventListener(e,i,!1),()=>{t.removeEventListener(e,i,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getBaseHref(t){const e=function MY(){return qh=qh||document.querySelector("base"),qh?qh.getAttribute("href"):null}();return null==e?null:function wY(n){n_=n_||document.createElement("a"),n_.setAttribute("href",n);const t=n_.pathname;return"/"===t.charAt(0)?t:`/${t}`}(e)}resetBaseElement(){qh=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return IS(document.cookie,t)}}let n_,qh=null;const qS=new He("TRANSITION_ID"),CY=[{provide:Bm,useFactory:function xY(n,t,e){return()=>{e.get(Hm).donePromise.then(()=>{const i=Cs(),o=t.querySelectorAll(`style[ng-transition="${n}"]`);for(let s=0;s{class n{build(){return new XMLHttpRequest}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const i_=new He("EventManagerPlugins");let r_=(()=>{class n{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>o.manager=this),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}addGlobalEventListener(e,i,o){return this._findPluginFor(i).addGlobalEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){const i=this._eventNameToPlugin.get(e);if(i)return i;const o=this._plugins;for(let s=0;s{class n{constructor(){this._stylesSet=new Set}addStyles(e){const i=new Set;e.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),i.add(o))}),this.onStylesAdded(i)}onStylesAdded(e){}getAllStyles(){return Array.from(this._stylesSet)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Kh=(()=>{class n extends ZS{constructor(e){super(),this._doc=e,this._hostNodes=new Map,this._hostNodes.set(e.head,[])}_addStylesToHost(e,i,o){e.forEach(s=>{const a=this._doc.createElement("style");a.textContent=s,o.push(i.appendChild(a))})}addHost(e){const i=[];this._addStylesToHost(this._stylesSet,e,i),this._hostNodes.set(e,i)}removeHost(e){const i=this._hostNodes.get(e);i&&i.forEach(XS),this._hostNodes.delete(e)}onStylesAdded(e){this._hostNodes.forEach((i,o)=>{this._addStylesToHost(e,o,i)})}ngOnDestroy(){this._hostNodes.forEach(e=>e.forEach(XS))}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function XS(n){Cs().remove(n)}const Ny={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},Yy=/%COMP%/g;function By(n,t){return t.flat(100).map(e=>e.replace(Yy,n))}function eD(n){return t=>{if("__ngUnwrap__"===t)return n;!1===n(t)&&(t.preventDefault(),t.returnValue=!1)}}let o_=(()=>{class n{constructor(e,i,o){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Hy(e)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;switch(i.encapsulation){case Nr.Emulated:{let o=this.rendererByCompId.get(i.id);return o||(o=new PY(this.eventManager,this.sharedStylesHost,i,this.appId),this.rendererByCompId.set(i.id,o)),o.applyToHost(e),o}case 1:case Nr.ShadowDom:return new OY(this.eventManager,this.sharedStylesHost,e,i);default:if(!this.rendererByCompId.has(i.id)){const o=By(i.id,i.styles);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(i.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return n.\u0275fac=function(e){return new(e||n)(we(r_),we(Kh),we(Od))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class Hy{constructor(t){this.eventManager=t,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,e){return e?document.createElementNS(Ny[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){(nD(t)?t.content:t).appendChild(e)}insertBefore(t,e,i){t&&(nD(t)?t.content:t).insertBefore(e,i)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let i="string"==typeof t?document.querySelector(t):t;if(!i)throw new Error(`The selector "${t}" did not match any elements`);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,o){if(o){e=o+":"+e;const s=Ny[o];s?t.setAttributeNS(s,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){const o=Ny[i];o?t.removeAttributeNS(o,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,o){o&(Qr.DashCase|Qr.Important)?t.style.setProperty(e,i,o&Qr.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&Qr.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){t[e]=i}setValue(t,e){t.nodeValue=e}listen(t,e,i){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,eD(i)):this.eventManager.addEventListener(t,e,eD(i))}}function nD(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class PY extends Hy{constructor(t,e,i,o){super(t),this.component=i;const s=By(o+"-"+i.id,i.styles);e.addStyles(s),this.contentAttr=function LY(n){return"_ngcontent-%COMP%".replace(Yy,n)}(o+"-"+i.id),this.hostAttr=function EY(n){return"_nghost-%COMP%".replace(Yy,n)}(o+"-"+i.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}}class OY extends Hy{constructor(t,e,i,o){super(t),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=By(o.id,o.styles);for(let a=0;a{class n extends KS{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const iD=["alt","control","meta","shift"],FY={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},RY={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let NY=(()=>{class n extends KS{constructor(e){super(e)}supports(e){return null!=n.parseEventName(e)}addEventListener(e,i,o){const s=n.parseEventName(i),a=n.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Cs().onAndCancel(e,s.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const s=n._normalizeKey(i.pop());let a="",l=i.indexOf("code");if(l>-1&&(i.splice(l,1),a="code."),iD.forEach(w=>{const P=i.indexOf(w);P>-1&&(i.splice(P,1),a+=w+".")}),a+=s,0!=i.length||0===s.length)return null;const d={};return d.domEventName=o,d.fullKey=a,d}static matchEventFullKeyCode(e,i){let o=FY[e.key]||e.key,s="";return i.indexOf("code.")>-1&&(o=e.code,s="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),iD.forEach(a=>{a!==o&&(0,RY[a])(e)&&(s+=a+".")}),s+=o,s===i)}static eventCallback(e,i,o){return s=>{n.matchEventFullKeyCode(s,e)&&o.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const oD=[{provide:Vm,useValue:HS},{provide:jk,useValue:function YY(){Ry.makeCurrent()},multi:!0},{provide:Dt,useFactory:function HY(){return function CO(n){Zb=n}(document),document},deps:[]}],VY=Jk(v4,"browser",oD),sD=new He(""),aD=[{provide:jm,useClass:class kY{addToWindow(t){dn.getAngularTestability=(i,o=!0)=>{const s=t.findTestabilityInTree(i,o);if(null==s)throw new Error("Could not find testability for element.");return s},dn.getAllAngularTestabilities=()=>t.getAllTestabilities(),dn.getAllAngularRootElements=()=>t.getAllRootElements(),dn.frameworkStabilizers||(dn.frameworkStabilizers=[]),dn.frameworkStabilizers.push(i=>{const o=dn.getAllAngularTestabilities();let s=o.length,a=!1;const l=function(d){a=a||d,s--,0==s&&i(a)};o.forEach(function(d){d.whenStable(l)})})}findTestabilityInTree(t,e,i){return null==e?null:t.getTestability(e)??(i?Cs().isShadowRoot(e)?this.findTestabilityInTree(t,e.host,!0):this.findTestabilityInTree(t,e.parentElement,!0):null)}},deps:[]},{provide:Kk,useClass:cy,deps:[pt,dy,jm]},{provide:cy,useClass:cy,deps:[pt,dy,jm]}],lD=[{provide:rv,useValue:"root"},{provide:Zs,useFactory:function BY(){return new Zs},deps:[]},{provide:i_,useClass:AY,multi:!0,deps:[Dt,pt,Vm]},{provide:i_,useClass:NY,multi:!0,deps:[Dt]},{provide:o_,useClass:o_,deps:[r_,Kh,Od]},{provide:kh,useExisting:o_},{provide:ZS,useExisting:Kh},{provide:Kh,useClass:Kh,deps:[Dt]},{provide:r_,useClass:r_,deps:[i_,pt]},{provide:jS,useClass:SY,deps:[]},[]];let cD=(()=>{class n{constructor(e){}static withServerTransition(e){return{ngModule:n,providers:[{provide:Od,useValue:e.appId},{provide:qS,useExisting:Od},CY]}}}return n.\u0275fac=function(e){return new(e||n)(we(sD,12))},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[...lD,...aD],imports:[ia,y4]}),n})(),dD=(()=>{class n{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:function(e){let i=null;return i=e?new e:function zY(){return new dD(we(Dt))}(),i},providedIn:"root"}),n})();typeof window<"u"&&window;let zy=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(e){let i=null;return i=e?new(e||n):we(fD),i},providedIn:"root"}),n})(),fD=(()=>{class n extends zy{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case xn.NONE:return i;case xn.HTML:return gs(i,"HTML")?po(i):Pw(this._doc,String(i)).toString();case xn.STYLE:return gs(i,"Style")?po(i):i;case xn.SCRIPT:if(gs(i,"Script"))return po(i);throw new Error("unsafe value used in a script context");case xn.URL:return gs(i,"URL")?po(i):mm(String(i));case xn.RESOURCE_URL:if(gs(i,"ResourceURL"))return po(i);throw new Error(`unsafe value used in a resource URL context (see ${Do})`);default:throw new Error(`Unexpected SecurityContext ${e} (see ${Do})`)}}bypassSecurityTrustHtml(e){return function IO(n){return new kO(n)}(e)}bypassSecurityTrustStyle(e){return function PO(n){return new SO(n)}(e)}bypassSecurityTrustScript(e){return function OO(n){return new DO(n)}(e)}bypassSecurityTrustUrl(e){return function AO(n){return new TO(n)}(e)}bypassSecurityTrustResourceUrl(e){return function FO(n){return new LO(n)}(e)}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:function(e){let i=null;return i=e?new e:function ZY(n){return new fD(n.get(Dt))}(we(_i)),i},providedIn:"root"}),n})();class pD{}class XY{}const ra="*";function oa(n,t){return{type:7,name:n,definitions:t,options:{}}}function Wr(n,t=null){return{type:4,styles:t,timings:n}}function _D(n,t=null){return{type:2,steps:n,options:t}}function Zn(n){return{type:6,styles:n,offset:null}}function go(n,t,e){return{type:0,name:n,styles:t,options:e}}function Er(n,t,e=null){return{type:1,expr:n,animation:t,options:e}}function Uy(n=null){return{type:9,options:n}}function Wy(n,t,e=null){return{type:11,selector:n,animation:t,options:e}}function gD(n){Promise.resolve().then(n)}class Zh{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){gD(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class bD{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let e=0,i=0,o=0;const s=this.players.length;0==s?gD(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++o==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,l)=>Math.max(a,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){const e=t*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const t=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=t?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}function vD(n){return new Fe(3e3,!1)}function PB(){return typeof window<"u"&&typeof window.document<"u"}function Gy(){return typeof process<"u"&&"[object process]"==={}.toString.call(process)}function Ua(n){switch(n.length){case 0:return new Zh;case 1:return n[0];default:return new bD(n)}}function yD(n,t,e,i,o=new Map,s=new Map){const a=[],l=[];let d=-1,w=null;if(i.forEach(P=>{const Y=P.get("offset"),q=Y==d,te=q&&w||new Map;P.forEach((pe,ke)=>{let Ie=ke,Re=pe;if("offset"!==ke)switch(Ie=t.normalizePropertyName(Ie,a),Re){case"!":Re=o.get(ke);break;case ra:Re=s.get(ke);break;default:Re=t.normalizeStyleValue(ke,Ie,Re,a)}te.set(Ie,Re)}),q||l.push(te),w=te,d=Y}),a.length)throw function yB(n){return new Fe(3502,!1)}();return l}function qy(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&Ky(e,"start",n)));break;case"done":n.onDone(()=>i(e&&Ky(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&Ky(e,"destroy",n)))}}function Ky(n,t,e){const s=Zy(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,e.totalTime??n.totalTime,!!e.disabled),a=n._data;return null!=a&&(s._data=a),s}function Zy(n,t,e,i,o="",s=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:o,totalTime:s,disabled:!!a}}function bo(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function MD(n){const t=n.indexOf(":");return[n.substring(1,t),n.slice(t+1)]}let Xy=(n,t)=>!1,wD=(n,t,e)=>[],xD=null;function Qy(n){const t=n.parentNode||n.host;return t===xD?null:t}(Gy()||typeof Element<"u")&&(PB()?(xD=(()=>document.documentElement)(),Xy=(n,t)=>{for(;t;){if(t===n)return!0;t=Qy(t)}return!1}):Xy=(n,t)=>n.contains(t),wD=(n,t,e)=>{if(e)return Array.from(n.querySelectorAll(t));const i=n.querySelector(t);return i?[i]:[]});let Ul=null,CD=!1;const kD=Xy,SD=wD;let DD=(()=>{class n{validateStyleProperty(e){return function AB(n){Ul||(Ul=function FB(){return typeof document<"u"?document.body:null}()||{},CD=!!Ul.style&&"WebkitAppearance"in Ul.style);let t=!0;return Ul.style&&!function OB(n){return"ebkit"==n.substring(1,6)}(n)&&(t=n in Ul.style,!t&&CD&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in Ul.style)),t}(e)}matchesElement(e,i){return!1}containsElement(e,i){return kD(e,i)}getParentElement(e){return Qy(e)}query(e,i,o){return SD(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,s,a,l=[],d){return new Zh(o,s)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Jy=(()=>{class n{}return n.NOOP=new DD,n})();const e0="ng-enter",s_="ng-leave",a_="ng-trigger",l_=".ng-trigger",LD="ng-animating",t0=".ng-animating";function sa(n){if("number"==typeof n)return n;const t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:n0(parseFloat(t[1]),t[2])}function n0(n,t){return"s"===t?1e3*n:n}function c_(n,t,e){return n.hasOwnProperty("duration")?n:function YB(n,t,e){let o,s=0,a="";if("string"==typeof n){const l=n.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===l)return t.push(vD()),{duration:0,delay:0,easing:""};o=n0(parseFloat(l[1]),l[2]);const d=l[3];null!=d&&(s=n0(parseFloat(d),l[4]));const w=l[5];w&&(a=w)}else o=n;if(!e){let l=!1,d=t.length;o<0&&(t.push(function QY(){return new Fe(3100,!1)}()),l=!0),s<0&&(t.push(function JY(){return new Fe(3101,!1)}()),l=!0),l&&t.splice(d,0,vD())}return{duration:o,delay:s,easing:a}}(n,t,e)}function Xh(n,t={}){return Object.keys(n).forEach(e=>{t[e]=n[e]}),t}function ED(n){const t=new Map;return Object.keys(n).forEach(e=>{t.set(e,n[e])}),t}function Wa(n,t=new Map,e){if(e)for(let[i,o]of e)t.set(i,o);for(let[i,o]of n)t.set(i,o);return t}function PD(n,t,e){return e?t+":"+e+";":""}function OD(n){let t="";for(let e=0;e{const s=o0(o);e&&!e.has(o)&&e.set(o,n.style[s]),n.style[s]=i}),Gy()&&OD(n))}function Wl(n,t){n.style&&(t.forEach((e,i)=>{const o=o0(i);n.style[o]=""}),Gy()&&OD(n))}function Qh(n){return Array.isArray(n)?1==n.length?n[0]:_D(n):n}const r0=new RegExp("{{\\s*(.+?)\\s*}}","g");function AD(n){let t=[];if("string"==typeof n){let e;for(;e=r0.exec(n);)t.push(e[1]);r0.lastIndex=0}return t}function Jh(n,t,e){const i=n.toString(),o=i.replace(r0,(s,a)=>{let l=t[a];return null==l&&(e.push(function tB(n){return new Fe(3003,!1)}()),l=""),l.toString()});return o==i?n:o}function d_(n){const t=[];let e=n.next();for(;!e.done;)t.push(e.value),e=n.next();return t}const VB=/-+([a-z0-9])/g;function o0(n){return n.replace(VB,(...t)=>t[1].toUpperCase())}function jB(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function vo(n,t,e){switch(t.type){case 7:return n.visitTrigger(t,e);case 0:return n.visitState(t,e);case 1:return n.visitTransition(t,e);case 2:return n.visitSequence(t,e);case 3:return n.visitGroup(t,e);case 4:return n.visitAnimate(t,e);case 5:return n.visitKeyframes(t,e);case 6:return n.visitStyle(t,e);case 8:return n.visitReference(t,e);case 9:return n.visitAnimateChild(t,e);case 10:return n.visitAnimateRef(t,e);case 11:return n.visitQuery(t,e);case 12:return n.visitStagger(t,e);default:throw function nB(n){return new Fe(3004,!1)}()}}function FD(n,t){return window.getComputedStyle(n)[t]}function qB(n,t){const e=[];return"string"==typeof n?n.split(/\s*,\s*/).forEach(i=>function KB(n,t,e){if(":"==n[0]){const d=function ZB(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(n,e);if("function"==typeof d)return void t.push(d);n=d}const i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function mB(n){return new Fe(3015,!1)}()),t;const o=i[1],s=i[2],a=i[3];t.push(RD(o,a));"<"==s[0]&&!("*"==o&&"*"==a)&&t.push(RD(a,o))}(i,e,t)):e.push(n),e}const p_=new Set(["true","1"]),m_=new Set(["false","0"]);function RD(n,t){const e=p_.has(n)||m_.has(n),i=p_.has(t)||m_.has(t);return(o,s)=>{let a="*"==n||n==o,l="*"==t||t==s;return!a&&e&&"boolean"==typeof o&&(a=o?p_.has(n):m_.has(n)),!l&&i&&"boolean"==typeof s&&(l=s?p_.has(t):m_.has(t)),a&&l}}const XB=new RegExp("s*:selfs*,?","g");function s0(n,t,e,i){return new QB(n).build(t,e,i)}class QB{constructor(t){this._driver=t}build(t,e,i){const o=new tH(e);return this._resetContextStyleTimingState(o),vo(this,Qh(t),o)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles=new Map,t.collectedStyles.set("",new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,o=e.depCount=0;const s=[],a=[];return"@"==t.name.charAt(0)&&e.errors.push(function rB(){return new Fe(3006,!1)}()),t.definitions.forEach(l=>{if(this._resetContextStyleTimingState(e),0==l.type){const d=l,w=d.name;w.toString().split(/\s*,\s*/).forEach(P=>{d.name=P,s.push(this.visitState(d,e))}),d.name=w}else if(1==l.type){const d=this.visitTransition(l,e);i+=d.queryCount,o+=d.depCount,a.push(d)}else e.errors.push(function oB(){return new Fe(3007,!1)}())}),{type:7,name:t.name,states:s,transitions:a,queryCount:i,depCount:o,options:null}}visitState(t,e){const i=this.visitStyle(t.styles,e),o=t.options&&t.options.params||null;if(i.containsDynamicStyles){const s=new Set,a=o||{};i.styles.forEach(l=>{l instanceof Map&&l.forEach(d=>{AD(d).forEach(w=>{a.hasOwnProperty(w)||s.add(w)})})}),s.size&&(d_(s.values()),e.errors.push(function sB(n,t){return new Fe(3008,!1)}()))}return{type:0,name:t.name,style:i,options:o?{params:o}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const i=vo(this,Qh(t.animation),e);return{type:1,matchers:qB(t.expr,e.errors),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:$l(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map(i=>vo(this,i,e)),options:$l(t.options)}}visitGroup(t,e){const i=e.currentTime;let o=0;const s=t.steps.map(a=>{e.currentTime=i;const l=vo(this,a,e);return o=Math.max(o,e.currentTime),l});return e.currentTime=o,{type:3,steps:s,options:$l(t.options)}}visitAnimate(t,e){const i=function iH(n,t){if(n.hasOwnProperty("duration"))return n;if("number"==typeof n)return a0(c_(n,t).duration,0,"");const e=n;if(e.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=a0(0,0,"");return s.dynamic=!0,s.strValue=e,s}const o=c_(e,t);return a0(o.duration,o.delay,o.easing)}(t.timings,e.errors);e.currentAnimateTimings=i;let o,s=t.styles?t.styles:Zn({});if(5==s.type)o=this.visitKeyframes(s,e);else{let a=t.styles,l=!1;if(!a){l=!0;const w={};i.easing&&(w.easing=i.easing),a=Zn(w)}e.currentTime+=i.duration+i.delay;const d=this.visitStyle(a,e);d.isEmptyStep=l,o=d}return e.currentAnimateTimings=null,{type:4,timings:i,style:o,options:null}}visitStyle(t,e){const i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){const i=[],o=Array.isArray(t.styles)?t.styles:[t.styles];for(let l of o)"string"==typeof l?l===ra?i.push(l):e.errors.push(new Fe(3002,!1)):i.push(ED(l));let s=!1,a=null;return i.forEach(l=>{if(l instanceof Map&&(l.has("easing")&&(a=l.get("easing"),l.delete("easing")),!s))for(let d of l.values())if(d.toString().indexOf("{{")>=0){s=!0;break}}),{type:6,styles:i,easing:a,offset:t.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(t,e){const i=e.currentAnimateTimings;let o=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),t.styles.forEach(a=>{"string"!=typeof a&&a.forEach((l,d)=>{const w=e.collectedStyles.get(e.currentQuerySelector),P=w.get(d);let Y=!0;P&&(s!=o&&s>=P.startTime&&o<=P.endTime&&(e.errors.push(function lB(n,t,e,i,o){return new Fe(3010,!1)}()),Y=!1),s=P.startTime),Y&&w.set(d,{startTime:s,endTime:o}),e.options&&function HB(n,t,e){const i=t.params||{},o=AD(n);o.length&&o.forEach(s=>{i.hasOwnProperty(s)||e.push(function eB(n){return new Fe(3001,!1)}())})}(l,e.options,e.errors)})})}visitKeyframes(t,e){const i={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function cB(){return new Fe(3011,!1)}()),i;let s=0;const a=[];let l=!1,d=!1,w=0;const P=t.steps.map(Re=>{const Xe=this._makeStyleAst(Re,e);let Ae=null!=Xe.offset?Xe.offset:function nH(n){if("string"==typeof n)return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){const e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}(Xe.styles),ct=0;return null!=Ae&&(s++,ct=Xe.offset=Ae),d=d||ct<0||ct>1,l=l||ct0&&s{const Ae=q>0?Xe==te?1:q*Xe:a[Xe],ct=Ae*Ie;e.currentTime=pe+ke.delay+ct,ke.duration=ct,this._validateStyleAst(Re,e),Re.offset=Ae,i.styles.push(Re)}),i}visitReference(t,e){return{type:8,animation:vo(this,Qh(t.animation),e),options:$l(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:$l(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:$l(t.options)}}visitQuery(t,e){const i=e.currentQuerySelector,o=t.options||{};e.queryCount++,e.currentQuery=t;const[s,a]=function JB(n){const t=!!n.split(/\s*,\s*/).find(e=>":self"==e);return t&&(n=n.replace(XB,"")),n=n.replace(/@\*/g,l_).replace(/@\w+/g,e=>l_+"-"+e.slice(1)).replace(/:animating/g,t0),[n,t]}(t.selector);e.currentQuerySelector=i.length?i+" "+s:s,bo(e.collectedStyles,e.currentQuerySelector,new Map);const l=vo(this,Qh(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:11,selector:s,limit:o.limit||0,optional:!!o.optional,includeSelf:a,animation:l,originalSelector:t.selector,options:$l(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(function fB(){return new Fe(3013,!1)}());const i="full"===t.timings?{duration:0,delay:0,easing:"full"}:c_(t.timings,e.errors,!0);return{type:12,animation:vo(this,Qh(t.animation),e),timings:i,options:null}}}class tH{constructor(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function $l(n){return n?(n=Xh(n)).params&&(n.params=function eH(n){return n?Xh(n):null}(n.params)):n={},n}function a0(n,t,e){return{duration:n,delay:t,easing:e}}function l0(n,t,e,i,o,s,a=null,l=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:o,delay:s,totalTime:o+s,easing:a,subTimeline:l}}class __{constructor(){this._map=new Map}get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const sH=new RegExp(":enter","g"),lH=new RegExp(":leave","g");function c0(n,t,e,i,o,s=new Map,a=new Map,l,d,w=[]){return(new cH).buildKeyframes(n,t,e,i,o,s,a,l,d,w)}class cH{buildKeyframes(t,e,i,o,s,a,l,d,w,P=[]){w=w||new __;const Y=new d0(t,e,w,o,s,P,[]);Y.options=d;const q=d.delay?sa(d.delay):0;Y.currentTimeline.delayNextStep(q),Y.currentTimeline.setStyles([a],null,Y.errors,d),vo(this,i,Y);const te=Y.timelines.filter(pe=>pe.containsAnimation());if(te.length&&l.size){let pe;for(let ke=te.length-1;ke>=0;ke--){const Ie=te[ke];if(Ie.element===e){pe=Ie;break}}pe&&!pe.allowOnlyTimelineStyles()&&pe.setStyles([l],null,Y.errors,d)}return te.length?te.map(pe=>pe.buildKeyframes()):[l0(e,[],[],[],0,q,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(t.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,o,o.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){const i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(const o of t){const s=o?.delay;if(s){const a="number"==typeof s?s:sa(Jh(s,o?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(t,e,i){let s=e.currentTimeline.currentTime;const a=null!=i.duration?sa(i.duration):null,l=null!=i.delay?sa(i.delay):null;return 0!==a&&t.forEach(d=>{const w=e.appendInstructionToTimeline(d,a,l);s=Math.max(s,w.duration+w.delay)}),s}visitReference(t,e){e.updateOptions(t.options,!0),vo(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const i=e.subContextCount;let o=e;const s=t.options;if(s&&(s.params||s.delay)&&(o=e.createSubContext(s),o.transformIntoNewTimeline(),null!=s.delay)){6==o.previousNode.type&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=g_);const a=sa(s.delay);o.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>vo(this,a,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const i=[];let o=e.currentTimeline.currentTime;const s=t.options&&t.options.delay?sa(t.options.delay):0;t.steps.forEach(a=>{const l=e.createSubContext(t.options);s&&l.delayNextStep(s),vo(this,a,l),o=Math.max(o,l.currentTimeline.currentTime),i.push(l.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(o),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const i=t.strValue;return c_(e.params?Jh(i,e.params,e.errors):i,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const i=e.currentAnimateTimings=this._visitTiming(t.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const s=t.style;5==s.type?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const s=o&&o.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(s):i.setStyles(t.styles,s,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,s=i.duration,l=e.createSubContext().currentTimeline;l.easing=i.easing,t.styles.forEach(d=>{l.forwardTime((d.offset||0)*s),l.setStyles(d.styles,d.easing,e.errors,e.options),l.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(l),e.transformIntoNewTimeline(o+s),e.previousNode=t}visitQuery(t,e){const i=e.currentTimeline.currentTime,o=t.options||{},s=o.delay?sa(o.delay):0;s&&(6===e.previousNode.type||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=g_);let a=i;const l=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=l.length;let d=null;l.forEach((w,P)=>{e.currentQueryIndex=P;const Y=e.createSubContext(t.options,w);s&&Y.delayNextStep(s),w===e.element&&(d=Y.currentTimeline),vo(this,t.animation,Y),Y.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,Y.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),d&&(e.currentTimeline.mergeTimelineCollectedStyles(d),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const i=e.parentContext,o=e.currentTimeline,s=t.timings,a=Math.abs(s.duration),l=a*(e.currentQueryTotal-1);let d=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":d=l-d;break;case"full":d=i.currentStaggerTime}const P=e.currentTimeline;d&&P.delayNextStep(d);const Y=P.currentTime;vo(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=o.currentTime-Y+(o.startTime-i.currentTimeline.startTime)}}const g_={};class d0{constructor(t,e,i,o,s,a,l,d){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=s,this.errors=a,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=g_,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=d||new b_(this._driver,e,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const i=t;let o=this.options;null!=i.duration&&(o.duration=sa(i.duration)),null!=i.delay&&(o.delay=sa(i.delay));const s=i.params;if(s){let a=o.params;a||(a=this.options.params={}),Object.keys(s).forEach(l=>{(!e||!a.hasOwnProperty(l))&&(a[l]=Jh(s[l],a,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const i=t.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return t}createSubContext(t=null,e,i){const o=e||this.element,s=new d0(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(t),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(t){return this.previousNode=g_,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){const o={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},s=new dH(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,o,t.stretchStartingKeyframe);return this.timelines.push(s),o}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,o,s,a){let l=[];if(o&&l.push(this.element),t.length>0){t=(t=t.replace(sH,"."+this._enterClassName)).replace(lH,"."+this._leaveClassName);let w=this._driver.query(this.element,t,1!=i);0!==i&&(w=i<0?w.slice(w.length+i,w.length):w.slice(0,i)),l.push(...w)}return!s&&0==l.length&&a.push(function pB(n){return new Fe(3014,!1)}()),l}}class b_{constructor(t,e,i,o){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new b_(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||ra),this._currentKeyframe.set(e,ra);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,o){e&&this._previousKeyframe.set("easing",e);const s=o&&o.params||{},a=function uH(n,t){const e=new Map;let i;return n.forEach(o=>{if("*"===o){i=i||t.keys();for(let s of i)e.set(s,ra)}else Wa(o,e)}),e}(t,this._globalTimelineStyles);for(let[l,d]of a){const w=Jh(d,s,i);this._pendingStyles.set(l,w),this._localTimelineStyles.has(l)||this._backFill.set(l,this._globalTimelineStyles.get(l)??ra),this._updateStyle(l,w)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((l,d)=>{const w=Wa(l,new Map,this._backFill);w.forEach((P,Y)=>{"!"===P?t.add(Y):P===ra&&e.add(Y)}),i||w.set("offset",d/this.duration),o.push(w)});const s=t.size?d_(t.values()):[],a=e.size?d_(e.values()):[];if(i){const l=o[0],d=new Map(l);l.set("offset",0),d.set("offset",1),o=[l,d]}return l0(this.element,o,s,a,this.duration,this.startTime,this.easing,!1)}}class dH extends b_{constructor(t,e,i,o,s,a,l=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=s,this._stretchStartingKeyframe=l,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const s=[],a=i+e,l=e/a,d=Wa(t[0]);d.set("offset",0),s.push(d);const w=Wa(t[0]);w.set("offset",BD(l)),s.push(w);const P=t.length-1;for(let Y=1;Y<=P;Y++){let q=Wa(t[Y]);const te=q.get("offset");q.set("offset",BD((e+te*i)/a)),s.push(q)}i=a,e=0,o="",t=s}return l0(this.element,t,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function BD(n,t=3){const e=Math.pow(10,t-1);return Math.round(n*e)/e}class u0{}const hH=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class fH extends u0{normalizePropertyName(t,e){return o0(t)}normalizeStyleValue(t,e,i,o){let s="";const a=i.toString().trim();if(hH.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const l=i.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&0==l[1].length&&o.push(function iB(n,t){return new Fe(3005,!1)}())}return a+s}}function HD(n,t,e,i,o,s,a,l,d,w,P,Y,q){return{type:0,element:n,triggerName:t,isRemovalTransition:o,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:l,queriedElements:d,preStyleProps:w,postStyleProps:P,totalTime:Y,errors:q}}const h0={};class VD{constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,o){return function pH(n,t,e,i,o){return n.some(s=>s(t,e,i,o))}(this.ast.matchers,t,e,i,o)}buildStyles(t,e,i){let o=this._stateStyles.get("*");return void 0!==t&&(o=this._stateStyles.get(t?.toString())||o),o?o.buildStyles(e,i):new Map}build(t,e,i,o,s,a,l,d,w,P){const Y=[],q=this.ast.options&&this.ast.options.params||h0,pe=this.buildStyles(i,l&&l.params||h0,Y),ke=d&&d.params||h0,Ie=this.buildStyles(o,ke,Y),Re=new Set,Xe=new Map,Ae=new Map,ct="void"===o,pn={params:mH(ke,q),delay:this.ast.options?.delay},wn=P?[]:c0(t,e,this.ast.animation,s,a,pe,Ie,pn,w,Y);let Fr=0;if(wn.forEach(Ma=>{Fr=Math.max(Ma.duration+Ma.delay,Fr)}),Y.length)return HD(e,this._triggerName,i,o,ct,pe,Ie,[],[],Xe,Ae,Fr,Y);wn.forEach(Ma=>{const wa=Ma.element,_P=bo(Xe,wa,new Set);Ma.preStyleProps.forEach(Ic=>_P.add(Ic));const vp=bo(Ae,wa,new Set);Ma.postStyleProps.forEach(Ic=>vp.add(Ic)),wa!==e&&Re.add(wa)});const ya=d_(Re.values());return HD(e,this._triggerName,i,o,ct,pe,Ie,wn,ya,Xe,Ae,Fr)}}function mH(n,t){const e=Xh(t);for(const i in n)n.hasOwnProperty(i)&&null!=n[i]&&(e[i]=n[i]);return e}class _H{constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){const i=new Map,o=Xh(this.defaultParams);return Object.keys(t).forEach(s=>{const a=t[s];null!==a&&(o[s]=a)}),this.styles.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,l)=>{a&&(a=Jh(a,o,e));const d=this.normalizer.normalizePropertyName(l,e);a=this.normalizer.normalizeStyleValue(l,d,a,e),i.set(l,a)})}),i}}class bH{constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new _H(o.style,o.options&&o.options.params||{},i))}),jD(this.states,"true","1"),jD(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new VD(t,o,this.states))}),this.fallbackTransition=function vH(n,t,e){return new VD(n,{type:1,animation:{type:2,steps:[],options:null},matchers:[(a,l)=>!0],options:null,queryCount:0,depCount:0},t)}(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,o){return this.transitionFactories.find(a=>a.match(t,e,i,o))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}}function jD(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}const yH=new __;class MH{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(t,e){const i=[],s=s0(this._driver,e,i,[]);if(i.length)throw function MB(n){return new Fe(3503,!1)}();this._animations.set(t,s)}_buildPlayer(t,e,i){const o=t.element,s=yD(0,this._normalizer,0,t.keyframes,e,i);return this._driver.animate(o,s,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){const o=[],s=this._animations.get(t);let a;const l=new Map;if(s?(a=c0(this._driver,e,s,e0,s_,new Map,new Map,i,yH,o),a.forEach(P=>{const Y=bo(l,P.element,new Map);P.postStyleProps.forEach(q=>Y.set(q,null))})):(o.push(function wB(){return new Fe(3300,!1)}()),a=[]),o.length)throw function xB(n){return new Fe(3504,!1)}();l.forEach((P,Y)=>{P.forEach((q,te)=>{P.set(te,this._driver.computeStyle(Y,te,ra))})});const w=Ua(a.map(P=>{const Y=l.get(P.element);return this._buildPlayer(P,new Map,Y)}));return this._playersById.set(t,w),w.onDestroy(()=>this.destroy(t)),this.players.push(w),w}destroy(t){const e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){const e=this._playersById.get(t);if(!e)throw function CB(n){return new Fe(3301,!1)}();return e}listen(t,e,i,o){const s=Zy(e,"","","");return qy(this._getPlayer(t),i,s,o),()=>{}}command(t,e,i,o){if("register"==i)return void this.register(t,o[0]);if("create"==i)return void this.create(t,e,o[0]||{});const s=this._getPlayer(t);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(t)}}}const zD="ng-animate-queued",f0="ng-animate-disabled",SH=[],UD={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},DH={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},No="__ng_removed";class p0{constructor(t,e=""){this.namespaceId=e;const i=t&&t.hasOwnProperty("value");if(this.value=function IH(n){return n??null}(i?t.value:t),i){const s=Xh(t);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const ef="void",m0=new p0(ef);class TH{constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,Yo(e,this._hostClassName)}listen(t,e,i,o){if(!this._triggers.has(e))throw function kB(n,t){return new Fe(3302,!1)}();if(null==i||0==i.length)throw function SB(n){return new Fe(3303,!1)}();if(!function PH(n){return"start"==n||"done"==n}(i))throw function DB(n,t){return new Fe(3400,!1)}();const s=bo(this._elementListeners,t,[]),a={name:e,phase:i,callback:o};s.push(a);const l=bo(this._engine.statesByElement,t,new Map);return l.has(e)||(Yo(t,a_),Yo(t,a_+"-"+e),l.set(e,m0)),()=>{this._engine.afterFlush(()=>{const d=s.indexOf(a);d>=0&&s.splice(d,1),this._triggers.has(e)||l.delete(e)})}}register(t,e){return!this._triggers.has(t)&&(this._triggers.set(t,e),!0)}_getTrigger(t){const e=this._triggers.get(t);if(!e)throw function TB(n){return new Fe(3401,!1)}();return e}trigger(t,e,i,o=!0){const s=this._getTrigger(e),a=new _0(this.id,e,t);let l=this._engine.statesByElement.get(t);l||(Yo(t,a_),Yo(t,a_+"-"+e),this._engine.statesByElement.set(t,l=new Map));let d=l.get(e);const w=new p0(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&d&&w.absorbOptions(d.options),l.set(e,w),d||(d=m0),w.value!==ef&&d.value===w.value){if(!function FH(n,t){const e=Object.keys(n),i=Object.keys(t);if(e.length!=i.length)return!1;for(let o=0;o{Wl(t,Ie),ks(t,Re)})}return}const q=bo(this._engine.playersByElement,t,[]);q.forEach(ke=>{ke.namespaceId==this.id&&ke.triggerName==e&&ke.queued&&ke.destroy()});let te=s.matchTransition(d.value,w.value,t,w.params),pe=!1;if(!te){if(!o)return;te=s.fallbackTransition,pe=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:te,fromState:d,toState:w,player:a,isFallbackTransition:pe}),pe||(Yo(t,zD),a.onStart(()=>{Nd(t,zD)})),a.onDone(()=>{let ke=this.players.indexOf(a);ke>=0&&this.players.splice(ke,1);const Ie=this._engine.playersByElement.get(t);if(Ie){let Re=Ie.indexOf(a);Re>=0&&Ie.splice(Re,1)}}),this.players.push(a),q.push(a),a}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){const i=this._engine.driver.query(t,l_,!0);i.forEach(o=>{if(o[No])return;const s=this._engine.fetchNamespacesByElement(o);s.size?s.forEach(a=>a.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(t,e,i,o){const s=this._engine.statesByElement.get(t),a=new Map;if(s){const l=[];if(s.forEach((d,w)=>{if(a.set(w,d.value),this._triggers.has(w)){const P=this.trigger(t,w,ef,o);P&&l.push(P)}}),l.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&Ua(l).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){const o=new Set;e.forEach(s=>{const a=s.name;if(o.has(a))return;o.add(a);const d=this._triggers.get(a).fallbackTransition,w=i.get(a)||m0,P=new p0(ef),Y=new _0(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:d,fromState:w,toState:P,player:Y,isFallbackTransition:!0})})}}removeNode(t,e){const i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let o=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(t):[];if(s&&s.length)o=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(t),o)i.markElementAsRemoved(this.id,t,!1,e);else{const s=t[No];(!s||s===UD)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){Yo(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const s=i.element,a=this._elementListeners.get(s);a&&a.forEach(l=>{if(l.name==i.triggerName){const d=Zy(s,i.triggerName,i.fromState.value,i.toState.value);d._data=t,qy(i.player,l.phase,d,l.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const s=i.transition.ast.depCount,a=o.transition.ast.depCount;return 0==s||0==a?s-a:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(i=>i.element===t)||e,e}}class LH{constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,s)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){const i=new TH(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,l=this.driver.getParentElement(e);for(;l;){const d=o.get(l);if(d){const w=i.indexOf(d);i.splice(w+1,0,t),a=!0;break}l=this.driver.getParentElement(l)}a||i.unshift(t)}else i.push(t);return o.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let o=this._namespaceLookup[t];o&&o.register(e,i)&&this.totalAnimations++}destroy(t,e){if(!t)return;const i=this._fetchNamespace(t);this.afterFlush(()=>{this.namespacesByHostElement.delete(i.hostElement),delete this._namespaceLookup[t];const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1)}),this.afterFlushAnimationsDone(()=>i.destroy(e))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,i=this.statesByElement.get(t);if(i)for(let o of i.values())if(o.namespaceId){const s=this._fetchNamespace(o.namespaceId);s&&e.add(s)}return e}trigger(t,e,i,o){if(v_(e)){const s=this._fetchNamespace(t);if(s)return s.trigger(e,i,o),!0}return!1}insertNode(t,e,i,o){if(!v_(e))return;const s=e[No];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(t){const a=this._fetchNamespace(t);a&&a.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Yo(t,f0)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Nd(t,f0))}removeNode(t,e,i,o){if(v_(e)){const s=t?this._fetchNamespace(t):null;if(s?s.removeNode(e,o):this.markElementAsRemoved(t,e,!1,o),i){const a=this.namespacesByHostElement.get(e);a&&a.id!==t&&a.removeNode(e,o)}}else this._onRemovalComplete(e,o)}markElementAsRemoved(t,e,i,o,s){this.collectedLeaveElements.push(e),e[No]={namespaceId:t,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(t,e,i,o,s){return v_(e)?this._fetchNamespace(t).listen(e,i,o,s):()=>{}}_buildInstruction(t,e,i,o,s){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,o,t.fromState.options,t.toState.options,e,s)}destroyInnerAnimations(t){let e=this.driver.query(t,l_,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,t0,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return Ua(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t[No];if(e&&e.setForRemoval){if(t[No]=UD,e.namespaceId){this.destroyInnerAnimations(t);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(f0)&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?Ua(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(t){throw function LB(n){return new Fe(3402,!1)}()}_flushAnimations(t,e){const i=new __,o=[],s=new Map,a=[],l=new Map,d=new Map,w=new Map,P=new Set;this.disabledNodes.forEach(mt=>{P.add(mt);const wt=this.driver.query(mt,".ng-animate-queued",!0);for(let Lt=0;Lt{const Lt=e0+ke++;pe.set(wt,Lt),mt.forEach(mn=>Yo(mn,Lt))});const Ie=[],Re=new Set,Xe=new Set;for(let mt=0;mtRe.add(mn)):Xe.add(wt))}const Ae=new Map,ct=GD(q,Array.from(Re));ct.forEach((mt,wt)=>{const Lt=s_+ke++;Ae.set(wt,Lt),mt.forEach(mn=>Yo(mn,Lt))}),t.push(()=>{te.forEach((mt,wt)=>{const Lt=pe.get(wt);mt.forEach(mn=>Nd(mn,Lt))}),ct.forEach((mt,wt)=>{const Lt=Ae.get(wt);mt.forEach(mn=>Nd(mn,Lt))}),Ie.forEach(mt=>{this.processLeaveNode(mt)})});const pn=[],wn=[];for(let mt=this._namespaceList.length-1;mt>=0;mt--)this._namespaceList[mt].drainQueuedTransitions(e).forEach(Lt=>{const mn=Lt.player,dr=Lt.element;if(pn.push(mn),this.collectedEnterElements.length){const Rr=dr[No];if(Rr&&Rr.setForMove){if(Rr.previousTriggersValues&&Rr.previousTriggersValues.has(Lt.triggerName)){const Pc=Rr.previousTriggersValues.get(Lt.triggerName),zo=this.statesByElement.get(Lt.element);if(zo&&zo.has(Lt.triggerName)){const Vg=zo.get(Lt.triggerName);Vg.value=Pc,zo.set(Lt.triggerName,Vg)}}return void mn.destroy()}}const Ys=!Y||!this.driver.containsElement(Y,dr),ko=Ae.get(dr),_l=pe.get(dr),yi=this._buildInstruction(Lt,i,_l,ko,Ys);if(yi.errors&&yi.errors.length)return void wn.push(yi);if(Ys)return mn.onStart(()=>Wl(dr,yi.fromStyles)),mn.onDestroy(()=>ks(dr,yi.toStyles)),void o.push(mn);if(Lt.isFallbackTransition)return mn.onStart(()=>Wl(dr,yi.fromStyles)),mn.onDestroy(()=>ks(dr,yi.toStyles)),void o.push(mn);const vP=[];yi.timelines.forEach(Rr=>{Rr.stretchStartingKeyframe=!0,this.disabledNodes.has(Rr.element)||vP.push(Rr)}),yi.timelines=vP,i.append(dr,yi.timelines),a.push({instruction:yi,player:mn,element:dr}),yi.queriedElements.forEach(Rr=>bo(l,Rr,[]).push(mn)),yi.preStyleProps.forEach((Rr,Pc)=>{if(Rr.size){let zo=d.get(Pc);zo||d.set(Pc,zo=new Set),Rr.forEach((Vg,lM)=>zo.add(lM))}}),yi.postStyleProps.forEach((Rr,Pc)=>{let zo=w.get(Pc);zo||w.set(Pc,zo=new Set),Rr.forEach((Vg,lM)=>zo.add(lM))})});if(wn.length){const mt=[];wn.forEach(wt=>{mt.push(function EB(n,t){return new Fe(3505,!1)}())}),pn.forEach(wt=>wt.destroy()),this.reportError(mt)}const Fr=new Map,ya=new Map;a.forEach(mt=>{const wt=mt.element;i.has(wt)&&(ya.set(wt,wt),this._beforeAnimationBuild(mt.player.namespaceId,mt.instruction,Fr))}),o.forEach(mt=>{const wt=mt.element;this._getPreviousPlayers(wt,!1,mt.namespaceId,mt.triggerName,null).forEach(mn=>{bo(Fr,wt,[]).push(mn),mn.destroy()})});const Ma=Ie.filter(mt=>KD(mt,d,w)),wa=new Map;$D(wa,this.driver,Xe,w,ra).forEach(mt=>{KD(mt,d,w)&&Ma.push(mt)});const vp=new Map;te.forEach((mt,wt)=>{$D(vp,this.driver,new Set(mt),d,"!")}),Ma.forEach(mt=>{const wt=wa.get(mt),Lt=vp.get(mt);wa.set(mt,new Map([...Array.from(wt?.entries()??[]),...Array.from(Lt?.entries()??[])]))});const Ic=[],gP=[],bP={};a.forEach(mt=>{const{element:wt,player:Lt,instruction:mn}=mt;if(i.has(wt)){if(P.has(wt))return Lt.onDestroy(()=>ks(wt,mn.toStyles)),Lt.disabled=!0,Lt.overrideTotalTime(mn.totalTime),void o.push(Lt);let dr=bP;if(ya.size>1){let ko=wt;const _l=[];for(;ko=ko.parentNode;){const yi=ya.get(ko);if(yi){dr=yi;break}_l.push(ko)}_l.forEach(yi=>ya.set(yi,dr))}const Ys=this._buildAnimation(Lt.namespaceId,mn,Fr,s,vp,wa);if(Lt.setRealPlayer(Ys),dr===bP)Ic.push(Lt);else{const ko=this.playersByElement.get(dr);ko&&ko.length&&(Lt.parentPlayer=Ua(ko)),o.push(Lt)}}else Wl(wt,mn.fromStyles),Lt.onDestroy(()=>ks(wt,mn.toStyles)),gP.push(Lt),P.has(wt)&&o.push(Lt)}),gP.forEach(mt=>{const wt=s.get(mt.element);if(wt&&wt.length){const Lt=Ua(wt);mt.setRealPlayer(Lt)}}),o.forEach(mt=>{mt.parentPlayer?mt.syncPlayerEvents(mt.parentPlayer):mt.destroy()});for(let mt=0;mt!Ys.destroyed);dr.length?OH(this,wt,dr):this.processLeaveNode(wt)}return Ie.length=0,Ic.forEach(mt=>{this.players.push(mt),mt.onDone(()=>{mt.destroy();const wt=this.players.indexOf(mt);this.players.splice(wt,1)}),mt.play()}),Ic}elementContainsData(t,e){let i=!1;const o=e[No];return o&&o.setForRemoval&&(i=!0),this.playersByElement.has(e)&&(i=!0),this.playersByQueriedElement.has(e)&&(i=!0),this.statesByElement.has(e)&&(i=!0),this._fetchNamespace(t).elementContainsData(e)||i}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,o,s){let a=[];if(e){const l=this.playersByQueriedElement.get(t);l&&(a=l)}else{const l=this.playersByElement.get(t);if(l){const d=!s||s==ef;l.forEach(w=>{w.queued||!d&&w.triggerName!=o||a.push(w)})}}return(i||o)&&(a=a.filter(l=>!(i&&i!=l.namespaceId||o&&o!=l.triggerName))),a}_beforeAnimationBuild(t,e,i){const s=e.element,a=e.isRemovalTransition?void 0:t,l=e.isRemovalTransition?void 0:e.triggerName;for(const d of e.timelines){const w=d.element,P=w!==s,Y=bo(i,w,[]);this._getPreviousPlayers(w,P,a,l,e.toState).forEach(te=>{const pe=te.getRealPlayer();pe.beforeDestroy&&pe.beforeDestroy(),te.destroy(),Y.push(te)})}Wl(s,e.fromStyles)}_buildAnimation(t,e,i,o,s,a){const l=e.triggerName,d=e.element,w=[],P=new Set,Y=new Set,q=e.timelines.map(pe=>{const ke=pe.element;P.add(ke);const Ie=ke[No];if(Ie&&Ie.removedBeforeQueried)return new Zh(pe.duration,pe.delay);const Re=ke!==d,Xe=function AH(n){const t=[];return qD(n,t),t}((i.get(ke)||SH).map(Fr=>Fr.getRealPlayer())).filter(Fr=>!!Fr.element&&Fr.element===ke),Ae=s.get(ke),ct=a.get(ke),pn=yD(0,this._normalizer,0,pe.keyframes,Ae,ct),wn=this._buildPlayer(pe,pn,Xe);if(pe.subTimeline&&o&&Y.add(ke),Re){const Fr=new _0(t,l,ke);Fr.setRealPlayer(wn),w.push(Fr)}return wn});w.forEach(pe=>{bo(this.playersByQueriedElement,pe.element,[]).push(pe),pe.onDone(()=>function EH(n,t,e){let i=n.get(t);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&n.delete(t)}return i}(this.playersByQueriedElement,pe.element,pe))}),P.forEach(pe=>Yo(pe,LD));const te=Ua(q);return te.onDestroy(()=>{P.forEach(pe=>Nd(pe,LD)),ks(d,e.toStyles)}),Y.forEach(pe=>{bo(o,pe,[]).push(te)}),te}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new Zh(t.duration,t.delay)}}class _0{constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i,this._player=new Zh,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>qy(t,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){const e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){bo(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){const e=this._player;e.triggerCallback&&e.triggerCallback(t)}}function v_(n){return n&&1===n.nodeType}function WD(n,t){const e=n.style.display;return n.style.display=t??"none",e}function $D(n,t,e,i,o){const s=[];e.forEach(d=>s.push(WD(d)));const a=[];i.forEach((d,w)=>{const P=new Map;d.forEach(Y=>{const q=t.computeStyle(w,Y,o);P.set(Y,q),(!q||0==q.length)&&(w[No]=DH,a.push(w))}),n.set(w,P)});let l=0;return e.forEach(d=>WD(d,s[l++])),a}function GD(n,t){const e=new Map;if(n.forEach(l=>e.set(l,[])),0==t.length)return e;const o=new Set(t),s=new Map;function a(l){if(!l)return 1;let d=s.get(l);if(d)return d;const w=l.parentNode;return d=e.has(w)?w:o.has(w)?1:a(w),s.set(l,d),d}return t.forEach(l=>{const d=a(l);1!==d&&e.get(d).push(l)}),e}function Yo(n,t){n.classList?.add(t)}function Nd(n,t){n.classList?.remove(t)}function OH(n,t,e){Ua(e).onDone(()=>n.processLeaveNode(t))}function qD(n,t){for(let e=0;eo.add(s)):t.set(n,i),e.delete(n),!0}class y_{constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,s)=>{},this._transitionEngine=new LH(t,e,i),this._timelineEngine=new MH(t,e,i),this._transitionEngine.onRemovalComplete=(o,s)=>this.onRemovalComplete(o,s)}registerTrigger(t,e,i,o,s){const a=t+"-"+o;let l=this._triggerCache[a];if(!l){const d=[],P=s0(this._driver,s,d,[]);if(d.length)throw function vB(n,t){return new Fe(3404,!1)}();l=function gH(n,t,e){return new bH(n,t,e)}(o,P,this._normalizer),this._triggerCache[a]=l}this._transitionEngine.registerTrigger(e,o,l)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,o){this._transitionEngine.insertNode(t,e,i,o)}onRemove(t,e,i,o){this._transitionEngine.removeNode(t,e,o||!1,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,o){if("@"==i.charAt(0)){const[s,a]=MD(i);this._timelineEngine.command(s,e,a,o)}else this._transitionEngine.trigger(t,e,i,o)}listen(t,e,i,o,s){if("@"==i.charAt(0)){const[a,l]=MD(i);return this._timelineEngine.listen(a,e,l,s)}return this._transitionEngine.listen(t,e,i,o,s)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}let NH=(()=>{class n{constructor(e,i,o){this._element=e,this._startStyles=i,this._endStyles=o,this._state=0;let s=n.initialStylesByElement.get(e);s||n.initialStylesByElement.set(e,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&ks(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(ks(this._element,this._initialStyles),this._endStyles&&(ks(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(Wl(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Wl(this._element,this._endStyles),this._endStyles=null),ks(this._element,this._initialStyles),this._state=3)}}return n.initialStylesByElement=new WeakMap,n})();function g0(n){let t=null;return n.forEach((e,i)=>{(function YH(n){return"display"===n||"position"===n})(i)&&(t=t||new Map,t.set(i,e))}),t}class ZD{constructor(t,e,i,o){this.element=t,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:new Map,this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(t){const e=[];return t.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(t,e,i){return t.animate(this._convertKeyframesToObject(e),i)}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&t.set(o,this._finished?i:FD(this.element,o))}),this.currentSnapshot=t}triggerCallback(t){const e="start"===t?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class BH{validateStyleProperty(t){return!0}validateAnimatableStyleProperty(t){return!0}matchesElement(t,e){return!1}containsElement(t,e){return kD(t,e)}getParentElement(t){return Qy(t)}query(t,e,i){return SD(t,e,i)}computeStyle(t,e,i){return window.getComputedStyle(t)[e]}animate(t,e,i,o,s,a=[]){const d={duration:i,delay:o,fill:0==o?"both":"forwards"};s&&(d.easing=s);const w=new Map,P=a.filter(te=>te instanceof ZD);(function zB(n,t){return 0===n||0===t})(i,o)&&P.forEach(te=>{te.currentSnapshot.forEach((pe,ke)=>w.set(ke,pe))});let Y=function BB(n){return n.length?n[0]instanceof Map?n:n.map(t=>ED(t)):[]}(e).map(te=>Wa(te));Y=function UB(n,t,e){if(e.size&&t.length){let i=t[0],o=[];if(e.forEach((s,a)=>{i.has(a)||o.push(a),i.set(a,s)}),o.length)for(let s=1;sa.set(l,FD(n,l)))}}return t}(t,Y,w);const q=function RH(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=g0(t[0]),t.length>1&&(i=g0(t[t.length-1]))):t instanceof Map&&(e=g0(t)),e||i?new NH(n,e,i):null}(t,Y);return new ZD(t,Y,d,q)}}let HH=(()=>{class n extends pD{constructor(e,i){super(),this._nextAnimationId=0,this._renderer=e.createRenderer(i.body,{id:"0",encapsulation:Nr.None,styles:[],data:{animation:[]}})}build(e){const i=this._nextAnimationId.toString();this._nextAnimationId++;const o=Array.isArray(e)?_D(e):e;return XD(this._renderer,null,i,"register",[o]),new VH(i,this._renderer)}}return n.\u0275fac=function(e){return new(e||n)(we(kh),we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class VH extends XY{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new jH(this._id,t,e||{},this._renderer)}}class jH{constructor(t,e,i,o){this.id=t,this.element=e,this._renderer=o,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return XD(this._renderer,this.element,this.id,t,e)}onDone(t){this._listen("done",t)}onStart(t){this._listen("start",t)}onDestroy(t){this._listen("destroy",t)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(t){this._command("setPosition",t)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function XD(n,t,e,i,o){return n.setProperty(t,`@@${e}:${i}`,o)}const QD="@.disabled";let zH=(()=>{class n{constructor(e,i,o){this.delegate=e,this.engine=i,this._zone=o,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),i.onRemovalComplete=(s,a)=>{const l=a?.parentNode(s);l&&a.removeChild(l,s)}}createRenderer(e,i){const s=this.delegate.createRenderer(e,i);if(!(e&&i&&i.data&&i.data.animation)){let P=this._rendererCache.get(s);return P||(P=new JD("",s,this.engine,()=>this._rendererCache.delete(s)),this._rendererCache.set(s,P)),P}const a=i.id,l=i.id+"-"+this._currentId;this._currentId++,this.engine.register(l,e);const d=P=>{Array.isArray(P)?P.forEach(d):this.engine.registerTrigger(a,l,e,P.name,P)};return i.data.animation.forEach(d),new UH(this,l,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(e,i,o){e>=0&&ei(o)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[a,l]=s;a(l)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([i,o]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return n.\u0275fac=function(e){return new(e||n)(we(kh),we(y_),we(pt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class JD{constructor(t,e,i,o){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=o,this.destroyNode=this.delegate.destroyNode?s=>e.destroyNode(s):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy(),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,o=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,o)}removeChild(t,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate,i)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,o){this.delegate.setAttribute(t,e,i,o)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,o){this.delegate.setStyle(t,e,i,o)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){"@"==e.charAt(0)&&e==QD?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i){return this.delegate.listen(t,e,i)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class UH extends JD{constructor(t,e,i,o,s){super(e,i,o,s),this.factory=t,this.namespaceId=e}setProperty(t,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==QD?this.disableAnimations(t,i=void 0===i||!!i):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i){if("@"==e.charAt(0)){const o=function WH(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}(t);let s=e.slice(1),a="";return"@"!=s.charAt(0)&&([s,a]=function $H(n){const t=n.indexOf(".");return[n.substring(0,t),n.slice(t+1)]}(s)),this.engine.listen(this.namespaceId,o,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(t,e,i)}}let GH=(()=>{class n extends y_{constructor(e,i,o,s){super(e.body,i,o)}ngOnDestroy(){this.flush()}}return n.\u0275fac=function(e){return new(e||n)(we(Dt),we(Jy),we(u0),we(Ad))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const eT=[{provide:pD,useClass:HH},{provide:u0,useFactory:function qH(){return new fH}},{provide:y_,useClass:GH},{provide:kh,useFactory:function KH(n,t,e){return new zH(n,t,e)},deps:[o_,y_,pt]}],b0=[{provide:Jy,useFactory:()=>new BH},{provide:zi,useValue:"BrowserAnimations"},...eT],tT=[{provide:Jy,useClass:DD},{provide:zi,useValue:"NoopAnimations"},...eT];let ZH=(()=>{class n{static withConfig(e){return{ngModule:n,providers:e.disableAnimations?tT:b0}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:b0,imports:[cD]}),n})();function Ge(...n){let t=n[n.length-1];return Se(t)?(n.pop(),W(n,t)):Pn(n)}function $a(n,t){return Ne(n,t,1)}function Si(n,t){return function(i){return i.lift(new XH(n,t))}}class XH{constructor(t,e){this.predicate=t,this.thisArg=e}call(t,e){return e.subscribe(new QH(t,this.predicate,this.thisArg))}}class QH extends A{constructor(t,e,i){super(t),this.predicate=e,this.thisArg=i,this.count=0}_next(t){let e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(i){return void this.destination.error(i)}e&&this.destination.next(t)}}class w_{}class v0{}class Ss{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),s=o.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(o,s),this.headers.has(s)?this.headers.get(s).push(a):this.headers.set(s,[a])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let i=t[e];const o=e.toLowerCase();"string"==typeof i&&(i=[i]),i.length>0&&(this.headers.set(o,i),this.maybeSetNormalizedName(e,o))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof Ss?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){const e=new Ss;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof Ss?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){const e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(t.name,e);const o=("a"===t.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const s=t.value;if(s){let a=this.headers.get(e);if(!a)return;a=a.filter(l=>-1===s.indexOf(l)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}}class JH{encodeKey(t){return nT(t)}encodeValue(t){return nT(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const tV=/%(\d[a-f0-9])/gi,nV={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function nT(n){return encodeURIComponent(n).replace(tV,(t,e)=>nV[e]??t)}function x_(n){return`${n}`}class Ga{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new JH,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function eV(n,t){const e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(o=>{const s=o.indexOf("="),[a,l]=-1==s?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,s)),t.decodeValue(o.slice(s+1))],d=e.get(a)||[];d.push(l),e.set(a,d)}),e}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const i=t.fromObject[e],o=Array.isArray(i)?i.map(x_):[x_(i)];this.map.set(e,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){const e=[];return Object.keys(t).forEach(i=>{const o=t[i];Array.isArray(o)?o.forEach(s=>{e.push({param:i,value:s,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const e=new Ga({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const e=("a"===t.op?this.map.get(t.param):void 0)||[];e.push(x_(t.value)),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let i=this.map.get(t.param)||[];const o=i.indexOf(x_(t.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class iV{constructor(){this.map=new Map}set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function iT(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function rT(n){return typeof Blob<"u"&&n instanceof Blob}function oT(n){return typeof FormData<"u"&&n instanceof FormData}class tf{constructor(t,e,i,o){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function rV(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,s=o):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params)),this.headers||(this.headers=new Ss),this.context||(this.context=new iV),this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const l=e.indexOf("?");this.urlWithParams=e+(-1===l?"?":lY.set(q,t.setHeaders[q]),d)),t.setParams&&(w=Object.keys(t.setParams).reduce((Y,q)=>Y.set(q,t.setParams[q]),w)),new tf(e,i,s,{params:w,headers:d,context:P,reportProgress:l,responseType:o,withCredentials:a})}}var $i=(()=>(($i=$i||{})[$i.Sent=0]="Sent",$i[$i.UploadProgress=1]="UploadProgress",$i[$i.ResponseHeader=2]="ResponseHeader",$i[$i.DownloadProgress=3]="DownloadProgress",$i[$i.Response=4]="Response",$i[$i.User=5]="User",$i))();class y0{constructor(t,e=200,i="OK"){this.headers=t.headers||new Ss,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class M0 extends y0{constructor(t={}){super(t),this.type=$i.ResponseHeader}clone(t={}){return new M0({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class C_ extends y0{constructor(t={}){super(t),this.type=$i.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new C_({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class sT extends y0{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function w0(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials}}let Gl=(()=>{class n{constructor(e){this.handler=e}request(e,i,o={}){let s;if(e instanceof tf)s=e;else{let d,w;d=o.headers instanceof Ss?o.headers:new Ss(o.headers),o.params&&(w=o.params instanceof Ga?o.params:new Ga({fromObject:o.params})),s=new tf(e,i,void 0!==o.body?o.body:null,{headers:d,context:o.context,params:w,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials})}const a=Ge(s).pipe($a(d=>this.handler.handle(d)));if(e instanceof tf||"events"===o.observe)return a;const l=a.pipe(Si(d=>d instanceof C_));switch(o.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(Ce(d=>{if(null!==d.body&&!(d.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return d.body}));case"blob":return l.pipe(Ce(d=>{if(null!==d.body&&!(d.body instanceof Blob))throw new Error("Response is not a Blob.");return d.body}));case"text":return l.pipe(Ce(d=>{if(null!==d.body&&"string"!=typeof d.body)throw new Error("Response is not a string.");return d.body}));default:return l.pipe(Ce(d=>d.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new Ga).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,w0(o,i))}post(e,i,o={}){return this.request("POST",e,w0(o,i))}put(e,i,o={}){return this.request("PUT",e,w0(o,i))}}return n.\u0275fac=function(e){return new(e||n)(we(w_))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function aT(n,t){return t(n)}function sV(n,t){return(e,i)=>t.intercept(e,{handle:o=>n(o,i)})}const lV=new He("HTTP_INTERCEPTORS"),nf=new He("HTTP_INTERCEPTOR_FNS");function cV(){let n=null;return(t,e)=>(null===n&&(n=(Et(lV,{optional:!0})??[]).reduceRight(sV,aT)),n(t,e))}let lT=(()=>{class n extends w_{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null}handle(e){if(null===this.chain){const i=Array.from(new Set(this.injector.get(nf)));this.chain=i.reduceRight((o,s)=>function aV(n,t,e){return(i,o)=>e.runInContext(()=>t(i,s=>n(s,o)))}(o,s,this.injector),aT)}return this.chain(e,i=>this.backend.handle(i))}}return n.\u0275fac=function(e){return new(e||n)(we(v0),we(bs))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const fV=/^\)\]\}',?\n/;let dT=(()=>{class n{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new de(i=>{const o=this.xhrFactory.build();if(o.open(e.method,e.urlWithParams),e.withCredentials&&(o.withCredentials=!0),e.headers.forEach((te,pe)=>o.setRequestHeader(te,pe.join(","))),e.headers.has("Accept")||o.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const te=e.detectContentTypeHeader();null!==te&&o.setRequestHeader("Content-Type",te)}if(e.responseType){const te=e.responseType.toLowerCase();o.responseType="json"!==te?te:"text"}const s=e.serializeBody();let a=null;const l=()=>{if(null!==a)return a;const te=o.statusText||"OK",pe=new Ss(o.getAllResponseHeaders()),ke=function pV(n){return"responseURL"in n&&n.responseURL?n.responseURL:/^X-Request-URL:/m.test(n.getAllResponseHeaders())?n.getResponseHeader("X-Request-URL"):null}(o)||e.url;return a=new M0({headers:pe,status:o.status,statusText:te,url:ke}),a},d=()=>{let{headers:te,status:pe,statusText:ke,url:Ie}=l(),Re=null;204!==pe&&(Re=typeof o.response>"u"?o.responseText:o.response),0===pe&&(pe=Re?200:0);let Xe=pe>=200&&pe<300;if("json"===e.responseType&&"string"==typeof Re){const Ae=Re;Re=Re.replace(fV,"");try{Re=""!==Re?JSON.parse(Re):null}catch(ct){Re=Ae,Xe&&(Xe=!1,Re={error:ct,text:Re})}}Xe?(i.next(new C_({body:Re,headers:te,status:pe,statusText:ke,url:Ie||void 0})),i.complete()):i.error(new sT({error:Re,headers:te,status:pe,statusText:ke,url:Ie||void 0}))},w=te=>{const{url:pe}=l(),ke=new sT({error:te,status:o.status||0,statusText:o.statusText||"Unknown Error",url:pe||void 0});i.error(ke)};let P=!1;const Y=te=>{P||(i.next(l()),P=!0);let pe={type:$i.DownloadProgress,loaded:te.loaded};te.lengthComputable&&(pe.total=te.total),"text"===e.responseType&&!!o.responseText&&(pe.partialText=o.responseText),i.next(pe)},q=te=>{let pe={type:$i.UploadProgress,loaded:te.loaded};te.lengthComputable&&(pe.total=te.total),i.next(pe)};return o.addEventListener("load",d),o.addEventListener("error",w),o.addEventListener("timeout",w),o.addEventListener("abort",w),e.reportProgress&&(o.addEventListener("progress",Y),null!==s&&o.upload&&o.upload.addEventListener("progress",q)),o.send(s),i.next({type:$i.Sent}),()=>{o.removeEventListener("error",w),o.removeEventListener("abort",w),o.removeEventListener("load",d),o.removeEventListener("timeout",w),e.reportProgress&&(o.removeEventListener("progress",Y),null!==s&&o.upload&&o.upload.removeEventListener("progress",q)),o.readyState!==o.DONE&&o.abort()}})}}return n.\u0275fac=function(e){return new(e||n)(we(jS))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();const x0=new He("XSRF_ENABLED"),uT="XSRF-TOKEN",hT=new He("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>uT}),fT="X-XSRF-TOKEN",pT=new He("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>fT});class mT{}let mV=(()=>{class n{constructor(e,i,o){this.doc=e,this.platform=i,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=IS(e,this.cookieName),this.lastCookieString=e),this.lastToken}}return n.\u0275fac=function(e){return new(e||n)(we(Dt),we(Vm),we(hT))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function _V(n,t){const e=n.url.toLowerCase();if(!Et(x0)||"GET"===n.method||"HEAD"===n.method||e.startsWith("http://")||e.startsWith("https://"))return t(n);const i=Et(mT).getToken(),o=Et(pT);return null!=i&&!n.headers.has(o)&&(n=n.clone({headers:n.headers.set(o,i)})),t(n)}var Fi=(()=>((Fi=Fi||{})[Fi.Interceptors=0]="Interceptors",Fi[Fi.LegacyInterceptors=1]="LegacyInterceptors",Fi[Fi.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",Fi[Fi.NoXsrfProtection=3]="NoXsrfProtection",Fi[Fi.JsonpSupport=4]="JsonpSupport",Fi[Fi.RequestsMadeViaParent=5]="RequestsMadeViaParent",Fi))();function Yd(n,t){return{\u0275kind:n,\u0275providers:t}}function gV(...n){const t=[Gl,dT,lT,{provide:w_,useExisting:lT},{provide:v0,useExisting:dT},{provide:nf,useValue:_V,multi:!0},{provide:x0,useValue:!0},{provide:mT,useClass:mV}];for(const e of n)t.push(...e.\u0275providers);return function XO(n){return{\u0275providers:n}}(t)}const _T=new He("LEGACY_INTERCEPTOR_FN");function vV({cookieName:n,headerName:t}){const e=[];return void 0!==n&&e.push({provide:hT,useValue:n}),void 0!==t&&e.push({provide:pT,useValue:t}),Yd(Fi.CustomXsrfConfiguration,e)}let yV=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[gV(Yd(Fi.LegacyInterceptors,[{provide:_T,useFactory:cV},{provide:nf,useExisting:_T,multi:!0}]),vV({cookieName:uT,headerName:fT}))]}),n})();class Ir extends X{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const e=super._subscribe(t);return e&&!e.closed&&t.next(this._value),e}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new ee;return this._value}next(t){super.next(this._value=t)}}const k_=(()=>{function n(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return n.prototype=Object.create(Error.prototype),n})();class MV extends A{notifyNext(t,e,i,o,s){this.destination.next(e)}notifyError(t,e){this.destination.error(t)}notifyComplete(t){this.destination.complete()}}class wV extends A{constructor(t,e,i){super(),this.parent=t,this.outerValue=e,this.outerIndex=i,this.index=0}_next(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)}_error(t){this.parent.notifyError(t,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}function xV(n,t,e,i,o=new wV(n,e,i)){if(!o.closed)return t instanceof de?t.subscribe(o):Ii(t)(o)}const gT={};function C0(...n){let t,e;return Se(n[n.length-1])&&(e=n.pop()),"function"==typeof n[n.length-1]&&(t=n.pop()),1===n.length&&y(n[0])&&(n=n[0]),Pn(n,e).lift(new CV(t))}class CV{constructor(t){this.resultSelector=t}call(t,e){return e.subscribe(new kV(t,this.resultSelector))}}class kV extends MV{constructor(t,e){super(t),this.resultSelector=e,this.active=0,this.values=[],this.observables=[]}_next(t){this.values.push(gT),this.observables.push(t)}_complete(){const t=this.observables,e=t.length;if(0===e)this.destination.complete();else{this.active=e,this.toRespond=e;for(let i=0;in.complete());function S_(n){return n?function DV(n){return new de(t=>n.schedule(()=>t.complete()))}(n):qa}function rf(n){return new de(t=>{let e;try{e=n()}catch(o){return void t.error(o)}return(e?ue(e):S_()).subscribe(t)})}function Pr(n,t){return new de(t?e=>t.schedule(TV,0,{error:n,subscriber:e}):e=>e.error(n))}function TV({error:n,subscriber:t}){t.error(n)}function br(n,t){return"function"==typeof t?e=>e.pipe(br((i,o)=>ue(n(i,o)).pipe(Ce((s,a)=>t(i,s,o,a))))):e=>e.lift(new LV(n))}class LV{constructor(t){this.project=t}call(t,e){return e.subscribe(new EV(t,this.project))}}class EV extends Me{constructor(t,e){super(t),this.project=e,this.index=0}_next(t){let e;const i=this.index++;try{e=this.project(t,i)}catch(o){return void this.destination.error(o)}this._innerSub(e)}_innerSub(t){const e=this.innerSubscription;e&&e.unsubscribe();const i=new be(this),o=this.destination;o.add(i),this.innerSubscription=Ee(t,i),this.innerSubscription!==i&&o.add(this.innerSubscription)}_complete(){const{innerSubscription:t}=this;(!t||t.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(t){this.destination.next(t)}}const bT=(()=>{function n(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return n.prototype=Object.create(Error.prototype),n})();function ti(n){return t=>0===n?S_():t.lift(new IV(n))}class IV{constructor(t){if(this.total=t,this.total<0)throw new bT}call(t,e){return e.subscribe(new PV(t,this.total))}}class PV extends A{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){const e=this.total,i=++this.count;i<=e&&(this.destination.next(t),i===e&&(this.destination.complete(),this.unsubscribe()))}}function yo(...n){const t=n[n.length-1];return Se(t)?(n.pop(),e=>ql(n,e,t)):e=>ql(n,e)}function sf(n=null){return t=>t.lift(new OV(n))}class OV{constructor(t){this.defaultValue=t}call(t,e){return e.subscribe(new AV(t,this.defaultValue))}}class AV extends A{constructor(t,e){super(t),this.defaultValue=e,this.isEmpty=!0}_next(t){this.isEmpty=!1,this.destination.next(t)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}function vT(n=NV){return t=>t.lift(new FV(n))}class FV{constructor(t){this.errorFactory=t}call(t,e){return e.subscribe(new RV(t,this.errorFactory))}}class RV extends A{constructor(t,e){super(t),this.errorFactory=e,this.hasValue=!1}_next(t){this.hasValue=!0,this.destination.next(t)}_complete(){if(this.hasValue)return this.destination.complete();{let t;try{t=this.errorFactory()}catch(e){t=e}this.destination.error(t)}}}function NV(){return new k_}function Ka(n,t){const e=arguments.length>=2;return i=>i.pipe(n?Si((o,s)=>n(o,s,i)):ve,ti(1),e?sf(t):vT(()=>new k_))}function Za(){}function hi(n,t,e){return function(o){return o.lift(new YV(n,t,e))}}class YV{constructor(t,e,i){this.nextOrObserver=t,this.error=e,this.complete=i}call(t,e){return e.subscribe(new BV(t,this.nextOrObserver,this.error,this.complete))}}class BV extends A{constructor(t,e,i,o){super(t),this._tapNext=Za,this._tapError=Za,this._tapComplete=Za,this._tapError=i||Za,this._tapComplete=o||Za,O(e)?(this._context=this,this._tapNext=e):e&&(this._context=e,this._tapNext=e.next||Za,this._tapError=e.error||Za,this._tapComplete=e.complete||Za)}_next(t){try{this._tapNext.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.next(t)}_error(t){try{this._tapError.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.error(t)}_complete(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()}}function no(n){return function(e){const i=new HV(n),o=e.lift(i);return i.caught=o}}class HV{constructor(t){this.selector=t}call(t,e){return e.subscribe(new VV(t,this.selector,this.caught))}}class VV extends Me{constructor(t,e,i){super(t),this.selector=e,this.caught=i}error(t){if(!this.isStopped){let e;try{e=this.selector(t,this.caught)}catch(s){return void super.error(s)}this._unsubscribeAndRecycle();const i=new be(this);this.add(i);const o=Ee(e,i);o!==i&&this.add(o)}}}function D_(n,t){let e=!1;return arguments.length>=2&&(e=!0),function(o){return o.lift(new jV(n,t,e))}}class jV{constructor(t,e,i=!1){this.accumulator=t,this.seed=e,this.hasSeed=i}call(t,e){return e.subscribe(new zV(t,this.accumulator,this.seed,this.hasSeed))}}class zV extends A{constructor(t,e,i,o){super(t),this.accumulator=e,this._seed=i,this.hasSeed=o,this.index=0}get seed(){return this._seed}set seed(t){this.hasSeed=!0,this._seed=t}_next(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)}_tryNext(t){const e=this.index++;let i;try{i=this.accumulator(this.seed,t,e)}catch(o){this.destination.error(o)}this.seed=i,this.destination.next(i)}}function af(n){return function(e){return 0===n?S_():e.lift(new UV(n))}}class UV{constructor(t){if(this.total=t,this.total<0)throw new bT}call(t,e){return e.subscribe(new WV(t,this.total))}}class WV extends A{constructor(t,e){super(t),this.total=e,this.ring=new Array,this.count=0}_next(t){const e=this.ring,i=this.total,o=this.count++;e.length0){const i=this.count>=this.total?this.total:this.count,o=this.ring;for(let s=0;s=2;return i=>i.pipe(n?Si((o,s)=>n(o,s,i)):ve,af(1),e?sf(t):vT(()=>new k_))}function MT(n,t=!1){return e=>e.lift(new $V(n,t))}class $V{constructor(t,e){this.predicate=t,this.inclusive=e}call(t,e){return e.subscribe(new GV(t,this.predicate,this.inclusive))}}class GV extends A{constructor(t,e,i){super(t),this.predicate=e,this.inclusive=i,this.index=0}_next(t){const e=this.destination;let i;try{i=this.predicate(t,this.index++)}catch(o){return void e.error(o)}this.nextOrComplete(t,i)}nextOrComplete(t,e){const i=this.destination;Boolean(e)?i.next(t):(this.inclusive&&i.next(t),i.complete())}}class KV{constructor(t){this.value=t}call(t,e){return e.subscribe(new ZV(t,this.value))}}class ZV extends A{constructor(t,e){super(t),this.value=e}_next(t){this.destination.next(this.value)}}function T_(n){return t=>t.lift(new XV(n))}class XV{constructor(t){this.callback=t}call(t,e){return e.subscribe(new QV(t,this.callback))}}class QV extends A{constructor(t,e){super(t),this.add(new T(e))}}const $t="primary",lf=Symbol("RouteTitle");class JV{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){const e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function Bd(n){return new JV(n)}function e8(n,t,e){const i=e.path.split("/");if(i.length>n.length||"full"===e.pathMatch&&(t.hasChildren()||i.lengthi[s]===o)}return n===t}function xT(n){return Array.prototype.concat.apply([],n)}function CT(n){return n.length>0?n[n.length-1]:null}function vr(n,t){for(const e in n)n.hasOwnProperty(e)&&t(n[e],e)}function Xa(n){return Iv(n)?n:Ih(n)?ue(Promise.resolve(n)):Ge(n)}const L_=!1,n8={exact:function DT(n,t,e){if(!Zl(n.segments,t.segments)||!E_(n.segments,t.segments,e)||n.numberOfChildren!==t.numberOfChildren)return!1;for(const i in t.children)if(!n.children[i]||!DT(n.children[i],t.children[i],e))return!1;return!0},subset:TT},kT={exact:function i8(n,t){return Ds(n,t)},subset:function r8(n,t){return Object.keys(t).length<=Object.keys(n).length&&Object.keys(t).every(e=>wT(n[e],t[e]))},ignored:()=>!0};function ST(n,t,e){return n8[e.paths](n.root,t.root,e.matrixParams)&&kT[e.queryParams](n.queryParams,t.queryParams)&&!("exact"===e.fragment&&n.fragment!==t.fragment)}function TT(n,t,e){return LT(n,t,t.segments,e)}function LT(n,t,e,i){if(n.segments.length>e.length){const o=n.segments.slice(0,e.length);return!(!Zl(o,e)||t.hasChildren()||!E_(o,e,i))}if(n.segments.length===e.length){if(!Zl(n.segments,e)||!E_(n.segments,e,i))return!1;for(const o in t.children)if(!n.children[o]||!TT(n.children[o],t.children[o],i))return!1;return!0}{const o=e.slice(0,n.segments.length),s=e.slice(n.segments.length);return!!(Zl(n.segments,o)&&E_(n.segments,o,i)&&n.children[$t])&<(n.children[$t],t,s,i)}}function E_(n,t,e){return t.every((i,o)=>kT[e](n[o].parameters,i.parameters))}class Kl{constructor(t=new qt([],{}),e={},i=null){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Bd(this.queryParams)),this._queryParamMap}toString(){return a8.serialize(this)}}class qt{constructor(t,e){this.segments=t,this.children=e,this.parent=null,vr(e,(i,o)=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return I_(this)}}class cf{constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=Bd(this.parameters)),this._parameterMap}toString(){return PT(this)}}function Zl(n,t){return n.length===t.length&&n.every((e,i)=>e.path===t[i].path)}let df=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return new k0},providedIn:"root"}),n})();class k0{parse(t){const e=new _8(t);return new Kl(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){const e=`/${uf(t.root,!0)}`,i=function d8(n){const t=Object.keys(n).map(e=>{const i=n[e];return Array.isArray(i)?i.map(o=>`${P_(e)}=${P_(o)}`).join("&"):`${P_(e)}=${P_(i)}`}).filter(e=>!!e);return t.length?`?${t.join("&")}`:""}(t.queryParams),o="string"==typeof t.fragment?`#${function l8(n){return encodeURI(n)}(t.fragment)}`:"";return`${e}${i}${o}`}}const a8=new k0;function I_(n){return n.segments.map(t=>PT(t)).join("/")}function uf(n,t){if(!n.hasChildren())return I_(n);if(t){const e=n.children[$t]?uf(n.children[$t],!1):"",i=[];return vr(n.children,(o,s)=>{s!==$t&&i.push(`${s}:${uf(o,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function s8(n,t){let e=[];return vr(n.children,(i,o)=>{o===$t&&(e=e.concat(t(i,o)))}),vr(n.children,(i,o)=>{o!==$t&&(e=e.concat(t(i,o)))}),e}(n,(i,o)=>o===$t?[uf(n.children[$t],!1)]:[`${o}:${uf(i,!1)}`]);return 1===Object.keys(n.children).length&&null!=n.children[$t]?`${I_(n)}/${e[0]}`:`${I_(n)}/(${e.join("//")})`}}function ET(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function P_(n){return ET(n).replace(/%3B/gi,";")}function S0(n){return ET(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function O_(n){return decodeURIComponent(n)}function IT(n){return O_(n.replace(/\+/g,"%20"))}function PT(n){return`${S0(n.path)}${function c8(n){return Object.keys(n).map(t=>`;${S0(t)}=${S0(n[t])}`).join("")}(n.parameters)}`}const u8=/^[^\/()?;=#]+/;function A_(n){const t=n.match(u8);return t?t[0]:""}const h8=/^[^=?&#]+/,p8=/^[^&#]+/;class _8{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new qt([],{}):new qt([],this.parseChildren())}parseQueryParams(){const t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(i[$t]=new qt(t,e)),i}parseSegment(){const t=A_(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Fe(4009,L_);return this.capture(t),new cf(O_(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const e=A_(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=A_(this.remaining);o&&(i=o,this.capture(i))}t[O_(e)]=O_(i)}parseQueryParam(t){const e=function f8(n){const t=n.match(h8);return t?t[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const a=function m8(n){const t=n.match(p8);return t?t[0]:""}(this.remaining);a&&(i=a,this.capture(i))}const o=IT(e),s=IT(i);if(t.hasOwnProperty(o)){let a=t[o];Array.isArray(a)||(a=[a],t[o]=a),a.push(s)}else t[o]=s}parseParens(t){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=A_(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new Fe(4010,L_);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):t&&(s=$t);const a=this.parseChildren();e[s]=1===Object.keys(a).length?a[$t]:new qt([],a),this.consumeOptional("//")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)}capture(t){if(!this.consumeOptional(t))throw new Fe(4011,L_)}}function D0(n){return n.segments.length>0?new qt([],{[$t]:n}):n}function F_(n){const t={};for(const i of Object.keys(n.children)){const s=F_(n.children[i]);(s.segments.length>0||s.hasChildren())&&(t[i]=s)}return function g8(n){if(1===n.numberOfChildren&&n.children[$t]){const t=n.children[$t];return new qt(n.segments.concat(t.segments),t.children)}return n}(new qt(n.segments,t))}function Xl(n){return n instanceof Kl}function y8(n,t,e,i,o){if(0===e.length)return Hd(t.root,t.root,t.root,i,o);const s=function FT(n){if("string"==typeof n[0]&&1===n.length&&"/"===n[0])return new AT(!0,0,n);let t=0,e=!1;const i=n.reduce((o,s,a)=>{if("object"==typeof s&&null!=s){if(s.outlets){const l={};return vr(s.outlets,(d,w)=>{l[w]="string"==typeof d?d.split("/"):d}),[...o,{outlets:l}]}if(s.segmentPath)return[...o,s.segmentPath]}return"string"!=typeof s?[...o,s]:0===a?(s.split("/").forEach((l,d)=>{0==d&&"."===l||(0==d&&""===l?e=!0:".."===l?t++:""!=l&&o.push(l))}),o):[...o,s]},[]);return new AT(e,t,i)}(e);return s.toRoot()?Hd(t.root,t.root,new qt([],{}),i,o):function a(d){const w=function w8(n,t,e,i){if(n.isAbsolute)return new Vd(t.root,!0,0);if(-1===i)return new Vd(e,e===t.root,0);return function RT(n,t,e){let i=n,o=t,s=e;for(;s>o;){if(s-=o,i=i.parent,!i)throw new Fe(4005,!1);o=i.segments.length}return new Vd(i,!1,o-s)}(e,i+(hf(n.commands[0])?0:1),n.numberOfDoubleDots)}(s,t,n.snapshot?._urlSegment,d),P=w.processChildren?pf(w.segmentGroup,w.index,s.commands):L0(w.segmentGroup,w.index,s.commands);return Hd(t.root,w.segmentGroup,P,i,o)}(n.snapshot?._lastPathIndex)}function hf(n){return"object"==typeof n&&null!=n&&!n.outlets&&!n.segmentPath}function ff(n){return"object"==typeof n&&null!=n&&n.outlets}function Hd(n,t,e,i,o){let a,s={};i&&vr(i,(d,w)=>{s[w]=Array.isArray(d)?d.map(P=>`${P}`):`${d}`}),a=n===t?e:OT(n,t,e);const l=D0(F_(a));return new Kl(l,s,o)}function OT(n,t,e){const i={};return vr(n.children,(o,s)=>{i[s]=o===t?e:OT(o,t,e)}),new qt(n.segments,i)}class AT{constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&hf(i[0]))throw new Fe(4003,!1);const o=i.find(ff);if(o&&o!==CT(i))throw new Fe(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Vd{constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}}function L0(n,t,e){if(n||(n=new qt([],{})),0===n.segments.length&&n.hasChildren())return pf(n,t,e);const i=function C8(n,t,e){let i=0,o=t;const s={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return s;const a=n.segments[o],l=e[i];if(ff(l))break;const d=`${l}`,w=i0&&void 0===d)break;if(d&&w&&"object"==typeof w&&void 0===w.outlets){if(!YT(d,w,a))return s;i+=2}else{if(!YT(d,{},a))return s;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(n,t,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndex{"string"==typeof s&&(s=[s]),null!==s&&(o[a]=L0(n.children[a],t,s))}),vr(n.children,(s,a)=>{void 0===i[a]&&(o[a]=s)}),new qt(n.segments,o)}}function E0(n,t,e){const i=n.segments.slice(0,t);let o=0;for(;o{"string"==typeof e&&(e=[e]),null!==e&&(t[i]=E0(new qt([],{}),0,e))}),t}function NT(n){const t={};return vr(n,(e,i)=>t[i]=`${e}`),t}function YT(n,t,e){return n==e.path&&Ds(t,e.parameters)}class aa{constructor(t,e){this.id=t,this.url=e}}class I0 extends aa{constructor(t,e,i="imperative",o=null){super(t,e),this.type=0,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Qa extends aa{constructor(t,e,i){super(t,e),this.urlAfterRedirects=i,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class R_ extends aa{constructor(t,e,i,o){super(t,e),this.reason=i,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class BT extends aa{constructor(t,e,i,o){super(t,e),this.error=i,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class S8 extends aa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class D8 extends aa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class T8 extends aa{constructor(t,e,i,o,s){super(t,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=s,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class L8 extends aa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class E8 extends aa{constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class I8{constructor(t){this.route=t,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class P8{constructor(t){this.route=t,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class O8{constructor(t){this.snapshot=t,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class A8{constructor(t){this.snapshot=t,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class F8{constructor(t){this.snapshot=t,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class R8{constructor(t){this.snapshot=t,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class HT{constructor(t,e,i){this.routerEvent=t,this.position=e,this.anchor=i,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}let Y8=(()=>{class n{createUrlTree(e,i,o,s,a,l){return y8(e||i.root,o,s,a,l)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),B8=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(t){return Y8.\u0275fac(t)},providedIn:"root"}),n})();class VT{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){const e=P0(t,this._root);return e?e.children.map(i=>i.value):[]}firstChild(t){const e=P0(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){const e=O0(t,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return O0(t,this._root).map(e=>e.value)}}function P0(n,t){if(n===t.value)return t;for(const e of t.children){const i=P0(n,e);if(i)return i}return null}function O0(n,t){if(n===t.value)return[t];for(const e of t.children){const i=O0(n,e);if(i.length)return i.unshift(t),i}return[]}class la{constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}}function jd(n){const t={};return n&&n.children.forEach(e=>t[e.value.outlet]=e),t}class jT extends VT{constructor(t,e){super(t),this.snapshot=e,A0(this,t)}toString(){return this.snapshot.toString()}}function zT(n,t){const e=function H8(n,t){const a=new N_([],{},{},"",{},$t,t,null,n.root,-1,{});return new WT("",new la(a,[]))}(n,t),i=new Ir([new cf("",{})]),o=new Ir({}),s=new Ir({}),a=new Ir({}),l=new Ir(""),d=new yr(i,o,a,l,s,$t,t,e.root);return d.snapshot=e.root,new jT(new la(d,[]),e)}class yr{constructor(t,e,i,o,s,a,l,d){this.url=t,this.params=e,this.queryParams=i,this.fragment=o,this.data=s,this.outlet=a,this.component=l,this.title=this.data?.pipe(Ce(w=>w[lf]))??Ge(void 0),this._futureSnapshot=d}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(Ce(t=>Bd(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Ce(t=>Bd(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function UT(n,t="emptyOnly"){const e=n.pathFromRoot;let i=0;if("always"!==t)for(i=e.length-1;i>=1;){const o=e[i],s=e[i-1];if(o.routeConfig&&""===o.routeConfig.path)i--;else{if(s.component)break;i--}}return function V8(n){return n.reduce((t,e)=>({params:{...t.params,...e.params},data:{...t.data,...e.data},resolve:{...e.data,...t.resolve,...e.routeConfig?.data,...e._resolvedData}}),{params:{},data:{},resolve:{}})}(e.slice(i))}class N_{constructor(t,e,i,o,s,a,l,d,w,P,Y){this.url=t,this.params=e,this.queryParams=i,this.fragment=o,this.data=s,this.outlet=a,this.component=l,this.routeConfig=d,this._urlSegment=w,this._lastPathIndex=P,this._resolve=Y}get title(){return this.data?.[lf]}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=Bd(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=Bd(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class WT extends VT{constructor(t,e){super(e),this.url=t,A0(this,e)}toString(){return $T(this._root)}}function A0(n,t){t.value._routerState=n,t.children.forEach(e=>A0(n,e))}function $T(n){const t=n.children.length>0?` { ${n.children.map($T).join(", ")} } `:"";return`${n.value}${t}`}function F0(n){if(n.snapshot){const t=n.snapshot,e=n._futureSnapshot;n.snapshot=e,Ds(t.queryParams,e.queryParams)||n.queryParams.next(e.queryParams),t.fragment!==e.fragment&&n.fragment.next(e.fragment),Ds(t.params,e.params)||n.params.next(e.params),function t8(n,t){if(n.length!==t.length)return!1;for(let e=0;eDs(e.parameters,t[i].parameters))}(n.url,t.url);return e&&!(!n.parent!=!t.parent)&&(!n.parent||R0(n.parent,t.parent))}function mf(n,t,e){if(e&&n.shouldReuseRoute(t.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=t.value;const o=function z8(n,t,e){return t.children.map(i=>{for(const o of e.children)if(n.shouldReuseRoute(i.value,o.value.snapshot))return mf(n,i,o);return mf(n,i)})}(n,t,e);return new la(i,o)}{if(n.shouldAttach(t.value)){const s=n.retrieve(t.value);if(null!==s){const a=s.route;return a.value._futureSnapshot=t.value,a.children=t.children.map(l=>mf(n,l)),a}}const i=function U8(n){return new yr(new Ir(n.url),new Ir(n.params),new Ir(n.queryParams),new Ir(n.fragment),new Ir(n.data),n.outlet,n.component,n)}(t.value),o=t.children.map(s=>mf(n,s));return new la(i,o)}}const N0="ngNavigationCancelingError";function GT(n,t){const{redirectTo:e,navigationBehaviorOptions:i}=Xl(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=qT(!1,0,t);return o.url=e,o.navigationBehaviorOptions=i,o}function qT(n,t,e){const i=new Error("NavigationCancelingError: "+(n||""));return i[N0]=!0,i.cancellationCode=t,e&&(i.url=e),i}function KT(n){return ZT(n)&&Xl(n.url)}function ZT(n){return n&&n[N0]}class W8{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.injector=null,this.children=new _f,this.attachRef=null}}let _f=(()=>{class n{constructor(){this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new W8,this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Y_=!1;let B_=(()=>{class n{constructor(){this.activated=null,this._activatedRoute=null,this.name=$t,this.activateEvents=new ht,this.deactivateEvents=new ht,this.attachEvents=new ht,this.detachEvents=new ht,this.parentContexts=Et(_f),this.location=Et(Qi),this.changeDetector=Et(ui),this.environmentInjector=Et(bs)}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Fe(4012,Y_);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Fe(4012,Y_);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Fe(4012,Y_);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new Fe(4013,Y_);this._activatedRoute=e;const o=this.location,a=e.snapshot.component,l=this.parentContexts.getOrCreateContext(this.name).children,d=new $8(e,l,o.injector);if(i&&function G8(n){return!!n.resolveComponentFactory}(i)){const w=i.resolveComponentFactory(a);this.activated=o.createComponent(w,o.length,d)}else this.activated=o.createComponent(a,{index:o.length,injector:d,environmentInjector:i??this.environmentInjector});this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[qi]}),n})();class $8{constructor(t,e,i){this.route=t,this.childContexts=e,this.parent=i}get(t,e){return t===yr?this.route:t===_f?this.childContexts:this.parent.get(t,e)}}let Y0=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=qe({type:n,selectors:[["ng-component"]],standalone:!0,features:[$v],decls:1,vars:0,template:function(e,i){1&e&&xe(0,"router-outlet")},dependencies:[B_],encapsulation:2}),n})();function XT(n,t){return n.providers&&!n._injector&&(n._injector=Fm(n.providers,t,`Route: ${n.path}`)),n._injector??t}function H0(n){const t=n.children&&n.children.map(H0),e=t?{...n,children:t}:{...n};return!e.component&&!e.loadComponent&&(t||e.loadChildren)&&e.outlet&&e.outlet!==$t&&(e.component=Y0),e}function Bo(n){return n.outlet||$t}function QT(n,t){const e=n.filter(i=>Bo(i)===t);return e.push(...n.filter(i=>Bo(i)!==t)),e}function gf(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let t=n.parent;t;t=t.parent){const e=t.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class Q8{constructor(t,e,i,o){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=o}activate(t){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),F0(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){const o=jd(e);t.children.forEach(s=>{const a=s.value.outlet;this.deactivateRoutes(s,o[a],i),delete o[a]}),vr(o,(s,a)=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(t,e,i){const o=t.value,s=e?e.value:null;if(o===s)if(o.component){const a=i.getContext(o.outlet);a&&this.deactivateChildRoutes(t,e,a.children)}else this.deactivateChildRoutes(t,e,i);else s&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){const i=e.getContext(t.value.outlet),o=i&&t.value.component?i.children:e,s=jd(t);for(const a of Object.keys(s))this.deactivateRouteAndItsChildren(s[a],o);if(i&&i.outlet){const a=i.outlet.detach(),l=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:a,route:t,contexts:l})}}deactivateRouteAndOutlet(t,e){const i=e.getContext(t.value.outlet),o=i&&t.value.component?i.children:e,s=jd(t);for(const a of Object.keys(s))this.deactivateRouteAndItsChildren(s[a],o);i&&i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated(),i.attachRef=null,i.resolver=null,i.route=null)}activateChildRoutes(t,e,i){const o=jd(e);t.children.forEach(s=>{this.activateRoutes(s,o[s.value.outlet],i),this.forwardEvent(new R8(s.value.snapshot))}),t.children.length&&this.forwardEvent(new A8(t.value.snapshot))}activateRoutes(t,e,i){const o=t.value,s=e?e.value:null;if(F0(o),o===s)if(o.component){const a=i.getOrCreateContext(o.outlet);this.activateChildRoutes(t,e,a.children)}else this.activateChildRoutes(t,e,i);else if(o.component){const a=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const l=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),a.children.onOutletReAttached(l.contexts),a.attachRef=l.componentRef,a.route=l.route.value,a.outlet&&a.outlet.attach(l.componentRef,l.route.value),F0(l.route.value),this.activateChildRoutes(t,null,a.children)}else{const l=gf(o.snapshot),d=l?.get(Ya)??null;a.attachRef=null,a.route=o,a.resolver=d,a.injector=l,a.outlet&&a.outlet.activateWith(o,a.injector),this.activateChildRoutes(t,null,a.children)}}else this.activateChildRoutes(t,null,i)}}class JT{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class H_{constructor(t,e){this.component=t,this.route=e}}function J8(n,t,e){const i=n._root;return bf(i,t?t._root:null,e,[i.value])}function zd(n,t){const e=Symbol(),i=t.get(n,e);return i===e?"function"!=typeof n||function Wg(n){return null!==Ac(n)}(n)?t.get(n):n:i}function bf(n,t,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const s=jd(t);return n.children.forEach(a=>{(function t6(n,t,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const s=n.value,a=t?t.value:null,l=e?e.getContext(n.value.outlet):null;if(a&&s.routeConfig===a.routeConfig){const d=function n6(n,t,e){if("function"==typeof e)return e(n,t);switch(e){case"pathParamsChange":return!Zl(n.url,t.url);case"pathParamsOrQueryParamsChange":return!Zl(n.url,t.url)||!Ds(n.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!R0(n,t)||!Ds(n.queryParams,t.queryParams);default:return!R0(n,t)}}(a,s,s.routeConfig.runGuardsAndResolvers);d?o.canActivateChecks.push(new JT(i)):(s.data=a.data,s._resolvedData=a._resolvedData),bf(n,t,s.component?l?l.children:null:e,i,o),d&&l&&l.outlet&&l.outlet.isActivated&&o.canDeactivateChecks.push(new H_(l.outlet.component,a))}else a&&vf(t,l,o),o.canActivateChecks.push(new JT(i)),bf(n,null,s.component?l?l.children:null:e,i,o)})(a,s[a.value.outlet],e,i.concat([a.value]),o),delete s[a.value.outlet]}),vr(s,(a,l)=>vf(a,e.getContext(l),o)),o}function vf(n,t,e){const i=jd(n),o=n.value;vr(i,(s,a)=>{vf(s,o.component?t?t.children.getContext(a):null:t,e)}),e.canDeactivateChecks.push(new H_(o.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,o))}function yf(n){return"function"==typeof n}function V0(n){return n instanceof k_||"EmptyError"===n?.name}const V_=Symbol("INITIAL_VALUE");function Ud(){return br(n=>C0(n.map(t=>t.pipe(ti(1),yo(V_)))).pipe(Ce(t=>{for(const e of t)if(!0!==e){if(e===V_)return V_;if(!1===e||e instanceof Kl)return e}return!0}),Si(t=>t!==V_),ti(1)))}function e2(n){return Z(hi(t=>{if(Xl(t))throw GT(0,t)}),Ce(t=>!0===t))}const j0={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function t2(n,t,e,i,o){const s=z0(n,t,e);return s.matched?function v6(n,t,e,i){const o=t.canMatch;return o&&0!==o.length?Ge(o.map(a=>{const l=zd(a,n);return Xa(function l6(n){return n&&yf(n.canMatch)}(l)?l.canMatch(t,e):n.runInContext(()=>l(t,e)))})).pipe(Ud(),e2()):Ge(!0)}(i=XT(t,i),t,e).pipe(Ce(a=>!0===a?s:{...j0})):Ge(s)}function z0(n,t,e){if(""===t.path)return"full"===t.pathMatch&&(n.hasChildren()||e.length>0)?{...j0}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(t.matcher||e8)(e,n,t);if(!o)return{...j0};const s={};vr(o.posParams,(l,d)=>{s[d]=l.path});const a=o.consumed.length>0?{...s,...o.consumed[o.consumed.length-1].parameters}:s;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:a,positionalParamSegments:o.posParams??{}}}function j_(n,t,e,i){if(e.length>0&&function w6(n,t,e){return e.some(i=>z_(n,t,i)&&Bo(i)!==$t)}(n,e,i)){const s=new qt(t,function M6(n,t,e,i){const o={};o[$t]=i,i._sourceSegment=n,i._segmentIndexShift=t.length;for(const s of e)if(""===s.path&&Bo(s)!==$t){const a=new qt([],{});a._sourceSegment=n,a._segmentIndexShift=t.length,o[Bo(s)]=a}return o}(n,t,i,new qt(e,n.children)));return s._sourceSegment=n,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:[]}}if(0===e.length&&function x6(n,t,e){return e.some(i=>z_(n,t,i))}(n,e,i)){const s=new qt(n.segments,function y6(n,t,e,i,o){const s={};for(const a of i)if(z_(n,e,a)&&!o[Bo(a)]){const l=new qt([],{});l._sourceSegment=n,l._segmentIndexShift=t.length,s[Bo(a)]=l}return{...o,...s}}(n,t,e,i,n.children));return s._sourceSegment=n,s._segmentIndexShift=t.length,{segmentGroup:s,slicedSegments:e}}const o=new qt(n.segments,n.children);return o._sourceSegment=n,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:e}}function z_(n,t,e){return(!(n.hasChildren()||t.length>0)||"full"!==e.pathMatch)&&""===e.path}function n2(n,t,e,i){return!!(Bo(n)===i||i!==$t&&z_(t,e,n))&&("**"===n.path||z0(t,n,e).matched)}function r2(n,t,e){return 0===t.length&&!n.children[e]}const U_=!1;class W_{constructor(t){this.segmentGroup=t||null}}class o2{constructor(t){this.urlTree=t}}function Mf(n){return Pr(new W_(n))}function s2(n){return Pr(new o2(n))}class D6{constructor(t,e,i,o,s){this.injector=t,this.configLoader=e,this.urlSerializer=i,this.urlTree=o,this.config=s,this.allowRedirects=!0}apply(){const t=j_(this.urlTree.root,[],[],this.config).segmentGroup,e=new qt(t.segments,t.children);return this.expandSegmentGroup(this.injector,this.config,e,$t).pipe(Ce(s=>this.createUrlTree(F_(s),this.urlTree.queryParams,this.urlTree.fragment))).pipe(no(s=>{if(s instanceof o2)return this.allowRedirects=!1,this.match(s.urlTree);throw s instanceof W_?this.noMatchError(s):s}))}match(t){return this.expandSegmentGroup(this.injector,this.config,t.root,$t).pipe(Ce(o=>this.createUrlTree(F_(o),t.queryParams,t.fragment))).pipe(no(o=>{throw o instanceof W_?this.noMatchError(o):o}))}noMatchError(t){return new Fe(4002,U_)}createUrlTree(t,e,i){const o=D0(t);return new Kl(o,e,i)}expandSegmentGroup(t,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.expandChildren(t,e,i).pipe(Ce(s=>new qt([],s))):this.expandSegment(t,i,e,i.segments,o,!0)}expandChildren(t,e,i){const o=[];for(const s of Object.keys(i.children))"primary"===s?o.unshift(s):o.push(s);return ue(o).pipe($a(s=>{const a=i.children[s],l=QT(e,s);return this.expandSegmentGroup(t,l,a,s).pipe(Ce(d=>({segment:d,outlet:s})))}),D_((s,a)=>(s[a.outlet]=a.segment,s),{}),yT())}expandSegment(t,e,i,o,s,a){return ue(i).pipe($a(l=>this.expandSegmentAgainstRoute(t,e,i,l,o,s,a).pipe(no(w=>{if(w instanceof W_)return Ge(null);throw w}))),Ka(l=>!!l),no((l,d)=>{if(V0(l))return r2(e,o,s)?Ge(new qt([],{})):Mf(e);throw l}))}expandSegmentAgainstRoute(t,e,i,o,s,a,l){return n2(o,e,s,a)?void 0===o.redirectTo?this.matchSegmentAgainstRoute(t,e,o,s,a):l&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a):Mf(e):Mf(e)}expandSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,i,o,a):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,e,i,o){const s=this.applyRedirectCommands([],i.redirectTo,{});return i.redirectTo.startsWith("/")?s2(s):this.lineralizeSegments(i,s).pipe(Ne(a=>{const l=new qt(a,{});return this.expandSegment(t,l,e,a,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,e,i,o,s,a){const{matched:l,consumedSegments:d,remainingSegments:w,positionalParamSegments:P}=z0(e,o,s);if(!l)return Mf(e);const Y=this.applyRedirectCommands(d,o.redirectTo,P);return o.redirectTo.startsWith("/")?s2(Y):this.lineralizeSegments(o,Y).pipe(Ne(q=>this.expandSegment(t,e,i,q.concat(w),a,!1)))}matchSegmentAgainstRoute(t,e,i,o,s){return"**"===i.path?(t=XT(i,t),i.loadChildren?(i._loadedRoutes?Ge({routes:i._loadedRoutes,injector:i._loadedInjector}):this.configLoader.loadChildren(t,i)).pipe(Ce(l=>(i._loadedRoutes=l.routes,i._loadedInjector=l.injector,new qt(o,{})))):Ge(new qt(o,{}))):t2(e,i,o,t).pipe(br(({matched:a,consumedSegments:l,remainingSegments:d})=>a?this.getChildConfig(t=i._injector??t,i,o).pipe(Ne(P=>{const Y=P.injector??t,q=P.routes,{segmentGroup:te,slicedSegments:pe}=j_(e,l,d,q),ke=new qt(te.segments,te.children);if(0===pe.length&&ke.hasChildren())return this.expandChildren(Y,q,ke).pipe(Ce(Ae=>new qt(l,Ae)));if(0===q.length&&0===pe.length)return Ge(new qt(l,{}));const Ie=Bo(i)===s;return this.expandSegment(Y,ke,q,pe,Ie?$t:s,!0).pipe(Ce(Xe=>new qt(l.concat(Xe.segments),Xe.children)))})):Mf(e)))}getChildConfig(t,e,i){return e.children?Ge({routes:e.children,injector:t}):e.loadChildren?void 0!==e._loadedRoutes?Ge({routes:e._loadedRoutes,injector:e._loadedInjector}):function b6(n,t,e,i){const o=t.canLoad;return void 0===o||0===o.length?Ge(!0):Ge(o.map(a=>{const l=zd(a,n);return Xa(function r6(n){return n&&yf(n.canLoad)}(l)?l.canLoad(t,e):n.runInContext(()=>l(t,e)))})).pipe(Ud(),e2())}(t,e,i).pipe(Ne(o=>o?this.configLoader.loadChildren(t,e).pipe(hi(s=>{e._loadedRoutes=s.routes,e._loadedInjector=s.injector})):function k6(n){return Pr(qT(U_,3))}())):Ge({routes:[],injector:t})}lineralizeSegments(t,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return Ge(i);if(o.numberOfChildren>1||!o.children[$t])return Pr(new Fe(4e3,U_));o=o.children[$t]}}applyRedirectCommands(t,e,i){return this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),t,i)}applyRedirectCreateUrlTree(t,e,i,o){const s=this.createSegmentGroup(t,e.root,i,o);return new Kl(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){const i={};return vr(t,(o,s)=>{if("string"==typeof o&&o.startsWith(":")){const l=o.substring(1);i[s]=e[l]}else i[s]=o}),i}createSegmentGroup(t,e,i,o){const s=this.createSegments(t,e.segments,i,o);let a={};return vr(e.children,(l,d)=>{a[d]=this.createSegmentGroup(t,l,i,o)}),new qt(s,a)}createSegments(t,e,i,o){return e.map(s=>s.path.startsWith(":")?this.findPosParam(t,s,o):this.findOrReturn(s,i))}findPosParam(t,e,i){const o=i[e.path.substring(1)];if(!o)throw new Fe(4001,U_);return o}findOrReturn(t,e){let i=0;for(const o of e){if(o.path===t.path)return e.splice(i),o;i++}return t}}class L6{}class P6{constructor(t,e,i,o,s,a,l){this.injector=t,this.rootComponentType=e,this.config=i,this.urlTree=o,this.url=s,this.paramsInheritanceStrategy=a,this.urlSerializer=l}recognize(){const t=j_(this.urlTree.root,[],[],this.config.filter(e=>void 0===e.redirectTo)).segmentGroup;return this.processSegmentGroup(this.injector,this.config,t,$t).pipe(Ce(e=>{if(null===e)return null;const i=new N_([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},$t,this.rootComponentType,null,this.urlTree.root,-1,{}),o=new la(i,e),s=new WT(this.url,o);return this.inheritParamsAndData(s._root),s}))}inheritParamsAndData(t){const e=t.value,i=UT(e,this.paramsInheritanceStrategy);e.params=Object.freeze(i.params),e.data=Object.freeze(i.data),t.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(t,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.processChildren(t,e,i):this.processSegment(t,e,i,i.segments,o)}processChildren(t,e,i){return ue(Object.keys(i.children)).pipe($a(o=>{const s=i.children[o],a=QT(e,o);return this.processSegmentGroup(t,a,s,o)}),D_((o,s)=>o&&s?(o.push(...s),o):null),MT(o=>null!==o),sf(null),yT(),Ce(o=>{if(null===o)return null;const s=l2(o);return function O6(n){n.sort((t,e)=>t.value.outlet===$t?-1:e.value.outlet===$t?1:t.value.outlet.localeCompare(e.value.outlet))}(s),s}))}processSegment(t,e,i,o,s){return ue(e).pipe($a(a=>this.processSegmentAgainstRoute(a._injector??t,a,i,o,s)),Ka(a=>!!a),no(a=>{if(V0(a))return r2(i,o,s)?Ge([]):Ge(null);throw a}))}processSegmentAgainstRoute(t,e,i,o,s){if(e.redirectTo||!n2(e,i,o,s))return Ge(null);let a;if("**"===e.path){const l=o.length>0?CT(o).parameters:{},d=d2(i)+o.length;a=Ge({snapshot:new N_(o,l,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,u2(e),Bo(e),e.component??e._loadedComponent??null,e,c2(i),d,h2(e)),consumedSegments:[],remainingSegments:[]})}else a=t2(i,e,o,t).pipe(Ce(({matched:l,consumedSegments:d,remainingSegments:w,parameters:P})=>{if(!l)return null;const Y=d2(i)+d.length;return{snapshot:new N_(d,P,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,u2(e),Bo(e),e.component??e._loadedComponent??null,e,c2(i),Y,h2(e)),consumedSegments:d,remainingSegments:w}}));return a.pipe(br(l=>{if(null===l)return Ge(null);const{snapshot:d,consumedSegments:w,remainingSegments:P}=l;t=e._injector??t;const Y=e._loadedInjector??t,q=function A6(n){return n.children?n.children:n.loadChildren?n._loadedRoutes:[]}(e),{segmentGroup:te,slicedSegments:pe}=j_(i,w,P,q.filter(Ie=>void 0===Ie.redirectTo));if(0===pe.length&&te.hasChildren())return this.processChildren(Y,q,te).pipe(Ce(Ie=>null===Ie?null:[new la(d,Ie)]));if(0===q.length&&0===pe.length)return Ge([new la(d,[])]);const ke=Bo(e)===s;return this.processSegment(Y,q,te,pe,ke?$t:s).pipe(Ce(Ie=>null===Ie?null:[new la(d,Ie)]))}))}}function F6(n){const t=n.value.routeConfig;return t&&""===t.path&&void 0===t.redirectTo}function l2(n){const t=[],e=new Set;for(const i of n){if(!F6(i)){t.push(i);continue}const o=t.find(s=>i.value.routeConfig===s.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):t.push(i)}for(const i of e){const o=l2(i.children);t.push(new la(i.value,o))}return t.filter(i=>!e.has(i))}function c2(n){let t=n;for(;t._sourceSegment;)t=t._sourceSegment;return t}function d2(n){let t=n,e=t._segmentIndexShift??0;for(;t._sourceSegment;)t=t._sourceSegment,e+=t._segmentIndexShift??0;return e-1}function u2(n){return n.data||{}}function h2(n){return n.resolve||{}}function f2(n){return"string"==typeof n.title||null===n.title}function U0(n){return br(t=>{const e=n(t);return e?ue(e).pipe(Ce(()=>t)):Ge(t)})}const Wd=new He("ROUTES");let W0=(()=>{class n{constructor(e,i){this.injector=e,this.compiler=i,this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return Ge(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=Xa(e.loadComponent()).pipe(Ce(m2),hi(s=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=s}),T_(()=>{this.componentLoaders.delete(e)})),o=new Kr(i,()=>new X).pipe(jt());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Ge({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const s=this.loadModuleFactoryOrRoutes(i.loadChildren).pipe(Ce(l=>{this.onLoadEndListener&&this.onLoadEndListener(i);let d,w,P=!1;Array.isArray(l)?w=l:(d=l.create(e).injector,w=xT(d.get(Wd,[],Mt.Self|Mt.Optional)));return{routes:w.map(H0),injector:d}}),T_(()=>{this.childrenLoaders.delete(i)})),a=new Kr(s,()=>new X).pipe(jt());return this.childrenLoaders.set(i,a),a}loadModuleFactoryOrRoutes(e){return Xa(e()).pipe(Ce(m2),Ne(o=>o instanceof nk||Array.isArray(o)?Ge(o):ue(this.compiler.compileModuleAsync(o))))}}return n.\u0275fac=function(e){return new(e||n)(we(_i),we(Uk))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function m2(n){return function U6(n){return n&&"object"==typeof n&&"default"in n}(n)?n.default:n}let $0=(()=>{class n{constructor(){this.currentNavigation=null,this.lastSuccessfulNavigation=null,this.events=new X,this.configLoader=Et(W0),this.environmentInjector=Et(bs),this.urlSerializer=Et(df),this.rootContexts=Et(_f),this.navigationId=0,this.configLoader.onLoadEndListener=o=>this.events.next(new P8(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new I8(o))}get hasRequestedNavigation(){return 0!==this.navigationId}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e){return this.transitions=new Ir({id:0,targetPageId:0,currentUrlTree:e.currentUrlTree,currentRawUrl:e.currentUrlTree,extractedUrl:e.urlHandlingStrategy.extract(e.currentUrlTree),urlAfterRedirects:e.urlHandlingStrategy.extract(e.currentUrlTree),rawUrl:e.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:e.routerState.snapshot,targetSnapshot:null,currentRouterState:e.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(Si(i=>0!==i.id),Ce(i=>({...i,extractedUrl:e.urlHandlingStrategy.extract(i.rawUrl)})),br(i=>{let o=!1,s=!1;return Ge(i).pipe(hi(a=>{this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),br(a=>{const l=e.browserUrlTree.toString(),d=!e.navigated||a.extractedUrl.toString()!==l||l!==e.currentUrlTree.toString();if(("reload"===e.onSameUrlNavigation||d)&&e.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return g2(a.source)&&(e.browserUrlTree=a.extractedUrl),Ge(a).pipe(br(P=>{const Y=this.transitions?.getValue();return this.events.next(new I0(P.id,this.urlSerializer.serialize(P.extractedUrl),P.source,P.restoredState)),Y!==this.transitions?.getValue()?qa:Promise.resolve(P)}),function T6(n,t,e,i){return br(o=>function S6(n,t,e,i,o){return new D6(n,t,e,i,o).apply()}(n,t,e,o.extractedUrl,i).pipe(Ce(s=>({...o,urlAfterRedirects:s}))))}(this.environmentInjector,this.configLoader,this.urlSerializer,e.config),hi(P=>{this.currentNavigation={...this.currentNavigation,finalUrl:P.urlAfterRedirects},i.urlAfterRedirects=P.urlAfterRedirects}),function N6(n,t,e,i,o){return Ne(s=>function I6(n,t,e,i,o,s,a="emptyOnly"){return new P6(n,t,e,i,o,a,s).recognize().pipe(br(l=>null===l?function E6(n){return new de(t=>t.error(n))}(new L6):Ge(l)))}(n,t,e,s.urlAfterRedirects,i.serialize(s.urlAfterRedirects),i,o).pipe(Ce(a=>({...s,targetSnapshot:a}))))}(this.environmentInjector,e.rootComponentType,e.config,this.urlSerializer,e.paramsInheritanceStrategy),hi(P=>{if(i.targetSnapshot=P.targetSnapshot,"eager"===e.urlUpdateStrategy){if(!P.extras.skipLocationChange){const q=e.urlHandlingStrategy.merge(P.urlAfterRedirects,P.rawUrl);e.setBrowserUrl(q,P)}e.browserUrlTree=P.urlAfterRedirects}const Y=new S8(P.id,this.urlSerializer.serialize(P.extractedUrl),this.urlSerializer.serialize(P.urlAfterRedirects),P.targetSnapshot);this.events.next(Y)}));if(d&&e.rawUrlTree&&e.urlHandlingStrategy.shouldProcessUrl(e.rawUrlTree)){const{id:Y,extractedUrl:q,source:te,restoredState:pe,extras:ke}=a,Ie=new I0(Y,this.urlSerializer.serialize(q),te,pe);this.events.next(Ie);const Re=zT(q,e.rootComponentType).snapshot;return Ge(i={...a,targetSnapshot:Re,urlAfterRedirects:q,extras:{...ke,skipLocationChange:!1,replaceUrl:!1}})}return e.rawUrlTree=a.rawUrl,a.resolve(null),qa}),hi(a=>{const l=new D8(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(l)}),Ce(a=>i={...a,guards:J8(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),function d6(n,t){return Ne(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:s,canDeactivateChecks:a}}=e;return 0===a.length&&0===s.length?Ge({...e,guardsResult:!0}):function u6(n,t,e,i){return ue(n).pipe(Ne(o=>function g6(n,t,e,i,o){const s=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return s&&0!==s.length?Ge(s.map(l=>{const d=gf(t)??o,w=zd(l,d);return Xa(function a6(n){return n&&yf(n.canDeactivate)}(w)?w.canDeactivate(n,t,e,i):d.runInContext(()=>w(n,t,e,i))).pipe(Ka())})).pipe(Ud()):Ge(!0)}(o.component,o.route,e,t,i)),Ka(o=>!0!==o,!0))}(a,i,o,n).pipe(Ne(l=>l&&function i6(n){return"boolean"==typeof n}(l)?function h6(n,t,e,i){return ue(t).pipe($a(o=>ql(function p6(n,t){return null!==n&&t&&t(new O8(n)),Ge(!0)}(o.route.parent,i),function f6(n,t){return null!==n&&t&&t(new F8(n)),Ge(!0)}(o.route,i),function _6(n,t,e){const i=t[t.length-1],s=t.slice(0,t.length-1).reverse().map(a=>function e6(n){const t=n.routeConfig?n.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:n,guards:t}:null}(a)).filter(a=>null!==a).map(a=>rf(()=>Ge(a.guards.map(d=>{const w=gf(a.node)??e,P=zd(d,w);return Xa(function s6(n){return n&&yf(n.canActivateChild)}(P)?P.canActivateChild(i,n):w.runInContext(()=>P(i,n))).pipe(Ka())})).pipe(Ud())));return Ge(s).pipe(Ud())}(n,o.path,e),function m6(n,t,e){const i=t.routeConfig?t.routeConfig.canActivate:null;if(!i||0===i.length)return Ge(!0);const o=i.map(s=>rf(()=>{const a=gf(t)??e,l=zd(s,a);return Xa(function o6(n){return n&&yf(n.canActivate)}(l)?l.canActivate(t,n):a.runInContext(()=>l(t,n))).pipe(Ka())}));return Ge(o).pipe(Ud())}(n,o.route,e))),Ka(o=>!0!==o,!0))}(i,s,n,t):Ge(l)),Ce(l=>({...e,guardsResult:l})))})}(this.environmentInjector,a=>this.events.next(a)),hi(a=>{if(i.guardsResult=a.guardsResult,Xl(a.guardsResult))throw GT(0,a.guardsResult);const l=new T8(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.events.next(l)}),Si(a=>!!a.guardsResult||(e.restoreHistory(a),this.cancelNavigationTransition(a,"",3,e),!1)),U0(a=>{if(a.guards.canActivateChecks.length)return Ge(a).pipe(hi(l=>{const d=new L8(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(d)}),br(l=>{let d=!1;return Ge(l).pipe(function Y6(n,t){return Ne(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return Ge(e);let s=0;return ue(o).pipe($a(a=>function B6(n,t,e,i){const o=n.routeConfig,s=n._resolve;return void 0!==o?.title&&!f2(o)&&(s[lf]=o.title),function H6(n,t,e,i){const o=function V6(n){return[...Object.keys(n),...Object.getOwnPropertySymbols(n)]}(n);if(0===o.length)return Ge({});const s={};return ue(o).pipe(Ne(a=>function j6(n,t,e,i){const o=gf(t)??i,s=zd(n,o);return Xa(s.resolve?s.resolve(t,e):o.runInContext(()=>s(t,e)))}(n[a],t,e,i).pipe(Ka(),hi(l=>{s[a]=l}))),af(1),function qV(n){return t=>t.lift(new KV(n))}(s),no(a=>V0(a)?qa:Pr(a)))}(s,n,t,i).pipe(Ce(a=>(n._resolvedData=a,n.data=UT(n,e).resolve,o&&f2(o)&&(n.data[lf]=o.title),null)))}(a.route,i,n,t)),hi(()=>s++),af(1),Ne(a=>s===o.length?Ge(e):qa))})}(e.paramsInheritanceStrategy,this.environmentInjector),hi({next:()=>d=!0,complete:()=>{d||(e.restoreHistory(l),this.cancelNavigationTransition(l,"",2,e))}}))}),hi(l=>{const d=new E8(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(d)}))}),U0(a=>{const l=d=>{const w=[];d.routeConfig?.loadComponent&&!d.routeConfig._loadedComponent&&w.push(this.configLoader.loadComponent(d.routeConfig).pipe(hi(P=>{d.component=P}),Ce(()=>{})));for(const P of d.children)w.push(...l(P));return w};return C0(l(a.targetSnapshot.root)).pipe(sf(),ti(1))}),U0(()=>e.afterPreactivation()),Ce(a=>{const l=function j8(n,t,e){const i=mf(n,t._root,e?e._root:void 0);return new jT(i,t)}(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return i={...a,targetRouterState:l}}),hi(a=>{e.currentUrlTree=a.urlAfterRedirects,e.rawUrlTree=e.urlHandlingStrategy.merge(a.urlAfterRedirects,a.rawUrl),e.routerState=a.targetRouterState,"deferred"===e.urlUpdateStrategy&&(a.extras.skipLocationChange||e.setBrowserUrl(e.rawUrlTree,a),e.browserUrlTree=a.urlAfterRedirects)}),((n,t,e)=>Ce(i=>(new Q8(t,i.targetRouterState,i.currentRouterState,e).activate(n),i)))(this.rootContexts,e.routeReuseStrategy,a=>this.events.next(a)),hi({next:a=>{o=!0,this.lastSuccessfulNavigation=this.currentNavigation,e.navigated=!0,this.events.next(new Qa(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(e.currentUrlTree))),e.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0)},complete:()=>{o=!0}}),T_(()=>{o||s||this.cancelNavigationTransition(i,"",1,e),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),no(a=>{if(s=!0,ZT(a)){KT(a)||(e.navigated=!0,e.restoreHistory(i,!0));const l=new R_(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode);if(this.events.next(l),KT(a)){const d=e.urlHandlingStrategy.merge(a.url,e.rawUrlTree),w={skipLocationChange:i.extras.skipLocationChange,replaceUrl:"eager"===e.urlUpdateStrategy||g2(i.source)};e.scheduleNavigation(d,"imperative",null,w,{resolve:i.resolve,reject:i.reject,promise:i.promise})}else i.resolve(!1)}else{e.restoreHistory(i,!0);const l=new BT(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);this.events.next(l);try{i.resolve(e.errorHandler(a))}catch(d){i.reject(d)}}return qa}))}))}cancelNavigationTransition(e,i,o,s){const a=new R_(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(a),e.resolve(!1)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function g2(n){return"imperative"!==n}let b2=(()=>{class n{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(s=>s.outlet===$t);return i}getResolvedTitleForRoute(e){return e.data[lf]}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Et(W6)},providedIn:"root"}),n})(),W6=(()=>{class n extends b2{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}}return n.\u0275fac=function(e){return new(e||n)(we(dD))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),v2=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Et(G6)},providedIn:"root"}),n})();class $6{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}}let G6=(()=>{class n extends $6{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const $_=new He("",{providedIn:"root",factory:()=>({})});let K6=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:function(){return Et(Z6)},providedIn:"root"}),n})(),Z6=(()=>{class n{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function X6(n){throw n}function Q6(n,t,e){return t.parse("/")}const J6={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},ej={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Qt=(()=>{class n{constructor(){this.disposed=!1,this.currentPageId=0,this.console=Et(BN),this.isNgZoneEnabled=!1,this.options=Et($_,{optional:!0})||{},this.errorHandler=this.options.errorHandler||X6,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||Q6,this.navigated=!1,this.lastSuccessfulId=-1,this.afterPreactivation=()=>Ge(void 0),this.urlHandlingStrategy=Et(K6),this.routeReuseStrategy=Et(v2),this.urlCreationStrategy=Et(B8),this.titleStrategy=Et(b2),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=xT(Et(Wd,{optional:!0})??[]),this.navigationTransitions=Et($0),this.urlSerializer=Et(df),this.location=Et(zh),this.rootComponentType=null,this.isNgZoneEnabled=Et(pt)instanceof pt&&pt.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new Kl,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=zT(this.currentUrlTree,this.rootComponentType),this.navigationTransitions.setupNavigations(this).subscribe(e=>{this.lastSuccessfulId=e.id,this.currentPageId=e.targetPageId},e=>{this.console.warn(`Unhandled Navigation Error: ${e}`)})}get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return this.location.getState()?.\u0275routerPageId}get events(){return this.navigationTransitions.events}resetRootComponentType(e){this.rootComponentType=e,this.routerState.root.component=this.rootComponentType}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(e=>{const i="popstate"===e.type?"popstate":"hashchange";"popstate"===i&&setTimeout(()=>{const o={replaceUrl:!0},s=e.state?.navigationId?e.state:null;if(e.state){const l={...e.state};delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(o.state=l)}const a=this.parseUrl(e.url);this.scheduleNavigation(a,i,s,o)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}resetConfig(e){this.config=e.map(H0),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(e,i={}){const{relativeTo:o,queryParams:s,fragment:a,queryParamsHandling:l,preserveFragment:d}=i,w=d?this.currentUrlTree.fragment:a;let P=null;switch(l){case"merge":P={...this.currentUrlTree.queryParams,...s};break;case"preserve":P=this.currentUrlTree.queryParams;break;default:P=s||null}return null!==P&&(P=this.removeEmptyProps(P)),this.urlCreationStrategy.createUrlTree(o,this.routerState,this.currentUrlTree,e,P,w??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Xl(e)?e:this.parseUrl(e),s=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(s,"imperative",null,i)}navigate(e,i={skipLocationChange:!1}){return function tj(n){for(let t=0;t{const s=e[o];return null!=s&&(i[o]=s),i},{})}scheduleNavigation(e,i,o,s,a){if(this.disposed)return Promise.resolve(!1);let l,d,w,P;return a?(l=a.resolve,d=a.reject,w=a.promise):w=new Promise((Y,q)=>{l=Y,d=q}),"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(o=this.location.getState()),P=o&&o.\u0275routerPageId?o.\u0275routerPageId:s.replaceUrl||s.skipLocationChange?this.browserPageId??0:(this.browserPageId??0)+1):P=0,this.navigationTransitions.handleNavigationRequest({targetPageId:P,source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:s,resolve:l,reject:d,promise:w,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),w.catch(Y=>Promise.reject(Y))}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e),s={...i.extras.state,...this.generateNgRouterState(i.id,i.targetPageId)};this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl?this.location.replaceState(o,"",s):this.location.go(o,"",s)}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const o=this.currentPageId-e.targetPageId;"popstate"!==e.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==this.getCurrentNavigation()?.finalUrl||0===o?this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===o&&(this.resetState(e),this.browserUrlTree=e.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(o)}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=e.currentRouterState,this.currentUrlTree=e.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),Ja=(()=>{class n{constructor(e,i,o,s,a,l){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=s,this.el=a,this.locationStrategy=l,this._preserveFragment=!1,this._skipLocationChange=!1,this._replaceUrl=!1,this.href=null,this.commands=null,this.onChanges=new X;const d=a.nativeElement.tagName;this.isAnchorElement="A"===d||"AREA"===d,this.isAnchorElement?this.subscription=e.events.subscribe(w=>{w instanceof Qa&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}set preserveFragment(e){this._preserveFragment=Fd(e)}get preserveFragment(){return this._preserveFragment}set skipLocationChange(e){this._skipLocationChange=Fd(e)}get skipLocationChange(){return this._skipLocationChange}set replaceUrl(e){this._replaceUrl=Fd(e)}get replaceUrl(){return this._replaceUrl}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,s,a){return!!(null===this.urlTree||this.isAnchorElement&&(0!==e||i||o||s||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(this.urlTree,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){this.href=null!==this.urlTree&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null;const e=null===this.href?null:function Aw(n,t,e){return function ZO(n,t){return"src"===t&&("embed"===n||"frame"===n||"iframe"===n||"media"===n||"script"===n)||"href"===t&&("base"===n||"link"===n)?Ow:Oo}(t,e)(n)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",e)}applyAttributeValue(e,i){const o=this.renderer,s=this.el.nativeElement;null!==i?o.setAttribute(s,e,i):o.removeAttribute(s,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}}return n.\u0275fac=function(e){return new(e||n)(F(Qt),F(yr),Na("tabindex"),F(Ks),F(bt),F(zl))},n.\u0275dir=Ke({type:n,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(e,i){1&e&&ye("click",function(s){return i.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),2&e&&Ut("target",i.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",relativeTo:"relativeTo",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",routerLink:"routerLink"},standalone:!0,features:[qi]}),n})();class M2{}let rj=(()=>{class n{constructor(e,i,o,s,a){this.router=e,this.injector=o,this.preloadingStrategy=s,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(Si(e=>e instanceof Qa),$a(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const s of i){s.providers&&!s._injector&&(s._injector=Fm(s.providers,e,`Route: ${s.path}`));const a=s._injector??e,l=s._loadedInjector??a;s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent?o.push(this.preloadConfig(a,s)):(s.children||s._loadedRoutes)&&o.push(this.processRoutes(l,s.children??s._loadedRoutes))}return ue(o).pipe(sn())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):Ge(null);const s=o.pipe(Ne(a=>null===a?Ge(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));return i.loadComponent&&!i._loadedComponent?ue([s,this.loader.loadComponent(i)]).pipe(sn()):s})}}return n.\u0275fac=function(e){return new(e||n)(we(Qt),we(Uk),we(bs),we(M2),we(W0))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const G0=new He("");let w2=(()=>{class n{constructor(e,i,o,s,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=s,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration=a.scrollPositionRestoration||"disabled",a.anchorScrolling=a.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof I0?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Qa&&(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof HT&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new HT(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}}return n.\u0275fac=function(e){Ba()},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function Gd(n,t){return{\u0275kind:n,\u0275providers:t}}function C2(){const n=Et(_i);return t=>{const e=n.get(Ad);if(t!==e.components[0])return;const i=n.get(Qt),o=n.get(k2);1===n.get(K0)&&i.initialNavigation(),n.get(S2,null,Mt.Optional)?.setUpPreloading(),n.get(G0,null,Mt.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.unsubscribe())}}const k2=new He("",{factory:()=>new X}),K0=new He("",{providedIn:"root",factory:()=>1});const S2=new He("");function cj(n){return Gd(0,[{provide:S2,useExisting:rj},{provide:M2,useExisting:n}])}const D2=new He("ROUTER_FORROOT_GUARD"),dj=[zh,{provide:df,useClass:k0},Qt,_f,{provide:yr,useFactory:function x2(n){return n.routerState.root},deps:[Qt]},W0,[]];function uj(){return new Xk("Router",Qt)}let T2=(()=>{class n{constructor(e){}static forRoot(e,i){return{ngModule:n,providers:[dj,[],{provide:Wd,multi:!0,useValue:e},{provide:D2,useFactory:mj,deps:[[Qt,new Gs,new dd]]},{provide:$_,useValue:i||{}},i?.useHash?{provide:zl,useClass:D4}:{provide:zl,useClass:yS},{provide:G0,useFactory:()=>{const n=Et(W5),t=Et(pt),e=Et($_),i=Et($0),o=Et(df);return e.scrollOffset&&n.setOffset(e.scrollOffset),new w2(o,i,n,t,e)}},i?.preloadingStrategy?cj(i.preloadingStrategy).\u0275providers:[],{provide:Xk,multi:!0,useFactory:uj},i?.initialNavigation?_j(i):[],[{provide:L2,useFactory:C2},{provide:zk,multi:!0,useExisting:L2}]]}}static forChild(e){return{ngModule:n,providers:[{provide:Wd,multi:!0,useValue:e}]}}}return n.\u0275fac=function(e){return new(e||n)(we(D2,8))},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Y0]}),n})();function mj(n){return"guarded"}function _j(n){return["disabled"===n.initialNavigation?Gd(3,[{provide:Bm,multi:!0,useFactory:()=>{const t=Et(Qt);return()=>{t.setUpLocationChangeListener()}}},{provide:K0,useValue:2}]).\u0275providers:[],"enabledBlocking"===n.initialNavigation?Gd(2,[{provide:K0,useValue:0},{provide:Bm,multi:!0,deps:[_i],useFactory:t=>{const e=t.get(k4,Promise.resolve());return()=>e.then(()=>new Promise(o=>{const s=t.get(Qt),a=t.get(k2);(function i(o){t.get(Qt).events.pipe(Si(a=>a instanceof Qa||a instanceof R_||a instanceof BT),Ce(a=>a instanceof Qa||a instanceof R_&&(0===a.code||1===a.code)&&null),Si(a=>null!==a),ti(1)).subscribe(()=>{o()})})(()=>{o(!0)}),s.afterPreactivation=()=>(o(!0),a.closed?Ge(void 0):a),s.initialNavigation()}))}}]).\u0275providers:[]]}const L2=new He("");class bj extends T{constructor(t,e){super()}schedule(t,e=0){return this}}class G_ extends bj{constructor(t,e){super(t,e),this.scheduler=t,this.work=e,this.pending=!1}schedule(t,e=0){if(this.closed)return this;this.state=t;const i=this.id,o=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(o,i,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(o,this.id,e),this}requestAsyncId(t,e,i=0){return setInterval(t.flush.bind(t,this),i)}recycleAsyncId(t,e,i=0){if(null!==i&&this.delay===i&&!1===this.pending)return e;clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(t,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let o,i=!1;try{this.work(t)}catch(s){i=!0,o=!!s&&s||new Error(s)}if(i)return this.unsubscribe(),o}_unsubscribe(){const t=this.id,e=this.scheduler,i=e.actions,o=i.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==o&&i.splice(o,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null}}let E2=(()=>{class n{constructor(e,i=n.now){this.SchedulerAction=e,this.now=i}schedule(e,i=0,o){return new this.SchedulerAction(this,e).schedule(o,i)}}return n.now=()=>Date.now(),n})();class os extends E2{constructor(t,e=E2.now){super(t,()=>os.delegate&&os.delegate!==this?os.delegate.now():e()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(t,e=0,i){return os.delegate&&os.delegate!==this?os.delegate.schedule(t,e,i):super.schedule(t,e,i)}flush(t){const{actions:e}=this;if(this.active)return void e.push(t);let i;this.active=!0;do{if(i=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,i){for(;t=e.shift();)t.unsubscribe();throw i}}}const qd=new os(G_);class io{constructor(t,e,i){this.kind=t,this.value=e,this.error=i,this.hasValue="N"===t}observe(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}}do(t,e,i){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return i&&i()}}accept(t,e,i){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,i)}toObservable(){switch(this.kind){case"N":return Ge(this.value);case"E":return Pr(this.error);case"C":return S_()}throw new Error("unexpected notification kind value")}static createNext(t){return typeof t<"u"?new io("N",t):io.undefinedValueNotification}static createError(t){return new io("E",void 0,t)}static createComplete(){return io.completeNotification}}function Di(n,t=qd){const i=function vj(n){return n instanceof Date&&!isNaN(+n)}(n)?+n-t.now():Math.abs(n);return o=>o.lift(new yj(i,t))}io.completeNotification=new io("C"),io.undefinedValueNotification=new io("N",void 0);class yj{constructor(t,e){this.delay=t,this.scheduler=e}call(t,e){return e.subscribe(new Z0(t,this.delay,this.scheduler))}}class Z0 extends A{constructor(t,e,i){super(t),this.delay=e,this.scheduler=i,this.queue=[],this.active=!1,this.errored=!1}static dispatch(t){const e=t.source,i=e.queue,o=t.scheduler,s=t.destination;for(;i.length>0&&i[0].time-o.now()<=0;)i.shift().notification.observe(s);if(i.length>0){const a=Math.max(0,i[0].time-o.now());this.schedule(t,a)}else this.unsubscribe(),e.active=!1}_schedule(t){this.active=!0,this.destination.add(t.schedule(Z0.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))}scheduleNotification(t){if(!0===this.errored)return;const e=this.scheduler,i=new Mj(e.now()+this.delay,t);this.queue.push(i),!1===this.active&&this._schedule(e)}_next(t){this.scheduleNotification(io.createNext(t))}_error(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()}_complete(){this.scheduleNotification(io.createComplete()),this.unsubscribe()}}class Mj{constructor(t,e){this.time=t,this.notification=e}}var Kd=(()=>(function(n){n.NoConnection="NoConnection",n.Unknown="Unknown"}(Kd||(Kd={})),Kd))();class wj{}const I2="common.operation-error";function Kt(n){if(n&&n.type&&!n.srcElement)return n;const t=new wj;if(t.originalError=n,!n||"string"==typeof n)return t.originalServerErrorMsg=n||"",t.translatableErrorMsg=n||I2,t.type=Kd.Unknown,t;t.originalServerErrorMsg=function Cj(n){if(n){if("string"==typeof n._body)return n._body;if(n.originalServerErrorMsg&&"string"==typeof n.originalServerErrorMsg)return n.originalServerErrorMsg;if(n.error&&"string"==typeof n.error)return n.error;if(n.error&&n.error.error&&n.error.error.message)return n.error.error.message;if(n.error&&n.error.error&&"string"==typeof n.error.error)return n.error.error;if(n.message)return n.message;if(n._body&&n._body.error)return n._body.error;try{return JSON.parse(n._body).error}catch{}}return null}(n);return null!=n.status&&(0===n.status||504===n.status)&&(t.type=Kd.NoConnection,t.translatableErrorMsg="common.no-connection-error"),t.type||(t.type=Kd.Unknown,t.translatableErrorMsg=t.originalServerErrorMsg?function xj(n){if(!n||0===n.length)return n;if(-1!==n.indexOf('"error":'))try{n=JSON.parse(n).error}catch{}if(n.startsWith("400")||n.startsWith("403")){const e=n.split(" - ",2);n=2===e.length?e[1]:n}const t=(n=n.trim()).substr(0,1);return t.toUpperCase()!==t&&(n=t.toUpperCase()+n.substr(1,n.length-1)),!n.endsWith(".")&&!n.endsWith(",")&&!n.endsWith(":")&&!n.endsWith(";")&&!n.endsWith("?")&&!n.endsWith("!")&&(n+="."),n}(t.originalServerErrorMsg):I2),t}const Dj=new class Sj extends os{}(class kj extends G_{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}schedule(t,e=0){return e>0?super.schedule(t,e):(this.delay=e,this.state=t,this.scheduler.flush(this),this)}execute(t,e){return e>0||this.closed?super.execute(t,e):this._execute(t,e)}requestAsyncId(t,e,i=0){return null!==i&&i>0||null===i&&this.delay>0?super.requestAsyncId(t,e,i):t.flush(this)}});class q_ extends A{constructor(t,e,i=0){super(t),this.scheduler=e,this.delay=i}static dispatch(t){const{notification:e,destination:i}=t;e.observe(i),this.unsubscribe()}scheduleMessage(t){this.destination.add(this.scheduler.schedule(q_.dispatch,this.delay,new Lj(t,this.destination)))}_next(t){this.scheduleMessage(io.createNext(t))}_error(t){this.scheduleMessage(io.createError(t)),this.unsubscribe()}_complete(){this.scheduleMessage(io.createComplete()),this.unsubscribe()}}class Lj{constructor(t,e){this.notification=t,this.destination=e}}class Ho extends X{constructor(t=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,i){super(),this.scheduler=i,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=t<1?1:t,this._windowTime=e<1?1:e,e===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(t){if(!this.isStopped){const e=this._events;e.push(t),e.length>this._bufferSize&&e.shift()}super.next(t)}nextTimeWindow(t){this.isStopped||(this._events.push(new Ej(this._getNow(),t)),this._trimBufferThenGetEvents()),super.next(t)}_subscribe(t){const e=this._infiniteTimeWindow,i=e?this._events:this._trimBufferThenGetEvents(),o=this.scheduler,s=i.length;let a;if(this.closed)throw new ee;if(this.isStopped||this.hasError?a=T.EMPTY:(this.observers.push(t),a=new ae(this,t)),o&&t.add(t=new q_(t,o)),e)for(let l=0;le&&(a=Math.max(a,s-e)),a>0&&o.splice(0,a),o}}class Ej{constructor(t,e){this.time=t,this.value=e}}const K_="refreshSeconds",Z_="labelsData",X_="localNodesData",P2="nodesData";var Mr=(()=>(function(n){n.Node="nd",n.Transport="tp",n.DmsgServer="ds"}(Mr||(Mr={})),Mr))();class ni{constructor(){this.currentRefreshTimeSubject=new Ho(1),this.savedLocalNodes=new Map,this.savedLabels=new Map,this.savedVisibleLocalNodes=new Set}initialize(t){this.storage=localStorage,this.hypervisorPk=t,this.migrateDataToHvStorage(),this.currentRefreshTime=parseInt(this.getDataForHv(K_),10)||10,this.currentRefreshTimeSubject.next(this.currentRefreshTime),this.getSavedLocalNodes().forEach(o=>{this.savedLocalNodes.set(o.publicKey,o),o.hidden||this.savedVisibleLocalNodes.add(o.publicKey)}),this.getSavedLabels().forEach(o=>this.savedLabels.set(o.id,o)),this.loadLegacyNodeData();const e=[];this.savedLocalNodes.forEach(o=>e.push(o));const i=[];this.savedLabels.forEach(o=>i.push(o)),this.saveLocalNodes(e),this.saveLabels(i)}getDataForHv(t){return this.storage.getItem(this.hypervisorPk+t)}setDataForHv(t,e){return this.storage.setItem(this.hypervisorPk+t,e)}migrateDataToHvStorage(){const t=this.storage.getItem(K_);if(t){const o=parseInt(t,10)||10;this.setRefreshTime(o),this.storage.removeItem(K_)}const e=this.storage.getItem(X_);if(e){const o=JSON.parse(e)||[];this.saveLocalNodes(o),this.storage.removeItem(X_)}const i=this.storage.getItem(Z_);if(i){const o=JSON.parse(i)||[];this.saveLabels(o),this.storage.removeItem(Z_)}}loadLegacyNodeData(){const t=JSON.parse(this.storage.getItem(P2))||[];if(t.length>0){const e=this.getSavedLocalNodes(),i=this.getSavedLabels();t.forEach(o=>{e.push({publicKey:o.publicKey,hidden:o.deleted,ip:null}),this.savedLocalNodes.set(o.publicKey,e[e.length-1]),o.deleted||this.savedVisibleLocalNodes.add(o.publicKey),i.push({id:o.publicKey,identifiedElementType:Mr.Node,label:o.label}),this.savedLabels.set(o.publicKey,i[i.length-1])}),this.saveLocalNodes(e),this.saveLabels(i),this.storage.removeItem(P2)}}setRefreshTime(t){this.setDataForHv(K_,t.toString()),this.currentRefreshTime=t,this.currentRefreshTimeSubject.next(this.currentRefreshTime)}getRefreshTimeObservable(){return this.currentRefreshTimeSubject.asObservable()}getRefreshTime(){return this.currentRefreshTime}includeVisibleLocalNodes(t,e){this.changeLocalNodesHiddenProperty(t,e,!1)}setLocalNodesAsHidden(t,e){this.changeLocalNodesHiddenProperty(t,e,!0)}changeLocalNodesHiddenProperty(t,e,i){if(t.length!==e.length)throw new Error("Invalid params");const o=new Map,s=new Map;t.forEach((d,w)=>{o.set(d,e[w]),s.set(d,e[w])});let a=!1;const l=this.getSavedLocalNodes();l.forEach(d=>{o.has(d.publicKey)&&(s.has(d.publicKey)&&s.delete(d.publicKey),d.ip!==o.get(d.publicKey)&&(d.ip=o.get(d.publicKey),a=!0,this.savedLocalNodes.set(d.publicKey,d)),d.hidden!==i&&(d.hidden=i,a=!0,this.savedLocalNodes.set(d.publicKey,d),i?this.savedVisibleLocalNodes.delete(d.publicKey):this.savedVisibleLocalNodes.add(d.publicKey)))}),s.forEach((d,w)=>{a=!0;const P={publicKey:w,hidden:i,ip:d};l.push(P),this.savedLocalNodes.set(w,P),i?this.savedVisibleLocalNodes.delete(w):this.savedVisibleLocalNodes.add(w)}),a&&this.saveLocalNodes(l)}getSavedLocalNodes(){return JSON.parse(this.getDataForHv(X_))||[]}getSavedVisibleLocalNodes(){return this.savedVisibleLocalNodes}saveLocalNodes(t){this.setDataForHv(X_,JSON.stringify(t))}getSavedLabels(){return JSON.parse(this.getDataForHv(Z_))||[]}saveLabels(t){this.setDataForHv(Z_,JSON.stringify(t))}saveLabel(t,e,i){if(e){let o=!1;const s=this.getSavedLabels().map(a=>(a.id===t&&a.identifiedElementType===i&&(o=!0,a.label=e,this.savedLabels.set(a.id,{label:a.label,id:a.id,identifiedElementType:a.identifiedElementType})),a));if(o)this.saveLabels(s);else{const a={label:e,id:t,identifiedElementType:i};s.push(a),this.savedLabels.set(t,a),this.saveLabels(s)}}else{this.savedLabels.has(t)&&this.savedLabels.delete(t);let o=!1;const s=this.getSavedLabels().filter(a=>a.id!==t||(o=!0,!1));o&&this.saveLabels(s)}}getDefaultLabel(t){return t?t.ip?t.ip:t.localPk.substr(0,8):""}getLabelInfo(t){return this.savedLabels.has(t)?this.savedLabels.get(t):null}}function hn(n){return null!=n&&"false"!=`${n}`}function Mo(n,t=0){return function Ij(n){return!isNaN(parseFloat(n))&&!isNaN(Number(n))}(n)?Number(n):t}function Q_(n){return Array.isArray(n)?n:[n]}function Gi(n){return null==n?"":"string"==typeof n?n:`${n}px`}function ca(n){return n instanceof bt?n.nativeElement:n}function Zd(n,t,e,i){return O(e)&&(i=e,e=void 0),i?Zd(n,t,e).pipe(Ce(o=>y(o)?i(...o):i(o))):new de(o=>{O2(n,t,function s(a){o.next(arguments.length>1?Array.prototype.slice.call(arguments):a)},o,e)})}function O2(n,t,e,i,o){let s;if(function Aj(n){return n&&"function"==typeof n.addEventListener&&"function"==typeof n.removeEventListener}(n)){const a=n;n.addEventListener(t,e,o),s=()=>a.removeEventListener(t,e,o)}else if(function Oj(n){return n&&"function"==typeof n.on&&"function"==typeof n.off}(n)){const a=n;n.on(t,e),s=()=>a.off(t,e)}else if(function Pj(n){return n&&"function"==typeof n.addListener&&"function"==typeof n.removeListener}(n)){const a=n;n.addListener(t,e),s=()=>a.removeListener(t,e)}else{if(!n||!n.length)throw new TypeError("Invalid event target");for(let a=0,l=n.length;a0?super.requestAsyncId(t,e,i):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame(()=>t.flush(null))))}recycleAsyncId(t,e,i=0){if(null!==i&&i>0||null===i&&this.delay>0)return super.recycleAsyncId(t,e,i);0===t.actions.length&&(cancelAnimationFrame(e),t.scheduled=void 0)}});let Yj=1;const Bj=Promise.resolve(),J_={};function A2(n){return n in J_&&(delete J_[n],!0)}const F2={setImmediate(n){const t=Yj++;return J_[t]=!0,Bj.then(()=>A2(t)&&n()),t},clearImmediate(n){A2(n)}},X0=new class Vj extends os{flush(t){this.active=!0,this.scheduled=void 0;const{actions:e}=this;let i,o=-1,s=e.length;t=t||e.shift();do{if(i=t.execute(t.state,t.delay))break}while(++o0?super.requestAsyncId(t,e,i):(t.actions.push(this),t.scheduled||(t.scheduled=F2.setImmediate(t.flush.bind(t,null))))}recycleAsyncId(t,e,i=0){if(null!==i&&i>0||null===i&&this.delay>0)return super.recycleAsyncId(t,e,i);0===t.actions.length&&(F2.clearImmediate(e),t.scheduled=void 0)}});class zj{constructor(t){this.durationSelector=t}call(t,e){return e.subscribe(new Uj(t,this.durationSelector))}}class Uj extends Me{constructor(t,e){super(t),this.durationSelector=e,this.hasValue=!1}_next(t){if(this.value=t,this.hasValue=!0,!this.throttled){let e;try{const{durationSelector:o}=this;e=o(t)}catch(o){return this.destination.error(o)}const i=Ee(e,new be(this));!i||i.closed?this.clearThrottle():this.add(this.throttled=i)}}clearThrottle(){const{value:t,hasValue:e,throttled:i}=this;i&&(this.remove(i),this.throttled=void 0,i.unsubscribe()),e&&(this.value=void 0,this.hasValue=!1,this.destination.next(t))}notifyNext(){this.clearThrottle()}notifyComplete(){this.clearThrottle()}}function Q0(n){return!y(n)&&n-parseFloat(n)+1>=0}function xf(n=0,t,e){let i=-1;return Q0(t)?i=Number(t)<1?1:Number(t):Se(t)&&(e=t),Se(e)||(e=qd),new de(o=>{const s=Q0(n)?n:+n-e.now();return e.schedule(Wj,s,{index:0,period:i,subscriber:o})})}function Wj(n){const{index:t,period:e,subscriber:i}=n;if(i.next(t),!i.closed){if(-1===e)return i.complete();n.index=t+1,this.schedule(n,e)}}function J0(n,t=qd){return function jj(n){return function(e){return e.lift(new zj(n))}}(()=>xf(n,t))}function Cn(n){return t=>t.lift(new $j(n))}class $j{constructor(t){this.notifier=t}call(t,e){const i=new Gj(t),o=Ee(this.notifier,new be(i));return o&&!i.seenValue?(i.add(o),e.subscribe(i)):i}}class Gj extends Me{constructor(t){super(t),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}let e1;try{e1=typeof Intl<"u"&&Intl.v8BreakIterator}catch{e1=!1}let Xd,fi=(()=>{class n{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function U5(n){return n===HS}(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!e1)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return n.\u0275fac=function(e){return new(e||n)(we(Vm))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const R2=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function N2(){if(Xd)return Xd;if("object"!=typeof document||!document)return Xd=new Set(R2),Xd;let n=document.createElement("input");return Xd=new Set(R2.filter(t=>(n.setAttribute("type",t),n.type===t))),Xd}let Cf,eg,Ql,t1;function el(n){return function qj(){if(null==Cf&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Cf=!0}))}finally{Cf=Cf||!1}return Cf}()?n:!!n.capture}function Y2(){if(null==Ql){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return Ql=!1,Ql;if("scrollBehavior"in document.documentElement.style)Ql=!0;else{const n=Element.prototype.scrollTo;Ql=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return Ql}function kf(){if("object"!=typeof document||!document)return 0;if(null==eg){const n=document.createElement("div"),t=n.style;n.dir="rtl",t.width="1px",t.overflow="auto",t.visibility="hidden",t.pointerEvents="none",t.position="absolute";const e=document.createElement("div"),i=e.style;i.width="2px",i.height="1px",n.appendChild(e),document.body.appendChild(n),eg=0,0===n.scrollLeft&&(n.scrollLeft=1,eg=0===n.scrollLeft?1:2),n.remove()}return eg}function n1(){let n=typeof document<"u"&&document?document.activeElement:null;for(;n&&n.shadowRoot;){const t=n.shadowRoot.activeElement;if(t===n)break;n=t}return n}function tl(n){return n.composedPath?n.composedPath()[0]:n.target}function r1(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const Xj=new He("cdk-dir-doc",{providedIn:"root",factory:function Qj(){return Et(Dt)}}),Jj=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Or=(()=>{class n{constructor(e){if(this.value="ltr",this.change=new ht,e){const o=e.documentElement?e.documentElement.dir:null;this.value=function e7(n){const t=n?.toLowerCase()||"";return"auto"===t&&typeof navigator<"u"&&navigator?.language?Jj.test(navigator.language)?"rtl":"ltr":"rtl"===t?"rtl":"ltr"}((e.body?e.body.dir:null)||o||"ltr")}}ngOnDestroy(){this.change.complete()}}return n.\u0275fac=function(e){return new(e||n)(we(Xj,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),Sf=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();const t7=["contentWrapper"],n7=["*"],i7=new He("VIRTUAL_SCROLL_STRATEGY");let Df=(()=>{class n{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new X,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new de(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(J0(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):Ge()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(Si(s=>!s||o.indexOf(s)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=ca(i),s=e.getElementRef().nativeElement;do{if(o==s)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>Zd(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return n.\u0275fac=function(e){return new(e||n)(we(pt),we(fi),we(Dt,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),B2=(()=>{class n{constructor(e,i,o,s){this.elementRef=e,this.scrollDispatcher=i,this.ngZone=o,this.dir=s,this._destroyed=new X,this._elementScrolled=new de(a=>this.ngZone.runOutsideAngular(()=>Zd(this.elementRef.nativeElement,"scroll").pipe(Cn(this._destroyed)).subscribe(a)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(e){const i=this.elementRef.nativeElement,o=this.dir&&"rtl"==this.dir.value;null==e.left&&(e.left=o?e.end:e.start),null==e.right&&(e.right=o?e.start:e.end),null!=e.bottom&&(e.top=i.scrollHeight-i.clientHeight-e.bottom),o&&0!=kf()?(null!=e.left&&(e.right=i.scrollWidth-i.clientWidth-e.left),2==kf()?e.left=e.right:1==kf()&&(e.left=e.right?-e.right:e.right)):null!=e.right&&(e.left=i.scrollWidth-i.clientWidth-e.right),this._applyScrollToOptions(e)}_applyScrollToOptions(e){const i=this.elementRef.nativeElement;Y2()?i.scrollTo(e):(null!=e.top&&(i.scrollTop=e.top),null!=e.left&&(i.scrollLeft=e.left))}measureScrollOffset(e){const i="left",o="right",s=this.elementRef.nativeElement;if("top"==e)return s.scrollTop;if("bottom"==e)return s.scrollHeight-s.clientHeight-s.scrollTop;const a=this.dir&&"rtl"==this.dir.value;return"start"==e?e=a?o:i:"end"==e&&(e=a?i:o),a&&2==kf()?e==i?s.scrollWidth-s.clientWidth-s.scrollLeft:s.scrollLeft:a&&1==kf()?e==i?s.scrollLeft+s.scrollWidth-s.clientWidth:-s.scrollLeft:e==i?s.scrollLeft:s.scrollWidth-s.clientWidth-s.scrollLeft}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Df),F(pt),F(Or,8))},n.\u0275dir=Ke({type:n,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]],standalone:!0}),n})(),Jl=(()=>{class n{constructor(e,i,o){this._platform=e,this._change=new X,this._changeListener=s=>{this._change.next(s)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,s=o.getBoundingClientRect();return{top:-s.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-s.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(J0(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}}return n.\u0275fac=function(e){return new(e||n)(we(fi),we(pt),we(Dt,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const H2=new He("VIRTUAL_SCROLLABLE");let s7=(()=>{class n extends B2{constructor(e,i,o,s){super(e,i,o,s)}measureViewportSize(e){const i=this.elementRef.nativeElement;return"horizontal"===e?i.clientWidth:i.clientHeight}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Df),F(pt),F(Or,8))},n.\u0275dir=Ke({type:n,features:[dt]}),n})();const l7=typeof requestAnimationFrame<"u"?Nj:X0;let c7=(()=>{class n extends s7{constructor(e,i,o,s,a,l,d,w){super(e,l,o,a),this.elementRef=e,this._changeDetectorRef=i,this._scrollStrategy=s,this.scrollable=w,this._platform=Et(fi),this._detachedSubject=new X,this._renderedRangeSubject=new X,this._orientation="vertical",this._appendOnly=!1,this.scrolledIndexChange=new de(P=>this._scrollStrategy.scrolledIndexChange.subscribe(Y=>Promise.resolve().then(()=>this.ngZone.run(()=>P.next(Y))))),this.renderedRangeStream=this._renderedRangeSubject,this._totalContentSize=0,this._totalContentWidth="",this._totalContentHeight="",this._renderedRange={start:0,end:0},this._dataLength=0,this._viewportSize=0,this._renderedContentOffset=0,this._renderedContentOffsetNeedsRewrite=!1,this._isChangeDetectionPending=!1,this._runAfterChangeDetection=[],this._viewportChanges=T.EMPTY,this._viewportChanges=d.change().subscribe(()=>{this.checkViewportSize()}),this.scrollable||(this.elementRef.nativeElement.classList.add("cdk-virtual-scrollable"),this.scrollable=this)}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this._calculateSpacerSize())}get appendOnly(){return this._appendOnly}set appendOnly(e){this._appendOnly=hn(e)}ngOnInit(){!this._platform.isBrowser||(this.scrollable===this&&super.ngOnInit(),this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._measureViewportSize(),this._scrollStrategy.attach(this),this.scrollable.elementScrolled().pipe(yo(null),J0(0,l7)).subscribe(()=>this._scrollStrategy.onContentScrolled()),this._markChangeDetectionNeeded()})))}ngOnDestroy(){this.detach(),this._scrollStrategy.detach(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._viewportChanges.unsubscribe(),super.ngOnDestroy()}attach(e){this.ngZone.runOutsideAngular(()=>{this._forOf=e,this._forOf.dataStream.pipe(Cn(this._detachedSubject)).subscribe(i=>{const o=i.length;o!==this._dataLength&&(this._dataLength=o,this._scrollStrategy.onDataLengthChanged()),this._doChangeDetection()})})}detach(){this._forOf=null,this._detachedSubject.next()}getDataLength(){return this._dataLength}getViewportSize(){return this._viewportSize}getRenderedRange(){return this._renderedRange}measureBoundingClientRectWithScrollOffset(e){return this.getElementRef().nativeElement.getBoundingClientRect()[e]}setTotalContentSize(e){this._totalContentSize!==e&&(this._totalContentSize=e,this._calculateSpacerSize(),this._markChangeDetectionNeeded())}setRenderedRange(e){(function a7(n,t){return n.start==t.start&&n.end==t.end})(this._renderedRange,e)||(this.appendOnly&&(e={start:0,end:Math.max(this._renderedRange.end,e.end)}),this._renderedRangeSubject.next(this._renderedRange=e),this._markChangeDetectionNeeded(()=>this._scrollStrategy.onContentRendered()))}getOffsetToRenderedContentStart(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset}setRenderedContentOffset(e,i="to-start"){e=this.appendOnly&&"to-start"===i?0:e;const s="horizontal"==this.orientation,a=s?"X":"Y";let d=`translate${a}(${Number((s&&this.dir&&"rtl"==this.dir.value?-1:1)*e)}px)`;this._renderedContentOffset=e,"to-end"===i&&(d+=` translate${a}(-100%)`,this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=d&&(this._renderedContentTransform=d,this._markChangeDetectionNeeded(()=>{this._renderedContentOffsetNeedsRewrite?(this._renderedContentOffset-=this.measureRenderedContentSize(),this._renderedContentOffsetNeedsRewrite=!1,this.setRenderedContentOffset(this._renderedContentOffset)):this._scrollStrategy.onRenderedOffsetChanged()}))}scrollToOffset(e,i="auto"){const o={behavior:i};"horizontal"===this.orientation?o.start=e:o.top=e,this.scrollable.scrollTo(o)}scrollToIndex(e,i="auto"){this._scrollStrategy.scrollToIndex(e,i)}measureScrollOffset(e){let i;return i=this.scrollable==this?o=>super.measureScrollOffset(o):o=>this.scrollable.measureScrollOffset(o),Math.max(0,i(e??("horizontal"===this.orientation?"start":"top"))-this.measureViewportOffset())}measureViewportOffset(e){let i;const o="left",s="right",a="rtl"==this.dir?.value;i="start"==e?a?s:o:"end"==e?a?o:s:e||("horizontal"===this.orientation?"left":"top");const l=this.scrollable.measureBoundingClientRectWithScrollOffset(i);return this.elementRef.nativeElement.getBoundingClientRect()[i]-l}measureRenderedContentSize(){const e=this._contentWrapper.nativeElement;return"horizontal"===this.orientation?e.offsetWidth:e.offsetHeight}measureRangeSize(e){return this._forOf?this._forOf.measureRangeSize(e,this.orientation):0}checkViewportSize(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()}_measureViewportSize(){this._viewportSize=this.scrollable.measureViewportSize(this.orientation)}_markChangeDetectionNeeded(e){e&&this._runAfterChangeDetection.push(e),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._doChangeDetection()})))}_doChangeDetection(){this._isChangeDetectionPending=!1,this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,this.ngZone.run(()=>this._changeDetectorRef.markForCheck());const e=this._runAfterChangeDetection;this._runAfterChangeDetection=[];for(const i of e)i()}_calculateSpacerSize(){this._totalContentHeight="horizontal"===this.orientation?"":`${this._totalContentSize}px`,this._totalContentWidth="horizontal"===this.orientation?`${this._totalContentSize}px`:""}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(pt),F(i7,8),F(Or,8),F(Df),F(Jl),F(H2,8))},n.\u0275cmp=qe({type:n,selectors:[["cdk-virtual-scroll-viewport"]],viewQuery:function(e,i){if(1&e&&ft(t7,7),2&e){let o;nt(o=it())&&(i._contentWrapper=o.first)}},hostAttrs:[1,"cdk-virtual-scroll-viewport"],hostVars:4,hostBindings:function(e,i){2&e&&Gt("cdk-virtual-scroll-orientation-horizontal","horizontal"===i.orientation)("cdk-virtual-scroll-orientation-vertical","horizontal"!==i.orientation)},inputs:{orientation:"orientation",appendOnly:"appendOnly"},outputs:{scrolledIndexChange:"scrolledIndexChange"},standalone:!0,features:[Zt([{provide:B2,useFactory:(t,e)=>t||e,deps:[[new Gs,new am(H2)],n]}]),dt,$v],ngContentSelectors:n7,decls:4,vars:4,consts:[[1,"cdk-virtual-scroll-content-wrapper"],["contentWrapper",""],[1,"cdk-virtual-scroll-spacer"]],template:function(e,i){1&e&&(gr(),D(0,"div",0,1),vn(2),x(),xe(3,"div",2)),2&e&&(c(3),Va("width",i._totalContentWidth)("height",i._totalContentHeight))},styles:["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"],encapsulation:2,changeDetection:0}),n})(),Tf=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})(),V2=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Sf,Tf,c7,Sf,Tf]}),n})();class o1{attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;null!=t&&(this._attachedHost=null,t.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class Qd extends o1{constructor(t,e,i,o,s){super(),this.component=t,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=s}}class ec extends o1{constructor(t,e,i,o){super(),this.templateRef=t,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(t,e=this.context){return this.context=e,super.attach(t)}detach(){return this.context=void 0,super.detach()}}class d7 extends o1{constructor(t){super(),this.element=t instanceof bt?t.nativeElement:t}}class tg{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(t){return t instanceof Qd?(this._attachedPortal=t,this.attachComponentPortal(t)):t instanceof ec?(this._attachedPortal=t,this.attachTemplatePortal(t)):this.attachDomPortal&&t instanceof d7?(this._attachedPortal=t,this.attachDomPortal(t)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class u7 extends tg{constructor(t,e,i,o,s){super(),this.outletElement=t,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=a=>{const l=a.element,d=this._document.createComment("dom-portal");l.parentNode.insertBefore(d,l),this.outletElement.appendChild(l),this._attachedPortal=a,super.setDisposeFn(()=>{d.parentNode&&d.parentNode.replaceChild(l,d)})},this._document=s}attachComponentPortal(t){const i=(t.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(t.component);let o;return t.viewContainerRef?(o=t.viewContainerRef.createComponent(i,t.viewContainerRef.length,t.injector||t.viewContainerRef.injector,t.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(t.injector||this._defaultInjector||_i.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=t,o}attachTemplatePortal(t){let e=t.viewContainerRef,i=e.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=t,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}let h7=(()=>{class n extends ec{constructor(e,i){super(e,i)}}return n.\u0275fac=function(e){return new(e||n)(F(cr),F(Qi))},n.\u0275dir=Ke({type:n,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[dt]}),n})(),nl=(()=>{class n extends tg{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new ht,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");s.setAttachedHost(this),a.parentNode.insertBefore(l,a),this._getRootNode().appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,s=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),a=i.createComponent(s,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=e,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}}return n.\u0275fac=function(e){return new(e||n)(F(Ya),F(Qi),F(Dt))},n.\u0275dir=Ke({type:n,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[dt]}),n})(),Jd=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();function Ts(n,...t){return t.length?t.some(e=>n[e]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}const z2=Y2();class S7{constructor(t,e){this._viewportRuler=t,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=Gi(-this._previousScrollPosition.left),t.style.top=Gi(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const t=this._document.documentElement,i=t.style,o=this._document.body.style,s=i.scrollBehavior||"",a=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),z2&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),z2&&(i.scrollBehavior=s,o.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class D7{constructor(t,e,i,o){this._scrollDispatcher=t,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(t){this._overlayRef=t}enable(){if(this._scrollSubscription)return;const t=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class U2{enable(){}disable(){}attach(){}}function s1(n,t){return t.some(e=>n.bottome.bottom||n.righte.right)}function W2(n,t){return t.some(e=>n.tope.bottom||n.lefte.right)}class T7{constructor(t,e,i,o){this._scrollDispatcher=t,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(t){this._overlayRef=t}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();s1(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let L7=(()=>{class n{constructor(e,i,o,s){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new U2,this.close=a=>new D7(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new S7(this._viewportRuler,this._document),this.reposition=a=>new T7(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=s}}return n.\u0275fac=function(e){return new(e||n)(we(Df),we(Jl),we(pt),we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class Pf{constructor(t){if(this.scrollStrategy=new U2,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,t){const e=Object.keys(t);for(const i of e)void 0!==t[i]&&(this[i]=t[i])}}}class E7{constructor(t,e){this.connectionPair=t,this.scrollableViewProperties=e}}let $2=(()=>{class n{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}}return n.\u0275fac=function(e){return new(e||n)(we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),I7=(()=>{class n extends $2{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const s=this._attachedOverlays;for(let a=s.length-1;a>-1;a--)if(s[a]._keydownEvents.observers.length>0){const l=s[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>l.next(o)):l.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return n.\u0275fac=function(e){return new(e||n)(we(Dt),we(pt,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),P7=(()=>{class n extends $2{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=tl(s)},this._clickListener=s=>{const a=tl(s),l="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const d=this._attachedOverlays.slice();for(let w=d.length-1;w>-1;w--){const P=d[w];if(P._outsidePointerEvents.observers.length<1||!P.hasAttached())continue;if(P.overlayElement.contains(a)||P.overlayElement.contains(l))break;const Y=P._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>Y.next(s)):Y.next(s)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}}return n.\u0275fac=function(e){return new(e||n)(we(Dt),we(fi),we(pt,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),sg=(()=>{class n{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||r1()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(Y),this._backdropTransitionendHandler=Y=>{this._disposeBackdrop(Y.target)},this._keydownEvents=new X,this._outsidePointerEvents=new X,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(ti(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){const t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,t&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config={...this._config,...t},this._updateElementSize()}setDirection(t){this._config={...this._config,direction:t},this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){const t=this._config.direction;return t?"string"==typeof t?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const t=this._pane.style;t.width=Gi(this._config.width),t.height=Gi(this._config.height),t.minWidth=Gi(this._config.minWidth),t.minHeight=Gi(this._config.minHeight),t.maxWidth=Gi(this._config.maxWidth),t.maxHeight=Gi(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){const t="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(t)})}):this._backdropElement.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const t=this._backdropElement;if(t){if(this._animationsDisabled)return void this._disposeBackdrop(t);t.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{t.addEventListener("transitionend",this._backdropTransitionendHandler)}),t.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(t)},500))}}_toggleClasses(t,e,i){const o=Q_(e||[]).filter(s=>!!s);o.length&&(i?t.classList.add(...o):t.classList.remove(...o))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const t=this._ngZone.onStable.pipe(Cn(vt(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){const t=this._scrollStrategy;t&&(t.disable(),t.detach&&t.detach())}_disposeBackdrop(t){t&&(t.removeEventListener("click",this._backdropClickHandler),t.removeEventListener("transitionend",this._backdropTransitionendHandler),t.remove(),this._backdropElement===t&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const G2="cdk-overlay-connected-position-bounding-box",O7=/([A-Za-z%]+)$/;class A7{constructor(t,e,i,o,s){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=s,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new X,this._resizeSubscription=T.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(t)}get positions(){return this._preferredPositions}attach(t){this._validatePositions(),t.hostElement.classList.add(G2),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,s=[];let a;for(let l of this._preferredPositions){let d=this._getOriginPoint(t,o,l),w=this._getOverlayPoint(d,e,l),P=this._getOverlayFit(w,e,i,l);if(P.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(l,d);this._canFitWithFlexibleDimensions(P,w,i)?s.push({position:l,origin:d,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(d,l)}):(!a||a.overlayFit.visibleAread&&(d=P,l=w)}return this._isPushed=!1,void this._applyPosition(l.position,l.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&tc(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(G2),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,e)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,-1===t.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,e,i){let o,s;if("center"==i.originX)o=t.left+t.width/2;else{const a=this._isRtl()?t.right:t.left,l=this._isRtl()?t.left:t.right;o="start"==i.originX?a:l}return e.left<0&&(o-=e.left),s="center"==i.originY?t.top+t.height/2:"top"==i.originY?t.top:t.bottom,e.top<0&&(s-=e.top),{x:o,y:s}}_getOverlayPoint(t,e,i){let o,s;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,s="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:t.x+o,y:t.y+s}}_getOverlayFit(t,e,i,o){const s=K2(e);let{x:a,y:l}=t,d=this._getOffset(o,"x"),w=this._getOffset(o,"y");d&&(a+=d),w&&(l+=w);let q=0-l,te=l+s.height-i.height,pe=this._subtractOverflows(s.width,0-a,a+s.width-i.width),ke=this._subtractOverflows(s.height,q,te),Ie=pe*ke;return{visibleArea:Ie,isCompletelyWithinViewport:s.width*s.height===Ie,fitsInViewportVertically:ke===s.height,fitsInViewportHorizontally:pe==s.width}}_canFitWithFlexibleDimensions(t,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,s=i.right-e.x,a=q2(this._overlayRef.getConfig().minHeight),l=q2(this._overlayRef.getConfig().minWidth),w=t.fitsInViewportHorizontally||null!=l&&l<=s;return(t.fitsInViewportVertically||null!=a&&a<=o)&&w}return!1}_pushOverlayOnScreen(t,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};const o=K2(e),s=this._viewportRect,a=Math.max(t.x+o.width-s.width,0),l=Math.max(t.y+o.height-s.height,0),d=Math.max(s.top-i.top-t.y,0),w=Math.max(s.left-i.left-t.x,0);let P=0,Y=0;return P=o.width<=s.width?w||-a:t.xpe&&!this._isInitialRender&&!this._growAfterOpen&&(a=t.y-pe/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)q=i.width-t.x+this._viewportMargin,P=t.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)Y=t.x,P=i.right-t.x;else{const te=Math.min(i.right-t.x+i.left,t.x),pe=this._lastBoundingBoxSize.width;P=2*te,Y=t.x-te,P>pe&&!this._isInitialRender&&!this._growAfterOpen&&(Y=t.x-pe/2)}return{top:a,left:Y,bottom:l,right:q,width:P,height:s}}_setBoundingBoxStyles(t,e){const i=this._calculateBoundingBoxRect(t,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;o.height=Gi(i.height),o.top=Gi(i.top),o.bottom=Gi(i.bottom),o.width=Gi(i.width),o.left=Gi(i.left),o.right=Gi(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",s&&(o.maxHeight=Gi(s)),a&&(o.maxWidth=Gi(a))}this._lastBoundingBoxSize=i,tc(this._boundingBox.style,o)}_resetBoundingBoxStyles(){tc(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){tc(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,e){const i={},o=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(o){const P=this._viewportRuler.getViewportScrollPosition();tc(i,this._getExactOverlayY(e,t,P)),tc(i,this._getExactOverlayX(e,t,P))}else i.position="static";let l="",d=this._getOffset(e,"x"),w=this._getOffset(e,"y");d&&(l+=`translateX(${d}px) `),w&&(l+=`translateY(${w}px)`),i.transform=l.trim(),a.maxHeight&&(o?i.maxHeight=Gi(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(o?i.maxWidth=Gi(a.maxWidth):s&&(i.maxWidth="")),tc(this._pane.style,i)}_getExactOverlayY(t,e,i){let o={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===t.overlayY?o.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":o.top=Gi(s.y),o}_getExactOverlayX(t,e,i){let a,o={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,t);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),a=this._isRtl()?"end"===t.overlayX?"left":"right":"end"===t.overlayX?"right":"left","right"===a?o.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":o.left=Gi(s.x),o}_getScrollVisibility(){const t=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:W2(t,i),isOriginOutsideView:s1(t,i),isOverlayClipped:W2(e,i),isOverlayOutsideView:s1(e,i)}}_subtractOverflows(t,...e){return e.reduce((i,o)=>i-Math.max(o,0),t)}_getNarrowedViewportRect(){const t=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+t-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:t-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,e){return"x"===e?null==t.offsetX?this._offsetX:t.offsetX:null==t.offsetY?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&Q_(t).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){const t=this._origin;if(t instanceof bt)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();const e=t.width||0,i=t.height||0;return{top:t.y,bottom:t.y+i,left:t.x,right:t.x+e,height:i,width:e}}}function tc(n,t){for(let e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n}function q2(n){if("number"!=typeof n&&null!=n){const[t,e]=n.split(O7);return e&&"px"!==e?null:parseFloat(t)}return n||null}function K2(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const Z2="cdk-global-overlay-wrapper";class F7{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(t){const e=t.getConfig();this._overlayRef=t,this._width&&!e.width&&t.updateSize({width:this._width}),this._height&&!e.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(Z2),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:s,maxWidth:a,maxHeight:l}=i,d=!("100%"!==o&&"100vw"!==o||a&&"100%"!==a&&"100vw"!==a),w=!("100%"!==s&&"100vh"!==s||l&&"100%"!==l&&"100vh"!==l),P=this._xPosition,Y=this._xOffset,q="rtl"===this._overlayRef.getConfig().direction;let te="",pe="",ke="";d?ke="flex-start":"center"===P?(ke="center",q?pe=Y:te=Y):q?"left"===P||"end"===P?(ke="flex-end",te=Y):("right"===P||"start"===P)&&(ke="flex-start",pe=Y):"left"===P||"start"===P?(ke="flex-start",te=Y):("right"===P||"end"===P)&&(ke="flex-end",pe=Y),t.position=this._cssPosition,t.marginLeft=d?"0":te,t.marginTop=w?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=d?"0":pe,e.justifyContent=ke,e.alignItems=w?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const t=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(Z2),i.justifyContent=i.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}}let R7=(()=>{class n{constructor(e,i,o,s){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=s}global(){return new F7}flexibleConnectedTo(e){return new A7(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return n.\u0275fac=function(e){return new(e||n)(we(Jl),we(Dt),we(fi),we(sg))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),N7=0,ro=(()=>{class n{constructor(e,i,o,s,a,l,d,w,P,Y,q,te){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=s,this._keyboardDispatcher=a,this._injector=l,this._ngZone=d,this._document=w,this._directionality=P,this._location=Y,this._outsideClickDispatcher=q,this._animationsModuleType=te}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),s=this._createPortalOutlet(o),a=new Pf(e);return a.direction=a.direction||this._directionality.value,new Of(s,i,o,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+N7++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Ad)),new u7(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return n.\u0275fac=function(e){return new(e||n)(we(L7),we(sg),we(Ya),we(R7),we(I7),we(_i),we(pt),we(Dt),we(Or),we(zh),we(P7),we(zi,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Y7=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],X2=new He("cdk-connected-overlay-scroll-strategy");let a1=(()=>{class n{constructor(e){this.elementRef=e}}return n.\u0275fac=function(e){return new(e||n)(F(bt))},n.\u0275dir=Ke({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),n})(),Q2=(()=>{class n{constructor(e,i,o,s,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=T.EMPTY,this._attachSubscription=T.EMPTY,this._detachSubscription=T.EMPTY,this._positionSubscription=T.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new ht,this.positionChange=new ht,this.attach=new ht,this.detach=new ht,this.overlayKeydown=new ht,this.overlayOutsideClick=new ht,this._templatePortal=new ec(i,o),this._scrollStrategyFactory=s,this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=hn(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=hn(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=hn(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=hn(e)}get push(){return this._push}set push(e){this._push=hn(e)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=Y7);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!Ts(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Pf({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof a1?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(MT(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(ro),F(cr),F(Qi),F(X2),F(Or,8))},n.\u0275dir=Ke({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:["cdkConnectedOverlayOrigin","origin"],positions:["cdkConnectedOverlayPositions","positions"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[qi]}),n})();const H7={provide:X2,deps:[ro],useFactory:function B7(n){return()=>n.scrollStrategies.reposition()}};let eu=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[ro,H7],imports:[Sf,Jd,V2,V2]}),n})();function l1(n,t=qd){return e=>e.lift(new V7(n,t))}class V7{constructor(t,e){this.dueTime=t,this.scheduler=e}call(t,e){return e.subscribe(new j7(t,this.dueTime,this.scheduler))}}class j7 extends A{constructor(t,e,i){super(t),this.dueTime=e,this.scheduler=i,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}_next(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(z7,this.dueTime,this))}_complete(){this.debouncedNext(),this.destination.complete()}debouncedNext(){if(this.clearDebounce(),this.hasValue){const{lastValue:t}=this;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}}clearDebounce(){const t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)}}function z7(n){n.debouncedNext()}function c1(n){return t=>t.lift(new U7(n))}class U7{constructor(t){this.total=t}call(t,e){return e.subscribe(new W7(t,this.total))}}class W7 extends A{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){++this.count>this.total&&this.destination.next(t)}}function d1(n,t){return e=>e.lift(new $7(n,t))}class $7{constructor(t,e){this.compare=t,this.keySelector=e}call(t,e){return e.subscribe(new G7(t,this.compare,this.keySelector))}}class G7 extends A{constructor(t,e,i){super(t),this.keySelector=i,this.hasKey=!1,"function"==typeof e&&(this.compare=e)}compare(t,e){return t===e}_next(t){let e;try{const{keySelector:o}=this;e=o?o(t):t}catch(o){return this.destination.error(o)}let i=!1;if(this.hasKey)try{const{compare:o}=this;i=o(this.key,e)}catch(o){return this.destination.error(o)}else this.hasKey=!0;i||(this.key=e,this.destination.next(t))}}let J2=(()=>{class n{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),q7=(()=>{class n{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=ca(e);return new de(o=>{const a=this._observeElement(i).subscribe(o);return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new X,o=this._mutationObserverFactory.create(s=>i.next(s));o&&o.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:o,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:o}=this._observedElements.get(e);i&&i.disconnect(),o.complete(),this._observedElements.delete(e)}}}return n.\u0275fac=function(e){return new(e||n)(we(J2))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),eL=(()=>{class n{constructor(e,i,o){this._contentObserver=e,this._elementRef=i,this._ngZone=o,this.event=new ht,this._disabled=!1,this._currentSubscription=null}get disabled(){return this._disabled}set disabled(e){this._disabled=hn(e),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=Mo(e),this._subscribe()}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(l1(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(q7),F(bt),F(pt))},n.\u0275dir=Ke({type:n,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]}),n})(),u1=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[J2]}),n})();const tL=new Set;let tu,K7=(()=>{class n{constructor(e){this._platform=e,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):X7}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function Z7(n){if(!tL.has(n))try{tu||(tu=document.createElement("style"),tu.setAttribute("type","text/css"),document.head.appendChild(tu)),tu.sheet&&(tu.sheet.insertRule(`@media ${n} {body{ }}`,0),tL.add(n))}catch(t){console.error(t)}}(e),this._matchMedia(e)}}return n.\u0275fac=function(e){return new(e||n)(we(fi))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function X7(n){return{matches:"all"===n||""===n,media:n,addListener:()=>{},removeListener:()=>{}}}let h1=(()=>{class n{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new X}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return nL(Q_(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let s=C0(nL(Q_(e)).map(a=>this._registerQuery(a).observable));return s=ql(s.pipe(ti(1)),s.pipe(c1(1),l1(0))),s.pipe(Ce(a=>{const l={matches:!1,breakpoints:{}};return a.forEach(({matches:d,query:w})=>{l.matches=l.matches||d,l.breakpoints[w]=d}),l}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),s={observable:new de(a=>{const l=d=>this._zone.run(()=>a.next(d));return i.addListener(l),()=>{i.removeListener(l)}}).pipe(yo(i),Ce(({matches:a})=>({query:e,matches:a})),Cn(this._destroySubject)),mql:i};return this._queries.set(e,s),s}}return n.\u0275fac=function(e){return new(e||n)(we(K7),we(pt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function nL(n){return n.map(t=>t.split(",")).reduce((t,e)=>t.concat(e)).map(t=>t.trim())}function ag(n,t){return(n.getAttribute(t)||"").match(/\S+/g)||[]}const rL="cdk-describedby-message",lg="cdk-describedby-host";let f1=0,t9=(()=>{class n{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+f1++,this._document=e,this._id=Et(Od)+"-"+f1++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const s=p1(i,o);"string"!=typeof i?(oL(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,o),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,o){if(!i||!this._isElementNode(e))return;const s=p1(i,o);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),"string"==typeof i){const a=this._messageRegistry.get(s);a&&0===a.referenceCount&&this._deleteMessageElement(s)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${lg}="${this._id}"]`);for(let i=0;i0!=o.indexOf(rL));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);(function J7(n,t,e){const i=ag(n,t);i.some(o=>o.trim()==e.trim())||(i.push(e.trim()),n.setAttribute(t,i.join(" ")))})(e,"aria-describedby",o.messageElement.id),e.setAttribute(lg,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,function e9(n,t,e){const o=ag(n,t).filter(s=>s!=e.trim());o.length?n.setAttribute(t,o.join(" ")):n.removeAttribute(t)}(e,"aria-describedby",o.messageElement.id),e.removeAttribute(lg)}_isElementDescribedByMessage(e,i){const o=ag(e,"aria-describedby"),s=this._messageRegistry.get(i),a=s&&s.messageElement.id;return!!a&&-1!=o.indexOf(a)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const o=null==i?"":`${i}`.trim(),s=e.getAttribute("aria-label");return!(!o||s&&s.trim()===o)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}}return n.\u0275fac=function(e){return new(e||n)(we(Dt),we(fi))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function p1(n,t){return"string"==typeof n?`${t||""}/${n}`:n}function oL(n,t){n.id||(n.id=`${rL}-${t}-${f1++}`)}class sL{constructor(t){this._items=t,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new X,this._typeaheadSubscription=T.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=e=>e.disabled,this._pressedLetters=[],this.tabOut=new X,this.change=new X,t instanceof Vl&&(this._itemChangesSubscription=t.changes.subscribe(e=>{if(this._activeItem){const o=e.toArray().indexOf(this._activeItem);o>-1&&o!==this._activeItemIndex&&(this._activeItemIndex=o)}}))}skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(hi(e=>this._pressedLetters.push(e)),l1(t),Si(()=>this._pressedLetters.length>0),Ce(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!t[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const s=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(s=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],t.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(t){const e=this._getItemsArray(),i="number"==typeof t?t:e.indexOf(t);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(t){this._wrap?this._setActiveInWrapMode(t):this._setActiveInDefaultMode(t)}_setActiveInWrapMode(t){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+t*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(t){this._setActiveItemByIndex(this._activeItemIndex+t,t)}_setActiveItemByIndex(t,e){const i=this._getItemsArray();if(i[t]){for(;this._skipPredicateFn(i[t]);)if(!i[t+=e])return;this.setActiveItem(t)}}_getItemsArray(){return this._items instanceof Vl?this._items.toArray():this._items}}class n9 extends sL{setActiveItem(t){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(t),this.activeItem&&this.activeItem.setActiveStyles()}}class aL extends sL{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}}let cg=(()=>{class n{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function r9(n){return!!(n.offsetWidth||n.offsetHeight||"function"==typeof n.getClientRects&&n.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function i9(n){try{return n.frameElement}catch{return null}}(function h9(n){return n.ownerDocument&&n.ownerDocument.defaultView||window}(e));if(i&&(-1===cL(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),s=cL(e);return e.hasAttribute("contenteditable")?-1!==s:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function d9(n){let t=n.nodeName.toLowerCase(),e="input"===t&&n.type;return"text"===e||"password"===e||"select"===t||"textarea"===t}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==s:"video"===o?-1!==s&&(null!==s||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function u9(n){return!function s9(n){return function l9(n){return"input"==n.nodeName.toLowerCase()}(n)&&"hidden"==n.type}(n)&&(function o9(n){let t=n.nodeName.toLowerCase();return"input"===t||"select"===t||"button"===t||"textarea"===t}(n)||function a9(n){return function c9(n){return"a"==n.nodeName.toLowerCase()}(n)&&n.hasAttribute("href")}(n)||n.hasAttribute("contenteditable")||lL(n))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}}return n.\u0275fac=function(e){return new(e||n)(we(fi))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function lL(n){if(!n.hasAttribute("tabindex")||void 0===n.tabIndex)return!1;let t=n.getAttribute("tabindex");return!(!t||isNaN(parseInt(t,10)))}function cL(n){if(!lL(n))return null;const t=parseInt(n.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}class f9{constructor(t,e,i,o,s=!1){this._element=t,this._checker=e,this._ngZone=i,this._document=o,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,s||this.attachAnchors()}get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}destroy(){const t=this._startAnchor,e=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){const e=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return"start"==t?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(t),!!i}return e.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){const e=this._getRegionBoundary("start");return e&&e.focus(t),!!e}focusLastTabbableElement(t){const e=this._getRegionBoundary("end");return e&&e.focus(t),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;const e=t.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,e){t?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._ngZone.isStable?t():this._ngZone.onStable.pipe(ti(1)).subscribe(t)}}let m1=(()=>{class n{constructor(e,i,o){this._checker=e,this._ngZone=i,this._document=o}create(e,i=!1){return new f9(e,this._checker,this._ngZone,this._document,i)}}return n.\u0275fac=function(e){return new(e||n)(we(cg),we(pt),we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function _1(n){return 0===n.buttons||0===n.offsetX&&0===n.offsetY}function g1(n){const t=n.touches&&n.touches[0]||n.changedTouches&&n.changedTouches[0];return!(!t||-1!==t.identifier||null!=t.radiusX&&1!==t.radiusX||null!=t.radiusY&&1!==t.radiusY)}const p9=new He("cdk-input-modality-detector-options"),m9={ignoreKeys:[18,17,224,91,16]},nu=el({passive:!0,capture:!0});let _9=(()=>{class n{constructor(e,i,o,s){this._platform=e,this._mostRecentTarget=null,this._modality=new Ir(null),this._lastTouchMs=0,this._onKeydown=a=>{this._options?.ignoreKeys?.some(l=>l===a.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=tl(a))},this._onMousedown=a=>{Date.now()-this._lastTouchMs<650||(this._modality.next(_1(a)?"keyboard":"mouse"),this._mostRecentTarget=tl(a))},this._onTouchstart=a=>{g1(a)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=tl(a))},this._options={...m9,...s},this.modalityDetected=this._modality.pipe(c1(1)),this.modalityChanged=this.modalityDetected.pipe(d1()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,nu),o.addEventListener("mousedown",this._onMousedown,nu),o.addEventListener("touchstart",this._onTouchstart,nu)})}get mostRecentModality(){return this._modality.value}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,nu),document.removeEventListener("mousedown",this._onMousedown,nu),document.removeEventListener("touchstart",this._onTouchstart,nu))}}return n.\u0275fac=function(e){return new(e||n)(we(fi),we(pt),we(Dt),we(p9,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const g9=new He("liveAnnouncerElement",{providedIn:"root",factory:function b9(){return null}}),v9=new He("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let y9=0,b1=(()=>{class n{constructor(e,i,o,s){this._ngZone=i,this._defaultOptions=s,this._document=o,this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let s,a;return 1===i.length&&"number"==typeof i[0]?a=i[0]:[s,a]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=o&&o.politeness?o.politeness:"polite"),null==a&&o&&(a=o.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(l=>this._currentResolve=l)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof a&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),o=this._document.createElement("div");for(let s=0;s .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class n{constructor(e,i,o,s,a){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new X,this._rootNodeFocusAndBlurListener=l=>{for(let w=tl(l);w;w=w.parentElement)"focus"===l.type?this._onFocus(l,w):this._onBlur(l,w)},this._document=s,this._detectionMode=a?.detectionMode||0}monitor(e,i=!1){const o=ca(e);if(!this._platform.isBrowser||1!==o.nodeType)return Ge(null);const s=function Zj(n){if(function Kj(){if(null==t1){const n=typeof document<"u"?document.head:null;t1=!(!n||!n.createShadowRoot&&!n.attachShadow)}return t1}()){const t=n.getRootNode?n.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}(o)||this._getDocument(),a=this._elementInfo.get(o);if(a)return i&&(a.checkChildren=!0),a.subject;const l={checkChildren:i,subject:new X,rootNode:s};return this._elementInfo.set(o,l),this._registerGlobalListeners(l),l.subject}stopMonitoring(e){const i=ca(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const s=ca(e);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([l,d])=>this._originChanged(l,i,d)):(this._setOrigin(i),"function"==typeof s.focus&&s.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return 1===this._detectionMode||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),s=tl(e);!o||!o.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,dg),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,dg)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Cn(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,dg),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,dg),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,s)=>{(s===e||o.checkChildren&&s.contains(e))&&i.push([s,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const s=e.labels;if(s)for(let a=0;a{class n{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new ht}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(il))},n.\u0275dir=Ke({type:n,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]}),n})();const uL="cdk-high-contrast-black-on-white",hL="cdk-high-contrast-white-on-black",v1="cdk-high-contrast-active";let fL=(()=>{class n{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=Et(h1).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,s=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return 2;case"rgb(255,255,255)":case"rgb(255,250,239)":return 1}return 0}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(v1,uL,hL),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?e.add(v1,uL):2===i&&e.add(v1,hL)}}}return n.\u0275fac=function(e){return new(e||n)(we(fi),we(Dt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),y1=(()=>{class n{constructor(e){e._applyBodyHighContrastModeCssClasses()}}return n.\u0275fac=function(e){return new(e||n)(we(fL))},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[u1]}),n})();var nc_OPEN="mdc-dialog--open",pL_DIALOG_ANIMATION_CLOSE_TIME_MS=(["textarea",".mdc-menu .mdc-list-item",".mdc-menu .mdc-deprecated-list-item"].join(", "),75);function x9(n,t){}class ug{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0}}let mL=(()=>{class n extends tg{constructor(e,i,o,s,a,l,d,w){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=s,this._interactivityChecker=a,this._ngZone=l,this._overlayRef=d,this._focusMonitor=w,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this.attachDomPortal=P=>{this._portalOutlet.hasAttached();const Y=this._portalOutlet.attachDomPortal(P);return this._contentAttached(),Y},this._ariaLabelledBy=this._config.ariaLabelledBy||null,this._document=o}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const o=n1(),s=this._elementRef.nativeElement;(!o||o===this._document.body||o===s||s.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=n1();return e===i||e.contains(i)}_initializeFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=n1())}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(m1),F(Dt,8),F(ug),F(cg),F(pt),F(Of),F(il))},n.\u0275cmp=qe({type:n,selectors:[["cdk-dialog-container"]],viewQuery:function(e,i){if(1&e&&ft(nl,7),2&e){let o;nt(o=it())&&(i._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(e,i){2&e&&Ut("id",i._config.id||null)("role",i._config.role)("aria-modal",i._config.ariaModal)("aria-labelledby",i._config.ariaLabel?null:i._ariaLabelledBy)("aria-label",i._config.ariaLabel)("aria-describedby",i._config.ariaDescribedBy||null)},features:[dt],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(e,i){1&e&&V(0,x9,0,0,"ng-template",0)},dependencies:[nl],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2}),n})();class M1{constructor(t,e){this.overlayRef=t,this.config=e,this.closed=new X,this.disableClose=e.disableClose,this.backdropClick=t.backdropClick(),this.keydownEvents=t.keydownEvents(),this.outsidePointerEvents=t.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!Ts(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})})}close(t,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this.overlayRef.dispose(),i.next(t),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(t="",e=""){return this.overlayRef.updateSize({width:t,height:e}),this}addPanelClass(t){return this.overlayRef.addPanelClass(t),this}removePanelClass(t){return this.overlayRef.removePanelClass(t),this}}const _L=new He("DialogScrollStrategy"),C9=new He("DialogData"),k9=new He("DefaultDialogConfig"),D9={provide:_L,deps:[ro],useFactory:function S9(n){return()=>n.scrollStrategies.block()}};let T9=0,gL=(()=>{class n{constructor(e,i,o,s,a,l){this._overlay=e,this._injector=i,this._defaultOptions=o,this._parentDialog=s,this._overlayContainer=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new X,this._afterOpenedAtThisLevel=new X,this._ariaHiddenElements=new Map,this.afterAllClosed=rf(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(yo(void 0))),this._scrollStrategy=l}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}open(e,i){(i={...this._defaultOptions||new ug,...i}).id=i.id||"cdk-dialog-"+T9++,i.id&&this.getDialogById(i.id);const s=this._getOverlayConfig(i),a=this._overlay.create(s),l=new M1(a,i),d=this._attachContainer(a,l,i);return l.containerInstance=d,this._attachDialogContent(e,l,d,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(l),l.closed.subscribe(()=>this._removeOpenDialog(l,!0)),this.afterOpened.next(l),l}closeAll(){w1(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){w1(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),w1(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Pf({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const s=o.injector||o.viewContainerRef?.injector,a=[{provide:ug,useValue:o},{provide:M1,useValue:i},{provide:Of,useValue:e}];let l;o.container?"function"==typeof o.container?l=o.container:(l=o.container.type,a.push(...o.container.providers(o))):l=mL;const d=new Qd(l,o.viewContainerRef,_i.create({parent:s||this._injector,providers:a}),o.componentFactoryResolver);return e.attach(d).instance}_attachDialogContent(e,i,o,s){if(e instanceof cr){const a=this._createInjector(s,i,o,void 0);let l={$implicit:s.data,dialogRef:i};s.templateContext&&(l={...l,..."function"==typeof s.templateContext?s.templateContext():s.templateContext}),o.attachTemplatePortal(new ec(e,null,l,a))}else{const a=this._createInjector(s,i,o,this._injector),l=o.attachComponentPortal(new Qd(e,s.viewContainerRef,a,s.componentFactoryResolver));i.componentInstance=l.instance}}_createInjector(e,i,o,s){const a=e.injector||e.viewContainerRef?.injector,l=[{provide:C9,useValue:e.data},{provide:M1,useValue:i}];return e.providers&&("function"==typeof e.providers?l.push(...e.providers(i,e,o)):l.push(...e.providers)),e.direction&&(!a||!a.get(Or,null,{optional:!0}))&&l.push({provide:Or,useValue:{value:e.direction,change:Ge()}}),_i.create({parent:a||s,providers:l})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((s,a)=>{s?a.setAttribute("aria-hidden",s):a.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let o=i.length-1;o>-1;o--){const s=i[o];s!==e&&"SCRIPT"!==s.nodeName&&"STYLE"!==s.nodeName&&!s.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(s,s.getAttribute("aria-hidden")),s.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}}return n.\u0275fac=function(e){return new(e||n)(we(ro),we(_i),we(k9,8),we(n,12),we(sg),we(_L))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function w1(n,t){let e=n.length;for(;e--;)t(n[e])}let L9=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[gL,D9],imports:[eu,Jd,y1,Jd]}),n})();const E9=["text"];function I9(n,t){if(1&n&&xe(0,"mat-pseudo-checkbox",5),2&n){const e=z();M("state",e.selected?"checked":"unchecked")("disabled",e.disabled)}}function P9(n,t){if(1&n&&(D(0,"span",6),E(1),x()),2&n){const e=z();c(1),ce("(",e.group.label,")")}}const O9=[[["mat-icon"]],"*"],A9=["mat-icon","*"],R9=new He("mat-sanity-checks",{providedIn:"root",factory:function F9(){return!0}});let Vn=(()=>{class n{constructor(e,i,o){this._sanityChecks=i,this._document=o,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!r1()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}}return n.\u0275fac=function(e){return new(e||n)(we(fL),we(R9,8),we(Dt))},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Sf,Sf]}),n})();function iu(n){return class extends n{constructor(...t){super(...t),this._disabled=!1}get disabled(){return this._disabled}set disabled(t){this._disabled=hn(t)}}}function Af(n,t){return class extends n{constructor(...e){super(...e),this.defaultColor=t,this.color=t}get color(){return this._color}set color(e){const i=e||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}}}function Ff(n){return class extends n{constructor(...t){super(...t),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(t){this._disableRipple=hn(t)}}}function yL(n,t=0){return class extends n{constructor(...e){super(...e),this._tabIndex=t,this.defaultTabIndex=t}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(e){this._tabIndex=null!=e?Mo(e):this.defaultTabIndex}}}function ML(n){return class extends n{constructor(...t){super(...t),this.errorState=!1}updateErrorState(){const t=this.errorState,s=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);s!==t&&(this.errorState=s,this.stateChanges.next())}}}let Y9=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.dirty||i&&i.submitted))}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),x1=(()=>{class n{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class B9{constructor(t,e,i,o=!1){this._renderer=t,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const wL=el({passive:!0,capture:!0});class H9{constructor(){this._events=new Map,this._delegateEventHandler=t=>{const e=tl(t);e&&this._events.get(t.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(s=>s.handleEvent(t))})}}addHandler(t,e,i,o){const s=this._events.get(e);if(s){const a=s.get(i);a?a.add(o):s.set(i,new Set([o]))}else this._events.set(e,new Map([[i,new Set([o])]])),t.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,wL)})}removeHandler(t,e,i){const o=this._events.get(t);if(!o)return;const s=o.get(e);!s||(s.delete(i),0===s.size&&o.delete(e),0===o.size&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,wL)))}}const xL={enterDuration:225,exitDuration:150},CL=el({passive:!0,capture:!0}),kL=["mousedown","touchstart"],SL=["mouseup","mouseleave","touchend","touchcancel"];class Nf{constructor(t,e,i,o){this._target=t,this._ngZone=e,this._platform=o,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,o.isBrowser&&(this._containerElement=ca(i))}fadeInRipple(t,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s={...xL,...i.animation};i.centered&&(t=o.left+o.width/2,e=o.top+o.height/2);const a=i.radius||function j9(n,t,e){const i=Math.max(Math.abs(n-e.left),Math.abs(n-e.right)),o=Math.max(Math.abs(t-e.top),Math.abs(t-e.bottom));return Math.sqrt(i*i+o*o)}(t,e,o),l=t-o.left,d=e-o.top,w=s.enterDuration,P=document.createElement("div");P.classList.add("mat-ripple-element"),P.style.left=l-a+"px",P.style.top=d-a+"px",P.style.height=2*a+"px",P.style.width=2*a+"px",null!=i.color&&(P.style.backgroundColor=i.color),P.style.transitionDuration=`${w}ms`,this._containerElement.appendChild(P);const Y=window.getComputedStyle(P),te=Y.transitionDuration,pe="none"===Y.transitionProperty||"0s"===te||"0s, 0s"===te||0===o.width&&0===o.height,ke=new B9(this,P,i,pe);P.style.transform="scale3d(1, 1, 1)",ke.state=0,i.persistent||(this._mostRecentTransientRipple=ke);let Ie=null;return!pe&&(w||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const Re=()=>this._finishRippleTransition(ke),Xe=()=>this._destroyRipple(ke);P.addEventListener("transitionend",Re),P.addEventListener("transitioncancel",Xe),Ie={onTransitionEnd:Re,onTransitionCancel:Xe}}),this._activeRipples.set(ke,Ie),(pe||!w)&&this._finishRippleTransition(ke),ke}fadeOutRipple(t){if(2===t.state||3===t.state)return;const e=t.element,i={...xL,...t.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",t.state=2,(t._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){const e=ca(t);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,kL.forEach(i=>{Nf._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(t){"mousedown"===t.type?this._onMousedown(t):"touchstart"===t.type?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{SL.forEach(e=>{this._triggerElement.addEventListener(e,this,CL)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){0===t.state?this._startFadeOutTransition(t):2===t.state&&this._destroyRipple(t)}_startFadeOutTransition(t){const e=t===this._mostRecentTransientRipple,{persistent:i}=t.config;t.state=1,!i&&(!e||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){const e=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=3,null!==e&&(t.element.removeEventListener("transitionend",e.onTransitionEnd),t.element.removeEventListener("transitioncancel",e.onTransitionCancel)),t.element.remove()}_onMousedown(t){const e=_1(t),i=this._lastTouchStartEvent&&Date.now(){!t.config.persistent&&(1===t.state||t.config.terminateOnPointerUp&&0===t.state)&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const t=this._triggerElement;t&&(kL.forEach(e=>Nf._eventManager.removeHandler(e,t,this)),this._pointerUpEventsRegistered&&SL.forEach(e=>t.removeEventListener(e,this,CL)))}}Nf._eventManager=new H9;const DL=new He("mat-ripple-global-options");let Ls=(()=>{class n{constructor(e,i,o,s,a){this._elementRef=e,this._animationMode=a,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new Nf(this,i,e,o)}get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,o){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...o}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt),F(fi),F(DL,8),F(zi,8))},n.\u0275dir=Ke({type:n,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(e,i){2&e&&Gt("mat-ripple-unbounded",i.unbounded)},inputs:{color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],radius:["matRippleRadius","radius"],animation:["matRippleAnimation","animation"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"]},exportAs:["matRipple"]}),n})(),Yf=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,Vn]}),n})(),z9=(()=>{class n{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1}}return n.\u0275fac=function(e){return new(e||n)(F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:8,hostBindings:function(e,i){2&e&&Gt("mat-pseudo-checkbox-indeterminate","indeterminate"===i.state)("mat-pseudo-checkbox-checked","checked"===i.state)("mat-pseudo-checkbox-disabled",i.disabled)("_mat-animation-noopable","NoopAnimations"===i._animationMode)},inputs:{state:"state",disabled:"disabled"},decls:0,vars:0,template:function(e,i){},styles:['.mat-pseudo-checkbox{border:2px solid;border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}.mat-pseudo-checkbox-checked::after{top:2.7px;width:10px;height:4px}'],encapsulation:2,changeDetection:0}),n})(),U9=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn]}),n})();const TL=new He("MAT_OPTION_PARENT_COMPONENT"),LL=new He("MatOptgroup");let W9=0;class $9{constructor(t,e=!1){this.source=t,this.isUserInput=e}}let G9=(()=>{class n{constructor(e,i,o,s){this._element=e,this._changeDetectorRef=i,this._parent=o,this.group=s,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+W9++,this.onSelectionChange=new ht,this._stateChanges=new X}get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=hn(e)}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}deselect(){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}focus(e,i){const o=this._getHostElement();"function"==typeof o.focus&&o.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!Ts(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getAriaSelected(){return this.selected||!this.multiple&&null}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new $9(this,e))}}return n.\u0275fac=function(e){Ba()},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(E9,7),2&e){let o;nt(o=it())&&(i._text=o.first)}},inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}}),n})(),ru=(()=>{class n extends G9{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(TL,8),F(LL,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-mdc-option","mat-mdc-focus-indicator","mdc-list-item"],hostVars:12,hostBindings:function(e,i){1&e&&ye("click",function(){return i._selectViaInteraction()})("keydown",function(s){return i._handleKeydown(s)}),2&e&&(Js("id",i.id),Ut("tabindex",i._getTabIndex())("aria-selected",i._getAriaSelected())("aria-disabled",i.disabled.toString()),Gt("mdc-list-item--selected",i.selected)("mat-mdc-option-multiple",i.multiple)("mat-mdc-option-active",i.active)("mdc-list-item--disabled",i.disabled))},exportAs:["matOption"],features:[dt],ngContentSelectors:A9,decls:7,vars:4,consts:[["class","mat-mdc-option-pseudo-checkbox",3,"state","disabled",4,"ngIf"],[1,"mdc-list-item__primary-text"],["text",""],["class","cdk-visually-hidden",4,"ngIf"],["mat-ripple","",1,"mat-mdc-option-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-mdc-option-pseudo-checkbox",3,"state","disabled"],[1,"cdk-visually-hidden"]],template:function(e,i){1&e&&(gr(O9),V(0,I9,1,2,"mat-pseudo-checkbox",0),vn(1),D(2,"span",1,2),vn(4,1),x(),V(5,P9,2,1,"span",3),xe(6,"div",4)),2&e&&(M("ngIf",i.multiple),c(5),M("ngIf",i.group&&i.group._inert),c(1),M("matRippleTrigger",i._getHostElement())("matRippleDisabled",i.disabled||i.disableRipple))},dependencies:[Ls,It,z9],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option.mdc-list-item{align-items:center}.mat-mdc-option.mdc-list-item--disabled{opacity:.38;cursor:default}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox{margin-right:0;margin-left:16px}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-active::before{content:""}'],encapsulation:2,changeDetection:0}),n})(),EL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Yf,ia,Vn,U9]}),n})();function Z9(n,t){}class Tn{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}let X9=(()=>{class n extends mL{constructor(e,i,o,s,a,l,d,w){super(e,i,o,s,a,l,d,w),this._animationStateChanged=new ht}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(m1),F(Dt,8),F(Tn),F(cg),F(pt),F(Of),F(il))},n.\u0275cmp=qe({type:n,selectors:[["ng-component"]],features:[dt],decls:0,vars:0,template:function(e,i){},encapsulation:2}),n})();const IL="--mat-dialog-transition-duration";function PL(n){return null==n?null:"number"==typeof n?n:n.endsWith("ms")?Mo(n.substring(0,n.length-2)):n.endsWith("s")?1e3*Mo(n.substring(0,n.length-1)):"0"===n?0:null}let Q9=(()=>{class n extends X9{constructor(e,i,o,s,a,l,d,w,P){super(e,i,o,s,a,l,d,P),this._animationMode=w,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._hostElement=this._elementRef.nativeElement,this._openAnimationDuration=this._animationsEnabled?PL(this._config.enterAnimationDuration)??150:0,this._closeAnimationDuration=this._animationsEnabled?PL(this._config.exitAnimationDuration)??pL_DIALOG_ANIMATION_CLOSE_TIME_MS:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._openAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._closeAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._openAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(IL,`${this._openAnimationDuration}ms`),this._hostElement.classList.add("mdc-dialog--opening"),this._hostElement.classList.add(nc_OPEN),this._waitForAnimationToComplete(this._openAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(nc_OPEN),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._closeAnimationDuration}),this._hostElement.classList.remove(nc_OPEN),this._animationsEnabled?(this._hostElement.style.setProperty(IL,`${this._openAnimationDuration}ms`),this._hostElement.classList.add("mdc-dialog--closing"),this._waitForAnimationToComplete(this._closeAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_clearAnimationClasses(){this._hostElement.classList.remove("mdc-dialog--opening"),this._hostElement.classList.remove("mdc-dialog--closing")}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(m1),F(Dt,8),F(Tn),F(cg),F(pt),F(Of),F(zi,8),F(il))},n.\u0275cmp=qe({type:n,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:8,hostBindings:function(e,i){2&e&&(Js("id",i._config.id),Ut("aria-modal",i._config.ariaModal)("role",i._config.role)("aria-labelledby",i._config.ariaLabel?null:i._ariaLabelledBy)("aria-label",i._config.ariaLabel)("aria-describedby",i._config.ariaDescribedBy||null),Gt("_mat-animation-noopable",!i._animationsEnabled))},features:[dt],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,Z9,0,0,"ng-template",2),x()())},dependencies:[nl],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;transform:scale(0.8);opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{transform:none;opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{display:block;width:100%;height:100%}.mat-mdc-dialog-container{outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, var(--mdc-shape-medium, 4px))}.mat-mdc-dialog-container.mdc-dialog--scrollable .mdc-dialog__title,.mat-mdc-dialog-container.mdc-dialog--scrollable .mdc-dialog__actions,.mat-mdc-dialog-container.mdc-dialog--scrollable.mdc-dialog-scroll-divider-footer .mdc-dialog__actions{border-color:var(--mdc-dialog-with-divider-divider-color, black)}.mat-mdc-dialog-container.mdc-dialog--scrollable .mdc-dialog__title{border-bottom-color:var(--mdc-dialog-with-divider-divider-color, black)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, "Arial");line-height:var(--mdc-dialog-subhead-line-height, 14px);font-size:var(--mdc-dialog-subhead-size, 14px);font-weight:var(--mdc-dialog-subhead-weight, 500);letter-spacing:var(--mdc-dialog-subhead-tracking, 1px)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, black)}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, "Arial");line-height:var(--mdc-dialog-supporting-text-line-height, 14px);font-size:var(--mdc-dialog-supporting-text-size, 14px);font-weight:var(--mdc-dialog-supporting-text-weight, 500);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 1px)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, black)}.mat-mdc-dialog-container .mdc-dialog__container{transition-duration:var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container{transition:none}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-actions{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2}),n})();class Nn{constructor(t,e,i){this._ref=t,this._containerInstance=i,this._afterOpened=new X,this._beforeClosed=new X,this._state=0,this.disableClose=e.disableClose,this.id=t.id,i._animationStateChanged.pipe(Si(o=>"opened"===o.state),ti(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(Si(o=>"closed"===o.state),ti(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),vt(this.backdropClick(),this.keydownEvents().pipe(Si(o=>27===o.keyCode&&!this.disableClose&&!Ts(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),OL(this,"keydown"===o.type?"keyboard":"mouse"))})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(Si(e=>"closing"===e.state),ti(1)).subscribe(e=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(t){let e=this._ref.config.positionStrategy;return t&&(t.left||t.right)?t.left?e.left(t.left):e.right(t.right):e.centerHorizontally(),t&&(t.top||t.bottom)?t.top?e.top(t.top):e.bottom(t.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(t="",e=""){return this._ref.updateSize(t,e),this}addPanelClass(t){return this._ref.addPanelClass(t),this}removePanelClass(t){return this._ref.removePanelClass(t),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function OL(n,t,e){return n._closeInteractionType=t,n.close(e)}const Ti=new He("MatMdcDialogData"),AL=new He("mat-mdc-dialog-default-options"),FL=new He("mat-mdc-dialog-scroll-strategy"),ez={provide:FL,deps:[ro],useFactory:function J9(n){return()=>n.scrollStrategies.block()}};let tz=0,nz=(()=>{class n{constructor(e,i,o,s,a,l,d,w,P,Y){this._overlay=e,this._defaultOptions=o,this._parentDialog=s,this._dialogRefConstructor=d,this._dialogContainerType=w,this._dialogDataToken=P,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new X,this._afterOpenedAtThisLevel=new X,this._idPrefix="mat-dialog-",this.dialogConfigClass=Tn,this.afterAllClosed=rf(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(yo(void 0))),this._scrollStrategy=l,this._dialog=i.get(gL)}get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}open(e,i){let o;(i={...this._defaultOptions||new Tn,...i}).id=i.id||`${this._idPrefix}${tz++}`,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const s=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:ug,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(a,l,d)=>(o=new this._dialogRefConstructor(a,i,d),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:d},{provide:this._dialogDataToken,useValue:l.data},{provide:this._dialogRefConstructor,useValue:o}])});return o.componentInstance=s.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{const a=this.openDialogs.indexOf(o);a>-1&&(this.openDialogs.splice(a,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}}return n.\u0275fac=function(e){Ba()},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Ln=(()=>{class n extends nz{constructor(e,i,o,s,a,l,d,w){super(e,i,s,l,d,a,Nn,Q9,Ti,w),this._idPrefix="mat-mdc-dialog-"}}return n.\u0275fac=function(e){return new(e||n)(we(ro),we(_i),we(zh,8),we(AL,8),we(FL),we(n,12),we(sg),we(zi,8))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),iz=0,rz=(()=>{class n{constructor(e,i,o){this.dialogRef=e,this._elementRef=i,this._dialog=o,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=RL(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){OL(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}}return n.\u0275fac=function(e){return new(e||n)(F(Nn,8),F(bt),F(Ln))},n.\u0275dir=Ke({type:n,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(e,i){1&e&&ye("click",function(s){return i._onButtonClick(s)}),2&e&&Ut("aria-label",i.ariaLabel||null)("type",i.type)},inputs:{ariaLabel:["aria-label","ariaLabel"],type:"type",dialogResult:["mat-dialog-close","dialogResult"],_matDialogClose:["matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[qi]}),n})(),oz=(()=>{class n{constructor(e,i,o){this._dialogRef=e,this._elementRef=i,this._dialog=o,this.id="mat-mdc-dialog-title-"+iz++}ngOnInit(){this._dialogRef||(this._dialogRef=RL(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{const e=this._dialogRef._containerInstance;e&&!e._ariaLabelledBy&&(e._ariaLabelledBy=this.id)})}}return n.\u0275fac=function(e){return new(e||n)(F(Nn,8),F(bt),F(Ln))},n.\u0275dir=Ke({type:n,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(e,i){2&e&&Js("id",i.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]}),n})(),C1=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"]}),n})();function RL(n,t){let e=n.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?t.find(i=>i.id===e.id):null}let sz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[Ln,ez],imports:[L9,eu,Jd,Vn,Vn]}),n})();const YL=["mat-button",""],BL=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],HL=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],VL=".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}",lz=["mat-icon-button",""],cz=["*"],dz=[{selector:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{selector:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{selector:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{selector:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{selector:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{selector:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{selector:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],uz=Af(iu(Ff(class{constructor(n){this._elementRef=n}})));let k1=(()=>{class n extends uz{constructor(e,i,o,s){super(e),this._platform=i,this._ngZone=o,this._animationMode=s,this._focusMonitor=Et(il),this._isFab=!1;const a=e.nativeElement.classList;for(const l of dz)this._hasHostAttributes(l.selector)&&l.mdcClasses.forEach(d=>{a.add(d)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_hasHostAttributes(...e){return e.some(i=>this._elementRef.nativeElement.hasAttribute(i))}_isRippleDisabled(){return this.disableRipple||this.disabled}}return n.\u0275fac=function(e){Ba()},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(Ls,5),2&e){let o;nt(o=it())&&(i.ripple=o.first)}},features:[dt]}),n})(),fz=(()=>{class n extends k1{constructor(e,i,o,s){super(e,i,o,s),this._haltDisabledEvents=a=>{this.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}}ngOnInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("click",this._haltDisabledEvents)})}ngOnDestroy(){super.ngOnDestroy(),this._elementRef.nativeElement.removeEventListener("click",this._haltDisabledEvents)}}return n.\u0275fac=function(e){Ba()},n.\u0275dir=Ke({type:n,features:[dt]}),n})(),$r=(()=>{class n extends k1{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(fi),F(pt),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:7,hostBindings:function(e,i){2&e&&(Ut("disabled",i.disabled||null),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[dt],attrs:YL,ngContentSelectors:HL,decls:8,vars:6,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],["matRipple","",1,"mat-mdc-button-ripple",3,"matRippleDisabled","matRippleTrigger"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(gr(BL),xe(0,"span",0),vn(1),D(2,"span",1),vn(3,1),x(),vn(4,2),xe(5,"span",2)(6,"span",3)(7,"span",4)),2&e&&(Gt("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab),c(6),M("matRippleDisabled",i._isRippleDisabled())("matRippleTrigger",i._elementRef.nativeElement))},dependencies:[Ls],styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0}),n})(),pz=(()=>{class n extends fz{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(fi),F(pt),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostVars:9,hostBindings:function(e,i){2&e&&(Ut("disabled",i.disabled||null)("tabindex",i.disabled?-1:i.tabIndex)("aria-disabled",i.disabled.toString()),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[dt],attrs:YL,ngContentSelectors:HL,decls:8,vars:6,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],["matRipple","",1,"mat-mdc-button-ripple",3,"matRippleDisabled","matRippleTrigger"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(gr(BL),xe(0,"span",0),vn(1),D(2,"span",1),vn(3,1),x(),vn(4,2),xe(5,"span",2)(6,"span",3)(7,"span",4)),2&e&&(Gt("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab),c(6),M("matRippleDisabled",i._isRippleDisabled())("matRippleTrigger",i._elementRef.nativeElement))},dependencies:[Ls],styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',VL],encapsulation:2,changeDetection:0}),n})(),rl=(()=>{class n extends k1{constructor(e,i,o,s){super(e,i,o,s)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(fi),F(pt),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["button","mat-icon-button",""]],hostVars:7,hostBindings:function(e,i){2&e&&(Ut("disabled",i.disabled||null),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[dt],attrs:lz,ngContentSelectors:cz,decls:5,vars:3,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-mdc-focus-indicator"],["matRipple","",1,"mat-mdc-button-ripple",3,"matRippleDisabled","matRippleCentered","matRippleTrigger"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(gr(),xe(0,"span",0),vn(1),xe(2,"span",1)(3,"span",2)(4,"span",3)),2&e&&(c(3),M("matRippleDisabled",i._isRippleDisabled())("matRippleCentered",!0)("matRippleTrigger",i._elementRef.nativeElement))},dependencies:[Ls],styles:['.mdc-icon-button{font-size:24px;width:48px;height:48px;padding:12px}.mdc-icon-button .mdc-icon-button__focus-ring{max-height:48px;max-width:48px}.mdc-icon-button.mdc-icon-button--reduced-size .mdc-icon-button__ripple{width:40px;height:40px;margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-icon-button.mdc-icon-button--reduced-size .mdc-icon-button__focus-ring{max-height:40px;max-width:40px}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mdc-icon-button svg,.mdc-icon-button img{width:24px;height:24px}.mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size, 48px);width:var(--mdc-icon-button-state-layer-size, 48px);color:var(--mdc-icon-button-icon-color, inherit);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity, 0.38)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color, #000)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',VL],encapsulation:2,changeDetection:0}),n})(),jL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,Yf,Vn]}),n})();function _z(n,t){if(1&n){const e=et();D(0,"div",2)(1,"button",3),ye("click",function(){return Pe(e),Oe(z().action())}),E(2),x()()}if(2&n){const e=z();c(2),ce(" ",e.data.action," ")}}const gz=["label"];function bz(n,t){}const vz=Math.pow(2,31)-1;class hg{constructor(t,e){this._overlayRef=e,this._afterDismissed=new X,this._afterOpened=new X,this._onAction=new X,this._dismissedByAction=!1,this.containerInstance=t,t._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(t){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(t,vz))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}const S1=new He("MatSnackBarData");class fg{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}let yz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]}),n})(),Mz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]}),n})(),wz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]}),n})(),xz=(()=>{class n{constructor(e,i){this.snackBarRef=e,this.data=i}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}}return n.\u0275fac=function(e){return new(e||n)(F(hg),F(S1))},n.\u0275cmp=qe({type:n,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions","",4,"ngIf"],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(e,i){1&e&&(D(0,"div",0),E(1),x(),V(2,_z,3,1,"div",1)),2&e&&(c(1),ce(" ",i.data.message,"\n"),c(1),M("ngIf",i.hasAction))},dependencies:[It,$r,yz,Mz,wz],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0}),n})();const Cz={snackBarState:oa("state",[go("void, hidden",Zn({transform:"scale(0.8)",opacity:0})),go("visible",Zn({transform:"scale(1)",opacity:1})),Er("* => visible",Wr("150ms cubic-bezier(0, 0, 0.2, 1)")),Er("* => void, * => hidden",Wr("75ms cubic-bezier(0.4, 0.0, 1, 1)",Zn({opacity:0})))])};let kz=(()=>{class n extends tg{constructor(e,i,o,s,a){super(),this._ngZone=e,this._elementRef=i,this._changeDetectorRef=o,this._platform=s,this.snackBarConfig=a,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new X,this._onExit=new X,this._onEnter=new X,this._animationState="void",this.attachDomPortal=l=>{this._assertNotAttached();const d=this._portalOutlet.attachDomPortal(l);return this._afterPortalAttached(),d},this._live="assertive"!==a.politeness||a.announcementMessage?"off"===a.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),i}attachTemplatePortal(e){this._assertNotAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),i}onAnimationEnd(e){const{fromState:i,toState:o}=e;if(("void"===o&&"void"!==i||"hidden"===o)&&this._completeExit(),"visible"===o){const s=this._onEnter;this._ngZone.run(()=>{s.next(),s.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe(ti(1)).subscribe(()=>{this._ngZone.run(()=>{this._onExit.next(),this._onExit.complete()})})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(o=>e.classList.add(o)):e.classList.add(i))}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const e=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(e&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&e.contains(document.activeElement)&&(o=document.activeElement),e.removeAttribute("aria-hidden"),i.appendChild(e),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}}return n.\u0275fac=function(e){return new(e||n)(F(pt),F(bt),F(ui),F(fi),F(fg))},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(nl,7),2&e){let o;nt(o=it())&&(i._portalOutlet=o.first)}},features:[dt]}),n})(),Sz=(()=>{class n extends kz{_afterPortalAttached(){super._afterPortalAttached();const e=this._label.nativeElement,i="mdc-snackbar__label";e.classList.toggle(i,!e.querySelector(`.${i}`))}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275cmp=qe({type:n,selectors:[["mat-snack-bar-container"]],viewQuery:function(e,i){if(1&e&&ft(gz,7),2&e){let o;nt(o=it())&&(i._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container","mdc-snackbar--open"],hostVars:1,hostBindings:function(e,i){1&e&&Pv("@state.done",function(s){return i.onAnimationEnd(s)}),2&e&&Yv("@state",i._animationState)},features:[dt],decls:6,vars:2,consts:[[1,"mdc-snackbar__surface"],[1,"mat-mdc-snack-bar-label"],["label",""],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1,2)(3,"div",3),V(4,bz,0,0,"ng-template",4),x(),xe(5,"div"),x()()),2&e&&(c(5),Ut("aria-live",i._live)("role",i._role))},dependencies:[nl],styles:['.mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__dismiss .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-snack-bar-container .mdc-snackbar__dismiss svg,.mat-mdc-snack-bar-container .mdc-snackbar__dismiss img{width:var(--mdc-icon-button-icon-size, 24px);height:var(--mdc-icon-button-icon-size, 24px)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color, inherit)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color, inherit)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size, inherit);font-family:var(--mdc-snackbar-supporting-text-font, inherit);font-weight:var(--mdc-snackbar-supporting-text-weight, inherit);line-height:var(--mdc-snackbar-supporting-text-line-height, inherit)}.cdk-high-contrast-active .mat-mdc-snack-bar-container{border:solid 1px}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-mdc-snack-bar-button-color, transparent);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}'],encapsulation:2,data:{animation:[Cz.snackBarState]}}),n})(),zL=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[eu,Jd,ia,jL,Vn,Vn]}),n})();const D1=new He("mat-snack-bar-default-options",{providedIn:"root",factory:function Dz(){return new fg}});let Tz=(()=>{class n{constructor(e,i,o,s,a,l){this._overlay=e,this._live=i,this._injector=o,this._breakpointObserver=s,this._parentSnackBar=a,this._defaultConfig=l,this._snackBarRefAtThisLevel=null}get _openedSnackBarRef(){const e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}openFromComponent(e,i){return this._attach(e,i)}openFromTemplate(e,i){return this._attach(e,i)}open(e,i="",o){const s={...this._defaultConfig,...o};return s.data={message:e,action:i},s.announcementMessage===e&&(s.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,s)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,i){const s=_i.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:fg,useValue:i}]}),a=new Qd(this.snackBarContainerComponent,i.viewContainerRef,s),l=e.attach(a);return l.instance.snackBarConfig=i,l.instance}_attach(e,i){const o={...new fg,...this._defaultConfig,...i},s=this._createOverlay(o),a=this._attachSnackBarContainer(s,o),l=new hg(a,s);if(e instanceof cr){const d=new ec(e,null,{$implicit:o.data,snackBarRef:l});l.instance=a.attachTemplatePortal(d)}else{const d=this._createInjector(o,l),w=new Qd(e,void 0,d),P=a.attachComponentPortal(w);l.instance=P.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(Cn(s.detachments())).subscribe(d=>{s.overlayElement.classList.toggle(this.handsetCssClass,d.matches)}),o.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(l,o),this._openedSnackBarRef=l,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration))}_createOverlay(e){const i=new Pf;i.direction=e.direction;let o=this._overlay.position().global();const s="rtl"===e.direction,a="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!s||"end"===e.horizontalPosition&&s,l=!a&&"center"!==e.horizontalPosition;return a?o.left("0"):l?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}_createInjector(e,i){return _i.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:hg,useValue:i},{provide:S1,useValue:e.data}]})}}return n.\u0275fac=function(e){return new(e||n)(we(ro),we(b1),we(_i),we(h1),we(n,12),we(D1))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),Lz=(()=>{class n extends Tz{constructor(e,i,o,s,a,l){super(e,i,o,s,a,l),this.simpleSnackBarComponent=xz,this.snackBarContainerComponent=Sz,this.handsetCssClass="mat-mdc-snack-bar-handset"}}return n.\u0275fac=function(e){return new(e||n)(we(ro),we(b1),we(_i),we(h1),we(n,12),we(D1))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:zL}),n})();function UL(...n){if(1===n.length){const t=n[0];if(y(t))return pg(t,null);if(p(t)&&Object.getPrototypeOf(t)===Object.prototype){const e=Object.keys(t);return pg(e.map(i=>t[i]),e)}}if("function"==typeof n[n.length-1]){const t=n.pop();return pg(n=1===n.length&&y(n[0])?n[0]:n,null).pipe(Ce(e=>t(...e)))}return pg(n,null)}function pg(n,t){return new de(e=>{const i=n.length;if(0===i)return void e.complete();const o=new Array(i);let s=0,a=0;for(let l=0;l{w||(w=!0,a++),o[l]=P},error:P=>e.error(P),complete:()=>{s++,(s===i||!w)&&(a===i&&e.next(t?t.reduce((P,Y,q)=>(P[Y]=o[q],P),{}):o),e.complete())}}))}})}const Ez=["*"];let mg;function Bf(n){return function Iz(){if(void 0===mg&&(mg=null,typeof window<"u")){const n=window;void 0!==n.trustedTypes&&(mg=n.trustedTypes.createPolicy("angular#components",{createHTML:t=>t}))}return mg}()?.createHTML(n)||n}function WL(n){return Error(`Unable to find icon with the name "${n}"`)}function $L(n){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${n}".`)}function GL(n){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${n}".`)}class ic{constructor(t,e,i){this.url=t,this.svgText=e,this.options=i}}let _g=(()=>{class n{constructor(e,i,o,s){this._httpClient=e,this._sanitizer=i,this._errorHandler=s,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=o}addSvgIcon(e,i,o){return this.addSvgIconInNamespace("",e,i,o)}addSvgIconLiteral(e,i,o){return this.addSvgIconLiteralInNamespace("",e,i,o)}addSvgIconInNamespace(e,i,o,s){return this._addSvgIconConfig(e,i,new ic(o,null,s))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,s){const a=this._sanitizer.sanitize(xn.HTML,o);if(!a)throw GL(o);const l=Bf(a);return this._addSvgIconConfig(e,i,new ic("",l,s))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,o){return this._addSvgIconSetConfig(e,new ic(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const s=this._sanitizer.sanitize(xn.HTML,i);if(!s)throw GL(i);const a=Bf(s);return this._addSvgIconSetConfig(e,new ic("",a,o))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){const i=this._sanitizer.sanitize(xn.RESOURCE_URL,e);if(!i)throw $L(e);const o=this._cachedIconsByUrl.get(i);return o?Ge(gg(o)):this._loadSvgIconFromConfig(new ic(e,null)).pipe(hi(s=>this._cachedIconsByUrl.set(i,s)),Ce(s=>gg(s)))}getNamedSvgIcon(e,i=""){const o=qL(i,e);let s=this._svgIconConfigs.get(o);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(i,e),s)return this._svgIconConfigs.set(o,s),this._getSvgFromConfig(s);const a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):Pr(WL(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?Ge(gg(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(Ce(i=>gg(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?Ge(o):UL(i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(no(l=>{const w=`Loading icon set URL: ${this._sanitizer.sanitize(xn.RESOURCE_URL,a.url)} failed: ${l.message}`;return this._errorHandler.handleError(new Error(w)),Ge(null)})))).pipe(Ce(()=>{const a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw WL(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let o=i.length-1;o>=0;o--){const s=i[o];if(s.svgText&&s.svgText.toString().indexOf(e)>-1){const a=this._svgElementFromConfig(s),l=this._extractSvgIconFromSet(a,e,s.options);if(l)return l}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(hi(i=>e.svgText=i),Ce(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?Ge(null):this._fetchIcon(e).pipe(hi(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const s=e.querySelector(`[id="${i}"]`);if(!s)return null;const a=s.cloneNode(!0);if(a.removeAttribute("id"),"svg"===a.nodeName.toLowerCase())return this._setSvgAttributes(a,o);if("symbol"===a.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(a),o);const l=this._svgElementFromString(Bf(""));return l.appendChild(a),this._setSvgAttributes(l,o)}_svgElementFromString(e){const i=this._document.createElement("DIV");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}_toSvgElement(e){const i=this._svgElementFromString(Bf("")),o=e.attributes;for(let s=0;sBf(w)),T_(()=>this._inProgressUrlFetches.delete(a)),xa());return this._inProgressUrlFetches.set(a,d),d}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(qL(e,i),o),this}_addSvgIconSetConfig(e,i){const o=this._iconSetConfigs.get(e);return o?o.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){const i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let o=0;ot?t.pathname+t.search:""}}}),KL=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],Bz=KL.map(n=>`[${n}]`).join(", "),Hz=/^url\(['"]?#(.*?)['"]?\)$/;let yn=(()=>{class n extends Fz{constructor(e,i,o,s,a,l){super(e),this._iconRegistry=i,this._location=s,this._errorHandler=a,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=T.EMPTY,l&&(l.color&&(this.color=this.defaultColor=l.color),l.fontSet&&(this.fontSet=l.fontSet)),o||e.nativeElement.setAttribute("aria-hidden","true")}get inline(){return this._inline}set inline(e){this._inline=hn(e)}get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}_splitIconName(e){if(!e)return["",""];const i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const e=this._elementsWithExternalReferences;if(e&&e.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){const e=this._elementRef.nativeElement;let i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const o=e.childNodes[i];(1!==o.nodeType||"svg"===o.nodeName.toLowerCase())&&o.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(o=>o.length>0);this._previousFontSetClass.forEach(o=>e.classList.remove(o)),i.forEach(o=>e.classList.add(o)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return"string"==typeof e?e.trim().split(" ")[0]:e}_prependPathToReferences(e){const i=this._elementsWithExternalReferences;i&&i.forEach((o,s)=>{o.forEach(a=>{s.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(Bz),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s{const l=i[s],d=l.getAttribute(a),w=d?d.match(Hz):null;if(w){let P=o.get(l);P||(P=[],o.set(l,P)),P.push({name:a,value:w[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){const[i,o]=this._splitIconName(e);i&&(this._svgNamespace=i),o&&(this._svgName=o),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(o,i).pipe(ti(1)).subscribe(s=>this._setSvgElement(s),s=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${s.message}`))})}}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(_g),Na("aria-hidden"),F(Nz),F(Zs),F(Rz,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(e,i){2&e&&(Ut("data-mat-icon-type",i._usingFontIcon()?"font":"svg")("data-mat-icon-name",i._svgName||i.fontIcon)("data-mat-icon-namespace",i._svgNamespace||i.fontSet)("fontIcon",i._usingFontIcon()?i.fontIcon:null),Gt("mat-icon-inline",i.inline)("mat-icon-no-color","primary"!==i.color&&"accent"!==i.color&&"warn"!==i.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[dt],ngContentSelectors:Ez,decls:1,vars:0,template:function(e,i){1&e&&(gr(),vn(0))},styles:[".mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0}),n})(),Vz=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,Vn]}),n})();function zz(n,t,e){return 0===e?[t]:(n.push(t),n)}class Hf{}let ZL=(()=>{class n extends Hf{getTranslation(e){return Ge({})}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class T1{}let XL=(()=>{class n{handle(e){return e.key}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class bg{}let QL=(()=>{class n extends bg{compile(e,i){return e}compileTranslations(e,i){return e}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();function Vf(n,t){if(n===t)return!0;if(null===n||null===t)return!1;if(n!=n&&t!=t)return!0;let o,s,a,e=typeof n;if(e==typeof t&&"object"==e){if(!Array.isArray(n)){if(Array.isArray(t))return!1;for(s in a=Object.create(null),n){if(!Vf(n[s],t[s]))return!1;a[s]=!0}for(s in t)if(!(s in a)&&typeof t[s]<"u")return!1;return!0}if(!Array.isArray(t))return!1;if((o=n.length)==t.length){for(s=0;s{L1(t[i])?i in n?e[i]=JL(n[i],t[i]):Object.assign(e,{[i]:t[i]}):Object.assign(e,{[i]:t[i]})}),e}class vg{}let eE=(()=>{class n extends vg{constructor(){super(...arguments),this.templateMatcher=/{{\s?([^{}\s]*)\s?}}/g}interpolate(e,i){let o;return o="string"==typeof e?this.interpolateString(e,i):"function"==typeof e?this.interpolateFunction(e,i):e,o}getValue(e,i){let o=i.split(".");i="";do{i+=o.shift(),!ss(e)||!ss(e[i])||"object"!=typeof e[i]&&o.length?o.length?i+=".":e=void 0:(e=e[i],i="")}while(o.length);return e}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(o,s)=>{let a=this.getValue(i,s);return ss(a)?a:o}):e}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})();class tE{constructor(){this.currentLang=this.defaultLang,this.translations={},this.langs=[],this.onTranslationChange=new ht,this.onLangChange=new ht,this.onDefaultLangChange=new ht}}const E1=new He("USE_STORE"),I1=new He("USE_DEFAULT_LANG");let oo=(()=>{class n{constructor(e,i,o,s,a,l=!0,d=!1){this.store=e,this.currentLoader=i,this.compiler=o,this.parser=s,this.missingTranslationHandler=a,this.useDefaultLang=l,this.isolate=d,this.pending=!1,this._onTranslationChange=new ht,this._onLangChange=new ht,this._onDefaultLangChange=new ht,this._langs=[],this._translations={},this._translationRequests={}}get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(e){this.isolate?this._defaultLang=e:this.store.defaultLang=e}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(e){this.isolate?this._currentLang=e:this.store.currentLang=e}get langs(){return this.isolate?this._langs:this.store.langs}set langs(e){this.isolate?this._langs=e:this.store.langs=e}get translations(){return this.isolate?this._translations:this.store.translations}set translations(e){this.isolate?this._translations=e:this.store.translations=e}setDefaultLang(e){if(e===this.defaultLang)return;let i=this.retrieveTranslations(e);typeof i<"u"?(this.defaultLang||(this.defaultLang=e),i.pipe(ti(1)).subscribe(o=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(e===this.currentLang)return Ge(this.translations[e]);let i=this.retrieveTranslations(e);return typeof i<"u"?(this.currentLang||(this.currentLang=e),i.pipe(ti(1)).subscribe(o=>{this.changeLang(e)}),i):(this.changeLang(e),Ge(this.translations[e]))}retrieveTranslations(e){let i;return typeof this.translations[e]>"u"&&(this._translationRequests[e]=this._translationRequests[e]||this.getTranslation(e),i=this._translationRequests[e]),i}getTranslation(e){return this.pending=!0,this.loadingTranslations=this.currentLoader.getTranslation(e).pipe(xa()),this.loadingTranslations.pipe(ti(1)).subscribe(i=>{this.translations[e]=this.compiler.compileTranslations(i,e),this.updateLangs(),this.pending=!1},i=>{this.pending=!1}),this.loadingTranslations}setTranslation(e,i,o=!1){i=this.compiler.compileTranslations(i,e),this.translations[e]=o&&this.translations[e]?JL(this.translations[e],i):i,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){e.forEach(i=>{-1===this.langs.indexOf(i)&&this.langs.push(i)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(e,i,o){let s;if(i instanceof Array){let a={},l=!1;for(let d of i)a[d]=this.getParsedResult(e,d,o),"function"==typeof a[d].subscribe&&(l=!0);if(l){let d;for(let w of i){let P="function"==typeof a[w].subscribe?a[w]:Ge(a[w]);d=typeof d>"u"?P:vt(d,P)}return d.pipe(function Uz(){return function jz(n,t){return arguments.length>=2?function(i){return Z(D_(n,t),af(1),sf(t))(i)}:function(i){return Z(D_((o,s,a)=>n(o,s,a+1)),af(1))(i)}}(zz,[])}(),Ce(w=>{let P={};return w.forEach((Y,q)=>{P[i[q]]=Y}),P}))}return a}if(e&&(s=this.parser.interpolate(this.parser.getValue(e,i),o)),typeof s>"u"&&this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(s=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],i),o)),typeof s>"u"){let a={key:i,translateService:this};typeof o<"u"&&(a.interpolateParams=o),s=this.missingTranslationHandler.handle(a)}return typeof s<"u"?s:i}get(e,i){if(!ss(e)||!e.length)throw new Error('Parameter "key" required');if(this.pending)return de.create(o=>{let s=l=>{o.next(l),o.complete()},a=l=>{o.error(l)};this.loadingTranslations.subscribe(l=>{"function"==typeof(l=this.getParsedResult(this.compiler.compileTranslations(l,this.currentLang),e,i)).subscribe?l.subscribe(s,a):s(l)},a)});{let o=this.getParsedResult(this.translations[this.currentLang],e,i);return"function"==typeof o.subscribe?o:Ge(o)}}stream(e,i){if(!ss(e)||!e.length)throw new Error('Parameter "key" required');return ql(this.get(e,i),this.onLangChange.pipe(br(o=>{const s=this.getParsedResult(o.translations,e,i);return"function"==typeof s.subscribe?s:Ge(s)})))}instant(e,i){if(!ss(e)||!e.length)throw new Error('Parameter "key" required');let o=this.getParsedResult(this.translations[this.currentLang],e,i);if(typeof o.subscribe<"u"){if(e instanceof Array){let s={};return e.forEach((a,l)=>{s[e[l]]=e[l]}),s}return e}return o}set(e,i,o=this.currentLang){this.translations[o][e]=this.compiler.compile(i,o),this.updateLangs(),this.onTranslationChange.emit({lang:o,translations:this.translations[o]})}changeLang(e){this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang||this.changeDefaultLang(e)}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.getTranslation(e)}resetLang(e){this._translationRequests[e]=void 0,this.translations[e]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let e=window.navigator.languages?window.navigator.languages[0]:null;return e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,-1!==e.indexOf("-")&&(e=e.split("-")[0]),-1!==e.indexOf("_")&&(e=e.split("_")[0]),e}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let e=window.navigator.languages?window.navigator.languages[0]:null;return e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,e}}return n.\u0275fac=function(e){return new(e||n)(we(tE),we(Hf),we(bg),we(vg),we(T1),we(I1),we(E1))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),xt=(()=>{class n{constructor(e,i){this.translate=e,this._ref=i,this.value=""}updateValue(e,i,o){let s=a=>{this.value=void 0!==a?a:e,this.lastKey=e,this._ref.markForCheck()};if(o){let a=this.translate.getParsedResult(o,e,i);"function"==typeof a.subscribe?a.subscribe(s):s(a)}this.translate.get(e,i).subscribe(s)}transform(e,...i){if(!e||0===e.length)return e;if(Vf(e,this.lastKey)&&Vf(i,this.lastParams))return this.value;let o;if(ss(i[0])&&i.length)if("string"==typeof i[0]&&i[0].length){let s=i[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{o=JSON.parse(s)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${i[0]}`)}}else"object"==typeof i[0]&&!Array.isArray(i[0])&&(o=i[0]);return this.lastKey=e,this.lastParams=i,this.updateValue(e,o),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(s=>{this.lastKey&&s.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(e,o,s.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(s=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o,s.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}}return n.\u0275fac=function(e){return new(e||n)(F(oo,16),F(ui,16))},n.\u0275pipe=Jn({name:"translate",type:n,pure:!1}),n.\u0275prov=Ye({token:n,factory:n.\u0275fac}),n})(),nE=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:Hf,useClass:ZL},e.compiler||{provide:bg,useClass:QL},e.parser||{provide:vg,useClass:eE},e.missingTranslationHandler||{provide:T1,useClass:XL},tE,{provide:E1,useValue:e.isolate},{provide:I1,useValue:e.useDefaultLang},oo]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:Hf,useClass:ZL},e.compiler||{provide:bg,useClass:QL},e.parser||{provide:vg,useClass:eE},e.missingTranslationHandler||{provide:T1,useClass:XL},{provide:E1,useValue:e.isolate},{provide:I1,useValue:e.useDefaultLang},oo]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();function Wz(n,t){if(1&n&&(D(0,"div",5)(1,"mat-icon",6),E(2),x()()),2&n){const e=z();c(1),M("inline",!0),c(1),oe(e.config.icon)}}function $z(n,t){if(1&n&&(D(0,"div",7),E(1),R(2,"translate"),R(3,"translate"),x()),2&n){const e=z();c(1),_o(" ",B(2,2,"common.error")," ",Ct(3,4,e.config.smallText,e.config.smallTextTranslationParams)," ")}}var ou=(()=>(function(n){n.Error="error",n.Done="done",n.Warning="warning"}(ou||(ou={})),ou))(),su=(()=>(function(n){n.Red="red-background",n.Green="green-background",n.Yellow="yellow-background"}(su||(su={})),su))();class jf{constructor(t,e){this.snackbarRef=e,this.config=t}close(){this.snackbarRef.dismiss()}}jf.\u0275fac=function(t){return new(t||jf)(F(S1),F(hg))},jf.\u0275cmp=qe({type:jf,selectors:[["app-snack-bar"]],decls:9,vars:8,consts:[["class","icon-container",4,"ngIf"],[1,"text-container"],["class","second-line",4,"ngIf"],[1,"close-button-separator"],[1,"close-button",3,"click"],[1,"icon-container"],[3,"inline"],[1,"second-line"]],template:function(t,e){1&t&&(D(0,"div"),V(1,Wz,3,2,"div",0),D(2,"div",1),E(3),R(4,"translate"),V(5,$z,4,7,"div",2),x(),xe(6,"div",3),D(7,"mat-icon",4),ye("click",function(){return e.close()}),E(8,"close"),x()()),2&t&&(eo("main-container "+e.config.color),c(1),M("ngIf",e.config.icon),c(2),ce(" ",Ct(4,5,e.config.text,e.config.textTranslationParams)," "),c(2),M("ngIf",e.config.smallText))},dependencies:[It,yn,xt],styles:['.cursor-pointer[_ngcontent-%COMP%], .close-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.main-container[_ngcontent-%COMP%]{width:100%;display:flex;color:#fff;padding:15px;border-radius:5px}.red-background[_ngcontent-%COMP%]{background-color:#ea0606}.green-background[_ngcontent-%COMP%]{background-color:#1fb11f}.yellow-background[_ngcontent-%COMP%]{background-color:#f90}.icon-container[_ngcontent-%COMP%]{margin-right:10px;position:relative;top:1px}.text-container[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;font-size:1rem;word-break:break-word}.text-container[_ngcontent-%COMP%] .second-line[_ngcontent-%COMP%]{font-size:.8rem;opacity:.9}.close-button-separator[_ngcontent-%COMP%]{width:1px;margin-right:10px;background-color:#0000004d}.close-button[_ngcontent-%COMP%]{opacity:.7}.close-button[_ngcontent-%COMP%]:hover{opacity:1}mat-icon[_ngcontent-%COMP%]{position:relative;top:1px;-webkit-user-select:none;user-select:none}']});class on{constructor(t){this.snackBar=t,this.lastWasTemporaryError=!1}showError(t,e=null,i=!1,o=null,s=null){t=Kt(t),o=o?Kt(o):null,this.lastWasTemporaryError=i,this.show(t.translatableErrorMsg,e,o?o.translatableErrorMsg:null,s,ou.Error,su.Red,15e3)}showWarning(t,e=null){this.lastWasTemporaryError=!1,this.show(t,e,null,null,ou.Warning,su.Yellow,15e3)}showDone(t,e=null){this.lastWasTemporaryError=!1,this.show(t,e,null,null,ou.Done,su.Green,5e3)}closeCurrent(){this.snackBar.dismiss()}closeCurrentIfTemporaryError(){this.lastWasTemporaryError&&this.snackBar.dismiss()}show(t,e,i,o,s,a,l){this.snackBar.openFromComponent(jf,{duration:l,panelClass:"snackbar-container",data:{text:t,textTranslationParams:e,smallText:i,smallTextTranslationParams:o,icon:s,color:a}})}}on.\u0275fac=function(t){return new(t||on)(we(Lz))},on.\u0275prov=Ye({token:on,factory:on.\u0275fac,providedIn:"root"});const Rt={maxShortListElements:5,maxFullListElements:40,connectionRetryDelay:5e3,languages:[{code:"en",name:"English",iconName:"en.png"},{code:"es",name:"Espa\xf1ol",iconName:"es.png"},{code:"de",name:"Deutsch",iconName:"de.png"},{code:"pt",name:"Portugu\xeas (Brazil)",iconName:"pt.png"}],defaultLanguage:"en",smallModalWidth:"480px",mediumModalWidth:"640px",largeModalWidth:"900px",vpn:{hardcodedIpWhileDeveloping:!1}};class Gz{constructor(t){Object.assign(this,t)}}class da{constructor(t){this.translate=t,this.currentLanguage=new Ho(1),this.languages=new Ho(1),this.storageKey="lang",this.languagesInternal=[],this.settingsLoaded=!1}loadLanguageSettings(){if(this.settingsLoaded)return;this.settingsLoaded=!0;const t=[];Rt.languages.forEach(e=>{const i=new Gz(e);this.languagesInternal.push(i),t.push(i.code)}),this.languages.next(this.languagesInternal),this.translate.addLangs(t),this.translate.setDefaultLang(Rt.defaultLanguage),this.translate.onLangChange.subscribe(e=>this.onLanguageChanged(e)),this.loadCurrentLanguage()}changeLanguage(t){this.translate.use(t)}onLanguageChanged(t){this.currentLanguage.next(this.languagesInternal.find(e=>e.code===t.lang)),localStorage.setItem(this.storageKey,t.lang)}loadCurrentLanguage(){let t=localStorage.getItem(this.storageKey);t=t||Rt.defaultLanguage,setTimeout(()=>this.translate.use(t),16)}}da.\u0275fac=function(t){return new(t||da)(we(oo))},da.\u0275prov=Ye({token:da,factory:da.\u0275fac,providedIn:"root"});const qz={url:"",deserializer:n=>JSON.parse(n.data),serializer:n=>JSON.stringify(n)};class P1 extends Te{constructor(t,e){if(super(),t instanceof de)this.destination=e,this.source=t;else{const i=this._config=Object.assign({},qz);if(this._output=new X,"string"==typeof t)i.url=t;else for(let o in t)t.hasOwnProperty(o)&&(i[o]=t[o]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new Ho}}lift(t){const e=new P1(this._config,this.destination);return e.operator=t,e.source=this,e}_resetState(){this._socket=null,this.source||(this.destination=new Ho),this._output=new X}multiplex(t,e,i){const o=this;return new de(s=>{try{o.next(t())}catch(l){s.error(l)}const a=o.subscribe(l=>{try{i(l)&&s.next(l)}catch(d){s.error(d)}},l=>s.error(l),()=>s.complete());return()=>{try{o.next(e())}catch(l){s.error(l)}a.unsubscribe()}})}_connectSocket(){const{WebSocketCtor:t,protocol:e,url:i,binaryType:o}=this._config,s=this._output;let a=null;try{a=e?new t(i,e):new t(i),this._socket=a,o&&(this._socket.binaryType=o)}catch(d){return void s.error(d)}const l=new T(()=>{this._socket=null,a&&1===a.readyState&&a.close()});a.onopen=d=>{const{_socket:w}=this;if(!w)return a.close(),void this._resetState();const{openObserver:P}=this._config;P&&P.next(d);const Y=this.destination;this.destination=A.create(q=>{if(1===a.readyState)try{const{serializer:te}=this._config;a.send(te(q))}catch(te){this.destination.error(te)}},q=>{const{closingObserver:te}=this._config;te&&te.next(void 0),q&&q.code?a.close(q.code,q.reason):s.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),this._resetState()},()=>{const{closingObserver:q}=this._config;q&&q.next(void 0),a.close(),this._resetState()}),Y&&Y instanceof Ho&&l.add(Y.subscribe(this.destination))},a.onerror=d=>{this._resetState(),s.error(d)},a.onclose=d=>{this._resetState();const{closeObserver:w}=this._config;w&&w.next(d),d.wasClean?s.complete():s.error(d)},a.onmessage=d=>{try{const{deserializer:w}=this._config;s.next(w(d))}catch(w){s.error(w)}}}_subscribe(t){const{source:e}=this;return e?e.subscribe(t):(this._socket||this._connectSocket(),this._output.subscribe(t),t.add(()=>{const{_socket:i}=this;0===this._output.observers.length&&(i&&1===i.readyState&&i.close(),this._resetState())}),t)}unsubscribe(){const{_socket:t}=this;t&&1===t.readyState&&t.close(),this._resetState(),super.unsubscribe()}}var au=(()=>(function(n){n.Json="json",n.Text="text"}(au||(au={})),au))(),lu=(()=>(function(n){n.Json="json"}(lu||(lu={})),lu))();class rc{constructor(t){this.responseType=au.Json,this.requestType=lu.Json,this.ignoreAuth=!1,Object.assign(this,t)}}class wo{constructor(t,e,i){this.http=t,this.router=e,this.ngZone=i,this.apiPrefix="api/",this.wsApiPrefix="api/"}get(t,e=null){return this.request("GET",t,{},e)}post(t,e={},i=null){return this.request("POST",t,e,i)}put(t,e={},i=null){return this.request("PUT",t,e,i)}delete(t,e=null){return this.request("DELETE",t,{},e)}ws(t,e={}){const s=function Zz(n){return new P1(n)}((location.protocol.startsWith("https")?"wss://":"ws://")+location.host+"/"+this.wsApiPrefix+t);return s.next(e),s}request(t,e,i,o){return i=i||{},o=o||new rc,e.startsWith("/")&&(e=e.substr(1,e.length-1)),this.http.request(t,this.apiPrefix+e,{...this.getRequestOptions(o),responseType:o.responseType,withCredentials:!0,body:this.getPostBody(i,o)}).pipe(Ce(s=>this.successHandler(s)),no(s=>this.errorHandler(s,o)))}getRequestOptions(t){const e={};return e.headers=new Ss,t.requestType===lu.Json&&(e.headers=e.headers.append("Content-Type","application/json")),e}getPostBody(t,e){if(e.requestType===lu.Json)return JSON.stringify(t);const i=new FormData;return Object.keys(t).forEach(o=>i.append(o,t[o])),i}successHandler(t){if("string"==typeof t&&"manager token is null"===t)throw new Error(t);return t}errorHandler(t,e){if(!e.ignoreAuth){if(401===t.status){const i=e.vpnKeyForAuth?["vpnlogin",e.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(i,{replaceUrl:!0}))}if(t.error&&"string"==typeof t.error&&t.error.includes("change password")){const i=e.vpnKeyForAuth?["vpnlogin",e.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(i,{replaceUrl:!0}))}}return Pr(Kt(t))}}wo.\u0275fac=function(t){return new(t||wo)(we(Gl),we(Qt),we(pt))},wo.\u0275prov=Ye({token:wo,factory:wo.\u0275fac,providedIn:"root"});const Xz=["determinateSpinner"];function Qz(n,t){if(1&n&&(ms(),D(0,"svg",11),xe(1,"circle",12),x()),2&n){const e=z();Ut("viewBox",e._viewBox()),c(1),Va("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Ut("r",e._circleRadius())}}const Jz=Af(class{constructor(n){this._elementRef=n}},"primary"),eU=new He("mat-progress-spinner-default-options",{providedIn:"root",factory:function tU(){return{diameter:iE}}}),iE=100;let oc=(()=>{class n extends Jz{constructor(e,i,o){super(e),this.mode="mat-spinner"===this._elementRef.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",this._value=0,this._diameter=iE,this._noopAnimations="NoopAnimations"===i&&!!o&&!o._forceAnimations,o&&(o.color&&(this.color=this.defaultColor=o.color),o.diameter&&(this.diameter=o.diameter),o.strokeWidth&&(this.strokeWidth=o.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,Mo(e)))}get diameter(){return this._diameter}set diameter(e){this._diameter=Mo(e)}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=Mo(e)}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(zi,8),F(eU))},n.\u0275cmp=qe({type:n,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(e,i){if(1&e&&ft(Xz,5),2&e){let o;nt(o=it())&&(i._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:12,hostBindings:function(e,i){2&e&&(Ut("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===i.mode?i.value:null)("mode",i.mode),Va("width",i.diameter,"px")("height",i.diameter,"px"),Gt("_mat-animation-noopable",i._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===i.mode))},inputs:{color:"color",mode:"mode",value:"value",diameter:"diameter",strokeWidth:"strokeWidth"},exportAs:["matProgressSpinner"],features:[dt],decls:14,vars:11,consts:[["circle",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["determinateSpinner",""],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(e,i){if(1&e&&(V(0,Qz,2,8,"ng-template",null,0,ws),D(2,"div",1,2),ms(),D(4,"svg",3),xe(5,"circle",4),x()(),Sl(),D(6,"div",5)(7,"div",6)(8,"div",7),Jo(9,8),x(),D(10,"div",9),Jo(11,8),x(),D(12,"div",10),Jo(13,8),x()()()),2&e){const o=ci(1);c(4),Ut("viewBox",i._viewBox()),c(1),Va("stroke-dasharray",i._strokeCircumference(),"px")("stroke-dashoffset",i._strokeDashOffset(),"px")("stroke-width",i._circleStrokeWidth(),"%"),Ut("r",i._circleRadius()),c(4),M("ngTemplateOutlet",o),c(2),M("ngTemplateOutlet",o),c(2),M("ngTemplateOutlet",o)}},dependencies:[Rd],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, transparent)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0}),n})(),iU=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[ia,Vn]}),n})();const rU=function(n){return{"white-theme":n}};class Gr{constructor(){this.showWhite=!0}}function oU(n,t){1&n&&(D(0,"div",5)(1,"div"),xe(2,"img",6),D(3,"div"),E(4),R(5,"translate"),x()()()),2&n&&(c(4),oe(B(5,1,"common.window-size-error")))}function sU(n,t){1&n&&xe(0,"router-outlet")}function aU(n,t){1&n&&xe(0,"app-loading-indicator",7)}Gr.\u0275fac=function(t){return new(t||Gr)},Gr.\u0275cmp=qe({type:Gr,selectors:[["app-loading-indicator"]],inputs:{showWhite:"showWhite"},decls:2,vars:4,consts:[[1,"container",3,"ngClass"],[3,"diameter"]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"mat-spinner",1),x()),2&t&&(M("ngClass",Be(2,rU,e.showWhite)),c(1),M("diameter",50))},dependencies:[Rn,oc],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex}.container[_ngcontent-%COMP%]{width:100%;align-self:center;display:flex;flex-direction:column;align-items:center}.container[_ngcontent-%COMP%] > mat-spinner[_ngcontent-%COMP%]{opacity:.5}"]});const lU=function(n){return{background:n}};class ua{constructor(t,e,i,o,s,a){this.storage=t,this.snackbarService=o,this.languageService=s,this.apiService=a,this.inVpnClient=!1,this.inLoginPage=!1,this.hypervisorPkObtained=!1,this.pkErrorShown=!1,this.pkErrorsFound=0,ua.currentInstance=this,i.afterOpened.subscribe(()=>o.closeCurrent()),e.events.subscribe(l=>{l instanceof Qa&&(o.closeCurrent(),i.closeAll(),window.scrollTo(0,0))}),i.afterAllClosed.subscribe(()=>o.closeCurrentIfTemporaryError()),e.events.subscribe(l=>{if(this.inVpnClient=e.url.includes("/vpn/")||e.url.includes("vpnlogin"),l.url){const d=this.inLoginPage;this.inLoginPage=l.url.includes("login"),d&&!this.inLoginPage&&!this.hypervisorPkObtained&&this.checkHypervisorPk(0)}e.url.length>2&&(document.title=this.inVpnClient?"Skywire VPN":"Skywire Manager")}),this.languageService.loadLanguageSettings(),this.checkHypervisorPk(0)}processLoginDone(){this.inLoginPage=!1,this.hypervisorPkObtained||this.checkHypervisorPk(0)}checkHypervisorPk(t){this.obtainPkSubscription&&this.obtainPkSubscription.unsubscribe(),this.obtainPkSubscription=Ge(1).pipe(Di(t),Ne(()=>this.apiService.get("about"))).subscribe(e=>{e.public_key?(this.finishStartup(e.public_key),this.hypervisorPkObtained=!0):(this.pkErrorShown||(this.snackbarService.showError("start.loading-error",null,!0),this.pkErrorShown=!0),this.checkHypervisorPk(1e3))},e=>{if(this.pkErrorsFound+=1,this.pkErrorsFound>4&&!this.pkErrorShown){const i=Kt(e);this.snackbarService.showError("start.loading-error",null,!0,i),this.pkErrorShown=!0}this.inLoginPage||this.checkHypervisorPk(1e3)})}finishStartup(t){this.storage.initialize(t)}}ua.\u0275fac=function(t){return new(t||ua)(F(ni),F(Qt),F(Ln),F(on),F(da),F(wo))},ua.\u0275cmp=qe({type:ua,selectors:[["app-root"]],decls:5,vars:6,consts:[["class","size-alert d-md-none",4,"ngIf"],[1,"flex-1","content","container-fluid"],[3,"ngClass"],[4,"ngIf"],["class","h-100",4,"ngIf"],[1,"size-alert","d-md-none"],["src","assets/img/size-alert.png"],[1,"h-100"]],template:function(t,e){1&t&&(V(0,oU,6,3,"div",0),D(1,"div",1),xe(2,"div",2),V(3,sU,1,0,"router-outlet",3),V(4,aU,1,0,"app-loading-indicator",4),x()),2&t&&(M("ngIf",e.inVpnClient),c(2),M("ngClass",Be(4,lU,e.inVpnClient)),c(1),M("ngIf",e.hypervisorPkObtained||e.inLoginPage),c(1),M("ngIf",!e.hypervisorPkObtained&&!e.inLoginPage))},dependencies:[Rn,It,B_,Gr,xt],styles:[".size-alert[_ngcontent-%COMP%]{background-color:#000000d9;position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#fff}.size-alert[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin:0 40px;max-width:400px}[_nghost-%COMP%]{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;height:100%}.content[_ngcontent-%COMP%]{padding:20px!important}.background[_ngcontent-%COMP%]{background-image:url(/assets/img/map.png);background-size:cover;background-position:center;opacity:.1;width:100%;height:100%;top:0;left:0;position:fixed}"]});class Es{constructor(t){this.router=t,this.forceFailInternal=!1}set forceFail(t){this.forceFailInternal=t}canActivate(t,e){return this.checkIfCanActivate()}canActivateChild(t,e){return this.checkIfCanActivate()}checkIfCanActivate(){return this.forceFailInternal?(this.router.navigate(["login"],{replaceUrl:!0}),Ge(!1)):Ge(!0)}}Es.\u0275fac=function(t){return new(t||Es)(we(Qt))},Es.\u0275prov=Ye({token:Es,factory:Es.\u0275fac,providedIn:"root"});var Is=(()=>(function(n){n[n.AuthDisabled=0]="AuthDisabled",n[n.Logged=1]="Logged",n[n.NotLogged=2]="NotLogged"}(Is||(Is={})),Is))();class Ps{constructor(t,e,i){this.apiService=t,this.translateService=e,this.authGuardService=i}login(t){return this.apiService.post("login",{username:"admin",password:t},new rc({ignoreAuth:!0})).pipe(hi(e=>{if(!0!==e)throw new Error;this.authGuardService.forceFail=!1}))}checkLogin(){return this.apiService.get("user",new rc({ignoreAuth:!0})).pipe(Ce(t=>t.username?Is.Logged:Is.AuthDisabled),no(t=>(t=Kt(t)).originalError&&401===t.originalError.status?(this.authGuardService.forceFail=!0,Ge(Is.NotLogged)):Pr(t)))}logout(){return this.apiService.post("logout",{}).pipe(hi(t=>{if(!0!==t)throw new Error;this.authGuardService.forceFail=!0}))}changePassword(t,e){return this.apiService.post("change-password",{old_password:t,new_password:e},new rc({responseType:au.Text,ignoreAuth:!0})).pipe(Ce(i=>{if("string"==typeof i&&"true"===i.trim())return!0;throw"Please do not change the default password."===i?new Error(this.translateService.instant("settings.password.errors.default-password")):new Error(this.translateService.instant("common.operation-error"))}),no(i=>((i=Kt(i)).originalError&&401===i.originalError.status&&(i.translatableErrorMsg="settings.password.errors.bad-old-password"),Pr(i))))}initialConfig(t){return this.apiService.post("create-account",{username:"admin",password:t},new rc({responseType:au.Text,ignoreAuth:!0})).pipe(Ce(e=>{if("string"==typeof e&&"true"===e.trim())return!0;throw new Error(e)}),no(e=>((e=Kt(e)).originalError&&500===e.originalError.status&&(e.translatableErrorMsg="settings.password.initial-config.error"),Pr(e))))}}Ps.\u0275fac=function(t){return new(t||Ps)(we(wo),we(oo),we(Es))},Ps.\u0275prov=Ye({token:Ps,factory:Ps.\u0275fac,providedIn:"root"});class Uf{constructor(t,e){this.authService=t,this.router=e}ngOnInit(){this.verificationSubscription=this.authService.checkLogin().subscribe(t=>{this.router.navigate(t!==Is.NotLogged?["nodes"]:["login"],{replaceUrl:!0})},()=>{this.router.navigate(["nodes"],{replaceUrl:!0})})}ngOnDestroy(){this.verificationSubscription.unsubscribe()}}Uf.\u0275fac=function(t){return new(t||Uf)(F(Ps),F(Qt))},Uf.\u0275cmp=qe({type:Uf,selectors:[["app-start"]],decls:2,vars:0,consts:[[1,"h-100","w-100"]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"app-loading-indicator"),x())},dependencies:[Gr]});let rE=(()=>{class n{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}}return n.\u0275fac=function(e){return new(e||n)(F(Ks),F(bt))},n.\u0275dir=Ke({type:n}),n})(),sc=(()=>{class n extends rE{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,features:[dt]}),n})();const as=new He("NgValueAccessor"),dU={provide:as,useExisting:an(()=>Ri),multi:!0},hU=new He("CompositionEventMode");let Ri=(()=>{class n extends rE{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function uU(){const n=Cs()?Cs().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}}return n.\u0275fac=function(e){return new(e||n)(F(Ks),F(bt),F(hU,8))},n.\u0275dir=Ke({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(e,i){1&e&&ye("input",function(s){return i._handleInput(s.target.value)})("blur",function(){return i.onTouched()})("compositionstart",function(){return i._compositionStart()})("compositionend",function(s){return i._compositionEnd(s.target.value)})},features:[Zt([dU]),dt]}),n})();function ol(n){return null==n||("string"==typeof n||Array.isArray(n))&&0===n.length}function sE(n){return null!=n&&"number"==typeof n.length}const wr=new He("NgValidators"),sl=new He("NgAsyncValidators"),pU=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[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])?)*$/;class Vt{static min(t){return function aE(n){return t=>{if(ol(t.value)||ol(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e{if(ol(t.value)||ol(n))return null;const e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}(t)}static required(t){return function cE(n){return ol(n.value)?{required:!0}:null}(t)}static requiredTrue(t){return function dE(n){return!0===n.value?null:{required:!0}}(t)}static email(t){return function uE(n){return ol(n.value)||pU.test(n.value)?null:{email:!0}}(t)}static minLength(t){return function hE(n){return t=>ol(t.value)||!sE(t.value)?null:t.value.length{if(ol(i.value))return null;const o=i.value;return t.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(t)}static nullValidator(t){return null}static compose(t){return yE(t)}static composeAsync(t){return ME(t)}}function fE(n){return t=>sE(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}function yg(n){return null}function mE(n){return null!=n}function _E(n){return Ih(n)?ue(n):n}function gE(n){let t={};return n.forEach(e=>{t=null!=e?{...t,...e}:t}),0===Object.keys(t).length?null:t}function bE(n,t){return t.map(e=>e(n))}function vE(n){return n.map(t=>function mU(n){return!n.validate}(t)?t:e=>t.validate(e))}function yE(n){if(!n)return null;const t=n.filter(mE);return 0==t.length?null:function(e){return gE(bE(e,t))}}function O1(n){return null!=n?yE(vE(n)):null}function ME(n){if(!n)return null;const t=n.filter(mE);return 0==t.length?null:function(e){return UL(bE(e,t).map(_E)).pipe(Ce(gE))}}function A1(n){return null!=n?ME(vE(n)):null}function wE(n,t){return null===n?[t]:Array.isArray(n)?[...n,t]:[n,t]}function xE(n){return n._rawValidators}function CE(n){return n._rawAsyncValidators}function F1(n){return n?Array.isArray(n)?n:[n]:[]}function Mg(n,t){return Array.isArray(n)?n.includes(t):n===t}function kE(n,t){const e=F1(t);return F1(n).forEach(o=>{Mg(e,o)||e.push(o)}),e}function SE(n,t){return F1(t).filter(e=>!Mg(n,e))}class DE{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=O1(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=A1(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t){this.control&&this.control.reset(t)}hasError(t,e){return!!this.control&&this.control.hasError(t,e)}getError(t,e){return this.control?this.control.getError(t,e):null}}class qr extends DE{get formDirective(){return null}get path(){return null}}class Os extends DE{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class TE{constructor(t){this._cd=t}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let Ni=(()=>{class n extends TE{constructor(e){super(e)}}return n.\u0275fac=function(e){return new(e||n)(F(Os,2))},n.\u0275dir=Ke({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,i){2&e&&Gt("ng-untouched",i.isUntouched)("ng-touched",i.isTouched)("ng-pristine",i.isPristine)("ng-dirty",i.isDirty)("ng-valid",i.isValid)("ng-invalid",i.isInvalid)("ng-pending",i.isPending)},features:[dt]}),n})(),Yi=(()=>{class n extends TE{constructor(e){super(e)}}return n.\u0275fac=function(e){return new(e||n)(F(qr,10))},n.\u0275dir=Ke({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(e,i){2&e&&Gt("ng-untouched",i.isUntouched)("ng-touched",i.isTouched)("ng-pristine",i.isPristine)("ng-dirty",i.isDirty)("ng-valid",i.isValid)("ng-invalid",i.isInvalid)("ng-pending",i.isPending)("ng-submitted",i.isSubmitted)},features:[dt]}),n})();const Wf="VALID",xg="INVALID",cu="PENDING",$f="DISABLED";function B1(n){return(Cg(n)?n.validators:n)||null}function H1(n,t){return(Cg(t)?t.asyncValidators:n)||null}function Cg(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}function EE(n,t,e){const i=n.controls;if(!(t?Object.keys(i):i).length)throw new Fe(1e3,"");if(!i[e])throw new Fe(1001,"")}function IE(n,t,e){n._forEachChild((i,o)=>{if(void 0===e[o])throw new Fe(1002,"")})}class kg{constructor(t,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===Wf}get invalid(){return this.status===xg}get pending(){return this.status==cu}get disabled(){return this.status===$f}get enabled(){return this.status!==$f}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(kE(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(kE(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(SE(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(SE(t,this._rawAsyncValidators))}hasValidator(t){return Mg(this._rawValidators,t)}hasAsyncValidator(t){return Mg(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=cu,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=$f,this.errors=null,this._forEachChild(i=>{i.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status=Wf,this._forEachChild(i=>{i.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Wf||this.status===cu)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?$f:Wf}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=cu,this._hasOwnPendingAsyncValidator=!0;const e=_E(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){let e=t;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(t,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new ht,this.statusChanges=new ht}_calculateStatus(){return this._allControlsDisabled()?$f:this.errors?xg:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(cu)?cu:this._anyControlsHaveStatus(xg)?xg:Wf}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){Cg(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=function wU(n){return Array.isArray(n)?O1(n):n||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function xU(n){return Array.isArray(n)?A1(n):n||null}(this._rawAsyncValidators)}}class du extends kg{constructor(t,e,i){super(B1(e),H1(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){IE(this,0,t),Object.keys(t).forEach(i=>{EE(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(Object.keys(t).forEach(i=>{const o=this.controls[i];o&&o.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,o)=>{i.reset(t[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((o,s)=>{i=e(i,o,s)}),i}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}}const PE=du;class OE extends du{}const uu=new He("CallSetDisabledState",{providedIn:"root",factory:()=>Sg}),Sg="always";function Dg(n,t){return[...t.path,n]}function Gf(n,t,e=Sg){V1(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||"always"===e)&&t.valueAccessor.setDisabledState?.(n.disabled),function kU(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&AE(n,t)})}(n,t),function DU(n,t){const e=(i,o)=>{t.valueAccessor.writeValue(i),o&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}(n,t),function SU(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&AE(n,t),"submit"!==n.updateOn&&n.markAsTouched()})}(n,t),function CU(n,t){if(t.valueAccessor.setDisabledState){const e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}(n,t)}function Tg(n,t,e=!0){const i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),Eg(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function Lg(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function V1(n,t){const e=xE(n);null!==t.validator?n.setValidators(wE(e,t.validator)):"function"==typeof e&&n.setValidators([e]);const i=CE(n);null!==t.asyncValidator?n.setAsyncValidators(wE(i,t.asyncValidator)):"function"==typeof i&&n.setAsyncValidators([i]);const o=()=>n.updateValueAndValidity();Lg(t._rawValidators,o),Lg(t._rawAsyncValidators,o)}function Eg(n,t){let e=!1;if(null!==n){if(null!==t.validator){const o=xE(n);if(Array.isArray(o)&&o.length>0){const s=o.filter(a=>a!==t.validator);s.length!==o.length&&(e=!0,n.setValidators(s))}}if(null!==t.asyncValidator){const o=CE(n);if(Array.isArray(o)&&o.length>0){const s=o.filter(a=>a!==t.asyncValidator);s.length!==o.length&&(e=!0,n.setAsyncValidators(s))}}}const i=()=>{};return Lg(t._rawValidators,i),Lg(t._rawAsyncValidators,i),e}function AE(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function FE(n,t){V1(n,t)}function RE(n,t){n._syncPendingControls(),t.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}const PU={provide:qr,useExisting:an(()=>Kf)},qf=(()=>Promise.resolve())();let Kf=(()=>{class n extends qr{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new ht,this.form=new du({},O1(e),A1(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){qf.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Gf(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){qf.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){qf.then(()=>{const i=this._findContainer(e.path),o=new du({});FE(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){qf.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){qf.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,RE(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}}return n.\u0275fac=function(e){return new(e||n)(F(wr,10),F(sl,10),F(uu,8))},n.\u0275dir=Ke({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(e,i){1&e&&ye("submit",function(s){return i.onSubmit(s)})("reset",function(){return i.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Zt([PU]),dt]}),n})();function NE(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}function YE(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}const hu=class extends kg{constructor(t=null,e,i){super(B1(e),H1(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Cg(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=YE(t)?t.value:t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){NE(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){NE(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(t){YE(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},Ig=hu;let BE=(()=>{class n extends qr{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Dg(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,features:[dt]}),n})(),Bi=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),n})(),UE=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();const W1=new He("NgModelWithFormControlWarning"),VU={provide:qr,useExisting:an(()=>ii)};let ii=(()=>{class n extends qr{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new ht,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Eg(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Gf(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){Tg(e.control||null,e,!1),function IU(n,t){const e=n.indexOf(t);e>-1&&n.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,RE(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(Tg(i||null,e),(n=>n instanceof hu)(o)&&(Gf(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);FE(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function TU(n,t){return Eg(n,t)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){V1(this.form,this),this._oldForm&&Eg(this._oldForm,this)}_checkFormPresent(){}}return n.\u0275fac=function(e){return new(e||n)(F(wr,10),F(sl,10),F(uu,8))},n.\u0275dir=Ke({type:n,selectors:[["","formGroup",""]],hostBindings:function(e,i){1&e&&ye("submit",function(s){return i.onSubmit(s)})("reset",function(){return i.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Zt([VU]),dt,qi]}),n})();const jU={provide:qr,useExisting:an(()=>Zf)};let Zf=(()=>{class n extends BE{constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){qE(this._parent)}}return n.\u0275fac=function(e){return new(e||n)(F(qr,13),F(wr,10),F(sl,10))},n.\u0275dir=Ke({type:n,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[Zt([jU]),dt]}),n})();const zU={provide:qr,useExisting:an(()=>Xf)};let Xf=(()=>{class n extends qr{constructor(e,i,o){super(),this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Dg(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){qE(this._parent)}}return n.\u0275fac=function(e){return new(e||n)(F(qr,13),F(wr,10),F(sl,10))},n.\u0275dir=Ke({type:n,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[Zt([zU]),dt]}),n})();function qE(n){return!(n instanceof Zf||n instanceof ii||n instanceof Xf)}const UU={provide:Os,useExisting:an(()=>Li)};let Li=(()=>{class n extends Os{constructor(e,i,o,s,a){super(),this._ngModelWarningConfig=a,this._added=!1,this.update=new ht,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=function U1(n,t){if(!t)return null;let e,i,o;return Array.isArray(t),t.forEach(s=>{s.constructor===Ri?e=s:function EU(n){return Object.getPrototypeOf(n.constructor)===sc}(s)?i=s:o=s}),o||i||e||null}(0,s)}set isDisabled(e){}ngOnChanges(e){this._added||this._setUpControl(),function z1(n,t){if(!n.hasOwnProperty("model"))return!1;const e=n.model;return!!e.isFirstChange()||!Object.is(t,e.currentValue)}(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Dg(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}}return n._ngModelWarningSentOnce=!1,n.\u0275fac=function(e){return new(e||n)(F(qr,13),F(wr,10),F(sl,10),F(as,10),F(W1,8))},n.\u0275dir=Ke({type:n,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[Zt([UU]),dt,qi]}),n})();let ac=(()=>{class n{constructor(){this._validator=yg}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):yg,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,features:[qi]}),n})();const iW={provide:wr,useExisting:an(()=>xr),multi:!0};let xr=(()=>{class n extends ac{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>function XE(n){return"number"==typeof n?n:parseInt(n,10)}(e),this.createValidator=e=>fE(e)}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(e,i){2&e&&Ut("maxlength",i._enabled?i.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Zt([iW]),dt]}),n})(),rI=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[UE]}),n})(),oW=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:uu,useValue:e.callSetDisabledState??Sg}]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[rI]}),n})(),Z1=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:W1,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:uu,useValue:e.callSetDisabledState??Sg}]}}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[rI]}),n})();class oI extends kg{constructor(t,e,i){super(B1(e),H1(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(t){return this.controls[this._adjustIndex(t)]}push(t,e={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){let i=this._adjustIndex(t);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){let o=this._adjustIndex(t);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){IE(this,0,t),t.forEach((i,o)=>{EE(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){null!=t&&(t.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,o)=>{i.reset(t[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(const t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){return this.at(t)??null}}function sI(n){return!!n&&(void 0!==n.asyncValidators||void 0!==n.validators||void 0!==n.updateOn)}let aI=(()=>{class n{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new n;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let s={};return sI(i)?s=i:null!==i&&(s.validators=i.validator,s.asyncValidators=i.asyncValidator),new du(o,s)}record(e,i=null){const o=this._reduceControls(e);return new OE(o,i)}control(e,i,o){let s={};return this.useNonNullable?(sI(i)?s=i:(s.validators=i,s.asyncValidators=o),new hu(e,{...s,nonNullable:!0})):new hu(e,i,o)}array(e,i,o){const s=e.map(a=>this._createControl(a));return new oI(s,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof hu||e instanceof kg?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:Z1}),n})(),Cr=(()=>{class n extends aI{group(e,i=null){return super.group(e,i)}control(e,i,o){return super.control(e,i,o)}array(e,i,o){return super.array(e,i,o)}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:Z1}),n})();const sW=["matFormFieldNotchedOutline",""],aW=["*"],lW=["textField"],cW=["iconPrefixContainer"],dW=["textPrefixContainer"];function uW(n,t){1&n&&xe(0,"span",19)}function hW(n,t){if(1&n){const e=et();D(0,"label",17),ye("cdkObserveContent",function(){return Pe(e),Oe(z(2)._refreshOutlineNotchWidth())}),vn(1,1),V(2,uW,1,0,"span",18),x()}if(2&n){const e=z(2);M("floating",e._shouldLabelFloat())("cdkObserveContentDisabled",!e._hasOutline())("id",e._labelId),Ut("for",e._control.id)("aria-owns",e._control.id),c(2),M("ngIf",!e.hideRequiredMarker&&e._control.required)}}function fW(n,t){1&n&&V(0,hW,3,6,"label",16),2&n&&M("ngIf",z()._hasFloatingLabel())}function pW(n,t){1&n&&xe(0,"div",20)}function mW(n,t){}function _W(n,t){1&n&&V(0,mW,0,0,"ng-template",22),2&n&&(z(2),M("ngTemplateOutlet",ci(1)))}function gW(n,t){if(1&n&&(D(0,"div",21),V(1,_W,1,1,"ng-template",9),x()),2&n){const e=z();M("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat())("matFormFieldNotchedOutlineLabelWidth",e._labelWidth),c(1),M("ngIf",!e._forceDisplayInfixLabel())}}function bW(n,t){1&n&&(D(0,"div",23,24),vn(2,2),x())}function vW(n,t){1&n&&(D(0,"div",25,26),vn(2,3),x())}function yW(n,t){}function MW(n,t){1&n&&V(0,yW,0,0,"ng-template",22),2&n&&(z(),M("ngTemplateOutlet",ci(1)))}function wW(n,t){1&n&&(D(0,"div",27),vn(1,4),x())}function xW(n,t){1&n&&(D(0,"div",28),vn(1,5),x())}function CW(n,t){1&n&&xe(0,"div",29)}function kW(n,t){1&n&&(D(0,"div",30),vn(1,6),x()),2&n&&M("@transitionMessages",z()._subscriptAnimationState)}function SW(n,t){if(1&n&&(D(0,"mat-hint",34),E(1),x()),2&n){const e=z(2);M("id",e._hintLabelId),c(1),oe(e.hintLabel)}}function DW(n,t){if(1&n&&(D(0,"div",31),V(1,SW,2,2,"mat-hint",32),vn(2,7),xe(3,"div",33),vn(4,8),x()),2&n){const e=z();M("@transitionMessages",e._subscriptAnimationState),c(1),M("ngIf",e.hintLabel)}}const TW=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],LW=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];let lI=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["mat-label"]]}),n})(),EW=0;const cI=new He("MatError");let al=(()=>{class n{constructor(e,i){this.id="mat-mdc-error-"+EW++,e||i.nativeElement.setAttribute("aria-live","polite")}}return n.\u0275fac=function(e){return new(e||n)(Na("aria-live"),F(bt))},n.\u0275dir=Ke({type:n,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(e,i){2&e&&Js("id",i.id)},inputs:{id:"id"},features:[Zt([{provide:cI,useExisting:n}])]}),n})(),IW=0,dI=(()=>{class n{constructor(){this.align="start",this.id="mat-mdc-hint-"+IW++}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(e,i){2&e&&(Js("id",i.id),Ut("align",null),Gt("mat-mdc-form-field-hint-end","end"===i.align))},inputs:{align:"align",id:"id"}}),n})();const PW=new He("MatPrefix"),OW=new He("MatSuffix");let uI=(()=>{class n{constructor(e){this._elementRef=e,this.floating=!1}getWidth(){return function AW(n){if(null!==n.offsetParent)return n.scrollWidth;const e=n.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}}return n.\u0275fac=function(e){return new(e||n)(F(bt))},n.\u0275dir=Ke({type:n,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(e,i){2&e&&Gt("mdc-floating-label--float-above",i.floating)},inputs:{floating:"floating"}}),n})();const hI="mdc-line-ripple--active",Pg="mdc-line-ripple--deactivating";let fI=(()=>{class n{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=o=>{const s=this._elementRef.nativeElement.classList,a=s.contains(Pg);"opacity"===o.propertyName&&a&&s.remove(hI,Pg)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(Pg),e.add(hI)}deactivate(){this._elementRef.nativeElement.classList.add(Pg)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt))},n.\u0275dir=Ke({type:n,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]}),n})(),pI=(()=>{class n{constructor(e,i){this._elementRef=e,this._ngZone=i,this.labelWidth=0,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_getNotchWidth(){return this.open?this.labelWidth>0?`calc(${this.labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:"0px":null}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt))},n.\u0275cmp=qe({type:n,selectors:[["div","matFormFieldNotchedOutline",""]],hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(e,i){2&e&&Gt("mdc-notched-outline--notched",i.open)},inputs:{labelWidth:["matFormFieldNotchedOutlineLabelWidth","labelWidth"],open:["matFormFieldNotchedOutlineOpen","open"]},attrs:sW,ngContentSelectors:aW,decls:4,vars:2,consts:[[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],[1,"mdc-notched-outline__trailing"]],template:function(e,i){1&e&&(gr(),xe(0,"div",0),D(1,"div",1),vn(2),x(),xe(3,"div",2)),2&e&&(c(1),Va("width",i._getNotchWidth()))},encapsulation:2,changeDetection:0}),n})();const FW={transitionMessages:oa("transitionMessages",[go("enter",Zn({opacity:1,transform:"translateY(0%)"})),Er("void => enter",[Zn({opacity:0,transform:"translateY(-5px)"}),Wr("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let X1=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n}),n})();const Q1=new He("MatFormField"),RW=new He("MAT_FORM_FIELD_DEFAULT_OPTIONS");let mI=0,nr=(()=>{class n{constructor(e,i,o,s,a,l,d,w){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=s,this._platform=a,this._defaults=l,this._animationMode=d,this._document=w,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+mI++,this._hintLabelId="mat-mdc-hint-"+mI++,this._subscriptAnimationState="",this._labelWidth=0,this._destroyed=new X,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,l&&(l.appearance&&(this.appearance=l.appearance),this._hideRequiredMarker=Boolean(l?.hideRequiredMarker),l.color&&(this.color=l.color))}get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=hn(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._refreshOutlineNotchWidth(),this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}ngAfterViewInit(){this._updateFocusState(),this._refreshOutlineNotchWidth(),this._document?.fonts?.ready?this._document.fonts.ready.then(()=>{this._refreshOutlineNotchWidth(),this._changeDetectorRef.markForCheck()}):setTimeout(()=>this._refreshOutlineNotchWidth(),100),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(Cn(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),vt(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(Cn(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(Cn(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||(this._labelWidth=this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(s=>"start"===s.align):null,o=this._hintChildren?this._hintChildren.find(s=>"end"===s.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),o&&e.push(o.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,o=this._textPrefixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=o?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${s+a}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(pt),F(Or),F(fi),F(RW,8),F(zi,8),F(Dt))},n.\u0275cmp=qe({type:n,selectors:[["mat-form-field"]],contentQueries:function(e,i,o){if(1&e&&(Ji(o,lI,5),Ji(o,lI,7),Ji(o,X1,5),Ji(o,PW,5),Ji(o,OW,5),Ji(o,cI,5),Ji(o,dI,5)),2&e){let s;nt(s=it())&&(i._labelChildNonStatic=s.first),nt(s=it())&&(i._labelChildStatic=s.first),nt(s=it())&&(i._formFieldControl=s.first),nt(s=it())&&(i._prefixChildren=s),nt(s=it())&&(i._suffixChildren=s),nt(s=it())&&(i._errorChildren=s),nt(s=it())&&(i._hintChildren=s)}},viewQuery:function(e,i){if(1&e&&(ft(lW,5),ft(cW,5),ft(dW,5),ft(uI,5),ft(pI,5),ft(fI,5)),2&e){let o;nt(o=it())&&(i._textField=o.first),nt(o=it())&&(i._iconPrefixContainer=o.first),nt(o=it())&&(i._textPrefixContainer=o.first),nt(o=it())&&(i._floatingLabel=o.first),nt(o=it())&&(i._notchedOutline=o.first),nt(o=it())&&(i._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(e,i){2&e&&Gt("mat-mdc-form-field-label-always-float",i._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",i._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",i._hasIconSuffix)("mat-form-field-invalid",i._control.errorState)("mat-form-field-disabled",i._control.disabled)("mat-form-field-autofilled",i._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===i._animationMode)("mat-form-field-appearance-fill","fill"==i.appearance)("mat-form-field-appearance-outline","outline"==i.appearance)("mat-form-field-hide-placeholder",i._hasFloatingLabel()&&!i._shouldLabelFloat())("mat-focused",i._control.focused)("mat-primary","accent"!==i.color&&"warn"!==i.color)("mat-accent","accent"===i.color)("mat-warn","warn"===i.color)("ng-untouched",i._shouldForward("untouched"))("ng-touched",i._shouldForward("touched"))("ng-pristine",i._shouldForward("pristine"))("ng-dirty",i._shouldForward("dirty"))("ng-valid",i._shouldForward("valid"))("ng-invalid",i._shouldForward("invalid"))("ng-pending",i._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[Zt([{provide:Q1,useExisting:n}])],ngContentSelectors:LW,decls:18,vars:23,consts:[["labelTemplate",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],["textField",""],["class","mat-mdc-form-field-focus-overlay",4,"ngIf"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen","matFormFieldNotchedOutlineLabelWidth",4,"ngIf"],["class","mat-mdc-form-field-icon-prefix",4,"ngIf"],["class","mat-mdc-form-field-text-prefix",4,"ngIf"],[1,"mat-mdc-form-field-infix"],[3,"ngIf"],["class","mat-mdc-form-field-text-suffix",4,"ngIf"],["class","mat-mdc-form-field-icon-suffix",4,"ngIf"],["matFormFieldLineRipple","",4,"ngIf"],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align",3,"ngSwitch"],["class","mat-mdc-form-field-error-wrapper",4,"ngSwitchCase"],["class","mat-mdc-form-field-hint-wrapper",4,"ngSwitchCase"],["matFormFieldFloatingLabel","",3,"floating","cdkObserveContentDisabled","id","cdkObserveContent",4,"ngIf"],["matFormFieldFloatingLabel","",3,"floating","cdkObserveContentDisabled","id","cdkObserveContent"],["aria-hidden","true","class","mat-mdc-form-field-required-marker mdc-floating-label--required",4,"ngIf"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-focus-overlay"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen","matFormFieldNotchedOutlineLabelWidth"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-icon-prefix"],["iconPrefixContainer",""],[1,"mat-mdc-form-field-text-prefix"],["textPrefixContainer",""],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id",4,"ngIf"],[1,"mat-mdc-form-field-hint-spacer"],[3,"id"]],template:function(e,i){1&e&&(gr(TW),V(0,fW,1,1,"ng-template",null,0,ws),D(2,"div",1,2),ye("click",function(s){return i._control.onContainerClick&&i._control.onContainerClick(s)}),V(4,pW,1,0,"div",3),D(5,"div",4),V(6,gW,2,3,"div",5),V(7,bW,3,0,"div",6),V(8,vW,3,0,"div",7),D(9,"div",8),V(10,MW,1,1,"ng-template",9),vn(11),x(),V(12,wW,2,0,"div",10),V(13,xW,2,0,"div",11),x(),V(14,CW,1,0,"div",12),x(),D(15,"div",13),V(16,kW,2,1,"div",14),V(17,DW,5,2,"div",15),x()),2&e&&(c(2),Gt("mdc-text-field--filled",!i._hasOutline())("mdc-text-field--outlined",i._hasOutline())("mdc-text-field--no-label",!i._hasFloatingLabel())("mdc-text-field--disabled",i._control.disabled)("mdc-text-field--invalid",i._control.errorState),c(2),M("ngIf",!i._hasOutline()&&!i._control.disabled),c(2),M("ngIf",i._hasOutline()),c(1),M("ngIf",i._hasIconPrefix),c(1),M("ngIf",i._hasTextPrefix),c(2),M("ngIf",!i._hasOutline()||i._forceDisplayInfixLabel()),c(2),M("ngIf",i._hasTextSuffix),c(1),M("ngIf",i._hasIconSuffix),c(1),M("ngIf",!i._hasOutline()),c(1),Gt("mat-mdc-form-field-subscript-dynamic-size","dynamic"===i.subscriptSizing),M("ngSwitch",i._getDisplayedMessages()),c(1),M("ngSwitchCase","error"),c(1),M("ngSwitchCase","hint"))},dependencies:[It,Rd,$h,Iy,eL,dI,uI,pI,fI],styles:['.mdc-text-field{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required::after,.mdc-floating-label--required[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;border-top:1px solid;border-bottom:1px solid;pointer-events:none}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid;flex-grow:1}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{flex:0 0 auto;width:auto;max-width:calc(100% - 12px * 2)}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{line-height:normal;pointer-events:all}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-34.75px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0 - 0%)) translateY(-10.25px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-10.25px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-10.25px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-10.25px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0 - 0%)) translateY(-24.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-24.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-24.75px) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-24.75px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0 - 32px)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - 32px)) translateY(-34.75px) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0 - -32px)) translateY(-34.75px) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(-34.75px) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(-34.75px) scale(0.75)}100%{transform:translateX(calc(0 - -32px)) translateY(-34.75px) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0 - 0%)) translateY(-106%) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(-106%) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(-106%) scale(0.75)}100%{transform:translateX(calc(0 - 0%)) translateY(-106%) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}'],encapsulation:2,data:{animation:[FW.transitionMessages]},changeDetection:0}),n})(),Og=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,ia,u1,Vn]}),n})();const bI=el({passive:!0});let BW=(()=>{class n{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return qa;const i=ca(e),o=this._monitoredElements.get(i);if(o)return o.subject;const s=new X,a="cdk-text-field-autofilled",l=d=>{"cdk-text-field-autofill-start"!==d.animationName||i.classList.contains(a)?"cdk-text-field-autofill-end"===d.animationName&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>s.next({target:d.target,isAutofilled:!1}))):(i.classList.add(a),this._ngZone.run(()=>s.next({target:d.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",l,bI),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:s,unlisten:()=>{i.removeEventListener("animationstart",l,bI)}}),s}stopMonitoring(e){const i=ca(e),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}}return n.\u0275fac=function(e){return new(e||n)(we(fi),we(pt))},n.\u0275prov=Ye({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),HW=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})();const VW=new He("MAT_INPUT_VALUE_ACCESSOR"),jW=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let zW=0;const UW=ML(class{constructor(n,t,e,i){this._defaultErrorStateMatcher=n,this._parentForm=t,this._parentFormGroup=e,this.ngControl=i,this.stateChanges=new X}});let kr=(()=>{class n extends UW{constructor(e,i,o,s,a,l,d,w,P,Y){super(l,s,a,o),this._elementRef=e,this._platform=i,this._autofillMonitor=w,this._formField=Y,this._uid="mat-input-"+zW++,this.focused=!1,this.stateChanges=new X,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(pe=>N2().has(pe)),this._iOSKeyupListener=pe=>{const ke=pe.target;!ke.value&&0===ke.selectionStart&&0===ke.selectionEnd&&(ke.setSelectionRange(1,1),ke.setSelectionRange(0,0))};const q=this._elementRef.nativeElement,te=q.nodeName.toLowerCase();this._inputValueAccessor=d||q,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&P.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===te,this._isTextarea="textarea"===te,this._isInFormField=!!Y,this._isNativeSelect&&(this.controlType=q.multiple?"mat-native-select-multiple":"mat-native-select")}get disabled(){return this._disabled}set disabled(e){this._disabled=hn(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(Vt.required)??!1}set required(e){this._required=hn(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&N2().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=hn(e)}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){jW.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(fi),F(Os,10),F(Kf,8),F(ii,8),F(x1),F(VW,10),F(BW),F(pt),F(Q1,8))},n.\u0275dir=Ke({type:n,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(e,i){1&e&&ye("focus",function(){return i._focusChanged(!0)})("blur",function(){return i._focusChanged(!1)})("input",function(){return i._onInput()}),2&e&&(Js("id",i.id)("disabled",i.disabled)("required",i.required),Ut("name",i.name||null)("readonly",i.readonly&&!i._isNativeSelect||null)("aria-invalid",i.empty&&i.required?null:i.errorState)("aria-required",i.required)("id",i.id),Gt("mat-input-server",i._isServer)("mat-mdc-form-field-textarea-control",i._isInFormField&&i._isTextarea)("mat-mdc-form-field-input-control",i._isInFormField)("mdc-text-field__input",i._isInFormField)("mat-mdc-native-select-inline",i._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[Zt([{provide:X1,useExisting:n}]),dt,qi]}),n})(),WW=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,Og,Og,HW,Vn]}),n})();const $W=["tooltip"],vI=new He("mat-tooltip-scroll-strategy"),KW={provide:vI,deps:[ro],useFactory:function qW(n){return()=>n.scrollStrategies.reposition({scrollThrottle:20})}},XW=new He("mat-tooltip-default-options",{providedIn:"root",factory:function ZW(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),yI="tooltip-panel",MI=el({passive:!0});let i$=(()=>{class n{constructor(e,i,o,s,a,l,d,w,P,Y,q,te){this._overlay=e,this._elementRef=i,this._scrollDispatcher=o,this._viewContainerRef=s,this._ngZone=a,this._platform=l,this._ariaDescriber=d,this._focusMonitor=w,this._dir=Y,this._defaultOptions=q,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this._showDelay=this._defaultOptions.showDelay,this._hideDelay=this._defaultOptions.hideDelay,this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new X,this._scrollStrategy=P,this._document=te,q&&(q.position&&(this.position=q.position),q.positionAtOrigin&&(this.positionAtOrigin=q.positionAtOrigin),q.touchGestures&&(this.touchGestures=q.touchGestures)),Y.change.pipe(Cn(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})}get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=hn(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=hn(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=Mo(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=Mo(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(Cn(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,o])=>{e.removeEventListener(i,o,MI)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const o=this._createOverlay(i);this._detach(),this._portal=this._portal||new Qd(this._tooltipComponent,this._viewContainerRef);const s=this._tooltipInstance=o.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(Cn(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof bt)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),o=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(Cn(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${yI}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(Cn(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(Cn(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(Cn(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&27===s.keyCode&&!Ts(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,o=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset({...o.main,...s.main}),this._addOffset({...o.fallback,...s.fallback})])}_addOffset(e){return e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i||"below"==i?o={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={originX:"end",originY:"center"});const{x:s,y:a}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:s,originY:a}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i?o={overlayX:"center",overlayY:"bottom"}:"below"==i?o={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={overlayX:"start",overlayY:"center"});const{x:s,y:a}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:s,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(ti(1),Cn(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:o,originY:s}=e;let a;if(a="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===s?"above":"below",a!==this._currentPosition){const l=this._overlayRef;if(l){const d=`${this._cssClassPrefix}-${yI}-`;l.removePanelClass(d+this._currentPosition),l.addPanelClass(d+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,o),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const o=i.relatedTarget;(!o||!this._overlayRef?.overlayElement.contains(o))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,o])=>{this._elementRef.nativeElement.addEventListener(i,o,MI)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,o=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),("on"===e||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}}return n.\u0275fac=function(e){Ba()},n.\u0275dir=Ke({type:n,inputs:{position:["matTooltipPosition","position"],positionAtOrigin:["matTooltipPositionAtOrigin","positionAtOrigin"],disabled:["matTooltipDisabled","disabled"],showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]}}),n})(),vi=(()=>{class n extends i${constructor(e,i,o,s,a,l,d,w,P,Y,q,te){super(e,i,o,s,a,l,d,w,P,Y,q,te),this._tooltipComponent=o$,this._cssClassPrefix="mat-mdc",this._viewportMargin=8}_addOffset(e){const o=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=o?-8:8:"end"===e.originX&&(e.offsetX=o?8:-8),e}}return n.\u0275fac=function(e){return new(e||n)(F(ro),F(bt),F(Df),F(Qi),F(pt),F(fi),F(t9),F(il),F(vI),F(Or,8),F(XW,8),F(Dt))},n.\u0275dir=Ke({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],exportAs:["matTooltip"],features:[dt]}),n})(),r$=(()=>{class n{constructor(e,i){this._changeDetectorRef=e,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new X,this._animationsDisabled="NoopAnimations"===i}show(e){clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){clearTimeout(this._showTimeoutId),clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,o=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(e?s:o),i.classList.add(e?o:s),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const a=getComputedStyle(i);("0s"===a.getPropertyValue("animation-duration")||"none"===a.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}}return n.\u0275fac=function(e){return new(e||n)(F(ui),F(zi,8))},n.\u0275dir=Ke({type:n}),n})(),o$=(()=>{class n extends r${constructor(e,i,o){super(e,o),this._elementRef=i,this._isMultiline=!1,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide"}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}}return n.\u0275fac=function(e){return new(e||n)(F(ui),F(bt),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(e,i){if(1&e&&ft($W,7),2&e){let o;nt(o=it())&&(i._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(e,i){1&e&&ye("mouseleave",function(s){return i._handleMouseLeave(s)}),2&e&&Va("zoom",i.isVisible()?1:null)},features:[dt],decls:4,vars:4,consts:[[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"ngClass","animationend"],["tooltip",""],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(e,i){1&e&&(D(0,"div",0,1),ye("animationend",function(s){return i._handleAnimationEnd(s)}),D(2,"div",2),E(3),x()()),2&e&&(Gt("mdc-tooltip--multiline",i._isMultiline),M("ngClass",i.tooltipClass),c(3),oe(i.message))},dependencies:[Rn],styles:['.mdc-tooltip__surface{word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color, #fff)}.mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape, var(--mdc-shape-small, 4px))}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape, var(--mdc-shape-small, 4px))}.mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color, #000)}.mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font, inherit);font-size:var(--mdc-plain-tooltip-supporting-text-size, inherit);font-weight:var(--mdc-plain-tooltip-supporting-text-weight, inherit);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, inherit)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:-8px;right:-8px;bottom:-8px;left:-8px;z-index:-1;position:absolute}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0}),n})(),s$=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[KW],imports:[y1,ia,eu,Vn,Vn,Tf]}),n})();const a$=["button1"],l$=["button2"];function c$(n,t){1&n&&xe(0,"mat-spinner",5),2&n&&M("diameter",z().loadingSize)}function d$(n,t){1&n&&(D(0,"mat-icon"),E(1,"error_outline"),x())}const u$=function(n){return{"for-dark-background":n}};var ha=(()=>(function(n){n[n.Normal=0]="Normal",n[n.Error=1]="Error",n[n.Loading=2]="Loading"}(ha||(ha={})),ha))();class ri{constructor(){this.forDarkBackground=!1,this.disabled=!1,this.color="",this.loadingSize=20,this.action=new ht,this.state=ha.Normal,this.buttonStates=ha}ngOnDestroy(){this.action.complete()}click(){this.disabled||(this.reset(),this.action.emit())}reset(t=!0){this.state=ha.Normal,t&&(this.disabled=!1)}focus(){this.button1&&this.button1.focus(),this.button2&&this.button2.focus()}showEnabled(){this.disabled=!1}showDisabled(){this.disabled=!0}showLoading(t=!0){this.state=ha.Loading,t&&(this.disabled=!0)}showError(t=!0){this.state=ha.Error,t&&(this.disabled=!1)}get isLoading(){return this.state===ha.Loading}}ri.\u0275fac=function(t){return new(t||ri)},ri.\u0275cmp=qe({type:ri,selectors:[["app-button"]],viewQuery:function(t,e){if(1&t&&(ft(a$,5),ft(l$,5)),2&t){let i;nt(i=it())&&(e.button1=i.first),nt(i=it())&&(e.button2=i.first)}},inputs:{forDarkBackground:"forDarkBackground",disabled:"disabled",color:"color",loadingSize:"loadingSize"},outputs:{action:"action"},ngContentSelectors:["*"],decls:6,vars:7,consts:[["mat-raised-button","",3,"disabled","color","ngClass","click"],["button2",""],[1,"d-flex"],[3,"diameter",4,"ngIf"],[4,"ngIf"],[3,"diameter"]],template:function(t,e){1&t&&(gr(),D(0,"button",0,1),ye("click",function(){return e.click()}),D(2,"div",2),V(3,c$,1,1,"mat-spinner",3),V(4,d$,2,0,"mat-icon",4),vn(5),x()()),2&t&&(M("disabled",e.disabled)("color",e.color)("ngClass",Be(5,u$,e.forDarkBackground)),c(3),M("ngIf",e.state===e.buttonStates.Loading),c(1),M("ngIf",e.state===e.buttonStates.Error))},dependencies:[Rn,It,$r,yn,oc],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px}button[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}mat-icon[_ngcontent-%COMP%], mat-spinner[_ngcontent-%COMP%]{display:inline-block;margin-right:15px}.for-dark-background[_ngcontent-%COMP%]:disabled{background-color:#000!important;color:#fff!important;opacity:.3}"]});const f$=["button"],p$=["firstInput"],m$=function(n){return{"element-disabled":n}};function _$(n,t){if(1&n&&(D(0,"mat-form-field",12)(1,"div",5)(2,"label",6),E(3),R(4,"translate"),x(),xe(5,"input",13),x(),D(6,"mat-error")(7,"span"),E(8),R(9,"translate"),x()()()),2&n){const e=z();M("ngClass",Be(7,m$,e.working)),c(3),oe(B(4,3,"settings.password.old-password")),c(5),oe(B(9,5,"settings.password.errors.old-password-required"))}}const g$=function(n){return{"rounded-elevated-box":n}},wI=function(n,t){return{"white-form-field":n,"element-disabled":t}},b$=function(n,t){return{"mt-2 app-button":n,"float-right":t}};class fu{constructor(t,e,i,o){this.authService=t,this.router=e,this.snackbarService=i,this.dialog=o,this.workingState=new ht,this.forInitialConfig=!1}ngOnInit(){this.form=new PE({oldPassword:new Ig("",this.forInitialConfig?null:Vt.required),newPassword:new Ig("",Vt.compose([Vt.required,Vt.minLength(6),Vt.maxLength(64)])),newPasswordConfirmation:new Ig("",[Vt.required,this.validatePasswords.bind(this)])}),this.formSubscription=this.form.controls.newPassword.valueChanges.subscribe(()=>this.form.controls.newPasswordConfirmation.updateValueAndValidity())}ngAfterViewInit(){this.forInitialConfig&&setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe(),this.formSubscription.unsubscribe()}get working(){return!!this.button&&this.button.isLoading}changePassword(){this.form.valid&&!this.button.disabled&&(this.button.showLoading(),this.workingState.next(!0),this.subscription=this.forInitialConfig?this.authService.initialConfig(this.form.get("newPassword").value).subscribe(()=>{this.dialog.closeAll(),this.snackbarService.showDone("settings.password.initial-config.done"),this.workingState.next(!1)},t=>{this.button.showError(),t=Kt(t),this.snackbarService.showError(t,null,!0),this.workingState.next(!1)}):this.authService.changePassword(this.form.get("oldPassword").value,this.form.get("newPassword").value).subscribe(()=>{this.router.navigate(["nodes"]),this.snackbarService.showDone("settings.password.password-changed"),this.workingState.next(!1)},t=>{this.button.showError(),t=Kt(t),this.snackbarService.showError(t),this.workingState.next(!1)}))}validatePasswords(){return this.form&&this.form.get("newPassword").value!==this.form.get("newPasswordConfirmation").value?{invalid:!0}:null}}function v$(n,t){1&n&&(D(0,"button",5)(1,"mat-icon"),E(2,"close"),x()())}function y$(n,t){1&n&&Jo(0)}fu.\u0275fac=function(t){return new(t||fu)(F(Ps),F(Qt),F(on),F(Ln))},fu.\u0275cmp=qe({type:fu,selectors:[["app-password"]],viewQuery:function(t,e){if(1&t&&(ft(f$,5),ft(p$,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},inputs:{forInitialConfig:"forInitialConfig"},outputs:{workingState:"workingState"},decls:33,vars:40,consts:[[3,"ngClass"],[1,"box-internal-container","overflow"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],["class","white-form-field",3,"ngClass",4,"ngIf"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","formControlName","newPassword","maxlength","64","matInput",""],["firstInput",""],["type","password","formControlName","newPasswordConfirmation","maxlength","64","matInput",""],["color","primary",3,"ngClass","disabled","forDarkBackground","action"],["button",""],[1,"white-form-field",3,"ngClass"],["type","password","formControlName","oldPassword","maxlength","64","matInput",""]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div")(3,"mat-icon",2),R(4,"translate"),E(5," help "),x()(),D(6,"form",3),V(7,_$,10,9,"mat-form-field",4),D(8,"mat-form-field",0)(9,"div",5)(10,"label",6),E(11),R(12,"translate"),x(),xe(13,"input",7,8),x(),D(15,"mat-error")(16,"span"),E(17),R(18,"translate"),x()()(),D(19,"mat-form-field",0)(20,"div",5)(21,"label",6),E(22),R(23,"translate"),x(),xe(24,"input",9),x(),D(25,"mat-error")(26,"span"),E(27),R(28,"translate"),x()()(),D(29,"app-button",10,11),ye("action",function(){return e.changePassword()}),E(31),R(32,"translate"),x()()()()),2&t&&(M("ngClass",Be(29,g$,!e.forInitialConfig)),c(2),eo((e.forInitialConfig?"":"white-")+"form-help-icon-container"),c(1),M("inline",!0)("matTooltip",B(4,17,e.forInitialConfig?"settings.password.initial-config-help":"settings.password.help")),c(3),M("formGroup",e.form),c(1),M("ngIf",!e.forInitialConfig),c(1),M("ngClass",cn(31,wI,!e.forInitialConfig,e.working)),c(3),oe(B(12,19,e.forInitialConfig?"settings.password.initial-config.password":"settings.password.new-password")),c(6),oe(B(18,21,"settings.password.errors.new-password-error")),c(2),M("ngClass",cn(34,wI,!e.forInitialConfig,e.working)),c(3),oe(B(23,23,e.forInitialConfig?"settings.password.initial-config.repeat-password":"settings.password.repeat-password")),c(5),oe(B(28,25,"settings.password.errors.passwords-not-match")),c(2),M("ngClass",cn(37,b$,!e.forInitialConfig,e.forInitialConfig))("disabled",!e.form.valid)("forDarkBackground",!e.forInitialConfig),c(2),ce(" ",B(32,27,e.forInitialConfig?"settings.password.initial-config.set-password":"settings.change-password")," "))},dependencies:[Rn,It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,yn,vi,ri,xt],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}app-button[_ngcontent-%COMP%]{float:right;margin-right:32px}"]});const xI=function(n){return{"content-margin":n}};function M$(n,t){if(1&n&&(D(0,"mat-dialog-content",6),V(1,y$,1,0,"ng-container",7),x()),2&n){const e=z(),i=ci(8);M("ngClass",Be(2,xI,e.includeVerticalMargins)),c(1),M("ngTemplateOutlet",i)}}function w$(n,t){1&n&&Jo(0)}function x$(n,t){if(1&n&&(D(0,"div",6),V(1,w$,1,0,"ng-container",7),x()),2&n){const e=z(),i=ci(8);M("ngClass",Be(2,xI,e.includeVerticalMargins)),c(1),M("ngTemplateOutlet",i)}}function C$(n,t){1&n&&vn(0)}class En{constructor(t){this.matDialog=t,this.includeScrollableArea=!0,this.includeVerticalMargins=!0}set dialog(t){t.disableClose=!0,this.dialogInternal=t}onKeyUp(){this.closePopup()}closePopup(){this.disableDismiss||this.matDialog.openDialogs[this.matDialog.openDialogs.length-1].id===this.dialogInternal.id&&this.dialogInternal.close()}}En.\u0275fac=function(t){return new(t||En)(F(Ln))},En.\u0275cmp=qe({type:En,selectors:[["app-dialog"]],hostBindings:function(t,e){1&t&&ye("keyup.esc",function(){return e.onKeyUp()},0,$w)},inputs:{headline:"headline",disableDismiss:"disableDismiss",includeScrollableArea:"includeScrollableArea",includeVerticalMargins:"includeVerticalMargins",dialog:"dialog"},ngContentSelectors:["*"],decls:9,vars:4,consts:[["mat-dialog-title","",1,"header"],["mat-dialog-close","","mat-icon-button","","class","grey-button-background",4,"ngIf"],[1,"header-separator"],[3,"ngClass",4,"ngIf"],["contentTemplate",""],["mat-dialog-close","","mat-icon-button","",1,"grey-button-background"],[3,"ngClass"],[4,"ngTemplateOutlet"]],template:function(t,e){1&t&&(gr(),D(0,"div",0)(1,"span"),E(2),x(),V(3,v$,3,0,"button",1),x(),xe(4,"div",2),V(5,M$,2,4,"mat-dialog-content",3),V(6,x$,2,4,"div",3),V(7,C$,1,0,"ng-template",null,4,ws)),2&t&&(c(2),oe(e.headline),c(1),M("ngIf",!e.disableDismiss),c(2),M("ngIf",e.includeScrollableArea),c(1),M("ngIf",!e.includeScrollableArea))},dependencies:[Rn,It,Rd,rz,oz,C1,rl,yn],styles:['.cursor-pointer[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}[_nghost-%COMP%]{color:#202226}.header[_ngcontent-%COMP%]{margin:-24px -24px 0;color:#215f9e;padding:0 14px 0 24px;font-size:1rem;text-transform:uppercase;font-weight:700;display:flex;align-items:center}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-grow:1}@media (max-width: 767px){.header[_ngcontent-%COMP%]{padding:0 2px 0 24px}}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:1rem;margin:18px 0}.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{color:#a6b2b2;width:32px;height:32px;line-height:20px;margin-left:10px;padding:0}@media (max-width: 767px){.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{width:46px;height:46px}}.header-separator[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin-left:-12px;margin-right:-12px}.content-margin[_ngcontent-%COMP%]{padding-top:18px;padding-bottom:24px!important}']});class lc{constructor(t){this.dialogRef=t,this.disableDismiss=!1}static openDialog(t){const e=new Tn;return e.autoFocus=!1,e.width=Rt.smallModalWidth,t.open(lc,e)}}function S$(n,t){if(1&n){const e=et();D(0,"button",3),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().closePopup(s))}),xe(1,"img",4),D(2,"div",5),E(3),x()()}if(2&n){const e=t.$implicit;c(1),M("src","assets/img/lang/"+e.iconName,Oo),c(2),oe(e.name)}}lc.\u0275fac=function(t){return new(t||lc)(F(Nn))},lc.\u0275cmp=qe({type:lc,selectors:[["app-initial-setup"]],decls:3,vars:6,consts:[[3,"headline","dialog","disableDismiss"],[3,"forInitialConfig","workingState"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"app-password",1),ye("workingState",function(o){return e.disableDismiss=o}),x()()),2&t&&(M("headline",B(1,4,"settings.password.initial-config.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(2),M("forInitialConfig",!0))},dependencies:[fu,En,xt]});class ll{constructor(t,e){this.dialogRef=t,this.languageService=e,this.languages=[]}static openDialog(t){const e=new Tn;return e.autoFocus=!1,e.width=Rt.mediumModalWidth,t.open(ll,e)}ngOnInit(){this.subscription=this.languageService.languages.subscribe(t=>{this.languages=t})}ngOnDestroy(){this.subscription.unsubscribe()}closePopup(t=null){t&&this.languageService.changeLanguage(t.code),this.dialogRef.close()}}function D$(n,t){1&n&&xe(0,"img",2),2&n&&M("src","assets/img/lang/"+z().language.iconName,Oo)}ll.\u0275fac=function(t){return new(t||ll)(F(Nn),F(da))},ll.\u0275cmp=qe({type:ll,selectors:[["app-select-language"]],decls:4,vars:5,consts:[[3,"headline","dialog"],[1,"options-container"],["mat-button","","color","accent","class","grey-button-background",3,"click",4,"ngFor","ngForOf"],["mat-button","","color","accent",1,"grey-button-background",3,"click"],[3,"src"],[1,"label"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),V(3,S$,4,2,"button",2),x()()),2&t&&(M("headline",B(1,3,"language.title"))("dialog",e.dialogRef),c(3),M("ngForOf",e.languages))},dependencies:[bi,$r,En,xt],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.options-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:118px;height:auto!important;margin:20px;font-size:.7rem;line-height:unset;padding:0!important;color:unset}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .mdc-button__label{width:100%}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:90px;font-size:.6rem;margin:6px}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:64px;height:64px;margin:10px 0}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:48px;height:48px;margin:7px 0}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:#202226!important;background-color:#ffffff40;padding:4px 10px}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{padding:4px 5px}}"]});class Qf{constructor(t,e){this.languageService=t,this.dialog=e}ngOnInit(){this.subscription=this.languageService.currentLanguage.subscribe(t=>{this.language=t})}ngOnDestroy(){this.subscription.unsubscribe()}openLanguageWindow(){ll.openDialog(this.dialog)}}Qf.\u0275fac=function(t){return new(t||Qf)(F(da),F(Ln))},Qf.\u0275cmp=qe({type:Qf,selectors:[["app-lang-button"]],decls:3,vars:4,consts:[["mat-button","",1,"lang-button","subtle-transparent-button",3,"matTooltip","click"],["class","flag",3,"src",4,"ngIf"],[1,"flag",3,"src"]],template:function(t,e){1&t&&(D(0,"button",0),ye("click",function(){return e.openLanguageWindow()}),R(1,"translate"),V(2,D$,1,1,"img",1),x()),2&t&&(M("matTooltip",B(1,2,"language.title")),c(2),M("ngIf",e.language))},dependencies:[It,$r,vi,xt],styles:[".lang-button[_ngcontent-%COMP%]{height:40px;background-color:#f8f9f9;border-radius:100%;padding:0;line-height:1;padding:0!important}.lang-button[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{width:20px;height:20px}"]});const T$=function(n){return{"element-disabled":n}};class pu{constructor(t,e,i,o,s){this.authService=t,this.router=e,this.snackbarService=i,this.dialog=o,this.route=s,this.loading=!1,this.isForVpn=!1,this.vpnKey=""}ngOnInit(){this.routeSubscription=this.route.paramMap.subscribe(t=>{this.vpnKey=t.get("key"),this.isForVpn=-1!==window.location.href.indexOf("vpnlogin"),this.verificationSubscription=this.authService.checkLogin().subscribe(e=>{e!==Is.NotLogged&&(ua.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})}))})}),this.form=new PE({password:new Ig("",Vt.required)})}ngOnDestroy(){this.loginSubscription&&this.loginSubscription.unsubscribe(),this.verificationSubscription.unsubscribe(),this.routeSubscription.unsubscribe()}login(){!this.form.valid||this.loading||(this.loading=!0,this.loginSubscription=this.authService.login(this.form.get("password").value).subscribe(()=>this.onLoginSuccess(),t=>this.onLoginError(t)))}configure(){lc.openDialog(this.dialog)}onLoginSuccess(){ua.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})})}onLoginError(t){t=Kt(t),this.loading=!1,this.snackbarService.showError(t.originalError&&401===t.originalError.status?"login.incorrect-password":t.translatableErrorMsg)}}pu.\u0275fac=function(t){return new(t||pu)(F(Ps),F(Qt),F(on),F(Ln),F(yr))},pu.\u0275cmp=qe({type:pu,selectors:[["app-login"]],decls:14,vars:11,consts:[[1,"w-100","h-100","d-flex","justify-content-center"],[1,"row","main-container"],["src","/assets/img/logo-v.png",1,"logo"],[1,"mt-5",3,"formGroup"],[1,"login-input",3,"ngClass"],["type","password","formControlName","password","autocomplete","off",3,"placeholder","keydown.enter"],[3,"disabled","click"],[1,"config-link",3,"click"]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"app-lang-button"),D(2,"div",1),xe(3,"img",2),D(4,"form",3)(5,"div",4)(6,"input",5),ye("keydown.enter",function(){return e.login()}),R(7,"translate"),x(),D(8,"button",6),ye("click",function(){return e.login()}),D(9,"mat-icon"),E(10,"chevron_right"),x()()()(),D(11,"div",7),ye("click",function(){return e.configure()}),E(12),R(13,"translate"),x()()()),2&t&&(c(4),M("formGroup",e.form),c(1),M("ngClass",Be(9,T$,e.loading)),c(1),M("placeholder",B(7,5,"login.password")),c(2),M("disabled",!e.form.valid||e.loading),c(4),oe(B(13,7,"login.initial-config")))},dependencies:[Rn,Bi,Ri,Ni,Yi,ii,Li,yn,Qf,xt],styles:['.cursor-pointer[_ngcontent-%COMP%], .config-link[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}app-lang-button[_ngcontent-%COMP%]{position:fixed;right:10px;top:10px;z-index:10}.main-container[_ngcontent-%COMP%]{z-index:1;height:100%;flex-direction:column;align-items:center;justify-content:center}.logo[_ngcontent-%COMP%]{width:170px}.login-input[_ngcontent-%COMP%]{height:35px;width:300px;overflow:hidden;border-radius:10px;box-shadow:0 3px 8px #0000001a,0 6px 20px #0000001a;display:flex}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]{background:#fff;width:calc(100% - 35px);height:100%;font-size:.875rem;border:none;padding-left:10px;padding-right:10px}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]:focus{outline:none}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#fff;color:#202226;width:35px;height:35px;line-height:35px;border:none;display:flex;cursor:pointer;align-items:center}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{color:#777}.config-link[_ngcontent-%COMP%]{color:#f8f9f9;font-size:.7rem;margin-top:20px}']});var J1=N(9774),Ag=N.n(J1);class eM{}class L${}var ls=(()=>(function(n){n.Connecting="connecting",n.Unhealthy="unhealthy",n.Healthy="healthy"}(ls||(ls={})),ls))(),fa=(()=>(function(n){n.UseCustomSettings="updaterUseCustomSettings",n.Channel="updaterChannel",n.Version="updaterVersion",n.ArchiveURL="updaterArchiveURL",n.ChecksumsURL="updaterChecksumsURL"}(fa||(fa={})),fa))();class so{constructor(t,e){this.apiService=t,this.storageService=e}getNodes(){let t=[];return this.apiService.get("visors-summary").pipe(Ce(e=>{e&&e.forEach(l=>{const d=new eM;d.online=l.online,d.localPk=l.overview.local_pk,d.version=l.overview.build_info.version,d.autoconnectTransports=l.public_autoconnect,d.buildTag=l.build_tag?l.build_tag:"",d.rewardsAddress=l.reward_address,d.ip=l.overview&&l.overview.local_ip&&l.overview.local_ip.trim()?l.overview.local_ip:null;const w=this.storageService.getLabelInfo(d.localPk);if(d.label=w&&w.label?w.label:this.storageService.getDefaultLabel(d),!d.online)return d.dmsgServerPk="",d.roundTripPing="",void t.push(d);d.health={servicesHealth:l.health.services_health},d.dmsgServerPk=l.dmsg_stats.server_public_key,d.roundTripPing=this.nsToMs(l.dmsg_stats.round_trip),d.isHypervisor=l.is_hypervisor,t.push(d)});const i=new Map,o=[],s=[];t.forEach(l=>{i.set(l.localPk,l),l.online&&(o.push(l.localPk),s.push(l.ip))}),this.storageService.includeVisibleLocalNodes(o,s);const a=[];return this.storageService.getSavedLocalNodes().forEach(l=>{if(!i.has(l.publicKey)&&!l.hidden){const d=new eM;d.localPk=l.publicKey;const w=this.storageService.getLabelInfo(l.publicKey);d.label=w&&w.label?w.label:this.storageService.getDefaultLabel(d),d.online=!1,d.dmsgServerPk="",d.roundTripPing="",a.push(d)}i.has(l.publicKey)&&!i.get(l.publicKey).online&&l.hidden&&i.delete(l.publicKey)}),t=[],i.forEach(l=>t.push(l)),t=t.concat(a),t}))}nsToMs(t){let e=new(Ag())(t).dividedBy(1e6);return e=e.isLessThan(10)?e.decimalPlaces(2):e.decimalPlaces(0),e.toString(10)}getNode(t){return this.apiService.get(`visors/${t}/summary`).pipe(Ce(e=>{const i=new eM;i.localPk=e.overview.local_pk,i.version=e.overview.build_info.version,i.secondsOnline=Math.floor(Number.parseFloat(e.uptime)),i.minHops=e.min_hops,i.buildTag=e.build_tag,i.skybianBuildVersion=e.skybian_build_version,i.isSymmeticNat=e.overview.is_symmetic_nat,i.publicIp=e.overview.public_ip,i.autoconnectTransports=e.public_autoconnect,i.rewardsAddress=e.reward_address,i.ip=e.overview.local_ip&&e.overview.local_ip.trim()?e.overview.local_ip:null;const o=this.storageService.getLabelInfo(i.localPk);i.label=o&&o.label?o.label:this.storageService.getDefaultLabel(i),i.health={servicesHealth:e.health.services_health},i.transports=[],e.overview.transports&&e.overview.transports.forEach(a=>{i.transports.push({id:a.id,localPk:a.local_pk,remotePk:a.remote_pk,type:a.type,recv:a.log.recv,sent:a.log.sent})}),i.persistentTransports=[],e.persistent_transports&&e.persistent_transports.forEach(a=>{i.persistentTransports.push({pk:a.pk,type:a.type})}),i.routes=[],e.routes&&e.routes.forEach(a=>{i.routes.push({key:a.key,rule:a.rule}),a.rule_summary&&(i.routes[i.routes.length-1].ruleSummary={keepAlive:a.rule_summary.keep_alive,ruleType:a.rule_summary.rule_type,keyRouteId:a.rule_summary.key_route_id},a.rule_summary.app_fields&&a.rule_summary.app_fields.route_descriptor&&(i.routes[i.routes.length-1].appFields={routeDescriptor:{dstPk:a.rule_summary.app_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.app_fields.route_descriptor.dst_port,srcPk:a.rule_summary.app_fields.route_descriptor.src_pk,srcPort:a.rule_summary.app_fields.route_descriptor.src_port}}),a.rule_summary.forward_fields&&(i.routes[i.routes.length-1].forwardFields={nextRid:a.rule_summary.forward_fields.next_rid,nextTid:a.rule_summary.forward_fields.next_tid},a.rule_summary.forward_fields.route_descriptor&&(i.routes[i.routes.length-1].forwardFields.routeDescriptor={dstPk:a.rule_summary.forward_fields.route_descriptor.dst_pk,dstPort:a.rule_summary.forward_fields.route_descriptor.dst_port,srcPk:a.rule_summary.forward_fields.route_descriptor.src_pk,srcPort:a.rule_summary.forward_fields.route_descriptor.src_port})),a.rule_summary.intermediary_forward_fields&&(i.routes[i.routes.length-1].intermediaryForwardFields={nextRid:a.rule_summary.intermediary_forward_fields.next_rid,nextTid:a.rule_summary.intermediary_forward_fields.next_tid}))}),i.apps=[],e.overview.apps&&e.overview.apps.forEach(a=>{i.apps.push({name:a.name,status:a.status,port:a.port,autostart:a.auto_start,detailedStatus:a.detailed_status,args:a.args})});let s=!1;return e.dmsg_stats&&(i.dmsgServerPk=e.dmsg_stats.server_public_key,i.roundTripPing=this.nsToMs(e.dmsg_stats.round_trip),s=!0),s||(i.dmsgServerPk="-",i.roundTripPing="-1"),i}))}setRewardsAddress(t,e){return this.apiService.put(`visors/${t}/reward`,{reward_address:e})}getRewardsAddress(t){return this.apiService.get(`visors/${t}/reward`)}getRuntimeLogs(t){return this.apiService.get(`visors/${t}/runtime-logs`)}deleteRewardsAddress(t){return this.apiService.delete(`visors/${t}/reward`)}reboot(t){return this.apiService.post(`visors/${t}/restart`)}checkIfUpdating(t){return this.apiService.get(`visors/${t}/update/ws/running`)}checkUpdate(t){let e="stable";return e=localStorage.getItem(fa.Channel)||e,this.apiService.get(`visors/${t}/update/available/${e}`)}update(t){const e={channel:"stable"};if(localStorage.getItem(fa.UseCustomSettings)){const o=localStorage.getItem(fa.Channel);o&&(e.channel=o);const s=localStorage.getItem(fa.Version);s&&(e.version=s);const a=localStorage.getItem(fa.ArchiveURL);a&&(e.archive_url=a);const l=localStorage.getItem(fa.ChecksumsURL);l&&(e.checksums_url=l)}return this.apiService.ws(`visors/${t}/update/ws`,e)}}so.\u0275fac=function(t){return new(t||so)(we(wo),we(ni))},so.\u0275prov=Ye({token:so,factory:so.\u0275fac,providedIn:"root"});const E$=["firstInput"];class pa{constructor(t,e,i,o,s){this.dialogRef=t,this.data=e,this.formBuilder=i,this.storageService=o,this.snackbarService=s}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(pa,i)}ngOnInit(){this.form=this.formBuilder.group({label:[this.data.label]})}ngAfterViewInit(){setTimeout(()=>this.firstInput.nativeElement.focus())}save(){const t=this.form.get("label").value.trim();t!==this.data.label?(this.storageService.saveLabel(this.data.id,t,this.data.identifiedElementType),t?this.snackbarService.showDone("edit-label.done"):this.snackbarService.showWarning("edit-label.label-removed-warning"),this.dialogRef.close(!0)):this.dialogRef.close()}}pa.\u0275fac=function(t){return new(t||pa)(F(Nn),F(Ti),F(Cr),F(ni),F(on))},pa.\u0275cmp=qe({type:pa,selectors:[["app-edit-label"]],viewQuery:function(t,e){if(1&t&&ft(E$,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","label","maxlength","66","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x()()(),D(10,"app-button",6),ye("action",function(){return e.save()}),E(11),R(12,"translate"),x()()),2&t&&(M("headline",B(1,5,"labeled-element.edit-label"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,7,"edit-label.label")),c(5),oe(B(12,9,"common.save")))},dependencies:[Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ri,En,xt]});const I$=["cancelButton"],P$=["confirmButton"];function O$(n,t){if(1&n&&(D(0,"div"),E(1),R(2,"translate"),x()),2&n){const e=t.$implicit;c(1),ce(" - ",B(2,1,e)," ")}}function A$(n,t){if(1&n&&(D(0,"div",8),V(1,O$,3,3,"div",9),x()),2&n){const e=z();c(1),M("ngForOf",e.state!==e.confirmationStates.Done?e.data.list:e.doneList)}}function F$(n,t){if(1&n&&(D(0,"div",1),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),ce(" ",B(2,1,e.data.lowerText)," ")}}function R$(n,t){if(1&n){const e=et();D(0,"app-button",10,11),ye("action",function(){return Pe(e),Oe(z().closeModal())}),E(2),R(3,"translate"),x()}if(2&n){const e=z();c(2),ce(" ",B(3,1,e.data.cancelButtonText)," ")}}var cl=(()=>(function(n){n.Asking="Asking",n.Processing="Processing",n.Done="Done"}(cl||(cl={})),cl))();class Jf{constructor(t,e){this.dialogRef=t,this.data=e,this.disableDismiss=!1,this.state=cl.Asking,this.confirmationStates=cl,this.operationAccepted=new ht,this.disableDismiss=!!e.disableDismiss,this.dialogRef.disableClose=this.disableDismiss}ngAfterViewInit(){this.data.cancelButtonText?setTimeout(()=>this.cancelButton.focus()):setTimeout(()=>this.confirmButton.focus())}ngOnDestroy(){this.operationAccepted.complete()}closeModal(){this.dialogRef.close()}sendOperationAcceptedEvent(){this.operationAccepted.emit()}showAsking(t){t&&(this.data=t),this.state=cl.Asking,this.confirmButton.reset(),this.disableDismiss=!1,this.dialogRef.disableClose=this.disableDismiss,this.cancelButton&&this.cancelButton.showEnabled()}showProcessing(){this.state=cl.Processing,this.disableDismiss=!0,this.confirmButton.showLoading(),this.cancelButton&&this.cancelButton.showDisabled()}showDone(t,e,i=null){this.doneTitle=t||this.data.headerText,this.doneText=e,this.doneList=i,this.confirmButton.reset(),setTimeout(()=>this.confirmButton.focus()),this.state=cl.Done,this.dialogRef.disableClose=!1,this.disableDismiss=!1}}Jf.\u0275fac=function(t){return new(t||Jf)(F(Nn),F(Ti))},Jf.\u0275cmp=qe({type:Jf,selectors:[["app-confirmation"]],viewQuery:function(t,e){if(1&t&&(ft(I$,5),ft(P$,5)),2&t){let i;nt(i=it())&&(e.cancelButton=i.first),nt(i=it())&&(e.confirmButton=i.first)}},outputs:{operationAccepted:"operationAccepted"},decls:13,vars:14,consts:[[3,"headline","dialog","disableDismiss"],[1,"text-container"],["class","list-container",4,"ngIf"],["class","text-container",4,"ngIf"],[1,"buttons"],["color","accent",3,"action",4,"ngIf"],["color","primary",3,"action"],["confirmButton",""],[1,"list-container"],[4,"ngFor","ngForOf"],["color","accent",3,"action"],["cancelButton",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),E(3),R(4,"translate"),x(),V(5,A$,2,1,"div",2),V(6,F$,3,3,"div",3),D(7,"div",4),V(8,R$,4,3,"app-button",5),D(9,"app-button",6,7),ye("action",function(){return e.state===e.confirmationStates.Asking?e.sendOperationAcceptedEvent():e.closeModal()}),E(11),R(12,"translate"),x()()()),2&t&&(M("headline",B(1,8,e.state!==e.confirmationStates.Done?e.data.headerText:e.doneTitle))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(3),ce(" ",B(4,10,e.state!==e.confirmationStates.Done?e.data.text:e.doneText)," "),c(2),M("ngIf",e.data.list&&e.state!==e.confirmationStates.Done||e.doneList&&e.state===e.confirmationStates.Done),c(1),M("ngIf",e.data.lowerText&&e.state!==e.confirmationStates.Done),c(2),M("ngIf",e.data.cancelButtonText&&e.state!==e.confirmationStates.Done),c(3),ce(" ",B(12,12,e.state!==e.confirmationStates.Done?e.data.confirmButtonText:"confirmation.close")," "))},dependencies:[bi,It,ri,En,xt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]});class Wt{static createConfirmationDialog(t,e){const i={text:e,headerText:"confirmation.header-text",confirmButtonText:"confirmation.confirm-button",cancelButtonText:"confirmation.cancel-button",disableDismiss:!1},o=new Tn;return o.data=i,o.autoFocus=!1,o.width=Rt.smallModalWidth,t.open(Jf,o)}static checkIfTagIsUpdatable(t){return!(null==t||t.toUpperCase()==="Windows".toUpperCase()||t.toUpperCase()==="Win".toUpperCase()||t.toUpperCase()==="Mac".toUpperCase()||t.toUpperCase()==="Macos".toUpperCase()||t.toUpperCase()==="Mac OS".toUpperCase()||t.toUpperCase()==="Darwin".toUpperCase())}static checkIfTagCanOpenterminal(t){return!(null==t||t.toUpperCase()==="Windows".toUpperCase()||t.toUpperCase()==="Win".toUpperCase())}static checkIfIpValidOrEmpty(t){if(!t)return!0;const e=t.split(".");if(4!==e.length)return!1;for(const i of e){const o=Number.parseInt(i,10);if(isNaN(o)||o+""!==i||o<0||o>255)return!1}return!0}}function N$(n,t){if(1&n&&(D(0,"mat-icon",6),E(1),x()),2&n){const e=z().$implicit;M("inline",!0),c(1),oe(e.icon)}}function Y$(n,t){if(1&n){const e=et();D(0,"div",2)(1,"button",3),ye("click",function(){const s=Pe(e).index;return Oe(z().closePopup(s+1))}),D(2,"div",4),V(3,N$,2,2,"mat-icon",5),D(4,"span"),E(5),R(6,"translate"),x()()()()}if(2&n){const e=t.$implicit;c(3),M("ngIf",e.icon),c(2),oe(B(6,2,e.label))}}class Hi{constructor(t,e){this.data=t,this.dialogRef=e}static openDialog(t,e,i){const o=new Tn;return o.data={options:e,title:i},o.autoFocus=!1,o.width=Rt.smallModalWidth,t.open(Hi,o)}closePopup(t){this.dialogRef.close(t)}}Hi.\u0275fac=function(t){return new(t||Hi)(F(Ti),F(Nn))},Hi.\u0275cmp=qe({type:Hi,selectors:[["app-select-option"]],decls:3,vars:6,consts:[[3,"headline","dialog","includeVerticalMargins"],["class","options-list-button-container",4,"ngFor","ngForOf"],[1,"options-list-button-container"],["mat-button","",1,"grey-button-background",3,"click"],[1,"internal-container"],["class","icon",3,"inline",4,"ngIf"],[1,"icon",3,"inline"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),V(2,Y$,7,4,"div",1),x()),2&t&&(M("headline",B(1,4,e.data.title))("dialog",e.dialogRef)("includeVerticalMargins",!1),c(2),M("ngForOf",e.data.options))},dependencies:[bi,It,$r,yn,En,xt],styles:[".icon[_ngcontent-%COMP%]{font-size:14px;width:14px;line-height:1}.grey-button-background[_ngcontent-%COMP%]{justify-content:left!important;min-height:45px}"]});var Xn=(()=>(function(n){n.TextInput="TextInput",n.Select="Select"}(Xn||(Xn={})),Xn))();class As{constructor(t){this.dom=t}copy(t){let e=null,i=!1;try{e=this.dom.createElement("textarea"),e.style.height="0px",e.style.left="-100px",e.style.opacity="0",e.style.position="fixed",e.style.top="-100px",e.style.width="0px",this.dom.body.appendChild(e),e.value=t,e.select(),this.dom.execCommand("copy"),i=!0}finally{e&&e.parentNode&&e.parentNode.removeChild(e)}return i}}function V$(n,t){if(1&n&&(Ue(0),D(1,"span",2),E(2),x(),We()),2&n){const e=z();c(2),oe(e.shortText)}}function j$(n,t){if(1&n&&(Ue(0),D(1,"span"),E(2),x(),We()),2&n){const e=z();c(2),oe(e.text)}}As.\u0275fac=function(t){return new(t||As)(we(Dt))},As.\u0275prov=Ye({token:As,factory:As.\u0275fac});const z$=function(){return{"tooltip-word-break":!0}};class mu{constructor(){this.short=!1,this.showTooltip=!0,this.shortTextLength=5}get shortText(){if(this.text.length>2*this.shortTextLength){const t=this.text.length;return`${this.text.slice(0,this.shortTextLength)}...${this.text.slice(t-this.shortTextLength,t)}`}return this.text}}function U$(n,t){if(1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),ce(" ",B(2,1,e.labelComponents.prefix)," ")}}function W$(n,t){if(1&n&&(D(0,"span"),E(1),x()),2&n){const e=z();c(1),ce(" ",e.labelComponents.prefixSeparator," ")}}function $$(n,t){if(1&n&&(D(0,"span"),E(1),x()),2&n){const e=z();c(1),ce(" ",e.labelComponents.label," ")}}function G$(n,t){if(1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),ce(" ",B(2,1,e.labelComponents.translatableLabel)," ")}}mu.\u0275fac=function(t){return new(t||mu)},mu.\u0275cmp=qe({type:mu,selectors:[["app-truncated-text"]],inputs:{short:"short",showTooltip:"showTooltip",text:"text",shortTextLength:"shortTextLength"},decls:3,vars:5,consts:[[1,"wrapper",3,"matTooltip","matTooltipClass"],[4,"ngIf"],[1,"nowrap"]],template:function(t,e){1&t&&(D(0,"div",0),V(1,V$,3,1,"ng-container",1),V(2,j$,3,1,"ng-container",1),x()),2&t&&(M("matTooltip",e.short&&e.showTooltip?e.text:"")("matTooltipClass",Un(4,z$)),c(1),M("ngIf",e.short),c(1),M("ngIf",!e.short))},dependencies:[It,vi],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.nowrap[_ngcontent-%COMP%]{white-space:nowrap}.wrapper[_ngcontent-%COMP%]{display:inline}']});const q$=function(n){return{text:n}},K$=function(){return{"tooltip-word-break":!0}};class Z${constructor(){this.prefix="",this.prefixSeparator="",this.label="",this.translatableLabel=""}}class Ar{constructor(t,e,i,o,s){this.dialog=t,this.storageService=e,this.clipboardService=i,this.snackbarService=o,this.router=s,this.short=!1,this.shortTextLength=5,this.elementType=Mr.Node,this.labelEdited=new ht}set id(t){this.idInternal=t,this.labelComponents=Ar.getLabelComponents(this.storageService,this.id)}get id(){return this.idInternal?this.idInternal:""}static getLabelComponents(t,e){let i;i=!!t.getSavedVisibleLocalNodes().has(e);const o=new Z$;return o.labelInfo=t.getLabelInfo(e),o.labelInfo&&o.labelInfo.label?(i&&(o.prefix="labeled-element.local-element",o.prefixSeparator=" - "),o.label=o.labelInfo.label):t.getSavedVisibleLocalNodes().has(e)?o.prefix="labeled-element.unnamed-local-visor":o.translatableLabel="labeled-element.unnamed-element",o}static getCompleteLabel(t,e,i){const o=Ar.getLabelComponents(t,i);return(o.prefix?e.instant(o.prefix):"")+o.prefixSeparator+o.label+(o.translatableLabel?e.instant(o.translatableLabel):"")}ngOnDestroy(){this.labelEdited.complete()}processClick(){const t=[{icon:"filter_none",label:"labeled-element.copy"},{icon:"edit",label:"labeled-element.edit-label"}];this.labelComponents.labelInfo&&t.push({icon:"close",label:"labeled-element.remove-label"}),t.push({icon:"settings",label:"labeled-element.go-to-settings"}),Hi.openDialog(this.dialog,t,"common.options").afterClosed().subscribe(e=>{if(1===e)this.clipboardService.copy(this.id)&&this.snackbarService.showDone("copy.copied");else if(e>2)if(3===e&&this.labelComponents.labelInfo){const i=Wt.createConfirmationDialog(this.dialog,"labeled-element.remove-label-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.storageService.saveLabel(this.id,null,this.elementType),this.snackbarService.showDone("edit-label.label-removed-warning"),this.labelEdited.emit()})}else this.router.navigate(["/settings"]);else if(2===e){let i=this.labelComponents.labelInfo;i||(i={id:this.id,label:"",identifiedElementType:this.elementType}),pa.openDialog(this.dialog,i).afterClosed().subscribe(o=>{o&&this.labelEdited.emit()})}})}}Ar.\u0275fac=function(t){return new(t||Ar)(F(Ln),F(ni),F(As),F(on),F(Qt))},Ar.\u0275cmp=qe({type:Ar,selectors:[["app-labeled-element-text"]],inputs:{id:"id",short:"short",shortTextLength:"shortTextLength",elementType:"elementType"},outputs:{labelEdited:"labelEdited"},decls:12,vars:17,consts:[[1,"wrapper","highlight-internal-icon",3,"matTooltip","matTooltipClass","click"],[1,"label"],[4,"ngIf"],[3,"short","showTooltip","shortTextLength","text"],[3,"inline"]],template:function(t,e){1&t&&(D(0,"div",0),ye("click",function(o){return o.stopPropagation(),o.preventDefault(),e.processClick()}),R(1,"translate"),D(2,"span",1),V(3,U$,3,3,"span",2),V(4,W$,2,1,"span",2),V(5,$$,2,1,"span",2),V(6,G$,3,3,"span",2),x(),xe(7,"br")(8,"app-truncated-text",3),E(9," \xa0"),D(10,"mat-icon",4),E(11,"settings"),x()()),2&t&&(M("matTooltip",Ct(1,11,e.short?"labeled-element.tooltip-with-text":"labeled-element.tooltip",Be(14,q$,e.id)))("matTooltipClass",Un(16,K$)),c(3),M("ngIf",e.labelComponents&&e.labelComponents.prefix),c(1),M("ngIf",e.labelComponents&&e.labelComponents.prefixSeparator),c(1),M("ngIf",e.labelComponents&&e.labelComponents.label),c(1),M("ngIf",e.labelComponents&&e.labelComponents.translatableLabel),c(2),M("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.id),c(2),M("inline",!0))},dependencies:[It,yn,vi,mu,xt],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.8rem;-webkit-user-select:none;user-select:none}.label[_ngcontent-%COMP%]{opacity:.7;font-size:.8rem}']});class Yn{constructor(t,e,i,o){this.properties=t,this.label=e,this.sortingMode=i,this.labelProperties=o}get id(){return this.properties.join("")}}var Jt=(()=>(function(n){n.Text="Text",n.Number="Number",n.NumberReversed="NumberReversed",n.Boolean="Boolean"}(Jt||(Jt={})),Jt))();class _u{constructor(t,e,i,o,s,a){this.dialog=t,this.translateService=e,this.storageService=i,this.sortReverse=!1,this.sortByLabel=!1,this.tieBreakerColumnIndex=null,this.columnStorageKeyPrefix="col_",this.orderStorageKeyPrefix="order_",this.labelStorageKeyPrefix="label_",this.dataUpdatedSubject=new X,this.sortableColumns=o,this.id=a,this.defaultColumnIndex=s,this.sortBy=o[s];const l=this.storageService.getDataForHv(this.columnStorageKeyPrefix+a);if(l){const d=o.find(w=>w.id===l);d&&(this.sortBy=d)}this.sortReverse="true"===this.storageService.getDataForHv(this.orderStorageKeyPrefix+a),this.sortByLabel="true"===this.storageService.getDataForHv(this.labelStorageKeyPrefix+a)}get sortingArrow(){return this.sortReverse?"keyboard_arrow_up":"keyboard_arrow_down"}get currentSortingColumn(){return this.sortBy}get sortingInReverseOrder(){return this.sortReverse}get dataSorted(){return this.dataUpdatedSubject.asObservable()}get currentlySortingByLabel(){return this.sortByLabel}dispose(){this.dataUpdatedSubject.complete()}setTieBreakerColumnIndex(t){this.tieBreakerColumnIndex=t}setData(t){this.data=t,this.sortData()}changeSortingOrder(t){if(this.sortBy===t||t.labelProperties)if(t.labelProperties){const e=[{label:this.translateService.instant("tables.sort-by-value")},{label:this.translateService.instant("tables.sort-by-value")+" "+this.translateService.instant("tables.inverted-order")},{label:this.translateService.instant("tables.sort-by-label")},{label:this.translateService.instant("tables.sort-by-label")+" "+this.translateService.instant("tables.inverted-order")}];Hi.openDialog(this.dialog,e,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(t,i>2,i%2==0)})}else this.sortReverse=!this.sortReverse,this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.sortData();else this.changeSortingParams(t,!1,!1)}changeSortingParams(t,e,i){this.sortBy=t,this.sortByLabel=e,this.sortReverse=i,this.storageService.setDataForHv(this.columnStorageKeyPrefix+this.id,t.id),this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.storageService.setDataForHv(this.labelStorageKeyPrefix+this.id,String(this.sortByLabel)),this.sortData()}openSortingOrderModal(){const t=[],e=[];this.sortableColumns.forEach(i=>{const o=this.translateService.instant(i.label);t.push({label:o}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!1}),t.push({label:o+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!1}),i.labelProperties&&(t.push({label:o+" "+this.translateService.instant("tables.label")}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!0}),t.push({label:o+" "+this.translateService.instant("tables.label")+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!0}))}),Hi.openDialog(this.dialog,t,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(e[i-1].sortBy,e[i-1].sortByLabel,e[i-1].sortReverse)})}sortData(){this.data&&(this.data.sort((t,e)=>{let i=this.getSortResponse(this.sortBy,t,e,!0);return 0===i&&null!==this.tieBreakerColumnIndex&&this.sortableColumns[this.tieBreakerColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.tieBreakerColumnIndex],t,e,!1)),0===i&&this.sortableColumns[this.defaultColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.defaultColumnIndex],t,e,!1)),i}),this.dataUpdatedSubject.next())}getSortResponse(t,e,i,o){let a=e,l=i;(this.sortByLabel&&o&&t.labelProperties?t.labelProperties:t.properties).forEach(P=>{a=a[P],l=l[P]});const d=this.sortByLabel&&o?Jt.Text:t.sortingMode;let w=0;return d===Jt.Text?w=this.sortReverse?l.localeCompare(a):a.localeCompare(l):d===Jt.NumberReversed?w=this.sortReverse?a-l:l-a:d===Jt.Number?w=this.sortReverse?l-a:a-l:d===Jt.Boolean&&(a&&!l?w=-1:!a&&l&&(w=1),w*=this.sortReverse?-1:1),w}}class X${constructor(t=!1,e,i=!0,o){this._multiple=t,this._emitChanges=i,this.compareWith=o,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new X,e&&e.length&&(t?e.forEach(s=>this._markSelected(s)):this._markSelected(e[0]),this._selectedToEmit.length=0)}get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}select(...t){this._verifyValueAssignment(t),t.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...t){this._verifyValueAssignment(t),t.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...t){this._verifyValueAssignment(t);const e=this.selected,i=new Set(t);t.forEach(s=>this._markSelected(s)),e.filter(s=>!i.has(s)).forEach(s=>this._unmarkSelected(s));const o=this._hasQueuedChanges();return this._emitChangeEvent(),o}toggle(t){return this.isSelected(t)?this.deselect(t):this.select(t)}clear(t=!0){this._unmarkAll();const e=this._hasQueuedChanges();return t&&this._emitChangeEvent(),e}isSelected(t){if(this.compareWith){for(const e of this._selection)if(this.compareWith(e,t))return!0;return!1}return this._selection.has(t)}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(t){this._multiple&&this.selected&&this._selected.sort(t)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(t){this.isSelected(t)||(this._multiple||this._unmarkAll(),this.isSelected(t)||this._selection.add(t),this._emitChanges&&this._selectedToEmit.push(t))}_unmarkSelected(t){this.isSelected(t)&&(this._selection.delete(t),this._emitChanges&&this._deselectedToEmit.push(t))}_unmarkAll(){this.isEmpty()||this._selection.forEach(t=>this._unmarkSelected(t))}_verifyValueAssignment(t){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}}const Q$=["trigger"],J$=["panel"];function eG(n,t){if(1&n&&(D(0,"span",10),E(1),x()),2&n){const e=z();c(1),oe(e.placeholder)}}function tG(n,t){if(1&n&&(D(0,"span",14),E(1),x()),2&n){const e=z(2);c(1),oe(e.triggerValue)}}function nG(n,t){1&n&&vn(0,0,["*ngSwitchCase","true"])}function iG(n,t){1&n&&(D(0,"span",11),V(1,tG,2,1,"span",12),V(2,nG,1,0,"ng-content",13),x()),2&n&&(M("ngSwitch",!!z().customTrigger),c(2),M("ngSwitchCase",!0))}function rG(n,t){if(1&n){const e=et();ms(),Sl(),D(0,"div",15,16),ye("@transformPanel.done",function(o){return Pe(e),Oe(z()._panelDoneAnimatingStream.next(o.toState))})("keydown",function(o){return Pe(e),Oe(z()._handleKeydown(o))}),vn(2,1),x()}if(2&n){const e=z();(function bC(n,t,e){ts(fo,Ms,vd(ze(),n,t,e),!0)})("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),M("ngClass",e.panelClass)("@transformPanel","showing"),Ut("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const oG=[[["mat-select-trigger"]],"*"],sG=["mat-select-trigger","*"],aG={transformPanelWrap:oa("transformPanelWrap",[Er("* => void",Wy("@transformPanel",[Uy()],{optional:!0}))]),transformPanel:oa("transformPanel",[go("void",Zn({opacity:0,transform:"scale(1, 0.8)"})),Er("void => showing",Wr("120ms cubic-bezier(0, 0, 0.2, 1)",Zn({opacity:1,transform:"scale(1, 1)"}))),Er("* => void",Wr("100ms linear",Zn({opacity:0})))])};let CI=0;const kI=new He("mat-select-scroll-strategy"),cG=new He("MAT_SELECT_CONFIG"),dG={provide:kI,deps:[ro],useFactory:function lG(n){return()=>n.scrollStrategies.reposition()}},SI=new He("MatSelectTrigger");class uG{constructor(t,e){this.source=t,this.value=e}}const hG=Ff(yL(iu(ML(class{constructor(n,t,e,i,o){this._elementRef=n,this._defaultErrorStateMatcher=t,this._parentForm=e,this._parentFormGroup=i,this.ngControl=o,this.stateChanges=new X}}))));let fG=(()=>{class n extends hG{constructor(e,i,o,s,a,l,d,w,P,Y,q,te,pe,ke){super(a,s,d,w,Y),this._viewportRuler=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=l,this._parentFormField=P,this._liveAnnouncer=pe,this._defaultOptions=ke,this._panelOpen=!1,this._compareWith=(Ie,Re)=>Ie===Re,this._uid="mat-select-"+CI++,this._triggerAriaLabelledBy=null,this._destroy=new X,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+CI++,this._panelDoneAnimatingStream=new X,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.optionSelectionChanges=rf(()=>{const Ie=this.options;return Ie?Ie.changes.pipe(yo(Ie),br(()=>vt(...Ie.map(Re=>Re.onSelectionChange)))):this._ngZone.onStable.pipe(ti(1),br(()=>this.optionSelectionChanges))}),this.openedChange=new ht,this._openedStream=this.openedChange.pipe(Si(Ie=>Ie),Ce(()=>{})),this._closedStream=this.openedChange.pipe(Si(Ie=>!Ie),Ce(()=>{})),this.selectionChange=new ht,this.valueChange=new ht,this.ngControl&&(this.ngControl.valueAccessor=this),null!=ke?.typeaheadDebounceInterval&&(this._typeaheadDebounceInterval=ke.typeaheadDebounceInterval),this._scrollStrategyFactory=te,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(q)||0,this.id=this.id}get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(Vt.required)??!1}set required(e){this._required=hn(e),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=hn(e)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(e){this._disableOptionCentering=hn(e)}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(e){this._typeaheadDebounceInterval=Mo(e)}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}ngOnInit(){this._selectionModel=new X$(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(d1(),Cn(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe(Cn(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(yo(null),Cn(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const o=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?o.setAttribute("aria-labelledby",e):o.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,o=40===i||38===i||37===i||39===i,s=13===i||32===i,a=this._keyManager;if(!a.isTyping()&&s&&!Ts(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const l=this.selected;a.onKeydown(e);const d=this.selected;d&&l!==d&&this._liveAnnouncer.announce(d.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,s=40===o||38===o,a=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(a||13!==o&&32!==o||!i.activeItem||Ts(e))if(!a&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const l=this.options.some(d=>!d.disabled&&!d.selected);this.options.forEach(d=>{d.disabled||(l?d.select():d.deselect())})}else{const l=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==l&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(ti(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this._selectionModel.selected.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(o=>{if(this._selectionModel.isSelected(o))return!1;try{return null!=o.value&&this._compareWith(o.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_initKeyManager(){this._keyManager=new n9(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=vt(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(Cn(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),vt(...this.options.map(i=>i._stateChanges)).pipe(Cn(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(o!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),o!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,o)=>this.sortComparator?this.sortComparator(i,o,e):e.indexOf(i)-e.indexOf(o)),this.stateChanges.next()}}_propagateChanges(e){let i=null;i=this.multiple?this.selected.map(o=>o.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){this._keyManager&&(this.empty?this._keyManager.setFirstItemActive():this._keyManager.setActiveItem(this._selectionModel.selected[0]))}_canOpen(){return!this._panelOpen&&!this.disabled&&this.options?.length>0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}}return n.\u0275fac=function(e){return new(e||n)(F(Jl),F(ui),F(pt),F(x1),F(bt),F(Or,8),F(Kf,8),F(ii,8),F(Q1,8),F(Os,10),Na("tabindex"),F(kI),F(b1),F(cG,8))},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&(ft(Q$,5),ft(J$,5),ft(Q2,5)),2&e){let o;nt(o=it())&&(i.trigger=o.first),nt(o=it())&&(i.panel=o.first),nt(o=it())&&(i._overlayDir=o.first)}},inputs:{userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[dt,qi]}),n})(),pG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=Ke({type:n,selectors:[["mat-select-trigger"]],features:[Zt([{provide:SI,useExisting:n}])]}),n})(),ep=(()=>{class n extends fG{constructor(){super(...arguments),this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}]}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe(Cn(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(),this._changeDetectorRef.detectChanges())})}ngAfterViewInit(){this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin())}open(){this._overlayWidth=this._getOverlayWidth(),super.open(),this.stateChanges.next()}close(){super.close(),this.stateChanges.next()}_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,s=function q9(n,t,e){if(e.length){let i=t.toArray(),o=e.toArray(),s=0;for(let a=0;ae+i?Math.max(0,n-i+t):e}(a.offsetTop,a.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new uG(this,e)}_getOverlayWidth(){return(this._preferredOverlayOrigin instanceof a1?this._preferredOverlayOrigin.elementRef:this._preferredOverlayOrigin||this._elementRef).nativeElement.getBoundingClientRect().width}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275cmp=qe({type:n,selectors:[["mat-select"]],contentQueries:function(e,i,o){if(1&e&&(Ji(o,SI,5),Ji(o,ru,5),Ji(o,LL,5)),2&e){let s;nt(s=it())&&(i.customTrigger=s.first),nt(s=it())&&(i.options=s),nt(s=it())&&(i.optionGroups=s)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox",1,"mat-mdc-select"],hostVars:19,hostBindings:function(e,i){1&e&&ye("keydown",function(s){return i._handleKeydown(s)})("focus",function(){return i._onFocus()})("blur",function(){return i._onBlur()}),2&e&&(Ut("id",i.id)("tabindex",i.tabIndex)("aria-controls",i.panelOpen?i.id+"-panel":null)("aria-expanded",i.panelOpen)("aria-label",i.ariaLabel||null)("aria-required",i.required.toString())("aria-disabled",i.disabled.toString())("aria-invalid",i.errorState)("aria-activedescendant",i._getAriaActiveDescendant()),Gt("mat-mdc-select-disabled",i.disabled)("mat-mdc-select-invalid",i.errorState)("mat-mdc-select-required",i.required)("mat-mdc-select-empty",i.empty)("mat-mdc-select-multiple",i.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex"},exportAs:["matSelect"],features:[Zt([{provide:X1,useExisting:n},{provide:TL,useExisting:n}]),dt],ngContentSelectors:sG,decls:11,vars:11,consts:[["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],[1,"mat-mdc-select-value",3,"ngSwitch"],["class","mat-mdc-select-placeholder mat-mdc-select-min-line",4,"ngSwitchCase"],["class","mat-mdc-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","backdropClick","attach","detach"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text",3,"ngSwitch"],["class","mat-mdc-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(e,i){if(1&e&&(gr(oG),D(0,"div",0,1),ye("click",function(){return i.toggle()}),D(3,"div",2),V(4,eG,2,1,"span",3),V(5,iG,3,2,"span",4),x(),D(6,"div",5)(7,"div",6),ms(),D(8,"svg",7),xe(9,"path",8),x()()()(),V(10,rG,3,9,"ng-template",9),ye("backdropClick",function(){return i.close()})("attach",function(){return i._onAttached()})("detach",function(){return i.close()})),2&e){const o=ci(1);Ut("aria-owns",i.panelOpen?i.id+"-panel":null),c(3),M("ngSwitch",i.empty),Ut("id",i._valueId),c(1),M("ngSwitchCase",!0),c(1),M("ngSwitchCase",!1),c(5),M("cdkConnectedOverlayPanelClass",i._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",i._scrollStrategy)("cdkConnectedOverlayOrigin",i._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",i.panelOpen)("cdkConnectedOverlayPositions",i._positions)("cdkConnectedOverlayWidth",i._overlayWidth)}},dependencies:[Rn,$h,Iy,RS,Q2,a1],styles:['.mdc-menu-surface{display:none;position:absolute;box-sizing:border-box;max-width:calc(100vw - 32px);max-width:var(--mdc-menu-max-width, calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:var(--mdc-menu-max-height, calc(100vh - 32px));margin:0;padding:0;transform:scale(1);transform-origin:top left;opacity:0;overflow:auto;will-change:transform,opacity;z-index:8;border-radius:4px;border-radius:var(--mdc-shape-medium, 4px);transform-origin-left:top left;transform-origin-right:top right}.mdc-menu-surface:focus{outline:none}.mdc-menu-surface--animating-open{display:inline-block;transform:scale(0.8);opacity:0}.mdc-menu-surface--open{display:inline-block;transform:scale(1);opacity:1}.mdc-menu-surface--animating-closed{display:inline-block;opacity:0}[dir=rtl] .mdc-menu-surface,.mdc-menu-surface[dir=rtl]{transform-origin-left:top right;transform-origin-right:top left}.mdc-menu-surface--anchor{position:relative;overflow:visible}.mdc-menu-surface--fixed{position:fixed}.mdc-menu-surface--fullwidth{width:100%}.mat-mdc-select{display:inline-block;width:100%;outline:none}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}.mdc-menu-surface.mat-mdc-select-panel{width:100%;max-height:275px;position:static;outline:0;margin:0;padding:8px 0;list-style-type:none}.mdc-menu-surface.mat-mdc-select-panel:focus{outline:none}.cdk-high-contrast-active .mdc-menu-surface.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) .mdc-menu-surface.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above .mdc-menu-surface.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}'],encapsulation:2,data:{animation:[aG.transformPanel]},changeDetection:0}),n})(),mG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[dG],imports:[ia,eu,EL,Vn,Tf,Og,EL,Vn]}),n})();function _G(n,t){if(1&n&&xe(0,"input",9),2&n){const e=z().$implicit;M("formControlName",e.keyNameInFiltersObject)("maxlength",e.maxlength)}}function gG(n,t){if(1&n&&(D(0,"div",14),xe(1,"div",15),x()),2&n){const e=z().$implicit,i=z(2).$implicit;di("background-image: url('"+i.printableLabelGeneralSettings.defaultImage+"'); width: "+i.printableLabelGeneralSettings.imageWidth+"px; height: "+i.printableLabelGeneralSettings.imageHeight+"px;"),c(1),di("background-image: url('"+e.image+"');")}}function bG(n,t){if(1&n&&(D(0,"mat-option",12),V(1,gG,2,4,"div",13),E(2),R(3,"translate"),x()),2&n){const e=t.$implicit,i=z(2).$implicit;M("value",e.value),c(1),M("ngIf",i.printableLabelGeneralSettings&&e.image),c(1),ce(" ",B(3,3,e.label)," ")}}function vG(n,t){if(1&n&&(D(0,"mat-select",10),V(1,bG,4,5,"mat-option",11),x()),2&n){const e=z().$implicit;M("formControlName",e.keyNameInFiltersObject),c(1),M("ngForOf",e.printableLabelsForValues)}}function yG(n,t){if(1&n&&(Ue(0),D(1,"mat-form-field")(2,"div",5)(3,"label",6),E(4),R(5,"translate"),x(),V(6,_G,1,2,"input",7),V(7,vG,2,2,"mat-select",8),x()(),We()),2&n){const e=t.$implicit,i=z();c(4),oe(B(5,3,e.filterName)),c(2),M("ngIf",e.type===i.filterFieldTypes.TextInput),c(1),M("ngIf",e.type===i.filterFieldTypes.Select)}}class cc{constructor(t,e,i){this.data=t,this.dialogRef=e,this.formBuilder=i,this.filterFieldTypes=Xn}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(cc,i)}ngOnInit(){const t={};this.data.filterPropertiesList.forEach(e=>{t[e.keyNameInFiltersObject]=[this.data.currentFilters[e.keyNameInFiltersObject]]}),this.form=this.formBuilder.group(t)}apply(){const t={};this.data.filterPropertiesList.forEach(e=>{t[e.keyNameInFiltersObject]=this.form.get(e.keyNameInFiltersObject).value.trim()}),this.dialogRef.close(t)}}cc.\u0275fac=function(t){return new(t||cc)(F(Ti),F(Nn),F(Cr))},cc.\u0275cmp=qe({type:cc,selectors:[["app-filters-selection"]],decls:8,vars:9,consts:[[3,"headline","dialog"],[3,"formGroup"],[4,"ngFor","ngForOf"],["color","primary",1,"float-right",3,"action"],["button",""],[1,"field-container"],["for","remoteKey",1,"field-label"],["matInput","",3,"formControlName","maxlength",4,"ngIf"],[3,"formControlName",4,"ngIf"],["matInput","",3,"formControlName","maxlength"],[3,"formControlName"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["class","image-container",3,"style",4,"ngIf"],[1,"image-container"],[1,"image"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1),V(3,yG,8,5,"ng-container",2),x(),D(4,"app-button",3,4),ye("action",function(){return e.apply()}),E(6),R(7,"translate"),x()()),2&t&&(M("headline",B(1,5,"filters.filter-action"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(1),M("ngForOf",e.data.filterPropertiesList),c(3),ce(" ",B(7,7,"common.ok")," "))},dependencies:[bi,It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ep,ru,ri,En,xt],styles:[".image-container[_ngcontent-%COMP%]{display:inline-block;background-size:contain;margin-right:5px}.image-container[_ngcontent-%COMP%] .image[_ngcontent-%COMP%]{background-size:contain;width:100%;height:100%}"]});class gu{constructor(t,e,i,o,s){this.dialog=t,this.route=e,this.router=i,this.currentFiltersTextsInternal=[],this.dataUpdatedSubject=new X,this.filterPropertiesList=o,this.currentFilters={},this.filterPropertiesList.forEach(a=>{a.keyNameInFiltersObject=s+"_"+a.keyNameInElementsArray,this.currentFilters[a.keyNameInFiltersObject]=""}),this.navigationsSubscription=this.route.queryParamMap.subscribe(a=>{Object.keys(this.currentFilters).forEach(l=>{a.has(l)&&(this.currentFilters[l]=a.get(l))}),this.currentUrlQueryParamsInternal={},a.keys.forEach(l=>{this.currentUrlQueryParamsInternal[l]=a.get(l)}),this.filter()})}get currentFiltersTexts(){return this.currentFiltersTextsInternal}get currentUrlQueryParams(){return this.currentUrlQueryParamsInternal}get dataFiltered(){return this.dataUpdatedSubject.asObservable()}dispose(){this.dataUpdatedSubject.complete(),this.navigationsSubscription.unsubscribe()}setData(t){this.data=t,this.filter()}removeFilters(){const t=Wt.createConfirmationDialog(this.dialog,"filters.remove-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.router.navigate([],{queryParams:{}})})}changeFilters(){cc.openDialog(this.dialog,{filterPropertiesList:this.filterPropertiesList,currentFilters:this.currentFilters}).afterClosed().subscribe(e=>{e&&this.router.navigate([],{queryParams:e})})}filter(){if(this.data){let t,e=!1;Object.keys(this.currentFilters).forEach(i=>{this.currentFilters[i]&&(e=!0)}),e?(t=function B$(n,t,e){if(n){const i=[];return Object.keys(t).forEach(s=>{if(t[s])for(const a of e)if(a.keyNameInFiltersObject===s){i.push(a);break}}),n.filter(s=>{let a=!0;return i.forEach(l=>{const d=String(s[l.keyNameInElementsArray]).toLowerCase().includes(t[l.keyNameInFiltersObject].toLowerCase()),w=l.secondaryKeyNameInElementsArray&&String(s[l.secondaryKeyNameInElementsArray]).toLowerCase().includes(t[l.keyNameInFiltersObject].toLowerCase());!d&&!w&&(a=!1)}),a})}return null}(this.data,this.currentFilters,this.filterPropertiesList),this.updateCurrentFilters()):(t=this.data,this.updateCurrentFilters()),this.dataUpdatedSubject.next(t)}}updateCurrentFilters(){this.currentFiltersTextsInternal=function H$(n,t){const e=[];return t.forEach(i=>{if(n[i.keyNameInFiltersObject]){let o,s;i.printableLabelsForValues&&i.printableLabelsForValues.forEach(a=>{a.value===n[i.keyNameInFiltersObject]&&(s=a.label)}),s||(o=n[i.keyNameInFiltersObject]),e.push({filterName:i.filterName,translatableValue:s,value:o})}}),e}(this.currentFilters,this.filterPropertiesList)}}function MG(n,t){if(1&n){const e=et();D(0,"div",5)(1,"div",6)(2,"div",7),E(3),x(),D(4,"div",8),E(5),x()(),D(6,"div",9)(7,"app-button",10),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).openTerminal(s.key))}),E(8),R(9,"translate"),x()()()}if(2&n){const e=t.$implicit;c(3),oe(e.label),c(2),oe(e.version),c(3),ce(" ",B(9,3,"update-all.update-button")," ")}}function wG(n,t){if(1&n&&(Ue(0),D(1,"div",2),E(2),R(3,"translate"),x(),D(4,"div",3),V(5,MG,10,5,"div",4),x(),We()),2&n){const e=z();c(2),ce(" ",B(3,2,"update-all.updatable-list-text")," "),c(3),M("ngForOf",e.updatableNodes)}}function xG(n,t){if(1&n&&(D(0,"div",8),E(1),x()),2&n){const e=z().$implicit;c(1),oe(e.tag)}}function CG(n,t){if(1&n&&(D(0,"div",5)(1,"div",6)(2,"div",7),E(3),x(),D(4,"div",8),E(5),x(),V(6,xG,2,1,"div",11),x()()),2&n){const e=t.$implicit;c(3),oe(e.label),c(2),oe(e.version),c(1),M("ngIf",e.tag)}}function kG(n,t){if(1&n&&(Ue(0),D(1,"div",2),E(2),R(3,"translate"),x(),D(4,"div",3),V(5,CG,7,3,"div",4),x(),We()),2&n){const e=z();c(2),ce(" ",B(3,2,"update-all.non-updatable-list-text")," "),c(3),M("ngForOf",e.nonUpdatableNodes)}}class dc{constructor(t,e){this.dialogRef=t,this.updatableNodes=e[0],this.nonUpdatableNodes=e[1]}static openDialog(t,e,i){const o=new Tn;return o.data=[e,i],o.autoFocus=!1,o.width=Rt.smallModalWidth,t.open(dc,o)}openTerminal(t){const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+t+"?commands=update","_blank","noopener noreferrer")}}dc.\u0275fac=function(t){return new(t||dc)(F(Nn),F(Ti))},dc.\u0275cmp=qe({type:dc,selectors:[["app-update-all"]],decls:4,vars:6,consts:[[3,"headline","dialog"],[4,"ngIf"],[1,"text-container"],[1,"list-container"],["class","list-element",4,"ngFor","ngForOf"],[1,"list-element"],[1,"left-part"],[1,"name"],[1,"version"],[1,"right-part"],["color","primary",3,"click"],["class","version",4,"ngIf"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),V(2,wG,6,4,"ng-container",1),V(3,kG,6,4,"ng-container",1),x()),2&t&&(M("headline",B(1,4,"update-all.title"))("dialog",e.dialogRef),c(2),M("ngIf",e.updatableNodes&&e.updatableNodes.length>0),c(1),M("ngIf",e.nonUpdatableNodes&&e.nonUpdatableNodes.length>0))},dependencies:[bi,It,ri,En,xt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex;margin-bottom:10px}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1;align-self:center;margin-right:10px;min-width:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 575px){.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:.7rem}}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:.7rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-part[_ngcontent-%COMP%]{flex-basis:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{color:#777}"]});const SG=["input"],DG=["label"],TG=["*"],LG=new He("mat-checkbox-default-options",{providedIn:"root",factory:DI});function DI(){return{color:"accent",clickAction:"check-indeterminate"}}const EG={provide:as,useExisting:an(()=>ma),multi:!0};class IG{}let PG=0;const TI=DI(),OG=yL(Af(Ff(iu(class{constructor(n){this._elementRef=n}}))));let AG=(()=>{class n extends OG{constructor(e,i,o,s,a,l,d){super(i),this._changeDetectorRef=o,this._ngZone=s,this._animationMode=l,this._options=d,this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new ht,this.indeterminateChange=new ht,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||TI,this.color=this.defaultColor=this._options.color||TI.color,this.tabIndex=parseInt(a)||0,this.id=this._uniqueId=`${e}${++PG}`}get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(e){this._required=hn(e)}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){const i=hn(e);i!=this.checked&&(this._checked=i,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){const i=hn(e);i!==this.disabled&&(this._disabled=i,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=hn(e),i&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_getAriaChecked(){return this.checked?"true":this.indeterminate?"mixed":"false"}_transitionCheckState(e){let i=this._currentCheckState,o=this._getAnimationTargetElement();if(i!==e&&o&&(this._currentAnimationClass&&o.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){o.classList.add(this._currentAnimationClass);const s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{o.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case 0:if(1===i)return this._animationClasses.uncheckedToChecked;if(3==i)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case 2:return 1===i?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case 1:return 2===i?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case 3:return 1===i?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}}return n.\u0275fac=function(e){Ba()},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&(ft(SG,5),ft(DG,5),ft(Ls,5)),2&e){let o;nt(o=it())&&(i._inputElement=o.first),nt(o=it())&&(i._labelElement=o.first),nt(o=it())&&(i.ripple=o.first)}},inputs:{ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},features:[dt]}),n})(),ma=(()=>{class n extends AG{constructor(e,i,o,s,a,l){super("mat-mdc-checkbox-",e,i,o,s,a,l),this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"}}focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new IG;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_onInputClick(){super._handleInputClick()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(pt),Na("tabindex"),F(zi,8),F(LG,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-checkbox"]],hostAttrs:[1,"mat-mdc-checkbox"],hostVars:12,hostBindings:function(e,i){2&e&&(Js("id",i.id),Ut("tabindex",null)("aria-label",null)("aria-labelledby",null),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mdc-checkbox--disabled",i.disabled)("mat-mdc-checkbox-disabled",i.disabled)("mat-mdc-checkbox-checked",i.checked))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matCheckbox"],features:[Zt([EG]),dt],ngContentSelectors:TG,decls:15,vars:19,consts:[[1,"mdc-form-field",3,"click"],[1,"mdc-checkbox"],["checkbox",""],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"checked","disabled","id","required","tabIndex","blur","click","change"],["input",""],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[3,"for"],["label",""]],template:function(e,i){if(1&e&&(gr(),D(0,"div",0),ye("click",function(s){return i._preventBubblingFromLabel(s)}),D(1,"div",1,2)(3,"div",3),ye("click",function(){return i._onInputClick()}),x(),D(4,"input",4,5),ye("blur",function(){return i._onBlur()})("click",function(){return i._onInputClick()})("change",function(s){return i._onInteractionEvent(s)}),x(),xe(6,"div",6),D(7,"div",7),ms(),D(8,"svg",8),xe(9,"path",9),x(),Sl(),xe(10,"div",10),x(),xe(11,"div",11),x(),D(12,"label",12,13),vn(14),x()()),2&e){const o=ci(2);Gt("mdc-form-field--align-end","before"==i.labelPosition),c(4),Gt("mdc-checkbox--selected",i.checked),M("checked",i.checked)("disabled",i.disabled)("id",i.inputId)("required",i.required)("tabIndex",i.tabIndex),Ut("aria-checked",i._getAriaChecked())("aria-label",i.ariaLabel||null)("aria-labelledby",i.ariaLabelledby)("aria-describedby",i.ariaDescribedby)("name",i.name)("value",i.value),c(7),M("matRippleTrigger",o)("matRippleDisabled",i.disableRipple||i.disabled)("matRippleCentered",!0),c(1),M("for",i.inputId)}},dependencies:[Ls],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size, 48px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);width:var(--mdc-checkbox-state-layer-size, 48px);height:var(--mdc-checkbox-state-layer-size, 48px)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, rgba(0, 0, 0, 0.38));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color, rgba(0, 0, 0, 0.38))}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, #fff)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mdc-theme-secondary, #018786));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF018786FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786))}@keyframes mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786))}}@keyframes mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786));background-color:var(--mdc-checkbox-selected-pressed-icon-color, var(--mdc-theme-secondary, #018786))}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-checkbox .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FF01878600000000FF018786}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px)}.mat-mdc-checkbox .mdc-checkbox:hover .mdc-checkbox__native-control:not([disabled])~.mdc-checkbox__ripple{opacity:.04;transform:scale(1);transition:opacity 80ms 0 cubic-bezier(0, 0, 0.2, 1),transform 80ms 0 cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-checkbox .mdc-checkbox .mdc-checkbox__native-control:not([disabled]):focus~.mdc-checkbox__ripple{opacity:.16}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__native-control:focus:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, black)}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0}),n})(),LI=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({}),n})(),NG=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn,Yf,LI,Vn,LI]}),n})();const YG=["button"];function BG(n,t){1&n&&(D(0,"span",22),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"bulk-rewards.checking"),""))}function HG(n,t){if(1&n&&(D(0,"span",23)(1,"span"),E(2),R(3,"translate"),x(),D(4,"span"),E(5),R(6,"translate"),x()()),2&n){const e=z(2).$implicit;c(2),ce(" ",B(3,2,"bulk-rewards.error-checking"),""),c(3),ce(" ",B(6,4,e.operationError),"")}}function VG(n,t){if(1&n&&(D(0,"span"),E(1),x()),2&n){const e=z(2).$implicit;c(1),ce(" ",e.currentAddress,"")}}function jG(n,t){1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"bulk-rewards.not-registered"),""))}function zG(n,t){if(1&n&&(Ue(0,15),D(1,"mat-checkbox",16)(2,"div")(3,"div",17),E(4),x(),D(5,"div",18)(6,"span",19),E(7),R(8,"translate"),x(),V(9,BG,3,3,"span",20),V(10,HG,7,6,"span",21),V(11,VG,2,1,"span",12),V(12,jG,3,3,"span",12),x()()(),We()),2&n){const e=z(),o=e.$implicit;M("formGroupName",e.index),c(4),ce(" ",o.label," "),c(3),oe(B(8,7,"bulk-rewards.current-address")),c(2),M("ngIf",null===o.currentAddress&&!o.operationError),c(1),M("ngIf",o.operationError),c(1),M("ngIf",o.currentAddress&&!o.operationError),c(1),M("ngIf",""===o.currentAddress&&!o.operationError)}}function UG(n,t){1&n&&(D(0,"span",22),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"bulk-rewards.processing"),""))}function WG(n,t){if(1&n&&(D(0,"span",23)(1,"span"),E(2),R(3,"translate"),x(),D(4,"span"),E(5),R(6,"translate"),x()()),2&n){const e=z(2).$implicit;c(2),ce(" ",B(3,2,"bulk-rewards.error-processing"),""),c(3),ce(" ",B(6,4,e.operationError),"")}}function $G(n,t){1&n&&(D(0,"span",28),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"bulk-rewards.done"),""))}function GG(n,t){if(1&n&&(Ue(0),D(1,"div",24),E(2,"-"),x(),D(3,"div",25),E(4),D(5,"div",26),V(6,UG,3,3,"span",20),V(7,WG,7,6,"span",21),V(8,$G,3,3,"span",27),x()(),We()),2&n){const e=z().$implicit;c(4),ce(" ",e.label," "),c(2),M("ngIf",e.processing&&!e.operationError),c(1),M("ngIf",e.operationError),c(1),M("ngIf",!e.processing&&!e.operationError)}}const qG=function(n){return{"element-margin":n}};function KG(n,t){if(1&n&&(D(0,"div",13),V(1,zG,13,9,"ng-container",14),V(2,GG,9,4,"ng-container",12),x()),2&n){const e=z();M("ngClass",Be(3,qG,e.processingStarted)),c(1),M("ngIf",!e.processingStarted),c(1),M("ngIf",e.processingStarted)}}function ZG(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"bulk-rewards.perform-changes")))}function XG(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"common.close")))}const QG=function(n){return{"element-disabled":n}};class uc{constructor(t,e,i,o,s){this.dialogRef=t,this.data=e,this.nodeService=i,this.formBuilder=o,this.dialog=s,this.processingStarted=!1,this.processingFinished=!1,this.currentlyProcessed=0,this.form=o.group({address:["",Vt.compose([Vt.minLength(20),Vt.maxLength(40)])],nodes:o.array([])}),e.nodes.forEach(a=>{const l=this.formBuilder.group({selected:[!0]});this.form.get("nodes").push(l)}),this.startChecking()}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(uc,i)}formValid(){if(!this.processingStarted){if(!this.form.valid)return!1;let t=0;return this.form.get("nodes").controls.forEach((e,i)=>{e.get("selected")?.value&&(t+=1)}),t>0}return!0}get disableDismiss(){return this.processingStarted&&!this.processingFinished}startChecking(){this.nodesToEdit=[],this.data.nodes.forEach(t=>{this.nodesToEdit.push({key:t.key,label:t.label,currentAddress:null,operationError:"",processing:!1})}),this.operationSubscriptions=[],this.nodesToEdit.forEach((t,e)=>{this.operationSubscriptions.push(this.nodeService.getRewardsAddress(t.key).subscribe(i=>{this.nodesToEdit[e].currentAddress=i},i=>{this.nodesToEdit[e].operationError=i.translatableErrorMsg?i.translatableErrorMsg:i.originalServerErrorMsg}))})}checkBeforeProcessing(){if(this.form.valid)if(this.form.get("address").value)this.startProcessing();else{const e=Wt.createConfirmationDialog(this.dialog,"bulk-rewards.empty-warning");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.startProcessing()})}}startProcessing(){this.processingStarted=!0,this.button.showLoading(),this.closeoperationSubscriptions();const t=[];this.form.get("nodes").controls.forEach((i,o)=>{i.get("selected")?.value&&(this.nodesToEdit[o].operationError="",this.nodesToEdit[o].processing=!0,t.push(this.nodesToEdit[o]))}),this.nodesToEdit=t;const e=this.form.get("address").value;this.form.get("address").disable(),this.currentlyProcessed=0,this.operationSubscriptions=[],this.nodesToEdit.forEach((i,o)=>{let s=this.nodeService.setRewardsAddress(i.key,e);e||(s=this.nodeService.deleteRewardsAddress(i.key)),this.operationSubscriptions.push(Ge(0).pipe(Di(100),Ne(()=>s)).subscribe(a=>{this.nodesToEdit[o].processing=!1,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())},a=>{this.nodesToEdit[o].processing=!1,this.nodesToEdit[o].operationError=a.translatableErrorMsg?a.translatableErrorMsg:a.originalServerErrorMsg,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())}))})}ngOnDestroy(){this.closeoperationSubscriptions()}closeoperationSubscriptions(){this.operationSubscriptions&&this.operationSubscriptions.forEach(t=>t.unsubscribe())}closeModal(){this.dialogRef.close()}}uc.\u0275fac=function(t){return new(t||uc)(F(Nn),F(Ti),F(so),F(Cr),F(Ln))},uc.\u0275cmp=qe({type:uc,selectors:[["app-bulk-reward-address-changer"]],viewQuery:function(t,e){if(1&t&&ft(YG,5),2&t){let i;nt(i=it())&&(e.button=i.first)}},decls:30,vars:28,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"text-container"],["href","https://github.com/skycoin/skywire/blob/master/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","40","matInput","",3,"ngClass"],["formArrayName","nodes",1,"list-container"],["class","list-element",3,"ngClass",4,"ngFor","ngForOf"],[1,"buttons"],["type","mat-raised-button","color","primary",3,"disabled","action"],["button",""],[4,"ngIf"],[1,"list-element",3,"ngClass"],[3,"formGroupName",4,"ngIf"],[3,"formGroupName"],["color","primary","formControlName","selected"],[1,"contents"],[1,"address","contents"],[1,"address-label"],["class","blinking",4,"ngIf"],["class","red-text",4,"ngIf"],[1,"blinking"],[1,"red-text"],[1,"left-area"],[1,"right-area","contents"],[1,"address"],["class","green-text",4,"ngIf"],[1,"green-text"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"div",2)(4,"span"),E(5),R(6,"translate"),x(),D(7,"a",3),E(8),R(9,"translate"),x()(),D(10,"mat-form-field")(11,"div",4)(12,"label",5),E(13),R(14,"translate"),x(),xe(15,"input",6),x(),D(16,"mat-error")(17,"span"),E(18),R(19,"translate"),x()()(),D(20,"div",2),E(21),R(22,"translate"),x(),D(23,"div",7),V(24,KG,3,5,"div",8),x()(),D(25,"div",9)(26,"app-button",10,11),ye("action",function(){return e.processingStarted?e.closeModal():e.checkBeforeProcessing()}),V(28,ZG,3,3,"ng-container",12),V(29,XG,3,3,"ng-container",12),x()()()),2&t&&(M("headline",B(1,14,"bulk-rewards.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(2),M("formGroup",e.form),c(3),ce("",B(6,16,"bulk-rewards.info")," "),c(3),ce(" ",B(9,18,"bulk-rewards.more-info-link")," "),c(5),oe(B(14,20,"rewards-address-config.address")),c(2),M("ngClass",Be(26,QG,e.processingStarted)),c(3),oe(B(19,22,"rewards-address-config.address-error")),c(3),ce(" ",B(22,24,"bulk-rewards.select-visors")," "),c(3),M("ngForOf",e.nodesToEdit),c(2),M("disabled",!e.formValid()),c(2),M("ngIf",!e.processingStarted),c(1),M("ngIf",e.processingStarted))},dependencies:[Rn,bi,It,Bi,Ri,Ni,Yi,xr,ii,Li,Zf,Xf,nr,al,kr,ma,ri,En,xt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}mat-form-field[_ngcontent-%COMP%]{margin-top:10px}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.list-container[_ngcontent-%COMP%] .element-margin[_ngcontent-%COMP%]{margin:15px 0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-area[_ngcontent-%COMP%]{width:12px;flex-grow:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-area[_ngcontent-%COMP%]{flex-grow:1}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .contents[_ngcontent-%COMP%]{white-space:normal;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%]{font-size:.7rem;color:#777}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%] .address-label[_ngcontent-%COMP%]{opacity:.7}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]});class JG{}class bu{constructor(t,e){this.storageService=t,this.nodeService=e,this.dataSubject=new Ir(null),this.lastEmitedData=new JG,this.firstCallToGetDataMade=!1,this.storageService.getRefreshTimeObservable().subscribe(i=>{this.dataRefreshDelay=1e3*i,this.forceRefresh()})}startRequestingData(){return this.firstCallToGetDataMade||this.getData(0),this.dataSubject.asObservable()}getData(t){this.firstCallToGetDataMade=!0,this.updateSubscription&&this.updateSubscription.unsubscribe(),this.updateSubscription=Ge(1).pipe(Di(t),hi(()=>{this.lastEmitedData.updating=!0,this.dataSubject.next(this.lastEmitedData)}),Di(120),Ne(()=>this.nodeService.getNodes())).subscribe(e=>{this.lastEmitedData={data:e,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(this.dataRefreshDelay)},e=>{e=Kt(e),this.lastEmitedData={data:this.lastEmitedData.data,error:e,momentOfLastCorrectUpdate:this.lastEmitedData.momentOfLastCorrectUpdate,updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(Rt.connectionRetryDelay)})}forceRefresh(){this.getData(0)}}bu.\u0275fac=function(t){return new(t||bu)(we(ni),we(so))},bu.\u0275prov=Ye({token:bu,factory:bu.\u0275fac,providedIn:"root"});const eq=["mat-menu-item",""];function tq(n,t){1&n&&(ms(),D(0,"svg",3),xe(1,"polygon",4),x())}const nq=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],iq=["mat-icon, [matMenuItemIcon]","*"];function rq(n,t){if(1&n){const e=et();D(0,"div",0),ye("keydown",function(o){return Pe(e),Oe(z()._handleKeydown(o))})("click",function(){return Pe(e),Oe(z().closed.emit("click"))})("@transformMenu.start",function(o){return Pe(e),Oe(z()._onAnimationStart(o))})("@transformMenu.done",function(o){return Pe(e),Oe(z()._onAnimationDone(o))}),D(1,"div",1),vn(2),x()()}if(2&n){const e=z();M("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),Ut("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const oq=["*"],tM=new He("MAT_MENU_PANEL"),sq=Ff(iu(class{}));let _a=(()=>{class n extends sq{constructor(e,i,o,s,a){super(),this._elementRef=e,this._document=i,this._focusMonitor=o,this._parentMenu=s,this._changeDetectorRef=a,this.role="menuitem",this._hovered=new X,this._focused=new X,this._highlighted=!1,this._triggersSubmenu=!1,s?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o enter",Wr("120ms cubic-bezier(0, 0, 0.2, 1)",Zn({opacity:1,transform:"scale(1)"}))),Er("* => void",Wr("100ms 25ms linear",Zn({opacity:0})))]),fadeInItems:oa("fadeInItems",[go("showing",Zn({opacity:1})),Er("void => *",[Zn({opacity:0}),Wr("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let lq=0;const EI=new He("mat-menu-default-options",{providedIn:"root",factory:function cq(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let tp=(()=>{class n{constructor(e,i,o,s){this._elementRef=e,this._ngZone=i,this._defaultOptions=o,this._changeDetectorRef=s,this._xPosition=this._defaultOptions.xPosition,this._yPosition=this._defaultOptions.yPosition,this._directDescendantItems=new Vl,this._classList={},this._panelAnimationState="void",this._animationDone=new X,this.overlayPanelClass=this._defaultOptions.overlayPanelClass||"",this.backdropClass=this._defaultOptions.backdropClass,this._overlapTrigger=this._defaultOptions.overlapTrigger,this._hasBackdrop=this._defaultOptions.hasBackdrop,this.closed=new ht,this.close=this.closed,this.panelId="mat-menu-panel-"+lq++}get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(e){this._overlapTrigger=hn(e)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=hn(e)}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(o=>{this._classList[o]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(o=>{this._classList[o]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new aL(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(yo(this._directDescendantItems),br(e=>vt(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const o=e.toArray(),s=Math.max(0,Math.min(o.length-1,i.activeItemIndex||0));o[s]&&!o[s].disabled?i.setActiveItem(s):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(yo(this._directDescendantItems),br(i=>vt(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:Ts(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&o.setFocusOrigin("keyboard"),void o.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(ti(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),o=`${this._elevationPrefix}${i}`,s=Object.keys(this._classList).find(a=>a.startsWith(this._elevationPrefix));(!s||s===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[o]=!0,this._previousElevation=o)}setPositionClasses(e=this.xPosition,i=this.yPosition){const o=this._classList;o["mat-menu-before"]="before"===e,o["mat-menu-after"]="after"===e,o["mat-menu-above"]="above"===i,o["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(yo(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt),F(EI),F(ui))},n.\u0275dir=Ke({type:n,contentQueries:function(e,i,o){if(1&e&&(Ji(o,aq,5),Ji(o,_a,5),Ji(o,_a,4)),2&e){let s;nt(s=it())&&(i.lazyContent=s.first),nt(s=it())&&(i._allItems=s),nt(s=it())&&(i.items=s)}},viewQuery:function(e,i){if(1&e&&ft(cr,5),2&e){let o;nt(o=it())&&(i.templateRef=o.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:["class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}}),n})(),vu=(()=>{class n extends tp{constructor(e,i,o,s){super(e,i,o,s),this._elevationPrefix="mat-elevation-z",this._baseElevation=8}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(pt),F(EI),F(ui))},n.\u0275cmp=qe({type:n,selectors:[["mat-menu"]],hostVars:3,hostBindings:function(e,i){2&e&&Ut("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[Zt([{provide:tM,useExisting:n}]),dt],ngContentSelectors:oq,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mdc-menu-surface","mdc-menu-surface--open","mat-mdc-elevation-specific",3,"id","ngClass","keydown","click"],[1,"mat-mdc-menu-content","mdc-list"]],template:function(e,i){1&e&&(gr(),V(0,rq,3,6,"ng-template"))},dependencies:[Rn],styles:['.mdc-menu-surface{display:none;position:absolute;box-sizing:border-box;max-width:var(--mdc-menu-max-width, calc(100vw - 32px));max-height:var(--mdc-menu-max-height, calc(100vh - 32px));margin:0;padding:0;transform:scale(1);transform-origin:top left;opacity:0;overflow:auto;will-change:transform,opacity;z-index:8;border-radius:var(--mdc-shape-medium, 4px);transform-origin-left:top left;transform-origin-right:top right}.mdc-menu-surface:focus{outline:none}.mdc-menu-surface--animating-open{display:inline-block;transform:scale(0.8);opacity:0}.mdc-menu-surface--open{display:inline-block;transform:scale(1);opacity:1}.mdc-menu-surface--animating-closed{display:inline-block;opacity:0}[dir=rtl] .mdc-menu-surface,.mdc-menu-surface[dir=rtl]{transform-origin-left:top right;transform-origin-right:top left}.mdc-menu-surface--anchor{position:relative;overflow:visible}.mdc-menu-surface--fixed{position:fixed}.mdc-menu-surface--fullwidth{width:100%}mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-panel.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item.mdc-list-item{align-items:center}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item .mdc-list-item__primary-text{white-space:normal}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[Fg.transformMenu,Fg.fadeInItems]},changeDetection:0}),n})();const II=new He("mat-menu-scroll-strategy"),uq={provide:II,deps:[ro],useFactory:function dq(n){return()=>n.scrollStrategies.reposition()}},PI=el({passive:!0});let hq=(()=>{class n{constructor(e,i,o,s,a,l,d,w,P){this._overlay=e,this._element=i,this._viewContainerRef=o,this._menuItemInstance=l,this._dir=d,this._focusMonitor=w,this._ngZone=P,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=T.EMPTY,this._hoverSubscription=T.EMPTY,this._menuCloseSubscription=T.EMPTY,this._handleTouchStart=Y=>{g1(Y)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new ht,this.onMenuOpen=this.menuOpened,this.menuClosed=new ht,this.onMenuClose=this.menuClosed,this._scrollStrategy=s,this._parentMaterialMenu=a instanceof tp?a:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,PI)}get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,PI),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),o=i.getConfig(),s=o.positionStrategy;this._setPosition(e,s),o.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof tp&&(e._startAnimation(),e._directDescendantItems.changes.pipe(Cn(e.close)).subscribe(()=>{s.withLockedPosition(!1).reapplyLastPosition(),s.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof tp?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(Si(o=>"void"===o.toState),ti(1),Cn(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,o=e.parentMenu;for(;o;)i++,o=o.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e)}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new Pf({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{const s="start"===o.connectionPair.overlayX?"after":"before",a="top"===o.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(s,a)):e.setPositionClasses(s,a)})}_setPosition(e,i){let[o,s]="before"===e.xPosition?["end","start"]:["start","end"],[a,l]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[d,w]=[a,l],[P,Y]=[o,s],q=0;if(this.triggersSubmenu()){if(Y=o="before"===e.xPosition?"start":"end",s=P="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const te=this._parentMaterialMenu.items.first;this._parentInnerPadding=te?te._getHostElement().offsetTop:0}q="bottom"===a?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(d="top"===a?"bottom":"top",w="top"===l?"bottom":"top");i.withPositions([{originX:o,originY:d,overlayX:P,overlayY:a,offsetY:q},{originX:s,originY:d,overlayX:Y,overlayY:a,offsetY:q},{originX:o,originY:w,overlayX:P,overlayY:l,offsetY:-q},{originX:s,originY:w,overlayX:Y,overlayY:l,offsetY:-q}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return vt(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:Ge(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(Si(a=>a!==this._menuItemInstance),Si(()=>this._menuOpen)):Ge(),i)}_handleMousedown(e){_1(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(Si(e=>e===this._menuItemInstance&&!e.disabled),Di(0,X0)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof tp&&this.menu._isAnimating?this.menu._animationDone.pipe(ti(1),Di(0,X0),Cn(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new ec(e.templateRef,this._viewContainerRef)),this._portal}}return n.\u0275fac=function(e){return new(e||n)(F(ro),F(bt),F(Qi),F(II),F(tM,8),F(_a,10),F(Or,8),F(il),F(pt))},n.\u0275dir=Ke({type:n,hostVars:3,hostBindings:function(e,i){1&e&&ye("click",function(s){return i._handleClick(s)})("mousedown",function(s){return i._handleMousedown(s)})("keydown",function(s){return i._handleKeydown(s)}),2&e&&Ut("aria-haspopup",i.menu?"menu":null)("aria-expanded",i.menuOpen)("aria-controls",i.menuOpen?i.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:["mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:["matMenuTriggerFor","menu"],menuData:["matMenuTriggerData","menuData"],restoreFocus:["matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}}),n})(),yu=(()=>{class n extends hq{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],exportAs:["matMenuTrigger"],features:[dt]}),n})(),fq=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({providers:[uq],imports:[ia,Yf,Vn,eu,Tf,Vn]}),n})();const OI=function(){return["1"]};function pq(n,t){if(1&n&&(D(0,"a",10)(1,"mat-icon",11),E(2,"chevron_left"),x(),E(3),R(4,"translate"),x()),2&n){const e=z();M("routerLink",e.linkParts.concat(Un(6,OI)))("queryParams",e.queryParams),c(1),M("inline",!0),c(2),ce(" ",B(4,4,"paginator.first")," ")}}function mq(n,t){if(1&n&&(D(0,"a",12)(1,"mat-icon",11),E(2,"chevron_left"),x(),D(3,"span",13),E(4),R(5,"translate"),x()()),2&n){const e=z();M("routerLink",e.linkParts.concat(Un(6,OI)))("queryParams",e.queryParams),c(1),M("inline",!0),c(3),oe(B(5,4,"paginator.first"))}}const dl=function(n){return[n]};function _q(n,t){if(1&n&&(D(0,"a",10)(1,"div")(2,"mat-icon",11),E(3,"chevron_left"),x()()()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage-1).toString())))("queryParams",e.queryParams),c(2),M("inline",!0)}}function gq(n,t){if(1&n&&(D(0,"a",10),E(1),x()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage-2).toString())))("queryParams",e.queryParams),c(1),oe(e.currentPage-2)}}function bq(n,t){if(1&n&&(D(0,"a",14),E(1),x()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage-1).toString())))("queryParams",e.queryParams),c(1),oe(e.currentPage-1)}}function vq(n,t){if(1&n&&(D(0,"a",14),E(1),x()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage+1).toString())))("queryParams",e.queryParams),c(1),oe(e.currentPage+1)}}function yq(n,t){if(1&n&&(D(0,"a",10),E(1),x()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage+2).toString())))("queryParams",e.queryParams),c(1),oe(e.currentPage+2)}}function Mq(n,t){if(1&n&&(D(0,"a",10)(1,"div")(2,"mat-icon",11),E(3,"chevron_right"),x()()()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(3,dl,(e.currentPage+1).toString())))("queryParams",e.queryParams),c(2),M("inline",!0)}}function wq(n,t){if(1&n&&(D(0,"a",10),E(1),R(2,"translate"),D(3,"mat-icon",11),E(4,"chevron_right"),x()()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(6,dl,e.numberOfPages.toString())))("queryParams",e.queryParams),c(1),ce(" ",B(2,4,"paginator.last")," "),c(2),M("inline",!0)}}function xq(n,t){if(1&n&&(D(0,"a",12)(1,"mat-icon",11),E(2,"chevron_right"),x(),D(3,"span",13),E(4),R(5,"translate"),x()()),2&n){const e=z();M("routerLink",e.linkParts.concat(Be(6,dl,e.numberOfPages.toString())))("queryParams",e.queryParams),c(1),M("inline",!0),c(3),oe(B(5,4,"paginator.last"))}}const AI=function(n){return{number:n}};function Cq(n,t){if(1&n&&(D(0,"div",15),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),oe(Ct(2,1,"paginator.total",Be(4,AI,e.numberOfPages)))}}function kq(n,t){if(1&n&&(D(0,"div",16),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),oe(Ct(2,1,"paginator.total",Be(4,AI,e.numberOfPages)))}}class Fs{constructor(t,e){this.dialog=t,this.router=e,this.linkParts=[""],this.queryParams={}}openSelectionDialog(){const t=[];for(let e=1;e<=this.numberOfPages;e++)t.push({label:e.toString()});Hi.openDialog(this.dialog,t,"paginator.select-page-title").afterClosed().subscribe(e=>{e&&this.router.navigate(this.linkParts.concat([e.toString()]),{queryParams:this.queryParams})})}}function np(n){return t=>t.lift(new Sq(n,t))}Fs.\u0275fac=function(t){return new(t||Fs)(F(Ln),F(Qt))},Fs.\u0275cmp=qe({type:Fs,selectors:[["app-paginator"]],inputs:{currentPage:"currentPage",numberOfPages:"numberOfPages",linkParts:"linkParts",queryParams:"queryParams"},decls:21,vars:13,consts:[[1,"main-container"],[1,"d-inline-block","small-rounded-elevated-box","mt-3"],[1,"d-flex"],[1,"responsive-height","d-md-none"],["class","d-none d-md-flex",3,"routerLink","queryParams",4,"ngIf"],["class","d-flex d-md-none flex-column",3,"routerLink","queryParams",4,"ngIf"],[3,"routerLink","queryParams",4,"ngIf"],[1,"selected",3,"click"],["class","d-none d-md-block total-pages",4,"ngIf"],["class","d-block d-md-none total-pages",4,"ngIf"],[1,"d-none","d-md-flex",3,"routerLink","queryParams"],[3,"inline"],[1,"d-flex","d-md-none","flex-column",3,"routerLink","queryParams"],[1,"label"],[3,"routerLink","queryParams"],[1,"d-none","d-md-block","total-pages"],[1,"d-block","d-md-none","total-pages"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3),E(4,"\xa0"),xe(5,"br"),E(6,"\xa0"),x(),V(7,pq,5,7,"a",4),V(8,mq,6,7,"a",5),V(9,_q,4,5,"a",4),V(10,gq,2,5,"a",4),V(11,bq,2,5,"a",6),D(12,"a",7),ye("click",function(){return e.openSelectionDialog()}),E(13),x(),V(14,vq,2,5,"a",6),V(15,yq,2,5,"a",4),V(16,Mq,4,5,"a",4),V(17,wq,5,8,"a",4),V(18,xq,6,8,"a",5),x()(),V(19,Cq,3,6,"div",8),V(20,kq,3,6,"div",9),x()),2&t&&(c(7),M("ngIf",e.currentPage>3),c(1),M("ngIf",e.currentPage>2),c(1),M("ngIf",e.currentPage>1),c(1),M("ngIf",e.currentPage>2),c(1),M("ngIf",e.currentPage>1),c(2),oe(e.currentPage),c(1),M("ngIf",e.currentPage3),c(1),M("ngIf",e.numberOfPages>2))},dependencies:[It,Ja,yn,xt],styles:[".main-container[_ngcontent-%COMP%]{text-align:right}.main-container[_ngcontent-%COMP%] .responsive-height[_ngcontent-%COMP%]{padding:10px 0;width:0px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:10px;border-right:rgba(255,255,255,.15) solid 1px;border-left:rgba(255,255,255,.15) solid 1px;min-width:40px;text-align:center;color:#f8f9f980;text-decoration:none;display:flex;align-items:center;justify-content:center}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.2)}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.7rem}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{color:#f8f9f9;background:rgba(0,0,0,.36);padding:10px 20px;cursor:pointer}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.6)}.main-container[_ngcontent-%COMP%] .total-pages[_ngcontent-%COMP%]{font-size:.6rem;margin-top:-3px;margin-right:4px}"]});class Sq{constructor(t,e){this.notifier=t,this.source=e}call(t,e){return e.subscribe(new Dq(t,this.notifier,this.source))}}class Dq extends Me{constructor(t,e,i){super(t),this.notifier=e,this.source=i}error(t){if(!this.isStopped){let e=this.errors,i=this.retries,o=this.retriesSubscription;if(i)this.errors=void 0,this.retriesSubscription=void 0;else{e=new X;try{const{notifier:s}=this;i=s(e)}catch(s){return super.error(s)}o=Ee(i,new be(this))}this._unsubscribeAndRecycle(),this.errors=e,this.retries=i,this.retriesSubscription=o,e.next(t)}}_unsubscribe(){const{errors:t,retriesSubscription:e}=this;t&&(t.unsubscribe(),this.errors=void 0),e&&(e.unsubscribe(),this.retriesSubscription=void 0),this.retries=void 0}notifyNext(){const{_unsubscribe:t}=this;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=t,this.source.subscribe(this)}}class xo{constructor(t){this.apiService=t}changeAppState(t,e,i){return this.apiService.put(`visors/${t}/apps/${encodeURIComponent(e)}`,{status:i?1:0})}changeAppAutostart(t,e,i){return this.changeAppSettings(t,e,{autostart:i})}changeAppSettings(t,e,i){return this.apiService.put(`visors/${t}/apps/${encodeURIComponent(e)}`,i)}getLogMessages(t,e,i){const s=CS(-1!==i?Date.now()-864e5*i:0,"yyyy-MM-ddTHH:mm:ssZZZZZ","en-US");return this.apiService.get(this.getLogMessagesUrl(t,e)+`?since=${s}`).pipe(Ce(a=>a.logs))}getLogMessagesUrl(t,e){return`visors/${t}/apps/${encodeURIComponent(e)}/logs`}}xo.\u0275fac=function(t){return new(t||xo)(we(wo))},xo.\u0275prov=Ye({token:xo,factory:xo.\u0275fac,providedIn:"root"});var Wn=(()=>(function(n){n.None="None",n.Favorite="Favorite",n.Blocked="Blocked"}(Wn||(Wn={})),Wn))(),ao=(()=>(function(n){n.BitsSpeedAndBytesVolume="BitsSpeedAndBytesVolume",n.OnlyBytes="OnlyBytes",n.OnlyBits="OnlyBits"}(ao||(ao={})),ao))();class Vo{constructor(t,e){this.router=t,this.storageService=e,this.maxHistoryElements=30,this.savedServersStorageKey="VpnServers",this.checkIpSettingStorageKey="VpnGetIp",this.dataUnitsSettingStorageKey="VpnDataUnits",this.serversMap=new Map,this.savedDataVersion=0,this.currentServerSubject=new Ho(1),this.historySubject=new Ho(1),this.favoritesSubject=new Ho(1),this.blockedSubject=new Ho(1)}initialize(){this.migrateDataToHvStorage(),this.serversMap=new Map;const t=this.storageService.getDataForHv(this.savedServersStorageKey);if(t){const e=JSON.parse(t);e.serverList.forEach(i=>{this.serversMap.set(i.pk,i)}),this.savedDataVersion=e.version,e.selectedServerPk&&this.updateCurrentServerPk(e.selectedServerPk)}this.launchListEvents()}migrateDataToHvStorage(){const t=localStorage.getItem(this.savedServersStorageKey);t&&(this.storageService.setDataForHv(this.savedServersStorageKey,t),localStorage.removeItem(this.savedServersStorageKey));const e=localStorage.getItem(this.checkIpSettingStorageKey);e&&(this.storageService.setDataForHv(this.checkIpSettingStorageKey,e),localStorage.removeItem(this.checkIpSettingStorageKey));const i=localStorage.getItem(this.dataUnitsSettingStorageKey);i&&(this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,i),localStorage.removeItem(this.dataUnitsSettingStorageKey))}get currentServer(){return this.serversMap.get(this.currentServerPk)}get currentServerObservable(){return this.currentServerSubject.asObservable()}get history(){return this.historySubject.asObservable()}get favorites(){return this.favoritesSubject.asObservable()}get blocked(){return this.blockedSubject.asObservable()}getSavedVersion(t,e){return e&&this.checkIfDataWasChanged(),this.serversMap.get(t)}getCheckIpSetting(){const t=this.storageService.getDataForHv(this.checkIpSettingStorageKey);return null==t||"false"!==t}setCheckIpSetting(t){this.storageService.setDataForHv(this.checkIpSettingStorageKey,t?"true":"false")}getDataUnitsSetting(){return this.storageService.getDataForHv(this.dataUnitsSettingStorageKey)??ao.BitsSpeedAndBytesVolume}setDataUnitsSetting(t){this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,t)}updateFromDiscovery(t){this.checkIfDataWasChanged(),t.forEach(e=>{if(this.serversMap.has(e.pk)){const i=this.serversMap.get(e.pk);i.countryCode=e.countryCode,i.name=e.name,i.location=e.location,i.note=e.note}}),this.saveData()}updateServer(t){this.serversMap.set(t.pk,t),this.cleanServers(),this.saveData()}processFromDiscovery(t){this.checkIfDataWasChanged();const e=this.serversMap.get(t.pk);return e?(e.countryCode=t.countryCode,e.name=t.name,e.location=t.location,e.note=t.note,this.saveData(),e):{countryCode:t.countryCode,name:t.name,customName:null,pk:t.pk,lastUsed:0,inHistory:!1,flag:Wn.None,location:t.location,personalNote:null,note:t.note,enteredManually:!1,usedWithPassword:!1}}processFromManual(t){this.checkIfDataWasChanged();const e=this.serversMap.get(t.pk);return e?(e.customName=t.name,e.personalNote=t.note,e.enteredManually=!0,this.saveData(),e):{countryCode:"zz",name:"",customName:t.name,pk:t.pk,lastUsed:0,inHistory:!1,flag:Wn.None,location:"",personalNote:t.note,note:"",enteredManually:!0,usedWithPassword:!1}}changeFlag(t,e){this.checkIfDataWasChanged();const i=this.serversMap.get(t.pk);i&&(t=i),t.flag!==e&&(t.flag=e,this.serversMap.has(t.pk)||this.serversMap.set(t.pk,t),this.cleanServers(),this.saveData())}removeFromHistory(t){this.checkIfDataWasChanged();const e=this.serversMap.get(t);!e||!e.inHistory||(e.inHistory=!1,this.cleanServers(),this.saveData())}modifyCurrentServer(t){this.checkIfDataWasChanged(),t.pk!==this.currentServerPk&&(this.serversMap.has(t.pk)||this.serversMap.set(t.pk,t),this.updateCurrentServerPk(t.pk),this.cleanServers(),this.saveData())}compareCurrentServer(t){if(this.checkIfDataWasChanged(),t){if(!this.currentServerPk||this.currentServerPk!==t){if(this.currentServerPk=t,!this.serversMap.get(t)){const i=this.processFromManual({pk:t});this.serversMap.set(i.pk,i),this.cleanServers()}this.saveData(),this.currentServerSubject.next(this.currentServer)}}else this.currentServerPk&&(this.currentServerPk=null,this.saveData(),this.currentServerSubject.next(this.currentServer))}updateHistory(){this.checkIfDataWasChanged(),this.currentServer.lastUsed=Date.now(),this.currentServer.inHistory=!0;let t=[];this.serversMap.forEach(i=>{i.inHistory&&t.push(i)}),t=t.sort((i,o)=>o.lastUsed-i.lastUsed);let e=0;t.forEach(i=>{e{!e.inHistory&&e.flag===Wn.None&&e.pk!==this.currentServerPk&&!e.customName&&!e.personalNote&&t.push(e.pk)}),t.forEach(e=>{this.serversMap.delete(e)})}saveData(){let t=0;const e=this.storageService.getDataForHv(this.savedServersStorageKey);if(e&&(t=JSON.parse(e).version),t!==this.savedDataVersion)return void this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"storage"}});this.savedDataVersion+=1;const i={version:this.savedDataVersion,serverList:Array.from(this.serversMap.values()),selectedServerPk:this.currentServerPk},o=JSON.stringify(i);this.storageService.setDataForHv(this.savedServersStorageKey,o),this.launchListEvents()}checkIfDataWasChanged(){let t=0;const e=this.storageService.getDataForHv(this.savedServersStorageKey);e&&(t=JSON.parse(e).version),t!==this.savedDataVersion&&this.initialize()}launchListEvents(){const t=[],e=[],i=[];this.serversMap.forEach(o=>{o.inHistory&&t.push(o),o.flag===Wn.Favorite&&e.push(o),o.flag===Wn.Blocked&&i.push(o)}),this.historySubject.next(t),this.favoritesSubject.next(e),this.blockedSubject.next(i)}updateCurrentServerPk(t){this.currentServerPk=t,this.currentServerSubject.next(this.currentServer)}}Vo.\u0275fac=function(t){return new(t||Vo)(we(Qt),we(ni))},Vo.\u0275prov=Ye({token:Vo,factory:Vo.\u0275fac,providedIn:"root"});var Mn=(()=>(function(n){n.Stopped="stopped",n.Connecting="Connecting",n.Running="Running",n.ShuttingDown="Shutting down",n.Reconnecting="Connection failed, reconnecting"}(Mn||(Mn={})),Mn))();class Tq{constructor(){this.updateDate=Date.now()}}class Lq{}class Eq{constructor(){this.latency=0,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.connectionDuration=0,this.error=""}}var ir=(()=>(function(n){n[n.PerformingInitialCheck=1]="PerformingInitialCheck",n[n.Off=10]="Off",n[n.Starting=20]="Starting",n[n.Running=100]="Running",n[n.Disconnecting=200]="Disconnecting"}(ir||(ir={})),ir))(),Co=(()=>(function(n){n[n.Busy=1]="Busy",n[n.Ok=2]="Ok",n[n.MustStop=3]="MustStop",n[n.SamePkRunning=4]="SamePkRunning",n[n.SamePkStopped=5]="SamePkStopped"}(Co||(Co={})),Co))();class jo{constructor(t,e,i,o,s,a,l){this.apiService=t,this.appsService=e,this.router=i,this.vpnSavedDataService=o,this.http=s,this.snackbarService=a,this.translateService=l,this.vpnClientAppName="vpn-client",this.standardWaitTime=2e3,this.stateSubject=new Ir(null),this.errorSubject=new Ir(!1),this.working=!0,this.requestedServer=null,this.requestedPassword=null,this.updatesStopped=!1,this.currentEventData=new Tq,this.currentEventData.busy=!0,this.lastServiceState=ir.PerformingInitialCheck}initialize(t){t&&(this.nodeKey?t!==this.nodeKey?this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"pkChange"}}):this.updatesStopped&&(this.updatesStopped=!1,this.updateData()):(this.nodeKey=t,this.vpnSavedDataService.initialize(),this.updateData()))}get backendState(){return this.stateSubject.asObservable()}get errorsConnecting(){return this.errorSubject.asObservable()}updateData(){this.continuallyUpdateData(0)}start(){return!this.working&&this.lastServiceState<20&&(this.changeAppState(!0),!0)}stop(){return!this.working&&this.lastServiceState>=20&&this.lastServiceState<200&&(this.changeAppState(!1),!0)}getIpData(){return this.http.request("GET",window.location.protocol+"//ip.skycoin.com/").pipe(np(t=>ql(t.pipe(Di(this.standardWaitTime),ti(4)),Pr(""))),Ce(t=>{let e="";e=t&&t.ip_address?t.ip_address:this.translateService.instant("common.unknown");let i="";return i=t&&t.country_name?t.country_name:this.translateService.instant("common.unknown"),[e,i]}))}changeServerUsingHistory(t,e){return this.requestedServer=t,this.requestedPassword=e,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerUsingDiscovery(t,e){return this.requestedServer=this.vpnSavedDataService.processFromDiscovery(t),this.requestedPassword=e,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerManually(t,e){return this.requestedServer=this.vpnSavedDataService.processFromManual(t),this.requestedPassword=e,this.updateRequestedServerPasswordSetting(),this.changeServer()}updateRequestedServerPasswordSetting(){this.requestedServer.usedWithPassword=!!this.requestedPassword&&""!==this.requestedPassword;const t=this.vpnSavedDataService.getSavedVersion(this.requestedServer.pk,!0);t&&(t.usedWithPassword=this.requestedServer.usedWithPassword,this.vpnSavedDataService.updateServer(t))}changeServer(){return!this.working&&(this.stop()||this.processServerChange(),!0)}checkNewPk(t){return this.working?Co.Busy:this.lastServiceState!==ir.Off?t===this.vpnSavedDataService.currentServer.pk?Co.SamePkRunning:Co.MustStop:this.vpnSavedDataService.currentServer&&t===this.vpnSavedDataService.currentServer.pk?Co.SamePkStopped:Co.Ok}processServerChange(){this.dataSubscription&&this.dataSubscription.unsubscribe();const t={pk:this.requestedServer.pk};t.passcode=this.requestedPassword?this.requestedPassword:"",this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,t).subscribe(()=>{this.vpnSavedDataService.modifyCurrentServer(this.requestedServer),this.requestedServer=null,this.requestedPassword=null,this.working=!1,this.start()},e=>{e=Kt(e),this.snackbarService.showError("vpn.server-change.backend-error",null,!1,e.originalServerErrorMsg),this.working=!1,this.requestedServer=null,this.requestedPassword=null,this.sendUpdate(),this.updateData()})}changeAppState(t){if(this.working)return;this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate();const e={status:1};t?(this.lastServiceState=ir.Starting,this.connectionHistoryPk=null):(this.lastServiceState=ir.Disconnecting,e.status=0),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,e).pipe(no(i=>this.getVpnClientState().pipe(Ne(o=>{if(o){if(t&&o.running)return Ge(!0);if(!t&&!o.running)return Ge(!0)}return Pr(i)}))),np(i=>ql(i.pipe(Di(this.standardWaitTime),ti(3)),i.pipe(Ne(o=>Pr(o)))))).subscribe(i=>{this.working=!1;const o=this.processAppData(i);this.lastServiceState=o.running?ir.Running:ir.Off,this.currentEventData.vpnClientAppData=o,this.currentEventData.updateDate=Date.now(),this.sendUpdate(),this.updateData(),!t&&this.requestedServer&&this.processServerChange()},i=>{i=Kt(i),this.snackbarService.showError(this.lastServiceState===ir.Starting?"vpn.status-page.problem-starting-error":this.lastServiceState===ir.Disconnecting?"vpn.status-page.problem-stopping-error":"vpn.status-page.generic-problem-error",null,!1,i.originalServerErrorMsg),this.working=!1,this.sendUpdate(),this.updateData()})}continuallyUpdateData(t){if(this.working&&this.lastServiceState!==ir.PerformingInitialCheck)return;this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe();let e=0;this.continuousUpdateSubscription=Ge(0).pipe(Di(t),Ne(()=>this.getVpnClientState()),np(i=>i.pipe(Ne(o=>(this.errorSubject.next(!0),(o=Kt(o)).originalError&&o.originalError.status&&401===o.originalError.status?Pr(o):this.lastServiceState!==ir.PerformingInitialCheck||e<4?(e+=1,Ge(o).pipe(Di(this.standardWaitTime))):Pr(o)))))).subscribe(i=>{i?(this.errorSubject.next(!1),this.lastServiceState===ir.PerformingInitialCheck&&(this.working=!1),this.vpnSavedDataService.compareCurrentServer(i.serverPk),this.lastServiceState=i.running?ir.Running:ir.Off,this.currentEventData.vpnClientAppData=i,this.currentEventData.updateDate=Date.now(),this.sendUpdate()):this.lastServiceState===ir.PerformingInitialCheck&&(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null,this.updatesStopped=!0),this.continuallyUpdateData(this.standardWaitTime)},i=>{(i=Kt(i)).originalError&&i.originalError.status&&401===i.originalError.status||(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null),this.updatesStopped=!0})}stopContinuallyUpdatingData(){this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe()}getVpnClientState(){let t;const e=new rc;return e.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/summary`,e).pipe(Ne(i=>{let o;if(i&&i.overview&&i.overview.apps&&i.overview.apps.length>0&&i.overview.apps.forEach(s=>{s.name===this.vpnClientAppName&&(o=s)}),o&&(t=this.processAppData(o)),t.minHops=i.min_hops?i.min_hops:0,t&&t.running){const s=new rc;return s.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/apps/${this.vpnClientAppName}/connections`,s)}return Ge(null)}),Ce(i=>{if(i&&i.length>0){const o=new Eq;i.forEach(s=>{o.latency+=s.latency/i.length,o.uploadSpeed+=s.upload_speed/i.length,o.downloadSpeed+=s.download_speed/i.length,o.totalUploaded+=s.bandwidth_sent,o.totalDownloaded+=s.bandwidth_received,s.error&&(o.error=s.error),s.connection_duration>o.connectionDuration&&(o.connectionDuration=s.connection_duration)}),(!this.connectionHistoryPk||this.connectionHistoryPk!==t.serverPk)&&(this.connectionHistoryPk=t.serverPk,this.uploadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.downloadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0]),o.latency=Math.round(o.latency),o.uploadSpeed=Math.round(o.uploadSpeed),o.downloadSpeed=Math.round(o.downloadSpeed),o.totalUploaded=Math.round(o.totalUploaded),o.totalDownloaded=Math.round(o.totalDownloaded),this.uploadSpeedHistory.splice(0,1),this.uploadSpeedHistory.push(o.uploadSpeed),o.uploadSpeedHistory=this.uploadSpeedHistory,this.downloadSpeedHistory.splice(0,1),this.downloadSpeedHistory.push(o.downloadSpeed),o.downloadSpeedHistory=this.downloadSpeedHistory,this.latencyHistory.splice(0,1),this.latencyHistory.push(o.latency),o.latencyHistory=this.latencyHistory,t.connectionData=o}return t}))}processAppData(t){const e=new Lq;if(e.running=0!==t.status&&2!==t.status,e.connectionDuration=t.connection_duration,e.appState=Mn.Stopped,e.running?t.detailed_status===Mn.Connecting||3===t.status?e.appState=Mn.Connecting:t.detailed_status===Mn.Running?e.appState=Mn.Running:t.detailed_status===Mn.ShuttingDown?e.appState=Mn.ShuttingDown:t.detailed_status===Mn.Reconnecting&&(e.appState=Mn.Reconnecting):2===t.status&&(e.lastErrorMsg=t.detailed_status,e.lastErrorMsg||(e.lastErrorMsg=this.translateService.instant("vpn.status-page.unknown-error"))),e.killswitch=!1,t.args&&t.args.length>0)for(let i=0;ithis.firstInput.nativeElement.focus())}process(){let t=this.vpnSavedDataService.getSavedVersion(this.data.server.pk,!0);t=t||this.data.server;const e=this.form.get("value").value;e!==(this.data.editName?this.data.server.customName:this.data.server.personalNote)?(this.data.editName?t.customName=e:t.personalNote=e,this.vpnSavedDataService.updateServer(t),this.snackbarService.showDone("vpn.server-options.edit-value.changes-made-confirmation"),this.dialogRef.close(!0)):this.dialogRef.close()}}hc.\u0275fac=function(t){return new(t||hc)(F(Nn),F(Ti),F(Cr),F(on),F(Vo))},hc.\u0275cmp=qe({type:hc,selectors:[["app-edit-vpn-server-value"]],viewQuery:function(t,e){if(1&t&&ft(Iq,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","value","maxlength","100","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x()()(),D(10,"app-button",6),ye("action",function(){return e.process()}),E(11),R(12,"translate"),x()()),2&t&&(M("headline",B(1,5,"vpn.server-options.edit-value."+(e.data.editName?"name":"note")+"-title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,7,"vpn.server-options.edit-value."+(e.data.editName?"name":"note")+"-label")),c(5),ce(" ",B(12,9,"vpn.server-options.edit-value.apply-button")," "))},dependencies:[Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ri,En,xt]});const Pq=["firstInput"];class ul{constructor(t,e,i){this.dialogRef=t,this.data=e,this.formBuilder=i}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.mediumModalWidth,t.open(ul,i)}ngOnInit(){this.form=this.formBuilder.group({password:["",this.data?void 0:Vt.required]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){this.dialogRef.close("-"+this.form.get("password").value)}}ul.\u0275fac=function(t){return new(t||ul)(F(Nn),F(Ti),F(Cr))},ul.\u0275cmp=qe({type:ul,selectors:[["app-enter-vpn-server-password"]],viewQuery:function(t,e){if(1&t&&ft(Pq,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:12,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","password","type","password","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x()()(),D(10,"app-button",6),ye("action",function(){return e.process()}),E(11),R(12,"translate"),x()()),2&t&&(M("headline",B(1,6,"vpn.server-list.password-dialog.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,8,"vpn.server-list.password-dialog.password"+(e.data?"-if-any":"")+"-label")),c(4),M("disabled",!e.form.valid),c(1),ce(" ",B(12,10,"vpn.server-list.password-dialog.continue-button")," "))},dependencies:[Bi,Ri,Ni,Yi,ii,Li,nr,kr,ri,En,xt]});class fn{static changeCurrentPk(t){this.currentPk=t}static setDefaultTabForServerList(t){sessionStorage.setItem(fn.serverListTabStorageKey,t)}static get vpnTabsData(){const t=sessionStorage.getItem(fn.serverListTabStorageKey);return[{icon:"power_settings_new",label:"vpn.start",linkParts:["/vpn",this.currentPk,"status"]},{icon:"list",label:"vpn.servers",linkParts:t?["/vpn",this.currentPk,"servers",t,"1"]:["/vpn",this.currentPk,"servers"]},{icon:"settings",label:"vpn.settings",linkParts:["/vpn",this.currentPk,"settings"]}]}static getLatencyValueString(t){return t<1e3?"time-in-ms":"time-in-segs"}static getPrintableLatency(t){return t<1e3?t+"":(t/1e3).toFixed(1)}static processServerChange(t,e,i,o,s,a,l,d,w,P,Y){let q;if(d&&(w||P)||w&&(d||P)||P&&(d||w))throw new Error("Invalid call");if(d)q=d.pk;else if(w)q=w.pk;else{if(!P)throw new Error("Invalid call");q=P.pk}const te=i.getSavedVersion(q,!0),pe=te&&(Y||te.usedWithPassword),ke=e.checkNewPk(q);if(ke!==Co.Busy)if(ke!==Co.SamePkRunning||pe)if(ke===Co.MustStop||ke===Co.SamePkRunning&&pe){const Ie=Wt.createConfirmationDialog(s,"vpn.server-change.change-server-while-connected-confirmation");Ie.componentInstance.operationAccepted.subscribe(()=>{Ie.componentInstance.closeModal(),d?e.changeServerUsingHistory(d,Y):w?e.changeServerUsingDiscovery(w,Y):P&&e.changeServerManually(P,Y),fn.redirectAfterServerChange(t,a,l)})}else if(ke!==Co.SamePkStopped||pe)d?e.changeServerUsingHistory(d,Y):w?e.changeServerUsingDiscovery(w,Y):P&&e.changeServerManually(P,Y),fn.redirectAfterServerChange(t,a,l);else{const Ie=Wt.createConfirmationDialog(s,"vpn.server-change.start-same-server-confirmation");Ie.componentInstance.operationAccepted.subscribe(()=>{Ie.componentInstance.closeModal(),P&&te&&i.processFromManual(P),e.start(),fn.redirectAfterServerChange(t,a,l)})}else o.showWarning("vpn.server-change.already-selected-warning");else o.showError("vpn.server-change.busy-error")}static redirectAfterServerChange(t,e,i){e&&e.close(),t.navigate(["vpn",i,"status"])}static openServerOptions(t,e,i,o,s,a){const l=[],d=[];return t.usedWithPassword?(l.push({icon:"lock_open",label:"vpn.server-options.connect-without-password"}),d.push(201),l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-another-password"}),d.push(202)):t.enteredManually&&(l.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-password"}),d.push(202)),l.push({icon:"edit",label:"vpn.server-options.edit-name"}),d.push(101),l.push({icon:"subject",label:"vpn.server-options.edit-label"}),d.push(102),(!t||t.flag!==Wn.Favorite)&&(l.push({icon:"star",label:"vpn.server-options.make-favorite"}),d.push(1)),t&&t.flag===Wn.Favorite&&(l.push({icon:"star_outline",label:"vpn.server-options.remove-from-favorites"}),d.push(-1)),(!t||t.flag!==Wn.Blocked)&&(l.push({icon:"pan_tool",label:"vpn.server-options.block"}),d.push(2)),t&&t.flag===Wn.Blocked&&(l.push({icon:"thumb_up",label:"vpn.server-options.unblock"}),d.push(-2)),t&&t.inHistory&&(l.push({icon:"delete",label:"vpn.server-options.remove-from-history"}),d.push(-3)),Hi.openDialog(a,l,"common.options").afterClosed().pipe(Ne(w=>{if(w){const P=i.getSavedVersion(t.pk,!0);if(t=P||t,d[w-=1]>200){if(201===d[w]){let Y=!1;const q=Wt.createConfirmationDialog(a,"vpn.server-options.connect-without-password-confirmation");return q.componentInstance.operationAccepted.subscribe(()=>{Y=!0,fn.processServerChange(e,o,i,s,a,null,fn.currentPk,t,null,null,null),q.componentInstance.closeModal()}),q.afterClosed().pipe(Ce(()=>Y))}return ul.openDialog(a,!1).afterClosed().pipe(Ce(Y=>!(!Y||"-"===Y||(fn.processServerChange(e,o,i,s,a,null,fn.currentPk,t,null,null,Y.substr(1)),0))))}if(d[w]>100)return hc.openDialog(a,{editName:101===d[w],server:t}).afterClosed();if(1===d[w])return fn.makeFavorite(t,i,s,a);if(-1===d[w])return i.changeFlag(t,Wn.None),s.showDone("vpn.server-options.remove-from-favorites-done"),Ge(!0);if(2===d[w])return fn.blockServer(t,i,o,s,a);if(-2===d[w])return i.changeFlag(t,Wn.None),s.showDone("vpn.server-options.unblock-done"),Ge(!0);if(-3===d[w])return fn.removeFromHistory(t,i,s,a)}return Ge(!1)}))}static removeFromHistory(t,e,i,o){let s=!1;const a=Wt.createConfirmationDialog(o,"vpn.server-options.remove-from-history-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,e.removeFromHistory(t.pk),i.showDone("vpn.server-options.remove-from-history-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(Ce(()=>s))}static makeFavorite(t,e,i,o){if(t.flag!==Wn.Blocked)return e.changeFlag(t,Wn.Favorite),i.showDone("vpn.server-options.make-favorite-done"),Ge(!0);let s=!1;const a=Wt.createConfirmationDialog(o,"vpn.server-options.make-favorite-confirmation");return a.componentInstance.operationAccepted.subscribe(()=>{s=!0,e.changeFlag(t,Wn.Favorite),i.showDone("vpn.server-options.make-favorite-done"),a.componentInstance.closeModal()}),a.afterClosed().pipe(Ce(()=>s))}static blockServer(t,e,i,o,s){if(t.flag!==Wn.Favorite&&(!e.currentServer||e.currentServer.pk!==t.pk))return e.changeFlag(t,Wn.Blocked),o.showDone("vpn.server-options.block-done"),Ge(!0);let a=!1;const l=e.currentServer&&e.currentServer.pk===t.pk;let d;d=t.flag!==Wn.Favorite?"vpn.server-options.block-selected-confirmation":l?"vpn.server-options.block-selected-favorite-confirmation":"vpn.server-options.block-confirmation";const w=Wt.createConfirmationDialog(s,d);return w.componentInstance.operationAccepted.subscribe(()=>{a=!0,e.changeFlag(t,Wn.Blocked),o.showDone("vpn.server-options.block-done"),l&&i.stop(),w.componentInstance.closeModal()}),w.afterClosed().pipe(Ce(()=>a))}}fn.serverListTabStorageKey="ServerListTab",fn.currentPk="";var ga=(()=>(function(n){n[n.Seconds=0]="Seconds",n[n.Minutes=1]="Minutes",n[n.Hours=2]="Hours",n[n.Days=3]="Days",n[n.Weeks=4]="Weeks"}(ga||(ga={})),ga))();class Oq{}class Rg{static getElapsedTime(t){const e=new Oq;e.timeRepresentation=ga.Seconds,e.totalMinutes=Math.floor(t/60).toString(),e.translationVarName="second";let i=1;t>=60&&t<3600?(e.timeRepresentation=ga.Minutes,i=60,e.translationVarName="minute"):t>=3600&&t<86400?(e.timeRepresentation=ga.Hours,i=3600,e.translationVarName="hour"):t>=86400&&t<604800?(e.timeRepresentation=ga.Days,i=86400,e.translationVarName="day"):t>=604800&&(e.timeRepresentation=ga.Weeks,i=604800,e.translationVarName="week");const o=Math.floor(t/i);return e.elapsedTime=o.toString(),(e.timeRepresentation===ga.Seconds||o>1)&&(e.translationVarName=e.translationVarName+"s"),e}}function Aq(n,t){1&n&&xe(0,"mat-spinner",6),2&n&&M("diameter",14)}function Fq(n,t){1&n&&xe(0,"mat-spinner",7),2&n&&M("diameter",18)}function Rq(n,t){1&n&&(D(0,"mat-icon",10),E(1,"refresh"),x()),2&n&&M("inline",!0)}function Nq(n,t){1&n&&(D(0,"mat-icon",11),E(1,"warning"),x()),2&n&&M("inline",!0)}function Yq(n,t){if(1&n&&(Ue(0),V(1,Rq,2,1,"mat-icon",8),V(2,Nq,2,1,"mat-icon",9),We()),2&n){const e=z();c(1),M("ngIf",!e.showAlert),c(1),M("ngIf",e.showAlert)}}const FI=function(n){return{time:n}};function Bq(n,t){if(1&n&&(D(0,"span",12),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),oe(Ct(2,1,"refresh-button."+e.elapsedTime.translationVarName,Be(4,FI,e.elapsedTime.elapsedTime)))}}const Hq=function(n){return{"grey-button-background":n}};class ip{constructor(){this.refeshRate=-1}set secondsSinceLastUpdate(t){this.elapsedTime=Rg.getElapsedTime(t)}}ip.\u0275fac=function(t){return new(t||ip)},ip.\u0275cmp=qe({type:ip,selectors:[["app-refresh-button"]],inputs:{secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate"},decls:7,vars:14,consts:[["mat-button","",1,"time-button","subtle-transparent-button","white-theme",3,"disabled","ngClass","matTooltip"],[1,"internal-container"],["class","icon d-none d-md-inline-block",3,"diameter",4,"ngIf"],["class","icon d-md-none",3,"diameter",4,"ngIf"],[4,"ngIf"],["class","d-none d-md-inline",4,"ngIf"],[1,"icon","d-none","d-md-inline-block",3,"diameter"],[1,"icon","d-md-none",3,"diameter"],["class","icon",3,"inline",4,"ngIf"],["class","icon alert",3,"inline",4,"ngIf"],[1,"icon",3,"inline"],[1,"icon","alert",3,"inline"],[1,"d-none","d-md-inline"]],template:function(t,e){1&t&&(D(0,"button",0),R(1,"translate"),D(2,"div",1),V(3,Aq,1,1,"mat-spinner",2),V(4,Fq,1,1,"mat-spinner",3),V(5,Yq,3,2,"ng-container",4),V(6,Bq,3,6,"span",5),x()()),2&t&&(M("disabled",e.showLoading)("ngClass",Be(10,Hq,!e.showLoading))("matTooltip",e.showAlert?Ct(1,7,"refresh-button.error-tooltip",Be(12,FI,e.refeshRate)):""),c(3),M("ngIf",e.showLoading),c(1),M("ngIf",e.showLoading),c(1),M("ngIf",!e.showLoading),c(1),M("ngIf",e.elapsedTime))},dependencies:[Rn,It,$r,yn,vi,oc,xt],styles:[".time-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;height:40px}.time-button[disabled][_ngcontent-%COMP%]{opacity:.7!important;color:#f8f9f9}.time-button[disabled][_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.7}.time-button[_ngcontent-%COMP%] .internal-container[_ngcontent-%COMP%]{display:flex;align-items:center}.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:16px;margin-right:5px;opacity:.5;display:inline-block}@media (max-width: 767px){.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:22px;margin-right:0;opacity:.75}}.time-button[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%]{color:orange;opacity:1}.time-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.6rem}"]});class rr{transform(t,e){let o,i=!0;e?e.showPerSecond?e.useBits?(o=rr.measurementsPerSecInBits,i=!1):o=rr.measurementsPerSec:e.useBits?(o=rr.accumulatedMeasurementsInBits,i=!1):o=rr.accumulatedMeasurements:o=rr.accumulatedMeasurements;let s=new J1.BigNumber(t);i||(s=s.multipliedBy(8));let a=o[0],l=0;for(;s.dividedBy(1024).isGreaterThan(1);)s=s.dividedBy(1024),l+=1,a=o[l];let d="";return(!e||!!e.showValue)&&(d=e&&e.limitDecimals?new J1.BigNumber(s).decimalPlaces(1).toString():s.toFixed(2)),(!e||!!e.showValue&&!!e.showUnit)&&(d+=" "),(!e||!!e.showUnit)&&(d+=a),d}}function Vq(n,t){if(1&n){const e=et();D(0,"button",23),ye("click",function(){return Pe(e),Oe(z().requestAction(null))}),D(1,"mat-icon"),E(2,"chevron_left"),x()()}}function jq(n,t){1&n&&(Ue(0),xe(1,"img",24),We())}function zq(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z();c(1),ce(" ",B(2,1,e.titleParts[e.titleParts.length-1])," ")}}rr.accumulatedMeasurements=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],rr.measurementsPerSec=["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"],rr.accumulatedMeasurementsInBits=["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"],rr.measurementsPerSecInBits=["b/s","Kb/s","Mb/s","Gb/s","Tb/s","Pb/s","Eb/s","Zb/s","Yb/s"],rr.\u0275fac=function(t){return new(t||rr)},rr.\u0275pipe=Jn({name:"autoScale",type:rr,pure:!0});const Uq=function(n){return{transparent:n}};function Wq(n,t){if(1&n){const e=et();Ue(0),D(1,"div",26),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).requestAction(s.actionName))}),D(2,"mat-icon",27),E(3),x(),E(4),R(5,"translate"),x(),We()}if(2&n){const e=t.$implicit;c(1),M("disabled",e.disabled),c(1),M("ngClass",Be(6,Uq,e.disabled)),c(1),oe(e.icon),c(1),ce(" ",B(5,4,e.name)," ")}}function $q(n,t){1&n&&xe(0,"div",28)}function Gq(n,t){if(1&n&&(Ue(0),V(1,Wq,6,8,"ng-container",25),V(2,$q,1,0,"div",9),We()),2&n){const e=z();c(1),M("ngForOf",e.optionsData),c(1),M("ngIf",e.returnText)}}function qq(n,t){1&n&&xe(0,"div",28)}function Kq(n,t){1&n&&xe(0,"img",31),2&n&&M("src","assets/img/lang/"+z(2).language.iconName,Oo)}function Zq(n,t){if(1&n){const e=et();D(0,"div",29),ye("click",function(){return Pe(e),Oe(z().openLanguageWindow())}),V(1,Kq,1,1,"img",30),E(2),R(3,"translate"),x()}if(2&n){const e=z();c(1),M("ngIf",e.language),c(1),ce(" ",B(3,2,e.language?e.language.name:"")," ")}}function Xq(n,t){if(1&n){const e=et();D(0,"div",32)(1,"a",33),ye("click",function(){return Pe(e),Oe(z().requestAction(null))}),R(2,"translate"),D(3,"mat-icon",34),E(4,"chevron_left"),x()()()}if(2&n){const e=z();c(1),M("matTooltip",B(2,2,e.returnText)),c(2),M("inline",!0)}}function Qq(n,t){if(1&n&&(D(0,"span",35),E(1),R(2,"translate"),x()),2&n){const e=z();c(1),ce(" ",B(2,1,e.titleParts[e.titleParts.length-1])," ")}}function Jq(n,t){1&n&&xe(0,"img",36)}const eK=function(n,t){return{"d-lg-none":n,"d-none d-md-inline-block":t}},RI=function(n,t){return{"mouse-disabled":n,"grey-button-background":t}};function tK(n,t){if(1&n&&(D(0,"div",27)(1,"a",37)(2,"mat-icon",34),E(3),x(),D(4,"span"),E(5),R(6,"translate"),x()()()),2&n){const e=t.$implicit,i=t.index,o=z();M("ngClass",cn(9,eK,e.onlyIfLessThanLg,1!==o.tabsData.length)),c(1),M("disabled",i===o.selectedTabIndex)("routerLink",e.linkParts)("ngClass",cn(12,RI,o.disableMouse,!o.disableMouse&&i!==o.selectedTabIndex)),c(1),M("inline",!0),c(1),oe(e.icon),c(2),oe(B(6,7,e.label))}}const nK=function(n){return{"d-none":n}};function iK(n,t){if(1&n){const e=et();D(0,"div",38)(1,"button",39),ye("click",function(){return Pe(e),Oe(z().openTabSelector())}),D(2,"div",40)(3,"mat-icon",34),E(4),x(),D(5,"span"),E(6),R(7,"translate"),x(),D(8,"mat-icon",34),E(9,"keyboard_arrow_down"),x()()()()}if(2&n){const e=z();M("ngClass",Be(8,nK,1===e.tabsData.length)),c(1),M("ngClass",cn(10,RI,e.disableMouse,!e.disableMouse)),c(2),M("inline",!0),c(1),oe(e.tabsData[e.selectedTabIndex].icon),c(2),oe(B(7,6,e.tabsData[e.selectedTabIndex].label)),c(2),M("inline",!0)}}function rK(n,t){if(1&n){const e=et();D(0,"app-refresh-button",45),ye("click",function(){return Pe(e),Oe(z(2).sendRefreshEvent())}),x()}if(2&n){const e=z(2);M("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.showLoading)("showAlert",e.showAlert)("refeshRate",e.refeshRate)}}function oK(n,t){if(1&n&&(D(0,"div",41),V(1,rK,1,4,"app-refresh-button",42),D(2,"button",43)(3,"div",44)(4,"mat-icon",34),E(5,"menu"),x()()()()),2&n){const e=z(),i=ci(12);c(1),M("ngIf",e.showUpdateButton),c(1),M("matMenuTriggerFor",i),c(2),M("inline",!0)}}function sK(n,t){if(1&n){const e=et();D(0,"div",53)(1,"div",54),ye("click",function(){return Pe(e),Oe(z(2).openLanguageWindow())}),xe(2,"img",55),E(3),R(4,"translate"),x()()}if(2&n){const e=z(2);c(2),M("src","assets/img/lang/"+e.language.iconName,Oo),c(1),ce(" ",B(4,2,e.language?e.language.name:"")," ")}}function aK(n,t){1&n&&(D(0,"div",56),R(1,"translate"),D(2,"mat-icon",34),E(3,"warning"),x(),E(4),R(5,"translate"),x()),2&n&&(M("matTooltip",B(1,3,"vpn.connection-error.info")),c(2),M("inline",!0),c(2),ce(" ",B(5,5,"vpn.connection-error.text")," "))}function lK(n,t){1&n&&(D(0,"div",63)(1,"mat-icon",61),E(2,"brightness_1"),x()()),2&n&&(c(1),M("inline",!0))}const cK=function(n,t){return{"animation-container":n,"d-none":t}},dK=function(n){return{time:n}},NI=function(n){return{showValue:!0,showUnit:!0,showPerSecond:!0,useBits:n}};function uK(n,t){if(1&n&&(D(0,"table",57)(1,"tr")(2,"td",58),R(3,"translate"),D(4,"div",27)(5,"div",59)(6,"div",60)(7,"mat-icon",61),E(8,"brightness_1"),x(),E(9),R(10,"translate"),x()()(),V(11,lK,3,1,"div",62),D(12,"mat-icon",61),E(13,"brightness_1"),x(),E(14),R(15,"translate"),x(),D(16,"td",58),R(17,"translate"),D(18,"mat-icon",34),E(19,"swap_horiz"),x(),E(20),R(21,"translate"),x()(),D(22,"tr")(23,"td",58),R(24,"translate"),D(25,"mat-icon",34),E(26,"arrow_upward"),x(),E(27),R(28,"autoScale"),x(),D(29,"td",58),R(30,"translate"),D(31,"mat-icon",34),E(32,"arrow_downward"),x(),E(33),R(34,"autoScale"),x()()()),2&n){const e=z(2);c(2),eo(e.vpnData.stateClass+" state-td"),M("matTooltip",B(3,18,e.vpnData.state+"-info")),c(2),M("ngClass",cn(39,cK,e.showVpnStateAnimation,!e.showVpnStateAnimation)),c(3),M("inline",!0),c(2),ce(" ",B(10,20,e.vpnData.state)," "),c(2),M("ngIf",e.showVpnStateAnimatedDot),c(1),M("inline",!0),c(2),ce(" ",B(15,22,e.vpnData.state)," "),c(2),M("matTooltip",B(17,24,"vpn.connection-info.latency-info")),c(2),M("inline",!0),c(2),ce(" ",Ct(21,26,"common."+e.getLatencyValueString(e.vpnData.latency),Be(42,dK,e.getPrintableLatency(e.vpnData.latency)))," "),c(3),M("matTooltip",B(24,29,"vpn.connection-info.upload-info")),c(2),M("inline",!0),c(2),ce(" ",Ct(28,31,e.vpnData.uploadSpeed,Be(44,NI,e.showVpnDataStatsInBits))," "),c(2),M("matTooltip",B(30,34,"vpn.connection-info.download-info")),c(2),M("inline",!0),c(2),ce(" ",Ct(34,36,e.vpnData.downloadSpeed,Be(46,NI,e.showVpnDataStatsInBits))," ")}}function hK(n,t){1&n&&xe(0,"mat-spinner",64),2&n&&M("diameter",20)}function fK(n,t){if(1&n&&(D(0,"div")(1,"div",46),V(2,sK,5,4,"div",47),xe(3,"div",48),V(4,aK,6,7,"div",49),x(),D(5,"div",50),V(6,uK,35,48,"table",51),V(7,hK,1,1,"mat-spinner",52),x()()),2&n){const e=z();c(2),M("ngIf",!e.hideLanguageButton&&e.language),c(2),M("ngIf",e.errorsConnectingToVpn),c(2),M("ngIf",e.vpnData),c(1),M("ngIf",!e.vpnData)}}function pK(n,t){1&n&&(D(0,"div",65)(1,"div",66)(2,"mat-icon",34),E(3,"error_outline"),x(),E(4),R(5,"translate"),x(),D(6,"div",67),E(7),R(8,"translate"),x()()),2&n&&(c(2),M("inline",!0),c(2),ce(" ",B(5,3,"vpn.remote-access-title")," "),c(3),ce(" ",B(8,5,"vpn.remote-access-text")," "))}const YI=function(n,t){return{"d-lg-none":n,"d-none":t}},mK=function(n){return{"normal-height":n}},_K=function(n,t){return{"d-none d-lg-flex":n,"d-flex":t}};class cs{constructor(t,e,i,o,s){this.languageService=t,this.dialog=e,this.router=i,this.vpnClientService=o,this.vpnSavedDataService=s,this.disableMouse=!1,this.selectedTabIndex=0,this.refeshRate=-1,this.showUpdateButton=!0,this.localVpnKeyInternal="",this.refreshRequested=new ht,this.optionSelected=new ht,this.hideLanguageButton=!0,this.showVpnInfo=!1,this.initialVpnStateObtained=!1,this.lastVpnState="",this.showVpnStateAnimation=!1,this.showVpnStateAnimatedDot=!0,this.showVpnDataStatsInBits=!0,this.remoteAccess=!1,this.errorsConnectingToVpn=!1,this.langSubscriptionsGroup=[]}set localVpnKey(t){this.localVpnKeyInternal=t,t?this.startGettingVpnInfo():this.stopGettingVpnInfo()}ngOnInit(){this.langSubscriptionsGroup.push(this.languageService.currentLanguage.subscribe(e=>{this.language=e})),this.langSubscriptionsGroup.push(this.languageService.languages.subscribe(e=>{this.hideLanguageButton=!(e.length>1)}));const t=window.location.hostname;!t.toLowerCase().includes("localhost")&&!t.toLowerCase().includes("127.0.0.1")&&(this.remoteAccess=!0)}ngOnDestroy(){this.langSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.refreshRequested.complete(),this.optionSelected.complete(),this.stopGettingVpnInfo()}startGettingVpnInfo(){this.showVpnInfo=!0,this.vpnClientService.initialize(this.localVpnKeyInternal),this.updateVpnDataStatsUnit(),this.vpnDataSubscription=this.vpnClientService.backendState.subscribe(t=>{t&&(this.vpnData={state:"",stateClass:"",latency:t.vpnClientAppData.connectionData?t.vpnClientAppData.connectionData.latency:0,downloadSpeed:t.vpnClientAppData.connectionData?t.vpnClientAppData.connectionData.downloadSpeed:0,uploadSpeed:t.vpnClientAppData.connectionData?t.vpnClientAppData.connectionData.uploadSpeed:0},t.vpnClientAppData.appState===Mn.Stopped?(this.vpnData.state="vpn.connection-info.state-disconnected",this.vpnData.stateClass="red-clear-text"):t.vpnClientAppData.appState===Mn.Connecting?(this.vpnData.state="vpn.connection-info.state-connecting",this.vpnData.stateClass="yellow-clear-text"):t.vpnClientAppData.appState===Mn.Running?(this.vpnData.state="vpn.connection-info.state-connected",this.vpnData.stateClass="green-clear-text"):t.vpnClientAppData.appState===Mn.ShuttingDown?(this.vpnData.state="vpn.connection-info.state-disconnecting",this.vpnData.stateClass="yellow-clear-text"):t.vpnClientAppData.appState===Mn.Reconnecting&&(this.vpnData.state="vpn.connection-info.state-reconnecting",this.vpnData.stateClass="yellow-clear-text"),this.initialVpnStateObtained?this.lastVpnState!==this.vpnData.state&&(this.lastVpnState=this.vpnData.state,this.showVpnStateAnimation=!1,this.showVpnStateChangeAnimationSubscription&&this.showVpnStateChangeAnimationSubscription.unsubscribe(),this.showVpnStateChangeAnimationSubscription=Ge(0).pipe(Di(1)).subscribe(()=>this.showVpnStateAnimation=!0)):(this.initialVpnStateObtained=!0,this.lastVpnState=this.vpnData.state),this.showVpnStateAnimatedDot=!1,this.showVpnStateAnimatedDotSubscription&&this.showVpnStateAnimatedDotSubscription.unsubscribe(),this.showVpnStateAnimatedDotSubscription=Ge(0).pipe(Di(1)).subscribe(()=>this.showVpnStateAnimatedDot=!0))}),this.errorsConnectingToVpnSubscription=this.vpnClientService.errorsConnecting.subscribe(t=>{this.errorsConnectingToVpn=t})}stopGettingVpnInfo(){this.showVpnInfo=!1,this.vpnDataSubscription&&this.vpnDataSubscription.unsubscribe(),this.errorsConnectingToVpnSubscription&&this.errorsConnectingToVpnSubscription.unsubscribe()}getLatencyValueString(t){return fn.getLatencyValueString(t)}getPrintableLatency(t){return fn.getPrintableLatency(t)}requestAction(t){this.optionSelected.emit(t)}openLanguageWindow(){ll.openDialog(this.dialog)}sendRefreshEvent(){this.refreshRequested.emit()}openTabSelector(){const t=[];this.tabsData.forEach(e=>{t.push({label:e.label,icon:e.icon})}),Hi.openDialog(this.dialog,t,"tabs-window.title").afterClosed().subscribe(e=>{e&&(e-=1)!==this.selectedTabIndex&&this.router.navigate(this.tabsData[e].linkParts)})}updateVpnDataStatsUnit(){const t=this.vpnSavedDataService.getDataUnitsSetting();this.showVpnDataStatsInBits=t===ao.BitsSpeedAndBytesVolume||t===ao.OnlyBits}}cs.\u0275fac=function(t){return new(t||cs)(F(da),F(Ln),F(Qt),F(jo),F(Vo))},cs.\u0275cmp=qe({type:cs,selectors:[["app-top-bar"]],inputs:{disableMouse:"disableMouse",titleParts:"titleParts",tabsData:"tabsData",selectedTabIndex:"selectedTabIndex",optionsData:"optionsData",returnText:"returnText",secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate",showUpdateButton:"showUpdateButton",localVpnKey:"localVpnKey"},outputs:{refreshRequested:"refreshRequested",optionSelected:"optionSelected"},decls:29,vars:31,consts:[[1,"top-bar",3,"ngClass"],[1,"button-container"],["mat-icon-button","","class","transparent-button",3,"click",4,"ngIf"],[1,"logo-container"],[4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"matMenuTriggerFor"],[1,"top-bar-margin",3,"ngClass"],[3,"overlapTrigger"],["menu","matMenu"],["class","menu-separator",4,"ngIf"],["mat-menu-item","",3,"click",4,"ngIf"],[1,"main-container",3,"ngClass"],[1,"main-area"],[1,"title",3,"ngClass"],["class","return-container",4,"ngIf"],["class","title-text",4,"ngIf"],["class","title-image","src","./assets/img/logo-vpn.png",4,"ngIf"],[1,"lower-container"],[3,"ngClass",4,"ngFor","ngForOf"],["class","d-md-none",3,"ngClass",4,"ngIf"],[1,"blank-space"],["class","right-container",4,"ngIf"],["class","remote-vpn-alert-container",4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"click"],["src","/assets/img/logo-s.png"],[4,"ngFor","ngForOf"],["mat-menu-item","",3,"disabled","click"],[3,"ngClass"],[1,"menu-separator"],["mat-menu-item","",3,"click"],["class","flag",3,"src",4,"ngIf"],[1,"flag",3,"src"],[1,"return-container"],[1,"return-button","transparent-button",3,"matTooltip","click"],[3,"inline"],[1,"title-text"],["src","./assets/img/logo-vpn.png",1,"title-image"],["mat-button","",1,"tab-button","white-theme",3,"disabled","routerLink","ngClass"],[1,"d-md-none",3,"ngClass"],["mat-button","",1,"tab-button","select-tab-button","white-theme",3,"ngClass","click"],[1,"d-flex"],[1,"right-container"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate","click",4,"ngIf"],["mat-button","",1,"menu-button","subtle-transparent-button","d-none","d-lg-block",3,"matMenuTriggerFor"],[1,"icon-container"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate","click"],[1,"top-text-vpn-container"],["class","languaje-button-vpn",4,"ngIf"],[1,"elements-separator"],["class","connection-error-msg-vpn blinking",3,"matTooltip",4,"ngIf"],[1,"vpn-info","vpn-dark-box-radius"],["cellspacing","0","cellpadding","0",4,"ngIf"],[3,"diameter",4,"ngIf"],[1,"languaje-button-vpn"],[1,"text-container",3,"click"],[1,"language-flag",3,"src"],[1,"connection-error-msg-vpn","blinking",3,"matTooltip"],["cellspacing","0","cellpadding","0"],[3,"matTooltip"],[1,"internal-animation-container"],[1,"animation-area"],[1,"state-icon",3,"inline"],["class","aminated-state-icon-container",4,"ngIf"],[1,"aminated-state-icon-container"],[3,"diameter"],[1,"remote-vpn-alert-container"],[1,"top-line"],[1,"bottom-line"]],template:function(t,e){if(1&t&&(D(0,"div",0)(1,"div",1),V(2,Vq,3,0,"button",2),x(),D(3,"div",3),V(4,jq,2,0,"ng-container",4),V(5,zq,3,3,"ng-container",4),x(),D(6,"div",1)(7,"button",5)(8,"mat-icon"),E(9,"menu"),x()()()(),xe(10,"div",6),D(11,"mat-menu",7,8),V(13,Gq,3,2,"ng-container",4),V(14,qq,1,0,"div",9),V(15,Zq,4,4,"div",10),x(),D(16,"div",11)(17,"div",12)(18,"div",13),V(19,Xq,5,4,"div",14),V(20,Qq,3,3,"span",15),V(21,Jq,1,0,"img",16),x(),D(22,"div",17),V(23,tK,7,15,"div",18),V(24,iK,10,13,"div",19),xe(25,"div",20),V(26,oK,6,3,"div",21),x()(),V(27,fK,8,4,"div",4),x(),V(28,pK,9,7,"div",22)),2&t){const i=ci(12);M("ngClass",cn(20,YI,!e.showVpnInfo,e.showVpnInfo)),c(2),M("ngIf",e.returnText),c(2),M("ngIf",!e.titleParts||e.titleParts.length<2),c(1),M("ngIf",e.titleParts&&e.titleParts.length>=2),c(2),M("matMenuTriggerFor",i),c(3),M("ngClass",cn(23,YI,!e.showVpnInfo,e.showVpnInfo)),c(1),M("overlapTrigger",!1),c(2),M("ngIf",e.optionsData&&e.optionsData.length>=1),c(1),M("ngIf",!e.hideLanguageButton&&e.optionsData&&e.optionsData.length>=1),c(1),M("ngIf",!e.hideLanguageButton),c(1),M("ngClass",Be(26,mK,!e.showVpnInfo)),c(2),M("ngClass",cn(28,_K,!e.showVpnInfo,e.showVpnInfo)),c(1),M("ngIf",e.returnText),c(1),M("ngIf",!e.showVpnInfo),c(1),M("ngIf",e.showVpnInfo),c(2),M("ngForOf",e.tabsData),c(1),M("ngIf",e.tabsData&&e.tabsData[e.selectedTabIndex]),c(2),M("ngIf",!e.showVpnInfo),c(1),M("ngIf",e.showVpnInfo),c(1),M("ngIf",e.showVpnInfo&&e.remoteAccess)}},dependencies:[Rn,bi,It,Ja,pz,$r,rl,yn,vi,vu,_a,yu,oc,ip,xt,rr],styles:["@media (max-width: 991px){.normal-height[_ngcontent-%COMP%]{height:55px!important}}.main-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:10px;margin-bottom:-5px;height:100px;display:flex}.main-container[_ngcontent-%COMP%] .main-area[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.875rem;margin-bottom:15px;margin-left:5px;flex-direction:row;align-items:center}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-text[_ngcontent-%COMP%]{z-index:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-image[_ngcontent-%COMP%]{width:124px;height:21px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%]{width:30px;position:relative;top:2px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%] .return-button[_ngcontent-%COMP%]{line-height:1;font-size:25px;position:relative;top:2px;width:100%;margin-right:4px;cursor:pointer}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%]{display:flex}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .blank-space[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;opacity:.5;margin-right:2px;text-decoration:none;height:40px;display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]:hover{opacity:.75}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[disabled][_ngcontent-%COMP%]{opacity:1!important;color:#f8f9f9;background:rgba(0,0,0,.7)!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{margin-right:2px;opacity:.75;font-size:18px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1rem;margin:0 4px;position:relative;top:-1px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]{opacity:.75!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]:hover{opacity:1!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%]{display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] app-refresh-button[_ngcontent-%COMP%]{align-self:flex-end}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%]{height:32px;width:32px;min-width:0px!important;background-color:#f8f9f9;border-radius:100%;padding:0!important;line-height:normal;color:#929292;font-size:20px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{display:flex;place-content:center}.menu-separator[_ngcontent-%COMP%]{width:100%;height:1px;background-color:#0000001f}.flag[_ngcontent-%COMP%]{width:24px;margin-right:16px}.transparent[_ngcontent-%COMP%]{opacity:.5}.top-bar[_ngcontent-%COMP%]{position:fixed;z-index:10;width:100%;height:56px;background-color:#f8f9f9;top:0;left:0;right:0;color:#202226;display:flex}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{flex-grow:1;display:flex;justify-content:center;align-items:center}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%]{flex-shrink:0;width:56px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:56px;height:56px}.top-bar-margin[_ngcontent-%COMP%]{margin-top:56px;flex-shrink:0}.vpn-info[_ngcontent-%COMP%]{font-size:.7rem;background:rgba(0,0,0,.7);padding:15px 20px;align-self:center}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] .state-td[_ngcontent-%COMP%]{font-weight:700}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 0;min-width:90px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:3px;font-size:12px;position:relative;top:1px;-webkit-user-select:none;user-select:none;width:auto;line-height:1}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{transform:scale(.75)}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{height:auto;animation:_ngcontent-%COMP%_state-icon-animation 1s linear 1}@keyframes _ngcontent-%COMP%_state-icon-animation{0%{transform:perspective(1px) scale(1);opacity:.8}to{transform:scale(2);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%]{width:200px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%] .animation-area[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_state-animation 1s linear 1;opacity:0}@keyframes _ngcontent-%COMP%_state-animation{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{padding-right:30px}.vpn-info[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.top-text-vpn-container[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;font-size:.6rem}.top-text-vpn-container[_ngcontent-%COMP%] .connection-error-msg-vpn[_ngcontent-%COMP%]{margin:-5px 5px 5px 10px;color:orange}.top-text-vpn-container[_ngcontent-%COMP%] .elements-separator[_ngcontent-%COMP%]{flex-grow:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%]{margin:-5px 10px 5px 0}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{cursor:pointer;display:inline;opacity:.8}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]:hover{opacity:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .language-flag[_ngcontent-%COMP%]{width:11px;height:11px;margin-right:2px}.remote-vpn-alert-container[_ngcontent-%COMP%]{background-color:#da3439;margin:0 -21px;padding:10px 20px 15px;text-align:center}.remote-vpn-alert-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:14px}.remote-vpn-alert-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:1.25rem}.remote-vpn-alert-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.8rem}"]});const BI=function(){return["start.title"]};function gK(n,t){if(1&n&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3),x(),xe(3,"app-loading-indicator",4),x()),2&n){const e=z();c(2),M("titleParts",Un(4,BI))("tabsData",e.tabsData)("selectedTabIndex",e.showDmsgInfo?1:0)("showUpdateButton",!1)}}function bK(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function vK(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function yK(n,t){if(1&n&&(D(0,"div",23)(1,"span"),E(2),R(3,"translate"),x(),V(4,bK,3,3,"ng-container",24),V(5,vK,2,1,"ng-container",24),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function MK(n,t){if(1&n){const e=et();D(0,"div",20),ye("click",function(){return Pe(e),Oe(z(2).dataFilterer.removeFilters())}),V(1,yK,6,5,"div",21),D(2,"div",22),E(3),R(4,"translate"),x()()}if(2&n){const e=z(2);c(1),M("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),oe(B(4,2,"filters.press-to-remove"))}}function wK(n,t){if(1&n){const e=et();D(0,"mat-icon",25),ye("click",function(){return Pe(e),Oe(z(2).dataFilterer.changeFilters())}),R(1,"translate"),E(2,"filter_list"),x()}2&n&&M("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function xK(n,t){1&n&&(D(0,"mat-icon",26),E(1,"more_horiz"),x()),2&n&&(z(),M("matMenuTriggerFor",ci(12)))}const HI=function(){return["/nodes","list"]},VI=function(){return["/nodes","dmsg"]};function CK(n,t){if(1&n&&xe(0,"app-paginator",27),2&n){const e=z(2);M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showDmsgInfo?Un(5,VI):Un(4,HI))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function kK(n,t){if(1&n&&(D(0,"mat-icon",42),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function SK(n,t){if(1&n&&(D(0,"mat-icon",42),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function DK(n,t){if(1&n&&(D(0,"mat-icon",42),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function TK(n,t){if(1&n&&(D(0,"mat-icon",42),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function LK(n,t){1&n&&(Ue(0),E(1,"*"),We())}function EK(n,t){if(1&n&&(Ue(0),D(1,"mat-icon",42),E(2),x(),V(3,LK,2,0,"ng-container",24),We()),2&n){const e=z(5);c(1),M("inline",!0),c(1),oe(e.dataSorter.sortingArrow),c(1),M("ngIf",e.dataSorter.currentlySortingByLabel)}}function IK(n,t){if(1&n){const e=et();D(0,"th",38),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.dmsgServerSortData))}),E(1),R(2,"translate"),V(3,EK,4,3,"ng-container",24),x()}if(2&n){const e=z(4);c(1),ce(" ",B(2,2,"nodes.dmsg-server")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.dmsgServerSortData)}}function PK(n,t){if(1&n&&(D(0,"mat-icon",42),E(1),x()),2&n){const e=z(5);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function OK(n,t){if(1&n){const e=et();D(0,"th",38),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.pingSortData))}),E(1),R(2,"translate"),V(3,PK,2,2,"mat-icon",35),x()}if(2&n){const e=z(4);c(1),ce(" ",B(2,2,"nodes.ping")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.pingSortData)}}function AK(n,t){1&n&&(D(0,"mat-icon",49),R(1,"translate"),E(2,"star"),x()),2&n&&M("inline",!0)("matTooltip",B(1,2,"nodes.hypervisor-info"))}function FK(n,t){if(1&n){const e=et();D(0,"app-labeled-element-text",51),ye("labelEdited",function(){return Pe(e),Oe(z(6).forceDataRefresh())}),x()}if(2&n){const e=z(2).$implicit,i=z(4);Dn("id",e.dmsgServerPk),M("short",!0)("elementType",i.labeledElementTypes.DmsgServer)}}function RK(n,t){if(1&n&&(D(0,"td"),V(1,FK,1,3,"app-labeled-element-text",50),x()),2&n){const e=z().$implicit;c(1),M("ngIf",e.dmsgServerPk)}}const jI=function(n){return{time:n}};function NK(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z(2).$implicit;c(1),ce(" ",Ct(2,1,"common.time-in-ms",Be(4,jI,e.roundTripPing))," ")}}function YK(n,t){if(1&n&&(D(0,"td"),V(1,NK,3,6,"ng-container",24),x()),2&n){const e=z().$implicit;c(1),M("ngIf",e.dmsgServerPk)}}function BK(n,t){1&n&&(D(0,"button",52),R(1,"translate"),D(2,"mat-icon",42),E(3,"chevron_right"),x()()),2&n&&(M("matTooltip",B(1,2,"nodes.view-node")),c(2),M("inline",!0))}function HK(n,t){if(1&n){const e=et();D(0,"button",46),ye("click",function(o){Pe(e);const s=z().$implicit,a=z(4);return o.stopPropagation(),o.preventDefault(),Oe(a.deleteNode(s))}),R(1,"translate"),D(2,"mat-icon"),E(3,"close"),x()()}2&n&&M("matTooltip",B(1,1,"nodes.delete-node"))}const VK=function(n,t){return{"click-effect":n,"non-selectable":t}},zI=function(n){return["/nodes",n]};function jK(n,t){if(1&n){const e=et();D(0,"a",43)(1,"td"),V(2,AK,3,4,"mat-icon",44),x(),D(3,"td"),xe(4,"span",45),R(5,"translate"),x(),D(6,"td"),E(7),x(),D(8,"td"),E(9),x(),V(10,RK,2,1,"td",24),V(11,YK,2,1,"td",24),D(12,"td",40)(13,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.copyToClipboard(a))}),R(14,"translate"),D(15,"mat-icon",42),E(16,"filter_none"),x()(),D(17,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.showEditLabelDialog(a))}),R(18,"translate"),D(19,"mat-icon",42),E(20,"short_text"),x()(),V(21,BK,4,4,"button",47),V(22,HK,4,3,"button",48),x()()}if(2&n){const e=t.$implicit,i=z(4);M("ngClass",cn(22,VK,e.online,!e.online))("routerLink",e.online?Be(25,zI,e.localPk):null),c(2),M("ngIf",e.isHypervisor),c(2),eo(i.nodeStatusClass(e,!0)),M("matTooltip",B(5,16,i.nodeStatusText(e,!0))),c(3),ce(" ",e.label," "),c(2),ce(" ",e.localPk," "),c(1),M("ngIf",i.showDmsgInfo),c(1),M("ngIf",i.showDmsgInfo),c(2),M("matTooltip",B(14,18,i.showDmsgInfo?"nodes.copy-data":"nodes.copy-key")),c(2),M("inline",!0),c(2),M("matTooltip",B(18,20,"labeled-element.edit-label")),c(2),M("inline",!0),c(2),M("ngIf",e.online),c(1),M("ngIf",!e.online)}}function zK(n,t){if(1&n){const e=et();D(0,"table",32)(1,"tr")(2,"th",33),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),R(3,"translate"),D(4,"mat-icon",34),E(5,"star_outline"),x(),V(6,kK,2,2,"mat-icon",35),x(),D(7,"th",33),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.stateSortData))}),R(8,"translate"),xe(9,"span",36),V(10,SK,2,2,"mat-icon",35),x(),D(11,"th",37),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.labelSortData))}),E(12),R(13,"translate"),V(14,DK,2,2,"mat-icon",35),x(),D(15,"th",38),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.keySortData))}),E(16),R(17,"translate"),V(18,TK,2,2,"mat-icon",35),x(),V(19,IK,4,4,"th",39),V(20,OK,4,4,"th",39),xe(21,"th",40),x(),V(22,jK,23,27,"a",41),x()}if(2&n){const e=z(3);c(2),M("matTooltip",B(3,11,"nodes.hypervisor")),c(4),M("ngIf",e.dataSorter.currentSortingColumn===e.hypervisorSortData),c(1),M("matTooltip",B(8,13,"nodes.state-tooltip")),c(3),M("ngIf",e.dataSorter.currentSortingColumn===e.stateSortData),c(2),ce(" ",B(13,15,"nodes.label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.labelSortData),c(2),ce(" ",B(17,17,"nodes.key")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.keySortData),c(1),M("ngIf",e.showDmsgInfo),c(1),M("ngIf",e.showDmsgInfo),c(2),M("ngForOf",e.dataSource)}}function UK(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.label")))}function WK(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.inverted-order")))}function $K(n,t){1&n&&(D(0,"div",62)(1,"mat-icon",67),E(2,"star"),x(),E(3,"\xa0 "),D(4,"span",68),E(5),R(6,"translate"),x()()),2&n&&(c(1),M("inline",!0),c(4),oe(B(6,2,"nodes.hypervisor")))}function GK(n,t){if(1&n){const e=et();D(0,"div",63)(1,"span",9),E(2),R(3,"translate"),x(),E(4,": "),D(5,"app-labeled-element-text",69),ye("labelEdited",function(){return Pe(e),Oe(z(5).forceDataRefresh())}),x()()}if(2&n){const e=z().$implicit,i=z(4);c(2),oe(B(3,3,"nodes.dmsg-server")),c(3),Dn("id",e.dmsgServerPk),M("elementType",i.labeledElementTypes.DmsgServer)}}function qK(n,t){if(1&n&&(D(0,"div",62)(1,"span",9),E(2),R(3,"translate"),x(),E(4),R(5,"translate"),x()),2&n){const e=z().$implicit;c(2),oe(B(3,2,"nodes.ping")),c(2),ce(": ",Ct(5,4,"common.time-in-ms",Be(7,jI,e.roundTripPing))," ")}}const KK=function(n){return{"selectable click-effect":n}};function ZK(n,t){if(1&n){const e=et();D(0,"a",59)(1,"tr",60)(2,"td",60)(3,"div",55)(4,"div",56),V(5,$K,7,4,"div",61),D(6,"div",62)(7,"span",9),E(8),R(9,"translate"),x(),E(10,": "),D(11,"span"),E(12),R(13,"translate"),x()(),D(14,"div",62)(15,"span",9),E(16),R(17,"translate"),x(),E(18),x(),D(19,"div",63)(20,"span",9),E(21),R(22,"translate"),x(),E(23),x(),V(24,GK,6,5,"div",64),V(25,qK,6,9,"div",61),x(),xe(26,"div",65),D(27,"div",57)(28,"button",66),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.showOptionsDialog(a))}),R(29,"translate"),D(30,"mat-icon"),E(31),x()()()()()()()}if(2&n){const e=t.$implicit,i=z(4);M("ngClass",Be(25,KK,e.online))("routerLink",e.online?Be(27,zI,e.localPk):null),c(5),M("ngIf",e.isHypervisor),c(3),oe(B(9,15,"nodes.state")),c(3),eo(i.nodeStatusClass(e,!1)+" title"),c(1),oe(B(13,17,i.nodeStatusText(e,!1))),c(4),oe(B(17,19,"nodes.label")),c(2),ce(": ",e.label," "),c(3),oe(B(22,21,"nodes.key")),c(2),ce(": ",e.localPk," "),c(1),M("ngIf",i.showDmsgInfo),c(1),M("ngIf",i.showDmsgInfo),c(3),M("matTooltip",B(29,23,"common.options")),c(3),oe("add")}}function XK(n,t){if(1&n){const e=et();D(0,"table",53)(1,"tr",54),ye("click",function(){return Pe(e),Oe(z(3).dataSorter.openSortingOrderModal())}),D(2,"td")(3,"div",55)(4,"div",56)(5,"div",9),E(6),R(7,"translate"),x(),D(8,"div"),E(9),R(10,"translate"),V(11,UK,3,3,"ng-container",24),V(12,WK,3,3,"ng-container",24),x()(),D(13,"div",57)(14,"mat-icon",42),E(15,"keyboard_arrow_down"),x()()()()(),V(16,ZK,32,29,"a",58),x()}if(2&n){const e=z(3);c(6),oe(B(7,6,"tables.sorting-title")),c(3),ce("",B(10,8,e.dataSorter.currentSortingColumn.label)," "),c(2),M("ngIf",e.dataSorter.currentlySortingByLabel),c(1),M("ngIf",e.dataSorter.sortingInReverseOrder),c(2),M("inline",!0),c(2),M("ngForOf",e.dataSource)}}function QK(n,t){if(1&n&&(D(0,"div",28)(1,"div",29),V(2,zK,23,19,"table",30),V(3,XK,17,10,"table",31),x()()),2&n){const e=z(2);c(2),M("ngIf",e.dataSource.length>0),c(1),M("ngIf",e.dataSource.length>0)}}function JK(n,t){if(1&n&&xe(0,"app-paginator",27),2&n){const e=z(2);M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showDmsgInfo?Un(5,VI):Un(4,HI))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function eZ(n,t){1&n&&(D(0,"span",73),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"nodes.empty")))}function tZ(n,t){1&n&&(D(0,"span",73),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"nodes.empty-with-filter")))}function nZ(n,t){if(1&n&&(D(0,"div",28)(1,"div",70)(2,"mat-icon",71),E(3,"warning"),x(),V(4,eZ,3,3,"span",72),V(5,tZ,3,3,"span",72),x()()),2&n){const e=z(2);c(2),M("inline",!0),c(2),M("ngIf",0===e.allNodes.length),c(1),M("ngIf",0!==e.allNodes.length)}}const iZ=function(n){return{"paginator-icons-fixer":n}};function rZ(n,t){if(1&n){const e=et();D(0,"div",5)(1,"div",6)(2,"app-top-bar",7),ye("refreshRequested",function(){return Pe(e),Oe(z().forceDataRefresh(!0))})("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))}),x()(),D(3,"div",6)(4,"div",8)(5,"div",9),V(6,MK,5,4,"div",10),x(),D(7,"div",11)(8,"div",12),V(9,wK,3,4,"mat-icon",13),V(10,xK,2,1,"mat-icon",14),D(11,"mat-menu",15,16)(13,"div",17),ye("click",function(){return Pe(e),Oe(z().removeOffline())}),E(14),R(15,"translate"),x()()(),V(16,CK,1,6,"app-paginator",18),x()(),V(17,QK,4,2,"div",19),V(18,JK,1,6,"app-paginator",18),V(19,nZ,6,3,"div",19),x()()}if(2&n){const e=z();c(2),M("titleParts",Un(21,BI))("tabsData",e.tabsData)("selectedTabIndex",e.showDmsgInfo?1:0)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.options),c(2),M("ngClass",Be(22,iZ,e.numberOfPages>1)),c(2),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),M("ngIf",e.allNodes&&e.allNodes.length>0),c(1),M("ngIf",e.dataSource.length>0),c(1),M("overlapTrigger",!1),c(2),Dn("disabled",!e.hasOfflineNodes),c(1),ce(" ",B(15,19,"nodes.delete-all-offline")," "),c(2),M("ngIf",e.numberOfPages>1),c(1),M("ngIf",0!==e.dataSource.length),c(1),M("ngIf",e.numberOfPages>1),c(1),M("ngIf",0===e.dataSource.length)}}class Mu{constructor(t,e,i,o,s,a,l,d,w,P,Y){this.nodeService=t,this.multipleNodeDataService=e,this.router=i,this.dialog=o,this.authService=s,this.storageService=a,this.ngZone=l,this.snackbarService=d,this.clipboardService=w,this.translateService=P,this.nodesListId="nl",this.dmsgListId="dl",this.hypervisorSortData=new Yn(["isHypervisor"],"nodes.hypervisor",Jt.Boolean),this.stateSortData=new Yn(["online"],"nodes.state",Jt.Boolean),this.labelSortData=new Yn(["label"],"nodes.label",Jt.Text),this.keySortData=new Yn(["localPk"],"nodes.key",Jt.Text),this.dmsgServerSortData=new Yn(["dmsgServerPk"],"nodes.dmsg-server",Jt.Text,["dmsgServerPk_label"]),this.pingSortData=new Yn(["roundTripPing"],"nodes.ping",Jt.Number),this.loading=!0,this.tabsData=[],this.options=[],this.showDmsgInfo=!1,this.canLogOut=!0,this.hasOfflineNodes=!1,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"nodes.filter-dialog.online",keyNameInElementsArray:"online",type:Xn.Select,printableLabelsForValues:[{value:"",label:"nodes.filter-dialog.online-options.any"},{value:"true",label:"nodes.filter-dialog.online-options.online"},{value:"false",label:"nodes.filter-dialog.online-options.offline"}]},{filterName:"nodes.filter-dialog.label",keyNameInElementsArray:"label",type:Xn.TextInput,maxlength:100},{filterName:"nodes.filter-dialog.key",keyNameInElementsArray:"localPk",type:Xn.TextInput,maxlength:66},{filterName:"nodes.filter-dialog.dmsg",keyNameInElementsArray:"dmsgServerPk",secondaryKeyNameInElementsArray:"dmsgServerPk_label",type:Xn.TextInput,maxlength:66}],this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.labeledElementTypes=Mr,this.updateOptionsMenu(),this.authVerificationSubscription=this.authService.checkLogin().subscribe(te=>{this.canLogOut=te!==Is.AuthDisabled,this.updateOptionsMenu()}),this.showDmsgInfo=-1!==this.router.url.indexOf("dmsg"),this.showDmsgInfo||this.filterProperties.splice(this.filterProperties.length-1);const q=[this.hypervisorSortData,this.stateSortData,this.labelSortData,this.keySortData];this.showDmsgInfo&&(q.push(this.dmsgServerSortData),q.push(this.pingSortData)),this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,q,3,this.showDmsgInfo?this.dmsgListId:this.nodesListId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new gu(this.dialog,Y,this.router,this.filterProperties,this.showDmsgInfo?this.dmsgListId:this.nodesListId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(te=>{this.filteredNodes=te,this.hasOfflineNodes=!1,this.filteredNodes.forEach(pe=>{pe.online||(this.hasOfflineNodes=!0)}),this.dataSorter.setData(this.filteredNodes)}),this.navigationsSubscription=Y.paramMap.subscribe(te=>{if(te.has("page")){let pe=Number.parseInt(te.get("page"),10);(isNaN(pe)||pe<1)&&(pe=1),this.currentPageInUrl=pe,this.recalculateElementsToShow()}}),this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"language",label:"nodes.dmsg-title",linkParts:["/nodes","dmsg"]},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.multipleNodeDataService.forceRefresh()})}updateOptionsMenu(){this.options=[],this.options.push({name:"nodes.modify-rewards-all",actionName:"modifyRewardsAll",icon:"edit"}),this.canLogOut&&this.options.push({name:"common.logout",actionName:"logout",icon:"power_settings_new"})}ngOnInit(){this.startGettingData(),this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=xf(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))})}ngOnDestroy(){this.authVerificationSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.languageSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}performAction(t){"logout"===t?this.logout():"updateAll"===t?this.updateAll():"modifyRewardsAll"===t&&this.changeRewardsToAll()}nodeStatusClass(t,e){return t.online?t.health&&t.health.servicesHealth===ls.Unhealthy?e?"dot-yellow blinking":"yellow-text":t.health&&t.health.servicesHealth===ls.Healthy?e?"dot-green":"green-text":e?"dot-outline-gray":"":e?"dot-red":"red-text"}nodeStatusText(t,e){return t.online?t.health&&t.health.servicesHealth===ls.Healthy?"node.statuses.online"+(e?"-tooltip":""):t.health&&t.health.servicesHealth===ls.Unhealthy?"node.statuses.partially-online"+(e?"-tooltip":""):t.health&&t.health.servicesHealth===ls.Connecting?"node.statuses.connecting"+(e?"-tooltip":""):"node.statuses.unknown"+(e?"-tooltip":""):"node.statuses.offline"+(e?"-tooltip":"")}forceDataRefresh(t=!1){t&&(this.lastUpdateRequestedManually=!0),this.multipleNodeDataService.forceRefresh()}startGettingData(){this.ngZone.runOutsideAngular(()=>{this.dataSubscription=this.multipleNodeDataService.startRequestingData().subscribe(t=>{this.ngZone.run(()=>{this.updating=!t||t.updating,t&&!t.updating&&(t.data&&!t.error?(this.allNodes=t.data,this.showDmsgInfo&&this.allNodes.forEach(e=>{e.dmsgServerPk_label=Ar.getCompleteLabel(this.storageService,this.translateService,e.dmsgServerPk)}),this.dataFilterer.setData(this.allNodes),this.loading=!1,this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=t.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-t.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)):t.error&&(this.errorsUpdating||this.snackbarService.showError(this.loading?"common.loading-error":"nodes.error-load",null,!0,t.error),this.errorsUpdating=!0))})})})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredNodes){const t=Rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredNodes.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.nodesToShow=this.filteredNodes.slice(e,e+t)}else this.nodesToShow=null;this.nodesToShow&&(this.dataSource=this.nodesToShow)}logout(){const t=Wt.createConfirmationDialog(this.dialog,"common.logout-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}updateAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-update");const t=[],e=[];this.dataSource.forEach(i=>{if(i.online){const o={key:i.localPk,label:i.label,version:i.version,tag:i.buildTag};Wt.checkIfTagIsUpdatable(i.buildTag)?t.push(o):e.push(o)}}),dc.openDialog(this.dialog,t,e)}changeRewardsToAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-modify");const t=[];this.dataSource.forEach(i=>{i.online&&t.push({key:i.localPk,label:i.label})}),uc.openDialog(this.dialog,{nodes:t})}recursivelyUpdateWallets(t,e,i=0){return this.nodeService.update(t[t.length-1]).pipe(no(()=>Ge(null)),Ne(o=>(o&&o.updated&&!o.error?this.snackbarService.showDone(this.translateService.instant("nodes.update.done",{name:e[e.length-1]})):(this.snackbarService.showError(this.translateService.instant("nodes.update.update-error",{name:e[e.length-1]})),i+=1),t.pop(),e.pop(),t.length>=1?this.recursivelyUpdateWallets(t,e,i):Ge(i))))}showOptionsDialog(t){const e=[{icon:"filter_none",label:"nodes.copy-key"}];this.showDmsgInfo&&e.push({icon:"filter_none",label:"nodes.copy-dmsg"}),e.push({icon:"short_text",label:"labeled-element.edit-label"}),t.online||e.push({icon:"close",label:"nodes.delete-node"}),Hi.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{1===i?this.copySpecificTextToClipboard(t.localPk):this.showDmsgInfo?2===i?this.copySpecificTextToClipboard(t.dmsgServerPk):3===i?this.showEditLabelDialog(t):4===i&&this.deleteNode(t):2===i?this.showEditLabelDialog(t):3===i&&this.deleteNode(t)})}copyToClipboard(t){this.showDmsgInfo?Hi.openDialog(this.dialog,[{icon:"filter_none",label:"nodes.key"},{icon:"filter_none",label:"nodes.dmsg-server"}],"common.options").afterClosed().subscribe(i=>{1===i?this.copySpecificTextToClipboard(t.localPk):2===i&&this.copySpecificTextToClipboard(t.dmsgServerPk)}):this.copySpecificTextToClipboard(t.localPk)}copySpecificTextToClipboard(t){this.clipboardService.copy(t)&&this.snackbarService.showDone("copy.copied")}showEditLabelDialog(t){let e=this.storageService.getLabelInfo(t.localPk);e||(e={id:t.localPk,label:"",identifiedElementType:Mr.Node}),pa.openDialog(this.dialog,e).afterClosed().subscribe(i=>{i&&this.forceDataRefresh()})}deleteNode(t){const e=Wt.createConfirmationDialog(this.dialog,"nodes.delete-node-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.storageService.setLocalNodesAsHidden([t.localPk],[t.ip]),this.forceDataRefresh(),this.snackbarService.showDone("nodes.deleted")})}removeOffline(){let t="nodes.delete-all-offline-confirmation";this.dataFilterer.currentFiltersTexts&&this.dataFilterer.currentFiltersTexts.length>0&&(t="nodes.delete-all-filtered-offline-confirmation");const e=Wt.createConfirmationDialog(this.dialog,t);e.componentInstance.operationAccepted.subscribe(()=>{e.close();const i=[],o=[];this.filteredNodes.forEach(s=>{s.online||(i.push(s.localPk),o.push(s.ip))}),i.length>0&&(this.storageService.setLocalNodesAsHidden(i,o),this.forceDataRefresh(),1===i.length?this.snackbarService.showDone("nodes.deleted-singular"):this.snackbarService.showDone("nodes.deleted-plural",{number:i.length}))})}}Mu.\u0275fac=function(t){return new(t||Mu)(F(so),F(bu),F(Qt),F(Ln),F(Ps),F(ni),F(pt),F(on),F(As),F(oo),F(yr))},Mu.\u0275cmp=qe({type:Mu,selectors:[["app-node-list"]],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"h-100"],[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","refreshRequested","optionSelected"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow","full-node-list-margins"],["class","responsive-table-translucid d-none d-md-table","cellspacing","0","cellpadding","0",4,"ngIf"],["class","responsive-table-translucid d-md-none nowrap","cellspacing","0","cellpadding","0",4,"ngIf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"sortable-column","small-column",3,"matTooltip","click"],[1,"hypervisor-icon","grey-text"],[3,"inline",4,"ngIf"],[1,"dot-outline-gray"],[1,"sortable-column","labels",3,"click"],[1,"sortable-column",3,"click"],["class","sortable-column",3,"click",4,"ngIf"],[1,"actions"],["class","selectable link-row",3,"ngClass","routerLink",4,"ngFor","ngForOf"],[3,"inline"],[1,"selectable","link-row",3,"ngClass","routerLink"],["class","hypervisor-icon",3,"inline","matTooltip",4,"ngIf"],[3,"matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip","click"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip",4,"ngIf"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip","click",4,"ngIf"],[1,"hypervisor-icon",3,"inline","matTooltip"],["shortTextLength","4",3,"short","id","elementType","labelEdited",4,"ngIf"],["shortTextLength","4",3,"short","id","elementType","labelEdited"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none","nowrap"],[1,"selectable","click-effect",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],["class","link-row",3,"ngClass","routerLink",4,"ngFor","ngForOf"],[1,"link-row",3,"ngClass","routerLink"],[1,"d-block"],["class","list-row",4,"ngIf"],[1,"list-row"],[1,"list-row","long-content"],["class","list-row long-content",4,"ngIf"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[1,"hypervisor-icon",3,"inline"],[1,"yellow-clear-text","title"],[3,"id","elementType","labelEdited"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(V(0,gK,4,5,"div",0),V(1,rZ,20,24,"div",1)),2&t&&(M("ngIf",e.loading),c(1),M("ngIf",!e.loading))},dependencies:[Rn,bi,It,Ja,$r,rl,yn,vi,vu,_a,yu,Gr,Fs,cs,Ar,xt],styles:[".labels[_ngcontent-%COMP%]{width:15%}.actions[_ngcontent-%COMP%]{text-align:right;width:120px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.hypervisor-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;position:relative;top:2px;margin-left:2px;color:#d48b05}.small-column[_ngcontent-%COMP%]{width:1px}.non-selectable[_ngcontent-%COMP%]{cursor:not-allowed}"]});const oZ=["content"],nM=function(n){return{number:n}};function sZ(n,t){if(1&n&&(D(0,"div",14),E(1),R(2,"translate"),x()),2&n){const e=z(2);c(1),ce(" ",Ct(2,1,"node.logs.filter-ignored",Be(4,nM,e.logEntries.length-e.filteredLogEntries.length))," ")}}function aZ(n,t){if(1&n){const e=et();D(0,"div",9),ye("click",function(){return Pe(e),Oe(z().showFilters())}),D(1,"div",10)(2,"div")(3,"span"),E(4),R(5,"translate"),x(),D(6,"span",11),E(7),R(8,"translate"),x()(),V(9,sZ,3,6,"div",12),x(),xe(10,"div",13),x()}if(2&n){const e=z();c(4),ce("",B(5,3,"node.logs.selected-filter")," "),c(3),oe(B(8,5,"node.logs."+e.levelDetails.get(e.currentMinimumLevel).levelFilterName)),c(2),M("ngIf",e.logEntries.length>e.filteredLogEntries.length)}}function lZ(n,t){if(1&n&&(D(0,"div",15)(1,"a",16),E(2),R(3,"translate"),x()()),2&n){const e=z();c(1),M("href",e.getFullLogsUrl(),Oo),c(1),ce(" ",Ct(3,2,"node.logs.view-rest",Be(5,nM,e.totalLogs))," ")}}function cZ(n,t){1&n&&(Ue(0),E(1,":"),We())}function dZ(n,t){if(1&n&&(D(0,"span"),E(1),x()),2&n){const e=z().$implicit;c(1),ce(" ",e.msg," ")}}function uZ(n,t){if(1&n&&(Ue(0),D(1,"span",21),E(2),x(),D(3,"span"),E(4),x(),We()),2&n){const e=t.$implicit;c(2),ce(" ",e.name," "),c(2),ce(' ="',e.value,'" ')}}function hZ(n,t){if(1&n&&(D(0,"div",15)(1,"span",18),E(2),x(),D(3,"span"),E(4),x(),E(5," [ "),D(6,"span",18),E(7),x(),D(8,"span",19),E(9),x(),E(10," ]"),V(11,cZ,2,0,"ng-container",4),V(12,dZ,2,1,"span",4),V(13,uZ,5,2,"ng-container",20),x()),2&n){const e=t.$implicit,i=z(2);c(2),ce(" ",e.time," "),c(1),eo(i.levelDetails.get(e.level).colorClass),c(1),ce(" ",i.levelDetails.get(e.level).name," "),c(3),ce(" ",e.func," "),c(2),ce(" ",e._module," "),c(2),M("ngIf",e.msg),c(1),M("ngIf",e.msg),c(1),M("ngForOf",e.extra)}}function fZ(n,t){if(1&n&&(Ue(0),V(1,hZ,14,9,"div",17),We()),2&n){const e=z();c(1),M("ngForOf",e.filteredLogEntries)}}function pZ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"node.logs.view-all")," "))}function mZ(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z(2);c(1),ce(" ",Ct(2,1,"node.logs.view-rest",Be(4,nM,e.totalLogs))," ")}}function _Z(n,t){if(1&n&&(D(0,"div",15)(1,"a",16),V(2,pZ,3,3,"ng-container",4),V(3,mZ,3,6,"ng-container",4),x()()),2&n){const e=z();c(1),M("href",e.getFullLogsUrl(),Oo),c(1),M("ngIf",!e.hasMoreLogMessages),c(1),M("ngIf",e.hasMoreLogMessages)}}function gZ(n,t){1&n&&(D(0,"div",22),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"node.logs.no-logs")," "))}function bZ(n,t){1&n&&(D(0,"div",22),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"node.logs.no-logs-for-filter")," "))}function vZ(n,t){1&n&&xe(0,"app-loading-indicator",23),2&n&&M("showWhite",!1)}function yZ(n,t){1&n&&(D(0,"mat-icon",26),E(1,"refresh"),x()),2&n&&M("inline",!0)}const MZ=function(n){return{time:n}};function wZ(n,t){if(1&n&&(D(0,"div",24),V(1,yZ,2,1,"mat-icon",25),D(2,"span"),E(3),R(4,"translate"),x()()),2&n){const e=z();c(1),M("ngIf",!e.showAlert),c(2),oe(Ct(4,2,"refresh-button."+e.elapsedTime.translationVarName,Be(5,MZ,e.elapsedTime.elapsedTime)))}}var $n=(()=>(function(n){n[n.PanicLevel=0]="PanicLevel",n[n.FatalLevel=1]="FatalLevel",n[n.ErrorLevel=2]="ErrorLevel",n[n.WarnLevel=3]="WarnLevel",n[n.InfoLevel=4]="InfoLevel",n[n.DebugLevel=5]="DebugLevel",n[n.TraceLevel=6]="TraceLevel",n[n.Unknown=7]="Unknown"}($n||($n={})),$n))();class xZ{constructor(){this.extra=[]}}class fc{constructor(t,e,i,o,s){this.dialogRef=t,this.nodeService=e,this.snackbarService=i,this.ngZone=o,this.dialog=s,this.levelDetails=new Map([[$n.PanicLevel,{name:"PANIC",colorClass:"panic-level-color",levelFilterName:"filter-panic",importance:8}],[$n.FatalLevel,{name:"FATAL",colorClass:"fatal-level-color",levelFilterName:"filter-faltal",importance:7}],[$n.ErrorLevel,{name:"ERROR",colorClass:"error-level-color",levelFilterName:"filter-error",importance:6}],[$n.WarnLevel,{name:"WARNING",colorClass:"warning-level-color",levelFilterName:"filter-warning",importance:5}],[$n.InfoLevel,{name:"INFO",colorClass:"info-level-color",levelFilterName:"filter-info",importance:4}],[$n.DebugLevel,{name:"DEBUG",colorClass:"debug-level-color",levelFilterName:"filter-debug",importance:3}],[$n.TraceLevel,{name:"TRACE",colorClass:"trace-level-color",levelFilterName:"filter-all",importance:2}],[$n.Unknown,{name:"UNKNOWN LOG",colorClass:"unknown-level-color",levelFilterName:"filter-all",importance:1}]]),this.currentMinimumLevel=$n.Unknown,this.loading=!0,this.LoadingMoment=0,this.maxElementsPerPage=1e3,this.logEntries=[],this.filteredLogEntries=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.shouldShowError=!0}static openDialog(t){const e=new Tn;return e.autoFocus=!1,e.width=Rt.largeModalWidth,t.open(fc,e)}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription(),this.removeTimeSubscription()}showFilters(){const t=[{icon:"",label:"node.logs.filter-all"},{icon:"",label:"node.logs.filter-debug"},{icon:"",label:"node.logs.filter-info"},{icon:"",label:"node.logs.filter-warning"},{icon:"",label:"node.logs.filter-error"},{icon:"",label:"node.logs.filter-faltal"},{icon:"",label:"node.logs.filter-panic"}],e=[$n.Unknown,$n.DebugLevel,$n.InfoLevel,$n.WarnLevel,$n.ErrorLevel,$n.FatalLevel,$n.PanicLevel];for(let i=0;i<=e.length;i++)this.currentMinimumLevel===e[i]&&(t[i].icon="check");Hi.openDialog(this.dialog,t,"node.logs.filter-title").afterClosed().subscribe(i=>{this.currentMinimumLevel=e[i-1],this.filter()})}loadData(t){this.removeSubscription(),this.loading=!0,this.subscription=Ge(1).pipe(Di(t),Ne(()=>this.nodeService.getRuntimeLogs(Je.getCurrentNodeKey()))).subscribe(e=>this.onLogsReceived(e),e=>this.onLogsError(e))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}removeTimeSubscription(){this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}onLogsReceived(t){let e=0;this.totalLogs=t.length,this.hasMoreLogMessages=this.totalLogs-this.maxElementsPerPage>0,t.forEach(i=>{const o=new xZ;o.time=i.time,o._module=i._module,o.msg=i.msg,o.func=i.func;const s=i.level?i.level.toLowerCase():"";if(o.level=s.includes("panic")?$n.PanicLevel:s.includes("fatal")?$n.FatalLevel:s.includes("error")?$n.ErrorLevel:s.includes("warn")?$n.WarnLevel:s.includes("info")?$n.InfoLevel:s.includes("debug")?$n.DebugLevel:s.includes("trace")?$n.TraceLevel:$n.Unknown,i.current_backoff){const l=Math.floor(i.current_backoff/1e9),d=Math.floor(l/60),w=Math.floor(l%60);o.extra.push(d?{name:"current_backoff",value:d+"m"+w+"s"}:{name:"current_backoff",value:w+"s"})}i.error&&o.extra.push({name:"error",value:i.error});const a=new Set;a.add("time"),a.add("_module"),a.add("msg"),a.add("func"),a.add("level"),a.add("current_backoff"),a.add("error"),a.add("log_line");for(const l in i)a.has(l)||o.extra.push({name:l,value:i[l]});this.totalLogs-e<=this.maxElementsPerPage&&this.logEntries.push(o),e+=1}),this.loading=!1,this.LoadingMoment=Date.now(),this.startUpdatingTime(),this.filter()}filter(){this.filteredLogEntries=[];const t=this.levelDetails.get(this.currentMinimumLevel).importance;this.logEntries.forEach(e=>{const i=this.levelDetails.get(e.level).importance;t<=i&&this.filteredLogEntries.push(e)}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}startUpdatingTime(){this.elapsedTime=Rg.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3)),this.removeTimeSubscription(),this.timeUpdateSubscription=xf(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.elapsedTime=Rg.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3))}))}getFullLogsUrl(){return window.location.origin+"/api/visors/"+Je.getCurrentNodeKey()+"/runtime-logs"}onLogsError(t){t=Kt(t),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,t),this.shouldShowError=!1),this.loadData(Rt.connectionRetryDelay)}}fc.\u0275fac=function(t){return new(t||fc)(F(Nn),F(so),F(on),F(pt),F(Ln))},fc.\u0275cmp=qe({type:fc,selectors:[["app-node-logs"]],viewQuery:function(t,e){if(1&t&&ft(oZ,5),2&t){let i;nt(i=it())&&(e.content=i.first)}},decls:13,vars:14,consts:[[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],["class","filter-area",3,"click",4,"ngIf"],["content",""],["class","log-entry",4,"ngIf"],[4,"ngIf"],["class","log-empty-msg",4,"ngIf"],[3,"showWhite",4,"ngIf"],[1,"update-button","subtle-transparent-button",3,"click"],["class","update-time",4,"ngIf"],[1,"filter-area",3,"click"],[1,"filter-content"],[1,"actual-value"],["class","small",4,"ngIf"],[1,"filter-margin"],[1,"small"],[1,"log-entry"],["target","_blank",1,"view-raw-link",3,"href"],["class","log-entry",4,"ngFor","ngForOf"],[1,"transparent"],[1,"module-color"],[4,"ngFor","ngForOf"],[1,"extra-data-color"],[1,"log-empty-msg"],[3,"showWhite"],[1,"update-time"],["class","icon",3,"inline",4,"ngIf"],[1,"icon",3,"inline"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),V(2,aZ,11,7,"div",1),D(3,"mat-dialog-content",null,2),V(5,lZ,4,7,"div",3),V(6,fZ,2,1,"ng-container",4),V(7,_Z,4,3,"div",3),V(8,gZ,3,3,"div",5),V(9,bZ,3,3,"div",5),V(10,vZ,1,1,"app-loading-indicator",6),D(11,"div",7),ye("click",function(){return e.loadData(0)}),V(12,wZ,5,7,"div",8),x()()()),2&t&&(M("headline",B(1,12,"node.logs.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",e.dialogRef),c(2),M("ngIf",!e.loading&&e.logEntries&&e.logEntries.length>0),c(3),M("ngIf",!e.loading&&e.hasMoreLogMessages),c(1),M("ngIf",!e.loading),c(1),M("ngIf",!e.loading&&e.logEntries&&e.logEntries.length>0),c(1),M("ngIf",!(e.loading||e.logEntries&&0!==e.logEntries.length)),c(1),M("ngIf",!e.loading&&e.logEntries&&e.logEntries.length>0&&e.filteredLogEntries.length<1),c(1),M("ngIf",e.loading),c(2),M("ngIf",!e.loading))},dependencies:[bi,It,C1,yn,En,Gr,xt],styles:[".filter-area[_ngcontent-%COMP%]{margin-left:-24px;margin-right:-24px;font-size:.8rem;color:#777;background-color:#d9deeb;cursor:pointer}.filter-area[_ngcontent-%COMP%]:hover{background-color:#cfd5e6}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%]{padding:10px 24px;text-align:center}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:.6rem}.filter-area[_ngcontent-%COMP%] .filter-margin[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin:0 12px}.log-entry[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.log-entry[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.log-entry[_ngcontent-%COMP%]:first-of-type{margin-top:0}.log-entry[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.log-empty-msg[_ngcontent-%COMP%]{text-align:center}.view-raw-link[_ngcontent-%COMP%]{color:#215f9e}.update-button[_ngcontent-%COMP%]{display:flex;justify-content:center;cursor:pointer}.update-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;margin-right:5px}.update-button[_ngcontent-%COMP%] .update-time[_ngcontent-%COMP%]{text-align:center;font-size:.7rem;color:#202226;margin:0 5px}.panic-level-color[_ngcontent-%COMP%], .fatal-level-color[_ngcontent-%COMP%]{color:red}.error-level-color[_ngcontent-%COMP%]{color:#d10000}.warning-level-color[_ngcontent-%COMP%]{color:#e27505}.info-level-color[_ngcontent-%COMP%]{color:#0d9519}.debug-level-color[_ngcontent-%COMP%]{color:#0065ff}.trace-level-color[_ngcontent-%COMP%]{color:#468cf5}.unknown-level-color[_ngcontent-%COMP%]{color:#e27505}.module-color[_ngcontent-%COMP%]{color:#a119fc}.extra-data-color[_ngcontent-%COMP%]{color:#ad8021}"]});class UI{constructor(t,e){this.canBeUpdated=!1,this.canBeRestarted=!1,this.canOpenTerminal=!1,this.options=[],this.dialog=t.get(Ln),this.router=t.get(Qt),this.snackbarService=t.get(on),this.nodeService=t.get(so),this.storageService=t.get(ni),this.showingFullList=e,this.returnButtonText=e?"node.title":"nodes.title",this.updateOptions()}updateOptions(){this.options=[],this.canOpenTerminal&&this.options.push({name:"actions.menu.terminal",actionName:"terminal",icon:"laptop"}),this.options.push({name:"actions.menu.logs",actionName:"logs",icon:"subject"}),this.canBeRestarted&&this.options.push({name:"actions.menu.reboot",actionName:"reboot",icon:"rotate_right"})}setCurrentNode(t){this.currentNode=t,Wt.checkIfTagIsUpdatable(t.buildTag)?(this.canBeUpdated=!0,this.canBeRestarted=!0):(this.canBeUpdated=!1,this.canBeRestarted=!1),this.canOpenTerminal=Wt.checkIfTagCanOpenterminal(t.buildTag),this.updateOptions()}setCurrentNodeKey(t){this.currentNodeKey=t}performAction(t,e){"terminal"===t?this.terminal():"update"===t?this.update():"logs"===t?this.runtimeLogs():"reboot"===t?this.reboot():null===t&&this.back()}dispose(){this.rebootSubscription&&this.rebootSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe()}reboot(){const t=Wt.createConfirmationDialog(this.dialog,"actions.reboot.confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing(),this.rebootSubscription=this.nodeService.reboot(this.currentNodeKey).subscribe(()=>{this.snackbarService.showDone("actions.reboot.done"),t.close()},e=>{e=Kt(e),t.componentInstance.showDone("confirmation.error-header-text",e.translatableErrorMsg)})})}update(){const t=Wt.createConfirmationDialog(this.dialog,"actions.update.confirmation");t.componentInstance.operationAccepted.subscribe(()=>{const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+this.currentNodeKey+"?commands=update","_blank","noopener noreferrer"),t.close()})}terminal(){const t=window.location.protocol,e=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(t+"//"+e+"/pty/"+this.currentNodeKey,"_blank","noopener noreferrer")}runtimeLogs(){fc.openDialog(this.dialog)}back(){this.router.navigate(this.showingFullList?["nodes",this.currentNodeKey]:["nodes"])}}class CZ{constructor(){this.trafficData=new kZ}}class kZ{constructor(){this.totalSent=0,this.totalReceived=0,this.sentHistory=[],this.receivedHistory=[]}}class SZ{constructor(){this.lastEmitedData=new CZ,this.dataSubject=new Ir(null),this.whenUpdateWasScheduled=0,this.stopRequestedDate=-1}}class wu{constructor(t,e){this.storageService=t,this.nodeService=e,this.maxTrafficHistorySlots=10,this.expirationTime=6e4,this.nodesMap=new Map,this.storageService.getRefreshTimeObservable().subscribe(i=>{this.dataRefreshDelay=1e3*i,this.nodesMap.forEach(o=>{this.forceSpecificNodeRefresh(o.pk)})}),this.checkForExpired()}checkForExpired(){Ge(1).pipe(Di(5e3)).subscribe(()=>{try{this.nodesMap.forEach(t=>{this.finishIfExpired(t)})}catch{}this.checkForExpired()})}startRequestingData(t){let e=this.nodesMap.get(t);return e?e.stopRequestedDate=-1:(e=new SZ,e.pk=t,this.nodesMap.set(t,e),this.startDataSubscription(0,e)),e.dataSubject.asObservable()}stopRequestingSpecificNode(t){const e=this.nodesMap.get(t);e&&(e.stopRequestedDate=Date.now())}startDataSubscription(t,e){e.updateSubscription&&e.updateSubscription.unsubscribe(),e.updateSubscription=Ge(1).pipe(Di(t),hi(()=>{e.lastEmitedData.updating=!0,e.dataSubject.next(e.lastEmitedData)}),Di(120),Ne(()=>this.nodeService.getNode(e.pk))).subscribe(i=>{this.updateTrafficData(i.transports,e.lastEmitedData.trafficData,e.whenUpdateWasScheduled);let o=this.calculateRemainingTime(e.whenUpdateWasScheduled);o<1e3&&(e.whenUpdateWasScheduled=Date.now(),o=this.dataRefreshDelay),e.lastEmitedData={data:i,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1,trafficData:e.lastEmitedData.trafficData},e.dataSubject.next(e.lastEmitedData),this.startDataSubscription(o,e)},i=>{i=Kt(i),e.lastEmitedData={data:e.lastEmitedData.data,error:i,momentOfLastCorrectUpdate:e.lastEmitedData.momentOfLastCorrectUpdate,updating:!1,trafficData:e.lastEmitedData.trafficData},e.dataSubject.next(e.lastEmitedData),i.originalError&&400===i.originalError.status?(e.dataSubject.complete(),e.updateSubscription.unsubscribe(),this.nodesMap.delete(e.pk)):this.startDataSubscription(Rt.connectionRetryDelay,e)})}calculateRemainingTime(t){if(t<1)return 0;let e=this.dataRefreshDelay-(Date.now()-t);return e<0&&(e=0),e}updateTrafficData(t,e,i){if(e.totalSent=0,e.totalReceived=0,t&&t.length>0&&(e.totalSent=t.reduce((o,s)=>o+s.sent,0),e.totalReceived=t.reduce((o,s)=>o+s.recv,0)),0===e.sentHistory.length)for(let o=0;othis.maxTrafficHistorySlots&&(s=this.maxTrafficHistorySlots),0===s)e.sentHistory[e.sentHistory.length-1]=e.totalSent,e.receivedHistory[e.receivedHistory.length-1]=e.totalReceived;else for(let a=0;athis.maxTrafficHistorySlots&&(e.sentHistory.splice(0,e.sentHistory.length-this.maxTrafficHistorySlots),e.receivedHistory.splice(0,e.receivedHistory.length-this.maxTrafficHistorySlots))}}forceSpecificNodeRefresh(t){const e=this.nodesMap.get(t);e&&this.startDataSubscription(0,e)}finishIfExpired(t){t.stopRequestedDate>0&&Date.now()-t.stopRequestedDate>this.expirationTime&&(t.dataSubject.complete(),t.updateSubscription.unsubscribe(),this.nodesMap.delete(t.pk))}}function DZ(n,t){1&n&&xe(0,"app-loading-indicator")}function TZ(n,t){1&n&&(D(0,"div",6)(1,"div")(2,"mat-icon",7),E(3,"error"),x(),E(4),R(5,"translate"),x()()),2&n&&(c(2),M("inline",!0),c(2),ce(" ",B(5,2,"node.not-found")," "))}function LZ(n,t){if(1&n){const e=et();D(0,"div",2)(1,"div")(2,"app-top-bar",3),ye("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))}),x()(),V(3,DZ,1,0,"app-loading-indicator",4),V(4,TZ,6,4,"div",5),x()}if(2&n){const e=z();c(2),M("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("showUpdateButton",!1)("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),c(1),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound)}}function EZ(n,t){if(1&n&&xe(0,"app-node-info-content",15),2&n){const e=z(2);M("nodeInfo",e.node)("trafficData",e.trafficData)}}wu.\u0275fac=function(t){return new(t||wu)(we(ni),we(so))},wu.\u0275prov=Ye({token:wu,factory:wu.\u0275fac,providedIn:"root"});const IZ=function(n,t){return{"main-area":n,"full-size-main-area":t}},PZ=function(n){return{"d-none":n}};function OZ(n,t){if(1&n){const e=et();D(0,"div",8)(1,"div",9)(2,"app-top-bar",10),ye("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))})("refreshRequested",function(){return Pe(e),Oe(z().forceDataRefresh(!0))}),x()(),D(3,"div",9)(4,"div",11)(5,"div",12),xe(6,"router-outlet"),x()(),D(7,"div",13),V(8,EZ,1,2,"app-node-info-content",14),x()()()}if(2&n){const e=z();c(2),M("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),c(2),M("ngClass",cn(12,IZ,!e.showingInfo&&!e.showingFullList,e.showingInfo||e.showingFullList)),c(3),M("ngClass",Be(15,PZ,e.showingInfo||e.showingFullList)),c(1),M("ngIf",!e.showingInfo&&!e.showingFullList)}}class Je{constructor(t,e,i,o,s,a,l){this.storageService=t,this.singleNodeDataService=e,this.route=i,this.ngZone=o,this.snackbarService=s,this.injector=a,this.notFound=!1,this.titleParts=[],this.tabsData=[],this.selectedTabIndex=-1,this.showingInfo=!1,this.showingFullList=!1,this.initialRouteEventFired=!1,this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,Je.nodeSubject=new Ho(1),Je.trafficDataSubject=new Ho(1),Je.currentInstanceInternal=this,this.navigationsSubscription=l.events.subscribe(d=>{d.urlAfterRedirects&&(this.lastUrl=d.urlAfterRedirects,this.processRouteUpdate(),this.initialRouteEventFired=!0)})}static refreshCurrentDisplayedData(){Je.currentInstanceInternal&&Je.currentInstanceInternal.forceDataRefresh(!1)}static getCurrentNodeKey(){return Je.currentNodeKey}static get currentNode(){return Je.nodeSubject.asObservable()}static get currentTrafficData(){return Je.trafficDataSubject.asObservable()}ngOnInit(){this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=xf(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),this.initSubscription=Ge(0).pipe(Di(500)).subscribe(()=>{this.initialRouteEventFired||(this.lastUrl=window.location.href,this.processRouteUpdate())})}processRouteUpdate(){Je.currentNodeKey=this.route.snapshot.params.key,this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNodeKey(Je.currentNodeKey),this.updateTabBar(),this.navigationsSubscription.unsubscribe(),this.startGettingData()}updateTabBar(){if(this.lastUrl&&(this.lastUrl.includes("/info")||this.lastUrl.includes("/routing")||this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")))this.titleParts=["nodes.title","node.title"],this.tabsData=[{icon:"info",label:"node.tabs.info",onlyIfLessThanLg:!0,linkParts:Je.currentNodeKey?["/nodes",Je.currentNodeKey,"info"]:null},{icon:"shuffle",label:"node.tabs.routing",linkParts:Je.currentNodeKey?["/nodes",Je.currentNodeKey,"routing"]:null},{icon:"apps",label:"node.tabs.apps",linkParts:Je.currentNodeKey?["/nodes",Je.currentNodeKey,"apps"]:null}],this.selectedTabIndex=1,this.showingInfo=!1,this.lastUrl.includes("/info")&&(this.selectedTabIndex=0,this.showingInfo=!0),this.lastUrl.includes("/apps")&&(this.selectedTabIndex=2),this.showingFullList=!1,this.nodeActionsHelper=new UI(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(Je.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);else if(this.lastUrl&&(this.lastUrl.includes("/transports")||this.lastUrl.includes("/routes")||this.lastUrl.includes("/apps-list"))){this.showingFullList=!0,this.showingInfo=!1,this.nodeActionsHelper=new UI(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(Je.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);let t="transports";this.lastUrl.includes("/routes")?t="routes":this.lastUrl.includes("/apps-list")&&(t="apps.apps-list"),this.titleParts=["nodes.title","node.title",t+".title"],this.tabsData=[{icon:"view_headline",label:t+".list-title",linkParts:[]}],this.selectedTabIndex=0}else this.titleParts=[],this.tabsData=[]}performAction(t){this.nodeActionsHelper.performAction(t,Je.currentNodeKey)}forceDataRefresh(t=!1){t&&(this.lastUpdateRequestedManually=!0),this.singleNodeDataService.forceSpecificNodeRefresh(Je.currentNodeKey)}startGettingData(){this.ngZone.runOutsideAngular(()=>{this.dataSubscription=this.singleNodeDataService.startRequestingData(Je.currentNodeKey).subscribe(t=>{this.ngZone.run(()=>{if(this.updating=!t||t.updating,t&&!t.updating)if(t.data&&!t.error)this.node=t.data,this.trafficData=t.trafficData,Je.nodeSubject.next(this.node),Je.trafficDataSubject.next(this.trafficData),this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNode(this.node),this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=t.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-t.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1);else if(t.error){if(t.error.originalError&&400===t.error.originalError.status)return void(this.notFound=!0);this.errorsUpdating||this.snackbarService.showError(this.node?"node.error-load":"common.loading-error",null,!0,t.error),this.errorsUpdating=!0}})})})}ngOnDestroy(){this.singleNodeDataService.stopRequestingSpecificNode(Je.currentNodeKey),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.initSubscription.unsubscribe(),Je.currentInstanceInternal=void 0,Je.currentNodeKey=void 0,Je.nodeSubject.complete(),Je.nodeSubject=void 0,Je.trafficDataSubject.complete(),Je.trafficDataSubject=void 0,this.nodeActionsHelper.dispose()}}function AZ(n,t){if(1&n&&(D(0,"mat-option",10),E(1),R(2,"translate"),x()),2&n){const e=t.$implicit;Dn("value",e),c(1),_o(" ",e," ",B(2,3,"settings.seconds")," ")}}Je.\u0275fac=function(t){return new(t||Je)(F(ni),F(wu),F(yr),F(pt),F(on),F(_i),F(Qt))},Je.\u0275cmp=qe({type:Je,selectors:[["app-node"]],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","returnText","optionSelected"],[4,"ngIf"],["class","w-100 h-100 d-flex not-found-label",4,"ngIf"],[1,"w-100","h-100","d-flex","not-found-label"],[3,"inline"],[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","returnText","optionSelected","refreshRequested"],[3,"ngClass"],[1,"d-flex","flex-column","h-100"],[1,"right-bar",3,"ngClass"],[3,"nodeInfo","trafficData",4,"ngIf"],[3,"nodeInfo","trafficData"]],template:function(t,e){1&t&&(V(0,LZ,5,8,"div",0),V(1,OZ,9,17,"div",1)),2&t&&(M("ngIf",!e.node),c(1),M("ngIf",e.node))},styles:[".not-found-label[_ngcontent-%COMP%]{align-items:center;justify-content:center;font-size:1rem;position:relative}.not-found-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;font-size:22px;opacity:.5;margin-right:3px}.full-size-main-area[_ngcontent-%COMP%], .main-area[_ngcontent-%COMP%]{width:100%}@media (min-width: 992px){.main-area[_ngcontent-%COMP%]{width:73%;padding-right:20px;float:left}}.right-bar[_ngcontent-%COMP%]{width:27%;float:right;display:none}@media (min-width: 992px){.right-bar[_ngcontent-%COMP%]{display:block;width:27%;float:right}}"]});class rp{constructor(t,e,i){this.formBuilder=t,this.storageService=e,this.snackbarService=i,this.timesList=["3","5","10","15","30","60","90","150","300"]}ngOnInit(){this.form=this.formBuilder.group({refreshRate:[this.storageService.getRefreshTime().toString()]}),this.subscription=this.form.get("refreshRate").valueChanges.subscribe(t=>{this.storageService.setRefreshTime(t),this.snackbarService.showDone("settings.refresh-rate-confirmation")})}ngOnDestroy(){this.subscription.unsubscribe()}}rp.\u0275fac=function(t){return new(t||rp)(F(Cr),F(ni),F(on))},rp.\u0275cmp=qe({type:rp,selectors:[["app-refresh-rate"]],decls:14,vars:9,consts:[[1,"rounded-elevated-box"],[1,"box-internal-container","overflow"],[1,"white-form-help-icon-container"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","refreshRate"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon",3),R(4,"translate"),E(5," help "),x()(),D(6,"form",4)(7,"mat-form-field",5)(8,"div",6)(9,"label",7),E(10),R(11,"translate"),x(),D(12,"mat-select",8),V(13,AZ,3,5,"mat-option",9),x()()()()()()),2&t&&(c(3),M("inline",!0)("matTooltip",B(4,5,"settings.refresh-rate-help")),c(3),M("formGroup",e.form),c(4),oe(B(11,7,"settings.refresh-rate")),c(3),M("ngForOf",e.timesList))},dependencies:[bi,Bi,Ni,Yi,ii,Li,nr,yn,vi,ep,ru,xt],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}mat-form-field[_ngcontent-%COMP%] .mat-mdc-form-field-bottom-align{margin-bottom:0!important}"]});const FZ=function(n){return{number:n}};class hl{constructor(){this.numberOfElements=0,this.linkParts=[""],this.queryParams={}}}function RZ(n,t){1&n&&(D(0,"span",14),E(1),R(2,"translate"),D(3,"mat-icon",15),R(4,"translate"),E(5,"help"),x()()),2&n&&(c(1),ce(" ",B(2,3,"labels.title")," "),c(2),M("inline",!0)("matTooltip",B(4,5,"labels.info")))}function NZ(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function YZ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function BZ(n,t){if(1&n&&(D(0,"div",19)(1,"span"),E(2),R(3,"translate"),x(),V(4,NZ,3,3,"ng-container",20),V(5,YZ,2,1,"ng-container",20),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function HZ(n,t){if(1&n){const e=et();D(0,"div",16),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,BZ,6,5,"div",17),D(2,"div",18),E(3),R(4,"translate"),x()()}if(2&n){const e=z();c(1),M("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),oe(B(4,2,"filters.press-to-remove"))}}function VZ(n,t){if(1&n){const e=et();D(0,"mat-icon",21),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),E(2,"filter_list"),x()}2&n&&M("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function jZ(n,t){if(1&n&&(D(0,"mat-icon",22),E(1,"more_horiz"),x()),2&n){z();const e=ci(9);M("inline",!0)("matMenuTriggerFor",e)}}hl.\u0275fac=function(t){return new(t||hl)},hl.\u0275cmp=qe({type:hl,selectors:[["app-view-all-link"]],inputs:{numberOfElements:"numberOfElements",linkParts:"linkParts",queryParams:"queryParams"},decls:6,vars:9,consts:[[1,"main-container"],[3,"routerLink","queryParams"],[3,"inline"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"a",1),E(2),R(3,"translate"),D(4,"mat-icon",2),E(5,"chevron_right"),x()()()),2&t&&(c(1),M("routerLink",e.linkParts)("queryParams",e.queryParams),c(1),ce(" ",Ct(3,4,"view-all-link.label",Be(7,FZ,e.numberOfElements))," "),c(2),M("inline",!0))},dependencies:[Ja,yn,xt],styles:[".main-container[_ngcontent-%COMP%]{padding-top:20px;margin-bottom:4px;text-align:right;font-size:.875rem}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.main-container[_ngcontent-%COMP%]{margin:0;padding:16px}}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}"]});const iM=function(){return["/settings","labels"]};function zZ(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Un(4,iM))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function UZ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function WZ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function $Z(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function GZ(n,t){if(1&n){const e=et();D(0,"tr")(1,"td",38)(2,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(3,"td"),E(4),x(),D(5,"td"),E(6),x(),D(7,"td"),E(8),R(9,"translate"),x(),D(10,"td",29)(11,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).delete(s.id))}),R(12,"translate"),D(13,"mat-icon",36),E(14,"close"),x()()()()}if(2&n){const e=t.$implicit,i=z(2);c(2),M("checked",i.selections.get(e.id)),c(2),ce(" ",e.label," "),c(2),ce(" ",e.id," "),c(2),_o(" ",i.getLabelTypeIdentification(e)[0]," - ",B(9,7,i.getLabelTypeIdentification(e)[1])," "),c(3),M("matTooltip",B(12,9,"labels.delete")),c(2),M("inline",!0)}}function qZ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.label")))}function KZ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.inverted-order")))}function ZZ(n,t){if(1&n){const e=et();D(0,"tr")(1,"td")(2,"div",33)(3,"div",41)(4,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(5,"div",34)(6,"div",42)(7,"span",1),E(8),R(9,"translate"),x(),E(10),x(),D(11,"div",43)(12,"span",1),E(13),R(14,"translate"),x(),E(15),x(),D(16,"div",42)(17,"span",1),E(18),R(19,"translate"),x(),E(20),R(21,"translate"),x()(),xe(22,"div",44),D(23,"div",35)(24,"button",45),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(25,"translate"),D(26,"mat-icon"),E(27),x()()()()()()}if(2&n){const e=t.$implicit,i=z(2);c(4),M("checked",i.selections.get(e.id)),c(4),oe(B(9,10,"labels.label")),c(2),ce(": ",e.label," "),c(3),oe(B(14,12,"labels.id")),c(2),ce(": ",e.id," "),c(3),oe(B(19,14,"labels.type")),c(2),_o(": ",i.getLabelTypeIdentification(e)[0]," - ",B(21,16,i.getLabelTypeIdentification(e)[1])," "),c(4),M("matTooltip",B(25,18,"common.options")),c(3),oe("add")}}function XZ(n,t){if(1&n&&xe(0,"app-view-all-link",46),2&n){const e=z(2);M("numberOfElements",e.filteredLabels.length)("linkParts",Un(3,iM))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const QZ=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},JZ=function(n){return{"d-lg-none d-xl-table":n}},eX=function(n){return{"d-lg-table d-xl-none":n}};function tX(n,t){if(1&n){const e=et();D(0,"div",24)(1,"div",25)(2,"table",26)(3,"tr"),xe(4,"th"),D(5,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.labelSortData))}),E(6),R(7,"translate"),V(8,UZ,2,2,"mat-icon",28),x(),D(9,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.idSortData))}),E(10),R(11,"translate"),V(12,WZ,2,2,"mat-icon",28),x(),D(13,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),E(14),R(15,"translate"),V(16,$Z,2,2,"mat-icon",28),x(),xe(17,"th",29),x(),V(18,GZ,15,11,"tr",30),x(),D(19,"table",31)(20,"tr",32),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(21,"td")(22,"div",33)(23,"div",34)(24,"div",1),E(25),R(26,"translate"),x(),D(27,"div"),E(28),R(29,"translate"),V(30,qZ,3,3,"ng-container",20),V(31,KZ,3,3,"ng-container",20),x()(),D(32,"div",35)(33,"mat-icon",36),E(34,"keyboard_arrow_down"),x()()()()(),V(35,ZZ,28,20,"tr",30),x(),V(36,XZ,1,4,"app-view-all-link",37),x()()}if(2&n){const e=z();c(1),M("ngClass",cn(27,QZ,e.showShortList_,!e.showShortList_)),c(1),M("ngClass",Be(30,JZ,e.showShortList_)),c(4),ce(" ",B(7,17,"labels.label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.labelSortData),c(2),ce(" ",B(11,19,"labels.id")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.idSortData),c(2),ce(" ",B(15,21,"labels.type")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),M("ngForOf",e.dataSource),c(1),M("ngClass",Be(32,eX,e.showShortList_)),c(6),oe(B(26,23,"tables.sorting-title")),c(3),ce("",B(29,25,e.dataSorter.currentSortingColumn.label)," "),c(2),M("ngIf",e.dataSorter.currentlySortingByLabel),c(1),M("ngIf",e.dataSorter.sortingInReverseOrder),c(2),M("inline",!0),c(2),M("ngForOf",e.dataSource),c(1),M("ngIf",e.showShortList_&&e.numberOfPages>1)}}function nX(n,t){1&n&&(D(0,"span",50),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"labels.empty")))}function iX(n,t){1&n&&(D(0,"span",50),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"labels.empty-with-filter")))}function rX(n,t){if(1&n&&(D(0,"div",24)(1,"div",47)(2,"mat-icon",48),E(3,"warning"),x(),V(4,nX,3,3,"span",49),V(5,iX,3,3,"span",49),x()()),2&n){const e=z();c(2),M("inline",!0),c(2),M("ngIf",0===e.allLabels.length),c(1),M("ngIf",0!==e.allLabels.length)}}function oX(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Un(4,iM))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const sX=function(n){return{"paginator-icons-fixer":n}};class xu{constructor(t,e,i,o,s,a){this.dialog=t,this.route=e,this.router=i,this.snackbarService=o,this.translateService=s,this.storageService=a,this.listId="ll",this.labelSortData=new Yn(["label"],"labels.label",Jt.Text),this.idSortData=new Yn(["id"],"labels.id",Jt.Text),this.typeSortData=new Yn(["identifiedElementType_sort"],"labels.type",Jt.Text),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"labels.filter-dialog.label",keyNameInElementsArray:"label",type:Xn.TextInput,maxlength:100},{filterName:"labels.filter-dialog.id",keyNameInElementsArray:"id",type:Xn.TextInput,maxlength:66},{filterName:"labels.filter-dialog.type",keyNameInElementsArray:"identifiedElementType",type:Xn.Select,printableLabelsForValues:[{value:"",label:"labels.filter-dialog.type-options.any"},{value:Mr.Node,label:"labels.filter-dialog.type-options.visor"},{value:Mr.DmsgServer,label:"labels.filter-dialog.type-options.dmsg-server"},{value:Mr.Transport,label:"labels.filter-dialog.type-options.transport"}]}],this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,[this.labelSortData,this.idSortData,this.typeSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new gu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(d=>{this.filteredLabels=d,this.dataSorter.setData(this.filteredLabels)}),this.loadData(),this.navigationsSubscription=this.route.paramMap.subscribe(d=>{if(d.has("page")){let w=Number.parseInt(d.get("page"),10);(isNaN(w)||w<1)&&(w=1),this.currentPageInUrl=w,this.recalculateElementsToShow()}})}set showShortList(t){this.showShortList_=t,this.dataSorter.setData(this.filteredLabels)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}loadData(){this.allLabels=this.storageService.getSavedLabels(),this.allLabels.forEach(t=>{t.identifiedElementType_sort=this.getLabelTypeIdentification(t)[0]}),this.dataFilterer.setData(this.allLabels)}getLabelTypeIdentification(t){return t.identifiedElementType===Mr.Node?["1","labels.filter-dialog.type-options.visor"]:t.identifiedElementType===Mr.DmsgServer?["2","labels.filter-dialog.type-options.dmsg-server"]:t.identifiedElementType===Mr.Transport?["3","labels.filter-dialog.type-options.transport"]:void 0}changeSelection(t){this.selections.get(t.id)?this.selections.set(t.id,!1):this.selections.set(t.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let t=!1;return this.selections.forEach(e=>{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}deleteSelected(){const t=Wt.createConfirmationDialog(this.dialog,"labels.delete-selected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.close(),this.selections.forEach((e,i)=>{e&&this.storageService.saveLabel(i,"",null)}),this.snackbarService.showDone("labels.deleted"),this.loadData()})}showOptionsDialog(t){Hi.openDialog(this.dialog,[{icon:"close",label:"labels.delete"}],"common.options").afterClosed().subscribe(i=>{1===i&&this.delete(t.id)})}delete(t){const e=Wt.createConfirmationDialog(this.dialog,"labels.delete-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.storageService.saveLabel(t,"",null),this.snackbarService.showDone("labels.deleted"),this.loadData()})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredLabels){const t=this.showShortList_?Rt.maxShortListElements:Rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredLabels.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.labelsToShow=this.filteredLabels.slice(e,e+t);const o=new Map;this.labelsToShow.forEach(a=>{o.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{o.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.labelsToShow=null,this.selections=new Map;this.dataSource=this.labelsToShow}}function aX(n,t){1&n&&xe(0,"app-password")}function lX(n,t){1&n&&(D(0,"div",8),xe(1,"mat-spinner",9),E(2),R(3,"translate"),x()),2&n&&(c(1),M("diameter",11),c(1),ce(" ",B(3,2,"settings.checking-auth")," "))}xu.\u0275fac=function(t){return new(t||xu)(F(Ln),F(yr),F(Qt),F(on),F(oo),F(ni))},xu.\u0275cmp=qe({type:xu,selectors:[["app-label-list"]],inputs:{showShortList:"showShortList"},decls:23,vars:22,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"inline","matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"inline","matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline",4,"ngIf"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),V(2,RZ,6,7,"span",2),V(3,HZ,5,4,"div",3),x(),D(4,"div",4)(5,"div",5),V(6,VZ,3,4,"mat-icon",6),V(7,jZ,2,2,"mat-icon",7),D(8,"mat-menu",8,9)(10,"div",10),ye("click",function(){return e.changeAllSelections(!0)}),E(11),R(12,"translate"),x(),D(13,"div",10),ye("click",function(){return e.changeAllSelections(!1)}),E(14),R(15,"translate"),x(),D(16,"div",11),ye("click",function(){return e.deleteSelected()}),E(17),R(18,"translate"),x()()(),V(19,zZ,1,5,"app-paginator",12),x()(),V(20,tX,37,34,"div",13),V(21,rX,6,3,"div",13),V(22,oX,1,5,"app-paginator",12)),2&t&&(M("ngClass",Be(20,sX,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),c(2),M("ngIf",e.showShortList_),c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),M("ngIf",e.allLabels&&e.allLabels.length>0),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("overlapTrigger",!1),c(3),ce(" ",B(12,14,"selection.select-all")," "),c(3),ce(" ",B(15,16,"selection.unselect-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(18,18,"selection.delete-all")," "),c(2),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("ngIf",!e.dataSource||0===e.dataSource.length),c(1),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[Rn,bi,It,$r,rl,yn,vi,vu,_a,yu,ma,hl,Fs,xt],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]});const cX=function(){return["start.title"]};class op{constructor(t,e,i,o){this.authService=t,this.router=e,this.snackbarService=i,this.dialog=o,this.tabsData=[],this.options=[],this.waitBeforeShowingLoading=!0,this.authChecked=!1,this.authActive=!1,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"language",label:"nodes.dmsg-title",linkParts:["/nodes","dmsg"]},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.updateOptionsMenu()}ngOnInit(){setTimeout(()=>{this.waitBeforeShowingLoading=!1},500),this.checkAuth(0)}checkAuth(t){this.authSubscription=Ge(1).pipe(Di(t),Ne(()=>this.authService.checkLogin())).subscribe(e=>{this.authChecked=!0,this.authActive=e===Is.Logged,this.updateOptionsMenu()},()=>{this.checkAuth(15e3)})}ngOnDestroy(){this.authSubscription.unsubscribe()}updateOptionsMenu(){this.options=[],this.authActive&&(this.options=[{name:"common.logout",actionName:"logout",icon:"power_settings_new"}])}performAction(t){"logout"===t&&this.logout()}logout(){const t=Wt.createConfirmationDialog(this.dialog,"common.logout-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}}op.\u0275fac=function(t){return new(t||op)(F(Ps),F(Qt),F(on),F(Ln))},op.\u0275cmp=qe({type:op,selectors:[["app-settings"]],decls:8,vars:9,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","optionSelected"],[1,"content","col-12","mt-4.5"],[1,"d-block","mb-4"],[4,"ngIf"],["class","white-theme checking-container",4,"ngIf"],[3,"showShortList"],[1,"white-theme","checking-container"],[3,"diameter"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"app-top-bar",2),ye("optionSelected",function(o){return e.performAction(o)}),x()(),D(3,"div",3),xe(4,"app-refresh-rate",4),V(5,aX,1,0,"app-password",5),V(6,lX,4,4,"div",6),xe(7,"app-label-list",7),x()()),2&t&&(c(2),M("titleParts",Un(8,cX))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("optionsData",e.options),c(3),M("ngIf",e.authChecked&&e.authActive),c(1),M("ngIf",!e.authChecked&&!e.waitBeforeShowingLoading),c(1),M("showShortList",!0))},dependencies:[It,oc,fu,rp,cs,xu,xt],styles:[".checking-container[_ngcontent-%COMP%]{font-size:10px;opacity:.5}.checking-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block}.show-link[_ngcontent-%COMP%]{cursor:pointer;font-size:.8rem}"]});class fl{constructor(t){this.apiService=t}create(t,e,i){const o={remote_pk:e};return i&&(o.transport_type=i),this.apiService.post(`visors/${t}/transports`,o)}delete(t,e){return this.apiService.delete(`visors/${t}/transports/${e}`)}savePersistentTransportsData(t,e){return this.apiService.put(`visors/${t}/persistent-transports`,e)}getPersistentTransports(t){return this.apiService.get(`visors/${t}/persistent-transports`)}types(t){return this.apiService.get(`visors/${t}/transport-types`)}changeAutoconnectSetting(t,e){const i={};return i.public_autoconnect=e,this.apiService.put(`visors/${t}/public-autoconnect`,i)}}fl.\u0275fac=function(t){return new(t||fl)(we(wo))},fl.\u0275prov=Ye({token:fl,factory:fl.\u0275fac,providedIn:"root"});const dX=["button"],uX=["firstInput"];function hX(n,t){1&n&&xe(0,"app-loading-indicator",5),2&n&&M("showWhite",!1)}function fX(n,t){1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),oe(B(3,1,"transports.dialog.errors.remote-key-length-error")))}function pX(n,t){1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"transports.dialog.errors.remote-key-chars-error")))}function mX(n,t){if(1&n&&(D(0,"mat-option",19),E(1),x()),2&n){const e=t.$implicit;M("value",e),c(1),oe(e)}}const Ng=function(n){return{"element-disabled":n}};function _X(n,t){if(1&n){const e=et();D(0,"form",6)(1,"mat-form-field",7)(2,"div",8)(3,"label",9),E(4),R(5,"translate"),x(),xe(6,"input",10,11),x(),D(8,"mat-error"),V(9,fX,4,3,"ng-container",12),x(),V(10,pX,3,3,"ng-template",null,13,ws),x(),D(12,"mat-form-field",7)(13,"div",8)(14,"label",9),E(15),R(16,"translate"),x(),xe(17,"input",14),x()(),D(18,"mat-form-field",7)(19,"div",8)(20,"label",9),E(21),R(22,"translate"),x(),D(23,"mat-select",15),V(24,mX,2,2,"mat-option",16),x()(),D(25,"mat-error")(26,"span"),E(27),R(28,"translate"),x()()(),D(29,"mat-checkbox",17),ye("change",function(o){return Pe(e),Oe(z().setMakePersistent(o))}),E(30),R(31,"translate"),D(32,"mat-icon",18),R(33,"translate"),E(34,"help"),x()()()}if(2&n){const e=ci(11),i=z();M("formGroup",i.form),c(1),M("ngClass",Be(28,Ng,i.disableDismiss)),c(3),oe(B(5,16,"transports.dialog.remote-key")),c(5),M("ngIf",!i.form.get("remoteKey").hasError("pattern"))("ngIfElse",e),c(3),M("ngClass",Be(30,Ng,i.disableDismiss)),c(3),oe(B(16,18,"transports.dialog.label")),c(3),M("ngClass",Be(32,Ng,i.disableDismiss)),c(3),oe(B(22,20,"transports.dialog.transport-type")),c(3),M("ngForOf",i.types),c(3),oe(B(28,22,"transports.dialog.errors.transport-type-error")),c(2),M("checked",i.makePersistent)("ngClass",Be(34,Ng,i.disableDismiss)),c(1),ce(" ",B(31,24,"transports.dialog.make-persistent")," "),c(2),M("inline",!0)("matTooltip",B(33,26,"transports.dialog.persistent-tooltip"))}}class pc{constructor(t,e,i,o,s,a){this.transportService=t,this.formBuilder=e,this.dialogRef=i,this.snackbarService=o,this.storageService=s,this.nodeService=a,this.makePersistent=!1,this.shouldShowError=!0}static openDialog(t){const e=new Tn;return e.autoFocus=!1,e.width=Rt.mediumModalWidth,t.open(pc,e)}ngOnInit(){this.form=this.formBuilder.group({remoteKey:["",Vt.compose([Vt.required,Vt.minLength(66),Vt.maxLength(66),Vt.pattern("^[0-9a-fA-F]+$")])],label:[""],type:["",Vt.required]}),this.loadData(0)}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setMakePersistent(t){this.makePersistent=!!t.checked}create(){if(!this.form.valid||this.button.disabled)return;this.button.showLoading();const t=this.form.get("remoteKey").value,e=this.form.get("type").value,i=this.form.get("label").value;if(this.makePersistent){const o=this.transportService.getPersistentTransports(Je.getCurrentNodeKey());this.operationSubscription=o.subscribe(s=>{const a=s||[];let l=!1;a.forEach(d=>{d.pk.toUpperCase()===t.toUpperCase()&&d.type.toUpperCase()===e.toUpperCase()&&(l=!0)}),l?this.createTransport(t,e,i,!0):this.createPersistent(a,t,e,i)},s=>{this.onError(s)})}else this.createTransport(t,e,i,!1)}createPersistent(t,e,i,o){t.push({pk:e,type:i}),this.operationSubscription=this.transportService.savePersistentTransportsData(Je.getCurrentNodeKey(),t).subscribe(()=>{this.createTransport(e,i,o,!0)},s=>{this.onError(s)})}createTransport(t,e,i,o){this.operationSubscription=this.transportService.create(Je.getCurrentNodeKey(),t,e).subscribe(s=>{let a=!1;i&&(s&&s.id?this.storageService.saveLabel(s.id,i,Mr.Transport):a=!0),Je.refreshCurrentDisplayedData(),this.dialogRef.close(),a?this.snackbarService.showWarning("transports.dialog.success-without-label"):this.snackbarService.showDone("transports.dialog.success")},s=>{o?(Je.refreshCurrentDisplayedData(),this.dialogRef.close(),this.snackbarService.showWarning("transports.dialog.only-persistent-created")):this.onError(s)})}onError(t){this.button.showError(),t=Kt(t),this.snackbarService.showError(t)}loadData(t){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=Ge(1).pipe(Di(t),Ne(()=>this.transportService.types(Je.getCurrentNodeKey()))).subscribe(e=>{e.sort((o,s)=>"stcp"===o.toLowerCase()?1:"stcp"===s.toLowerCase()?-1:o.localeCompare(s));let i=e.findIndex(o=>"dmsg"===o.toLowerCase());i=-1!==i?i:0,this.types=e,this.form.get("type").setValue(e[i]),this.snackbarService.closeCurrentIfTemporaryError(),setTimeout(()=>this.firstInput.nativeElement.focus())},e=>{e=Kt(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(Rt.connectionRetryDelay)})}}function gX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),D(3,"mat-icon",6),R(4,"translate"),E(5,"help"),x(),We()),2&n&&(c(1),ce(" ",B(2,3,"common.yes")," "),c(2),M("inline",!0)("matTooltip",B(4,5,"transports.persistent-transport-tooltip")))}function bX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"common.no")))}pc.\u0275fac=function(t){return new(t||pc)(F(fl),F(Cr),F(Nn),F(on),F(ni),F(so))},pc.\u0275cmp=qe({type:pc,selectors:[["app-create-transport"]],viewQuery:function(t,e){if(1&t&&(ft(dX,5),ft(uX,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:8,vars:11,consts:[[3,"headline","dialog","disableDismiss"],[3,"showWhite",4,"ngIf"],[3,"formGroup",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],[3,"showWhite"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","remoteKey","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],["formControlName","label","maxlength","66","matInput",""],["formControlName","type"],[3,"value",4,"ngFor","ngForOf"],["color","primary",3,"checked","ngClass","change"],[1,"help-icon",3,"inline","matTooltip"],[3,"value"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),V(2,hX,1,1,"app-loading-indicator",1),V(3,_X,35,36,"form",2),D(4,"app-button",3,4),ye("action",function(){return e.create()}),E(6),R(7,"translate"),x()()),2&t&&(M("headline",B(1,7,"transports.create"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(2),M("ngIf",!e.types),c(1),M("ngIf",e.types),c(1),M("disabled",!e.form.valid),c(2),ce(" ",B(7,9,"transports.create")," "))},dependencies:[Rn,bi,It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,yn,vi,ep,ru,ma,ri,En,Gr,xt],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]});class mc{constructor(t,e){this.data=t,this.dialogRef=e}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.largeModalWidth,t.open(mc,i)}}function vX(n,t){1&n&&(D(0,"span",15),E(1),R(2,"translate"),D(3,"mat-icon",16),R(4,"translate"),E(5,"help"),x()()),2&n&&(c(1),ce(" ",B(2,3,"transports.title")," "),c(2),M("inline",!0)("matTooltip",B(4,5,"transports.info")))}function yX(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function MX(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function wX(n,t){if(1&n&&(D(0,"div",20)(1,"span"),E(2),R(3,"translate"),x(),V(4,yX,3,3,"ng-container",21),V(5,MX,2,1,"ng-container",21),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function xX(n,t){if(1&n){const e=et();D(0,"div",17),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,wX,6,5,"div",18),D(2,"div",19),E(3),R(4,"translate"),x()()}if(2&n){const e=z();c(1),M("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),oe(B(4,2,"filters.press-to-remove"))}}function CX(n,t){if(1&n){const e=et();D(0,"mat-icon",22),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),E(1,"filter_list"),x()}2&n&&M("inline",!0)}function kX(n,t){if(1&n&&(D(0,"mat-icon",23),E(1,"more_horiz"),x()),2&n){z();const e=ci(11);M("inline",!0)("matMenuTriggerFor",e)}}mc.\u0275fac=function(t){return new(t||mc)(F(Ti),F(Nn))},mc.\u0275cmp=qe({type:mc,selectors:[["app-transport-details"]],decls:51,vars:45,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[4,"ngIf"],[1,"title"],[1,"help-icon","d-none","d-md-inline",3,"inline","matTooltip"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div")(3,"div",1)(4,"mat-icon",2),E(5,"list"),x(),E(6),R(7,"translate"),x(),D(8,"div",3)(9,"span"),E(10),R(11,"translate"),x(),V(12,gX,6,7,"ng-container",4),V(13,bX,3,3,"ng-container",4),x(),D(14,"div",3)(15,"span"),E(16),R(17,"translate"),x(),E(18),x(),D(19,"div",3)(20,"span"),E(21),R(22,"translate"),x(),E(23),x(),D(24,"div",3)(25,"span"),E(26),R(27,"translate"),x(),E(28),x(),D(29,"div",3)(30,"span"),E(31),R(32,"translate"),x(),E(33),x(),D(34,"div",5)(35,"mat-icon",2),E(36,"import_export"),x(),E(37),R(38,"translate"),x(),D(39,"div",3)(40,"span"),E(41),R(42,"translate"),x(),E(43),R(44,"autoScale"),x(),D(45,"div",3)(46,"span"),E(47),R(48,"translate"),x(),E(49),R(50,"autoScale"),x()()()),2&t&&(M("headline",B(1,21,"transports.details.title"))("dialog",e.dialogRef),c(4),M("inline",!0),c(2),ce("",B(7,23,"transports.details.basic.title")," "),c(4),oe(B(11,25,"transports.details.basic.persistent")),c(2),M("ngIf",e.data.isPersistent),c(1),M("ngIf",!e.data.isPersistent),c(3),oe(B(17,27,"transports.details.basic.id")),c(2),ce(" ",e.data.id," "),c(3),oe(B(22,29,"transports.details.basic.local-pk")),c(2),ce(" ",e.data.localPk," "),c(3),oe(B(27,31,"transports.details.basic.remote-pk")),c(2),ce(" ",e.data.remotePk," "),c(3),oe(B(32,33,"transports.details.basic.type")),c(2),ce(" ",e.data.type," "),c(2),M("inline",!0),c(2),ce("",B(38,35,"transports.details.data.title")," "),c(4),oe(B(42,37,"transports.details.data.uploaded")),c(2),ce(" ",B(44,39,e.data.sent)," "),c(4),oe(B(48,41,"transports.details.data.downloaded")),c(2),ce(" ",B(50,43,e.data.recv)," "))},dependencies:[It,yn,vi,En,xt,rr],styles:[".help-icon[_ngcontent-%COMP%]{opacity:.5;font-size:14px;cursor:default}"]});const rM=function(n){return["/nodes",n,"transports"]};function SX(n,t){if(1&n&&xe(0,"app-paginator",24),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Be(4,rM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function DX(n,t){if(1&n&&(D(0,"mat-icon",39),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function TX(n,t){1&n&&(Ue(0),E(1,"*"),We())}function LX(n,t){if(1&n&&(Ue(0),D(1,"mat-icon",39),E(2),x(),V(3,TX,2,0,"ng-container",21),We()),2&n){const e=z(2);c(1),M("inline",!0),c(1),oe(e.dataSorter.sortingArrow),c(1),M("ngIf",e.dataSorter.currentlySortingByLabel)}}function EX(n,t){1&n&&(Ue(0),E(1,"*"),We())}function IX(n,t){if(1&n&&(Ue(0),D(1,"mat-icon",39),E(2),x(),V(3,EX,2,0,"ng-container",21),We()),2&n){const e=z(2);c(1),M("inline",!0),c(1),oe(e.dataSorter.sortingArrow),c(1),M("ngIf",e.dataSorter.currentlySortingByLabel)}}function PX(n,t){if(1&n&&(D(0,"mat-icon",39),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function OX(n,t){if(1&n&&(D(0,"mat-icon",39),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function AX(n,t){if(1&n&&(D(0,"mat-icon",39),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function FX(n,t){if(1&n){const e=et();D(0,"button",48),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).changeIfPersistent([o],!1))}),R(1,"translate"),D(2,"mat-icon",49),E(3,"star"),x()()}2&n&&(M("matTooltip",B(1,2,"transports.persistent-transport-button-tooltip")),c(2),M("inline",!0))}function RX(n,t){if(1&n){const e=et();D(0,"button",48),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).changeIfPersistent([o],!0))}),R(1,"translate"),D(2,"mat-icon",50),E(3,"star_outline"),x()()}2&n&&(M("matTooltip",B(1,2,"transports.non-persistent-transport-button-tooltip")),c(2),M("inline",!0))}function NX(n,t){1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"transports.offline")))}function YX(n,t){if(1&n){const e=et();D(0,"td")(1,"app-labeled-element-text",51),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x(),V(2,NX,3,3,"span",21),x()}if(2&n){const e=z().$implicit,i=z(2);c(1),Dn("id",e.id),M("short",!0)("elementType",i.labeledElementTypes.Transport),c(1),M("ngIf",e.notFound)}}function BX(n,t){1&n&&(D(0,"td"),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"transports.offline")," "))}function HX(n,t){if(1&n&&(D(0,"td"),E(1),R(2,"autoScale"),x()),2&n){const e=z().$implicit;c(1),ce(" ",B(2,1,e.sent)," ")}}function VX(n,t){if(1&n&&(D(0,"td"),E(1),R(2,"autoScale"),x()),2&n){const e=z().$implicit;c(1),ce(" ",B(2,1,e.recv)," ")}}function jX(n,t){1&n&&(D(0,"td"),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"transports.offline")," "))}function zX(n,t){1&n&&(D(0,"td"),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"transports.offline")," "))}function UX(n,t){if(1&n){const e=et();D(0,"button",52),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).details(o))}),R(1,"translate"),D(2,"mat-icon",39),E(3,"visibility"),x()()}2&n&&(M("matTooltip",B(1,2,"transports.details.title")),c(2),M("inline",!0))}function WX(n,t){if(1&n){const e=et();D(0,"button",52),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).delete(o))}),R(1,"translate"),D(2,"mat-icon",39),E(3,"close"),x()()}2&n&&(M("matTooltip",B(1,2,"transports.delete")),c(2),M("inline",!0))}const WI=function(n){return{offline:n}};function $X(n,t){if(1&n){const e=et();D(0,"tr",42)(1,"td",43)(2,"mat-checkbox",44),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(3,"td"),V(4,FX,4,4,"button",45),V(5,RX,4,4,"button",45),x(),V(6,YX,3,4,"td",21),V(7,BX,3,3,"td",21),D(8,"td")(9,"app-labeled-element-text",46),ye("labelEdited",function(){return Pe(e),Oe(z(2).refreshData())}),x()(),D(10,"td"),E(11),x(),V(12,HX,3,3,"td",21),V(13,VX,3,3,"td",21),V(14,jX,3,3,"td",21),V(15,zX,3,3,"td",21),D(16,"td",32),V(17,UX,4,4,"button",47),V(18,WX,4,4,"button",47),x()()}if(2&n){const e=t.$implicit,i=z(2);M("ngClass",Be(15,WI,e.notFound)),c(2),M("checked",i.selections.get(e.id)),c(2),M("ngIf",e.isPersistent),c(1),M("ngIf",!e.isPersistent),c(1),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound),c(2),Dn("id",e.remotePk),M("short",!0),c(2),ce(" ",e.type," "),c(1),M("ngIf",!e.notFound),c(1),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound),c(1),M("ngIf",e.notFound),c(2),M("ngIf",!e.notFound),c(1),M("ngIf",!e.notFound)}}function GX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.label")))}function qX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.inverted-order")))}function KX(n,t){1&n&&(D(0,"div",59)(1,"div",59)(2,"mat-icon",62),E(3,"star"),x(),E(4,"\xa0 "),D(5,"span",63),E(6),R(7,"translate"),x()()()),2&n&&(c(2),M("inline",!0),c(4),oe(B(7,2,"transports.persistent")))}function ZX(n,t){if(1&n){const e=et();D(0,"app-labeled-element-text",64),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()}if(2&n){const e=z().$implicit,i=z(2);Dn("id",e.id),M("elementType",i.labeledElementTypes.Transport)}}function XX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"transports.offline")))}function QX(n,t){if(1&n&&(Ue(0),E(1),R(2,"autoScale"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.sent))}}function JX(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"transports.offline")))}function eQ(n,t){if(1&n&&(Ue(0),E(1),R(2,"autoScale"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.recv))}}function tQ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"transports.offline")))}function nQ(n,t){if(1&n){const e=et();D(0,"tr")(1,"td")(2,"div",53)(3,"div",54)(4,"mat-checkbox",44),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(5,"div",37),V(6,KX,8,4,"div",55),D(7,"div",56)(8,"span",1),E(9),R(10,"translate"),x(),E(11,": "),V(12,ZX,1,2,"app-labeled-element-text",57),V(13,XX,3,3,"ng-container",21),x(),D(14,"div",56)(15,"span",1),E(16),R(17,"translate"),x(),E(18,": "),D(19,"app-labeled-element-text",58),ye("labelEdited",function(){return Pe(e),Oe(z(2).refreshData())}),x()(),D(20,"div",59)(21,"span",1),E(22),R(23,"translate"),x(),E(24),x(),D(25,"div",59)(26,"span",1),E(27),R(28,"translate"),x(),E(29,": "),V(30,QX,3,3,"ng-container",21),V(31,JX,3,3,"ng-container",21),x(),D(32,"div",59)(33,"span",1),E(34),R(35,"translate"),x(),E(36,": "),V(37,eQ,3,3,"ng-container",21),V(38,tQ,3,3,"ng-container",21),x()(),xe(39,"div",60),D(40,"div",38)(41,"button",61),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(42,"translate"),D(43,"mat-icon"),E(44),x()()()()()()}if(2&n){const e=t.$implicit,i=z(2);c(2),M("ngClass",Be(30,WI,e.notFound)),c(2),M("checked",i.selections.get(e.id)),c(2),M("ngIf",e.isPersistent),c(3),oe(B(10,18,"transports.id")),c(3),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound),c(3),oe(B(17,20,"transports.remote-node")),c(3),Dn("id",e.remotePk),c(3),oe(B(23,22,"transports.type")),c(2),ce(": ",e.type," "),c(3),oe(B(28,24,"common.uploaded")),c(3),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound),c(3),oe(B(35,26,"common.downloaded")),c(3),M("ngIf",!e.notFound),c(1),M("ngIf",e.notFound),c(3),M("matTooltip",B(42,28,"common.options")),c(3),oe("add")}}function iQ(n,t){if(1&n&&xe(0,"app-view-all-link",65),2&n){const e=z(2);M("numberOfElements",e.filteredTransports.length)("linkParts",Be(3,rM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const rQ=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},oQ=function(n){return{"d-lg-none d-xl-table":n}},sQ=function(n){return{"d-lg-table d-xl-none":n}};function aQ(n,t){if(1&n){const e=et();D(0,"div",25)(1,"div",26)(2,"table",27)(3,"tr"),xe(4,"th"),D(5,"th",28),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.persistentSortData))}),R(6,"translate"),D(7,"mat-icon",29),E(8,"star_outline"),x(),V(9,DX,2,2,"mat-icon",30),x(),D(10,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.idSortData))}),E(11),R(12,"translate"),V(13,LX,4,3,"ng-container",21),x(),D(14,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.remotePkSortData))}),E(15),R(16,"translate"),V(17,IX,4,3,"ng-container",21),x(),D(18,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),E(19),R(20,"translate"),V(21,PX,2,2,"mat-icon",30),x(),D(22,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.uploadedSortData))}),E(23),R(24,"translate"),V(25,OX,2,2,"mat-icon",30),x(),D(26,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.downloadedSortData))}),E(27),R(28,"translate"),V(29,AX,2,2,"mat-icon",30),x(),xe(30,"th",32),x(),V(31,$X,19,17,"tr",33),x(),D(32,"table",34)(33,"tr",35),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(34,"td")(35,"div",36)(36,"div",37)(37,"div",1),E(38),R(39,"translate"),x(),D(40,"div"),E(41),R(42,"translate"),V(43,GX,3,3,"ng-container",21),V(44,qX,3,3,"ng-container",21),x()(),D(45,"div",38)(46,"mat-icon",39),E(47,"keyboard_arrow_down"),x()()()()(),V(48,nQ,45,32,"tr",40),x(),V(49,iQ,1,5,"app-view-all-link",41),x()()}if(2&n){const e=z();c(1),M("ngClass",cn(39,rQ,e.showShortList_,!e.showShortList_)),c(1),M("ngClass",Be(42,oQ,e.showShortList_)),c(3),M("matTooltip",B(6,23,"transports.persistent-tooltip")),c(4),M("ngIf",e.dataSorter.currentSortingColumn===e.persistentSortData),c(2),ce(" ",B(12,25,"transports.id")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.idSortData),c(2),ce(" ",B(16,27,"transports.remote-node")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.remotePkSortData),c(2),ce(" ",B(20,29,"transports.type")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),ce(" ",B(24,31,"common.uploaded")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.uploadedSortData),c(2),ce(" ",B(28,33,"common.downloaded")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.downloadedSortData),c(2),M("ngForOf",e.dataSource),c(1),M("ngClass",Be(44,sQ,e.showShortList_)),c(6),oe(B(39,35,"tables.sorting-title")),c(3),ce("",B(42,37,e.dataSorter.currentSortingColumn.label)," "),c(2),M("ngIf",e.dataSorter.currentlySortingByLabel),c(1),M("ngIf",e.dataSorter.sortingInReverseOrder),c(2),M("inline",!0),c(2),M("ngForOf",e.dataSource),c(1),M("ngIf",e.showShortList_&&e.numberOfPages>1)}}function lQ(n,t){1&n&&(D(0,"span",69),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"transports.empty")))}function cQ(n,t){1&n&&(D(0,"span",69),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"transports.empty-with-filter")))}function dQ(n,t){if(1&n&&(D(0,"div",25)(1,"div",66)(2,"mat-icon",67),E(3,"warning"),x(),V(4,lQ,3,3,"span",68),V(5,cQ,3,3,"span",68),x()()),2&n){const e=z();c(2),M("inline",!0),c(2),M("ngIf",0===e.allTransports.length),c(1),M("ngIf",0!==e.allTransports.length)}}function uQ(n,t){if(1&n&&xe(0,"app-paginator",24),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Be(4,rM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const hQ=function(n){return{"paginator-icons-fixer":n}};class Cu{constructor(t,e,i,o,s,a,l,d){this.dialog=t,this.transportService=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.nodeService=d,this.listId="tr",this.persistentSortData=new Yn(["isPersistent"],"transports.persistent",Jt.Boolean),this.idSortData=new Yn(["id"],"transports.id",Jt.Text,["id_label"]),this.remotePkSortData=new Yn(["remotePk"],"transports.remote-node",Jt.Text,["remote_pk_label"]),this.typeSortData=new Yn(["type"],"transports.type",Jt.Text),this.uploadedSortData=new Yn(["sent"],"common.uploaded",Jt.NumberReversed),this.downloadedSortData=new Yn(["recv"],"common.downloaded",Jt.NumberReversed),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"transports.filter-dialog.persistent",keyNameInElementsArray:"isPersistent",type:Xn.Select,printableLabelsForValues:[{value:"",label:"transports.filter-dialog.persistent-options.any"},{value:"true",label:"transports.filter-dialog.persistent-options.persistent"},{value:"false",label:"transports.filter-dialog.persistent-options.non-persistent"}]},{filterName:"transports.filter-dialog.id",keyNameInElementsArray:"id",secondaryKeyNameInElementsArray:"id_label",type:Xn.TextInput,maxlength:36},{filterName:"transports.filter-dialog.remote-node",keyNameInElementsArray:"remotePk",secondaryKeyNameInElementsArray:"remote_pk_label",type:Xn.TextInput,maxlength:66}],this.labeledElementTypes=Mr,this.operationSubscriptionsGroup=[],this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,[this.persistentSortData,this.idSortData,this.remotePkSortData,this.typeSortData,this.uploadedSortData,this.downloadedSortData],1,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new gu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(P=>{this.filteredTransports=P,this.dataSorter.setData(this.filteredTransports)}),this.navigationsSubscription=this.route.paramMap.subscribe(P=>{if(P.has("page")){let Y=Number.parseInt(P.get("page"),10);(isNaN(Y)||Y<1)&&(Y=1),this.currentPageInUrl=Y,this.recalculateElementsToShow()}}),this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.node=this.currentNode})}set showShortList(t){this.showShortList_=t,this.dataSorter.setData(this.filteredTransports)}set node(t){this.currentNode=t,this.allTransports=t.transports,this.nodePK=t.localPk;const e=new Map;t.persistentTransports.forEach(i=>e.set(this.getPersistentTransportID(i.pk,i.type),i)),this.allTransports.forEach(i=>{e.has(this.getPersistentTransportID(i.remotePk,i.type))?(i.isPersistent=!0,e.delete(this.getPersistentTransportID(i.remotePk,i.type))):i.isPersistent=!1}),e.forEach((i,o)=>{this.allTransports.push({id:this.getPersistentTransportID(i.pk,i.type),localPk:t.localPk,remotePk:i.pk,type:i.type,recv:0,sent:0,isPersistent:!0,notFound:!0})}),this.allTransports.forEach(i=>{i.id_label=Ar.getCompleteLabel(this.storageService,this.translateService,i.id),i.remote_pk_label=Ar.getCompleteLabel(this.storageService,this.translateService,i.remotePk)}),this.dataFilterer.setData(this.allTransports)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.languageSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose(),this.persistentTransportSubscription&&this.persistentTransportSubscription.unsubscribe()}changeSelection(t){this.selections.get(t.id)?this.selections.set(t.id,!1):this.selections.set(t.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let t=!1;return this.selections.forEach(e=>{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}deleteSelected(){const t=Wt.createConfirmationDialog(this.dialog,"transports.delete-selected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing();const e=[];this.selections.forEach((i,o)=>{i&&e.push(o)}),this.deleteRecursively(e,t)})}create(){pc.openDialog(this.dialog)}showOptionsDialog(t){const e=[];e.push(t.isPersistent?{icon:"star_outline",label:"transports.make-non-persistent"}:{icon:"star",label:"transports.make-persistent"}),t.notFound||(e.push({icon:"visibility",label:"transports.details.title"}),e.push({icon:"close",label:"transports.delete"})),Hi.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{1===i?this.changeIfPersistent([t],!t.isPersistent):2===i?this.details(t):3===i&&this.delete(t)})}changeIfPersistentOfSelected(t){const e=[];this.allTransports.forEach(i=>{this.selections.has(i.id)&&this.selections.get(i.id)&&e.push(i)}),this.changeIfPersistent(e,t)}changeIfPersistent(t,e){if(t.length<1)return;let i="transports.";i+=1===t.length?e?"make-persistent-confirmation":"make"+(t[0].notFound?"-offline":"")+"-non-persistent-confirmation":e?"make-selected-persistent-confirmation":"make-selected-non-persistent-confirmation";const o=Wt.createConfirmationDialog(this.dialog,i);o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.persistentTransportSubscription=this.transportService.getPersistentTransports(this.nodePK).subscribe(s=>{const a=s||[];let l=!1;const d=new Map;if(t.forEach(w=>d.set(this.getPersistentTransportID(w.remotePk,w.type),w)),e)a.forEach(w=>{d.has(this.getPersistentTransportID(w.pk,w.type))&&d.delete(this.getPersistentTransportID(w.pk,w.type))}),l=0===d.size,l||d.forEach(w=>{a.push({pk:w.remotePk,type:w.type})});else{l=!0;for(let w=0;w{o.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.changes-made")},w=>{w=Kt(w),o.componentInstance.showDone("confirmation.error-header-text",w.translatableErrorMsg)})},s=>{s=Kt(s),o.componentInstance.showDone("confirmation.error-header-text",s.translatableErrorMsg)})})}details(t){mc.openDialog(this.dialog,t)}delete(t){const i=Wt.createConfirmationDialog(this.dialog,"transports.delete-"+(t.isPersistent?"persistent-":"")+"confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(t.id).subscribe(()=>{i.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")},o=>{o=Kt(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))})}refreshData(){Je.refreshCurrentDisplayedData()}getPersistentTransportID(t,e){return t.toUpperCase()+e.toUpperCase()}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredTransports){const t=this.showShortList_?Rt.maxShortListElements:Rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredTransports.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.transportsToShow=this.filteredTransports.slice(e,e+t);const o=new Map;this.transportsToShow.forEach(a=>{o.set(a.id,!0),this.selections.has(a.id)||this.selections.set(a.id,!1)});const s=[];this.selections.forEach((a,l)=>{o.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.transportsToShow=null,this.selections=new Map;this.dataSource=this.transportsToShow}startDeleting(t){return this.transportService.delete(Je.getCurrentNodeKey(),t)}deleteRecursively(t,e){this.operationSubscriptionsGroup.push(this.startDeleting(t[t.length-1]).subscribe(()=>{t.pop(),0===t.length?(e.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")):this.deleteRecursively(t,e)},i=>{Je.refreshCurrentDisplayedData(),i=Kt(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)}))}}function fQ(n,t){1&n&&(D(0,"div",5)(1,"mat-icon",2),E(2,"settings"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce("",B(4,2,"routes.details.specific-fields-titles.app")," "))}function pQ(n,t){1&n&&(D(0,"div",5)(1,"mat-icon",2),E(2,"swap_horiz"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce("",B(4,2,"routes.details.specific-fields-titles.forward")," "))}function mQ(n,t){1&n&&(D(0,"div",5)(1,"mat-icon",2),E(2,"arrow_forward"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce("",B(4,2,"routes.details.specific-fields-titles.intermediary-forward")," "))}function _Q(n,t){if(1&n&&(D(0,"div")(1,"div",3)(2,"span"),E(3),R(4,"translate"),x(),E(5),x(),D(6,"div",3)(7,"span"),E(8),R(9,"translate"),x(),E(10),x()()),2&n){const e=z(2);c(3),oe(B(4,5,"routes.details.specific-fields.route-id")),c(2),ce(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextRid:e.routeRule.intermediaryForwardFields.nextRid," "),c(3),oe(B(9,7,"routes.details.specific-fields.transport-id")),c(2),_o(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid," ",e.getLabel(e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid)," ")}}function gQ(n,t){if(1&n&&(D(0,"div")(1,"div",3)(2,"span"),E(3),R(4,"translate"),x(),E(5),x(),D(6,"div",3)(7,"span"),E(8),R(9,"translate"),x(),E(10),x(),D(11,"div",3)(12,"span"),E(13),R(14,"translate"),x(),E(15),x(),D(16,"div",3)(17,"span"),E(18),R(19,"translate"),x(),E(20),x()()),2&n){const e=z(2);c(3),oe(B(4,10,"routes.details.specific-fields.destination-pk")),c(2),_o(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk)," "),c(3),oe(B(9,12,"routes.details.specific-fields.source-pk")),c(2),_o(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk)," "),c(3),oe(B(14,14,"routes.details.specific-fields.destination-port")),c(2),ce(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPort:e.routeRule.forwardFields.routeDescriptor.dstPort," "),c(3),oe(B(19,16,"routes.details.specific-fields.source-port")),c(2),ce(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPort:e.routeRule.forwardFields.routeDescriptor.srcPort," ")}}function bQ(n,t){if(1&n&&(D(0,"div")(1,"div",5)(2,"mat-icon",2),E(3,"list"),x(),E(4),R(5,"translate"),x(),D(6,"div",3)(7,"span"),E(8),R(9,"translate"),x(),E(10),x(),D(11,"div",3)(12,"span"),E(13),R(14,"translate"),x(),E(15),x(),D(16,"div",3)(17,"span"),E(18),R(19,"translate"),x(),E(20),x(),V(21,fQ,5,4,"div",6),V(22,pQ,5,4,"div",6),V(23,mQ,5,4,"div",6),V(24,_Q,11,9,"div",4),V(25,gQ,21,18,"div",4),x()),2&n){const e=z();c(2),M("inline",!0),c(2),ce("",B(5,13,"routes.details.summary.title")," "),c(4),oe(B(9,15,"routes.details.summary.keep-alive")),c(2),ce(" ",e.routeRule.ruleSummary.keepAlive," "),c(3),oe(B(14,17,"routes.details.summary.type")),c(2),ce(" ",e.getRuleTypeName(e.routeRule.ruleSummary.ruleType)," "),c(3),oe(B(19,19,"routes.details.summary.key-route-id")),c(2),ce(" ",e.routeRule.ruleSummary.keyRouteId," "),c(1),M("ngIf",e.routeRule.appFields),c(1),M("ngIf",e.routeRule.forwardFields),c(1),M("ngIf",e.routeRule.intermediaryForwardFields),c(1),M("ngIf",e.routeRule.forwardFields||e.routeRule.intermediaryForwardFields),c(1),M("ngIf",e.routeRule.appFields&&e.routeRule.appFields.routeDescriptor||e.routeRule.forwardFields&&e.routeRule.forwardFields.routeDescriptor)}}Cu.\u0275fac=function(t){return new(t||Cu)(F(Ln),F(fl),F(yr),F(Qt),F(on),F(oo),F(ni),F(so))},Cu.\u0275cmp=qe({type:Cu,selectors:[["app-transport-list"]],inputs:{showShortList:"showShortList",node:"node"},decls:31,vars:31,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],[3,"inline","click"],["class","small-icon",3,"inline","click",4,"ngIf"],[3,"inline","matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","click"],[3,"inline","matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column","small-column",3,"matTooltip","click"],[1,"persistent-icon","grey-text"],[3,"inline",4,"ngIf"],[1,"sortable-column",3,"click"],[1,"actions"],[3,"ngClass",4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[4,"ngFor","ngForOf"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[3,"ngClass"],[1,"selection-col"],[3,"checked","change"],["mat-button","","class","action-button subtle-transparent-button",3,"matTooltip","click",4,"ngIf"],["shortTextLength","4",3,"short","id","labelEdited"],["mat-button","","class","action-button transparent-button",3,"matTooltip","click",4,"ngIf"],["mat-button","",1,"action-button","subtle-transparent-button",3,"matTooltip","click"],[1,"persistent-icon","default-cursor",3,"inline"],[1,"persistent-icon","grey-text",3,"inline"],["shortTextLength","4",3,"short","id","elementType","labelEdited"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],[1,"list-item-container",3,"ngClass"],[1,"check-part"],["class","list-row",4,"ngIf"],[1,"list-row","long-content"],[3,"id","elementType","labelEdited",4,"ngIf"],[3,"id","labelEdited"],[1,"list-row"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[1,"persistent-icon",3,"inline"],[1,"yellow-clear-text","title"],[3,"id","elementType","labelEdited"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),V(2,vX,6,7,"span",2),V(3,xX,5,4,"div",3),x(),D(4,"div",4)(5,"div",5)(6,"mat-icon",6),ye("click",function(){return e.create()}),E(7,"add"),x(),V(8,CX,2,1,"mat-icon",7),V(9,kX,2,2,"mat-icon",8),D(10,"mat-menu",9,10)(12,"div",11),ye("click",function(){return e.changeAllSelections(!0)}),E(13),R(14,"translate"),x(),D(15,"div",11),ye("click",function(){return e.changeAllSelections(!1)}),E(16),R(17,"translate"),x(),D(18,"div",12),ye("click",function(){return e.changeIfPersistentOfSelected(!0)}),E(19),R(20,"translate"),x(),D(21,"div",12),ye("click",function(){return e.changeIfPersistentOfSelected(!1)}),E(22),R(23,"translate"),x(),D(24,"div",12),ye("click",function(){return e.deleteSelected()}),E(25),R(26,"translate"),x()()(),V(27,SX,1,6,"app-paginator",13),x()(),V(28,aQ,50,46,"div",14),V(29,dQ,6,3,"div",14),V(30,uQ,1,6,"app-paginator",13)),2&t&&(M("ngClass",Be(29,hQ,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),c(2),M("ngIf",e.showShortList_),c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),M("inline",!0),c(2),M("ngIf",e.allTransports&&e.allTransports.length>0),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("overlapTrigger",!1),c(3),ce(" ",B(14,19,"selection.select-all")," "),c(3),ce(" ",B(17,21,"selection.unselect-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(20,23,"transports.make-selected-persistent")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(23,25,"transports.make-selected-non-persistent")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(26,27,"selection.delete-all")," "),c(2),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("ngIf",!e.dataSource||0===e.dataSource.length),c(1),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[Rn,bi,It,$r,rl,yn,vi,vu,_a,yu,ma,hl,Fs,Ar,xt,rr],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.small-column[_ngcontent-%COMP%]{width:1px;text-align:center}.persistent-icon[_ngcontent-%COMP%]{font-size:14px!important;color:#d48b05}.offline[_ngcontent-%COMP%]{opacity:.35}"]});class _c{constructor(t,e,i){this.dialogRef=e,this.storageService=i,this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Intermediary forward"]]),this.routeRule=t}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.largeModalWidth,t.open(_c,i)}getRuleTypeName(t){return this.ruleTypes.has(t)?this.ruleTypes.get(t):t.toString()}closePopup(){this.dialogRef.close()}getLabel(t){const e=this.storageService.getLabelInfo(t);return e?" ("+e.label+")":""}}_c.\u0275fac=function(t){return new(t||_c)(F(Ti),F(Nn),F(ni))},_c.\u0275cmp=qe({type:_c,selectors:[["app-route-details"]],decls:19,vars:17,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[4,"ngIf"],[1,"title"],["class","title",4,"ngIf"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div")(3,"div",1)(4,"mat-icon",2),E(5,"list"),x(),E(6),R(7,"translate"),x(),D(8,"div",3)(9,"span"),E(10),R(11,"translate"),x(),E(12),x(),D(13,"div",3)(14,"span"),E(15),R(16,"translate"),x(),E(17),x(),V(18,bQ,26,21,"div",4),x()()),2&t&&(M("headline",B(1,9,"routes.details.title"))("dialog",e.dialogRef),c(4),M("inline",!0),c(2),ce("",B(7,11,"routes.details.basic.title")," "),c(4),oe(B(11,13,"routes.details.basic.key")),c(2),ce(" ",e.routeRule.key," "),c(3),oe(B(16,15,"routes.details.basic.rule")),c(2),ce(" ",e.routeRule.rule," "),c(1),M("ngIf",e.routeRule.ruleSummary))},dependencies:[It,yn,En,xt]});class gc{constructor(t){this.apiService=t}get(t,e){return this.apiService.get(`visors/${t}/routes/${e}`)}delete(t,e){return this.apiService.delete(`visors/${t}/routes/${e}`)}setMinHops(t,e){return this.apiService.post(`visors/${t}/min-hops`,{min_hops:e})}}function vQ(n,t){1&n&&(D(0,"span",14),E(1),R(2,"translate"),D(3,"mat-icon",15),R(4,"translate"),E(5,"help"),x()()),2&n&&(c(1),ce(" ",B(2,3,"routes.title")," "),c(2),M("inline",!0)("matTooltip",B(4,5,"routes.info")))}function yQ(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function MQ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function wQ(n,t){if(1&n&&(D(0,"div",19)(1,"span"),E(2),R(3,"translate"),x(),V(4,yQ,3,3,"ng-container",20),V(5,MQ,2,1,"ng-container",20),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function xQ(n,t){if(1&n){const e=et();D(0,"div",16),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,wQ,6,5,"div",17),D(2,"div",18),E(3),R(4,"translate"),x()()}if(2&n){const e=z();c(1),M("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),oe(B(4,2,"filters.press-to-remove"))}}function CQ(n,t){if(1&n){const e=et();D(0,"mat-icon",21),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),E(2,"filter_list"),x()}2&n&&M("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function kQ(n,t){1&n&&(D(0,"mat-icon",22),E(1,"more_horiz"),x()),2&n&&(z(),M("matMenuTriggerFor",ci(9)))}gc.\u0275fac=function(t){return new(t||gc)(we(wo))},gc.\u0275prov=Ye({token:gc,factory:gc.\u0275fac,providedIn:"root"});const oM=function(n){return["/nodes",n,"routes"]};function SQ(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Be(4,oM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function DQ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function TQ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function LQ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function EQ(n,t){if(1&n&&(D(0,"mat-icon",36),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function IQ(n,t){if(1&n){const e=et();Ue(0),D(1,"td")(2,"app-labeled-element-text",41),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),D(3,"td")(4,"app-labeled-element-text",41),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),We()}if(2&n){const e=z().$implicit,i=z(2);c(2),Dn("id",e.src),M("short",!0)("elementType",i.labeledElementTypes.Node),c(2),Dn("id",e.dst),M("short",!0)("elementType",i.labeledElementTypes.Node)}}function PQ(n,t){if(1&n){const e=et();Ue(0),D(1,"td"),E(2,"---"),x(),D(3,"td")(4,"app-labeled-element-text",42),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),We()}if(2&n){const e=z().$implicit,i=z(2);c(4),Dn("id",e.dst),M("short",!0)("elementType",i.labeledElementTypes.Transport)}}function OQ(n,t){1&n&&(Ue(0),D(1,"td"),E(2,"---"),x(),D(3,"td"),E(4,"---"),x(),We())}function AQ(n,t){if(1&n){const e=et();D(0,"tr")(1,"td",38)(2,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(3,"td"),E(4),x(),D(5,"td"),E(6),x(),V(7,IQ,5,6,"ng-container",20),V(8,PQ,5,3,"ng-container",20),V(9,OQ,5,0,"ng-container",20),D(10,"td",29)(11,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).details(s))}),R(12,"translate"),D(13,"mat-icon",36),E(14,"visibility"),x()(),D(15,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).delete(s.key))}),R(16,"translate"),D(17,"mat-icon",36),E(18,"close"),x()()()()}if(2&n){const e=t.$implicit,i=z(2);c(2),M("checked",i.selections.get(e.key)),c(2),ce(" ",e.key," "),c(2),ce(" ",i.getTypeName(e.type)," "),c(1),M("ngIf",e.appFields||e.forwardFields),c(1),M("ngIf",!e.appFields&&!e.forwardFields&&e.intermediaryForwardFields),c(1),M("ngIf",!e.appFields&&!e.forwardFields&&!e.intermediaryForwardFields),c(2),M("matTooltip",B(12,10,"routes.details.title")),c(2),M("inline",!0),c(2),M("matTooltip",B(16,12,"routes.delete")),c(2),M("inline",!0)}}function FQ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.label")))}function RQ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.inverted-order")))}function NQ(n,t){if(1&n){const e=et();Ue(0),D(1,"div",44)(2,"span",1),E(3),R(4,"translate"),x(),E(5,": "),D(6,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),D(7,"div",44)(8,"span",1),E(9),R(10,"translate"),x(),E(11,": "),D(12,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),We()}if(2&n){const e=z().$implicit,i=z(2);c(3),oe(B(4,6,"routes.source")),c(3),Dn("id",e.src),M("elementType",i.labeledElementTypes.Node),c(3),oe(B(10,8,"routes.destination")),c(3),Dn("id",e.dst),M("elementType",i.labeledElementTypes.Node)}}function YQ(n,t){if(1&n){const e=et();Ue(0),D(1,"div",44)(2,"span",1),E(3),R(4,"translate"),x(),E(5,": --- "),x(),D(6,"div",44)(7,"span",1),E(8),R(9,"translate"),x(),E(10,": "),D(11,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),x()(),We()}if(2&n){const e=z().$implicit,i=z(2);c(3),oe(B(4,4,"routes.source")),c(5),oe(B(9,6,"routes.destination")),c(3),Dn("id",e.dst),M("elementType",i.labeledElementTypes.Transport)}}function BQ(n,t){1&n&&(Ue(0),D(1,"div",44)(2,"span",1),E(3),R(4,"translate"),x(),E(5,": --- "),x(),D(6,"div",44)(7,"span",1),E(8),R(9,"translate"),x(),E(10,": --- "),x(),We()),2&n&&(c(3),oe(B(4,2,"routes.source")),c(5),oe(B(9,4,"routes.destination")))}function HQ(n,t){if(1&n){const e=et();D(0,"tr")(1,"td")(2,"div",33)(3,"div",43)(4,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(5,"div",34)(6,"div",44)(7,"span",1),E(8),R(9,"translate"),x(),E(10),x(),D(11,"div",44)(12,"span",1),E(13),R(14,"translate"),x(),E(15),x(),V(16,NQ,13,10,"ng-container",20),V(17,YQ,12,8,"ng-container",20),V(18,BQ,11,6,"ng-container",20),x(),xe(19,"div",45),D(20,"div",35)(21,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(22,"translate"),D(23,"mat-icon"),E(24),x()()()()()()}if(2&n){const e=t.$implicit,i=z(2);c(4),M("checked",i.selections.get(e.key)),c(4),oe(B(9,10,"routes.key")),c(2),ce(": ",e.key," "),c(3),oe(B(14,12,"routes.type")),c(2),ce(": ",i.getTypeName(e.type)," "),c(1),M("ngIf",e.appFields||e.forwardFields),c(1),M("ngIf",!e.appFields&&!e.forwardFields&&e.intermediaryForwardFields),c(1),M("ngIf",!e.appFields&&!e.forwardFields&&!e.intermediaryForwardFields),c(3),M("matTooltip",B(22,14,"common.options")),c(3),oe("add")}}function VQ(n,t){if(1&n&&xe(0,"app-view-all-link",48),2&n){const e=z(2);M("numberOfElements",e.filteredRoutes.length)("linkParts",Be(3,oM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const jQ=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},zQ=function(n){return{"d-lg-none d-xl-table":n}},UQ=function(n){return{"d-lg-table d-xl-none":n}};function WQ(n,t){if(1&n){const e=et();D(0,"div",24)(1,"div",25)(2,"table",26)(3,"tr"),xe(4,"th"),D(5,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.keySortData))}),E(6),R(7,"translate"),V(8,DQ,2,2,"mat-icon",28),x(),D(9,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),E(10),R(11,"translate"),V(12,TQ,2,2,"mat-icon",28),x(),D(13,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.sourceSortData))}),E(14),R(15,"translate"),V(16,LQ,2,2,"mat-icon",28),x(),D(17,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.destinationSortData))}),E(18),R(19,"translate"),V(20,EQ,2,2,"mat-icon",28),x(),xe(21,"th",29),x(),V(22,AQ,19,14,"tr",30),x(),D(23,"table",31)(24,"tr",32),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(25,"td")(26,"div",33)(27,"div",34)(28,"div",1),E(29),R(30,"translate"),x(),D(31,"div"),E(32),R(33,"translate"),V(34,FQ,3,3,"ng-container",20),V(35,RQ,3,3,"ng-container",20),x()(),D(36,"div",35)(37,"mat-icon",36),E(38,"keyboard_arrow_down"),x()()()()(),V(39,HQ,25,16,"tr",30),x(),V(40,VQ,1,5,"app-view-all-link",37),x()()}if(2&n){const e=z();c(1),M("ngClass",cn(31,jQ,e.showShortList_,!e.showShortList_)),c(1),M("ngClass",Be(34,zQ,e.showShortList_)),c(4),ce(" ",B(7,19,"routes.key")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.keySortData),c(2),ce(" ",B(11,21,"routes.type")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),ce(" ",B(15,23,"routes.source")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.sourceSortData),c(2),ce(" ",B(19,25,"routes.destination")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.destinationSortData),c(2),M("ngForOf",e.dataSource),c(1),M("ngClass",Be(36,UQ,e.showShortList_)),c(6),oe(B(30,27,"tables.sorting-title")),c(3),ce("",B(33,29,e.dataSorter.currentSortingColumn.label)," "),c(2),M("ngIf",e.dataSorter.currentlySortingByLabel),c(1),M("ngIf",e.dataSorter.sortingInReverseOrder),c(2),M("inline",!0),c(2),M("ngForOf",e.dataSource),c(1),M("ngIf",e.showShortList_&&e.numberOfPages>1)}}function $Q(n,t){1&n&&(D(0,"span",52),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"routes.empty")))}function GQ(n,t){1&n&&(D(0,"span",52),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"routes.empty-with-filter")))}function qQ(n,t){if(1&n&&(D(0,"div",24)(1,"div",49)(2,"mat-icon",50),E(3,"warning"),x(),V(4,$Q,3,3,"span",51),V(5,GQ,3,3,"span",51),x()()),2&n){const e=z();c(2),M("inline",!0),c(2),M("ngIf",0===e.allRoutes.length),c(1),M("ngIf",0!==e.allRoutes.length)}}function KQ(n,t){if(1&n&&xe(0,"app-paginator",23),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",Be(4,oM,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const ZQ=function(n){return{"paginator-icons-fixer":n}};class ku{constructor(t,e,i,o,s,a,l){this.routeService=t,this.dialog=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listId="rl",this.keySortData=new Yn(["key"],"routes.key",Jt.Number),this.typeSortData=new Yn(["type"],"routes.type",Jt.Number),this.sourceSortData=new Yn(["src"],"routes.source",Jt.Text,["src_label"]),this.destinationSortData=new Yn(["dst"],"routes.destination",Jt.Text,["dst_label"]),this.labeledElementTypes=Mr,this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"routes.filter-dialog.key",keyNameInElementsArray:"key",type:Xn.TextInput,maxlength:8},{filterName:"routes.filter-dialog.source",keyNameInElementsArray:"src",secondaryKeyNameInElementsArray:"src_label",type:Xn.TextInput,maxlength:66},{filterName:"routes.filter-dialog.destination",keyNameInElementsArray:"dst",secondaryKeyNameInElementsArray:"dst_label",type:Xn.TextInput,maxlength:66}],this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Int. forward"]]),this.operationSubscriptionsGroup=[],this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,[this.keySortData,this.typeSortData,this.sourceSortData,this.destinationSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()});const w={filterName:"routes.filter-dialog.type",keyNameInElementsArray:"type",type:Xn.Select,printableLabelsForValues:[{value:"",label:"routes.filter-dialog.any-type-option"}]};this.ruleTypes.forEach((P,Y)=>{w.printableLabelsForValues.push({value:Y+"",label:P})}),this.filterProperties=[w].concat(this.filterProperties),this.dataFilterer=new gu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(P=>{this.filteredRoutes=P,this.dataSorter.setData(this.filteredRoutes)}),this.navigationsSubscription=this.route.paramMap.subscribe(P=>{if(P.has("page")){let Y=Number.parseInt(P.get("page"),10);(isNaN(Y)||Y<1)&&(Y=1),this.currentPageInUrl=Y,this.recalculateElementsToShow()}})}set showShortList(t){this.showShortList_=t,this.dataSorter.setData(this.filteredRoutes)}set routes(t){this.allRoutes=t,this.allRoutes.forEach(e=>{if(e.type=e.ruleSummary.ruleType||0===e.ruleSummary.ruleType?e.ruleSummary.ruleType:"",e.appFields||e.forwardFields){const i=e.appFields?e.appFields.routeDescriptor:e.forwardFields.routeDescriptor;e.src=i.srcPk,e.src_label=Ar.getCompleteLabel(this.storageService,this.translateService,e.src),e.dst=i.dstPk,e.dst_label=Ar.getCompleteLabel(this.storageService,this.translateService,e.dst)}else e.intermediaryForwardFields?(e.src="",e.src_label="",e.dst=e.intermediaryForwardFields.nextTid,e.dst_label=Ar.getCompleteLabel(this.storageService,this.translateService,e.dst)):(e.src="",e.src_label="",e.dst="",e.dst_label="")}),this.dataFilterer.setData(this.allRoutes)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}refreshData(){Je.refreshCurrentDisplayedData()}getTypeName(t){return this.ruleTypes.has(t)?this.ruleTypes.get(t):"Unknown"}changeSelection(t){this.selections.get(t.key)?this.selections.set(t.key,!1):this.selections.set(t.key,!0)}hasSelectedElements(){if(!this.selections)return!1;let t=!1;return this.selections.forEach(e=>{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}deleteSelected(){const t=Wt.createConfirmationDialog(this.dialog,"routes.delete-selected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing();const e=[];this.selections.forEach((i,o)=>{i&&e.push(o)}),this.deleteRecursively(e,t)})}showOptionsDialog(t){Hi.openDialog(this.dialog,[{icon:"visibility",label:"routes.details.title"},{icon:"close",label:"routes.delete"}],"common.options").afterClosed().subscribe(i=>{1===i?this.details(t):2===i&&this.delete(t.key)})}details(t){_c.openDialog(this.dialog,t)}delete(t){const e=Wt.createConfirmationDialog(this.dialog,"routes.delete-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(t).subscribe(()=>{e.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")},i=>{i=Kt(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)}))})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredRoutes){const t=this.showShortList_?Rt.maxShortListElements:Rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredRoutes.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.routesToShow=this.filteredRoutes.slice(e,e+t);const o=new Map;this.routesToShow.forEach(a=>{o.set(a.key,!0),this.selections.has(a.key)||this.selections.set(a.key,!1)});const s=[];this.selections.forEach((a,l)=>{o.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.routesToShow=null,this.selections=new Map;this.dataSource=this.routesToShow}startDeleting(t){return this.routeService.delete(Je.getCurrentNodeKey(),t.toString())}deleteRecursively(t,e){this.operationSubscriptionsGroup.push(this.startDeleting(t[t.length-1]).subscribe(()=>{t.pop(),0===t.length?(e.close(),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")):this.deleteRecursively(t,e)},i=>{Je.refreshCurrentDisplayedData(),i=Kt(i),e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)}))}}ku.\u0275fac=function(t){return new(t||ku)(F(gc),F(Ln),F(yr),F(Qt),F(on),F(oo),F(ni))},ku.\u0275cmp=qe({type:ku,selectors:[["app-route-list"]],inputs:{nodePK:"nodePK",showShortList:"showShortList",routes:"routes"},decls:23,vars:22,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline",4,"ngIf"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],["shortTextLength","7",3,"short","id","elementType","labelEdited"],["shortTextLength","5",3,"short","id","elementType","labelEdited"],[1,"check-part"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[3,"id","elementType","labelEdited"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),V(2,vQ,6,7,"span",2),V(3,xQ,5,4,"div",3),x(),D(4,"div",4)(5,"div",5),V(6,CQ,3,4,"mat-icon",6),V(7,kQ,2,1,"mat-icon",7),D(8,"mat-menu",8,9)(10,"div",10),ye("click",function(){return e.changeAllSelections(!0)}),E(11),R(12,"translate"),x(),D(13,"div",10),ye("click",function(){return e.changeAllSelections(!1)}),E(14),R(15,"translate"),x(),D(16,"div",11),ye("click",function(){return e.deleteSelected()}),E(17),R(18,"translate"),x()()(),V(19,SQ,1,6,"app-paginator",12),x()(),V(20,WQ,41,38,"div",13),V(21,qQ,6,3,"div",13),V(22,KQ,1,6,"app-paginator",12)),2&t&&(M("ngClass",Be(20,ZQ,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),c(2),M("ngIf",e.showShortList_),c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),M("ngIf",e.allRoutes&&e.allRoutes.length>0),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("overlapTrigger",!1),c(3),ce(" ",B(12,14,"selection.select-all")," "),c(3),ce(" ",B(15,16,"selection.unselect-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(18,18,"selection.delete-all")," "),c(2),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("ngIf",!e.dataSource||0===e.dataSource.length),c(1),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[Rn,bi,It,$r,rl,yn,vi,vu,_a,yu,ma,hl,Fs,Ar,xt],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]});class sp{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.node=t,this.routes=t.routes})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function XQ(n,t){if(1&n&&(D(0,"mat-option",6),E(1),R(2,"translate"),x()),2&n){const e=t.$implicit;M("value",e.days),c(1),oe(B(2,2,e.text))}}sp.\u0275fac=function(t){return new(t||sp)},sp.\u0275cmp=qe({type:sp,selectors:[["app-routing"]],decls:2,vars:5,consts:[[3,"node","showShortList"],[3,"routes","showShortList","nodePK"]],template:function(t,e){1&t&&xe(0,"app-transport-list",0)(1,"app-route-list",1),2&t&&(M("node",e.node)("showShortList",!0),c(1),M("routes",e.routes)("showShortList",!0)("nodePK",e.nodePK))},dependencies:[Cu,ku]});class bc{constructor(t,e,i){this.data=t,this.dialogRef=e,this.formBuilder=i}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(bc,i)}ngOnInit(){this.filters=[{text:"apps.log.filter.7-days",days:7},{text:"apps.log.filter.1-month",days:30},{text:"apps.log.filter.3-months",days:90},{text:"apps.log.filter.6-months",days:180},{text:"apps.log.filter.1-year",days:365},{text:"apps.log.filter.all",days:-1}],this.form=this.formBuilder.group({filter:[this.data.days]}),this.formSubscription=this.form.get("filter").valueChanges.subscribe(t=>{this.dialogRef.close(this.filters.find(e=>e.days===t))})}ngOnDestroy(){this.formSubscription.unsubscribe()}}bc.\u0275fac=function(t){return new(t||bc)(F(Ti),F(Nn),F(Cr))},bc.\u0275cmp=qe({type:bc,selectors:[["app-log-filter"]],decls:10,vars:9,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","filter"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),D(8,"mat-select",4),V(9,XQ,3,4,"mat-option",5),x()()()()()),2&t&&(M("headline",B(1,5,"apps.log.filter.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,7,"apps.log.filter.filter")),c(3),M("ngForOf",e.filters))},dependencies:[bi,Bi,Ni,Yi,ii,Li,nr,ep,ru,En,xt],styles:["mat-form-field[_ngcontent-%COMP%]{margin-bottom:-24px}"]});const QQ=["content"],JQ=function(n){return{totalLogs:n}};function eJ(n,t){if(1&n&&(D(0,"app-button",10)(1,"div",11),E(2),R(3,"translate"),x()()),2&n){const e=z();c(2),ce(" ",Ct(3,1,"apps.log.view-all",Be(4,JQ,e.totalLogs))," ")}}function tJ(n,t){if(1&n&&(D(0,"div",12)(1,"span",3),E(2),x(),E(3),x()),2&n){const e=t.$implicit;c(2),ce(" ",e.time," "),c(1),ce(" ",e.msg," ")}}function nJ(n,t){1&n&&(D(0,"div",13),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"apps.log.empty")," "))}function iJ(n,t){1&n&&xe(0,"app-loading-indicator",14),2&n&&M("showWhite",!1)}class vc{constructor(t,e,i,o,s,a){this.data=t,this.dialogRef=e,this.appsService=i,this.dialog=o,this.snackbarService=s,this.apiService=a,this.logMessages=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.loading=!1,this.currentFilter={text:"apps.log.filter.7-days",days:7},this.shouldShowError=!0}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.largeModalWidth,t.open(vc,i)}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription()}filter(){bc.openDialog(this.dialog,this.currentFilter).afterClosed().subscribe(t=>{t&&(this.currentFilter=t,this.logMessages=[],this.loadData(0))})}getLogsUrl(){return"/"+this.apiService.apiPrefix+this.appsService.getLogMessagesUrl(Je.getCurrentNodeKey(),this.data.name)}loadData(t){this.removeSubscription(),this.loading=!0,this.subscription=Ge(1).pipe(Di(t),Ne(()=>this.appsService.getLogMessages(Je.getCurrentNodeKey(),this.data.name,this.currentFilter.days))).subscribe(e=>this.onLogsReceived(e),e=>this.onLogsError(e))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}onLogsReceived(t=[]){this.loading=!1,this.shouldShowError=!0,this.snackbarService.closeCurrentIfTemporaryError();let e=0;this.hasMoreLogMessages=!1,this.totalLogs=t.length,t.forEach(i=>{if(e<5e3){const o=i.startsWith("[")?0:-1,s=-1!==o?i.indexOf("]"):-1;this.logMessages.push(-1!==o&&-1!==s?{time:i.substr(o,s+1),msg:i.substr(s+1)}:{time:"",msg:i})}else this.hasMoreLogMessages=!0;e+=1}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}onLogsError(t){t=Kt(t),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,t),this.shouldShowError=!1),this.loadData(Rt.connectionRetryDelay)}}vc.\u0275fac=function(t){return new(t||vc)(F(Ti),F(Nn),F(xo),F(Ln),F(on),F(wo))},vc.\u0275cmp=qe({type:vc,selectors:[["app-log"]],viewQuery:function(t,e){if(1&t&&ft(QQ,5),2&t){let i;nt(i=it())&&(e.content=i.first)}},decls:18,vars:17,consts:[[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"filter-link-container"],[1,"filter-link","subtle-transparent-button",3,"click"],[1,"transparent"],["content",""],["target","_blank",3,"href"],["class","full-logs-button","color","primary",4,"ngIf"],["class","app-log-message",4,"ngFor","ngForOf"],["class","app-log-empty mt-3",4,"ngIf"],[3,"showWhite",4,"ngIf"],["color","primary",1,"full-logs-button"],[1,"text-container"],[1,"app-log-message"],[1,"app-log-empty","mt-3"],[3,"showWhite"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1)(3,"div",2),ye("click",function(){return e.filter()}),D(4,"span",3),E(5),R(6,"translate"),x(),E(7,"\xa0 "),D(8,"span"),E(9),R(10,"translate"),x()()(),D(11,"mat-dialog-content",null,4)(13,"a",5),V(14,eJ,4,6,"app-button",6),x(),V(15,tJ,4,2,"div",7),V(16,nJ,3,3,"div",8),V(17,iJ,1,1,"app-loading-indicator",9),x()()),2&t&&(M("headline",B(1,11,"apps.log.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",e.dialogRef),c(5),oe(B(6,13,"apps.log.filter-button")),c(4),oe(B(10,15,e.currentFilter.text)),c(4),M("href",e.getLogsUrl(),Oo),c(1),M("ngIf",e.hasMoreLogMessages),c(1),M("ngForOf",e.logMessages),c(1),M("ngIf",!(e.loading||e.logMessages&&0!==e.logMessages.length)),c(1),M("ngIf",e.loading))},dependencies:[bi,It,C1,ri,En,Gr,xt],styles:[".mat-mdc-dialog-content[_ngcontent-%COMP%]{font-size:.875rem}.app-log-message[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.app-log-message[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.app-log-message[_ngcontent-%COMP%]:first-of-type{margin-top:0}.app-log-message[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.filter-link-container[_ngcontent-%COMP%]{text-align:center;margin:15px 0}.filter-link-container[_ngcontent-%COMP%] .filter-link[_ngcontent-%COMP%]{display:inline-block;background:#F8F9F9;padding:5px 10px;border-radius:1000px;font-size:.875rem;text-align:center;color:#215f9e;cursor:pointer}.filter-link-container[_ngcontent-%COMP%] .filter-link[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#215f9e80}.full-logs-button[_ngcontent-%COMP%] button{width:100%!important;display:block;text-align:center;margin-bottom:15px}.full-logs-button[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%}"]});const rJ=["button"],oJ=["firstInput"],Yg=function(n){return{"element-disabled":n}};function sJ(n,t){if(1&n&&(D(0,"mat-form-field",2)(1,"div",3)(2,"label",4),E(3),R(4,"translate"),x(),xe(5,"input",12),x()()),2&n){const e=z();M("ngClass",Be(4,Yg,e.disableDismiss)),c(3),oe(B(4,2,"apps.vpn-socks-server-settings.netifc"))}}function aJ(n,t){if(1&n){const e=et();D(0,"div",13)(1,"mat-checkbox",14),ye("change",function(o){return Pe(e),Oe(z().setSecureMode(o))}),E(2),R(3,"translate"),D(4,"mat-icon",15),R(5,"translate"),E(6,"help"),x()()()}if(2&n){const e=z();c(1),M("checked",e.secureMode)("ngClass",Be(9,Yg,e.disableDismiss)),c(1),ce(" ",B(3,5,"apps.vpn-socks-server-settings.secure-mode-check")," "),c(2),M("inline",!0)("matTooltip",B(5,7,"apps.vpn-socks-server-settings.secure-mode-info"))}}class yc{constructor(t,e,i,o,s,a){this.data=t,this.appsService=e,this.formBuilder=i,this.dialogRef=o,this.snackbarService=s,this.dialog=a,this.configuringVpn=!1,this.secureMode=!1,-1!==t.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.mediumModalWidth,t.open(yc,i)}ngOnInit(){if(this.form=this.formBuilder.group({password:[""],passwordConfirmation:["",this.validatePasswords.bind(this)],netifc:[""]}),this.formSubscription=this.form.get("password").valueChanges.subscribe(()=>{this.form.get("passwordConfirmation").updateValueAndValidity()}),this.data.args&&this.data.args.length>0)for(let t=0;tthis.firstInput.nativeElement.focus())}ngOnDestroy(){this.formSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setSecureMode(t){this.button.disabled||(this.secureMode=!!t.checked)}saveChanges(){if(!this.form.valid||this.button.disabled)return;const t=this.form.get("password").value?"apps.vpn-socks-server-settings.change-passowrd-confirmation":"apps.vpn-socks-server-settings.remove-passowrd-confirmation",e=Wt.createConfirmationDialog(this.dialog,t);e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.continueSavingChanges()})}continueSavingChanges(){this.button.showLoading();const t={passcode:this.form.get("password").value};this.configuringVpn&&(t.secure=this.secureMode,t.netifc=this.form.get("netifc").value),this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,t).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-server-settings.changes-made"),this.dialogRef.close()}onError(t){this.button.showError(),t=Kt(t),this.snackbarService.showError(t)}validatePasswords(){return this.form&&this.form.get("password").value!==this.form.get("passwordConfirmation").value?{invalid:!0}:null}}yc.\u0275fac=function(t){return new(t||yc)(F(Ti),F(xo),F(Cr),F(Nn),F(on),F(Ln))},yc.\u0275cmp=qe({type:yc,selectors:[["app-skysocks-settings"]],viewQuery:function(t,e){if(1&t&&(ft(rJ,5),ft(oJ,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:27,vars:27,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],["firstInput",""],["id","passwordConfirmation","type","password","formControlName","passwordConfirmation","maxlength","100","matInput",""],[3,"ngClass",4,"ngIf"],["class","main-theme settings-option",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["id","netifc","type","text","formControlName","netifc","matInput",""],[1,"main-theme","settings-option"],["color","primary",3,"checked","ngClass","change"],[1,"help-icon",3,"inline","matTooltip"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field",2)(4,"div",3)(5,"label",4),E(6),R(7,"translate"),x(),xe(8,"input",5,6),x()(),D(10,"mat-form-field",2)(11,"div",3)(12,"label",4),E(13),R(14,"translate"),x(),xe(15,"input",7,6),x(),D(17,"mat-error")(18,"span"),E(19),R(20,"translate"),x()()(),V(21,sJ,6,6,"mat-form-field",8),V(22,aJ,7,11,"div",9),x(),D(23,"app-button",10,11),ye("action",function(){return e.saveChanges()}),E(25),R(26,"translate"),x()()),2&t&&(M("headline",B(1,13,"apps.vpn-socks-server-settings."+(e.configuringVpn?"vpn-title":"socks-title")))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(2),M("formGroup",e.form),c(1),M("ngClass",Be(23,Yg,e.disableDismiss)),c(3),oe(B(7,15,"apps.vpn-socks-server-settings.new-password")),c(4),M("ngClass",Be(25,Yg,e.disableDismiss)),c(3),oe(B(14,17,"apps.vpn-socks-server-settings.repeat-password")),c(6),oe(B(20,19,"apps.vpn-socks-server-settings.passwords-not-match")),c(2),M("ngIf",e.configuringVpn),c(1),M("ngIf",e.configuringVpn),c(1),M("disabled",!e.form.valid),c(2),ce(" ",B(26,21,"apps.vpn-socks-server-settings.save")," "))},dependencies:[Rn,It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,yn,vi,ma,ri,En,xt],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]});const lJ=["firstInput"];class Mc{constructor(t,e,i){this.dialogRef=t,this.data=e,this.formBuilder=i}static openDialog(t,e){const i=new Tn;return i.data=e||"",i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(Mc,i)}ngOnInit(){this.form=this.formBuilder.group({note:[this.data]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const t=this.form.get("note").value.trim();this.dialogRef.close("-"+t)}}Mc.\u0275fac=function(t){return new(t||Mc)(F(Nn),F(Ti),F(Cr))},Mc.\u0275cmp=qe({type:Mc,selectors:[["app-edit-skysocks-client-note"]],viewQuery:function(t,e){if(1&t&&ft(lJ,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","note","maxlength","100","matInput",""],["firstInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x()()(),D(10,"app-button",6),ye("action",function(){return e.finish()}),E(11),R(12,"translate"),x()()),2&t&&(M("headline",B(1,5,"apps.vpn-socks-client-settings.change-note-dialog.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,7,"apps.vpn-socks-client-settings.change-note-dialog.note")),c(5),oe(B(12,9,"common.save")))},dependencies:[Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ri,En,xt]});const ba={AF:"Afghanistan",AX:"Aland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (North)",KR:"Korea (South)",XK:"Kosovo",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Laos",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libyan Arab Jamahiriya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",AN:"Netherlands Antilles",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestinian Territory, Occupied",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",ME:"Montenegro",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown"};function cJ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit,i=z(2);c(1),oe(i.completeCountriesList[e.toUpperCase()])}}function dJ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.toUpperCase())}}function uJ(n,t){if(1&n&&(D(0,"mat-option",10)(1,"div",12),xe(2,"div"),x(),V(3,cJ,2,1,"ng-container",2),V(4,dJ,2,1,"ng-container",2),x()),2&n){const e=t.$implicit,i=z(2);M("value",e.toUpperCase()),c(2),di("background-image: url('assets/img/flags/"+e.toLocaleLowerCase()+".png');"),c(1),M("ngIf",i.completeCountriesList[e.toUpperCase()]),c(1),M("ngIf",!i.completeCountriesList[e.toUpperCase()])}}function hJ(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"apps.vpn-socks-client-settings.filter-dialog.any-country")," "))}function fJ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z(3);c(1),oe(e.completeCountriesList[e.form.get("country").value])}}function pJ(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z(3);c(1),oe(e.form.get("country").value)}}function mJ(n,t){if(1&n&&(Ue(0),D(1,"div",12),xe(2,"div"),x(),V(3,fJ,2,1,"ng-container",2),V(4,pJ,2,1,"ng-container",2),We()),2&n){const e=z(2);c(2),di("background-image: url('assets/img/flags/"+e.form.get("country").value.toLocaleLowerCase()+".png');"),c(1),M("ngIf",e.completeCountriesList[e.form.get("country").value]),c(1),M("ngIf",!e.completeCountriesList[e.form.get("country").value])}}function _J(n,t){if(1&n&&(D(0,"mat-form-field")(1,"div",3)(2,"label",4),E(3),R(4,"translate"),x(),D(5,"mat-select",9)(6,"mat-option",10),E(7),R(8,"translate"),x(),V(9,uJ,5,5,"mat-option",11),D(10,"mat-select-trigger"),V(11,hJ,3,3,"ng-container",2),V(12,mJ,5,4,"ng-container",2),x()()()()),2&n){const e=z();c(3),oe(B(4,6,"apps.vpn-socks-client-settings.filter-dialog.country")),c(3),M("value","-"),c(1),oe(B(8,8,"apps.vpn-socks-client-settings.filter-dialog.any-country")),c(2),M("ngForOf",e.data.availableCountries),c(2),M("ngIf","-"===e.form.get("country").value),c(1),M("ngIf","-"!==e.form.get("country").value)}}class $I{constructor(){this.country="",this.location="",this.key=""}}class wc{constructor(t,e,i){this.data=t,this.dialogRef=e,this.formBuilder=i,this.completeCountriesList=ba}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(wc,i)}ngOnInit(){this.form=this.formBuilder.group({country:[this.data.currentFilters.country?this.data.currentFilters.country:"-"],"location-text":[this.data.currentFilters.location],"key-text":[this.data.currentFilters.key]})}apply(){const t=new $I;let e=this.form.get("country").value.trim();"-"===e&&(e=""),t.country=e,t.location=this.form.get("location-text").value.trim(),t.key=this.form.get("key-text").value.trim(),this.dialogRef.close(t)}}wc.\u0275fac=function(t){return new(t||wc)(F(Ti),F(Nn),F(Cr))},wc.\u0275cmp=qe({type:wc,selectors:[["app-skysocks-client-filter"]],decls:20,vars:15,consts:[[3,"headline","dialog"],[3,"formGroup"],[4,"ngIf"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","location-text","maxlength","100","matInput",""],["formControlName","key-text","maxlength","66","matInput",""],["type","mat-raised-button","color","primary",1,"float-right",3,"action"],["button",""],["formControlName","country","id","country"],[3,"value"],[3,"value",4,"ngFor","ngForOf"],[1,"flag-container"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1),V(3,_J,13,10,"mat-form-field",2),D(4,"mat-form-field")(5,"div",3)(6,"label",4),E(7),R(8,"translate"),x(),xe(9,"input",5),x()(),D(10,"mat-form-field")(11,"div",3)(12,"label",4),E(13),R(14,"translate"),x(),xe(15,"input",6),x()()(),D(16,"app-button",7,8),ye("action",function(){return e.apply()}),E(18),R(19,"translate"),x()()),2&t&&(M("headline",B(1,7,"apps.vpn-socks-client-settings.filter-dialog.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(1),M("ngIf",e.data.availableCountries.length>0),c(4),oe(B(8,9,"apps.vpn-socks-client-settings.filter-dialog.location")),c(6),oe(B(14,11,"apps.vpn-socks-client-settings.filter-dialog.pub-key")),c(5),ce(" ",B(19,13,"apps.vpn-socks-client-settings.filter-dialog.apply")," "))},dependencies:[bi,It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ep,pG,ru,ri,En,xt]});const gJ=["firstInput"];class xc{constructor(t,e){this.dialogRef=t,this.formBuilder=e}static openDialog(t){const e=new Tn;return e.autoFocus=!1,e.width=Rt.smallModalWidth,t.open(xc,e)}ngOnInit(){this.form=this.formBuilder.group({password:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const t=this.form.get("password").value;this.dialogRef.close("-"+t)}}xc.\u0275fac=function(t){return new(t||xc)(F(Nn),F(Cr))},xc.\u0275cmp=qe({type:xc,selectors:[["app-skysocks-client-password"]],viewQuery:function(t,e){if(1&t&&ft(gJ,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:16,vars:14,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"info"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","id","password","formControlName","password","maxlength","100","matInput",""],["firstInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"div",2),E(4),R(5,"translate"),x(),D(6,"mat-form-field")(7,"div",3)(8,"label",4),E(9),R(10,"translate"),x(),xe(11,"input",5,6),x()()(),D(13,"app-button",7),ye("action",function(){return e.finish()}),E(14),R(15,"translate"),x()()),2&t&&(M("headline",B(1,6,"apps.vpn-socks-client-settings.password-dialog.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(2),oe(B(5,8,"apps.vpn-socks-client-settings.password-dialog.info")),c(5),oe(B(10,10,"apps.vpn-socks-client-settings.password-dialog.password")),c(5),ce(" ",B(15,12,"apps.vpn-socks-client-settings.password-dialog.continue-button")," "))},dependencies:[Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ri,En,xt],styles:[".info[_ngcontent-%COMP%]{font-size:.7rem;margin-bottom:15px}"]});class Su{constructor(t){this.http=t,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type="}getServices(t){const e=[];return this.http.get(this.discoveryServiceUrl+(t?"proxy":"vpn")).pipe(np(i=>i.pipe(Di(4e3))),Ce(i=>(i||(i=[]),i.forEach(o=>{const s=new L$,a=o.address.split(":");2===a.length&&(s.address=o.address,s.pk=a[0],s.port=a[1],s.location="",o.geo&&(o.geo.country&&(s.country=o.geo.country,s.location+=ba[o.geo.country.toUpperCase()]?ba[o.geo.country.toUpperCase()]:o.geo.country),o.geo.region&&o.geo.country&&(s.location+=", "),o.geo.region&&(s.region=o.geo.region,s.location+=s.region)),e.push(s))}),e)))}}function bJ(n,t){}Su.\u0275fac=function(t){return new(t||Su)(we(Gl))},Su.\u0275prov=Ye({token:Su,factory:Su.\u0275fac,providedIn:"root"});const vJ=function(n){return{animationDuration:n}},yJ=function(n,t){return{value:n,params:t}};function MJ(n,t){1&n&&vn(0)}const GI=["*"],wJ=["tabListContainer"],xJ=["tabList"],CJ=["tabListInner"],kJ=["nextPaginator"],SJ=["previousPaginator"],DJ=["tabBodyWrapper"],TJ=["tabHeader"];function LJ(n,t){}function EJ(n,t){1&n&&V(0,LJ,0,0,"ng-template",14),2&n&&M("cdkPortalOutlet",z().$implicit.templateLabel)}function IJ(n,t){1&n&&E(0),2&n&&oe(z().$implicit.textLabel)}function PJ(n,t){if(1&n){const e=et();D(0,"div",6,7),ye("click",function(){const o=Pe(e),s=o.$implicit,a=o.index,l=z(),d=ci(1);return Oe(l._handleClick(s,d,a))})("cdkFocusChange",function(o){const a=Pe(e).index;return Oe(z()._tabFocusChanged(o,a))}),xe(2,"span",8)(3,"div",9),D(4,"span",10)(5,"span",11),V(6,EJ,1,1,"ng-template",12),V(7,IJ,1,1,"ng-template",null,13,ws),x()()()}if(2&n){const e=t.$implicit,i=t.index,o=ci(1),s=ci(8),a=z();Gt("mdc-tab--active",a.selectedIndex===i),M("id",a._getTabLabelId(i))("ngClass",e.labelClass)("disabled",e.disabled)("fitInkBarToContent",a.fitInkBarToContent),Ut("tabIndex",a._getTabIndex(e,i))("aria-posinset",i+1)("aria-setsize",a._tabs.length)("aria-controls",a._getTabContentId(i))("aria-selected",a.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),c(3),M("matRippleTrigger",o)("matRippleDisabled",e.disabled||a.disableRipple),c(3),M("ngIf",e.templateLabel)("ngIfElse",s)}}function OJ(n,t){if(1&n){const e=et();D(0,"mat-tab-body",15),ye("_onCentered",function(){return Pe(e),Oe(z()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return Pe(e),Oe(z()._setTabBodyWrapperHeight(o))}),x()}if(2&n){const e=t.$implicit,i=t.index,o=z();Gt("mat-mdc-tab-body-active",o.selectedIndex===i),M("id",o._getTabContentId(i))("ngClass",e.bodyClass)("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Ut("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(i))}}const AJ={translateTab:oa("translateTab",[go("center, void, left-origin-center, right-origin-center",Zn({transform:"none"})),go("left",Zn({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),go("right",Zn({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Er("* => left, * => right, left => center, right => center",Wr("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Er("void => left-origin-center",[Zn({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Wr("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Er("void => right-origin-center",[Zn({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Wr("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let FJ=(()=>{class n extends nl{constructor(e,i,o,s){super(e,i,s),this._host=o,this._centeringSub=T.EMPTY,this._leavingSub=T.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(yo(this._host._isCenterPosition(this._host._position))).subscribe(e=>{e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(F(Ya),F(Qi),F(an(()=>qI)),F(Dt))},n.\u0275dir=Ke({type:n,selectors:[["","matTabBodyHost",""]],features:[dt]}),n})(),RJ=(()=>{class n{constructor(e,i,o){this._elementRef=e,this._dir=i,this._dirChangeSubscription=T.EMPTY,this._translateTabComplete=new X,this._onCentering=new ht,this._beforeCentering=new ht,this._afterLeavingCenter=new ht,this._onCentered=new ht(!0),this.animationDuration="500ms",this.preserveContent=!1,i&&(this._dirChangeSubscription=i.change.subscribe(s=>{this._computePositionAnimationState(s),o.markForCheck()})),this._translateTabComplete.pipe(d1((s,a)=>s.fromState===a.fromState&&s.toState===a.toState)).subscribe(s=>{this._isCenterPosition(s.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(s.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}set position(e){this._positionIndex=e,this._computePositionAnimationState()}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){const i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e}_computePositionAnimationState(e=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center"}_computePositionFromOrigin(e){const i=this._getLayoutDirection();return"ltr"==i&&e<=0||"rtl"==i&&e>0?"left-origin-center":"right-origin-center"}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Or,8),F(ui))},n.\u0275dir=Ke({type:n,inputs:{_content:["content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}}),n})(),qI=(()=>{class n extends RJ{constructor(e,i,o){super(e,i,o)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(Or,8),F(ui))},n.\u0275cmp=qe({type:n,selectors:[["mat-tab-body"]],viewQuery:function(e,i){if(1&e&&ft(nl,5),2&e){let o;nt(o=it())&&(i._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],features:[dt],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-mdc-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(e,i){1&e&&(D(0,"div",0,1),ye("@translateTab.start",function(s){return i._onTranslateTabStarted(s)})("@translateTab.done",function(s){return i._translateTabComplete.next(s)}),V(2,bJ,0,0,"ng-template",2),x()),2&e&&M("@translateTab",cn(3,yJ,i._position,Be(1,vJ,i.animationDuration)))},dependencies:[FJ],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[AJ.translateTab]}}),n})();const NJ=new He("MatTabContent");let YJ=(()=>{class n{constructor(e){this.template=e}}return n.\u0275fac=function(e){return new(e||n)(F(cr))},n.\u0275dir=Ke({type:n,selectors:[["","matTabContent",""]],features:[Zt([{provide:NJ,useExisting:n}])]}),n})();const BJ=new He("MatTabLabel"),KI=new He("MAT_TAB");let HJ=(()=>{class n extends h7{constructor(e,i,o){super(e,i),this._closestTab=o}}return n.\u0275fac=function(e){return new(e||n)(F(cr),F(Qi),F(KI,8))},n.\u0275dir=Ke({type:n,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[Zt([{provide:BJ,useExisting:n}]),dt]}),n})();const sM="mdc-tab-indicator--active",ZI="mdc-tab-indicator--no-transition";class VJ{constructor(t){this._items=t}hide(){this._items.forEach(t=>t.deactivateInkBar())}alignToElement(t){const e=this._items.find(o=>o.elementRef.nativeElement===t),i=this._currentItem;if(i?.deactivateInkBar(),e){const o=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(o),this._currentItem=e}}}function jJ(n){return class extends n{constructor(...t){super(...t),this._fitToContent=!1}get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(t){const e=hn(t);this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(t){const e=this.elementRef.nativeElement;if(!t||!e.getBoundingClientRect||!this._inkBarContentElement)return void e.classList.add(sM);const i=e.getBoundingClientRect(),o=t.width/i.width,s=t.left-i.left;e.classList.add(ZI),this._inkBarContentElement.style.setProperty("transform",`translateX(${s}px) scaleX(${o})`),e.getBoundingClientRect(),e.classList.remove(ZI),e.classList.add(sM),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this.elementRef.nativeElement.classList.remove(sM)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const t=this.elementRef.nativeElement.ownerDocument||document;this._inkBarElement=t.createElement("span"),this._inkBarContentElement=t.createElement("span"),this._inkBarElement.className="mdc-tab-indicator",this._inkBarContentElement.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",this._inkBarElement.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this.elementRef.nativeElement.querySelector(".mdc-tab__content"):this.elementRef.nativeElement).appendChild(this._inkBarElement)}}}const UJ=iu(class{}),WJ=jJ((()=>{class n extends UJ{constructor(e){super(),this.elementRef=e}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}}return n.\u0275fac=function(e){return new(e||n)(F(bt))},n.\u0275dir=Ke({type:n,features:[dt]}),n})());let XI=(()=>{class n extends WJ{}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275dir=Ke({type:n,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(e,i){2&e&&(Ut("aria-disabled",!!i.disabled),Gt("mat-mdc-tab-disabled",i.disabled))},inputs:{disabled:"disabled",fitInkBarToContent:"fitInkBarToContent"},features:[dt]}),n})();const $J=iu(class{}),QI=new He("MAT_TAB_GROUP");let GJ=(()=>{class n extends $J{constructor(e,i){super(),this._viewContainerRef=e,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new X,this.position=null,this.origin=null,this.isActive=!1}get content(){return this._contentPortal}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new ec(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}}return n.\u0275fac=function(e){return new(e||n)(F(Qi),F(QI,8))},n.\u0275dir=Ke({type:n,viewQuery:function(e,i){if(1&e&&ft(cr,7),2&e){let o;nt(o=it())&&(i._implicitContent=o.first)}},inputs:{textLabel:["label","textLabel"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},features:[dt,qi]}),n})(),JI=(()=>{class n extends GJ{get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}}return n.\u0275fac=function(){let t;return function(i){return(t||(t=zn(n)))(i||n)}}(),n.\u0275cmp=qe({type:n,selectors:[["mat-tab"]],contentQueries:function(e,i,o){if(1&e&&(Ji(o,YJ,7,cr),Ji(o,HJ,5)),2&e){let s;nt(s=it())&&(i._explicitContent=s.first),nt(s=it())&&(i.templateLabel=s.first)}},inputs:{disabled:"disabled"},exportAs:["matTab"],features:[Zt([{provide:KI,useExisting:n}]),dt],ngContentSelectors:GI,decls:1,vars:0,template:function(e,i){1&e&&(gr(),V(0,MJ,1,0,"ng-template"))},encapsulation:2}),n})();const eP=el({passive:!0});let ZJ=(()=>{class n{constructor(e,i,o,s,a,l,d){this._elementRef=e,this._changeDetectorRef=i,this._viewportRuler=o,this._dir=s,this._ngZone=a,this._platform=l,this._animationMode=d,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new X,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new X,this._disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new ht,this.indexFocused=new ht,a.runOutsideAngular(()=>{Zd(e.nativeElement,"mouseleave").pipe(Cn(this._destroyed)).subscribe(()=>{this._stopInterval()})})}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=hn(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){e=Mo(e),this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}ngAfterViewInit(){Zd(this._previousPaginator.nativeElement,"touchstart",eP).pipe(Cn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),Zd(this._nextPaginator.nativeElement,"touchstart",eP).pipe(Cn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const e=this._dir?this._dir.change:Ge("ltr"),i=this._viewportRuler.change(150),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new aL(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap(),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe(ti(1)).subscribe(o),vt(e,i,this._items.changes,this._itemsResized()).pipe(Cn(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(s=>{this.indexFocused.emit(s),this._setTabFocus(s)})}_itemsResized(){return"function"!=typeof ResizeObserver?qa:this._items.changes.pipe(yo(this._items),br(e=>new de(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(s=>i.next(s));return e.forEach(s=>o.observe(s.elementRef.nativeElement)),()=>{o.disconnect()}}))),c1(1),Si(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!Ts(e))switch(e.keyCode){case 13:case 32:this.focusIndex!==this.selectedIndex&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e));break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){const e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){if(!this._items)return!0;const i=this._items?this._items.toArray()[e]:null;return!!i&&!i.disabled}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const e=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){return this._scrollTo(this._scrollDistance+("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;const i=this._items?this._items.toArray()[e]:null;if(!i)return;const o=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:a}=i.elementRef.nativeElement;let l,d;"ltr"==this._getLayoutDirection()?(l=s,d=l+a):(d=this._tabListInner.nativeElement.offsetWidth-s,l=d-a);const w=this.scrollDistance,P=this.scrollDistance+o;lP&&(this.scrollDistance+=d-P+60)}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const e=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),xf(650,100).pipe(Cn(vt(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:o,distance:s}=this._scrollHeader(e);(0===s||s>=o)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(Jl),F(Or,8),F(pt),F(fi),F(zi,8))},n.\u0275dir=Ke({type:n,inputs:{disablePagination:"disablePagination"}}),n})(),XJ=(()=>{class n extends ZJ{constructor(e,i,o,s,a,l,d){super(e,i,o,s,a,l,d),this._disableRipple=!1}get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=hn(e)}_itemSelected(e){e.preventDefault()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(Jl),F(Or,8),F(pt),F(fi),F(zi,8))},n.\u0275dir=Ke({type:n,inputs:{disableRipple:"disableRipple"},features:[dt]}),n})(),QJ=(()=>{class n extends XJ{constructor(e,i,o,s,a,l,d){super(e,i,o,s,a,l,d)}ngAfterContentInit(){this._inkBar=new VJ(this._items),super.ngAfterContentInit()}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(Jl),F(Or,8),F(pt),F(fi),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-tab-header"]],contentQueries:function(e,i,o){if(1&e&&Ji(o,XI,4),2&e){let s;nt(s=it())&&(i._items=s)}},viewQuery:function(e,i){if(1&e&&(ft(wJ,7),ft(xJ,7),ft(CJ,7),ft(kJ,5),ft(SJ,5)),2&e){let o;nt(o=it())&&(i._tabListContainer=o.first),nt(o=it())&&(i._tabList=o.first),nt(o=it())&&(i._tabListInner=o.first),nt(o=it())&&(i._nextPaginator=o.first),nt(o=it())&&(i._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(e,i){2&e&&Gt("mat-mdc-tab-header-pagination-controls-enabled",i._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==i._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[dt],ngContentSelectors:GI,decls:13,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-mdc-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(e,i){1&e&&(gr(),D(0,"button",0,1),ye("click",function(){return i._handlePaginatorClick("before")})("mousedown",function(s){return i._handlePaginatorPress("before",s)})("touchend",function(){return i._stopInterval()}),xe(2,"div",2),x(),D(3,"div",3,4),ye("keydown",function(s){return i._handleKeydown(s)}),D(5,"div",5,6),ye("cdkObserveContent",function(){return i._onContentChanges()}),D(7,"div",7,8),vn(9),x()()(),D(10,"button",9,10),ye("mousedown",function(s){return i._handlePaginatorPress("after",s)})("click",function(){return i._handlePaginatorClick("after")})("touchend",function(){return i._stopInterval()}),xe(12,"div",2),x()),2&e&&(Gt("mat-mdc-tab-header-pagination-disabled",i._disableScrollBefore),M("matRippleDisabled",i._disableScrollBefore||i.disableRipple)("disabled",i._disableScrollBefore||null),c(3),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode),c(7),Gt("mat-mdc-tab-header-pagination-disabled",i._disableScrollAfter),M("matRippleDisabled",i._disableScrollAfter||i.disableRipple)("disabled",i._disableScrollAfter||null))},dependencies:[Ls,eL],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"],encapsulation:2}),n})();const nP=new He("MAT_TABS_CONFIG");let JJ=0;const eee=Af(Ff(class{constructor(n){this._elementRef=n}}),"primary");let tee=(()=>{class n extends eee{constructor(e,i,o,s){super(e),this._changeDetectorRef=i,this._animationMode=s,this._tabs=new Vl,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=T.EMPTY,this._tabLabelSubscription=T.EMPTY,this._dynamicHeight=!1,this._selectedIndex=null,this.headerPosition="above",this._disablePagination=!1,this._preserveContent=!1,this.selectedIndexChange=new ht,this.focusChange=new ht,this.animationDone=new ht,this.selectedTabChange=new ht(!0),this._groupId=JJ++,this.animationDuration=o&&o.animationDuration?o.animationDuration:"500ms",this.disablePagination=!(!o||null==o.disablePagination)&&o.disablePagination,this.dynamicHeight=!(!o||null==o.dynamicHeight)&&o.dynamicHeight,this.contentTabIndex=o?.contentTabIndex??null,this.preserveContent=!!o?.preserveContent}get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(e){this._dynamicHeight=hn(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=Mo(e,null)}get animationDuration(){return this._animationDuration}set animationDuration(e){this._animationDuration=/^\d+$/.test(e+"")?e+"ms":e}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=Mo(e,null)}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=hn(e)}get preserveContent(){return this._preserveContent}set preserveContent(e){this._preserveContent=hn(e)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){const i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}ngAfterContentChecked(){const e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));const o=this._tabBodyWrapper.nativeElement;o.style.minHeight=o.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((o,s)=>o.isActive=s===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,o)=>{i.position=o-e,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){const i=this._tabs.toArray();let o;for(let s=0;s{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(yo(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){const i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){const i=new iee;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=vt(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`mat-tab-label-${this._groupId}-${e}`}_getTabContentId(e){return`mat-tab-content-${this._groupId}-${e}`}_setTabBodyWrapperHeight(e){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){const e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,o){e.disabled||(this.selectedIndex=i.focusIndex=o)}_getTabIndex(e,i){return e.disabled?null:i===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(e,i){e&&"mouse"!==e&&"touch"!==e&&(this._tabHeader.focusIndex=i)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(nP,8),F(zi,8))},n.\u0275dir=Ke({type:n,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",preserveContent:"preserveContent",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[dt]}),n})(),nee=(()=>{class n extends tee{constructor(e,i,o,s){super(e,i,o,s),this._fitInkBarToContent=!1,this._stretchTabs=!0,this.fitInkBarToContent=!(!o||null==o.fitInkBarToContent)&&o.fitInkBarToContent}get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=hn(e),this._changeDetectorRef.markForCheck()}get stretchTabs(){return this._stretchTabs}set stretchTabs(e){this._stretchTabs=hn(e)}}return n.\u0275fac=function(e){return new(e||n)(F(bt),F(ui),F(nP,8),F(zi,8))},n.\u0275cmp=qe({type:n,selectors:[["mat-tab-group"]],contentQueries:function(e,i,o){if(1&e&&Ji(o,JI,5),2&e){let s;nt(s=it())&&(i._allTabs=s)}},viewQuery:function(e,i){if(1&e&&(ft(DJ,5),ft(TJ,5)),2&e){let o;nt(o=it())&&(i._tabBodyWrapper=o.first),nt(o=it())&&(i._tabHeader=o.first)}},hostAttrs:[1,"mat-mdc-tab-group"],hostVars:6,hostBindings:function(e,i){2&e&&Gt("mat-mdc-tab-group-dynamic-height",i.dynamicHeight)("mat-mdc-tab-group-inverted-header","below"===i.headerPosition)("mat-mdc-tab-group-stretch-tabs",i.stretchTabs)},inputs:{color:"color",disableRipple:"disableRipple",fitInkBarToContent:"fitInkBarToContent",stretchTabs:["mat-stretch-tabs","stretchTabs"]},exportAs:["matTabGroup"],features:[Zt([{provide:QI,useExisting:n}]),dt],decls:6,vars:6,consts:[[3,"selectedIndex","disableRipple","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mdc-tab mat-mdc-tab mat-mdc-focus-indicator","role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",3,"id","mdc-tab--active","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-mdc-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-mdc-tab-body-active","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-mdc-focus-indicator",3,"id","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange"],["tabNode",""],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering"]],template:function(e,i){1&e&&(D(0,"mat-tab-header",0,1),ye("indexFocused",function(s){return i._focusChanged(s)})("selectFocusedIndex",function(s){return i.selectedIndex=s}),V(2,PJ,9,17,"div",2),x(),D(3,"div",3,4),V(5,OJ,1,11,"mat-tab-body",5),x()),2&e&&(M("selectedIndex",i.selectedIndex||0)("disableRipple",i.disableRipple),c(2),M("ngForOf",i._tabs),c(1),Gt("_mat-animation-noopable","NoopAnimations"===i._animationMode),c(2),M("ngForOf",i._tabs))},dependencies:[Rn,bi,It,nl,Ls,w9,qI,XI,QJ],styles:['.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-tab.mdc-tab{height:48px;flex-grow:0}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none}.mat-mdc-tab .mdc-tab__text-label{display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab-indicator__content--underline,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2}),n})();class iee{}let ree=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[ia,Vn,Jd,Yf,u1,y1,Vn]}),n})();const oee=["button"],see=["settingsButton"],aee=["firstInput"];function lee(n,t){1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),oe(B(3,1,"apps.vpn-socks-client-settings.remote-key-length-error")))}function cee(n,t){1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.vpn-socks-client-settings.remote-key-chars-error")))}const Cc=function(n){return{"element-disabled":n}};function dee(n,t){if(1&n&&(D(0,"mat-form-field",3)(1,"div",4)(2,"label",5),E(3),R(4,"translate"),x(),xe(5,"input",20),x()()),2&n){const e=z();M("ngClass",Be(4,Cc,e.disableDismiss)),c(3),oe(B(4,2,"apps.vpn-socks-client-settings.password"))}}function uee(n,t){1&n&&(D(0,"div",21)(1,"mat-icon",22),E(2,"warning"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce(" ",B(4,2,"apps.vpn-socks-client-settings.password-history-warning")," "))}function hee(n,t){1&n&&xe(0,"app-loading-indicator",23),2&n&&M("showWhite",!1)}function fee(n,t){1&n&&(D(0,"div",24)(1,"mat-icon",22),E(2,"error"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce(" ",B(4,2,"apps.vpn-socks-client-settings.no-elements")," "))}function pee(n,t){1&n&&(D(0,"div",31),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"apps.vpn-socks-client-settings.no-filter")," "))}function mee(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e[1]))}}function _ee(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e[2])}}function gee(n,t){if(1&n&&(D(0,"div",31)(1,"span"),E(2),R(3,"translate"),x(),V(4,mee,3,3,"ng-container",16),V(5,_ee,2,1,"ng-container",16),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e[0])," "),c(2),M("ngIf",e[1]),c(1),M("ngIf",e[2])}}function bee(n,t){1&n&&(D(0,"div",24)(1,"mat-icon",22),E(2,"error"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce(" ",B(4,2,"apps.vpn-socks-client-settings.no-elements-for-filters")," "))}const iP=function(n){return{highlighted:n}};function vee(n,t){if(1&n&&(Ue(0),D(1,"span",3),E(2),x(),We()),2&n){const e=t.$implicit,i=t.index;c(1),M("ngClass",Be(2,iP,i%2!=0)),c(1),oe(e)}}function yee(n,t){if(1&n&&(Ue(0),D(1,"div",38),xe(2,"div"),x(),We()),2&n){const e=z(2).$implicit;c(2),di("background-image: url('assets/img/flags/"+e.country.toLocaleLowerCase()+".png');")}}function Mee(n,t){if(1&n&&(Ue(0),D(1,"span",3),E(2),x(),We()),2&n){const e=t.$implicit,i=t.index;c(1),M("ngClass",Be(2,iP,i%2!=0)),c(1),oe(e)}}function wee(n,t){if(1&n&&(D(0,"div",31)(1,"span"),E(2),R(3,"translate"),x(),D(4,"span"),E(5,"\xa0 "),V(6,yee,3,2,"ng-container",16),V(7,Mee,3,4,"ng-container",35),x()()),2&n){const e=z().$implicit,i=z(2);c(2),oe(B(3,3,"apps.vpn-socks-client-settings.location")),c(4),M("ngIf",e.country),c(1),M("ngForOf",i.getHighlightedTextParts(e.location,i.currentFilters.location))}}function xee(n,t){if(1&n){const e=et();D(0,"div",32)(1,"button",33),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).saveChanges(s.pk,null,!1,s.location))}),D(2,"div",34)(3,"div",31)(4,"span"),E(5),R(6,"translate"),x(),D(7,"span"),E(8,"\xa0"),V(9,vee,3,4,"ng-container",35),x()(),V(10,wee,8,5,"div",28),x()(),D(11,"button",36),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).copyPk(s.pk))}),R(12,"translate"),D(13,"mat-icon",37),E(14,"filter_none"),x()()()}if(2&n){const e=t.$implicit,i=z(2);c(1),M("ngClass",Be(10,Cc,i.disableDismiss)),c(4),oe(B(6,6,"apps.vpn-socks-client-settings.key")),c(4),M("ngForOf",i.getHighlightedTextParts(e.pk,i.currentFilters.key)),c(1),M("ngIf",e.location),c(1),M("matTooltip",B(12,8,"apps.vpn-socks-client-settings.copy-pk-info")),c(2),M("inline",!0)}}function Cee(n,t){if(1&n){const e=et();Ue(0),D(1,"button",25),ye("click",function(){return Pe(e),Oe(z().changeFilters())}),D(2,"div",26)(3,"div",27)(4,"mat-icon",22),E(5,"filter_list"),x()(),D(6,"div"),V(7,pee,3,3,"div",28),V(8,gee,6,5,"div",29),D(9,"div",30),E(10),R(11,"translate"),x()()()(),V(12,bee,5,4,"div",15),V(13,xee,15,12,"div",18),We()}if(2&n){const e=z();c(4),M("inline",!0),c(3),M("ngIf",0===e.currentFiltersTexts.length),c(1),M("ngForOf",e.currentFiltersTexts),c(2),oe(B(11,6,"apps.vpn-socks-client-settings.click-to-change")),c(2),M("ngIf",0===e.filteredProxiesFromDiscovery.length),c(1),M("ngForOf",e.proxiesFromDiscoveryToShow)}}const kee=function(n,t){return{currentElementsRange:n,totalElements:t}};function See(n,t){if(1&n){const e=et();D(0,"div",39)(1,"span"),E(2),R(3,"translate"),x(),D(4,"button",40),ye("click",function(){return Pe(e),Oe(z().goToPreviousPage())}),D(5,"mat-icon"),E(6,"chevron_left"),x()(),D(7,"button",40),ye("click",function(){return Pe(e),Oe(z().goToNextPage())}),D(8,"mat-icon"),E(9,"chevron_right"),x()()()}if(2&n){const e=z();c(2),oe(Ct(3,1,"apps.vpn-socks-client-settings.pagination-info",cn(4,kee,e.currentRange,e.filteredProxiesFromDiscovery.length)))}}const Dee=function(n){return{number:n}};function Tee(n,t){if(1&n&&(D(0,"div")(1,"div",24)(2,"mat-icon",22),E(3,"error"),x(),E(4),R(5,"translate"),x()()),2&n){const e=z();c(2),M("inline",!0),c(2),ce(" ",Ct(5,2,"apps.vpn-socks-client-settings.no-history",Be(5,Dee,e.maxHistoryElements))," ")}}function Lee(n,t){1&n&&Jo(0)}function Eee(n,t){1&n&&Jo(0)}function Iee(n,t){if(1&n&&(Ue(0),D(1,"span"),E(2),x(),We()),2&n){const e=z(2).$implicit;c(2),ce(" ",e.note,"")}}function Pee(n,t){1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),ce(" ",B(3,1,"apps.vpn-socks-client-settings.note-entered-manually"),""))}function Oee(n,t){if(1&n&&(Ue(0),D(1,"span"),E(2),x(),We()),2&n){const e=z(4).$implicit;c(2),ce(" (",e.location,")")}}function Aee(n,t){if(1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),V(4,Oee,3,1,"ng-container",16),We()),2&n){const e=z(3).$implicit;c(2),ce(" ",B(3,2,"apps.vpn-socks-client-settings.note-obtained"),""),c(2),M("ngIf",e.location)}}function Fee(n,t){if(1&n&&(Ue(0),V(1,Pee,4,3,"ng-container",16),V(2,Aee,5,4,"ng-container",16),We()),2&n){const e=z(2).$implicit;c(1),M("ngIf",e.enteredManually),c(1),M("ngIf",!e.enteredManually)}}function Ree(n,t){if(1&n&&(D(0,"div",46)(1,"div",47)(2,"div",31)(3,"span"),E(4),R(5,"translate"),x(),D(6,"span"),E(7),x()(),D(8,"div",31)(9,"span"),E(10),R(11,"translate"),x(),V(12,Iee,3,1,"ng-container",16),V(13,Fee,3,2,"ng-container",16),x()(),D(14,"div",48)(15,"div",49)(16,"mat-icon",22),E(17,"add"),x()()()()),2&n){const e=z().$implicit;c(4),oe(B(5,6,"apps.vpn-socks-client-settings.key")),c(3),ce(" ",e.key,""),c(3),oe(B(11,8,"apps.vpn-socks-client-settings.note")),c(2),M("ngIf",e.note),c(1),M("ngIf",!e.note),c(3),M("inline",!0)}}function Nee(n,t){if(1&n){const e=et();D(0,"div",32)(1,"button",41),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().useFromHistory(s))}),V(2,Lee,1,0,"ng-container",42),x(),D(3,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().changeNote(s))}),R(4,"translate"),D(5,"mat-icon",37),E(6,"edit"),x()(),D(7,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().removeFromHistory(s.key))}),R(8,"translate"),D(9,"mat-icon",37),E(10,"close"),x()(),D(11,"button",44),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().openHistoryOptions(s))}),V(12,Eee,1,0,"ng-container",42),x(),V(13,Ree,18,10,"ng-template",null,45,ws),x()}if(2&n){const e=ci(14),i=z();c(1),M("ngClass",Be(12,Cc,i.disableDismiss)),c(1),M("ngTemplateOutlet",e),c(1),M("matTooltip",B(4,8,"apps.vpn-socks-client-settings.change-note")),c(2),M("inline",!0),c(2),M("matTooltip",B(8,10,"apps.vpn-socks-client-settings.remove-entry")),c(2),M("inline",!0),c(2),M("ngClass",Be(14,Cc,i.disableDismiss)),c(1),M("ngTemplateOutlet",e)}}function Yee(n,t){1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),oe(B(3,1,"apps.vpn-socks-client-settings.dns-error")))}function Bee(n,t){1&n&&(D(0,"div",56)(1,"mat-icon",22),E(2,"warning"),x(),E(3),R(4,"translate"),x()),2&n&&(c(1),M("inline",!0),c(2),ce(" ",B(4,2,"apps.vpn-socks-client-settings.settings-changed-alert")," "))}function Hee(n,t){if(1&n){const e=et();D(0,"mat-tab",1),R(1,"translate"),D(2,"form",2)(3,"mat-form-field",3)(4,"div",4)(5,"label",5),E(6),R(7,"translate"),x(),xe(8,"input",50),x(),D(9,"mat-error"),V(10,Yee,4,3,"ng-container",16),x()(),D(11,"div",51)(12,"mat-checkbox",52),E(13),R(14,"translate"),D(15,"mat-icon",53),R(16,"translate"),E(17,"help"),x()()(),V(18,Bee,5,4,"div",54),D(19,"app-button",12,55),ye("action",function(){return Pe(e),Oe(z().saveSettings())}),E(21),R(22,"translate"),x()()()}if(2&n){const e=z();M("label",B(1,12,"apps.vpn-socks-client-settings.settings-tab")),c(2),M("formGroup",e.settingsForm),c(1),M("ngClass",Be(22,Cc,e.disableDismiss)),c(3),oe(B(7,14,"apps.vpn-socks-client-settings.dns")),c(4),M("ngIf",!e.settingsForm.get("dns").valid),c(2),M("ngClass",Be(24,Cc,e.disableDismiss)),c(1),ce(" ",B(14,16,"apps.vpn-socks-client-settings.killswitch-check")," "),c(2),M("inline",!0)("matTooltip",B(16,18,"apps.vpn-socks-client-settings.killswitch-info")),c(3),M("ngIf",e.settingsChanged),c(1),M("disabled",!e.settingsForm.valid||!e.settingsChanged||e.working),c(2),ce(" ",B(22,20,"apps.vpn-socks-client-settings.save-settings")," ")}}class kc{constructor(t,e,i,o,s,a,l,d,w){this.data=t,this.dialogRef=e,this.appsService=i,this.formBuilder=o,this.snackbarService=s,this.dialog=a,this.proxyDiscoveryService=l,this.clipboardService=d,this.storageService=w,this.socksHistoryStorageKey="SkysocksClientHistory_",this.vpnHistoryStorageKey="VpnClientHistory_",this.maxHistoryElements=10,this.maxElementsPerPage=10,this.countriesFromDiscovery=new Set,this.loadingFromDiscovery=!0,this.numberOfPages=1,this.currentPage=1,this.currentRange="1 - 1",this.currentFilters=new $I,this.currentFiltersTexts=[],this.configuringVpn=!1,this.initialKillswitchSetting=!1,this.initialDnsSetting="",this.working=!1,-1!==t.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.largeModalWidth,t.open(kc,i)}ngOnInit(){this.migrateDataToHvStorage(),this.discoverySubscription=this.proxyDiscoveryService.getServices(!this.configuringVpn).subscribe(i=>{this.proxiesFromDiscovery=i,this.proxiesFromDiscovery.forEach(o=>{o.country&&this.countriesFromDiscovery.add(o.country.toUpperCase())}),this.filterProxies(),this.loadingFromDiscovery=!1});const t=this.storageService.getDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey);this.history=t?JSON.parse(t):[];let e="";if(this.data.args&&this.data.args.length>0)for(let i=0;ithis.firstInput.nativeElement.focus())}ngOnDestroy(){this.discoverySubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}migrateDataToHvStorage(){const t=localStorage.getItem(this.socksHistoryStorageKey);t&&(this.storageService.setDataForHv(this.socksHistoryStorageKey,t),localStorage.removeItem(this.socksHistoryStorageKey));const e=localStorage.getItem(this.vpnHistoryStorageKey);e&&(this.storageService.setDataForHv(this.vpnHistoryStorageKey,e),localStorage.removeItem(this.vpnHistoryStorageKey))}get disableDismiss(){return this.button&&this.button.isLoading||this.settingsButton&&this.settingsButton.isLoading}validateIp(){if(this.settingsForm){const t=this.settingsForm.get("dns").value;return Wt.checkIfIpValidOrEmpty(t)?null:{invalid:!0}}return null}get settingsChanged(){return this.initialKillswitchSetting!==this.settingsForm.get("killswitch").value||this.initialDnsSetting!==this.settingsForm.get("dns").value}changeFilters(){const t=[];this.countriesFromDiscovery.forEach(i=>t.push(i)),wc.openDialog(this.dialog,{currentFilters:this.currentFilters,availableCountries:t}).afterClosed().subscribe(i=>{i&&(this.currentFilters=i,this.filterProxies())})}getHighlightedTextParts(t,e){if(!e)return[t];const i=t.toLowerCase(),o=e.toLowerCase();let s=!0,a=0;const l=[];for(;s;){const d=i.indexOf(o,a);-1===d?s=!1:(l.push(t.substring(a,d)),l.push(t.substring(d,d+e.length)),a=d+e.length)}return l.push(t.substring(a)),l}filterProxies(){this.filteredProxiesFromDiscovery=this.currentFilters.country||this.currentFilters.location||this.currentFilters.key?this.proxiesFromDiscovery.filter(t=>!(this.currentFilters.country&&(!t.country||!t.country.toUpperCase().includes(this.currentFilters.country.toUpperCase()))||this.currentFilters.location&&!t.location.toLowerCase().includes(this.currentFilters.location.toLowerCase())||this.currentFilters.key&&!t.address.toLowerCase().includes(this.currentFilters.key.toLowerCase()))):this.proxiesFromDiscovery,this.updateCurrentFilters(),this.updatePagination()}updateCurrentFilters(){if(this.currentFiltersTexts=[],this.currentFilters.country){const t=ba[this.currentFilters.country.toUpperCase()]?ba[this.currentFilters.country.toUpperCase()]:this.currentFilters.country.toUpperCase();this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.country","",t])}this.currentFilters.location&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.location","",this.currentFilters.location]),this.currentFilters.key&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.pub-key","",this.currentFilters.key])}updatePagination(){this.currentPage=1,this.numberOfPages=Math.ceil(this.filteredProxiesFromDiscovery.length/this.maxElementsPerPage),this.showCurrentPage()}goToNextPage(){this.currentPage>=this.numberOfPages||(this.currentPage+=1,this.showCurrentPage())}goToPreviousPage(){this.currentPage<=1||(this.currentPage-=1,this.showCurrentPage())}showCurrentPage(){this.proxiesFromDiscoveryToShow=this.filteredProxiesFromDiscovery.slice((this.currentPage-1)*this.maxElementsPerPage,this.currentPage*this.maxElementsPerPage),this.currentRange=(this.currentPage-1)*this.maxElementsPerPage+1+" - ",this.currentRange+=this.currentPage{1===i?this.useFromHistory(t):2===i?this.changeNote(t):3===i&&this.removeFromHistory(t.key)})}removeFromHistory(t){const i=Wt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.remove-from-history-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{this.history=this.history.filter(s=>s.key!==t);const o=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,o),i.close()})}changeNote(t){Mc.openDialog(this.dialog,t.note).afterClosed().subscribe(e=>{if(e){e=e.substr(1,e.length-1),this.history.forEach(o=>{o.key===t.key&&(o.note=e)});const i=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,i),e?this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"):this.snackbarService.showWarning("apps.vpn-socks-client-settings.default-note-warning")}})}useFromHistory(t){t.hasPassword?xc.openDialog(this.dialog).afterClosed().subscribe(e=>{e&&(e=e.substr(1,e.length-1),this.saveChanges(t.key,e,t.enteredManually,t.location,t.note))}):this.saveChanges(t.key,null,t.enteredManually,t.location,t.note)}saveChanges(t=null,e=null,i=null,o=null,s=null){if(!this.form.valid&&!t||this.working)return;i=!t||i,e=t?e:this.form.get("password").value,t=t||this.form.get("pk").value;const l=Wt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.change-key-confirmation");l.componentInstance.operationAccepted.subscribe(()=>{l.close(),this.continueSavingChanges(t,e,i,o,s)})}saveSettings(){if(this.working)return;const t={killswitch:this.settingsForm.get("killswitch").value,dns:this.settingsForm.get("dns").value};this.settingsButton.showLoading(!1),this.button.showLoading(!1),this.working=!0,this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,t).subscribe(()=>{this.initialKillswitchSetting=t.killswitch,this.initialDnsSetting=t.dns,this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.settingsButton.reset(!1),this.button.reset(!1),Je.refreshCurrentDisplayedData()},e=>{this.working=!1,this.settingsButton.showError(!1),this.button.reset(!1),e=Kt(e),this.snackbarService.showError(e)})}copyPk(t){this.clipboardService.copy(t)?this.snackbarService.showDone("apps.vpn-socks-client-settings.copied-pk-info"):this.snackbarService.showError("apps.vpn-socks-client-settings.copy-pk-error")}continueSavingChanges(t,e,i,o,s){if(this.working)return;this.button.showLoading(!1),this.settingsButton&&this.settingsButton.showLoading(!1),this.working=!0;const a={pk:t};this.configuringVpn&&(a.passcode=e||""),this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,a).subscribe(()=>this.onServerDataChangeSuccess(t,!!e,i,o,s),l=>this.onServerDataChangeError(l))}onServerDataChangeSuccess(t,e,i,o,s){this.history=this.history.filter(d=>d.key!==t);const a={key:t,enteredManually:i};if(e&&(a.hasPassword=e),o&&(a.location=o),s&&(a.note=s),this.history=[a].concat(this.history),this.history.length>this.maxHistoryElements){const d=this.history.length-this.maxHistoryElements;this.history.splice(this.history.length-d,d)}this.form.get("pk").setValue(t);const l=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,l),Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.button.reset(!1),this.settingsButton&&this.settingsButton.reset(!1)}onServerDataChangeError(t){this.working=!1,this.button.showError(!1),this.settingsButton&&this.settingsButton.reset(!1),t=Kt(t),this.snackbarService.showError(t)}}kc.\u0275fac=function(t){return new(t||kc)(F(Ti),F(Nn),F(xo),F(Cr),F(on),F(Ln),F(Su),F(As),F(ni))},kc.\u0275cmp=qe({type:kc,selectors:[["app-skysocks-client-settings"]],viewQuery:function(t,e){if(1&t&&(ft(oee,5),ft(see,5),ft(aee,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.settingsButton=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:34,vars:36,consts:[[3,"headline","dialog","disableDismiss"],[3,"label"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","pk","formControlName","pk","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],[3,"ngClass",4,"ngIf"],["class","password-history-warning",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["class","loading-indicator",3,"showWhite",4,"ngIf"],["class","info-text",4,"ngIf"],[4,"ngIf"],["class","paginator",4,"ngIf"],["class","d-flex",4,"ngFor","ngForOf"],[3,"label",4,"ngIf"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],[1,"password-history-warning"],[3,"inline"],[1,"loading-indicator",3,"showWhite"],[1,"info-text"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click"],[1,"filter-button-content"],[1,"icon-area"],["class","item",4,"ngIf"],["class","item",4,"ngFor","ngForOf"],[1,"blue-part"],[1,"item"],[1,"d-flex"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"ngClass","click"],[1,"button-content"],[4,"ngFor","ngForOf"],["mat-button","",1,"list-button","grey-button-background",3,"matTooltip","click"],[1,"option-button-icon",3,"inline"],[1,"flag-container"],[1,"paginator"],["mat-icon-button","",1,"hard-grey-button-background",3,"click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-none","d-md-inline",3,"ngClass","click"],[4,"ngTemplateOutlet"],["mat-button","",1,"list-button","grey-button-background","d-none","d-md-inline",3,"matTooltip","click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-md-none",3,"ngClass","click"],["content",""],[1,"button-content","d-flex"],[1,"full-size-area"],[1,"options-container"],[1,"small-button","d-md-none"],["formControlName","dns","maxlength","15","matInput",""],[1,"main-theme","settings-option"],["color","primary","formControlName","killswitch",3,"ngClass"],[1,"help-icon",3,"inline","matTooltip"],["class","settings-changed-warning",4,"ngIf"],["settingsButton",""],[1,"settings-changed-warning"]],template:function(t,e){if(1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"mat-tab-group")(3,"mat-tab",1),R(4,"translate"),D(5,"form",2)(6,"mat-form-field",3)(7,"div",4)(8,"label",5),E(9),R(10,"translate"),x(),xe(11,"input",6,7),x(),D(13,"mat-error"),V(14,lee,4,3,"ng-container",8),x(),V(15,cee,3,3,"ng-template",null,9,ws),x(),V(17,dee,6,6,"mat-form-field",10),V(18,uee,5,4,"div",11),D(19,"app-button",12,13),ye("action",function(){return e.saveChanges()}),E(21),R(22,"translate"),x()()(),D(23,"mat-tab",1),R(24,"translate"),V(25,hee,1,1,"app-loading-indicator",14),V(26,fee,5,4,"div",15),V(27,Cee,14,8,"ng-container",16),V(28,See,10,7,"div",17),x(),D(29,"mat-tab",1),R(30,"translate"),V(31,Tee,6,7,"div",16),V(32,Nee,15,16,"div",18),x(),V(33,Hee,23,26,"mat-tab",19),x()()),2&t){const i=ci(16);M("headline",B(1,22,"apps.vpn-socks-client-settings."+(e.configuringVpn?"vpn-title":"socks-title")))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(3),M("label",B(4,24,"apps.vpn-socks-client-settings.remote-visor-tab")),c(2),M("formGroup",e.form),c(1),M("ngClass",Be(34,Cc,e.disableDismiss)),c(3),oe(B(10,26,"apps.vpn-socks-client-settings.public-key")),c(5),M("ngIf",!e.form.get("pk").hasError("pattern"))("ngIfElse",i),c(3),M("ngIf",e.configuringVpn),c(1),M("ngIf",e.form&&e.form.get("password").value),c(1),M("disabled",!e.form.valid||e.working),c(2),ce(" ",B(22,28,"apps.vpn-socks-client-settings.save")," "),c(2),M("label",B(24,30,"apps.vpn-socks-client-settings.discovery-tab")),c(2),M("ngIf",e.loadingFromDiscovery),c(1),M("ngIf",!e.loadingFromDiscovery&&0===e.proxiesFromDiscovery.length),c(1),M("ngIf",!e.loadingFromDiscovery&&e.proxiesFromDiscovery.length>0),c(1),M("ngIf",e.numberOfPages>1),c(1),M("label",B(30,32,"apps.vpn-socks-client-settings.history-tab")),c(2),M("ngIf",0===e.history.length),c(1),M("ngForOf",e.history),c(1),M("ngIf",e.configuringVpn)}},dependencies:[Rn,bi,It,Rd,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,JI,nee,$r,rl,yn,vi,ma,ri,En,Gr,xt],styles:["mat-tab-header{border-bottom:solid 1px rgba(0,0,0,.12)}form[_ngcontent-%COMP%]{margin-top:15px}.info-text[_ngcontent-%COMP%]{margin-top:20px;margin-bottom:2px;text-align:center;color:#202226}.info-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.loading-indicator[_ngcontent-%COMP%]{height:100px}.password-history-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative;top:-5px}.list-button[_ngcontent-%COMP%]{border-bottom:solid 1px rgba(0,0,0,.12);height:auto;justify-content:left}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%]{padding:15px 0;white-space:normal;line-height:1.3;color:#202226;text-align:left;display:flex;font-size:.8rem;word-break:break-word}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .icon-area[_ngcontent-%COMP%]{font-size:20px;margin-right:15px;color:#999;opacity:.4;align-self:center}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{margin:4px 0}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .blue-part[_ngcontent-%COMP%]{color:#215f9e}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%]{text-align:left;padding:15px 0;white-space:normal}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .full-size-area[_ngcontent-%COMP%]{flex-grow:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{line-height:1.3;margin:4px 0;font-size:.8rem;color:#202226;word-break:break-all}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{background-color:#ff0}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%]{flex-shrink:0;margin-left:5px;text-align:right;line-height:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%] .small-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:14px;font-size:14px;margin-left:5px}.list-button[_ngcontent-%COMP%] .option-button-icon[_ngcontent-%COMP%]{font-size:14px;margin:0!important;overflow:visible!important}.paginator[_ngcontent-%COMP%]{float:right;margin-top:15px;display:flex;align-items:center}@media (max-width: 767px){.paginator[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.7rem}}.paginator[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:5px;display:flex}.settings-option[_ngcontent-%COMP%]{margin-top:20px}.settings-option[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}.settings-changed-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative}"]});const Vee=["button"],rP=function(n){return{"element-disabled":n}},oP=function(n){return{number:n}};function jee(n,t){if(1&n){const e=et();Ue(0,7),D(1,"div",8)(2,"mat-form-field",9)(3,"div",10)(4,"label",11),E(5),R(6,"translate"),x(),xe(7,"input",12),x()(),D(8,"mat-form-field",9)(9,"div",10)(10,"label",13),E(11),R(12,"translate"),x(),xe(13,"input",14),x()(),D(14,"button",15),ye("click",function(){const s=Pe(e).index;return Oe(z().removeSetting(s))}),R(15,"translate"),D(16,"mat-icon",16),E(17,"close"),x()()(),We()}if(2&n){const e=t.index,i=z();c(1),M("formGroupName",e),c(1),M("ngClass",Be(15,rP,i.disableDismiss)),c(3),oe(Ct(6,7,"apps.user-app-settings.name",Be(17,oP,e+1))),c(3),M("ngClass",Be(19,rP,i.disableDismiss)),c(3),oe(Ct(12,10,"apps.user-app-settings.value",Be(21,oP,e+1))),c(3),M("matTooltip",B(15,13,"apps.user-app-settings.remove")),c(2),M("inline",!0)}}const zee=function(n){return{name:n}};class Sc{constructor(t,e,i,o,s,a){this.data=t,this.appsService=e,this.formBuilder=i,this.dialogRef=o,this.snackbarService=s,this.dialog=a,this.appName="",this.appName=t.name}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.mediumModalWidth,t.open(Sc,i)}ngOnInit(){if(this.form=this.formBuilder.group({settings:this.formBuilder.array([])}),this.data.args&&this.data.args.length>0)for(let t=0;t{let s=o.get("name").value,a=o.get("value").value;s=s&&s.trim(),a=a&&a.trim(),s?(i[s]=a,e+=1):t=!0}),t||0===e){const s=Wt.createConfirmationDialog(this.dialog,"apps.user-app-settings."+(0===e?"empty-confirmation":"invalid-confirmation"));s.componentInstance.operationAccepted.subscribe(()=>{s.close(),this.continueSavingChanges(i)})}else this.continueSavingChanges(i)}continueSavingChanges(t){this.button.showLoading();const e={custom_setting:t};this.operationSubscription=this.appsService.changeAppSettings(Je.getCurrentNodeKey(),this.data.name,e).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){Je.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.user-app-settings.changes-made"),this.dialogRef.close()}onError(t){this.button.showError(),t=Kt(t),this.snackbarService.showError(t)}}function Uee(n,t){1&n&&(D(0,"span",14),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.apps-list.title-official")))}function Wee(n,t){1&n&&(D(0,"span",14),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.apps-list.title-user")))}function $ee(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function Gee(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function qee(n,t){if(1&n&&(D(0,"div",18)(1,"span"),E(2),R(3,"translate"),x(),V(4,$ee,3,3,"ng-container",19),V(5,Gee,2,1,"ng-container",19),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function Kee(n,t){if(1&n){const e=et();D(0,"div",15),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,qee,6,5,"div",16),D(2,"div",17),E(3),R(4,"translate"),x()()}if(2&n){const e=z();c(1),M("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),oe(B(4,2,"filters.press-to-remove"))}}function Zee(n,t){if(1&n){const e=et();D(0,"mat-icon",20),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),E(2,"filter_list"),x()}2&n&&M("inline",!0)("matTooltip",B(1,2,"filters.filter-action"))}function Xee(n,t){1&n&&(D(0,"mat-icon",21),E(1,"more_horiz"),x()),2&n&&(z(),M("matMenuTriggerFor",ci(10)))}Sc.\u0275fac=function(t){return new(t||Sc)(F(Ti),F(xo),F(Cr),F(Nn),F(on),F(Ln))},Sc.\u0275cmp=qe({type:Sc,selectors:[["app-user-app-settings"]],viewQuery:function(t,e){if(1&t&&ft(Vee,5),2&t){let i;nt(i=it())&&(e.button=i.first)}},decls:15,vars:20,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup"],["formArrayName","settings",4,"ngFor","ngForOf"],[1,"add-setting",3,"click"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["formArrayName","settings"],[1,"settings-row",3,"formGroupName"],[3,"ngClass"],[1,"field-container"],["for","name",1,"field-label"],["id","name","formControlName","name","matInput",""],["for","value",1,"field-label"],["id","value","formControlName","value","matInput",""],["mat-button","",1,"transparent-button",3,"matTooltip","click"],[3,"inline"]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),E(3),R(4,"translate"),x(),D(5,"form",2),V(6,jee,18,23,"ng-container",3),x(),D(7,"div")(8,"a",4),ye("click",function(){return e.addSetting()}),E(9),R(10,"translate"),x()(),D(11,"app-button",5,6),ye("action",function(){return e.saveChanges()}),E(13),R(14,"translate"),x()()),2&t&&(M("headline",Ct(1,9,"apps.user-app-settings.title",Be(18,zee,e.appName)))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(3),oe(B(4,12,"apps.user-app-settings.info")),c(2),M("formGroup",e.form),c(1),M("ngForOf",e.settingsControls),c(3),ce("+ ",B(10,14,"apps.user-app-settings.add"),""),c(2),M("disabled",!e.form.valid),c(2),ce(" ",B(14,16,"apps.user-app-settings.save")," "))},dependencies:[Rn,bi,Bi,Ri,Ni,Yi,ii,Li,Zf,Xf,nr,kr,$r,yn,vi,ri,En,xt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}.settings-row[_ngcontent-%COMP%]{display:flex}mat-form-field[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px}button[_ngcontent-%COMP%]{flex-shrink:0;width:50px;padding:0!important;align-self:center;border-radius:10px}button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0!important}.add-setting[_ngcontent-%COMP%]{color:#215f9e!important;cursor:pointer}"]});const sP=function(n,t){return["/nodes",n,"apps-list",t]};function Qee(n,t){if(1&n&&xe(0,"app-paginator",22),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",cn(4,sP,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Jee(n,t){if(1&n&&(D(0,"mat-icon",37),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function ete(n,t){if(1&n&&(D(0,"mat-icon",37),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function tte(n,t){if(1&n&&(D(0,"mat-icon",37),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function nte(n,t){if(1&n&&(D(0,"mat-icon",37),E(1),x()),2&n){const e=z(2);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function ite(n,t){if(1&n&&(xe(0,"i",46),R(1,"translate")),2&n){const e=z().$implicit,i=z(2);eo(i.getStateClass(e)),M("matTooltip",B(1,3,i.getStateTooltip(e)))}}const aP=function(n){return{error:n}};function rte(n,t){if(1&n&&(D(0,"mat-icon",47),R(1,"translate"),E(2,"warning"),x()),2&n){const e=z().$implicit;M("inline",!0)("matTooltip",Ct(1,2,"apps.status-failed-tooltip",Be(5,aP,e.detailedStatus?e.detailedStatus:"")))}}function ote(n,t){if(1&n&&(D(0,"a",48)(1,"button",49),R(2,"translate"),D(3,"mat-icon",37),E(4,"open_in_browser"),x()()()),2&n){const e=z().$implicit;M("href",z(2).getLink(e),Oo),c(1),M("matTooltip",B(2,3,"apps.open")),c(2),M("inline",!0)}}function ste(n,t){if(1&n){const e=et();D(0,"button",43),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).config(o))}),R(1,"translate"),D(2,"mat-icon",37),E(3,"settings"),x()()}2&n&&(M("matTooltip",B(1,2,"apps.settings")),c(2),M("inline",!0))}function ate(n,t){if(1&n){const e=et();D(0,"tr")(1,"td",39)(2,"mat-checkbox",40),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(3,"td"),V(4,ite,2,5,"i",41),V(5,rte,3,7,"mat-icon",42),x(),D(6,"td"),E(7),x(),D(8,"td"),E(9),x(),D(10,"td")(11,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).changeAppAutostart(s))}),R(12,"translate"),D(13,"mat-icon",37),E(14),x()()(),D(15,"td",30),V(16,ote,5,5,"a",44),V(17,ste,4,4,"button",45),D(18,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).viewLogs(s))}),R(19,"translate"),D(20,"mat-icon",37),E(21,"list"),x()(),D(22,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).changeAppState(s))}),R(23,"translate"),D(24,"mat-icon",37),E(25),x()()()()}if(2&n){const e=t.$implicit,i=z(2);c(2),M("checked",i.selections.get(e.name)),c(2),M("ngIf",2!==e.status),c(1),M("ngIf",2===e.status),c(2),ce(" ",e.name," "),c(2),ce(" ",e.port," "),c(2),M("matTooltip",B(12,15,e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart")),c(2),M("inline",!0),c(1),oe(e.autostart?"done":"close"),c(2),M("ngIf",i.getLink(e)),c(1),M("ngIf",!i.appsWithoutConfig.has(e.name)),c(1),M("matTooltip",B(19,17,"apps.view-logs")),c(2),M("inline",!0),c(2),M("matTooltip",B(23,19,"apps."+(0===e.status||2===e.status?"start-app":"stop-app"))),c(2),M("inline",!0),c(1),oe(0===e.status||2===e.status?"play_arrow":"stop")}}function lte(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.label")))}function cte(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"tables.inverted-order")))}function dte(n,t){if(1&n&&(D(0,"a",55),ye("click",function(i){return i.stopPropagation()}),D(1,"button",56),R(2,"translate"),D(3,"mat-icon"),E(4,"open_in_browser"),x()()()),2&n){const e=z().$implicit;M("href",z(2).getLink(e),Oo),c(1),M("matTooltip",B(2,2,"apps.open"))}}function ute(n,t){if(1&n){const e=et();D(0,"tr")(1,"td")(2,"div",34)(3,"div",50)(4,"mat-checkbox",40),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),x()(),D(5,"div",35)(6,"div",51)(7,"span",1),E(8),R(9,"translate"),x(),E(10),x(),D(11,"div",51)(12,"span",1),E(13),R(14,"translate"),x(),E(15),x(),D(16,"div",51)(17,"span",1),E(18),R(19,"translate"),x(),E(20,": "),D(21,"span"),E(22),R(23,"translate"),x()(),D(24,"div",51)(25,"span",1),E(26),R(27,"translate"),x(),E(28,": "),D(29,"span"),E(30),R(31,"translate"),x()()(),xe(32,"div",52),D(33,"div",36),V(34,dte,5,4,"a",53),D(35,"button",54),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(36,"translate"),D(37,"mat-icon"),E(38),x()()()()()()}if(2&n){const e=t.$implicit,i=z(2);c(4),M("checked",i.selections.get(e.name)),c(4),oe(B(9,16,"apps.apps-list.app-name")),c(2),ce(": ",e.name," "),c(3),oe(B(14,18,"apps.apps-list.port")),c(2),ce(": ",e.port," "),c(3),oe(B(19,20,"apps.apps-list.state")),c(3),eo(i.getSmallScreenStateClass(e)+" title"),c(1),ce(" ",Ct(23,22,i.getSmallScreenStateTextVar(e),Be(31,aP,e.detailedStatus?e.detailedStatus:""))," "),c(4),oe(B(27,25,"apps.apps-list.auto-start")),c(3),eo((e.autostart?"green-clear-text":"red-clear-text")+" title"),c(1),ce(" ",B(31,27,e.autostart?"apps.apps-list.autostart-enabled":"apps.apps-list.autostart-disabled")," "),c(4),M("ngIf",i.getLink(e)),c(1),M("matTooltip",B(36,29,"common.options")),c(3),oe("add")}}const hte=function(n,t){return["/nodes",n,"apps-list",t,"1"]};function fte(n,t){if(1&n&&xe(0,"app-view-all-link",57),2&n){const e=z(2);M("numberOfElements",e.filteredApps.length)("linkParts",cn(3,hte,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const pte=function(n,t){return{"small-node-list-margins":n,"full-node-list-margins":t}},mte=function(n){return{"d-lg-none d-xl-table":n}},_te=function(n){return{"d-lg-table d-xl-none":n}};function gte(n,t){if(1&n){const e=et();D(0,"div",23)(1,"div",24)(2,"table",25)(3,"tr"),xe(4,"th"),D(5,"th",26),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.stateSortData))}),R(6,"translate"),xe(7,"span",27),V(8,Jee,2,2,"mat-icon",28),x(),D(9,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.nameSortData))}),E(10),R(11,"translate"),V(12,ete,2,2,"mat-icon",28),x(),D(13,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.portSortData))}),E(14),R(15,"translate"),V(16,tte,2,2,"mat-icon",28),x(),D(17,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.autoStartSortData))}),E(18),R(19,"translate"),V(20,nte,2,2,"mat-icon",28),x(),xe(21,"th",30),x(),V(22,ate,26,21,"tr",31),x(),D(23,"table",32)(24,"tr",33),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(25,"td")(26,"div",34)(27,"div",35)(28,"div",1),E(29),R(30,"translate"),x(),D(31,"div"),E(32),R(33,"translate"),V(34,lte,3,3,"ng-container",19),V(35,cte,3,3,"ng-container",19),x()(),D(36,"div",36)(37,"mat-icon",37),E(38,"keyboard_arrow_down"),x()()()()(),V(39,ute,39,33,"tr",31),x(),V(40,fte,1,6,"app-view-all-link",38),x()()}if(2&n){const e=z();c(1),M("ngClass",cn(31,pte,e.showShortList_,!e.showShortList_)),c(1),M("ngClass",Be(34,mte,e.showShortList_)),c(3),M("matTooltip",B(6,19,"apps.apps-list.state-tooltip")),c(3),M("ngIf",e.dataSorter.currentSortingColumn===e.stateSortData),c(2),ce(" ",B(11,21,"apps.apps-list.app-name")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.nameSortData),c(2),ce(" ",B(15,23,"apps.apps-list.port")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.portSortData),c(2),ce(" ",B(19,25,"apps.apps-list.auto-start")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.autoStartSortData),c(2),M("ngForOf",e.dataSource),c(1),M("ngClass",Be(36,_te,e.showShortList_)),c(6),oe(B(30,27,"tables.sorting-title")),c(3),ce("",B(33,29,e.dataSorter.currentSortingColumn.label)," "),c(2),M("ngIf",e.dataSorter.currentlySortingByLabel),c(1),M("ngIf",e.dataSorter.sortingInReverseOrder),c(2),M("inline",!0),c(2),M("ngForOf",e.dataSource),c(1),M("ngIf",e.showShortList_&&e.numberOfPages>1)}}function bte(n,t){1&n&&(D(0,"span",61),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.apps-list.empty-official")))}function vte(n,t){1&n&&(D(0,"span",61),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.apps-list.empty-user")))}function yte(n,t){1&n&&(D(0,"span",61),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"apps.apps-list.empty-with-filter")))}function Mte(n,t){if(1&n&&(D(0,"div",23)(1,"div",58)(2,"mat-icon",59),E(3,"warning"),x(),V(4,bte,3,3,"span",60),V(5,vte,3,3,"span",60),V(6,yte,3,3,"span",60),x()()),2&n){const e=z();c(2),M("inline",!0),c(2),M("ngIf",0===e.allAppsForType.length&&e.showOfficialApps),c(1),M("ngIf",0===e.allAppsForType.length&&!e.showOfficialApps),c(1),M("ngIf",0!==e.allAppsForType.length)}}function wte(n,t){if(1&n&&xe(0,"app-paginator",22),2&n){const e=z();M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",cn(4,sP,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const xte=function(n){return{"paginator-icons-fixer":n}};class Du{constructor(t,e,i,o,s,a,l){this.appsService=t,this.dialog=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listIdForOfficialApps="op",this.listIdForUserApps="up",this.officialAppsList=new Set(["skychat","skysocks","skysocks-client","vpn-client","vpn-server"]),this.showOfficialApps=!0,this.stateSortData=new Yn(["status"],"apps.apps-list.state",Jt.NumberReversed),this.nameSortData=new Yn(["name"],"apps.apps-list.app-name",Jt.Text),this.portSortData=new Yn(["port"],"apps.apps-list.port",Jt.Number),this.autoStartSortData=new Yn(["autostart"],"apps.apps-list.auto-start",Jt.Boolean),this.selections=new Map,this.appsWithoutConfig=new Set(["skychat"]),this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"apps.apps-list.filter-dialog.state",keyNameInElementsArray:"status",type:Xn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.state-options.any"},{value:"1",label:"apps.apps-list.filter-dialog.state-options.running"},{value:"0",label:"apps.apps-list.filter-dialog.state-options.stopped"}]},{filterName:"apps.apps-list.filter-dialog.name",keyNameInElementsArray:"name",type:Xn.TextInput,maxlength:50},{filterName:"apps.apps-list.filter-dialog.port",keyNameInElementsArray:"port",type:Xn.TextInput,maxlength:8},{filterName:"apps.apps-list.filter-dialog.autostart",keyNameInElementsArray:"autostart",type:Xn.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.autostart-options.any"},{value:"true",label:"apps.apps-list.filter-dialog.autostart-options.enabled"},{value:"false",label:"apps.apps-list.filter-dialog.autostart-options.disabled"}]}],this.refreshAgain=!1,this.operationSubscriptionsGroup=[],this.navigationsSubscription=this.route.paramMap.subscribe(d=>{if(d.has("showOfficialApps")&&(this.showOfficialApps=d.get("showOfficialApps").toUpperCase()==="true".toUpperCase()),d.has("page")){let w=Number.parseInt(d.get("page"),10);(isNaN(w)||w<1)&&(w=1),this.currentPageInUrl=w,this.recalculateElementsToShow()}})}set showShortList(t){this.showShortList_=t,this.dataSorter&&this.dataSorter.setData(this.filteredApps)}set apps(t){this.allApps=t||[],this.allApps&&(this.allAppsForType=[],this.allApps.forEach(e=>{(this.showOfficialApps&&this.officialAppsList.has(e.name)||!this.showOfficialApps&&!this.officialAppsList.has(e.name))&&this.allAppsForType.push(e)}),this.dataFilterer&&this.dataFilterer.setData(this.allAppsForType))}ngOnInit(){const t=this.showOfficialApps?this.listIdForOfficialApps:this.listIdForUserApps;this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,[this.stateSortData,this.nameSortData,this.portSortData,this.autoStartSortData],1,t),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataSorter&&this.dataSorter.setData(this.filteredApps),this.dataFilterer=new gu(this.dialog,this.route,this.router,this.filterProperties,t),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(i=>{this.filteredApps=i,this.dataSorter.setData(this.filteredApps)}),this.allAppsForType&&this.dataFilterer.setData(this.allAppsForType)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(t=>t.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}getLink(t){if("skychat"===t.name.toLocaleLowerCase()&&this.nodeIp&&0!==t.status&&2!==t.status){let e="8001";if(t.args)for(let i=0;i{e&&(t=!0)}),t}changeAllSelections(t){this.selections.forEach((e,i)=>{this.selections.set(i,t)})}changeStateOfSelected(t){const e=[];if(this.selections.forEach((i,o)=>{i&&(t&&(0===this.appsMap.get(o).status||2===this.appsMap.get(o).status)||!t&&0!==this.appsMap.get(o).status&&2!==this.appsMap.get(o).status)&&e.push(o)}),t)this.changeAppsValRecursively(e,!1,t);else{const i=Wt.createConfirmationDialog(this.dialog,"apps.stop-selected-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeAppsValRecursively(e,!1,t,i)})}}changeAutostartOfSelected(t){const e=[];this.selections.forEach((o,s)=>{o&&(t&&!this.appsMap.get(s).autostart||!t&&this.appsMap.get(s).autostart)&&e.push(s)});const i=Wt.createConfirmationDialog(this.dialog,t?"apps.enable-autostart-selected-confirmation":"apps.disable-autostart-selected-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeAppsValRecursively(e,!0,t,i)})}showOptionsDialog(t){const e=[{icon:"list",label:"apps.view-logs"},{icon:0===t.status||2===t.status?"play_arrow":"stop",label:"apps."+(0===t.status||2===t.status?"start-app":"stop-app")},{icon:t.autostart?"close":"done",label:t.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart"}];this.appsWithoutConfig.has(t.name)||e.push({icon:"settings",label:"apps.settings"}),Hi.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{1===i?this.viewLogs(t):2===i?this.changeAppState(t):3===i?this.changeAppAutostart(t):4===i&&this.config(t)})}changeAppState(t){if(0===t.status||2===t.status)this.changeSingleAppVal(this.startChangingAppState(t.name,!0));else{const e=Wt.createConfirmationDialog(this.dialog,"apps.stop-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppState(t.name,!1),e)})}}changeAppAutostart(t){const e=Wt.createConfirmationDialog(this.dialog,t.autostart?"apps.disable-autostart-confirmation":"apps.enable-autostart-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppAutostart(t.name,!t.autostart),e)})}changeSingleAppVal(t,e=null){this.operationSubscriptionsGroup.push(t.subscribe(()=>{e&&e.close(),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")},i=>{i=Kt(i),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),e?e.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg):this.snackbarService.showError(i)}))}viewLogs(t){0!==t.status&&2!==t.status?vc.openDialog(this.dialog,t):this.snackbarService.showError("apps.apps-list.unavailable-logs-error")}config(t){"skysocks"===t.name||"vpn-server"===t.name?yc.openDialog(this.dialog,t):"skysocks-client"===t.name||"vpn-client"===t.name?kc.openDialog(this.dialog,t):"skychat"===t.name?this.snackbarService.showError("apps.error"):Sc.openDialog(this.dialog,t)}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredApps){const t=this.showShortList_?Rt.maxShortListElements:Rt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredApps.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.appsToShow=this.filteredApps.slice(e,e+t),this.appsMap=new Map,this.appsToShow.forEach(s=>{this.appsMap.set(s.name,s),this.selections.has(s.name)||this.selections.set(s.name,!1)});const o=[];this.selections.forEach((s,a)=>{this.appsMap.has(a)||o.push(a)}),o.forEach(s=>{this.selections.delete(s)})}else this.appsToShow=null,this.selections=new Map;this.dataSource=this.appsToShow,this.refreshAgain&&(this.refreshAgain=!1,setTimeout(()=>Je.refreshCurrentDisplayedData(),2e3))}startChangingAppState(t,e){return this.appsService.changeAppState(Je.getCurrentNodeKey(),t,e).pipe(Ce(i=>(null!=i.status&&this.dataSource.forEach(o=>{o.name===t&&(o.status=i.status,o.detailedStatus=i.detailed_status)}),i)))}startChangingAppAutostart(t,e){return this.appsService.changeAppAutostart(Je.getCurrentNodeKey(),t,e)}changeAppsValRecursively(t,e,i,o=null){if(!t||0===t.length)return setTimeout(()=>Je.refreshCurrentDisplayedData(),50),this.snackbarService.showWarning("apps.operation-unnecessary"),void(o&&o.close());let s;s=e?this.startChangingAppAutostart(t[t.length-1],i):this.startChangingAppState(t[t.length-1],i),this.operationSubscriptionsGroup.push(s.subscribe(()=>{t.pop(),0===t.length?(o&&o.close(),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")):this.changeAppsValRecursively(t,e,i,o)},a=>{a=Kt(a),setTimeout(()=>{this.refreshAgain=!0,Je.refreshCurrentDisplayedData()},50),o?o.componentInstance.showDone("confirmation.error-header-text",a.translatableErrorMsg):this.snackbarService.showError(a)}))}}Du.\u0275fac=function(t){return new(t||Du)(F(xo),F(Ln),F(yr),F(Qt),F(on),F(oo),F(ni))},Du.\u0275cmp=qe({type:Du,selectors:[["app-node-app-list"]],inputs:{nodePK:"nodePK",nodeIp:"nodeIp",showOfficialApps:"showOfficialApps",showShortList:"showShortList",apps:"apps"},decls:33,vars:35,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"matTooltip","click"],[1,"dot-outline-white"],[3,"inline",4,"ngIf"],[1,"sortable-column",3,"click"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],[3,"class","matTooltip",4,"ngIf"],["class","red-text",3,"inline","matTooltip",4,"ngIf"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip","click"],["target","_blank","rel","noreferrer nofollow noopener","class","skychat-link",3,"href",4,"ngIf"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip","click",4,"ngIf"],[3,"matTooltip"],[1,"red-text",3,"inline","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[1,"check-part"],[1,"list-row"],[1,"margin-part"],["target","_blank","rel","noreferrer nofollow noopener","class","skychat-link",3,"href","click",4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href","click"],["mat-icon-button","",1,"transparent-button",3,"matTooltip"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1),V(2,Uee,3,3,"span",2),V(3,Wee,3,3,"span",2),V(4,Kee,5,4,"div",3),x(),D(5,"div",4)(6,"div",5),V(7,Zee,3,4,"mat-icon",6),V(8,Xee,2,1,"mat-icon",7),D(9,"mat-menu",8,9)(11,"div",10),ye("click",function(){return e.changeAllSelections(!0)}),E(12),R(13,"translate"),x(),D(14,"div",10),ye("click",function(){return e.changeAllSelections(!1)}),E(15),R(16,"translate"),x(),D(17,"div",11),ye("click",function(){return e.changeStateOfSelected(!0)}),E(18),R(19,"translate"),x(),D(20,"div",11),ye("click",function(){return e.changeStateOfSelected(!1)}),E(21),R(22,"translate"),x(),D(23,"div",11),ye("click",function(){return e.changeAutostartOfSelected(!0)}),E(24),R(25,"translate"),x(),D(26,"div",11),ye("click",function(){return e.changeAutostartOfSelected(!1)}),E(27),R(28,"translate"),x()()(),V(29,Qee,1,7,"app-paginator",12),x()(),V(30,gte,41,38,"div",13),V(31,Mte,7,4,"div",13),V(32,wte,1,7,"app-paginator",12)),2&t&&(M("ngClass",Be(33,xte,!e.showShortList_&&e.numberOfPages>1&&e.dataSource)),c(2),M("ngIf",e.showShortList_&&e.showOfficialApps),c(1),M("ngIf",e.showShortList_&&!e.showOfficialApps),c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),M("ngIf",e.allAppsForType&&e.allAppsForType.length>0),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("overlapTrigger",!1),c(3),ce(" ",B(13,21,"selection.select-all")," "),c(3),ce(" ",B(16,23,"selection.unselect-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(19,25,"selection.start-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(22,27,"selection.stop-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(25,29,"selection.enable-autostart-all")," "),c(2),Dn("disabled",!e.hasSelectedElements()),c(1),ce(" ",B(28,31,"selection.disable-autostart-all")," "),c(2),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource),c(1),M("ngIf",e.dataSource&&e.dataSource.length>0),c(1),M("ngIf",!e.dataSource||0===e.dataSource.length),c(1),M("ngIf",!e.showShortList_&&e.numberOfPages>1&&e.dataSource))},dependencies:[Rn,bi,It,$r,rl,yn,vi,vu,_a,yu,ma,hl,Fs,xt],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:150px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.skychat-link[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.skychat-link[_ngcontent-%COMP%] .big-action-button[_ngcontent-%COMP%]{margin-right:5px}"]});class ap{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.apps=t.apps,this.nodeIp=t.ip})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function Cte(n,t){1&n&&xe(0,"app-transport-list",1),2&n&&M("node",z().node)("showShortList",!1)}ap.\u0275fac=function(t){return new(t||ap)},ap.\u0275cmp=qe({type:ap,selectors:[["app-apps"]],decls:2,vars:10,consts:[[3,"showOfficialApps","apps","showShortList","nodePK","nodeIp"]],template:function(t,e){1&t&&xe(0,"app-node-app-list",0)(1,"app-node-app-list",0),2&t&&(M("showOfficialApps",!0)("apps",e.apps)("showShortList",!0)("nodePK",e.nodePK)("nodeIp",e.nodeIp),c(1),M("showOfficialApps",!1)("apps",e.apps)("showShortList",!0)("nodePK",e.nodePK)("nodeIp",e.nodeIp))},dependencies:[Du]});class lp{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>this.node=t)}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function kte(n,t){if(1&n&&xe(0,"app-route-list",1),2&n){const e=z();M("routes",e.routes)("showShortList",!1)("nodePK",e.nodePK)}}lp.\u0275fac=function(t){return new(t||lp)},lp.\u0275cmp=qe({type:lp,selectors:[["app-all-transports"]],decls:1,vars:1,consts:[[3,"node","showShortList",4,"ngIf"],[3,"node","showShortList"]],template:function(t,e){1&t&&V(0,Cte,1,2,"app-transport-list",0),2&t&&M("ngIf",e.node)},dependencies:[It,Cu]});class cp{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.routes=t.routes})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}function Ste(n,t){if(1&n&&xe(0,"app-node-app-list",1),2&n){const e=z();M("apps",e.apps)("showShortList",!1)("nodePK",e.nodePK)}}cp.\u0275fac=function(t){return new(t||cp)},cp.\u0275cmp=qe({type:cp,selectors:[["app-all-routes"]],decls:1,vars:1,consts:[[3,"routes","showShortList","nodePK",4,"ngIf"],[3,"routes","showShortList","nodePK"]],template:function(t,e){1&t&&V(0,kte,1,3,"app-route-list",0),2&t&&M("ngIf",e.routes)},dependencies:[It,ku]});class dp{ngOnInit(){this.dataSubscription=Je.currentNode.subscribe(t=>{this.nodePK=t.localPk,this.apps=t.apps})}ngOnDestroy(){this.dataSubscription.unsubscribe()}}dp.\u0275fac=function(t){return new(t||dp)},dp.\u0275cmp=qe({type:dp,selectors:[["app-all-apps"]],decls:1,vars:1,consts:[[3,"apps","showShortList","nodePK",4,"ngIf"],[3,"apps","showShortList","nodePK"]],template:function(t,e){1&t&&V(0,Ste,1,3,"app-node-app-list",0),2&t&&M("ngIf",e.apps)},dependencies:[It,Du]});const Dte=["button"],Tte=["firstInput"],Lte=function(n){return{"element-disabled":n}};class pl{constructor(t,e,i,o,s){this.dialogRef=t,this.data=e,this.formBuilder=i,this.snackbarService=o,this.routeService=s}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(pl,i)}ngOnInit(){this.form=this.formBuilder.group({min:[this.data.minHops,Vt.compose([Vt.required,Vt.maxLength(3),Vt.pattern("^[0-9]+$")])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.routeService.setMinHops(this.data.nodePk,Number.parseInt(this.form.get("min").value,10)).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(t){this.dialogRef.close(!0),this.snackbarService.showDone("router-config.done")}onError(t){this.button.showError(),this.operationSubscription=null,t=Kt(t),this.snackbarService.showError(t)}}pl.\u0275fac=function(t){return new(t||pl)(F(Nn),F(Ti),F(Cr),F(on),F(gc))},pl.\u0275cmp=qe({type:pl,selectors:[["app-router-config"]],viewQuery:function(t,e){if(1&t&&(ft(Dte,5),ft(Tte,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:21,vars:22,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","min","maxlength","3","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),E(3),R(4,"translate"),x(),D(5,"form",2)(6,"mat-form-field")(7,"div",3)(8,"label",4),E(9),R(10,"translate"),x(),xe(11,"input",5,6),x(),D(13,"mat-error")(14,"span"),E(15),R(16,"translate"),x()()()(),D(17,"app-button",7,8),ye("action",function(){return e.save()}),E(19),R(20,"translate"),x()()),2&t&&(M("headline",B(1,10,"router-config.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(3),oe(B(4,12,"router-config.info")),c(2),M("formGroup",e.form)("ngClass",Be(20,Lte,e.disableDismiss)),c(4),oe(B(10,14,"router-config.min-hops")),c(6),oe(B(16,16,"router-config.min-hops-error")),c(2),M("disabled",!e.form.valid),c(2),ce(" ",B(20,18,"router-config.save-config-button")," "))},dependencies:[Rn,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,ri,En,xt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]});const Ete=["button"],Ite=["firstInput"],Pte=function(n){return{"element-disabled":n}};class Dc{constructor(t,e,i,o,s,a){this.dialogRef=t,this.data=e,this.formBuilder=i,this.snackbarService=o,this.nodeService=s,this.dialog=a}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(Dc,i)}ngOnInit(){this.form=this.formBuilder.group({address:[this.data.currentAddress,Vt.compose([Vt.minLength(20),Vt.maxLength(40)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}startSaving(){if(this.form.valid&&!this.operationSubscription)if(this.form.get("address").value)this.finishSaving();else{const e=Wt.createConfirmationDialog(this.dialog,"rewards-address-config.empty-warning");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishSaving()})}}finishSaving(){this.button.showLoading();const t=this.form.get("address").value;let e=this.nodeService.setRewardsAddress(this.data.nodePk,t);t||(e=this.nodeService.deleteRewardsAddress(this.data.nodePk)),this.operationSubscription=e.subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(t){this.dialogRef.close(!0),this.snackbarService.showDone("rewards-address-config.done")}onError(t){this.button.showError(),this.operationSubscription=null,t=Kt(t),this.snackbarService.showError(t)}}Dc.\u0275fac=function(t){return new(t||Dc)(F(Nn),F(Ti),F(Cr),F(on),F(so),F(Ln))},Dc.\u0275cmp=qe({type:Dc,selectors:[["app-rewards-address-config"]],viewQuery:function(t,e){if(1&t&&(ft(Ete,5),ft(Ite,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:25,vars:25,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],["href","https://github.com/skycoin/skywire/blob/master/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","40","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1)(3,"span"),E(4),R(5,"translate"),x(),D(6,"a",2),E(7),R(8,"translate"),x()(),D(9,"form",3)(10,"mat-form-field")(11,"div",4)(12,"label",5),E(13),R(14,"translate"),x(),xe(15,"input",6,7),x(),D(17,"mat-error")(18,"span"),E(19),R(20,"translate"),x()()()(),D(21,"app-button",8,9),ye("action",function(){return e.startSaving()}),E(23),R(24,"translate"),x()()),2&t&&(M("headline",B(1,11,"rewards-address-config.title"))("dialog",e.dialogRef)("disableDismiss",e.disableDismiss),c(4),ce("",B(5,13,"rewards-address-config.info")," "),c(3),ce(" ",B(8,15,"rewards-address-config.more-info-link")," "),c(2),M("formGroup",e.form)("ngClass",Be(23,Pte,e.disableDismiss)),c(4),oe(B(14,17,"rewards-address-config.address")),c(6),oe(B(20,19,"rewards-address-config.address-error")),c(2),M("disabled",!e.form.valid),c(2),ce(" ",B(24,21,"rewards-address-config.save-config-button")," "))},dependencies:[Rn,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,ri,En,xt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]});class up{constructor(t){this.clipboardService=t,this.copyEvent=new ht,this.errorEvent=new ht,this.value=""}ngOnDestroy(){this.copyEvent.complete(),this.errorEvent.complete()}copyToClipboard(){this.clipboardService.copy(this.value)?this.copyEvent.emit(this.value):this.errorEvent.emit()}}function Ote(n,t){if(1&n&&(Ue(0),xe(1,"app-truncated-text",3),D(2,"mat-icon",4),E(3,"filter_none"),x(),We()),2&n){const e=z();c(1),M("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.text),c(1),M("inline",!0)}}function Ate(n,t){if(1&n&&(D(0,"div",5)(1,"div",6),E(2),x(),D(3,"mat-icon",4),E(4,"filter_none"),x()()),2&n){const e=z();c(2),oe(e.text),c(1),M("inline",!0)}}up.\u0275fac=function(t){return new(t||up)(F(As))},up.\u0275dir=Ke({type:up,selectors:[["","clipboard",""]],hostBindings:function(t,e){1&t&&ye("click",function(){return e.copyToClipboard()})},inputs:{value:["clipboard","value"]},outputs:{copyEvent:"copyEvent",errorEvent:"errorEvent"}});const Fte=function(n){return{text:n}},Rte=function(){return{"tooltip-word-break":!0}};class Tc{constructor(t){this.snackbarService=t,this.short=!1,this.shortSimple=!1,this.shortTextLength=5}onCopyToClipboardClicked(){this.snackbarService.showDone("copy.copied")}}Tc.\u0275fac=function(t){return new(t||Tc)(F(on))},Tc.\u0275cmp=qe({type:Tc,selectors:[["app-copy-to-clipboard-text"]],inputs:{text:"text",short:"short",shortSimple:"shortSimple",shortTextLength:"shortTextLength"},decls:4,vars:11,consts:[[1,"wrapper","highlight-internal-icon",3,"clipboard","matTooltip","matTooltipClass","copyEvent"],[4,"ngIf"],["class","d-flex",4,"ngIf"],[1,"text-margin",3,"short","showTooltip","shortTextLength","text"],[3,"inline"],[1,"d-flex"],[1,"single-line","text-margin"]],template:function(t,e){1&t&&(D(0,"div",0),ye("copyEvent",function(){return e.onCopyToClipboardClicked()}),R(1,"translate"),V(2,Ote,4,5,"ng-container",1),V(3,Ate,5,2,"div",2),x()),2&t&&(M("clipboard",e.text)("matTooltip",Ct(1,5,e.short||e.shortSimple?"copy.tooltip-with-text":"copy.tooltip",Be(8,Fte,e.text)))("matTooltipClass",Un(10,Rte)),c(2),M("ngIf",!e.shortSimple),c(1),M("ngIf",e.shortSimple))},dependencies:[It,yn,vi,up,mu,xt],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] .text-margin[_ngcontent-%COMP%]{margin-right:5px}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.6rem;-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline!important}']});var Nte=N(6149);const Yte=["chart"];class Rs{constructor(t){this.height=100,this.animated=!1,this.min=void 0,this.max=void 0,this.differ=t.find([]).create(null)}ngAfterViewInit(){this.chart=new Nte.Chart(this.chartElement.nativeElement,{type:"line",data:{labels:Array.from(Array(this.data.length).keys()),datasets:[{data:this.data,backgroundColor:["rgba(10, 15, 22, 0.4)"],borderColor:["rgba(10, 15, 22, 0.4)"],borderWidth:1}]},options:{maintainAspectRatio:!1,events:[],legend:{display:!1},tooltips:{enabled:!1},scales:{yAxes:[{display:!1,ticks:{suggestedMin:0}}],xAxes:[{display:!1}]},elements:{point:{radius:0}},layout:{padding:{left:0,right:0,top:Rs.topInternalMargin,bottom:0}}}}),void 0!==this.min&&void 0!==this.max&&(this.updateMinAndMax(),this.chart.update(0))}ngDoCheck(){this.differ.diff(this.data)&&this.chart&&(void 0!==this.min&&void 0!==this.max&&this.updateMinAndMax(),this.animated?this.chart.update():this.chart.update(0))}ngOnDestroy(){this.chart&&this.chart.destroy()}updateMinAndMax(){this.chart.options.scales={yAxes:[{display:!1,ticks:{min:this.min,max:this.max}}],xAxes:[{display:!1}]}}}Rs.topInternalMargin=5,Rs.\u0275fac=function(t){return new(t||Rs)(F(Vh))},Rs.\u0275cmp=qe({type:Rs,selectors:[["app-line-chart"]],viewQuery:function(t,e){if(1&t&&ft(Yte,5),2&t){let i;nt(i=it())&&(e.chartElement=i.first)}},inputs:{data:"data",height:"height",animated:"animated",min:"min",max:"max"},decls:3,vars:2,consts:[[1,"chart-container"],["chart",""]],template:function(t,e){1&t&&(D(0,"div",0),xe(1,"canvas",null,1),x()),2&t&&di("height: "+e.height+"px;")},styles:[".chart-container[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden;border-radius:10px}"]});const lP=function(){return{showValue:!0}},cP=function(){return{showUnit:!0}};function Bte(n,t){if(1&n&&(D(0,"div",1),xe(1,"app-line-chart",2),D(2,"div",3)(3,"span",4),E(4),R(5,"translate"),x(),D(6,"span",5)(7,"span",6),E(8),R(9,"autoScale"),x(),D(10,"span",7),E(11),R(12,"autoScale"),x()()()()),2&n){const e=z();c(1),M("data",e.trafficData.sentHistory),c(3),oe(B(5,4,"common.uploaded")),c(4),oe(Ct(9,6,e.trafficData.totalSent,Un(12,lP))),c(3),oe(Ct(12,9,e.trafficData.totalSent,Un(13,cP)))}}function Hte(n,t){if(1&n&&(D(0,"div",1),xe(1,"app-line-chart",2),D(2,"div",3)(3,"span",4),E(4),R(5,"translate"),x(),D(6,"span",5)(7,"span",6),E(8),R(9,"autoScale"),x(),D(10,"span",7),E(11),R(12,"autoScale"),x()()()()),2&n){const e=z();c(1),M("data",e.trafficData.receivedHistory),c(3),oe(B(5,4,"common.downloaded")),c(4),oe(Ct(9,6,e.trafficData.totalReceived,Un(12,lP))),c(3),oe(Ct(12,9,e.trafficData.totalReceived,Un(13,cP)))}}class hp{}function Vte(n,t){if(1&n&&(D(0,"span",4)(1,"span",5),E(2),R(3,"translate"),x(),xe(4,"app-copy-to-clipboard-text",9),x()),2&n){const e=z(2);c(2),ce("",B(3,2,"node.details.node-info.public-ip")," "),c(2),Dn("text",e.node.publicIp)}}function jte(n,t){if(1&n&&(D(0,"span",4)(1,"span",5),E(2),R(3,"translate"),x(),xe(4,"app-copy-to-clipboard-text",9),x()),2&n){const e=z(2);c(2),ce("",B(3,2,"node.details.node-info.ip")," "),c(2),Dn("text",e.node.ip)}}function zte(n,t){if(1&n&&(Ue(0),xe(1,"app-copy-to-clipboard-text",9),We()),2&n){const e=z(2);c(1),Dn("text",e.node.dmsgServerPk)}}function Ute(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"node.details.node-info.no-dmsg-server")," "))}function Wte(n,t){if(1&n&&(D(0,"span",4)(1,"span",5),E(2),R(3,"translate"),x(),E(4),x()),2&n){const e=z(2);c(2),ce("",B(3,2,"node.details.node-info.skybian-version")," "),c(2),ce(" ",e.node.skybianBuildVersion," ")}}hp.\u0275fac=function(t){return new(t||hp)},hp.\u0275cmp=qe({type:hp,selectors:[["app-charts"]],inputs:{trafficData:"trafficData"},decls:2,vars:2,consts:[["class","small-rounded-elevated-box chart",4,"ngIf"],[1,"small-rounded-elevated-box","chart"],[3,"data"],[1,"info"],[1,"text"],[1,"rate"],[1,"value"],[1,"unit"]],template:function(t,e){1&t&&(V(0,Bte,13,14,"div",0),V(1,Hte,13,14,"div",0)),2&t&&(M("ngIf",e.trafficData),c(1),M("ngIf",e.trafficData))},dependencies:[It,Rs,xt,rr],styles:[".chart[_ngcontent-%COMP%]{position:relative;margin-bottom:20px}.chart[_ngcontent-%COMP%]:last-child{margin-bottom:10px}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;display:flex;justify-content:space-between;align-items:flex-end;padding:10px;width:100%}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#f8f9f9}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.text[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .unit[_ngcontent-%COMP%]{font-size:.8rem;padding-left:5px}"]});const aM=function(n){return{time:n}};function $te(n,t){if(1&n&&(D(0,"mat-icon",16),R(1,"translate"),E(2," info "),x()),2&n){const e=z(2);M("inline",!0)("matTooltip",Ct(1,2,"node.details.node-info.time.minutes",Be(5,aM,e.timeOnline.totalMinutes)))}}function Gte(n,t){if(1&n&&(Ue(0),xe(1,"app-copy-to-clipboard-text",18),D(2,"a",19)(3,"mat-icon",20),R(4,"translate"),E(5," open_in_browser "),x()(),We()),2&n){const e=z(2);c(1),Dn("text",e.node.rewardsAddress),c(1),M("href","https://explorer.skycoin.com/app/address/"+e.node.rewardsAddress,Oo),c(1),M("inline",!0)("matTooltip",B(4,4,"node.details.rewards-info.open-in-explorer"))}}function qte(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),D(3,"mat-icon",16),R(4,"translate"),E(5,"info"),x(),We()),2&n&&(c(1),ce(" ",B(2,3,"node.details.rewards-info.not-registered")," "),c(2),M("inline",!0)("matTooltip",B(4,5,"node.details.rewards-info.not-registered-info")))}function Kte(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"node.details.rewards-info.change-address-button")," "))}function Zte(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"node.details.rewards-info.set-address-button")," "))}function Xte(n,t){if(1&n){const e=et();D(0,"div",1)(1,"div",2)(2,"span",3),E(3),R(4,"translate"),x(),D(5,"span",4)(6,"span",5),E(7),R(8,"translate"),x(),D(9,"span",6),ye("click",function(){return Pe(e),Oe(z().showEditLabelDialog())}),D(10,"span",7),E(11),x(),D(12,"mat-icon",8),E(13,"edit"),x()()(),D(14,"span",4)(15,"span",5),E(16),R(17,"translate"),x(),xe(18,"app-copy-to-clipboard-text",9),x(),D(19,"span",4)(20,"span",5),E(21),R(22,"translate"),x(),E(23),R(24,"translate"),x(),V(25,Vte,5,4,"span",10),V(26,jte,5,4,"span",10),D(27,"span",4)(28,"span",5),E(29),R(30,"translate"),x(),V(31,zte,2,1,"ng-container",11),V(32,Ute,3,3,"ng-container",11),x(),D(33,"span",4)(34,"span",5),E(35),R(36,"translate"),x(),E(37),R(38,"translate"),x(),D(39,"span",4)(40,"span",5),E(41),R(42,"translate"),x(),E(43),R(44,"translate"),x(),D(45,"span",4)(46,"span",5),E(47),R(48,"translate"),x(),E(49),R(50,"translate"),x(),V(51,Wte,5,4,"span",10),D(52,"span",4)(53,"span",5),E(54),R(55,"translate"),x(),E(56),R(57,"translate"),V(58,$te,3,7,"mat-icon",12),x()(),xe(59,"div",13),D(60,"div",2)(61,"span",3),E(62),R(63,"translate"),x(),D(64,"span",4)(65,"span",5),E(66),R(67,"translate"),x(),V(68,Gte,6,6,"ng-container",11),V(69,qte,6,7,"ng-container",11),x(),D(70,"div",14)(71,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeRewardsAddressConfig())}),V(72,Kte,3,3,"ng-container",11),V(73,Zte,3,3,"ng-container",11),x()()(),xe(74,"div",13),D(75,"div",2)(76,"span",3),E(77),R(78,"translate"),x(),D(79,"span",4)(80,"span",5),E(81),R(82,"translate"),x(),E(83),R(84,"translate"),D(85,"mat-icon",16),R(86,"translate"),E(87,"info"),x()(),D(88,"div",14)(89,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeTransportsConfig())}),E(90),R(91,"translate"),x()()(),xe(92,"div",13),D(93,"div",2)(94,"span",3),E(95),R(96,"translate"),x(),D(97,"span",4)(98,"span",5),E(99),R(100,"translate"),x(),E(101),x(),D(102,"div",14)(103,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeRouterConfig())}),E(104),R(105,"translate"),x()()(),xe(106,"div",13),D(107,"div",2)(108,"span",3),E(109),R(110,"translate"),x(),D(111,"span",4)(112,"span",5),E(113),R(114,"translate"),x(),xe(115,"i"),E(116),R(117,"translate"),x()(),xe(118,"div",13),D(119,"div",2)(120,"span",3),E(121),R(122,"translate"),x(),xe(123,"app-charts",17),x()()}if(2&n){const e=z();c(3),oe(B(4,49,"node.details.node-info.title")),c(4),ce("",B(8,51,"node.details.node-info.label")," "),c(4),oe(e.node.label),c(1),M("inline",!0),c(4),ce("",B(17,53,"node.details.node-info.public-key")," "),c(2),Dn("text",e.node.localPk),c(3),ce("",B(22,55,"node.details.node-info.symmetic-nat")," "),c(2),ce(" ",B(24,57,e.node.isSymmeticNat?"common.yes":"common.no")," "),c(2),M("ngIf",!e.node.isSymmeticNat),c(1),M("ngIf",e.node.ip),c(3),ce("",B(30,59,"node.details.node-info.dmsg-server")," "),c(2),M("ngIf",e.hasDmsgServer()),c(1),M("ngIf",!e.hasDmsgServer()),c(3),ce("",B(36,61,"node.details.node-info.ping")," "),c(2),ce(" ",Ct(38,63,"common.time-in-ms",Be(107,aM,e.node.roundTripPing))," "),c(4),ce("",B(42,66,"node.details.node-info.node-version")," "),c(2),ce(" ",e.node.version?e.node.version:B(44,68,"common.unknown")," "),c(4),ce("",B(48,70,"node.details.node-info.build-type")," "),c(2),ce(" ",e.node.buildTag?e.node.buildTag:B(50,72,"node.details.node-info.unknown-build")," "),c(2),M("ngIf",e.node.skybianBuildVersion),c(3),ce("",B(55,74,"node.details.node-info.time.title")," "),c(2),ce(" ",Ct(57,76,"node.details.node-info.time."+e.timeOnline.translationVarName,Be(109,aM,e.timeOnline.elapsedTime))," "),c(2),M("ngIf",e.timeOnline.totalMinutes>60),c(4),oe(B(63,79,"node.details.rewards-info.title")),c(4),ce("",B(67,81,"node.details.rewards-info.rewards-address")," "),c(2),M("ngIf",e.node.rewardsAddress),c(1),M("ngIf",!e.node.rewardsAddress),c(2),M("forDarkBackground",!0),c(1),M("ngIf",e.node.rewardsAddress),c(1),M("ngIf",!e.node.rewardsAddress),c(4),oe(B(78,83,"node.details.transports-info.title")),c(4),ce("",B(82,85,"node.details.transports-info.autoconnect")," "),c(2),ce(" ",B(84,87,"node.details.transports-info."+(e.node.autoconnectTransports?"enabled":"disabled"))," "),c(2),M("inline",!0)("matTooltip",B(86,89,"node.details.transports-info.autoconnect-info")),c(4),M("forDarkBackground",!0),c(1),ce(" ",B(91,91,"node.details.transports-info."+(e.node.autoconnectTransports?"disable":"enable")+"-button")," "),c(5),oe(B(96,93,"node.details.router-info.title")),c(4),ce("",B(100,95,"node.details.router-info.min-hops")," "),c(2),ce(" ",e.node.minHops," "),c(2),M("forDarkBackground",!0),c(1),ce(" ",B(105,97,"node.details.router-info.change-config-button")," "),c(5),ce("",B(110,99,"node.details.node-health.title")," "),c(4),oe(B(114,101,"node.details.node-health.uptime-tracker")),c(2),eo(e.nodeHealthClass),c(1),ce(" ",B(117,103,e.nodeHealthText)," "),c(5),oe(B(122,105,"node.details.node-traffic-data")),c(2),M("trafficData",e.trafficData)}}class Tu{constructor(t,e,i,o){this.dialog=t,this.storageService=e,this.transportService=i,this.snackbarService=o}set nodeInfo(t){this.node=t,this.timeOnline=Rg.getElapsedTime(t.secondsOnline),t.health&&t.health.servicesHealth===ls.Healthy?(this.nodeHealthText="node.statuses.online",this.nodeHealthClass="dot-green"):t.health&&t.health.servicesHealth===ls.Unhealthy?(this.nodeHealthText="node.statuses.partially-online",this.nodeHealthClass="dot-yellow blinking"):t.health&&t.health.servicesHealth===ls.Connecting?(this.nodeHealthText="node.statuses.connecting",this.nodeHealthClass="dot-outline-gray"):(this.nodeHealthText="node.statuses.unknown",this.nodeHealthClass="dot-outline-gray")}ngOnDestroy(){this.autoconnectSubscription&&this.autoconnectSubscription.unsubscribe()}showEditLabelDialog(){let t=this.storageService.getLabelInfo(this.node.localPk);t||(t={id:this.node.localPk,label:"",identifiedElementType:Mr.Node}),pa.openDialog(this.dialog,t).afterClosed().subscribe(e=>{e&&Je.refreshCurrentDisplayedData()})}changeRewardsAddressConfig(){Dc.openDialog(this.dialog,{nodePk:this.node.localPk,currentAddress:this.node.rewardsAddress}).afterClosed().subscribe(e=>{e&&Je.refreshCurrentDisplayedData()})}changeRouterConfig(){pl.openDialog(this.dialog,{nodePk:this.node.localPk,minHops:this.node.minHops}).afterClosed().subscribe(e=>{e&&Je.refreshCurrentDisplayedData()})}hasDmsgServer(){return!(!this.node||0===this.node.dmsgServerPk.replace(/0/g,"").length)}changeTransportsConfig(){const t=Wt.createConfirmationDialog(this.dialog,this.node.autoconnectTransports?"node.details.transports-info.disable-confirmation":"node.details.transports-info.enable-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.showProcessing();const e=this.transportService.changeAutoconnectSetting(this.node.localPk,!this.node.autoconnectTransports);this.autoconnectSubscription=e.subscribe(()=>{t.close(),this.snackbarService.showDone(this.node.autoconnectTransports?"node.details.transports-info.disable-done":"node.details.transports-info.enable-done"),Je.refreshCurrentDisplayedData()},i=>{i=Kt(i),t.componentInstance.showDone("confirmation.error-header-text",i.translatableErrorMsg)})})}}Tu.\u0275fac=function(t){return new(t||Tu)(F(Ln),F(ni),F(fl),F(on))},Tu.\u0275cmp=qe({type:Tu,selectors:[["app-node-info-content"]],inputs:{nodeInfo:"nodeInfo",trafficData:"trafficData"},decls:1,vars:1,consts:[["class","font-smaller d-flex flex-column mt-4.5",4,"ngIf"],[1,"font-smaller","d-flex","flex-column","mt-4.5"],[1,"d-flex","flex-column"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"highlight-internal-icon",3,"click"],[1,"text-with-small-right-margin"],[1,"edit-icon",3,"inline"],[3,"text"],["class","info-line",4,"ngIf"],[4,"ngIf"],[3,"inline","matTooltip",4,"ngIf"],[1,"separator"],[1,"config-button-container"],["color","primary",3,"forDarkBackground","action"],[3,"inline","matTooltip"],[1,"d-flex","flex-column","justify-content-end","mt-3",3,"trafficData"],[1,"text-with-right-margin",3,"text"],["target","_blank","rel","noreferrer nofollow noopener",3,"href"],[1,"link-icon","transparent-button",3,"inline","matTooltip"]],template:function(t,e){1&t&&V(0,Xte,124,111,"div",0),2&t&&M("ngIf",e.node)},dependencies:[It,yn,vi,Tc,ri,hp,xt],styles:[".section-title[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;text-transform:uppercase}.info-line[_ngcontent-%COMP%]{word-break:break-word;margin-top:7px}.info-line[_ngcontent-%COMP%] .text-with-right-margin[_ngcontent-%COMP%]{margin-right:5px}.info-line[_ngcontent-%COMP%] .text-with-small-right-margin[_ngcontent-%COMP%]{margin-right:3px}.info-line[_ngcontent-%COMP%] .link-icon[_ngcontent-%COMP%]{font-size:20px;line-height:1;color:#fff!important;cursor:pointer}.info-line[_ngcontent-%COMP%] .edit-icon[_ngcontent-%COMP%]{display:inline!important}.info-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px;-webkit-user-select:none;user-select:none}.info-line[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:7px}.info-line[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{opacity:.75}.separator[_ngcontent-%COMP%]{width:100%;height:0px;margin:1rem 0;border-top:1px solid rgba(255,255,255,.15)}.config-button-container[_ngcontent-%COMP%]{margin-top:10px;margin-left:-4px}"]});class fp{ngOnInit(){this.nodeSubscription=Je.currentNode.subscribe(t=>{this.node=t}),this.trafficDataSubscription=Je.currentTrafficData.subscribe(t=>{this.trafficData=t})}ngOnDestroy(){this.nodeSubscription.unsubscribe(),this.trafficDataSubscription.unsubscribe()}}fp.\u0275fac=function(t){return new(t||fp)},fp.\u0275cmp=qe({type:fp,selectors:[["app-node-info"]],decls:1,vars:2,consts:[[3,"nodeInfo","trafficData"]],template:function(t,e){1&t&&xe(0,"app-node-info-content",0),2&t&&M("nodeInfo",e.node)("trafficData",e.trafficData)},dependencies:[Tu]});const Qte=function(){return["settings.title","labels.title"]};class pp{constructor(t){this.router=t,this.tabsData=[],this.returnButtonText="settings.title",this.tabsData=[{icon:"view_headline",label:"labels.list-title",linkParts:[]}]}performAction(t){null===t&&this.router.navigate(["settings"])}}pp.\u0275fac=function(t){return new(t||pp)(F(Qt))},pp.\u0275cmp=qe({type:pp,selectors:[["app-all-labels"]],decls:5,vars:6,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","showUpdateButton","returnText","optionSelected"],[1,"content","col-12"],[3,"showShortList"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"app-top-bar",2),ye("optionSelected",function(o){return e.performAction(o)}),x()(),D(3,"div",3),xe(4,"app-label-list",4),x()()),2&t&&(c(2),M("titleParts",Un(5,Qte))("tabsData",e.tabsData)("showUpdateButton",!1)("returnText",e.returnButtonText),c(2),M("showShortList",!1))},dependencies:[cs,xu]});const Jte=["firstInput"];function ene(n,t){1&n&&(Ue(0),D(1,"span"),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),oe(B(3,1,"vpn.server-list.add-server-dialog.pk-length-error")))}function tne(n,t){1&n&&(D(0,"span"),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.add-server-dialog.pk-chars-error")))}class Lc{constructor(t,e,i,o,s,a,l,d){this.dialogRef=t,this.data=e,this.formBuilder=i,this.dialog=o,this.router=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=d}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.mediumModalWidth,t.open(Lc,i)}ngOnInit(){this.form=this.formBuilder.group({pk:["",Vt.compose([Vt.required,Vt.minLength(66),Vt.maxLength(66),Vt.pattern("^[0-9a-fA-F]+$")])],password:[""],name:[""],note:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){if(!this.form.valid)return;const t={pk:this.form.get("pk").value,name:this.form.get("name").value,note:this.form.get("note").value};fn.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,this.dialogRef,this.data,null,null,t,this.form.get("password").value)}}Lc.\u0275fac=function(t){return new(t||Lc)(F(Nn),F(Ti),F(Cr),F(Ln),F(Qt),F(jo),F(Vo),F(on))},Lc.\u0275cmp=qe({type:Lc,selectors:[["app-add-vpn-server"]],viewQuery:function(t,e){if(1&t&&ft(Jte,5),2&t){let i;nt(i=it())&&(e.firstInput=i.first)}},decls:35,vars:23,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","pk","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],["formControlName","password","type","password","matInput",""],["formControlName","name","maxlength","100","matInput",""],["formControlName","note","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"disabled","action"]],template:function(t,e){if(1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x(),D(10,"mat-error"),V(11,ene,4,3,"ng-container",6),x(),V(12,tne,3,3,"ng-template",null,7,ws),x(),D(14,"mat-form-field")(15,"div",2)(16,"label",3),E(17),R(18,"translate"),x(),xe(19,"input",8),x()(),D(20,"mat-form-field")(21,"div",2)(22,"label",3),E(23),R(24,"translate"),x(),xe(25,"input",9),x()(),D(26,"mat-form-field")(27,"div",2)(28,"label",3),E(29),R(30,"translate"),x(),xe(31,"input",10),x()()(),D(32,"app-button",11),ye("action",function(){return e.process()}),E(33),R(34,"translate"),x()()),2&t){const i=ci(13);M("headline",B(1,11,"vpn.server-list.add-server-dialog.title"))("dialog",e.dialogRef),c(2),M("formGroup",e.form),c(4),oe(B(7,13,"vpn.server-list.add-server-dialog.pk-label")),c(5),M("ngIf",!e.form.get("pk").hasError("pattern"))("ngIfElse",i),c(6),oe(B(18,15,"vpn.server-list.add-server-dialog.password-label")),c(6),oe(B(24,17,"vpn.server-list.add-server-dialog.name-label")),c(6),oe(B(30,19,"vpn.server-list.add-server-dialog.note-label")),c(3),M("disabled",!e.form.valid),c(1),ce(" ",B(34,21,"vpn.server-list.add-server-dialog.use-server-button")," ")}},dependencies:[It,Bi,Ri,Ni,Yi,xr,ii,Li,nr,al,kr,ri,En,xt]});class nne{constructor(){this.countryCode="ZZ"}}class Lu{constructor(t){this.http=t,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type=vpn"}getServers(){return this.servers?Ge(this.servers):this.http.get(this.discoveryServiceUrl).pipe(np(t=>t.pipe(Di(4e3))),Ce(t=>{const e=[];return t.forEach(i=>{const o=new nne,s=i.address.split(":");2===s.length&&(o.pk=s[0],o.location="",i.geo&&(i.geo.country&&(o.countryCode=i.geo.country),i.geo.region&&(o.location=i.geo.region)),o.name=s[0],o.note="",e.push(o))}),this.servers=e,e}))}}function ine(n,t){1&n&&Jo(0)}Lu.\u0275fac=function(t){return new(t||Lu)(we(Gl))},Lu.\u0275prov=Ye({token:Lu,factory:Lu.\u0275fac,providedIn:"root"});const dP=function(){return["vpn.title"]};function rne(n,t){if(1&n&&(D(0,"div",3)(1,"div",4),xe(2,"app-top-bar",5),D(3,"div",6)(4,"div",7)(5,"div",8),V(6,ine,1,0,"ng-container",9),x()()()(),xe(7,"app-loading-indicator",10),x()),2&n){const e=z(),i=ci(2);c(2),M("titleParts",Un(6,dP))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(4),M("ngTemplateOutlet",i)}}function one(n,t){1&n&&(D(0,"div",22)(1,"span"),E(2),R(3,"translate"),x()()),2&n&&(c(2),oe(B(3,1,"vpn.server-list.tabs.public")))}const Bg=function(n,t){return["/vpn",n,"servers",t,1]};function sne(n,t){if(1&n&&(D(0,"a",23)(1,"span"),E(2),R(3,"translate"),x()()),2&n){const e=z(2);M("routerLink",cn(4,Bg,e.currentLocalPk,e.lists.Public)),c(2),oe(B(3,2,"vpn.server-list.tabs.public"))}}function ane(n,t){1&n&&(D(0,"div",22)(1,"span"),E(2),R(3,"translate"),x()()),2&n&&(c(2),oe(B(3,1,"vpn.server-list.tabs.history")))}function lne(n,t){if(1&n&&(D(0,"a",23)(1,"span"),E(2),R(3,"translate"),x()()),2&n){const e=z(2);M("routerLink",cn(4,Bg,e.currentLocalPk,e.lists.History)),c(2),oe(B(3,2,"vpn.server-list.tabs.history"))}}function cne(n,t){1&n&&(D(0,"div",22)(1,"span"),E(2),R(3,"translate"),x()()),2&n&&(c(2),oe(B(3,1,"vpn.server-list.tabs.favorites")))}function dne(n,t){if(1&n&&(D(0,"a",23)(1,"span"),E(2),R(3,"translate"),x()()),2&n){const e=z(2);M("routerLink",cn(4,Bg,e.currentLocalPk,e.lists.Favorites)),c(2),oe(B(3,2,"vpn.server-list.tabs.favorites"))}}function une(n,t){1&n&&(D(0,"div",22)(1,"span"),E(2),R(3,"translate"),x()()),2&n&&(c(2),oe(B(3,1,"vpn.server-list.tabs.blocked")))}function hne(n,t){if(1&n&&(D(0,"a",23)(1,"span"),E(2),R(3,"translate"),x()()),2&n){const e=z(2);M("routerLink",cn(4,Bg,e.currentLocalPk,e.lists.Blocked)),c(2),oe(B(3,2,"vpn.server-list.tabs.blocked"))}}function fne(n,t){1&n&&xe(0,"br")}function pne(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z().$implicit;c(1),oe(B(2,1,e.translatableValue))}}function mne(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),oe(e.value)}}function _ne(n,t){if(1&n&&(D(0,"div",28)(1,"span"),E(2),R(3,"translate"),x(),V(4,pne,3,3,"ng-container",21),V(5,mne,2,1,"ng-container",21),x()),2&n){const e=t.$implicit;c(2),ce("",B(3,3,e.filterName),": "),c(2),M("ngIf",e.translatableValue),c(1),M("ngIf",e.value)}}function gne(n,t){if(1&n){const e=et();D(0,"div",25),ye("click",function(){return Pe(e),Oe(z(3).dataFilterer.removeFilters())}),D(1,"div",26)(2,"mat-icon",19),E(3,"search"),x(),E(4),R(5,"translate"),x(),V(6,_ne,6,5,"div",27),x()}if(2&n){const e=z(3);c(2),M("inline",!0),c(2),ce(" ",B(5,3,"vpn.server-list.current-filters"),""),c(2),M("ngForOf",e.dataFilterer.currentFiltersTexts)}}function bne(n,t){if(1&n&&(Ue(0),V(1,fne,1,0,"br",21),V(2,gne,7,5,"div",24),We()),2&n){const e=z(2);c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(1),M("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0)}}const vne=function(n){return{deactivated:n}};function yne(n,t){if(1&n){const e=et();D(0,"div",11)(1,"div",12)(2,"div",13)(3,"div",14),V(4,one,4,3,"div",15),V(5,sne,4,7,"a",16),V(6,ane,4,3,"div",15),V(7,lne,4,7,"a",16),V(8,cne,4,3,"div",15),V(9,dne,4,7,"a",16),V(10,une,4,3,"div",15),V(11,hne,4,7,"a",16),x()()()(),D(12,"div",17)(13,"div",12)(14,"div",13)(15,"div",14)(16,"div",18),ye("click",function(){Pe(e);const o=z();return Oe(o.dataFilterer?o.dataFilterer.changeFilters():null)}),R(17,"translate"),D(18,"span")(19,"mat-icon",19),E(20,"search"),x()()()()()()(),D(21,"div",20)(22,"div",12)(23,"div",13)(24,"div",14)(25,"div",18),ye("click",function(){return Pe(e),Oe(z().enterManually())}),R(26,"translate"),D(27,"span")(28,"mat-icon",19),E(29,"add"),x()()()()()()(),V(30,bne,3,2,"ng-container",21)}if(2&n){const e=z();c(4),M("ngIf",e.currentList===e.lists.Public),c(1),M("ngIf",e.currentList!==e.lists.Public),c(1),M("ngIf",e.currentList===e.lists.History),c(1),M("ngIf",e.currentList!==e.lists.History),c(1),M("ngIf",e.currentList===e.lists.Favorites),c(1),M("ngIf",e.currentList!==e.lists.Favorites),c(1),M("ngIf",e.currentList===e.lists.Blocked),c(1),M("ngIf",e.currentList!==e.lists.Blocked),c(1),M("ngClass",Be(18,vne,e.loading)),c(4),M("matTooltip",B(17,14,"filters.filter-info")),c(3),M("inline",!0),c(6),M("matTooltip",B(26,16,"vpn.server-list.add-manually-info")),c(3),M("inline",!0),c(2),M("ngIf",e.dataFilterer)}}function Mne(n,t){1&n&&Jo(0)}function wne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(5);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function xne(n,t){if(1&n){const e=et();D(0,"th",50),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.dateSortData))}),R(1,"translate"),D(2,"div",43)(3,"div",44),E(4),R(5,"translate"),x(),V(6,wne,2,2,"mat-icon",41),x()()}if(2&n){const e=z(4);M("matTooltip",B(1,3,"vpn.server-list.date-info")),c(4),ce(" ",B(5,5,"vpn.server-list.date-small-table-label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.dateSortData)}}function Cne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function kne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function Sne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function Dne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function Tne(n,t){if(1&n&&(D(0,"mat-icon",19),E(1),x()),2&n){const e=z(4);M("inline",!0),c(1),oe(e.dataSorter.sortingArrow)}}function Lne(n,t){if(1&n&&(D(0,"td",64),E(1),R(2,"date"),x()),2&n){const e=z().$implicit;c(1),ce(" ",Ct(2,1,e.lastUsed,"yyyy/MM/dd, H:mm a")," ")}}function Ene(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z().$implicit;c(1),ce(" ",e.location," ")}}function Ine(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),ce(" ",B(2,1,"vpn.server-list.unknown")," "))}const Pne=function(n,t){return{custom:n,original:t}};function One(n,t){if(1&n&&(D(0,"mat-icon",65),ye("click",function(i){return i.stopPropagation()}),R(1,"translate"),E(2,"info_outline"),x()),2&n){const e=z().$implicit,i=z(4);M("inline",!0)("matTooltip",Ct(1,2,i.getNoteVar(e),cn(5,Pne,e.personalNote,e.note)))}}const Ane=function(n){return{"selectable click-effect":n}};function Fne(n,t){if(1&n){const e=et();D(0,"tr",51),ye("click",function(){const s=Pe(e).$implicit,a=z(4);return Oe(a.currentList!==a.lists.Blocked?a.selectServer(s):null)}),V(1,Lne,3,4,"td",52),D(2,"td",53)(3,"div",54),xe(4,"div",55),x()(),D(5,"td",56),xe(6,"app-vpn-server-name",57),x(),D(7,"td",58),V(8,Ene,2,1,"ng-container",21),V(9,Ine,3,3,"ng-container",21),x(),D(10,"td",59)(11,"app-copy-to-clipboard-text",60),ye("click",function(o){return o.stopPropagation()}),x()(),D(12,"td",61),V(13,One,3,8,"mat-icon",62),x(),D(14,"td",48)(15,"button",63),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),Oe(l.openOptions(a))}),R(16,"translate"),D(17,"mat-icon",19),E(18,"settings"),x()()()()}if(2&n){const e=t.$implicit,i=z(4);M("ngClass",Be(23,Ane,i.currentList!==i.lists.Blocked)),c(1),M("ngIf",i.currentList===i.lists.History),c(3),di("background-image: url('assets/img/big-flags/"+e.countryCode.toLocaleLowerCase()+".png');"),M("matTooltip",i.getCountryName(e.countryCode)),c(2),M("isCurrentServer",i.currentServer&&e.pk===i.currentServer.pk)("isFavorite",e.flag===i.serverFlags.Favorite&&i.currentList!==i.lists.Favorites)("isBlocked",e.flag===i.serverFlags.Blocked&&i.currentList!==i.lists.Blocked)("isInHistory",e.inHistory&&i.currentList!==i.lists.History)("hasPassword",e.usedWithPassword)("name",e.name)("pk",e.pk)("customName",e.customName)("defaultName","vpn.server-list.none"),c(2),M("ngIf",e.location),c(1),M("ngIf",!e.location),c(2),M("shortSimple",!0)("text",e.pk),c(2),M("ngIf",e.note||e.personalNote),c(2),M("matTooltip",B(16,21,"vpn.server-options.tooltip")),c(2),M("inline",!0)}}const Rne=function(n,t){return{"public-pk-column":n,"history-pk-column":t}};function Nne(n,t){if(1&n){const e=et();D(0,"table",38)(1,"tr"),V(2,xne,7,7,"th",39),D(3,"th",40),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.countrySortData))}),R(4,"translate"),D(5,"mat-icon",19),E(6,"flag"),x(),V(7,Cne,2,2,"mat-icon",41),x(),D(8,"th",42),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.nameSortData))}),D(9,"div",43)(10,"div",44),E(11),R(12,"translate"),x(),V(13,kne,2,2,"mat-icon",41),x()(),D(14,"th",45),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.locationSortData))}),D(15,"div",43)(16,"div",44),E(17),R(18,"translate"),x(),V(19,Sne,2,2,"mat-icon",41),x()(),D(20,"th",46),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.pkSortData))}),R(21,"translate"),D(22,"div",43)(23,"div",44),E(24),R(25,"translate"),x(),V(26,Dne,2,2,"mat-icon",41),x()(),D(27,"th",47),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.noteSortData))}),R(28,"translate"),D(29,"div",43)(30,"mat-icon",19),E(31,"info_outline"),x(),V(32,Tne,2,2,"mat-icon",41),x()(),xe(33,"th",48),x(),V(34,Fne,19,25,"tr",49),x()}if(2&n){const e=z(3);c(2),M("ngIf",e.currentList===e.lists.History),c(1),M("matTooltip",B(4,16,"vpn.server-list.country-info")),c(2),M("inline",!0),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.countrySortData),c(4),ce(" ",B(12,18,"vpn.server-list.name-small-table-label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.nameSortData),c(4),ce(" ",B(18,20,"vpn.server-list.location-small-table-label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.locationSortData),c(1),M("ngClass",cn(28,Rne,e.currentList===e.lists.Public,e.currentList===e.lists.History))("matTooltip",B(21,22,"vpn.server-list.public-key-info")),c(4),ce(" ",B(25,24,"vpn.server-list.public-key-small-table-label")," "),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.pkSortData),c(1),M("matTooltip",B(28,26,"vpn.server-list.note-info")),c(3),M("inline",!0),c(2),M("ngIf",e.dataSorter.currentSortingColumn===e.noteSortData),c(2),M("ngForOf",e.dataSource)}}function Yne(n,t){if(1&n&&(D(0,"div",35)(1,"div",36),V(2,Nne,35,31,"table",37),x()()),2&n){const e=z(2);c(2),M("ngIf",e.dataSource.length>0)}}const Bne=function(n,t){return["/vpn",n,"servers",t]};function Hne(n,t){if(1&n&&xe(0,"app-paginator",66),2&n){const e=z(2);M("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",cn(4,Bne,e.currentLocalPk,e.currentList))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Vne(n,t){1&n&&(D(0,"span",70),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.empty-discovery")))}function jne(n,t){1&n&&(D(0,"span",70),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.empty-history")))}function zne(n,t){1&n&&(D(0,"span",70),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.empty-favorites")))}function Une(n,t){1&n&&(D(0,"span",70),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.empty-blocked")))}function Wne(n,t){1&n&&(D(0,"span",70),E(1),R(2,"translate"),x()),2&n&&(c(1),oe(B(2,1,"vpn.server-list.empty-with-filter")))}function $ne(n,t){if(1&n&&(D(0,"div",35)(1,"div",67)(2,"mat-icon",68),E(3,"warning"),x(),V(4,Vne,3,3,"span",69),V(5,jne,3,3,"span",69),V(6,zne,3,3,"span",69),V(7,Une,3,3,"span",69),V(8,Wne,3,3,"span",69),x()()),2&n){const e=z(2);c(2),M("inline",!0),c(2),M("ngIf",0===e.allServers.length&&e.currentList===e.lists.Public),c(1),M("ngIf",0===e.allServers.length&&e.currentList===e.lists.History),c(1),M("ngIf",0===e.allServers.length&&e.currentList===e.lists.Favorites),c(1),M("ngIf",0===e.allServers.length&&e.currentList===e.lists.Blocked),c(1),M("ngIf",0!==e.allServers.length)}}const Gne=function(n){return{"mb-3":n}};function qne(n,t){if(1&n&&(D(0,"div",29)(1,"div",30),xe(2,"app-top-bar",5),x(),D(3,"div",31)(4,"div",7)(5,"div",32),V(6,Mne,1,0,"ng-container",9),x(),V(7,Yne,3,1,"div",33),V(8,Hne,1,7,"app-paginator",34),V(9,$ne,9,6,"div",33),x()()()),2&n){const e=z(),i=ci(2);c(2),M("titleParts",Un(10,dP))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(3),M("ngClass",Be(11,Gne,!e.dataFilterer.currentFiltersTexts||e.dataFilterer.currentFiltersTexts.length<1)),c(1),M("ngTemplateOutlet",i),c(1),M("ngIf",0!==e.dataSource.length),c(1),M("ngIf",e.numberOfPages>1),c(1),M("ngIf",0===e.dataSource.length)}}var Vi=(()=>(function(n){n.Public="public",n.History="history",n.Favorites="favorites",n.Blocked="blocked"}(Vi||(Vi={})),Vi))();class Eu{constructor(t,e,i,o,s,a,l,d,w){this.dialog=t,this.router=e,this.translateService=i,this.route=o,this.vpnClientDiscoveryService=s,this.vpnClientService=a,this.vpnSavedDataService=l,this.snackbarService=d,this.storageService=w,this.maxFullListElements=50,this.dateSortData=new Yn(["lastUsed"],"vpn.server-list.date-small-table-label",Jt.NumberReversed),this.countrySortData=new Yn(["countryName"],"vpn.server-list.country-small-table-label",Jt.Text),this.nameSortData=new Yn(["name"],"vpn.server-list.name-small-table-label",Jt.Text),this.locationSortData=new Yn(["location"],"vpn.server-list.location-small-table-label",Jt.Text),this.pkSortData=new Yn(["pk"],"vpn.server-list.public-key-small-table-label",Jt.Text),this.noteSortData=new Yn(["note"],"vpn.server-list.note-small-table-label",Jt.Text),this.loading=!0,this.loadingBackendData=!0,this.tabsData=fn.vpnTabsData,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.currentList=Vi.Public,this.vpnRunning=!1,this.serverFlags=Wn,this.lists=Vi,this.initialLoadStarted=!1,this.navigationsSubscription=o.paramMap.subscribe(P=>{if(P.has("type")?P.get("type")===Vi.Favorites?(this.currentList=Vi.Favorites,this.listId="vfs"):P.get("type")===Vi.Blocked?(this.currentList=Vi.Blocked,this.listId="vbs"):P.get("type")===Vi.History?(this.currentList=Vi.History,this.listId="vhs"):(this.currentList=Vi.Public,this.listId="vps"):(this.currentList=Vi.Public,this.listId="vps"),fn.setDefaultTabForServerList(this.currentList),P.has("key")&&(this.currentLocalPk=P.get("key"),fn.changeCurrentPk(this.currentLocalPk),this.tabsData=fn.vpnTabsData),P.has("page")){let Y=Number.parseInt(P.get("page"),10);(isNaN(Y)||Y<1)&&(Y=1),this.currentPageInUrl=Y,this.recalculateElementsToShow()}this.initialLoadStarted||(this.initialLoadStarted=!0,this.loadData())}),this.currentServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(P=>this.currentServer=P),this.backendDataSubscription=this.vpnClientService.backendState.subscribe(P=>{P&&(this.loadingBackendData=!1,this.vpnRunning=P.vpnClientAppData.running)})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.currentServerSubscription.unsubscribe(),this.backendDataSubscription.unsubscribe(),this.dataSortedSubscription&&this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription&&this.dataFiltererSubscription.unsubscribe(),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataFilterer&&this.dataFilterer.dispose(),this.dataSorter&&this.dataSorter.dispose()}enterManually(){Lc.openDialog(this.dialog,this.currentLocalPk)}getNoteVar(t){return t.note&&t.personalNote?"vpn.server-list.notes-info":!t.note&&t.personalNote?t.personalNote:t.note}selectServer(t){const e=this.vpnSavedDataService.getSavedVersion(t.pk,!0);if(this.snackbarService.closeCurrentIfTemporaryError(),e&&e.flag===Wn.Blocked)this.snackbarService.showError("vpn.starting-blocked-server-error",{},!0);else{if(this.currentServer&&this.currentServer.pk===t.pk){if(this.vpnRunning)this.snackbarService.showWarning("vpn.server-change.already-selected-warning");else{const i=Wt.createConfirmationDialog(this.dialog,"vpn.server-change.start-same-server-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.vpnClientService.start(),fn.redirectAfterServerChange(this.router,null,this.currentLocalPk)})}return}if(e&&e.usedWithPassword)return void ul.openDialog(this.dialog,!0).afterClosed().subscribe(i=>{i&&this.makeServerChange(t,"-"===i?null:i.substr(1))});this.makeServerChange(t,null)}}makeServerChange(t,e){fn.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,null,this.currentLocalPk,t.originalLocalData,t.originalDiscoveryData,null,e)}openOptions(t){let e=this.vpnSavedDataService.getSavedVersion(t.pk,!0);e||(e=this.vpnSavedDataService.processFromDiscovery(t.originalDiscoveryData)),e?fn.openServerOptions(e,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe(i=>{i&&this.processAllServers()}):this.snackbarService.showError("vpn.unexpedted-error")}loadData(){if(this.currentList===Vi.Public)this.dataSubscription=this.vpnClientDiscoveryService.getServers().subscribe(t=>{this.allServers=t.map(e=>({countryCode:e.countryCode,countryName:this.getCountryName(e.countryCode),name:e.name,customName:null,location:e.location,pk:e.pk,note:e.note,personalNote:null,originalDiscoveryData:e})),this.vpnSavedDataService.updateFromDiscovery(t),this.loading=!1,this.processAllServers()});else{let t;t=this.currentList===Vi.History?this.vpnSavedDataService.history:this.currentList===Vi.Favorites?this.vpnSavedDataService.favorites:this.vpnSavedDataService.blocked,this.dataSubscription=t.subscribe(e=>{const i=[];e.forEach(o=>{i.push({countryCode:o.countryCode,countryName:this.getCountryName(o.countryCode),name:o.name,customName:null,location:o.location,pk:o.pk,note:o.note,personalNote:null,lastUsed:o.lastUsed,inHistory:o.inHistory,flag:o.flag,originalLocalData:o})}),this.allServers=i,this.loading=!1,this.processAllServers()})}}processAllServers(){this.fillFilterPropertiesArray();const t=new Set;this.allServers.forEach((d,w)=>{t.add(d.countryCode);const P=this.vpnSavedDataService.getSavedVersion(d.pk,0===w);d.customName=P?P.customName:null,d.personalNote=P?P.personalNote:null,d.inHistory=!!P&&P.inHistory,d.flag=P?P.flag:Wn.None,d.enteredManually=!!P&&P.enteredManually,d.usedWithPassword=!!P&&P.usedWithPassword});let e=[];t.forEach(d=>{e.push({label:this.getCountryName(d),value:d,image:"/assets/img/big-flags/"+d.toLowerCase()+".png"})}),e.sort((d,w)=>d.label.localeCompare(w.label)),e=[{label:"vpn.server-list.filter-dialog.country-options.any",value:""}].concat(e),this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.country",keyNameInElementsArray:"countryCode",type:Xn.Select,printableLabelsForValues:e,printableLabelGeneralSettings:{defaultImage:"/assets/img/big-flags/unknown.png",imageWidth:20,imageHeight:15}}].concat(this.filterProperties);const o=[];let s,a,l;this.currentList===Vi.Public?(o.push(this.countrySortData),o.push(this.nameSortData),o.push(this.locationSortData),o.push(this.pkSortData),o.push(this.noteSortData),s=0,a=1):(this.currentList===Vi.History&&o.push(this.dateSortData),o.push(this.countrySortData),o.push(this.nameSortData),o.push(this.locationSortData),o.push(this.pkSortData),o.push(this.noteSortData),s=this.currentList===Vi.History?0:1,a=this.currentList===Vi.History?2:3),this.dataSorter=new _u(this.dialog,this.translateService,this.storageService,o,s,this.listId),this.dataSorter.setTieBreakerColumnIndex(a),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new gu(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(d=>{this.filteredServers=d,this.dataSorter.setData(this.filteredServers)}),l=this.currentList===Vi.Public?this.allServers.filter(d=>d.flag!==Wn.Blocked):this.allServers,this.dataFilterer.setData(l)}fillFilterPropertiesArray(){this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.name",keyNameInElementsArray:"name",secondaryKeyNameInElementsArray:"customName",type:Xn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.location",keyNameInElementsArray:"location",type:Xn.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.public-key",keyNameInElementsArray:"pk",type:Xn.TextInput,maxlength:100}]}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredServers){const t=this.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredServers.length/t),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const e=t*(this.currentPage-1);this.serversToShow=this.filteredServers.slice(e,e+t)}else this.serversToShow=null;this.dataSource=this.serversToShow}getCountryName(t){return ba[t.toUpperCase()]?ba[t.toUpperCase()]:t}}function Zne(n){const{subscriber:t,counter:e,period:i}=n;t.next(e),this.schedule({subscriber:t,counter:e+1,period:i},i)}Eu.\u0275fac=function(t){return new(t||Eu)(F(Ln),F(Qt),F(oo),F(yr),F(Lu),F(jo),F(Vo),F(on),F(ni))},Eu.\u0275cmp=qe({type:Eu,selectors:[["app-vpn-server-list"]],decls:4,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["topPart",""],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[1,"loading-top-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"main-container"],[1,"width-limiter"],[1,"center-container","mt-4.5"],[4,"ngTemplateOutlet"],[1,"h-100","loading-indicator"],[1,"option-bar-container"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","allow-overflow"],[1,"option-bar"],["class","text-option selected",4,"ngIf"],["class","text-option",3,"routerLink",4,"ngIf"],[1,"option-bar-container","option-bar-margin",3,"ngClass"],[1,"icon-option",3,"matTooltip","click"],[3,"inline"],[1,"option-bar-container","option-bar-margin"],[4,"ngIf"],[1,"text-option","selected"],[1,"text-option",3,"routerLink"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"transparent-50"],["class","item",4,"ngFor","ngForOf"],[1,"item"],[1,"row"],[1,"col-12"],[1,"col-12","vpn-table-container"],[1,"center-container","mt-4.5",3,"ngClass"],["class","rounded-elevated-box",4,"ngIf"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["class","responsive-table-translucid d-none d-md-table","cellspacing","0","cellpadding","0",4,"ngIf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],["class","sortable-column date-column click-effect",3,"matTooltip","click",4,"ngIf"],[1,"sortable-column","flag-column","center","click-effect",3,"matTooltip","click"],[3,"inline",4,"ngIf"],[1,"sortable-column","name-column","click-effect",3,"click"],[1,"header-container"],[1,"header-text"],[1,"sortable-column","location-column","click-effect",3,"click"],[1,"sortable-column","pk-column","click-effect",3,"ngClass","matTooltip","click"],[1,"sortable-column","note-column","center","click-effect",3,"matTooltip","click"],[1,"actions"],[3,"ngClass","click",4,"ngFor","ngForOf"],[1,"sortable-column","date-column","click-effect",3,"matTooltip","click"],[3,"ngClass","click"],["class","date-column",4,"ngIf"],[1,"flag-column","icon-fixer"],[1,"flag"],[3,"matTooltip"],[1,"name-column"],[3,"isCurrentServer","isFavorite","isBlocked","isInHistory","hasPassword","name","pk","customName","defaultName"],[1,"location-column"],[1,"pk-column","history-pk-column"],[1,"d-inline-block","w-100",3,"shortSimple","text","click"],[1,"center","note-column"],["class","note-icon",3,"inline","matTooltip","click",4,"ngIf"],["mat-button","",1,"big-action-button","transparent-button","vpn-small-button",3,"matTooltip","click"],[1,"date-column"],[1,"note-icon",3,"inline","matTooltip","click"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(t,e){1&t&&(V(0,rne,8,7,"div",0),V(1,yne,31,20,"ng-template",null,1,ws),V(3,qne,10,13,"div",2)),2&t&&(M("ngIf",e.loading||e.loadingBackendData),c(3),M("ngIf",!e.loading&&!e.loadingBackendData))},styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .note-column[_ngcontent-%COMP%], .pk-column[_ngcontent-%COMP%], .location-column[_ngcontent-%COMP%], .name-column[_ngcontent-%COMP%], .date-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.center-container[_ngcontent-%COMP%]{text-align:center}.center-container[_ngcontent-%COMP%] app-paginator[_ngcontent-%COMP%]{display:inline-block}.loading-top-container[_ngcontent-%COMP%]{z-index:1}.loading-indicator[_ngcontent-%COMP%]{padding-top:30px;padding-bottom:20px}.deactivated[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}.option-bar-container[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .allow-overflow[_ngcontent-%COMP%]{overflow:visible}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%]{display:flex;margin:-17px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{height:55px;line-height:55px;cursor:pointer;color:#fff;text-decoration:none;-webkit-user-select:none;user-select:none}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover, .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.2)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%]{transform:scale(.95)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .text-option[_ngcontent-%COMP%]{padding:0 40px;font-size:1rem}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .icon-option[_ngcontent-%COMP%]{width:55px;font-size:24px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:rgba(0,0,0,.36);cursor:unset!important}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.6)}.option-bar-margin[_ngcontent-%COMP%]{margin-left:10px}.filter-label[_ngcontent-%COMP%]{font-size:.7rem;display:inline-block;padding:5px 10px;margin-bottom:7px}.filter-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}table[_ngcontent-%COMP%]{width:100%}tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 5px!important;font-size:12px!important;font-weight:400!important}tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding-left:5px!important;padding-right:5px!important}.date-column[_ngcontent-%COMP%]{width:150px}.name-column[_ngcontent-%COMP%]{max-width:0;width:20%}.location-column[_ngcontent-%COMP%]{max-width:0;min-width:72px}.pk-column[_ngcontent-%COMP%]{max-width:0;width:25%}.history-pk-column[_ngcontent-%COMP%]{width:20%!important}.icon-fixer[_ngcontent-%COMP%]{line-height:0px}.note-column[_ngcontent-%COMP%]{max-width:0;width:3%;min-width:60px}.note-column[_ngcontent-%COMP%] .note-icon[_ngcontent-%COMP%]{opacity:.55;font-size:16px!important;display:inline}.flag-column[_ngcontent-%COMP%]{width:1px;line-height:0px}.actions[_ngcontent-%COMP%]{width:1px}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}.flag[_ngcontent-%COMP%]{width:20px;height:15px;display:inline-block;margin-right:5px;background-image:url(/assets/img/big-flags/unknown.png);background-size:contain}.flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.center[_ngcontent-%COMP%]{text-align:center}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]});const mp=function(n,t){return{"small-text-icon":n,"big-text-icon":t}};function Xne(n,t){if(1&n&&(D(0,"mat-icon",4),R(1,"translate"),E(2,"done"),x()),2&n){const e=z();M("ngClass",cn(5,mp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.selected-info"))}}function Qne(n,t){if(1&n&&(D(0,"mat-icon",5),R(1,"translate"),E(2,"clear"),x()),2&n){const e=z();M("ngClass",cn(5,mp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.blocked-info"))}}function Jne(n,t){if(1&n&&(D(0,"mat-icon",6),R(1,"translate"),E(2,"star"),x()),2&n){const e=z();M("ngClass",cn(5,mp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.favorite-info"))}}function eie(n,t){if(1&n&&(D(0,"mat-icon",4),R(1,"translate"),E(2,"history"),x()),2&n){const e=z();M("ngClass",cn(5,mp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.history-info"))}}function tie(n,t){if(1&n&&(D(0,"mat-icon",4),R(1,"translate"),E(2,"lock_outlined"),x()),2&n){const e=z();M("ngClass",cn(5,mp,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",B(1,3,"vpn.server-conditions.has-password-info"))}}function nie(n,t){if(1&n&&(Ue(0),E(1),D(2,"mat-icon",7),E(3,"fiber_manual_record"),x(),E(4),We()),2&n){const e=z();c(1),ce(" ",e.customName," "),c(1),M("inline",!0),c(2),ce(" ",e.name,"\n")}}function iie(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z();c(1),oe(e.customName)}}function rie(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z();c(1),oe(e.name)}}function oie(n,t){if(1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n){const e=z();c(1),oe(B(2,1,e.defaultName))}}class Iu{constructor(){this.isCurrentServer=!1,this.isFavorite=!1,this.isBlocked=!1,this.isInHistory=!1,this.hasPassword=!1,this.name="",this.customName="",this.pk="",this.defaultName="",this.adjustIconsForBigText=!1}}Iu.\u0275fac=function(t){return new(t||Iu)},Iu.\u0275cmp=qe({type:Iu,selectors:[["app-vpn-server-name"]],inputs:{isCurrentServer:"isCurrentServer",isFavorite:"isFavorite",isBlocked:"isBlocked",isInHistory:"isInHistory",hasPassword:"hasPassword",name:"name",customName:"customName",pk:"pk",defaultName:"defaultName",adjustIconsForBigText:"adjustIconsForBigText"},decls:9,vars:9,consts:[["class","server-condition-icon",3,"ngClass","inline","matTooltip",4,"ngIf"],["class","server-condition-icon red-clear-text",3,"ngClass","inline","matTooltip",4,"ngIf"],["class","server-condition-icon yellow-clear-text",3,"ngClass","inline","matTooltip",4,"ngIf"],[4,"ngIf"],[1,"server-condition-icon",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","red-clear-text",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","yellow-clear-text",3,"ngClass","inline","matTooltip"],[1,"name-separator",3,"inline"]],template:function(t,e){1&t&&(V(0,Xne,3,8,"mat-icon",0),V(1,Qne,3,8,"mat-icon",1),V(2,Jne,3,8,"mat-icon",2),V(3,eie,3,8,"mat-icon",0),V(4,tie,3,8,"mat-icon",0),V(5,nie,5,3,"ng-container",3),V(6,iie,2,1,"ng-container",3),V(7,rie,2,1,"ng-container",3),V(8,oie,3,3,"ng-container",3)),2&t&&(M("ngIf",e.isCurrentServer),c(1),M("ngIf",e.isBlocked),c(1),M("ngIf",e.isFavorite),c(1),M("ngIf",e.isInHistory),c(1),M("ngIf",e.hasPassword),c(1),M("ngIf",e.customName&&e.name&&(!e.pk||e.name!==e.pk)),c(1),M("ngIf",(!e.name||e.pk&&e.name===e.pk)&&e.customName),c(1),M("ngIf",e.name&&(!e.pk||e.name!==e.pk)&&!e.customName),c(1),M("ngIf",(!e.name||e.pk&&e.name===e.pk)&&!e.customName))},dependencies:[Rn,It,yn,vi,xt],styles:[".server-condition-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;margin-right:3px;position:relative;width:14px!important;-webkit-user-select:none;user-select:none;cursor:default}.small-text-icon[_ngcontent-%COMP%]{top:2px}.big-text-icon[_ngcontent-%COMP%]{top:0}.name-separator[_ngcontent-%COMP%]{display:inline!important;font-size:8px!important;opacity:.5!important}"]});const uP=function(){return["vpn.title"]};function sie(n,t){if(1&n&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3),x(),xe(3,"app-loading-indicator"),x()),2&n){const e=z();c(2),M("titleParts",Un(5,uP))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function aie(n,t){1&n&&xe(0,"mat-spinner",32),2&n&&M("diameter",40)}function lie(n,t){1&n&&(D(0,"mat-icon",33),E(1,"power_settings_new"),x()),2&n&&M("inline",!0)}function cie(n,t){if(1&n){const e=et();Ue(0),D(1,"div",34),xe(2,"div",35),x(),D(3,"div",36)(4,"div",37),xe(5,"app-vpn-server-name",38),x(),D(6,"div",39),xe(7,"app-copy-to-clipboard-text",40),x()(),D(8,"div",41),xe(9,"div"),x(),D(10,"div",42)(11,"mat-icon",43),ye("click",function(){return Pe(e),Oe(z(3).openServerOptions())}),R(12,"translate"),E(13,"settings"),x()(),We()}if(2&n){const e=z(3);c(2),di("background-image: url('assets/img/big-flags/"+e.currentRemoteServer.countryCode.toLocaleLowerCase()+".png');"),M("matTooltip",e.getCountryName(e.currentRemoteServer.countryCode)),c(3),M("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),c(2),M("shortSimple",!0)("text",e.currentRemoteServer.pk),c(4),M("inline",!0)("matTooltip",B(12,13,"vpn.server-options.tooltip"))}}function die(n,t){1&n&&(Ue(0),D(1,"div",44),E(2),R(3,"translate"),x(),We()),2&n&&(c(2),oe(B(3,1,"vpn.status-page.no-server")))}const uie=function(n,t){return{custom:n,original:t}};function hie(n,t){if(1&n&&(D(0,"div",45)(1,"mat-icon",33),E(2,"info_outline"),x(),E(3),R(4,"translate"),x()),2&n){const e=z(3);c(1),M("inline",!0),c(2),ce(" ",Ct(4,2,e.getNoteVar(),cn(5,uie,e.currentRemoteServer.personalNote,e.currentRemoteServer.note))," ")}}function fie(n,t){if(1&n&&(D(0,"div",46)(1,"mat-icon",33),E(2,"cancel"),x(),E(3),R(4,"translate"),x()),2&n){const e=z(3);c(1),M("inline",!0),c(2),_o(" ",B(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.lastErrorMsg," ")}}const hP=function(n){return{"disabled-button":n}};function pie(n,t){if(1&n){const e=et();D(0,"div",22)(1,"div",11)(2,"div",13),E(3),R(4,"translate"),x(),D(5,"div")(6,"div",23),ye("click",function(){return Pe(e),Oe(z(2).start())}),D(7,"div",24),xe(8,"div",25),x(),D(9,"div",24),xe(10,"div",26),x(),V(11,aie,1,1,"mat-spinner",27),V(12,lie,2,1,"mat-icon",28),x()(),D(13,"div",29),V(14,cie,14,15,"ng-container",18),V(15,die,4,3,"ng-container",18),x(),D(16,"div"),V(17,hie,5,8,"div",30),x(),D(18,"div"),V(19,fie,5,5,"div",31),x()()()}if(2&n){const e=z(2);c(3),oe(B(4,8,"vpn.status-page.start-title")),c(3),M("ngClass",Be(10,hP,e.showBusy)),c(5),M("ngIf",e.showBusy),c(1),M("ngIf",!e.showBusy),c(2),M("ngIf",e.currentRemoteServer),c(1),M("ngIf",!e.currentRemoteServer),c(2),M("ngIf",e.currentRemoteServer&&(e.currentRemoteServer.note||e.currentRemoteServer.personalNote)),c(2),M("ngIf",e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.lastErrorMsg)}}function mie(n,t){if(1&n&&(D(0,"div",77)(1,"mat-icon",33),E(2,"cancel"),x(),E(3),R(4,"translate"),x()),2&n){const e=z(3);c(1),M("inline",!0),c(2),_o(" ",B(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.connectionData.error," ")}}function _ie(n,t){1&n&&(D(0,"div"),xe(1,"mat-spinner",32),x()),2&n&&(c(1),M("diameter",24))}function gie(n,t){1&n&&(D(0,"mat-icon",33),E(1,"power_settings_new"),x()),2&n&&M("inline",!0)}const Pu=function(n){return{showValue:!0,showUnit:!0,showPerSecond:!0,limitDecimals:!0,useBits:n}},fP=function(n){return{showValue:!0,showUnit:!0,showPerSecond:!0,useBits:n}},pP=function(n){return{showValue:!0,showUnit:!0,useBits:n}},Hg=function(n){return{time:n}};function bie(n,t){if(1&n){const e=et();D(0,"div",47)(1,"div",11)(2,"div",48)(3,"div",49)(4,"mat-icon",33),E(5,"timer"),x(),D(6,"span"),E(7),x()()(),D(8,"div",50),E(9),R(10,"translate"),x(),D(11,"div",51)(12,"div",52),E(13),R(14,"translate"),x(),xe(15,"div"),x(),D(16,"div",53),E(17),R(18,"translate"),x(),V(19,mie,5,5,"div",54),D(20,"div",55)(21,"div",56),R(22,"translate"),D(23,"div",57),xe(24,"app-line-chart",58),x(),D(25,"div",59)(26,"div",60)(27,"div",61),E(28),R(29,"autoScale"),x(),xe(30,"div",62),x()(),D(31,"div",59)(32,"div",63)(33,"div",61),E(34),R(35,"autoScale"),x(),xe(36,"div",62),x()(),D(37,"div",59)(38,"div",64)(39,"div",61),E(40),R(41,"autoScale"),x()()(),D(42,"div",65)(43,"mat-icon",66),E(44,"keyboard_backspace"),x(),D(45,"div",67),E(46),R(47,"autoScale"),x(),D(48,"div",68),E(49),R(50,"autoScale"),R(51,"translate"),x()()(),D(52,"div",56),R(53,"translate"),D(54,"div",57),xe(55,"app-line-chart",58),x(),D(56,"div",69)(57,"div",60)(58,"div",61),E(59),R(60,"autoScale"),x(),xe(61,"div",62),x()(),D(62,"div",59)(63,"div",63)(64,"div",61),E(65),R(66,"autoScale"),x(),xe(67,"div",62),x()(),D(68,"div",59)(69,"div",64)(70,"div",61),E(71),R(72,"autoScale"),x()()(),D(73,"div",65)(74,"mat-icon",70),E(75,"keyboard_backspace"),x(),D(76,"div",67),E(77),R(78,"autoScale"),x(),D(79,"div",68),E(80),R(81,"autoScale"),R(82,"translate"),x()()()(),D(83,"div",71)(84,"div",72),R(85,"translate"),D(86,"div",57),xe(87,"app-line-chart",73),x(),D(88,"div",69)(89,"div",60)(90,"div",61),E(91),R(92,"translate"),x(),xe(93,"div",62),x()(),D(94,"div",59)(95,"div",63)(96,"div",61),E(97),R(98,"translate"),x(),xe(99,"div",62),x()(),D(100,"div",59)(101,"div",64)(102,"div",61),E(103),R(104,"translate"),x()()(),D(105,"div",65)(106,"mat-icon",33),E(107,"swap_horiz"),x(),D(108,"div"),E(109),R(110,"translate"),x()()()(),D(111,"div",74),ye("click",function(){return Pe(e),Oe(z(2).stop())}),D(112,"div",75)(113,"div",76),V(114,_ie,2,1,"div",18),V(115,gie,2,1,"mat-icon",28),D(116,"span"),E(117),R(118,"translate"),x()()()()()()}if(2&n){const e=z(2);c(4),M("inline",!0),c(3),oe(e.connectionTimeString),c(2),oe(B(10,58,"vpn.connection-info.state-title")),c(4),oe(B(14,60,e.currentStateText)),c(2),eo("state-line "+e.currentStateLineClass),c(2),oe(B(18,62,e.currentStateText+"-info")),c(2),M("ngIf",e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.connectionData&&e.backendState.vpnClientAppData.connectionData.error),c(2),M("matTooltip",B(22,64,"vpn.status-page.upload-info")),c(3),M("animated",!1)("data",e.sentHistory)("min",e.minUploadInGraph)("max",e.maxUploadInGraph),c(4),ce(" ",Ct(29,66,e.maxUploadInGraph,Be(118,Pu,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",Ct(35,69,e.midUploadInGraph,Be(120,Pu,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",Ct(41,72,e.minUploadInGraph,Be(122,Pu,e.showSpeedsInBits))," "),c(3),M("inline",!0),c(3),oe(Ct(47,75,e.uploadSpeed,Be(124,fP,e.showSpeedsInBits))),c(3),_o(" ",Ct(50,78,e.totalUploaded,Be(126,pP,e.showTotalsInBits))," ",B(51,81,"vpn.status-page.total-data-label")," "),c(3),M("matTooltip",B(53,83,"vpn.status-page.download-info")),c(3),M("animated",!1)("data",e.receivedHistory)("min",e.minDownloadInGraph)("max",e.maxDownloadInGraph),c(4),ce(" ",Ct(60,85,e.maxDownloadInGraph,Be(128,Pu,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",Ct(66,88,e.midDownloadInGraph,Be(130,Pu,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",Ct(72,91,e.minDownloadInGraph,Be(132,Pu,e.showSpeedsInBits))," "),c(3),M("inline",!0),c(3),oe(Ct(78,94,e.downloadSpeed,Be(134,fP,e.showSpeedsInBits))),c(3),_o(" ",Ct(81,97,e.totalDownloaded,Be(136,pP,e.showTotalsInBits))," ",B(82,100,"vpn.status-page.total-data-label")," "),c(4),M("matTooltip",B(85,102,"vpn.status-page.latency-info")),c(3),M("animated",!1)("data",e.latencyHistory)("min",e.minLatencyInGraph)("max",e.maxLatencyInGraph),c(4),ce(" ",Ct(92,104,"common."+e.getLatencyValueString(e.maxLatencyInGraph),Be(138,Hg,e.getPrintableLatency(e.maxLatencyInGraph)))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",Ct(98,107,"common."+e.getLatencyValueString(e.midLatencyInGraph),Be(140,Hg,e.getPrintableLatency(e.midLatencyInGraph)))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",Ct(104,110,"common."+e.getLatencyValueString(e.minLatencyInGraph),Be(142,Hg,e.getPrintableLatency(e.minLatencyInGraph)))," "),c(3),M("inline",!0),c(3),oe(Ct(110,113,"common."+e.getLatencyValueString(e.latency),Be(144,Hg,e.getPrintableLatency(e.latency)))),c(2),M("ngClass",Be(146,hP,e.showBusy)),c(3),M("ngIf",e.showBusy),c(1),M("ngIf",!e.showBusy),c(2),oe(B(118,116,"vpn.status-page.disconnect"))}}function vie(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z(3);c(1),oe(e.currentIp)}}function yie(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"common.unknown")))}function Mie(n,t){1&n&&xe(0,"mat-spinner",32),2&n&&M("diameter",20)}function wie(n,t){1&n&&(D(0,"mat-icon",81),R(1,"translate"),E(2,"warning"),x()),2&n&&M("inline",!0)("matTooltip",B(1,2,"vpn.status-page.data.ip-problem-info"))}function xie(n,t){if(1&n){const e=et();D(0,"mat-icon",82),ye("click",function(){return Pe(e),Oe(z(3).getIp())}),R(1,"translate"),E(2,"refresh"),x()}2&n&&M("inline",!0)("matTooltip",B(1,2,"vpn.status-page.data.ip-refresh-info"))}function Cie(n,t){if(1&n&&(D(0,"div",78),V(1,vie,2,1,"ng-container",18),V(2,yie,3,3,"ng-container",18),V(3,Mie,1,1,"mat-spinner",27),V(4,wie,3,4,"mat-icon",79),V(5,xie,3,4,"mat-icon",80),x()),2&n){const e=z(2);c(1),M("ngIf",e.currentIp),c(1),M("ngIf",!e.currentIp&&!e.loadingCurrentIp),c(1),M("ngIf",e.loadingCurrentIp),c(1),M("ngIf",e.problemGettingIp),c(1),M("ngIf",!e.loadingCurrentIp)}}function kie(n,t){1&n&&(D(0,"div",78),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"vpn.status-page.data.unavailable")," "))}function Sie(n,t){if(1&n&&(Ue(0),E(1),We()),2&n){const e=z(3);c(1),oe(e.ipCountry)}}function Die(n,t){1&n&&(Ue(0),E(1),R(2,"translate"),We()),2&n&&(c(1),oe(B(2,1,"common.unknown")))}function Tie(n,t){1&n&&xe(0,"mat-spinner",32),2&n&&M("diameter",20)}function Lie(n,t){1&n&&(D(0,"mat-icon",81),R(1,"translate"),E(2,"warning"),x()),2&n&&M("inline",!0)("matTooltip",B(1,2,"vpn.status-page.data.ip-country-problem-info"))}function Eie(n,t){if(1&n&&(D(0,"div",78),V(1,Sie,2,1,"ng-container",18),V(2,Die,3,3,"ng-container",18),V(3,Tie,1,1,"mat-spinner",27),V(4,Lie,3,4,"mat-icon",79),x()),2&n){const e=z(2);c(1),M("ngIf",e.ipCountry),c(1),M("ngIf",!e.ipCountry&&!e.loadingCurrentIp),c(1),M("ngIf",e.loadingCurrentIp),c(1),M("ngIf",e.problemGettingIp)}}function Iie(n,t){1&n&&(D(0,"div",78),E(1),R(2,"translate"),x()),2&n&&(c(1),ce(" ",B(2,1,"vpn.status-page.data.unavailable")," "))}function Pie(n,t){if(1&n){const e=et();D(0,"div")(1,"div",13),E(2),R(3,"translate"),x(),D(4,"div",78),xe(5,"app-vpn-server-name",83),D(6,"mat-icon",82),ye("click",function(){return Pe(e),Oe(z(2).openServerOptions())}),R(7,"translate"),E(8,"settings"),x()()()}if(2&n){const e=z(2);c(2),oe(B(3,10,"vpn.status-page.data.server")),c(3),M("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("adjustIconsForBigText",!0)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),c(1),M("inline",!0)("matTooltip",B(7,12,"vpn.server-options.tooltip"))}}function Oie(n,t){1&n&&xe(0,"div",15)}function Aie(n,t){if(1&n&&(D(0,"div")(1,"div",13),E(2),R(3,"translate"),x(),D(4,"div",20),E(5),x()()),2&n){const e=z(2);c(2),oe(B(3,2,"vpn.status-page.data.server-note")),c(3),ce(" ",e.currentRemoteServer.personalNote," ")}}function Fie(n,t){1&n&&xe(0,"div",15)}function Rie(n,t){if(1&n&&(D(0,"div")(1,"div",13),E(2),R(3,"translate"),x(),D(4,"div",20),E(5),x()()),2&n){const e=z(2);c(2),oe(B(3,2,"vpn.status-page.data."+(e.currentRemoteServer.personalNote?"original-":"")+"server-note")),c(3),ce(" ",e.currentRemoteServer.note," ")}}function Nie(n,t){1&n&&xe(0,"div",15)}function Yie(n,t){if(1&n&&(D(0,"div")(1,"div",13),E(2),R(3,"translate"),x(),D(4,"div",20),xe(5,"app-copy-to-clipboard-text",21),x()()),2&n){const e=z(2);c(2),oe(B(3,2,"vpn.status-page.data.remote-pk")),c(3),M("text",e.currentRemoteServer.pk)}}function Bie(n,t){1&n&&xe(0,"div",15)}function Hie(n,t){if(1&n&&(D(0,"div",4)(1,"div",5)(2,"div",6),xe(3,"app-top-bar",3),x()(),D(4,"div",7),V(5,pie,20,12,"div",8),V(6,bie,119,148,"div",9),D(7,"div",10)(8,"div",11)(9,"div",12)(10,"div")(11,"div",13),E(12),R(13,"translate"),x(),V(14,Cie,6,5,"div",14),V(15,kie,3,3,"div",14),x(),xe(16,"div",15),D(17,"div")(18,"div",13),E(19),R(20,"translate"),x(),V(21,Eie,5,4,"div",14),V(22,Iie,3,3,"div",14),x(),xe(23,"div",16)(24,"div",17)(25,"div",16),V(26,Pie,9,14,"div",18),V(27,Oie,1,0,"div",19),V(28,Aie,6,4,"div",18),V(29,Fie,1,0,"div",19),V(30,Rie,6,4,"div",18),V(31,Nie,1,0,"div",19),V(32,Yie,6,4,"div",18),V(33,Bie,1,0,"div",19),D(34,"div")(35,"div",13),E(36),R(37,"translate"),x(),D(38,"div",20),xe(39,"app-copy-to-clipboard-text",21),x()()()()()()()),2&n){const e=z();c(3),M("titleParts",Un(29,uP))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(2),M("ngIf",!e.showStarted),c(1),M("ngIf",e.showStarted),c(6),oe(B(13,23,"vpn.status-page.data.ip")),c(2),M("ngIf",e.ipInfoAllowed),c(1),M("ngIf",!e.ipInfoAllowed),c(4),oe(B(20,25,"vpn.status-page.data.country")),c(2),M("ngIf",e.ipInfoAllowed),c(1),M("ngIf",!e.ipInfoAllowed),c(4),M("ngIf",e.showStarted&&e.currentRemoteServer),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer),c(1),M("ngIf",e.showStarted&&e.currentRemoteServer),c(3),oe(B(37,27,"vpn.status-page.data.local-pk")),c(3),M("text",e.currentLocalPk)}}class _p{constructor(t,e,i,o,s,a,l){this.vpnClientService=t,this.vpnSavedDataService=e,this.snackbarService=i,this.translateService=o,this.route=s,this.dialog=a,this.router=l,this.tabsData=fn.vpnTabsData,this.sentHistory=[0,0,0,0,0,0,0,0,0,0],this.receivedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0],this.minUploadInGraph=0,this.midUploadInGraph=0,this.maxUploadInGraph=0,this.minDownloadInGraph=0,this.midDownloadInGraph=0,this.maxDownloadInGraph=0,this.minLatencyInGraph=0,this.midLatencyInGraph=0,this.maxLatencyInGraph=0,this.graphsTopInternalMargin=Rs.topInternalMargin,this.connectionTimeString="00:00:00",this.calculatedSegs=-1,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0,this.showSpeedsInBits=!0,this.showTotalsInBits=!1,this.loading=!0,this.showStartedLastValue=!1,this.showStarted=!1,this.lastAppState=null,this.showBusy=!1,this.stopRequested=!1,this.loadingCurrentIp=!0,this.problemGettingIp=!1,this.lastIpRefresDate=0,this.serverFlags=Wn,this.ipInfoAllowed=this.vpnSavedDataService.getCheckIpSetting();const d=this.vpnSavedDataService.getDataUnitsSetting();d===ao.OnlyBits?(this.showSpeedsInBits=!0,this.showTotalsInBits=!0):d===ao.OnlyBytes?(this.showSpeedsInBits=!1,this.showTotalsInBits=!1):(this.showSpeedsInBits=!0,this.showTotalsInBits=!1)}ngOnInit(){this.navigationsSubscription=this.route.paramMap.subscribe(t=>{t.has("key")&&(this.currentLocalPk=t.get("key"),fn.changeCurrentPk(this.currentLocalPk),this.tabsData=fn.vpnTabsData),setTimeout(()=>this.navigationsSubscription.unsubscribe()),this.dataSubscription=this.vpnClientService.backendState.subscribe(e=>{if(e&&e.serviceState!==ir.PerformingInitialCheck){const i=!this.backendState;if(this.backendState=e,(i||this.lastAppState===Mn.Running&&e.vpnClientAppData.appState!==Mn.Running||this.lastAppState!==Mn.Running&&e.vpnClientAppData.appState===Mn.Running)&&this.getIp(!0),this.showStarted=e.vpnClientAppData.running||e.vpnClientAppData.appState!==Mn.Stopped,this.showStartedLastValue!==this.showStarted){for(let o=0;o<10;o++)this.receivedHistory[o]=0,this.sentHistory[o]=0,this.latencyHistory[o]=0;this.updateGraphLimits(),this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0}if(this.lastAppState=e.vpnClientAppData.appState,this.showStartedLastValue=this.showStarted,this.stopRequested?this.showStarted||(this.stopRequested=!1,this.showBusy=e.busy):this.showBusy=e.busy,e.vpnClientAppData.connectionData){for(let o=0;o<10;o++)this.receivedHistory[o]=e.vpnClientAppData.connectionData.downloadSpeedHistory[o],this.sentHistory[o]=e.vpnClientAppData.connectionData.uploadSpeedHistory[o],this.latencyHistory[o]=e.vpnClientAppData.connectionData.latencyHistory[o];this.updateGraphLimits(),this.uploadSpeed=e.vpnClientAppData.connectionData.uploadSpeed,this.downloadSpeed=e.vpnClientAppData.connectionData.downloadSpeed,this.totalUploaded=e.vpnClientAppData.connectionData.totalUploaded,this.totalDownloaded=e.vpnClientAppData.connectionData.totalDownloaded,this.latency=e.vpnClientAppData.connectionData.latency}e.vpnClientAppData.running&&e.vpnClientAppData.appState===Mn.Running&&e.vpnClientAppData.connectionData&&e.vpnClientAppData.connectionData.connectionDuration?(-1===this.calculatedSegs||e.vpnClientAppData.connectionData.connectionDuration>this.calculatedSegs+2||e.vpnClientAppData.connectionData.connectionDuration(e.add(t.schedule(Zne,n,{subscriber:e,counter:0,period:n})),e))}(1e3).subscribe(()=>{this.calculatedSegs+=1,this.refreshConnectionTimeString()})):this.timeUpdateSubscription&&(this.timeUpdateSubscription.unsubscribe(),this.timeUpdateSubscription=null,this.calculatedSegs=-1,this.connectionTimeString="00:00:00"),this.loading=!1}}),this.currentRemoteServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(e=>{this.currentRemoteServer=e})})}refreshConnectionTimeString(){const t=this.calculatedSegs%60,e=Math.floor(this.calculatedSegs/60),i=e%60,o=Math.floor(e/60);this.connectionTimeString=String(o).padStart(2,"0")+":"+String(i).padStart(2,"0")+":"+String(t).padStart(2,"0")}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.currentRemoteServerSubscription.unsubscribe(),this.closeOperationSubscription(),this.ipSubscription&&this.ipSubscription.unsubscribe(),this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}start(){if(!this.currentRemoteServer)return this.router.navigate(["vpn",this.currentLocalPk,"servers"]),void setTimeout(()=>this.snackbarService.showWarning("vpn.status-page.select-server-warning"),100);this.currentRemoteServer.flag!==Wn.Blocked?(this.showBusy=!0,this.vpnClientService.start()):this.snackbarService.showError("vpn.starting-blocked-server-error")}stop(){if(!this.backendState.vpnClientAppData.killswitch)return void this.finishStoppingVpn();const t=Wt.createConfirmationDialog(this.dialog,"vpn.status-page.disconnect-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.finishStoppingVpn()})}finishStoppingVpn(){this.stopRequested=!0,this.showBusy=!0,this.vpnClientService.stop()}openServerOptions(){fn.openServerOptions(this.currentRemoteServer,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe()}getCountryName(t){return ba[t.toUpperCase()]?ba[t.toUpperCase()]:t}getNoteVar(){return this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?"vpn.server-list.notes-info":!this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?this.currentRemoteServer.personalNote:this.currentRemoteServer.note}getLatencyValueString(t){return fn.getLatencyValueString(t)}getPrintableLatency(t){return fn.getPrintableLatency(t)}get currentStateText(){return this.backendState.vpnClientAppData.appState===Mn.Stopped?"vpn.connection-info.state-disconnected":this.backendState.vpnClientAppData.appState===Mn.Connecting?"vpn.connection-info.state-connecting":this.backendState.vpnClientAppData.appState===Mn.Running?"vpn.connection-info.state-connected":this.backendState.vpnClientAppData.appState===Mn.ShuttingDown?"vpn.connection-info.state-disconnecting":this.backendState.vpnClientAppData.appState===Mn.Reconnecting?"vpn.connection-info.state-reconnecting":void 0}get currentStateLineClass(){return this.backendState.vpnClientAppData.appState===Mn.Stopped?"red-line":this.backendState.vpnClientAppData.appState===Mn.Connecting?"yellow-line":this.backendState.vpnClientAppData.appState===Mn.Running?"green-line":"yellow-line"}closeOperationSubscription(){this.operationSubscription&&this.operationSubscription.unsubscribe()}updateGraphLimits(){const t=this.calculateGraphLimits(this.sentHistory);this.minUploadInGraph=t[0],this.midUploadInGraph=t[1],this.maxUploadInGraph=t[2];const e=this.calculateGraphLimits(this.receivedHistory);this.minDownloadInGraph=e[0],this.midDownloadInGraph=e[1],this.maxDownloadInGraph=e[2];const i=this.calculateGraphLimits(this.latencyHistory);this.minLatencyInGraph=i[0],this.midLatencyInGraph=i[1],this.maxLatencyInGraph=i[2]}calculateGraphLimits(t){let i=0,o=0;return t.forEach(s=>{s>i&&(i=s)}),0===i&&(i+=1),o=new(Ag())(i).minus(0).dividedBy(2).plus(0).decimalPlaces(1).toNumber(),[0,o,i]}getIp(t=!1){if(this.ipInfoAllowed){if(!t){if(this.loadingCurrentIp)return void this.snackbarService.showWarning("vpn.status-page.data.ip-refresh-loading-warning");const e=1e4;if(Date.now()-this.lastIpRefresDate{this.loadingCurrentIp=!1,this.lastIpRefresDate=Date.now(),e?(this.problemGettingIp=!1,this.currentIp=e[0],this.ipCountry=e[1]):this.problemGettingIp=!0},()=>{this.lastIpRefresDate=Date.now(),this.loadingCurrentIp=!1,this.problemGettingIp=!1})}}}_p.\u0275fac=function(t){return new(t||_p)(F(jo),F(Vo),F(on),F(oo),F(yr),F(Ln),F(Qt))},_p.\u0275cmp=qe({type:_p,selectors:[["app-vpn-status"]],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","general-container",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"general-container"],[1,"row"],[1,"col-12"],[1,"row","flex-1"],["class","col-7 column left-area",4,"ngIf"],["class","col-7 column left-area-connected",4,"ngIf"],[1,"col-5","column","right-area"],[1,"column-container"],[1,"content-area"],[1,"title"],["class","big-text",4,"ngIf"],[1,"margin"],[1,"big-margin"],[1,"separator"],[4,"ngIf"],["class","margin",4,"ngIf"],[1,"small-text"],[3,"text"],[1,"col-7","column","left-area"],[1,"start-button",3,"ngClass","click"],[1,"start-button-img-container"],[1,"start-button-img"],[1,"start-button-img","animated-button"],[3,"diameter",4,"ngIf"],[3,"inline",4,"ngIf"],[1,"current-server"],["class","lower-text current-server-note",4,"ngIf"],["class","lower-text last-error",4,"ngIf"],[3,"diameter"],[3,"inline"],[1,"flag"],[3,"matTooltip"],[1,"text-container"],[1,"top-line"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","name","pk","customName"],[1,"bottom-line"],[3,"shortSimple","text"],[1,"icon-button-separator"],[1,"icon-button"],[1,"transparent-button","vpn-small-button",3,"inline","matTooltip","click"],[1,"none"],[1,"lower-text","current-server-note"],[1,"lower-text","last-error"],[1,"col-7","column","left-area-connected"],[1,"time-container"],[1,"time-content"],[1,"state-title"],[1,"d-inline-block"],[1,"state-text"],[1,"state-explanation"],["class","last-connected-error",4,"ngIf"],[1,"data-container"],[1,"rounded-elevated-box","data-box","big-box",3,"matTooltip"],[1,"chart-container"],["height","140","color","#00000080",3,"animated","data","min","max"],[1,"chart-label"],[1,"label-container","label-top"],[1,"label"],[1,"line"],[1,"label-container","label-mid"],[1,"label-container","label-bottom"],[1,"content"],[1,"upload",3,"inline"],[1,"speed"],[1,"total"],[1,"chart-label","top-chart-label"],[1,"download",3,"inline"],[1,"latency-container"],[1,"rounded-elevated-box","data-box","small-box",3,"matTooltip"],["height","50","color","#00000080",3,"animated","data","min","max"],[1,"disconnect-button",3,"ngClass","click"],[1,"disconnect-button-container"],[1,"d-inline-flex"],[1,"last-connected-error"],[1,"big-text"],["class","small-icon blinking",3,"inline","matTooltip",4,"ngIf"],["class","big-icon transparent-button vpn-small-button",3,"inline","matTooltip","click",4,"ngIf"],[1,"small-icon","blinking",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"inline","matTooltip","click"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","adjustIconsForBigText","name","pk","customName"]],template:function(t,e){1&t&&(V(0,sie,4,6,"div",0),V(1,Hie,40,30,"div",1)),2&t&&(M("ngIf",e.loading),c(1),M("ngIf",!e.loading))},dependencies:[Rn,It,yn,vi,oc,Tc,Rs,Gr,cs,Iu,xt,rr],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.general-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.column[_ngcontent-%COMP%]{height:100%;display:flex;align-items:center;padding-top:40px;padding-bottom:20px}.column[_ngcontent-%COMP%] .column-container[_ngcontent-%COMP%]{width:100%;text-align:center}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%]{background:rgba(0,0,0,.7);border-radius:100px;font-size:.8rem;padding:8px 15px;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%]{color:#bbb}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:top}.left-area-connected[_ngcontent-%COMP%] .state-title[_ngcontent-%COMP%]{font-size:1rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .state-text[_ngcontent-%COMP%]{font-size:2rem;text-transform:uppercase}.left-area-connected[_ngcontent-%COMP%] .state-line[_ngcontent-%COMP%]{height:1px;width:100%;margin-bottom:5px}.left-area-connected[_ngcontent-%COMP%] .green-line[_ngcontent-%COMP%]{background-color:#2ecc54}.left-area-connected[_ngcontent-%COMP%] .yellow-line[_ngcontent-%COMP%]{background-color:#d48b05}.left-area-connected[_ngcontent-%COMP%] .red-line[_ngcontent-%COMP%]{background-color:#da3439}.left-area-connected[_ngcontent-%COMP%] .state-explanation[_ngcontent-%COMP%]{font-size:.7rem}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%]{margin-top:15px;font-size:.8rem;color:#ff393f}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .data-container[_ngcontent-%COMP%]{margin-top:20px}.left-area-connected[_ngcontent-%COMP%] .latency-container[_ngcontent-%COMP%]{margin-bottom:20px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%]{cursor:default;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{height:0px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%]{height:0px;text-align:left}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{position:relative;top:-3px;left:-3px;display:flex;margin-right:-6px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.6rem;margin-left:5px;opacity:.2}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:1px;width:10px;background-color:#fff;flex-grow:1;opacity:.1;margin-left:10px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-top[_ngcontent-%COMP%]{align-items:flex-start}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-mid[_ngcontent-%COMP%]{align-items:center}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-bottom[_ngcontent-%COMP%]{align-items:flex-end;position:relative;top:-6px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%]{width:170px;height:140px;margin:5px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:170px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{width:170px;height:140px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:20px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:25px;transform:rotate(-90deg);width:40px;height:40px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .download[_ngcontent-%COMP%]{transform:rotate(-90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .upload[_ngcontent-%COMP%]{transform:rotate(90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .speed[_ngcontent-%COMP%]{font-size:.875rem}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .total[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:140px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%]{width:352px;height:50px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:352px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:100%;font-size:.875rem;position:relative}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;height:25px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:50px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]{background:linear-gradient(#940000,#7b0000) no-repeat!important;box-shadow:5px 5px 7px #00000080;width:352px;font-size:24px;display:inline-block;border-radius:10px;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:hover{background:linear-gradient(#a10000,#900000) no-repeat!important}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:active{transform:scale(.98);box-shadow:0 0 7px #00000080}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%]{background-image:url(/assets/img/background-pattern.png);padding:12px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;position:relative;top:4px;margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{position:relative;top:-2px;line-height:1.7}.left-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;text-align:center;text-transform:uppercase}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]{text-align:center;margin:10px 0;cursor:pointer;display:inline-block;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:active mat-icon[_ngcontent-%COMP%]{transform:scale(.9)}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover .start-button-img-container[_ngcontent-%COMP%]{opacity:1}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{text-shadow:0px 0px 5px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%]{width:0px;height:0px;opacity:.7}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .start-button-img[_ngcontent-%COMP%]{display:inline-block;background-image:url(/assets/img/start-button.png);background-size:contain;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .animated-button[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_button-animation 4s linear infinite;pointer-events:none}@keyframes _ngcontent-%COMP%_button-animation{0%{transform:scale(1.5);opacity:0}25%{transform:scale(1);opacity:.8}50%{transform:scale(1.5);opacity:0}to{transform:scale(1.5);opacity:0}}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{line-height:140px;font-size:50px;-webkit-user-select:none;user-select:none;text-shadow:0px 0px 2px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin-top:50px;opacity:.5}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%]{display:inline-flex;background:rgba(0,0,0,.7);border-radius:10px;padding:10px 15px;max-width:280px;text-align:left}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{background-image:url(/assets/img/big-flags/unknown.png);width:20px;height:15px;background-size:contain;align-self:center;flex-shrink:0;margin-right:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{overflow:hidden}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.7rem;color:#bbb}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%]{display:flex;align-items:center}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:1px;height:30px;background:rgba(255,255,255,.15);margin-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{font-size:22px;line-height:1;display:flex;align-items:center;padding-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%]{display:inline-block;max-width:280px;margin-top:10px}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area[_ngcontent-%COMP%] .current-server-note[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area[_ngcontent-%COMP%] .last-error[_ngcontent-%COMP%]{font-size:.8rem;color:#ff393f}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%]{background:rgba(61,103,162,.1490196078);padding:30px;text-align:left;max-width:420px;opacity:.95}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%]{font-size:1.25rem;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:5px;position:relative;top:2px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .small-icon[_ngcontent-%COMP%]{color:#d48b05;opacity:.7;font-size:.875rem;cursor:default;margin-left:5px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .big-icon[_ngcontent-%COMP%]{font-size:1.125rem;margin-left:5px;position:relative;top:2px;line-height:1}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .small-text[_ngcontent-%COMP%]{font-size:.7rem;margin-top:1px;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .margin[_ngcontent-%COMP%]{height:12px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-margin[_ngcontent-%COMP%]{height:15px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:1px;width:100%;background:rgba(255,255,255,.15)}.disabled-button[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}"]});class ml{constructor(t){this.router=t}set lastError(t){this.lastErrorInternal=t}canActivate(t,e){return this.checkIfCanActivate()}canActivateChild(t,e){return this.checkIfCanActivate()}checkIfCanActivate(){return this.lastErrorInternal?(this.router.navigate(["vpn","unavailable"],{queryParams:{problem:this.lastErrorInternal}}),Ge(!1)):Ge(!0)}}ml.\u0275fac=function(t){return new(t||ml)(we(Qt))},ml.\u0275prov=Ye({token:ml,factory:ml.\u0275fac,providedIn:"root"});var Ns=(()=>(function(n){n.UnableToConnectWithTheVpnClientApp="unavailable",n.NoLocalVisorPkProvided="pk",n.InvalidStorageState="storage",n.LocalVisorPkChangedDuringUsage="pkChange"}(Ns||(Ns={})),Ns))();class gp{constructor(t,e,i){this.route=t,this.vpnAuthGuardService=e,this.vpnClientService=i,this.problem=null,this.navigationsSubscription=this.route.queryParamMap.subscribe(o=>{this.problem=o.get("problem"),this.problem||(this.problem=Ns.UnableToConnectWithTheVpnClientApp),this.vpnAuthGuardService.lastError=this.problem,this.vpnClientService.stopContinuallyUpdatingData(),setTimeout(()=>this.navigationsSubscription.unsubscribe())})}getTitle(){return this.problem===Ns.NoLocalVisorPkProvided?"vpn.error-page.text-pk":this.problem===Ns.InvalidStorageState?"vpn.error-page.text-storage":this.problem===Ns.LocalVisorPkChangedDuringUsage?"vpn.error-page.text-pk-change":"vpn.error-page.text"}getInfo(){return this.problem===Ns.NoLocalVisorPkProvided?"vpn.error-page.more-info-pk":this.problem===Ns.InvalidStorageState?"vpn.error-page.more-info-storage":this.problem===Ns.LocalVisorPkChangedDuringUsage?"vpn.error-page.more-info-pk-change":"vpn.error-page.more-info"}}gp.\u0275fac=function(t){return new(t||gp)(F(yr),F(ml),F(jo))},gp.\u0275cmp=qe({type:gp,selectors:[["app-vpn-error"]],decls:12,vars:7,consts:[[1,"main-container"],[1,"text-container"],[1,"inner-container"],[1,"error-icon"],[3,"inline"],[1,"more-info"]],template:function(t,e){1&t&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"mat-icon",4),E(5,"error_outline"),x()(),D(6,"div"),E(7),R(8,"translate"),x(),D(9,"div",5),E(10),R(11,"translate"),x()()()()),2&t&&(c(4),M("inline",!0),c(3),oe(B(8,3,e.getTitle())),c(3),oe(B(11,5,e.getInfo())))},dependencies:[yn,xt],styles:[".main-container[_ngcontent-%COMP%]{height:100%;display:flex}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%;align-self:center;text-align:center}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%]{max-width:550px;display:inline-block;font-size:1.25rem}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:80px}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .more-info[_ngcontent-%COMP%]{font-size:.8rem;opacity:.75;margin-top:10px}"]});const Vie=["button"],jie=["firstInput"];class Ec{constructor(t,e,i,o,s,a){this.dialogRef=t,this.data=e,this.formBuilder=i,this.snackbarService=o,this.appsService=s,this.vpnClientService=a}static openDialog(t,e){const i=new Tn;return i.data=e,i.autoFocus=!1,i.width=Rt.smallModalWidth,t.open(Ec,i)}ngOnInit(){this.form=this.formBuilder.group({ip:[this.data.ip,Vt.compose([Vt.maxLength(15),this.validateIp.bind(this)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}validateIp(){if(this.form){const t=this.form.get("ip").value;return Wt.checkIfIpValidOrEmpty(t)?null:{invalid:!0}}return null}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.appsService.changeAppSettings(this.data.nodePk,this.vpnClientService.vpnClientAppName,{dns:this.form.get("ip").value}).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(t){this.dialogRef.close(!0),this.snackbarService.showDone("vpn.dns-config.done")}onError(t){this.button.showError(),this.operationSubscription=null,t=Kt(t),this.snackbarService.showError(t)}}Ec.\u0275fac=function(t){return new(t||Ec)(F(Nn),F(Ti),F(aI),F(on),F(xo),F(jo))},Ec.\u0275cmp=qe({type:Ec,selectors:[["app-vpn-dns-config"]],viewQuery:function(t,e){if(1&t&&(ft(Vie,5),ft(jie,5)),2&t){let i;nt(i=it())&&(e.button=i.first),nt(i=it())&&(e.firstInput=i.first)}},decls:14,vars:11,consts:[[3,"headline"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","ip","maxlength","15","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(t,e){1&t&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),E(6),R(7,"translate"),x(),xe(8,"input",4,5),x()()(),D(10,"app-button",6,7),ye("action",function(){return e.save()}),E(12),R(13,"translate"),x()()),2&t&&(M("headline",B(1,5,"vpn.dns-config.title")),c(2),M("formGroup",e.form),c(4),oe(B(7,7,"vpn.dns-config.ip")),c(4),M("disabled",!e.form.valid),c(2),ce(" ",B(13,9,"vpn.dns-config.save-config-button")," "))},dependencies:[Bi,Ri,Ni,Yi,xr,ii,Li,nr,kr,ri,En,xt]});const zie=["topBarLoading"],Uie=["topBarLoaded"],mP=function(){return["vpn.title"]};function Wie(n,t){if(1&n&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3,4),x(),xe(4,"app-loading-indicator",5),x()),2&n){const e=z();c(2),M("titleParts",Un(5,mP))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function $ie(n,t){1&n&&xe(0,"mat-spinner",20),2&n&&M("diameter",12)}function Gie(n,t){if(1&n){const e=et();D(0,"div",6)(1,"div",7),xe(2,"app-top-bar",3,8),x(),D(4,"div",9)(5,"div",10)(6,"div",11)(7,"div",12)(8,"table",13)(9,"tr")(10,"th",14)(11,"div",15)(12,"div",16),E(13),R(14,"translate"),x()()(),D(15,"th",14),E(16),R(17,"translate"),x()(),D(18,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeKillswitchOption())}),D(19,"td",14)(20,"div"),E(21),R(22,"translate"),D(23,"mat-icon",18),R(24,"translate"),E(25,"help"),x()()(),D(26,"td",14),xe(27,"span"),E(28),R(29,"translate"),V(30,$ie,1,1,"mat-spinner",19),x()(),D(31,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeGetIpOption())}),D(32,"td",14)(33,"div"),E(34),R(35,"translate"),D(36,"mat-icon",18),R(37,"translate"),E(38,"help"),x()()(),D(39,"td",14),xe(40,"span"),E(41),R(42,"translate"),x()(),D(43,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeDataUnits())}),D(44,"td",14)(45,"div"),E(46),R(47,"translate"),D(48,"mat-icon",18),R(49,"translate"),E(50,"help"),x()()(),D(51,"td",14),E(52),R(53,"translate"),x()(),D(54,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeHops())}),D(55,"td",14)(56,"div"),E(57),R(58,"translate"),D(59,"mat-icon",18),R(60,"translate"),E(61,"help"),x()()(),D(62,"td",14),E(63),x()(),D(64,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeDns())}),D(65,"td",14)(66,"div"),E(67),R(68,"translate"),D(69,"mat-icon",18),R(70,"translate"),E(71,"help"),x()()(),D(72,"td",14),E(73),R(74,"translate"),x()()()()()()()()}if(2&n){const e=z();c(2),M("titleParts",Un(64,mP))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(11),ce(" ",B(14,32,"vpn.settings-page.setting-small-table-label")," "),c(3),ce(" ",B(17,34,"vpn.settings-page.value-small-table-label")," "),c(5),ce(" ",B(22,36,"vpn.settings-page.killswitch")," "),c(2),M("inline",!0)("matTooltip",B(24,38,"vpn.settings-page.killswitch-info")),c(4),eo(e.getStatusClass(e.backendData.vpnClientAppData.killswitch)),c(1),ce(" ",B(29,40,e.getStatusText(e.backendData.vpnClientAppData.killswitch))," "),c(2),M("ngIf",e.working===e.workingOptions.Killswitch),c(4),ce(" ",B(35,42,"vpn.settings-page.get-ip")," "),c(2),M("inline",!0)("matTooltip",B(37,44,"vpn.settings-page.get-ip-info")),c(4),eo(e.getStatusClass(e.getIpOption)),c(1),ce(" ",B(42,46,e.getStatusText(e.getIpOption))," "),c(5),ce(" ",B(47,48,"vpn.settings-page.data-units")," "),c(2),M("inline",!0)("matTooltip",B(49,50,"vpn.settings-page.data-units-info")),c(4),ce(" ",B(53,52,e.getUnitsOptionText(e.dataUnitsOption))," "),c(5),ce(" ",B(58,54,"vpn.settings-page.minimum-hops")," "),c(2),M("inline",!0)("matTooltip",B(60,56,"vpn.settings-page.minimum-hops-info")),c(4),ce(" ",e.backendData.vpnClientAppData.minHops," "),c(4),ce(" ",B(68,58,"vpn.settings-page.dns")," "),c(2),M("inline",!0)("matTooltip",B(70,60,"vpn.settings-page.dns-info")),c(4),ce(" ",e.backendData.vpnClientAppData.dns?e.backendData.vpnClientAppData.dns:B(74,62,"vpn.settings-page.setting-none")," ")}}var va=(()=>(function(n){n[n.None=0]="None",n[n.Killswitch=1]="Killswitch"}(va||(va={})),va))();class bp{constructor(t,e,i,o,s,a){this.vpnClientService=t,this.snackbarService=e,this.appsService=i,this.vpnSavedDataService=o,this.dialog=s,this.loading=!0,this.tabsData=fn.vpnTabsData,this.working=va.None,this.workingOptions=va,this.navigationsSubscription=a.paramMap.subscribe(l=>{l.has("key")&&(this.currentLocalPk=l.get("key"),fn.changeCurrentPk(this.currentLocalPk),this.tabsData=fn.vpnTabsData)}),this.dataSubscription=this.vpnClientService.backendState.subscribe(l=>{l&&l.serviceState!==ir.PerformingInitialCheck&&(this.backendData=l,this.loading=!1)}),this.getIpOption=this.vpnSavedDataService.getCheckIpSetting(),this.dataUnitsOption=this.vpnSavedDataService.getDataUnitsSetting()}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}getStatusClass(t){return!0===t?"dot-green":"dot-red"}getStatusText(t){return!0===t?"vpn.settings-page.setting-on":"vpn.settings-page.setting-off"}getUnitsOptionText(t){switch(t){case ao.OnlyBits:return"vpn.settings-page.data-units-modal.only-bits";case ao.OnlyBytes:return"vpn.settings-page.data-units-modal.only-bytes";default:return"vpn.settings-page.data-units-modal.bits-speed-and-bytes-volume"}}changeKillswitchOption(){if(this.working===va.None)if(this.backendData.vpnClientAppData.running){const t=Wt.createConfirmationDialog(this.dialog,"vpn.settings-page.change-while-connected-confirmation");t.componentInstance.operationAccepted.subscribe(()=>{t.componentInstance.closeModal(),this.finishChangingKillswitchOption()})}else this.finishChangingKillswitchOption();else this.snackbarService.showWarning("vpn.settings-page.working-warning")}finishChangingKillswitchOption(){this.working=va.Killswitch,this.operationSubscription=this.appsService.changeAppSettings(this.currentLocalPk,this.vpnClientService.vpnClientAppName,{killswitch:!this.backendData.vpnClientAppData.killswitch}).subscribe(()=>{this.working=va.None,this.vpnClientService.updateData()},t=>{this.working=va.None,t=Kt(t),this.snackbarService.showError(t)})}changeGetIpOption(){this.getIpOption=!this.getIpOption,this.vpnSavedDataService.setCheckIpSetting(this.getIpOption)}changeDataUnits(){const t=[],e=[];Object.keys(ao).forEach(i=>{const o={label:this.getUnitsOptionText(ao[i])};this.dataUnitsOption===ao[i]&&(o.icon="done"),t.push(o),e.push(ao[i])}),Hi.openDialog(this.dialog,t,"vpn.settings-page.data-units-modal.title").afterClosed().subscribe(i=>{i&&(this.dataUnitsOption=e[i-1],this.vpnSavedDataService.setDataUnitsSetting(this.dataUnitsOption),this.topBarLoading&&this.topBarLoading.updateVpnDataStatsUnit(),this.topBarLoaded&&this.topBarLoaded.updateVpnDataStatsUnit())})}changeHops(){pl.openDialog(this.dialog,{nodePk:this.currentLocalPk,minHops:this.backendData.vpnClientAppData.minHops}).afterClosed().subscribe()}changeDns(){Ec.openDialog(this.dialog,{nodePk:this.currentLocalPk,ip:this.backendData.vpnClientAppData.dns}).afterClosed().subscribe()}}bp.\u0275fac=function(t){return new(t||bp)(F(jo),F(on),F(xo),F(Vo),F(Ln),F(yr))},bp.\u0275cmp=qe({type:bp,selectors:[["app-vpn-settings-list"]],viewQuery:function(t,e){if(1&t&&(ft(zie,5),ft(Uie,5)),2&t){let i;nt(i=it())&&(e.topBarLoading=i.first),nt(i=it())&&(e.topBarLoaded=i.first)}},decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],["topBarLoading",""],[1,"h-100"],[1,"row"],[1,"col-12"],["topBarLoaded",""],[1,"col-12","mt-4.5","vpn-table-container"],[1,"width-limiter"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"data-column"],[1,"header-container"],[1,"header-text"],[1,"selectable",3,"click"],[1,"help-icon",3,"inline","matTooltip"],[3,"diameter",4,"ngIf"],[3,"diameter"]],template:function(t,e){1&t&&(V(0,Wie,5,6,"div",0),V(1,Gie,75,65,"div",1)),2&t&&(M("ngIf",e.loading),c(1),M("ngIf",!e.loading))},dependencies:[It,yn,vi,oc,Gr,cs,xt],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .data-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:7px!important;padding-bottom:7px!important;font-size:12px!important;font-weight:400!important}.data-column[_ngcontent-%COMP%]{max-width:0;width:50%}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:2px;position:relative;top:2px}mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}"]});const qie=[{path:"",component:Uf},{path:"login",component:pu},{path:"nodes",canActivate:[Es],canActivateChild:[Es],children:[{path:"",redirectTo:"list/1",pathMatch:"full"},{path:"list",redirectTo:"list/1",pathMatch:"full"},{path:"list/:page",component:Mu},{path:"dmsg",redirectTo:"dmsg/1",pathMatch:"full"},{path:"dmsg/:page",component:Mu},{path:":key",component:Je,children:[{path:"",redirectTo:"routing",pathMatch:"full"},{path:"info",component:fp},{path:"routing",component:sp},{path:"apps",component:ap},{path:"transports",redirectTo:"transports/1",pathMatch:"full"},{path:"transports/:page",component:lp},{path:"routes",redirectTo:"routes/1",pathMatch:"full"},{path:"routes/:page",component:cp},{path:"apps-list/:showOfficialApps/:page",component:dp}]}]},{path:"settings",canActivate:[Es],canActivateChild:[Es],children:[{path:"",component:op},{path:"labels",redirectTo:"labels/1",pathMatch:"full"},{path:"labels/:page",component:pp}]},{path:"vpnlogin/:key",component:pu},{path:"vpn",canActivate:[ml],canActivateChild:[ml],children:[{path:"unavailable",component:gp},{path:":key",children:[{path:"status",component:_p},{path:"servers",redirectTo:"servers/public/1",pathMatch:"full"},{path:"servers/:type/:page",component:Eu},{path:"settings",component:bp},{path:"**",redirectTo:"status"}]},{path:"**",redirectTo:"/vpn/unavailable?problem=pk"}]},{path:"**",redirectTo:""}];class Ou{}Ou.\u0275fac=function(t){return new(t||Ou)},Ou.\u0275mod=Pt({type:Ou}),Ou.\u0275inj=At({imports:[T2.forRoot(qie,{useHash:!0}),T2]});let Zie=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=Pt({type:n}),n.\u0275inj=At({imports:[Vn]}),n})();class Au{}Au.\u0275fac=function(t){return new(t||Au)},Au.\u0275mod=Pt({type:Au}),Au.\u0275inj=At({imports:[nE.forRoot({loader:{provide:Hf,useClass:class Xie{getTranslation(t){return ue(N(6297)(`./${t}.json`))}}}}),nE]});class Fu{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return!1}}Fu.\u0275fac=function(t){return new(t||Fu)},Fu.\u0275prov=Ye({token:Fu,factory:Fu.\u0275fac});class Ru{}Ru.\u0275fac=function(t){return new(t||Ru)},Ru.\u0275mod=Pt({type:Ru,bootstrap:[ua]}),Ru.\u0275inj=At({providers:[As,{provide:D1,useValue:{duration:3e3,verticalPosition:"top"}},{provide:AL,useValue:{width:"600px",hasBackdrop:!0}},{provide:x1,useClass:Y9},{provide:v2,useClass:Fu},{provide:DL,useValue:{disabled:!0}}],imports:[cD,ZH,Z1,yV,Ou,Au,zL,sz,Og,WW,ree,jL,Vz,s$,fq,oW,Zie,mG,iU,NG]}),Hs(Je,[Rn,It,B_,yn,Gr,cs,Tu],[xt]),Hs(Eu,[Rn,bi,It,Rd,Ja,$r,yn,vi,Tc,Gr,Fs,cs,Iu],[YS,xt]),VY().bootstrapModule(Ru).catch(n=>console.log(n))},9774:function(he,ge,N){var O;!function(_){"use strict";var u,f=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,h=Math.ceil,y=Math.floor,p="[BigNumber Error] ",v=p+"Number primitive has more than 15 significant digits: ",C=1e14,T=14,S=9007199254740991,k=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],L=1e7,A=1e9;function H(J){var ee=0|J;return J>0||J===ee?ee:ee-1}function K(J){for(var ee,ae,le=1,X=J.length,Te=J[0]+"";lett^ae?1:-1;for(Ce=(Ve=X.length)<(tt=Te.length)?Ve:tt,Se=0;SeTe[Se]^ae?1:-1;return Ve==tt?0:Ve>tt^ae?1:-1}function ve(J,ee,ae,le){if(Jae||J!==(J<0?h(J):y(J)))throw Error(p+(le||"Argument")+("number"==typeof J?Jae?" out of range: ":" not an integer: ":" not a primitive number: ")+J)}function Z(J){return"[object Array]"==Object.prototype.toString.call(J)}function Q(J){var ee=J.c.length-1;return H(J.e/T)==ee&&J.c[ee]%2!=0}function de(J,ee){return(J.length>1?J.charAt(0)+"."+J.slice(1):J)+(ee<0?"e":"e+")+ee}function G(J,ee,ae){var le,X;if(ee<0){for(X=ae+".";++ee;X+=ae);J=X+J}else if(++ee>(le=J.length)){for(X=ae,ee-=le;--ee;X+=ae);J+=X}else ee=10;be/=10,ue++);return Ee.e=ue,void(Ee.c=[W])}De=W+""}else{if(!f.test(De=W+""))return le(Ee,De,_e);Ee.s=45==De.charCodeAt(0)?(De=De.slice(1),-1):1}(ue=De.indexOf("."))>-1&&(De=De.replace(".","")),(be=De.search(/e/i))>0?(ue<0&&(ue=be),ue+=+De.slice(be+1),De=De.substring(0,be)):ue<0&&(ue=De.length)}else{if(ve(re,2,Bn.length,"Base"),De=W+"",10==re)return Ze(Ee=new $e(W instanceof $e?W:De),Se+Ee.e+1,Ce);if(_e="number"==typeof W){if(0*W!=0)return le(Ee,De,_e,re);if(Ee.s=1/W<0?(De=De.slice(1),-1):1,$e.DEBUG&&De.replace(/^0\.0*|\./,"").length>15)throw Error(v+W);_e=!1}else Ee.s=45===De.charCodeAt(0)?(De=De.slice(1),-1):1;for(ne=Bn.slice(0,re),ue=be=0,Me=De.length;beue){ue=Me;continue}}else if(!fe&&(De==De.toUpperCase()&&(De=De.toLowerCase())||De==De.toLowerCase()&&(De=De.toUpperCase()))){fe=!0,be=-1,ue=0;continue}return le(Ee,W+"",_e,re)}(ue=(De=ae(De,re,10,Ee.s)).indexOf("."))>-1?De=De.replace(".",""):ue=De.length}for(be=0;48===De.charCodeAt(be);be++);for(Me=De.length;48===De.charCodeAt(--Me););if(De=De.slice(be,++Me)){if(Me-=be,_e&&$e.DEBUG&&Me>15&&(W>S||W!==y(W)))throw Error(v+Ee.s*W);if((ue=ue-be-1)>st)Ee.c=Ee.e=null;else if(ue_e){if(--re>0)for(Me+=".";re--;Me+="0");}else if((re+=ue-_e)>0)for(ue+1==_e&&(Me+=".");re--;Me+="0");return W.s<0&&fe?"-"+Me:Me}function Ii(W,re){var ne,me,fe=0;for(Z(W[0])&&(W=W[0]),ne=new $e(W[0]);++fe=10;fe/=10,me++);return(ne=me+ne*T-1)>st?W.c=W.e=null:ne=10;_e/=10,fe++);if((ue=re-fe)<0)ue+=T,Ee=(Me=Ne[De=0])/ut[fe-(be=re)-1]%10|0;else if((De=h((ue+1)/T))>=Ne.length){if(!me)break e;for(;Ne.length<=De;Ne.push(0));Me=Ee=0,fe=1,be=(ue%=T)-T+1}else{for(Me=_e=Ne[De],fe=1;_e>=10;_e/=10,fe++);Ee=(be=(ue%=T)-T+fe)<0?0:Me/ut[fe-be-1]%10|0}if(me=me||re<0||null!=Ne[De+1]||(be<0?Me:Me%ut[fe-be-1]),me=ne<4?(Ee||me)&&(0==ne||ne==(W.s<0?3:2)):Ee>5||5==Ee&&(4==ne||me||6==ne&&(ue>0?be>0?Me/ut[fe-be]:0:Ne[De-1])%10&1||ne==(W.s<0?8:7)),re<1||!Ne[0])return Ne.length=0,me?(Ne[0]=ut[(T-(re-=W.e+1)%T)%T],W.e=-re||0):Ne[0]=W.e=0,W;if(0==ue?(Ne.length=De,_e=1,De--):(Ne.length=De+1,_e=ut[T-ue],Ne[De]=be>0?y(Me/ut[fe-be]%ut[be])*_e:0),me)for(;;){if(0==De){for(ue=1,be=Ne[0];be>=10;be/=10,ue++);for(be=Ne[0]+=_e,_e=1;be>=10;be/=10,_e++);ue!=_e&&(W.e++,Ne[0]==C&&(Ne[0]=1));break}if(Ne[De]+=_e,Ne[De]!=C)break;Ne[De--]=0,_e=1}for(ue=Ne.length;0===Ne[--ue];Ne.pop());}W.e>st?W.c=W.e=null:W.e>>11))>=9e15?(fe=crypto.getRandomValues(new Uint32Array(2)),me[Me]=fe[0],me[Me+1]=fe[1]):(De.push(_e%1e14),Me+=2);Me=be/2}else{if(!crypto.randomBytes)throw Nt=!1,Error(p+"crypto unavailable");for(me=crypto.randomBytes(be*=7);Me=9e15?crypto.randomBytes(7).copy(me,Me):(De.push(_e%1e14),Me+=7);Me=be/7}if(!Nt)for(;Me=10;_e/=10,Me++);Mefe-1&&(null==_e[be+1]&&(_e[be+1]=0),_e[be+1]+=_e[be]/fe|0,_e[be]%=fe)}return _e.reverse()}return function(ne,me,fe,ue,be){var _e,Me,De,Ee,Ne,ut,_t,rt,sn=ne.indexOf("."),Pn=Se,vt=Ce;for(sn>=0&&(Ee=Gn,Gn=0,ne=ne.replace(".",""),ut=(rt=new $e(me)).pow(ne.length-sn),Gn=Ee,rt.c=re(G(K(ut.c),ut.e,"0"),10,fe,W),rt.e=rt.c.length),De=Ee=(_t=re(ne,me,fe,be?(_e=Bn,W):(_e=W,Bn))).length;0==_t[--Ee];_t.pop());if(!_t[0])return _e.charAt(0);if(sn<0?--De:(ut.c=_t,ut.e=De,ut.s=ue,_t=(ut=ee(ut,rt,Pn,vt,fe)).c,Ne=ut.r,De=ut.e),sn=_t[Me=De+Pn+1],Ee=fe/2,Ne=Ne||Me<0||null!=_t[Me+1],Ne=vt<4?(null!=sn||Ne)&&(0==vt||vt==(ut.s<0?3:2)):sn>Ee||sn==Ee&&(4==vt||Ne||6==vt&&1&_t[Me-1]||vt==(ut.s<0?8:7)),Me<1||!_t[0])ne=Ne?G(_e.charAt(1),-Pn,_e.charAt(0)):_e.charAt(0);else{if(_t.length=Me,Ne)for(--fe;++_t[--Me]>fe;)_t[Me]=0,Me||(++De,_t=[1].concat(_t));for(Ee=_t.length;!_t[--Ee];);for(sn=0,ne="";sn<=Ee;ne+=_e.charAt(_t[sn++]));ne=G(ne,De,_e.charAt(0))}return ne}}(),ee=function(){function W(me,fe,ue){var be,_e,Me,De,Ee=0,Ne=me.length,ut=fe%L,_t=fe/L|0;for(me=me.slice();Ne--;)Ee=((_e=ut*(Me=me[Ne]%L)+(be=_t*Me+(De=me[Ne]/L|0)*ut)%L*L+Ee)/ue|0)+(be/L|0)+_t*De,me[Ne]=_e%ue;return Ee&&(me=[Ee].concat(me)),me}function re(me,fe,ue,be){var _e,Me;if(ue!=be)Me=ue>be?1:-1;else for(_e=Me=0;_efe[_e]?1:-1;break}return Me}function ne(me,fe,ue,be){for(var _e=0;ue--;)me[ue]-=_e,me[ue]=(_e=me[ue]1;me.splice(0,1));}return function(me,fe,ue,be,_e){var Me,De,Ee,Ne,ut,_t,rt,sn,Pn,vt,jt,jn,oi,Kr,So,Pi,tn,Mi=me.s==fe.s?1:-1,si=me.c,On=fe.c;if(!(si&&si[0]&&On&&On[0]))return new $e(me.s&&fe.s&&(si?!On||si[0]!=On[0]:On)?si&&0==si[0]||!On?0*Mi:Mi/0:NaN);for(Pn=(sn=new $e(Mi)).c=[],Mi=ue+(De=me.e-fe.e)+1,_e||(_e=C,De=H(me.e/T)-H(fe.e/T),Mi=Mi/T|0),Ee=0;On[Ee]==(si[Ee]||0);Ee++);if(On[Ee]>(si[Ee]||0)&&De--,Mi<0)Pn.push(1),Ne=!0;else{for(Kr=si.length,Pi=On.length,Ee=0,Mi+=2,(ut=y(_e/(On[0]+1)))>1&&(On=W(On,ut,_e),si=W(si,ut,_e),Pi=On.length,Kr=si.length),oi=Pi,jt=(vt=si.slice(0,Pi)).length;jt=_e/2&&So++;do{if(ut=0,(Me=re(On,vt,Pi,jt))<0){if(jn=vt[0],Pi!=jt&&(jn=jn*_e+(vt[1]||0)),(ut=y(jn/So))>1)for(ut>=_e&&(ut=_e-1),rt=(_t=W(On,ut,_e)).length,jt=vt.length;1==re(_t,vt,rt,jt);)ut--,ne(_t,Pi=10;Mi/=10,Ee++);Ze(sn,ue+(sn.e=Ee+De*T-1)+1,be,Ne)}else sn.e=De,sn.r=+Ne;return sn}}(),le=function(){var W=/^(-?)0([xbo])(?=\w[\w.]*$)/i,re=/^([^.]+)\.$/,ne=/^\.([^.]+)$/,me=/^-?(Infinity|NaN)$/,fe=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(ue,be,_e,Me){var De,Ee=_e?be:be.replace(fe,"");if(me.test(Ee))ue.s=isNaN(Ee)?null:Ee<0?-1:1,ue.c=ue.e=null;else{if(!_e&&(Ee=Ee.replace(W,function(Ne,ut,_t){return De="x"==(_t=_t.toLowerCase())?16:"b"==_t?2:8,Me&&Me!=De?Ne:ut}),Me&&(De=Me,Ee=Ee.replace(re,"$1").replace(ne,"0.$1")),be!=Ee))return new $e(Ee,De);if($e.DEBUG)throw Error(p+"Not a"+(Me?" base "+Me:"")+" number: "+be);ue.c=ue.e=ue.s=null}}}(),X.absoluteValue=X.abs=function(){var W=new $e(this);return W.s<0&&(W.s=1),W},X.comparedTo=function(W,re){return ie(this,new $e(W,re))},X.decimalPlaces=X.dp=function(W,re){var ne,me,fe;if(null!=W)return ve(W,0,A),null==re?re=Ce:ve(re,0,8),Ze(new $e(this),W+this.e+1,re);if(!(ne=this.c))return null;if(me=((fe=ne.length-1)-H(this.e/T))*T,fe=ne[fe])for(;fe%10==0;fe/=10,me--);return me<0&&(me=0),me},X.dividedBy=X.div=function(W,re){return ee(this,new $e(W,re),Se,Ce)},X.dividedToIntegerBy=X.idiv=function(W,re){return ee(this,new $e(W,re),0,1)},X.exponentiatedBy=X.pow=function(W,re){var ne,me,fe,be,_e,Me,De,Ee=this;if((W=new $e(W)).c&&!W.isInteger())throw Error(p+"Exponent not an integer: "+W);if(null!=re&&(re=new $e(re)),be=W.e>14,!Ee.c||!Ee.c[0]||1==Ee.c[0]&&!Ee.e&&1==Ee.c.length||!W.c||!W.c[0])return De=new $e(Math.pow(+Ee.valueOf(),be?2-Q(W):+W)),re?De.mod(re):De;if(_e=W.s<0,re){if(re.c?!re.c[0]:!re.s)return new $e(NaN);(me=!_e&&Ee.isInteger()&&re.isInteger())&&(Ee=Ee.mod(re))}else{if(W.e>9&&(Ee.e>0||Ee.e<-1||(0==Ee.e?Ee.c[0]>1||be&&Ee.c[1]>=24e7:Ee.c[0]<8e13||be&&Ee.c[0]<=9999975e7)))return fe=Ee.s<0&&Q(W)?-0:0,Ee.e>-1&&(fe=1/fe),new $e(_e?1/fe:fe);Gn&&(fe=h(Gn/T+2))}for(be?(ne=new $e(.5),Me=Q(W)):Me=W%2,_e&&(W.s=1),De=new $e(Te);;){if(Me){if(!(De=De.times(Ee)).c)break;fe?De.c.length>fe&&(De.c.length=fe):me&&(De=De.mod(re))}if(be){if(Ze(W=W.times(ne),W.e+1,1),!W.c[0])break;be=W.e>14,Me=Q(W)}else{if(!(W=y(W/2)))break;Me=W%2}Ee=Ee.times(Ee),fe?Ee.c&&Ee.c.length>fe&&(Ee.c.length=fe):me&&(Ee=Ee.mod(re))}return me?De:(_e&&(De=Te.div(De)),re?De.mod(re):fe?Ze(De,Gn,Ce,void 0):De)},X.integerValue=function(W){var re=new $e(this);return null==W?W=Ce:ve(W,0,8),Ze(re,re.e+1,W)},X.isEqualTo=X.eq=function(W,re){return 0===ie(this,new $e(W,re))},X.isFinite=function(){return!!this.c},X.isGreaterThan=X.gt=function(W,re){return ie(this,new $e(W,re))>0},X.isGreaterThanOrEqualTo=X.gte=function(W,re){return 1===(re=ie(this,new $e(W,re)))||0===re},X.isInteger=function(){return!!this.c&&H(this.e/T)>this.c.length-2},X.isLessThan=X.lt=function(W,re){return ie(this,new $e(W,re))<0},X.isLessThanOrEqualTo=X.lte=function(W,re){return-1===(re=ie(this,new $e(W,re)))||0===re},X.isNaN=function(){return!this.s},X.isNegative=function(){return this.s<0},X.isPositive=function(){return this.s>0},X.isZero=function(){return!!this.c&&0==this.c[0]},X.minus=function(W,re){var ne,me,fe,ue,be=this,_e=be.s;if(re=(W=new $e(W,re)).s,!_e||!re)return new $e(NaN);if(_e!=re)return W.s=-re,be.plus(W);var Me=be.e/T,De=W.e/T,Ee=be.c,Ne=W.c;if(!Me||!De){if(!Ee||!Ne)return Ee?(W.s=-re,W):new $e(Ne?be:NaN);if(!Ee[0]||!Ne[0])return Ne[0]?(W.s=-re,W):new $e(Ee[0]?be:3==Ce?-0:0)}if(Me=H(Me),De=H(De),Ee=Ee.slice(),_e=Me-De){for((ue=_e<0)?(_e=-_e,fe=Ee):(De=Me,fe=Ne),fe.reverse(),re=_e;re--;fe.push(0));fe.reverse()}else for(me=(ue=(_e=Ee.length)<(re=Ne.length))?_e:re,_e=re=0;re0)for(;re--;Ee[ne++]=0);for(re=C-1;me>_e;){if(Ee[--me]=0;){for(ne=0,ut=jn[fe]%Pn,_t=jn[fe]/Pn|0,ue=fe+(be=Me);ue>fe;)ne=((De=ut*(De=jt[--be]%Pn)+(_e=_t*De+(Ee=jt[be]/Pn|0)*ut)%Pn*Pn+rt[ue]+ne)/sn|0)+(_e/Pn|0)+_t*Ee,rt[ue--]=De%sn;rt[ue]=ne}return ne?++me:rt.splice(0,1),or(W,rt,me)},X.negated=function(){var W=new $e(this);return W.s=-W.s||null,W},X.plus=function(W,re){var ne,me=this,fe=me.s;if(re=(W=new $e(W,re)).s,!fe||!re)return new $e(NaN);if(fe!=re)return W.s=-re,me.minus(W);var ue=me.e/T,be=W.e/T,_e=me.c,Me=W.c;if(!ue||!be){if(!_e||!Me)return new $e(fe/0);if(!_e[0]||!Me[0])return Me[0]?W:new $e(_e[0]?me:0*fe)}if(ue=H(ue),be=H(be),_e=_e.slice(),fe=ue-be){for(fe>0?(be=ue,ne=Me):(fe=-fe,ne=_e),ne.reverse();fe--;ne.push(0));ne.reverse()}for((fe=_e.length)-(re=Me.length)<0&&(ne=Me,Me=_e,_e=ne,re=fe),fe=0;re;)fe=(_e[--re]=_e[re]+Me[re]+fe)/C|0,_e[re]=C===_e[re]?0:_e[re]%C;return fe&&(_e=[fe].concat(_e),++be),or(W,_e,be)},X.precision=X.sd=function(W,re){var ne,me,fe;if(null!=W&&W!==!!W)return ve(W,1,A),null==re?re=Ce:ve(re,0,8),Ze(new $e(this),W,re);if(!(ne=this.c))return null;if(me=(fe=ne.length-1)*T+1,fe=ne[fe]){for(;fe%10==0;fe/=10,me--);for(fe=ne[0];fe>=10;fe/=10,me++);}return W&&this.e+1>me&&(me=this.e+1),me},X.shiftedBy=function(W){return ve(W,-S,S),this.times("1e"+W)},X.squareRoot=X.sqrt=function(){var W,re,ne,me,fe,ue=this,be=ue.c,_e=ue.s,Me=ue.e,De=Se+4,Ee=new $e("0.5");if(1!==_e||!be||!be[0])return new $e(!_e||_e<0&&(!be||be[0])?NaN:be?ue:1/0);if(0==(_e=Math.sqrt(+ue))||_e==1/0?(((re=K(be)).length+Me)%2==0&&(re+="0"),_e=Math.sqrt(re),Me=H((Me+1)/2)-(Me<0||Me%2),ne=new $e(re=_e==1/0?"1e"+Me:(re=_e.toExponential()).slice(0,re.indexOf("e")+1)+Me)):ne=new $e(_e+""),ne.c[0])for((_e=(Me=ne.e)+De)<3&&(_e=0);;)if(ne=Ee.times((fe=ne).plus(ee(ue,fe,De,1))),K(fe.c).slice(0,_e)===(re=K(ne.c)).slice(0,_e)){if(ne.e0&&ut>0){for(Me=Ne.substr(0,me=ut%ue||ue);me0&&(Me+=_e+Ne.slice(me)),Ee&&(Me="-"+Me)}ne=De?Me+In.decimalSeparator+((be=+In.fractionGroupSize)?De.replace(new RegExp("\\d{"+be+"}\\B","g"),"$&"+In.fractionGroupSeparator):De):Me}return ne},X.toFraction=function(W){var re,ne,me,fe,ue,be,_e,Me,De,Ee,Ne,ut,_t=this,rt=_t.c;if(null!=W&&(!(Me=new $e(W)).isInteger()&&(Me.c||1!==Me.s)||Me.lt(Te)))throw Error(p+"Argument "+(Me.isInteger()?"out of range: ":"not an integer: ")+W);if(!rt)return _t.toString();for(ne=new $e(Te),Ee=me=new $e(Te),fe=De=new $e(Te),ut=K(rt),be=ne.e=ut.length-_t.e-1,ne.c[0]=k[(_e=be%T)<0?T+_e:_e],W=!W||Me.comparedTo(ne)>0?be>0?ne:Ee:Me,_e=st,st=1/0,Me=new $e(ut),De.c[0]=0;Ne=ee(Me,ne,0,1),1!=(ue=me.plus(Ne.times(fe))).comparedTo(W);)me=fe,fe=ue,Ee=De.plus(Ne.times(ue=Ee)),De=ue,ne=Me.minus(Ne.times(ue=ne)),Me=ue;return ue=ee(W.minus(me),fe,0,1),De=De.plus(ue.times(Ee)),me=me.plus(ue.times(fe)),De.s=Ee.s=_t.s,re=ee(Ee,fe,be*=2,Ce).minus(_t).abs().comparedTo(ee(De,me,be,Ce).minus(_t).abs())<1?[Ee.toString(),fe.toString()]:[De.toString(),me.toString()],st=_e,re},X.toNumber=function(){return+this},X.toPrecision=function(W,re){return null!=W&&ve(W,1,A),Ei(this,W,re,2)},X.toString=function(W){var re,me=this.s,fe=this.e;return null===fe?me?(re="Infinity",me<0&&(re="-"+re)):re="NaN":(re=K(this.c),null==W?re=fe<=Ve||fe>=tt?de(re,fe):G(re,fe,"0"):(ve(W,2,Bn.length,"Base"),re=ae(G(re,fe,"0"),10,W,me,!0)),me<0&&this.c[0]&&(re="-"+re)),re},X.valueOf=X.toJSON=function(){var W,ne=this.e;return null===ne?this.toString():(W=K(this.c),W=ne<=Ve||ne>=tt?de(W,ne):G(W,ne,"0"),this.s<0?"-"+W:W)},X._isBigNumber=!0,null!=J&&$e.set(J),$e}(),u.default=u.BigNumber=u,void 0!==(O=function(){return u}.call(ge,N,ge,he))&&(he.exports=O)}()},6149:(he,ge,N)=>{var O=N(5979)();O.helpers=N(3305),N(3533)(O),O.defaults=N(9800),O.Element=N(8839),O.elements=N(9931),O.Interaction=N(2814),O.layouts=N(2294),O.platform=N(8244),O.plugins=N(2445),O.Ticks=N(8347),N(8103)(O),N(1047)(O),N(7897)(O),N(5464)(O),N(6308)(O),N(480)(O),N(8351)(O),N(4977)(O),N(1704)(O),N(1486)(O),N(8726)(O),N(4215)(O),N(2690)(O),N(4033)(O),N(787)(O),N(6769)(O),N(6580)(O),N(4657)(O),N(1895)(O),N(6038)(O),N(2898)(O),N(3414)(O),N(6667)(O),N(402)(O),N(846)(O),N(9377)(O);var _=N(6747);for(var u in _)_.hasOwnProperty(u)&&O.plugins.register(_[u]);O.platform.initialize(),he.exports=O,typeof window<"u"&&(window.Chart=O),O.Legend=_.legend._element,O.Title=_.title._element,O.pluginService=O.plugins,O.PluginBase=O.Element.extend({}),O.canvasHelpers=O.helpers.canvas,O.layoutService=O.layouts},6038:he=>{"use strict";he.exports=function(ge){ge.Bar=function(N,O){return O.type="bar",new ge(N,O)}}},2898:he=>{"use strict";he.exports=function(ge){ge.Bubble=function(N,O){return O.type="bubble",new ge(N,O)}}},3414:he=>{"use strict";he.exports=function(ge){ge.Doughnut=function(N,O){return O.type="doughnut",new ge(N,O)}}},6667:he=>{"use strict";he.exports=function(ge){ge.Line=function(N,O){return O.type="line",new ge(N,O)}}},402:he=>{"use strict";he.exports=function(ge){ge.PolarArea=function(N,O){return O.type="polarArea",new ge(N,O)}}},846:he=>{"use strict";he.exports=function(ge){ge.Radar=function(N,O){return O.type="radar",new ge(N,O)}}},9377:he=>{"use strict";he.exports=function(ge){ge.Scatter=function(N,O){return O.type="scatter",new ge(N,O)}}},2690:(he,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),O._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(p,v){var C="";return p.length>0&&(p[0].yLabel?C=p[0].yLabel:v.labels.length>0&&p[0].index0?Math.min(C,k-S):C,S=k;return C}(C,U):-1,{min:ie,pixels:U,start:L,end:A,stackCount:T,scale:C}},calculateBarValuePixels:function(v,C){var ve,Z,Q,de,G,J,T=this,S=T.chart,k=T.getMeta(),L=T.getValueScale(),A=S.data.datasets,U=L.getRightValue(A[v].data[C]),H=L.options.stacked,K=k.stack,ie=0;if(H||void 0===H&&void 0!==K)for(ve=0;ve=0&&Q>0)&&(ie+=Q));return de=L.getPixelForValue(ie),{size:J=((G=L.getPixelForValue(ie+U))-de)/2,base:de,head:G,center:G+J/2}},calculateBarIndexPixels:function(v,C,T){var k=T.scale.options,L="flex"===k.barThickness?function y(p,v,C){var T=v.pixels,S=T[p],k=p>0?T[p-1]:null,L=p{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(f,h){return(h.datasets[f.datasetIndex].label||"")+": ("+f.xLabel+", "+f.yLabel+", "+h.datasets[f.datasetIndex].data[f.index].r+")"}}}}),he.exports=function(f){f.controllers.bubble=f.DatasetController.extend({dataElementType:_.Point,update:function(h){var y=this,p=y.getMeta();u.each(p.data,function(C,T){y.updateElement(C,T,h)})},updateElement:function(h,y,p){var v=this,C=v.getMeta(),T=h.custom||{},S=v.getScaleForId(C.xAxisID),k=v.getScaleForId(C.yAxisID),L=v._resolveElementOptions(h,y),A=v.getDataset().data[y],U=v.index,H=p?S.getPixelForDecimal(.5):S.getPixelForValue("object"==typeof A?A:NaN,y,U),K=p?k.getBasePixel():k.getPixelForValue(A,y,U);h._xScale=S,h._yScale=k,h._options=L,h._datasetIndex=U,h._index=y,h._model={backgroundColor:L.backgroundColor,borderColor:L.borderColor,borderWidth:L.borderWidth,hitRadius:L.hitRadius,pointStyle:L.pointStyle,radius:p?0:L.radius,skip:T.skip||isNaN(H)||isNaN(K),x:H,y:K},h.pivot()},setHoverStyle:function(h){var y=h._model,p=h._options;y.backgroundColor=u.valueOrDefault(p.hoverBackgroundColor,u.getHoverColor(p.backgroundColor)),y.borderColor=u.valueOrDefault(p.hoverBorderColor,u.getHoverColor(p.borderColor)),y.borderWidth=u.valueOrDefault(p.hoverBorderWidth,p.borderWidth),y.radius=p.radius+p.hoverRadius},removeHoverStyle:function(h){var y=h._model,p=h._options;y.backgroundColor=p.backgroundColor,y.borderColor=p.borderColor,y.borderWidth=p.borderWidth,y.radius=p.radius},_resolveElementOptions:function(h,y){var H,K,ie,p=this,v=p.chart,T=v.data.datasets[p.index],S=h.custom||{},k=v.options.elements.point,L=u.options.resolve,A=T.data[y],U={},ve={chart:v,dataIndex:y,dataset:T,datasetIndex:p.index},Z=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle"];for(H=0,K=Z.length;H{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(f){var h=[];h.push('
    ');var y=f.data,p=y.datasets,v=y.labels;if(p.length)for(var C=0;C'),v[C]&&h.push(v[C]),h.push("");return h.push("
"),h.join("")},legend:{labels:{generateLabels:function(f){var h=f.data;return h.labels.length&&h.datasets.length?h.labels.map(function(y,p){var v=f.getDatasetMeta(0),C=h.datasets[0],T=v.data[p],S=T&&T.custom||{},k=u.valueAtIndexOrDefault,L=f.options.elements.arc;return{text:y,fillStyle:S.backgroundColor?S.backgroundColor:k(C.backgroundColor,p,L.backgroundColor),strokeStyle:S.borderColor?S.borderColor:k(C.borderColor,p,L.borderColor),lineWidth:S.borderWidth?S.borderWidth:k(C.borderWidth,p,L.borderWidth),hidden:isNaN(C.data[p])||v.data[p].hidden,index:p}}):[]}},onClick:function(f,h){var v,C,T,y=h.index,p=this.chart;for(v=0,C=(p.data.datasets||[]).length;v=Math.PI?-1:ie<-Math.PI?1:0))+K,Z={x:Math.cos(ie),y:Math.sin(ie)},Q={x:Math.cos(ve),y:Math.sin(ve)},de=ie<=0&&ve>=0||ie<=2*Math.PI&&2*Math.PI<=ve,G=ie<=.5*Math.PI&&.5*Math.PI<=ve||ie<=2.5*Math.PI&&2.5*Math.PI<=ve,J=ie<=-Math.PI&&-Math.PI<=ve||ie<=Math.PI&&Math.PI<=ve,ee=ie<=.5*-Math.PI&&.5*-Math.PI<=ve||ie<=1.5*Math.PI&&1.5*Math.PI<=ve,ae=H/100,le={x:J?-1:Math.min(Z.x*(Z.x<0?1:ae),Q.x*(Q.x<0?1:ae)),y:ee?-1:Math.min(Z.y*(Z.y<0?1:ae),Q.y*(Q.y<0?1:ae))},X={x:de?1:Math.max(Z.x*(Z.x>0?1:ae),Q.x*(Q.x>0?1:ae)),y:G?1:Math.max(Z.y*(Z.y>0?1:ae),Q.y*(Q.y>0?1:ae))},Te={width:.5*(X.x-le.x),height:.5*(X.y-le.y)};L=Math.min(S/Te.width,k/Te.height),A={x:-.5*(X.x+le.x),y:-.5*(X.y+le.y)}}p.borderWidth=y.getMaxBorderWidth(U.data),p.outerRadius=Math.max((L-p.borderWidth)/2,0),p.innerRadius=Math.max(H?p.outerRadius/100*H:0,0),p.radiusLength=(p.outerRadius-p.innerRadius)/p.getVisibleDatasetCount(),p.offsetX=A.x*p.outerRadius,p.offsetY=A.y*p.outerRadius,U.total=y.calculateTotal(),y.outerRadius=p.outerRadius-p.radiusLength*y.getRingIndex(y.index),y.innerRadius=Math.max(y.outerRadius-p.radiusLength,0),u.each(U.data,function(Se,Ce){y.updateElement(Se,Ce,h)})},updateElement:function(h,y,p){var v=this,C=v.chart,T=C.chartArea,S=C.options,k=S.animation,L=(T.left+T.right)/2,A=(T.top+T.bottom)/2,U=S.rotation,H=S.rotation,K=v.getDataset(),ie=p&&k.animateRotate||h.hidden?0:v.calculateCircumference(K.data[y])*(S.circumference/(2*Math.PI));u.extend(h,{_datasetIndex:v.index,_index:y,_model:{x:L+C.offsetX,y:A+C.offsetY,startAngle:U,endAngle:H,circumference:ie,outerRadius:p&&k.animateScale?0:v.outerRadius,innerRadius:p&&k.animateScale?0:v.innerRadius,label:(0,u.valueAtIndexOrDefault)(K.label,y,C.data.labels[y])}});var de=h._model;this.removeHoverStyle(h),(!p||!k.animateRotate)&&(de.startAngle=0===y?S.rotation:v.getMeta().data[y-1]._model.endAngle,de.endAngle=de.startAngle+de.circumference),h.pivot()},removeHoverStyle:function(h){f.DatasetController.prototype.removeHoverStyle.call(this,h,this.chart.options.elements.arc)},calculateTotal:function(){var v,h=this.getDataset(),y=this.getMeta(),p=0;return u.each(y.data,function(C,T){v=h.data[T],!isNaN(v)&&!C.hidden&&(p+=Math.abs(v))}),p},calculateCircumference:function(h){var y=this.getMeta().total;return y>0&&!isNaN(h)?2*Math.PI*(Math.abs(h)/y):0},getMaxBorderWidth:function(h){for(var C,T,y=0,p=this.index,v=h.length,S=0;S(y=(C=h[S]._model?h[S]._model.borderWidth:0)>y?C:y)?T:y;return y}})}},6769:(he,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),he.exports=function(f){function h(y,p){return u.valueOrDefault(y.showLine,p.showLines)}f.controllers.line=f.DatasetController.extend({datasetElementType:_.Line,dataElementType:_.Point,update:function(y){var A,U,H,p=this,v=p.getMeta(),C=v.dataset,T=v.data||[],S=p.chart.options,k=S.elements.line,L=p.getScaleForId(v.yAxisID),K=p.getDataset(),ie=h(K,S);for(ie&&(H=C.custom||{},void 0!==K.tension&&void 0===K.lineTension&&(K.lineTension=K.tension),C._scale=L,C._datasetIndex=p.index,C._children=T,C._model={spanGaps:K.spanGaps?K.spanGaps:S.spanGaps,tension:H.tension?H.tension:u.valueOrDefault(K.lineTension,k.tension),backgroundColor:H.backgroundColor?H.backgroundColor:K.backgroundColor||k.backgroundColor,borderWidth:H.borderWidth?H.borderWidth:K.borderWidth||k.borderWidth,borderColor:H.borderColor?H.borderColor:K.borderColor||k.borderColor,borderCapStyle:H.borderCapStyle?H.borderCapStyle:K.borderCapStyle||k.borderCapStyle,borderDash:H.borderDash?H.borderDash:K.borderDash||k.borderDash,borderDashOffset:H.borderDashOffset?H.borderDashOffset:K.borderDashOffset||k.borderDashOffset,borderJoinStyle:H.borderJoinStyle?H.borderJoinStyle:K.borderJoinStyle||k.borderJoinStyle,fill:H.fill?H.fill:void 0!==K.fill?K.fill:k.fill,steppedLine:H.steppedLine?H.steppedLine:u.valueOrDefault(K.steppedLine,k.stepped),cubicInterpolationMode:H.cubicInterpolationMode?H.cubicInterpolationMode:u.valueOrDefault(K.cubicInterpolationMode,k.cubicInterpolationMode)},C.pivot()),A=0,U=T.length;A{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(f){var h=[];h.push('
    ');var y=f.data,p=y.datasets,v=y.labels;if(p.length)for(var C=0;C'),v[C]&&h.push(v[C]),h.push("");return h.push("
"),h.join("")},legend:{labels:{generateLabels:function(f){var h=f.data;return h.labels.length&&h.datasets.length?h.labels.map(function(y,p){var v=f.getDatasetMeta(0),C=h.datasets[0],S=v.data[p].custom||{},k=u.valueAtIndexOrDefault,L=f.options.elements.arc;return{text:y,fillStyle:S.backgroundColor?S.backgroundColor:k(C.backgroundColor,p,L.backgroundColor),strokeStyle:S.borderColor?S.borderColor:k(C.borderColor,p,L.borderColor),lineWidth:S.borderWidth?S.borderWidth:k(C.borderWidth,p,L.borderWidth),hidden:isNaN(C.data[p])||v.data[p].hidden,index:p}}):[]}},onClick:function(f,h){var v,C,T,y=h.index,p=this.chart;for(v=0,C=(p.data.datasets||[]).length;v0&&!isNaN(h)?2*Math.PI/y:0}})}},4657:(he,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),he.exports=function(f){f.controllers.radar=f.DatasetController.extend({datasetElementType:_.Line,dataElementType:_.Point,linkScales:u.noop,update:function(h){var y=this,p=y.getMeta(),C=p.data,T=p.dataset.custom||{},S=y.getDataset(),k=y.chart.options.elements.line,L=y.chart.scale;void 0!==S.tension&&void 0===S.lineTension&&(S.lineTension=S.tension),u.extend(p.dataset,{_datasetIndex:y.index,_scale:L,_children:C,_loop:!0,_model:{tension:T.tension?T.tension:u.valueOrDefault(S.lineTension,k.tension),backgroundColor:T.backgroundColor?T.backgroundColor:S.backgroundColor||k.backgroundColor,borderWidth:T.borderWidth?T.borderWidth:S.borderWidth||k.borderWidth,borderColor:T.borderColor?T.borderColor:S.borderColor||k.borderColor,fill:T.fill?T.fill:void 0!==S.fill?S.fill:k.fill,borderCapStyle:T.borderCapStyle?T.borderCapStyle:S.borderCapStyle||k.borderCapStyle,borderDash:T.borderDash?T.borderDash:S.borderDash||k.borderDash,borderDashOffset:T.borderDashOffset?T.borderDashOffset:S.borderDashOffset||k.borderDashOffset,borderJoinStyle:T.borderJoinStyle?T.borderJoinStyle:S.borderJoinStyle||k.borderJoinStyle}}),p.dataset.pivot(),u.each(C,function(A,U){y.updateElement(A,U,h)},y),y.updateBezierControlPoints()},updateElement:function(h,y,p){var v=this,C=h.custom||{},T=v.getDataset(),S=v.chart.scale,k=v.chart.options.elements.point,L=S.getPointPositionForValue(y,T.data[y]);void 0!==T.radius&&void 0===T.pointRadius&&(T.pointRadius=T.radius),void 0!==T.hitRadius&&void 0===T.pointHitRadius&&(T.pointHitRadius=T.hitRadius),u.extend(h,{_datasetIndex:v.index,_index:y,_scale:S,_model:{x:p?S.xCenter:L.x,y:p?S.yCenter:L.y,tension:C.tension?C.tension:u.valueOrDefault(T.lineTension,v.chart.options.elements.line.tension),radius:C.radius?C.radius:u.valueAtIndexOrDefault(T.pointRadius,y,k.radius),backgroundColor:C.backgroundColor?C.backgroundColor:u.valueAtIndexOrDefault(T.pointBackgroundColor,y,k.backgroundColor),borderColor:C.borderColor?C.borderColor:u.valueAtIndexOrDefault(T.pointBorderColor,y,k.borderColor),borderWidth:C.borderWidth?C.borderWidth:u.valueAtIndexOrDefault(T.pointBorderWidth,y,k.borderWidth),pointStyle:C.pointStyle?C.pointStyle:u.valueAtIndexOrDefault(T.pointStyle,y,k.pointStyle),hitRadius:C.hitRadius?C.hitRadius:u.valueAtIndexOrDefault(T.pointHitRadius,y,k.hitRadius)}}),h._model.skip=C.skip?C.skip:isNaN(h._model.x)||isNaN(h._model.y)},updateBezierControlPoints:function(){var h=this.chart.chartArea,y=this.getMeta();u.each(y.data,function(p,v){var C=p._model,T=u.splineCurve(u.previousItem(y.data,v,!0)._model,C,u.nextItem(y.data,v,!0)._model,C.tension);C.controlPointPreviousX=Math.max(Math.min(T.previous.x,h.right),h.left),C.controlPointPreviousY=Math.max(Math.min(T.previous.y,h.bottom),h.top),C.controlPointNextX=Math.max(Math.min(T.next.x,h.right),h.left),C.controlPointNextY=Math.max(Math.min(T.next.y,h.bottom),h.top),p.pivot()})},setHoverStyle:function(h){var y=this.chart.data.datasets[h._datasetIndex],p=h.custom||{},v=h._index,C=h._model;C.radius=p.hoverRadius?p.hoverRadius:u.valueAtIndexOrDefault(y.pointHoverRadius,v,this.chart.options.elements.point.hoverRadius),C.backgroundColor=p.hoverBackgroundColor?p.hoverBackgroundColor:u.valueAtIndexOrDefault(y.pointHoverBackgroundColor,v,u.getHoverColor(C.backgroundColor)),C.borderColor=p.hoverBorderColor?p.hoverBorderColor:u.valueAtIndexOrDefault(y.pointHoverBorderColor,v,u.getHoverColor(C.borderColor)),C.borderWidth=p.hoverBorderWidth?p.hoverBorderWidth:u.valueAtIndexOrDefault(y.pointHoverBorderWidth,v,C.borderWidth)},removeHoverStyle:function(h){var y=this.chart.data.datasets[h._datasetIndex],p=h.custom||{},v=h._index,C=h._model,T=this.chart.options.elements.point;C.radius=p.radius?p.radius:u.valueAtIndexOrDefault(y.pointRadius,v,T.radius),C.backgroundColor=p.backgroundColor?p.backgroundColor:u.valueAtIndexOrDefault(y.pointBackgroundColor,v,T.backgroundColor),C.borderColor=p.borderColor?p.borderColor:u.valueAtIndexOrDefault(y.pointBorderColor,v,T.borderColor),C.borderWidth=p.borderWidth?p.borderWidth:u.valueAtIndexOrDefault(y.pointBorderWidth,v,T.borderWidth)}})}},1895:(he,ge,N)=>{"use strict";N(9800)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(_){return"("+_.xLabel+", "+_.yLabel+")"}}}}),he.exports=function(_){_.controllers.scatter=_.controllers.line}},8103:(he,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305);O._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:u.noop,onComplete:u.noop}}),he.exports=function(f){f.Animation=_.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),f.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(h,y,p,v){var T,S,C=this.animations;for(y.chart=h,v||(h.animating=!0),T=0,S=C.length;T1&&(p=Math.floor(h.dropFrames),h.dropFrames=h.dropFrames%1),h.advance(1+p);var v=Date.now();h.dropFrames+=(v-y)/h.frameDuration,h.animations.length>0&&h.requestAnimationFrame()},advance:function(h){for(var p,v,y=this.animations,C=0;C=p.numSteps?(u.callback(p.onAnimationComplete,[p],v),v.animating=!1,y.splice(C,1)):++C}},Object.defineProperty(f.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(f.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(h){this.chart=h}})}},1047:(he,ge,N)=>{"use strict";var O=N(9800),_=N(3305),u=N(2814),f=N(2294),h=N(8244),y=N(2445);he.exports=function(p){function C(S){var k=S.options;_.each(S.scales,function(L){f.removeBox(S,L)}),k=_.configMerge(p.defaults.global,p.defaults[S.config.type],k),S.options=S.config.options=k,S.ensureScalesHaveIDs(),S.buildOrUpdateScales(),S.tooltip._options=k.tooltips,S.tooltip.initialize()}function T(S){return"top"===S||"bottom"===S}p.types={},p.instances={},p.controllers={},_.extend(p.prototype,{construct:function(S,k){var L=this;k=function v(S){var k=(S=S||{}).data=S.data||{};return k.datasets=k.datasets||[],k.labels=k.labels||[],S.options=_.configMerge(O.global,O[S.type],S.options||{}),S}(k);var A=h.acquireContext(S,k),U=A&&A.canvas,H=U&&U.height,K=U&&U.width;L.id=_.uid(),L.ctx=A,L.canvas=U,L.config=k,L.width=K,L.height=H,L.aspectRatio=H?K/H:null,L.options=k.options,L._bufferedRender=!1,L.chart=L,L.controller=L,p.instances[L.id]=L,Object.defineProperty(L,"data",{get:function(){return L.config.data},set:function(ie){L.config.data=ie}}),A&&U?(L.initialize(),L.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var S=this;return y.notify(S,"beforeInit"),_.retinaScale(S,S.options.devicePixelRatio),S.bindEvents(),S.options.responsive&&S.resize(!0),S.ensureScalesHaveIDs(),S.buildOrUpdateScales(),S.initToolTip(),y.notify(S,"afterInit"),S},clear:function(){return _.canvas.clear(this),this},stop:function(){return p.animationService.cancelAnimation(this),this},resize:function(S){var k=this,L=k.options,A=k.canvas,U=L.maintainAspectRatio&&k.aspectRatio||null,H=Math.max(0,Math.floor(_.getMaximumWidth(A))),K=Math.max(0,Math.floor(U?H/U:_.getMaximumHeight(A)));if((k.width!==H||k.height!==K)&&(A.width=k.width=H,A.height=k.height=K,A.style.width=H+"px",A.style.height=K+"px",_.retinaScale(k,L.devicePixelRatio),!S)){var ie={width:H,height:K};y.notify(k,"resize",[ie]),k.options.onResize&&k.options.onResize(k,ie),k.stop(),k.update(k.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var S=this.options,k=S.scales||{},L=S.scale;_.each(k.xAxes,function(A,U){A.id=A.id||"x-axis-"+U}),_.each(k.yAxes,function(A,U){A.id=A.id||"y-axis-"+U}),L&&(L.id=L.id||"scale")},buildOrUpdateScales:function(){var S=this,k=S.options,L=S.scales||{},A=[],U=Object.keys(L).reduce(function(H,K){return H[K]=!1,H},{});k.scales&&(A=A.concat((k.scales.xAxes||[]).map(function(H){return{options:H,dtype:"category",dposition:"bottom"}}),(k.scales.yAxes||[]).map(function(H){return{options:H,dtype:"linear",dposition:"left"}}))),k.scale&&A.push({options:k.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),_.each(A,function(H){var K=H.options,ie=K.id,ve=_.valueOrDefault(K.type,H.dtype);T(K.position)!==T(H.dposition)&&(K.position=H.dposition),U[ie]=!0;var Z=null;if(ie in L&&L[ie].type===ve)(Z=L[ie]).options=K,Z.ctx=S.ctx,Z.chart=S;else{var Q=p.scaleService.getScaleConstructor(ve);if(!Q)return;Z=new Q({id:ie,type:ve,options:K,ctx:S.ctx,chart:S}),L[Z.id]=Z}Z.mergeTicksOptions(),H.isDefault&&(S.scale=Z)}),_.each(U,function(H,K){H||delete L[K]}),S.scales=L,p.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var S=this,k=[],L=[];return _.each(S.data.datasets,function(A,U){var H=S.getDatasetMeta(U),K=A.type||S.config.type;if(H.type&&H.type!==K&&(S.destroyDatasetMeta(U),H=S.getDatasetMeta(U)),H.type=K,k.push(H.type),H.controller)H.controller.updateIndex(U),H.controller.linkScales();else{var ie=p.controllers[H.type];if(void 0===ie)throw new Error('"'+H.type+'" is not a chart type.');H.controller=new ie(S,U),L.push(H.controller)}},S),L},resetElements:function(){var S=this;_.each(S.data.datasets,function(k,L){S.getDatasetMeta(L).controller.reset()},S)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(S){var k=this;if((!S||"object"!=typeof S)&&(S={duration:S,lazy:arguments[1]}),C(k),y._invalidate(k),!1!==y.notify(k,"beforeUpdate")){k.tooltip._data=k.data;var L=k.buildOrUpdateControllers();_.each(k.data.datasets,function(A,U){k.getDatasetMeta(U).controller.buildOrUpdateElements()},k),k.updateLayout(),k.options.animation&&k.options.animation.duration&&_.each(L,function(A){A.reset()}),k.updateDatasets(),k.tooltip.initialize(),k.lastActive=[],y.notify(k,"afterUpdate"),k._bufferedRender?k._bufferedRequest={duration:S.duration,easing:S.easing,lazy:S.lazy}:k.render(S)}},updateLayout:function(){var S=this;!1!==y.notify(S,"beforeLayout")&&(f.update(this,this.width,this.height),y.notify(S,"afterScaleUpdate"),y.notify(S,"afterLayout"))},updateDatasets:function(){var S=this;if(!1!==y.notify(S,"beforeDatasetsUpdate")){for(var k=0,L=S.data.datasets.length;k"u"&&0!==U.duration)){var K=new p.Animation({numSteps:(L||U.duration)/16.66,easing:S.easing||U.easing,render:function(ie,ve){var Q=ve.currentStep,de=Q/ve.numSteps;ie.draw((0,_.easing.effects[ve.easing])(de),de,Q)},onAnimationProgress:U.onProgress,onAnimationComplete:H});p.animationService.addAnimation(k,K,L,A)}else k.draw(),H(new p.Animation({numSteps:0,chart:k}));return k}},draw:function(S){var k=this;k.clear(),_.isNullOrUndef(S)&&(S=1),k.transition(S),!1!==y.notify(k,"beforeDraw",[S])&&(_.each(k.boxes,function(L){L.draw(k.chartArea)},k),k.scale&&k.scale.draw(),k.drawDatasets(S),k._drawTooltip(S),y.notify(k,"afterDraw",[S]))},transition:function(S){for(var k=this,L=0,A=(k.data.datasets||[]).length;L=0;--L)k.isDatasetVisible(L)&&k.drawDataset(L,S);y.notify(k,"afterDatasetsDraw",[S])}},drawDataset:function(S,k){var L=this,A=L.getDatasetMeta(S),U={meta:A,index:S,easingValue:k};!1!==y.notify(L,"beforeDatasetDraw",[U])&&(A.controller.draw(k),y.notify(L,"afterDatasetDraw",[U]))},_drawTooltip:function(S){var k=this,L=k.tooltip,A={tooltip:L,easingValue:S};!1!==y.notify(k,"beforeTooltipDraw",[A])&&(L.draw(),y.notify(k,"afterTooltipDraw",[A]))},getElementAtEvent:function(S){return u.modes.single(this,S)},getElementsAtEvent:function(S){return u.modes.label(this,S,{intersect:!0})},getElementsAtXAxis:function(S){return u.modes["x-axis"](this,S,{intersect:!0})},getElementsAtEventForMode:function(S,k,L){var A=u.modes[k];return"function"==typeof A?A(this,S,L):[]},getDatasetAtEvent:function(S){return u.modes.dataset(this,S,{intersect:!0})},getDatasetMeta:function(S){var k=this,L=k.data.datasets[S];L._meta||(L._meta={});var A=L._meta[k.id];return A||(A=L._meta[k.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),A},getVisibleDatasetCount:function(){for(var S=0,k=0,L=this.data.datasets.length;k{"use strict";var O=N(3305);he.exports=function(_){var u=["push","pop","shift","splice","unshift"];function h(y,p){var v=y._chartjs;if(v){var C=v.listeners,T=C.indexOf(p);-1!==T&&C.splice(T,1),!(C.length>0)&&(u.forEach(function(S){delete y[S]}),delete y._chartjs)}}_.DatasetController=function(y,p){this.initialize(y,p)},O.extend(_.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(y,p){var v=this;v.chart=y,v.index=p,v.linkScales(),v.addElements()},updateIndex:function(y){this.index=y},linkScales:function(){var y=this,p=y.getMeta(),v=y.getDataset();(null===p.xAxisID||!(p.xAxisID in y.chart.scales))&&(p.xAxisID=v.xAxisID||y.chart.options.scales.xAxes[0].id),(null===p.yAxisID||!(p.yAxisID in y.chart.scales))&&(p.yAxisID=v.yAxisID||y.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(y){return this.chart.scales[y]},reset:function(){this.update(!0)},destroy:function(){this._data&&h(this._data,this)},createMetaDataset:function(){var y=this,p=y.datasetElementType;return p&&new p({_chart:y.chart,_datasetIndex:y.index})},createMetaData:function(y){var p=this,v=p.dataElementType;return v&&new v({_chart:p.chart,_datasetIndex:p.index,_index:y})},addElements:function(){var T,S,y=this,p=y.getMeta(),v=y.getDataset().data||[],C=p.data;for(T=0,S=v.length;TC&&y.insertElements(C,T-C)},insertElements:function(y,p){for(var v=0;v{"use strict";var O=N(3305);he.exports={_set:function(_,u){return O.merge(this[_]||(this[_]={}),u)}}},8839:(he,ge,N)=>{"use strict";var O=N(7726),_=N(3305),f=function(h){_.extend(this,h),this.initialize.apply(this,arguments)};_.extend(f.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var h=this;return h._view||(h._view=_.clone(h._model)),h._start={},h},transition:function(h){var y=this,p=y._model,v=y._start,C=y._view;return p&&1!==h?(C||(C=y._view={}),v||(v=y._start={}),function u(h,y,p,v){var T,S,k,L,A,U,H,K,ie,C=Object.keys(p);for(T=0,S=C.length;T{"use strict";var O=N(7726),_=N(9800),u=N(3305);he.exports=function(f){function h(v,C,T){var S;return"string"==typeof v?(S=parseInt(v,10),-1!==v.indexOf("%")&&(S=S/100*C.parentNode[T])):S=v,S}function y(v){return null!=v&&"none"!==v}function p(v,C,T){var S=document.defaultView,k=v.parentNode,L=S.getComputedStyle(v)[C],A=S.getComputedStyle(k)[C],U=y(L),H=y(A),K=Number.POSITIVE_INFINITY;return U||H?Math.min(U?h(L,v,T):K,H?h(A,k,T):K):"none"}u.configMerge=function(){return u.merge(u.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(v,C,T,S){var k=C[v]||{},L=T[v];"scales"===v?C[v]=u.scaleMerge(k,L):"scale"===v?C[v]=u.merge(k,[f.scaleService.getScaleDefaults(L.type),L]):u._merger(v,C,T,S)}})},u.scaleMerge=function(){return u.merge(u.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(v,C,T,S){if("xAxes"===v||"yAxes"===v){var L,A,U,k=T[v].length;for(C[v]||(C[v]=[]),L=0;L=C[v].length&&C[v].push({}),u.merge(C[v][L],!C[v][L].type||U.type&&U.type!==C[v][L].type?[f.scaleService.getScaleDefaults(A),U]:U)}else u._merger(v,C,T,S)}})},u.where=function(v,C){if(u.isArray(v)&&Array.prototype.filter)return v.filter(C);var T=[];return u.each(v,function(S){C(S)&&T.push(S)}),T},u.findIndex=Array.prototype.findIndex?function(v,C,T){return v.findIndex(C,T)}:function(v,C,T){T=void 0===T?v:T;for(var S=0,k=v.length;S=0;S--){var k=v[S];if(C(k))return k}},u.isNumber=function(v){return!isNaN(parseFloat(v))&&isFinite(v)},u.almostEquals=function(v,C,T){return Math.abs(v-C)v},u.max=function(v){return v.reduce(function(C,T){return isNaN(T)?C:Math.max(C,T)},Number.NEGATIVE_INFINITY)},u.min=function(v){return v.reduce(function(C,T){return isNaN(T)?C:Math.min(C,T)},Number.POSITIVE_INFINITY)},u.sign=Math.sign?function(v){return Math.sign(v)}:function(v){return 0==(v=+v)||isNaN(v)?v:v>0?1:-1},u.log10=Math.log10?function(v){return Math.log10(v)}:function(v){var C=Math.log(v)*Math.LOG10E,T=Math.round(C);return v===Math.pow(10,T)?T:C},u.toRadians=function(v){return v*(Math.PI/180)},u.toDegrees=function(v){return v*(180/Math.PI)},u.getAngleFromPoint=function(v,C){var T=C.x-v.x,S=C.y-v.y,k=Math.sqrt(T*T+S*S),L=Math.atan2(S,T);return L<-.5*Math.PI&&(L+=2*Math.PI),{angle:L,distance:k}},u.distanceBetweenPoints=function(v,C){return Math.sqrt(Math.pow(C.x-v.x,2)+Math.pow(C.y-v.y,2))},u.aliasPixel=function(v){return v%2==0?0:.5},u.splineCurve=function(v,C,T,S){var k=v.skip?C:v,L=C,A=T.skip?C:T,U=Math.sqrt(Math.pow(L.x-k.x,2)+Math.pow(L.y-k.y,2)),H=Math.sqrt(Math.pow(A.x-L.x,2)+Math.pow(A.y-L.y,2)),K=U/(U+H),ie=H/(U+H),ve=S*(K=isNaN(K)?0:K),Z=S*(ie=isNaN(ie)?0:ie);return{previous:{x:L.x-ve*(A.x-k.x),y:L.y-ve*(A.y-k.y)},next:{x:L.x+Z*(A.x-k.x),y:L.y+Z*(A.y-k.y)}}},u.EPSILON=Number.EPSILON||1e-14,u.splineCurveMonotone=function(v){var S,k,L,A,H,K,ie,ve,Z,C=(v||[]).map(function(Q){return{model:Q._model,deltaK:0,mK:0}}),T=C.length;for(S=0;S0?C[S-1]:null,(A=S0?C[S-1]:null)&&!k.model.skip&&(L.model.controlPointPreviousX=L.model.x-(Z=(L.model.x-k.model.x)/3),L.model.controlPointPreviousY=L.model.y-Z*L.mK),A&&!A.model.skip&&(L.model.controlPointNextX=L.model.x+(Z=(A.model.x-L.model.x)/3),L.model.controlPointNextY=L.model.y+Z*L.mK))},u.nextItem=function(v,C,T){return T?C>=v.length-1?v[0]:v[C+1]:C>=v.length-1?v[v.length-1]:v[C+1]},u.previousItem=function(v,C,T){return T?C<=0?v[v.length-1]:v[C-1]:C<=0?v[0]:v[C-1]},u.niceNum=function(v,C){var T=Math.floor(u.log10(v)),S=v/Math.pow(10,T);return(C?S<1.5?1:S<3?2:S<7?5:10:S<=1?1:S<=2?2:S<=5?5:10)*Math.pow(10,T)},u.requestAnimFrame=typeof window>"u"?function(v){v()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(v){return window.setTimeout(v,1e3/60)},u.getRelativePosition=function(v,C){var T,S,k=v.originalEvent||v,L=v.currentTarget||v.srcElement,A=L.getBoundingClientRect(),U=k.touches;U&&U.length>0?(T=U[0].clientX,S=U[0].clientY):(T=k.clientX,S=k.clientY);var H=parseFloat(u.getStyle(L,"padding-left")),K=parseFloat(u.getStyle(L,"padding-top")),ie=parseFloat(u.getStyle(L,"padding-right")),ve=parseFloat(u.getStyle(L,"padding-bottom")),Q=A.bottom-A.top-K-ve;return{x:T=Math.round((T-A.left-H)/(A.right-A.left-H-ie)*L.width/C.currentDevicePixelRatio),y:S=Math.round((S-A.top-K)/Q*L.height/C.currentDevicePixelRatio)}},u.getConstraintWidth=function(v){return p(v,"max-width","clientWidth")},u.getConstraintHeight=function(v){return p(v,"max-height","clientHeight")},u.getMaximumWidth=function(v){var C=v.parentNode;if(!C)return v.clientWidth;var T=parseInt(u.getStyle(C,"padding-left"),10),S=parseInt(u.getStyle(C,"padding-right"),10),k=C.clientWidth-T-S,L=u.getConstraintWidth(v);return isNaN(L)?k:Math.min(k,L)},u.getMaximumHeight=function(v){var C=v.parentNode;if(!C)return v.clientHeight;var T=parseInt(u.getStyle(C,"padding-top"),10),S=parseInt(u.getStyle(C,"padding-bottom"),10),k=C.clientHeight-T-S,L=u.getConstraintHeight(v);return isNaN(L)?k:Math.min(k,L)},u.getStyle=function(v,C){return v.currentStyle?v.currentStyle[C]:document.defaultView.getComputedStyle(v,null).getPropertyValue(C)},u.retinaScale=function(v,C){var T=v.currentDevicePixelRatio=C||window.devicePixelRatio||1;if(1!==T){var S=v.canvas,k=v.height,L=v.width;S.height=k*T,S.width=L*T,v.ctx.scale(T,T),!S.style.height&&!S.style.width&&(S.style.height=k+"px",S.style.width=L+"px")}},u.fontString=function(v,C,T){return C+" "+v+"px "+T},u.longestText=function(v,C,T,S){var k=(S=S||{}).data=S.data||{},L=S.garbageCollect=S.garbageCollect||[];S.font!==C&&(k=S.data={},L=S.garbageCollect=[],S.font=C),v.font=C;var A=0;u.each(T,function(K){null!=K&&!0!==u.isArray(K)?A=u.measureText(v,k,L,A,K):u.isArray(K)&&u.each(K,function(ie){null!=ie&&!u.isArray(ie)&&(A=u.measureText(v,k,L,A,ie))})});var U=L.length/2;if(U>T.length){for(var H=0;HS&&(S=L),S},u.numberOfLabelLines=function(v){var C=1;return u.each(v,function(T){u.isArray(T)&&T.length>C&&(C=T.length)}),C},u.color=O?function(v){return v instanceof CanvasGradient&&(v=_.global.defaultColor),O(v)}:function(v){return console.error("Color.js not found!"),v},u.getHoverColor=function(v){return v instanceof CanvasPattern?v:u.color(v).saturate(.5).darken(.1).rgbString()}}},2814:(he,ge,N)=>{"use strict";var O=N(3305);function _(v,C){return v.native?{x:v.x,y:v.y}:O.getRelativePosition(v,C)}function u(v,C){var S,k,L,A,U;for(k=0,A=v.data.datasets.length;k0&&(L=v.getDatasetMeta(L[0]._datasetIndex).data),L},"x-axis":function(v,C){return p(v,C,{intersect:!1})},point:function(v,C){return f(v,_(C,v))},nearest:function(v,C,T){var S=_(C,v);T.axis=T.axis||"xy";var k=y(T.axis),L=h(v,S,T.intersect,k);return L.length>1&&L.sort(function(A,U){var ie=A.getArea()-U.getArea();return 0===ie&&(ie=A._datasetIndex-U._datasetIndex),ie}),L.slice(0,1)},x:function(v,C,T){var S=_(C,v),k=[],L=!1;return u(v,function(A){A.inXRange(S.x)&&k.push(A),A.inRange(S.x,S.y)&&(L=!0)}),T.intersect&&!L&&(k=[]),k},y:function(v,C,T){var S=_(C,v),k=[],L=!1;return u(v,function(A){A.inYRange(S.y)&&k.push(A),A.inRange(S.x,S.y)&&(L=!0)}),T.intersect&&!L&&(k=[]),k}}}},5979:(he,ge,N)=>{"use strict";N(9800)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),he.exports=function(){var _=function(u,f){return this.construct(u,f),this};return _.Chart=_,_}},2294:(he,ge,N)=>{"use strict";var O=N(3305);function _(f,h){return O.where(f,function(y){return y.position===h})}function u(f,h){f.forEach(function(y,p){return y._tmpIndex_=p,y}),f.sort(function(y,p){var v=h?p:y,C=h?y:p;return v.weight===C.weight?v._tmpIndex_-C._tmpIndex_:v.weight-C.weight}),f.forEach(function(y){delete y._tmpIndex_})}he.exports={defaults:{},addBox:function(f,h){f.boxes||(f.boxes=[]),h.fullWidth=h.fullWidth||!1,h.position=h.position||"top",h.weight=h.weight||0,f.boxes.push(h)},removeBox:function(f,h){var y=f.boxes?f.boxes.indexOf(h):-1;-1!==y&&f.boxes.splice(y,1)},configure:function(f,h,y){for(var T,p=["fullWidth","position","weight"],v=p.length,C=0;C{"use strict";var O=N(9800),_=N(3305);O._set("global",{plugins:{}}),he.exports={_plugins:[],_cacheId:0,register:function(u){var f=this._plugins;[].concat(u).forEach(function(h){-1===f.indexOf(h)&&f.push(h)}),this._cacheId++},unregister:function(u){var f=this._plugins;[].concat(u).forEach(function(h){var y=f.indexOf(h);-1!==y&&f.splice(y,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(u,f,h){var v,C,T,S,k,y=this.descriptors(u),p=y.length;for(v=0;v{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=N(8347);function h(p){var C,T,v=[];for(C=0,T=p.length;C"u"&&(S.minor[k]=S[k]),typeof S.major[k]>"u"&&(S.major[k]=S[k]))},beforeUpdate:function(){u.callback(this.options.beforeUpdate,[this])},update:function(S,k,L){var U,H,K,ie,ve,Z,A=this;for(A.beforeUpdate(),A.maxWidth=S,A.maxHeight=k,A.margins=u.extend({left:0,right:0,top:0,bottom:0},L),A.longestTextCache=A.longestTextCache||{},A.beforeSetDimensions(),A.setDimensions(),A.afterSetDimensions(),A.beforeDataLimits(),A.determineDataLimits(),A.afterDataLimits(),A.beforeBuildTicks(),ve=A.buildTicks()||[],A.afterBuildTicks(),A.beforeTickToLabelConversion(),K=A.convertTicksToLabels(ve)||A.ticks,A.afterTickToLabelConversion(),A.ticks=K,U=0,H=K.length;UQ&&HS.maxHeight){H--;break}H++,ie=ve*K}S.labelRotation=H},afterCalculateTickRotation:function(){u.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){u.callback(this.options.beforeFit,[this])},fit:function(){var S=this,k=S.minSize={width:0,height:0},L=h(S._ticks),A=S.options,U=A.ticks,H=A.scaleLabel,K=A.gridLines,ie=A.display,ve=S.isHorizontal(),Z=C(U),Q=A.gridLines.tickMarkLength;if(k.width=ve?S.isFullWidth()?S.maxWidth-S.margins.left-S.margins.right:S.maxWidth:ie&&K.drawTicks?Q:0,k.height=ve?ie&&K.drawTicks?Q:0:S.maxHeight,H.display&&ie){var J=T(H)+u.options.toPadding(H.padding).height;ve?k.height+=J:k.width+=J}if(U.display&&ie){var ee=u.longestText(S.ctx,Z.font,L,S.longestTextCache),ae=u.numberOfLabelLines(L),le=.5*Z.size,X=S.options.ticks.padding;if(ve){S.longestLabelWidth=ee;var Te=u.toRadians(S.labelRotation),Se=Math.cos(Te),Ce=Math.sin(Te);k.height=Math.min(S.maxHeight,k.height+(Ce*ee+Z.size*ae+le*(ae-1)+le)+X),S.ctx.font=Z.font;var tt=v(S.ctx,L[0],Z.font),ot=v(S.ctx,L[L.length-1],Z.font);0!==S.labelRotation?(S.paddingLeft="bottom"===A.position?Se*tt+3:Se*le+3,S.paddingRight="bottom"===A.position?Se*le+3:Se*ot+3):(S.paddingLeft=tt/2+3,S.paddingRight=ot/2+3)}else U.mirror?ee=0:ee+=X+le,k.width=Math.min(S.maxWidth,k.width+ee),S.paddingTop=Z.size/2,S.paddingBottom=Z.size/2}S.handleMargins(),S.width=k.width,S.height=k.height},handleMargins:function(){var S=this;S.margins&&(S.paddingLeft=Math.max(S.paddingLeft-S.margins.left,0),S.paddingTop=Math.max(S.paddingTop-S.margins.top,0),S.paddingRight=Math.max(S.paddingRight-S.margins.right,0),S.paddingBottom=Math.max(S.paddingBottom-S.margins.bottom,0))},afterFit:function(){u.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(S){if(u.isNullOrUndef(S))return NaN;if("number"==typeof S&&!isFinite(S))return NaN;if(S)if(this.isHorizontal()){if(void 0!==S.x)return this.getRightValue(S.x)}else if(void 0!==S.y)return this.getRightValue(S.y);return S},getLabelForIndex:u.noop,getPixelForValue:u.noop,getValueForPixel:u.noop,getPixelForTick:function(S){var k=this,L=k.options.offset;if(k.isHorizontal()){var U=(k.width-(k.paddingLeft+k.paddingRight))/Math.max(k._ticks.length-(L?0:1),1),H=U*S+k.paddingLeft;return L&&(H+=U/2),k.left+Math.round(H)+(k.isFullWidth()?k.margins.left:0)}return k.top+S*((k.height-(k.paddingTop+k.paddingBottom))/(k._ticks.length-1))},getPixelForDecimal:function(S){var k=this;return k.isHorizontal()?k.left+Math.round((k.width-(k.paddingLeft+k.paddingRight))*S+k.paddingLeft)+(k.isFullWidth()?k.margins.left:0):k.top+S*k.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var S=this,k=S.min,L=S.max;return S.beginAtZero?0:k<0&&L<0?L:k>0&&L>0?k:0},_autoSkip:function(S){var k,Q,de,J,L=this,A=L.isHorizontal(),U=L.options.ticks.minor,H=S.length,K=u.toRadians(L.labelRotation),ie=Math.cos(K),ve=L.longestLabelWidth*ie,Z=[];for(U.maxTicksLimit&&(J=U.maxTicksLimit),A&&(k=!1,(ve+U.autoSkipPadding)*H>L.width-(L.paddingLeft+L.paddingRight)&&(k=1+Math.floor((ve+U.autoSkipPadding)*H/(L.width-(L.paddingLeft+L.paddingRight)))),J&&H>J&&(k=Math.max(k,Math.floor(H/J)))),Q=0;Q1&&Q%k>0||Q%k==0&&Q+k>=H)&&Q!==H-1&&delete de.label,Z.push(de);return Z},draw:function(S){var k=this,L=k.options;if(L.display){var A=k.ctx,U=O.global,H=L.ticks.minor,K=L.ticks.major||H,ie=L.gridLines,ve=L.scaleLabel,Z=0!==k.labelRotation,Q=k.isHorizontal(),de=H.autoSkip?k._autoSkip(k.getTicks()):k.getTicks(),G=u.valueOrDefault(H.fontColor,U.defaultFontColor),J=C(H),ee=u.valueOrDefault(K.fontColor,U.defaultFontColor),ae=C(K),le=ie.drawTicks?ie.tickMarkLength:0,X=u.valueOrDefault(ve.fontColor,U.defaultFontColor),Te=C(ve),Se=u.options.toPadding(ve.padding),Ce=u.toRadians(k.labelRotation),Ve=[],tt=k.options.gridLines.lineWidth,ot="right"===L.position?k.right:k.right-tt-le,st="right"===L.position?k.right+le:k.right,Nt="bottom"===L.position?k.top+tt:k.bottom-le-tt,en="bottom"===L.position?k.top+tt+le:k.bottom+tt;if(u.each(de,function(ne,me){if(!u.isNullOrUndef(ne.label)){var ue,be,_e,Me,fe=ne.label;me===k.zeroLineIndex&&L.offset===ie.offsetGridLines?(ue=ie.zeroLineWidth,be=ie.zeroLineColor,_e=ie.zeroLineBorderDash,Me=ie.zeroLineBorderDashOffset):(ue=u.valueAtIndexOrDefault(ie.lineWidth,me),be=u.valueAtIndexOrDefault(ie.color,me),_e=u.valueOrDefault(ie.borderDash,U.borderDash),Me=u.valueOrDefault(ie.borderDashOffset,U.borderDashOffset));var De,Ee,Ne,ut,_t,rt,sn,Pn,vt,jt,jn="middle",oi="middle",Kr=H.padding;if(Q){var So=le+Kr;"bottom"===L.position?(oi=Z?"middle":"top",jn=Z?"right":"center",jt=k.top+So):(oi=Z?"middle":"bottom",jn=Z?"left":"center",jt=k.bottom-So);var Pi=y(k,me,ie.offsetGridLines&&de.length>1);Pi1);si{"use strict";var O=N(9800),_=N(3305),u=N(2294);he.exports=function(f){f.scaleService={constructors:{},defaults:{},registerScaleType:function(h,y,p){this.constructors[h]=y,this.defaults[h]=_.clone(p)},getScaleConstructor:function(h){return this.constructors.hasOwnProperty(h)?this.constructors[h]:void 0},getScaleDefaults:function(h){return this.defaults.hasOwnProperty(h)?_.merge({},[O.scale,this.defaults[h]]):{}},updateScaleDefaults:function(h,y){var p=this;p.defaults.hasOwnProperty(h)&&(p.defaults[h]=_.extend(p.defaults[h],y))},addScalesToLayout:function(h){_.each(h.scales,function(y){y.fullWidth=y.options.fullWidth,y.position=y.options.position,y.weight=y.options.weight,u.addBox(h,y)})}}}},8347:(he,ge,N)=>{"use strict";var O=N(3305);he.exports={formatters:{values:function(_){return O.isArray(_)?_:""+_},linear:function(_,u,f){var h=f.length>3?f[2]-f[1]:f[1]-f[0];Math.abs(h)>1&&_!==Math.floor(_)&&(h=_-Math.floor(_));var y=O.log10(Math.abs(h)),p="";if(0!==_){var v=-1*Math.floor(y);v=Math.max(Math.min(v,20),0),p=_.toFixed(v)}else p="0";return p},logarithmic:function(_,u,f){var h=_/Math.pow(10,Math.floor(O.log10(_)));return 0===_?"0":1===h||2===h||5===h||0===u||u===f.length-1?_.toExponential():""}}}},480:(he,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305);O._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:u.noop,title:function(f,h){var y="",p=h.labels,v=p?p.length:0;if(f.length>0){var C=f[0];C.xLabel?y=C.xLabel:v>0&&C.indexU.height-L.height&&(ie="bottom");var ve,Z,Q,de,G,J=(H.left+H.right)/2,ee=(H.top+H.bottom)/2;"center"===ie?(ve=function(le){return le<=J},Z=function(le){return le>J}):(ve=function(le){return le<=L.width/2},Z=function(le){return le>=U.width-L.width/2}),Q=function(le){return le+L.width+A.caretSize+A.caretPadding>U.width},de=function(le){return le-L.width-A.caretSize-A.caretPadding<0},G=function(le){return le<=ee?"top":"bottom"},ve(A.x)?(K="left",Q(A.x)&&(K="center",ie=G(A.y))):Z(A.x)&&(K="right",de(A.x)&&(K="center",ie=G(A.y)));var ae=k._options;return{xAlign:ae.xAlign?ae.xAlign:K,yAlign:ae.yAlign?ae.yAlign:ie}}(this,Q),Z=function S(k,L,A,U){var H=k.x,K=k.y,ve=k.caretPadding,Q=A.xAlign,de=A.yAlign,G=k.caretSize+ve,J=k.cornerRadius+ve;return"right"===Q?H-=L.width:"center"===Q&&((H-=L.width/2)+L.width>U.width&&(H=U.width-L.width),H<0&&(H=0)),"top"===de?K+=G:K-="bottom"===de?L.height+G:L.height/2,"center"===de?"left"===Q?H+=G:"right"===Q&&(H-=G):"left"===Q?H-=J:"right"===Q&&(H+=J),{x:H,y:K}}(H,Q,ve,L._chart)}else H.opacity=0;return H.xAlign=ve.xAlign,H.yAlign=ve.yAlign,H.x=Z.x,H.y=Z.y,H.width=Q.width,H.height=Q.height,H.caretX=de.x,H.caretY=de.y,L._model=H,k&&A.custom&&A.custom.call(L,H),L},drawCaret:function(k,L){var A=this._chart.ctx,H=this.getCaretPosition(k,L,this._view);A.lineTo(H.x1,H.y1),A.lineTo(H.x2,H.y2),A.lineTo(H.x3,H.y3)},getCaretPosition:function(k,L,A){var U,H,K,ie,ve,Z,Q=A.caretSize,de=A.cornerRadius,G=A.xAlign,J=A.yAlign,ee=k.x,ae=k.y,le=L.width,X=L.height;if("center"===J)ve=ae+X/2,"left"===G?(H=(U=ee)-Q,K=U,ie=ve+Q,Z=ve-Q):(H=(U=ee+le)+Q,K=U,ie=ve-Q,Z=ve+Q);else if("left"===G?(U=(H=ee+de+Q)-Q,K=H+Q):"right"===G?(U=(H=ee+le-de-Q)-Q,K=H+Q):(U=(H=A.caretX)-Q,K=H+Q),"top"===J)ve=(ie=ae)-Q,Z=ie;else{ve=(ie=ae+X)+Q,Z=ie;var Te=K;K=U,U=Te}return{x1:U,x2:H,x3:K,y1:ie,y2:ve,y3:Z}},drawTitle:function(k,L,A,U){var H=L.title;if(H.length){A.textAlign=L._titleAlign,A.textBaseline="top";var ve,Z,K=L.titleFontSize,ie=L.titleSpacing;for(A.fillStyle=h(L.titleFontColor,U),A.font=u.fontString(K,L._titleFontStyle,L._titleFontFamily),ve=0,Z=H.length;ve0&&A.stroke()},draw:function(){var k=this._chart.ctx,L=this._view;if(0!==L.opacity){var A={width:L.width,height:L.height},U={x:L.x,y:L.y},H=Math.abs(L.opacity<.001)?0:L.opacity;this._options.enabled&&(L.title.length||L.beforeBody.length||L.body.length||L.afterBody.length||L.footer.length)&&(this.drawBackground(U,L,k,A,H),U.x+=L.xPadding,U.y+=L.yPadding,this.drawTitle(U,L,k,H),this.drawBody(U,L,k,H),this.drawFooter(U,L,k,H))}},handleEvent:function(k){var U,L=this,A=L._options;return L._lastActive=L._lastActive||[],L._active="mouseout"===k.type?[]:L._chart.getElementsAtEventForMode(k,A.mode,A),(U=!u.arrayEquals(L._active,L._lastActive))&&(L._lastActive=L._active,(A.enabled||A.custom)&&(L._eventPosition={x:k.x,y:k.y},L.update(!0),L.pivot())),U}}),f.Tooltip.positioners={average:function(k){if(!k.length)return!1;var L,A,U=0,H=0,K=0;for(L=0,A=k.length;L{"use strict";var O=N(9800),_=N(8839),u=N(3305);O._set("global",{elements:{arc:{backgroundColor:O.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),he.exports=_.extend({inLabelRange:function(f){var h=this._view;return!!h&&Math.pow(f-h.x,2)S;)v-=2*Math.PI;for(;v=T&&v<=S&&C>=y.innerRadius&&C<=y.outerRadius}return!1},getCenterPoint:function(){var f=this._view,h=(f.startAngle+f.endAngle)/2,y=(f.innerRadius+f.outerRadius)/2;return{x:f.x+Math.cos(h)*y,y:f.y+Math.sin(h)*y}},getArea:function(){var f=this._view;return Math.PI*((f.endAngle-f.startAngle)/(2*Math.PI))*(Math.pow(f.outerRadius,2)-Math.pow(f.innerRadius,2))},tooltipPosition:function(){var f=this._view,h=f.startAngle+(f.endAngle-f.startAngle)/2,y=(f.outerRadius-f.innerRadius)/2+f.innerRadius;return{x:f.x+Math.cos(h)*y,y:f.y+Math.sin(h)*y}},draw:function(){var f=this._chart.ctx,h=this._view,y=h.startAngle,p=h.endAngle;f.beginPath(),f.arc(h.x,h.y,h.outerRadius,y,p),f.arc(h.x,h.y,h.innerRadius,p,y,!0),f.closePath(),f.strokeStyle=h.borderColor,f.lineWidth=h.borderWidth,f.fillStyle=h.backgroundColor,f.fill(),f.lineJoin="bevel",h.borderWidth&&f.stroke()}})},3819:(he,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=O.global;O._set("global",{elements:{line:{tension:.4,backgroundColor:f.defaultColor,borderWidth:3,borderColor:f.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),he.exports=_.extend({draw:function(){var k,L,A,U,h=this,y=h._view,p=h._chart.ctx,v=y.spanGaps,C=h._children.slice(),T=f.elements.line,S=-1;for(h._loop&&C.length&&C.push(C[0]),p.save(),p.lineCap=y.borderCapStyle||T.borderCapStyle,p.setLineDash&&p.setLineDash(y.borderDash||T.borderDash),p.lineDashOffset=y.borderDashOffset||T.borderDashOffset,p.lineJoin=y.borderJoinStyle||T.borderJoinStyle,p.lineWidth=y.borderWidth||T.borderWidth,p.strokeStyle=y.borderColor||f.defaultColor,p.beginPath(),S=-1,k=0;k{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=O.global.defaultColor;function h(p){var v=this._view;return!!v&&Math.abs(p-v.x){"use strict";var O=N(9800),_=N(8839);function u(h){return void 0!==h._view.width}function f(h){var p,v,C,T,y=h._view;if(u(h)){var S=y.width/2;p=y.x-S,v=y.x+S,C=Math.min(y.y,y.base),T=Math.max(y.y,y.base)}else{var k=y.height/2;p=Math.min(y.x,y.base),v=Math.max(y.x,y.base),C=y.y-k,T=y.y+k}return{left:p,top:C,right:v,bottom:T}}O._set("global",{elements:{rectangle:{backgroundColor:O.global.defaultColor,borderColor:O.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),he.exports=_.extend({draw:function(){var p,v,C,T,S,k,L,h=this._chart.ctx,y=this._view,A=y.borderWidth;if(y.horizontal?(C=y.y-y.height/2,T=y.y+y.height/2,S=(v=y.x)>(p=y.base)?1:-1,k=1,L=y.borderSkipped||"left"):(p=y.x-y.width/2,v=y.x+y.width/2,S=1,k=(T=y.base)>(C=y.y)?1:-1,L=y.borderSkipped||"bottom"),A){var U=Math.min(Math.abs(p-v),Math.abs(C-T)),H=(A=A>U?U:A)/2,K=p+("left"!==L?H*S:0),ie=v+("right"!==L?-H*S:0),ve=C+("top"!==L?H*k:0),Z=T+("bottom"!==L?-H*k:0);K!==ie&&(C=ve,T=Z),ve!==Z&&(p=K,v=ie)}h.beginPath(),h.fillStyle=y.backgroundColor,h.strokeStyle=y.borderColor,h.lineWidth=A;var Q=[[p,T],[p,C],[v,C],[v,T]],G=["bottom","left","top","right"].indexOf(L,0);function J(le){return Q[(G+le)%4]}-1===G&&(G=0);var ee=J(0);h.moveTo(ee[0],ee[1]);for(var ae=1;ae<4;ae++)ee=J(ae),h.lineTo(ee[0],ee[1]);h.fill(),A&&h.stroke()},height:function(){var h=this._view;return h.base-h.y},inRange:function(h,y){var p=!1;if(this._view){var v=f(this);p=h>=v.left&&h<=v.right&&y>=v.top&&y<=v.bottom}return p},inLabelRange:function(h,y){var p=this;if(!p._view)return!1;var C=f(p);return u(p)?h>=C.left&&h<=C.right:y>=C.top&&y<=C.bottom},inXRange:function(h){var y=f(this);return h>=y.left&&h<=y.right},inYRange:function(h){var y=f(this);return h>=y.top&&h<=y.bottom},getCenterPoint:function(){var y,p,h=this._view;return u(this)?(y=h.x,p=(h.y+h.base)/2):(y=(h.x+h.base)/2,p=h.y),{x:y,y:p}},getArea:function(){var h=this._view;return h.width*Math.abs(h.y-h.base)},tooltipPosition:function(){var h=this._view;return{x:h.x,y:h.y}}})},9931:(he,ge,N)=>{"use strict";he.exports={},he.exports.Arc=N(280),he.exports.Line=N(3819),he.exports.Point=N(4674),he.exports.Rectangle=N(8667)},2397:(he,ge,N)=>{"use strict";var O=N(4396),_=he.exports={clear:function(u){u.ctx.clearRect(0,0,u.width,u.height)},roundedRect:function(u,f,h,y,p,v){if(v){var C=Math.min(v,y/2),T=Math.min(v,p/2);u.moveTo(f+C,h),u.lineTo(f+y-C,h),u.quadraticCurveTo(f+y,h,f+y,h+T),u.lineTo(f+y,h+p-T),u.quadraticCurveTo(f+y,h+p,f+y-C,h+p),u.lineTo(f+C,h+p),u.quadraticCurveTo(f,h+p,f,h+p-T),u.lineTo(f,h+T),u.quadraticCurveTo(f,h,f+C,h)}else u.rect(f,h,y,p)},drawPoint:function(u,f,h,y,p){var v,C,T,S,k,L;if(!f||"object"!=typeof f||"[object HTMLImageElement]"!==(v=f.toString())&&"[object HTMLCanvasElement]"!==v){if(!(isNaN(h)||h<=0)){switch(f){default:u.beginPath(),u.arc(y,p,h,0,2*Math.PI),u.closePath(),u.fill();break;case"triangle":u.beginPath(),k=(C=3*h/Math.sqrt(3))*Math.sqrt(3)/2,u.moveTo(y-C/2,p+k/3),u.lineTo(y+C/2,p+k/3),u.lineTo(y,p-2*k/3),u.closePath(),u.fill();break;case"rect":L=1/Math.SQRT2*h,u.beginPath(),u.fillRect(y-L,p-L,2*L,2*L),u.strokeRect(y-L,p-L,2*L,2*L);break;case"rectRounded":var A=h/Math.SQRT2,U=y-A,H=p-A,K=Math.SQRT2*h;u.beginPath(),this.roundedRect(u,U,H,K,K,h/2),u.closePath(),u.fill();break;case"rectRot":L=1/Math.SQRT2*h,u.beginPath(),u.moveTo(y-L,p),u.lineTo(y,p+L),u.lineTo(y+L,p),u.lineTo(y,p-L),u.closePath(),u.fill();break;case"cross":u.beginPath(),u.moveTo(y,p+h),u.lineTo(y,p-h),u.moveTo(y-h,p),u.lineTo(y+h,p),u.closePath();break;case"crossRot":u.beginPath(),T=Math.cos(Math.PI/4)*h,S=Math.sin(Math.PI/4)*h,u.moveTo(y-T,p-S),u.lineTo(y+T,p+S),u.moveTo(y-T,p+S),u.lineTo(y+T,p-S),u.closePath();break;case"star":u.beginPath(),u.moveTo(y,p+h),u.lineTo(y,p-h),u.moveTo(y-h,p),u.lineTo(y+h,p),T=Math.cos(Math.PI/4)*h,S=Math.sin(Math.PI/4)*h,u.moveTo(y-T,p-S),u.lineTo(y+T,p+S),u.moveTo(y-T,p+S),u.lineTo(y+T,p-S),u.closePath();break;case"line":u.beginPath(),u.moveTo(y-h,p),u.lineTo(y+h,p),u.closePath();break;case"dash":u.beginPath(),u.moveTo(y,p),u.lineTo(y+h,p),u.closePath()}u.stroke()}}else u.drawImage(f,y-f.width/2,p-f.height/2,f.width,f.height)},clipArea:function(u,f){u.save(),u.beginPath(),u.rect(f.left,f.top,f.right-f.left,f.bottom-f.top),u.clip()},unclipArea:function(u){u.restore()},lineTo:function(u,f,h,y){if(h.steppedLine)return"after"===h.steppedLine&&!y||"after"!==h.steppedLine&&y?u.lineTo(f.x,h.y):u.lineTo(h.x,f.y),void u.lineTo(h.x,h.y);h.tension?u.bezierCurveTo(y?f.controlPointPreviousX:f.controlPointNextX,y?f.controlPointPreviousY:f.controlPointNextY,y?h.controlPointNextX:h.controlPointPreviousX,y?h.controlPointNextY:h.controlPointPreviousY,h.x,h.y):u.lineTo(h.x,h.y)}};O.clear=_.clear,O.drawRoundedRectangle=function(u){u.beginPath(),_.roundedRect.apply(_,arguments),u.closePath()}},4396:he=>{"use strict";var N,ge={noop:function(){},uid:(N=0,function(){return N++}),isNullOrUndef:function(N){return null===N||typeof N>"u"},isArray:Array.isArray?Array.isArray:function(N){return"[object Array]"===Object.prototype.toString.call(N)},isObject:function(N){return null!==N&&"[object Object]"===Object.prototype.toString.call(N)},valueOrDefault:function(N,O){return typeof N>"u"?O:N},valueAtIndexOrDefault:function(N,O,_){return ge.valueOrDefault(ge.isArray(N)?N[O]:N,_)},callback:function(N,O,_){if(N&&"function"==typeof N.call)return N.apply(_,O)},each:function(N,O,_,u){var f,h,y;if(ge.isArray(N))if(h=N.length,u)for(f=h-1;f>=0;f--)O.call(_,N[f],f);else for(f=0;f{"use strict";var O=N(4396),_={linear:function(u){return u},easeInQuad:function(u){return u*u},easeOutQuad:function(u){return-u*(u-2)},easeInOutQuad:function(u){return(u/=.5)<1?.5*u*u:-.5*(--u*(u-2)-1)},easeInCubic:function(u){return u*u*u},easeOutCubic:function(u){return(u-=1)*u*u+1},easeInOutCubic:function(u){return(u/=.5)<1?.5*u*u*u:.5*((u-=2)*u*u+2)},easeInQuart:function(u){return u*u*u*u},easeOutQuart:function(u){return-((u-=1)*u*u*u-1)},easeInOutQuart:function(u){return(u/=.5)<1?.5*u*u*u*u:-.5*((u-=2)*u*u*u-2)},easeInQuint:function(u){return u*u*u*u*u},easeOutQuint:function(u){return(u-=1)*u*u*u*u+1},easeInOutQuint:function(u){return(u/=.5)<1?.5*u*u*u*u*u:.5*((u-=2)*u*u*u*u+2)},easeInSine:function(u){return 1-Math.cos(u*(Math.PI/2))},easeOutSine:function(u){return Math.sin(u*(Math.PI/2))},easeInOutSine:function(u){return-.5*(Math.cos(Math.PI*u)-1)},easeInExpo:function(u){return 0===u?0:Math.pow(2,10*(u-1))},easeOutExpo:function(u){return 1===u?1:1-Math.pow(2,-10*u)},easeInOutExpo:function(u){return 0===u?0:1===u?1:(u/=.5)<1?.5*Math.pow(2,10*(u-1)):.5*(2-Math.pow(2,-10*--u))},easeInCirc:function(u){return u>=1?u:-(Math.sqrt(1-u*u)-1)},easeOutCirc:function(u){return Math.sqrt(1-(u-=1)*u)},easeInOutCirc:function(u){return(u/=.5)<1?-.5*(Math.sqrt(1-u*u)-1):.5*(Math.sqrt(1-(u-=2)*u)+1)},easeInElastic:function(u){var f=1.70158,h=0,y=1;return 0===u?0:1===u?1:(h||(h=.3),y<1?(y=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/y),-y*Math.pow(2,10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h))},easeOutElastic:function(u){var f=1.70158,h=0,y=1;return 0===u?0:1===u?1:(h||(h=.3),y<1?(y=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/y),y*Math.pow(2,-10*u)*Math.sin((u-f)*(2*Math.PI)/h)+1)},easeInOutElastic:function(u){var f=1.70158,h=0,y=1;return 0===u?0:2==(u/=.5)?1:(h||(h=.45),y<1?(y=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/y),u<1?y*Math.pow(2,10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h)*-.5:y*Math.pow(2,-10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h)*.5+1)},easeInBack:function(u){var f=1.70158;return u*u*((f+1)*u-f)},easeOutBack:function(u){var f=1.70158;return(u-=1)*u*((f+1)*u+f)+1},easeInOutBack:function(u){var f=1.70158;return(u/=.5)<1?u*u*((1+(f*=1.525))*u-f)*.5:.5*((u-=2)*u*((1+(f*=1.525))*u+f)+2)},easeInBounce:function(u){return 1-_.easeOutBounce(1-u)},easeOutBounce:function(u){return u<1/2.75?7.5625*u*u:u<2/2.75?7.5625*(u-=1.5/2.75)*u+.75:u<2.5/2.75?7.5625*(u-=2.25/2.75)*u+.9375:7.5625*(u-=2.625/2.75)*u+.984375},easeInOutBounce:function(u){return u<.5?.5*_.easeInBounce(2*u):.5*_.easeOutBounce(2*u-1)+.5}};he.exports={effects:_},O.easingEffects=_},5347:(he,ge,N)=>{"use strict";var O=N(4396);he.exports={toLineHeight:function(_,u){var f=(""+_).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!f||"normal"===f[1])return 1.2*u;switch(_=+f[2],f[3]){case"px":return _;case"%":_/=100}return u*_},toPadding:function(_){var u,f,h,y;return O.isObject(_)?(u=+_.top||0,f=+_.right||0,h=+_.bottom||0,y=+_.left||0):u=f=h=y=+_||0,{top:u,right:f,bottom:h,left:y,height:u+h,width:y+f}},resolve:function(_,u,f){var h,y,p;for(h=0,y=_.length;h{"use strict";he.exports=N(4396),he.exports.easing=N(4317),he.exports.canvas=N(2397),he.exports.options=N(5347)},1607:he=>{he.exports={acquireContext:function(ge){return ge&&ge.canvas&&(ge=ge.canvas),ge&&ge.getContext("2d")||null}}},8005:(he,ge,N)=>{"use strict";var O=N(3305),_="$chartjs",u="chartjs-",f=u+"render-monitor",h=u+"render-animation",y=["animationstart","webkitAnimationStart"],p={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function v(G,J){var ee=O.getStyle(G,J),ae=ee&&ee.match(/^(\d+)(\.\d+)?px$/);return ae?Number(ae[1]):void 0}var S=!!function(){var G=!1;try{var J=Object.defineProperty({},"passive",{get:function(){G=!0}});window.addEventListener("e",null,J)}catch{}return G}()&&{passive:!0};function k(G,J,ee){G.addEventListener(J,ee,S)}function L(G,J,ee){G.removeEventListener(J,ee,S)}function A(G,J,ee,ae,le){return{type:G,chart:J,native:le||null,x:void 0!==ee?ee:null,y:void 0!==ae?ae:null}}he.exports={_enabled:typeof window<"u"&&typeof document<"u",initialize:function(){var G="from{opacity:0.99}to{opacity:1}";!function de(G,J){var ee=G._style||document.createElement("style");G._style||(G._style=ee,J="/* Chart.js */\n"+J,ee.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(ee)),ee.appendChild(document.createTextNode(J))}(this,"@-webkit-keyframes "+h+"{"+G+"}@keyframes "+h+"{"+G+"}."+f+"{-webkit-animation:"+h+" 0.001s;animation:"+h+" 0.001s;}")},acquireContext:function(G,J){"string"==typeof G?G=document.getElementById(G):G.length&&(G=G[0]),G&&G.canvas&&(G=G.canvas);var ee=G&&G.getContext&&G.getContext("2d");return ee&&ee.canvas===G?(function C(G,J){var ee=G.style,ae=G.getAttribute("height"),le=G.getAttribute("width");if(G[_]={initial:{height:ae,width:le,style:{display:ee.display,height:ee.height,width:ee.width}}},ee.display=ee.display||"block",null===le||""===le){var X=v(G,"width");void 0!==X&&(G.width=X)}if(null===ae||""===ae)if(""===G.style.height)G.height=G.width/(J.options.aspectRatio||2);else{var Te=v(G,"height");void 0!==X&&(G.height=Te)}}(G,J),ee):null},releaseContext:function(G){var J=G.canvas;if(J[_]){var ee=J[_].initial;["height","width"].forEach(function(ae){var le=ee[ae];O.isNullOrUndef(le)?J.removeAttribute(ae):J.setAttribute(ae,le)}),O.each(ee.style||{},function(ae,le){J.style[le]=ae}),J.width=J.width,delete J[_]}},addEventListener:function(G,J,ee){var ae=G.canvas;if("resize"!==J){var le=ee[_]||(ee[_]={}),Te=(le.proxies||(le.proxies={}))[G.id+"_"+J]=function(Se){ee(function U(G,J){var ee=p[G.type]||G.type,ae=O.getRelativePosition(G,J);return A(ee,J,ae.x,ae.y,G)}(Se,G))};k(ae,J,Te)}else!function Z(G,J,ee){var ae=G[_]||(G[_]={}),le=ae.resizer=function K(G){var J=document.createElement("div"),ee=u+"size-monitor",ae=1e6,le="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";J.style.cssText=le,J.className=ee,J.innerHTML='
';var X=J.childNodes[0],Te=J.childNodes[1];J._reset=function(){X.scrollLeft=ae,X.scrollTop=ae,Te.scrollLeft=ae,Te.scrollTop=ae};var Se=function(){J._reset(),G()};return k(X,"scroll",Se.bind(X,"expand")),k(Te,"scroll",Se.bind(Te,"shrink")),J}(function H(G,J){var ee=!1,ae=[];return function(){ae=Array.prototype.slice.call(arguments),J=J||this,ee||(ee=!0,O.requestAnimFrame.call(window,function(){ee=!1,G.apply(J,ae)}))}}(function(){if(ae.resizer)return J(A("resize",ee))}));!function ie(G,J){var ee=G[_]||(G[_]={}),ae=ee.renderProxy=function(le){le.animationName===h&&J()};O.each(y,function(le){k(G,le,ae)}),ee.reflow=!!G.offsetParent,G.classList.add(f)}(G,function(){if(ae.resizer){var X=G.parentNode;X&&X!==le.parentNode&&X.insertBefore(le,X.firstChild),le._reset()}})}(ae,ee,G)},removeEventListener:function(G,J,ee){var ae=G.canvas;if("resize"!==J){var Te=((ee[_]||{}).proxies||{})[G.id+"_"+J];!Te||L(ae,J,Te)}else!function Q(G){var J=G[_]||{},ee=J.resizer;delete J.resizer,function ve(G){var J=G[_]||{},ee=J.renderProxy;ee&&(O.each(y,function(ae){L(G,ae,ee)}),delete J.renderProxy),G.classList.remove(f)}(G),ee&&ee.parentNode&&ee.parentNode.removeChild(ee)}(ae)}},O.addEvent=k,O.removeEvent=L},8244:(he,ge,N)=>{"use strict";var O=N(3305),_=N(1607),u=N(8005);he.exports=O.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},u._enabled?u:_)},6747:(he,ge,N)=>{"use strict";he.exports={},he.exports.filler=N(6579),he.exports.legend=N(2230),he.exports.title=N(7412)},6579:(he,ge,N)=>{"use strict";var O=N(9800),_=N(9931),u=N(3305);O._set("global",{plugins:{filler:{propagate:!0}}});var f={dataset:function(k){var L=k.fill,A=k.chart,U=A.getDatasetMeta(L),K=U&&A.isDatasetVisible(L)&&U.dataset._children||[],ie=K.length||0;return ie?function(ve,Z){return Z=A)&&K;switch(H){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return H;default:return!1}}function y(k){var K,L=k.el._model||{},A=k.el._scale||{},U=k.fill,H=null;if(isFinite(U))return null;if("start"===U?H=void 0===L.scaleBottom?A.bottom:L.scaleBottom:"end"===U?H=void 0===L.scaleTop?A.top:L.scaleTop:void 0!==L.scaleZero?H=L.scaleZero:A.getBasePosition?H=A.getBasePosition():A.getBasePixel&&(H=A.getBasePixel()),null!=H){if(void 0!==H.x&&void 0!==H.y)return H;if("number"==typeof H&&isFinite(H))return{x:(K=A.isHorizontal())?H:null,y:K?null:H}}return null}function p(k,L,A){var ie,H=k[L].fill,K=[L];if(!A)return H;for(;!1!==H&&-1===K.indexOf(H);){if(!isFinite(H))return H;if(!(ie=k[H]))return!1;if(ie.visible)return H;K.push(H),H=ie.fill}return!1}function v(k){var L=k.fill,A="dataset";return!1===L?null:(isFinite(L)||(A="boundary"),f[A](k))}function C(k){return k&&!k.skip}function T(k,L,A,U,H){var K;if(U&&H){for(k.moveTo(L[0].x,L[0].y),K=1;K0;--K)u.canvas.lineTo(k,A[K],A[K-1],!0)}}he.exports={id:"filler",afterDatasetsUpdate:function(k,L){var K,ie,ve,Z,A=(k.data.datasets||[]).length,U=L.propagate,H=[];for(ie=0;ie{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=N(2294),h=u.noop;function y(C,T){return C.usePointStyle?T*Math.SQRT2:C.boxWidth}O._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(C,T){var S=T.datasetIndex,k=this.chart,L=k.getDatasetMeta(S);L.hidden=null===L.hidden?!k.data.datasets[S].hidden:null,k.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(C){var T=C.data;return u.isArray(T.datasets)?T.datasets.map(function(S,k){return{text:S.label,fillStyle:u.isArray(S.backgroundColor)?S.backgroundColor[0]:S.backgroundColor,hidden:!C.isDatasetVisible(k),lineCap:S.borderCapStyle,lineDash:S.borderDash,lineDashOffset:S.borderDashOffset,lineJoin:S.borderJoinStyle,lineWidth:S.borderWidth,strokeStyle:S.borderColor,pointStyle:S.pointStyle,datasetIndex:k}},this):[]}}},legendCallback:function(C){var T=[];T.push('
    ');for(var S=0;S'),C.data.datasets[S].label&&T.push(C.data.datasets[S].label),T.push("");return T.push("
"),T.join("")}});var p=_.extend({initialize:function(C){u.extend(this,C),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:h,update:function(C,T,S){var k=this;return k.beforeUpdate(),k.maxWidth=C,k.maxHeight=T,k.margins=S,k.beforeSetDimensions(),k.setDimensions(),k.afterSetDimensions(),k.beforeBuildLabels(),k.buildLabels(),k.afterBuildLabels(),k.beforeFit(),k.fit(),k.afterFit(),k.afterUpdate(),k.minSize},afterUpdate:h,beforeSetDimensions:h,setDimensions:function(){var C=this;C.isHorizontal()?(C.width=C.maxWidth,C.left=0,C.right=C.width):(C.height=C.maxHeight,C.top=0,C.bottom=C.height),C.paddingLeft=0,C.paddingTop=0,C.paddingRight=0,C.paddingBottom=0,C.minSize={width:0,height:0}},afterSetDimensions:h,beforeBuildLabels:h,buildLabels:function(){var C=this,T=C.options.labels||{},S=u.callback(T.generateLabels,[C.chart],C)||[];T.filter&&(S=S.filter(function(k){return T.filter(k,C.chart.data)})),C.options.reverse&&S.reverse(),C.legendItems=S},afterBuildLabels:h,beforeFit:h,fit:function(){var C=this,T=C.options,S=T.labels,k=T.display,L=C.ctx,A=O.global,U=u.valueOrDefault,H=U(S.fontSize,A.defaultFontSize),K=U(S.fontStyle,A.defaultFontStyle),ie=U(S.fontFamily,A.defaultFontFamily),ve=u.fontString(H,K,ie),Z=C.legendHitBoxes=[],Q=C.minSize,de=C.isHorizontal();if(de?(Q.width=C.maxWidth,Q.height=k?10:0):(Q.width=k?10:0,Q.height=C.maxHeight),k)if(L.font=ve,de){var G=C.lineWidths=[0],J=C.legendItems.length?H+S.padding:0;L.textAlign="left",L.textBaseline="top",u.each(C.legendItems,function(Ce,Ve){var ot=y(S,H)+H/2+L.measureText(Ce.text).width;G[G.length-1]+ot+S.padding>=C.width&&(J+=H+S.padding,G[G.length]=C.left),Z[Ve]={left:0,top:0,width:ot,height:H},G[G.length-1]+=ot+S.padding}),Q.height+=J}else{var ee=S.padding,ae=C.columnWidths=[],le=S.padding,X=0,Te=0,Se=H+ee;u.each(C.legendItems,function(Ce,Ve){var ot=y(S,H)+H/2+L.measureText(Ce.text).width;Te+Se>Q.height&&(le+=X+S.padding,ae.push(X),X=0,Te=0),X=Math.max(X,ot),Te+=Se,Z[Ve]={left:0,top:0,width:ot,height:H}}),le+=X,ae.push(X),Q.width+=le}C.width=Q.width,C.height=Q.height},afterFit:h,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var C=this,T=C.options,S=T.labels,k=O.global,L=k.elements.line,A=C.width,U=C.lineWidths;if(T.display){var G,H=C.ctx,K=u.valueOrDefault,ie=K(S.fontColor,k.defaultFontColor),ve=K(S.fontSize,k.defaultFontSize),Z=K(S.fontStyle,k.defaultFontStyle),Q=K(S.fontFamily,k.defaultFontFamily),de=u.fontString(ve,Z,Q);H.textAlign="left",H.textBaseline="middle",H.lineWidth=.5,H.strokeStyle=ie,H.fillStyle=ie,H.font=de;var J=y(S,ve),ee=C.legendHitBoxes,X=C.isHorizontal();G=X?{x:C.left+(A-U[0])/2,y:C.top+S.padding,line:0}:{x:C.left+S.padding,y:C.top+S.padding,line:0};var Te=ve+S.padding;u.each(C.legendItems,function(Se,Ce){var Ve=H.measureText(Se.text).width,tt=J+ve/2+Ve,ot=G.x,st=G.y;X?ot+tt>=A&&(st=G.y+=Te,G.line++,ot=G.x=C.left+(A-U[G.line])/2):st+Te>C.bottom&&(ot=G.x=ot+C.columnWidths[G.line]+S.padding,st=G.y=C.top+S.padding,G.line++),function(Se,Ce,Ve){if(!(isNaN(J)||J<=0)){H.save(),H.fillStyle=K(Ve.fillStyle,k.defaultColor),H.lineCap=K(Ve.lineCap,L.borderCapStyle),H.lineDashOffset=K(Ve.lineDashOffset,L.borderDashOffset),H.lineJoin=K(Ve.lineJoin,L.borderJoinStyle),H.lineWidth=K(Ve.lineWidth,L.borderWidth),H.strokeStyle=K(Ve.strokeStyle,k.defaultColor);var tt=0===K(Ve.lineWidth,L.borderWidth);if(H.setLineDash&&H.setLineDash(K(Ve.lineDash,L.borderDash)),T.labels&&T.labels.usePointStyle){var ot=ve*Math.SQRT2/2,st=ot/Math.SQRT2;u.canvas.drawPoint(H,Ve.pointStyle,ot,Se+st,Ce+st)}else tt||H.strokeRect(Se,Ce,J,ve),H.fillRect(Se,Ce,J,ve);H.restore()}}(ot,st,Se),ee[Ce].left=ot,ee[Ce].top=st,function(Se,Ce,Ve,tt){var ot=ve/2,st=J+ot+Se,Nt=Ce+ot;H.fillText(Ve.text,st,Nt),Ve.hidden&&(H.beginPath(),H.lineWidth=2,H.moveTo(st,Nt),H.lineTo(st+tt,Nt),H.stroke())}(ot,st,Se,Ve),X?G.x+=tt+S.padding:G.y+=Te})}},handleEvent:function(C){var T=this,S=T.options,k="mouseup"===C.type?"click":C.type,L=!1;if("mousemove"===k){if(!S.onHover)return}else{if("click"!==k)return;if(!S.onClick)return}var A=C.x,U=C.y;if(A>=T.left&&A<=T.right&&U>=T.top&&U<=T.bottom)for(var H=T.legendHitBoxes,K=0;K=ie.left&&A<=ie.left+ie.width&&U>=ie.top&&U<=ie.top+ie.height){if("click"===k){S.onClick.call(T,C.native,T.legendItems[K]),L=!0;break}if("mousemove"===k){S.onHover.call(T,C.native,T.legendItems[K]),L=!0;break}}}return L}});function v(C,T){var S=new p({ctx:C.ctx,options:T,chart:C});f.configure(C,S,T),f.addBox(C,S),C.legend=S}he.exports={id:"legend",_element:p,beforeInit:function(C){var T=C.options.legend;T&&v(C,T)},beforeUpdate:function(C){var T=C.options.legend,S=C.legend;T?(u.mergeIf(T,O.global.legend),S?(f.configure(C,S,T),S.options=T):v(C,T)):S&&(f.removeBox(C,S),delete C.legend)},afterEvent:function(C,T){var S=C.legend;S&&S.handleEvent(T)}}},7412:(he,ge,N)=>{"use strict";var O=N(9800),_=N(8839),u=N(3305),f=N(2294),h=u.noop;O._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var y=_.extend({initialize:function(v){u.extend(this,v),this.legendHitBoxes=[]},beforeUpdate:h,update:function(v,C,T){var S=this;return S.beforeUpdate(),S.maxWidth=v,S.maxHeight=C,S.margins=T,S.beforeSetDimensions(),S.setDimensions(),S.afterSetDimensions(),S.beforeBuildLabels(),S.buildLabels(),S.afterBuildLabels(),S.beforeFit(),S.fit(),S.afterFit(),S.afterUpdate(),S.minSize},afterUpdate:h,beforeSetDimensions:h,setDimensions:function(){var v=this;v.isHorizontal()?(v.width=v.maxWidth,v.left=0,v.right=v.width):(v.height=v.maxHeight,v.top=0,v.bottom=v.height),v.paddingLeft=0,v.paddingTop=0,v.paddingRight=0,v.paddingBottom=0,v.minSize={width:0,height:0}},afterSetDimensions:h,beforeBuildLabels:h,buildLabels:h,afterBuildLabels:h,beforeFit:h,fit:function(){var v=this,T=v.options,S=T.display,k=(0,u.valueOrDefault)(T.fontSize,O.global.defaultFontSize),L=v.minSize,A=u.isArray(T.text)?T.text.length:1,U=u.options.toLineHeight(T.lineHeight,k),H=S?A*U+2*T.padding:0;v.isHorizontal()?(L.width=v.maxWidth,L.height=H):(L.width=H,L.height=v.maxHeight),v.width=L.width,v.height=L.height},afterFit:h,isHorizontal:function(){var v=this.options.position;return"top"===v||"bottom"===v},draw:function(){var v=this,C=v.ctx,T=u.valueOrDefault,S=v.options,k=O.global;if(S.display){var J,ee,ae,L=T(S.fontSize,k.defaultFontSize),A=T(S.fontStyle,k.defaultFontStyle),U=T(S.fontFamily,k.defaultFontFamily),H=u.fontString(L,A,U),K=u.options.toLineHeight(S.lineHeight,L),ie=K/2+S.padding,ve=0,Z=v.top,Q=v.left,de=v.bottom,G=v.right;C.fillStyle=T(S.fontColor,k.defaultFontColor),C.font=H,v.isHorizontal()?(ee=Q+(G-Q)/2,ae=Z+ie,J=G-Q):(ee="left"===S.position?Q+ie:G-ie,ae=Z+(de-Z)/2,J=de-Z,ve=Math.PI*("left"===S.position?-.5:.5)),C.save(),C.translate(ee,ae),C.rotate(ve),C.textAlign="center",C.textBaseline="middle";var le=S.text;if(u.isArray(le))for(var X=0,Te=0;Te{"use strict";he.exports=function(ge){var O=ge.Scale.extend({getLabels:function(){var _=this.chart.data;return this.options.labels||(this.isHorizontal()?_.xLabels:_.yLabels)||_.labels},determineDataLimits:function(){var f,_=this,u=_.getLabels();_.minIndex=0,_.maxIndex=u.length-1,void 0!==_.options.ticks.min&&(f=u.indexOf(_.options.ticks.min),_.minIndex=-1!==f?f:_.minIndex),void 0!==_.options.ticks.max&&(f=u.indexOf(_.options.ticks.max),_.maxIndex=-1!==f?f:_.maxIndex),_.min=u[_.minIndex],_.max=u[_.maxIndex]},buildTicks:function(){var _=this,u=_.getLabels();_.ticks=0===_.minIndex&&_.maxIndex===u.length-1?u:u.slice(_.minIndex,_.maxIndex+1)},getLabelForIndex:function(_,u){var f=this,h=f.chart.data,y=f.isHorizontal();return h.yLabels&&!y?f.getRightValue(h.datasets[u].data[_]):f.ticks[_-f.minIndex]},getPixelForValue:function(_,u){var p,f=this,h=f.options.offset,y=Math.max(f.maxIndex+1-f.minIndex-(h?0:1),1);if(null!=_&&(p=f.isHorizontal()?_.x:_.y),void 0!==p||void 0!==_&&isNaN(u)){var C=f.getLabels().indexOf(_=p||_);u=-1!==C?C:u}if(f.isHorizontal()){var T=f.width/y,S=T*(u-f.minIndex);return h&&(S+=T/2),f.left+Math.round(S)}var k=f.height/y,L=k*(u-f.minIndex);return h&&(L+=k/2),f.top+Math.round(L)},getPixelForTick:function(_){return this.getPixelForValue(this.ticks[_],_+this.minIndex,null)},getValueForPixel:function(_){var u=this,f=u.options.offset,y=Math.max(u._ticks.length-(f?0:1),1),p=u.isHorizontal(),v=(p?u.width:u.height)/y;return _-=p?u.left:u.top,f&&(_-=v/2),(_<=0?0:Math.round(_/v))+u.minIndex},getBasePixel:function(){return this.bottom}});ge.scaleService.registerScaleType("category",O,{position:"bottom"})}},1704:(he,ge,N)=>{"use strict";var O=N(9800),_=N(3305),u=N(8347);he.exports=function(f){var h={position:"left",ticks:{callback:u.formatters.linear}},y=f.LinearScaleBase.extend({determineDataLimits:function(){var p=this,v=p.options,C=p.chart,S=C.data.datasets,k=p.isHorizontal();function U(ie){return k?ie.xAxisID===p.id:ie.yAxisID===p.id}p.min=null,p.max=null;var H=v.stacked;if(void 0===H&&_.each(S,function(ie,ve){if(!H){var Z=C.getDatasetMeta(ve);C.isDatasetVisible(ve)&&U(Z)&&void 0!==Z.stack&&(H=!0)}}),v.stacked||H){var K={};_.each(S,function(ie,ve){var Z=C.getDatasetMeta(ve),Q=[Z.type,void 0===v.stacked&&void 0===Z.stack?ve:"",Z.stack].join(".");void 0===K[Q]&&(K[Q]={positiveValues:[],negativeValues:[]});var de=K[Q].positiveValues,G=K[Q].negativeValues;C.isDatasetVisible(ve)&&U(Z)&&_.each(ie.data,function(J,ee){var ae=+p.getRightValue(J);isNaN(ae)||Z.data[ee].hidden||(de[ee]=de[ee]||0,G[ee]=G[ee]||0,v.relativePoints?de[ee]=100:ae<0?G[ee]+=ae:de[ee]+=ae)})}),_.each(K,function(ie){var ve=ie.positiveValues.concat(ie.negativeValues),Z=_.min(ve),Q=_.max(ve);p.min=null===p.min?Z:Math.min(p.min,Z),p.max=null===p.max?Q:Math.max(p.max,Q)})}else _.each(S,function(ie,ve){var Z=C.getDatasetMeta(ve);C.isDatasetVisible(ve)&&U(Z)&&_.each(ie.data,function(Q,de){var G=+p.getRightValue(Q);isNaN(G)||Z.data[de].hidden||((null===p.min||Gp.max)&&(p.max=G))})});p.min=isFinite(p.min)&&!isNaN(p.min)?p.min:0,p.max=isFinite(p.max)&&!isNaN(p.max)?p.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var p,v=this,C=v.options.ticks;if(v.isHorizontal())p=Math.min(C.maxTicksLimit?C.maxTicksLimit:11,Math.ceil(v.width/50));else{var T=_.valueOrDefault(C.fontSize,O.global.defaultFontSize);p=Math.min(C.maxTicksLimit?C.maxTicksLimit:11,Math.ceil(v.height/(2*T)))}return p},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(p,v){return+this.getRightValue(this.chart.data.datasets[v].data[p])},getPixelForValue:function(p){var v=this,C=v.start,T=+v.getRightValue(p),k=v.end-C;return v.isHorizontal()?v.left+v.width/k*(T-C):v.bottom-v.height/k*(T-C)},getValueForPixel:function(p){var v=this,C=v.isHorizontal();return v.start+(C?p-v.left:v.bottom-p)/(C?v.width:v.height)*(v.end-v.start)},getPixelForTick:function(p){return this.getPixelForValue(this.ticksAsNumbers[p])}});f.scaleService.registerScaleType("linear",y,h)}},8351:(he,ge,N)=>{"use strict";var O=N(3305);he.exports=function(u){var f=O.noop;u.LinearScaleBase=u.Scale.extend({getRightValue:function(h){return"string"==typeof h?+h:u.Scale.prototype.getRightValue.call(this,h)},handleTickRangeOptions:function(){var h=this,p=h.options.ticks;if(p.beginAtZero){var v=O.sign(h.min),C=O.sign(h.max);v<0&&C<0?h.max=0:v>0&&C>0&&(h.min=0)}var T=void 0!==p.min||void 0!==p.suggestedMin,S=void 0!==p.max||void 0!==p.suggestedMax;void 0!==p.min?h.min=p.min:void 0!==p.suggestedMin&&(h.min=null===h.min?p.suggestedMin:Math.min(h.min,p.suggestedMin)),void 0!==p.max?h.max=p.max:void 0!==p.suggestedMax&&(h.max=null===h.max?p.suggestedMax:Math.max(h.max,p.suggestedMax)),T!==S&&h.min>=h.max&&(T?h.max=h.min+1:h.min=h.max-1),h.min===h.max&&(h.max++,p.beginAtZero||h.min--)},getTickLimit:f,handleDirectionalChanges:f,buildTicks:function(){var h=this,p=h.options.ticks,v=h.getTickLimit(),C={maxTicks:v=Math.max(2,v),min:p.min,max:p.max,stepSize:O.valueOrDefault(p.fixedStepSize,p.stepSize)},T=h.ticks=function _(u,f){var y,h=[];if(u.stepSize&&u.stepSize>0)y=u.stepSize;else{var p=O.niceNum(f.max-f.min,!1);y=O.niceNum(p/(u.maxTicks-1),!0)}var v=Math.floor(f.min/y)*y,C=Math.ceil(f.max/y)*y;u.min&&u.max&&u.stepSize&&O.almostWhole((u.max-u.min)/u.stepSize,y/1e3)&&(v=u.min,C=u.max);var T=(C-v)/y;T=O.almostEquals(T,Math.round(T),y/1e3)?Math.round(T):Math.ceil(T);var S=1;y<1&&(S=Math.pow(10,y.toString().length-2),v=Math.round(v*S)/S,C=Math.round(C*S)/S),h.push(void 0!==u.min?u.min:v);for(var k=1;k{"use strict";var O=N(3305),_=N(8347);he.exports=function(f){var h={position:"left",ticks:{callback:_.formatters.logarithmic}},y=f.Scale.extend({determineDataLimits:function(){var p=this,v=p.options,C=p.chart,S=C.data.datasets,k=p.isHorizontal();function L(H){return k?H.xAxisID===p.id:H.yAxisID===p.id}p.min=null,p.max=null,p.minNotZero=null;var A=v.stacked;if(void 0===A&&O.each(S,function(H,K){if(!A){var ie=C.getDatasetMeta(K);C.isDatasetVisible(K)&&L(ie)&&void 0!==ie.stack&&(A=!0)}}),v.stacked||A){var U={};O.each(S,function(H,K){var ie=C.getDatasetMeta(K),ve=[ie.type,void 0===v.stacked&&void 0===ie.stack?K:"",ie.stack].join(".");C.isDatasetVisible(K)&&L(ie)&&(void 0===U[ve]&&(U[ve]=[]),O.each(H.data,function(Z,Q){var de=U[ve],G=+p.getRightValue(Z);isNaN(G)||ie.data[Q].hidden||G<0||(de[Q]=de[Q]||0,de[Q]+=G)}))}),O.each(U,function(H){if(H.length>0){var K=O.min(H),ie=O.max(H);p.min=null===p.min?K:Math.min(p.min,K),p.max=null===p.max?ie:Math.max(p.max,ie)}})}else O.each(S,function(H,K){var ie=C.getDatasetMeta(K);C.isDatasetVisible(K)&&L(ie)&&O.each(H.data,function(ve,Z){var Q=+p.getRightValue(ve);isNaN(Q)||ie.data[Z].hidden||Q<0||((null===p.min||Qp.max)&&(p.max=Q),0!==Q&&(null===p.minNotZero||Q0?p.min:p.max<1?Math.pow(10,Math.floor(O.log10(p.max))):1)},buildTicks:function(){var p=this,C=p.options.ticks,T=!p.isHorizontal(),k=p.ticks=function u(f,h){var S,k,y=[],p=O.valueOrDefault,v=p(f.min,Math.pow(10,Math.floor(O.log10(h.min)))),C=Math.floor(O.log10(h.max)),T=Math.ceil(h.max/Math.pow(10,C));0===v?(S=Math.floor(O.log10(h.minNotZero)),k=Math.floor(h.minNotZero/Math.pow(10,S)),y.push(v),v=k*Math.pow(10,S)):(S=Math.floor(O.log10(v)),k=Math.floor(v/Math.pow(10,S)));var L=S<0?Math.pow(10,Math.abs(S)):1;do{y.push(v),10==++k&&(k=1,L=++S>=0?1:L),v=Math.round(k*Math.pow(10,S)*L)/L}while(S{"use strict";var O=N(9800),_=N(3305),u=N(8347);he.exports=function(f){var h=O.global,y={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:u.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(Z){return Z}}};function p(Z){var Q=Z.options;return Q.angleLines.display||Q.pointLabels.display?Z.chart.data.labels.length:0}function v(Z){var Q=Z.options.pointLabels,de=_.valueOrDefault(Q.fontSize,h.defaultFontSize),G=_.valueOrDefault(Q.fontStyle,h.defaultFontStyle),J=_.valueOrDefault(Q.fontFamily,h.defaultFontFamily);return{size:de,style:G,family:J,font:_.fontString(de,G,J)}}function C(Z,Q,de){return _.isArray(de)?{w:_.longestText(Z,Z.font,de),h:de.length*Q+1.5*(de.length-1)*Q}:{w:Z.measureText(de).width,h:Q}}function T(Z,Q,de,G,J){return Z===G||Z===J?{start:Q-de/2,end:Q+de/2}:ZJ?{start:Q-de-5,end:Q}:{start:Q,end:Q+de+5}}function L(Z){return 0===Z||180===Z?"center":Z<180?"left":"right"}function A(Z,Q,de,G){if(_.isArray(Q))for(var J=de.y,ee=1.5*G,ae=0;ae270||Z<90)&&(de.y-=Q.h)}function ie(Z){return _.isNumber(Z)?Z:0}var ve=f.LinearScaleBase.extend({setDimensions:function(){var Z=this,Q=Z.options,de=Q.ticks;Z.width=Z.maxWidth,Z.height=Z.maxHeight,Z.xCenter=Math.round(Z.width/2),Z.yCenter=Math.round(Z.height/2);var G=_.min([Z.height,Z.width]),J=_.valueOrDefault(de.fontSize,h.defaultFontSize);Z.drawingArea=Q.display?G/2-(J/2+de.backdropPaddingY):G/2},determineDataLimits:function(){var Z=this,Q=Z.chart,de=Number.POSITIVE_INFINITY,G=Number.NEGATIVE_INFINITY;_.each(Q.data.datasets,function(J,ee){if(Q.isDatasetVisible(ee)){var ae=Q.getDatasetMeta(ee);_.each(J.data,function(le,X){var Te=+Z.getRightValue(le);isNaN(Te)||ae.data[X].hidden||(de=Math.min(Te,de),G=Math.max(Te,G))})}}),Z.min=de===Number.POSITIVE_INFINITY?0:de,Z.max=G===Number.NEGATIVE_INFINITY?0:G,Z.handleTickRangeOptions()},getTickLimit:function(){var Z=this.options.ticks,Q=_.valueOrDefault(Z.fontSize,h.defaultFontSize);return Math.min(Z.maxTicksLimit?Z.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*Q)))},convertTicksToLabels:function(){var Z=this;f.LinearScaleBase.prototype.convertTicksToLabels.call(Z),Z.pointLabels=Z.chart.data.labels.map(Z.options.pointLabels.callback,Z)},getLabelForIndex:function(Z,Q){return+this.getRightValue(this.chart.data.datasets[Q].data[Z])},fit:function(){this.options.pointLabels.display?function S(Z){var ee,ae,le,Q=v(Z),de=Math.min(Z.height/2,Z.width/2),G={r:Z.width,l:0,t:Z.height,b:0},J={};Z.ctx.font=Q.font,Z._pointLabelSizes=[];var X=p(Z);for(ee=0;eeG.r&&(G.r=Ce.end,J.r=Te),Ve.startG.b&&(G.b=Ve.end,J.b=Te)}Z.setReductions(de,G,J)}(this):function k(Z){var Q=Math.min(Z.height/2,Z.width/2);Z.drawingArea=Math.round(Q),Z.setCenterPoint(0,0,0,0)}(this)},setReductions:function(Z,Q,de){var G=this,J=Q.l/Math.sin(de.l),ee=Math.max(Q.r-G.width,0)/Math.sin(de.r),ae=-Q.t/Math.cos(de.t),le=-Math.max(Q.b-G.height,0)/Math.cos(de.b);J=ie(J),ee=ie(ee),ae=ie(ae),le=ie(le),G.drawingArea=Math.min(Math.round(Z-(J+ee)/2),Math.round(Z-(ae+le)/2)),G.setCenterPoint(J,ee,ae,le)},setCenterPoint:function(Z,Q,de,G){var J=this,le=de+J.drawingArea,X=J.height-G-J.drawingArea;J.xCenter=Math.round((Z+J.drawingArea+(J.width-Q-J.drawingArea))/2+J.left),J.yCenter=Math.round((le+X)/2+J.top)},getIndexAngle:function(Z){return Z*(2*Math.PI/p(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(Z){var Q=this;if(null===Z)return 0;var de=Q.drawingArea/(Q.max-Q.min);return Q.options.ticks.reverse?(Q.max-Z)*de:(Z-Q.min)*de},getPointPosition:function(Z,Q){var G=this.getIndexAngle(Z)-Math.PI/2;return{x:Math.round(Math.cos(G)*Q)+this.xCenter,y:Math.round(Math.sin(G)*Q)+this.yCenter}},getPointPositionForValue:function(Z,Q){return this.getPointPosition(Z,this.getDistanceFromCenterForValue(Q))},getBasePosition:function(){var Z=this,Q=Z.min,de=Z.max;return Z.getPointPositionForValue(0,Z.beginAtZero?0:Q<0&&de<0?de:Q>0&&de>0?Q:0)},draw:function(){var Z=this,Q=Z.options,de=Q.gridLines,G=Q.ticks,J=_.valueOrDefault;if(Q.display){var ee=Z.ctx,ae=this.getIndexAngle(0),le=J(G.fontSize,h.defaultFontSize),X=J(G.fontStyle,h.defaultFontStyle),Te=J(G.fontFamily,h.defaultFontFamily),Se=_.fontString(le,X,Te);_.each(Z.ticks,function(Ce,Ve){if(Ve>0||G.reverse){var tt=Z.getDistanceFromCenterForValue(Z.ticksAsNumbers[Ve]);if(de.display&&0!==Ve&&function K(Z,Q,de,G){var J=Z.ctx;if(J.strokeStyle=_.valueAtIndexOrDefault(Q.color,G-1),J.lineWidth=_.valueAtIndexOrDefault(Q.lineWidth,G-1),Z.options.gridLines.circular)J.beginPath(),J.arc(Z.xCenter,Z.yCenter,de,0,2*Math.PI),J.closePath(),J.stroke();else{var ee=p(Z);if(0===ee)return;J.beginPath();var ae=Z.getPointPosition(0,de);J.moveTo(ae.x,ae.y);for(var le=1;le=0;le--){if(G.display){var X=Z.getPointPosition(le,ee);Q.beginPath(),Q.moveTo(Z.xCenter,Z.yCenter),Q.lineTo(X.x,X.y),Q.stroke(),Q.closePath()}if(J.display){var Te=Z.getPointPosition(le,ee+5),Se=_.valueAtIndexOrDefault(J.fontColor,le,h.defaultFontColor);Q.font=ae.font,Q.fillStyle=Se;var Ce=Z.getIndexAngle(le),Ve=_.toDegrees(Ce);Q.textAlign=L(Ve),U(Ve,Z._pointLabelSizes[le],Te),A(Q,Z.pointLabels[le]||"",Te,ae.size)}}}(Z)}}});f.scaleService.registerScaleType("radialLinear",ve,y)}},4215:(he,ge,N)=>{"use strict";var O=N(5439);O="function"==typeof O?O:window.moment;var _=N(9800),u=N(3305),f=Number.MIN_SAFE_INTEGER||-9007199254740991,h=Number.MAX_SAFE_INTEGER||9007199254740991,y={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},p=Object.keys(y);function v(G,J){return G-J}function C(G){var ae,le,X,J={},ee=[];for(ae=0,le=G.length;ae=0&&ae<=le;){if(Se=G[X=ae+le>>1],!(Te=G[X-1]||null))return{lo:null,hi:Se};if(Se[J]ee))return{lo:Te,hi:Se};le=X-1}}return{lo:Se,hi:null}}(G,J,ee),X=le.lo?le.hi?le.lo:G[G.length-2]:G[0],Te=le.lo?le.hi?le.hi:G[G.length-1]:G[1],Se=Te[J]-X[J];return X[ae]+(Te[ae]-X[ae])*(Se?(ee-X[J])/Se:0)}function L(G,J){var ee=J.parser,ae=J.parser||J.format;return"function"==typeof ee?ee(G):"string"==typeof G&&"string"==typeof ae?O(G,ae):(G instanceof O||(G=O(G)),G.isValid()?G:"function"==typeof ae?ae(G):G)}function A(G,J){if(u.isNullOrUndef(G))return null;var ee=J.options.time,ae=L(J.getRightValue(G),ee);return ae.isValid()?(ee.round&&ae.startOf(ee.round),ae.valueOf()):null}function ie(G){for(var J=p.indexOf(G)+1,ee=p.length;J=le&&st<=X&&Ve.push(st);return ae.min=le,ae.max=X,ae._unit=Se.unit||function K(G,J,ee,ae){var Te,Se,le=O.duration(O(ae).diff(O(ee)));for(Te=p.length-1;Te>=p.indexOf(J);Te--)if(y[Se=p[Te]].common&&le.as(Se)>=G.length)return Se;return p[J?p.indexOf(J):0]}(Ve,Se.minUnit,ae.min,ae.max),ae._majorUnit=ie(ae._unit),ae._table=function T(G,J,ee,ae){if("linear"===ae||!G.length)return[{time:J,pos:0},{time:ee,pos:1}];var Te,Se,Ce,Ve,tt,le=[],X=[J];for(Te=0,Se=G.length;TeJ&&Ve1?J[1]:ae,"pos")-k(G,"time",Ce,"pos"))/2),le.time.max||(Ce=J.length>1?J[J.length-2]:ee,Te=(k(G,"time",J[J.length-1],"pos")-k(G,"time",Ce,"pos"))/2)),{left:X,right:Te}}(ae._table,Ve,le,X,Te),ae._labelFormat=function de(G,J){var ee,ae,le,X=G.length;for(ee=0;ee=0&&ae0?Ve:1}});G.scaleService.registerScaleType("time",ee,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},3207:(he,ge,N)=>{var O=N(9914);function _(Q){if(Q){var le=[0,0,0],X=1,Te=Q.match(/^#([a-fA-F0-9]{3})$/i);if(Te){Te=Te[1];for(var Se=0;Se{var O=N(7227),_=N(3207),u=function(f){return f instanceof u?f:this instanceof u?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof f?(h=_.getRgba(f))?this.setValues("rgb",h):(h=_.getHsla(f))?this.setValues("hsl",h):(h=_.getHwb(f))&&this.setValues("hwb",h):"object"==typeof f&&(void 0!==(h=f).r||void 0!==h.red?this.setValues("rgb",h):void 0!==h.l||void 0!==h.lightness?this.setValues("hsl",h):void 0!==h.v||void 0!==h.value?this.setValues("hsv",h):void 0!==h.w||void 0!==h.whiteness?this.setValues("hwb",h):(void 0!==h.c||void 0!==h.cyan)&&this.setValues("cmyk",h)))):new u(f);var h};u.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var f=this.values;return 1!==f.alpha?f.hwb.concat([f.alpha]):f.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var f=this.values;return f.rgb.concat([f.alpha])},hslaArray:function(){var f=this.values;return f.hsl.concat([f.alpha])},alpha:function(f){return void 0===f?this.values.alpha:(this.setValues("alpha",f),this)},red:function(f){return this.setChannel("rgb",0,f)},green:function(f){return this.setChannel("rgb",1,f)},blue:function(f){return this.setChannel("rgb",2,f)},hue:function(f){return f&&(f=(f%=360)<0?360+f:f),this.setChannel("hsl",0,f)},saturation:function(f){return this.setChannel("hsl",1,f)},lightness:function(f){return this.setChannel("hsl",2,f)},saturationv:function(f){return this.setChannel("hsv",1,f)},whiteness:function(f){return this.setChannel("hwb",1,f)},blackness:function(f){return this.setChannel("hwb",2,f)},value:function(f){return this.setChannel("hsv",2,f)},cyan:function(f){return this.setChannel("cmyk",0,f)},magenta:function(f){return this.setChannel("cmyk",1,f)},yellow:function(f){return this.setChannel("cmyk",2,f)},black:function(f){return this.setChannel("cmyk",3,f)},hexString:function(){return _.hexString(this.values.rgb)},rgbString:function(){return _.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return _.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return _.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return _.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return _.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return _.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return _.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var f=this.values.rgb;return f[0]<<16|f[1]<<8|f[2]},luminosity:function(){for(var f=this.values.rgb,h=[],y=0;yy?(h+.05)/(y+.05):(y+.05)/(h+.05)},level:function(f){var h=this.contrast(f);return h>=7.1?"AAA":h>=4.5?"AA":""},dark:function(){var f=this.values.rgb;return(299*f[0]+587*f[1]+114*f[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var f=[],h=0;h<3;h++)f[h]=255-this.values.rgb[h];return this.setValues("rgb",f),this},lighten:function(f){var h=this.values.hsl;return h[2]+=h[2]*f,this.setValues("hsl",h),this},darken:function(f){var h=this.values.hsl;return h[2]-=h[2]*f,this.setValues("hsl",h),this},saturate:function(f){var h=this.values.hsl;return h[1]+=h[1]*f,this.setValues("hsl",h),this},desaturate:function(f){var h=this.values.hsl;return h[1]-=h[1]*f,this.setValues("hsl",h),this},whiten:function(f){var h=this.values.hwb;return h[1]+=h[1]*f,this.setValues("hwb",h),this},blacken:function(f){var h=this.values.hwb;return h[2]+=h[2]*f,this.setValues("hwb",h),this},greyscale:function(){var f=this.values.rgb,h=.3*f[0]+.59*f[1]+.11*f[2];return this.setValues("rgb",[h,h,h]),this},clearer:function(f){var h=this.values.alpha;return this.setValues("alpha",h-h*f),this},opaquer:function(f){var h=this.values.alpha;return this.setValues("alpha",h+h*f),this},rotate:function(f){var h=this.values.hsl,y=(h[0]+f)%360;return h[0]=y<0?360+y:y,this.setValues("hsl",h),this},mix:function(f,h){var y=this,p=f,v=void 0===h?.5:h,C=2*v-1,T=y.alpha()-p.alpha(),S=((C*T==-1?C:(C+T)/(1+C*T))+1)/2,k=1-S;return this.rgb(S*y.red()+k*p.red(),S*y.green()+k*p.green(),S*y.blue()+k*p.blue()).alpha(y.alpha()*v+p.alpha()*(1-v))},toJSON:function(){return this.rgb()},clone:function(){var p,v,f=new u,h=this.values,y=f.values;for(var C in h)h.hasOwnProperty(C)&&("[object Array]"===(v={}.toString.call(p=h[C]))?y[C]=p.slice(0):"[object Number]"===v?y[C]=p:console.error("unexpected color value:",p));return f}},u.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},u.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},u.prototype.getValues=function(f){for(var h=this.values,y={},p=0;p{function ge(W){var _e,De,re=W[0]/255,ne=W[1]/255,me=W[2]/255,fe=Math.min(re,ne,me),ue=Math.max(re,ne,me),be=ue-fe;return ue==fe?_e=0:re==ue?_e=(ne-me)/be:ne==ue?_e=2+(me-re)/be:me==ue&&(_e=4+(re-ne)/be),(_e=Math.min(60*_e,360))<0&&(_e+=360),De=(fe+ue)/2,[_e,100*(ue==fe?0:De<=.5?be/(ue+fe):be/(2-ue-fe)),100*De]}function N(W){var _e,Me,re=W[0],ne=W[1],me=W[2],fe=Math.min(re,ne,me),ue=Math.max(re,ne,me),be=ue-fe;return Me=0==ue?0:be/ue*1e3/10,ue==fe?_e=0:re==ue?_e=(ne-me)/be:ne==ue?_e=2+(me-re)/be:me==ue&&(_e=4+(re-ne)/be),(_e=Math.min(60*_e,360))<0&&(_e+=360),[_e,Me,ue/255*1e3/10]}function O(W){var re=W[0],ne=W[1],ue=W[2];return[ge(W)[0],1/255*Math.min(re,Math.min(ne,ue))*100,100*(ue=1-1/255*Math.max(re,Math.max(ne,ue)))]}function _(W){var _e,re=W[0]/255,ne=W[1]/255,me=W[2]/255;return[100*((1-re-(_e=Math.min(1-re,1-ne,1-me)))/(1-_e)||0),100*((1-ne-_e)/(1-_e)||0),100*((1-me-_e)/(1-_e)||0),100*_e]}function u(W){return or[JSON.stringify(W)]}function f(W){var re=W[0]/255,ne=W[1]/255,me=W[2]/255;return[100*(.4124*(re=re>.04045?Math.pow((re+.055)/1.055,2.4):re/12.92)+.3576*(ne=ne>.04045?Math.pow((ne+.055)/1.055,2.4):ne/12.92)+.1805*(me=me>.04045?Math.pow((me+.055)/1.055,2.4):me/12.92)),100*(.2126*re+.7152*ne+.0722*me),100*(.0193*re+.1192*ne+.9505*me)]}function h(W){var re=f(W),ne=re[0],me=re[1],fe=re[2];return me/=100,fe/=108.883,ne=(ne/=95.047)>.008856?Math.pow(ne,1/3):7.787*ne+16/116,[116*(me=me>.008856?Math.pow(me,1/3):7.787*me+16/116)-16,500*(ne-me),200*(me-(fe=fe>.008856?Math.pow(fe,1/3):7.787*fe+16/116))]}function p(W){var fe,ue,be,_e,Me,re=W[0]/360,ne=W[1]/100,me=W[2]/100;if(0==ne)return[Me=255*me,Me,Me];fe=2*me-(ue=me<.5?me*(1+ne):me+ne-me*ne),_e=[0,0,0];for(var De=0;De<3;De++)(be=re+1/3*-(De-1))<0&&be++,be>1&&be--,_e[De]=255*(Me=6*be<1?fe+6*(ue-fe)*be:2*be<1?ue:3*be<2?fe+(ue-fe)*(2/3-be)*6:fe);return _e}function k(W){var re=W[0]/60,ne=W[1]/100,Me=W[2]/100,me=Math.floor(re)%6,fe=re-Math.floor(re),ue=255*Me*(1-ne),be=255*Me*(1-ne*fe),_e=255*Me*(1-ne*(1-fe));switch(Me*=255,me){case 0:return[Me,_e,ue];case 1:return[be,Me,ue];case 2:return[ue,Me,_e];case 3:return[ue,be,Me];case 4:return[_e,ue,Me];case 5:return[Me,ue,be]}}function K(W){var ue,be,_e,Me,re=W[0]/360,ne=W[1]/100,me=W[2]/100,fe=ne+me;switch(fe>1&&(ne/=fe,me/=fe),_e=6*re-(ue=Math.floor(6*re)),0!=(1&ue)&&(_e=1-_e),Me=ne+_e*((be=1-me)-ne),ue){default:case 6:case 0:r=be,g=Me,b=ne;break;case 1:r=Me,g=be,b=ne;break;case 2:r=ne,g=be,b=Me;break;case 3:r=ne,g=Me,b=be;break;case 4:r=Me,g=ne,b=be;break;case 5:r=be,g=ne,b=Me}return[255*r,255*g,255*b]}function de(W){var ne=W[1]/100,me=W[2]/100,fe=W[3]/100;return[255*(1-Math.min(1,W[0]/100*(1-fe)+fe)),255*(1-Math.min(1,ne*(1-fe)+fe)),255*(1-Math.min(1,me*(1-fe)+fe))]}function le(W){var fe,ue,be,re=W[0]/100,ne=W[1]/100,me=W[2]/100;return ue=-.9689*re+1.8758*ne+.0415*me,be=.0557*re+-.204*ne+1.057*me,fe=(fe=3.2406*re+-1.5372*ne+-.4986*me)>.0031308?1.055*Math.pow(fe,1/2.4)-.055:fe*=12.92,ue=ue>.0031308?1.055*Math.pow(ue,1/2.4)-.055:ue*=12.92,be=be>.0031308?1.055*Math.pow(be,1/2.4)-.055:be*=12.92,[255*(fe=Math.min(Math.max(0,fe),1)),255*(ue=Math.min(Math.max(0,ue),1)),255*(be=Math.min(Math.max(0,be),1))]}function X(W){var re=W[0],ne=W[1],me=W[2];return ne/=100,me/=108.883,re=(re/=95.047)>.008856?Math.pow(re,1/3):7.787*re+16/116,[116*(ne=ne>.008856?Math.pow(ne,1/3):7.787*ne+16/116)-16,500*(re-ne),200*(ne-(me=me>.008856?Math.pow(me,1/3):7.787*me+16/116))]}function Se(W){var fe,ue,be,_e,re=W[0],ne=W[1],me=W[2];return re<=8?_e=(ue=100*re/903.3)/100*7.787+16/116:(ue=100*Math.pow((re+16)/116,3),_e=Math.pow(ue/100,1/3)),[fe=fe/95.047<=.008856?fe=95.047*(ne/500+_e-16/116)/7.787:95.047*Math.pow(ne/500+_e,3),ue,be=be/108.883<=.008859?be=108.883*(_e-me/200-16/116)/7.787:108.883*Math.pow(_e-me/200,3)]}function Ce(W){var ue,re=W[0],ne=W[1],me=W[2];return(ue=360*Math.atan2(me,ne)/2/Math.PI)<0&&(ue+=360),[re,Math.sqrt(ne*ne+me*me),ue]}function Ve(W){return le(Se(W))}function tt(W){var be,ne=W[1];return be=W[2]/360*2*Math.PI,[W[0],ne*Math.cos(be),ne*Math.sin(be)]}function Nt(W){return Ii[W]}he.exports={rgb2hsl:ge,rgb2hsv:N,rgb2hwb:O,rgb2cmyk:_,rgb2keyword:u,rgb2xyz:f,rgb2lab:h,rgb2lch:function y(W){return Ce(h(W))},hsl2rgb:p,hsl2hsv:function v(W){var ne=W[1]/100,me=W[2]/100;return 0===me?[0,0,0]:[W[0],2*(ne*=(me*=2)<=1?me:2-me)/(me+ne)*100,(me+ne)/2*100]},hsl2hwb:function C(W){return O(p(W))},hsl2cmyk:function T(W){return _(p(W))},hsl2keyword:function S(W){return u(p(W))},hsv2rgb:k,hsv2hsl:function L(W){var fe,ue,ne=W[1]/100,me=W[2]/100;return fe=ne*me,[W[0],100*(fe=(fe/=(ue=(2-ne)*me)<=1?ue:2-ue)||0),100*(ue/=2)]},hsv2hwb:function A(W){return O(k(W))},hsv2cmyk:function U(W){return _(k(W))},hsv2keyword:function H(W){return u(k(W))},hwb2rgb:K,hwb2hsl:function ie(W){return ge(K(W))},hwb2hsv:function ve(W){return N(K(W))},hwb2cmyk:function Z(W){return _(K(W))},hwb2keyword:function Q(W){return u(K(W))},cmyk2rgb:de,cmyk2hsl:function G(W){return ge(de(W))},cmyk2hsv:function J(W){return N(de(W))},cmyk2hwb:function ee(W){return O(de(W))},cmyk2keyword:function ae(W){return u(de(W))},keyword2rgb:Nt,keyword2hsl:function en(W){return ge(Nt(W))},keyword2hsv:function Gn(W){return N(Nt(W))},keyword2hwb:function In(W){return O(Nt(W))},keyword2cmyk:function Bn(W){return _(Nt(W))},keyword2lab:function $e(W){return h(Nt(W))},keyword2xyz:function Ei(W){return f(Nt(W))},xyz2rgb:le,xyz2lab:X,xyz2lch:function Te(W){return Ce(X(W))},lab2xyz:Se,lab2rgb:Ve,lab2lch:Ce,lch2lab:tt,lch2xyz:function ot(W){return Se(tt(W))},lch2rgb:function st(W){return Ve(tt(W))}};var Ii={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},or={};for(var Ze in Ii)or[JSON.stringify(Ii[Ze])]=Ze},7227:(he,ge,N)=>{var O=N(4126),_=function(){return new p};for(var u in O){_[u+"Raw"]=function(v){return function(C){return"number"==typeof C&&(C=Array.prototype.slice.call(arguments)),O[v](C)}}(u);var f=/(\w+)2(\w+)/.exec(u),h=f[1],y=f[2];(_[h]=_[h]||{})[y]=_[u]=function(v){return function(C){"number"==typeof C&&(C=Array.prototype.slice.call(arguments));var T=O[v](C);if("string"==typeof T||void 0===T)return T;for(var S=0;S{he.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},7088:function(he,ge,N){!function(O){"use strict";O.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(u){return/^nm$/i.test(u)},meridiem:function(u,f,h){return u<12?h?"vm":"VM":h?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(u){return u+(1===u||8===u||u>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},2502:function(he,ge,N){!function(O){"use strict";O.defineLocale("ar-dz",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:4}})}(N(5439))},128:function(he,ge,N){!function(O){"use strict";O.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}})}(N(5439))},4519:function(he,ge,N){!function(O){"use strict";var _={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},u=function(v){return 0===v?0:1===v?1:2===v?2:v%100>=3&&v%100<=10?3:v%100>=11?4:5},f={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},h=function(v){return function(C,T,S,k){var L=u(C),A=f[v][u(C)];return 2===L&&(A=A[T?0:1]),A.replace(/%d/i,C)}},y=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];O.defineLocale("ar-ly",{months:y,monthsShort:y,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(v){return"\u0645"===v},meridiem:function(v,C,T){return v<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:h("s"),ss:h("s"),m:h("m"),mm:h("m"),h:h("h"),hh:h("h"),d:h("d"),dd:h("d"),M:h("M"),MM:h("M"),y:h("y"),yy:h("y")},preparse:function(v){return v.replace(/\u060c/g,",")},postformat:function(v){return v.replace(/\d/g,function(C){return _[C]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(N(5439))},5443:function(he,ge,N){!function(O){"use strict";O.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:6,doy:12}})}(N(5439))},7642:function(he,ge,N){!function(O){"use strict";var _={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},u={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};O.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(h){return"\u0645"===h},meridiem:function(h,y,p){return h<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(h){return h.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(y){return u[y]}).replace(/\u060c/g,",")},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(N(5439))},8592:function(he,ge,N){!function(O){"use strict";O.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}(N(5439))},7038:function(he,ge,N){!function(O){"use strict";var _={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},u={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},f=function(C){return 0===C?0:1===C?1:2===C?2:C%100>=3&&C%100<=10?3:C%100>=11?4:5},h={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},y=function(C){return function(T,S,k,L){var A=f(T),U=h[C][f(T)];return 2===A&&(U=U[S?0:1]),U.replace(/%d/i,T)}},p=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];O.defineLocale("ar",{months:p,monthsShort:p,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(C){return"\u0645"===C},meridiem:function(C,T,S){return C<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:y("s"),ss:y("s"),m:y("m"),mm:y("m"),h:y("h"),hh:y("h"),d:y("d"),dd:y("d"),M:y("M"),MM:y("M"),y:y("y"),yy:y("y")},preparse:function(C){return C.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(T){return u[T]}).replace(/\u060c/g,",")},postformat:function(C){return C.replace(/\d/g,function(T){return _[T]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(N(5439))},1213:function(he,ge,N){!function(O){"use strict";var _={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};O.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"birne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(f){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(f)},meridiem:function(f,h,y){return f<4?"gec\u0259":f<12?"s\u0259h\u0259r":f<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(f){if(0===f)return f+"-\u0131nc\u0131";var h=f%10;return f+(_[h]||_[f%100-h]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},9191:function(he,ge,N){!function(O){"use strict";function u(h,y,p){return"m"===p?y?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===p?y?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":h+" "+function _(h,y){var p=h.split("_");return y%10==1&&y%100!=11?p[0]:y%10>=2&&y%10<=4&&(y%100<10||y%100>=20)?p[1]:p[2]}({ss:y?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:y?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:y?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[p],+h)}O.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:u,mm:u,h:u,hh:u,d:"\u0434\u0437\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(h){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(h)},meridiem:function(h,y,p){return h<4?"\u043d\u043e\u0447\u044b":h<12?"\u0440\u0430\u043d\u0456\u0446\u044b":h<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(h,y){switch(y){case"M":case"d":case"DDD":case"w":case"W":return h%10!=2&&h%10!=3||h%100==12||h%100==13?h+"-\u044b":h+"-\u0456";case"D":return h+"-\u0433\u0430";default:return h}},week:{dow:1,doy:7}})}(N(5439))},322:function(he,ge,N){!function(O){"use strict";O.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u043d\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(u){var f=u%10,h=u%100;return 0===u?u+"-\u0435\u0432":0===h?u+"-\u0435\u043d":h>10&&h<20?u+"-\u0442\u0438":1===f?u+"-\u0432\u0438":2===f?u+"-\u0440\u0438":7===f||8===f?u+"-\u043c\u0438":u+"-\u0442\u0438"},week:{dow:1,doy:7}})}(N(5439))},8042:function(he,ge,N){!function(O){"use strict";O.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(N(5439))},9620:function(he,ge,N){!function(O){"use strict";var _={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},u={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};O.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(h){return h.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u09b0\u09be\u09a4"===y&&h>=4||"\u09a6\u09c1\u09aa\u09c1\u09b0"===y&&h<5||"\u09ac\u09bf\u0995\u09be\u09b2"===y?h+12:h},meridiem:function(h,y,p){return h<4?"\u09b0\u09be\u09a4":h<10?"\u09b8\u0995\u09be\u09b2":h<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":h<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(N(5439))},9645:function(he,ge,N){!function(O){"use strict";var _={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},u={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};O.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(h){return h.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===y&&h>=4||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===y&&h<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===y?h+12:h},meridiem:function(h,y,p){return h<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":h<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":h<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":h<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}})}(N(5439))},5020:function(he,ge,N){!function(O){"use strict";function _(v,C,T){return v+" "+function h(v,C){return 2===C?function y(v){var C={m:"v",b:"v",d:"z"};return void 0===C[v.charAt(0)]?v:C[v.charAt(0)]+v.substring(1)}(v):v}({mm:"munutenn",MM:"miz",dd:"devezh"}[T],v)}function f(v){return v>9?f(v%10):v}O.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:_,h:"un eur",hh:"%d eur",d:"un devezh",dd:_,M:"ur miz",MM:_,y:"ur bloaz",yy:function u(v){switch(f(v)){case 1:case 3:case 4:case 5:case 9:return v+" bloaz";default:return v+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(v){return v+(1===v?"a\xf1":"vet")},week:{dow:1,doy:4}})}(N(5439))},4792:function(he,ge,N){!function(O){"use strict";function _(f,h,y){var p=f+" ";switch(y){case"ss":return p+(1===f?"sekunda":2===f||3===f||4===f?"sekunde":"sekundi");case"m":return h?"jedna minuta":"jedne minute";case"mm":return p+(1===f?"minuta":2===f||3===f||4===f?"minute":"minuta");case"h":return h?"jedan sat":"jednog sata";case"hh":return p+(1===f?"sat":2===f||3===f||4===f?"sata":"sati");case"dd":return p+(1===f?"dan":"dana");case"MM":return p+(1===f?"mjesec":2===f||3===f||4===f?"mjeseca":"mjeseci");case"yy":return p+(1===f?"godina":2===f||3===f||4===f?"godine":"godina")}}O.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:_,m:_,mm:_,h:_,hh:_,d:"dan",dd:_,M:"mjesec",MM:_,y:"godinu",yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},7980:function(he,ge,N){!function(O){"use strict";O.defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(u,f){var h=1===u?"r":2===u?"n":3===u?"r":4===u?"t":"\xe8";return("w"===f||"W"===f)&&(h="a"),u+h},week:{dow:1,doy:4}})}(N(5439))},7322:function(he,ge,N){!function(O){"use strict";var _="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),u="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_");function f(p){return p>1&&p<5&&1!=~~(p/10)}function h(p,v,C,T){var S=p+" ";switch(C){case"s":return v||T?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return v||T?S+(f(p)?"sekundy":"sekund"):S+"sekundami";case"m":return v?"minuta":T?"minutu":"minutou";case"mm":return v||T?S+(f(p)?"minuty":"minut"):S+"minutami";case"h":return v?"hodina":T?"hodinu":"hodinou";case"hh":return v||T?S+(f(p)?"hodiny":"hodin"):S+"hodinami";case"d":return v||T?"den":"dnem";case"dd":return v||T?S+(f(p)?"dny":"dn\xed"):S+"dny";case"M":return v||T?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return v||T?S+(f(p)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):S+"m\u011bs\xedci";case"y":return v||T?"rok":"rokem";case"yy":return v||T?S+(f(p)?"roky":"let"):S+"lety"}}O.defineLocale("cs",{months:_,monthsShort:u,monthsParse:function(p,v){var C,T=[];for(C=0;C<12;C++)T[C]=new RegExp("^"+p[C]+"$|^"+v[C]+"$","i");return T}(_,u),shortMonthsParse:function(p){var v,C=[];for(v=0;v<12;v++)C[v]=new RegExp("^"+p[v]+"$","i");return C}(u),longMonthsParse:function(p){var v,C=[];for(v=0;v<12;v++)C[v]=new RegExp("^"+p[v]+"$","i");return C}(_),weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},365:function(he,ge,N){!function(O){"use strict";O.defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(u){return u+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(u)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(u)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}})}(N(5439))},2092:function(he,ge,N){!function(O){"use strict";O.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(u){var h="";return u>20?h=40===u||50===u||60===u||80===u||100===u?"fed":"ain":u>0&&(h=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][u]),u+h},week:{dow:1,doy:4}})}(N(5439))},7387:function(he,ge,N){!function(O){"use strict";O.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},9459:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?v[y][0]:v[y][1]}O.defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:_,mm:"%d Minuten",h:_,hh:"%d Stunden",d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3694:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?v[y][0]:v[y][1]}O.defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:_,mm:"%d Minuten",h:_,hh:"%d Stunden",d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},4307:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?v[y][0]:v[y][1]}O.defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:_,mm:"%d Minuten",h:_,hh:"%d Stunden",d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},9659:function(he,ge,N){!function(O){"use strict";var _=["\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9","\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9","\u0789\u07a7\u0783\u07a8\u0797\u07aa","\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa","\u0789\u07ad","\u0796\u07ab\u0782\u07b0","\u0796\u07aa\u078d\u07a6\u0787\u07a8","\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa","\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa","\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa"],u=["\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6","\u0780\u07af\u0789\u07a6","\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6","\u0784\u07aa\u078b\u07a6","\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8","\u0780\u07aa\u0786\u07aa\u0783\u07aa","\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa"];O.defineLocale("dv",{months:_,monthsShort:_,weekdays:u,weekdaysShort:u,weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(h){return"\u0789\u078a"===h},meridiem:function(h,y,p){return h<12?"\u0789\u0786":"\u0789\u078a"},calendar:{sameDay:"[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT",nextDay:"[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT",nextWeek:"dddd LT",lastDay:"[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT",lastWeek:"[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT",sameElse:"L"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",ss:"d% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:7,doy:12}})}(N(5439))},3460:function(he,ge,N){!function(O){"use strict";O.defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(f,h){return f?"string"==typeof h&&/D/.test(h.substring(0,h.indexOf("MMMM")))?this._monthsGenitiveEl[f.month()]:this._monthsNominativeEl[f.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(f,h,y){return f>11?y?"\u03bc\u03bc":"\u039c\u039c":y?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(f){return"\u03bc"===(f+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){return 6===this.day()?"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT":"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"},sameElse:"L"},calendar:function(f,h){var y=this._calendarEl[f],p=h&&h.hours();return function _(f){return f instanceof Function||"[object Function]"===Object.prototype.toString.call(f)}(y)&&(y=y.apply(h)),y.replace("{}",p%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}})}(N(5439))},4369:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},530:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")}})}(N(5439))},9998:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},3391:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},5414:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")}})}(N(5439))},1248:function(he,ge,N){!function(O){"use strict";O.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},4530:function(he,ge,N){!function(O){"use strict";O.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(u){return"p"===u.charAt(0).toLowerCase()},meridiem:function(u,f,h){return u>11?h?"p.t.m.":"P.T.M.":h?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(N(5439))},8944:function(he,ge,N){!function(O){"use strict";var _="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),f=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],h=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;O.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},3609:function(he,ge,N){!function(O){"use strict";var _="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");O.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(h,y){return h?/-MMM-/.test(y)?u[h.month()]:_[h.month()]:_},monthsParseExact:!0,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"MMMM [de] D [de] YYYY",LLL:"MMMM [de] D [de] YYYY h:mm A",LLLL:"dddd, MMMM [de] D [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:6}})}(N(5439))},6866:function(he,ge,N){!function(O){"use strict";var _="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),f=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],h=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;O.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},6725:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],ss:[f+"sekundi",f+"sekundit"],m:["\xfche minuti","\xfcks minut"],mm:[f+" minuti",f+" minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:[f+" tunni",f+" tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:[f+" kuu",f+" kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:[f+" aasta",f+" aastat"]};return h?v[y][2]?v[y][2]:v[y][1]:p?v[y][0]:v[y][1]}O.defineLocale("et",{months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[T\xe4na,] LT",nextDay:"[Homme,] LT",nextWeek:"[J\xe4rgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:"%d p\xe4eva",M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},7931:function(he,ge,N){!function(O){"use strict";O.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6417:function(he,ge,N){!function(O){"use strict";var _={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},u={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};O.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(h){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(h)},meridiem:function(h,y,p){return h<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"\u062b\u0627\u0646\u06cc\u0647 d%",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/[\u06f0-\u06f9]/g,function(y){return u[y]}).replace(/\u060c/g,",")},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}})}(N(5439))},944:function(he,ge,N){!function(O){"use strict";var _="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),u=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",_[7],_[8],_[9]];function f(p,v,C,T){var S="";switch(C){case"s":return T?"muutaman sekunnin":"muutama sekunti";case"ss":return T?"sekunnin":"sekuntia";case"m":return T?"minuutin":"minuutti";case"mm":S=T?"minuutin":"minuuttia";break;case"h":return T?"tunnin":"tunti";case"hh":S=T?"tunnin":"tuntia";break;case"d":return T?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":S=T?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return T?"kuukauden":"kuukausi";case"MM":S=T?"kuukauden":"kuukautta";break;case"y":return T?"vuoden":"vuosi";case"yy":S=T?"vuoden":"vuotta"}return function h(p,v){return p<10?v?u[p]:_[p]:p}(p,T)+" "+S}O.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:f,ss:f,m:f,mm:f,h:f,hh:f,d:f,dd:f,M:f,MM:f,y:f,yy:f},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},5867:function(he,ge,N){!function(O){"use strict";O.defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minutt",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0i",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},6848:function(he,ge,N){!function(O){"use strict";O.defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(u,f){switch(f){default:case"M":case"Q":case"D":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}}})}(N(5439))},7773:function(he,ge,N){!function(O){"use strict";O.defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(u,f){switch(f){default:case"M":case"Q":case"D":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}},week:{dow:1,doy:4}})}(N(5439))},1636:function(he,ge,N){!function(O){"use strict";O.defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(u,f){switch(f){case"D":return u+(1===u?"er":"");default:case"M":case"Q":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}},week:{dow:1,doy:4}})}(N(5439))},4940:function(he,ge,N){!function(O){"use strict";var _="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),u="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");O.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(h,y){return h?/-MMM-/.test(y)?u[h.month()]:_[h.month()]:_},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(h){return h+(1===h||8===h||h>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},6924:function(he,ge,N){!function(O){"use strict";O.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(v){return v+(1===v?"d":v%10==2?"na":"mh")},week:{dow:1,doy:4}})}(N(5439))},6398:function(he,ge,N){!function(O){"use strict";O.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(u){return 0===u.indexOf("un")?"n"+u:"en "+u},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},2545:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v={s:["thodde secondanim","thodde second"],ss:[f+" secondanim",f+" second"],m:["eka mintan","ek minute"],mm:[f+" mintanim",f+" mintam"],h:["eka horan","ek hor"],hh:[f+" horanim",f+" horam"],d:["eka disan","ek dis"],dd:[f+" disanim",f+" dis"],M:["eka mhoinean","ek mhoino"],MM:[f+" mhoineanim",f+" mhoine"],y:["eka vorsan","ek voros"],yy:[f+" vorsanim",f+" vorsam"]};return h?v[y][0]:v[y][1]}O.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(f,h){return"D"===h?f+"er":f},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(f,h){return 12===f&&(f=0),"rati"===h?f<4?f:f+12:"sokalli"===h?f:"donparam"===h?f>12?f:f+12:"sanje"===h?f+12:void 0},meridiem:function(f,h,y){return f<4?"rati":f<12?"sokalli":f<16?"donparam":f<20?"sanje":"rati"}})}(N(5439))},2641:function(he,ge,N){!function(O){"use strict";var _={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},u={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};O.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(h){return h.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0ab0\u0abe\u0aa4"===y?h<4?h:h+12:"\u0ab8\u0ab5\u0abe\u0ab0"===y?h:"\u0aac\u0aaa\u0acb\u0ab0"===y?h>=10?h:h+12:"\u0ab8\u0abe\u0a82\u0a9c"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0ab0\u0abe\u0aa4":h<10?"\u0ab8\u0ab5\u0abe\u0ab0":h<17?"\u0aac\u0aaa\u0acb\u0ab0":h<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}})}(N(5439))},7536:function(he,ge,N){!function(O){"use strict";O.defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(u){return 2===u?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":u+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(u){return 2===u?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":u+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(u){return 2===u?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":u+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(u){return 2===u?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":u%10==0&&10!==u?u+" \u05e9\u05e0\u05d4":u+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(u){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(u)},meridiem:function(u,f,h){return u<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":u<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":u<12?h?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":u<18?h?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}})}(N(5439))},6335:function(he,ge,N){!function(O){"use strict";var _={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};O.defineLocale("hi",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0930\u093e\u0924"===y?h<4?h:h+12:"\u0938\u0941\u092c\u0939"===y?h:"\u0926\u094b\u092a\u0939\u0930"===y?h>=10?h:h+12:"\u0936\u093e\u092e"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0930\u093e\u0924":h<10?"\u0938\u0941\u092c\u0939":h<17?"\u0926\u094b\u092a\u0939\u0930":h<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}})}(N(5439))},7458:function(he,ge,N){!function(O){"use strict";function _(f,h,y){var p=f+" ";switch(y){case"ss":return p+(1===f?"sekunda":2===f||3===f||4===f?"sekunde":"sekundi");case"m":return h?"jedna minuta":"jedne minute";case"mm":return p+(1===f?"minuta":2===f||3===f||4===f?"minute":"minuta");case"h":return h?"jedan sat":"jednog sata";case"hh":return p+(1===f?"sat":2===f||3===f||4===f?"sata":"sati");case"dd":return p+(1===f?"dan":"dana");case"MM":return p+(1===f?"mjesec":2===f||3===f||4===f?"mjeseca":"mjeseci");case"yy":return p+(1===f?"godina":2===f||3===f||4===f?"godine":"godina")}}O.defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:_,m:_,mm:_,h:_,hh:_,d:"dan",dd:_,M:"mjesec",MM:_,y:"godinu",yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6540:function(he,ge,N){!function(O){"use strict";var _="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function u(y,p,v,C){var T=y;switch(v){case"s":return C||p?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return T+(C||p)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(C||p?" perc":" perce");case"mm":return T+(C||p?" perc":" perce");case"h":return"egy"+(C||p?" \xf3ra":" \xf3r\xe1ja");case"hh":return T+(C||p?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(C||p?" nap":" napja");case"dd":return T+(C||p?" nap":" napja");case"M":return"egy"+(C||p?" h\xf3nap":" h\xf3napja");case"MM":return T+(C||p?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(C||p?" \xe9v":" \xe9ve");case"yy":return T+(C||p?" \xe9v":" \xe9ve")}return""}function f(y){return(y?"":"[m\xfalt] ")+"["+_[this.day()]+"] LT[-kor]"}O.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(y){return"u"===y.charAt(1).toLowerCase()},meridiem:function(y,p,v){return y<12?!0===v?"de":"DE":!0===v?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return f.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return f.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:u,ss:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},5283:function(he,ge,N){!function(O){"use strict";O.defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(u){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(u)},meridiem:function(u){return u<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":u<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":u<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(u,f){switch(f){case"DDD":case"w":case"W":case"DDDo":return 1===u?u+"-\u056b\u0576":u+"-\u0580\u0564";default:return u}},week:{dow:1,doy:7}})}(N(5439))},8780:function(he,ge,N){!function(O){"use strict";O.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"siang"===f?u>=11?u:u+12:"sore"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"siang":u<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},4205:function(he,ge,N){!function(O){"use strict";function _(h){return h%100==11||h%10!=1}function u(h,y,p,v){var C=h+" ";switch(p){case"s":return y||v?"nokkrar sek\xfandur":"nokkrum sek\xfandum";case"ss":return _(h)?C+(y||v?"sek\xfandur":"sek\xfandum"):C+"sek\xfanda";case"m":return y?"m\xedn\xfata":"m\xedn\xfatu";case"mm":return _(h)?C+(y||v?"m\xedn\xfatur":"m\xedn\xfatum"):y?C+"m\xedn\xfata":C+"m\xedn\xfatu";case"hh":return _(h)?C+(y||v?"klukkustundir":"klukkustundum"):C+"klukkustund";case"d":return y?"dagur":v?"dag":"degi";case"dd":return _(h)?y?C+"dagar":C+(v?"daga":"d\xf6gum"):y?C+"dagur":C+(v?"dag":"degi");case"M":return y?"m\xe1nu\xf0ur":v?"m\xe1nu\xf0":"m\xe1nu\xf0i";case"MM":return _(h)?y?C+"m\xe1nu\xf0ir":C+(v?"m\xe1nu\xf0i":"m\xe1nu\xf0um"):y?C+"m\xe1nu\xf0ur":C+(v?"m\xe1nu\xf0":"m\xe1nu\xf0i");case"y":return y||v?"\xe1r":"\xe1ri";case"yy":return _(h)?C+(y||v?"\xe1r":"\xe1rum"):C+(y||v?"\xe1r":"\xe1ri")}}O.defineLocale("is",{months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[\xed dag kl.] LT",nextDay:"[\xe1 morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xed g\xe6r kl.] LT",lastWeek:"[s\xed\xf0asta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:u,ss:u,m:u,mm:u,h:"klukkustund",hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},4211:function(he,ge,N){!function(O){"use strict";O.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(u){return(/^[0-9].+$/.test(u)?"tra":"in")+" "+u},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},1003:function(he,ge,N){!function(O){"use strict";O.defineLocale("ja",{months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(u){return"\u5348\u5f8c"===u},meridiem:function(u,f,h){return u<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:function(u){return u.week()=11?u:u+12:"sonten"===f||"ndalu"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"enjing":u<15?"siyang":u<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(N(5439))},851:function(he,ge,N){!function(O){"use strict";O.defineLocale("ka",{months:{standalone:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),format:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1".split("_")},monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(u){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(u)?u.replace(/\u10d8$/,"\u10e8\u10d8"):u+"\u10e8\u10d8"},past:function(u){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(u)?u.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(u)?u.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):void 0},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(u){return 0===u?u:1===u?u+"-\u10da\u10d8":u<20||u<=100&&u%20==0||u%100==0?"\u10db\u10d4-"+u:u+"-\u10d4"},week:{dow:1,doy:7}})}(N(5439))},6074:function(he,ge,N){!function(O){"use strict";var _={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};O.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(f){return f+(_[f]||_[f%10]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},3343:function(he,ge,N){!function(O){"use strict";var _={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},u={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};O.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(h){return"\u179b\u17d2\u1784\u17b6\u1785"===h},meridiem:function(h,y,p){return h<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(h){return h.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},week:{dow:1,doy:4}})}(N(5439))},4799:function(he,ge,N){!function(O){"use strict";var _={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},u={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};O.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(h){return h.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===y?h<4?h:h+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===y?h:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===y?h>=10?h:h+12:"\u0cb8\u0c82\u0c9c\u0cc6"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":h<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":h<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":h<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(h){return h+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}})}(N(5439))},3549:function(he,ge,N){!function(O){"use strict";O.defineLocale("ko",{months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\uc77c";case"M":return u+"\uc6d4";case"w":case"W":return u+"\uc8fc";default:return u}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(u){return"\uc624\ud6c4"===u},meridiem:function(u,f,h){return u<12?"\uc624\uc804":"\uc624\ud6c4"}})}(N(5439))},3125:function(he,ge,N){!function(O){"use strict";var _={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};O.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u0435 \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(f){return f+(_[f]||_[f%10]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},9586:function(he,ge,N){!function(O){"use strict";function _(p,v,C,T){var S={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return v?S[C][0]:S[C][1]}function h(p){if(p=parseInt(p,10),isNaN(p))return!1;if(p<0)return!0;if(p<10)return 4<=p&&p<=7;if(p<100){var v=p%10;return h(0===v?p/10:v)}if(p<1e4){for(;p>=10;)p/=10;return h(p)}return h(p/=1e3)}O.defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function u(p){return h(p.substr(0,p.indexOf(" ")))?"a "+p:"an "+p},past:function f(p){return h(p.substr(0,p.indexOf(" ")))?"viru "+p:"virun "+p},s:"e puer Sekonnen",ss:"%d Sekonnen",m:_,mm:"%d Minutten",h:_,hh:"%d Stonnen",d:_,dd:"%d Deeg",M:_,MM:"%d M\xe9int",y:_,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},2349:function(he,ge,N){!function(O){"use strict";O.defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(u){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===u},meridiem:function(u,f,h){return u<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(u){return"\u0e97\u0eb5\u0ec8"+u}})}(N(5439))},2400:function(he,ge,N){!function(O){"use strict";var _={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function f(C,T,S,k){return T?y(S)[0]:k?y(S)[1]:y(S)[2]}function h(C){return C%10==0||C>10&&C<20}function y(C){return _[C].split("_")}function p(C,T,S,k){var L=C+" ";return 1===C?L+f(0,T,S[0],k):T?L+(h(C)?y(S)[1]:y(S)[0]):k?L+y(S)[1]:L+(h(C)?y(S)[1]:y(S)[2])}O.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function u(C,T,S,k){return T?"kelios sekund\u0117s":k?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:p,m:f,mm:p,h:f,hh:p,d:f,dd:p,M:f,MM:p,y:f,yy:p},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(C){return C+"-oji"},week:{dow:1,doy:4}})}(N(5439))},9991:function(he,ge,N){!function(O){"use strict";var _={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function u(v,C,T){return T?C%10==1&&C%100!=11?v[2]:v[3]:C%10==1&&C%100!=11?v[0]:v[1]}function f(v,C,T){return v+" "+u(_[T],v,C)}function h(v,C,T){return u(_[T],v,C)}O.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function y(v,C){return C?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:f,m:h,mm:f,h,hh:f,d:h,dd:f,M:h,MM:f,y:h,yy:f},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8477:function(he,ge,N){!function(O){"use strict";var _={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,y){var p=_.words[y];return 1===y.length?h?p[0]:p[1]:f+" "+_.correctGrammaticalCase(f,p)}};O.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:_.translate,m:_.translate,mm:_.translate,h:_.translate,hh:_.translate,d:"dan",dd:_.translate,M:"mjesec",MM:_.translate,y:"godinu",yy:_.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},5118:function(he,ge,N){!function(O){"use strict";O.defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},5943:function(he,ge,N){!function(O){"use strict";O.defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(u){var f=u%10,h=u%100;return 0===u?u+"-\u0435\u0432":0===h?u+"-\u0435\u043d":h>10&&h<20?u+"-\u0442\u0438":1===f?u+"-\u0432\u0438":2===f?u+"-\u0440\u0438":7===f||8===f?u+"-\u043c\u0438":u+"-\u0442\u0438"},week:{dow:1,doy:7}})}(N(5439))},3849:function(he,ge,N){!function(O){"use strict";O.defineLocale("ml",{months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),monthsParseExact:!0,weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),longDateFormat:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},calendar:{sameDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT",nextDay:"[\u0d28\u0d3e\u0d33\u0d46] LT",nextWeek:"dddd, LT",lastDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT",lastWeek:"[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",ss:"%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(u,f){return 12===u&&(u=0),"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"===f&&u>=4||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===f||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===f?u+12:u},meridiem:function(u,f,h){return u<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":u<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":u<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":u<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}})}(N(5439))},1977:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){switch(y){case"s":return h?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return f+(h?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return f+(h?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return f+(h?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return f+(h?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return f+(h?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return f+(h?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return f}}O.defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(f){return"\u04ae\u0425"===f},meridiem:function(f,h,y){return f<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(f,h){switch(h){case"d":case"D":case"DDD":return f+" \u04e9\u0434\u04e9\u0440";default:return f}}})}(N(5439))},6184:function(he,ge,N){!function(O){"use strict";var _={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function f(y,p,v,C){var T="";if(p)switch(v){case"s":T="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":T="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":T="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":T="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":T="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":T="%d \u0924\u093e\u0938";break;case"d":T="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":T="%d \u0926\u093f\u0935\u0938";break;case"M":T="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":T="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":T="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":T="%d \u0935\u0930\u094d\u0937\u0947"}else switch(v){case"s":T="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":T="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":T="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":T="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":T="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":T="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":T="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":T="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":T="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":T="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":T="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":T="%d \u0935\u0930\u094d\u0937\u093e\u0902"}return T.replace(/%d/i,y)}O.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:f,ss:f,m:f,mm:f,h:f,hh:f,d:f,dd:f,M:f,MM:f,y:f,yy:f},preparse:function(y){return y.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(p){return u[p]})},postformat:function(y){return y.replace(/\d/g,function(p){return _[p]})},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(y,p){return 12===y&&(y=0),"\u0930\u093e\u0924\u094d\u0930\u0940"===p?y<4?y:y+12:"\u0938\u0915\u093e\u0933\u0940"===p?y:"\u0926\u0941\u092a\u093e\u0930\u0940"===p?y>=10?y:y+12:"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===p?y+12:void 0},meridiem:function(y,p,v){return y<4?"\u0930\u093e\u0924\u094d\u0930\u0940":y<10?"\u0938\u0915\u093e\u0933\u0940":y<17?"\u0926\u0941\u092a\u093e\u0930\u0940":y<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}})}(N(5439))},4524:function(he,ge,N){!function(O){"use strict";O.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"tengahari"===f?u>=11?u:u+12:"petang"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"tengahari":u<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},485:function(he,ge,N){!function(O){"use strict";O.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"tengahari"===f?u>=11?u:u+12:"petang"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"tengahari":u<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},6681:function(he,ge,N){!function(O){"use strict";O.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[G\u0127ada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-biera\u0127 fil-]LT",lastWeek:"dddd [li g\u0127adda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},2024:function(he,ge,N){!function(O){"use strict";var _={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},u={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};O.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(h){return h.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},week:{dow:1,doy:4}})}(N(5439))},2688:function(he,ge,N){!function(O){"use strict";O.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8914:function(he,ge,N){!function(O){"use strict";var _={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};O.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0930\u093e\u0924\u093f"===y?h<4?h:h+12:"\u092c\u093f\u0939\u093e\u0928"===y?h:"\u0926\u093f\u0909\u0901\u0938\u094b"===y?h>=10?h:h+12:"\u0938\u093e\u0901\u091d"===y?h+12:void 0},meridiem:function(h,y,p){return h<3?"\u0930\u093e\u0924\u093f":h<12?"\u092c\u093f\u0939\u093e\u0928":h<16?"\u0926\u093f\u0909\u0901\u0938\u094b":h<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}})}(N(5439))},2272:function(he,ge,N){!function(O){"use strict";var _="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),u="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),f=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],h=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;O.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(p){return p+(1===p||8===p||p>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},1758:function(he,ge,N){!function(O){"use strict";var _="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),u="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),f=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],h=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;O.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(p,v){return p?/-MMM-/.test(v)?u[p.month()]:_[p.month()]:_},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(p){return p+(1===p||8===p||p>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},1510:function(he,ge,N){!function(O){"use strict";O.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},7944:function(he,ge,N){!function(O){"use strict";var _={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},u={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};O.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(h){return h.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(h,y){return 12===h&&(h=0),"\u0a30\u0a3e\u0a24"===y?h<4?h:h+12:"\u0a38\u0a35\u0a47\u0a30"===y?h:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===y?h>=10?h:h+12:"\u0a38\u0a3c\u0a3e\u0a2e"===y?h+12:void 0},meridiem:function(h,y,p){return h<4?"\u0a30\u0a3e\u0a24":h<10?"\u0a38\u0a35\u0a47\u0a30":h<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":h<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}})}(N(5439))},1605:function(he,ge,N){!function(O){"use strict";var _="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),u="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function f(p){return p%10<5&&p%10>1&&~~(p/10)%10!=1}function h(p,v,C){var T=p+" ";switch(C){case"ss":return T+(f(p)?"sekundy":"sekund");case"m":return v?"minuta":"minut\u0119";case"mm":return T+(f(p)?"minuty":"minut");case"h":return v?"godzina":"godzin\u0119";case"hh":return T+(f(p)?"godziny":"godzin");case"MM":return T+(f(p)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return T+(f(p)?"lata":"lat")}}O.defineLocale("pl",{months:function(p,v){return p?""===v?"("+u[p.month()]+"|"+_[p.month()]+")":/D MMMM/.test(v)?u[p.month()]:_[p.month()]:_},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:h,m:h,mm:h,h,hh:h,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:h,y:"rok",yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3840:function(he,ge,N){!function(O){"use strict";O.defineLocale("pt-br",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"})}(N(5439))},4225:function(he,ge,N){!function(O){"use strict";O.defineLocale("pt",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},5128:function(he,ge,N){!function(O){"use strict";function _(f,h,y){var v=" ";return(f%100>=20||f>=100&&f%100==0)&&(v=" de "),f+v+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[y]}O.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:_,m:"un minut",mm:_,h:"o or\u0103",hh:_,d:"o zi",dd:_,M:"o lun\u0103",MM:_,y:"un an",yy:_},week:{dow:1,doy:7}})}(N(5439))},5127:function(he,ge,N){!function(O){"use strict";function u(y,p,v){return"m"===v?p?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":y+" "+function _(y,p){var v=y.split("_");return p%10==1&&p%100!=11?v[0]:p%10>=2&&p%10<=4&&(p%100<10||p%100>=20)?v[1]:v[2]}({ss:p?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:p?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[v],+y)}var f=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];O.defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:f,longMonthsParse:f,shortMonthsParse:f,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(y){if(y.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(y){if(y.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:u,m:u,mm:u,h:"\u0447\u0430\u0441",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(y){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(y)},meridiem:function(y,p,v){return y<4?"\u043d\u043e\u0447\u0438":y<12?"\u0443\u0442\u0440\u0430":y<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(y,p){switch(p){case"M":case"d":case"DDD":return y+"-\u0439";case"D":return y+"-\u0433\u043e";case"w":case"W":return y+"-\u044f";default:return y}},week:{dow:1,doy:4}})}(N(5439))},2525:function(he,ge,N){!function(O){"use strict";var _=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],u=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];O.defineLocale("sd",{months:_,monthsShort:_,weekdays:u,weekdaysShort:u,weekdaysMin:u,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(h){return"\u0634\u0627\u0645"===h},meridiem:function(h,y,p){return h<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(N(5439))},9893:function(he,ge,N){!function(O){"use strict";O.defineLocale("se",{months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3123:function(he,ge,N){!function(O){"use strict";O.defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(u){return u+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(u){return"\u0db4.\u0dc0."===u||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===u},meridiem:function(u,f,h){return u>11?h?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":h?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}})}(N(5439))},9635:function(he,ge,N){!function(O){"use strict";var _="janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),u="jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_");function f(p){return p>1&&p<5}function h(p,v,C,T){var S=p+" ";switch(C){case"s":return v||T?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return v||T?S+(f(p)?"sekundy":"sek\xfand"):S+"sekundami";case"m":return v?"min\xfata":T?"min\xfatu":"min\xfatou";case"mm":return v||T?S+(f(p)?"min\xfaty":"min\xfat"):S+"min\xfatami";case"h":return v?"hodina":T?"hodinu":"hodinou";case"hh":return v||T?S+(f(p)?"hodiny":"hod\xedn"):S+"hodinami";case"d":return v||T?"de\u0148":"d\u0148om";case"dd":return v||T?S+(f(p)?"dni":"dn\xed"):S+"d\u0148ami";case"M":return v||T?"mesiac":"mesiacom";case"MM":return v||T?S+(f(p)?"mesiace":"mesiacov"):S+"mesiacmi";case"y":return v||T?"rok":"rokom";case"yy":return v||T?S+(f(p)?"roky":"rokov"):S+"rokmi"}}O.defineLocale("sk",{months:_,monthsShort:u,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:case 4:case 5:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8106:function(he,ge,N){!function(O){"use strict";function _(f,h,y,p){var v=f+" ";switch(y){case"s":return h||p?"nekaj sekund":"nekaj sekundami";case"ss":return v+(1===f?h?"sekundo":"sekundi":2===f?h||p?"sekundi":"sekundah":f<5?h||p?"sekunde":"sekundah":"sekund");case"m":return h?"ena minuta":"eno minuto";case"mm":return v+(1===f?h?"minuta":"minuto":2===f?h||p?"minuti":"minutama":f<5?h||p?"minute":"minutami":h||p?"minut":"minutami");case"h":return h?"ena ura":"eno uro";case"hh":return v+(1===f?h?"ura":"uro":2===f?h||p?"uri":"urama":f<5?h||p?"ure":"urami":h||p?"ur":"urami");case"d":return h||p?"en dan":"enim dnem";case"dd":return v+(1===f?h||p?"dan":"dnem":2===f?h||p?"dni":"dnevoma":h||p?"dni":"dnevi");case"M":return h||p?"en mesec":"enim mesecem";case"MM":return v+(1===f?h||p?"mesec":"mesecem":2===f?h||p?"meseca":"mesecema":f<5?h||p?"mesece":"meseci":h||p?"mesecev":"meseci");case"y":return h||p?"eno leto":"enim letom";case"yy":return v+(1===f?h||p?"leto":"letom":2===f?h||p?"leti":"letoma":f<5?h||p?"leta":"leti":h||p?"let":"leti")}}O.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:_,ss:_,m:_,mm:_,h:_,hh:_,d:_,dd:_,M:_,MM:_,y:_,yy:_},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},8799:function(he,ge,N){!function(O){"use strict";O.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(u){return"M"===u.charAt(0)},meridiem:function(u,f,h){return u<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},2872:function(he,ge,N){!function(O){"use strict";var _={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,y){var p=_.words[y];return 1===y.length?h?p[0]:p[1]:f+" "+_.correctGrammaticalCase(f,p)}};O.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:_.translate,m:_.translate,mm:_.translate,h:_.translate,hh:_.translate,d:"\u0434\u0430\u043d",dd:_.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:_.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:_.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},7949:function(he,ge,N){!function(O){"use strict";var _={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,y){var p=_.words[y];return 1===y.length?h?p[0]:p[1]:f+" "+_.correctGrammaticalCase(f,p)}};O.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:_.translate,m:_.translate,mm:_.translate,h:_.translate,hh:_.translate,d:"dan",dd:_.translate,M:"mesec",MM:_.translate,y:"godinu",yy:_.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6167:function(he,ge,N){!function(O){"use strict";O.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(u,f,h){return u<11?"ekuseni":u<15?"emini":u<19?"entsambama":"ebusuku"},meridiemHour:function(u,f){return 12===u&&(u=0),"ekuseni"===f?u:"emini"===f?u>=11?u:u+12:"entsambama"===f||"ebusuku"===f?0===u?0:u+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(N(5439))},9713:function(he,ge,N){!function(O){"use strict";O.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"e":1===f||2===f?"a":"e")},week:{dow:1,doy:4}})}(N(5439))},1982:function(he,ge,N){!function(O){"use strict";O.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(N(5439))},2732:function(he,ge,N){!function(O){"use strict";var _={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},u={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};O.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(h){return h+"\u0bb5\u0ba4\u0bc1"},preparse:function(h){return h.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(y){return u[y]})},postformat:function(h){return h.replace(/\d/g,function(y){return _[y]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(h,y,p){return h<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":h<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":h<10?" \u0b95\u0bbe\u0bb2\u0bc8":h<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":h<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":h<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(h,y){return 12===h&&(h=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===y?h<2?h:h+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===y||"\u0b95\u0bbe\u0bb2\u0bc8"===y||"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===y&&h>=10?h:h+12},week:{dow:0,doy:6}})}(N(5439))},3636:function(he,ge,N){!function(O){"use strict";O.defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===f?u<4?u:u+12:"\u0c09\u0c26\u0c2f\u0c02"===f?u:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===f?u>=10?u:u+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===f?u+12:void 0},meridiem:function(u,f,h){return u<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":u<10?"\u0c09\u0c26\u0c2f\u0c02":u<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":u<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}})}(N(5439))},2115:function(he,ge,N){!function(O){"use strict";O.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},9801:function(he,ge,N){!function(O){"use strict";var _={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};O.defineLocale("tg",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(f,h){return 12===f&&(f=0),"\u0448\u0430\u0431"===h?f<4?f:f+12:"\u0441\u0443\u0431\u04b3"===h?f:"\u0440\u04ef\u0437"===h?f>=11?f:f+12:"\u0431\u0435\u0433\u043e\u04b3"===h?f+12:void 0},meridiem:function(f,h,y){return f<4?"\u0448\u0430\u0431":f<11?"\u0441\u0443\u0431\u04b3":f<16?"\u0440\u04ef\u0437":f<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(f){return f+(_[f]||_[f%10]||_[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},2868:function(he,ge,N){!function(O){"use strict";O.defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(u){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===u},meridiem:function(u,f,h){return u<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}})}(N(5439))},2360:function(he,ge,N){!function(O){"use strict";O.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(u){return u},week:{dow:1,doy:4}})}(N(5439))},6645:function(he,ge,N){!function(O){"use strict";var _="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function h(v,C,T,S){var k=function y(v){var C=Math.floor(v%1e3/100),T=Math.floor(v%100/10),S=v%10,k="";return C>0&&(k+=_[C]+"vatlh"),T>0&&(k+=(""!==k?" ":"")+_[T]+"maH"),S>0&&(k+=(""!==k?" ":"")+_[S]),""===k?"pagh":k}(v);switch(T){case"ss":return k+" lup";case"mm":return k+" tup";case"hh":return k+" rep";case"dd":return k+" jaj";case"MM":return k+" jar";case"yy":return k+" DIS"}}O.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function u(v){var C=v;return-1!==v.indexOf("jaj")?C.slice(0,-3)+"leS":-1!==v.indexOf("jar")?C.slice(0,-3)+"waQ":-1!==v.indexOf("DIS")?C.slice(0,-3)+"nem":C+" pIq"},past:function f(v){var C=v;return-1!==v.indexOf("jaj")?C.slice(0,-3)+"Hu\u2019":-1!==v.indexOf("jar")?C.slice(0,-3)+"wen":-1!==v.indexOf("DIS")?C.slice(0,-3)+"ben":C+" ret"},s:"puS lup",ss:h,m:"wa\u2019 tup",mm:h,h:"wa\u2019 rep",hh:h,d:"wa\u2019 jaj",dd:h,M:"wa\u2019 jar",MM:h,y:"wa\u2019 DIS",yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8374:function(he,ge,N){!function(O){"use strict";var _={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};O.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(f,h){switch(h){case"d":case"D":case"Do":case"DD":return f;default:if(0===f)return f+"'\u0131nc\u0131";var y=f%10;return f+(_[y]||_[f%100-y]||_[f>=100?100:null])}},week:{dow:1,doy:7}})}(N(5439))},256:function(he,ge,N){!function(O){"use strict";function u(f,h,y,p){var v={s:["viensas secunds","'iensas secunds"],ss:[f+" secunds",f+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[f+" m\xeduts",f+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[f+" \xfeoras",f+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[f+" ziuas",f+" ziuas"],M:["'n mes","'iens mes"],MM:[f+" mesen",f+" mesen"],y:["'n ar","'iens ar"],yy:[f+" ars",f+" ars"]};return p||h?v[y][0]:v[y][1]}O.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(f){return"d'o"===f.toLowerCase()},meridiem:function(f,h,y){return f>11?y?"d'o":"D'O":y?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:u,ss:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},1631:function(he,ge,N){!function(O){"use strict";O.defineLocale("tzm-latn",{months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(N(5439))},1595:function(he,ge,N){!function(O){"use strict";O.defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}})}(N(5439))},6050:function(he,ge,N){!function(O){"use strict";O.defineLocale("ug-cn",{months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5"===f||"\u0633\u06d5\u06be\u06d5\u0631"===f||"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646"===f?u:"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646"===f||"\u0643\u06d5\u0686"===f?u+12:u>=11?u:u+12},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":y<900?"\u0633\u06d5\u06be\u06d5\u0631":y<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":y<1230?"\u0686\u06c8\u0634":y<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return u+"-\u06be\u06d5\u067e\u062a\u06d5";default:return u}},preparse:function(u){return u.replace(/\u060c/g,",")},postformat:function(u){return u.replace(/,/g,"\u060c")},week:{dow:1,doy:7}})}(N(5439))},5610:function(he,ge,N){!function(O){"use strict";function u(p,v,C){return"m"===C?v?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===C?v?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":p+" "+function _(p,v){var C=p.split("_");return v%10==1&&v%100!=11?C[0]:v%10>=2&&v%10<=4&&(v%100<10||v%100>=20)?C[1]:C[2]}({ss:v?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:v?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:v?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[C],+p)}function h(p){return function(){return p+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}O.defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function f(p,v){var C={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return p?C[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(v)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(v)?"genitive":"nominative"][p.day()]:C.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:h("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:h("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:h("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:h("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return h("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return h("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:u,m:u,mm:u,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:u,y:"\u0440\u0456\u043a",yy:u},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(p){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(p)},meridiem:function(p,v,C){return p<4?"\u043d\u043e\u0447\u0456":p<12?"\u0440\u0430\u043d\u043a\u0443":p<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(p,v){switch(v){case"M":case"d":case"DDD":case"w":case"W":return p+"-\u0439";case"D":return p+"-\u0433\u043e";default:return p}},week:{dow:1,doy:7}})}(N(5439))},6077:function(he,ge,N){!function(O){"use strict";var _=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],u=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];O.defineLocale("ur",{months:_,monthsShort:_,weekdays:u,weekdaysShort:u,weekdaysMin:u,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(h){return"\u0634\u0627\u0645"===h},meridiem:function(h,y,p){return h<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(N(5439))},2207:function(he,ge,N){!function(O){"use strict";O.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(N(5439))},2862:function(he,ge,N){!function(O){"use strict";O.defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}})}(N(5439))},8093:function(he,ge,N){!function(O){"use strict";O.defineLocale("vi",{months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(u){return/^ch$/i.test(u)},meridiem:function(u,f,h){return u<12?h?"sa":"SA":h?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tu\u1ea7n t\u1edbi l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tu\u1ea7n r\u1ed3i l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(u){return u},week:{dow:1,doy:4}})}(N(5439))},5590:function(he,ge,N){!function(O){"use strict";O.defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},9058:function(he,ge,N){!function(O){"use strict";O.defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}})}(N(5439))},7908:function(he,ge,N){!function(O){"use strict";O.defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:u>=11?u:u+12},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u51cc\u6668":y<900?"\u65e9\u4e0a":y<1130?"\u4e0a\u5348":y<1230?"\u4e2d\u5348":y<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u5468";default:return u}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}})}(N(5439))},8867:function(he,ge,N){!function(O){"use strict";O.defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e2d\u5348"===f?u>=11?u:u+12:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:void 0},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u51cc\u6668":y<900?"\u65e9\u4e0a":y<1130?"\u4e0a\u5348":y<1230?"\u4e2d\u5348":y<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u9031";default:return u}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(N(5439))},3291:function(he,ge,N){!function(O){"use strict";O.defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e2d\u5348"===f?u>=11?u:u+12:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:void 0},meridiem:function(u,f,h){var y=100*u+f;return y<600?"\u51cc\u6668":y<900?"\u65e9\u4e0a":y<1130?"\u4e0a\u5348":y<1230?"\u4e2d\u5348":y<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u9031";default:return u}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(N(5439))},5439:function(he,ge,N){(he=N.nmd(he)).exports=function(){"use strict";var O,H;function _(){return O.apply(null,arguments)}function f(m){return m instanceof Array||"[object Array]"===Object.prototype.toString.call(m)}function h(m){return null!=m&&"[object Object]"===Object.prototype.toString.call(m)}function p(m){return void 0===m}function v(m){return"number"==typeof m||"[object Number]"===Object.prototype.toString.call(m)}function C(m){return m instanceof Date||"[object Date]"===Object.prototype.toString.call(m)}function T(m,I){var $,j=[];for($=0;$>>0,$=0;$0)for(j=0;j=0?j?"+":"":"-")+Math.pow(10,Math.max(0,I-$.length)).toString().substr(1)+$}var Ee=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Ne=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ut={},_t={};function rt(m,I,j,$){var se=$;"string"==typeof $&&(se=function(){return this[$]()}),m&&(_t[m]=se),I&&(_t[I[0]]=function(){return De(se.apply(this,arguments),I[1],I[2])}),j&&(_t[j]=function(){return this.localeData().ordinal(se.apply(this,arguments),m)})}function sn(m){return m.match(/\[[\s\S]/)?m.replace(/^\[|\]$/g,""):m.replace(/\\/g,"")}function vt(m,I){return m.isValid()?(I=jt(I,m.localeData()),ut[I]=ut[I]||function Pn(m){var j,$,I=m.match(Ee);for(j=0,$=I.length;j<$;j++)I[j]=_t[I[j]]?_t[I[j]]:sn(I[j]);return function(se){var je,Le="";for(je=0;je<$;je++)Le+=Ce(I[je])?I[je].call(se,m):I[je];return Le}}(I),ut[I](m)):m.localeData().invalidDate()}function jt(m,I){var j=5;function $(se){return I.longDateFormat(se)||se}for(Ne.lastIndex=0;j>=0&&Ne.test(m);)m=m.replace(Ne,$),Ne.lastIndex=0,j-=1;return m}var jn=/\d/,oi=/\d\d/,Kr=/\d{3}/,So=/\d{4}/,Pi=/[+-]?\d{6}/,tn=/\d\d?/,Mi=/\d\d\d\d?/,si=/\d\d\d\d\d\d?/,On=/\d{1,3}/,Nu=/\d{1,4}/,xa=/[+-]?\d{1,6}/,An=/\d+/,Ca=/[+-]?\d+/,Fn=/Z|[+-]\d\d:?\d\d/gi,ka=/Z|[+-]\d\d(?::?\d\d)?/gi,an=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,yt={};function gt(m,I,j){yt[m]=Ce(I)?I:function($,se){return $&&j?j:I}}function Yu(m,I){return S(yt,m)?yt[m](I._strict,I._locale):new RegExp(function cM(m){return Do(m.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(I,j,$,se,Le){return j||$||se||Le}))}(m))}function Do(m){return m.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Fe={};function kn(m,I){var j,$=I;for("string"==typeof m&&(m=[m]),v(I)&&($=function(se,Le){Le[I]=ee(se)}),j=0;j68?1900:2e3)};var wi,zg=Sa("FullYear",!0);function Sa(m,I){return function(j){return null!=j?(yp(this,m,j),_.updateOffset(this,I),this):Hu(this,m)}}function Hu(m,I){return m.isValid()?m._d["get"+(m._isUTC?"UTC":"")+I]():NaN}function yp(m,I,j){m.isValid()&&!isNaN(j)&&("FullYear"===I&&Bu(m.year())&&1===m.month()&&29===m.date()?m._d["set"+(m._isUTC?"UTC":"")+I](j,m.month(),Vu(j,m.month())):m._d["set"+(m._isUTC?"UTC":"")+I](j))}function Vu(m,I){if(isNaN(m)||isNaN(I))return NaN;var j=function gn(m,I){return(m%I+I)%I}(I,12);return m+=(I-j)/12,1===j?Bu(m)?29:28:31-j%7%2}wi=Array.prototype.indexOf?Array.prototype.indexOf:function(m){var I;for(I=0;I=0&&isFinite(Bt.getFullYear())&&Bt.setFullYear(m),Bt}function gl(m){var I=new Date(Date.UTC.apply(null,arguments));return m<100&&m>=0&&isFinite(I.getUTCFullYear())&&I.setUTCFullYear(m),I}function ur(m,I,j){var $=7+I-j;return-(7+gl(m,0,$).getUTCDay()-I)%7+$-1}function Uu(m,I,j,$,se){var rn,mi,Bt=1+7*(I-1)+(7+j-$)%7+ur(m,$,se);return Bt<=0?mi=Oc(rn=m-1)+Bt:Bt>Oc(m)?(rn=m+1,mi=Bt-Oc(m)):(rn=m,mi=Bt),{year:rn,dayOfYear:mi}}function Rc(m,I,j){var Le,je,$=ur(m.year(),I,j),se=Math.floor((m.dayOfYear()-$-1)/7)+1;return se<1?Le=se+dn(je=m.year()-1,I,j):se>dn(m.year(),I,j)?(Le=se-dn(m.year(),I,j),je=m.year()+1):(je=m.year(),Le=se),{week:Le,year:je}}function dn(m,I,j){var $=ur(m,I,j),se=ur(m+1,I,j);return(Oc(m)-$+se)/7}rt("w",["ww",2],"wo","week"),rt("W",["WW",2],"Wo","isoWeek"),me("week","w"),me("isoWeek","W"),_e("week",5),_e("isoWeek",5),gt("w",tn),gt("ww",tn,oi),gt("W",tn),gt("WW",tn,oi),St(["w","ww","W","WW"],function(m,I,j,$){I[$.substr(0,1)]=ee(m)});rt("d",0,"do","day"),rt("dd",0,0,function(m){return this.localeData().weekdaysMin(this,m)}),rt("ddd",0,0,function(m){return this.localeData().weekdaysShort(this,m)}),rt("dddd",0,0,function(m){return this.localeData().weekdays(this,m)}),rt("e",0,0,"weekday"),rt("E",0,0,"isoWeekday"),me("day","d"),me("weekday","e"),me("isoWeekday","E"),_e("day",11),_e("weekday",11),_e("isoWeekday",11),gt("d",tn),gt("e",tn),gt("E",tn),gt("dd",function(m,I){return I.weekdaysMinRegex(m)}),gt("ddd",function(m,I){return I.weekdaysShortRegex(m)}),gt("dddd",function(m,I){return I.weekdaysRegex(m)}),St(["dd","ddd","dddd"],function(m,I,j,$){var se=j._locale.weekdaysParse(m,$,j._strict);null!=se?I.d=se:U(j).invalidWeekday=m}),St(["d","e","E"],function(m,I,j,$){I[$]=ee(m)});var Kg="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Da="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var Zg="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Dp(m,I,j){var $,se,Le,je=m.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],$=0;$<7;++$)Le=L([2e3,1]).day($),this._minWeekdaysParse[$]=this.weekdaysMin(Le,"").toLocaleLowerCase(),this._shortWeekdaysParse[$]=this.weekdaysShort(Le,"").toLocaleLowerCase(),this._weekdaysParse[$]=this.weekdays(Le,"").toLocaleLowerCase();return j?"dddd"===I?-1!==(se=wi.call(this._weekdaysParse,je))?se:null:"ddd"===I?-1!==(se=wi.call(this._shortWeekdaysParse,je))?se:null:-1!==(se=wi.call(this._minWeekdaysParse,je))?se:null:"dddd"===I?-1!==(se=wi.call(this._weekdaysParse,je))||-1!==(se=wi.call(this._shortWeekdaysParse,je))||-1!==(se=wi.call(this._minWeekdaysParse,je))?se:null:"ddd"===I?-1!==(se=wi.call(this._shortWeekdaysParse,je))||-1!==(se=wi.call(this._weekdaysParse,je))||-1!==(se=wi.call(this._minWeekdaysParse,je))?se:null:-1!==(se=wi.call(this._minWeekdaysParse,je))||-1!==(se=wi.call(this._weekdaysParse,je))||-1!==(se=wi.call(this._shortWeekdaysParse,je))?se:null}var Xg=an;var Jg=an;var co=an;function Tp(){function m(jr,Ra){return Ra.length-jr.length}var Le,je,Bt,rn,mi,I=[],j=[],$=[],se=[];for(Le=0;Le<7;Le++)je=L([2e3,1]).day(Le),Bt=this.weekdaysMin(je,""),rn=this.weekdaysShort(je,""),mi=this.weekdays(je,""),I.push(Bt),j.push(rn),$.push(mi),se.push(Bt),se.push(rn),se.push(mi);for(I.sort(m),j.sort(m),$.sort(m),se.sort(m),Le=0;Le<7;Le++)j[Le]=Do(j[Le]),$[Le]=Do($[Le]),se[Le]=Do(se[Le]);this._weekdaysRegex=new RegExp("^("+se.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+$.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+j.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+I.join("|")+")","i")}function Nr(){return this.hours()%12||12}function un(m,I){rt(m,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),I)})}function yl(m,I){return I._meridiemParse}rt("H",["HH",2],0,"hour"),rt("h",["hh",2],0,Nr),rt("k",["kk",2],0,function Uo(){return this.hours()||24}),rt("hmm",0,0,function(){return""+Nr.apply(this)+De(this.minutes(),2)}),rt("hmmss",0,0,function(){return""+Nr.apply(this)+De(this.minutes(),2)+De(this.seconds(),2)}),rt("Hmm",0,0,function(){return""+this.hours()+De(this.minutes(),2)}),rt("Hmmss",0,0,function(){return""+this.hours()+De(this.minutes(),2)+De(this.seconds(),2)}),un("a",!0),un("A",!1),me("hour","h"),_e("hour",13),gt("a",yl),gt("A",yl),gt("H",tn),gt("h",tn),gt("k",tn),gt("HH",tn,oi),gt("hh",tn,oi),gt("kk",tn,oi),gt("hmm",Mi),gt("hmmss",si),gt("Hmm",Mi),gt("Hmmss",si),kn(["H","HH"],3),kn(["k","kk"],function(m,I,j){var $=ee(m);I[3]=24===$?0:$}),kn(["a","A"],function(m,I,j){j._isPm=j._locale.isPM(m),j._meridiem=m}),kn(["h","hh"],function(m,I,j){I[3]=ee(m),U(j).bigHour=!0}),kn("hmm",function(m,I,j){var $=m.length-2;I[3]=ee(m.substr(0,$)),I[4]=ee(m.substr($)),U(j).bigHour=!0}),kn("hmmss",function(m,I,j){var $=m.length-4,se=m.length-2;I[3]=ee(m.substr(0,$)),I[4]=ee(m.substr($,2)),I[5]=ee(m.substr(se)),U(j).bigHour=!0}),kn("Hmm",function(m,I,j){var $=m.length-2;I[3]=ee(m.substr(0,$)),I[4]=ee(m.substr($))}),kn("Hmmss",function(m,I,j){var $=m.length-4,se=m.length-2;I[3]=ee(m.substr(0,$)),I[4]=ee(m.substr($,2)),I[5]=ee(m.substr(se))});var Hs,Wo=Sa("Hours",!0),La={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ye,monthsShort:At,week:{dow:0,doy:6},weekdays:Kg,weekdaysMin:Zg,weekdaysShort:Da,meridiemParse:/[ap]\.?m?\.?/i},Oi={},qe={};function Ku(m){return m&&m.toLowerCase().replace("_","-")}function Pt(m){var I=null;if(!Oi[m]&&he&&he.exports)try{I=Hs._abbr,N(6700)("./"+m),Ea(I)}catch{}return Oi[m]}function Ea(m,I){var j;return m&&((j=p(I)?Jn(m):Bc(m,I))?Hs=j:typeof console<"u"&&console.warn&&console.warn("Locale "+m+" not found. Did you forget to load it?")),Hs._abbr}function Bc(m,I){if(null!==I){var j,$=La;if(I.abbr=m,null!=Oi[m])Se("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),$=Oi[m]._config;else if(null!=I.parentLocale)if(null!=Oi[I.parentLocale])$=Oi[I.parentLocale]._config;else{if(null==(j=Pt(I.parentLocale)))return qe[I.parentLocale]||(qe[I.parentLocale]=[]),qe[I.parentLocale].push({name:m,config:I}),null;$=j._config}return Oi[m]=new ot(tt($,I)),qe[m]&&qe[m].forEach(function(se){Bc(se.name,se.config)}),Ea(m),Oi[m]}return delete Oi[m],null}function Jn(m){var I;if(m&&m._locale&&m._locale._abbr&&(m=m._locale._abbr),!m)return Hs;if(!f(m)){if(I=Pt(m))return I;m=[m]}return function Ep(m){for(var j,$,se,Le,I=0;I0;){if(se=Pt(Le.slice(0,j).join("-")))return se;if($&&$.length>=j&&ae(Le,$,!0)>=j-1)break;j--}I++}return Hs}(m)}function ji(m){var I,j=m._a;return j&&-2===U(m).overflow&&(I=j[1]<0||j[1]>11?1:j[2]<1||j[2]>Vu(j[0],j[1])?2:j[3]<0||j[3]>24||24===j[3]&&(0!==j[4]||0!==j[5]||0!==j[6])?3:j[4]<0||j[4]>59?4:j[5]<0||j[5]>59?5:j[6]<0||j[6]>999?6:-1,U(m)._overflowDayOfYear&&(I<0||I>2)&&(I=2),U(m)._overflowWeeks&&-1===I&&(I=7),U(m)._overflowWeekday&&-1===I&&(I=8),U(m).overflow=I),m}function xi(m,I,j){return m??I??j}function hr(m){var I,j,se,Le,je,$=[];if(!m._d){for(se=function Ia(m){var I=new Date(_.now());return m._useUTC?[I.getUTCFullYear(),I.getUTCMonth(),I.getUTCDate()]:[I.getFullYear(),I.getMonth(),I.getDate()]}(m),m._w&&null==m._a[2]&&null==m._a[1]&&function $o(m){var I,j,$,se,Le,je,Bt,rn;if(null!=(I=m._w).GG||null!=I.W||null!=I.E)Le=1,je=4,j=xi(I.GG,m._a[0],Rc(qn(),1,4).year),$=xi(I.W,1),((se=xi(I.E,1))<1||se>7)&&(rn=!0);else{Le=m._locale._week.dow,je=m._locale._week.doy;var mi=Rc(qn(),Le,je);j=xi(I.gg,m._a[0],mi.year),$=xi(I.w,mi.week),null!=I.d?((se=I.d)<0||se>6)&&(rn=!0):null!=I.e?(se=I.e+Le,(I.e<0||I.e>6)&&(rn=!0)):se=Le}$<1||$>dn(j,Le,je)?U(m)._overflowWeeks=!0:null!=rn?U(m)._overflowWeekday=!0:(Bt=Uu(j,$,se,Le,je),m._a[0]=Bt.year,m._dayOfYear=Bt.dayOfYear)}(m),null!=m._dayOfYear&&(je=xi(m._a[0],se[0]),(m._dayOfYear>Oc(je)||0===m._dayOfYear)&&(U(m)._overflowDayOfYear=!0),j=gl(je,0,m._dayOfYear),m._a[1]=j.getUTCMonth(),m._a[2]=j.getUTCDate()),I=0;I<3&&null==m._a[I];++I)m._a[I]=$[I]=se[I];for(;I<7;I++)m._a[I]=$[I]=null==m._a[I]?2===I?1:0:m._a[I];24===m._a[3]&&0===m._a[4]&&0===m._a[5]&&0===m._a[6]&&(m._nextDay=!0,m._a[3]=0),m._d=(m._useUTC?gl:zu).apply(null,$),Le=m._useUTC?m._d.getUTCDay():m._d.getDay(),null!=m._tzm&&m._d.setUTCMinutes(m._d.getUTCMinutes()-m._tzm),m._nextDay&&(m._a[3]=24),m._w&&typeof m._w.d<"u"&&m._w.d!==Le&&(U(m).weekdayMismatch=!0)}}var lt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Yt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,li=/Z|[+-]\d\d(?::?\d\d)?/,Sr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Go=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],sr=/^\/?Date\((\-?\d+)/i;function Vs(m){var I,j,Le,je,Bt,rn,$=m._i,se=lt.exec($)||Yt.exec($);if(se){for(U(m).iso=!0,I=0,j=Sr.length;I0&&U(m).unusedInput.push(je),I=I.slice(I.indexOf($)+$.length),rn+=$.length),_t[Le]?($?U(m).empty=!1:U(m).unusedTokens.push(Le),_n(Le,$,m)):m._strict&&!$&&U(m).unusedTokens.push(Le);U(m).charsLeftOver=Bt-rn,I.length>0&&U(m).unusedInput.push(I),m._a[3]<=12&&!0===U(m).bigHour&&m._a[3]>0&&(U(m).bigHour=void 0),U(m).parsedDateParts=m._a.slice(0),U(m).meridiem=m._meridiem,m._a[3]=function Pa(m,I,j){var $;return null==j?I:null!=m.meridiemHour?m.meridiemHour(I,j):(null!=m.isPM&&(($=m.isPM(j))&&I<12&&(I+=12),!$&&12===I&&(I=0)),I)}(m._locale,m._a[3],m._meridiem),hr(m),ji(m)}else js(m);else Vs(m)}function Hn(m){var I=m._i,j=m._f;return m._locale=m._locale||Jn(m._l),null===I||void 0===j&&""===I?ie({nullInput:!0}):("string"==typeof I&&(m._i=I=m._locale.preparse(I)),G(I)?new de(ji(I)):(C(I)?m._d=I:f(j)?function Lo(m){var I,j,$,se,Le;if(0===m._f.length)return U(m).invalidFormat=!0,void(m._d=new Date(NaN));for(se=0;sethis?this:m:ie()});function Us(m,I){var j,$;if(1===I.length&&f(I[0])&&(I=I[0]),!I.length)return qn();for(j=I[0],$=1;$(Le=dn(m,$,se))&&(I=Le),fb.call(this,m,I,j,$,se))}function fb(m,I,j,$,se){var Le=Uu(m,I,j,$,se),je=gl(Le.year,0,Le.dayOfYear);return this.year(je.getUTCFullYear()),this.month(je.getUTCMonth()),this.date(je.getUTCDate()),this}rt(0,["gg",2],0,function(){return this.weekYear()%100}),rt(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ci("gggg","weekYear"),Ci("ggggg","weekYear"),Ci("GGGG","isoWeekYear"),Ci("GGGGG","isoWeekYear"),me("weekYear","gg"),me("isoWeekYear","GG"),_e("weekYear",1),_e("isoWeekYear",1),gt("G",Ca),gt("g",Ca),gt("GG",tn,oi),gt("gg",tn,oi),gt("GGGG",Nu,So),gt("gggg",Nu,So),gt("GGGGG",xa,Pi),gt("ggggg",xa,Pi),St(["gggg","ggggg","GGGG","GGGGG"],function(m,I,j,$){I[$.substr(0,2)]=ee(m)}),St(["gg","GG"],function(m,I,j,$){I[$]=_.parseTwoDigitYear(m)}),rt("Q",0,"Qo","quarter"),me("quarter","Q"),_e("quarter",7),gt("Q",jn),kn("Q",function(m,I){I[1]=3*(ee(m)-1)}),rt("D",["DD",2],"Do","date"),me("date","D"),_e("date",9),gt("D",tn),gt("DD",tn,oi),gt("Do",function(m,I){return m?I._dayOfMonthOrdinalParse||I._ordinalParse:I._dayOfMonthOrdinalParseLenient}),kn(["D","DD"],2),kn("Do",function(m,I){I[2]=ee(m.match(tn)[0])});var rh=Sa("Date",!0);rt("DDD",["DDDD",3],"DDDo","dayOfYear"),me("dayOfYear","DDD"),_e("dayOfYear",4),gt("DDD",On),gt("DDDD",Kr),kn(["DDD","DDDD"],function(m,I,j){j._dayOfYear=ee(m)}),rt("m",["mm",2],0,"minute"),me("minute","m"),_e("minute",14),gt("m",tn),gt("mm",tn,oi),kn(["m","mm"],4);var qo=Sa("Minutes",!1);rt("s",["ss",2],0,"second"),me("second","s"),_e("second",15),gt("s",tn),gt("ss",tn,oi),kn(["s","ss"],5);var Vr,Kp=Sa("Seconds",!1);for(rt("S",0,0,function(){return~~(this.millisecond()/100)}),rt(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),rt(0,["SSS",3],0,"millisecond"),rt(0,["SSSS",4],0,function(){return 10*this.millisecond()}),rt(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),rt(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),rt(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),rt(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),rt(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),me("millisecond","ms"),_e("millisecond",16),gt("S",On,jn),gt("SS",On,oi),gt("SSS",On,Kr),Vr="SSSS";Vr.length<=9;Vr+="S")gt(Vr,An);function Ko(m,I){I[6]=ee(1e3*("0."+m))}for(Vr="S";Vr.length<=9;Vr+="S")kn(Vr,Ko);var pb=Sa("Milliseconds",!1);rt("z",0,0,"zoneAbbr"),rt("zz",0,0,"zoneName");var Qe=de.prototype;function ah(m){return m}Qe.add=tb,Qe.calendar=function nb(m,I){var j=m||qn(),$=Rp(j,this).startOf("day"),se=_.calendarFormat(this,$)||"sameElse",Le=I&&(Ce(I[se])?I[se].call(this,j):I[se]);return this.format(Le||this.localeData().calendar(se,this,qn(j)))},Qe.clone=function th(){return new de(this)},Qe.diff=function $c(m,I,j){var $,se,Le;if(!this.isValid())return NaN;if(!($=Rp(m,this)).isValid())return NaN;switch(se=6e4*($.utcOffset()-this.utcOffset()),I=fe(I)){case"year":Le=mr(this,$)/12;break;case"month":Le=mr(this,$);break;case"quarter":Le=mr(this,$)/3;break;case"second":Le=(this-$)/1e3;break;case"minute":Le=(this-$)/6e4;break;case"hour":Le=(this-$)/36e5;break;case"day":Le=(this-$-se)/864e5;break;case"week":Le=(this-$-se)/6048e5;break;default:Le=this-$}return j?Le:J(Le)},Qe.endOf=function IM(m){return void 0===(m=fe(m))||"millisecond"===m?this:("date"===m&&(m="day"),this.startOf(m).add(1,"isoWeek"===m?"week":m).subtract(1,"ms"))},Qe.format=function Hr(m){m||(m=this.isUtc()?_.defaultFormatUtc:_.defaultFormat);var I=vt(this,m);return this.localeData().postformat(I)},Qe.from=function sb(m,I){return this.isValid()&&(G(m)&&m.isValid()||qn(m).isValid())?Eo({to:this,from:m}).locale(this.locale()).humanize(!I):this.localeData().invalidDate()},Qe.fromNow=function Gc(m){return this.from(qn(),m)},Qe.to=function ab(m,I){return this.isValid()&&(G(m)&&m.isValid()||qn(m).isValid())?Eo({from:this,to:m}).locale(this.locale()).humanize(!I):this.localeData().invalidDate()},Qe.toNow=function ps(m){return this.to(qn(),m)},Qe.get=function hM(m){return Ce(this[m=fe(m)])?this[m]():this},Qe.invalidAt=function Pe(){return U(this).overflow},Qe.isAfter=function ib(m,I){var j=G(m)?m:qn(m);return!(!this.isValid()||!j.isValid())&&("millisecond"===(I=fe(p(I)?"millisecond":I))?this.valueOf()>j.valueOf():j.valueOf()9999?vt(j,I?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Ce(Date.prototype.toISOString)?I?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",vt(j,"Z")):vt(j,I?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Qe.inspect=function Oa(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var m="moment",I="";this.isLocal()||(m=0===this.utcOffset()?"moment.utc":"moment.parseZone",I="Z");var j="["+m+'("]',$=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";return this.format(j+$+"-MM-DD[T]HH:mm:ss.SSS"+I+'[")]')},Qe.toJSON=function hb(){return this.isValid()?this.toISOString():null},Qe.toString=function ob(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Qe.unix=function cb(){return Math.floor(this.valueOf()/1e3)},Qe.valueOf=function lb(){return this._d.valueOf()-6e4*(this._offset||0)},Qe.creationData=function Oe(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Qe.year=zg,Qe.isLeapYear=function uM(){return Bu(this.year())},Qe.weekYear=function qp(m){return Kc.call(this,m,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Qe.isoWeekYear=function Cl(m){return Kc.call(this,m,this.isoWeek(),this.isoWeekday(),1,4)},Qe.quarter=Qe.quarters=function PM(m){return null==m?Math.ceil((this.month()+1)/3):this.month(3*(m-1)+this.month()%3)},Qe.month=xp,Qe.daysInMonth=function Cp(){return Vu(this.year(),this.month())},Qe.week=Qe.weeks=function Wu(m){var I=this.localeData().week(this);return null==m?I:this.add(7*(m-I),"d")},Qe.isoWeek=Qe.isoWeeks=function Nc(m){var I=Rc(this,1,4).week;return null==m?I:this.add(7*(m-I),"d")},Qe.weeksInYear=function ih(){var m=this.localeData()._week;return dn(this.year(),m.dow,m.doy)},Qe.isoWeeksInYear=function Io(){return dn(this.year(),1,4)},Qe.date=rh,Qe.day=Qe.days=function Yc(m){if(!this.isValid())return null!=m?this:NaN;var I=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=m?(m=function Gg(m,I){return"string"!=typeof m?m:isNaN(m)?"number"==typeof(m=I.weekdaysParse(m))?m:null:parseInt(m,10)}(m,this.localeData()),this.add(m-I,"d")):I},Qe.weekday=function $u(m){if(!this.isValid())return null!=m?this:NaN;var I=(this.day()+7-this.localeData()._week.dow)%7;return null==m?I:this.add(m-I,"d")},Qe.isoWeekday=function vl(m){if(!this.isValid())return null!=m?this:NaN;if(null!=m){var I=function qg(m,I){return"string"==typeof m?I.weekdaysParse(m)%7||7:isNaN(m)?null:m}(m,this.localeData());return this.day(this.day()%7?I:I-7)}return this.day()||7},Qe.dayOfYear=function _r(m){var I=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==m?I:this.add(m-I,"d")},Qe.hour=Qe.hours=Wo,Qe.minute=Qe.minutes=qo,Qe.second=Qe.seconds=Kp,Qe.millisecond=Qe.milliseconds=pb,Qe.utcOffset=function yM(m,I,j){var se,$=this._offset||0;if(!this.isValid())return null!=m?this:NaN;if(null!=m){if("string"==typeof m){if(null===(m=Fp(ka,m)))return this}else Math.abs(m)<16&&!j&&(m*=60);return!this._isUTC&&I&&(se=Np(this)),this._offset=m,this._isUTC=!0,null!=se&&this.add(se,"m"),$!==m&&(!I||this._changeInProgress?Hp(this,Eo(m-$,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,_.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?$:Np(this)},Qe.utc=function wM(m){return this.utcOffset(0,m)},Qe.local=function xM(m){return this._isUTC&&(this.utcOffset(0,m),this._isUTC=!1,m&&this.subtract(Np(this),"m")),this},Qe.parseZone=function CM(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var m=Fp(Fn,this._i);null!=m?this.utcOffset(m):this.utcOffset(0,!0)}return this},Qe.hasAlignedHourOffset=function kM(m){return!!this.isValid()&&(m=m?qn(m).utcOffset():0,(this.utcOffset()-m)%60==0)},Qe.isDST=function SM(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Qe.isLocal=function TM(){return!!this.isValid()&&!this._isUTC},Qe.isUtcOffset=function Yp(){return!!this.isValid()&&this._isUTC},Qe.isUtc=Ju,Qe.isUTC=Ju,Qe.zoneAbbr=function Zp(){return this._isUTC?"UTC":""},Qe.zoneName=function mb(){return this._isUTC?"Coordinated Universal Time":""},Qe.dates=X("dates accessor is deprecated. Use date instead.",rh),Qe.months=X("months accessor is deprecated. Use month instead",xp),Qe.years=X("years accessor is deprecated. Use year instead",zg),Qe.zone=X("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function MM(m,I){return null!=m?("string"!=typeof m&&(m=-m),this.utcOffset(m,I),this):-this.utcOffset()}),Qe.isDSTShifted=X("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function DM(){if(!p(this._isDSTShifted))return this._isDSTShifted;var m={};if(Z(m,this),(m=Hn(m))._a){var I=m._isUTC?L(m._a):qn(m._a);this._isDSTShifted=this.isValid()&&ae(m._a,I.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var Sn=ot.prototype;function Zc(m,I,j,$){var se=Jn(),Le=L().set($,I);return se[j](Le,m)}function lh(m,I,j){if(v(m)&&(I=m,m=void 0),m=m||"",null!=I)return Zc(m,I,j,"month");var $,se=[];for($=0;$<12;$++)se[$]=Zc(m,$,j,"month");return se}function kl(m,I,j,$){"boolean"==typeof m?(v(I)&&(j=I,I=void 0),I=I||""):(j=I=m,m=!1,v(I)&&(j=I,I=void 0),I=I||"");var se=Jn(),Le=m?se._week.dow:0;if(null!=j)return Zc(I,(j+Le)%7,$,"day");var je,Bt=[];for(je=0;je<7;je++)Bt[je]=Zc(I,(je+Le)%7,$,"day");return Bt}Sn.calendar=function en(m,I,j){var $=this._calendar[m]||this._calendar.sameElse;return Ce($)?$.call(I,j):$},Sn.longDateFormat=function In(m){var I=this._longDateFormat[m],j=this._longDateFormat[m.toUpperCase()];return I||!j?I:(this._longDateFormat[m]=j.replace(/MMMM|MM|DD|dddd/g,function($){return $.slice(1)}),this._longDateFormat[m])},Sn.invalidDate=function $e(){return this._invalidDate},Sn.ordinal=function or(m){return this._ordinal.replace("%d",m)},Sn.preparse=ah,Sn.postformat=ah,Sn.relativeTime=function W(m,I,j,$){var se=this._relativeTime[j];return Ce(se)?se(m,I,j,$):se.replace(/%d/i,m)},Sn.pastFuture=function re(m,I){var j=this._relativeTime[m>0?"future":"past"];return Ce(j)?j(I):j.replace(/%s/i,I)},Sn.set=function Ve(m){var I,j;for(j in m)Ce(I=m[j])?this[j]=I:this["_"+j]=I;this._config=m,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Sn.months=function fM(m,I){return m?f(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||Ug).test(I)?"format":"standalone"][m.month()]:f(this._months)?this._months:this._months.standalone},Sn.monthsShort=function Ac(m,I){return m?f(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[Ug.test(I)?"format":"standalone"][m.month()]:f(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Sn.monthsParse=function Mp(m,I,j){var $,se,Le;if(this._monthsParseExact)return Wg.call(this,m,I,j);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),$=0;$<12;$++){if(se=L([2e3,$]),j&&!this._longMonthsParse[$]&&(this._longMonthsParse[$]=new RegExp("^"+this.months(se,"").replace(".","")+"$","i"),this._shortMonthsParse[$]=new RegExp("^"+this.monthsShort(se,"").replace(".","")+"$","i")),!j&&!this._monthsParse[$]&&(Le="^"+this.months(se,"")+"|^"+this.monthsShort(se,""),this._monthsParse[$]=new RegExp(Le.replace(".",""),"i")),j&&"MMMM"===I&&this._longMonthsParse[$].test(m))return $;if(j&&"MMM"===I&&this._shortMonthsParse[$].test(m))return $;if(!j&&this._monthsParse[$].test(m))return $}},Sn.monthsRegex=function $g(m){return this._monthsParseExact?(S(this,"_monthsRegex")||Mt.call(this),m?this._monthsStrictRegex:this._monthsRegex):(S(this,"_monthsRegex")||(this._monthsRegex=kp),this._monthsStrictRegex&&m?this._monthsStrictRegex:this._monthsRegex)},Sn.monthsShortRegex=function ju(m){return this._monthsParseExact?(S(this,"_monthsRegex")||Mt.call(this),m?this._monthsShortStrictRegex:this._monthsShortRegex):(S(this,"_monthsShortRegex")||(this._monthsShortRegex=Fc),this._monthsShortStrictRegex&&m?this._monthsShortStrictRegex:this._monthsShortRegex)},Sn.week=function pM(m){return Rc(m,this._week.dow,this._week.doy).week},Sn.firstDayOfYear=function bl(){return this._week.doy},Sn.firstDayOfWeek=function _M(){return this._week.dow},Sn.weekdays=function Sp(m,I){return m?f(this._weekdays)?this._weekdays[m.day()]:this._weekdays[this._weekdays.isFormat.test(I)?"format":"standalone"][m.day()]:f(this._weekdays)?this._weekdays:this._weekdays.standalone},Sn.weekdaysMin=function we(m){return m?this._weekdaysMin[m.day()]:this._weekdaysMin},Sn.weekdaysShort=function Ta(m){return m?this._weekdaysShort[m.day()]:this._weekdaysShort},Sn.weekdaysParse=function Et(m,I,j){var $,se,Le;if(this._weekdaysParseExact)return Dp.call(this,m,I,j);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),$=0;$<7;$++){if(se=L([2e3,1]).day($),j&&!this._fullWeekdaysParse[$]&&(this._fullWeekdaysParse[$]=new RegExp("^"+this.weekdays(se,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[$]=new RegExp("^"+this.weekdaysShort(se,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[$]=new RegExp("^"+this.weekdaysMin(se,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[$]||(Le="^"+this.weekdays(se,"")+"|^"+this.weekdaysShort(se,"")+"|^"+this.weekdaysMin(se,""),this._weekdaysParse[$]=new RegExp(Le.replace(".",""),"i")),j&&"dddd"===I&&this._fullWeekdaysParse[$].test(m))return $;if(j&&"ddd"===I&&this._shortWeekdaysParse[$].test(m))return $;if(j&&"dd"===I&&this._minWeekdaysParse[$].test(m))return $;if(!j&&this._weekdaysParse[$].test(m))return $}},Sn.weekdaysRegex=function Qg(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||Tp.call(this),m?this._weekdaysStrictRegex:this._weekdaysRegex):(S(this,"_weekdaysRegex")||(this._weekdaysRegex=Xg),this._weekdaysStrictRegex&&m?this._weekdaysStrictRegex:this._weekdaysRegex)},Sn.weekdaysShortRegex=function fs(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||Tp.call(this),m?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(S(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Jg),this._weekdaysShortStrictRegex&&m?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Sn.weekdaysMinRegex=function gM(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||Tp.call(this),m?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(S(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=co),this._weekdaysMinStrictRegex&&m?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Sn.isPM=function Gu(m){return"p"===(m+"").toLowerCase().charAt(0)},Sn.meridiem=function Lp(m,I,j){return m>11?j?"pm":"PM":j?"am":"AM"},Ea("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(m){var I=m%10;return m+(1===ee(m%100/10)?"th":1===I?"st":2===I?"nd":3===I?"rd":"th")}}),_.lang=X("moment.lang is deprecated. Use moment.locale instead.",Ea),_.langData=X("moment.langData is deprecated. Use moment.localeData instead.",Jn);var Zo=Math.abs;function lr(m,I,j,$){var se=Eo(I,j);return m._milliseconds+=$*se._milliseconds,m._days+=$*se._days,m._months+=$*se._months,m._bubble()}function ms(m){return m<0?Math.floor(m):Math.ceil(m)}function Sl(m){return 4800*m/146097}function dh(m){return 146097*m/4800}function uo(m){return function(){return this.as(m)}}var Xc=uo("ms"),Qc=uo("s"),uh=uo("m"),tm=uo("h"),yb=uo("d"),Aa=uo("w"),Dl=uo("M"),Mb=uo("y");function Fa(m){return function(){return this.isValid()?this._data[m]:NaN}}var wb=Fa("milliseconds"),xb=Fa("seconds"),AM=Fa("minutes"),FM=Fa("hours"),fh=Fa("days"),nm=Fa("months"),im=Fa("years");var Xo=Math.round,ho={ss:44,s:45,m:45,h:22,d:26,M:11};function Jc(m,I,j,$,se){return se.relativeTime(I||1,!!j,m,$)}var rm=Math.abs;function $s(m){return(m>0)-(m<0)||+m}function Ll(){if(!this.isValid())return this.localeData().invalidDate();var $,se,m=rm(this._milliseconds)/1e3,I=rm(this._days),j=rm(this._months);$=J(m/60),se=J($/60),m%=60,$%=60;var je=J(j/12),Bt=j%=12,rn=I,mi=se,jr=$,Ra=m?m.toFixed(3).replace(/\.?0+$/,""):"",El=this.asSeconds();if(!El)return"P0D";var nd=El<0?"-":"",_s=$s(this._months)!==$s(El)?"-":"",kb=$s(this._days)!==$s(El)?"-":"",id=$s(this._milliseconds)!==$s(El)?"-":"";return nd+"P"+(je?_s+je+"Y":"")+(Bt?_s+Bt+"M":"")+(rn?kb+rn+"D":"")+(mi||jr||Ra?"T":"")+(mi?id+mi+"H":"")+(jr?id+jr+"M":"")+(Ra?id+Ra+"S":"")}var ln=Dr.prototype;return ln.isValid=function xl(){return this._isValid},ln.abs=function _b(){var m=this._data;return this._milliseconds=Zo(this._milliseconds),this._days=Zo(this._days),this._months=Zo(this._months),m.milliseconds=Zo(m.milliseconds),m.seconds=Zo(m.seconds),m.minutes=Zo(m.minutes),m.hours=Zo(m.hours),m.months=Zo(m.months),m.years=Zo(m.years),this},ln.add=function Ws(m,I){return lr(this,m,I,1)},ln.subtract=function ei(m,I){return lr(this,m,I,-1)},ln.as=function bb(m){if(!this.isValid())return NaN;var I,j,$=this._milliseconds;if("month"===(m=fe(m))||"year"===m)return j=this._months+Sl(I=this._days+$/864e5),"month"===m?j:j/12;switch(I=this._days+Math.round(dh(this._months)),m){case"week":return I/7+$/6048e5;case"day":return I+$/864e5;case"hour":return 24*I+$/36e5;case"minute":return 1440*I+$/6e4;case"second":return 86400*I+$/1e3;case"millisecond":return Math.floor(864e5*I)+$;default:throw new Error("Unknown unit "+m)}},ln.asMilliseconds=Xc,ln.asSeconds=Qc,ln.asMinutes=uh,ln.asHours=tm,ln.asDays=yb,ln.asWeeks=Aa,ln.asMonths=Dl,ln.asYears=Mb,ln.valueOf=function vb(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*ee(this._months/12):NaN},ln._bubble=function gb(){var se,Le,je,Bt,rn,m=this._milliseconds,I=this._days,j=this._months,$=this._data;return m>=0&&I>=0&&j>=0||m<=0&&I<=0&&j<=0||(m+=864e5*ms(dh(j)+I),I=0,j=0),$.milliseconds=m%1e3,se=J(m/1e3),$.seconds=se%60,Le=J(se/60),$.minutes=Le%60,je=J(Le/60),$.hours=je%24,I+=J(je/24),j+=rn=J(Sl(I)),I-=ms(dh(rn)),Bt=J(j/12),j%=12,$.days=I,$.months=j,$.years=Bt,this},ln.clone=function OM(){return Eo(this)},ln.get=function hh(m){return m=fe(m),this.isValid()?this[m+"s"]():NaN},ln.milliseconds=wb,ln.seconds=xb,ln.minutes=AM,ln.hours=FM,ln.days=fh,ln.weeks=function Tl(){return J(this.days()/7)},ln.months=nm,ln.years=im,ln.humanize=function td(m){if(!this.isValid())return this.localeData().invalidDate();var I=this.localeData(),j=function Cb(m,I,j){var $=Eo(m).abs(),se=Xo($.as("s")),Le=Xo($.as("m")),je=Xo($.as("h")),Bt=Xo($.as("d")),rn=Xo($.as("M")),mi=Xo($.as("y")),jr=se<=ho.ss&&["s",se]||se0,jr[4]=j,Jc.apply(null,jr)}(this,!m,I);return m&&(j=I.pastFuture(+this,j)),I.postformat(j)},ln.toISOString=Ll,ln.toString=Ll,ln.toJSON=Ll,ln.locale=nh,ln.localeData=Ot,ln.toIsoString=X("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ll),ln.lang=qc,rt("X",0,0,"unix"),rt("x",0,0,"valueOf"),gt("x",Ca),gt("X",/[+-]?\d+(\.\d{1,3})?/),kn("X",function(m,I,j){j._d=new Date(1e3*parseFloat(m,10))}),kn("x",function(m,I,j){j._d=new Date(ee(m))}),_.version="2.22.2",function u(m){O=m}(qn),_.fn=Qe,_.min=function fr(){return Us("isBefore",[].slice.call(arguments,0))},_.max=function vM(){return Us("isAfter",[].slice.call(arguments,0))},_.now=function(){return Date.now?Date.now():+new Date},_.utc=L,_.unix=function oh(m){return qn(1e3*m)},_.months=function Xp(m,I){return lh(m,I,"months")},_.isDate=C,_.locale=Ea,_.invalid=ie,_.duration=Eo,_.isMoment=G,_.weekdays=function Jp(m,I,j){return kl(m,I,j,"weekdays")},_.parseZone=function sh(){return qn.apply(null,arguments).parseZone()},_.localeData=Jn,_.isDuration=Qu,_.monthsShort=function Qp(m,I){return lh(m,I,"monthsShort")},_.weekdaysMin=function ch(m,I,j){return kl(m,I,j,"weekdaysMin")},_.defineLocale=Bc,_.updateLocale=function Ke(m,I){if(null!=I){var j,$,se=La;null!=($=Pt(m))&&(se=$._config),(j=new ot(I=tt(se,I))).parentLocale=Oi[m],Oi[m]=j,Ea(m)}else null!=Oi[m]&&(null!=Oi[m].parentLocale?Oi[m]=Oi[m].parentLocale:null!=Oi[m]&&delete Oi[m]);return Oi[m]},_.locales=function bn(){return st(Oi)},_.weekdaysShort=function em(m,I,j){return kl(m,I,j,"weekdaysShort")},_.normalizeUnits=fe,_.relativeTimeRounding=function ed(m){return void 0===m?Xo:"function"==typeof m&&(Xo=m,!0)},_.relativeTimeThreshold=function ph(m,I){return void 0!==ho[m]&&(void 0===I?ho[m]:(ho[m]=I,"s"===m&&(ho.ss=I-1),!0))},_.calendarFormat=function jp(m,I){var j=m.diff(I,"days",!0);return j<-6?"sameElse":j<-1?"lastWeek":j<0?"lastDay":j<1?"sameDay":j<2?"nextDay":j<7?"nextWeek":"sameElse"},_.prototype=Qe,_.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},_}()},6700:(he,ge,N)=>{var O={"./af":7088,"./af.js":7088,"./ar":7038,"./ar-dz":2502,"./ar-dz.js":2502,"./ar-kw":128,"./ar-kw.js":128,"./ar-ly":4519,"./ar-ly.js":4519,"./ar-ma":5443,"./ar-ma.js":5443,"./ar-sa":7642,"./ar-sa.js":7642,"./ar-tn":8592,"./ar-tn.js":8592,"./ar.js":7038,"./az":1213,"./az.js":1213,"./be":9191,"./be.js":9191,"./bg":322,"./bg.js":322,"./bm":8042,"./bm.js":8042,"./bn":9620,"./bn.js":9620,"./bo":9645,"./bo.js":9645,"./br":5020,"./br.js":5020,"./bs":4792,"./bs.js":4792,"./ca":7980,"./ca.js":7980,"./cs":7322,"./cs.js":7322,"./cv":365,"./cv.js":365,"./cy":2092,"./cy.js":2092,"./da":7387,"./da.js":7387,"./de":4307,"./de-at":9459,"./de-at.js":9459,"./de-ch":3694,"./de-ch.js":3694,"./de.js":4307,"./dv":9659,"./dv.js":9659,"./el":3460,"./el.js":3460,"./en-au":4369,"./en-au.js":4369,"./en-ca":530,"./en-ca.js":530,"./en-gb":9998,"./en-gb.js":9998,"./en-ie":3391,"./en-ie.js":3391,"./en-il":5414,"./en-il.js":5414,"./en-nz":1248,"./en-nz.js":1248,"./eo":4530,"./eo.js":4530,"./es":6866,"./es-do":8944,"./es-do.js":8944,"./es-us":3609,"./es-us.js":3609,"./es.js":6866,"./et":6725,"./et.js":6725,"./eu":7931,"./eu.js":7931,"./fa":6417,"./fa.js":6417,"./fi":944,"./fi.js":944,"./fo":5867,"./fo.js":5867,"./fr":1636,"./fr-ca":6848,"./fr-ca.js":6848,"./fr-ch":7773,"./fr-ch.js":7773,"./fr.js":1636,"./fy":4940,"./fy.js":4940,"./gd":6924,"./gd.js":6924,"./gl":6398,"./gl.js":6398,"./gom-latn":2545,"./gom-latn.js":2545,"./gu":2641,"./gu.js":2641,"./he":7536,"./he.js":7536,"./hi":6335,"./hi.js":6335,"./hr":7458,"./hr.js":7458,"./hu":6540,"./hu.js":6540,"./hy-am":5283,"./hy-am.js":5283,"./id":8780,"./id.js":8780,"./is":4205,"./is.js":4205,"./it":4211,"./it.js":4211,"./ja":1003,"./ja.js":1003,"./jv":420,"./jv.js":420,"./ka":851,"./ka.js":851,"./kk":6074,"./kk.js":6074,"./km":3343,"./km.js":3343,"./kn":4799,"./kn.js":4799,"./ko":3549,"./ko.js":3549,"./ky":3125,"./ky.js":3125,"./lb":9586,"./lb.js":9586,"./lo":2349,"./lo.js":2349,"./lt":2400,"./lt.js":2400,"./lv":9991,"./lv.js":9991,"./me":8477,"./me.js":8477,"./mi":5118,"./mi.js":5118,"./mk":5943,"./mk.js":5943,"./ml":3849,"./ml.js":3849,"./mn":1977,"./mn.js":1977,"./mr":6184,"./mr.js":6184,"./ms":485,"./ms-my":4524,"./ms-my.js":4524,"./ms.js":485,"./mt":6681,"./mt.js":6681,"./my":2024,"./my.js":2024,"./nb":2688,"./nb.js":2688,"./ne":8914,"./ne.js":8914,"./nl":1758,"./nl-be":2272,"./nl-be.js":2272,"./nl.js":1758,"./nn":1510,"./nn.js":1510,"./pa-in":7944,"./pa-in.js":7944,"./pl":1605,"./pl.js":1605,"./pt":4225,"./pt-br":3840,"./pt-br.js":3840,"./pt.js":4225,"./ro":5128,"./ro.js":5128,"./ru":5127,"./ru.js":5127,"./sd":2525,"./sd.js":2525,"./se":9893,"./se.js":9893,"./si":3123,"./si.js":3123,"./sk":9635,"./sk.js":9635,"./sl":8106,"./sl.js":8106,"./sq":8799,"./sq.js":8799,"./sr":7949,"./sr-cyrl":2872,"./sr-cyrl.js":2872,"./sr.js":7949,"./ss":6167,"./ss.js":6167,"./sv":9713,"./sv.js":9713,"./sw":1982,"./sw.js":1982,"./ta":2732,"./ta.js":2732,"./te":3636,"./te.js":3636,"./tet":2115,"./tet.js":2115,"./tg":9801,"./tg.js":9801,"./th":2868,"./th.js":2868,"./tl-ph":2360,"./tl-ph.js":2360,"./tlh":6645,"./tlh.js":6645,"./tr":8374,"./tr.js":8374,"./tzl":256,"./tzl.js":256,"./tzm":1595,"./tzm-latn":1631,"./tzm-latn.js":1631,"./tzm.js":1595,"./ug-cn":6050,"./ug-cn.js":6050,"./uk":5610,"./uk.js":5610,"./ur":6077,"./ur.js":6077,"./uz":2862,"./uz-latn":2207,"./uz-latn.js":2207,"./uz.js":2862,"./vi":8093,"./vi.js":8093,"./x-pseudo":5590,"./x-pseudo.js":5590,"./yo":9058,"./yo.js":9058,"./zh-cn":7908,"./zh-cn.js":7908,"./zh-hk":8867,"./zh-hk.js":8867,"./zh-tw":3291,"./zh-tw.js":3291};function _(f){var h=u(f);return N(h)}function u(f){if(!N.o(O,f)){var h=new Error("Cannot find module '"+f+"'");throw h.code="MODULE_NOT_FOUND",h}return O[f]}_.keys=function(){return Object.keys(O)},_.resolve=u,he.exports=_,_.id=6700},6297:(he,ge,N)=>{var O={"./de.json":[3634,634],"./de_base.json":[3431,431],"./en.json":[502,502],"./es.json":[4268,268],"./es_base.json":[3974,974],"./pt.json":[5733,733],"./pt_base.json":[7048,48]};function _(u){if(!N.o(O,u))return Promise.resolve().then(()=>{var y=new Error("Cannot find module '"+u+"'");throw y.code="MODULE_NOT_FOUND",y});var f=O[u],h=f[0];return N.e(f[1]).then(()=>N.t(h,19))}_.keys=()=>Object.keys(O),_.id=6297,he.exports=_}},he=>{he(he.s=2632)}]); \ No newline at end of file diff --git a/pkg/visor/static/polyfills.30bbe27e0ff95dbc.js b/pkg/visor/static/polyfills.30bbe27e0ff95dbc.js deleted file mode 100644 index 22c0e3e7a0..0000000000 --- a/pkg/visor/static/polyfills.30bbe27e0ff95dbc.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[429],{7435:(a,g,e)=>{"use strict";e(7795),e(8583)},8583:()=>{"use strict";!function(t){const i=t.performance;function v(se){i&&i.mark&&i.mark(se)}function c(se,H){i&&i.measure&&i.measure(se,H)}v("Zone");const E=t.__Zone_symbol_prefix||"__zone_symbol__";function P(se){return E+se}const I=!0===t[P("forceDuplicateZoneCheck")];if(t.Zone){if(I||"function"!=typeof t.Zone.__symbol__)throw new Error("Zone already loaded.");return t.Zone}let A=(()=>{class se{constructor(n,f){this._parent=n,this._name=f?f.name||"unnamed":"",this._properties=f&&f.properties||{},this._zoneDelegate=new z(this,this._parent&&this._parent._zoneDelegate,f)}static assertZonePatched(){if(t.Promise!==Ie.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let n=se.current;for(;n.parent;)n=n.parent;return n}static get current(){return he.zone}static get currentTask(){return je}static __load_patch(n,f,V=!1){if(Ie.hasOwnProperty(n)){if(!V&&I)throw Error("Already loaded patch: "+n)}else if(!t["__Zone_disable_"+n]){const J="Zone:"+n;v(J),Ie[n]=f(t,se,He),c(J,J)}}get parent(){return this._parent}get name(){return this._name}get(n){const f=this.getZoneWith(n);if(f)return f._properties[n]}getZoneWith(n){let f=this;for(;f;){if(f._properties.hasOwnProperty(n))return f;f=f._parent}return null}fork(n){if(!n)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,n)}wrap(n,f){if("function"!=typeof n)throw new Error("Expecting function got: "+n);const V=this._zoneDelegate.intercept(this,n,f),J=this;return function(){return J.runGuarded(V,this,arguments,f)}}run(n,f,V,J){he={parent:he,zone:this};try{return this._zoneDelegate.invoke(this,n,f,V,J)}finally{he=he.parent}}runGuarded(n,f=null,V,J){he={parent:he,zone:this};try{try{return this._zoneDelegate.invoke(this,n,f,V,J)}catch(we){if(this._zoneDelegate.handleError(this,we))throw we}}finally{he=he.parent}}runTask(n,f,V){if(n.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(n.zone||ve).name+"; Execution: "+this.name+")");if(n.state===ue&&(n.type===Q||n.type===ie))return;const J=n.state!=Pe;J&&n._transitionTo(Pe,re),n.runCount++;const we=je;je=n,he={parent:he,zone:this};try{n.type==ie&&n.data&&!n.data.isPeriodic&&(n.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,n,f,V)}catch(b){if(this._zoneDelegate.handleError(this,b))throw b}}finally{n.state!==ue&&n.state!==Re&&(n.type==Q||n.data&&n.data.isPeriodic?J&&n._transitionTo(re,Pe):(n.runCount=0,this._updateTaskCount(n,-1),J&&n._transitionTo(ue,Pe,ue))),he=he.parent,je=we}}scheduleTask(n){if(n.zone&&n.zone!==this){let V=this;for(;V;){if(V===n.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${n.zone.name}`);V=V.parent}}n._transitionTo(ke,ue);const f=[];n._zoneDelegates=f,n._zone=this;try{n=this._zoneDelegate.scheduleTask(this,n)}catch(V){throw n._transitionTo(Re,ke,ue),this._zoneDelegate.handleError(this,V),V}return n._zoneDelegates===f&&this._updateTaskCount(n,1),n.state==ke&&n._transitionTo(re,ke),n}scheduleMicroTask(n,f,V,J){return this.scheduleTask(new F(K,n,f,V,J,void 0))}scheduleMacroTask(n,f,V,J,we){return this.scheduleTask(new F(ie,n,f,V,J,we))}scheduleEventTask(n,f,V,J,we){return this.scheduleTask(new F(Q,n,f,V,J,we))}cancelTask(n){if(n.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(n.zone||ve).name+"; Execution: "+this.name+")");n._transitionTo(ce,re,Pe);try{this._zoneDelegate.cancelTask(this,n)}catch(f){throw n._transitionTo(Re,ce),this._zoneDelegate.handleError(this,f),f}return this._updateTaskCount(n,-1),n._transitionTo(ue,ce),n.runCount=0,n}_updateTaskCount(n,f){const V=n._zoneDelegates;-1==f&&(n._zoneDelegates=null);for(let J=0;Jse.hasTask(n,f),onScheduleTask:(se,H,n,f)=>se.scheduleTask(n,f),onInvokeTask:(se,H,n,f,V,J)=>se.invokeTask(n,f,V,J),onCancelTask:(se,H,n,f)=>se.cancelTask(n,f)};class z{constructor(H,n,f){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=H,this._parentDelegate=n,this._forkZS=f&&(f&&f.onFork?f:n._forkZS),this._forkDlgt=f&&(f.onFork?n:n._forkDlgt),this._forkCurrZone=f&&(f.onFork?this.zone:n._forkCurrZone),this._interceptZS=f&&(f.onIntercept?f:n._interceptZS),this._interceptDlgt=f&&(f.onIntercept?n:n._interceptDlgt),this._interceptCurrZone=f&&(f.onIntercept?this.zone:n._interceptCurrZone),this._invokeZS=f&&(f.onInvoke?f:n._invokeZS),this._invokeDlgt=f&&(f.onInvoke?n:n._invokeDlgt),this._invokeCurrZone=f&&(f.onInvoke?this.zone:n._invokeCurrZone),this._handleErrorZS=f&&(f.onHandleError?f:n._handleErrorZS),this._handleErrorDlgt=f&&(f.onHandleError?n:n._handleErrorDlgt),this._handleErrorCurrZone=f&&(f.onHandleError?this.zone:n._handleErrorCurrZone),this._scheduleTaskZS=f&&(f.onScheduleTask?f:n._scheduleTaskZS),this._scheduleTaskDlgt=f&&(f.onScheduleTask?n:n._scheduleTaskDlgt),this._scheduleTaskCurrZone=f&&(f.onScheduleTask?this.zone:n._scheduleTaskCurrZone),this._invokeTaskZS=f&&(f.onInvokeTask?f:n._invokeTaskZS),this._invokeTaskDlgt=f&&(f.onInvokeTask?n:n._invokeTaskDlgt),this._invokeTaskCurrZone=f&&(f.onInvokeTask?this.zone:n._invokeTaskCurrZone),this._cancelTaskZS=f&&(f.onCancelTask?f:n._cancelTaskZS),this._cancelTaskDlgt=f&&(f.onCancelTask?n:n._cancelTaskDlgt),this._cancelTaskCurrZone=f&&(f.onCancelTask?this.zone:n._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const V=f&&f.onHasTask;(V||n&&n._hasTaskZS)&&(this._hasTaskZS=V?f:W,this._hasTaskDlgt=n,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=H,f.onScheduleTask||(this._scheduleTaskZS=W,this._scheduleTaskDlgt=n,this._scheduleTaskCurrZone=this.zone),f.onInvokeTask||(this._invokeTaskZS=W,this._invokeTaskDlgt=n,this._invokeTaskCurrZone=this.zone),f.onCancelTask||(this._cancelTaskZS=W,this._cancelTaskDlgt=n,this._cancelTaskCurrZone=this.zone))}fork(H,n){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,H,n):new A(H,n)}intercept(H,n,f){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,H,n,f):n}invoke(H,n,f,V,J){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,H,n,f,V,J):n.apply(f,V)}handleError(H,n){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,H,n)}scheduleTask(H,n){let f=n;if(this._scheduleTaskZS)this._hasTaskZS&&f._zoneDelegates.push(this._hasTaskDlgtOwner),f=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,H,n),f||(f=n);else if(n.scheduleFn)n.scheduleFn(n);else{if(n.type!=K)throw new Error("Task is missing scheduleFn.");Z(n)}return f}invokeTask(H,n,f,V){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,H,n,f,V):n.callback.apply(f,V)}cancelTask(H,n){let f;if(this._cancelTaskZS)f=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,H,n);else{if(!n.cancelFn)throw Error("Task is not cancelable");f=n.cancelFn(n)}return f}hasTask(H,n){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,H,n)}catch(f){this.handleError(H,f)}}_updateTaskCount(H,n){const f=this._taskCounts,V=f[H],J=f[H]=V+n;if(J<0)throw new Error("More tasks executed then were scheduled.");0!=V&&0!=J||this.hasTask(this.zone,{microTask:f.microTask>0,macroTask:f.macroTask>0,eventTask:f.eventTask>0,change:H})}}class F{constructor(H,n,f,V,J,we){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=H,this.source=n,this.data=V,this.scheduleFn=J,this.cancelFn=we,!f)throw new Error("callback is not defined");this.callback=f;const b=this;this.invoke=H===Q&&V&&V.useG?F.invokeTask:function(){return F.invokeTask.call(t,b,this,arguments)}}static invokeTask(H,n,f){H||(H=this),Le++;try{return H.runCount++,H.zone.runTask(H,n,f)}finally{1==Le&&ae(),Le--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(ue,ke)}_transitionTo(H,n,f){if(this._state!==n&&this._state!==f)throw new Error(`${this.type} '${this.source}': can not transition to '${H}', expecting state '${n}'${f?" or '"+f+"'":""}, was '${this._state}'.`);this._state=H,H==ue&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const ne=P("setTimeout"),te=P("Promise"),oe=P("then");let G,me=[],de=!1;function Z(se){if(0===Le&&0===me.length)if(G||t[te]&&(G=t[te].resolve(0)),G){let H=G[oe];H||(H=G.then),H.call(G,ae)}else t[ne](ae,0);se&&me.push(se)}function ae(){if(!de){for(de=!0;me.length;){const se=me;me=[];for(let H=0;Hhe,onUnhandledError:ye,microtaskDrainDone:ye,scheduleMicroTask:Z,showUncaughtError:()=>!A[P("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:ye,patchMethod:()=>ye,bindArguments:()=>[],patchThen:()=>ye,patchMacroTask:()=>ye,patchEventPrototype:()=>ye,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>ye,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>ye,wrapWithCurrentZone:()=>ye,filterProperties:()=>[],attachOriginToPatched:()=>ye,_redefineProperty:()=>ye,patchCallbacks:()=>ye};let he={parent:null,zone:new A(null,null)},je=null,Le=0;function ye(){}c("Zone","Zone"),t.Zone=A}(typeof window<"u"&&window||typeof self<"u"&&self||global);const g=Object.getOwnPropertyDescriptor,e=Object.defineProperty,r=Object.getPrototypeOf,o=Object.create,l=Array.prototype.slice,u="addEventListener",s="removeEventListener",d=Zone.__symbol__(u),y=Zone.__symbol__(s),p="true",m="false",T=Zone.__symbol__("");function C(t,i){return Zone.current.wrap(t,i)}function M(t,i,v,c,E){return Zone.current.scheduleMacroTask(t,i,v,c,E)}const O=Zone.__symbol__,U=typeof window<"u",D=U?window:void 0,k=U&&D||"object"==typeof self&&self||global,w=[null];function j(t,i){for(let v=t.length-1;v>=0;v--)"function"==typeof t[v]&&(t[v]=C(t[v],i+"_"+v));return t}function S(t){return!t||!1!==t.writable&&!("function"==typeof t.get&&typeof t.set>"u")}const B=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,_=!("nw"in k)&&typeof k.process<"u"&&"[object process]"==={}.toString.call(k.process),Te=!_&&!B&&!(!U||!D.HTMLElement),De=typeof k.process<"u"&&"[object process]"==={}.toString.call(k.process)&&!B&&!(!U||!D.HTMLElement),Se={},Ne=function(t){if(!(t=t||k.event))return;let i=Se[t.type];i||(i=Se[t.type]=O("ON_PROPERTY"+t.type));const v=this||t.target||k,c=v[i];let E;if(Te&&v===D&&"error"===t.type){const P=t;E=c&&c.call(this,P.message,P.filename,P.lineno,P.colno,P.error),!0===E&&t.preventDefault()}else E=c&&c.apply(this,arguments),null!=E&&!E&&t.preventDefault();return E};function Ze(t,i,v){let c=g(t,i);if(!c&&v&&g(v,i)&&(c={enumerable:!0,configurable:!0}),!c||!c.configurable)return;const E=O("on"+i+"patched");if(t.hasOwnProperty(E)&&t[E])return;delete c.writable,delete c.value;const P=c.get,I=c.set,A=i.substr(2);let W=Se[A];W||(W=Se[A]=O("ON_PROPERTY"+A)),c.set=function(z){let F=this;!F&&t===k&&(F=k),F&&(F[W]&&F.removeEventListener(A,Ne),I&&I.apply(F,w),"function"==typeof z?(F[W]=z,F.addEventListener(A,Ne,!1)):F[W]=null)},c.get=function(){let z=this;if(!z&&t===k&&(z=k),!z)return null;const F=z[W];if(F)return F;if(P){let ne=P&&P.call(this);if(ne)return c.set.call(this,ne),"function"==typeof z.removeAttribute&&z.removeAttribute(i),ne}return null},e(t,i,c),t[E]=!0}function Ge(t,i,v){if(i)for(let c=0;cfunction(I,A){const W=v(I,A);return W.cbIdx>=0&&"function"==typeof A[W.cbIdx]?M(W.name,A[W.cbIdx],W,E):P.apply(I,A)})}function be(t,i){t[O("OriginalDelegate")]=i}let Ke=!1,Je=!1;function gt(){if(Ke)return Je;Ke=!0;try{const t=D.navigator.userAgent;(-1!==t.indexOf("MSIE ")||-1!==t.indexOf("Trident/")||-1!==t.indexOf("Edge/"))&&(Je=!0)}catch{}return Je}Zone.__load_patch("ZoneAwarePromise",(t,i,v)=>{const c=Object.getOwnPropertyDescriptor,E=Object.defineProperty,I=v.symbol,A=[],W=!0===t[I("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],z=I("Promise"),F=I("then");v.onUnhandledError=b=>{if(v.showUncaughtError()){const h=b&&b.rejection;h?console.error("Unhandled Promise rejection:",h instanceof Error?h.message:h,"; Zone:",b.zone.name,"; Task:",b.task&&b.task.source,"; Value:",h,h instanceof Error?h.stack:void 0):console.error(b)}},v.microtaskDrainDone=()=>{for(;A.length;){const b=A.shift();try{b.zone.runGuarded(()=>{throw b.throwOriginal?b.rejection:b})}catch(h){oe(h)}}};const te=I("unhandledPromiseRejectionHandler");function oe(b){v.onUnhandledError(b);try{const h=i[te];"function"==typeof h&&h.call(this,b)}catch{}}function me(b){return b&&b.then}function de(b){return b}function G(b){return n.reject(b)}const Z=I("state"),ae=I("value"),ve=I("finally"),ue=I("parentPromiseValue"),ke=I("parentPromiseState"),Pe=null,Re=!1;function ie(b,h){return x=>{try{he(b,h,x)}catch(N){he(b,!1,N)}}}const He=I("currentTaskTrace");function he(b,h,x){const N=function(){let b=!1;return function(x){return function(){b||(b=!0,x.apply(null,arguments))}}}();if(b===x)throw new TypeError("Promise resolved with itself");if(b[Z]===Pe){let Y=null;try{("object"==typeof x||"function"==typeof x)&&(Y=x&&x.then)}catch(q){return N(()=>{he(b,!1,q)})(),b}if(h!==Re&&x instanceof n&&x.hasOwnProperty(Z)&&x.hasOwnProperty(ae)&&x[Z]!==Pe)Le(x),he(b,x[Z],x[ae]);else if(h!==Re&&"function"==typeof Y)try{Y.call(x,N(ie(b,h)),N(ie(b,!1)))}catch(q){N(()=>{he(b,!1,q)})()}else{b[Z]=h;const q=b[ae];if(b[ae]=x,b[ve]===ve&&!0===h&&(b[Z]=b[ke],b[ae]=b[ue]),h===Re&&x instanceof Error){const $=i.currentTask&&i.currentTask.data&&i.currentTask.data.__creationTrace__;$&&E(x,He,{configurable:!0,enumerable:!1,writable:!0,value:$})}for(let $=0;${try{const X=b[ae],ee=!!x&&ve===x[ve];ee&&(x[ue]=X,x[ke]=q);const le=h.run($,void 0,ee&&$!==G&&$!==de?[]:[X]);he(x,!0,le)}catch(X){he(x,!1,X)}},x)}const H=function(){};class n{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(h){return he(new this(null),!0,h)}static reject(h){return he(new this(null),Re,h)}static race(h){let x,N,Y=new this((X,ee)=>{x=X,N=ee});function q(X){x(X)}function $(X){N(X)}for(let X of h)me(X)||(X=this.resolve(X)),X.then(q,$);return Y}static all(h){return n.allWithCallback(h)}static allSettled(h){return(this&&this.prototype instanceof n?this:n).allWithCallback(h,{thenCallback:N=>({status:"fulfilled",value:N}),errorCallback:N=>({status:"rejected",reason:N})})}static allWithCallback(h,x){let N,Y,q=new this((le,Ee)=>{N=le,Y=Ee}),$=2,X=0;const ee=[];for(let le of h){me(le)||(le=this.resolve(le));const Ee=X;try{le.then(Me=>{ee[Ee]=x?x.thenCallback(Me):Me,$--,0===$&&N(ee)},Me=>{x?(ee[Ee]=x.errorCallback(Me),$--,0===$&&N(ee)):Y(Me)})}catch(Me){Y(Me)}$++,X++}return $-=2,0===$&&N(ee),q}constructor(h){const x=this;if(!(x instanceof n))throw new Error("Must be an instanceof Promise.");x[Z]=Pe,x[ae]=[];try{h&&h(ie(x,!0),ie(x,Re))}catch(N){he(x,!1,N)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return n}then(h,x){let N=this.constructor[Symbol.species];(!N||"function"!=typeof N)&&(N=this.constructor||n);const Y=new N(H),q=i.current;return this[Z]==Pe?this[ae].push(q,Y,h,x):ye(this,q,Y,h,x),Y}catch(h){return this.then(null,h)}finally(h){let x=this.constructor[Symbol.species];(!x||"function"!=typeof x)&&(x=n);const N=new x(H);N[ve]=ve;const Y=i.current;return this[Z]==Pe?this[ae].push(Y,N,h,h):ye(this,Y,N,h,h),N}}n.resolve=n.resolve,n.reject=n.reject,n.race=n.race,n.all=n.all;const f=t[z]=t.Promise;t.Promise=n;const V=I("thenPatched");function J(b){const h=b.prototype,x=c(h,"then");if(x&&(!1===x.writable||!x.configurable))return;const N=h.then;h[F]=N,b.prototype.then=function(Y,q){return new n((X,ee)=>{N.call(this,X,ee)}).then(Y,q)},b[V]=!0}return v.patchThen=J,f&&(J(f),pe(t,"fetch",b=>function we(b){return function(h,x){let N=b.apply(h,x);if(N instanceof n)return N;let Y=N.constructor;return Y[V]||J(Y),N}}(b))),Promise[i.__symbol__("uncaughtPromiseErrors")]=A,n}),Zone.__load_patch("toString",t=>{const i=Function.prototype.toString,v=O("OriginalDelegate"),c=O("Promise"),E=O("Error"),P=function(){if("function"==typeof this){const z=this[v];if(z)return"function"==typeof z?i.call(z):Object.prototype.toString.call(z);if(this===Promise){const F=t[c];if(F)return i.call(F)}if(this===Error){const F=t[E];if(F)return i.call(F)}}return i.call(this)};P[v]=i,Function.prototype.toString=P;const I=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":I.call(this)}});let ze=!1;if(typeof window<"u")try{const t=Object.defineProperty({},"passive",{get:function(){ze=!0}});window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch{ze=!1}const mt={useG:!0},Ce={},nt={},rt=new RegExp("^"+T+"(\\w+)(true|false)$"),Qe=O("propagationStopped");function ot(t,i){const v=(i?i(t):t)+m,c=(i?i(t):t)+p,E=T+v,P=T+c;Ce[t]={},Ce[t][m]=E,Ce[t][p]=P}function yt(t,i,v){const c=v&&v.add||u,E=v&&v.rm||s,P=v&&v.listeners||"eventListeners",I=v&&v.rmAll||"removeAllListeners",A=O(c),W="."+c+":",ne=function(G,Z,ae){if(G.isRemoved)return;const ve=G.callback;"object"==typeof ve&&ve.handleEvent&&(G.callback=ke=>ve.handleEvent(ke),G.originalDelegate=ve),G.invoke(G,Z,[ae]);const ue=G.options;ue&&"object"==typeof ue&&ue.once&&Z[E].call(Z,ae.type,G.originalDelegate?G.originalDelegate:G.callback,ue)},te=function(G){if(!(G=G||t.event))return;const Z=this||G.target||t,ae=Z[Ce[G.type][m]];if(ae)if(1===ae.length)ne(ae[0],Z,G);else{const ve=ae.slice();for(let ue=0;uefunction(E,P){E[Qe]=!0,c&&c.apply(E,P)})}function Tt(t,i,v,c,E){const P=Zone.__symbol__(c);if(i[P])return;const I=i[P]=i[c];i[c]=function(A,W,z){return W&&W.prototype&&E.forEach(function(F){const ne=`${v}.${c}::`+F,te=W.prototype;if(te.hasOwnProperty(F)){const oe=t.ObjectGetOwnPropertyDescriptor(te,F);oe&&oe.value?(oe.value=t.wrapWithCurrentZone(oe.value,ne),t._redefineProperty(W.prototype,F,oe)):te[F]&&(te[F]=t.wrapWithCurrentZone(te[F],ne))}else te[F]&&(te[F]=t.wrapWithCurrentZone(te[F],ne))}),I.call(i,A,W,z)},t.attachOriginToPatched(i[c],I)}const qe=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],bt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],at=["load"],it=["blur","error","focus","load","resize","scroll","messageerror"],It=["bounce","finish","start"],ct=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ve=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],Mt=["close","error","open","message"],Dt=["error","message"],Ue=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],qe,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ut(t,i,v){if(!v||0===v.length)return i;const c=v.filter(P=>P.target===t);if(!c||0===c.length)return i;const E=c[0].ignoreProperties;return i.filter(P=>-1===E.indexOf(P))}function xe(t,i,v,c){t&&Ge(t,ut(t,i,v),c)}Zone.__load_patch("util",(t,i,v)=>{v.patchOnProperties=Ge,v.patchMethod=pe,v.bindArguments=j,v.patchMacroTask=Oe;const c=i.__symbol__("BLACK_LISTED_EVENTS"),E=i.__symbol__("UNPATCHED_EVENTS");t[E]&&(t[c]=t[E]),t[c]&&(i[c]=i[E]=t[c]),v.patchEventPrototype=Et,v.patchEventTarget=yt,v.isIEOrEdge=gt,v.ObjectDefineProperty=e,v.ObjectGetOwnPropertyDescriptor=g,v.ObjectCreate=o,v.ArraySlice=l,v.patchClass=ge,v.wrapWithCurrentZone=C,v.filterProperties=ut,v.attachOriginToPatched=be,v._redefineProperty=Object.defineProperty,v.patchCallbacks=Tt,v.getGlobalObjects=()=>({globalSources:nt,zoneSymbolEventNames:Ce,eventNames:Ue,isBrowser:Te,isMix:De,isNode:_,TRUE_STR:p,FALSE_STR:m,ZONE_SYMBOL_PREFIX:T,ADD_EVENT_LISTENER_STR:u,REMOVE_EVENT_LISTENER_STR:s})});const _e=O("zoneTask");function We(t,i,v,c){let E=null,P=null;v+=c;const I={};function A(z){const F=z.data;return F.args[0]=function(){return z.invoke.apply(this,arguments)},F.handleId=E.apply(t,F.args),z}function W(z){return P.call(t,z.data.handleId)}E=pe(t,i+=c,z=>function(F,ne){if("function"==typeof ne[0]){const te={isPeriodic:"Interval"===c,delay:"Timeout"===c||"Interval"===c?ne[1]||0:void 0,args:ne},oe=ne[0];ne[0]=function(){try{return oe.apply(this,arguments)}finally{te.isPeriodic||("number"==typeof te.handleId?delete I[te.handleId]:te.handleId&&(te.handleId[_e]=null))}};const me=M(i,ne[0],te,A,W);if(!me)return me;const de=me.data.handleId;return"number"==typeof de?I[de]=me:de&&(de[_e]=me),de&&de.ref&&de.unref&&"function"==typeof de.ref&&"function"==typeof de.unref&&(me.ref=de.ref.bind(de),me.unref=de.unref.bind(de)),"number"==typeof de||de?de:me}return z.apply(t,ne)}),P=pe(t,v,z=>function(F,ne){const te=ne[0];let oe;"number"==typeof te?oe=I[te]:(oe=te&&te[_e],oe||(oe=te)),oe&&"string"==typeof oe.type?"notScheduled"!==oe.state&&(oe.cancelFn&&oe.data.isPeriodic||0===oe.runCount)&&("number"==typeof te?delete I[te]:te&&(te[_e]=null),oe.zone.cancelTask(oe)):z.apply(t,ne)})}Zone.__load_patch("legacy",t=>{const i=t[Zone.__symbol__("legacyPatch")];i&&i()}),Zone.__load_patch("queueMicrotask",(t,i,v)=>{v.patchMethod(t,"queueMicrotask",c=>function(E,P){i.current.scheduleMicroTask("queueMicrotask",P[0])})}),Zone.__load_patch("timers",t=>{const i="set",v="clear";We(t,i,v,"Timeout"),We(t,i,v,"Interval"),We(t,i,v,"Immediate")}),Zone.__load_patch("requestAnimationFrame",t=>{We(t,"request","cancel","AnimationFrame"),We(t,"mozRequest","mozCancel","AnimationFrame"),We(t,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(t,i)=>{const v=["alert","prompt","confirm"];for(let c=0;cfunction(W,z){return i.current.run(P,t,z,A)})}),Zone.__load_patch("EventTarget",(t,i,v)=>{(function Zt(t,i){i.patchEventPrototype(t,i)})(t,v),function Nt(t,i){if(Zone[i.symbol("patchEventTarget")])return;const{eventNames:v,zoneSymbolEventNames:c,TRUE_STR:E,FALSE_STR:P,ZONE_SYMBOL_PREFIX:I}=i.getGlobalObjects();for(let W=0;W{ge("MutationObserver"),ge("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(t,i,v)=>{ge("IntersectionObserver")}),Zone.__load_patch("FileReader",(t,i,v)=>{ge("FileReader")}),Zone.__load_patch("on_property",(t,i,v)=>{!function Ct(t,i){if(_&&!De||Zone[t.symbol("patchEvents")])return;const v=typeof WebSocket<"u",c=i.__Zone_ignore_on_properties;if(Te){const I=window,A=function pt(){try{const t=D.navigator.userAgent;if(-1!==t.indexOf("MSIE ")||-1!==t.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:I,ignoreProperties:["error"]}]:[];xe(I,Ue.concat(["messageerror"]),c&&c.concat(A),r(I)),xe(Document.prototype,Ue,c),typeof I.SVGElement<"u"&&xe(I.SVGElement.prototype,Ue,c),xe(Element.prototype,Ue,c),xe(HTMLElement.prototype,Ue,c),xe(HTMLMediaElement.prototype,bt,c),xe(HTMLFrameSetElement.prototype,qe.concat(it),c),xe(HTMLBodyElement.prototype,qe.concat(it),c),xe(HTMLFrameElement.prototype,at,c),xe(HTMLIFrameElement.prototype,at,c);const W=I.HTMLMarqueeElement;W&&xe(W.prototype,It,c);const z=I.Worker;z&&xe(z.prototype,Dt,c)}const E=i.XMLHttpRequest;E&&xe(E.prototype,ct,c);const P=i.XMLHttpRequestEventTarget;P&&xe(P&&P.prototype,ct,c),typeof IDBIndex<"u"&&(xe(IDBIndex.prototype,Ve,c),xe(IDBRequest.prototype,Ve,c),xe(IDBOpenDBRequest.prototype,Ve,c),xe(IDBDatabase.prototype,Ve,c),xe(IDBTransaction.prototype,Ve,c),xe(IDBCursor.prototype,Ve,c)),v&&xe(WebSocket.prototype,Mt,c)}(v,t)}),Zone.__load_patch("customElements",(t,i,v)=>{!function jt(t,i){const{isBrowser:v,isMix:c}=i.getGlobalObjects();(v||c)&&t.customElements&&"customElements"in t&&i.patchCallbacks(i,t.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(t,v)}),Zone.__load_patch("XHR",(t,i)=>{!function W(z){const F=z.XMLHttpRequest;if(!F)return;const ne=F.prototype;let oe=ne[d],me=ne[y];if(!oe){const K=z.XMLHttpRequestEventTarget;if(K){const ie=K.prototype;oe=ie[d],me=ie[y]}}const de="readystatechange",G="scheduled";function Z(K){const ie=K.data,Q=ie.target;Q[P]=!1,Q[A]=!1;const Ie=Q[E];oe||(oe=Q[d],me=Q[y]),Ie&&me.call(Q,de,Ie);const He=Q[E]=()=>{if(Q.readyState===Q.DONE)if(!ie.aborted&&Q[P]&&K.state===G){const je=Q[i.__symbol__("loadfalse")];if(0!==Q.status&&je&&je.length>0){const Le=K.invoke;K.invoke=function(){const ye=Q[i.__symbol__("loadfalse")];for(let se=0;sefunction(K,ie){return K[c]=0==ie[2],K[I]=ie[1],ue.apply(K,ie)}),re=O("fetchTaskAborting"),Pe=O("fetchTaskScheduling"),ce=pe(ne,"send",()=>function(K,ie){if(!0===i.current[Pe]||K[c])return ce.apply(K,ie);{const Q={target:K,url:K[I],isPeriodic:!1,args:ie,aborted:!1},Ie=M("XMLHttpRequest.send",ae,Q,Z,ve);K&&!0===K[A]&&!Q.aborted&&Ie.state===G&&Ie.invoke()}}),Re=pe(ne,"abort",()=>function(K,ie){const Q=function te(K){return K[v]}(K);if(Q&&"string"==typeof Q.type){if(null==Q.cancelFn||Q.data&&Q.data.aborted)return;Q.zone.cancelTask(Q)}else if(!0===i.current[re])return Re.apply(K,ie)})}(t);const v=O("xhrTask"),c=O("xhrSync"),E=O("xhrListener"),P=O("xhrScheduled"),I=O("xhrURL"),A=O("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",t=>{t.navigator&&t.navigator.geolocation&&function R(t,i){const v=t.constructor.name;for(let c=0;c{const W=function(){return A.apply(this,j(arguments,v+"."+E))};return be(W,A),W})(P)}}}(t.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(t,i)=>{function v(c){return function(E){st(t,c).forEach(I=>{const A=t.PromiseRejectionEvent;if(A){const W=new A(c,{promise:E.promise,reason:E.rejection});I.invoke(W)}})}}t.PromiseRejectionEvent&&(i[O("unhandledPromiseRejectionHandler")]=v("unhandledrejection"),i[O("rejectionHandledHandler")]=v("rejectionhandled"))})},7795:(a,g,e)=>{e(3364),e(1432),e(6562),e(4416),e(8681),e(2213),e(3471),e(4329),e(5159),e(5645)},4963:a=>{a.exports=function(g){if("function"!=typeof g)throw TypeError(g+" is not a function!");return g}},3328:a=>{a.exports=function(g,e,r,o){if(!(g instanceof e)||void 0!==o&&o in g)throw TypeError(r+": incorrect invocation!");return g}},7007:(a,g,e)=>{var r=e(5286);a.exports=function(o){if(!r(o))throw TypeError(o+" is not an object!");return o}},9490:(a,g,e)=>{var r=e(3531);a.exports=function(o,l){var u=[];return r(o,!1,u.push,u,l),u}},9315:(a,g,e)=>{var r=e(2110),o=e(875),l=e(2337);a.exports=function(u){return function(s,d,y){var C,p=r(s),m=o(p.length),T=l(y,m);if(u&&d!=d){for(;m>T;)if((C=p[T++])!=C)return!0}else for(;m>T;T++)if((u||T in p)&&p[T]===d)return u||T||0;return!u&&-1}}},50:(a,g,e)=>{var r=e(741),o=e(9797),l=e(508),u=e(875),s=e(6886);a.exports=function(d,y){var p=1==d,m=2==d,T=3==d,C=4==d,M=6==d,O=5==d||M,U=y||s;return function(D,k,L){for(var Te,De,w=l(D),j=o(w),R=r(k,L,3),S=u(j.length),B=0,_=p?U(D,S):m?U(D,0):void 0;S>B;B++)if((O||B in j)&&(De=R(Te=j[B],B,w),d))if(p)_[B]=De;else if(De)switch(d){case 3:return!0;case 5:return Te;case 6:return B;case 2:_.push(Te)}else if(C)return!1;return M?-1:T||C?C:_}}},2736:(a,g,e)=>{var r=e(5286),o=e(4302),l=e(6314)("species");a.exports=function(u){var s;return o(u)&&("function"==typeof(s=u.constructor)&&(s===Array||o(s.prototype))&&(s=void 0),r(s)&&null===(s=s[l])&&(s=void 0)),void 0===s?Array:s}},6886:(a,g,e)=>{var r=e(2736);a.exports=function(o,l){return new(r(o))(l)}},1488:(a,g,e)=>{var r=e(2032),o=e(6314)("toStringTag"),l="Arguments"==r(function(){return arguments}());a.exports=function(s){var d,y,p;return void 0===s?"Undefined":null===s?"Null":"string"==typeof(y=function(s,d){try{return s[d]}catch{}}(d=Object(s),o))?y:l?r(d):"Object"==(p=r(d))&&"function"==typeof d.callee?"Arguments":p}},2032:a=>{var g={}.toString;a.exports=function(e){return g.call(e).slice(8,-1)}},9824:(a,g,e)=>{"use strict";var r=e(9275).f,o=e(2503),l=e(4408),u=e(741),s=e(3328),d=e(3531),y=e(2923),p=e(5436),m=e(2974),T=e(7057),C=e(4728).fastKey,M=e(1616),O=T?"_s":"size",U=function(D,k){var w,L=C(k);if("F"!==L)return D._i[L];for(w=D._f;w;w=w.n)if(w.k==k)return w};a.exports={getConstructor:function(D,k,L,w){var j=D(function(R,S){s(R,j,k,"_i"),R._t=k,R._i=o(null),R._f=void 0,R._l=void 0,R[O]=0,null!=S&&d(S,L,R[w],R)});return l(j.prototype,{clear:function(){for(var S=M(this,k),B=S._i,_=S._f;_;_=_.n)_.r=!0,_.p&&(_.p=_.p.n=void 0),delete B[_.i];S._f=S._l=void 0,S[O]=0},delete:function(R){var S=M(this,k),B=U(S,R);if(B){var _=B.n,Te=B.p;delete S._i[B.i],B.r=!0,Te&&(Te.n=_),_&&(_.p=Te),S._f==B&&(S._f=_),S._l==B&&(S._l=Te),S[O]--}return!!B},forEach:function(S){M(this,k);for(var _,B=u(S,arguments.length>1?arguments[1]:void 0,3);_=_?_.n:this._f;)for(B(_.v,_.k,this);_&&_.r;)_=_.p},has:function(S){return!!U(M(this,k),S)}}),T&&r(j.prototype,"size",{get:function(){return M(this,k)[O]}}),j},def:function(D,k,L){var j,R,w=U(D,k);return w?w.v=L:(D._l=w={i:R=C(k,!0),k,v:L,p:j=D._l,n:void 0,r:!1},D._f||(D._f=w),j&&(j.n=w),D[O]++,"F"!==R&&(D._i[R]=w)),D},getEntry:U,setStrong:function(D,k,L){y(D,k,function(w,j){this._t=M(w,k),this._k=j,this._l=void 0},function(){for(var w=this,j=w._k,R=w._l;R&&R.r;)R=R.p;return w._t&&(w._l=R=R?R.n:w._t._f)?p(0,"keys"==j?R.k:"values"==j?R.v:[R.k,R.v]):(w._t=void 0,p(1))},L?"entries":"values",!L,!0),m(k)}}},3657:(a,g,e)=>{"use strict";var r=e(4408),o=e(4728).getWeak,l=e(7007),u=e(5286),s=e(3328),d=e(3531),y=e(50),p=e(9181),m=e(1616),T=y(5),C=y(6),M=0,O=function(k){return k._l||(k._l=new U)},U=function(){this.a=[]},D=function(k,L){return T(k.a,function(w){return w[0]===L})};U.prototype={get:function(k){var L=D(this,k);if(L)return L[1]},has:function(k){return!!D(this,k)},set:function(k,L){var w=D(this,k);w?w[1]=L:this.a.push([k,L])},delete:function(k){var L=C(this.a,function(w){return w[0]===k});return~L&&this.a.splice(L,1),!!~L}},a.exports={getConstructor:function(k,L,w,j){var R=k(function(S,B){s(S,R,L,"_i"),S._t=L,S._i=M++,S._l=void 0,null!=B&&d(B,w,S[j],S)});return r(R.prototype,{delete:function(S){if(!u(S))return!1;var B=o(S);return!0===B?O(m(this,L)).delete(S):B&&p(B,this._i)&&delete B[this._i]},has:function(B){if(!u(B))return!1;var _=o(B);return!0===_?O(m(this,L)).has(B):_&&p(_,this._i)}}),R},def:function(k,L,w){var j=o(l(L),!0);return!0===j?O(k).set(L,w):j[k._i]=w,k},ufstore:O}},5795:(a,g,e)=>{"use strict";var r=e(3816),o=e(2985),l=e(7234),u=e(4408),s=e(4728),d=e(3531),y=e(3328),p=e(5286),m=e(4253),T=e(7462),C=e(2943),M=e(266);a.exports=function(O,U,D,k,L,w){var j=r[O],R=j,S=L?"set":"add",B=R&&R.prototype,_={},Te=function(fe){var ge=B[fe];l(B,fe,"delete"==fe?function(pe){return!(w&&!p(pe))&&ge.call(this,0===pe?0:pe)}:"has"==fe?function(Oe){return!(w&&!p(Oe))&&ge.call(this,0===Oe?0:Oe)}:"get"==fe?function(Oe){return w&&!p(Oe)?void 0:ge.call(this,0===Oe?0:Oe)}:"add"==fe?function(Oe){return ge.call(this,0===Oe?0:Oe),this}:function(Oe,be){return ge.call(this,0===Oe?0:Oe,be),this})};if("function"==typeof R&&(w||B.forEach&&!m(function(){(new R).entries().next()}))){var De=new R,Se=De[S](w?{}:-0,1)!=De,Ne=m(function(){De.has(1)}),Ze=T(function(fe){new R(fe)}),Ge=!w&&m(function(){for(var fe=new R,ge=5;ge--;)fe[S](ge,ge);return!fe.has(-0)});Ze||((R=U(function(fe,ge){y(fe,R,O);var pe=M(new j,fe,R);return null!=ge&&d(ge,L,pe[S],pe),pe})).prototype=B,B.constructor=R),(Ne||Ge)&&(Te("delete"),Te("has"),L&&Te("get")),(Ge||Se)&&Te(S),w&&B.clear&&delete B.clear}else R=k.getConstructor(U,O,L,S),u(R.prototype,D),s.NEED=!0;return C(R,O),_[O]=R,o(o.G+o.W+o.F*(R!=j),_),w||k.setStrong(R,O,L),R}},5645:a=>{var g=a.exports={version:"2.5.7"};"number"==typeof __e&&(__e=g)},741:(a,g,e)=>{var r=e(4963);a.exports=function(o,l,u){if(r(o),void 0===l)return o;switch(u){case 1:return function(s){return o.call(l,s)};case 2:return function(s,d){return o.call(l,s,d)};case 3:return function(s,d,y){return o.call(l,s,d,y)}}return function(){return o.apply(l,arguments)}}},1355:a=>{a.exports=function(g){if(null==g)throw TypeError("Can't call method on "+g);return g}},7057:(a,g,e)=>{a.exports=!e(4253)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},2457:(a,g,e)=>{var r=e(5286),o=e(3816).document,l=r(o)&&r(o.createElement);a.exports=function(u){return l?o.createElement(u):{}}},4430:a=>{a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},2985:(a,g,e)=>{var r=e(3816),o=e(5645),l=e(7728),u=e(7234),s=e(741),d="prototype",y=function(p,m,T){var j,R,S,B,C=p&y.F,M=p&y.G,U=p&y.P,D=p&y.B,k=M?r:p&y.S?r[m]||(r[m]={}):(r[m]||{})[d],L=M?o:o[m]||(o[m]={}),w=L[d]||(L[d]={});for(j in M&&(T=m),T)S=((R=!C&&k&&void 0!==k[j])?k:T)[j],B=D&&R?s(S,r):U&&"function"==typeof S?s(Function.call,S):S,k&&u(k,j,S,p&y.U),L[j]!=S&&l(L,j,B),U&&w[j]!=S&&(w[j]=S)};r.core=o,y.F=1,y.G=2,y.S=4,y.P=8,y.B=16,y.W=32,y.U=64,y.R=128,a.exports=y},4253:a=>{a.exports=function(g){try{return!!g()}catch{return!0}}},3531:(a,g,e)=>{var r=e(741),o=e(8851),l=e(6555),u=e(7007),s=e(875),d=e(9002),y={},p={},m=a.exports=function(T,C,M,O,U){var w,j,R,S,D=U?function(){return T}:d(T),k=r(M,O,C?2:1),L=0;if("function"!=typeof D)throw TypeError(T+" is not iterable!");if(l(D)){for(w=s(T.length);w>L;L++)if((S=C?k(u(j=T[L])[0],j[1]):k(T[L]))===y||S===p)return S}else for(R=D.call(T);!(j=R.next()).done;)if((S=o(R,k,j.value,C))===y||S===p)return S};m.BREAK=y,m.RETURN=p},3816:a=>{var g=a.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=g)},9181:a=>{var g={}.hasOwnProperty;a.exports=function(e,r){return g.call(e,r)}},7728:(a,g,e)=>{var r=e(9275),o=e(681);a.exports=e(7057)?function(l,u,s){return r.f(l,u,o(1,s))}:function(l,u,s){return l[u]=s,l}},639:(a,g,e)=>{var r=e(3816).document;a.exports=r&&r.documentElement},1734:(a,g,e)=>{a.exports=!e(7057)&&!e(4253)(function(){return 7!=Object.defineProperty(e(2457)("div"),"a",{get:function(){return 7}}).a})},266:(a,g,e)=>{var r=e(5286),o=e(7375).set;a.exports=function(l,u,s){var y,d=u.constructor;return d!==s&&"function"==typeof d&&(y=d.prototype)!==s.prototype&&r(y)&&o&&o(l,y),l}},9797:(a,g,e)=>{var r=e(2032);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(o){return"String"==r(o)?o.split(""):Object(o)}},6555:(a,g,e)=>{var r=e(2803),o=e(6314)("iterator"),l=Array.prototype;a.exports=function(u){return void 0!==u&&(r.Array===u||l[o]===u)}},4302:(a,g,e)=>{var r=e(2032);a.exports=Array.isArray||function(l){return"Array"==r(l)}},5286:a=>{a.exports=function(g){return"object"==typeof g?null!==g:"function"==typeof g}},8851:(a,g,e)=>{var r=e(7007);a.exports=function(o,l,u,s){try{return s?l(r(u)[0],u[1]):l(u)}catch(y){var d=o.return;throw void 0!==d&&r(d.call(o)),y}}},9988:(a,g,e)=>{"use strict";var r=e(2503),o=e(681),l=e(2943),u={};e(7728)(u,e(6314)("iterator"),function(){return this}),a.exports=function(s,d,y){s.prototype=r(u,{next:o(1,y)}),l(s,d+" Iterator")}},2923:(a,g,e)=>{"use strict";var r=e(4461),o=e(2985),l=e(7234),u=e(7728),s=e(2803),d=e(9988),y=e(2943),p=e(468),m=e(6314)("iterator"),T=!([].keys&&"next"in[].keys()),M="keys",O="values",U=function(){return this};a.exports=function(D,k,L,w,j,R,S){d(L,k,w);var ge,pe,Oe,B=function(be){if(!T&&be in Se)return Se[be];switch(be){case M:case O:return function(){return new L(this,be)}}return function(){return new L(this,be)}},_=k+" Iterator",Te=j==O,De=!1,Se=D.prototype,Ne=Se[m]||Se["@@iterator"]||j&&Se[j],Ze=Ne||B(j),Ge=j?Te?B("entries"):Ze:void 0,fe="Array"==k&&Se.entries||Ne;if(fe&&(Oe=p(fe.call(new D)))!==Object.prototype&&Oe.next&&(y(Oe,_,!0),!r&&"function"!=typeof Oe[m]&&u(Oe,m,U)),Te&&Ne&&Ne.name!==O&&(De=!0,Ze=function(){return Ne.call(this)}),(!r||S)&&(T||De||!Se[m])&&u(Se,m,Ze),s[k]=Ze,s[_]=U,j)if(ge={values:Te?Ze:B(O),keys:R?Ze:B(M),entries:Ge},S)for(pe in ge)pe in Se||l(Se,pe,ge[pe]);else o(o.P+o.F*(T||De),k,ge);return ge}},7462:(a,g,e)=>{var r=e(6314)("iterator"),o=!1;try{var l=[7][r]();l.return=function(){o=!0},Array.from(l,function(){throw 2})}catch{}a.exports=function(u,s){if(!s&&!o)return!1;var d=!1;try{var y=[7],p=y[r]();p.next=function(){return{done:d=!0}},y[r]=function(){return p},u(y)}catch{}return d}},5436:a=>{a.exports=function(g,e){return{value:e,done:!!g}}},2803:a=>{a.exports={}},4461:a=>{a.exports=!1},4728:(a,g,e)=>{var r=e(3953)("meta"),o=e(5286),l=e(9181),u=e(9275).f,s=0,d=Object.isExtensible||function(){return!0},y=!e(4253)(function(){return d(Object.preventExtensions({}))}),p=function(O){u(O,r,{value:{i:"O"+ ++s,w:{}}})},M=a.exports={KEY:r,NEED:!1,fastKey:function(O,U){if(!o(O))return"symbol"==typeof O?O:("string"==typeof O?"S":"P")+O;if(!l(O,r)){if(!d(O))return"F";if(!U)return"E";p(O)}return O[r].i},getWeak:function(O,U){if(!l(O,r)){if(!d(O))return!0;if(!U)return!1;p(O)}return O[r].w},onFreeze:function(O){return y&&M.NEED&&d(O)&&!l(O,r)&&p(O),O}}},133:(a,g,e)=>{var r=e(8416),o=e(2985),l=e(3825)("metadata"),u=l.store||(l.store=new(e(147))),s=function(M,O,U){var D=u.get(M);if(!D){if(!U)return;u.set(M,D=new r)}var k=D.get(O);if(!k){if(!U)return;D.set(O,k=new r)}return k};a.exports={store:u,map:s,has:function(M,O,U){var D=s(O,U,!1);return void 0!==D&&D.has(M)},get:function(M,O,U){var D=s(O,U,!1);return void 0===D?void 0:D.get(M)},set:function(M,O,U,D){s(U,D,!0).set(M,O)},keys:function(M,O){var U=s(M,O,!1),D=[];return U&&U.forEach(function(k,L){D.push(L)}),D},key:function(M){return void 0===M||"symbol"==typeof M?M:String(M)},exp:function(M){o(o.S,"Reflect",M)}}},5345:(a,g,e)=>{"use strict";var r=e(7184),o=e(4548),l=e(4682),u=e(508),s=e(9797),d=Object.assign;a.exports=!d||e(4253)(function(){var y={},p={},m=Symbol(),T="abcdefghijklmnopqrst";return y[m]=7,T.split("").forEach(function(C){p[C]=C}),7!=d({},y)[m]||Object.keys(d({},p)).join("")!=T})?function(p,m){for(var T=u(p),C=arguments.length,M=1,O=o.f,U=l.f;C>M;)for(var j,D=s(arguments[M++]),k=O?r(D).concat(O(D)):r(D),L=k.length,w=0;L>w;)U.call(D,j=k[w++])&&(T[j]=D[j]);return T}:d},2503:(a,g,e)=>{var r=e(7007),o=e(5588),l=e(4430),u=e(9335)("IE_PROTO"),s=function(){},d="prototype",y=function(){var M,p=e(2457)("iframe"),m=l.length;for(p.style.display="none",e(639).appendChild(p),p.src="javascript:",(M=p.contentWindow.document).open(),M.write(" + \ No newline at end of file diff --git a/static/skywire-manager-src/dist/main.ab081323107f8567.js b/static/skywire-manager-src/dist/main.ab081323107f8567.js new file mode 100644 index 0000000000..d04ebfe8d8 --- /dev/null +++ b/static/skywire-manager-src/dist/main.ab081323107f8567.js @@ -0,0 +1 @@ +(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[179],{4752:(de,ge,N)=>{"use strict";function O(t){return"function"==typeof t}let v=!1;const u={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const n=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+n.stack)}else v&&console.log("RxJS: Back to a better error behavior. Thank you. <3");v=t},get useDeprecatedSynchronousErrorHandling(){return v}};function f(t){setTimeout(()=>{throw t},0)}const h={closed:!0,next(t){},error(t){if(u.useDeprecatedSynchronousErrorHandling)throw t;f(t)},complete(){}},M=Array.isArray||(t=>t&&"number"==typeof t.length);function p(t){return null!==t&&"object"==typeof t}const x=(()=>{function t(n){return Error.call(this),this.message=n?`${n.length} errors occurred during unsubscription:\n${n.map((e,i)=>`${i+1}) ${e.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=n,this}return t.prototype=Object.create(Error.prototype),t})();class T{constructor(n){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,n&&(this._ctorUnsubscribe=!0,this._unsubscribe=n)}unsubscribe(){let n;if(this.closed)return;let{_parentOrParents:e,_ctorUnsubscribe:i,_unsubscribe:o,_subscriptions:s}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,e instanceof T)e.remove(this);else if(null!==e)for(let a=0;an.concat(e instanceof x?e.errors:e),[])}T.EMPTY=((t=new T).closed=!0,t);const k="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class A extends T{constructor(n,e,i){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=h;break;case 1:if(!n){this.destination=h;break}if("object"==typeof n){n instanceof A?(this.syncErrorThrowable=n.syncErrorThrowable,this.destination=n,n.add(this)):(this.syncErrorThrowable=!0,this.destination=new U(this,n));break}default:this.syncErrorThrowable=!0,this.destination=new U(this,n,e,i)}}[k](){return this}static create(n,e,i){const o=new A(n,e,i);return o.syncErrorThrowable=!1,o}next(n){this.isStopped||this._next(n)}error(n){this.isStopped||(this.isStopped=!0,this._error(n))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(n){this.destination.next(n)}_error(n){this.destination.error(n),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:n}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=n,this}}class U extends A{constructor(n,e,i,o){super(),this._parentSubscriber=n;let s,a=this;O(e)?s=e:e&&(s=e.next,i=e.error,o=e.complete,e!==h&&(a=Object.create(e),O(a.unsubscribe)&&this.add(a.unsubscribe.bind(a)),a.unsubscribe=this.unsubscribe.bind(this))),this._context=a,this._next=s,this._error=i,this._complete=o}next(n){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;u.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,n)&&this.unsubscribe():this.__tryOrUnsub(this._next,n)}}error(n){if(!this.isStopped){const{_parentSubscriber:e}=this,{useDeprecatedSynchronousErrorHandling:i}=u;if(this._error)i&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,n),this.unsubscribe()):(this.__tryOrUnsub(this._error,n),this.unsubscribe());else if(e.syncErrorThrowable)i?(e.syncErrorValue=n,e.syncErrorThrown=!0):f(n),this.unsubscribe();else{if(this.unsubscribe(),i)throw n;f(n)}}}complete(){if(!this.isStopped){const{_parentSubscriber:n}=this;if(this._complete){const e=()=>this._complete.call(this._context);u.useDeprecatedSynchronousErrorHandling&&n.syncErrorThrowable?(this.__tryOrSetError(n,e),this.unsubscribe()):(this.__tryOrUnsub(e),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(n,e){try{n.call(this._context,e)}catch(i){if(this.unsubscribe(),u.useDeprecatedSynchronousErrorHandling)throw i;f(i)}}__tryOrSetError(n,e,i){if(!u.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,i)}catch(o){return u.useDeprecatedSynchronousErrorHandling?(n.syncErrorValue=o,n.syncErrorThrown=!0,!0):(f(o),!0)}return!1}_unsubscribe(){const{_parentSubscriber:n}=this;this._context=null,this._parentSubscriber=null,n.unsubscribe()}}const re="function"==typeof Symbol&&Symbol.observable||"@@observable";function ve(t){return t}function X(t){return 0===t.length?ve:1===t.length?t[0]:function(e){return t.reduce((i,o)=>o(i),e)}}let he=(()=>{class t{constructor(e){this._isScalar=!1,e&&(this._subscribe=e)}lift(e){const i=new t;return i.source=this,i.operator=e,i}subscribe(e,i,o){const{operator:s}=this,a=function K(t,n,e){if(t){if(t instanceof A)return t;if(t[k])return t[k]()}return t||n||e?new A(t,n,e):new A(h)}(e,i,o);if(a.add(s?s.call(a,this.source):this.source||u.useDeprecatedSynchronousErrorHandling&&!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a)),u.useDeprecatedSynchronousErrorHandling&&a.syncErrorThrowable&&(a.syncErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a}_trySubscribe(e){try{return this._subscribe(e)}catch(i){u.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=i),function B(t){for(;t;){const{closed:n,destination:e,isStopped:i}=t;if(n||i)return!1;t=e&&e instanceof A?e:null}return!0}(e)?e.error(i):console.warn(i)}}forEach(e,i){return new(i=q(i))((o,s)=>{let a;a=this.subscribe(l=>{try{e(l)}catch(d){s(d),a&&a.unsubscribe()}},s,o)})}_subscribe(e){const{source:i}=this;return i&&i.subscribe(e)}[re](){return this}pipe(...e){return 0===e.length?this:X(e)(this)}toPromise(e){return new(e=q(e))((i,o)=>{let s;this.subscribe(a=>s=a,a=>o(a),()=>i(s))})}}return t.create=n=>new t(n),t})();function q(t){if(t||(t=u.Promise||Promise),!t)throw new Error("no Promise impl found");return t}const ee=(()=>{function t(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return t.prototype=Object.create(Error.prototype),t})();class ae extends T{constructor(n,e){super(),this.subject=n,this.subscriber=e,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const n=this.subject,e=n.observers;if(this.subject=null,!e||0===e.length||n.isStopped||n.closed)return;const i=e.indexOf(this.subscriber);-1!==i&&e.splice(i,1)}}class le extends A{constructor(n){super(n),this.destination=n}}let J=(()=>{class t extends he{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[k](){return new le(this)}lift(e){const i=new Te(this,this);return i.operator=e,i}next(e){if(this.closed)throw new ee;if(!this.isStopped){const{observers:i}=this,o=i.length,s=i.slice();for(let a=0;anew Te(n,e),t})();class Te extends J{constructor(n,e){super(),this.destination=n,this.source=e}next(n){const{destination:e}=this;e&&e.next&&e.next(n)}error(n){const{destination:e}=this;e&&e.error&&this.destination.error(n)}complete(){const{destination:n}=this;n&&n.complete&&this.destination.complete()}_subscribe(n){const{source:e}=this;return e?this.source.subscribe(n):T.EMPTY}}function Se(t){return t&&"function"==typeof t.schedule}function ke(t,n){return function(i){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return i.lift(new Be(t,n))}}class Be{constructor(n,e){this.project=n,this.thisArg=e}call(n,e){return e.subscribe(new tt(n,this.project,this.thisArg))}}class tt extends A{constructor(n,e,i){super(n),this.project=e,this.count=0,this.thisArg=i||this}_next(n){let e;try{e=this.project.call(this.thisArg,n,this.count++)}catch(i){return void this.destination.error(i)}this.destination.next(e)}}const st=t=>n=>{for(let e=0,i=t.length;et&&"number"==typeof t.length&&"function"!=typeof t;function Pi(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}const Oi=t=>{if(t&&"function"==typeof t[re])return(t=>n=>{const e=t[re]();if("function"!=typeof e.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return e.subscribe(n)})(t);if(Ge(t))return st(t);if(Pi(t))return(t=>n=>(t.then(e=>{n.closed||(n.next(e),n.complete())},e=>n.error(e)).then(null,f),n))(t);if(t&&"function"==typeof t[an])return(t=>n=>{const e=t[an]();for(;;){let i;try{i=e.next()}catch(o){return n.error(o),n}if(i.done){n.complete();break}if(n.next(i.value),n.closed)break}return"function"==typeof e.return&&n.add(()=>{e.return&&e.return()}),n})(t);{const e=`You provided ${p(t)?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(e)}};function W(t,n){return new he(e=>{const i=new T;let o=0;return i.add(n.schedule(function(){o!==t.length?(e.next(t[o++]),e.closed||i.add(this.schedule())):e.complete()})),i})}function ue(t,n){return n?function fe(t,n){if(null!=t){if(function te(t){return t&&"function"==typeof t[re]}(t))return function dr(t,n){return new he(e=>{const i=new T;return i.add(n.schedule(()=>{const o=t[re]();i.add(o.subscribe({next(s){i.add(n.schedule(()=>e.next(s)))},error(s){i.add(n.schedule(()=>e.error(s)))},complete(){i.add(n.schedule(()=>e.complete()))}}))})),i})}(t,n);if(Pi(t))return function Xe(t,n){return new he(e=>{const i=new T;return i.add(n.schedule(()=>t.then(o=>{i.add(n.schedule(()=>{e.next(o),i.add(n.schedule(()=>e.complete()))}))},o=>{i.add(n.schedule(()=>e.error(o)))}))),i})}(t,n);if(Ge(t))return W(t,n);if(function pe(t){return t&&"function"==typeof t[an]}(t)||"string"==typeof t)return function oe(t,n){if(!t)throw new Error("Iterable cannot be null");return new he(e=>{const i=new T;let o;return i.add(()=>{o&&"function"==typeof o.return&&o.return()}),i.add(n.schedule(()=>{o=t[an](),i.add(n.schedule(function(){if(e.closed)return;let s,a;try{const l=o.next();s=l.value,a=l.done}catch(l){return void e.error(l)}a?e.complete():(e.next(s),this.schedule())}))})),i})}(t,n)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}(t,n):t instanceof he?t:new he(Oi(t))}class be extends A{constructor(n){super(),this.parent=n}_next(n){this.parent.notifyNext(n)}_error(n){this.parent.notifyError(n),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class Me extends A{notifyNext(n){this.destination.next(n)}notifyError(n){this.destination.error(n)}notifyComplete(){this.destination.complete()}}function Ie(t,n){if(n.closed)return;if(t instanceof he)return t.subscribe(n);let e;try{e=Oi(t)(n)}catch(i){n.error(i)}return e}function Ye(t,n,e=Number.POSITIVE_INFINITY){return"function"==typeof n?i=>i.pipe(Ye((o,s)=>ue(t(o,s)).pipe(ke((a,l)=>n(o,a,s,l))),e)):("number"==typeof n&&(e=n),i=>i.lift(new ut(t,e)))}class ut{constructor(n,e=Number.POSITIVE_INFINITY){this.project=n,this.concurrent=e}call(n,e){return e.subscribe(new mt(n,this.project,this.concurrent))}}class mt extends Me{constructor(n,e,i=Number.POSITIVE_INFINITY){super(n),this.project=e,this.concurrent=i,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(n){this.active0?this._next(n.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function fn(t=Number.POSITIVE_INFINITY){return Ye(ve,t)}function An(t,n){return n?W(t,n):new he(st(t))}function bt(...t){let n=Number.POSITIVE_INFINITY,e=null,i=t[t.length-1];return Se(i)?(e=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof i&&(n=t.pop()),null===e&&1===t.length&&t[0]instanceof he?t[0]:fn(n)(An(t,e))}function qt(){return function(n){return n.lift(new Gn(n))}}class Gn{constructor(n){this.connectable=n}call(n,e){const{connectable:i}=this;i._refCount++;const o=new oi(n,i),s=e.subscribe(o);return o.closed||(o.connection=i.connect()),s}}class oi extends A{constructor(n,e){super(n),this.connectable=e}_unsubscribe(){const{connectable:n}=this;if(!n)return void(this.connection=null);this.connectable=null;const e=n._refCount;if(e<=0)return void(this.connection=null);if(n._refCount=e-1,e>1)return void(this.connection=null);const{connection:i}=this,o=n._connection;this.connection=null,o&&(!i||o===i)&&o.unsubscribe()}}class Kr extends he{constructor(n,e){super(),this.source=n,this.subjectFactory=e,this._refCount=0,this._isComplete=!1}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let n=this._connection;return n||(this._isComplete=!1,n=this._connection=new T,n.add(this.source.subscribe(new Ai(this.getSubject(),this))),n.closed&&(this._connection=null,n=T.EMPTY)),n}refCount(){return qt()(this)}}const Io=(()=>{const t=Kr.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:t._subscribe},_isComplete:{value:t._isComplete,writable:!0},getSubject:{value:t.getSubject},connect:{value:t.connect},refCount:{value:t.refCount}}})();class Ai extends le{constructor(n,e){super(n),this.connectable=e}_error(n){this._unsubscribe(),super._error(n)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const n=this.connectable;if(n){this.connectable=null;const e=n._connection;n._refCount=0,n._subject=null,n._connection=null,e&&e.unsubscribe()}}}class Fn{constructor(n,e){this.subjectFactory=n,this.selector=e}call(n,e){const{selector:i}=this,o=this.subjectFactory(),s=i(o).subscribe(n);return s.add(e.subscribe(o)),s}}function jd(){return new J}function dl(){return t=>qt()(function si(t,n){return function(i){let o;if(o="function"==typeof t?t:function(){return t},"function"==typeof n)return i.lift(new Fn(o,n));const s=Object.create(i,Io);return s.source=i,s.subjectFactory=o,s}}(jd)(t))}function xn(t){for(let n in t)if(t[n]===xn)return n;throw Error("Could not find renamed property on target object.")}function _a(t,n){for(const e in n)n.hasOwnProperty(e)&&!t.hasOwnProperty(e)&&(t[e]=n[e])}function Fi(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(Fi).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const n=t.toString();if(null==n)return""+n;const e=n.indexOf("\n");return-1===e?n:n.substring(0,e)}function ba(t,n){return null==t||""===t?null===n?"":n:null==n||""===n?t:t+" "+n}const Hg=xn({__forward_ref__:xn});function pn(t){return t.__forward_ref__=pn,t.toString=function(){return Fi(this())},t}function Dt(t){return gt(t)?t():t}function gt(t){return"function"==typeof t&&t.hasOwnProperty(Hg)&&t.__forward_ref__===pn}function zd(t){return t&&!!t.\u0275providers}const hs="https://g.co/ng/security#xss";class Fe extends Error{constructor(n,e){super(function Tn(t,n){return`NG0${Math.abs(t)}${n?": "+n:""}`}(n,e)),this.code=n}}function xt(t){return"string"==typeof t?t:null==t?"":String(t)}function ai(t,n){throw new Fe(-201,!1)}function Zr(t,n){null==t&&function Mn(t,n,e,i){throw new Error(`ASSERTION ERROR: ${t}`+(null==i?"":` [Expected=> ${e} ${i} ${n} <=Actual]`))}(n,t,null,"!=")}function Ne(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function Nt(t){return{providers:t.providers||[],imports:t.imports||[]}}function uc(t){return df(t,hc)||df(t,hf)}function df(t,n){return t.hasOwnProperty(n)?t[n]:null}function Gd(t){return t&&(t.hasOwnProperty(qd)||t.hasOwnProperty(zg))?t[qd]:null}const hc=xn({\u0275prov:xn}),qd=xn({\u0275inj:xn}),hf=xn({ngInjectableDef:xn}),zg=xn({ngInjectorDef:xn});var Mt=(()=>((Mt=Mt||{})[Mt.Default=0]="Default",Mt[Mt.Host=1]="Host",Mt[Mt.Self=2]="Self",Mt[Mt.SkipSelf=4]="SkipSelf",Mt[Mt.Optional=8]="Optional",Mt))();let fc;function Wi(t){const n=fc;return fc=t,n}function ul(t,n,e){const i=uc(t);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:e&Mt.Optional?null:void 0!==n?n:void ai(Fi(t))}const wn=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),hl={},Kd="__NG_DI_FLAG__",pc="ngTempTokenPath",$g=/\n/gm,pf="__source";let Ma;function gs(t){const n=Ma;return Ma=t,n}function qg(t,n=Mt.Default){if(void 0===Ma)throw new Fe(-203,!1);return null===Ma?ul(t,void 0,n):Ma.get(t,n&Mt.Optional?null:void 0,n)}function we(t,n=Mt.Default){return(function ff(){return fc}()||qg)(Dt(t),n)}function Qe(t,n=Mt.Default){return we(t,mc(n))}function mc(t){return typeof t>"u"||"number"==typeof t?t:0|(t.optional&&8)|(t.host&&1)|(t.self&&2)|(t.skipSelf&&4)}function Zd(t){const n=[];for(let e=0;e((Oo=Oo||{})[Oo.OnPush=0]="OnPush",Oo[Oo.Default=1]="Default",Oo))(),Dr=(()=>(function(t){t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom"}(Dr||(Dr={})),Dr))();const lo={},cn=[],gc=xn({\u0275cmp:xn}),_c=xn({\u0275dir:xn}),bc=xn({\u0275pipe:xn}),_f=xn({\u0275mod:xn}),Zo=xn({\u0275fac:xn}),pl=xn({__NG_ELEMENT_ID__:xn}),bf=xn({__NG_ENV_ID__:xn});function Xd(t,n,e){let i=t.length;for(;;){const o=t.indexOf(n,e);if(-1===o)return o;if(0===o||t.charCodeAt(o-1)<=32){const s=n.length;if(o+s===i||t.charCodeAt(o+s)<=32)return o}e=o+1}}function hi(t,n,e){let i=0;for(;in){a=s-1;break}}}for(;ss?"":o[F+1].toLowerCase();const ie=8&i?G:null;if(ie&&-1!==Xd(ie,_,0)||2&i&&_!==G){if(co(i))return!1;a=!0}}}}else{if(!a&&!co(i)&&!co(d))return!1;if(a&&co(d))continue;a=!1,i=d|1&i}}return co(i)||a}function co(t){return 0==(1&t)}function Jd(t,n,e,i){if(null===n)return-1;let o=0;if(i||!e){let s=!1;for(;o-1)for(e++;e0?'="'+l+'"':"")+"]"}else 8&i?o+="."+a:4&i&&(o+=" "+a);else""!==o&&!co(a)&&(n+=yf(s,o),o=""),i=a,s=s||!co(i);e++}return""!==o&&(n+=yf(s,o)),n}function Ze(t){return Ko(()=>{const n=wf(t),e={...n,decls:t.decls,vars:t.vars,template:t.template,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,onPush:t.changeDetection===Oo.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&t.dependencies||null,getStandaloneInjector:null,data:t.data||{},encapsulation:t.encapsulation||Dr.Emulated,styles:t.styles||cn,_:null,schemas:t.schemas||null,tView:null,id:""};Cf(e);const i=t.dependencies;return e.directiveDefs=gl(i,!1),e.pipeDefs=gl(i,!0),e.id=function xf(t){let n=0;const e=[t.selectors,t.ngContentSelectors,t.hostVars,t.hostAttrs,t.consts,t.vars,t.decls,t.encapsulation,t.standalone,t.exportAs,JSON.stringify(t.inputs),JSON.stringify(t.outputs),Object.getOwnPropertyNames(t.type.prototype),!!t.contentQueries,!!t.viewQuery].join("|");for(const o of e)n=Math.imul(31,n)+o.charCodeAt(0)<<0;return n+=2147483648,"c"+n}(e),e})}function Mc(t,n,e){const i=t.\u0275cmp;i.directiveDefs=gl(n,!1),i.pipeDefs=gl(e,!0)}function i_(t){return gn(t)||hr(t)}function r_(t){return null!==t}function Ht(t){return Ko(()=>({type:t.type,bootstrap:t.bootstrap||cn,declarations:t.declarations||cn,imports:t.imports||cn,exports:t.exports||cn,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function Mf(t,n){if(null==t)return lo;const e={};for(const i in t)if(t.hasOwnProperty(i)){let o=t[i],s=o;Array.isArray(o)&&(s=o[1],o=o[0]),e[o]=i,n&&(n[o]=s)}return e}function Ke(t){return Ko(()=>{const n=wf(t);return Cf(n),n})}function ur(t){return{type:t.type,name:t.name,factory:null,pure:!1!==t.pure,standalone:!0===t.standalone,onDestroy:t.type.prototype.ngOnDestroy||null}}function gn(t){return t[gc]||null}function hr(t){return t[_c]||null}function fr(t){return t[bc]||null}function Nr(t,n){const e=t[_f]||null;if(!e&&!0===n)throw new Error(`Type ${Fi(t)} does not have '\u0275mod' property.`);return e}function wf(t){const n={};return{type:t.type,providersResolver:null,factory:null,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:n,exportAs:t.exportAs||null,standalone:!0===t.standalone,selectors:t.selectors||cn,viewQuery:t.viewQuery||null,features:t.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Mf(t.inputs,n),outputs:Mf(t.outputs)}}function Cf(t){t.features?.forEach(n=>n(t))}function gl(t,n){if(!t)return null;const e=n?fr:i_;return()=>("function"==typeof t?t():t).map(i=>e(i)).filter(r_)}const zt=0,lt=1,Yt=2,Xn=3,uo=4,Bs=5,pr=6,Ao=7,li=8,Da=9,Vs=10,Et=11,js=12,wc=13,zs=14,xi=15,Us=16,bs=17,Xr=18,_l=19,kf=20,vs=21,Xo=22,Cc=23,xc=24,Qt=25,tu=1,Sf=2,ho=7,kc=8,Ta=9,ni=11;function Yr(t){return Array.isArray(t)&&"object"==typeof t[tu]}function vr(t){return Array.isArray(t)&&!0===t[tu]}function Sc(t){return 0!=(4&t.flags)}function Ws(t){return t.componentOffset>-1}function Dc(t){return 1==(1&t.flags)}function fo(t){return!!t.template}function nu(t){return 0!=(512&t[Yt])}function $s(t,n){return t.hasOwnProperty(Zo)?t[Zo]:null}let p_=wn.WeakRef??class f_{constructor(n){this.ref=n}deref(){return this.ref}},g_=0,Fo=null,Gs=!1;function $i(t){const n=Fo;return Fo=t,n}class If{constructor(){this.id=g_++,this.ref=function m_(t){return new p_(t)}(this),this.producers=new Map,this.consumers=new Map,this.trackingVersion=0,this.valueVersion=0}consumerPollProducersForChange(){for(const[n,e]of this.producers){const i=e.producerNode.deref();if(void 0!==i&&e.atTrackingVersion===this.trackingVersion){if(i.producerPollStatus(e.seenValueVersion))return!0}else this.producers.delete(n),i?.consumers.delete(this.id)}return!1}producerMayHaveChanged(){const n=Gs;Gs=!0;try{for(const[e,i]of this.consumers){const o=i.consumerNode.deref();void 0!==o&&o.trackingVersion===i.atTrackingVersion?o.onConsumerDependencyMayHaveChanged():(this.consumers.delete(e),o?.producers.delete(this.id))}}finally{Gs=n}}producerAccessed(){if(Gs)throw new Error("");if(null===Fo)return;let n=Fo.producers.get(this.id);void 0===n?(n={consumerNode:Fo.ref,producerNode:this.ref,seenValueVersion:this.valueVersion,atTrackingVersion:Fo.trackingVersion},Fo.producers.set(this.id,n),this.consumers.set(Fo.id,n)):(n.seenValueVersion=this.valueVersion,n.atTrackingVersion=Fo.trackingVersion)}get hasProducers(){return this.producers.size>0}get producerUpdatesAllowed(){return!1!==Fo?.consumerAllowSignalWrites}producerPollStatus(n){return this.valueVersion!==n||(this.onProducerUpdateValueVersion(),this.valueVersion!==n)}}let Pf=null;const Je=()=>{};class M_ extends If{constructor(n,e,i){super(),this.watch=n,this.schedule=e,this.dirty=!1,this.cleanupFn=Je,this.registerOnCleanup=o=>{this.cleanupFn=o},this.consumerAllowSignalWrites=i}notify(){this.dirty||this.schedule(this),this.dirty=!0}onConsumerDependencyMayHaveChanged(){this.notify()}onProducerUpdateValueVersion(){}run(){if(this.dirty=!1,0!==this.trackingVersion&&!this.consumerPollProducersForChange())return;const n=$i(this);this.trackingVersion++;try{this.cleanupFn(),this.cleanupFn=Je,this.watch(this.registerOnCleanup)}finally{$i(n)}}cleanup(){this.cleanupFn()}}class w_{constructor(n,e,i){this.previousValue=n,this.currentValue=e,this.firstChange=i}isFirstChange(){return this.firstChange}}function Gi(){return Rn}function Rn(t){return t.type.prototype.ngOnChanges&&(t.setInput=Of),Ec}function Ec(){const t=Af(this),n=t?.current;if(n){const e=t.previous;if(e===lo)t.previous=n;else for(let i in n)e[i]=n[i];t.current=null,this.ngOnChanges(n)}}function Of(t,n,e,i){const o=this.declaredInputs[e],s=Af(t)||function C_(t,n){return t[Ic]=n}(t,{previous:lo,current:null}),a=s.current||(s.current={}),l=s.previous,d=l[o];a[o]=new w_(d&&d.currentValue,n,l===lo),t[i]=n}Gi.ngInherit=!0;const Ic="__ngSimpleChanges__";function Af(t){return t[Ic]||null}const Ro=function(t,n,e){},No="svg";function Un(t){for(;Array.isArray(t);)t=t[zt];return t}function Pc(t,n){return Un(n[t])}function yr(t,n){return Un(n[t.index])}function lu(t,n){return t.data[n]}function ys(t,n){return t[n]}function Tr(t,n){const e=n[t];return Yr(e)?e:e[zt]}function mo(t){return 128==(128&t[Yt])}function Ms(t,n){return null==n?null:t[n]}function Rf(t){t[bs]=0}function L_(t){1024&t[Yt]||(t[Yt]|=1024,Yf(t,1))}function Nf(t){1024&t[Yt]&&(t[Yt]&=-1025,Yf(t,-1))}function Yf(t,n){let e=t[Xn];if(null===e)return;e[Bs]+=n;let i=e;for(e=e[Xn];null!==e&&(1===n&&1===i[Bs]||-1===n&&0===i[Bs]);)e[Bs]+=n,i=e,e=e[Xn]}const Tt={lFrame:kM(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function Vf(){return Tt.bindingsEnabled}function Ea(){return null!==Tt.skipHydrationRootTNode}function Ve(){return Tt.lFrame.lView}function dn(){return Tt.lFrame.tView}function Pe(t){return Tt.lFrame.contextLView=t,t[li]}function Oe(t){return Tt.lFrame.contextLView=null,t}function tr(){let t=Oc();for(;null!==t&&64===t.type;)t=t.parent;return t}function Oc(){return Tt.lFrame.currentTNode}function Hr(t,n){const e=Tt.lFrame;e.currentTNode=t,e.isParent=n}function tn(){return Tt.lFrame.isParent}function m(){Tt.lFrame.isParent=!1}function ne(){const t=Tt.lFrame;let n=t.bindingRootIndex;return-1===n&&(n=t.bindingRootIndex=t.tView.bindingStartIndex),n}function At(){return Tt.lFrame.bindingIndex++}function Ut(t){const n=Tt.lFrame,e=n.bindingIndex;return n.bindingIndex=n.bindingIndex+t,e}function bl(t,n){const e=Tt.lFrame;e.bindingIndex=e.bindingRootIndex=t,cu(n)}function cu(t){Tt.lFrame.currentDirectiveIndex=t}function Ac(t){const n=Tt.lFrame.currentDirectiveIndex;return-1===n?null:t[n]}function jf(){return Tt.lFrame.currentQueryIndex}function yl(t){Tt.lFrame.currentQueryIndex=t}function GP(t){const n=t[lt];return 2===n.type?n.declTNode:1===n.type?t[pr]:null}function CM(t,n,e){if(e&Mt.SkipSelf){let o=n,s=t;for(;!(o=o.parent,null!==o||e&Mt.Host||(o=GP(s),null===o||(s=s[zs],10&o.type))););if(null===o)return!1;n=o,t=s}const i=Tt.lFrame=xM();return i.currentTNode=n,i.lView=t,!0}function N_(t){const n=xM(),e=t[lt];Tt.lFrame=n,n.currentTNode=e.firstChild,n.lView=t,n.tView=e,n.contextLView=t,n.bindingIndex=e.bindingStartIndex,n.inI18n=!1}function xM(){const t=Tt.lFrame,n=null===t?null:t.child;return null===n?kM(t):n}function kM(t){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=n),n}function SM(){const t=Tt.lFrame;return Tt.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const DM=SM;function Y_(){const t=SM();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Vr(){return Tt.lFrame.selectedIndex}function Ml(t){Tt.lFrame.selectedIndex=t}function fi(){const t=Tt.lFrame;return lu(t.tView,t.selectedIndex)}function wl(){Tt.lFrame.currentNamespace=No}function zf(){!function XP(){Tt.lFrame.currentNamespace=null}()}let LM=!0;function Uf(){return LM}function Ia(t){LM=t}function Wf(t,n){for(let e=n.directiveStart,i=n.directiveEnd;e=i)break}else n[d]<0&&(t[bs]+=65536),(l>12>16&&(3&t[Yt])===n&&(t[Yt]+=4096,IM(l,s)):IM(l,s)}const Fc=-1;class du{constructor(n,e,i){this.factory=n,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=i}}function PM(t){return t!==Fc}function qf(t){return 32767&t}function Kf(t,n){let e=function iO(t){return t>>16}(t),i=n;for(;e>0;)i=i[zs],e--;return i}let V_=!0;function Zf(t){const n=V_;return V_=t,n}const OM=255,AM=5;let rO=0;const Cs={};function Xf(t,n){const e=FM(t,n);if(-1!==e)return e;const i=n[lt];i.firstCreatePass&&(t.injectorIndex=n.length,j_(i.data,t),j_(n,null),j_(i.blueprint,null));const o=z_(t,n),s=t.injectorIndex;if(PM(o)){const a=qf(o),l=Kf(o,n),d=l[lt].data;for(let _=0;_<8;_++)n[s+_]=l[a+_]|d[a+_]}return n[s+8]=o,s}function j_(t,n){t.push(0,0,0,0,0,0,0,0,n)}function FM(t,n){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===n[t.injectorIndex+8]?-1:t.injectorIndex}function z_(t,n){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let e=0,i=null,o=n;for(;null!==o;){if(i=jM(o),null===i)return Fc;if(e++,o=o[zs],-1!==i.injectorIndex)return i.injectorIndex|e<<16}return Fc}function U_(t,n,e){!function oO(t,n,e){let i;"string"==typeof e?i=e.charCodeAt(0)||0:e.hasOwnProperty(pl)&&(i=e[pl]),null==i&&(i=e[pl]=rO++);const o=i&OM;n.data[t+(o>>AM)]|=1<=0?n&OM:cO:n}(e);if("function"==typeof s){if(!CM(n,t,i))return i&Mt.Host?RM(o,0,i):NM(n,e,i,o);try{const a=s(i);if(null!=a||i&Mt.Optional)return a;ai()}finally{DM()}}else if("number"==typeof s){let a=null,l=FM(t,n),d=Fc,_=i&Mt.Host?n[xi][pr]:null;for((-1===l||i&Mt.SkipSelf)&&(d=-1===l?z_(t,n):n[l+8],d!==Fc&&VM(i,!1)?(a=n[lt],l=qf(d),n=Kf(d,n)):l=-1);-1!==l;){const E=n[lt];if(BM(s,l,E.data)){const F=aO(l,n,e,a,i,_);if(F!==Cs)return F}d=n[l+8],d!==Fc&&VM(i,n[lt].data[l+8]===_)&&BM(s,l,n)?(a=E,l=qf(d),n=Kf(d,n)):l=-1}}return o}function aO(t,n,e,i,o,s){const a=n[lt],l=a.data[t+8],E=Jf(l,a,e,null==i?Ws(l)&&V_:i!=a&&0!=(3&l.type),o&Mt.Host&&s===l);return null!==E?Cl(n,a,E,l):Cs}function Jf(t,n,e,i,o){const s=t.providerIndexes,a=n.data,l=1048575&s,d=t.directiveStart,E=s>>20,G=o?l+E:t.directiveEnd;for(let ie=i?l:l+E;ie=d&&_e.type===e)return ie}if(o){const ie=a[d];if(ie&&fo(ie)&&ie.type===e)return d}return null}function Cl(t,n,e,i){let o=t[e];const s=n.data;if(function eO(t){return t instanceof du}(o)){const a=o;a.resolving&&function ao(t,n){const e=n?`. Dependency path: ${n.join(" > ")} > ${t}`:"";throw new Fe(-200,`Circular dependency in DI detected for ${t}${e}`)}(function yn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():xt(t)}(s[e]));const l=Zf(a.canSeeViewProviders);a.resolving=!0;const d=a.injectImpl?Wi(a.injectImpl):null;CM(t,i,Mt.Default);try{o=t[e]=a.factory(void 0,s,t,i),n.firstCreatePass&&e>=i.directiveStart&&function JP(t,n,e){const{ngOnChanges:i,ngOnInit:o,ngDoCheck:s}=n.type.prototype;if(i){const a=Rn(n);(e.preOrderHooks??=[]).push(t,a),(e.preOrderCheckHooks??=[]).push(t,a)}o&&(e.preOrderHooks??=[]).push(0-t,o),s&&((e.preOrderHooks??=[]).push(t,s),(e.preOrderCheckHooks??=[]).push(t,s))}(e,s[e],n)}finally{null!==d&&Wi(d),Zf(l),a.resolving=!1,DM()}}return o}function BM(t,n,e){return!!(e[n+(t>>AM)]&1<{const n=t.prototype.constructor,e=n[Zo]||W_(n),i=Object.prototype;let o=Object.getPrototypeOf(t.prototype).constructor;for(;o&&o!==i;){const s=o[Zo]||W_(o);if(s&&s!==e)return s;o=Object.getPrototypeOf(o)}return s=>new s})}function W_(t){return gt(t)?()=>{const n=W_(Dt(t));return n&&n()}:$s(t)}function jM(t){const n=t[lt],e=n.type;return 2===e?n.declTNode:1===e?t[pr]:null}function Pa(t){return function sO(t,n){if("class"===n)return t.classes;if("style"===n)return t.styles;const e=t.attrs;if(e){const i=e.length;let o=0;for(;o{const i=function $_(t){return function(...e){if(t){const i=t(...e);for(const o in i)this[o]=i[o]}}}(n);function o(...s){if(this instanceof o)return i.apply(this,s),this;const a=new o(...s);return l.annotation=a,l;function l(d,_,E){const F=d.hasOwnProperty(Yc)?d[Yc]:Object.defineProperty(d,Yc,{value:[]})[Yc];for(;F.length<=E;)F.push(null);return(F[E]=F[E]||[]).push(a),d}}return e&&(o.prototype=Object.create(e.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o})}function fu(t,n){t.forEach(e=>Array.isArray(e)?fu(e,n):n(e))}function UM(t,n,e){n>=t.length?t.push(e):t.splice(n,0,e)}function Qf(t,n){return n>=t.length-1?t.pop():t.splice(n,1)[0]}function pu(t,n){const e=[];for(let i=0;i=0?t[1|i]=e:(i=~i,function mO(t,n,e,i){let o=t.length;if(o==n)t.push(e,i);else if(1===o)t.push(i,t[0]),t[0]=e;else{for(o--,t.push(t[o-1],t[o]);o>n;)t[o]=t[o-2],o--;t[n]=e,t[n+1]=i}}(t,i,n,e)),i}function G_(t,n){const e=Vc(t,n);if(e>=0)return t[1|e]}function Vc(t,n){return function WM(t,n,e){let i=0,o=t.length>>e;for(;o!==i;){const s=i+(o-i>>1),a=t[s<n?o=s:i=s+1}return~(o<((Jr=Jr||{})[Jr.Important=1]="Important",Jr[Jr.DashCase=2]="DashCase",Jr))();const RO=/^>|^->||--!>|)/,YO="\u200b$1\u200b";const Q_=new Map;let HO=0;const tb="__ngContext__";function Lr(t,n){Yr(n)?(t[tb]=n[_l],function VO(t){Q_.set(t[_l],t)}(n)):t[tb]=n}let nb;function ib(t,n){return nb(t,n)}function bu(t){const n=t[Xn];return vr(n)?n[Xn]:n}function rb(t){return dw(t[js])}function ob(t){return dw(t[uo])}function dw(t){for(;null!==t&&!vr(t);)t=t[uo];return t}function Uc(t,n,e,i,o){if(null!=i){let s,a=!1;vr(i)?s=i:Yr(i)&&(a=!0,i=i[zt]);const l=Un(i);0===t&&null!==e?null==o?mw(n,e,l):kl(n,e,l,o||null,!0):1===t&&null!==e?kl(n,e,l,o||null,!0):2===t?function dp(t,n,e){const i=lp(t,n);i&&function sA(t,n,e,i){t.removeChild(n,e,i)}(t,i,n,e)}(n,l,a):3===t&&n.destroyNode(l),null!=s&&function cA(t,n,e,i,o){const s=e[ho];s!==Un(e)&&Uc(n,t,i,s,o);for(let l=ni;ln.replace(NO,YO))}(n))}function ap(t,n,e){return t.createElement(n,e)}function hw(t,n){const e=t[Ta],i=e.indexOf(n);Nf(n),e.splice(i,1)}function ab(t,n){if(t.length<=ni)return;const e=ni+n,i=t[e];if(i){const o=i[Us];null!==o&&o!==t&&hw(o,i),n>0&&(t[e-1][uo]=i[uo]);const s=Qf(t,ni+n);!function JO(t,n){yu(t,n,n[Et],2,null,null),n[zt]=null,n[pr]=null}(i[lt],i);const a=s[Xr];null!==a&&a.detachView(s[lt]),i[Xn]=null,i[uo]=null,i[Yt]&=-129}return i}function fw(t,n){if(!(256&n[Yt])){const e=n[Et];n[Cc]?.destroy(),n[xc]?.destroy(),e.destroyNode&&yu(t,n,e,3,null,null),function tA(t){let n=t[js];if(!n)return lb(t[lt],t);for(;n;){let e=null;if(Yr(n))e=n[js];else{const i=n[ni];i&&(e=i)}if(!e){for(;n&&!n[uo]&&n!==t;)Yr(n)&&lb(n[lt],n),n=n[Xn];null===n&&(n=t),Yr(n)&&lb(n[lt],n),e=n&&n[uo]}n=e}}(n)}}function lb(t,n){if(!(256&n[Yt])){n[Yt]&=-129,n[Yt]|=256,function oA(t,n){let e;if(null!=t&&null!=(e=t.destroyHooks))for(let i=0;i=0?i[a]():i[-a].unsubscribe(),s+=2}else e[s].call(i[e[s+1]]);null!==i&&(n[Ao]=null);const o=n[vs];if(null!==o){n[vs]=null;for(let s=0;s-1){const{encapsulation:s}=t.data[i.directiveStart+o];if(s===Dr.None||s===Dr.Emulated)return null}return yr(i,e)}}(t,n.parent,e)}function kl(t,n,e,i,o){t.insertBefore(n,e,i,o)}function mw(t,n,e){t.appendChild(n,e)}function gw(t,n,e,i,o){null!==i?kl(t,n,e,i,o):mw(t,n,e)}function lp(t,n){return t.parentNode(n)}function _w(t,n,e){return vw(t,n,e)}let db,up,pb,hp,vw=function bw(t,n,e){return 40&t.type?yr(t,e):null};function cp(t,n,e,i){const o=cb(t,i,n),s=n[Et],l=_w(i.parent||n[pr],i,n);if(null!=o)if(Array.isArray(e))for(let d=0;dt,createScript:t=>t,createScriptURL:t=>t})}catch{}return up}()?.createHTML(t)||t}function Tw(t){return function mb(){if(void 0===hp&&(hp=null,wn.trustedTypes))try{hp=wn.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t})}catch{}return hp}()?.createScriptURL(t)||t}class Sl{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${hs})`}}class gA extends Sl{getTypeName(){return"HTML"}}class _A extends Sl{getTypeName(){return"Style"}}class bA extends Sl{getTypeName(){return"Script"}}class vA extends Sl{getTypeName(){return"URL"}}class yA extends Sl{getTypeName(){return"ResourceURL"}}function _o(t){return t instanceof Sl?t.changingThisBreaksApplicationSecurity:t}function xs(t,n){const e=function MA(t){return t instanceof Sl&&t.getTypeName()||null}(t);if(null!=e&&e!==n){if("ResourceURL"===e&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${e} (see ${hs})`)}return e===n}class DA{constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n=""+n;try{const e=(new window.DOMParser).parseFromString(Wc(n),"text/html").body;return null===e?this.inertDocumentHelper.getInertBodyElement(n):(e.removeChild(e.firstChild),e)}catch{return null}}}class TA{constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){const e=this.inertDocument.createElement("template");return e.innerHTML=Wc(n),e}}const EA=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function fp(t){return(t=String(t)).match(EA)?t:"unsafe:"+t}function qs(t){const n={};for(const e of t.split(","))n[e]=!0;return n}function wu(...t){const n={};for(const e of t)for(const i in e)e.hasOwnProperty(i)&&(n[i]=!0);return n}const Ew=qs("area,br,col,hr,img,wbr"),Iw=qs("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Pw=qs("rp,rt"),gb=wu(Ew,wu(Iw,qs("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),wu(Pw,qs("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),wu(Pw,Iw)),_b=qs("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Ow=wu(_b,qs("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),qs("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),IA=qs("script,style,template");class PA{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(n){let e=n.firstChild,i=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?i=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,i&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let o=this.checkClobberedElement(e,e.nextSibling);if(o){e=o;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(n){const e=n.nodeName.toLowerCase();if(!gb.hasOwnProperty(e))return this.sanitizedSomething=!0,!IA.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const i=n.attributes;for(let o=0;o"),!0}endElement(n){const e=n.nodeName.toLowerCase();gb.hasOwnProperty(e)&&!Ew.hasOwnProperty(e)&&(this.buf.push(""))}chars(n){this.buf.push(Aw(n))}checkClobberedElement(n,e){if(e&&(n.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${n.outerHTML}`);return e}}const OA=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,AA=/([^\#-~ |!])/g;function Aw(t){return t.replace(/&/g,"&").replace(OA,function(n){return"&#"+(1024*(n.charCodeAt(0)-55296)+(n.charCodeAt(1)-56320)+65536)+";"}).replace(AA,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(//g,">")}let pp;function Fw(t,n){let e=null;try{pp=pp||function Lw(t){const n=new TA(t);return function LA(){try{return!!(new window.DOMParser).parseFromString(Wc(""),"text/html")}catch{return!1}}()?new DA(n):n}(t);let i=n?String(n):"";e=pp.getInertBodyElement(i);let o=5,s=i;do{if(0===o)throw new Error("Failed to sanitize html because the input is unstable");o--,i=s,s=e.innerHTML,e=pp.getInertBodyElement(i)}while(i!==s);return Wc((new PA).sanitizeChildren(bb(e)||e))}finally{if(e){const i=bb(e)||e;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function bb(t){return"content"in t&&function FA(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var kn=(()=>((kn=kn||{})[kn.NONE=0]="NONE",kn[kn.HTML=1]="HTML",kn[kn.STYLE=2]="STYLE",kn[kn.SCRIPT=3]="SCRIPT",kn[kn.URL=4]="URL",kn[kn.RESOURCE_URL=5]="RESOURCE_URL",kn))();function Vo(t){const n=Cu();return n?n.sanitize(kn.URL,t)||"":xs(t,"URL")?_o(t):fp(xt(t))}function Rw(t){const n=Cu();if(n)return Tw(n.sanitize(kn.RESOURCE_URL,t)||"");if(xs(t,"ResourceURL"))return Tw(_o(t));throw new Fe(904,!1)}function Cu(){const t=Ve();return t&&t[Vs].sanitizer}class Re{constructor(n,e){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.\u0275prov=Ne({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}const xu=new Re("ENVIRONMENT_INITIALIZER"),Yw=new Re("INJECTOR",-1),Hw=new Re("INJECTOR_DEF_TYPES");class Bw{get(n,e=hl){if(e===hl){const i=new Error(`NullInjectorError: No provider for ${Fi(n)}!`);throw i.name="NullInjectorError",i}return e}}function jA(...t){return{\u0275providers:Vw(0,t),\u0275fromNgModule:!0}}function Vw(t,...n){const e=[],i=new Set;let o;return fu(n,s=>{const a=s;yb(a,e,[],i)&&(o||=[],o.push(a))}),void 0!==o&&jw(o,e),e}function jw(t,n){for(let e=0;e{n.push(s)})}}function yb(t,n,e,i){if(!(t=Dt(t)))return!1;let o=null,s=Gd(t);const a=!s&&gn(t);if(s||a){if(a&&!a.standalone)return!1;o=t}else{const d=t.ngModule;if(s=Gd(d),!s)return!1;o=d}const l=i.has(o);if(a){if(l)return!1;if(i.add(o),a.dependencies){const d="function"==typeof a.dependencies?a.dependencies():a.dependencies;for(const _ of d)yb(_,n,e,i)}}else{if(!s)return!1;{if(null!=s.imports&&!l){let _;i.add(o);try{fu(s.imports,E=>{yb(E,n,e,i)&&(_||=[],_.push(E))})}finally{}void 0!==_&&jw(_,n)}if(!l){const _=$s(o)||(()=>new o);n.push({provide:o,useFactory:_,deps:cn},{provide:Hw,useValue:o,multi:!0},{provide:xu,useValue:()=>we(o),multi:!0})}const d=s.providers;null==d||l||Mb(d,E=>{n.push(E)})}}return o!==t&&void 0!==t.providers}function Mb(t,n){for(let e of t)zd(e)&&(e=e.\u0275providers),Array.isArray(e)?Mb(e,n):n(e)}const zA=xn({provide:String,useValue:xn});function wb(t){return null!==t&&"object"==typeof t&&zA in t}function Dl(t){return"function"==typeof t}const Cb=new Re("Set Injector scope."),mp={},WA={};let xb;function gp(){return void 0===xb&&(xb=new Bw),xb}class ks{}class kb extends ks{get destroyed(){return this._destroyed}constructor(n,e,i,o){super(),this.parent=e,this.source=i,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Db(n,a=>this.processProvider(a)),this.records.set(Yw,$c(void 0,this)),o.has("environment")&&this.records.set(ks,$c(void 0,this));const s=this.records.get(Cb);null!=s&&"string"==typeof s.value&&this.scopes.add(s.value),this.injectorDefTypes=new Set(this.get(Hw.multi,cn,Mt.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const e of this._ngOnDestroyHooks)e.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const e of n)e()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const e=gs(this),i=Wi(void 0);try{return n()}finally{gs(e),Wi(i)}}get(n,e=hl,i=Mt.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(bf))return n[bf](this);i=mc(i);const o=gs(this),s=Wi(void 0);try{if(!(i&Mt.SkipSelf)){let l=this.records.get(n);if(void 0===l){const d=function ZA(t){return"function"==typeof t||"object"==typeof t&&t instanceof Re}(n)&&uc(n);l=d&&this.injectableDefInScope(d)?$c(Sb(n),mp):null,this.records.set(n,l)}if(null!=l)return this.hydrate(n,l)}return(i&Mt.Self?gp():this.parent).get(n,e=i&Mt.Optional&&e===hl?null:e)}catch(a){if("NullInjectorError"===a.name){if((a[pc]=a[pc]||[]).unshift(Fi(n)),o)throw a;return function Zg(t,n,e,i){const o=t[pc];throw n[pf]&&o.unshift(n[pf]),t.message=function Xg(t,n,e,i=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let o=Fi(n);if(Array.isArray(n))o=n.map(Fi).join(" -> ");else if("object"==typeof n){let s=[];for(let a in n)if(n.hasOwnProperty(a)){let l=n[a];s.push(a+":"+("string"==typeof l?JSON.stringify(l):Fi(l)))}o=`{${s.join(", ")}}`}return`${e}${i?"("+i+")":""}[${o}]: ${t.replace($g,"\n ")}`}("\n"+t.message,o,e,i),t.ngTokenPath=o,t[pc]=null,t}(a,n,"R3InjectorError",this.source)}throw a}finally{Wi(s),gs(o)}}resolveInjectorInitializers(){const n=gs(this),e=Wi(void 0);try{const i=this.get(xu.multi,cn,Mt.Self);for(const o of i)o()}finally{gs(n),Wi(e)}}toString(){const n=[],e=this.records;for(const i of e.keys())n.push(Fi(i));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Fe(205,!1)}processProvider(n){let e=Dl(n=Dt(n))?n:Dt(n&&n.provide);const i=function GA(t){return wb(t)?$c(void 0,t.useValue):$c(Ww(t),mp)}(n);if(Dl(n)||!0!==n.multi)this.records.get(e);else{let o=this.records.get(e);o||(o=$c(void 0,mp,!0),o.factory=()=>Zd(o.multi),this.records.set(e,o)),e=n,o.multi.push(n)}this.records.set(e,i)}hydrate(n,e){return e.value===mp&&(e.value=WA,e.value=e.factory()),"object"==typeof e.value&&e.value&&function KA(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(e.value)&&this._ngOnDestroyHooks.add(e.value),e.value}injectableDefInScope(n){if(!n.providedIn)return!1;const e=Dt(n.providedIn);return"string"==typeof e?"any"===e||this.scopes.has(e):this.injectorDefTypes.has(e)}removeOnDestroy(n){const e=this._onDestroyHooks.indexOf(n);-1!==e&&this._onDestroyHooks.splice(e,1)}}function Sb(t){const n=uc(t),e=null!==n?n.factory:$s(t);if(null!==e)return e;if(t instanceof Re)throw new Fe(204,!1);if(t instanceof Function)return function $A(t){const n=t.length;if(n>0)throw pu(n,"?"),new Fe(204,!1);const e=function uf(t){return t&&(t[hc]||t[hf])||null}(t);return null!==e?()=>e.factory(t):()=>new t}(t);throw new Fe(204,!1)}function Ww(t,n,e){let i;if(Dl(t)){const o=Dt(t);return $s(o)||Sb(o)}if(wb(t))i=()=>Dt(t.useValue);else if(function Uw(t){return!(!t||!t.useFactory)}(t))i=()=>t.useFactory(...Zd(t.deps||[]));else if(function zw(t){return!(!t||!t.useExisting)}(t))i=()=>we(Dt(t.useExisting));else{const o=Dt(t&&(t.useClass||t.provide));if(!function qA(t){return!!t.deps}(t))return $s(o)||Sb(o);i=()=>new o(...Zd(t.deps))}return i}function $c(t,n,e=!1){return{factory:t,value:n,multi:e?[]:void 0}}function Db(t,n){for(const e of t)Array.isArray(e)?Db(e,n):e&&zd(e)?Db(e.\u0275providers,n):n(e)}const ku=new Re("AppId",{providedIn:"root",factory:()=>XA}),XA="ng",$w=new Re("Platform Initializer"),Oa=new Re("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),Ri=new Re("AnimationModuleType"),Tb=new Re("CSP nonce",{providedIn:"root",factory:()=>function Mu(){if(void 0!==pb)return pb;if(typeof document<"u")return document;throw new Fe(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let qw=(t,n)=>null;function Kw(t,n){return qw(t,n)}class sF{}class Jw{}class lF{resolveComponentFactory(n){throw function aF(t){const n=Error(`No component factory found for ${Fi(t)}.`);return n.ngComponent=t,n}(n)}}let Tl=(()=>{class t{}return t.NULL=new lF,t})();function cF(){return Gc(tr(),Ve())}function Gc(t,n){return new vt(yr(t,n))}let vt=(()=>{class t{constructor(e){this.nativeElement=e}}return t.__NG_ELEMENT_ID__=cF,t})();function dF(t){return t instanceof vt?t.nativeElement:t}class Lu{}let Ks=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>function uF(){const t=Ve(),e=Tr(tr().index,t);return(Yr(e)?e:t)[Et]}(),t})(),hF=(()=>{class t{}return t.\u0275prov=Ne({token:t,providedIn:"root",factory:()=>null}),t})();class Ll{constructor(n){this.full=n,this.major=n.split(".")[0],this.minor=n.split(".")[1],this.patch=n.split(".").slice(2).join(".")}}const fF=new Ll("16.0.2"),Hb={};function Eu(t){for(;t;){t[Yt]|=64;const n=bu(t);if(nu(t)&&!n)return t;t=n}return null}function Bb(t){return t.ngOriginalError}class Ss{constructor(){this._console=console}handleError(n){const e=this._findOriginalError(n);this._console.error("ERROR",n),e&&this._console.error("ORIGINAL ERROR",e)}_findOriginalError(n){let e=n&&Bb(n);for(;e&&Bb(e);)e=Bb(e);return e||null}}const nC=new Re("",{providedIn:"root",factory:()=>!1});function Vb(t){return t.ownerDocument.defaultView}function Zs(t){return t instanceof Function?t():t}class oC extends If{constructor(){super(...arguments),this.consumerAllowSignalWrites=!1,this._lView=null}set lView(n){this._lView=n}onConsumerDependencyMayHaveChanged(){Eu(this._lView)}onProducerUpdateValueVersion(){}get hasReadASignal(){return this.hasProducers}runInContext(n,e,i){const o=$i(this);this.trackingVersion++;try{n(e,i)}finally{$i(o)}}destroy(){this.trackingVersion++}}let wp=null;function sC(){return wp??=new oC,wp}function aC(t,n){return t[n]??sC()}function lC(t,n){const e=sC();e.hasReadASignal&&(t[n]=wp,e.lView=t,wp=new oC)}const Bt={};function c(t){cC(dn(),Ve(),Vr()+t,!1)}function cC(t,n,e,i){if(!i)if(3==(3&n[Yt])){const s=t.preOrderCheckHooks;null!==s&&$f(n,s,e)}else{const s=t.preOrderHooks;null!==s&&Gf(n,s,0,e)}Ml(e)}function fC(t,n=null,e=null,i){const o=pC(t,n,e,i);return o.resolveInjectorInitializers(),o}function pC(t,n=null,e=null,i,o=new Set){const s=[e||cn,jA(t)];return i=i||("object"==typeof t?void 0:Fi(t)),new kb(s,n||gp(),i||null,o)}let Si=(()=>{class t{static create(e,i){if(Array.isArray(e))return fC({name:""},i,e,"");{const o=e.name??"";return fC({name:o},e.parent,e.providers,o)}}}return t.THROW_IF_NOT_FOUND=hl,t.NULL=new Bw,t.\u0275prov=Ne({token:t,providedIn:"any",factory:()=>we(Yw)}),t.__NG_ELEMENT_ID__=-1,t})();function Y(t,n=Mt.Default){const e=Ve();return null===e?we(t,n):YM(tr(),e,Dt(t),n)}function Aa(){throw new Error("invalid")}function Cp(t,n,e,i,o,s,a,l,d,_,E){const F=n.blueprint.slice();return F[zt]=o,F[Yt]=140|i,(null!==_||t&&2048&t[Yt])&&(F[Yt]|=2048),Rf(F),F[Xn]=F[zs]=t,F[li]=e,F[Vs]=a||t&&t[Vs],F[Et]=l||t&&t[Et],F[Da]=d||t&&t[Da]||null,F[pr]=s,F[_l]=function BO(){return HO++}(),F[Xo]=E,F[kf]=_,F[xi]=2==n.type?t[xi]:F,F}function Kc(t,n,e,i,o){let s=t.data[n];if(null===s)s=function jb(t,n,e,i,o){const s=Oc(),a=tn(),d=t.data[n]=function OF(t,n,e,i,o,s){let a=n?n.injectorIndex:-1,l=0;return Ea()&&(l|=128),{type:e,index:i,insertBeforeIndex:null,injectorIndex:a,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:l,providerIndexes:0,value:o,attrs:s,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,a?s:s&&s.parent,e,n,i,o);return null===t.firstChild&&(t.firstChild=d),null!==s&&(a?null==s.child&&null!==d.parent&&(s.child=d):null===s.next&&(s.next=d,d.prev=s)),d}(t,n,e,i,o),function ki(){return Tt.lFrame.inI18n}()&&(s.flags|=32);else if(64&s.type){s.type=e,s.value=i,s.attrs=o;const a=function Ho(){const t=Tt.lFrame,n=t.currentTNode;return t.isParent?n:n.parent}();s.injectorIndex=null===a?-1:a.injectorIndex}return Hr(s,!0),s}function Iu(t,n,e,i){if(0===e)return-1;const o=n.length;for(let s=0;sQt&&cC(t,n,Qt,!1),Ro(l?2:0,o),l)s.runInContext(e,i,o);else{const _=$i(null);try{e(i,o)}finally{$i(_)}}}finally{l&&null===n[Cc]&&lC(n,Cc),Ml(a),Ro(l?3:1,o)}}function zb(t,n,e){if(Sc(n)){const i=$i(null);try{const s=n.directiveEnd;for(let a=n.directiveStart;anull;function bC(t,n,e,i){for(let o in t)if(t.hasOwnProperty(o)){e=null===e?{}:e;const s=t[o];null===i?vC(e,n,o,s):i.hasOwnProperty(o)&&vC(e,n,i[o],s)}return e}function vC(t,n,e,i){t.hasOwnProperty(e)?t[e].push(n,i):t[e]=[n,i]}function bo(t,n,e,i,o,s,a,l){const d=yr(n,e);let E,_=n.inputs;!l&&null!=_&&(E=_[i])?(Xb(t,e,E,i,o),Ws(n)&&function RF(t,n){const e=Tr(n,t);16&e[Yt]||(e[Yt]|=64)}(e,n.index)):3&n.type&&(i=function FF(t){return"class"===t?"className":"for"===t?"htmlFor":"formaction"===t?"formAction":"innerHtml"===t?"innerHTML":"readonly"===t?"readOnly":"tabindex"===t?"tabIndex":t}(i),o=null!=a?a(o,n.value||"",i):o,s.setProperty(d,i,o))}function Gb(t,n,e,i){if(Vf()){const o=null===i?null:{"":-1},s=function jF(t,n){const e=t.directiveRegistry;let i=null,o=null;if(e)for(let s=0;s0;){const e=t[--n];if("number"==typeof e&&e<0)return e}return 0})(a)!=l&&a.push(l),a.push(e,i,s)}}(t,n,i,Iu(t,e,o.hostVars,Bt),o)}function Ds(t,n,e,i,o,s){const a=yr(t,n);!function Kb(t,n,e,i,o,s,a){if(null==s)t.removeAttribute(n,o,e);else{const l=null==a?xt(s):a(s,i||"",o);t.setAttribute(n,o,l,e)}}(n[Et],a,s,t.value,e,i,o)}function qF(t,n,e,i,o,s){const a=s[n];if(null!==a)for(let l=0;l{class t{constructor(){this.all=new Set,this.queue=new Map}create(e,i,o){const s=typeof Zone>"u"?null:Zone.current,a=new M_(e,_=>{this.all.has(_)&&this.queue.set(_,s)},o);let l;this.all.add(a),a.notify();const d=()=>{a.cleanup(),l?.(),this.all.delete(a),this.queue.delete(a)};return l=i?.onDestroy(d),{destroy:d}}flush(){if(0!==this.queue.size)for(const[e,i]of this.queue)this.queue.delete(e),i?i.run(()=>e.run()):e.run()}get isQueueEmpty(){return 0===this.queue.size}}return t.\u0275prov=Ne({token:t,providedIn:"root",factory:()=>new t}),t})();function kp(t,n,e){let i=e?t.styles:null,o=e?t.classes:null,s=0;if(null!==n)for(let a=0;a0&&Qb(e)}}function Qb(t){for(let i=rb(t);null!==i;i=ob(i))for(let o=ni;o0&&Qb(s)}const e=t[lt].components;if(null!==e)for(let i=0;i0&&Qb(o)}}class Ou{get rootNodes(){const n=this._lView,e=n[lt];return Pu(e,n,e.firstChild,[])}constructor(n,e){this._lView=n,this._cdRefInjectingView=e,this._appRef=null,this._attachedToViewContainer=!1}get context(){return this._lView[li]}set context(n){this._lView[li]=n}get destroyed(){return 256==(256&this._lView[Yt])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const n=this._lView[Xn];if(vr(n)){const e=n[kc],i=e?e.indexOf(this):-1;i>-1&&(ab(n,i),Qf(e,i))}this._attachedToViewContainer=!1}fw(this._lView[lt],this._lView)}onDestroy(n){!function Hf(t,n){if(256==(256&t[Yt]))throw new Fe(911,!1);null===t[vs]&&(t[vs]=[]),t[vs].push(n)}(this._lView,n)}markForCheck(){Eu(this._cdRefInjectingView||this._lView)}detach(){this._lView[Yt]&=-129}reattach(){this._lView[Yt]|=128}detectChanges(){Sp(this._lView[lt],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new Fe(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function eA(t,n){yu(t,n,n[Et],2,null,null)}(this._lView[lt],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new Fe(902,!1);this._appRef=n}}class aR extends Ou{constructor(n){super(n),this._view=n}detectChanges(){const n=this._view;Sp(n[lt],n,n[li],!1)}checkNoChanges(){}get context(){return null}}class EC extends Tl{constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const e=gn(n);return new Au(e,this.ngModule)}}function IC(t){const n=[];for(let e in t)t.hasOwnProperty(e)&&n.push({propName:t[e],templateName:e});return n}class cR{constructor(n,e){this.injector=n,this.parentInjector=e}get(n,e,i){i=mc(i);const o=this.injector.get(n,Hb,i);return o!==Hb||e===Hb?o:this.parentInjector.get(n,e,i)}}class Au extends Jw{get inputs(){return IC(this.componentDef.inputs)}get outputs(){return IC(this.componentDef.outputs)}constructor(n,e){super(),this.componentDef=n,this.ngModule=e,this.componentType=n.type,this.selector=function yc(t){return t.map(n_).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors?n.ngContentSelectors:[],this.isBoundToModule=!!e}create(n,e,i,o){let s=(o=o||this.ngModule)instanceof ks?o:o?.injector;s&&null!==this.componentDef.getStandaloneInjector&&(s=this.componentDef.getStandaloneInjector(s)||s);const a=s?new cR(n,s):n,l=a.get(Lu,null);if(null===l)throw new Fe(407,!1);const E={rendererFactory:l,sanitizer:a.get(hF,null),effectManager:a.get(LC,null)},F=l.createRenderer(null,this.componentDef),G=this.componentDef.selectors[0][0]||"div",ie=i?function TF(t,n,e,i){const s=i.get(nC,!1)||e===Dr.ShadowDom,a=t.selectRootElement(n,s);return function LF(t){_C(t)}(a),a}(F,i,this.componentDef.encapsulation,a):ap(F,G,function lR(t){const n=t.toLowerCase();return"svg"===n?No:"math"===n?"math":null}(G)),_e=this.componentDef.onPush?576:528,Ce=$b(0,null,null,1,0,null,null,null,null,null,null),Ae=Cp(null,Ce,null,_e,null,null,E,F,a,null,null);let ze,Ee;N_(Ae);try{const qe=this.componentDef;let dt,Rt=null;qe.findHostDirectiveDefs?(dt=[],Rt=new Map,qe.findHostDirectiveDefs(qe,dt,Rt),dt.push(qe)):dt=[qe];const sn=function uR(t,n){const e=t[lt],i=Qt;return t[i]=n,Kc(e,i,2,"#host",null)}(Ae,ie),Ii=function hR(t,n,e,i,o,s,a){const l=o[lt];!function fR(t,n,e,i){for(const o of t)n.mergedAttrs=xa(n.mergedAttrs,o.hostAttrs);null!==n.mergedAttrs&&(kp(n,n.mergedAttrs,!0),null!==e&&kw(i,e,n))}(i,t,n,a);let d=null;null!==n&&(d=Kw(n,o[Da]));const _=s.rendererFactory.createRenderer(n,e),E=Cp(o,gC(e),null,e.onPush?64:16,o[t.index],t,s,_,null,null,d);return l.firstCreatePass&&qb(l,t,i.length-1),xp(o,E),o[t.index]=E}(sn,ie,qe,dt,Ae,E,F);Ee=lu(Ce,Qt),ie&&function mR(t,n,e,i){if(i)hi(t,e,["ng-version",fF.full]);else{const{attrs:o,classes:s}=function eu(t){const n=[],e=[];let i=1,o=2;for(;i0&&xw(t,e,s.join(" "))}}(F,qe,ie,i),void 0!==e&&function gR(t,n,e){const i=t.projection=[];for(let o=0;o=0;i--){const o=t[i];o.hostVars=n+=o.hostVars,o.hostAttrs=xa(o.hostAttrs,e=xa(e,o.hostAttrs))}}(i)}function ev(t){return t===lo?{}:t===cn?[]:t}function vR(t,n){const e=t.viewQuery;t.viewQuery=e?(i,o)=>{n(i,o),e(i,o)}:n}function yR(t,n){const e=t.contentQueries;t.contentQueries=e?(i,o,s)=>{n(i,o,s),e(i,o,s)}:n}function MR(t,n){const e=t.hostBindings;t.hostBindings=e?(i,o)=>{n(i,o),e(i,o)}:n}function Tp(t){return!!tv(t)&&(Array.isArray(t)||!(t instanceof Map)&&Symbol.iterator in t)}function tv(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function Ts(t,n,e){return t[n]=e}function Er(t,n,e){return!Object.is(t[n],e)&&(t[n]=e,!0)}function El(t,n,e,i){const o=Er(t,n,e);return Er(t,n+1,i)||o}function Xt(t,n,e,i){const o=Ve();return Er(o,At(),n)&&(dn(),Ds(fi(),o,t,n,e,i)),Xt}function Xc(t,n,e,i){return Er(t,At(),e)?n+xt(e)+i:Bt}function Jc(t,n,e,i,o,s){const l=El(t,function Le(){return Tt.lFrame.bindingIndex}(),e,o);return Ut(2),l?n+xt(e)+i+xt(o)+s:Bt}function V(t,n,e,i,o,s,a,l){const d=Ve(),_=dn(),E=t+Qt,F=_.firstCreatePass?function $R(t,n,e,i,o,s,a,l,d){const _=n.consts,E=Kc(n,t,4,a||null,Ms(_,l));Gb(n,e,E,Ms(_,d)),Wf(n,E);const F=E.tView=$b(2,E,i,o,s,n.directiveRegistry,n.pipeRegistry,null,n.schemas,_,null);return null!==n.queries&&(n.queries.template(n,E),F.queries=n.queries.embeddedTView(E)),E}(E,_,d,n,e,i,o,s,a):_.data[E];Hr(F,!1);const G=qC(_,d,F,t);Uf()&&cp(_,d,G,F),Lr(G,d),xp(d,d[E]=CC(G,d,G,F)),Dc(F)&&Ub(_,d,F),null!=a&&Wb(d,F,l)}let qC=function KC(t,n,e,i){return Ia(!0),n[Et].createComment("")};function ci(t){return ys(function P(){return Tt.lFrame.contextLView}(),Qt+t)}function w(t,n,e){const i=Ve();return Er(i,At(),n)&&bo(dn(),fi(),i,t,n,i[Et],e,!1),w}function av(t,n,e,i,o){const a=o?"class":"style";Xb(t,e,n.inputs[a],a,i)}function D(t,n,e,i){const o=Ve(),s=dn(),a=Qt+t,l=o[Et],d=s.firstCreatePass?function ZR(t,n,e,i,o,s){const a=n.consts,d=Kc(n,t,2,i,Ms(a,o));return Gb(n,e,d,Ms(a,s)),null!==d.attrs&&kp(d,d.attrs,!1),null!==d.mergedAttrs&&kp(d,d.mergedAttrs,!0),null!==n.queries&&n.queries.elementStart(n,d),d}(a,s,o,n,e,i):s.data[a],_=ZC(s,o,d,l,n,t);o[a]=_;const E=Dc(d);return Hr(d,!0),kw(l,_,d),32!=(32&d.flags)&&Uf()&&cp(s,o,_,d),0===function I_(){return Tt.lFrame.elementDepthCount}()&&Lr(_,o),function P_(){Tt.lFrame.elementDepthCount++}(),E&&(Ub(s,o,d),zb(s,d,o)),null!==i&&Wb(o,d),D}function C(){let t=tr();tn()?m():(t=t.parent,Hr(t,!1));const n=t;(function A_(t){return Tt.skipHydrationRootTNode===t})(n)&&function Yo(){Tt.skipHydrationRootTNode=null}(),function O_(){Tt.lFrame.elementDepthCount--}();const e=dn();return e.firstCreatePass&&(Wf(e,t),Sc(t)&&e.queries.elementEnd(t)),null!=n.classesWithoutHost&&function tO(t){return 0!=(8&t.flags)}(n)&&av(e,n,Ve(),n.classesWithoutHost,!0),null!=n.stylesWithoutHost&&function nO(t){return 0!=(16&t.flags)}(n)&&av(e,n,Ve(),n.stylesWithoutHost,!1),C}function xe(t,n,e,i){return D(t,n,e,i),C(),xe}let ZC=(t,n,e,i,o,s)=>(Ia(!0),ap(i,o,function TM(){return Tt.lFrame.currentNamespace}()));function Ue(t,n,e){const i=Ve(),o=dn(),s=t+Qt,a=o.firstCreatePass?function QR(t,n,e,i,o){const s=n.consts,a=Ms(s,i),l=Kc(n,t,8,"ng-container",a);return null!==a&&kp(l,a,!0),Gb(n,e,l,Ms(s,o)),null!==n.queries&&n.queries.elementStart(n,l),l}(s,o,i,n,e):o.data[s];Hr(a,!0);const l=XC(o,i,a,t);return i[s]=l,Uf()&&cp(o,i,l,a),Lr(l,i),Dc(a)&&(Ub(o,i,a),zb(o,a,i)),null!=e&&Wb(i,a),Ue}function We(){let t=tr();const n=dn();return tn()?m():(t=t.parent,Hr(t,!1)),n.firstCreatePass&&(Wf(n,t),Sc(t)&&n.queries.elementEnd(t)),We}function Jo(t,n,e){return Ue(t,n,e),We(),Jo}let XC=(t,n,e,i)=>(Ia(!0),sb(n[Et],""));function et(){return Ve()}function Hu(t){return!!t&&"function"==typeof t.then}function JC(t){return!!t&&"function"==typeof t.subscribe}function ye(t,n,e,i){const o=Ve(),s=dn(),a=tr();return QC(s,o,o[Et],a,t,n,i),ye}function lv(t,n){const e=tr(),i=Ve(),o=dn();return QC(o,i,DC(Ac(o.data),e,i),e,t,n),lv}function QC(t,n,e,i,o,s,a){const l=Dc(i),_=t.firstCreatePass&&SC(t),E=n[li],F=kC(n);let G=!0;if(3&i.type||a){const Ce=yr(i,n),Ae=a?a(Ce):Ce,ze=F.length,Ee=a?dt=>a(Un(dt[i.index])):i.index;let qe=null;if(!a&&l&&(qe=function n3(t,n,e,i){const o=t.cleanup;if(null!=o)for(let s=0;sd?l[d]:null}"string"==typeof a&&(s+=2)}return null}(t,n,o,i.index)),null!==qe)(qe.__ngLastListenerFn__||qe).__ngNextListenerFn__=s,qe.__ngLastListenerFn__=s,G=!1;else{s=tx(i,n,E,s,!1);const dt=e.listen(Ae,o,s);F.push(s,dt),_&&_.push(o,Ee,ze,ze+1)}}else s=tx(i,n,E,s,!1);const ie=i.outputs;let _e;if(G&&null!==ie&&(_e=ie[o])){const Ce=_e.length;if(Ce)for(let Ae=0;Ae-1?Tr(t.index,n):n);let d=ex(n,e,i,a),_=s.__ngNextListenerFn__;for(;_;)d=ex(n,e,_,a)&&d,_=_.__ngNextListenerFn__;return o&&!1===d&&a.preventDefault(),d}}function z(t=1){return function qP(t){return(Tt.lFrame.contextLView=function KP(t,n){for(;t>0;)n=n[zs],t--;return n}(t,Tt.lFrame.contextLView))[li]}(t)}function r3(t,n){let e=null;const i=function Qg(t){const n=t.attrs;if(null!=n){const e=n.indexOf(5);if(!(1&e))return n[e+1]}return null}(t);for(let o=0;o>17&32767}function dv(t){return 2|t}function Il(t){return(131068&t)>>2}function uv(t,n){return-131069&t|n<<2}function hv(t){return 1|t}function dx(t,n,e,i,o){const s=t[e+1],a=null===n;let l=i?Fa(s):Il(s),d=!1;for(;0!==l&&(!1===d||a);){const E=t[l+1];d3(t[l],n)&&(d=!0,t[l+1]=i?hv(E):dv(E)),l=i?Fa(E):Il(E)}d&&(t[e+1]=i?dv(s):hv(s))}function d3(t,n){return null===t||null==n||(Array.isArray(t)?t[1]:t)===n||!(!Array.isArray(t)||"string"!=typeof n)&&Vc(t,n)>=0}const ir={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function ux(t){return t.substring(ir.key,ir.keyEnd)}function u3(t){return t.substring(ir.value,ir.valueEnd)}function hx(t,n){const e=ir.textEnd;return e===n?-1:(n=ir.keyEnd=function p3(t,n,e){for(;n32;)n++;return n}(t,ir.key=n,e),od(t,n,e))}function fx(t,n){const e=ir.textEnd;let i=ir.key=od(t,n,e);return e===i?-1:(i=ir.keyEnd=function m3(t,n,e){let i;for(;n=65&&(-33&i)<=90||i>=48&&i<=57);)n++;return n}(t,i,e),i=mx(t,i,e),i=ir.value=od(t,i,e),i=ir.valueEnd=function g3(t,n,e){let i=-1,o=-1,s=-1,a=n,l=a;for(;a32&&(l=a),s=o,o=i,i=-33&d}return l}(t,i,e),mx(t,i,e))}function px(t){ir.key=0,ir.keyEnd=0,ir.value=0,ir.valueEnd=0,ir.textEnd=t.length}function od(t,n,e){for(;n=0;e=fx(n,e))vx(t,ux(n),u3(n))}function eo(t){es(C3,Ls,t,!0)}function Ls(t,n){for(let e=function h3(t){return px(t),hx(t,od(t,0,ir.textEnd))}(n);e>=0;e=hx(n,e))go(t,ux(n),!0)}function Qo(t,n,e,i){const o=Ve(),s=dn(),a=Ut(2);s.firstUpdatePass&&bx(s,t,a,i),n!==Bt&&Er(o,a,n)&&yx(s,s.data[Vr()],o,o[Et],t,o[a+1]=function k3(t,n){return null==t||""===t||("string"==typeof n?t+=n:"object"==typeof t&&(t=Fi(_o(t)))),t}(n,e),i,a)}function es(t,n,e,i){const o=dn(),s=Ut(2);o.firstUpdatePass&&bx(o,null,s,i);const a=Ve();if(e!==Bt&&Er(a,s,e)){const l=o.data[Vr()];if(wx(l,i)&&!_x(o,s)){let d=i?l.classesWithoutHost:l.stylesWithoutHost;null!==d&&(e=ba(d,e||"")),av(o,l,a,e,i)}else!function x3(t,n,e,i,o,s,a,l){o===Bt&&(o=cn);let d=0,_=0,E=0=t.expandoStartIndex}function bx(t,n,e,i){const o=t.data;if(null===o[e+1]){const s=o[Vr()],a=_x(t,e);wx(s,i)&&null===n&&!a&&(n=!1),n=function b3(t,n,e,i){const o=Ac(t);let s=i?n.residualClasses:n.residualStyles;if(null===o)0===(i?n.classBindings:n.styleBindings)&&(e=Bu(e=fv(null,t,n,e,i),n.attrs,i),s=null);else{const a=n.directiveStylingLast;if(-1===a||t[a]!==o)if(e=fv(o,t,n,e,i),null===s){let d=function v3(t,n,e){const i=e?n.classBindings:n.styleBindings;if(0!==Il(i))return t[Fa(i)]}(t,n,i);void 0!==d&&Array.isArray(d)&&(d=fv(null,t,n,d[1],i),d=Bu(d,n.attrs,i),function y3(t,n,e,i){t[Fa(e?n.classBindings:n.styleBindings)]=i}(t,n,i,d))}else s=function M3(t,n,e){let i;const o=n.directiveEnd;for(let s=1+n.directiveStylingLast;s0)&&(_=!0)):E=e,o)if(0!==d){const G=Fa(t[l+1]);t[i+1]=Op(G,l),0!==G&&(t[G+1]=uv(t[G+1],i)),t[l+1]=function s3(t,n){return 131071&t|n<<17}(t[l+1],i)}else t[i+1]=Op(l,0),0!==l&&(t[l+1]=uv(t[l+1],i)),l=i;else t[i+1]=Op(d,0),0===l?l=i:t[d+1]=uv(t[d+1],i),d=i;_&&(t[i+1]=dv(t[i+1])),dx(t,E,i,!0),dx(t,E,i,!1),function c3(t,n,e,i,o){const s=o?t.residualClasses:t.residualStyles;null!=s&&"string"==typeof n&&Vc(s,n)>=0&&(e[i+1]=hv(e[i+1]))}(n,E,t,i,s),a=Op(l,d),s?n.classBindings=a:n.styleBindings=a}(o,s,n,e,a,i)}}function fv(t,n,e,i,o){let s=null;const a=e.directiveEnd;let l=e.directiveStylingLast;for(-1===l?l=e.directiveStart:l++;l0;){const d=t[o],_=Array.isArray(d),E=_?d[1]:d,F=null===E;let G=e[o+1];G===Bt&&(G=F?cn:void 0);let ie=F?G_(G,i):E===i?G:void 0;if(_&&!Ap(ie)&&(ie=G_(d,i)),Ap(ie)&&(l=ie,a))return l;const _e=t[o+1];o=a?Fa(_e):Il(_e)}if(null!==n){let d=s?n.residualClasses:n.residualStyles;null!=d&&(l=G_(d,i))}return l}function Ap(t){return void 0!==t}function wx(t,n){return 0!=(t.flags&(n?8:16))}function I(t,n=""){const e=Ve(),i=dn(),o=t+Qt,s=i.firstCreatePass?Kc(i,o,1,n,null):i.data[o],a=Cx(i,e,s,n,t);e[o]=a,Uf()&&cp(i,e,a,s),Hr(s,!1)}let Cx=(t,n,e,i,o)=>(Ia(!0),function sp(t,n){return t.createText(n)}(n[Et],i));function se(t){return ce("",t,""),se}function ce(t,n,e){const i=Ve(),o=Xc(i,t,n,e);return o!==Bt&&Xs(i,Vr(),o),ce}function vo(t,n,e,i,o){const s=Ve(),a=Jc(s,t,n,e,i,o);return a!==Bt&&Xs(s,Vr(),a),vo}function Js(t,n,e){const i=Ve();return Er(i,At(),n)&&bo(dn(),fi(),i,t,n,i[Et],e,!0),Js}function pv(t,n,e){const i=Ve();if(Er(i,At(),n)){const s=dn(),a=fi();bo(s,a,i,t,n,DC(Ac(s.data),a,i),e,!0)}return pv}const Ol=void 0;var $3=["en",[["a","p"],["AM","PM"],Ol],[["AM","PM"],Ol,Ol],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Ol,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Ol,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Ol,"{1} 'at' {0}",Ol],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function W3(t){const e=Math.floor(Math.abs(t)),i=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===i?1:5}];let sd={};function jr(t){const n=function G3(t){return t.toLowerCase().replace(/_/g,"-")}(t);let e=jx(n);if(e)return e;const i=n.split("-")[0];if(e=jx(i),e)return e;if("en"===i)return $3;throw new Fe(701,!1)}function jx(t){return t in sd||(sd[t]=wn.ng&&wn.ng.common&&wn.ng.common.locales&&wn.ng.common.locales[t]),sd[t]}var ct=(()=>((ct=ct||{})[ct.LocaleId=0]="LocaleId",ct[ct.DayPeriodsFormat=1]="DayPeriodsFormat",ct[ct.DayPeriodsStandalone=2]="DayPeriodsStandalone",ct[ct.DaysFormat=3]="DaysFormat",ct[ct.DaysStandalone=4]="DaysStandalone",ct[ct.MonthsFormat=5]="MonthsFormat",ct[ct.MonthsStandalone=6]="MonthsStandalone",ct[ct.Eras=7]="Eras",ct[ct.FirstDayOfWeek=8]="FirstDayOfWeek",ct[ct.WeekendRange=9]="WeekendRange",ct[ct.DateFormat=10]="DateFormat",ct[ct.TimeFormat=11]="TimeFormat",ct[ct.DateTimeFormat=12]="DateTimeFormat",ct[ct.NumberSymbols=13]="NumberSymbols",ct[ct.NumberFormats=14]="NumberFormats",ct[ct.CurrencyCode=15]="CurrencyCode",ct[ct.CurrencySymbol=16]="CurrencySymbol",ct[ct.CurrencyName=17]="CurrencyName",ct[ct.Currencies=18]="Currencies",ct[ct.Directionality=19]="Directionality",ct[ct.PluralCase=20]="PluralCase",ct[ct.ExtraData=21]="ExtraData",ct))();const ad="en-US";let zx=ad;function _v(t,n,e,i,o){if(t=Dt(t),Array.isArray(t))for(let s=0;s>20;if(Dl(t)||!t.multi){const ie=new du(d,o,Y),_e=vv(l,n,o?E:E+G,F);-1===_e?(U_(Xf(_,a),s,l),bv(s,t,n.length),n.push(l),_.directiveStart++,_.directiveEnd++,o&&(_.providerIndexes+=1048576),e.push(ie),a.push(ie)):(e[_e]=ie,a[_e]=ie)}else{const ie=vv(l,n,E+G,F),_e=vv(l,n,E,E+G),Ae=_e>=0&&e[_e];if(o&&!Ae||!o&&!(ie>=0&&e[ie])){U_(Xf(_,a),s,l);const ze=function UN(t,n,e,i,o){const s=new du(t,e,Y);return s.multi=[],s.index=n,s.componentProviders=0,pk(s,o,i&&!e),s}(o?zN:jN,e.length,o,i,d);!o&&Ae&&(e[_e].providerFactory=ze),bv(s,t,n.length,0),n.push(l),_.directiveStart++,_.directiveEnd++,o&&(_.providerIndexes+=1048576),e.push(ze),a.push(ze)}else bv(s,t,ie>-1?ie:_e,pk(e[o?_e:ie],d,!o&&i));!o&&i&&Ae&&e[_e].componentProviders++}}}function bv(t,n,e,i){const o=Dl(n),s=function UA(t){return!!t.useClass}(n);if(o||s){const d=(s?Dt(n.useClass):n).prototype.ngOnDestroy;if(d){const _=t.destroyHooks||(t.destroyHooks=[]);if(!o&&n.multi){const E=_.indexOf(e);-1===E?_.push(e,[i,d]):_[E+1].push(i,d)}else _.push(e,d)}}}function pk(t,n,e){return e&&t.componentProviders++,t.multi.push(n)-1}function vv(t,n,e,i){for(let o=e;o{e.providersResolver=(i,o)=>function VN(t,n,e){const i=dn();if(i.firstCreatePass){const o=fo(t);_v(e,i.data,i.blueprint,o,!0),_v(n,i.data,i.blueprint,o,!1)}}(i,o?o(t):t,n)}}class ld{}class mk{}class Mv extends ld{constructor(n,e,i){super(),this._parent=e,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new EC(this);const o=Nr(n);this._bootstrapComponents=Zs(o.bootstrap),this._r3Injector=pC(n,e,[{provide:ld,useValue:this},{provide:Tl,useValue:this.componentFactoryResolver},...i],Fi(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(e=>e()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class wv extends mk{constructor(n){super(),this.moduleType=n}create(n){return new Mv(this.moduleType,n,[])}}class gk extends ld{constructor(n){super(),this.componentFactoryResolver=new EC(this),this.instance=null;const e=new kb([...n.providers,{provide:ld,useValue:this},{provide:Tl,useValue:this.componentFactoryResolver}],n.parent||gp(),n.debugName,new Set(["environment"]));this.injector=e,n.runEnvironmentInitializers&&e.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function Cv(t,n,e=null){return new gk({providers:t,parent:n,debugName:e,runEnvironmentInitializers:!0}).injector}let GN=(()=>{class t{constructor(e){this._injector=e,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e.id)){const i=Vw(0,e.type),o=i.length>0?Cv([i],this._injector,`Standalone[${e.type.name}]`):null;this.cachedInjectors.set(e.id,o)}return this.cachedInjectors.get(e.id)}ngOnDestroy(){try{for(const e of this.cachedInjectors.values())null!==e&&e.destroy()}finally{this.cachedInjectors.clear()}}}return t.\u0275prov=Ne({token:t,providedIn:"environment",factory:()=>new t(we(ks))}),t})();function _k(t){t.getStandaloneInjector=n=>n.get(GN).getOrCreateStandaloneInjector(t)}function qn(t,n,e){const i=ne()+t,o=Ve();return o[i]===Bt?Ts(o,i,e?n.call(e):n()):function Fu(t,n){return t[n]}(o,i)}function He(t,n,e,i){return xk(Ve(),ne(),t,n,e,i)}function mn(t,n,e,i,o){return kk(Ve(),ne(),t,n,e,i,o)}function $u(t,n){const e=t[n];return e===Bt?void 0:e}function xk(t,n,e,i,o,s){const a=n+e;return Er(t,a,o)?Ts(t,a+1,s?i.call(s,o):i(o)):$u(t,a+1)}function kk(t,n,e,i,o,s,a){const l=n+e;return El(t,l,o,s)?Ts(t,l+2,a?i.call(a,o,s):i(o,s)):$u(t,l+2)}function R(t,n){const e=dn();let i;const o=t+Qt;e.firstCreatePass?(i=function d4(t,n){if(n)for(let e=n.length-1;e>=0;e--){const i=n[e];if(t===i.name)return i}}(n,e.pipeRegistry),e.data[o]=i,i.onDestroy&&(e.destroyHooks??=[]).push(o,i.onDestroy)):i=e.data[o];const s=i.factory||(i.factory=$s(i.type)),a=Wi(Y);try{const l=Zf(!1),d=s();return Zf(l),function KR(t,n,e,i){e>=t.data.length&&(t.data[e]=null,t.blueprint[e]=null),n[e]=i}(e,Ve(),o,d),d}finally{Wi(a)}}function H(t,n,e){const i=t+Qt,o=Ve(),s=ys(o,i);return Gu(o,i)?xk(o,ne(),n,s.transform,e,s):s.transform(e)}function kt(t,n,e,i){const o=t+Qt,s=Ve(),a=ys(s,o);return Gu(s,o)?kk(s,ne(),n,a.transform,e,i,a):a.transform(e,i)}function Gu(t,n){return t[lt].data[n].pure}function kv(t){return n=>{setTimeout(t,void 0,n)}}const ht=class p4 extends J{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,e,i){let o=n,s=e||(()=>null),a=i;if(n&&"object"==typeof n){const d=n;o=d.next?.bind(d),s=d.error?.bind(d),a=d.complete?.bind(d)}this.__isAsync&&(s=kv(s),o&&(o=kv(o)),a&&(a=kv(a)));const l=super.subscribe({next:o,error:s,complete:a});return n instanceof T&&n.add(l),l}};function m4(){return this._results[Symbol.iterator]()}class Al{get changes(){return this._changes||(this._changes=new ht)}constructor(n=!1){this._emitDistinctChangesOnly=n,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const e=Al.prototype;e[Symbol.iterator]||(e[Symbol.iterator]=m4)}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,e){return this._results.reduce(n,e)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,e){const i=this;i.dirty=!1;const o=function Bo(t){return t.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function fO(t,n,e){if(t.length!==n.length)return!1;for(let i=0;i{class t{}return t.__NG_ELEMENT_ID__=b4,t})();const g4=mr,_4=class extends g4{constructor(n,e,i){super(),this._declarationLView=n,this._declarationTContainer=e,this.elementRef=i}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,e){return this.createEmbeddedViewImpl(n,e,null)}createEmbeddedViewImpl(n,e,i){const o=this._declarationTContainer.tView,s=Cp(this._declarationLView,o,n,16,null,o.declTNode,null,null,null,e||null,i||null);s[Us]=this._declarationLView[this._declarationTContainer.index];const l=this._declarationLView[Xr];return null!==l&&(s[Xr]=l.createEmbeddedView(o)),Jb(o,s,n),new Ou(s)}};function b4(){return Hp(tr(),Ve())}function Hp(t,n){return 4&t.type?new _4(n,t,Gc(t,n)):null}let rr=(()=>{class t{}return t.__NG_ELEMENT_ID__=k4,t})();function k4(){return Ak(tr(),Ve())}const S4=rr,Pk=class extends S4{constructor(n,e,i){super(),this._lContainer=n,this._hostTNode=e,this._hostLView=i}get element(){return Gc(this._hostTNode,this._hostLView)}get injector(){return new Rc(this._hostTNode,this._hostLView)}get parentInjector(){const n=z_(this._hostTNode,this._hostLView);if(PM(n)){const e=Kf(n,this._hostLView),i=qf(n);return new Rc(e[lt].data[i+8],e)}return new Rc(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const e=Ok(this._lContainer);return null!==e&&e[n]||null}get length(){return this._lContainer.length-ni}createEmbeddedView(n,e,i){let o,s;"number"==typeof i?o=i:null!=i&&(o=i.index,s=i.injector);const l=n.createEmbeddedViewImpl(e||{},s,null);return this.insertImpl(l,o,false),l}createComponent(n,e,i,o,s){const a=n&&!function hu(t){return"function"==typeof t}(n);let l;if(a)l=e;else{const Ce=e||{};l=Ce.index,i=Ce.injector,o=Ce.projectableNodes,s=Ce.environmentInjector||Ce.ngModuleRef}const d=a?n:new Au(gn(n)),_=i||this.parentInjector;if(!s&&null==d.ngModule){const Ae=(a?_:this.parentInjector).get(ks,null);Ae&&(s=Ae)}gn(d.componentType??{});const ie=d.create(_,o,null,s);return this.insertImpl(ie.hostView,l,false),ie}insert(n,e){return this.insertImpl(n,e,!1)}insertImpl(n,e,i){const o=n._lView,s=o[lt];if(function T_(t){return vr(t[Xn])}(o)){const d=this.indexOf(n);if(-1!==d)this.detach(d);else{const _=o[Xn],E=new Pk(_,_[pr],_[Xn]);E.detach(E.indexOf(n))}}const a=this._adjustIndex(e),l=this._lContainer;if(function nA(t,n,e,i){const o=ni+i,s=e.length;i>0&&(e[o-1][uo]=n),i0)i.push(a[l/2]);else{const _=s[l+1],E=n[-d];for(let F=ni;F{class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((e,i)=>{this.resolve=e,this.reject=i}),this.appInits=Qe(Yv,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const e=[];for(const o of this.appInits){const s=o();if(Hu(s))e.push(s);else if(JC(s)){const a=new Promise((l,d)=>{s.subscribe({complete:l,error:d})});e.push(a)}}const i=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{i()}).catch(o=>{this.reject(o)}),0===e.length&&i(),this.initialized=!0}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),rS=(()=>{class t{log(e){console.log(e)}warn(e){console.warn(e)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"platform"}),t})();const Is=new Re("LocaleId",{providedIn:"root",factory:()=>Qe(Is,Mt.Optional|Mt.SkipSelf)||function n5(){return typeof $localize<"u"&&$localize.locale||ad}()});class o5{constructor(n,e){this.ngModuleFactory=n,this.componentFactories=e}}let oS=(()=>{class t{compileModuleSync(e){return new wv(e)}compileModuleAsync(e){return Promise.resolve(this.compileModuleSync(e))}compileModuleAndAllComponentsSync(e){const i=this.compileModuleSync(e),s=Zs(Nr(e).declarations).reduce((a,l)=>{const d=gn(l);return d&&a.push(new Au(d)),a},[]);return new o5(i,s)}compileModuleAndAllComponentsAsync(e){return Promise.resolve(this.compileModuleAndAllComponentsSync(e))}clearCache(){}clearCacheFor(e){}getModuleId(e){}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const l5=(()=>Promise.resolve(0))();function Bv(t){typeof Zone>"u"?l5.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",t)}function lS(...t){}class ft{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:e=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new ht(!1),this.onMicrotaskEmpty=new ht(!1),this.onStable=new ht(!1),this.onError=new ht(!1),typeof Zone>"u")throw new Fe(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!i&&e,o.shouldCoalesceRunChangeDetection=i,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function c5(){let t=wn.requestAnimationFrame,n=wn.cancelAnimationFrame;if(typeof Zone<"u"&&t&&n){const e=t[Zone.__symbol__("OriginalDelegate")];e&&(t=e);const i=n[Zone.__symbol__("OriginalDelegate")];i&&(n=i)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:n}}().nativeRequestAnimationFrame,function h5(t){const n=()=>{!function u5(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(wn,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,jv(t),t.isCheckStableRunning=!0,Vv(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),jv(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(e,i,o,s,a,l)=>{try{return cS(t),e.invokeTask(o,s,a,l)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||t.shouldCoalesceRunChangeDetection)&&n(),dS(t)}},onInvoke:(e,i,o,s,a,l,d)=>{try{return cS(t),e.invoke(o,s,a,l,d)}finally{t.shouldCoalesceRunChangeDetection&&n(),dS(t)}},onHasTask:(e,i,o,s)=>{e.hasTask(o,s),i===o&&("microTask"==s.change?(t._hasPendingMicrotasks=s.microTask,jv(t),Vv(t)):"macroTask"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(e,i,o,s)=>(e.handleError(o,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!ft.isInAngularZone())throw new Fe(909,!1)}static assertNotInAngularZone(){if(ft.isInAngularZone())throw new Fe(909,!1)}run(n,e,i){return this._inner.run(n,e,i)}runTask(n,e,i,o){const s=this._inner,a=s.scheduleEventTask("NgZoneEvent: "+o,n,d5,lS,lS);try{return s.runTask(a,e,i)}finally{s.cancelTask(a)}}runGuarded(n,e,i){return this._inner.runGuarded(n,e,i)}runOutsideAngular(n){return this._outer.run(n)}}const d5={};function Vv(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function jv(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function cS(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function dS(t){t._nesting--,Vv(t)}class f5{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new ht,this.onMicrotaskEmpty=new ht,this.onStable=new ht,this.onError=new ht}run(n,e,i){return n.apply(e,i)}runGuarded(n,e,i){return n.apply(e,i)}runOutsideAngular(n){return n()}runTask(n,e,i,o){return n.apply(e,i)}}const uS=new Re("",{providedIn:"root",factory:hS});function hS(){const t=Qe(ft);let n=!0;return bt(new he(o=>{n=t.isStable&&!t.hasPendingMacrotasks&&!t.hasPendingMicrotasks,t.runOutsideAngular(()=>{o.next(n),o.complete()})}),new he(o=>{let s;t.runOutsideAngular(()=>{s=t.onStable.subscribe(()=>{ft.assertNotInAngularZone(),Bv(()=>{!n&&!t.hasPendingMacrotasks&&!t.hasPendingMicrotasks&&(n=!0,o.next(!0))})})});const a=t.onUnstable.subscribe(()=>{ft.assertInAngularZone(),n&&(n=!1,t.runOutsideAngular(()=>{o.next(!1)}))});return()=>{s.unsubscribe(),a.unsubscribe()}}).pipe(dl()))}const fS=new Re(""),Vp=new Re("");let Wv,zv=(()=>{class t{constructor(e,i,o){this._ngZone=e,this.registry=i,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,Wv||(function p5(t){Wv=t}(o),o.addToWindow(i)),this._watchAngularEvents(),e.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ft.assertNotInAngularZone(),Bv(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())Bv(()=>{for(;0!==this._callbacks.length;){let e=this._callbacks.pop();clearTimeout(e.timeoutId),e.doneCb(this._didWork)}this._didWork=!1});else{let e=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(e)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(e=>({source:e.source,creationLocation:e.creationLocation,data:e.data})):[]}addCallback(e,i,o){let s=-1;i&&i>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==s),e(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:e,timeoutId:s,updateCb:o})}whenStable(e,i,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(e,i,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(e){this.registry.registerApplication(e,this)}unregisterApplication(e){this.registry.unregisterApplication(e)}findProviders(e,i,o){return[]}}return t.\u0275fac=function(e){return new(e||t)(we(ft),we(Uv),we(Vp))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),Uv=(()=>{class t{constructor(){this._applications=new Map}registerApplication(e,i){this._applications.set(e,i)}unregisterApplication(e){this._applications.delete(e)}unregisterAllApplications(){this._applications.clear()}getTestability(e){return this._applications.get(e)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(e,i=!0){return Wv?.findTestabilityInTree(this,e,i)??null}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"platform"}),t})(),Ra=null;const pS=new Re("AllowMultipleToken"),$v=new Re("PlatformDestroyListeners"),Gv=new Re("appBootstrapListener");class gS{constructor(n,e){this.name=n,this.token=e}}function bS(t,n,e=[]){const i=`Platform: ${n}`,o=new Re(i);return(s=[])=>{let a=qv();if(!a||a.injector.get(pS,!1)){const l=[...e,...s,{provide:o,useValue:!0}];t?t(l):function _5(t){if(Ra&&!Ra.get(pS,!1))throw new Fe(400,!1);(function mS(){!function v_(t){Pf=t}(()=>{throw new Fe(600,!1)})})(),Ra=t;const n=t.get(yS);(function _S(t){t.get($w,null)?.forEach(e=>e())})(t)}(function vS(t=[],n){return Si.create({name:n,providers:[{provide:Cb,useValue:"platform"},{provide:$v,useValue:new Set([()=>Ra=null])},...t]})}(l,i))}return function v5(t){const n=qv();if(!n)throw new Fe(401,!1);return n}()}}function qv(){return Ra?.get(yS)??null}let yS=(()=>{class t{constructor(e){this._injector=e,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(e,i){const o=function y5(t="zone.js",n){return"noop"===t?new f5:"zone.js"===t?new ft(n):t}(i?.ngZone,function MS(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:t?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:t?.runCoalescing??!1}}({eventCoalescing:i?.ngZoneEventCoalescing,runCoalescing:i?.ngZoneRunCoalescing}));return o.run(()=>{const s=function $N(t,n,e){return new Mv(t,n,e)}(e.moduleType,this.injector,function SS(t){return[{provide:ft,useFactory:t},{provide:xu,multi:!0,useFactory:()=>{const n=Qe(w5,{optional:!0});return()=>n.initialize()}},{provide:kS,useFactory:M5},{provide:uS,useFactory:hS}]}(()=>o)),a=s.injector.get(Ss,null);return o.runOutsideAngular(()=>{const l=o.onError.subscribe({next:d=>{a.handleError(d)}});s.onDestroy(()=>{jp(this._modules,s),l.unsubscribe()})}),function wS(t,n,e){try{const i=e();return Hu(i)?i.catch(o=>{throw n.runOutsideAngular(()=>t.handleError(o)),o}):i}catch(i){throw n.runOutsideAngular(()=>t.handleError(i)),i}}(a,o,()=>{const l=s.injector.get(Hv);return l.runInitializers(),l.donePromise.then(()=>(function Ux(t){Zr(t,"Expected localeId to be defined"),"string"==typeof t&&(zx=t.toLowerCase().replace(/_/g,"-"))}(s.injector.get(Is,ad)||ad),this._moduleDoBootstrap(s),s))})})}bootstrapModule(e,i=[]){const o=CS({},i);return function m5(t,n,e){const i=new wv(e);return Promise.resolve(i)}(0,0,e).then(s=>this.bootstrapModuleFactory(s,o))}_moduleDoBootstrap(e){const i=e.injector.get(Na);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(o=>i.bootstrap(o));else{if(!e.instance.ngDoBootstrap)throw new Fe(-403,!1);e.instance.ngDoBootstrap(i)}this._modules.push(e)}onDestroy(e){this._destroyListeners.push(e)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Fe(404,!1);this._modules.slice().forEach(i=>i.destroy()),this._destroyListeners.forEach(i=>i());const e=this._injector.get($v,null);e&&(e.forEach(i=>i()),e.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\u0275fac=function(e){return new(e||t)(we(Si))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"platform"}),t})();function CS(t,n){return Array.isArray(n)?n.reduce(CS,t):{...t,...n}}let Na=(()=>{class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=Qe(kS),this.componentTypes=[],this.components=[],this.isStable=Qe(uS),this._injector=Qe(ks)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(e,i){const o=e instanceof Jw;if(!this._injector.get(Hv).done)throw!o&&function Sa(t){const n=gn(t)||hr(t)||fr(t);return null!==n&&n.standalone}(e),new Fe(405,!1);let a;a=o?e:this._injector.get(Tl).resolveComponentFactory(e),this.componentTypes.push(a.componentType);const l=function g5(t){return t.isBoundToModule}(a)?void 0:this._injector.get(ld),_=a.create(Si.NULL,[],i||a.selector,l),E=_.location.nativeElement,F=_.injector.get(fS,null);return F?.registerApplication(E),_.onDestroy(()=>{this.detachView(_.hostView),jp(this.components,_),F?.unregisterApplication(E)}),this._loadComponent(_),_}tick(){if(this._runningTick)throw new Fe(101,!1);try{this._runningTick=!0;for(let e of this._views)e.detectChanges()}catch(e){this.internalErrorHandler(e)}finally{this._runningTick=!1}}attachView(e){const i=e;this._views.push(i),i.attachToAppRef(this)}detachView(e){const i=e;jp(this._views,i),i.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView),this.tick(),this.components.push(e);const i=this._injector.get(Gv,[]);i.push(...this._bootstrapListeners),i.forEach(o=>o(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>jp(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new Fe(406,!1);const e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function jp(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}const kS=new Re("",{providedIn:"root",factory:()=>Qe(Ss).handleError.bind(void 0)});function M5(){const t=Qe(ft),n=Qe(Ss);return e=>t.runOutsideAngular(()=>n.handleError(e))}let w5=(()=>{class t{constructor(){this.zone=Qe(ft),this.applicationRef=Qe(Na)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();let pi=(()=>{class t{}return t.__NG_ELEMENT_ID__=x5,t})();function x5(t){return function k5(t,n,e){if(Ws(t)&&!e){const i=Tr(t.index,n);return new Ou(i,i)}return 47&t.type?new Ou(n[xi],n):null}(tr(),Ve(),16==(16&t))}class ES{constructor(){}supports(n){return Tp(n)}create(n){return new I5(n)}}const E5=(t,n)=>n;class I5{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||E5}forEachItem(n){let e;for(e=this._itHead;null!==e;e=e._next)n(e)}forEachOperation(n){let e=this._itHead,i=this._removalsHead,o=0,s=null;for(;e||i;){const a=!i||e&&e.currentIndex{a=this._trackByFn(o,l),null!==e&&Object.is(e.trackById,a)?(i&&(e=this._verifyReinsertion(e,l,a,o)),Object.is(e.item,l)||this._addIdentityChange(e,l)):(e=this._mismatch(e,l,a,o),i=!0),e=e._next,o++}),this.length=o;return this._truncate(e),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,e,i,o){let s;return null===n?s=this._itTail:(s=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._reinsertAfter(n,s,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(i,o))?(Object.is(n.item,e)||this._addIdentityChange(n,e),this._moveAfter(n,s,o)):n=this._addAfter(new P5(e,i),s,o),n}_verifyReinsertion(n,e,i,o){let s=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==s?n=this._reinsertAfter(s,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const e=n._next;this._addToRemovals(this._unlink(n)),n=e}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,e,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,s=n._nextRemoved;return null===o?this._removalsHead=s:o._nextRemoved=s,null===s?this._removalsTail=o:s._prevRemoved=o,this._insertAfter(n,e,i),this._addToMoves(n,i),n}_moveAfter(n,e,i){return this._unlink(n),this._insertAfter(n,e,i),this._addToMoves(n,i),n}_addAfter(n,e,i){return this._insertAfter(n,e,i),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,e,i){const o=null===e?this._itHead:e._next;return n._next=o,n._prev=e,null===o?this._itTail=n:o._prev=n,null===e?this._itHead=n:e._next=n,null===this._linkedRecords&&(this._linkedRecords=new IS),this._linkedRecords.put(n),n.currentIndex=i,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const e=n._prev,i=n._next;return null===e?this._itHead=i:e._next=i,null===i?this._itTail=e:i._prev=e,n}_addToMoves(n,e){return n.previousIndex===e||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new IS),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,e){return n.item=e,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class P5{constructor(n,e){this.item=n,this.trackById=e,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class O5{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,e){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===e||e<=i.currentIndex)&&Object.is(i.trackById,n))return i;return null}remove(n){const e=n._prevDup,i=n._nextDup;return null===e?this._head=i:e._nextDup=i,null===i?this._tail=e:i._prevDup=e,null===this._head}}class IS{constructor(){this.map=new Map}put(n){const e=n.trackById;let i=this.map.get(e);i||(i=new O5,this.map.set(e,i)),i.add(n)}get(n,e){const o=this.map.get(n);return o?o.get(n,e):null}remove(n){const e=n.trackById;return this.map.get(e).remove(n)&&this.map.delete(e),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function PS(t,n,e){const i=t.previousIndex;if(null===i)return i;let o=0;return e&&i{if(e&&e.key===o)this._maybeAddToChanges(e,i),this._appendAfter=e,e=e._next;else{const s=this._getOrCreateRecordForKey(o,i);e=this._insertBeforeOrAppend(e,s)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let i=e;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,e){if(n){const i=n._prev;return e._next=n,e._prev=i,n._prev=e,i&&(i._next=e),n===this._mapHead&&(this._mapHead=e),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=e,e._prev=this._appendAfter):this._mapHead=e,this._appendAfter=e,null}_getOrCreateRecordForKey(n,e){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,e);const s=o._prev,a=o._next;return s&&(s._next=a),a&&(a._prev=s),o._next=null,o._prev=null,o}const i=new F5(n);return this._records.set(n,i),i.currentValue=e,this._addToAdditions(i),i}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,e){Object.is(e,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=e,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,e){n instanceof Map?n.forEach(e):Object.keys(n).forEach(i=>e(n[i],i))}}class F5{constructor(n){this.key=n,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function AS(){return new Ku([new ES])}let Ku=(()=>{class t{constructor(e){this.factories=e}static create(e,i){if(null!=i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||AS()),deps:[[t,new mu,new xl]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(null!=i)return i;throw new Fe(901,!1)}}return t.\u0275prov=Ne({token:t,providedIn:"root",factory:AS}),t})();function FS(){return new Zu([new OS])}let Zu=(()=>{class t{constructor(e){this.factories=e}static create(e,i){if(i){const o=i.factories.slice();e=e.concat(o)}return new t(e)}static extend(e){return{provide:t,useFactory:i=>t.create(e,i||FS()),deps:[[t,new mu,new xl]]}}find(e){const i=this.factories.find(o=>o.supports(e));if(i)return i;throw new Fe(901,!1)}}return t.\u0275prov=Ne({token:t,providedIn:"root",factory:FS}),t})();const Y5=bS(null,"core",[]);let H5=(()=>{class t{constructor(e){}}return t.\u0275fac=function(e){return new(e||t)(we(Na))},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})(),VS=(()=>{class t{get whenAllTasksComplete(){return 0===this.collection.size&&this.complete(),this.promise}constructor(){this.taskId=0,this.collection=new Set,this.ngZone=Qe(ft),this.completed=!1,this.ngZone.runOutsideAngular(()=>{this.promise=new Promise(e=>{this.resolve=e})})}add(){if(this.completed)return-1;const e=this.taskId++;return this.collection.add(e),e}remove(e){this.completed||(this.collection.delete(e),0===this.collection.size&&this.complete())}ngOnDestroy(){this.complete(),this.collection.clear()}complete(){this.completed=!0,this.resolve()}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function ud(t){return"boolean"==typeof t?t:null!=t&&"false"!==t}let ty=null;function Ya(){return ty}class X5{}const It=new Re("DocumentToken");let ny=(()=>{class t{historyGo(e){throw new Error("Not implemented")}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return Qe(Q5)},providedIn:"platform"}),t})();const J5=new Re("Location Initialized");let Q5=(()=>{class t extends ny{constructor(){super(),this._doc=Qe(It),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Ya().getBaseHref(this._doc)}onPopState(e){const i=Ya().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",e,!1),()=>i.removeEventListener("popstate",e)}onHashChange(e){const i=Ya().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",e,!1),()=>i.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,i,o){this._history.pushState(e,i,o)}replaceState(e,i,o){this._history.replaceState(e,i,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return new t},providedIn:"platform"}),t})();function iy(t,n){if(0==t.length)return n;if(0==n.length)return t;let e=0;return t.endsWith("/")&&e++,n.startsWith("/")&&e++,2==e?t+n.substring(1):1==e?t+n:t+"/"+n}function zS(t){const n=t.match(/#|\?|$/),e=n&&n.index||t.length;return t.slice(0,e-("/"===t[e-1]?1:0))+t.slice(e)}function Qs(t){return t&&"?"!==t[0]?"?"+t:t}let Rl=(()=>{class t{historyGo(e){throw new Error("Not implemented")}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return Qe(WS)},providedIn:"root"}),t})();const US=new Re("appBaseHref");let WS=(()=>{class t extends Rl{constructor(e,i){super(),this._platformLocation=e,this._removeListenerFns=[],this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??Qe(It).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return iy(this._baseHref,e)}path(e=!1){const i=this._platformLocation.pathname+Qs(this._platformLocation.search),o=this._platformLocation.hash;return o&&e?`${i}${o}`:i}pushState(e,i,o,s){const a=this.prepareExternalUrl(o+Qs(s));this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,s){const a=this.prepareExternalUrl(o+Qs(s));this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return t.\u0275fac=function(e){return new(e||t)(we(ny),we(US,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),eY=(()=>{class t extends Rl{constructor(e,i){super(),this._platformLocation=e,this._baseHref="",this._removeListenerFns=[],null!=i&&(this._baseHref=i)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}path(e=!1){let i=this._platformLocation.hash;return null==i&&(i="#"),i.length>0?i.substring(1):i}prepareExternalUrl(e){const i=iy(this._baseHref,e);return i.length>0?"#"+i:i}pushState(e,i,o,s){let a=this.prepareExternalUrl(o+Qs(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(e,i,a)}replaceState(e,i,o,s){let a=this.prepareExternalUrl(o+Qs(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(e,i,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}}return t.\u0275fac=function(e){return new(e||t)(we(ny),we(US,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),Xu=(()=>{class t{constructor(e){this._subject=new ht,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=e;const i=this._locationStrategy.getBaseHref();this._basePath=function iY(t){if(new RegExp("^(https?:)?//").test(t)){const[,e]=t.split(/\/\/[^\/]+/);return e}return t}(zS($S(i))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,i=""){return this.path()==this.normalize(e+Qs(i))}normalize(e){return t.stripTrailingSlash(function nY(t,n){if(!t||!n.startsWith(t))return n;const e=n.substring(t.length);return""===e||["/",";","?","#"].includes(e[0])?e:n}(this._basePath,$S(e)))}prepareExternalUrl(e){return e&&"/"!==e[0]&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,i="",o=null){this._locationStrategy.pushState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Qs(i)),o)}replaceState(e,i="",o=null){this._locationStrategy.replaceState(o,"",e,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+Qs(i)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)})),()=>{const i=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(i,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",i){this._urlChangeListeners.forEach(o=>o(e,i))}subscribe(e,i,o){return this._subject.subscribe({next:e,error:i,complete:o})}}return t.normalizeQueryParams=Qs,t.joinWithSlash=iy,t.stripTrailingSlash=zS,t.\u0275fac=function(e){return new(e||t)(we(Rl))},t.\u0275prov=Ne({token:t,factory:function(){return function tY(){return new Xu(we(Rl))}()},providedIn:"root"}),t})();function $S(t){return t.replace(/\/index.html$/,"")}var Ni=(()=>((Ni=Ni||{})[Ni.Format=0]="Format",Ni[Ni.Standalone=1]="Standalone",Ni))(),rn=(()=>((rn=rn||{})[rn.Narrow=0]="Narrow",rn[rn.Abbreviated=1]="Abbreviated",rn[rn.Wide=2]="Wide",rn[rn.Short=3]="Short",rn))(),mi=(()=>((mi=mi||{})[mi.Short=0]="Short",mi[mi.Medium=1]="Medium",mi[mi.Long=2]="Long",mi[mi.Full=3]="Full",mi))(),St=(()=>((St=St||{})[St.Decimal=0]="Decimal",St[St.Group=1]="Group",St[St.List=2]="List",St[St.PercentSign=3]="PercentSign",St[St.PlusSign=4]="PlusSign",St[St.MinusSign=5]="MinusSign",St[St.Exponential=6]="Exponential",St[St.SuperscriptingExponent=7]="SuperscriptingExponent",St[St.PerMille=8]="PerMille",St[St.Infinity=9]="Infinity",St[St.NaN=10]="NaN",St[St.TimeSeparator=11]="TimeSeparator",St[St.CurrencyDecimal=12]="CurrencyDecimal",St[St.CurrencyGroup=13]="CurrencyGroup",St))();function $p(t,n){return Uo(jr(t)[ct.DateFormat],n)}function Gp(t,n){return Uo(jr(t)[ct.TimeFormat],n)}function qp(t,n){return Uo(jr(t)[ct.DateTimeFormat],n)}function zo(t,n){const e=jr(t),i=e[ct.NumberSymbols][n];if(typeof i>"u"){if(n===St.CurrencyDecimal)return e[ct.NumberSymbols][St.Decimal];if(n===St.CurrencyGroup)return e[ct.NumberSymbols][St.Group]}return i}function qS(t){if(!t[ct.ExtraData])throw new Error(`Missing extra locale data for the locale "${t[ct.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function Uo(t,n){for(let e=n;e>-1;e--)if(typeof t[e]<"u")return t[e];throw new Error("Locale data API: locale data undefined")}function oy(t){const[n,e]=t.split(":");return{hours:+n,minutes:+e}}const gY=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Ju={},_Y=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var sr=(()=>((sr=sr||{})[sr.Short=0]="Short",sr[sr.ShortGMT=1]="ShortGMT",sr[sr.Long=2]="Long",sr[sr.Extended=3]="Extended",sr))(),Pt=(()=>((Pt=Pt||{})[Pt.FullYear=0]="FullYear",Pt[Pt.Month=1]="Month",Pt[Pt.Date=2]="Date",Pt[Pt.Hours=3]="Hours",Pt[Pt.Minutes=4]="Minutes",Pt[Pt.Seconds=5]="Seconds",Pt[Pt.FractionalSeconds=6]="FractionalSeconds",Pt[Pt.Day=7]="Day",Pt))(),Kt=(()=>((Kt=Kt||{})[Kt.DayPeriods=0]="DayPeriods",Kt[Kt.Days=1]="Days",Kt[Kt.Months=2]="Months",Kt[Kt.Eras=3]="Eras",Kt))();function KS(t,n,e,i){let o=function SY(t){if(JS(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){const[o,s=1,a=1]=t.split("-").map(l=>+l);return Kp(o,s-1,a)}const e=parseFloat(t);if(!isNaN(t-e))return new Date(e);let i;if(i=t.match(gY))return function DY(t){const n=new Date(0);let e=0,i=0;const o=t[8]?n.setUTCFullYear:n.setFullYear,s=t[8]?n.setUTCHours:n.setHours;t[9]&&(e=Number(t[9]+t[10]),i=Number(t[9]+t[11])),o.call(n,Number(t[1]),Number(t[2])-1,Number(t[3]));const a=Number(t[4]||0)-e,l=Number(t[5]||0)-i,d=Number(t[6]||0),_=Math.floor(1e3*parseFloat("0."+(t[7]||0)));return s.call(n,a,l,d,_),n}(i)}const n=new Date(t);if(!JS(n))throw new Error(`Unable to convert "${t}" into a date`);return n}(t);n=ea(e,n)||n;let l,a=[];for(;n;){if(l=_Y.exec(n),!l){a.push(n);break}{a=a.concat(l.slice(1));const E=a.pop();if(!E)break;n=E}}let d=o.getTimezoneOffset();i&&(d=XS(i,d),o=function kY(t,n,e){const i=e?-1:1,o=t.getTimezoneOffset();return function xY(t,n){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+n),t}(t,i*(XS(n,o)-o))}(o,i,!0));let _="";return a.forEach(E=>{const F=function CY(t){if(ay[t])return ay[t];let n;switch(t){case"G":case"GG":case"GGG":n=Jn(Kt.Eras,rn.Abbreviated);break;case"GGGG":n=Jn(Kt.Eras,rn.Wide);break;case"GGGGG":n=Jn(Kt.Eras,rn.Narrow);break;case"y":n=Ki(Pt.FullYear,1,0,!1,!0);break;case"yy":n=Ki(Pt.FullYear,2,0,!0,!0);break;case"yyy":n=Ki(Pt.FullYear,3,0,!1,!0);break;case"yyyy":n=Ki(Pt.FullYear,4,0,!1,!0);break;case"Y":n=Qp(1);break;case"YY":n=Qp(2,!0);break;case"YYY":n=Qp(3);break;case"YYYY":n=Qp(4);break;case"M":case"L":n=Ki(Pt.Month,1,1);break;case"MM":case"LL":n=Ki(Pt.Month,2,1);break;case"MMM":n=Jn(Kt.Months,rn.Abbreviated);break;case"MMMM":n=Jn(Kt.Months,rn.Wide);break;case"MMMMM":n=Jn(Kt.Months,rn.Narrow);break;case"LLL":n=Jn(Kt.Months,rn.Abbreviated,Ni.Standalone);break;case"LLLL":n=Jn(Kt.Months,rn.Wide,Ni.Standalone);break;case"LLLLL":n=Jn(Kt.Months,rn.Narrow,Ni.Standalone);break;case"w":n=sy(1);break;case"ww":n=sy(2);break;case"W":n=sy(1,!0);break;case"d":n=Ki(Pt.Date,1);break;case"dd":n=Ki(Pt.Date,2);break;case"c":case"cc":n=Ki(Pt.Day,1);break;case"ccc":n=Jn(Kt.Days,rn.Abbreviated,Ni.Standalone);break;case"cccc":n=Jn(Kt.Days,rn.Wide,Ni.Standalone);break;case"ccccc":n=Jn(Kt.Days,rn.Narrow,Ni.Standalone);break;case"cccccc":n=Jn(Kt.Days,rn.Short,Ni.Standalone);break;case"E":case"EE":case"EEE":n=Jn(Kt.Days,rn.Abbreviated);break;case"EEEE":n=Jn(Kt.Days,rn.Wide);break;case"EEEEE":n=Jn(Kt.Days,rn.Narrow);break;case"EEEEEE":n=Jn(Kt.Days,rn.Short);break;case"a":case"aa":case"aaa":n=Jn(Kt.DayPeriods,rn.Abbreviated);break;case"aaaa":n=Jn(Kt.DayPeriods,rn.Wide);break;case"aaaaa":n=Jn(Kt.DayPeriods,rn.Narrow);break;case"b":case"bb":case"bbb":n=Jn(Kt.DayPeriods,rn.Abbreviated,Ni.Standalone,!0);break;case"bbbb":n=Jn(Kt.DayPeriods,rn.Wide,Ni.Standalone,!0);break;case"bbbbb":n=Jn(Kt.DayPeriods,rn.Narrow,Ni.Standalone,!0);break;case"B":case"BB":case"BBB":n=Jn(Kt.DayPeriods,rn.Abbreviated,Ni.Format,!0);break;case"BBBB":n=Jn(Kt.DayPeriods,rn.Wide,Ni.Format,!0);break;case"BBBBB":n=Jn(Kt.DayPeriods,rn.Narrow,Ni.Format,!0);break;case"h":n=Ki(Pt.Hours,1,-12);break;case"hh":n=Ki(Pt.Hours,2,-12);break;case"H":n=Ki(Pt.Hours,1);break;case"HH":n=Ki(Pt.Hours,2);break;case"m":n=Ki(Pt.Minutes,1);break;case"mm":n=Ki(Pt.Minutes,2);break;case"s":n=Ki(Pt.Seconds,1);break;case"ss":n=Ki(Pt.Seconds,2);break;case"S":n=Ki(Pt.FractionalSeconds,1);break;case"SS":n=Ki(Pt.FractionalSeconds,2);break;case"SSS":n=Ki(Pt.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":n=Xp(sr.Short);break;case"ZZZZZ":n=Xp(sr.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":n=Xp(sr.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":n=Xp(sr.Long);break;default:return null}return ay[t]=n,n}(E);_+=F?F(o,e,d):"''"===E?"'":E.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),_}function Kp(t,n,e){const i=new Date(0);return i.setFullYear(t,n,e),i.setHours(0,0,0),i}function ea(t,n){const e=function rY(t){return jr(t)[ct.LocaleId]}(t);if(Ju[e]=Ju[e]||{},Ju[e][n])return Ju[e][n];let i="";switch(n){case"shortDate":i=$p(t,mi.Short);break;case"mediumDate":i=$p(t,mi.Medium);break;case"longDate":i=$p(t,mi.Long);break;case"fullDate":i=$p(t,mi.Full);break;case"shortTime":i=Gp(t,mi.Short);break;case"mediumTime":i=Gp(t,mi.Medium);break;case"longTime":i=Gp(t,mi.Long);break;case"fullTime":i=Gp(t,mi.Full);break;case"short":const o=ea(t,"shortTime"),s=ea(t,"shortDate");i=Zp(qp(t,mi.Short),[o,s]);break;case"medium":const a=ea(t,"mediumTime"),l=ea(t,"mediumDate");i=Zp(qp(t,mi.Medium),[a,l]);break;case"long":const d=ea(t,"longTime"),_=ea(t,"longDate");i=Zp(qp(t,mi.Long),[d,_]);break;case"full":const E=ea(t,"fullTime"),F=ea(t,"fullDate");i=Zp(qp(t,mi.Full),[E,F])}return i&&(Ju[e][n]=i),i}function Zp(t,n){return n&&(t=t.replace(/\{([^}]+)}/g,function(e,i){return null!=n&&i in n?n[i]:e})),t}function ns(t,n,e="-",i,o){let s="";(t<0||o&&t<=0)&&(o?t=1-t:(t=-t,s=e));let a=String(t);for(;a.length0||l>-e)&&(l+=e),t===Pt.Hours)0===l&&-12===e&&(l=12);else if(t===Pt.FractionalSeconds)return function bY(t,n){return ns(t,3).substring(0,n)}(l,n);const d=zo(a,St.MinusSign);return ns(l,n,d,i,o)}}function Jn(t,n,e=Ni.Format,i=!1){return function(o,s){return function yY(t,n,e,i,o,s){switch(e){case Kt.Months:return function aY(t,n,e){const i=jr(t),s=Uo([i[ct.MonthsFormat],i[ct.MonthsStandalone]],n);return Uo(s,e)}(n,o,i)[t.getMonth()];case Kt.Days:return function sY(t,n,e){const i=jr(t),s=Uo([i[ct.DaysFormat],i[ct.DaysStandalone]],n);return Uo(s,e)}(n,o,i)[t.getDay()];case Kt.DayPeriods:const a=t.getHours(),l=t.getMinutes();if(s){const _=function uY(t){const n=jr(t);return qS(n),(n[ct.ExtraData][2]||[]).map(i=>"string"==typeof i?oy(i):[oy(i[0]),oy(i[1])])}(n),E=function hY(t,n,e){const i=jr(t);qS(i);const s=Uo([i[ct.ExtraData][0],i[ct.ExtraData][1]],n)||[];return Uo(s,e)||[]}(n,o,i),F=_.findIndex(G=>{if(Array.isArray(G)){const[ie,_e]=G,Ce=a>=ie.hours&&l>=ie.minutes,Ae=a<_e.hours||a===_e.hours&&l<_e.minutes;if(ie.hours<_e.hours){if(Ce&&Ae)return!0}else if(Ce||Ae)return!0}else if(G.hours===a&&G.minutes===l)return!0;return!1});if(-1!==F)return E[F]}return function oY(t,n,e){const i=jr(t),s=Uo([i[ct.DayPeriodsFormat],i[ct.DayPeriodsStandalone]],n);return Uo(s,e)}(n,o,i)[a<12?0:1];case Kt.Eras:return function lY(t,n){return Uo(jr(t)[ct.Eras],n)}(n,i)[t.getFullYear()<=0?0:1];default:throw new Error(`unexpected translation type ${e}`)}}(o,s,t,n,e,i)}}function Xp(t){return function(n,e,i){const o=-1*i,s=zo(e,St.MinusSign),a=o>0?Math.floor(o/60):Math.ceil(o/60);switch(t){case sr.Short:return(o>=0?"+":"")+ns(a,2,s)+ns(Math.abs(o%60),2,s);case sr.ShortGMT:return"GMT"+(o>=0?"+":"")+ns(a,1,s);case sr.Long:return"GMT"+(o>=0?"+":"")+ns(a,2,s)+":"+ns(Math.abs(o%60),2,s);case sr.Extended:return 0===i?"Z":(o>=0?"+":"")+ns(a,2,s)+":"+ns(Math.abs(o%60),2,s);default:throw new Error(`Unknown zone width "${t}"`)}}}const MY=0,Jp=4;function ZS(t){return Kp(t.getFullYear(),t.getMonth(),t.getDate()+(Jp-t.getDay()))}function sy(t,n=!1){return function(e,i){let o;if(n){const s=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,a=e.getDate();o=1+Math.floor((a+s)/7)}else{const s=ZS(e),a=function wY(t){const n=Kp(t,MY,1).getDay();return Kp(t,0,1+(n<=Jp?Jp:Jp+7)-n)}(s.getFullYear()),l=s.getTime()-a.getTime();o=1+Math.round(l/6048e5)}return ns(o,t,zo(i,St.MinusSign))}}function Qp(t,n=!1){return function(e,i){return ns(ZS(e).getFullYear(),t,zo(i,St.MinusSign),n)}}const ay={};function XS(t,n){t=t.replace(/:/g,"");const e=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(e)?n:e}function JS(t){return t instanceof Date&&!isNaN(t.valueOf())}function nD(t,n){n=encodeURIComponent(n);for(const e of t.split(";")){const i=e.indexOf("="),[o,s]=-1==i?[e,""]:[e.slice(0,i),e.slice(i+1)];if(o.trim()===n)return decodeURIComponent(s)}return null}const fy=/\s+/,iD=[];let Nn=(()=>{class t{constructor(e,i,o,s){this._iterableDiffers=e,this._keyValueDiffers=i,this._ngEl=o,this._renderer=s,this.initialClasses=iD,this.stateMap=new Map}set klass(e){this.initialClasses=null!=e?e.trim().split(fy):iD}set ngClass(e){this.rawClass="string"==typeof e?e.trim().split(fy):e}ngDoCheck(){for(const i of this.initialClasses)this._updateState(i,!0);const e=this.rawClass;if(Array.isArray(e)||e instanceof Set)for(const i of e)this._updateState(i,!0);else if(null!=e)for(const i of Object.keys(e))this._updateState(i,!!e[i]);this._applyStateDiff()}_updateState(e,i){const o=this.stateMap.get(e);void 0!==o?(o.enabled!==i&&(o.changed=!0,o.enabled=i),o.touched=!0):this.stateMap.set(e,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(const e of this.stateMap){const i=e[0],o=e[1];o.changed?(this._toggleClass(i,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),o.touched=!1}}_toggleClass(e,i){(e=e.trim()).length>0&&e.split(fy).forEach(o=>{i?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return t.\u0275fac=function(e){return new(e||t)(Y(Ku),Y(Zu),Y(vt),Y(Ks))},t.\u0275dir=Ke({type:t,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),t})();class BY{constructor(n,e,i,o){this.$implicit=n,this.ngForOf=e,this.index=i,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let gi=(()=>{class t{set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}constructor(e,i,o){this._viewContainer=e,this._template=i,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){const e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){const i=this._viewContainer;e.forEachOperation((o,s,a)=>{if(null==o.previousIndex)i.createEmbeddedView(this._template,new BY(o.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)i.remove(null===s?void 0:s);else if(null!==s){const l=i.get(s);i.move(l,a),oD(l,o)}});for(let o=0,s=i.length;o{oD(i.get(o.currentIndex),o)})}static ngTemplateContextGuard(e,i){return!0}}return t.\u0275fac=function(e){return new(e||t)(Y(rr),Y(mr),Y(Ku))},t.\u0275dir=Ke({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),t})();function oD(t,n){t.context.$implicit=n.item}let Ft=(()=>{class t{constructor(e,i){this._viewContainer=e,this._context=new VY,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=i}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){sD("ngIfThen",e),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){sD("ngIfElse",e),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(e,i){return!0}}return t.\u0275fac=function(e){return new(e||t)(Y(rr),Y(mr))},t.\u0275dir=Ke({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),t})();class VY{constructor(){this.$implicit=null,this.ngIf=null}}function sD(t,n){if(n&&!n.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${Fi(n)}'.`)}class py{constructor(n,e){this._viewContainerRef=n,this._templateRef=e,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(n){n&&!this._created?this.create():!n&&this._created&&this.destroy()}}let eh=(()=>{class t{constructor(){this._defaultViews=[],this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(e){this._defaultViews.push(e)}_matchCase(e){const i=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||i,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),i}_updateDefaultCases(e){if(this._defaultViews.length>0&&e!==this._defaultUsed){this._defaultUsed=e;for(const i of this._defaultViews)i.enforceState(e)}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"},standalone:!0}),t})(),my=(()=>{class t{constructor(e,i,o){this.ngSwitch=o,o._addCase(),this._view=new py(e,i)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return t.\u0275fac=function(e){return new(e||t)(Y(rr),Y(mr),Y(eh,9))},t.\u0275dir=Ke({type:t,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"},standalone:!0}),t})(),aD=(()=>{class t{constructor(e,i,o){o._addDefault(new py(e,i))}}return t.\u0275fac=function(e){return new(e||t)(Y(rr),Y(mr),Y(eh,9))},t.\u0275dir=Ke({type:t,selectors:[["","ngSwitchDefault",""]],standalone:!0}),t})(),hd=(()=>{class t{constructor(e){this._viewContainerRef=e,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(e){if(e.ngTemplateOutlet||e.ngTemplateOutletInjector){const i=this._viewContainerRef;if(this._viewRef&&i.remove(i.indexOf(this._viewRef)),this.ngTemplateOutlet){const{ngTemplateOutlet:o,ngTemplateOutletContext:s,ngTemplateOutletInjector:a}=this;this._viewRef=i.createEmbeddedView(o,s,a?{injector:a}:void 0)}else this._viewRef=null}else this._viewRef&&e.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return t.\u0275fac=function(e){return new(e||t)(Y(rr))},t.\u0275dir=Ke({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[Gi]}),t})();const eH=new Re("DATE_PIPE_DEFAULT_TIMEZONE"),tH=new Re("DATE_PIPE_DEFAULT_OPTIONS");let cD=(()=>{class t{constructor(e,i,o){this.locale=e,this.defaultTimezone=i,this.defaultOptions=o}transform(e,i,o,s){if(null==e||""===e||e!=e)return null;try{return KS(e,i??this.defaultOptions?.dateFormat??"mediumDate",s||this.locale,o??this.defaultOptions?.timezone??this.defaultTimezone??void 0)}catch(a){throw function is(t,n){return new Fe(2100,!1)}()}}}return t.\u0275fac=function(e){return new(e||t)(Y(Is,16),Y(eH,24),Y(tH,24))},t.\u0275pipe=ur({name:"date",type:t,pure:!0,standalone:!0}),t})(),ta=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})();const uD="browser";function hD(t){return"server"===t}let mH=(()=>{class t{}return t.\u0275prov=Ne({token:t,providedIn:"root",factory:()=>new gH(we(It),window)}),t})();class gH{constructor(n,e){this.document=n,this.window=e,this.offset=()=>[0,0]}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(n){this.supportsScrolling()&&this.window.scrollTo(n[0],n[1])}scrollToAnchor(n){if(!this.supportsScrolling())return;const e=function _H(t,n){const e=t.getElementById(n)||t.getElementsByName(n)[0];if(e)return e;if("function"==typeof t.createTreeWalker&&t.body&&"function"==typeof t.body.attachShadow){const i=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let o=i.currentNode;for(;o;){const s=o.shadowRoot;if(s){const a=s.getElementById(n)||s.querySelector(`[name="${n}"]`);if(a)return a}o=i.nextNode()}}return null}(this.document,n);e&&(this.scrollToElement(e),e.focus())}setHistoryScrollRestoration(n){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=n)}}scrollToElement(n){const e=n.getBoundingClientRect(),i=e.left+this.window.pageXOffset,o=e.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(i-s[0],o-s[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const n=fD(this.window.history)||fD(Object.getPrototypeOf(this.window.history));return!(!n||!n.writable&&!n.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function fD(t){return Object.getOwnPropertyDescriptor(t,"scrollRestoration")}class pD{}class UH extends X5{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class yy extends UH{static makeCurrent(){!function Z5(t){ty||(ty=t)}(new yy)}onAndCancel(n,e,i){return n.addEventListener(e,i),()=>{n.removeEventListener(e,i)}}dispatchEvent(n,e){n.dispatchEvent(e)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,e){return(e=e||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,e){return"window"===e?window:"document"===e?n:"body"===e?n.body:null}getBaseHref(n){const e=function WH(){return nh=nh||document.querySelector("base"),nh?nh.getAttribute("href"):null}();return null==e?null:function $H(t){rm=rm||document.createElement("a"),rm.setAttribute("href",t);const n=rm.pathname;return"/"===n.charAt(0)?n:`/${n}`}(e)}resetBaseElement(){nh=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return nD(document.cookie,n)}}let rm,nh=null,qH=(()=>{class t{build(){return new XMLHttpRequest}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const My=new Re("EventManagerPlugins");let vD=(()=>{class t{constructor(e,i){this._zone=i,this._eventNameToPlugin=new Map,e.forEach(o=>{o.manager=this}),this._plugins=e.slice().reverse()}addEventListener(e,i,o){return this._findPluginFor(i).addEventListener(e,i,o)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(s=>s.supports(e)),!i)throw new Fe(5101,!1);return this._eventNameToPlugin.set(e,i),i}}return t.\u0275fac=function(e){return new(e||t)(we(My),we(ft))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();class yD{constructor(n){this._doc=n}}const wy="ng-app-id";let MD=(()=>{class t{constructor(e,i,o,s={}){this.doc=e,this.appId=i,this.nonce=o,this.platformId=s,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=hD(s),this.resetHostNodes()}addStyles(e){for(const i of e)1===this.changeUsageCount(i,1)&&this.onStyleAdded(i)}removeStyles(e){for(const i of e)this.changeUsageCount(i,-1)<=0&&this.onStyleRemoved(i)}ngOnDestroy(){const e=this.styleNodesInDOM;e&&(e.forEach(i=>i.remove()),e.clear());for(const i of this.getAllStyles())this.onStyleRemoved(i);this.resetHostNodes()}addHost(e){this.hostNodes.add(e);for(const i of this.getAllStyles())this.addStyleToHost(e,i)}removeHost(e){this.hostNodes.delete(e)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(e){for(const i of this.hostNodes)this.addStyleToHost(i,e)}onStyleRemoved(e){const i=this.styleRef;i.get(e)?.elements?.forEach(o=>o.remove()),i.delete(e)}collectServerRenderedStyles(){const e=this.doc.head?.querySelectorAll(`style[${wy}="${this.appId}"]`);if(e?.length){const i=new Map;return e.forEach(o=>{null!=o.textContent&&i.set(o.textContent,o)}),i}return null}changeUsageCount(e,i){const o=this.styleRef;if(o.has(e)){const s=o.get(e);return s.usage+=i,s.usage}return o.set(e,{usage:i,elements:[]}),i}getStyleElement(e,i){const o=this.styleNodesInDOM,s=o?.get(i);if(s?.parentNode===e)return o.delete(i),s.removeAttribute(wy),s;{const a=this.doc.createElement("style");return this.nonce&&a.setAttribute("nonce",this.nonce),a.textContent=i,this.platformIsServer&&a.setAttribute(wy,this.appId),a}}addStyleToHost(e,i){const o=this.getStyleElement(e,i);e.appendChild(o);const s=this.styleRef,a=s.get(i)?.elements;a?a.push(o):s.set(i,{elements:[o],usage:1})}resetHostNodes(){const e=this.hostNodes;e.clear(),e.add(this.doc.head)}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(ku),we(Tb,8),we(Oa))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const Cy={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},xy=/%COMP%/g,JH=new Re("RemoveStylesOnCompDestory",{providedIn:"root",factory:()=>!1});function CD(t,n){return n.map(e=>e.replace(xy,t))}let ky=(()=>{class t{constructor(e,i,o,s,a,l,d,_=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestory=s,this.doc=a,this.platformId=l,this.ngZone=d,this.nonce=_,this.rendererByCompId=new Map,this.platformIsServer=hD(l),this.defaultRenderer=new Sy(e,a,d,this.platformIsServer)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;this.platformIsServer&&i.encapsulation===Dr.ShadowDom&&(i={...i,encapsulation:Dr.Emulated});const o=this.getOrCreateRenderer(e,i);return o instanceof kD?o.applyToHost(e):o instanceof Dy&&o.applyStyles(),o}getOrCreateRenderer(e,i){const o=this.rendererByCompId;let s=o.get(i.id);if(!s){const a=this.doc,l=this.ngZone,d=this.eventManager,_=this.sharedStylesHost,E=this.removeStylesOnCompDestory,F=this.platformIsServer;switch(i.encapsulation){case Dr.Emulated:s=new kD(d,_,i,this.appId,E,a,l,F);break;case Dr.ShadowDom:return new nB(d,_,e,i,a,l,this.nonce,F);default:s=new Dy(d,_,i,E,a,l,F)}s.onDestroy=()=>o.delete(i.id),o.set(i.id,s)}return s}ngOnDestroy(){this.rendererByCompId.clear()}}return t.\u0275fac=function(e){return new(e||t)(we(vD),we(MD),we(ku),we(JH),we(It),we(Oa),we(ft),we(Tb))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();class Sy{constructor(n,e,i,o){this.eventManager=n,this.doc=e,this.ngZone=i,this.platformIsServer=o,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(n,e){return e?this.doc.createElementNS(Cy[e]||e,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,e){(xD(n)?n.content:n).appendChild(e)}insertBefore(n,e,i){n&&(xD(n)?n.content:n).insertBefore(e,i)}removeChild(n,e){n&&n.removeChild(e)}selectRootElement(n,e){let i="string"==typeof n?this.doc.querySelector(n):n;if(!i)throw new Fe(5104,!1);return e||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,e,i,o){if(o){e=o+":"+e;const s=Cy[o];s?n.setAttributeNS(s,e,i):n.setAttribute(e,i)}else n.setAttribute(e,i)}removeAttribute(n,e,i){if(i){const o=Cy[i];o?n.removeAttributeNS(o,e):n.removeAttribute(`${i}:${e}`)}else n.removeAttribute(e)}addClass(n,e){n.classList.add(e)}removeClass(n,e){n.classList.remove(e)}setStyle(n,e,i,o){o&(Jr.DashCase|Jr.Important)?n.style.setProperty(e,i,o&Jr.Important?"important":""):n.style[e]=i}removeStyle(n,e,i){i&Jr.DashCase?n.style.removeProperty(e):n.style[e]=""}setProperty(n,e,i){n[e]=i}setValue(n,e){n.nodeValue=e}listen(n,e,i){if("string"==typeof n&&!(n=Ya().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${e}`);return this.eventManager.addEventListener(n,e,this.decoratePreventDefault(i))}decoratePreventDefault(n){return e=>{if("__ngUnwrap__"===e)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(e)):n(e))&&e.preventDefault()}}}function xD(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class nB extends Sy{constructor(n,e,i,o,s,a,l,d){super(n,s,a,d),this.sharedStylesHost=e,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const _=CD(o.id,o.styles);for(const E of _){const F=document.createElement("style");l&&F.setAttribute("nonce",l),F.textContent=E,this.shadowRoot.appendChild(F)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,e){return super.appendChild(this.nodeOrShadowRoot(n),e)}insertBefore(n,e,i){return super.insertBefore(this.nodeOrShadowRoot(n),e,i)}removeChild(n,e){return super.removeChild(this.nodeOrShadowRoot(n),e)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class Dy extends Sy{constructor(n,e,i,o,s,a,l,d){super(n,s,a,l),this.sharedStylesHost=e,this.removeStylesOnCompDestory=o,this.rendererUsageCount=0,this.styles=d?CD(d,i.styles):i.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles),this.rendererUsageCount++}destroy(){this.removeStylesOnCompDestory&&(this.sharedStylesHost.removeStyles(this.styles),this.rendererUsageCount--,0===this.rendererUsageCount&&this.onDestroy?.())}}class kD extends Dy{constructor(n,e,i,o,s,a,l,d){const _=o+"-"+i.id;super(n,e,i,s,a,l,d,_),this.contentAttr=function QH(t){return"_ngcontent-%COMP%".replace(xy,t)}(_),this.hostAttr=function eB(t){return"_nghost-%COMP%".replace(xy,t)}(_)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,e){const i=super.createElement(n,e);return super.setAttribute(i,this.contentAttr,""),i}}let iB=(()=>{class t extends yD{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o){return e.addEventListener(i,o,!1),()=>this.removeEventListener(e,i,o)}removeEventListener(e,i,o){return e.removeEventListener(i,o)}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const SD=["alt","control","meta","shift"],rB={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},oB={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let sB=(()=>{class t extends yD{constructor(e){super(e)}supports(e){return null!=t.parseEventName(e)}addEventListener(e,i,o){const s=t.parseEventName(i),a=t.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Ya().onAndCancel(e,s.domEventName,a))}static parseEventName(e){const i=e.toLowerCase().split("."),o=i.shift();if(0===i.length||"keydown"!==o&&"keyup"!==o)return null;const s=t._normalizeKey(i.pop());let a="",l=i.indexOf("code");if(l>-1&&(i.splice(l,1),a="code."),SD.forEach(_=>{const E=i.indexOf(_);E>-1&&(i.splice(E,1),a+=_+".")}),a+=s,0!=i.length||0===s.length)return null;const d={};return d.domEventName=o,d.fullKey=a,d}static matchEventFullKeyCode(e,i){let o=rB[e.key]||e.key,s="";return i.indexOf("code.")>-1&&(o=e.code,s="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),SD.forEach(a=>{a!==o&&(0,oB[a])(e)&&(s+=a+".")}),s+=o,s===i)}static eventCallback(e,i,o){return s=>{t.matchEventFullKeyCode(s,e)&&o.runGuarded(()=>i(s))}}static _normalizeKey(e){return"esc"===e?"escape":e}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const TD=[{provide:Oa,useValue:uD},{provide:$w,useValue:function aB(){yy.makeCurrent()},multi:!0},{provide:It,useFactory:function cB(){return function mA(t){pb=t}(document),document},deps:[]}],dB=bS(Y5,"browser",TD),uB=new Re(""),LD=[{provide:Vp,useClass:class GH{addToWindow(n){wn.getAngularTestability=(i,o=!0)=>{const s=n.findTestabilityInTree(i,o);if(null==s)throw new Fe(5103,!1);return s},wn.getAllAngularTestabilities=()=>n.getAllTestabilities(),wn.getAllAngularRootElements=()=>n.getAllRootElements(),wn.frameworkStabilizers||(wn.frameworkStabilizers=[]),wn.frameworkStabilizers.push(i=>{const o=wn.getAllAngularTestabilities();let s=o.length,a=!1;const l=function(d){a=a||d,s--,0==s&&i(a)};o.forEach(function(d){d.whenStable(l)})})}findTestabilityInTree(n,e,i){return null==e?null:n.getTestability(e)??(i?Ya().isShadowRoot(e)?this.findTestabilityInTree(n,e.host,!0):this.findTestabilityInTree(n,e.parentElement,!0):null)}},deps:[]},{provide:fS,useClass:zv,deps:[ft,Uv,Vp]},{provide:zv,useClass:zv,deps:[ft,Uv,Vp]}],ED=[{provide:Cb,useValue:"root"},{provide:Ss,useFactory:function lB(){return new Ss},deps:[]},{provide:My,useClass:iB,multi:!0,deps:[It,ft,Oa]},{provide:My,useClass:sB,multi:!0,deps:[It]},ky,MD,vD,{provide:Lu,useExisting:ky},{provide:pD,useClass:qH,deps:[]},[]];let ID=(()=>{class t{constructor(e){}static withServerTransition(e){return{ngModule:t,providers:[{provide:ku,useValue:e.appId}]}}}return t.\u0275fac=function(e){return new(e||t)(we(uB,12))},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[...ED,...LD],imports:[ta,H5]}),t})(),PD=(()=>{class t{constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:function(e){let i=null;return i=e?new e:function fB(){return new PD(we(It))}(),i},providedIn:"root"}),t})();typeof window<"u"&&window;let Ly=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(e){let i=null;return i=e?new(e||t):we(FD),i},providedIn:"root"}),t})(),FD=(()=>{class t extends Ly{constructor(e){super(),this._doc=e}sanitize(e,i){if(null==i)return null;switch(e){case kn.NONE:return i;case kn.HTML:return xs(i,"HTML")?_o(i):Fw(this._doc,String(i)).toString();case kn.STYLE:return xs(i,"Style")?_o(i):i;case kn.SCRIPT:if(xs(i,"Script"))return _o(i);throw new Fe(5200,!1);case kn.URL:return xs(i,"URL")?_o(i):fp(String(i));case kn.RESOURCE_URL:if(xs(i,"ResourceURL"))return _o(i);throw new Fe(5201,!1);default:throw new Fe(5202,!1)}}bypassSecurityTrustHtml(e){return function wA(t){return new gA(t)}(e)}bypassSecurityTrustStyle(e){return function CA(t){return new _A(t)}(e)}bypassSecurityTrustScript(e){return function xA(t){return new bA(t)}(e)}bypassSecurityTrustUrl(e){return function kA(t){return new vA(t)}(e)}bypassSecurityTrustResourceUrl(e){return function SA(t){return new yA(t)}(e)}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:function(e){let i=null;return i=e?new e:function _B(t){return new FD(t.get(It))}(we(Si)),i},providedIn:"root"}),t})();class ND{}class bB{}const na="*";function ia(t,n){return{type:7,name:t,definitions:n,options:{}}}function Ur(t,n=null){return{type:4,styles:n,timings:t}}function HD(t,n=null){return{type:2,steps:t,options:n}}function Qn(t){return{type:6,styles:t,offset:null}}function yo(t,n,e){return{type:0,name:t,styles:n,options:e}}function Pr(t,n,e=null){return{type:1,expr:t,animation:n,options:e}}function Ey(t=null){return{type:9,options:t}}function Iy(t,n,e=null){return{type:11,selector:t,animation:n,options:e}}function BD(t){Promise.resolve().then(t)}class ih{constructor(n=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=n+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){BD(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(n=>n()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(n){this._position=this.totalTime?n*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class VD{constructor(n){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=n;let e=0,i=0,o=0;const s=this.players.length;0==s?BD(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==s&&this._onFinish()}),a.onDestroy(()=>{++i==s&&this._onDestroy()}),a.onStart(()=>{++o==s&&this._onStart()})}),this.totalTime=this.players.reduce((a,l)=>Math.max(a,l.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this.players.forEach(n=>n.init())}onStart(n){this._onStartFns.push(n)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(n=>n()),this._onStartFns=[])}onDone(n){this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(n=>n.play())}pause(){this.players.forEach(n=>n.pause())}restart(){this.players.forEach(n=>n.restart())}finish(){this._onFinish(),this.players.forEach(n=>n.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(n=>n.destroy()),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}reset(){this.players.forEach(n=>n.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(n){const e=n*this.totalTime;this.players.forEach(i=>{const o=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(o)})}getPosition(){const n=this.players.reduce((e,i)=>null===e||i.totalTime>e.totalTime?i:e,null);return null!=n?n.getPosition():0}beforeDestroy(){this.players.forEach(n=>{n.beforeDestroy&&n.beforeDestroy()})}triggerCallback(n){const e="start"==n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}const Py="!";function jD(t){return new Fe(3e3,!1)}function Ba(t){switch(t.length){case 0:return new ih;case 1:return t[0];default:return new VD(t)}}function zD(t,n,e=new Map,i=new Map){const o=[],s=[];let a=-1,l=null;if(n.forEach(d=>{const _=d.get("offset"),E=_==a,F=E&&l||new Map;d.forEach((G,ie)=>{let _e=ie,Ce=G;if("offset"!==ie)switch(_e=t.normalizePropertyName(_e,o),Ce){case Py:Ce=e.get(ie);break;case na:Ce=i.get(ie);break;default:Ce=t.normalizeStyleValue(ie,_e,Ce,o)}F.set(_e,Ce)}),E||s.push(F),l=F,a=_}),o.length)throw function VB(t){return new Fe(3502,!1)}();return s}function Oy(t,n,e,i){switch(n){case"start":t.onStart(()=>i(e&&Ay(e,"start",t)));break;case"done":t.onDone(()=>i(e&&Ay(e,"done",t)));break;case"destroy":t.onDestroy(()=>i(e&&Ay(e,"destroy",t)))}}function Ay(t,n,e){const s=Fy(t.element,t.triggerName,t.fromState,t.toState,n||t.phaseName,e.totalTime??t.totalTime,!!e.disabled),a=t._data;return null!=a&&(s._data=a),s}function Fy(t,n,e,i,o="",s=0,a){return{element:t,triggerName:n,fromState:e,toState:i,phaseName:o,totalTime:s,disabled:!!a}}function Mo(t,n,e){let i=t.get(n);return i||t.set(n,i=e),i}function UD(t){const n=t.indexOf(":");return[t.substring(1,n),t.slice(n+1)]}const QB=(()=>typeof document>"u"?null:document.documentElement)();function Ry(t){const n=t.parentNode||t.host||null;return n===QB?null:n}let Nl=null,WD=!1;function $D(t,n){for(;n;){if(n===t)return!0;n=Ry(n)}return!1}function GD(t,n,e){if(e)return Array.from(t.querySelectorAll(n));const i=t.querySelector(n);return i?[i]:[]}let qD=(()=>{class t{validateStyleProperty(e){return function tV(t){Nl||(Nl=function nV(){return typeof document<"u"?document.body:null}()||{},WD=!!Nl.style&&"WebkitAppearance"in Nl.style);let n=!0;return Nl.style&&!function eV(t){return"ebkit"==t.substring(1,6)}(t)&&(n=t in Nl.style,!n&&WD&&(n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in Nl.style)),n}(e)}matchesElement(e,i){return!1}containsElement(e,i){return $D(e,i)}getParentElement(e){return Ry(e)}query(e,i,o){return GD(e,i,o)}computeStyle(e,i,o){return o||""}animate(e,i,o,s,a,l=[],d){return new ih(o,s)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),Ny=(()=>{class t{}return t.NOOP=new qD,t})();const iV=1e3,Yy="ng-enter",om="ng-leave",sm="ng-trigger",am=".ng-trigger",ZD="ng-animating",Hy=".ng-animating";function ra(t){if("number"==typeof t)return t;const n=t.match(/^(-?[\.\d]+)(m?s)/);return!n||n.length<2?0:By(parseFloat(n[1]),n[2])}function By(t,n){return"s"===n?t*iV:t}function lm(t,n,e){return t.hasOwnProperty("duration")?t:function oV(t,n,e){let o,s=0,a="";if("string"==typeof t){const l=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===l)return n.push(jD()),{duration:0,delay:0,easing:""};o=By(parseFloat(l[1]),l[2]);const d=l[3];null!=d&&(s=By(parseFloat(d),l[4]));const _=l[5];_&&(a=_)}else o=t;if(!e){let l=!1,d=n.length;o<0&&(n.push(function vB(){return new Fe(3100,!1)}()),l=!0),s<0&&(n.push(function yB(){return new Fe(3101,!1)}()),l=!0),l&&n.splice(d,0,jD())}return{duration:o,delay:s,easing:a}}(t,n,e)}function rh(t,n={}){return Object.keys(t).forEach(e=>{n[e]=t[e]}),n}function XD(t){const n=new Map;return Object.keys(t).forEach(e=>{n.set(e,t[e])}),n}function Va(t,n=new Map,e){if(e)for(let[i,o]of e)n.set(i,o);for(let[i,o]of t)n.set(i,o);return n}function Ps(t,n,e){n.forEach((i,o)=>{const s=jy(o);e&&!e.has(o)&&e.set(o,t.style[s]),t.style[s]=i})}function Yl(t,n){n.forEach((e,i)=>{const o=jy(i);t.style[o]=""})}function oh(t){return Array.isArray(t)?1==t.length?t[0]:HD(t):t}const Vy=new RegExp("{{\\s*(.+?)\\s*}}","g");function QD(t){let n=[];if("string"==typeof t){let e;for(;e=Vy.exec(t);)n.push(e[1]);Vy.lastIndex=0}return n}function sh(t,n,e){const i=t.toString(),o=i.replace(Vy,(s,a)=>{let l=n[a];return null==l&&(e.push(function wB(t){return new Fe(3003,!1)}()),l=""),l.toString()});return o==i?t:o}function cm(t){const n=[];let e=t.next();for(;!e.done;)n.push(e.value),e=t.next();return n}const lV=/-+([a-z0-9])/g;function jy(t){return t.replace(lV,(...n)=>n[1].toUpperCase())}function wo(t,n,e){switch(n.type){case 7:return t.visitTrigger(n,e);case 0:return t.visitState(n,e);case 1:return t.visitTransition(n,e);case 2:return t.visitSequence(n,e);case 3:return t.visitGroup(n,e);case 4:return t.visitAnimate(n,e);case 5:return t.visitKeyframes(n,e);case 6:return t.visitStyle(n,e);case 8:return t.visitReference(n,e);case 9:return t.visitAnimateChild(n,e);case 10:return t.visitAnimateRef(n,e);case 11:return t.visitQuery(n,e);case 12:return t.visitStagger(n,e);default:throw function CB(t){return new Fe(3004,!1)}()}}function eT(t,n){return window.getComputedStyle(t)[n]}const dm="*";function uV(t,n){const e=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(i=>function hV(t,n,e){if(":"==t[0]){const d=function fV(t,n){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}(t,e);if("function"==typeof d)return void n.push(d);t=d}const i=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==i||i.length<4)return e.push(function RB(t){return new Fe(3015,!1)}()),n;const o=i[1],s=i[2],a=i[3];n.push(tT(o,a));"<"==s[0]&&!(o==dm&&a==dm)&&n.push(tT(a,o))}(i,e,n)):e.push(t),e}const um=new Set(["true","1"]),hm=new Set(["false","0"]);function tT(t,n){const e=um.has(t)||hm.has(t),i=um.has(n)||hm.has(n);return(o,s)=>{let a=t==dm||t==o,l=n==dm||n==s;return!a&&e&&"boolean"==typeof o&&(a=o?um.has(t):hm.has(t)),!l&&i&&"boolean"==typeof s&&(l=s?um.has(n):hm.has(n)),a&&l}}const pV=new RegExp("s*:selfs*,?","g");function zy(t,n,e,i){return new mV(t).build(n,e,i)}class mV{constructor(n){this._driver=n}build(n,e,i){const o=new bV(e);return this._resetContextStyleTimingState(o),wo(this,oh(n),o)}_resetContextStyleTimingState(n){n.currentQuerySelector="",n.collectedStyles=new Map,n.collectedStyles.set("",new Map),n.currentTime=0}visitTrigger(n,e){let i=e.queryCount=0,o=e.depCount=0;const s=[],a=[];return"@"==n.name.charAt(0)&&e.errors.push(function kB(){return new Fe(3006,!1)}()),n.definitions.forEach(l=>{if(this._resetContextStyleTimingState(e),0==l.type){const d=l,_=d.name;_.toString().split(/\s*,\s*/).forEach(E=>{d.name=E,s.push(this.visitState(d,e))}),d.name=_}else if(1==l.type){const d=this.visitTransition(l,e);i+=d.queryCount,o+=d.depCount,a.push(d)}else e.errors.push(function SB(){return new Fe(3007,!1)}())}),{type:7,name:n.name,states:s,transitions:a,queryCount:i,depCount:o,options:null}}visitState(n,e){const i=this.visitStyle(n.styles,e),o=n.options&&n.options.params||null;if(i.containsDynamicStyles){const s=new Set,a=o||{};i.styles.forEach(l=>{l instanceof Map&&l.forEach(d=>{QD(d).forEach(_=>{a.hasOwnProperty(_)||s.add(_)})})}),s.size&&(cm(s.values()),e.errors.push(function DB(t,n){return new Fe(3008,!1)}()))}return{type:0,name:n.name,style:i,options:o?{params:o}:null}}visitTransition(n,e){e.queryCount=0,e.depCount=0;const i=wo(this,oh(n.animation),e);return{type:1,matchers:uV(n.expr,e.errors),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Hl(n.options)}}visitSequence(n,e){return{type:2,steps:n.steps.map(i=>wo(this,i,e)),options:Hl(n.options)}}visitGroup(n,e){const i=e.currentTime;let o=0;const s=n.steps.map(a=>{e.currentTime=i;const l=wo(this,a,e);return o=Math.max(o,e.currentTime),l});return e.currentTime=o,{type:3,steps:s,options:Hl(n.options)}}visitAnimate(n,e){const i=function yV(t,n){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Uy(lm(t,n).duration,0,"");const e=t;if(e.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=Uy(0,0,"");return s.dynamic=!0,s.strValue=e,s}const o=lm(e,n);return Uy(o.duration,o.delay,o.easing)}(n.timings,e.errors);e.currentAnimateTimings=i;let o,s=n.styles?n.styles:Qn({});if(5==s.type)o=this.visitKeyframes(s,e);else{let a=n.styles,l=!1;if(!a){l=!0;const _={};i.easing&&(_.easing=i.easing),a=Qn(_)}e.currentTime+=i.duration+i.delay;const d=this.visitStyle(a,e);d.isEmptyStep=l,o=d}return e.currentAnimateTimings=null,{type:4,timings:i,style:o,options:null}}visitStyle(n,e){const i=this._makeStyleAst(n,e);return this._validateStyleAst(i,e),i}_makeStyleAst(n,e){const i=[],o=Array.isArray(n.styles)?n.styles:[n.styles];for(let l of o)"string"==typeof l?l===na?i.push(l):e.errors.push(new Fe(3002,!1)):i.push(XD(l));let s=!1,a=null;return i.forEach(l=>{if(l instanceof Map&&(l.has("easing")&&(a=l.get("easing"),l.delete("easing")),!s))for(let d of l.values())if(d.toString().indexOf("{{")>=0){s=!0;break}}),{type:6,styles:i,easing:a,offset:n.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(n,e){const i=e.currentAnimateTimings;let o=e.currentTime,s=e.currentTime;i&&s>0&&(s-=i.duration+i.delay),n.styles.forEach(a=>{"string"!=typeof a&&a.forEach((l,d)=>{const _=e.collectedStyles.get(e.currentQuerySelector),E=_.get(d);let F=!0;E&&(s!=o&&s>=E.startTime&&o<=E.endTime&&(e.errors.push(function LB(t,n,e,i,o){return new Fe(3010,!1)}()),F=!1),s=E.startTime),F&&_.set(d,{startTime:s,endTime:o}),e.options&&function aV(t,n,e){const i=n.params||{},o=QD(t);o.length&&o.forEach(s=>{i.hasOwnProperty(s)||e.push(function MB(t){return new Fe(3001,!1)}())})}(l,e.options,e.errors)})})}visitKeyframes(n,e){const i={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(function EB(){return new Fe(3011,!1)}()),i;let s=0;const a=[];let l=!1,d=!1,_=0;const E=n.steps.map(ze=>{const Ee=this._makeStyleAst(ze,e);let qe=null!=Ee.offset?Ee.offset:function vV(t){if("string"==typeof t)return null;let n=null;if(Array.isArray(t))t.forEach(e=>{if(e instanceof Map&&e.has("offset")){const i=e;n=parseFloat(i.get("offset")),i.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const e=t;n=parseFloat(e.get("offset")),e.delete("offset")}return n}(Ee.styles),dt=0;return null!=qe&&(s++,dt=Ee.offset=qe),d=d||dt<0||dt>1,l=l||dt<_,_=dt,a.push(dt),Ee});d&&e.errors.push(function IB(){return new Fe(3012,!1)}()),l&&e.errors.push(function PB(){return new Fe(3200,!1)}());const F=n.steps.length;let G=0;s>0&&s{const qe=G>0?Ee==ie?1:G*Ee:a[Ee],dt=qe*Ae;e.currentTime=_e+Ce.delay+dt,Ce.duration=dt,this._validateStyleAst(ze,e),ze.offset=qe,i.styles.push(ze)}),i}visitReference(n,e){return{type:8,animation:wo(this,oh(n.animation),e),options:Hl(n.options)}}visitAnimateChild(n,e){return e.depCount++,{type:9,options:Hl(n.options)}}visitAnimateRef(n,e){return{type:10,animation:this.visitReference(n.animation,e),options:Hl(n.options)}}visitQuery(n,e){const i=e.currentQuerySelector,o=n.options||{};e.queryCount++,e.currentQuery=n;const[s,a]=function gV(t){const n=!!t.split(/\s*,\s*/).find(e=>":self"==e);return n&&(t=t.replace(pV,"")),t=t.replace(/@\*/g,am).replace(/@\w+/g,e=>am+"-"+e.slice(1)).replace(/:animating/g,Hy),[t,n]}(n.selector);e.currentQuerySelector=i.length?i+" "+s:s,Mo(e.collectedStyles,e.currentQuerySelector,new Map);const l=wo(this,oh(n.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:11,selector:s,limit:o.limit||0,optional:!!o.optional,includeSelf:a,animation:l,originalSelector:n.selector,options:Hl(n.options)}}visitStagger(n,e){e.currentQuery||e.errors.push(function AB(){return new Fe(3013,!1)}());const i="full"===n.timings?{duration:0,delay:0,easing:"full"}:lm(n.timings,e.errors,!0);return{type:12,animation:wo(this,oh(n.animation),e),timings:i,options:null}}}class bV{constructor(n){this.errors=n,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function Hl(t){return t?(t=rh(t)).params&&(t.params=function _V(t){return t?rh(t):null}(t.params)):t={},t}function Uy(t,n,e){return{duration:t,delay:n,easing:e}}function Wy(t,n,e,i,o,s,a=null,l=!1){return{type:1,element:t,keyframes:n,preStyleProps:e,postStyleProps:i,duration:o,delay:s,totalTime:o+s,easing:a,subTimeline:l}}class fm{constructor(){this._map=new Map}get(n){return this._map.get(n)||[]}append(n,e){let i=this._map.get(n);i||this._map.set(n,i=[]),i.push(...e)}has(n){return this._map.has(n)}clear(){this._map.clear()}}const CV=new RegExp(":enter","g"),kV=new RegExp(":leave","g");function $y(t,n,e,i,o,s=new Map,a=new Map,l,d,_=[]){return(new SV).buildKeyframes(t,n,e,i,o,s,a,l,d,_)}class SV{buildKeyframes(n,e,i,o,s,a,l,d,_,E=[]){_=_||new fm;const F=new Gy(n,e,_,o,s,E,[]);F.options=d;const G=d.delay?ra(d.delay):0;F.currentTimeline.delayNextStep(G),F.currentTimeline.setStyles([a],null,F.errors,d),wo(this,i,F);const ie=F.timelines.filter(_e=>_e.containsAnimation());if(ie.length&&l.size){let _e;for(let Ce=ie.length-1;Ce>=0;Ce--){const Ae=ie[Ce];if(Ae.element===e){_e=Ae;break}}_e&&!_e.allowOnlyTimelineStyles()&&_e.setStyles([l],null,F.errors,d)}return ie.length?ie.map(_e=>_e.buildKeyframes()):[Wy(e,[],[],[],0,G,"",!1)]}visitTrigger(n,e){}visitState(n,e){}visitTransition(n,e){}visitAnimateChild(n,e){const i=e.subInstructions.get(e.element);if(i){const o=e.createSubContext(n.options),s=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,o,o.options);s!=a&&e.transformIntoNewTimeline(a)}e.previousNode=n}visitAnimateRef(n,e){const i=e.createSubContext(n.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([n.options,n.animation.options],e,i),this.visitReference(n.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=n}_applyAnimationRefDelays(n,e,i){for(const o of n){const s=o?.delay;if(s){const a="number"==typeof s?s:ra(sh(s,o?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(n,e,i){let s=e.currentTimeline.currentTime;const a=null!=i.duration?ra(i.duration):null,l=null!=i.delay?ra(i.delay):null;return 0!==a&&n.forEach(d=>{const _=e.appendInstructionToTimeline(d,a,l);s=Math.max(s,_.duration+_.delay)}),s}visitReference(n,e){e.updateOptions(n.options,!0),wo(this,n.animation,e),e.previousNode=n}visitSequence(n,e){const i=e.subContextCount;let o=e;const s=n.options;if(s&&(s.params||s.delay)&&(o=e.createSubContext(s),o.transformIntoNewTimeline(),null!=s.delay)){6==o.previousNode.type&&(o.currentTimeline.snapshotCurrentStyles(),o.previousNode=pm);const a=ra(s.delay);o.delayNextStep(a)}n.steps.length&&(n.steps.forEach(a=>wo(this,a,o)),o.currentTimeline.applyStylesToKeyframe(),o.subContextCount>i&&o.transformIntoNewTimeline()),e.previousNode=n}visitGroup(n,e){const i=[];let o=e.currentTimeline.currentTime;const s=n.options&&n.options.delay?ra(n.options.delay):0;n.steps.forEach(a=>{const l=e.createSubContext(n.options);s&&l.delayNextStep(s),wo(this,a,l),o=Math.max(o,l.currentTimeline.currentTime),i.push(l.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(o),e.previousNode=n}_visitTiming(n,e){if(n.dynamic){const i=n.strValue;return lm(e.params?sh(i,e.params,e.errors):i,e.errors)}return{duration:n.duration,delay:n.delay,easing:n.easing}}visitAnimate(n,e){const i=e.currentAnimateTimings=this._visitTiming(n.timings,e),o=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),o.snapshotCurrentStyles());const s=n.style;5==s.type?this.visitKeyframes(s,e):(e.incrementTime(i.duration),this.visitStyle(s,e),o.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=n}visitStyle(n,e){const i=e.currentTimeline,o=e.currentAnimateTimings;!o&&i.hasCurrentStyleProperties()&&i.forwardFrame();const s=o&&o.easing||n.easing;n.isEmptyStep?i.applyEmptyStep(s):i.setStyles(n.styles,s,e.errors,e.options),e.previousNode=n}visitKeyframes(n,e){const i=e.currentAnimateTimings,o=e.currentTimeline.duration,s=i.duration,l=e.createSubContext().currentTimeline;l.easing=i.easing,n.styles.forEach(d=>{l.forwardTime((d.offset||0)*s),l.setStyles(d.styles,d.easing,e.errors,e.options),l.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(l),e.transformIntoNewTimeline(o+s),e.previousNode=n}visitQuery(n,e){const i=e.currentTimeline.currentTime,o=n.options||{},s=o.delay?ra(o.delay):0;s&&(6===e.previousNode.type||0==i&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=pm);let a=i;const l=e.invokeQuery(n.selector,n.originalSelector,n.limit,n.includeSelf,!!o.optional,e.errors);e.currentQueryTotal=l.length;let d=null;l.forEach((_,E)=>{e.currentQueryIndex=E;const F=e.createSubContext(n.options,_);s&&F.delayNextStep(s),_===e.element&&(d=F.currentTimeline),wo(this,n.animation,F),F.currentTimeline.applyStylesToKeyframe(),a=Math.max(a,F.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),d&&(e.currentTimeline.mergeTimelineCollectedStyles(d),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=n}visitStagger(n,e){const i=e.parentContext,o=e.currentTimeline,s=n.timings,a=Math.abs(s.duration),l=a*(e.currentQueryTotal-1);let d=a*e.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":d=l-d;break;case"full":d=i.currentStaggerTime}const E=e.currentTimeline;d&&E.delayNextStep(d);const F=E.currentTime;wo(this,n.animation,e),e.previousNode=n,i.currentStaggerTime=o.currentTime-F+(o.startTime-i.currentTimeline.startTime)}}const pm={};class Gy{constructor(n,e,i,o,s,a,l,d){this._driver=n,this.element=e,this.subInstructions=i,this._enterClassName=o,this._leaveClassName=s,this.errors=a,this.timelines=l,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=pm,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=d||new mm(this._driver,e,0),l.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(n,e){if(!n)return;const i=n;let o=this.options;null!=i.duration&&(o.duration=ra(i.duration)),null!=i.delay&&(o.delay=ra(i.delay));const s=i.params;if(s){let a=o.params;a||(a=this.options.params={}),Object.keys(s).forEach(l=>{(!e||!a.hasOwnProperty(l))&&(a[l]=sh(s[l],a,this.errors))})}}_copyOptions(){const n={};if(this.options){const e=this.options.params;if(e){const i=n.params={};Object.keys(e).forEach(o=>{i[o]=e[o]})}}return n}createSubContext(n=null,e,i){const o=e||this.element,s=new Gy(this._driver,o,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(o,i||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(n),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(n){return this.previousNode=pm,this.currentTimeline=this.currentTimeline.fork(this.element,n),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(n,e,i){const o={duration:e??n.duration,delay:this.currentTimeline.currentTime+(i??0)+n.delay,easing:""},s=new DV(this._driver,n.element,n.keyframes,n.preStyleProps,n.postStyleProps,o,n.stretchStartingKeyframe);return this.timelines.push(s),o}incrementTime(n){this.currentTimeline.forwardTime(this.currentTimeline.duration+n)}delayNextStep(n){n>0&&this.currentTimeline.delayNextStep(n)}invokeQuery(n,e,i,o,s,a){let l=[];if(o&&l.push(this.element),n.length>0){n=(n=n.replace(CV,"."+this._enterClassName)).replace(kV,"."+this._leaveClassName);let _=this._driver.query(this.element,n,1!=i);0!==i&&(_=i<0?_.slice(_.length+i,_.length):_.slice(0,i)),l.push(..._)}return!s&&0==l.length&&a.push(function FB(t){return new Fe(3014,!1)}()),l}}class mm{constructor(n,e,i,o){this._driver=n,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=o,this.duration=0,this.easing=null,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(n){const e=1===this._keyframes.size&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+n),e&&this.snapshotCurrentStyles()):this.startTime+=n}fork(n,e){return this.applyStylesToKeyframe(),new mm(this._driver,n,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(n){this.applyStylesToKeyframe(),this.duration=n,this._loadKeyframe()}_updateStyle(n,e){this._localTimelineStyles.set(n,e),this._globalTimelineStyles.set(n,e),this._styleSummary.set(n,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(n){n&&this._previousKeyframe.set("easing",n);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||na),this._currentKeyframe.set(e,na);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(n,e,i,o){e&&this._previousKeyframe.set("easing",e);const s=o&&o.params||{},a=function TV(t,n){const e=new Map;let i;return t.forEach(o=>{if("*"===o){i=i||n.keys();for(let s of i)e.set(s,na)}else Va(o,e)}),e}(n,this._globalTimelineStyles);for(let[l,d]of a){const _=sh(d,s,i);this._pendingStyles.set(l,_),this._localTimelineStyles.has(l)||this._backFill.set(l,this._globalTimelineStyles.get(l)??na),this._updateStyle(l,_)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((n,e)=>{this._currentKeyframe.set(e,n)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((n,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,n)}))}snapshotCurrentStyles(){for(let[n,e]of this._localTimelineStyles)this._pendingStyles.set(n,e),this._updateStyle(n,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const n=[];for(let e in this._currentKeyframe)n.push(e);return n}mergeTimelineCollectedStyles(n){n._styleSummary.forEach((e,i)=>{const o=this._styleSummary.get(i);(!o||e.time>o.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();const n=new Set,e=new Set,i=1===this._keyframes.size&&0===this.duration;let o=[];this._keyframes.forEach((l,d)=>{const _=Va(l,new Map,this._backFill);_.forEach((E,F)=>{E===Py?n.add(F):E===na&&e.add(F)}),i||_.set("offset",d/this.duration),o.push(_)});const s=n.size?cm(n.values()):[],a=e.size?cm(e.values()):[];if(i){const l=o[0],d=new Map(l);l.set("offset",0),d.set("offset",1),o=[l,d]}return Wy(this.element,o,s,a,this.duration,this.startTime,this.easing,!1)}}class DV extends mm{constructor(n,e,i,o,s,a,l=!1){super(n,e,a.delay),this.keyframes=i,this.preStyleProps=o,this.postStyleProps=s,this._stretchStartingKeyframe=l,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let n=this.keyframes,{delay:e,duration:i,easing:o}=this.timings;if(this._stretchStartingKeyframe&&e){const s=[],a=i+e,l=e/a,d=Va(n[0]);d.set("offset",0),s.push(d);const _=Va(n[0]);_.set("offset",rT(l)),s.push(_);const E=n.length-1;for(let F=1;F<=E;F++){let G=Va(n[F]);const ie=G.get("offset");G.set("offset",rT((e+ie*i)/a)),s.push(G)}i=a,e=0,o="",n=s}return Wy(this.element,n,this.preStyleProps,this.postStyleProps,i,e,o,!0)}}function rT(t,n=3){const e=Math.pow(10,n-1);return Math.round(t*e)/e}class qy{}const LV=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class EV extends qy{normalizePropertyName(n,e){return jy(n)}normalizeStyleValue(n,e,i,o){let s="";const a=i.toString().trim();if(LV.has(e)&&0!==i&&"0"!==i)if("number"==typeof i)s="px";else{const l=i.match(/^[+-]?[\d\.]+([a-z]*)$/);l&&0==l[1].length&&o.push(function xB(t,n){return new Fe(3005,!1)}())}return a+s}}function oT(t,n,e,i,o,s,a,l,d,_,E,F,G){return{type:0,element:t,triggerName:n,isRemovalTransition:o,fromState:e,fromStyles:s,toState:i,toStyles:a,timelines:l,queriedElements:d,preStyleProps:_,postStyleProps:E,totalTime:F,errors:G}}const Ky={};class sT{constructor(n,e,i){this._triggerName=n,this.ast=e,this._stateStyles=i}match(n,e,i,o){return function IV(t,n,e,i,o){return t.some(s=>s(n,e,i,o))}(this.ast.matchers,n,e,i,o)}buildStyles(n,e,i){let o=this._stateStyles.get("*");return void 0!==n&&(o=this._stateStyles.get(n?.toString())||o),o?o.buildStyles(e,i):new Map}build(n,e,i,o,s,a,l,d,_,E){const F=[],G=this.ast.options&&this.ast.options.params||Ky,_e=this.buildStyles(i,l&&l.params||Ky,F),Ce=d&&d.params||Ky,Ae=this.buildStyles(o,Ce,F),ze=new Set,Ee=new Map,qe=new Map,dt="void"===o,Rt={params:PV(Ce,G),delay:this.ast.options?.delay},sn=E?[]:$y(n,e,this.ast.animation,s,a,_e,Ae,Rt,_,F);let Ii=0;if(sn.forEach(us=>{Ii=Math.max(us.duration+us.delay,Ii)}),F.length)return oT(e,this._triggerName,i,o,dt,_e,Ae,[],[],Ee,qe,Ii,F);sn.forEach(us=>{const ga=us.element,zP=Mo(Ee,ga,new Set);us.preStyleProps.forEach(lc=>zP.add(lc));const lf=Mo(qe,ga,new Set);us.postStyleProps.forEach(lc=>lf.add(lc)),ga!==e&&ze.add(ga)});const ds=cm(ze.values());return oT(e,this._triggerName,i,o,dt,_e,Ae,sn,ds,Ee,qe,Ii)}}function PV(t,n){const e=rh(n);for(const i in t)t.hasOwnProperty(i)&&null!=t[i]&&(e[i]=t[i]);return e}class OV{constructor(n,e,i){this.styles=n,this.defaultParams=e,this.normalizer=i}buildStyles(n,e){const i=new Map,o=rh(this.defaultParams);return Object.keys(n).forEach(s=>{const a=n[s];null!==a&&(o[s]=a)}),this.styles.styles.forEach(s=>{"string"!=typeof s&&s.forEach((a,l)=>{a&&(a=sh(a,o,e));const d=this.normalizer.normalizePropertyName(l,e);a=this.normalizer.normalizeStyleValue(l,d,a,e),i.set(l,a)})}),i}}class FV{constructor(n,e,i){this.name=n,this.ast=e,this._normalizer=i,this.transitionFactories=[],this.states=new Map,e.states.forEach(o=>{this.states.set(o.name,new OV(o.style,o.options&&o.options.params||{},i))}),aT(this.states,"true","1"),aT(this.states,"false","0"),e.transitions.forEach(o=>{this.transitionFactories.push(new sT(n,o,this.states))}),this.fallbackTransition=function RV(t,n,e){return new sT(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[(a,l)=>!0],options:null,queryCount:0,depCount:0},n)}(n,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(n,e,i,o){return this.transitionFactories.find(a=>a.match(n,e,i,o))||null}matchStyles(n,e,i){return this.fallbackTransition.buildStyles(n,e,i)}}function aT(t,n,e){t.has(n)?t.has(e)||t.set(e,t.get(n)):t.has(e)&&t.set(n,t.get(e))}const NV=new fm;class YV{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._animations=new Map,this._playersById=new Map,this.players=[]}register(n,e){const i=[],s=zy(this._driver,e,i,[]);if(i.length)throw function jB(t){return new Fe(3503,!1)}();this._animations.set(n,s)}_buildPlayer(n,e,i){const o=n.element,s=zD(this._normalizer,n.keyframes,e,i);return this._driver.animate(o,s,n.duration,n.delay,n.easing,[],!0)}create(n,e,i={}){const o=[],s=this._animations.get(n);let a;const l=new Map;if(s?(a=$y(this._driver,e,s,Yy,om,new Map,new Map,i,NV,o),a.forEach(E=>{const F=Mo(l,E.element,new Map);E.postStyleProps.forEach(G=>F.set(G,null))})):(o.push(function zB(){return new Fe(3300,!1)}()),a=[]),o.length)throw function UB(t){return new Fe(3504,!1)}();l.forEach((E,F)=>{E.forEach((G,ie)=>{E.set(ie,this._driver.computeStyle(F,ie,na))})});const _=Ba(a.map(E=>{const F=l.get(E.element);return this._buildPlayer(E,new Map,F)}));return this._playersById.set(n,_),_.onDestroy(()=>this.destroy(n)),this.players.push(_),_}destroy(n){const e=this._getPlayer(n);e.destroy(),this._playersById.delete(n);const i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(n){const e=this._playersById.get(n);if(!e)throw function WB(t){return new Fe(3301,!1)}();return e}listen(n,e,i,o){const s=Fy(e,"","","");return Oy(this._getPlayer(n),i,s,o),()=>{}}command(n,e,i,o){if("register"==i)return void this.register(n,o[0]);if("create"==i)return void this.create(n,e,o[0]||{});const s=this._getPlayer(n);switch(i){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(o[0]));break;case"destroy":this.destroy(n)}}}const lT="ng-animate-queued",Zy="ng-animate-disabled",zV=[],cT={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},UV={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Wo="__ng_removed";class Xy{get params(){return this.options.params}constructor(n,e=""){this.namespaceId=e;const i=n&&n.hasOwnProperty("value");if(this.value=function qV(t){return t??null}(i?n.value:n),i){const s=rh(n);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}absorbOptions(n){const e=n.params;if(e){const i=this.options.params;Object.keys(e).forEach(o=>{null==i[o]&&(i[o]=e[o])})}}}const ah="void",Jy=new Xy(ah);class WV{constructor(n,e,i){this.id=n,this.hostElement=e,this._engine=i,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+n,$o(e,this._hostClassName)}listen(n,e,i,o){if(!this._triggers.has(e))throw function $B(t,n){return new Fe(3302,!1)}();if(null==i||0==i.length)throw function GB(t){return new Fe(3303,!1)}();if(!function KV(t){return"start"==t||"done"==t}(i))throw function qB(t,n){return new Fe(3400,!1)}();const s=Mo(this._elementListeners,n,[]),a={name:e,phase:i,callback:o};s.push(a);const l=Mo(this._engine.statesByElement,n,new Map);return l.has(e)||($o(n,sm),$o(n,sm+"-"+e),l.set(e,Jy)),()=>{this._engine.afterFlush(()=>{const d=s.indexOf(a);d>=0&&s.splice(d,1),this._triggers.has(e)||l.delete(e)})}}register(n,e){return!this._triggers.has(n)&&(this._triggers.set(n,e),!0)}_getTrigger(n){const e=this._triggers.get(n);if(!e)throw function KB(t){return new Fe(3401,!1)}();return e}trigger(n,e,i,o=!0){const s=this._getTrigger(e),a=new Qy(this.id,e,n);let l=this._engine.statesByElement.get(n);l||($o(n,sm),$o(n,sm+"-"+e),this._engine.statesByElement.set(n,l=new Map));let d=l.get(e);const _=new Xy(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&d&&_.absorbOptions(d.options),l.set(e,_),d||(d=Jy),_.value!==ah&&d.value===_.value){if(!function JV(t,n){const e=Object.keys(t),i=Object.keys(n);if(e.length!=i.length)return!1;for(let o=0;o{Yl(n,Ae),Ps(n,ze)})}return}const G=Mo(this._engine.playersByElement,n,[]);G.forEach(Ce=>{Ce.namespaceId==this.id&&Ce.triggerName==e&&Ce.queued&&Ce.destroy()});let ie=s.matchTransition(d.value,_.value,n,_.params),_e=!1;if(!ie){if(!o)return;ie=s.fallbackTransition,_e=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:e,transition:ie,fromState:d,toState:_,player:a,isFallbackTransition:_e}),_e||($o(n,lT),a.onStart(()=>{fd(n,lT)})),a.onDone(()=>{let Ce=this.players.indexOf(a);Ce>=0&&this.players.splice(Ce,1);const Ae=this._engine.playersByElement.get(n);if(Ae){let ze=Ae.indexOf(a);ze>=0&&Ae.splice(ze,1)}}),this.players.push(a),G.push(a),a}deregister(n){this._triggers.delete(n),this._engine.statesByElement.forEach(e=>e.delete(n)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(o=>o.name!=n))})}clearElementCache(n){this._engine.statesByElement.delete(n),this._elementListeners.delete(n);const e=this._engine.playersByElement.get(n);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(n))}_signalRemovalForInnerTriggers(n,e){const i=this._engine.driver.query(n,am,!0);i.forEach(o=>{if(o[Wo])return;const s=this._engine.fetchNamespacesByElement(o);s.size?s.forEach(a=>a.triggerLeaveAnimation(o,e,!1,!0)):this.clearElementCache(o)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(o=>this.clearElementCache(o)))}triggerLeaveAnimation(n,e,i,o){const s=this._engine.statesByElement.get(n),a=new Map;if(s){const l=[];if(s.forEach((d,_)=>{if(a.set(_,d.value),this._triggers.has(_)){const E=this.trigger(n,_,ah,o);E&&l.push(E)}}),l.length)return this._engine.markElementAsRemoved(this.id,n,!0,e,a),i&&Ba(l).onDone(()=>this._engine.processLeaveNode(n)),!0}return!1}prepareLeaveAnimationListeners(n){const e=this._elementListeners.get(n),i=this._engine.statesByElement.get(n);if(e&&i){const o=new Set;e.forEach(s=>{const a=s.name;if(o.has(a))return;o.add(a);const d=this._triggers.get(a).fallbackTransition,_=i.get(a)||Jy,E=new Xy(ah),F=new Qy(this.id,a,n);this._engine.totalQueuedPlayers++,this._queue.push({element:n,triggerName:a,transition:d,fromState:_,toState:E,player:F,isFallbackTransition:!0})})}}removeNode(n,e){const i=this._engine;if(n.childElementCount&&this._signalRemovalForInnerTriggers(n,e),this.triggerLeaveAnimation(n,e,!0))return;let o=!1;if(i.totalAnimations){const s=i.players.length?i.playersByQueriedElement.get(n):[];if(s&&s.length)o=!0;else{let a=n;for(;a=a.parentNode;)if(i.statesByElement.get(a)){o=!0;break}}}if(this.prepareLeaveAnimationListeners(n),o)i.markElementAsRemoved(this.id,n,!1,e);else{const s=n[Wo];(!s||s===cT)&&(i.afterFlush(()=>this.clearElementCache(n)),i.destroyInnerAnimations(n),i._onRemovalComplete(n,e))}}insertNode(n,e){$o(n,this._hostClassName)}drainQueuedTransitions(n){const e=[];return this._queue.forEach(i=>{const o=i.player;if(o.destroyed)return;const s=i.element,a=this._elementListeners.get(s);a&&a.forEach(l=>{if(l.name==i.triggerName){const d=Fy(s,i.triggerName,i.fromState.value,i.toState.value);d._data=n,Oy(i.player,l.phase,d,l.callback)}}),o.markedForDestroy?this._engine.afterFlush(()=>{o.destroy()}):e.push(i)}),this._queue=[],e.sort((i,o)=>{const s=i.transition.ast.depCount,a=o.transition.ast.depCount;return 0==s||0==a?s-a:this._engine.driver.containsElement(i.element,o.element)?1:-1})}destroy(n){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,n)}elementContainsData(n){let e=!1;return this._elementListeners.has(n)&&(e=!0),e=!!this._queue.find(i=>i.element===n)||e,e}}class $V{_onRemovalComplete(n,e){this.onRemovalComplete(n,e)}constructor(n,e,i){this.bodyNode=n,this.driver=e,this._normalizer=i,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(o,s)=>{}}get queuedPlayers(){const n=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&n.push(i)})}),n}createNamespace(n,e){const i=new WV(n,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[n]=i}_balanceNamespaceList(n,e){const i=this._namespaceList,o=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,l=this.driver.getParentElement(e);for(;l;){const d=o.get(l);if(d){const _=i.indexOf(d);i.splice(_+1,0,n),a=!0;break}l=this.driver.getParentElement(l)}a||i.unshift(n)}else i.push(n);return o.set(e,n),n}register(n,e){let i=this._namespaceLookup[n];return i||(i=this.createNamespace(n,e)),i}registerTrigger(n,e,i){let o=this._namespaceLookup[n];o&&o.register(e,i)&&this.totalAnimations++}destroy(n,e){if(!n)return;const i=this._fetchNamespace(n);this.afterFlush(()=>{this.namespacesByHostElement.delete(i.hostElement),delete this._namespaceLookup[n];const o=this._namespaceList.indexOf(i);o>=0&&this._namespaceList.splice(o,1)}),this.afterFlushAnimationsDone(()=>i.destroy(e))}_fetchNamespace(n){return this._namespaceLookup[n]}fetchNamespacesByElement(n){const e=new Set,i=this.statesByElement.get(n);if(i)for(let o of i.values())if(o.namespaceId){const s=this._fetchNamespace(o.namespaceId);s&&e.add(s)}return e}trigger(n,e,i,o){if(gm(e)){const s=this._fetchNamespace(n);if(s)return s.trigger(e,i,o),!0}return!1}insertNode(n,e,i,o){if(!gm(e))return;const s=e[Wo];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(n){const a=this._fetchNamespace(n);a&&a.insertNode(e,i)}o&&this.collectEnterElement(e)}collectEnterElement(n){this.collectedEnterElements.push(n)}markElementAsDisabled(n,e){e?this.disabledNodes.has(n)||(this.disabledNodes.add(n),$o(n,Zy)):this.disabledNodes.has(n)&&(this.disabledNodes.delete(n),fd(n,Zy))}removeNode(n,e,i,o){if(gm(e)){const s=n?this._fetchNamespace(n):null;if(s?s.removeNode(e,o):this.markElementAsRemoved(n,e,!1,o),i){const a=this.namespacesByHostElement.get(e);a&&a.id!==n&&a.removeNode(e,o)}}else this._onRemovalComplete(e,o)}markElementAsRemoved(n,e,i,o,s){this.collectedLeaveElements.push(e),e[Wo]={namespaceId:n,setForRemoval:o,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:s}}listen(n,e,i,o,s){return gm(e)?this._fetchNamespace(n).listen(e,i,o,s):()=>{}}_buildInstruction(n,e,i,o,s){return n.transition.build(this.driver,n.element,n.fromState.value,n.toState.value,i,o,n.fromState.options,n.toState.options,e,s)}destroyInnerAnimations(n){let e=this.driver.query(n,am,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(n,Hy,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(n){const e=this.playersByElement.get(n);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(n){const e=this.playersByQueriedElement.get(n);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(n=>{if(this.players.length)return Ba(this.players).onDone(()=>n());n()})}processLeaveNode(n){const e=n[Wo];if(e&&e.setForRemoval){if(n[Wo]=cT,e.namespaceId){this.destroyInnerAnimations(n);const i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(n)}this._onRemovalComplete(n,e.setForRemoval)}n.classList?.contains(Zy)&&this.markElementAsDisabled(n,!1),this.driver.query(n,".ng-animate-disabled",!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(n=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,o)=>this._balanceNamespaceList(i,o)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){const i=this._whenQuietFns;this._whenQuietFns=[],e.length?Ba(e).onDone(()=>{i.forEach(o=>o())}):i.forEach(o=>o())}}reportError(n){throw function ZB(t){return new Fe(3402,!1)}()}_flushAnimations(n,e){const i=new fm,o=[],s=new Map,a=[],l=new Map,d=new Map,_=new Map,E=new Set;this.disabledNodes.forEach(pt=>{E.add(pt);const yt=this.driver.query(pt,".ng-animate-queued",!0);for(let Ot=0;Ot{const Ot=Yy+Ce++;_e.set(yt,Ot),pt.forEach(vn=>$o(vn,Ot))});const Ae=[],ze=new Set,Ee=new Set;for(let pt=0;ptze.add(vn)):Ee.add(yt))}const qe=new Map,dt=hT(G,Array.from(ze));dt.forEach((pt,yt)=>{const Ot=om+Ce++;qe.set(yt,Ot),pt.forEach(vn=>$o(vn,Ot))}),n.push(()=>{ie.forEach((pt,yt)=>{const Ot=_e.get(yt);pt.forEach(vn=>fd(vn,Ot))}),dt.forEach((pt,yt)=>{const Ot=qe.get(yt);pt.forEach(vn=>fd(vn,Ot))}),Ae.forEach(pt=>{this.processLeaveNode(pt)})});const Rt=[],sn=[];for(let pt=this._namespaceList.length-1;pt>=0;pt--)this._namespaceList[pt].drainQueuedTransitions(e).forEach(Ot=>{const vn=Ot.player,_r=Ot.element;if(Rt.push(vn),this.collectedEnterElements.length){const Rr=_r[Wo];if(Rr&&Rr.setForMove){if(Rr.previousTriggersValues&&Rr.previousTriggersValues.has(Ot.triggerName)){const cc=Rr.previousTriggersValues.get(Ot.triggerName),qo=this.statesByElement.get(Ot.element);if(qo&&qo.has(Ot.triggerName)){const Yg=qo.get(Ot.triggerName);Yg.value=cc,qo.set(Ot.triggerName,Yg)}}return void vn.destroy()}}const Ns=!F||!this.driver.containsElement(F,_r),Eo=qe.get(_r),cl=_e.get(_r),Mi=this._buildInstruction(Ot,i,cl,Eo,Ns);if(Mi.errors&&Mi.errors.length)return void sn.push(Mi);if(Ns)return vn.onStart(()=>Yl(_r,Mi.fromStyles)),vn.onDestroy(()=>Ps(_r,Mi.toStyles)),void o.push(vn);if(Ot.isFallbackTransition)return vn.onStart(()=>Yl(_r,Mi.fromStyles)),vn.onDestroy(()=>Ps(_r,Mi.toStyles)),void o.push(vn);const $P=[];Mi.timelines.forEach(Rr=>{Rr.stretchStartingKeyframe=!0,this.disabledNodes.has(Rr.element)||$P.push(Rr)}),Mi.timelines=$P,i.append(_r,Mi.timelines),a.push({instruction:Mi,player:vn,element:_r}),Mi.queriedElements.forEach(Rr=>Mo(l,Rr,[]).push(vn)),Mi.preStyleProps.forEach((Rr,cc)=>{if(Rr.size){let qo=d.get(cc);qo||d.set(cc,qo=new Set),Rr.forEach((Yg,K1)=>qo.add(K1))}}),Mi.postStyleProps.forEach((Rr,cc)=>{let qo=_.get(cc);qo||_.set(cc,qo=new Set),Rr.forEach((Yg,K1)=>qo.add(K1))})});if(sn.length){const pt=[];sn.forEach(yt=>{pt.push(function XB(t,n){return new Fe(3505,!1)}())}),Rt.forEach(yt=>yt.destroy()),this.reportError(pt)}const Ii=new Map,ds=new Map;a.forEach(pt=>{const yt=pt.element;i.has(yt)&&(ds.set(yt,yt),this._beforeAnimationBuild(pt.player.namespaceId,pt.instruction,Ii))}),o.forEach(pt=>{const yt=pt.element;this._getPreviousPlayers(yt,!1,pt.namespaceId,pt.triggerName,null).forEach(vn=>{Mo(Ii,yt,[]).push(vn),vn.destroy()})});const us=Ae.filter(pt=>pT(pt,d,_)),ga=new Map;uT(ga,this.driver,Ee,_,na).forEach(pt=>{pT(pt,d,_)&&us.push(pt)});const lf=new Map;ie.forEach((pt,yt)=>{uT(lf,this.driver,new Set(pt),d,Py)}),us.forEach(pt=>{const yt=ga.get(pt),Ot=lf.get(pt);ga.set(pt,new Map([...Array.from(yt?.entries()??[]),...Array.from(Ot?.entries()??[])]))});const lc=[],UP=[],WP={};a.forEach(pt=>{const{element:yt,player:Ot,instruction:vn}=pt;if(i.has(yt)){if(E.has(yt))return Ot.onDestroy(()=>Ps(yt,vn.toStyles)),Ot.disabled=!0,Ot.overrideTotalTime(vn.totalTime),void o.push(Ot);let _r=WP;if(ds.size>1){let Eo=yt;const cl=[];for(;Eo=Eo.parentNode;){const Mi=ds.get(Eo);if(Mi){_r=Mi;break}cl.push(Eo)}cl.forEach(Mi=>ds.set(Mi,_r))}const Ns=this._buildAnimation(Ot.namespaceId,vn,Ii,s,lf,ga);if(Ot.setRealPlayer(Ns),_r===WP)lc.push(Ot);else{const Eo=this.playersByElement.get(_r);Eo&&Eo.length&&(Ot.parentPlayer=Ba(Eo)),o.push(Ot)}}else Yl(yt,vn.fromStyles),Ot.onDestroy(()=>Ps(yt,vn.toStyles)),UP.push(Ot),E.has(yt)&&o.push(Ot)}),UP.forEach(pt=>{const yt=s.get(pt.element);if(yt&&yt.length){const Ot=Ba(yt);pt.setRealPlayer(Ot)}}),o.forEach(pt=>{pt.parentPlayer?pt.syncPlayerEvents(pt.parentPlayer):pt.destroy()});for(let pt=0;pt!Ns.destroyed);_r.length?ZV(this,yt,_r):this.processLeaveNode(yt)}return Ae.length=0,lc.forEach(pt=>{this.players.push(pt),pt.onDone(()=>{pt.destroy();const yt=this.players.indexOf(pt);this.players.splice(yt,1)}),pt.play()}),lc}elementContainsData(n,e){let i=!1;const o=e[Wo];return o&&o.setForRemoval&&(i=!0),this.playersByElement.has(e)&&(i=!0),this.playersByQueriedElement.has(e)&&(i=!0),this.statesByElement.has(e)&&(i=!0),this._fetchNamespace(n).elementContainsData(e)||i}afterFlush(n){this._flushFns.push(n)}afterFlushAnimationsDone(n){this._whenQuietFns.push(n)}_getPreviousPlayers(n,e,i,o,s){let a=[];if(e){const l=this.playersByQueriedElement.get(n);l&&(a=l)}else{const l=this.playersByElement.get(n);if(l){const d=!s||s==ah;l.forEach(_=>{_.queued||!d&&_.triggerName!=o||a.push(_)})}}return(i||o)&&(a=a.filter(l=>!(i&&i!=l.namespaceId||o&&o!=l.triggerName))),a}_beforeAnimationBuild(n,e,i){const s=e.element,a=e.isRemovalTransition?void 0:n,l=e.isRemovalTransition?void 0:e.triggerName;for(const d of e.timelines){const _=d.element,E=_!==s,F=Mo(i,_,[]);this._getPreviousPlayers(_,E,a,l,e.toState).forEach(ie=>{const _e=ie.getRealPlayer();_e.beforeDestroy&&_e.beforeDestroy(),ie.destroy(),F.push(ie)})}Yl(s,e.fromStyles)}_buildAnimation(n,e,i,o,s,a){const l=e.triggerName,d=e.element,_=[],E=new Set,F=new Set,G=e.timelines.map(_e=>{const Ce=_e.element;E.add(Ce);const Ae=Ce[Wo];if(Ae&&Ae.removedBeforeQueried)return new ih(_e.duration,_e.delay);const ze=Ce!==d,Ee=function XV(t){const n=[];return fT(t,n),n}((i.get(Ce)||zV).map(Ii=>Ii.getRealPlayer())).filter(Ii=>!!Ii.element&&Ii.element===Ce),qe=s.get(Ce),dt=a.get(Ce),Rt=zD(this._normalizer,_e.keyframes,qe,dt),sn=this._buildPlayer(_e,Rt,Ee);if(_e.subTimeline&&o&&F.add(Ce),ze){const Ii=new Qy(n,l,Ce);Ii.setRealPlayer(sn),_.push(Ii)}return sn});_.forEach(_e=>{Mo(this.playersByQueriedElement,_e.element,[]).push(_e),_e.onDone(()=>function GV(t,n,e){let i=t.get(n);if(i){if(i.length){const o=i.indexOf(e);i.splice(o,1)}0==i.length&&t.delete(n)}return i}(this.playersByQueriedElement,_e.element,_e))}),E.forEach(_e=>$o(_e,ZD));const ie=Ba(G);return ie.onDestroy(()=>{E.forEach(_e=>fd(_e,ZD)),Ps(d,e.toStyles)}),F.forEach(_e=>{Mo(o,_e,[]).push(ie)}),ie}_buildPlayer(n,e,i){return e.length>0?this.driver.animate(n.element,e,n.duration,n.delay,n.easing,i):new ih(n.duration,n.delay)}}class Qy{constructor(n,e,i){this.namespaceId=n,this.triggerName=e,this.element=i,this._player=new ih,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.parentPlayer=null,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(n){this._containsRealPlayer||(this._player=n,this._queuedCallbacks.forEach((e,i)=>{e.forEach(o=>Oy(n,i,void 0,o))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(n.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(n){this.totalTime=n}syncPlayerEvents(n){const e=this._player;e.triggerCallback&&n.onStart(()=>e.triggerCallback("start")),n.onDone(()=>this.finish()),n.onDestroy(()=>this.destroy())}_queueEvent(n,e){Mo(this._queuedCallbacks,n,[]).push(e)}onDone(n){this.queued&&this._queueEvent("done",n),this._player.onDone(n)}onStart(n){this.queued&&this._queueEvent("start",n),this._player.onStart(n)}onDestroy(n){this.queued&&this._queueEvent("destroy",n),this._player.onDestroy(n)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(n){this.queued||this._player.setPosition(n)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(n){const e=this._player;e.triggerCallback&&e.triggerCallback(n)}}function gm(t){return t&&1===t.nodeType}function dT(t,n){const e=t.style.display;return t.style.display=n??"none",e}function uT(t,n,e,i,o){const s=[];e.forEach(d=>s.push(dT(d)));const a=[];i.forEach((d,_)=>{const E=new Map;d.forEach(F=>{const G=n.computeStyle(_,F,o);E.set(F,G),(!G||0==G.length)&&(_[Wo]=UV,a.push(_))}),t.set(_,E)});let l=0;return e.forEach(d=>dT(d,s[l++])),a}function hT(t,n){const e=new Map;if(t.forEach(l=>e.set(l,[])),0==n.length)return e;const i=1,o=new Set(n),s=new Map;function a(l){if(!l)return i;let d=s.get(l);if(d)return d;const _=l.parentNode;return d=e.has(_)?_:o.has(_)?i:a(_),s.set(l,d),d}return n.forEach(l=>{const d=a(l);d!==i&&e.get(d).push(l)}),e}function $o(t,n){t.classList?.add(n)}function fd(t,n){t.classList?.remove(n)}function ZV(t,n,e){Ba(e).onDone(()=>t.processLeaveNode(n))}function fT(t,n){for(let e=0;eo.add(s)):n.set(t,i),e.delete(t),!0}class _m{constructor(n,e,i){this.bodyNode=n,this._driver=e,this._normalizer=i,this._triggerCache={},this.onRemovalComplete=(o,s)=>{},this._transitionEngine=new $V(n,e,i),this._timelineEngine=new YV(n,e,i),this._transitionEngine.onRemovalComplete=(o,s)=>this.onRemovalComplete(o,s)}registerTrigger(n,e,i,o,s){const a=n+"-"+o;let l=this._triggerCache[a];if(!l){const d=[],E=zy(this._driver,s,d,[]);if(d.length)throw function BB(t,n){return new Fe(3404,!1)}();l=function AV(t,n,e){return new FV(t,n,e)}(o,E,this._normalizer),this._triggerCache[a]=l}this._transitionEngine.registerTrigger(e,o,l)}register(n,e){this._transitionEngine.register(n,e)}destroy(n,e){this._transitionEngine.destroy(n,e)}onInsert(n,e,i,o){this._transitionEngine.insertNode(n,e,i,o)}onRemove(n,e,i,o){this._transitionEngine.removeNode(n,e,o||!1,i)}disableAnimations(n,e){this._transitionEngine.markElementAsDisabled(n,e)}process(n,e,i,o){if("@"==i.charAt(0)){const[s,a]=UD(i);this._timelineEngine.command(s,e,a,o)}else this._transitionEngine.trigger(n,e,i,o)}listen(n,e,i,o,s){if("@"==i.charAt(0)){const[a,l]=UD(i);return this._timelineEngine.listen(a,e,l,s)}return this._transitionEngine.listen(n,e,i,o,s)}flush(n=-1){this._transitionEngine.flush(n)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}let e8=(()=>{class t{constructor(e,i,o){this._element=e,this._startStyles=i,this._endStyles=o,this._state=0;let s=t.initialStylesByElement.get(e);s||t.initialStylesByElement.set(e,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&Ps(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Ps(this._element,this._initialStyles),this._endStyles&&(Ps(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(Yl(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(Yl(this._element,this._endStyles),this._endStyles=null),Ps(this._element,this._initialStyles),this._state=3)}}return t.initialStylesByElement=new WeakMap,t})();function e0(t){let n=null;return t.forEach((e,i)=>{(function t8(t){return"display"===t||"position"===t})(i)&&(n=n||new Map,n.set(i,e))}),n}class mT{constructor(n,e,i,o){this.element=n,this.keyframes=e,this.options=i,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(n=>n()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const n=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,n,this.options),this._finalKeyframe=n.length?n[n.length-1]:new Map,this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(n){const e=[];return n.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(n,e,i){return n.animate(this._convertKeyframesToObject(e),i)}onStart(n){this._originalOnStartFns.push(n),this._onStartFns.push(n)}onDone(n){this._originalOnDoneFns.push(n),this._onDoneFns.push(n)}onDestroy(n){this._onDestroyFns.push(n)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(n=>n()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(n=>n()),this._onDestroyFns=[])}setPosition(n){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=n*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const n=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,o)=>{"offset"!==o&&n.set(o,this._finished?i:eT(this.element,o))}),this.currentSnapshot=n}triggerCallback(n){const e="start"===n?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}}class n8{validateStyleProperty(n){return!0}validateAnimatableStyleProperty(n){return!0}matchesElement(n,e){return!1}containsElement(n,e){return $D(n,e)}getParentElement(n){return Ry(n)}query(n,e,i){return GD(n,e,i)}computeStyle(n,e,i){return window.getComputedStyle(n)[e]}animate(n,e,i,o,s,a=[]){const d={duration:i,delay:o,fill:0==o?"both":"forwards"};s&&(d.easing=s);const _=new Map,E=a.filter(ie=>ie instanceof mT);(function cV(t,n){return 0===t||0===n})(i,o)&&E.forEach(ie=>{ie.currentSnapshot.forEach((_e,Ce)=>_.set(Ce,_e))});let F=function sV(t){return t.length?t[0]instanceof Map?t:t.map(n=>XD(n)):[]}(e).map(ie=>Va(ie));F=function dV(t,n,e){if(e.size&&n.length){let i=n[0],o=[];if(e.forEach((s,a)=>{i.has(a)||o.push(a),i.set(a,s)}),o.length)for(let s=1;sa.set(l,eT(t,l)))}}return n}(n,F,_);const G=function QV(t,n){let e=null,i=null;return Array.isArray(n)&&n.length?(e=e0(n[0]),n.length>1&&(i=e0(n[n.length-1]))):n instanceof Map&&(e=e0(n)),e||i?new e8(t,e,i):null}(n,F);return new mT(n,F,d,G)}}let i8=(()=>{class t extends ND{constructor(e,i){super(),this._nextAnimationId=0,this._renderer=e.createRenderer(i.body,{id:"0",encapsulation:Dr.None,styles:[],data:{animation:[]}})}build(e){const i=this._nextAnimationId.toString();this._nextAnimationId++;const o=Array.isArray(e)?HD(e):e;return gT(this._renderer,null,i,"register",[o]),new r8(i,this._renderer)}}return t.\u0275fac=function(e){return new(e||t)(we(Lu),we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();class r8 extends bB{constructor(n,e){super(),this._id=n,this._renderer=e}create(n,e){return new o8(this._id,n,e||{},this._renderer)}}class o8{constructor(n,e,i,o){this.id=n,this.element=e,this._renderer=o,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",i)}_listen(n,e){return this._renderer.listen(this.element,`@@${this.id}:${n}`,e)}_command(n,...e){return gT(this._renderer,this.element,this.id,n,e)}onDone(n){this._listen("done",n)}onStart(n){this._listen("start",n)}onDestroy(n){this._listen("destroy",n)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(n){this._command("setPosition",n)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function gT(t,n,e,i,o){return t.setProperty(n,`@@${e}:${i}`,o)}const _T="@.disabled";let s8=(()=>{class t{constructor(e,i,o){this.delegate=e,this.engine=i,this._zone=o,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),i.onRemovalComplete=(s,a)=>{const l=a?.parentNode(s);l&&a.removeChild(l,s)}}createRenderer(e,i){const s=this.delegate.createRenderer(e,i);if(!(e&&i&&i.data&&i.data.animation)){let E=this._rendererCache.get(s);return E||(E=new bT("",s,this.engine,()=>this._rendererCache.delete(s)),this._rendererCache.set(s,E)),E}const a=i.id,l=i.id+"-"+this._currentId;this._currentId++,this.engine.register(l,e);const d=E=>{Array.isArray(E)?E.forEach(d):this.engine.registerTrigger(a,l,e,E.name,E)};return i.data.animation.forEach(d),new a8(this,l,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(e,i,o){e>=0&&ei(o)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[a,l]=s;a(l)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([i,o]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return t.\u0275fac=function(e){return new(e||t)(we(Lu),we(_m),we(ft))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();class bT{constructor(n,e,i,o){this.namespaceId=n,this.delegate=e,this.engine=i,this._onDestroy=o,this.destroyNode=this.delegate.destroyNode?s=>e.destroyNode(s):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy(),this._onDestroy?.()}createElement(n,e){return this.delegate.createElement(n,e)}createComment(n){return this.delegate.createComment(n)}createText(n){return this.delegate.createText(n)}appendChild(n,e){this.delegate.appendChild(n,e),this.engine.onInsert(this.namespaceId,e,n,!1)}insertBefore(n,e,i,o=!0){this.delegate.insertBefore(n,e,i),this.engine.onInsert(this.namespaceId,e,n,o)}removeChild(n,e,i){this.engine.onRemove(this.namespaceId,e,this.delegate,i)}selectRootElement(n,e){return this.delegate.selectRootElement(n,e)}parentNode(n){return this.delegate.parentNode(n)}nextSibling(n){return this.delegate.nextSibling(n)}setAttribute(n,e,i,o){this.delegate.setAttribute(n,e,i,o)}removeAttribute(n,e,i){this.delegate.removeAttribute(n,e,i)}addClass(n,e){this.delegate.addClass(n,e)}removeClass(n,e){this.delegate.removeClass(n,e)}setStyle(n,e,i,o){this.delegate.setStyle(n,e,i,o)}removeStyle(n,e,i){this.delegate.removeStyle(n,e,i)}setProperty(n,e,i){"@"==e.charAt(0)&&e==_T?this.disableAnimations(n,!!i):this.delegate.setProperty(n,e,i)}setValue(n,e){this.delegate.setValue(n,e)}listen(n,e,i){return this.delegate.listen(n,e,i)}disableAnimations(n,e){this.engine.disableAnimations(n,e)}}class a8 extends bT{constructor(n,e,i,o,s){super(e,i,o,s),this.factory=n,this.namespaceId=e}setProperty(n,e,i){"@"==e.charAt(0)?"."==e.charAt(1)&&e==_T?this.disableAnimations(n,i=void 0===i||!!i):this.engine.process(this.namespaceId,n,e.slice(1),i):this.delegate.setProperty(n,e,i)}listen(n,e,i){if("@"==e.charAt(0)){const o=function l8(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(n);let s=e.slice(1),a="";return"@"!=s.charAt(0)&&([s,a]=function c8(t){const n=t.indexOf(".");return[t.substring(0,n),t.slice(n+1)]}(s)),this.engine.listen(this.namespaceId,o,s,a,l=>{this.factory.scheduleListenerCallback(l._data||-1,i,l)})}return this.delegate.listen(n,e,i)}}let d8=(()=>{class t extends _m{constructor(e,i,o,s){super(e.body,i,o)}ngOnDestroy(){this.flush()}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(Ny),we(qy),we(Na))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const vT=[{provide:ND,useClass:i8},{provide:qy,useFactory:function u8(){return new EV}},{provide:_m,useClass:d8},{provide:Lu,useFactory:function h8(t,n,e){return new s8(t,n,e)},deps:[ky,_m,ft]}],t0=[{provide:Ny,useFactory:()=>new n8},{provide:Ri,useValue:"BrowserAnimations"},...vT],yT=[{provide:Ny,useClass:qD},{provide:Ri,useValue:"NoopAnimations"},...vT];let f8=(()=>{class t{static withConfig(e){return{ngModule:t,providers:e.disableAnimations?yT:t0}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:t0,imports:[ID]}),t})();function $e(...t){let n=t[t.length-1];return Se(n)?(t.pop(),W(t,n)):An(t)}function Bl(t,n){return Ye(t,n,1)}function _i(t,n){return function(i){return i.lift(new p8(t,n))}}class p8{constructor(n,e){this.predicate=n,this.thisArg=e}call(n,e){return e.subscribe(new m8(n,this.predicate,this.thisArg))}}class m8 extends A{constructor(n,e,i){super(n),this.predicate=e,this.thisArg=i,this.count=0}_next(n){let e;try{e=this.predicate.call(this.thisArg,n,this.count++)}catch(i){return void this.destination.error(i)}e&&this.destination.next(n)}}function gr(t,n){return"function"==typeof n?e=>e.pipe(gr((i,o)=>ue(t(i,o)).pipe(ke((s,a)=>n(i,s,o,a))))):e=>e.lift(new g8(t))}class g8{constructor(n){this.project=n}call(n,e){return e.subscribe(new _8(n,this.project))}}class _8 extends Me{constructor(n,e){super(n),this.project=e,this.index=0}_next(n){let e;const i=this.index++;try{e=this.project(n,i)}catch(o){return void this.destination.error(o)}this._innerSub(e)}_innerSub(n){const e=this.innerSubscription;e&&e.unsubscribe();const i=new be(this),o=this.destination;o.add(i),this.innerSubscription=Ie(n,i),this.innerSubscription!==i&&o.add(this.innerSubscription)}_complete(){const{innerSubscription:n}=this;(!n||n.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(n){this.destination.next(n)}}class vm{}class n0{}class rs{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?this.lazyInit="string"==typeof n?()=>{this.headers=new Map,n.split("\n").forEach(e=>{const i=e.indexOf(":");if(i>0){const o=e.slice(0,i),s=o.toLowerCase(),a=e.slice(i+1).trim();this.maybeSetNormalizedName(o,s),this.headers.has(s)?this.headers.get(s).push(a):this.headers.set(s,[a])}})}:()=>{this.headers=new Map,Object.entries(n).forEach(([e,i])=>{let o;if(o="string"==typeof i?[i]:"number"==typeof i?[i.toString()]:i.map(s=>s.toString()),o.length>0){const s=e.toLowerCase();this.headers.set(s,o),this.maybeSetNormalizedName(e,s)}})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const e=this.headers.get(n.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,e){return this.clone({name:n,value:e,op:"a"})}set(n,e){return this.clone({name:n,value:e,op:"s"})}delete(n,e){return this.clone({name:n,value:e,op:"d"})}maybeSetNormalizedName(n,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,n)}init(){this.lazyInit&&(this.lazyInit instanceof rs?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(e=>{this.headers.set(e,n.headers.get(e)),this.normalizedNames.set(e,n.normalizedNames.get(e))})}clone(n){const e=new rs;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof rs?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([n]),e}applyUpdate(n){const e=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if("string"==typeof i&&(i=[i]),0===i.length)return;this.maybeSetNormalizedName(n.name,e);const o=("a"===n.op?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":const s=n.value;if(s){let a=this.headers.get(e);if(!a)return;a=a.filter(l=>-1===s.indexOf(l)),0===a.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,a)}else this.headers.delete(e),this.normalizedNames.delete(e)}}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>n(this.normalizedNames.get(e),this.headers.get(e)))}}class b8{encodeKey(n){return MT(n)}encodeValue(n){return MT(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const y8=/%(\d[a-f0-9])/gi,M8={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function MT(t){return encodeURIComponent(t).replace(y8,(n,e)=>M8[e]??n)}function ym(t){return`${t}`}class ja{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new b8,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function v8(t,n){const e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(o=>{const s=o.indexOf("="),[a,l]=-1==s?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,s)),n.decodeValue(o.slice(s+1))],d=e.get(a)||[];d.push(l),e.set(a,d)}),e}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(e=>{const i=n.fromObject[e],o=Array.isArray(i)?i.map(ym):[ym(i)];this.map.set(e,o)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const e=this.map.get(n);return e?e[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,e){return this.clone({param:n,value:e,op:"a"})}appendAll(n){const e=[];return Object.keys(n).forEach(i=>{const o=n[i];Array.isArray(o)?o.forEach(s=>{e.push({param:i,value:s,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(n,e){return this.clone({param:n,value:e,op:"s"})}delete(n,e){return this.clone({param:n,value:e,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const e=this.encoder.encodeKey(n);return this.map.get(n).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const e=new ja({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(n),e}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const e=("a"===n.op?this.map.get(n.param):void 0)||[];e.push(ym(n.value)),this.map.set(n.param,e);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let i=this.map.get(n.param)||[];const o=i.indexOf(ym(n.value));-1!==o&&i.splice(o,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class w8{constructor(){this.map=new Map}set(n,e){return this.map.set(n,e),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function wT(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function CT(t){return typeof Blob<"u"&&t instanceof Blob}function xT(t){return typeof FormData<"u"&&t instanceof FormData}class lh{constructor(n,e,i,o){let s;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function C8(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==i?i:null,s=o):s=i,s&&(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params)),this.headers||(this.headers=new rs),this.context||(this.context=new w8),this.params){const a=this.params.toString();if(0===a.length)this.urlWithParams=e;else{const l=e.indexOf("?");this.urlWithParams=e+(-1===l?"?":lF.set(G,n.setHeaders[G]),d)),n.setParams&&(_=Object.keys(n.setParams).reduce((F,G)=>F.set(G,n.setParams[G]),_)),new lh(e,i,s,{params:_,headers:d,context:E,reportProgress:l,responseType:o,withCredentials:a})}}var Zi=(()=>((Zi=Zi||{})[Zi.Sent=0]="Sent",Zi[Zi.UploadProgress=1]="UploadProgress",Zi[Zi.ResponseHeader=2]="ResponseHeader",Zi[Zi.DownloadProgress=3]="DownloadProgress",Zi[Zi.Response=4]="Response",Zi[Zi.User=5]="User",Zi))();class r0{constructor(n,e=200,i="OK"){this.headers=n.headers||new rs,this.status=void 0!==n.status?n.status:e,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class o0 extends r0{constructor(n={}){super(n),this.type=Zi.ResponseHeader}clone(n={}){return new o0({headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class pd extends r0{constructor(n={}){super(n),this.type=Zi.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new pd({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class kT extends r0{constructor(n){super(n,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${n.url||"(unknown url)"}`:`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}function s0(t,n){return{body:n,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}let Vl=(()=>{class t{constructor(e){this.handler=e}request(e,i,o={}){let s;if(e instanceof lh)s=e;else{let d,_;d=o.headers instanceof rs?o.headers:new rs(o.headers),o.params&&(_=o.params instanceof ja?o.params:new ja({fromObject:o.params})),s=new lh(e,i,void 0!==o.body?o.body:null,{headers:d,context:o.context,params:_,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials})}const a=$e(s).pipe(Bl(d=>this.handler.handle(d)));if(e instanceof lh||"events"===o.observe)return a;const l=a.pipe(_i(d=>d instanceof pd));switch(o.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(ke(d=>{if(null!==d.body&&!(d.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return d.body}));case"blob":return l.pipe(ke(d=>{if(null!==d.body&&!(d.body instanceof Blob))throw new Error("Response is not a Blob.");return d.body}));case"text":return l.pipe(ke(d=>{if(null!==d.body&&"string"!=typeof d.body)throw new Error("Response is not a string.");return d.body}));default:return l.pipe(ke(d=>d.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:(new ja).append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,s0(o,i))}post(e,i,o={}){return this.request("POST",e,s0(o,i))}put(e,i,o={}){return this.request("PUT",e,s0(o,i))}}return t.\u0275fac=function(e){return new(e||t)(we(vm))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function ST(t,n){return n(t)}function k8(t,n){return(e,i)=>n.intercept(e,{handle:o=>t(o,i)})}const D8=new Re(""),ch=new Re(""),DT=new Re("");function T8(){let t=null;return(n,e)=>(null===t&&(t=(Qe(D8,{optional:!0})??[]).reduceRight(k8,ST)),t(n,e))}let TT=(()=>{class t extends vm{constructor(e,i){super(),this.backend=e,this.injector=i,this.chain=null}handle(e){if(null===this.chain){const i=Array.from(new Set([...this.injector.get(ch),...this.injector.get(DT,[])]));this.chain=i.reduceRight((o,s)=>function S8(t,n,e){return(i,o)=>e.runInContext(()=>n(i,s=>t(s,o)))}(o,s,this.injector),ST)}return this.chain(e,i=>this.backend.handle(i))}}return t.\u0275fac=function(e){return new(e||t)(we(n0),we(ks))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const P8=/^\)\]\}',?\n/;let ET=(()=>{class t{constructor(e){this.xhrFactory=e}handle(e){if("JSONP"===e.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");const i=this.xhrFactory;return(i.\u0275loadImpl?ue(i.\u0275loadImpl()):$e(null)).pipe(gr(()=>new he(s=>{const a=i.build();if(a.open(e.method,e.urlWithParams),e.withCredentials&&(a.withCredentials=!0),e.headers.forEach((Ee,qe)=>a.setRequestHeader(Ee,qe.join(","))),e.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!e.headers.has("Content-Type")){const Ee=e.detectContentTypeHeader();null!==Ee&&a.setRequestHeader("Content-Type",Ee)}if(e.responseType){const Ee=e.responseType.toLowerCase();a.responseType="json"!==Ee?Ee:"text"}const l=e.serializeBody();let d=null;const _=()=>{if(null!==d)return d;const Ee=a.statusText||"OK",qe=new rs(a.getAllResponseHeaders()),dt=function O8(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(a)||e.url;return d=new o0({headers:qe,status:a.status,statusText:Ee,url:dt}),d},E=()=>{let{headers:Ee,status:qe,statusText:dt,url:Rt}=_(),sn=null;204!==qe&&(sn=typeof a.response>"u"?a.responseText:a.response),0===qe&&(qe=sn?200:0);let Ii=qe>=200&&qe<300;if("json"===e.responseType&&"string"==typeof sn){const ds=sn;sn=sn.replace(P8,"");try{sn=""!==sn?JSON.parse(sn):null}catch(us){sn=ds,Ii&&(Ii=!1,sn={error:us,text:sn})}}Ii?(s.next(new pd({body:sn,headers:Ee,status:qe,statusText:dt,url:Rt||void 0})),s.complete()):s.error(new kT({error:sn,headers:Ee,status:qe,statusText:dt,url:Rt||void 0}))},F=Ee=>{const{url:qe}=_(),dt=new kT({error:Ee,status:a.status||0,statusText:a.statusText||"Unknown Error",url:qe||void 0});s.error(dt)};let G=!1;const ie=Ee=>{G||(s.next(_()),G=!0);let qe={type:Zi.DownloadProgress,loaded:Ee.loaded};Ee.lengthComputable&&(qe.total=Ee.total),"text"===e.responseType&&a.responseText&&(qe.partialText=a.responseText),s.next(qe)},_e=Ee=>{let qe={type:Zi.UploadProgress,loaded:Ee.loaded};Ee.lengthComputable&&(qe.total=Ee.total),s.next(qe)};let Ce;a.addEventListener("load",E),a.addEventListener("error",F),a.addEventListener("timeout",F),a.addEventListener("abort",F),e.reportProgress&&(a.addEventListener("progress",ie),null!==l&&a.upload&&a.upload.addEventListener("progress",_e));const Ae=()=>{Ce??=function F8(){const t=setTimeout(()=>{},A8);return()=>clearTimeout(t)}()},ze=()=>{Ce?.()};return a.addEventListener("loadstart",Ae),a.addEventListener("loadend",ze),a.send(l),s.next({type:Zi.Sent}),()=>{a.removeEventListener("loadstart",Ae),a.removeEventListener("loadend",ze),a.removeEventListener("error",F),a.removeEventListener("abort",F),a.removeEventListener("load",E),a.removeEventListener("timeout",F),Ce?.(),e.reportProgress&&(a.removeEventListener("progress",ie),null!==l&&a.upload&&a.upload.removeEventListener("progress",_e)),a.readyState!==a.DONE&&a.abort()}})))}}return t.\u0275fac=function(e){return new(e||t)(we(pD))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const A8=2147483647,a0=new Re("XSRF_ENABLED"),IT=new Re("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),PT=new Re("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class OT{}let Y8=(()=>{class t{constructor(e,i,o){this.doc=e,this.platform=i,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=nD(e,this.cookieName),this.lastCookieString=e),this.lastToken}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(Oa),we(IT))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function H8(t,n){const e=t.url.toLowerCase();if(!Qe(a0)||"GET"===t.method||"HEAD"===t.method||e.startsWith("http://")||e.startsWith("https://"))return n(t);const i=Qe(OT).getToken(),o=Qe(PT);return null!=i&&!t.headers.has(o)&&(t=t.clone({headers:t.headers.set(o,i)})),n(t)}var Hi=(()=>((Hi=Hi||{})[Hi.Interceptors=0]="Interceptors",Hi[Hi.LegacyInterceptors=1]="LegacyInterceptors",Hi[Hi.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",Hi[Hi.NoXsrfProtection=3]="NoXsrfProtection",Hi[Hi.JsonpSupport=4]="JsonpSupport",Hi[Hi.RequestsMadeViaParent=5]="RequestsMadeViaParent",Hi))();function md(t,n){return{\u0275kind:t,\u0275providers:n}}function B8(...t){const n=[Vl,ET,TT,{provide:vm,useExisting:TT},{provide:n0,useExisting:ET},{provide:ch,useValue:H8,multi:!0},{provide:a0,useValue:!0},{provide:OT,useClass:Y8}];for(const e of t)n.push(...e.\u0275providers);return function vb(t){return{\u0275providers:t}}(n)}const AT=new Re("LEGACY_INTERCEPTOR_FN");let j8=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[B8(md(Hi.LegacyInterceptors,[{provide:AT,useFactory:T8},{provide:ch,useExisting:AT,multi:!0}]))]}),t})();function za(t){return!!t&&(t instanceof he||"function"==typeof t.lift&&"function"==typeof t.subscribe)}class Or extends J{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const e=super._subscribe(n);return e&&!e.closed&&n.next(this._value),e}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new ee;return this._value}next(n){super.next(this._value=n)}}class q8 extends A{notifyNext(n,e,i,o,s){this.destination.next(e)}notifyError(n,e){this.destination.error(n)}notifyComplete(n){this.destination.complete()}}class K8 extends A{constructor(n,e,i){super(),this.parent=n,this.outerValue=e,this.outerIndex=i,this.index=0}_next(n){this.parent.notifyNext(this.outerValue,n,this.outerIndex,this.index++,this)}_error(n){this.parent.notifyError(n,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}function Z8(t,n,e,i,o=new K8(t,e,i)){if(!o.closed)return n instanceof he?n.subscribe(o):Oi(n)(o)}const FT={};function Mm(...t){let n,e;return Se(t[t.length-1])&&(e=t.pop()),"function"==typeof t[t.length-1]&&(n=t.pop()),1===t.length&&M(t[0])&&(t=t[0]),An(t,e).lift(new X8(n))}class X8{constructor(n){this.resultSelector=n}call(n,e){return e.subscribe(new J8(n,this.resultSelector))}}class J8 extends q8{constructor(n,e){super(n),this.resultSelector=e,this.active=0,this.values=[],this.observables=[]}_next(n){this.values.push(FT),this.observables.push(n)}_complete(){const n=this.observables,e=n.length;if(0===e)this.destination.complete();else{this.active=e,this.toRespond=e;for(let i=0;i{function t(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return t.prototype=Object.create(Error.prototype),t})();function Ua(...t){return function Q8(){return fn(1)}()($e(...t))}const oa=new he(t=>t.complete());function Cm(t){return t?function e6(t){return new he(n=>t.schedule(()=>n.complete()))}(t):oa}function jl(t){return new he(n=>{let e;try{e=t()}catch(o){return void n.error(o)}return(e?ue(e):Cm()).subscribe(n)})}function Ar(t,n){return new he(n?e=>n.schedule(t6,0,{error:t,subscriber:e}):e=>e.error(t))}function t6({error:t,subscriber:n}){n.error(t)}const RT=(()=>{function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t})();function Kn(t){return n=>0===t?Cm():n.lift(new n6(t))}class n6{constructor(n){if(this.total=n,this.total<0)throw new RT}call(n,e){return e.subscribe(new i6(n,this.total))}}class i6 extends A{constructor(n,e){super(n),this.total=e,this.count=0}_next(n){const e=this.total,i=++this.count;i<=e&&(this.destination.next(n),i===e&&(this.destination.complete(),this.unsubscribe()))}}function Go(...t){const n=t[t.length-1];return Se(n)?(t.pop(),e=>Ua(t,e,n)):e=>Ua(t,e)}function xm(t=null){return n=>n.lift(new r6(t))}class r6{constructor(n){this.defaultValue=n}call(n,e){return e.subscribe(new o6(n,this.defaultValue))}}class o6 extends A{constructor(n,e){super(n),this.defaultValue=e,this.isEmpty=!0}_next(n){this.isEmpty=!1,this.destination.next(n)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}function NT(t=l6){return n=>n.lift(new s6(t))}class s6{constructor(n){this.errorFactory=n}call(n,e){return e.subscribe(new a6(n,this.errorFactory))}}class a6 extends A{constructor(n,e){super(n),this.errorFactory=e,this.hasValue=!1}_next(n){this.hasValue=!0,this.destination.next(n)}_complete(){if(this.hasValue)return this.destination.complete();{let n;try{n=this.errorFactory()}catch(e){n=e}this.destination.error(n)}}}function l6(){return new wm}function zl(t,n){const e=arguments.length>=2;return i=>i.pipe(t?_i((o,s)=>t(o,s,i)):ve,Kn(1),e?xm(n):NT(()=>new wm))}function Wa(){}function bi(t,n,e){return function(o){return o.lift(new c6(t,n,e))}}class c6{constructor(n,e,i){this.nextOrObserver=n,this.error=e,this.complete=i}call(n,e){return e.subscribe(new d6(n,this.nextOrObserver,this.error,this.complete))}}class d6 extends A{constructor(n,e,i,o){super(n),this._tapNext=Wa,this._tapError=Wa,this._tapComplete=Wa,this._tapError=i||Wa,this._tapComplete=o||Wa,O(e)?(this._context=this,this._tapNext=e):e&&(this._context=e,this._tapNext=e.next||Wa,this._tapError=e.error||Wa,this._tapComplete=e.complete||Wa)}_next(n){try{this._tapNext.call(this._context,n)}catch(e){return void this.destination.error(e)}this.destination.next(n)}_error(n){try{this._tapError.call(this._context,n)}catch(e){return void this.destination.error(e)}this.destination.error(n)}_complete(){try{this._tapComplete.call(this._context)}catch(n){return void this.destination.error(n)}return this.destination.complete()}}function Co(t){return function(e){const i=new u6(t),o=e.lift(i);return i.caught=o}}class u6{constructor(n){this.selector=n}call(n,e){return e.subscribe(new h6(n,this.selector,this.caught))}}class h6 extends Me{constructor(n,e,i){super(n),this.selector=e,this.caught=i}error(n){if(!this.isStopped){let e;try{e=this.selector(n,this.caught)}catch(s){return void super.error(s)}this._unsubscribeAndRecycle();const i=new be(this);this.add(i);const o=Ie(e,i);o!==i&&this.add(o)}}}class p6{constructor(n,e,i=!1){this.accumulator=n,this.seed=e,this.hasSeed=i}call(n,e){return e.subscribe(new m6(n,this.accumulator,this.seed,this.hasSeed))}}class m6 extends A{constructor(n,e,i,o){super(n),this.accumulator=e,this._seed=i,this.hasSeed=o,this.index=0}get seed(){return this._seed}set seed(n){this.hasSeed=!0,this._seed=n}_next(n){if(this.hasSeed)return this._tryNext(n);this.seed=n,this.destination.next(n)}_tryNext(n){const e=this.index++;let i;try{i=this.accumulator(this.seed,n,e)}catch(o){this.destination.error(o)}this.seed=i,this.destination.next(i)}}function l0(t){return function(e){return 0===t?Cm():e.lift(new g6(t))}}class g6{constructor(n){if(this.total=n,this.total<0)throw new RT}call(n,e){return e.subscribe(new _6(n,this.total))}}class _6 extends A{constructor(n,e){super(n),this.total=e,this.ring=new Array,this.count=0}_next(n){const e=this.ring,i=this.total,o=this.count++;e.length0){const i=this.count>=this.total?this.total:this.count,o=this.ring;for(let s=0;sn.lift(new w6(t))}class w6{constructor(n){this.callback=n}call(n,e){return e.subscribe(new C6(n,this.callback))}}class C6 extends A{constructor(n,e){super(n),this.add(new T(e))}}const $t="primary",uh=Symbol("RouteTitle");class x6{constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e[0]:e}return null}getAll(n){if(this.has(n)){const e=this.params[n];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}}function gd(t){return new x6(t)}function k6(t,n,e){const i=e.path.split("/");if(i.length>t.length||"full"===e.pathMatch&&(n.hasChildren()||i.lengthi[s]===o)}return t===n}function HT(t){return t.length>0?t[t.length-1]:null}function $a(t){return za(t)?t:Hu(t)?ue(Promise.resolve(t)):$e(t)}const D6={exact:function jT(t,n,e){if(!Ul(t.segments,n.segments)||!Sm(t.segments,n.segments,e)||t.numberOfChildren!==n.numberOfChildren)return!1;for(const i in n.children)if(!t.children[i]||!jT(t.children[i],n.children[i],e))return!1;return!0},subset:zT},BT={exact:function T6(t,n){return Os(t,n)},subset:function L6(t,n){return Object.keys(n).length<=Object.keys(t).length&&Object.keys(n).every(e=>YT(t[e],n[e]))},ignored:()=>!0};function VT(t,n,e){return D6[e.paths](t.root,n.root,e.matrixParams)&&BT[e.queryParams](t.queryParams,n.queryParams)&&!("exact"===e.fragment&&t.fragment!==n.fragment)}function zT(t,n,e){return UT(t,n,n.segments,e)}function UT(t,n,e,i){if(t.segments.length>e.length){const o=t.segments.slice(0,e.length);return!(!Ul(o,e)||n.hasChildren()||!Sm(o,e,i))}if(t.segments.length===e.length){if(!Ul(t.segments,e)||!Sm(t.segments,e,i))return!1;for(const o in n.children)if(!t.children[o]||!zT(t.children[o],n.children[o],i))return!1;return!0}{const o=e.slice(0,t.segments.length),s=e.slice(t.segments.length);return!!(Ul(t.segments,o)&&Sm(t.segments,o,i)&&t.children[$t])&&UT(t.children[$t],n,s,i)}}function Sm(t,n,e){return n.every((i,o)=>BT[e](t[o].parameters,i.parameters))}class _d{constructor(n=new Yn([],{}),e={},i=null){this.root=n,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=gd(this.queryParams)),this._queryParamMap}toString(){return P6.serialize(this)}}class Yn{constructor(n,e){this.segments=n,this.children=e,this.parent=null,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Dm(this)}}class hh{constructor(n,e){this.path=n,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=gd(this.parameters)),this._parameterMap}toString(){return GT(this)}}function Ul(t,n){return t.length===n.length&&t.every((e,i)=>e.path===n[i].path)}let fh=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return new c0},providedIn:"root"}),t})();class c0{parse(n){const e=new z6(n);return new _d(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(n){const e=`/${ph(n.root,!0)}`,i=function F6(t){const n=Object.keys(t).map(e=>{const i=t[e];return Array.isArray(i)?i.map(o=>`${Tm(e)}=${Tm(o)}`).join("&"):`${Tm(e)}=${Tm(i)}`}).filter(e=>!!e);return n.length?`?${n.join("&")}`:""}(n.queryParams),o="string"==typeof n.fragment?`#${function O6(t){return encodeURI(t)}(n.fragment)}`:"";return`${e}${i}${o}`}}const P6=new c0;function Dm(t){return t.segments.map(n=>GT(n)).join("/")}function ph(t,n){if(!t.hasChildren())return Dm(t);if(n){const e=t.children[$t]?ph(t.children[$t],!1):"",i=[];return Object.entries(t.children).forEach(([o,s])=>{o!==$t&&i.push(`${o}:${ph(s,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}{const e=function I6(t,n){let e=[];return Object.entries(t.children).forEach(([i,o])=>{i===$t&&(e=e.concat(n(o,i)))}),Object.entries(t.children).forEach(([i,o])=>{i!==$t&&(e=e.concat(n(o,i)))}),e}(t,(i,o)=>o===$t?[ph(t.children[$t],!1)]:[`${o}:${ph(i,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[$t]?`${Dm(t)}/${e[0]}`:`${Dm(t)}/(${e.join("//")})`}}function WT(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Tm(t){return WT(t).replace(/%3B/gi,";")}function d0(t){return WT(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Lm(t){return decodeURIComponent(t)}function $T(t){return Lm(t.replace(/\+/g,"%20"))}function GT(t){return`${d0(t.path)}${function A6(t){return Object.keys(t).map(n=>`;${d0(n)}=${d0(t[n])}`).join("")}(t.parameters)}`}const R6=/^[^\/()?;#]+/;function u0(t){const n=t.match(R6);return n?n[0]:""}const N6=/^[^\/()?;=#]+/,H6=/^[^=?&#]+/,V6=/^[^&#]+/;class z6{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Yn([],{}):new Yn([],this.parseChildren())}parseQueryParams(){const n={};if(this.consumeOptional("?"))do{this.parseQueryParam(n)}while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(n.length>0||Object.keys(e).length>0)&&(i[$t]=new Yn(n,e)),i}parseSegment(){const n=u0(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new Fe(4009,!1);return this.capture(n),new hh(Lm(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const e=function Y6(t){const n=t.match(N6);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const o=u0(this.remaining);o&&(i=o,this.capture(i))}n[Lm(e)]=Lm(i)}parseQueryParam(n){const e=function B6(t){const n=t.match(H6);return n?n[0]:""}(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){const a=function j6(t){const n=t.match(V6);return n?n[0]:""}(this.remaining);a&&(i=a,this.capture(i))}const o=$T(e),s=$T(i);if(n.hasOwnProperty(o)){let a=n[o];Array.isArray(a)||(a=[a],n[o]=a),a.push(s)}else n[o]=s}parseParens(n){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const i=u0(this.remaining),o=this.remaining[i.length];if("/"!==o&&")"!==o&&";"!==o)throw new Fe(4010,!1);let s;i.indexOf(":")>-1?(s=i.slice(0,i.indexOf(":")),this.capture(s),this.capture(":")):n&&(s=$t);const a=this.parseChildren();e[s]=1===Object.keys(a).length?a[$t]:new Yn([],a),this.consumeOptional("//")}return e}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return!!this.peekStartsWith(n)&&(this.remaining=this.remaining.substring(n.length),!0)}capture(n){if(!this.consumeOptional(n))throw new Fe(4011,!1)}}function qT(t){return t.segments.length>0?new Yn([],{[$t]:t}):t}function KT(t){const n={};for(const i of Object.keys(t.children)){const s=KT(t.children[i]);if(i===$t&&0===s.segments.length&&s.hasChildren())for(const[a,l]of Object.entries(s.children))n[a]=l;else(s.segments.length>0||s.hasChildren())&&(n[i]=s)}return function U6(t){if(1===t.numberOfChildren&&t.children[$t]){const n=t.children[$t];return new Yn(t.segments.concat(n.segments),n.children)}return t}(new Yn(t.segments,n))}function Wl(t){return t instanceof _d}function ZT(t){let n;const o=qT(function e(s){const a={};for(const d of s.children){const _=e(d);a[d.outlet]=_}const l=new Yn(s.url,a);return s===t&&(n=l),l}(t.root));return n??o}function XT(t,n,e,i){let o=t;for(;o.parent;)o=o.parent;if(0===n.length)return h0(o,o,o,e,i);const s=function $6(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new QT(!0,0,t);let n=0,e=!1;const i=t.reduce((o,s,a)=>{if("object"==typeof s&&null!=s){if(s.outlets){const l={};return Object.entries(s.outlets).forEach(([d,_])=>{l[d]="string"==typeof _?_.split("/"):_}),[...o,{outlets:l}]}if(s.segmentPath)return[...o,s.segmentPath]}return"string"!=typeof s?[...o,s]:0===a?(s.split("/").forEach((l,d)=>{0==d&&"."===l||(0==d&&""===l?e=!0:".."===l?n++:""!=l&&o.push(l))}),o):[...o,s]},[]);return new QT(e,n,i)}(n);if(s.toRoot())return h0(o,o,new Yn([],{}),e,i);const a=function G6(t,n,e){if(t.isAbsolute)return new Im(n,!0,0);if(!e)return new Im(n,!1,NaN);if(null===e.parent)return new Im(e,!0,0);const i=Em(t.commands[0])?0:1;return function q6(t,n,e){let i=t,o=n,s=e;for(;s>o;){if(s-=o,i=i.parent,!i)throw new Fe(4005,!1);o=i.segments.length}return new Im(i,!1,o-s)}(e,e.segments.length-1+i,t.numberOfDoubleDots)}(s,o,t),l=a.processChildren?gh(a.segmentGroup,a.index,s.commands):e2(a.segmentGroup,a.index,s.commands);return h0(o,a.segmentGroup,l,e,i)}function Em(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function mh(t){return"object"==typeof t&&null!=t&&t.outlets}function h0(t,n,e,i,o){let a,s={};i&&Object.entries(i).forEach(([d,_])=>{s[d]=Array.isArray(_)?_.map(E=>`${E}`):`${_}`}),a=t===n?e:JT(t,n,e);const l=qT(KT(a));return new _d(l,s,o)}function JT(t,n,e){const i={};return Object.entries(t.children).forEach(([o,s])=>{i[o]=s===n?e:JT(s,n,e)}),new Yn(t.segments,i)}class QT{constructor(n,e,i){if(this.isAbsolute=n,this.numberOfDoubleDots=e,this.commands=i,n&&i.length>0&&Em(i[0]))throw new Fe(4003,!1);const o=i.find(mh);if(o&&o!==HT(i))throw new Fe(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Im{constructor(n,e,i){this.segmentGroup=n,this.processChildren=e,this.index=i}}function e2(t,n,e){if(t||(t=new Yn([],{})),0===t.segments.length&&t.hasChildren())return gh(t,n,e);const i=function Z6(t,n,e){let i=0,o=n;const s={match:!1,pathIndex:0,commandIndex:0};for(;o=e.length)return s;const a=t.segments[o],l=e[i];if(mh(l))break;const d=`${l}`,_=i0&&void 0===d)break;if(d&&_&&"object"==typeof _&&void 0===_.outlets){if(!n2(d,_,a))return s;i+=2}else{if(!n2(d,{},a))return s;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}(t,n,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndex{"string"==typeof a&&(a=[a]),null!==a&&(o[s]=e2(t.children[s],n,a))}),Object.entries(t.children).forEach(([s,a])=>{void 0===i[s]&&(o[s]=a)}),new Yn(t.segments,o)}}function f0(t,n,e){const i=t.segments.slice(0,n);let o=0;for(;o{"string"==typeof i&&(i=[i]),null!==i&&(n[e]=f0(new Yn([],{}),0,i))}),n}function t2(t){const n={};return Object.entries(t).forEach(([e,i])=>n[e]=`${i}`),n}function n2(t,n,e){return t==e.path&&Os(n,e.parameters)}const _h="imperative";class As{constructor(n,e){this.id=n,this.url=e}}class p0 extends As{constructor(n,e,i="imperative",o=null){super(n,e),this.type=0,this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Ga extends As{constructor(n,e,i){super(n,e),this.urlAfterRedirects=i,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class Pm extends As{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class bh extends As{constructor(n,e,i,o){super(n,e),this.reason=i,this.code=o,this.type=16}}class m0 extends As{constructor(n,e,i,o){super(n,e),this.error=i,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class J6 extends As{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Q6 extends As{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class ej extends As{constructor(n,e,i,o,s){super(n,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=s,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class tj extends As{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class nj extends As{constructor(n,e,i,o){super(n,e),this.urlAfterRedirects=i,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class ij{constructor(n){this.route=n,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class rj{constructor(n){this.route=n,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class oj{constructor(n){this.snapshot=n,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class sj{constructor(n){this.snapshot=n,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class aj{constructor(n){this.snapshot=n,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class lj{constructor(n){this.snapshot=n,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class r2{constructor(n,e,i){this.routerEvent=n,this.position=e,this.anchor=i,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class cj{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new vh,this.attachRef=null}}let vh=(()=>{class t{constructor(){this.contexts=new Map}onChildOutletCreated(e,i){const o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){const i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new cj,this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class o2{constructor(n){this._root=n}get root(){return this._root.value}parent(n){const e=this.pathFromRoot(n);return e.length>1?e[e.length-2]:null}children(n){const e=g0(n,this._root);return e?e.children.map(i=>i.value):[]}firstChild(n){const e=g0(n,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(n){const e=_0(n,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return _0(n,this._root).map(e=>e.value)}}function g0(t,n){if(t===n.value)return n;for(const e of n.children){const i=g0(t,e);if(i)return i}return null}function _0(t,n){if(t===n.value)return[n];for(const e of n.children){const i=_0(t,e);if(i.length)return i.unshift(n),i}return[]}class sa{constructor(n,e){this.value=n,this.children=e}toString(){return`TreeNode(${this.value})`}}function bd(t){const n={};return t&&t.children.forEach(e=>n[e.value.outlet]=e),n}class s2 extends o2{constructor(n,e){super(n),this.snapshot=e,b0(this,n)}toString(){return this.snapshot.toString()}}function a2(t,n){const e=function dj(t,n){const a=new Om([],{},{},"",{},$t,n,null,{});return new c2("",new sa(a,[]))}(0,n),i=new Or([new hh("",{})]),o=new Or({}),s=new Or({}),a=new Or({}),l=new Or(""),d=new Mr(i,o,a,l,s,$t,n,e.root);return d.snapshot=e.root,new s2(new sa(d,[]),e)}class Mr{constructor(n,e,i,o,s,a,l,d){this.urlSubject=n,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=s,this.outlet=a,this.component=l,this._futureSnapshot=d,this.title=this.dataSubject?.pipe(ke(_=>_[uh]))??$e(void 0),this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=s}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(ke(n=>gd(n)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(ke(n=>gd(n)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function l2(t,n="emptyOnly"){const e=t.pathFromRoot;let i=0;if("always"!==n)for(i=e.length-1;i>=1;){const o=e[i],s=e[i-1];if(o.routeConfig&&""===o.routeConfig.path)i--;else{if(s.component)break;i--}}return function uj(t){return t.reduce((n,e)=>({params:{...n.params,...e.params},data:{...n.data,...e.data},resolve:{...e.data,...n.resolve,...e.routeConfig?.data,...e._resolvedData}}),{params:{},data:{},resolve:{}})}(e.slice(i))}class Om{get title(){return this.data?.[uh]}constructor(n,e,i,o,s,a,l,d,_){this.url=n,this.params=e,this.queryParams=i,this.fragment=o,this.data=s,this.outlet=a,this.component=l,this.routeConfig=d,this._resolve=_}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=gd(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=gd(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(i=>i.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class c2 extends o2{constructor(n,e){super(e),this.url=n,b0(this,e)}toString(){return d2(this._root)}}function b0(t,n){n.value._routerState=t,n.children.forEach(e=>b0(t,e))}function d2(t){const n=t.children.length>0?` { ${t.children.map(d2).join(", ")} } `:"";return`${t.value}${n}`}function v0(t){if(t.snapshot){const n=t.snapshot,e=t._futureSnapshot;t.snapshot=e,Os(n.queryParams,e.queryParams)||t.queryParamsSubject.next(e.queryParams),n.fragment!==e.fragment&&t.fragmentSubject.next(e.fragment),Os(n.params,e.params)||t.paramsSubject.next(e.params),function S6(t,n){if(t.length!==n.length)return!1;for(let e=0;eOs(e.parameters,n[i].parameters))}(t.url,n.url);return e&&!(!t.parent!=!n.parent)&&(!t.parent||y0(t.parent,n.parent))}let Am=(()=>{class t{constructor(){this.activated=null,this._activatedRoute=null,this.name=$t,this.activateEvents=new ht,this.deactivateEvents=new ht,this.attachEvents=new ht,this.detachEvents=new ht,this.parentContexts=Qe(vh),this.location=Qe(rr),this.changeDetector=Qe(pi),this.environmentInjector=Qe(ks),this.inputBinder=Qe(Fm,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(e){if(e.name){const{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Fe(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Fe(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Fe(4012,!1);this.location.detach();const e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){const e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new Fe(4013,!1);this._activatedRoute=e;const o=this.location,a=e.snapshot.component,l=this.parentContexts.getOrCreateContext(this.name).children,d=new hj(e,l,o.injector);this.activated=o.createComponent(a,{index:o.length,injector:d,environmentInjector:i??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[Gi]}),t})();class hj{constructor(n,e,i){this.route=n,this.childContexts=e,this.parent=i}get(n,e){return n===Mr?this.route:n===vh?this.childContexts:this.parent.get(n,e)}}const Fm=new Re("");let u2=(()=>{class t{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(e){this.unsubscribeFromRouteData(e),this.subscribeToRouteData(e)}unsubscribeFromRouteData(e){this.outletDataSubscriptions.get(e)?.unsubscribe(),this.outletDataSubscriptions.delete(e)}subscribeToRouteData(e){const{activatedRoute:i}=e,o=Mm([i.queryParams,i.params,i.data]).pipe(gr(([s,a,l],d)=>(l={...s,...a,...l},0===d?$e(l):Promise.resolve(l)))).subscribe(s=>{if(!e.isActivated||!e.activatedComponentRef||e.activatedRoute!==i||null===i.component)return void this.unsubscribeFromRouteData(e);const a=function K5(t){const n=gn(t);if(!n)return null;const e=new Au(n);return{get selector(){return e.selector},get type(){return e.componentType},get inputs(){return e.inputs},get outputs(){return e.outputs},get ngContentSelectors(){return e.ngContentSelectors},get isStandalone(){return n.standalone}}}(i.component);if(a)for(const{templateName:l}of a.inputs)e.activatedComponentRef.setInput(l,s[l]);else this.unsubscribeFromRouteData(e)});this.outletDataSubscriptions.set(e,o)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function yh(t,n,e){if(e&&t.shouldReuseRoute(n.value,e.value.snapshot)){const i=e.value;i._futureSnapshot=n.value;const o=function pj(t,n,e){return n.children.map(i=>{for(const o of e.children)if(t.shouldReuseRoute(i.value,o.value.snapshot))return yh(t,i,o);return yh(t,i)})}(t,n,e);return new sa(i,o)}{if(t.shouldAttach(n.value)){const s=t.retrieve(n.value);if(null!==s){const a=s.route;return a.value._futureSnapshot=n.value,a.children=n.children.map(l=>yh(t,l)),a}}const i=function mj(t){return new Mr(new Or(t.url),new Or(t.params),new Or(t.queryParams),new Or(t.fragment),new Or(t.data),t.outlet,t.component,t)}(n.value),o=n.children.map(s=>yh(t,s));return new sa(i,o)}}const M0="ngNavigationCancelingError";function h2(t,n){const{redirectTo:e,navigationBehaviorOptions:i}=Wl(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=f2(!1,0,n);return o.url=e,o.navigationBehaviorOptions=i,o}function f2(t,n,e){const i=new Error("NavigationCancelingError: "+(t||""));return i[M0]=!0,i.cancellationCode=n,e&&(i.url=e),i}function p2(t){return m2(t)&&Wl(t.url)}function m2(t){return t&&t[M0]}let g2=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["ng-component"]],standalone:!0,features:[_k],decls:1,vars:0,template:function(e,i){1&e&&xe(0,"router-outlet")},dependencies:[Am],encapsulation:2}),t})();function w0(t){const n=t.children&&t.children.map(w0),e=n?{...t,children:n}:{...t};return!e.component&&!e.loadComponent&&(n||e.loadChildren)&&e.outlet&&e.outlet!==$t&&(e.component=g2),e}function os(t){return t.outlet||$t}function Mh(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let n=t.parent;n;n=n.parent){const e=n.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}class wj{constructor(n,e,i,o,s){this.routeReuseStrategy=n,this.futureState=e,this.currState=i,this.forwardEvent=o,this.inputBindingEnabled=s}activate(n){const e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,n),v0(this.futureState.root),this.activateChildRoutes(e,i,n)}deactivateChildRoutes(n,e,i){const o=bd(e);n.children.forEach(s=>{const a=s.value.outlet;this.deactivateRoutes(s,o[a],i),delete o[a]}),Object.values(o).forEach(s=>{this.deactivateRouteAndItsChildren(s,i)})}deactivateRoutes(n,e,i){const o=n.value,s=e?e.value:null;if(o===s)if(o.component){const a=i.getContext(o.outlet);a&&this.deactivateChildRoutes(n,e,a.children)}else this.deactivateChildRoutes(n,e,i);else s&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(n,e){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,e):this.deactivateRouteAndOutlet(n,e)}detachAndStoreRouteSubtree(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,s=bd(n);for(const a of Object.keys(s))this.deactivateRouteAndItsChildren(s[a],o);if(i&&i.outlet){const a=i.outlet.detach(),l=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:a,route:n,contexts:l})}}deactivateRouteAndOutlet(n,e){const i=e.getContext(n.value.outlet),o=i&&n.value.component?i.children:e,s=bd(n);for(const a of Object.keys(s))this.deactivateRouteAndItsChildren(s[a],o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,e,i){const o=bd(e);n.children.forEach(s=>{this.activateRoutes(s,o[s.value.outlet],i),this.forwardEvent(new lj(s.value.snapshot))}),n.children.length&&this.forwardEvent(new sj(n.value.snapshot))}activateRoutes(n,e,i){const o=n.value,s=e?e.value:null;if(v0(o),o===s)if(o.component){const a=i.getOrCreateContext(o.outlet);this.activateChildRoutes(n,e,a.children)}else this.activateChildRoutes(n,e,i);else if(o.component){const a=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const l=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),a.children.onOutletReAttached(l.contexts),a.attachRef=l.componentRef,a.route=l.route.value,a.outlet&&a.outlet.attach(l.componentRef,l.route.value),v0(l.route.value),this.activateChildRoutes(n,null,a.children)}else{const l=Mh(o.snapshot);a.attachRef=null,a.route=o,a.injector=l,a.outlet&&a.outlet.activateWith(o,a.injector),this.activateChildRoutes(n,null,a.children)}}else this.activateChildRoutes(n,null,i)}}class _2{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class Rm{constructor(n,e){this.component=n,this.route=e}}function Cj(t,n,e){const i=t._root;return wh(i,n?n._root:null,e,[i.value])}function vd(t,n){const e=Symbol(),i=n.get(t,e);return i===e?"function"!=typeof t||function jg(t){return null!==uc(t)}(t)?n.get(t):t:i}function wh(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const s=bd(n);return t.children.forEach(a=>{(function kj(t,n,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){const s=t.value,a=n?n.value:null,l=e?e.getContext(t.value.outlet):null;if(a&&s.routeConfig===a.routeConfig){const d=function Sj(t,n,e){if("function"==typeof e)return e(t,n);switch(e){case"pathParamsChange":return!Ul(t.url,n.url);case"pathParamsOrQueryParamsChange":return!Ul(t.url,n.url)||!Os(t.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!y0(t,n)||!Os(t.queryParams,n.queryParams);default:return!y0(t,n)}}(a,s,s.routeConfig.runGuardsAndResolvers);d?o.canActivateChecks.push(new _2(i)):(s.data=a.data,s._resolvedData=a._resolvedData),wh(t,n,s.component?l?l.children:null:e,i,o),d&&l&&l.outlet&&l.outlet.isActivated&&o.canDeactivateChecks.push(new Rm(l.outlet.component,a))}else a&&Ch(n,l,o),o.canActivateChecks.push(new _2(i)),wh(t,null,s.component?l?l.children:null:e,i,o)})(a,s[a.value.outlet],e,i.concat([a.value]),o),delete s[a.value.outlet]}),Object.entries(s).forEach(([a,l])=>Ch(l,e.getContext(a),o)),o}function Ch(t,n,e){const i=bd(t),o=t.value;Object.entries(i).forEach(([s,a])=>{Ch(a,o.component?n?n.children.getContext(s):null:n,e)}),e.canDeactivateChecks.push(new Rm(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function xh(t){return"function"==typeof t}function b2(t){return t instanceof wm||"EmptyError"===t?.name}const Nm=Symbol("INITIAL_VALUE");function yd(){return gr(t=>Mm(t.map(n=>n.pipe(Kn(1),Go(Nm)))).pipe(ke(n=>{for(const e of n)if(!0!==e){if(e===Nm)return Nm;if(!1===e||e instanceof _d)return e}return!0}),_i(n=>n!==Nm),Kn(1)))}function v2(t){return function Z(...t){return X(t)}(bi(n=>{if(Wl(n))throw h2(0,n)}),ke(n=>!0===n))}class Ym{constructor(n){this.segmentGroup=n||null}}class y2{constructor(n){this.urlTree=n}}function Md(t){return Ar(new Ym(t))}function M2(t){return Ar(new y2(t))}class $j{constructor(n,e){this.urlSerializer=n,this.urlTree=e}noMatchError(n){return new Fe(4002,!1)}lineralizeSegments(n,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),0===o.numberOfChildren)return $e(i);if(o.numberOfChildren>1||!o.children[$t])return Ar(new Fe(4e3,!1));o=o.children[$t]}}applyRedirectCommands(n,e,i){return this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),n,i)}applyRedirectCreateUrlTree(n,e,i,o){const s=this.createSegmentGroup(n,e.root,i,o);return new _d(s,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(n,e){const i={};return Object.entries(n).forEach(([o,s])=>{if("string"==typeof s&&s.startsWith(":")){const l=s.substring(1);i[o]=e[l]}else i[o]=s}),i}createSegmentGroup(n,e,i,o){const s=this.createSegments(n,e.segments,i,o);let a={};return Object.entries(e.children).forEach(([l,d])=>{a[l]=this.createSegmentGroup(n,d,i,o)}),new Yn(s,a)}createSegments(n,e,i,o){return e.map(s=>s.path.startsWith(":")?this.findPosParam(n,s,o):this.findOrReturn(s,i))}findPosParam(n,e,i){const o=i[e.path.substring(1)];if(!o)throw new Fe(4001,!1);return o}findOrReturn(n,e){let i=0;for(const o of e){if(o.path===n.path)return e.splice(i),o;i++}return n}}const C0={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Gj(t,n,e,i,o){const s=x0(t,n,e);return s.matched?(i=function gj(t,n){return t.providers&&!t._injector&&(t._injector=Cv(t.providers,n,`Route: ${t.path}`)),t._injector??n}(n,i),function zj(t,n,e,i){const o=n.canMatch;return o&&0!==o.length?$e(o.map(a=>{const l=vd(a,t);return $a(function Pj(t){return t&&xh(t.canMatch)}(l)?l.canMatch(n,e):t.runInContext(()=>l(n,e)))})).pipe(yd(),v2()):$e(!0)}(i,n,e).pipe(ke(a=>!0===a?s:{...C0}))):$e(s)}function x0(t,n,e){if(""===n.path)return"full"===n.pathMatch&&(t.hasChildren()||e.length>0)?{...C0}:{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};const o=(n.matcher||k6)(e,t,n);if(!o)return{...C0};const s={};Object.entries(o.posParams??{}).forEach(([l,d])=>{s[l]=d.path});const a=o.consumed.length>0?{...s,...o.consumed[o.consumed.length-1].parameters}:s;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:a,positionalParamSegments:o.posParams??{}}}function w2(t,n,e,i){return e.length>0&&function Zj(t,n,e){return e.some(i=>Hm(t,n,i)&&os(i)!==$t)}(t,e,i)?{segmentGroup:new Yn(n,Kj(i,new Yn(e,t.children))),slicedSegments:[]}:0===e.length&&function Xj(t,n,e){return e.some(i=>Hm(t,n,i))}(t,e,i)?{segmentGroup:new Yn(t.segments,qj(t,0,e,i,t.children)),slicedSegments:e}:{segmentGroup:new Yn(t.segments,t.children),slicedSegments:e}}function qj(t,n,e,i,o){const s={};for(const a of i)if(Hm(t,e,a)&&!o[os(a)]){const l=new Yn([],{});s[os(a)]=l}return{...o,...s}}function Kj(t,n){const e={};e[$t]=n;for(const i of t)if(""===i.path&&os(i)!==$t){const o=new Yn([],{});e[os(i)]=o}return e}function Hm(t,n,e){return(!(t.hasChildren()||n.length>0)||"full"!==e.pathMatch)&&""===e.path}class t7{constructor(n,e,i,o,s,a,l){this.injector=n,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=s,this.paramsInheritanceStrategy=a,this.urlSerializer=l,this.allowRedirects=!0,this.applyRedirects=new $j(this.urlSerializer,this.urlTree)}noMatchError(n){return new Fe(4002,!1)}recognize(){const n=w2(this.urlTree.root,[],[],this.config).segmentGroup;return this.processSegmentGroup(this.injector,this.config,n,$t).pipe(Co(e=>{if(e instanceof y2)return this.allowRedirects=!1,this.urlTree=e.urlTree,this.match(e.urlTree);throw e instanceof Ym?this.noMatchError(e):e}),ke(e=>{const i=new Om([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},$t,this.rootComponentType,null,{}),o=new sa(i,e),s=new c2("",o),a=function W6(t,n,e=null,i=null){return XT(ZT(t),n,e,i)}(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,s.url=this.urlSerializer.serialize(a),this.inheritParamsAndData(s._root),{state:s,tree:a}}))}match(n){return this.processSegmentGroup(this.injector,this.config,n.root,$t).pipe(Co(i=>{throw i instanceof Ym?this.noMatchError(i):i}))}inheritParamsAndData(n){const e=n.value,i=l2(e,this.paramsInheritanceStrategy);e.params=Object.freeze(i.params),e.data=Object.freeze(i.data),n.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(n,e,i,o){return 0===i.segments.length&&i.hasChildren()?this.processChildren(n,e,i):this.processSegment(n,e,i,i.segments,o,!0)}processChildren(n,e,i){const o=[];for(const s of Object.keys(i.children))"primary"===s?o.unshift(s):o.push(s);return ue(o).pipe(Bl(s=>{const a=i.children[s],l=function yj(t,n){const e=t.filter(i=>os(i)===n);return e.push(...t.filter(i=>os(i)!==n)),e}(e,s);return this.processSegmentGroup(n,l,a,s)}),function f6(t,n){let e=!1;return arguments.length>=2&&(e=!0),function(o){return o.lift(new p6(t,n,e))}}((s,a)=>(s.push(...a),s)),xm(null),function b6(t,n){const e=arguments.length>=2;return i=>i.pipe(t?_i((o,s)=>t(o,s,i)):ve,l0(1),e?xm(n):NT(()=>new wm))}(),Ye(s=>{if(null===s)return Md(i);const a=C2(s);return function n7(t){t.sort((n,e)=>n.value.outlet===$t?-1:e.value.outlet===$t?1:n.value.outlet.localeCompare(e.value.outlet))}(a),$e(a)}))}processSegment(n,e,i,o,s,a){return ue(e).pipe(Bl(l=>this.processSegmentAgainstRoute(l._injector??n,e,l,i,o,s,a).pipe(Co(d=>{if(d instanceof Ym)return $e(null);throw d}))),zl(l=>!!l),Co(l=>{if(b2(l))return function Qj(t,n,e){return 0===n.length&&!t.children[e]}(i,o,s)?$e([]):Md(i);throw l}))}processSegmentAgainstRoute(n,e,i,o,s,a,l){return function Jj(t,n,e,i){return!!(os(t)===i||i!==$t&&Hm(n,e,t))&&("**"===t.path||x0(n,t,e).matched)}(i,o,s,a)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(n,o,i,s,a,l):l&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(n,o,e,i,s,a):Md(o):Md(o)}expandSegmentAgainstRouteUsingRedirect(n,e,i,o,s,a){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(n,i,o,a):this.expandRegularSegmentAgainstRouteUsingRedirect(n,e,i,o,s,a)}expandWildCardWithParamsAgainstRouteUsingRedirect(n,e,i,o){const s=this.applyRedirects.applyRedirectCommands([],i.redirectTo,{});return i.redirectTo.startsWith("/")?M2(s):this.applyRedirects.lineralizeSegments(i,s).pipe(Ye(a=>{const l=new Yn(a,{});return this.processSegment(n,e,l,a,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(n,e,i,o,s,a){const{matched:l,consumedSegments:d,remainingSegments:_,positionalParamSegments:E}=x0(e,o,s);if(!l)return Md(e);const F=this.applyRedirects.applyRedirectCommands(d,o.redirectTo,E);return o.redirectTo.startsWith("/")?M2(F):this.applyRedirects.lineralizeSegments(o,F).pipe(Ye(G=>this.processSegment(n,i,e,G.concat(_),a,!1)))}matchSegmentAgainstRoute(n,e,i,o,s,a){let l;if("**"===i.path){const d=o.length>0?HT(o).parameters:{};l=$e({snapshot:new Om(o,d,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,x2(i),os(i),i.component??i._loadedComponent??null,i,k2(i)),consumedSegments:[],remainingSegments:[]}),e.children={}}else l=Gj(e,i,o,n).pipe(ke(({matched:d,consumedSegments:_,remainingSegments:E,parameters:F})=>d?{snapshot:new Om(_,F,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,x2(i),os(i),i.component??i._loadedComponent??null,i,k2(i)),consumedSegments:_,remainingSegments:E}:null));return l.pipe(gr(d=>null===d?Md(e):this.getChildConfig(n=i._injector??n,i,o).pipe(gr(({routes:_})=>{const E=i._loadedInjector??n,{snapshot:F,consumedSegments:G,remainingSegments:ie}=d,{segmentGroup:_e,slicedSegments:Ce}=w2(e,G,ie,_);if(0===Ce.length&&_e.hasChildren())return this.processChildren(E,_,_e).pipe(ke(ze=>null===ze?null:[new sa(F,ze)]));if(0===_.length&&0===Ce.length)return $e([new sa(F,[])]);const Ae=os(i)===s;return this.processSegment(E,_,_e,Ce,Ae?$t:s,!0).pipe(ke(ze=>[new sa(F,ze)]))}))))}getChildConfig(n,e,i){return e.children?$e({routes:e.children,injector:n}):e.loadChildren?void 0!==e._loadedRoutes?$e({routes:e._loadedRoutes,injector:e._loadedInjector}):function jj(t,n,e,i){const o=n.canLoad;return void 0===o||0===o.length?$e(!0):$e(o.map(a=>{const l=vd(a,t);return $a(function Tj(t){return t&&xh(t.canLoad)}(l)?l.canLoad(n,e):t.runInContext(()=>l(n,e)))})).pipe(yd(),v2())}(n,e,i).pipe(Ye(o=>o?this.configLoader.loadChildren(n,e).pipe(bi(s=>{e._loadedRoutes=s.routes,e._loadedInjector=s.injector})):function Wj(t){return Ar(f2(!1,3))}())):$e({routes:[],injector:n})}}function i7(t){const n=t.value.routeConfig;return n&&""===n.path}function C2(t){const n=[],e=new Set;for(const i of t){if(!i7(i)){n.push(i);continue}const o=n.find(s=>i.value.routeConfig===s.value.routeConfig);void 0!==o?(o.children.push(...i.children),e.add(o)):n.push(i)}for(const i of e){const o=C2(i.children);n.push(new sa(i.value,o))}return n.filter(i=>!e.has(i))}function x2(t){return t.data||{}}function k2(t){return t.resolve||{}}function S2(t){return"string"==typeof t.title||null===t.title}function k0(t){return gr(n=>{const e=t(n);return e?ue(e).pipe(ke(()=>n)):$e(n)})}const wd=new Re("ROUTES");let S0=(()=>{class t{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=Qe(oS)}loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return $e(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);const i=$a(e.loadComponent()).pipe(ke(D2),bi(s=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=s}),km(()=>{this.componentLoaders.delete(e)})),o=new Kr(i,()=>new J).pipe(qt());return this.componentLoaders.set(e,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return $e({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);const s=this.loadModuleFactoryOrRoutes(i.loadChildren).pipe(ke(l=>{this.onLoadEndListener&&this.onLoadEndListener(i);let d,_;return Array.isArray(l)?_=l:(d=l.create(e).injector,_=d.get(wd,[],Mt.Self|Mt.Optional).flat()),{routes:_.map(w0),injector:d}}),km(()=>{this.childrenLoaders.delete(i)})),a=new Kr(s,()=>new J).pipe(qt());return this.childrenLoaders.set(i,a),a}loadModuleFactoryOrRoutes(e){return $a(e()).pipe(ke(D2),Ye(i=>i instanceof mk||Array.isArray(i)?$e(i):ue(this.compiler.compileModuleAsync(i))))}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function D2(t){return function d7(t){return t&&"object"==typeof t&&"default"in t}(t)?t.default:t}let Bm=(()=>{class t{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.lastSuccessfulNavigation=null,this.events=new J,this.configLoader=Qe(S0),this.environmentInjector=Qe(ks),this.urlSerializer=Qe(fh),this.rootContexts=Qe(vh),this.inputBindingEnabled=null!==Qe(Fm,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>$e(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new rj(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new ij(o))}complete(){this.transitions?.complete()}handleNavigationRequest(e){const i=++this.navigationId;this.transitions?.next({...this.transitions.value,...e,id:i})}setupNavigations(e){return this.transitions=new Or({id:0,currentUrlTree:e.currentUrlTree,currentRawUrl:e.currentUrlTree,extractedUrl:e.urlHandlingStrategy.extract(e.currentUrlTree),urlAfterRedirects:e.urlHandlingStrategy.extract(e.currentUrlTree),rawUrl:e.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:_h,restoredState:null,currentSnapshot:e.routerState.snapshot,targetSnapshot:null,currentRouterState:e.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(_i(i=>0!==i.id),ke(i=>({...i,extractedUrl:e.urlHandlingStrategy.extract(i.rawUrl)})),gr(i=>{let o=!1,s=!1;return $e(i).pipe(bi(a=>{this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),gr(a=>{const l=e.browserUrlTree.toString(),d=!e.navigated||a.extractedUrl.toString()!==l||l!==e.currentUrlTree.toString();if(!d&&"reload"!==(a.extras.onSameUrlNavigation??e.onSameUrlNavigation)){const E="";return this.events.next(new bh(a.id,e.serializeUrl(i.rawUrl),E,0)),e.rawUrlTree=a.rawUrl,a.resolve(null),oa}if(e.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return T2(a.source)&&(e.browserUrlTree=a.extractedUrl),$e(a).pipe(gr(E=>{const F=this.transitions?.getValue();return this.events.next(new p0(E.id,this.urlSerializer.serialize(E.extractedUrl),E.source,E.restoredState)),F!==this.transitions?.getValue()?oa:Promise.resolve(E)}),function r7(t,n,e,i,o,s){return Ye(a=>function e7(t,n,e,i,o,s,a="emptyOnly"){return new t7(t,n,e,i,o,a,s).recognize()}(t,n,e,i,a.extractedUrl,o,s).pipe(ke(({state:l,tree:d})=>({...a,targetSnapshot:l,urlAfterRedirects:d}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,e.paramsInheritanceStrategy),bi(E=>{if(i.targetSnapshot=E.targetSnapshot,i.urlAfterRedirects=E.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:E.urlAfterRedirects},"eager"===e.urlUpdateStrategy){if(!E.extras.skipLocationChange){const G=e.urlHandlingStrategy.merge(E.urlAfterRedirects,E.rawUrl);e.setBrowserUrl(G,E)}e.browserUrlTree=E.urlAfterRedirects}const F=new J6(E.id,this.urlSerializer.serialize(E.extractedUrl),this.urlSerializer.serialize(E.urlAfterRedirects),E.targetSnapshot);this.events.next(F)}));if(d&&e.urlHandlingStrategy.shouldProcessUrl(e.rawUrlTree)){const{id:E,extractedUrl:F,source:G,restoredState:ie,extras:_e}=a,Ce=new p0(E,this.urlSerializer.serialize(F),G,ie);this.events.next(Ce);const Ae=a2(0,this.rootComponentType).snapshot;return $e(i={...a,targetSnapshot:Ae,urlAfterRedirects:F,extras:{..._e,skipLocationChange:!1,replaceUrl:!1}})}{const E="";return this.events.next(new bh(a.id,e.serializeUrl(i.extractedUrl),E,1)),e.rawUrlTree=a.rawUrl,a.resolve(null),oa}}),bi(a=>{const l=new Q6(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(l)}),ke(a=>i={...a,guards:Cj(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),function Aj(t,n){return Ye(e=>{const{targetSnapshot:i,currentSnapshot:o,guards:{canActivateChecks:s,canDeactivateChecks:a}}=e;return 0===a.length&&0===s.length?$e({...e,guardsResult:!0}):function Fj(t,n,e,i){return ue(t).pipe(Ye(o=>function Vj(t,n,e,i,o){const s=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return s&&0!==s.length?$e(s.map(l=>{const d=Mh(n)??o,_=vd(l,d);return $a(function Ij(t){return t&&xh(t.canDeactivate)}(_)?_.canDeactivate(t,n,e,i):d.runInContext(()=>_(t,n,e,i))).pipe(zl())})).pipe(yd()):$e(!0)}(o.component,o.route,e,n,i)),zl(o=>!0!==o,!0))}(a,i,o,t).pipe(Ye(l=>l&&function Dj(t){return"boolean"==typeof t}(l)?function Rj(t,n,e,i){return ue(n).pipe(Bl(o=>Ua(function Yj(t,n){return null!==t&&n&&n(new oj(t)),$e(!0)}(o.route.parent,i),function Nj(t,n){return null!==t&&n&&n(new aj(t)),$e(!0)}(o.route,i),function Bj(t,n,e){const i=n[n.length-1],s=n.slice(0,n.length-1).reverse().map(a=>function xj(t){const n=t.routeConfig?t.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:t,guards:n}:null}(a)).filter(a=>null!==a).map(a=>jl(()=>$e(a.guards.map(d=>{const _=Mh(a.node)??e,E=vd(d,_);return $a(function Ej(t){return t&&xh(t.canActivateChild)}(E)?E.canActivateChild(i,t):_.runInContext(()=>E(i,t))).pipe(zl())})).pipe(yd())));return $e(s).pipe(yd())}(t,o.path,e),function Hj(t,n,e){const i=n.routeConfig?n.routeConfig.canActivate:null;if(!i||0===i.length)return $e(!0);const o=i.map(s=>jl(()=>{const a=Mh(n)??e,l=vd(s,a);return $a(function Lj(t){return t&&xh(t.canActivate)}(l)?l.canActivate(n,t):a.runInContext(()=>l(n,t))).pipe(zl())}));return $e(o).pipe(yd())}(t,o.route,e))),zl(o=>!0!==o,!0))}(i,s,t,n):$e(l)),ke(l=>({...e,guardsResult:l})))})}(this.environmentInjector,a=>this.events.next(a)),bi(a=>{if(i.guardsResult=a.guardsResult,Wl(a.guardsResult))throw h2(0,a.guardsResult);const l=new ej(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.events.next(l)}),_i(a=>!!a.guardsResult||(e.restoreHistory(a),this.cancelNavigationTransition(a,"",3),!1)),k0(a=>{if(a.guards.canActivateChecks.length)return $e(a).pipe(bi(l=>{const d=new tj(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(d)}),gr(l=>{let d=!1;return $e(l).pipe(function o7(t,n){return Ye(e=>{const{targetSnapshot:i,guards:{canActivateChecks:o}}=e;if(!o.length)return $e(e);let s=0;return ue(o).pipe(Bl(a=>function s7(t,n,e,i){const o=t.routeConfig,s=t._resolve;return void 0!==o?.title&&!S2(o)&&(s[uh]=o.title),function a7(t,n,e,i){const o=function l7(t){return[...Object.keys(t),...Object.getOwnPropertySymbols(t)]}(t);if(0===o.length)return $e({});const s={};return ue(o).pipe(Ye(a=>function c7(t,n,e,i){const o=Mh(n)??i,s=vd(t,o);return $a(s.resolve?s.resolve(n,e):o.runInContext(()=>s(n,e)))}(t[a],n,e,i).pipe(zl(),bi(l=>{s[a]=l}))),l0(1),function v6(t){return n=>n.lift(new y6(t))}(s),Co(a=>b2(a)?oa:Ar(a)))}(s,t,n,i).pipe(ke(a=>(t._resolvedData=a,t.data=l2(t,e).resolve,o&&S2(o)&&(t.data[uh]=o.title),null)))}(a.route,i,t,n)),bi(()=>s++),l0(1),Ye(a=>s===o.length?$e(e):oa))})}(e.paramsInheritanceStrategy,this.environmentInjector),bi({next:()=>d=!0,complete:()=>{d||(e.restoreHistory(l),this.cancelNavigationTransition(l,"",2))}}))}),bi(l=>{const d=new nj(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(d)}))}),k0(a=>{const l=d=>{const _=[];d.routeConfig?.loadComponent&&!d.routeConfig._loadedComponent&&_.push(this.configLoader.loadComponent(d.routeConfig).pipe(bi(E=>{d.component=E}),ke(()=>{})));for(const E of d.children)_.push(...l(E));return _};return Mm(l(a.targetSnapshot.root)).pipe(xm(),Kn(1))}),k0(()=>this.afterPreactivation()),ke(a=>{const l=function fj(t,n,e){const i=yh(t,n._root,e?e._root:void 0);return new s2(i,n)}(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return i={...a,targetRouterState:l}}),bi(a=>{e.currentUrlTree=a.urlAfterRedirects,e.rawUrlTree=e.urlHandlingStrategy.merge(a.urlAfterRedirects,a.rawUrl),e.routerState=a.targetRouterState,"deferred"===e.urlUpdateStrategy&&(a.extras.skipLocationChange||e.setBrowserUrl(e.rawUrlTree,a),e.browserUrlTree=a.urlAfterRedirects)}),((t,n,e,i)=>ke(o=>(new wj(n,o.targetRouterState,o.currentRouterState,e,i).activate(t),o)))(this.rootContexts,e.routeReuseStrategy,a=>this.events.next(a),this.inputBindingEnabled),Kn(1),bi({next:a=>{o=!0,this.lastSuccessfulNavigation=this.currentNavigation,e.navigated=!0,this.events.next(new Ga(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(e.currentUrlTree))),e.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0)},complete:()=>{o=!0}}),km(()=>{o||s||this.cancelNavigationTransition(i,"",1),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),Co(a=>{if(s=!0,m2(a)){p2(a)||(e.navigated=!0,e.restoreHistory(i,!0));const l=new Pm(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode);if(this.events.next(l),p2(a)){const d=e.urlHandlingStrategy.merge(a.url,e.rawUrlTree),_={skipLocationChange:i.extras.skipLocationChange,replaceUrl:"eager"===e.urlUpdateStrategy||T2(i.source)};e.scheduleNavigation(d,_h,null,_,{resolve:i.resolve,reject:i.reject,promise:i.promise})}else i.resolve(!1)}else{e.restoreHistory(i,!0);const l=new m0(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);this.events.next(l);try{i.resolve(e.errorHandler(a))}catch(d){i.reject(d)}}return oa}))}))}cancelNavigationTransition(e,i,o){const s=new Pm(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(s),e.resolve(!1)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function T2(t){return t!==_h}let L2=(()=>{class t{buildTitle(e){let i,o=e.root;for(;void 0!==o;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(s=>s.outlet===$t);return i}getResolvedTitleForRoute(e){return e.data[uh]}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return Qe(u7)},providedIn:"root"}),t})(),u7=(()=>{class t extends L2{constructor(e){super(),this.title=e}updateTitle(e){const i=this.buildTitle(e);void 0!==i&&this.title.setTitle(i)}}return t.\u0275fac=function(e){return new(e||t)(we(PD))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),E2=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return Qe(f7)},providedIn:"root"}),t})();class h7{shouldDetach(n){return!1}store(n,e){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,e){return n.routeConfig===e.routeConfig}}let f7=(()=>{class t extends h7{}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const Vm=new Re("",{providedIn:"root",factory:()=>({})});let p7=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:function(){return Qe(m7)},providedIn:"root"}),t})(),m7=(()=>{class t{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var xo=(()=>((xo=xo||{})[xo.COMPLETE=0]="COMPLETE",xo[xo.FAILED=1]="FAILED",xo[xo.REDIRECTING=2]="REDIRECTING",xo))();function I2(t,n){t.events.pipe(_i(e=>e instanceof Ga||e instanceof Pm||e instanceof m0||e instanceof bh),ke(e=>e instanceof Ga||e instanceof bh?xo.COMPLETE:e instanceof Pm&&(0===e.code||1===e.code)?xo.REDIRECTING:xo.FAILED),_i(e=>e!==xo.REDIRECTING),Kn(1)).subscribe(()=>{n()})}function g7(t){throw t}function _7(t,n,e){return n.parse("/")}const b7={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},v7={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let hn=(()=>{class t{get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){if("computed"===this.canceledNavigationResolution)return this.location.getState()?.\u0275routerPageId}get events(){return this.navigationTransitions.events}constructor(){this.disposed=!1,this.currentPageId=0,this.console=Qe(rS),this.isNgZoneEnabled=!1,this.options=Qe(Vm,{optional:!0})||{},this.pendingTasks=Qe(VS),this.errorHandler=this.options.errorHandler||g7,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||_7,this.navigated=!1,this.lastSuccessfulId=-1,this.urlHandlingStrategy=Qe(p7),this.routeReuseStrategy=Qe(E2),this.titleStrategy=Qe(L2),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=Qe(wd,{optional:!0})?.flat()??[],this.navigationTransitions=Qe(Bm),this.urlSerializer=Qe(fh),this.location=Qe(Xu),this.componentInputBindingEnabled=!!Qe(Fm,{optional:!0}),this.isNgZoneEnabled=Qe(ft)instanceof ft&&ft.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new _d,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=a2(0,null),this.navigationTransitions.setupNavigations(this).subscribe(e=>{this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId??0},e=>{this.console.warn(`Unhandled Navigation Error: ${e}`)})}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){if(this.setUpLocationChangeListener(),!this.navigationTransitions.hasRequestedNavigation){const e=this.location.getState();this.navigateToSyncWithBrowser(this.location.path(!0),_h,e)}}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(e=>{const i="popstate"===e.type?"popstate":"hashchange";"popstate"===i&&setTimeout(()=>{this.navigateToSyncWithBrowser(e.url,i,e.state)},0)}))}navigateToSyncWithBrowser(e,i,o){const s={replaceUrl:!0},a=o?.navigationId?o:null;if(o){const d={...o};delete d.navigationId,delete d.\u0275routerPageId,0!==Object.keys(d).length&&(s.state=d)}const l=this.parseUrl(e);this.scheduleNavigation(l,i,a,s)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(w0),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(e,i={}){const{relativeTo:o,queryParams:s,fragment:a,queryParamsHandling:l,preserveFragment:d}=i,_=d?this.currentUrlTree.fragment:a;let F,E=null;switch(l){case"merge":E={...this.currentUrlTree.queryParams,...s};break;case"preserve":E=this.currentUrlTree.queryParams;break;default:E=s||null}null!==E&&(E=this.removeEmptyProps(E));try{F=ZT(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof e[0]||!e[0].startsWith("/"))&&(e=[]),F=this.currentUrlTree.root}return XT(F,e,E,_??null)}navigateByUrl(e,i={skipLocationChange:!1}){const o=Wl(e)?e:this.parseUrl(e),s=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(s,_h,null,i)}navigate(e,i={skipLocationChange:!1}){return function y7(t){for(let n=0;n{const s=e[o];return null!=s&&(i[o]=s),i},{})}scheduleNavigation(e,i,o,s,a){if(this.disposed)return Promise.resolve(!1);let l,d,_;a?(l=a.resolve,d=a.reject,_=a.promise):_=new Promise((F,G)=>{l=F,d=G});const E=this.pendingTasks.add();return I2(this,()=>{Promise.resolve().then(()=>this.pendingTasks.remove(E))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:s,resolve:l,reject:d,promise:_,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),_.catch(F=>Promise.reject(F))}setBrowserUrl(e,i){const o=this.urlSerializer.serialize(e);if(this.location.isCurrentPathEqualTo(o)||i.extras.replaceUrl){const a={...i.extras.state,...this.generateNgRouterState(i.id,this.browserPageId)};this.location.replaceState(o,"",a)}else{const s={...i.extras.state,...this.generateNgRouterState(i.id,(this.browserPageId??0)+1)};this.location.go(o,"",s)}}restoreHistory(e,i=!1){if("computed"===this.canceledNavigationResolution){const s=this.currentPageId-(this.browserPageId??this.currentPageId);0!==s?this.location.historyGo(s):this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===s&&(this.resetState(e),this.browserUrlTree=e.currentUrlTree,this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(i&&this.resetState(e),this.resetUrlToCurrentUrlTree())}resetState(e){this.routerState=e.currentRouterState,this.currentUrlTree=e.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return"computed"===this.canceledNavigationResolution?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),qa=(()=>{class t{constructor(e,i,o,s,a,l){this.router=e,this.route=i,this.tabIndexAttribute=o,this.renderer=s,this.el=a,this.locationStrategy=l,this._preserveFragment=!1,this._skipLocationChange=!1,this._replaceUrl=!1,this.href=null,this.commands=null,this.onChanges=new J;const d=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===d||"area"===d,this.isAnchorElement?this.subscription=e.events.subscribe(_=>{_ instanceof Ga&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}set preserveFragment(e){this._preserveFragment=ud(e)}get preserveFragment(){return this._preserveFragment}set skipLocationChange(e){this._skipLocationChange=ud(e)}get skipLocationChange(){return this._skipLocationChange}set replaceUrl(e){this._replaceUrl=ud(e)}get replaceUrl(){return this._replaceUrl}setTabIndexIfNotOnNativeEl(e){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",e)}ngOnChanges(e){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(e){null!=e?(this.commands=Array.isArray(e)?e:[e],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(e,i,o,s,a){return!!(null===this.urlTree||this.isAnchorElement&&(0!==e||i||o||s||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(this.urlTree,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){this.href=null!==this.urlTree&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null;const e=null===this.href?null:function Nw(t,n,e){return function VA(t,n){return"src"===n&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===n&&("base"===t||"link"===t)?Rw:Vo}(n,e)(t)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",e)}applyAttributeValue(e,i){const o=this.renderer,s=this.el.nativeElement;null!==i?o.setAttribute(s,e,i):o.removeAttribute(s,e)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}}return t.\u0275fac=function(e){return new(e||t)(Y(hn),Y(Mr),Pa("tabindex"),Y(Ks),Y(vt),Y(Rl))},t.\u0275dir=Ke({type:t,selectors:[["","routerLink",""]],hostVars:1,hostBindings:function(e,i){1&e&&ye("click",function(s){return i.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),2&e&&Xt("target",i.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",relativeTo:"relativeTo",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",routerLink:"routerLink"},standalone:!0,features:[Gi]}),t})();class P2{}let C7=(()=>{class t{constructor(e,i,o,s,a){this.router=e,this.injector=o,this.preloadingStrategy=s,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(_i(e=>e instanceof Ga),Bl(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(e,i){const o=[];for(const s of i){s.providers&&!s._injector&&(s._injector=Cv(s.providers,e,`Route: ${s.path}`));const a=s._injector??e,l=s._loadedInjector??a;(s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent)&&o.push(this.preloadConfig(a,s)),(s.children||s._loadedRoutes)&&o.push(this.processRoutes(l,s.children??s._loadedRoutes))}return ue(o).pipe(fn())}preloadConfig(e,i){return this.preloadingStrategy.preload(i,()=>{let o;o=i.loadChildren&&void 0===i.canLoad?this.loader.loadChildren(e,i):$e(null);const s=o.pipe(Ye(a=>null===a?$e(void 0):(i._loadedRoutes=a.routes,i._loadedInjector=a.injector,this.processRoutes(a.injector??e,a.routes))));return i.loadComponent&&!i._loadedComponent?ue([s,this.loader.loadComponent(i)]).pipe(fn()):s})}}return t.\u0275fac=function(e){return new(e||t)(we(hn),we(oS),we(ks),we(P2),we(S0))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const D0=new Re("");let O2=(()=>{class t{constructor(e,i,o,s,a={}){this.urlSerializer=e,this.transitions=i,this.viewportScroller=o,this.zone=s,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration=a.scrollPositionRestoration||"disabled",a.anchorScrolling=a.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof p0?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=e.navigationTrigger,this.restoredId=e.restoredState?e.restoredState.navigationId:0):e instanceof Ga?(this.lastId=e.id,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.urlAfterRedirects).fragment)):e instanceof bh&&0===e.code&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(e,this.urlSerializer.parse(e.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(e=>{e instanceof r2&&(e.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(e.position):e.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(e.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(e,i){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new r2(e,"popstate"===this.lastSource?this.store[this.restoredId]:null,i))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}}return t.\u0275fac=function(e){Aa()},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function aa(t,n){return{\u0275kind:t,\u0275providers:n}}function F2(){const t=Qe(Si);return n=>{const e=t.get(Na);if(n!==e.components[0])return;const i=t.get(hn),o=t.get(R2);1===t.get(T0)&&i.initialNavigation(),t.get(N2,null,Mt.Optional)?.setUpPreloading(),t.get(D0,null,Mt.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const R2=new Re("",{factory:()=>new J}),T0=new Re("",{providedIn:"root",factory:()=>1}),N2=new Re("");function D7(t){return aa(0,[{provide:N2,useExisting:C7},{provide:P2,useExisting:t}])}const Y2=new Re("ROUTER_FORROOT_GUARD"),L7=[Xu,{provide:fh,useClass:c0},hn,vh,{provide:Mr,useFactory:function A2(t){return t.routerState.root},deps:[hn]},S0,[]];function E7(){return new gS("Router",hn)}let H2=(()=>{class t{constructor(e){}static forRoot(e,i){return{ngModule:t,providers:[L7,[],{provide:wd,multi:!0,useValue:e},{provide:Y2,useFactory:A7,deps:[[hn,new xl,new mu]]},{provide:Vm,useValue:i||{}},i?.useHash?{provide:Rl,useClass:eY}:{provide:Rl,useClass:WS},{provide:D0,useFactory:()=>{const t=Qe(mH),n=Qe(ft),e=Qe(Vm),i=Qe(Bm),o=Qe(fh);return e.scrollOffset&&t.setOffset(e.scrollOffset),new O2(o,i,t,n,e)}},i?.preloadingStrategy?D7(i.preloadingStrategy).\u0275providers:[],{provide:gS,multi:!0,useFactory:E7},i?.initialNavigation?F7(i):[],i?.bindToComponentInputs?aa(8,[u2,{provide:Fm,useExisting:u2}]).\u0275providers:[],[{provide:B2,useFactory:F2},{provide:Gv,multi:!0,useExisting:B2}]]}}static forChild(e){return{ngModule:t,providers:[{provide:wd,multi:!0,useValue:e}]}}}return t.\u0275fac=function(e){return new(e||t)(we(Y2,8))},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})();function A7(t){return"guarded"}function F7(t){return["disabled"===t.initialNavigation?aa(3,[{provide:Yv,multi:!0,useFactory:()=>{const n=Qe(hn);return()=>{n.setUpLocationChangeListener()}}},{provide:T0,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?aa(2,[{provide:T0,useValue:0},{provide:Yv,multi:!0,deps:[Si],useFactory:n=>{const e=n.get(J5,Promise.resolve());return()=>e.then(()=>new Promise(i=>{const o=n.get(hn),s=n.get(R2);I2(o,()=>{i(!0)}),n.get(Bm).afterPreactivation=()=>(i(!0),s.closed?$e(void 0):s),o.initialNavigation()}))}}]).\u0275providers:[]]}const B2=new Re("");class N7 extends T{constructor(n,e){super()}schedule(n,e=0){return this}}class jm extends N7{constructor(n,e){super(n,e),this.scheduler=n,this.work=e,this.pending=!1}schedule(n,e=0){if(this.closed)return this;this.state=n;const i=this.id,o=this.scheduler;return null!=i&&(this.id=this.recycleAsyncId(o,i,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(o,this.id,e),this}requestAsyncId(n,e,i=0){return setInterval(n.flush.bind(n,this),i)}recycleAsyncId(n,e,i=0){if(null!==i&&this.delay===i&&!1===this.pending)return e;clearInterval(e)}execute(n,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const i=this._execute(n,e);if(i)return i;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(n,e){let o,i=!1;try{this.work(n)}catch(s){i=!0,o=!!s&&s||new Error(s)}if(i)return this.unsubscribe(),o}_unsubscribe(){const n=this.id,e=this.scheduler,i=e.actions,o=i.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==o&&i.splice(o,1),null!=n&&(this.id=this.recycleAsyncId(e,n,null)),this.delay=null}}let V2=(()=>{class t{constructor(e,i=t.now){this.SchedulerAction=e,this.now=i}schedule(e,i=0,o){return new this.SchedulerAction(this,e).schedule(o,i)}}return t.now=()=>Date.now(),t})();class ss extends V2{constructor(n,e=V2.now){super(n,()=>ss.delegate&&ss.delegate!==this?ss.delegate.now():e()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(n,e=0,i){return ss.delegate&&ss.delegate!==this?ss.delegate.schedule(n,e,i):super.schedule(n,e,i)}flush(n){const{actions:e}=this;if(this.active)return void e.push(n);let i;this.active=!0;do{if(i=n.execute(n.state,n.delay))break}while(n=e.shift());if(this.active=!1,i){for(;n=e.shift();)n.unsubscribe();throw i}}}const Cd=new ss(jm);class no{constructor(n,e,i){this.kind=n,this.value=e,this.error=i,this.hasValue="N"===n}observe(n){switch(this.kind){case"N":return n.next&&n.next(this.value);case"E":return n.error&&n.error(this.error);case"C":return n.complete&&n.complete()}}do(n,e,i){switch(this.kind){case"N":return n&&n(this.value);case"E":return e&&e(this.error);case"C":return i&&i()}}accept(n,e,i){return n&&"function"==typeof n.next?this.observe(n):this.do(n,e,i)}toObservable(){switch(this.kind){case"N":return $e(this.value);case"E":return Ar(this.error);case"C":return Cm()}throw new Error("unexpected notification kind value")}static createNext(n){return typeof n<"u"?new no("N",n):no.undefinedValueNotification}static createError(n){return new no("E",void 0,n)}static createComplete(){return no.completeNotification}}function Ti(t,n=Cd){const i=function Y7(t){return t instanceof Date&&!isNaN(+t)}(t)?+t-n.now():Math.abs(t);return o=>o.lift(new H7(i,n))}no.completeNotification=new no("C"),no.undefinedValueNotification=new no("N",void 0);class H7{constructor(n,e){this.delay=n,this.scheduler=e}call(n,e){return e.subscribe(new L0(n,this.delay,this.scheduler))}}class L0 extends A{constructor(n,e,i){super(n),this.delay=e,this.scheduler=i,this.queue=[],this.active=!1,this.errored=!1}static dispatch(n){const e=n.source,i=e.queue,o=n.scheduler,s=n.destination;for(;i.length>0&&i[0].time-o.now()<=0;)i.shift().notification.observe(s);if(i.length>0){const a=Math.max(0,i[0].time-o.now());this.schedule(n,a)}else this.unsubscribe(),e.active=!1}_schedule(n){this.active=!0,this.destination.add(n.schedule(L0.dispatch,this.delay,{source:this,destination:this.destination,scheduler:n}))}scheduleNotification(n){if(!0===this.errored)return;const e=this.scheduler,i=new B7(e.now()+this.delay,n);this.queue.push(i),!1===this.active&&this._schedule(e)}_next(n){this.scheduleNotification(no.createNext(n))}_error(n){this.errored=!0,this.queue=[],this.destination.error(n),this.unsubscribe()}_complete(){this.scheduleNotification(no.createComplete()),this.unsubscribe()}}class B7{constructor(n,e){this.time=n,this.notification=e}}var Ka=(()=>((Ka=Ka||{}).NoConnection="NoConnection",Ka.Unknown="Unknown",Ka))();class V7{}const j2="common.operation-error";function en(t){if(t&&t.type&&!t.srcElement)return t;const n=new V7;if(n.originalError=t,!t||"string"==typeof t)return n.originalServerErrorMsg=t||"",n.translatableErrorMsg=t||j2,n.type=Ka.Unknown,n;n.originalServerErrorMsg=function z7(t){if(t){if("string"==typeof t._body)return t._body;if(t.originalServerErrorMsg&&"string"==typeof t.originalServerErrorMsg)return t.originalServerErrorMsg;if(t.error&&"string"==typeof t.error)return t.error;if(t.error&&t.error.error&&t.error.error.message)return t.error.error.message;if(t.error&&t.error.error&&"string"==typeof t.error.error)return t.error.error;if(t.message)return t.message;if(t._body&&t._body.error)return t._body.error;try{return JSON.parse(t._body).error}catch{}}return null}(t);return null!=t.status&&(0===t.status||504===t.status)&&(n.type=Ka.NoConnection,n.translatableErrorMsg="common.no-connection-error"),n.type||(n.type=Ka.Unknown,n.translatableErrorMsg=n.originalServerErrorMsg?function j7(t){if(!t||0===t.length)return t;if(-1!==t.indexOf('"error":'))try{t=JSON.parse(t).error}catch{}if(t.startsWith("400")||t.startsWith("403")){const e=t.split(" - ",2);t=2===e.length?e[1]:t}const n=(t=t.trim()).substr(0,1);return n.toUpperCase()!==n&&(t=n.toUpperCase()+t.substr(1,t.length-1)),!t.endsWith(".")&&!t.endsWith(",")&&!t.endsWith(":")&&!t.endsWith(";")&&!t.endsWith("?")&&!t.endsWith("!")&&(t+="."),t}(n.originalServerErrorMsg):j2),n}const $7=new class W7 extends ss{}(class U7 extends jm{constructor(n,e){super(n,e),this.scheduler=n,this.work=e}schedule(n,e=0){return e>0?super.schedule(n,e):(this.delay=e,this.state=n,this.scheduler.flush(this),this)}execute(n,e){return e>0||this.closed?super.execute(n,e):this._execute(n,e)}requestAsyncId(n,e,i=0){return null!==i&&i>0||null===i&&this.delay>0?super.requestAsyncId(n,e,i):n.flush(this)}});class zm extends A{constructor(n,e,i=0){super(n),this.scheduler=e,this.delay=i}static dispatch(n){const{notification:e,destination:i}=n;e.observe(i),this.unsubscribe()}scheduleMessage(n){this.destination.add(this.scheduler.schedule(zm.dispatch,this.delay,new q7(n,this.destination)))}_next(n){this.scheduleMessage(no.createNext(n))}_error(n){this.scheduleMessage(no.createError(n)),this.unsubscribe()}_complete(){this.scheduleMessage(no.createComplete()),this.unsubscribe()}}class q7{constructor(n,e){this.notification=n,this.destination=e}}class ko extends J{constructor(n=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,i){super(),this.scheduler=i,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=n<1?1:n,this._windowTime=e<1?1:e,e===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(n){if(!this.isStopped){const e=this._events;e.push(n),e.length>this._bufferSize&&e.shift()}super.next(n)}nextTimeWindow(n){this.isStopped||(this._events.push(new K7(this._getNow(),n)),this._trimBufferThenGetEvents()),super.next(n)}_subscribe(n){const e=this._infiniteTimeWindow,i=e?this._events:this._trimBufferThenGetEvents(),o=this.scheduler,s=i.length;let a;if(this.closed)throw new ee;if(this.isStopped||this.hasError?a=T.EMPTY:(this.observers.push(n),a=new ae(this,n)),o&&n.add(n=new zm(n,o)),e)for(let l=0;le&&(a=Math.max(a,s-e)),a>0&&o.splice(0,a),o}}class K7{constructor(n,e){this.time=n,this.value=e}}const Um="refreshSeconds",Wm="labelsData",$m="localNodesData",z2="nodesData";var Xi=(()=>((Xi=Xi||{}).Node="nd",Xi.Transport="tp",Xi.DmsgServer="ds",Xi))();let Ji=(()=>{class t{constructor(){this.currentRefreshTimeSubject=new ko(1),this.savedLocalNodes=new Map,this.savedLabels=new Map,this.savedVisibleLocalNodes=new Set}initialize(e){this.storage=localStorage,this.hypervisorPk=e,this.migrateDataToHvStorage(),this.currentRefreshTime=parseInt(this.getDataForHv(Um),10)||10,this.currentRefreshTimeSubject.next(this.currentRefreshTime),this.getSavedLocalNodes().forEach(s=>{this.savedLocalNodes.set(s.publicKey,s),s.hidden||this.savedVisibleLocalNodes.add(s.publicKey)}),this.getSavedLabels().forEach(s=>this.savedLabels.set(s.id,s)),this.loadLegacyNodeData();const i=[];this.savedLocalNodes.forEach(s=>i.push(s));const o=[];this.savedLabels.forEach(s=>o.push(s)),this.saveLocalNodes(i),this.saveLabels(o)}getDataForHv(e){return this.storage.getItem(this.hypervisorPk+e)}setDataForHv(e,i){return this.storage.setItem(this.hypervisorPk+e,i)}migrateDataToHvStorage(){const e=this.storage.getItem(Um);if(e){const s=parseInt(e,10)||10;this.setRefreshTime(s),this.storage.removeItem(Um)}const i=this.storage.getItem($m);if(i){const s=JSON.parse(i)||[];this.saveLocalNodes(s),this.storage.removeItem($m)}const o=this.storage.getItem(Wm);if(o){const s=JSON.parse(o)||[];this.saveLabels(s),this.storage.removeItem(Wm)}}loadLegacyNodeData(){const e=JSON.parse(this.storage.getItem(z2))||[];if(e.length>0){const i=this.getSavedLocalNodes(),o=this.getSavedLabels();e.forEach(s=>{i.push({publicKey:s.publicKey,hidden:s.deleted,ip:null}),this.savedLocalNodes.set(s.publicKey,i[i.length-1]),s.deleted||this.savedVisibleLocalNodes.add(s.publicKey),o.push({id:s.publicKey,identifiedElementType:Xi.Node,label:s.label}),this.savedLabels.set(s.publicKey,o[o.length-1])}),this.saveLocalNodes(i),this.saveLabels(o),this.storage.removeItem(z2)}}setRefreshTime(e){this.setDataForHv(Um,e.toString()),this.currentRefreshTime=e,this.currentRefreshTimeSubject.next(this.currentRefreshTime)}getRefreshTimeObservable(){return this.currentRefreshTimeSubject.asObservable()}getRefreshTime(){return this.currentRefreshTime}includeVisibleLocalNodes(e,i){this.changeLocalNodesHiddenProperty(e,i,!1)}setLocalNodesAsHidden(e,i){this.changeLocalNodesHiddenProperty(e,i,!0)}changeLocalNodesHiddenProperty(e,i,o){if(e.length!==i.length)throw new Error("Invalid params");const s=new Map,a=new Map;e.forEach((_,E)=>{s.set(_,i[E]),a.set(_,i[E])});let l=!1;const d=this.getSavedLocalNodes();d.forEach(_=>{s.has(_.publicKey)&&(a.has(_.publicKey)&&a.delete(_.publicKey),_.ip!==s.get(_.publicKey)&&(_.ip=s.get(_.publicKey),l=!0,this.savedLocalNodes.set(_.publicKey,_)),_.hidden!==o&&(_.hidden=o,l=!0,this.savedLocalNodes.set(_.publicKey,_),o?this.savedVisibleLocalNodes.delete(_.publicKey):this.savedVisibleLocalNodes.add(_.publicKey)))}),a.forEach((_,E)=>{l=!0;const F={publicKey:E,hidden:o,ip:_};d.push(F),this.savedLocalNodes.set(E,F),o?this.savedVisibleLocalNodes.delete(E):this.savedVisibleLocalNodes.add(E)}),l&&this.saveLocalNodes(d)}getSavedLocalNodes(){return JSON.parse(this.getDataForHv($m))||[]}getSavedVisibleLocalNodes(){return this.savedVisibleLocalNodes}saveLocalNodes(e){this.setDataForHv($m,JSON.stringify(e))}getSavedLabels(){return JSON.parse(this.getDataForHv(Wm))||[]}saveLabels(e){this.setDataForHv(Wm,JSON.stringify(e))}saveLabel(e,i,o){if(i){let s=!1;const a=this.getSavedLabels().map(l=>(l.id===e&&l.identifiedElementType===o&&(s=!0,l.label=i,this.savedLabels.set(l.id,{label:l.label,id:l.id,identifiedElementType:l.identifiedElementType})),l));if(s)this.saveLabels(a);else{const l={label:i,id:e,identifiedElementType:o};a.push(l),this.savedLabels.set(e,l),this.saveLabels(a)}}else{this.savedLabels.has(e)&&this.savedLabels.delete(e);let s=!1;const a=this.getSavedLabels().filter(l=>l.id!==e||(s=!0,!1));s&&this.saveLabels(a)}}getDefaultLabel(e){return e?e.ip?e.ip:e.localPk.substr(0,8):""}getLabelInfo(e){return this.savedLabels.has(e)?this.savedLabels.get(e):null}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function _n(t){return null!=t&&"false"!=`${t}`}function So(t,n=0){return function Z7(t){return!isNaN(parseFloat(t))&&!isNaN(Number(t))}(t)?Number(t):n}function Gm(t){return Array.isArray(t)?t:[t]}function Qi(t){return null==t?"":"string"==typeof t?t:`${t}px`}function la(t){return t instanceof vt?t.nativeElement:t}function kh(t,n,e,i){return O(e)&&(i=e,e=void 0),i?kh(t,n,e).pipe(ke(o=>M(o)?i(...o):i(o))):new he(o=>{U2(t,n,function s(a){o.next(arguments.length>1?Array.prototype.slice.call(arguments):a)},o,e)})}function U2(t,n,e,i,o){let s;if(function Q7(t){return t&&"function"==typeof t.addEventListener&&"function"==typeof t.removeEventListener}(t)){const a=t;t.addEventListener(n,e,o),s=()=>a.removeEventListener(n,e,o)}else if(function J7(t){return t&&"function"==typeof t.on&&"function"==typeof t.off}(t)){const a=t;t.on(n,e),s=()=>a.off(n,e)}else if(function X7(t){return t&&"function"==typeof t.addListener&&"function"==typeof t.removeListener}(t)){const a=t;t.addListener(n,e),s=()=>a.removeListener(n,e)}else{if(!t||!t.length)throw new TypeError("Invalid event target");for(let a=0,l=t.length;a0?super.requestAsyncId(n,e,i):(n.actions.push(this),n.scheduled||(n.scheduled=requestAnimationFrame(()=>n.flush(null))))}recycleAsyncId(n,e,i=0){if(null!==i&&i>0||null===i&&this.delay>0)return super.recycleAsyncId(n,e,i);0===n.actions.length&&(cancelAnimationFrame(e),n.scheduled=void 0)}});let i9=1;const r9=Promise.resolve(),qm={};function W2(t){return t in qm&&(delete qm[t],!0)}const $2={setImmediate(t){const n=i9++;return qm[n]=!0,r9.then(()=>W2(n)&&t()),n},clearImmediate(t){W2(t)}},E0=new class s9 extends ss{flush(n){this.active=!0,this.scheduled=void 0;const{actions:e}=this;let i,o=-1,s=e.length;n=n||e.shift();do{if(i=n.execute(n.state,n.delay))break}while(++o0?super.requestAsyncId(n,e,i):(n.actions.push(this),n.scheduled||(n.scheduled=$2.setImmediate(n.flush.bind(n,null))))}recycleAsyncId(n,e,i=0){if(null!==i&&i>0||null===i&&this.delay>0)return super.recycleAsyncId(n,e,i);0===n.actions.length&&($2.clearImmediate(e),n.scheduled=void 0)}});class l9{constructor(n){this.durationSelector=n}call(n,e){return e.subscribe(new c9(n,this.durationSelector))}}class c9 extends Me{constructor(n,e){super(n),this.durationSelector=e,this.hasValue=!1}_next(n){if(this.value=n,this.hasValue=!0,!this.throttled){let e;try{const{durationSelector:o}=this;e=o(n)}catch(o){return this.destination.error(o)}const i=Ie(e,new be(this));!i||i.closed?this.clearThrottle():this.add(this.throttled=i)}}clearThrottle(){const{value:n,hasValue:e,throttled:i}=this;i&&(this.remove(i),this.throttled=void 0,i.unsubscribe()),e&&(this.value=void 0,this.hasValue=!1,this.destination.next(n))}notifyNext(){this.clearThrottle()}notifyComplete(){this.clearThrottle()}}function I0(t){return!M(t)&&t-parseFloat(t)+1>=0}function Sh(t=0,n,e){let i=-1;return I0(n)?i=Number(n)<1?1:Number(n):Se(n)&&(e=n),Se(e)||(e=Cd),new he(o=>{const s=I0(t)?t:+t-e.now();return e.schedule(d9,s,{index:0,period:i,subscriber:o})})}function d9(t){const{index:n,period:e,subscriber:i}=t;if(i.next(n),!i.closed){if(-1===e)return i.complete();t.index=n+1,this.schedule(t,e)}}function G2(t,n=Cd){return function a9(t){return function(e){return e.lift(new l9(t))}}(()=>Sh(t,n))}let P0;try{P0=typeof Intl<"u"&&Intl.v8BreakIterator}catch{P0=!1}let xd,ui=(()=>{class t{constructor(e){this._platformId=e,this.isBrowser=this._platformId?function pH(t){return t===uD}(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!P0)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return t.\u0275fac=function(e){return new(e||t)(we(Oa))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const q2=["color","button","checkbox","date","datetime-local","email","file","hidden","image","month","number","password","radio","range","reset","search","submit","tel","text","time","url","week"];function K2(){if(xd)return xd;if("object"!=typeof document||!document)return xd=new Set(q2),xd;let t=document.createElement("input");return xd=new Set(q2.filter(n=>(t.setAttribute("type",n),t.type===n))),xd}let Dh,$l,O0;function Za(t){return function u9(){if(null==Dh&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>Dh=!0}))}finally{Dh=Dh||!1}return Dh}()?t:!!t.capture}function h9(){if(null==$l){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return $l=!1,$l;if("scrollBehavior"in document.documentElement.style)$l=!0;else{const t=Element.prototype.scrollTo;$l=!!t&&!/\{\s*\[native code\]\s*\}/.test(t.toString())}}return $l}function A0(){let t=typeof document<"u"&&document?document.activeElement:null;for(;t&&t.shadowRoot;){const n=t.shadowRoot.activeElement;if(n===t)break;t=n}return t}function Xa(t){return t.composedPath?t.composedPath()[0]:t.target}function F0(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const m9=new Re("cdk-dir-doc",{providedIn:"root",factory:function g9(){return Qe(It)}}),_9=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let Do=(()=>{class t{constructor(e){this.value="ltr",this.change=new ht,e&&(this.value=function b9(t){const n=t?.toLowerCase()||"";return"auto"===n&&typeof navigator<"u"&&navigator?.language?_9.test(navigator.language)?"rtl":"ltr":"rtl"===n?"rtl":"ltr"}((e.body?e.body.dir:null)||(e.documentElement?e.documentElement.dir:null)||"ltr"))}ngOnDestroy(){this.change.complete()}}return t.\u0275fac=function(e){return new(e||t)(we(m9,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),Th=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})(),Z2=(()=>{class t{constructor(e,i,o){this._ngZone=e,this._platform=i,this._scrolled=new J,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=o}register(e){this.scrollContainers.has(e)||this.scrollContainers.set(e,e.elementScrolled().subscribe(()=>this._scrolled.next(e)))}deregister(e){const i=this.scrollContainers.get(e);i&&(i.unsubscribe(),this.scrollContainers.delete(e))}scrolled(e=20){return this._platform.isBrowser?new he(i=>{this._globalSubscription||this._addGlobalListener();const o=e>0?this._scrolled.pipe(G2(e)).subscribe(i):this._scrolled.subscribe(i);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):$e()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((e,i)=>this.deregister(i)),this._scrolled.complete()}ancestorScrolled(e,i){const o=this.getAncestorScrollContainers(e);return this.scrolled(i).pipe(_i(s=>!s||o.indexOf(s)>-1))}getAncestorScrollContainers(e){const i=[];return this.scrollContainers.forEach((o,s)=>{this._scrollableContainsElement(s,e)&&i.push(s)}),i}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(e,i){let o=la(i),s=e.getElementRef().nativeElement;do{if(o==s)return!0}while(o=o.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>kh(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return t.\u0275fac=function(e){return new(e||t)(we(ft),we(ui),we(It,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),kd=(()=>{class t{constructor(e,i,o){this._platform=e,this._change=new J,this._changeListener=s=>{this._change.next(s)},this._document=o,i.runOutsideAngular(()=>{if(e.isBrowser){const s=this._getWindow();s.addEventListener("resize",this._changeListener),s.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const e=this._getWindow();e.removeEventListener("resize",this._changeListener),e.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const e={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),e}getViewportRect(){const e=this.getViewportScrollPosition(),{width:i,height:o}=this.getViewportSize();return{top:e.top,left:e.left,bottom:e.top+o,right:e.left+i,height:o,width:i}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const e=this._document,i=this._getWindow(),o=e.documentElement,s=o.getBoundingClientRect();return{top:-s.top||e.body.scrollTop||i.scrollY||o.scrollTop||0,left:-s.left||e.body.scrollLeft||i.scrollX||o.scrollLeft||0}}change(e=20){return e>0?this._change.pipe(G2(e)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const e=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:e.innerWidth,height:e.innerHeight}:{width:0,height:0}}}return t.\u0275fac=function(e){return new(e||t)(we(ui),we(ft),we(It,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),Lh=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})(),X2=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Th,Lh,Th,Lh]}),t})();function Hn(t){return n=>n.lift(new M9(t))}class M9{constructor(n){this.notifier=n}call(n,e){const i=new w9(n),o=Ie(this.notifier,new be(i));return o&&!i.seenValue?(i.add(o),e.subscribe(i)):i}}class w9 extends Me{constructor(n){super(n),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}class x9{constructor(n,e){this.predicate=n,this.inclusive=e}call(n,e){return e.subscribe(new k9(n,this.predicate,this.inclusive))}}class k9 extends A{constructor(n,e,i){super(n),this.predicate=e,this.inclusive=i,this.index=0}_next(n){const e=this.destination;let i;try{i=this.predicate(n,this.index++)}catch(o){return void e.error(o)}this.nextOrComplete(n,i)}nextOrComplete(n,e){const i=this.destination;e?i.next(n):(this.inclusive&&i.next(n),i.complete())}}class R0{attach(n){return this._attachedHost=n,n.attach(this)}detach(){let n=this._attachedHost;null!=n&&(this._attachedHost=null,n.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(n){this._attachedHost=n}}class Sd extends R0{constructor(n,e,i,o,s){super(),this.component=n,this.viewContainerRef=e,this.injector=i,this.componentFactoryResolver=o,this.projectableNodes=s}}class Gl extends R0{constructor(n,e,i,o){super(),this.templateRef=n,this.viewContainerRef=e,this.context=i,this.injector=o}get origin(){return this.templateRef.elementRef}attach(n,e=this.context){return this.context=e,super.attach(n)}detach(){return this.context=void 0,super.detach()}}class S9 extends R0{constructor(n){super(),this.element=n instanceof vt?n.nativeElement:n}}class Zm{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(n){return n instanceof Sd?(this._attachedPortal=n,this.attachComponentPortal(n)):n instanceof Gl?(this._attachedPortal=n,this.attachTemplatePortal(n)):this.attachDomPortal&&n instanceof S9?(this._attachedPortal=n,this.attachDomPortal(n)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(n){this._disposeFn=n}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class D9 extends Zm{constructor(n,e,i,o,s){super(),this.outletElement=n,this._componentFactoryResolver=e,this._appRef=i,this._defaultInjector=o,this.attachDomPortal=a=>{const l=a.element,d=this._document.createComment("dom-portal");l.parentNode.insertBefore(d,l),this.outletElement.appendChild(l),this._attachedPortal=a,super.setDisposeFn(()=>{d.parentNode&&d.parentNode.replaceChild(l,d)})},this._document=s}attachComponentPortal(n){const i=(n.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(n.component);let o;return n.viewContainerRef?(o=n.viewContainerRef.createComponent(i,n.viewContainerRef.length,n.injector||n.viewContainerRef.injector,n.projectableNodes||void 0),this.setDisposeFn(()=>o.destroy())):(o=i.create(n.injector||this._defaultInjector||Si.NULL),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(o.hostView),o.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(o)),this._attachedPortal=n,o}attachTemplatePortal(n){let e=n.viewContainerRef,i=e.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return i.rootNodes.forEach(o=>this.outletElement.appendChild(o)),i.detectChanges(),this.setDisposeFn(()=>{let o=e.indexOf(i);-1!==o&&e.remove(o)}),this._attachedPortal=n,i}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(n){return n.hostView.rootNodes[0]}}let T9=(()=>{class t extends Gl{constructor(e,i){super(e,i)}}return t.\u0275fac=function(e){return new(e||t)(Y(mr),Y(rr))},t.\u0275dir=Ke({type:t,selectors:[["","cdkPortal",""]],exportAs:["cdkPortal"],features:[nt]}),t})(),Ja=(()=>{class t extends Zm{constructor(e,i,o){super(),this._componentFactoryResolver=e,this._viewContainerRef=i,this._isInitialized=!1,this.attached=new ht,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");s.setAttachedHost(this),a.parentNode.insertBefore(l,a),this._getRootNode().appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}get portal(){return this._attachedPortal}set portal(e){this.hasAttached()&&!e&&!this._isInitialized||(this.hasAttached()&&super.detach(),e&&super.attach(e),this._attachedPortal=e||null)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(e){e.setAttachedHost(this);const i=null!=e.viewContainerRef?e.viewContainerRef:this._viewContainerRef,s=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component),a=i.createComponent(s,i.length,e.injector||i.injector,e.projectableNodes||void 0);return i!==this._viewContainerRef&&this._getRootNode().appendChild(a.hostView.rootNodes[0]),super.setDisposeFn(()=>a.destroy()),this._attachedPortal=e,this._attachedRef=a,this.attached.emit(a),a}attachTemplatePortal(e){e.setAttachedHost(this);const i=this._viewContainerRef.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=e,this._attachedRef=i,this.attached.emit(i),i}_getRootNode(){const e=this._viewContainerRef.element.nativeElement;return e.nodeType===e.ELEMENT_NODE?e:e.parentNode}}return t.\u0275fac=function(e){return new(e||t)(Y(Tl),Y(rr),Y(It))},t.\u0275dir=Ke({type:t,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[nt]}),t})(),Dd=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})();function Fs(t,...n){return n.length?n.some(e=>t[e]):t.altKey||t.shiftKey||t.ctrlKey||t.metaKey}const Q2=h9();class j9{constructor(n,e){this._viewportRuler=n,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=e}attach(){}enable(){if(this._canBeEnabled()){const n=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=n.style.left||"",this._previousHTMLStyles.top=n.style.top||"",n.style.left=Qi(-this._previousScrollPosition.left),n.style.top=Qi(-this._previousScrollPosition.top),n.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const n=this._document.documentElement,i=n.style,o=this._document.body.style,s=i.scrollBehavior||"",a=o.scrollBehavior||"";this._isEnabled=!1,i.left=this._previousHTMLStyles.left,i.top=this._previousHTMLStyles.top,n.classList.remove("cdk-global-scrollblock"),Q2&&(i.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),Q2&&(i.scrollBehavior=s,o.scrollBehavior=a)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const e=this._document.body,i=this._viewportRuler.getViewportSize();return e.scrollHeight>i.height||e.scrollWidth>i.width}}class z9{constructor(n,e,i,o){this._scrollDispatcher=n,this._ngZone=e,this._viewportRuler=i,this._config=o,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(n){this._overlayRef=n}enable(){if(this._scrollSubscription)return;const n=this._scrollDispatcher.scrolled(0).pipe(_i(e=>!e||!this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=n.subscribe(()=>{const e=this._viewportRuler.getViewportScrollPosition().top;Math.abs(e-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=n.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class eL{enable(){}disable(){}attach(){}}function N0(t,n){return n.some(e=>t.bottome.bottom||t.righte.right)}function tL(t,n){return n.some(e=>t.tope.bottom||t.lefte.right)}class U9{constructor(n,e,i,o){this._scrollDispatcher=n,this._viewportRuler=e,this._ngZone=i,this._config=o,this._scrollSubscription=null}attach(n){this._overlayRef=n}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const e=this._overlayRef.overlayElement.getBoundingClientRect(),{width:i,height:o}=this._viewportRuler.getViewportSize();N0(e,[{width:i,height:o,bottom:o,right:i,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let W9=(()=>{class t{constructor(e,i,o,s){this._scrollDispatcher=e,this._viewportRuler=i,this._ngZone=o,this.noop=()=>new eL,this.close=a=>new z9(this._scrollDispatcher,this._ngZone,this._viewportRuler,a),this.block=()=>new j9(this._viewportRuler,this._document),this.reposition=a=>new U9(this._scrollDispatcher,this._viewportRuler,this._ngZone,a),this._document=s}}return t.\u0275fac=function(e){return new(e||t)(we(Z2),we(kd),we(ft),we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class Oh{constructor(n){if(this.scrollStrategy=new eL,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,n){const e=Object.keys(n);for(const i of e)void 0!==n[i]&&(this[i]=n[i])}}}class $9{constructor(n,e){this.connectionPair=n,this.scrollableViewProperties=e}}let nL=(()=>{class t{constructor(e){this._attachedOverlays=[],this._document=e}ngOnDestroy(){this.detach()}add(e){this.remove(e),this._attachedOverlays.push(e)}remove(e){const i=this._attachedOverlays.indexOf(e);i>-1&&this._attachedOverlays.splice(i,1),0===this._attachedOverlays.length&&this.detach()}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),G9=(()=>{class t extends nL{constructor(e,i){super(e),this._ngZone=i,this._keydownListener=o=>{const s=this._attachedOverlays;for(let a=s.length-1;a>-1;a--)if(s[a]._keydownEvents.observers.length>0){const l=s[a]._keydownEvents;this._ngZone?this._ngZone.run(()=>l.next(o)):l.next(o);break}}}add(e){super.add(e),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(ft,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),q9=(()=>{class t extends nL{constructor(e,i,o){super(e),this._platform=i,this._ngZone=o,this._cursorStyleIsSet=!1,this._pointerDownListener=s=>{this._pointerDownEventTarget=Xa(s)},this._clickListener=s=>{const a=Xa(s),l="click"===s.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:a;this._pointerDownEventTarget=null;const d=this._attachedOverlays.slice();for(let _=d.length-1;_>-1;_--){const E=d[_];if(E._outsidePointerEvents.observers.length<1||!E.hasAttached())continue;if(E.overlayElement.contains(a)||E.overlayElement.contains(l))break;const F=E._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>F.next(s)):F.next(s)}}}add(e){if(super.add(e),!this._isAttached){const i=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(i)):this._addEventListeners(i),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=i.style.cursor,i.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const e=this._document.body;e.removeEventListener("pointerdown",this._pointerDownListener,!0),e.removeEventListener("click",this._clickListener,!0),e.removeEventListener("auxclick",this._clickListener,!0),e.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(e.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(e){e.addEventListener("pointerdown",this._pointerDownListener,!0),e.addEventListener("click",this._clickListener,!0),e.addEventListener("auxclick",this._clickListener,!0),e.addEventListener("contextmenu",this._clickListener,!0)}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(ui),we(ft,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),tg=(()=>{class t{constructor(e,i){this._platform=i,this._document=e}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const e="cdk-overlay-container";if(this._platform.isBrowser||F0()){const o=this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);for(let s=0;sthis._backdropClick.next(F),this._backdropTransitionendHandler=F=>{this._disposeBackdrop(F.target)},this._keydownEvents=new J,this._outsidePointerEvents=new J,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(n){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const e=this._portalOutlet.attach(n);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(Kn(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),"function"==typeof e?.onDestroy&&e.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),e}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const n=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),n}dispose(){const n=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,n&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(n){n!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=n,this.hasAttached()&&(n.attach(this),this.updatePosition()))}updateSize(n){this._config={...this._config,...n},this._updateElementSize()}setDirection(n){this._config={...this._config,direction:n},this._updateElementDirection()}addPanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!0)}removePanelClass(n){this._pane&&this._toggleClasses(this._pane,n,!1)}getDirection(){const n=this._config.direction;return n?"string"==typeof n?n:n.value:"ltr"}updateScrollStrategy(n){n!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=n,this.hasAttached()&&(n.attach(this),n.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const n=this._pane.style;n.width=Qi(this._config.width),n.height=Qi(this._config.height),n.minWidth=Qi(this._config.minWidth),n.minHeight=Qi(this._config.minHeight),n.maxWidth=Qi(this._config.maxWidth),n.maxHeight=Qi(this._config.maxHeight)}_togglePointerEvents(n){this._pane.style.pointerEvents=n?"":"none"}_attachBackdrop(){const n="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(n)})}):this._backdropElement.classList.add(n)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const n=this._backdropElement;if(n){if(this._animationsDisabled)return void this._disposeBackdrop(n);n.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{n.addEventListener("transitionend",this._backdropTransitionendHandler)}),n.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(n)},500))}}_toggleClasses(n,e,i){const o=Gm(e||[]).filter(s=>!!s);o.length&&(i?n.classList.add(...o):n.classList.remove(...o))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const n=this._ngZone.onStable.pipe(Hn(bt(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),n.unsubscribe())})})}_disposeScrollStrategy(){const n=this._scrollStrategy;n&&(n.disable(),n.detach&&n.detach())}_disposeBackdrop(n){n&&(n.removeEventListener("click",this._backdropClickHandler),n.removeEventListener("transitionend",this._backdropTransitionendHandler),n.remove(),this._backdropElement===n&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const iL="cdk-overlay-connected-position-bounding-box",K9=/([A-Za-z%]+)$/;class Z9{get positions(){return this._preferredPositions}constructor(n,e,i,o,s){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=s,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new J,this._resizeSubscription=T.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(n)}attach(n){this._validatePositions(),n.hostElement.classList.add(iL),this._overlayRef=n,this._boundingBox=n.hostElement,this._pane=n.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const n=this._originRect,e=this._overlayRect,i=this._viewportRect,o=this._containerRect,s=[];let a;for(let l of this._preferredPositions){let d=this._getOriginPoint(n,o,l),_=this._getOverlayPoint(d,e,l),E=this._getOverlayFit(_,e,i,l);if(E.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(l,d);this._canFitWithFlexibleDimensions(E,_,i)?s.push({position:l,origin:d,overlayRect:e,boundingBoxRect:this._calculateBoundingBoxRect(d,l)}):(!a||a.overlayFit.visibleAread&&(d=E,l=_)}return this._isPushed=!1,void this._applyPosition(l.position,l.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(a.position,a.originPoint);this._applyPosition(a.position,a.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&ql(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(iL),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const n=this._lastPosition;if(n){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._getOriginPoint(this._originRect,this._containerRect,n);this._applyPosition(n,e)}else this.apply()}withScrollableContainers(n){return this._scrollables=n,this}withPositions(n){return this._preferredPositions=n,-1===n.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(n){return this._viewportMargin=n,this}withFlexibleDimensions(n=!0){return this._hasFlexibleDimensions=n,this}withGrowAfterOpen(n=!0){return this._growAfterOpen=n,this}withPush(n=!0){return this._canPush=n,this}withLockedPosition(n=!0){return this._positionLocked=n,this}setOrigin(n){return this._origin=n,this}withDefaultOffsetX(n){return this._offsetX=n,this}withDefaultOffsetY(n){return this._offsetY=n,this}withTransformOriginOn(n){return this._transformOriginSelector=n,this}_getOriginPoint(n,e,i){let o,s;if("center"==i.originX)o=n.left+n.width/2;else{const a=this._isRtl()?n.right:n.left,l=this._isRtl()?n.left:n.right;o="start"==i.originX?a:l}return e.left<0&&(o-=e.left),s="center"==i.originY?n.top+n.height/2:"top"==i.originY?n.top:n.bottom,e.top<0&&(s-=e.top),{x:o,y:s}}_getOverlayPoint(n,e,i){let o,s;return o="center"==i.overlayX?-e.width/2:"start"===i.overlayX?this._isRtl()?-e.width:0:this._isRtl()?0:-e.width,s="center"==i.overlayY?-e.height/2:"top"==i.overlayY?0:-e.height,{x:n.x+o,y:n.y+s}}_getOverlayFit(n,e,i,o){const s=oL(e);let{x:a,y:l}=n,d=this._getOffset(o,"x"),_=this._getOffset(o,"y");d&&(a+=d),_&&(l+=_);let G=0-l,ie=l+s.height-i.height,_e=this._subtractOverflows(s.width,0-a,a+s.width-i.width),Ce=this._subtractOverflows(s.height,G,ie),Ae=_e*Ce;return{visibleArea:Ae,isCompletelyWithinViewport:s.width*s.height===Ae,fitsInViewportVertically:Ce===s.height,fitsInViewportHorizontally:_e==s.width}}_canFitWithFlexibleDimensions(n,e,i){if(this._hasFlexibleDimensions){const o=i.bottom-e.y,s=i.right-e.x,a=rL(this._overlayRef.getConfig().minHeight),l=rL(this._overlayRef.getConfig().minWidth);return(n.fitsInViewportVertically||null!=a&&a<=o)&&(n.fitsInViewportHorizontally||null!=l&&l<=s)}return!1}_pushOverlayOnScreen(n,e,i){if(this._previousPushAmount&&this._positionLocked)return{x:n.x+this._previousPushAmount.x,y:n.y+this._previousPushAmount.y};const o=oL(e),s=this._viewportRect,a=Math.max(n.x+o.width-s.width,0),l=Math.max(n.y+o.height-s.height,0),d=Math.max(s.top-i.top-n.y,0),_=Math.max(s.left-i.left-n.x,0);let E=0,F=0;return E=o.width<=s.width?_||-a:n.x_e&&!this._isInitialRender&&!this._growAfterOpen&&(a=n.y-_e/2)}if("end"===e.overlayX&&!o||"start"===e.overlayX&&o)G=i.width-n.x+this._viewportMargin,E=n.x-this._viewportMargin;else if("start"===e.overlayX&&!o||"end"===e.overlayX&&o)F=n.x,E=i.right-n.x;else{const ie=Math.min(i.right-n.x+i.left,n.x),_e=this._lastBoundingBoxSize.width;E=2*ie,F=n.x-ie,E>_e&&!this._isInitialRender&&!this._growAfterOpen&&(F=n.x-_e/2)}return{top:a,left:F,bottom:l,right:G,width:E,height:s}}_setBoundingBoxStyles(n,e){const i=this._calculateBoundingBoxRect(n,e);!this._isInitialRender&&!this._growAfterOpen&&(i.height=Math.min(i.height,this._lastBoundingBoxSize.height),i.width=Math.min(i.width,this._lastBoundingBoxSize.width));const o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{const s=this._overlayRef.getConfig().maxHeight,a=this._overlayRef.getConfig().maxWidth;o.height=Qi(i.height),o.top=Qi(i.top),o.bottom=Qi(i.bottom),o.width=Qi(i.width),o.left=Qi(i.left),o.right=Qi(i.right),o.alignItems="center"===e.overlayX?"center":"end"===e.overlayX?"flex-end":"flex-start",o.justifyContent="center"===e.overlayY?"center":"bottom"===e.overlayY?"flex-end":"flex-start",s&&(o.maxHeight=Qi(s)),a&&(o.maxWidth=Qi(a))}this._lastBoundingBoxSize=i,ql(this._boundingBox.style,o)}_resetBoundingBoxStyles(){ql(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){ql(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(n,e){const i={},o=this._hasExactPosition(),s=this._hasFlexibleDimensions,a=this._overlayRef.getConfig();if(o){const E=this._viewportRuler.getViewportScrollPosition();ql(i,this._getExactOverlayY(e,n,E)),ql(i,this._getExactOverlayX(e,n,E))}else i.position="static";let l="",d=this._getOffset(e,"x"),_=this._getOffset(e,"y");d&&(l+=`translateX(${d}px) `),_&&(l+=`translateY(${_}px)`),i.transform=l.trim(),a.maxHeight&&(o?i.maxHeight=Qi(a.maxHeight):s&&(i.maxHeight="")),a.maxWidth&&(o?i.maxWidth=Qi(a.maxWidth):s&&(i.maxWidth="")),ql(this._pane.style,i)}_getExactOverlayY(n,e,i){let o={top:"",bottom:""},s=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),"bottom"===n.overlayY?o.bottom=this._document.documentElement.clientHeight-(s.y+this._overlayRect.height)+"px":o.top=Qi(s.y),o}_getExactOverlayX(n,e,i){let a,o={left:"",right:""},s=this._getOverlayPoint(e,this._overlayRect,n);return this._isPushed&&(s=this._pushOverlayOnScreen(s,this._overlayRect,i)),a=this._isRtl()?"end"===n.overlayX?"left":"right":"end"===n.overlayX?"right":"left","right"===a?o.right=this._document.documentElement.clientWidth-(s.x+this._overlayRect.width)+"px":o.left=Qi(s.x),o}_getScrollVisibility(){const n=this._getOriginRect(),e=this._pane.getBoundingClientRect(),i=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:tL(n,i),isOriginOutsideView:N0(n,i),isOverlayClipped:tL(e,i),isOverlayOutsideView:N0(e,i)}}_subtractOverflows(n,...e){return e.reduce((i,o)=>i-Math.max(o,0),n)}_getNarrowedViewportRect(){const n=this._document.documentElement.clientWidth,e=this._document.documentElement.clientHeight,i=this._viewportRuler.getViewportScrollPosition();return{top:i.top+this._viewportMargin,left:i.left+this._viewportMargin,right:i.left+n-this._viewportMargin,bottom:i.top+e-this._viewportMargin,width:n-2*this._viewportMargin,height:e-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(n,e){return"x"===e?null==n.offsetX?this._offsetX:n.offsetX:null==n.offsetY?this._offsetY:n.offsetY}_validatePositions(){}_addPanelClasses(n){this._pane&&Gm(n).forEach(e=>{""!==e&&-1===this._appliedPanelClasses.indexOf(e)&&(this._appliedPanelClasses.push(e),this._pane.classList.add(e))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(n=>{this._pane.classList.remove(n)}),this._appliedPanelClasses=[])}_getOriginRect(){const n=this._origin;if(n instanceof vt)return n.nativeElement.getBoundingClientRect();if(n instanceof Element)return n.getBoundingClientRect();const e=n.width||0,i=n.height||0;return{top:n.y,bottom:n.y+i,left:n.x,right:n.x+e,height:i,width:e}}}function ql(t,n){for(let e in n)n.hasOwnProperty(e)&&(t[e]=n[e]);return t}function rL(t){if("number"!=typeof t&&null!=t){const[n,e]=t.split(K9);return e&&"px"!==e?null:parseFloat(n)}return t||null}function oL(t){return{top:Math.floor(t.top),right:Math.floor(t.right),bottom:Math.floor(t.bottom),left:Math.floor(t.left),width:Math.floor(t.width),height:Math.floor(t.height)}}const sL="cdk-global-overlay-wrapper";class X9{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(n){const e=n.getConfig();this._overlayRef=n,this._width&&!e.width&&n.updateSize({width:this._width}),this._height&&!e.height&&n.updateSize({height:this._height}),n.hostElement.classList.add(sL),this._isDisposed=!1}top(n=""){return this._bottomOffset="",this._topOffset=n,this._alignItems="flex-start",this}left(n=""){return this._xOffset=n,this._xPosition="left",this}bottom(n=""){return this._topOffset="",this._bottomOffset=n,this._alignItems="flex-end",this}right(n=""){return this._xOffset=n,this._xPosition="right",this}start(n=""){return this._xOffset=n,this._xPosition="start",this}end(n=""){return this._xOffset=n,this._xPosition="end",this}width(n=""){return this._overlayRef?this._overlayRef.updateSize({width:n}):this._width=n,this}height(n=""){return this._overlayRef?this._overlayRef.updateSize({height:n}):this._height=n,this}centerHorizontally(n=""){return this.left(n),this._xPosition="center",this}centerVertically(n=""){return this.top(n),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement.style,i=this._overlayRef.getConfig(),{width:o,height:s,maxWidth:a,maxHeight:l}=i,d=!("100%"!==o&&"100vw"!==o||a&&"100%"!==a&&"100vw"!==a),_=!("100%"!==s&&"100vh"!==s||l&&"100%"!==l&&"100vh"!==l),E=this._xPosition,F=this._xOffset,G="rtl"===this._overlayRef.getConfig().direction;let ie="",_e="",Ce="";d?Ce="flex-start":"center"===E?(Ce="center",G?_e=F:ie=F):G?"left"===E||"end"===E?(Ce="flex-end",ie=F):("right"===E||"start"===E)&&(Ce="flex-start",_e=F):"left"===E||"start"===E?(Ce="flex-start",ie=F):("right"===E||"end"===E)&&(Ce="flex-end",_e=F),n.position=this._cssPosition,n.marginLeft=d?"0":ie,n.marginTop=_?"0":this._topOffset,n.marginBottom=this._bottomOffset,n.marginRight=d?"0":_e,e.justifyContent=Ce,e.alignItems=_?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const n=this._overlayRef.overlayElement.style,e=this._overlayRef.hostElement,i=e.style;e.classList.remove(sL),i.justifyContent=i.alignItems=n.marginTop=n.marginBottom=n.marginLeft=n.marginRight=n.position="",this._overlayRef=null,this._isDisposed=!0}}let J9=(()=>{class t{constructor(e,i,o,s){this._viewportRuler=e,this._document=i,this._platform=o,this._overlayContainer=s}global(){return new X9}flexibleConnectedTo(e){return new Z9(e,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return t.\u0275fac=function(e){return new(e||t)(we(kd),we(It),we(ui),we(tg))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),Q9=0,io=(()=>{class t{constructor(e,i,o,s,a,l,d,_,E,F,G,ie){this.scrollStrategies=e,this._overlayContainer=i,this._componentFactoryResolver=o,this._positionBuilder=s,this._keyboardDispatcher=a,this._injector=l,this._ngZone=d,this._document=_,this._directionality=E,this._location=F,this._outsideClickDispatcher=G,this._animationsModuleType=ie}create(e){const i=this._createHostElement(),o=this._createPaneElement(i),s=this._createPortalOutlet(o),a=new Oh(e);return a.direction=a.direction||this._directionality.value,new Ah(s,i,o,a,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(e){const i=this._document.createElement("div");return i.id="cdk-overlay-"+Q9++,i.classList.add("cdk-overlay-pane"),e.appendChild(i),i}_createHostElement(){const e=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(e),e}_createPortalOutlet(e){return this._appRef||(this._appRef=this._injector.get(Na)),new D9(e,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return t.\u0275fac=function(e){return new(e||t)(we(W9),we(tg),we(Tl),we(J9),we(G9),we(Si),we(ft),we(It),we(Do),we(Xu),we(q9),we(Ri,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const ez=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],aL=new Re("cdk-connected-overlay-scroll-strategy");let Y0=(()=>{class t{constructor(e){this.elementRef=e}}return t.\u0275fac=function(e){return new(e||t)(Y(vt))},t.\u0275dir=Ke({type:t,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"],standalone:!0}),t})(),lL=(()=>{class t{get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=_n(e)}get lockPosition(){return this._lockPosition}set lockPosition(e){this._lockPosition=_n(e)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(e){this._flexibleDimensions=_n(e)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(e){this._growAfterOpen=_n(e)}get push(){return this._push}set push(e){this._push=_n(e)}constructor(e,i,o,s,a){this._overlay=e,this._dir=a,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=T.EMPTY,this._attachSubscription=T.EMPTY,this._detachSubscription=T.EMPTY,this._positionSubscription=T.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new ht,this.positionChange=new ht,this.attach=new ht,this.detach=new ht,this.overlayKeydown=new ht,this.overlayOutsideClick=new ht,this._templatePortal=new Gl(i,o),this._scrollStrategyFactory=s,this.scrollStrategy=this._scrollStrategyFactory()}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(e){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),e.origin&&this.open&&this._position.apply()),e.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=ez);const e=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=e.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=e.detachments().subscribe(()=>this.detach.emit()),e.keydownEvents().subscribe(i=>{this.overlayKeydown.next(i),27===i.keyCode&&!this.disableClose&&!Fs(i)&&(i.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(i=>{this.overlayOutsideClick.next(i)})}_buildConfig(){const e=this._position=this.positionStrategy||this._createPositionStrategy(),i=new Oh({direction:this._dir,positionStrategy:e,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(i.width=this.width),(this.height||0===this.height)&&(i.height=this.height),(this.minWidth||0===this.minWidth)&&(i.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(i.minHeight=this.minHeight),this.backdropClass&&(i.backdropClass=this.backdropClass),this.panelClass&&(i.panelClass=this.panelClass),i}_updatePositionStrategy(e){const i=this.positions.map(o=>({originX:o.originX,originY:o.originY,overlayX:o.overlayX,overlayY:o.overlayY,offsetX:o.offsetX||this.offsetX,offsetY:o.offsetY||this.offsetY,panelClass:o.panelClass||void 0}));return e.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const e=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(e),e}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof Y0?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(e=>{this.backdropClick.emit(e)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function C9(t,n=!1){return e=>e.lift(new x9(t,n))}(()=>this.positionChange.observers.length>0)).subscribe(e=>{this.positionChange.emit(e),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(io),Y(mr),Y(rr),Y(aL),Y(Do,8))},t.\u0275dir=Ke({type:t,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:["cdkConnectedOverlayOrigin","origin"],positions:["cdkConnectedOverlayPositions","positions"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],standalone:!0,features:[Gi]}),t})();const nz={provide:aL,deps:[io],useFactory:function tz(t){return()=>t.scrollStrategies.reposition()}};let Td=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[io,nz],imports:[Th,Dd,X2,X2]}),t})();function H0(t,n=Cd){return e=>e.lift(new iz(t,n))}class iz{constructor(n,e){this.dueTime=n,this.scheduler=e}call(n,e){return e.subscribe(new rz(n,this.dueTime,this.scheduler))}}class rz extends A{constructor(n,e,i){super(n),this.dueTime=e,this.scheduler=i,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}_next(n){this.clearDebounce(),this.lastValue=n,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(oz,this.dueTime,this))}_complete(){this.debouncedNext(),this.destination.complete()}debouncedNext(){if(this.clearDebounce(),this.hasValue){const{lastValue:n}=this;this.lastValue=null,this.hasValue=!1,this.destination.next(n)}}clearDebounce(){const n=this.debouncedSubscription;null!==n&&(this.remove(n),n.unsubscribe(),this.debouncedSubscription=null)}}function oz(t){t.debouncedNext()}function B0(t){return n=>n.lift(new sz(t))}class sz{constructor(n){this.total=n}call(n,e){return e.subscribe(new az(n,this.total))}}class az extends A{constructor(n,e){super(n),this.total=e,this.count=0}_next(n){++this.count>this.total&&this.destination.next(n)}}function V0(t,n){return e=>e.lift(new lz(t,n))}class lz{constructor(n,e){this.compare=n,this.keySelector=e}call(n,e){return e.subscribe(new cz(n,this.compare,this.keySelector))}}class cz extends A{constructor(n,e,i){super(n),this.keySelector=i,this.hasKey=!1,"function"==typeof e&&(this.compare=e)}compare(n,e){return n===e}_next(n){let e;try{const{keySelector:o}=this;e=o?o(n):n}catch(o){return this.destination.error(o)}let i=!1;if(this.hasKey)try{const{compare:o}=this;i=o(this.key,e)}catch(o){return this.destination.error(o)}else this.hasKey=!0;i||(this.key=e,this.destination.next(n))}}let cL=(()=>{class t{create(e){return typeof MutationObserver>"u"?null:new MutationObserver(e)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),dz=(()=>{class t{constructor(e){this._mutationObserverFactory=e,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((e,i)=>this._cleanupObserver(i))}observe(e){const i=la(e);return new he(o=>{const a=this._observeElement(i).subscribe(o);return()=>{a.unsubscribe(),this._unobserveElement(i)}})}_observeElement(e){if(this._observedElements.has(e))this._observedElements.get(e).count++;else{const i=new J,o=this._mutationObserverFactory.create(s=>i.next(s));o&&o.observe(e,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(e,{observer:o,stream:i,count:1})}return this._observedElements.get(e).stream}_unobserveElement(e){this._observedElements.has(e)&&(this._observedElements.get(e).count--,this._observedElements.get(e).count||this._cleanupObserver(e))}_cleanupObserver(e){if(this._observedElements.has(e)){const{observer:i,stream:o}=this._observedElements.get(e);i&&i.disconnect(),o.complete(),this._observedElements.delete(e)}}}return t.\u0275fac=function(e){return new(e||t)(we(cL))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),dL=(()=>{class t{get disabled(){return this._disabled}set disabled(e){this._disabled=_n(e),this._disabled?this._unsubscribe():this._subscribe()}get debounce(){return this._debounce}set debounce(e){this._debounce=So(e),this._subscribe()}constructor(e,i,o){this._contentObserver=e,this._elementRef=i,this._ngZone=o,this.event=new ht,this._disabled=!1,this._currentSubscription=null}ngAfterContentInit(){!this._currentSubscription&&!this.disabled&&this._subscribe()}ngOnDestroy(){this._unsubscribe()}_subscribe(){this._unsubscribe();const e=this._contentObserver.observe(this._elementRef);this._ngZone.runOutsideAngular(()=>{this._currentSubscription=(this.debounce?e.pipe(H0(this.debounce)):e).subscribe(this.event)})}_unsubscribe(){this._currentSubscription?.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(dz),Y(vt),Y(ft))},t.\u0275dir=Ke({type:t,selectors:[["","cdkObserveContent",""]],inputs:{disabled:["cdkObserveContentDisabled","disabled"],debounce:"debounce"},outputs:{event:"cdkObserveContent"},exportAs:["cdkObserveContent"]}),t})(),j0=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[cL]}),t})();const uL=new Set;let Kl,uz=(()=>{class t{constructor(e,i){this._platform=e,this._nonce=i,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):fz}matchMedia(e){return(this._platform.WEBKIT||this._platform.BLINK)&&function hz(t,n){if(!uL.has(t))try{Kl||(Kl=document.createElement("style"),n&&(Kl.nonce=n),Kl.setAttribute("type","text/css"),document.head.appendChild(Kl)),Kl.sheet&&(Kl.sheet.insertRule(`@media ${t} {body{ }}`,0),uL.add(t))}catch(e){console.error(e)}}(e,this._nonce),this._matchMedia(e)}}return t.\u0275fac=function(e){return new(e||t)(we(ui),we(Tb,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function fz(t){return{matches:"all"===t||""===t,media:t,addListener:()=>{},removeListener:()=>{}}}let z0=(()=>{class t{constructor(e,i){this._mediaMatcher=e,this._zone=i,this._queries=new Map,this._destroySubject=new J}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(e){return hL(Gm(e)).some(o=>this._registerQuery(o).mql.matches)}observe(e){let s=Mm(hL(Gm(e)).map(a=>this._registerQuery(a).observable));return s=Ua(s.pipe(Kn(1)),s.pipe(B0(1),H0(0))),s.pipe(ke(a=>{const l={matches:!1,breakpoints:{}};return a.forEach(({matches:d,query:_})=>{l.matches=l.matches||d,l.breakpoints[_]=d}),l}))}_registerQuery(e){if(this._queries.has(e))return this._queries.get(e);const i=this._mediaMatcher.matchMedia(e),s={observable:new he(a=>{const l=d=>this._zone.run(()=>a.next(d));return i.addListener(l),()=>{i.removeListener(l)}}).pipe(Go(i),ke(({matches:a})=>({query:e,matches:a})),Hn(this._destroySubject)),mql:i};return this._queries.set(e,s),s}}return t.\u0275fac=function(e){return new(e||t)(we(uz),we(ft))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function hL(t){return t.map(n=>n.split(",")).reduce((n,e)=>n.concat(e)).map(n=>n.trim())}function ng(t,n){return(t.getAttribute(n)||"").match(/\S+/g)||[]}const pL="cdk-describedby-message",ig="cdk-describedby-host";let U0=0,_z=(()=>{class t{constructor(e,i){this._platform=i,this._messageRegistry=new Map,this._messagesContainer=null,this._id=""+U0++,this._document=e,this._id=Qe(ku)+"-"+U0++}describe(e,i,o){if(!this._canBeDescribed(e,i))return;const s=W0(i,o);"string"!=typeof i?(mL(i,this._id),this._messageRegistry.set(s,{messageElement:i,referenceCount:0})):this._messageRegistry.has(s)||this._createMessageElement(i,o),this._isElementDescribedByMessage(e,s)||this._addMessageReference(e,s)}removeDescription(e,i,o){if(!i||!this._isElementNode(e))return;const s=W0(i,o);if(this._isElementDescribedByMessage(e,s)&&this._removeMessageReference(e,s),"string"==typeof i){const a=this._messageRegistry.get(s);a&&0===a.referenceCount&&this._deleteMessageElement(s)}0===this._messagesContainer?.childNodes.length&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){const e=this._document.querySelectorAll(`[${ig}="${this._id}"]`);for(let i=0;i0!=o.indexOf(pL));e.setAttribute("aria-describedby",i.join(" "))}_addMessageReference(e,i){const o=this._messageRegistry.get(i);(function mz(t,n,e){const i=ng(t,n);i.some(o=>o.trim()==e.trim())||(i.push(e.trim()),t.setAttribute(n,i.join(" ")))})(e,"aria-describedby",o.messageElement.id),e.setAttribute(ig,this._id),o.referenceCount++}_removeMessageReference(e,i){const o=this._messageRegistry.get(i);o.referenceCount--,function gz(t,n,e){const o=ng(t,n).filter(s=>s!=e.trim());o.length?t.setAttribute(n,o.join(" ")):t.removeAttribute(n)}(e,"aria-describedby",o.messageElement.id),e.removeAttribute(ig)}_isElementDescribedByMessage(e,i){const o=ng(e,"aria-describedby"),s=this._messageRegistry.get(i),a=s&&s.messageElement.id;return!!a&&-1!=o.indexOf(a)}_canBeDescribed(e,i){if(!this._isElementNode(e))return!1;if(i&&"object"==typeof i)return!0;const o=null==i?"":`${i}`.trim(),s=e.getAttribute("aria-label");return!(!o||s&&s.trim()===o)}_isElementNode(e){return e.nodeType===this._document.ELEMENT_NODE}}return t.\u0275fac=function(e){return new(e||t)(we(It),we(ui))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function W0(t,n){return"string"==typeof t?`${n||""}/${t}`:t}function mL(t,n){t.id||(t.id=`${pL}-${n}-${U0++}`)}class gL{constructor(n){this._items=n,this._activeItemIndex=-1,this._activeItem=null,this._wrap=!1,this._letterKeyStream=new J,this._typeaheadSubscription=T.EMPTY,this._vertical=!0,this._allowedModifierKeys=[],this._homeAndEnd=!1,this._pageUpAndDown={enabled:!1,delta:10},this._skipPredicateFn=e=>e.disabled,this._pressedLetters=[],this.tabOut=new J,this.change=new J,n instanceof Al&&(this._itemChangesSubscription=n.changes.subscribe(e=>{if(this._activeItem){const o=e.toArray().indexOf(this._activeItem);o>-1&&o!==this._activeItemIndex&&(this._activeItemIndex=o)}}))}skipPredicate(n){return this._skipPredicateFn=n,this}withWrap(n=!0){return this._wrap=n,this}withVerticalOrientation(n=!0){return this._vertical=n,this}withHorizontalOrientation(n){return this._horizontal=n,this}withAllowedModifierKeys(n){return this._allowedModifierKeys=n,this}withTypeAhead(n=200){return this._typeaheadSubscription.unsubscribe(),this._typeaheadSubscription=this._letterKeyStream.pipe(bi(e=>this._pressedLetters.push(e)),H0(n),_i(()=>this._pressedLetters.length>0),ke(()=>this._pressedLetters.join(""))).subscribe(e=>{const i=this._getItemsArray();for(let o=1;o!n[s]||this._allowedModifierKeys.indexOf(s)>-1);switch(e){case 9:return void this.tabOut.next();case 40:if(this._vertical&&o){this.setNextItemActive();break}return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}return;case 39:if(this._horizontal&&o){"rtl"===this._horizontal?this.setPreviousItemActive():this.setNextItemActive();break}return;case 37:if(this._horizontal&&o){"rtl"===this._horizontal?this.setNextItemActive():this.setPreviousItemActive();break}return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}return;case 33:if(this._pageUpAndDown.enabled&&o){const s=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(s>0?s:0,1);break}return;case 34:if(this._pageUpAndDown.enabled&&o){const s=this._activeItemIndex+this._pageUpAndDown.delta,a=this._getItemsArray().length;this._setActiveItemByIndex(s=65&&e<=90||e>=48&&e<=57)&&this._letterKeyStream.next(String.fromCharCode(e))))}this._pressedLetters=[],n.preventDefault()}get activeItemIndex(){return this._activeItemIndex}get activeItem(){return this._activeItem}isTyping(){return this._pressedLetters.length>0}setFirstItemActive(){this._setActiveItemByIndex(0,1)}setLastItemActive(){this._setActiveItemByIndex(this._items.length-1,-1)}setNextItemActive(){this._activeItemIndex<0?this.setFirstItemActive():this._setActiveItemByDelta(1)}setPreviousItemActive(){this._activeItemIndex<0&&this._wrap?this.setLastItemActive():this._setActiveItemByDelta(-1)}updateActiveItem(n){const e=this._getItemsArray(),i="number"==typeof n?n:e.indexOf(n);this._activeItem=e[i]??null,this._activeItemIndex=i}destroy(){this._typeaheadSubscription.unsubscribe(),this._itemChangesSubscription?.unsubscribe(),this._letterKeyStream.complete(),this.tabOut.complete(),this.change.complete(),this._pressedLetters=[]}_setActiveItemByDelta(n){this._wrap?this._setActiveInWrapMode(n):this._setActiveInDefaultMode(n)}_setActiveInWrapMode(n){const e=this._getItemsArray();for(let i=1;i<=e.length;i++){const o=(this._activeItemIndex+n*i+e.length)%e.length;if(!this._skipPredicateFn(e[o]))return void this.setActiveItem(o)}}_setActiveInDefaultMode(n){this._setActiveItemByIndex(this._activeItemIndex+n,n)}_setActiveItemByIndex(n,e){const i=this._getItemsArray();if(i[n]){for(;this._skipPredicateFn(i[n]);)if(!i[n+=e])return;this.setActiveItem(n)}}_getItemsArray(){return this._items instanceof Al?this._items.toArray():this._items}}class bz extends gL{setActiveItem(n){this.activeItem&&this.activeItem.setInactiveStyles(),super.setActiveItem(n),this.activeItem&&this.activeItem.setActiveStyles()}}class _L extends gL{constructor(){super(...arguments),this._origin="program"}setFocusOrigin(n){return this._origin=n,this}setActiveItem(n){super.setActiveItem(n),this.activeItem&&this.activeItem.focus(this._origin)}}let rg=(()=>{class t{constructor(e){this._platform=e}isDisabled(e){return e.hasAttribute("disabled")}isVisible(e){return function yz(t){return!!(t.offsetWidth||t.offsetHeight||"function"==typeof t.getClientRects&&t.getClientRects().length)}(e)&&"visible"===getComputedStyle(e).visibility}isTabbable(e){if(!this._platform.isBrowser)return!1;const i=function vz(t){try{return t.frameElement}catch{return null}}(function Tz(t){return t.ownerDocument&&t.ownerDocument.defaultView||window}(e));if(i&&(-1===vL(i)||!this.isVisible(i)))return!1;let o=e.nodeName.toLowerCase(),s=vL(e);return e.hasAttribute("contenteditable")?-1!==s:!("iframe"===o||"object"===o||this._platform.WEBKIT&&this._platform.IOS&&!function Sz(t){let n=t.nodeName.toLowerCase(),e="input"===n&&t.type;return"text"===e||"password"===e||"select"===n||"textarea"===n}(e))&&("audio"===o?!!e.hasAttribute("controls")&&-1!==s:"video"===o?-1!==s&&(null!==s||this._platform.FIREFOX||e.hasAttribute("controls")):e.tabIndex>=0)}isFocusable(e,i){return function Dz(t){return!function wz(t){return function xz(t){return"input"==t.nodeName.toLowerCase()}(t)&&"hidden"==t.type}(t)&&(function Mz(t){let n=t.nodeName.toLowerCase();return"input"===n||"select"===n||"button"===n||"textarea"===n}(t)||function Cz(t){return function kz(t){return"a"==t.nodeName.toLowerCase()}(t)&&t.hasAttribute("href")}(t)||t.hasAttribute("contenteditable")||bL(t))}(e)&&!this.isDisabled(e)&&(i?.ignoreVisibility||this.isVisible(e))}}return t.\u0275fac=function(e){return new(e||t)(we(ui))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function bL(t){if(!t.hasAttribute("tabindex")||void 0===t.tabIndex)return!1;let n=t.getAttribute("tabindex");return!(!n||isNaN(parseInt(n,10)))}function vL(t){if(!bL(t))return null;const n=parseInt(t.getAttribute("tabindex")||"",10);return isNaN(n)?-1:n}class Lz{get enabled(){return this._enabled}set enabled(n){this._enabled=n,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}constructor(n,e,i,o,s=!1){this._element=n,this._checker=e,this._ngZone=i,this._document=o,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,s||this.attachAnchors()}destroy(){const n=this._startAnchor,e=this._endAnchor;n&&(n.removeEventListener("focus",this.startAnchorListener),n.remove()),e&&(e.removeEventListener("focus",this.endAnchorListener),e.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusInitialElement(n)))})}focusFirstTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusFirstTabbableElement(n)))})}focusLastTabbableElementWhenReady(n){return new Promise(e=>{this._executeOnStable(()=>e(this.focusLastTabbableElement(n)))})}_getRegionBoundary(n){const e=this._element.querySelectorAll(`[cdk-focus-region-${n}], [cdkFocusRegion${n}], [cdk-focus-${n}]`);return"start"==n?e.length?e[0]:this._getFirstTabbableElement(this._element):e.length?e[e.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(n){const e=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(e){if(!this._checker.isFocusable(e)){const i=this._getFirstTabbableElement(e);return i?.focus(n),!!i}return e.focus(n),!0}return this.focusFirstTabbableElement(n)}focusFirstTabbableElement(n){const e=this._getRegionBoundary("start");return e&&e.focus(n),!!e}focusLastTabbableElement(n){const e=this._getRegionBoundary("end");return e&&e.focus(n),!!e}hasAttached(){return this._hasAttached}_getFirstTabbableElement(n){if(this._checker.isFocusable(n)&&this._checker.isTabbable(n))return n;const e=n.children;for(let i=0;i=0;i--){const o=e[i].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(e[i]):null;if(o)return o}return null}_createAnchor(){const n=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,n),n.classList.add("cdk-visually-hidden"),n.classList.add("cdk-focus-trap-anchor"),n.setAttribute("aria-hidden","true"),n}_toggleAnchorTabIndex(n,e){n?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}toggleAnchors(n){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(n,this._startAnchor),this._toggleAnchorTabIndex(n,this._endAnchor))}_executeOnStable(n){this._ngZone.isStable?n():this._ngZone.onStable.pipe(Kn(1)).subscribe(n)}}let $0=(()=>{class t{constructor(e,i,o){this._checker=e,this._ngZone=i,this._document=o}create(e,i=!1){return new Lz(e,this._checker,this._ngZone,this._document,i)}}return t.\u0275fac=function(e){return new(e||t)(we(rg),we(ft),we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function G0(t){return 0===t.buttons||0===t.offsetX&&0===t.offsetY}function q0(t){const n=t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0];return!(!n||-1!==n.identifier||null!=n.radiusX&&1!==n.radiusX||null!=n.radiusY&&1!==n.radiusY)}const Ez=new Re("cdk-input-modality-detector-options"),Iz={ignoreKeys:[18,17,224,91,16]},Ld=Za({passive:!0,capture:!0});let Pz=(()=>{class t{get mostRecentModality(){return this._modality.value}constructor(e,i,o,s){this._platform=e,this._mostRecentTarget=null,this._modality=new Or(null),this._lastTouchMs=0,this._onKeydown=a=>{this._options?.ignoreKeys?.some(l=>l===a.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Xa(a))},this._onMousedown=a=>{Date.now()-this._lastTouchMs<650||(this._modality.next(G0(a)?"keyboard":"mouse"),this._mostRecentTarget=Xa(a))},this._onTouchstart=a=>{q0(a)?this._modality.next("keyboard"):(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Xa(a))},this._options={...Iz,...s},this.modalityDetected=this._modality.pipe(B0(1)),this.modalityChanged=this.modalityDetected.pipe(V0()),e.isBrowser&&i.runOutsideAngular(()=>{o.addEventListener("keydown",this._onKeydown,Ld),o.addEventListener("mousedown",this._onMousedown,Ld),o.addEventListener("touchstart",this._onTouchstart,Ld)})}ngOnDestroy(){this._modality.complete(),this._platform.isBrowser&&(document.removeEventListener("keydown",this._onKeydown,Ld),document.removeEventListener("mousedown",this._onMousedown,Ld),document.removeEventListener("touchstart",this._onTouchstart,Ld))}}return t.\u0275fac=function(e){return new(e||t)(we(ui),we(ft),we(It),we(Ez,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const Oz=new Re("liveAnnouncerElement",{providedIn:"root",factory:function Az(){return null}}),Fz=new Re("LIVE_ANNOUNCER_DEFAULT_OPTIONS");let Rz=0,K0=(()=>{class t{constructor(e,i,o,s){this._ngZone=i,this._defaultOptions=s,this._document=o,this._liveElement=e||this._createLiveElement()}announce(e,...i){const o=this._defaultOptions;let s,a;return 1===i.length&&"number"==typeof i[0]?a=i[0]:[s,a]=i,this.clear(),clearTimeout(this._previousTimeout),s||(s=o&&o.politeness?o.politeness:"polite"),null==a&&o&&(a=o.duration),this._liveElement.setAttribute("aria-live",s),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(l=>this._currentResolve=l)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=e,"number"==typeof a&&(this._previousTimeout=setTimeout(()=>this.clear(),a)),this._currentResolve(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){const e="cdk-live-announcer-element",i=this._document.getElementsByClassName(e),o=this._document.createElement("div");for(let s=0;s .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class t{constructor(e,i,o,s,a){this._ngZone=e,this._platform=i,this._inputModalityDetector=o,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=window.setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new J,this._rootNodeFocusAndBlurListener=l=>{for(let _=Xa(l);_;_=_.parentElement)"focus"===l.type?this._onFocus(l,_):this._onBlur(l,_)},this._document=s,this._detectionMode=a?.detectionMode||0}monitor(e,i=!1){const o=la(e);if(!this._platform.isBrowser||1!==o.nodeType)return $e(null);const s=function p9(t){if(function f9(){if(null==O0){const t=typeof document<"u"?document.head:null;O0=!(!t||!t.createShadowRoot&&!t.attachShadow)}return O0}()){const n=t.getRootNode?t.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&n instanceof ShadowRoot)return n}return null}(o)||this._getDocument(),a=this._elementInfo.get(o);if(a)return i&&(a.checkChildren=!0),a.subject;const l={checkChildren:i,subject:new J,rootNode:s};return this._elementInfo.set(o,l),this._registerGlobalListeners(l),l.subject}stopMonitoring(e){const i=la(e),o=this._elementInfo.get(i);o&&(o.subject.complete(),this._setClasses(i),this._elementInfo.delete(i),this._removeGlobalListeners(o))}focusVia(e,i,o){const s=la(e);s===this._getDocument().activeElement?this._getClosestElementsInfo(s).forEach(([l,d])=>this._originChanged(l,i,d)):(this._setOrigin(i),"function"==typeof s.focus&&s.focus(o))}ngOnDestroy(){this._elementInfo.forEach((e,i)=>this.stopMonitoring(i))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(e){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(e)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:e&&this._isLastInteractionFromInputLabel(e)?"mouse":"program"}_shouldBeAttributedToTouch(e){return 1===this._detectionMode||!!e?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(e,i){e.classList.toggle("cdk-focused",!!i),e.classList.toggle("cdk-touch-focused","touch"===i),e.classList.toggle("cdk-keyboard-focused","keyboard"===i),e.classList.toggle("cdk-mouse-focused","mouse"===i),e.classList.toggle("cdk-program-focused","program"===i)}_setOrigin(e,i=!1){this._ngZone.runOutsideAngular(()=>{this._origin=e,this._originFromTouchInteraction="touch"===e&&i,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(e,i){const o=this._elementInfo.get(i),s=Xa(e);!o||!o.checkChildren&&i!==s||this._originChanged(i,this._getFocusOrigin(s),o)}_onBlur(e,i){const o=this._elementInfo.get(i);!o||o.checkChildren&&e.relatedTarget instanceof Node&&i.contains(e.relatedTarget)||(this._setClasses(i),this._emitOrigin(o,null))}_emitOrigin(e,i){e.subject.observers.length&&this._ngZone.run(()=>e.subject.next(i))}_registerGlobalListeners(e){if(!this._platform.isBrowser)return;const i=e.rootNode,o=this._rootNodeFocusListenerCount.get(i)||0;o||this._ngZone.runOutsideAngular(()=>{i.addEventListener("focus",this._rootNodeFocusAndBlurListener,og),i.addEventListener("blur",this._rootNodeFocusAndBlurListener,og)}),this._rootNodeFocusListenerCount.set(i,o+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(Hn(this._stopInputModalityDetector)).subscribe(s=>{this._setOrigin(s,!0)}))}_removeGlobalListeners(e){const i=e.rootNode;if(this._rootNodeFocusListenerCount.has(i)){const o=this._rootNodeFocusListenerCount.get(i);o>1?this._rootNodeFocusListenerCount.set(i,o-1):(i.removeEventListener("focus",this._rootNodeFocusAndBlurListener,og),i.removeEventListener("blur",this._rootNodeFocusAndBlurListener,og),this._rootNodeFocusListenerCount.delete(i))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(e,i,o){this._setClasses(e,i),this._emitOrigin(o,i),this._lastFocusOrigin=i}_getClosestElementsInfo(e){const i=[];return this._elementInfo.forEach((o,s)=>{(s===e||o.checkChildren&&s.contains(e))&&i.push([s,o])}),i}_isLastInteractionFromInputLabel(e){const{_mostRecentTarget:i,mostRecentModality:o}=this._inputModalityDetector;if("mouse"!==o||!i||i===e||"INPUT"!==e.nodeName&&"TEXTAREA"!==e.nodeName||e.disabled)return!1;const s=e.labels;if(s)for(let a=0;a{class t{constructor(e,i){this._elementRef=e,this._focusMonitor=i,this._focusOrigin=null,this.cdkFocusChange=new ht}get focusOrigin(){return this._focusOrigin}ngAfterViewInit(){const e=this._elementRef.nativeElement;this._monitorSubscription=this._focusMonitor.monitor(e,1===e.nodeType&&e.hasAttribute("cdkMonitorSubtreeFocus")).subscribe(i=>{this._focusOrigin=i,this.cdkFocusChange.emit(i)})}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._monitorSubscription&&this._monitorSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(Qa))},t.\u0275dir=Ke({type:t,selectors:[["","cdkMonitorElementFocus",""],["","cdkMonitorSubtreeFocus",""]],outputs:{cdkFocusChange:"cdkFocusChange"},exportAs:["cdkMonitorFocus"]}),t})();const ML="cdk-high-contrast-black-on-white",wL="cdk-high-contrast-white-on-black",Z0="cdk-high-contrast-active";let CL=(()=>{class t{constructor(e,i){this._platform=e,this._document=i,this._breakpointSubscription=Qe(z0).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const e=this._document.createElement("div");e.style.backgroundColor="rgb(1,2,3)",e.style.position="absolute",this._document.body.appendChild(e);const i=this._document.defaultView||window,o=i&&i.getComputedStyle?i.getComputedStyle(e):null,s=(o&&o.backgroundColor||"").replace(/ /g,"");switch(e.remove(),s){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return 2;case"rgb(255,255,255)":case"rgb(255,250,239)":return 1}return 0}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const e=this._document.body.classList;e.remove(Z0,ML,wL),this._hasCheckedHighContrastMode=!0;const i=this.getHighContrastMode();1===i?e.add(Z0,ML):2===i&&e.add(Z0,wL)}}}return t.\u0275fac=function(e){return new(e||t)(we(ui),we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),X0=(()=>{class t{constructor(e){e._applyBodyHighContrastModeCssClasses()}}return t.\u0275fac=function(e){return new(e||t)(we(CL))},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[j0]}),t})();function Hz(t,n){}class sg{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.closeOnNavigation=!0,this.closeOnDestroy=!0,this.closeOnOverlayDetachments=!0}}let xL=(()=>{class t extends Zm{constructor(e,i,o,s,a,l,d,_){super(),this._elementRef=e,this._focusTrapFactory=i,this._config=s,this._interactivityChecker=a,this._ngZone=l,this._overlayRef=d,this._focusMonitor=_,this._elementFocusedBeforeDialogWasOpened=null,this._closeInteractionType=null,this.attachDomPortal=E=>{this._portalOutlet.hasAttached();const F=this._portalOutlet.attachDomPortal(E);return this._contentAttached(),F},this._ariaLabelledBy=this._config.ariaLabelledBy||null,this._document=o}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._restoreFocus()}attachComponentPortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._contentAttached(),i}attachTemplatePortal(e){this._portalOutlet.hasAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._contentAttached(),i}_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(e,i){this._interactivityChecker.isFocusable(e)||(e.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{const o=()=>{e.removeEventListener("blur",o),e.removeEventListener("mousedown",o),e.removeAttribute("tabindex")};e.addEventListener("blur",o),e.addEventListener("mousedown",o)})),e.focus(i)}_focusByCssSelector(e,i){let o=this._elementRef.nativeElement.querySelector(e);o&&this._forceFocus(o,i)}_trapFocus(){const e=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||e.focus();break;case!0:case"first-tabbable":this._focusTrap.focusInitialElementWhenReady().then(i=>{i||this._focusDialogContainer()});break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]');break;default:this._focusByCssSelector(this._config.autoFocus)}}_restoreFocus(){const e=this._config.restoreFocus;let i=null;if("string"==typeof e?i=this._document.querySelector(e):"boolean"==typeof e?i=e?this._elementFocusedBeforeDialogWasOpened:null:e&&(i=e),this._config.restoreFocus&&i&&"function"==typeof i.focus){const o=A0(),s=this._elementRef.nativeElement;(!o||o===this._document.body||o===s||s.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(i,this._closeInteractionType),this._closeInteractionType=null):i.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus()}_containsFocus(){const e=this._elementRef.nativeElement,i=A0();return e===i||e.contains(i)}_initializeFocusTrap(){this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=A0())}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y($0),Y(It,8),Y(sg),Y(rg),Y(ft),Y(Ah),Y(Qa))},t.\u0275cmp=Ze({type:t,selectors:[["cdk-dialog-container"]],viewQuery:function(e,i){if(1&e&&_t(Ja,7),2&e){let o;rt(o=ot())&&(i._portalOutlet=o.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(e,i){2&e&&Xt("id",i._config.id||null)("role",i._config.role)("aria-modal",i._config.ariaModal)("aria-labelledby",i._config.ariaLabel?null:i._ariaLabelledBy)("aria-label",i._config.ariaLabel)("aria-describedby",i._config.ariaDescribedBy||null)},features:[nt],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(e,i){1&e&&V(0,Hz,0,0,"ng-template",0)},dependencies:[Ja],styles:[".cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit}"],encapsulation:2}),t})();class J0{constructor(n,e){this.overlayRef=n,this.config=e,this.closed=new J,this.disableClose=e.disableClose,this.backdropClick=n.backdropClick(),this.keydownEvents=n.keydownEvents(),this.outsidePointerEvents=n.outsidePointerEvents(),this.id=e.id,this.keydownEvents.subscribe(i=>{27===i.keyCode&&!this.disableClose&&!Fs(i)&&(i.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=n.detachments().subscribe(()=>{!1!==e.closeOnOverlayDetachments&&this.close()})}close(n,e){if(this.containerInstance){const i=this.closed;this.containerInstance._closeInteractionType=e?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),i.next(n),i.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(n="",e=""){return this.overlayRef.updateSize({width:n,height:e}),this}addPanelClass(n){return this.overlayRef.addPanelClass(n),this}removePanelClass(n){return this.overlayRef.removePanelClass(n),this}}const kL=new Re("DialogScrollStrategy"),Bz=new Re("DialogData"),Vz=new Re("DefaultDialogConfig"),zz={provide:kL,deps:[io],useFactory:function jz(t){return()=>t.scrollStrategies.block()}};let Uz=0,SL=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}constructor(e,i,o,s,a,l){this._overlay=e,this._injector=i,this._defaultOptions=o,this._parentDialog=s,this._overlayContainer=a,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new J,this._afterOpenedAtThisLevel=new J,this._ariaHiddenElements=new Map,this.afterAllClosed=jl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Go(void 0))),this._scrollStrategy=l}open(e,i){(i={...this._defaultOptions||new sg,...i}).id=i.id||"cdk-dialog-"+Uz++,i.id&&this.getDialogById(i.id);const s=this._getOverlayConfig(i),a=this._overlay.create(s),l=new J0(a,i),d=this._attachContainer(a,l,i);return l.containerInstance=d,this._attachDialogContent(e,l,d,i),this.openDialogs.length||this._hideNonDialogContentFromAssistiveTechnology(),this.openDialogs.push(l),l.closed.subscribe(()=>this._removeOpenDialog(l,!0)),this.afterOpened.next(l),l}closeAll(){Q0(this.openDialogs,e=>e.close())}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){Q0(this._openDialogsAtThisLevel,e=>{!1===e.config.closeOnDestroy&&this._removeOpenDialog(e,!1)}),Q0(this._openDialogsAtThisLevel,e=>e.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(e){const i=new Oh({positionStrategy:e.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:e.scrollStrategy||this._scrollStrategy(),panelClass:e.panelClass,hasBackdrop:e.hasBackdrop,direction:e.direction,minWidth:e.minWidth,minHeight:e.minHeight,maxWidth:e.maxWidth,maxHeight:e.maxHeight,width:e.width,height:e.height,disposeOnNavigation:e.closeOnNavigation});return e.backdropClass&&(i.backdropClass=e.backdropClass),i}_attachContainer(e,i,o){const s=o.injector||o.viewContainerRef?.injector,a=[{provide:sg,useValue:o},{provide:J0,useValue:i},{provide:Ah,useValue:e}];let l;o.container?"function"==typeof o.container?l=o.container:(l=o.container.type,a.push(...o.container.providers(o))):l=xL;const d=new Sd(l,o.viewContainerRef,Si.create({parent:s||this._injector,providers:a}),o.componentFactoryResolver);return e.attach(d).instance}_attachDialogContent(e,i,o,s){if(e instanceof mr){const a=this._createInjector(s,i,o,void 0);let l={$implicit:s.data,dialogRef:i};s.templateContext&&(l={...l,..."function"==typeof s.templateContext?s.templateContext():s.templateContext}),o.attachTemplatePortal(new Gl(e,null,l,a))}else{const a=this._createInjector(s,i,o,this._injector),l=o.attachComponentPortal(new Sd(e,s.viewContainerRef,a,s.componentFactoryResolver));i.componentInstance=l.instance}}_createInjector(e,i,o,s){const a=e.injector||e.viewContainerRef?.injector,l=[{provide:Bz,useValue:e.data},{provide:J0,useValue:i}];return e.providers&&("function"==typeof e.providers?l.push(...e.providers(i,e,o)):l.push(...e.providers)),e.direction&&(!a||!a.get(Do,null,{optional:!0}))&&l.push({provide:Do,useValue:{value:e.direction,change:$e()}}),Si.create({parent:a||s,providers:l})}_removeOpenDialog(e,i){const o=this.openDialogs.indexOf(e);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((s,a)=>{s?a.setAttribute("aria-hidden",s):a.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),i&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(){const e=this._overlayContainer.getContainerElement();if(e.parentElement){const i=e.parentElement.children;for(let o=i.length-1;o>-1;o--){const s=i[o];s!==e&&"SCRIPT"!==s.nodeName&&"STYLE"!==s.nodeName&&!s.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(s,s.getAttribute("aria-hidden")),s.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}}return t.\u0275fac=function(e){return new(e||t)(we(io),we(Si),we(Vz,8),we(t,12),we(tg),we(kL))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function Q0(t,n){let e=t.length;for(;e--;)n(t[e])}let Wz=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[SL,zz],imports:[Td,Dd,X0,Dd]}),t})();const $z=["text"];function Gz(t,n){if(1&t&&xe(0,"mat-pseudo-checkbox",6),2&t){const e=z();w("state",e.selected?"checked":"unchecked")("disabled",e.disabled)}}function qz(t,n){1&t&&xe(0,"mat-pseudo-checkbox",7),2&t&&w("disabled",z().disabled)}function Kz(t,n){if(1&t&&(D(0,"span",8),I(1),C()),2&t){const e=z();c(1),ce("(",e.group.label,")")}}const Zz=[[["mat-icon"]],"*"],Xz=["mat-icon","*"],Qz=new Re("mat-sanity-checks",{providedIn:"root",factory:function Jz(){return!0}});let Wn=(()=>{class t{constructor(e,i,o){this._sanityChecks=i,this._document=o,this._hasDoneGlobalChecks=!1,e._applyBodyHighContrastModeCssClasses(),this._hasDoneGlobalChecks||(this._hasDoneGlobalChecks=!0)}_checkIsEnabled(e){return!F0()&&("boolean"==typeof this._sanityChecks?this._sanityChecks:!!this._sanityChecks[e])}}return t.\u0275fac=function(e){return new(e||t)(we(CL),we(Qz,8),we(It))},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Th,Th]}),t})();function Ed(t){return class extends t{get disabled(){return this._disabled}set disabled(n){this._disabled=_n(n)}constructor(...n){super(...n),this._disabled=!1}}}function Fh(t,n){return class extends t{get color(){return this._color}set color(e){const i=e||this.defaultColor;i!==this._color&&(this._color&&this._elementRef.nativeElement.classList.remove(`mat-${this._color}`),i&&this._elementRef.nativeElement.classList.add(`mat-${i}`),this._color=i)}constructor(...e){super(...e),this.defaultColor=n,this.color=n}}}function Rh(t){return class extends t{get disableRipple(){return this._disableRipple}set disableRipple(n){this._disableRipple=_n(n)}constructor(...n){super(...n),this._disableRipple=!1}}}function LL(t,n=0){return class extends t{get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(e){this._tabIndex=null!=e?So(e):this.defaultTabIndex}constructor(...e){super(...e),this._tabIndex=n,this.defaultTabIndex=n}}}function EL(t){return class extends t{updateErrorState(){const n=this.errorState,s=(this.errorStateMatcher||this._defaultErrorStateMatcher).isErrorState(this.ngControl?this.ngControl.control:null,this._parentFormGroup||this._parentForm);s!==n&&(this.errorState=s,this.stateChanges.next())}constructor(...n){super(...n),this.errorState=!1}}}let tU=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.dirty||i&&i.submitted))}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),e1=(()=>{class t{isErrorState(e,i){return!!(e&&e.invalid&&(e.touched||i&&i.submitted))}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class nU{constructor(n,e,i,o=!1){this._renderer=n,this.element=e,this.config=i,this._animationForciblyDisabledThroughCss=o,this.state=3}fadeOut(){this._renderer.fadeOutRipple(this)}}const IL=Za({passive:!0,capture:!0});class iU{constructor(){this._events=new Map,this._delegateEventHandler=n=>{const e=Xa(n);e&&this._events.get(n.type)?.forEach((i,o)=>{(o===e||o.contains(e))&&i.forEach(s=>s.handleEvent(n))})}}addHandler(n,e,i,o){const s=this._events.get(e);if(s){const a=s.get(i);a?a.add(o):s.set(i,new Set([o]))}else this._events.set(e,new Map([[i,new Set([o])]])),n.runOutsideAngular(()=>{document.addEventListener(e,this._delegateEventHandler,IL)})}removeHandler(n,e,i){const o=this._events.get(n);if(!o)return;const s=o.get(e);s&&(s.delete(i),0===s.size&&o.delete(e),0===o.size&&(this._events.delete(n),document.removeEventListener(n,this._delegateEventHandler,IL)))}}const PL={enterDuration:225,exitDuration:150},OL=Za({passive:!0,capture:!0}),AL=["mousedown","touchstart"],FL=["mouseup","mouseleave","touchend","touchcancel"];class Id{constructor(n,e,i,o){this._target=n,this._ngZone=e,this._platform=o,this._isPointerDown=!1,this._activeRipples=new Map,this._pointerUpEventsRegistered=!1,o.isBrowser&&(this._containerElement=la(i))}fadeInRipple(n,e,i={}){const o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),s={...PL,...i.animation};i.centered&&(n=o.left+o.width/2,e=o.top+o.height/2);const a=i.radius||function oU(t,n,e){const i=Math.max(Math.abs(t-e.left),Math.abs(t-e.right)),o=Math.max(Math.abs(n-e.top),Math.abs(n-e.bottom));return Math.sqrt(i*i+o*o)}(n,e,o),l=n-o.left,d=e-o.top,_=s.enterDuration,E=document.createElement("div");E.classList.add("mat-ripple-element"),E.style.left=l-a+"px",E.style.top=d-a+"px",E.style.height=2*a+"px",E.style.width=2*a+"px",null!=i.color&&(E.style.backgroundColor=i.color),E.style.transitionDuration=`${_}ms`,this._containerElement.appendChild(E);const F=window.getComputedStyle(E),ie=F.transitionDuration,_e="none"===F.transitionProperty||"0s"===ie||"0s, 0s"===ie||0===o.width&&0===o.height,Ce=new nU(this,E,i,_e);E.style.transform="scale3d(1, 1, 1)",Ce.state=0,i.persistent||(this._mostRecentTransientRipple=Ce);let Ae=null;return!_e&&(_||s.exitDuration)&&this._ngZone.runOutsideAngular(()=>{const ze=()=>this._finishRippleTransition(Ce),Ee=()=>this._destroyRipple(Ce);E.addEventListener("transitionend",ze),E.addEventListener("transitioncancel",Ee),Ae={onTransitionEnd:ze,onTransitionCancel:Ee}}),this._activeRipples.set(Ce,Ae),(_e||!_)&&this._finishRippleTransition(Ce),Ce}fadeOutRipple(n){if(2===n.state||3===n.state)return;const e=n.element,i={...PL,...n.config.animation};e.style.transitionDuration=`${i.exitDuration}ms`,e.style.opacity="0",n.state=2,(n._animationForciblyDisabledThroughCss||!i.exitDuration)&&this._finishRippleTransition(n)}fadeOutAll(){this._getActiveRipples().forEach(n=>n.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(n=>{n.config.persistent||n.fadeOut()})}setupTriggerEvents(n){const e=la(n);!this._platform.isBrowser||!e||e===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=e,AL.forEach(i=>{Id._eventManager.addHandler(this._ngZone,i,e,this)}))}handleEvent(n){"mousedown"===n.type?this._onMousedown(n):"touchstart"===n.type?this._onTouchStart(n):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{FL.forEach(e=>{this._triggerElement.addEventListener(e,this,OL)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(n){0===n.state?this._startFadeOutTransition(n):2===n.state&&this._destroyRipple(n)}_startFadeOutTransition(n){const e=n===this._mostRecentTransientRipple,{persistent:i}=n.config;n.state=1,!i&&(!e||!this._isPointerDown)&&n.fadeOut()}_destroyRipple(n){const e=this._activeRipples.get(n)??null;this._activeRipples.delete(n),this._activeRipples.size||(this._containerRect=null),n===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),n.state=3,null!==e&&(n.element.removeEventListener("transitionend",e.onTransitionEnd),n.element.removeEventListener("transitioncancel",e.onTransitionCancel)),n.element.remove()}_onMousedown(n){const e=G0(n),i=this._lastTouchStartEvent&&Date.now(){!n.config.persistent&&(1===n.state||n.config.terminateOnPointerUp&&0===n.state)&&n.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){const n=this._triggerElement;n&&(AL.forEach(e=>Id._eventManager.removeHandler(e,n,this)),this._pointerUpEventsRegistered&&FL.forEach(e=>n.removeEventListener(e,this,OL)))}}Id._eventManager=new iU;const t1=new Re("mat-ripple-global-options");let Zl=(()=>{class t{get disabled(){return this._disabled}set disabled(e){e&&this.fadeOutAllNonPersistent(),this._disabled=e,this._setupTriggerEventsIfEnabled()}get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(e){this._trigger=e,this._setupTriggerEventsIfEnabled()}constructor(e,i,o,s,a){this._elementRef=e,this._animationMode=a,this.radius=0,this._disabled=!1,this._isInitialized=!1,this._globalOptions=s||{},this._rippleRenderer=new Id(this,i,e,o)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:{...this._globalOptions.animation,..."NoopAnimations"===this._animationMode?{enterDuration:0,exitDuration:0}:{},...this.animation},terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(e,i=0,o){return"number"==typeof e?this._rippleRenderer.fadeInRipple(e,i,{...this.rippleConfig,...o}):this._rippleRenderer.fadeInRipple(0,0,{...this.rippleConfig,...e})}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ft),Y(ui),Y(t1,8),Y(Ri,8))},t.\u0275dir=Ke({type:t,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(e,i){2&e&&nn("mat-ripple-unbounded",i.unbounded)},inputs:{color:["matRippleColor","color"],unbounded:["matRippleUnbounded","unbounded"],centered:["matRippleCentered","centered"],radius:["matRippleRadius","radius"],animation:["matRippleAnimation","animation"],disabled:["matRippleDisabled","disabled"],trigger:["matRippleTrigger","trigger"]},exportAs:["matRipple"]}),t})(),Yh=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,Wn]}),t})(),sU=(()=>{class t{constructor(e){this._animationMode=e,this.state="unchecked",this.disabled=!1,this.appearance="full"}}return t.\u0275fac=function(e){return new(e||t)(Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-pseudo-checkbox"]],hostAttrs:[1,"mat-pseudo-checkbox"],hostVars:12,hostBindings:function(e,i){2&e&&nn("mat-pseudo-checkbox-indeterminate","indeterminate"===i.state)("mat-pseudo-checkbox-checked","checked"===i.state)("mat-pseudo-checkbox-disabled",i.disabled)("mat-pseudo-checkbox-minimal","minimal"===i.appearance)("mat-pseudo-checkbox-full","full"===i.appearance)("_mat-animation-noopable","NoopAnimations"===i._animationMode)},inputs:{state:"state",disabled:"disabled",appearance:"appearance"},decls:0,vars:0,template:function(e,i){},styles:['.mat-pseudo-checkbox{border-radius:2px;cursor:pointer;display:inline-block;vertical-align:middle;box-sizing:border-box;position:relative;flex-shrink:0;transition:border-color 90ms cubic-bezier(0, 0, 0.2, 0.1),background-color 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox::after{position:absolute;opacity:0;content:"";border-bottom:2px solid currentColor;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 0.1)}.mat-pseudo-checkbox._mat-animation-noopable{transition:none !important;animation:none !important}.mat-pseudo-checkbox._mat-animation-noopable::after{transition:none}.mat-pseudo-checkbox-disabled{cursor:default}.mat-pseudo-checkbox-indeterminate::after{left:1px;opacity:1;border-radius:2px}.mat-pseudo-checkbox-checked::after{left:1px;border-left:2px solid currentColor;transform:rotate(-45deg);opacity:1;box-sizing:content-box}.mat-pseudo-checkbox-full{border:2px solid}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate{border-color:rgba(0,0,0,0)}.mat-pseudo-checkbox{width:18px;height:18px}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after{width:14px;height:6px;transform-origin:center;top:-4.2426406871px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after{top:8px;width:16px}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after{width:10px;height:4px;transform-origin:center;top:-2.8284271247px;left:0;bottom:0;right:0;margin:auto}.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after{top:6px;width:12px}'],encapsulation:2,changeDetection:0}),t})(),aU=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn]}),t})();const RL=new Re("MAT_OPTION_PARENT_COMPONENT"),NL=new Re("MatOptgroup");let lU=0;class cU{constructor(n,e=!1){this.source=n,this.isUserInput=e}}let dU=(()=>{class t{get multiple(){return this._parent&&this._parent.multiple}get selected(){return this._selected}get disabled(){return this.group&&this.group.disabled||this._disabled}set disabled(e){this._disabled=_n(e)}get disableRipple(){return!(!this._parent||!this._parent.disableRipple)}get hideSingleSelectionIndicator(){return!(!this._parent||!this._parent.hideSingleSelectionIndicator)}constructor(e,i,o,s){this._element=e,this._changeDetectorRef=i,this._parent=o,this.group=s,this._selected=!1,this._active=!1,this._disabled=!1,this._mostRecentViewValue="",this.id="mat-option-"+lU++,this.onSelectionChange=new ht,this._stateChanges=new J}get active(){return this._active}get viewValue(){return(this._text?.nativeElement.textContent||"").trim()}select(){this._selected||(this._selected=!0,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}deselect(){this._selected&&(this._selected=!1,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent())}focus(e,i){const o=this._getHostElement();"function"==typeof o.focus&&o.focus(i)}setActiveStyles(){this._active||(this._active=!0,this._changeDetectorRef.markForCheck())}setInactiveStyles(){this._active&&(this._active=!1,this._changeDetectorRef.markForCheck())}getLabel(){return this.viewValue}_handleKeydown(e){(13===e.keyCode||32===e.keyCode)&&!Fs(e)&&(this._selectViaInteraction(),e.preventDefault())}_selectViaInteraction(){this.disabled||(this._selected=!this.multiple||!this._selected,this._changeDetectorRef.markForCheck(),this._emitSelectionChangeEvent(!0))}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._element.nativeElement}ngAfterViewChecked(){if(this._selected){const e=this.viewValue;e!==this._mostRecentViewValue&&(this._mostRecentViewValue&&this._stateChanges.next(),this._mostRecentViewValue=e)}}ngOnDestroy(){this._stateChanges.complete()}_emitSelectionChangeEvent(e=!1){this.onSelectionChange.emit(new cU(this,e))}}return t.\u0275fac=function(e){Aa()},t.\u0275dir=Ke({type:t,viewQuery:function(e,i){if(1&e&&_t($z,7),2&e){let o;rt(o=ot())&&(i._text=o.first)}},inputs:{value:"value",id:"id",disabled:"disabled"},outputs:{onSelectionChange:"onSelectionChange"}}),t})(),Pd=(()=>{class t extends dU{constructor(e,i,o,s){super(e,i,o,s)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(RL,8),Y(NL,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-option"]],hostAttrs:["role","option",1,"mat-mdc-option","mdc-list-item"],hostVars:11,hostBindings:function(e,i){1&e&&ye("click",function(){return i._selectViaInteraction()})("keydown",function(s){return i._handleKeydown(s)}),2&e&&(Js("id",i.id),Xt("aria-selected",i.selected)("aria-disabled",i.disabled.toString()),nn("mdc-list-item--selected",i.selected)("mat-mdc-option-multiple",i.multiple)("mat-mdc-option-active",i.active)("mdc-list-item--disabled",i.disabled))},exportAs:["matOption"],features:[nt],ngContentSelectors:Xz,decls:8,vars:5,consts:[["class","mat-mdc-option-pseudo-checkbox",3,"state","disabled",4,"ngIf"],[1,"mdc-list-item__primary-text"],["text",""],["class","mat-mdc-option-pseudo-checkbox","state","checked","appearance","minimal",3,"disabled",4,"ngIf"],["class","cdk-visually-hidden",4,"ngIf"],["mat-ripple","",1,"mat-mdc-option-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled"],[1,"mat-mdc-option-pseudo-checkbox",3,"state","disabled"],["state","checked","appearance","minimal",1,"mat-mdc-option-pseudo-checkbox",3,"disabled"],[1,"cdk-visually-hidden"]],template:function(e,i){1&e&&(Ir(Zz),V(0,Gz,1,2,"mat-pseudo-checkbox",0),Sn(1),D(2,"span",1,2),Sn(4,1),C(),V(5,qz,1,1,"mat-pseudo-checkbox",3),V(6,Kz,2,1,"span",4),xe(7,"div",5)),2&e&&(w("ngIf",i.multiple),c(5),w("ngIf",!i.multiple&&i.selected&&!i.hideSingleSelectionIndicator),c(1),w("ngIf",i.group&&i.group._inert),c(1),w("matRippleTrigger",i._getHostElement())("matRippleDisabled",i.disabled||i.disableRipple))},dependencies:[Zl,Ft,sU],styles:['.mat-mdc-option{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);min-height:48px}.mat-mdc-option:focus{outline:none}[dir=rtl] .mat-mdc-option,.mat-mdc-option[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-option.mdc-list-item{align-items:center}.mat-mdc-option.mdc-list-item--disabled{cursor:default;pointer-events:none}.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox,.mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text,.mat-mdc-option.mdc-list-item--disabled>mat-icon{opacity:.38}.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:32px}[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple){padding-left:16px;padding-right:32px}.mat-mdc-option .mat-icon,.mat-mdc-option .mat-pseudo-checkbox-full{margin-right:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-icon,[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full{margin-right:0;margin-left:16px}.mat-mdc-option .mat-pseudo-checkbox-minimal{margin-left:16px;flex-shrink:0}[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal{margin-right:16px;margin-left:0}.mat-mdc-option .mat-mdc-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-option .mdc-list-item__primary-text{white-space:normal;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;font-family:inherit;text-decoration:inherit;text-transform:inherit;margin-right:auto}[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text{margin-right:0;margin-left:auto}.cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{content:"";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-mdc-option.mdc-list-item--selected:not(.mat-mdc-option-multiple)::after{right:auto;left:16px}.mat-mdc-option-active .mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0}),t})(),YL=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Yh,ta,Wn,aU]}),t})();function fU(t,n){}class En{constructor(){this.role="dialog",this.panelClass="",this.hasBackdrop=!0,this.backdropClass="",this.disableClose=!1,this.width="",this.height="",this.maxWidth="80vw",this.data=null,this.ariaDescribedBy=null,this.ariaLabelledBy=null,this.ariaLabel=null,this.ariaModal=!0,this.autoFocus="first-tabbable",this.restoreFocus=!0,this.delayFocusTrap=!0,this.closeOnNavigation=!0}}const n1="mdc-dialog--open",HL="mdc-dialog--opening",BL="mdc-dialog--closing";let gU=(()=>{class t extends xL{constructor(e,i,o,s,a,l,d,_){super(e,i,o,s,a,l,d,_),this._animationStateChanged=new ht}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(e){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:e})}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y($0),Y(It,8),Y(En),Y(rg),Y(ft),Y(Ah),Y(Qa))},t.\u0275cmp=Ze({type:t,selectors:[["ng-component"]],features:[nt],decls:0,vars:0,template:function(e,i){},encapsulation:2}),t})();const VL="--mat-dialog-transition-duration";function jL(t){return null==t?null:"number"==typeof t?t:t.endsWith("ms")?So(t.substring(0,t.length-2)):t.endsWith("s")?1e3*So(t.substring(0,t.length-1)):"0"===t?0:null}let _U=(()=>{class t extends gU{constructor(e,i,o,s,a,l,d,_,E){super(e,i,o,s,a,l,d,E),this._animationMode=_,this._animationsEnabled="NoopAnimations"!==this._animationMode,this._hostElement=this._elementRef.nativeElement,this._openAnimationDuration=this._animationsEnabled?jL(this._config.enterAnimationDuration)??150:0,this._closeAnimationDuration=this._animationsEnabled?jL(this._config.exitAnimationDuration)??75:0,this._animationTimer=null,this._finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._openAnimationDuration)},this._finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._closeAnimationDuration})}}_contentAttached(){super._contentAttached(),this._startOpenAnimation()}ngOnDestroy(){super.ngOnDestroy(),null!==this._animationTimer&&clearTimeout(this._animationTimer)}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._openAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(VL,`${this._openAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(HL,n1)),this._waitForAnimationToComplete(this._openAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(n1),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._closeAnimationDuration}),this._hostElement.classList.remove(n1),this._animationsEnabled?(this._hostElement.style.setProperty(VL,`${this._openAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(BL)),this._waitForAnimationToComplete(this._closeAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_clearAnimationClasses(){this._hostElement.classList.remove(HL,BL)}_waitForAnimationToComplete(e,i){null!==this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(i,e)}_requestAnimationFrame(e){this._ngZone.runOutsideAngular(()=>{"function"==typeof requestAnimationFrame?requestAnimationFrame(e):e()})}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y($0),Y(It,8),Y(En),Y(rg),Y(ft),Y(Ah),Y(Ri,8),Y(Qa))},t.\u0275cmp=Ze({type:t,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:8,hostBindings:function(e,i){2&e&&(Js("id",i._config.id),Xt("aria-modal",i._config.ariaModal)("role",i._config.role)("aria-labelledby",i._config.ariaLabel?null:i._ariaLabelledBy)("aria-label",i._config.ariaLabel)("aria-describedby",i._config.ariaDescribedBy||null),nn("_mat-animation-noopable",!i._animationsEnabled))},features:[nt],decls:3,vars:0,consts:[[1,"mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,fU,0,0,"ng-template",2),C()())},dependencies:[Ja],styles:['.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-dialog,.mdc-dialog__scrim{position:fixed;top:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.mdc-dialog{display:none;z-index:var(--mdc-dialog-z-index, 7)}.mdc-dialog .mdc-dialog__content{padding:20px 24px 20px 24px}.mdc-dialog .mdc-dialog__surface{min-width:280px}@media(max-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:calc(100vw - 32px)}}@media(min-width: 592px){.mdc-dialog .mdc-dialog__surface{max-width:560px}}.mdc-dialog .mdc-dialog__surface{max-height:calc(100% - 32px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-width:none}@media(max-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px;width:560px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 112px)}}@media(max-width: 720px)and (min-width: 672px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:560px}}@media(max-width: 720px)and (max-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:calc(100vh - 160px)}}@media(max-width: 720px)and (min-height: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{max-height:560px}}@media(max-width: 720px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}@media(max-width: 720px)and (max-height: 400px),(max-width: 600px),(min-width: 720px)and (max-height: 400px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{height:100%;max-height:100vh;max-width:100vw;width:100vw;border-radius:0}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{order:-1;left:-12px}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__header{padding:0 16px 9px;justify-content:flex-start}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__title{margin-left:calc(16px - 2 * 12px)}}@media(min-width: 960px){.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface{width:calc(100vw - 400px)}.mdc-dialog.mdc-dialog--fullscreen .mdc-dialog__surface .mdc-dialog__close{right:-12px}}.mdc-dialog.mdc-dialog__scrim--hidden .mdc-dialog__scrim{opacity:0}.mdc-dialog__scrim{opacity:0;z-index:-1}.mdc-dialog__container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;transform:scale(0.8);opacity:0;pointer-events:none}.mdc-dialog__surface{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;max-width:100%;max-height:100%;pointer-events:auto;overflow-y:auto;outline:0}.mdc-dialog__surface .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}[dir=rtl] .mdc-dialog__surface,.mdc-dialog__surface[dir=rtl]{text-align:right}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-dialog__surface{outline:2px solid windowText}}.mdc-dialog__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-dialog__surface::before{border-color:CanvasText}}@media screen and (-ms-high-contrast: active),screen and (-ms-high-contrast: none){.mdc-dialog__surface::before{content:none}}.mdc-dialog__title{display:block;margin-top:0;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:0 24px 9px}.mdc-dialog__title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mdc-dialog__title,.mdc-dialog__title[dir=rtl]{text-align:right}.mdc-dialog--scrollable .mdc-dialog__title{margin-bottom:1px;padding-bottom:15px}.mdc-dialog--fullscreen .mdc-dialog__header{align-items:baseline;border-bottom:1px solid rgba(0,0,0,0);display:inline-flex;justify-content:space-between;padding:0 24px 9px;z-index:1}@media screen and (forced-colors: active){.mdc-dialog--fullscreen .mdc-dialog__header{border-bottom-color:CanvasText}}.mdc-dialog--fullscreen .mdc-dialog__header .mdc-dialog__close{right:-12px}.mdc-dialog--fullscreen .mdc-dialog__title{margin-bottom:0;padding:0;border-bottom:0}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__title{border-bottom:0;margin-bottom:0}.mdc-dialog--fullscreen .mdc-dialog__close{top:5px}.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog--fullscreen.mdc-dialog--scrollable .mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--fullscreen--titleless .mdc-dialog__close{margin-top:4px}.mdc-dialog--fullscreen--titleless.mdc-dialog--scrollable .mdc-dialog__close{margin-top:0}.mdc-dialog__content{flex-grow:1;box-sizing:border-box;margin:0;overflow:auto}.mdc-dialog__content>:first-child{margin-top:0}.mdc-dialog__content>:last-child{margin-bottom:0}.mdc-dialog__title+.mdc-dialog__content,.mdc-dialog__header+.mdc-dialog__content{padding-top:0}.mdc-dialog--scrollable .mdc-dialog__title+.mdc-dialog__content{padding-top:8px;padding-bottom:8px}.mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:6px 0 0}.mdc-dialog--scrollable .mdc-dialog__content .mdc-deprecated-list:first-child:last-child{padding:0}.mdc-dialog__actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0)}@media screen and (forced-colors: active){.mdc-dialog__actions{border-top-color:CanvasText}}.mdc-dialog--stacked .mdc-dialog__actions{flex-direction:column;align-items:flex-end}.mdc-dialog__button{margin-left:8px;margin-right:0;max-width:100%;text-align:right}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{margin-left:0;margin-right:8px}.mdc-dialog__button:first-child{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button:first-child,.mdc-dialog__button:first-child[dir=rtl]{margin-left:0;margin-right:0}[dir=rtl] .mdc-dialog__button,.mdc-dialog__button[dir=rtl]{text-align:left}.mdc-dialog--stacked .mdc-dialog__button:not(:first-child){margin-top:12px}.mdc-dialog--open,.mdc-dialog--opening,.mdc-dialog--closing{display:flex}.mdc-dialog--opening .mdc-dialog__scrim{transition:opacity 150ms linear}.mdc-dialog--opening .mdc-dialog__container{transition:opacity 75ms linear,transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-dialog--closing .mdc-dialog__scrim,.mdc-dialog--closing .mdc-dialog__container{transition:opacity 75ms linear}.mdc-dialog--closing .mdc-dialog__container{transform:none}.mdc-dialog--open .mdc-dialog__scrim{opacity:1}.mdc-dialog--open .mdc-dialog__container{transform:none;opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim{opacity:1}.mdc-dialog--open.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{transition:opacity 75ms linear}.mdc-dialog--open.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim{transition:opacity 150ms linear}.mdc-dialog__surface-scrim{display:none;opacity:0;position:absolute;width:100%;height:100%;z-index:1}.mdc-dialog__surface-scrim--shown .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--showing .mdc-dialog__surface-scrim,.mdc-dialog__surface-scrim--hiding .mdc-dialog__surface-scrim{display:block}.mdc-dialog-scroll-lock{overflow:hidden}.mdc-dialog--no-content-padding .mdc-dialog__content{padding:0}.mdc-dialog--sheet .mdc-dialog__container .mdc-dialog__close{right:12px;top:9px;position:absolute;z-index:1}.mdc-dialog__scrim--removed{pointer-events:none}.mdc-dialog__scrim--removed .mdc-dialog__scrim,.mdc-dialog__scrim--removed .mdc-dialog__surface-scrim{display:none}.mat-mdc-dialog-content{max-height:65vh}.mat-mdc-dialog-container{position:static;display:block}.mat-mdc-dialog-container,.mat-mdc-dialog-container .mdc-dialog__container,.mat-mdc-dialog-container .mdc-dialog__surface{max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mat-mdc-dialog-container .mdc-dialog__surface{display:block;width:100%;height:100%}.mat-mdc-dialog-container{--mdc-dialog-container-elevation-shadow:0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);--mdc-dialog-container-shadow-color:#000;--mdc-dialog-container-shape:4px;--mdc-dialog-container-elevation: var(--mdc-dialog-container-elevation-shadow);outline:0}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:var(--mdc-dialog-container-color, white)}.mat-mdc-dialog-container .mdc-dialog__surface{box-shadow:var(--mdc-dialog-container-elevation, 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12))}.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:var(--mdc-dialog-container-shape, 4px)}.mat-mdc-dialog-container .mdc-dialog__title{font-family:var(--mdc-dialog-subhead-font, Roboto, sans-serif);line-height:var(--mdc-dialog-subhead-line-height, 1.5rem);font-size:var(--mdc-dialog-subhead-size, 1rem);font-weight:var(--mdc-dialog-subhead-weight, 400);letter-spacing:var(--mdc-dialog-subhead-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__title{color:var(--mdc-dialog-subhead-color, rgba(0, 0, 0, 0.87))}.mat-mdc-dialog-container .mdc-dialog__content{font-family:var(--mdc-dialog-supporting-text-font, Roboto, sans-serif);line-height:var(--mdc-dialog-supporting-text-line-height, 1.5rem);font-size:var(--mdc-dialog-supporting-text-size, 1rem);font-weight:var(--mdc-dialog-supporting-text-weight, 400);letter-spacing:var(--mdc-dialog-supporting-text-tracking, 0.03125em)}.mat-mdc-dialog-container .mdc-dialog__content{color:var(--mdc-dialog-supporting-text-color, rgba(0, 0, 0, 0.6))}.mat-mdc-dialog-container .mdc-dialog__container{transition-duration:var(--mat-dialog-transition-duration, 0ms)}.mat-mdc-dialog-container._mat-animation-noopable .mdc-dialog__container{transition:none}.mat-mdc-dialog-content{display:block}.mat-mdc-dialog-actions{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}'],encapsulation:2}),t})();class Bn{constructor(n,e,i){this._ref=n,this._containerInstance=i,this._afterOpened=new J,this._beforeClosed=new J,this._state=0,this.disableClose=e.disableClose,this.id=n.id,i._animationStateChanged.pipe(_i(o=>"opened"===o.state),Kn(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),i._animationStateChanged.pipe(_i(o=>"closed"===o.state),Kn(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),n.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),bt(this.backdropClick(),this.keydownEvents().pipe(_i(o=>27===o.keyCode&&!this.disableClose&&!Fs(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),zL(this,"keydown"===o.type?"keyboard":"mouse"))})}close(n){this._result=n,this._containerInstance._animationStateChanged.pipe(_i(e=>"closing"===e.state),Kn(1)).subscribe(e=>{this._beforeClosed.next(n),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),e.totalTime+100)}),this._state=1,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(n){let e=this._ref.config.positionStrategy;return n&&(n.left||n.right)?n.left?e.left(n.left):e.right(n.right):e.centerHorizontally(),n&&(n.top||n.bottom)?n.top?e.top(n.top):e.bottom(n.bottom):e.centerVertically(),this._ref.updatePosition(),this}updateSize(n="",e=""){return this._ref.updateSize(n,e),this}addPanelClass(n){return this._ref.addPanelClass(n),this}removePanelClass(n){return this._ref.removePanelClass(n),this}getState(){return this._state}_finishDialogClose(){this._state=2,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}}function zL(t,n,e){return t._closeInteractionType=n,t.close(e)}const Li=new Re("MatMdcDialogData"),UL=new Re("mat-mdc-dialog-default-options"),WL=new Re("mat-mdc-dialog-scroll-strategy"),vU={provide:WL,deps:[io],useFactory:function bU(t){return()=>t.scrollStrategies.block()}};let yU=0,MU=(()=>{class t{get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){const e=this._parentDialog;return e?e._getAfterAllClosed():this._afterAllClosedAtThisLevel}constructor(e,i,o,s,a,l,d,_,E,F){this._overlay=e,this._defaultOptions=o,this._parentDialog=s,this._dialogRefConstructor=d,this._dialogContainerType=_,this._dialogDataToken=E,this._openDialogsAtThisLevel=[],this._afterAllClosedAtThisLevel=new J,this._afterOpenedAtThisLevel=new J,this._idPrefix="mat-dialog-",this.dialogConfigClass=En,this.afterAllClosed=jl(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(Go(void 0))),this._scrollStrategy=l,this._dialog=i.get(SL)}open(e,i){let o;(i={...this._defaultOptions||new En,...i}).id=i.id||`${this._idPrefix}${yU++}`,i.scrollStrategy=i.scrollStrategy||this._scrollStrategy();const s=this._dialog.open(e,{...i,positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:i},{provide:sg,useValue:i}]},templateContext:()=>({dialogRef:o}),providers:(a,l,d)=>(o=new this._dialogRefConstructor(a,i,d),o.updatePosition(i?.position),[{provide:this._dialogContainerType,useValue:d},{provide:this._dialogDataToken,useValue:l.data},{provide:this._dialogRefConstructor,useValue:o}])});return o.componentInstance=s.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{const a=this.openDialogs.indexOf(o);a>-1&&(this.openDialogs.splice(a,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(e){return this.openDialogs.find(i=>i.id===e)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(e){let i=e.length;for(;i--;)e[i].close()}}return t.\u0275fac=function(e){Aa()},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),In=(()=>{class t extends MU{constructor(e,i,o,s,a,l,d,_){super(e,i,s,l,d,a,Bn,_U,Li,_),this._idPrefix="mat-mdc-dialog-"}}return t.\u0275fac=function(e){return new(e||t)(we(io),we(Si),we(Xu,8),we(UL,8),we(WL),we(t,12),we(tg),we(Ri,8))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),wU=0,CU=(()=>{class t{constructor(e,i,o){this.dialogRef=e,this._elementRef=i,this._dialog=o,this.type="button"}ngOnInit(){this.dialogRef||(this.dialogRef=$L(this._elementRef,this._dialog.openDialogs))}ngOnChanges(e){const i=e._matDialogClose||e._matDialogCloseResult;i&&(this.dialogResult=i.currentValue)}_onButtonClick(e){zL(this.dialogRef,0===e.screenX&&0===e.screenY?"keyboard":"mouse",this.dialogResult)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn,8),Y(vt),Y(In))},t.\u0275dir=Ke({type:t,selectors:[["","mat-dialog-close",""],["","matDialogClose",""]],hostVars:2,hostBindings:function(e,i){1&e&&ye("click",function(s){return i._onButtonClick(s)}),2&e&&Xt("aria-label",i.ariaLabel||null)("type",i.type)},inputs:{ariaLabel:["aria-label","ariaLabel"],type:"type",dialogResult:["mat-dialog-close","dialogResult"],_matDialogClose:["matDialogClose","_matDialogClose"]},exportAs:["matDialogClose"],features:[Gi]}),t})(),xU=(()=>{class t{constructor(e,i,o){this._dialogRef=e,this._elementRef=i,this._dialog=o,this.id="mat-mdc-dialog-title-"+wU++}ngOnInit(){this._dialogRef||(this._dialogRef=$L(this._elementRef,this._dialog.openDialogs)),this._dialogRef&&Promise.resolve().then(()=>{const e=this._dialogRef._containerInstance;e&&!e._ariaLabelledBy&&(e._ariaLabelledBy=this.id)})}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn,8),Y(vt),Y(In))},t.\u0275dir=Ke({type:t,selectors:[["","mat-dialog-title",""],["","matDialogTitle",""]],hostAttrs:[1,"mat-mdc-dialog-title","mdc-dialog__title"],hostVars:1,hostBindings:function(e,i){2&e&&Js("id",i.id)},inputs:{id:"id"},exportAs:["matDialogTitle"]}),t})(),r1=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["","mat-dialog-content",""],["mat-dialog-content"],["","matDialogContent",""]],hostAttrs:[1,"mat-mdc-dialog-content","mdc-dialog__content"]}),t})();function $L(t,n){let e=t.nativeElement.parentElement;for(;e&&!e.classList.contains("mat-mdc-dialog-container");)e=e.parentElement;return e?n.find(i=>i.id===e.id):null}let kU=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[In,vU],imports:[Wz,Td,Dd,Wn,Wn]}),t})();const qL=["mat-button",""],KL=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],ZL=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"],XL=".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}",DU=["mat-icon-button",""],TU=["*"],JL={capture:!0},QL=["focus","click","mouseenter","touchstart"],Hh="mat-button-ripple-uninitialized";let LU=(()=>{class t{constructor(){this._document=Qe(It,{optional:!0}),this._animationMode=Qe(Ri,{optional:!0}),this._globalRippleOptions=Qe(t1,{optional:!0}),this._platform=Qe(ui),this._ngZone=Qe(ft),this._onInteraction=e=>{if(e.target===this._document)return;const o=e.target.closest(`[${Hh}]`);o&&(o.removeAttribute(Hh),this._appendRipple(o))},this._ngZone.runOutsideAngular(()=>{for(const e of QL)this._document?.addEventListener(e,this._onInteraction,JL)})}ngOnDestroy(){for(const e of QL)this._document?.removeEventListener(e,this._onInteraction,JL)}_appendRipple(e){if(!this._document)return;const i=this._document.createElement("span");i.classList.add("mat-mdc-button-ripple");const o=new EU(e,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);o.rippleConfig.centered=e.hasAttribute("mat-icon-button"),new Id(o,this._ngZone,i,this._platform).setupTriggerEvents(e),e.append(i)}_createMatRipple(e){if(!this._document)return;e.querySelector(".mat-mdc-button-ripple")?.remove(),e.removeAttribute(Hh);const i=this._document.createElement("span");i.classList.add("mat-mdc-button-ripple");const o=new Zl(new vt(i),this._ngZone,this._platform,this._globalRippleOptions?this._globalRippleOptions:void 0,this._animationMode?this._animationMode:void 0);return o._isInitialized=!0,o.trigger=e,e.append(i),o}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class EU{constructor(n,e,i){this._button=n,this._globalRippleOptions=e,this._setRippleConfig(e,i)}_setRippleConfig(n,e){this.rippleConfig=n||{},"NoopAnimations"===e&&(this.rippleConfig.animation={enterDuration:0,exitDuration:0})}get rippleDisabled(){return this._button.hasAttribute("disabled")||!!this._globalRippleOptions?.disabled}}const IU=[{selector:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{selector:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{selector:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{selector:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{selector:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab"]},{selector:"mat-mini-fab",mdcClasses:["mdc-fab","mdc-fab--mini","mat-mdc-mini-fab"]},{selector:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],PU=Fh(Ed(Rh(class{constructor(t){this._elementRef=t}})));let o1=(()=>{class t extends PU{get ripple(){return!this._ripple&&this._rippleLoader&&(this._ripple=this._rippleLoader._createMatRipple(this._elementRef.nativeElement)),this._ripple}set ripple(e){this._ripple=e}constructor(e,i,o,s){super(e),this._platform=i,this._ngZone=o,this._animationMode=s,this._focusMonitor=Qe(Qa),this._rippleLoader=Qe(LU),this._isFab=!1;const a=e.nativeElement.classList;for(const l of IU)this._hasHostAttributes(l.selector)&&l.mdcClasses.forEach(d=>{a.add(d)})}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef)}focus(e="program",i){e?this._focusMonitor.focusVia(this._elementRef.nativeElement,e,i):this._elementRef.nativeElement.focus(i)}_hasHostAttributes(...e){return e.some(i=>this._elementRef.nativeElement.hasAttribute(i))}_isRippleDisabled(){this._ripple&&(this._ripple.disabled=this.disableRipple||this.disabled)}}return t.\u0275fac=function(e){Aa()},t.\u0275dir=Ke({type:t,features:[nt]}),t})(),AU=(()=>{class t extends o1{constructor(e,i,o,s){super(e,i,o,s),this._haltDisabledEvents=a=>{this.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}}ngOnInit(){this._ngZone.runOutsideAngular(()=>{this._elementRef.nativeElement.addEventListener("click",this._haltDisabledEvents)})}ngOnDestroy(){super.ngOnDestroy(),this._elementRef.nativeElement.removeEventListener("click",this._haltDisabledEvents)}}return t.\u0275fac=function(e){Aa()},t.\u0275dir=Ke({type:t,features:[nt]}),t})(),Wr=(()=>{class t extends o1{constructor(e,i,o,s){super(e,i,o,s)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ui),Y(ft),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostAttrs:["mat-button-ripple-uninitialized",""],hostVars:9,hostBindings:function(e,i){2&e&&(Xt("disabled",i.disabled||null)("mat-button-disabled",i._isRippleDisabled())("mat-button-is-fab",i._isFab),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[nt],attrs:qL,ngContentSelectors:ZL,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(Ir(KL),xe(0,"span",0),Sn(1),D(2,"span",1),Sn(3,1),C(),Sn(4,2),xe(5,"span",2)(6,"span",3)),2&e&&nn("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}"],encapsulation:2,changeDetection:0}),t})(),FU=(()=>{class t extends AU{constructor(e,i,o,s){super(e,i,o,s)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ui),Y(ft),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["a","mat-button",""],["a","mat-raised-button",""],["a","mat-flat-button",""],["a","mat-stroked-button",""]],hostAttrs:["mat-button-ripple-uninitialized",""],hostVars:11,hostBindings:function(e,i){2&e&&(Xt("disabled",i.disabled||null)("tabindex",i.disabled?-1:i.tabIndex)("aria-disabled",i.disabled.toString())("mat-button-disabled",i._isRippleDisabled())("mat-button-is-fab",i._isFab),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matButton","matAnchor"],features:[nt],attrs:qL,ngContentSelectors:ZL,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(Ir(KL),xe(0,"span",0),Sn(1),D(2,"span",1),Sn(3,1),C(),Sn(4,2),xe(5,"span",2)(6,"span",3)),2&e&&nn("mdc-button__ripple",!i._isFab)("mdc-fab__ripple",i._isFab)},styles:['.mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\n 100% + 4px\n );width:calc(\n 100% + 4px\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}',XL],encapsulation:2,changeDetection:0}),t})(),el=(()=>{class t extends o1{get ripple(){return!this._ripple&&this._rippleLoader&&(this._ripple=this._rippleLoader._createMatRipple(this._elementRef.nativeElement),this._ripple.centered=!0),this._ripple}constructor(e,i,o,s){super(e,i,o,s)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ui),Y(ft),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["button","mat-icon-button",""]],hostAttrs:["mat-button-ripple-uninitialized",""],hostVars:9,hostBindings:function(e,i){2&e&&(Xt("disabled",i.disabled||null)("mat-button-disabled",i._isRippleDisabled())("mat-button-is-fab",i._isFab),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mat-unthemed",!i.color)("mat-mdc-button-base",!0))},inputs:{disabled:"disabled",disableRipple:"disableRipple",color:"color"},exportAs:["matButton"],features:[nt],attrs:DU,ngContentSelectors:TU,decls:4,vars:0,consts:[[1,"mat-mdc-button-persistent-ripple","mdc-icon-button__ripple"],[1,"mat-mdc-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(e,i){1&e&&(Ir(),xe(0,"span",0),Sn(1),xe(2,"span",1)(3,"span",2))},styles:['.mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:""}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}',XL],encapsulation:2,changeDetection:0}),t})(),eE=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,Yh,Wn]}),t})();function NU(t,n){if(1&t){const e=et();D(0,"div",2)(1,"button",3),ye("click",function(){return Pe(e),Oe(z().action())}),I(2),C()()}if(2&t){const e=z();c(2),ce(" ",e.data.action," ")}}const YU=["label"];function HU(t,n){}const BU=Math.pow(2,31)-1;class ag{constructor(n,e){this._overlayRef=e,this._afterDismissed=new J,this._afterOpened=new J,this._onAction=new J,this._dismissedByAction=!1,this.containerInstance=n,n._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(n){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(n,BU))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}}const s1=new Re("MatSnackBarData");class lg{constructor(){this.politeness="assertive",this.announcementMessage="",this.duration=0,this.data=null,this.horizontalPosition="center",this.verticalPosition="bottom"}}let VU=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]}),t})(),jU=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]}),t})(),zU=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]}),t})(),UU=(()=>{class t{constructor(e,i){this.snackBarRef=e,this.data=i}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}}return t.\u0275fac=function(e){return new(e||t)(Y(ag),Y(s1))},t.\u0275cmp=Ze({type:t,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions","",4,"ngIf"],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(e,i){1&e&&(D(0,"div",0),I(1),C(),V(2,NU,3,1,"div",1)),2&e&&(c(1),ce(" ",i.data.message,"\n"),c(1),w("ngIf",i.hasAction))},dependencies:[Ft,Wr,VU,jU,zU],styles:[".mat-mdc-simple-snack-bar{display:flex}"],encapsulation:2,changeDetection:0}),t})();const WU={snackBarState:ia("state",[yo("void, hidden",Qn({transform:"scale(0.8)",opacity:0})),yo("visible",Qn({transform:"scale(1)",opacity:1})),Pr("* => visible",Ur("150ms cubic-bezier(0, 0, 0.2, 1)")),Pr("* => void, * => hidden",Ur("75ms cubic-bezier(0.4, 0.0, 1, 1)",Qn({opacity:0})))])};let $U=0,GU=(()=>{class t extends Zm{constructor(e,i,o,s,a){super(),this._ngZone=e,this._elementRef=i,this._changeDetectorRef=o,this._platform=s,this.snackBarConfig=a,this._document=Qe(It),this._trackedModals=new Set,this._announceDelay=150,this._destroyed=!1,this._onAnnounce=new J,this._onExit=new J,this._onEnter=new J,this._animationState="void",this._liveElementId="mat-snack-bar-container-live-"+$U++,this.attachDomPortal=l=>{this._assertNotAttached();const d=this._portalOutlet.attachDomPortal(l);return this._afterPortalAttached(),d},this._live="assertive"!==a.politeness||a.announcementMessage?"off"===a.politeness?"off":"polite":"assertive",this._platform.FIREFOX&&("polite"===this._live&&(this._role="status"),"assertive"===this._live&&(this._role="alert"))}attachComponentPortal(e){this._assertNotAttached();const i=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),i}attachTemplatePortal(e){this._assertNotAttached();const i=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),i}onAnimationEnd(e){const{fromState:i,toState:o}=e;if(("void"===o&&"void"!==i||"hidden"===o)&&this._completeExit(),"visible"===o){const s=this._onEnter;this._ngZone.run(()=>{s.next(),s.complete()})}}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce())}exit(){return this._ngZone.run(()=>{this._animationState="hidden",this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId)}),this._onExit}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit()}_completeExit(){this._ngZone.onMicrotaskEmpty.pipe(Kn(1)).subscribe(()=>{this._ngZone.run(()=>{this._onExit.next(),this._onExit.complete()})})}_afterPortalAttached(){const e=this._elementRef.nativeElement,i=this.snackBarConfig.panelClass;i&&(Array.isArray(i)?i.forEach(o=>e.classList.add(o)):e.classList.add(i)),this._exposeToModals()}_exposeToModals(){const e=this._liveElementId,i=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{const i=e.getAttribute("aria-owns");if(i){const o=i.replace(this._liveElementId,"").trim();o.length>0?e.setAttribute("aria-owns",o):e.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{const e=this._elementRef.nativeElement.querySelector("[aria-hidden]"),i=this._elementRef.nativeElement.querySelector("[aria-live]");if(e&&i){let o=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&e.contains(document.activeElement)&&(o=document.activeElement),e.removeAttribute("aria-hidden"),i.appendChild(e),o?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}}return t.\u0275fac=function(e){return new(e||t)(Y(ft),Y(vt),Y(pi),Y(ui),Y(lg))},t.\u0275dir=Ke({type:t,viewQuery:function(e,i){if(1&e&&_t(Ja,7),2&e){let o;rt(o=ot())&&(i._portalOutlet=o.first)}},features:[nt]}),t})(),qU=(()=>{class t extends GU{_afterPortalAttached(){super._afterPortalAttached();const e=this._label.nativeElement,i="mdc-snackbar__label";e.classList.toggle(i,!e.querySelector(`.${i}`))}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["mat-snack-bar-container"]],viewQuery:function(e,i){if(1&e&&_t(YU,7),2&e){let o;rt(o=ot())&&(i._label=o.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container","mdc-snackbar--open"],hostVars:1,hostBindings:function(e,i){1&e&&lv("@state.done",function(s){return i.onAnimationEnd(s)}),2&e&&pv("@state",i._animationState)},features:[nt],decls:6,vars:3,consts:[[1,"mdc-snackbar__surface"],[1,"mat-mdc-snack-bar-label"],["label",""],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1,2)(3,"div",3),V(4,HU,0,0,"ng-template",4),C(),xe(5,"div"),C()()),2&e&&(c(5),Xt("aria-live",i._live)("role",i._role)("id",i._liveElementId))},dependencies:[Ja],styles:['.mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;--mdc-snackbar-container-shape:4px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container{width:100vw}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape)}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size);font-family:var(--mdc-snackbar-supporting-text-font);font-weight:var(--mdc-snackbar-supporting-text-weight);line-height:var(--mdc-snackbar-supporting-text-line-height)}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-snack-bar-button-color);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-container .mdc-snackbar__label::before{display:none}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}'],encapsulation:2,data:{animation:[WU.snackBarState]}}),t})(),tE=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Td,Dd,ta,eE,Wn,Wn]}),t})();const a1=new Re("mat-snack-bar-default-options",{providedIn:"root",factory:function KU(){return new lg}});let ZU=(()=>{class t{get _openedSnackBarRef(){const e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}constructor(e,i,o,s,a,l){this._overlay=e,this._live=i,this._injector=o,this._breakpointObserver=s,this._parentSnackBar=a,this._defaultConfig=l,this._snackBarRefAtThisLevel=null}openFromComponent(e,i){return this._attach(e,i)}openFromTemplate(e,i){return this._attach(e,i)}open(e,i="",o){const s={...this._defaultConfig,...o};return s.data={message:e,action:i},s.announcementMessage===e&&(s.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,s)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,i){const s=Si.create({parent:i&&i.viewContainerRef&&i.viewContainerRef.injector||this._injector,providers:[{provide:lg,useValue:i}]}),a=new Sd(this.snackBarContainerComponent,i.viewContainerRef,s),l=e.attach(a);return l.instance.snackBarConfig=i,l.instance}_attach(e,i){const o={...new lg,...this._defaultConfig,...i},s=this._createOverlay(o),a=this._attachSnackBarContainer(s,o),l=new ag(a,s);if(e instanceof mr){const d=new Gl(e,null,{$implicit:o.data,snackBarRef:l});l.instance=a.attachTemplatePortal(d)}else{const d=this._createInjector(o,l),_=new Sd(e,void 0,d),E=a.attachComponentPortal(_);l.instance=E.instance}return this._breakpointObserver.observe("(max-width: 599.98px) and (orientation: portrait)").pipe(Hn(s.detachments())).subscribe(d=>{s.overlayElement.classList.toggle(this.handsetCssClass,d.matches)}),o.announcementMessage&&a._onAnnounce.subscribe(()=>{this._live.announce(o.announcementMessage,o.politeness)}),this._animateSnackBar(l,o),this._openedSnackBarRef=l,this._openedSnackBarRef}_animateSnackBar(e,i){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),i.announcementMessage&&this._live.clear()}),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter(),i.duration&&i.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(i.duration))}_createOverlay(e){const i=new Oh;i.direction=e.direction;let o=this._overlay.position().global();const s="rtl"===e.direction,a="left"===e.horizontalPosition||"start"===e.horizontalPosition&&!s||"end"===e.horizontalPosition&&s,l=!a&&"center"!==e.horizontalPosition;return a?o.left("0"):l?o.right("0"):o.centerHorizontally(),"top"===e.verticalPosition?o.top("0"):o.bottom("0"),i.positionStrategy=o,this._overlay.create(i)}_createInjector(e,i){return Si.create({parent:e&&e.viewContainerRef&&e.viewContainerRef.injector||this._injector,providers:[{provide:ag,useValue:i},{provide:s1,useValue:e.data}]})}}return t.\u0275fac=function(e){return new(e||t)(we(io),we(K0),we(Si),we(z0),we(t,12),we(a1))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})(),XU=(()=>{class t extends ZU{constructor(e,i,o,s,a,l){super(e,i,o,s,a,l),this.simpleSnackBarComponent=UU,this.snackBarContainerComponent=qU,this.handsetCssClass="mat-mdc-snack-bar-handset"}}return t.\u0275fac=function(e){return new(e||t)(we(io),we(K0),we(Si),we(z0),we(t,12),we(a1))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:tE}),t})();function l1(...t){if(1===t.length){const n=t[0];if(M(n))return cg(n,null);if(p(n)&&Object.getPrototypeOf(n)===Object.prototype){const e=Object.keys(n);return cg(e.map(i=>n[i]),e)}}if("function"==typeof t[t.length-1]){const n=t.pop();return cg(t=1===t.length&&M(t[0])?t[0]:t,null).pipe(ke(e=>n(...e)))}return cg(t,null)}function cg(t,n){return new he(e=>{const i=t.length;if(0===i)return void e.complete();const o=new Array(i);let s=0,a=0;for(let l=0;l{_||(_=!0,a++),o[l]=E},error:E=>e.error(E),complete:()=>{s++,(s===i||!_)&&(a===i&&e.next(n?n.reduce((E,F,G)=>(E[F]=o[G],E),{}):o),e.complete())}}))}})}const JU=["*"];let dg;function Bh(t){return function QU(){if(void 0===dg&&(dg=null,typeof window<"u")){const t=window;void 0!==t.trustedTypes&&(dg=t.trustedTypes.createPolicy("angular#components",{createHTML:n=>n}))}return dg}()?.createHTML(t)||t}function nE(t){return Error(`Unable to find icon with the name "${t}"`)}function iE(t){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${t}".`)}function rE(t){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${t}".`)}class Xl{constructor(n,e,i){this.url=n,this.svgText=e,this.options=i}}let ug=(()=>{class t{constructor(e,i,o,s){this._httpClient=e,this._sanitizer=i,this._errorHandler=s,this._svgIconConfigs=new Map,this._iconSetConfigs=new Map,this._cachedIconsByUrl=new Map,this._inProgressUrlFetches=new Map,this._fontCssClassesByAlias=new Map,this._resolvers=[],this._defaultFontSetClass=["material-icons","mat-ligature-font"],this._document=o}addSvgIcon(e,i,o){return this.addSvgIconInNamespace("",e,i,o)}addSvgIconLiteral(e,i,o){return this.addSvgIconLiteralInNamespace("",e,i,o)}addSvgIconInNamespace(e,i,o,s){return this._addSvgIconConfig(e,i,new Xl(o,null,s))}addSvgIconResolver(e){return this._resolvers.push(e),this}addSvgIconLiteralInNamespace(e,i,o,s){const a=this._sanitizer.sanitize(kn.HTML,o);if(!a)throw rE(o);const l=Bh(a);return this._addSvgIconConfig(e,i,new Xl("",l,s))}addSvgIconSet(e,i){return this.addSvgIconSetInNamespace("",e,i)}addSvgIconSetLiteral(e,i){return this.addSvgIconSetLiteralInNamespace("",e,i)}addSvgIconSetInNamespace(e,i,o){return this._addSvgIconSetConfig(e,new Xl(i,null,o))}addSvgIconSetLiteralInNamespace(e,i,o){const s=this._sanitizer.sanitize(kn.HTML,i);if(!s)throw rE(i);const a=Bh(s);return this._addSvgIconSetConfig(e,new Xl("",a,o))}registerFontClassAlias(e,i=e){return this._fontCssClassesByAlias.set(e,i),this}classNameForFontAlias(e){return this._fontCssClassesByAlias.get(e)||e}setDefaultFontSetClass(...e){return this._defaultFontSetClass=e,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(e){const i=this._sanitizer.sanitize(kn.RESOURCE_URL,e);if(!i)throw iE(e);const o=this._cachedIconsByUrl.get(i);return o?$e(hg(o)):this._loadSvgIconFromConfig(new Xl(e,null)).pipe(bi(s=>this._cachedIconsByUrl.set(i,s)),ke(s=>hg(s)))}getNamedSvgIcon(e,i=""){const o=oE(i,e);let s=this._svgIconConfigs.get(o);if(s)return this._getSvgFromConfig(s);if(s=this._getIconConfigFromResolvers(i,e),s)return this._svgIconConfigs.set(o,s),this._getSvgFromConfig(s);const a=this._iconSetConfigs.get(i);return a?this._getSvgFromIconSetConfigs(e,a):Ar(nE(o))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(e){return e.svgText?$e(hg(this._svgElementFromConfig(e))):this._loadSvgIconFromConfig(e).pipe(ke(i=>hg(i)))}_getSvgFromIconSetConfigs(e,i){const o=this._extractIconWithNameFromAnySet(e,i);return o?$e(o):l1(i.filter(a=>!a.svgText).map(a=>this._loadSvgIconSetFromConfig(a).pipe(Co(l=>{const _=`Loading icon set URL: ${this._sanitizer.sanitize(kn.RESOURCE_URL,a.url)} failed: ${l.message}`;return this._errorHandler.handleError(new Error(_)),$e(null)})))).pipe(ke(()=>{const a=this._extractIconWithNameFromAnySet(e,i);if(!a)throw nE(e);return a}))}_extractIconWithNameFromAnySet(e,i){for(let o=i.length-1;o>=0;o--){const s=i[o];if(s.svgText&&s.svgText.toString().indexOf(e)>-1){const a=this._svgElementFromConfig(s),l=this._extractSvgIconFromSet(a,e,s.options);if(l)return l}}return null}_loadSvgIconFromConfig(e){return this._fetchIcon(e).pipe(bi(i=>e.svgText=i),ke(()=>this._svgElementFromConfig(e)))}_loadSvgIconSetFromConfig(e){return e.svgText?$e(null):this._fetchIcon(e).pipe(bi(i=>e.svgText=i))}_extractSvgIconFromSet(e,i,o){const s=e.querySelector(`[id="${i}"]`);if(!s)return null;const a=s.cloneNode(!0);if(a.removeAttribute("id"),"svg"===a.nodeName.toLowerCase())return this._setSvgAttributes(a,o);if("symbol"===a.nodeName.toLowerCase())return this._setSvgAttributes(this._toSvgElement(a),o);const l=this._svgElementFromString(Bh(""));return l.appendChild(a),this._setSvgAttributes(l,o)}_svgElementFromString(e){const i=this._document.createElement("DIV");i.innerHTML=e;const o=i.querySelector("svg");if(!o)throw Error(" tag not found");return o}_toSvgElement(e){const i=this._svgElementFromString(Bh("")),o=e.attributes;for(let s=0;sBh(_)),km(()=>this._inProgressUrlFetches.delete(a)),dl());return this._inProgressUrlFetches.set(a,d),d}_addSvgIconConfig(e,i,o){return this._svgIconConfigs.set(oE(e,i),o),this}_addSvgIconSetConfig(e,i){const o=this._iconSetConfigs.get(e);return o?o.push(i):this._iconSetConfigs.set(e,[i]),this}_svgElementFromConfig(e){if(!e.svgElement){const i=this._svgElementFromString(e.svgText);this._setSvgAttributes(i,e.options),e.svgElement=i}return e.svgElement}_getIconConfigFromResolvers(e,i){for(let o=0;on?n.pathname+n.search:""}}}),sE=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],aW=sE.map(t=>`[${t}]`).join(", "),lW=/^url\(['"]?#(.*?)['"]?\)$/;let Cn=(()=>{class t extends iW{get inline(){return this._inline}set inline(e){this._inline=_n(e)}get svgIcon(){return this._svgIcon}set svgIcon(e){e!==this._svgIcon&&(e?this._updateSvgIcon(e):this._svgIcon&&this._clearSvgElement(),this._svgIcon=e)}get fontSet(){return this._fontSet}set fontSet(e){const i=this._cleanupFontValue(e);i!==this._fontSet&&(this._fontSet=i,this._updateFontIconClasses())}get fontIcon(){return this._fontIcon}set fontIcon(e){const i=this._cleanupFontValue(e);i!==this._fontIcon&&(this._fontIcon=i,this._updateFontIconClasses())}constructor(e,i,o,s,a,l){super(e),this._iconRegistry=i,this._location=s,this._errorHandler=a,this._inline=!1,this._previousFontSetClass=[],this._currentIconFetch=T.EMPTY,l&&(l.color&&(this.color=this.defaultColor=l.color),l.fontSet&&(this.fontSet=l.fontSet)),o||e.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(e){if(!e)return["",""];const i=e.split(":");switch(i.length){case 1:return["",i[0]];case 2:return i;default:throw Error(`Invalid icon name: "${e}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){const e=this._elementsWithExternalReferences;if(e&&e.size){const i=this._location.getPathname();i!==this._previousPath&&(this._previousPath=i,this._prependPathToReferences(i))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(e){this._clearSvgElement();const i=this._location.getPathname();this._previousPath=i,this._cacheChildrenWithExternalReferences(e),this._prependPathToReferences(i),this._elementRef.nativeElement.appendChild(e)}_clearSvgElement(){const e=this._elementRef.nativeElement;let i=e.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();i--;){const o=e.childNodes[i];(1!==o.nodeType||"svg"===o.nodeName.toLowerCase())&&o.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;const e=this._elementRef.nativeElement,i=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(o=>o.length>0);this._previousFontSetClass.forEach(o=>e.classList.remove(o)),i.forEach(o=>e.classList.add(o)),this._previousFontSetClass=i,this.fontIcon!==this._previousFontIconClass&&!i.includes("mat-ligature-font")&&(this._previousFontIconClass&&e.classList.remove(this._previousFontIconClass),this.fontIcon&&e.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(e){return"string"==typeof e?e.trim().split(" ")[0]:e}_prependPathToReferences(e){const i=this._elementsWithExternalReferences;i&&i.forEach((o,s)=>{o.forEach(a=>{s.setAttribute(a.name,`url('${e}#${a.value}')`)})})}_cacheChildrenWithExternalReferences(e){const i=e.querySelectorAll(aW),o=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let s=0;s{const l=i[s],d=l.getAttribute(a),_=d?d.match(lW):null;if(_){let E=o.get(l);E||(E=[],o.set(l,E)),E.push({name:a,value:_[1]})}})}_updateSvgIcon(e){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),e){const[i,o]=this._splitIconName(e);i&&(this._svgNamespace=i),o&&(this._svgName=o),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(o,i).pipe(Kn(1)).subscribe(s=>this._setSvgElement(s),s=>{this._errorHandler.handleError(new Error(`Error retrieving icon ${i}:${o}! ${s.message}`))})}}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ug),Pa("aria-hidden"),Y(oW),Y(Ss),Y(rW,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:8,hostBindings:function(e,i){2&e&&(Xt("data-mat-icon-type",i._usingFontIcon()?"font":"svg")("data-mat-icon-name",i._svgName||i.fontIcon)("data-mat-icon-namespace",i._svgNamespace||i.fontSet)("fontIcon",i._usingFontIcon()?i.fontIcon:null),nn("mat-icon-inline",i.inline)("mat-icon-no-color","primary"!==i.color&&"accent"!==i.color&&"warn"!==i.color))},inputs:{color:"color",inline:"inline",svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],features:[nt],ngContentSelectors:JU,decls:1,vars:0,template:function(e,i){1&e&&(Ir(),Sn(0))},styles:[".mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}"],encapsulation:2,changeDetection:0}),t})(),cW=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,Wn]}),t})();function Vh(t){return(Vh="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(t)}function Lt(t,n,e){return(n=function uW(t){var n=function dW(t,n){if("object"!==Vh(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,n||"default");if("object"!==Vh(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(t,"string");return"symbol"===Vh(n)?n:String(n)}(n))in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function aE(t,n,e){let i;return i=t&&"object"==typeof t?t:{bufferSize:t,windowTime:n,refCount:!1,scheduler:e},o=>o.lift(function hW({bufferSize:t=Number.POSITIVE_INFINITY,windowTime:n=Number.POSITIVE_INFINITY,refCount:e,scheduler:i}){let o,a,s=0,l=!1,d=!1;return function(E){let F;s++,!o||l?(l=!1,o=new ko(t,n,i),F=o.subscribe(this),a=E.subscribe({next(G){o.next(G)},error(G){l=!0,o.error(G)},complete(){d=!0,a=void 0,o.complete()}}),d&&(a=void 0)):F=o.subscribe(this),this.add(()=>{s--,F.unsubscribe(),F=void 0,a&&!d&&e&&0===s&&(a.unsubscribe(),a=void 0,o=void 0)})}}(i))}class jh{}let lE=(()=>{class t extends jh{getTranslation(e){return $e({})}}return Lt(t,"\u0275fac",function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}()),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})();class c1{}let cE=(()=>{class t{handle(e){return e.key}}return Lt(t,"\u0275fac",function(e){return new(e||t)}),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})();function fg(t,n){if(t===n)return!0;if(null===t||null===n)return!1;if(t!=t&&n!=n)return!0;let o,s,a,e=typeof t;if(e==typeof n&&"object"==e){if(!Array.isArray(t)){if(Array.isArray(n))return!1;for(s in a=Object.create(null),t){if(!fg(t[s],n[s]))return!1;a[s]=!0}for(s in n)if(!(s in a)&&typeof n[s]<"u")return!1;return!0}if(!Array.isArray(n))return!1;if((o=t.length)==n.length){for(s=0;s{d1(n[i])?i in t?e[i]=dE(t[i],n[i]):Object.assign(e,{[i]:n[i]}):Object.assign(e,{[i]:n[i]})}),e}class pg{}let uE=(()=>{class t extends pg{constructor(...e){super(...e),Lt(this,"templateMatcher",/{{\s?([^{}\s]*)\s?}}/g)}interpolate(e,i){let o;return o="string"==typeof e?this.interpolateString(e,i):"function"==typeof e?this.interpolateFunction(e,i):e,o}getValue(e,i){let o="string"==typeof i?i.split("."):[i];i="";do{i+=o.shift(),!tl(e)||!tl(e[i])||"object"!=typeof e[i]&&o.length?o.length?i+=".":e=void 0:(e=e[i],i="")}while(o.length);return e}interpolateFunction(e,i){return e(i)}interpolateString(e,i){return i?e.replace(this.templateMatcher,(o,s)=>{let a=this.getValue(i,s);return tl(a)?a:o}):e}}return Lt(t,"\u0275fac",function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}()),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})();class mg{}let hE=(()=>{class t extends mg{compile(e,i){return e}compileTranslations(e,i){return e}}return Lt(t,"\u0275fac",function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}()),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})();class fE{constructor(){Lt(this,"defaultLang",void 0),Lt(this,"currentLang",this.defaultLang),Lt(this,"translations",{}),Lt(this,"langs",[]),Lt(this,"onTranslationChange",new ht),Lt(this,"onLangChange",new ht),Lt(this,"onDefaultLangChange",new ht)}}const u1=new Re("USE_STORE"),h1=new Re("USE_DEFAULT_LANG"),f1=new Re("DEFAULT_LANGUAGE"),p1=new Re("USE_EXTEND");let To=(()=>{class t{get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(e){this.isolate?this._defaultLang=e:this.store.defaultLang=e}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(e){this.isolate?this._currentLang=e:this.store.currentLang=e}get langs(){return this.isolate?this._langs:this.store.langs}set langs(e){this.isolate?this._langs=e:this.store.langs=e}get translations(){return this.isolate?this._translations:this.store.translations}set translations(e){this.isolate?this._translations=e:this.store.translations=e}constructor(e,i,o,s,a,l=!0,d=!1,_=!1,E){Lt(this,"store",void 0),Lt(this,"currentLoader",void 0),Lt(this,"compiler",void 0),Lt(this,"parser",void 0),Lt(this,"missingTranslationHandler",void 0),Lt(this,"useDefaultLang",void 0),Lt(this,"isolate",void 0),Lt(this,"extend",void 0),Lt(this,"loadingTranslations",void 0),Lt(this,"pending",!1),Lt(this,"_onTranslationChange",new ht),Lt(this,"_onLangChange",new ht),Lt(this,"_onDefaultLangChange",new ht),Lt(this,"_defaultLang",void 0),Lt(this,"_currentLang",void 0),Lt(this,"_langs",[]),Lt(this,"_translations",{}),Lt(this,"_translationRequests",{}),this.store=e,this.currentLoader=i,this.compiler=o,this.parser=s,this.missingTranslationHandler=a,this.useDefaultLang=l,this.isolate=d,this.extend=_,E&&this.setDefaultLang(E)}setDefaultLang(e){if(e===this.defaultLang)return;let i=this.retrieveTranslations(e);typeof i<"u"?(null==this.defaultLang&&(this.defaultLang=e),i.pipe(Kn(1)).subscribe(o=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(e===this.currentLang)return $e(this.translations[e]);let i=this.retrieveTranslations(e);return typeof i<"u"?(this.currentLang||(this.currentLang=e),i.pipe(Kn(1)).subscribe(o=>{this.changeLang(e)}),i):(this.changeLang(e),$e(this.translations[e]))}retrieveTranslations(e){let i;return(typeof this.translations[e]>"u"||this.extend)&&(this._translationRequests[e]=this._translationRequests[e]||this.getTranslation(e),i=this._translationRequests[e]),i}getTranslation(e){this.pending=!0;const i=this.currentLoader.getTranslation(e).pipe(aE(1),Kn(1));return this.loadingTranslations=i.pipe(ke(o=>this.compiler.compileTranslations(o,e)),aE(1),Kn(1)),this.loadingTranslations.subscribe({next:o=>{this.translations[e]=this.extend&&this.translations[e]?{...o,...this.translations[e]}:o,this.updateLangs(),this.pending=!1},error:o=>{this.pending=!1}}),i}setTranslation(e,i,o=!1){i=this.compiler.compileTranslations(i,e),this.translations[e]=(o||this.extend)&&this.translations[e]?dE(this.translations[e],i):i,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){e.forEach(i=>{-1===this.langs.indexOf(i)&&this.langs.push(i)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResult(e,i,o){let s;if(i instanceof Array){let a={},l=!1;for(let d of i)a[d]=this.getParsedResult(e,d,o),za(a[d])&&(l=!0);return l?l1(i.map(_=>za(a[_])?a[_]:$e(a[_]))).pipe(ke(_=>{let E={};return _.forEach((F,G)=>{E[i[G]]=F}),E})):a}if(e&&(s=this.parser.interpolate(this.parser.getValue(e,i),o)),typeof s>"u"&&null!=this.defaultLang&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(s=this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang],i),o)),typeof s>"u"){let a={key:i,translateService:this};typeof o<"u"&&(a.interpolateParams=o),s=this.missingTranslationHandler.handle(a)}return typeof s<"u"?s:i}get(e,i){if(!tl(e)||!e.length)throw new Error('Parameter "key" required');if(this.pending)return this.loadingTranslations.pipe(Bl(o=>za(o=this.getParsedResult(o,e,i))?o:$e(o)));{let o=this.getParsedResult(this.translations[this.currentLang],e,i);return za(o)?o:$e(o)}}getStreamOnTranslationChange(e,i){if(!tl(e)||!e.length)throw new Error('Parameter "key" required');return Ua(jl(()=>this.get(e,i)),this.onTranslationChange.pipe(gr(o=>{const s=this.getParsedResult(o.translations,e,i);return"function"==typeof s.subscribe?s:$e(s)})))}stream(e,i){if(!tl(e)||!e.length)throw new Error('Parameter "key" required');return Ua(jl(()=>this.get(e,i)),this.onLangChange.pipe(gr(o=>{const s=this.getParsedResult(o.translations,e,i);return za(s)?s:$e(s)})))}instant(e,i){if(!tl(e)||!e.length)throw new Error('Parameter "key" required');let o=this.getParsedResult(this.translations[this.currentLang],e,i);if(za(o)){if(e instanceof Array){let s={};return e.forEach((a,l)=>{s[e[l]]=e[l]}),s}return e}return o}set(e,i,o=this.currentLang){this.translations[o][e]=this.compiler.compile(i,o),this.updateLangs(),this.onTranslationChange.emit({lang:o,translations:this.translations[o]})}changeLang(e){this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),null==this.defaultLang&&this.changeDefaultLang(e)}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.getTranslation(e)}resetLang(e){this._translationRequests[e]=void 0,this.translations[e]=void 0}getBrowserLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let e=window.navigator.languages?window.navigator.languages[0]:null;return e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,typeof e>"u"?void 0:(-1!==e.indexOf("-")&&(e=e.split("-")[0]),-1!==e.indexOf("_")&&(e=e.split("_")[0]),e)}getBrowserCultureLang(){if(typeof window>"u"||typeof window.navigator>"u")return;let e=window.navigator.languages?window.navigator.languages[0]:null;return e=e||window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage,e}}return Lt(t,"\u0275fac",function(e){return new(e||t)(we(fE),we(jh),we(mg),we(pg),we(c1),we(h1),we(u1),we(p1),we(f1))}),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})(),wt=(()=>{class t{constructor(e,i){Lt(this,"translate",void 0),Lt(this,"_ref",void 0),Lt(this,"value",""),Lt(this,"lastKey",null),Lt(this,"lastParams",[]),Lt(this,"onTranslationChange",void 0),Lt(this,"onLangChange",void 0),Lt(this,"onDefaultLangChange",void 0),this.translate=e,this._ref=i}updateValue(e,i,o){let s=a=>{this.value=void 0!==a?a:e,this.lastKey=e,this._ref.markForCheck()};if(o){let a=this.translate.getParsedResult(o,e,i);za(a.subscribe)?a.subscribe(s):s(a)}this.translate.get(e,i).subscribe(s)}transform(e,...i){if(!e||!e.length)return e;if(fg(e,this.lastKey)&&fg(i,this.lastParams))return this.value;let o;if(tl(i[0])&&i.length)if("string"==typeof i[0]&&i[0].length){let s=i[0].replace(/(\')?([a-zA-Z0-9_]+)(\')?(\s)?:/g,'"$2":').replace(/:(\s)?(\')(.*?)(\')/g,':"$3"');try{o=JSON.parse(s)}catch{throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${i[0]}`)}}else"object"==typeof i[0]&&!Array.isArray(i[0])&&(o=i[0]);return this.lastKey=e,this.lastParams=i,this.updateValue(e,o),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(s=>{this.lastKey&&s.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(e,o,s.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(s=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o,s.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,o))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}}return Lt(t,"\u0275fac",function(e){return new(e||t)(Y(To,16),Y(pi,16))}),Lt(t,"\u0275pipe",ur({name:"translate",type:t,pure:!1})),Lt(t,"\u0275prov",Ne({token:t,factory:t.\u0275fac})),t})(),pE=(()=>{class t{static forRoot(e={}){return{ngModule:t,providers:[e.loader||{provide:jh,useClass:lE},e.compiler||{provide:mg,useClass:hE},e.parser||{provide:pg,useClass:uE},e.missingTranslationHandler||{provide:c1,useClass:cE},fE,{provide:u1,useValue:e.isolate},{provide:h1,useValue:e.useDefaultLang},{provide:p1,useValue:e.extend},{provide:f1,useValue:e.defaultLanguage},To]}}static forChild(e={}){return{ngModule:t,providers:[e.loader||{provide:jh,useClass:lE},e.compiler||{provide:mg,useClass:hE},e.parser||{provide:pg,useClass:uE},e.missingTranslationHandler||{provide:c1,useClass:cE},{provide:u1,useValue:e.isolate},{provide:h1,useValue:e.useDefaultLang},{provide:p1,useValue:e.extend},{provide:f1,useValue:e.defaultLanguage},To]}}}return Lt(t,"\u0275fac",function(e){return new(e||t)}),Lt(t,"\u0275mod",Ht({type:t})),Lt(t,"\u0275inj",Nt({})),t})();function fW(t,n){if(1&t&&(D(0,"div",5)(1,"mat-icon",6),I(2),C()()),2&t){const e=z();c(1),w("inline",!0),c(1),se(e.config.icon)}}function pW(t,n){if(1&t&&(D(0,"div",7),I(1),R(2,"translate"),R(3,"translate"),C()),2&t){const e=z();c(1),vo(" ",H(2,2,"common.error")," ",kt(3,4,e.config.smallText,e.config.smallTextTranslationParams)," ")}}var ca=(()=>((ca=ca||{}).Error="error",ca.Done="done",ca.Warning="warning",ca))(),da=(()=>((da=da||{}).Red="red-background",da.Green="green-background",da.Yellow="yellow-background",da))();let mW=(()=>{class t{constructor(e,i){this.snackbarRef=i,this.config=e}close(){this.snackbarRef.dismiss()}}return t.\u0275fac=function(e){return new(e||t)(Y(s1),Y(ag))},t.\u0275cmp=Ze({type:t,selectors:[["app-snack-bar"]],decls:9,vars:8,consts:[["class","icon-container",4,"ngIf"],[1,"text-container"],["class","second-line",4,"ngIf"],[1,"close-button-separator"],[1,"close-button",3,"click"],[1,"icon-container"],[3,"inline"],[1,"second-line"]],template:function(e,i){1&e&&(D(0,"div"),V(1,fW,3,2,"div",0),D(2,"div",1),I(3),R(4,"translate"),V(5,pW,4,7,"div",2),C(),xe(6,"div",3),D(7,"mat-icon",4),ye("click",function(){return i.close()}),I(8,"close"),C()()),2&e&&(eo("main-container "+i.config.color),c(1),w("ngIf",i.config.icon),c(2),ce(" ",kt(4,5,i.config.text,i.config.textTranslationParams)," "),c(2),w("ngIf",i.config.smallText))},dependencies:[Ft,Cn,wt],styles:['.cursor-pointer[_ngcontent-%COMP%], .close-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.main-container[_ngcontent-%COMP%]{width:100%;display:flex;color:#fff;padding:15px;border-radius:5px}.red-background[_ngcontent-%COMP%]{background-color:#ea0606}.green-background[_ngcontent-%COMP%]{background-color:#1fb11f}.yellow-background[_ngcontent-%COMP%]{background-color:#f90}.icon-container[_ngcontent-%COMP%]{margin-right:10px;position:relative;top:1px}.text-container[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px;font-size:1rem;word-break:break-word}.text-container[_ngcontent-%COMP%] .second-line[_ngcontent-%COMP%]{font-size:.8rem;opacity:.9}.close-button-separator[_ngcontent-%COMP%]{width:1px;margin-right:10px;background-color:#0000004d}.close-button[_ngcontent-%COMP%]{opacity:.7}.close-button[_ngcontent-%COMP%]:hover{opacity:1}mat-icon[_ngcontent-%COMP%]{position:relative;top:1px;-webkit-user-select:none;user-select:none}']}),t})(),Dn=(()=>{class t{constructor(e){this.snackBar=e,this.lastWasTemporaryError=!1}showError(e,i=null,o=!1,s=null,a=null){e=en(e),s=s?en(s):null,this.lastWasTemporaryError=o,this.show(e.translatableErrorMsg,i,s?s.translatableErrorMsg:null,a,ca.Error,da.Red,15e3)}showWarning(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,ca.Warning,da.Yellow,15e3)}showDone(e,i=null){this.lastWasTemporaryError=!1,this.show(e,i,null,null,ca.Done,da.Green,5e3)}closeCurrent(){this.snackBar.dismiss()}closeCurrentIfTemporaryError(){this.lastWasTemporaryError&&this.snackBar.dismiss()}show(e,i,o,s,a,l,d){this.snackBar.openFromComponent(mW,{duration:d,panelClass:"snackbar-container",data:{text:e,textTranslationParams:i,smallText:o,smallTextTranslationParams:s,icon:a,color:l}})}}return t.\u0275fac=function(e){return new(e||t)(we(XU))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const Vt={maxShortListElements:5,maxFullListElements:40,connectionRetryDelay:5e3,languages:[{code:"en",name:"English",iconName:"en.png"},{code:"es",name:"Espa\xf1ol",iconName:"es.png"},{code:"de",name:"Deutsch",iconName:"de.png"},{code:"pt",name:"Portugu\xeas (Brazil)",iconName:"pt.png"}],defaultLanguage:"en",smallModalWidth:"480px",mediumModalWidth:"640px",largeModalWidth:"900px",vpn:{hardcodedIpWhileDeveloping:!1}};class gW{constructor(n){Object.assign(this,n)}}let gg=(()=>{class t{constructor(e){this.translate=e,this.currentLanguage=new ko(1),this.languages=new ko(1),this.storageKey="lang",this.languagesInternal=[],this.settingsLoaded=!1}loadLanguageSettings(){if(this.settingsLoaded)return;this.settingsLoaded=!0;const e=[];Vt.languages.forEach(i=>{const o=new gW(i);this.languagesInternal.push(o),e.push(o.code)}),this.languages.next(this.languagesInternal),this.translate.addLangs(e),this.translate.setDefaultLang(Vt.defaultLanguage),this.translate.onLangChange.subscribe(i=>this.onLanguageChanged(i)),this.loadCurrentLanguage()}changeLanguage(e){this.translate.use(e)}onLanguageChanged(e){this.currentLanguage.next(this.languagesInternal.find(i=>i.code===e.lang)),localStorage.setItem(this.storageKey,e.lang)}loadCurrentLanguage(){let e=localStorage.getItem(this.storageKey);e=e||Vt.defaultLanguage,setTimeout(()=>this.translate.use(e),16)}}return t.\u0275fac=function(e){return new(e||t)(we(To))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const _W={url:"",deserializer:t=>JSON.parse(t.data),serializer:t=>JSON.stringify(t)};class m1 extends Te{constructor(n,e){if(super(),n instanceof he)this.destination=e,this.source=n;else{const i=this._config=Object.assign({},_W);if(this._output=new J,"string"==typeof n)i.url=n;else for(let o in n)n.hasOwnProperty(o)&&(i[o]=n[o]);if(!i.WebSocketCtor&&WebSocket)i.WebSocketCtor=WebSocket;else if(!i.WebSocketCtor)throw new Error("no WebSocket constructor can be found");this.destination=new ko}}lift(n){const e=new m1(this._config,this.destination);return e.operator=n,e.source=this,e}_resetState(){this._socket=null,this.source||(this.destination=new ko),this._output=new J}multiplex(n,e,i){const o=this;return new he(s=>{try{o.next(n())}catch(l){s.error(l)}const a=o.subscribe(l=>{try{i(l)&&s.next(l)}catch(d){s.error(d)}},l=>s.error(l),()=>s.complete());return()=>{try{o.next(e())}catch(l){s.error(l)}a.unsubscribe()}})}_connectSocket(){const{WebSocketCtor:n,protocol:e,url:i,binaryType:o}=this._config,s=this._output;let a=null;try{a=e?new n(i,e):new n(i),this._socket=a,o&&(this._socket.binaryType=o)}catch(d){return void s.error(d)}const l=new T(()=>{this._socket=null,a&&1===a.readyState&&a.close()});a.onopen=d=>{const{_socket:_}=this;if(!_)return a.close(),void this._resetState();const{openObserver:E}=this._config;E&&E.next(d);const F=this.destination;this.destination=A.create(G=>{if(1===a.readyState)try{const{serializer:ie}=this._config;a.send(ie(G))}catch(ie){this.destination.error(ie)}},G=>{const{closingObserver:ie}=this._config;ie&&ie.next(void 0),G&&G.code?a.close(G.code,G.reason):s.error(new TypeError("WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }")),this._resetState()},()=>{const{closingObserver:G}=this._config;G&&G.next(void 0),a.close(),this._resetState()}),F&&F instanceof ko&&l.add(F.subscribe(this.destination))},a.onerror=d=>{this._resetState(),s.error(d)},a.onclose=d=>{this._resetState();const{closeObserver:_}=this._config;_&&_.next(d),d.wasClean?s.complete():s.error(d)},a.onmessage=d=>{try{const{deserializer:_}=this._config;s.next(_(d))}catch(_){s.error(_)}}}_subscribe(n){const{source:e}=this;return e?e.subscribe(n):(this._socket||this._connectSocket(),this._output.subscribe(n),n.add(()=>{const{_socket:i}=this;0===this._output.observers.length&&(i&&1===i.readyState&&i.close(),this._resetState())}),n)}unsubscribe(){const{_socket:n}=this;n&&1===n.readyState&&n.close(),this._resetState(),super.unsubscribe()}}var nl=(()=>((nl=nl||{}).Json="json",nl.Text="text",nl))(),Jl=(()=>((Jl=Jl||{}).Json="json",Jl))();class Ql{constructor(n){this.responseType=nl.Json,this.requestType=Jl.Json,this.ignoreAuth=!1,Object.assign(this,n)}}let il=(()=>{class t{constructor(e,i,o){this.http=e,this.router=i,this.ngZone=o,this.apiPrefix="api/",this.wsApiPrefix="api/"}get(e,i=null){return this.request("GET",e,{},i)}post(e,i={},o=null){return this.request("POST",e,i,o)}put(e,i={},o=null){return this.request("PUT",e,i,o)}delete(e,i=null){return this.request("DELETE",e,{},i)}ws(e,i={}){const a=function vW(t){return new m1(t)}((location.protocol.startsWith("https")?"wss://":"ws://")+location.host+"/"+this.wsApiPrefix+e);return a.next(i),a}request(e,i,o,s){return o=o||{},s=s||new Ql,i.startsWith("/")&&(i=i.substr(1,i.length-1)),this.http.request(e,this.apiPrefix+i,{...this.getRequestOptions(s),responseType:s.responseType,withCredentials:!0,body:this.getPostBody(o,s)}).pipe(ke(a=>this.successHandler(a)),Co(a=>this.errorHandler(a,s)))}getRequestOptions(e){const i={};return i.headers=new rs,e.requestType===Jl.Json&&(i.headers=i.headers.append("Content-Type","application/json")),i}getPostBody(e,i){if(i.requestType===Jl.Json)return JSON.stringify(e);const o=new FormData;return Object.keys(e).forEach(s=>o.append(s,e[s])),o}successHandler(e){if("string"==typeof e&&"manager token is null"===e)throw new Error(e);return e}errorHandler(e,i){if(!i.ignoreAuth){if(401===e.status){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}if(e.error&&"string"==typeof e.error&&e.error.includes("change password")){const o=i.vpnKeyForAuth?["vpnlogin",i.vpnKeyForAuth]:["login"];this.ngZone.run(()=>this.router.navigate(o,{replaceUrl:!0}))}}return Ar(en(e))}}return t.\u0275fac=function(e){return new(e||t)(we(Vl),we(hn),we(ft))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const yW=["determinateSpinner"];function MW(t,n){if(1&t&&(wl(),D(0,"svg",11),xe(1,"circle",12),C()),2&t){const e=z();Xt("viewBox",e._viewBox()),c(1),Pl("stroke-dasharray",e._strokeCircumference(),"px")("stroke-dashoffset",e._strokeCircumference()/2,"px")("stroke-width",e._circleStrokeWidth(),"%"),Xt("r",e._circleRadius())}}const wW=Fh(class{constructor(t){this._elementRef=t}},"primary"),CW=new Re("mat-progress-spinner-default-options",{providedIn:"root",factory:function xW(){return{diameter:mE}}}),mE=100;let ec=(()=>{class t extends wW{constructor(e,i,o){super(e),this.mode="mat-spinner"===this._elementRef.nativeElement.nodeName.toLowerCase()?"indeterminate":"determinate",this._value=0,this._diameter=mE,this._noopAnimations="NoopAnimations"===i&&!!o&&!o._forceAnimations,o&&(o.color&&(this.color=this.defaultColor=o.color),o.diameter&&(this.diameter=o.diameter),o.strokeWidth&&(this.strokeWidth=o.strokeWidth))}get value(){return"determinate"===this.mode?this._value:0}set value(e){this._value=Math.max(0,Math.min(100,So(e)))}get diameter(){return this._diameter}set diameter(e){this._diameter=So(e)}get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(e){this._strokeWidth=So(e)}_circleRadius(){return(this.diameter-10)/2}_viewBox(){const e=2*this._circleRadius()+this.strokeWidth;return`0 0 ${e} ${e}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return"determinate"===this.mode?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(Ri,8),Y(CW))},t.\u0275cmp=Ze({type:t,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(e,i){if(1&e&&_t(yW,5),2&e){let o;rt(o=ot())&&(i._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:16,hostBindings:function(e,i){2&e&&(Xt("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow","determinate"===i.mode?i.value:null)("mode",i.mode),Pl("width",i.diameter,"px")("height",i.diameter,"px")("--mdc-circular-progress-size",i.diameter+"px")("--mdc-circular-progress-active-indicator-width",i.diameter+"px"),nn("_mat-animation-noopable",i._noopAnimations)("mdc-circular-progress--indeterminate","indeterminate"===i.mode))},inputs:{color:"color",mode:"mode",value:"value",diameter:"diameter",strokeWidth:"strokeWidth"},exportAs:["matProgressSpinner"],features:[nt],decls:14,vars:11,consts:[["circle",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["determinateSpinner",""],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(e,i){if(1&e&&(V(0,MW,2,8,"ng-template",null,0,Es),D(2,"div",1,2),wl(),D(4,"svg",3),xe(5,"circle",4),C()(),zf(),D(6,"div",5)(7,"div",6)(8,"div",7),Jo(9,8),C(),D(10,"div",9),Jo(11,8),C(),D(12,"div",10),Jo(13,8),C()()()),2&e){const o=ci(1);c(4),Xt("viewBox",i._viewBox()),c(1),Pl("stroke-dasharray",i._strokeCircumference(),"px")("stroke-dashoffset",i._strokeDashOffset(),"px")("stroke-width",i._circleStrokeWidth(),"%"),Xt("r",i._circleRadius()),c(4),w("ngTemplateOutlet",o),c(2),w("ngTemplateOutlet",o),c(2),w("ngTemplateOutlet",o)}},dependencies:[hd],styles:["@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}"],encapsulation:2,changeDetection:0}),t})(),SW=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[ta,Wn]}),t})();const DW=function(t){return{"white-theme":t}};let as=(()=>{class t{constructor(){this.showWhite=!0}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-loading-indicator"]],inputs:{showWhite:"showWhite"},decls:2,vars:4,consts:[[1,"container",3,"ngClass"],[3,"diameter"]],template:function(e,i){1&e&&(D(0,"div",0),xe(1,"mat-spinner",1),C()),2&e&&(w("ngClass",He(2,DW,i.showWhite)),c(1),w("diameter",50))},dependencies:[Nn,ec],styles:["[_nghost-%COMP%]{width:100%;height:100%;display:flex}.container[_ngcontent-%COMP%]{width:100%;align-self:center;display:flex;flex-direction:column;align-items:center}.container[_ngcontent-%COMP%] > mat-spinner[_ngcontent-%COMP%]{opacity:.5}"]}),t})();function TW(t,n){1&t&&(D(0,"div",5)(1,"div"),xe(2,"img",6),D(3,"div"),I(4),R(5,"translate"),C()()()),2&t&&(c(4),se(H(5,1,"common.window-size-error")))}function LW(t,n){1&t&&xe(0,"router-outlet")}function EW(t,n){1&t&&xe(0,"app-loading-indicator",7)}const IW=function(t){return{background:t}};let g1=(()=>{class t{constructor(e,i,o,s,a,l){this.storage=e,this.snackbarService=s,this.languageService=a,this.apiService=l,this.inVpnClient=!1,this.inLoginPage=!1,this.hypervisorPkObtained=!1,this.pkErrorShown=!1,this.pkErrorsFound=0,t.currentInstance=this,o.afterOpened.subscribe(()=>s.closeCurrent()),history.scrollRestoration&&(history.scrollRestoration="manual"),i.events.subscribe(d=>{d instanceof Ga&&(s.closeCurrent(),o.closeAll())}),o.afterAllClosed.subscribe(()=>s.closeCurrentIfTemporaryError()),i.events.subscribe(d=>{if(this.inVpnClient=i.url.includes("/vpn/")||i.url.includes("vpnlogin"),d.url){const _=this.inLoginPage;this.inLoginPage=d.url.includes("login"),_&&!this.inLoginPage&&!this.hypervisorPkObtained&&this.checkHypervisorPk(0)}i.url.length>2&&(document.title=this.inVpnClient?"Skywire VPN":"Skywire Manager")}),this.languageService.loadLanguageSettings(),this.checkHypervisorPk(0)}processLoginDone(){this.inLoginPage=!1,this.hypervisorPkObtained||this.checkHypervisorPk(0)}checkHypervisorPk(e){this.obtainPkSubscription&&this.obtainPkSubscription.unsubscribe(),this.obtainPkSubscription=$e(1).pipe(Ti(e),Ye(()=>this.apiService.get("about"))).subscribe(i=>{i.public_key?(this.finishStartup(i.public_key),this.hypervisorPkObtained=!0):(this.pkErrorShown||(this.snackbarService.showError("start.loading-error",null,!0),this.pkErrorShown=!0),this.checkHypervisorPk(1e3))},i=>{if(this.pkErrorsFound+=1,this.pkErrorsFound>4&&!this.pkErrorShown){const o=en(i);this.snackbarService.showError("start.loading-error",null,!0,o),this.pkErrorShown=!0}this.inLoginPage||this.checkHypervisorPk(1e3)})}finishStartup(e){this.storage.initialize(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Ji),Y(hn),Y(In),Y(Dn),Y(gg),Y(il))},t.\u0275cmp=Ze({type:t,selectors:[["app-root"]],decls:5,vars:6,consts:[["class","size-alert d-md-none",4,"ngIf"],[1,"flex-1","content","container-fluid"],[3,"ngClass"],[4,"ngIf"],["class","h-100",4,"ngIf"],[1,"size-alert","d-md-none"],["src","assets/img/size-alert.png"],[1,"h-100"]],template:function(e,i){1&e&&(V(0,TW,6,3,"div",0),D(1,"div",1),xe(2,"div",2),V(3,LW,1,0,"router-outlet",3),V(4,EW,1,0,"app-loading-indicator",4),C()),2&e&&(w("ngIf",i.inVpnClient),c(2),w("ngClass",He(4,IW,i.inVpnClient)),c(1),w("ngIf",i.hypervisorPkObtained||i.inLoginPage),c(1),w("ngIf",!i.hypervisorPkObtained&&!i.inLoginPage))},dependencies:[Nn,Ft,Am,as,wt],styles:[".size-alert[_ngcontent-%COMP%]{background-color:#000000d9;position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:inline-flex;align-items:center;justify-content:center;text-align:center;color:#fff}.size-alert[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{margin:0 40px;max-width:400px}[_nghost-%COMP%]{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;height:100%}.content[_ngcontent-%COMP%]{padding:20px!important}.background[_ngcontent-%COMP%]{background-image:url(/assets/img/map.png);background-size:cover;background-position:center;opacity:.1;width:100%;height:100%;top:0;left:0;position:fixed}"]}),t})(),Uh=(()=>{class t{set forceFail(e){this.forceFailInternal=e}constructor(e){this.router=e,this.forceFailInternal=!1}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.forceFailInternal?(this.router.navigate(["login"],{replaceUrl:!0}),$e(!1)):$e(!0)}}return t.\u0275fac=function(e){return new(e||t)(we(hn))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var Fr=(()=>((Fr=Fr||{})[Fr.AuthDisabled=0]="AuthDisabled",Fr[Fr.Logged=1]="Logged",Fr[Fr.NotLogged=2]="NotLogged",Fr))();let Wh=(()=>{class t{constructor(e,i,o){this.apiService=e,this.translateService=i,this.authGuardService=o}login(e){return this.apiService.post("login",{username:"admin",password:e},new Ql({ignoreAuth:!0})).pipe(bi(i=>{if(!0!==i)throw new Error;this.authGuardService.forceFail=!1}))}checkLogin(){return this.apiService.get("user",new Ql({ignoreAuth:!0})).pipe(ke(e=>e.username?Fr.Logged:Fr.AuthDisabled),Co(e=>(e=en(e)).originalError&&401===e.originalError.status?(this.authGuardService.forceFail=!0,$e(Fr.NotLogged)):Ar(e)))}logout(){return this.apiService.post("logout",{}).pipe(bi(e=>{if(!0!==e)throw new Error;this.authGuardService.forceFail=!0}))}changePassword(e,i){return this.apiService.post("change-password",{old_password:e,new_password:i},new Ql({responseType:nl.Text,ignoreAuth:!0})).pipe(ke(o=>{if("string"==typeof o&&"true"===o.trim())return!0;throw"Please do not change the default password."===o?new Error(this.translateService.instant("settings.password.errors.default-password")):new Error(this.translateService.instant("common.operation-error"))}),Co(o=>((o=en(o)).originalError&&401===o.originalError.status&&(o.translatableErrorMsg="settings.password.errors.bad-old-password"),Ar(o))))}initialConfig(e){return this.apiService.post("create-account",{username:"admin",password:e},new Ql({responseType:nl.Text,ignoreAuth:!0})).pipe(ke(i=>{if("string"==typeof i&&"true"===i.trim())return!0;throw new Error(i)}),Co(i=>((i=en(i)).originalError&&500===i.originalError.status&&(i.translatableErrorMsg="settings.password.initial-config.error"),Ar(i))))}}return t.\u0275fac=function(e){return new(e||t)(we(il),we(To),we(Uh))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class PW{}class er{constructor(){this.persistentScrollPosKey="scroll-pos"}ngOnInit(){let n=this.getLocalValue(this.persistentScrollPosKey);n=n?n.value:"0",window.scrollTo(0,Number(n)),setTimeout(()=>window.scrollTo(0,Number(n)),1)}saveScrollPosition(n){this.saveLocalValue(this.persistentScrollPosKey,window.scrollY+"")}saveLocalValue(n,e){const i=window.history.state;i[n]=e,i[n+"_time"]=(new Date).getTime(),window.history.replaceState(i,"",window.location.pathname+window.location.hash)}getLocalValue(n){if(!window.history.state||void 0===window.history.state[n])return null;const e=new PW;return e.value=window.history.state[n],e.date=window.history.state[n+"_time"],e}}er.mustCallNgOnInitSuper=Symbol("You must call super.ngOnInit."),er.\u0275fac=function(n){return new(n||er)},er.\u0275cmp=Ze({type:er,selectors:[["app-page-base"]],hostBindings:function(n,e){1&n&&ye("scroll",function(o){return e.saveScrollPosition(o)},0,Vb)},decls:0,vars:0,template:function(n,e){},encapsulation:2});let OW=(()=>{class t extends er{constructor(e,i){super(),this.authService=e,this.router=i}ngOnInit(){return this.verificationSubscription=this.authService.checkLogin().subscribe(e=>{this.router.navigate(e!==Fr.NotLogged?["nodes"]:["login"],{replaceUrl:!0})},()=>{this.router.navigate(["nodes"],{replaceUrl:!0})}),super.ngOnInit()}ngOnDestroy(){this.verificationSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(Wh),Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-start"]],features:[nt],decls:2,vars:0,consts:[[1,"h-100","w-100"]],template:function(e,i){1&e&&(D(0,"div",0),xe(1,"app-loading-indicator"),C())},dependencies:[as]}),t})(),gE=(()=>{class t{constructor(e,i){this._renderer=e,this._elementRef=i,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Ks),Y(vt))},t.\u0275dir=Ke({type:t}),t})(),tc=(()=>{class t extends gE{}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275dir=Ke({type:t,features:[nt]}),t})();const ls=new Re("NgValueAccessor"),FW={provide:ls,useExisting:pn(()=>Bi),multi:!0},NW=new Re("CompositionEventMode");let Bi=(()=>{class t extends gE{constructor(e,i,o){super(e,i),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function RW(){const t=Ya()?Ya().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(e){this.setProperty("value",e??"")}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Ks),Y(vt),Y(NW,8))},t.\u0275dir=Ke({type:t,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(e,i){1&e&&ye("input",function(s){return i._handleInput(s.target.value)})("blur",function(){return i.onTouched()})("compositionstart",function(){return i._compositionStart()})("compositionend",function(s){return i._compositionEnd(s.target.value)})},features:[un([FW]),nt]}),t})();function rl(t){return null==t||("string"==typeof t||Array.isArray(t))&&0===t.length}function bE(t){return null!=t&&"number"==typeof t.length}const wr=new Re("NgValidators"),ol=new Re("NgAsyncValidators"),YW=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[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])?)*$/;class Gt{static min(n){return function vE(t){return n=>{if(rl(n.value)||rl(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e{if(rl(n.value)||rl(t))return null;const e=parseFloat(n.value);return!isNaN(e)&&e>t?{max:{max:t,actual:n.value}}:null}}(n)}static required(n){return function ME(t){return rl(t.value)?{required:!0}:null}(n)}static requiredTrue(n){return function wE(t){return!0===t.value?null:{required:!0}}(n)}static email(n){return function CE(t){return rl(t.value)||YW.test(t.value)?null:{email:!0}}(n)}static minLength(n){return function xE(t){return n=>rl(n.value)||!bE(n.value)?null:n.value.length{if(rl(i.value))return null;const o=i.value;return n.test(o)?null:{pattern:{requiredPattern:e,actualValue:o}}}}(n)}static nullValidator(n){return null}static compose(n){return PE(n)}static composeAsync(n){return OE(n)}}function kE(t){return n=>bE(n.value)&&n.value.length>t?{maxlength:{requiredLength:t,actualLength:n.value.length}}:null}function _g(t){return null}function DE(t){return null!=t}function TE(t){return Hu(t)?ue(t):t}function LE(t){let n={};return t.forEach(e=>{n=null!=e?{...n,...e}:n}),0===Object.keys(n).length?null:n}function EE(t,n){return n.map(e=>e(t))}function IE(t){return t.map(n=>function HW(t){return!t.validate}(n)?n:e=>n.validate(e))}function PE(t){if(!t)return null;const n=t.filter(DE);return 0==n.length?null:function(e){return LE(EE(e,n))}}function _1(t){return null!=t?PE(IE(t)):null}function OE(t){if(!t)return null;const n=t.filter(DE);return 0==n.length?null:function(e){return l1(EE(e,n).map(TE)).pipe(ke(LE))}}function b1(t){return null!=t?OE(IE(t)):null}function AE(t,n){return null===t?[n]:Array.isArray(t)?[...t,n]:[t,n]}function FE(t){return t._rawValidators}function RE(t){return t._rawAsyncValidators}function v1(t){return t?Array.isArray(t)?t:[t]:[]}function bg(t,n){return Array.isArray(t)?t.includes(n):t===n}function NE(t,n){const e=v1(n);return v1(t).forEach(o=>{bg(e,o)||e.push(o)}),e}function YE(t,n){return v1(n).filter(e=>!bg(t,e))}class HE{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=_1(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=b1(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,e){return!!this.control&&this.control.hasError(n,e)}getError(n,e){return this.control?this.control.getError(n,e):null}}class $r extends HE{get formDirective(){return null}get path(){return null}}class Rs extends HE{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class BE{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let Vi=(()=>{class t extends BE{constructor(e){super(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Rs,2))},t.\u0275dir=Ke({type:t,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(e,i){2&e&&nn("ng-untouched",i.isUntouched)("ng-touched",i.isTouched)("ng-pristine",i.isPristine)("ng-dirty",i.isDirty)("ng-valid",i.isValid)("ng-invalid",i.isInvalid)("ng-pending",i.isPending)},features:[nt]}),t})(),ji=(()=>{class t extends BE{constructor(e){super(e)}}return t.\u0275fac=function(e){return new(e||t)(Y($r,10))},t.\u0275dir=Ke({type:t,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(e,i){2&e&&nn("ng-untouched",i.isUntouched)("ng-touched",i.isTouched)("ng-pristine",i.isPristine)("ng-dirty",i.isDirty)("ng-valid",i.isValid)("ng-invalid",i.isInvalid)("ng-pending",i.isPending)("ng-submitted",i.isSubmitted)},features:[nt]}),t})();const $h="VALID",yg="INVALID",Od="PENDING",Gh="DISABLED";function w1(t){return(Mg(t)?t.validators:t)||null}function C1(t,n){return(Mg(n)?n.asyncValidators:t)||null}function Mg(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}function jE(t,n,e){const i=t.controls;if(!(n?Object.keys(i):i).length)throw new Fe(1e3,"");if(!i[e])throw new Fe(1001,"")}function zE(t,n,e){t._forEachChild((i,o)=>{if(void 0===e[o])throw new Fe(1002,"")})}class wg{constructor(n,e){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===$h}get invalid(){return this.status===yg}get pending(){return this.status==Od}get disabled(){return this.status===Gh}get enabled(){return this.status!==Gh}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(NE(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(NE(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(YE(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(YE(n,this._rawAsyncValidators))}hasValidator(n){return bg(this._rawValidators,n)}hasAsyncValidator(n){return bg(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(e=>{e.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(e=>{e.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Od,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=Gh,this.errors=null,this._forEachChild(i=>{i.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!0))}enable(n={}){const e=this._parentMarkedDirty(n.onlySelf);this.status=$h,this._forEachChild(i=>{i.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:e}),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===$h||this.status===Od)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Gh:$h}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Od,this._hasOwnPendingAsyncValidator=!0;const e=TE(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(i=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(i,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,e={}){this.errors=n,this._updateControlsErrors(!1!==e.emitEvent)}get(n){let e=n;return null==e||(Array.isArray(e)||(e=e.split(".")),0===e.length)?null:e.reduce((i,o)=>i&&i._find(o),this)}getError(n,e){const i=e?this.get(e):this;return i&&i.errors?i.errors[n]:null}hasError(n,e){return!!this.getError(n,e)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new ht,this.statusChanges=new ht}_calculateStatus(){return this._allControlsDisabled()?Gh:this.errors?yg:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Od)?Od:this._anyControlsHaveStatus(yg)?yg:$h}_anyControlsHaveStatus(n){return this._anyControls(e=>e.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Mg(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function zW(t){return Array.isArray(t)?_1(t):t||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function UW(t){return Array.isArray(t)?b1(t):t||null}(this._rawAsyncValidators)}}class Ad extends wg{constructor(n,e,i){super(w1(e),C1(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,e){return this.controls[n]?this.controls[n]:(this.controls[n]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(n,e,i={}){this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,e={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(n,e,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],e&&this.registerControl(n,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,e={}){zE(this,0,n),Object.keys(n).forEach(i=>{jE(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(Object.keys(n).forEach(i=>{const o=this.controls[i];o&&o.patchValue(n[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n={},e={}){this._forEachChild((i,o)=>{i.reset(n[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(n,e,i)=>(n[i]=e.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(e,i)=>!!i._syncPendingControls()||e);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(e=>{const i=this.controls[e];i&&n(i,e)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[e,i]of Object.entries(this.controls))if(this.contains(e)&&n(i))return!0;return!1}_reduceValue(){return this._reduceChildren({},(e,i,o)=>((i.enabled||this.disabled)&&(e[o]=i.value),e))}_reduceChildren(n,e){let i=n;return this._forEachChild((o,s)=>{i=e(i,o,s)}),i}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}const UE=Ad;class WE extends Ad{}const nc=new Re("CallSetDisabledState",{providedIn:"root",factory:()=>qh}),qh="always";function Cg(t,n){return[...n.path,t]}function Kh(t,n,e=qh){x1(t,n),n.valueAccessor.writeValue(t.value),(t.disabled||"always"===e)&&n.valueAccessor.setDisabledState?.(t.disabled),function $W(t,n){n.valueAccessor.registerOnChange(e=>{t._pendingValue=e,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&$E(t,n)})}(t,n),function qW(t,n){const e=(i,o)=>{n.valueAccessor.writeValue(i),o&&n.viewToModelUpdate(i)};t.registerOnChange(e),n._registerOnDestroy(()=>{t._unregisterOnChange(e)})}(t,n),function GW(t,n){n.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&$E(t,n),"submit"!==t.updateOn&&t.markAsTouched()})}(t,n),function WW(t,n){if(n.valueAccessor.setDisabledState){const e=i=>{n.valueAccessor.setDisabledState(i)};t.registerOnDisabledChange(e),n._registerOnDestroy(()=>{t._unregisterOnDisabledChange(e)})}}(t,n)}function xg(t,n,e=!0){const i=()=>{};n.valueAccessor&&(n.valueAccessor.registerOnChange(i),n.valueAccessor.registerOnTouched(i)),Sg(t,n),t&&(n._invokeOnDestroyCallbacks(),t._registerOnCollectionChange(()=>{}))}function kg(t,n){t.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(n)})}function x1(t,n){const e=FE(t);null!==n.validator?t.setValidators(AE(e,n.validator)):"function"==typeof e&&t.setValidators([e]);const i=RE(t);null!==n.asyncValidator?t.setAsyncValidators(AE(i,n.asyncValidator)):"function"==typeof i&&t.setAsyncValidators([i]);const o=()=>t.updateValueAndValidity();kg(n._rawValidators,o),kg(n._rawAsyncValidators,o)}function Sg(t,n){let e=!1;if(null!==t){if(null!==n.validator){const o=FE(t);if(Array.isArray(o)&&o.length>0){const s=o.filter(a=>a!==n.validator);s.length!==o.length&&(e=!0,t.setValidators(s))}}if(null!==n.asyncValidator){const o=RE(t);if(Array.isArray(o)&&o.length>0){const s=o.filter(a=>a!==n.asyncValidator);s.length!==o.length&&(e=!0,t.setAsyncValidators(s))}}}const i=()=>{};return kg(n._rawValidators,i),kg(n._rawAsyncValidators,i),e}function $E(t,n){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function GE(t,n){x1(t,n)}function qE(t,n){t._syncPendingControls(),n.forEach(e=>{const i=e.control;"submit"===i.updateOn&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}const QW={provide:$r,useExisting:pn(()=>Xh)},Zh=(()=>Promise.resolve())();let Xh=(()=>{class t extends $r{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new ht,this.form=new Ad({},_1(e),b1(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){Zh.then(()=>{const i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),Kh(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){Zh.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){Zh.then(()=>{const i=this._findContainer(e.path),o=new Ad({});GE(o,e),i.registerControl(e.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){Zh.then(()=>{const i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){Zh.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submitted=!0,qE(this.form,this._directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}}return t.\u0275fac=function(e){return new(e||t)(Y(wr,10),Y(ol,10),Y(nc,8))},t.\u0275dir=Ke({type:t,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(e,i){1&e&&ye("submit",function(s){return i.onSubmit(s)})("reset",function(){return i.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[un([QW]),nt]}),t})();function KE(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}function ZE(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}const Fd=class extends wg{constructor(n=null,e,i){super(w1(e),C1(i,e)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Mg(e)&&(e.nonNullable||e.initialValueIsDefault)&&(this.defaultValue=ZE(n)?n.value:n)}setValue(n,e={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(i=>i(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(n,e={}){this.setValue(n,e)}reset(n=this.defaultValue,e={}){this._applyFormState(n),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){KE(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){KE(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){ZE(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},Dg=Fd;let XE=(()=>{class t extends $r{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Cg(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275dir=Ke({type:t,features:[nt]}),t})(),zi=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),t})(),nI=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})();const T1=new Re("NgModelWithFormControlWarning"),l$={provide:$r,useExisting:pn(()=>ii)};let ii=(()=>{class t extends $r{constructor(e,i,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new ht,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Sg(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){const i=this.form.get(e.path);return Kh(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){xg(e.control||null,e,!1),function JW(t,n){const e=t.indexOf(n);e>-1&&t.splice(e,1)}(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){return this.submitted=!0,qE(this.form,this.directives),this.ngSubmit.emit(e),"dialog"===e?.target?.method}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submitted=!1}_updateDomValue(){this.directives.forEach(e=>{const i=e.control,o=this.form.get(e.path);i!==o&&(xg(i||null,e),(t=>t instanceof Fd)(o)&&(Kh(o,e,this.callSetDisabledState),e.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){const i=this.form.get(e.path);GE(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){const i=this.form.get(e.path);i&&function KW(t,n){return Sg(t,n)}(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){x1(this.form,this),this._oldForm&&Sg(this._oldForm,this)}_checkFormPresent(){}}return t.\u0275fac=function(e){return new(e||t)(Y(wr,10),Y(ol,10),Y(nc,8))},t.\u0275dir=Ke({type:t,selectors:[["","formGroup",""]],hostBindings:function(e,i){1&e&&ye("submit",function(s){return i.onSubmit(s)})("reset",function(){return i.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[un([l$]),nt,Gi]}),t})();const c$={provide:$r,useExisting:pn(()=>Jh)};let Jh=(()=>{class t extends XE{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}_checkParentType(){sI(this._parent)}}return t.\u0275fac=function(e){return new(e||t)(Y($r,13),Y(wr,10),Y(ol,10))},t.\u0275dir=Ke({type:t,selectors:[["","formGroupName",""]],inputs:{name:["formGroupName","name"]},features:[un([c$]),nt]}),t})();const d$={provide:$r,useExisting:pn(()=>Qh)};let Qh=(()=>{class t extends $r{constructor(e,i,o){super(),this.name=null,this._parent=e,this._setValidators(i),this._setAsyncValidators(o)}ngOnInit(){this._checkParentType(),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Cg(null==this.name?this.name:this.name.toString(),this._parent)}_checkParentType(){sI(this._parent)}}return t.\u0275fac=function(e){return new(e||t)(Y($r,13),Y(wr,10),Y(ol,10))},t.\u0275dir=Ke({type:t,selectors:[["","formArrayName",""]],inputs:{name:["formArrayName","name"]},features:[un([d$]),nt]}),t})();function sI(t){return!(t instanceof Jh||t instanceof ii||t instanceof Qh)}const u$={provide:Rs,useExisting:pn(()=>Ei)};let Ei=(()=>{class t extends Rs{set isDisabled(e){}constructor(e,i,o,s,a){super(),this._ngModelWarningConfig=a,this._added=!1,this.name=null,this.update=new ht,this._ngModelWarningSent=!1,this._parent=e,this._setValidators(i),this._setAsyncValidators(o),this.valueAccessor=function D1(t,n){if(!n)return null;let e,i,o;return Array.isArray(n),n.forEach(s=>{s.constructor===Bi?e=s:function XW(t){return Object.getPrototypeOf(t.constructor)===tc}(s)?i=s:o=s}),o||i||e||null}(0,s)}ngOnChanges(e){this._added||this._setUpControl(),function S1(t,n){if(!t.hasOwnProperty("model"))return!1;const e=t.model;return!!e.isFirstChange()||!Object.is(n,e.currentValue)}(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return Cg(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}}return t._ngModelWarningSentOnce=!1,t.\u0275fac=function(e){return new(e||t)(Y($r,13),Y(wr,10),Y(ol,10),Y(ls,10),Y(T1,8))},t.\u0275dir=Ke({type:t,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[un([u$]),nt,Gi]}),t})();let ic=(()=>{class t{constructor(){this._validator=_g}ngOnChanges(e){if(this.inputName in e){const i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):_g,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return null!=e}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,features:[Gi]}),t})();const x$={provide:wr,useExisting:pn(()=>Cr),multi:!0};let Cr=(()=>{class t extends ic{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=e=>function cI(t){return"number"==typeof t?t:parseInt(t,10)}(e),this.createValidator=e=>kE(e)}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275dir=Ke({type:t,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(e,i){2&e&&Xt("maxlength",i._enabled?i.maxlength:null)},inputs:{maxlength:"maxlength"},features:[un([x$]),nt]}),t})(),gI=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[nI]}),t})();class _I extends wg{constructor(n,e,i){super(w1(e),C1(i,e)),this.controls=n,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(n){return this.controls[this._adjustIndex(n)]}push(n,e={}){this.controls.push(n),this._registerControl(n),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(n,e,i={}){this.controls.splice(n,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(n,e={}){let i=this._adjustIndex(n);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(n,e,i={}){let o=this._adjustIndex(n);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),e&&(this.controls.splice(o,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(n,e={}){zE(this,0,n),n.forEach((i,o)=>{jE(this,!1,o),this.at(o).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(n,e={}){null!=n&&(n.forEach((i,o)=>{this.at(o)&&this.at(o).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(n=[],e={}){this._forEachChild((i,o)=>{i.reset(n[o],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(n=>n.getRawValue())}clear(n={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:n.emitEvent}))}_adjustIndex(n){return n<0?n+this.length:n}_syncPendingControls(){let n=this.controls.reduce((e,i)=>!!i._syncPendingControls()||e,!1);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){this.controls.forEach((e,i)=>{n(e,i)})}_updateValue(){this.value=this.controls.filter(n=>n.enabled||this.disabled).map(n=>n.value)}_anyControls(n){return this.controls.some(e=>e.enabled&&n(e))}_setUpControls(){this._forEachChild(n=>this._registerControl(n))}_allControlsDisabled(){for(const n of this.controls)if(n.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(n){n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)}_find(n){return this.at(n)??null}}function bI(t){return!!t&&(void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn)}let vI=(()=>{class t{constructor(){this.useNonNullable=!1}get nonNullable(){const e=new t;return e.useNonNullable=!0,e}group(e,i=null){const o=this._reduceControls(e);let s={};return bI(i)?s=i:null!==i&&(s.validators=i.validator,s.asyncValidators=i.asyncValidator),new Ad(o,s)}record(e,i=null){const o=this._reduceControls(e);return new WE(o,i)}control(e,i,o){let s={};return this.useNonNullable?(bI(i)?s=i:(s.validators=i,s.asyncValidators=o),new Fd(e,{...s,nonNullable:!0})):new Fd(e,i,o)}array(e,i,o){const s=e.map(a=>this._createControl(a));return new _I(s,i,o)}_reduceControls(e){const i={};return Object.keys(e).forEach(o=>{i[o]=this._createControl(e[o])}),i}_createControl(e){return e instanceof Fd||e instanceof wg?e:Array.isArray(e)?this.control(e[0],e.length>1?e[1]:null,e.length>2?e[2]:null):this.control(e)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),xr=(()=>{class t extends vI{group(e,i=null){return super.group(e,i)}control(e,i,o){return super.control(e,i,o)}array(e,i,o){return super.array(e,i,o)}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),S$=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:nc,useValue:e.callSetDisabledState??qh}]}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[gI]}),t})(),D$=(()=>{class t{static withConfig(e){return{ngModule:t,providers:[{provide:T1,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:nc,useValue:e.callSetDisabledState??qh}]}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[gI]}),t})();const T$=["matFormFieldNotchedOutline",""],L$=["*"],E$=["textField"],I$=["iconPrefixContainer"],P$=["textPrefixContainer"];function O$(t,n){1&t&&xe(0,"span",19)}function A$(t,n){if(1&t){const e=et();D(0,"label",17),ye("cdkObserveContent",function(){return Pe(e),Oe(z(2)._refreshOutlineNotchWidth())}),Sn(1,1),V(2,O$,1,0,"span",18),C()}if(2&t){const e=z(2);w("floating",e._shouldLabelFloat())("cdkObserveContentDisabled",!e._hasOutline())("id",e._labelId),Xt("for",e._control.id)("aria-owns",e._control.id),c(2),w("ngIf",!e.hideRequiredMarker&&e._control.required)}}function F$(t,n){1&t&&V(0,A$,3,6,"label",16),2&t&&w("ngIf",z()._hasFloatingLabel())}function R$(t,n){1&t&&xe(0,"div",20)}function N$(t,n){}function Y$(t,n){1&t&&V(0,N$,0,0,"ng-template",22),2&t&&(z(2),w("ngTemplateOutlet",ci(1)))}function H$(t,n){if(1&t&&(D(0,"div",21),V(1,Y$,1,1,"ng-template",9),C()),2&t){const e=z();w("matFormFieldNotchedOutlineOpen",e._shouldLabelFloat())("matFormFieldNotchedOutlineLabelWidth",e._labelWidth),c(1),w("ngIf",!e._forceDisplayInfixLabel())}}function B$(t,n){1&t&&(D(0,"div",23,24),Sn(2,2),C())}function V$(t,n){1&t&&(D(0,"div",25,26),Sn(2,3),C())}function j$(t,n){}function z$(t,n){1&t&&V(0,j$,0,0,"ng-template",22),2&t&&(z(),w("ngTemplateOutlet",ci(1)))}function U$(t,n){1&t&&(D(0,"div",27),Sn(1,4),C())}function W$(t,n){1&t&&(D(0,"div",28),Sn(1,5),C())}function $$(t,n){1&t&&xe(0,"div",29)}function G$(t,n){1&t&&(D(0,"div",30),Sn(1,6),C()),2&t&&w("@transitionMessages",z()._subscriptAnimationState)}function q$(t,n){if(1&t&&(D(0,"mat-hint",34),I(1),C()),2&t){const e=z(2);w("id",e._hintLabelId),c(1),se(e.hintLabel)}}function K$(t,n){if(1&t&&(D(0,"div",31),V(1,q$,2,2,"mat-hint",32),Sn(2,7),xe(3,"div",33),Sn(4,8),C()),2&t){const e=z();w("@transitionMessages",e._subscriptAnimationState),c(1),w("ngIf",e.hintLabel)}}const Z$=["*",[["mat-label"]],[["","matPrefix",""],["","matIconPrefix",""]],[["","matTextPrefix",""]],[["","matTextSuffix",""]],[["","matSuffix",""],["","matIconSuffix",""]],[["mat-error"],["","matError",""]],[["mat-hint",3,"align","end"]],[["mat-hint","align","end"]]],X$=["*","mat-label","[matPrefix], [matIconPrefix]","[matTextPrefix]","[matTextSuffix]","[matSuffix], [matIconSuffix]","mat-error, [matError]","mat-hint:not([align='end'])","mat-hint[align='end']"];let yI=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["mat-label"]]}),t})(),J$=0;const MI=new Re("MatError");let sl=(()=>{class t{constructor(e,i){this.id="mat-mdc-error-"+J$++,e||i.nativeElement.setAttribute("aria-live","polite")}}return t.\u0275fac=function(e){return new(e||t)(Pa("aria-live"),Y(vt))},t.\u0275dir=Ke({type:t,selectors:[["mat-error"],["","matError",""]],hostAttrs:["aria-atomic","true",1,"mat-mdc-form-field-error","mat-mdc-form-field-bottom-align"],hostVars:1,hostBindings:function(e,i){2&e&&Js("id",i.id)},inputs:{id:"id"},features:[un([{provide:MI,useExisting:t}])]}),t})(),Q$=0,wI=(()=>{class t{constructor(){this.align="start",this.id="mat-mdc-hint-"+Q$++}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["mat-hint"]],hostAttrs:[1,"mat-mdc-form-field-hint","mat-mdc-form-field-bottom-align"],hostVars:4,hostBindings:function(e,i){2&e&&(Js("id",i.id),Xt("align",null),nn("mat-mdc-form-field-hint-end","end"===i.align))},inputs:{align:"align",id:"id"}}),t})();const eG=new Re("MatPrefix"),tG=new Re("MatSuffix");let CI=(()=>{class t{constructor(e){this._elementRef=e,this.floating=!1}getWidth(){return function nG(t){if(null!==t.offsetParent)return t.scrollWidth;const e=t.cloneNode(!0);e.style.setProperty("position","absolute"),e.style.setProperty("transform","translate(-9999px, -9999px)"),document.documentElement.appendChild(e);const i=e.scrollWidth;return e.remove(),i}(this._elementRef.nativeElement)}get element(){return this._elementRef.nativeElement}}return t.\u0275fac=function(e){return new(e||t)(Y(vt))},t.\u0275dir=Ke({type:t,selectors:[["label","matFormFieldFloatingLabel",""]],hostAttrs:[1,"mdc-floating-label","mat-mdc-floating-label"],hostVars:2,hostBindings:function(e,i){2&e&&nn("mdc-floating-label--float-above",i.floating)},inputs:{floating:"floating"}}),t})();const xI="mdc-line-ripple--active",Tg="mdc-line-ripple--deactivating";let kI=(()=>{class t{constructor(e,i){this._elementRef=e,this._handleTransitionEnd=o=>{const s=this._elementRef.nativeElement.classList,a=s.contains(Tg);"opacity"===o.propertyName&&a&&s.remove(xI,Tg)},i.runOutsideAngular(()=>{e.nativeElement.addEventListener("transitionend",this._handleTransitionEnd)})}activate(){const e=this._elementRef.nativeElement.classList;e.remove(Tg),e.add(xI)}deactivate(){this._elementRef.nativeElement.classList.add(Tg)}ngOnDestroy(){this._elementRef.nativeElement.removeEventListener("transitionend",this._handleTransitionEnd)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ft))},t.\u0275dir=Ke({type:t,selectors:[["div","matFormFieldLineRipple",""]],hostAttrs:[1,"mdc-line-ripple"]}),t})(),SI=(()=>{class t{constructor(e,i){this._elementRef=e,this._ngZone=i,this.labelWidth=0,this.open=!1}ngAfterViewInit(){const e=this._elementRef.nativeElement.querySelector(".mdc-floating-label");e?(this._elementRef.nativeElement.classList.add("mdc-notched-outline--upgraded"),"function"==typeof requestAnimationFrame&&(e.style.transitionDuration="0s",this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>e.style.transitionDuration="")}))):this._elementRef.nativeElement.classList.add("mdc-notched-outline--no-label")}_getNotchWidth(){return this.open?this.labelWidth>0?`calc(${this.labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + 9px)`:"0px":null}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ft))},t.\u0275cmp=Ze({type:t,selectors:[["div","matFormFieldNotchedOutline",""]],hostAttrs:[1,"mdc-notched-outline"],hostVars:2,hostBindings:function(e,i){2&e&&nn("mdc-notched-outline--notched",i.open)},inputs:{labelWidth:["matFormFieldNotchedOutlineLabelWidth","labelWidth"],open:["matFormFieldNotchedOutlineOpen","open"]},attrs:T$,ngContentSelectors:L$,decls:4,vars:2,consts:[[1,"mdc-notched-outline__leading"],[1,"mdc-notched-outline__notch"],[1,"mdc-notched-outline__trailing"]],template:function(e,i){1&e&&(Ir(),xe(0,"div",0),D(1,"div",1),Sn(2),C(),xe(3,"div",2)),2&e&&(c(1),Pl("width",i._getNotchWidth()))},encapsulation:2,changeDetection:0}),t})();const iG={transitionMessages:ia("transitionMessages",[yo("enter",Qn({opacity:1,transform:"translateY(0%)"})),Pr("void => enter",[Qn({opacity:0,transform:"translateY(-5px)"}),Ur("300ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let O1=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t}),t})();const A1=new Re("MatFormField"),rG=new Re("MAT_FORM_FIELD_DEFAULT_OPTIONS");let DI=0,ar=(()=>{class t{get hideRequiredMarker(){return this._hideRequiredMarker}set hideRequiredMarker(e){this._hideRequiredMarker=_n(e)}get floatLabel(){return this._floatLabel||this._defaults?.floatLabel||"auto"}set floatLabel(e){e!==this._floatLabel&&(this._floatLabel=e,this._changeDetectorRef.markForCheck())}get appearance(){return this._appearance}set appearance(e){const i=this._appearance;this._appearance=e||this._defaults?.appearance||"fill","outline"===this._appearance&&this._appearance!==i&&(this._refreshOutlineNotchWidth(),this._needsOutlineLabelOffsetUpdateOnStable=!0)}get subscriptSizing(){return this._subscriptSizing||this._defaults?.subscriptSizing||"fixed"}set subscriptSizing(e){this._subscriptSizing=e||this._defaults?.subscriptSizing||"fixed"}get hintLabel(){return this._hintLabel}set hintLabel(e){this._hintLabel=e,this._processHints()}get _control(){return this._explicitFormFieldControl||this._formFieldControl}set _control(e){this._explicitFormFieldControl=e}constructor(e,i,o,s,a,l,d,_){this._elementRef=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=s,this._platform=a,this._defaults=l,this._animationMode=d,this._document=_,this._hideRequiredMarker=!1,this.color="primary",this._appearance="fill",this._subscriptSizing=null,this._hintLabel="",this._hasIconPrefix=!1,this._hasTextPrefix=!1,this._hasIconSuffix=!1,this._hasTextSuffix=!1,this._labelId="mat-mdc-form-field-label-"+DI++,this._hintLabelId="mat-mdc-hint-"+DI++,this._subscriptAnimationState="",this._labelWidth=0,this._destroyed=new J,this._isFocused=null,this._needsOutlineLabelOffsetUpdateOnStable=!1,l&&(l.appearance&&(this.appearance=l.appearance),this._hideRequiredMarker=!!l?.hideRequiredMarker,l.color&&(this.color=l.color))}ngAfterViewInit(){this._updateFocusState(),this._refreshOutlineNotchWidth(),this._document?.fonts?.ready?this._document.fonts.ready.then(()=>{this._refreshOutlineNotchWidth(),this._changeDetectorRef.markForCheck()}):setTimeout(()=>this._refreshOutlineNotchWidth(),100),this._subscriptAnimationState="enter",this._changeDetectorRef.detectChanges()}ngAfterContentInit(){this._assertFormFieldControl(),this._initializeControl(),this._initializeSubscript(),this._initializePrefixAndSuffix(),this._initializeOutlineLabelOffsetSubscriptions()}ngAfterContentChecked(){this._assertFormFieldControl()}ngOnDestroy(){this._destroyed.next(),this._destroyed.complete()}getLabelId(){return this._hasFloatingLabel()?this._labelId:null}getConnectedOverlayOrigin(){return this._textField||this._elementRef}_animateAndLockLabel(){this._hasFloatingLabel()&&(this.floatLabel="always")}_initializeControl(){const e=this._control;e.controlType&&this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${e.controlType}`),e.stateChanges.subscribe(()=>{this._updateFocusState(),this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),e.ngControl&&e.ngControl.valueChanges&&e.ngControl.valueChanges.pipe(Hn(this._destroyed)).subscribe(()=>this._changeDetectorRef.markForCheck())}_checkPrefixAndSuffixTypes(){this._hasIconPrefix=!!this._prefixChildren.find(e=>!e._isText),this._hasTextPrefix=!!this._prefixChildren.find(e=>e._isText),this._hasIconSuffix=!!this._suffixChildren.find(e=>!e._isText),this._hasTextSuffix=!!this._suffixChildren.find(e=>e._isText)}_initializePrefixAndSuffix(){this._checkPrefixAndSuffixTypes(),bt(this._prefixChildren.changes,this._suffixChildren.changes).subscribe(()=>{this._checkPrefixAndSuffixTypes(),this._changeDetectorRef.markForCheck()})}_initializeSubscript(){this._hintChildren.changes.subscribe(()=>{this._processHints(),this._changeDetectorRef.markForCheck()}),this._errorChildren.changes.subscribe(()=>{this._syncDescribedByIds(),this._changeDetectorRef.markForCheck()}),this._validateHints(),this._syncDescribedByIds()}_assertFormFieldControl(){}_updateFocusState(){this._control.focused&&!this._isFocused?(this._isFocused=!0,this._lineRipple?.activate()):!this._control.focused&&(this._isFocused||null===this._isFocused)&&(this._isFocused=!1,this._lineRipple?.deactivate()),this._textField?.nativeElement.classList.toggle("mdc-text-field--focused",this._control.focused)}_initializeOutlineLabelOffsetSubscriptions(){this._prefixChildren.changes.subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.pipe(Hn(this._destroyed)).subscribe(()=>{this._needsOutlineLabelOffsetUpdateOnStable&&(this._needsOutlineLabelOffsetUpdateOnStable=!1,this._updateOutlineLabelOffset())})}),this._dir.change.pipe(Hn(this._destroyed)).subscribe(()=>this._needsOutlineLabelOffsetUpdateOnStable=!0)}_shouldAlwaysFloat(){return"always"===this.floatLabel}_hasOutline(){return"outline"===this.appearance}_forceDisplayInfixLabel(){return!this._platform.isBrowser&&this._prefixChildren.length&&!this._shouldLabelFloat()}_hasFloatingLabel(){return!!this._labelChildNonStatic||!!this._labelChildStatic}_shouldLabelFloat(){return this._control.shouldLabelFloat||this._shouldAlwaysFloat()}_shouldForward(e){const i=this._control?this._control.ngControl:null;return i&&i[e]}_getDisplayedMessages(){return this._errorChildren&&this._errorChildren.length>0&&this._control.errorState?"error":"hint"}_refreshOutlineNotchWidth(){!this._hasOutline()||!this._floatingLabel||(this._labelWidth=this._floatingLabel.getWidth())}_processHints(){this._validateHints(),this._syncDescribedByIds()}_validateHints(){}_syncDescribedByIds(){if(this._control){let e=[];if(this._control.userAriaDescribedBy&&"string"==typeof this._control.userAriaDescribedBy&&e.push(...this._control.userAriaDescribedBy.split(" ")),"hint"===this._getDisplayedMessages()){const i=this._hintChildren?this._hintChildren.find(s=>"start"===s.align):null,o=this._hintChildren?this._hintChildren.find(s=>"end"===s.align):null;i?e.push(i.id):this._hintLabel&&e.push(this._hintLabelId),o&&e.push(o.id)}else this._errorChildren&&e.push(...this._errorChildren.map(i=>i.id));this._control.setDescribedByIds(e)}}_updateOutlineLabelOffset(){if(!this._platform.isBrowser||!this._hasOutline()||!this._floatingLabel)return;const e=this._floatingLabel.element;if(!this._iconPrefixContainer&&!this._textPrefixContainer)return void(e.style.transform="");if(!this._isAttachedToDom())return void(this._needsOutlineLabelOffsetUpdateOnStable=!0);const i=this._iconPrefixContainer?.nativeElement,o=this._textPrefixContainer?.nativeElement,s=i?.getBoundingClientRect().width??0,a=o?.getBoundingClientRect().width??0;e.style.transform=`var(\n --mat-mdc-form-field-label-transform,\n translateY(-50%) translateX(calc(${"rtl"===this._dir.value?"-1":"1"} * (${s+a}px + var(--mat-mdc-form-field-label-offset-x, 0px))))\n )`}_isAttachedToDom(){const e=this._elementRef.nativeElement;if(e.getRootNode){const i=e.getRootNode();return i&&i!==e}return document.documentElement.contains(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(ft),Y(Do),Y(ui),Y(rG,8),Y(Ri,8),Y(It))},t.\u0275cmp=Ze({type:t,selectors:[["mat-form-field"]],contentQueries:function(e,i,o){if(1&e&&(or(o,yI,5),or(o,yI,7),or(o,O1,5),or(o,eG,5),or(o,tG,5),or(o,MI,5),or(o,wI,5)),2&e){let s;rt(s=ot())&&(i._labelChildNonStatic=s.first),rt(s=ot())&&(i._labelChildStatic=s.first),rt(s=ot())&&(i._formFieldControl=s.first),rt(s=ot())&&(i._prefixChildren=s),rt(s=ot())&&(i._suffixChildren=s),rt(s=ot())&&(i._errorChildren=s),rt(s=ot())&&(i._hintChildren=s)}},viewQuery:function(e,i){if(1&e&&(_t(E$,5),_t(I$,5),_t(P$,5),_t(CI,5),_t(SI,5),_t(kI,5)),2&e){let o;rt(o=ot())&&(i._textField=o.first),rt(o=ot())&&(i._iconPrefixContainer=o.first),rt(o=ot())&&(i._textPrefixContainer=o.first),rt(o=ot())&&(i._floatingLabel=o.first),rt(o=ot())&&(i._notchedOutline=o.first),rt(o=ot())&&(i._lineRipple=o.first)}},hostAttrs:[1,"mat-mdc-form-field"],hostVars:42,hostBindings:function(e,i){2&e&&nn("mat-mdc-form-field-label-always-float",i._shouldAlwaysFloat())("mat-mdc-form-field-has-icon-prefix",i._hasIconPrefix)("mat-mdc-form-field-has-icon-suffix",i._hasIconSuffix)("mat-form-field-invalid",i._control.errorState)("mat-form-field-disabled",i._control.disabled)("mat-form-field-autofilled",i._control.autofilled)("mat-form-field-no-animations","NoopAnimations"===i._animationMode)("mat-form-field-appearance-fill","fill"==i.appearance)("mat-form-field-appearance-outline","outline"==i.appearance)("mat-form-field-hide-placeholder",i._hasFloatingLabel()&&!i._shouldLabelFloat())("mat-focused",i._control.focused)("mat-primary","accent"!==i.color&&"warn"!==i.color)("mat-accent","accent"===i.color)("mat-warn","warn"===i.color)("ng-untouched",i._shouldForward("untouched"))("ng-touched",i._shouldForward("touched"))("ng-pristine",i._shouldForward("pristine"))("ng-dirty",i._shouldForward("dirty"))("ng-valid",i._shouldForward("valid"))("ng-invalid",i._shouldForward("invalid"))("ng-pending",i._shouldForward("pending"))},inputs:{hideRequiredMarker:"hideRequiredMarker",color:"color",floatLabel:"floatLabel",appearance:"appearance",subscriptSizing:"subscriptSizing",hintLabel:"hintLabel"},exportAs:["matFormField"],features:[un([{provide:A1,useExisting:t}])],ngContentSelectors:X$,decls:18,vars:23,consts:[["labelTemplate",""],[1,"mat-mdc-text-field-wrapper","mdc-text-field",3,"click"],["textField",""],["class","mat-mdc-form-field-focus-overlay",4,"ngIf"],[1,"mat-mdc-form-field-flex"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen","matFormFieldNotchedOutlineLabelWidth",4,"ngIf"],["class","mat-mdc-form-field-icon-prefix",4,"ngIf"],["class","mat-mdc-form-field-text-prefix",4,"ngIf"],[1,"mat-mdc-form-field-infix"],[3,"ngIf"],["class","mat-mdc-form-field-text-suffix",4,"ngIf"],["class","mat-mdc-form-field-icon-suffix",4,"ngIf"],["matFormFieldLineRipple","",4,"ngIf"],[1,"mat-mdc-form-field-subscript-wrapper","mat-mdc-form-field-bottom-align",3,"ngSwitch"],["class","mat-mdc-form-field-error-wrapper",4,"ngSwitchCase"],["class","mat-mdc-form-field-hint-wrapper",4,"ngSwitchCase"],["matFormFieldFloatingLabel","",3,"floating","cdkObserveContentDisabled","id","cdkObserveContent",4,"ngIf"],["matFormFieldFloatingLabel","",3,"floating","cdkObserveContentDisabled","id","cdkObserveContent"],["aria-hidden","true","class","mat-mdc-form-field-required-marker mdc-floating-label--required",4,"ngIf"],["aria-hidden","true",1,"mat-mdc-form-field-required-marker","mdc-floating-label--required"],[1,"mat-mdc-form-field-focus-overlay"],["matFormFieldNotchedOutline","",3,"matFormFieldNotchedOutlineOpen","matFormFieldNotchedOutlineLabelWidth"],[3,"ngTemplateOutlet"],[1,"mat-mdc-form-field-icon-prefix"],["iconPrefixContainer",""],[1,"mat-mdc-form-field-text-prefix"],["textPrefixContainer",""],[1,"mat-mdc-form-field-text-suffix"],[1,"mat-mdc-form-field-icon-suffix"],["matFormFieldLineRipple",""],[1,"mat-mdc-form-field-error-wrapper"],[1,"mat-mdc-form-field-hint-wrapper"],[3,"id",4,"ngIf"],[1,"mat-mdc-form-field-hint-spacer"],[3,"id"]],template:function(e,i){1&e&&(Ir(Z$),V(0,F$,1,1,"ng-template",null,0,Es),D(2,"div",1,2),ye("click",function(s){return i._control.onContainerClick(s)}),V(4,R$,1,0,"div",3),D(5,"div",4),V(6,H$,2,3,"div",5),V(7,B$,3,0,"div",6),V(8,V$,3,0,"div",7),D(9,"div",8),V(10,z$,1,1,"ng-template",9),Sn(11),C(),V(12,U$,2,0,"div",10),V(13,W$,2,0,"div",11),C(),V(14,$$,1,0,"div",12),C(),D(15,"div",13),V(16,G$,2,1,"div",14),V(17,K$,5,2,"div",15),C()),2&e&&(c(2),nn("mdc-text-field--filled",!i._hasOutline())("mdc-text-field--outlined",i._hasOutline())("mdc-text-field--no-label",!i._hasFloatingLabel())("mdc-text-field--disabled",i._control.disabled)("mdc-text-field--invalid",i._control.errorState),c(2),w("ngIf",!i._hasOutline()&&!i._control.disabled),c(2),w("ngIf",i._hasOutline()),c(1),w("ngIf",i._hasIconPrefix),c(1),w("ngIf",i._hasTextPrefix),c(2),w("ngIf",!i._hasOutline()||i._forceDisplayInfixLabel()),c(2),w("ngIf",i._hasTextSuffix),c(1),w("ngIf",i._hasIconSuffix),c(1),w("ngIf",!i._hasOutline()),c(1),nn("mat-mdc-form-field-subscript-dynamic-size","dynamic"===i.subscriptSizing),w("ngSwitch",i._getDisplayedMessages()),c(1),w("ngSwitchCase","error"),c(1),w("ngSwitchCase","hint"))},dependencies:[Ft,hd,eh,my,dL,wI,CI,SI,kI],styles:['.mdc-text-field{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:"";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:"*"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px * 2)}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:""}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{line-height:normal;pointer-events:all}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:"";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:"";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}'],encapsulation:2,data:{animation:[iG.transitionMessages]},changeDetection:0}),t})(),Lg=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,ta,j0,Wn]}),t})();const EI=Za({passive:!0});let aG=(()=>{class t{constructor(e,i){this._platform=e,this._ngZone=i,this._monitoredElements=new Map}monitor(e){if(!this._platform.isBrowser)return oa;const i=la(e),o=this._monitoredElements.get(i);if(o)return o.subject;const s=new J,a="cdk-text-field-autofilled",l=d=>{"cdk-text-field-autofill-start"!==d.animationName||i.classList.contains(a)?"cdk-text-field-autofill-end"===d.animationName&&i.classList.contains(a)&&(i.classList.remove(a),this._ngZone.run(()=>s.next({target:d.target,isAutofilled:!1}))):(i.classList.add(a),this._ngZone.run(()=>s.next({target:d.target,isAutofilled:!0})))};return this._ngZone.runOutsideAngular(()=>{i.addEventListener("animationstart",l,EI),i.classList.add("cdk-text-field-autofill-monitored")}),this._monitoredElements.set(i,{subject:s,unlisten:()=>{i.removeEventListener("animationstart",l,EI)}}),s}stopMonitoring(e){const i=la(e),o=this._monitoredElements.get(i);o&&(o.unlisten(),o.subject.complete(),i.classList.remove("cdk-text-field-autofill-monitored"),i.classList.remove("cdk-text-field-autofilled"),this._monitoredElements.delete(i))}ngOnDestroy(){this._monitoredElements.forEach((e,i)=>this.stopMonitoring(i))}}return t.\u0275fac=function(e){return new(e||t)(we(ui),we(ft))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),lG=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})();const cG=new Re("MAT_INPUT_VALUE_ACCESSOR"),dG=["button","checkbox","file","hidden","image","radio","range","reset","submit"];let uG=0;const hG=EL(class{constructor(t,n,e,i){this._defaultErrorStateMatcher=t,this._parentForm=n,this._parentFormGroup=e,this.ngControl=i,this.stateChanges=new J}});let kr=(()=>{class t extends hG{get disabled(){return this._disabled}set disabled(e){this._disabled=_n(e),this.focused&&(this.focused=!1,this.stateChanges.next())}get id(){return this._id}set id(e){this._id=e||this._uid}get required(){return this._required??this.ngControl?.control?.hasValidator(Gt.required)??!1}set required(e){this._required=_n(e)}get type(){return this._type}set type(e){this._type=e||"text",this._validateType(),!this._isTextarea&&K2().has(this._type)&&(this._elementRef.nativeElement.type=this._type)}get value(){return this._inputValueAccessor.value}set value(e){e!==this.value&&(this._inputValueAccessor.value=e,this.stateChanges.next())}get readonly(){return this._readonly}set readonly(e){this._readonly=_n(e)}constructor(e,i,o,s,a,l,d,_,E,F){super(l,s,a,o),this._elementRef=e,this._platform=i,this._autofillMonitor=_,this._formField=F,this._uid="mat-input-"+uG++,this.focused=!1,this.stateChanges=new J,this.controlType="mat-input",this.autofilled=!1,this._disabled=!1,this._type="text",this._readonly=!1,this._neverEmptyInputTypes=["date","datetime","datetime-local","month","time","week"].filter(_e=>K2().has(_e)),this._iOSKeyupListener=_e=>{const Ce=_e.target;!Ce.value&&0===Ce.selectionStart&&0===Ce.selectionEnd&&(Ce.setSelectionRange(1,1),Ce.setSelectionRange(0,0))};const G=this._elementRef.nativeElement,ie=G.nodeName.toLowerCase();this._inputValueAccessor=d||G,this._previousNativeValue=this.value,this.id=this.id,i.IOS&&E.runOutsideAngular(()=>{e.nativeElement.addEventListener("keyup",this._iOSKeyupListener)}),this._isServer=!this._platform.isBrowser,this._isNativeSelect="select"===ie,this._isTextarea="textarea"===ie,this._isInFormField=!!F,this._isNativeSelect&&(this.controlType=G.multiple?"mat-native-select-multiple":"mat-native-select")}ngAfterViewInit(){this._platform.isBrowser&&this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(e=>{this.autofilled=e.isAutofilled,this.stateChanges.next()})}ngOnChanges(){this.stateChanges.next()}ngOnDestroy(){this.stateChanges.complete(),this._platform.isBrowser&&this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement),this._platform.IOS&&this._elementRef.nativeElement.removeEventListener("keyup",this._iOSKeyupListener)}ngDoCheck(){this.ngControl&&(this.updateErrorState(),null!==this.ngControl.disabled&&this.ngControl.disabled!==this.disabled&&(this.disabled=this.ngControl.disabled,this.stateChanges.next())),this._dirtyCheckNativeValue(),this._dirtyCheckPlaceholder()}focus(e){this._elementRef.nativeElement.focus(e)}_focusChanged(e){e!==this.focused&&(this.focused=e,this.stateChanges.next())}_onInput(){}_dirtyCheckNativeValue(){const e=this._elementRef.nativeElement.value;this._previousNativeValue!==e&&(this._previousNativeValue=e,this.stateChanges.next())}_dirtyCheckPlaceholder(){const e=this._getPlaceholder();if(e!==this._previousPlaceholder){const i=this._elementRef.nativeElement;this._previousPlaceholder=e,e?i.setAttribute("placeholder",e):i.removeAttribute("placeholder")}}_getPlaceholder(){return this.placeholder||null}_validateType(){dG.indexOf(this._type)}_isNeverEmpty(){return this._neverEmptyInputTypes.indexOf(this._type)>-1}_isBadInput(){let e=this._elementRef.nativeElement.validity;return e&&e.badInput}get empty(){return!(this._isNeverEmpty()||this._elementRef.nativeElement.value||this._isBadInput()||this.autofilled)}get shouldLabelFloat(){if(this._isNativeSelect){const e=this._elementRef.nativeElement,i=e.options[0];return this.focused||e.multiple||!this.empty||!!(e.selectedIndex>-1&&i&&i.label)}return this.focused||!this.empty}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focused||this.focus()}_isInlineSelect(){const e=this._elementRef.nativeElement;return this._isNativeSelect&&(e.multiple||e.size>1)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ui),Y(Rs,10),Y(Xh,8),Y(ii,8),Y(e1),Y(cG,10),Y(aG),Y(ft),Y(A1,8))},t.\u0275dir=Ke({type:t,selectors:[["input","matInput",""],["textarea","matInput",""],["select","matNativeControl",""],["input","matNativeControl",""],["textarea","matNativeControl",""]],hostAttrs:[1,"mat-mdc-input-element"],hostVars:18,hostBindings:function(e,i){1&e&&ye("focus",function(){return i._focusChanged(!0)})("blur",function(){return i._focusChanged(!1)})("input",function(){return i._onInput()}),2&e&&(Js("id",i.id)("disabled",i.disabled)("required",i.required),Xt("name",i.name||null)("readonly",i.readonly&&!i._isNativeSelect||null)("aria-invalid",i.empty&&i.required?null:i.errorState)("aria-required",i.required)("id",i.id),nn("mat-input-server",i._isServer)("mat-mdc-form-field-textarea-control",i._isInFormField&&i._isTextarea)("mat-mdc-form-field-input-control",i._isInFormField)("mdc-text-field__input",i._isInFormField)("mat-mdc-native-select-inline",i._isInlineSelect()))},inputs:{disabled:"disabled",id:"id",placeholder:"placeholder",name:"name",required:"required",type:"type",errorStateMatcher:"errorStateMatcher",userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],value:"value",readonly:"readonly"},exportAs:["matInput"],features:[un([{provide:O1,useExisting:t}]),nt,Gi]}),t})(),fG=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,Lg,Lg,lG,Wn]}),t})();const pG=["tooltip"],II=new Re("mat-tooltip-scroll-strategy"),_G={provide:II,deps:[io],useFactory:function gG(t){return()=>t.scrollStrategies.reposition({scrollThrottle:20})}},vG=new Re("mat-tooltip-default-options",{providedIn:"root",factory:function bG(){return{showDelay:0,hideDelay:0,touchendHideDelay:1500}}}),PI="tooltip-panel",OI=Za({passive:!0});let kG=(()=>{class t{get position(){return this._position}set position(e){e!==this._position&&(this._position=e,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()))}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(e){this._positionAtOrigin=_n(e),this._detach(),this._overlayRef=null}get disabled(){return this._disabled}set disabled(e){this._disabled=_n(e),this._disabled?this.hide(0):this._setupPointerEnterEventsIfNeeded()}get showDelay(){return this._showDelay}set showDelay(e){this._showDelay=So(e)}get hideDelay(){return this._hideDelay}set hideDelay(e){this._hideDelay=So(e),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay)}get message(){return this._message}set message(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this._message,"tooltip"),this._message=null!=e?String(e).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage(),this._ngZone.runOutsideAngular(()=>{Promise.resolve().then(()=>{this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip")})}))}get tooltipClass(){return this._tooltipClass}set tooltipClass(e){this._tooltipClass=e,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass)}constructor(e,i,o,s,a,l,d,_,E,F,G,ie){this._overlay=e,this._elementRef=i,this._scrollDispatcher=o,this._viewContainerRef=s,this._ngZone=a,this._platform=l,this._ariaDescriber=d,this._focusMonitor=_,this._dir=F,this._defaultOptions=G,this._position="below",this._positionAtOrigin=!1,this._disabled=!1,this._viewInitialized=!1,this._pointerExitEventsInitialized=!1,this._viewportMargin=8,this._cssClassPrefix="mat",this.touchGestures="auto",this._message="",this._passiveListeners=[],this._destroyed=new J,this._scrollStrategy=E,this._document=ie,G&&(this._showDelay=G.showDelay,this._hideDelay=G.hideDelay,G.position&&(this.position=G.position),G.positionAtOrigin&&(this.positionAtOrigin=G.positionAtOrigin),G.touchGestures&&(this.touchGestures=G.touchGestures)),F.change.pipe(Hn(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef)})}ngAfterViewInit(){this._viewInitialized=!0,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(Hn(this._destroyed)).subscribe(e=>{e?"keyboard"===e&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0))})}ngOnDestroy(){const e=this._elementRef.nativeElement;clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._passiveListeners.forEach(([i,o])=>{e.removeEventListener(i,o,OI)}),this._passiveListeners.length=0,this._destroyed.next(),this._destroyed.complete(),this._ariaDescriber.removeDescription(e,this.message,"tooltip"),this._focusMonitor.stopMonitoring(e)}show(e=this.showDelay,i){if(this.disabled||!this.message||this._isTooltipVisible())return void this._tooltipInstance?._cancelPendingAnimations();const o=this._createOverlay(i);this._detach(),this._portal=this._portal||new Sd(this._tooltipComponent,this._viewContainerRef);const s=this._tooltipInstance=o.attach(this._portal).instance;s._triggerElement=this._elementRef.nativeElement,s._mouseLeaveHideDelay=this._hideDelay,s.afterHidden().pipe(Hn(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),s.show(e)}hide(e=this.hideDelay){const i=this._tooltipInstance;i&&(i.isVisible()?i.hide(e):(i._cancelPendingAnimations(),this._detach()))}toggle(e){this._isTooltipVisible()?this.hide():this.show(void 0,e)}_isTooltipVisible(){return!!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(e){if(this._overlayRef){const s=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!e)&&s._origin instanceof vt)return this._overlayRef;this._detach()}const i=this._scrollDispatcher.getAncestorScrollContainers(this._elementRef),o=this._overlay.position().flexibleConnectedTo(this.positionAtOrigin&&e||this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(!1).withViewportMargin(this._viewportMargin).withScrollableContainers(i);return o.positionChanges.pipe(Hn(this._destroyed)).subscribe(s=>{this._updateCurrentPositionClass(s.connectionPair),this._tooltipInstance&&s.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0))}),this._overlayRef=this._overlay.create({direction:this._dir,positionStrategy:o,panelClass:`${this._cssClassPrefix}-${PI}`,scrollStrategy:this._scrollStrategy()}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(Hn(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(Hn(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(Hn(this._destroyed)).subscribe(s=>{this._isTooltipVisible()&&27===s.keyCode&&!Fs(s)&&(s.preventDefault(),s.stopPropagation(),this._ngZone.run(()=>this.hide(0)))}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null}_updatePosition(e){const i=e.getConfig().positionStrategy,o=this._getOrigin(),s=this._getOverlayPosition();i.withPositions([this._addOffset({...o.main,...s.main}),this._addOffset({...o.fallback,...s.fallback})])}_addOffset(e){return e}_getOrigin(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i||"below"==i?o={originX:"center",originY:"above"==i?"top":"bottom"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={originX:"start",originY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={originX:"end",originY:"center"});const{x:s,y:a}=this._invertPosition(o.originX,o.originY);return{main:o,fallback:{originX:s,originY:a}}}_getOverlayPosition(){const e=!this._dir||"ltr"==this._dir.value,i=this.position;let o;"above"==i?o={overlayX:"center",overlayY:"bottom"}:"below"==i?o={overlayX:"center",overlayY:"top"}:"before"==i||"left"==i&&e||"right"==i&&!e?o={overlayX:"end",overlayY:"center"}:("after"==i||"right"==i&&e||"left"==i&&!e)&&(o={overlayX:"start",overlayY:"center"});const{x:s,y:a}=this._invertPosition(o.overlayX,o.overlayY);return{main:o,fallback:{overlayX:s,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),this._ngZone.onMicrotaskEmpty.pipe(Kn(1),Hn(this._destroyed)).subscribe(()=>{this._tooltipInstance&&this._overlayRef.updatePosition()}))}_setTooltipClass(e){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=e,this._tooltipInstance._markForCheck())}_invertPosition(e,i){return"above"===this.position||"below"===this.position?"top"===i?i="bottom":"bottom"===i&&(i="top"):"end"===e?e="start":"start"===e&&(e="end"),{x:e,y:i}}_updateCurrentPositionClass(e){const{overlayY:i,originX:o,originY:s}=e;let a;if(a="center"===i?this._dir&&"rtl"===this._dir.value?"end"===o?"left":"right":"start"===o?"left":"right":"bottom"===i&&"top"===s?"above":"below",a!==this._currentPosition){const l=this._overlayRef;if(l){const d=`${this._cssClassPrefix}-${PI}-`;l.removePanelClass(d+this._currentPosition),l.addPanelClass(d+a)}this._currentPosition=a}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._passiveListeners.length||(this._platformSupportsMouseEvents()?this._passiveListeners.push(["mouseenter",e=>{let i;this._setupPointerExitEventsIfNeeded(),void 0!==e.x&&void 0!==e.y&&(i=e),this.show(void 0,i)}]):"off"!==this.touchGestures&&(this._disableNativeGesturesIfNecessary(),this._passiveListeners.push(["touchstart",e=>{const i=e.targetTouches?.[0],o=i?{x:i.clientX,y:i.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),clearTimeout(this._touchstartTimeout),this._touchstartTimeout=setTimeout(()=>this.show(void 0,o),500)}])),this._addListeners(this._passiveListeners))}_setupPointerExitEventsIfNeeded(){if(this._pointerExitEventsInitialized)return;this._pointerExitEventsInitialized=!0;const e=[];if(this._platformSupportsMouseEvents())e.push(["mouseleave",i=>{const o=i.relatedTarget;(!o||!this._overlayRef?.overlayElement.contains(o))&&this.hide()}],["wheel",i=>this._wheelListener(i)]);else if("off"!==this.touchGestures){this._disableNativeGesturesIfNecessary();const i=()=>{clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions.touchendHideDelay)};e.push(["touchend",i],["touchcancel",i])}this._addListeners(e),this._passiveListeners.push(...e)}_addListeners(e){e.forEach(([i,o])=>{this._elementRef.nativeElement.addEventListener(i,o,OI)})}_platformSupportsMouseEvents(){return!this._platform.IOS&&!this._platform.ANDROID}_wheelListener(e){if(this._isTooltipVisible()){const i=this._document.elementFromPoint(e.clientX,e.clientY),o=this._elementRef.nativeElement;i!==o&&!o.contains(i)&&this.hide()}}_disableNativeGesturesIfNecessary(){const e=this.touchGestures;if("off"!==e){const i=this._elementRef.nativeElement,o=i.style;("on"===e||"INPUT"!==i.nodeName&&"TEXTAREA"!==i.nodeName)&&(o.userSelect=o.msUserSelect=o.webkitUserSelect=o.MozUserSelect="none"),("on"===e||!i.draggable)&&(o.webkitUserDrag="none"),o.touchAction="none",o.webkitTapHighlightColor="transparent"}}}return t.\u0275fac=function(e){Aa()},t.\u0275dir=Ke({type:t,inputs:{position:["matTooltipPosition","position"],positionAtOrigin:["matTooltipPositionAtOrigin","positionAtOrigin"],disabled:["matTooltipDisabled","disabled"],showDelay:["matTooltipShowDelay","showDelay"],hideDelay:["matTooltipHideDelay","hideDelay"],touchGestures:["matTooltipTouchGestures","touchGestures"],message:["matTooltip","message"],tooltipClass:["matTooltipClass","tooltipClass"]}}),t})(),vi=(()=>{class t extends kG{constructor(e,i,o,s,a,l,d,_,E,F,G,ie){super(e,i,o,s,a,l,d,_,E,F,G,ie),this._tooltipComponent=DG,this._cssClassPrefix="mat-mdc",this._viewportMargin=8}_addOffset(e){const o=!this._dir||"ltr"==this._dir.value;return"top"===e.originY?e.offsetY=-8:"bottom"===e.originY?e.offsetY=8:"start"===e.originX?e.offsetX=o?-8:8:"end"===e.originX&&(e.offsetX=o?8:-8),e}}return t.\u0275fac=function(e){return new(e||t)(Y(io),Y(vt),Y(Z2),Y(rr),Y(ft),Y(ui),Y(_z),Y(Qa),Y(II),Y(Do,8),Y(vG,8),Y(It))},t.\u0275dir=Ke({type:t,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],exportAs:["matTooltip"],features:[nt]}),t})(),SG=(()=>{class t{constructor(e,i){this._changeDetectorRef=e,this._closeOnInteraction=!1,this._isVisible=!1,this._onHide=new J,this._animationsDisabled="NoopAnimations"===i}show(e){null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(!0),this._showTimeoutId=void 0},e)}hide(e){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(!1),this._hideTimeoutId=void 0},e)}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0)}_markForCheck(){this._changeDetectorRef.markForCheck()}_handleMouseLeave({relatedTarget:e}){(!e||!this._triggerElement.contains(e))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(!1))}_onShow(){}_handleAnimationEnd({animationName:e}){(e===this._showAnimation||e===this._hideAnimation)&&this._finalizeAnimation(e===this._showAnimation)}_cancelPendingAnimations(){null!=this._showTimeoutId&&clearTimeout(this._showTimeoutId),null!=this._hideTimeoutId&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0}_finalizeAnimation(e){e?this._closeOnInteraction=!0:this.isVisible()||this._onHide.next()}_toggleVisibility(e){const i=this._tooltip.nativeElement,o=this._showAnimation,s=this._hideAnimation;if(i.classList.remove(e?s:o),i.classList.add(e?o:s),this._isVisible=e,e&&!this._animationsDisabled&&"function"==typeof getComputedStyle){const a=getComputedStyle(i);("0s"===a.getPropertyValue("animation-duration")||"none"===a.getPropertyValue("animation-name"))&&(this._animationsDisabled=!0)}e&&this._onShow(),this._animationsDisabled&&(i.classList.add("_mat-animation-noopable"),this._finalizeAnimation(e))}}return t.\u0275fac=function(e){return new(e||t)(Y(pi),Y(Ri,8))},t.\u0275dir=Ke({type:t}),t})(),DG=(()=>{class t extends SG{constructor(e,i,o){super(e,o),this._elementRef=i,this._isMultiline=!1,this._showAnimation="mat-mdc-tooltip-show",this._hideAnimation="mat-mdc-tooltip-hide"}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck()}_isTooltipMultiline(){const e=this._elementRef.nativeElement.getBoundingClientRect();return e.height>24&&e.width>=200}}return t.\u0275fac=function(e){return new(e||t)(Y(pi),Y(vt),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-tooltip-component"]],viewQuery:function(e,i){if(1&e&&_t(pG,7),2&e){let o;rt(o=ot())&&(i._tooltip=o.first)}},hostAttrs:["aria-hidden","true"],hostVars:2,hostBindings:function(e,i){1&e&&ye("mouseleave",function(s){return i._handleMouseLeave(s)}),2&e&&Pl("zoom",i.isVisible()?1:null)},features:[nt],decls:4,vars:4,consts:[[1,"mdc-tooltip","mdc-tooltip--shown","mat-mdc-tooltip",3,"ngClass","animationend"],["tooltip",""],[1,"mdc-tooltip__surface","mdc-tooltip__surface-animation"]],template:function(e,i){1&e&&(D(0,"div",0,1),ye("animationend",function(s){return i._handleAnimationEnd(s)}),D(2,"div",2),I(3),C()()),2&e&&(nn("mdc-tooltip--multiline",i._isMultiline),w("ngClass",i.tooltipClass),c(3),se(i.message))},dependencies:[Nn],styles:['.mdc-tooltip__surface{word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color, #fff)}.mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape, var(--mdc-shape-small, 4px))}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape, var(--mdc-shape-small, 4px))}.mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color, #000)}.mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font, inherit);font-size:var(--mdc-plain-tooltip-supporting-text-size, inherit);font-weight:var(--mdc-plain-tooltip-supporting-text-weight, inherit);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking, inherit)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:"";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}'],encapsulation:2,changeDetection:0}),t})(),TG=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[_G],imports:[X0,ta,Td,Wn,Wn,Lh]}),t})();const LG=["button1"],EG=["button2"];function IG(t,n){1&t&&xe(0,"mat-spinner",5),2&t&&w("diameter",z().loadingSize)}function PG(t,n){1&t&&(D(0,"mat-icon"),I(1,"error_outline"),C())}const OG=function(t){return{"for-dark-background":t}},AG=["*"];var Gr=(()=>((Gr=Gr||{})[Gr.Normal=0]="Normal",Gr[Gr.Error=1]="Error",Gr[Gr.Loading=2]="Loading",Gr))();let Ui=(()=>{class t{constructor(){this.forDarkBackground=!1,this.disabled=!1,this.color="",this.loadingSize=20,this.action=new ht,this.state=Gr.Normal,this.buttonStates=Gr}ngOnDestroy(){this.action.complete()}click(){this.disabled||(this.reset(),this.action.emit())}reset(e=!0){this.state=Gr.Normal,e&&(this.disabled=!1)}focus(){this.button1&&this.button1.focus(),this.button2&&this.button2.focus()}showEnabled(){this.disabled=!1}showDisabled(){this.disabled=!0}showLoading(e=!0){this.state=Gr.Loading,e&&(this.disabled=!0)}showError(e=!0){this.state=Gr.Error,e&&(this.disabled=!1)}get isLoading(){return this.state===Gr.Loading}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-button"]],viewQuery:function(e,i){if(1&e&&(_t(LG,5),_t(EG,5)),2&e){let o;rt(o=ot())&&(i.button1=o.first),rt(o=ot())&&(i.button2=o.first)}},inputs:{forDarkBackground:"forDarkBackground",disabled:"disabled",color:"color",loadingSize:"loadingSize"},outputs:{action:"action"},ngContentSelectors:AG,decls:6,vars:7,consts:[["mat-raised-button","",3,"disabled","color","ngClass","click"],["button2",""],[1,"d-flex"],[3,"diameter",4,"ngIf"],[4,"ngIf"],[3,"diameter"]],template:function(e,i){1&e&&(Ir(),D(0,"button",0,1),ye("click",function(){return i.click()}),D(2,"div",2),V(3,IG,1,1,"mat-spinner",3),V(4,PG,2,0,"mat-icon",4),Sn(5),C()()),2&e&&(w("disabled",i.disabled)("color",i.color)("ngClass",He(5,OG,i.forDarkBackground)),c(3),w("ngIf",i.state===i.buttonStates.Loading),c(1),w("ngIf",i.state===i.buttonStates.Error))},dependencies:[Nn,Ft,Wr,Cn,ec],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px}button[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}mat-icon[_ngcontent-%COMP%], mat-spinner[_ngcontent-%COMP%]{display:inline-block;margin-right:15px}.for-dark-background[_ngcontent-%COMP%]:disabled{background-color:#000!important;color:#fff!important;opacity:.3}"]}),t})();const FG=["button"],RG=["firstInput"],NG=function(t){return{"element-disabled":t}};function YG(t,n){if(1&t&&(D(0,"mat-form-field",12)(1,"div",5)(2,"label",6),I(3),R(4,"translate"),C(),xe(5,"input",13),C(),D(6,"mat-error")(7,"span"),I(8),R(9,"translate"),C()()()),2&t){const e=z();w("ngClass",He(7,NG,e.working)),c(3),se(H(4,3,"settings.password.old-password")),c(5),se(H(9,5,"settings.password.errors.old-password-required"))}}const HG=function(t){return{"rounded-elevated-box":t}},AI=function(t,n){return{"white-form-field":t,"element-disabled":n}},BG=function(t,n){return{"mt-2 app-button":t,"float-right":n}};let FI=(()=>{class t{constructor(e,i,o,s){this.authService=e,this.router=i,this.snackbarService=o,this.dialog=s,this.workingState=new ht,this.forInitialConfig=!1}ngOnInit(){this.form=new UE({oldPassword:new Dg("",this.forInitialConfig?null:Gt.required),newPassword:new Dg("",Gt.compose([Gt.required,Gt.minLength(6),Gt.maxLength(64)])),newPasswordConfirmation:new Dg("",[Gt.required,this.validatePasswords.bind(this)])}),this.formSubscription=this.form.controls.newPassword.valueChanges.subscribe(()=>this.form.controls.newPasswordConfirmation.updateValueAndValidity())}ngAfterViewInit(){this.forInitialConfig&&setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe(),this.formSubscription.unsubscribe()}get working(){return!!this.button&&this.button.isLoading}changePassword(){this.form.valid&&!this.button.disabled&&(this.button.showLoading(),this.workingState.next(!0),this.subscription=this.forInitialConfig?this.authService.initialConfig(this.form.get("newPassword").value).subscribe(()=>{this.dialog.closeAll(),this.snackbarService.showDone("settings.password.initial-config.done"),this.workingState.next(!1)},e=>{this.button.showError(),e=en(e),this.snackbarService.showError(e,null,!0),this.workingState.next(!1)}):this.authService.changePassword(this.form.get("oldPassword").value,this.form.get("newPassword").value).subscribe(()=>{this.router.navigate(["nodes"]),this.snackbarService.showDone("settings.password.password-changed"),this.workingState.next(!1)},e=>{this.button.showError(),e=en(e),this.snackbarService.showError(e),this.workingState.next(!1)}))}validatePasswords(){return this.form&&this.form.get("newPassword").value!==this.form.get("newPasswordConfirmation").value?{invalid:!0}:null}}return t.\u0275fac=function(e){return new(e||t)(Y(Wh),Y(hn),Y(Dn),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-password"]],viewQuery:function(e,i){if(1&e&&(_t(FG,5),_t(RG,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},inputs:{forInitialConfig:"forInitialConfig"},outputs:{workingState:"workingState"},decls:33,vars:40,consts:[[3,"ngClass"],[1,"box-internal-container","overflow"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],["class","white-form-field",3,"ngClass",4,"ngIf"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","formControlName","newPassword","maxlength","64","matInput",""],["firstInput",""],["type","password","formControlName","newPasswordConfirmation","maxlength","64","matInput",""],["color","primary",3,"ngClass","disabled","forDarkBackground","action"],["button",""],[1,"white-form-field",3,"ngClass"],["type","password","formControlName","oldPassword","maxlength","64","matInput",""]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"div")(3,"mat-icon",2),R(4,"translate"),I(5," help "),C()(),D(6,"form",3),V(7,YG,10,9,"mat-form-field",4),D(8,"mat-form-field",0)(9,"div",5)(10,"label",6),I(11),R(12,"translate"),C(),xe(13,"input",7,8),C(),D(15,"mat-error")(16,"span"),I(17),R(18,"translate"),C()()(),D(19,"mat-form-field",0)(20,"div",5)(21,"label",6),I(22),R(23,"translate"),C(),xe(24,"input",9),C(),D(25,"mat-error")(26,"span"),I(27),R(28,"translate"),C()()(),D(29,"app-button",10,11),ye("action",function(){return i.changePassword()}),I(31),R(32,"translate"),C()()()()),2&e&&(w("ngClass",He(29,HG,!i.forInitialConfig)),c(2),eo((i.forInitialConfig?"":"white-")+"form-help-icon-container"),c(1),w("inline",!0)("matTooltip",H(4,17,i.forInitialConfig?"settings.password.initial-config-help":"settings.password.help")),c(3),w("formGroup",i.form),c(1),w("ngIf",!i.forInitialConfig),c(1),w("ngClass",mn(31,AI,!i.forInitialConfig,i.working)),c(3),se(H(12,19,i.forInitialConfig?"settings.password.initial-config.password":"settings.password.new-password")),c(6),se(H(18,21,"settings.password.errors.new-password-error")),c(2),w("ngClass",mn(34,AI,!i.forInitialConfig,i.working)),c(3),se(H(23,23,i.forInitialConfig?"settings.password.initial-config.repeat-password":"settings.password.repeat-password")),c(5),se(H(28,25,"settings.password.errors.passwords-not-match")),c(2),w("ngClass",mn(37,BG,!i.forInitialConfig,i.forInitialConfig))("disabled",!i.form.valid)("forDarkBackground",!i.forInitialConfig),c(2),ce(" ",H(32,27,i.forInitialConfig?"settings.password.initial-config.set-password":"settings.change-password")," "))},dependencies:[Nn,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Cn,vi,Ui,wt],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}app-button[_ngcontent-%COMP%]{float:right;margin-right:32px}"]}),t})();function VG(t,n){1&t&&(D(0,"button",5)(1,"mat-icon"),I(2,"close"),C()())}function jG(t,n){1&t&&Jo(0)}const RI=function(t){return{"content-margin":t}};function zG(t,n){if(1&t&&(D(0,"mat-dialog-content",6),V(1,jG,1,0,"ng-container",7),C()),2&t){const e=z(),i=ci(8);w("ngClass",He(2,RI,e.includeVerticalMargins)),c(1),w("ngTemplateOutlet",i)}}function UG(t,n){1&t&&Jo(0)}function WG(t,n){if(1&t&&(D(0,"div",6),V(1,UG,1,0,"ng-container",7),C()),2&t){const e=z(),i=ci(8);w("ngClass",He(2,RI,e.includeVerticalMargins)),c(1),w("ngTemplateOutlet",i)}}function $G(t,n){1&t&&Sn(0)}const GG=["*"];let ei=(()=>{class t{set dialog(e){e.disableClose=!0,this.dialogInternal=e}constructor(e){this.matDialog=e,this.includeScrollableArea=!0,this.includeVerticalMargins=!0}onKeyUp(){this.closePopup()}closePopup(){this.disableDismiss||this.matDialog.openDialogs[this.matDialog.openDialogs.length-1].id===this.dialogInternal.id&&this.dialogInternal.close()}}return t.\u0275fac=function(e){return new(e||t)(Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-dialog"]],hostBindings:function(e,i){1&e&&ye("keyup.esc",function(){return i.onKeyUp()},0,Vb)},inputs:{headline:"headline",disableDismiss:"disableDismiss",includeScrollableArea:"includeScrollableArea",includeVerticalMargins:"includeVerticalMargins",dialog:"dialog"},ngContentSelectors:GG,decls:9,vars:4,consts:[["mat-dialog-title","",1,"header"],["mat-dialog-close","","mat-icon-button","","class","grey-button-background",4,"ngIf"],[1,"header-separator"],[3,"ngClass",4,"ngIf"],["contentTemplate",""],["mat-dialog-close","","mat-icon-button","",1,"grey-button-background"],[3,"ngClass"],[4,"ngTemplateOutlet"]],template:function(e,i){1&e&&(Ir(),D(0,"div",0)(1,"span"),I(2),C(),V(3,VG,3,0,"button",1),C(),xe(4,"div",2),V(5,zG,2,4,"mat-dialog-content",3),V(6,WG,2,4,"div",3),V(7,$G,1,0,"ng-template",null,4,Es)),2&e&&(c(2),se(i.headline),c(1),w("ngIf",!i.disableDismiss),c(2),w("ngIf",i.includeScrollableArea),c(1),w("ngIf",!i.includeScrollableArea))},dependencies:[Nn,Ft,hd,CU,xU,r1,el,Cn],styles:['.cursor-pointer[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}[_nghost-%COMP%]{color:#202226}.header[_ngcontent-%COMP%]{margin:-24px -24px 0;color:#215f9e;padding:0 14px 0 24px;font-size:1rem;text-transform:uppercase;font-weight:700;display:flex;align-items:center}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex-grow:1}@media (max-width: 767px){.header[_ngcontent-%COMP%]{padding:0 2px 0 24px}}.header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{line-height:1rem;margin:18px 0}.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{color:#a6b2b2;width:32px;height:32px;line-height:20px;margin-left:10px;padding:0}@media (max-width: 767px){.header[_ngcontent-%COMP%] .mat-mdc-icon-button[_ngcontent-%COMP%]{width:46px;height:46px}}.header-separator[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin-left:-12px;margin-right:-12px}.content-margin[_ngcontent-%COMP%]{padding-top:18px;padding-bottom:24px!important}']}),t})(),qG=(()=>{class t{static openDialog(e){const i=new En;return i.autoFocus=!1,i.width=Vt.smallModalWidth,e.open(t,i)}constructor(e){this.dialogRef=e,this.disableDismiss=!1}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn))},t.\u0275cmp=Ze({type:t,selectors:[["app-initial-setup"]],decls:3,vars:6,consts:[[3,"headline","dialog","disableDismiss"],[3,"forInitialConfig","workingState"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"app-password",1),ye("workingState",function(s){return i.disableDismiss=s}),C()()),2&e&&(w("headline",H(1,4,"settings.password.initial-config.title"))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(2),w("forInitialConfig",!0))},dependencies:[FI,ei,wt]}),t})();var F1=N(9774),Eg=N.n(F1);class R1{}class KG{}var ro=(()=>((ro=ro||{}).Connecting="connecting",ro.Unhealthy="unhealthy",ro.Healthy="healthy",ro))(),oo=(()=>((oo=oo||{}).UseCustomSettings="updaterUseCustomSettings",oo.Channel="updaterChannel",oo.Version="updaterVersion",oo.ArchiveURL="updaterArchiveURL",oo.ChecksumsURL="updaterChecksumsURL",oo))();let ua=(()=>{class t{constructor(e,i){this.apiService=e,this.storageService=i}getNodes(){let e=[];return this.apiService.get("visors-summary").pipe(ke(i=>{i&&i.forEach(d=>{const _=new R1;_.online=d.online,_.localPk=d.overview.local_pk,_.version=d.overview.build_info.version,_.autoconnectTransports=d.public_autoconnect,_.buildTag=d.build_tag?d.build_tag:"",_.rewardsAddress=d.reward_address,_.ip=d.overview&&d.overview.local_ip&&d.overview.local_ip.trim()?d.overview.local_ip:null;const E=this.storageService.getLabelInfo(_.localPk);if(_.label=E&&E.label?E.label:this.storageService.getDefaultLabel(_),!_.online)return _.dmsgServerPk="",_.roundTripPing="",void e.push(_);_.health={servicesHealth:d.health.services_health},_.dmsgServerPk=d.dmsg_stats.server_public_key,_.roundTripPing=this.nsToMs(d.dmsg_stats.round_trip),_.isHypervisor=d.is_hypervisor,e.push(_)});const o=new Map,s=[],a=[];e.forEach(d=>{o.set(d.localPk,d),d.online&&(s.push(d.localPk),a.push(d.ip))}),this.storageService.includeVisibleLocalNodes(s,a);const l=[];return this.storageService.getSavedLocalNodes().forEach(d=>{if(!o.has(d.publicKey)&&!d.hidden){const _=new R1;_.localPk=d.publicKey;const E=this.storageService.getLabelInfo(d.publicKey);_.label=E&&E.label?E.label:this.storageService.getDefaultLabel(_),_.online=!1,_.dmsgServerPk="",_.roundTripPing="",l.push(_)}o.has(d.publicKey)&&!o.get(d.publicKey).online&&d.hidden&&o.delete(d.publicKey)}),e=[],o.forEach(d=>e.push(d)),e=e.concat(l),e}))}nsToMs(e){let i=new(Eg())(e).dividedBy(1e6);return i=i.isLessThan(10)?i.decimalPlaces(2):i.decimalPlaces(0),i.toString(10)}getNode(e){return this.apiService.get(`visors/${e}/summary`).pipe(ke(i=>{const o=new R1;o.localPk=i.overview.local_pk,o.version=i.overview.build_info.version,o.secondsOnline=Math.floor(Number.parseFloat(i.uptime)),o.minHops=i.min_hops,o.buildTag=i.build_tag,o.skybianBuildVersion=i.skybian_build_version,o.isSymmeticNat=i.overview.is_symmetic_nat,o.publicIp=i.overview.public_ip,o.autoconnectTransports=i.public_autoconnect,o.rewardsAddress=i.reward_address,o.ip=i.overview.local_ip&&i.overview.local_ip.trim()?i.overview.local_ip:null;const s=this.storageService.getLabelInfo(o.localPk);o.label=s&&s.label?s.label:this.storageService.getDefaultLabel(o),o.health={servicesHealth:i.health.services_health},o.transports=[],i.overview.transports&&i.overview.transports.forEach(l=>{o.transports.push({id:l.id,localPk:l.local_pk,remotePk:l.remote_pk,type:l.type,recv:l.log.recv,sent:l.log.sent})}),o.persistentTransports=[],i.persistent_transports&&i.persistent_transports.forEach(l=>{o.persistentTransports.push({pk:l.pk,type:l.type})}),o.routes=[],i.routes&&i.routes.forEach(l=>{o.routes.push({key:l.key,rule:l.rule}),l.rule_summary&&(o.routes[o.routes.length-1].ruleSummary={keepAlive:l.rule_summary.keep_alive,ruleType:l.rule_summary.rule_type,keyRouteId:l.rule_summary.key_route_id},l.rule_summary.app_fields&&l.rule_summary.app_fields.route_descriptor&&(o.routes[o.routes.length-1].appFields={routeDescriptor:{dstPk:l.rule_summary.app_fields.route_descriptor.dst_pk,dstPort:l.rule_summary.app_fields.route_descriptor.dst_port,srcPk:l.rule_summary.app_fields.route_descriptor.src_pk,srcPort:l.rule_summary.app_fields.route_descriptor.src_port}}),l.rule_summary.forward_fields&&(o.routes[o.routes.length-1].forwardFields={nextRid:l.rule_summary.forward_fields.next_rid,nextTid:l.rule_summary.forward_fields.next_tid},l.rule_summary.forward_fields.route_descriptor&&(o.routes[o.routes.length-1].forwardFields.routeDescriptor={dstPk:l.rule_summary.forward_fields.route_descriptor.dst_pk,dstPort:l.rule_summary.forward_fields.route_descriptor.dst_port,srcPk:l.rule_summary.forward_fields.route_descriptor.src_pk,srcPort:l.rule_summary.forward_fields.route_descriptor.src_port})),l.rule_summary.intermediary_forward_fields&&(o.routes[o.routes.length-1].intermediaryForwardFields={nextRid:l.rule_summary.intermediary_forward_fields.next_rid,nextTid:l.rule_summary.intermediary_forward_fields.next_tid}))}),o.apps=[],i.overview.apps&&i.overview.apps.forEach(l=>{o.apps.push({name:l.name,status:l.status,port:l.port,autostart:l.auto_start,detailedStatus:l.detailed_status,args:l.args})});let a=!1;return i.dmsg_stats&&(o.dmsgServerPk=i.dmsg_stats.server_public_key,o.roundTripPing=this.nsToMs(i.dmsg_stats.round_trip),a=!0),a||(o.dmsgServerPk="-",o.roundTripPing="-1"),o}))}setRewardsAddress(e,i){return this.apiService.put(`visors/${e}/reward`,{reward_address:i})}getRewardsAddress(e){return this.apiService.get(`visors/${e}/reward`)}getRuntimeLogs(e){return this.apiService.get(`visors/${e}/runtime-logs`)}deleteRewardsAddress(e){return this.apiService.delete(`visors/${e}/reward`)}reboot(e){return this.apiService.post(`visors/${e}/restart`)}checkIfUpdating(e){return this.apiService.get(`visors/${e}/update/ws/running`)}checkUpdate(e){let i="stable";return i=localStorage.getItem(oo.Channel)||i,this.apiService.get(`visors/${e}/update/available/${i}`)}update(e){const i={channel:"stable"};if(localStorage.getItem(oo.UseCustomSettings)){const s=localStorage.getItem(oo.Channel);s&&(i.channel=s);const a=localStorage.getItem(oo.Version);a&&(i.version=a);const l=localStorage.getItem(oo.ArchiveURL);l&&(i.archive_url=l);const d=localStorage.getItem(oo.ChecksumsURL);d&&(i.checksums_url=d)}return this.apiService.ws(`visors/${e}/update/ws`,i)}}return t.\u0275fac=function(e){return new(e||t)(we(il),we(Ji))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class ZG{}let NI=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.dataSubject=new Or(null),this.lastEmitedData=new ZG,this.firstCallToGetDataMade=!1,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.forceRefresh()})}startRequestingData(){return this.firstCallToGetDataMade||this.getData(0),this.dataSubject.asObservable()}stopRequestingData(){this.updateSubscription&&(this.updateSubscription.unsubscribe(),this.firstCallToGetDataMade=!1)}getData(e){this.firstCallToGetDataMade=!0,this.updateSubscription&&this.updateSubscription.unsubscribe(),this.updateSubscription=$e(1).pipe(Ti(e),bi(()=>{this.lastEmitedData.updating=!0,this.dataSubject.next(this.lastEmitedData)}),Ti(120),Ye(()=>this.nodeService.getNodes())).subscribe(i=>{this.lastEmitedData={data:i,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(this.dataRefreshDelay)},i=>{i=en(i),this.lastEmitedData={data:this.lastEmitedData.data,error:i,momentOfLastCorrectUpdate:this.lastEmitedData.momentOfLastCorrectUpdate,updating:!1},this.dataSubject.next(this.lastEmitedData),this.getData(Vt.connectionRetryDelay)})}forceRefresh(){this.getData(0)}}return t.\u0275fac=function(e){return new(e||t)(we(Ji),we(ua))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function XG(t,n){if(1&t){const e=et();D(0,"button",3),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().closePopup(s))}),xe(1,"img",4),D(2,"div",5),I(3),C()()}if(2&t){const e=n.$implicit;c(1),w("src","assets/img/lang/"+e.iconName,Vo),c(2),se(e.name)}}let YI=(()=>{class t{static openDialog(e){const i=new En;return i.autoFocus=!1,i.width=Vt.mediumModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.languageService=i,this.languages=[]}ngOnInit(){this.subscription=this.languageService.languages.subscribe(e=>{this.languages=e})}ngOnDestroy(){this.subscription.unsubscribe()}closePopup(e=null){e&&this.languageService.changeLanguage(e.code),this.dialogRef.close()}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(gg))},t.\u0275cmp=Ze({type:t,selectors:[["app-select-language"]],decls:4,vars:5,consts:[[3,"headline","dialog"],[1,"options-container"],["mat-button","","color","accent","class","grey-button-background",3,"click",4,"ngFor","ngForOf"],["mat-button","","color","accent",1,"grey-button-background",3,"click"],[3,"src"],[1,"label"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),V(3,XG,4,2,"button",2),C()()),2&e&&(w("headline",H(1,3,"language.title"))("dialog",i.dialogRef),c(3),w("ngForOf",i.languages))},dependencies:[gi,Wr,ei,wt],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.options-container[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:118px;height:auto!important;margin:20px;font-size:.7rem;line-height:unset;padding:0!important;color:unset}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .mdc-button__label{width:100%}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:90px;font-size:.6rem;margin:6px}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:64px;height:64px;margin:10px 0}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:48px;height:48px;margin:7px 0}}.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:#202226!important;background-color:#ffffff40;padding:4px 10px}@media (max-width: 767px){.options-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{padding:4px 5px}}"]}),t})();function JG(t,n){1&t&&xe(0,"img",2),2&t&&w("src","assets/img/lang/"+z().language.iconName,Vo)}let QG=(()=>{class t{constructor(e,i){this.languageService=e,this.dialog=i}ngOnInit(){this.subscription=this.languageService.currentLanguage.subscribe(e=>{this.language=e})}ngOnDestroy(){this.subscription.unsubscribe()}openLanguageWindow(){YI.openDialog(this.dialog)}}return t.\u0275fac=function(e){return new(e||t)(Y(gg),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-lang-button"]],decls:3,vars:4,consts:[["mat-button","",1,"lang-button","subtle-transparent-button",3,"matTooltip","click"],["class","flag",3,"src",4,"ngIf"],[1,"flag",3,"src"]],template:function(e,i){1&e&&(D(0,"button",0),ye("click",function(){return i.openLanguageWindow()}),R(1,"translate"),V(2,JG,1,1,"img",1),C()),2&e&&(w("matTooltip",H(1,2,"language.title")),c(2),w("ngIf",i.language))},dependencies:[Ft,Wr,vi,wt],styles:[".lang-button[_ngcontent-%COMP%]{height:40px;background-color:#f8f9f9;border-radius:100%;padding:0;line-height:1;padding:0!important}.lang-button[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{width:20px;height:20px}"]}),t})();const eq=function(t){return{"element-disabled":t}};let HI=(()=>{class t extends er{constructor(e,i,o,s,a,l){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=s,this.route=a,this.multipleNodeDataService=l,this.loading=!1,this.isForVpn=!1,this.vpnKey=""}ngOnInit(){return this.multipleNodeDataService.stopRequestingData(),this.routeSubscription=this.route.paramMap.subscribe(e=>{this.vpnKey=e.get("key"),this.isForVpn=-1!==window.location.href.indexOf("vpnlogin"),this.verificationSubscription=this.authService.checkLogin().subscribe(i=>{i!==Fr.NotLogged&&(g1.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})},5))})}),this.form=new UE({password:new Dg("",Gt.required)}),super.ngOnInit()}ngOnDestroy(){this.loginSubscription&&this.loginSubscription.unsubscribe(),this.verificationSubscription.unsubscribe(),this.routeSubscription.unsubscribe()}login(){!this.form.valid||this.loading||(this.loading=!0,this.loginSubscription=this.authService.login(this.form.get("password").value).subscribe(()=>this.onLoginSuccess(),e=>this.onLoginError(e)))}configure(){qG.openDialog(this.dialog)}onLoginSuccess(){g1.currentInstance.processLoginDone(),setTimeout(()=>{this.router.navigate(this.isForVpn?["vpn",this.vpnKey,"status"]:["nodes"],{replaceUrl:!0})})}onLoginError(e){e=en(e),this.loading=!1,this.snackbarService.showError(e.originalError&&401===e.originalError.status?"login.incorrect-password":e.translatableErrorMsg)}}return t.\u0275fac=function(e){return new(e||t)(Y(Wh),Y(hn),Y(Dn),Y(In),Y(Mr),Y(NI))},t.\u0275cmp=Ze({type:t,selectors:[["app-login"]],features:[nt],decls:14,vars:11,consts:[[1,"w-100","h-100","d-flex","justify-content-center"],[1,"row","main-container"],["src","/assets/img/logo-v.png",1,"logo"],[1,"mt-5",3,"formGroup"],[1,"login-input",3,"ngClass"],["type","password","formControlName","password","autocomplete","off",3,"placeholder","keydown.enter"],[3,"disabled","click"],[1,"config-link",3,"click"]],template:function(e,i){1&e&&(D(0,"div",0),xe(1,"app-lang-button"),D(2,"div",1),xe(3,"img",2),D(4,"form",3)(5,"div",4)(6,"input",5),ye("keydown.enter",function(){return i.login()}),R(7,"translate"),C(),D(8,"button",6),ye("click",function(){return i.login()}),D(9,"mat-icon"),I(10,"chevron_right"),C()()()(),D(11,"div",7),ye("click",function(){return i.configure()}),I(12),R(13,"translate"),C()()()),2&e&&(c(4),w("formGroup",i.form),c(1),w("ngClass",He(9,eq,i.loading)),c(1),w("placeholder",H(7,5,"login.password")),c(2),w("disabled",!i.form.valid||i.loading),c(4),se(H(13,7,"login.initial-config")))},dependencies:[Nn,zi,Bi,Vi,ji,ii,Ei,Cn,QG,wt],styles:['.cursor-pointer[_ngcontent-%COMP%], .config-link[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}app-lang-button[_ngcontent-%COMP%]{position:fixed;right:10px;top:10px;z-index:10}.main-container[_ngcontent-%COMP%]{z-index:1;height:100%;flex-direction:column;align-items:center;justify-content:center}.logo[_ngcontent-%COMP%]{width:170px}.login-input[_ngcontent-%COMP%]{height:35px;width:300px;overflow:hidden;border-radius:10px;box-shadow:0 3px 8px #0000001a,0 6px 20px #0000001a;display:flex}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]{background:#fff;width:calc(100% - 35px);height:100%;font-size:.875rem;border:none;padding-left:10px;padding-right:10px}.login-input[_ngcontent-%COMP%] input[type=password][_ngcontent-%COMP%]:focus{outline:none}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#fff;color:#202226;width:35px;height:35px;line-height:35px;border:none;display:flex;cursor:pointer;align-items:center}.login-input[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:disabled{color:#777}.config-link[_ngcontent-%COMP%]{color:#f8f9f9;font-size:.7rem;margin-top:20px}']}),t})();const tq=["firstInput"];let N1=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.storageService=s,this.snackbarService=a}ngOnInit(){this.form=this.formBuilder.group({label:[this.data.label]})}ngAfterViewInit(){setTimeout(()=>this.firstInput.nativeElement.focus())}save(){const e=this.form.get("label").value.trim();e!==this.data.label?(this.storageService.saveLabel(this.data.id,e,this.data.identifiedElementType),e?this.snackbarService.showDone("edit-label.done"):this.snackbarService.showWarning("edit-label.label-removed-warning"),this.dialogRef.close(!0)):this.dialogRef.close()}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr),Y(Ji),Y(Dn))},t.\u0275cmp=Ze({type:t,selectors:[["app-edit-label"]],viewQuery:function(e,i){if(1&e&&_t(tq,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","label","maxlength","66","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"action"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return i.save()}),I(11),R(12,"translate"),C()()),2&e&&(w("headline",H(1,5,"labeled-element.edit-label"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,7,"edit-label.label")),c(5),se(H(12,9,"common.save")))},dependencies:[zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,Ui,ei,wt]}),t})();const nq=["cancelButton"],iq=["confirmButton"];function rq(t,n){if(1&t&&(D(0,"div"),I(1),R(2,"translate"),C()),2&t){const e=n.$implicit;c(1),ce(" - ",H(2,1,e)," ")}}function oq(t,n){if(1&t&&(D(0,"div",8),V(1,rq,3,3,"div",9),C()),2&t){const e=z();c(1),w("ngForOf",e.state!==e.confirmationStates.Done?e.data.list:e.doneList)}}function sq(t,n){if(1&t&&(D(0,"div",1),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),ce(" ",H(2,1,e.data.lowerText)," ")}}function aq(t,n){if(1&t){const e=et();D(0,"app-button",10,11),ye("action",function(){return Pe(e),Oe(z().closeModal())}),I(2),R(3,"translate"),C()}if(2&t){const e=z();c(2),ce(" ",H(3,1,e.data.cancelButtonText)," ")}}var cs=(()=>((cs=cs||{}).Asking="Asking",cs.Processing="Processing",cs.Done="Done",cs))();let lq=(()=>{class t{constructor(e,i){this.dialogRef=e,this.data=i,this.disableDismiss=!1,this.state=cs.Asking,this.confirmationStates=cs,this.operationAccepted=new ht,this.disableDismiss=!!i.disableDismiss,this.dialogRef.disableClose=this.disableDismiss}ngAfterViewInit(){this.data.cancelButtonText?setTimeout(()=>this.cancelButton.focus()):setTimeout(()=>this.confirmButton.focus())}ngOnDestroy(){this.operationAccepted.complete()}closeModal(){this.dialogRef.close()}sendOperationAcceptedEvent(){this.operationAccepted.emit()}showAsking(e){e&&(this.data=e),this.state=cs.Asking,this.confirmButton.reset(),this.disableDismiss=!1,this.dialogRef.disableClose=this.disableDismiss,this.cancelButton&&this.cancelButton.showEnabled()}showProcessing(){this.state=cs.Processing,this.disableDismiss=!0,this.confirmButton.showLoading(),this.cancelButton&&this.cancelButton.showDisabled()}showDone(e,i,o=null){this.doneTitle=e||this.data.headerText,this.doneText=i,this.doneList=o,this.confirmButton.reset(),setTimeout(()=>this.confirmButton.focus()),this.state=cs.Done,this.dialogRef.disableClose=!1,this.disableDismiss=!1}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li))},t.\u0275cmp=Ze({type:t,selectors:[["app-confirmation"]],viewQuery:function(e,i){if(1&e&&(_t(nq,5),_t(iq,5)),2&e){let o;rt(o=ot())&&(i.cancelButton=o.first),rt(o=ot())&&(i.confirmButton=o.first)}},outputs:{operationAccepted:"operationAccepted"},decls:13,vars:14,consts:[[3,"headline","dialog","disableDismiss"],[1,"text-container"],["class","list-container",4,"ngIf"],["class","text-container",4,"ngIf"],[1,"buttons"],["color","accent",3,"action",4,"ngIf"],["color","primary",3,"action"],["confirmButton",""],[1,"list-container"],[4,"ngFor","ngForOf"],["color","accent",3,"action"],["cancelButton",""]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),I(3),R(4,"translate"),C(),V(5,oq,2,1,"div",2),V(6,sq,3,3,"div",3),D(7,"div",4),V(8,aq,4,3,"app-button",5),D(9,"app-button",6,7),ye("action",function(){return i.state===i.confirmationStates.Asking?i.sendOperationAcceptedEvent():i.closeModal()}),I(11),R(12,"translate"),C()()()),2&e&&(w("headline",H(1,8,i.state!==i.confirmationStates.Done?i.data.headerText:i.doneTitle))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(3),ce(" ",H(4,10,i.state!==i.confirmationStates.Done?i.data.text:i.doneText)," "),c(2),w("ngIf",i.data.list&&i.state!==i.confirmationStates.Done||i.doneList&&i.state===i.confirmationStates.Done),c(1),w("ngIf",i.data.lowerText&&i.state!==i.confirmationStates.Done),c(2),w("ngIf",i.data.cancelButtonText&&i.state!==i.confirmationStates.Done),c(3),ce(" ",H(12,12,i.state!==i.confirmationStates.Done?i.data.confirmButtonText:"confirmation.close")," "))},dependencies:[gi,Ft,Ui,ei,wt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]}),t})();class Jt{static createConfirmationDialog(n,e){const i={text:e,headerText:"confirmation.header-text",confirmButtonText:"confirmation.confirm-button",cancelButtonText:"confirmation.cancel-button",disableDismiss:!1},o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,n.open(lq,o)}static checkIfTagIsUpdatable(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase()||n.toUpperCase()==="Mac".toUpperCase()||n.toUpperCase()==="Macos".toUpperCase()||n.toUpperCase()==="Mac OS".toUpperCase()||n.toUpperCase()==="Darwin".toUpperCase())}static checkIfTagCanOpenterminal(n){return!(null==n||n.toUpperCase()==="Windows".toUpperCase()||n.toUpperCase()==="Win".toUpperCase())}static checkIfIpValidOrEmpty(n){if(!n)return!0;const e=n.split(".");if(4!==e.length)return!1;for(const i of e){const o=Number.parseInt(i,10);if(isNaN(o)||o+""!==i||o<0||o>255)return!1}return!0}}function cq(t,n){if(1&t&&(D(0,"mat-icon",6),I(1),C()),2&t){const e=z().$implicit;w("inline",!0),c(1),se(e.icon)}}function dq(t,n){if(1&t){const e=et();D(0,"div",2)(1,"button",3),ye("click",function(){const s=Pe(e).index;return Oe(z().closePopup(s+1))}),D(2,"div",4),V(3,cq,2,2,"mat-icon",5),D(4,"span"),I(5),R(6,"translate"),C()()()()}if(2&t){const e=n.$implicit;c(3),w("ngIf",e.icon),c(2),se(H(6,2,e.label))}}let qr=(()=>{class t{static openDialog(e,i,o){const s=new En;return s.data={options:i,title:o},s.autoFocus=!1,s.width=Vt.smallModalWidth,e.open(t,s)}constructor(e,i){this.data=e,this.dialogRef=i}closePopup(e){this.dialogRef.close(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn))},t.\u0275cmp=Ze({type:t,selectors:[["app-select-option"]],decls:3,vars:6,consts:[[3,"headline","dialog","includeVerticalMargins"],["class","options-list-button-container",4,"ngFor","ngForOf"],[1,"options-list-button-container"],["mat-button","",1,"grey-button-background",3,"click"],[1,"internal-container"],["class","icon",3,"inline",4,"ngIf"],[1,"icon",3,"inline"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),V(2,dq,7,4,"div",1),C()),2&e&&(w("headline",H(1,4,i.data.title))("dialog",i.dialogRef)("includeVerticalMargins",!1),c(2),w("ngForOf",i.data.options))},dependencies:[gi,Ft,Wr,Cn,ei,wt],styles:[".icon[_ngcontent-%COMP%]{font-size:14px;width:14px;line-height:1}.grey-button-background[_ngcontent-%COMP%]{justify-content:left!important;min-height:45px}"]}),t})();var $n=(()=>(($n=$n||{}).TextInput="TextInput",$n.Select="Select",$n))();let ef=(()=>{class t{constructor(e){this.dom=e}copy(e){let i=null,o=!1;try{i=this.dom.createElement("textarea"),i.style.height="0px",i.style.left="-100px",i.style.opacity="0",i.style.position="fixed",i.style.top="-100px",i.style.width="0px",this.dom.body.appendChild(i),i.value=e,i.select(),this.dom.execCommand("copy"),o=!0}finally{i&&i.parentNode&&i.parentNode.removeChild(i)}return o}}return t.\u0275fac=function(e){return new(e||t)(we(It))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();function fq(t,n){if(1&t&&(Ue(0),D(1,"span",2),I(2),C(),We()),2&t){const e=z();c(2),se(e.shortText)}}function pq(t,n){if(1&t&&(Ue(0),D(1,"span"),I(2),C(),We()),2&t){const e=z();c(2),se(e.text)}}const mq=function(){return{"tooltip-word-break":!0}};let BI=(()=>{class t{constructor(){this.short=!1,this.showTooltip=!0,this.shortTextLength=5}get shortText(){if(this.text.length>2*this.shortTextLength){const e=this.text.length;return`${this.text.slice(0,this.shortTextLength)}...${this.text.slice(e-this.shortTextLength,e)}`}return this.text}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-truncated-text"]],inputs:{short:"short",showTooltip:"showTooltip",text:"text",shortTextLength:"shortTextLength"},decls:3,vars:5,consts:[[1,"wrapper",3,"matTooltip","matTooltipClass"],[4,"ngIf"],[1,"nowrap"]],template:function(e,i){1&e&&(D(0,"div",0),V(1,fq,3,1,"ng-container",1),V(2,pq,3,1,"ng-container",1),C()),2&e&&(w("matTooltip",i.short&&i.showTooltip?i.text:"")("matTooltipClass",qn(4,mq)),c(1),w("ngIf",i.short),c(1),w("ngIf",!i.short))},dependencies:[Ft,vi],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.nowrap[_ngcontent-%COMP%]{white-space:nowrap}.wrapper[_ngcontent-%COMP%]{display:inline}']}),t})();function gq(t,n){if(1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),ce(" ",H(2,1,e.labelComponents.prefix)," ")}}function _q(t,n){if(1&t&&(D(0,"span"),I(1),C()),2&t){const e=z();c(1),ce(" ",e.labelComponents.prefixSeparator," ")}}function bq(t,n){if(1&t&&(D(0,"span"),I(1),C()),2&t){const e=z();c(1),ce(" ",e.labelComponents.label," ")}}function vq(t,n){if(1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),ce(" ",H(2,1,e.labelComponents.translatableLabel)," ")}}const yq=function(t){return{text:t}},Mq=function(){return{"tooltip-word-break":!0}};class wq{constructor(){this.prefix="",this.prefixSeparator="",this.label="",this.translatableLabel=""}}let ha=(()=>{class t{set id(e){this.idInternal=e,this.labelComponents=t.getLabelComponents(this.storageService,this.id)}get id(){return this.idInternal?this.idInternal:""}static getLabelComponents(e,i){let o;o=!!e.getSavedVisibleLocalNodes().has(i);const s=new wq;return s.labelInfo=e.getLabelInfo(i),s.labelInfo&&s.labelInfo.label?(o&&(s.prefix="labeled-element.local-element",s.prefixSeparator=" - "),s.label=s.labelInfo.label):e.getSavedVisibleLocalNodes().has(i)?s.prefix="labeled-element.unnamed-local-visor":s.translatableLabel="labeled-element.unnamed-element",s}static getCompleteLabel(e,i,o){const s=t.getLabelComponents(e,o);return(s.prefix?i.instant(s.prefix):"")+s.prefixSeparator+s.label+(s.translatableLabel?i.instant(s.translatableLabel):"")}constructor(e,i,o,s,a){this.dialog=e,this.storageService=i,this.clipboardService=o,this.snackbarService=s,this.router=a,this.short=!1,this.shortTextLength=5,this.elementType=Xi.Node,this.labelEdited=new ht}ngOnDestroy(){this.labelEdited.complete()}processClick(){const e=[{icon:"filter_none",label:"labeled-element.copy"},{icon:"edit",label:"labeled-element.edit-label"}];this.labelComponents.labelInfo&&e.push({icon:"close",label:"labeled-element.remove-label"}),e.push({icon:"settings",label:"labeled-element.go-to-settings"}),qr.openDialog(this.dialog,e,"common.options").afterClosed().subscribe(i=>{if(1===i)this.clipboardService.copy(this.id)&&this.snackbarService.showDone("copy.copied");else if(i>2)if(3===i&&this.labelComponents.labelInfo){const o=Jt.createConfirmationDialog(this.dialog,"labeled-element.remove-label-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.storageService.saveLabel(this.id,null,this.elementType),this.snackbarService.showDone("edit-label.label-removed-warning"),this.labelEdited.emit()})}else this.router.navigate(["/settings"]);else if(2===i){let o=this.labelComponents.labelInfo;o||(o={id:this.id,label:"",identifiedElementType:this.elementType}),N1.openDialog(this.dialog,o).afterClosed().subscribe(s=>{s&&this.labelEdited.emit()})}})}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(Ji),Y(ef),Y(Dn),Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-labeled-element-text"]],inputs:{id:"id",short:"short",shortTextLength:"shortTextLength",elementType:"elementType"},outputs:{labelEdited:"labelEdited"},decls:12,vars:17,consts:[[1,"wrapper","highlight-internal-icon",3,"matTooltip","matTooltipClass","click"],[1,"label"],[4,"ngIf"],[3,"short","showTooltip","shortTextLength","text"],[3,"inline"]],template:function(e,i){1&e&&(D(0,"div",0),ye("click",function(s){return s.stopPropagation(),s.preventDefault(),i.processClick()}),R(1,"translate"),D(2,"span",1),V(3,gq,3,3,"span",2),V(4,_q,2,1,"span",2),V(5,bq,2,1,"span",2),V(6,vq,3,3,"span",2),C(),xe(7,"br")(8,"app-truncated-text",3),I(9," \xa0"),D(10,"mat-icon",4),I(11,"settings"),C()()),2&e&&(w("matTooltip",kt(1,11,i.short?"labeled-element.tooltip-with-text":"labeled-element.tooltip",He(14,yq,i.id)))("matTooltipClass",qn(16,Mq)),c(3),w("ngIf",i.labelComponents&&i.labelComponents.prefix),c(1),w("ngIf",i.labelComponents&&i.labelComponents.prefixSeparator),c(1),w("ngIf",i.labelComponents&&i.labelComponents.label),c(1),w("ngIf",i.labelComponents&&i.labelComponents.translatableLabel),c(2),w("short",i.short)("showTooltip",!1)("shortTextLength",i.shortTextLength)("text",i.id),c(2),w("inline",!0))},dependencies:[Ft,Cn,vi,BI,wt],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.8rem;-webkit-user-select:none;user-select:none}.label[_ngcontent-%COMP%]{opacity:.7;font-size:.8rem}']}),t})();class Vn{constructor(n,e,i,o){this.properties=n,this.label=e,this.sortingMode=i,this.labelProperties=o}get id(){return this.properties.join("")}}var Zt=(()=>((Zt=Zt||{}).Text="Text",Zt.Number="Number",Zt.NumberReversed="NumberReversed",Zt.Boolean="Boolean",Zt))();class Rd{get sortingArrow(){return this.sortReverse?"keyboard_arrow_up":"keyboard_arrow_down"}get currentSortingColumn(){return this.sortBy}get sortingInReverseOrder(){return this.sortReverse}get dataSorted(){return this.dataUpdatedSubject.asObservable()}get currentlySortingByLabel(){return this.sortByLabel}constructor(n,e,i,o,s,a){this.dialog=n,this.translateService=e,this.storageService=i,this.sortReverse=!1,this.sortByLabel=!1,this.tieBreakerColumnIndex=null,this.columnStorageKeyPrefix="col_",this.orderStorageKeyPrefix="order_",this.labelStorageKeyPrefix="label_",this.dataUpdatedSubject=new J,this.sortableColumns=o,this.id=a,this.defaultColumnIndex=s,this.sortBy=o[s];const l=this.storageService.getDataForHv(this.columnStorageKeyPrefix+a);if(l){const d=o.find(_=>_.id===l);d&&(this.sortBy=d)}this.sortReverse="true"===this.storageService.getDataForHv(this.orderStorageKeyPrefix+a),this.sortByLabel="true"===this.storageService.getDataForHv(this.labelStorageKeyPrefix+a)}dispose(){this.dataUpdatedSubject.complete()}setTieBreakerColumnIndex(n){this.tieBreakerColumnIndex=n}setData(n){this.data=n,this.sortData()}changeSortingOrder(n){if(this.sortBy===n||n.labelProperties)if(n.labelProperties){const e=[{label:this.translateService.instant("tables.sort-by-value")},{label:this.translateService.instant("tables.sort-by-value")+" "+this.translateService.instant("tables.inverted-order")},{label:this.translateService.instant("tables.sort-by-label")},{label:this.translateService.instant("tables.sort-by-label")+" "+this.translateService.instant("tables.inverted-order")}];qr.openDialog(this.dialog,e,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(n,i>2,i%2==0)})}else this.sortReverse=!this.sortReverse,this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.sortData();else this.changeSortingParams(n,!1,!1)}changeSortingParams(n,e,i){this.sortBy=n,this.sortByLabel=e,this.sortReverse=i,this.storageService.setDataForHv(this.columnStorageKeyPrefix+this.id,n.id),this.storageService.setDataForHv(this.orderStorageKeyPrefix+this.id,String(this.sortReverse)),this.storageService.setDataForHv(this.labelStorageKeyPrefix+this.id,String(this.sortByLabel)),this.sortData()}openSortingOrderModal(){const n=[],e=[];this.sortableColumns.forEach(i=>{const o=this.translateService.instant(i.label);n.push({label:o}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!1}),n.push({label:o+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!1}),i.labelProperties&&(n.push({label:o+" "+this.translateService.instant("tables.label")}),e.push({sortBy:i,sortReverse:!1,sortByLabel:!0}),n.push({label:o+" "+this.translateService.instant("tables.label")+" "+this.translateService.instant("tables.inverted-order")}),e.push({sortBy:i,sortReverse:!0,sortByLabel:!0}))}),qr.openDialog(this.dialog,n,"tables.title").afterClosed().subscribe(i=>{i&&this.changeSortingParams(e[i-1].sortBy,e[i-1].sortByLabel,e[i-1].sortReverse)})}sortData(){this.data&&(this.data.sort((n,e)=>{let i=this.getSortResponse(this.sortBy,n,e,!0);return 0===i&&null!==this.tieBreakerColumnIndex&&this.sortableColumns[this.tieBreakerColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.tieBreakerColumnIndex],n,e,!1)),0===i&&this.sortableColumns[this.defaultColumnIndex]!==this.sortBy&&(i=this.getSortResponse(this.sortableColumns[this.defaultColumnIndex],n,e,!1)),i}),this.dataUpdatedSubject.next())}getSortResponse(n,e,i,o){let a=e,l=i;(this.sortByLabel&&o&&n.labelProperties?n.labelProperties:n.properties).forEach(E=>{a=a[E],l=l[E]});const d=this.sortByLabel&&o?Zt.Text:n.sortingMode;let _=0;return d===Zt.Text?_=this.sortReverse?l.localeCompare(a):a.localeCompare(l):d===Zt.NumberReversed?_=this.sortReverse?a-l:l-a:d===Zt.Number?_=this.sortReverse?l-a:a-l:d===Zt.Boolean&&(a&&!l?_=-1:!a&&l&&(_=1),_*=this.sortReverse?-1:1),_}}class Cq{get selected(){return this._selected||(this._selected=Array.from(this._selection.values())),this._selected}constructor(n=!1,e,i=!0,o){this._multiple=n,this._emitChanges=i,this.compareWith=o,this._selection=new Set,this._deselectedToEmit=[],this._selectedToEmit=[],this.changed=new J,e&&e.length&&(n?e.forEach(s=>this._markSelected(s)):this._markSelected(e[0]),this._selectedToEmit.length=0)}select(...n){this._verifyValueAssignment(n),n.forEach(i=>this._markSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}deselect(...n){this._verifyValueAssignment(n),n.forEach(i=>this._unmarkSelected(i));const e=this._hasQueuedChanges();return this._emitChangeEvent(),e}setSelection(...n){this._verifyValueAssignment(n);const e=this.selected,i=new Set(n);n.forEach(s=>this._markSelected(s)),e.filter(s=>!i.has(s)).forEach(s=>this._unmarkSelected(s));const o=this._hasQueuedChanges();return this._emitChangeEvent(),o}toggle(n){return this.isSelected(n)?this.deselect(n):this.select(n)}clear(n=!0){this._unmarkAll();const e=this._hasQueuedChanges();return n&&this._emitChangeEvent(),e}isSelected(n){return this._selection.has(this._getConcreteValue(n))}isEmpty(){return 0===this._selection.size}hasValue(){return!this.isEmpty()}sort(n){this._multiple&&this.selected&&this._selected.sort(n)}isMultipleSelection(){return this._multiple}_emitChangeEvent(){this._selected=null,(this._selectedToEmit.length||this._deselectedToEmit.length)&&(this.changed.next({source:this,added:this._selectedToEmit,removed:this._deselectedToEmit}),this._deselectedToEmit=[],this._selectedToEmit=[])}_markSelected(n){n=this._getConcreteValue(n),this.isSelected(n)||(this._multiple||this._unmarkAll(),this.isSelected(n)||this._selection.add(n),this._emitChanges&&this._selectedToEmit.push(n))}_unmarkSelected(n){n=this._getConcreteValue(n),this.isSelected(n)&&(this._selection.delete(n),this._emitChanges&&this._deselectedToEmit.push(n))}_unmarkAll(){this.isEmpty()||this._selection.forEach(n=>this._unmarkSelected(n))}_verifyValueAssignment(n){}_hasQueuedChanges(){return!(!this._deselectedToEmit.length&&!this._selectedToEmit.length)}_getConcreteValue(n){if(this.compareWith){for(let e of this._selection)if(this.compareWith(n,e))return e;return n}return n}}const xq=["trigger"],kq=["panel"];function Sq(t,n){if(1&t&&(D(0,"span",10),I(1),C()),2&t){const e=z();c(1),se(e.placeholder)}}function Dq(t,n){if(1&t&&(D(0,"span",14),I(1),C()),2&t){const e=z(2);c(1),se(e.triggerValue)}}function Tq(t,n){1&t&&Sn(0,0,["*ngSwitchCase","true"])}function Lq(t,n){1&t&&(D(0,"span",11),V(1,Dq,2,1,"span",12),V(2,Tq,1,0,"ng-content",13),C()),2&t&&(w("ngSwitch",!!z().customTrigger),c(2),w("ngSwitchCase",!0))}function Eq(t,n){if(1&t){const e=et();wl(),zf(),D(0,"div",15,16),ye("@transformPanel.done",function(o){return Pe(e),Oe(z()._panelDoneAnimatingStream.next(o.toState))})("keydown",function(o){return Pe(e),Oe(z()._handleKeydown(o))}),Sn(2,1),C()}if(2&t){const e=z();(function Ix(t,n,e){es(go,Ls,Xc(Ve(),t,n,e),!0)})("mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open ",e._getPanelTheme(),""),w("ngClass",e.panelClass)("@transformPanel","showing"),Xt("id",e.id+"-panel")("aria-multiselectable",e.multiple)("aria-label",e.ariaLabel||null)("aria-labelledby",e._getPanelAriaLabelledby())}}const Iq=[[["mat-select-trigger"]],"*"],Pq=["mat-select-trigger","*"],Oq={transformPanelWrap:ia("transformPanelWrap",[Pr("* => void",Iy("@transformPanel",[Ey()],{optional:!0}))]),transformPanel:ia("transformPanel",[yo("void",Qn({opacity:0,transform:"scale(1, 0.8)"})),Pr("void => showing",Ur("120ms cubic-bezier(0, 0, 0.2, 1)",Qn({opacity:1,transform:"scale(1, 1)"}))),Pr("* => void",Ur("100ms linear",Qn({opacity:0})))])};let VI=0;const jI=new Re("mat-select-scroll-strategy"),Fq=new Re("MAT_SELECT_CONFIG"),Rq={provide:jI,deps:[io],useFactory:function Aq(t){return()=>t.scrollStrategies.reposition()}},zI=new Re("MatSelectTrigger");class Nq{constructor(n,e){this.source=n,this.value=e}}const Yq=Rh(LL(Ed(EL(class{constructor(t,n,e,i,o){this._elementRef=t,this._defaultErrorStateMatcher=n,this._parentForm=e,this._parentFormGroup=i,this.ngControl=o,this.stateChanges=new J}}))));let Hq=(()=>{class t extends Yq{get focused(){return this._focused||this._panelOpen}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.stateChanges.next()}get required(){return this._required??this.ngControl?.control?.hasValidator(Gt.required)??!1}set required(e){this._required=_n(e),this.stateChanges.next()}get multiple(){return this._multiple}set multiple(e){this._multiple=_n(e)}get disableOptionCentering(){return this._disableOptionCentering}set disableOptionCentering(e){this._disableOptionCentering=_n(e)}get compareWith(){return this._compareWith}set compareWith(e){this._compareWith=e,this._selectionModel&&this._initializeSelection()}get value(){return this._value}set value(e){this._assignValue(e)&&this._onChange(e)}get typeaheadDebounceInterval(){return this._typeaheadDebounceInterval}set typeaheadDebounceInterval(e){this._typeaheadDebounceInterval=So(e)}get id(){return this._id}set id(e){this._id=e||this._uid,this.stateChanges.next()}constructor(e,i,o,s,a,l,d,_,E,F,G,ie,_e,Ce){super(a,s,d,_,F),this._viewportRuler=e,this._changeDetectorRef=i,this._ngZone=o,this._dir=l,this._parentFormField=E,this._liveAnnouncer=_e,this._defaultOptions=Ce,this._panelOpen=!1,this._compareWith=(Ae,ze)=>Ae===ze,this._uid="mat-select-"+VI++,this._triggerAriaLabelledBy=null,this._destroy=new J,this._onChange=()=>{},this._onTouched=()=>{},this._valueId="mat-select-value-"+VI++,this._panelDoneAnimatingStream=new J,this._overlayPanelClass=this._defaultOptions?.overlayPanelClass||"",this._focused=!1,this.controlType="mat-select",this._multiple=!1,this._disableOptionCentering=this._defaultOptions?.disableOptionCentering??!1,this.ariaLabel="",this.optionSelectionChanges=jl(()=>{const Ae=this.options;return Ae?Ae.changes.pipe(Go(Ae),gr(()=>bt(...Ae.map(ze=>ze.onSelectionChange)))):this._ngZone.onStable.pipe(Kn(1),gr(()=>this.optionSelectionChanges))}),this.openedChange=new ht,this._openedStream=this.openedChange.pipe(_i(Ae=>Ae),ke(()=>{})),this._closedStream=this.openedChange.pipe(_i(Ae=>!Ae),ke(()=>{})),this.selectionChange=new ht,this.valueChange=new ht,this.ngControl&&(this.ngControl.valueAccessor=this),null!=Ce?.typeaheadDebounceInterval&&(this._typeaheadDebounceInterval=Ce.typeaheadDebounceInterval),this._scrollStrategyFactory=ie,this._scrollStrategy=this._scrollStrategyFactory(),this.tabIndex=parseInt(G)||0,this.id=this.id}ngOnInit(){this._selectionModel=new Cq(this.multiple),this.stateChanges.next(),this._panelDoneAnimatingStream.pipe(V0(),Hn(this._destroy)).subscribe(()=>this._panelDoneAnimating(this.panelOpen))}ngAfterContentInit(){this._initKeyManager(),this._selectionModel.changed.pipe(Hn(this._destroy)).subscribe(e=>{e.added.forEach(i=>i.select()),e.removed.forEach(i=>i.deselect())}),this.options.changes.pipe(Go(null),Hn(this._destroy)).subscribe(()=>{this._resetOptions(),this._initializeSelection()})}ngDoCheck(){const e=this._getTriggerAriaLabelledby(),i=this.ngControl;if(e!==this._triggerAriaLabelledBy){const o=this._elementRef.nativeElement;this._triggerAriaLabelledBy=e,e?o.setAttribute("aria-labelledby",e):o.removeAttribute("aria-labelledby")}i&&(this._previousControl!==i.control&&(void 0!==this._previousControl&&null!==i.disabled&&i.disabled!==this.disabled&&(this.disabled=i.disabled),this._previousControl=i.control),this.updateErrorState())}ngOnChanges(e){(e.disabled||e.userAriaDescribedBy)&&this.stateChanges.next(),e.typeaheadDebounceInterval&&this._keyManager&&this._keyManager.withTypeAhead(this._typeaheadDebounceInterval)}ngOnDestroy(){this._keyManager?.destroy(),this._destroy.next(),this._destroy.complete(),this.stateChanges.complete()}toggle(){this.panelOpen?this.close():this.open()}open(){this._canOpen()&&(this._panelOpen=!0,this._keyManager.withHorizontalOrientation(null),this._highlightCorrectOption(),this._changeDetectorRef.markForCheck())}close(){this._panelOpen&&(this._panelOpen=!1,this._keyManager.withHorizontalOrientation(this._isRtl()?"rtl":"ltr"),this._changeDetectorRef.markForCheck(),this._onTouched())}writeValue(e){this._assignValue(e)}registerOnChange(e){this._onChange=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetectorRef.markForCheck(),this.stateChanges.next()}get panelOpen(){return this._panelOpen}get selected(){return this.multiple?this._selectionModel?.selected||[]:this._selectionModel?.selected[0]}get triggerValue(){if(this.empty)return"";if(this._multiple){const e=this._selectionModel.selected.map(i=>i.viewValue);return this._isRtl()&&e.reverse(),e.join(", ")}return this._selectionModel.selected[0].viewValue}_isRtl(){return!!this._dir&&"rtl"===this._dir.value}_handleKeydown(e){this.disabled||(this.panelOpen?this._handleOpenKeydown(e):this._handleClosedKeydown(e))}_handleClosedKeydown(e){const i=e.keyCode,o=40===i||38===i||37===i||39===i,s=13===i||32===i,a=this._keyManager;if(!a.isTyping()&&s&&!Fs(e)||(this.multiple||e.altKey)&&o)e.preventDefault(),this.open();else if(!this.multiple){const l=this.selected;a.onKeydown(e);const d=this.selected;d&&l!==d&&this._liveAnnouncer.announce(d.viewValue,1e4)}}_handleOpenKeydown(e){const i=this._keyManager,o=e.keyCode,s=40===o||38===o,a=i.isTyping();if(s&&e.altKey)e.preventDefault(),this.close();else if(a||13!==o&&32!==o||!i.activeItem||Fs(e))if(!a&&this._multiple&&65===o&&e.ctrlKey){e.preventDefault();const l=this.options.some(d=>!d.disabled&&!d.selected);this.options.forEach(d=>{d.disabled||(l?d.select():d.deselect())})}else{const l=i.activeItemIndex;i.onKeydown(e),this._multiple&&s&&e.shiftKey&&i.activeItem&&i.activeItemIndex!==l&&i.activeItem._selectViaInteraction()}else e.preventDefault(),i.activeItem._selectViaInteraction()}_onFocus(){this.disabled||(this._focused=!0,this.stateChanges.next())}_onBlur(){this._focused=!1,this._keyManager?.cancelTypeahead(),!this.disabled&&!this.panelOpen&&(this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next())}_onAttached(){this._overlayDir.positionChange.pipe(Kn(1)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this._positioningSettled()})}_getPanelTheme(){return this._parentFormField?`mat-${this._parentFormField.color}`:""}get empty(){return!this._selectionModel||this._selectionModel.isEmpty()}_initializeSelection(){Promise.resolve().then(()=>{this.ngControl&&(this._value=this.ngControl.value),this._setSelectionByValue(this._value),this.stateChanges.next()})}_setSelectionByValue(e){if(this.options.forEach(i=>i.setInactiveStyles()),this._selectionModel.clear(),this.multiple&&e)Array.isArray(e),e.forEach(i=>this._selectOptionByValue(i)),this._sortValues();else{const i=this._selectOptionByValue(e);i?this._keyManager.updateActiveItem(i):this.panelOpen||this._keyManager.updateActiveItem(-1)}this._changeDetectorRef.markForCheck()}_selectOptionByValue(e){const i=this.options.find(o=>{if(this._selectionModel.isSelected(o))return!1;try{return null!=o.value&&this._compareWith(o.value,e)}catch{return!1}});return i&&this._selectionModel.select(i),i}_assignValue(e){return!!(e!==this._value||this._multiple&&Array.isArray(e))&&(this.options&&this._setSelectionByValue(e),this._value=e,!0)}_skipPredicate(e){return e.disabled}_initKeyManager(){this._keyManager=new bz(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl()?"rtl":"ltr").withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(["shiftKey"]).skipPredicate(this._skipPredicate),this._keyManager.tabOut.subscribe(()=>{this.panelOpen&&(!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction(),this.focus(),this.close())}),this._keyManager.change.subscribe(()=>{this._panelOpen&&this.panel?this._scrollOptionIntoView(this._keyManager.activeItemIndex||0):!this._panelOpen&&!this.multiple&&this._keyManager.activeItem&&this._keyManager.activeItem._selectViaInteraction()})}_resetOptions(){const e=bt(this.options.changes,this._destroy);this.optionSelectionChanges.pipe(Hn(e)).subscribe(i=>{this._onSelect(i.source,i.isUserInput),i.isUserInput&&!this.multiple&&this._panelOpen&&(this.close(),this.focus())}),bt(...this.options.map(i=>i._stateChanges)).pipe(Hn(e)).subscribe(()=>{this._changeDetectorRef.detectChanges(),this.stateChanges.next()})}_onSelect(e,i){const o=this._selectionModel.isSelected(e);null!=e.value||this._multiple?(o!==e.selected&&(e.selected?this._selectionModel.select(e):this._selectionModel.deselect(e)),i&&this._keyManager.setActiveItem(e),this.multiple&&(this._sortValues(),i&&this.focus())):(e.deselect(),this._selectionModel.clear(),null!=this.value&&this._propagateChanges(e.value)),o!==this._selectionModel.isSelected(e)&&this._propagateChanges(),this.stateChanges.next()}_sortValues(){if(this.multiple){const e=this.options.toArray();this._selectionModel.sort((i,o)=>this.sortComparator?this.sortComparator(i,o,e):e.indexOf(i)-e.indexOf(o)),this.stateChanges.next()}}_propagateChanges(e){let i=null;i=this.multiple?this.selected.map(o=>o.value):this.selected?this.selected.value:e,this._value=i,this.valueChange.emit(i),this._onChange(i),this.selectionChange.emit(this._getChangeEvent(i)),this._changeDetectorRef.markForCheck()}_highlightCorrectOption(){if(this._keyManager)if(this.empty){let e=-1;for(let i=0;i0}focus(e){this._elementRef.nativeElement.focus(e)}_getPanelAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();return this.ariaLabelledby?(e?e+" ":"")+this.ariaLabelledby:e}_getAriaActiveDescendant(){return this.panelOpen&&this._keyManager&&this._keyManager.activeItem?this._keyManager.activeItem.id:null}_getTriggerAriaLabelledby(){if(this.ariaLabel)return null;const e=this._parentFormField?.getLabelId();let i=(e?e+" ":"")+this._valueId;return this.ariaLabelledby&&(i+=" "+this.ariaLabelledby),i}_panelDoneAnimating(e){this.openedChange.emit(e)}setDescribedByIds(e){e.length?this._elementRef.nativeElement.setAttribute("aria-describedby",e.join(" ")):this._elementRef.nativeElement.removeAttribute("aria-describedby")}onContainerClick(){this.focus(),this.open()}get shouldLabelFloat(){return this._panelOpen||!this.empty||this._focused&&!!this._placeholder}}return t.\u0275fac=function(e){return new(e||t)(Y(kd),Y(pi),Y(ft),Y(e1),Y(vt),Y(Do,8),Y(Xh,8),Y(ii,8),Y(A1,8),Y(Rs,10),Pa("tabindex"),Y(jI),Y(K0),Y(Fq,8))},t.\u0275dir=Ke({type:t,viewQuery:function(e,i){if(1&e&&(_t(xq,5),_t(kq,5),_t(lL,5)),2&e){let o;rt(o=ot())&&(i.trigger=o.first),rt(o=ot())&&(i.panel=o.first),rt(o=ot())&&(i._overlayDir=o.first)}},inputs:{userAriaDescribedBy:["aria-describedby","userAriaDescribedBy"],panelClass:"panelClass",placeholder:"placeholder",required:"required",multiple:"multiple",disableOptionCentering:"disableOptionCentering",compareWith:"compareWith",value:"value",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],errorStateMatcher:"errorStateMatcher",typeaheadDebounceInterval:"typeaheadDebounceInterval",sortComparator:"sortComparator",id:"id"},outputs:{openedChange:"openedChange",_openedStream:"opened",_closedStream:"closed",selectionChange:"selectionChange",valueChange:"valueChange"},features:[nt,Gi]}),t})(),Bq=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275dir=Ke({type:t,selectors:[["mat-select-trigger"]],features:[un([{provide:zI,useExisting:t}])]}),t})(),tf=(()=>{class t extends Hq{constructor(){super(...arguments),this._positions=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",panelClass:"mat-mdc-select-panel-above"}],this._hideSingleSelectionIndicator=this._defaultOptions?.hideSingleSelectionIndicator??!1,this._skipPredicate=e=>!this.panelOpen&&e.disabled}get shouldLabelFloat(){return this.panelOpen||!this.empty||this.focused&&!!this.placeholder}ngOnInit(){super.ngOnInit(),this._viewportRuler.change().pipe(Hn(this._destroy)).subscribe(()=>{this.panelOpen&&(this._overlayWidth=this._getOverlayWidth(),this._changeDetectorRef.detectChanges())})}ngAfterViewInit(){this._parentFormField&&(this._preferredOverlayOrigin=this._parentFormField.getConnectedOverlayOrigin())}open(){this._overlayWidth=this._getOverlayWidth(),super.open(),this.stateChanges.next()}close(){super.close(),this.stateChanges.next()}_scrollOptionIntoView(e){const i=this.options.toArray()[e];if(i){const o=this.panel.nativeElement,s=function uU(t,n,e){if(e.length){let i=n.toArray(),o=e.toArray(),s=0;for(let a=0;ae+i?Math.max(0,t-i+n):e}(a.offsetTop,a.offsetHeight,o.scrollTop,o.offsetHeight)}}_positioningSettled(){this._scrollOptionIntoView(this._keyManager.activeItemIndex||0)}_getChangeEvent(e){return new Nq(this,e)}_getOverlayWidth(){return(this._preferredOverlayOrigin instanceof Y0?this._preferredOverlayOrigin.elementRef:this._preferredOverlayOrigin||this._elementRef).nativeElement.getBoundingClientRect().width}get hideSingleSelectionIndicator(){return this._hideSingleSelectionIndicator}set hideSingleSelectionIndicator(e){this._hideSingleSelectionIndicator=_n(e),this._syncParentProperties()}_syncParentProperties(){if(this.options)for(const e of this.options)e._changeDetectorRef.markForCheck()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["mat-select"]],contentQueries:function(e,i,o){if(1&e&&(or(o,zI,5),or(o,Pd,5),or(o,NL,5)),2&e){let s;rt(s=ot())&&(i.customTrigger=s.first),rt(s=ot())&&(i.options=s),rt(s=ot())&&(i.optionGroups=s)}},hostAttrs:["role","combobox","aria-autocomplete","none","aria-haspopup","listbox","ngSkipHydration","true",1,"mat-mdc-select"],hostVars:19,hostBindings:function(e,i){1&e&&ye("keydown",function(s){return i._handleKeydown(s)})("focus",function(){return i._onFocus()})("blur",function(){return i._onBlur()}),2&e&&(Xt("id",i.id)("tabindex",i.tabIndex)("aria-controls",i.panelOpen?i.id+"-panel":null)("aria-expanded",i.panelOpen)("aria-label",i.ariaLabel||null)("aria-required",i.required.toString())("aria-disabled",i.disabled.toString())("aria-invalid",i.errorState)("aria-activedescendant",i._getAriaActiveDescendant()),nn("mat-mdc-select-disabled",i.disabled)("mat-mdc-select-invalid",i.errorState)("mat-mdc-select-required",i.required)("mat-mdc-select-empty",i.empty)("mat-mdc-select-multiple",i.multiple))},inputs:{disabled:"disabled",disableRipple:"disableRipple",tabIndex:"tabIndex",hideSingleSelectionIndicator:"hideSingleSelectionIndicator"},exportAs:["matSelect"],features:[un([{provide:O1,useExisting:t},{provide:RL,useExisting:t}]),nt],ngContentSelectors:Pq,decls:11,vars:11,consts:[["cdk-overlay-origin","",1,"mat-mdc-select-trigger",3,"click"],["fallbackOverlayOrigin","cdkOverlayOrigin","trigger",""],[1,"mat-mdc-select-value",3,"ngSwitch"],["class","mat-mdc-select-placeholder mat-mdc-select-min-line",4,"ngSwitchCase"],["class","mat-mdc-select-value-text",3,"ngSwitch",4,"ngSwitchCase"],[1,"mat-mdc-select-arrow-wrapper"],[1,"mat-mdc-select-arrow"],["viewBox","0 0 24 24","width","24px","height","24px","focusable","false"],["d","M7 10l5 5 5-5z"],["cdk-connected-overlay","","cdkConnectedOverlayLockPosition","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","cdk-overlay-transparent-backdrop",3,"cdkConnectedOverlayPanelClass","cdkConnectedOverlayScrollStrategy","cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayWidth","backdropClick","attach","detach"],[1,"mat-mdc-select-placeholder","mat-mdc-select-min-line"],[1,"mat-mdc-select-value-text",3,"ngSwitch"],["class","mat-mdc-select-min-line",4,"ngSwitchDefault"],[4,"ngSwitchCase"],[1,"mat-mdc-select-min-line"],["role","listbox","tabindex","-1",3,"ngClass","keydown"],["panel",""]],template:function(e,i){if(1&e&&(Ir(Iq),D(0,"div",0,1),ye("click",function(){return i.toggle()}),D(3,"div",2),V(4,Sq,2,1,"span",3),V(5,Lq,3,2,"span",4),C(),D(6,"div",5)(7,"div",6),wl(),D(8,"svg",7),xe(9,"path",8),C()()()(),V(10,Eq,3,9,"ng-template",9),ye("backdropClick",function(){return i.close()})("attach",function(){return i._onAttached()})("detach",function(){return i.close()})),2&e){const o=ci(1);Xt("aria-owns",i.panelOpen?i.id+"-panel":null),c(3),w("ngSwitch",i.empty),Xt("id",i._valueId),c(1),w("ngSwitchCase",!0),c(1),w("ngSwitchCase",!1),c(5),w("cdkConnectedOverlayPanelClass",i._overlayPanelClass)("cdkConnectedOverlayScrollStrategy",i._scrollStrategy)("cdkConnectedOverlayOrigin",i._preferredOverlayOrigin||o)("cdkConnectedOverlayOpen",i.panelOpen)("cdkConnectedOverlayPositions",i._positions)("cdkConnectedOverlayWidth",i._overlayWidth)}},dependencies:[Nn,eh,my,aD,lL,Y0],styles:['.mdc-menu-surface{display:none;position:absolute;box-sizing:border-box;margin:0;padding:0;transform:scale(1);transform-origin:top left;opacity:0;overflow:auto;will-change:transform,opacity;transform-origin-left:top left;transform-origin-right:top right}.mdc-menu-surface:focus{outline:none}.mdc-menu-surface--animating-open{display:inline-block;transform:scale(0.8);opacity:0}.mdc-menu-surface--open{display:inline-block;transform:scale(1);opacity:1}.mdc-menu-surface--animating-closed{display:inline-block;opacity:0}[dir=rtl] .mdc-menu-surface,.mdc-menu-surface[dir=rtl]{transform-origin-left:top right;transform-origin-right:top left}.mdc-menu-surface--anchor{position:relative;overflow:visible}.mdc-menu-surface--fixed{position:fixed}.mdc-menu-surface--fullwidth{width:100%}.mdc-menu-surface{max-width:calc(100vw - 32px);max-width:var(--mdc-menu-max-width, calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:var(--mdc-menu-max-height, calc(100vh - 32px));z-index:8;border-radius:4px;border-radius:var(--mdc-shape-medium, 4px)}.mat-mdc-select{display:inline-block;width:100%;outline:none}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}.mdc-menu-surface.mat-mdc-select-panel{width:100%;max-height:275px;position:static;outline:0;margin:0;padding:8px 0;list-style-type:none}.mdc-menu-surface.mat-mdc-select-panel:focus{outline:none}.cdk-high-contrast-active .mdc-menu-surface.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) .mdc-menu-surface.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above .mdc-menu-surface.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:" ";white-space:pre;width:1px;display:inline-block;visibility:hidden}'],encapsulation:2,data:{animation:[Oq.transformPanel]},changeDetection:0}),t})(),Vq=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[Rq],imports:[ta,Td,YL,Wn,Lh,Lg,YL,Wn]}),t})();function jq(t,n){if(1&t&&xe(0,"input",9),2&t){const e=z().$implicit;w("formControlName",e.keyNameInFiltersObject)("maxlength",e.maxlength)}}function zq(t,n){if(1&t&&(D(0,"div",14),xe(1,"div",15),C()),2&t){const e=z().$implicit,i=z(2).$implicit;di("background-image: url('"+i.printableLabelGeneralSettings.defaultImage+"'); width: "+i.printableLabelGeneralSettings.imageWidth+"px; height: "+i.printableLabelGeneralSettings.imageHeight+"px;"),c(1),di("background-image: url('"+e.image+"');")}}function Uq(t,n){if(1&t&&(D(0,"mat-option",12),V(1,zq,2,4,"div",13),I(2),R(3,"translate"),C()),2&t){const e=n.$implicit,i=z(2).$implicit;w("value",e.value),c(1),w("ngIf",i.printableLabelGeneralSettings&&e.image),c(1),ce(" ",H(3,3,e.label)," ")}}function Wq(t,n){if(1&t&&(D(0,"mat-select",10),V(1,Uq,4,5,"mat-option",11),C()),2&t){const e=z().$implicit;w("formControlName",e.keyNameInFiltersObject),c(1),w("ngForOf",e.printableLabelsForValues)}}function $q(t,n){if(1&t&&(Ue(0),D(1,"mat-form-field")(2,"div",5)(3,"label",6),I(4),R(5,"translate"),C(),V(6,jq,1,2,"input",7),V(7,Wq,2,2,"mat-select",8),C()(),We()),2&t){const e=n.$implicit,i=z();c(4),se(H(5,3,e.filterName)),c(2),w("ngIf",e.type===i.filterFieldTypes.TextInput),c(1),w("ngIf",e.type===i.filterFieldTypes.Select)}}let Gq=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.filterFieldTypes=$n}ngOnInit(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=[this.data.currentFilters[i.keyNameInFiltersObject]]}),this.form=this.formBuilder.group(e)}apply(){const e={};this.data.filterPropertiesList.forEach(i=>{e[i.keyNameInFiltersObject]=this.form.get(i.keyNameInFiltersObject).value.trim()}),this.dialogRef.close(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-filters-selection"]],decls:8,vars:9,consts:[[3,"headline","dialog"],[3,"formGroup"],[4,"ngFor","ngForOf"],["color","primary",1,"float-right",3,"action"],["button",""],[1,"field-container"],["for","remoteKey",1,"field-label"],["matInput","",3,"formControlName","maxlength",4,"ngIf"],[3,"formControlName",4,"ngIf"],["matInput","",3,"formControlName","maxlength"],[3,"formControlName"],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["class","image-container",3,"style",4,"ngIf"],[1,"image-container"],[1,"image"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1),V(3,$q,8,5,"ng-container",2),C(),D(4,"app-button",3,4),ye("action",function(){return i.apply()}),I(6),R(7,"translate"),C()()),2&e&&(w("headline",H(1,5,"filters.filter-action"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(1),w("ngForOf",i.data.filterPropertiesList),c(3),ce(" ",H(7,7,"common.ok")," "))},dependencies:[gi,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,tf,Pd,Ui,ei,wt],styles:[".image-container[_ngcontent-%COMP%]{display:inline-block;background-size:contain;margin-right:5px}.image-container[_ngcontent-%COMP%] .image[_ngcontent-%COMP%]{background-size:contain;width:100%;height:100%}"]}),t})();class Nd{get currentFiltersTexts(){return this.currentFiltersTextsInternal}get currentUrlQueryParams(){return this.currentUrlQueryParamsInternal}get dataFiltered(){return this.dataUpdatedSubject.asObservable()}constructor(n,e,i,o,s){this.dialog=n,this.route=e,this.router=i,this.currentFiltersTextsInternal=[],this.dataUpdatedSubject=new J,this.filterPropertiesList=o,this.currentFilters={},this.filterPropertiesList.forEach(a=>{a.keyNameInFiltersObject=s+"_"+a.keyNameInElementsArray,this.currentFilters[a.keyNameInFiltersObject]=""}),this.navigationsSubscription=this.route.queryParamMap.subscribe(a=>{Object.keys(this.currentFilters).forEach(l=>{a.has(l)&&(this.currentFilters[l]=a.get(l))}),this.currentUrlQueryParamsInternal={},a.keys.forEach(l=>{this.currentUrlQueryParamsInternal[l]=a.get(l)}),this.filter()})}dispose(){this.dataUpdatedSubject.complete(),this.navigationsSubscription.unsubscribe()}setData(n){this.data=n,this.filter()}removeFilters(){const n=Jt.createConfirmationDialog(this.dialog,"filters.remove-confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.closeModal(),this.router.navigate([],{queryParams:{}})})}changeFilters(){Gq.openDialog(this.dialog,{filterPropertiesList:this.filterPropertiesList,currentFilters:this.currentFilters}).afterClosed().subscribe(e=>{e&&this.router.navigate([],{queryParams:e})})}filter(){if(this.data){let n,e=!1;Object.keys(this.currentFilters).forEach(i=>{this.currentFilters[i]&&(e=!0)}),e?(n=function uq(t,n,e){if(t){const i=[];return Object.keys(n).forEach(s=>{if(n[s])for(const a of e)if(a.keyNameInFiltersObject===s){i.push(a);break}}),t.filter(s=>{let a=!0;return i.forEach(l=>{const d=String(s[l.keyNameInElementsArray]).toLowerCase().includes(n[l.keyNameInFiltersObject].toLowerCase()),_=l.secondaryKeyNameInElementsArray&&String(s[l.secondaryKeyNameInElementsArray]).toLowerCase().includes(n[l.keyNameInFiltersObject].toLowerCase());!d&&!_&&(a=!1)}),a})}return null}(this.data,this.currentFilters,this.filterPropertiesList),this.updateCurrentFilters()):(n=this.data,this.updateCurrentFilters()),this.dataUpdatedSubject.next(n)}}updateCurrentFilters(){this.currentFiltersTextsInternal=function hq(t,n){const e=[];return n.forEach(i=>{if(t[i.keyNameInFiltersObject]){let o,s;i.printableLabelsForValues&&i.printableLabelsForValues.forEach(a=>{a.value===t[i.keyNameInFiltersObject]&&(s=a.label)}),s||(o=t[i.keyNameInFiltersObject]),e.push({filterName:i.filterName,translatableValue:s,value:o})}}),e}(this.currentFilters,this.filterPropertiesList)}}function qq(t,n){if(1&t){const e=et();D(0,"div",5)(1,"div",6)(2,"div",7),I(3),C(),D(4,"div",8),I(5),C()(),D(6,"div",9)(7,"app-button",10),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).openTerminal(s.key))}),I(8),R(9,"translate"),C()()()}if(2&t){const e=n.$implicit;c(3),se(e.label),c(2),se(e.version),c(3),ce(" ",H(9,3,"update-all.update-button")," ")}}function Kq(t,n){if(1&t&&(Ue(0),D(1,"div",2),I(2),R(3,"translate"),C(),D(4,"div",3),V(5,qq,10,5,"div",4),C(),We()),2&t){const e=z();c(2),ce(" ",H(3,2,"update-all.updatable-list-text")," "),c(3),w("ngForOf",e.updatableNodes)}}function Zq(t,n){if(1&t&&(D(0,"div",8),I(1),C()),2&t){const e=z().$implicit;c(1),se(e.tag)}}function Xq(t,n){if(1&t&&(D(0,"div",5)(1,"div",6)(2,"div",7),I(3),C(),D(4,"div",8),I(5),C(),V(6,Zq,2,1,"div",11),C()()),2&t){const e=n.$implicit;c(3),se(e.label),c(2),se(e.version),c(1),w("ngIf",e.tag)}}function Jq(t,n){if(1&t&&(Ue(0),D(1,"div",2),I(2),R(3,"translate"),C(),D(4,"div",3),V(5,Xq,7,3,"div",4),C(),We()),2&t){const e=z();c(2),ce(" ",H(3,2,"update-all.non-updatable-list-text")," "),c(3),w("ngForOf",e.nonUpdatableNodes)}}let Qq=(()=>{class t{static openDialog(e,i,o){const s=new En;return s.data=[i,o],s.autoFocus=!1,s.width=Vt.smallModalWidth,e.open(t,s)}constructor(e,i){this.dialogRef=e,this.updatableNodes=i[0],this.nonUpdatableNodes=i[1]}openTerminal(e){const i=window.location.protocol,o=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(i+"//"+o+"/pty/"+e+"?commands=update","_blank","noopener noreferrer")}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li))},t.\u0275cmp=Ze({type:t,selectors:[["app-update-all"]],decls:4,vars:6,consts:[[3,"headline","dialog"],[4,"ngIf"],[1,"text-container"],[1,"list-container"],["class","list-element",4,"ngFor","ngForOf"],[1,"list-element"],[1,"left-part"],[1,"name"],[1,"version"],[1,"right-part"],["color","primary",3,"click"],["class","version",4,"ngIf"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),V(2,Kq,6,4,"ng-container",1),V(3,Jq,6,4,"ng-container",1),C()),2&e&&(w("headline",H(1,4,"update-all.title"))("dialog",i.dialogRef),c(2),w("ngIf",i.updatableNodes&&i.updatableNodes.length>0),c(1),w("ngIf",i.nonUpdatableNodes&&i.nonUpdatableNodes.length>0))},dependencies:[gi,Ft,Ui,ei,wt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex;margin-bottom:10px}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%]{flex-grow:1;flex-shrink:1;align-self:center;margin-right:10px;min-width:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 575px){.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{font-size:.7rem}}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-part[_ngcontent-%COMP%] .version[_ngcontent-%COMP%]{font-size:.7rem;color:#777;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-part[_ngcontent-%COMP%]{flex-basis:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .details[_ngcontent-%COMP%]{color:#777}"]}),t})();const eK=["input"],tK=["label"],nK=["*"],iK=new Re("mat-checkbox-default-options",{providedIn:"root",factory:UI});function UI(){return{color:"accent",clickAction:"check-indeterminate"}}const rK={provide:ls,useExisting:pn(()=>fa),multi:!0};class oK{}let sK=0;const WI=UI(),aK=LL(Fh(Rh(Ed(class{constructor(t){this._elementRef=t}}))));let lK=(()=>{class t extends aK{get inputId(){return`${this.id||this._uniqueId}-input`}get required(){return this._required}set required(e){this._required=_n(e)}constructor(e,i,o,s,a,l,d){super(i),this._changeDetectorRef=o,this._ngZone=s,this._animationMode=l,this._options=d,this.ariaLabel="",this.ariaLabelledby=null,this.labelPosition="after",this.name=null,this.change=new ht,this.indeterminateChange=new ht,this._onTouched=()=>{},this._currentAnimationClass="",this._currentCheckState=0,this._controlValueAccessorChangeFn=()=>{},this._checked=!1,this._disabled=!1,this._indeterminate=!1,this._options=this._options||WI,this.color=this.defaultColor=this._options.color||WI.color,this.tabIndex=parseInt(a)||0,this.id=this._uniqueId=`${e}${++sK}`}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){const i=_n(e);i!=this.checked&&(this._checked=i,this._changeDetectorRef.markForCheck())}get disabled(){return this._disabled}set disabled(e){const i=_n(e);i!==this.disabled&&(this._disabled=i,this._changeDetectorRef.markForCheck())}get indeterminate(){return this._indeterminate}set indeterminate(e){const i=e!=this._indeterminate;this._indeterminate=_n(e),i&&(this._transitionCheckState(this._indeterminate?3:this.checked?1:2),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}_transitionCheckState(e){let i=this._currentCheckState,o=this._getAnimationTargetElement();if(i!==e&&o&&(this._currentAnimationClass&&o.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(i,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){o.classList.add(this._currentAnimationClass);const s=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{o.classList.remove(s)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){const e=this._options?.clickAction;this.disabled||"noop"===e?!this.disabled&&"noop"===e&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate):(this.indeterminate&&"check"!==e&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?1:2),this._emitChangeEvent())}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,i){if("NoopAnimations"===this._animationMode)return"";switch(e){case 0:if(1===i)return this._animationClasses.uncheckedToChecked;if(3==i)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case 2:return 1===i?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case 1:return 2===i?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case 3:return 1===i?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){const i=this._inputElement;i&&(i.nativeElement.indeterminate=e)}}return t.\u0275fac=function(e){Aa()},t.\u0275dir=Ke({type:t,viewQuery:function(e,i){if(1&e&&(_t(eK,5),_t(tK,5),_t(Zl,5)),2&e){let o;rt(o=ot())&&(i._inputElement=o.first),rt(o=ot())&&(i._labelElement=o.first),rt(o=ot())&&(i.ripple=o.first)}},inputs:{ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],id:"id",required:"required",labelPosition:"labelPosition",name:"name",value:"value",checked:"checked",disabled:"disabled",indeterminate:"indeterminate"},outputs:{change:"change",indeterminateChange:"indeterminateChange"},features:[nt]}),t})(),fa=(()=>{class t extends lK{constructor(e,i,o,s,a,l){super("mat-mdc-checkbox-",e,i,o,s,a,l),this._animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"}}focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){const i=new oK;return i.source=this,i.checked=e,i}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_onInputClick(){super._handleInputClick()}_onTouchTargetClick(){super._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(ft),Pa("tabindex"),Y(Ri,8),Y(iK,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-checkbox"]],hostAttrs:[1,"mat-mdc-checkbox"],hostVars:12,hostBindings:function(e,i){2&e&&(Js("id",i.id),Xt("tabindex",null)("aria-label",null)("aria-labelledby",null),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode)("mdc-checkbox--disabled",i.disabled)("mat-mdc-checkbox-disabled",i.disabled)("mat-mdc-checkbox-checked",i.checked))},inputs:{disableRipple:"disableRipple",color:"color",tabIndex:"tabIndex"},exportAs:["matCheckbox"],features:[un([rK]),nt],ngContentSelectors:nK,decls:15,vars:19,consts:[[1,"mdc-form-field",3,"click"],[1,"mdc-checkbox"],["checkbox",""],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"checked","indeterminate","disabled","id","required","tabIndex","blur","click","change"],["input",""],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-mdc-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"],["label",""]],template:function(e,i){if(1&e&&(Ir(),D(0,"div",0),ye("click",function(s){return i._preventBubblingFromLabel(s)}),D(1,"div",1,2)(3,"div",3),ye("click",function(){return i._onTouchTargetClick()}),C(),D(4,"input",4,5),ye("blur",function(){return i._onBlur()})("click",function(){return i._onInputClick()})("change",function(s){return i._onInteractionEvent(s)}),C(),xe(6,"div",6),D(7,"div",7),wl(),D(8,"svg",8),xe(9,"path",9),C(),zf(),xe(10,"div",10),C(),xe(11,"div",11),C(),D(12,"label",12,13),Sn(14),C()()),2&e){const o=ci(2);nn("mdc-form-field--align-end","before"==i.labelPosition),c(4),nn("mdc-checkbox--selected",i.checked),w("checked",i.checked)("indeterminate",i.indeterminate)("disabled",i.disabled)("id",i.inputId)("required",i.required)("tabIndex",i.tabIndex),Xt("aria-label",i.ariaLabel||null)("aria-labelledby",i.ariaLabelledby)("aria-describedby",i.ariaDescribedby)("name",i.name)("value",i.value),c(7),w("matRippleTrigger",o)("matRippleDisabled",i.disableRipple||i.disabled)("matRippleCentered",!0),c(1),w("for",i.inputId)}},dependencies:[Zl],styles:['.mdc-touch-target-wrapper{display:inline}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mdc-checkbox[hidden]{display:none}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:"";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled{cursor:default;pointer-events:none}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--upgraded .mdc-checkbox__checkmark{opacity:1}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-checkbox{padding:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2)}.mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:var(--mdc-checkbox-disabled-selected-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}.mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-icon-color);background-color:var(--mdc-checkbox-selected-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-icon-color);background-color:transparent}}.mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-hover-icon-color);background-color:var(--mdc-checkbox-selected-hover-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-hover-icon-color);background-color:transparent}}.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}50%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:var(--mdc-checkbox-selected-pressed-icon-color);background-color:var(--mdc-checkbox-selected-pressed-icon-color)}100%{border-color:var(--mdc-checkbox-unselected-pressed-icon-color);background-color:transparent}}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mdc-checkbox .mdc-checkbox__background{top:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - 18px) / 2)}.mdc-checkbox .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);right:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);left:calc((var(--mdc-checkbox-state-layer-size) - var(--mdc-checkbox-state-layer-size)) / 2);width:var(--mdc-checkbox-state-layer-size);height:var(--mdc-checkbox-state-layer-size)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:focus:not(:checked):not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color)}.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:checked~.mdc-checkbox__background,.mdc-checkbox .mdc-checkbox__native-control:enabled:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color);background-color:var(--mdc-checkbox-selected-focus-icon-color)}.mdc-checkbox:hover .mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox:hover .mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity);background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity);background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity);background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mdc-checkbox:active .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color)}.mat-mdc-checkbox{--mdc-checkbox-disabled-selected-checkmark-color:#fff;--mdc-checkbox-selected-focus-state-layer-opacity:0.16;--mdc-checkbox-selected-hover-state-layer-opacity:0.04;--mdc-checkbox-selected-pressed-state-layer-opacity:0.16;--mdc-checkbox-unselected-focus-state-layer-opacity:0.16;--mdc-checkbox-unselected-hover-state-layer-opacity:0.04;--mdc-checkbox-unselected-pressed-state-layer-opacity:0.16}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox .mdc-checkbox__background{-webkit-print-color-adjust:exact;color-adjust:exact}.mat-mdc-checkbox._mat-animation-noopable *,.mat-mdc-checkbox._mat-animation-noopable *::before{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default}.mat-mdc-checkbox label:empty{display:none}.cdk-high-contrast-active .mat-mdc-checkbox.mat-mdc-checkbox-disabled{opacity:.5}.cdk-high-contrast-active .mat-mdc-checkbox .mdc-checkbox__checkmark{--mdc-checkbox-selected-checkmark-color: CanvasText;--mdc-checkbox-disabled-selected-checkmark-color: CanvasText}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-mdc-focus-indicator::before{content:""}'],encapsulation:2,changeDetection:0}),t})(),$I=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({}),t})(),uK=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn,Yh,$I,Wn,$I]}),t})();const hK=["button"];function fK(t,n){1&t&&(D(0,"span",22),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"bulk-rewards.checking"),""))}function pK(t,n){if(1&t&&(D(0,"span",23)(1,"span"),I(2),R(3,"translate"),C(),D(4,"span"),I(5),R(6,"translate"),C()()),2&t){const e=z(2).$implicit;c(2),ce(" ",H(3,2,"bulk-rewards.error-checking"),""),c(3),ce(" ",H(6,4,e.operationError),"")}}function mK(t,n){if(1&t&&(D(0,"span"),I(1),C()),2&t){const e=z(2).$implicit;c(1),ce(" ",e.currentAddress,"")}}function gK(t,n){1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"bulk-rewards.not-registered"),""))}function _K(t,n){if(1&t&&(Ue(0,15),D(1,"mat-checkbox",16)(2,"div")(3,"div",17),I(4),C(),D(5,"div",18)(6,"span",19),I(7),R(8,"translate"),C(),V(9,fK,3,3,"span",20),V(10,pK,7,6,"span",21),V(11,mK,2,1,"span",12),V(12,gK,3,3,"span",12),C()()(),We()),2&t){const e=z(),o=e.$implicit;w("formGroupName",e.index),c(4),ce(" ",o.label," "),c(3),se(H(8,7,"bulk-rewards.current-address")),c(2),w("ngIf",null===o.currentAddress&&!o.operationError),c(1),w("ngIf",o.operationError),c(1),w("ngIf",o.currentAddress&&!o.operationError),c(1),w("ngIf",""===o.currentAddress&&!o.operationError)}}function bK(t,n){1&t&&(D(0,"span",22),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"bulk-rewards.processing"),""))}function vK(t,n){if(1&t&&(D(0,"span",23)(1,"span"),I(2),R(3,"translate"),C(),D(4,"span"),I(5),R(6,"translate"),C()()),2&t){const e=z(2).$implicit;c(2),ce(" ",H(3,2,"bulk-rewards.error-processing"),""),c(3),ce(" ",H(6,4,e.operationError),"")}}function yK(t,n){1&t&&(D(0,"span",28),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"bulk-rewards.done"),""))}function MK(t,n){if(1&t&&(Ue(0),D(1,"div",24),I(2,"-"),C(),D(3,"div",25),I(4),D(5,"div",26),V(6,bK,3,3,"span",20),V(7,vK,7,6,"span",21),V(8,yK,3,3,"span",27),C()(),We()),2&t){const e=z().$implicit;c(4),ce(" ",e.label," "),c(2),w("ngIf",e.processing&&!e.operationError),c(1),w("ngIf",e.operationError),c(1),w("ngIf",!e.processing&&!e.operationError)}}const wK=function(t){return{"element-margin":t}};function CK(t,n){if(1&t&&(D(0,"div",13),V(1,_K,13,9,"ng-container",14),V(2,MK,9,4,"ng-container",12),C()),2&t){const e=z();w("ngClass",He(3,wK,e.processingStarted)),c(1),w("ngIf",!e.processingStarted),c(1),w("ngIf",e.processingStarted)}}function xK(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"bulk-rewards.perform-changes")))}function kK(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"common.close")))}const SK=function(t){return{"element-disabled":t}};let DK=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o,s,a){this.dialogRef=e,this.data=i,this.nodeService=o,this.formBuilder=s,this.dialog=a,this.processingStarted=!1,this.processingFinished=!1,this.currentlyProcessed=0,this.form=s.group({address:["",Gt.compose([Gt.minLength(20),Gt.maxLength(40)])],nodes:s.array([])}),i.nodes.forEach(l=>{const d=this.formBuilder.group({selected:[!0]});this.form.get("nodes").push(d)}),this.startChecking()}formValid(){if(!this.processingStarted){if(!this.form.valid)return!1;let e=0;return this.form.get("nodes").controls.forEach((i,o)=>{i.get("selected")?.value&&(e+=1)}),e>0}return!0}get disableDismiss(){return this.processingStarted&&!this.processingFinished}startChecking(){this.nodesToEdit=[],this.data.nodes.forEach(e=>{this.nodesToEdit.push({key:e.key,label:e.label,currentAddress:null,operationError:"",processing:!1})}),this.operationSubscriptions=[],this.nodesToEdit.forEach((e,i)=>{this.operationSubscriptions.push(this.nodeService.getRewardsAddress(e.key).subscribe(o=>{this.nodesToEdit[i].currentAddress=o},o=>{this.nodesToEdit[i].operationError=o.translatableErrorMsg?o.translatableErrorMsg:o.originalServerErrorMsg}))})}checkBeforeProcessing(){if(this.form.valid)if(this.form.get("address").value)this.startProcessing();else{const i=Jt.createConfirmationDialog(this.dialog,"bulk-rewards.empty-warning");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.startProcessing()})}}startProcessing(){this.processingStarted=!0,this.button.showLoading(),this.closeoperationSubscriptions();const e=[];this.form.get("nodes").controls.forEach((o,s)=>{o.get("selected")?.value&&(this.nodesToEdit[s].operationError="",this.nodesToEdit[s].processing=!0,e.push(this.nodesToEdit[s]))}),this.nodesToEdit=e;const i=this.form.get("address").value;this.form.get("address").disable(),this.currentlyProcessed=0,this.operationSubscriptions=[],this.nodesToEdit.forEach((o,s)=>{let a=this.nodeService.setRewardsAddress(o.key,i);i||(a=this.nodeService.deleteRewardsAddress(o.key)),this.operationSubscriptions.push($e(0).pipe(Ti(100),Ye(()=>a)).subscribe(l=>{this.nodesToEdit[s].processing=!1,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())},l=>{this.nodesToEdit[s].processing=!1,this.nodesToEdit[s].operationError=l.translatableErrorMsg?l.translatableErrorMsg:l.originalServerErrorMsg,this.currentlyProcessed+=1,this.currentlyProcessed===this.nodesToEdit.length&&(this.processingFinished=!0,this.button.reset())}))})}ngOnDestroy(){this.closeoperationSubscriptions()}closeoperationSubscriptions(){this.operationSubscriptions&&this.operationSubscriptions.forEach(e=>e.unsubscribe())}closeModal(){this.dialogRef.close()}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(ua),Y(xr),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-bulk-reward-address-changer"]],viewQuery:function(e,i){if(1&e&&_t(hK,5),2&e){let o;rt(o=ot())&&(i.button=o.first)}},decls:30,vars:28,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[1,"text-container"],["href","https://github.com/skycoin/skywire/blob/master/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","40","matInput","",3,"ngClass"],["formArrayName","nodes",1,"list-container"],["class","list-element",3,"ngClass",4,"ngFor","ngForOf"],[1,"buttons"],["type","mat-raised-button","color","primary",3,"disabled","action"],["button",""],[4,"ngIf"],[1,"list-element",3,"ngClass"],[3,"formGroupName",4,"ngIf"],[3,"formGroupName"],["color","primary","formControlName","selected"],[1,"contents"],[1,"address","contents"],[1,"address-label"],["class","blinking",4,"ngIf"],["class","red-text",4,"ngIf"],[1,"blinking"],[1,"red-text"],[1,"left-area"],[1,"right-area","contents"],[1,"address"],["class","green-text",4,"ngIf"],[1,"green-text"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"div",2)(4,"span"),I(5),R(6,"translate"),C(),D(7,"a",3),I(8),R(9,"translate"),C()(),D(10,"mat-form-field")(11,"div",4)(12,"label",5),I(13),R(14,"translate"),C(),xe(15,"input",6),C(),D(16,"mat-error")(17,"span"),I(18),R(19,"translate"),C()()(),D(20,"div",2),I(21),R(22,"translate"),C(),D(23,"div",7),V(24,CK,3,5,"div",8),C()(),D(25,"div",9)(26,"app-button",10,11),ye("action",function(){return i.processingStarted?i.closeModal():i.checkBeforeProcessing()}),V(28,xK,3,3,"ng-container",12),V(29,kK,3,3,"ng-container",12),C()()()),2&e&&(w("headline",H(1,14,"bulk-rewards.title"))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(2),w("formGroup",i.form),c(3),ce("",H(6,16,"bulk-rewards.info")," "),c(3),ce(" ",H(9,18,"bulk-rewards.more-info-link")," "),c(5),se(H(14,20,"rewards-address-config.address")),c(2),w("ngClass",He(26,SK,i.processingStarted)),c(3),se(H(19,22,"rewards-address-config.address-error")),c(3),ce(" ",H(22,24,"bulk-rewards.select-visors")," "),c(3),w("ngForOf",i.nodesToEdit),c(2),w("disabled",!i.formValid()),c(2),w("ngIf",!i.processingStarted),c(1),w("ngIf",i.processingStarted))},dependencies:[Nn,gi,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,Jh,Qh,ar,sl,kr,fa,Ui,ei,wt],styles:[".text-container[_ngcontent-%COMP%]{word-break:break-word}mat-form-field[_ngcontent-%COMP%]{margin-top:10px}.list-container[_ngcontent-%COMP%]{font-size:14px;margin:10px;color:#215f9e;word-break:break-word}.list-container[_ngcontent-%COMP%] .element-margin[_ngcontent-%COMP%]{margin:15px 0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%]{display:flex}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .left-area[_ngcontent-%COMP%]{width:12px;flex-grow:0;flex-shrink:0}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .right-area[_ngcontent-%COMP%]{flex-grow:1}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .contents[_ngcontent-%COMP%]{white-space:normal;line-height:1.2}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%]{font-size:.7rem;color:#777}.list-container[_ngcontent-%COMP%] .list-element[_ngcontent-%COMP%] .address[_ngcontent-%COMP%] .address-label[_ngcontent-%COMP%]{opacity:.7}.buttons[_ngcontent-%COMP%]{margin-top:15px;text-align:right}.buttons[_ngcontent-%COMP%] app-button[_ngcontent-%COMP%]{margin-left:5px}"]}),t})();const TK=["mat-menu-item",""];function LK(t,n){1&t&&(wl(),D(0,"svg",3),xe(1,"polygon",4),C())}const EK=[[["mat-icon"],["","matMenuItemIcon",""]],"*"],IK=["mat-icon, [matMenuItemIcon]","*"];function PK(t,n){if(1&t){const e=et();D(0,"div",0),ye("keydown",function(o){return Pe(e),Oe(z()._handleKeydown(o))})("click",function(){return Pe(e),Oe(z().closed.emit("click"))})("@transformMenu.start",function(o){return Pe(e),Oe(z()._onAnimationStart(o))})("@transformMenu.done",function(o){return Pe(e),Oe(z()._onAnimationDone(o))}),D(1,"div",1),Sn(2),C()()}if(2&t){const e=z();w("id",e.panelId)("ngClass",e._classList)("@transformMenu",e._panelAnimationState),Xt("aria-label",e.ariaLabel||null)("aria-labelledby",e.ariaLabelledby||null)("aria-describedby",e.ariaDescribedby||null)}}const OK=["*"],Y1=new Re("MAT_MENU_PANEL"),AK=Rh(Ed(class{}));let pa=(()=>{class t extends AK{constructor(e,i,o,s,a){super(),this._elementRef=e,this._document=i,this._focusMonitor=o,this._parentMenu=s,this._changeDetectorRef=a,this.role="menuitem",this._hovered=new J,this._focused=new J,this._highlighted=!1,this._triggersSubmenu=!1,s?.addItem?.(this)}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._getHostElement(),e,i):this._getHostElement().focus(i),this._focused.next(this)}ngAfterViewInit(){this._focusMonitor&&this._focusMonitor.monitor(this._elementRef,!1)}ngOnDestroy(){this._focusMonitor&&this._focusMonitor.stopMonitoring(this._elementRef),this._parentMenu&&this._parentMenu.removeItem&&this._parentMenu.removeItem(this),this._hovered.complete(),this._focused.complete()}_getTabIndex(){return this.disabled?"-1":"0"}_getHostElement(){return this._elementRef.nativeElement}_checkDisabled(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}_handleMouseEnter(){this._hovered.next(this)}getLabel(){const e=this._elementRef.nativeElement.cloneNode(!0),i=e.querySelectorAll("mat-icon, .material-icons");for(let o=0;o enter",Ur("120ms cubic-bezier(0, 0, 0.2, 1)",Qn({opacity:1,transform:"scale(1)"}))),Pr("* => void",Ur("100ms 25ms linear",Qn({opacity:0})))]),fadeInItems:ia("fadeInItems",[yo("showing",Qn({opacity:1})),Pr("void => *",[Qn({opacity:0}),Ur("400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)")])])};let RK=0;const GI=new Re("mat-menu-default-options",{providedIn:"root",factory:function NK(){return{overlapTrigger:!1,xPosition:"after",yPosition:"below",backdropClass:"cdk-overlay-transparent-backdrop"}}});let nf=(()=>{class t{get xPosition(){return this._xPosition}set xPosition(e){this._xPosition=e,this.setPositionClasses()}get yPosition(){return this._yPosition}set yPosition(e){this._yPosition=e,this.setPositionClasses()}get overlapTrigger(){return this._overlapTrigger}set overlapTrigger(e){this._overlapTrigger=_n(e)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(e){this._hasBackdrop=_n(e)}set panelClass(e){const i=this._previousPanelClass;i&&i.length&&i.split(" ").forEach(o=>{this._classList[o]=!1}),this._previousPanelClass=e,e&&e.length&&(e.split(" ").forEach(o=>{this._classList[o]=!0}),this._elementRef.nativeElement.className="")}get classList(){return this.panelClass}set classList(e){this.panelClass=e}constructor(e,i,o,s){this._elementRef=e,this._ngZone=i,this._changeDetectorRef=s,this._directDescendantItems=new Al,this._classList={},this._panelAnimationState="void",this._animationDone=new J,this.closed=new ht,this.close=this.closed,this.panelId="mat-menu-panel-"+RK++,this.overlayPanelClass=o.overlayPanelClass||"",this._xPosition=o.xPosition,this._yPosition=o.yPosition,this.backdropClass=o.backdropClass,this._overlapTrigger=o.overlapTrigger,this._hasBackdrop=o.hasBackdrop}ngOnInit(){this.setPositionClasses()}ngAfterContentInit(){this._updateDirectDescendants(),this._keyManager=new _L(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd(),this._keyManager.tabOut.subscribe(()=>this.closed.emit("tab")),this._directDescendantItems.changes.pipe(Go(this._directDescendantItems),gr(e=>bt(...e.map(i=>i._focused)))).subscribe(e=>this._keyManager.updateActiveItem(e)),this._directDescendantItems.changes.subscribe(e=>{const i=this._keyManager;if("enter"===this._panelAnimationState&&i.activeItem?._hasFocus()){const o=e.toArray(),s=Math.max(0,Math.min(o.length-1,i.activeItemIndex||0));o[s]&&!o[s].disabled?i.setActiveItem(s):i.setNextItemActive()}})}ngOnDestroy(){this._keyManager?.destroy(),this._directDescendantItems.destroy(),this.closed.complete(),this._firstItemFocusSubscription?.unsubscribe()}_hovered(){return this._directDescendantItems.changes.pipe(Go(this._directDescendantItems),gr(i=>bt(...i.map(o=>o._hovered))))}addItem(e){}removeItem(e){}_handleKeydown(e){const i=e.keyCode,o=this._keyManager;switch(i){case 27:Fs(e)||(e.preventDefault(),this.closed.emit("keydown"));break;case 37:this.parentMenu&&"ltr"===this.direction&&this.closed.emit("keydown");break;case 39:this.parentMenu&&"rtl"===this.direction&&this.closed.emit("keydown");break;default:return(38===i||40===i)&&o.setFocusOrigin("keyboard"),void o.onKeydown(e)}e.stopPropagation()}focusFirstItem(e="program"){this._firstItemFocusSubscription?.unsubscribe(),this._firstItemFocusSubscription=this._ngZone.onStable.pipe(Kn(1)).subscribe(()=>{let i=null;if(this._directDescendantItems.length&&(i=this._directDescendantItems.first._getHostElement().closest('[role="menu"]')),!i||!i.contains(document.activeElement)){const o=this._keyManager;o.setFocusOrigin(e).setFirstItemActive(),!o.activeItem&&i&&i.focus()}})}resetActiveItem(){this._keyManager.setActiveItem(-1)}setElevation(e){const i=Math.min(this._baseElevation+e,24),o=`${this._elevationPrefix}${i}`,s=Object.keys(this._classList).find(a=>a.startsWith(this._elevationPrefix));(!s||s===this._previousElevation)&&(this._previousElevation&&(this._classList[this._previousElevation]=!1),this._classList[o]=!0,this._previousElevation=o)}setPositionClasses(e=this.xPosition,i=this.yPosition){const o=this._classList;o["mat-menu-before"]="before"===e,o["mat-menu-after"]="after"===e,o["mat-menu-above"]="above"===i,o["mat-menu-below"]="below"===i,this._changeDetectorRef?.markForCheck()}_startAnimation(){this._panelAnimationState="enter"}_resetAnimation(){this._panelAnimationState="void"}_onAnimationDone(e){this._animationDone.next(e),this._isAnimating=!1}_onAnimationStart(e){this._isAnimating=!0,"enter"===e.toState&&0===this._keyManager.activeItemIndex&&(e.element.scrollTop=0)}_updateDirectDescendants(){this._allItems.changes.pipe(Go(this._allItems)).subscribe(e=>{this._directDescendantItems.reset(e.filter(i=>i._parentMenu===this)),this._directDescendantItems.notifyOnChanges()})}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ft),Y(GI),Y(pi))},t.\u0275dir=Ke({type:t,contentQueries:function(e,i,o){if(1&e&&(or(o,FK,5),or(o,pa,5),or(o,pa,4)),2&e){let s;rt(s=ot())&&(i.lazyContent=s.first),rt(s=ot())&&(i._allItems=s),rt(s=ot())&&(i.items=s)}},viewQuery:function(e,i){if(1&e&&_t(mr,5),2&e){let o;rt(o=ot())&&(i.templateRef=o.first)}},inputs:{backdropClass:"backdropClass",ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],ariaDescribedby:["aria-describedby","ariaDescribedby"],xPosition:"xPosition",yPosition:"yPosition",overlapTrigger:"overlapTrigger",hasBackdrop:"hasBackdrop",panelClass:["class","panelClass"],classList:"classList"},outputs:{closed:"closed",close:"close"}}),t})(),Yd=(()=>{class t extends nf{constructor(e,i,o,s){super(e,i,o,s),this._elevationPrefix="mat-elevation-z",this._baseElevation=8}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(ft),Y(GI),Y(pi))},t.\u0275cmp=Ze({type:t,selectors:[["mat-menu"]],hostAttrs:["ngSkipHydration","true"],hostVars:3,hostBindings:function(e,i){2&e&&Xt("aria-label",null)("aria-labelledby",null)("aria-describedby",null)},exportAs:["matMenu"],features:[un([{provide:Y1,useExisting:t}]),nt],ngContentSelectors:OK,decls:1,vars:0,consts:[["tabindex","-1","role","menu",1,"mat-mdc-menu-panel","mdc-menu-surface","mdc-menu-surface--open","mat-mdc-elevation-specific",3,"id","ngClass","keydown","click"],[1,"mat-mdc-menu-content","mdc-list"]],template:function(e,i){1&e&&(Ir(),V(0,PK,3,6,"ng-template"))},dependencies:[Nn],styles:['.mdc-menu-surface{display:none;position:absolute;box-sizing:border-box;margin:0;padding:0;transform:scale(1);transform-origin:top left;opacity:0;overflow:auto;will-change:transform,opacity;transform-origin-left:top left;transform-origin-right:top right}.mdc-menu-surface:focus{outline:none}.mdc-menu-surface--animating-open{display:inline-block;transform:scale(0.8);opacity:0}.mdc-menu-surface--open{display:inline-block;transform:scale(1);opacity:1}.mdc-menu-surface--animating-closed{display:inline-block;opacity:0}[dir=rtl] .mdc-menu-surface,.mdc-menu-surface[dir=rtl]{transform-origin-left:top right;transform-origin-right:top left}.mdc-menu-surface--anchor{position:relative;overflow:visible}.mdc-menu-surface--fixed{position:fixed}.mdc-menu-surface--fullwidth{width:100%}.mdc-menu-surface{max-width:var(--mdc-menu-max-width, calc(100vw - 32px));max-height:var(--mdc-menu-max-height, calc(100vh - 32px));z-index:8;border-radius:var(--mdc-shape-medium, 4px)}mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-panel.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;position:relative}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item.mdc-list-item{align-items:center}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:"";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item .mdc-list-item__primary-text{white-space:normal}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}'],encapsulation:2,data:{animation:[Ig.transformMenu,Ig.fadeInItems]},changeDetection:0}),t})();const qI=new Re("mat-menu-scroll-strategy"),HK={provide:qI,deps:[io],useFactory:function YK(t){return()=>t.scrollStrategies.reposition()}},KI=Za({passive:!0});let BK=(()=>{class t{get _deprecatedMatMenuTriggerFor(){return this.menu}set _deprecatedMatMenuTriggerFor(e){this.menu=e}get menu(){return this._menu}set menu(e){e!==this._menu&&(this._menu=e,this._menuCloseSubscription.unsubscribe(),e&&(this._menuCloseSubscription=e.close.subscribe(i=>{this._destroyMenu(i),("click"===i||"tab"===i)&&this._parentMaterialMenu&&this._parentMaterialMenu.closed.emit(i)})),this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu()))}constructor(e,i,o,s,a,l,d,_,E){this._overlay=e,this._element=i,this._viewContainerRef=o,this._menuItemInstance=l,this._dir=d,this._focusMonitor=_,this._ngZone=E,this._overlayRef=null,this._menuOpen=!1,this._closingActionsSubscription=T.EMPTY,this._hoverSubscription=T.EMPTY,this._menuCloseSubscription=T.EMPTY,this._changeDetectorRef=Qe(pi),this._handleTouchStart=F=>{q0(F)||(this._openedBy="touch")},this._openedBy=void 0,this.restoreFocus=!0,this.menuOpened=new ht,this.onMenuOpen=this.menuOpened,this.menuClosed=new ht,this.onMenuClose=this.menuClosed,this._scrollStrategy=s,this._parentMaterialMenu=a instanceof nf?a:void 0,i.nativeElement.addEventListener("touchstart",this._handleTouchStart,KI)}ngAfterContentInit(){this._handleHover()}ngOnDestroy(){this._overlayRef&&(this._overlayRef.dispose(),this._overlayRef=null),this._element.nativeElement.removeEventListener("touchstart",this._handleTouchStart,KI),this._menuCloseSubscription.unsubscribe(),this._closingActionsSubscription.unsubscribe(),this._hoverSubscription.unsubscribe()}get menuOpen(){return this._menuOpen}get dir(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}triggersSubmenu(){return!!(this._menuItemInstance&&this._parentMaterialMenu&&this.menu)}toggleMenu(){return this._menuOpen?this.closeMenu():this.openMenu()}openMenu(){const e=this.menu;if(this._menuOpen||!e)return;const i=this._createOverlay(e),o=i.getConfig(),s=o.positionStrategy;this._setPosition(e,s),o.hasBackdrop=null==e.hasBackdrop?!this.triggersSubmenu():e.hasBackdrop,i.attach(this._getPortal(e)),e.lazyContent&&e.lazyContent.attach(this.menuData),this._closingActionsSubscription=this._menuClosingActions().subscribe(()=>this.closeMenu()),this._initMenu(e),e instanceof nf&&(e._startAnimation(),e._directDescendantItems.changes.pipe(Hn(e.close)).subscribe(()=>{s.withLockedPosition(!1).reapplyLastPosition(),s.withLockedPosition(!0)}))}closeMenu(){this.menu?.close.emit()}focus(e,i){this._focusMonitor&&e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}updatePosition(){this._overlayRef?.updatePosition()}_destroyMenu(e){if(!this._overlayRef||!this.menuOpen)return;const i=this.menu;this._closingActionsSubscription.unsubscribe(),this._overlayRef.detach(),this.restoreFocus&&("keydown"===e||!this._openedBy||!this.triggersSubmenu())&&this.focus(this._openedBy),this._openedBy=void 0,i instanceof nf?(i._resetAnimation(),i.lazyContent?i._animationDone.pipe(_i(o=>"void"===o.toState),Kn(1),Hn(i.lazyContent._attached)).subscribe({next:()=>i.lazyContent.detach(),complete:()=>this._setIsMenuOpen(!1)}):this._setIsMenuOpen(!1)):(this._setIsMenuOpen(!1),i?.lazyContent?.detach())}_initMenu(e){e.parentMenu=this.triggersSubmenu()?this._parentMaterialMenu:void 0,e.direction=this.dir,this._setMenuElevation(e),e.focusFirstItem(this._openedBy||"program"),this._setIsMenuOpen(!0)}_setMenuElevation(e){if(e.setElevation){let i=0,o=e.parentMenu;for(;o;)i++,o=o.parentMenu;e.setElevation(i)}}_setIsMenuOpen(e){e!==this._menuOpen&&(this._menuOpen=e,this._menuOpen?this.menuOpened.emit():this.menuClosed.emit(),this.triggersSubmenu()&&this._menuItemInstance._setHighlighted(e),this._changeDetectorRef.markForCheck())}_createOverlay(e){if(!this._overlayRef){const i=this._getOverlayConfig(e);this._subscribeToPositions(e,i.positionStrategy),this._overlayRef=this._overlay.create(i),this._overlayRef.keydownEvents().subscribe()}return this._overlayRef}_getOverlayConfig(e){return new Oh({positionStrategy:this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".mat-menu-panel, .mat-mdc-menu-panel"),backdropClass:e.backdropClass||"cdk-overlay-transparent-backdrop",panelClass:e.overlayPanelClass,scrollStrategy:this._scrollStrategy(),direction:this._dir})}_subscribeToPositions(e,i){e.setPositionClasses&&i.positionChanges.subscribe(o=>{const s="start"===o.connectionPair.overlayX?"after":"before",a="top"===o.connectionPair.overlayY?"below":"above";this._ngZone?this._ngZone.run(()=>e.setPositionClasses(s,a)):e.setPositionClasses(s,a)})}_setPosition(e,i){let[o,s]="before"===e.xPosition?["end","start"]:["start","end"],[a,l]="above"===e.yPosition?["bottom","top"]:["top","bottom"],[d,_]=[a,l],[E,F]=[o,s],G=0;if(this.triggersSubmenu()){if(F=o="before"===e.xPosition?"start":"end",s=E="end"===o?"start":"end",this._parentMaterialMenu){if(null==this._parentInnerPadding){const ie=this._parentMaterialMenu.items.first;this._parentInnerPadding=ie?ie._getHostElement().offsetTop:0}G="bottom"===a?this._parentInnerPadding:-this._parentInnerPadding}}else e.overlapTrigger||(d="top"===a?"bottom":"top",_="top"===l?"bottom":"top");i.withPositions([{originX:o,originY:d,overlayX:E,overlayY:a,offsetY:G},{originX:s,originY:d,overlayX:F,overlayY:a,offsetY:G},{originX:o,originY:_,overlayX:E,overlayY:l,offsetY:-G},{originX:s,originY:_,overlayX:F,overlayY:l,offsetY:-G}])}_menuClosingActions(){const e=this._overlayRef.backdropClick(),i=this._overlayRef.detachments();return bt(e,this._parentMaterialMenu?this._parentMaterialMenu.closed:$e(),this._parentMaterialMenu?this._parentMaterialMenu._hovered().pipe(_i(a=>a!==this._menuItemInstance),_i(()=>this._menuOpen)):$e(),i)}_handleMousedown(e){G0(e)||(this._openedBy=0===e.button?"mouse":void 0,this.triggersSubmenu()&&e.preventDefault())}_handleKeydown(e){const i=e.keyCode;(13===i||32===i)&&(this._openedBy="keyboard"),this.triggersSubmenu()&&(39===i&&"ltr"===this.dir||37===i&&"rtl"===this.dir)&&(this._openedBy="keyboard",this.openMenu())}_handleClick(e){this.triggersSubmenu()?(e.stopPropagation(),this.openMenu()):this.toggleMenu()}_handleHover(){!this.triggersSubmenu()||!this._parentMaterialMenu||(this._hoverSubscription=this._parentMaterialMenu._hovered().pipe(_i(e=>e===this._menuItemInstance&&!e.disabled),Ti(0,E0)).subscribe(()=>{this._openedBy="mouse",this.menu instanceof nf&&this.menu._isAnimating?this.menu._animationDone.pipe(Kn(1),Ti(0,E0),Hn(this._parentMaterialMenu._hovered())).subscribe(()=>this.openMenu()):this.openMenu()}))}_getPortal(e){return(!this._portal||this._portal.templateRef!==e.templateRef)&&(this._portal=new Gl(e.templateRef,this._viewContainerRef)),this._portal}}return t.\u0275fac=function(e){return new(e||t)(Y(io),Y(vt),Y(rr),Y(qI),Y(Y1,8),Y(pa,10),Y(Do,8),Y(Qa),Y(ft))},t.\u0275dir=Ke({type:t,hostVars:3,hostBindings:function(e,i){1&e&&ye("click",function(s){return i._handleClick(s)})("mousedown",function(s){return i._handleMousedown(s)})("keydown",function(s){return i._handleKeydown(s)}),2&e&&Xt("aria-haspopup",i.menu?"menu":null)("aria-expanded",i.menuOpen)("aria-controls",i.menuOpen?i.menu.panelId:null)},inputs:{_deprecatedMatMenuTriggerFor:["mat-menu-trigger-for","_deprecatedMatMenuTriggerFor"],menu:["matMenuTriggerFor","menu"],menuData:["matMenuTriggerData","menuData"],restoreFocus:["matMenuTriggerRestoreFocus","restoreFocus"]},outputs:{menuOpened:"menuOpened",onMenuOpen:"onMenuOpen",menuClosed:"menuClosed",onMenuClose:"onMenuClose"}}),t})(),Hd=(()=>{class t extends BK{}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275dir=Ke({type:t,selectors:[["","mat-menu-trigger-for",""],["","matMenuTriggerFor",""]],hostAttrs:[1,"mat-mdc-menu-trigger"],exportAs:["matMenuTrigger"],features:[nt]}),t})(),VK=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({providers:[HK],imports:[ta,Yh,Wn,Td,Lh,Wn]}),t})();const ZI=function(){return["1"]};function jK(t,n){if(1&t&&(D(0,"a",10)(1,"mat-icon",11),I(2,"chevron_left"),C(),I(3),R(4,"translate"),C()),2&t){const e=z();w("routerLink",e.linkParts.concat(qn(6,ZI)))("queryParams",e.queryParams),c(1),w("inline",!0),c(2),ce(" ",H(4,4,"paginator.first")," ")}}function zK(t,n){if(1&t&&(D(0,"a",12)(1,"mat-icon",11),I(2,"chevron_left"),C(),D(3,"span",13),I(4),R(5,"translate"),C()()),2&t){const e=z();w("routerLink",e.linkParts.concat(qn(6,ZI)))("queryParams",e.queryParams),c(1),w("inline",!0),c(3),se(H(5,4,"paginator.first"))}}const al=function(t){return[t]};function UK(t,n){if(1&t&&(D(0,"a",10)(1,"div")(2,"mat-icon",11),I(3,"chevron_left"),C()()()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage-1).toString())))("queryParams",e.queryParams),c(2),w("inline",!0)}}function WK(t,n){if(1&t&&(D(0,"a",10),I(1),C()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage-2).toString())))("queryParams",e.queryParams),c(1),se(e.currentPage-2)}}function $K(t,n){if(1&t&&(D(0,"a",14),I(1),C()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage-1).toString())))("queryParams",e.queryParams),c(1),se(e.currentPage-1)}}function GK(t,n){if(1&t&&(D(0,"a",14),I(1),C()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage+1).toString())))("queryParams",e.queryParams),c(1),se(e.currentPage+1)}}function qK(t,n){if(1&t&&(D(0,"a",10),I(1),C()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage+2).toString())))("queryParams",e.queryParams),c(1),se(e.currentPage+2)}}function KK(t,n){if(1&t&&(D(0,"a",10)(1,"div")(2,"mat-icon",11),I(3,"chevron_right"),C()()()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(3,al,(e.currentPage+1).toString())))("queryParams",e.queryParams),c(2),w("inline",!0)}}function ZK(t,n){if(1&t&&(D(0,"a",10),I(1),R(2,"translate"),D(3,"mat-icon",11),I(4,"chevron_right"),C()()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(6,al,e.numberOfPages.toString())))("queryParams",e.queryParams),c(1),ce(" ",H(2,4,"paginator.last")," "),c(2),w("inline",!0)}}function XK(t,n){if(1&t&&(D(0,"a",12)(1,"mat-icon",11),I(2,"chevron_right"),C(),D(3,"span",13),I(4),R(5,"translate"),C()()),2&t){const e=z();w("routerLink",e.linkParts.concat(He(6,al,e.numberOfPages.toString())))("queryParams",e.queryParams),c(1),w("inline",!0),c(3),se(H(5,4,"paginator.last"))}}const XI=function(t){return{number:t}};function JK(t,n){if(1&t&&(D(0,"div",15),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),se(kt(2,1,"paginator.total",He(4,XI,e.numberOfPages)))}}function QK(t,n){if(1&t&&(D(0,"div",16),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),se(kt(2,1,"paginator.total",He(4,XI,e.numberOfPages)))}}let Bd=(()=>{class t{constructor(e,i){this.dialog=e,this.router=i,this.linkParts=[""],this.queryParams={}}openSelectionDialog(){const e=[];for(let i=1;i<=this.numberOfPages;i++)e.push({label:i.toString()});qr.openDialog(this.dialog,e,"paginator.select-page-title").afterClosed().subscribe(i=>{i&&this.router.navigate(this.linkParts.concat([i.toString()]),{queryParams:this.queryParams})})}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-paginator"]],inputs:{currentPage:"currentPage",numberOfPages:"numberOfPages",linkParts:"linkParts",queryParams:"queryParams"},decls:21,vars:13,consts:[[1,"main-container"],[1,"d-inline-block","small-rounded-elevated-box","mt-3"],[1,"d-flex"],[1,"responsive-height","d-md-none"],["class","d-none d-md-flex",3,"routerLink","queryParams",4,"ngIf"],["class","d-flex d-md-none flex-column",3,"routerLink","queryParams",4,"ngIf"],[3,"routerLink","queryParams",4,"ngIf"],[1,"selected",3,"click"],["class","d-none d-md-block total-pages",4,"ngIf"],["class","d-block d-md-none total-pages",4,"ngIf"],[1,"d-none","d-md-flex",3,"routerLink","queryParams"],[3,"inline"],[1,"d-flex","d-md-none","flex-column",3,"routerLink","queryParams"],[1,"label"],[3,"routerLink","queryParams"],[1,"d-none","d-md-block","total-pages"],[1,"d-block","d-md-none","total-pages"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3),I(4,"\xa0"),xe(5,"br"),I(6,"\xa0"),C(),V(7,jK,5,7,"a",4),V(8,zK,6,7,"a",5),V(9,UK,4,5,"a",4),V(10,WK,2,5,"a",4),V(11,$K,2,5,"a",6),D(12,"a",7),ye("click",function(){return i.openSelectionDialog()}),I(13),C(),V(14,GK,2,5,"a",6),V(15,qK,2,5,"a",4),V(16,KK,4,5,"a",4),V(17,ZK,5,8,"a",4),V(18,XK,6,8,"a",5),C()(),V(19,JK,3,6,"div",8),V(20,QK,3,6,"div",9),C()),2&e&&(c(7),w("ngIf",i.currentPage>3),c(1),w("ngIf",i.currentPage>2),c(1),w("ngIf",i.currentPage>1),c(1),w("ngIf",i.currentPage>2),c(1),w("ngIf",i.currentPage>1),c(2),se(i.currentPage),c(1),w("ngIf",i.currentPage3),c(1),w("ngIf",i.numberOfPages>2))},dependencies:[Ft,qa,Cn,wt],styles:[".main-container[_ngcontent-%COMP%]{text-align:right}.main-container[_ngcontent-%COMP%] .responsive-height[_ngcontent-%COMP%]{padding:10px 0;width:0px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:10px;border-right:rgba(255,255,255,.15) solid 1px;border-left:rgba(255,255,255,.15) solid 1px;min-width:40px;text-align:center;color:#f8f9f980;text-decoration:none;display:flex;align-items:center;justify-content:center}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.2)}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.7rem}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{color:#f8f9f9;background:rgba(0,0,0,.36);padding:10px 20px;cursor:pointer}.main-container[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.6)}.main-container[_ngcontent-%COMP%] .total-pages[_ngcontent-%COMP%]{font-size:.6rem;margin-top:-3px;margin-right:4px}"]}),t})();function rf(t){return n=>n.lift(new eZ(t,n))}class eZ{constructor(n,e){this.notifier=n,this.source=e}call(n,e){return e.subscribe(new tZ(n,this.notifier,this.source))}}class tZ extends Me{constructor(n,e,i){super(n),this.notifier=e,this.source=i}error(n){if(!this.isStopped){let e=this.errors,i=this.retries,o=this.retriesSubscription;if(i)this.errors=void 0,this.retriesSubscription=void 0;else{e=new J;try{const{notifier:s}=this;i=s(e)}catch(s){return super.error(s)}o=Ie(i,new be(this))}this._unsubscribeAndRecycle(),this.errors=e,this.retries=i,this.retriesSubscription=o,e.next(n)}}_unsubscribe(){const{errors:n,retriesSubscription:e}=this;n&&(n.unsubscribe(),this.errors=void 0),e&&(e.unsubscribe(),this.retriesSubscription=void 0),this.retries=void 0}notifyNext(){const{_unsubscribe:n}=this;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=n,this.source.subscribe(this)}}let ll=(()=>{class t{constructor(e){this.apiService=e}changeAppState(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,{status:o?1:0})}changeAppAutostart(e,i,o){return this.changeAppSettings(e,i,{autostart:o})}changeAppSettings(e,i,o){return this.apiService.put(`visors/${e}/apps/${encodeURIComponent(i)}`,o)}getLogMessages(e,i,o){const a=KS(-1!==o?Date.now()-864e5*o:0,"yyyy-MM-ddTHH:mm:ssZZZZZ","en-US");return this.apiService.get(this.getLogMessagesUrl(e,i)+`?since=${a}`).pipe(ke(l=>l.logs))}getLogMessagesUrl(e,i){return`visors/${e}/apps/${encodeURIComponent(i)}/logs`}}return t.\u0275fac=function(e){return new(e||t)(we(il))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var Pn=(()=>((Pn=Pn||{}).None="None",Pn.Favorite="Favorite",Pn.Blocked="Blocked",Pn))(),Sr=(()=>((Sr=Sr||{}).BitsSpeedAndBytesVolume="BitsSpeedAndBytesVolume",Sr.OnlyBytes="OnlyBytes",Sr.OnlyBits="OnlyBits",Sr))();let rc=(()=>{class t{constructor(e,i){this.router=e,this.storageService=i,this.maxHistoryElements=30,this.savedServersStorageKey="VpnServers",this.checkIpSettingStorageKey="VpnGetIp",this.dataUnitsSettingStorageKey="VpnDataUnits",this.serversMap=new Map,this.savedDataVersion=0,this.currentServerSubject=new ko(1),this.historySubject=new ko(1),this.favoritesSubject=new ko(1),this.blockedSubject=new ko(1)}initialize(){this.migrateDataToHvStorage(),this.serversMap=new Map;const e=this.storageService.getDataForHv(this.savedServersStorageKey);if(e){const i=JSON.parse(e);i.serverList.forEach(o=>{this.serversMap.set(o.pk,o)}),this.savedDataVersion=i.version,i.selectedServerPk&&this.updateCurrentServerPk(i.selectedServerPk)}this.launchListEvents()}migrateDataToHvStorage(){const e=localStorage.getItem(this.savedServersStorageKey);e&&(this.storageService.setDataForHv(this.savedServersStorageKey,e),localStorage.removeItem(this.savedServersStorageKey));const i=localStorage.getItem(this.checkIpSettingStorageKey);i&&(this.storageService.setDataForHv(this.checkIpSettingStorageKey,i),localStorage.removeItem(this.checkIpSettingStorageKey));const o=localStorage.getItem(this.dataUnitsSettingStorageKey);o&&(this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,o),localStorage.removeItem(this.dataUnitsSettingStorageKey))}get currentServer(){return this.serversMap.get(this.currentServerPk)}get currentServerObservable(){return this.currentServerSubject.asObservable()}get history(){return this.historySubject.asObservable()}get favorites(){return this.favoritesSubject.asObservable()}get blocked(){return this.blockedSubject.asObservable()}getSavedVersion(e,i){return i&&this.checkIfDataWasChanged(),this.serversMap.get(e)}getCheckIpSetting(){const e=this.storageService.getDataForHv(this.checkIpSettingStorageKey);return null==e||"false"!==e}setCheckIpSetting(e){this.storageService.setDataForHv(this.checkIpSettingStorageKey,e?"true":"false")}getDataUnitsSetting(){return this.storageService.getDataForHv(this.dataUnitsSettingStorageKey)??Sr.BitsSpeedAndBytesVolume}setDataUnitsSetting(e){this.storageService.setDataForHv(this.dataUnitsSettingStorageKey,e)}updateFromDiscovery(e){this.checkIfDataWasChanged(),e.forEach(i=>{if(this.serversMap.has(i.pk)){const o=this.serversMap.get(i.pk);o.countryCode=i.countryCode,o.name=i.name,o.location=i.location,o.note=i.note}}),this.saveData()}updateServer(e){this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData()}processFromDiscovery(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.countryCode=e.countryCode,i.name=e.name,i.location=e.location,i.note=e.note,this.saveData(),i):{countryCode:e.countryCode,name:e.name,customName:null,pk:e.pk,lastUsed:0,inHistory:!1,flag:Pn.None,location:e.location,personalNote:null,note:e.note,enteredManually:!1,usedWithPassword:!1}}processFromManual(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e.pk);return i?(i.customName=e.name,i.personalNote=e.note,i.enteredManually=!0,this.saveData(),i):{countryCode:"zz",name:"",customName:e.name,pk:e.pk,lastUsed:0,inHistory:!1,flag:Pn.None,location:"",personalNote:e.note,note:"",enteredManually:!0,usedWithPassword:!1}}changeFlag(e,i){this.checkIfDataWasChanged();const o=this.serversMap.get(e.pk);o&&(e=o),e.flag!==i&&(e.flag=i,this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.cleanServers(),this.saveData())}removeFromHistory(e){this.checkIfDataWasChanged();const i=this.serversMap.get(e);!i||!i.inHistory||(i.inHistory=!1,this.cleanServers(),this.saveData())}modifyCurrentServer(e){this.checkIfDataWasChanged(),e.pk!==this.currentServerPk&&(this.serversMap.has(e.pk)||this.serversMap.set(e.pk,e),this.updateCurrentServerPk(e.pk),this.cleanServers(),this.saveData())}compareCurrentServer(e){if(this.checkIfDataWasChanged(),e){if(!this.currentServerPk||this.currentServerPk!==e){if(this.currentServerPk=e,!this.serversMap.get(e)){const o=this.processFromManual({pk:e});this.serversMap.set(o.pk,o),this.cleanServers()}this.saveData(),this.currentServerSubject.next(this.currentServer)}}else this.currentServerPk&&(this.currentServerPk=null,this.saveData(),this.currentServerSubject.next(this.currentServer))}updateHistory(){this.checkIfDataWasChanged(),this.currentServer.lastUsed=Date.now(),this.currentServer.inHistory=!0;let e=[];this.serversMap.forEach(o=>{o.inHistory&&e.push(o)}),e=e.sort((o,s)=>s.lastUsed-o.lastUsed);let i=0;e.forEach(o=>{i{!i.inHistory&&i.flag===Pn.None&&i.pk!==this.currentServerPk&&!i.customName&&!i.personalNote&&e.push(i.pk)}),e.forEach(i=>{this.serversMap.delete(i)})}saveData(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);if(i&&(e=JSON.parse(i).version),e!==this.savedDataVersion)return void this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"storage"}});this.savedDataVersion+=1;const o={version:this.savedDataVersion,serverList:Array.from(this.serversMap.values()),selectedServerPk:this.currentServerPk},s=JSON.stringify(o);this.storageService.setDataForHv(this.savedServersStorageKey,s),this.launchListEvents()}checkIfDataWasChanged(){let e=0;const i=this.storageService.getDataForHv(this.savedServersStorageKey);i&&(e=JSON.parse(i).version),e!==this.savedDataVersion&&this.initialize()}launchListEvents(){const e=[],i=[],o=[];this.serversMap.forEach(s=>{s.inHistory&&e.push(s),s.flag===Pn.Favorite&&i.push(s),s.flag===Pn.Blocked&&o.push(s)}),this.historySubject.next(e),this.favoritesSubject.next(i),this.blockedSubject.next(o)}updateCurrentServerPk(e){this.currentServerPk=e,this.currentServerSubject.next(this.currentServer)}}return t.\u0275fac=function(e){return new(e||t)(we(hn),we(Ji))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var on=(()=>((on=on||{}).Stopped="stopped",on.Connecting="Connecting",on.Running="Running",on.ShuttingDown="Shutting down",on.Reconnecting="Connection failed, reconnecting",on))();class nZ{constructor(){this.updateDate=Date.now()}}class iZ{}class rZ{constructor(){this.latency=0,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.connectionDuration=0,this.error=""}}var jn=(()=>((jn=jn||{})[jn.PerformingInitialCheck=1]="PerformingInitialCheck",jn[jn.Off=10]="Off",jn[jn.Starting=20]="Starting",jn[jn.Running=100]="Running",jn[jn.Disconnecting=200]="Disconnecting",jn))(),yi=(()=>((yi=yi||{})[yi.Busy=1]="Busy",yi[yi.Ok=2]="Ok",yi[yi.MustStop=3]="MustStop",yi[yi.SamePkRunning=4]="SamePkRunning",yi[yi.SamePkStopped=5]="SamePkStopped",yi))();let oc=(()=>{class t{constructor(e,i,o,s,a,l,d){this.apiService=e,this.appsService=i,this.router=o,this.vpnSavedDataService=s,this.http=a,this.snackbarService=l,this.translateService=d,this.vpnClientAppName="vpn-client",this.standardWaitTime=2e3,this.stateSubject=new Or(null),this.errorSubject=new Or(!1),this.working=!0,this.requestedServer=null,this.requestedPassword=null,this.updatesStopped=!1,this.currentEventData=new nZ,this.currentEventData.busy=!0,this.lastServiceState=jn.PerformingInitialCheck}initialize(e){e&&(this.nodeKey?e!==this.nodeKey?this.router.navigate(["vpn","unavailable"],{queryParams:{problem:"pkChange"}}):this.updatesStopped&&(this.updatesStopped=!1,this.updateData()):(this.nodeKey=e,this.vpnSavedDataService.initialize(),this.updateData()))}get backendState(){return this.stateSubject.asObservable()}get errorsConnecting(){return this.errorSubject.asObservable()}updateData(){this.continuallyUpdateData(0)}start(){return!this.working&&this.lastServiceState<20&&(this.changeAppState(!0),!0)}stop(){return!this.working&&this.lastServiceState>=20&&this.lastServiceState<200&&(this.changeAppState(!1),!0)}getIpData(){return this.http.request("GET",window.location.protocol+"//ip.skycoin.com/").pipe(rf(e=>Ua(e.pipe(Ti(this.standardWaitTime),Kn(4)),Ar(""))),ke(e=>{let i="";i=e&&e.ip_address?e.ip_address:this.translateService.instant("common.unknown");let o="";return o=e&&e.country_name?e.country_name:this.translateService.instant("common.unknown"),[i,o]}))}changeServerUsingHistory(e,i){return this.requestedServer=e,this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerUsingDiscovery(e,i){return this.requestedServer=this.vpnSavedDataService.processFromDiscovery(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}changeServerManually(e,i){return this.requestedServer=this.vpnSavedDataService.processFromManual(e),this.requestedPassword=i,this.updateRequestedServerPasswordSetting(),this.changeServer()}updateRequestedServerPasswordSetting(){this.requestedServer.usedWithPassword=!!this.requestedPassword&&""!==this.requestedPassword;const e=this.vpnSavedDataService.getSavedVersion(this.requestedServer.pk,!0);e&&(e.usedWithPassword=this.requestedServer.usedWithPassword,this.vpnSavedDataService.updateServer(e))}changeServer(){return!this.working&&(this.stop()||this.processServerChange(),!0)}checkNewPk(e){return this.working?yi.Busy:this.lastServiceState!==jn.Off?e===this.vpnSavedDataService.currentServer.pk?yi.SamePkRunning:yi.MustStop:this.vpnSavedDataService.currentServer&&e===this.vpnSavedDataService.currentServer.pk?yi.SamePkStopped:yi.Ok}processServerChange(){this.dataSubscription&&this.dataSubscription.unsubscribe();const e={pk:this.requestedServer.pk};e.passcode=this.requestedPassword?this.requestedPassword:"",this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,e).subscribe(()=>{this.vpnSavedDataService.modifyCurrentServer(this.requestedServer),this.requestedServer=null,this.requestedPassword=null,this.working=!1,this.start()},i=>{i=en(i),this.snackbarService.showError("vpn.server-change.backend-error",null,!1,i.originalServerErrorMsg),this.working=!1,this.requestedServer=null,this.requestedPassword=null,this.sendUpdate(),this.updateData()})}changeAppState(e){if(this.working)return;this.stopContinuallyUpdatingData(),this.working=!0,this.sendUpdate();const i={status:1};e?(this.lastServiceState=jn.Starting,this.connectionHistoryPk=null):(this.lastServiceState=jn.Disconnecting,i.status=0),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=this.appsService.changeAppSettings(this.nodeKey,this.vpnClientAppName,i).pipe(Co(o=>this.getVpnClientState().pipe(Ye(s=>{if(s){if(e&&s.running)return $e(!0);if(!e&&!s.running)return $e(!0)}return Ar(o)}))),rf(o=>Ua(o.pipe(Ti(this.standardWaitTime),Kn(3)),o.pipe(Ye(s=>Ar(s)))))).subscribe(o=>{this.working=!1;const s=this.processAppData(o);this.lastServiceState=s.running?jn.Running:jn.Off,this.currentEventData.vpnClientAppData=s,this.currentEventData.updateDate=Date.now(),this.sendUpdate(),this.updateData(),!e&&this.requestedServer&&this.processServerChange()},o=>{o=en(o),this.snackbarService.showError(this.lastServiceState===jn.Starting?"vpn.status-page.problem-starting-error":this.lastServiceState===jn.Disconnecting?"vpn.status-page.problem-stopping-error":"vpn.status-page.generic-problem-error",null,!1,o.originalServerErrorMsg),this.working=!1,this.sendUpdate(),this.updateData()})}continuallyUpdateData(e){if(this.working&&this.lastServiceState!==jn.PerformingInitialCheck)return;this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe();let i=0;this.continuousUpdateSubscription=$e(0).pipe(Ti(e),Ye(()=>this.getVpnClientState()),rf(o=>o.pipe(Ye(s=>(this.errorSubject.next(!0),(s=en(s)).originalError&&s.originalError.status&&401===s.originalError.status?Ar(s):this.lastServiceState!==jn.PerformingInitialCheck||i<4?(i+=1,$e(s).pipe(Ti(this.standardWaitTime))):Ar(s)))))).subscribe(o=>{o?(this.errorSubject.next(!1),this.lastServiceState===jn.PerformingInitialCheck&&(this.working=!1),this.vpnSavedDataService.compareCurrentServer(o.serverPk),this.lastServiceState=o.running?jn.Running:jn.Off,this.currentEventData.vpnClientAppData=o,this.currentEventData.updateDate=Date.now(),this.sendUpdate()):this.lastServiceState===jn.PerformingInitialCheck&&(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null,this.updatesStopped=!0),this.continuallyUpdateData(this.standardWaitTime)},o=>{(o=en(o)).originalError&&o.originalError.status&&401===o.originalError.status||(this.router.navigate(["vpn","unavailable"]),this.nodeKey=null),this.updatesStopped=!0})}stopContinuallyUpdatingData(){this.continuousUpdateSubscription&&this.continuousUpdateSubscription.unsubscribe()}getVpnClientState(){let e;const i=new Ql;return i.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/summary`,i).pipe(Ye(o=>{let s;if(o&&o.overview&&o.overview.apps&&o.overview.apps.length>0&&o.overview.apps.forEach(a=>{a.name===this.vpnClientAppName&&(s=a)}),s&&(e=this.processAppData(s)),e.minHops=o.min_hops?o.min_hops:0,e&&e.running){const a=new Ql;return a.vpnKeyForAuth=this.nodeKey,this.apiService.get(`visors/${this.nodeKey}/apps/${this.vpnClientAppName}/connections`,a)}return $e(null)}),ke(o=>{if(o&&o.length>0){const s=new rZ;o.forEach(a=>{s.latency+=a.latency/o.length,s.uploadSpeed+=a.upload_speed/o.length,s.downloadSpeed+=a.download_speed/o.length,s.totalUploaded+=a.bandwidth_sent,s.totalDownloaded+=a.bandwidth_received,a.error&&(s.error=a.error),a.connection_duration>s.connectionDuration&&(s.connectionDuration=a.connection_duration)}),(!this.connectionHistoryPk||this.connectionHistoryPk!==e.serverPk)&&(this.connectionHistoryPk=e.serverPk,this.uploadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.downloadSpeedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0]),s.latency=Math.round(s.latency),s.uploadSpeed=Math.round(s.uploadSpeed),s.downloadSpeed=Math.round(s.downloadSpeed),s.totalUploaded=Math.round(s.totalUploaded),s.totalDownloaded=Math.round(s.totalDownloaded),this.uploadSpeedHistory.splice(0,1),this.uploadSpeedHistory.push(s.uploadSpeed),s.uploadSpeedHistory=this.uploadSpeedHistory,this.downloadSpeedHistory.splice(0,1),this.downloadSpeedHistory.push(s.downloadSpeed),s.downloadSpeedHistory=this.downloadSpeedHistory,this.latencyHistory.splice(0,1),this.latencyHistory.push(s.latency),s.latencyHistory=this.latencyHistory,e.connectionData=s}return e}))}processAppData(e){const i=new iZ;if(i.running=0!==e.status&&2!==e.status,i.connectionDuration=e.connection_duration,i.appState=on.Stopped,i.running?e.detailed_status===on.Connecting||3===e.status?i.appState=on.Connecting:e.detailed_status===on.Running?i.appState=on.Running:e.detailed_status===on.ShuttingDown?i.appState=on.ShuttingDown:e.detailed_status===on.Reconnecting&&(i.appState=on.Reconnecting):2===e.status&&(i.lastErrorMsg=e.detailed_status,i.lastErrorMsg||(i.lastErrorMsg=this.translateService.instant("vpn.status-page.unknown-error"))),i.killswitch=!1,e.args&&e.args.length>0)for(let o=0;o{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=s,this.vpnSavedDataService=a}ngOnInit(){this.form=this.formBuilder.group({value:[(this.data.editName?this.data.server.customName:this.data.server.personalNote)||""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){let e=this.vpnSavedDataService.getSavedVersion(this.data.server.pk,!0);e=e||this.data.server;const i=this.form.get("value").value;i!==(this.data.editName?this.data.server.customName:this.data.server.personalNote)?(this.data.editName?e.customName=i:e.personalNote=i,this.vpnSavedDataService.updateServer(e),this.snackbarService.showDone("vpn.server-options.edit-value.changes-made-confirmation"),this.dialogRef.close(!0)):this.dialogRef.close()}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr),Y(Dn),Y(rc))},t.\u0275cmp=Ze({type:t,selectors:[["app-edit-vpn-server-value"]],viewQuery:function(e,i){if(1&e&&_t(oZ,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","value","maxlength","100","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"action"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return i.process()}),I(11),R(12,"translate"),C()()),2&e&&(w("headline",H(1,5,"vpn.server-options.edit-value."+(i.data.editName?"name":"note")+"-title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,7,"vpn.server-options.edit-value."+(i.data.editName?"name":"note")+"-label")),c(5),ce(" ",H(12,9,"vpn.server-options.edit-value.apply-button")," "))},dependencies:[zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,Ui,ei,wt]}),t})();const aZ=["firstInput"];let JI=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.mediumModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({password:["",this.data?void 0:Gt.required]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){this.dialogRef.close("-"+this.form.get("password").value)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-enter-vpn-server-password"]],viewQuery:function(e,i){if(1&e&&_t(aZ,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:13,vars:12,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","password","type","password","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return i.process()}),I(11),R(12,"translate"),C()()),2&e&&(w("headline",H(1,6,"vpn.server-list.password-dialog.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,8,"vpn.server-list.password-dialog.password"+(i.data?"-if-any":"")+"-label")),c(4),w("disabled",!i.form.valid),c(1),ce(" ",H(12,10,"vpn.server-list.password-dialog.continue-button")," "))},dependencies:[zi,Bi,Vi,ji,ii,Ei,ar,kr,Ui,ei,wt]}),t})(),lr=(()=>{class t{static changeCurrentPk(e){this.currentPk=e}static setDefaultTabForServerList(e){sessionStorage.setItem(t.serverListTabStorageKey,e)}static get vpnTabsData(){const e=sessionStorage.getItem(t.serverListTabStorageKey);return[{icon:"power_settings_new",label:"vpn.start",linkParts:["/vpn",this.currentPk,"status"]},{icon:"list",label:"vpn.servers",linkParts:e?["/vpn",this.currentPk,"servers",e,"1"]:["/vpn",this.currentPk,"servers"]},{icon:"settings",label:"vpn.settings",linkParts:["/vpn",this.currentPk,"settings"]}]}static getLatencyValueString(e){return e<1e3?"time-in-ms":"time-in-segs"}static getPrintableLatency(e){return e<1e3?e+"":(e/1e3).toFixed(1)}static processServerChange(e,i,o,s,a,l,d,_,E,F,G){let ie;if(_&&(E||F)||E&&(_||F)||F&&(_||E))throw new Error("Invalid call");if(_)ie=_.pk;else if(E)ie=E.pk;else{if(!F)throw new Error("Invalid call");ie=F.pk}const _e=o.getSavedVersion(ie,!0),Ce=_e&&(G||_e.usedWithPassword),Ae=i.checkNewPk(ie);if(Ae!==yi.Busy)if(Ae!==yi.SamePkRunning||Ce)if(Ae===yi.MustStop||Ae===yi.SamePkRunning&&Ce){const ze=Jt.createConfirmationDialog(a,"vpn.server-change.change-server-while-connected-confirmation");ze.componentInstance.operationAccepted.subscribe(()=>{ze.componentInstance.closeModal(),_?i.changeServerUsingHistory(_,G):E?i.changeServerUsingDiscovery(E,G):F&&i.changeServerManually(F,G),t.redirectAfterServerChange(e,l,d)})}else if(Ae!==yi.SamePkStopped||Ce)_?i.changeServerUsingHistory(_,G):E?i.changeServerUsingDiscovery(E,G):F&&i.changeServerManually(F,G),t.redirectAfterServerChange(e,l,d);else{const ze=Jt.createConfirmationDialog(a,"vpn.server-change.start-same-server-confirmation");ze.componentInstance.operationAccepted.subscribe(()=>{ze.componentInstance.closeModal(),F&&_e&&o.processFromManual(F),i.start(),t.redirectAfterServerChange(e,l,d)})}else s.showWarning("vpn.server-change.already-selected-warning");else s.showError("vpn.server-change.busy-error")}static redirectAfterServerChange(e,i,o){i&&i.close(),e.navigate(["vpn",o,"status"])}static openServerOptions(e,i,o,s,a,l){const d=[],_=[];return e.usedWithPassword?(d.push({icon:"lock_open",label:"vpn.server-options.connect-without-password"}),_.push(201),d.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-another-password"}),_.push(202)):e.enteredManually&&(d.push({icon:"lock_outlined",label:"vpn.server-options.connect-using-password"}),_.push(202)),d.push({icon:"edit",label:"vpn.server-options.edit-name"}),_.push(101),d.push({icon:"subject",label:"vpn.server-options.edit-label"}),_.push(102),(!e||e.flag!==Pn.Favorite)&&(d.push({icon:"star",label:"vpn.server-options.make-favorite"}),_.push(1)),e&&e.flag===Pn.Favorite&&(d.push({icon:"star_outline",label:"vpn.server-options.remove-from-favorites"}),_.push(-1)),(!e||e.flag!==Pn.Blocked)&&(d.push({icon:"pan_tool",label:"vpn.server-options.block"}),_.push(2)),e&&e.flag===Pn.Blocked&&(d.push({icon:"thumb_up",label:"vpn.server-options.unblock"}),_.push(-2)),e&&e.inHistory&&(d.push({icon:"delete",label:"vpn.server-options.remove-from-history"}),_.push(-3)),qr.openDialog(l,d,"common.options").afterClosed().pipe(Ye(E=>{if(E){const F=o.getSavedVersion(e.pk,!0);if(e=F||e,_[E-=1]>200){if(201===_[E]){let G=!1;const ie=Jt.createConfirmationDialog(l,"vpn.server-options.connect-without-password-confirmation");return ie.componentInstance.operationAccepted.subscribe(()=>{G=!0,t.processServerChange(i,s,o,a,l,null,t.currentPk,e,null,null,null),ie.componentInstance.closeModal()}),ie.afterClosed().pipe(ke(()=>G))}return JI.openDialog(l,!1).afterClosed().pipe(ke(G=>!(!G||"-"===G||(t.processServerChange(i,s,o,a,l,null,t.currentPk,e,null,null,G.substr(1)),0))))}if(_[E]>100)return sZ.openDialog(l,{editName:101===_[E],server:e}).afterClosed();if(1===_[E])return t.makeFavorite(e,o,a,l);if(-1===_[E])return o.changeFlag(e,Pn.None),a.showDone("vpn.server-options.remove-from-favorites-done"),$e(!0);if(2===_[E])return t.blockServer(e,o,s,a,l);if(-2===_[E])return o.changeFlag(e,Pn.None),a.showDone("vpn.server-options.unblock-done"),$e(!0);if(-3===_[E])return t.removeFromHistory(e,o,a,l)}return $e(!1)}))}static removeFromHistory(e,i,o,s){let a=!1;const l=Jt.createConfirmationDialog(s,"vpn.server-options.remove-from-history-confirmation");return l.componentInstance.operationAccepted.subscribe(()=>{a=!0,i.removeFromHistory(e.pk),o.showDone("vpn.server-options.remove-from-history-done"),l.componentInstance.closeModal()}),l.afterClosed().pipe(ke(()=>a))}static makeFavorite(e,i,o,s){if(e.flag!==Pn.Blocked)return i.changeFlag(e,Pn.Favorite),o.showDone("vpn.server-options.make-favorite-done"),$e(!0);let a=!1;const l=Jt.createConfirmationDialog(s,"vpn.server-options.make-favorite-confirmation");return l.componentInstance.operationAccepted.subscribe(()=>{a=!0,i.changeFlag(e,Pn.Favorite),o.showDone("vpn.server-options.make-favorite-done"),l.componentInstance.closeModal()}),l.afterClosed().pipe(ke(()=>a))}static blockServer(e,i,o,s,a){if(e.flag!==Pn.Favorite&&(!i.currentServer||i.currentServer.pk!==e.pk))return i.changeFlag(e,Pn.Blocked),s.showDone("vpn.server-options.block-done"),$e(!0);let l=!1;const d=i.currentServer&&i.currentServer.pk===e.pk;let _;_=e.flag!==Pn.Favorite?"vpn.server-options.block-selected-confirmation":d?"vpn.server-options.block-selected-favorite-confirmation":"vpn.server-options.block-confirmation";const E=Jt.createConfirmationDialog(a,_);return E.componentInstance.operationAccepted.subscribe(()=>{l=!0,i.changeFlag(e,Pn.Blocked),s.showDone("vpn.server-options.block-done"),d&&o.stop(),E.componentInstance.closeModal()}),E.afterClosed().pipe(ke(()=>l))}}return t.serverListTabStorageKey="ServerListTab",t.currentPk="",t})();var cr=(()=>((cr=cr||{})[cr.Seconds=0]="Seconds",cr[cr.Minutes=1]="Minutes",cr[cr.Hours=2]="Hours",cr[cr.Days=3]="Days",cr[cr.Weeks=4]="Weeks",cr))();class lZ{}class Pg{static getElapsedTime(n){const e=new lZ;e.timeRepresentation=cr.Seconds,e.totalMinutes=Math.floor(n/60).toString(),e.translationVarName="second";let i=1;n>=60&&n<3600?(e.timeRepresentation=cr.Minutes,i=60,e.translationVarName="minute"):n>=3600&&n<86400?(e.timeRepresentation=cr.Hours,i=3600,e.translationVarName="hour"):n>=86400&&n<604800?(e.timeRepresentation=cr.Days,i=86400,e.translationVarName="day"):n>=604800&&(e.timeRepresentation=cr.Weeks,i=604800,e.translationVarName="week");const o=Math.floor(n/i);return e.elapsedTime=o.toString(),(e.timeRepresentation===cr.Seconds||o>1)&&(e.translationVarName=e.translationVarName+"s"),e}}function cZ(t,n){1&t&&xe(0,"mat-spinner",6),2&t&&w("diameter",14)}function dZ(t,n){1&t&&xe(0,"mat-spinner",7),2&t&&w("diameter",18)}function uZ(t,n){1&t&&(D(0,"mat-icon",10),I(1,"refresh"),C()),2&t&&w("inline",!0)}function hZ(t,n){1&t&&(D(0,"mat-icon",11),I(1,"warning"),C()),2&t&&w("inline",!0)}function fZ(t,n){if(1&t&&(Ue(0),V(1,uZ,2,1,"mat-icon",8),V(2,hZ,2,1,"mat-icon",9),We()),2&t){const e=z();c(1),w("ngIf",!e.showAlert),c(1),w("ngIf",e.showAlert)}}const QI=function(t){return{time:t}};function pZ(t,n){if(1&t&&(D(0,"span",12),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),se(kt(2,1,"refresh-button."+e.elapsedTime.translationVarName,He(4,QI,e.elapsedTime.elapsedTime)))}}const mZ=function(t){return{"grey-button-background":t}};let gZ=(()=>{class t{constructor(){this.refeshRate=-1}set secondsSinceLastUpdate(e){this.elapsedTime=Pg.getElapsedTime(e)}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-refresh-button"]],inputs:{secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate"},decls:7,vars:14,consts:[["mat-button","",1,"time-button","subtle-transparent-button","white-theme",3,"disabled","ngClass","matTooltip"],[1,"internal-container"],["class","icon d-none d-md-inline-block",3,"diameter",4,"ngIf"],["class","icon d-md-none",3,"diameter",4,"ngIf"],[4,"ngIf"],["class","d-none d-md-inline",4,"ngIf"],[1,"icon","d-none","d-md-inline-block",3,"diameter"],[1,"icon","d-md-none",3,"diameter"],["class","icon",3,"inline",4,"ngIf"],["class","icon alert",3,"inline",4,"ngIf"],[1,"icon",3,"inline"],[1,"icon","alert",3,"inline"],[1,"d-none","d-md-inline"]],template:function(e,i){1&e&&(D(0,"button",0),R(1,"translate"),D(2,"div",1),V(3,cZ,1,1,"mat-spinner",2),V(4,dZ,1,1,"mat-spinner",3),V(5,fZ,3,2,"ng-container",4),V(6,pZ,3,6,"span",5),C()()),2&e&&(w("disabled",i.showLoading)("ngClass",He(10,mZ,!i.showLoading))("matTooltip",i.showAlert?kt(1,7,"refresh-button.error-tooltip",He(12,QI,i.refeshRate)):""),c(3),w("ngIf",i.showLoading),c(1),w("ngIf",i.showLoading),c(1),w("ngIf",!i.showLoading),c(1),w("ngIf",i.elapsedTime))},dependencies:[Nn,Ft,Wr,Cn,vi,ec,wt],styles:[".time-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;height:40px}.time-button[disabled][_ngcontent-%COMP%]{opacity:.7!important;color:#f8f9f9}.time-button[disabled][_ngcontent-%COMP%] span[_ngcontent-%COMP%]{opacity:.7}.time-button[_ngcontent-%COMP%] .internal-container[_ngcontent-%COMP%]{display:flex;align-items:center}.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:16px;margin-right:5px;opacity:.5;display:inline-block}@media (max-width: 767px){.time-button[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{font-size:22px;margin-right:0;opacity:.75}}.time-button[_ngcontent-%COMP%] .alert[_ngcontent-%COMP%]{color:orange;opacity:1}.time-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:.6rem}"]}),t})(),sf=(()=>{class t{transform(e,i){let s,o=!0;i?i.showPerSecond?i.useBits?(s=t.measurementsPerSecInBits,o=!1):s=t.measurementsPerSec:i.useBits?(s=t.accumulatedMeasurementsInBits,o=!1):s=t.accumulatedMeasurements:s=t.accumulatedMeasurements;let a=new F1.BigNumber(e);o||(a=a.multipliedBy(8));let l=s[0],d=0;for(;a.dividedBy(1024).isGreaterThan(1);)a=a.dividedBy(1024),d+=1,l=s[d];let _="";return(!i||i.showValue)&&(_=i&&i.limitDecimals?new F1.BigNumber(a).decimalPlaces(1).toString():a.toFixed(2)),(!i||i.showValue&&i.showUnit)&&(_+=" "),(!i||i.showUnit)&&(_+=l),_}}return t.accumulatedMeasurements=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],t.measurementsPerSec=["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"],t.accumulatedMeasurementsInBits=["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"],t.measurementsPerSecInBits=["b/s","Kb/s","Mb/s","Gb/s","Tb/s","Pb/s","Eb/s","Zb/s","Yb/s"],t.\u0275fac=function(e){return new(e||t)},t.\u0275pipe=ur({name:"autoScale",type:t,pure:!0}),t})();function _Z(t,n){if(1&t){const e=et();D(0,"button",23),ye("click",function(){return Pe(e),Oe(z().requestAction(null))}),D(1,"mat-icon"),I(2,"chevron_left"),C()()}}function bZ(t,n){1&t&&(Ue(0),xe(1,"img",24),We())}function vZ(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z();c(1),ce(" ",H(2,1,e.titleParts[e.titleParts.length-1])," ")}}const yZ=function(t){return{transparent:t}};function MZ(t,n){if(1&t){const e=et();Ue(0),D(1,"div",26),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).requestAction(s.actionName))}),D(2,"mat-icon",27),I(3),C(),I(4),R(5,"translate"),C(),We()}if(2&t){const e=n.$implicit;c(1),w("disabled",e.disabled),c(1),w("ngClass",He(6,yZ,e.disabled)),c(1),se(e.icon),c(1),ce(" ",H(5,4,e.name)," ")}}function wZ(t,n){1&t&&xe(0,"div",28)}function CZ(t,n){if(1&t&&(Ue(0),V(1,MZ,6,8,"ng-container",25),V(2,wZ,1,0,"div",9),We()),2&t){const e=z();c(1),w("ngForOf",e.optionsData),c(1),w("ngIf",e.returnText)}}function xZ(t,n){1&t&&xe(0,"div",28)}function kZ(t,n){1&t&&xe(0,"img",31),2&t&&w("src","assets/img/lang/"+z(2).language.iconName,Vo)}function SZ(t,n){if(1&t){const e=et();D(0,"div",29),ye("click",function(){return Pe(e),Oe(z().openLanguageWindow())}),V(1,kZ,1,1,"img",30),I(2),R(3,"translate"),C()}if(2&t){const e=z();c(1),w("ngIf",e.language),c(1),ce(" ",H(3,2,e.language?e.language.name:"")," ")}}function DZ(t,n){if(1&t){const e=et();D(0,"div",32)(1,"a",33),ye("click",function(){return Pe(e),Oe(z().requestAction(null))}),R(2,"translate"),D(3,"mat-icon",34),I(4,"chevron_left"),C()()()}if(2&t){const e=z();c(1),w("matTooltip",H(2,2,e.returnText)),c(2),w("inline",!0)}}function TZ(t,n){if(1&t&&(D(0,"span",35),I(1),R(2,"translate"),C()),2&t){const e=z();c(1),ce(" ",H(2,1,e.titleParts[e.titleParts.length-1])," ")}}function LZ(t,n){1&t&&xe(0,"img",36)}const EZ=function(t,n){return{"d-lg-none":t,"d-none d-md-inline-block":n}},eP=function(t,n){return{"mouse-disabled":t,"grey-button-background":n}};function IZ(t,n){if(1&t&&(D(0,"div",27)(1,"a",37)(2,"mat-icon",34),I(3),C(),D(4,"span"),I(5),R(6,"translate"),C()()()),2&t){const e=n.$implicit,i=n.index,o=z();w("ngClass",mn(9,EZ,e.onlyIfLessThanLg,1!==o.tabsData.length)),c(1),w("disabled",i===o.selectedTabIndex)("routerLink",e.linkParts)("ngClass",mn(12,eP,o.disableMouse,!o.disableMouse&&i!==o.selectedTabIndex)),c(1),w("inline",!0),c(1),se(e.icon),c(2),se(H(6,7,e.label))}}const PZ=function(t){return{"d-none":t}};function OZ(t,n){if(1&t){const e=et();D(0,"div",38)(1,"button",39),ye("click",function(){return Pe(e),Oe(z().openTabSelector())}),D(2,"div",40)(3,"mat-icon",34),I(4),C(),D(5,"span"),I(6),R(7,"translate"),C(),D(8,"mat-icon",34),I(9,"keyboard_arrow_down"),C()()()()}if(2&t){const e=z();w("ngClass",He(8,PZ,1===e.tabsData.length)),c(1),w("ngClass",mn(10,eP,e.disableMouse,!e.disableMouse)),c(2),w("inline",!0),c(1),se(e.tabsData[e.selectedTabIndex].icon),c(2),se(H(7,6,e.tabsData[e.selectedTabIndex].label)),c(2),w("inline",!0)}}function AZ(t,n){if(1&t){const e=et();D(0,"app-refresh-button",45),ye("click",function(){return Pe(e),Oe(z(2).sendRefreshEvent())}),C()}if(2&t){const e=z(2);w("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.showLoading)("showAlert",e.showAlert)("refeshRate",e.refeshRate)}}function FZ(t,n){if(1&t&&(D(0,"div",41),V(1,AZ,1,4,"app-refresh-button",42),D(2,"button",43)(3,"div",44)(4,"mat-icon",34),I(5,"menu"),C()()()()),2&t){const e=z(),i=ci(12);c(1),w("ngIf",e.showUpdateButton),c(1),w("matMenuTriggerFor",i),c(2),w("inline",!0)}}function RZ(t,n){if(1&t){const e=et();D(0,"div",53)(1,"div",54),ye("click",function(){return Pe(e),Oe(z(2).openLanguageWindow())}),xe(2,"img",55),I(3),R(4,"translate"),C()()}if(2&t){const e=z(2);c(2),w("src","assets/img/lang/"+e.language.iconName,Vo),c(1),ce(" ",H(4,2,e.language?e.language.name:"")," ")}}function NZ(t,n){1&t&&(D(0,"div",56),R(1,"translate"),D(2,"mat-icon",34),I(3,"warning"),C(),I(4),R(5,"translate"),C()),2&t&&(w("matTooltip",H(1,3,"vpn.connection-error.info")),c(2),w("inline",!0),c(2),ce(" ",H(5,5,"vpn.connection-error.text")," "))}function YZ(t,n){1&t&&(D(0,"div",63)(1,"mat-icon",61),I(2,"brightness_1"),C()()),2&t&&(c(1),w("inline",!0))}const HZ=function(t,n){return{"animation-container":t,"d-none":n}},BZ=function(t){return{time:t}},tP=function(t){return{showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t}};function VZ(t,n){if(1&t&&(D(0,"table",57)(1,"tr")(2,"td",58),R(3,"translate"),D(4,"div",27)(5,"div",59)(6,"div",60)(7,"mat-icon",61),I(8,"brightness_1"),C(),I(9),R(10,"translate"),C()()(),V(11,YZ,3,1,"div",62),D(12,"mat-icon",61),I(13,"brightness_1"),C(),I(14),R(15,"translate"),C(),D(16,"td",58),R(17,"translate"),D(18,"mat-icon",34),I(19,"swap_horiz"),C(),I(20),R(21,"translate"),C()(),D(22,"tr")(23,"td",58),R(24,"translate"),D(25,"mat-icon",34),I(26,"arrow_upward"),C(),I(27),R(28,"autoScale"),C(),D(29,"td",58),R(30,"translate"),D(31,"mat-icon",34),I(32,"arrow_downward"),C(),I(33),R(34,"autoScale"),C()()()),2&t){const e=z(2);c(2),eo(e.vpnData.stateClass+" state-td"),w("matTooltip",H(3,18,e.vpnData.state+"-info")),c(2),w("ngClass",mn(39,HZ,e.showVpnStateAnimation,!e.showVpnStateAnimation)),c(3),w("inline",!0),c(2),ce(" ",H(10,20,e.vpnData.state)," "),c(2),w("ngIf",e.showVpnStateAnimatedDot),c(1),w("inline",!0),c(2),ce(" ",H(15,22,e.vpnData.state)," "),c(2),w("matTooltip",H(17,24,"vpn.connection-info.latency-info")),c(2),w("inline",!0),c(2),ce(" ",kt(21,26,"common."+e.getLatencyValueString(e.vpnData.latency),He(42,BZ,e.getPrintableLatency(e.vpnData.latency)))," "),c(3),w("matTooltip",H(24,29,"vpn.connection-info.upload-info")),c(2),w("inline",!0),c(2),ce(" ",kt(28,31,e.vpnData.uploadSpeed,He(44,tP,e.showVpnDataStatsInBits))," "),c(2),w("matTooltip",H(30,34,"vpn.connection-info.download-info")),c(2),w("inline",!0),c(2),ce(" ",kt(34,36,e.vpnData.downloadSpeed,He(46,tP,e.showVpnDataStatsInBits))," ")}}function jZ(t,n){1&t&&xe(0,"mat-spinner",64),2&t&&w("diameter",20)}function zZ(t,n){if(1&t&&(D(0,"div")(1,"div",46),V(2,RZ,5,4,"div",47),xe(3,"div",48),V(4,NZ,6,7,"div",49),C(),D(5,"div",50),V(6,VZ,35,48,"table",51),V(7,jZ,1,1,"mat-spinner",52),C()()),2&t){const e=z();c(2),w("ngIf",!e.hideLanguageButton&&e.language),c(2),w("ngIf",e.errorsConnectingToVpn),c(2),w("ngIf",e.vpnData),c(1),w("ngIf",!e.vpnData)}}function UZ(t,n){1&t&&(D(0,"div",65)(1,"div",66)(2,"mat-icon",34),I(3,"error_outline"),C(),I(4),R(5,"translate"),C(),D(6,"div",67),I(7),R(8,"translate"),C()()),2&t&&(c(2),w("inline",!0),c(2),ce(" ",H(5,3,"vpn.remote-access-title")," "),c(3),ce(" ",H(8,5,"vpn.remote-access-text")," "))}const nP=function(t,n){return{"d-lg-none":t,"d-none":n}},WZ=function(t){return{"normal-height":t}},$Z=function(t,n){return{"d-none d-lg-flex":t,"d-flex":n}};let sc=(()=>{class t{set localVpnKey(e){this.localVpnKeyInternal=e,e?this.startGettingVpnInfo():this.stopGettingVpnInfo()}constructor(e,i,o,s,a){this.languageService=e,this.dialog=i,this.router=o,this.vpnClientService=s,this.vpnSavedDataService=a,this.disableMouse=!1,this.selectedTabIndex=0,this.refeshRate=-1,this.showUpdateButton=!0,this.localVpnKeyInternal="",this.refreshRequested=new ht,this.optionSelected=new ht,this.hideLanguageButton=!0,this.showVpnInfo=!1,this.initialVpnStateObtained=!1,this.lastVpnState="",this.showVpnStateAnimation=!1,this.showVpnStateAnimatedDot=!0,this.showVpnDataStatsInBits=!0,this.remoteAccess=!1,this.errorsConnectingToVpn=!1,this.langSubscriptionsGroup=[]}ngOnInit(){this.langSubscriptionsGroup.push(this.languageService.currentLanguage.subscribe(i=>{this.language=i})),this.langSubscriptionsGroup.push(this.languageService.languages.subscribe(i=>{this.hideLanguageButton=!(i.length>1)}));const e=window.location.hostname;!e.toLowerCase().includes("localhost")&&!e.toLowerCase().includes("127.0.0.1")&&(this.remoteAccess=!0)}ngOnDestroy(){this.langSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.refreshRequested.complete(),this.optionSelected.complete(),this.stopGettingVpnInfo()}startGettingVpnInfo(){this.showVpnInfo=!0,this.vpnClientService.initialize(this.localVpnKeyInternal),this.updateVpnDataStatsUnit(),this.vpnDataSubscription=this.vpnClientService.backendState.subscribe(e=>{e&&(this.vpnData={state:"",stateClass:"",latency:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.latency:0,downloadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.downloadSpeed:0,uploadSpeed:e.vpnClientAppData.connectionData?e.vpnClientAppData.connectionData.uploadSpeed:0},e.vpnClientAppData.appState===on.Stopped?(this.vpnData.state="vpn.connection-info.state-disconnected",this.vpnData.stateClass="red-clear-text"):e.vpnClientAppData.appState===on.Connecting?(this.vpnData.state="vpn.connection-info.state-connecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===on.Running?(this.vpnData.state="vpn.connection-info.state-connected",this.vpnData.stateClass="green-clear-text"):e.vpnClientAppData.appState===on.ShuttingDown?(this.vpnData.state="vpn.connection-info.state-disconnecting",this.vpnData.stateClass="yellow-clear-text"):e.vpnClientAppData.appState===on.Reconnecting&&(this.vpnData.state="vpn.connection-info.state-reconnecting",this.vpnData.stateClass="yellow-clear-text"),this.initialVpnStateObtained?this.lastVpnState!==this.vpnData.state&&(this.lastVpnState=this.vpnData.state,this.showVpnStateAnimation=!1,this.showVpnStateChangeAnimationSubscription&&this.showVpnStateChangeAnimationSubscription.unsubscribe(),this.showVpnStateChangeAnimationSubscription=$e(0).pipe(Ti(1)).subscribe(()=>this.showVpnStateAnimation=!0)):(this.initialVpnStateObtained=!0,this.lastVpnState=this.vpnData.state),this.showVpnStateAnimatedDot=!1,this.showVpnStateAnimatedDotSubscription&&this.showVpnStateAnimatedDotSubscription.unsubscribe(),this.showVpnStateAnimatedDotSubscription=$e(0).pipe(Ti(1)).subscribe(()=>this.showVpnStateAnimatedDot=!0))}),this.errorsConnectingToVpnSubscription=this.vpnClientService.errorsConnecting.subscribe(e=>{this.errorsConnectingToVpn=e})}stopGettingVpnInfo(){this.showVpnInfo=!1,this.vpnDataSubscription&&this.vpnDataSubscription.unsubscribe(),this.errorsConnectingToVpnSubscription&&this.errorsConnectingToVpnSubscription.unsubscribe()}getLatencyValueString(e){return lr.getLatencyValueString(e)}getPrintableLatency(e){return lr.getPrintableLatency(e)}requestAction(e){this.optionSelected.emit(e)}openLanguageWindow(){YI.openDialog(this.dialog)}sendRefreshEvent(){this.refreshRequested.emit()}openTabSelector(){const e=[];this.tabsData.forEach(i=>{e.push({label:i.label,icon:i.icon})}),qr.openDialog(this.dialog,e,"tabs-window.title").afterClosed().subscribe(i=>{i&&(i-=1)!==this.selectedTabIndex&&this.router.navigate(this.tabsData[i].linkParts)})}updateVpnDataStatsUnit(){const e=this.vpnSavedDataService.getDataUnitsSetting();this.showVpnDataStatsInBits=e===Sr.BitsSpeedAndBytesVolume||e===Sr.OnlyBits}}return t.\u0275fac=function(e){return new(e||t)(Y(gg),Y(In),Y(hn),Y(oc),Y(rc))},t.\u0275cmp=Ze({type:t,selectors:[["app-top-bar"]],inputs:{disableMouse:"disableMouse",titleParts:"titleParts",tabsData:"tabsData",selectedTabIndex:"selectedTabIndex",optionsData:"optionsData",returnText:"returnText",secondsSinceLastUpdate:"secondsSinceLastUpdate",showLoading:"showLoading",showAlert:"showAlert",refeshRate:"refeshRate",showUpdateButton:"showUpdateButton",localVpnKey:"localVpnKey"},outputs:{refreshRequested:"refreshRequested",optionSelected:"optionSelected"},decls:29,vars:31,consts:[[1,"top-bar",3,"ngClass"],[1,"button-container"],["mat-icon-button","","class","transparent-button",3,"click",4,"ngIf"],[1,"logo-container"],[4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"matMenuTriggerFor"],[1,"top-bar-margin",3,"ngClass"],[3,"overlapTrigger"],["menu","matMenu"],["class","menu-separator",4,"ngIf"],["mat-menu-item","",3,"click",4,"ngIf"],[1,"main-container",3,"ngClass"],[1,"main-area"],[1,"title",3,"ngClass"],["class","return-container",4,"ngIf"],["class","title-text",4,"ngIf"],["class","title-image","src","./assets/img/logo-vpn.png",4,"ngIf"],[1,"lower-container"],[3,"ngClass",4,"ngFor","ngForOf"],["class","d-md-none",3,"ngClass",4,"ngIf"],[1,"blank-space"],["class","right-container",4,"ngIf"],["class","remote-vpn-alert-container",4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"click"],["src","/assets/img/logo-s.png"],[4,"ngFor","ngForOf"],["mat-menu-item","",3,"disabled","click"],[3,"ngClass"],[1,"menu-separator"],["mat-menu-item","",3,"click"],["class","flag",3,"src",4,"ngIf"],[1,"flag",3,"src"],[1,"return-container"],[1,"return-button","transparent-button",3,"matTooltip","click"],[3,"inline"],[1,"title-text"],["src","./assets/img/logo-vpn.png",1,"title-image"],["mat-button","",1,"tab-button","white-theme",3,"disabled","routerLink","ngClass"],[1,"d-md-none",3,"ngClass"],["mat-button","",1,"tab-button","select-tab-button","white-theme",3,"ngClass","click"],[1,"d-flex"],[1,"right-container"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate","click",4,"ngIf"],["mat-button","",1,"menu-button","subtle-transparent-button","d-none","d-lg-block",3,"matMenuTriggerFor"],[1,"icon-container"],[3,"secondsSinceLastUpdate","showLoading","showAlert","refeshRate","click"],[1,"top-text-vpn-container"],["class","languaje-button-vpn",4,"ngIf"],[1,"elements-separator"],["class","connection-error-msg-vpn blinking",3,"matTooltip",4,"ngIf"],[1,"vpn-info","vpn-dark-box-radius"],["cellspacing","0","cellpadding","0",4,"ngIf"],[3,"diameter",4,"ngIf"],[1,"languaje-button-vpn"],[1,"text-container",3,"click"],[1,"language-flag",3,"src"],[1,"connection-error-msg-vpn","blinking",3,"matTooltip"],["cellspacing","0","cellpadding","0"],[3,"matTooltip"],[1,"internal-animation-container"],[1,"animation-area"],[1,"state-icon",3,"inline"],["class","aminated-state-icon-container",4,"ngIf"],[1,"aminated-state-icon-container"],[3,"diameter"],[1,"remote-vpn-alert-container"],[1,"top-line"],[1,"bottom-line"]],template:function(e,i){if(1&e&&(D(0,"div",0)(1,"div",1),V(2,_Z,3,0,"button",2),C(),D(3,"div",3),V(4,bZ,2,0,"ng-container",4),V(5,vZ,3,3,"ng-container",4),C(),D(6,"div",1)(7,"button",5)(8,"mat-icon"),I(9,"menu"),C()()()(),xe(10,"div",6),D(11,"mat-menu",7,8),V(13,CZ,3,2,"ng-container",4),V(14,xZ,1,0,"div",9),V(15,SZ,4,4,"div",10),C(),D(16,"div",11)(17,"div",12)(18,"div",13),V(19,DZ,5,4,"div",14),V(20,TZ,3,3,"span",15),V(21,LZ,1,0,"img",16),C(),D(22,"div",17),V(23,IZ,7,15,"div",18),V(24,OZ,10,13,"div",19),xe(25,"div",20),V(26,FZ,6,3,"div",21),C()(),V(27,zZ,8,4,"div",4),C(),V(28,UZ,9,7,"div",22)),2&e){const o=ci(12);w("ngClass",mn(20,nP,!i.showVpnInfo,i.showVpnInfo)),c(2),w("ngIf",i.returnText),c(2),w("ngIf",!i.titleParts||i.titleParts.length<2),c(1),w("ngIf",i.titleParts&&i.titleParts.length>=2),c(2),w("matMenuTriggerFor",o),c(3),w("ngClass",mn(23,nP,!i.showVpnInfo,i.showVpnInfo)),c(1),w("overlapTrigger",!1),c(2),w("ngIf",i.optionsData&&i.optionsData.length>=1),c(1),w("ngIf",!i.hideLanguageButton&&i.optionsData&&i.optionsData.length>=1),c(1),w("ngIf",!i.hideLanguageButton),c(1),w("ngClass",He(26,WZ,!i.showVpnInfo)),c(2),w("ngClass",mn(28,$Z,!i.showVpnInfo,i.showVpnInfo)),c(1),w("ngIf",i.returnText),c(1),w("ngIf",!i.showVpnInfo),c(1),w("ngIf",i.showVpnInfo),c(2),w("ngForOf",i.tabsData),c(1),w("ngIf",i.tabsData&&i.tabsData[i.selectedTabIndex]),c(2),w("ngIf",!i.showVpnInfo),c(1),w("ngIf",i.showVpnInfo),c(1),w("ngIf",i.showVpnInfo&&i.remoteAccess)}},dependencies:[Nn,gi,Ft,qa,FU,Wr,el,Cn,vi,Yd,pa,Hd,ec,gZ,wt,sf],styles:["@media (max-width: 991px){.normal-height[_ngcontent-%COMP%]{height:55px!important}}.main-container[_ngcontent-%COMP%]{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:10px;margin-bottom:-5px;height:100px;display:flex}.main-container[_ngcontent-%COMP%] .main-area[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.875rem;margin-bottom:15px;margin-left:5px;flex-direction:row;align-items:center}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-text[_ngcontent-%COMP%]{z-index:1}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .title-image[_ngcontent-%COMP%]{width:124px;height:21px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%]{width:30px;position:relative;top:2px}.main-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] .return-container[_ngcontent-%COMP%] .return-button[_ngcontent-%COMP%]{line-height:1;font-size:25px;position:relative;top:2px;width:100%;margin-right:4px;cursor:pointer}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%]{display:flex}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .blank-space[_ngcontent-%COMP%]{flex-grow:1}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]{color:#f8f9f9;border-radius:10px;opacity:.5;margin-right:2px;text-decoration:none;height:40px;display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%]:hover{opacity:.75}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[disabled][_ngcontent-%COMP%]{opacity:1!important;color:#f8f9f9;background:rgba(0,0,0,.7)!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{margin-right:2px;opacity:.75;font-size:18px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .tab-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1rem;margin:0 4px;position:relative;top:-1px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]{opacity:.75!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .select-tab-button[_ngcontent-%COMP%]:hover{opacity:1!important}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%]{display:flex;align-items:center}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] app-refresh-button[_ngcontent-%COMP%]{align-self:flex-end}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%]{height:32px;width:32px;min-width:0px!important;background-color:#f8f9f9;border-radius:100%;padding:0!important;line-height:normal;color:#929292;font-size:20px}.main-container[_ngcontent-%COMP%] .lower-container[_ngcontent-%COMP%] .right-container[_ngcontent-%COMP%] .menu-button[_ngcontent-%COMP%] .icon-container[_ngcontent-%COMP%]{display:flex;place-content:center}.menu-separator[_ngcontent-%COMP%]{width:100%;height:1px;background-color:#0000001f}.flag[_ngcontent-%COMP%]{width:24px;margin-right:16px}.transparent[_ngcontent-%COMP%]{opacity:.5}.top-bar[_ngcontent-%COMP%]{position:fixed;z-index:10;width:100%;height:56px;background-color:#f8f9f9;top:0;left:0;right:0;color:#202226;display:flex}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%]{flex-grow:1;display:flex;justify-content:center;align-items:center}.top-bar[_ngcontent-%COMP%] .logo-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%]{flex-shrink:0;width:56px}.top-bar[_ngcontent-%COMP%] .button-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:56px;height:56px}.top-bar-margin[_ngcontent-%COMP%]{margin-top:56px;flex-shrink:0}.vpn-info[_ngcontent-%COMP%]{font-size:.7rem;background:rgba(0,0,0,.7);padding:15px 20px;align-self:center}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] .state-td[_ngcontent-%COMP%]{font-weight:700}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 0;min-width:90px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:3px;font-size:12px;position:relative;top:1px;-webkit-user-select:none;user-select:none;width:auto;line-height:1}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{transform:scale(.75)}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .aminated-state-icon-container[_ngcontent-%COMP%] .state-icon[_ngcontent-%COMP%]{height:auto;animation:_ngcontent-%COMP%_state-icon-animation 1s linear 1}@keyframes _ngcontent-%COMP%_state-icon-animation{0%{transform:perspective(1px) scale(1);opacity:.8}to{transform:scale(2);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%]{width:0px;height:0px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%]{width:200px}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%] .animation-container[_ngcontent-%COMP%] .internal-animation-container[_ngcontent-%COMP%] .animation-area[_ngcontent-%COMP%]{display:inline-block;animation:_ngcontent-%COMP%_state-animation 1s linear 1;opacity:0}@keyframes _ngcontent-%COMP%_state-animation{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.vpn-info[_ngcontent-%COMP%] table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-of-type{padding-right:30px}.vpn-info[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.top-text-vpn-container[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;font-size:.6rem}.top-text-vpn-container[_ngcontent-%COMP%] .connection-error-msg-vpn[_ngcontent-%COMP%]{margin:-5px 5px 5px 10px;color:orange}.top-text-vpn-container[_ngcontent-%COMP%] .elements-separator[_ngcontent-%COMP%]{flex-grow:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%]{margin:-5px 10px 5px 0}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{cursor:pointer;display:inline;opacity:.8}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]:hover{opacity:1}.top-text-vpn-container[_ngcontent-%COMP%] .languaje-button-vpn[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .language-flag[_ngcontent-%COMP%]{width:11px;height:11px;margin-right:2px}.remote-vpn-alert-container[_ngcontent-%COMP%]{background-color:#da3439;margin:0 -21px;padding:10px 20px 15px;text-align:center}.remote-vpn-alert-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:14px}.remote-vpn-alert-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:1.25rem}.remote-vpn-alert-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.8rem}"]}),t})();const iP=function(){return["start.title"]};function GZ(t,n){if(1&t&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3),C(),xe(3,"app-loading-indicator",4),C()),2&t){const e=z();c(2),w("titleParts",qn(4,iP))("tabsData",e.tabsData)("selectedTabIndex",e.showDmsgInfo?1:0)("showUpdateButton",!1)}}function qZ(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function KZ(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function ZZ(t,n){if(1&t&&(D(0,"div",23)(1,"span"),I(2),R(3,"translate"),C(),V(4,qZ,3,3,"ng-container",24),V(5,KZ,2,1,"ng-container",24),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function XZ(t,n){if(1&t){const e=et();D(0,"div",20),ye("click",function(){return Pe(e),Oe(z(2).dataFilterer.removeFilters())}),V(1,ZZ,6,5,"div",21),D(2,"div",22),I(3),R(4,"translate"),C()()}if(2&t){const e=z(2);c(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),se(H(4,2,"filters.press-to-remove"))}}function JZ(t,n){if(1&t){const e=et();D(0,"mat-icon",25),ye("click",function(){return Pe(e),Oe(z(2).dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&t&&w("inline",!0)("matTooltip",H(1,2,"filters.filter-action"))}function QZ(t,n){1&t&&(D(0,"mat-icon",26),I(1,"more_horiz"),C()),2&t&&(z(),w("matMenuTriggerFor",ci(12)))}const rP=function(){return["/nodes","list"]},oP=function(){return["/nodes","dmsg"]};function eX(t,n){if(1&t&&xe(0,"app-paginator",27),2&t){const e=z(2);w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showDmsgInfo?qn(5,oP):qn(4,rP))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function tX(t,n){if(1&t&&(D(0,"mat-icon",42),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function nX(t,n){if(1&t&&(D(0,"mat-icon",42),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function iX(t,n){if(1&t&&(D(0,"mat-icon",42),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function rX(t,n){if(1&t&&(D(0,"mat-icon",42),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function oX(t,n){1&t&&(Ue(0),I(1,"*"),We())}function sX(t,n){if(1&t&&(Ue(0),D(1,"mat-icon",42),I(2),C(),V(3,oX,2,0,"ng-container",24),We()),2&t){const e=z(5);c(1),w("inline",!0),c(1),se(e.dataSorter.sortingArrow),c(1),w("ngIf",e.dataSorter.currentlySortingByLabel)}}function aX(t,n){if(1&t){const e=et();D(0,"th",38),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.dmsgServerSortData))}),I(1),R(2,"translate"),V(3,sX,4,3,"ng-container",24),C()}if(2&t){const e=z(4);c(1),ce(" ",H(2,2,"nodes.dmsg-server")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.dmsgServerSortData)}}function lX(t,n){if(1&t&&(D(0,"mat-icon",42),I(1),C()),2&t){const e=z(5);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function cX(t,n){if(1&t){const e=et();D(0,"th",38),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.pingSortData))}),I(1),R(2,"translate"),V(3,lX,2,2,"mat-icon",35),C()}if(2&t){const e=z(4);c(1),ce(" ",H(2,2,"nodes.ping")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.pingSortData)}}function dX(t,n){1&t&&(D(0,"mat-icon",49),R(1,"translate"),I(2,"star"),C()),2&t&&w("inline",!0)("matTooltip",H(1,2,"nodes.hypervisor-info"))}function uX(t,n){if(1&t){const e=et();D(0,"app-labeled-element-text",51),ye("labelEdited",function(){return Pe(e),Oe(z(6).forceDataRefresh())}),C()}if(2&t){const e=z(2).$implicit,i=z(4);Ln("id",e.dmsgServerPk),w("short",!0)("elementType",i.labeledElementTypes.DmsgServer)}}function hX(t,n){if(1&t&&(D(0,"td"),V(1,uX,1,3,"app-labeled-element-text",50),C()),2&t){const e=z().$implicit;c(1),w("ngIf",e.dmsgServerPk)}}const sP=function(t){return{time:t}};function fX(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z(2).$implicit;c(1),ce(" ",kt(2,1,"common.time-in-ms",He(4,sP,e.roundTripPing))," ")}}function pX(t,n){if(1&t&&(D(0,"td"),V(1,fX,3,6,"ng-container",24),C()),2&t){const e=z().$implicit;c(1),w("ngIf",e.dmsgServerPk)}}function mX(t,n){1&t&&(D(0,"button",52),R(1,"translate"),D(2,"mat-icon",42),I(3,"chevron_right"),C()()),2&t&&(w("matTooltip",H(1,2,"nodes.view-node")),c(2),w("inline",!0))}function gX(t,n){if(1&t){const e=et();D(0,"button",46),ye("click",function(o){Pe(e);const s=z().$implicit,a=z(4);return o.stopPropagation(),o.preventDefault(),Oe(a.deleteNode(s))}),R(1,"translate"),D(2,"mat-icon"),I(3,"close"),C()()}2&t&&w("matTooltip",H(1,1,"nodes.delete-node"))}const _X=function(t,n){return{"click-effect":t,"non-selectable":n}},aP=function(t){return["/nodes",t]};function bX(t,n){if(1&t){const e=et();D(0,"a",43)(1,"td"),V(2,dX,3,4,"mat-icon",44),C(),D(3,"td"),xe(4,"span",45),R(5,"translate"),C(),D(6,"td"),I(7),C(),D(8,"td"),I(9),C(),V(10,hX,2,1,"td",24),V(11,pX,2,1,"td",24),D(12,"td",40)(13,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.copyToClipboard(a))}),R(14,"translate"),D(15,"mat-icon",42),I(16,"filter_none"),C()(),D(17,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.showEditLabelDialog(a))}),R(18,"translate"),D(19,"mat-icon",42),I(20,"short_text"),C()(),V(21,mX,4,4,"button",47),V(22,gX,4,3,"button",48),C()()}if(2&t){const e=n.$implicit,i=z(4);w("ngClass",mn(22,_X,e.online,!e.online))("routerLink",e.online?He(25,aP,e.localPk):null),c(2),w("ngIf",e.isHypervisor),c(2),eo(i.nodeStatusClass(e,!0)),w("matTooltip",H(5,16,i.nodeStatusText(e,!0))),c(3),ce(" ",e.label," "),c(2),ce(" ",e.localPk," "),c(1),w("ngIf",i.showDmsgInfo),c(1),w("ngIf",i.showDmsgInfo),c(2),w("matTooltip",H(14,18,i.showDmsgInfo?"nodes.copy-data":"nodes.copy-key")),c(2),w("inline",!0),c(2),w("matTooltip",H(18,20,"labeled-element.edit-label")),c(2),w("inline",!0),c(2),w("ngIf",e.online),c(1),w("ngIf",!e.online)}}function vX(t,n){if(1&t){const e=et();D(0,"table",32)(1,"tr")(2,"th",33),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.hypervisorSortData))}),R(3,"translate"),D(4,"mat-icon",34),I(5,"star_outline"),C(),V(6,tX,2,2,"mat-icon",35),C(),D(7,"th",33),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.stateSortData))}),R(8,"translate"),xe(9,"span",36),V(10,nX,2,2,"mat-icon",35),C(),D(11,"th",37),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.labelSortData))}),I(12),R(13,"translate"),V(14,iX,2,2,"mat-icon",35),C(),D(15,"th",38),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.keySortData))}),I(16),R(17,"translate"),V(18,rX,2,2,"mat-icon",35),C(),V(19,aX,4,4,"th",39),V(20,cX,4,4,"th",39),xe(21,"th",40),C(),V(22,bX,23,27,"a",41),C()}if(2&t){const e=z(3);c(2),w("matTooltip",H(3,11,"nodes.hypervisor")),c(4),w("ngIf",e.dataSorter.currentSortingColumn===e.hypervisorSortData),c(1),w("matTooltip",H(8,13,"nodes.state-tooltip")),c(3),w("ngIf",e.dataSorter.currentSortingColumn===e.stateSortData),c(2),ce(" ",H(13,15,"nodes.label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.labelSortData),c(2),ce(" ",H(17,17,"nodes.key")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.keySortData),c(1),w("ngIf",e.showDmsgInfo),c(1),w("ngIf",e.showDmsgInfo),c(2),w("ngForOf",e.dataSource)}}function yX(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.label")))}function MX(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.inverted-order")))}function wX(t,n){1&t&&(D(0,"div",62)(1,"mat-icon",67),I(2,"star"),C(),I(3,"\xa0 "),D(4,"span",68),I(5),R(6,"translate"),C()()),2&t&&(c(1),w("inline",!0),c(4),se(H(6,2,"nodes.hypervisor")))}function CX(t,n){if(1&t){const e=et();D(0,"div",63)(1,"span",9),I(2),R(3,"translate"),C(),I(4,": "),D(5,"app-labeled-element-text",69),ye("labelEdited",function(){return Pe(e),Oe(z(5).forceDataRefresh())}),C()()}if(2&t){const e=z().$implicit,i=z(4);c(2),se(H(3,3,"nodes.dmsg-server")),c(3),Ln("id",e.dmsgServerPk),w("elementType",i.labeledElementTypes.DmsgServer)}}function xX(t,n){if(1&t&&(D(0,"div",62)(1,"span",9),I(2),R(3,"translate"),C(),I(4),R(5,"translate"),C()),2&t){const e=z().$implicit;c(2),se(H(3,2,"nodes.ping")),c(2),ce(": ",kt(5,4,"common.time-in-ms",He(7,sP,e.roundTripPing))," ")}}const kX=function(t){return{"selectable click-effect":t}};function SX(t,n){if(1&t){const e=et();D(0,"a",59)(1,"tr",60)(2,"td",60)(3,"div",55)(4,"div",56),V(5,wX,7,4,"div",61),D(6,"div",62)(7,"span",9),I(8),R(9,"translate"),C(),I(10,": "),D(11,"span"),I(12),R(13,"translate"),C()(),D(14,"div",62)(15,"span",9),I(16),R(17,"translate"),C(),I(18),C(),D(19,"div",63)(20,"span",9),I(21),R(22,"translate"),C(),I(23),C(),V(24,CX,6,5,"div",64),V(25,xX,6,9,"div",61),C(),xe(26,"div",65),D(27,"div",57)(28,"button",66),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),o.preventDefault(),Oe(l.showOptionsDialog(a))}),R(29,"translate"),D(30,"mat-icon"),I(31),C()()()()()()()}if(2&t){const e=n.$implicit,i=z(4);w("ngClass",He(25,kX,e.online))("routerLink",e.online?He(27,aP,e.localPk):null),c(5),w("ngIf",e.isHypervisor),c(3),se(H(9,15,"nodes.state")),c(3),eo(i.nodeStatusClass(e,!1)+" title"),c(1),se(H(13,17,i.nodeStatusText(e,!1))),c(4),se(H(17,19,"nodes.label")),c(2),ce(": ",e.label," "),c(3),se(H(22,21,"nodes.key")),c(2),ce(": ",e.localPk," "),c(1),w("ngIf",i.showDmsgInfo),c(1),w("ngIf",i.showDmsgInfo),c(3),w("matTooltip",H(29,23,"common.options")),c(3),se("add")}}function DX(t,n){if(1&t){const e=et();D(0,"table",53)(1,"tr",54),ye("click",function(){return Pe(e),Oe(z(3).dataSorter.openSortingOrderModal())}),D(2,"td")(3,"div",55)(4,"div",56)(5,"div",9),I(6),R(7,"translate"),C(),D(8,"div"),I(9),R(10,"translate"),V(11,yX,3,3,"ng-container",24),V(12,MX,3,3,"ng-container",24),C()(),D(13,"div",57)(14,"mat-icon",42),I(15,"keyboard_arrow_down"),C()()()()(),V(16,SX,32,29,"a",58),C()}if(2&t){const e=z(3);c(6),se(H(7,6,"tables.sorting-title")),c(3),ce("",H(10,8,e.dataSorter.currentSortingColumn.label)," "),c(2),w("ngIf",e.dataSorter.currentlySortingByLabel),c(1),w("ngIf",e.dataSorter.sortingInReverseOrder),c(2),w("inline",!0),c(2),w("ngForOf",e.dataSource)}}function TX(t,n){if(1&t&&(D(0,"div",28)(1,"div",29),V(2,vX,23,19,"table",30),V(3,DX,17,10,"table",31),C()()),2&t){const e=z(2);c(2),w("ngIf",e.dataSource.length>0),c(1),w("ngIf",e.dataSource.length>0)}}function LX(t,n){if(1&t&&xe(0,"app-paginator",27),2&t){const e=z(2);w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",e.showDmsgInfo?qn(5,oP):qn(4,rP))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function EX(t,n){1&t&&(D(0,"span",73),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"nodes.empty")))}function IX(t,n){1&t&&(D(0,"span",73),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"nodes.empty-with-filter")))}function PX(t,n){if(1&t&&(D(0,"div",28)(1,"div",70)(2,"mat-icon",71),I(3,"warning"),C(),V(4,EX,3,3,"span",72),V(5,IX,3,3,"span",72),C()()),2&t){const e=z(2);c(2),w("inline",!0),c(2),w("ngIf",0===e.allNodes.length),c(1),w("ngIf",0!==e.allNodes.length)}}const OX=function(t){return{"paginator-icons-fixer":t}};function AX(t,n){if(1&t){const e=et();D(0,"div",5)(1,"div",6)(2,"app-top-bar",7),ye("refreshRequested",function(){return Pe(e),Oe(z().forceDataRefresh(!0))})("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))}),C()(),D(3,"div",6)(4,"div",8)(5,"div",9),V(6,XZ,5,4,"div",10),C(),D(7,"div",11)(8,"div",12),V(9,JZ,3,4,"mat-icon",13),V(10,QZ,2,1,"mat-icon",14),D(11,"mat-menu",15,16)(13,"div",17),ye("click",function(){return Pe(e),Oe(z().removeOffline())}),I(14),R(15,"translate"),C()()(),V(16,eX,1,6,"app-paginator",18),C()(),V(17,TX,4,2,"div",19),V(18,LX,1,6,"app-paginator",18),V(19,PX,6,3,"div",19),C()()}if(2&t){const e=z();c(2),w("titleParts",qn(21,iP))("tabsData",e.tabsData)("selectedTabIndex",e.showDmsgInfo?1:0)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.options),c(2),w("ngClass",He(22,OX,e.numberOfPages>1)),c(2),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(3),w("ngIf",e.allNodes&&e.allNodes.length>0),c(1),w("ngIf",e.dataSource.length>0),c(1),w("overlapTrigger",!1),c(2),Ln("disabled",!e.hasOfflineNodes),c(1),ce(" ",H(15,19,"nodes.delete-all-offline")," "),c(2),w("ngIf",e.numberOfPages>1),c(1),w("ngIf",0!==e.dataSource.length),c(1),w("ngIf",e.numberOfPages>1),c(1),w("ngIf",0===e.dataSource.length)}}let lP=(()=>{class t extends er{constructor(e,i,o,s,a,l,d,_,E,F,G){super(),this.nodeService=e,this.multipleNodeDataService=i,this.router=o,this.dialog=s,this.authService=a,this.storageService=l,this.ngZone=d,this.snackbarService=_,this.clipboardService=E,this.translateService=F,this.persistentServerDataResponseKey="serv-dat-response",this.nodesListId="nl",this.dmsgListId="dl",this.hypervisorSortData=new Vn(["isHypervisor"],"nodes.hypervisor",Zt.Boolean),this.stateSortData=new Vn(["online"],"nodes.state",Zt.Boolean),this.labelSortData=new Vn(["label"],"nodes.label",Zt.Text),this.keySortData=new Vn(["localPk"],"nodes.key",Zt.Text),this.dmsgServerSortData=new Vn(["dmsgServerPk"],"nodes.dmsg-server",Zt.Text,["dmsgServerPk_label"]),this.pingSortData=new Vn(["roundTripPing"],"nodes.ping",Zt.Number),this.loading=!0,this.tabsData=[],this.options=[],this.showDmsgInfo=!1,this.canLogOut=!0,this.hasOfflineNodes=!1,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"nodes.filter-dialog.online",keyNameInElementsArray:"online",type:$n.Select,printableLabelsForValues:[{value:"",label:"nodes.filter-dialog.online-options.any"},{value:"true",label:"nodes.filter-dialog.online-options.online"},{value:"false",label:"nodes.filter-dialog.online-options.offline"}]},{filterName:"nodes.filter-dialog.label",keyNameInElementsArray:"label",type:$n.TextInput,maxlength:100},{filterName:"nodes.filter-dialog.key",keyNameInElementsArray:"localPk",type:$n.TextInput,maxlength:66},{filterName:"nodes.filter-dialog.dmsg",keyNameInElementsArray:"dmsgServerPk",secondaryKeyNameInElementsArray:"dmsgServerPk_label",type:$n.TextInput,maxlength:66}],this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,this.labeledElementTypes=Xi,this.updateOptionsMenu(),this.authVerificationSubscription=this.authService.checkLogin().subscribe(_e=>{this.canLogOut=_e!==Fr.AuthDisabled,this.updateOptionsMenu()}),this.showDmsgInfo=-1!==this.router.url.indexOf("dmsg"),this.showDmsgInfo||this.filterProperties.splice(this.filterProperties.length-1);const ie=[this.hypervisorSortData,this.stateSortData,this.labelSortData,this.keySortData];this.showDmsgInfo&&(ie.push(this.dmsgServerSortData),ie.push(this.pingSortData)),this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,ie,3,this.showDmsgInfo?this.dmsgListId:this.nodesListId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new Nd(this.dialog,G,this.router,this.filterProperties,this.showDmsgInfo?this.dmsgListId:this.nodesListId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(_e=>{this.filteredNodes=_e,this.hasOfflineNodes=!1,this.filteredNodes.forEach(Ce=>{Ce.online||(this.hasOfflineNodes=!0)}),this.dataSorter.setData(this.filteredNodes)}),this.navigationsSubscription=G.paramMap.subscribe(_e=>{if(_e.has("page")){let Ce=Number.parseInt(_e.get("page"),10);(isNaN(Ce)||Ce<1)&&(Ce=1),this.currentPageInUrl=Ce,this.recalculateElementsToShow()}}),this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"language",label:"nodes.dmsg-title",linkParts:["/nodes","dmsg"]},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.multipleNodeDataService.forceRefresh()})}updateOptionsMenu(){this.options=[],this.options.push({name:"nodes.modify-rewards-all",actionName:"modifyRewardsAll",icon:"edit"}),this.canLogOut&&this.options.push({name:"common.logout",actionName:"logout",icon:"power_settings_new"})}ngOnInit(){return this.startGettingData(!0),this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=Sh(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),super.ngOnInit()}ngOnDestroy(){this.authVerificationSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.languageSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}performAction(e){"logout"===e?this.logout():"updateAll"===e?this.updateAll():"modifyRewardsAll"===e&&this.changeRewardsToAll()}nodeStatusClass(e,i){return e.online?e.health&&e.health.servicesHealth===ro.Unhealthy?i?"dot-yellow blinking":"yellow-text":e.health&&e.health.servicesHealth===ro.Healthy?i?"dot-green":"green-text":i?"dot-outline-gray":"":i?"dot-red":"red-text"}nodeStatusText(e,i){return e.online?e.health&&e.health.servicesHealth===ro.Healthy?"node.statuses.online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===ro.Unhealthy?"node.statuses.partially-online"+(i?"-tooltip":""):e.health&&e.health.servicesHealth===ro.Connecting?"node.statuses.connecting"+(i?"-tooltip":""):"node.statuses.unknown"+(i?"-tooltip":""):"node.statuses.offline"+(i?"-tooltip":"")}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.multipleNodeDataService.forceRefresh()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.multipleNodeDataService.startRequestingData();i&&(o=$e(JSON.parse(i.value))),this.dataSubscription=o.subscribe(s=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(s)),this.updating=!s||s.updating,s&&!s.updating&&(s.data&&!s.error?(this.allNodes=s.data,this.showDmsgInfo&&this.allNodes.forEach(a=>{a.dmsgServerPk_label=ha.getCompleteLabel(this.storageService,this.translateService,a.dmsgServerPk)}),this.dataFilterer.setData(this.allNodes),this.loading=!1,this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=s.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-s.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1)):s.error&&(this.errorsUpdating||this.snackbarService.showError(this.loading?"common.loading-error":"nodes.error-load",null,!0,s.error),this.errorsUpdating=!0)),i&&this.startGettingData(!1)})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredNodes){const e=Vt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredNodes.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.nodesToShow=this.filteredNodes.slice(i,i+e)}else this.nodesToShow=null;this.nodesToShow&&(this.dataSource=this.nodesToShow)}logout(){const e=Jt.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}updateAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-update");const e=[],i=[];this.dataSource.forEach(o=>{if(o.online){const s={key:o.localPk,label:o.label,version:o.version,tag:o.buildTag};Jt.checkIfTagIsUpdatable(o.buildTag)?e.push(s):i.push(s)}}),Qq.openDialog(this.dialog,e,i)}changeRewardsToAll(){if(!this.dataSource||0===this.dataSource.length)return void this.snackbarService.showError("nodes.no-visors-to-modify");const e=[];this.dataSource.forEach(o=>{o.online&&e.push({key:o.localPk,label:o.label})}),DK.openDialog(this.dialog,{nodes:e})}recursivelyUpdateWallets(e,i,o=0){return this.nodeService.update(e[e.length-1]).pipe(Co(()=>$e(null)),Ye(s=>(s&&s.updated&&!s.error?this.snackbarService.showDone(this.translateService.instant("nodes.update.done",{name:i[i.length-1]})):(this.snackbarService.showError(this.translateService.instant("nodes.update.update-error",{name:i[i.length-1]})),o+=1),e.pop(),i.pop(),e.length>=1?this.recursivelyUpdateWallets(e,i,o):$e(o))))}showOptionsDialog(e){const i=[{icon:"filter_none",label:"nodes.copy-key"}];this.showDmsgInfo&&i.push({icon:"filter_none",label:"nodes.copy-dmsg"}),i.push({icon:"short_text",label:"labeled-element.edit-label"}),e.online||i.push({icon:"close",label:"nodes.delete-node"}),qr.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.copySpecificTextToClipboard(e.localPk):this.showDmsgInfo?2===o?this.copySpecificTextToClipboard(e.dmsgServerPk):3===o?this.showEditLabelDialog(e):4===o&&this.deleteNode(e):2===o?this.showEditLabelDialog(e):3===o&&this.deleteNode(e)})}copyToClipboard(e){this.showDmsgInfo?qr.openDialog(this.dialog,[{icon:"filter_none",label:"nodes.key"},{icon:"filter_none",label:"nodes.dmsg-server"}],"common.options").afterClosed().subscribe(o=>{1===o?this.copySpecificTextToClipboard(e.localPk):2===o&&this.copySpecificTextToClipboard(e.dmsgServerPk)}):this.copySpecificTextToClipboard(e.localPk)}copySpecificTextToClipboard(e){this.clipboardService.copy(e)&&this.snackbarService.showDone("copy.copied")}showEditLabelDialog(e){let i=this.storageService.getLabelInfo(e.localPk);i||(i={id:e.localPk,label:"",identifiedElementType:Xi.Node}),N1.openDialog(this.dialog,i).afterClosed().subscribe(o=>{o&&this.forceDataRefresh()})}deleteNode(e){const i=Jt.createConfirmationDialog(this.dialog,"nodes.delete-node-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.setLocalNodesAsHidden([e.localPk],[e.ip]),this.forceDataRefresh(),this.snackbarService.showDone("nodes.deleted")})}removeOffline(){let e="nodes.delete-all-offline-confirmation";this.dataFilterer.currentFiltersTexts&&this.dataFilterer.currentFiltersTexts.length>0&&(e="nodes.delete-all-filtered-offline-confirmation");const i=Jt.createConfirmationDialog(this.dialog,e);i.componentInstance.operationAccepted.subscribe(()=>{i.close();const o=[],s=[];this.filteredNodes.forEach(a=>{a.online||(o.push(a.localPk),s.push(a.ip))}),o.length>0&&(this.storageService.setLocalNodesAsHidden(o,s),this.forceDataRefresh(),1===o.length?this.snackbarService.showDone("nodes.deleted-singular"):this.snackbarService.showDone("nodes.deleted-plural",{number:o.length}))})}}return t.\u0275fac=function(e){return new(e||t)(Y(ua),Y(NI),Y(hn),Y(In),Y(Wh),Y(Ji),Y(ft),Y(Dn),Y(ef),Y(To),Y(Mr))},t.\u0275cmp=Ze({type:t,selectors:[["app-node-list"]],features:[nt],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton"],[1,"h-100"],[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","refreshRequested","optionSelected"],[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow","full-node-list-margins"],["class","responsive-table-translucid d-none d-md-table","cellspacing","0","cellpadding","0",4,"ngIf"],["class","responsive-table-translucid d-md-none nowrap","cellspacing","0","cellpadding","0",4,"ngIf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"sortable-column","small-column",3,"matTooltip","click"],[1,"hypervisor-icon","grey-text"],[3,"inline",4,"ngIf"],[1,"dot-outline-gray"],[1,"sortable-column","labels",3,"click"],[1,"sortable-column",3,"click"],["class","sortable-column",3,"click",4,"ngIf"],[1,"actions"],["class","selectable link-row",3,"ngClass","routerLink",4,"ngFor","ngForOf"],[3,"inline"],[1,"selectable","link-row",3,"ngClass","routerLink"],["class","hypervisor-icon",3,"inline","matTooltip",4,"ngIf"],[3,"matTooltip"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip","click"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip",4,"ngIf"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip","click",4,"ngIf"],[1,"hypervisor-icon",3,"inline","matTooltip"],["shortTextLength","4",3,"short","id","elementType","labelEdited",4,"ngIf"],["shortTextLength","4",3,"short","id","elementType","labelEdited"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none","nowrap"],[1,"selectable","click-effect",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],["class","link-row",3,"ngClass","routerLink",4,"ngFor","ngForOf"],[1,"link-row",3,"ngClass","routerLink"],[1,"d-block"],["class","list-row",4,"ngIf"],[1,"list-row"],[1,"list-row","long-content"],["class","list-row long-content",4,"ngIf"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[1,"hypervisor-icon",3,"inline"],[1,"yellow-clear-text","title"],[3,"id","elementType","labelEdited"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(V(0,GZ,4,5,"div",0),V(1,AX,20,24,"div",1)),2&e&&(w("ngIf",i.loading),c(1),w("ngIf",!i.loading))},dependencies:[Nn,gi,Ft,qa,Wr,el,Cn,vi,Yd,pa,Hd,as,Bd,sc,ha,wt],styles:[".labels[_ngcontent-%COMP%]{width:15%}.actions[_ngcontent-%COMP%]{text-align:right;width:120px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.hypervisor-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;position:relative;top:2px;margin-left:2px;color:#d48b05}.small-column[_ngcontent-%COMP%]{width:1px}.non-selectable[_ngcontent-%COMP%]{cursor:not-allowed}"]}),t})();const FX=["content"],H1=function(t){return{number:t}};function RX(t,n){if(1&t&&(D(0,"div",14),I(1),R(2,"translate"),C()),2&t){const e=z(2);c(1),ce(" ",kt(2,1,"node.logs.filter-ignored",He(4,H1,e.logEntries.length-e.filteredLogEntries.length))," ")}}function NX(t,n){if(1&t){const e=et();D(0,"div",9),ye("click",function(){return Pe(e),Oe(z().showFilters())}),D(1,"div",10)(2,"div")(3,"span"),I(4),R(5,"translate"),C(),D(6,"span",11),I(7),R(8,"translate"),C()(),V(9,RX,3,6,"div",12),C(),xe(10,"div",13),C()}if(2&t){const e=z();c(4),ce("",H(5,3,"node.logs.selected-filter")," "),c(3),se(H(8,5,"node.logs."+e.levelDetails.get(e.currentMinimumLevel).levelFilterName)),c(2),w("ngIf",e.logEntries.length>e.filteredLogEntries.length)}}function YX(t,n){if(1&t&&(D(0,"div",15)(1,"a",16),I(2),R(3,"translate"),C()()),2&t){const e=z();c(1),w("href",e.getFullLogsUrl(),Vo),c(1),ce(" ",kt(3,2,"node.logs.view-rest",He(5,H1,e.totalLogs))," ")}}function HX(t,n){1&t&&(Ue(0),I(1,":"),We())}function BX(t,n){if(1&t&&(D(0,"span"),I(1),C()),2&t){const e=z().$implicit;c(1),ce(" ",e.msg," ")}}function VX(t,n){if(1&t&&(Ue(0),D(1,"span",21),I(2),C(),D(3,"span"),I(4),C(),We()),2&t){const e=n.$implicit;c(2),ce(" ",e.name," "),c(2),ce(' ="',e.value,'" ')}}function jX(t,n){if(1&t&&(D(0,"div",15)(1,"span",18),I(2),C(),D(3,"span"),I(4),C(),I(5," [ "),D(6,"span",18),I(7),C(),D(8,"span",19),I(9),C(),I(10," ]"),V(11,HX,2,0,"ng-container",4),V(12,BX,2,1,"span",4),V(13,VX,5,2,"ng-container",20),C()),2&t){const e=n.$implicit,i=z(2);c(2),ce(" ",e.time," "),c(1),eo(i.levelDetails.get(e.level).colorClass),c(1),ce(" ",i.levelDetails.get(e.level).name," "),c(3),ce(" ",e.func," "),c(2),ce(" ",e._module," "),c(2),w("ngIf",e.msg),c(1),w("ngIf",e.msg),c(1),w("ngForOf",e.extra)}}function zX(t,n){if(1&t&&(Ue(0),V(1,jX,14,9,"div",17),We()),2&t){const e=z();c(1),w("ngForOf",e.filteredLogEntries)}}function UX(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"node.logs.view-all")," "))}function WX(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z(2);c(1),ce(" ",kt(2,1,"node.logs.view-rest",He(4,H1,e.totalLogs))," ")}}function $X(t,n){if(1&t&&(D(0,"div",15)(1,"a",16),V(2,UX,3,3,"ng-container",4),V(3,WX,3,6,"ng-container",4),C()()),2&t){const e=z();c(1),w("href",e.getFullLogsUrl(),Vo),c(1),w("ngIf",!e.hasMoreLogMessages),c(1),w("ngIf",e.hasMoreLogMessages)}}function GX(t,n){1&t&&(D(0,"div",22),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"node.logs.no-logs")," "))}function qX(t,n){1&t&&(D(0,"div",22),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"node.logs.no-logs-for-filter")," "))}function KX(t,n){1&t&&xe(0,"app-loading-indicator",23),2&t&&w("showWhite",!1)}function ZX(t,n){1&t&&(D(0,"mat-icon",26),I(1,"refresh"),C()),2&t&&w("inline",!0)}const XX=function(t){return{time:t}};function JX(t,n){if(1&t&&(D(0,"div",24),V(1,ZX,2,1,"mat-icon",25),D(2,"span"),I(3),R(4,"translate"),C()()),2&t){const e=z();c(1),w("ngIf",!e.showAlert),c(2),se(kt(4,2,"refresh-button."+e.elapsedTime.translationVarName,He(5,XX,e.elapsedTime.elapsedTime)))}}var Wt=(()=>((Wt=Wt||{})[Wt.PanicLevel=0]="PanicLevel",Wt[Wt.FatalLevel=1]="FatalLevel",Wt[Wt.ErrorLevel=2]="ErrorLevel",Wt[Wt.WarnLevel=3]="WarnLevel",Wt[Wt.InfoLevel=4]="InfoLevel",Wt[Wt.DebugLevel=5]="DebugLevel",Wt[Wt.TraceLevel=6]="TraceLevel",Wt[Wt.Unknown=7]="Unknown",Wt))();class QX{constructor(){this.extra=[]}}let eJ=(()=>{class t{static openDialog(e){const i=new En;return i.autoFocus=!1,i.width=Vt.largeModalWidth,e.open(t,i)}constructor(e,i,o,s,a){this.dialogRef=e,this.nodeService=i,this.snackbarService=o,this.ngZone=s,this.dialog=a,this.levelDetails=new Map([[Wt.PanicLevel,{name:"PANIC",colorClass:"panic-level-color",levelFilterName:"filter-panic",importance:8}],[Wt.FatalLevel,{name:"FATAL",colorClass:"fatal-level-color",levelFilterName:"filter-faltal",importance:7}],[Wt.ErrorLevel,{name:"ERROR",colorClass:"error-level-color",levelFilterName:"filter-error",importance:6}],[Wt.WarnLevel,{name:"WARNING",colorClass:"warning-level-color",levelFilterName:"filter-warning",importance:5}],[Wt.InfoLevel,{name:"INFO",colorClass:"info-level-color",levelFilterName:"filter-info",importance:4}],[Wt.DebugLevel,{name:"DEBUG",colorClass:"debug-level-color",levelFilterName:"filter-debug",importance:3}],[Wt.TraceLevel,{name:"TRACE",colorClass:"trace-level-color",levelFilterName:"filter-all",importance:2}],[Wt.Unknown,{name:"UNKNOWN LOG",colorClass:"unknown-level-color",levelFilterName:"filter-all",importance:1}]]),this.currentMinimumLevel=Wt.Unknown,this.loading=!0,this.LoadingMoment=0,this.maxElementsPerPage=1e3,this.logEntries=[],this.filteredLogEntries=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription(),this.removeTimeSubscription()}showFilters(){const e=[{icon:"",label:"node.logs.filter-all"},{icon:"",label:"node.logs.filter-debug"},{icon:"",label:"node.logs.filter-info"},{icon:"",label:"node.logs.filter-warning"},{icon:"",label:"node.logs.filter-error"},{icon:"",label:"node.logs.filter-faltal"},{icon:"",label:"node.logs.filter-panic"}],i=[Wt.Unknown,Wt.DebugLevel,Wt.InfoLevel,Wt.WarnLevel,Wt.ErrorLevel,Wt.FatalLevel,Wt.PanicLevel];for(let o=0;o<=i.length;o++)this.currentMinimumLevel===i[o]&&(e[o].icon="check");qr.openDialog(this.dialog,e,"node.logs.filter-title").afterClosed().subscribe(o=>{this.currentMinimumLevel=i[o-1],this.filter()})}loadData(e){this.removeSubscription(),this.loading=!0,this.subscription=$e(1).pipe(Ti(e),Ye(()=>this.nodeService.getRuntimeLogs(Ct.getCurrentNodeKey()))).subscribe(i=>this.onLogsReceived(i),i=>this.onLogsError(i))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}removeTimeSubscription(){this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}onLogsReceived(e){let i=0;this.totalLogs=e.length,this.hasMoreLogMessages=this.totalLogs-this.maxElementsPerPage>0,e.forEach(o=>{const s=new QX;s.time=o.time,s._module=o._module,s.msg=o.msg,s.func=o.func;const a=o.level?o.level.toLowerCase():"";if(s.level=a.includes("panic")?Wt.PanicLevel:a.includes("fatal")?Wt.FatalLevel:a.includes("error")?Wt.ErrorLevel:a.includes("warn")?Wt.WarnLevel:a.includes("info")?Wt.InfoLevel:a.includes("debug")?Wt.DebugLevel:a.includes("trace")?Wt.TraceLevel:Wt.Unknown,o.current_backoff){const d=Math.floor(o.current_backoff/1e9),_=Math.floor(d/60),E=Math.floor(d%60);s.extra.push(_?{name:"current_backoff",value:_+"m"+E+"s"}:{name:"current_backoff",value:E+"s"})}o.error&&s.extra.push({name:"error",value:o.error});const l=new Set;l.add("time"),l.add("_module"),l.add("msg"),l.add("func"),l.add("level"),l.add("current_backoff"),l.add("error"),l.add("log_line");for(const d in o)l.has(d)||s.extra.push({name:d,value:o[d]});this.totalLogs-i<=this.maxElementsPerPage&&this.logEntries.push(s),i+=1}),this.loading=!1,this.LoadingMoment=Date.now(),this.startUpdatingTime(),this.filter()}filter(){this.filteredLogEntries=[];const e=this.levelDetails.get(this.currentMinimumLevel).importance;this.logEntries.forEach(i=>{const o=this.levelDetails.get(i.level).importance;e<=o&&this.filteredLogEntries.push(i)}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}startUpdatingTime(){this.elapsedTime=Pg.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3)),this.removeTimeSubscription(),this.timeUpdateSubscription=Sh(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.elapsedTime=Pg.getElapsedTime(Math.floor((Date.now()-this.LoadingMoment)/1e3))}))}getFullLogsUrl(){return window.location.origin+"/api/visors/"+Ct.getCurrentNodeKey()+"/runtime-logs"}onLogsError(e){e=en(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(Vt.connectionRetryDelay)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(ua),Y(Dn),Y(ft),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-node-logs"]],viewQuery:function(e,i){if(1&e&&_t(FX,5),2&e){let o;rt(o=ot())&&(i.content=o.first)}},decls:13,vars:14,consts:[[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],["class","filter-area",3,"click",4,"ngIf"],["content",""],["class","log-entry",4,"ngIf"],[4,"ngIf"],["class","log-empty-msg",4,"ngIf"],[3,"showWhite",4,"ngIf"],[1,"update-button","subtle-transparent-button",3,"click"],["class","update-time",4,"ngIf"],[1,"filter-area",3,"click"],[1,"filter-content"],[1,"actual-value"],["class","small",4,"ngIf"],[1,"filter-margin"],[1,"small"],[1,"log-entry"],["target","_blank",1,"view-raw-link",3,"href"],["class","log-entry",4,"ngFor","ngForOf"],[1,"transparent"],[1,"module-color"],[4,"ngFor","ngForOf"],[1,"extra-data-color"],[1,"log-empty-msg"],[3,"showWhite"],[1,"update-time"],["class","icon",3,"inline",4,"ngIf"],[1,"icon",3,"inline"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),V(2,NX,11,7,"div",1),D(3,"mat-dialog-content",null,2),V(5,YX,4,7,"div",3),V(6,zX,2,1,"ng-container",4),V(7,$X,4,3,"div",3),V(8,GX,3,3,"div",5),V(9,qX,3,3,"div",5),V(10,KX,1,1,"app-loading-indicator",6),D(11,"div",7),ye("click",function(){return i.loadData(0)}),V(12,JX,5,7,"div",8),C()()()),2&e&&(w("headline",H(1,12,"node.logs.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",i.dialogRef),c(2),w("ngIf",!i.loading&&i.logEntries&&i.logEntries.length>0),c(3),w("ngIf",!i.loading&&i.hasMoreLogMessages),c(1),w("ngIf",!i.loading),c(1),w("ngIf",!i.loading&&i.logEntries&&i.logEntries.length>0),c(1),w("ngIf",!(i.loading||i.logEntries&&0!==i.logEntries.length)),c(1),w("ngIf",!i.loading&&i.logEntries&&i.logEntries.length>0&&i.filteredLogEntries.length<1),c(1),w("ngIf",i.loading),c(2),w("ngIf",!i.loading))},dependencies:[gi,Ft,r1,Cn,ei,as,wt],styles:[".filter-area[_ngcontent-%COMP%]{margin-left:-24px;margin-right:-24px;font-size:.8rem;color:#777;background-color:#d9deeb;cursor:pointer}.filter-area[_ngcontent-%COMP%]:hover{background-color:#cfd5e6}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%]{padding:10px 24px;text-align:center}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%] .actual-value[_ngcontent-%COMP%]{color:#202226}.filter-area[_ngcontent-%COMP%] .filter-content[_ngcontent-%COMP%] .small[_ngcontent-%COMP%]{font-size:.6rem}.filter-area[_ngcontent-%COMP%] .filter-margin[_ngcontent-%COMP%]{height:1px;background-color:#215f9e33;margin:0 12px}.log-entry[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.log-entry[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.log-entry[_ngcontent-%COMP%]:first-of-type{margin-top:0}.log-entry[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.log-empty-msg[_ngcontent-%COMP%]{text-align:center}.view-raw-link[_ngcontent-%COMP%]{color:#215f9e}.update-button[_ngcontent-%COMP%]{display:flex;justify-content:center;cursor:pointer}.update-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;margin-right:5px}.update-button[_ngcontent-%COMP%] .update-time[_ngcontent-%COMP%]{text-align:center;font-size:.7rem;color:#202226;margin:0 5px}.panic-level-color[_ngcontent-%COMP%], .fatal-level-color[_ngcontent-%COMP%]{color:red}.error-level-color[_ngcontent-%COMP%]{color:#d10000}.warning-level-color[_ngcontent-%COMP%]{color:#e27505}.info-level-color[_ngcontent-%COMP%]{color:#0d9519}.debug-level-color[_ngcontent-%COMP%]{color:#0065ff}.trace-level-color[_ngcontent-%COMP%]{color:#468cf5}.unknown-level-color[_ngcontent-%COMP%]{color:#e27505}.module-color[_ngcontent-%COMP%]{color:#a119fc}.extra-data-color[_ngcontent-%COMP%]{color:#ad8021}"]}),t})();class cP{constructor(n,e){this.canBeUpdated=!1,this.canBeRestarted=!1,this.canOpenTerminal=!1,this.options=[],this.dialog=n.get(In),this.router=n.get(hn),this.snackbarService=n.get(Dn),this.nodeService=n.get(ua),this.storageService=n.get(Ji),this.showingFullList=e,this.returnButtonText=e?"node.title":"nodes.title",this.updateOptions()}updateOptions(){this.options=[],this.canOpenTerminal&&this.options.push({name:"actions.menu.terminal",actionName:"terminal",icon:"laptop"}),this.options.push({name:"actions.menu.logs",actionName:"logs",icon:"subject"}),this.canBeRestarted&&this.options.push({name:"actions.menu.reboot",actionName:"reboot",icon:"rotate_right"})}setCurrentNode(n){this.currentNode=n,Jt.checkIfTagIsUpdatable(n.buildTag)?(this.canBeUpdated=!0,this.canBeRestarted=!0):(this.canBeUpdated=!1,this.canBeRestarted=!1),this.canOpenTerminal=Jt.checkIfTagCanOpenterminal(n.buildTag),this.updateOptions()}setCurrentNodeKey(n){this.currentNodeKey=n}performAction(n,e){"terminal"===n?this.terminal():"update"===n?this.update():"logs"===n?this.runtimeLogs():"reboot"===n?this.reboot():null===n&&this.back()}dispose(){this.rebootSubscription&&this.rebootSubscription.unsubscribe(),this.updateSubscription&&this.updateSubscription.unsubscribe()}reboot(){const n=Jt.createConfirmationDialog(this.dialog,"actions.reboot.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{n.componentInstance.showProcessing(),this.rebootSubscription=this.nodeService.reboot(this.currentNodeKey).subscribe(()=>{this.snackbarService.showDone("actions.reboot.done"),n.close()},e=>{e=en(e),n.componentInstance.showDone("confirmation.error-header-text",e.translatableErrorMsg)})})}update(){const n=Jt.createConfirmationDialog(this.dialog,"actions.update.confirmation");n.componentInstance.operationAccepted.subscribe(()=>{const e=window.location.protocol,i=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(e+"//"+i+"/pty/"+this.currentNodeKey+"?commands=update","_blank","noopener noreferrer"),n.close()})}terminal(){const n=window.location.protocol,e=window.location.host.replace("localhost:4200","127.0.0.1:8000");window.open(n+"//"+e+"/pty/"+this.currentNodeKey,"_blank","noopener noreferrer")}runtimeLogs(){eJ.openDialog(this.dialog)}back(){this.router.navigate(this.showingFullList?["nodes",this.currentNodeKey]:["nodes"])}}class tJ{constructor(){this.trafficData=new nJ}}class nJ{constructor(){this.totalSent=0,this.totalReceived=0,this.sentHistory=[],this.receivedHistory=[]}}class iJ{constructor(){this.lastEmitedData=new tJ,this.dataSubject=new Or(null),this.whenUpdateWasScheduled=0,this.stopRequestedDate=-1}}let rJ=(()=>{class t{constructor(e,i){this.storageService=e,this.nodeService=i,this.maxTrafficHistorySlots=10,this.expirationTime=6e4,this.nodesMap=new Map,this.storageService.getRefreshTimeObservable().subscribe(o=>{this.dataRefreshDelay=1e3*o,this.nodesMap.forEach(s=>{this.forceSpecificNodeRefresh(s.pk)})}),this.checkForExpired()}checkForExpired(){$e(1).pipe(Ti(5e3)).subscribe(()=>{try{this.nodesMap.forEach(e=>{this.finishIfExpired(e)})}catch{}this.checkForExpired()})}startRequestingData(e){let i=this.nodesMap.get(e);return i?i.stopRequestedDate=-1:(i=new iJ,i.pk=e,this.nodesMap.set(e,i),this.startDataSubscription(0,i)),i.dataSubject.asObservable()}stopRequestingSpecificNode(e){const i=this.nodesMap.get(e);i&&(i.stopRequestedDate=Date.now())}startDataSubscription(e,i){i.updateSubscription&&i.updateSubscription.unsubscribe(),i.updateSubscription=$e(1).pipe(Ti(e),bi(()=>{i.lastEmitedData.updating=!0,i.dataSubject.next(i.lastEmitedData)}),Ti(120),Ye(()=>this.nodeService.getNode(i.pk))).subscribe(o=>{this.updateTrafficData(o.transports,i.lastEmitedData.trafficData,i.whenUpdateWasScheduled);let s=this.calculateRemainingTime(i.whenUpdateWasScheduled);s<1e3&&(i.whenUpdateWasScheduled=Date.now(),s=this.dataRefreshDelay),i.lastEmitedData={data:o,error:null,momentOfLastCorrectUpdate:Date.now(),updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),this.startDataSubscription(s,i)},o=>{o=en(o),i.lastEmitedData={data:i.lastEmitedData.data,error:o,momentOfLastCorrectUpdate:i.lastEmitedData.momentOfLastCorrectUpdate,updating:!1,trafficData:i.lastEmitedData.trafficData},i.dataSubject.next(i.lastEmitedData),o.originalError&&400===o.originalError.status?(i.dataSubject.complete(),i.updateSubscription.unsubscribe(),this.nodesMap.delete(i.pk)):this.startDataSubscription(Vt.connectionRetryDelay,i)})}calculateRemainingTime(e){if(e<1)return 0;let i=this.dataRefreshDelay-(Date.now()-e);return i<0&&(i=0),i}updateTrafficData(e,i,o){if(i.totalSent=0,i.totalReceived=0,e&&e.length>0&&(i.totalSent=e.reduce((s,a)=>s+a.sent,0),i.totalReceived=e.reduce((s,a)=>s+a.recv,0)),0===i.sentHistory.length)for(let s=0;sthis.maxTrafficHistorySlots&&(a=this.maxTrafficHistorySlots),0===a)i.sentHistory[i.sentHistory.length-1]=i.totalSent,i.receivedHistory[i.receivedHistory.length-1]=i.totalReceived;else for(let l=0;lthis.maxTrafficHistorySlots&&(i.sentHistory.splice(0,i.sentHistory.length-this.maxTrafficHistorySlots),i.receivedHistory.splice(0,i.receivedHistory.length-this.maxTrafficHistorySlots))}}forceSpecificNodeRefresh(e){const i=this.nodesMap.get(e);i&&this.startDataSubscription(0,i)}finishIfExpired(e){e.stopRequestedDate>0&&Date.now()-e.stopRequestedDate>this.expirationTime&&(e.dataSubject.complete(),e.updateSubscription.unsubscribe(),this.nodesMap.delete(e.pk))}}return t.\u0275fac=function(e){return new(e||t)(we(Ji),we(ua))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function oJ(t,n){1&t&&xe(0,"app-loading-indicator")}function sJ(t,n){1&t&&(D(0,"div",6)(1,"div")(2,"mat-icon",7),I(3,"error"),C(),I(4),R(5,"translate"),C()()),2&t&&(c(2),w("inline",!0),c(2),ce(" ",H(5,2,"node.not-found")," "))}function aJ(t,n){if(1&t){const e=et();D(0,"div",2)(1,"div")(2,"app-top-bar",3),ye("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))}),C()(),V(3,oJ,1,0,"app-loading-indicator",4),V(4,sJ,6,4,"div",5),C()}if(2&t){const e=z();c(2),w("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("showUpdateButton",!1)("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),c(1),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound)}}function lJ(t,n){if(1&t&&xe(0,"app-node-info-content",15),2&t){const e=z(2);w("nodeInfo",e.node)("trafficData",e.trafficData)}}const cJ=function(t,n){return{"main-area":t,"full-size-main-area":n}},dJ=function(t){return{"d-none":t}};function uJ(t,n){if(1&t){const e=et();D(0,"div",8)(1,"div",9)(2,"app-top-bar",10),ye("optionSelected",function(o){return Pe(e),Oe(z().performAction(o))})("refreshRequested",function(){return Pe(e),Oe(z().forceDataRefresh(!0))}),C()(),D(3,"div",9)(4,"div",11)(5,"div",12),xe(6,"router-outlet"),C()(),D(7,"div",13),V(8,lJ,1,2,"app-node-info-content",14),C()()()}if(2&t){const e=z();c(2),w("titleParts",e.titleParts)("tabsData",e.tabsData)("selectedTabIndex",e.selectedTabIndex)("secondsSinceLastUpdate",e.secondsSinceLastUpdate)("showLoading",e.updating)("showAlert",e.errorsUpdating)("refeshRate",e.storageService.getRefreshTime())("optionsData",e.nodeActionsHelper?e.nodeActionsHelper.options:null)("returnText",e.nodeActionsHelper?e.nodeActionsHelper.returnButtonText:""),c(2),w("ngClass",mn(12,cJ,!e.showingInfo&&!e.showingFullList,e.showingInfo||e.showingFullList)),c(3),w("ngClass",He(15,dJ,e.showingInfo||e.showingFullList)),c(1),w("ngIf",!e.showingInfo&&!e.showingFullList)}}let Ct=(()=>{class t extends er{static refreshCurrentDisplayedData(){t.currentInstanceInternal&&t.currentInstanceInternal.forceDataRefresh(!1)}static getCurrentNodeKey(){return t.currentNodeKey}static get currentNode(){return t.nodeSubject.asObservable()}static get currentTrafficData(){return t.trafficDataSubject.asObservable()}constructor(e,i,o,s,a,l,d){super(),this.storageService=e,this.singleNodeDataService=i,this.route=o,this.ngZone=s,this.snackbarService=a,this.injector=l,this.persistentDataResponseKey="serv-dat-response",this.notFound=!1,this.titleParts=[],this.tabsData=[],this.selectedTabIndex=-1,this.showingInfo=!1,this.showingFullList=!1,this.initialRouteEventFired=!1,this.secondsSinceLastUpdate=0,this.lastUpdate=Date.now(),this.updating=!1,this.errorsUpdating=!1,this.lastUpdateRequestedManually=!1,t.nodeSubject=new ko(1),t.trafficDataSubject=new ko(1),t.currentInstanceInternal=this,this.navigationsSubscription=d.events.subscribe(_=>{_.urlAfterRedirects&&(this.lastUrl=_.urlAfterRedirects,this.processRouteUpdate(),this.initialRouteEventFired=!0)})}ngOnInit(){return this.ngZone.runOutsideAngular(()=>{this.updateTimeSubscription=Sh(5e3,5e3).subscribe(()=>this.ngZone.run(()=>{this.secondsSinceLastUpdate=Math.floor((Date.now()-this.lastUpdate)/1e3)}))}),this.initSubscription=$e(0).pipe(Ti(500)).subscribe(()=>{this.initialRouteEventFired||(this.lastUrl=window.location.href,this.processRouteUpdate())}),super.ngOnInit()}processRouteUpdate(){t.currentNodeKey=this.route.snapshot.params.key,this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.updateTabBar(),this.navigationsSubscription.unsubscribe(),this.startGettingData(!0)}updateTabBar(){if(this.lastUrl&&(this.lastUrl.includes("/info")||this.lastUrl.includes("/routing")||this.lastUrl.includes("/apps")&&!this.lastUrl.includes("/apps-list")))this.titleParts=["nodes.title","node.title"],this.tabsData=[{icon:"info",label:"node.tabs.info",onlyIfLessThanLg:!0,linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"info"]:null},{icon:"shuffle",label:"node.tabs.routing",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"routing"]:null},{icon:"apps",label:"node.tabs.apps",linkParts:t.currentNodeKey?["/nodes",t.currentNodeKey,"apps"]:null}],this.selectedTabIndex=1,this.showingInfo=!1,this.lastUrl.includes("/info")&&(this.selectedTabIndex=0,this.showingInfo=!0),this.lastUrl.includes("/apps")&&(this.selectedTabIndex=2),this.showingFullList=!1,this.nodeActionsHelper=new cP(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);else if(this.lastUrl&&(this.lastUrl.includes("/transports")||this.lastUrl.includes("/routes")||this.lastUrl.includes("/apps-list"))){this.showingFullList=!0,this.showingInfo=!1,this.nodeActionsHelper=new cP(this.injector,this.showingFullList),this.nodeActionsHelper.setCurrentNodeKey(t.currentNodeKey),this.node&&this.nodeActionsHelper.setCurrentNode(this.node);let e="transports";this.lastUrl.includes("/routes")?e="routes":this.lastUrl.includes("/apps-list")&&(e="apps.apps-list"),this.titleParts=["nodes.title","node.title",e+".title"],this.tabsData=[{icon:"view_headline",label:e+".list-title",linkParts:[]}],this.selectedTabIndex=0}else this.titleParts=[],this.tabsData=[]}performAction(e){this.nodeActionsHelper.performAction(e,t.currentNodeKey)}forceDataRefresh(e=!1){e&&(this.lastUpdateRequestedManually=!0),this.singleNodeDataService.forceSpecificNodeRefresh(t.currentNodeKey)}startGettingData(e){const i=e?this.getLocalValue(this.persistentDataResponseKey):null;let o=this.singleNodeDataService.startRequestingData(t.currentNodeKey);i&&(o=$e(JSON.parse(i.value))),this.dataSubscription=o.subscribe(s=>{if(i||this.saveLocalValue(this.persistentDataResponseKey,JSON.stringify(s)),this.updating=!s||s.updating,s&&!s.updating)if(s.data&&!s.error)this.node=s.data,this.trafficData=s.trafficData,t.nodeSubject.next(this.node),t.trafficDataSubject.next(this.trafficData),this.nodeActionsHelper&&this.nodeActionsHelper.setCurrentNode(this.node),this.snackbarService.closeCurrentIfTemporaryError(),this.lastUpdate=s.momentOfLastCorrectUpdate,this.secondsSinceLastUpdate=Math.floor((Date.now()-s.momentOfLastCorrectUpdate)/1e3),this.errorsUpdating=!1,this.lastUpdateRequestedManually&&(this.snackbarService.showDone("common.refreshed",null),this.lastUpdateRequestedManually=!1);else if(s.error){if(s.error.originalError&&400===s.error.originalError.status)return void(this.notFound=!0);this.errorsUpdating||this.snackbarService.showError(this.node?"node.error-load":"common.loading-error",null,!0,s.error),this.errorsUpdating=!0}i&&this.startGettingData(!1)})}ngOnDestroy(){this.singleNodeDataService.stopRequestingSpecificNode(t.currentNodeKey),this.dataSubscription.unsubscribe(),this.updateTimeSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.initSubscription.unsubscribe(),t.currentInstanceInternal=void 0,t.currentNodeKey=void 0,t.nodeSubject.complete(),t.nodeSubject=void 0,t.trafficDataSubject.complete(),t.trafficDataSubject=void 0,this.nodeActionsHelper.dispose()}}return t.\u0275fac=function(e){return new(e||t)(Y(Ji),Y(rJ),Y(Mr),Y(ft),Y(Dn),Y(Si),Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-node"]],features:[nt],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","returnText","optionSelected"],[4,"ngIf"],["class","w-100 h-100 d-flex not-found-label",4,"ngIf"],[1,"w-100","h-100","d-flex","not-found-label"],[3,"inline"],[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","secondsSinceLastUpdate","showLoading","showAlert","refeshRate","optionsData","returnText","optionSelected","refreshRequested"],[3,"ngClass"],[1,"d-flex","flex-column","h-100"],[1,"right-bar",3,"ngClass"],[3,"nodeInfo","trafficData",4,"ngIf"],[3,"nodeInfo","trafficData"]],template:function(e,i){1&e&&(V(0,aJ,5,8,"div",0),V(1,uJ,9,17,"div",1)),2&e&&(w("ngIf",!i.node),c(1),w("ngIf",i.node))},styles:[".not-found-label[_ngcontent-%COMP%]{align-items:center;justify-content:center;font-size:1rem;position:relative}.not-found-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:5px;font-size:22px;opacity:.5;margin-right:3px}.full-size-main-area[_ngcontent-%COMP%], .main-area[_ngcontent-%COMP%]{width:100%}@media (min-width: 992px){.main-area[_ngcontent-%COMP%]{width:73%;padding-right:20px;float:left}}.right-bar[_ngcontent-%COMP%]{width:27%;float:right;display:none}@media (min-width: 992px){.right-bar[_ngcontent-%COMP%]{display:block;width:27%;float:right}}"]}),t})();function hJ(t,n){if(1&t&&(D(0,"mat-option",10),I(1),R(2,"translate"),C()),2&t){const e=n.$implicit;Ln("value",e),c(1),vo(" ",e," ",H(2,3,"settings.seconds")," ")}}let fJ=(()=>{class t{constructor(e,i,o){this.formBuilder=e,this.storageService=i,this.snackbarService=o,this.timesList=["3","5","10","15","30","60","90","150","300"]}ngOnInit(){this.form=this.formBuilder.group({refreshRate:[this.storageService.getRefreshTime().toString()]}),this.subscription=this.form.get("refreshRate").valueChanges.subscribe(e=>{this.storageService.setRefreshTime(e),this.snackbarService.showDone("settings.refresh-rate-confirmation")})}ngOnDestroy(){this.subscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(xr),Y(Ji),Y(Dn))},t.\u0275cmp=Ze({type:t,selectors:[["app-refresh-rate"]],decls:14,vars:9,consts:[[1,"rounded-elevated-box"],[1,"box-internal-container","overflow"],[1,"white-form-help-icon-container"],[1,"help-icon",3,"inline","matTooltip"],[3,"formGroup"],[1,"white-form-field"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","refreshRate"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon",3),R(4,"translate"),I(5," help "),C()(),D(6,"form",4)(7,"mat-form-field",5)(8,"div",6)(9,"label",7),I(10),R(11,"translate"),C(),D(12,"mat-select",8),V(13,hJ,3,5,"mat-option",9),C()()()()()()),2&e&&(c(3),w("inline",!0)("matTooltip",H(4,5,"settings.refresh-rate-help")),c(3),w("formGroup",i.form),c(4),se(H(11,7,"settings.refresh-rate")),c(3),w("ngForOf",i.timesList))},dependencies:[gi,zi,Vi,ji,ii,Ei,ar,Cn,vi,tf,Pd,wt],styles:[".help-icon[_ngcontent-%COMP%]{display:inline}mat-form-field[_ngcontent-%COMP%]{margin-right:32px}mat-form-field[_ngcontent-%COMP%] .mat-mdc-form-field-bottom-align{margin-bottom:0!important}"]}),t})();const pJ=function(t){return{number:t}};let Og=(()=>{class t{constructor(){this.numberOfElements=0,this.linkParts=[""],this.queryParams={}}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-view-all-link"]],inputs:{numberOfElements:"numberOfElements",linkParts:"linkParts",queryParams:"queryParams"},decls:6,vars:9,consts:[[1,"main-container"],[3,"routerLink","queryParams"],[3,"inline"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"a",1),I(2),R(3,"translate"),D(4,"mat-icon",2),I(5,"chevron_right"),C()()()),2&e&&(c(1),w("routerLink",i.linkParts)("queryParams",i.queryParams),c(1),ce(" ",kt(3,4,"view-all-link.label",He(7,pJ,i.numberOfElements))," "),c(2),w("inline",!0))},dependencies:[qa,Cn,wt],styles:[".main-container[_ngcontent-%COMP%]{padding-top:20px;margin-bottom:4px;text-align:right;font-size:.875rem}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.main-container[_ngcontent-%COMP%]{margin:0;padding:16px}}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.main-container[_ngcontent-%COMP%] a[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:7px}"]}),t})();function mJ(t,n){1&t&&(D(0,"span",14),I(1),R(2,"translate"),D(3,"mat-icon",15),R(4,"translate"),I(5,"help"),C()()),2&t&&(c(1),ce(" ",H(2,3,"labels.title")," "),c(2),w("inline",!0)("matTooltip",H(4,5,"labels.info")))}function gJ(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function _J(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function bJ(t,n){if(1&t&&(D(0,"div",19)(1,"span"),I(2),R(3,"translate"),C(),V(4,gJ,3,3,"ng-container",20),V(5,_J,2,1,"ng-container",20),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function vJ(t,n){if(1&t){const e=et();D(0,"div",16),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,bJ,6,5,"div",17),D(2,"div",18),I(3),R(4,"translate"),C()()}if(2&t){const e=z();c(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),se(H(4,2,"filters.press-to-remove"))}}function yJ(t,n){if(1&t){const e=et();D(0,"mat-icon",21),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&t&&w("inline",!0)("matTooltip",H(1,2,"filters.filter-action"))}function MJ(t,n){if(1&t&&(D(0,"mat-icon",22),I(1,"more_horiz"),C()),2&t){z();const e=ci(9);w("inline",!0)("matMenuTriggerFor",e)}}const B1=function(){return["/settings","labels"]};function wJ(t,n){if(1&t&&xe(0,"app-paginator",23),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",qn(4,B1))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function CJ(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function xJ(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function kJ(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function SJ(t,n){if(1&t){const e=et();D(0,"tr")(1,"td",38)(2,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),I(4),C(),D(5,"td"),I(6),C(),D(7,"td"),I(8),R(9,"translate"),C(),D(10,"td",29)(11,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).delete(s.id))}),R(12,"translate"),D(13,"mat-icon",36),I(14,"close"),C()()()()}if(2&t){const e=n.$implicit,i=z(2);c(2),w("checked",i.selections.get(e.id)),c(2),ce(" ",e.label," "),c(2),ce(" ",e.id," "),c(2),vo(" ",i.getLabelTypeIdentification(e)[0]," - ",H(9,7,i.getLabelTypeIdentification(e)[1])," "),c(3),w("matTooltip",H(12,9,"labels.delete")),c(2),w("inline",!0)}}function DJ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.label")))}function TJ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.inverted-order")))}function LJ(t,n){if(1&t){const e=et();D(0,"tr")(1,"td")(2,"div",33)(3,"div",41)(4,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",34)(6,"div",42)(7,"span",1),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",43)(12,"span",1),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",42)(17,"span",1),I(18),R(19,"translate"),C(),I(20),R(21,"translate"),C()(),xe(22,"div",44),D(23,"div",35)(24,"button",45),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(25,"translate"),D(26,"mat-icon"),I(27),C()()()()()()}if(2&t){const e=n.$implicit,i=z(2);c(4),w("checked",i.selections.get(e.id)),c(4),se(H(9,10,"labels.label")),c(2),ce(": ",e.label," "),c(3),se(H(14,12,"labels.id")),c(2),ce(": ",e.id," "),c(3),se(H(19,14,"labels.type")),c(2),vo(": ",i.getLabelTypeIdentification(e)[0]," - ",H(21,16,i.getLabelTypeIdentification(e)[1])," "),c(4),w("matTooltip",H(25,18,"common.options")),c(3),se("add")}}function EJ(t,n){if(1&t&&xe(0,"app-view-all-link",46),2&t){const e=z(2);w("numberOfElements",e.filteredLabels.length)("linkParts",qn(3,B1))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const IJ=function(t,n){return{"small-node-list-margins":t,"full-node-list-margins":n}},PJ=function(t){return{"d-lg-none d-xl-table":t}},OJ=function(t){return{"d-lg-table d-xl-none":t}};function AJ(t,n){if(1&t){const e=et();D(0,"div",24)(1,"div",25)(2,"table",26)(3,"tr"),xe(4,"th"),D(5,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.labelSortData))}),I(6),R(7,"translate"),V(8,CJ,2,2,"mat-icon",28),C(),D(9,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.idSortData))}),I(10),R(11,"translate"),V(12,xJ,2,2,"mat-icon",28),C(),D(13,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),I(14),R(15,"translate"),V(16,kJ,2,2,"mat-icon",28),C(),xe(17,"th",29),C(),V(18,SJ,15,11,"tr",30),C(),D(19,"table",31)(20,"tr",32),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(21,"td")(22,"div",33)(23,"div",34)(24,"div",1),I(25),R(26,"translate"),C(),D(27,"div"),I(28),R(29,"translate"),V(30,DJ,3,3,"ng-container",20),V(31,TJ,3,3,"ng-container",20),C()(),D(32,"div",35)(33,"mat-icon",36),I(34,"keyboard_arrow_down"),C()()()()(),V(35,LJ,28,20,"tr",30),C(),V(36,EJ,1,4,"app-view-all-link",37),C()()}if(2&t){const e=z();c(1),w("ngClass",mn(27,IJ,e.showShortList_,!e.showShortList_)),c(1),w("ngClass",He(30,PJ,e.showShortList_)),c(4),ce(" ",H(7,17,"labels.label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.labelSortData),c(2),ce(" ",H(11,19,"labels.id")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.idSortData),c(2),ce(" ",H(15,21,"labels.type")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),w("ngForOf",e.dataSource),c(1),w("ngClass",He(32,OJ,e.showShortList_)),c(6),se(H(26,23,"tables.sorting-title")),c(3),ce("",H(29,25,e.dataSorter.currentSortingColumn.label)," "),c(2),w("ngIf",e.dataSorter.currentlySortingByLabel),c(1),w("ngIf",e.dataSorter.sortingInReverseOrder),c(2),w("inline",!0),c(2),w("ngForOf",e.dataSource),c(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function FJ(t,n){1&t&&(D(0,"span",50),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"labels.empty")))}function RJ(t,n){1&t&&(D(0,"span",50),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"labels.empty-with-filter")))}function NJ(t,n){if(1&t&&(D(0,"div",24)(1,"div",47)(2,"mat-icon",48),I(3,"warning"),C(),V(4,FJ,3,3,"span",49),V(5,RJ,3,3,"span",49),C()()),2&t){const e=z();c(2),w("inline",!0),c(2),w("ngIf",0===e.allLabels.length),c(1),w("ngIf",0!==e.allLabels.length)}}function YJ(t,n){if(1&t&&xe(0,"app-paginator",23),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",qn(4,B1))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const HJ=function(t){return{"paginator-icons-fixer":t}};let dP=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredLabels)}constructor(e,i,o,s,a,l){this.dialog=e,this.route=i,this.router=o,this.snackbarService=s,this.translateService=a,this.storageService=l,this.listId="ll",this.labelSortData=new Vn(["label"],"labels.label",Zt.Text),this.idSortData=new Vn(["id"],"labels.id",Zt.Text),this.typeSortData=new Vn(["identifiedElementType_sort"],"labels.type",Zt.Text),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"labels.filter-dialog.label",keyNameInElementsArray:"label",type:$n.TextInput,maxlength:100},{filterName:"labels.filter-dialog.id",keyNameInElementsArray:"id",type:$n.TextInput,maxlength:66},{filterName:"labels.filter-dialog.type",keyNameInElementsArray:"identifiedElementType",type:$n.Select,printableLabelsForValues:[{value:"",label:"labels.filter-dialog.type-options.any"},{value:Xi.Node,label:"labels.filter-dialog.type-options.visor"},{value:Xi.DmsgServer,label:"labels.filter-dialog.type-options.dmsg-server"},{value:Xi.Transport,label:"labels.filter-dialog.type-options.transport"}]}],this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,[this.labelSortData,this.idSortData,this.typeSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new Nd(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(_=>{this.filteredLabels=_,this.dataSorter.setData(this.filteredLabels)}),this.loadData(),this.navigationsSubscription=this.route.paramMap.subscribe(_=>{if(_.has("page")){let E=Number.parseInt(_.get("page"),10);(isNaN(E)||E<1)&&(E=1),this.currentPageInUrl=E,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose()}loadData(){this.allLabels=this.storageService.getSavedLabels(),this.allLabels.forEach(e=>{e.identifiedElementType_sort=this.getLabelTypeIdentification(e)[0]}),this.dataFilterer.setData(this.allLabels)}getLabelTypeIdentification(e){return e.identifiedElementType===Xi.Node?["1","labels.filter-dialog.type-options.visor"]:e.identifiedElementType===Xi.DmsgServer?["2","labels.filter-dialog.type-options.dmsg-server"]:e.identifiedElementType===Xi.Transport?["3","labels.filter-dialog.type-options.transport"]:void 0}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Jt.createConfirmationDialog(this.dialog,"labels.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.close(),this.selections.forEach((i,o)=>{i&&this.storageService.saveLabel(o,"",null)}),this.snackbarService.showDone("labels.deleted"),this.loadData()})}showOptionsDialog(e){qr.openDialog(this.dialog,[{icon:"close",label:"labels.delete"}],"common.options").afterClosed().subscribe(o=>{1===o&&this.delete(e.id)})}delete(e){const i=Jt.createConfirmationDialog(this.dialog,"labels.delete-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.storageService.saveLabel(e,"",null),this.snackbarService.showDone("labels.deleted"),this.loadData()})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredLabels){const e=this.showShortList_?Vt.maxShortListElements:Vt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredLabels.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.labelsToShow=this.filteredLabels.slice(i,i+e);const s=new Map;this.labelsToShow.forEach(l=>{s.set(l.id,!0),this.selections.has(l.id)||this.selections.set(l.id,!1)});const a=[];this.selections.forEach((l,d)=>{s.has(d)||a.push(d)}),a.forEach(l=>{this.selections.delete(l)})}else this.labelsToShow=null,this.selections=new Map;this.dataSource=this.labelsToShow}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(Mr),Y(hn),Y(Dn),Y(To),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-label-list"]],inputs:{showShortList:"showShortList"},decls:23,vars:22,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"inline","matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"inline","matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline",4,"ngIf"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],[1,"check-part"],[1,"list-row"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,mJ,6,7,"span",2),V(3,vJ,5,4,"div",3),C(),D(4,"div",4)(5,"div",5),V(6,yJ,3,4,"mat-icon",6),V(7,MJ,2,2,"mat-icon",7),D(8,"mat-menu",8,9)(10,"div",10),ye("click",function(){return i.changeAllSelections(!0)}),I(11),R(12,"translate"),C(),D(13,"div",10),ye("click",function(){return i.changeAllSelections(!1)}),I(14),R(15,"translate"),C(),D(16,"div",11),ye("click",function(){return i.deleteSelected()}),I(17),R(18,"translate"),C()()(),V(19,wJ,1,5,"app-paginator",12),C()(),V(20,AJ,37,34,"div",13),V(21,NJ,6,3,"div",13),V(22,YJ,1,5,"app-paginator",12)),2&e&&(w("ngClass",He(20,HJ,!i.showShortList_&&i.numberOfPages>1&&i.dataSource)),c(2),w("ngIf",i.showShortList_),c(1),w("ngIf",i.dataFilterer.currentFiltersTexts&&i.dataFilterer.currentFiltersTexts.length>0),c(3),w("ngIf",i.allLabels&&i.allLabels.length>0),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("overlapTrigger",!1),c(3),ce(" ",H(12,14,"selection.select-all")," "),c(3),ce(" ",H(15,16,"selection.unselect-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(18,18,"selection.delete-all")," "),c(2),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("ngIf",!i.dataSource||0===i.dataSource.length),c(1),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource))},dependencies:[Nn,gi,Ft,Wr,el,Cn,vi,Yd,pa,Hd,fa,Og,Bd,wt],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]}),t})();function BJ(t,n){1&t&&xe(0,"app-password")}function VJ(t,n){1&t&&(D(0,"div",8),xe(1,"mat-spinner",9),I(2),R(3,"translate"),C()),2&t&&(c(1),w("diameter",11),c(1),ce(" ",H(3,2,"settings.checking-auth")," "))}const jJ=function(){return["start.title"]};let zJ=(()=>{class t extends er{constructor(e,i,o,s){super(),this.authService=e,this.router=i,this.snackbarService=o,this.dialog=s,this.persistentAuthDataResponseKey="serv-aut-response",this.tabsData=[],this.options=[],this.waitBeforeShowingLoading=!0,this.authChecked=!1,this.authActive=!1,this.tabsData=[{icon:"view_headline",label:"nodes.title",linkParts:["/nodes"]},{icon:"language",label:"nodes.dmsg-title",linkParts:["/nodes","dmsg"]},{icon:"settings",label:"settings.title",linkParts:["/settings"]}],this.updateOptionsMenu()}ngOnInit(){return setTimeout(()=>{this.waitBeforeShowingLoading=!1},500),this.checkAuth(0,!0),super.ngOnInit()}checkAuth(e,i){const o=i?this.getLocalValue(this.persistentAuthDataResponseKey):null;let s=this.authService.checkLogin();o&&(s=$e(JSON.parse(o.value))),this.authSubscription=$e(1).pipe(Ti(e),Ye(()=>s)).subscribe(a=>{o||this.saveLocalValue(this.persistentAuthDataResponseKey,JSON.stringify(a)),this.authChecked=!0,this.authActive=a===Fr.Logged,this.updateOptionsMenu(),o&&this.checkAuth(0,!1)},()=>{this.checkAuth(15e3,!1)})}ngOnDestroy(){this.authSubscription.unsubscribe()}updateOptionsMenu(){this.options=[],this.authActive&&(this.options=[{name:"common.logout",actionName:"logout",icon:"power_settings_new"}])}performAction(e){"logout"===e&&this.logout()}logout(){const e=Jt.createConfirmationDialog(this.dialog,"common.logout-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.authService.logout().subscribe(()=>this.router.navigate(["login"]),()=>this.snackbarService.showError("common.logout-error"))})}}return t.\u0275fac=function(e){return new(e||t)(Y(Wh),Y(hn),Y(Dn),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-settings"]],features:[nt],decls:8,vars:9,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","optionsData","optionSelected"],[1,"content","col-12","mt-4.5"],[1,"d-block","mb-4"],[4,"ngIf"],["class","white-theme checking-container",4,"ngIf"],[3,"showShortList"],[1,"white-theme","checking-container"],[3,"diameter"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"app-top-bar",2),ye("optionSelected",function(s){return i.performAction(s)}),C()(),D(3,"div",3),xe(4,"app-refresh-rate",4),V(5,BJ,1,0,"app-password",5),V(6,VJ,4,4,"div",6),xe(7,"app-label-list",7),C()()),2&e&&(c(2),w("titleParts",qn(8,jJ))("tabsData",i.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("optionsData",i.options),c(3),w("ngIf",i.authChecked&&i.authActive),c(1),w("ngIf",!i.authChecked&&!i.waitBeforeShowingLoading),c(1),w("showShortList",!0))},dependencies:[Ft,ec,FI,fJ,sc,dP,wt],styles:[".checking-container[_ngcontent-%COMP%]{font-size:10px;opacity:.5}.checking-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block}.show-link[_ngcontent-%COMP%]{cursor:pointer;font-size:.8rem}"]}),t})(),V1=(()=>{class t{constructor(e){this.apiService=e}create(e,i,o){const s={remote_pk:i};return o&&(s.transport_type=o),this.apiService.post(`visors/${e}/transports`,s)}delete(e,i){return this.apiService.delete(`visors/${e}/transports/${i}`)}savePersistentTransportsData(e,i){return this.apiService.put(`visors/${e}/persistent-transports`,i)}getPersistentTransports(e){return this.apiService.get(`visors/${e}/persistent-transports`)}types(e){return this.apiService.get(`visors/${e}/transport-types`)}changeAutoconnectSetting(e,i){const o={};return o.public_autoconnect=i,this.apiService.put(`visors/${e}/public-autoconnect`,o)}}return t.\u0275fac=function(e){return new(e||t)(we(il))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const UJ=["button"],WJ=["firstInput"];function $J(t,n){1&t&&xe(0,"app-loading-indicator",5),2&t&&w("showWhite",!1)}function GJ(t,n){1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),se(H(3,1,"transports.dialog.errors.remote-key-length-error")))}function qJ(t,n){1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"transports.dialog.errors.remote-key-chars-error")))}function KJ(t,n){if(1&t&&(D(0,"mat-option",19),I(1),C()),2&t){const e=n.$implicit;w("value",e),c(1),se(e)}}const Ag=function(t){return{"element-disabled":t}};function ZJ(t,n){if(1&t){const e=et();D(0,"form",6)(1,"mat-form-field",7)(2,"div",8)(3,"label",9),I(4),R(5,"translate"),C(),xe(6,"input",10,11),C(),D(8,"mat-error"),V(9,GJ,4,3,"ng-container",12),C(),V(10,qJ,3,3,"ng-template",null,13,Es),C(),D(12,"mat-form-field",7)(13,"div",8)(14,"label",9),I(15),R(16,"translate"),C(),xe(17,"input",14),C()(),D(18,"mat-form-field",7)(19,"div",8)(20,"label",9),I(21),R(22,"translate"),C(),D(23,"mat-select",15),V(24,KJ,2,2,"mat-option",16),C()(),D(25,"mat-error")(26,"span"),I(27),R(28,"translate"),C()()(),D(29,"mat-checkbox",17),ye("change",function(o){return Pe(e),Oe(z().setMakePersistent(o))}),I(30),R(31,"translate"),D(32,"mat-icon",18),R(33,"translate"),I(34,"help"),C()()()}if(2&t){const e=ci(11),i=z();w("formGroup",i.form),c(1),w("ngClass",He(28,Ag,i.disableDismiss)),c(3),se(H(5,16,"transports.dialog.remote-key")),c(5),w("ngIf",!i.form.get("remoteKey").hasError("pattern"))("ngIfElse",e),c(3),w("ngClass",He(30,Ag,i.disableDismiss)),c(3),se(H(16,18,"transports.dialog.label")),c(3),w("ngClass",He(32,Ag,i.disableDismiss)),c(3),se(H(22,20,"transports.dialog.transport-type")),c(3),w("ngForOf",i.types),c(3),se(H(28,22,"transports.dialog.errors.transport-type-error")),c(2),w("checked",i.makePersistent)("ngClass",He(34,Ag,i.disableDismiss)),c(1),ce(" ",H(31,24,"transports.dialog.make-persistent")," "),c(2),w("inline",!0)("matTooltip",H(33,26,"transports.dialog.persistent-tooltip"))}}let XJ=(()=>{class t{static openDialog(e){const i=new En;return i.autoFocus=!1,i.width=Vt.mediumModalWidth,e.open(t,i)}constructor(e,i,o,s,a,l){this.transportService=e,this.formBuilder=i,this.dialogRef=o,this.snackbarService=s,this.storageService=a,this.nodeService=l,this.makePersistent=!1,this.shouldShowError=!0}ngOnInit(){this.form=this.formBuilder.group({remoteKey:["",Gt.compose([Gt.required,Gt.minLength(66),Gt.maxLength(66),Gt.pattern("^[0-9a-fA-F]+$")])],label:[""],type:["",Gt.required]}),this.loadData(0)}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setMakePersistent(e){this.makePersistent=!!e.checked}create(){if(!this.form.valid||this.button.disabled)return;this.button.showLoading();const e=this.form.get("remoteKey").value,i=this.form.get("type").value,o=this.form.get("label").value;if(this.makePersistent){const s=this.transportService.getPersistentTransports(Ct.getCurrentNodeKey());this.operationSubscription=s.subscribe(a=>{const l=a||[];let d=!1;l.forEach(_=>{_.pk.toUpperCase()===e.toUpperCase()&&_.type.toUpperCase()===i.toUpperCase()&&(d=!0)}),d?this.createTransport(e,i,o,!0):this.createPersistent(l,e,i,o)},a=>{this.onError(a)})}else this.createTransport(e,i,o,!1)}createPersistent(e,i,o,s){e.push({pk:i,type:o}),this.operationSubscription=this.transportService.savePersistentTransportsData(Ct.getCurrentNodeKey(),e).subscribe(()=>{this.createTransport(i,o,s,!0)},a=>{this.onError(a)})}createTransport(e,i,o,s){this.operationSubscription=this.transportService.create(Ct.getCurrentNodeKey(),e,i).subscribe(a=>{let l=!1;o&&(a&&a.id?this.storageService.saveLabel(a.id,o,Xi.Transport):l=!0),Ct.refreshCurrentDisplayedData(),this.dialogRef.close(),l?this.snackbarService.showWarning("transports.dialog.success-without-label"):this.snackbarService.showDone("transports.dialog.success")},a=>{s?(Ct.refreshCurrentDisplayedData(),this.dialogRef.close(),this.snackbarService.showWarning("transports.dialog.only-persistent-created")):this.onError(a)})}onError(e){this.button.showError(),e=en(e),this.snackbarService.showError(e)}loadData(e){this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataSubscription=$e(1).pipe(Ti(e),Ye(()=>this.transportService.types(Ct.getCurrentNodeKey()))).subscribe(i=>{i.sort((s,a)=>"stcp"===s.toLowerCase()?1:"stcp"===a.toLowerCase()?-1:s.localeCompare(a));let o=i.findIndex(s=>"dmsg"===s.toLowerCase());o=-1!==o?o:0,this.types=i,this.form.get("type").setValue(i[o]),this.snackbarService.closeCurrentIfTemporaryError(),setTimeout(()=>this.firstInput.nativeElement.focus())},i=>{i=en(i),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,i),this.shouldShowError=!1),this.loadData(Vt.connectionRetryDelay)})}}return t.\u0275fac=function(e){return new(e||t)(Y(V1),Y(xr),Y(Bn),Y(Dn),Y(Ji),Y(ua))},t.\u0275cmp=Ze({type:t,selectors:[["app-create-transport"]],viewQuery:function(e,i){if(1&e&&(_t(UJ,5),_t(WJ,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:8,vars:11,consts:[[3,"headline","dialog","disableDismiss"],[3,"showWhite",4,"ngIf"],[3,"formGroup",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],[3,"showWhite"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","remoteKey","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],["formControlName","label","maxlength","66","matInput",""],["formControlName","type"],[3,"value",4,"ngFor","ngForOf"],["color","primary",3,"checked","ngClass","change"],[1,"help-icon",3,"inline","matTooltip"],[3,"value"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),V(2,$J,1,1,"app-loading-indicator",1),V(3,ZJ,35,36,"form",2),D(4,"app-button",3,4),ye("action",function(){return i.create()}),I(6),R(7,"translate"),C()()),2&e&&(w("headline",H(1,7,"transports.create"))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(2),w("ngIf",!i.types),c(1),w("ngIf",i.types),c(1),w("disabled",!i.form.valid),c(2),ce(" ",H(7,9,"transports.create")," "))},dependencies:[Nn,gi,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Cn,vi,tf,Pd,fa,Ui,ei,as,wt],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]}),t})();function JJ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),D(3,"mat-icon",6),R(4,"translate"),I(5,"help"),C(),We()),2&t&&(c(1),ce(" ",H(2,3,"common.yes")," "),c(2),w("inline",!0)("matTooltip",H(4,5,"transports.persistent-transport-tooltip")))}function QJ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"common.no")))}let eQ=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.largeModalWidth,e.open(t,o)}constructor(e,i){this.data=e,this.dialogRef=i}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn))},t.\u0275cmp=Ze({type:t,selectors:[["app-transport-details"]],decls:51,vars:45,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[4,"ngIf"],[1,"title"],[1,"help-icon","d-none","d-md-inline",3,"inline","matTooltip"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div")(3,"div",1)(4,"mat-icon",2),I(5,"list"),C(),I(6),R(7,"translate"),C(),D(8,"div",3)(9,"span"),I(10),R(11,"translate"),C(),V(12,JJ,6,7,"ng-container",4),V(13,QJ,3,3,"ng-container",4),C(),D(14,"div",3)(15,"span"),I(16),R(17,"translate"),C(),I(18),C(),D(19,"div",3)(20,"span"),I(21),R(22,"translate"),C(),I(23),C(),D(24,"div",3)(25,"span"),I(26),R(27,"translate"),C(),I(28),C(),D(29,"div",3)(30,"span"),I(31),R(32,"translate"),C(),I(33),C(),D(34,"div",5)(35,"mat-icon",2),I(36,"import_export"),C(),I(37),R(38,"translate"),C(),D(39,"div",3)(40,"span"),I(41),R(42,"translate"),C(),I(43),R(44,"autoScale"),C(),D(45,"div",3)(46,"span"),I(47),R(48,"translate"),C(),I(49),R(50,"autoScale"),C()()()),2&e&&(w("headline",H(1,21,"transports.details.title"))("dialog",i.dialogRef),c(4),w("inline",!0),c(2),ce("",H(7,23,"transports.details.basic.title")," "),c(4),se(H(11,25,"transports.details.basic.persistent")),c(2),w("ngIf",i.data.isPersistent),c(1),w("ngIf",!i.data.isPersistent),c(3),se(H(17,27,"transports.details.basic.id")),c(2),ce(" ",i.data.id," "),c(3),se(H(22,29,"transports.details.basic.local-pk")),c(2),ce(" ",i.data.localPk," "),c(3),se(H(27,31,"transports.details.basic.remote-pk")),c(2),ce(" ",i.data.remotePk," "),c(3),se(H(32,33,"transports.details.basic.type")),c(2),ce(" ",i.data.type," "),c(2),w("inline",!0),c(2),ce("",H(38,35,"transports.details.data.title")," "),c(4),se(H(42,37,"transports.details.data.uploaded")),c(2),ce(" ",H(44,39,i.data.sent)," "),c(4),se(H(48,41,"transports.details.data.downloaded")),c(2),ce(" ",H(50,43,i.data.recv)," "))},dependencies:[Ft,Cn,vi,ei,wt,sf],styles:[".help-icon[_ngcontent-%COMP%]{opacity:.5;font-size:14px;cursor:default}"]}),t})();function tQ(t,n){1&t&&(D(0,"span",15),I(1),R(2,"translate"),D(3,"mat-icon",16),R(4,"translate"),I(5,"help"),C()()),2&t&&(c(1),ce(" ",H(2,3,"transports.title")," "),c(2),w("inline",!0)("matTooltip",H(4,5,"transports.info")))}function nQ(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function iQ(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function rQ(t,n){if(1&t&&(D(0,"div",20)(1,"span"),I(2),R(3,"translate"),C(),V(4,nQ,3,3,"ng-container",21),V(5,iQ,2,1,"ng-container",21),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function oQ(t,n){if(1&t){const e=et();D(0,"div",17),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,rQ,6,5,"div",18),D(2,"div",19),I(3),R(4,"translate"),C()()}if(2&t){const e=z();c(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),se(H(4,2,"filters.press-to-remove"))}}function sQ(t,n){if(1&t){const e=et();D(0,"mat-icon",22),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),I(1,"filter_list"),C()}2&t&&w("inline",!0)}function aQ(t,n){if(1&t&&(D(0,"mat-icon",23),I(1,"more_horiz"),C()),2&t){z();const e=ci(11);w("inline",!0)("matMenuTriggerFor",e)}}const j1=function(t){return["/nodes",t,"transports"]};function lQ(t,n){if(1&t&&xe(0,"app-paginator",24),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",He(4,j1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function cQ(t,n){if(1&t&&(D(0,"mat-icon",39),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function dQ(t,n){1&t&&(Ue(0),I(1,"*"),We())}function uQ(t,n){if(1&t&&(Ue(0),D(1,"mat-icon",39),I(2),C(),V(3,dQ,2,0,"ng-container",21),We()),2&t){const e=z(2);c(1),w("inline",!0),c(1),se(e.dataSorter.sortingArrow),c(1),w("ngIf",e.dataSorter.currentlySortingByLabel)}}function hQ(t,n){1&t&&(Ue(0),I(1,"*"),We())}function fQ(t,n){if(1&t&&(Ue(0),D(1,"mat-icon",39),I(2),C(),V(3,hQ,2,0,"ng-container",21),We()),2&t){const e=z(2);c(1),w("inline",!0),c(1),se(e.dataSorter.sortingArrow),c(1),w("ngIf",e.dataSorter.currentlySortingByLabel)}}function pQ(t,n){if(1&t&&(D(0,"mat-icon",39),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function mQ(t,n){if(1&t&&(D(0,"mat-icon",39),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function gQ(t,n){if(1&t&&(D(0,"mat-icon",39),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function _Q(t,n){if(1&t){const e=et();D(0,"button",48),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).changeIfPersistent([o],!1))}),R(1,"translate"),D(2,"mat-icon",49),I(3,"star"),C()()}2&t&&(w("matTooltip",H(1,2,"transports.persistent-transport-button-tooltip")),c(2),w("inline",!0))}function bQ(t,n){if(1&t){const e=et();D(0,"button",48),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).changeIfPersistent([o],!0))}),R(1,"translate"),D(2,"mat-icon",50),I(3,"star_outline"),C()()}2&t&&(w("matTooltip",H(1,2,"transports.non-persistent-transport-button-tooltip")),c(2),w("inline",!0))}function vQ(t,n){1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"transports.offline")))}function yQ(t,n){if(1&t){const e=et();D(0,"td")(1,"app-labeled-element-text",51),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C(),V(2,vQ,3,3,"span",21),C()}if(2&t){const e=z().$implicit,i=z(2);c(1),Ln("id",e.id),w("short",!0)("elementType",i.labeledElementTypes.Transport),c(1),w("ngIf",e.notFound)}}function MQ(t,n){1&t&&(D(0,"td"),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"transports.offline")," "))}function wQ(t,n){if(1&t&&(D(0,"td"),I(1),R(2,"autoScale"),C()),2&t){const e=z().$implicit;c(1),ce(" ",H(2,1,e.sent)," ")}}function CQ(t,n){if(1&t&&(D(0,"td"),I(1),R(2,"autoScale"),C()),2&t){const e=z().$implicit;c(1),ce(" ",H(2,1,e.recv)," ")}}function xQ(t,n){1&t&&(D(0,"td"),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"transports.offline")," "))}function kQ(t,n){1&t&&(D(0,"td"),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"transports.offline")," "))}function SQ(t,n){if(1&t){const e=et();D(0,"button",52),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).details(o))}),R(1,"translate"),D(2,"mat-icon",39),I(3,"visibility"),C()()}2&t&&(w("matTooltip",H(1,2,"transports.details.title")),c(2),w("inline",!0))}function DQ(t,n){if(1&t){const e=et();D(0,"button",52),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).delete(o))}),R(1,"translate"),D(2,"mat-icon",39),I(3,"close"),C()()}2&t&&(w("matTooltip",H(1,2,"transports.delete")),c(2),w("inline",!0))}const uP=function(t){return{offline:t}};function TQ(t,n){if(1&t){const e=et();D(0,"tr",42)(1,"td",43)(2,"mat-checkbox",44),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),V(4,_Q,4,4,"button",45),V(5,bQ,4,4,"button",45),C(),V(6,yQ,3,4,"td",21),V(7,MQ,3,3,"td",21),D(8,"td")(9,"app-labeled-element-text",46),ye("labelEdited",function(){return Pe(e),Oe(z(2).refreshData())}),C()(),D(10,"td"),I(11),C(),V(12,wQ,3,3,"td",21),V(13,CQ,3,3,"td",21),V(14,xQ,3,3,"td",21),V(15,kQ,3,3,"td",21),D(16,"td",32),V(17,SQ,4,4,"button",47),V(18,DQ,4,4,"button",47),C()()}if(2&t){const e=n.$implicit,i=z(2);w("ngClass",He(15,uP,e.notFound)),c(2),w("checked",i.selections.get(e.id)),c(2),w("ngIf",e.isPersistent),c(1),w("ngIf",!e.isPersistent),c(1),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound),c(2),Ln("id",e.remotePk),w("short",!0),c(2),ce(" ",e.type," "),c(1),w("ngIf",!e.notFound),c(1),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound),c(1),w("ngIf",e.notFound),c(2),w("ngIf",!e.notFound),c(1),w("ngIf",!e.notFound)}}function LQ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.label")))}function EQ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.inverted-order")))}function IQ(t,n){1&t&&(D(0,"div",59)(1,"div",59)(2,"mat-icon",62),I(3,"star"),C(),I(4,"\xa0 "),D(5,"span",63),I(6),R(7,"translate"),C()()()),2&t&&(c(2),w("inline",!0),c(4),se(H(7,2,"transports.persistent")))}function PQ(t,n){if(1&t){const e=et();D(0,"app-labeled-element-text",64),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()}if(2&t){const e=z().$implicit,i=z(2);Ln("id",e.id),w("elementType",i.labeledElementTypes.Transport)}}function OQ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"transports.offline")))}function AQ(t,n){if(1&t&&(Ue(0),I(1),R(2,"autoScale"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.sent))}}function FQ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"transports.offline")))}function RQ(t,n){if(1&t&&(Ue(0),I(1),R(2,"autoScale"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.recv))}}function NQ(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"transports.offline")))}function YQ(t,n){if(1&t){const e=et();D(0,"tr")(1,"td")(2,"div",53)(3,"div",54)(4,"mat-checkbox",44),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",37),V(6,IQ,8,4,"div",55),D(7,"div",56)(8,"span",1),I(9),R(10,"translate"),C(),I(11,": "),V(12,PQ,1,2,"app-labeled-element-text",57),V(13,OQ,3,3,"ng-container",21),C(),D(14,"div",56)(15,"span",1),I(16),R(17,"translate"),C(),I(18,": "),D(19,"app-labeled-element-text",58),ye("labelEdited",function(){return Pe(e),Oe(z(2).refreshData())}),C()(),D(20,"div",59)(21,"span",1),I(22),R(23,"translate"),C(),I(24),C(),D(25,"div",59)(26,"span",1),I(27),R(28,"translate"),C(),I(29,": "),V(30,AQ,3,3,"ng-container",21),V(31,FQ,3,3,"ng-container",21),C(),D(32,"div",59)(33,"span",1),I(34),R(35,"translate"),C(),I(36,": "),V(37,RQ,3,3,"ng-container",21),V(38,NQ,3,3,"ng-container",21),C()(),xe(39,"div",60),D(40,"div",38)(41,"button",61),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(42,"translate"),D(43,"mat-icon"),I(44),C()()()()()()}if(2&t){const e=n.$implicit,i=z(2);c(2),w("ngClass",He(30,uP,e.notFound)),c(2),w("checked",i.selections.get(e.id)),c(2),w("ngIf",e.isPersistent),c(3),se(H(10,18,"transports.id")),c(3),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound),c(3),se(H(17,20,"transports.remote-node")),c(3),Ln("id",e.remotePk),c(3),se(H(23,22,"transports.type")),c(2),ce(": ",e.type," "),c(3),se(H(28,24,"common.uploaded")),c(3),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound),c(3),se(H(35,26,"common.downloaded")),c(3),w("ngIf",!e.notFound),c(1),w("ngIf",e.notFound),c(3),w("matTooltip",H(42,28,"common.options")),c(3),se("add")}}function HQ(t,n){if(1&t&&xe(0,"app-view-all-link",65),2&t){const e=z(2);w("numberOfElements",e.filteredTransports.length)("linkParts",He(3,j1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const BQ=function(t,n){return{"small-node-list-margins":t,"full-node-list-margins":n}},VQ=function(t){return{"d-lg-none d-xl-table":t}},jQ=function(t){return{"d-lg-table d-xl-none":t}};function zQ(t,n){if(1&t){const e=et();D(0,"div",25)(1,"div",26)(2,"table",27)(3,"tr"),xe(4,"th"),D(5,"th",28),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.persistentSortData))}),R(6,"translate"),D(7,"mat-icon",29),I(8,"star_outline"),C(),V(9,cQ,2,2,"mat-icon",30),C(),D(10,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.idSortData))}),I(11),R(12,"translate"),V(13,uQ,4,3,"ng-container",21),C(),D(14,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.remotePkSortData))}),I(15),R(16,"translate"),V(17,fQ,4,3,"ng-container",21),C(),D(18,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),I(19),R(20,"translate"),V(21,pQ,2,2,"mat-icon",30),C(),D(22,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.uploadedSortData))}),I(23),R(24,"translate"),V(25,mQ,2,2,"mat-icon",30),C(),D(26,"th",31),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.downloadedSortData))}),I(27),R(28,"translate"),V(29,gQ,2,2,"mat-icon",30),C(),xe(30,"th",32),C(),V(31,TQ,19,17,"tr",33),C(),D(32,"table",34)(33,"tr",35),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(34,"td")(35,"div",36)(36,"div",37)(37,"div",1),I(38),R(39,"translate"),C(),D(40,"div"),I(41),R(42,"translate"),V(43,LQ,3,3,"ng-container",21),V(44,EQ,3,3,"ng-container",21),C()(),D(45,"div",38)(46,"mat-icon",39),I(47,"keyboard_arrow_down"),C()()()()(),V(48,YQ,45,32,"tr",40),C(),V(49,HQ,1,5,"app-view-all-link",41),C()()}if(2&t){const e=z();c(1),w("ngClass",mn(39,BQ,e.showShortList_,!e.showShortList_)),c(1),w("ngClass",He(42,VQ,e.showShortList_)),c(3),w("matTooltip",H(6,23,"transports.persistent-tooltip")),c(4),w("ngIf",e.dataSorter.currentSortingColumn===e.persistentSortData),c(2),ce(" ",H(12,25,"transports.id")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.idSortData),c(2),ce(" ",H(16,27,"transports.remote-node")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.remotePkSortData),c(2),ce(" ",H(20,29,"transports.type")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),ce(" ",H(24,31,"common.uploaded")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.uploadedSortData),c(2),ce(" ",H(28,33,"common.downloaded")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.downloadedSortData),c(2),w("ngForOf",e.dataSource),c(1),w("ngClass",He(44,jQ,e.showShortList_)),c(6),se(H(39,35,"tables.sorting-title")),c(3),ce("",H(42,37,e.dataSorter.currentSortingColumn.label)," "),c(2),w("ngIf",e.dataSorter.currentlySortingByLabel),c(1),w("ngIf",e.dataSorter.sortingInReverseOrder),c(2),w("inline",!0),c(2),w("ngForOf",e.dataSource),c(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function UQ(t,n){1&t&&(D(0,"span",69),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"transports.empty")))}function WQ(t,n){1&t&&(D(0,"span",69),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"transports.empty-with-filter")))}function $Q(t,n){if(1&t&&(D(0,"div",25)(1,"div",66)(2,"mat-icon",67),I(3,"warning"),C(),V(4,UQ,3,3,"span",68),V(5,WQ,3,3,"span",68),C()()),2&t){const e=z();c(2),w("inline",!0),c(2),w("ngIf",0===e.allTransports.length),c(1),w("ngIf",0!==e.allTransports.length)}}function GQ(t,n){if(1&t&&xe(0,"app-paginator",24),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",He(4,j1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const qQ=function(t){return{"paginator-icons-fixer":t}};let hP=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredTransports)}set node(e){this.currentNode=e,this.allTransports=e.transports,this.nodePK=e.localPk;const i=new Map;e.persistentTransports.forEach(o=>i.set(this.getPersistentTransportID(o.pk,o.type),o)),this.allTransports.forEach(o=>{i.has(this.getPersistentTransportID(o.remotePk,o.type))?(o.isPersistent=!0,i.delete(this.getPersistentTransportID(o.remotePk,o.type))):o.isPersistent=!1}),i.forEach((o,s)=>{this.allTransports.push({id:this.getPersistentTransportID(o.pk,o.type),localPk:e.localPk,remotePk:o.pk,type:o.type,recv:0,sent:0,isPersistent:!0,notFound:!0})}),this.allTransports.forEach(o=>{o.id_label=ha.getCompleteLabel(this.storageService,this.translateService,o.id),o.remote_pk_label=ha.getCompleteLabel(this.storageService,this.translateService,o.remotePk)}),this.dataFilterer.setData(this.allTransports)}constructor(e,i,o,s,a,l,d,_){this.dialog=e,this.transportService=i,this.route=o,this.router=s,this.snackbarService=a,this.translateService=l,this.storageService=d,this.nodeService=_,this.listId="tr",this.persistentSortData=new Vn(["isPersistent"],"transports.persistent",Zt.Boolean),this.idSortData=new Vn(["id"],"transports.id",Zt.Text,["id_label"]),this.remotePkSortData=new Vn(["remotePk"],"transports.remote-node",Zt.Text,["remote_pk_label"]),this.typeSortData=new Vn(["type"],"transports.type",Zt.Text),this.uploadedSortData=new Vn(["sent"],"common.uploaded",Zt.NumberReversed),this.downloadedSortData=new Vn(["recv"],"common.downloaded",Zt.NumberReversed),this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"transports.filter-dialog.persistent",keyNameInElementsArray:"isPersistent",type:$n.Select,printableLabelsForValues:[{value:"",label:"transports.filter-dialog.persistent-options.any"},{value:"true",label:"transports.filter-dialog.persistent-options.persistent"},{value:"false",label:"transports.filter-dialog.persistent-options.non-persistent"}]},{filterName:"transports.filter-dialog.id",keyNameInElementsArray:"id",secondaryKeyNameInElementsArray:"id_label",type:$n.TextInput,maxlength:36},{filterName:"transports.filter-dialog.remote-node",keyNameInElementsArray:"remotePk",secondaryKeyNameInElementsArray:"remote_pk_label",type:$n.TextInput,maxlength:66}],this.labeledElementTypes=Xi,this.operationSubscriptionsGroup=[],this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,[this.persistentSortData,this.idSortData,this.remotePkSortData,this.typeSortData,this.uploadedSortData,this.downloadedSortData],1,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new Nd(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(F=>{this.filteredTransports=F,this.dataSorter.setData(this.filteredTransports)}),this.navigationsSubscription=this.route.paramMap.subscribe(F=>{if(F.has("page")){let G=Number.parseInt(F.get("page"),10);(isNaN(G)||G<1)&&(G=1),this.currentPageInUrl=G,this.recalculateElementsToShow()}}),this.languageSubscription=this.translateService.onLangChange.subscribe(()=>{this.node=this.currentNode})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.languageSubscription.unsubscribe(),this.dataSortedSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFiltererSubscription.unsubscribe(),this.dataFilterer.dispose(),this.persistentTransportSubscription&&this.persistentTransportSubscription.unsubscribe()}changeSelection(e){this.selections.get(e.id)?this.selections.set(e.id,!1):this.selections.set(e.id,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Jt.createConfirmationDialog(this.dialog,"transports.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=[];this.selections.forEach((o,s)=>{o&&i.push(s)}),this.deleteRecursively(i,e)})}create(){XJ.openDialog(this.dialog)}showOptionsDialog(e){const i=[];i.push(e.isPersistent?{icon:"star_outline",label:"transports.make-non-persistent"}:{icon:"star",label:"transports.make-persistent"}),e.notFound||(i.push({icon:"visibility",label:"transports.details.title"}),i.push({icon:"close",label:"transports.delete"})),qr.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.changeIfPersistent([e],!e.isPersistent):2===o?this.details(e):3===o&&this.delete(e)})}changeIfPersistentOfSelected(e){const i=[];this.allTransports.forEach(o=>{this.selections.has(o.id)&&this.selections.get(o.id)&&i.push(o)}),this.changeIfPersistent(i,e)}changeIfPersistent(e,i){if(e.length<1)return;let o="transports.";o+=1===e.length?i?"make-persistent-confirmation":"make"+(e[0].notFound?"-offline":"")+"-non-persistent-confirmation":i?"make-selected-persistent-confirmation":"make-selected-non-persistent-confirmation";const s=Jt.createConfirmationDialog(this.dialog,o);s.componentInstance.operationAccepted.subscribe(()=>{s.componentInstance.showProcessing(),this.persistentTransportSubscription=this.transportService.getPersistentTransports(this.nodePK).subscribe(a=>{const l=a||[];let d=!1;const _=new Map;if(e.forEach(E=>_.set(this.getPersistentTransportID(E.remotePk,E.type),E)),i)l.forEach(E=>{_.has(this.getPersistentTransportID(E.pk,E.type))&&_.delete(this.getPersistentTransportID(E.pk,E.type))}),d=0===_.size,d||_.forEach(E=>{l.push({pk:E.remotePk,type:E.type})});else{d=!0;for(let E=0;E{s.close(),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.changes-made")},E=>{E=en(E),s.componentInstance.showDone("confirmation.error-header-text",E.translatableErrorMsg)})},a=>{a=en(a),s.componentInstance.showDone("confirmation.error-header-text",a.translatableErrorMsg)})})}details(e){eQ.openDialog(this.dialog,e)}delete(e){const o=Jt.createConfirmationDialog(this.dialog,"transports.delete-"+(e.isPersistent?"persistent-":"")+"confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(e.id).subscribe(()=>{o.close(),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")},s=>{s=en(s),o.componentInstance.showDone("confirmation.error-header-text",s.translatableErrorMsg)}))})}refreshData(){Ct.refreshCurrentDisplayedData()}getPersistentTransportID(e,i){return e.toUpperCase()+i.toUpperCase()}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredTransports){const e=this.showShortList_?Vt.maxShortListElements:Vt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredTransports.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.transportsToShow=this.filteredTransports.slice(i,i+e);const s=new Map;this.transportsToShow.forEach(l=>{s.set(l.id,!0),this.selections.has(l.id)||this.selections.set(l.id,!1)});const a=[];this.selections.forEach((l,d)=>{s.has(d)||a.push(d)}),a.forEach(l=>{this.selections.delete(l)})}else this.transportsToShow=null,this.selections=new Map;this.dataSource=this.transportsToShow}startDeleting(e){return this.transportService.delete(Ct.getCurrentNodeKey(),e)}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i.close(),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("transports.deleted")):this.deleteRecursively(e,i)},o=>{Ct.refreshCurrentDisplayedData(),o=en(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(V1),Y(Mr),Y(hn),Y(Dn),Y(To),Y(Ji),Y(ua))},t.\u0275cmp=Ze({type:t,selectors:[["app-transport-list"]],inputs:{showShortList:"showShortList",node:"node"},decls:31,vars:31,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],[3,"inline","click"],["class","small-icon",3,"inline","click",4,"ngIf"],[3,"inline","matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","click"],[3,"inline","matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column","small-column",3,"matTooltip","click"],[1,"persistent-icon","grey-text"],[3,"inline",4,"ngIf"],[1,"sortable-column",3,"click"],[1,"actions"],[3,"ngClass",4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[4,"ngFor","ngForOf"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[3,"ngClass"],[1,"selection-col"],[3,"checked","change"],["mat-button","","class","action-button subtle-transparent-button",3,"matTooltip","click",4,"ngIf"],["shortTextLength","4",3,"short","id","labelEdited"],["mat-button","","class","action-button transparent-button",3,"matTooltip","click",4,"ngIf"],["mat-button","",1,"action-button","subtle-transparent-button",3,"matTooltip","click"],[1,"persistent-icon","default-cursor",3,"inline"],[1,"persistent-icon","grey-text",3,"inline"],["shortTextLength","4",3,"short","id","elementType","labelEdited"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],[1,"list-item-container",3,"ngClass"],[1,"check-part"],["class","list-row",4,"ngIf"],[1,"list-row","long-content"],[3,"id","elementType","labelEdited",4,"ngIf"],[3,"id","labelEdited"],[1,"list-row"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[1,"persistent-icon",3,"inline"],[1,"yellow-clear-text","title"],[3,"id","elementType","labelEdited"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,tQ,6,7,"span",2),V(3,oQ,5,4,"div",3),C(),D(4,"div",4)(5,"div",5)(6,"mat-icon",6),ye("click",function(){return i.create()}),I(7,"add"),C(),V(8,sQ,2,1,"mat-icon",7),V(9,aQ,2,2,"mat-icon",8),D(10,"mat-menu",9,10)(12,"div",11),ye("click",function(){return i.changeAllSelections(!0)}),I(13),R(14,"translate"),C(),D(15,"div",11),ye("click",function(){return i.changeAllSelections(!1)}),I(16),R(17,"translate"),C(),D(18,"div",12),ye("click",function(){return i.changeIfPersistentOfSelected(!0)}),I(19),R(20,"translate"),C(),D(21,"div",12),ye("click",function(){return i.changeIfPersistentOfSelected(!1)}),I(22),R(23,"translate"),C(),D(24,"div",12),ye("click",function(){return i.deleteSelected()}),I(25),R(26,"translate"),C()()(),V(27,lQ,1,6,"app-paginator",13),C()(),V(28,zQ,50,46,"div",14),V(29,$Q,6,3,"div",14),V(30,GQ,1,6,"app-paginator",13)),2&e&&(w("ngClass",He(29,qQ,!i.showShortList_&&i.numberOfPages>1&&i.dataSource)),c(2),w("ngIf",i.showShortList_),c(1),w("ngIf",i.dataFilterer.currentFiltersTexts&&i.dataFilterer.currentFiltersTexts.length>0),c(3),w("inline",!0),c(2),w("ngIf",i.allTransports&&i.allTransports.length>0),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("overlapTrigger",!1),c(3),ce(" ",H(14,19,"selection.select-all")," "),c(3),ce(" ",H(17,21,"selection.unselect-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(20,23,"transports.make-selected-persistent")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(23,25,"transports.make-selected-non-persistent")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(26,27,"selection.delete-all")," "),c(2),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("ngIf",!i.dataSource||0===i.dataSource.length),c(1),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource))},dependencies:[Nn,gi,Ft,Wr,el,Cn,vi,Yd,pa,Hd,fa,Og,Bd,ha,wt,sf],styles:[".overflow[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto}.overflow[_ngcontent-%COMP%] table[_ngcontent-%COMP%]{width:100%}.actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.small-column[_ngcontent-%COMP%]{width:1px;text-align:center}.persistent-icon[_ngcontent-%COMP%]{font-size:14px!important;color:#d48b05}.offline[_ngcontent-%COMP%]{opacity:.35}"]}),t})();function KQ(t,n){1&t&&(D(0,"div",5)(1,"mat-icon",2),I(2,"settings"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce("",H(4,2,"routes.details.specific-fields-titles.app")," "))}function ZQ(t,n){1&t&&(D(0,"div",5)(1,"mat-icon",2),I(2,"swap_horiz"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce("",H(4,2,"routes.details.specific-fields-titles.forward")," "))}function XQ(t,n){1&t&&(D(0,"div",5)(1,"mat-icon",2),I(2,"arrow_forward"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce("",H(4,2,"routes.details.specific-fields-titles.intermediary-forward")," "))}function JQ(t,n){if(1&t&&(D(0,"div")(1,"div",3)(2,"span"),I(3),R(4,"translate"),C(),I(5),C(),D(6,"div",3)(7,"span"),I(8),R(9,"translate"),C(),I(10),C()()),2&t){const e=z(2);c(3),se(H(4,5,"routes.details.specific-fields.route-id")),c(2),ce(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextRid:e.routeRule.intermediaryForwardFields.nextRid," "),c(3),se(H(9,7,"routes.details.specific-fields.transport-id")),c(2),vo(" ",e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid," ",e.getLabel(e.routeRule.forwardFields?e.routeRule.forwardFields.nextTid:e.routeRule.intermediaryForwardFields.nextTid)," ")}}function QQ(t,n){if(1&t&&(D(0,"div")(1,"div",3)(2,"span"),I(3),R(4,"translate"),C(),I(5),C(),D(6,"div",3)(7,"span"),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",3)(12,"span"),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",3)(17,"span"),I(18),R(19,"translate"),C(),I(20),C()()),2&t){const e=z(2);c(3),se(H(4,10,"routes.details.specific-fields.destination-pk")),c(2),vo(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPk:e.routeRule.forwardFields.routeDescriptor.dstPk)," "),c(3),se(H(9,12,"routes.details.specific-fields.source-pk")),c(2),vo(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk," ",e.getLabel(e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPk:e.routeRule.forwardFields.routeDescriptor.srcPk)," "),c(3),se(H(14,14,"routes.details.specific-fields.destination-port")),c(2),ce(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.dstPort:e.routeRule.forwardFields.routeDescriptor.dstPort," "),c(3),se(H(19,16,"routes.details.specific-fields.source-port")),c(2),ce(" ",e.routeRule.appFields?e.routeRule.appFields.routeDescriptor.srcPort:e.routeRule.forwardFields.routeDescriptor.srcPort," ")}}function eee(t,n){if(1&t&&(D(0,"div")(1,"div",5)(2,"mat-icon",2),I(3,"list"),C(),I(4),R(5,"translate"),C(),D(6,"div",3)(7,"span"),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",3)(12,"span"),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",3)(17,"span"),I(18),R(19,"translate"),C(),I(20),C(),V(21,KQ,5,4,"div",6),V(22,ZQ,5,4,"div",6),V(23,XQ,5,4,"div",6),V(24,JQ,11,9,"div",4),V(25,QQ,21,18,"div",4),C()),2&t){const e=z();c(2),w("inline",!0),c(2),ce("",H(5,13,"routes.details.summary.title")," "),c(4),se(H(9,15,"routes.details.summary.keep-alive")),c(2),ce(" ",e.routeRule.ruleSummary.keepAlive," "),c(3),se(H(14,17,"routes.details.summary.type")),c(2),ce(" ",e.getRuleTypeName(e.routeRule.ruleSummary.ruleType)," "),c(3),se(H(19,19,"routes.details.summary.key-route-id")),c(2),ce(" ",e.routeRule.ruleSummary.keyRouteId," "),c(1),w("ngIf",e.routeRule.appFields),c(1),w("ngIf",e.routeRule.forwardFields),c(1),w("ngIf",e.routeRule.intermediaryForwardFields),c(1),w("ngIf",e.routeRule.forwardFields||e.routeRule.intermediaryForwardFields),c(1),w("ngIf",e.routeRule.appFields&&e.routeRule.appFields.routeDescriptor||e.routeRule.forwardFields&&e.routeRule.forwardFields.routeDescriptor)}}let tee=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.largeModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=i,this.storageService=o,this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Intermediary forward"]]),this.routeRule=e}getRuleTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):e.toString()}closePopup(){this.dialogRef.close()}getLabel(e){const i=this.storageService.getLabelInfo(e);return i?" ("+i.label+")":""}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-route-details"]],decls:19,vars:17,consts:[[1,"info-dialog",3,"headline","dialog"],[1,"title","mt-0"],[3,"inline"],[1,"item"],[4,"ngIf"],[1,"title"],["class","title",4,"ngIf"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div")(3,"div",1)(4,"mat-icon",2),I(5,"list"),C(),I(6),R(7,"translate"),C(),D(8,"div",3)(9,"span"),I(10),R(11,"translate"),C(),I(12),C(),D(13,"div",3)(14,"span"),I(15),R(16,"translate"),C(),I(17),C(),V(18,eee,26,21,"div",4),C()()),2&e&&(w("headline",H(1,9,"routes.details.title"))("dialog",i.dialogRef),c(4),w("inline",!0),c(2),ce("",H(7,11,"routes.details.basic.title")," "),c(4),se(H(11,13,"routes.details.basic.key")),c(2),ce(" ",i.routeRule.key," "),c(3),se(H(16,15,"routes.details.basic.rule")),c(2),ce(" ",i.routeRule.rule," "),c(1),w("ngIf",i.routeRule.ruleSummary))},dependencies:[Ft,Cn,ei,wt]}),t})(),fP=(()=>{class t{constructor(e){this.apiService=e}get(e,i){return this.apiService.get(`visors/${e}/routes/${i}`)}delete(e,i){return this.apiService.delete(`visors/${e}/routes/${i}`)}setMinHops(e,i){return this.apiService.post(`visors/${e}/min-hops`,{min_hops:i})}}return t.\u0275fac=function(e){return new(e||t)(we(il))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function nee(t,n){1&t&&(D(0,"span",14),I(1),R(2,"translate"),D(3,"mat-icon",15),R(4,"translate"),I(5,"help"),C()()),2&t&&(c(1),ce(" ",H(2,3,"routes.title")," "),c(2),w("inline",!0)("matTooltip",H(4,5,"routes.info")))}function iee(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function ree(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function oee(t,n){if(1&t&&(D(0,"div",19)(1,"span"),I(2),R(3,"translate"),C(),V(4,iee,3,3,"ng-container",20),V(5,ree,2,1,"ng-container",20),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function see(t,n){if(1&t){const e=et();D(0,"div",16),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,oee,6,5,"div",17),D(2,"div",18),I(3),R(4,"translate"),C()()}if(2&t){const e=z();c(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),se(H(4,2,"filters.press-to-remove"))}}function aee(t,n){if(1&t){const e=et();D(0,"mat-icon",21),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&t&&w("inline",!0)("matTooltip",H(1,2,"filters.filter-action"))}function lee(t,n){1&t&&(D(0,"mat-icon",22),I(1,"more_horiz"),C()),2&t&&(z(),w("matMenuTriggerFor",ci(9)))}const z1=function(t){return["/nodes",t,"routes"]};function cee(t,n){if(1&t&&xe(0,"app-paginator",23),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",He(4,z1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function dee(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function uee(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function hee(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function fee(t,n){if(1&t&&(D(0,"mat-icon",36),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function pee(t,n){if(1&t){const e=et();Ue(0),D(1,"td")(2,"app-labeled-element-text",41),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),D(3,"td")(4,"app-labeled-element-text",41),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),We()}if(2&t){const e=z().$implicit,i=z(2);c(2),Ln("id",e.src),w("short",!0)("elementType",i.labeledElementTypes.Node),c(2),Ln("id",e.dst),w("short",!0)("elementType",i.labeledElementTypes.Node)}}function mee(t,n){if(1&t){const e=et();Ue(0),D(1,"td"),I(2,"---"),C(),D(3,"td")(4,"app-labeled-element-text",42),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),We()}if(2&t){const e=z().$implicit,i=z(2);c(4),Ln("id",e.dst),w("short",!0)("elementType",i.labeledElementTypes.Transport)}}function gee(t,n){1&t&&(Ue(0),D(1,"td"),I(2,"---"),C(),D(3,"td"),I(4,"---"),C(),We())}function _ee(t,n){if(1&t){const e=et();D(0,"tr")(1,"td",38)(2,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),I(4),C(),D(5,"td"),I(6),C(),V(7,pee,5,6,"ng-container",20),V(8,mee,5,3,"ng-container",20),V(9,gee,5,0,"ng-container",20),D(10,"td",29)(11,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).details(s))}),R(12,"translate"),D(13,"mat-icon",36),I(14,"visibility"),C()(),D(15,"button",40),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).delete(s.key))}),R(16,"translate"),D(17,"mat-icon",36),I(18,"close"),C()()()()}if(2&t){const e=n.$implicit,i=z(2);c(2),w("checked",i.selections.get(e.key)),c(2),ce(" ",e.key," "),c(2),ce(" ",i.getTypeName(e.type)," "),c(1),w("ngIf",e.appFields||e.forwardFields),c(1),w("ngIf",!e.appFields&&!e.forwardFields&&e.intermediaryForwardFields),c(1),w("ngIf",!e.appFields&&!e.forwardFields&&!e.intermediaryForwardFields),c(2),w("matTooltip",H(12,10,"routes.details.title")),c(2),w("inline",!0),c(2),w("matTooltip",H(16,12,"routes.delete")),c(2),w("inline",!0)}}function bee(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.label")))}function vee(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.inverted-order")))}function yee(t,n){if(1&t){const e=et();Ue(0),D(1,"div",44)(2,"span",1),I(3),R(4,"translate"),C(),I(5,": "),D(6,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),D(7,"div",44)(8,"span",1),I(9),R(10,"translate"),C(),I(11,": "),D(12,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),We()}if(2&t){const e=z().$implicit,i=z(2);c(3),se(H(4,6,"routes.source")),c(3),Ln("id",e.src),w("elementType",i.labeledElementTypes.Node),c(3),se(H(10,8,"routes.destination")),c(3),Ln("id",e.dst),w("elementType",i.labeledElementTypes.Node)}}function Mee(t,n){if(1&t){const e=et();Ue(0),D(1,"div",44)(2,"span",1),I(3),R(4,"translate"),C(),I(5,": --- "),C(),D(6,"div",44)(7,"span",1),I(8),R(9,"translate"),C(),I(10,": "),D(11,"app-labeled-element-text",47),ye("labelEdited",function(){return Pe(e),Oe(z(3).refreshData())}),C()(),We()}if(2&t){const e=z().$implicit,i=z(2);c(3),se(H(4,4,"routes.source")),c(5),se(H(9,6,"routes.destination")),c(3),Ln("id",e.dst),w("elementType",i.labeledElementTypes.Transport)}}function wee(t,n){1&t&&(Ue(0),D(1,"div",44)(2,"span",1),I(3),R(4,"translate"),C(),I(5,": --- "),C(),D(6,"div",44)(7,"span",1),I(8),R(9,"translate"),C(),I(10,": --- "),C(),We()),2&t&&(c(3),se(H(4,2,"routes.source")),c(5),se(H(9,4,"routes.destination")))}function Cee(t,n){if(1&t){const e=et();D(0,"tr")(1,"td")(2,"div",33)(3,"div",43)(4,"mat-checkbox",39),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",34)(6,"div",44)(7,"span",1),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",44)(12,"span",1),I(13),R(14,"translate"),C(),I(15),C(),V(16,yee,13,10,"ng-container",20),V(17,Mee,12,8,"ng-container",20),V(18,wee,11,6,"ng-container",20),C(),xe(19,"div",45),D(20,"div",35)(21,"button",46),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(22,"translate"),D(23,"mat-icon"),I(24),C()()()()()()}if(2&t){const e=n.$implicit,i=z(2);c(4),w("checked",i.selections.get(e.key)),c(4),se(H(9,10,"routes.key")),c(2),ce(": ",e.key," "),c(3),se(H(14,12,"routes.type")),c(2),ce(": ",i.getTypeName(e.type)," "),c(1),w("ngIf",e.appFields||e.forwardFields),c(1),w("ngIf",!e.appFields&&!e.forwardFields&&e.intermediaryForwardFields),c(1),w("ngIf",!e.appFields&&!e.forwardFields&&!e.intermediaryForwardFields),c(3),w("matTooltip",H(22,14,"common.options")),c(3),se("add")}}function xee(t,n){if(1&t&&xe(0,"app-view-all-link",48),2&t){const e=z(2);w("numberOfElements",e.filteredRoutes.length)("linkParts",He(3,z1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const kee=function(t,n){return{"small-node-list-margins":t,"full-node-list-margins":n}},See=function(t){return{"d-lg-none d-xl-table":t}},Dee=function(t){return{"d-lg-table d-xl-none":t}};function Tee(t,n){if(1&t){const e=et();D(0,"div",24)(1,"div",25)(2,"table",26)(3,"tr"),xe(4,"th"),D(5,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.keySortData))}),I(6),R(7,"translate"),V(8,dee,2,2,"mat-icon",28),C(),D(9,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.typeSortData))}),I(10),R(11,"translate"),V(12,uee,2,2,"mat-icon",28),C(),D(13,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.sourceSortData))}),I(14),R(15,"translate"),V(16,hee,2,2,"mat-icon",28),C(),D(17,"th",27),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.destinationSortData))}),I(18),R(19,"translate"),V(20,fee,2,2,"mat-icon",28),C(),xe(21,"th",29),C(),V(22,_ee,19,14,"tr",30),C(),D(23,"table",31)(24,"tr",32),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(25,"td")(26,"div",33)(27,"div",34)(28,"div",1),I(29),R(30,"translate"),C(),D(31,"div"),I(32),R(33,"translate"),V(34,bee,3,3,"ng-container",20),V(35,vee,3,3,"ng-container",20),C()(),D(36,"div",35)(37,"mat-icon",36),I(38,"keyboard_arrow_down"),C()()()()(),V(39,Cee,25,16,"tr",30),C(),V(40,xee,1,5,"app-view-all-link",37),C()()}if(2&t){const e=z();c(1),w("ngClass",mn(31,kee,e.showShortList_,!e.showShortList_)),c(1),w("ngClass",He(34,See,e.showShortList_)),c(4),ce(" ",H(7,19,"routes.key")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.keySortData),c(2),ce(" ",H(11,21,"routes.type")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.typeSortData),c(2),ce(" ",H(15,23,"routes.source")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.sourceSortData),c(2),ce(" ",H(19,25,"routes.destination")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.destinationSortData),c(2),w("ngForOf",e.dataSource),c(1),w("ngClass",He(36,Dee,e.showShortList_)),c(6),se(H(30,27,"tables.sorting-title")),c(3),ce("",H(33,29,e.dataSorter.currentSortingColumn.label)," "),c(2),w("ngIf",e.dataSorter.currentlySortingByLabel),c(1),w("ngIf",e.dataSorter.sortingInReverseOrder),c(2),w("inline",!0),c(2),w("ngForOf",e.dataSource),c(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function Lee(t,n){1&t&&(D(0,"span",52),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"routes.empty")))}function Eee(t,n){1&t&&(D(0,"span",52),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"routes.empty-with-filter")))}function Iee(t,n){if(1&t&&(D(0,"div",24)(1,"div",49)(2,"mat-icon",50),I(3,"warning"),C(),V(4,Lee,3,3,"span",51),V(5,Eee,3,3,"span",51),C()()),2&t){const e=z();c(2),w("inline",!0),c(2),w("ngIf",0===e.allRoutes.length),c(1),w("ngIf",0!==e.allRoutes.length)}}function Pee(t,n){if(1&t&&xe(0,"app-paginator",23),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",He(4,z1,e.nodePK))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const Oee=function(t){return{"paginator-icons-fixer":t}};let pP=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter.setData(this.filteredRoutes)}set routes(e){this.allRoutes=e,this.allRoutes.forEach(i=>{if(i.type=i.ruleSummary.ruleType||0===i.ruleSummary.ruleType?i.ruleSummary.ruleType:"",i.appFields||i.forwardFields){const o=i.appFields?i.appFields.routeDescriptor:i.forwardFields.routeDescriptor;i.src=o.srcPk,i.src_label=ha.getCompleteLabel(this.storageService,this.translateService,i.src),i.dst=o.dstPk,i.dst_label=ha.getCompleteLabel(this.storageService,this.translateService,i.dst)}else i.intermediaryForwardFields?(i.src="",i.src_label="",i.dst=i.intermediaryForwardFields.nextTid,i.dst_label=ha.getCompleteLabel(this.storageService,this.translateService,i.dst)):(i.src="",i.src_label="",i.dst="",i.dst_label="")}),this.dataFilterer.setData(this.allRoutes)}constructor(e,i,o,s,a,l,d){this.routeService=e,this.dialog=i,this.route=o,this.router=s,this.snackbarService=a,this.translateService=l,this.storageService=d,this.listId="rl",this.keySortData=new Vn(["key"],"routes.key",Zt.Number),this.typeSortData=new Vn(["type"],"routes.type",Zt.Number),this.sourceSortData=new Vn(["src"],"routes.source",Zt.Text,["src_label"]),this.destinationSortData=new Vn(["dst"],"routes.destination",Zt.Text,["dst_label"]),this.labeledElementTypes=Xi,this.selections=new Map,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"routes.filter-dialog.key",keyNameInElementsArray:"key",type:$n.TextInput,maxlength:8},{filterName:"routes.filter-dialog.source",keyNameInElementsArray:"src",secondaryKeyNameInElementsArray:"src_label",type:$n.TextInput,maxlength:66},{filterName:"routes.filter-dialog.destination",keyNameInElementsArray:"dst",secondaryKeyNameInElementsArray:"dst_label",type:$n.TextInput,maxlength:66}],this.ruleTypes=new Map([[0,"App"],[1,"Forward"],[2,"Int. forward"]]),this.operationSubscriptionsGroup=[],this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,[this.keySortData,this.typeSortData,this.sourceSortData,this.destinationSortData],0,this.listId),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()});const E={filterName:"routes.filter-dialog.type",keyNameInElementsArray:"type",type:$n.Select,printableLabelsForValues:[{value:"",label:"routes.filter-dialog.any-type-option"}]};this.ruleTypes.forEach((F,G)=>{E.printableLabelsForValues.push({value:G+"",label:F})}),this.filterProperties=[E].concat(this.filterProperties),this.dataFilterer=new Nd(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(F=>{this.filteredRoutes=F,this.dataSorter.setData(this.filteredRoutes)}),this.navigationsSubscription=this.route.paramMap.subscribe(F=>{if(F.has("page")){let G=Number.parseInt(F.get("page"),10);(isNaN(G)||G<1)&&(G=1),this.currentPageInUrl=G,this.recalculateElementsToShow()}})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}refreshData(){Ct.refreshCurrentDisplayedData()}getTypeName(e){return this.ruleTypes.has(e)?this.ruleTypes.get(e):"Unknown"}changeSelection(e){this.selections.get(e.key)?this.selections.set(e.key,!1):this.selections.set(e.key,!0)}hasSelectedElements(){if(!this.selections)return!1;let e=!1;return this.selections.forEach(i=>{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}deleteSelected(){const e=Jt.createConfirmationDialog(this.dialog,"routes.delete-selected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=[];this.selections.forEach((o,s)=>{o&&i.push(s)}),this.deleteRecursively(i,e)})}showOptionsDialog(e){qr.openDialog(this.dialog,[{icon:"visibility",label:"routes.details.title"},{icon:"close",label:"routes.delete"}],"common.options").afterClosed().subscribe(o=>{1===o?this.details(e):2===o&&this.delete(e.key)})}details(e){tee.openDialog(this.dialog,e)}delete(e){const i=Jt.createConfirmationDialog(this.dialog,"routes.delete-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.operationSubscriptionsGroup.push(this.startDeleting(e).subscribe(()=>{i.close(),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")},o=>{o=en(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))})}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredRoutes){const e=this.showShortList_?Vt.maxShortListElements:Vt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredRoutes.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.routesToShow=this.filteredRoutes.slice(i,i+e);const s=new Map;this.routesToShow.forEach(l=>{s.set(l.key,!0),this.selections.has(l.key)||this.selections.set(l.key,!1)});const a=[];this.selections.forEach((l,d)=>{s.has(d)||a.push(d)}),a.forEach(l=>{this.selections.delete(l)})}else this.routesToShow=null,this.selections=new Map;this.dataSource=this.routesToShow}startDeleting(e){return this.routeService.delete(Ct.getCurrentNodeKey(),e.toString())}deleteRecursively(e,i){this.operationSubscriptionsGroup.push(this.startDeleting(e[e.length-1]).subscribe(()=>{e.pop(),0===e.length?(i.close(),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("routes.deleted")):this.deleteRecursively(e,i)},o=>{Ct.refreshCurrentDisplayedData(),o=en(o),i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)}))}}return t.\u0275fac=function(e){return new(e||t)(Y(fP),Y(In),Y(Mr),Y(hn),Y(Dn),Y(To),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-route-list"]],inputs:{nodePK:"nodePK",showShortList:"showShortList",routes:"routes"},decls:23,vars:22,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"help","d-none","d-md-inline",3,"inline","matTooltip"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"click"],[3,"inline",4,"ngIf"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],["mat-button","",1,"action-button","transparent-button",3,"matTooltip","click"],["shortTextLength","7",3,"short","id","elementType","labelEdited"],["shortTextLength","5",3,"short","id","elementType","labelEdited"],[1,"check-part"],[1,"list-row","long-content"],[1,"margin-part"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],[3,"id","elementType","labelEdited"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,nee,6,7,"span",2),V(3,see,5,4,"div",3),C(),D(4,"div",4)(5,"div",5),V(6,aee,3,4,"mat-icon",6),V(7,lee,2,1,"mat-icon",7),D(8,"mat-menu",8,9)(10,"div",10),ye("click",function(){return i.changeAllSelections(!0)}),I(11),R(12,"translate"),C(),D(13,"div",10),ye("click",function(){return i.changeAllSelections(!1)}),I(14),R(15,"translate"),C(),D(16,"div",11),ye("click",function(){return i.deleteSelected()}),I(17),R(18,"translate"),C()()(),V(19,cee,1,6,"app-paginator",12),C()(),V(20,Tee,41,38,"div",13),V(21,Iee,6,3,"div",13),V(22,Pee,1,6,"app-paginator",12)),2&e&&(w("ngClass",He(20,Oee,!i.showShortList_&&i.numberOfPages>1&&i.dataSource)),c(2),w("ngIf",i.showShortList_),c(1),w("ngIf",i.dataFilterer.currentFiltersTexts&&i.dataFilterer.currentFiltersTexts.length>0),c(3),w("ngIf",i.allRoutes&&i.allRoutes.length>0),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("overlapTrigger",!1),c(3),ce(" ",H(12,14,"selection.select-all")," "),c(3),ce(" ",H(15,16,"selection.unselect-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(18,18,"selection.delete-all")," "),c(2),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("ngIf",!i.dataSource||0===i.dataSource.length),c(1),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource))},dependencies:[Nn,gi,Ft,Wr,el,Cn,vi,Yd,pa,Hd,fa,Og,Bd,ha,wt],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:90px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]}),t})(),Aee=(()=>{class t extends er{ngOnInit(){return this.dataSubscription=Ct.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.node=e,this.routes=e.routes}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-routing"]],features:[nt],decls:2,vars:5,consts:[[3,"node","showShortList"],[3,"routes","showShortList","nodePK"]],template:function(e,i){1&e&&xe(0,"app-transport-list",0)(1,"app-route-list",1),2&e&&(w("node",i.node)("showShortList",!0),c(1),w("routes",i.routes)("showShortList",!0)("nodePK",i.nodePK))},dependencies:[hP,pP]}),t})();function Fee(t,n){if(1&t&&(D(0,"mat-option",6),I(1),R(2,"translate"),C()),2&t){const e=n.$implicit;w("value",e.days),c(1),se(H(2,2,e.text))}}let Ree=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o}ngOnInit(){this.filters=[{text:"apps.log.filter.7-days",days:7},{text:"apps.log.filter.1-month",days:30},{text:"apps.log.filter.3-months",days:90},{text:"apps.log.filter.6-months",days:180},{text:"apps.log.filter.1-year",days:365},{text:"apps.log.filter.all",days:-1}],this.form=this.formBuilder.group({filter:[this.data.days]}),this.formSubscription=this.form.get("filter").valueChanges.subscribe(e=>{this.dialogRef.close(this.filters.find(i=>i.days===e))})}ngOnDestroy(){this.formSubscription.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-log-filter"]],decls:10,vars:9,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","filter"],[3,"value",4,"ngFor","ngForOf"],[3,"value"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),D(8,"mat-select",4),V(9,Fee,3,4,"mat-option",5),C()()()()()),2&e&&(w("headline",H(1,5,"apps.log.filter.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,7,"apps.log.filter.filter")),c(3),w("ngForOf",i.filters))},dependencies:[gi,zi,Vi,ji,ii,Ei,ar,tf,Pd,ei,wt],styles:["mat-form-field[_ngcontent-%COMP%]{margin-bottom:-24px}"]}),t})();const Nee=["content"],Yee=function(t){return{totalLogs:t}};function Hee(t,n){if(1&t&&(D(0,"app-button",10)(1,"div",11),I(2),R(3,"translate"),C()()),2&t){const e=z();c(2),ce(" ",kt(3,1,"apps.log.view-all",He(4,Yee,e.totalLogs))," ")}}function Bee(t,n){if(1&t&&(D(0,"div",12)(1,"span",3),I(2),C(),I(3),C()),2&t){const e=n.$implicit;c(2),ce(" ",e.time," "),c(1),ce(" ",e.msg," ")}}function Vee(t,n){1&t&&(D(0,"div",13),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"apps.log.empty")," "))}function jee(t,n){1&t&&xe(0,"app-loading-indicator",14),2&t&&w("showWhite",!1)}let zee=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.largeModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l){this.data=e,this.dialogRef=i,this.appsService=o,this.dialog=s,this.snackbarService=a,this.apiService=l,this.logMessages=[],this.hasMoreLogMessages=!1,this.totalLogs=0,this.loading=!1,this.currentFilter={text:"apps.log.filter.7-days",days:7},this.shouldShowError=!0}ngOnInit(){this.loadData(0)}ngOnDestroy(){this.removeSubscription()}filter(){Ree.openDialog(this.dialog,this.currentFilter).afterClosed().subscribe(e=>{e&&(this.currentFilter=e,this.logMessages=[],this.loadData(0))})}getLogsUrl(){return"/"+this.apiService.apiPrefix+this.appsService.getLogMessagesUrl(Ct.getCurrentNodeKey(),this.data.name)}loadData(e){this.removeSubscription(),this.loading=!0,this.subscription=$e(1).pipe(Ti(e),Ye(()=>this.appsService.getLogMessages(Ct.getCurrentNodeKey(),this.data.name,this.currentFilter.days))).subscribe(i=>this.onLogsReceived(i),i=>this.onLogsError(i))}removeSubscription(){this.subscription&&this.subscription.unsubscribe()}onLogsReceived(e=[]){this.loading=!1,this.shouldShowError=!0,this.snackbarService.closeCurrentIfTemporaryError();let i=0;this.hasMoreLogMessages=!1,this.totalLogs=e.length,e.forEach(o=>{if(i<5e3){const s=o.startsWith("[")?0:-1,a=-1!==s?o.indexOf("]"):-1;this.logMessages.push(-1!==s&&-1!==a?{time:o.substr(s,a+1),msg:o.substr(a+1)}:{time:"",msg:o})}else this.hasMoreLogMessages=!0;i+=1}),setTimeout(()=>{this.content.nativeElement.scrollTop=this.content.nativeElement.scrollHeight})}onLogsError(e){e=en(e),this.shouldShowError&&(this.snackbarService.showError("common.loading-error",null,!0,e),this.shouldShowError=!1),this.loadData(Vt.connectionRetryDelay)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(ll),Y(In),Y(Dn),Y(il))},t.\u0275cmp=Ze({type:t,selectors:[["app-log"]],viewQuery:function(e,i){if(1&e&&_t(Nee,5),2&e){let o;rt(o=ot())&&(i.content=o.first)}},decls:18,vars:17,consts:[[3,"headline","includeVerticalMargins","includeScrollableArea","dialog"],[1,"filter-link-container"],[1,"filter-link","subtle-transparent-button",3,"click"],[1,"transparent"],["content",""],["target","_blank",3,"href"],["class","full-logs-button","color","primary",4,"ngIf"],["class","app-log-message",4,"ngFor","ngForOf"],["class","app-log-empty mt-3",4,"ngIf"],[3,"showWhite",4,"ngIf"],["color","primary",1,"full-logs-button"],[1,"text-container"],[1,"app-log-message"],[1,"app-log-empty","mt-3"],[3,"showWhite"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1)(3,"div",2),ye("click",function(){return i.filter()}),D(4,"span",3),I(5),R(6,"translate"),C(),I(7,"\xa0 "),D(8,"span"),I(9),R(10,"translate"),C()()(),D(11,"mat-dialog-content",null,4)(13,"a",5),V(14,Hee,4,6,"app-button",6),C(),V(15,Bee,4,2,"div",7),V(16,Vee,3,3,"div",8),V(17,jee,1,1,"app-loading-indicator",9),C()()),2&e&&(w("headline",H(1,11,"apps.log.title"))("includeVerticalMargins",!1)("includeScrollableArea",!1)("dialog",i.dialogRef),c(5),se(H(6,13,"apps.log.filter-button")),c(4),se(H(10,15,i.currentFilter.text)),c(4),w("href",i.getLogsUrl(),Vo),c(1),w("ngIf",i.hasMoreLogMessages),c(1),w("ngForOf",i.logMessages),c(1),w("ngIf",!(i.loading||i.logMessages&&0!==i.logMessages.length)),c(1),w("ngIf",i.loading))},dependencies:[gi,Ft,r1,Ui,ei,as,wt],styles:[".mat-mdc-dialog-content[_ngcontent-%COMP%]{font-size:.875rem}.app-log-message[_ngcontent-%COMP%]{margin-top:15px;word-break:break-word}.app-log-message[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#999}.app-log-message[_ngcontent-%COMP%]:first-of-type{margin-top:0}.app-log-message[_ngcontent-%COMP%]:last-of-type{margin-bottom:24px}.filter-link-container[_ngcontent-%COMP%]{text-align:center;margin:15px 0}.filter-link-container[_ngcontent-%COMP%] .filter-link[_ngcontent-%COMP%]{display:inline-block;background:#F8F9F9;padding:5px 10px;border-radius:1000px;font-size:.875rem;text-align:center;color:#215f9e;cursor:pointer}.filter-link-container[_ngcontent-%COMP%] .filter-link[_ngcontent-%COMP%] .transparent[_ngcontent-%COMP%]{color:#215f9e80}.full-logs-button[_ngcontent-%COMP%] button{width:100%!important;display:block;text-align:center;margin-bottom:15px}.full-logs-button[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%}"]}),t})();const Uee=["button"],Wee=["firstInput"],Fg=function(t){return{"element-disabled":t}};function $ee(t,n){if(1&t&&(D(0,"mat-form-field",2)(1,"div",3)(2,"label",4),I(3),R(4,"translate"),C(),xe(5,"input",12),C()()),2&t){const e=z();w("ngClass",He(4,Fg,e.disableDismiss)),c(3),se(H(4,2,"apps.vpn-socks-server-settings.netifc"))}}function Gee(t,n){if(1&t){const e=et();D(0,"div",13)(1,"mat-checkbox",14),ye("change",function(o){return Pe(e),Oe(z().setSecureMode(o))}),I(2),R(3,"translate"),D(4,"mat-icon",15),R(5,"translate"),I(6,"help"),C()()()}if(2&t){const e=z();c(1),w("checked",e.secureMode)("ngClass",He(9,Fg,e.disableDismiss)),c(1),ce(" ",H(3,5,"apps.vpn-socks-server-settings.secure-mode-check")," "),c(2),w("inline",!0)("matTooltip",H(5,7,"apps.vpn-socks-server-settings.secure-mode-info"))}}let qee=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=s,this.snackbarService=a,this.dialog=l,this.configuringVpn=!1,this.secureMode=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}ngOnInit(){if(this.form=this.formBuilder.group({password:[""],passwordConfirmation:["",this.validatePasswords.bind(this)],netifc:[""]}),this.formSubscription=this.form.get("password").valueChanges.subscribe(()=>{this.form.get("passwordConfirmation").updateValueAndValidity()}),this.data.args&&this.data.args.length>0)for(let e=0;ethis.firstInput.nativeElement.focus())}ngOnDestroy(){this.formSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}setSecureMode(e){this.button.disabled||(this.secureMode=!!e.checked)}saveChanges(){if(!this.form.valid||this.button.disabled)return;const e=this.form.get("password").value?"apps.vpn-socks-server-settings.change-passowrd-confirmation":"apps.vpn-socks-server-settings.remove-passowrd-confirmation",i=Jt.createConfirmationDialog(this.dialog,e);i.componentInstance.operationAccepted.subscribe(()=>{i.close(),this.continueSavingChanges()})}continueSavingChanges(){this.button.showLoading();const e={passcode:this.form.get("password").value};this.configuringVpn&&(e.secure=this.secureMode,e.netifc=this.form.get("netifc").value),this.operationSubscription=this.appsService.changeAppSettings(Ct.getCurrentNodeKey(),this.data.name,e).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-server-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=en(e),this.snackbarService.showError(e)}validatePasswords(){return this.form&&this.form.get("password").value!==this.form.get("passwordConfirmation").value?{invalid:!0}:null}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(ll),Y(xr),Y(Bn),Y(Dn),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-skysocks-settings"]],viewQuery:function(e,i){if(1&e&&(_t(Uee,5),_t(Wee,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:27,vars:27,consts:[[3,"headline","dialog","disableDismiss"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],["firstInput",""],["id","passwordConfirmation","type","password","formControlName","passwordConfirmation","maxlength","100","matInput",""],[3,"ngClass",4,"ngIf"],["class","main-theme settings-option",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["id","netifc","type","text","formControlName","netifc","matInput",""],[1,"main-theme","settings-option"],["color","primary",3,"checked","ngClass","change"],[1,"help-icon",3,"inline","matTooltip"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field",2)(4,"div",3)(5,"label",4),I(6),R(7,"translate"),C(),xe(8,"input",5,6),C()(),D(10,"mat-form-field",2)(11,"div",3)(12,"label",4),I(13),R(14,"translate"),C(),xe(15,"input",7,6),C(),D(17,"mat-error")(18,"span"),I(19),R(20,"translate"),C()()(),V(21,$ee,6,6,"mat-form-field",8),V(22,Gee,7,11,"div",9),C(),D(23,"app-button",10,11),ye("action",function(){return i.saveChanges()}),I(25),R(26,"translate"),C()()),2&e&&(w("headline",H(1,13,"apps.vpn-socks-server-settings."+(i.configuringVpn?"vpn-title":"socks-title")))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(2),w("formGroup",i.form),c(1),w("ngClass",He(23,Fg,i.disableDismiss)),c(3),se(H(7,15,"apps.vpn-socks-server-settings.new-password")),c(4),w("ngClass",He(25,Fg,i.disableDismiss)),c(3),se(H(14,17,"apps.vpn-socks-server-settings.repeat-password")),c(6),se(H(20,19,"apps.vpn-socks-server-settings.passwords-not-match")),c(2),w("ngIf",i.configuringVpn),c(1),w("ngIf",i.configuringVpn),c(1),w("disabled",!i.form.valid),c(2),ce(" ",H(26,21,"apps.vpn-socks-server-settings.save")," "))},dependencies:[Nn,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Cn,vi,fa,Ui,ei,wt],styles:["mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}"]}),t})();const Kee=["firstInput"];let Zee=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i||"",o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.dialogRef=e,this.data=i,this.formBuilder=o}ngOnInit(){this.form=this.formBuilder.group({note:[this.data]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("note").value.trim();this.dialogRef.close("-"+e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-edit-skysocks-client-note"]],viewQuery:function(e,i){if(1&e&&_t(Kee,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:13,vars:11,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","note","maxlength","100","matInput",""],["firstInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6),ye("action",function(){return i.finish()}),I(11),R(12,"translate"),C()()),2&e&&(w("headline",H(1,5,"apps.vpn-socks-client-settings.change-note-dialog.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,7,"apps.vpn-socks-client-settings.change-note-dialog.note")),c(5),se(H(12,9,"common.save")))},dependencies:[zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,Ui,ei,wt]}),t})();const ma={AF:"Afghanistan",AX:"Aland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo, Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and Mcdonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"Korea (North)",KR:"Korea (South)",XK:"Kosovo",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Laos",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libyan Arab Jamahiriya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",AN:"Netherlands Antilles",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestinian Territory, Occupied",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",ME:"Montenegro",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan, Province of China",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",ZZ:"Unknown"};function Xee(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit,i=z(2);c(1),se(i.completeCountriesList[e.toUpperCase()])}}function Jee(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.toUpperCase())}}function Qee(t,n){if(1&t&&(D(0,"mat-option",10)(1,"div",12),xe(2,"div"),C(),V(3,Xee,2,1,"ng-container",2),V(4,Jee,2,1,"ng-container",2),C()),2&t){const e=n.$implicit,i=z(2);w("value",e.toUpperCase()),c(2),di("background-image: url('assets/img/flags/"+e.toLocaleLowerCase()+".png');"),c(1),w("ngIf",i.completeCountriesList[e.toUpperCase()]),c(1),w("ngIf",!i.completeCountriesList[e.toUpperCase()])}}function ete(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"apps.vpn-socks-client-settings.filter-dialog.any-country")," "))}function tte(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z(3);c(1),se(e.completeCountriesList[e.form.get("country").value])}}function nte(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z(3);c(1),se(e.form.get("country").value)}}function ite(t,n){if(1&t&&(Ue(0),D(1,"div",12),xe(2,"div"),C(),V(3,tte,2,1,"ng-container",2),V(4,nte,2,1,"ng-container",2),We()),2&t){const e=z(2);c(2),di("background-image: url('assets/img/flags/"+e.form.get("country").value.toLocaleLowerCase()+".png');"),c(1),w("ngIf",e.completeCountriesList[e.form.get("country").value]),c(1),w("ngIf",!e.completeCountriesList[e.form.get("country").value])}}function rte(t,n){if(1&t&&(D(0,"mat-form-field")(1,"div",3)(2,"label",4),I(3),R(4,"translate"),C(),D(5,"mat-select",9)(6,"mat-option",10),I(7),R(8,"translate"),C(),V(9,Qee,5,5,"mat-option",11),D(10,"mat-select-trigger"),V(11,ete,3,3,"ng-container",2),V(12,ite,5,4,"ng-container",2),C()()()()),2&t){const e=z();c(3),se(H(4,6,"apps.vpn-socks-client-settings.filter-dialog.country")),c(3),w("value","-"),c(1),se(H(8,8,"apps.vpn-socks-client-settings.filter-dialog.any-country")),c(2),w("ngForOf",e.data.availableCountries),c(2),w("ngIf","-"===e.form.get("country").value),c(1),w("ngIf","-"!==e.form.get("country").value)}}class mP{constructor(){this.country="",this.location="",this.key=""}}let ote=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o){this.data=e,this.dialogRef=i,this.formBuilder=o,this.completeCountriesList=ma}ngOnInit(){this.form=this.formBuilder.group({country:[this.data.currentFilters.country?this.data.currentFilters.country:"-"],"location-text":[this.data.currentFilters.location],"key-text":[this.data.currentFilters.key]})}apply(){const e=new mP;let i=this.form.get("country").value.trim();"-"===i&&(i=""),e.country=i,e.location=this.form.get("location-text").value.trim(),e.key=this.form.get("key-text").value.trim(),this.dialogRef.close(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-skysocks-client-filter"]],decls:20,vars:15,consts:[[3,"headline","dialog"],[3,"formGroup"],[4,"ngIf"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","location-text","maxlength","100","matInput",""],["formControlName","key-text","maxlength","66","matInput",""],["type","mat-raised-button","color","primary",1,"float-right",3,"action"],["button",""],["formControlName","country","id","country"],[3,"value"],[3,"value",4,"ngFor","ngForOf"],[1,"flag-container"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1),V(3,rte,13,10,"mat-form-field",2),D(4,"mat-form-field")(5,"div",3)(6,"label",4),I(7),R(8,"translate"),C(),xe(9,"input",5),C()(),D(10,"mat-form-field")(11,"div",3)(12,"label",4),I(13),R(14,"translate"),C(),xe(15,"input",6),C()()(),D(16,"app-button",7,8),ye("action",function(){return i.apply()}),I(18),R(19,"translate"),C()()),2&e&&(w("headline",H(1,7,"apps.vpn-socks-client-settings.filter-dialog.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(1),w("ngIf",i.data.availableCountries.length>0),c(4),se(H(8,9,"apps.vpn-socks-client-settings.filter-dialog.location")),c(6),se(H(14,11,"apps.vpn-socks-client-settings.filter-dialog.pub-key")),c(5),ce(" ",H(19,13,"apps.vpn-socks-client-settings.filter-dialog.apply")," "))},dependencies:[gi,Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,tf,Bq,Pd,Ui,ei,wt]}),t})();const ste=["firstInput"];let ate=(()=>{class t{static openDialog(e){const i=new En;return i.autoFocus=!1,i.width=Vt.smallModalWidth,e.open(t,i)}constructor(e,i){this.dialogRef=e,this.formBuilder=i}ngOnInit(){this.form=this.formBuilder.group({password:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}finish(){const e=this.form.get("password").value;this.dialogRef.close("-"+e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(xr))},t.\u0275cmp=Ze({type:t,selectors:[["app-skysocks-client-password"]],viewQuery:function(e,i){if(1&e&&_t(ste,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:16,vars:14,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"info"],[1,"field-container"],["for","remoteKey",1,"field-label"],["type","password","id","password","formControlName","password","maxlength","100","matInput",""],["firstInput",""],["color","primary","type","mat-raised-button",1,"float-right",3,"action"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"div",2),I(4),R(5,"translate"),C(),D(6,"mat-form-field")(7,"div",3)(8,"label",4),I(9),R(10,"translate"),C(),xe(11,"input",5,6),C()()(),D(13,"app-button",7),ye("action",function(){return i.finish()}),I(14),R(15,"translate"),C()()),2&e&&(w("headline",H(1,6,"apps.vpn-socks-client-settings.password-dialog.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(2),se(H(5,8,"apps.vpn-socks-client-settings.password-dialog.info")),c(5),se(H(10,10,"apps.vpn-socks-client-settings.password-dialog.password")),c(5),ce(" ",H(15,12,"apps.vpn-socks-client-settings.password-dialog.continue-button")," "))},dependencies:[zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,Ui,ei,wt],styles:[".info[_ngcontent-%COMP%]{font-size:.7rem;margin-bottom:15px}"]}),t})(),lte=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type="}getServices(e){const i=[];return this.http.get(this.discoveryServiceUrl+(e?"proxy":"vpn")).pipe(rf(o=>o.pipe(Ti(4e3))),ke(o=>(o||(o=[]),o.forEach(s=>{const a=new KG,l=s.address.split(":");2===l.length&&(a.address=s.address,a.pk=l[0],a.port=l[1],a.location="",s.geo&&(s.geo.country&&(a.country=s.geo.country,a.location+=ma[s.geo.country.toUpperCase()]?ma[s.geo.country.toUpperCase()]:s.geo.country),s.geo.region&&s.geo.country&&(a.location+=", "),s.geo.region&&(a.region=s.geo.region,a.location+=a.region)),i.push(a))}),i)))}}return t.\u0275fac=function(e){return new(e||t)(we(Vl))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function cte(t,n){}const dte=function(t){return{animationDuration:t}},ute=function(t,n){return{value:t,params:n}};function hte(t,n){1&t&&Sn(0)}const gP=["*"],fte=["tabListContainer"],pte=["tabList"],mte=["tabListInner"],gte=["nextPaginator"],_te=["previousPaginator"],bte=["tabBodyWrapper"],vte=["tabHeader"];function yte(t,n){}function Mte(t,n){1&t&&V(0,yte,0,0,"ng-template",14),2&t&&w("cdkPortalOutlet",z().$implicit.templateLabel)}function wte(t,n){1&t&&I(0),2&t&&se(z().$implicit.textLabel)}function Cte(t,n){if(1&t){const e=et();D(0,"div",6,7),ye("click",function(){const o=Pe(e),s=o.$implicit,a=o.index,l=z(),d=ci(1);return Oe(l._handleClick(s,d,a))})("cdkFocusChange",function(o){const a=Pe(e).index;return Oe(z()._tabFocusChanged(o,a))}),xe(2,"span",8)(3,"div",9),D(4,"span",10)(5,"span",11),V(6,Mte,1,1,"ng-template",12),V(7,wte,1,1,"ng-template",null,13,Es),C()()()}if(2&t){const e=n.$implicit,i=n.index,o=ci(1),s=ci(8),a=z();nn("mdc-tab--active",a.selectedIndex===i),w("id",a._getTabLabelId(i))("ngClass",e.labelClass)("disabled",e.disabled)("fitInkBarToContent",a.fitInkBarToContent),Xt("tabIndex",a._getTabIndex(i))("aria-posinset",i+1)("aria-setsize",a._tabs.length)("aria-controls",a._getTabContentId(i))("aria-selected",a.selectedIndex===i)("aria-label",e.ariaLabel||null)("aria-labelledby",!e.ariaLabel&&e.ariaLabelledby?e.ariaLabelledby:null),c(3),w("matRippleTrigger",o)("matRippleDisabled",e.disabled||a.disableRipple),c(3),w("ngIf",e.templateLabel)("ngIfElse",s)}}function xte(t,n){if(1&t){const e=et();D(0,"mat-tab-body",15),ye("_onCentered",function(){return Pe(e),Oe(z()._removeTabBodyWrapperHeight())})("_onCentering",function(o){return Pe(e),Oe(z()._setTabBodyWrapperHeight(o))}),C()}if(2&t){const e=n.$implicit,i=n.index,o=z();nn("mat-mdc-tab-body-active",o.selectedIndex===i),w("id",o._getTabContentId(i))("ngClass",e.bodyClass)("content",e.content)("position",e.position)("origin",e.origin)("animationDuration",o.animationDuration)("preserveContent",o.preserveContent),Xt("tabindex",null!=o.contentTabIndex&&o.selectedIndex===i?o.contentTabIndex:null)("aria-labelledby",o._getTabLabelId(i))}}const kte={translateTab:ia("translateTab",[yo("center, void, left-origin-center, right-origin-center",Qn({transform:"none"})),yo("left",Qn({transform:"translate3d(-100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),yo("right",Qn({transform:"translate3d(100%, 0, 0)",minHeight:"1px",visibility:"hidden"})),Pr("* => left, * => right, left => center, right => center",Ur("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")),Pr("void => left-origin-center",[Qn({transform:"translate3d(-100%, 0, 0)",visibility:"hidden"}),Ur("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")]),Pr("void => right-origin-center",[Qn({transform:"translate3d(100%, 0, 0)",visibility:"hidden"}),Ur("{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)")])])};let Ste=(()=>{class t extends Ja{constructor(e,i,o,s){super(e,i,s),this._host=o,this._centeringSub=T.EMPTY,this._leavingSub=T.EMPTY}ngOnInit(){super.ngOnInit(),this._centeringSub=this._host._beforeCentering.pipe(Go(this._host._isCenterPosition(this._host._position))).subscribe(e=>{e&&!this.hasAttached()&&this.attach(this._host._content)}),this._leavingSub=this._host._afterLeavingCenter.subscribe(()=>{this._host.preserveContent||this.detach()})}ngOnDestroy(){super.ngOnDestroy(),this._centeringSub.unsubscribe(),this._leavingSub.unsubscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(Tl),Y(rr),Y(pn(()=>_P)),Y(It))},t.\u0275dir=Ke({type:t,selectors:[["","matTabBodyHost",""]],features:[nt]}),t})(),Dte=(()=>{class t{set position(e){this._positionIndex=e,this._computePositionAnimationState()}constructor(e,i,o){this._elementRef=e,this._dir=i,this._dirChangeSubscription=T.EMPTY,this._translateTabComplete=new J,this._onCentering=new ht,this._beforeCentering=new ht,this._afterLeavingCenter=new ht,this._onCentered=new ht(!0),this.animationDuration="500ms",this.preserveContent=!1,i&&(this._dirChangeSubscription=i.change.subscribe(s=>{this._computePositionAnimationState(s),o.markForCheck()})),this._translateTabComplete.pipe(V0((s,a)=>s.fromState===a.fromState&&s.toState===a.toState)).subscribe(s=>{this._isCenterPosition(s.toState)&&this._isCenterPosition(this._position)&&this._onCentered.emit(),this._isCenterPosition(s.fromState)&&!this._isCenterPosition(this._position)&&this._afterLeavingCenter.emit()})}ngOnInit(){"center"==this._position&&null!=this.origin&&(this._position=this._computePositionFromOrigin(this.origin))}ngOnDestroy(){this._dirChangeSubscription.unsubscribe(),this._translateTabComplete.complete()}_onTranslateTabStarted(e){const i=this._isCenterPosition(e.toState);this._beforeCentering.emit(i),i&&this._onCentering.emit(this._elementRef.nativeElement.clientHeight)}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_isCenterPosition(e){return"center"==e||"left-origin-center"==e||"right-origin-center"==e}_computePositionAnimationState(e=this._getLayoutDirection()){this._position=this._positionIndex<0?"ltr"==e?"left":"right":this._positionIndex>0?"ltr"==e?"right":"left":"center"}_computePositionFromOrigin(e){const i=this._getLayoutDirection();return"ltr"==i&&e<=0||"rtl"==i&&e>0?"left-origin-center":"right-origin-center"}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(Do,8),Y(pi))},t.\u0275dir=Ke({type:t,inputs:{_content:["content","_content"],origin:"origin",animationDuration:"animationDuration",preserveContent:"preserveContent",position:"position"},outputs:{_onCentering:"_onCentering",_beforeCentering:"_beforeCentering",_afterLeavingCenter:"_afterLeavingCenter",_onCentered:"_onCentered"}}),t})(),_P=(()=>{class t extends Dte{constructor(e,i,o){super(e,i,o)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(Do,8),Y(pi))},t.\u0275cmp=Ze({type:t,selectors:[["mat-tab-body"]],viewQuery:function(e,i){if(1&e&&_t(Ja,5),2&e){let o;rt(o=ot())&&(i._portalHost=o.first)}},hostAttrs:[1,"mat-mdc-tab-body"],features:[nt],decls:3,vars:6,consts:[["cdkScrollable","",1,"mat-mdc-tab-body-content"],["content",""],["matTabBodyHost",""]],template:function(e,i){1&e&&(D(0,"div",0,1),ye("@translateTab.start",function(s){return i._onTranslateTabStarted(s)})("@translateTab.done",function(s){return i._translateTabComplete.next(s)}),V(2,cte,0,0,"ng-template",2),C()),2&e&&w("@translateTab",mn(3,ute,i._position,He(1,dte,i.animationDuration)))},dependencies:[Ste],styles:['.mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*="visibility: hidden"]{display:none}'],encapsulation:2,data:{animation:[kte.translateTab]}}),t})();const Tte=new Re("MatTabContent");let Lte=(()=>{class t{constructor(e){this.template=e}}return t.\u0275fac=function(e){return new(e||t)(Y(mr))},t.\u0275dir=Ke({type:t,selectors:[["","matTabContent",""]],features:[un([{provide:Tte,useExisting:t}])]}),t})();const Ete=new Re("MatTabLabel"),bP=new Re("MAT_TAB");let Ite=(()=>{class t extends T9{constructor(e,i,o){super(e,i),this._closestTab=o}}return t.\u0275fac=function(e){return new(e||t)(Y(mr),Y(rr),Y(bP,8))},t.\u0275dir=Ke({type:t,selectors:[["","mat-tab-label",""],["","matTabLabel",""]],features:[un([{provide:Ete,useExisting:t}]),nt]}),t})();const U1="mdc-tab-indicator--active",vP="mdc-tab-indicator--no-transition";class Pte{constructor(n){this._items=n}hide(){this._items.forEach(n=>n.deactivateInkBar())}alignToElement(n){const e=this._items.find(o=>o.elementRef.nativeElement===n),i=this._currentItem;if(e!==i&&(i?.deactivateInkBar(),e)){const o=i?.elementRef.nativeElement.getBoundingClientRect?.();e.activateInkBar(o),this._currentItem=e}}}function Ote(t){return class extends t{constructor(...n){super(...n),this._fitToContent=!1}get fitInkBarToContent(){return this._fitToContent}set fitInkBarToContent(n){const e=_n(n);this._fitToContent!==e&&(this._fitToContent=e,this._inkBarElement&&this._appendInkBarElement())}activateInkBar(n){const e=this.elementRef.nativeElement;if(!n||!e.getBoundingClientRect||!this._inkBarContentElement)return void e.classList.add(U1);const i=e.getBoundingClientRect(),o=n.width/i.width,s=n.left-i.left;e.classList.add(vP),this._inkBarContentElement.style.setProperty("transform",`translateX(${s}px) scaleX(${o})`),e.getBoundingClientRect(),e.classList.remove(vP),e.classList.add(U1),this._inkBarContentElement.style.setProperty("transform","")}deactivateInkBar(){this.elementRef.nativeElement.classList.remove(U1)}ngOnInit(){this._createInkBarElement()}ngOnDestroy(){this._inkBarElement?.remove(),this._inkBarElement=this._inkBarContentElement=null}_createInkBarElement(){const n=this.elementRef.nativeElement.ownerDocument||document;this._inkBarElement=n.createElement("span"),this._inkBarContentElement=n.createElement("span"),this._inkBarElement.className="mdc-tab-indicator",this._inkBarContentElement.className="mdc-tab-indicator__content mdc-tab-indicator__content--underline",this._inkBarElement.appendChild(this._inkBarContentElement),this._appendInkBarElement()}_appendInkBarElement(){(this._fitToContent?this.elementRef.nativeElement.querySelector(".mdc-tab__content"):this.elementRef.nativeElement).appendChild(this._inkBarElement)}}}const Fte=Ed(class{}),Rte=Ote((()=>{class t extends Fte{constructor(e){super(),this.elementRef=e}focus(){this.elementRef.nativeElement.focus()}getOffsetLeft(){return this.elementRef.nativeElement.offsetLeft}getOffsetWidth(){return this.elementRef.nativeElement.offsetWidth}}return t.\u0275fac=function(e){return new(e||t)(Y(vt))},t.\u0275dir=Ke({type:t,features:[nt]}),t})());let yP=(()=>{class t extends Rte{}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275dir=Ke({type:t,selectors:[["","matTabLabelWrapper",""]],hostVars:3,hostBindings:function(e,i){2&e&&(Xt("aria-disabled",!!i.disabled),nn("mat-mdc-tab-disabled",i.disabled))},inputs:{disabled:"disabled",fitInkBarToContent:"fitInkBarToContent"},features:[nt]}),t})();const Nte=Ed(class{}),MP=new Re("MAT_TAB_GROUP");let Yte=(()=>{class t extends Nte{get content(){return this._contentPortal}constructor(e,i){super(),this._viewContainerRef=e,this._closestTabGroup=i,this.textLabel="",this._contentPortal=null,this._stateChanges=new J,this.position=null,this.origin=null,this.isActive=!1}ngOnChanges(e){(e.hasOwnProperty("textLabel")||e.hasOwnProperty("disabled"))&&this._stateChanges.next()}ngOnDestroy(){this._stateChanges.complete()}ngOnInit(){this._contentPortal=new Gl(this._explicitContent||this._implicitContent,this._viewContainerRef)}_setTemplateLabelInput(e){e&&e._closestTab===this&&(this._templateLabel=e)}}return t.\u0275fac=function(e){return new(e||t)(Y(rr),Y(MP,8))},t.\u0275dir=Ke({type:t,viewQuery:function(e,i){if(1&e&&_t(mr,7),2&e){let o;rt(o=ot())&&(i._implicitContent=o.first)}},inputs:{textLabel:["label","textLabel"],ariaLabel:["aria-label","ariaLabel"],ariaLabelledby:["aria-labelledby","ariaLabelledby"],labelClass:"labelClass",bodyClass:"bodyClass"},features:[nt,Gi]}),t})(),wP=(()=>{class t extends Yte{constructor(){super(...arguments),this._explicitContent=void 0}get templateLabel(){return this._templateLabel}set templateLabel(e){this._setTemplateLabelInput(e)}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["mat-tab"]],contentQueries:function(e,i,o){if(1&e&&(or(o,Lte,7,mr),or(o,Ite,5)),2&e){let s;rt(s=ot())&&(i._explicitContent=s.first),rt(s=ot())&&(i.templateLabel=s.first)}},inputs:{disabled:"disabled"},exportAs:["matTab"],features:[un([{provide:bP,useExisting:t}]),nt],ngContentSelectors:gP,decls:1,vars:0,template:function(e,i){1&e&&(Ir(),V(0,hte,1,0,"ng-template"))},encapsulation:2}),t})();const CP=Za({passive:!0});let Vte=(()=>{class t{get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=_n(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){e=So(e),this._selectedIndex!=e&&(this._selectedIndexChanged=!0,this._selectedIndex=e,this._keyManager&&this._keyManager.updateActiveItem(e))}constructor(e,i,o,s,a,l,d){this._elementRef=e,this._changeDetectorRef=i,this._viewportRuler=o,this._dir=s,this._ngZone=a,this._platform=l,this._animationMode=d,this._scrollDistance=0,this._selectedIndexChanged=!1,this._destroyed=new J,this._showPaginationControls=!1,this._disableScrollAfter=!0,this._disableScrollBefore=!0,this._stopScrolling=new J,this._disablePagination=!1,this._selectedIndex=0,this.selectFocusedIndex=new ht,this.indexFocused=new ht,a.runOutsideAngular(()=>{kh(e.nativeElement,"mouseleave").pipe(Hn(this._destroyed)).subscribe(()=>{this._stopInterval()})})}ngAfterViewInit(){kh(this._previousPaginator.nativeElement,"touchstart",CP).pipe(Hn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("before")}),kh(this._nextPaginator.nativeElement,"touchstart",CP).pipe(Hn(this._destroyed)).subscribe(()=>{this._handlePaginatorPress("after")})}ngAfterContentInit(){const e=this._dir?this._dir.change:$e("ltr"),i=this._viewportRuler.change(150),o=()=>{this.updatePagination(),this._alignInkBarToSelectedTab()};this._keyManager=new _L(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap().skipPredicate(()=>!1),this._keyManager.updateActiveItem(this._selectedIndex),this._ngZone.onStable.pipe(Kn(1)).subscribe(o),bt(e,i,this._items.changes,this._itemsResized()).pipe(Hn(this._destroyed)).subscribe(()=>{this._ngZone.run(()=>{Promise.resolve().then(()=>{this._scrollDistance=Math.max(0,Math.min(this._getMaxScrollDistance(),this._scrollDistance)),o()})}),this._keyManager.withHorizontalOrientation(this._getLayoutDirection())}),this._keyManager.change.subscribe(s=>{this.indexFocused.emit(s),this._setTabFocus(s)})}_itemsResized(){return"function"!=typeof ResizeObserver?oa:this._items.changes.pipe(Go(this._items),gr(e=>new he(i=>this._ngZone.runOutsideAngular(()=>{const o=new ResizeObserver(s=>i.next(s));return e.forEach(s=>o.observe(s.elementRef.nativeElement)),()=>{o.disconnect()}}))),B0(1),_i(e=>e.some(i=>i.contentRect.width>0&&i.contentRect.height>0)))}ngAfterContentChecked(){this._tabLabelCount!=this._items.length&&(this.updatePagination(),this._tabLabelCount=this._items.length,this._changeDetectorRef.markForCheck()),this._selectedIndexChanged&&(this._scrollToLabel(this._selectedIndex),this._checkScrollingControls(),this._alignInkBarToSelectedTab(),this._selectedIndexChanged=!1,this._changeDetectorRef.markForCheck()),this._scrollDistanceChanged&&(this._updateTabScrollPosition(),this._scrollDistanceChanged=!1,this._changeDetectorRef.markForCheck())}ngOnDestroy(){this._keyManager?.destroy(),this._destroyed.next(),this._destroyed.complete(),this._stopScrolling.complete()}_handleKeydown(e){if(!Fs(e))switch(e.keyCode){case 13:case 32:if(this.focusIndex!==this.selectedIndex){const i=this._items.get(this.focusIndex);i&&!i.disabled&&(this.selectFocusedIndex.emit(this.focusIndex),this._itemSelected(e))}break;default:this._keyManager.onKeydown(e)}}_onContentChanges(){const e=this._elementRef.nativeElement.textContent;e!==this._currentTextContent&&(this._currentTextContent=e||"",this._ngZone.run(()=>{this.updatePagination(),this._alignInkBarToSelectedTab(),this._changeDetectorRef.markForCheck()}))}updatePagination(){this._checkPaginationEnabled(),this._checkScrollingControls(),this._updateTabScrollPosition()}get focusIndex(){return this._keyManager?this._keyManager.activeItemIndex:0}set focusIndex(e){!this._isValidIndex(e)||this.focusIndex===e||!this._keyManager||this._keyManager.setActiveItem(e)}_isValidIndex(e){return!this._items||!!this._items.toArray()[e]}_setTabFocus(e){if(this._showPaginationControls&&this._scrollToLabel(e),this._items&&this._items.length){this._items.toArray()[e].focus();const i=this._tabListContainer.nativeElement;i.scrollLeft="ltr"==this._getLayoutDirection()?0:i.scrollWidth-i.offsetWidth}}_getLayoutDirection(){return this._dir&&"rtl"===this._dir.value?"rtl":"ltr"}_updateTabScrollPosition(){if(this.disablePagination)return;const e=this.scrollDistance,i="ltr"===this._getLayoutDirection()?-e:e;this._tabList.nativeElement.style.transform=`translateX(${Math.round(i)}px)`,(this._platform.TRIDENT||this._platform.EDGE)&&(this._tabListContainer.nativeElement.scrollLeft=0)}get scrollDistance(){return this._scrollDistance}set scrollDistance(e){this._scrollTo(e)}_scrollHeader(e){return this._scrollTo(this._scrollDistance+("before"==e?-1:1)*this._tabListContainer.nativeElement.offsetWidth/3)}_handlePaginatorClick(e){this._stopInterval(),this._scrollHeader(e)}_scrollToLabel(e){if(this.disablePagination)return;const i=this._items?this._items.toArray()[e]:null;if(!i)return;const o=this._tabListContainer.nativeElement.offsetWidth,{offsetLeft:s,offsetWidth:a}=i.elementRef.nativeElement;let l,d;"ltr"==this._getLayoutDirection()?(l=s,d=l+a):(d=this._tabListInner.nativeElement.offsetWidth-s,l=d-a);const _=this.scrollDistance,E=this.scrollDistance+o;l<_?this.scrollDistance-=_-l:d>E&&(this.scrollDistance+=Math.min(d-E,l-_))}_checkPaginationEnabled(){if(this.disablePagination)this._showPaginationControls=!1;else{const e=this._tabListInner.nativeElement.scrollWidth>this._elementRef.nativeElement.offsetWidth;e||(this.scrollDistance=0),e!==this._showPaginationControls&&this._changeDetectorRef.markForCheck(),this._showPaginationControls=e}}_checkScrollingControls(){this.disablePagination?this._disableScrollAfter=this._disableScrollBefore=!0:(this._disableScrollBefore=0==this.scrollDistance,this._disableScrollAfter=this.scrollDistance==this._getMaxScrollDistance(),this._changeDetectorRef.markForCheck())}_getMaxScrollDistance(){return this._tabListInner.nativeElement.scrollWidth-this._tabListContainer.nativeElement.offsetWidth||0}_alignInkBarToSelectedTab(){const e=this._items&&this._items.length?this._items.toArray()[this.selectedIndex]:null,i=e?e.elementRef.nativeElement:null;i?this._inkBar.alignToElement(i):this._inkBar.hide()}_stopInterval(){this._stopScrolling.next()}_handlePaginatorPress(e,i){i&&null!=i.button&&0!==i.button||(this._stopInterval(),Sh(650,100).pipe(Hn(bt(this._stopScrolling,this._destroyed))).subscribe(()=>{const{maxScrollDistance:o,distance:s}=this._scrollHeader(e);(0===s||s>=o)&&this._stopInterval()}))}_scrollTo(e){if(this.disablePagination)return{maxScrollDistance:0,distance:0};const i=this._getMaxScrollDistance();return this._scrollDistance=Math.max(0,Math.min(i,e)),this._scrollDistanceChanged=!0,this._checkScrollingControls(),{maxScrollDistance:i,distance:this._scrollDistance}}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(kd),Y(Do,8),Y(ft),Y(ui),Y(Ri,8))},t.\u0275dir=Ke({type:t,inputs:{disablePagination:"disablePagination"}}),t})(),jte=(()=>{class t extends Vte{get disableRipple(){return this._disableRipple}set disableRipple(e){this._disableRipple=_n(e)}constructor(e,i,o,s,a,l,d){super(e,i,o,s,a,l,d),this._disableRipple=!1}_itemSelected(e){e.preventDefault()}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(kd),Y(Do,8),Y(ft),Y(ui),Y(Ri,8))},t.\u0275dir=Ke({type:t,inputs:{disableRipple:"disableRipple"},features:[nt]}),t})(),zte=(()=>{class t extends jte{constructor(e,i,o,s,a,l,d){super(e,i,o,s,a,l,d)}ngAfterContentInit(){this._inkBar=new Pte(this._items),super.ngAfterContentInit()}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(kd),Y(Do,8),Y(ft),Y(ui),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-tab-header"]],contentQueries:function(e,i,o){if(1&e&&or(o,yP,4),2&e){let s;rt(s=ot())&&(i._items=s)}},viewQuery:function(e,i){if(1&e&&(_t(fte,7),_t(pte,7),_t(mte,7),_t(gte,5),_t(_te,5)),2&e){let o;rt(o=ot())&&(i._tabListContainer=o.first),rt(o=ot())&&(i._tabList=o.first),rt(o=ot())&&(i._tabListInner=o.first),rt(o=ot())&&(i._nextPaginator=o.first),rt(o=ot())&&(i._previousPaginator=o.first)}},hostAttrs:[1,"mat-mdc-tab-header"],hostVars:4,hostBindings:function(e,i){2&e&&nn("mat-mdc-tab-header-pagination-controls-enabled",i._showPaginationControls)("mat-mdc-tab-header-rtl","rtl"==i._getLayoutDirection())},inputs:{selectedIndex:"selectedIndex"},outputs:{selectFocusedIndex:"selectFocusedIndex",indexFocused:"indexFocused"},features:[nt],ngContentSelectors:gP,decls:13,vars:10,consts:[["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-before",3,"matRippleDisabled","disabled","click","mousedown","touchend"],["previousPaginator",""],[1,"mat-mdc-tab-header-pagination-chevron"],[1,"mat-mdc-tab-label-container",3,"keydown"],["tabListContainer",""],["role","tablist",1,"mat-mdc-tab-list",3,"cdkObserveContent"],["tabList",""],[1,"mat-mdc-tab-labels"],["tabListInner",""],["aria-hidden","true","type","button","mat-ripple","","tabindex","-1",1,"mat-mdc-tab-header-pagination","mat-mdc-tab-header-pagination-after",3,"matRippleDisabled","disabled","mousedown","click","touchend"],["nextPaginator",""]],template:function(e,i){1&e&&(Ir(),D(0,"button",0,1),ye("click",function(){return i._handlePaginatorClick("before")})("mousedown",function(s){return i._handlePaginatorPress("before",s)})("touchend",function(){return i._stopInterval()}),xe(2,"div",2),C(),D(3,"div",3,4),ye("keydown",function(s){return i._handleKeydown(s)}),D(5,"div",5,6),ye("cdkObserveContent",function(){return i._onContentChanges()}),D(7,"div",7,8),Sn(9),C()()(),D(10,"button",9,10),ye("mousedown",function(s){return i._handlePaginatorPress("after",s)})("click",function(){return i._handlePaginatorClick("after")})("touchend",function(){return i._stopInterval()}),xe(12,"div",2),C()),2&e&&(nn("mat-mdc-tab-header-pagination-disabled",i._disableScrollBefore),w("matRippleDisabled",i._disableScrollBefore||i.disableRipple)("disabled",i._disableScrollBefore||null),c(3),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode),c(7),nn("mat-mdc-tab-header-pagination-disabled",i._disableScrollAfter),w("matRippleDisabled",i._disableScrollAfter||i.disableRipple)("disabled",i._disableScrollAfter||null))},dependencies:[Zl,dL],styles:[".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"],encapsulation:2}),t})();const xP=new Re("MAT_TABS_CONFIG");let Ute=0;const Wte=Fh(Rh(class{constructor(t){this._elementRef=t}}),"primary");let $te=(()=>{class t extends Wte{get dynamicHeight(){return this._dynamicHeight}set dynamicHeight(e){this._dynamicHeight=_n(e)}get selectedIndex(){return this._selectedIndex}set selectedIndex(e){this._indexToSelect=So(e,null)}get animationDuration(){return this._animationDuration}set animationDuration(e){this._animationDuration=/^\d+$/.test(e+"")?e+"ms":e}get contentTabIndex(){return this._contentTabIndex}set contentTabIndex(e){this._contentTabIndex=So(e,null)}get disablePagination(){return this._disablePagination}set disablePagination(e){this._disablePagination=_n(e)}get preserveContent(){return this._preserveContent}set preserveContent(e){this._preserveContent=_n(e)}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){const i=this._elementRef.nativeElement.classList;i.remove("mat-tabs-with-background",`mat-background-${this.backgroundColor}`),e&&i.add("mat-tabs-with-background",`mat-background-${e}`),this._backgroundColor=e}constructor(e,i,o,s){super(e),this._changeDetectorRef=i,this._animationMode=s,this._tabs=new Al,this._indexToSelect=0,this._lastFocusedTabIndex=null,this._tabBodyWrapperHeight=0,this._tabsSubscription=T.EMPTY,this._tabLabelSubscription=T.EMPTY,this._dynamicHeight=!1,this._selectedIndex=null,this.headerPosition="above",this._disablePagination=!1,this._preserveContent=!1,this.selectedIndexChange=new ht,this.focusChange=new ht,this.animationDone=new ht,this.selectedTabChange=new ht(!0),this._groupId=Ute++,this.animationDuration=o&&o.animationDuration?o.animationDuration:"500ms",this.disablePagination=!(!o||null==o.disablePagination)&&o.disablePagination,this.dynamicHeight=!(!o||null==o.dynamicHeight)&&o.dynamicHeight,this.contentTabIndex=o?.contentTabIndex??null,this.preserveContent=!!o?.preserveContent}ngAfterContentChecked(){const e=this._indexToSelect=this._clampTabIndex(this._indexToSelect);if(this._selectedIndex!=e){const i=null==this._selectedIndex;if(!i){this.selectedTabChange.emit(this._createChangeEvent(e));const o=this._tabBodyWrapper.nativeElement;o.style.minHeight=o.clientHeight+"px"}Promise.resolve().then(()=>{this._tabs.forEach((o,s)=>o.isActive=s===e),i||(this.selectedIndexChange.emit(e),this._tabBodyWrapper.nativeElement.style.minHeight="")})}this._tabs.forEach((i,o)=>{i.position=o-e,null!=this._selectedIndex&&0==i.position&&!i.origin&&(i.origin=e-this._selectedIndex)}),this._selectedIndex!==e&&(this._selectedIndex=e,this._lastFocusedTabIndex=null,this._changeDetectorRef.markForCheck())}ngAfterContentInit(){this._subscribeToAllTabChanges(),this._subscribeToTabLabels(),this._tabsSubscription=this._tabs.changes.subscribe(()=>{const e=this._clampTabIndex(this._indexToSelect);if(e===this._selectedIndex){const i=this._tabs.toArray();let o;for(let s=0;s{i[e].isActive=!0,this.selectedTabChange.emit(this._createChangeEvent(e))})}this._changeDetectorRef.markForCheck()})}_subscribeToAllTabChanges(){this._allTabs.changes.pipe(Go(this._allTabs)).subscribe(e=>{this._tabs.reset(e.filter(i=>i._closestTabGroup===this||!i._closestTabGroup)),this._tabs.notifyOnChanges()})}ngOnDestroy(){this._tabs.destroy(),this._tabsSubscription.unsubscribe(),this._tabLabelSubscription.unsubscribe()}realignInkBar(){this._tabHeader&&this._tabHeader._alignInkBarToSelectedTab()}updatePagination(){this._tabHeader&&this._tabHeader.updatePagination()}focusTab(e){const i=this._tabHeader;i&&(i.focusIndex=e)}_focusChanged(e){this._lastFocusedTabIndex=e,this.focusChange.emit(this._createChangeEvent(e))}_createChangeEvent(e){const i=new qte;return i.index=e,this._tabs&&this._tabs.length&&(i.tab=this._tabs.toArray()[e]),i}_subscribeToTabLabels(){this._tabLabelSubscription&&this._tabLabelSubscription.unsubscribe(),this._tabLabelSubscription=bt(...this._tabs.map(e=>e._stateChanges)).subscribe(()=>this._changeDetectorRef.markForCheck())}_clampTabIndex(e){return Math.min(this._tabs.length-1,Math.max(e||0,0))}_getTabLabelId(e){return`mat-tab-label-${this._groupId}-${e}`}_getTabContentId(e){return`mat-tab-content-${this._groupId}-${e}`}_setTabBodyWrapperHeight(e){if(!this._dynamicHeight||!this._tabBodyWrapperHeight)return;const i=this._tabBodyWrapper.nativeElement;i.style.height=this._tabBodyWrapperHeight+"px",this._tabBodyWrapper.nativeElement.offsetHeight&&(i.style.height=e+"px")}_removeTabBodyWrapperHeight(){const e=this._tabBodyWrapper.nativeElement;this._tabBodyWrapperHeight=e.clientHeight,e.style.height="",this.animationDone.emit()}_handleClick(e,i,o){i.focusIndex=o,e.disabled||(this.selectedIndex=o)}_getTabIndex(e){return e===(this._lastFocusedTabIndex??this.selectedIndex)?0:-1}_tabFocusChanged(e,i){e&&"mouse"!==e&&"touch"!==e&&(this._tabHeader.focusIndex=i)}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(xP,8),Y(Ri,8))},t.\u0275dir=Ke({type:t,inputs:{dynamicHeight:"dynamicHeight",selectedIndex:"selectedIndex",headerPosition:"headerPosition",animationDuration:"animationDuration",contentTabIndex:"contentTabIndex",disablePagination:"disablePagination",preserveContent:"preserveContent",backgroundColor:"backgroundColor"},outputs:{selectedIndexChange:"selectedIndexChange",focusChange:"focusChange",animationDone:"animationDone",selectedTabChange:"selectedTabChange"},features:[nt]}),t})(),Gte=(()=>{class t extends $te{get fitInkBarToContent(){return this._fitInkBarToContent}set fitInkBarToContent(e){this._fitInkBarToContent=_n(e),this._changeDetectorRef.markForCheck()}get stretchTabs(){return this._stretchTabs}set stretchTabs(e){this._stretchTabs=_n(e)}constructor(e,i,o,s){super(e,i,o,s),this._fitInkBarToContent=!1,this._stretchTabs=!0,this.fitInkBarToContent=!(!o||null==o.fitInkBarToContent)&&o.fitInkBarToContent,this.stretchTabs=!o||null==o.stretchTabs||o.stretchTabs}}return t.\u0275fac=function(e){return new(e||t)(Y(vt),Y(pi),Y(xP,8),Y(Ri,8))},t.\u0275cmp=Ze({type:t,selectors:[["mat-tab-group"]],contentQueries:function(e,i,o){if(1&e&&or(o,wP,5),2&e){let s;rt(s=ot())&&(i._allTabs=s)}},viewQuery:function(e,i){if(1&e&&(_t(bte,5),_t(vte,5)),2&e){let o;rt(o=ot())&&(i._tabBodyWrapper=o.first),rt(o=ot())&&(i._tabHeader=o.first)}},hostAttrs:["ngSkipHydration","true",1,"mat-mdc-tab-group"],hostVars:6,hostBindings:function(e,i){2&e&&nn("mat-mdc-tab-group-dynamic-height",i.dynamicHeight)("mat-mdc-tab-group-inverted-header","below"===i.headerPosition)("mat-mdc-tab-group-stretch-tabs",i.stretchTabs)},inputs:{color:"color",disableRipple:"disableRipple",fitInkBarToContent:"fitInkBarToContent",stretchTabs:["mat-stretch-tabs","stretchTabs"]},exportAs:["matTabGroup"],features:[un([{provide:MP,useExisting:t}]),nt],decls:6,vars:7,consts:[[3,"selectedIndex","disableRipple","disablePagination","indexFocused","selectFocusedIndex"],["tabHeader",""],["class","mdc-tab mat-mdc-tab mat-mdc-focus-indicator","role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",3,"id","mdc-tab--active","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange",4,"ngFor","ngForOf"],[1,"mat-mdc-tab-body-wrapper"],["tabBodyWrapper",""],["role","tabpanel",3,"id","mat-mdc-tab-body-active","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering",4,"ngFor","ngForOf"],["role","tab","matTabLabelWrapper","","cdkMonitorElementFocus","",1,"mdc-tab","mat-mdc-tab","mat-mdc-focus-indicator",3,"id","ngClass","disabled","fitInkBarToContent","click","cdkFocusChange"],["tabNode",""],[1,"mdc-tab__ripple"],["mat-ripple","",1,"mat-mdc-tab-ripple",3,"matRippleTrigger","matRippleDisabled"],[1,"mdc-tab__content"],[1,"mdc-tab__text-label"],[3,"ngIf","ngIfElse"],["tabTextLabel",""],[3,"cdkPortalOutlet"],["role","tabpanel",3,"id","ngClass","content","position","origin","animationDuration","preserveContent","_onCentered","_onCentering"]],template:function(e,i){1&e&&(D(0,"mat-tab-header",0,1),ye("indexFocused",function(s){return i._focusChanged(s)})("selectFocusedIndex",function(s){return i.selectedIndex=s}),V(2,Cte,9,17,"div",2),C(),D(3,"div",3,4),V(5,xte,1,11,"mat-tab-body",5),C()),2&e&&(w("selectedIndex",i.selectedIndex||0)("disableRipple",i.disableRipple)("disablePagination",i.disablePagination),c(2),w("ngForOf",i._tabs),c(1),nn("_mat-animation-noopable","NoopAnimations"===i._animationMode),c(2),w("ngForOf",i._tabs))},dependencies:[Nn,gi,Ft,Ja,Zl,Yz,_P,yP,zte],styles:['.mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-letter-spacing);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}'],encapsulation:2}),t})();class qte{}let Kte=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[ta,Wn,Dd,Yh,j0,X0,Wn]}),t})();const Zte=["button"],Xte=["settingsButton"],Jte=["firstInput"];function Qte(t,n){1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),se(H(3,1,"apps.vpn-socks-client-settings.remote-key-length-error")))}function ene(t,n){1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.vpn-socks-client-settings.remote-key-chars-error")))}const ac=function(t){return{"element-disabled":t}};function tne(t,n){if(1&t&&(D(0,"mat-form-field",3)(1,"div",4)(2,"label",5),I(3),R(4,"translate"),C(),xe(5,"input",20),C()()),2&t){const e=z();w("ngClass",He(4,ac,e.disableDismiss)),c(3),se(H(4,2,"apps.vpn-socks-client-settings.password"))}}function nne(t,n){1&t&&(D(0,"div",21)(1,"mat-icon",22),I(2,"warning"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce(" ",H(4,2,"apps.vpn-socks-client-settings.password-history-warning")," "))}function ine(t,n){1&t&&xe(0,"app-loading-indicator",23),2&t&&w("showWhite",!1)}function rne(t,n){1&t&&(D(0,"div",24)(1,"mat-icon",22),I(2,"error"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce(" ",H(4,2,"apps.vpn-socks-client-settings.no-elements")," "))}function one(t,n){1&t&&(D(0,"div",31),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"apps.vpn-socks-client-settings.no-filter")," "))}function sne(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e[1]))}}function ane(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e[2])}}function lne(t,n){if(1&t&&(D(0,"div",31)(1,"span"),I(2),R(3,"translate"),C(),V(4,sne,3,3,"ng-container",16),V(5,ane,2,1,"ng-container",16),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e[0])," "),c(2),w("ngIf",e[1]),c(1),w("ngIf",e[2])}}function cne(t,n){1&t&&(D(0,"div",24)(1,"mat-icon",22),I(2,"error"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce(" ",H(4,2,"apps.vpn-socks-client-settings.no-elements-for-filters")," "))}const kP=function(t){return{highlighted:t}};function dne(t,n){if(1&t&&(Ue(0),D(1,"span",3),I(2),C(),We()),2&t){const e=n.$implicit,i=n.index;c(1),w("ngClass",He(2,kP,i%2!=0)),c(1),se(e)}}function une(t,n){if(1&t&&(Ue(0),D(1,"div",38),xe(2,"div"),C(),We()),2&t){const e=z(2).$implicit;c(2),di("background-image: url('assets/img/flags/"+e.country.toLocaleLowerCase()+".png');")}}function hne(t,n){if(1&t&&(Ue(0),D(1,"span",3),I(2),C(),We()),2&t){const e=n.$implicit,i=n.index;c(1),w("ngClass",He(2,kP,i%2!=0)),c(1),se(e)}}function fne(t,n){if(1&t&&(D(0,"div",31)(1,"span"),I(2),R(3,"translate"),C(),D(4,"span"),I(5,"\xa0 "),V(6,une,3,2,"ng-container",16),V(7,hne,3,4,"ng-container",35),C()()),2&t){const e=z().$implicit,i=z(2);c(2),se(H(3,3,"apps.vpn-socks-client-settings.location")),c(4),w("ngIf",e.country),c(1),w("ngForOf",i.getHighlightedTextParts(e.location,i.currentFilters.location))}}function pne(t,n){if(1&t){const e=et();D(0,"div",32)(1,"button",33),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).saveChanges(s.pk,null,!1,s.location))}),D(2,"div",34)(3,"div",31)(4,"span"),I(5),R(6,"translate"),C(),D(7,"span"),I(8,"\xa0"),V(9,dne,3,4,"ng-container",35),C()(),V(10,fne,8,5,"div",28),C()(),D(11,"button",36),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).copyPk(s.pk))}),R(12,"translate"),D(13,"mat-icon",37),I(14,"filter_none"),C()()()}if(2&t){const e=n.$implicit,i=z(2);c(1),w("ngClass",He(10,ac,i.disableDismiss)),c(4),se(H(6,6,"apps.vpn-socks-client-settings.key")),c(4),w("ngForOf",i.getHighlightedTextParts(e.pk,i.currentFilters.key)),c(1),w("ngIf",e.location),c(1),w("matTooltip",H(12,8,"apps.vpn-socks-client-settings.copy-pk-info")),c(2),w("inline",!0)}}function mne(t,n){if(1&t){const e=et();Ue(0),D(1,"button",25),ye("click",function(){return Pe(e),Oe(z().changeFilters())}),D(2,"div",26)(3,"div",27)(4,"mat-icon",22),I(5,"filter_list"),C()(),D(6,"div"),V(7,one,3,3,"div",28),V(8,lne,6,5,"div",29),D(9,"div",30),I(10),R(11,"translate"),C()()()(),V(12,cne,5,4,"div",15),V(13,pne,15,12,"div",18),We()}if(2&t){const e=z();c(4),w("inline",!0),c(3),w("ngIf",0===e.currentFiltersTexts.length),c(1),w("ngForOf",e.currentFiltersTexts),c(2),se(H(11,6,"apps.vpn-socks-client-settings.click-to-change")),c(2),w("ngIf",0===e.filteredProxiesFromDiscovery.length),c(1),w("ngForOf",e.proxiesFromDiscoveryToShow)}}const gne=function(t,n){return{currentElementsRange:t,totalElements:n}};function _ne(t,n){if(1&t){const e=et();D(0,"div",39)(1,"span"),I(2),R(3,"translate"),C(),D(4,"button",40),ye("click",function(){return Pe(e),Oe(z().goToPreviousPage())}),D(5,"mat-icon"),I(6,"chevron_left"),C()(),D(7,"button",40),ye("click",function(){return Pe(e),Oe(z().goToNextPage())}),D(8,"mat-icon"),I(9,"chevron_right"),C()()()}if(2&t){const e=z();c(2),se(kt(3,1,"apps.vpn-socks-client-settings.pagination-info",mn(4,gne,e.currentRange,e.filteredProxiesFromDiscovery.length)))}}const bne=function(t){return{number:t}};function vne(t,n){if(1&t&&(D(0,"div")(1,"div",24)(2,"mat-icon",22),I(3,"error"),C(),I(4),R(5,"translate"),C()()),2&t){const e=z();c(2),w("inline",!0),c(2),ce(" ",kt(5,2,"apps.vpn-socks-client-settings.no-history",He(5,bne,e.maxHistoryElements))," ")}}function yne(t,n){1&t&&Jo(0)}function Mne(t,n){1&t&&Jo(0)}function wne(t,n){if(1&t&&(Ue(0),D(1,"span"),I(2),C(),We()),2&t){const e=z(2).$implicit;c(2),ce(" ",e.note,"")}}function Cne(t,n){1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),ce(" ",H(3,1,"apps.vpn-socks-client-settings.note-entered-manually"),""))}function xne(t,n){if(1&t&&(Ue(0),D(1,"span"),I(2),C(),We()),2&t){const e=z(4).$implicit;c(2),ce(" (",e.location,")")}}function kne(t,n){if(1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),V(4,xne,3,1,"ng-container",16),We()),2&t){const e=z(3).$implicit;c(2),ce(" ",H(3,2,"apps.vpn-socks-client-settings.note-obtained"),""),c(2),w("ngIf",e.location)}}function Sne(t,n){if(1&t&&(Ue(0),V(1,Cne,4,3,"ng-container",16),V(2,kne,5,4,"ng-container",16),We()),2&t){const e=z(2).$implicit;c(1),w("ngIf",e.enteredManually),c(1),w("ngIf",!e.enteredManually)}}function Dne(t,n){if(1&t&&(D(0,"div",46)(1,"div",47)(2,"div",31)(3,"span"),I(4),R(5,"translate"),C(),D(6,"span"),I(7),C()(),D(8,"div",31)(9,"span"),I(10),R(11,"translate"),C(),V(12,wne,3,1,"ng-container",16),V(13,Sne,3,2,"ng-container",16),C()(),D(14,"div",48)(15,"div",49)(16,"mat-icon",22),I(17,"add"),C()()()()),2&t){const e=z().$implicit;c(4),se(H(5,6,"apps.vpn-socks-client-settings.key")),c(3),ce(" ",e.key,""),c(3),se(H(11,8,"apps.vpn-socks-client-settings.note")),c(2),w("ngIf",e.note),c(1),w("ngIf",!e.note),c(3),w("inline",!0)}}function Tne(t,n){if(1&t){const e=et();D(0,"div",32)(1,"button",41),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().useFromHistory(s))}),V(2,yne,1,0,"ng-container",42),C(),D(3,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().changeNote(s))}),R(4,"translate"),D(5,"mat-icon",37),I(6,"edit"),C()(),D(7,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().removeFromHistory(s.key))}),R(8,"translate"),D(9,"mat-icon",37),I(10,"close"),C()(),D(11,"button",44),ye("click",function(){const s=Pe(e).$implicit;return Oe(z().openHistoryOptions(s))}),V(12,Mne,1,0,"ng-container",42),C(),V(13,Dne,18,10,"ng-template",null,45,Es),C()}if(2&t){const e=ci(14),i=z();c(1),w("ngClass",He(12,ac,i.disableDismiss)),c(1),w("ngTemplateOutlet",e),c(1),w("matTooltip",H(4,8,"apps.vpn-socks-client-settings.change-note")),c(2),w("inline",!0),c(2),w("matTooltip",H(8,10,"apps.vpn-socks-client-settings.remove-entry")),c(2),w("inline",!0),c(2),w("ngClass",He(14,ac,i.disableDismiss)),c(1),w("ngTemplateOutlet",e)}}function Lne(t,n){1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),se(H(3,1,"apps.vpn-socks-client-settings.dns-error")))}function Ene(t,n){1&t&&(D(0,"div",56)(1,"mat-icon",22),I(2,"warning"),C(),I(3),R(4,"translate"),C()),2&t&&(c(1),w("inline",!0),c(2),ce(" ",H(4,2,"apps.vpn-socks-client-settings.settings-changed-alert")," "))}function Ine(t,n){if(1&t){const e=et();D(0,"mat-tab",1),R(1,"translate"),D(2,"form",2)(3,"mat-form-field",3)(4,"div",4)(5,"label",5),I(6),R(7,"translate"),C(),xe(8,"input",50),C(),D(9,"mat-error"),V(10,Lne,4,3,"ng-container",16),C()(),D(11,"div",51)(12,"mat-checkbox",52),I(13),R(14,"translate"),D(15,"mat-icon",53),R(16,"translate"),I(17,"help"),C()()(),V(18,Ene,5,4,"div",54),D(19,"app-button",12,55),ye("action",function(){return Pe(e),Oe(z().saveSettings())}),I(21),R(22,"translate"),C()()()}if(2&t){const e=z();w("label",H(1,12,"apps.vpn-socks-client-settings.settings-tab")),c(2),w("formGroup",e.settingsForm),c(1),w("ngClass",He(22,ac,e.disableDismiss)),c(3),se(H(7,14,"apps.vpn-socks-client-settings.dns")),c(4),w("ngIf",!e.settingsForm.get("dns").valid),c(2),w("ngClass",He(24,ac,e.disableDismiss)),c(1),ce(" ",H(14,16,"apps.vpn-socks-client-settings.killswitch-check")," "),c(2),w("inline",!0)("matTooltip",H(16,18,"apps.vpn-socks-client-settings.killswitch-info")),c(3),w("ngIf",e.settingsChanged),c(1),w("disabled",!e.settingsForm.valid||!e.settingsChanged||e.working),c(2),ce(" ",H(22,20,"apps.vpn-socks-client-settings.save-settings")," ")}}let Pne=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.largeModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l,d,_,E){this.data=e,this.dialogRef=i,this.appsService=o,this.formBuilder=s,this.snackbarService=a,this.dialog=l,this.proxyDiscoveryService=d,this.clipboardService=_,this.storageService=E,this.socksHistoryStorageKey="SkysocksClientHistory_",this.vpnHistoryStorageKey="VpnClientHistory_",this.maxHistoryElements=10,this.maxElementsPerPage=10,this.countriesFromDiscovery=new Set,this.loadingFromDiscovery=!0,this.numberOfPages=1,this.currentPage=1,this.currentRange="1 - 1",this.currentFilters=new mP,this.currentFiltersTexts=[],this.configuringVpn=!1,this.initialKillswitchSetting=!1,this.initialDnsSetting="",this.working=!1,-1!==e.name.toLocaleLowerCase().indexOf("vpn")&&(this.configuringVpn=!0)}ngOnInit(){this.migrateDataToHvStorage(),this.discoverySubscription=this.proxyDiscoveryService.getServices(!this.configuringVpn).subscribe(o=>{this.proxiesFromDiscovery=o,this.proxiesFromDiscovery.forEach(s=>{s.country&&this.countriesFromDiscovery.add(s.country.toUpperCase())}),this.filterProxies(),this.loadingFromDiscovery=!1});const e=this.storageService.getDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey);this.history=e?JSON.parse(e):[];let i="";if(this.data.args&&this.data.args.length>0)for(let o=0;othis.firstInput.nativeElement.focus())}ngOnDestroy(){this.discoverySubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}migrateDataToHvStorage(){const e=localStorage.getItem(this.socksHistoryStorageKey);e&&(this.storageService.setDataForHv(this.socksHistoryStorageKey,e),localStorage.removeItem(this.socksHistoryStorageKey));const i=localStorage.getItem(this.vpnHistoryStorageKey);i&&(this.storageService.setDataForHv(this.vpnHistoryStorageKey,i),localStorage.removeItem(this.vpnHistoryStorageKey))}get disableDismiss(){return this.button&&this.button.isLoading||this.settingsButton&&this.settingsButton.isLoading}validateIp(){if(this.settingsForm){const e=this.settingsForm.get("dns").value;return Jt.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}get settingsChanged(){return this.initialKillswitchSetting!==this.settingsForm.get("killswitch").value||this.initialDnsSetting!==this.settingsForm.get("dns").value}changeFilters(){const e=[];this.countriesFromDiscovery.forEach(o=>e.push(o)),ote.openDialog(this.dialog,{currentFilters:this.currentFilters,availableCountries:e}).afterClosed().subscribe(o=>{o&&(this.currentFilters=o,this.filterProxies())})}getHighlightedTextParts(e,i){if(!i)return[e];const o=e.toLowerCase(),s=i.toLowerCase();let a=!0,l=0;const d=[];for(;a;){const _=o.indexOf(s,l);-1===_?a=!1:(d.push(e.substring(l,_)),d.push(e.substring(_,_+i.length)),l=_+i.length)}return d.push(e.substring(l)),d}filterProxies(){this.filteredProxiesFromDiscovery=this.currentFilters.country||this.currentFilters.location||this.currentFilters.key?this.proxiesFromDiscovery.filter(e=>!(this.currentFilters.country&&(!e.country||!e.country.toUpperCase().includes(this.currentFilters.country.toUpperCase()))||this.currentFilters.location&&!e.location.toLowerCase().includes(this.currentFilters.location.toLowerCase())||this.currentFilters.key&&!e.address.toLowerCase().includes(this.currentFilters.key.toLowerCase()))):this.proxiesFromDiscovery,this.updateCurrentFilters(),this.updatePagination()}updateCurrentFilters(){if(this.currentFiltersTexts=[],this.currentFilters.country){const e=ma[this.currentFilters.country.toUpperCase()]?ma[this.currentFilters.country.toUpperCase()]:this.currentFilters.country.toUpperCase();this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.country","",e])}this.currentFilters.location&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.location","",this.currentFilters.location]),this.currentFilters.key&&this.currentFiltersTexts.push(["apps.vpn-socks-client-settings.filter-dialog.pub-key","",this.currentFilters.key])}updatePagination(){this.currentPage=1,this.numberOfPages=Math.ceil(this.filteredProxiesFromDiscovery.length/this.maxElementsPerPage),this.showCurrentPage()}goToNextPage(){this.currentPage>=this.numberOfPages||(this.currentPage+=1,this.showCurrentPage())}goToPreviousPage(){this.currentPage<=1||(this.currentPage-=1,this.showCurrentPage())}showCurrentPage(){this.proxiesFromDiscoveryToShow=this.filteredProxiesFromDiscovery.slice((this.currentPage-1)*this.maxElementsPerPage,this.currentPage*this.maxElementsPerPage),this.currentRange=(this.currentPage-1)*this.maxElementsPerPage+1+" - ",this.currentRange+=this.currentPage{1===o?this.useFromHistory(e):2===o?this.changeNote(e):3===o&&this.removeFromHistory(e.key)})}removeFromHistory(e){const o=Jt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.remove-from-history-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{this.history=this.history.filter(a=>a.key!==e);const s=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,s),o.close()})}changeNote(e){Zee.openDialog(this.dialog,e.note).afterClosed().subscribe(i=>{if(i){i=i.substr(1,i.length-1),this.history.forEach(s=>{s.key===e.key&&(s.note=i)});const o=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,o),i?this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"):this.snackbarService.showWarning("apps.vpn-socks-client-settings.default-note-warning")}})}useFromHistory(e){e.hasPassword?ate.openDialog(this.dialog).afterClosed().subscribe(i=>{i&&(i=i.substr(1,i.length-1),this.saveChanges(e.key,i,e.enteredManually,e.location,e.note))}):this.saveChanges(e.key,null,e.enteredManually,e.location,e.note)}saveChanges(e=null,i=null,o=null,s=null,a=null){if(!this.form.valid&&!e||this.working)return;o=!e||o,i=e?i:this.form.get("password").value,e=e||this.form.get("pk").value;const d=Jt.createConfirmationDialog(this.dialog,"apps.vpn-socks-client-settings.change-key-confirmation");d.componentInstance.operationAccepted.subscribe(()=>{d.close(),this.continueSavingChanges(e,i,o,s,a)})}saveSettings(){if(this.working)return;const e={killswitch:this.settingsForm.get("killswitch").value,dns:this.settingsForm.get("dns").value};this.settingsButton.showLoading(!1),this.button.showLoading(!1),this.working=!0,this.operationSubscription=this.appsService.changeAppSettings(Ct.getCurrentNodeKey(),this.data.name,e).subscribe(()=>{this.initialKillswitchSetting=e.killswitch,this.initialDnsSetting=e.dns,this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.settingsButton.reset(!1),this.button.reset(!1),Ct.refreshCurrentDisplayedData()},i=>{this.working=!1,this.settingsButton.showError(!1),this.button.reset(!1),i=en(i),this.snackbarService.showError(i)})}copyPk(e){this.clipboardService.copy(e)?this.snackbarService.showDone("apps.vpn-socks-client-settings.copied-pk-info"):this.snackbarService.showError("apps.vpn-socks-client-settings.copy-pk-error")}continueSavingChanges(e,i,o,s,a){if(this.working)return;this.button.showLoading(!1),this.settingsButton&&this.settingsButton.showLoading(!1),this.working=!0;const l={pk:e};this.configuringVpn&&(l.passcode=i||""),this.operationSubscription=this.appsService.changeAppSettings(Ct.getCurrentNodeKey(),this.data.name,l).subscribe(()=>this.onServerDataChangeSuccess(e,!!i,o,s,a),d=>this.onServerDataChangeError(d))}onServerDataChangeSuccess(e,i,o,s,a){this.history=this.history.filter(_=>_.key!==e);const l={key:e,enteredManually:o};if(i&&(l.hasPassword=i),s&&(l.location=s),a&&(l.note=a),this.history=[l].concat(this.history),this.history.length>this.maxHistoryElements){const _=this.history.length-this.maxHistoryElements;this.history.splice(this.history.length-_,_)}this.form.get("pk").setValue(e);const d=JSON.stringify(this.history);this.storageService.setDataForHv(this.configuringVpn?this.vpnHistoryStorageKey:this.socksHistoryStorageKey,d),Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.vpn-socks-client-settings.changes-made"),this.working=!1,this.button.reset(!1),this.settingsButton&&this.settingsButton.reset(!1)}onServerDataChangeError(e){this.working=!1,this.button.showError(!1),this.settingsButton&&this.settingsButton.reset(!1),e=en(e),this.snackbarService.showError(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(Bn),Y(ll),Y(xr),Y(Dn),Y(In),Y(lte),Y(ef),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-skysocks-client-settings"]],viewQuery:function(e,i){if(1&e&&(_t(Zte,5),_t(Xte,5),_t(Jte,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.settingsButton=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:34,vars:36,consts:[[3,"headline","dialog","disableDismiss"],[3,"label"],[3,"formGroup"],[3,"ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["id","pk","formControlName","pk","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],[3,"ngClass",4,"ngIf"],["class","password-history-warning",4,"ngIf"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["class","loading-indicator",3,"showWhite",4,"ngIf"],["class","info-text",4,"ngIf"],[4,"ngIf"],["class","paginator",4,"ngIf"],["class","d-flex",4,"ngFor","ngForOf"],[3,"label",4,"ngIf"],["id","password","type","password","formControlName","password","maxlength","100","matInput",""],[1,"password-history-warning"],[3,"inline"],[1,"loading-indicator",3,"showWhite"],[1,"info-text"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"click"],[1,"filter-button-content"],[1,"icon-area"],["class","item",4,"ngIf"],["class","item",4,"ngFor","ngForOf"],[1,"blue-part"],[1,"item"],[1,"d-flex"],["mat-button","",1,"list-button","grey-button-background","w-100",3,"ngClass","click"],[1,"button-content"],[4,"ngFor","ngForOf"],["mat-button","",1,"list-button","grey-button-background",3,"matTooltip","click"],[1,"option-button-icon",3,"inline"],[1,"flag-container"],[1,"paginator"],["mat-icon-button","",1,"hard-grey-button-background",3,"click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-none","d-md-inline",3,"ngClass","click"],[4,"ngTemplateOutlet"],["mat-button","",1,"list-button","grey-button-background","d-none","d-md-inline",3,"matTooltip","click"],["mat-button","",1,"list-button","grey-button-background","w-100","d-md-none",3,"ngClass","click"],["content",""],[1,"button-content","d-flex"],[1,"full-size-area"],[1,"options-container"],[1,"small-button","d-md-none"],["formControlName","dns","maxlength","15","matInput",""],[1,"main-theme","settings-option"],["color","primary","formControlName","killswitch",3,"ngClass"],[1,"help-icon",3,"inline","matTooltip"],["class","settings-changed-warning",4,"ngIf"],["settingsButton",""],[1,"settings-changed-warning"]],template:function(e,i){if(1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"mat-tab-group")(3,"mat-tab",1),R(4,"translate"),D(5,"form",2)(6,"mat-form-field",3)(7,"div",4)(8,"label",5),I(9),R(10,"translate"),C(),xe(11,"input",6,7),C(),D(13,"mat-error"),V(14,Qte,4,3,"ng-container",8),C(),V(15,ene,3,3,"ng-template",null,9,Es),C(),V(17,tne,6,6,"mat-form-field",10),V(18,nne,5,4,"div",11),D(19,"app-button",12,13),ye("action",function(){return i.saveChanges()}),I(21),R(22,"translate"),C()()(),D(23,"mat-tab",1),R(24,"translate"),V(25,ine,1,1,"app-loading-indicator",14),V(26,rne,5,4,"div",15),V(27,mne,14,8,"ng-container",16),V(28,_ne,10,7,"div",17),C(),D(29,"mat-tab",1),R(30,"translate"),V(31,vne,6,7,"div",16),V(32,Tne,15,16,"div",18),C(),V(33,Ine,23,26,"mat-tab",19),C()()),2&e){const o=ci(16);w("headline",H(1,22,"apps.vpn-socks-client-settings."+(i.configuringVpn?"vpn-title":"socks-title")))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(3),w("label",H(4,24,"apps.vpn-socks-client-settings.remote-visor-tab")),c(2),w("formGroup",i.form),c(1),w("ngClass",He(34,ac,i.disableDismiss)),c(3),se(H(10,26,"apps.vpn-socks-client-settings.public-key")),c(5),w("ngIf",!i.form.get("pk").hasError("pattern"))("ngIfElse",o),c(3),w("ngIf",i.configuringVpn),c(1),w("ngIf",i.form&&i.form.get("password").value),c(1),w("disabled",!i.form.valid||i.working),c(2),ce(" ",H(22,28,"apps.vpn-socks-client-settings.save")," "),c(2),w("label",H(24,30,"apps.vpn-socks-client-settings.discovery-tab")),c(2),w("ngIf",i.loadingFromDiscovery),c(1),w("ngIf",!i.loadingFromDiscovery&&0===i.proxiesFromDiscovery.length),c(1),w("ngIf",!i.loadingFromDiscovery&&i.proxiesFromDiscovery.length>0),c(1),w("ngIf",i.numberOfPages>1),c(1),w("label",H(30,32,"apps.vpn-socks-client-settings.history-tab")),c(2),w("ngIf",0===i.history.length),c(1),w("ngForOf",i.history),c(1),w("ngIf",i.configuringVpn)}},dependencies:[Nn,gi,Ft,hd,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,wP,Gte,Wr,el,Cn,vi,fa,Ui,ei,as,wt],styles:["mat-tab-header{border-bottom:solid 1px rgba(0,0,0,.12)}form[_ngcontent-%COMP%]{margin-top:15px}.info-text[_ngcontent-%COMP%]{margin-top:20px;margin-bottom:2px;text-align:center;color:#202226}.info-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px}.loading-indicator[_ngcontent-%COMP%]{height:100px}.password-history-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative;top:-5px}.list-button[_ngcontent-%COMP%]{border-bottom:solid 1px rgba(0,0,0,.12);height:auto;justify-content:left}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%]{padding:15px 0;white-space:normal;line-height:1.3;color:#202226;text-align:left;display:flex;font-size:.8rem;word-break:break-word}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .icon-area[_ngcontent-%COMP%]{font-size:20px;margin-right:15px;color:#999;opacity:.4;align-self:center}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{margin:4px 0}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .filter-button-content[_ngcontent-%COMP%] .blue-part[_ngcontent-%COMP%]{color:#215f9e}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%]{text-align:left;padding:15px 0;white-space:normal}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .full-size-area[_ngcontent-%COMP%]{flex-grow:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{line-height:1.3;margin:4px 0;font-size:.8rem;color:#202226;word-break:break-all}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:first-of-type{color:#999}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .item[_ngcontent-%COMP%] .highlighted[_ngcontent-%COMP%]{background-color:#ff0}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%]{flex-shrink:0;margin-left:5px;text-align:right;line-height:1}.list-button[_ngcontent-%COMP%] .button-content[_ngcontent-%COMP%] .options-container[_ngcontent-%COMP%] .small-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:14px;font-size:14px;margin-left:5px}.list-button[_ngcontent-%COMP%] .option-button-icon[_ngcontent-%COMP%]{font-size:14px;margin:0!important;overflow:visible!important}.paginator[_ngcontent-%COMP%]{float:right;margin-top:15px;display:flex;align-items:center}@media (max-width: 767px){.paginator[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.7rem}}.paginator[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{margin-left:5px;display:flex}.settings-option[_ngcontent-%COMP%]{margin-top:20px}.settings-option[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{margin-bottom:15px}.settings-changed-warning[_ngcontent-%COMP%]{font-size:.7rem;opacity:.7;position:relative}"]}),t})();const One=["button"],SP=function(t){return{"element-disabled":t}},DP=function(t){return{number:t}};function Ane(t,n){if(1&t){const e=et();Ue(0,7),D(1,"div",8)(2,"mat-form-field",9)(3,"div",10)(4,"label",11),I(5),R(6,"translate"),C(),xe(7,"input",12),C()(),D(8,"mat-form-field",9)(9,"div",10)(10,"label",13),I(11),R(12,"translate"),C(),xe(13,"input",14),C()(),D(14,"button",15),ye("click",function(){const s=Pe(e).index;return Oe(z().removeSetting(s))}),R(15,"translate"),D(16,"mat-icon",16),I(17,"close"),C()()(),We()}if(2&t){const e=n.index,i=z();c(1),w("formGroupName",e),c(1),w("ngClass",He(15,SP,i.disableDismiss)),c(3),se(kt(6,7,"apps.user-app-settings.name",He(17,DP,e+1))),c(3),w("ngClass",He(19,SP,i.disableDismiss)),c(3),se(kt(12,10,"apps.user-app-settings.value",He(21,DP,e+1))),c(3),w("matTooltip",H(15,13,"apps.user-app-settings.remove")),c(2),w("inline",!0)}}const Fne=function(t){return{name:t}};let Rne=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l){this.data=e,this.appsService=i,this.formBuilder=o,this.dialogRef=s,this.snackbarService=a,this.dialog=l,this.appName="",this.appName=e.name}ngOnInit(){if(this.form=this.formBuilder.group({settings:this.formBuilder.array([])}),this.data.args&&this.data.args.length>0)for(let e=0;e{let a=s.get("name").value,l=s.get("value").value;a=a&&a.trim(),l=l&&l.trim(),a?(o[a]=l,i+=1):e=!0}),e||0===i){const a=Jt.createConfirmationDialog(this.dialog,"apps.user-app-settings."+(0===i?"empty-confirmation":"invalid-confirmation"));a.componentInstance.operationAccepted.subscribe(()=>{a.close(),this.continueSavingChanges(o)})}else this.continueSavingChanges(o)}continueSavingChanges(e){this.button.showLoading();const i={custom_setting:e};this.operationSubscription=this.appsService.changeAppSettings(Ct.getCurrentNodeKey(),this.data.name,i).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(){Ct.refreshCurrentDisplayedData(),this.snackbarService.showDone("apps.user-app-settings.changes-made"),this.dialogRef.close()}onError(e){this.button.showError(),e=en(e),this.snackbarService.showError(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Li),Y(ll),Y(xr),Y(Bn),Y(Dn),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-user-app-settings"]],viewQuery:function(e,i){if(1&e&&_t(One,5),2&e){let o;rt(o=ot())&&(i.button=o.first)}},decls:15,vars:20,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup"],["formArrayName","settings",4,"ngFor","ngForOf"],[1,"add-setting",3,"click"],["color","primary",1,"float-right",3,"disabled","action"],["button",""],["formArrayName","settings"],[1,"settings-row",3,"formGroupName"],[3,"ngClass"],[1,"field-container"],["for","name",1,"field-label"],["id","name","formControlName","name","matInput",""],["for","value",1,"field-label"],["id","value","formControlName","value","matInput",""],["mat-button","",1,"transparent-button",3,"matTooltip","click"],[3,"inline"]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),I(3),R(4,"translate"),C(),D(5,"form",2),V(6,Ane,18,23,"ng-container",3),C(),D(7,"div")(8,"a",4),ye("click",function(){return i.addSetting()}),I(9),R(10,"translate"),C()(),D(11,"app-button",5,6),ye("action",function(){return i.saveChanges()}),I(13),R(14,"translate"),C()()),2&e&&(w("headline",kt(1,9,"apps.user-app-settings.title",He(18,Fne,i.appName)))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(3),se(H(4,12,"apps.user-app-settings.info")),c(2),w("formGroup",i.form),c(1),w("ngForOf",i.settingsControls),c(3),ce("+ ",H(10,14,"apps.user-app-settings.add"),""),c(2),w("disabled",!i.form.valid),c(2),ce(" ",H(14,16,"apps.user-app-settings.save")," "))},dependencies:[Nn,gi,zi,Bi,Vi,ji,ii,Ei,Jh,Qh,ar,kr,Wr,Cn,vi,Ui,ei,wt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}.settings-row[_ngcontent-%COMP%]{display:flex}mat-form-field[_ngcontent-%COMP%]{flex-grow:1;margin-right:10px}button[_ngcontent-%COMP%]{flex-shrink:0;width:50px;padding:0!important;align-self:center;border-radius:10px}button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin:0!important}.add-setting[_ngcontent-%COMP%]{color:#215f9e!important;cursor:pointer}"]}),t})();function Nne(t,n){1&t&&(D(0,"span",14),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.apps-list.title-official")))}function Yne(t,n){1&t&&(D(0,"span",14),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.apps-list.title-user")))}function Hne(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function Bne(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function Vne(t,n){if(1&t&&(D(0,"div",18)(1,"span"),I(2),R(3,"translate"),C(),V(4,Hne,3,3,"ng-container",19),V(5,Bne,2,1,"ng-container",19),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function jne(t,n){if(1&t){const e=et();D(0,"div",15),ye("click",function(){return Pe(e),Oe(z().dataFilterer.removeFilters())}),V(1,Vne,6,5,"div",16),D(2,"div",17),I(3),R(4,"translate"),C()()}if(2&t){const e=z();c(1),w("ngForOf",e.dataFilterer.currentFiltersTexts),c(2),se(H(4,2,"filters.press-to-remove"))}}function zne(t,n){if(1&t){const e=et();D(0,"mat-icon",20),ye("click",function(){return Pe(e),Oe(z().dataFilterer.changeFilters())}),R(1,"translate"),I(2,"filter_list"),C()}2&t&&w("inline",!0)("matTooltip",H(1,2,"filters.filter-action"))}function Une(t,n){1&t&&(D(0,"mat-icon",21),I(1,"more_horiz"),C()),2&t&&(z(),w("matMenuTriggerFor",ci(10)))}const TP=function(t,n){return["/nodes",t,"apps-list",n]};function Wne(t,n){if(1&t&&xe(0,"app-paginator",22),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",mn(4,TP,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function $ne(t,n){if(1&t&&(D(0,"mat-icon",37),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Gne(t,n){if(1&t&&(D(0,"mat-icon",37),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function qne(t,n){if(1&t&&(D(0,"mat-icon",37),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Kne(t,n){if(1&t&&(D(0,"mat-icon",37),I(1),C()),2&t){const e=z(2);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Zne(t,n){if(1&t&&(xe(0,"i",46),R(1,"translate")),2&t){const e=z().$implicit,i=z(2);eo(i.getStateClass(e)),w("matTooltip",H(1,3,i.getStateTooltip(e)))}}const LP=function(t){return{error:t}};function Xne(t,n){if(1&t&&(D(0,"mat-icon",47),R(1,"translate"),I(2,"warning"),C()),2&t){const e=z().$implicit;w("inline",!0)("matTooltip",kt(1,2,"apps.status-failed-tooltip",He(5,LP,e.detailedStatus?e.detailedStatus:"")))}}function Jne(t,n){if(1&t&&(D(0,"a",48)(1,"button",49),R(2,"translate"),D(3,"mat-icon",37),I(4,"open_in_browser"),C()()()),2&t){const e=z().$implicit;w("href",z(2).getLink(e),Vo),c(1),w("matTooltip",H(2,3,"apps.open")),c(2),w("inline",!0)}}function Qne(t,n){if(1&t){const e=et();D(0,"button",43),ye("click",function(){Pe(e);const o=z().$implicit;return Oe(z(2).config(o))}),R(1,"translate"),D(2,"mat-icon",37),I(3,"settings"),C()()}2&t&&(w("matTooltip",H(1,2,"apps.settings")),c(2),w("inline",!0))}function eie(t,n){if(1&t){const e=et();D(0,"tr")(1,"td",39)(2,"mat-checkbox",40),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(3,"td"),V(4,Zne,2,5,"i",41),V(5,Xne,3,7,"mat-icon",42),C(),D(6,"td"),I(7),C(),D(8,"td"),I(9),C(),D(10,"td")(11,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).changeAppAutostart(s))}),R(12,"translate"),D(13,"mat-icon",37),I(14),C()()(),D(15,"td",30),V(16,Jne,5,5,"a",44),V(17,Qne,4,4,"button",45),D(18,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).viewLogs(s))}),R(19,"translate"),D(20,"mat-icon",37),I(21,"list"),C()(),D(22,"button",43),ye("click",function(){const s=Pe(e).$implicit;return Oe(z(2).changeAppState(s))}),R(23,"translate"),D(24,"mat-icon",37),I(25),C()()()()}if(2&t){const e=n.$implicit,i=z(2);c(2),w("checked",i.selections.get(e.name)),c(2),w("ngIf",2!==e.status),c(1),w("ngIf",2===e.status),c(2),ce(" ",e.name," "),c(2),ce(" ",e.port," "),c(2),w("matTooltip",H(12,15,e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart")),c(2),w("inline",!0),c(1),se(e.autostart?"done":"close"),c(2),w("ngIf",i.getLink(e)),c(1),w("ngIf",!i.appsWithoutConfig.has(e.name)),c(1),w("matTooltip",H(19,17,"apps.view-logs")),c(2),w("inline",!0),c(2),w("matTooltip",H(23,19,"apps."+(0===e.status||2===e.status?"start-app":"stop-app"))),c(2),w("inline",!0),c(1),se(0===e.status||2===e.status?"play_arrow":"stop")}}function tie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.label")))}function nie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"tables.inverted-order")))}function iie(t,n){if(1&t&&(D(0,"a",55),ye("click",function(i){return i.stopPropagation()}),D(1,"button",56),R(2,"translate"),D(3,"mat-icon"),I(4,"open_in_browser"),C()()()),2&t){const e=z().$implicit;w("href",z(2).getLink(e),Vo),c(1),w("matTooltip",H(2,2,"apps.open"))}}function rie(t,n){if(1&t){const e=et();D(0,"tr")(1,"td")(2,"div",34)(3,"div",50)(4,"mat-checkbox",40),ye("change",function(){const s=Pe(e).$implicit;return Oe(z(2).changeSelection(s))}),C()(),D(5,"div",35)(6,"div",51)(7,"span",1),I(8),R(9,"translate"),C(),I(10),C(),D(11,"div",51)(12,"span",1),I(13),R(14,"translate"),C(),I(15),C(),D(16,"div",51)(17,"span",1),I(18),R(19,"translate"),C(),I(20,": "),D(21,"span"),I(22),R(23,"translate"),C()(),D(24,"div",51)(25,"span",1),I(26),R(27,"translate"),C(),I(28,": "),D(29,"span"),I(30),R(31,"translate"),C()()(),xe(32,"div",52),D(33,"div",36),V(34,iie,5,4,"a",53),D(35,"button",54),ye("click",function(o){const a=Pe(e).$implicit,l=z(2);return o.stopPropagation(),Oe(l.showOptionsDialog(a))}),R(36,"translate"),D(37,"mat-icon"),I(38),C()()()()()()}if(2&t){const e=n.$implicit,i=z(2);c(4),w("checked",i.selections.get(e.name)),c(4),se(H(9,16,"apps.apps-list.app-name")),c(2),ce(": ",e.name," "),c(3),se(H(14,18,"apps.apps-list.port")),c(2),ce(": ",e.port," "),c(3),se(H(19,20,"apps.apps-list.state")),c(3),eo(i.getSmallScreenStateClass(e)+" title"),c(1),ce(" ",kt(23,22,i.getSmallScreenStateTextVar(e),He(31,LP,e.detailedStatus?e.detailedStatus:""))," "),c(4),se(H(27,25,"apps.apps-list.auto-start")),c(3),eo((e.autostart?"green-clear-text":"red-clear-text")+" title"),c(1),ce(" ",H(31,27,e.autostart?"apps.apps-list.autostart-enabled":"apps.apps-list.autostart-disabled")," "),c(4),w("ngIf",i.getLink(e)),c(1),w("matTooltip",H(36,29,"common.options")),c(3),se("add")}}const oie=function(t,n){return["/nodes",t,"apps-list",n,"1"]};function sie(t,n){if(1&t&&xe(0,"app-view-all-link",57),2&t){const e=z(2);w("numberOfElements",e.filteredApps.length)("linkParts",mn(3,oie,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const aie=function(t,n){return{"small-node-list-margins":t,"full-node-list-margins":n}},lie=function(t){return{"d-lg-none d-xl-table":t}},cie=function(t){return{"d-lg-table d-xl-none":t}};function die(t,n){if(1&t){const e=et();D(0,"div",23)(1,"div",24)(2,"table",25)(3,"tr"),xe(4,"th"),D(5,"th",26),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.stateSortData))}),R(6,"translate"),xe(7,"span",27),V(8,$ne,2,2,"mat-icon",28),C(),D(9,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.nameSortData))}),I(10),R(11,"translate"),V(12,Gne,2,2,"mat-icon",28),C(),D(13,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.portSortData))}),I(14),R(15,"translate"),V(16,qne,2,2,"mat-icon",28),C(),D(17,"th",29),ye("click",function(){Pe(e);const o=z();return Oe(o.dataSorter.changeSortingOrder(o.autoStartSortData))}),I(18),R(19,"translate"),V(20,Kne,2,2,"mat-icon",28),C(),xe(21,"th",30),C(),V(22,eie,26,21,"tr",31),C(),D(23,"table",32)(24,"tr",33),ye("click",function(){return Pe(e),Oe(z().dataSorter.openSortingOrderModal())}),D(25,"td")(26,"div",34)(27,"div",35)(28,"div",1),I(29),R(30,"translate"),C(),D(31,"div"),I(32),R(33,"translate"),V(34,tie,3,3,"ng-container",19),V(35,nie,3,3,"ng-container",19),C()(),D(36,"div",36)(37,"mat-icon",37),I(38,"keyboard_arrow_down"),C()()()()(),V(39,rie,39,33,"tr",31),C(),V(40,sie,1,6,"app-view-all-link",38),C()()}if(2&t){const e=z();c(1),w("ngClass",mn(31,aie,e.showShortList_,!e.showShortList_)),c(1),w("ngClass",He(34,lie,e.showShortList_)),c(3),w("matTooltip",H(6,19,"apps.apps-list.state-tooltip")),c(3),w("ngIf",e.dataSorter.currentSortingColumn===e.stateSortData),c(2),ce(" ",H(11,21,"apps.apps-list.app-name")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.nameSortData),c(2),ce(" ",H(15,23,"apps.apps-list.port")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.portSortData),c(2),ce(" ",H(19,25,"apps.apps-list.auto-start")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.autoStartSortData),c(2),w("ngForOf",e.dataSource),c(1),w("ngClass",He(36,cie,e.showShortList_)),c(6),se(H(30,27,"tables.sorting-title")),c(3),ce("",H(33,29,e.dataSorter.currentSortingColumn.label)," "),c(2),w("ngIf",e.dataSorter.currentlySortingByLabel),c(1),w("ngIf",e.dataSorter.sortingInReverseOrder),c(2),w("inline",!0),c(2),w("ngForOf",e.dataSource),c(1),w("ngIf",e.showShortList_&&e.numberOfPages>1)}}function uie(t,n){1&t&&(D(0,"span",61),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.apps-list.empty-official")))}function hie(t,n){1&t&&(D(0,"span",61),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.apps-list.empty-user")))}function fie(t,n){1&t&&(D(0,"span",61),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"apps.apps-list.empty-with-filter")))}function pie(t,n){if(1&t&&(D(0,"div",23)(1,"div",58)(2,"mat-icon",59),I(3,"warning"),C(),V(4,uie,3,3,"span",60),V(5,hie,3,3,"span",60),V(6,fie,3,3,"span",60),C()()),2&t){const e=z();c(2),w("inline",!0),c(2),w("ngIf",0===e.allAppsForType.length&&e.showOfficialApps),c(1),w("ngIf",0===e.allAppsForType.length&&!e.showOfficialApps),c(1),w("ngIf",0!==e.allAppsForType.length)}}function mie(t,n){if(1&t&&xe(0,"app-paginator",22),2&t){const e=z();w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",mn(4,TP,e.nodePK,e.showOfficialApps))("queryParams",e.dataFilterer.currentUrlQueryParams)}}const gie=function(t){return{"paginator-icons-fixer":t}};let EP=(()=>{class t{set showShortList(e){this.showShortList_=e,this.dataSorter&&this.dataSorter.setData(this.filteredApps)}set apps(e){this.allApps=e||[],this.allApps&&(this.allAppsForType=[],this.allApps.forEach(i=>{(this.showOfficialApps&&this.officialAppsList.has(i.name)||!this.showOfficialApps&&!this.officialAppsList.has(i.name))&&this.allAppsForType.push(i)}),this.dataFilterer&&this.dataFilterer.setData(this.allAppsForType))}constructor(e,i,o,s,a,l,d){this.appsService=e,this.dialog=i,this.route=o,this.router=s,this.snackbarService=a,this.translateService=l,this.storageService=d,this.listIdForOfficialApps="op",this.listIdForUserApps="up",this.officialAppsList=new Set(["skychat","skysocks","skysocks-client","vpn-client","vpn-server"]),this.showOfficialApps=!0,this.stateSortData=new Vn(["status"],"apps.apps-list.state",Zt.NumberReversed),this.nameSortData=new Vn(["name"],"apps.apps-list.app-name",Zt.Text),this.portSortData=new Vn(["port"],"apps.apps-list.port",Zt.Number),this.autoStartSortData=new Vn(["autostart"],"apps.apps-list.auto-start",Zt.Boolean),this.selections=new Map,this.appsWithoutConfig=new Set(["skychat"]),this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.filterProperties=[{filterName:"apps.apps-list.filter-dialog.state",keyNameInElementsArray:"status",type:$n.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.state-options.any"},{value:"1",label:"apps.apps-list.filter-dialog.state-options.running"},{value:"0",label:"apps.apps-list.filter-dialog.state-options.stopped"}]},{filterName:"apps.apps-list.filter-dialog.name",keyNameInElementsArray:"name",type:$n.TextInput,maxlength:50},{filterName:"apps.apps-list.filter-dialog.port",keyNameInElementsArray:"port",type:$n.TextInput,maxlength:8},{filterName:"apps.apps-list.filter-dialog.autostart",keyNameInElementsArray:"autostart",type:$n.Select,printableLabelsForValues:[{value:"",label:"apps.apps-list.filter-dialog.autostart-options.any"},{value:"true",label:"apps.apps-list.filter-dialog.autostart-options.enabled"},{value:"false",label:"apps.apps-list.filter-dialog.autostart-options.disabled"}]}],this.refreshAgain=!1,this.operationSubscriptionsGroup=[],this.navigationsSubscription=this.route.paramMap.subscribe(_=>{if(_.has("showOfficialApps")&&(this.showOfficialApps=_.get("showOfficialApps").toUpperCase()==="true".toUpperCase()),_.has("page")){let E=Number.parseInt(_.get("page"),10);(isNaN(E)||E<1)&&(E=1),this.currentPageInUrl=E,this.recalculateElementsToShow()}})}ngOnInit(){const e=this.showOfficialApps?this.listIdForOfficialApps:this.listIdForUserApps;this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,[this.stateSortData,this.nameSortData,this.portSortData,this.autoStartSortData],1,e),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataSorter&&this.dataSorter.setData(this.filteredApps),this.dataFilterer=new Nd(this.dialog,this.route,this.router,this.filterProperties,e),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(o=>{this.filteredApps=o,this.dataSorter.setData(this.filteredApps)}),this.allAppsForType&&this.dataFilterer.setData(this.allAppsForType)}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.operationSubscriptionsGroup.forEach(e=>e.unsubscribe()),this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription.unsubscribe(),this.dataSorter.dispose(),this.dataFilterer.dispose()}getLink(e){if("skychat"===e.name.toLocaleLowerCase()&&this.nodeIp&&0!==e.status&&2!==e.status){let i="8001";if(e.args)for(let o=0;o{i&&(e=!0)}),e}changeAllSelections(e){this.selections.forEach((i,o)=>{this.selections.set(o,e)})}changeStateOfSelected(e){const i=[];if(this.selections.forEach((o,s)=>{o&&(e&&(0===this.appsMap.get(s).status||2===this.appsMap.get(s).status)||!e&&0!==this.appsMap.get(s).status&&2!==this.appsMap.get(s).status)&&i.push(s)}),e)this.changeAppsValRecursively(i,!1,e);else{const o=Jt.createConfirmationDialog(this.dialog,"apps.stop-selected-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.changeAppsValRecursively(i,!1,e,o)})}}changeAutostartOfSelected(e){const i=[];this.selections.forEach((s,a)=>{s&&(e&&!this.appsMap.get(a).autostart||!e&&this.appsMap.get(a).autostart)&&i.push(a)});const o=Jt.createConfirmationDialog(this.dialog,e?"apps.enable-autostart-selected-confirmation":"apps.disable-autostart-selected-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.showProcessing(),this.changeAppsValRecursively(i,!0,e,o)})}showOptionsDialog(e){const i=[{icon:"list",label:"apps.view-logs"},{icon:0===e.status||2===e.status?"play_arrow":"stop",label:"apps."+(0===e.status||2===e.status?"start-app":"stop-app")},{icon:e.autostart?"close":"done",label:e.autostart?"apps.apps-list.disable-autostart":"apps.apps-list.enable-autostart"}];this.appsWithoutConfig.has(e.name)||i.push({icon:"settings",label:"apps.settings"}),qr.openDialog(this.dialog,i,"common.options").afterClosed().subscribe(o=>{1===o?this.viewLogs(e):2===o?this.changeAppState(e):3===o?this.changeAppAutostart(e):4===o&&this.config(e)})}changeAppState(e){if(0===e.status||2===e.status)this.changeSingleAppVal(this.startChangingAppState(e.name,!0));else{const i=Jt.createConfirmationDialog(this.dialog,"apps.stop-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppState(e.name,!1),i)})}}changeAppAutostart(e){const i=Jt.createConfirmationDialog(this.dialog,e.autostart?"apps.disable-autostart-confirmation":"apps.enable-autostart-confirmation");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.showProcessing(),this.changeSingleAppVal(this.startChangingAppAutostart(e.name,!e.autostart),i)})}changeSingleAppVal(e,i=null){this.operationSubscriptionsGroup.push(e.subscribe(()=>{i&&i.close(),setTimeout(()=>{this.refreshAgain=!0,Ct.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")},o=>{o=en(o),setTimeout(()=>{this.refreshAgain=!0,Ct.refreshCurrentDisplayedData()},50),i?i.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg):this.snackbarService.showError(o)}))}viewLogs(e){0!==e.status&&2!==e.status?zee.openDialog(this.dialog,e):this.snackbarService.showError("apps.apps-list.unavailable-logs-error")}config(e){"skysocks"===e.name||"vpn-server"===e.name?qee.openDialog(this.dialog,e):"skysocks-client"===e.name||"vpn-client"===e.name?Pne.openDialog(this.dialog,e):"skychat"===e.name?this.snackbarService.showError("apps.error"):Rne.openDialog(this.dialog,e)}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredApps){const e=this.showShortList_?Vt.maxShortListElements:Vt.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredApps.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.appsToShow=this.filteredApps.slice(i,i+e),this.appsMap=new Map,this.appsToShow.forEach(a=>{this.appsMap.set(a.name,a),this.selections.has(a.name)||this.selections.set(a.name,!1)});const s=[];this.selections.forEach((a,l)=>{this.appsMap.has(l)||s.push(l)}),s.forEach(a=>{this.selections.delete(a)})}else this.appsToShow=null,this.selections=new Map;this.dataSource=this.appsToShow,this.refreshAgain&&(this.refreshAgain=!1,setTimeout(()=>Ct.refreshCurrentDisplayedData(),2e3))}startChangingAppState(e,i){return this.appsService.changeAppState(Ct.getCurrentNodeKey(),e,i).pipe(ke(o=>(null!=o.status&&this.dataSource.forEach(s=>{s.name===e&&(s.status=o.status,s.detailedStatus=o.detailed_status)}),o)))}startChangingAppAutostart(e,i){return this.appsService.changeAppAutostart(Ct.getCurrentNodeKey(),e,i)}changeAppsValRecursively(e,i,o,s=null){if(!e||0===e.length)return setTimeout(()=>Ct.refreshCurrentDisplayedData(),50),this.snackbarService.showWarning("apps.operation-unnecessary"),void(s&&s.close());let a;a=i?this.startChangingAppAutostart(e[e.length-1],o):this.startChangingAppState(e[e.length-1],o),this.operationSubscriptionsGroup.push(a.subscribe(()=>{e.pop(),0===e.length?(s&&s.close(),setTimeout(()=>{this.refreshAgain=!0,Ct.refreshCurrentDisplayedData()},50),this.snackbarService.showDone("apps.operation-completed")):this.changeAppsValRecursively(e,i,o,s)},l=>{l=en(l),setTimeout(()=>{this.refreshAgain=!0,Ct.refreshCurrentDisplayedData()},50),s?s.componentInstance.showDone("confirmation.error-header-text",l.translatableErrorMsg):this.snackbarService.showError(l)}))}}return t.\u0275fac=function(e){return new(e||t)(Y(ll),Y(In),Y(Mr),Y(hn),Y(Dn),Y(To),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-node-app-list"]],inputs:{nodePK:"nodePK",nodeIp:"nodeIp",showOfficialApps:"showOfficialApps",showShortList:"showShortList",apps:"apps"},decls:33,vars:35,consts:[[1,"generic-title-container","mt-4.5","d-flex",3,"ngClass"],[1,"title"],["class","uppercase",4,"ngIf"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"options"],[1,"options-container"],["class","small-icon",3,"inline","matTooltip","click",4,"ngIf"],[3,"matMenuTriggerFor",4,"ngIf"],[3,"overlapTrigger"],["selectionMenu","matMenu"],["mat-menu-item","",3,"click"],["mat-menu-item","",3,"disabled","click"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],["class","rounded-elevated-box mt-3",4,"ngIf"],[1,"uppercase"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],["class","item",4,"ngFor","ngForOf"],[1,"transparent-50"],[1,"item"],[4,"ngIf"],[1,"small-icon",3,"inline","matTooltip","click"],[3,"matMenuTriggerFor"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","overflow",3,"ngClass"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table",3,"ngClass"],[1,"sortable-column",3,"matTooltip","click"],[1,"dot-outline-white"],[3,"inline",4,"ngIf"],[1,"sortable-column",3,"click"],[1,"actions"],[4,"ngFor","ngForOf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-md-none",3,"ngClass"],[1,"selectable",3,"click"],[1,"list-item-container"],[1,"left-part"],[1,"right-part"],[3,"inline"],[3,"numberOfElements","linkParts","queryParams",4,"ngIf"],[1,"selection-col"],[3,"checked","change"],[3,"class","matTooltip",4,"ngIf"],["class","red-text",3,"inline","matTooltip",4,"ngIf"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip","click"],["target","_blank","rel","noreferrer nofollow noopener","class","skychat-link",3,"href",4,"ngIf"],["mat-button","","class","big-action-button transparent-button",3,"matTooltip","click",4,"ngIf"],[3,"matTooltip"],[1,"red-text",3,"inline","matTooltip"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href"],["mat-button","",1,"big-action-button","transparent-button",3,"matTooltip"],[1,"check-part"],[1,"list-row"],[1,"margin-part"],["target","_blank","rel","noreferrer nofollow noopener","class","skychat-link",3,"href","click",4,"ngIf"],["mat-icon-button","",1,"transparent-button",3,"matTooltip","click"],["target","_blank","rel","noreferrer nofollow noopener",1,"skychat-link",3,"href","click"],["mat-icon-button","",1,"transparent-button",3,"matTooltip"],[3,"numberOfElements","linkParts","queryParams"],[1,"box-internal-container"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1),V(2,Nne,3,3,"span",2),V(3,Yne,3,3,"span",2),V(4,jne,5,4,"div",3),C(),D(5,"div",4)(6,"div",5),V(7,zne,3,4,"mat-icon",6),V(8,Une,2,1,"mat-icon",7),D(9,"mat-menu",8,9)(11,"div",10),ye("click",function(){return i.changeAllSelections(!0)}),I(12),R(13,"translate"),C(),D(14,"div",10),ye("click",function(){return i.changeAllSelections(!1)}),I(15),R(16,"translate"),C(),D(17,"div",11),ye("click",function(){return i.changeStateOfSelected(!0)}),I(18),R(19,"translate"),C(),D(20,"div",11),ye("click",function(){return i.changeStateOfSelected(!1)}),I(21),R(22,"translate"),C(),D(23,"div",11),ye("click",function(){return i.changeAutostartOfSelected(!0)}),I(24),R(25,"translate"),C(),D(26,"div",11),ye("click",function(){return i.changeAutostartOfSelected(!1)}),I(27),R(28,"translate"),C()()(),V(29,Wne,1,7,"app-paginator",12),C()(),V(30,die,41,38,"div",13),V(31,pie,7,4,"div",13),V(32,mie,1,7,"app-paginator",12)),2&e&&(w("ngClass",He(33,gie,!i.showShortList_&&i.numberOfPages>1&&i.dataSource)),c(2),w("ngIf",i.showShortList_&&i.showOfficialApps),c(1),w("ngIf",i.showShortList_&&!i.showOfficialApps),c(1),w("ngIf",i.dataFilterer.currentFiltersTexts&&i.dataFilterer.currentFiltersTexts.length>0),c(3),w("ngIf",i.allAppsForType&&i.allAppsForType.length>0),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("overlapTrigger",!1),c(3),ce(" ",H(13,21,"selection.select-all")," "),c(3),ce(" ",H(16,23,"selection.unselect-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(19,25,"selection.start-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(22,27,"selection.stop-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(25,29,"selection.enable-autostart-all")," "),c(2),Ln("disabled",!i.hasSelectedElements()),c(1),ce(" ",H(28,31,"selection.disable-autostart-all")," "),c(2),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource),c(1),w("ngIf",i.dataSource&&i.dataSource.length>0),c(1),w("ngIf",!i.dataSource||0===i.dataSource.length),c(1),w("ngIf",!i.showShortList_&&i.numberOfPages>1&&i.dataSource))},dependencies:[Nn,gi,Ft,Wr,el,Cn,vi,Yd,pa,Hd,fa,Og,Bd,wt],styles:[".actions[_ngcontent-%COMP%]{text-align:right;width:150px}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}.skychat-link[_ngcontent-%COMP%]{color:#f8f9f9;text-decoration:none}.skychat-link[_ngcontent-%COMP%] .big-action-button[_ngcontent-%COMP%]{margin-right:5px}"]}),t})(),_ie=(()=>{class t extends er{ngOnInit(){return this.dataSubscription=Ct.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps,this.nodeIp=e.ip}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-apps"]],features:[nt],decls:2,vars:10,consts:[[3,"showOfficialApps","apps","showShortList","nodePK","nodeIp"]],template:function(e,i){1&e&&xe(0,"app-node-app-list",0)(1,"app-node-app-list",0),2&e&&(w("showOfficialApps",!0)("apps",i.apps)("showShortList",!0)("nodePK",i.nodePK)("nodeIp",i.nodeIp),c(1),w("showOfficialApps",!1)("apps",i.apps)("showShortList",!0)("nodePK",i.nodePK)("nodeIp",i.nodeIp))},dependencies:[EP]}),t})();function bie(t,n){1&t&&xe(0,"app-transport-list",1),2&t&&w("node",z().node)("showShortList",!1)}let vie=(()=>{class t extends er{ngOnInit(){return this.dataSubscription=Ct.currentNode.subscribe(e=>this.node=e),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-all-transports"]],features:[nt],decls:1,vars:1,consts:[[3,"node","showShortList",4,"ngIf"],[3,"node","showShortList"]],template:function(e,i){1&e&&V(0,bie,1,2,"app-transport-list",0),2&e&&w("ngIf",i.node)},dependencies:[Ft,hP]}),t})();function yie(t,n){if(1&t&&xe(0,"app-route-list",1),2&t){const e=z();w("routes",e.routes)("showShortList",!1)("nodePK",e.nodePK)}}let Mie=(()=>{class t extends er{ngOnInit(){return this.dataSubscription=Ct.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.routes=e.routes}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-all-routes"]],features:[nt],decls:1,vars:1,consts:[[3,"routes","showShortList","nodePK",4,"ngIf"],[3,"routes","showShortList","nodePK"]],template:function(e,i){1&e&&V(0,yie,1,3,"app-route-list",0),2&e&&w("ngIf",i.routes)},dependencies:[Ft,pP]}),t})();function wie(t,n){if(1&t&&xe(0,"app-node-app-list",1),2&t){const e=z();w("apps",e.apps)("showShortList",!1)("nodePK",e.nodePK)}}let Cie=(()=>{class t extends er{ngOnInit(){return this.dataSubscription=Ct.currentNode.subscribe(e=>{this.nodePK=e.localPk,this.apps=e.apps}),super.ngOnInit()}ngOnDestroy(){this.dataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-all-apps"]],features:[nt],decls:1,vars:1,consts:[[3,"apps","showShortList","nodePK",4,"ngIf"],[3,"apps","showShortList","nodePK"]],template:function(e,i){1&e&&V(0,wie,1,3,"app-node-app-list",0),2&e&&w("ngIf",i.apps)},dependencies:[Ft,EP]}),t})();const xie=["button"],kie=["firstInput"],Sie=function(t){return{"element-disabled":t}};let IP=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o,s,a){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=s,this.routeService=a}ngOnInit(){this.form=this.formBuilder.group({min:[this.data.minHops,Gt.compose([Gt.required,Gt.maxLength(3),Gt.pattern("^[0-9]+$")])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.routeService.setMinHops(this.data.nodePk,Number.parseInt(this.form.get("min").value,10)).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("router-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=en(e),this.snackbarService.showError(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr),Y(Dn),Y(fP))},t.\u0275cmp=Ze({type:t,selectors:[["app-router-config"]],viewQuery:function(e,i){if(1&e&&(_t(xie,5),_t(kie,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:21,vars:22,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","min","maxlength","3","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1),I(3),R(4,"translate"),C(),D(5,"form",2)(6,"mat-form-field")(7,"div",3)(8,"label",4),I(9),R(10,"translate"),C(),xe(11,"input",5,6),C(),D(13,"mat-error")(14,"span"),I(15),R(16,"translate"),C()()()(),D(17,"app-button",7,8),ye("action",function(){return i.save()}),I(19),R(20,"translate"),C()()),2&e&&(w("headline",H(1,10,"router-config.title"))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(3),se(H(4,12,"router-config.info")),c(2),w("formGroup",i.form)("ngClass",He(20,Sie,i.disableDismiss)),c(4),se(H(10,14,"router-config.min-hops")),c(6),se(H(16,16,"router-config.min-hops-error")),c(2),w("disabled",!i.form.valid),c(2),ce(" ",H(20,18,"router-config.save-config-button")," "))},dependencies:[Nn,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Ui,ei,wt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]}),t})();const Die=["button"],Tie=["firstInput"],Lie=function(t){return{"element-disabled":t}};let Eie=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=s,this.nodeService=a,this.dialog=l}ngOnInit(){this.form=this.formBuilder.group({address:[this.data.currentAddress,Gt.compose([Gt.minLength(20),Gt.maxLength(40)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}get disableDismiss(){return!!this.button&&this.button.isLoading}startSaving(){if(this.form.valid&&!this.operationSubscription)if(this.form.get("address").value)this.finishSaving();else{const i=Jt.createConfirmationDialog(this.dialog,"rewards-address-config.empty-warning");i.componentInstance.operationAccepted.subscribe(()=>{i.componentInstance.closeModal(),this.finishSaving()})}}finishSaving(){this.button.showLoading();const e=this.form.get("address").value;let i=this.nodeService.setRewardsAddress(this.data.nodePk,e);e||(i=this.nodeService.deleteRewardsAddress(this.data.nodePk)),this.operationSubscription=i.subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)})}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("rewards-address-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=en(e),this.snackbarService.showError(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr),Y(Dn),Y(ua),Y(In))},t.\u0275cmp=Ze({type:t,selectors:[["app-rewards-address-config"]],viewQuery:function(e,i){if(1&e&&(_t(Die,5),_t(Tie,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:25,vars:25,consts:[[3,"headline","dialog","disableDismiss"],[1,"info-container"],["href","https://github.com/skycoin/skywire/blob/master/mainnet_rules.md","target","_blank","rel","noreferrer nofollow noopener"],[3,"formGroup","ngClass"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","address","maxlength","40","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"div",1)(3,"span"),I(4),R(5,"translate"),C(),D(6,"a",2),I(7),R(8,"translate"),C()(),D(9,"form",3)(10,"mat-form-field")(11,"div",4)(12,"label",5),I(13),R(14,"translate"),C(),xe(15,"input",6,7),C(),D(17,"mat-error")(18,"span"),I(19),R(20,"translate"),C()()()(),D(21,"app-button",8,9),ye("action",function(){return i.startSaving()}),I(23),R(24,"translate"),C()()),2&e&&(w("headline",H(1,11,"rewards-address-config.title"))("dialog",i.dialogRef)("disableDismiss",i.disableDismiss),c(4),ce("",H(5,13,"rewards-address-config.info")," "),c(3),ce(" ",H(8,15,"rewards-address-config.more-info-link")," "),c(2),w("formGroup",i.form)("ngClass",He(23,Lie,i.disableDismiss)),c(4),se(H(14,17,"rewards-address-config.address")),c(6),se(H(20,19,"rewards-address-config.address-error")),c(2),w("disabled",!i.form.valid),c(2),ce(" ",H(24,21,"rewards-address-config.save-config-button")," "))},dependencies:[Nn,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Ui,ei,wt],styles:[".info-container[_ngcontent-%COMP%]{margin-bottom:10px}"]}),t})(),Iie=(()=>{class t{constructor(e){this.clipboardService=e,this.copyEvent=new ht,this.errorEvent=new ht,this.value=""}ngOnDestroy(){this.copyEvent.complete(),this.errorEvent.complete()}copyToClipboard(){this.clipboardService.copy(this.value)?this.copyEvent.emit(this.value):this.errorEvent.emit()}}return t.\u0275fac=function(e){return new(e||t)(Y(ef))},t.\u0275dir=Ke({type:t,selectors:[["","clipboard",""]],hostBindings:function(e,i){1&e&&ye("click",function(){return i.copyToClipboard()})},inputs:{value:["clipboard","value"]},outputs:{copyEvent:"copyEvent",errorEvent:"errorEvent"}}),t})();function Pie(t,n){if(1&t&&(Ue(0),xe(1,"app-truncated-text",3),D(2,"mat-icon",4),I(3,"filter_none"),C(),We()),2&t){const e=z();c(1),w("short",e.short)("showTooltip",!1)("shortTextLength",e.shortTextLength)("text",e.text),c(1),w("inline",!0)}}function Oie(t,n){if(1&t&&(D(0,"div",5)(1,"div",6),I(2),C(),D(3,"mat-icon",4),I(4,"filter_none"),C()()),2&t){const e=z();c(2),se(e.text),c(1),w("inline",!0)}}const Aie=function(t){return{text:t}},Fie=function(){return{"tooltip-word-break":!0}};let W1=(()=>{class t{constructor(e){this.snackbarService=e,this.short=!1,this.shortSimple=!1,this.shortTextLength=5}onCopyToClipboardClicked(){this.snackbarService.showDone("copy.copied")}}return t.\u0275fac=function(e){return new(e||t)(Y(Dn))},t.\u0275cmp=Ze({type:t,selectors:[["app-copy-to-clipboard-text"]],inputs:{text:"text",short:"short",shortSimple:"shortSimple",shortTextLength:"shortTextLength"},decls:4,vars:11,consts:[[1,"wrapper","highlight-internal-icon",3,"clipboard","matTooltip","matTooltipClass","copyEvent"],[4,"ngIf"],["class","d-flex",4,"ngIf"],[1,"text-margin",3,"short","showTooltip","shortTextLength","text"],[3,"inline"],[1,"d-flex"],[1,"single-line","text-margin"]],template:function(e,i){1&e&&(D(0,"div",0),ye("copyEvent",function(){return i.onCopyToClipboardClicked()}),R(1,"translate"),V(2,Pie,4,5,"ng-container",1),V(3,Oie,5,2,"div",2),C()),2&e&&(w("clipboard",i.text)("matTooltip",kt(1,5,i.short||i.shortSimple?"copy.tooltip-with-text":"copy.tooltip",He(8,Aie,i.text)))("matTooltipClass",qn(10,Fie)),c(2),w("ngIf",!i.shortSimple),c(1),w("ngIf",i.shortSimple))},dependencies:[Ft,Cn,vi,Iie,BI,wt],styles:['.cursor-pointer[_ngcontent-%COMP%], .highlight-internal-icon[_ngcontent-%COMP%]{cursor:pointer}.reactivate-mouse[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]{touch-action:initial!important;-webkit-user-select:initial!important;user-select:initial!important;-webkit-user-drag:auto!important;-webkit-tap-highlight-color:initial!important}.mouse-disabled[_ngcontent-%COMP%]{pointer-events:none}.clearfix[_ngcontent-%COMP%]:after{content:"";display:block;clear:both}.mt-4\\.5[_ngcontent-%COMP%]{margin-top:2rem!important}.highlight-internal-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{opacity:.5}.highlight-internal-icon[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{opacity:.8}.transparent-button[_ngcontent-%COMP%]{opacity:.5}.transparent-button[_ngcontent-%COMP%]:hover{opacity:1}.subtle-transparent-button[_ngcontent-%COMP%]{opacity:.85}.subtle-transparent-button[_ngcontent-%COMP%]:hover{opacity:1}@media (max-width: 767px),(min-width: 992px) and (max-width: 1299px){.small-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}@media (max-width: 767px){.full-node-list-margins[_ngcontent-%COMP%]{padding:0!important}}.wrapper[_ngcontent-%COMP%]{display:inline}.wrapper[_ngcontent-%COMP%] .text-margin[_ngcontent-%COMP%]{margin-right:5px}.wrapper[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:.6rem;-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline!important}']}),t})();var Rie=N(6149);const Nie=["chart"];let $1=(()=>{class t{constructor(e){this.height=100,this.animated=!1,this.min=void 0,this.max=void 0,this.differ=e.find([]).create(null)}ngAfterViewInit(){this.chart=new Rie.Chart(this.chartElement.nativeElement,{type:"line",data:{labels:Array.from(Array(this.data.length).keys()),datasets:[{data:this.data,backgroundColor:["rgba(10, 15, 22, 0.4)"],borderColor:["rgba(10, 15, 22, 0.4)"],borderWidth:1}]},options:{maintainAspectRatio:!1,events:[],legend:{display:!1},tooltips:{enabled:!1},scales:{yAxes:[{display:!1,ticks:{suggestedMin:0}}],xAxes:[{display:!1}]},elements:{point:{radius:0}},layout:{padding:{left:0,right:0,top:t.topInternalMargin,bottom:0}}}}),void 0!==this.min&&void 0!==this.max&&(this.updateMinAndMax(),this.chart.update(0))}ngDoCheck(){this.differ.diff(this.data)&&this.chart&&(void 0!==this.min&&void 0!==this.max&&this.updateMinAndMax(),this.animated?this.chart.update():this.chart.update(0))}ngOnDestroy(){this.chart&&this.chart.destroy()}updateMinAndMax(){this.chart.options.scales={yAxes:[{display:!1,ticks:{min:this.min,max:this.max}}],xAxes:[{display:!1}]}}}return t.topInternalMargin=5,t.\u0275fac=function(e){return new(e||t)(Y(Ku))},t.\u0275cmp=Ze({type:t,selectors:[["app-line-chart"]],viewQuery:function(e,i){if(1&e&&_t(Nie,5),2&e){let o;rt(o=ot())&&(i.chartElement=o.first)}},inputs:{data:"data",height:"height",animated:"animated",min:"min",max:"max"},decls:3,vars:2,consts:[[1,"chart-container"],["chart",""]],template:function(e,i){1&e&&(D(0,"div",0),xe(1,"canvas",null,1),C()),2&e&&di("height: "+i.height+"px;")},styles:[".chart-container[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden;border-radius:10px}"]}),t})();const PP=function(){return{showValue:!0}},OP=function(){return{showUnit:!0}};function Yie(t,n){if(1&t&&(D(0,"div",1),xe(1,"app-line-chart",2),D(2,"div",3)(3,"span",4),I(4),R(5,"translate"),C(),D(6,"span",5)(7,"span",6),I(8),R(9,"autoScale"),C(),D(10,"span",7),I(11),R(12,"autoScale"),C()()()()),2&t){const e=z();c(1),w("data",e.trafficData.sentHistory),c(3),se(H(5,4,"common.uploaded")),c(4),se(kt(9,6,e.trafficData.totalSent,qn(12,PP))),c(3),se(kt(12,9,e.trafficData.totalSent,qn(13,OP)))}}function Hie(t,n){if(1&t&&(D(0,"div",1),xe(1,"app-line-chart",2),D(2,"div",3)(3,"span",4),I(4),R(5,"translate"),C(),D(6,"span",5)(7,"span",6),I(8),R(9,"autoScale"),C(),D(10,"span",7),I(11),R(12,"autoScale"),C()()()()),2&t){const e=z();c(1),w("data",e.trafficData.receivedHistory),c(3),se(H(5,4,"common.downloaded")),c(4),se(kt(9,6,e.trafficData.totalReceived,qn(12,PP))),c(3),se(kt(12,9,e.trafficData.totalReceived,qn(13,OP)))}}let Bie=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-charts"]],inputs:{trafficData:"trafficData"},decls:2,vars:2,consts:[["class","small-rounded-elevated-box chart",4,"ngIf"],[1,"small-rounded-elevated-box","chart"],[3,"data"],[1,"info"],[1,"text"],[1,"rate"],[1,"value"],[1,"unit"]],template:function(e,i){1&e&&(V(0,Yie,13,14,"div",0),V(1,Hie,13,14,"div",0)),2&e&&(w("ngIf",i.trafficData),c(1),w("ngIf",i.trafficData))},dependencies:[Ft,$1,wt,sf],styles:[".chart[_ngcontent-%COMP%]{position:relative;margin-bottom:20px}.chart[_ngcontent-%COMP%]:last-child{margin-bottom:10px}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;display:flex;justify-content:space-between;align-items:flex-end;padding:10px;width:100%}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#f8f9f9}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.text[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700}.chart[_ngcontent-%COMP%] .info[_ngcontent-%COMP%] span.rate[_ngcontent-%COMP%] .unit[_ngcontent-%COMP%]{font-size:.8rem;padding-left:5px}"]}),t})();function Vie(t,n){if(1&t&&(D(0,"span",4)(1,"span",5),I(2),R(3,"translate"),C(),xe(4,"app-copy-to-clipboard-text",9),C()),2&t){const e=z(2);c(2),ce("",H(3,2,"node.details.node-info.public-ip")," "),c(2),Ln("text",e.node.publicIp)}}function jie(t,n){if(1&t&&(D(0,"span",4)(1,"span",5),I(2),R(3,"translate"),C(),xe(4,"app-copy-to-clipboard-text",9),C()),2&t){const e=z(2);c(2),ce("",H(3,2,"node.details.node-info.ip")," "),c(2),Ln("text",e.node.ip)}}function zie(t,n){if(1&t&&(Ue(0),xe(1,"app-copy-to-clipboard-text",9),We()),2&t){const e=z(2);c(1),Ln("text",e.node.dmsgServerPk)}}function Uie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"node.details.node-info.no-dmsg-server")," "))}function Wie(t,n){if(1&t&&(D(0,"span",4)(1,"span",5),I(2),R(3,"translate"),C(),I(4),C()),2&t){const e=z(2);c(2),ce("",H(3,2,"node.details.node-info.skybian-version")," "),c(2),ce(" ",e.node.skybianBuildVersion," ")}}const G1=function(t){return{time:t}};function $ie(t,n){if(1&t&&(D(0,"mat-icon",16),R(1,"translate"),I(2," info "),C()),2&t){const e=z(2);w("inline",!0)("matTooltip",kt(1,2,"node.details.node-info.time.minutes",He(5,G1,e.timeOnline.totalMinutes)))}}function Gie(t,n){if(1&t&&(Ue(0),xe(1,"app-copy-to-clipboard-text",18),D(2,"a",19)(3,"mat-icon",20),R(4,"translate"),I(5," open_in_browser "),C()(),We()),2&t){const e=z(2);c(1),Ln("text",e.node.rewardsAddress),c(1),w("href","https://explorer.skycoin.com/app/address/"+e.node.rewardsAddress,Vo),c(1),w("inline",!0)("matTooltip",H(4,4,"node.details.rewards-info.open-in-explorer"))}}function qie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),D(3,"mat-icon",16),R(4,"translate"),I(5,"info"),C(),We()),2&t&&(c(1),ce(" ",H(2,3,"node.details.rewards-info.not-registered")," "),c(2),w("inline",!0)("matTooltip",H(4,5,"node.details.rewards-info.not-registered-info")))}function Kie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"node.details.rewards-info.change-address-button")," "))}function Zie(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"node.details.rewards-info.set-address-button")," "))}function Xie(t,n){if(1&t){const e=et();D(0,"div",1)(1,"div",2)(2,"span",3),I(3),R(4,"translate"),C(),D(5,"span",4)(6,"span",5),I(7),R(8,"translate"),C(),D(9,"span",6),ye("click",function(){return Pe(e),Oe(z().showEditLabelDialog())}),D(10,"span",7),I(11),C(),D(12,"mat-icon",8),I(13,"edit"),C()()(),D(14,"span",4)(15,"span",5),I(16),R(17,"translate"),C(),xe(18,"app-copy-to-clipboard-text",9),C(),D(19,"span",4)(20,"span",5),I(21),R(22,"translate"),C(),I(23),R(24,"translate"),C(),V(25,Vie,5,4,"span",10),V(26,jie,5,4,"span",10),D(27,"span",4)(28,"span",5),I(29),R(30,"translate"),C(),V(31,zie,2,1,"ng-container",11),V(32,Uie,3,3,"ng-container",11),C(),D(33,"span",4)(34,"span",5),I(35),R(36,"translate"),C(),I(37),R(38,"translate"),C(),D(39,"span",4)(40,"span",5),I(41),R(42,"translate"),C(),I(43),R(44,"translate"),C(),D(45,"span",4)(46,"span",5),I(47),R(48,"translate"),C(),I(49),R(50,"translate"),C(),V(51,Wie,5,4,"span",10),D(52,"span",4)(53,"span",5),I(54),R(55,"translate"),C(),I(56),R(57,"translate"),V(58,$ie,3,7,"mat-icon",12),C()(),xe(59,"div",13),D(60,"div",2)(61,"span",3),I(62),R(63,"translate"),C(),D(64,"span",4)(65,"span",5),I(66),R(67,"translate"),C(),V(68,Gie,6,6,"ng-container",11),V(69,qie,6,7,"ng-container",11),C(),D(70,"div",14)(71,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeRewardsAddressConfig())}),V(72,Kie,3,3,"ng-container",11),V(73,Zie,3,3,"ng-container",11),C()()(),xe(74,"div",13),D(75,"div",2)(76,"span",3),I(77),R(78,"translate"),C(),D(79,"span",4)(80,"span",5),I(81),R(82,"translate"),C(),I(83),R(84,"translate"),D(85,"mat-icon",16),R(86,"translate"),I(87,"info"),C()(),D(88,"div",14)(89,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeTransportsConfig())}),I(90),R(91,"translate"),C()()(),xe(92,"div",13),D(93,"div",2)(94,"span",3),I(95),R(96,"translate"),C(),D(97,"span",4)(98,"span",5),I(99),R(100,"translate"),C(),I(101),C(),D(102,"div",14)(103,"app-button",15),ye("action",function(){return Pe(e),Oe(z().changeRouterConfig())}),I(104),R(105,"translate"),C()()(),xe(106,"div",13),D(107,"div",2)(108,"span",3),I(109),R(110,"translate"),C(),D(111,"span",4)(112,"span",5),I(113),R(114,"translate"),C(),xe(115,"i"),I(116),R(117,"translate"),C()(),xe(118,"div",13),D(119,"div",2)(120,"span",3),I(121),R(122,"translate"),C(),xe(123,"app-charts",17),C()()}if(2&t){const e=z();c(3),se(H(4,49,"node.details.node-info.title")),c(4),ce("",H(8,51,"node.details.node-info.label")," "),c(4),se(e.node.label),c(1),w("inline",!0),c(4),ce("",H(17,53,"node.details.node-info.public-key")," "),c(2),Ln("text",e.node.localPk),c(3),ce("",H(22,55,"node.details.node-info.symmetic-nat")," "),c(2),ce(" ",H(24,57,e.node.isSymmeticNat?"common.yes":"common.no")," "),c(2),w("ngIf",!e.node.isSymmeticNat),c(1),w("ngIf",e.node.ip),c(3),ce("",H(30,59,"node.details.node-info.dmsg-server")," "),c(2),w("ngIf",e.hasDmsgServer()),c(1),w("ngIf",!e.hasDmsgServer()),c(3),ce("",H(36,61,"node.details.node-info.ping")," "),c(2),ce(" ",kt(38,63,"common.time-in-ms",He(107,G1,e.node.roundTripPing))," "),c(4),ce("",H(42,66,"node.details.node-info.node-version")," "),c(2),ce(" ",e.node.version?e.node.version:H(44,68,"common.unknown")," "),c(4),ce("",H(48,70,"node.details.node-info.build-type")," "),c(2),ce(" ",e.node.buildTag?e.node.buildTag:H(50,72,"node.details.node-info.unknown-build")," "),c(2),w("ngIf",e.node.skybianBuildVersion),c(3),ce("",H(55,74,"node.details.node-info.time.title")," "),c(2),ce(" ",kt(57,76,"node.details.node-info.time."+e.timeOnline.translationVarName,He(109,G1,e.timeOnline.elapsedTime))," "),c(2),w("ngIf",e.timeOnline.totalMinutes>60),c(4),se(H(63,79,"node.details.rewards-info.title")),c(4),ce("",H(67,81,"node.details.rewards-info.rewards-address")," "),c(2),w("ngIf",e.node.rewardsAddress),c(1),w("ngIf",!e.node.rewardsAddress),c(2),w("forDarkBackground",!0),c(1),w("ngIf",e.node.rewardsAddress),c(1),w("ngIf",!e.node.rewardsAddress),c(4),se(H(78,83,"node.details.transports-info.title")),c(4),ce("",H(82,85,"node.details.transports-info.autoconnect")," "),c(2),ce(" ",H(84,87,"node.details.transports-info."+(e.node.autoconnectTransports?"enabled":"disabled"))," "),c(2),w("inline",!0)("matTooltip",H(86,89,"node.details.transports-info.autoconnect-info")),c(4),w("forDarkBackground",!0),c(1),ce(" ",H(91,91,"node.details.transports-info."+(e.node.autoconnectTransports?"disable":"enable")+"-button")," "),c(5),se(H(96,93,"node.details.router-info.title")),c(4),ce("",H(100,95,"node.details.router-info.min-hops")," "),c(2),ce(" ",e.node.minHops," "),c(2),w("forDarkBackground",!0),c(1),ce(" ",H(105,97,"node.details.router-info.change-config-button")," "),c(5),ce("",H(110,99,"node.details.node-health.title")," "),c(4),se(H(114,101,"node.details.node-health.uptime-tracker")),c(2),eo(e.nodeHealthClass),c(1),ce(" ",H(117,103,e.nodeHealthText)," "),c(5),se(H(122,105,"node.details.node-traffic-data")),c(2),w("trafficData",e.trafficData)}}let AP=(()=>{class t{set nodeInfo(e){this.node=e,this.timeOnline=Pg.getElapsedTime(e.secondsOnline),e.health&&e.health.servicesHealth===ro.Healthy?(this.nodeHealthText="node.statuses.online",this.nodeHealthClass="dot-green"):e.health&&e.health.servicesHealth===ro.Unhealthy?(this.nodeHealthText="node.statuses.partially-online",this.nodeHealthClass="dot-yellow blinking"):e.health&&e.health.servicesHealth===ro.Connecting?(this.nodeHealthText="node.statuses.connecting",this.nodeHealthClass="dot-outline-gray"):(this.nodeHealthText="node.statuses.unknown",this.nodeHealthClass="dot-outline-gray")}constructor(e,i,o,s){this.dialog=e,this.storageService=i,this.transportService=o,this.snackbarService=s}ngOnDestroy(){this.autoconnectSubscription&&this.autoconnectSubscription.unsubscribe()}showEditLabelDialog(){let e=this.storageService.getLabelInfo(this.node.localPk);e||(e={id:this.node.localPk,label:"",identifiedElementType:Xi.Node}),N1.openDialog(this.dialog,e).afterClosed().subscribe(i=>{i&&Ct.refreshCurrentDisplayedData()})}changeRewardsAddressConfig(){Eie.openDialog(this.dialog,{nodePk:this.node.localPk,currentAddress:this.node.rewardsAddress}).afterClosed().subscribe(i=>{i&&Ct.refreshCurrentDisplayedData()})}changeRouterConfig(){IP.openDialog(this.dialog,{nodePk:this.node.localPk,minHops:this.node.minHops}).afterClosed().subscribe(i=>{i&&Ct.refreshCurrentDisplayedData()})}hasDmsgServer(){return!(!this.node||0===this.node.dmsgServerPk.replace(/0/g,"").length)}changeTransportsConfig(){const e=Jt.createConfirmationDialog(this.dialog,this.node.autoconnectTransports?"node.details.transports-info.disable-confirmation":"node.details.transports-info.enable-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.showProcessing();const i=this.transportService.changeAutoconnectSetting(this.node.localPk,!this.node.autoconnectTransports);this.autoconnectSubscription=i.subscribe(()=>{e.close(),this.snackbarService.showDone(this.node.autoconnectTransports?"node.details.transports-info.disable-done":"node.details.transports-info.enable-done"),Ct.refreshCurrentDisplayedData()},o=>{o=en(o),e.componentInstance.showDone("confirmation.error-header-text",o.translatableErrorMsg)})})}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(Ji),Y(V1),Y(Dn))},t.\u0275cmp=Ze({type:t,selectors:[["app-node-info-content"]],inputs:{nodeInfo:"nodeInfo",trafficData:"trafficData"},decls:1,vars:1,consts:[["class","font-smaller d-flex flex-column mt-4.5",4,"ngIf"],[1,"font-smaller","d-flex","flex-column","mt-4.5"],[1,"d-flex","flex-column"],[1,"section-title"],[1,"info-line"],[1,"title"],[1,"highlight-internal-icon",3,"click"],[1,"text-with-small-right-margin"],[1,"edit-icon",3,"inline"],[3,"text"],["class","info-line",4,"ngIf"],[4,"ngIf"],[3,"inline","matTooltip",4,"ngIf"],[1,"separator"],[1,"config-button-container"],["color","primary",3,"forDarkBackground","action"],[3,"inline","matTooltip"],[1,"d-flex","flex-column","justify-content-end","mt-3",3,"trafficData"],[1,"text-with-right-margin",3,"text"],["target","_blank","rel","noreferrer nofollow noopener",3,"href"],[1,"link-icon","transparent-button",3,"inline","matTooltip"]],template:function(e,i){1&e&&V(0,Xie,124,111,"div",0),2&e&&w("ngIf",i.node)},dependencies:[Ft,Cn,vi,W1,Ui,Bie,wt],styles:[".section-title[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;text-transform:uppercase}.info-line[_ngcontent-%COMP%]{word-break:break-word;margin-top:7px}.info-line[_ngcontent-%COMP%] .text-with-right-margin[_ngcontent-%COMP%]{margin-right:5px}.info-line[_ngcontent-%COMP%] .text-with-small-right-margin[_ngcontent-%COMP%]{margin-right:3px}.info-line[_ngcontent-%COMP%] .link-icon[_ngcontent-%COMP%]{font-size:20px;line-height:1;color:#fff!important;cursor:pointer}.info-line[_ngcontent-%COMP%] .edit-icon[_ngcontent-%COMP%]{display:inline!important}.info-line[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:3px;-webkit-user-select:none;user-select:none}.info-line[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-left:7px}.info-line[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{opacity:.75}.separator[_ngcontent-%COMP%]{width:100%;height:0px;margin:1rem 0;border-top:1px solid rgba(255,255,255,.15)}.config-button-container[_ngcontent-%COMP%]{margin-top:10px;margin-left:-4px}"]}),t})(),Jie=(()=>{class t extends er{ngOnInit(){return this.nodeSubscription=Ct.currentNode.subscribe(e=>{this.node=e}),this.trafficDataSubscription=Ct.currentTrafficData.subscribe(e=>{this.trafficData=e}),super.ngOnInit()}ngOnDestroy(){this.nodeSubscription.unsubscribe(),this.trafficDataSubscription.unsubscribe()}}return t.\u0275fac=function(){let n;return function(i){return(n||(n=bn(t)))(i||t)}}(),t.\u0275cmp=Ze({type:t,selectors:[["app-node-info"]],features:[nt],decls:1,vars:2,consts:[[3,"nodeInfo","trafficData"]],template:function(e,i){1&e&&xe(0,"app-node-info-content",0),2&e&&w("nodeInfo",i.node)("trafficData",i.trafficData)},dependencies:[AP]}),t})();const Qie=function(){return["settings.title","labels.title"]};let ere=(()=>{class t{constructor(e){this.router=e,this.tabsData=[],this.returnButtonText="settings.title",this.tabsData=[{icon:"view_headline",label:"labels.list-title",linkParts:[]}]}performAction(e){null===e&&this.router.navigate(["settings"])}}return t.\u0275fac=function(e){return new(e||t)(Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-all-labels"]],decls:5,vars:6,consts:[[1,"row"],[1,"col-12"],[3,"titleParts","tabsData","showUpdateButton","returnText","optionSelected"],[1,"content","col-12"],[3,"showShortList"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"app-top-bar",2),ye("optionSelected",function(s){return i.performAction(s)}),C()(),D(3,"div",3),xe(4,"app-label-list",4),C()()),2&e&&(c(2),w("titleParts",qn(5,Qie))("tabsData",i.tabsData)("showUpdateButton",!1)("returnText",i.returnButtonText),c(2),w("showShortList",!1))},dependencies:[sc,dP]}),t})();const tre=["firstInput"];function nre(t,n){1&t&&(Ue(0),D(1,"span"),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),se(H(3,1,"vpn.server-list.add-server-dialog.pk-length-error")))}function ire(t,n){1&t&&(D(0,"span"),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.add-server-dialog.pk-chars-error")))}let rre=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.mediumModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l,d,_){this.dialogRef=e,this.data=i,this.formBuilder=o,this.dialog=s,this.router=a,this.vpnClientService=l,this.vpnSavedDataService=d,this.snackbarService=_}ngOnInit(){this.form=this.formBuilder.group({pk:["",Gt.compose([Gt.required,Gt.minLength(66),Gt.maxLength(66),Gt.pattern("^[0-9a-fA-F]+$")])],password:[""],name:[""],note:[""]}),setTimeout(()=>this.firstInput.nativeElement.focus())}process(){if(!this.form.valid)return;const e={pk:this.form.get("pk").value,name:this.form.get("name").value,note:this.form.get("note").value};lr.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,this.dialogRef,this.data,null,null,e,this.form.get("password").value)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(xr),Y(In),Y(hn),Y(oc),Y(rc),Y(Dn))},t.\u0275cmp=Ze({type:t,selectors:[["app-add-vpn-server"]],viewQuery:function(e,i){if(1&e&&_t(tre,5),2&e){let o;rt(o=ot())&&(i.firstInput=o.first)}},decls:35,vars:23,consts:[[3,"headline","dialog"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","pk","maxlength","66","matInput",""],["firstInput",""],[4,"ngIf","ngIfElse"],["hexError",""],["formControlName","password","type","password","matInput",""],["formControlName","name","maxlength","100","matInput",""],["formControlName","note","maxlength","100","matInput",""],["color","primary",1,"float-right",3,"disabled","action"]],template:function(e,i){if(1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C(),D(10,"mat-error"),V(11,nre,4,3,"ng-container",6),C(),V(12,ire,3,3,"ng-template",null,7,Es),C(),D(14,"mat-form-field")(15,"div",2)(16,"label",3),I(17),R(18,"translate"),C(),xe(19,"input",8),C()(),D(20,"mat-form-field")(21,"div",2)(22,"label",3),I(23),R(24,"translate"),C(),xe(25,"input",9),C()(),D(26,"mat-form-field")(27,"div",2)(28,"label",3),I(29),R(30,"translate"),C(),xe(31,"input",10),C()()(),D(32,"app-button",11),ye("action",function(){return i.process()}),I(33),R(34,"translate"),C()()),2&e){const o=ci(13);w("headline",H(1,11,"vpn.server-list.add-server-dialog.title"))("dialog",i.dialogRef),c(2),w("formGroup",i.form),c(4),se(H(7,13,"vpn.server-list.add-server-dialog.pk-label")),c(5),w("ngIf",!i.form.get("pk").hasError("pattern"))("ngIfElse",o),c(6),se(H(18,15,"vpn.server-list.add-server-dialog.password-label")),c(6),se(H(24,17,"vpn.server-list.add-server-dialog.name-label")),c(6),se(H(30,19,"vpn.server-list.add-server-dialog.note-label")),c(3),w("disabled",!i.form.valid),c(1),ce(" ",H(34,21,"vpn.server-list.add-server-dialog.use-server-button")," ")}},dependencies:[Ft,zi,Bi,Vi,ji,Cr,ii,Ei,ar,sl,kr,Ui,ei,wt]}),t})();class ore{constructor(){this.countryCode="ZZ"}}let sre=(()=>{class t{constructor(e){this.http=e,this.discoveryServiceUrl="https://sd.skycoin.com/api/services?type=vpn"}getServers(){return this.servers?$e(this.servers):this.http.get(this.discoveryServiceUrl).pipe(rf(e=>e.pipe(Ti(4e3))),ke(e=>{const i=[];return e&&e.forEach(o=>{const s=new ore,a=o.address.split(":");2===a.length&&(s.pk=a[0],s.location="",o.geo&&(o.geo.country&&(s.countryCode=o.geo.country),o.geo.region&&(s.location=o.geo.region)),s.name=a[0],s.note="",i.push(s))}),this.servers=i,i}))}}return t.\u0275fac=function(e){return new(e||t)(we(Vl))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function are(t,n){1&t&&Jo(0)}const FP=function(){return["vpn.title"]};function lre(t,n){if(1&t&&(D(0,"div",3)(1,"div",4),xe(2,"app-top-bar",5),D(3,"div",6)(4,"div",7)(5,"div",8),V(6,are,1,0,"ng-container",9),C()()()(),xe(7,"app-loading-indicator",10),C()),2&t){const e=z(),i=ci(2);c(2),w("titleParts",qn(6,FP))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(4),w("ngTemplateOutlet",i)}}function cre(t,n){1&t&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&t&&(c(2),se(H(3,1,"vpn.server-list.tabs.public")))}const Rg=function(t,n){return["/vpn",t,"servers",n,1]};function dre(t,n){if(1&t&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&t){const e=z(2);w("routerLink",mn(4,Rg,e.currentLocalPk,e.lists.Public)),c(2),se(H(3,2,"vpn.server-list.tabs.public"))}}function ure(t,n){1&t&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&t&&(c(2),se(H(3,1,"vpn.server-list.tabs.history")))}function hre(t,n){if(1&t&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&t){const e=z(2);w("routerLink",mn(4,Rg,e.currentLocalPk,e.lists.History)),c(2),se(H(3,2,"vpn.server-list.tabs.history"))}}function fre(t,n){1&t&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&t&&(c(2),se(H(3,1,"vpn.server-list.tabs.favorites")))}function pre(t,n){if(1&t&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&t){const e=z(2);w("routerLink",mn(4,Rg,e.currentLocalPk,e.lists.Favorites)),c(2),se(H(3,2,"vpn.server-list.tabs.favorites"))}}function mre(t,n){1&t&&(D(0,"div",22)(1,"span"),I(2),R(3,"translate"),C()()),2&t&&(c(2),se(H(3,1,"vpn.server-list.tabs.blocked")))}function gre(t,n){if(1&t&&(D(0,"a",23)(1,"span"),I(2),R(3,"translate"),C()()),2&t){const e=z(2);w("routerLink",mn(4,Rg,e.currentLocalPk,e.lists.Blocked)),c(2),se(H(3,2,"vpn.server-list.tabs.blocked"))}}function _re(t,n){1&t&&xe(0,"br")}function bre(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z().$implicit;c(1),se(H(2,1,e.translatableValue))}}function vre(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),se(e.value)}}function yre(t,n){if(1&t&&(D(0,"div",28)(1,"span"),I(2),R(3,"translate"),C(),V(4,bre,3,3,"ng-container",21),V(5,vre,2,1,"ng-container",21),C()),2&t){const e=n.$implicit;c(2),ce("",H(3,3,e.filterName),": "),c(2),w("ngIf",e.translatableValue),c(1),w("ngIf",e.value)}}function Mre(t,n){if(1&t){const e=et();D(0,"div",25),ye("click",function(){return Pe(e),Oe(z(3).dataFilterer.removeFilters())}),D(1,"div",26)(2,"mat-icon",19),I(3,"search"),C(),I(4),R(5,"translate"),C(),V(6,yre,6,5,"div",27),C()}if(2&t){const e=z(3);c(2),w("inline",!0),c(2),ce(" ",H(5,3,"vpn.server-list.current-filters"),""),c(2),w("ngForOf",e.dataFilterer.currentFiltersTexts)}}function wre(t,n){if(1&t&&(Ue(0),V(1,_re,1,0,"br",21),V(2,Mre,7,5,"div",24),We()),2&t){const e=z(2);c(1),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0),c(1),w("ngIf",e.dataFilterer.currentFiltersTexts&&e.dataFilterer.currentFiltersTexts.length>0)}}const Cre=function(t){return{deactivated:t}};function xre(t,n){if(1&t){const e=et();D(0,"div",11)(1,"div",12)(2,"div",13)(3,"div",14),V(4,cre,4,3,"div",15),V(5,dre,4,7,"a",16),V(6,ure,4,3,"div",15),V(7,hre,4,7,"a",16),V(8,fre,4,3,"div",15),V(9,pre,4,7,"a",16),V(10,mre,4,3,"div",15),V(11,gre,4,7,"a",16),C()()()(),D(12,"div",17)(13,"div",12)(14,"div",13)(15,"div",14)(16,"div",18),ye("click",function(){Pe(e);const o=z();return Oe(o.dataFilterer?o.dataFilterer.changeFilters():null)}),R(17,"translate"),D(18,"span")(19,"mat-icon",19),I(20,"search"),C()()()()()()(),D(21,"div",20)(22,"div",12)(23,"div",13)(24,"div",14)(25,"div",18),ye("click",function(){return Pe(e),Oe(z().enterManually())}),R(26,"translate"),D(27,"span")(28,"mat-icon",19),I(29,"add"),C()()()()()()(),V(30,wre,3,2,"ng-container",21)}if(2&t){const e=z();c(4),w("ngIf",e.currentList===e.lists.Public),c(1),w("ngIf",e.currentList!==e.lists.Public),c(1),w("ngIf",e.currentList===e.lists.History),c(1),w("ngIf",e.currentList!==e.lists.History),c(1),w("ngIf",e.currentList===e.lists.Favorites),c(1),w("ngIf",e.currentList!==e.lists.Favorites),c(1),w("ngIf",e.currentList===e.lists.Blocked),c(1),w("ngIf",e.currentList!==e.lists.Blocked),c(1),w("ngClass",He(18,Cre,e.loading)),c(4),w("matTooltip",H(17,14,"filters.filter-info")),c(3),w("inline",!0),c(6),w("matTooltip",H(26,16,"vpn.server-list.add-manually-info")),c(3),w("inline",!0),c(2),w("ngIf",e.dataFilterer)}}function kre(t,n){1&t&&Jo(0)}function Sre(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(5);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Dre(t,n){if(1&t){const e=et();D(0,"th",50),ye("click",function(){Pe(e);const o=z(4);return Oe(o.dataSorter.changeSortingOrder(o.dateSortData))}),R(1,"translate"),D(2,"div",43)(3,"div",44),I(4),R(5,"translate"),C(),V(6,Sre,2,2,"mat-icon",41),C()()}if(2&t){const e=z(4);w("matTooltip",H(1,3,"vpn.server-list.date-info")),c(4),ce(" ",H(5,5,"vpn.server-list.date-small-table-label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.dateSortData)}}function Tre(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Lre(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Ere(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Ire(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Pre(t,n){if(1&t&&(D(0,"mat-icon",19),I(1),C()),2&t){const e=z(4);w("inline",!0),c(1),se(e.dataSorter.sortingArrow)}}function Ore(t,n){if(1&t&&(D(0,"td",64),I(1),R(2,"date"),C()),2&t){const e=z().$implicit;c(1),ce(" ",kt(2,1,e.lastUsed,"yyyy/MM/dd, H:mm a")," ")}}function Are(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z().$implicit;c(1),ce(" ",e.location," ")}}function Fre(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),ce(" ",H(2,1,"vpn.server-list.unknown")," "))}const Rre=function(t,n){return{custom:t,original:n}};function Nre(t,n){if(1&t&&(D(0,"mat-icon",65),ye("click",function(i){return i.stopPropagation()}),R(1,"translate"),I(2,"info_outline"),C()),2&t){const e=z().$implicit,i=z(4);w("inline",!0)("matTooltip",kt(1,2,i.getNoteVar(e),mn(5,Rre,e.personalNote,e.note)))}}const Yre=function(t){return{"selectable click-effect":t}};function Hre(t,n){if(1&t){const e=et();D(0,"tr",51),ye("click",function(){const s=Pe(e).$implicit,a=z(4);return Oe(a.currentList!==a.lists.Blocked?a.selectServer(s):null)}),V(1,Ore,3,4,"td",52),D(2,"td",53)(3,"div",54),xe(4,"div",55),C()(),D(5,"td",56),xe(6,"app-vpn-server-name",57),C(),D(7,"td",58),V(8,Are,2,1,"ng-container",21),V(9,Fre,3,3,"ng-container",21),C(),D(10,"td",59)(11,"app-copy-to-clipboard-text",60),ye("click",function(o){return o.stopPropagation()}),C()(),D(12,"td",61),V(13,Nre,3,8,"mat-icon",62),C(),D(14,"td",48)(15,"button",63),ye("click",function(o){const a=Pe(e).$implicit,l=z(4);return o.stopPropagation(),Oe(l.openOptions(a))}),R(16,"translate"),D(17,"mat-icon",19),I(18,"settings"),C()()()()}if(2&t){const e=n.$implicit,i=z(4);w("ngClass",He(23,Yre,i.currentList!==i.lists.Blocked)),c(1),w("ngIf",i.currentList===i.lists.History),c(3),di("background-image: url('assets/img/big-flags/"+e.countryCode.toLocaleLowerCase()+".png');"),w("matTooltip",i.getCountryName(e.countryCode)),c(2),w("isCurrentServer",i.currentServer&&e.pk===i.currentServer.pk)("isFavorite",e.flag===i.serverFlags.Favorite&&i.currentList!==i.lists.Favorites)("isBlocked",e.flag===i.serverFlags.Blocked&&i.currentList!==i.lists.Blocked)("isInHistory",e.inHistory&&i.currentList!==i.lists.History)("hasPassword",e.usedWithPassword)("name",e.name)("pk",e.pk)("customName",e.customName)("defaultName","vpn.server-list.none"),c(2),w("ngIf",e.location),c(1),w("ngIf",!e.location),c(2),w("shortSimple",!0)("text",e.pk),c(2),w("ngIf",e.note||e.personalNote),c(2),w("matTooltip",H(16,21,"vpn.server-options.tooltip")),c(2),w("inline",!0)}}const Bre=function(t,n){return{"public-pk-column":t,"history-pk-column":n}};function Vre(t,n){if(1&t){const e=et();D(0,"table",38)(1,"tr"),V(2,Dre,7,7,"th",39),D(3,"th",40),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.countrySortData))}),R(4,"translate"),D(5,"mat-icon",19),I(6,"flag"),C(),V(7,Tre,2,2,"mat-icon",41),C(),D(8,"th",42),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.nameSortData))}),D(9,"div",43)(10,"div",44),I(11),R(12,"translate"),C(),V(13,Lre,2,2,"mat-icon",41),C()(),D(14,"th",45),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.locationSortData))}),D(15,"div",43)(16,"div",44),I(17),R(18,"translate"),C(),V(19,Ere,2,2,"mat-icon",41),C()(),D(20,"th",46),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.pkSortData))}),R(21,"translate"),D(22,"div",43)(23,"div",44),I(24),R(25,"translate"),C(),V(26,Ire,2,2,"mat-icon",41),C()(),D(27,"th",47),ye("click",function(){Pe(e);const o=z(3);return Oe(o.dataSorter.changeSortingOrder(o.noteSortData))}),R(28,"translate"),D(29,"div",43)(30,"mat-icon",19),I(31,"info_outline"),C(),V(32,Pre,2,2,"mat-icon",41),C()(),xe(33,"th",48),C(),V(34,Hre,19,25,"tr",49),C()}if(2&t){const e=z(3);c(2),w("ngIf",e.currentList===e.lists.History),c(1),w("matTooltip",H(4,16,"vpn.server-list.country-info")),c(2),w("inline",!0),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.countrySortData),c(4),ce(" ",H(12,18,"vpn.server-list.name-small-table-label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.nameSortData),c(4),ce(" ",H(18,20,"vpn.server-list.location-small-table-label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.locationSortData),c(1),w("ngClass",mn(28,Bre,e.currentList===e.lists.Public,e.currentList===e.lists.History))("matTooltip",H(21,22,"vpn.server-list.public-key-info")),c(4),ce(" ",H(25,24,"vpn.server-list.public-key-small-table-label")," "),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.pkSortData),c(1),w("matTooltip",H(28,26,"vpn.server-list.note-info")),c(3),w("inline",!0),c(2),w("ngIf",e.dataSorter.currentSortingColumn===e.noteSortData),c(2),w("ngForOf",e.dataSource)}}function jre(t,n){if(1&t&&(D(0,"div",35)(1,"div",36),V(2,Vre,35,31,"table",37),C()()),2&t){const e=z(2);c(2),w("ngIf",e.dataSource.length>0)}}const zre=function(t,n){return["/vpn",t,"servers",n]};function Ure(t,n){if(1&t&&xe(0,"app-paginator",66),2&t){const e=z(2);w("currentPage",e.currentPage)("numberOfPages",e.numberOfPages)("linkParts",mn(4,zre,e.currentLocalPk,e.currentList))("queryParams",e.dataFilterer.currentUrlQueryParams)}}function Wre(t,n){1&t&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.empty-discovery")))}function $re(t,n){1&t&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.empty-history")))}function Gre(t,n){1&t&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.empty-favorites")))}function qre(t,n){1&t&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.empty-blocked")))}function Kre(t,n){1&t&&(D(0,"span",70),I(1),R(2,"translate"),C()),2&t&&(c(1),se(H(2,1,"vpn.server-list.empty-with-filter")))}function Zre(t,n){if(1&t&&(D(0,"div",35)(1,"div",67)(2,"mat-icon",68),I(3,"warning"),C(),V(4,Wre,3,3,"span",69),V(5,$re,3,3,"span",69),V(6,Gre,3,3,"span",69),V(7,qre,3,3,"span",69),V(8,Kre,3,3,"span",69),C()()),2&t){const e=z(2);c(2),w("inline",!0),c(2),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.Public),c(1),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.History),c(1),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.Favorites),c(1),w("ngIf",0===e.allServers.length&&e.currentList===e.lists.Blocked),c(1),w("ngIf",0!==e.allServers.length)}}const Xre=function(t){return{"mb-3":t}};function Jre(t,n){if(1&t&&(D(0,"div",29)(1,"div",30),xe(2,"app-top-bar",5),C(),D(3,"div",31)(4,"div",7)(5,"div",32),V(6,kre,1,0,"ng-container",9),C(),V(7,jre,3,1,"div",33),V(8,Ure,1,7,"app-paginator",34),V(9,Zre,9,6,"div",33),C()()()),2&t){const e=z(),i=ci(2);c(2),w("titleParts",qn(10,FP))("tabsData",e.tabsData)("selectedTabIndex",1)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(3),w("ngClass",He(11,Xre,!e.dataFilterer.currentFiltersTexts||e.dataFilterer.currentFiltersTexts.length<1)),c(1),w("ngTemplateOutlet",i),c(1),w("ngIf",0!==e.dataSource.length),c(1),w("ngIf",e.numberOfPages>1),c(1),w("ngIf",0===e.dataSource.length)}}var ri=(()=>((ri=ri||{}).Public="public",ri.History="history",ri.Favorites="favorites",ri.Blocked="blocked",ri))();let RP=(()=>{class t extends er{constructor(e,i,o,s,a,l,d,_,E){super(),this.dialog=e,this.router=i,this.translateService=o,this.route=s,this.vpnClientDiscoveryService=a,this.vpnClientService=l,this.vpnSavedDataService=d,this.snackbarService=_,this.storageService=E,this.persistentServerDataResponseKey="serv-dat-response",this.maxFullListElements=50,this.dateSortData=new Vn(["lastUsed"],"vpn.server-list.date-small-table-label",Zt.NumberReversed),this.countrySortData=new Vn(["countryName"],"vpn.server-list.country-small-table-label",Zt.Text),this.nameSortData=new Vn(["name"],"vpn.server-list.name-small-table-label",Zt.Text),this.locationSortData=new Vn(["location"],"vpn.server-list.location-small-table-label",Zt.Text),this.pkSortData=new Vn(["pk"],"vpn.server-list.public-key-small-table-label",Zt.Text),this.noteSortData=new Vn(["note"],"vpn.server-list.note-small-table-label",Zt.Text),this.loading=!0,this.loadingBackendData=!0,this.tabsData=lr.vpnTabsData,this.numberOfPages=1,this.currentPage=1,this.currentPageInUrl=1,this.currentList=ri.Public,this.vpnRunning=!1,this.serverFlags=Pn,this.lists=ri,this.initialLoadStarted=!1,this.navigationsSubscription=s.paramMap.subscribe(F=>{if(F.has("type")?F.get("type")===ri.Favorites?(this.currentList=ri.Favorites,this.listId="vfs"):F.get("type")===ri.Blocked?(this.currentList=ri.Blocked,this.listId="vbs"):F.get("type")===ri.History?(this.currentList=ri.History,this.listId="vhs"):(this.currentList=ri.Public,this.listId="vps"):(this.currentList=ri.Public,this.listId="vps"),lr.setDefaultTabForServerList(this.currentList),F.has("key")&&(this.currentLocalPk=F.get("key"),lr.changeCurrentPk(this.currentLocalPk),this.tabsData=lr.vpnTabsData),F.has("page")){let G=Number.parseInt(F.get("page"),10);(isNaN(G)||G<1)&&(G=1),this.currentPageInUrl=G,this.recalculateElementsToShow()}this.initialLoadStarted||(this.initialLoadStarted=!0,this.loadData(!0))}),this.currentServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(F=>this.currentServer=F),this.backendDataSubscription=this.vpnClientService.backendState.subscribe(F=>{F&&(this.loadingBackendData=!1,this.vpnRunning=F.vpnClientAppData.running)})}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.currentServerSubscription.unsubscribe(),this.backendDataSubscription.unsubscribe(),this.dataSortedSubscription&&this.dataSortedSubscription.unsubscribe(),this.dataFiltererSubscription&&this.dataFiltererSubscription.unsubscribe(),this.dataSubscription&&this.dataSubscription.unsubscribe(),this.dataFilterer&&this.dataFilterer.dispose(),this.dataSorter&&this.dataSorter.dispose()}enterManually(){rre.openDialog(this.dialog,this.currentLocalPk)}getNoteVar(e){return e.note&&e.personalNote?"vpn.server-list.notes-info":!e.note&&e.personalNote?e.personalNote:e.note}selectServer(e){const i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);if(this.snackbarService.closeCurrentIfTemporaryError(),i&&i.flag===Pn.Blocked)this.snackbarService.showError("vpn.starting-blocked-server-error",{},!0);else{if(this.currentServer&&this.currentServer.pk===e.pk){if(this.vpnRunning)this.snackbarService.showWarning("vpn.server-change.already-selected-warning");else{const o=Jt.createConfirmationDialog(this.dialog,"vpn.server-change.start-same-server-confirmation");o.componentInstance.operationAccepted.subscribe(()=>{o.componentInstance.closeModal(),this.vpnClientService.start(),lr.redirectAfterServerChange(this.router,null,this.currentLocalPk)})}return}if(i&&i.usedWithPassword)return void JI.openDialog(this.dialog,!0).afterClosed().subscribe(o=>{o&&this.makeServerChange(e,"-"===o?null:o.substr(1))});this.makeServerChange(e,null)}}makeServerChange(e,i){lr.processServerChange(this.router,this.vpnClientService,this.vpnSavedDataService,this.snackbarService,this.dialog,null,this.currentLocalPk,e.originalLocalData,e.originalDiscoveryData,null,i)}openOptions(e){let i=this.vpnSavedDataService.getSavedVersion(e.pk,!0);i||(i=this.vpnSavedDataService.processFromDiscovery(e.originalDiscoveryData)),i?lr.openServerOptions(i,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe(o=>{o&&this.processAllServers()}):this.snackbarService.showError("vpn.unexpedted-error")}loadData(e){if(this.currentList===ri.Public){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientDiscoveryService.getServers();i&&(o=$e(JSON.parse(i.value))),this.dataSubscription=o.subscribe(s=>{i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(s)),this.allServers=s.map(a=>({countryCode:a.countryCode,countryName:this.getCountryName(a.countryCode),name:a.name,customName:null,location:a.location,pk:a.pk,note:a.note,personalNote:null,originalDiscoveryData:a})),this.vpnSavedDataService.updateFromDiscovery(s),this.loading=!1,this.processAllServers(),i&&this.loadData(!1)})}else{let i;i=this.currentList===ri.History?this.vpnSavedDataService.history:this.currentList===ri.Favorites?this.vpnSavedDataService.favorites:this.vpnSavedDataService.blocked,this.dataSubscription=i.subscribe(o=>{const s=[];o.forEach(a=>{s.push({countryCode:a.countryCode,countryName:this.getCountryName(a.countryCode),name:a.name,customName:null,location:a.location,pk:a.pk,note:a.note,personalNote:null,lastUsed:a.lastUsed,inHistory:a.inHistory,flag:a.flag,originalLocalData:a})}),this.allServers=s,this.loading=!1,this.processAllServers()})}}processAllServers(){this.fillFilterPropertiesArray();const e=new Set;this.allServers.forEach((_,E)=>{e.add(_.countryCode);const F=this.vpnSavedDataService.getSavedVersion(_.pk,0===E);_.customName=F?F.customName:null,_.personalNote=F?F.personalNote:null,_.inHistory=!!F&&F.inHistory,_.flag=F?F.flag:Pn.None,_.enteredManually=!!F&&F.enteredManually,_.usedWithPassword=!!F&&F.usedWithPassword});let i=[];e.forEach(_=>{i.push({label:this.getCountryName(_),value:_,image:"/assets/img/big-flags/"+_.toLowerCase()+".png"})}),i.sort((_,E)=>_.label.localeCompare(E.label)),i=[{label:"vpn.server-list.filter-dialog.country-options.any",value:""}].concat(i),this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.country",keyNameInElementsArray:"countryCode",type:$n.Select,printableLabelsForValues:i,printableLabelGeneralSettings:{defaultImage:"/assets/img/big-flags/unknown.png",imageWidth:20,imageHeight:15}}].concat(this.filterProperties);const s=[];let a,l,d;this.currentList===ri.Public?(s.push(this.countrySortData),s.push(this.nameSortData),s.push(this.locationSortData),s.push(this.pkSortData),s.push(this.noteSortData),a=0,l=1):(this.currentList===ri.History&&s.push(this.dateSortData),s.push(this.countrySortData),s.push(this.nameSortData),s.push(this.locationSortData),s.push(this.pkSortData),s.push(this.noteSortData),a=this.currentList===ri.History?0:1,l=this.currentList===ri.History?2:3),this.dataSorter=new Rd(this.dialog,this.translateService,this.storageService,s,a,this.listId),this.dataSorter.setTieBreakerColumnIndex(l),this.dataSortedSubscription=this.dataSorter.dataSorted.subscribe(()=>{this.recalculateElementsToShow()}),this.dataFilterer=new Nd(this.dialog,this.route,this.router,this.filterProperties,this.listId),this.dataFiltererSubscription=this.dataFilterer.dataFiltered.subscribe(_=>{this.filteredServers=_,this.dataSorter.setData(this.filteredServers)}),d=this.currentList===ri.Public?this.allServers.filter(_=>_.flag!==Pn.Blocked):this.allServers,this.dataFilterer.setData(d)}fillFilterPropertiesArray(){this.filterProperties=[{filterName:"vpn.server-list.filter-dialog.name",keyNameInElementsArray:"name",secondaryKeyNameInElementsArray:"customName",type:$n.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.location",keyNameInElementsArray:"location",type:$n.TextInput,maxlength:100},{filterName:"vpn.server-list.filter-dialog.public-key",keyNameInElementsArray:"pk",type:$n.TextInput,maxlength:100}]}recalculateElementsToShow(){if(this.currentPage=this.currentPageInUrl,this.filteredServers){const e=this.maxFullListElements;this.numberOfPages=Math.ceil(this.filteredServers.length/e),this.currentPage>this.numberOfPages&&(this.currentPage=this.numberOfPages);const i=e*(this.currentPage-1);this.serversToShow=this.filteredServers.slice(i,i+e)}else this.serversToShow=null;this.dataSource=this.serversToShow}getCountryName(e){return ma[e.toUpperCase()]?ma[e.toUpperCase()]:e}}return t.\u0275fac=function(e){return new(e||t)(Y(In),Y(hn),Y(To),Y(Mr),Y(sre),Y(oc),Y(rc),Y(Dn),Y(Ji))},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-server-list"]],features:[nt],decls:4,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["topPart",""],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[1,"loading-top-container"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"main-container"],[1,"width-limiter"],[1,"center-container","mt-4.5"],[4,"ngTemplateOutlet"],[1,"h-100","loading-indicator"],[1,"option-bar-container"],[1,"rounded-elevated-box","mt-3"],[1,"box-internal-container","allow-overflow"],[1,"option-bar"],["class","text-option selected",4,"ngIf"],["class","text-option",3,"routerLink",4,"ngIf"],[1,"option-bar-container","option-bar-margin",3,"ngClass"],[1,"icon-option",3,"matTooltip","click"],[3,"inline"],[1,"option-bar-container","option-bar-margin"],[4,"ngIf"],[1,"text-option","selected"],[1,"text-option",3,"routerLink"],["class","filter-label subtle-transparent-button cursor-pointer",3,"click",4,"ngIf"],[1,"filter-label","subtle-transparent-button","cursor-pointer",3,"click"],[1,"transparent-50"],["class","item",4,"ngFor","ngForOf"],[1,"item"],[1,"row"],[1,"col-12"],[1,"col-12","vpn-table-container"],[1,"center-container","mt-4.5",3,"ngClass"],["class","rounded-elevated-box",4,"ngIf"],[3,"currentPage","numberOfPages","linkParts","queryParams",4,"ngIf"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["class","responsive-table-translucid d-none d-md-table","cellspacing","0","cellpadding","0",4,"ngIf"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],["class","sortable-column date-column click-effect",3,"matTooltip","click",4,"ngIf"],[1,"sortable-column","flag-column","center","click-effect",3,"matTooltip","click"],[3,"inline",4,"ngIf"],[1,"sortable-column","name-column","click-effect",3,"click"],[1,"header-container"],[1,"header-text"],[1,"sortable-column","location-column","click-effect",3,"click"],[1,"sortable-column","pk-column","click-effect",3,"ngClass","matTooltip","click"],[1,"sortable-column","note-column","center","click-effect",3,"matTooltip","click"],[1,"actions"],[3,"ngClass","click",4,"ngFor","ngForOf"],[1,"sortable-column","date-column","click-effect",3,"matTooltip","click"],[3,"ngClass","click"],["class","date-column",4,"ngIf"],[1,"flag-column","icon-fixer"],[1,"flag"],[3,"matTooltip"],[1,"name-column"],[3,"isCurrentServer","isFavorite","isBlocked","isInHistory","hasPassword","name","pk","customName","defaultName"],[1,"location-column"],[1,"pk-column","history-pk-column"],[1,"d-inline-block","w-100",3,"shortSimple","text","click"],[1,"center","note-column"],["class","note-icon",3,"inline","matTooltip","click",4,"ngIf"],["mat-button","",1,"big-action-button","transparent-button","vpn-small-button",3,"matTooltip","click"],[1,"date-column"],[1,"note-icon",3,"inline","matTooltip","click"],[3,"currentPage","numberOfPages","linkParts","queryParams"],[1,"box-internal-container","font-sm"],[1,"alert-icon",3,"inline"],["class","font-sm",4,"ngIf"],[1,"font-sm"]],template:function(e,i){1&e&&(V(0,lre,8,7,"div",0),V(1,xre,31,20,"ng-template",null,1,Es),V(3,Jre,10,13,"div",2)),2&e&&(w("ngIf",i.loading||i.loadingBackendData),c(3),w("ngIf",!i.loading&&!i.loadingBackendData))},styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .note-column[_ngcontent-%COMP%], .pk-column[_ngcontent-%COMP%], .location-column[_ngcontent-%COMP%], .name-column[_ngcontent-%COMP%], .date-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.center-container[_ngcontent-%COMP%]{text-align:center}.center-container[_ngcontent-%COMP%] app-paginator[_ngcontent-%COMP%]{display:inline-block}.loading-top-container[_ngcontent-%COMP%]{z-index:1}.loading-indicator[_ngcontent-%COMP%]{padding-top:30px;padding-bottom:20px}.deactivated[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}.option-bar-container[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .allow-overflow[_ngcontent-%COMP%]{overflow:visible}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%]{display:flex;margin:-17px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{height:55px;line-height:55px;cursor:pointer;color:#fff;text-decoration:none;-webkit-user-select:none;user-select:none}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:hover, .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.2)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-block}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] > .icon-option[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%], .option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:active span[_ngcontent-%COMP%]{transform:scale(.95)}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .text-option[_ngcontent-%COMP%]{padding:0 40px;font-size:1rem}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .icon-option[_ngcontent-%COMP%]{width:55px;font-size:24px}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]{background:rgba(0,0,0,.36);cursor:unset!important}.option-bar-container[_ngcontent-%COMP%] .option-bar[_ngcontent-%COMP%] .selected[_ngcontent-%COMP%]:hover{background:rgba(0,0,0,.6)}.option-bar-margin[_ngcontent-%COMP%]{margin-left:10px}.filter-label[_ngcontent-%COMP%]{font-size:.7rem;display:inline-block;padding:5px 10px;margin-bottom:7px}.filter-label[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{vertical-align:middle}table[_ngcontent-%COMP%]{width:100%}tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:2px 5px!important;font-size:12px!important;font-weight:400!important}tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{padding-left:5px!important;padding-right:5px!important}.date-column[_ngcontent-%COMP%]{width:150px}.name-column[_ngcontent-%COMP%]{max-width:0;width:20%}.location-column[_ngcontent-%COMP%]{max-width:0;min-width:72px}.pk-column[_ngcontent-%COMP%]{max-width:0;width:25%}.history-pk-column[_ngcontent-%COMP%]{width:20%!important}.icon-fixer[_ngcontent-%COMP%]{line-height:0px}.note-column[_ngcontent-%COMP%]{max-width:0;width:3%;min-width:60px}.note-column[_ngcontent-%COMP%] .note-icon[_ngcontent-%COMP%]{opacity:.55;font-size:16px!important;display:inline}.flag-column[_ngcontent-%COMP%]{width:1px;line-height:0px}.actions[_ngcontent-%COMP%]{width:1px}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}.flag[_ngcontent-%COMP%]{width:20px;height:15px;display:inline-block;margin-right:5px;background-image:url(/assets/img/big-flags/unknown.png);background-size:contain}.flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.center[_ngcontent-%COMP%]{text-align:center}.alert-icon[_ngcontent-%COMP%]{vertical-align:middle;margin-right:10px}"]}),t})();function eoe(t){const{subscriber:n,counter:e,period:i}=t;n.next(e),this.schedule({subscriber:n,counter:e+1,period:i},i)}const af=function(t,n){return{"small-text-icon":t,"big-text-icon":n}};function toe(t,n){if(1&t&&(D(0,"mat-icon",4),R(1,"translate"),I(2,"done"),C()),2&t){const e=z();w("ngClass",mn(5,af,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",H(1,3,"vpn.server-conditions.selected-info"))}}function noe(t,n){if(1&t&&(D(0,"mat-icon",5),R(1,"translate"),I(2,"clear"),C()),2&t){const e=z();w("ngClass",mn(5,af,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",H(1,3,"vpn.server-conditions.blocked-info"))}}function ioe(t,n){if(1&t&&(D(0,"mat-icon",6),R(1,"translate"),I(2,"star"),C()),2&t){const e=z();w("ngClass",mn(5,af,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",H(1,3,"vpn.server-conditions.favorite-info"))}}function roe(t,n){if(1&t&&(D(0,"mat-icon",4),R(1,"translate"),I(2,"history"),C()),2&t){const e=z();w("ngClass",mn(5,af,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",H(1,3,"vpn.server-conditions.history-info"))}}function ooe(t,n){if(1&t&&(D(0,"mat-icon",4),R(1,"translate"),I(2,"lock_outlined"),C()),2&t){const e=z();w("ngClass",mn(5,af,!e.adjustIconsForBigText,e.adjustIconsForBigText))("inline",!0)("matTooltip",H(1,3,"vpn.server-conditions.has-password-info"))}}function soe(t,n){if(1&t&&(Ue(0),I(1),D(2,"mat-icon",7),I(3,"fiber_manual_record"),C(),I(4),We()),2&t){const e=z();c(1),ce(" ",e.customName," "),c(1),w("inline",!0),c(2),ce(" ",e.name,"\n")}}function aoe(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z();c(1),se(e.customName)}}function loe(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z();c(1),se(e.name)}}function coe(t,n){if(1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t){const e=z();c(1),se(H(2,1,e.defaultName))}}let NP=(()=>{class t{constructor(){this.isCurrentServer=!1,this.isFavorite=!1,this.isBlocked=!1,this.isInHistory=!1,this.hasPassword=!1,this.name="",this.customName="",this.pk="",this.defaultName="",this.adjustIconsForBigText=!1}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-server-name"]],inputs:{isCurrentServer:"isCurrentServer",isFavorite:"isFavorite",isBlocked:"isBlocked",isInHistory:"isInHistory",hasPassword:"hasPassword",name:"name",customName:"customName",pk:"pk",defaultName:"defaultName",adjustIconsForBigText:"adjustIconsForBigText"},decls:9,vars:9,consts:[["class","server-condition-icon",3,"ngClass","inline","matTooltip",4,"ngIf"],["class","server-condition-icon red-clear-text",3,"ngClass","inline","matTooltip",4,"ngIf"],["class","server-condition-icon yellow-clear-text",3,"ngClass","inline","matTooltip",4,"ngIf"],[4,"ngIf"],[1,"server-condition-icon",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","red-clear-text",3,"ngClass","inline","matTooltip"],[1,"server-condition-icon","yellow-clear-text",3,"ngClass","inline","matTooltip"],[1,"name-separator",3,"inline"]],template:function(e,i){1&e&&(V(0,toe,3,8,"mat-icon",0),V(1,noe,3,8,"mat-icon",1),V(2,ioe,3,8,"mat-icon",2),V(3,roe,3,8,"mat-icon",0),V(4,ooe,3,8,"mat-icon",0),V(5,soe,5,3,"ng-container",3),V(6,aoe,2,1,"ng-container",3),V(7,loe,2,1,"ng-container",3),V(8,coe,3,3,"ng-container",3)),2&e&&(w("ngIf",i.isCurrentServer),c(1),w("ngIf",i.isBlocked),c(1),w("ngIf",i.isFavorite),c(1),w("ngIf",i.isInHistory),c(1),w("ngIf",i.hasPassword),c(1),w("ngIf",i.customName&&i.name&&(!i.pk||i.name!==i.pk)),c(1),w("ngIf",(!i.name||i.pk&&i.name===i.pk)&&i.customName),c(1),w("ngIf",i.name&&(!i.pk||i.name!==i.pk)&&!i.customName),c(1),w("ngIf",(!i.name||i.pk&&i.name===i.pk)&&!i.customName))},dependencies:[Nn,Ft,Cn,vi,wt],styles:[".server-condition-icon[_ngcontent-%COMP%]{font-size:14px!important;line-height:14px!important;margin-right:3px;position:relative;width:14px!important;-webkit-user-select:none;user-select:none;cursor:default}.small-text-icon[_ngcontent-%COMP%]{top:2px}.big-text-icon[_ngcontent-%COMP%]{top:0}.name-separator[_ngcontent-%COMP%]{display:inline!important;font-size:8px!important;opacity:.5!important}"]}),t})();const YP=function(){return["vpn.title"]};function doe(t,n){if(1&t&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3),C(),xe(3,"app-loading-indicator"),C()),2&t){const e=z();c(2),w("titleParts",qn(5,YP))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function uoe(t,n){1&t&&xe(0,"mat-spinner",32),2&t&&w("diameter",40)}function hoe(t,n){1&t&&(D(0,"mat-icon",33),I(1,"power_settings_new"),C()),2&t&&w("inline",!0)}function foe(t,n){if(1&t){const e=et();Ue(0),D(1,"div",34),xe(2,"div",35),C(),D(3,"div",36)(4,"div",37),xe(5,"app-vpn-server-name",38),C(),D(6,"div",39),xe(7,"app-copy-to-clipboard-text",40),C()(),D(8,"div",41),xe(9,"div"),C(),D(10,"div",42)(11,"mat-icon",43),ye("click",function(){return Pe(e),Oe(z(3).openServerOptions())}),R(12,"translate"),I(13,"settings"),C()(),We()}if(2&t){const e=z(3);c(2),di("background-image: url('assets/img/big-flags/"+e.currentRemoteServer.countryCode.toLocaleLowerCase()+".png');"),w("matTooltip",e.getCountryName(e.currentRemoteServer.countryCode)),c(3),w("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),c(2),w("shortSimple",!0)("text",e.currentRemoteServer.pk),c(4),w("inline",!0)("matTooltip",H(12,13,"vpn.server-options.tooltip"))}}function poe(t,n){1&t&&(Ue(0),D(1,"div",44),I(2),R(3,"translate"),C(),We()),2&t&&(c(2),se(H(3,1,"vpn.status-page.no-server")))}const moe=function(t,n){return{custom:t,original:n}};function goe(t,n){if(1&t&&(D(0,"div",45)(1,"mat-icon",33),I(2,"info_outline"),C(),I(3),R(4,"translate"),C()),2&t){const e=z(3);c(1),w("inline",!0),c(2),ce(" ",kt(4,2,e.getNoteVar(),mn(5,moe,e.currentRemoteServer.personalNote,e.currentRemoteServer.note))," ")}}function _oe(t,n){if(1&t&&(D(0,"div",46)(1,"mat-icon",33),I(2,"cancel"),C(),I(3),R(4,"translate"),C()),2&t){const e=z(3);c(1),w("inline",!0),c(2),vo(" ",H(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.lastErrorMsg," ")}}const HP=function(t){return{"disabled-button":t}};function boe(t,n){if(1&t){const e=et();D(0,"div",22)(1,"div",11)(2,"div",13),I(3),R(4,"translate"),C(),D(5,"div")(6,"div",23),ye("click",function(){return Pe(e),Oe(z(2).start())}),D(7,"div",24),xe(8,"div",25),C(),D(9,"div",24),xe(10,"div",26),C(),V(11,uoe,1,1,"mat-spinner",27),V(12,hoe,2,1,"mat-icon",28),C()(),D(13,"div",29),V(14,foe,14,15,"ng-container",18),V(15,poe,4,3,"ng-container",18),C(),D(16,"div"),V(17,goe,5,8,"div",30),C(),D(18,"div"),V(19,_oe,5,5,"div",31),C()()()}if(2&t){const e=z(2);c(3),se(H(4,8,"vpn.status-page.start-title")),c(3),w("ngClass",He(10,HP,e.showBusy)),c(5),w("ngIf",e.showBusy),c(1),w("ngIf",!e.showBusy),c(2),w("ngIf",e.currentRemoteServer),c(1),w("ngIf",!e.currentRemoteServer),c(2),w("ngIf",e.currentRemoteServer&&(e.currentRemoteServer.note||e.currentRemoteServer.personalNote)),c(2),w("ngIf",e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.lastErrorMsg)}}function voe(t,n){if(1&t&&(D(0,"div",77)(1,"mat-icon",33),I(2,"cancel"),C(),I(3),R(4,"translate"),C()),2&t){const e=z(3);c(1),w("inline",!0),c(2),vo(" ",H(4,3,"vpn.status-page.last-error")," ",e.backendState.vpnClientAppData.connectionData.error," ")}}function yoe(t,n){1&t&&(D(0,"div"),xe(1,"mat-spinner",32),C()),2&t&&(c(1),w("diameter",24))}function Moe(t,n){1&t&&(D(0,"mat-icon",33),I(1,"power_settings_new"),C()),2&t&&w("inline",!0)}const Vd=function(t){return{showValue:!0,showUnit:!0,showPerSecond:!0,limitDecimals:!0,useBits:t}},BP=function(t){return{showValue:!0,showUnit:!0,showPerSecond:!0,useBits:t}},VP=function(t){return{showValue:!0,showUnit:!0,useBits:t}},Ng=function(t){return{time:t}};function woe(t,n){if(1&t){const e=et();D(0,"div",47)(1,"div",11)(2,"div",48)(3,"div",49)(4,"mat-icon",33),I(5,"timer"),C(),D(6,"span"),I(7),C()()(),D(8,"div",50),I(9),R(10,"translate"),C(),D(11,"div",51)(12,"div",52),I(13),R(14,"translate"),C(),xe(15,"div"),C(),D(16,"div",53),I(17),R(18,"translate"),C(),V(19,voe,5,5,"div",54),D(20,"div",55)(21,"div",56),R(22,"translate"),D(23,"div",57),xe(24,"app-line-chart",58),C(),D(25,"div",59)(26,"div",60)(27,"div",61),I(28),R(29,"autoScale"),C(),xe(30,"div",62),C()(),D(31,"div",59)(32,"div",63)(33,"div",61),I(34),R(35,"autoScale"),C(),xe(36,"div",62),C()(),D(37,"div",59)(38,"div",64)(39,"div",61),I(40),R(41,"autoScale"),C()()(),D(42,"div",65)(43,"mat-icon",66),I(44,"keyboard_backspace"),C(),D(45,"div",67),I(46),R(47,"autoScale"),C(),D(48,"div",68),I(49),R(50,"autoScale"),R(51,"translate"),C()()(),D(52,"div",56),R(53,"translate"),D(54,"div",57),xe(55,"app-line-chart",58),C(),D(56,"div",69)(57,"div",60)(58,"div",61),I(59),R(60,"autoScale"),C(),xe(61,"div",62),C()(),D(62,"div",59)(63,"div",63)(64,"div",61),I(65),R(66,"autoScale"),C(),xe(67,"div",62),C()(),D(68,"div",59)(69,"div",64)(70,"div",61),I(71),R(72,"autoScale"),C()()(),D(73,"div",65)(74,"mat-icon",70),I(75,"keyboard_backspace"),C(),D(76,"div",67),I(77),R(78,"autoScale"),C(),D(79,"div",68),I(80),R(81,"autoScale"),R(82,"translate"),C()()()(),D(83,"div",71)(84,"div",72),R(85,"translate"),D(86,"div",57),xe(87,"app-line-chart",73),C(),D(88,"div",69)(89,"div",60)(90,"div",61),I(91),R(92,"translate"),C(),xe(93,"div",62),C()(),D(94,"div",59)(95,"div",63)(96,"div",61),I(97),R(98,"translate"),C(),xe(99,"div",62),C()(),D(100,"div",59)(101,"div",64)(102,"div",61),I(103),R(104,"translate"),C()()(),D(105,"div",65)(106,"mat-icon",33),I(107,"swap_horiz"),C(),D(108,"div"),I(109),R(110,"translate"),C()()()(),D(111,"div",74),ye("click",function(){return Pe(e),Oe(z(2).stop())}),D(112,"div",75)(113,"div",76),V(114,yoe,2,1,"div",18),V(115,Moe,2,1,"mat-icon",28),D(116,"span"),I(117),R(118,"translate"),C()()()()()()}if(2&t){const e=z(2);c(4),w("inline",!0),c(3),se(e.connectionTimeString),c(2),se(H(10,58,"vpn.connection-info.state-title")),c(4),se(H(14,60,e.currentStateText)),c(2),eo("state-line "+e.currentStateLineClass),c(2),se(H(18,62,e.currentStateText+"-info")),c(2),w("ngIf",e.backendState&&e.backendState.vpnClientAppData&&e.backendState.vpnClientAppData.connectionData&&e.backendState.vpnClientAppData.connectionData.error),c(2),w("matTooltip",H(22,64,"vpn.status-page.upload-info")),c(3),w("animated",!1)("data",e.sentHistory)("min",e.minUploadInGraph)("max",e.maxUploadInGraph),c(4),ce(" ",kt(29,66,e.maxUploadInGraph,He(118,Vd,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",kt(35,69,e.midUploadInGraph,He(120,Vd,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",kt(41,72,e.minUploadInGraph,He(122,Vd,e.showSpeedsInBits))," "),c(3),w("inline",!0),c(3),se(kt(47,75,e.uploadSpeed,He(124,BP,e.showSpeedsInBits))),c(3),vo(" ",kt(50,78,e.totalUploaded,He(126,VP,e.showTotalsInBits))," ",H(51,81,"vpn.status-page.total-data-label")," "),c(3),w("matTooltip",H(53,83,"vpn.status-page.download-info")),c(3),w("animated",!1)("data",e.receivedHistory)("min",e.minDownloadInGraph)("max",e.maxDownloadInGraph),c(4),ce(" ",kt(60,85,e.maxDownloadInGraph,He(128,Vd,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",kt(66,88,e.midDownloadInGraph,He(130,Vd,e.showSpeedsInBits))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",kt(72,91,e.minDownloadInGraph,He(132,Vd,e.showSpeedsInBits))," "),c(3),w("inline",!0),c(3),se(kt(78,94,e.downloadSpeed,He(134,BP,e.showSpeedsInBits))),c(3),vo(" ",kt(81,97,e.totalDownloaded,He(136,VP,e.showTotalsInBits))," ",H(82,100,"vpn.status-page.total-data-label")," "),c(4),w("matTooltip",H(85,102,"vpn.status-page.latency-info")),c(3),w("animated",!1)("data",e.latencyHistory)("min",e.minLatencyInGraph)("max",e.maxLatencyInGraph),c(4),ce(" ",kt(92,104,"common."+e.getLatencyValueString(e.maxLatencyInGraph),He(138,Ng,e.getPrintableLatency(e.maxLatencyInGraph)))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin+"px;"),c(4),ce(" ",kt(98,107,"common."+e.getLatencyValueString(e.midLatencyInGraph),He(140,Ng,e.getPrintableLatency(e.midLatencyInGraph)))," "),c(2),di("margin-top: "+e.graphsTopInternalMargin/2+"px;"),c(4),ce(" ",kt(104,110,"common."+e.getLatencyValueString(e.minLatencyInGraph),He(142,Ng,e.getPrintableLatency(e.minLatencyInGraph)))," "),c(3),w("inline",!0),c(3),se(kt(110,113,"common."+e.getLatencyValueString(e.latency),He(144,Ng,e.getPrintableLatency(e.latency)))),c(2),w("ngClass",He(146,HP,e.showBusy)),c(3),w("ngIf",e.showBusy),c(1),w("ngIf",!e.showBusy),c(2),se(H(118,116,"vpn.status-page.disconnect"))}}function Coe(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z(3);c(1),se(e.currentIp)}}function xoe(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"common.unknown")))}function koe(t,n){1&t&&xe(0,"mat-spinner",32),2&t&&w("diameter",20)}function Soe(t,n){1&t&&(D(0,"mat-icon",81),R(1,"translate"),I(2,"warning"),C()),2&t&&w("inline",!0)("matTooltip",H(1,2,"vpn.status-page.data.ip-problem-info"))}function Doe(t,n){if(1&t){const e=et();D(0,"mat-icon",82),ye("click",function(){return Pe(e),Oe(z(3).getIp())}),R(1,"translate"),I(2,"refresh"),C()}2&t&&w("inline",!0)("matTooltip",H(1,2,"vpn.status-page.data.ip-refresh-info"))}function Toe(t,n){if(1&t&&(D(0,"div",78),V(1,Coe,2,1,"ng-container",18),V(2,xoe,3,3,"ng-container",18),V(3,koe,1,1,"mat-spinner",27),V(4,Soe,3,4,"mat-icon",79),V(5,Doe,3,4,"mat-icon",80),C()),2&t){const e=z(2);c(1),w("ngIf",e.currentIp),c(1),w("ngIf",!e.currentIp&&!e.loadingCurrentIp),c(1),w("ngIf",e.loadingCurrentIp),c(1),w("ngIf",e.problemGettingIp),c(1),w("ngIf",!e.loadingCurrentIp)}}function Loe(t,n){1&t&&(D(0,"div",78),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"vpn.status-page.data.unavailable")," "))}function Eoe(t,n){if(1&t&&(Ue(0),I(1),We()),2&t){const e=z(3);c(1),se(e.ipCountry)}}function Ioe(t,n){1&t&&(Ue(0),I(1),R(2,"translate"),We()),2&t&&(c(1),se(H(2,1,"common.unknown")))}function Poe(t,n){1&t&&xe(0,"mat-spinner",32),2&t&&w("diameter",20)}function Ooe(t,n){1&t&&(D(0,"mat-icon",81),R(1,"translate"),I(2,"warning"),C()),2&t&&w("inline",!0)("matTooltip",H(1,2,"vpn.status-page.data.ip-country-problem-info"))}function Aoe(t,n){if(1&t&&(D(0,"div",78),V(1,Eoe,2,1,"ng-container",18),V(2,Ioe,3,3,"ng-container",18),V(3,Poe,1,1,"mat-spinner",27),V(4,Ooe,3,4,"mat-icon",79),C()),2&t){const e=z(2);c(1),w("ngIf",e.ipCountry),c(1),w("ngIf",!e.ipCountry&&!e.loadingCurrentIp),c(1),w("ngIf",e.loadingCurrentIp),c(1),w("ngIf",e.problemGettingIp)}}function Foe(t,n){1&t&&(D(0,"div",78),I(1),R(2,"translate"),C()),2&t&&(c(1),ce(" ",H(2,1,"vpn.status-page.data.unavailable")," "))}function Roe(t,n){if(1&t){const e=et();D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",78),xe(5,"app-vpn-server-name",83),D(6,"mat-icon",82),ye("click",function(){return Pe(e),Oe(z(2).openServerOptions())}),R(7,"translate"),I(8,"settings"),C()()()}if(2&t){const e=z(2);c(2),se(H(3,10,"vpn.status-page.data.server")),c(3),w("isFavorite",e.currentRemoteServer.flag===e.serverFlags.Favorite)("isBlocked",e.currentRemoteServer.flag===e.serverFlags.Blocked)("hasPassword",e.currentRemoteServer.usedWithPassword)("adjustIconsForBigText",!0)("name",e.currentRemoteServer.name)("pk",e.currentRemoteServer.pk)("customName",e.currentRemoteServer.customName),c(1),w("inline",!0)("matTooltip",H(7,12,"vpn.server-options.tooltip"))}}function Noe(t,n){1&t&&xe(0,"div",15)}function Yoe(t,n){if(1&t&&(D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",20),I(5),C()()),2&t){const e=z(2);c(2),se(H(3,2,"vpn.status-page.data.server-note")),c(3),ce(" ",e.currentRemoteServer.personalNote," ")}}function Hoe(t,n){1&t&&xe(0,"div",15)}function Boe(t,n){if(1&t&&(D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",20),I(5),C()()),2&t){const e=z(2);c(2),se(H(3,2,"vpn.status-page.data."+(e.currentRemoteServer.personalNote?"original-":"")+"server-note")),c(3),ce(" ",e.currentRemoteServer.note," ")}}function Voe(t,n){1&t&&xe(0,"div",15)}function joe(t,n){if(1&t&&(D(0,"div")(1,"div",13),I(2),R(3,"translate"),C(),D(4,"div",20),xe(5,"app-copy-to-clipboard-text",21),C()()),2&t){const e=z(2);c(2),se(H(3,2,"vpn.status-page.data.remote-pk")),c(3),w("text",e.currentRemoteServer.pk)}}function zoe(t,n){1&t&&xe(0,"div",15)}function Uoe(t,n){if(1&t&&(D(0,"div",4)(1,"div",5)(2,"div",6),xe(3,"app-top-bar",3),C()(),D(4,"div",7),V(5,boe,20,12,"div",8),V(6,woe,119,148,"div",9),D(7,"div",10)(8,"div",11)(9,"div",12)(10,"div")(11,"div",13),I(12),R(13,"translate"),C(),V(14,Toe,6,5,"div",14),V(15,Loe,3,3,"div",14),C(),xe(16,"div",15),D(17,"div")(18,"div",13),I(19),R(20,"translate"),C(),V(21,Aoe,5,4,"div",14),V(22,Foe,3,3,"div",14),C(),xe(23,"div",16)(24,"div",17)(25,"div",16),V(26,Roe,9,14,"div",18),V(27,Noe,1,0,"div",19),V(28,Yoe,6,4,"div",18),V(29,Hoe,1,0,"div",19),V(30,Boe,6,4,"div",18),V(31,Voe,1,0,"div",19),V(32,joe,6,4,"div",18),V(33,zoe,1,0,"div",19),D(34,"div")(35,"div",13),I(36),R(37,"translate"),C(),D(38,"div",20),xe(39,"app-copy-to-clipboard-text",21),C()()()()()()()),2&t){const e=z();c(3),w("titleParts",qn(29,YP))("tabsData",e.tabsData)("selectedTabIndex",0)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(2),w("ngIf",!e.showStarted),c(1),w("ngIf",e.showStarted),c(6),se(H(13,23,"vpn.status-page.data.ip")),c(2),w("ngIf",e.ipInfoAllowed),c(1),w("ngIf",!e.ipInfoAllowed),c(4),se(H(20,25,"vpn.status-page.data.country")),c(2),w("ngIf",e.ipInfoAllowed),c(1),w("ngIf",!e.ipInfoAllowed),c(4),w("ngIf",e.showStarted&&e.currentRemoteServer),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.personalNote),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer&&e.currentRemoteServer.note),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer),c(1),w("ngIf",e.showStarted&&e.currentRemoteServer),c(3),se(H(37,27,"vpn.status-page.data.local-pk")),c(3),w("text",e.currentLocalPk)}}let Woe=(()=>{class t extends er{constructor(e,i,o,s,a,l,d){super(),this.vpnClientService=e,this.vpnSavedDataService=i,this.snackbarService=o,this.translateService=s,this.route=a,this.dialog=l,this.router=d,this.persistentServerDataResponseKey="serv-dat-response",this.persistentIpResponseKey="serv-ip-response",this.tabsData=lr.vpnTabsData,this.sentHistory=[0,0,0,0,0,0,0,0,0,0],this.receivedHistory=[0,0,0,0,0,0,0,0,0,0],this.latencyHistory=[0,0,0,0,0,0,0,0,0,0],this.minUploadInGraph=0,this.midUploadInGraph=0,this.maxUploadInGraph=0,this.minDownloadInGraph=0,this.midDownloadInGraph=0,this.maxDownloadInGraph=0,this.minLatencyInGraph=0,this.midLatencyInGraph=0,this.maxLatencyInGraph=0,this.graphsTopInternalMargin=$1.topInternalMargin,this.connectionTimeString="00:00:00",this.calculatedSegs=-1,this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0,this.showSpeedsInBits=!0,this.showTotalsInBits=!1,this.loading=!0,this.showStartedLastValue=!1,this.showStarted=!1,this.lastAppState=null,this.showBusy=!1,this.stopRequested=!1,this.loadingCurrentIp=!0,this.problemGettingIp=!1,this.lastIpRefresDate=0,this.serverFlags=Pn,this.ipInfoAllowed=this.vpnSavedDataService.getCheckIpSetting();const _=this.vpnSavedDataService.getDataUnitsSetting();_===Sr.OnlyBits?(this.showSpeedsInBits=!0,this.showTotalsInBits=!0):_===Sr.OnlyBytes?(this.showSpeedsInBits=!1,this.showTotalsInBits=!1):(this.showSpeedsInBits=!0,this.showTotalsInBits=!1)}ngOnInit(){return this.navigationsSubscription=this.route.paramMap.subscribe(e=>{e.has("key")&&(this.currentLocalPk=e.get("key"),lr.changeCurrentPk(this.currentLocalPk),this.tabsData=lr.vpnTabsData),setTimeout(()=>this.navigationsSubscription.unsubscribe()),this.startGettingData(!0),this.currentRemoteServerSubscription=this.vpnSavedDataService.currentServerObservable.subscribe(i=>{this.currentRemoteServer=i})}),super.ngOnInit()}startGettingData(e){const i=e?this.getLocalValue(this.persistentServerDataResponseKey):null;let o=this.vpnClientService.backendState;i&&(o=$e(JSON.parse(i.value))),this.dataSubscription=o.subscribe(s=>{if(i||this.saveLocalValue(this.persistentServerDataResponseKey,JSON.stringify(s)),s&&s.serviceState!==jn.PerformingInitialCheck){const a=!this.backendState;if(this.backendState=s,a?(this.getIp(!0,e),console.info(2),console.info(e)):(this.lastAppState===on.Running&&s.vpnClientAppData.appState!==on.Running||this.lastAppState!==on.Running&&s.vpnClientAppData.appState===on.Running)&&(this.getIp(!0,e),console.info(1)),this.showStarted=s.vpnClientAppData.running||s.vpnClientAppData.appState!==on.Stopped,this.showStartedLastValue!==this.showStarted){for(let l=0;l<10;l++)this.receivedHistory[l]=0,this.sentHistory[l]=0,this.latencyHistory[l]=0;this.updateGraphLimits(),this.uploadSpeed=0,this.downloadSpeed=0,this.totalUploaded=0,this.totalDownloaded=0,this.latency=0}if(this.lastAppState=s.vpnClientAppData.appState,this.showStartedLastValue=this.showStarted,this.stopRequested?this.showStarted||(this.stopRequested=!1,this.showBusy=s.busy):this.showBusy=s.busy,s.vpnClientAppData.connectionData){for(let l=0;l<10;l++)this.receivedHistory[l]=s.vpnClientAppData.connectionData.downloadSpeedHistory[l],this.sentHistory[l]=s.vpnClientAppData.connectionData.uploadSpeedHistory[l],this.latencyHistory[l]=s.vpnClientAppData.connectionData.latencyHistory[l];this.updateGraphLimits(),this.uploadSpeed=s.vpnClientAppData.connectionData.uploadSpeed,this.downloadSpeed=s.vpnClientAppData.connectionData.downloadSpeed,this.totalUploaded=s.vpnClientAppData.connectionData.totalUploaded,this.totalDownloaded=s.vpnClientAppData.connectionData.totalDownloaded,this.latency=s.vpnClientAppData.connectionData.latency}s.vpnClientAppData.running&&s.vpnClientAppData.appState===on.Running&&s.vpnClientAppData.connectionData&&s.vpnClientAppData.connectionData.connectionDuration?(-1===this.calculatedSegs||s.vpnClientAppData.connectionData.connectionDuration>this.calculatedSegs+2||s.vpnClientAppData.connectionData.connectionDuration(e.add(n.schedule(eoe,t,{subscriber:e,counter:0,period:t})),e))}(1e3).subscribe(()=>{this.calculatedSegs+=1,this.refreshConnectionTimeString()})):this.timeUpdateSubscription&&(this.timeUpdateSubscription.unsubscribe(),this.timeUpdateSubscription=null,this.calculatedSegs=-1,this.connectionTimeString="00:00:00"),this.loading=!1}i&&this.startGettingData(!1)})}refreshConnectionTimeString(){const e=this.calculatedSegs%60,i=Math.floor(this.calculatedSegs/60),o=i%60,s=Math.floor(i/60);this.connectionTimeString=String(s).padStart(2,"0")+":"+String(o).padStart(2,"0")+":"+String(e).padStart(2,"0")}ngOnDestroy(){this.dataSubscription.unsubscribe(),this.navigationsSubscription.unsubscribe(),this.currentRemoteServerSubscription.unsubscribe(),this.closeOperationSubscription(),this.ipSubscription&&this.ipSubscription.unsubscribe(),this.timeUpdateSubscription&&this.timeUpdateSubscription.unsubscribe()}start(){if(!this.currentRemoteServer)return this.router.navigate(["vpn",this.currentLocalPk,"servers"]),void setTimeout(()=>this.snackbarService.showWarning("vpn.status-page.select-server-warning"),100);this.currentRemoteServer.flag!==Pn.Blocked?(this.showBusy=!0,this.vpnClientService.start()):this.snackbarService.showError("vpn.starting-blocked-server-error")}stop(){if(!this.backendState.vpnClientAppData.killswitch)return void this.finishStoppingVpn();const e=Jt.createConfirmationDialog(this.dialog,"vpn.status-page.disconnect-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishStoppingVpn()})}finishStoppingVpn(){this.stopRequested=!0,this.showBusy=!0,this.vpnClientService.stop()}openServerOptions(){lr.openServerOptions(this.currentRemoteServer,this.router,this.vpnSavedDataService,this.vpnClientService,this.snackbarService,this.dialog).subscribe()}getCountryName(e){return ma[e.toUpperCase()]?ma[e.toUpperCase()]:e}getNoteVar(){return this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?"vpn.server-list.notes-info":!this.currentRemoteServer.note&&this.currentRemoteServer.personalNote?this.currentRemoteServer.personalNote:this.currentRemoteServer.note}getLatencyValueString(e){return lr.getLatencyValueString(e)}getPrintableLatency(e){return lr.getPrintableLatency(e)}get currentStateText(){return this.backendState.vpnClientAppData.appState===on.Stopped?"vpn.connection-info.state-disconnected":this.backendState.vpnClientAppData.appState===on.Connecting?"vpn.connection-info.state-connecting":this.backendState.vpnClientAppData.appState===on.Running?"vpn.connection-info.state-connected":this.backendState.vpnClientAppData.appState===on.ShuttingDown?"vpn.connection-info.state-disconnecting":this.backendState.vpnClientAppData.appState===on.Reconnecting?"vpn.connection-info.state-reconnecting":void 0}get currentStateLineClass(){return this.backendState.vpnClientAppData.appState===on.Stopped?"red-line":this.backendState.vpnClientAppData.appState===on.Connecting?"yellow-line":this.backendState.vpnClientAppData.appState===on.Running?"green-line":"yellow-line"}closeOperationSubscription(){this.operationSubscription&&this.operationSubscription.unsubscribe()}updateGraphLimits(){const e=this.calculateGraphLimits(this.sentHistory);this.minUploadInGraph=e[0],this.midUploadInGraph=e[1],this.maxUploadInGraph=e[2];const i=this.calculateGraphLimits(this.receivedHistory);this.minDownloadInGraph=i[0],this.midDownloadInGraph=i[1],this.maxDownloadInGraph=i[2];const o=this.calculateGraphLimits(this.latencyHistory);this.minLatencyInGraph=o[0],this.midLatencyInGraph=o[1],this.maxLatencyInGraph=o[2]}calculateGraphLimits(e){let o=0,s=0;return e.forEach(a=>{a>o&&(o=a)}),0===o&&(o+=1),s=new(Eg())(o).minus(0).dividedBy(2).plus(0).decimalPlaces(1).toNumber(),[0,s,o]}getIp(e=!1,i=!1){if(!this.ipInfoAllowed)return;if(!e){if(this.loadingCurrentIp)return void this.snackbarService.showWarning("vpn.status-page.data.ip-refresh-loading-warning");const a=1e4;if(Date.now()-this.lastIpRefresDate{o||this.saveLocalValue(this.persistentIpResponseKey,JSON.stringify(a)),this.loadingCurrentIp=!1,this.lastIpRefresDate=Date.now(),a?(this.problemGettingIp=!1,this.currentIp=a[0],this.ipCountry=a[1]):this.problemGettingIp=!0,o&&this.getIp(e,!1)},()=>{this.lastIpRefresDate=Date.now(),this.loadingCurrentIp=!1,this.problemGettingIp=!1})}}return t.\u0275fac=function(e){return new(e||t)(Y(oc),Y(rc),Y(Dn),Y(To),Y(Mr),Y(In),Y(hn))},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-status"]],features:[nt],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","general-container",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],[1,"general-container"],[1,"row"],[1,"col-12"],[1,"row","flex-1"],["class","col-7 column left-area",4,"ngIf"],["class","col-7 column left-area-connected",4,"ngIf"],[1,"col-5","column","right-area"],[1,"column-container"],[1,"content-area"],[1,"title"],["class","big-text",4,"ngIf"],[1,"margin"],[1,"big-margin"],[1,"separator"],[4,"ngIf"],["class","margin",4,"ngIf"],[1,"small-text"],[3,"text"],[1,"col-7","column","left-area"],[1,"start-button",3,"ngClass","click"],[1,"start-button-img-container"],[1,"start-button-img"],[1,"start-button-img","animated-button"],[3,"diameter",4,"ngIf"],[3,"inline",4,"ngIf"],[1,"current-server"],["class","lower-text current-server-note",4,"ngIf"],["class","lower-text last-error",4,"ngIf"],[3,"diameter"],[3,"inline"],[1,"flag"],[3,"matTooltip"],[1,"text-container"],[1,"top-line"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","name","pk","customName"],[1,"bottom-line"],[3,"shortSimple","text"],[1,"icon-button-separator"],[1,"icon-button"],[1,"transparent-button","vpn-small-button",3,"inline","matTooltip","click"],[1,"none"],[1,"lower-text","current-server-note"],[1,"lower-text","last-error"],[1,"col-7","column","left-area-connected"],[1,"time-container"],[1,"time-content"],[1,"state-title"],[1,"d-inline-block"],[1,"state-text"],[1,"state-explanation"],["class","last-connected-error",4,"ngIf"],[1,"data-container"],[1,"rounded-elevated-box","data-box","big-box",3,"matTooltip"],[1,"chart-container"],["height","140","color","#00000080",3,"animated","data","min","max"],[1,"chart-label"],[1,"label-container","label-top"],[1,"label"],[1,"line"],[1,"label-container","label-mid"],[1,"label-container","label-bottom"],[1,"content"],[1,"upload",3,"inline"],[1,"speed"],[1,"total"],[1,"chart-label","top-chart-label"],[1,"download",3,"inline"],[1,"latency-container"],[1,"rounded-elevated-box","data-box","small-box",3,"matTooltip"],["height","50","color","#00000080",3,"animated","data","min","max"],[1,"disconnect-button",3,"ngClass","click"],[1,"disconnect-button-container"],[1,"d-inline-flex"],[1,"last-connected-error"],[1,"big-text"],["class","small-icon blinking",3,"inline","matTooltip",4,"ngIf"],["class","big-icon transparent-button vpn-small-button",3,"inline","matTooltip","click",4,"ngIf"],[1,"small-icon","blinking",3,"inline","matTooltip"],[1,"big-icon","transparent-button","vpn-small-button",3,"inline","matTooltip","click"],["defaultName","vpn.unnamed",3,"isFavorite","isBlocked","hasPassword","adjustIconsForBigText","name","pk","customName"]],template:function(e,i){1&e&&(V(0,doe,4,6,"div",0),V(1,Uoe,40,30,"div",1)),2&e&&(w("ngIf",i.loading),c(1),w("ngIf",!i.loading))},dependencies:[Nn,Ft,Cn,vi,ec,W1,$1,as,sc,NP,wt,sf],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%], .left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}.general-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.column[_ngcontent-%COMP%]{height:100%;display:flex;align-items:center;padding-top:40px;padding-bottom:20px}.column[_ngcontent-%COMP%] .column-container[_ngcontent-%COMP%]{width:100%;text-align:center}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%]{background:rgba(0,0,0,.7);border-radius:100px;font-size:.8rem;padding:8px 15px;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%]{color:#bbb}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px}.left-area-connected[_ngcontent-%COMP%] .time-container[_ngcontent-%COMP%] .time-content[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:top}.left-area-connected[_ngcontent-%COMP%] .state-title[_ngcontent-%COMP%]{font-size:1rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .state-text[_ngcontent-%COMP%]{font-size:2rem;text-transform:uppercase}.left-area-connected[_ngcontent-%COMP%] .state-line[_ngcontent-%COMP%]{height:1px;width:100%;margin-bottom:5px}.left-area-connected[_ngcontent-%COMP%] .green-line[_ngcontent-%COMP%]{background-color:#2ecc54}.left-area-connected[_ngcontent-%COMP%] .yellow-line[_ngcontent-%COMP%]{background-color:#d48b05}.left-area-connected[_ngcontent-%COMP%] .red-line[_ngcontent-%COMP%]{background-color:#da3439}.left-area-connected[_ngcontent-%COMP%] .state-explanation[_ngcontent-%COMP%]{font-size:.7rem}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%]{margin-top:15px;font-size:.8rem;color:#ff393f}.left-area-connected[_ngcontent-%COMP%] .last-connected-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .data-container[_ngcontent-%COMP%]{margin-top:20px}.left-area-connected[_ngcontent-%COMP%] .latency-container[_ngcontent-%COMP%]{margin-bottom:20px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%]{cursor:default;display:inline-block}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{height:0px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%]{height:0px;text-align:left}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{position:relative;top:-3px;left:-3px;display:flex;margin-right:-6px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{font-size:.6rem;margin-left:5px;opacity:.2}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%] .line[_ngcontent-%COMP%]{height:1px;width:10px;background-color:#fff;flex-grow:1;opacity:.1;margin-left:10px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-top[_ngcontent-%COMP%]{align-items:flex-start}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-mid[_ngcontent-%COMP%]{align-items:center}.left-area-connected[_ngcontent-%COMP%] .data-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-bottom[_ngcontent-%COMP%]{align-items:flex-end;position:relative;top:-6px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%]{width:170px;height:140px;margin:5px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:170px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{width:170px;height:140px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:20px;position:relative;top:-3px;left:-3px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:25px;transform:rotate(-90deg);width:40px;height:40px}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .download[_ngcontent-%COMP%]{transform:rotate(-90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .upload[_ngcontent-%COMP%]{transform:rotate(90deg)}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .speed[_ngcontent-%COMP%]{font-size:.875rem}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] .total[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area-connected[_ngcontent-%COMP%] .big-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:140px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%]{width:352px;height:50px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-container[_ngcontent-%COMP%]{width:352px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:100%;font-size:.875rem;position:relative}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;height:25px;margin-right:5px}.left-area-connected[_ngcontent-%COMP%] .small-box[_ngcontent-%COMP%] .chart-label[_ngcontent-%COMP%] .label-container[_ngcontent-%COMP%]{height:50px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]{background:linear-gradient(#940000,#7b0000) no-repeat!important;box-shadow:5px 5px 7px #00000080;width:352px;font-size:24px;display:inline-block;border-radius:10px;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:hover{background:linear-gradient(#a10000,#900000) no-repeat!important}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%]:active{transform:scale(.98);box-shadow:0 0 7px #00000080}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%]{background-image:url(/assets/img/background-pattern.png);padding:12px}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;position:relative;top:4px;margin-right:10px;align-self:center}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area-connected[_ngcontent-%COMP%] .disconnect-button[_ngcontent-%COMP%] .disconnect-button-container[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{position:relative;top:-2px;line-height:1.7}.left-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;text-align:center;text-transform:uppercase}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]{text-align:center;margin:10px 0;cursor:pointer;display:inline-block;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:active mat-icon[_ngcontent-%COMP%]{transform:scale(.9)}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover .start-button-img-container[_ngcontent-%COMP%]{opacity:1}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{text-shadow:0px 0px 5px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%]{width:0px;height:0px;opacity:.7}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .start-button-img[_ngcontent-%COMP%]{display:inline-block;background-image:url(/assets/img/start-button.png);background-size:contain;width:140px;height:140px}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .start-button-img-container[_ngcontent-%COMP%] .animated-button[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_button-animation 4s linear infinite;pointer-events:none}@keyframes _ngcontent-%COMP%_button-animation{0%{transform:scale(1.5);opacity:0}25%{transform:scale(1);opacity:.8}50%{transform:scale(1.5);opacity:0}to{transform:scale(1.5);opacity:0}}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{line-height:140px;font-size:50px;-webkit-user-select:none;user-select:none;text-shadow:0px 0px 2px white}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%]{display:inline-block;margin-top:50px;opacity:.5}.left-area[_ngcontent-%COMP%] .start-button[_ngcontent-%COMP%] .mat-mdc-progress-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%]{display:inline-flex;background:rgba(0,0,0,.7);border-radius:10px;padding:10px 15px;max-width:280px;text-align:left}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .none[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%]{background-image:url(/assets/img/big-flags/unknown.png);width:20px;height:15px;background-size:contain;align-self:center;flex-shrink:0;margin-right:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .flag[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:20px;height:15px;background-size:contain}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{overflow:hidden}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .top-line[_ngcontent-%COMP%]{font-size:.875rem}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .bottom-line[_ngcontent-%COMP%]{font-size:.7rem;color:#bbb}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%]{display:flex;align-items:center}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button-separator[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{width:1px;height:30px;background:rgba(255,255,255,.15);margin-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%]{font-size:22px;line-height:1;display:flex;align-items:center;padding-left:12px}.left-area[_ngcontent-%COMP%] .current-server[_ngcontent-%COMP%] .icon-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{cursor:pointer}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%]{display:inline-block;max-width:280px;margin-top:10px}.left-area[_ngcontent-%COMP%] .lower-text[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{position:relative;top:2px;display:inline;-webkit-user-select:none;user-select:none}.left-area[_ngcontent-%COMP%] .current-server-note[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.left-area[_ngcontent-%COMP%] .last-error[_ngcontent-%COMP%]{font-size:.8rem;color:#ff393f}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%]{background:rgba(61,103,162,.1490196078);padding:30px;text-align:left;max-width:420px;opacity:.95}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:.8rem;color:#bbb}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%]{font-size:1.25rem;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:5px;position:relative;top:2px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .small-icon[_ngcontent-%COMP%]{color:#d48b05;opacity:.7;font-size:.875rem;cursor:default;margin-left:5px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-text[_ngcontent-%COMP%] .big-icon[_ngcontent-%COMP%]{font-size:1.125rem;margin-left:5px;position:relative;top:2px;line-height:1}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .small-text[_ngcontent-%COMP%]{font-size:.7rem;margin-top:1px;overflow-wrap:break-word}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .margin[_ngcontent-%COMP%]{height:12px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .big-margin[_ngcontent-%COMP%]{height:15px}.right-area[_ngcontent-%COMP%] .content-area[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:1px;width:100%;background:rgba(255,255,255,.15)}.disabled-button[_ngcontent-%COMP%]{opacity:.5;pointer-events:none}"]}),t})(),q1=(()=>{class t{set lastError(e){this.lastErrorInternal=e}constructor(e){this.router=e}canActivate(e,i){return this.checkIfCanActivate()}canActivateChild(e,i){return this.checkIfCanActivate()}checkIfCanActivate(){return this.lastErrorInternal?(this.router.navigate(["vpn","unavailable"],{queryParams:{problem:this.lastErrorInternal}}),$e(!1)):$e(!0)}}return t.\u0275fac=function(e){return new(e||t)(we(hn))},t.\u0275prov=Ne({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var so=(()=>((so=so||{}).UnableToConnectWithTheVpnClientApp="unavailable",so.NoLocalVisorPkProvided="pk",so.InvalidStorageState="storage",so.LocalVisorPkChangedDuringUsage="pkChange",so))();let $oe=(()=>{class t extends er{constructor(e,i,o){super(),this.route=e,this.vpnAuthGuardService=i,this.vpnClientService=o,this.problem=null,this.navigationsSubscription=this.route.queryParamMap.subscribe(s=>{this.problem=s.get("problem"),this.problem||(this.problem=so.UnableToConnectWithTheVpnClientApp),this.vpnAuthGuardService.lastError=this.problem,this.vpnClientService.stopContinuallyUpdatingData(),setTimeout(()=>this.navigationsSubscription.unsubscribe())})}getTitle(){return this.problem===so.NoLocalVisorPkProvided?"vpn.error-page.text-pk":this.problem===so.InvalidStorageState?"vpn.error-page.text-storage":this.problem===so.LocalVisorPkChangedDuringUsage?"vpn.error-page.text-pk-change":"vpn.error-page.text"}getInfo(){return this.problem===so.NoLocalVisorPkProvided?"vpn.error-page.more-info-pk":this.problem===so.InvalidStorageState?"vpn.error-page.more-info-storage":this.problem===so.LocalVisorPkChangedDuringUsage?"vpn.error-page.more-info-pk-change":"vpn.error-page.more-info"}}return t.\u0275fac=function(e){return new(e||t)(Y(Mr),Y(q1),Y(oc))},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-error"]],features:[nt],decls:12,vars:7,consts:[[1,"main-container"],[1,"text-container"],[1,"inner-container"],[1,"error-icon"],[3,"inline"],[1,"more-info"]],template:function(e,i){1&e&&(D(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"mat-icon",4),I(5,"error_outline"),C()(),D(6,"div"),I(7),R(8,"translate"),C(),D(9,"div",5),I(10),R(11,"translate"),C()()()()),2&e&&(c(4),w("inline",!0),c(3),se(H(8,3,i.getTitle())),c(3),se(H(11,5,i.getInfo())))},dependencies:[Cn,wt],styles:[".main-container[_ngcontent-%COMP%]{height:100%;display:flex}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%]{width:100%;align-self:center;text-align:center}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%]{max-width:550px;display:inline-block;font-size:1.25rem}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{font-size:80px}.main-container[_ngcontent-%COMP%] .text-container[_ngcontent-%COMP%] .inner-container[_ngcontent-%COMP%] .more-info[_ngcontent-%COMP%]{font-size:.8rem;opacity:.75;margin-top:10px}"]}),t})();const Goe=["button"],qoe=["firstInput"];let Koe=(()=>{class t{static openDialog(e,i){const o=new En;return o.data=i,o.autoFocus=!1,o.width=Vt.smallModalWidth,e.open(t,o)}constructor(e,i,o,s,a,l){this.dialogRef=e,this.data=i,this.formBuilder=o,this.snackbarService=s,this.appsService=a,this.vpnClientService=l}ngOnInit(){this.form=this.formBuilder.group({ip:[this.data.ip,Gt.compose([Gt.maxLength(15),this.validateIp.bind(this)])]}),setTimeout(()=>this.firstInput.nativeElement.focus())}ngOnDestroy(){this.operationSubscription&&this.operationSubscription.unsubscribe()}validateIp(){if(this.form){const e=this.form.get("ip").value;return Jt.checkIfIpValidOrEmpty(e)?null:{invalid:!0}}return null}save(){!this.form.valid||this.operationSubscription||(this.button.showLoading(),this.operationSubscription=this.appsService.changeAppSettings(this.data.nodePk,this.vpnClientService.vpnClientAppName,{dns:this.form.get("ip").value}).subscribe({next:this.onSuccess.bind(this),error:this.onError.bind(this)}))}onSuccess(e){this.dialogRef.close(!0),this.snackbarService.showDone("vpn.dns-config.done")}onError(e){this.button.showError(),this.operationSubscription=null,e=en(e),this.snackbarService.showError(e)}}return t.\u0275fac=function(e){return new(e||t)(Y(Bn),Y(Li),Y(vI),Y(Dn),Y(ll),Y(oc))},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-dns-config"]],viewQuery:function(e,i){if(1&e&&(_t(Goe,5),_t(qoe,5)),2&e){let o;rt(o=ot())&&(i.button=o.first),rt(o=ot())&&(i.firstInput=o.first)}},decls:14,vars:11,consts:[[3,"headline"],[3,"formGroup"],[1,"field-container"],["for","remoteKey",1,"field-label"],["formControlName","ip","maxlength","15","matInput",""],["firstInput",""],["color","primary",1,"float-right",3,"disabled","action"],["button",""]],template:function(e,i){1&e&&(D(0,"app-dialog",0),R(1,"translate"),D(2,"form",1)(3,"mat-form-field")(4,"div",2)(5,"label",3),I(6),R(7,"translate"),C(),xe(8,"input",4,5),C()()(),D(10,"app-button",6,7),ye("action",function(){return i.save()}),I(12),R(13,"translate"),C()()),2&e&&(w("headline",H(1,5,"vpn.dns-config.title")),c(2),w("formGroup",i.form),c(4),se(H(7,7,"vpn.dns-config.ip")),c(4),w("disabled",!i.form.valid),c(2),ce(" ",H(13,9,"vpn.dns-config.save-config-button")," "))},dependencies:[zi,Bi,Vi,ji,Cr,ii,Ei,ar,kr,Ui,ei,wt]}),t})();const Zoe=["topBarLoading"],Xoe=["topBarLoaded"],jP=function(){return["vpn.title"]};function Joe(t,n){if(1&t&&(D(0,"div",2)(1,"div"),xe(2,"app-top-bar",3,4),C(),xe(4,"app-loading-indicator",5),C()),2&t){const e=z();c(2),w("titleParts",qn(5,jP))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk)}}function Qoe(t,n){1&t&&xe(0,"mat-spinner",20),2&t&&w("diameter",12)}function ese(t,n){if(1&t){const e=et();D(0,"div",6)(1,"div",7),xe(2,"app-top-bar",3,8),C(),D(4,"div",9)(5,"div",10)(6,"div",11)(7,"div",12)(8,"table",13)(9,"tr")(10,"th",14)(11,"div",15)(12,"div",16),I(13),R(14,"translate"),C()()(),D(15,"th",14),I(16),R(17,"translate"),C()(),D(18,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeKillswitchOption())}),D(19,"td",14)(20,"div"),I(21),R(22,"translate"),D(23,"mat-icon",18),R(24,"translate"),I(25,"help"),C()()(),D(26,"td",14),xe(27,"span"),I(28),R(29,"translate"),V(30,Qoe,1,1,"mat-spinner",19),C()(),D(31,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeGetIpOption())}),D(32,"td",14)(33,"div"),I(34),R(35,"translate"),D(36,"mat-icon",18),R(37,"translate"),I(38,"help"),C()()(),D(39,"td",14),xe(40,"span"),I(41),R(42,"translate"),C()(),D(43,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeDataUnits())}),D(44,"td",14)(45,"div"),I(46),R(47,"translate"),D(48,"mat-icon",18),R(49,"translate"),I(50,"help"),C()()(),D(51,"td",14),I(52),R(53,"translate"),C()(),D(54,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeHops())}),D(55,"td",14)(56,"div"),I(57),R(58,"translate"),D(59,"mat-icon",18),R(60,"translate"),I(61,"help"),C()()(),D(62,"td",14),I(63),C()(),D(64,"tr",17),ye("click",function(){return Pe(e),Oe(z().changeDns())}),D(65,"td",14)(66,"div"),I(67),R(68,"translate"),D(69,"mat-icon",18),R(70,"translate"),I(71,"help"),C()()(),D(72,"td",14),I(73),R(74,"translate"),C()()()()()()()()}if(2&t){const e=z();c(2),w("titleParts",qn(64,jP))("tabsData",e.tabsData)("selectedTabIndex",2)("showUpdateButton",!1)("localVpnKey",e.currentLocalPk),c(11),ce(" ",H(14,32,"vpn.settings-page.setting-small-table-label")," "),c(3),ce(" ",H(17,34,"vpn.settings-page.value-small-table-label")," "),c(5),ce(" ",H(22,36,"vpn.settings-page.killswitch")," "),c(2),w("inline",!0)("matTooltip",H(24,38,"vpn.settings-page.killswitch-info")),c(4),eo(e.getStatusClass(e.backendData.vpnClientAppData.killswitch)),c(1),ce(" ",H(29,40,e.getStatusText(e.backendData.vpnClientAppData.killswitch))," "),c(2),w("ngIf",e.working===e.workingOptions.Killswitch),c(4),ce(" ",H(35,42,"vpn.settings-page.get-ip")," "),c(2),w("inline",!0)("matTooltip",H(37,44,"vpn.settings-page.get-ip-info")),c(4),eo(e.getStatusClass(e.getIpOption)),c(1),ce(" ",H(42,46,e.getStatusText(e.getIpOption))," "),c(5),ce(" ",H(47,48,"vpn.settings-page.data-units")," "),c(2),w("inline",!0)("matTooltip",H(49,50,"vpn.settings-page.data-units-info")),c(4),ce(" ",H(53,52,e.getUnitsOptionText(e.dataUnitsOption))," "),c(5),ce(" ",H(58,54,"vpn.settings-page.minimum-hops")," "),c(2),w("inline",!0)("matTooltip",H(60,56,"vpn.settings-page.minimum-hops-info")),c(4),ce(" ",e.backendData.vpnClientAppData.minHops," "),c(4),ce(" ",H(68,58,"vpn.settings-page.dns")," "),c(2),w("inline",!0)("matTooltip",H(70,60,"vpn.settings-page.dns-info")),c(4),ce(" ",e.backendData.vpnClientAppData.dns?e.backendData.vpnClientAppData.dns:H(74,62,"vpn.settings-page.setting-none")," ")}}var Lo=(()=>((Lo=Lo||{})[Lo.None=0]="None",Lo[Lo.Killswitch=1]="Killswitch",Lo))();const tse=[{path:"",component:OW},{path:"login",component:HI},{path:"nodes",canActivate:[Uh],canActivateChild:[Uh],children:[{path:"",redirectTo:"list/1",pathMatch:"full"},{path:"list",redirectTo:"list/1",pathMatch:"full"},{path:"list/:page",component:lP},{path:"dmsg",redirectTo:"dmsg/1",pathMatch:"full"},{path:"dmsg/:page",component:lP},{path:":key",component:Ct,children:[{path:"",redirectTo:"routing",pathMatch:"full"},{path:"info",component:Jie},{path:"routing",component:Aee},{path:"apps",component:_ie},{path:"transports",redirectTo:"transports/1",pathMatch:"full"},{path:"transports/:page",component:vie},{path:"routes",redirectTo:"routes/1",pathMatch:"full"},{path:"routes/:page",component:Mie},{path:"apps-list/:showOfficialApps/:page",component:Cie}]}]},{path:"settings",canActivate:[Uh],canActivateChild:[Uh],children:[{path:"",component:zJ},{path:"labels",redirectTo:"labels/1",pathMatch:"full"},{path:"labels/:page",component:ere}]},{path:"vpnlogin/:key",component:HI},{path:"vpn",canActivate:[q1],canActivateChild:[q1],children:[{path:"unavailable",component:$oe},{path:":key",children:[{path:"status",component:Woe},{path:"servers",redirectTo:"servers/public/1",pathMatch:"full"},{path:"servers/:type/:page",component:RP},{path:"settings",component:(()=>{class t extends er{constructor(e,i,o,s,a,l){super(),this.vpnClientService=e,this.snackbarService=i,this.appsService=o,this.vpnSavedDataService=s,this.dialog=a,this.loading=!0,this.tabsData=lr.vpnTabsData,this.working=Lo.None,this.workingOptions=Lo,this.navigationsSubscription=l.paramMap.subscribe(d=>{d.has("key")&&(this.currentLocalPk=d.get("key"),lr.changeCurrentPk(this.currentLocalPk),this.tabsData=lr.vpnTabsData)}),this.dataSubscription=this.vpnClientService.backendState.subscribe(d=>{d&&d.serviceState!==jn.PerformingInitialCheck&&(this.backendData=d,this.loading=!1)}),this.getIpOption=this.vpnSavedDataService.getCheckIpSetting(),this.dataUnitsOption=this.vpnSavedDataService.getDataUnitsSetting()}ngOnDestroy(){this.navigationsSubscription.unsubscribe(),this.dataSubscription.unsubscribe(),this.operationSubscription&&this.operationSubscription.unsubscribe()}getStatusClass(e){return!0===e?"dot-green":"dot-red"}getStatusText(e){return!0===e?"vpn.settings-page.setting-on":"vpn.settings-page.setting-off"}getUnitsOptionText(e){switch(e){case Sr.OnlyBits:return"vpn.settings-page.data-units-modal.only-bits";case Sr.OnlyBytes:return"vpn.settings-page.data-units-modal.only-bytes";default:return"vpn.settings-page.data-units-modal.bits-speed-and-bytes-volume"}}changeKillswitchOption(){if(this.working===Lo.None)if(this.backendData.vpnClientAppData.running){const e=Jt.createConfirmationDialog(this.dialog,"vpn.settings-page.change-while-connected-confirmation");e.componentInstance.operationAccepted.subscribe(()=>{e.componentInstance.closeModal(),this.finishChangingKillswitchOption()})}else this.finishChangingKillswitchOption();else this.snackbarService.showWarning("vpn.settings-page.working-warning")}finishChangingKillswitchOption(){this.working=Lo.Killswitch,this.operationSubscription=this.appsService.changeAppSettings(this.currentLocalPk,this.vpnClientService.vpnClientAppName,{killswitch:!this.backendData.vpnClientAppData.killswitch}).subscribe(()=>{this.working=Lo.None,this.vpnClientService.updateData()},e=>{this.working=Lo.None,e=en(e),this.snackbarService.showError(e)})}changeGetIpOption(){this.getIpOption=!this.getIpOption,this.vpnSavedDataService.setCheckIpSetting(this.getIpOption)}changeDataUnits(){const e=[],i=[];Object.keys(Sr).forEach(o=>{const s={label:this.getUnitsOptionText(Sr[o])};this.dataUnitsOption===Sr[o]&&(s.icon="done"),e.push(s),i.push(Sr[o])}),qr.openDialog(this.dialog,e,"vpn.settings-page.data-units-modal.title").afterClosed().subscribe(o=>{o&&(this.dataUnitsOption=i[o-1],this.vpnSavedDataService.setDataUnitsSetting(this.dataUnitsOption),this.topBarLoading&&this.topBarLoading.updateVpnDataStatsUnit(),this.topBarLoaded&&this.topBarLoaded.updateVpnDataStatsUnit())})}changeHops(){IP.openDialog(this.dialog,{nodePk:this.currentLocalPk,minHops:this.backendData.vpnClientAppData.minHops}).afterClosed().subscribe()}changeDns(){Koe.openDialog(this.dialog,{nodePk:this.currentLocalPk,ip:this.backendData.vpnClientAppData.dns}).afterClosed().subscribe()}}return t.\u0275fac=function(e){return new(e||t)(Y(oc),Y(Dn),Y(ll),Y(rc),Y(In),Y(Mr))},t.\u0275cmp=Ze({type:t,selectors:[["app-vpn-settings-list"]],viewQuery:function(e,i){if(1&e&&(_t(Zoe,5),_t(Xoe,5)),2&e){let o;rt(o=ot())&&(i.topBarLoading=o.first),rt(o=ot())&&(i.topBarLoaded=o.first)}},features:[nt],decls:2,vars:2,consts:[["class","d-flex flex-column h-100 w-100",4,"ngIf"],["class","row",4,"ngIf"],[1,"d-flex","flex-column","h-100","w-100"],[3,"titleParts","tabsData","selectedTabIndex","showUpdateButton","localVpnKey"],["topBarLoading",""],[1,"h-100"],[1,"row"],[1,"col-12"],["topBarLoaded",""],[1,"col-12","mt-4.5","vpn-table-container"],[1,"width-limiter"],[1,"rounded-elevated-box"],[1,"box-internal-container"],["cellspacing","0","cellpadding","0",1,"responsive-table-translucid","d-none","d-md-table"],[1,"data-column"],[1,"header-container"],[1,"header-text"],[1,"selectable",3,"click"],[1,"help-icon",3,"inline","matTooltip"],[3,"diameter",4,"ngIf"],[3,"diameter"]],template:function(e,i){1&e&&(V(0,Joe,5,6,"div",0),V(1,ese,75,65,"div",1)),2&e&&(w("ngIf",i.loading),c(1),w("ngIf",!i.loading))},dependencies:[Ft,Cn,vi,ec,as,sc,wt],styles:["span[_ngcontent-%COMP%]{overflow-wrap:break-word}.font-sm[_ngcontent-%COMP%]{font-size:.875rem!important;font-weight:lighter!important}.font-smaller[_ngcontent-%COMP%]{font-size:.8rem!important;font-weight:lighter!important}.uppercase[_ngcontent-%COMP%]{text-transform:uppercase}.single-line[_ngcontent-%COMP%], .header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%], .data-column[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.green-text[_ngcontent-%COMP%]{color:#2ecc54}.green-clear-text[_ngcontent-%COMP%]{color:#84c826}.yellow-text[_ngcontent-%COMP%]{color:#d48b05}.yellow-clear-text[_ngcontent-%COMP%]{color:orange}.red-text[_ngcontent-%COMP%]{color:#da3439}.red-clear-text[_ngcontent-%COMP%]{color:#ff393f}.grey-text[_ngcontent-%COMP%]{color:#777!important}table[_ngcontent-%COMP%]{width:100%}table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding-top:7px!important;padding-bottom:7px!important;font-size:12px!important;font-weight:400!important}.data-column[_ngcontent-%COMP%]{max-width:0;width:50%}.header-container[_ngcontent-%COMP%]{max-width:100%;display:inline-flex}.header-container[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{flex-grow:1}mat-spinner[_ngcontent-%COMP%]{display:inline-block;opacity:.5;margin-left:2px;position:relative;top:2px}mat-spinner[_ngcontent-%COMP%] circle{stroke:#f8f9f9}"]}),t})()},{path:"**",redirectTo:"status"}]},{path:"**",redirectTo:"/vpn/unavailable?problem=pk"}]},{path:"**",redirectTo:""}];let nse=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[H2.forRoot(tse,{useHash:!0}),H2]}),t})(),rse=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[Wn]}),t})();class ose{getTranslation(n){return ue(N(6297)(`./${n}.json`))}}let sse=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t}),t.\u0275inj=Nt({imports:[pE.forRoot({loader:{provide:jh,useClass:ose}}),pE]}),t})(),ase=(()=>{class t{shouldDetach(e){return!1}store(e,i){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,i){return!1}}return t.\u0275fac=function(e){return new(e||t)},t.\u0275prov=Ne({token:t,factory:t.\u0275fac}),t})();const lse={disabled:!0};let cse=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=Ht({type:t,bootstrap:[g1]}),t.\u0275inj=Nt({providers:[ef,{provide:a1,useValue:{duration:3e3,verticalPosition:"top"}},{provide:UL,useValue:{width:"600px",hasBackdrop:!0}},{provide:e1,useClass:tU},{provide:E2,useClass:ase},{provide:t1,useValue:lse}],imports:[ID,f8,D$,j8,nse,sse,tE,kU,Lg,fG,Kte,eE,cW,TG,VK,S$,rse,Vq,SW,uK]}),t})();Mc(Ct,[Nn,Ft,Am,Cn,as,sc,AP],[wt]),Mc(RP,[Nn,gi,Ft,hd,qa,Wr,Cn,vi,W1,as,Bd,sc,NP],[cD,wt]),dB().bootstrapModule(cse).catch(t=>console.log(t))},9774:function(de,ge,N){var O;!function(v){"use strict";var u,f=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,h=Math.ceil,M=Math.floor,p="[BigNumber Error] ",y=p+"Number primitive has more than 15 significant digits: ",x=1e14,T=14,S=9007199254740991,k=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],L=1e7,A=1e9;function B(Q){var ee=0|Q;return Q>0||Q===ee?ee:ee-1}function K(Q){for(var ee,ae,le=1,J=Q.length,Te=Q[0]+"";lett^ae?1:-1;for(ke=(Be=J.length)<(tt=Te.length)?Be:tt,Se=0;SeTe[Se]^ae?1:-1;return Be==tt?0:Be>tt^ae?1:-1}function ve(Q,ee,ae,le){if(Qae||Q!==(Q<0?h(Q):M(Q)))throw Error(p+(le||"Argument")+("number"==typeof Q?Qae?" out of range: ":" not an integer: ":" not a primitive number: ")+Q)}function Z(Q){return"[object Array]"==Object.prototype.toString.call(Q)}function X(Q){var ee=Q.c.length-1;return B(Q.e/T)==ee&&Q.c[ee]%2!=0}function he(Q,ee){return(Q.length>1?Q.charAt(0)+"."+Q.slice(1):Q)+(ee<0?"e":"e+")+ee}function q(Q,ee,ae){var le,J;if(ee<0){for(J=ae+".";++ee;J+=ae);Q=J+Q}else if(++ee>(le=Q.length)){for(J=ae,ee-=le;--ee;J+=ae);Q+=J}else ee=10;be/=10,ue++);return Ie.e=ue,void(Ie.c=[W])}De=W+""}else{if(!f.test(De=W+""))return le(Ie,De,me);Ie.s=45==De.charCodeAt(0)?(De=De.slice(1),-1):1}(ue=De.indexOf("."))>-1&&(De=De.replace(".","")),(be=De.search(/e/i))>0?(ue<0&&(ue=be),ue+=+De.slice(be+1),De=De.substring(0,be)):ue<0&&(ue=De.length)}else{if(ve(oe,2,zn.length,"Base"),De=W+"",10==oe)return Xe(Ie=new Ge(W instanceof Ge?W:De),Se+Ie.e+1,ke);if(me="number"==typeof W){if(0*W!=0)return le(Ie,De,me,oe);if(Ie.s=1/W<0?(De=De.slice(1),-1):1,Ge.DEBUG&&De.replace(/^0\.0*|\./,"").length>15)throw Error(y+W);me=!1}else Ie.s=45===De.charCodeAt(0)?(De=De.slice(1),-1):1;for(te=zn.slice(0,oe),ue=be=0,Me=De.length;beue){ue=Me;continue}}else if(!fe&&(De==De.toUpperCase()&&(De=De.toLowerCase())||De==De.toLowerCase()&&(De=De.toUpperCase()))){fe=!0,be=-1,ue=0;continue}return le(Ie,W+"",me,oe)}(ue=(De=ae(De,oe,10,Ie.s)).indexOf("."))>-1?De=De.replace(".",""):ue=De.length}for(be=0;48===De.charCodeAt(be);be++);for(Me=De.length;48===De.charCodeAt(--Me););if(De=De.slice(be,++Me)){if(Me-=be,me&&Ge.DEBUG&&Me>15&&(W>S||W!==M(W)))throw Error(y+Ie.s*W);if((ue=ue-be-1)>at)Ie.c=Ie.e=null;else if(ueme){if(--oe>0)for(Me+=".";oe--;Me+="0");}else if((oe+=ue-me)>0)for(ue+1==me&&(Me+=".");oe--;Me+="0");return W.s<0&&fe?"-"+Me:Me}function Oi(W,oe){var te,pe,fe=0;for(Z(W[0])&&(W=W[0]),te=new Ge(W[0]);++fe=10;fe/=10,pe++);return(te=pe+te*T-1)>at?W.c=W.e=null:te=10;me/=10,fe++);if((ue=oe-fe)<0)ue+=T,Ie=(Me=Ye[De=0])/ut[fe-(be=oe)-1]%10|0;else if((De=h((ue+1)/T))>=Ye.length){if(!pe)break e;for(;Ye.length<=De;Ye.push(0));Me=Ie=0,fe=1,be=(ue%=T)-T+1}else{for(Me=me=Ye[De],fe=1;me>=10;me/=10,fe++);Ie=(be=(ue%=T)-T+fe)<0?0:Me/ut[fe-be-1]%10|0}if(pe=pe||oe<0||null!=Ye[De+1]||(be<0?Me:Me%ut[fe-be-1]),pe=te<4?(Ie||pe)&&(0==te||te==(W.s<0?3:2)):Ie>5||5==Ie&&(4==te||pe||6==te&&(ue>0?be>0?Me/ut[fe-be]:0:Ye[De-1])%10&1||te==(W.s<0?8:7)),oe<1||!Ye[0])return Ye.length=0,pe?(Ye[0]=ut[(T-(oe-=W.e+1)%T)%T],W.e=-oe||0):Ye[0]=W.e=0,W;if(0==ue?(Ye.length=De,me=1,De--):(Ye.length=De+1,me=ut[T-ue],Ye[De]=be>0?M(Me/ut[fe-be]%ut[be])*me:0),pe)for(;;){if(0==De){for(ue=1,be=Ye[0];be>=10;be/=10,ue++);for(be=Ye[0]+=me,me=1;be>=10;be/=10,me++);ue!=me&&(W.e++,Ye[0]==x&&(Ye[0]=1));break}if(Ye[De]+=me,Ye[De]!=x)break;Ye[De--]=0,me=1}for(ue=Ye.length;0===Ye[--ue];Ye.pop());}W.e>at?W.c=W.e=null:W.e>>11))>=9e15?(fe=crypto.getRandomValues(new Uint32Array(2)),pe[Me]=fe[0],pe[Me+1]=fe[1]):(De.push(me%1e14),Me+=2);Me=be/2}else{if(!crypto.randomBytes)throw jt=!1,Error(p+"crypto unavailable");for(pe=crypto.randomBytes(be*=7);Me=9e15?crypto.randomBytes(7).copy(pe,Me):(De.push(me%1e14),Me+=7);Me=be/7}if(!jt)for(;Me=10;me/=10,Me++);Mefe-1&&(null==me[be+1]&&(me[be+1]=0),me[be+1]+=me[be]/fe|0,me[be]%=fe)}return me.reverse()}return function(te,pe,fe,ue,be){var me,Me,De,Ie,Ye,ut,mt,it,fn=te.indexOf("."),An=Se,bt=ke;for(fn>=0&&(Ie=Zn,Zn=0,te=te.replace(".",""),ut=(it=new Ge(pe)).pow(te.length-fn),Zn=Ie,it.c=oe(q(K(ut.c),ut.e,"0"),10,fe,W),it.e=it.c.length),De=Ie=(mt=oe(te,pe,fe,be?(me=zn,W):(me=W,zn))).length;0==mt[--Ie];mt.pop());if(!mt[0])return me.charAt(0);if(fn<0?--De:(ut.c=mt,ut.e=De,ut.s=ue,mt=(ut=ee(ut,it,An,bt,fe)).c,Ye=ut.r,De=ut.e),fn=mt[Me=De+An+1],Ie=fe/2,Ye=Ye||Me<0||null!=mt[Me+1],Ye=bt<4?(null!=fn||Ye)&&(0==bt||bt==(ut.s<0?3:2)):fn>Ie||fn==Ie&&(4==bt||Ye||6==bt&&1&mt[Me-1]||bt==(ut.s<0?8:7)),Me<1||!mt[0])te=Ye?q(me.charAt(1),-An,me.charAt(0)):me.charAt(0);else{if(mt.length=Me,Ye)for(--fe;++mt[--Me]>fe;)mt[Me]=0,Me||(++De,mt=[1].concat(mt));for(Ie=mt.length;!mt[--Ie];);for(fn=0,te="";fn<=Ie;te+=me.charAt(mt[fn++]));te=q(te,De,me.charAt(0))}return te}}(),ee=function(){function W(pe,fe,ue){var be,me,Me,De,Ie=0,Ye=pe.length,ut=fe%L,mt=fe/L|0;for(pe=pe.slice();Ye--;)Ie=((me=ut*(Me=pe[Ye]%L)+(be=mt*Me+(De=pe[Ye]/L|0)*ut)%L*L+Ie)/ue|0)+(be/L|0)+mt*De,pe[Ye]=me%ue;return Ie&&(pe=[Ie].concat(pe)),pe}function oe(pe,fe,ue,be){var me,Me;if(ue!=be)Me=ue>be?1:-1;else for(me=Me=0;mefe[me]?1:-1;break}return Me}function te(pe,fe,ue,be){for(var me=0;ue--;)pe[ue]-=me,pe[ue]=(me=pe[ue]1;pe.splice(0,1));}return function(pe,fe,ue,be,me){var Me,De,Ie,Ye,ut,mt,it,fn,An,bt,qt,Gn,oi,Kr,Io,Ai,ln,wi=pe.s==fe.s?1:-1,si=pe.c,Fn=fe.c;if(!(si&&si[0]&&Fn&&Fn[0]))return new Ge(pe.s&&fe.s&&(si?!Fn||si[0]!=Fn[0]:Fn)?si&&0==si[0]||!Fn?0*wi:wi/0:NaN);for(An=(fn=new Ge(wi)).c=[],wi=ue+(De=pe.e-fe.e)+1,me||(me=x,De=B(pe.e/T)-B(fe.e/T),wi=wi/T|0),Ie=0;Fn[Ie]==(si[Ie]||0);Ie++);if(Fn[Ie]>(si[Ie]||0)&&De--,wi<0)An.push(1),Ye=!0;else{for(Kr=si.length,Ai=Fn.length,Ie=0,wi+=2,(ut=M(me/(Fn[0]+1)))>1&&(Fn=W(Fn,ut,me),si=W(si,ut,me),Ai=Fn.length,Kr=si.length),oi=Ai,qt=(bt=si.slice(0,Ai)).length;qt=me/2&&Io++;do{if(ut=0,(Me=oe(Fn,bt,Ai,qt))<0){if(Gn=bt[0],Ai!=qt&&(Gn=Gn*me+(bt[1]||0)),(ut=M(Gn/Io))>1)for(ut>=me&&(ut=me-1),it=(mt=W(Fn,ut,me)).length,qt=bt.length;1==oe(mt,bt,it,qt);)ut--,te(mt,Ai=10;wi/=10,Ie++);Xe(fn,ue+(fn.e=Ie+De*T-1)+1,be,Ye)}else fn.e=De,fn.r=+Ye;return fn}}(),le=function(){var W=/^(-?)0([xbo])(?=\w[\w.]*$)/i,oe=/^([^.]+)\.$/,te=/^\.([^.]+)$/,pe=/^-?(Infinity|NaN)$/,fe=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(ue,be,me,Me){var De,Ie=me?be:be.replace(fe,"");if(pe.test(Ie))ue.s=isNaN(Ie)?null:Ie<0?-1:1,ue.c=ue.e=null;else{if(!me&&(Ie=Ie.replace(W,function(Ye,ut,mt){return De="x"==(mt=mt.toLowerCase())?16:"b"==mt?2:8,Me&&Me!=De?Ye:ut}),Me&&(De=Me,Ie=Ie.replace(oe,"$1").replace(te,"0.$1")),be!=Ie))return new Ge(Ie,De);if(Ge.DEBUG)throw Error(p+"Not a"+(Me?" base "+Me:"")+" number: "+be);ue.c=ue.e=ue.s=null}}}(),J.absoluteValue=J.abs=function(){var W=new Ge(this);return W.s<0&&(W.s=1),W},J.comparedTo=function(W,oe){return re(this,new Ge(W,oe))},J.decimalPlaces=J.dp=function(W,oe){var te,pe,fe;if(null!=W)return ve(W,0,A),null==oe?oe=ke:ve(oe,0,8),Xe(new Ge(this),W+this.e+1,oe);if(!(te=this.c))return null;if(pe=((fe=te.length-1)-B(this.e/T))*T,fe=te[fe])for(;fe%10==0;fe/=10,pe--);return pe<0&&(pe=0),pe},J.dividedBy=J.div=function(W,oe){return ee(this,new Ge(W,oe),Se,ke)},J.dividedToIntegerBy=J.idiv=function(W,oe){return ee(this,new Ge(W,oe),0,1)},J.exponentiatedBy=J.pow=function(W,oe){var te,pe,fe,be,me,Me,De,Ie=this;if((W=new Ge(W)).c&&!W.isInteger())throw Error(p+"Exponent not an integer: "+W);if(null!=oe&&(oe=new Ge(oe)),be=W.e>14,!Ie.c||!Ie.c[0]||1==Ie.c[0]&&!Ie.e&&1==Ie.c.length||!W.c||!W.c[0])return De=new Ge(Math.pow(+Ie.valueOf(),be?2-X(W):+W)),oe?De.mod(oe):De;if(me=W.s<0,oe){if(oe.c?!oe.c[0]:!oe.s)return new Ge(NaN);(pe=!me&&Ie.isInteger()&&oe.isInteger())&&(Ie=Ie.mod(oe))}else{if(W.e>9&&(Ie.e>0||Ie.e<-1||(0==Ie.e?Ie.c[0]>1||be&&Ie.c[1]>=24e7:Ie.c[0]<8e13||be&&Ie.c[0]<=9999975e7)))return fe=Ie.s<0&&X(W)?-0:0,Ie.e>-1&&(fe=1/fe),new Ge(me?1/fe:fe);Zn&&(fe=h(Zn/T+2))}for(be?(te=new Ge(.5),Me=X(W)):Me=W%2,me&&(W.s=1),De=new Ge(Te);;){if(Me){if(!(De=De.times(Ie)).c)break;fe?De.c.length>fe&&(De.c.length=fe):pe&&(De=De.mod(oe))}if(be){if(Xe(W=W.times(te),W.e+1,1),!W.c[0])break;be=W.e>14,Me=X(W)}else{if(!(W=M(W/2)))break;Me=W%2}Ie=Ie.times(Ie),fe?Ie.c&&Ie.c.length>fe&&(Ie.c.length=fe):pe&&(Ie=Ie.mod(oe))}return pe?De:(me&&(De=Te.div(De)),oe?De.mod(oe):fe?Xe(De,Zn,ke,void 0):De)},J.integerValue=function(W){var oe=new Ge(this);return null==W?W=ke:ve(W,0,8),Xe(oe,oe.e+1,W)},J.isEqualTo=J.eq=function(W,oe){return 0===re(this,new Ge(W,oe))},J.isFinite=function(){return!!this.c},J.isGreaterThan=J.gt=function(W,oe){return re(this,new Ge(W,oe))>0},J.isGreaterThanOrEqualTo=J.gte=function(W,oe){return 1===(oe=re(this,new Ge(W,oe)))||0===oe},J.isInteger=function(){return!!this.c&&B(this.e/T)>this.c.length-2},J.isLessThan=J.lt=function(W,oe){return re(this,new Ge(W,oe))<0},J.isLessThanOrEqualTo=J.lte=function(W,oe){return-1===(oe=re(this,new Ge(W,oe)))||0===oe},J.isNaN=function(){return!this.s},J.isNegative=function(){return this.s<0},J.isPositive=function(){return this.s>0},J.isZero=function(){return!!this.c&&0==this.c[0]},J.minus=function(W,oe){var te,pe,fe,ue,be=this,me=be.s;if(oe=(W=new Ge(W,oe)).s,!me||!oe)return new Ge(NaN);if(me!=oe)return W.s=-oe,be.plus(W);var Me=be.e/T,De=W.e/T,Ie=be.c,Ye=W.c;if(!Me||!De){if(!Ie||!Ye)return Ie?(W.s=-oe,W):new Ge(Ye?be:NaN);if(!Ie[0]||!Ye[0])return Ye[0]?(W.s=-oe,W):new Ge(Ie[0]?be:3==ke?-0:0)}if(Me=B(Me),De=B(De),Ie=Ie.slice(),me=Me-De){for((ue=me<0)?(me=-me,fe=Ie):(De=Me,fe=Ye),fe.reverse(),oe=me;oe--;fe.push(0));fe.reverse()}else for(pe=(ue=(me=Ie.length)<(oe=Ye.length))?me:oe,me=oe=0;oe0)for(;oe--;Ie[te++]=0);for(oe=x-1;pe>me;){if(Ie[--pe]=0;){for(te=0,ut=Gn[fe]%An,mt=Gn[fe]/An|0,ue=fe+(be=Me);ue>fe;)te=((De=ut*(De=qt[--be]%An)+(me=mt*De+(Ie=qt[be]/An|0)*ut)%An*An+it[ue]+te)/fn|0)+(me/An|0)+mt*Ie,it[ue--]=De%fn;it[ue]=te}return te?++pe:it.splice(0,1),dr(W,it,pe)},J.negated=function(){var W=new Ge(this);return W.s=-W.s||null,W},J.plus=function(W,oe){var te,pe=this,fe=pe.s;if(oe=(W=new Ge(W,oe)).s,!fe||!oe)return new Ge(NaN);if(fe!=oe)return W.s=-oe,pe.minus(W);var ue=pe.e/T,be=W.e/T,me=pe.c,Me=W.c;if(!ue||!be){if(!me||!Me)return new Ge(fe/0);if(!me[0]||!Me[0])return Me[0]?W:new Ge(me[0]?pe:0*fe)}if(ue=B(ue),be=B(be),me=me.slice(),fe=ue-be){for(fe>0?(be=ue,te=Me):(fe=-fe,te=me),te.reverse();fe--;te.push(0));te.reverse()}for((fe=me.length)-(oe=Me.length)<0&&(te=Me,Me=me,me=te,oe=fe),fe=0;oe;)fe=(me[--oe]=me[oe]+Me[oe]+fe)/x|0,me[oe]=x===me[oe]?0:me[oe]%x;return fe&&(me=[fe].concat(me),++be),dr(W,me,be)},J.precision=J.sd=function(W,oe){var te,pe,fe;if(null!=W&&W!==!!W)return ve(W,1,A),null==oe?oe=ke:ve(oe,0,8),Xe(new Ge(this),W,oe);if(!(te=this.c))return null;if(pe=(fe=te.length-1)*T+1,fe=te[fe]){for(;fe%10==0;fe/=10,pe--);for(fe=te[0];fe>=10;fe/=10,pe++);}return W&&this.e+1>pe&&(pe=this.e+1),pe},J.shiftedBy=function(W){return ve(W,-S,S),this.times("1e"+W)},J.squareRoot=J.sqrt=function(){var W,oe,te,pe,fe,ue=this,be=ue.c,me=ue.s,Me=ue.e,De=Se+4,Ie=new Ge("0.5");if(1!==me||!be||!be[0])return new Ge(!me||me<0&&(!be||be[0])?NaN:be?ue:1/0);if(0==(me=Math.sqrt(+ue))||me==1/0?(((oe=K(be)).length+Me)%2==0&&(oe+="0"),me=Math.sqrt(oe),Me=B((Me+1)/2)-(Me<0||Me%2),te=new Ge(oe=me==1/0?"1e"+Me:(oe=me.toExponential()).slice(0,oe.indexOf("e")+1)+Me)):te=new Ge(me+""),te.c[0])for((me=(Me=te.e)+De)<3&&(me=0);;)if(te=Ie.times((fe=te).plus(ee(ue,fe,De,1))),K(fe.c).slice(0,me)===(oe=K(te.c)).slice(0,me)){if(te.e0&&ut>0){for(Me=Ye.substr(0,pe=ut%ue||ue);pe0&&(Me+=me+Ye.slice(pe)),Ie&&(Me="-"+Me)}te=De?Me+On.decimalSeparator+((be=+On.fractionGroupSize)?De.replace(new RegExp("\\d{"+be+"}\\B","g"),"$&"+On.fractionGroupSeparator):De):Me}return te},J.toFraction=function(W){var oe,te,pe,fe,ue,be,me,Me,De,Ie,Ye,ut,mt=this,it=mt.c;if(null!=W&&(!(Me=new Ge(W)).isInteger()&&(Me.c||1!==Me.s)||Me.lt(Te)))throw Error(p+"Argument "+(Me.isInteger()?"out of range: ":"not an integer: ")+W);if(!it)return mt.toString();for(te=new Ge(Te),Ie=pe=new Ge(Te),fe=De=new Ge(Te),ut=K(it),be=te.e=ut.length-mt.e-1,te.c[0]=k[(me=be%T)<0?T+me:me],W=!W||Me.comparedTo(te)>0?be>0?te:Ie:Me,me=at,at=1/0,Me=new Ge(ut),De.c[0]=0;Ye=ee(Me,te,0,1),1!=(ue=pe.plus(Ye.times(fe))).comparedTo(W);)pe=fe,fe=ue,Ie=De.plus(Ye.times(ue=Ie)),De=ue,te=Me.minus(Ye.times(ue=te)),Me=ue;return ue=ee(W.minus(pe),fe,0,1),De=De.plus(ue.times(Ie)),pe=pe.plus(ue.times(fe)),De.s=Ie.s=mt.s,oe=ee(Ie,fe,be*=2,ke).minus(mt).abs().comparedTo(ee(De,pe,be,ke).minus(mt).abs())<1?[Ie.toString(),fe.toString()]:[De.toString(),pe.toString()],at=me,oe},J.toNumber=function(){return+this},J.toPrecision=function(W,oe){return null!=W&&ve(W,1,A),Pi(this,W,oe,2)},J.toString=function(W){var oe,pe=this.s,fe=this.e;return null===fe?pe?(oe="Infinity",pe<0&&(oe="-"+oe)):oe="NaN":(oe=K(this.c),null==W?oe=fe<=Be||fe>=tt?he(oe,fe):q(oe,fe,"0"):(ve(W,2,zn.length,"Base"),oe=ae(q(oe,fe,"0"),10,W,pe,!0)),pe<0&&this.c[0]&&(oe="-"+oe)),oe},J.valueOf=J.toJSON=function(){var W,te=this.e;return null===te?this.toString():(W=K(this.c),W=te<=Be||te>=tt?he(W,te):q(W,te,"0"),this.s<0?"-"+W:W)},J._isBigNumber=!0,null!=Q&&Ge.set(Q),Ge}(),u.default=u.BigNumber=u,void 0!==(O=function(){return u}.call(ge,N,ge,de))&&(de.exports=O)}()},6149:(de,ge,N)=>{var O=N(5979)();O.helpers=N(3305),N(3533)(O),O.defaults=N(9800),O.Element=N(8839),O.elements=N(9931),O.Interaction=N(2814),O.layouts=N(2294),O.platform=N(8244),O.plugins=N(2445),O.Ticks=N(8347),N(8103)(O),N(1047)(O),N(7897)(O),N(5464)(O),N(6308)(O),N(480)(O),N(8351)(O),N(4977)(O),N(1704)(O),N(1486)(O),N(8726)(O),N(4215)(O),N(2690)(O),N(4033)(O),N(787)(O),N(6769)(O),N(6580)(O),N(4657)(O),N(1895)(O),N(6038)(O),N(2898)(O),N(3414)(O),N(6667)(O),N(402)(O),N(846)(O),N(9377)(O);var v=N(6747);for(var u in v)v.hasOwnProperty(u)&&O.plugins.register(v[u]);O.platform.initialize(),de.exports=O,typeof window<"u"&&(window.Chart=O),O.Legend=v.legend._element,O.Title=v.title._element,O.pluginService=O.plugins,O.PluginBase=O.Element.extend({}),O.canvasHelpers=O.helpers.canvas,O.layoutService=O.layouts},6038:de=>{"use strict";de.exports=function(ge){ge.Bar=function(N,O){return O.type="bar",new ge(N,O)}}},2898:de=>{"use strict";de.exports=function(ge){ge.Bubble=function(N,O){return O.type="bubble",new ge(N,O)}}},3414:de=>{"use strict";de.exports=function(ge){ge.Doughnut=function(N,O){return O.type="doughnut",new ge(N,O)}}},6667:de=>{"use strict";de.exports=function(ge){ge.Line=function(N,O){return O.type="line",new ge(N,O)}}},402:de=>{"use strict";de.exports=function(ge){ge.PolarArea=function(N,O){return O.type="polarArea",new ge(N,O)}}},846:de=>{"use strict";de.exports=function(ge){ge.Radar=function(N,O){return O.type="radar",new ge(N,O)}}},9377:de=>{"use strict";de.exports=function(ge){ge.Scatter=function(N,O){return O.type="scatter",new ge(N,O)}}},2690:(de,ge,N)=>{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),O._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(p,y){var x="";return p.length>0&&(p[0].yLabel?x=p[0].yLabel:y.labels.length>0&&p[0].index0?Math.min(x,k-S):x,S=k;return x}(x,U):-1,{min:re,pixels:U,start:L,end:A,stackCount:T,scale:x}},calculateBarValuePixels:function(y,x){var ve,Z,X,he,q,Q,T=this,S=T.chart,k=T.getMeta(),L=T.getValueScale(),A=S.data.datasets,U=L.getRightValue(A[y].data[x]),B=L.options.stacked,K=k.stack,re=0;if(B||void 0===B&&void 0!==K)for(ve=0;ve=0&&X>0)&&(re+=X));return he=L.getPixelForValue(re),{size:Q=((q=L.getPixelForValue(re+U))-he)/2,base:he,head:q,center:q+Q/2}},calculateBarIndexPixels:function(y,x,T){var k=T.scale.options,L="flex"===k.barThickness?function M(p,y,x){var T=y.pixels,S=T[p],k=p>0?T[p-1]:null,L=p{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(f,h){return(h.datasets[f.datasetIndex].label||"")+": ("+f.xLabel+", "+f.yLabel+", "+h.datasets[f.datasetIndex].data[f.index].r+")"}}}}),de.exports=function(f){f.controllers.bubble=f.DatasetController.extend({dataElementType:v.Point,update:function(h){var M=this,p=M.getMeta();u.each(p.data,function(x,T){M.updateElement(x,T,h)})},updateElement:function(h,M,p){var y=this,x=y.getMeta(),T=h.custom||{},S=y.getScaleForId(x.xAxisID),k=y.getScaleForId(x.yAxisID),L=y._resolveElementOptions(h,M),A=y.getDataset().data[M],U=y.index,B=p?S.getPixelForDecimal(.5):S.getPixelForValue("object"==typeof A?A:NaN,M,U),K=p?k.getBasePixel():k.getPixelForValue(A,M,U);h._xScale=S,h._yScale=k,h._options=L,h._datasetIndex=U,h._index=M,h._model={backgroundColor:L.backgroundColor,borderColor:L.borderColor,borderWidth:L.borderWidth,hitRadius:L.hitRadius,pointStyle:L.pointStyle,radius:p?0:L.radius,skip:T.skip||isNaN(B)||isNaN(K),x:B,y:K},h.pivot()},setHoverStyle:function(h){var M=h._model,p=h._options;M.backgroundColor=u.valueOrDefault(p.hoverBackgroundColor,u.getHoverColor(p.backgroundColor)),M.borderColor=u.valueOrDefault(p.hoverBorderColor,u.getHoverColor(p.borderColor)),M.borderWidth=u.valueOrDefault(p.hoverBorderWidth,p.borderWidth),M.radius=p.radius+p.hoverRadius},removeHoverStyle:function(h){var M=h._model,p=h._options;M.backgroundColor=p.backgroundColor,M.borderColor=p.borderColor,M.borderWidth=p.borderWidth,M.radius=p.radius},_resolveElementOptions:function(h,M){var B,K,re,p=this,y=p.chart,T=y.data.datasets[p.index],S=h.custom||{},k=y.options.elements.point,L=u.options.resolve,A=T.data[M],U={},ve={chart:y,dataIndex:M,dataset:T,datasetIndex:p.index},Z=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle"];for(B=0,K=Z.length;B{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(f){var h=[];h.push('
    ');var M=f.data,p=M.datasets,y=M.labels;if(p.length)for(var x=0;x'),y[x]&&h.push(y[x]),h.push("");return h.push("
"),h.join("")},legend:{labels:{generateLabels:function(f){var h=f.data;return h.labels.length&&h.datasets.length?h.labels.map(function(M,p){var y=f.getDatasetMeta(0),x=h.datasets[0],T=y.data[p],S=T&&T.custom||{},k=u.valueAtIndexOrDefault,L=f.options.elements.arc;return{text:M,fillStyle:S.backgroundColor?S.backgroundColor:k(x.backgroundColor,p,L.backgroundColor),strokeStyle:S.borderColor?S.borderColor:k(x.borderColor,p,L.borderColor),lineWidth:S.borderWidth?S.borderWidth:k(x.borderWidth,p,L.borderWidth),hidden:isNaN(x.data[p])||y.data[p].hidden,index:p}}):[]}},onClick:function(f,h){var y,x,T,M=h.index,p=this.chart;for(y=0,x=(p.data.datasets||[]).length;y=Math.PI?-1:re<-Math.PI?1:0))+K,Z={x:Math.cos(re),y:Math.sin(re)},X={x:Math.cos(ve),y:Math.sin(ve)},he=re<=0&&ve>=0||re<=2*Math.PI&&2*Math.PI<=ve,q=re<=.5*Math.PI&&.5*Math.PI<=ve||re<=2.5*Math.PI&&2.5*Math.PI<=ve,Q=re<=-Math.PI&&-Math.PI<=ve||re<=Math.PI&&Math.PI<=ve,ee=re<=.5*-Math.PI&&.5*-Math.PI<=ve||re<=1.5*Math.PI&&1.5*Math.PI<=ve,ae=B/100,le={x:Q?-1:Math.min(Z.x*(Z.x<0?1:ae),X.x*(X.x<0?1:ae)),y:ee?-1:Math.min(Z.y*(Z.y<0?1:ae),X.y*(X.y<0?1:ae))},J={x:he?1:Math.max(Z.x*(Z.x>0?1:ae),X.x*(X.x>0?1:ae)),y:q?1:Math.max(Z.y*(Z.y>0?1:ae),X.y*(X.y>0?1:ae))},Te={width:.5*(J.x-le.x),height:.5*(J.y-le.y)};L=Math.min(S/Te.width,k/Te.height),A={x:-.5*(J.x+le.x),y:-.5*(J.y+le.y)}}p.borderWidth=M.getMaxBorderWidth(U.data),p.outerRadius=Math.max((L-p.borderWidth)/2,0),p.innerRadius=Math.max(B?p.outerRadius/100*B:0,0),p.radiusLength=(p.outerRadius-p.innerRadius)/p.getVisibleDatasetCount(),p.offsetX=A.x*p.outerRadius,p.offsetY=A.y*p.outerRadius,U.total=M.calculateTotal(),M.outerRadius=p.outerRadius-p.radiusLength*M.getRingIndex(M.index),M.innerRadius=Math.max(M.outerRadius-p.radiusLength,0),u.each(U.data,function(Se,ke){M.updateElement(Se,ke,h)})},updateElement:function(h,M,p){var y=this,x=y.chart,T=x.chartArea,S=x.options,k=S.animation,L=(T.left+T.right)/2,A=(T.top+T.bottom)/2,U=S.rotation,B=S.rotation,K=y.getDataset(),re=p&&k.animateRotate||h.hidden?0:y.calculateCircumference(K.data[M])*(S.circumference/(2*Math.PI));u.extend(h,{_datasetIndex:y.index,_index:M,_model:{x:L+x.offsetX,y:A+x.offsetY,startAngle:U,endAngle:B,circumference:re,outerRadius:p&&k.animateScale?0:y.outerRadius,innerRadius:p&&k.animateScale?0:y.innerRadius,label:(0,u.valueAtIndexOrDefault)(K.label,M,x.data.labels[M])}});var he=h._model;this.removeHoverStyle(h),(!p||!k.animateRotate)&&(he.startAngle=0===M?S.rotation:y.getMeta().data[M-1]._model.endAngle,he.endAngle=he.startAngle+he.circumference),h.pivot()},removeHoverStyle:function(h){f.DatasetController.prototype.removeHoverStyle.call(this,h,this.chart.options.elements.arc)},calculateTotal:function(){var y,h=this.getDataset(),M=this.getMeta(),p=0;return u.each(M.data,function(x,T){y=h.data[T],!isNaN(y)&&!x.hidden&&(p+=Math.abs(y))}),p},calculateCircumference:function(h){var M=this.getMeta().total;return M>0&&!isNaN(h)?2*Math.PI*(Math.abs(h)/M):0},getMaxBorderWidth:function(h){for(var x,T,M=0,p=this.index,y=h.length,S=0;S(M=(x=h[S]._model?h[S]._model.borderWidth:0)>M?x:M)?T:M;return M}})}},6769:(de,ge,N)=>{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),de.exports=function(f){function h(M,p){return u.valueOrDefault(M.showLine,p.showLines)}f.controllers.line=f.DatasetController.extend({datasetElementType:v.Line,dataElementType:v.Point,update:function(M){var A,U,B,p=this,y=p.getMeta(),x=y.dataset,T=y.data||[],S=p.chart.options,k=S.elements.line,L=p.getScaleForId(y.yAxisID),K=p.getDataset(),re=h(K,S);for(re&&(B=x.custom||{},void 0!==K.tension&&void 0===K.lineTension&&(K.lineTension=K.tension),x._scale=L,x._datasetIndex=p.index,x._children=T,x._model={spanGaps:K.spanGaps?K.spanGaps:S.spanGaps,tension:B.tension?B.tension:u.valueOrDefault(K.lineTension,k.tension),backgroundColor:B.backgroundColor?B.backgroundColor:K.backgroundColor||k.backgroundColor,borderWidth:B.borderWidth?B.borderWidth:K.borderWidth||k.borderWidth,borderColor:B.borderColor?B.borderColor:K.borderColor||k.borderColor,borderCapStyle:B.borderCapStyle?B.borderCapStyle:K.borderCapStyle||k.borderCapStyle,borderDash:B.borderDash?B.borderDash:K.borderDash||k.borderDash,borderDashOffset:B.borderDashOffset?B.borderDashOffset:K.borderDashOffset||k.borderDashOffset,borderJoinStyle:B.borderJoinStyle?B.borderJoinStyle:K.borderJoinStyle||k.borderJoinStyle,fill:B.fill?B.fill:void 0!==K.fill?K.fill:k.fill,steppedLine:B.steppedLine?B.steppedLine:u.valueOrDefault(K.steppedLine,k.stepped),cubicInterpolationMode:B.cubicInterpolationMode?B.cubicInterpolationMode:u.valueOrDefault(K.cubicInterpolationMode,k.cubicInterpolationMode)},x.pivot()),A=0,U=T.length;A{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(f){var h=[];h.push('
    ');var M=f.data,p=M.datasets,y=M.labels;if(p.length)for(var x=0;x'),y[x]&&h.push(y[x]),h.push("");return h.push("
"),h.join("")},legend:{labels:{generateLabels:function(f){var h=f.data;return h.labels.length&&h.datasets.length?h.labels.map(function(M,p){var y=f.getDatasetMeta(0),x=h.datasets[0],S=y.data[p].custom||{},k=u.valueAtIndexOrDefault,L=f.options.elements.arc;return{text:M,fillStyle:S.backgroundColor?S.backgroundColor:k(x.backgroundColor,p,L.backgroundColor),strokeStyle:S.borderColor?S.borderColor:k(x.borderColor,p,L.borderColor),lineWidth:S.borderWidth?S.borderWidth:k(x.borderWidth,p,L.borderWidth),hidden:isNaN(x.data[p])||y.data[p].hidden,index:p}}):[]}},onClick:function(f,h){var y,x,T,M=h.index,p=this.chart;for(y=0,x=(p.data.datasets||[]).length;y0&&!isNaN(h)?2*Math.PI/M:0}})}},4657:(de,ge,N)=>{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),de.exports=function(f){f.controllers.radar=f.DatasetController.extend({datasetElementType:v.Line,dataElementType:v.Point,linkScales:u.noop,update:function(h){var M=this,p=M.getMeta(),x=p.data,T=p.dataset.custom||{},S=M.getDataset(),k=M.chart.options.elements.line,L=M.chart.scale;void 0!==S.tension&&void 0===S.lineTension&&(S.lineTension=S.tension),u.extend(p.dataset,{_datasetIndex:M.index,_scale:L,_children:x,_loop:!0,_model:{tension:T.tension?T.tension:u.valueOrDefault(S.lineTension,k.tension),backgroundColor:T.backgroundColor?T.backgroundColor:S.backgroundColor||k.backgroundColor,borderWidth:T.borderWidth?T.borderWidth:S.borderWidth||k.borderWidth,borderColor:T.borderColor?T.borderColor:S.borderColor||k.borderColor,fill:T.fill?T.fill:void 0!==S.fill?S.fill:k.fill,borderCapStyle:T.borderCapStyle?T.borderCapStyle:S.borderCapStyle||k.borderCapStyle,borderDash:T.borderDash?T.borderDash:S.borderDash||k.borderDash,borderDashOffset:T.borderDashOffset?T.borderDashOffset:S.borderDashOffset||k.borderDashOffset,borderJoinStyle:T.borderJoinStyle?T.borderJoinStyle:S.borderJoinStyle||k.borderJoinStyle}}),p.dataset.pivot(),u.each(x,function(A,U){M.updateElement(A,U,h)},M),M.updateBezierControlPoints()},updateElement:function(h,M,p){var y=this,x=h.custom||{},T=y.getDataset(),S=y.chart.scale,k=y.chart.options.elements.point,L=S.getPointPositionForValue(M,T.data[M]);void 0!==T.radius&&void 0===T.pointRadius&&(T.pointRadius=T.radius),void 0!==T.hitRadius&&void 0===T.pointHitRadius&&(T.pointHitRadius=T.hitRadius),u.extend(h,{_datasetIndex:y.index,_index:M,_scale:S,_model:{x:p?S.xCenter:L.x,y:p?S.yCenter:L.y,tension:x.tension?x.tension:u.valueOrDefault(T.lineTension,y.chart.options.elements.line.tension),radius:x.radius?x.radius:u.valueAtIndexOrDefault(T.pointRadius,M,k.radius),backgroundColor:x.backgroundColor?x.backgroundColor:u.valueAtIndexOrDefault(T.pointBackgroundColor,M,k.backgroundColor),borderColor:x.borderColor?x.borderColor:u.valueAtIndexOrDefault(T.pointBorderColor,M,k.borderColor),borderWidth:x.borderWidth?x.borderWidth:u.valueAtIndexOrDefault(T.pointBorderWidth,M,k.borderWidth),pointStyle:x.pointStyle?x.pointStyle:u.valueAtIndexOrDefault(T.pointStyle,M,k.pointStyle),hitRadius:x.hitRadius?x.hitRadius:u.valueAtIndexOrDefault(T.pointHitRadius,M,k.hitRadius)}}),h._model.skip=x.skip?x.skip:isNaN(h._model.x)||isNaN(h._model.y)},updateBezierControlPoints:function(){var h=this.chart.chartArea,M=this.getMeta();u.each(M.data,function(p,y){var x=p._model,T=u.splineCurve(u.previousItem(M.data,y,!0)._model,x,u.nextItem(M.data,y,!0)._model,x.tension);x.controlPointPreviousX=Math.max(Math.min(T.previous.x,h.right),h.left),x.controlPointPreviousY=Math.max(Math.min(T.previous.y,h.bottom),h.top),x.controlPointNextX=Math.max(Math.min(T.next.x,h.right),h.left),x.controlPointNextY=Math.max(Math.min(T.next.y,h.bottom),h.top),p.pivot()})},setHoverStyle:function(h){var M=this.chart.data.datasets[h._datasetIndex],p=h.custom||{},y=h._index,x=h._model;x.radius=p.hoverRadius?p.hoverRadius:u.valueAtIndexOrDefault(M.pointHoverRadius,y,this.chart.options.elements.point.hoverRadius),x.backgroundColor=p.hoverBackgroundColor?p.hoverBackgroundColor:u.valueAtIndexOrDefault(M.pointHoverBackgroundColor,y,u.getHoverColor(x.backgroundColor)),x.borderColor=p.hoverBorderColor?p.hoverBorderColor:u.valueAtIndexOrDefault(M.pointHoverBorderColor,y,u.getHoverColor(x.borderColor)),x.borderWidth=p.hoverBorderWidth?p.hoverBorderWidth:u.valueAtIndexOrDefault(M.pointHoverBorderWidth,y,x.borderWidth)},removeHoverStyle:function(h){var M=this.chart.data.datasets[h._datasetIndex],p=h.custom||{},y=h._index,x=h._model,T=this.chart.options.elements.point;x.radius=p.radius?p.radius:u.valueAtIndexOrDefault(M.pointRadius,y,T.radius),x.backgroundColor=p.backgroundColor?p.backgroundColor:u.valueAtIndexOrDefault(M.pointBackgroundColor,y,T.backgroundColor),x.borderColor=p.borderColor?p.borderColor:u.valueAtIndexOrDefault(M.pointBorderColor,y,T.borderColor),x.borderWidth=p.borderWidth?p.borderWidth:u.valueAtIndexOrDefault(M.pointBorderWidth,y,T.borderWidth)}})}},1895:(de,ge,N)=>{"use strict";N(9800)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(v){return"("+v.xLabel+", "+v.yLabel+")"}}}}),de.exports=function(v){v.controllers.scatter=v.controllers.line}},8103:(de,ge,N)=>{"use strict";var O=N(9800),v=N(8839),u=N(3305);O._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:u.noop,onComplete:u.noop}}),de.exports=function(f){f.Animation=v.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),f.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(h,M,p,y){var T,S,x=this.animations;for(M.chart=h,y||(h.animating=!0),T=0,S=x.length;T1&&(p=Math.floor(h.dropFrames),h.dropFrames=h.dropFrames%1),h.advance(1+p);var y=Date.now();h.dropFrames+=(y-M)/h.frameDuration,h.animations.length>0&&h.requestAnimationFrame()},advance:function(h){for(var p,y,M=this.animations,x=0;x=p.numSteps?(u.callback(p.onAnimationComplete,[p],y),y.animating=!1,M.splice(x,1)):++x}},Object.defineProperty(f.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(f.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(h){this.chart=h}})}},1047:(de,ge,N)=>{"use strict";var O=N(9800),v=N(3305),u=N(2814),f=N(2294),h=N(8244),M=N(2445);de.exports=function(p){function T(S){return"top"===S||"bottom"===S}p.types={},p.instances={},p.controllers={},v.extend(p.prototype,{construct:function(S,k){var L=this;k=function y(S){var k=(S=S||{}).data=S.data||{};return k.datasets=k.datasets||[],k.labels=k.labels||[],S.options=v.configMerge(O.global,O[S.type],S.options||{}),S}(k);var A=h.acquireContext(S,k),U=A&&A.canvas,B=U&&U.height,K=U&&U.width;L.id=v.uid(),L.ctx=A,L.canvas=U,L.config=k,L.width=K,L.height=B,L.aspectRatio=B?K/B:null,L.options=k.options,L._bufferedRender=!1,L.chart=L,L.controller=L,p.instances[L.id]=L,Object.defineProperty(L,"data",{get:function(){return L.config.data},set:function(re){L.config.data=re}}),A&&U?(L.initialize(),L.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var S=this;return M.notify(S,"beforeInit"),v.retinaScale(S,S.options.devicePixelRatio),S.bindEvents(),S.options.responsive&&S.resize(!0),S.ensureScalesHaveIDs(),S.buildOrUpdateScales(),S.initToolTip(),M.notify(S,"afterInit"),S},clear:function(){return v.canvas.clear(this),this},stop:function(){return p.animationService.cancelAnimation(this),this},resize:function(S){var k=this,L=k.options,A=k.canvas,U=L.maintainAspectRatio&&k.aspectRatio||null,B=Math.max(0,Math.floor(v.getMaximumWidth(A))),K=Math.max(0,Math.floor(U?B/U:v.getMaximumHeight(A)));if((k.width!==B||k.height!==K)&&(A.width=k.width=B,A.height=k.height=K,A.style.width=B+"px",A.style.height=K+"px",v.retinaScale(k,L.devicePixelRatio),!S)){var re={width:B,height:K};M.notify(k,"resize",[re]),k.options.onResize&&k.options.onResize(k,re),k.stop(),k.update(k.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var S=this.options,k=S.scales||{},L=S.scale;v.each(k.xAxes,function(A,U){A.id=A.id||"x-axis-"+U}),v.each(k.yAxes,function(A,U){A.id=A.id||"y-axis-"+U}),L&&(L.id=L.id||"scale")},buildOrUpdateScales:function(){var S=this,k=S.options,L=S.scales||{},A=[],U=Object.keys(L).reduce(function(B,K){return B[K]=!1,B},{});k.scales&&(A=A.concat((k.scales.xAxes||[]).map(function(B){return{options:B,dtype:"category",dposition:"bottom"}}),(k.scales.yAxes||[]).map(function(B){return{options:B,dtype:"linear",dposition:"left"}}))),k.scale&&A.push({options:k.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),v.each(A,function(B){var K=B.options,re=K.id,ve=v.valueOrDefault(K.type,B.dtype);T(K.position)!==T(B.dposition)&&(K.position=B.dposition),U[re]=!0;var Z=null;if(re in L&&L[re].type===ve)(Z=L[re]).options=K,Z.ctx=S.ctx,Z.chart=S;else{var X=p.scaleService.getScaleConstructor(ve);if(!X)return;Z=new X({id:re,type:ve,options:K,ctx:S.ctx,chart:S}),L[Z.id]=Z}Z.mergeTicksOptions(),B.isDefault&&(S.scale=Z)}),v.each(U,function(B,K){B||delete L[K]}),S.scales=L,p.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var S=this,k=[],L=[];return v.each(S.data.datasets,function(A,U){var B=S.getDatasetMeta(U),K=A.type||S.config.type;if(B.type&&B.type!==K&&(S.destroyDatasetMeta(U),B=S.getDatasetMeta(U)),B.type=K,k.push(B.type),B.controller)B.controller.updateIndex(U),B.controller.linkScales();else{var re=p.controllers[B.type];if(void 0===re)throw new Error('"'+B.type+'" is not a chart type.');B.controller=new re(S,U),L.push(B.controller)}},S),L},resetElements:function(){var S=this;v.each(S.data.datasets,function(k,L){S.getDatasetMeta(L).controller.reset()},S)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(S){var k=this;if((!S||"object"!=typeof S)&&(S={duration:S,lazy:arguments[1]}),function x(S){var k=S.options;v.each(S.scales,function(L){f.removeBox(S,L)}),k=v.configMerge(p.defaults.global,p.defaults[S.config.type],k),S.options=S.config.options=k,S.ensureScalesHaveIDs(),S.buildOrUpdateScales(),S.tooltip._options=k.tooltips,S.tooltip.initialize()}(k),M._invalidate(k),!1!==M.notify(k,"beforeUpdate")){k.tooltip._data=k.data;var L=k.buildOrUpdateControllers();v.each(k.data.datasets,function(A,U){k.getDatasetMeta(U).controller.buildOrUpdateElements()},k),k.updateLayout(),k.options.animation&&k.options.animation.duration&&v.each(L,function(A){A.reset()}),k.updateDatasets(),k.tooltip.initialize(),k.lastActive=[],M.notify(k,"afterUpdate"),k._bufferedRender?k._bufferedRequest={duration:S.duration,easing:S.easing,lazy:S.lazy}:k.render(S)}},updateLayout:function(){var S=this;!1!==M.notify(S,"beforeLayout")&&(f.update(this,this.width,this.height),M.notify(S,"afterScaleUpdate"),M.notify(S,"afterLayout"))},updateDatasets:function(){var S=this;if(!1!==M.notify(S,"beforeDatasetsUpdate")){for(var k=0,L=S.data.datasets.length;k"u"&&0!==U.duration)){var K=new p.Animation({numSteps:(L||U.duration)/16.66,easing:S.easing||U.easing,render:function(re,ve){var X=ve.currentStep,he=X/ve.numSteps;re.draw((0,v.easing.effects[ve.easing])(he),he,X)},onAnimationProgress:U.onProgress,onAnimationComplete:B});p.animationService.addAnimation(k,K,L,A)}else k.draw(),B(new p.Animation({numSteps:0,chart:k}));return k}},draw:function(S){var k=this;k.clear(),v.isNullOrUndef(S)&&(S=1),k.transition(S),!1!==M.notify(k,"beforeDraw",[S])&&(v.each(k.boxes,function(L){L.draw(k.chartArea)},k),k.scale&&k.scale.draw(),k.drawDatasets(S),k._drawTooltip(S),M.notify(k,"afterDraw",[S]))},transition:function(S){for(var k=this,L=0,A=(k.data.datasets||[]).length;L=0;--L)k.isDatasetVisible(L)&&k.drawDataset(L,S);M.notify(k,"afterDatasetsDraw",[S])}},drawDataset:function(S,k){var L=this,A=L.getDatasetMeta(S),U={meta:A,index:S,easingValue:k};!1!==M.notify(L,"beforeDatasetDraw",[U])&&(A.controller.draw(k),M.notify(L,"afterDatasetDraw",[U]))},_drawTooltip:function(S){var k=this,L=k.tooltip,A={tooltip:L,easingValue:S};!1!==M.notify(k,"beforeTooltipDraw",[A])&&(L.draw(),M.notify(k,"afterTooltipDraw",[A]))},getElementAtEvent:function(S){return u.modes.single(this,S)},getElementsAtEvent:function(S){return u.modes.label(this,S,{intersect:!0})},getElementsAtXAxis:function(S){return u.modes["x-axis"](this,S,{intersect:!0})},getElementsAtEventForMode:function(S,k,L){var A=u.modes[k];return"function"==typeof A?A(this,S,L):[]},getDatasetAtEvent:function(S){return u.modes.dataset(this,S,{intersect:!0})},getDatasetMeta:function(S){var k=this,L=k.data.datasets[S];L._meta||(L._meta={});var A=L._meta[k.id];return A||(A=L._meta[k.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),A},getVisibleDatasetCount:function(){for(var S=0,k=0,L=this.data.datasets.length;k{"use strict";var O=N(3305);de.exports=function(v){var u=["push","pop","shift","splice","unshift"];function h(M,p){var y=M._chartjs;if(y){var x=y.listeners,T=x.indexOf(p);-1!==T&&x.splice(T,1),!(x.length>0)&&(u.forEach(function(S){delete M[S]}),delete M._chartjs)}}v.DatasetController=function(M,p){this.initialize(M,p)},O.extend(v.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(M,p){var y=this;y.chart=M,y.index=p,y.linkScales(),y.addElements()},updateIndex:function(M){this.index=M},linkScales:function(){var M=this,p=M.getMeta(),y=M.getDataset();(null===p.xAxisID||!(p.xAxisID in M.chart.scales))&&(p.xAxisID=y.xAxisID||M.chart.options.scales.xAxes[0].id),(null===p.yAxisID||!(p.yAxisID in M.chart.scales))&&(p.yAxisID=y.yAxisID||M.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(M){return this.chart.scales[M]},reset:function(){this.update(!0)},destroy:function(){this._data&&h(this._data,this)},createMetaDataset:function(){var M=this,p=M.datasetElementType;return p&&new p({_chart:M.chart,_datasetIndex:M.index})},createMetaData:function(M){var p=this,y=p.dataElementType;return y&&new y({_chart:p.chart,_datasetIndex:p.index,_index:M})},addElements:function(){var T,S,M=this,p=M.getMeta(),y=M.getDataset().data||[],x=p.data;for(T=0,S=y.length;Tx&&M.insertElements(x,T-x)},insertElements:function(M,p){for(var y=0;y{"use strict";var O=N(3305);de.exports={_set:function(v,u){return O.merge(this[v]||(this[v]={}),u)}}},8839:(de,ge,N)=>{"use strict";var O=N(7726),v=N(3305),f=function(h){v.extend(this,h),this.initialize.apply(this,arguments)};v.extend(f.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var h=this;return h._view||(h._view=v.clone(h._model)),h._start={},h},transition:function(h){var M=this,p=M._model,y=M._start,x=M._view;return p&&1!==h?(x||(x=M._view={}),y||(y=M._start={}),function u(h,M,p,y){var T,S,k,L,A,U,B,K,re,x=Object.keys(p);for(T=0,S=x.length;T{"use strict";var O=N(7726),v=N(9800),u=N(3305);de.exports=function(f){function h(y,x,T){var S;return"string"==typeof y?(S=parseInt(y,10),-1!==y.indexOf("%")&&(S=S/100*x.parentNode[T])):S=y,S}function M(y){return null!=y&&"none"!==y}function p(y,x,T){var S=document.defaultView,k=y.parentNode,L=S.getComputedStyle(y)[x],A=S.getComputedStyle(k)[x],U=M(L),B=M(A),K=Number.POSITIVE_INFINITY;return U||B?Math.min(U?h(L,y,T):K,B?h(A,k,T):K):"none"}u.configMerge=function(){return u.merge(u.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(y,x,T,S){var k=x[y]||{},L=T[y];"scales"===y?x[y]=u.scaleMerge(k,L):"scale"===y?x[y]=u.merge(k,[f.scaleService.getScaleDefaults(L.type),L]):u._merger(y,x,T,S)}})},u.scaleMerge=function(){return u.merge(u.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(y,x,T,S){if("xAxes"===y||"yAxes"===y){var L,A,U,k=T[y].length;for(x[y]||(x[y]=[]),L=0;L=x[y].length&&x[y].push({}),u.merge(x[y][L],!x[y][L].type||U.type&&U.type!==x[y][L].type?[f.scaleService.getScaleDefaults(A),U]:U)}else u._merger(y,x,T,S)}})},u.where=function(y,x){if(u.isArray(y)&&Array.prototype.filter)return y.filter(x);var T=[];return u.each(y,function(S){x(S)&&T.push(S)}),T},u.findIndex=Array.prototype.findIndex?function(y,x,T){return y.findIndex(x,T)}:function(y,x,T){T=void 0===T?y:T;for(var S=0,k=y.length;S=0;S--){var k=y[S];if(x(k))return k}},u.isNumber=function(y){return!isNaN(parseFloat(y))&&isFinite(y)},u.almostEquals=function(y,x,T){return Math.abs(y-x)y},u.max=function(y){return y.reduce(function(x,T){return isNaN(T)?x:Math.max(x,T)},Number.NEGATIVE_INFINITY)},u.min=function(y){return y.reduce(function(x,T){return isNaN(T)?x:Math.min(x,T)},Number.POSITIVE_INFINITY)},u.sign=Math.sign?function(y){return Math.sign(y)}:function(y){return 0==(y=+y)||isNaN(y)?y:y>0?1:-1},u.log10=Math.log10?function(y){return Math.log10(y)}:function(y){var x=Math.log(y)*Math.LOG10E,T=Math.round(x);return y===Math.pow(10,T)?T:x},u.toRadians=function(y){return y*(Math.PI/180)},u.toDegrees=function(y){return y*(180/Math.PI)},u.getAngleFromPoint=function(y,x){var T=x.x-y.x,S=x.y-y.y,k=Math.sqrt(T*T+S*S),L=Math.atan2(S,T);return L<-.5*Math.PI&&(L+=2*Math.PI),{angle:L,distance:k}},u.distanceBetweenPoints=function(y,x){return Math.sqrt(Math.pow(x.x-y.x,2)+Math.pow(x.y-y.y,2))},u.aliasPixel=function(y){return y%2==0?0:.5},u.splineCurve=function(y,x,T,S){var k=y.skip?x:y,L=x,A=T.skip?x:T,U=Math.sqrt(Math.pow(L.x-k.x,2)+Math.pow(L.y-k.y,2)),B=Math.sqrt(Math.pow(A.x-L.x,2)+Math.pow(A.y-L.y,2)),K=U/(U+B),re=B/(U+B),ve=S*(K=isNaN(K)?0:K),Z=S*(re=isNaN(re)?0:re);return{previous:{x:L.x-ve*(A.x-k.x),y:L.y-ve*(A.y-k.y)},next:{x:L.x+Z*(A.x-k.x),y:L.y+Z*(A.y-k.y)}}},u.EPSILON=Number.EPSILON||1e-14,u.splineCurveMonotone=function(y){var S,k,L,A,B,K,re,ve,Z,x=(y||[]).map(function(X){return{model:X._model,deltaK:0,mK:0}}),T=x.length;for(S=0;S0?x[S-1]:null,(A=S0?x[S-1]:null)&&!k.model.skip&&(L.model.controlPointPreviousX=L.model.x-(Z=(L.model.x-k.model.x)/3),L.model.controlPointPreviousY=L.model.y-Z*L.mK),A&&!A.model.skip&&(L.model.controlPointNextX=L.model.x+(Z=(A.model.x-L.model.x)/3),L.model.controlPointNextY=L.model.y+Z*L.mK))},u.nextItem=function(y,x,T){return T?x>=y.length-1?y[0]:y[x+1]:x>=y.length-1?y[y.length-1]:y[x+1]},u.previousItem=function(y,x,T){return T?x<=0?y[y.length-1]:y[x-1]:x<=0?y[0]:y[x-1]},u.niceNum=function(y,x){var T=Math.floor(u.log10(y)),S=y/Math.pow(10,T);return(x?S<1.5?1:S<3?2:S<7?5:10:S<=1?1:S<=2?2:S<=5?5:10)*Math.pow(10,T)},u.requestAnimFrame=typeof window>"u"?function(y){y()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(y){return window.setTimeout(y,1e3/60)},u.getRelativePosition=function(y,x){var T,S,k=y.originalEvent||y,L=y.currentTarget||y.srcElement,A=L.getBoundingClientRect(),U=k.touches;U&&U.length>0?(T=U[0].clientX,S=U[0].clientY):(T=k.clientX,S=k.clientY);var B=parseFloat(u.getStyle(L,"padding-left")),K=parseFloat(u.getStyle(L,"padding-top")),re=parseFloat(u.getStyle(L,"padding-right")),ve=parseFloat(u.getStyle(L,"padding-bottom")),X=A.bottom-A.top-K-ve;return{x:T=Math.round((T-A.left-B)/(A.right-A.left-B-re)*L.width/x.currentDevicePixelRatio),y:S=Math.round((S-A.top-K)/X*L.height/x.currentDevicePixelRatio)}},u.getConstraintWidth=function(y){return p(y,"max-width","clientWidth")},u.getConstraintHeight=function(y){return p(y,"max-height","clientHeight")},u.getMaximumWidth=function(y){var x=y.parentNode;if(!x)return y.clientWidth;var T=parseInt(u.getStyle(x,"padding-left"),10),S=parseInt(u.getStyle(x,"padding-right"),10),k=x.clientWidth-T-S,L=u.getConstraintWidth(y);return isNaN(L)?k:Math.min(k,L)},u.getMaximumHeight=function(y){var x=y.parentNode;if(!x)return y.clientHeight;var T=parseInt(u.getStyle(x,"padding-top"),10),S=parseInt(u.getStyle(x,"padding-bottom"),10),k=x.clientHeight-T-S,L=u.getConstraintHeight(y);return isNaN(L)?k:Math.min(k,L)},u.getStyle=function(y,x){return y.currentStyle?y.currentStyle[x]:document.defaultView.getComputedStyle(y,null).getPropertyValue(x)},u.retinaScale=function(y,x){var T=y.currentDevicePixelRatio=x||window.devicePixelRatio||1;if(1!==T){var S=y.canvas,k=y.height,L=y.width;S.height=k*T,S.width=L*T,y.ctx.scale(T,T),!S.style.height&&!S.style.width&&(S.style.height=k+"px",S.style.width=L+"px")}},u.fontString=function(y,x,T){return x+" "+y+"px "+T},u.longestText=function(y,x,T,S){var k=(S=S||{}).data=S.data||{},L=S.garbageCollect=S.garbageCollect||[];S.font!==x&&(k=S.data={},L=S.garbageCollect=[],S.font=x),y.font=x;var A=0;u.each(T,function(K){null!=K&&!0!==u.isArray(K)?A=u.measureText(y,k,L,A,K):u.isArray(K)&&u.each(K,function(re){null!=re&&!u.isArray(re)&&(A=u.measureText(y,k,L,A,re))})});var U=L.length/2;if(U>T.length){for(var B=0;BS&&(S=L),S},u.numberOfLabelLines=function(y){var x=1;return u.each(y,function(T){u.isArray(T)&&T.length>x&&(x=T.length)}),x},u.color=O?function(y){return y instanceof CanvasGradient&&(y=v.global.defaultColor),O(y)}:function(y){return console.error("Color.js not found!"),y},u.getHoverColor=function(y){return y instanceof CanvasPattern?y:u.color(y).saturate(.5).darken(.1).rgbString()}}},2814:(de,ge,N)=>{"use strict";var O=N(3305);function v(y,x){return y.native?{x:y.x,y:y.y}:O.getRelativePosition(y,x)}function u(y,x){var S,k,L,A,U;for(k=0,A=y.data.datasets.length;k0&&(L=y.getDatasetMeta(L[0]._datasetIndex).data),L},"x-axis":function(y,x){return p(y,x,{intersect:!1})},point:function(y,x){return f(y,v(x,y))},nearest:function(y,x,T){var S=v(x,y);T.axis=T.axis||"xy";var k=M(T.axis),L=h(y,S,T.intersect,k);return L.length>1&&L.sort(function(A,U){var re=A.getArea()-U.getArea();return 0===re&&(re=A._datasetIndex-U._datasetIndex),re}),L.slice(0,1)},x:function(y,x,T){var S=v(x,y),k=[],L=!1;return u(y,function(A){A.inXRange(S.x)&&k.push(A),A.inRange(S.x,S.y)&&(L=!0)}),T.intersect&&!L&&(k=[]),k},y:function(y,x,T){var S=v(x,y),k=[],L=!1;return u(y,function(A){A.inYRange(S.y)&&k.push(A),A.inRange(S.x,S.y)&&(L=!0)}),T.intersect&&!L&&(k=[]),k}}}},5979:(de,ge,N)=>{"use strict";N(9800)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),de.exports=function(){var v=function(u,f){return this.construct(u,f),this};return v.Chart=v,v}},2294:(de,ge,N)=>{"use strict";var O=N(3305);function v(f,h){return O.where(f,function(M){return M.position===h})}function u(f,h){f.forEach(function(M,p){return M._tmpIndex_=p,M}),f.sort(function(M,p){var y=h?p:M,x=h?M:p;return y.weight===x.weight?y._tmpIndex_-x._tmpIndex_:y.weight-x.weight}),f.forEach(function(M){delete M._tmpIndex_})}de.exports={defaults:{},addBox:function(f,h){f.boxes||(f.boxes=[]),h.fullWidth=h.fullWidth||!1,h.position=h.position||"top",h.weight=h.weight||0,f.boxes.push(h)},removeBox:function(f,h){var M=f.boxes?f.boxes.indexOf(h):-1;-1!==M&&f.boxes.splice(M,1)},configure:function(f,h,M){for(var T,p=["fullWidth","position","weight"],y=p.length,x=0;x{"use strict";var O=N(9800),v=N(3305);O._set("global",{plugins:{}}),de.exports={_plugins:[],_cacheId:0,register:function(u){var f=this._plugins;[].concat(u).forEach(function(h){-1===f.indexOf(h)&&f.push(h)}),this._cacheId++},unregister:function(u){var f=this._plugins;[].concat(u).forEach(function(h){var M=f.indexOf(h);-1!==M&&f.splice(M,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(u,f,h){var y,x,T,S,k,M=this.descriptors(u),p=M.length;for(y=0;y{"use strict";var O=N(9800),v=N(8839),u=N(3305),f=N(8347);function h(p){var x,T,y=[];for(x=0,T=p.length;x"u"&&(S.minor[k]=S[k]),typeof S.major[k]>"u"&&(S.major[k]=S[k]))},beforeUpdate:function(){u.callback(this.options.beforeUpdate,[this])},update:function(S,k,L){var U,B,K,re,ve,Z,A=this;for(A.beforeUpdate(),A.maxWidth=S,A.maxHeight=k,A.margins=u.extend({left:0,right:0,top:0,bottom:0},L),A.longestTextCache=A.longestTextCache||{},A.beforeSetDimensions(),A.setDimensions(),A.afterSetDimensions(),A.beforeDataLimits(),A.determineDataLimits(),A.afterDataLimits(),A.beforeBuildTicks(),ve=A.buildTicks()||[],A.afterBuildTicks(),A.beforeTickToLabelConversion(),K=A.convertTicksToLabels(ve)||A.ticks,A.afterTickToLabelConversion(),A.ticks=K,U=0,B=K.length;UX&&BS.maxHeight){B--;break}B++,re=ve*K}S.labelRotation=B},afterCalculateTickRotation:function(){u.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){u.callback(this.options.beforeFit,[this])},fit:function(){var S=this,k=S.minSize={width:0,height:0},L=h(S._ticks),A=S.options,U=A.ticks,B=A.scaleLabel,K=A.gridLines,re=A.display,ve=S.isHorizontal(),Z=x(U),X=A.gridLines.tickMarkLength;if(k.width=ve?S.isFullWidth()?S.maxWidth-S.margins.left-S.margins.right:S.maxWidth:re&&K.drawTicks?X:0,k.height=ve?re&&K.drawTicks?X:0:S.maxHeight,B.display&&re){var Q=T(B)+u.options.toPadding(B.padding).height;ve?k.height+=Q:k.width+=Q}if(U.display&&re){var ee=u.longestText(S.ctx,Z.font,L,S.longestTextCache),ae=u.numberOfLabelLines(L),le=.5*Z.size,J=S.options.ticks.padding;if(ve){S.longestLabelWidth=ee;var Te=u.toRadians(S.labelRotation),Se=Math.cos(Te),ke=Math.sin(Te);k.height=Math.min(S.maxHeight,k.height+(ke*ee+Z.size*ae+le*(ae-1)+le)+J),S.ctx.font=Z.font;var tt=y(S.ctx,L[0],Z.font),st=y(S.ctx,L[L.length-1],Z.font);0!==S.labelRotation?(S.paddingLeft="bottom"===A.position?Se*tt+3:Se*le+3,S.paddingRight="bottom"===A.position?Se*le+3:Se*st+3):(S.paddingLeft=tt/2+3,S.paddingRight=st/2+3)}else U.mirror?ee=0:ee+=J+le,k.width=Math.min(S.maxWidth,k.width+ee),S.paddingTop=Z.size/2,S.paddingBottom=Z.size/2}S.handleMargins(),S.width=k.width,S.height=k.height},handleMargins:function(){var S=this;S.margins&&(S.paddingLeft=Math.max(S.paddingLeft-S.margins.left,0),S.paddingTop=Math.max(S.paddingTop-S.margins.top,0),S.paddingRight=Math.max(S.paddingRight-S.margins.right,0),S.paddingBottom=Math.max(S.paddingBottom-S.margins.bottom,0))},afterFit:function(){u.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(S){if(u.isNullOrUndef(S))return NaN;if("number"==typeof S&&!isFinite(S))return NaN;if(S)if(this.isHorizontal()){if(void 0!==S.x)return this.getRightValue(S.x)}else if(void 0!==S.y)return this.getRightValue(S.y);return S},getLabelForIndex:u.noop,getPixelForValue:u.noop,getValueForPixel:u.noop,getPixelForTick:function(S){var k=this,L=k.options.offset;if(k.isHorizontal()){var U=(k.width-(k.paddingLeft+k.paddingRight))/Math.max(k._ticks.length-(L?0:1),1),B=U*S+k.paddingLeft;return L&&(B+=U/2),k.left+Math.round(B)+(k.isFullWidth()?k.margins.left:0)}return k.top+S*((k.height-(k.paddingTop+k.paddingBottom))/(k._ticks.length-1))},getPixelForDecimal:function(S){var k=this;return k.isHorizontal()?k.left+Math.round((k.width-(k.paddingLeft+k.paddingRight))*S+k.paddingLeft)+(k.isFullWidth()?k.margins.left:0):k.top+S*k.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var S=this,k=S.min,L=S.max;return S.beginAtZero?0:k<0&&L<0?L:k>0&&L>0?k:0},_autoSkip:function(S){var k,X,he,Q,L=this,A=L.isHorizontal(),U=L.options.ticks.minor,B=S.length,K=u.toRadians(L.labelRotation),re=Math.cos(K),ve=L.longestLabelWidth*re,Z=[];for(U.maxTicksLimit&&(Q=U.maxTicksLimit),A&&(k=!1,(ve+U.autoSkipPadding)*B>L.width-(L.paddingLeft+L.paddingRight)&&(k=1+Math.floor((ve+U.autoSkipPadding)*B/(L.width-(L.paddingLeft+L.paddingRight)))),Q&&B>Q&&(k=Math.max(k,Math.floor(B/Q)))),X=0;X1&&X%k>0||X%k==0&&X+k>=B)&&X!==B-1&&delete he.label,Z.push(he);return Z},draw:function(S){var k=this,L=k.options;if(L.display){var A=k.ctx,U=O.global,B=L.ticks.minor,K=L.ticks.major||B,re=L.gridLines,ve=L.scaleLabel,Z=0!==k.labelRotation,X=k.isHorizontal(),he=B.autoSkip?k._autoSkip(k.getTicks()):k.getTicks(),q=u.valueOrDefault(B.fontColor,U.defaultFontColor),Q=x(B),ee=u.valueOrDefault(K.fontColor,U.defaultFontColor),ae=x(K),le=re.drawTicks?re.tickMarkLength:0,J=u.valueOrDefault(ve.fontColor,U.defaultFontColor),Te=x(ve),Se=u.options.toPadding(ve.padding),ke=u.toRadians(k.labelRotation),Be=[],tt=k.options.gridLines.lineWidth,st="right"===L.position?k.right:k.right-tt-le,at="right"===L.position?k.right+le:k.right,jt="bottom"===L.position?k.top+tt:k.bottom-le-tt,an="bottom"===L.position?k.top+tt+le:k.bottom+tt;if(u.each(he,function(te,pe){if(!u.isNullOrUndef(te.label)){var ue,be,me,Me,fe=te.label;pe===k.zeroLineIndex&&L.offset===re.offsetGridLines?(ue=re.zeroLineWidth,be=re.zeroLineColor,me=re.zeroLineBorderDash,Me=re.zeroLineBorderDashOffset):(ue=u.valueAtIndexOrDefault(re.lineWidth,pe),be=u.valueAtIndexOrDefault(re.color,pe),me=u.valueOrDefault(re.borderDash,U.borderDash),Me=u.valueOrDefault(re.borderDashOffset,U.borderDashOffset));var De,Ie,Ye,ut,mt,it,fn,An,bt,qt,Gn="middle",oi="middle",Kr=B.padding;if(X){var Io=le+Kr;"bottom"===L.position?(oi=Z?"middle":"top",Gn=Z?"right":"center",qt=k.top+Io):(oi=Z?"middle":"bottom",Gn=Z?"left":"center",qt=k.bottom-Io);var Ai=M(k,pe,re.offsetGridLines&&he.length>1);Ai1);si{"use strict";var O=N(9800),v=N(3305),u=N(2294);de.exports=function(f){f.scaleService={constructors:{},defaults:{},registerScaleType:function(h,M,p){this.constructors[h]=M,this.defaults[h]=v.clone(p)},getScaleConstructor:function(h){return this.constructors.hasOwnProperty(h)?this.constructors[h]:void 0},getScaleDefaults:function(h){return this.defaults.hasOwnProperty(h)?v.merge({},[O.scale,this.defaults[h]]):{}},updateScaleDefaults:function(h,M){var p=this;p.defaults.hasOwnProperty(h)&&(p.defaults[h]=v.extend(p.defaults[h],M))},addScalesToLayout:function(h){v.each(h.scales,function(M){M.fullWidth=M.options.fullWidth,M.position=M.options.position,M.weight=M.options.weight,u.addBox(h,M)})}}}},8347:(de,ge,N)=>{"use strict";var O=N(3305);de.exports={formatters:{values:function(v){return O.isArray(v)?v:""+v},linear:function(v,u,f){var h=f.length>3?f[2]-f[1]:f[1]-f[0];Math.abs(h)>1&&v!==Math.floor(v)&&(h=v-Math.floor(v));var M=O.log10(Math.abs(h)),p="";if(0!==v){var y=-1*Math.floor(M);y=Math.max(Math.min(y,20),0),p=v.toFixed(y)}else p="0";return p},logarithmic:function(v,u,f){var h=v/Math.pow(10,Math.floor(O.log10(v)));return 0===v?"0":1===h||2===h||5===h||0===u||u===f.length-1?v.toExponential():""}}}},480:(de,ge,N)=>{"use strict";var O=N(9800),v=N(8839),u=N(3305);O._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:u.noop,title:function(f,h){var M="",p=h.labels,y=p?p.length:0;if(f.length>0){var x=f[0];x.xLabel?M=x.xLabel:y>0&&x.indexU.height-L.height&&(re="bottom");var ve,Z,X,he,q,Q=(B.left+B.right)/2,ee=(B.top+B.bottom)/2;"center"===re?(ve=function(le){return le<=Q},Z=function(le){return le>Q}):(ve=function(le){return le<=L.width/2},Z=function(le){return le>=U.width-L.width/2}),X=function(le){return le+L.width+A.caretSize+A.caretPadding>U.width},he=function(le){return le-L.width-A.caretSize-A.caretPadding<0},q=function(le){return le<=ee?"top":"bottom"},ve(A.x)?(K="left",X(A.x)&&(K="center",re=q(A.y))):Z(A.x)&&(K="right",he(A.x)&&(K="center",re=q(A.y)));var ae=k._options;return{xAlign:ae.xAlign?ae.xAlign:K,yAlign:ae.yAlign?ae.yAlign:re}}(this,X),Z=function S(k,L,A,U){var B=k.x,K=k.y,ve=k.caretPadding,X=A.xAlign,he=A.yAlign,q=k.caretSize+ve,Q=k.cornerRadius+ve;return"right"===X?B-=L.width:"center"===X&&((B-=L.width/2)+L.width>U.width&&(B=U.width-L.width),B<0&&(B=0)),"top"===he?K+=q:K-="bottom"===he?L.height+q:L.height/2,"center"===he?"left"===X?B+=q:"right"===X&&(B-=q):"left"===X?B-=Q:"right"===X&&(B+=Q),{x:B,y:K}}(B,X,ve,L._chart)}else B.opacity=0;return B.xAlign=ve.xAlign,B.yAlign=ve.yAlign,B.x=Z.x,B.y=Z.y,B.width=X.width,B.height=X.height,B.caretX=he.x,B.caretY=he.y,L._model=B,k&&A.custom&&A.custom.call(L,B),L},drawCaret:function(k,L){var A=this._chart.ctx,B=this.getCaretPosition(k,L,this._view);A.lineTo(B.x1,B.y1),A.lineTo(B.x2,B.y2),A.lineTo(B.x3,B.y3)},getCaretPosition:function(k,L,A){var U,B,K,re,ve,Z,X=A.caretSize,he=A.cornerRadius,q=A.xAlign,Q=A.yAlign,ee=k.x,ae=k.y,le=L.width,J=L.height;if("center"===Q)ve=ae+J/2,"left"===q?(B=(U=ee)-X,K=U,re=ve+X,Z=ve-X):(B=(U=ee+le)+X,K=U,re=ve-X,Z=ve+X);else if("left"===q?(U=(B=ee+he+X)-X,K=B+X):"right"===q?(U=(B=ee+le-he-X)-X,K=B+X):(U=(B=A.caretX)-X,K=B+X),"top"===Q)ve=(re=ae)-X,Z=re;else{ve=(re=ae+J)+X,Z=re;var Te=K;K=U,U=Te}return{x1:U,x2:B,x3:K,y1:re,y2:ve,y3:Z}},drawTitle:function(k,L,A,U){var B=L.title;if(B.length){A.textAlign=L._titleAlign,A.textBaseline="top";var ve,Z,K=L.titleFontSize,re=L.titleSpacing;for(A.fillStyle=h(L.titleFontColor,U),A.font=u.fontString(K,L._titleFontStyle,L._titleFontFamily),ve=0,Z=B.length;ve0&&A.stroke()},draw:function(){var k=this._chart.ctx,L=this._view;if(0!==L.opacity){var A={width:L.width,height:L.height},U={x:L.x,y:L.y},B=Math.abs(L.opacity<.001)?0:L.opacity;this._options.enabled&&(L.title.length||L.beforeBody.length||L.body.length||L.afterBody.length||L.footer.length)&&(this.drawBackground(U,L,k,A,B),U.x+=L.xPadding,U.y+=L.yPadding,this.drawTitle(U,L,k,B),this.drawBody(U,L,k,B),this.drawFooter(U,L,k,B))}},handleEvent:function(k){var U,L=this,A=L._options;return L._lastActive=L._lastActive||[],L._active="mouseout"===k.type?[]:L._chart.getElementsAtEventForMode(k,A.mode,A),(U=!u.arrayEquals(L._active,L._lastActive))&&(L._lastActive=L._active,(A.enabled||A.custom)&&(L._eventPosition={x:k.x,y:k.y},L.update(!0),L.pivot())),U}}),f.Tooltip.positioners={average:function(k){if(!k.length)return!1;var L,A,U=0,B=0,K=0;for(L=0,A=k.length;L{"use strict";var O=N(9800),v=N(8839),u=N(3305);O._set("global",{elements:{arc:{backgroundColor:O.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),de.exports=v.extend({inLabelRange:function(f){var h=this._view;return!!h&&Math.pow(f-h.x,2)S;)y-=2*Math.PI;for(;y=T&&y<=S&&x>=M.innerRadius&&x<=M.outerRadius}return!1},getCenterPoint:function(){var f=this._view,h=(f.startAngle+f.endAngle)/2,M=(f.innerRadius+f.outerRadius)/2;return{x:f.x+Math.cos(h)*M,y:f.y+Math.sin(h)*M}},getArea:function(){var f=this._view;return Math.PI*((f.endAngle-f.startAngle)/(2*Math.PI))*(Math.pow(f.outerRadius,2)-Math.pow(f.innerRadius,2))},tooltipPosition:function(){var f=this._view,h=f.startAngle+(f.endAngle-f.startAngle)/2,M=(f.outerRadius-f.innerRadius)/2+f.innerRadius;return{x:f.x+Math.cos(h)*M,y:f.y+Math.sin(h)*M}},draw:function(){var f=this._chart.ctx,h=this._view,M=h.startAngle,p=h.endAngle;f.beginPath(),f.arc(h.x,h.y,h.outerRadius,M,p),f.arc(h.x,h.y,h.innerRadius,p,M,!0),f.closePath(),f.strokeStyle=h.borderColor,f.lineWidth=h.borderWidth,f.fillStyle=h.backgroundColor,f.fill(),f.lineJoin="bevel",h.borderWidth&&f.stroke()}})},3819:(de,ge,N)=>{"use strict";var O=N(9800),v=N(8839),u=N(3305),f=O.global;O._set("global",{elements:{line:{tension:.4,backgroundColor:f.defaultColor,borderWidth:3,borderColor:f.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),de.exports=v.extend({draw:function(){var k,L,A,U,h=this,M=h._view,p=h._chart.ctx,y=M.spanGaps,x=h._children.slice(),T=f.elements.line,S=-1;for(h._loop&&x.length&&x.push(x[0]),p.save(),p.lineCap=M.borderCapStyle||T.borderCapStyle,p.setLineDash&&p.setLineDash(M.borderDash||T.borderDash),p.lineDashOffset=M.borderDashOffset||T.borderDashOffset,p.lineJoin=M.borderJoinStyle||T.borderJoinStyle,p.lineWidth=M.borderWidth||T.borderWidth,p.strokeStyle=M.borderColor||f.defaultColor,p.beginPath(),S=-1,k=0;k{"use strict";var O=N(9800),v=N(8839),u=N(3305),f=O.global.defaultColor;function h(p){var y=this._view;return!!y&&Math.abs(p-y.x){"use strict";var O=N(9800),v=N(8839);function u(h){return void 0!==h._view.width}function f(h){var p,y,x,T,M=h._view;if(u(h)){var S=M.width/2;p=M.x-S,y=M.x+S,x=Math.min(M.y,M.base),T=Math.max(M.y,M.base)}else{var k=M.height/2;p=Math.min(M.x,M.base),y=Math.max(M.x,M.base),x=M.y-k,T=M.y+k}return{left:p,top:x,right:y,bottom:T}}O._set("global",{elements:{rectangle:{backgroundColor:O.global.defaultColor,borderColor:O.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),de.exports=v.extend({draw:function(){var p,y,x,T,S,k,L,h=this._chart.ctx,M=this._view,A=M.borderWidth;if(M.horizontal?(x=M.y-M.height/2,T=M.y+M.height/2,S=(y=M.x)>(p=M.base)?1:-1,k=1,L=M.borderSkipped||"left"):(p=M.x-M.width/2,y=M.x+M.width/2,S=1,k=(T=M.base)>(x=M.y)?1:-1,L=M.borderSkipped||"bottom"),A){var U=Math.min(Math.abs(p-y),Math.abs(x-T)),B=(A=A>U?U:A)/2,K=p+("left"!==L?B*S:0),re=y+("right"!==L?-B*S:0),ve=x+("top"!==L?B*k:0),Z=T+("bottom"!==L?-B*k:0);K!==re&&(x=ve,T=Z),ve!==Z&&(p=K,y=re)}h.beginPath(),h.fillStyle=M.backgroundColor,h.strokeStyle=M.borderColor,h.lineWidth=A;var X=[[p,T],[p,x],[y,x],[y,T]],q=["bottom","left","top","right"].indexOf(L,0);function Q(le){return X[(q+le)%4]}-1===q&&(q=0);var ee=Q(0);h.moveTo(ee[0],ee[1]);for(var ae=1;ae<4;ae++)ee=Q(ae),h.lineTo(ee[0],ee[1]);h.fill(),A&&h.stroke()},height:function(){var h=this._view;return h.base-h.y},inRange:function(h,M){var p=!1;if(this._view){var y=f(this);p=h>=y.left&&h<=y.right&&M>=y.top&&M<=y.bottom}return p},inLabelRange:function(h,M){var p=this;if(!p._view)return!1;var x=f(p);return u(p)?h>=x.left&&h<=x.right:M>=x.top&&M<=x.bottom},inXRange:function(h){var M=f(this);return h>=M.left&&h<=M.right},inYRange:function(h){var M=f(this);return h>=M.top&&h<=M.bottom},getCenterPoint:function(){var M,p,h=this._view;return u(this)?(M=h.x,p=(h.y+h.base)/2):(M=(h.x+h.base)/2,p=h.y),{x:M,y:p}},getArea:function(){var h=this._view;return h.width*Math.abs(h.y-h.base)},tooltipPosition:function(){var h=this._view;return{x:h.x,y:h.y}}})},9931:(de,ge,N)=>{"use strict";de.exports={},de.exports.Arc=N(280),de.exports.Line=N(3819),de.exports.Point=N(4674),de.exports.Rectangle=N(8667)},2397:(de,ge,N)=>{"use strict";var O=N(4396),v=de.exports={clear:function(u){u.ctx.clearRect(0,0,u.width,u.height)},roundedRect:function(u,f,h,M,p,y){if(y){var x=Math.min(y,M/2),T=Math.min(y,p/2);u.moveTo(f+x,h),u.lineTo(f+M-x,h),u.quadraticCurveTo(f+M,h,f+M,h+T),u.lineTo(f+M,h+p-T),u.quadraticCurveTo(f+M,h+p,f+M-x,h+p),u.lineTo(f+x,h+p),u.quadraticCurveTo(f,h+p,f,h+p-T),u.lineTo(f,h+T),u.quadraticCurveTo(f,h,f+x,h)}else u.rect(f,h,M,p)},drawPoint:function(u,f,h,M,p){var y,x,T,S,k,L;if(!f||"object"!=typeof f||"[object HTMLImageElement]"!==(y=f.toString())&&"[object HTMLCanvasElement]"!==y){if(!(isNaN(h)||h<=0)){switch(f){default:u.beginPath(),u.arc(M,p,h,0,2*Math.PI),u.closePath(),u.fill();break;case"triangle":u.beginPath(),k=(x=3*h/Math.sqrt(3))*Math.sqrt(3)/2,u.moveTo(M-x/2,p+k/3),u.lineTo(M+x/2,p+k/3),u.lineTo(M,p-2*k/3),u.closePath(),u.fill();break;case"rect":L=1/Math.SQRT2*h,u.beginPath(),u.fillRect(M-L,p-L,2*L,2*L),u.strokeRect(M-L,p-L,2*L,2*L);break;case"rectRounded":var A=h/Math.SQRT2,U=M-A,B=p-A,K=Math.SQRT2*h;u.beginPath(),this.roundedRect(u,U,B,K,K,h/2),u.closePath(),u.fill();break;case"rectRot":L=1/Math.SQRT2*h,u.beginPath(),u.moveTo(M-L,p),u.lineTo(M,p+L),u.lineTo(M+L,p),u.lineTo(M,p-L),u.closePath(),u.fill();break;case"cross":u.beginPath(),u.moveTo(M,p+h),u.lineTo(M,p-h),u.moveTo(M-h,p),u.lineTo(M+h,p),u.closePath();break;case"crossRot":u.beginPath(),T=Math.cos(Math.PI/4)*h,S=Math.sin(Math.PI/4)*h,u.moveTo(M-T,p-S),u.lineTo(M+T,p+S),u.moveTo(M-T,p+S),u.lineTo(M+T,p-S),u.closePath();break;case"star":u.beginPath(),u.moveTo(M,p+h),u.lineTo(M,p-h),u.moveTo(M-h,p),u.lineTo(M+h,p),T=Math.cos(Math.PI/4)*h,S=Math.sin(Math.PI/4)*h,u.moveTo(M-T,p-S),u.lineTo(M+T,p+S),u.moveTo(M-T,p+S),u.lineTo(M+T,p-S),u.closePath();break;case"line":u.beginPath(),u.moveTo(M-h,p),u.lineTo(M+h,p),u.closePath();break;case"dash":u.beginPath(),u.moveTo(M,p),u.lineTo(M+h,p),u.closePath()}u.stroke()}}else u.drawImage(f,M-f.width/2,p-f.height/2,f.width,f.height)},clipArea:function(u,f){u.save(),u.beginPath(),u.rect(f.left,f.top,f.right-f.left,f.bottom-f.top),u.clip()},unclipArea:function(u){u.restore()},lineTo:function(u,f,h,M){if(h.steppedLine)return"after"===h.steppedLine&&!M||"after"!==h.steppedLine&&M?u.lineTo(f.x,h.y):u.lineTo(h.x,f.y),void u.lineTo(h.x,h.y);h.tension?u.bezierCurveTo(M?f.controlPointPreviousX:f.controlPointNextX,M?f.controlPointPreviousY:f.controlPointNextY,M?h.controlPointNextX:h.controlPointPreviousX,M?h.controlPointNextY:h.controlPointPreviousY,h.x,h.y):u.lineTo(h.x,h.y)}};O.clear=v.clear,O.drawRoundedRectangle=function(u){u.beginPath(),v.roundedRect.apply(v,arguments),u.closePath()}},4396:de=>{"use strict";var N,ge={noop:function(){},uid:(N=0,function(){return N++}),isNullOrUndef:function(N){return null===N||typeof N>"u"},isArray:Array.isArray?Array.isArray:function(N){return"[object Array]"===Object.prototype.toString.call(N)},isObject:function(N){return null!==N&&"[object Object]"===Object.prototype.toString.call(N)},valueOrDefault:function(N,O){return typeof N>"u"?O:N},valueAtIndexOrDefault:function(N,O,v){return ge.valueOrDefault(ge.isArray(N)?N[O]:N,v)},callback:function(N,O,v){if(N&&"function"==typeof N.call)return N.apply(v,O)},each:function(N,O,v,u){var f,h,M;if(ge.isArray(N))if(h=N.length,u)for(f=h-1;f>=0;f--)O.call(v,N[f],f);else for(f=0;f{"use strict";var O=N(4396),v={linear:function(u){return u},easeInQuad:function(u){return u*u},easeOutQuad:function(u){return-u*(u-2)},easeInOutQuad:function(u){return(u/=.5)<1?.5*u*u:-.5*(--u*(u-2)-1)},easeInCubic:function(u){return u*u*u},easeOutCubic:function(u){return(u-=1)*u*u+1},easeInOutCubic:function(u){return(u/=.5)<1?.5*u*u*u:.5*((u-=2)*u*u+2)},easeInQuart:function(u){return u*u*u*u},easeOutQuart:function(u){return-((u-=1)*u*u*u-1)},easeInOutQuart:function(u){return(u/=.5)<1?.5*u*u*u*u:-.5*((u-=2)*u*u*u-2)},easeInQuint:function(u){return u*u*u*u*u},easeOutQuint:function(u){return(u-=1)*u*u*u*u+1},easeInOutQuint:function(u){return(u/=.5)<1?.5*u*u*u*u*u:.5*((u-=2)*u*u*u*u+2)},easeInSine:function(u){return 1-Math.cos(u*(Math.PI/2))},easeOutSine:function(u){return Math.sin(u*(Math.PI/2))},easeInOutSine:function(u){return-.5*(Math.cos(Math.PI*u)-1)},easeInExpo:function(u){return 0===u?0:Math.pow(2,10*(u-1))},easeOutExpo:function(u){return 1===u?1:1-Math.pow(2,-10*u)},easeInOutExpo:function(u){return 0===u?0:1===u?1:(u/=.5)<1?.5*Math.pow(2,10*(u-1)):.5*(2-Math.pow(2,-10*--u))},easeInCirc:function(u){return u>=1?u:-(Math.sqrt(1-u*u)-1)},easeOutCirc:function(u){return Math.sqrt(1-(u-=1)*u)},easeInOutCirc:function(u){return(u/=.5)<1?-.5*(Math.sqrt(1-u*u)-1):.5*(Math.sqrt(1-(u-=2)*u)+1)},easeInElastic:function(u){var f=1.70158,h=0,M=1;return 0===u?0:1===u?1:(h||(h=.3),M<1?(M=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/M),-M*Math.pow(2,10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h))},easeOutElastic:function(u){var f=1.70158,h=0,M=1;return 0===u?0:1===u?1:(h||(h=.3),M<1?(M=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/M),M*Math.pow(2,-10*u)*Math.sin((u-f)*(2*Math.PI)/h)+1)},easeInOutElastic:function(u){var f=1.70158,h=0,M=1;return 0===u?0:2==(u/=.5)?1:(h||(h=.45),M<1?(M=1,f=h/4):f=h/(2*Math.PI)*Math.asin(1/M),u<1?M*Math.pow(2,10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h)*-.5:M*Math.pow(2,-10*(u-=1))*Math.sin((u-f)*(2*Math.PI)/h)*.5+1)},easeInBack:function(u){var f=1.70158;return u*u*((f+1)*u-f)},easeOutBack:function(u){var f=1.70158;return(u-=1)*u*((f+1)*u+f)+1},easeInOutBack:function(u){var f=1.70158;return(u/=.5)<1?u*u*((1+(f*=1.525))*u-f)*.5:.5*((u-=2)*u*((1+(f*=1.525))*u+f)+2)},easeInBounce:function(u){return 1-v.easeOutBounce(1-u)},easeOutBounce:function(u){return u<1/2.75?7.5625*u*u:u<2/2.75?7.5625*(u-=1.5/2.75)*u+.75:u<2.5/2.75?7.5625*(u-=2.25/2.75)*u+.9375:7.5625*(u-=2.625/2.75)*u+.984375},easeInOutBounce:function(u){return u<.5?.5*v.easeInBounce(2*u):.5*v.easeOutBounce(2*u-1)+.5}};de.exports={effects:v},O.easingEffects=v},5347:(de,ge,N)=>{"use strict";var O=N(4396);de.exports={toLineHeight:function(v,u){var f=(""+v).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!f||"normal"===f[1])return 1.2*u;switch(v=+f[2],f[3]){case"px":return v;case"%":v/=100}return u*v},toPadding:function(v){var u,f,h,M;return O.isObject(v)?(u=+v.top||0,f=+v.right||0,h=+v.bottom||0,M=+v.left||0):u=f=h=M=+v||0,{top:u,right:f,bottom:h,left:M,height:u+h,width:M+f}},resolve:function(v,u,f){var h,M,p;for(h=0,M=v.length;h{"use strict";de.exports=N(4396),de.exports.easing=N(4317),de.exports.canvas=N(2397),de.exports.options=N(5347)},1607:de=>{de.exports={acquireContext:function(ge){return ge&&ge.canvas&&(ge=ge.canvas),ge&&ge.getContext("2d")||null}}},8005:(de,ge,N)=>{"use strict";var O=N(3305),v="$chartjs",u="chartjs-",f=u+"render-monitor",h=u+"render-animation",M=["animationstart","webkitAnimationStart"],p={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function y(q,Q){var ee=O.getStyle(q,Q),ae=ee&&ee.match(/^(\d+)(\.\d+)?px$/);return ae?Number(ae[1]):void 0}var S=!!function(){var q=!1;try{var Q=Object.defineProperty({},"passive",{get:function(){q=!0}});window.addEventListener("e",null,Q)}catch{}return q}()&&{passive:!0};function k(q,Q,ee){q.addEventListener(Q,ee,S)}function L(q,Q,ee){q.removeEventListener(Q,ee,S)}function A(q,Q,ee,ae,le){return{type:q,chart:Q,native:le||null,x:void 0!==ee?ee:null,y:void 0!==ae?ae:null}}de.exports={_enabled:typeof window<"u"&&typeof document<"u",initialize:function(){var q="from{opacity:0.99}to{opacity:1}";!function he(q,Q){var ee=q._style||document.createElement("style");q._style||(q._style=ee,Q="/* Chart.js */\n"+Q,ee.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(ee)),ee.appendChild(document.createTextNode(Q))}(this,"@-webkit-keyframes "+h+"{"+q+"}@keyframes "+h+"{"+q+"}."+f+"{-webkit-animation:"+h+" 0.001s;animation:"+h+" 0.001s;}")},acquireContext:function(q,Q){"string"==typeof q?q=document.getElementById(q):q.length&&(q=q[0]),q&&q.canvas&&(q=q.canvas);var ee=q&&q.getContext&&q.getContext("2d");return ee&&ee.canvas===q?(function x(q,Q){var ee=q.style,ae=q.getAttribute("height"),le=q.getAttribute("width");if(q[v]={initial:{height:ae,width:le,style:{display:ee.display,height:ee.height,width:ee.width}}},ee.display=ee.display||"block",null===le||""===le){var J=y(q,"width");void 0!==J&&(q.width=J)}if(null===ae||""===ae)if(""===q.style.height)q.height=q.width/(Q.options.aspectRatio||2);else{var Te=y(q,"height");void 0!==J&&(q.height=Te)}}(q,Q),ee):null},releaseContext:function(q){var Q=q.canvas;if(Q[v]){var ee=Q[v].initial;["height","width"].forEach(function(ae){var le=ee[ae];O.isNullOrUndef(le)?Q.removeAttribute(ae):Q.setAttribute(ae,le)}),O.each(ee.style||{},function(ae,le){Q.style[le]=ae}),Q.width=Q.width,delete Q[v]}},addEventListener:function(q,Q,ee){var ae=q.canvas;if("resize"!==Q){var le=ee[v]||(ee[v]={}),Te=(le.proxies||(le.proxies={}))[q.id+"_"+Q]=function(Se){ee(function U(q,Q){var ee=p[q.type]||q.type,ae=O.getRelativePosition(q,Q);return A(ee,Q,ae.x,ae.y,q)}(Se,q))};k(ae,Q,Te)}else!function Z(q,Q,ee){var ae=q[v]||(q[v]={}),le=ae.resizer=function K(q){var Q=document.createElement("div"),ee=u+"size-monitor",ae=1e6,le="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";Q.style.cssText=le,Q.className=ee,Q.innerHTML='
';var J=Q.childNodes[0],Te=Q.childNodes[1];Q._reset=function(){J.scrollLeft=ae,J.scrollTop=ae,Te.scrollLeft=ae,Te.scrollTop=ae};var Se=function(){Q._reset(),q()};return k(J,"scroll",Se.bind(J,"expand")),k(Te,"scroll",Se.bind(Te,"shrink")),Q}(function B(q,Q){var ee=!1,ae=[];return function(){ae=Array.prototype.slice.call(arguments),Q=Q||this,ee||(ee=!0,O.requestAnimFrame.call(window,function(){ee=!1,q.apply(Q,ae)}))}}(function(){if(ae.resizer)return Q(A("resize",ee))}));!function re(q,Q){var ee=q[v]||(q[v]={}),ae=ee.renderProxy=function(le){le.animationName===h&&Q()};O.each(M,function(le){k(q,le,ae)}),ee.reflow=!!q.offsetParent,q.classList.add(f)}(q,function(){if(ae.resizer){var J=q.parentNode;J&&J!==le.parentNode&&J.insertBefore(le,J.firstChild),le._reset()}})}(ae,ee,q)},removeEventListener:function(q,Q,ee){var ae=q.canvas;if("resize"!==Q){var Te=((ee[v]||{}).proxies||{})[q.id+"_"+Q];Te&&L(ae,Q,Te)}else!function X(q){var Q=q[v]||{},ee=Q.resizer;delete Q.resizer,function ve(q){var Q=q[v]||{},ee=Q.renderProxy;ee&&(O.each(M,function(ae){L(q,ae,ee)}),delete Q.renderProxy),q.classList.remove(f)}(q),ee&&ee.parentNode&&ee.parentNode.removeChild(ee)}(ae)}},O.addEvent=k,O.removeEvent=L},8244:(de,ge,N)=>{"use strict";var O=N(3305),v=N(1607),u=N(8005);de.exports=O.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},u._enabled?u:v)},6747:(de,ge,N)=>{"use strict";de.exports={},de.exports.filler=N(6579),de.exports.legend=N(2230),de.exports.title=N(7412)},6579:(de,ge,N)=>{"use strict";var O=N(9800),v=N(9931),u=N(3305);O._set("global",{plugins:{filler:{propagate:!0}}});var f={dataset:function(k){var L=k.fill,A=k.chart,U=A.getDatasetMeta(L),K=U&&A.isDatasetVisible(L)&&U.dataset._children||[],re=K.length||0;return re?function(ve,Z){return Z=A)&&K;switch(B){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return B;default:return!1}}function M(k){var K,L=k.el._model||{},A=k.el._scale||{},U=k.fill,B=null;if(isFinite(U))return null;if("start"===U?B=void 0===L.scaleBottom?A.bottom:L.scaleBottom:"end"===U?B=void 0===L.scaleTop?A.top:L.scaleTop:void 0!==L.scaleZero?B=L.scaleZero:A.getBasePosition?B=A.getBasePosition():A.getBasePixel&&(B=A.getBasePixel()),null!=B){if(void 0!==B.x&&void 0!==B.y)return B;if("number"==typeof B&&isFinite(B))return{x:(K=A.isHorizontal())?B:null,y:K?null:B}}return null}function p(k,L,A){var re,B=k[L].fill,K=[L];if(!A)return B;for(;!1!==B&&-1===K.indexOf(B);){if(!isFinite(B))return B;if(!(re=k[B]))return!1;if(re.visible)return B;K.push(B),B=re.fill}return!1}function y(k){var L=k.fill,A="dataset";return!1===L?null:(isFinite(L)||(A="boundary"),f[A](k))}function x(k){return k&&!k.skip}function T(k,L,A,U,B){var K;if(U&&B){for(k.moveTo(L[0].x,L[0].y),K=1;K0;--K)u.canvas.lineTo(k,A[K],A[K-1],!0)}}de.exports={id:"filler",afterDatasetsUpdate:function(k,L){var K,re,ve,Z,A=(k.data.datasets||[]).length,U=L.propagate,B=[];for(re=0;re{"use strict";var O=N(9800),v=N(8839),u=N(3305),f=N(2294),h=u.noop;function M(x,T){return x.usePointStyle?T*Math.SQRT2:x.boxWidth}O._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(x,T){var S=T.datasetIndex,k=this.chart,L=k.getDatasetMeta(S);L.hidden=null===L.hidden?!k.data.datasets[S].hidden:null,k.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(x){var T=x.data;return u.isArray(T.datasets)?T.datasets.map(function(S,k){return{text:S.label,fillStyle:u.isArray(S.backgroundColor)?S.backgroundColor[0]:S.backgroundColor,hidden:!x.isDatasetVisible(k),lineCap:S.borderCapStyle,lineDash:S.borderDash,lineDashOffset:S.borderDashOffset,lineJoin:S.borderJoinStyle,lineWidth:S.borderWidth,strokeStyle:S.borderColor,pointStyle:S.pointStyle,datasetIndex:k}},this):[]}}},legendCallback:function(x){var T=[];T.push('
    ');for(var S=0;S'),x.data.datasets[S].label&&T.push(x.data.datasets[S].label),T.push("");return T.push("
"),T.join("")}});var p=v.extend({initialize:function(x){u.extend(this,x),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:h,update:function(x,T,S){var k=this;return k.beforeUpdate(),k.maxWidth=x,k.maxHeight=T,k.margins=S,k.beforeSetDimensions(),k.setDimensions(),k.afterSetDimensions(),k.beforeBuildLabels(),k.buildLabels(),k.afterBuildLabels(),k.beforeFit(),k.fit(),k.afterFit(),k.afterUpdate(),k.minSize},afterUpdate:h,beforeSetDimensions:h,setDimensions:function(){var x=this;x.isHorizontal()?(x.width=x.maxWidth,x.left=0,x.right=x.width):(x.height=x.maxHeight,x.top=0,x.bottom=x.height),x.paddingLeft=0,x.paddingTop=0,x.paddingRight=0,x.paddingBottom=0,x.minSize={width:0,height:0}},afterSetDimensions:h,beforeBuildLabels:h,buildLabels:function(){var x=this,T=x.options.labels||{},S=u.callback(T.generateLabels,[x.chart],x)||[];T.filter&&(S=S.filter(function(k){return T.filter(k,x.chart.data)})),x.options.reverse&&S.reverse(),x.legendItems=S},afterBuildLabels:h,beforeFit:h,fit:function(){var x=this,T=x.options,S=T.labels,k=T.display,L=x.ctx,A=O.global,U=u.valueOrDefault,B=U(S.fontSize,A.defaultFontSize),K=U(S.fontStyle,A.defaultFontStyle),re=U(S.fontFamily,A.defaultFontFamily),ve=u.fontString(B,K,re),Z=x.legendHitBoxes=[],X=x.minSize,he=x.isHorizontal();if(he?(X.width=x.maxWidth,X.height=k?10:0):(X.width=k?10:0,X.height=x.maxHeight),k)if(L.font=ve,he){var q=x.lineWidths=[0],Q=x.legendItems.length?B+S.padding:0;L.textAlign="left",L.textBaseline="top",u.each(x.legendItems,function(ke,Be){var st=M(S,B)+B/2+L.measureText(ke.text).width;q[q.length-1]+st+S.padding>=x.width&&(Q+=B+S.padding,q[q.length]=x.left),Z[Be]={left:0,top:0,width:st,height:B},q[q.length-1]+=st+S.padding}),X.height+=Q}else{var ee=S.padding,ae=x.columnWidths=[],le=S.padding,J=0,Te=0,Se=B+ee;u.each(x.legendItems,function(ke,Be){var st=M(S,B)+B/2+L.measureText(ke.text).width;Te+Se>X.height&&(le+=J+S.padding,ae.push(J),J=0,Te=0),J=Math.max(J,st),Te+=Se,Z[Be]={left:0,top:0,width:st,height:B}}),le+=J,ae.push(J),X.width+=le}x.width=X.width,x.height=X.height},afterFit:h,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var x=this,T=x.options,S=T.labels,k=O.global,L=k.elements.line,A=x.width,U=x.lineWidths;if(T.display){var q,B=x.ctx,K=u.valueOrDefault,re=K(S.fontColor,k.defaultFontColor),ve=K(S.fontSize,k.defaultFontSize),Z=K(S.fontStyle,k.defaultFontStyle),X=K(S.fontFamily,k.defaultFontFamily),he=u.fontString(ve,Z,X);B.textAlign="left",B.textBaseline="middle",B.lineWidth=.5,B.strokeStyle=re,B.fillStyle=re,B.font=he;var Q=M(S,ve),ee=x.legendHitBoxes,J=x.isHorizontal();q=J?{x:x.left+(A-U[0])/2,y:x.top+S.padding,line:0}:{x:x.left+S.padding,y:x.top+S.padding,line:0};var Te=ve+S.padding;u.each(x.legendItems,function(Se,ke){var Be=B.measureText(Se.text).width,tt=Q+ve/2+Be,st=q.x,at=q.y;J?st+tt>=A&&(at=q.y+=Te,q.line++,st=q.x=x.left+(A-U[q.line])/2):at+Te>x.bottom&&(st=q.x=st+x.columnWidths[q.line]+S.padding,at=q.y=x.top+S.padding,q.line++),function(Se,ke,Be){if(!(isNaN(Q)||Q<=0)){B.save(),B.fillStyle=K(Be.fillStyle,k.defaultColor),B.lineCap=K(Be.lineCap,L.borderCapStyle),B.lineDashOffset=K(Be.lineDashOffset,L.borderDashOffset),B.lineJoin=K(Be.lineJoin,L.borderJoinStyle),B.lineWidth=K(Be.lineWidth,L.borderWidth),B.strokeStyle=K(Be.strokeStyle,k.defaultColor);var tt=0===K(Be.lineWidth,L.borderWidth);if(B.setLineDash&&B.setLineDash(K(Be.lineDash,L.borderDash)),T.labels&&T.labels.usePointStyle){var st=ve*Math.SQRT2/2,at=st/Math.SQRT2;u.canvas.drawPoint(B,Be.pointStyle,st,Se+at,ke+at)}else tt||B.strokeRect(Se,ke,Q,ve),B.fillRect(Se,ke,Q,ve);B.restore()}}(st,at,Se),ee[ke].left=st,ee[ke].top=at,function(Se,ke,Be,tt){var st=ve/2,at=Q+st+Se,jt=ke+st;B.fillText(Be.text,at,jt),Be.hidden&&(B.beginPath(),B.lineWidth=2,B.moveTo(at,jt),B.lineTo(at+tt,jt),B.stroke())}(st,at,Se,Be),J?q.x+=tt+S.padding:q.y+=Te})}},handleEvent:function(x){var T=this,S=T.options,k="mouseup"===x.type?"click":x.type,L=!1;if("mousemove"===k){if(!S.onHover)return}else{if("click"!==k)return;if(!S.onClick)return}var A=x.x,U=x.y;if(A>=T.left&&A<=T.right&&U>=T.top&&U<=T.bottom)for(var B=T.legendHitBoxes,K=0;K=re.left&&A<=re.left+re.width&&U>=re.top&&U<=re.top+re.height){if("click"===k){S.onClick.call(T,x.native,T.legendItems[K]),L=!0;break}if("mousemove"===k){S.onHover.call(T,x.native,T.legendItems[K]),L=!0;break}}}return L}});function y(x,T){var S=new p({ctx:x.ctx,options:T,chart:x});f.configure(x,S,T),f.addBox(x,S),x.legend=S}de.exports={id:"legend",_element:p,beforeInit:function(x){var T=x.options.legend;T&&y(x,T)},beforeUpdate:function(x){var T=x.options.legend,S=x.legend;T?(u.mergeIf(T,O.global.legend),S?(f.configure(x,S,T),S.options=T):y(x,T)):S&&(f.removeBox(x,S),delete x.legend)},afterEvent:function(x,T){var S=x.legend;S&&S.handleEvent(T)}}},7412:(de,ge,N)=>{"use strict";var O=N(9800),v=N(8839),u=N(3305),f=N(2294),h=u.noop;O._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var M=v.extend({initialize:function(y){u.extend(this,y),this.legendHitBoxes=[]},beforeUpdate:h,update:function(y,x,T){var S=this;return S.beforeUpdate(),S.maxWidth=y,S.maxHeight=x,S.margins=T,S.beforeSetDimensions(),S.setDimensions(),S.afterSetDimensions(),S.beforeBuildLabels(),S.buildLabels(),S.afterBuildLabels(),S.beforeFit(),S.fit(),S.afterFit(),S.afterUpdate(),S.minSize},afterUpdate:h,beforeSetDimensions:h,setDimensions:function(){var y=this;y.isHorizontal()?(y.width=y.maxWidth,y.left=0,y.right=y.width):(y.height=y.maxHeight,y.top=0,y.bottom=y.height),y.paddingLeft=0,y.paddingTop=0,y.paddingRight=0,y.paddingBottom=0,y.minSize={width:0,height:0}},afterSetDimensions:h,beforeBuildLabels:h,buildLabels:h,afterBuildLabels:h,beforeFit:h,fit:function(){var y=this,T=y.options,S=T.display,k=(0,u.valueOrDefault)(T.fontSize,O.global.defaultFontSize),L=y.minSize,A=u.isArray(T.text)?T.text.length:1,U=u.options.toLineHeight(T.lineHeight,k),B=S?A*U+2*T.padding:0;y.isHorizontal()?(L.width=y.maxWidth,L.height=B):(L.width=B,L.height=y.maxHeight),y.width=L.width,y.height=L.height},afterFit:h,isHorizontal:function(){var y=this.options.position;return"top"===y||"bottom"===y},draw:function(){var y=this,x=y.ctx,T=u.valueOrDefault,S=y.options,k=O.global;if(S.display){var Q,ee,ae,L=T(S.fontSize,k.defaultFontSize),A=T(S.fontStyle,k.defaultFontStyle),U=T(S.fontFamily,k.defaultFontFamily),B=u.fontString(L,A,U),K=u.options.toLineHeight(S.lineHeight,L),re=K/2+S.padding,ve=0,Z=y.top,X=y.left,he=y.bottom,q=y.right;x.fillStyle=T(S.fontColor,k.defaultFontColor),x.font=B,y.isHorizontal()?(ee=X+(q-X)/2,ae=Z+re,Q=q-X):(ee="left"===S.position?X+re:q-re,ae=Z+(he-Z)/2,Q=he-Z,ve=Math.PI*("left"===S.position?-.5:.5)),x.save(),x.translate(ee,ae),x.rotate(ve),x.textAlign="center",x.textBaseline="middle";var le=S.text;if(u.isArray(le))for(var J=0,Te=0;Te{"use strict";de.exports=function(ge){var O=ge.Scale.extend({getLabels:function(){var v=this.chart.data;return this.options.labels||(this.isHorizontal()?v.xLabels:v.yLabels)||v.labels},determineDataLimits:function(){var f,v=this,u=v.getLabels();v.minIndex=0,v.maxIndex=u.length-1,void 0!==v.options.ticks.min&&(f=u.indexOf(v.options.ticks.min),v.minIndex=-1!==f?f:v.minIndex),void 0!==v.options.ticks.max&&(f=u.indexOf(v.options.ticks.max),v.maxIndex=-1!==f?f:v.maxIndex),v.min=u[v.minIndex],v.max=u[v.maxIndex]},buildTicks:function(){var v=this,u=v.getLabels();v.ticks=0===v.minIndex&&v.maxIndex===u.length-1?u:u.slice(v.minIndex,v.maxIndex+1)},getLabelForIndex:function(v,u){var f=this,h=f.chart.data,M=f.isHorizontal();return h.yLabels&&!M?f.getRightValue(h.datasets[u].data[v]):f.ticks[v-f.minIndex]},getPixelForValue:function(v,u){var p,f=this,h=f.options.offset,M=Math.max(f.maxIndex+1-f.minIndex-(h?0:1),1);if(null!=v&&(p=f.isHorizontal()?v.x:v.y),void 0!==p||void 0!==v&&isNaN(u)){var x=f.getLabels().indexOf(v=p||v);u=-1!==x?x:u}if(f.isHorizontal()){var T=f.width/M,S=T*(u-f.minIndex);return h&&(S+=T/2),f.left+Math.round(S)}var k=f.height/M,L=k*(u-f.minIndex);return h&&(L+=k/2),f.top+Math.round(L)},getPixelForTick:function(v){return this.getPixelForValue(this.ticks[v],v+this.minIndex,null)},getValueForPixel:function(v){var u=this,f=u.options.offset,M=Math.max(u._ticks.length-(f?0:1),1),p=u.isHorizontal(),y=(p?u.width:u.height)/M;return v-=p?u.left:u.top,f&&(v-=y/2),(v<=0?0:Math.round(v/y))+u.minIndex},getBasePixel:function(){return this.bottom}});ge.scaleService.registerScaleType("category",O,{position:"bottom"})}},1704:(de,ge,N)=>{"use strict";var O=N(9800),v=N(3305),u=N(8347);de.exports=function(f){var h={position:"left",ticks:{callback:u.formatters.linear}},M=f.LinearScaleBase.extend({determineDataLimits:function(){var p=this,y=p.options,x=p.chart,S=x.data.datasets,k=p.isHorizontal();function U(re){return k?re.xAxisID===p.id:re.yAxisID===p.id}p.min=null,p.max=null;var B=y.stacked;if(void 0===B&&v.each(S,function(re,ve){if(!B){var Z=x.getDatasetMeta(ve);x.isDatasetVisible(ve)&&U(Z)&&void 0!==Z.stack&&(B=!0)}}),y.stacked||B){var K={};v.each(S,function(re,ve){var Z=x.getDatasetMeta(ve),X=[Z.type,void 0===y.stacked&&void 0===Z.stack?ve:"",Z.stack].join(".");void 0===K[X]&&(K[X]={positiveValues:[],negativeValues:[]});var he=K[X].positiveValues,q=K[X].negativeValues;x.isDatasetVisible(ve)&&U(Z)&&v.each(re.data,function(Q,ee){var ae=+p.getRightValue(Q);isNaN(ae)||Z.data[ee].hidden||(he[ee]=he[ee]||0,q[ee]=q[ee]||0,y.relativePoints?he[ee]=100:ae<0?q[ee]+=ae:he[ee]+=ae)})}),v.each(K,function(re){var ve=re.positiveValues.concat(re.negativeValues),Z=v.min(ve),X=v.max(ve);p.min=null===p.min?Z:Math.min(p.min,Z),p.max=null===p.max?X:Math.max(p.max,X)})}else v.each(S,function(re,ve){var Z=x.getDatasetMeta(ve);x.isDatasetVisible(ve)&&U(Z)&&v.each(re.data,function(X,he){var q=+p.getRightValue(X);isNaN(q)||Z.data[he].hidden||((null===p.min||qp.max)&&(p.max=q))})});p.min=isFinite(p.min)&&!isNaN(p.min)?p.min:0,p.max=isFinite(p.max)&&!isNaN(p.max)?p.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var p,y=this,x=y.options.ticks;if(y.isHorizontal())p=Math.min(x.maxTicksLimit?x.maxTicksLimit:11,Math.ceil(y.width/50));else{var T=v.valueOrDefault(x.fontSize,O.global.defaultFontSize);p=Math.min(x.maxTicksLimit?x.maxTicksLimit:11,Math.ceil(y.height/(2*T)))}return p},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(p,y){return+this.getRightValue(this.chart.data.datasets[y].data[p])},getPixelForValue:function(p){var y=this,x=y.start,T=+y.getRightValue(p),k=y.end-x;return y.isHorizontal()?y.left+y.width/k*(T-x):y.bottom-y.height/k*(T-x)},getValueForPixel:function(p){var y=this,x=y.isHorizontal();return y.start+(x?p-y.left:y.bottom-p)/(x?y.width:y.height)*(y.end-y.start)},getPixelForTick:function(p){return this.getPixelForValue(this.ticksAsNumbers[p])}});f.scaleService.registerScaleType("linear",M,h)}},8351:(de,ge,N)=>{"use strict";var O=N(3305);de.exports=function(u){var f=O.noop;u.LinearScaleBase=u.Scale.extend({getRightValue:function(h){return"string"==typeof h?+h:u.Scale.prototype.getRightValue.call(this,h)},handleTickRangeOptions:function(){var h=this,p=h.options.ticks;if(p.beginAtZero){var y=O.sign(h.min),x=O.sign(h.max);y<0&&x<0?h.max=0:y>0&&x>0&&(h.min=0)}var T=void 0!==p.min||void 0!==p.suggestedMin,S=void 0!==p.max||void 0!==p.suggestedMax;void 0!==p.min?h.min=p.min:void 0!==p.suggestedMin&&(h.min=null===h.min?p.suggestedMin:Math.min(h.min,p.suggestedMin)),void 0!==p.max?h.max=p.max:void 0!==p.suggestedMax&&(h.max=null===h.max?p.suggestedMax:Math.max(h.max,p.suggestedMax)),T!==S&&h.min>=h.max&&(T?h.max=h.min+1:h.min=h.max-1),h.min===h.max&&(h.max++,p.beginAtZero||h.min--)},getTickLimit:f,handleDirectionalChanges:f,buildTicks:function(){var h=this,p=h.options.ticks,y=h.getTickLimit(),x={maxTicks:y=Math.max(2,y),min:p.min,max:p.max,stepSize:O.valueOrDefault(p.fixedStepSize,p.stepSize)},T=h.ticks=function v(u,f){var M,h=[];if(u.stepSize&&u.stepSize>0)M=u.stepSize;else{var p=O.niceNum(f.max-f.min,!1);M=O.niceNum(p/(u.maxTicks-1),!0)}var y=Math.floor(f.min/M)*M,x=Math.ceil(f.max/M)*M;u.min&&u.max&&u.stepSize&&O.almostWhole((u.max-u.min)/u.stepSize,M/1e3)&&(y=u.min,x=u.max);var T=(x-y)/M;T=O.almostEquals(T,Math.round(T),M/1e3)?Math.round(T):Math.ceil(T);var S=1;M<1&&(S=Math.pow(10,M.toString().length-2),y=Math.round(y*S)/S,x=Math.round(x*S)/S),h.push(void 0!==u.min?u.min:y);for(var k=1;k{"use strict";var O=N(3305),v=N(8347);de.exports=function(f){var h={position:"left",ticks:{callback:v.formatters.logarithmic}},M=f.Scale.extend({determineDataLimits:function(){var p=this,y=p.options,x=p.chart,S=x.data.datasets,k=p.isHorizontal();function L(B){return k?B.xAxisID===p.id:B.yAxisID===p.id}p.min=null,p.max=null,p.minNotZero=null;var A=y.stacked;if(void 0===A&&O.each(S,function(B,K){if(!A){var re=x.getDatasetMeta(K);x.isDatasetVisible(K)&&L(re)&&void 0!==re.stack&&(A=!0)}}),y.stacked||A){var U={};O.each(S,function(B,K){var re=x.getDatasetMeta(K),ve=[re.type,void 0===y.stacked&&void 0===re.stack?K:"",re.stack].join(".");x.isDatasetVisible(K)&&L(re)&&(void 0===U[ve]&&(U[ve]=[]),O.each(B.data,function(Z,X){var he=U[ve],q=+p.getRightValue(Z);isNaN(q)||re.data[X].hidden||q<0||(he[X]=he[X]||0,he[X]+=q)}))}),O.each(U,function(B){if(B.length>0){var K=O.min(B),re=O.max(B);p.min=null===p.min?K:Math.min(p.min,K),p.max=null===p.max?re:Math.max(p.max,re)}})}else O.each(S,function(B,K){var re=x.getDatasetMeta(K);x.isDatasetVisible(K)&&L(re)&&O.each(B.data,function(ve,Z){var X=+p.getRightValue(ve);isNaN(X)||re.data[Z].hidden||X<0||((null===p.min||Xp.max)&&(p.max=X),0!==X&&(null===p.minNotZero||X0?p.min:p.max<1?Math.pow(10,Math.floor(O.log10(p.max))):1)},buildTicks:function(){var p=this,x=p.options.ticks,T=!p.isHorizontal(),k=p.ticks=function u(f,h){var S,k,M=[],p=O.valueOrDefault,y=p(f.min,Math.pow(10,Math.floor(O.log10(h.min)))),x=Math.floor(O.log10(h.max)),T=Math.ceil(h.max/Math.pow(10,x));0===y?(S=Math.floor(O.log10(h.minNotZero)),k=Math.floor(h.minNotZero/Math.pow(10,S)),M.push(y),y=k*Math.pow(10,S)):(S=Math.floor(O.log10(y)),k=Math.floor(y/Math.pow(10,S)));var L=S<0?Math.pow(10,Math.abs(S)):1;do{M.push(y),10==++k&&(k=1,L=++S>=0?1:L),y=Math.round(k*Math.pow(10,S)*L)/L}while(S{"use strict";var O=N(9800),v=N(3305),u=N(8347);de.exports=function(f){var h=O.global,M={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:u.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(Z){return Z}}};function p(Z){var X=Z.options;return X.angleLines.display||X.pointLabels.display?Z.chart.data.labels.length:0}function y(Z){var X=Z.options.pointLabels,he=v.valueOrDefault(X.fontSize,h.defaultFontSize),q=v.valueOrDefault(X.fontStyle,h.defaultFontStyle),Q=v.valueOrDefault(X.fontFamily,h.defaultFontFamily);return{size:he,style:q,family:Q,font:v.fontString(he,q,Q)}}function x(Z,X,he){return v.isArray(he)?{w:v.longestText(Z,Z.font,he),h:he.length*X+1.5*(he.length-1)*X}:{w:Z.measureText(he).width,h:X}}function T(Z,X,he,q,Q){return Z===q||Z===Q?{start:X-he/2,end:X+he/2}:ZQ?{start:X-he-5,end:X}:{start:X,end:X+he+5}}function L(Z){return 0===Z||180===Z?"center":Z<180?"left":"right"}function A(Z,X,he,q){if(v.isArray(X))for(var Q=he.y,ee=1.5*q,ae=0;ae270||Z<90)&&(he.y-=X.h)}function re(Z){return v.isNumber(Z)?Z:0}var ve=f.LinearScaleBase.extend({setDimensions:function(){var Z=this,X=Z.options,he=X.ticks;Z.width=Z.maxWidth,Z.height=Z.maxHeight,Z.xCenter=Math.round(Z.width/2),Z.yCenter=Math.round(Z.height/2);var q=v.min([Z.height,Z.width]),Q=v.valueOrDefault(he.fontSize,h.defaultFontSize);Z.drawingArea=X.display?q/2-(Q/2+he.backdropPaddingY):q/2},determineDataLimits:function(){var Z=this,X=Z.chart,he=Number.POSITIVE_INFINITY,q=Number.NEGATIVE_INFINITY;v.each(X.data.datasets,function(Q,ee){if(X.isDatasetVisible(ee)){var ae=X.getDatasetMeta(ee);v.each(Q.data,function(le,J){var Te=+Z.getRightValue(le);isNaN(Te)||ae.data[J].hidden||(he=Math.min(Te,he),q=Math.max(Te,q))})}}),Z.min=he===Number.POSITIVE_INFINITY?0:he,Z.max=q===Number.NEGATIVE_INFINITY?0:q,Z.handleTickRangeOptions()},getTickLimit:function(){var Z=this.options.ticks,X=v.valueOrDefault(Z.fontSize,h.defaultFontSize);return Math.min(Z.maxTicksLimit?Z.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*X)))},convertTicksToLabels:function(){var Z=this;f.LinearScaleBase.prototype.convertTicksToLabels.call(Z),Z.pointLabels=Z.chart.data.labels.map(Z.options.pointLabels.callback,Z)},getLabelForIndex:function(Z,X){return+this.getRightValue(this.chart.data.datasets[X].data[Z])},fit:function(){this.options.pointLabels.display?function S(Z){var ee,ae,le,X=y(Z),he=Math.min(Z.height/2,Z.width/2),q={r:Z.width,l:0,t:Z.height,b:0},Q={};Z.ctx.font=X.font,Z._pointLabelSizes=[];var J=p(Z);for(ee=0;eeq.r&&(q.r=ke.end,Q.r=Te),Be.startq.b&&(q.b=Be.end,Q.b=Te)}Z.setReductions(he,q,Q)}(this):function k(Z){var X=Math.min(Z.height/2,Z.width/2);Z.drawingArea=Math.round(X),Z.setCenterPoint(0,0,0,0)}(this)},setReductions:function(Z,X,he){var q=this,Q=X.l/Math.sin(he.l),ee=Math.max(X.r-q.width,0)/Math.sin(he.r),ae=-X.t/Math.cos(he.t),le=-Math.max(X.b-q.height,0)/Math.cos(he.b);Q=re(Q),ee=re(ee),ae=re(ae),le=re(le),q.drawingArea=Math.min(Math.round(Z-(Q+ee)/2),Math.round(Z-(ae+le)/2)),q.setCenterPoint(Q,ee,ae,le)},setCenterPoint:function(Z,X,he,q){var Q=this,le=he+Q.drawingArea,J=Q.height-q-Q.drawingArea;Q.xCenter=Math.round((Z+Q.drawingArea+(Q.width-X-Q.drawingArea))/2+Q.left),Q.yCenter=Math.round((le+J)/2+Q.top)},getIndexAngle:function(Z){return Z*(2*Math.PI/p(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(Z){var X=this;if(null===Z)return 0;var he=X.drawingArea/(X.max-X.min);return X.options.ticks.reverse?(X.max-Z)*he:(Z-X.min)*he},getPointPosition:function(Z,X){var q=this.getIndexAngle(Z)-Math.PI/2;return{x:Math.round(Math.cos(q)*X)+this.xCenter,y:Math.round(Math.sin(q)*X)+this.yCenter}},getPointPositionForValue:function(Z,X){return this.getPointPosition(Z,this.getDistanceFromCenterForValue(X))},getBasePosition:function(){var Z=this,X=Z.min,he=Z.max;return Z.getPointPositionForValue(0,Z.beginAtZero?0:X<0&&he<0?he:X>0&&he>0?X:0)},draw:function(){var Z=this,X=Z.options,he=X.gridLines,q=X.ticks,Q=v.valueOrDefault;if(X.display){var ee=Z.ctx,ae=this.getIndexAngle(0),le=Q(q.fontSize,h.defaultFontSize),J=Q(q.fontStyle,h.defaultFontStyle),Te=Q(q.fontFamily,h.defaultFontFamily),Se=v.fontString(le,J,Te);v.each(Z.ticks,function(ke,Be){if(Be>0||q.reverse){var tt=Z.getDistanceFromCenterForValue(Z.ticksAsNumbers[Be]);if(he.display&&0!==Be&&function K(Z,X,he,q){var Q=Z.ctx;if(Q.strokeStyle=v.valueAtIndexOrDefault(X.color,q-1),Q.lineWidth=v.valueAtIndexOrDefault(X.lineWidth,q-1),Z.options.gridLines.circular)Q.beginPath(),Q.arc(Z.xCenter,Z.yCenter,he,0,2*Math.PI),Q.closePath(),Q.stroke();else{var ee=p(Z);if(0===ee)return;Q.beginPath();var ae=Z.getPointPosition(0,he);Q.moveTo(ae.x,ae.y);for(var le=1;le=0;le--){if(q.display){var J=Z.getPointPosition(le,ee);X.beginPath(),X.moveTo(Z.xCenter,Z.yCenter),X.lineTo(J.x,J.y),X.stroke(),X.closePath()}if(Q.display){var Te=Z.getPointPosition(le,ee+5),Se=v.valueAtIndexOrDefault(Q.fontColor,le,h.defaultFontColor);X.font=ae.font,X.fillStyle=Se;var ke=Z.getIndexAngle(le),Be=v.toDegrees(ke);X.textAlign=L(Be),U(Be,Z._pointLabelSizes[le],Te),A(X,Z.pointLabels[le]||"",Te,ae.size)}}}(Z)}}});f.scaleService.registerScaleType("radialLinear",ve,M)}},4215:(de,ge,N)=>{"use strict";var O=N(5439);O="function"==typeof O?O:window.moment;var v=N(9800),u=N(3305),f=Number.MIN_SAFE_INTEGER||-9007199254740991,h=Number.MAX_SAFE_INTEGER||9007199254740991,M={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},p=Object.keys(M);function y(q,Q){return q-Q}function x(q){var ae,le,J,Q={},ee=[];for(ae=0,le=q.length;ae=0&&ae<=le;){if(Se=q[J=ae+le>>1],!(Te=q[J-1]||null))return{lo:null,hi:Se};if(Se[Q]ee))return{lo:Te,hi:Se};le=J-1}}return{lo:Se,hi:null}}(q,Q,ee),J=le.lo?le.hi?le.lo:q[q.length-2]:q[0],Te=le.lo?le.hi?le.hi:q[q.length-1]:q[1],Se=Te[Q]-J[Q];return J[ae]+(Te[ae]-J[ae])*(Se?(ee-J[Q])/Se:0)}function L(q,Q){var ee=Q.parser,ae=Q.parser||Q.format;return"function"==typeof ee?ee(q):"string"==typeof q&&"string"==typeof ae?O(q,ae):(q instanceof O||(q=O(q)),q.isValid()?q:"function"==typeof ae?ae(q):q)}function A(q,Q){if(u.isNullOrUndef(q))return null;var ee=Q.options.time,ae=L(Q.getRightValue(q),ee);return ae.isValid()?(ee.round&&ae.startOf(ee.round),ae.valueOf()):null}function re(q){for(var Q=p.indexOf(q)+1,ee=p.length;Q=le&&at<=J&&Be.push(at);return ae.min=le,ae.max=J,ae._unit=Se.unit||function K(q,Q,ee,ae){var Te,Se,le=O.duration(O(ae).diff(O(ee)));for(Te=p.length-1;Te>=p.indexOf(Q);Te--)if(M[Se=p[Te]].common&&le.as(Se)>=q.length)return Se;return p[Q?p.indexOf(Q):0]}(Be,Se.minUnit,ae.min,ae.max),ae._majorUnit=re(ae._unit),ae._table=function T(q,Q,ee,ae){if("linear"===ae||!q.length)return[{time:Q,pos:0},{time:ee,pos:1}];var Te,Se,ke,Be,tt,le=[],J=[Q];for(Te=0,Se=q.length;TeQ&&Be1?Q[1]:ae,"pos")-k(q,"time",ke,"pos"))/2),le.time.max||(ke=Q.length>1?Q[Q.length-2]:ee,Te=(k(q,"time",Q[Q.length-1],"pos")-k(q,"time",ke,"pos"))/2)),{left:J,right:Te}}(ae._table,Be,le,J,Te),ae._labelFormat=function he(q,Q){var ee,ae,le,J=q.length;for(ee=0;ee=0&&ae0?Be:1}});q.scaleService.registerScaleType("time",ee,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},3207:(de,ge,N)=>{var O=N(9914);function v(X){if(X){var le=[0,0,0],J=1,Te=X.match(/^#([a-fA-F0-9]{3})$/i);if(Te){Te=Te[1];for(var Se=0;Se{var O=N(7227),v=N(3207),u=function(f){return f instanceof u?f:this instanceof u?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof f?(h=v.getRgba(f))?this.setValues("rgb",h):(h=v.getHsla(f))?this.setValues("hsl",h):(h=v.getHwb(f))&&this.setValues("hwb",h):"object"==typeof f&&(void 0!==(h=f).r||void 0!==h.red?this.setValues("rgb",h):void 0!==h.l||void 0!==h.lightness?this.setValues("hsl",h):void 0!==h.v||void 0!==h.value?this.setValues("hsv",h):void 0!==h.w||void 0!==h.whiteness?this.setValues("hwb",h):(void 0!==h.c||void 0!==h.cyan)&&this.setValues("cmyk",h)))):new u(f);var h};u.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var f=this.values;return 1!==f.alpha?f.hwb.concat([f.alpha]):f.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var f=this.values;return f.rgb.concat([f.alpha])},hslaArray:function(){var f=this.values;return f.hsl.concat([f.alpha])},alpha:function(f){return void 0===f?this.values.alpha:(this.setValues("alpha",f),this)},red:function(f){return this.setChannel("rgb",0,f)},green:function(f){return this.setChannel("rgb",1,f)},blue:function(f){return this.setChannel("rgb",2,f)},hue:function(f){return f&&(f=(f%=360)<0?360+f:f),this.setChannel("hsl",0,f)},saturation:function(f){return this.setChannel("hsl",1,f)},lightness:function(f){return this.setChannel("hsl",2,f)},saturationv:function(f){return this.setChannel("hsv",1,f)},whiteness:function(f){return this.setChannel("hwb",1,f)},blackness:function(f){return this.setChannel("hwb",2,f)},value:function(f){return this.setChannel("hsv",2,f)},cyan:function(f){return this.setChannel("cmyk",0,f)},magenta:function(f){return this.setChannel("cmyk",1,f)},yellow:function(f){return this.setChannel("cmyk",2,f)},black:function(f){return this.setChannel("cmyk",3,f)},hexString:function(){return v.hexString(this.values.rgb)},rgbString:function(){return v.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return v.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return v.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return v.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return v.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return v.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return v.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var f=this.values.rgb;return f[0]<<16|f[1]<<8|f[2]},luminosity:function(){for(var f=this.values.rgb,h=[],M=0;MM?(h+.05)/(M+.05):(M+.05)/(h+.05)},level:function(f){var h=this.contrast(f);return h>=7.1?"AAA":h>=4.5?"AA":""},dark:function(){var f=this.values.rgb;return(299*f[0]+587*f[1]+114*f[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var f=[],h=0;h<3;h++)f[h]=255-this.values.rgb[h];return this.setValues("rgb",f),this},lighten:function(f){var h=this.values.hsl;return h[2]+=h[2]*f,this.setValues("hsl",h),this},darken:function(f){var h=this.values.hsl;return h[2]-=h[2]*f,this.setValues("hsl",h),this},saturate:function(f){var h=this.values.hsl;return h[1]+=h[1]*f,this.setValues("hsl",h),this},desaturate:function(f){var h=this.values.hsl;return h[1]-=h[1]*f,this.setValues("hsl",h),this},whiten:function(f){var h=this.values.hwb;return h[1]+=h[1]*f,this.setValues("hwb",h),this},blacken:function(f){var h=this.values.hwb;return h[2]+=h[2]*f,this.setValues("hwb",h),this},greyscale:function(){var f=this.values.rgb,h=.3*f[0]+.59*f[1]+.11*f[2];return this.setValues("rgb",[h,h,h]),this},clearer:function(f){var h=this.values.alpha;return this.setValues("alpha",h-h*f),this},opaquer:function(f){var h=this.values.alpha;return this.setValues("alpha",h+h*f),this},rotate:function(f){var h=this.values.hsl,M=(h[0]+f)%360;return h[0]=M<0?360+M:M,this.setValues("hsl",h),this},mix:function(f,h){var M=this,p=f,y=void 0===h?.5:h,x=2*y-1,T=M.alpha()-p.alpha(),S=((x*T==-1?x:(x+T)/(1+x*T))+1)/2,k=1-S;return this.rgb(S*M.red()+k*p.red(),S*M.green()+k*p.green(),S*M.blue()+k*p.blue()).alpha(M.alpha()*y+p.alpha()*(1-y))},toJSON:function(){return this.rgb()},clone:function(){var p,y,f=new u,h=this.values,M=f.values;for(var x in h)h.hasOwnProperty(x)&&("[object Array]"===(y={}.toString.call(p=h[x]))?M[x]=p.slice(0):"[object Number]"===y?M[x]=p:console.error("unexpected color value:",p));return f}},u.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},u.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},u.prototype.getValues=function(f){for(var h=this.values,M={},p=0;p{function ge(W){var me,De,oe=W[0]/255,te=W[1]/255,pe=W[2]/255,fe=Math.min(oe,te,pe),ue=Math.max(oe,te,pe),be=ue-fe;return ue==fe?me=0:oe==ue?me=(te-pe)/be:te==ue?me=2+(pe-oe)/be:pe==ue&&(me=4+(oe-te)/be),(me=Math.min(60*me,360))<0&&(me+=360),De=(fe+ue)/2,[me,100*(ue==fe?0:De<=.5?be/(ue+fe):be/(2-ue-fe)),100*De]}function N(W){var me,Me,oe=W[0],te=W[1],pe=W[2],fe=Math.min(oe,te,pe),ue=Math.max(oe,te,pe),be=ue-fe;return Me=0==ue?0:be/ue*1e3/10,ue==fe?me=0:oe==ue?me=(te-pe)/be:te==ue?me=2+(pe-oe)/be:pe==ue&&(me=4+(oe-te)/be),(me=Math.min(60*me,360))<0&&(me+=360),[me,Me,ue/255*1e3/10]}function O(W){var oe=W[0],te=W[1],ue=W[2];return[ge(W)[0],1/255*Math.min(oe,Math.min(te,ue))*100,100*(ue=1-1/255*Math.max(oe,Math.max(te,ue)))]}function v(W){var me,oe=W[0]/255,te=W[1]/255,pe=W[2]/255;return[100*((1-oe-(me=Math.min(1-oe,1-te,1-pe)))/(1-me)||0),100*((1-te-me)/(1-me)||0),100*((1-pe-me)/(1-me)||0),100*me]}function u(W){return dr[JSON.stringify(W)]}function f(W){var oe=W[0]/255,te=W[1]/255,pe=W[2]/255;return[100*(.4124*(oe=oe>.04045?Math.pow((oe+.055)/1.055,2.4):oe/12.92)+.3576*(te=te>.04045?Math.pow((te+.055)/1.055,2.4):te/12.92)+.1805*(pe=pe>.04045?Math.pow((pe+.055)/1.055,2.4):pe/12.92)),100*(.2126*oe+.7152*te+.0722*pe),100*(.0193*oe+.1192*te+.9505*pe)]}function h(W){var oe=f(W),te=oe[0],pe=oe[1],fe=oe[2];return pe/=100,fe/=108.883,te=(te/=95.047)>.008856?Math.pow(te,1/3):7.787*te+16/116,[116*(pe=pe>.008856?Math.pow(pe,1/3):7.787*pe+16/116)-16,500*(te-pe),200*(pe-(fe=fe>.008856?Math.pow(fe,1/3):7.787*fe+16/116))]}function p(W){var fe,ue,be,me,Me,oe=W[0]/360,te=W[1]/100,pe=W[2]/100;if(0==te)return[Me=255*pe,Me,Me];fe=2*pe-(ue=pe<.5?pe*(1+te):pe+te-pe*te),me=[0,0,0];for(var De=0;De<3;De++)(be=oe+1/3*-(De-1))<0&&be++,be>1&&be--,me[De]=255*(Me=6*be<1?fe+6*(ue-fe)*be:2*be<1?ue:3*be<2?fe+(ue-fe)*(2/3-be)*6:fe);return me}function k(W){var oe=W[0]/60,te=W[1]/100,Me=W[2]/100,pe=Math.floor(oe)%6,fe=oe-Math.floor(oe),ue=255*Me*(1-te),be=255*Me*(1-te*fe),me=255*Me*(1-te*(1-fe));switch(Me*=255,pe){case 0:return[Me,me,ue];case 1:return[be,Me,ue];case 2:return[ue,Me,me];case 3:return[ue,be,Me];case 4:return[me,ue,Me];case 5:return[Me,ue,be]}}function K(W){var ue,be,me,Me,oe=W[0]/360,te=W[1]/100,pe=W[2]/100,fe=te+pe;switch(fe>1&&(te/=fe,pe/=fe),me=6*oe-(ue=Math.floor(6*oe)),1&ue&&(me=1-me),Me=te+me*((be=1-pe)-te),ue){default:case 6:case 0:r=be,g=Me,b=te;break;case 1:r=Me,g=be,b=te;break;case 2:r=te,g=be,b=Me;break;case 3:r=te,g=Me,b=be;break;case 4:r=Me,g=te,b=be;break;case 5:r=be,g=te,b=Me}return[255*r,255*g,255*b]}function he(W){var te=W[1]/100,pe=W[2]/100,fe=W[3]/100;return[255*(1-Math.min(1,W[0]/100*(1-fe)+fe)),255*(1-Math.min(1,te*(1-fe)+fe)),255*(1-Math.min(1,pe*(1-fe)+fe))]}function le(W){var fe,ue,be,oe=W[0]/100,te=W[1]/100,pe=W[2]/100;return ue=-.9689*oe+1.8758*te+.0415*pe,be=.0557*oe+-.204*te+1.057*pe,fe=(fe=3.2406*oe+-1.5372*te+-.4986*pe)>.0031308?1.055*Math.pow(fe,1/2.4)-.055:fe*=12.92,ue=ue>.0031308?1.055*Math.pow(ue,1/2.4)-.055:ue*=12.92,be=be>.0031308?1.055*Math.pow(be,1/2.4)-.055:be*=12.92,[255*(fe=Math.min(Math.max(0,fe),1)),255*(ue=Math.min(Math.max(0,ue),1)),255*(be=Math.min(Math.max(0,be),1))]}function J(W){var oe=W[0],te=W[1],pe=W[2];return te/=100,pe/=108.883,oe=(oe/=95.047)>.008856?Math.pow(oe,1/3):7.787*oe+16/116,[116*(te=te>.008856?Math.pow(te,1/3):7.787*te+16/116)-16,500*(oe-te),200*(te-(pe=pe>.008856?Math.pow(pe,1/3):7.787*pe+16/116))]}function Se(W){var fe,ue,be,me,oe=W[0],te=W[1],pe=W[2];return oe<=8?me=(ue=100*oe/903.3)/100*7.787+16/116:(ue=100*Math.pow((oe+16)/116,3),me=Math.pow(ue/100,1/3)),[fe=fe/95.047<=.008856?fe=95.047*(te/500+me-16/116)/7.787:95.047*Math.pow(te/500+me,3),ue,be=be/108.883<=.008859?be=108.883*(me-pe/200-16/116)/7.787:108.883*Math.pow(me-pe/200,3)]}function ke(W){var ue,oe=W[0],te=W[1],pe=W[2];return(ue=360*Math.atan2(pe,te)/2/Math.PI)<0&&(ue+=360),[oe,Math.sqrt(te*te+pe*pe),ue]}function Be(W){return le(Se(W))}function tt(W){var be,te=W[1];return be=W[2]/360*2*Math.PI,[W[0],te*Math.cos(be),te*Math.sin(be)]}function jt(W){return Oi[W]}de.exports={rgb2hsl:ge,rgb2hsv:N,rgb2hwb:O,rgb2cmyk:v,rgb2keyword:u,rgb2xyz:f,rgb2lab:h,rgb2lch:function M(W){return ke(h(W))},hsl2rgb:p,hsl2hsv:function y(W){var te=W[1]/100,pe=W[2]/100;return 0===pe?[0,0,0]:[W[0],2*(te*=(pe*=2)<=1?pe:2-pe)/(pe+te)*100,(pe+te)/2*100]},hsl2hwb:function x(W){return O(p(W))},hsl2cmyk:function T(W){return v(p(W))},hsl2keyword:function S(W){return u(p(W))},hsv2rgb:k,hsv2hsl:function L(W){var fe,ue,te=W[1]/100,pe=W[2]/100;return fe=te*pe,[W[0],100*(fe=(fe/=(ue=(2-te)*pe)<=1?ue:2-ue)||0),100*(ue/=2)]},hsv2hwb:function A(W){return O(k(W))},hsv2cmyk:function U(W){return v(k(W))},hsv2keyword:function B(W){return u(k(W))},hwb2rgb:K,hwb2hsl:function re(W){return ge(K(W))},hwb2hsv:function ve(W){return N(K(W))},hwb2cmyk:function Z(W){return v(K(W))},hwb2keyword:function X(W){return u(K(W))},cmyk2rgb:he,cmyk2hsl:function q(W){return ge(he(W))},cmyk2hsv:function Q(W){return N(he(W))},cmyk2hwb:function ee(W){return O(he(W))},cmyk2keyword:function ae(W){return u(he(W))},keyword2rgb:jt,keyword2hsl:function an(W){return ge(jt(W))},keyword2hsv:function Zn(W){return N(jt(W))},keyword2hwb:function On(W){return O(jt(W))},keyword2cmyk:function zn(W){return v(jt(W))},keyword2lab:function Ge(W){return h(jt(W))},keyword2xyz:function Pi(W){return f(jt(W))},xyz2rgb:le,xyz2lab:J,xyz2lch:function Te(W){return ke(J(W))},lab2xyz:Se,lab2rgb:Be,lab2lch:ke,lch2lab:tt,lch2xyz:function st(W){return Se(tt(W))},lch2rgb:function at(W){return Be(tt(W))}};var Oi={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},dr={};for(var Xe in Oi)dr[JSON.stringify(Oi[Xe])]=Xe},7227:(de,ge,N)=>{var O=N(4126),v=function(){return new p};for(var u in O){v[u+"Raw"]=function(y){return function(x){return"number"==typeof x&&(x=Array.prototype.slice.call(arguments)),O[y](x)}}(u);var f=/(\w+)2(\w+)/.exec(u),h=f[1],M=f[2];(v[h]=v[h]||{})[M]=v[u]=function(y){return function(x){"number"==typeof x&&(x=Array.prototype.slice.call(arguments));var T=O[y](x);if("string"==typeof T||void 0===T)return T;for(var S=0;S{"use strict";de.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},7088:function(de,ge,N){!function(O){"use strict";O.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(u){return/^nm$/i.test(u)},meridiem:function(u,f,h){return u<12?h?"vm":"VM":h?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(u){return u+(1===u||8===u||u>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},2502:function(de,ge,N){!function(O){"use strict";O.defineLocale("ar-dz",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:4}})}(N(5439))},128:function(de,ge,N){!function(O){"use strict";O.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}})}(N(5439))},4519:function(de,ge,N){!function(O){"use strict";var v={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},u=function(y){return 0===y?0:1===y?1:2===y?2:y%100>=3&&y%100<=10?3:y%100>=11?4:5},f={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},h=function(y){return function(x,T,S,k){var L=u(x),A=f[y][u(x)];return 2===L&&(A=A[T?0:1]),A.replace(/%d/i,x)}},M=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];O.defineLocale("ar-ly",{months:M,monthsShort:M,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(y){return"\u0645"===y},meridiem:function(y,x,T){return y<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:h("s"),ss:h("s"),m:h("m"),mm:h("m"),h:h("h"),hh:h("h"),d:h("d"),dd:h("d"),M:h("M"),MM:h("M"),y:h("y"),yy:h("y")},preparse:function(y){return y.replace(/\u060c/g,",")},postformat:function(y){return y.replace(/\d/g,function(x){return v[x]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(N(5439))},5443:function(de,ge,N){!function(O){"use strict";O.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:6,doy:12}})}(N(5439))},7642:function(de,ge,N){!function(O){"use strict";var v={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},u={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};O.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(h){return"\u0645"===h},meridiem:function(h,M,p){return h<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(h){return h.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(M){return u[M]}).replace(/\u060c/g,",")},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(N(5439))},8592:function(de,ge,N){!function(O){"use strict";O.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}(N(5439))},7038:function(de,ge,N){!function(O){"use strict";var v={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},u={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},f=function(x){return 0===x?0:1===x?1:2===x?2:x%100>=3&&x%100<=10?3:x%100>=11?4:5},h={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},M=function(x){return function(T,S,k,L){var A=f(T),U=h[x][f(T)];return 2===A&&(U=U[S?0:1]),U.replace(/%d/i,T)}},p=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];O.defineLocale("ar",{months:p,monthsShort:p,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(x){return"\u0645"===x},meridiem:function(x,T,S){return x<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:M("s"),ss:M("s"),m:M("m"),mm:M("m"),h:M("h"),hh:M("h"),d:M("d"),dd:M("d"),M:M("M"),MM:M("M"),y:M("y"),yy:M("y")},preparse:function(x){return x.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(T){return u[T]}).replace(/\u060c/g,",")},postformat:function(x){return x.replace(/\d/g,function(T){return v[T]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(N(5439))},1213:function(de,ge,N){!function(O){"use strict";var v={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};O.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"birne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(f){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(f)},meridiem:function(f,h,M){return f<4?"gec\u0259":f<12?"s\u0259h\u0259r":f<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(f){if(0===f)return f+"-\u0131nc\u0131";var h=f%10;return f+(v[h]||v[f%100-h]||v[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},9191:function(de,ge,N){!function(O){"use strict";function u(h,M,p){return"m"===p?M?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===p?M?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":h+" "+function v(h,M){var p=h.split("_");return M%10==1&&M%100!=11?p[0]:M%10>=2&&M%10<=4&&(M%100<10||M%100>=20)?p[1]:p[2]}({ss:M?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:M?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:M?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[p],+h)}O.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:u,mm:u,h:u,hh:u,d:"\u0434\u0437\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(h){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(h)},meridiem:function(h,M,p){return h<4?"\u043d\u043e\u0447\u044b":h<12?"\u0440\u0430\u043d\u0456\u0446\u044b":h<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(h,M){switch(M){case"M":case"d":case"DDD":case"w":case"W":return h%10!=2&&h%10!=3||h%100==12||h%100==13?h+"-\u044b":h+"-\u0456";case"D":return h+"-\u0433\u0430";default:return h}},week:{dow:1,doy:7}})}(N(5439))},322:function(de,ge,N){!function(O){"use strict";O.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u043d\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(u){var f=u%10,h=u%100;return 0===u?u+"-\u0435\u0432":0===h?u+"-\u0435\u043d":h>10&&h<20?u+"-\u0442\u0438":1===f?u+"-\u0432\u0438":2===f?u+"-\u0440\u0438":7===f||8===f?u+"-\u043c\u0438":u+"-\u0442\u0438"},week:{dow:1,doy:7}})}(N(5439))},8042:function(de,ge,N){!function(O){"use strict";O.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(N(5439))},9620:function(de,ge,N){!function(O){"use strict";var v={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},u={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};O.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(h){return h.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u09b0\u09be\u09a4"===M&&h>=4||"\u09a6\u09c1\u09aa\u09c1\u09b0"===M&&h<5||"\u09ac\u09bf\u0995\u09be\u09b2"===M?h+12:h},meridiem:function(h,M,p){return h<4?"\u09b0\u09be\u09a4":h<10?"\u09b8\u0995\u09be\u09b2":h<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":h<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(N(5439))},9645:function(de,ge,N){!function(O){"use strict";var v={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},u={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};O.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(h){return h.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===M&&h>=4||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===M&&h<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===M?h+12:h},meridiem:function(h,M,p){return h<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":h<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":h<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":h<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}})}(N(5439))},5020:function(de,ge,N){!function(O){"use strict";function v(y,x,T){return y+" "+function h(y,x){return 2===x?function M(y){var x={m:"v",b:"v",d:"z"};return void 0===x[y.charAt(0)]?y:x[y.charAt(0)]+y.substring(1)}(y):y}({mm:"munutenn",MM:"miz",dd:"devezh"}[T],y)}function f(y){return y>9?f(y%10):y}O.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:v,h:"un eur",hh:"%d eur",d:"un devezh",dd:v,M:"ur miz",MM:v,y:"ur bloaz",yy:function u(y){switch(f(y)){case 1:case 3:case 4:case 5:case 9:return y+" bloaz";default:return y+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(y){return y+(1===y?"a\xf1":"vet")},week:{dow:1,doy:4}})}(N(5439))},4792:function(de,ge,N){!function(O){"use strict";function v(f,h,M){var p=f+" ";switch(M){case"ss":return p+(1===f?"sekunda":2===f||3===f||4===f?"sekunde":"sekundi");case"m":return h?"jedna minuta":"jedne minute";case"mm":return p+(1===f?"minuta":2===f||3===f||4===f?"minute":"minuta");case"h":return h?"jedan sat":"jednog sata";case"hh":return p+(1===f?"sat":2===f||3===f||4===f?"sata":"sati");case"dd":return p+(1===f?"dan":"dana");case"MM":return p+(1===f?"mjesec":2===f||3===f||4===f?"mjeseca":"mjeseci");case"yy":return p+(1===f?"godina":2===f||3===f||4===f?"godine":"godina")}}O.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:v,m:v,mm:v,h:v,hh:v,d:"dan",dd:v,M:"mjesec",MM:v,y:"godinu",yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},7980:function(de,ge,N){!function(O){"use strict";O.defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(u,f){var h=1===u?"r":2===u?"n":3===u?"r":4===u?"t":"\xe8";return("w"===f||"W"===f)&&(h="a"),u+h},week:{dow:1,doy:4}})}(N(5439))},7322:function(de,ge,N){!function(O){"use strict";var v="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),u="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_");function f(p){return p>1&&p<5&&1!=~~(p/10)}function h(p,y,x,T){var S=p+" ";switch(x){case"s":return y||T?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return y||T?S+(f(p)?"sekundy":"sekund"):S+"sekundami";case"m":return y?"minuta":T?"minutu":"minutou";case"mm":return y||T?S+(f(p)?"minuty":"minut"):S+"minutami";case"h":return y?"hodina":T?"hodinu":"hodinou";case"hh":return y||T?S+(f(p)?"hodiny":"hodin"):S+"hodinami";case"d":return y||T?"den":"dnem";case"dd":return y||T?S+(f(p)?"dny":"dn\xed"):S+"dny";case"M":return y||T?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return y||T?S+(f(p)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):S+"m\u011bs\xedci";case"y":return y||T?"rok":"rokem";case"yy":return y||T?S+(f(p)?"roky":"let"):S+"lety"}}O.defineLocale("cs",{months:v,monthsShort:u,monthsParse:function(p,y){var x,T=[];for(x=0;x<12;x++)T[x]=new RegExp("^"+p[x]+"$|^"+y[x]+"$","i");return T}(v,u),shortMonthsParse:function(p){var y,x=[];for(y=0;y<12;y++)x[y]=new RegExp("^"+p[y]+"$","i");return x}(u),longMonthsParse:function(p){var y,x=[];for(y=0;y<12;y++)x[y]=new RegExp("^"+p[y]+"$","i");return x}(v),weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},365:function(de,ge,N){!function(O){"use strict";O.defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(u){return u+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(u)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(u)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}})}(N(5439))},2092:function(de,ge,N){!function(O){"use strict";O.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(u){var h="";return u>20?h=40===u||50===u||60===u||80===u||100===u?"fed":"ain":u>0&&(h=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][u]),u+h},week:{dow:1,doy:4}})}(N(5439))},7387:function(de,ge,N){!function(O){"use strict";O.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},9459:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?y[M][0]:y[M][1]}O.defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:v,mm:"%d Minuten",h:v,hh:"%d Stunden",d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3694:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?y[M][0]:y[M][1]}O.defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:v,mm:"%d Minuten",h:v,hh:"%d Stunden",d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},4307:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[f+" Tage",f+" Tagen"],M:["ein Monat","einem Monat"],MM:[f+" Monate",f+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[f+" Jahre",f+" Jahren"]};return h?y[M][0]:y[M][1]}O.defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:v,mm:"%d Minuten",h:v,hh:"%d Stunden",d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},9659:function(de,ge,N){!function(O){"use strict";var v=["\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9","\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9","\u0789\u07a7\u0783\u07a8\u0797\u07aa","\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa","\u0789\u07ad","\u0796\u07ab\u0782\u07b0","\u0796\u07aa\u078d\u07a6\u0787\u07a8","\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa","\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa","\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa"],u=["\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6","\u0780\u07af\u0789\u07a6","\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6","\u0784\u07aa\u078b\u07a6","\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8","\u0780\u07aa\u0786\u07aa\u0783\u07aa","\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa"];O.defineLocale("dv",{months:v,monthsShort:v,weekdays:u,weekdaysShort:u,weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(h){return"\u0789\u078a"===h},meridiem:function(h,M,p){return h<12?"\u0789\u0786":"\u0789\u078a"},calendar:{sameDay:"[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT",nextDay:"[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT",nextWeek:"dddd LT",lastDay:"[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT",lastWeek:"[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT",sameElse:"L"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",ss:"d% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:7,doy:12}})}(N(5439))},3460:function(de,ge,N){!function(O){"use strict";O.defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(f,h){return f?"string"==typeof h&&/D/.test(h.substring(0,h.indexOf("MMMM")))?this._monthsGenitiveEl[f.month()]:this._monthsNominativeEl[f.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(f,h,M){return f>11?M?"\u03bc\u03bc":"\u039c\u039c":M?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(f){return"\u03bc"===(f+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){return 6===this.day()?"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT":"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"},sameElse:"L"},calendar:function(f,h){var M=this._calendarEl[f],p=h&&h.hours();return function v(f){return f instanceof Function||"[object Function]"===Object.prototype.toString.call(f)}(M)&&(M=M.apply(h)),M.replace("{}",p%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}})}(N(5439))},4369:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},530:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")}})}(N(5439))},9998:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},3391:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},5414:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")}})}(N(5439))},1248:function(de,ge,N){!function(O){"use strict";O.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},4530:function(de,ge,N){!function(O){"use strict";O.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(u){return"p"===u.charAt(0).toLowerCase()},meridiem:function(u,f,h){return u>11?h?"p.t.m.":"P.T.M.":h?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(N(5439))},8944:function(de,ge,N){!function(O){"use strict";var v="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),f=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],h=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;O.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(p,y){return p?/-MMM-/.test(y)?u[p.month()]:v[p.month()]:v},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},3609:function(de,ge,N){!function(O){"use strict";var v="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");O.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(h,M){return h?/-MMM-/.test(M)?u[h.month()]:v[h.month()]:v},monthsParseExact:!0,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"MMMM [de] D [de] YYYY",LLL:"MMMM [de] D [de] YYYY h:mm A",LLLL:"dddd, MMMM [de] D [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:6}})}(N(5439))},6866:function(de,ge,N){!function(O){"use strict";var v="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),u="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),f=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],h=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;O.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(p,y){return p?/-MMM-/.test(y)?u[p.month()]:v[p.month()]:v},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},6725:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],ss:[f+"sekundi",f+"sekundit"],m:["\xfche minuti","\xfcks minut"],mm:[f+" minuti",f+" minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:[f+" tunni",f+" tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:[f+" kuu",f+" kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:[f+" aasta",f+" aastat"]};return h?y[M][2]?y[M][2]:y[M][1]:p?y[M][0]:y[M][1]}O.defineLocale("et",{months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[T\xe4na,] LT",nextDay:"[Homme,] LT",nextWeek:"[J\xe4rgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:v,ss:v,m:v,mm:v,h:v,hh:v,d:v,dd:"%d p\xe4eva",M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},7931:function(de,ge,N){!function(O){"use strict";O.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6417:function(de,ge,N){!function(O){"use strict";var v={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},u={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};O.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(h){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(h)},meridiem:function(h,M,p){return h<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"\u062b\u0627\u0646\u06cc\u0647 d%",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/[\u06f0-\u06f9]/g,function(M){return u[M]}).replace(/\u060c/g,",")},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}})}(N(5439))},944:function(de,ge,N){!function(O){"use strict";var v="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),u=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",v[7],v[8],v[9]];function f(p,y,x,T){var S="";switch(x){case"s":return T?"muutaman sekunnin":"muutama sekunti";case"ss":return T?"sekunnin":"sekuntia";case"m":return T?"minuutin":"minuutti";case"mm":S=T?"minuutin":"minuuttia";break;case"h":return T?"tunnin":"tunti";case"hh":S=T?"tunnin":"tuntia";break;case"d":return T?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":S=T?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return T?"kuukauden":"kuukausi";case"MM":S=T?"kuukauden":"kuukautta";break;case"y":return T?"vuoden":"vuosi";case"yy":S=T?"vuoden":"vuotta"}return function h(p,y){return p<10?y?u[p]:v[p]:p}(p,T)+" "+S}O.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:f,ss:f,m:f,mm:f,h:f,hh:f,d:f,dd:f,M:f,MM:f,y:f,yy:f},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},5867:function(de,ge,N){!function(O){"use strict";O.defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minutt",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0i",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},6848:function(de,ge,N){!function(O){"use strict";O.defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(u,f){switch(f){default:case"M":case"Q":case"D":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}}})}(N(5439))},7773:function(de,ge,N){!function(O){"use strict";O.defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(u,f){switch(f){default:case"M":case"Q":case"D":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}},week:{dow:1,doy:4}})}(N(5439))},1636:function(de,ge,N){!function(O){"use strict";O.defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(u,f){switch(f){case"D":return u+(1===u?"er":"");default:case"M":case"Q":case"DDD":case"d":return u+(1===u?"er":"e");case"w":case"W":return u+(1===u?"re":"e")}},week:{dow:1,doy:4}})}(N(5439))},4940:function(de,ge,N){!function(O){"use strict";var v="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),u="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");O.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(h,M){return h?/-MMM-/.test(M)?u[h.month()]:v[h.month()]:v},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(h){return h+(1===h||8===h||h>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},6924:function(de,ge,N){!function(O){"use strict";O.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(y){return y+(1===y?"d":y%10==2?"na":"mh")},week:{dow:1,doy:4}})}(N(5439))},6398:function(de,ge,N){!function(O){"use strict";O.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(u){return 0===u.indexOf("un")?"n"+u:"en "+u},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},2545:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y={s:["thodde secondanim","thodde second"],ss:[f+" secondanim",f+" second"],m:["eka mintan","ek minute"],mm:[f+" mintanim",f+" mintam"],h:["eka horan","ek hor"],hh:[f+" horanim",f+" horam"],d:["eka disan","ek dis"],dd:[f+" disanim",f+" dis"],M:["eka mhoinean","ek mhoino"],MM:[f+" mhoineanim",f+" mhoine"],y:["eka vorsan","ek voros"],yy:[f+" vorsanim",f+" vorsam"]};return h?y[M][0]:y[M][1]}O.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:v,ss:v,m:v,mm:v,h:v,hh:v,d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(f,h){return"D"===h?f+"er":f},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(f,h){return 12===f&&(f=0),"rati"===h?f<4?f:f+12:"sokalli"===h?f:"donparam"===h?f>12?f:f+12:"sanje"===h?f+12:void 0},meridiem:function(f,h,M){return f<4?"rati":f<12?"sokalli":f<16?"donparam":f<20?"sanje":"rati"}})}(N(5439))},2641:function(de,ge,N){!function(O){"use strict";var v={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},u={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};O.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(h){return h.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0ab0\u0abe\u0aa4"===M?h<4?h:h+12:"\u0ab8\u0ab5\u0abe\u0ab0"===M?h:"\u0aac\u0aaa\u0acb\u0ab0"===M?h>=10?h:h+12:"\u0ab8\u0abe\u0a82\u0a9c"===M?h+12:void 0},meridiem:function(h,M,p){return h<4?"\u0ab0\u0abe\u0aa4":h<10?"\u0ab8\u0ab5\u0abe\u0ab0":h<17?"\u0aac\u0aaa\u0acb\u0ab0":h<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}})}(N(5439))},7536:function(de,ge,N){!function(O){"use strict";O.defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(u){return 2===u?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":u+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(u){return 2===u?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":u+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(u){return 2===u?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":u+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(u){return 2===u?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":u%10==0&&10!==u?u+" \u05e9\u05e0\u05d4":u+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(u){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(u)},meridiem:function(u,f,h){return u<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":u<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":u<12?h?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":u<18?h?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}})}(N(5439))},6335:function(de,ge,N){!function(O){"use strict";var v={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};O.defineLocale("hi",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0930\u093e\u0924"===M?h<4?h:h+12:"\u0938\u0941\u092c\u0939"===M?h:"\u0926\u094b\u092a\u0939\u0930"===M?h>=10?h:h+12:"\u0936\u093e\u092e"===M?h+12:void 0},meridiem:function(h,M,p){return h<4?"\u0930\u093e\u0924":h<10?"\u0938\u0941\u092c\u0939":h<17?"\u0926\u094b\u092a\u0939\u0930":h<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}})}(N(5439))},7458:function(de,ge,N){!function(O){"use strict";function v(f,h,M){var p=f+" ";switch(M){case"ss":return p+(1===f?"sekunda":2===f||3===f||4===f?"sekunde":"sekundi");case"m":return h?"jedna minuta":"jedne minute";case"mm":return p+(1===f?"minuta":2===f||3===f||4===f?"minute":"minuta");case"h":return h?"jedan sat":"jednog sata";case"hh":return p+(1===f?"sat":2===f||3===f||4===f?"sata":"sati");case"dd":return p+(1===f?"dan":"dana");case"MM":return p+(1===f?"mjesec":2===f||3===f||4===f?"mjeseca":"mjeseci");case"yy":return p+(1===f?"godina":2===f||3===f||4===f?"godine":"godina")}}O.defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:v,m:v,mm:v,h:v,hh:v,d:"dan",dd:v,M:"mjesec",MM:v,y:"godinu",yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6540:function(de,ge,N){!function(O){"use strict";var v="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function u(M,p,y,x){var T=M;switch(y){case"s":return x||p?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return T+(x||p)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(x||p?" perc":" perce");case"mm":return T+(x||p?" perc":" perce");case"h":return"egy"+(x||p?" \xf3ra":" \xf3r\xe1ja");case"hh":return T+(x||p?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(x||p?" nap":" napja");case"dd":return T+(x||p?" nap":" napja");case"M":return"egy"+(x||p?" h\xf3nap":" h\xf3napja");case"MM":return T+(x||p?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(x||p?" \xe9v":" \xe9ve");case"yy":return T+(x||p?" \xe9v":" \xe9ve")}return""}function f(M){return(M?"":"[m\xfalt] ")+"["+v[this.day()]+"] LT[-kor]"}O.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(M){return"u"===M.charAt(1).toLowerCase()},meridiem:function(M,p,y){return M<12?!0===y?"de":"DE":!0===y?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return f.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return f.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:u,ss:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},5283:function(de,ge,N){!function(O){"use strict";O.defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(u){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(u)},meridiem:function(u){return u<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":u<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":u<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(u,f){switch(f){case"DDD":case"w":case"W":case"DDDo":return 1===u?u+"-\u056b\u0576":u+"-\u0580\u0564";default:return u}},week:{dow:1,doy:7}})}(N(5439))},8780:function(de,ge,N){!function(O){"use strict";O.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"siang"===f?u>=11?u:u+12:"sore"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"siang":u<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},4205:function(de,ge,N){!function(O){"use strict";function v(h){return h%100==11||h%10!=1}function u(h,M,p,y){var x=h+" ";switch(p){case"s":return M||y?"nokkrar sek\xfandur":"nokkrum sek\xfandum";case"ss":return v(h)?x+(M||y?"sek\xfandur":"sek\xfandum"):x+"sek\xfanda";case"m":return M?"m\xedn\xfata":"m\xedn\xfatu";case"mm":return v(h)?x+(M||y?"m\xedn\xfatur":"m\xedn\xfatum"):M?x+"m\xedn\xfata":x+"m\xedn\xfatu";case"hh":return v(h)?x+(M||y?"klukkustundir":"klukkustundum"):x+"klukkustund";case"d":return M?"dagur":y?"dag":"degi";case"dd":return v(h)?M?x+"dagar":x+(y?"daga":"d\xf6gum"):M?x+"dagur":x+(y?"dag":"degi");case"M":return M?"m\xe1nu\xf0ur":y?"m\xe1nu\xf0":"m\xe1nu\xf0i";case"MM":return v(h)?M?x+"m\xe1nu\xf0ir":x+(y?"m\xe1nu\xf0i":"m\xe1nu\xf0um"):M?x+"m\xe1nu\xf0ur":x+(y?"m\xe1nu\xf0":"m\xe1nu\xf0i");case"y":return M||y?"\xe1r":"\xe1ri";case"yy":return v(h)?x+(M||y?"\xe1r":"\xe1rum"):x+(M||y?"\xe1r":"\xe1ri")}}O.defineLocale("is",{months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[\xed dag kl.] LT",nextDay:"[\xe1 morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xed g\xe6r kl.] LT",lastWeek:"[s\xed\xf0asta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:u,ss:u,m:u,mm:u,h:"klukkustund",hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},4211:function(de,ge,N){!function(O){"use strict";O.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){return 0===this.day()?"[la scorsa] dddd [alle] LT":"[lo scorso] dddd [alle] LT"},sameElse:"L"},relativeTime:{future:function(u){return(/^[0-9].+$/.test(u)?"tra":"in")+" "+u},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},1003:function(de,ge,N){!function(O){"use strict";O.defineLocale("ja",{months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(u){return"\u5348\u5f8c"===u},meridiem:function(u,f,h){return u<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:function(u){return u.week()=11?u:u+12:"sonten"===f||"ndalu"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"enjing":u<15?"siyang":u<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(N(5439))},851:function(de,ge,N){!function(O){"use strict";O.defineLocale("ka",{months:{standalone:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),format:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1".split("_")},monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(u){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(u)?u.replace(/\u10d8$/,"\u10e8\u10d8"):u+"\u10e8\u10d8"},past:function(u){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(u)?u.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(u)?u.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):void 0},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(u){return 0===u?u:1===u?u+"-\u10da\u10d8":u<20||u<=100&&u%20==0||u%100==0?"\u10db\u10d4-"+u:u+"-\u10d4"},week:{dow:1,doy:7}})}(N(5439))},6074:function(de,ge,N){!function(O){"use strict";var v={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};O.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(f){return f+(v[f]||v[f%10]||v[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},3343:function(de,ge,N){!function(O){"use strict";var v={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},u={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};O.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(h){return"\u179b\u17d2\u1784\u17b6\u1785"===h},meridiem:function(h,M,p){return h<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(h){return h.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},week:{dow:1,doy:4}})}(N(5439))},4799:function(de,ge,N){!function(O){"use strict";var v={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},u={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};O.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(h){return h.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===M?h<4?h:h+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===M?h:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===M?h>=10?h:h+12:"\u0cb8\u0c82\u0c9c\u0cc6"===M?h+12:void 0},meridiem:function(h,M,p){return h<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":h<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":h<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":h<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(h){return h+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}})}(N(5439))},3549:function(de,ge,N){!function(O){"use strict";O.defineLocale("ko",{months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\uc77c";case"M":return u+"\uc6d4";case"w":case"W":return u+"\uc8fc";default:return u}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(u){return"\uc624\ud6c4"===u},meridiem:function(u,f,h){return u<12?"\uc624\uc804":"\uc624\ud6c4"}})}(N(5439))},3125:function(de,ge,N){!function(O){"use strict";var v={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};O.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u0435 \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(f){return f+(v[f]||v[f%10]||v[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},9586:function(de,ge,N){!function(O){"use strict";function v(p,y,x,T){var S={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return y?S[x][0]:S[x][1]}function h(p){if(p=parseInt(p,10),isNaN(p))return!1;if(p<0)return!0;if(p<10)return 4<=p&&p<=7;if(p<100){var y=p%10;return h(0===y?p/10:y)}if(p<1e4){for(;p>=10;)p/=10;return h(p)}return h(p/=1e3)}O.defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function u(p){return h(p.substr(0,p.indexOf(" ")))?"a "+p:"an "+p},past:function f(p){return h(p.substr(0,p.indexOf(" ")))?"viru "+p:"virun "+p},s:"e puer Sekonnen",ss:"%d Sekonnen",m:v,mm:"%d Minutten",h:v,hh:"%d Stonnen",d:v,dd:"%d Deeg",M:v,MM:"%d M\xe9int",y:v,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},2349:function(de,ge,N){!function(O){"use strict";O.defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(u){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===u},meridiem:function(u,f,h){return u<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(u){return"\u0e97\u0eb5\u0ec8"+u}})}(N(5439))},2400:function(de,ge,N){!function(O){"use strict";var v={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function f(x,T,S,k){return T?M(S)[0]:k?M(S)[1]:M(S)[2]}function h(x){return x%10==0||x>10&&x<20}function M(x){return v[x].split("_")}function p(x,T,S,k){var L=x+" ";return 1===x?L+f(0,T,S[0],k):T?L+(h(x)?M(S)[1]:M(S)[0]):k?L+M(S)[1]:L+(h(x)?M(S)[1]:M(S)[2])}O.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function u(x,T,S,k){return T?"kelios sekund\u0117s":k?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:p,m:f,mm:p,h:f,hh:p,d:f,dd:p,M:f,MM:p,y:f,yy:p},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(x){return x+"-oji"},week:{dow:1,doy:4}})}(N(5439))},9991:function(de,ge,N){!function(O){"use strict";var v={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function u(y,x,T){return T?x%10==1&&x%100!=11?y[2]:y[3]:x%10==1&&x%100!=11?y[0]:y[1]}function f(y,x,T){return y+" "+u(v[T],y,x)}function h(y,x,T){return u(v[T],y,x)}O.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function M(y,x){return x?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:f,m:h,mm:f,h,hh:f,d:h,dd:f,M:h,MM:f,y:h,yy:f},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8477:function(de,ge,N){!function(O){"use strict";var v={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,M){var p=v.words[M];return 1===M.length?h?p[0]:p[1]:f+" "+v.correctGrammaticalCase(f,p)}};O.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:v.translate,m:v.translate,mm:v.translate,h:v.translate,hh:v.translate,d:"dan",dd:v.translate,M:"mjesec",MM:v.translate,y:"godinu",yy:v.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},5118:function(de,ge,N){!function(O){"use strict";O.defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},5943:function(de,ge,N){!function(O){"use strict";O.defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(u){var f=u%10,h=u%100;return 0===u?u+"-\u0435\u0432":0===h?u+"-\u0435\u043d":h>10&&h<20?u+"-\u0442\u0438":1===f?u+"-\u0432\u0438":2===f?u+"-\u0440\u0438":7===f||8===f?u+"-\u043c\u0438":u+"-\u0442\u0438"},week:{dow:1,doy:7}})}(N(5439))},3849:function(de,ge,N){!function(O){"use strict";O.defineLocale("ml",{months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),monthsParseExact:!0,weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),longDateFormat:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},calendar:{sameDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT",nextDay:"[\u0d28\u0d3e\u0d33\u0d46] LT",nextWeek:"dddd, LT",lastDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT",lastWeek:"[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",ss:"%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(u,f){return 12===u&&(u=0),"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"===f&&u>=4||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===f||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===f?u+12:u},meridiem:function(u,f,h){return u<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":u<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":u<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":u<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}})}(N(5439))},1977:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){switch(M){case"s":return h?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return f+(h?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return f+(h?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return f+(h?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return f+(h?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return f+(h?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return f+(h?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return f}}O.defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(f){return"\u04ae\u0425"===f},meridiem:function(f,h,M){return f<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:v,ss:v,m:v,mm:v,h:v,hh:v,d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(f,h){switch(h){case"d":case"D":case"DDD":return f+" \u04e9\u0434\u04e9\u0440";default:return f}}})}(N(5439))},6184:function(de,ge,N){!function(O){"use strict";var v={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function f(M,p,y,x){var T="";if(p)switch(y){case"s":T="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":T="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":T="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":T="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":T="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":T="%d \u0924\u093e\u0938";break;case"d":T="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":T="%d \u0926\u093f\u0935\u0938";break;case"M":T="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":T="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":T="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":T="%d \u0935\u0930\u094d\u0937\u0947"}else switch(y){case"s":T="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":T="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":T="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":T="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":T="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":T="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":T="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":T="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":T="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":T="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":T="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":T="%d \u0935\u0930\u094d\u0937\u093e\u0902"}return T.replace(/%d/i,M)}O.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:f,ss:f,m:f,mm:f,h:f,hh:f,d:f,dd:f,M:f,MM:f,y:f,yy:f},preparse:function(M){return M.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(p){return u[p]})},postformat:function(M){return M.replace(/\d/g,function(p){return v[p]})},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(M,p){return 12===M&&(M=0),"\u0930\u093e\u0924\u094d\u0930\u0940"===p?M<4?M:M+12:"\u0938\u0915\u093e\u0933\u0940"===p?M:"\u0926\u0941\u092a\u093e\u0930\u0940"===p?M>=10?M:M+12:"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===p?M+12:void 0},meridiem:function(M,p,y){return M<4?"\u0930\u093e\u0924\u094d\u0930\u0940":M<10?"\u0938\u0915\u093e\u0933\u0940":M<17?"\u0926\u0941\u092a\u093e\u0930\u0940":M<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}})}(N(5439))},4524:function(de,ge,N){!function(O){"use strict";O.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"tengahari"===f?u>=11?u:u+12:"petang"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"tengahari":u<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},485:function(de,ge,N){!function(O){"use strict";O.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(u,f){return 12===u&&(u=0),"pagi"===f?u:"tengahari"===f?u>=11?u:u+12:"petang"===f||"malam"===f?u+12:void 0},meridiem:function(u,f,h){return u<11?"pagi":u<15?"tengahari":u<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(N(5439))},6681:function(de,ge,N){!function(O){"use strict";O.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[G\u0127ada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-biera\u0127 fil-]LT",lastWeek:"dddd [li g\u0127adda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},2024:function(de,ge,N){!function(O){"use strict";var v={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},u={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};O.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(h){return h.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},week:{dow:1,doy:4}})}(N(5439))},2688:function(de,ge,N){!function(O){"use strict";O.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8914:function(de,ge,N){!function(O){"use strict";var v={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},u={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};O.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(h){return h.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0930\u093e\u0924\u093f"===M?h<4?h:h+12:"\u092c\u093f\u0939\u093e\u0928"===M?h:"\u0926\u093f\u0909\u0901\u0938\u094b"===M?h>=10?h:h+12:"\u0938\u093e\u0901\u091d"===M?h+12:void 0},meridiem:function(h,M,p){return h<3?"\u0930\u093e\u0924\u093f":h<12?"\u092c\u093f\u0939\u093e\u0928":h<16?"\u0926\u093f\u0909\u0901\u0938\u094b":h<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}})}(N(5439))},2272:function(de,ge,N){!function(O){"use strict";var v="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),u="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),f=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],h=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;O.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(p,y){return p?/-MMM-/.test(y)?u[p.month()]:v[p.month()]:v},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(p){return p+(1===p||8===p||p>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},1758:function(de,ge,N){!function(O){"use strict";var v="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),u="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),f=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],h=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;O.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(p,y){return p?/-MMM-/.test(y)?u[p.month()]:v[p.month()]:v},monthsRegex:h,monthsShortRegex:h,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:f,longMonthsParse:f,shortMonthsParse:f,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(p){return p+(1===p||8===p||p>=20?"ste":"de")},week:{dow:1,doy:4}})}(N(5439))},1510:function(de,ge,N){!function(O){"use strict";O.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},7944:function(de,ge,N){!function(O){"use strict";var v={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},u={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};O.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(h){return h.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(h,M){return 12===h&&(h=0),"\u0a30\u0a3e\u0a24"===M?h<4?h:h+12:"\u0a38\u0a35\u0a47\u0a30"===M?h:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===M?h>=10?h:h+12:"\u0a38\u0a3c\u0a3e\u0a2e"===M?h+12:void 0},meridiem:function(h,M,p){return h<4?"\u0a30\u0a3e\u0a24":h<10?"\u0a38\u0a35\u0a47\u0a30":h<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":h<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}})}(N(5439))},1605:function(de,ge,N){!function(O){"use strict";var v="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),u="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function f(p){return p%10<5&&p%10>1&&~~(p/10)%10!=1}function h(p,y,x){var T=p+" ";switch(x){case"ss":return T+(f(p)?"sekundy":"sekund");case"m":return y?"minuta":"minut\u0119";case"mm":return T+(f(p)?"minuty":"minut");case"h":return y?"godzina":"godzin\u0119";case"hh":return T+(f(p)?"godziny":"godzin");case"MM":return T+(f(p)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return T+(f(p)?"lata":"lat")}}O.defineLocale("pl",{months:function(p,y){return p?""===y?"("+u[p.month()]+"|"+v[p.month()]+")":/D MMMM/.test(y)?u[p.month()]:v[p.month()]:v},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:h,m:h,mm:h,h,hh:h,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:h,y:"rok",yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3840:function(de,ge,N){!function(O){"use strict";O.defineLocale("pt-br",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"})}(N(5439))},4225:function(de,ge,N){!function(O){"use strict";O.defineLocale("pt",{months:"janeiro_fevereiro_mar\xe7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(N(5439))},5128:function(de,ge,N){!function(O){"use strict";function v(f,h,M){var y=" ";return(f%100>=20||f>=100&&f%100==0)&&(y=" de "),f+y+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[M]}O.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:v,m:"un minut",mm:v,h:"o or\u0103",hh:v,d:"o zi",dd:v,M:"o lun\u0103",MM:v,y:"un an",yy:v},week:{dow:1,doy:7}})}(N(5439))},5127:function(de,ge,N){!function(O){"use strict";function u(M,p,y){return"m"===y?p?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":M+" "+function v(M,p){var y=M.split("_");return p%10==1&&p%100!=11?y[0]:p%10>=2&&p%10<=4&&(p%100<10||p%100>=20)?y[1]:y[2]}({ss:p?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:p?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[y],+M)}var f=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];O.defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:f,longMonthsParse:f,shortMonthsParse:f,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(M){if(M.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(M){if(M.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:u,m:u,mm:u,h:"\u0447\u0430\u0441",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0435\u0441\u044f\u0446",MM:u,y:"\u0433\u043e\u0434",yy:u},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(M){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(M)},meridiem:function(M,p,y){return M<4?"\u043d\u043e\u0447\u0438":M<12?"\u0443\u0442\u0440\u0430":M<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(M,p){switch(p){case"M":case"d":case"DDD":return M+"-\u0439";case"D":return M+"-\u0433\u043e";case"w":case"W":return M+"-\u044f";default:return M}},week:{dow:1,doy:4}})}(N(5439))},2525:function(de,ge,N){!function(O){"use strict";var v=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],u=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];O.defineLocale("sd",{months:v,monthsShort:v,weekdays:u,weekdaysShort:u,weekdaysMin:u,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(h){return"\u0634\u0627\u0645"===h},meridiem:function(h,M,p){return h<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(N(5439))},9893:function(de,ge,N){!function(O){"use strict";O.defineLocale("se",{months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},3123:function(de,ge,N){!function(O){"use strict";O.defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(u){return u+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(u){return"\u0db4.\u0dc0."===u||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===u},meridiem:function(u,f,h){return u>11?h?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":h?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}})}(N(5439))},9635:function(de,ge,N){!function(O){"use strict";var v="janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),u="jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_");function f(p){return p>1&&p<5}function h(p,y,x,T){var S=p+" ";switch(x){case"s":return y||T?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return y||T?S+(f(p)?"sekundy":"sek\xfand"):S+"sekundami";case"m":return y?"min\xfata":T?"min\xfatu":"min\xfatou";case"mm":return y||T?S+(f(p)?"min\xfaty":"min\xfat"):S+"min\xfatami";case"h":return y?"hodina":T?"hodinu":"hodinou";case"hh":return y||T?S+(f(p)?"hodiny":"hod\xedn"):S+"hodinami";case"d":return y||T?"de\u0148":"d\u0148om";case"dd":return y||T?S+(f(p)?"dni":"dn\xed"):S+"d\u0148ami";case"M":return y||T?"mesiac":"mesiacom";case"MM":return y||T?S+(f(p)?"mesiace":"mesiacov"):S+"mesiacmi";case"y":return y||T?"rok":"rokom";case"yy":return y||T?S+(f(p)?"roky":"rokov"):S+"rokmi"}}O.defineLocale("sk",{months:v,monthsShort:u,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:case 4:case 5:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:h,ss:h,m:h,mm:h,h,hh:h,d:h,dd:h,M:h,MM:h,y:h,yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8106:function(de,ge,N){!function(O){"use strict";function v(f,h,M,p){var y=f+" ";switch(M){case"s":return h||p?"nekaj sekund":"nekaj sekundami";case"ss":return y+(1===f?h?"sekundo":"sekundi":2===f?h||p?"sekundi":"sekundah":f<5?h||p?"sekunde":"sekundah":"sekund");case"m":return h?"ena minuta":"eno minuto";case"mm":return y+(1===f?h?"minuta":"minuto":2===f?h||p?"minuti":"minutama":f<5?h||p?"minute":"minutami":h||p?"minut":"minutami");case"h":return h?"ena ura":"eno uro";case"hh":return y+(1===f?h?"ura":"uro":2===f?h||p?"uri":"urama":f<5?h||p?"ure":"urami":h||p?"ur":"urami");case"d":return h||p?"en dan":"enim dnem";case"dd":return y+(1===f?h||p?"dan":"dnem":2===f?h||p?"dni":"dnevoma":h||p?"dni":"dnevi");case"M":return h||p?"en mesec":"enim mesecem";case"MM":return y+(1===f?h||p?"mesec":"mesecem":2===f?h||p?"meseca":"mesecema":f<5?h||p?"mesece":"meseci":h||p?"mesecev":"meseci");case"y":return h||p?"eno leto":"enim letom";case"yy":return y+(1===f?h||p?"leto":"letom":2===f?h||p?"leti":"letoma":f<5?h||p?"leta":"leti":h||p?"let":"leti")}}O.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:v,ss:v,m:v,mm:v,h:v,hh:v,d:v,dd:v,M:v,MM:v,y:v,yy:v},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},8799:function(de,ge,N){!function(O){"use strict";O.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(u){return"M"===u.charAt(0)},meridiem:function(u,f,h){return u<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},2872:function(de,ge,N){!function(O){"use strict";var v={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,M){var p=v.words[M];return 1===M.length?h?p[0]:p[1]:f+" "+v.correctGrammaticalCase(f,p)}};O.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:v.translate,m:v.translate,mm:v.translate,h:v.translate,hh:v.translate,d:"\u0434\u0430\u043d",dd:v.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:v.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:v.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},7949:function(de,ge,N){!function(O){"use strict";var v={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(f,h){return 1===f?h[0]:f>=2&&f<=4?h[1]:h[2]},translate:function(f,h,M){var p=v.words[M];return 1===M.length?h?p[0]:p[1]:f+" "+v.correctGrammaticalCase(f,p)}};O.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:v.translate,m:v.translate,mm:v.translate,h:v.translate,hh:v.translate,d:"dan",dd:v.translate,M:"mesec",MM:v.translate,y:"godinu",yy:v.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(N(5439))},6167:function(de,ge,N){!function(O){"use strict";O.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(u,f,h){return u<11?"ekuseni":u<15?"emini":u<19?"entsambama":"ebusuku"},meridiemHour:function(u,f){return 12===u&&(u=0),"ekuseni"===f?u:"emini"===f?u>=11?u:u+12:"entsambama"===f||"ebusuku"===f?0===u?0:u+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(N(5439))},9713:function(de,ge,N){!function(O){"use strict";O.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"e":1===f||2===f?"a":"e")},week:{dow:1,doy:4}})}(N(5439))},1982:function(de,ge,N){!function(O){"use strict";O.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(N(5439))},2732:function(de,ge,N){!function(O){"use strict";var v={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},u={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};O.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(h){return h+"\u0bb5\u0ba4\u0bc1"},preparse:function(h){return h.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(M){return u[M]})},postformat:function(h){return h.replace(/\d/g,function(M){return v[M]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(h,M,p){return h<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":h<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":h<10?" \u0b95\u0bbe\u0bb2\u0bc8":h<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":h<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":h<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(h,M){return 12===h&&(h=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===M?h<2?h:h+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===M||"\u0b95\u0bbe\u0bb2\u0bc8"===M||"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===M&&h>=10?h:h+12},week:{dow:0,doy:6}})}(N(5439))},3636:function(de,ge,N){!function(O){"use strict";O.defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c42\u0c32\u0c46\u0c56_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===f?u<4?u:u+12:"\u0c09\u0c26\u0c2f\u0c02"===f?u:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===f?u>=10?u:u+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===f?u+12:void 0},meridiem:function(u,f,h){return u<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":u<10?"\u0c09\u0c26\u0c2f\u0c02":u<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":u<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}})}(N(5439))},2115:function(de,ge,N){!function(O){"use strict";O.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},9801:function(de,ge,N){!function(O){"use strict";var v={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};O.defineLocale("tg",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(f,h){return 12===f&&(f=0),"\u0448\u0430\u0431"===h?f<4?f:f+12:"\u0441\u0443\u0431\u04b3"===h?f:"\u0440\u04ef\u0437"===h?f>=11?f:f+12:"\u0431\u0435\u0433\u043e\u04b3"===h?f+12:void 0},meridiem:function(f,h,M){return f<4?"\u0448\u0430\u0431":f<11?"\u0441\u0443\u0431\u04b3":f<16?"\u0440\u04ef\u0437":f<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(f){return f+(v[f]||v[f%10]||v[f>=100?100:null])},week:{dow:1,doy:7}})}(N(5439))},2868:function(de,ge,N){!function(O){"use strict";O.defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(u){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===u},meridiem:function(u,f,h){return u<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}})}(N(5439))},2360:function(de,ge,N){!function(O){"use strict";O.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(u){return u},week:{dow:1,doy:4}})}(N(5439))},6645:function(de,ge,N){!function(O){"use strict";var v="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function h(y,x,T,S){var k=function M(y){var x=Math.floor(y%1e3/100),T=Math.floor(y%100/10),S=y%10,k="";return x>0&&(k+=v[x]+"vatlh"),T>0&&(k+=(""!==k?" ":"")+v[T]+"maH"),S>0&&(k+=(""!==k?" ":"")+v[S]),""===k?"pagh":k}(y);switch(T){case"ss":return k+" lup";case"mm":return k+" tup";case"hh":return k+" rep";case"dd":return k+" jaj";case"MM":return k+" jar";case"yy":return k+" DIS"}}O.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function u(y){var x=y;return-1!==y.indexOf("jaj")?x.slice(0,-3)+"leS":-1!==y.indexOf("jar")?x.slice(0,-3)+"waQ":-1!==y.indexOf("DIS")?x.slice(0,-3)+"nem":x+" pIq"},past:function f(y){var x=y;return-1!==y.indexOf("jaj")?x.slice(0,-3)+"Hu\u2019":-1!==y.indexOf("jar")?x.slice(0,-3)+"wen":-1!==y.indexOf("DIS")?x.slice(0,-3)+"ben":x+" ret"},s:"puS lup",ss:h,m:"wa\u2019 tup",mm:h,h:"wa\u2019 rep",hh:h,d:"wa\u2019 jaj",dd:h,M:"wa\u2019 jar",MM:h,y:"wa\u2019 DIS",yy:h},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},8374:function(de,ge,N){!function(O){"use strict";var v={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};O.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(f,h){switch(h){case"d":case"D":case"Do":case"DD":return f;default:if(0===f)return f+"'\u0131nc\u0131";var M=f%10;return f+(v[M]||v[f%100-M]||v[f>=100?100:null])}},week:{dow:1,doy:7}})}(N(5439))},256:function(de,ge,N){!function(O){"use strict";function u(f,h,M,p){var y={s:["viensas secunds","'iensas secunds"],ss:[f+" secunds",f+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[f+" m\xeduts",f+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[f+" \xfeoras",f+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[f+" ziuas",f+" ziuas"],M:["'n mes","'iens mes"],MM:[f+" mesen",f+" mesen"],y:["'n ar","'iens ar"],yy:[f+" ars",f+" ars"]};return p||h?y[M][0]:y[M][1]}O.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(f){return"d'o"===f.toLowerCase()},meridiem:function(f,h,M){return f>11?M?"d'o":"D'O":M?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:u,ss:u,m:u,mm:u,h:u,hh:u,d:u,dd:u,M:u,MM:u,y:u,yy:u},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(N(5439))},1631:function(de,ge,N){!function(O){"use strict";O.defineLocale("tzm-latn",{months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(N(5439))},1595:function(de,ge,N){!function(O){"use strict";O.defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}})}(N(5439))},6050:function(de,ge,N){!function(O){"use strict";O.defineLocale("ug-cn",{months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5"===f||"\u0633\u06d5\u06be\u06d5\u0631"===f||"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646"===f?u:"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646"===f||"\u0643\u06d5\u0686"===f?u+12:u>=11?u:u+12},meridiem:function(u,f,h){var M=100*u+f;return M<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":M<900?"\u0633\u06d5\u06be\u06d5\u0631":M<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":M<1230?"\u0686\u06c8\u0634":M<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return u+"-\u06be\u06d5\u067e\u062a\u06d5";default:return u}},preparse:function(u){return u.replace(/\u060c/g,",")},postformat:function(u){return u.replace(/,/g,"\u060c")},week:{dow:1,doy:7}})}(N(5439))},5610:function(de,ge,N){!function(O){"use strict";function u(p,y,x){return"m"===x?y?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===x?y?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":p+" "+function v(p,y){var x=p.split("_");return y%10==1&&y%100!=11?x[0]:y%10>=2&&y%10<=4&&(y%100<10||y%100>=20)?x[1]:x[2]}({ss:y?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:y?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:y?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[x],+p)}function h(p){return function(){return p+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}O.defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function f(p,y){var x={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return p?x[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(y)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(y)?"genitive":"nominative"][p.day()]:x.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:h("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:h("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:h("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:h("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return h("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return h("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:u,m:u,mm:u,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:u,d:"\u0434\u0435\u043d\u044c",dd:u,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:u,y:"\u0440\u0456\u043a",yy:u},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(p){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(p)},meridiem:function(p,y,x){return p<4?"\u043d\u043e\u0447\u0456":p<12?"\u0440\u0430\u043d\u043a\u0443":p<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(p,y){switch(y){case"M":case"d":case"DDD":case"w":case"W":return p+"-\u0439";case"D":return p+"-\u0433\u043e";default:return p}},week:{dow:1,doy:7}})}(N(5439))},6077:function(de,ge,N){!function(O){"use strict";var v=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],u=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];O.defineLocale("ur",{months:v,monthsShort:v,weekdays:u,weekdaysShort:u,weekdaysMin:u,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(h){return"\u0634\u0627\u0645"===h},meridiem:function(h,M,p){return h<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(h){return h.replace(/\u060c/g,",")},postformat:function(h){return h.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(N(5439))},2207:function(de,ge,N){!function(O){"use strict";O.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(N(5439))},2862:function(de,ge,N){!function(O){"use strict";O.defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}})}(N(5439))},8093:function(de,ge,N){!function(O){"use strict";O.defineLocale("vi",{months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(u){return/^ch$/i.test(u)},meridiem:function(u,f,h){return u<12?h?"sa":"SA":h?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tu\u1ea7n t\u1edbi l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tu\u1ea7n r\u1ed3i l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(u){return u},week:{dow:1,doy:4}})}(N(5439))},5590:function(de,ge,N){!function(O){"use strict";O.defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(u){var f=u%10;return u+(1==~~(u%100/10)?"th":1===f?"st":2===f?"nd":3===f?"rd":"th")},week:{dow:1,doy:4}})}(N(5439))},9058:function(de,ge,N){!function(O){"use strict";O.defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}})}(N(5439))},7908:function(de,ge,N){!function(O){"use strict";O.defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:u>=11?u:u+12},meridiem:function(u,f,h){var M=100*u+f;return M<600?"\u51cc\u6668":M<900?"\u65e9\u4e0a":M<1130?"\u4e0a\u5348":M<1230?"\u4e2d\u5348":M<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u5468";default:return u}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}})}(N(5439))},8867:function(de,ge,N){!function(O){"use strict";O.defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e2d\u5348"===f?u>=11?u:u+12:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:void 0},meridiem:function(u,f,h){var M=100*u+f;return M<600?"\u51cc\u6668":M<900?"\u65e9\u4e0a":M<1130?"\u4e0a\u5348":M<1230?"\u4e2d\u5348":M<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u9031";default:return u}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(N(5439))},3291:function(de,ge,N){!function(O){"use strict";O.defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(u,f){return 12===u&&(u=0),"\u51cc\u6668"===f||"\u65e9\u4e0a"===f||"\u4e0a\u5348"===f?u:"\u4e2d\u5348"===f?u>=11?u:u+12:"\u4e0b\u5348"===f||"\u665a\u4e0a"===f?u+12:void 0},meridiem:function(u,f,h){var M=100*u+f;return M<600?"\u51cc\u6668":M<900?"\u65e9\u4e0a":M<1130?"\u4e0a\u5348":M<1230?"\u4e2d\u5348":M<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(u,f){switch(f){case"d":case"D":case"DDD":return u+"\u65e5";case"M":return u+"\u6708";case"w":case"W":return u+"\u9031";default:return u}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(N(5439))},5439:function(de,ge,N){(de=N.nmd(de)).exports=function(){"use strict";var O,B;function v(){return O.apply(null,arguments)}function f(m){return m instanceof Array||"[object Array]"===Object.prototype.toString.call(m)}function h(m){return null!=m&&"[object Object]"===Object.prototype.toString.call(m)}function p(m){return void 0===m}function y(m){return"number"==typeof m||"[object Number]"===Object.prototype.toString.call(m)}function x(m){return m instanceof Date||"[object Date]"===Object.prototype.toString.call(m)}function T(m,P){var $,j=[];for($=0;$>>0,$=0;$0)for(j=0;j=0?j?"+":"":"-")+Math.pow(10,Math.max(0,P-$.length)).toString().substr(1)+$}var Ie=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Ye=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ut={},mt={};function it(m,P,j,$){var ne=$;"string"==typeof $&&(ne=function(){return this[$]()}),m&&(mt[m]=ne),P&&(mt[P[0]]=function(){return De(ne.apply(this,arguments),P[1],P[2])}),j&&(mt[j]=function(){return this.localeData().ordinal(ne.apply(this,arguments),m)})}function fn(m){return m.match(/\[[\s\S]/)?m.replace(/^\[|\]$/g,""):m.replace(/\\/g,"")}function bt(m,P){return m.isValid()?(P=qt(P,m.localeData()),ut[P]=ut[P]||function An(m){var j,$,P=m.match(Ie);for(j=0,$=P.length;j<$;j++)P[j]=mt[P[j]]?mt[P[j]]:fn(P[j]);return function(ne){var je,Le="";for(je=0;je<$;je++)Le+=ke(P[je])?P[je].call(ne,m):P[je];return Le}}(P),ut[P](m)):m.localeData().invalidDate()}function qt(m,P){var j=5;function $(ne){return P.longDateFormat(ne)||ne}for(Ye.lastIndex=0;j>=0&&Ye.test(m);)m=m.replace(Ye,$),Ye.lastIndex=0,j-=1;return m}var Gn=/\d/,oi=/\d\d/,Kr=/\d{3}/,Io=/\d{4}/,Ai=/[+-]?\d{6}/,ln=/\d\d?/,wi=/\d\d\d\d?/,si=/\d\d\d\d\d\d?/,Fn=/\d{1,3}/,jd=/\d{1,4}/,dl=/[+-]?\d{1,6}/,xn=/\d+/,_a=/[+-]?\d+/,Fi=/Z|[+-]\d\d:?\d\d/gi,ba=/Z|[+-]\d\d(?::?\d\d)?/gi,pn=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Dt={};function gt(m,P,j){Dt[m]=ke(P)?P:function($,ne){return $&&j?j:P}}function zd(m,P){return S(Dt,m)?Dt[m](P._strict,P._locale):new RegExp(function Z1(m){return hs(m.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(P,j,$,ne,Le){return j||$||ne||Le}))}(m))}function hs(m){return m.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Fe={};function Tn(m,P){var j,$=P;for("string"==typeof m&&(m=[m]),y(P)&&($=function(ne,Le){Le[P]=ee(ne)}),j=0;j68?1900:2e3)};var Ci,Bg=va("FullYear",!0);function va(m,P){return function(j){return null!=j?(cf(this,m,j),v.updateOffset(this,P),this):Wd(this,m)}}function Wd(m,P){return m.isValid()?m._d["get"+(m._isUTC?"UTC":"")+P]():NaN}function cf(m,P,j){m.isValid()&&!isNaN(j)&&("FullYear"===P&&Ud(m.year())&&1===m.month()&&29===m.date()?m._d["set"+(m._isUTC?"UTC":"")+P](j,m.month(),$d(j,m.month())):m._d["set"+(m._isUTC?"UTC":"")+P](j))}function $d(m,P){if(isNaN(m)||isNaN(P))return NaN;var j=function Mn(m,P){return(m%P+P)%P}(P,12);return m+=(P-j)/12,1===j?Ud(m)?29:28:31-j%7%2}Ci=Array.prototype.indexOf?Array.prototype.indexOf:function(m){var P;for(P=0;P=0&&isFinite(At.getFullYear())&&At.setFullYear(m),At}function Wi(m){var P=new Date(Date.UTC.apply(null,arguments));return m<100&&m>=0&&isFinite(P.getUTCFullYear())&&P.setUTCFullYear(m),P}function ul(m,P,j){var $=7+P-j;return-(7+Wi(m,0,$).getUTCDay()-P)%7+$-1}function Ug(m,P,j,$,ne){var Ut,ki,At=1+7*(P-1)+(7+j-$)%7+ul(m,$,ne);return At<=0?ki=dc(Ut=m-1)+At:At>dc(m)?(Ut=m+1,ki=At-dc(m)):(Ut=m,ki=At),{year:Ut,dayOfYear:ki}}function wn(m,P,j){var Le,je,$=ul(m.year(),P,j),ne=Math.floor((m.dayOfYear()-$-1)/7)+1;return ne<1?Le=ne+ya(je=m.year()-1,P,j):ne>ya(m.year(),P,j)?(Le=ne-ya(m.year(),P,j),je=m.year()+1):(je=m.year(),Le=ne),{week:Le,year:je}}function ya(m,P,j){var $=ul(m,P,j),ne=ul(m+1,P,j);return(dc(m)-$+ne)/7}it("w",["ww",2],"wo","week"),it("W",["WW",2],"Wo","isoWeek"),pe("week","w"),pe("isoWeek","W"),me("week",5),me("isoWeek",5),gt("w",ln),gt("ww",ln,oi),gt("W",ln),gt("WW",ln,oi),xt(["w","ww","W","WW"],function(m,P,j,$){P[$.substr(0,1)]=ee(m)});it("d",0,"do","day"),it("dd",0,0,function(m){return this.localeData().weekdaysMin(this,m)}),it("ddd",0,0,function(m){return this.localeData().weekdaysShort(this,m)}),it("dddd",0,0,function(m){return this.localeData().weekdays(this,m)}),it("e",0,0,"weekday"),it("E",0,0,"isoWeekday"),pe("day","d"),pe("weekday","e"),pe("isoWeekday","E"),me("day",11),me("weekday",11),me("isoWeekday",11),gt("d",ln),gt("e",ln),gt("E",ln),gt("dd",function(m,P){return P.weekdaysMinRegex(m)}),gt("ddd",function(m,P){return P.weekdaysShortRegex(m)}),gt("dddd",function(m,P){return P.weekdaysRegex(m)}),xt(["dd","ddd","dddd"],function(m,P,j,$){var ne=j._locale.weekdaysParse(m,$,j._strict);null!=ne?P.d=ne:U(j).invalidWeekday=m}),xt(["d","e","E"],function(m,P,j,$){P[$]=ee(m)});var pf="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var mf="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var qg="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function gf(m,P,j){var $,ne,Le,je=m.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],$=0;$<7;++$)Le=L([2e3,1]).day($),this._minWeekdaysParse[$]=this.weekdaysMin(Le,"").toLocaleLowerCase(),this._shortWeekdaysParse[$]=this.weekdaysShort(Le,"").toLocaleLowerCase(),this._weekdaysParse[$]=this.weekdays(Le,"").toLocaleLowerCase();return j?"dddd"===P?-1!==(ne=Ci.call(this._weekdaysParse,je))?ne:null:"ddd"===P?-1!==(ne=Ci.call(this._shortWeekdaysParse,je))?ne:null:-1!==(ne=Ci.call(this._minWeekdaysParse,je))?ne:null:"dddd"===P?-1!==(ne=Ci.call(this._weekdaysParse,je))||-1!==(ne=Ci.call(this._shortWeekdaysParse,je))||-1!==(ne=Ci.call(this._minWeekdaysParse,je))?ne:null:"ddd"===P?-1!==(ne=Ci.call(this._shortWeekdaysParse,je))||-1!==(ne=Ci.call(this._weekdaysParse,je))||-1!==(ne=Ci.call(this._minWeekdaysParse,je))?ne:null:-1!==(ne=Ci.call(this._minWeekdaysParse,je))||-1!==(ne=Ci.call(this._weekdaysParse,je))||-1!==(ne=Ci.call(this._shortWeekdaysParse,je))?ne:null}var Kg=pn;var Xg=pn;var Oo=pn;function lo(){function m(Br,bl){return bl.length-Br.length}var Le,je,At,Ut,ki,P=[],j=[],$=[],ne=[];for(Le=0;Le<7;Le++)je=L([2e3,1]).day(Le),At=this.weekdaysMin(je,""),Ut=this.weekdaysShort(je,""),ki=this.weekdays(je,""),P.push(At),j.push(Ut),$.push(ki),ne.push(At),ne.push(Ut),ne.push(ki);for(P.sort(m),j.sort(m),$.sort(m),ne.sort(m),Le=0;Le<7;Le++)j[Le]=hs(j[Le]),$[Le]=hs($[Le]),ne[Le]=hs(ne[Le]);this._weekdaysRegex=new RegExp("^("+ne.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+$.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+j.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+P.join("|")+")","i")}function cn(){return this.hours()%12||12}function _c(m,P){it(m,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),P)})}function bc(m,P){return P._meridiemParse}it("H",["HH",2],0,"hour"),it("h",["hh",2],0,cn),it("k",["kk",2],0,function gc(){return this.hours()||24}),it("hmm",0,0,function(){return""+cn.apply(this)+De(this.minutes(),2)}),it("hmmss",0,0,function(){return""+cn.apply(this)+De(this.minutes(),2)+De(this.seconds(),2)}),it("Hmm",0,0,function(){return""+this.hours()+De(this.minutes(),2)}),it("Hmmss",0,0,function(){return""+this.hours()+De(this.minutes(),2)+De(this.seconds(),2)}),_c("a",!0),_c("A",!1),pe("hour","h"),me("hour",13),gt("a",bc),gt("A",bc),gt("H",ln),gt("h",ln),gt("k",ln),gt("HH",ln,oi),gt("hh",ln,oi),gt("kk",ln,oi),gt("hmm",wi),gt("hmmss",si),gt("Hmm",wi),gt("Hmmss",si),Tn(["H","HH"],ai),Tn(["k","kk"],function(m,P,j){var $=ee(m);P[ai]=24===$?0:$}),Tn(["a","A"],function(m,P,j){j._isPm=j._locale.isPM(m),j._meridiem=m}),Tn(["h","hh"],function(m,P,j){P[ai]=ee(m),U(j).bigHour=!0}),Tn("hmm",function(m,P,j){var $=m.length-2;P[ai]=ee(m.substr(0,$)),P[ti]=ee(m.substr($)),U(j).bigHour=!0}),Tn("hmmss",function(m,P,j){var $=m.length-4,ne=m.length-2;P[ai]=ee(m.substr(0,$)),P[ti]=ee(m.substr($,2)),P[ps]=ee(m.substr(ne)),U(j).bigHour=!0}),Tn("Hmm",function(m,P,j){var $=m.length-2;P[ai]=ee(m.substr(0,$)),P[ti]=ee(m.substr($))}),Tn("Hmmss",function(m,P,j){var $=m.length-4,ne=m.length-2;P[ai]=ee(m.substr(0,$)),P[ti]=ee(m.substr($,2)),P[ps]=ee(m.substr(ne))});var Ca,bf=va("Hours",!0),Xd={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ne,monthsShort:Nt,week:{dow:0,doy:6},weekdays:pf,weekdaysMin:qg,weekdaysShort:mf,meridiemParse:/[ap]\.?m?\.?/i},hi={},wa={};function xa(m){return m&&m.toLowerCase().replace("_","-")}function ml(m){var P=null;if(!hi[m]&&de&&de.exports)try{P=Ca._abbr,N(6700)("./"+m),ka(P)}catch{}return hi[m]}function ka(m,P){var j;return m&&((j=p(P)?_s(m):vc(m,P))?Ca=j:typeof console<"u"&&console.warn&&console.warn("Locale "+m+" not found. Did you forget to load it?")),Ca._abbr}function vc(m,P){if(null!==P){var j,$=Xd;if(P.abbr=m,null!=hi[m])Se("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),$=hi[m]._config;else if(null!=P.parentLocale)if(null!=hi[P.parentLocale])$=hi[P.parentLocale]._config;else{if(null==(j=ml(P.parentLocale)))return wa[P.parentLocale]||(wa[P.parentLocale]=[]),wa[P.parentLocale].push({name:m,config:P}),null;$=j._config}return hi[m]=new st(tt($,P)),wa[m]&&wa[m].forEach(function(ne){vc(ne.name,ne.config)}),ka(m),hi[m]}return delete hi[m],null}function _s(m){var P;if(m&&m._locale&&m._locale._abbr&&(m=m._locale._abbr),!m)return Ca;if(!f(m)){if(P=ml(m))return P;m=[m]}return function vf(m){for(var j,$,ne,Le,P=0;P0;){if(ne=ml(Le.slice(0,j).join("-")))return ne;if($&&$.length>=j&&ae(Le,$,!0)>=j-1)break;j--}P++}return Ca}(m)}function Jd(m){var P,j=m._a;return j&&-2===U(m).overflow&&(P=j[fs]<0||j[fs]>11?fs:j[Po]<1||j[Po]>$d(j[ao],j[fs])?Po:j[ai]<0||j[ai]>24||24===j[ai]&&(0!==j[ti]||0!==j[ps]||0!==j[Ys])?ai:j[ti]<0||j[ti]>59?ti:j[ps]<0||j[ps]>59?ps:j[Ys]<0||j[Ys]>999?Ys:-1,U(m)._overflowDayOfYear&&(PPo)&&(P=Po),U(m)._overflowWeeks&&-1===P&&(P=X1),U(m)._overflowWeekday&&-1===P&&(P=ms),U(m).overflow=P),m}function Hs(m,P,j){return m??P??j}function Qd(m){var P,j,ne,Le,je,$=[];if(!m._d){for(ne=function Qg(m){var P=new Date(v.now());return m._useUTC?[P.getUTCFullYear(),P.getUTCMonth(),P.getUTCDate()]:[P.getFullYear(),P.getMonth(),P.getDate()]}(m),m._w&&null==m._a[Po]&&null==m._a[fs]&&function e_(m){var P,j,$,ne,Le,je,At,Ut;if(null!=(P=m._w).GG||null!=P.W||null!=P.E)Le=1,je=4,j=Hs(P.GG,m._a[ao],wn(zt(),1,4).year),$=Hs(P.W,1),((ne=Hs(P.E,1))<1||ne>7)&&(Ut=!0);else{Le=m._locale._week.dow,je=m._locale._week.doy;var ki=wn(zt(),Le,je);j=Hs(P.gg,m._a[ao],ki.year),$=Hs(P.w,ki.week),null!=P.d?((ne=P.d)<0||ne>6)&&(Ut=!0):null!=P.e?(ne=P.e+Le,(P.e<0||P.e>6)&&(Ut=!0)):ne=Le}$<1||$>ya(j,Le,je)?U(m)._overflowWeeks=!0:null!=Ut?U(m)._overflowWeekday=!0:(At=Ug(j,$,ne,Le,je),m._a[ao]=At.year,m._dayOfYear=At.dayOfYear)}(m),null!=m._dayOfYear&&(je=Hs(m._a[ao],ne[ao]),(m._dayOfYear>dc(je)||0===m._dayOfYear)&&(U(m)._overflowDayOfYear=!0),j=Wi(je,0,m._dayOfYear),m._a[fs]=j.getUTCMonth(),m._a[Po]=j.getUTCDate()),P=0;P<3&&null==m._a[P];++P)m._a[P]=$[P]=ne[P];for(;P<7;P++)m._a[P]=$[P]=null==m._a[P]?2===P?1:0:m._a[P];24===m._a[ai]&&0===m._a[ti]&&0===m._a[ps]&&0===m._a[Ys]&&(m._nextDay=!0,m._a[ai]=0),m._d=(m._useUTC?Wi:ff).apply(null,$),Le=m._useUTC?m._d.getUTCDay():m._d.getDay(),null!=m._tzm&&m._d.setUTCMinutes(m._d.getUTCMinutes()-m._tzm),m._nextDay&&(m._a[ai]=24),m._w&&typeof m._w.d<"u"&&m._w.d!==Le&&(U(m).weekdayMismatch=!0)}}var t_=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,yf=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,n_=/Z|[+-]\d\d(?::?\d\d)?/,yc=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],eu=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Ze=/^\/?Date\((\-?\d+)/i;function Mc(m){var P,j,Le,je,At,Ut,$=m._i,ne=t_.exec($)||yf.exec($);if(ne){for(U(m).iso=!0,P=0,j=yc.length;P0&&U(m).unusedInput.push(je),P=P.slice(P.indexOf($)+$.length),Ut+=$.length),mt[Le]?($?U(m).empty=!1:U(m).unusedTokens.push(Le),yn(Le,$,m)):m._strict&&!$&&U(m).unusedTokens.push(Le);U(m).charsLeftOver=At-Ut,P.length>0&&U(m).unusedInput.push(P),m._a[ai]<=12&&!0===U(m).bigHour&&m._a[ai]>0&&(U(m).bigHour=void 0),U(m).parsedDateParts=m._a.slice(0),U(m).meridiem=m._meridiem,m._a[ai]=function Sa(m,P,j){var $;return null==j?P:null!=m.meridiemHour?m.meridiemHour(P,j):(null!=m.isPM&&(($=m.isPM(j))&&P<12&&(P+=12),!$&&12===P&&(P=0)),P)}(m._locale,m._a[ai],m._meridiem),Qd(m),Jd(m)}else gn(m);else Mc(m)}function gl(m){var P=m._i,j=m._f;return m._locale=m._locale||_s(m._l),null===P||void 0===j&&""===P?re({nullInput:!0}):("string"==typeof P&&(m._i=P=m._locale.preparse(P)),q(P)?new he(Jd(P)):(x(P)?m._d=P:f(j)?function Nr(m){var P,j,$,ne,Le;if(0===m._f.length)return U(m).invalidFormat=!0,void(m._d=new Date(NaN));for(ne=0;nethis?this:m:re()});function Xn(m,P){var j,$;if(1===P.length&&f(P[0])&&(P=P[0]),!P.length)return zt();for(j=P[0],$=1;$(Le=ya(m,$,ne))&&(P=Le),Lc.call(this,m,P,j,$,ne))}function Lc(m,P,j,$,ne){var Le=Ug(m,P,j,$,ne),je=Wi(Le.year,0,Le.dayOfYear);return this.year(je.getUTCFullYear()),this.month(je.getUTCMonth()),this.date(je.getUTCDate()),this}it(0,["gg",2],0,function(){return this.weekYear()%100}),it(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Gs("gggg","weekYear"),Gs("ggggg","weekYear"),Gs("GGGG","isoWeekYear"),Gs("GGGGG","isoWeekYear"),pe("weekYear","gg"),pe("isoWeekYear","GG"),me("weekYear",1),me("isoWeekYear",1),gt("G",_a),gt("g",_a),gt("GG",ln,oi),gt("gg",ln,oi),gt("GGGG",jd,Io),gt("gggg",jd,Io),gt("GGGGG",dl,Ai),gt("ggggg",dl,Ai),xt(["gggg","ggggg","GGGG","GGGGG"],function(m,P,j,$){P[$.substr(0,2)]=ee(m)}),xt(["gg","GG"],function(m,P,j,$){P[$]=v.parseTwoDigitYear(m)}),it("Q",0,"Qo","quarter"),pe("quarter","Q"),me("quarter",7),gt("Q",Gn),Tn("Q",function(m,P){P[fs]=3*(ee(m)-1)}),it("D",["DD",2],"Do","date"),pe("date","D"),me("date",9),gt("D",ln),gt("DD",ln,oi),gt("Do",function(m,P){return m?P._dayOfMonthOrdinalParse||P._ordinalParse:P._dayOfMonthOrdinalParseLenient}),Tn(["D","DD"],Po),Tn("Do",function(m,P){P[Po]=ee(m.match(ln)[0])});var b_=va("Date",!0);it("DDD",["DDDD",3],"DDDo","dayOfYear"),pe("dayOfYear","DDD"),me("dayOfYear",4),gt("DDD",Fn),gt("DDDD",Kr),Tn(["DDD","DDDD"],function(m,P,j){j._dayOfYear=ee(m)}),it("m",["mm",2],0,"minute"),pe("minute","m"),me("minute",14),gt("m",ln),gt("mm",ln,oi),Tn(["m","mm"],ti);var su=va("Minutes",!1);it("s",["ss",2],0,"second"),pe("second","s"),me("second",15),gt("s",ln),gt("ss",ln,oi),Tn(["s","ss"],ps);var po,v_=va("Seconds",!1);for(it("S",0,0,function(){return~~(this.millisecond()/100)}),it(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),it(0,["SSS",3],0,"millisecond"),it(0,["SSSS",4],0,function(){return 10*this.millisecond()}),it(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),it(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),it(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),it(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),it(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),pe("millisecond","ms"),me("millisecond",16),gt("S",Fn,Gn),gt("SS",Fn,oi),gt("SSS",Fn,Kr),po="SSSS";po.length<=9;po+="S")gt(po,xn);function y_(m,P){P[Ys]=ee(1e3*("0."+m))}for(po="S";po.length<=9;po+="S")Tn(po,y_);var yM=va("Milliseconds",!1);it("z",0,0,"zoneAbbr"),it("zz",0,0,"zoneName");var Je=he.prototype;function Gi(m){return m}Je.add=Ws,Je.calendar=function nu(m,P){var j=m||zt(),$=bs(j,this).startOf("day"),ne=v.calendarFormat(this,$)||"sameElse",Le=P&&(ke(P[ne])?P[ne].call(this,j):P[ne]);return this.format(Le||this.localeData().calendar(ne,this,zt(j)))},Je.clone=function l_(){return new he(this)},Je.diff=function lM(m,P,j){var $,ne,Le;if(!this.isValid())return NaN;if(!($=bs(m,this)).isValid())return NaN;switch(ne=6e4*($.utcOffset()-this.utcOffset()),P=fe(P)){case"year":Le=Df(this,$)/12;break;case"month":Le=Df(this,$);break;case"quarter":Le=Df(this,$)/3;break;case"second":Le=(this-$)/1e3;break;case"minute":Le=(this-$)/6e4;break;case"hour":Le=(this-$)/36e5;break;case"day":Le=(this-$-ne)/864e5;break;case"week":Le=(this-$-ne)/6048e5;break;default:Le=this-$}return j?Le:Q(Le)},Je.endOf=function $s(m){return void 0===(m=fe(m))||"millisecond"===m?this:("date"===m&&(m="day"),this.startOf(m).add(1,"isoWeek"===m?"week":m).subtract(1,"ms"))},Je.format=function hM(m){m||(m=this.isUtc()?v.defaultFormatUtc:v.defaultFormat);var P=bt(this,m);return this.localeData().postformat(P)},Je.from=function fM(m,P){return this.isValid()&&(q(m)&&m.isValid()||zt(m).isValid())?br({to:this,from:m}).locale(this.locale()).humanize(!P):this.localeData().invalidDate()},Je.fromNow=function pM(m){return this.from(zt(),m)},Je.to=function mM(m,P){return this.isValid()&&(q(m)&&m.isValid()||zt(m).isValid())?br({from:this,to:m}).locale(this.locale()).humanize(!P):this.localeData().invalidDate()},Je.toNow=function Tf(m){return this.to(zt(),m)},Je.get=function Q1(m){return ke(this[m=fe(m)])?this[m]():this},Je.invalidAt=function g_(){return U(this).overflow},Je.isAfter=function rM(m,P){var j=q(m)?m:zt(m);return!(!this.isValid()||!j.isValid())&&("millisecond"===(P=fe(p(P)?"millisecond":P))?this.valueOf()>j.valueOf():j.valueOf()9999?bt(j,P?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):ke(Date.prototype.toISOString)?P?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",bt(j,"Z")):bt(j,P?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},Je.inspect=function uM(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var m="moment",P="";this.isLocal()||(m=0===this.utcOffset()?"moment.utc":"moment.parseZone",P="Z");var j="["+m+'("]',$=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";return this.format(j+$+"-MM-DD[T]HH:mm:ss.SSS"+P+'[")]')},Je.toJSON=function p_(){return this.isValid()?this.toISOString():null},Je.toString=function cM(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},Je.unix=function _M(){return Math.floor(this.valueOf()/1e3)},Je.valueOf=function Lf(){return this._d.valueOf()-6e4*(this._offset||0)},Je.creationData=function Fo(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},Je.year=Bg,Je.isLeapYear=function J1(){return Ud(this.year())},Je.weekYear=function $i(m){return Tc.call(this,m,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},Je.isoWeekYear=function If(m){return Tc.call(this,m,this.isoWeek(),this.isoWeekday(),1,4)},Je.quarter=Je.quarters=function __(m){return null==m?Math.ceil((this.month()+1)/3):this.month(3*(m-1)+this.month()%3)},Je.month=Gd,Je.daysInMonth=function hc(){return $d(this.year(),this.month())},Je.week=Je.weeks=function pc(m){var P=this.localeData().week(this);return null==m?P:this.add(7*(m-P),"d")},Je.isoWeek=Je.isoWeeks=function Wg(m){var P=wn(this,1,4).week;return null==m?P:this.add(7*(m-P),"d")},Je.weeksInYear=function ou(){var m=this.localeData()._week;return ya(this.year(),m.dow,m.doy)},Je.isoWeeksInYear=function vM(){return ya(this.year(),1,4)},Je.date=b_,Je.day=Je.days=function mc(m){if(!this.isValid())return null!=m?this:NaN;var P=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=m?(m=function $g(m,P){return"string"!=typeof m?m:isNaN(m)?"number"==typeof(m=P.weekdaysParse(m))?m:null:parseInt(m,10)}(m,this.localeData()),this.add(m-P,"d")):P},Je.weekday=function Zd(m){if(!this.isValid())return null!=m?this:NaN;var P=(this.day()+7-this.localeData()._week.dow)%7;return null==m?P:this.add(m-P,"d")},Je.isoWeekday=function fl(m){if(!this.isValid())return null!=m?this:NaN;if(null!=m){var P=function Gg(m,P){return"string"==typeof m?P.weekdaysParse(m)%7||7:isNaN(m)?null:m}(m,this.localeData());return this.day(this.day()%7?P:P-7)}return this.day()||7},Je.dayOfYear=function Pf(m){var P=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==m?P:this.add(m-P,"d")},Je.hour=Je.hours=bf,Je.minute=Je.minutes=su,Je.second=Je.seconds=v_,Je.millisecond=Je.milliseconds=yM,Je.utcOffset=function _l(m,P,j){var ne,$=this._offset||0;if(!this.isValid())return null!=m?this:NaN;if(null!=m){if("string"==typeof m){if(null===(m=Us(ba,m)))return this}else Math.abs(m)<16&&!j&&(m*=60);return!this._isUTC&&P&&(ne=Xr(this)),this._offset=m,this._isUTC=!0,null!=ne&&this.add(ne,"m"),$!==m&&(!P||this._changeInProgress?Sc(this,br(m-$,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,v.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?$:Xr(this)},Je.utc=function vs(m){return this.utcOffset(0,m)},Je.local=function Xo(m){return this._isUTC&&(this.utcOffset(0,m),this._isUTC=!1,m&&this.subtract(Xr(this),"m")),this},Je.parseZone=function Cc(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var m=Us(Fi,this._i);null!=m?this.utcOffset(m):this.utcOffset(0,!0)}return this},Je.hasAlignedHourOffset=function xc(m){return!!this.isValid()&&(m=m?zt(m).utcOffset():0,(this.utcOffset()-m)%60==0)},Je.isDST=function Qt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Je.isLocal=function tu(){return!!this.isValid()&&!this._isUTC},Je.isUtcOffset=function Sf(){return!!this.isValid()&&this._isUTC},Je.isUtc=ho,Je.isUTC=ho,Je.zoneAbbr=function MM(){return this._isUTC?"UTC":""},Je.zoneName=function wM(){return this._isUTC?"Coordinated Universal Time":""},Je.dates=J("dates accessor is deprecated. Use date instead.",b_),Je.months=J("months accessor is deprecated. Use month instead",Gd),Je.years=J("years accessor is deprecated. Use year instead",Bg),Je.zone=J("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function kf(m,P){return null!=m?("string"!=typeof m&&(m=-m),this.utcOffset(m,P),this):-this.utcOffset()}),Je.isDSTShifted=J("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function iM(){if(!p(this._isDSTShifted))return this._isDSTShifted;var m={};if(Z(m,this),(m=gl(m))._a){var P=m._isUTC?L(m._a):zt(m._a);this._isDSTShifted=this.isValid()&&ae(m._a,P.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var Rn=st.prototype;function Ec(m,P,j,$){var ne=_s(),Le=L().set($,P);return ne[j](Le,m)}function Of(m,P,j){if(y(m)&&(P=m,m=void 0),m=m||"",null!=P)return Ec(m,P,j,"month");var $,ne=[];for($=0;$<12;$++)ne[$]=Ec(m,$,j,"month");return ne}function Ic(m,P,j,$){"boolean"==typeof m?(y(P)&&(j=P,P=void 0),P=P||""):(j=P=m,m=!1,y(P)&&(j=P,P=void 0),P=P||"");var ne=_s(),Le=m?ne._week.dow:0;if(null!=j)return Ec(P,(j+Le)%7,$,"day");var je,At=[];for(je=0;je<7;je++)At[je]=Ec(P,(je+Le)%7,$,"day");return At}Rn.calendar=function an(m,P,j){var $=this._calendar[m]||this._calendar.sameElse;return ke($)?$.call(P,j):$},Rn.longDateFormat=function On(m){var P=this._longDateFormat[m],j=this._longDateFormat[m.toUpperCase()];return P||!j?P:(this._longDateFormat[m]=j.replace(/MMMM|MM|DD|dddd/g,function($){return $.slice(1)}),this._longDateFormat[m])},Rn.invalidDate=function Ge(){return this._invalidDate},Rn.ordinal=function dr(m){return this._ordinal.replace("%d",m)},Rn.preparse=Gi,Rn.postformat=Gi,Rn.relativeTime=function W(m,P,j,$){var ne=this._relativeTime[j];return ke(ne)?ne(m,P,j,$):ne.replace(/%d/i,m)},Rn.pastFuture=function oe(m,P){var j=this._relativeTime[m>0?"future":"past"];return ke(j)?j(P):j.replace(/%s/i,P)},Rn.set=function Be(m){var P,j;for(j in m)ke(P=m[j])?this[j]=P:this["_"+j]=P;this._config=m,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},Rn.months=function eM(m,P){return m?f(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||Vg).test(P)?"format":"standalone"][m.month()]:f(this._months)?this._months:this._months.standalone},Rn.monthsShort=function uc(m,P){return m?f(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[Vg.test(P)?"format":"standalone"][m.month()]:f(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},Rn.monthsParse=function df(m,P,j){var $,ne,Le;if(this._monthsParseExact)return jg.call(this,m,P,j);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),$=0;$<12;$++){if(ne=L([2e3,$]),j&&!this._longMonthsParse[$]&&(this._longMonthsParse[$]=new RegExp("^"+this.months(ne,"").replace(".","")+"$","i"),this._shortMonthsParse[$]=new RegExp("^"+this.monthsShort(ne,"").replace(".","")+"$","i")),!j&&!this._monthsParse[$]&&(Le="^"+this.months(ne,"")+"|^"+this.monthsShort(ne,""),this._monthsParse[$]=new RegExp(Le.replace(".",""),"i")),j&&"MMMM"===P&&this._longMonthsParse[$].test(m))return $;if(j&&"MMM"===P&&this._shortMonthsParse[$].test(m))return $;if(!j&&this._monthsParse[$].test(m))return $}},Rn.monthsRegex=function Mt(m){return this._monthsParseExact?(S(this,"_monthsRegex")||fc.call(this),m?this._monthsStrictRegex:this._monthsRegex):(S(this,"_monthsRegex")||(this._monthsRegex=zg),this._monthsStrictRegex&&m?this._monthsStrictRegex:this._monthsRegex)},Rn.monthsShortRegex=function hf(m){return this._monthsParseExact?(S(this,"_monthsRegex")||fc.call(this),m?this._monthsShortStrictRegex:this._monthsShortRegex):(S(this,"_monthsShortRegex")||(this._monthsShortRegex=qd),this._monthsShortStrictRegex&&m?this._monthsShortStrictRegex:this._monthsShortRegex)},Rn.week=function tM(m){return wn(m,this._week.dow,this._week.doy).week},Rn.firstDayOfYear=function Kd(){return this._week.doy},Rn.firstDayOfWeek=function hl(){return this._week.dow},Rn.weekdays=function Ma(m,P){return m?f(this._weekdays)?this._weekdays[m.day()]:this._weekdays[this._weekdays.isFormat.test(P)?"format":"standalone"][m.day()]:f(this._weekdays)?this._weekdays:this._weekdays.standalone},Rn.weekdaysMin=function we(m){return m?this._weekdaysMin[m.day()]:this._weekdaysMin},Rn.weekdaysShort=function gs(m){return m?this._weekdaysShort[m.day()]:this._weekdaysShort},Rn.weekdaysParse=function Qe(m,P,j){var $,ne,Le;if(this._weekdaysParseExact)return gf.call(this,m,P,j);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),$=0;$<7;$++){if(ne=L([2e3,1]).day($),j&&!this._fullWeekdaysParse[$]&&(this._fullWeekdaysParse[$]=new RegExp("^"+this.weekdays(ne,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[$]=new RegExp("^"+this.weekdaysShort(ne,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[$]=new RegExp("^"+this.weekdaysMin(ne,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[$]||(Le="^"+this.weekdays(ne,"")+"|^"+this.weekdaysShort(ne,"")+"|^"+this.weekdaysMin(ne,""),this._weekdaysParse[$]=new RegExp(Le.replace(".",""),"i")),j&&"dddd"===P&&this._fullWeekdaysParse[$].test(m))return $;if(j&&"ddd"===P&&this._shortWeekdaysParse[$].test(m))return $;if(j&&"dd"===P&&this._minWeekdaysParse[$].test(m))return $;if(!j&&this._weekdaysParse[$].test(m))return $}},Rn.weekdaysRegex=function Zg(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||lo.call(this),m?this._weekdaysStrictRegex:this._weekdaysRegex):(S(this,"_weekdaysRegex")||(this._weekdaysRegex=Kg),this._weekdaysStrictRegex&&m?this._weekdaysStrictRegex:this._weekdaysRegex)},Rn.weekdaysShortRegex=function Ko(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||lo.call(this),m?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(S(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Xg),this._weekdaysShortStrictRegex&&m?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},Rn.weekdaysMinRegex=function Dr(m){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||lo.call(this),m?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(S(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Oo),this._weekdaysMinStrictRegex&&m?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},Rn.isPM=function _f(m){return"p"===(m+"").toLowerCase().charAt(0)},Rn.meridiem=function pl(m,P,j){return m>11?j?"pm":"PM":j?"am":"AM"},ka("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(m){var P=m%10;return m+(1===ee(m%100/10)?"th":1===P?"st":2===P?"nd":3===P?"rd":"th")}}),v.lang=J("moment.lang is deprecated. Use moment.locale instead.",ka),v.langData=J("moment.langData is deprecated. Use moment.localeData instead.",_s);var No=Math.abs;function Un(m,P,j,$){var ne=br(P,j);return m._milliseconds+=$*ne._milliseconds,m._days+=$*ne._days,m._months+=$*ne._months,m._bubble()}function yr(m){return m<0?Math.floor(m):Math.ceil(m)}function lu(m){return 4800*m/146097}function ys(m){return 146097*m/4800}function mo(m){return function(){return this.as(m)}}var T_=mo("ms"),Ms=mo("s"),Rf=mo("m"),L_=mo("h"),Nf=mo("d"),Yf=mo("w"),Hf=mo("M"),E_=mo("y");function La(m){return function(){return this.isValid()?this._data[m]:NaN}}var I_=La("milliseconds"),P_=La("seconds"),O_=La("minutes"),Vf=La("hours"),Ea=La("days"),A_=La("months"),F_=La("years");var ws=Math.round,Yo={ss:44,s:45,m:45,h:22,d:26,M:11};function Ve(m,P,j,$,ne){return ne.relativeTime(P||1,!!j,m,$)}var Oc=Math.abs;function Ho(m){return(m>0)-(m<0)||+m}function Hr(){if(!this.isValid())return this.localeData().invalidDate();var $,ne,m=Oc(this._milliseconds)/1e3,P=Oc(this._days),j=Oc(this._months);$=Q(m/60),ne=Q($/60),m%=60,$%=60;var je=Q(j/12),At=j%=12,Ut=P,ki=ne,Br=$,bl=m?m.toFixed(3).replace(/\.?0+$/,""):"",vl=this.asSeconds();if(!vl)return"P0D";var cu=vl<0?"-":"",Ac=Ho(this._months)!==Ho(vl)?"-":"",jf=Ho(this._days)!==Ho(vl)?"-":"",yl=Ho(this._milliseconds)!==Ho(vl)?"-":"";return cu+"P"+(je?Ac+je+"Y":"")+(At?Ac+At+"M":"")+(Ut?jf+Ut+"D":"")+(ki||Br||bl?"T":"")+(ki?yl+ki+"H":"")+(Br?yl+Br+"M":"")+(bl?yl+bl+"S":"")}var tn=Et.prototype;return tn.isValid=function Da(){return this._isValid},tn.abs=function Ff(){var m=this._data;return this._milliseconds=No(this._milliseconds),this._days=No(this._days),this._months=No(this._months),m.milliseconds=No(m.milliseconds),m.seconds=No(m.seconds),m.minutes=No(m.minutes),m.hours=No(m.hours),m.months=No(m.months),m.years=No(m.years),this},tn.add=function k_(m,P){return Un(this,m,P,1)},tn.subtract=function Pc(m,P){return Un(this,m,P,-1)},tn.as=function Tr(m){if(!this.isValid())return NaN;var P,j,$=this._milliseconds;if("month"===(m=fe(m))||"year"===m)return j=this._months+lu(P=this._days+$/864e5),"month"===m?j:j/12;switch(P=this._days+Math.round(ys(this._months)),m){case"week":return P/7+$/6048e5;case"day":return P+$/864e5;case"hour":return 24*P+$/36e5;case"minute":return 1440*P+$/6e4;case"second":return 86400*P+$/1e3;case"millisecond":return Math.floor(864e5*P)+$;default:throw new Error("Unknown unit "+m)}},tn.asMilliseconds=T_,tn.asSeconds=Ms,tn.asMinutes=Rf,tn.asHours=L_,tn.asDays=Nf,tn.asWeeks=Yf,tn.asMonths=Hf,tn.asYears=E_,tn.valueOf=function D_(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*ee(this._months/12):NaN},tn._bubble=function S_(){var ne,Le,je,At,Ut,m=this._milliseconds,P=this._days,j=this._months,$=this._data;return m>=0&&P>=0&&j>=0||m<=0&&P<=0&&j<=0||(m+=864e5*yr(ys(j)+P),P=0,j=0),$.milliseconds=m%1e3,ne=Q(m/1e3),$.seconds=ne%60,Le=Q(ne/60),$.minutes=Le%60,je=Q(Le/60),$.hours=je%24,P+=Q(je/24),j+=Ut=Q(lu(P)),P-=yr(ys(Ut)),At=Q(j/12),j%=12,$.days=P,$.months=j,$.years=At,this},tn.clone=function Tt(){return br(this)},tn.get=function Bf(m){return m=fe(m),this.isValid()?this[m+"s"]():NaN},tn.milliseconds=I_,tn.seconds=P_,tn.minutes=O_,tn.hours=Vf,tn.days=Ea,tn.weeks=function R_(){return Q(this.days()/7)},tn.months=A_,tn.years=F_,tn.humanize=function tr(m){if(!this.isValid())return this.localeData().invalidDate();var P=this.localeData(),j=function dn(m,P,j){var $=br(m).abs(),ne=ws($.as("s")),Le=ws($.as("m")),je=ws($.as("h")),At=ws($.as("d")),Ut=ws($.as("M")),ki=ws($.as("y")),Br=ne<=Yo.ss&&["s",ne]||ne0,Br[4]=j,Ve.apply(null,Br)}(this,!m,P);return m&&(j=P.pastFuture(+this,j)),P.postformat(j)},tn.toISOString=Hr,tn.toString=Hr,tn.toJSON=Hr,tn.locale=iu,tn.localeData=h_,tn.toIsoString=J("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Hr),tn.lang=u_,it("X",0,0,"unix"),it("x",0,0,"valueOf"),gt("x",_a),gt("X",/[+-]?\d+(\.\d{1,3})?/),Tn("X",function(m,P,j){j._d=new Date(1e3*parseFloat(m,10))}),Tn("x",function(m,P,j){j._d=new Date(ee(m))}),v.version="2.22.2",function u(m){O=m}(zt),v.fn=Je,v.min=function uo(){return Xn("isBefore",[].slice.call(arguments,0))},v.max=function Bs(){return Xn("isAfter",[].slice.call(arguments,0))},v.now=function(){return Date.now?Date.now():+new Date},v.utc=L,v.unix=function M_(m){return zt(1e3*m)},v.months=function Af(m,P){return Of(m,P,"months")},v.isDate=x,v.locale=ka,v.invalid=re,v.duration=br,v.isMoment=q,v.weekdays=function au(m,P,j){return Ic(m,P,j,"weekdays")},v.parseZone=function w_(){return zt.apply(null,arguments).parseZone()},v.localeData=_s,v.isDuration=js,v.monthsShort=function C_(m,P){return Of(m,P,"monthsShort")},v.weekdaysMin=function Ro(m,P,j){return Ic(m,P,j,"weekdaysMin")},v.defineLocale=vc,v.updateLocale=function Jg(m,P){if(null!=P){var j,$,ne=Xd;null!=($=ml(m))&&(ne=$._config),(j=new st(P=tt(ne,P))).parentLocale=hi[m],hi[m]=j,ka(m)}else null!=hi[m]&&(null!=hi[m].parentLocale?hi[m]=hi[m].parentLocale:null!=hi[m]&&delete hi[m]);return hi[m]},v.locales=function co(){return at(hi)},v.weekdaysShort=function x_(m,P,j){return Ic(m,P,j,"weekdaysShort")},v.normalizeUnits=fe,v.relativeTimeRounding=function Pe(m){return void 0===m?ws:"function"==typeof m&&(ws=m,!0)},v.relativeTimeThreshold=function Oe(m,P){return void 0!==Yo[m]&&(void 0===P?Yo[m]:(Yo[m]=P,"s"===m&&(Yo.ss=P-1),!0))},v.calendarFormat=function fo(m,P){var j=m.diff(P,"days",!0);return j<-6?"sameElse":j<-1?"lastWeek":j<0?"lastDay":j<1?"sameDay":j<2?"nextDay":j<7?"nextWeek":"sameElse"},v.prototype=Je,v.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},v}()},6700:(de,ge,N)=>{var O={"./af":7088,"./af.js":7088,"./ar":7038,"./ar-dz":2502,"./ar-dz.js":2502,"./ar-kw":128,"./ar-kw.js":128,"./ar-ly":4519,"./ar-ly.js":4519,"./ar-ma":5443,"./ar-ma.js":5443,"./ar-sa":7642,"./ar-sa.js":7642,"./ar-tn":8592,"./ar-tn.js":8592,"./ar.js":7038,"./az":1213,"./az.js":1213,"./be":9191,"./be.js":9191,"./bg":322,"./bg.js":322,"./bm":8042,"./bm.js":8042,"./bn":9620,"./bn.js":9620,"./bo":9645,"./bo.js":9645,"./br":5020,"./br.js":5020,"./bs":4792,"./bs.js":4792,"./ca":7980,"./ca.js":7980,"./cs":7322,"./cs.js":7322,"./cv":365,"./cv.js":365,"./cy":2092,"./cy.js":2092,"./da":7387,"./da.js":7387,"./de":4307,"./de-at":9459,"./de-at.js":9459,"./de-ch":3694,"./de-ch.js":3694,"./de.js":4307,"./dv":9659,"./dv.js":9659,"./el":3460,"./el.js":3460,"./en-au":4369,"./en-au.js":4369,"./en-ca":530,"./en-ca.js":530,"./en-gb":9998,"./en-gb.js":9998,"./en-ie":3391,"./en-ie.js":3391,"./en-il":5414,"./en-il.js":5414,"./en-nz":1248,"./en-nz.js":1248,"./eo":4530,"./eo.js":4530,"./es":6866,"./es-do":8944,"./es-do.js":8944,"./es-us":3609,"./es-us.js":3609,"./es.js":6866,"./et":6725,"./et.js":6725,"./eu":7931,"./eu.js":7931,"./fa":6417,"./fa.js":6417,"./fi":944,"./fi.js":944,"./fo":5867,"./fo.js":5867,"./fr":1636,"./fr-ca":6848,"./fr-ca.js":6848,"./fr-ch":7773,"./fr-ch.js":7773,"./fr.js":1636,"./fy":4940,"./fy.js":4940,"./gd":6924,"./gd.js":6924,"./gl":6398,"./gl.js":6398,"./gom-latn":2545,"./gom-latn.js":2545,"./gu":2641,"./gu.js":2641,"./he":7536,"./he.js":7536,"./hi":6335,"./hi.js":6335,"./hr":7458,"./hr.js":7458,"./hu":6540,"./hu.js":6540,"./hy-am":5283,"./hy-am.js":5283,"./id":8780,"./id.js":8780,"./is":4205,"./is.js":4205,"./it":4211,"./it.js":4211,"./ja":1003,"./ja.js":1003,"./jv":420,"./jv.js":420,"./ka":851,"./ka.js":851,"./kk":6074,"./kk.js":6074,"./km":3343,"./km.js":3343,"./kn":4799,"./kn.js":4799,"./ko":3549,"./ko.js":3549,"./ky":3125,"./ky.js":3125,"./lb":9586,"./lb.js":9586,"./lo":2349,"./lo.js":2349,"./lt":2400,"./lt.js":2400,"./lv":9991,"./lv.js":9991,"./me":8477,"./me.js":8477,"./mi":5118,"./mi.js":5118,"./mk":5943,"./mk.js":5943,"./ml":3849,"./ml.js":3849,"./mn":1977,"./mn.js":1977,"./mr":6184,"./mr.js":6184,"./ms":485,"./ms-my":4524,"./ms-my.js":4524,"./ms.js":485,"./mt":6681,"./mt.js":6681,"./my":2024,"./my.js":2024,"./nb":2688,"./nb.js":2688,"./ne":8914,"./ne.js":8914,"./nl":1758,"./nl-be":2272,"./nl-be.js":2272,"./nl.js":1758,"./nn":1510,"./nn.js":1510,"./pa-in":7944,"./pa-in.js":7944,"./pl":1605,"./pl.js":1605,"./pt":4225,"./pt-br":3840,"./pt-br.js":3840,"./pt.js":4225,"./ro":5128,"./ro.js":5128,"./ru":5127,"./ru.js":5127,"./sd":2525,"./sd.js":2525,"./se":9893,"./se.js":9893,"./si":3123,"./si.js":3123,"./sk":9635,"./sk.js":9635,"./sl":8106,"./sl.js":8106,"./sq":8799,"./sq.js":8799,"./sr":7949,"./sr-cyrl":2872,"./sr-cyrl.js":2872,"./sr.js":7949,"./ss":6167,"./ss.js":6167,"./sv":9713,"./sv.js":9713,"./sw":1982,"./sw.js":1982,"./ta":2732,"./ta.js":2732,"./te":3636,"./te.js":3636,"./tet":2115,"./tet.js":2115,"./tg":9801,"./tg.js":9801,"./th":2868,"./th.js":2868,"./tl-ph":2360,"./tl-ph.js":2360,"./tlh":6645,"./tlh.js":6645,"./tr":8374,"./tr.js":8374,"./tzl":256,"./tzl.js":256,"./tzm":1595,"./tzm-latn":1631,"./tzm-latn.js":1631,"./tzm.js":1595,"./ug-cn":6050,"./ug-cn.js":6050,"./uk":5610,"./uk.js":5610,"./ur":6077,"./ur.js":6077,"./uz":2862,"./uz-latn":2207,"./uz-latn.js":2207,"./uz.js":2862,"./vi":8093,"./vi.js":8093,"./x-pseudo":5590,"./x-pseudo.js":5590,"./yo":9058,"./yo.js":9058,"./zh-cn":7908,"./zh-cn.js":7908,"./zh-hk":8867,"./zh-hk.js":8867,"./zh-tw":3291,"./zh-tw.js":3291};function v(f){var h=u(f);return N(h)}function u(f){if(!N.o(O,f)){var h=new Error("Cannot find module '"+f+"'");throw h.code="MODULE_NOT_FOUND",h}return O[f]}v.keys=function(){return Object.keys(O)},v.resolve=u,de.exports=v,v.id=6700},6297:(de,ge,N)=>{var O={"./de.json":[3634,634],"./de_base.json":[3431,431],"./en.json":[502,502],"./es.json":[4268,268],"./es_base.json":[3974,974],"./pt.json":[5733,733],"./pt_base.json":[7048,48]};function v(u){if(!N.o(O,u))return Promise.resolve().then(()=>{var M=new Error("Cannot find module '"+u+"'");throw M.code="MODULE_NOT_FOUND",M});var f=O[u],h=f[0];return N.e(f[1]).then(()=>N.t(h,19))}v.keys=()=>Object.keys(O),v.id=6297,de.exports=v}},de=>{de(de.s=4752)}]); \ No newline at end of file diff --git a/static/skywire-manager-src/dist/polyfills.951b12835e27c1a3.js b/static/skywire-manager-src/dist/polyfills.951b12835e27c1a3.js new file mode 100644 index 0000000000..437a22851c --- /dev/null +++ b/static/skywire-manager-src/dist/polyfills.951b12835e27c1a3.js @@ -0,0 +1 @@ +(self.webpackChunkskywire_manager=self.webpackChunkskywire_manager||[]).push([[429],{7435:(s,E,t)=>{"use strict";t(7795),t(8583)},8583:()=>{"use strict";!function(n){const i=n.performance;function v(at){i&&i.mark&&i.mark(at)}function l(at,F){i&&i.measure&&i.measure(at,F)}v("Zone");const y=n.__Zone_symbol_prefix||"__zone_symbol__";function x(at){return y+at}const G=!0===n[x("forceDuplicateZoneCheck")];if(n.Zone){if(G||"function"!=typeof n.Zone.__symbol__)throw new Error("Zone already loaded.");return n.Zone}let L=(()=>{class at{static assertZonePatched(){if(n.Promise!==Ht.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let e=at.current;for(;e.parent;)e=e.parent;return e}static get current(){return Tt.zone}static get currentTask(){return Lt}static __load_patch(e,f,K=!1){if(Ht.hasOwnProperty(e)){if(!K&&G)throw Error("Already loaded patch: "+e)}else if(!n["__Zone_disable_"+e]){const q="Zone:"+e;v(q),Ht[e]=f(n,at,Rt),l(q,q)}}get parent(){return this._parent}get name(){return this._name}constructor(e,f){this._parent=e,this._name=f?f.name||"unnamed":"",this._properties=f&&f.properties||{},this._zoneDelegate=new $(this,this._parent&&this._parent._zoneDelegate,f)}get(e){const f=this.getZoneWith(e);if(f)return f._properties[e]}getZoneWith(e){let f=this;for(;f;){if(f._properties.hasOwnProperty(e))return f;f=f._parent}return null}fork(e){if(!e)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,e)}wrap(e,f){if("function"!=typeof e)throw new Error("Expecting function got: "+e);const K=this._zoneDelegate.intercept(this,e,f),q=this;return function(){return q.runGuarded(K,this,arguments,f)}}run(e,f,K,q){Tt={parent:Tt,zone:this};try{return this._zoneDelegate.invoke(this,e,f,K,q)}finally{Tt=Tt.parent}}runGuarded(e,f=null,K,q){Tt={parent:Tt,zone:this};try{try{return this._zoneDelegate.invoke(this,e,f,K,q)}catch(St){if(this._zoneDelegate.handleError(this,St))throw St}}finally{Tt=Tt.parent}}runTask(e,f,K){if(e.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(e.zone||bt).name+"; Execution: "+this.name+")");if(e.state===ft&&(e.type===Dt||e.type===_))return;const q=e.state!=H;q&&e._transitionTo(H,ct),e.runCount++;const St=Lt;Lt=e,Tt={parent:Tt,zone:this};try{e.type==_&&e.data&&!e.data.isPeriodic&&(e.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,e,f,K)}catch(P){if(this._zoneDelegate.handleError(this,P))throw P}}finally{e.state!==ft&&e.state!==N&&(e.type==Dt||e.data&&e.data.isPeriodic?q&&e._transitionTo(ct,H):(e.runCount=0,this._updateTaskCount(e,-1),q&&e._transitionTo(ft,H,ft))),Tt=Tt.parent,Lt=St}}scheduleTask(e){if(e.zone&&e.zone!==this){let K=this;for(;K;){if(K===e.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${e.zone.name}`);K=K.parent}}e._transitionTo(kt,ft);const f=[];e._zoneDelegates=f,e._zone=this;try{e=this._zoneDelegate.scheduleTask(this,e)}catch(K){throw e._transitionTo(N,kt,ft),this._zoneDelegate.handleError(this,K),K}return e._zoneDelegates===f&&this._updateTaskCount(e,1),e.state==kt&&e._transitionTo(ct,kt),e}scheduleMicroTask(e,f,K,q){return this.scheduleTask(new V(st,e,f,K,q,void 0))}scheduleMacroTask(e,f,K,q,St){return this.scheduleTask(new V(_,e,f,K,q,St))}scheduleEventTask(e,f,K,q,St){return this.scheduleTask(new V(Dt,e,f,K,q,St))}cancelTask(e){if(e.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(e.zone||bt).name+"; Execution: "+this.name+")");if(e.state===ct||e.state===H){e._transitionTo(ht,ct,H);try{this._zoneDelegate.cancelTask(this,e)}catch(f){throw e._transitionTo(N,ht),this._zoneDelegate.handleError(this,f),f}return this._updateTaskCount(e,-1),e._transitionTo(ft,ht),e.runCount=0,e}}_updateTaskCount(e,f){const K=e._zoneDelegates;-1==f&&(e._zoneDelegates=null);for(let q=0;qat.hasTask(e,f),onScheduleTask:(at,F,e,f)=>at.scheduleTask(e,f),onInvokeTask:(at,F,e,f,K,q)=>at.invokeTask(e,f,K,q),onCancelTask:(at,F,e,f)=>at.cancelTask(e,f)};class ${constructor(F,e,f){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=F,this._parentDelegate=e,this._forkZS=f&&(f&&f.onFork?f:e._forkZS),this._forkDlgt=f&&(f.onFork?e:e._forkDlgt),this._forkCurrZone=f&&(f.onFork?this.zone:e._forkCurrZone),this._interceptZS=f&&(f.onIntercept?f:e._interceptZS),this._interceptDlgt=f&&(f.onIntercept?e:e._interceptDlgt),this._interceptCurrZone=f&&(f.onIntercept?this.zone:e._interceptCurrZone),this._invokeZS=f&&(f.onInvoke?f:e._invokeZS),this._invokeDlgt=f&&(f.onInvoke?e:e._invokeDlgt),this._invokeCurrZone=f&&(f.onInvoke?this.zone:e._invokeCurrZone),this._handleErrorZS=f&&(f.onHandleError?f:e._handleErrorZS),this._handleErrorDlgt=f&&(f.onHandleError?e:e._handleErrorDlgt),this._handleErrorCurrZone=f&&(f.onHandleError?this.zone:e._handleErrorCurrZone),this._scheduleTaskZS=f&&(f.onScheduleTask?f:e._scheduleTaskZS),this._scheduleTaskDlgt=f&&(f.onScheduleTask?e:e._scheduleTaskDlgt),this._scheduleTaskCurrZone=f&&(f.onScheduleTask?this.zone:e._scheduleTaskCurrZone),this._invokeTaskZS=f&&(f.onInvokeTask?f:e._invokeTaskZS),this._invokeTaskDlgt=f&&(f.onInvokeTask?e:e._invokeTaskDlgt),this._invokeTaskCurrZone=f&&(f.onInvokeTask?this.zone:e._invokeTaskCurrZone),this._cancelTaskZS=f&&(f.onCancelTask?f:e._cancelTaskZS),this._cancelTaskDlgt=f&&(f.onCancelTask?e:e._cancelTaskDlgt),this._cancelTaskCurrZone=f&&(f.onCancelTask?this.zone:e._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const K=f&&f.onHasTask;(K||e&&e._hasTaskZS)&&(this._hasTaskZS=K?f:X,this._hasTaskDlgt=e,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=F,f.onScheduleTask||(this._scheduleTaskZS=X,this._scheduleTaskDlgt=e,this._scheduleTaskCurrZone=this.zone),f.onInvokeTask||(this._invokeTaskZS=X,this._invokeTaskDlgt=e,this._invokeTaskCurrZone=this.zone),f.onCancelTask||(this._cancelTaskZS=X,this._cancelTaskDlgt=e,this._cancelTaskCurrZone=this.zone))}fork(F,e){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,F,e):new L(F,e)}intercept(F,e,f){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,F,e,f):e}invoke(F,e,f,K,q){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,F,e,f,K,q):e.apply(f,K)}handleError(F,e){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,F,e)}scheduleTask(F,e){let f=e;if(this._scheduleTaskZS)this._hasTaskZS&&f._zoneDelegates.push(this._hasTaskDlgtOwner),f=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,F,e),f||(f=e);else if(e.scheduleFn)e.scheduleFn(e);else{if(e.type!=st)throw new Error("Task is missing scheduleFn.");Q(e)}return f}invokeTask(F,e,f,K){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,F,e,f,K):e.callback.apply(f,K)}cancelTask(F,e){let f;if(this._cancelTaskZS)f=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,F,e);else{if(!e.cancelFn)throw Error("Task is not cancelable");f=e.cancelFn(e)}return f}hasTask(F,e){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,F,e)}catch(f){this.handleError(F,f)}}_updateTaskCount(F,e){const f=this._taskCounts,K=f[F],q=f[F]=K+e;if(q<0)throw new Error("More tasks executed then were scheduled.");0!=K&&0!=q||this.hasTask(this.zone,{microTask:f.microTask>0,macroTask:f.macroTask>0,eventTask:f.eventTask>0,change:F})}}class V{constructor(F,e,f,K,q,St){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=F,this.source=e,this.data=K,this.scheduleFn=q,this.cancelFn=St,!f)throw new Error("callback is not defined");this.callback=f;const P=this;this.invoke=F===Dt&&K&&K.useG?V.invokeTask:function(){return V.invokeTask.call(n,P,this,arguments)}}static invokeTask(F,e,f){F||(F=this),Ct++;try{return F.runCount++,F.zone.runTask(F,e,f)}finally{1==Ct&&A(),Ct--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(ft,kt)}_transitionTo(F,e,f){if(this._state!==e&&this._state!==f)throw new Error(`${this.type} '${this.source}': can not transition to '${F}', expecting state '${e}'${f?" or '"+f+"'":""}, was '${this._state}'.`);this._state=F,F==ft&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const it=x("setTimeout"),rt=x("Promise"),ot=x("then");let Mt,yt=[],ut=!1;function Ot(at){if(Mt||n[rt]&&(Mt=n[rt].resolve(0)),Mt){let F=Mt[ot];F||(F=Mt.then),F.call(Mt,at)}else n[it](at,0)}function Q(at){0===Ct&&0===yt.length&&Ot(A),at&&yt.push(at)}function A(){if(!ut){for(ut=!0;yt.length;){const at=yt;yt=[];for(let F=0;FTt,onUnhandledError:mt,microtaskDrainDone:mt,scheduleMicroTask:Q,showUncaughtError:()=>!L[x("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:mt,patchMethod:()=>mt,bindArguments:()=>[],patchThen:()=>mt,patchMacroTask:()=>mt,patchEventPrototype:()=>mt,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>mt,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>mt,wrapWithCurrentZone:()=>mt,filterProperties:()=>[],attachOriginToPatched:()=>mt,_redefineProperty:()=>mt,patchCallbacks:()=>mt,nativeScheduleMicroTask:Ot};let Tt={parent:null,zone:new L(null,null)},Lt=null,Ct=0;function mt(){}l("Zone","Zone"),n.Zone=L}(typeof window<"u"&&window||typeof self<"u"&&self||global);const s=Object.getOwnPropertyDescriptor,E=Object.defineProperty,t=Object.getPrototypeOf,r=Object.create,o=Array.prototype.slice,c="addEventListener",u="removeEventListener",a=Zone.__symbol__(c),d=Zone.__symbol__(u),g="true",p="false",T=Zone.__symbol__("");function m(n,i){return Zone.current.wrap(n,i)}function C(n,i,v,l,y){return Zone.current.scheduleMacroTask(n,i,v,l,y)}const O=Zone.__symbol__,b=typeof window<"u",z=b?window:void 0,k=b&&z||"object"==typeof self&&self||global,D="removeAttribute";function j(n,i){for(let v=n.length-1;v>=0;v--)"function"==typeof n[v]&&(n[v]=m(n[v],i+"_"+v));return n}function Z(n){return!n||!1!==n.writable&&!("function"==typeof n.get&&typeof n.set>"u")}const M=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,I=!("nw"in k)&&typeof k.process<"u"&&"[object process]"==={}.toString.call(k.process),B=!I&&!M&&!(!b||!z.HTMLElement),J=typeof k.process<"u"&&"[object process]"==={}.toString.call(k.process)&&!M&&!(!b||!z.HTMLElement),gt={},wt=function(n){if(!(n=n||k.event))return;let i=gt[n.type];i||(i=gt[n.type]=O("ON_PROPERTY"+n.type));const v=this||n.target||k,l=v[i];let y;return B&&v===z&&"error"===n.type?(y=l&&l.call(this,n.message,n.filename,n.lineno,n.colno,n.error),!0===y&&n.preventDefault()):(y=l&&l.apply(this,arguments),null!=y&&!y&&n.preventDefault()),y};function It(n,i,v){let l=s(n,i);if(!l&&v&&s(v,i)&&(l={enumerable:!0,configurable:!0}),!l||!l.configurable)return;const y=O("on"+i+"patched");if(n.hasOwnProperty(y)&&n[y])return;delete l.writable,delete l.value;const x=l.get,G=l.set,L=i.slice(2);let X=gt[L];X||(X=gt[L]=O("ON_PROPERTY"+L)),l.set=function($){let V=this;!V&&n===k&&(V=k),V&&("function"==typeof V[X]&&V.removeEventListener(L,wt),G&&G.call(V,null),V[X]=$,"function"==typeof $&&V.addEventListener(L,wt,!1))},l.get=function(){let $=this;if(!$&&n===k&&($=k),!$)return null;const V=$[X];if(V)return V;if(x){let it=x.call(this);if(it)return l.set.call(this,it),"function"==typeof $[D]&&$.removeAttribute(i),it}return null},E(n,i,l),n[y]=!0}function Nt(n,i,v){if(i)for(let l=0;lfunction(G,L){const X=v(G,L);return X.cbIdx>=0&&"function"==typeof L[X.cbIdx]?C(X.name,L[X.cbIdx],X,y):x.apply(G,L)})}function dt(n,i){n[O("OriginalDelegate")]=i}let Et=!1,jt=!1;function le(){if(Et)return jt;Et=!0;try{const n=z.navigator.userAgent;(-1!==n.indexOf("MSIE ")||-1!==n.indexOf("Trident/")||-1!==n.indexOf("Edge/"))&&(jt=!0)}catch{}return jt}Zone.__load_patch("ZoneAwarePromise",(n,i,v)=>{const l=Object.getOwnPropertyDescriptor,y=Object.defineProperty,G=v.symbol,L=[],X=!0===n[G("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],$=G("Promise"),V=G("then"),it="__creationTrace__";v.onUnhandledError=P=>{if(v.showUncaughtError()){const R=P&&P.rejection;R?console.error("Unhandled Promise rejection:",R instanceof Error?R.message:R,"; Zone:",P.zone.name,"; Task:",P.task&&P.task.source,"; Value:",R,R instanceof Error?R.stack:void 0):console.error(P)}},v.microtaskDrainDone=()=>{for(;L.length;){const P=L.shift();try{P.zone.runGuarded(()=>{throw P.throwOriginal?P.rejection:P})}catch(R){ot(R)}}};const rt=G("unhandledPromiseRejectionHandler");function ot(P){v.onUnhandledError(P);try{const R=i[rt];"function"==typeof R&&R.call(this,P)}catch{}}function yt(P){return P&&P.then}function ut(P){return P}function Mt(P){return e.reject(P)}const Ot=G("state"),Q=G("value"),A=G("finally"),bt=G("parentPromiseValue"),ft=G("parentPromiseState"),kt="Promise.then",ct=null,H=!0,ht=!1,N=0;function st(P,R){return h=>{try{Rt(P,R,h)}catch(S){Rt(P,!1,S)}}}const _=function(){let P=!1;return function(h){return function(){P||(P=!0,h.apply(null,arguments))}}},Dt="Promise resolved with itself",Ht=G("currentTaskTrace");function Rt(P,R,h){const S=_();if(P===h)throw new TypeError(Dt);if(P[Ot]===ct){let W=null;try{("object"==typeof h||"function"==typeof h)&&(W=h&&h.then)}catch(Y){return S(()=>{Rt(P,!1,Y)})(),P}if(R!==ht&&h instanceof e&&h.hasOwnProperty(Ot)&&h.hasOwnProperty(Q)&&h[Ot]!==ct)Lt(h),Rt(P,h[Ot],h[Q]);else if(R!==ht&&"function"==typeof W)try{W.call(h,S(st(P,R)),S(st(P,!1)))}catch(Y){S(()=>{Rt(P,!1,Y)})()}else{P[Ot]=R;const Y=P[Q];if(P[Q]=h,P[A]===A&&R===H&&(P[Ot]=P[ft],P[Q]=P[bt]),R===ht&&h instanceof Error){const U=i.currentTask&&i.currentTask.data&&i.currentTask.data[it];U&&y(h,Ht,{configurable:!0,enumerable:!1,writable:!0,value:U})}for(let U=0;U{try{const tt=P[Q],et=!!h&&A===h[A];et&&(h[bt]=tt,h[ft]=Y);const nt=R.run(U,void 0,et&&U!==Mt&&U!==ut?[]:[tt]);Rt(h,!0,nt)}catch(tt){Rt(h,!1,tt)}},h)}const at=function(){},F=n.AggregateError;class e{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(R){return Rt(new this(null),H,R)}static reject(R){return Rt(new this(null),ht,R)}static any(R){if(!R||"function"!=typeof R[Symbol.iterator])return Promise.reject(new F([],"All promises were rejected"));const h=[];let S=0;try{for(let U of R)S++,h.push(e.resolve(U))}catch{return Promise.reject(new F([],"All promises were rejected"))}if(0===S)return Promise.reject(new F([],"All promises were rejected"));let W=!1;const Y=[];return new e((U,tt)=>{for(let et=0;et{W||(W=!0,U(nt))},nt=>{Y.push(nt),S--,0===S&&(W=!0,tt(new F(Y,"All promises were rejected")))})})}static race(R){let h,S,W=new this((tt,et)=>{h=tt,S=et});function Y(tt){h(tt)}function U(tt){S(tt)}for(let tt of R)yt(tt)||(tt=this.resolve(tt)),tt.then(Y,U);return W}static all(R){return e.allWithCallback(R)}static allSettled(R){return(this&&this.prototype instanceof e?this:e).allWithCallback(R,{thenCallback:S=>({status:"fulfilled",value:S}),errorCallback:S=>({status:"rejected",reason:S})})}static allWithCallback(R,h){let S,W,Y=new this((nt,vt)=>{S=nt,W=vt}),U=2,tt=0;const et=[];for(let nt of R){yt(nt)||(nt=this.resolve(nt));const vt=tt;try{nt.then(pt=>{et[vt]=h?h.thenCallback(pt):pt,U--,0===U&&S(et)},pt=>{h?(et[vt]=h.errorCallback(pt),U--,0===U&&S(et)):W(pt)})}catch(pt){W(pt)}U++,tt++}return U-=2,0===U&&S(et),Y}constructor(R){const h=this;if(!(h instanceof e))throw new Error("Must be an instanceof Promise.");h[Ot]=ct,h[Q]=[];try{const S=_();R&&R(S(st(h,H)),S(st(h,ht)))}catch(S){Rt(h,!1,S)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return e}then(R,h){let S=this.constructor?.[Symbol.species];(!S||"function"!=typeof S)&&(S=this.constructor||e);const W=new S(at),Y=i.current;return this[Ot]==ct?this[Q].push(Y,W,R,h):Ct(this,Y,W,R,h),W}catch(R){return this.then(null,R)}finally(R){let h=this.constructor?.[Symbol.species];(!h||"function"!=typeof h)&&(h=e);const S=new h(at);S[A]=A;const W=i.current;return this[Ot]==ct?this[Q].push(W,S,R,R):Ct(this,W,S,R,R),S}}e.resolve=e.resolve,e.reject=e.reject,e.race=e.race,e.all=e.all;const f=n[$]=n.Promise;n.Promise=e;const K=G("thenPatched");function q(P){const R=P.prototype,h=l(R,"then");if(h&&(!1===h.writable||!h.configurable))return;const S=R.then;R[V]=S,P.prototype.then=function(W,Y){return new e((tt,et)=>{S.call(this,tt,et)}).then(W,Y)},P[K]=!0}return v.patchThen=q,f&&(q(f),lt(n,"fetch",P=>function St(P){return function(R,h){let S=P.apply(R,h);if(S instanceof e)return S;let W=S.constructor;return W[K]||q(W),S}}(P))),Promise[i.__symbol__("uncaughtPromiseErrors")]=L,e}),Zone.__load_patch("toString",n=>{const i=Function.prototype.toString,v=O("OriginalDelegate"),l=O("Promise"),y=O("Error"),x=function(){if("function"==typeof this){const $=this[v];if($)return"function"==typeof $?i.call($):Object.prototype.toString.call($);if(this===Promise){const V=n[l];if(V)return i.call(V)}if(this===Error){const V=n[y];if(V)return i.call(V)}}return i.call(this)};x[v]=i,Function.prototype.toString=x;const G=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":G.call(this)}});let Ut=!1;if(typeof window<"u")try{const n=Object.defineProperty({},"passive",{get:function(){Ut=!0}});window.addEventListener("test",n,n),window.removeEventListener("test",n,n)}catch{Ut=!1}const de={useG:!0},Zt={},qt={},te=new RegExp("^"+T+"(\\w+)(true|false)$"),ee=O("propagationStopped");function ne(n,i){const v=(i?i(n):n)+p,l=(i?i(n):n)+g,y=T+v,x=T+l;Zt[n]={},Zt[n][p]=y,Zt[n][g]=x}function he(n,i,v,l){const y=l&&l.add||c,x=l&&l.rm||u,G=l&&l.listeners||"eventListeners",L=l&&l.rmAll||"removeAllListeners",X=O(y),$="."+y+":",V="prependListener",it="."+V+":",rt=function(Q,A,bt){if(Q.isRemoved)return;const ft=Q.callback;let kt;"object"==typeof ft&&ft.handleEvent&&(Q.callback=H=>ft.handleEvent(H),Q.originalDelegate=ft);try{Q.invoke(Q,A,[bt])}catch(H){kt=H}const ct=Q.options;return ct&&"object"==typeof ct&&ct.once&&A[x].call(A,bt.type,Q.originalDelegate?Q.originalDelegate:Q.callback,ct),kt};function ot(Q,A,bt){if(!(A=A||n.event))return;const ft=Q||A.target||n,kt=ft[Zt[A.type][bt?g:p]];if(kt){const ct=[];if(1===kt.length){const H=rt(kt[0],ft,A);H&&ct.push(H)}else{const H=kt.slice();for(let ht=0;ht{throw ht})}}}const yt=function(Q){return ot(this,Q,!1)},ut=function(Q){return ot(this,Q,!0)};function Mt(Q,A){if(!Q)return!1;let bt=!0;A&&void 0!==A.useG&&(bt=A.useG);const ft=A&&A.vh;let kt=!0;A&&void 0!==A.chkDup&&(kt=A.chkDup);let ct=!1;A&&void 0!==A.rt&&(ct=A.rt);let H=Q;for(;H&&!H.hasOwnProperty(y);)H=t(H);if(!H&&Q[y]&&(H=Q),!H||H[X])return!1;const ht=A&&A.eventNameToString,N={},st=H[X]=H[y],_=H[O(x)]=H[x],Dt=H[O(G)]=H[G],Ht=H[O(L)]=H[L];let Rt;A&&A.prepend&&(Rt=H[O(A.prepend)]=H[A.prepend]);const e=bt?function(h){if(!N.isExisting)return st.call(N.target,N.eventName,N.capture?ut:yt,N.options)}:function(h){return st.call(N.target,N.eventName,h.invoke,N.options)},f=bt?function(h){if(!h.isRemoved){const S=Zt[h.eventName];let W;S&&(W=S[h.capture?g:p]);const Y=W&&h.target[W];if(Y)for(let U=0;Ufunction(y,x){y[ee]=!0,l&&l.apply(y,x)})}function pe(n,i,v,l,y){const x=Zone.__symbol__(l);if(i[x])return;const G=i[x]=i[l];i[l]=function(L,X,$){return X&&X.prototype&&y.forEach(function(V){const it=`${v}.${l}::`+V,rt=X.prototype;try{if(rt.hasOwnProperty(V)){const ot=n.ObjectGetOwnPropertyDescriptor(rt,V);ot&&ot.value?(ot.value=n.wrapWithCurrentZone(ot.value,it),n._redefineProperty(X.prototype,V,ot)):rt[V]&&(rt[V]=n.wrapWithCurrentZone(rt[V],it))}else rt[V]&&(rt[V]=n.wrapWithCurrentZone(rt[V],it))}catch{}}),G.call(i,L,X,$)},n.attachOriginToPatched(i[l],G)}function oe(n,i,v){if(!v||0===v.length)return i;const l=v.filter(x=>x.target===n);if(!l||0===l.length)return i;const y=l[0].ignoreProperties;return i.filter(x=>-1===y.indexOf(x))}function se(n,i,v,l){n&&Nt(n,oe(n,i,v),l)}function Yt(n){return Object.getOwnPropertyNames(n).filter(i=>i.startsWith("on")&&i.length>2).map(i=>i.substring(2))}Zone.__load_patch("util",(n,i,v)=>{const l=Yt(n);v.patchOnProperties=Nt,v.patchMethod=lt,v.bindArguments=j,v.patchMacroTask=Pt;const y=i.__symbol__("BLACK_LISTED_EVENTS"),x=i.__symbol__("UNPATCHED_EVENTS");n[x]&&(n[y]=n[x]),n[y]&&(i[y]=i[x]=n[y]),v.patchEventPrototype=ve,v.patchEventTarget=he,v.isIEOrEdge=le,v.ObjectDefineProperty=E,v.ObjectGetOwnPropertyDescriptor=s,v.ObjectCreate=r,v.ArraySlice=o,v.patchClass=At,v.wrapWithCurrentZone=m,v.filterProperties=oe,v.attachOriginToPatched=dt,v._redefineProperty=Object.defineProperty,v.patchCallbacks=pe,v.getGlobalObjects=()=>({globalSources:qt,zoneSymbolEventNames:Zt,eventNames:l,isBrowser:B,isMix:J,isNode:I,TRUE_STR:g,FALSE_STR:p,ZONE_SYMBOL_PREFIX:T,ADD_EVENT_LISTENER_STR:c,REMOVE_EVENT_LISTENER_STR:u})});const Xt=O("zoneTask");function Wt(n,i,v,l){let y=null,x=null;v+=l;const G={};function L($){const V=$.data;return V.args[0]=function(){return $.invoke.apply(this,arguments)},V.handleId=y.apply(n,V.args),$}function X($){return x.call(n,$.data.handleId)}y=lt(n,i+=l,$=>function(V,it){if("function"==typeof it[0]){const rt={isPeriodic:"Interval"===l,delay:"Timeout"===l||"Interval"===l?it[1]||0:void 0,args:it},ot=it[0];it[0]=function(){try{return ot.apply(this,arguments)}finally{rt.isPeriodic||("number"==typeof rt.handleId?delete G[rt.handleId]:rt.handleId&&(rt.handleId[Xt]=null))}};const yt=C(i,it[0],rt,L,X);if(!yt)return yt;const ut=yt.data.handleId;return"number"==typeof ut?G[ut]=yt:ut&&(ut[Xt]=yt),ut&&ut.ref&&ut.unref&&"function"==typeof ut.ref&&"function"==typeof ut.unref&&(yt.ref=ut.ref.bind(ut),yt.unref=ut.unref.bind(ut)),"number"==typeof ut||ut?ut:yt}return $.apply(n,it)}),x=lt(n,v,$=>function(V,it){const rt=it[0];let ot;"number"==typeof rt?ot=G[rt]:(ot=rt&&rt[Xt],ot||(ot=rt)),ot&&"string"==typeof ot.type?"notScheduled"!==ot.state&&(ot.cancelFn&&ot.data.isPeriodic||0===ot.runCount)&&("number"==typeof rt?delete G[rt]:rt&&(rt[Xt]=null),ot.zone.cancelTask(ot)):$.apply(n,it)})}Zone.__load_patch("legacy",n=>{const i=n[Zone.__symbol__("legacyPatch")];i&&i()}),Zone.__load_patch("queueMicrotask",(n,i,v)=>{v.patchMethod(n,"queueMicrotask",l=>function(y,x){i.current.scheduleMicroTask("queueMicrotask",x[0])})}),Zone.__load_patch("timers",n=>{const i="set",v="clear";Wt(n,i,v,"Timeout"),Wt(n,i,v,"Interval"),Wt(n,i,v,"Immediate")}),Zone.__load_patch("requestAnimationFrame",n=>{Wt(n,"request","cancel","AnimationFrame"),Wt(n,"mozRequest","mozCancel","AnimationFrame"),Wt(n,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(n,i)=>{const v=["alert","prompt","confirm"];for(let l=0;lfunction(X,$){return i.current.run(x,n,$,L)})}),Zone.__load_patch("EventTarget",(n,i,v)=>{(function Te(n,i){i.patchEventPrototype(n,i)})(n,v),function Ee(n,i){if(Zone[i.symbol("patchEventTarget")])return;const{eventNames:v,zoneSymbolEventNames:l,TRUE_STR:y,FALSE_STR:x,ZONE_SYMBOL_PREFIX:G}=i.getGlobalObjects();for(let X=0;X{At("MutationObserver"),At("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(n,i,v)=>{At("IntersectionObserver")}),Zone.__load_patch("FileReader",(n,i,v)=>{At("FileReader")}),Zone.__load_patch("on_property",(n,i,v)=>{!function ye(n,i){if(I&&!J||Zone[n.symbol("patchEvents")])return;const v=i.__Zone_ignore_on_properties;let l=[];if(B){const y=window;l=l.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const x=function $t(){try{const n=z.navigator.userAgent;if(-1!==n.indexOf("MSIE ")||-1!==n.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:y,ignoreProperties:["error"]}]:[];se(y,Yt(y),v&&v.concat(x),t(y))}l=l.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let y=0;y{!function ge(n,i){const{isBrowser:v,isMix:l}=i.getGlobalObjects();(v||l)&&n.customElements&&"customElements"in n&&i.patchCallbacks(i,n.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(n,v)}),Zone.__load_patch("XHR",(n,i)=>{!function X($){const V=$.XMLHttpRequest;if(!V)return;const it=V.prototype;let ot=it[a],yt=it[d];if(!ot){const N=$.XMLHttpRequestEventTarget;if(N){const st=N.prototype;ot=st[a],yt=st[d]}}const ut="readystatechange",Mt="scheduled";function Ot(N){const st=N.data,_=st.target;_[x]=!1,_[L]=!1;const Dt=_[y];ot||(ot=_[a],yt=_[d]),Dt&&yt.call(_,ut,Dt);const Ht=_[y]=()=>{if(_.readyState===_.DONE)if(!st.aborted&&_[x]&&N.state===Mt){const Tt=_[i.__symbol__("loadfalse")];if(0!==_.status&&Tt&&Tt.length>0){const Lt=N.invoke;N.invoke=function(){const Ct=_[i.__symbol__("loadfalse")];for(let mt=0;mtfunction(N,st){return N[l]=0==st[2],N[G]=st[1],bt.apply(N,st)}),kt=O("fetchTaskAborting"),ct=O("fetchTaskScheduling"),H=lt(it,"send",()=>function(N,st){if(!0===i.current[ct]||N[l])return H.apply(N,st);{const _={target:N,url:N[G],isPeriodic:!1,args:st,aborted:!1},Dt=C("XMLHttpRequest.send",Q,_,Ot,A);N&&!0===N[L]&&!_.aborted&&Dt.state===Mt&&Dt.invoke()}}),ht=lt(it,"abort",()=>function(N,st){const _=function rt(N){return N[v]}(N);if(_&&"string"==typeof _.type){if(null==_.cancelFn||_.data&&_.data.aborted)return;_.zone.cancelTask(_)}else if(!0===i.current[kt])return ht.apply(N,st)})}(n);const v=O("xhrTask"),l=O("xhrSync"),y=O("xhrListener"),x=O("xhrScheduled"),G=O("xhrURL"),L=O("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",n=>{n.navigator&&n.navigator.geolocation&&function w(n,i){const v=n.constructor.name;for(let l=0;l{const X=function(){return L.apply(this,j(arguments,v+"."+y))};return dt(X,L),X})(x)}}}(n.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(n,i)=>{function v(l){return function(y){re(n,l).forEach(G=>{const L=n.PromiseRejectionEvent;if(L){const X=new L(l,{promise:y.promise,reason:y.rejection});G.invoke(X)}})}}n.PromiseRejectionEvent&&(i[O("unhandledPromiseRejectionHandler")]=v("unhandledrejection"),i[O("rejectionHandledHandler")]=v("rejectionhandled"))})},7795:(s,E,t)=>{t(3364),t(1432),t(6562),t(4416),t(8681),t(2213),t(3471),t(4329),t(5159),t(5645)},4963:s=>{s.exports=function(E){if("function"!=typeof E)throw TypeError(E+" is not a function!");return E}},3328:s=>{s.exports=function(E,t,r,o){if(!(E instanceof t)||void 0!==o&&o in E)throw TypeError(r+": incorrect invocation!");return E}},7007:(s,E,t)=>{var r=t(5286);s.exports=function(o){if(!r(o))throw TypeError(o+" is not an object!");return o}},9490:(s,E,t)=>{var r=t(3531);s.exports=function(o,c){var u=[];return r(o,!1,u.push,u,c),u}},9315:(s,E,t)=>{var r=t(2110),o=t(875),c=t(2337);s.exports=function(u){return function(a,d,g){var C,p=r(a),T=o(p.length),m=c(g,T);if(u&&d!=d){for(;T>m;)if((C=p[m++])!=C)return!0}else for(;T>m;m++)if((u||m in p)&&p[m]===d)return u||m||0;return!u&&-1}}},50:(s,E,t)=>{var r=t(741),o=t(9797),c=t(508),u=t(875),a=t(6886);s.exports=function(d,g){var p=1==d,T=2==d,m=3==d,C=4==d,O=6==d,b=5==d||O,z=g||a;return function(k,D,j){for(var gt,wt,w=c(k),Z=o(w),M=r(D,j,3),I=u(Z.length),B=0,J=p?z(k,I):T?z(k,0):void 0;I>B;B++)if((b||B in Z)&&(wt=M(gt=Z[B],B,w),d))if(p)J[B]=wt;else if(wt)switch(d){case 3:return!0;case 5:return gt;case 6:return B;case 2:J.push(gt)}else if(C)return!1;return O?-1:m||C?C:J}}},2736:(s,E,t)=>{var r=t(5286),o=t(4302),c=t(6314)("species");s.exports=function(u){var a;return o(u)&&("function"==typeof(a=u.constructor)&&(a===Array||o(a.prototype))&&(a=void 0),r(a)&&null===(a=a[c])&&(a=void 0)),void 0===a?Array:a}},6886:(s,E,t)=>{var r=t(2736);s.exports=function(o,c){return new(r(o))(c)}},1488:(s,E,t)=>{var r=t(2032),o=t(6314)("toStringTag"),c="Arguments"==r(function(){return arguments}());s.exports=function(a){var d,g,p;return void 0===a?"Undefined":null===a?"Null":"string"==typeof(g=function(a,d){try{return a[d]}catch{}}(d=Object(a),o))?g:c?r(d):"Object"==(p=r(d))&&"function"==typeof d.callee?"Arguments":p}},2032:s=>{var E={}.toString;s.exports=function(t){return E.call(t).slice(8,-1)}},9824:(s,E,t)=>{"use strict";var r=t(9275).f,o=t(2503),c=t(4408),u=t(741),a=t(3328),d=t(3531),g=t(2923),p=t(5436),T=t(2974),m=t(7057),C=t(4728).fastKey,O=t(1616),b=m?"_s":"size",z=function(k,D){var w,j=C(D);if("F"!==j)return k._i[j];for(w=k._f;w;w=w.n)if(w.k==D)return w};s.exports={getConstructor:function(k,D,j,w){var Z=k(function(M,I){a(M,Z,D,"_i"),M._t=D,M._i=o(null),M._f=void 0,M._l=void 0,M[b]=0,null!=I&&d(I,j,M[w],M)});return c(Z.prototype,{clear:function(){for(var I=O(this,D),B=I._i,J=I._f;J;J=J.n)J.r=!0,J.p&&(J.p=J.p.n=void 0),delete B[J.i];I._f=I._l=void 0,I[b]=0},delete:function(M){var I=O(this,D),B=z(I,M);if(B){var J=B.n,gt=B.p;delete I._i[B.i],B.r=!0,gt&&(gt.n=J),J&&(J.p=gt),I._f==B&&(I._f=J),I._l==B&&(I._l=gt),I[b]--}return!!B},forEach:function(I){O(this,D);for(var J,B=u(I,arguments.length>1?arguments[1]:void 0,3);J=J?J.n:this._f;)for(B(J.v,J.k,this);J&&J.r;)J=J.p},has:function(I){return!!z(O(this,D),I)}}),m&&r(Z.prototype,"size",{get:function(){return O(this,D)[b]}}),Z},def:function(k,D,j){var Z,M,w=z(k,D);return w?w.v=j:(k._l=w={i:M=C(D,!0),k:D,v:j,p:Z=k._l,n:void 0,r:!1},k._f||(k._f=w),Z&&(Z.n=w),k[b]++,"F"!==M&&(k._i[M]=w)),k},getEntry:z,setStrong:function(k,D,j){g(k,D,function(w,Z){this._t=O(w,D),this._k=Z,this._l=void 0},function(){for(var w=this,Z=w._k,M=w._l;M&&M.r;)M=M.p;return w._t&&(w._l=M=M?M.n:w._t._f)?p(0,"keys"==Z?M.k:"values"==Z?M.v:[M.k,M.v]):(w._t=void 0,p(1))},j?"entries":"values",!j,!0),T(D)}}},3657:(s,E,t)=>{"use strict";var r=t(4408),o=t(4728).getWeak,c=t(7007),u=t(5286),a=t(3328),d=t(3531),g=t(50),p=t(9181),T=t(1616),m=g(5),C=g(6),O=0,b=function(D){return D._l||(D._l=new z)},z=function(){this.a=[]},k=function(D,j){return m(D.a,function(w){return w[0]===j})};z.prototype={get:function(D){var j=k(this,D);if(j)return j[1]},has:function(D){return!!k(this,D)},set:function(D,j){var w=k(this,D);w?w[1]=j:this.a.push([D,j])},delete:function(D){var j=C(this.a,function(w){return w[0]===D});return~j&&this.a.splice(j,1),!!~j}},s.exports={getConstructor:function(D,j,w,Z){var M=D(function(I,B){a(I,M,j,"_i"),I._t=j,I._i=O++,I._l=void 0,null!=B&&d(B,w,I[Z],I)});return r(M.prototype,{delete:function(I){if(!u(I))return!1;var B=o(I);return!0===B?b(T(this,j)).delete(I):B&&p(B,this._i)&&delete B[this._i]},has:function(B){if(!u(B))return!1;var J=o(B);return!0===J?b(T(this,j)).has(B):J&&p(J,this._i)}}),M},def:function(D,j,w){var Z=o(c(j),!0);return!0===Z?b(D).set(j,w):Z[D._i]=w,D},ufstore:b}},5795:(s,E,t)=>{"use strict";var r=t(3816),o=t(2985),c=t(7234),u=t(4408),a=t(4728),d=t(3531),g=t(3328),p=t(5286),T=t(4253),m=t(7462),C=t(2943),O=t(266);s.exports=function(b,z,k,D,j,w){var Z=r[b],M=Z,I=j?"set":"add",B=M&&M.prototype,J={},gt=function(lt){var Pt=B[lt];c(B,lt,"delete"==lt?function(dt){return!(w&&!p(dt))&&Pt.call(this,0===dt?0:dt)}:"has"==lt?function(Et){return!(w&&!p(Et))&&Pt.call(this,0===Et?0:Et)}:"get"==lt?function(Et){return w&&!p(Et)?void 0:Pt.call(this,0===Et?0:Et)}:"add"==lt?function(Et){return Pt.call(this,0===Et?0:Et),this}:function(Et,jt){return Pt.call(this,0===Et?0:Et,jt),this})};if("function"==typeof M&&(w||B.forEach&&!T(function(){(new M).entries().next()}))){var wt=new M,It=wt[I](w?{}:-0,1)!=wt,Nt=T(function(){wt.has(1)}),xt=m(function(lt){new M(lt)}),At=!w&&T(function(){for(var lt=new M,Pt=5;Pt--;)lt[I](Pt,Pt);return!lt.has(-0)});xt||((M=z(function(lt,Pt){g(lt,M,b);var dt=O(new Z,lt,M);return null!=Pt&&d(Pt,j,dt[I],dt),dt})).prototype=B,B.constructor=M),(Nt||At)&&(gt("delete"),gt("has"),j&>("get")),(At||It)&>(I),w&&B.clear&&delete B.clear}else M=D.getConstructor(z,b,j,I),u(M.prototype,k),a.NEED=!0;return C(M,b),J[b]=M,o(o.G+o.W+o.F*(M!=Z),J),w||D.setStrong(M,b,j),M}},5645:s=>{var E=s.exports={version:"2.5.7"};"number"==typeof __e&&(__e=E)},741:(s,E,t)=>{var r=t(4963);s.exports=function(o,c,u){if(r(o),void 0===c)return o;switch(u){case 1:return function(a){return o.call(c,a)};case 2:return function(a,d){return o.call(c,a,d)};case 3:return function(a,d,g){return o.call(c,a,d,g)}}return function(){return o.apply(c,arguments)}}},1355:s=>{s.exports=function(E){if(null==E)throw TypeError("Can't call method on "+E);return E}},7057:(s,E,t)=>{s.exports=!t(4253)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},2457:(s,E,t)=>{var r=t(5286),o=t(3816).document,c=r(o)&&r(o.createElement);s.exports=function(u){return c?o.createElement(u):{}}},4430:s=>{s.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},2985:(s,E,t)=>{var r=t(3816),o=t(5645),c=t(7728),u=t(7234),a=t(741),d="prototype",g=function(p,T,m){var Z,M,I,B,C=p&g.F,O=p&g.G,z=p&g.P,k=p&g.B,D=O?r:p&g.S?r[T]||(r[T]={}):(r[T]||{})[d],j=O?o:o[T]||(o[T]={}),w=j[d]||(j[d]={});for(Z in O&&(m=T),m)I=((M=!C&&D&&void 0!==D[Z])?D:m)[Z],B=k&&M?a(I,r):z&&"function"==typeof I?a(Function.call,I):I,D&&u(D,Z,I,p&g.U),j[Z]!=I&&c(j,Z,B),z&&w[Z]!=I&&(w[Z]=I)};r.core=o,g.F=1,g.G=2,g.S=4,g.P=8,g.B=16,g.W=32,g.U=64,g.R=128,s.exports=g},4253:s=>{s.exports=function(E){try{return!!E()}catch{return!0}}},3531:(s,E,t)=>{var r=t(741),o=t(8851),c=t(6555),u=t(7007),a=t(875),d=t(9002),g={},p={},T=s.exports=function(m,C,O,b,z){var w,Z,M,I,k=z?function(){return m}:d(m),D=r(O,b,C?2:1),j=0;if("function"!=typeof k)throw TypeError(m+" is not iterable!");if(c(k)){for(w=a(m.length);w>j;j++)if((I=C?D(u(Z=m[j])[0],Z[1]):D(m[j]))===g||I===p)return I}else for(M=k.call(m);!(Z=M.next()).done;)if((I=o(M,D,Z.value,C))===g||I===p)return I};T.BREAK=g,T.RETURN=p},3816:s=>{var E=s.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=E)},9181:s=>{var E={}.hasOwnProperty;s.exports=function(t,r){return E.call(t,r)}},7728:(s,E,t)=>{var r=t(9275),o=t(681);s.exports=t(7057)?function(c,u,a){return r.f(c,u,o(1,a))}:function(c,u,a){return c[u]=a,c}},639:(s,E,t)=>{var r=t(3816).document;s.exports=r&&r.documentElement},1734:(s,E,t)=>{s.exports=!t(7057)&&!t(4253)(function(){return 7!=Object.defineProperty(t(2457)("div"),"a",{get:function(){return 7}}).a})},266:(s,E,t)=>{var r=t(5286),o=t(7375).set;s.exports=function(c,u,a){var g,d=u.constructor;return d!==a&&"function"==typeof d&&(g=d.prototype)!==a.prototype&&r(g)&&o&&o(c,g),c}},9797:(s,E,t)=>{var r=t(2032);s.exports=Object("z").propertyIsEnumerable(0)?Object:function(o){return"String"==r(o)?o.split(""):Object(o)}},6555:(s,E,t)=>{var r=t(2803),o=t(6314)("iterator"),c=Array.prototype;s.exports=function(u){return void 0!==u&&(r.Array===u||c[o]===u)}},4302:(s,E,t)=>{var r=t(2032);s.exports=Array.isArray||function(c){return"Array"==r(c)}},5286:s=>{s.exports=function(E){return"object"==typeof E?null!==E:"function"==typeof E}},8851:(s,E,t)=>{var r=t(7007);s.exports=function(o,c,u,a){try{return a?c(r(u)[0],u[1]):c(u)}catch(g){var d=o.return;throw void 0!==d&&r(d.call(o)),g}}},9988:(s,E,t)=>{"use strict";var r=t(2503),o=t(681),c=t(2943),u={};t(7728)(u,t(6314)("iterator"),function(){return this}),s.exports=function(a,d,g){a.prototype=r(u,{next:o(1,g)}),c(a,d+" Iterator")}},2923:(s,E,t)=>{"use strict";var r=t(4461),o=t(2985),c=t(7234),u=t(7728),a=t(2803),d=t(9988),g=t(2943),p=t(468),T=t(6314)("iterator"),m=!([].keys&&"next"in[].keys()),O="keys",b="values",z=function(){return this};s.exports=function(k,D,j,w,Z,M,I){d(j,D,w);var Pt,dt,Et,B=function(jt){if(!m&&jt in It)return It[jt];switch(jt){case O:case b:return function(){return new j(this,jt)}}return function(){return new j(this,jt)}},J=D+" Iterator",gt=Z==b,wt=!1,It=k.prototype,Nt=It[T]||It["@@iterator"]||Z&&It[Z],xt=Nt||B(Z),At=Z?gt?B("entries"):xt:void 0,lt="Array"==D&&It.entries||Nt;if(lt&&(Et=p(lt.call(new k)))!==Object.prototype&&Et.next&&(g(Et,J,!0),!r&&"function"!=typeof Et[T]&&u(Et,T,z)),gt&&Nt&&Nt.name!==b&&(wt=!0,xt=function(){return Nt.call(this)}),(!r||I)&&(m||wt||!It[T])&&u(It,T,xt),a[D]=xt,a[J]=z,Z)if(Pt={values:gt?xt:B(b),keys:M?xt:B(O),entries:At},I)for(dt in Pt)dt in It||c(It,dt,Pt[dt]);else o(o.P+o.F*(m||wt),D,Pt);return Pt}},7462:(s,E,t)=>{var r=t(6314)("iterator"),o=!1;try{var c=[7][r]();c.return=function(){o=!0},Array.from(c,function(){throw 2})}catch{}s.exports=function(u,a){if(!a&&!o)return!1;var d=!1;try{var g=[7],p=g[r]();p.next=function(){return{done:d=!0}},g[r]=function(){return p},u(g)}catch{}return d}},5436:s=>{s.exports=function(E,t){return{value:t,done:!!E}}},2803:s=>{s.exports={}},4461:s=>{s.exports=!1},4728:(s,E,t)=>{var r=t(3953)("meta"),o=t(5286),c=t(9181),u=t(9275).f,a=0,d=Object.isExtensible||function(){return!0},g=!t(4253)(function(){return d(Object.preventExtensions({}))}),p=function(b){u(b,r,{value:{i:"O"+ ++a,w:{}}})},O=s.exports={KEY:r,NEED:!1,fastKey:function(b,z){if(!o(b))return"symbol"==typeof b?b:("string"==typeof b?"S":"P")+b;if(!c(b,r)){if(!d(b))return"F";if(!z)return"E";p(b)}return b[r].i},getWeak:function(b,z){if(!c(b,r)){if(!d(b))return!0;if(!z)return!1;p(b)}return b[r].w},onFreeze:function(b){return g&&O.NEED&&d(b)&&!c(b,r)&&p(b),b}}},133:(s,E,t)=>{var r=t(8416),o=t(2985),c=t(3825)("metadata"),u=c.store||(c.store=new(t(147))),a=function(O,b,z){var k=u.get(O);if(!k){if(!z)return;u.set(O,k=new r)}var D=k.get(b);if(!D){if(!z)return;k.set(b,D=new r)}return D};s.exports={store:u,map:a,has:function(O,b,z){var k=a(b,z,!1);return void 0!==k&&k.has(O)},get:function(O,b,z){var k=a(b,z,!1);return void 0===k?void 0:k.get(O)},set:function(O,b,z,k){a(z,k,!0).set(O,b)},keys:function(O,b){var z=a(O,b,!1),k=[];return z&&z.forEach(function(D,j){k.push(j)}),k},key:function(O){return void 0===O||"symbol"==typeof O?O:String(O)},exp:function(O){o(o.S,"Reflect",O)}}},5345:(s,E,t)=>{"use strict";var r=t(7184),o=t(4548),c=t(4682),u=t(508),a=t(9797),d=Object.assign;s.exports=!d||t(4253)(function(){var g={},p={},T=Symbol(),m="abcdefghijklmnopqrst";return g[T]=7,m.split("").forEach(function(C){p[C]=C}),7!=d({},g)[T]||Object.keys(d({},p)).join("")!=m})?function(p,T){for(var m=u(p),C=arguments.length,O=1,b=o.f,z=c.f;C>O;)for(var Z,k=a(arguments[O++]),D=b?r(k).concat(b(k)):r(k),j=D.length,w=0;j>w;)z.call(k,Z=D[w++])&&(m[Z]=k[Z]);return m}:d},2503:(s,E,t)=>{var r=t(7007),o=t(5588),c=t(4430),u=t(9335)("IE_PROTO"),a=function(){},d="prototype",g=function(){var O,p=t(2457)("iframe"),T=c.length;for(p.style.display="none",t(639).appendChild(p),p.src="javascript:",(O=p.contentWindow.document).open(),O.write("